自建极简Ethercat主站-第2章 底层传输指令介绍与实现

张开发
2026/4/13 22:30:52 15 分钟阅读

分享文章

自建极简Ethercat主站-第2章 底层传输指令介绍与实现
文章目录第2章 底层传输指令介绍与实现2.1 寻址方式2.1.1 网段寻址2.1.2 设备寻址2.2 传输指令2.3 Working Counter2.4 代码示例第2章 底层传输指令介绍与实现2.1 寻址方式​ 在我们对Ethercat数据组包的时候,在Datagram的DatagramHeader中有一个字段Address,占据了4个字节。这个Address就是用来表示当前的Datagram是对哪个从站中的哪个地址进行操作的。2.1.1 网段寻址​ 在Ethercat中,连接模式有两种,一种是开放模式,一种是直连模式。1 直连模式​ 在直连模式中,从站直接与主站相连,从站不会对以太网帧的MAC地址字段进行校验。直连模式如下图所示:2 开放模式​ 在开放模式中,从站与主站连接在交换机上面。一个交换机上面可以连接多个从站或主站。他们之间通过MAC来进行寻址,这就是网段寻址。与交换机相连接的第一个从站设备具备一个MAC地址,这个从站称作网段地址从站。它可以将接收到的以太网帧的源地址和目的地址进行交换,然后再将自身的MAC地址填入源地址中。交换后,以太网帧的目的地址就是源主机的MAC地址,源地址就是从站的MAC地址。这样以太网帧最后就可以通过交换机回到主站。在同一网段内,从站的寻址还是通过设备寻址和逻辑寻址。开放模式如下2.1.2 设备寻址​ 在设备寻址中,4字节的Address被拆分为2字节的从站地址ADP和2字节的内存偏移ADO。根据寻址机制又分为位置寻址和节点寻址。1 位置寻址​ 位置寻址中,从站的地址由其所在的物理连接位置确定的。当数据帧每经过一个从站,ADP都会加1。如果数据帧到达一个从站的时候,ADP等于0,那么这个从站就是要寻址的从站。假如我们要寻址第三个从站,那么由主站发出的数据帧中ADP 应该为 -2。数据帧在经过从站的时候ADP的变化如下表所示,在到达第三个从站的时候ADP等于0,寻址的就是第三个从站。从站列表数据帧到达时的ADP数据帧转发出的ADP1-2-12-10301412………2 节点寻址​ 节点寻址中,从站的地址有两种:从站配置地址与从站配置别名。从站配置地址保存在从站的寄存器0x10:0x11中,可以有主站进行设置。从站配置别名保存在从站的寄存器0x12:0x13中,它可以在上电或从站复位的时候自动从EEPROM中加载,也可以通过从站上的MCU进行设置。通常在从站初始化的时候,主站通过位置寻址来设置从站配置地址,后续就可以通过从站配置地址来寻址从站。3 逻辑寻址​ 逻辑寻址中,4个byte的Address都用来作为地址。这个地址的值不是固定的,它的范围在0x00000000~0xFFFFFFFF,这个地址对于从站来说,是逻辑上的地址,不是真实的物理内存地址。逻辑地址和从站物理内存地址的映射关系由从站的FMMU来决定。假设现在各从站的FMMU配置如下表所示:从站列表逻辑地址物理地址映射长度10x2000000000x1100420x2000000040x1100430x2000000080x1100240x20000000A0x11002​ 这里的逻辑地址,是我们自己定义的,0x000000000xFFFFFFFF之间都可以;物理地址0x1100是从站的内存地址。映射长度由我们想访问的从站内存地址的长度来决定。现在发送一帧数据,ADRESS为0x20000000,数

更多文章