接前一篇文章:EtherCAT从入门到精通(9)
本文内容参考:
《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社
工业以太网现场总线 EtherCAT 驱动程序设计及应用学习笔记_ethercat总线-CSDN博客
特此致谢!
三、EtherCAT协议详解
3. EtherCAT报文寻址和通信服务
EtherCAT通信由主站发送EtherCAT数据帧读写从站设备的内部存储区来实现。EtherCAT报文使用多种寻址方式操作ESC内部存储区,实现多种通信服务。EtherCAT网络寻址方式如下图所示:

一个EtherCAT网段相当于一个以太网设备,主站首先使用以太网数据帧头的MAC地址 寻址到网段 ,然后使用EtherCAT子报文头中的32位地址 寻址到段内设备。

段内寻址 可以使用两种方式 :设备寻址 和逻辑寻址 。设备寻址针对某一个从站进行读写操作;逻辑寻址面向过程数据,可以实现多播,同一个子报文可以读写多个从站设备。支持所有寻址模式的从站称为完整型从站 ;而只支持部分寻址模式的从站称为基本从站。
(3)逻辑寻址和FMMU
逻辑寻址时,从站地址并不是单独定义的,而是使用寻址段内4GB()逻辑地址空间中的一段 区域。报文内的32位地址区作为整体的数据逻辑地址完成设备的逻辑寻址。
逻辑寻址方式由现场总线内存管理单元(FMMU,Fieldbus Memory Management Unit)实现,FMMU功能位于每一个ESC内部,将从站本地物理存储地址(16位)映射到网段内逻辑地址(32位),其原理如下图所示:

现场总线内存管理单元(FMMU)运行原理

FMMU单元由主站设备配置,并在数据链路启动过程中传送给从站设备。每个FMMU单元需要以下配置信息:数据逻辑位起始地址、从站物理内存起始地址、位长度、表示映射方向(输入或输出)的类型位,从站设备内的所有数据都可以按位映射到主站逻辑地址。
一个映射实例如下表和图所示:
| FMMU配置寄存器 | 数值 |
|---|---|
| 数据逻辑起始地址 | 0x00014711 |
| 数据长度 | 2 |
| 数据逻辑起始位 | 3 |
| 数据逻辑终止位 | 0 |
| 从站物理内存起始地址 | 0x0F01 |
| 物理内存起始地址 | 1 |
| 操作类型(1:只读,2:只写,3:读写) | 2 |
| 激活(使能) | 1 |
| [FMMU配置示例] |

将主站控制变量区0x00014711从第3位开始的6位数据映射到由设备地址0x0F01第1位开始的6位数据写操作。0x0F01是一个开关量输出设备。

FMMU映射举例
从站设备收到一个数据逻辑寻址的EtherCAT子报文时,检查是否有FMMU单元地址匹配。如果有,它将输入类型数据插入到EtherCAT子报文数据区的对应位置,并且从EtherCAT子报文数据区的对应位置抽取输出类型数据。使用逻辑寻址可以灵活地组织控制系统、优化系统结构。逻辑寻址方式特别适用于传输或交换周期性过程数据。
FMMU操作具有以下功能特点:
- 每个数据逻辑地址字节只允许被一个FMMU读和另一个FMMU写操作,或被同一个FMMU进行读写交换操作;
- 对一个逻辑地址的读写操作与使用一个FMMU读和另一个FMMU写操作具有相同的结果;
- 按位读写操作不影响报文中没有被映射到的其它位,因此允许将几个从站ESC中的位数据映射到主站的同一个逻辑字节;
- 读写一个未配置的逻辑地址空间不会改变其内容。
更多内容请看下回。