armok 发表于 2009-3-27 07:56:14

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

因为系统自带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版本的实例代码。点击此处下载VC版本的实例代码 ourdev_427277.zip(文件大小:236K) (原文件名:usbhidio_vc6.zip)

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

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


以上中文资料摘自:http://www.getproject.com.cn/post/34.html

cgbabc 发表于 2009-3-27 08:09:43

支持

ljg19831122 发表于 2009-4-25 22:50:05

阿莫大哥:usbhidio_vc6.zip程序有问题怎么不能运行,有错误,是什么原因啊?是不是少了什么头文件?

sxndwg 发表于 2009-9-25 19:07:59

标记一下。研究研究

deiwgah 发表于 2009-9-25 19:32:20

顶个电力出版社

ggtc 发表于 2009-9-25 20:27:58

以前做过一个用 HID 的读卡器,但是传输数据太慢,数据不多(只有 8K),要传一阵,中断端点速度有点慢,就放弃了

gongnn 发表于 2010-10-5 17:56:29

记号

haigerl 发表于 2010-10-5 18:14:04

mark

comway 发表于 2010-11-25 14:54:31

Spunky 发表于 2012-2-2 17:07:42

mark

wangtao560532 发表于 2012-2-18 23:37:17

mark

Yawgmoth 发表于 2013-5-23 18:01:04

时隔几年 终于完成了 4路ad 8个输出开关量 每路采样率只有200左右 有点可怜

华仔 发表于 2015-1-9 10:30:59

超级赞赞赞!
页: [1]
查看完整版本: AVR-HID:HID接口实现传感数据采集