硬件选型与配置:CPU选型、FPGA/ASIC方案、通信接口、IO扩展
硬件选型这事儿,说白了就是一场平衡的艺术。你得在性能、成本、功耗、开发周期之间反复权衡。我见过不少项目,方案选型时拍脑袋,结果量产时发现成本压不住,或者性能差一口气,只能硬着头皮改版。
这一章,我把这些年踩过的坑和总结的经验拆开来讲。你跟着我的思路走一遍,以后选型心里就有底了。
CPU选型:主控芯片的抉择
运动控制卡的大脑,目前主流就三条路:通用MCU、应用处理器(MPU)、以及x86架构的嵌入式CPU。选哪个,取决于你的控制周期和算法复杂度。
| 方案类型 | 典型芯片 | 控制周期 | 适用场景 |
|---|---|---|---|
| MCU(Cortex-M系列) | STM32H7、TMS320F28379D | 50μs ~ 1ms | 点位控制、简单插补、IO逻辑 |
| MPU(Cortex-A系列) | AM5728、i.MX8M | 10μs ~ 500μs | 多轴联动、轨迹规划、视觉集成 |
| x86嵌入式 | Intel Atom、AMD Ryzen Embedded | 1μs ~ 100μs | 高速高精、CNC、机器人控制 |
我个人习惯,先看最坏情况下的中断响应时间。比如你做一个4轴插补,控制周期要求100μs。MCU的中断延迟一般在几十纳秒到几百纳秒,看起来够用。但别忘了,你还要跑通信协议栈、处理IO、做安全逻辑。这些任务堆在一起,中断嵌套一多,实际抖动可能超过10μs。
FPGA/ASIC方案:硬实时与灵活性的博弈
为什么很多高端运动控制卡要用FPGA?因为纯软件做不了真正的硬实时。你想想看,CPU处理脉冲输出时,哪怕中断优先级再高,也逃不过指令流水线和缓存缺失带来的不确定性。
FPGA就不一样了。它用硬件逻辑直接生成脉冲,抖动可以控制在纳秒级。我在做一款6轴机械臂控制卡时,要求每个轴的脉冲输出误差不超过±20ns。用MCU+定时器的方式,抖动在±150ns左右,怎么调都过不了。后来换成FPGA内部用计数器链+状态机实现,实测抖动±8ns,一次通过。
至于ASIC,那是量产的终极方案。如果你年出货量在10万片以上,可以考虑把FPGA逻辑固化成ASIC。成本能降一个数量级,功耗也更低。但要注意,ASIC流片一次几十万起步,改一版至少三个月。我见过一家公司,ASIC流片回来发现脉冲计数逻辑有bug,结果硬生生用外部CPLD打补丁撑了一年。
通信接口:PCIe vs. EtherCAT
通信接口的选择,直接决定了控制卡的带宽和实时性。目前工业现场,PCIe和EtherCAT是两大主流。
PCIe:板卡内部的高速公路
如果你做的是PCIe插卡式运动控制卡,PCIe是唯一选择。PCIe Gen3 x1的单向带宽就有约1GB/s,延迟在微秒级。这意味着你可以把轨迹规划、插补运算全部放在上位机,控制卡只负责执行。
但PCIe有个硬伤——线缆长度限制。PCIe信号在PCB上能走十几厘米,超过这个距离就得用转接芯片。所以它只适合控制卡和上位机在同一个机箱内的场景。
EtherCAT:分布式控制的王者
EtherCAT的优势在于分布式架构。你可以把伺服驱动器、IO模块、编码器都挂在同一根网线上,距离可以拉到100米。而且它的数据刷新周期能做到100μs以内,抖动小于1μs。
我做过一个项目,客户要求控制16个伺服轴,分布在一条20米长的产线上。如果用传统的脉冲方向控制,光布线就够头疼的,而且长距离传输容易受干扰。换成EtherCAT后,一根网线搞定所有,每个轴的位置环刷新周期200μs,同步抖动小于500ns。
| 特性 | PCIe | EtherCAT |
|---|---|---|
| 拓扑结构 | 点对点(板卡内部) | 线型/星型(分布式) |
| 最大距离 | PCB级(<30cm) | 100m(网线) |
| 典型延迟 | <10μs | <100μs(1000个节点) |
| 抖动 | <1μs | <1μs |
| 成本 | 低(板内集成) | 中(需专用从站芯片) |
IO扩展:从简单到复杂的演进
IO扩展看起来简单,但往往是系统稳定性的短板。我见过不少控制卡,CPU和通信都做得很好,结果因为IO接口的电气隔离没做好,现场频繁烧端口。
IO扩展主要有三种方式:
- 板载GPIO:直接挂在CPU或FPGA的IO口上。适合少量、低速的IO,比如限位开关、急停按钮。注意一定要加光耦隔离,否则静电或浪涌很容易打坏主控芯片。
- SPI/I2C扩展:通过串行总线挂载IO扩展芯片,比如MCP23S17、PCA9555。适合中等数量的IO,但刷新速度受限于总线频率。我一般用SPI,速度比I2C快一个数量级。
- EtherCAT从站IO:通过EtherCAT总线挂载远程IO模块。适合分布式场景,IO数量可以扩展到上千点。但要注意,EtherCAT IO的刷新周期会随着节点数量增加而变长。
知识体系总览
下面这张图,把硬件选型的核心逻辑串起来了。你可以把它当作选型时的检查清单。
硬件选型没有标准答案,但有标准流程。先定控制周期和抖动要求,再选CPU和FPGA方案;根据系统拓扑选通信接口;最后用IO扩展补齐外围。每一步都留出20%的余量,给后期调试和功能升级留空间。
嗯,这一章的内容就到这里。记住,选型时多花一周时间做验证,比量产后再改版省三个月时间。这是我在无数个加班夜里总结出来的教训。