EtherCAT-1 技术概述

注:以下文章内容通过网站资料整理而来,如有侵权,抱歉联系删除~

1.EtherCAT简介

①开放的技术

EtherCAT全称EtherNet Control Automation Technology,是由德国倍福(Beckhoff)公司提出的一种实时以太网技术。EtherCAT是一种开放但不开源的技术,意味着您可以任意使用这项技术,但若要进行相关设备的开发,则需要向倍福公司获取相关授权。

②快速性

相比传统现场总线,EtherCAT的数据传输速率有了极大的提升,可选10Mbit/s或100Mbit/s,甚至依托补充的EtherCAT G技术,传输速率可达1000Mbit/s;同时EtherCAT基于标准以太网帧传输,单帧数据用容量可达1486 Bytes。这使得在传输数据量方面EtherCAT有无比的优越性。

③拓扑的灵活性

EtherCAT几乎支持所有的拓扑结构:星型、线性、树型、菊花链型等,并支持各类电缆、光纤等多种通信介质,还支持热插拔特性,保证了各设备之间连接的灵活性。同时EtherCAT几乎没有设备容量限制,最大从站设备数可达65535个,使得网络中无需交换机的存在,仅通过设备间的拓扑结构即能使得EtherCAT数据直达每个从站。

④同步的精准性

对于像多个伺服轴执行协同运动等一类应用,其对数据同步性要求甚高。而EtherCAT可选择使用分布式时钟(DC)的方式同步节点,并采用完全基于硬件的时间校准机制,使得整个系统抖动时间远小于1us,能够完全适用于这样的应用之下。如下图所示,300个EtherCAT站点间的信号时间抖动仅有20ns:

⑤高可用性

EtherCAT可通过简单的措施实现线缆的冗余性。通过将网络中最后一个站点与主站设备中的以太网端口连接,即可将线型拓扑结构扩展为环型冗余拓扑结构。当线缆损坏或站点故障发生时,主站堆栈中的附加软件检测就会检测到,并立刻切到换冗余线路中运行,而各站点无需为此而改变,甚至不会意识到网络通信正在冗余线路中运行。

2.EtherCAT基本原理

倍福官方对EtherCAT的传递机制的命名叫做:ON The Fly。

图 2-1 EtherCAT运行原理

On The Fly技术可以从两方面来解读,第一个方面是以太帧“时分复用”。一般以太帧里都只包含了一个设备发送的消息,5个设备就会发送5条以太帧。而EtherCAT则是多个从站共享一条以太帧。就像图2-1中的火车,EtherCAT主站发出了“火车”(以太帧),各个从站则从这辆火车的不同的“车厢”(子报文)中提取或插入自己的“乘客”(消息)。这样一来就实现了以太帧的“时分复用”,只用一条以太帧(最大1486byte),就可以让各个从站都收发出自己的消息,大大的降低了通信的延时(这一部分《浅析EtherCAT 总线》里面讲的比较清楚,还没理解的同学可以看看)。

On The Fly影响的另一个方面就是总线仲裁了。所谓总线(例如CAN总线),就是大家都共用一条通道来通信,各个设备都挂载在同一条总线上。所以,当一个总线上的多个设备同时想要发消息的时候,就会产生冲突,所以,就有总线仲裁的机制。控制器决定当前时刻,谁来发消息,谁来“占用”这条总线。而EtherCAT玩了一个花样,EtherCAT的各个设备之间是一种P2P(Point to Point)的连接方式,这些设备根本没有连接在“同一条”总线上。下面是EtherCAT的连接结构。

图 2-2 EtherCAT连接结构

图2-2中,最左边的是主站,后面的都是从站,各个从站下面还挂载了不同的设备。可以看到主站向从站1发送以太帧,从站1接收、处理完自己的子报文后,再把以太帧发送给从站;从站2接收,处理完自己的子报文后在发送给从站3;如此往返,直到最后一个从站n接收处理完自己的消息,再把这条以太帧返回回去。所以,各个从站之间根本就不会存在总线冲突。EtherCAT只需要预先配置好各个从站占用的子报文位置,也就是On The Fly技术,就可以解决总线仲裁这一个老大难的问题,确实是一箭双雕。

当然,这种解决方案也是有它的缺点的。比如,从站数量非常多的时候,最后一个从站就需要等前面的从站一次次转发才能收到消息。

