第3章:从站硬件平台介绍

好,咱们进入正题。这一章我打算聊聊从站硬件平台。说白了,就是你的EtherCAT从站到底长什么样,用什么芯片,怎么搭起来。

我记得刚接触EtherCAT那会儿,最头疼的就是选芯片。市面上那么多选择,ET1100、ET1200、LAN9252……到底哪个适合我的项目?嗯,今天我就把这些年踩过的坑、总结的经验,一次性说清楚。

3.1 常用从站控制器芯片

先说说主流的几款芯片。我个人的习惯是,先看项目需求,再选芯片。别一上来就追求最贵的,也别图便宜选个性能不够的。

3.1.1 ET1100

这是Beckhoff最早推出的从站控制器芯片,也是目前用得最广泛的。它支持4个数据端口,可以实现线型、星型、树型拓扑。我在一个产线项目中用过它,跑了三年没出过问题,稳定性确实没得说。

核心参数:

  • 支持4个EtherCAT端口
  • 最大PDO数据长度:8KB
  • 内置DPRAM:8KB
  • 工作温度:-40°C ~ +85°C
  • 封装:BGA256 / QFP144

不过要注意,ET1100的功耗相对较高,大概在1.5W左右。如果你做的是电池供电的设备,这个功耗就得掂量掂量了。

3.1.2 ET1200

ET1200是ET1100的简化版,只支持2个端口。说白了就是给那些只需要线型拓扑的场景准备的。价格便宜不少,适合做低成本从站。

我曾经在一个传感器采集项目中用过ET1200。当时客户要求成本压到最低,我就选了它。嗯,效果还不错,就是调试的时候发现它的DPRAM只有4KB,数据量大的时候得精打细算。

特性 ET1100 ET1200
端口数 4 2
DPRAM大小 8KB 4KB
典型功耗 1.5W 0.8W
适用场景 复杂拓扑 线型拓扑

3.1.3 LAN9252

Microchip的LAN9252是后来者,但势头很猛。它最大的优势是集成了以太网PHY,省掉了外部PHY芯片。你想想看,这能省多少PCB面积和成本?

我个人比较喜欢LAN9252的一点是,它的寄存器映射和ET1100基本兼容。这意味着你之前写的ET1100驱动代码,稍微改改就能用在LAN9252上。我在一个项目里就做过这种移植,前后只花了三天时间。

我的建议:

如果你是新手,我建议先从LAN9252入手。原因有三:

  1. 集成PHY,硬件设计简单
  2. 资料丰富,社区活跃
  3. 价格适中,容易买到

3.2 从站硬件架构

聊完芯片,咱们看看整个从站的硬件架构。说白了,一个典型的EtherCAT从站由三部分组成:

  • 通信接口:负责和主站交换数据
  • 从站控制器:处理EtherCAT协议
  • 应用层MCU:执行实际的控制逻辑

为什么会这样设计?因为EtherCAT对实时性要求极高,协议处理必须由专用硬件完成。而应用层的逻辑,比如读取传感器、控制电机,交给通用MCU更灵活。

我记得有个学员问我:「能不能用一个高性能MCU同时做协议处理和应用逻辑?」理论上可以,但实际中我建议你别这么干。我在一个项目中试过,结果协议栈一跑,MCU的CPU占用率就飙到80%以上,应用逻辑根本跑不动。

3.3 最小系统设计

好了,到了最实战的部分——最小系统设计。什么叫最小系统?就是让从站能跑起来的最简硬件配置。

3.3.1 电源设计

EtherCAT从站通常需要3.3V和1.8V两路电源。3.3V给I/O接口用,1.8V给内核供电。我习惯用LDO,虽然效率低点,但纹波小,对通信稳定性有好处。

注意:

我曾经在一个项目中忽略了电源纹波,结果从站时不时掉线。查了两天才发现是电源噪声干扰了PHY芯片。从那以后,我每次设计都会在电源输出端加一个10μF的陶瓷电容和0.1μF的高频去耦电容。

3.3.2 时钟电路

从站控制器需要外部晶振提供时钟。ET1100和LAN9252通常用25MHz晶振。嗯,这里有个坑——晶振的精度要选±50ppm以内的,否则可能导致同步误差。

我建议你直接买有源晶振,虽然贵几块钱,但信号质量好,省心。无源晶振需要匹配负载电容,调试起来麻烦。

3.3.3 EEPROM配置

每个EtherCAT从站都需要一个EEPROM来存储配置信息。包括厂商ID、产品码、站地址等。容量不用太大,64KB就够用。

我记得第一次烧写EEPROM时,忘了设置写保护引脚,结果调试过程中配置数据被意外擦除了。从那以后,我都在硬件设计时把写保护引脚拉高,只在需要烧写时再拉低。

3.3.4 接口电路

EtherCAT物理层使用MII或RMII接口连接从站控制器和PHY。如果你用LAN9252,它内部集成了PHY,只需要外接一个网络变压器和RJ45座子。

网络变压器的选型要注意:一定要选支持100BASE-TX的,匝数比1:1。我见过有人用了10BASE-T的变压器,结果100Mbps死活跑不起来。

最小系统清单:

  • 从站控制器芯片(如LAN9252)
  • 25MHz晶振(±50ppm)
  • 64KB EEPROM(如24LC64)
  • 网络变压器(1:1,100BASE-TX)
  • RJ45座子(带LED指示)
  • LDO稳压器(3.3V和1.8V)
  • 去耦电容(10μF + 0.1μF)

好了,这一章的内容就这些。下一章我会带你一步步搭建开发环境,然后开始写第一行代码。到时候你会发现,硬件平台搭好了,软件其实没那么难。