3. 工业通信物理层接口设计

物理层是工业通信的“地基”。协议栈再完善,只要差分对极性接反、共模电压超限、终端电阻缺失或隔离耐压不足,现场就会出现丢包、误帧、总线锁死甚至器件损坏。Lattice FPGA(如MachXO3、CrossLink-NX、Certus-NX等)I/O资源灵活、支持多种电平标准,但FPGA本身只提供逻辑电平接口,真正决定通信可靠性的是“FPGA I/O—收发器—隔离—连接器—线缆”这一整条电气链路。本节围绕RS-485、CAN和以太网PHY三类典型接口,说明电气连接、隔离保护与信号完整性的设计要点。

一、三类接口的电气特征与FPGA侧连接方式

RS-485是差分半双工/全双工总线,收发器把FPGA的3.3V单端信号转换为差分A/B信号,共模范围通常为-7V~+12V,总线两端需各接120Ω终端电阻。FPGA侧一般用普通LVCMOS33 I/O接收发器的RO(接收输出)和DI(驱动输入),再用一个I/O控制RE/DE方向引脚。若使用半双工,RE与DE常短接,由同一方向信号控制,发送时DE有效、接收时RE有效,切换前后要留出总线释放时间,避免双方同时驱动。

CAN收发器(如TJA1050、TCAN1042)把CAN_H/CAN_L差分信号转换为FPGA可读的RXD和可驱动的TXD。CAN为显性/隐性电平:显性(逻辑0)时CAN_H约3.5V、CAN_L约1.5V,隐性(逻辑1)时两者约2.5V。FPGA的TXD接收发器D端,RXD接R端,速率常见125kbps、250kbps、500kbps、1Mbps。CAN总线两端同样需要120Ω终端,且不能像RS-485那样随意星形分支。

以太网PHY则复杂得多。以常用的10/100M PHY(如DP83848、LAN8720)为例,FPGA侧通过MII/RMII接口连接:MII需要TX_CLK、TX_EN、TXD[3:0]、RX_CLK、RX_DV、RXD[3:0]、CRS、COL等信号;RMII则把数据位宽压缩到2位,参考时钟50MHz。PHY与FPGA之间是短距离板级连接,重点在时钟、阻抗和参考平面;PHY到RJ45之间才是真正的“物理层战场”,涉及变压器、共模扼流、Bob Smith端接和ESD防护。

RS-485 / CAN / 以太网PHY 与 Lattice FPGA 的物理层连接与隔离保护 Lattice FPGA LVCMOS33 I/O UART_TX / RX RS485_DE CAN_TXD / RXD (CAN控制器) MII / RMII TXD[3:0] RXD[3:0] TX_CLK RX_CLK MDC / MDIO 隔离电源 DC-DC / 变压器 或数字隔离器 收发器 / PHY RS-485 收发器 MAX13487 / SP3485 CAN 收发器 TJA1050 / TCAN1042 以太网 PHY DP83848 / LAN8720 10/100M MDI 差分对 隔离栅 数字隔离器 / 隔离变压器 保护与端接 TVS 管 SMBJ / PESD 共模扼流圈 CMC 终端电阻 120Ω ×2 偏置电阻 680Ω / 120Ω Bob Smith 端接 75Ω + 1000pF ESD 防护 现场总线 A / B 差分对 双绞屏蔽 CAN_H / CAN_L 双绞线 RJ45 / 变压器 TX± RX± Cat5e 屏蔽 100Ω 差分 屏蔽层 单点接地 或电容接地 隔离边界(安全间距 ≥ 8mm,爬电距离按耐压等级确定) 要点:差分对等长、终端匹配、隔离耐压、共模抑制、屏蔽单点接地、TVS 靠近连接器放置

二、隔离保护:把“地电位差”挡在FPGA之外

工业现场最常见的问题不是信号本身,而是地电位差。两台设备相距几十米,各自接地点的电位可能相差几伏甚至几十伏,这个共模电压会直接加在收发器上。RS-485收发器虽然能承受-7V~+12V共模,但长期偏置会加速老化;CAN收发器共模范围通常为-2V~+7V,更脆弱。因此,跨设备、跨机柜的通信口应优先做电气隔离。

