[EtherCAT] CoE协议与服务数据(SDO)和过程数据(PDO)

一、EtherCAT通信模型

EtherCAT主从站间的数据通信在数据链路层分为3种方式:寄存器访问邮箱模式访问(MailBox)Buffer模式访问(Process Data)

邮箱模式和Buffer模式均是访问ESC内部的PDRAM(Process Data RAM),进行数据交互。寄存器访问是直接读写ESC内部的寄存器, 用于配置和获取状态。

邮箱模式的数据(SDO数据)和Buffer模式的PDO数据都需要通过CoE(CANopen over EtherCAT)对象字典解析的才能明确数据含义。通过邮箱模式的FOE数据, EOE数据等无须使用对象字典解析。

ESC的内存空间寄存器和RAM都是双端口访问的,主站通过EtherCAT数据帧访问, 从站通过PDI总线访问

为保证访问不会竞争,寄存器会分配不同的权限, 比如寄存器0x100 ESC DL Control是主站可写,从站只读。 对于主站和从站都可写的寄存器会有相应位用于控制权限的获取和释放。

对于RAM部分,ESC硬件内部设计了Sync Manger(同步管理器)对其进行管理,同样限制了主站和从站的读写权限,根据SyncManger的配置不同,可以分为邮箱模式和Buffer模式。

下图为EtherCAT从站设备模型:

1.1 邮箱模式:

邮箱模式是请求-应答模式。 邮箱数据支持CoE, FoE,EoE等协议格式的数据。

服务数据SDO就是使用CoE协议,通过邮箱方式通信。

1.2 Buffer模式:

Buffer模式属于生产者-消费者模式, 用于周期性高实时性性的数据传输, 也就是PDO数据。 一般PDO数据会通过ESC的FMMU功能实现数据帧中逻辑地址上的内容映射到ESC的PDRAM中,实现数据交互。

二、CoE与服务数据SDO和过程数据PDO

基于CoE协议的通信可以分为两种: 服务数据SDO与过程数据PDO, 两种通信的数据对象均在CoE的对象字典OD中描述。

2.1 对象字典OD

对象字典是一个标准化结构,其中含有描述从站行为的所有参数。通过16位的索引和8位的子索引来查找对象字典中的某个数据信息。

针对不同应用场景,有不同的协议规范。
比如针对运动控制场景, CiA制定的CIA402(CAN in Automation 402运动控制协议)。它的核心特点之一就是定义了标准化的对象字典(如:0x6040控制字,0x6041状态字, 0x607A目标位置、0x6064实际位置等), 遵守同一协议的设备之间能够实现互操作。

另外对象字典涉及的内容很多,有些是静态的,让用户从中读取信息。例如标准化的设备子协议区。有些是动态可写入的,让用户按需进行配置,比如通信对象子协议区中的PDO参数对象部分,供用户配置PDO映射。

以下为COE协议的部分规范定义:


2.2 过程数据PDO

过程数据PDO,用于实时的数据传输,是周期性控制过程中主从站之间需要传输的数据对象,这些数据对象的定义在CoE的对象字典中描述。
如cia402协议中,0x6040(Control word 控制字),0x6041(Status word 状态字)属于PDO数据类型, 周期性实时传输。

PDO分为RxPDO和TxPDO两类, 它们的命名是依据从站视角的接收或发送分类:
主站发送给从站的,称为RxPDO。
从站发送给主站的,称为TxPDO。

2.3 服务数据SDO

服务数据对象SDO,用于配置过程,是主从站之间进行非周期性通信时的数据对象。对象字典中除PDO以外部分都可以称为SDO。

三、PDO映射与分配:

对象字典中只有部分实时性要求高的数据对象使用PDO方式传输。主从站之间需要约定对象字典中的哪些数据通过PDO传输。这个约定是通过对象字典中的PDO映射合PDO分配这两类对象来实现。

通常与PDO映射与分配相关的一种情形是CIA402中不同控制模式的切换, 不同的控制模式所传输的PDO数据对象是不同的。

3.1 PDO映射与PDO分配对象

"PDO映射对象"和"PDO分配对象"是与PDO的配置相关的两个SDO,虽然名称里带有PDO但并不属于PDO。"PDO"、"PDO映射对象"和"PDO分配对象"实际上是层层嵌套的关系,三者配合起来用于描述具体使用哪些PDO来控制从站设备。

3.2 PDO映射对象

PDO映射对象分为RxPDO映射对象和TxPDO映射对象两类,每类都有若干个对象,每个PDO映射对象用于映射一组PDO。

RxPDO映射对象位于对象字典索引0x1600到0x17FF位置,TxPDO映射对象位于0x1A00到0x1BFF位置。

PDO映射对象包含n个子索引,子索引0表示该PDO映射对象中映射了多少个PDO,其余子索引表示映射了哪些PDO。

3.3 PDO分配对象

PDO分配对象有两个分配对象, 分别是:
一个RxPDO分配对象,在对象字典中的索引为0x1C12;
一个TxPDO分配对象,在对象字典中的索引为0x1C13。


综上PDO映射与分配有三种情况:

一种从站的PDO映射是固定不变的,不能被更改的,例如ECAT_IO demo中的PDO数据。

一种是可以选的,例如ECAT_CIA402 demo,从站支持csv\csp等3种控制模式, 也就对应着3种PDO数据;主站可以通过配置RxPDO分配对象0x1C12和TxPDO分配对象0x1C13来选择不同的控制模式。

一种是完全可配置的PDO,也称为动态PDO,不仅可以配置PDO映射对象,还能配置PDO分配对象, 实现最大的灵活, 需要主从站软件支持才行。

下文《[EtherCAT]COE添加对象字典内容》中将会详细说明修改COE字典的方法。

参考文章:
https://blog.csdn.net/weixin_42927110/article/details/136064355
https://zhuanlan.zhihu.com/p/592339535

0
0
发表回复 0

Your email address will not be published. Required fields are marked *