EtherCAT报文-BWR(广播写)抓包分析

news2024/11/27 9:52:40

0.工具准备

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

1.EtherCAT报文帧结构

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

3.EtherCAT报文-BWR抓包

BWR报文也就是广播写报文,在主站初始化从站时通常会使用BWR报文切换从站状态机。

3.1 主站发送BWR报文

主站向从站(仅1个)的0x120寄存器(状态控制寄存器)写入0x0001也就是请求从站切换到INIT状态。报文如下:
在这里插入图片描述

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 子报文头

在这里插入图片描述
命令:8(广播写命令)
索引(帧存放临时缓冲区编号):0x0000
从站地址:0x0000 (这里由于是主站发送的BWR报文,通常都置0x0000)
偏移地址:0x0120(所谓偏移地址就是寄存器地址)
长度:2(和寄存器地址长度相对应,0x0120寄存器长度为2字节)
保留位:0
是否阻止循环帧发送:0(报文不是循环报文)
是否有后续子报文:0(这是最后一个子报文)
状态(中断到来标志):0x0000

3.1.3.2 数据

在这里插入图片描述
数据:0x0001(表示请求从站切换到INIT状态)

3.1.3.3 WKC

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

3.1.3.4 FCS

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

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

主站向从站(仅1个)的0x120寄存器(状态控制寄存器)写入0x0001也就是请求从站切换到INIT状态,随后会收到从站返回的BWR报文,内容如下:
在这里插入图片描述

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 子报文头

在这里插入图片描述
命令:8(广播写命令)
索引(帧存放临时缓冲区编号):0x00
从站地址:0x0001(从站返回的顺序号)
偏移地址:0x0120(所谓偏移地址就是寄存器地址)
长度:2(和寄存器地址长度相对应,0x0120寄存器长度为2字节)
保留位:0
是否阻止循环帧发送:0(报文不是循环报文)
是否有后续子报文:0(这是最后一个子报文)
状态(中断到来标志):0x0000

3.2.3.2 数据

在这里插入图片描述
数据:0x0001(表示请求从站切换到INIT状态)

3.2.3.3 WKC

在这里插入图片描述
WKC(工作计数器):经过了一个从站的BWR报文,wkc = 0 +1 = 1。
后面的连续的00是填充字节,使EtherCAT报文满足以太网报文最小64byte的要求。

3.2.3.4 FCS

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

总结

BWR每经过一个从站wkc+1,本例接入从站数量为1,因此返回wkc=1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023研电赛】全国技术竞赛一等奖:基于FPGA的超低时延激光多媒体终端

该作品参与极术社区组织的研电赛作品征集活动,欢迎同学们投稿,获取作品传播推广,并有丰富礼品哦~ 基于FPGA的超低时延激光多媒体终端 参赛单位:华东师范大学 指导老师:刁盛锡 参赛队员:王泽宇 谢祖炜 秦子淇…

解读 | 自动驾驶系统中的多视点三维目标检测网络

原创 | 文 BFT机器人 01 背景 多视角三维物体检测网络,用于实现自动驾驶场景高精度三维目标检测,该网络使用激光雷达点云和RGB图像进行感知融合,以预测定向的三维边界框,相比于现有技术,取得了显著的精度提升。同时现…

【重要!合规政策更新】英国,儿童玩具相关产品卖家,请及时关注!EN71

合规政策更新! 尊敬的卖家: 您好! 我们此次联系您是因为您正在销售需要审批流程的商品。为此,亚马逊正在实施审批流程,以确认我们网站上提供的商品类型须符合指定的认证标准。要在亚马逊商城销售这些商品,您…

第六篇Android--ImageView、Bitmap

ImageView,和前面介绍的TextView、EditText,都继承自View都是View的子类。 ImageView 是用于呈现图片的视图。View可以理解为一个视图或控件。 1.简单使用 在drawable-xxhdpi文件夹下放一张图片: xml中把这张图片设置给ImageView&#xff0…

MySQL单表查询基础综合练习

一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 v…

三勾知识付费(PHP+vue3)微信小程序平台+SAAS+前后端源码

项目介绍 三勾小程序商城基于thinkphp8element-plusuniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 软件架…

BUUCTF学习(二):一起来撸猫

1、介绍 2、解题 (1)查看网页源代码 (2)解读代码内容 (3)得出结论 网址:一起来撸猫http://df4c147d-c7f4-4aac-a9d6-fdce2606ee18.node4.buuoj.cn:81/?catdog 第二题结束

PyTorch入门教学——在虚拟环境中安装Jupyter

