一、 数据传输方式:PDO/SDO
主站与从站进行数据交互的方式主要通过PDO和SDO,即过程数据和邮箱数据其概念与CANOpen中的概念相同。
(一)PDO(过程数据对象):单向传输,无需接收节点回应报文来确认。PDO 分为 TPDO(发送 PDO)和(接收 RPDO),发送和接收是以节点自身 为参考。PDO 的两种传输方式:同步传输和异步传输。
过程数据用来传输周期性的数据,PDO由三个数据缓冲区组成,类似于一个FIFO,从站写入第一个缓冲区,主站从第三个缓冲区读走。注意第二个缓冲区不可操作。从站发送PDO和接受PDO各自采用两个独立的数据缓冲区。有同步管理器来控制缓冲区,每一个同步管理器只负责一种功能,例如同步管理器2负责发送PDO,同步管理器3负责接受PDO。
(二)SDO(服务数据对象):服务确认是 SDO 的最大的特点, 为每个消息都生成一个应答,确保数据传输的准确性。
邮箱通信用来发送非周期性的数据,邮箱通信只有一个数据缓冲区,通信方式采用握手的机制确保主从之间的数据交互不丢失,而PDO由于采用FIFO的机制,可能会出现新值覆盖旧值或旧值被多次读走的情况。SDO也由同步管理器来进行管理,发送和接受邮箱独立控制,例如同步管理器0控制发送邮箱,同步管理器1控制接受邮箱。
二、应用层协议
(一)COE (CANopen over EtherCAT) : 该协议是一个具有开放性的标准应用层协议。其中CANopen协议是基于CAN协议的链路层上实现的。EtherCAT协议在应用层支持CANopen协议,因此支持CANopen协议的从站可以被运用在EtherCAT协议上。
-
SDO(Service Data Object)通信:
需要主站和从站处于 Pre-Operational 状态。此状态用于配置从站参数(如PDO映射、对象字典配置等)。 -
PDO(Process Data Object)通信:
需要主站和从站处于 Operational 状态。在此状态下,实时过程数据(输入/输出)通过PDO进行周期性交换。
(二)SOE (Sercos over EtherCAT) : SERCOS是世界首个应用于伺服控制的协议。EtherCAT协议在应用层接口上兼容了这个协议,简称为SOE。SERCOS应用层协议为主站设计了信息接口,可以通过配置EtherCAT过程数据报文,实现周期性传递伺服驱动器的数据。
(三)EOE (EtherNet over EtherCAT) : 该协议支持EtherCAT能分段传递标准的以太网数据报文,使得EtherCAT协议同样能支持TCP/IP、UDP/IP协议。
(四)FOE (File Access over EtherCAT) : 该协议可以使用EtherCAT总线上传、下载固件,刷新从站的固件。并且可以通过命令行工具加载或存储文件。
-
文件传输(如固件升级):
需要主站和从站处于 Pre-Operational 状态。FOE通常用于非实时操作(如文件读写或固件更新),因此需要在非实时状态下进行以确保安全性和稳定性。
三、EtherCAT数据帧格式
四、状态机切换
Init:初始状态,仅用于初始化从站,无法进行数据通信;
Pre-Operational:配置状态,允许非实时通信(如SDO、FOE);主站通过SDO配置从站;
Safe-Operational:部分设备支持的中间状态,允许非周期性的安全数据交换;支持SDO通讯,从站允许发送PDO数据;。
Operational:实时运行状态,支持周期性PDO通信;所有SDO,TXPDO,RXPDO全部有效。
参考文档: