原文地址:https://blog.csdn.net/qq923433160/article/details/83781812
EtherCAT 总线的国家标准相关资料,比较详细介绍了协议:
https://download.csdn.net/download/qq923433160/9739665
一. EtherCAT 协议概述
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写。最初由德国倍福自动化有限公司(Beckhoff Automation GmbH) 研发。EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。EtherCAT的特点还包括高精度设备同步,可选线缆冗余,和功能性安全协议(SIL3)。
EtherCAT可以支持线形、树形和星形设备连接拓扑结构,物理介质可以选100Base-TX标准以太网电缆或光缆。使用100Base-TX电缆时站间间距可以达到100m。整个网络最多可以连接65535个设备。使用快速以太网全双工通信技术构成主从式的环形结构。
报文通过从站设备时,从站识别出相关的命令并作出相应的处理。完全由硬件完成信息的处理,延迟时间约为100~500ns(取决于物理层器件),其通信性能和从站设备控制微处理器的响应时间是相互独立的。每个从站设备都具有可编址的内存,其容量最大可为64KB,能够对其进行连续的或同步的读写操作。可以把多个EtherCAT命令数据嵌入到同一个以太网数据帧中,每个数据对应不同的设备或内存区。
从站设备可以构成多种形式的分支结构,独立的设备分支可以放置于控制柜中或机器模块中,再用主线连接这些分支结构。 EtherCAT大大提高了现场总线的性能,例如,控制1000个开关量输入和输出的刷新时间约为30μs。单个以太网数据帧最多可容纳1486字节的数据,相当于12000位开关量数字输入和输出,刷新时间约为300μs。控制100个伺服电机的数据通信周期约为100μs。
EtherCAT使用一个专门的以太网数据帧类型定义,用以传输以太网数据帧的EtherCAT数据包,也可以使用UDP/IP协议格式传输EtherCAT数据包。一个 EtherCAT数据包可以由多个EtherCAT子报文组成。EtherCAT从站不处理非 EtherCAT数据帧,其他类型的以太网应用数据可以分段打包为EtherCAT数据子报文在网段内透明传输,以实现相应的通信服务。
二. EtherCAT 系统组成
2.1 运行原理
实时工业以太网EtherCAT充分利用了以太网技术的全双工传输特性。使用主从模式进行访问控制,主站把数据帧发送给各个从站,每个从站从数据帧中读取自己的数据或把需要输入的数据插入数据帧中。
从以太网的角度来看,一个EtherCAT网段就是一个以太网设备,它接收和发送标准的ISO/IEC8802-3以太网数据帧。但是,这种以太网设备并不局限于一个以 太网控制器及响应的微处理器,它可以由多个EtherCAT从站组成。这些从站可以直接处理接收的报文,并从报文中提取或者插入相关的用户数据,然后将该报文传输到下一个EtherCAT从站。最后一个EtherCAT从站发回经过完全处理的报文,并由第一个从站作为响应报文将其发送给控制单元。
EtherCAT通信是由主站发起的,主站发出的数据帧传输到一个从站站点时,从站将解析数据帧,每个从站从对应报文中读取输出数据,并将输入数据嵌入到子报文中,同时修改工作计数器WKC的值,以标识从站己处理该报文。网段末端的从站处理完报文后,将报文转发回主站,主站捕获返回的报文并对其进行处理,完成一次通讯过程。一个通讯周期过程中,报文传输延时大概为几个纳秒,克服了传统以太网先对数据包进行解析,再复制成过程数据而造成通讯效率低的缺陷。EtherCAT系统运行原理如图所示。
2.2 主站组成
主站的实现可采用嵌入式和PC机两种方式,均需配备标准以太网MAC控制器,传输介质可使用100BASE-TX规范的5类UTP线缆。 EtherCAT从站设备除了具备通信功能外,还需具备对从站设备的控制功能。常见的从站设备有I/O端子、伺服设备、微处理器等。
EtherCAT主站运行需具备以下几个基本功能:
(1)读取从站设备描述XML文件并对其进行解析,获取其中配置参数
(2)捕获和发送EtherCAT数据帧,完成EtherCAT子报文解析、打包等
(3)管理从站设备状态,运行状态机,完成主从站状态机设置和维护
(4)可进行非周期性数据通信,完成系统参数配置,处理通讯过程中突发事件
(5)实现周期性过程数据通信,实现数据实时交换,实时监控从站状态,从站反馈 信号实时处理等功能。
2.3从站组成
在EtherCAT系统的通信过程中,从站采用专用的从站协议控制器(EtherCAT Slave Controller , ESC)来高速动态地(on-the-fly)处理网络通信数据。系统通信的整个过程中,网络数据的处理都在从站协议控制器内部有硬件完成,真是因为整个通信过程有硬件实现,所以通信网络的性能并不取决于从站使用的是什么微处理器及其性能,因为所有的通讯过程都是在从站控制器的硬件中完成的;过程数据接口为从站应用层提供了一个双端口随机存储器( Dual-Port-RAM, DPRAM)来实现数据交换。EtherCAT从站提供网络数据通信和控制任务功能,从站结构如图所示。
在由EtherCAT工业以太网现场总线组成的工业控制系统中,系统的通信是由主站发起的并通过过程数据通信控制从站设备的工作状态,继而完成系统任务。这些在工业现场的EtherCAT从站设备可以直接接受来自工业以太网中的网络数据报文。而且还能从网络数据报文中提取出主站设备发送给各个从站设备的控制信息和命令,并且插进与自己相关的本地工业现场设备的用户信息及采集的数据,然后在本地从站设备对以太网数据帧处理完成之后再将这个以太网数据报文传输到下EtherCAT从站设备当中重复在上一个从站设备中的操作,当这个以太网数据报文传送到最后一个工业现场设备的EtherCAT从站并且完成相应的操作的时候,在将这个以太网数据报文按原来的路线发送回去,最后由工业现场里第一个EtherCAT从站设备将这个被所有从站设备操作过的网络数据报文作为响应报文发送给自动化控制系统的主站(即控制 单元)。整个通信过程中充分利用了以太网全双工处理网络数据的通讯特点。
EtherCAT Slave Controller(ESC)
ESC传输过程:
每个ESC都有四个数据收发端口,并且均可以接收发送以太网帧。
如果ESC的四个端口都有外部链接,数据帧的内部传输顺序固定为端口0 —>端口3 —>端口1 —>端口2 —>端口0,如果某个端口没有外部链接,则此端口关闭,数据帧会自动跳过此端口传输到下一个未关闭的端口。正是由于ESC 这种四端口的收发机制,使得其可以 构成多种物理拓扑结构,如树型、线型和星型结构等。
三. 数据帧结构
3.1 EtherCAT协议
EtherCAT数据使用类型为0x88A4 的以太网数据帧进行传输。EtherCAT 数据由数据头(2个字节)和的数据区(44~1498 字节)组成。
EtherCAT 的处理主要是ESC 内部的硬件来完成,因此,其硬件处理能力决定了数据的处理速度。
数据帧结构说明:
1. 目标地址:接收方MAC地址
2. 源地址:发送方MAC地址
3. 帧类型:0x88A4,EtherCAT数据使用类型为0x88A4的以太网数据帧进行传输。
4. EtherCAT帧头:
EtherCAT帧头为11bit数据长度;1bit 保留;4bit 类型,等于1时表示EtherCAT数据处于ESC通信中,其余保留。
EtherCAT帧头
位数
11bits
1bit
4bits
意义
EtherCAT数据长度
保留
类型
说明
即所有子报文长度总和
0x01:EtherCAT DLPDU
0x04:network veriable
0x05:mailbox
5. EtherCAT数据:数据区包含一个或多个EtherCAT 子报文,每一个子报文对应一个独立的从站设备。
1)EtherCAT子报文:
EtherCAT 数据区由不定数目的子报文组成,所有子报文对应操作单独的从站站点。
子报文数据段可根据需求嵌入 CoE、SoE等协议数据格式。
EtherCAT 子报文由子报文头、数据域和工作计数器组成。
2)子报文数据帧格式:
子报文
子报
文头
位数
8bits
8bits
32bits
11bits
4bits
1bit
16bits
意义
命令
索引
地址区
长度
R
M
状态位
说明
寻址方式及读写方式
帧编码
从站地址
报文数据区长度
保留
后续报文标志
中断到来标志
数据
长度小于2486bytes
WKC
工作计数器,WKC 用来记录从站操作子报文的次数,主站给每个子报文预设了 WKC。设置发送子报文的工作计数器初值为 0,从站正确处理子报文后,工作计数器的值将增加一个增量,主站把返回的子报文中的 WKC 和预设的 WKC 作比较后判断子报文是否被从站正确处理。ESC 在处理数据帧的同时处理 WKC,由通信服务的不同决定 WKC 的增加方式。
3)命令码说明:
寻址方式
读写模式
命令名称
值
描述
顺序寻址
读数据
APRD
0x01
主站使用顺序寻址从从站读取一定长度数据
写数据
APWR
0x02
主站使用顺序寻址向从站写入一定长度数据
读/写
APRW
0x03
主站使用顺序寻址与从站交换数据
设置寻址
读数据
FPRD
0x04
主站使用设置寻址从从站读取一定长度数据
写数据
FPWR
0x05
主站使用设置寻址向从站写入一定长度数据
读/写
FPRW
0x06
主站使用设置寻址与从站交换数据
广播寻址
读数据
BRD
0x07
主站从所有从站的物理地址读取数据
写数据
BWR
0x08
主站广播写入所有从站
读/写
BRW
0x09
主站与所有从站交换数据,对读取的数据
逻辑寻址
读数据
LRD
0x0A
主站使用逻辑地址读取一定长度数据
写数据
LWR
0x0B
主站使用逻辑地址写入一定长度数据
读/写
LRW
0x0C
主站使用逻辑寻址与从站交换数据
6. FCS:帧校验
3.2 EtherCAT UDP 协议
EtherCAT 无 IP协议,但可将其封装在IP/UDP协议中。EtherCAT UDP 协议适用于实时性能要求不是很严格的场合。
四. EtherCAT 寻址方式和通讯服务
4.1 网段寻址
EtherCAT 主站与网段之间存在着不同的寻址方式,利用太网数据帧头西南科技大学硕士研究生论文 第13 页部的 MAC 地址来寻址就是EtherCAT 网段寻址。
具体的方式有以下两种。
开发模式:主站设备通过以太网交换机与EtherCAT 网段进行连接,网段即可使用EtherCAT数据帧当中的目的地址来作为MAC 地址。
直连模式:主站设备通过与EtherCAT网段的直接端口连接来对对MAC地址进行广播。
4.2 设备寻址
在这个寻址方式中,16bit的设备位置(站点地址)和16bit的芯片内物理地址构成了一个32位地址的从站报文。该报文可以支持高达65535个从站和每个从站64K的地址映射。设备寻址有位置寻址(自动增减寻址)、设置站点寻址和广播寻址。其中,设置站点寻址又可以分为工作时由主站设置、存储在EEPEOM当中等两种方式。在每次系统上电或者复位时,能够通过EEPEOM读出站点地址。
在进行设备寻址过程中,各个报文只能够寻址唯一的从站设备,寻址设备的机制有以下两种:
顺序寻址:在顺序寻址过程中,可以通过网段内的连接位置来确定从站的地址,其连接位置是由网段内接线顺序来决定,并使用一个负数来表示这个位置。在依次经过各个从站设备时,每经过一个从站设备,顺序寻址的子报文会在其顺序地址上增加1;顺序地址为0的报文会在从站接收时被认定为寻址本文本身。每次报文在经过能够自动更新地址,因此顺序寻址有可以叫做自动增量寻址。
实际使用时,主站会在启动阶段使用顺序寻址方式将地址分配给各个从站。使用顺序寻址可以让一些跟位置没有关系的地址自动变成从站的地址。
设置寻址:在设置寻址过程中,从站地址在网段内的连接顺序也可以与其自身没有对应关系。该地址可以通过两种方式获取,一是在数据链路启动阶段由主站配置给从站,二是在上电初始化的时候由从站在自身的配置数据存储区里装载,在后续的运行使用中,便可以在链路启动阶段由主站应用顺序寻址的方式来读取各个从站的设置地址。
4.3 逻辑寻址
在逻辑寻址方式下,从站地址使用的是固定的逻辑地址空间。从站通过将报文内的32 位空间当作整体的地址来实现的。这样可以把单个数据帧内任意数据的多个地址分散分布在EtherCAT从站上,从而使得EtherCAT协议变得更加灵活。
逻辑寻址方式是通过FMMU(现场总线内存管理单元)来实现,FMMU的功能存在于各个ESC内部,把从站的本地物理存储地址通过映射与网段内逻辑地址匹配。主站设备会在数据链路启动过程中将配置好的FMMU单元传送至从站设备。各个FMMU单元的配置信息包括:数据逻辑位起始地址、表示映射方向(输入或输出)、位长度、从站物理内存起始地址的类型位,从站设备内的数据与主站的逻辑地址都存在按位的映射关系。
从站设备会检查通过数据逻辑寻址方式收到的EtherCAT子报文是否能够与FMMU单元地址匹配。如果能够匹配,EtherCAT子报文数据区的对应位置将会插入输入类型数据和抽取输出类型数据。由于采用逻辑地址方式能够灵活地组织控制系统,并且优化系统结构,所以该寻址方式适合于传输或交换周期性过程的数据。
4.4 通信服务和WKC
EtherCAT 子报文都是使用主站的操作来描述所有的服务。从站内部物理存储和读写和交换(读取并马上写入)数据的服务则是由数据链路层来确定的。子报文头中的命令字节表示了由读写操作和寻址方式共同命令的通信服务形式。
每一个从站的EtherCAT 数据报都具有一个16 位的工作计数器(WKC)。该工作计数器用以记录EtherCAT 数据报成功访问(正确寻址到从站并成功访问到数据存储区)的从站个数。EtherCAT 从站控制器将工作计数器硬件递增。各个从站数据报中计数器预期值的计算应当由主站程序中的模块来完成。在接收到返回数据帧后,主站会与WKC 比较,如果不一样,说明该报文有问题。子报文中工作计数器的值是与通信服务、寻址地址相关联。报文每读或写一次数据,WKC 的值就加1,同时读写时,读成功后WKC 得值加1,写成功后WKC 的值加2,读写全部完成后WKC 的值加3。所以,WKC 的值就会所有从站处理发生的累加的结果。ARMW 和FRWM 是多读多写的命令,可以当作单个读或写命令来理解。WCK 的值会根据命令不同不断变化。
五.应用层
应用层AL(Application Layer)为用户与网络之间提供接口,应用层在EtherCAT 通信协议层次结构中是与用户联系最紧密最直接的一层,它可以直接与用户进行交互,实现面对具体的应用程序和控制任务等功能,EtherCAT应用层为各种服务协议与应用程序之间定义了接口,使其能够满足应用层所要求的各种协议共同工作的需求。EtherCAT 作为网络通信技术, 支持CANopen 协议中的CiA402,以及SERCOS 协议的应用层(即CoE 和SoE)等多种符合行规的设备和协议,如下图所示。
5.1 CoE (CANopen over EtherCAT)
CANopen 协议是在CAN 协议基础上开发的应用层协议,EtherCAT 支持采用CANopen 作为应用层协议,此外,还在EtherCAT 协议中关于具体应用的方面做了相应的补充和扩展,它的主要功能包括:初始化通信网络并利用邮箱通信来访问CoE 对象字典及其对象;使用CoE 来配置周期性的数据传输过程及控制指令;管理通信网络并处理突发事件和错误信息。
5.2 SoE(SERCOS over EtherCAT)
SERCOS(串行实时通信协议)是一种高性能的数字伺服实时通信接口协议,包括了通信技术和多种设备行规。SoE 是基于EtherCAT 的SERCOS 协议,尽管EtherCAT 设备上不能进行SERCOS 协议的数据,但EtherCAT 能够对执行SERCOS 规范设备的伺服控制和数据通信提供支持。
5.3 EoE (EtherNet over EtherCAT)
EtherCAT技术不仅完全兼容以太网,而且在设计之初就具备良好的开放性——该协议可以在相同的物理层网络中包容其他基于以太网的服务及协议。可将任何类型的以太网设备通过交换机端口连入EtherCAT网段。
5.4 FoE (EtherCAT实现文件传输)
该协议与TFTP类似,允许读写设备中的任何数据结构。因此,无论设备是否支持TCP/IP,都可以将标准化固件上传到设备上。
---------------------
作者:乐乐家样样
来源:CSDN
原文:https://blog.csdn.net/qq923433160/article/details/83781812
版权声明:本文为博主原创文章,转载请附上博文链接!