本页回答的问题
如果你正在 Raspberry Pi 级别的板卡和完整 PC 之间选择机床控制方案,这份工程检查清单可供参考。
小型单板计算机在 CNC 搭建中实际承担什么
小型单板计算机是一块 PCB 上的完整计算机:SoC、RAM、存储、网络和 40 针排针。它启动操作系统,运行与台式机相同的 G 代码解释器。运动数学没有任何变化,变化的是脉冲如何离开板卡。
板卡本身不是运动控制器。它读取 G 代码、规划前瞻,然后输出步进和方向信号。在 Raspberry Pi 上,这一输出通过 3.3 V 逻辑的 GPIO 引脚完成,因此板卡只提供时序。电机电流来自独立的步进或伺服驱动器。
选型时这一分工很关键。24 V、3 A 的步进驱动器不关心脉冲串由谁产生,它关心的是脉冲按时到达,以及方向线在下一个步进边沿之前保持稳定。在 5 mm 导程丝杠上,几微秒的抖动无害,一毫秒的抖动则不行。
步进脉冲频率与实时性问题
步进频率决定了其他一切的上限。200 步电机配 1/8 细分驱动器,每转需要 1,600 个脉冲。以 600 rpm 运行就是 16 kHz,多数业余板卡都能做到。若用 1/16 细分驱动推到 3,000 rpm,数字会超过 160 kHz,软件脉冲生成就开始丢边沿。
通用 Linux 不是实时操作系统。调度器会暂停你的脉冲线程去处理网络中断或写日志。这种暂停表现为丢步,而丢步就是位置丢失。机床并不知道发生了这件事,零件加工出来会偏小。
有两种解决办法。可以给内核打实时优先级补丁,这能缩小抖动但无法消除。或者把脉冲生成移到硬件:FPGA、专用运动芯片,或通过 USB 或以太网接收命令的外部控制器板。硬件时序不受 CPU 负载影响。
控制方案一览
让脉冲源匹配机床,而不是反过来。
| 方案 | 典型步进频率 | 适用场景 | 注意事项 |
|---|---|---|---|
| SBC GPIO,软件脉冲 | 10–50 kHz | 小型雕刻机、绘图仪、激光机 | CPU 负载下存在抖动 |
| SBC + 实时内核 | 50–100 kHz | 三轴铣床、轻量生产 | 需要调优和测试 |
| SBC + FPGA 或运动芯片 | 100–250 kHz+ | 四轴、高细分 | 成本更高,接线更多 |
| USB 外部控制器 | 100 kHz–1 MHz | 任意尺寸,闭环驱动 | USB 掉线风险 |
| 完整 PC + PCIe 运动卡 | 1 MHz+ | 大型铣床、换刀装置 | 成本、占地、功耗 |
在小板卡上运行 Grbl、Marlin 或 LinuxCNC
Grbl 和 Marlin 是常见的起点。两者都运行在微控制器上,而不是 SBC 本身。小型单板计算机成为前端,通过 USB 串口流式发送 G 代码,由微控制器负责时序。这是最宽容的架构,但在多数 Grbl 构建中也把你限制在 3 轴加主轴。
LinuxCNC 不同。它是完整的运动控制器,具备轨迹规划、主轴同步和刚性攻丝。在 SBC 上运行它,需要板卡有良好的中断延迟并使用硬件步进发生器。在普通 GPIO 上它很脆弱,而且失效是静默的。
Marlin 更适合 3D 打印机和轻量激光加工,而非金属切削。它的规划器假设较低速度和较轻切削力。在铝件上用 6 mm 立铣刀加工时,加速度限制会远在板卡脉冲耗尽之前就拖慢你。
转接板、逻辑电平与噪声
GPIO 逻辑为 3.3 V,只能提供几毫安电流。多数步进和方向输入要求 5 V 信号的步进驱动器。用 3.3 V 引脚驱动 5 V 驱动器,可能在台面上能用,装进壳体就失效。请使用电平转换器或额定 3.3 V 输入的转接板。
接地决定机床运行是否干净。步进和方向对走双绞线。电机电缆远离限位开关电缆。主轴屏蔽电缆只在 VFD 端接地。这些都是老规则,小型机床上的每个间歇性故障都能追溯到其中一条。
走线超过一米时,在输入端加光耦。为转接板配独立 5 V 电源,而不是从 SBC 排针取电。板卡的稳压器是按板卡本身设计的,不是按驱动器机架。
小型板卡不适用的场合
刚性攻丝需要主轴定向和同步 Z 轴。这是硬实时任务,应交给为此设计的控制器。换刀装置有十几个输入,或机床有四五个插补轴时,同样如此。
高编码器计数的闭环伺服也超出通用板卡的调度能力。如果驱动器需要 1 MHz 命令流,任何操作系统级脉冲循环都喂不动它。请使用运动控制器,让 SBC 负责 HMI。
散热和供电是隐性限制。密封电柜里紧挨 VFD 的 SBC 会降频。要规划风道和宽输入直流电源。切削中因欠压导致板卡重启,代价远高于为合适电源多花的 40 美元。
还有一项检查:购买前先看整条信号链。如果驱动器、转接板和线缆都已确定,小型单板计算机通常够用。如果还在选驱动器,就从那里开始,因为驱动器决定脉冲预算。
常见问题
Raspberry Pi 能直接用 GPIO 引脚运行 CNC 机床吗?
可以,但只适合慢速加工。通用 Linux 上的软件脉冲生成存在抖动,且抖动随 CPU 负载增大。用于激光雕刻或轻材料小雕刻机没问题。
若要以生产速度切削金属,需在 Pi 与驱动器之间加 FPGA 或专用运动控制板。此时 Pi 只负责流式发送 G-code。
小型单板计算机跑 4 轴加工够快吗?
三轴联动加一个旋转轴是常见的 SBC 方案,只要脉冲源是硬件就能用。旋转轴很少需要高步进频率。
问题在输入,不在轴数。带回零、对刀仪和壳体开关的 4 轴机床,可能先耗尽 GPIO 而不是 CPU。
实际需要多高的步进频率?
电机每转步数乘以细分设置,再乘以每秒转数。200 步电机在 1/8 细分下每转 1,600 个脉冲。10 转/秒即 16 kHz。
加速段要留余量。脉冲源按计算出的稳态频率约两倍选型。
需要实时内核吗?
只有板子用软件生成脉冲时才需要。打 PREEMPT_RT 补丁的内核能降低延迟,但不能消除。信任它之前要在负载下测试。
若脉冲来自 FPGA 或外部控制器,内核选择对运动精度就不再有影响。
能用 SBC 通过 WiFi 运行机床吗?
可以通过 WiFi 传文件。不要用它流式发送实时运动指令。切削中丢一个包就是废件。
把 G-code 加载到板子上本地运行。网络只用于上传任务和查看状态。
小板的可靠性够生产车间用吗?
对于无人化生产,除非运动时序在硬件里,否则小板是最薄弱环节。工业控制器就是为此存在的。
对于只跑一两台轻型机床的加工店,散热良好、配硬件脉冲发生器和正规 5 V 电源的 SBC 完全撑得住。
