闲暇就玩USB之: HID I/O

本文回顾了一个基于USB的项目,探讨了如何使用HID(Human Interface Device)协议简化驱动开发,特别是强调了HID Report Descriptor的重要性和作用。通过列举枚举过程,解释了设备如何响应Get HID Report请求,并介绍了用于测试HID设备的VB6和VC6测试程序的修改与使用方法。
摘要由CSDN通过智能技术生成

其实我对USB还是很有感情的,第一个USB是2005年给航天智通的彩票机做一个客户显示系统,就是彩票机上那个给买彩票的人看的小显示器。之前他们用的是串口,后来很多机器串口少了,而且串口一般还要给POS机之类的其他终端使用,因此需要做这么一个模块。不过当时由于初次做USB, 而且还要写Linux和Windows下的驱动,当时觉得还是用自定义的设备,使用Bulk传输比较简单,最后在AN2131(Cypress)上做了这个项目,大概卖了一千多套,后来被人山寨了,前前后后也赚了点钱,也算是为清苦的研究生生活添加了一点精彩。

其实这个项目完全可以使用HID来实现,估计这样驱动的工作还会更简单些,至少不用下载WinDriver和DDK这种庞然大物了。其实很多MSP430和8051F的仿真器就有使用HID协议的,使用这个协议最大的优点就是不用写驱动,用Windows和Linux自带的驱动即可。其实HID的枚举方式和自定义的差别并不是很大,一般都是先Get Device Descriptor,然后是Get Configuration Descriptor,然后可能会发起多个重复的Device Descriptor和Configuration Descriptor,不过长度可能有点差异,总之就是从Descriptor开头取需要的长度返回就OK了。 如果有String的话还会发起Get String Descriptor。对于HID来讲,跟HID Class相关的是会发起Get HID Report的请求,其大概过程如下(........... 表示省略):

  20.0  CTL    80 06 00 02  00 00 ff 00                                                               Get Confi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值