USB2.0令牌、事务及传输抓包分析
+ -

USB2.0握手包ACK总线分析仪抓包实例详解

2024-03-21 79 0

ACK握手包的详细使用说明可详见:https://www.usbzh.com/article/detail-452.html
这里详细的介绍了ACK握手包的使用说明。这里我们对此从数据链路层和USB总线分析仪抓包的来分析。

ACK的数据包格式

ACK可能是USB总线分仪里最简单的包了。其主要包括两部分组成,分别为序列号和ACK的PID(包ID).
ACK的数据包
注意上图,这里显示的是B0~B7,也就是说,USB在数据发送时是先发送低位,再是高位,所以这叫做LSB->MSB

ACK数据包PID

PID占用一个字节8位,但实际上只有4位有效,高4位是低4位的补码。
在USB规范中,定义ACK的PID为0010,所以高4位就是1101。
所以从MSB->LSB上来看,显示的值就是11010010,所以十六进制就是D2
从LSB->MSB上来看,其十六进制就是01001011,所以十六进制就是4B

所以双LSB->MSB是从抓的波形图来看,就是LSB->MSB,在力科的USB总线分仪上我们设置数据为LSB->MSB时,其显示是这样的:
LSB->MSB
ACK的NRZI波形图

不过我们从程序的角度来讲,习惯于MSB->LSB,所以大端显示的就是:
MSB->LSB
当然,这也是主流USB总线分仪大家显示的方式:
南京沁恒出的USB2.0Mointor总线分仪USBMonitor是这样显示的,如对于239279 ACK包。
南京沁恒
USB PACKET Viewer是这样显示的:
USB PACKET Viewer

USB总线分仪软件说明

以上软件分别使用的是:

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UAC Feedback端点
下面转一段对USB feedback的理解:这段时间一直在做USB Audio Device(UAC)设备的开发工作。由于UAC采用的是isochronous endpoint来传输数据,对时钟的要求较高。但无奈我们的嵌入式平台的时钟并不准,数据同步就成了问题。经过研究,发现只能使用异步模式来解决这......
USB超高速设备描述符的bMaxPacketSize0为0x09
USB3的设备中,其USB设备描述符和2.0的结构一致,不过在含义上有的字段稍有区别。比如说在USB3.2的版本中,其设备描述符中的bMaxPacketSize0和USB2.0有就所不同。在USB2.0中bMaxPacketSize0代表的是USB设备默认端点0的最大包的大小,一般为0x40即64字......
USB硬件编码格式NRZI
我们知道USB3.0以前采用的是两根数据线D+和D-所对应的数据传输,采用的是数据编码方式是NRZI(Non-Return-to-Zero Inverted),而USB3.0以后采用的是8/10bit编码。USB使用NRZI编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转。为了防止出现过长......
USB2.0 ACK握手包
ACK握手包用于当USB数据传输的接收方正确接收到数据包时,接收方将返回 ACK 握手包。 ACK 握手包表征了一次正确的数据传输,之后才可以进行下一次事务处理。ACK广泛用于通读协议中,一般用于确认从接收方接收到数据正确无误,特别是在TCP/IP协议栈中,ACK的使用更加让人理解深入。我们嘴里......
USB2.0包Packet的组成
USB包由SOP,SYNC,Packet内容和EOP组成.SOP起始包起始包SOP(Start Of Packet),通过将D +和D-线从空闲状态驱动到相反的逻辑电平(K状态),由始发端口发信号通知分组的开始(SOP)。 此开关级别表示SYNC字段的第一位。 当重新传输到小于±5 ns时,集线器......
USB 高速高带宽端点wMaxPacketSize
USB的端点可以设置为高速高带宽端点。我们知道,USB的数据传输类型有4种,分别为控制传输,中断传输,批量传输和同步传输。而端点类型与之要对应。除过控制传输外,其余三种传输使用于应用的数据传输。USB使用端点描述符的wMaxPacketSize来配置端点为高速高带宽端点,主要表现在bit11-12,......
USB传输的事物拆分和ACK机制
USB的事务拆分USB每次传输的数据包大小不得超过端点的最大包大小,如果需要传输超过端点的最大包大小,是需要进行事务传输的,即一个事务无法完成的数据长度,会拆分成多个事务,并且提几个事务必须按最大端点大小进行数据传输,最后一个事务按实际剩余数据大小传输。这个我们在USB2.0 事务 一切我们有详细的......
USB2.0 IN/OUT事务ACK成功的数据翻转(DATA TOGGLE)
USB使用数据翻转(DATA TOGGLE)的同步机制,用来实现在USB主机和设备之间多个事务的数据传输同步。该同步机制原理是:USB主机和设备各自维护一个数据包PID,根据PID来发送数据包数据接收方根据接收到的数据包情况来改变自身数据包PID数据发送方根据接收方的握手包来改变自身的数据包PI......
USB2.0 IN/OUT事务ACK错误或丢失的数据翻转(DATA TOGGLE)
前面一节我们讨论了当ACK成功发送并被接收时的数据包PID翻转,但在实际的数据传输过程中,也会出现ACK丢失或者错误的情况,这节我们来讨论这种情况。同样的,对于IN事务和OUT事务,我们分别进行讨论。IN事务ACK错误或丢失的数据翻转(DATA TOGGLE)IN事务ACK错误或丢失的数据翻转(......
USB音频设备UAC数据同步方式
对于USB扬声器,USB主机负载发送音频数据,而USB设备负责接收来自主机发送过来的数据,数据的传输方式采用的是同步方式。由于USB主机和USB设备时钟同步的问题,会有一定的偏差,长时间的累积会导致主机和设备之间数据的不同步。如USB主机可能会发送数据相对USB设备播放数据过快,导致USB设备来不及......
lecro力科USB总线分析仪
网址:https://teledynelecroy.com/protocolanalyzer/usbThe introduction of USB 3.2 and USB4 along with the Type-C connector ushers in a new era of unprec......
USB总线分析仪 USB Packet Viewer
说明USB Packet Viewer是一款便携式USB协议分析仪,能够捕捉USB通讯的底层数据包以及总线事件。站长手中有一款USB Packet Viewer产品,讲道理这是一款性价比超高的工具,只有几百块钱的价格(可以说是市面上同类产品的最低价),但确达到了惊人的抓包解析效果。最难能可贵的......
沁恒 USB1.1总线分析仪
参考价:¥599.00淘宝购买地址:https://item.taobao.com/item.htm?id=569868173162产品介绍 USB1.1总线分析仪(WCHUMT11)是 一种多用途的USB产品开发和测试工具,主要 USBMonitor 用于捕获USB总线(UniversalSer......
一款用于构建、分析和破解USB设备的开源、多功能工具LUNA
这是众筹网站CrowSupply上发布的一个新的众筹项目,设计文件已经上线众筹并设计文件开源。项目链接:https://www.crowdsupply.com/great-scott-gadgets/lunaLUNA是一个完整的工具包,使用FPGA技术与USB工作;并提供硬件、网关和软件来启用......
USB Packet Viewer 简介
USB Packet Viewer是一款便携式USB协议分析仪,能够捕捉USB通讯的底层数据包以及总线事件。它由USB 数据包抓包设备和配套的协议解析软件组成,能够对 USB 通讯数据进行可视化分析。更多的详细介绍可见:http://www.usbzh.com/article/detail-74......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!