在上篇,我们梳理了 ESC 硬件故障检查流程、通用故障排查思路,同时讲解了芯片差异对比、端口配置、Tx 相位补偿、复位时序、链路增强功能等硬件设计要点。本篇继续针对项目调试过程中高频遇见的 LED 链路异常、EEPROM 读写重载、无 SII‑EEPROM 通信能力、帧转发逻辑等实际问题做详细说明,方便开发人员快速查阅定位问题。
一、链路 / 活动指示灯表现异常
现象描述
链路 / 活动 LED 出现反常现象:设备未外接任何线缆时指示灯点亮;接入网线连接其他设备后,指示灯反而熄灭。当芯片全部物理端口均接入设备时,从站可以正常建立通信,但无法识别后续级联的从站节点。
故障根因
该现象一般是链路信号极性错误,ESC 识别到的链路状态信息发生相位反相。 即便链路信号极性异常,若全部端口接好线缆,设备依旧可以建立通信:ESC 检测到所有端口均无物理链路信号,会自动将端口 0 开启。可以读取 ESC DL 状态寄存器0x0110来确认该状态,寄存器会反馈所有端口无物理链路的标记。
二、EEPROM 读写与重载操作流程
EEPROM 是 EtherCAT 从站存储 SII 设备信息的关键载体,读、写、重载操作需严格按照寄存器时序执行,完整操作步骤如下:
检查 EEPROM 状态寄存器忙位,确认0x0502[15]=0,EEPROM 接口处于空闲状态;如果忙位为 1,需要循环等待直至接口空闲。
检查 EEPROM 状态寄存器错误标志位。若错误位被置位,向命令寄存器0x0502[10:8]写入000清除错误状态。
将目标 EEPROM 字地址写入 EEPROM 地址寄存器。
向命令寄存器下发对应操作指令:
a) 读命令:向0x0502[10:8]写入001
b) 写命令:同一写帧内,写使能位0x0502[0]置 1,同时向0x0502[10:8]写入010。写使能用于写保护,仅对当前帧内的 EEPROM 命令生效,执行完成硬件自动清零。如果由 PDI 接管 EEPROM 接口控制,则无需 PDI 软件操作写使能位
c) 重载命令:向0x0502[10:8]写入100
指令执行时机:EtherCAT 帧模式下,帧无报错时在 EOF(帧结束)之后执行命令;PDI 直接控制模式下,下发指令后会立即执行。
等待 EEPROM 状态寄存器忙位清零。
再次检查 EEPROM 状态寄存器错误位;错误位通过向命令寄存器写清除指令复位。若出现 EEPROM 无应答情况,需要重试本次命令,回到步骤 5。针对读写速度较慢的 EEPROM 器件,重试前建议预留等待时间,保障芯片内部存储动作完成。
a) 读命令结果:读取 EEPROM 数据寄存器获取返回数据;根据 ESC 规格,可能返回 2 字或 4 字数据,请核对0x0502[6]位确认
b) 重载命令结果:ESC 会把 EEPROM 中的配置信息重新加载到芯片内部对应寄存器。
三、从站脱离 SII EEPROM 的通信能力
即使没有 SII‑EEPROM或是 EEPROM 内 SII 信息损坏,从站依然可以实现基础的 EtherCAT 通信。EtherCAT 数据帧能够正常转发,寄存器读写访问也可正常执行,但无法开展过程数据交换。ESC 硬件会拦截过程数据内存访问操作,该限制需等待 EEPROM 加载成功后才会解除;在常规设计中,也必须待 SII‑EEPROM 加载完成,才会完成 PDI 配置。
利用该特性可实现批量生产烧录:通过 EtherCAT 总线即可对 SII‑EEPROM 为空的从站做初始化烧写,甚至支持数百台空白从站并行广播烧录。
四、EtherCAT 帧转发逻辑说明
ESC 内部包含 EtherCAT 处理单元、自动转发器、回环功能模块。帧流经 EtherCAT 处理单元的路径称为处理方向;不经过处理单元、直接转发的路径称为转发方向。
不同端口数量配置,帧转发顺序存在差异:

EtherCAT数据转发流图

EtherCAT 从站控制器(ESC)内部帧流向框图
数据流从Port0数据接收口进入,内部传到Port3,如果Port3接了其他从站,那么从Port3的出口发出,进到其他从站直至数据环流返回,进入Port3的接收口,内部传到Port1,如果Port1悬空,自动转发到Port1的接收口,再传到Port2,依次类推,直到数据传到Port0的发送口,数据流出到主站或上一级从站。
小结
本篇针对 FCE1X00 系列实际调试中高频的 LED 链路异常、EEPROM 操作、无 SII-EEPROM 工作条件、帧转发逻辑进行完整梳理。结合上篇的硬件排查流程,可覆盖大部分硬件调试场景。 后续我们不仅会持续输出 FCE1X00 系列,还会推出其他产品线的 EtherCAT 开发相关干货,欢迎持续关注,开发过程中遇到问题欢迎留言交流。
网硕互联帮助中心




评论前必须登录!
注册