USB协议之二 数据包分析

一、协议知识
1)PID格式,详见图1

1.gif
                                                  (图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等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值