本系列第 5 篇。前三篇讲了架构、编程模式、实时程序设计、FPGA 编程。本文:I/O 三种节点、模块分类,以及三种扩展机箱怎么选。
理解数据怎么在模块硬件与 FPGA 框图之间流动,程序写得更好、调试更快。先记住三个与模块打交道的图形节点------长得像,脾气完全不同。

I/O 节点 / 方法节点 / 属性节点,三种脾气
三个节点,三种脾气
- I/O 节点 :模块的"瘦"接口------取数、读校准,尽量少做数据/时序操作。注意它阻塞循环直到数据可用 ;除并行数字线路外,不能进单周期定时循环(SCTL)。
- 方法节点:调用模块特有功能,参数多时用它。例:NI 9205 设置电压范围、等待数字线路变化。
- 属性节点:访问模块属性------ΔΣ 模块数据速率、校准常数、序列号、模块/供应商编号,部分运行时可改。
模块分类:标准模拟/数字模块用 I/O 节点 + 循环定时器定速率;ΔΣ 转换模块自带板载时钟,速率归属性节点管;电机驱动、CAN、串行、SD 卡这类专用模块没有通用 FPGA API,直接用示例查找器里 FPGA+RT 成对示例当起点(多数第三方模块也自带示例)。
I/O 不够用:三种扩展机箱
| 扩展机箱 | 总线 | 适用 |
|---|---|---|
| MXI-Express RIO | PCI Express x1 电缆 | 高通道数 + 高带宽,配 cRIO-9081/9082 |
| Ethernet RIO(NI 9148) | 标准以太网 | 复用现有交换机路由器;交换机引入抖动,只适合非确定性通信 |
| EtherCAT RIO(NI 9144) | 确定性以太网 | 主从架构、可菊花链;本地与扩展 I/O 紧密同步 |
判断逻辑与第 2 篇选编程模式一脉相承:要不要确定性。普通以太网便宜省事,但交换机排队抖动是实打实的------指南建议走以太网扩展时,控制任务放独立定时循环,通信放低优先级 While,别让高抖动 I/O 污染控制律。
EtherCAT 路线:任何带两个网口的 cRIO 控制器当主站,NI 9144 当从站,从站可菊花链继续扩。走扫描引擎时,每个扫描周期所有模块同时读取和更新,同步由引擎接管。要算的账:NI 9144 只存 512 字节输入 + 512 字节输出(扫描模式变量与 FPGA 用户自定义变量共用),通道多的系统先列预算。
系列收尾
五篇一条主线:三层分工 是地基 → 500 Hz 分水岭 定模式 → 定时循环 + RT FIFO 保确定性 → FPGA 三招 提效率 → I/O 时序与扩展收进掌握。缺哪篇翻专栏补齐。
你现在的 cRIO 项目用哪种扩展?在以太网抖动上踩过坑吗?评论区聊聊。
系列索引:01 架构 · 02 编程模式 · 03 实时程序设计 · 04 FPGA 编程 · 05 I/O 同步与扩展(本文)