第5章 EEPROM访问
源码地址
5.1 SII EEPROM简介
从站的ESI文件会被转换成bin文件存储在EEPROM中,从站支持的EEPROM容量为1Kbit~4Mbit。EEPROM存储的数据内容如下表所示
字节 |
EEPROM起始地址(字地址,地址+1=字节+2) |
内容 |
0x00~0x0F |
0x00 |
ESC寄存器配置区 |
0x10~0x1F |
0x08 |
厂商数据区 |
0x20~0x27 |
0x10 |
保留,应为0 |
0x28~0x2F |
0x14 |
引导邮箱配置 |
0x30~0x37 |
0x18 |
标准邮箱配置 |
0x38~0x39 |
0x1C |
支持邮箱协议 |
0x3A~0x7B |
0x1D |
保留,应为0 |
0x7C~0x7D |
0x3E |
EEPROM大小 |
0x7E~0x7F |
0x3F |
版本 |
… |
… |
附加信息 |
EEPROM中的前128字节是必须的基本信息,描述如下:
- ESC寄存器配置区:EEPROM的前16个字节的数据,ESC在上电或者复位的时候自动读取,然后加载到相应的寄存器,并计算校验和。XML中的ConfigData的数据就是该区域前10字节的数据,包含了PDI的配置、sync信号的配置等。
- 厂商数据区:包含厂商ID、产品代码、修订号、序列号,是对象字典0x1018中的内容。
- 引导邮箱配置:BootStrap状态下,进行FOE数据传输的时候会用到该邮箱配置来配置SM。该配置可以在XML中的BootStrap看到。前提是Ethercat Slave Stack Code Tool的配置中配置了Bootstrap和FOE功能。
- 标准邮箱配置:COE通信的时候所用的邮箱配置,可以用来配置SM,当然SM也可以用附加信息中的SM的信息来配置。
- 支持的邮箱协议:从站可以进行那些协议的通信,EOE,COE,FOE,SOE,VOE等。
- EEPROM大小:可以在XML中的EEPROM中看到。
5.2 附加信息
附加信息的存储结构如下表所示:
参数 |
数据类型 |
描述 |
Category Header |
Unsigned16 |
类别,见类别定义表 |
|
Unsigned16 |
数据内容长度,单位是字(这里的字是两个字节,其实是半字) |
Category Data |
Unsigned16 |
类别数据 |
类别定义表:
类别 |
值 |
描述 |
NOP |
0x0000 |
无信息 |
STRING |
0x000A |
存储的字符串数据 |
DataTypes |
0x0014 |
将来使用的数据类型 |
General |
0x001E |
存储一般信息 |
FMMU |
0x0028 |
存储FMMU相关信息 |
SyncManager |
0x0029 |
存储同步管理器配置信息 |
TXPDO |
0x0032 |
存储TXPDO信息 |
RXPDO |
0x0033 |
存储RXPDO信息 |
DC |
0x003C |
存储分布时钟的信息 |
End |
0xFFFF |
结束后,其他的都是0xFFFF填充 |
5.2.1 STRING类别数据结构
参数 |
字节地址偏移 |
数据类型 |
描述 |
nStrings |
0x0000 |
Unsigned8 |
字符串的个数 |
str1_len |
0x0001 |
Unsigned8 |
字符串1的长度 |
str1 |
0x0002 |
Unsigned8的数组 |
字符串1的内容 |
str2_len |
0x0002+str1_len |
Unsigned8 |
字符串2的长度 |
str2 |
0x0003+str1_len |
Unsigned8的数组 |
字符串2的内容 |
… |
… |
… |
… |
strn_len |
… |
Unsigned8 |
字符串n的长度 |
strn |
… |
Unsigned8的数组 |
字符串n的内容 |
PAD_BYTE(补位) |
|
Unsigned8 |
如果类别内容的长度是奇数,则需要填充,默认0x00,类别头中的总长度已经包含了补位长度 |
5.2.2 General 类别数据结构
参数 |
字节地址偏移 |
数据类型 |
描述 |
GroupIdx |
0x0000 |
Unsigned8 |
组信息(供应商特定) |
ImgIdx |
0x0001 |
Unsigned8 |
图像信息(供应商特定) |
OrderIdx |
0x0002 |
Unsigned8 |
设备订货号(供应商特定) |
NameIdx |
0x0003 |
Unsigned8 |
设备名称信息(供应商特定) |
Reserved1 |
0x0004 |
Unsigned8 |
保留 |
CoE Details |
0x0005 |
Unsigned8 |
bit0:使能SDO bit1:使能SdoInfo bit2:使能PdoAssign bit3:使能PdoConfig bit4:使能Pd0Upload bit5:使能Complete Access |
FoE Details |
0x0006 |
Unsigned8 |
bit0:使能FOE |
EoE Details |
0x0007 |
Unsigned8 |
bit0:使能EOE |
SoE Details |
0x0008 |
Unsigned8 |
保留 |
DS402 Channels |
0x0009 |
Unsigned8 |
保留 |
Sysman Class |
0x000a |
Unsigned8 |
保留 |
Flags |
0x000b |
Unsigned8 |
bit0:使能SafeOp bit1:使能notLRW |
Current On EBus |
0x000c |
Unsigned16 |
EBUS电流消耗,单位mA |
Reserved2 |
0x000e |
BYTE[2] |
保留 |
Physical Port |
0x0010 |
Unsigned16 |
物理接口 |
Reserved3 |
0x0012 |
BYTE[14] |
保留 |
5.2.3 FMMU类别数据结构
参数 |
字节地址偏移 |
数据类型 |
值 |
FMMU0 |
0x0000 |
Unsigned8 |
0x00:未使用;0x01:用于输出;0x02:用于输入;0x03:用于轮询输入邮箱状态寄存器(0x80D.0) |
… |
… |
Unsigned8 |
|
FMMUn |
… |
Unsigned8 |
|
5.2.4 SyncManager 类别数据结构
参数 |
字节地址偏移 |
数据类型 |
描述 |
Physical Start Address |
0x0000 |
Unsigned16 |
SM 物理起始地址 |
Length |
0x0002 |
Unsigned16 |
SM 长度 |
Control Register |
0x0004 |
Unsigned8 |
SM 控制寄存器配置 |
Status Register |
0x0005 |
Unsigned8 |
忽略 |
Enable SyncManager |
0x0006 |
Unsigned8 |
bit0:使能SM;bit1:固定内容;bit2:虚拟同步管理通道;bit3:仅OP状态使能SM |
SyncManager Type |
0x0007 |
Unsigned8 |
0x00:没有使用或未知;0x01:用于邮箱输出;0x02:用于邮箱输入;0x03:用于过程数据输出;0x04:用于过程数据输入; |
5.2.5 TPDO与RPDO数据结构
参数 |
地址 |
数据类型 |
描述 |
PDO Index |
0x0000 |
Unsigned16 |