EtherCAT协议介绍

冷暖自知 提交于 2020-01-23 02:32:42

   EtherCAT协议介绍

 

 

 

 

前言

 

EtherCAT(Ethernet for Control Automation Technology)是一种基于以太网的开发构架的实时工业现场总线通讯协议,它于2003年被引入市场,于2007年成为国际标准,并于2014年成为中国国家标准。EtherCAT的出现为系统的实时性能和拓扑的灵活性树立了新的标准。

1)EtherCAT是最快的工业以太网技术之一,同时它提供纳秒级精确同步。相对于设置了相同循环时间的其他总线系统,EtherCAT系统结构通常能减少25%-30%的CPU负载。

2)EtherCAT在网络拓扑结构方面没有任何限制,最多65535个节点可以组成线型、总线型、树型、星型或者任意组合的拓扑结构。

3)相对于传统的现场总线系统,EtherCAT节点地址可被自动设置,无需网络调试,集成的诊断信息可以精确定位到错误。同时无需配置交换机,无需处理复杂的MAC或者IP地址。

4)EtherCAT主站设备无需特殊插卡,从站设备使用可以由多个供应商提供的高集成度、低成本的芯片。

5)利用分布时钟的精确校准EtherCAT提供了有效的同步解决方案,在EtherCAT中,数据交换完全基于纯粹的硬件设备。由于通讯利用了逻辑环网结构和全双工快速以太网而又有实际环网结构,“主站时钟”可以简单而精确地确定对每个“从站时钟”的运行补偿,反之亦然。分布时钟基于该值进行调整,这意味着它可以在网络范围内提供信号抖动很小、非常精确的时钟。

总体来说EtherCAT具有高性能、拓扑结构灵活、应用容易、低成本、高精度设备同步、可选线缆冗余和功能性安全协议、热插拔等特点。

 

 

 

 

 

 

 

一、网络寻址原理

EtherCAT以以太网为基础,发送标准以太网数据帧。EtherCAT主站发送的每一个数据帧经过所有节点,在数据帧向下游传输的过程中,每个节点读取寻址到该节点的数据,并将它的反馈数据写入数据帧。这种传输方式改善了带宽的利用率,使得每个周期通常用一个数据帧就足以实现数据通信,同时网络不再需要使用交换机和集线器。数据帧的传输延时只取决于硬件传输延时,当某一个网段或者分支上的最后一个节点检测到开放端口(没有下一个从站)时,利用以太网技术的全双工特性将报文返回主站。

在数据传输的过程中EtherCAT根据不同的应用采用不同的寻址方式,三种不同的寻址方式被分别应用到Ethercat网路配置,邮箱通信和过程数据通信中。

(一)自增量寻址

1)每个从站根据其所处位置的先后分配一个十六位的负的自增量地址.

2)当数据帧经过时从站只处理自增量地址为零的子报文。

3)在经过每个从站时数据帧中所有自增量地址加一。

4)通常用于扫描硬件的配置信息。

             

说明:自增量寻址一般用在启动阶段,主站通过自增量寻址对从站做一些配置。如上图所示数据帧中的地址信息按从零开始以此递减使其与从站位置相对应。当数据帧经过从站时,从站只处理地址为零的子报文。例如当第一个从站处理其对应的报文之后,报文中所有自增量地址加一,此时自增量地址从新为零的数据帧为第二个从站需要处理的数据,以此类推主站将按照数据帧在整个网络中的移动顺序依次遍历整个网络。

(二)固定地址寻址

1)每个从站有一个固定的地址(16 bit)

2)通常在硬件配置扫描的过程中被分配。

3)与从站的位置无关

4)当断电后固定地址丢失

 

说明:在经过启动配置之后每个从站分配一个固定的地址,以便用于固定地址寻址。固定地址寻址一般用于主站与从站以邮箱方式的通信中(例如SDO),在邮箱方式通信时EtherCAT主站根据从站的固定地址寻址到所要交换数据的从站,数据只在两者之间进行交换,适用于主站与某一个从站交换相对较大的数据。

 

 

 

 

 

(三)逻辑寻址

