您的位置 首页 开关

USB协议深入分析 设备描述符装备包

设备描述符配置包http:blogcsdnnetcaimousearticledetails1558975在USB通讯里,从主控器发出来的第一个配置包就是设备描述符配置包

设备描述符装备包http://blog.csdn.net/caimouse/article/details/1558975

在USB通讯里,从主控器发出来的第一个装备包便是设备描述符装备包,意图只要一个,便是获取刺进的USB特点,以便加载适宜的驱动程序。现在就来具体地剖析一下设备描述符包的界说。
在USB2.0的协议里找到9.3 USB Device Requests里就找到这个结构的界说,这儿我运用C的界说结构如下:
typedefstruct_USB_SETUP_PACKET
{
REQUEST_TYPEbmRequestType;
BYTEbRequest;
WORD_BYTEwValue;
WORD_BYTEwIndex;
WORDwLength;
}USB_SETUP_PACKET;
bmRequestType是包括有下面几方面的内容:
D7 D6 D5 D4 D3 D2 D1 D0
在这一个字节里,又按位分为:
D7位是表明后边传送数据的方向位。
当D7等于0时,表明后边的数据是从主控器发送到USB设备。在PC里,便是从PC机发送到USB的设备。
当D7等于1时,表明后边的数据是从USB设备发送到主控器。在PC里,便是从USB设备发送到USB设备。在前次里,我收到并显示出来的数据是80,就表明从USB设备里发送数据给PC。在这儿再次给出上一次的包数据:
80 06 00 01 00 00 40 00
这儿的80,便是D7位为1。
D6-D5位是恳求主分类型
0 是表明规范的恳求。
1 是表明类别的恳求。
2 是表明厂商的恳求。
3 是保存。
D4-D0位是表求接纳这个包的接口。
0 是表明USB设备接纳。
1 是表明接口接纳。
2 是表明端点接纳。
3 是表明其它接纳,不知道的。
4-31是保存。
bRequest是本描述符的恳求类型,也便是后边发送的数据是什么样的东西。因为USB里有许多装备信息,比方获取设备描述符,又有设置USB地址等等,便是经过这个字节来区别的。
USB协议里查找表9-4,就可看到如下的编码:
GET_STATUS 0
CLEAR_FEATURE 1
Reserved for future use 2
SET_FEATURE 3
Reserved for future use 4
SET_ADDRESS 5
GET_DESCRIPTOR 6
SET_DESCRIPTOR 7
GET_CONFIGURATION 8
SET_CONFIGURATION 9
GET_INTERFACE 10
SET_INTERFACE 11
SYNCH_FRAME 12
在上面的数据包里,看到它的内容是06,那么它便是GET_DESCRIPTOR类型。也便是主控器想读取USB设备的描述符,到这儿就现已剖析出来的意思,便是主控器想读取USB描述符,但还不知道是什么描述符的内容。
wValue是依据不同的恳求而设置不同的值。一般便是传送参数给设备标明这是什么恳求。在上面GET_DESCRIPTOR获取设备描述符里,它的值是00 01。在GET_DESCRIPTOR里这个字段的低字节表明描述符的索引,高字节表明描述符的类型。高字节的类型如下:
DEVICE1
CONFIGURATION2
STRING3
INTERFACE4
ENDPOINT 5
DEVICE_QUALIFIER 6
OTHER_SPEED_CONFIGURATION 7
INTERFACE_POWER1 8
wValue值在这儿的高字节是01,那么它便是设备描述符了。低字节是00,那么它便是表明从偏移地址0开端读取设备描述符。因为在装备描述符里有许多装备,所以低字节在那里就可以用来辨认获取相同类型的描述符不同的装备。
wIndex是依据不同的恳求而设置不同的值。一般用来阐明端点号或许阐明接口标识。在获取描述符里,设置为0,或许是言语ID。在这个发送的描述符里,它是设置为00 00。
wLength是依据恳求来决议下一阶段发送数据的长度。前面恳求第一个字节里,现已阐明下一阶段数据传送的方向,这儿阐明晰传送数据的长度。不管是发送数据,仍是接纳数据,都不要超越这个数据长度,不然主机会出问题,或许设备有问题。在这个获取设备描述里,它的长度是40 00,按小端格局去解说,便是64个字节。
到这儿,就把主控器发下来的数据解说完成了,知道去做什么的工作和回应。下一次就去剖析怎么样回来设备描述符。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/256414.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部