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(数据接收,周期数据发送,主站管理,非周期数据发送)所用时间的总和。

转载于:https://www.cnblogs.com/liyaqi/p/4866350.html

EtherCAT协议介绍相关推荐

  1. 工控协议解读之EtherCAT协议硬核分析(转自知乎“智能制造之家“)

    原文:https://zhuanlan.zhihu.com/p/413417192 一.概述 EtherCAT(Ethernet for Control Automation Technology)是 ...

  2. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  3. open source license主流的开源软件协议介绍

    open source license主流的开源软件协议介绍(20190222) 文章目录: 一.开源软件的直观介绍 二.常用开源协议介绍 三.常用开源协议之间的对比 当Adobe.Microsoft ...

  4. SNMP协议介绍和操作截图

    第一章 SNMP协议介绍 SNMP协议 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的 ...

  5. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

  6. Python教程之udp和tcp协议介绍

    UDP介绍 UDP - 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据 ...

  7. (4)ZYNQ AXI4总线协议介绍

    1.1 ZYNQ AXI4总线协议介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)ZYNQ AXI4总线协议介绍: 5)结束语. 1.1.2 本节引言 " ...

  8. 音视频直播流程及常见视频流协议介绍

    音视频直播流程介绍 常见视频流协议介绍 HLS HLS是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统 ...

  9. SNMP 网络协议介绍

    这里填写标题 1. SNMP 网络协议介绍 1.1. 什么是 SNMP 1.1.1. 概述 1.1.2. SNMP 版本 1.2. OIDs 1.2.1. 什么是 OID 1.2.1.1. 可查询数量 ...

最新文章

  1. objc’s category and class cluster 详解
  2. PHP语言中global和$GLOBALS[]的分析
  3. 2个点马氏距离计算实例_数据分析基础:距离度量方式(欧式距离、马氏距离、曼哈顿距离)...
  4. 5G 信令流程 — 5GC 的注册管理(RM,Registration Management)
  5. android点击视频使用固定应用打开,Android 使用intent打开手机自带应用播放视频,音频,文档,还有打开应用市场...
  6. Qt for VxWorks
  7. 2020/5/13号单词
  8. python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
  9. 如何实现一次编码,到处运行?新一代云端一体化探索
  10. 对话Satya Nadella:大规模AI模型、人机界面或将迎来大突破
  11. SpringBoot 热部署神器快速重启的秘密!
  12. MySQL空间索引简单使用
  13. 10个优秀的JavaScript参考手册
  14. 2021福建计算机会考操作题,2021年度福建省信息技术会考笔试试题答案.doc
  15. FCN——Semantic Segmentation的开山之作之论文解析
  16. java 多媒体处理_Java 多媒体处理包 JAVE
  17. 【大连理工大学】计算机专业选修:深度学习2020期末复习
  18. 微云百度云等资源 至少1M/s下载提速 无需会员
  19. 怎么把m4a文件变成mp3格式
  20. C—— warning: function returns address of local variable(函数参数返回错误)

热门文章

  1. 计算机二级office题库APP_2019最新题库_计算机二级office选择题
  2. 一个网卡如何设置两个ip,(如何加装网卡,两网卡或多网卡)
  3. 计算机体系结构 第2章 指令系统的设计(1)
  4. 教Kindle新手 手动升级Kindle固件至5.8.5.0.1 全过程
  5. OGNL表达式语言介绍
  6. ## I.MX6ULL学习笔记一I.MX启动方式
  7. 用matlab作地震波vsp图,《多层介质vsp正演方法研究》开题报告.doc
  8. WPF:Loading等待动画、加载动画
  9. go语言自动化编写word
  10. 解决摄像头无法工作的问题