全部
  • 全部
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
400-048-1230
订阅
  • 首页
  • 解决方案
  • 技术问答
  • 视频中心
  • 知识分享
  • 技术资讯
  • SEED产品
基于SEED-RT118X套件开发EtherCat从站(五)EEPROM
来源:Arrow 发布:2024/07/12 浏览量:530

继上一期 基于SEED-RT118X套件开发EtherCat从站(四)状态机,这期为您带来该系列的第五篇。

继上一期 基于SEED-RT118X套件开发EtherCat从站(四)状态机,这期为您带来该系列的第五篇。

 

i.MX RT1180 EEPROM

 

EtherCAT从控制器利用EEPROM来存储EtherCAT从站信息(ESI),EEPROM的大小根据ESCEtherCAT从站控制器)的不同而有所差异,通常支持从1 Kbit4 Mbit的容量。为了简化设计,EtherCAT从控制器还支持通过微控制器来模拟EEPROM,从而省略物理EEPROM的使用。

 

EEPROM的烧写方法

 

i.MX RT 1180采用了一个外挂的EEPROM来实现EtherCAT从站信息存储功能。在使用EtherCAT功能前,需要在EEPROM中预先烧写相关信息,以确保i.MX RT 1180EtherCAT模块能够正常工作。EEPROM中的内容既可以被从站应用层读取,也可以由EtherCAT主站来读取和修改。

EEPROM内容的烧写通常有两种方法:一种是在从站生产时预先烧写好,另一种是在主站扫描到从站后由主站来动态烧写。然而,由于i.MX RT 1180EtherCAT模块在启动时需要读取EEPROM中的配置信息,如果无法读取到内容,可能会影响其MDIO的工作,进而无法正确配置外部PHY,导致主站无法扫描到从设备。因此,建议在实际部署前,预先在EEPROM中烧写好必要的信息。

 

一旦EEPROM中的内容被预先烧写好,从站就可以被EtherCAT主站正常扫描到。之后,如果需要修改EEPROM中的内容,可以直接通过EtherCAT主站进行动态修改。这种方式不仅简化了从站的生产流程,也提供了更加灵活的配置和管理能力。

 

EEPROM的数据结构

 

EEPROM数据结构如下图所示:

 

EtherCAT从控制器的EEPROM中,内容被分为几个区域,其中前64个字节(063)是协议规定的必要信息,而后续的内容则是可选的。具体来说,前8个字节(07)是ESC配置区域(如下图所示),这些值在芯片上电后会被自动读取,并用于配置EtherCAT模块的工作模式。

 

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM 0-7EEPROM内容:

 

 

 

根据协议可知每个字的值:

0PDI Control

0x0C80

1PDI Configuration

0xEE84

2Pulse Length of SYNCSignals

0x000A

3Extended PDI Configuration

0x0000

4Configured Station Alias

0x0000

5Reserved

0x0000

6Reserved

0x0000

7Checksum

0x0080

 

比如字取值0x0C80,我们可以知道i. MX RT1180EtherCAT模块寄存器地址0x0140的取值就是0x80,地址0x0141的取值就是0x0C

 

EEPROM(字8-15)区域为产品标识区:包括厂商标识(VendorID)、产品码(ProductCode)、版本号(RevisionNo)和序列号(SerialNo),各占两个字。

 

当主站开始扫描设备时,就是通过这里的信息来分辨从站是什么设备。关于这8个字的定义EtherCAT规范如下:

 

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM(字8-15)的EEPROM内容:

 

 

 

根据协议可知每个字的值:

 

8-9Vendor ID

0xE00004D8

10-11Product Code

0x00000002

12-13Revision Number

0x00000011

14-15Serial Number

0x00000000

 

EEPROM16-63区域存储的信息,包括邮箱配置等信息。EtherCAT规范如下:

 

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM 16-63EEPROM内容:

 

其中部分字含义如下:

 

16-19reserved

0x00000000

20Bootstrap Receive Mailbox Offset

0x0000

21Bootstrap Receive Mailbox Size

0x0000