1)从站在一个虚拟的4GByte 数据空间进行读写操作。

2)逻辑地址映射到从站中减轻了控制系统的负担。

3)数据根据应用程序所指定的逻辑地址被传输。

要求:快速,灵活并且高效的传输。

 

 

说明:逻辑寻址特别适用于在过程数据的通信过程中,每个从站的物理地址通过FMMU被映射到一个逻辑地址中。主站通过操作逻辑地址控制从站,使用逻辑寻址可以灵活地组织控制系统,优化系统结构。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、EtherCAT主站协议栈介绍

北京盟通科技有限公司是德国acontis在中国大陆唯一授权的合作伙伴,德国acontis公司提供跨平台、跨操作系统的商用EtherCAT主站协议栈及主站解决方案,其产品的专业性和可靠性得到全球超过200家工业客户的信赖与认可,包括KUKA机器、伦茨、阿尔斯通、巴赫曼等众多国际知名企业。

 

(一)支持的操作系统

 

(二)支持的CPU架构

         

 

三、支持的网卡型号

 

Link   Layer

Name

Controller   / Device

ID

WinXP

Win7

WinCE

VxWorks

On   Time

RTOS-32

QNX

Linux

T-Kernel

RTX

INtime

DOS

GO32

emllPcap

OS driver

x86

-

-

-

-

 

-

emllSnarf

OS driver

-

-

x86, PPC

-

-

 

-

emllI8255x

Intel Pro/100

82551QM / 0x1059

82555VE2 / 0x27DC

82557 / 0x1229

82557ER / 0x1209

82559ER / 0x2449

82562 / 0x1039

82801DB / 0x103A

82801EB / 0x1050

Pro/100/M   / 0x1229

Pro/100/S   / 0x1229

Pro/100/VE /0x1092

-

x86

x86, PPC

x86

x86

x86

-

emllI8254x

Intel Pro/1000

82540EM / 0x100E

82541EI / 0x1013

82541ER / 0x1078

82541GI / 0x1076

82541GI / 0x1077

82541PI / 0x107C

82545GM / 0x1026

82546EB / 0x1010

82546GB / 0x1079

82547EI / 0x1075

82547GI / 0x1019

82566DM / 0x104A

82566L / 0x10BD

82566MC / 0x104D

82567V / 0x10CE

82567V / 0x1501

82567LM / 0x10DE

82567LM / 0x10F5

82571GB / 0x10A4

82571GB / 0x10BC

82572GI / 0x10B9

82572PI / 0x107D

82573 / 0x108C

82573E / 0x108B

82573L / 0x109A

82574(L) / 0x10D3

82575 / 0x10A7

82577LM/0x10EA

82577LC / 0x10EB

82576 / 0x10C9

82576 ET2 / 0x1526

82578DM / 0x10EF

82578DC / 0x10F0

82579LM / 0x1502

82579V / 0x1503

82580 / 0x150E

82580 QF / 0x1527

82583V / 0x150C

N1E5132 / 0x105E

I350 / 0x1521

I210 / 0x1533

I210 CFL / 0x157B

I211AT / 0x1539

I217LM / 0x153A

I217V / 0x153B

I218LM / 0x155A

x86

x86

x86

x86

x86

x86

-

 

I218V / 0x1559

 

 

 

 

 

 

 

emllL9218i

SMSC

LAN9218i

L9218i

-

ARM

STR9

-

-

-

 

-

emllRTL8139

Realtek

RTL8139

8139D   / 0x8139

D-Link   8139D /

0x1300

-

x86

x86

-

x86

 

-

emllRTL8169

Realtek

Gigabit   NIC

(PCIe,   PCI)

RTL8110 / 0x8169

RTL8111 / 0x8168

RTL8168 / 0x8168

RTL8169 / 0x8169

D-Link RTL8169 /

0x4300

RTL8169SC/0x8167

RTL8103 / 0x8136

-

x86

x86

x86

x86

x86

-

emllCPSW

Texas   Instruments

Sitara   on board

 

ARM

ARM

 

ARM

 

-

emllETSEC

Freescale   PowerPC

