首页 > 其他分享 >【原创】浅谈EtherCAT主站EOE(上)-EOE网络

【原创】浅谈EtherCAT主站EOE(上)-EOE网络

时间:2023-05-28 10:12:35浏览次数:48  
标签:浅谈 EoE 主站 邮箱 EOE EtherCAT 以太网

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址: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支持多种服务和协议来满足这些不同的要求。支撑这两类数据的底层硬件主要是ESC的邮箱FMMU

image-20230524215223811

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

这里说到邮箱,简答介绍一下邮箱报文的结构,详细的请查阅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网络

EOE网络

一个典型的EOE网络通常如下图所示:PLC(或其他运行EtherCAT主站的主机)至少配备两个网卡。其中,一个网卡完全由EtherCAT主站管理,连接着EtherCAT从站(假设有64个从站且全部支持EOE)。另一个网卡则是PLC的普通以太网网卡,用于连接到外部网络。

基于这个结构,我们考虑如下问题(本文暂且关注基本问题):

  • 如何将各个从站的网络和外部网络连接起来?
    • 外部网络作为服务端如何才能连接?
    • 从站作为服务端时如何才能连接?
  • 如何实现EtherCAT网络中,从站之间通过EtherNet相互通信?
  • ETherCAT网络中的从站会经常拔插(创建、删除)如何灵活管理?
  • 从站作为服务端接入外部网络,如何保障基本安全?

在解决这些问题之前,我们再次看看这个网络。首先,从站EOE就像一个完整的EtherNet设备。ESC EOE邮箱相当于网卡,每个EOE从站则相当于网卡+TCP/IP协议栈。在TCP/IP协议栈的上层,是具体的Ethernet应用程序(如TFTP、HTTP等)。

从PLC的角度看,PLC与这64个EOE从站直接'连接',只不过这64个网口共用一条EtherCAT网线作为总线,说到这大家有没有联想到什么?

这种网络结构让人想起了在电脑上创建虚拟机时使用的网络结构,就和我们在电脑上创建几个虚拟机的网络结构是一样的!看下面这个图你就明白了。

网络结构上,PLC中的EtherCAT EOE网络与我们在电脑上创建多个虚拟机的网络结构非常相似!PLC相当于我们的物理机,而EOE从站则相当于物理机里创建的虚拟机。每个虚拟机都有自己的网卡,并且安装有操作系统,每个虚拟机对外要互联互通。

在自己电脑上创建虚拟机只是多种虚拟化技术和应用场景之一。

因此,EtherCAT主站EOE网络的工作机制与虚拟化场景下的网络工作机制类似,EtherCAT主站EOE网络问题可以使用类似虚拟化场景下的网络解决方式去解决。不同之处在于数量上存在差异,由于ETherCAT网络有多个ETherCAT从站,需要灵活管理(如创建、删除),在EtherCAT上会根据应用场景简化处理。

虚拟化网络底层原理是计算机网络技术和操作系统技术,这方面的知识这部分内容留到下篇文章(浅谈EtherCAT主站EOE(下)-虚拟化网络与EOE网络)介绍。

标签:浅谈,EoE,主站,邮箱,EOE,EtherCAT,以太网
From: https://www.cnblogs.com/wsg1100/p/17416070.html

相关文章

  • [5月摸鱼计划] 浅谈DCDC电压变换(原理、结构、可用)
    DCDC转换器简介在电子产品中,我们常需要不同的直流电压来为电路提供工作,这时我们便会见到LDO和DC/DC的身影,但是严格意义上LDO也是一种DC/DC,在电源芯片选型中,LDO和DC/DC则是两种完全不同的芯片。与线性稳压器LDO相比较,效率高是DC/DC的显著优势,通常效率在70%以上,效率高的可达到95%以上......
  • 浅谈中国剩余定理
    中国剩余定理定义中国剩余定理(CRT)可以求解如下形式的一元线性同余方程组(其中\(n_{1},n_{2},\dots,n_{k}\)两两互质)\[\left\{\begin{matrix}x\equiva_{1}\pmod{n_{1}}\\x\equiva_{2}\pmod{n_{2}}\\\vdots\\x\equiva_{k}\pmod{n_{k}}\end{matrix}\right.\]过程计算......
  • 浅谈云服务器有哪些优点?
    目前,云服务器大有赶超虚拟主机、VPS和传统物理服务器,成为最具潜力占领互联网服务托管平台市场最大份额的新兴IT部署模式。最近,各大云服务商纷纷推出低价云服务器、免费试用、免费领取等活动,并在各大媒体投放大量广告,谋求占据更高的市场份额。那么,云服务器到底有哪些优势?归根到底,云......
  • 浅谈DNS域名解析的过程
    一、用户在浏览器输入www.baidu.com时,DNS域名解析大致分为以下几个过程:1、浏览器客户端检查自身有没有该域名的缓存:如果浏览器有命中,直接返回该域名对应的IP地址,解析结束;(这个缓存可以设置TTL来控制有效时间,有点像APR协议在本地保存的的目的IP与主机MAC地址的缓存)如下图:如果浏......
  • [4月摸鱼计划] 浅谈 InfruWeb3黑客松赛事
    事情起因:https://marketing.csdn.net/p/6798543ad6fdaad547c6431dd7df955a之前没接触过区块链这块,这次随即报名NFT这块。下面谈我的学习过程:第一阶段资料搜索(简单看看就行)什么是NFT?NFT是“非同质化代币”的缩写,是一种基于区块链技术的数字资产。和比特币等传统加密货币不同的是,NFT......
  • 浅谈GitHub——程序员的圣地
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(G......
  • 浅谈斐波那契数列和卡特兰数
    斐波那契数列斐波那契数列是我们较为熟悉的一类数列了,在学习递归和递推的时候我们就已经能求解\(n\)较小的情况了;斐波那契数列的定义如下:\[\left\{\begin{matrix}F_{n}=0&n=0\\F_{n}=1&n=1\\F_{n}=F_{n-1}+F_{n-2}&n\ge2\end{matrix}\right.\]卢卡斯数列卢卡斯数列......
  • 浅谈 树上带权最长最短路径,决策包容性与点分树
    树上带权最长最短路径,决策包容性与点分树\(\text{preface}\)最近学习了点分树相关的内容,也碰巧见识到了许多……树上路径问题(非负权),最长或是最短,有的可以用点分治(树)解决,有的可以用线段树解决,有的需要深层次挖掘性质,就在这里做一个小小地总结了一些另类的方法。1.树上带权最长......
  • 浅谈TCP协议的发生过程
    1.TCP协议1.1TCP协议的性质面向连接的、可靠的、基于字节流至于为什么面向连接,又为什么可靠,基于字节流的,等后面便可知道.1.2TCP协议栈收发数据的四个阶段创建套接字连接服务器收发数据断开服务器连接,删除套接字1.3TCP头部格式2.创建套接字2.1首先理解......
  • 浅谈POI数据在互联网旅游领域中的应用(一)
    首先了解下,什么是POI?POI是英文"PointofInterest"的缩写,直译过来叫“兴趣点”,有的人也叫它“信息点”。简单来说就是可以用经纬度表示的、对人有意义的地图上的点。我们平时使用滴滴打车的上车地点、使用大众点评发掘的各种餐厅、你家楼下的公共厕所,只要对你有意义,都可以算POI数据......