主站是唯一允许发送帧的节点,子站只能转发帧。数据帧就像火车一样,从主站开出,途经各个子站,把对于子站的数据放下或者带上,最后回到主站。

这种方法有助于确保实时操作并避免延迟。

图 2-3 EtherCAT数据帧像地铁一样

EtherCAT网络不需要交换机。每个EtherCAT设备通常有两个以太网端口,第一个端口是接收端口,另一个是发送端口,发送给另一个设备。

3.EtherCAT系统组成

EtherCAT系统主要就一个主站和若干从站组成。如图3-1所示:

图3-1 EtherCAT系统组成

EtherCAT一般使用软件的方式来实现主站,包括倍福的TwinCAT,Igh,KingStar等都是基于一台实时操作系统的PC,通过以太网卡,来实现主站的功能。

从站的组成如图3-2所示:

图 3-2 从站组成

从站一般是有3部分器件组成的:物理层器件、EtherCAT从站控制器(EtherCAT Slave Control)和微处理器(MCU)。物理层器件就是以太网的PHY芯片和网口,ESC是实现EtherCAT协议栈的专用ASIC,从站控制微处理器主要实现应用层(如CANopen)和用户自定义的程序。

物理层,数据链路层,应用层这些是个啥玩意?这里我就简单说一下,想要深入理解还是可以看看OSI模型,大多数的通信技术都脱离不了这个框架。

图 3-3 OSI模型

OSI中有7层,EtherCAT系统中只用了3层:物理层、数据链路层、应用层。先降维的说一下这几层是啥意思。最基本的通信就是咱们人类说话,我就以我们普通对话来讲解一下这三层的意思。

1)物理层:人类的语言是通过嘴发声,声波在空气中传播,传递到耳朵,耳朵听音再汇聚到大脑,大脑最终判断出声音中的信息。我们的嘴、耳、声波和空气就是物理层。物理层的重点是信号在介质中的传递表示,不同的字有不同的发音规则,不同的频率和声调,比如“哦”,我们就需要发出“o”这个音,我们听到“o”这个音的时候,才能判断出“哦”这个字。计算机通信的原理和这个也是一样的,信号在光纤、电缆以及空气中传播,计算机需要判断电缆上的电平的高低来判断0/1bit。当然,计算机比人类要傻很多,它不知道“某句话”的“发音”是从什么时候开始的,什么时候结束的,所以,物理层还需要告诉它信号的起始时刻和持续的长度等等。

2)数据链路层:通过前面的物理层,我们已经具备了基本的发声的手段,通过嘴改变声音的频率、音调、音长等特征(通信系统中,天线或者光模块改变信号的电平高低、信号频率、调制方式等特征),让声音在空气中传播(通信系统中,信号在相应的介质中传播),然后,耳朵识别这些频率、音调、音长等特征(通信系统中,接收端的识别信号的电平高低、频率、调制方式),最终实现口到耳的传播。

但是,光是这样还足够实现通信。试想一下,你和你的几个朋友处在一个嘈杂的环境当中,远处有汽车的轰鸣,旁边还有小孩子在哭闹,你的朋友们每个人在抢着发言,大家七嘴八舌的,根本听不清对方在说什么。所以,你和你的朋友之间想要对话就必须克服两个困难,第一,屏蔽掉耳旁的那些轰鸣声、哭闹声;第二,需要建立一种对话机制,让大家互相可以听清对方的话语。

第一点中描述的那些轰鸣、哭闹声,实际上就是通信系统中的噪声,噪声太大时,我们是无法通信的,因为我们根本听不清旁边的人在说些什么,只能听到轰鸣、哭闹声。最简单克服噪声的办法就是提高信号的发射功率,也就是大声地说话,让自己的声音盖过那些哭闹声,也即是通信系统中的功率控制。还有一种办法就是我们过滤掉一些噪声,虽然,这些声音都会进入我们的耳朵,但是,我们的大脑可以过滤掉一些不关注的声音,专注的去接收那些关注的声音,也即是通信系统中的频率选择。此外,大家七嘴八舌的说话也是一个问题。7,8个人同时在说话,你能听清楚一两个就不错了,其他人在说啥,根本没法听清。所以,我们说话的时候,一般会有一个轮流的机制。每个人说两句,别人说话的时候,别插嘴。或者,两个人说悄悄话,不打扰到别人,自己也听得清。这里的轮流说话机制,就是通信系统中的“时分复用”或者“频分复用”;一个人说7个人听,就是广播;1对1的悄悄话就是单播。数据链路层实际上就是用来解决以上的这些问题。

