标题: 揭秘USB复合设备,哎呦不错哦。 [打印本页]

作者: 51黑电子爱好者    时间: 2016-4-12 16:11
标题: 揭秘USB复合设备,哎呦不错哦。
       USB接口的设备已经随处可见,但是你知道它们的奥妙吗?让我来给你揭秘怎么在有限的USB插口上实现瑞士军刀般种类繁多,功能齐全的设备。让每一USB口都变成三头六臂。

3,2,1,走(薛之谦脸)
大家好

今天我们要说一个USB接口的故事
简介        USB复合设备,顾名思义就是一个具备多种功能的设备,不再是一个设备仅能提供一种用途。我知道电脑的USB插口是非常有限的,尽管可以使用USB Hub来扩展接口数,但是也不是无限多的,对于使用者想节省购买Hub的银票,而对于开发者则希望可以既不占用多接口,又可以实现多功能,来赢得消费者的关注。USB复合设备就是解决这个问题的良好方案。
USB的自我介绍        说到USB复合设备就不得不说说USB的枚举过程,也就是USB插入后主机的一系列动作。当然我们这里是不会用很专业的术语来说明的,相信如果你是开发者,必然已经了如指掌,如果你是使用者,更是不愿看到太多的专业术语的。

        我把USB的枚举比作一个自我介绍,在插入后主机会询问USB设备的属性,而设备则像自我介绍一样告诉主机自己的“名字”,“年龄”,“证件号”,“母语”等等。主机也是根据这些来区分插入的设备的。
复合设备原理        因此,我们可以做个假设是不是修改相应的身份信息(也就是描述符)就可以实现复合设备了呢?答案是肯定的,但是具体要修改那些描述符就需要来分析一下了。

        根据各个描述符记录的信息,可以知道,因为复合设备是只占用一个设备号的,所以它也只会包含一个设备描述符,一个设备通常也只会有一个配置描述符,那么就可以知道真正能改变的描述就只有接口和端点描述符了,但是端点描述符是固定的,真正能改变的就只有端点报告数据的格式了即报告描述符。下面就介绍两种实现复合设备的方法,它们也确实是与接口和端点相关的。

多接口复合设备实现
我们用一张图片来解释

多报告描述符复合设备
        多报告复合设备,就是在上报主机功能信息的时候,添加上信息所属设备的编号即可让主机轻而易举获得区分开不通的报告功能。最后一张实验现象让你明白复合设备。







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1