请问wince5支持USB组合设备吗?

alien75 2009-11-14 09:16:10
我这有一个USB组合设备,功能是音频(usb audio class)和HID,音频功能包括一个接口实现录音,一个接口实现播放;HID包括一个接口实现键盘,一个接口实现鼠标。音频驱动我已经实现,现在问题是HID这一部分通过调试发现并没有被系统识别,现象是USBHID.dll、KBDHID.dll没有加载。 将这个设备放到PC则一切工作正常,所以想请教做过的人士wince支不支持USB组合设备?好让我确定怀疑是对的。谢谢。

另:一个USB复合设备,实现相同功能。在WINCE下HID驱动能正常工作。
...全文
195 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
alien75 2009-11-17
  • 打赏
  • 举报
回复
TO Veabol: 看来你和我想到一块了,呵呵。这个设备是别的公司开发的,我已经发邮件让他们这样试一试。
alien75 2009-11-17
  • 打赏
  • 举报
回复
TO yashi:谢谢你的回复,我这个组合设备音频驱动是单独写的,HID是标准键盘驱动也已定制。

因为组合设备和复合设备还是有所区别的,这一点在USB20规范中也有说明。因此我比较过相同功能的复合设备,描述符信息基本相同,HID部分也是按标准键盘的描述符构造,在插上后能正常加载KBDHID驱动和USBAUDIO驱动,也就是说能够枚举所有的接口,而我的组合设备只能枚举usb audio接口。这又回到了问题的原点,HCD/USBD可能只是根据InterfaceClass加载了一个驱动,我会看一看代码来确认是否如此。

我看到一篇相关文章提到,驱动的LoadClients注册表项中GROUP3 ID不能为default,否则只会加载一个,原文:USBD always load only APD, and only one times (load for device, not for interface) because it's trying to load most common driver。我试着修改为1_2(usb audio class & subclass),问题依然存在,所以我觉得此文中所说的设备是复合设备。

另一篇文章提到wince42是不支持multiple interface USB device设备的,可以用LoadGenericInterfaceDriver来处理,此方法在wince5下不知道是否改变。有待验证。

我现在搜集的信息都是零散的还没办法串到一起,在处理完成看能不能形成清晰的概念。



博说医械研发 2009-11-17
  • 打赏
  • 举报
回复
不知道如果把HID接口放到前面进行枚举是不是只会识别为HID键盘?

估计会的
yashi 2009-11-17
  • 打赏
  • 举报
回复
支持不支持,主要是看驱动,你的组合设备,OS都是当作一个一个的独立设备来识别的。所以只要有合适的驱动,这个不是问题。
alien75 2009-11-17
  • 打赏
  • 举报
回复
顶一下。
alien75 2009-11-15
  • 打赏
  • 举报
回复
回AMOROUS: 多谢你的回复,不过我觉得你所说的不是主要原因,原因有三
1、此组合设备的HID是按标准HID键盘构造的HID描述符、报告描述符等,在PC下识别是键盘
2、对于HID设备,不管是键盘、鼠标还是其它类型,wince(估计是HOST驱动)发现是HID设备时,都会先调用usbhid.dll中的USBDevcieAttach,在进行parse后再调用相应的驱动,如kbdhid、mouhid或oem的驱动,在我所说的情况下,usbhid都没有加载,说明系统没有识别。
3、在设备插上的时候音频驱动USBDevcieAttach是调用了,不过只枚举了控制接口以及bInterfaceClass为usb audio class的接口,HID的接口并没有传递进来,感觉是直接pass了。因此我怀疑系统不支持组合设备。因为此设备我无法编程改变接口枚举顺序,不知道如果把HID接口放到前面进行枚举是不是只会识别为HID键盘?
AMOROUS 2009-11-15
  • 打赏
  • 举报
回复
ce下的HID驱动需安装具体硬件环境重新编写,lz可以参考一下别人关于HID的研究http://bbs.driverdevelop.com/htm_data/48/0806/111489.html
alien75 2009-11-15
  • 打赏
  • 举报
回复
回楼上:是的
博说医械研发 2009-11-15
  • 打赏
  • 举报
回复
音频驱动是你自己写的HOST端的?WINCE自带的驱动中是没有的吧?
lgy198612 2009-11-14
  • 打赏
  • 举报
回复
我认为wince5支持USB组合设备!!

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