EtherCAT重学之二: EtherCAT 系统硬件架构

📅 2026/6/30 1:11:52
EtherCAT重学之二: EtherCAT 系统硬件架构
EtherCAT 系统的硬件分为两大部分主站Master和从站Slave。主站负责发起所有通信、配置从站、周期性地交换过程数据从站负责执行主站的命令、响应数据读写、驱动物理设备电机、IO、传感器等。理解每个硬件模块的归属属于主站ESC从站 CPUEEPROM是后续理解协议机制的基础。2.1 主站硬件组成EtherCAT主站的硬件组成出人意料地简单——这是 EtherCAT 协议的一个核心设计优势。2.1.1 主站是否需要专用硬件不需要。EtherCAT 主站可以使用标准的以太网网卡NIC包括台式机/工控机主板集成的千兆/百兆网卡USB 转以太网适配器PCIe 扩展网卡嵌入式平台的 MAC PHY 组合根据 Beckhoff ESC 数据手册 Section I 的描述 EtherCAT uses standard IEEE 802.3 Ethernet frames, thus a standard network controller can be used and no special hardware is required on master side.主站网卡只需要完成一个任务在精确的时间点发送和接收以太网帧。EtherCAT 协议的全部解析和处理由主站软件协议栈完成。但这并不意味着主站没有任何特殊要求。主站的关键需求是实时性需求维度说明典型方案实时操作系统需要确定性调度避免任务被中断或高优先级任务抢占导致周期抖动Linux RT-PREEMPT、Xenomai、VxWorks、TwinCAT/BSD网卡驱动需要绕过内核协议栈直接从用户空间收发原始以太网帧raw socket、SOEM 的 nicdrv、 TwinCAT 的专用驱动定时精度周期任务的唤醒精度直接影响控制抖动TSC 时钟、HPET、RTC精度要求 10 μsCPU 性能需要足够的算力来构造/解析 EtherCAT 帧 运行控制算法根据从站数量和周期时间而定2.1.2 主站软件模块主站的软件架构可以分为以下几个层次各模块归属说明模块归属谁配置/使用说明标准以太网网卡主站硬件主站协议栈收发原始以太网帧不解析 EtherCAT 内容网卡驱动 (nicdrv)主站软件主站协议栈绕过 OS 协议栈直接操作网卡 DMA周期任务 (cyclic task)主站软件主站协议栈按固定周期唤醒触发帧发送Process Image主站软件应用层 协议栈主站内存中的过程数据镜像逻辑地址空间PDO 管理主站协议栈协议栈 应用层负责 LRW 帧构造/解析SDO/CoE 管理主站协议栈协议栈配置阶段通过 Mailbox 读写从站对象字典FMMU 配置主站协议栈协议栈启动阶段计算并下发各从站的 FMMU 寄存器SyncManager 配置主站协议栈协议栈启动阶段计算并下发各从站的 SM 寄存器DC 同步管理主站协议栈协议栈启动阶段测量传播延迟、补偿 offset/drift状态机控制主站协议栈协议栈启动阶段控制从站状态转换ENI/配置数据配置文件主站协议栈描述网络拓扑和从站配置2.1.3 主站实时线程的执行流程一个典型的主站周期任务执行流程如下定时器唤醒周期任务被硬件定时器如 HPET唤醒周期时间由应用需求决定如 1 ms、500 μs、125 μs。更新输出数据应用层将控制算法计算得到的输出值写入主站的 Process Image逻辑地址空间中的输出区。构造 LRW 帧协议栈根据 Process Image 构造一个或多个 LRW Datagram覆盖所有从站的输出区和输入区。发送帧通过网卡驱动将 EtherCAT 帧发送到网卡网卡通过 PHY 发出。等待返回帧经过所有从站后返回主站网卡接收返回帧。解析输入数据协议栈解析返回帧中的输入数据更新 Process Image 的输入区。检查 WKC比较返回帧中各 Datagram 的 WKC 与预期值判断通信是否成功。应用层处理将输入数据交给控制算法进入下一个周期。整个流程必须在周期时间内完成否则会导致周期超时错误。2.2 从站硬件组成从站的硬件比主站复杂得多因为它需要完成 EtherCAT 通信的全部从站端功能。一个典型的 EtherCAT 从站包含以下模块2.2.1 Ethernet PHYEthernet PHY物理层收发器负责将数字信号与物理介质上的电信号/光信号相互转换。EtherCAT 使用100BASE-TX100 Mbps 全双工作为标准物理层。特性说明接口类型MIIMedia Independent Interface或 EBUSEtherCAT 专用 LVDS 接口数据速率100 Mbps 全双工PHY ↔ ESC 连接MII 接口4 位数据 x 25 MHz 时钟或 RMII/RGMIIESC 内置 PHY部分 ESC如 LAN9252集成 PHYET1100 需要外接 PHY链路检测ESC 通过 MII 的 LINK 信号或寄存器检测端口链路状态帧进入从站时先经过什么硬件答案是PHY → ESC。物理信号首先进入 PHY 芯片PHY 将信号解码为 MII 接口的并行数据送入 ESC 的对应端口。ESC 的 EPUEtherCAT Processing Unit解析帧内容决定如何处理。2.2.2 ESCEtherCAT Slave ControllerESC 是 EtherCAT 从站的核心芯片承担全部 EtherCAT 通信的硬件处理工作。不同型号的 ESC 在功能上有差异以下是主流 ESC 的对比特性ET1100 3^ET1200 7^LAN9252 2^厂商BeckhoffBeckhoffMicrochip封装BGA128小型封装QFN64/QFP64端口数2~4 (MII/EBUS)2~3 (MII/EBUS)2 (内置 PHY) 1 MIIFMMU 数量833SyncManager 数量844DPRAM 大小8 KB1 KB4 KB分布式时钟64 位64 位64 位数字 IO PDI32 位16 位16 位SPI PDI支持支持支持μController PDI8/16 位异步支持8/16 位异步FPGA IP Core有无无ESC 的内部功能模块包括EtherCAT Processing Unit (EPU)负责解析 EtherCAT 帧头和 Datagram执行命令读/写/读写管理端口转发和环回逻辑更新 Working CounterDPRAMDual-Port RAM双端口 RAM地址范围0x1000 ~ 0xFFFF大小取决于 ESC 型号两个独立访问端口EtherCAT 端EPU 访问和 PDI 端从站 CPU 访问用于存储过程数据PDO和 Mailbox 数据FMMUFieldbus Memory Management Unit将 32 位逻辑地址映射到 16 位本地物理地址每个 FMMU 通道配置一段连续的逻辑地址空间到连续的物理地址空间支持位级映射bit-level mappingSyncManager同步管理器管理 EtherCAT 主站和 PDI 之间的数据缓冲区两种模式Buffered Mode用于 PDO和 Mailbox Mode用于 SDO/CoE保证数据一致性和访问安全DC Unit分布式时钟单元64 位本地系统时间计数器支持 Sync0/Sync1 信号输出支持 Latch0/Latch1 信号输入时间戳ESC 寄存器0x0000 ~ 0x0FFF类型/版本寄存器0x0000~0x0003FMMU/SyncManager 配置寄存器AL 控制/状态寄存器状态机DC 配置寄存器中断和看门狗寄存器2.2.3 PDIProcess Data InterfacePDI 是 ESC 与从站应用处理器MCU/DSP/FPGA之间的数据交换接口。PDI 的类型决定了从站 CPU 如何读写 ESC 内部的 DPRAM 和寄存器。根据 Beckhoff ESC 数据手册 Section I 8^PDI 有以下几种类型PDI 类型数据宽度典型应用场景特点Digital I/O8~32 位简单数字输入输出模块无 MCU直接驱动 GPIOESC 自动映射 DPRAM 到数字端口SPI Slave串行小型 MCU如 STM32、PIC4 线接口节省引脚速度受限于 SPI 时钟8/16 位 μController8/16 位并行中等复杂度从站异步或同步并行总线类似 SRAM 接口FPGA 接口并行FPGA-based 从站Avalon (Altera) 或 PLB/OPB (Xilinx) 总线通用 GPIO位级简单控制和状态少量通用输入输出2.2.4 EEPROM / SII每个 EtherCAT 从站都包含一个EEPROM通常为 I²C 接口的串行 EEPROM如 24Cxx 系列用于存储SIISlave Information Interface数据。EEPROM 中的关键信息包括信息类别内容用途ESC 配置PDI 类型、端口配置、Watchdog 设置ESC 上电后自动加载Vendor ID厂商标识如 Beckhoff 0x00000002主站识别厂商Product Code产品代码主站识别具体产品Revision Number版本号区分不同硬件版本Serial Number序列号唯一标识Mailbox 配置SM0/SM1 的默认配置用于初始化 Mailbox 通信PDO 信息默认 PDO 映射和分配用于配置过程数据Bootstrap固件升级配置可选ESC 上电或复位后会自动从 EEPROM 读取前几个字节通常是前 8 个字即 16 字节来配置自身的 PDI 和基本参数。这是 ESC 能够正常工作的前提条件。2.3 ESC 与从站 CPU 的边界这是理解 EtherCAT 从站工作原理的关键问题EtherCAT 实时数据是否必须经过从站 CPU答案是不一定。这取决于从站的复杂度和 PDI 类型。2.3.1 场景一无 MCU 的数字 IO 从站最简单的 EtherCAT 从站是纯数字 IO 模块它没有 MCUESC 通过Digital I/O PDI直接将 DPRAM 中的数据映射到物理 GPIO 引脚。主站 LRW 帧 → ESC → DPRAM[0x1000] 的 bit0 → Digital I/O PDI → 物理输出引脚 物理输入引脚 → Digital I/O PDI → DPRAM[0x1000] 的 bit8 → ESC → 返回主站在这种场景中从站 CPU 完全不参与EtherCAT 通信。数据从主站直达物理引脚延迟仅取决于 ESC 的转发延迟。2.3.2 场景二带 MCU 的智能从站大多数智能从站如伺服驱动器、温度控制器、IO-Link 主站包含一个 MCU/DSP 来运行应用固件。此时 ESC 与 MCU 通过 PDI通常是 SPI 或并行总线连接。从站 CPU 何时参与阶段ESC 的角色从站 CPU 的角色初始化阶段自动从 EEPROM 加载配置运行 boot 代码初始化外设状态机转换响应主站的 AL Control 请求执行状态转换的应用层代码Mailbox 通信通过 SM0/SM1 缓冲数据读取 Mailbox 数据处理 SDO/CoE 请求PDO 数据交换通过 SM2/SM3 自动缓冲可选在 Sync0 中断中采样/更新数据DC 同步生成 Sync0/Sync1 信号响应 Sync0 中断执行控制环从站 CPU 如何读取主站写入的 RxPDO 数据主站在周期通信中通过 LRW 帧将输出数据写入 ESC 的 DPRAM具体位置由 FMMU 配置决定。ESC 的 SyncManager通常是 SM2配置为 Buffered Mode管理这个缓冲区。从站 CPU 通过 PDI 读取 DPRAM 中 SM2 缓冲区的数据。如果启用了 DC Sync0从站 CPU 在 Sync0 中断中读取数据确保采样时刻的同步性。从站 CPU 如何把采样数据放入 TxPDO从站 CPU 将输入数据写入 ESC DPRAM 中 SM3 缓冲区的位置。ESC 的 SyncManagerSM3Buffered Mode管理这个缓冲区。主站的 LRW 帧经过时ESC 自动将 SM3 缓冲区的数据填入返回帧。如果启用了 DC Sync0从站 CPU 在 Sync0 中断中写入数据。2.3.3 关键结论问题答案EtherCAT 通信是否必须经过从站 CPU否。ESC 独立完成所有 EtherCAT 通信。从站 CPU 是否必须参与 PDO 交换否。数字 IO 从站无需 CPU。智能从站在 Free Run 模式下也无需 CPU 参与 PDO 交换。从站 CPU 何时必须参与处理 MailboxSDO/CoE、执行 DC Sync0 中断、运行应用控制算法。从站 CPU 不参与会怎样如果只需要 PDO 交换且工作在 Free Run 模式从站 CPU 可以不参与。但无法处理 Mailbox 请求也无法实现 DC 同步控制。2.4 数据流向全景为了将主站和从站的硬件模块串联起来下图展示了 EtherCAT 系统中完整的数据流向数据流向说明输出方向主站 → 从站应用层将输出值写入主站 Process Image逻辑地址空间主站协议栈构造 LRW 帧将输出数据填入 Datagram 的数据区帧依次经过每个从站的 ESC每个 ESC 根据 FMMU 配置将属于本站的数据写入 DPRAMRxPDO 区SyncManagerSM2缓冲数据等待从站 CPU 读取输入方向从站 → 主站从站 CPU 将输入值写入 DPRAMTxPDO 区SyncManagerSM3缓冲数据主站的 LRW 帧经过时ESC 根据 FMMU 配置从 DPRAM 读取数据填入返回帧帧返回主站协议栈解析输入数据更新 Process Image应用层读取输入值2.5 小结与常见误区小结主站只需要标准以太网网卡 实时操作系统 EtherCAT 主站协议栈软件。从站的核心是ESC 芯片它独立完成所有 EtherCAT 通信处理。PHY负责物理层信号转换ESC 负责 EtherCAT 协议处理两者通过 MII/EBUS 连接。DPRAM是 ESC 内部的双端口 RAMEtherCAT 端和 PDI 端可同时访问。PDI是 ESC 与从站 CPU 的接口类型包括 Digital I/O、SPI、并行总线、FPGA 总线等。EEPROM/SII存储从站配置信息ESC 上电后自动加载。从站 CPU 不参与EtherCAT 帧的实时处理只在 Mailbox 通信、DC 同步中断、应用算法时介入。常见误区误区正确理解EtherCAT 主站需要专用 ASIC错误。标准网卡即可软件协议栈完成全部主站功能。EtherCAT 从站必须用高端 MCU错误。简单数字 IO 从站不需要 MCU复杂从站用普通 MCU 通过 SPI 即可。从站 CPU 必须处理每个 EtherCAT 帧错误。ESC 硬件独立处理帧CPU 只在需要时通过 PDI 访问 DPRAM。ESC 的 DPRAM 只有 ESC 能访问错误。DPRAM 是双端口的ESCEtherCAT 端和从站 CPUPDI 端可同时访问。EEPROM 只是存储配置不重要错误。ESC 上电后必须从 EEPROM 加载配置才能正常工作。EEPROM 损坏会导致从站无法识别。所有 ESC 的 FMMU/SM 数量相同错误。不同型号差异很大ET1100 有 8 个 FMMU 8 个 SMLAN9252 只有 3 个 FMMU 4 个 SM。