GRBL是一款免费的开源软件,用于控制机器的运动、加工制造物体或使物体移动,并在各种微控制器上运行。GRBL用于为数千种不同的CNC雕刻机、车床、铣床、激光切割机、写字机,绘图机器人、3d打印机等提供动力。它本质上是开源数控机床的标准。
GRBL 的第一个版本于 2009 年由 Simen Svale Skogsrud 发布。后来它被 Sungeun “Sonny” Jeon 博士接手并领导,他将其演变成一个在 Arduino 系列微控制器板上运行的高性能机器控制系统。它对 Arduinos 上的 8 位 Atmel 处理器进行了令人难以置信的高效使用,并且是软件工程的一项惊人壮举,可以从如此简陋的处理器中获得如此多的收益。不幸的是,GRBL 已经达到了 Atmel 处理器的极限。需要更高的性能,而小代码空间限制了添加新功能的能力。此外,新的32位微控制器在容量、功能和性能方面已大大超过 Atmel 处理器。
什么是grblHAL?
在过去的 5 年中,许多软件开发人员独立地认识到 8 位 GRBL 已经达到了 Arduino 的极限。他们着眼于将其移植到许多新兴的、廉价的 32 位机器中的一种,尤其是基于 ARM 的微控制器。虽然这些端口有效,但它们威胁要导致 GRBL 世界的分裂。由于 GRBL 经过精心打磨以有效利用 Arduino 的 Atmel 微控制器,因此机器特定代码与机器无关代码混合在一起,难以移植。此外,在一个版本中添加的任何新功能或修复的错误都必须改装到其他端口。很快,一个端口中就有了其他端口没有的新功能。没有可以构建所有不同 32 位版本的主源。
Terje Io 是一位才华横溢且具有远见的挪威软件开发人员,他看到了这一点,并开始着手解决该问题。他将 GRBL 分为两部分:一部分包含所有与处理器相关的代码 – 硬件抽象层 (HAL),另一部分不包含 – GRBL 核心。于是,grblHAL 诞生了。HAL 包含初始化处理器、了解定时器、PWM 硬件、端口、引脚地址、通信等的代码。GRBL 核心仅与 HAL 交互。在某些情况下,将 grblHAL 迁移到新的微控制器需要几周甚至几天的时间,因为 HAL 层相对较小。此外,可以为所有版本添加错误修复或 GRBL 核心的新功能。
将 grblHAL 移植到新的微控制器很简单。基本上,单个驱动程序文件定义了目标处理器的硬件抽象。开发人员可以从现有驱动程序或模板 ARM 驱动程序开始。因为他们需要修改的大部分代码都在驱动文件中,所以他们不需要了解 GRBL Core。
截至 2020 年 8 月,gbrlHAL 已移植到 13 种不同的微控制器:
ST Microsystems STF32F103系列
ST Microsystems STM32F4系列
乐鑫科技 ESP32
NXP Semiconductors iMRXT1062 (Teensy 4.x)
恩智浦半导体 LPC1768/1769
德州仪器 MSP430F5529(16 位)
德州仪器 MSP432
德州仪器 MSP432E401Y
德州仪器 TMC123
德州仪器 TMC129x
赛普拉斯半导体 PSoC5
Microchip SAM3X8E(Arduino到期)
微芯片 SAMD21 (Arduino MKRZERO)
grblHAL 的好处
在 32 位微控制器上运行,grblHAL 带来了许多好处:
-
更高的性能。最初的 Arduino 以 16 MHz 运行,而 32 位 ARM 芯片可以运行得更快。可用的速度范围从 40 MHz 到 600 MHz。8 位 GRBL 的最大步进速率约为 30 kHz,而 grblHAL 端口可以以更高的速度运行。250 kHz 或更高是可能的,具体取决于分线板。
-
更多内存。更大的程序空间,允许更多的功能。8 位 GRBL 代码通常需要禁用功能以使其适合 Arduino UNO。使用 grblHAL,添加了 8 位 GRBL 中缺少的标准 GCode 功能。
-
低成本。grblHAL 是免费的,它运行的处理器非常便宜。竞争产品的硬件和软件成本要高得多。
-
一致性。GCode 在支持相同功能的所有平台上都是一致的。CAD/CAM 应用程序只需要针对一种变体来创建在所有 grblHAL 端口上运行的 GCode。
-
快速移植到新的微控制器和受支持芯片的变体。可以快速添加对新处理器的支持。例如,在短短几天内就添加了对 STM32F411 的支持。
-
grblHAL 有一个插件架构。这允许在不更改 GRBL 核心的情况下将新功能添加到驱动程序中。可以为一个端口开发插件并轻松移动到另一个端口。SD 卡支持就是一个例子。
-
添加了来自高端运动控制器的许多功能,例如固定循环、全套偏移,例如 M62-M65,无需更改核心 GRBL。
-
为特定应用和机器轻松定制功能。
-
新功能和错误修复可用于所有端口,通常只需很少的努力。
grbl相关链接: grbl英文官网 grbl控制软件下载 grbl手机控制软件下载 grbl1.1h 源代码 grbl hal 源代码 esp32_grbl 源代码