原创 AVR-HID:HID接口实现传感数据采集

2009-4-10 14:35 2789 4 4 分类: 工业电子

因为系统自带HID驱动,所以省去了上位机驱动开发的环节,对于一些简单的设备,这是一个非常经典的实现方案。本文涉及的内容很多,从下位机HID设备端的开发,一直延伸到上位机应用软件的开发。

先从AVR-HID说起吧,AVR-HID利用usb的HID标准实现跟计算机的usb通讯,实现传感数据采集,可以支持Windows,Mac,Linux等多个操作系统。AVR-HID的核心是ATmega16单片机,提供了8通道10位ADC,实现传感采集。AVR-HID的固件采用标准C编写,跟昨天的恶作剧装备一样,也采用了AVR-USB库。

大多数支持usb的操作系统都缺省安装了HID的驱动程序,所以上位机的驱动开发工作就避免了,可以直接使用系统自带的驱动。

至于上位机应用软件的开发,也就是如何使用HID驱动的问题,可以参考《单片机与嵌入式系统应用》杂志的这篇论文基于HID类的USB人机接口设计,文章采用C8051F120微控制器和PDIUSBD12 USB控制器结合的方式实现HID,读完这篇文章,你可以对HID设备固件和应用软件开发有一个全面地初步认识。

关于HID应用软件的开发,我还找到两个实例代码。

一个是Jan Axelson版本的,Jan Axelson是书籍《USB complete》的作者,《USB complete》的中文版由电力出版社发行,叫做《USB大全》,在其《USB complete》的官方网站上,
收集了大量跟usb开发相关的网络资源,涵盖了市场上常见的各种USB驱动器,包括Microchip系列、EZ-USB系列、Cypress系
列,National
Semiconductor的USBN9603、NXP的PDIUSBD12,同时还提供了大量的不同语言版本的USB应用软件的实例代码,包括
Visual Basic .NET、Visual C#、Visual C++等等。从官网下载VC版本的实例代码

另一个是Alan Macek版本的,Alan使用的单片机是PIC16C745,其固件是采用汇编编写的,我对汇编不感冒,所以没仔细看。Alan的主机端软件是Visual Basic编写的,也有VC版本的,他的一个网友Jim Koornneef将USB的开发包(DDK)封装成了一个C++类(usb.husb.c),用起来非常方便。

至于USB通讯的调试,如果没有一个合适的软件帮忙,将是非常头疼的,借助通讯数据监视软件,可以把调试的难度和工作量减少很多,在这一点上,Bus Hound是最常见和最被推崇的,就不罗嗦了。

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条