当前位置: 首页 > news >正文

EtherCAT报文-APRD(自动增量读)抓包分析

0.工具准备

1.EtherCAT主站
2.EtherCAT从站(本文使用步进电机驱动器)
3.Wireshark

1.EtherCAT报文帧结构

EtherCAT使用标准的IEEE802.3 Ethernet帧结构,帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44-1498字节的数据。数据区由一个或多个EtherCAT子报文组成,每个子报文对应独立的设备或从站存储区域。EtherCAT数据帧结构定义如下所示:
在这里插入图片描述
图中部分内容的定义如下:
在这里插入图片描述

3.EtherCAT报文-APRD抓包

APRD报文也就是自动增量读报文,在主站还未设置从站站点地址前,可以使用APRD报文读取各个从站设置的地址别名,并在后续运行中作为从站站点地址使用。使用地址别名作为从站站点地址,可以保证网段拓扑改变或者增删设备时,从站设备仍然可以使用相同的设置地址,这在实际使用中非常有用。

3.1 主站发送APRD报文

主站向从站(2个)发送APRD报文,读取拓扑顺序为2的从站的站点别名寄存器(0x0012),报文如下:
在这里插入图片描述

3.1.1 以太网帧头

在这里插入图片描述

目的地址:ff:ff:ff:ff:ff:ff
源地址:01:01:01:01:01:01
帧类型:0x88A4

3.1.2 EtherCAT头

在这里插入图片描述

EtherCAT数据长度:0x00e(14)
保留位:0
类型:0x1(EtherCAT命令)

3.1.3 子报文

在这里插入图片描述

3.1.3.1 子报文头

在这里插入图片描述

命令:1(自动增量读命令)
索引(帧存放临时缓冲区编号):0x01
从站地址:0xffff (对应16位有符号数-1,每经过1个从站该值+1,到从站2时该值变为0,从站2发现是寻址到自己的报文便会进行处理)
偏移地址:0x0012(所谓偏移地址就是寄存器地址)
长度:2(和寄存器地址长度相对应,0x0012寄存器长度为2字节)
保留位:0
是否阻止循环帧发送:0(报文不是循环报文)
是否有后续子报文:0(这是最后一个子报文)
状态(中断到来标志):0x0000

3.1.3.2 数据

在这里插入图片描述

注意:图中红框标记处为数据
数据:0x00

3.1.3.3 WKC

在这里插入图片描述

WKC(工作计数器):由于是主站发出的APRD报文,还没经过从站,因此wkc为0
后面的连续的00是填充字节,使EtherCAT报文满足以太网报文最小64byte的要求。

3.1.3.4 FCS

由于Wireshark不支持显示FCS,这里省略4Byte的FCS。值得说明的是,能够被Wireshark抓取到的报文,都是FCS校验通过的帧。

3.2 主站接收从站返回的APRD报文

主站向从站(2个)发送APRD报文,读取拓扑顺序为2的从站的站点别名寄存器(0x0012),随后会收到从站返回的APRD报文,内容如下:
在这里插入图片描述

3.2.1 以太网帧头

在这里插入图片描述

目的地址:ff:ff:ff:ff:ff:ff
源地址:03:01:01:01:01:01
帧类型:0x88A4

3.2.2 EtherCAT头

在这里插入图片描述

EtherCAT数据长度:0x00e(14)
保留位:0
类型:0x1(EtherCAT命令)

3.2.3 子报文

在这里插入图片描述

3.2.3.1 子报文头

在这里插入图片描述

命令:1(自动增量读命令)
索引(帧存放临时缓冲区编号):0x01
从站地址:0x0001(-1 + 1 + 1 = 0x0001)
偏移地址:0x0012(所谓偏移地址就是寄存器地址)
长度:2(和寄存器地址长度相对应,0x0012寄存器长度为2字节)
保留位:0
是否阻止循环帧发送:0(报文不是循环报文)
是否有后续子报文:0(这是最后一个子报文)
状态(中断到来标志):0x0000

3.2.3.2 数据

在这里插入图片描述

数据:0x0032

3.2.3.3 WKC

在这里插入图片描述

WKC(工作计数器):APRD报文只会有一个从站处理,因此wkc = 0 + 1= 1。
后面的连续的00是填充字节,使EtherCAT报文满足以太网报文最小64byte的要求。

3.2.3.4 FCS

由于Wireshark不支持显示FCS,这里省略4Byte的FCS。值得说明的是,能够被Wireshark抓取到的报文,都是FCS校验通过的帧。

总结

(1)顺序寻址时,从站的地址由其在网段内的连接位置确定,用一个负数来表示每个从站在网段内由接线顺序决定的位置。顺序寻址子报文在经过每个从站设备时,其位置地址加1,从站在接收报文时,地址为0的报文就是寻址到自己的报文。例如,顺序为n的从站,使用APRD报文时则设置地址为1-n。
(2)APRD报文寻址成功情况下,WKC+1

http://www.lryc.cn/news/194443.html

相关文章:

  • 论文阅读:Seeing in Extra Darkness Using a Deep-Red Flash
  • 将license验证加入到系统中
  • 中断机制-interrupt和isInterrupted源码分析、中断协商案例
  • 我与COSCon的故事【时光的故事】
  • 【科学文献计量】利用pybibx分析Scopus文献数据集(EDA,N-Grams,Cluster,Network analysis,NLP)
  • -带你看懂11种API类型及应用-
  • 集成友盟qq互联分享,导出风险问题处理
  • 探索数字安全的卓越之选 - Digicert证书
  • 第五章 流程控制 Pro
  • CSS之实现线性渐变背景
  • 软考 系统架构设计师系列知识点之特定领域软件体系结构DSSA(7)
  • CentOS-7网卡重启后关闭的解决方法
  • Linux CentOS7 用户组管理
  • C++算法:前缀和基础
  • vue和react的区别
  • STM32 之 HAL 库串口 USART 丢数据及ORE卡死的解决方案
  • 递归最小二乘法RLS
  • Apache Doris (三十九):Doris数据导出 - MySQL dump导出
  • 【Nginx32】Nginx学习:随机索引、真实IP处理与来源处理模块
  • vue3后台管理框架之集成sass
  • 无需付费开会员,一个Python程序实现PDF转高清图片
  • 为分布式系统设计数据库
  • Programming abstractions in C阅读笔记:p179-p180
  • 在 VSCode 中使用 PlantUML
  • css3过渡属性属性名:transition
  • 关于数据链路层(初步)
  • 诊断DLL——CAPL_DLL集成安全访问算法
  • 集合元素处理(传统方式和Stream方式)
  • 亲测好用,这3款免费高清录屏软件,效果惊人!
  • 超声波清洗机洗眼镜真的可以洗干净吗?眼镜超声波清洗机推荐