zoukankan      html  css  js  c++  java
  • EtherCAT学习笔记(EtherCAT的工作原理)

    1、EtherCAT的系统组成

    EtherCAT是一种实时以太网技术,由一个主站设备和多个从站设备构成。具有网络接口卡的计算机和具有以太网控制器的嵌入式设备都可以作为主站,对于PC机而言,主站一般是使用倍福公司开发的TwinCAT软件作为主站控制器,从站使用从站控制器(ESC),如专用集成芯片ET1100或者ET1200,或者是利用FPGA技术集成EtherCAT通讯功能的IP-Core。EtherCAT物理层使用标准的以太网物理层器件,如传输介质通常使用100BASE-TX规范的5类UTP线缆。

    2、EtherCAT的运行原理

    如上图所示,在一个通讯周期内,主站发送以太网数据帧到各个从站,数据帧到达从站后,每个从站根据寻址提取数据帧内对应的数据,并把反馈数据写入到数据帧中,当数据发送到最后一个从站后返回,并通过第一个从站返回到主站。这种传输方式在一个周期内就可以实现数据通讯,还可以改善带宽利用率,最大有效数据利用率可以达到90%以上。

    3.EtherCAT的数据帧结构

    如图所示:EtherCAT的数据帧结构包括14字节的以太网帧头,2字节的EtherCAT头,44-1498字节的EtherCAT数据,4字节的帧校验序列。以太网帧头中包含6字节的目的地址,6字节的源地址和2字节的帧类型。目的地址是接收方的MAC地址,源地址是发送方的MAC地址,帧类型为0x88A4,是EtherCAT的以太网的帧类型。EtherCAT头包括三部分:11字节的EtherCAT数据长度(所有子报文的数据长度的总和),1字节的保留位,4字节的类型(类型固定为1,表示和EtherCAT从站通讯)。每个子报文包含3部分:10字节的子报文头,最多1486字节的数据,2字节的WKC(工作计数器,记录子报文被从站操作的次数)。其中子报文头可分为7个部分,详细解释如下表。主站设置WKC的初始值为0,当子报文被从站处理后,WKC都会增加一定的数量,当数据帧返回到主站后,主站会比较WKC的实际值和预期值是否一致,从而判断报文是否被正确处理。

     

     4、EtherCAT的寻址方式

    EtherCAT的数据通讯是通过主站发送EtherCAT报文读写从站的内部寄存器实现的。EtherCAT报文首先通过网段寻址找到从站所在的EtherCAT网段,然后通过设备地址找到报文数据对应的从站设备,再根据报文中的内存偏移地址读写从站设备的内部寄存器数据,从未完成数据交换。

    (1)EtherCAT网段寻址:EtherCAT主站和从站网段有两种连接方式:直连模式和开放模式。

      ①直连模式就是从站所在的EtherCAT网段用网线直接连接到主站的以太网控制器,这种模式下,主站使用广播MAC地址,以太网帧头的目的地址设置为0xFFFFFFFFFFFF,就可以找到EtherCAT的从站网段。

      ②在开放模式中,EtherCAT的主站和从站网段都连接到同一个标准的以太网交换机上,而且每个EtherCAT从站网段的第一个从站设备都有一个代表整个从站网段的MAC地址,这个从站成为段地址从站。在这种模式下,主站发送EtherCAT报文的时候,以太网帧头的目的地址应该设置为目的从站网段的段地址。

    (2)设备寻址:EtherCAT数据帧的子报文头里有32位的地址区,前16位是从站设备的设备地址,后16位是该从站设备的内存偏移地址。EtherCAT报文首先根据前16位找到特定的从站设备,然后根据后16位将数据写入相应的内存地址或者从相应的内存地址中读出数据。设备寻址可以分为顺序寻址和设置寻址。

      ①顺序寻址:从站设备的地址是由物理连接顺序决定的。

      ②设置寻址:从站设备的地址跟从站设备的物理连接顺序无关,是系统上电初始化的时候由主站配置的,或者从站设备从自身的EEPROM配置文件中读取出来的。

    在一个EtherCAT从站网段中,每一个从站设备都有一个唯一的设备地址,用于获取EtherCAT数据帧中相应的子报文。

    5、EtherCAT的分布时钟

    EtherCAT提供分布式时钟单元,用来同步从站设备。相比于完全同步,分布式同步时钟具有更好的容错性,从而保证EtherCAT从站设备同步工作的稳定性。由于每个设备的时钟是自由运行的,所以需要利用分布时钟进行同步。

    分布时钟同步的原理是将所有的从站设备的时钟都同步于参考时钟,EtherCAT将主站连接的第一个且具有分布时钟功能的从站作为参考时钟。为了实现各从站设备之间的准确同步控制,在EtherCAT网络上电初始化时,会对分布时钟初始化。通过测量和计算各从站设备的时钟与参考时钟之间的偏移,对从站设备时钟进行校正,从而达到时钟同步的目的。EtherCAT分布时钟同步方法基于硬件校正,具有很高的准确性,同步信号抖动远小于1us。

    6、EtherCAT的通信模式

    EtherCAT通信是以主从模式进行的,其中主站控制着EtherCAT的系统通信。在实际自动化控制应用中,通信数据一般可分为:时间关键和非时间关键,EtherCAT中利用周期性过程数据通信进行时间关键数据通信,采用非周期性邮箱通信来实现非时间关键数据通信。

    (1)周期性过程数据通信:周期性过程数据通信通常使用现场总线内存管理单元(FMMU)进行逻辑寻址,主站可以通过逻辑读写命令来操作从站。周期性过程数据通信使用两个存储同步管理单元(SM)来保证数据交换的一致性和安全性,通信模式采用缓存模式。在缓存模式下使用三个相同大小的缓冲区,由SM统一管理,缓存模式的运行原理如图所示:

    (2)非周期性邮箱通信:邮箱数据通信模式只使用一个缓冲区,为保证数据不丢失,数据交换采用握手机制,即在一端完成对缓冲区数据操作后,另一端才能操作缓冲区。通过这种轮流方式进行读写操作,来实现邮箱数据交换。

    7、EtherCAT应用层协议

     EtherCAT应用层直接面向应用任务,它定义了应用程序与网络接口,为应用程序访问网络提供手段和服务。通常对常用协议进行简单修改,与EtherCAT通讯协议兼容,从而可得EtherCAT多种应用层协议,主要包括EoE、CoE、SoE以及FoE等。

    EtherCAT协议本身具有良好的同步特性和数据传输速度,非常适用于伺服系统的控制,其中CoE与SoE可实现交流伺服驱动器控制的应用层。CoE是在CANopen协议基础上,对协议进行了一些补充。CoE完全遵从CANopen的应用行规,其中CiA402行规用于伺服和运动控制。SERCOS是一种高性能数字伺服实时通信接口协议,包含多种通信技术和设备行规。SoE是指在EtherCAT协议下运行SERCOS协议规定的伺服控制行规,使用EtherCAT协议操作SERCOS行规定义的伺服参数和控制数据

    参考:https://blog.csdn.net/zhandouhu/article/details/102760231

  • 相关阅读:
    每日日报7月15日
    每日日报7月14日
    ecplise下 java问题处理
    Visual Studio Code for .Net Framework
    Go语言操作MySQL数据库
    Go语言Gin-4中间件
    Go语言Gin-2.数据传输
    Go语言Gin-1.路由
    13.Go语言-并发编程
    12.Go语言-网络编程
  • 原文地址:https://www.cnblogs.com/young-dalong/p/14633420.html
Copyright © 2011-2022 走看看