第2章:硬件平台选型:主控芯片选型与驱动方案
说实话,做数控系统这么多年,我见过太多人一上来就纠结「用STM32还是FPGA」。其实这个问题没有标准答案,关键看你做什么档次的产品。今天我就把这几年的经验摊开来聊聊。
2.1 主控芯片选型:三足鼎立的局面
目前主流的数控主控方案,说白了就三条路:STM32、FPGA、ARM+FPGA。我分别说说它们的脾气秉性。
2.1.1 STM32方案:小作坊的性价比之王
如果你做的是3轴雕刻机、小型激光机,STM32F4或H7系列完全够用。我早期有个项目,用STM32F407做了个4轴联动的小铣床,脉冲频率跑到200KHz,稳得很。
优点:
- 开发门槛低,CubeMX一键生成代码
- 成本控制好,一片H7不到100块
- 生态成熟,网上资料一抓一把
缺点:
- 纯软件做插补,精度受中断响应影响
- 多轴联动时,脉冲输出容易抖动
- 实时性天花板明显,超过4轴就吃力
2.1.2 FPGA方案:硬实时才是王道
FPGA做数控,说白了就是用硬件逻辑直接生成脉冲。我参与过一个高速点胶机项目,要求每轴独立200KHz脉冲,还要做S形加减速。用STM32算到死也做不到,换了XC6SLX9,轻松搞定。
优点:
- 脉冲输出是硬件级的,零抖动
- 并行处理,8轴12轴随便加
- 可以做硬件插补器,速度翻倍
缺点:
- 开发周期长,Verilog调试到崩溃
- 价格偏高,一片Spartan-6就要200+
- 外围电路复杂,DDR配置麻烦
2.1.3 ARM+FPGA方案:工业级标准配置
这是目前中高端数控的标配。ARM跑Linux做界面和通信,FPGA做实时控制。我去年做的五轴联动系统,就是用的Zynq系列,一片搞定。
典型架构:
- ARM侧:Linux系统,负责HMI、文件解析、网络通信
- FPGA侧:裸机逻辑,负责脉冲生成、编码器采集、IO控制
- 通信方式:AXI总线或SPI,延迟在微秒级
- 3轴以下、低速:STM32 + 步进驱动
- 4-6轴、中速:STM32 + FPGA + 伺服驱动
- 6轴以上、高速:ARM + FPGA + EtherCAT
2.2 驱动方案:步进 vs 伺服
这个问题其实不复杂。你想想看,步进电机是开环控制,伺服是闭环控制。区别就在这。
2.2.1 步进电机方案
步进电机说白了就是「给一个脉冲,转一个角度」。我刚开始做数控时,觉得步进电机又便宜又好用,直到有一次做雕刻机,丢步了都不知道。
适用场景:
- 负载变化不大的场合(如3D打印机)
- 对成本敏感的消费级产品
- 低速运行(< 500RPM)
避坑指南:
- 选型时留30%扭矩余量
- 加减速时间不要小于200ms
- 驱动器细分不要超过32,否则高频振动
2.2.2 伺服电机方案
伺服电机自带编码器,实时反馈位置。说白了就是「你说去哪,它告诉你到了没」。我做过一个对比测试:同样走100mm,步进误差±0.1mm,伺服误差±0.01mm。
关键参数:
| 参数 | 步进 | 伺服 |
|---|---|---|
| 控制方式 | 开环 | 闭环 |
| 最高转速 | 1000RPM | 3000RPM |
| 定位精度 | ±0.05mm | ±0.005mm |
| 价格 | 低 | 高 |
| 调试难度 | 简单 | 复杂 |
2.3 通信总线:EtherCAT vs Modbus vs 脉冲
通信方式的选择,直接决定了系统的实时性和扩展性。我见过有人用Modbus做运动控制,结果一跑起来就卡顿。嗯,这里要注意:不是所有总线都适合做实时控制。
2.3.1 脉冲方向控制
最传统的方式,每个轴需要3根线(脉冲+方向+使能)。优点是简单,缺点是线多、距离短。适合3轴以内的小型设备。
2.3.2 Modbus总线
Modbus RTU用RS485,Modbus TCP用以太网。我建议:别用Modbus做运动控制。为什么?因为它是主从轮询机制,延迟不确定。我试过用Modbus控制4轴,周期抖动达到5ms,根本没法用。
2.3.3 EtherCAT总线
这才是工业级的方案。EtherCAT的「飞读飞写」技术,说白了就是数据包在从站之间传递时,每个从站只取走自己的数据,同时插入反馈数据。延迟在微秒级。
- 3轴以下、低速:脉冲控制,成本最低
- 4-6轴、中速:EtherCAT,性价比最高
- 6轴以上、高速:必须EtherCAT
- Modbus只适合做IO控制和参数读写
2.4 知识体系总览
下面这张图,是我自己总结的选型逻辑。你照着这个思路走,基本不会跑偏。
这张图我画了好几个版本,最后发现还是这个最实用。你把它打印出来贴在墙上,选型时对着看就行。