GRBL 是免费的开源软件,用于控制移动、制造物体或使物体移动的机器的运动,并在各种微控制器上运行。GRBL 用于为数千种不同的 CNC 雕刻机、车床、铣床、激光器等提供动力。它本质上是开源 CNC 机器的标准。
GRBL 的第一个版本于 2009 年由 Simen Svale Skogsrud 发布。后来由 Sungeun “Sonny” Jeon Ph.D 接手并领导,他将其发展成为在 Arduino 系列微控制器板上运行的高性能机器控制系统。它非常高效地使用了 Arduinos 上的 8 位 Atmel 处理器,并且是软件工程的一项惊人壮举,能够从如此不起眼的处理器中获得如此多的好处。不幸的是,GRBL 已经达到了 Atmel 处理器的极限。需要更高的性能,而小的代码空间限制了添加新功能的能力。此外,新的 32 位微控制器在容量、功能和性能方面已经大大超过了 Atmel 处理器。
grbl 四轴控制板购买https://grbl.taobao.com/search.htm?spm=a1z10.1-c-s.0.0.31b27260IcSrPK&search=y
什么是 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 核心。
grblHAL 的好处
grblHAL 在 32 位微控制器上运行,带来了许多好处:
更高的性能。最初的 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 的第一个版本于 2009 年由 Simen Svale Skogsrud 发布。后来由 Sungeun “Sonny” Jeon Ph.D 接手并领导,他将其发展成为在 Arduino 系列微控制器板上运行的高性能机器控制系统。它非常高效地使用了 Arduinos 上的 8 位 Atmel 处理器,并且是软件工程的一项惊人壮举,能够从如此不起眼的处理器中获得如此多的好处。不幸的是,GRBL 已经达到了 Atmel 处理器的极限。需要更高的性能,而小的代码空间限制了添加新功能的能力。此外,新的 32 位微控制器在容量、功能和性能方面已经大大超过了 Atmel 处理器。
grbl 四轴控制板购买https://grbl.taobao.com/search.htm?spm=a1z10.1-c-s.0.0.31b27260IcSrPK&search=y
什么是 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 核心。
grblHAL 的好处
grblHAL 在 32 位微控制器上运行,带来了许多好处:
更高的性能。最初的 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。
轻松定制特定应用程序和机器的功能。
新功能和错误修复适用于所有端口,通常只需最少的努力。