1、简介 Jupyter Notebook是一个开源的web应用程序,可以使用它来创建和共享包含实时代码、方程、可视化和文本的文档。Jupyter Notebook是一个交互式笔记本,可以当作python编译器来使用。 2、安装 在安装Anaconda时是自带了Jupyter Notebook的&#x…

Unity第一人称移动和观察

创建一个可以自由移动的第一人称视角 人物通过WSAD进行前后左右移动,通过鼠标右键进行旋转 Step1:创建一个Player玩家,在节点下加两个子物体,一个摄像头和一个Capsule充当身体 Step2:创建一个脚本挂载在Player节点下,再在这个Pl…

ThreeJS-3D教学十-有宽度的line

webgl中线是没有宽度的&#xff0c;现实的应用中一般做法都是将线拓宽成面来绘制。默认threejs的线宽是无法调节的&#xff0c;需要用有厚度的线 THREE.Line2。 先看效果图&#xff1a; 看下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <he…

2022年03月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python编程&#xff08;1~6级&#xff09;全部真题・点这里 C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 关于Python中的列表&#xff0c;下列描述错误的是?&#xff08; …

BUUCTF在线评测简介

1、网站 BUUCTF在线评测简介 BUUCTF在线评测 BUUCTF在线评测BUUCTF 是一个 CTF 竞赛和训练平台&#xff0c;为各位 CTF 选手提供真实赛题在线复现等服务。https://buuoj.cn/challenges 2、介绍 3、学习步骤 学习从这里开始&#xff01;

深入剖析 深度学习中 __init()__函数和forward()函数

目录 前言1. __init()__函数2. forward()函数3. 两者关系 前言 再看代码时&#xff0c;发现init函数和forward函数都有参数&#xff0c;具体是怎么传参的呢&#xff1f; 为了更方便的讲解&#xff0c;会举简单的代码例子结合讲解。 forward() 和 __init__() 是神经网络模型类…

甘特图:如何制定一个有效的项目计划?需要考虑这些方面

一个清晰、可行的计划能够为团队提供明确的方向&#xff0c;确保项目顺利执行&#xff0c;缺乏明确的计划可能导致项目偏离轨道。 甘特图是一种通过条状图形来表示项目和进度的工具&#xff0c;由于其具有视觉化的优点&#xff0c;使得管理者能够更容易地掌握项目进展情况。因…

安捷伦N8485A射频传感器26.5GHz

安捷伦N8485A射频传感器 N8485A 是 Agilent 使用的 26.5 GHz 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率&#xff0c;例如多音和调制射频 (RF) 波形。传感器使用二极管检测器收集高度精确的调制测量值。 用于存储校准系数的 EEPROM 消除了手动输入 10 MHz 至 26.5 GH…

lombok保姆教学

初始化准备工作 所有的环境如下&#xff1a; jdk1.8或者jdk11Springboot2.xmysql5.7或者mysql8.0 首先创建Springboot工程&#xff0c;初次创建初始化速度慢 如果想指定单个项目的maven中央仓库&#xff0c;pom中的配置如下&#xff1a; <!-- 代码库 --><reposito…

BUUCTF学习(一):SQL注入,万能密码

1、场景 2、题目 3、解题 用户名&#xff1a;admin or 11# 密码&#xff1a;123456 4、解析SQL注入 “SQL注入是一种常见的Web应用程序漏洞&#xff0c;攻击者可以通过注入的SQL语句获取数据库的敏感信息&#xff0c;对网站用户的数据安全造成威胁。SQL注入的特点包括广泛性、隐…

如何将领导发的jar包安装到本地的maven仓库

第一步&#xff1a;打开idea右侧的maven功能选择这个图标 第二步&#xff1a;输入maven指令 这个的pom文件的maven管理 1.这个是同一个文件夹下面导入两个jar包。如jdk16和javadoc mvn install:install-file -DfileD:\java\maven\myDepot\aspose-words-16.8.0-jdk16.jar -D…

websocket+node+vite(vue)实现一个简单的聊天

1.前端逻辑 本项目基于之前搭建的vite环境&#xff1a;https://blog.csdn.net/beekim/article/details/128083106?spm1001.2014.3001.5501 新增一个登录页和聊天室页面 <template><div>登录页</div><div>用户名:<input type"text" pl…

uniapp开发H5微信公众号,使用微信的扫一扫等Api试错

记录使用uniapp开发H5微信公众号,有些业务需要用到一些API&#xff0c;比如扫码&#xff0c;h5和微信小程序&#xff0c;app在使用过程中有有些不同&#xff0c;h5使用需要单独引入微信的jsdk,才能使用否则会报错无法使用 引入微信jsdk npm安装 npm install jweixin-module -…