EtherCAT 是什么
什么是EtherCAT?
EtherCAT (Ethernet for Control Automation Technology) 是一种高性能、实时的工业以太网技术,是一种让工业设备(例如传感器、执行器、控制器等)之间能够快速、高效且精确地互相通信的网络标准。
EtherCAT 的原理是什么?
EtherCAT 的核心原理:“飞速处理”(Processing on the Fly)。
传统的工业以太网在每个设备之间通信时,通常需要发送和接收独立的以太网帧。每个设备收到数据包后,需要解析这个数据包,提取出与自己相关的信息,然后再发送自己的数据包。这个过程比较耗时,效率不高。
而 EtherCAT 的工作方式:
- 主站发送一个数据帧 (EtherCAT Frame):EtherCAT 网络中有一个主站 (Master) 设备,通常是一个工业 PC 或控制器。主站会构建一个包含所有需要传输的数据的以太网帧。
- 数据帧“飞速”通过每个从站 (Slave):网络中的其他设备被称为从站 (Slave),例如传感器、电机驱动器等。当这个数据帧经过每一个从站时,不需要停下来接收整个数据包再发送,而是:
- 读取:从数据帧中直接提取与自己相关的数据。
- 写入:同时,从站也会将自己需要发送的数据直接插入到这个正在通过的数据帧的特定位置。
- 继续传递:然后,这个被修改过的数据帧会继续快速地传递给下一个从站。
- 最后一个从站返回数据帧:当数据帧到达最后一个从站后,这个从站会将数据帧原路返回给主站。
- 主站接收完整的数据:主站收到返回的数据帧后,就获得了所有从站的响应数据。
关键名词解释:
- 主站: 在 EtherCAT 网络中,负责发起通信和控制整个网络的设备。它发送命令和接收数据。
- 从站: 在 EtherCAT 网络中,是被主站控制的设备,例如传感器、执行器等。它们接收主站的命令,并向主站报告状态数据。
- 以太网帧: 以太网中传输数据的基本单元,包含了目标地址、源地址、数据内容等信息。
“飞速处理”的优势在于:
- 速度快:由于每个从站的处理时间通常在微秒级别。
- 效率高:一个以太网帧可以包含多个从站的数据,大大提高了带宽利用率,减少了网络开销。
- 精确同步:EtherCAT 支持分布式时钟功能,可以实现整个网络中各个从站之间纳秒级的精确同步,这对于需要 coordinated motion 的应用非常重要。
为什么从站可以实现”飞速处理“?
EtherCAT 从站的硬件(通常是专用的 EtherCAT 从站控制器芯片)中集成了高速的逻辑电路,可以直接在数据通过的时候进行操作。当 EtherCAT 帧的以太网头部被识别后,从站控制器会根据帧中包含的偏移量和数据长度信息,直接在硬件层面读取与自身相关的数据,并同时将自身需要发送的数据直接写入到帧中的预留位置。这个过程完全由硬件完成,速度非常快,通常只需要几个纳秒。
EtherCAT 省略了传统网络中复杂的传输层 (TCP/UDP) 和网络层 (IP) 等协议。EtherCAT 帧中直接包含了用于控制和数据交换的EtherCAT 协议数据单元 (ADU),每个 ADU 都明确指定了目标从站和需要操作的数据。从站的硬件可以直接识别这些 ADU 并进行处理,无需复杂的软件解析。
从站是如何知道自己所需要的数据地址的
EtherCAT主站依靠 EtherCAT网络信息文件(ENI) 初始化和操作网络,它包含与EtherCAT主站本机以及连接到主站上每个从站设备的配置一般性信息。该文件由配置工具创建,并由EtherCAT主站程序加载。ENI 文件包含了网络中所有从站的类型、数量、连接顺序,以及每个从站支持的参数和数据对象。
在网络启动时,主站会发送特殊的 EtherCAT 命令来扫描网络中的所有从站,并自动识别网络的物理拓扑结构。
基于 ENI 文件和网络扫描的结果,主站会为每一个从站分配一个唯一的逻辑地址。这个逻辑地址在 EtherCAT 网络内部使用,与以太网 MAC 地址不同。分配逻辑地址的方式通常是基于从站在网络中的物理位置。
配置PDO:
PDO 是 EtherCAT 中用于实时数据交换的核心概念。它代表了从站需要发送给主站的输入数据和从主站接收的用于控制从站的输出数据。
- 在初始化阶段,主站会根据 ENI 文件中描述的每个从站的 PDO 配置信息,确定每个 PDO 包含哪些数据以及这些数据在从站内部的地址。
- 主站会将这些 PDO 映射到 EtherCAT 数据帧中的特定区域:
- 输入 PDO 的数据应该被写入到 EtherCAT 帧的哪个起始位置,以及占用多少字节 。
- 输出 PDO 的数据是从 EtherCAT 帧的哪个起始位置读取,以及读取多少字节。
从站存储配置信息:
- 每个 EtherCAT 从站的控制器芯片 (EtherCAT Slave Controller, ESC) 会存储主站发送给它的配置信息,包括它的逻辑地址、分配给它的输入和输出 PDO 在 EtherCAT 数据帧中的偏移量和长度等。
分布式时钟的作用
所有的从站控制器都有分布式时钟硬件。分布式时钟是从站中相对独立的一个单元,对外输出SYNC信号或者接收LATCH信号。
由于在EtherCAT网络中,主站的硬件具有不确定性,最低只需要一张以太网卡即可。从站的硬件设备是内嵌分布式时钟的,将默认主时钟设置为支持分布式时钟功能的第一个从站,此处“第一个”指的是按照EtherCAT数据帧传输顺序,首次最先经过的从站设备。
主站在每个 EtherCAT 通信周期中,会将参考时钟的当前时间戳包含在 EtherCAT 数据帧中发送出去。
ESC 在数据帧到达和离开本地时,精确地捕获两个时间戳:
- 接收时间戳: 数据帧到达该从站的时间。
- 发送时间戳: 数据帧离开该从站的时间。
通过这两个时间戳的差值,每个从站可以测量出数据帧在自己这里的传输延迟。
主站接收到返回的数据帧后,会收集到每个从站的接收和发送时间戳信息。根据这些信息,计算出每个从站相对于参考时钟的传播延迟,并考虑到数据帧在整个网络中的往返时间。主站向每个从站发送调整指令,告知它们需要如何调整自己的本地时钟,以使其与参考时钟同步。
每个从站的硬件控制器会根据主站发送的调整指令,在硬件层面微调自己的本地时钟频率或偏移量,使其与参考时钟保持同步。
ESC设计结构
- EtherCAT 从站控制器 ESC
- 每个 EtherCAT 从站都必须集成一个或多个 ESC 芯片。这些芯片是专门为处理 EtherCAT 协议而设计的。
- 高速数据处理逻辑: ESC 内部包含高度优化的硬件逻辑,能够在以太网帧“飞速”通过时,直接在硬件层面识别 EtherCAT 协议数据单元 ADU,提取相关数据并插入自身数据,而无需CPU的干预。这实现了亚微秒级的数据访问速度。
- 多个物理接口: ESC 通常集成至少两个物理层接口 (PHY),用于连接 EtherCAT 网络中的上游和下游设备。
- 现场总线存储器管理单元 (Fieldbus Memory Management Unit, FMMU): FMMU 是 ESC 的关键组件,负责将 EtherCAT 数据帧中的数据与从站本地的进程数据对象 (PDO) 缓冲区进行映射。它定义了哪些数据在帧中的哪个位置,以及应该存储在从站内存的哪个区域。
- 同步管理器: 同步管理器负责控制 PDO 的数据交换。它们管理本地应用层和 ESC 之间的数据传输,并提供同步机制,确保数据在正确的时间被读取和写入。
- 分布式时钟 :
- 支持分布式时钟的 ESC 内部集成了高精度的本地硬件时钟 (通常是 64 位计数器,以纳秒为单位)。这个时钟独立于从站的主控制器(例如微处理器)。
- 时间戳捕获单元: ESC 包含专门的硬件单元,能够在接收和发送 EtherCAT 帧的特定时刻精确地捕获本地时钟的时间戳,用于主站计算网络延迟和进行时钟同步。
- 时钟调整机制: ESC 具有硬件辅助的时钟调整机制。当主站发送时钟同步指令时,ESC 的硬件可以直接对本地时钟的频率或偏移量进行微调,以使其与参考时钟同步。这个调整过程通常不需要复杂的软件干预,保证了同步的快速性和准确性。
- SYNC 信号发生器: 一些 ESC 还包含硬件的 SYNC0 和 SYNC1 信号发生器,可以根据本地时钟产生精确的同步脉冲,用于触发从站内部的同步动作(例如,在同一时间点启动多个轴的运动)。
- 高速本地总线接口:
- ESC 需要与从站的主控制器进行数据交换。为了不成为性能瓶颈,ESC 通常提供高速的本地总线接口,例如并行总线、SPI、或其他专用接口,以确保 PDO 数据能够快速地在 ESC 和主控制器之间传输。
- 通常会给ESC 芯片外挂一个EEPROM存储器,里面可以保存一些芯片初始化的寄存器配置,就不需要每次上电后由MCU或主站来进行配置了。
ET1000芯片
参考:
EtherCAT专栏 - Infineon Developer Community
【EtherCAT分析】一、EtherCAT从站硬件分析_带 ethercat 从站的芯片-CSDN博客
[EtherCAT Technology Group | 技术概览](https://www.ethercat.org.cn/cn/technology.html) |