自己学习记录用,有误的地方欢迎留言指出,禁止私自转载

EtherCAT 总线的国家标准相关资料,比较详细介绍了协议:

工业以太网现场总线EtherCAT_ethercat通讯协议例程-其它文档类资源-CSDN下载

书籍资料,不是特别清晰,将就看看:

工业以太网现场总线EtherCAT驱动程序设计及应用.zip-嵌入式文档类资源-CSDN文库

一. 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,都可以将标准化固件上传到设备上。

Ethercat 学习总结一:协议总结相关推荐

  1. EtherCAT (学习笔记)

    文章目录 1. 简介 1.1 运动控制 1.2 实时以太网 1.3 EtherCAT 2. EtherCAT原理介绍 2.1 实时性 2.2 端口管理 2.3 EtherCAT网络拓扑 2.4 Eth ...

  2. 【转】医疗业务学习笔记--DICOM协议的基础内容!!!!!!!!!!

    转自:医疗业务学习笔记--DICOM协议的基础内容 - 知乎 本文首发于"雨夜随笔"公众号,欢迎关注. DICOM协议是医疗领域对如何处理.存储.打印和传输医疗图片的一系列标准.D ...

  3. raft算法_学习分布式一致性协议:自己实现一个Raft算法

    前言 MIT6.824是麻省理工学院开设的一个很棒的分布式系统公开课程,课程的Schedule在这里 ,这门课程的学习方式主要是通过教授的 lecture 讲解.Paper阅读.FAQ答疑,以及实践l ...

  4. 蓝牙核心协议学习 -- 基带协议(Baseband)翻译最终版

    2021-10-27 蓝牙核心协议学习 -- 基带协议(Baseband) 剩余篇章已上传到资源分享,链接如下: baseband翻译.pdf-其它文档类资源-CSDN下载 baseband翻译.pd ...

  5. 蓝牙核心协议学习 -- 基带协议(Baseband)

    目录 1 概述 1.1 蓝牙时钟 1.2 蓝牙设备寻址 1.2.1 保留地址 1.3 访问码(ACCESS CODES)                                         ...

  6. 九、python学习之HTTP协议

    今天学习了HTTP协议,说实话,我并不想做今天的学习笔记,虽然学习的东西不多,但是对于HTTP协议要是往深层去说,所有的名词和用法都解释出来,写他个5篇都算是少的.但是,既然是学习笔记,还是本着总结今 ...

  7. Ethercat学习笔记

    1.EtherCAT原理介绍 EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中.整个过程报文只有几纳秒的时间延迟,实时性获得极大提高 EtherC ...

  8. 组播学习之——IGMP协议简介

    CSDN文章转载地址 组播学习之--IGMP协议简介 IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称.它是TCP/IP 协议族中负责IP 组 ...

  9. FPGA零基础学习:IIC协议驱动设计

    FPGA零基础学习:IIC协议驱动设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子.信息.通信类 ...

  10. 从零开始学习CAN总线协议(一)

    最近开始零基础学习CAN总线协议,想通过通俗易懂的方式来讲述一些相关的知识点,一部分是我自己的理解,另一部分是参考其他博主的文章,希望能对CAN总线协议有更深一步的理解和学习. CAN总线基本概念 C ...

最新文章

  1. Cocos2d-x3.0 TestCPP文件夹笔记
  2. Visual Studio 2013开发 mini-filter driver step by step (2) - 编译,部署,运行
  3. 使用JPA映射实体类和数据库中表时,实体类中定义的enum类型,数据库定义的是varchar类型,为什么使用JPA插入时字段变成了Integer类型
  4. 完整的python项目实例-python完整项目
  5. oracle怎么将数据删除文件,oracle删除数据文件
  6. 开发与测试的相爱相杀
  7. 全民K歌神器,这款麦克风唱享高音质体验
  8. 上线三年却很“鸡肋”的微信声音锁究竟做错了什么?
  9. Spring Cloud 入门到进阶 - 01 Eureka 服务实例的健康自检 (下)
  10. 阴历转换阳历c语言csdn,JavaScript实现公历转换农历
  11. python爬虫,爬取禅道BUG信息列表
  12. Jzoj5605 Zkb
  13. 操作系统——文件存储管理
  14. 阿里云ECS-Centos7.9集群部署Redis服务遭木马攻击
  15. 今天适合的样式 黑白色 网站黑白色
  16. 【C语言】指针题及解析
  17. 工具箱 matlab,最全的Matlab工具箱分享
  18. 黑莓系统可以玩java吗_黑莓开发环境搭建windows7+eclipse+BlackBerry Java Plug+JDK6
  19. 【JavaSE入门】:Java运算符及进制转换
  20. vs2015版本以上 配置glew

热门文章

  1. 使用Eclipse开发Spring的第一个简单程序
  2. 民办大学计算机专业教师,普通本科院校计算机专业教师胜任力模型构建及应用...
  3. ridis的安装与遇到的问题
  4. Android 开机向导(没有优先启动问题)
  5. rust 格式化输出
  6. kedacom摄像头怎么预置_[功能测评]科达(Kedacom)200万红外网络摄像机
  7. 免越狱中控你们知道多少呢?
  8. 用PHPnow快速在自己的电脑上搭建PHP虚拟主机
  9. 用RecyclerView实现动态添加本地图片
  10. Linux Vm虚拟机配置环境错误 在登录界面循环往复,登录不进去问题