【每周分享】EtherCAT是什么?看完这篇文章,你基本就知道了
在工业自动化领域EtherCAT可以说是无处不在应用及其广泛。其实简单一点来说EtherCAT就是一种工业自动化的现场总线协议被广泛应用在PLC主机和从站模块里面用于实现两者的快速通信和数据交换一般的EtherCAT产品上都会标注EtherCAT的总线丝印logo3411769894e6598a6d.png(34.5 KB, 下载次数: 0)下载附件2026-2-9 11:03 上传EtherCAT协议Logo上的两个箭头其实是EtherCAT技术的一个核心视觉象征它直接代表了EtherCAT的关键技术原理即“On the Fly” processing飞行中/实时处理体现了其数据处理的实时性速度。这篇文章的主要内容其实是自己学习的一个记录简单总结一下与大家分享和学习。1、我们先来看下EtherCAT 的基本框架和协议栈结构。EtherCAT的全称其实就是 Ethernet for Control Automation Technology直译为用于控制自动化技术的以太网。EtherCAT的基本框架如下图所示看起来内容是比较多的大致可以分为应用层、数据链路层和物理层应用层一般由MCU处理主要负责应用程序对象字典和各种协议代码处理而对象字典相关的如下图所示而4种邮箱协议如下描述COECANopen over EtherCAT操作对象字典SOE: SERCOS over EtherCATSerial Real-timeCommunication Specification用于伺服驱动器控制EOEEthernet over EtherCAT支持IP标准的协议传输以太网数据帧FOEFile Access over EtherCAT该协议通过EtherCAT下载和上传固件程序和其他文件其使用类似TFTP。数据链路层一般由ESCEtherCAT从站控制器比如Microchip的LAN9252等芯片处理是实现EtherCAT 数据链路层协议的专用集成电路芯片主要处理EtherCAT数据帧并为从站控制装置提供数据接口。物理层主要是硬件接口比如MII接口网络接口等作为实际数据交互的介质。而EtherCAT的协议格式类似于TCP/UDP这种也是符合以太网标准的既然是协议就肯定会有协议栈我们可以通过SSC工具生成协议栈的基本代码协议栈代码框架如下所示下面这个是我将协议代码与协议代码框架建立的基本关系代码文件比较多不过基本上看文件名称就能猜测其大概的作用。我们来看下EtherCAT协议栈的整个骨架初始化主要包括硬件初始化和协议栈初始化两个部分主任务主要包括EtherCAT任务处理MainLoop循环。其中的硬件初始化主要涉及EEPROM上电检测MCU和ESC通信成功检测这里会涉及两个重要的宏参数使用的时候一定要注意而主任务MainLoop在main函数里被周期性循环调用完成的工作主要包括根据相关全局变量标志位判断工作模式并执行相关的数据读取和应用接口函数如bEscIntEnabled表示是否使能同步运行模式否则就是自由运行模式读取AL 事件屏蔽寄存器执行读取主站下发数据操作调用ECAT_Application接口执行应用外设控制中断ISR中也会调用该函数根据是否使能硬件定时器进行相关操作调用ECAT_Main接口执行非周期性的数据操作包括MBX_Main邮箱数据操作和ECAT_StateChange状态机控制调用低优先级的应用程序部分COE_Main接口调用CheckIfEcatError接口检查通信和同步如果发生错误则更新AL状态/AL状态码调用EcatIsrCheckState判断PDI中断是否丢失如果丢失则调用PDI_isr进行处理.而协议栈的核心模块主要如下所示EtherCAT状态机处理模块相关的如下图所示状态机的作用是负责协调主站和从站应用程序在初始化和运行时的状态关系必须支持四种状态另外一种是可选状态1Init初始化简写为I2Pre-Operational预运行简写为P3Safe-Operational安全运行简写为S4Operational运行简写为O5Boot-Strap引导状态简写为B【可选】而状态转换主要包括如下所示邮箱Mailbox服务模块主要如下图所示比较重要的是协议栈需要MCU实现三个用于数据同步处理的中断服务程序以及一个硬件定时器中断服务程序此外至于MCU芯片和ESC芯片通信方式主要包括SPI和FSMC两种2、我们再来看下EtherCAT 的核心组成部分对象字典。对象字典是EthERCAT数据交互得到重要内容SDO和PDO信息都以对象字典的形式保存因此一定要了解对象字典的数据结构。协议栈会对对象字典进行初始化操作对象字典的条目Entry结构及成员解释如下所示对象字典主要包括两类通用的对象字典结构GenObjDic主要包括厂商信息设备信息和版本信息等还有一类就是应用对象字典ApplicationObjDic主要是与每个产品的具体需求有关内容因产品而异3、我们最后来看下EtherCAT 的核心组成部分描述文件xml文件。每个EtherCAT模块都对应一个xml文件或者描述文件主要用于描述设备信息主要包含了制造商信息和从站描述信息内容如图所示ETG2000和ETG5001文档ETGEtherCAT Technology GroupEtherCAT技术协会注册成为ETG会员会给制造商分配一个 Vendor ID.有详细的各种xml文件的字段说明和解释以下仅为个人总结的部分以上便是EtherCAT的一些主要内容有些地方没有展开详述比如协议帧格式对象字典怎么实现等等后续会有继续的分享~~---------------------作者dffzh链接https://bbs.21ic.com/icview-3506093-1-1.html来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。