原文地址: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数据子报文在网段内透明传输,以实现相应的通讯服务。 .net
二. 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 版权声明:本文为博主原创文章,转载请附上博文连接!