EtherCAT协议基础
三种工作模式
工作模式 | 同步方式 | 同步精度 | 应用场景 |
---|---|---|---|
自由运行模式 | 不同步 | 无严格同步 | 数据采集、监控等低实时性应用 |
同步管理模式 | 通过 Sync Manager | 低到中等 | 一般工业控制、低精度运动控制 |
分布式时钟同步模式 | 通过 Distributed Clocks | 高精度(亚微秒级) | 高精度运动控制、伺服控制 |
层级结构
EtherCAT(Ethernet for Control Automation Technology)协议是一种专门用于工业自动化的实时以太网通信协议,其结构由多个层级构成,每一层负责不同的通信和控制任务。EtherCAT 的协议层级包括物理层、数据链路层、网络层和应用层等,这些层次共同协作,实现高效、实时的数据传输和控制。以下是 EtherCAT 协议的主要层级介绍:
### 1. **物理层(Physical Layer)**
EtherCAT 采用标准的以太网物理层,通常基于 **100BASE-TX** 或 **100BASE-FX** 技术。这意味着 EtherCAT 使用标准的以太网传输介质,如 **双绞线** 或 **光纤**。在物理层方面,EtherCAT 的特点如下:
- **传输速率**:通常为 **100 Mbps** 的全双工传输,适合大多数工业控制的实时需求。
- **拓扑结构**:支持链型(Line)、环型(Ring)、星型(Star)和树型(Tree)拓扑,这使得 EtherCAT 网络具有很强的灵活性和容错性。
- **设备连接**:支持多种连接方式,包括 RJ45 接口、光纤连接等,确保了在不同工业环境中的适用性。
### 2. **数据链路层(Data Link Layer)**
数据链路层是 EtherCAT 协议的重要部分,它定义了以太网数据帧的结构和数据的传输方式。EtherCAT 在此层中使用独特的 **EtherCAT 主/从机制** 和 **处理帧机制**,直接访问从站的数据,提高了传输效率。
- **帧处理机制**:EtherCAT 使用一种特殊的帧处理方式,数据帧在通过每个从站设备时被实时处理,从站只在需要时修改帧中的特定字节而不停止帧的传输,这称为 **"处理帧"** 的机制。这一机制显著减少了通信延迟。
- **帧结构**:EtherCAT 帧采用标准的以太网帧格式,但在上层负载(EtherType 为 0x88A4)中封装了 EtherCAT 专用协议。
- **主从机制**:EtherCAT 使用主从架构。主站负责发送数据帧,并控制从站的状态;从站设备则响应主站的请求,读写数据并执行控制命令。
### 3. **网络层(Network Layer)**
EtherCAT 网络层主要负责节点寻址和数据传输路径的管理,使主站可以高效地与多个从站进行通信。
- **逻辑地址**:EtherCAT 网络层使用逻辑地址的方式对从站进行访问。每个从站在网络中有一个唯一的逻辑地址,主站根据逻辑地址快速访问过程数据。
- **分段和广播**:EtherCAT 支持分段访问和广播机制,可以将同一个数据帧发送到多个从站,大幅度提高了网络带宽利用率。
- **自动地址分配**:主站可以自动分配每个从站的地址,这个过程称为 "自动地址初始化",有助于简化配置和减少手动设置地址的工作量。
### 4. **传输层(Transport Layer)**
在 EtherCAT 协议中,传输层的作用是管理不同类型的数据传输请求,包括读写数据、访问设备寄存器和状态信息等。传输层支持以下几种传输类型:
- **过程数据(Process Data)传输**:用于主站与从站之间实时交换控制和状态数据。
- **MailBox 通信**:通过 FoE(File over EtherCAT)、CoE(CANopen over EtherCAT)等通信协议进行非实时数据传输,比如配置、诊断和文件传输。
- **同步管理单元(Sync Manager, SM)**:传输层利用同步管理单元确保从站设备的同步操作。Sync Manager 将数据划分到不同的通信通道中,如输入、输出、事件等,实现实时控制。
### 5. **应用层(Application Layer)**
EtherCAT 的应用层定义了上层协议(如 **CoE**、**FoE**、**SoE**、**VoE** 等),这些协议支持 EtherCAT 的配置、参数化和数据通信任务,是 EtherCAT 协议在应用中实现各种功能的关键。
- **CoE(CANopen over EtherCAT)**:兼容 CANopen 标准,用于参数配置、过程数据通信和诊断。CoE 是 EtherCAT 中最常用的应用协议,使用对象字典(Object Dictionary)定义从站参数,支持PDO和SDO通信。
- **FoE(File over EtherCAT)**:用于文件传输,通常用于固件更新或数据文件传输。FoE 是一种简单、快速的文件传输协议,不需要复杂的配置。
- **SoE(Servo over EtherCAT)**:用于伺服驱动器的控制,兼容 IEC 61800-7-304 标准。SoE 协议通过IDNs(数据标识符)传递伺服参数,适用于伺服控制系统。
- **VoE(Vendor-specific over EtherCAT)**:用于厂商自定义的通信协议,允许设备制造商在 EtherCAT 网络中实现特定功能和专有数据通信。
### 6. **分布式时钟(Distributed Clocks, DC)**
分布式时钟(DC)并非 EtherCAT 协议的一个独立层级,但它在协议栈中发挥着非常重要的作用。DC 是 EtherCAT 实现高精度同步的关键技术。
- **时间同步**:EtherCAT 使用主站的参考时钟(通常是第一个从站的时钟)作为基准,通过在从站之间分发时间信息,使从站设备保持同步。
- **同步精度**:分布式时钟系统可以实现亚微秒级的同步精度,适合工业自动化中的高精度要求,例如伺服控制、同步采样和实时反馈等。
### 7. **安全层(Safety Layer)**
EtherCAT 支持通过 **FSoE(Functional Safety over EtherCAT)** 实现安全通信。这一层在 EtherCAT 标准协议之上,实现了安全相关数据的可靠传输,适用于功能安全要求较高的应用场合。
- **安全标准**:FSoE 符合IEC 61508、IEC 61784-3等安全标准,可以在同一 EtherCAT 网络上同时进行安全数据和非安全数据的传输。
- **安全通信**:FSoE 定义了安全数据包的格式和传输方法,确保数据传输的完整性和可靠性。
### **总结**
EtherCAT 协议层级涵盖了从物理连接到高层应用的各个方面,以下是各层的概述:
- **物理层**:基于100BASE-TX或100BASE-FX,支持灵活的拓扑结构。
- **数据链路层**:采用特殊帧处理机制,实现高效数据传输。
- **网络层**:负责逻辑地址分配和数据分段,提高通信效率。
- **传输层**:管理过程数据和 MailBox 通信,通过 Sync Manager 实现同步。
- **应用层**:提供 CoE、FoE、SoE 等协议,支持设备参数配置和实时通信。
- **分布式时钟**:实现高精度同步,是 EtherCAT 支持精确时间同步的重要技术。
- **安全层(FSoE)**:用于功能安全通信,确保高安全性数据传输。
EtherCAT 的协议层级设计充分考虑了实时性、同步性和高可靠性等工业应用的需求,使其成为工业自动化中高性能通信系统的优选方案。
数据流
EtherCAT 的数据流设计独特,采用“处理帧”机制,使其能够在主站和多个从站之间实现高效的数据传输。EtherCAT 的数据流围绕数据帧的快速传递和实时处理,确保工业控制系统的高精度和低延迟。以下是 EtherCAT 数据流的关键流程和工作原理:
### 1. **数据帧的创建与发送**
- **帧创建**:在 EtherCAT 网络中,数据传输由主站(Master)控制。主站生成包含多个从站数据的单一 EtherCAT 数据帧,并在帧中安排从站的输入和输出数据区域。这些区域在帧中占据不同的偏移位置,每个从站都有指定的地址空间。
- **帧发送**:数据帧一旦生成,主站将其通过网络发送出去。帧以广播形式传递给 EtherCAT 链路上的每个从站。由于 EtherCAT 不依赖交换机或中继器,数据流可以在整个网络中实现高效传输。
### 2. **数据帧的“处理帧”机制**
- **直接处理**:在传统的以太网中,数据包会被一个从站接收并解析后再转发到下一个从站,这会导致延迟增加。EtherCAT 采用一种“处理帧”机制,即数据帧在从站之间传递时无需停止,而是直接穿过从站,从站只读取或写入自己的数据区域。
- **即时读写**:每个从站在接收到数据帧时,会识别出自己的数据偏移位置,直接在数据帧的特定位置上读写数据,而帧在通过该从站时不发生中断或停顿。这使得数据帧能够快速流经整个网络,而不受从站数量的影响。
- **单帧覆盖多个从站**:由于从站只处理与自己相关的数据区域,所以一帧可以包含多个从站的读写数据,这种机制大大提高了数据传输效率。
### 3. **逻辑地址与数据映射**
- **逻辑地址**:EtherCAT 使用逻辑地址对从站进行数据定位。每个从站的数据在帧中都有固定的逻辑地址偏移,主站可以通过帧中的偏移量直接访问任意从站的过程数据。
- **数据映射**:通过从站配置文件(如 ESI 文件),可以为每个从站分配指定的数据地址空间。主站通过数据映射知道每个从站的数据位置和数据类型,并可以在数据帧中直接读写这些位置的数据。
- **分段与组播**:EtherCAT 的数据流支持分段和组播,允许主站对多个从站同时进行读写操作。这样,一个数据帧可以同时访问多个从站的数据,减少了多帧传输的需求。
### 4. **数据流的循环路径与反馈**
- **环形路径与反馈**:在 EtherCAT 的典型环形拓扑结构中,数据帧会通过所有从站后返回到主站,形成一个闭环路径。主站通过帧返回的数据确认整个数据传输是否成功,并检查从站是否正确写入了反馈数据。
- **错误检测与重发机制**:如果数据帧在返回主站时出现错误,主站可以重新发送该帧。由于 EtherCAT 数据流的循环特性,主站可以实时监控整个链路上的通信状态,并立即检测到链路中断或数据丢失。
- **冗余与容错**:EtherCAT 支持冗余通信,即主站可以通过双链路或冗余端口发送数据,以确保即使在网络出现断点时也能够维持数据流畅通。
### 5. **分布式时钟同步的数据流**
- **分布式时钟(DC)机制**:在高精度同步应用中,EtherCAT 的数据流还支持分布式时钟(DC)同步。DC 机制通过在帧中分发时间戳,确保每个从站根据主站的参考时间精确同步。这样,多个从站能够以微秒级的同步精度完成控制任务。
- **时间戳嵌入**:主站在数据帧中嵌入参考时间戳,从站接收到帧后将时间信息与内部时钟对齐,实现精确的同步。这一机制确保所有从站在相同的时间点执行操作,从而满足高精度控制系统的要求。
### 6. **过程数据与 Mailbox 数据**
- **过程数据(Process Data)**:在 EtherCAT 中,过程数据是实时数据的核心,通常用于控制信号、状态反馈等需要高实时性的数据传输。过程数据直接在数据帧中传输,保证最低的延迟。
- **Mailbox 数据**:Mailbox 数据用于配置和诊断,通常包括非实时的数据,如参数设置、固件更新等。Mailbox 数据以分块的方式封装在数据帧中,并具有更高的优先级,以确保重要的参数配置不会中断。
- **同步管理器(Sync Manager, SM)**:同步管理器负责管理过程数据和 Mailbox 数据的分配,确保在同一个数据帧中,实时数据和非实时数据能够并行处理而不会互相干扰。
### 7. **数据流的定周期与优先级控制**
- **定周期发送**:主站在设定的周期内持续发送数据帧,通常为1毫秒或更短的周期时间,以保证数据的实时性。主站可以根据应用需求调整周期时间,以适应不同的控制频率。
- **优先级控制**:EtherCAT 帧的数据流支持优先级控制。实时性要求高的数据(如过程数据)会优先传输,而 Mailbox 等非实时数据会在带宽允许的情况下传输。通过这种优先级机制,EtherCAT 确保实时数据的及时传递,维持网络的高效性。
### 总结
EtherCAT 数据流的高效性和实时性得益于其“处理帧”机制、逻辑地址访问、分布式时钟同步和循环反馈等特性。其主要流程如下:
1. 主站生成包含所有从站数据的单一帧,并发送到链路上的第一个从站。
2. 每个从站在帧传递过程中直接读取或写入属于自己的数据位置,帧无需中断或转发。
3. 帧完成所有从站的读取和写入后返回主站,主站验证数据并进行周期性监控。
4. 在高精度同步应用中,通过分布式时钟机制确保从站的同步执行。
EtherCAT 数据流机制在工业控制场景中具有显著优势,提供了高带宽利用率和低延迟的实时通信保障。
名词解释
ESI | EtherCAT Slave Information |
CTT | EtherCAT Conformance Test Tool |
SoE | Servo Profile over EtherCAT |
FSoE | Functional Safety over EtherCAT |
CoE | CANopen over EtherCAT |
FoE | File over EtherCAT |
PDO | Process Data Object |
PDI | Process Data Interface |
SDO | Service Data Object |
SM | Sync Manager |
DC | Distributed Clocks |
SM模式