设为首页 加入收藏

TOP

【原创】浅谈EtherCAT主站EOE(上)-EOE网络(一)
2023-07-23 13:25:36 】 浏览:46
Tags:原创 浅谈 EtherCAT 主站 EOE -EOE 网络

版权声明:本文为本文为博主原创文章,未经本人同意,禁止转载。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/

这篇文章的标题虽然是关于EtherCAT EOE,但其实主要内容是关于整个EOE网络结构,属于计算机网络原理。而EtherCAT EoE只是简单介绍,并不是文章的重点。需要注意的是,我们的描述主要基于Linux操作系统,但在Windows或其他RTOS上的原理也是类似的,大家可以自行类比迁移。

为了避免混淆,文中将会使用"EtherNet"或"以太网"来指代TCP/IP网络,以区分EtherCAT网络和普通的以太网。

一、EoE

EtherCAT是一种实时以太网总线协议,是以以太网为基础的现场总线系统,EtherCAT已成为工业自动化领域中最受欢迎的总线协议之一,被广泛应用于机器人、自动化生产线、运动控制等场景。

EtherCAT使用标准的IEEE802.3以太网帧,单从以太网角度看,ETherCAT是二层网络,常说的MAC层,以太网帧头使用以太网类型0x88A4来和其他以太网帧相区别。

一个完整EtherCAT帧如下所示。

EtherCAT采用主从结构进行访问控制,通信关系始终由主站发起。主站使用标准的以太网接口,从站使用专门的ETherCAT从站控制器ESC(Ethercat Slave Controller)芯片来处理子报文

整个EtherCAT网络形成一个环状,主站向各个从站发送EtherCAT以太网帧,该帧的数据区包含了多个ETherCAT子报文。这些子报文包含地址信息,用于定位每个从站,主站通过这些子报文与每个从站进行交互。每个从站ESC可以从数据帧中提取或插入数据。

ethercat工作图示

工业通信必须满足不同要求的数据传输特性,这些数据大致可分为两类,一类是对通信时间要求严格的过程数据(实时数据),另一类是对时间要求相对不重要的非过程数据(非实时数据),如参数数据、诊断数据、批量数据等,EtherCAT支持多种服务和协议来满足这些不同的要求。支撑这两类数据的底层硬件主要是ESC的邮箱(SM)FMMU

因为ETherCAT修改了原来的二层以太网网络,为了实现从站接入普通以太网,有了EoE。EOE是EtherNet Over EtherCAT(EtherCAT上的以太网)的缩写,它是一种将标准以太网帧通过EtherCAT传输的解决方案。使用EOE技术,可以将EtherCAT从站接入互联网,并使其能够与其他设备通过互联网进行交互,具体能用通过从站EtherNet来做什么,就看各位的想象力了(如通过EoE访问从站设备的参数,以便配置和诊断从站设备;tftp、web 服务等)。

图片来源:https://techdocs.wago.com/Software/EtherCAT/en-US/1486077323.html

这里说到邮箱,简答介绍一下邮箱报文的结构,详细的请查阅ETG相关文档

EOE使用邮箱协议传输,ETherCAT中不仅有EOE,还有CoE(CANopen Over EtherCAT)、FoE(File Over EtherCAT)、SoE(SERCOR Over EtherCAT)、VoE等非实时数据通信,其底层都是是通过EtherCAT邮箱交互数据。主站通过一个个ETherCAT子报文读写邮箱,不同的协议数据类型通过邮箱(mailbox)协议来区别,邮箱协议数据在子报文数据区中,结构如下。

邮箱协议数据包含邮箱头和邮箱数据,邮箱头主要表示邮箱数据区的数据类型,结构如下:

在邮箱数据区中,进一步包含有COE、EOE、FOE等协议规范的数据。以EOE为例,通常情况下,EtherNet帧的大小为1514/1518字节(不包括前导码和FCS校验)。但从站的邮箱大小有限,每次传输只能传输几百字节的数据。因此,在通过邮箱协议传输EtherNet帧之前,需要将其分成多个段传输,这就需要一定的协议和规范。此外,从站EtherNet网络还设计MAC、IP、网关地址等参数配置,也需要通过邮箱进行配置,统一需要一定的协议和规范。因此,ETG定义了EoE服务规范来应对这些需求,它被放置在邮箱数据区中。整个ETherCAT数据帧就和TCP/IP网络帧一样分层,像套娃一样,一层协议套一层协议。其他的COE、FOE、VOE等服务规范也类似。

二、EoE服务规范

按照ETG官方文档中对EoE应用服务的定义,EoE服务请求规范如下:

  • 初始化EoE请求(Initiate EoE),部分从站需要主站发送Initiate EoE来触发从站初始化从站EOE,如网络协议栈初始化等等,请求-响应模式(主站发起请求,然后查询从站响应,根据响应确定从站是否执行成功)。

request:EOE frameType 0x02

response: EOE frameType 0x03

  • EoE帧传输请求(EoE Fragment),用于传输主站与从站的标准以太网数据,只有请求,没有响应。

request:EOE frameType 0x00

  • 设置IP参数请求(Set IP Parameter),设置从站的IP地址、网关等配置信息,请求-响应模式。

request:EOE frameType 0x02

response: EOE frameType 0x03

  • 设置MAC过滤器请求(Set MAC Filter),请求-响应模式。暂未见到应用场景。

request:EOE frameType 0x04

response: EOE frameType 0x05

以上均是通过邮箱协议来与从站交互,关于EOE服务的数据结构规范大家可参考ETG官方文档《ETG1000.6.应用层协议规范》5.7小节,这里不再详细贴出。

EtherCAT主站如何提供EoE服务?

通过上面对EoE的描述,EtherCAT主站提供EOE功能有:

  • 为每个从站配置IP、MAC、网关等IP参数。
  • 外部发送给从站的EtherNet 帧,需要主站通过EoE Fragment发送给从站;同时主站要接收从站发送的EtherNet 帧,然后向外发送。
  • 可选的MAC过滤器请求、初始化EoE请求。

Set IP Parameter requestSet MAC Filter requestSDO upload/download请求机制类似,EtherCAT主站内部通过一系列状态机来为应用层提供这些服务。不是本文的重点,具体大家可参考开源EtherCAT协议栈(igh、soem...虽然有些bug)源码和文档,在此不再说明。

最重要的是,EtherCAT主站需要提供一个基于ETherCAT邮箱协议的EtherNet“物理层”通道,用于从站与PLC外部网络之间的通信。本文关注的是网络层面部分,即如何处理EtherNet帧并传递给从站,以及从站如何处理并向外界发送数据。对于EtherCAT主站如何进行邮箱通信并不是本文的重点,自行查阅相关资料。

三、EoE网络

E

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇微控制器实时操作系统实践2了解RT.. 下一篇《痞子衡嵌入式半月刊》 第 77 期

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目