1. 工业控制与实时接口系统概述

工业控制系统(Industrial Control System,ICS)是运行在工厂现场、负责采集物理量、执行控制算法并驱动执行机构的一类计算系统。它和通用信息系统的最大区别在于:控制系统的输出必须在确定的时间窗口内到达执行端,否则即使计算结果正确,也可能造成设备损坏或安全事故。理解这一点,是理解 Lattice FPGA 在其中价值的前提。

一、工业控制系统的组成

一个典型的工业控制回路可以拆成四个层次:感知层、控制层、执行层和通信层。感知层由传感器和信号调理电路构成,把温度、压力、位置、电流等物理量转换为电信号;控制层运行控制算法,通常由 PLC、运动控制器或嵌入式处理器承担;执行层包括伺服驱动器、变频器、继电器和电磁阀;通信层则把上述部分连接起来,常见形式有现场总线、工业以太网和背板并行总线。

以一台多轴贴片机为例:编码器反馈位置,光栅尺提供全闭环基准,伺服驱动器接收脉冲或总线指令驱动电机,而主控需要在每个控制周期内完成位置采样、插补计算和指令下发。这个闭环中任何一环的延迟抖动,都会直接反映为定位误差。

二、实时性的三层含义

“实时”并不等于“快”,而是指在确定的时间约束内完成。工程上通常区分三个指标:

  • 响应时间:从事件发生到系统做出反应的总延迟,例如从限位开关触发到电机断电的时间。
  • 抖动(Jitter):同一任务多次执行时间的波动范围。抖动比平均延迟更致命,因为它会让控制环路的相位裕度不可预测。
  • 确定性:最坏情况执行时间(WCET)是否可界定。基于操作系统调度的软件方案,其 WCET 往往难以严格证明。

典型指标参考:一般逻辑控制周期在 1~10 ms;运动控制电流环可达 50~125 μs;高速保护类信号(如过流封锁、急停)要求响应在 1 μs 量级。前两类可由 PLC 或 MCU 胜任,而微秒级保护与高密度并行接口,正是 FPGA 的用武之地。

三、接口类型与信号特征

工业现场的接口可按电气形式和协议层次分类。电气上常见 24 V 数字量输入输出、4~20 mA 模拟量、RS-485 差分、LVDS 低压差分;协议上则有 Modbus RTU/TCP、EtherCAT、PROFINET、CANopen、SSI/BiSS 编码器协议等。不同接口对时序的要求差异极大:Modbus 是毫秒级轮询,EtherCAT 要求从站转发延迟小于 1 μs,而增量编码器的 A/B 正交信号可能达到数 MHz 的边沿速率。

这意味着接口系统必须同时具备协议处理能力和硬实时信号处理能力,而这两者在传统 MCU 上往往互相挤占 CPU 时间。

工业控制回路中的 FPGA 位置与信号链 感知层 编码器 A/B/Z 光栅尺 / SSI 4–20 mA 变送器 24 V 限位开关 边沿速率可达 MHz Lattice FPGA 并行硬件逻辑 · 确定性时序 正交解码 / 计数 4× 倍频 · 位置锁存 协议引擎 EtherCAT / Modbus 保护逻辑 过流封锁 < 1 μs PWM / 脉冲输出 插补指令下发 执行层 伺服驱动器 变频器 继电器 / 电磁阀 安全回路 要求低抖动触发 主控 CPU / 上位机 轨迹规划 · 参数管理 · HMI 周期 1~10 ms,允许较大抖动 原始信号 驱动指令 寄存器 / 中断 位置 / 状态反馈(闭环) 时间尺度: 保护 <1 μs 电流环 50–125 μs 逻辑控制 1–10 ms HMI / 规划 10–100 ms

四、Lattice FPGA 的角色与优势

在上述结构中,FPGA 处于感知层与执行层之间的“硬实时枢纽”位置。它的核心价值来自三点:

第一,硬件并行带来确定性。 FPGA 内部的正交解码、协议解析、保护逻辑可以同时运行,互不抢占资源。一个通道的编码器计数不会因为另一个通道在解析 EtherCAT 帧而被延迟。这种并行性使最坏情况延迟可被静态时序分析约束,而不是靠调度器“尽量保证”。

第二,接口灵活性。 Lattice 的 ECP5、MachXO3、CrossLink 等系列提供丰富的 LVDS、SERDES 和可编程 IO,可以在同一颗器件上实现 RS-485、LVDS 编码器、并行 ADC 和以太网 MAC 等异构接口。对于需要多协议并存的设备,这比“MCU + 多颗协议芯片”的方案更紧凑,也更容易控制时序一致性。

第三,低功耗与小封装。 工业现场设备常受散热和空间限制。Lattice FPGA 以低静态功耗著称,MachXO3 系列的部分型号静态电流在毫安级,适合安装在紧凑的远程 IO 模块或编码器接口盒内,靠近传感器就地完成信号预处理,缩短模拟走线、降低噪声耦合。

五、一个可参考的接口分配示例

假设要设计一台三轴运动控制卡,可采用如下分配(示例参数,用于说明设计思路,非实测结果):

功能接口形式周期 / 速率实现位置
三轴增量编码器LVDS 差分 A/B/Z4 MHz 边沿FPGA 正交解码
伺服指令差分脉冲 + 方向1 MHzFPGA 脉冲发生器
过流保护比较器数字输出响应 < 1 μsFPGA 组合逻辑封锁
上位机通信EtherCAT 从站1 ms 周期FPGA 协议引擎
轨迹规划内部寄存器1 ms主控 CPU

在这个分配中,FPGA 承担了所有对时序敏感的任务,CPU 只负责“慢速”的规划与决策。两者通过寄存器映射和中断交互:CPU 写入目标位置,FPGA 在每个电流环周期读取并生成脉冲;FPGA 在位置到达或保护触发时置位状态位并产生中断。这样,即使 CPU 因操作系统调度出现几百微秒的抖动,也不会影响脉冲输出的均匀性。

判断一个任务是否应该放进 FPGA,可以用一个简单准则:如果该任务的允许抖动小于 10 μs,或者它需要与其它高速信号严格同步,就优先考虑用硬件逻辑实现;如果任务以毫秒为周期、逻辑分支复杂、需要频繁修改,则交给 CPU 更经济。