打印
[应用相关]

学习CAN和USB,想实现两个之间的转换,USB是否应该工作在HID

[复制链接]
3298|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CGHA|  楼主 | 2007-1-19 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ijk| | 2007-1-19 17:31 | 只看该作者

USB可以工作在HID,但不是必须的

使用特权

评论回复
板凳
cgha| | 2007-1-23 21:36 | 只看该作者

那是否意味着我在接口描述符中不须分配接口类和接口子类

使用特权

评论回复
地板
ijk| | 2007-1-24 09:39 | 只看该作者

接口描述符中需要指定它属于哪个类

如果使用HID,那就指定为HID类。

当然也可以设置为自定义类,那么类的值是0xFF,子类的值也是0xFF;但不推荐使用这种方式,因为使用自定义类,就必须自己给它写PC端驱动程序-而这不是件容易的事。

使用特权

评论回复
5
CGHA|  楼主 | 2007-1-24 14:58 | 只看该作者

谢谢!,我也是这么想。

但是看了一下,好像没一个现成接口类符合的,CDC类常用于电力MODEM及串口驱动上,HID我怕速度跟不上,其他几种我看也不符合。写驱动的确是件头疼的事情,不知道用WINDRIVER这种工具生成的改一下能不能用。再仔细研究一下CDC类,看看能否符合要求。
楼上解答很详细易懂。

使用特权

评论回复
6
ijk| | 2007-1-24 15:53 | 只看该作者

CDC类比HID更好些

 单纯从性能上考虑,CDC类比HID更好些,因为CDC包含了bulk传输,当数据传输率高时当然更加合适;当然写固件代码难度也更大。

 用HID类速度也基本上够,64bytes/ms对应于64kBps,即512kbps。而CAN最快达到1Mbps,有效速率当然更低些,所以如果不是真正做产品,CAN的速率可以只做到500kbps,那么用HID也够了。另外,还可以考虑用更长的HID report...

使用特权

评论回复
7
ijk| | 2007-1-25 09:50 | 只看该作者

CDC类可以参考ST的例程

CDC类现在ST已经发布了例程,下载地址如下:
http://www.stmcu.com/familiesdocs-86.html#Firmware

STR7/STR9 USB developer kit software 包括了多个USB例程,有
■ Joystick mouse demo: Interrupt transfer
■ Mass storage demo: Bulk transfer
■ Virtual COM port: Bulk transfer
■ USB voice demo (speaker and microphone): Isochronous transfer
并且附带有详细的文档

使用特权

评论回复
8
cgha| | 2007-1-27 08:38 | 只看该作者

多谢,我仔细看看

使用特权

评论回复
9
CGHA|  楼主 | 2007-1-27 15:40 | 只看该作者

试了一下CDC例子,在XP下不能被识别

usb下有未知随后设备,INF已经拷到windowsinf下了

使用特权

评论回复
10
gyt| | 2007-1-28 23:02 | 只看该作者

谢谢

有时候会用到。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

561

主题

719

帖子

0

粉丝