打印

图解USB协议之一 枚举过程

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

图解USB协议之一 枚举过程.pdf (99.03 KB)    

       

    前不久花了2300大银败了个HD-USB12协议分析仪(肉痛…)。不过还蛮好用,以后做USB固件开发就方便多了。
    看到21ic坛子里arthur0561大虾发了一系列USB协议入门总结的**,向他(OR她?)表示一下敬意。我也准备用手头这台协议分析仪以实例和图解的方式描述一下USB协议的相关知识,希望对初学USB的童鞋有些帮助。
    废话少说,首先图解一下USB枚举过程。

-----------------------------------------------------------------
一、总线复位及向默认地址0发送GET_DESCRIPTOR指令包,请求设备描述。如(图一)所示:



                                   (图一)



1)Index[4 - 5]:表示USB插入总线复位
2)Index[7 - 8]:表示主机向默认地址发送GET_DESCRIPTOR指令包,详细信息也抓出来了,如(图二)所示:


       (图二)



3)Index[15 - 17]:表示设备向主机发送设备描述数据Index[16]
4)Index[18 - 19]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;

-----------------------------------------------------------------
二、再次复位总线及向设备发送SET_ADDRESS指令包,设置设备地址。如(图三)所示:

                                    (图三)



1)Index[22 - 23]:表示再次总线复位,该复位自动完成,不是手工插拔USB完成
2)Index[25 - 27]:表示主机向默认地址发送SET_ADDRESS指令包,详细信息如(图四)所示:



              (图四)

3)Index[29 - 31]:表示设备完成SET_ADDRESS指令后,给主机发送一个空应答;
-----------------------------------------------------------------
三、向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求设备描述。如(图五)所示:

                                        (图五)



1)Index[33 - 35]:表示主机向地址01发送GET_DESCRIPTOR指令包,详细信息见(图六)

           (图六)


2)Index[41 - 43]:表示设备向主机发送设备描述数据Index[42]
3)Index[45 - 47]:表示设备向主机发送设备描述数据Index[46]
4)Index[48 - 50]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;

-----------------------------------------------------------------
四、向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求配置描述。如(图七)所示:

                                   (图七)


1)Index[52 - 54]:表示主机向地址01发送GET_DESCRIPTOR指令包,详细信息见(图八)

          (图八)



2)Index[57 - 59]:表示设备向主机发送配置描述数据Index[58]
3)Index[60 - 62]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;

-----------------------------------------------------------------

五、重复向第二步设定的设备地址发送GET_DESCRIPTOR指令包,取完所有设备描述及配置描述;
-----------------------------------------------------------------

六、向第二步设定的设备地址发送SET_CONFIGURATION指令包,设置配置描述。如(图九)所示:

                                  (图九)


1)Index[139 - 141]:表示主机向地址01发送SET_CONFIGURATION指令包,详细信息见(图十)

               (图十)

2)Index[143 - 145]:表示设备完成SET_CONFIGURATION指令后,给主机发送一个空应答
至此,枚举过程结束,设备可通过驱动与主机通信了。


    以上的USB枚举过程是根据现有特定设备捕获得到,并不完整涉及到USB协议的所有指令包,如GET_STATUS指令包、CLEAR_FEATURE指令包、SET_FEATURE指令包、SET_DESCRIPTOR指令包、GET_CONFIGURATION指令包、GET_INTERFACE指令包、SET_INTERFACE指令包、SYNCH_FRAME指令包等。


本文同时发于avatar的博客:http://blog.**/avatar/




相关帖子

沙发
avatar_21ic|  楼主 | 2010-1-6 16:37 | 只看该作者
自己先顶一下!

使用特权

评论回复
板凳
nanpia| | 2010-1-18 10:30 | 只看该作者
不错,支持一下

使用特权

评论回复
地板
yxm433| | 2010-1-20 09:07 | 只看该作者
谢谢了,看一下

使用特权

评论回复
5
zhupingheng| | 2010-1-20 21:36 | 只看该作者
先看看什么好资料哇,呵呵

使用特权

评论回复
6
btiger2000| | 2010-1-21 13:00 | 只看该作者
不错!!!

使用特权

评论回复
7
sz_n053| | 2010-1-24 17:08 | 只看该作者
我们公司买了台CATC , 足足一台车的钱

使用特权

评论回复
8
avatar_21ic|  楼主 | 2010-1-24 23:23 | 只看该作者
我们公司买了台CATC , 足足一台车的钱


据说CATC当年出了世界上第一台USB协议分析仪,应该是价格不菲,不过到今天价格应该也没那么贵了吧。

使用特权

评论回复
9
sz_n053| | 2010-1-25 20:32 | 只看该作者
不清楚, 公司好几年前买的, 绿色外壳

使用特权

评论回复
10
canghai21| | 2010-2-10 17:17 | 只看该作者
:) hao qiang da!

使用特权

评论回复
11
liliang9554| | 2010-2-14 17:18 | 只看该作者
嗯,这个资料不错,建议上传到源码区

使用特权

评论回复
12
quandekai| | 2010-3-3 14:02 | 只看该作者
真不错

使用特权

评论回复
13
icer1| | 2010-3-6 19:12 | 只看该作者
超级好

感谢楼主共享设备

使用特权

评论回复
14
xinyue129| | 2010-3-12 16:56 | 只看该作者
很好很强大,先下先,看看能否用得上

使用特权

评论回复
15
easysz| | 2010-3-15 12:34 | 只看该作者
好东西,谢谢楼主的分享

使用特权

评论回复
16
ningling_21| | 2010-3-15 21:52 | 只看该作者
顶一下!

使用特权

评论回复
17
weky| | 2010-3-24 13:45 | 只看该作者
lz牛啊,,,为我们这些菜鸟搭建平台啊

使用特权

评论回复
18
DM_man| | 2010-4-7 08:53 | 只看该作者
不错 顶一下

使用特权

评论回复
19
a008| | 2010-4-14 10:09 | 只看该作者
楼主辛苦了!!!

CATC确实是一款很好的USB协议分析工具
但是现在国内也有类似的工具了,而且便宜很多

使用特权

评论回复
20
xiaowawa1234| | 2010-4-26 21:15 | 只看该作者
ZHEGE 真不错 很好好好

使用特权

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

本版积分规则

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

11

主题

22

帖子

0

粉丝