EtherCAT帧捕获与帧结构分析
目录
- 简介
- 如何捕获
- 如何过滤
- 帧结构
简介
本文解决如下问题,
- 如何捕获EtherCAT帧
- EtherCAT帧结构是怎样的
- EtherCAT帧结构规范在哪里看
如何捕获
只有开启网卡混杂模式之后,wireshark才能检测到网络数据
打开wireshark,开始监控
如何过滤
参考https://www.wireshark.org/docs/dfref/#section_e,其中有三部分可以设置的过滤器,打开就能看到
帧结构
EtherCAT Master在每一个周期里都会下发如下三条指令,用于读写过程数据和查看AL status等。
这些网络数据在wireshark中的捕获结果如下
图上灰色的是master发送出去的数据帧,工作计数器为0
黑色的是接收到的数据帧
参考==《EtherCAT 规范 第四部分:数据链路层协议规范》 ==,表9
Dest MAC,Src MAC,Ether Type如下
后面的EtherCAT frame,由EtherCAT frame header和datagram组成。
对于EtherCAT 过程数据帧和邮箱数据帧,这两个部分有所区别,主要是在header中的协议类型type和datagram中的负载上。
上面我们捕获的是过程数据帧,结构如下
捕获数据中有三个PDU
PDU结构按操作指令区别而不同。以BRD轮询AL status为例,就是我们捕获数据帧中的最后一个PDU
规范中定义如下:
需要注意,规范中的ADP就是wireshark中的Slave ADDR,是按照位置寻址的站地址Slave Addr。
ADO是物理内存地址,是从站双端内存中的地址,对应wireshark中的偏移地址offset Addr。
发送出去的BRD没有数据,接收的才有