EDN首页   博客首页

日志档案

发表于 2007-8-31 17:30:12

1

标签: AVR  USB  软件模拟  

对AVR-USB的初步研究(一)

        刚毕业就失业,真是悲哀。不过在家里也不能闲着,找点事做。

     一个玩友让我帮忙做一个玩飞行游戏用的脚跎,电路简单,主要是编程他不行,让我帮忙。反正没什么事,而且自己也是飞行游戏爱好者,所以就答应了。

      自学单片机有一段时间了,但第一次搞USB,下载了不少资料,花了四天时间才初见成效——也真够慢的。本着GNU的精神,所自己的经验写出来,希望对各位有帮助。

   对于使用AVR软件模拟USB,最早的代码可能是Atmel的AVR Application Notes AVR309-Software Universal Serial Bus (USB)文档,文中介绍了使用软件模拟方式构建的USB to RS232电路。由于AVR单片机本身计算能力和USB规范中对时序的限制,AVR单片机软件模拟USB方式仅支持1.5Mb/s的低速工作模式(Low Speed)。而实际上,软件USB的最大传输速率可能远低于此(大概几百Kb/s)。然而,这对于简单的USB应该已经足够了——至少已经比串口的速度快,而在许多方面上可以省略驱动程序的编写。

        AVR309中提供的代码是基于AVR汇编的,使用起来较为困难。Objective Development公司开发了使用C接口的函数库AVR-USB,大大方便了构建软件模拟usb设备的工作。然而,根据Objective Development为AVR-USB的用户提供四种许可证协议(http://www.obdev.at/products/avrusb/license.html):

GNU General Public License Version 2 (GPL):用户可以免费使用avrusb软件,但必须遵循GPL2v协议并将自己设计制作的电路的电路图、固件软件、主机软件都公开。

Hobby License:付费协议(9.90 EUR),但用户可以得到自己独有的VID/PID,而使用此协议,用户只能以非商业形式制造最多5件此协议的设备。

Entry Level License:付费协议(199.00EUR),用户以自己独有的VID/PID,最多生产150件设备

Professional License: 付费协议 (500.00 EUR),用户可以得到两对独有的VID/PID,在100,000件以下时可以任意生产。

 

在avrusb的官方网站上提供了许多使用avr-usb软件构建的项目。其中,PowerSwitch和HID Keys两个项目被官方网站认为是学习使用AVR-USB的入门项目,特别是PowerSwitch是最简单的。不过,使用PowerSwitch软件,还必须编写PC端的相应驱动才可以使用;而HID Keys使用了PC上(Windows)上通用的HID(Human Interface Device)驱动,所以应该说更容易使用一些。

 

待续。。。

系统分类: 单片机   |   用户分类: AVR   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(2379)    回复(4)  

投一票您将和博主都有获奖机会!

最新评论

  • mingyuexin1981

    2007-9-13 7:01:54

  • wormchen

    2007-9-21 11:19:33

    好东西,学习了!

  • hmx

    2007-11-30 19:31:10

    good

  • hmx

    2007-11-30 19:31:41

    2