TSEC/eTSEC

controller

eTSEC   v1 and v2

 

 

PPC

 

PPC

 

-

emllFslFec

Freescale   FEC and

ENET   controller

 

ARM

ARM

 

ARM

 

-

emllR6040

RDC   R6040

-

x86

-

-

-

-

x86

 

 

 

 

 

 

 

 

 

 

四、EtherCAT性能测试

1.         EtherCAT总线时序图

在实际应用中,客户根据产品的性能要求确定总线循环周期Cycle Time的时间长短。在每个循环周期内,EtherCAT主站的CPU必须完成下列几项任务:已接收数据帧的处理、客户应用处理、发送数据和主站协议栈管理,非周期数据的处理在每个循环周期中可选,如下面总线时序示意图所示。

 

 

 

总线时序图说明:

EtherCAT主站接收周期和非周期输入数据,

       函数使用参数:eUsrJob_ProcessAllRxFrames     功能:接收所有的输入数据帧。

EtherCAT主站发送周期数据输出

       函数使用参数:eUsrJob_ProcessAllCvcFrames    功能:发送循环数据帧。

 EtherCAT 主站管理,

       函数使用参数:eUsrJob_MasterTimer            功能:触发主站和从站的状态机。

 EtherCAT主站发送非周期性数据,如SDO,

       函数使用参数:eUsrJob_SendAcvcFrames           功能:发送非周期数据帧。

客户应用:处理输入数据并生成输出数据,用户程序所要完成的操作在这里进行。

 

2.         Acontis主站EC-Master性能测试环境设置

EC-Master性能测试环境包含了七个从站:EK1100、2xEL2004、2xEL1014、EL4132和EK1110。

传输的过程数据包含512个字节的数据(256个输入和256个输出),填充了一个大小为579字节的数据帧。此外主站与EL4132使用邮箱方式进行非周期数据交换。主站协议栈每个循环周期内占用的CPU时间请参考测试结果。

3.         测试结果(CPU平均负载)

平台

芯片

主频

网卡

协议栈占用CPU时间

主站版本

操作系统

Intel

Atom D510

2 x 1600MHz

Realtek8111

14µs

2.3.1.99

VxWorks

Intel

Atom D510

2 x 1600MHz

Realtek8111

16.5µs

2.3.1.99

QNX

Intel

Atom D510

2 x 1600MHz

Pro 1000

16µs

2.3.1.99

VxWorks

Intel

Atom D510

2 x 1600MHz

Pro 1000

16µs

2.3.1.99

QNX

Intel

Atom Z510

1100MHz

Realtek8169

19µs

2.4.1.3

Window CE6.0

Intel

Atom D510

2 x 1600MHz

Realtek8111

14µs

2.3.4.1

Window CE6.0

ARM

XILINX ZYNQ

XC7Z020

2 x 667MHz

SockRaw Polling

62µs

2.5.3.4

Linux 3.0.0

SMP

PREEMPT

ARM

Holster netX

200MHz

netX

216µs

2.2.1.3

rcX

PPC

P2020 e500V2

1200MHz

eTSEC

14µs

2.4.1.3

VxWorke 6.8

ARM

TI DM8168

1000MHz

Internal

79µs

2.4.1

Linux

ARM

TI AM335x

720MHz

CPSW

50µs

2.6.2.15

Starterware

ARM

TI AM335x

720MHz

CPSW

36µs

2.6.0.99

QNX

Intel

Core2 Duo

2190MHz

Pro 1000

9µs

-

-

Intel

Core2 Duo

2800MHz

Realtek 8169

7µs

2.5.0.0

Linux RT Preempt

ARM

-

96MHz

SMSC 9218i

644µs

-

MQX

ARM

iMX25

400MHz

FECFSL

283µs

2.4.1.3

-

ARM

Renesas R-IN32

100MHz

internal

125µs

2.7.0.99

iTron (HWRTOS)

 

注释:协议栈占用CPU时间是指在每个循环周期中I、O、A、M(数据接收,周期数据发送,主站管理,非周期数据发送)所用时间的总和。

 

                                                  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!