EtherCAT EOE移植及上手说明

上期回顾:EtherCAT协议介绍

01

EtherCAT介绍

1

EtherCAT状态机制

ESM (EtherCAT state machine)是用来在启动或者工作时协调主站和从站关系用的,由应用层控制器将从站应用的状态写入AL状态寄存器,主站通过写AL控制寄存器进行状态请求。因此从逻辑上说,ESM位于EtherCAT从站控制器与应用之间。

db7f2ed4e02cfc116ebb89af609e9261.png

如下所示,它包含 EtherCAT状态转换的过程。

运行状态 描述
Initial 初始化状态
Pre-Operational 预运行状态
Safe-Operational 安全运行状态
Operational 运行状态
  • 初始状态(Init)

此时应用层无通信,没有邮箱通信也没有过程数据通信

  • 转换到预工作状态(Init to Pre-Op)

主站配置地址和SM,用于进行邮箱通信;同时主站请求向Pre-Op模式转换;接着从站检查邮箱是否初始化正确

  • 安全工作状态(Safe-Op)

在这一阶段,从站应用程序将传输实际输入数据,此时主站并不对从站输出进行操作,并将输出模式设为安全状态

  • 转换到工作状态(Safe Op to Op)

这一阶段主站开始发送有效的输出数据,同时请求向工作模式转换

  • 工作状态(Op)

此时主站的输入和输出均有效,可以进行过程数据的通信

  • Bootstrap状态

此外还有个Bootstrap状态,该状态作为可选项,一般是在固件更新时使用,该状态只允许从初始状态切换到该状态,在此状态期间是没有过程数据通信的,一般是用于FOE协议文件传输或固件升级的

下面是具体的一些状态转换,此处不再说明

状态转换 描述
IP 启动邮箱通讯
PI 停止邮箱通讯
PS 启动输入更新
SP 停止输入更新
SO 启动输出更新
OS 停止输出更新
OP 停止输入输出更新
SI 停止输入更新,停止邮箱通讯
OI 停止输入输出更新,停止邮箱通讯
IB 启动bootstrap模式
BI 重启节点

2

EtherCAT寻址

EtherCAT通信是指主设备从EtherCAT从设备的内部闪存读取和写入数据,通常来说有两种寻址方式来控制内部的ESC寄存器:

1)设备寻址

在设备寻址时,EtherCAT子报文头内的32位地址分为16位从站设备地址和16位从站设备内部物理存储空间地址。设备寻址时,每个报文只寻址唯一的一个从站设备,但对于寻址机制又分为两种:

  • 顺序寻址:使用顺序寻址时,从站的地址由其在网段内的连接位置确定,用一个负数来表示每个从站在网段内由接线顺序决定的位置。顺序寻址子报文在经过每个从站设备时,其顺序地址加1,从站在接收报文时,顺序地址位0的报文就是寻址到自己的报文,因此这种寻址机制也被称为“自动增量寻址”;

4e704f9b97952285b4fb458da9a08c3d.png

例如:主站发起三个子报文分别去寻址三个从站,其中地址分别为0,-1,-2,如上图中的数据帧1,数据帧在到达从站1时,从站1检查到子报文1中的地址为0,从而得知子报文1就是寻址到自己的报文,数据帧经过从站1后,所有的顺序地址都增加1,称为1,0,-1,以此类推...

  • 在设置寻址时,从站的地址与其在网段内的连接顺序无关,地址可以由主站在数据链路层启动阶段配置EtherCAT ID给从站;也可以由从站在上电初始化时从自身的EEPROM内部读取EtherCAT ID进而分配地址。

2)逻辑寻址

前面讲的设备寻址一般来说只针对某一从站进行读写操作,并且是在扫描阶段去使用的,相对与逻辑寻址来说并不常见。逻辑寻址面向过程数据,可以实现多播,同一个子报文可以读取多个从站设备。

在逻辑寻址时,从站地址并不是单独定义的,而是使用了寻址段内4G逻辑地址空间中的一段区域,报文内的32位地址作为整体的数据逻辑地址完成对设备的逻辑寻址。

而谈到逻辑寻址,需要了解FMMU(现场总线内存管理单元),逻辑寻址由FMMU实现,在ESC(从站控制器),主要负责逻辑地址与物理地址的映射,用于将过程数据映射到主站,从而减轻主站的存储器管理负担。

当从站设备收到一个数据逻辑寻址的EtherCAT子报文时,会检查是否由FMMU单元地址匹配,如果有的话,就会将输入类型数据插入至EtherCAT子报文数据区的对应位置。

3

EtherCAT从站同步模式

EtherCAT从站同步模式主要分为以下几种:

(1)自由运行模式(Free Run Mode)

在此模式下,从站设备独立于主站运行,内部没有同步到任何外部信号。设备的周期性操作由内部时钟或定时器控制,通常用于非实时要求的应用场景。

(2)分布式时钟模式(Distributed Clocks,DC)

分布式时钟是 EtherCAT 的关键同步机制之一,广泛用于需要高精度同步的场景。在 DC 模式下,所有 EtherCAT 从站通过一个参考时钟(通常由主站或某个从站提供)实现时间同步。每个从站都会调整其内部时钟,使所有设备在微秒级别内同步。此模式适用于需要精确协调多个设备动作的应用,例如运动控制。

(3)同步管理器事件模式(SyncManager Event Mode)

前面我们说了,FMMU主要用于地址映射,寻找对应的地址(寻址),那SyncManager就是用于交换数据,将数据同步进去。

在此模式下,从站设备通过 SyncManager 同步数据传输。每当主站写入或读取 SyncManager 寄存器时,从站的同步管理器事件会触发中断,从而引发应用程序的执行。这个模式下的同步精度不如 DC 模式高,通常用于不需要严格时间同步的应用场合。

SyncManager主要有两种模式:

1)邮箱(单缓存模式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值