您的位置 首页 元件

USB协议深入分析 设置USB地址

前面已经解释主控器怎么样发送设备描述符下来,然后设备返回相应的设备描述符。下一步主控器的动作是做什么呢?由于在USB总线上的设备有很

前面现已解说主控器怎么样发送设备描述符下来,然后设备回来相应的设备描述符。下一步主控器的动作是做什么呢?因为在USB总线上的设备有许多,为了区别不同的设备通讯,就需要给每个设备分配一个地址,这跟网络中的IP地址是相同的,或许跟MAC地址也是相同的。因而,接着下来便是主控器分配地址给设备,USB的设备地址是从1开端到127。下面便是接纳到主控器发下来的数据包:

00 05 01 00 00 00 00 00
由USB_SETUP_PACKET界说详细地剖析这个数据,就能够知道应做什么样的呼应了。下面就来解说这个操作。
先获得bmRequestType的类型,也便是第一个字节,它是00。从USB协议里检查,它的方向位是主控器发送给设备,由D6D5位就知道它是USB协议里界说的规范恳求,由D4-D0位知道它是USB设备接纳这个包数据。
bRequest是05,从前面现已介绍的类型,就知道它是设置地址,如下:
SET_ADDRESS 5
所以这个包需要按设置地址的格局去解说后边的数据。
因为USB协议能够知道,USB的设备地址放在字段wValue里,因它的值是01 00,按小端格局解说便是0x0001了。其它相应的字段wIndex和wLength应都是0,假如是其它非0的数据,是没有界说的。
USB的串行引擎经过这个地址来判别是否接纳总线上的数据,假如发送的地址跟它共同,就会接纳主控器发过来的数据,当然从这个设备发送出去的数据也带有这个地址,因而就能够让主控器辨认不同的USB设备数据了。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部