usb中设备、配置、接口、端点的理解

[复制链接]
7480|5
 楼主| luocolor 发表于 2007-9-25 16:57 | 显示全部楼层 |阅读模式
最近在看usb的相关东西,标准中有提到设备描述符、配置描述符、接口描述符和端点描述符。它们之间的关系,网上的资料大多数都简单的说成前面的包含有多个后面的,如设备描述符包含多个配置描述符。<br /><br />但是,我的问题是:有一个设备,如支持视频和音频的一个播放器。那么,对于上面提到的4个描述符,对它们设置的时候,它们分别对于哪一个描述符呢?<br /><br />从我现在的理解来看,这样一个设备对应一个设备描述符,支持视频的功能对应一个接口描述符,支持音频功能的对应一个接口描述符。为了支持视频,在下层有多个端口同时工作为提供视频数据传输的支持,所以有多个端点描述符。<br /><br />不知道我理解得对不,但是,配置描述符在这其中干什么用呢?<br /><br />今天中秋,祝大家月饼节快乐!
computer00 发表于 2007-9-25 16:59 | 显示全部楼层

应该是可以配置成其它的功能吧,而不是同时具有两者功能

  
阿南 发表于 2007-9-25 17:36 | 显示全部楼层

呵呵,楼主把事情搞复杂了.

这些描述符都是USB协议的问题(咱们才不管那么多呢),具体解释在一般的USB书上都会有解释.其实你的终端设备接到PC机时,只要能显示您所需要的设备名称型号,不同的设备有不同的型号区分就可以了,这只需修改两个地方,一个是设备上的USB固件程序的设备描述符:<br />//设备描述符<br />&nbsp;USB_DEVICE_DESCRIPTOR&nbsp;DeviceDescr&nbsp;=<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;sizeof(USB_DEVICE_DESCRIPTOR),&nbsp;//设备描述符长度,=&nbsp;12H<br />&nbsp;&nbsp;&nbsp;&nbsp;USB_DEVICE_DESCRIPTOR_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备描述符类型,=&nbsp;01H<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//协议版本,=&nbsp;1.10<br />&nbsp;&nbsp;&nbsp;&nbsp;USB_CLASS_CODE_TEST_CLASS_DEVICE,//测试设备类型,&nbsp;=&nbsp;0DCH<br />&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备子类,设备协议<br />&nbsp;&nbsp;&nbsp;&nbsp;EP0_PACKET_SIZE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//端点0最大数据包大小,=&nbsp;10H<br />&nbsp;&nbsp;&nbsp;&nbsp;0x71,0x04,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PHILIPS公司的设备ID&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;0x66,0x06,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备制造商定的产品ID<br />//&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x65,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备制造商定的产品ID&nbsp;&nbsp;&nbsp;&nbsp;<br />#if&nbsp;ST7000<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x70,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备制造商定的产品ID&nbsp;&nbsp;&nbsp;&nbsp;<br />#else<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x71,<br />#endif<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设备系列号<br />&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//索引<br />&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//可能的配置数<br />};<br /><br />注:我们用宏定义,定义了两个不同型号的设备,该结构你可以从USB书籍上找到设备描述符的结构<br />另外一个是PC机上USB驱动的*.inf文件:<br /><br />......<br />%USBVID_0471&PID_7000.DeviceDesc%=D12TEST.Dev,&nbsp;USBVID_0471&PID_7000<br />%USBVID_0471&PID_7100.DeviceDesc%=D12TEST.Dev,&nbsp;USBVID_0471&PID_7100<br />......<br />USBVID_0471&PID_7000.DeviceDesc=&quot;ST-7000C&quot;<br />USBVID_0471&PID_7100.DeviceDesc=&quot;ST-7100C&quot;<br />.......<br /><br />注:上面的&quot;ST-7000C&quot;和&quot;ST-7100C&quot;就是两个不同的型号的设备
hpy013 发表于 2007-9-25 18:22 | 显示全部楼层

楼上的说的对

我昨天就是自己改的型号的设备。
平常人 发表于 2007-9-25 21:53 | 显示全部楼层

请楼主到“USB技术专区”去看看我的帖子吧

你这样设计是可以的,“支持视频的功能对应一个接口描述符,支持音频功能的对应一个接口描述符”,像这样两个接口的设备在Windows里面会被识别为复合设备。
 楼主| luocolor 发表于 2007-9-26 08:57 | 显示全部楼层

看了平常人的帖子了,基本理解了。多谢

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部