目录
1. EtherCAT 报文寻址
1.1 EtherCAT 网段寻址
1.1.1 直连模式
1.1.2 开放模式
1.2 段内寻址 —— 设备寻址
1.2.1 顺序寻址
1.2.2 设置寻址
1.3 逻辑寻址
1.4 关于WKC
2. 应用层协议
2.1 CoE : CANopen over EtherCAT
2.2 SoE (Servo Drive Profile over EtherCAT)
2.3 FoE (File Access over EtherCAT)
2.4 EoE (Ethernet over EtherCAT)
2.5 AoE (ADS over EtherCAT)
EtherCAT的寻址方式与应用层协议一般会因为一个已经定义好的主站而固定下来,因此这里偷个懒,只做些简要介绍。把更多精力放在 DC 分布时钟问题上可能更好些。
1. EtherCAT 报文寻址
EtherCAT通信由主站发送EtherCAT数据帧读写从站设备的内部存储区实现,该内部存储区即ESC的EEPROM。
EtherCAT报文需要先根据网段寻址,一个EtherCAT网段相当于一个以太网设备。那么根据网段寻址就类似于按不同网口寻找EtherCAT的设备,不同的网口(EtherCAT网段)有不同的IP地址(MAC地址)。而寻找不同网段的方式就是通过EtherCAT协议帧中的目的地址来实现的。
1.1 EtherCAT 网段寻址
通过网段寻址有两种不同的方式:直连模式和开放模式。
1.1.1 直连模式
直连模式是一种常用的EtherCAT网段寻址方式,其中目的MAC地址被固定为全F,此时相当于只有一个网口,从站之间串联。
直连模式是最常用的连接方式,一个主站,直接接入EtherCAT第一个从站设备的EtherCAT In口,第一个EtherCAT从站的EtherCAT Out口接入下一个EtherCAT In口,如此级联。
直连模式下,主站使用广播MAC地址形式。
1.1.2 开放模式
开放模式使用了标准以太网交换机,EtherCAT主站设备与各个从站接入交换机中。主站发送的目的地址就是它所控制网段的MAC地址。
注:目前使用中未见过,不做过多记录。
1.2 段内寻址 —— 设备寻址
当寻找到的指定的网段后,即需要根据子报文头中的地址进一步做段内寻址。段内寻址分为两种方式,一种叫做设备寻址,即根据从站设备实内部物理存储空间地址进行寻址。设备寻址有支持两种机制:顺序寻址 & 设置寻址。
设备寻址中,EtherCAT子报文头内的32bits地址分为16bits从站设备地址和16bits从站设备内部物理存储空间地址(也叫从站内存偏移地址)。理论上讲16bits存储的地址数有65535个,但物理实际上也不太可能连接这么多设备,另外由于主站和通信性能限制,在不同场合也可能有上限差异。
段内寻址:即一个网段内部的从站寻址。
1.2.1 顺序寻址
顺序寻址时,从站的地址由其在网段内的连接位置确定,用一个负数来表示每个从站在网段内由接线顺序所决定的位置。
假设有三个从站,Master -> A -> B -> C. 顺序寻址方式如下:
1. 主站初始化三个子报文及顺序寻址地址 A=0, B = -1, C = -2;
2. EtherCAT数据帧下发,数据帧到达A时,子报文地址为0的报文可被A操作;
3. 子报文顺序地址加1,变更为:A=1, B=0, C=-1;
4. 数据帧到达B时,子报文地址为0的报文可被B操作;
5. 子报文顺序地址加1,变更为:A=2, B=1, C=0;
6. 数据帧到达C时,子报文地址为0的报文可被C操作;
实际应用总,顺序寻址主要用于启动阶段,主站配置站点地址给各个从站。然后可以使用与物理位置无关的站点地址来寻址从站。
1.2.2 设置寻址
设置寻址方式的从站地址由主站在数据链路启动时分配给从站,也可以将从站地址存储在从站的数据存储区。
主站在数据链路启动时,使用顺序寻址的方式读取各个从站已分配的地址,从而实现对指定从站的寻址过程。
1.3 逻辑寻址
逻辑寻址方式在周期性数据交换中非常常用,逻辑寻址需要用到FMMU(现场总线内存管理单元 Fieldbus Memory Management Unit)。FMMU位于从站的ESC中,将从站的本地物理地址映射到网段内的逻辑地址。 FMMU是由主站来配置的。
FMMU的配置对于进一步理解主站状态机部分十分重要。FMMU需要配置数据逻辑起始地址、从站物理内存的起始地址、数据长度、表示映射方向的类型位等。
子报文内的32bits地址区作为整体的数据逻辑地址完成设备的逻辑寻址。
从站设备收到一个数据逻辑寻址的EtherCAT报文后,检查是否有FMMU地址匹配,如果有,就将输入类型数据插入到EtherCAT子报文数据区的对应位置,并从子报文中提取对应的输出类型数据(这个过程是在从站的角度来看的,即从站完成这样的操作)。
1.4 关于WKC
WKC (Working Counter) 是用于对从站设备正确性验证的工作计数器。主站接收回从站的返回的数据帧后,会对WKC进行检查,如果不正确,则表示当前子报文没有被正确处理。
2. 应用层协议
应用层协议分为多种类型:CoE, SoE,EoE, FoE。应用层是EtherCAT协议最高的功能层。应用层向上为应用程序提供服务,向下与网络接口通信。
2.1 CoE : CANopen over EtherCAT
- 将CANopen协议移植到EtherCAT上,用于配置和诊断。继承了CANopen的对象字典概念,便于设备参数的统一管理。
- 支持SDO(服务数据对象)和PDO(过程数据对象)通信。
- 常用于传感器、执行器等设备的实时数据交换和配置。
2.2 SoE (Servo Drive Profile over EtherCAT)
- 专用于伺服驱动器控制的实时数据通信协议标准。
- 定义了伺服驱动器的控制和状态数据结构,包括速度、位置和电流控制等.
需要区分SoE的伺服控制架构与当前的控制架构的区别。
2.3 FoE (File Access over EtherCAT)
- 提供文件传输服务,用于固件更新、配置文件传输等。
- 主要用于非实时数据传输,文件传输速率受限于EtherCAT的整体通信性能
2.4 EoE (Ethernet over EtherCAT)
- 允许在EtherCAT网络上传输标准的以太网帧,实现EtherCAT与传统以太网设备的互联。
- 支持TCP/IP协议栈的通信,可以在EtherCAT网络中传输常规的以太网数据包。
2.5 AoE (ADS over EtherCAT)
- 基于Beckhoff的ADS(Automation Device Specification)协议,实现不同控制系统之间的数据交换。
- 支持设备间的复杂数据通信和远程诊断(参考阅读)。