EtherCAT技术详解:协议特点、总线结构与系统组成
EtherCAT技术详解:协议特点、总线结构与系统组成
EtherCAT是一种实时工业以太网技术,由德国倍福自动化公司于2003年提出。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。本文将详细介绍EtherCAT的协议特点、总线结构、系统组成等多方面信息。
简单总结
- 要使用EtherCAT只需要电路板上加一个从站控制器芯片,比如LAN9253、AX58100,然后从站控制器芯片引出网口,MCU/DSP与从站控制器芯片通信读写数据。
- EtherCAT只能主机发送数据帧,然后从机从数据帧上读取数据判断是否发送给自己,或者从机把自己要发送的数据附在此数据帧上。因此避免了多个从机同时发送数据的仲裁时间。
- EtherCAT 完全符合以太网标准,在电脑上运行TwinCAT软件,就可以作为主机控制从机了。
EtherCAT 协议概述
EtherCAT 是由德国 BECKHOFF(倍福) 自动化公司于 2003 年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。EtherCAT使用主从结构,从站使用专用的控制芯片,主站使用标准的以太网控制器。
EtherCAT 从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性极强。
EtherCAT 工业以太网在全球多个领域得到广泛应用,如果机器控制、测量设备、医疗设备、汽车和移动设备已经无数的嵌入设备。
EtherCAT 协议特点
- EtherCAT 完全符合以太网标准,可以与其它以太网设备及协议并存于同一个总线,以太网交换机等标准结构组件也可以用于EtherCAT。
- EtherCAT 使用标准 IEEE802.3 以太网帧,主站不需要特殊的硬件支持,任何带以太网控制器的设备都有条件作为 EtherCAT 主站,比如嵌入式系统,普通的 PC 和控制板卡等。
- 高效率、刷新周期短。EtherCAT 从站对数据帧的读取、解析和过程数据的提取与插入完全由硬件来实现,这使得数据帧的处理不受 CPU 的性能影响,时间延迟小,实时性高。同时 EtherCAT 可与达到小于 100us 的数据刷新周期。EtherCAT 以太网帧中能够压缩大量的设备数据,使得 EherCAT 网络有效数据率可达 90%以上。根据官方测试 1000 个硬件 IO 更新时间仅为 30us,包括 IO 周期时间,而容纳 1486 个字节的单个以太网帧的通信时间仅为 300us。
- EtherCAT 帧类型有 0x88A4 与其他以太网帧作区分。EtherCAT 不需要 IP 协议,但可以封装在 IP/UDP 中,EtherCAT 从站控制器以硬件方式处理。
总线拓扑
EtherCAT 支持多种设备连接拓扑结构:线性、树形、星形等,可以选用的物理介质有 100Base-TX 标准以太网电缆或光缆,使用该物理介质允许两个设备之间最大的电缆长度为 100 米,连接的设备数量理论上可达到 65535 个, 网络的容量几乎没有限制。
数据交互方式
Beckhoff 官方对 EtherCAT 的传递机制命名为:On The Fly。如下图所示:将其想象为一列火车,每个带有从站地址的车厢对应需要与主站交互数据的从站的子报文。系统运行起来就是火车开起来,每个站点对应 EtherCAT 从站,依次停靠站点,如果没有自己设备地址的车厢(子报文),则将货车发往下一站点,如果有自己的车厢,等待乘客上下车(数据交换)完成后,发往下一站点,到达终点站返回始发站,返回过程中不再交互数据,这样就完成了一次通信周期。
通常每个通信周期只需要传输一个以太网数据帧,简单的理解就是一趟火车,完成一次循环,数据帧沿着逻辑环传输一周,完成所有广播式、多播式以及从站间的通信。
EtherCAT 系统组成
EtherCAT 充分利用了以太网的“双全工”特性。使用主从模式介质访问控制(MAC),主站发送以太网帧给各从站,从站从数据帧中抽取数据或者将数据插入数据帧。主站使用标准的以太网接口网卡,从站使用专门的 EtherCAT 从站控制器 ESC(EtherCAT Slave Contronller)。EtherCAT 物理层使用标准的以太网物理层器件。
EtherCAT 主站组成
EtherCAT 主站使用标准的以太网控制器,传输介质通常使用 100BASE-TX 规范的 5 类 UTP 线缆,在本文对应从站的例程,主要使用 PC 端作为主站,同时有网卡芯片的以及 PC 处理器的搭配需求,这点下文会提到。
在基于 PC 的主站中,通常使用网络接口卡 NIC(Network Interface Card),其中网卡芯片集成了以太网通信控制器和物理数据收发器。
EtherCAT 主机硬件
本文使用 PC 电脑端作为 EtherCAT 主机,因为使用 TwinCAT 作为上位机,所以对 PC 的硬件是有要求的。
TwinCAT 对电脑处理器和网卡型号有要求,处理器必须是 Intel 的,网卡也要求是 Intel,其它网卡的兼容性并不保证。
EtherCAT 从站组成
EtherCAT 从站设备同时实现通信和控制应用两部分功能,其中主要是四部分组成。这四部分是构成从站必不可少的因素,在标准 ISO/OSI 的七层参考模型中,EtherCAT 仅仅使用了物理层、链路层和应用层。
1:EtherCAT 从站控制器 ESC
EtherCAT 从站控制器实现链路层协议,一般情况下是使用 BECKHOFF 官方的ET1100 芯片,本文使用性价比较高的 LAN9252 与 LAN9253 芯片实现。
ESC 负责处理 EtherCAT 数据帧,并使用双端口存储器实现 EtherCAT 主站与从站本地应用的数据交换。各个从站 ESC 按照各自在环路上的物理位置顺序移位读写数据帧。在报文经过从站时,ESC 从报文中提取发送给自己的输出命令数据并将其存储到内部存储区,该输入数据从内部存储区又被写到相应的子报文中。数据的提取与插入都是由数据链路层硬件完成。
EtherCAT 通信和完成控制任务还需要从站微控制器主导完成,通常是通过微控制器从 ESC 读取控制数据,从而实现设备控制功能,将设备反馈的数据写入ESC,并返回给主站。由于整个通信过程数据交换完全由 ESC 处理,与从站设备微控制器响应时间无关。从站微控制器的选择不受到功能限制,可以使用单片机、DSP 和 ARM 等。
主要功能:
- 集成数据帧转发处理单元,通信性能不受从站微处理器限制。每个 ESC 最多可提供 8 个数据收发端口。
- 最大 8K 字节的双端口存储器 DPRAM 存储空间,DPRAM 可以由外部微处理器并行或串行数据总线访问,这个访问的接口就是 PDI。
- 具有 FMMU 逻辑地址映射功能,提高数据帧利用率。
- 由存储同步管理器通道 SyncManager(SM)管理 DPRAM,保证数据的一致性与安全性。
- 集成分布式时钟 DC 功能,为微处理器提供高精度中断信号。
- 具有 EEPROM 访问功能,存储 ESC 与应用配置参数,定义从站信息接口。
2:EEPROM
ESC 使用 EEPROM 来存储所需要的设备相关信息,称为从站信息接口。这里涉及到一个关键的点,在使用新开发板的新 EEPROM 芯片,需要使用 PC 上位机对 EEPROM 写入设备信息以及 PDI 接口方式,否则微控制处理器则无法对 ESC 进行操作。
3:从站微控制器处理器
微处理器负责处理 EtherCAT 通信和完成控制任务,本文使用 STM32F407 芯片作为微处理器。微处理器从 ESC 读取控制数据,实现设备控制,并采样设备的反馈数据,写入 ESC,由主站读取。
通信过程完成由 ESC 处理,与设备控制微处理器响应时间无关。微处理器相当于应用层,根据相应的协议编写程序代码,或者直接使用协议栈实现代码。
4:物理层器件
由于我们使用 LAN9253 芯片作为 ESC,LAN9253 已经集成了以太网 PHY 功能,所以 ESC 芯片直接连接 RJ45 网络接口,连接网线即可。
从站原理图:
原理图中除了 STM32 通过 SPI 与 LAN9253 连接之外,还有 EEPROM 芯片与LAN9253 进行连接,EEPROM 芯片存储 EtherCAT 设备信息等内容,包括 LAN9253与 STM32 通信的接口方式(扩展板使用 SPI 接口)都由 ROM 存储,在 STM32 初始化 ESC 时会读取 EEPROM 中的设置,包括了接口信息等内容, 这样才能正常的控制 ESC 芯片。
EEPROM 是给 LAN9253使用的,为啥 LAN9253不内部集成一个存储器呢。。