22Bootstrap Send Mailbox Offset

0x0000

22Bootstrap Send Mailbox Size

0x0000

23Standard Receive Mailbox Offset)

0x1000

24Standard Receive Mailbox Size

0x0080

25Standard Send Mailbox Offset)

0x1080

26Standard Send Mailbox Size

0x0080

26Mailbox Protocol)

0x0004

 

其中的字26值为0x0004,表示邮箱使用的协议是COE,这与我们之前分析的代码是一致的。

 

从字64开始,存储的是一系列分类附加信息,这些信息的类型丰富多样,涵盖了字符串、通用信息、FMMU信息、同步管理器信息、TxPDoRxPDo,以及分布时钟等多个方面。这些信息并非必填项,是否填写取决于主站的具体要求。

 

如果主站系统如TwinCATIGH,这些附加信息即使不填写也无妨,因为主站会依赖其内部存储的XML文件来自动读取和解析所需的信息。然而,在另一种情况下,如果主站系统为SOEM或其他不支持XML文件读取的系统,那么这些分类附加信息就变得尤为重要,必须填写完整。这是因为这些主站需要这些附加信息来正确配置和通信与从站。

 

接下来,我们将简要介绍一些常用的分类附加信息。这些数据结构的组织方式相对统一,通常以一个2字节的类型名开始,紧接着是2字节的数据长度字段,用以指示随后数据信息的具体长度,最后则是根据数据长度定义的实际数据信息内容。

 

其中类型名的取值如下图所示:

我们首先看STRINGS(字符串)类型,字符串用于给后面的分类附加信息标注名字。当分类附加信息类型值是10(十进制)时,表示接下来这段数据是字符串,字符串数据结构如下图所示:

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM 字符串内容


 

 

 

 

根据协议解析如下:

 

地址

含义

0x0080

0x000A

10,表示接下来的信息是字符串

0x0082

0x0037

55,表示接下来字符串段一共55个字(110个字节)

0x83

0x0A

10,一共10个字符串

0x84

0x17

23,第一个字符串一共23个字节

0x85-0x9C

........

SEED-RT118X-SERVO-MOTOR

0x9D

0x04

4,第二个字符串一共4个字节

0x9E-0xA1

........

ECAT

0xA2

0x08

8,第三个字符串一共8个字节

0xA3-0xAA

........

Synchron

0xAB

0x08

2,第四个字符串一共2个字节

0xAC-0xAD

........

DC

... ...

... ...

后面类似

 

我们再来看FMMU,当分类附加信息类型值是40(十进制)时,表示接下来这段数据是FMMU信息,结构如下图所示:

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM FMMU内容

 

 

根据协议解析如下:

 

地址

含义

0x0116

0x0028

40,表示接下来的信息是FMMU

0x0118

0x0002

FMMU信息段一共2个字(4个字节)

0x011A

0x01

FMMU0用于过程数据输出

0x011B

0x02

FMMU1用于过程数据输入

0x011C

0x03

FMMU2用于邮箱状态读取

0x011D

0xFF

FMMU3未使用

 

我们再来看SyncM(同步管理器),当分类附加信息类型值是41(十进制)时,表示接下来这段数据是SyncM信息,结构如下图所示:

 

下图是SEED-RT118X EtherCAT控制四电机套件对应EEPROM SyncM内容

 

 

 

 

根据协议解析如下:

 

地址

含义

0x011E

0x0029

41,表示接下来的信息是SyncM

0x0120

0x0010

SyncM信息段一共16个字(32个字节)

0x0122

0x1000

SM0物理起始地址:0x1000

0x0124

0x0080

SM0长度:0x0080

0x0126

0x26

SM0控制寄存器:0x26

0x0127

0x00

SM0状态寄存器:0x00

0x0128

0x01

SM0使能寄存器:0x01,使能

0x0129

0x01

SM0类型寄存器:0x01,用于邮箱输出

0x012A

0x1080

SM1物理起始地址:0x1000

0x012C

0x0080

SM1长度:0x0080

0x012E

0x22

