EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。
每个从站设备都具有可编址的内存,其容量最大可为64KB,能够对其进行连续的或同步的读写操作。可以把多个EtherCAT命令数据嵌入到同一个以太网数据帧中,每个数据对应不同的设备或内存区。
全双工传输特性。使用主从模式进行访问控制,主站把数据帧发送给各个从站,每个从站从数据帧中读取自己的数据或把需要输入的数据插入数据帧中,然后将该报文传输到下一个EtherCAT从站。最后一个EtherCAT从站发回经过完全处理的报文,并由第一个从站作为响应报文将其发送给控制单元。
EtherCAT通信是由主站发起的,主站发出的数据帧传输到一个从站站点时,从站将解析数据帧,每个从站从对应报文中读取输出数据,并将输入数据嵌入到子报文中,同时修改工作计数器WKC的值,以标识从站己处理该报文。网段末端的从站处理完报文后,将报文转发回主站(最后一个工业现场设备的EtherCAT从站并且完成相应的操作的时候,在将这个以太网数据报文按原来的路线发送回去,最后由工业现场里第一个EtherCAT从站设备将这个被所有从站设备操作过的网络数据报文作为响应报文发送给自动化控制系统的主站),主站捕获返回的报文并对其进行处理,完成一次通讯过程。一个通讯周期过程中,报文传输延时大概为几个纳秒,克服了传统以太网先对数据包进行解析,再复制成过程数据而造成通讯效率低的缺陷。
EtherCAT主站运行需具备以下几个基本功能:
(1)读取从站设备描述XML文件并对其进行解析,获取其中配置参数
(2)捕获和发送EtherCAT数据帧,完成EtherCAT子报文解析、打包等
(3)管理从站设备状态,运行状态机,完成主从站状态机设置和维护
(4)可进行非周期性数据通信,完成系统参数配置,处理通讯过程中突发事件
(5)实现周期性过程数据通信,实现数据实时交换,实时监控从站状态,从站反馈 信号实时处理等功能。
从站组成
从站采用专用的从站协议控制器(EtherCAT Slave Controller , ESC,本人采用LAN9252)处理网络通信数据。网络数据的处理都在从站协议控制器内部有硬件完成,过程数据接口为从站应用层提供了一个双端口随机存储器( Dual-Port-RAM, DPRAM)来实现数据交换。EtherCAT从站提供网络数据通信和控制任务功能。
EtherCAT Slave Controller(ESC)传输过程:
每个ESC都有四个数据收发端口,并且均可以接收发送以太网帧。
如果ESC的四个端口都有外部链接,数据帧的内部传输顺序固定为端口0 —>端口3 —>端口1 —>端口2 —>端口0,如果某个端口没有外部链接,则此端口关闭,数据帧会自动跳过此端口传输到下一个未关闭的端口。正是由于ESC 这种四端口的收发机制,使得其可以 构成多种物理拓扑结构,如树型、线型和星型结构等。
EtherCAT数据使用类型为0x88A4 的以太网数据帧进行传输。EtherCAT 数据由数据头(2个字节)和的数据区(44~1498 字节)组成。
数据帧结构说明:
1. 目标地址:接收方MAC地址
2. 源地址:发送方MAC地址
3. 帧类型:0x88A4,EtherCAT数据使用类型为0x88A4的以太网数据帧进行传输。
4. EtherCAT帧头:EtherCAT帧头为11bit数据长度;1bit 保留;4bit 类型,等于1时表示EtherCAT数据处于ESC通信中,其余保留。
| EtherCAT帧头 | |||
|---|---|---|---|
| 位数 | 11bits | 1bit | 4bits |
| 意义 | EtherCAT数据长度 | 保留 | 类型 |
| 说明 | 即所有子报文长度总和 |
0x01:EtherCAT DLPDU 0x04:network veriable 0x05:mailbox |
|
5. EtherCAT数据:数据区包含一个或多个EtherCAT 子报文,每一个子报文对应一个独立的从站设备。
1)EtherCAT子报文:
EtherCAT 数据区由不定数目的子报文组成,所有子报文对应操作单独的从站站点。
子报文数据段可根据需求嵌入 CoE、SoE等协议数据格式。
EtherCAT 子报文由子报文头、数据域和工作计数器组成。
2)子报文数据帧格式:
| 子报文 | ||||||||
|
子 报 文 头 |
位 数 |
8bits | 8bits | 32bits | 11bits | 4bits | 1bits | 16bits |
|
意 义 |
命令 | 索引 | 地址区 | 长度 | R | M | 状态位 | |
|
说 明 |
寻址方式及读写方式 | 帧编码 | 从站地址 | 报文数据区长度 | 保留 | 后续报文标志 | 中断到来标志 | |
| 数据 | 长度小于2486bytes | |||||||
| WKC | 工作计数器,WKC 用来记录从站操作子报文的次数,主站给每个子报文预设了 WKC。设置发送子报文的工作计数器初值为 0,从站正确处理子报文后,工作计数器的值将增加一个增量,主站把返回的子报文中的 WKC 和预设的 WKC 作比较后判断子报文是否被从站正确处理。ESC 在处理数据帧的同时处理 WKC,由通信服务的不同决定 WKC 的增加方式。 | |||||||
3)命令码说明:
| 寻址方式 | 读写模式 | 命令名称 | 值 | 描述 |
|
顺 序 寻 址 |
读数据 | APRD | 0x01 | 主站使用顺序寻址从从站读取一定长度数据 |
| 写数据 | APWR | 0x02 | 主站使用顺序寻址向从站写入一定长度数据 | |
| 读/写 | APRW | 0x03 | 主站使用顺序寻址与从站交换数据 | |
|
设 置 寻 址 |
读数据 | FPRD | 0x04 | 主站使用设置寻址从从站读取一定长度数据 |
| 写数据 | FPWR | 0x05 | 主站使用设置寻址向从站写入一定长度数据 | |
| 读/写 | FPRW | 0x06 | 主站使用设置寻址与从站交换数据 | |
|
广 播 寻 址 |
读数据 | BRD | 0x07 | 主站从所有从站的物理地址读取数据 |
| 写数据 | BWR | 0x08 | 主站广播写入所有从站 | |
| 读/写 | BRW | 0x09 | 主站与所有从站交换数据,对读取的数据 | |
|
逻 辑 寻 址 |
读数据 | LRD | 0x0a | 主站使用逻辑地址读取一定长度数据 |
| 写数据 | LWR | 0x0b | 主站使用逻辑地址写入一定长度数据 | |
| 读/写 | LRW | 0x0c | 主站使用逻辑寻址与从站交换数据 |
6. FCS:帧校验