2. 从站硬件架构解析:ESC芯片选型、微控制器接口、PHY芯片与变压器电路

好,咱们直接进入正题。上一章我们聊了EtherCAT的整体框架,这一章我带你看看从站硬件到底长什么样。说白了,从站硬件就是三块东西拼起来的:ESC芯片、MCU、以及PHY和变压器。这三者怎么搭,决定了你的板子稳不稳、快不快、好不好调试。

2.1 ESC芯片选型:LAN9252 vs. SSC

ESC(EtherCAT Slave Controller)是从站的心脏。市面上主流的方案就两个:Microchip的LAN9252,以及Beckhoff授权的SSC(Slave Stack Code)软核方案。

LAN9252 是硬核芯片,内部集成了EtherCAT数据链路层。我个人的习惯是,如果项目周期紧、不想折腾FPGA,直接上LAN9252。它支持两个PHY接口,内部有8KB的DPRAM,跟MCU通信走SPI或32位并行总线。

SSC方案 则是把ESC逻辑用Verilog/VHDL写出来,烧到FPGA或CPLD里。好处是灵活,你可以定制DPRAM大小、PDO映射方式。但代价是——你得懂FPGA开发,而且时序收敛是个坑。我曾经在一个项目中用SSC方案,结果因为FPGA内部布线延迟导致EtherCAT帧校验出错,查了整整三天。

选型建议:

  • 量产产品、追求稳定 → LAN9252
  • 需要特殊PDO映射、高速IO控制 → SSC + FPGA
  • 成本敏感、小批量 → LAN9252(因为SSC的FPGA BOM成本更高)

2.2 微控制器接口:SPI还是并行?

ESC芯片和MCU之间怎么通信?这是硬件设计的关键。LAN9252支持两种接口:SPI和32位并行总线。

SPI接口 简单,4根线搞定。但速度有限,一般跑20MHz左右。如果你只需要几十个字节的PDO数据,SPI够用。我见过有人用SPI跑100MHz,结果信号完整性一塌糊涂,EtherCAT链路动不动就断。

并行总线 速度快,32位数据线一次传4字节。但占用的MCU引脚多,PCB布线也麻烦。我记得有个项目,MCU是STM32F407,用FSMC接口接LAN9252的并行总线,PDO更新速率直接飙到10kHz以上。

我的经验:

如果MCU主频超过200MHz,且PDO数据量大于128字节,建议用并行总线。否则SPI完全够用。别为了省几根线把性能砍了。

2.3 PHY芯片与变压器电路

PHY芯片负责把EtherCAT的数字信号转成差分模拟信号,变压器则提供隔离。这两个选不好,你的从站可能连不上主站。

PHY芯片 我推荐KSZ8081或LAN8720。它们都是RMII接口,跟LAN9252直连。注意PHY的时钟源——LAN9252可以输出50MHz时钟给PHY,也可以让PHY自己晶振。我习惯用LAN9252提供时钟,这样少一个晶振,BOM成本低一点。

变压器 选型要看共模抑制比和隔离电压。工业现场干扰大,变压器至少要有1500Vrms的隔离。我踩过一个坑:用了便宜的变压器,结果EtherCAT线缆一靠近变频器,链路就丢包。后来换成TDK的HX1188,问题解决。

下面这张图是我画的典型从站硬件架构,你一看就明白:

EtherCAT从站硬件架构 变压器 HX1188 变压器 HX1188 PHY 1 KSZ8081 PHY 2 KSZ8081 ESC LAN9252 8KB DPRAM MCU STM32F407 SPI/并行 EtherCAT IN EtherCAT OUT SPI/并行

嗯,这张图很直观。信号从EtherCAT线缆进来,先过变压器隔离,再到PHY转成数字信号,然后ESC处理数据帧,最后通过SPI或并行总线交给MCU。反向路径同理。

2.4 硬件设计避坑指南

做EtherCAT从站硬件,有几个坑我帮你列出来:

  • PHY复位时序:LAN9252的复位信号必须保持至少1ms低电平。我曾经用MCU的GPIO直接拉低,结果复位时间不够,PHY死活不工作。后来加了个RC延时电路搞定。
  • 变压器中心抽头:HX1188的中心抽头要接3.3V,不是GND。接反了信号幅度直接减半,EtherCAT链路根本建不起来。
  • PCB差分走线:PHY到变压器的差分对要等长,误差控制在5mil以内。我见过有人随便拉线,结果EMC测试过不了,辐射超标。
  • DPRAM访问冲突:ESC和MCU同时访问DPRAM时,要处理好仲裁。LAN9252内部有硬件仲裁,但如果你用SSC方案,得自己写逻辑。我有个同事没注意这个,数据读出来全是乱的。

特别注意:

EtherCAT从站的PHY芯片必须支持自动协商关闭功能。因为EtherCAT是确定性协议,不需要自动协商。如果PHY开启了自动协商,链路建立时间会变长,导致主站扫描不到从站。我遇到过好几次这种问题,最后在PHY寄存器里把自动协商关了才解决。

2.5 实际项目中的选型组合

我整理了几种常见的组合,供你参考:

应用场景 ESC方案 MCU PHY 接口
简单IO从站 LAN9252 STM32F103 LAN8720 SPI
伺服驱动器 SSC (FPGA) STM32F407 + FPGA KSZ8081 并行总线
高速数据采集 LAN9252 STM32H743 KSZ8081 并行总线
低成本从站 LAN9252 GD32F303 LAN8720 SPI

你看,不同场景的选型差别很大。我个人建议,如果你刚开始做EtherCAT从站,先拿LAN9252 + STM32F407这套组合练手。资料多、社区活跃,遇到问题好查。等把流程跑通了,再考虑SSC方案或者换国产MCU降成本。

好了,这一章的内容就这些。硬件架构搞清楚了,下一章我们就能开始写驱动了。记住,硬件是基础,基础不牢,地动山摇。


公众号:蓝海资料掘金营,微信deep3321