EtherCAT链路层的总体特点如下:

①采用IEEE 802.3标准以太网帧结构;

②支持UDP,不支持IP协议;

③报文帧的传输要通过专用硬件(如ET1100)。

数据链路层会将待传输的消息组成一个帧,如图3-4所示:

图3-4 EtherCAT帧结构

这个帧里就会包含目的地址、源地址、帧数据、帧校验位等。通过目的地址就可以确定帧传递的对象,通过源地址接收方也可以知道是谁发送了这条帧。在数据帧之外的地方,一般还会存在一个控制器(比如EtherCAT主站),这个控制器会决定,其他的从站什么时候传输数据,数据可以占用多少的资源。在其他的一些更复杂的通信系统中,数据链路层还会根据当前的信道条件(噪声情况),来决定各个设备的发射功率,调制方式等。

FMMU管理机制:

FMMU管理机制用于每个从站的每个数据进行自身物理地址与通信逻辑地址的映射。对于主站而言,相同一个逻辑地址可以对应多个从站的物理地址,从而能够实现1条报文访问多个从站的特定数据。

WKC自增计数器:

自增计数器,用于校检报文帧的命令是否正确的运行。报文帧的命令码得到正确执行后,相应的WKC会自增相应的值,在该报文从发出到返回主站时,主站会依据报文帧WKC内的值,与发送时计算得出的正确执行命令时应该接收到的值作对比,从而判断该报文帧有无正确执行。

3)应用层:说完了数据链路层,我们还需要继续了解一下应用层。首先需要明确的一点,这里的应用层和我们手机、电脑上的应用程序不是一个东西。最为常见的应用层协议就是HTTP。简单来说,应用层是对数据的一种格式约定。这里还是用人类的对话来打个比方。你和一个老外,大家都有口有耳,也都是文明人,知道等对方说完自己再说。但是,你不懂英文,他不懂中文,你们还是无法交流。他说了“double”,你以为是“打包”;他说“You need cry deal”,你以为是“有你的快递”。这实际上就是你们的应用层协议不对等,他安装的是“英语”应用层协议,你安装的是“中文”应用层协议,大家说话牛头不对马嘴,根本无法交流。再夸张一点,我和你都是中国人,我们都听得懂中文,当时我是学通信的,你是学自动化的,我说PRACH信道,信道检查与估计,匹配滤波这些词的时候,你能明白每一个字的意思,但是连着一起是啥就不知道了。这就是因为你确实“通信系统”这个应用层协议。应用层协议最终的目的,就是让消息的收发双方知道这一串“1010101010”代表的是什么意思。

1)特性

EtherCAT应用层支持多种设备行规以实现邮箱通讯,包括CANopen、SERCOS、HTTP等,基于EtherCAT的应用层行规被称为xoE协议(xxx over EtherCAT)。设备开发中,从站设备无需支持所有行规,根据其应用选择最合适的一种即可。下面将以应用最为广泛的CoE协议举例描述。

2)CoE协议

CoE全称CAN application protocol over EtherCAT,是EtherCAT应用层协议实现的一种,其特点是根据CiA402协议编写,使用对象和对象字典的功能实现邮箱通讯。

CANopen协议已经有成熟且大规模的应用,使用CoE协议,相关设备只需要经过少量的更改即可应用于EtherCAT协议上,大部分CANopen的固件也可以得到重复利用。

3)站点状态机

EtherCAT对于站点所处的状态与运行功能进行了规范,如上图所示,各状态功能简介如下:

Init:初始化状态,站点在此状态下将检查数据链路是否正确,与应用层无数据交互。

Pre-Op:预操作状态(POP),站点在此状态下仅进行邮箱通信,不进行过程数据交互。

Safe-Op:安全运行(SOP),站点在此状态下可进行邮箱通信,并允许过程数据输入,不可输出。

OP:操作状态,站点可进行完全的数据通信,处于正常的工作状态。

Bootstrap:引导模式,仅适用于FoE的邮箱通信,用于固件的更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值