SM1控制寄存器:0x22

0x012F

0x00

SM1状态寄存器:0x00

0x0130

0x01

SM1使能寄存器:0x01,使能

0x0131

0x02

SM1类型寄存器:0x02,用于邮箱输入

0x0132

0x1100

SM2物理起始地址:0x1100

0x0134

0x0006

SM2长度:0x0006

0x0136

0x22

SM2控制寄存器:0x64

0x0137

0x00

SM2状态寄存器:0x00

0x0138

0x01

SM2使能寄存器:0x01,使能

0x0139

0x02

SM2类型寄存器:0x03,用于过程数据输出

0x013A

0x1080

SM3物理起始地址:0x1400

0x013C

0x0080

SM3长度:0x0006

0x013E

0x22

SM3控制寄存器:0x20

0x013F

0x00

SM3状态寄存器:0x00

0x0140

0x01

SM3使能寄存器:0x01,使能

0x0141

0x02

SM3类型寄存器:0x04,用于过程数据输入

 

接下来我们再来看TXPDO(输出过程数据)以及RXPDO(输入过程数据),当分类附加信息类型值是50(十进制)时,表示接下来这段数据是TXPDO信息,当分类附加信息类型值是51(十进制)时,表示接下来这段数据是RXPDO信息,结构如下图所示:

 

其中Entry格式入下图所示:

 

下图是SEED-RT118X EtherCAT控制四电机套件对应TxPDO以及RxPDO内容:

 


 

 

根据协议解析如下:

 

地址

含义

0x0142

0x0032

50,表示接下来的信息是TxPDO

0x0144

0x000C

TxPDO信息段一共12个字(24个字节)

0x0146

0x1A01

PDO索引

0x0148

0x02

子索引数量:一共2

0x0149

0x03

相关联的同步管理器SM3

0x014A

0x00

DC同步

0x014B

0x05

名称索引

0x014C

0x0010

PDO固定内容,不允许修改

下面是TxPDO具体内容

0x14E

0x6041

条目1主索引

0x150

0x00

子索引0x00

0x151

0x06

名称索引0x06,参考附加信息字符串内容,“Status Word

0x152

0x06

数据类型0x06UINT

0x153

0x10

数据长度(bit),表示该条目共16bit

0x154

0x0000

Flags,备用

0x156

0x6064

条目2主索引

0x158

0x00

子索引0x00

0x159

0x07

名称索引0x07,参考附加信息字符串内容,“ActualPosition

0x15A

0x04

数据类型0x04DINT

0x15B

0x20

数据长度(bit),表示该条目共32bit

0x15C

0x0000

Flags,备用

 

地址

含义

0x015E

0x0033

51,表示接下来的信息是RxPDO

0x0160

0x000C

TxPDO信息段一共12个字(24个字节)

0x0162

0x1601

PDO索引

0x0164

0x02

子索引数量:一共2

0x0165

0x02

相关联的同步管理器SM2

0x0166

0x00

DC同步

0x0167

0x08

名称索引

0x0168

0x0010

PDO固定内容,不允许修改

下面是RxPDO具体内容

0x16A

0x6040

条目1主索引

0x16C

0x00

子索引0x00

0x16D

0x09

名称索引0x09,参考附加信息字符串内容,“Control Word

0x16E

0x06

数据类型0x06UINT

0x16F

0x10

数据长度(bit),表示该条目共16bit

0x170

0x0000

Flags,备用

0x172

0x607A

条目2主索引

0x174

0x00

子索引0x00

0x175

0x07

名称索引0x0A,参考附加信息字符串内容,“TargetPosition

0x176

0x04

数据类型0x04DINT

0x177

0x20

数据长度(bit),表示该条目共32bit

0x178

0x0000

Flags,备用

 

上面列出了SEED-RT118X中关于TxPDO以及RxPDO的信息,其具体使用方法可以参考CiA402中的描述。

 

相关阅读

Arrow 工业控制
请使用浏览器分享功能 请点击右上角,进行分享
关于艾睿 代理产品线 联系我们 条款和条件