隔离方案分两类。第一类是“隔离收发器+隔离电源”:用数字隔离器(如ADuM1201、Si8620)隔离FPGA与收发器之间的TX/RX/DE信号,再用隔离DC-DC(如B0505S)给收发器侧供电。隔离耐压常见2.5kVrms或5kVrms,爬电距离≥8mm。第二类是“隔离型收发器模块”,把隔离、收发、保护集成在一起,体积小但成本略高。以太网则通常用带隔离变压器的RJ45座,变压器本身提供1.5kV~3kV隔离,PHY侧与FPGA共地,线缆侧浮地。

保护器件的布局顺序很关键:连接器→TVS→共模扼流圈→终端/偏置→收发器。TVS要尽量靠近连接器,引线短而粗,否则浪涌电流在引线电感上产生的压降仍会打坏后级。RS-485和CAN的A/B、CAN_H/CAN_L对地各放一颗TVS,选型时注意结电容:RS-485可用几十pF的,CAN因速率高应选结电容更小的(如10pF以内),否则会破坏差分阻抗和上升沿。

三、信号完整性:从终端匹配到PCB走线

RS-485和CAN的终端匹配是信号完整性的第一道关。RS-485总线两端各接120Ω,中间节点不接;若总线较长且节点多,可加偏置电阻(上拉680Ω到VCC、下拉680Ω到GND)确保空闲时A-B压差大于200mV,避免接收器输出乱跳。CAN总线两端各接120Ω,不能多接,否则总线负载过重、显性电平幅度下降。终端电阻的功率按总线电压估算,一般1/4W足够,但若总线可能被误接电源,应选更大功率或加自恢复保险丝。

以太网PHY的差分对要求100Ω差分阻抗,TX±与RX±分别成对走线,对内等长误差控制在5mil以内,对间间距≥3倍线宽。RMII的50MHz参考时钟要远离差分对和电源开关节点,走线尽量短,必要时包地。MII接口信号多、速率25MHz,PCB上要保证时钟与数据线等长,避免建立/保持时间违例。FPGA侧I/O的驱动强度和压摆率也要配置:RS-485方向控制信号可用8mA、慢压摆率减少过冲;RMII数据线可用4mA、快压摆率保证时序。

屏蔽与接地同样影响信号完整性。RS-485和CAN的屏蔽层应在总线一端接地,另一端通过电容或直接悬空,避免形成地环路。以太网屏蔽线两端接地时,要确认两端地电位差不会在屏蔽层上产生大电流;若不确定,可在屏蔽层与地之间串接1nF/2kV电容。FPGA板内,隔离前后的地平面必须严格分开,隔离器下方禁止铺铜,防止爬电距离被破坏。

设计检查建议:① 连接器到TVS的引线是否短于10mm;② 终端电阻是否只出现在总线两端;③ 隔离器两侧地平面是否分开且间距≥8mm;④ 差分对是否等长、阻抗是否受控;⑤ FPGA I/O驱动强度与压摆率是否与速率匹配;⑥ 屏蔽层接地方式是否与现场地电位差匹配。

把以上要点落到具体设计上,可以用一张参数表来约束关键项。下表以500kbps CAN、115200bps RS-485和10/100M以太网为例,给出典型参数范围,实际值需结合收发器手册和现场环境调整。

接口FPGA侧电平终端/匹配隔离耐压保护器件关键SI约束
RS-485LVCMOS33两端120Ω,偏置680Ω2.5kVrmsTVS+共模扼流差分对等长,DE切换留死区
CANLVCMOS33两端120Ω2.5kVrms低结电容TVS分支长度<0.3m,共模范围-2~+7V
以太网PHYRMII/MII100Ω差分,Bob Smith1.5kV~3kVESD+变压器对内等长≤5mil,时钟包地

最后强调一个容易忽略的点:FPGA的I/O在上电、复位和配置阶段可能处于高阻或弱上拉状态。若此时收发器的DE被误使能,总线会被意外驱动,导致其他节点通信失败。因此,DE/RE引脚应加下拉电阻,确保FPGA未配置完成时收发器处于接收态;CAN的TXD也应上拉,使总线保持隐性。这些“上电默认态”设计,往往比协议本身更决定现场的一次开通成功率。