首页 / 驱动算法 / EtherCAT专题

从机(从站):ESC 硬件与固件实现

从站是 EtherCAT 的"工位":ESC 芯片负责硬件级飞读飞写,MCU 负责跑应用,SII 告诉主站"我是谁、我能干什么"。本文讲透从站硬件组成、ESC 选型、SII 内容,以及一个伺服从站固件里过程数据怎么流转。

1. 从站长什么样:ESC + MCU + SII

一个典型 EtherCAT 从站(比如一台伺服驱动器)由三部分组成:

模块职责典型器件
ESC 从站控制器硬件级处理 EtherCAT 数据链路:飞读飞写、SM/FMMU/DC、WKC——不用 MCU 参与就能收发帧ET1100、LAN9252、AX58100、FCE1100 等
MCU 微控制器跑应用层:读过程数据→执行 FOC/控制→写回;跑 CoE 对象字典、FoE 固件升级STM32、GD32、XMC4800(内嵌 ESC)等
SII 从站信息接口一片 EEPROM,存从站身份与配置(厂商/产品/PDO/DC…),主站上电读它建图24Cxx 系列 EEPROM
PHY + 变压器 + RJ45物理层收发,ESC 与网线之间的电信号转换100BASE-TX PHY(部分 ESC 内建双 PHY)
数据流(一帧经过从站的完整路径)

IN 口 → PHY → ESC(在线读走 SM2 输出、写入 SM3 输入,WKC+2)→ PHY → OUT 口

同时 ESC 产生中断 → MCU:取 SM2 → 跑控制环 → 写 SM3 → 等下一帧被"飞读"

2. ESC 芯片选型:从站的"心脏"

ESC 决定从站的通信能力上限。常见选型:

ESC厂商端口 / PHY特点
ET1100倍福 Beckhoff最多 4 端口 / 外接 PHY行业标杆、资料最全;8 个 FMMU、8 个 SM、64 位 DC;成本较高
LAN9252 / 9253Microchip2/3 端口 / 内建双 PHY性价比高、RMII 接 MCU、集成 PHY 省板子,大量国产伺服选用
AX58100亚信 ASIX2/3 端口 / 内建双 PHY国产高性价比,通过倍福认证,支持 3 端口级联与 DC
FCE1100 / FCE1354方芯半导体4 端口 / 内建 PHY国产替代 ET1100 / LAN9254,引脚兼容、量产供货稳定
XMC4800英飞凌 Infineon内嵌 ESCARM Cortex-M4 内嵌 EtherCAT 从站,单片搞定通信+控制
✅ 选型思路

伺服/运动控制从站:优先 LAN9252 或 AX58100(内建 PHY、RMII 好接、成本低、案例多);要最高可靠性/复杂拓扑选 ET1100;想一颗芯片干完通信+控制选 XMC4800;国产替代保供选 FCE 系列

3. SII:从站的"身份证"

SII(Slave Information Interface)是接在 ESC 上的一颗 EEPROM,主站上电时通过 ESC 的 EEPROM 接口读它,内容包含:

SII 写错是"主站认不出从站/配置失败"的高频原因,量产前务必用从站测试工具(如倍福 SSC/从站评估工具)校验。

4. 从站固件:过程数据在 MCU 里怎么走

从站固件通常由 ESC 驱动 + 通信协议栈(CoE)+ 应用层三层组成。成熟做法是直接用厂商提供的从站栈(倍福 SSC Slave Stack Code、或商业栈),把精力留给应用。主循环伪码:

/* 伺服从站主循环(简化) */ for (;;) { esc_service(); /* 服务 ESC:SM 事件、邮箱(CoE)收发 */ if (PDO 新输出到达) { /* SM2 中断:主站下发目标值 */ rx.target_pos = od_read(0x607A); /* 目标位置(CSP 模式) */ rx.ctrl_word = od_read(0x6040); /* 控制字(使能/停机) */ foc_run(&rx, &tx); /* 跑 FOC 电流/速度环 */ od_write(0x6041, tx.status_word); /* 状态字 */ od_write(0x6063, tx.actual_pos); /* 实际位置 */ } esc_update_output(); /* 把 OD 值打包进 SM3,等下一帧取走 */ }

4.1 CoE:上一专题的知识直接复用

CoE 从站就是"对象字典 + SDO/PDO",与 CANopen 完全同构:索引 6040h 控制字、6041h 状态字、6060h 操作模式、607Ah 目标位置、6063h 实际位置……一模一样。区别只在传输:

4.2 伺服从站的典型过程数据

方向对象含义
主站→从站(输出)6040h 控制字 · 6060h 操作模式 · 607Ah 目标位置 / 60FFh 目标速度 / 6071h 目标转矩命令
从站→主站(输入)6041h 状态字 · 6061h 模式显示 · 6063h 实际位置 · 606Ch 实际速度 · 6077h 实际转矩反馈

这些对象通过 PDO 映射进过程数据,由主站一个 LRW 周期(常见 1 ms / 250 µs)整网同步交换——这就是"多轴 FOC 伺服 + EtherCAT"的经典形态。

4.3 FoE:远程固件升级

从站固件升级常用 FoE:主站把从站切入 BOOT 态,用 FoE 把固件文件(.bin)发给从站,从站写入 Flash 后重启。无需现场拆机,工业设备远程维护的关键手段。

⚠️ 从站开发三大坑

1) SII 没写对:主站认不出/配置对不上,先验 EEPROM;2) SM 缓冲握手没做对:MCU 没及时取走数据会被 ESC 覆盖,出现"偶发丢数据";3) DC 没配好:多轴动作不同步,轨迹走形——务必按从站栈的 DC 示例配置 Sync0。

5. 交互式演示:从站过程数据(PDO)交换

拖动"主站下发的目标位置",观察它如何写入 SM2 输出缓存 → MCU 读走执行 → 把实际位置写回 SM3 输入缓存 → 被下一帧"飞读"回主站。

从站 PDO 过程数据交换演示
帧到达 → SM2 收到新目标 → MCU 执行 → 实际位置写 SM3 → 帧返回主站(WKC 递增)。

观察要点:每一帧往返,主站读走"实际位置"、留下"目标位置";从站实际位置会平滑跟随目标(模拟位置环)。这就是 1ms 周期里每个伺服从站都在做的事。

6. 从站小结

  1. 从站 = ESC(飞读飞写)+ MCU(跑应用)+ SII(身份)+ PHY/接口
  2. ESC 选型:ET1100 标杆 / LAN9252、AX58100 高性价比 / FCE 国产替代 / XMC4800 集成
  3. SII 决定主站怎么认你,量产前务必校验
  4. 固件 = ESC 驱动 + CoE 栈 + 应用层;过程数据经 SM2/SM3 与 MCU 交换
  5. CoE + CiA 402 与 CANopen 同构,传输从 CAN 帧换成 逻辑寻址 + 邮箱 + DC
  6. FoE 实现远程固件升级

至此 EtherCAT 专题闭环:物理层(线怎么连)→ 协议层(帧怎么传)→ 主站(怎么调度)→ 从站(怎么落地)。回到专题目录,或继续 FOC 主线的其余高级篇。