USB协议之二数据包分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

图解USB协议之二数据包分析感谢朋友们对我发的上一个帖子《图解USB协议之一枚举过程》的支持,虽然手头的项目比较忙,周末还是抽时间写了这个专题的第二篇,不能让大家失望啊,哈!本篇分析数据包,仍然使用“HD-USB12”USB协议分析仪采集分析数据。分两部分内容:首先和童鞋们一起简单复习一下USB协议中的相关知识,然后用“HD-USB12”USB协议分析仪采集几个实例进行分析。一、协议知识1)PID格式,详见图1(图1)注:a、上图是从低位到高位b、高四位是低四位取反c、PID自校验2)PID分类,详见图2(图2)3)Token包格式(不包括SOF),详见图3(图3)注:a、ADDR表示设备地址b、ENDP表示端点号c、CRC5表示设备地址及端点号的校验和4)SOF包格式,详见图4(图4)注:a、FrameNumber表示帧号,1毫秒发送一帧b、CRC5表示FrameNumber的校验和5)Data包格式,详见图5(图5)注:a、DATA表示要传输的数据,全速USB的最大长度为1023Bytes,高速USB的最大长度为1024Bytesb、CRC16表示DATA的校验和6)Handshake包格式,详见图6(图6)二、USB传输包组(事务)实例分析1)IN包组分类(懒得自己总结,直接从HD-USB12的数据包过滤功能截取),详见图7(图7)2)IN包组分析(通过HD-USB12监控软件仅过滤出IN包组数据),详见图8(图8)a、Index[691]:表示主机向设备发送IN指令取数据,设备回应没数据;b、Index[692-693]:表示主机向设备地址0(DEV=00)端点0(EP=80,最高位表示传输方向)发送IN指令取数据,设备回应端点停止(STALL);c、Index[701-703]:表示主机向设备地址0(DEV=00)端点0(EP=80,最高位表示传输方向)发送IN指令取数据,设备收到指令后向主机发送数据Index[702],主机正确收到数据后回应ACKd、Index[701]的内容,详见图9(图9)e、Index[702]的内容,详见图10(图10)f、Index[702]的数据发送时序,详见图11(只截取了部分,时序做的很漂亮,看着也很清晰)(图11)注意时序图的Offset[0003]其传输的数据为FF,根据USB采用的传输编码(NRZI)前6位为1后插入1位0,因些第7位的传输要传输2位(01),其时间也占用两位的时间。(啊啊!有时序功能就是清楚,时序还有其它用途以后分解)3)OUT包组分类,详见图12(直接从HD-USB12的数据包过滤功能截取)(图12)4)OUT包组分析(通过HD-USB12监控软件仅过滤出OUT包组数据),详见图13(图13)a、Index[16-18]:表示主机向设备地址0(DEV=00)端点0(EP=00,最高位表示传输方向)发送Out指令后,发送数据Index[17](主机发出空回应所以Index[17]没有数据),设备收到数据后回应ACK;b、Index[16]的内容,详见图14(图14)c、Index[17]的内容,详见图15(图15)5)SETUP包组分类,详见图16(直接从HD-USB12的数据包过滤功能截取)(图16)6)SETUP包组分析(通过HD-USB12监控软件仅过滤出SETUP包组数据),详见图17(图17)a、Index[23-25]:表示主机向设备地址0(DEV=00)端点0(EP=00,最高位表示传输方向)发送SETUP指令后,发送数据Index[24],设备收到数据后回应ACK;b、Index[23]的内容,详见图18(图18)c、Index[24]的内容,详见图19(图19)以上数据包分析是根据现有特定设备捕获得到,并不完整涉及到所有事务包组,如IN+DATA+NAK、OUT+DATA+NAK、SETUP+DATA+NAK等等。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功