3. EEPROM基础知识

在EtherCAT从站设备中,EEPROM并不是一个可有可无的“配件”,而是设备身份与配置信息的核心载体。从站上电后,主站首先通过ESC(EtherCAT Slave Controller)读取EEPROM中的信息,才能识别设备类型、PDO映射、同步管理器配置以及厂商自定义参数。因此,理解EEPROM的存储原理、I2C总线接口以及EtherCAT从站EEPROM的物理结构与访问方式,是掌握设备配置与故障排查的基础。

一、EEPROM存储原理

EEPROM(Electrically Erasable Programmable Read-Only Memory)即电可擦除可编程只读存储器。其基本存储单元是浮栅MOS管,通过向浮栅注入或移除电荷来表示“0”或“1”。与RAM不同,EEPROM在断电后仍能保持数据,因此适合存放设备出厂参数、序列号、配置字等需要长期保存的信息。

EEPROM的写入过程通常需要先擦除再写入,且擦写次数有限,典型寿命在10万到100万次之间。写入速度远低于读取速度,因此在实际使用中应避免频繁写操作。EtherCAT从站EEPROM一般容量较小,常见为1 Kbit、2 Kbit、4 Kbit或8 Kbit,按字节寻址,支持随机读取和按页写入。

EEPROM的读取是随机访问,写入则通常按页进行。EtherCAT主站启动阶段以读取为主,正常运行时几乎不写EEPROM,因此寿命通常不是瓶颈。

二、I2C总线接口

EtherCAT从站EEPROM通过I2C总线与ESC连接。I2C是一种两线制串行总线,由SCL(串行时钟)和SDA(串行数据)组成,支持多设备挂载。ESC作为I2C主设备,EEPROM作为从设备,通过7位从机地址进行寻址。标准I2C EEPROM的从机地址通常为1010xxx,其中低三位由硬件引脚A2/A1/A0决定。

I2C通信的基本时序包括起始条件、从机地址传输、应答位、数据字节传输和停止条件。EEPROM内部采用字地址寻址,访问时需要先发送字地址,再读取或写入数据。对于容量大于2 Kbit的EEPROM,字地址需要两个字节;小容量器件则使用一个字节。

I2C读EEPROM典型时序:
START → 从机地址+W → ACK → 字地址高字节 → ACK
      → 字地址低字节 → ACK → START → 从机地址+R → ACK
      → 数据字节 → NACK → STOP

ESC内部集成了I2C主控制器,主站通过ESC寄存器接口间接访问EEPROM。这种方式称为“ECAT访问”,不需要主站直接操作I2C引脚,而是由ESC硬件完成时序生成与数据搬运。

三、EtherCAT从站EEPROM的物理结构

EtherCAT从站EEPROM的存储空间按字(Word,16位)组织,前几个字具有固定含义,称为“配置区”或“信息区”。典型结构如下:

字地址 内容 说明
0x0000 配置区第一个字 包含PDI类型、设备类型等基础信息
0x0001 配置区第二个字 包含EEPROM容量、版本等
0x0002 校验和 对配置区进行校验
0x0003 厂商ID 设备制造商标识
0x0004 产品代码 设备型号标识
0x0005 版本号 设备版本
0x0006 序列号 设备唯一编号
0x0007 保留 —
0x0008起 SM配置、FMMU配置、PDO映射等 由主站读取并配置从站

其中,配置区前7个字(0x0000~0x0006)是EtherCAT规范强制定义的,主站必须能够正确读取。若校验和错误或厂商ID、产品代码不匹配,主站可能拒绝该从站进入OP状态。

四、EEPROM的访问方式

EtherCAT从站EEPROM的访问方式主要有三种:

  1. ESC寄存器访问:主站通过读写ESC的EEPROM控制寄存器(如0x0500~0x050F)发起I2C传输,ESC自动完成对EEPROM的读写。这是最常用的方式。
  2. PDI访问:部分从站控制器允许PDI(过程数据接口)侧微控制器直接访问EEPROM,用于设备自身读取配置或写入参数。
  3. 外部编程器访问:在生产或维修阶段,可通过I2C编程器直接连接EEPROM引脚进行烧录,不经过ESC。

主站通过ESC寄存器访问EEPROM时,典型流程为:写EEPROM地址寄存器→写控制寄存器启动读操作→轮询状态寄存器→从数据寄存器读取数据。该过程由ESC硬件自动完成I2C时序,主站只需操作寄存器。

主站读取EEPROM字地址0x0003(厂商ID)示例:
1. 写0x0502 = 0x0003   // EEPROM地址
2. 写0x0500 = 0x0100   // 启动读,1个字
3. 轮询0x0500 bit0     // 等待BUSY清零
4. 读0x0508            // 读取厂商ID低字
5. 读0x050A            // 读取厂商ID高字
若EEPROM校验和错误,ESC可能进入错误状态,主站无法读取从站信息。此时应检查EEPROM是否为空片、校验和是否计算正确、I2C总线是否被拉低或地址冲突。

五、案例与常见误区

某设备在EtherCAT主站扫描时显示“EEPROM校验和错误”,从站无法进入OP状态。排查发现EEPROM为新片,未烧录配置区。使用I2C编程器写入正确的厂商ID、产品代码和校验和后,设备正常识别。这说明EEPROM配置区是EtherCAT从站正常工作的前提。

常见误区包括:认为EEPROM可以随意频繁写入;忽略I2C上拉电阻导致通信失败;将不同容量EEPROM的字地址长度混淆;以及未正确计算校验和。实际调试中,应优先确认EEPROM供电、I2C上拉、从机地址和配置区内容。

EtherCAT从站EEPROM访问路径与物理结构 EtherCAT主站 寄存器访问 / 邮箱 EtherCAT帧 ESC 从站控制器 I2C主控制器 EEPROM控制寄存器 0x0500 ~ 0x050F I2C总线 SCL / SDA EEPROM 1K~8Kbit / I2C接口 从机地址:1010xxx A2/A1/A0 硬件寻址 字地址寻址 / 按页写入 EEPROM 存储空间结构(按字寻址) 0x0000 配置区字0:PDI类型、设备类型 0x0001 配置区字1:EEPROM容量、版本 0x0002 校验和(对配置区校验) 0x0003 厂商ID(Vendor ID) 0x0004 产品代码(Product Code) 0x0005+ 版本号、序列号、SM/FMMU/PDO配置… 强制配置区 校验 设备标识 扩展配置

总结来看,EEPROM是EtherCAT从站与主站建立信任关系的“身份证”。掌握其存储原理、I2C接口时序、物理结构布局以及ESC寄存器访问方式,才能在设备配置、故障诊断和批量生产中做到心中有数。实际工程中,建议在设备出厂前统一烧录并校验EEPROM配置区,避免现场因校验和错误导致从站无法上线。