打印

图解USB协议之二 数据包分析

[复制链接]
9222|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
avatar_21ic|  楼主 | 2010-1-12 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 avatar_21ic 于 2010-1-12 11:06 编辑

     《图解USB协议之一 枚举过程》https://bbs.21ic.com/icview-152202-1-1.html

   

  
  感谢朋友们对我发的上一个帖子《图解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 的最大长度为     1024Bytes
b、 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],主机正确收到数据后回应ACK
d、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等等。







本文同时发于avatar的博客:
http://blog.**/avatar/
图解USB协议之二 数据包分析.pdf (124.05 KB)

相关帖子

沙发
avatar_21ic|  楼主 | 2010-1-12 10:20 | 只看该作者
自己先顶!

使用特权

评论回复
板凳
computer00| | 2010-1-13 09:48 | 只看该作者
帮顶。

使用特权

评论回复
地板
avatar_21ic|  楼主 | 2010-1-14 18:12 | 只看该作者
感谢圈圈支持!

使用特权

评论回复
5
yxm433| | 2010-1-20 09:09 | 只看该作者
谢谢了

使用特权

评论回复
6
stm_zy| | 2010-1-20 09:45 | 只看该作者
赞一赞楼主的分享精神!
:victory:

使用特权

评论回复
7
icer1| | 2010-3-6 19:51 | 只看该作者
不错

使用特权

评论回复
8
feichen158| | 2010-3-18 21:58 | 只看该作者
谢谢

使用特权

评论回复
9
weky| | 2010-3-24 13:48 | 只看该作者
继续为lz大气

使用特权

评论回复
10
lincoln1000| | 2011-4-10 11:59 | 只看该作者
ding :handshake

使用特权

评论回复
11
bang417| | 2011-4-10 19:01 | 只看该作者
好贴,大家一起顶!!!!!!!!

使用特权

评论回复
12
adam8899| | 2011-4-10 20:04 | 只看该作者
学习中~

使用特权

评论回复
13
布川酷子| | 2011-10-17 20:24 | 只看该作者
膜拜!

使用特权

评论回复
14
meyoumeyou| | 2012-11-29 08:58 | 只看该作者
最近在做关于USB的项目,正好补充补充,谢谢楼主

使用特权

评论回复
15
nihao255| | 2012-11-29 17:58 | 只看该作者
我顶你

使用特权

评论回复
16
nihao251| | 2012-11-30 07:07 | 只看该作者
顶你

使用特权

评论回复
17
yksn| | 2013-2-28 13:30 | 只看该作者
顶一下

使用特权

评论回复
18
yksn| | 2013-2-28 13:30 | 只看该作者
meyoumeyou 发表于 2012-11-29 08:58
最近在做关于USB的项目,正好补充补充,谢谢楼主

顶一下

使用特权

评论回复
19
zhitao2072| | 2013-4-9 11:58 | 只看该作者
早想学习USB了,苦于俺是菜鸟,无从下手,多谢楼主分享。

使用特权

评论回复
20
woshansi| | 2014-1-31 13:14 | 只看该作者
继续学习中,虽然不是很懂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:和若春风,肃若秋霜;取象于钱,外圆内方。

11

主题

22

帖子

0

粉丝