阅读:1835回复:7
如何在一个usb芯片上实现两个usb逻辑设备
最近用usbn9603实现完u盘后,老板让看看能不能同时在上面再实现一个一般的usb通信设备。
usb协议中规定一个设备可以有多个配置,每个配置又可以有多个接口,是不是可以通过定义多个配置描述符来实现这个功能。一般要注意配置描述符的哪些字段呢? 请做过的兄弟给些提示和建议。 |
|
沙发#
发布于:2004-05-26 16:13
我做的鼠标和键盘是可以,你说的也应当可以,我是配置成了两个接口
|
|
|
板凳#
发布于:2004-05-26 17:01
鼠标和键盘应该是同一类设备,你的class和subclass是在配置描述符还是在接口描述符中定义的?
能不能把描述符表贴上来看看? |
|
地板#
发布于:2004-05-27 08:39
自顶。
|
|
地下室#
发布于:2004-05-27 11:48
郁闷中,怎么没有人回答。
|
|
5楼#
发布于:2004-05-27 12:44
如果你想实现的两个设备都属于同一个类的,例如Mass Storage类的,那么需要两个LUN,并且在响应Inquiry命令时,给予不同的值,具体的可参考SCSI Spec。至于你要做的什么设备,以及要符合什么的标准,还需要相应的资料,我只知道这些!
|
|
|
6楼#
发布于:2004-05-27 14:24
谢谢,我需要的应该是不属于同一class的设备,所以感觉上应该不行。比如如果想在一个usb device芯片上又实现u盘,又可以实现一个自定义的usb通信设备,并且两个可以同时工作,好像不太可能。
|
|
7楼#
发布于:2004-05-27 16:16
看了一下协议。协议中提到:一个接口包括可交替的设置,这样可以允许端点和/或其特性在设备被配置后发生改变。SetInterface用于选择可交替的设置或回到缺省设置。
这样看来,如果是不同class的设备在接口描述符中就无法交替呀 大伙再理解一下这个可交替的含义,谁知道就说一下吧,谢谢! 谢谢,我需要的应该是不属于同一class的设备,所以感觉上应该不行。比如如果想在一个usb device芯片上又实现u盘,又可以实现一个自定义的usb通信设备,并且两个可以同时工作,好像不太可能。 |
|
|