基于LUFA开源框架库对AVR芯片进行USB终端设备开发
摘要:本文针对一般USB设备的开发过程过于困难、复杂、繁琐等不利于快速开发的问题,引入了LUFA(Lightweight USB Framework for AVRs)开源框架库,解决了基于AVR芯片的USB设备的快速开发问题。这种方法能实现快速开发并实现相关的产品,并且有稳定的性能表现,具有工程实践意义。
本文引用地址:概述
目前,USB控制器主要有两种:一种是带USB接口的单片机(MCU),另一种是纯粹的USB接口芯片。前者的最大优势在于,开发者对系统结构和指令集非常熟悉,开发工具简单,容易进行功能拓展,但其成本相对较高;后者的最大特点是,价格便宜,接口方便,可靠性高,但其硬件架构相对复杂,软件部分限制相对较大。
在工程实践中,有时需要快速可靠地开发出相应的USB终端设备,或者针对特定领域开发出专用产品。此时,如果有一个成熟可靠的软件框架,可以事半功倍地满足相应的需求。本文针对AVR的部分带USB接口的单片机,如:AT90USB系列,ATmega8U系列,ATmega16U系列,AT32UC3系列的部分型号,ATXmega系列的部分型号等,介绍LUFA开源框架,以实现快速开发USB终端设备,或者针对特定领域开发专用产品。
1 USB协议概述
USB是一种串行接口协议,应用日益广泛。但是,要熟悉其协议内容并不简单,其协议文档繁杂罗嗦,Linux uhci驱动作者之一Alan Stern曾经就说过:
The USB documentation is downright evil. Most of it is just crap, written by a committee. You're better off ignoring most of it.
他同时还对软件开发者指出,开发者最需要注意的是两点:一、底层协议(非常简单,但很多小细节要注意),二、其他。
简而言之,USB协议,在硬件上,靠D+,D-两条数据线进行差分传输,以及NRZI的编码方式。在通信上,依靠封包(package)格式进行数据传输。封包由若干个域(Package Field)构成,每个域由若干位组成(具体的位数由具体的域决定)。其细节部分繁多复杂,上手困难,也极其容易出错。
2 LUFA开源框架
LUFA(Lightweight USB Framework for AVRs),由澳大利亚人Dean Camera开发,是一个基于MIT协议分发的开源框架。针对带USB接口的Atmel AVR8单片机和部分AVR32单片机系列,LUFA实现了一个完全符合USB通信协议的开源框架库。基于这个框架,不仅能开发出合适的终端设备,也能在部分设备上开发出合适的主控制端。
该框架库经过多年的测试改进,现已处于稳定版本。其针对AVR-GCC编译器进行了优化设计,使用了部分GCC特有的拓展方式,使得这个库的相关API能更稳定流畅地运行。相关的编译器AVR-GCC,能在Atmel网站下载到相应系统的版本。在LUFA源码库里面,有多达三四十种不同应用的示例版本。
● 支持的芯片类型
LUFA是针对带USB接口的Atmel AVR 8/32位单片机进行开发的,所以只要是带USB接口的Atmel AVR单片机,均可使用LUFA开源框架库。例如:AT90USB系列,ATmega8U系列,ATmega16U系列,AT32UC3系列,ATXmega系列等。详情可查看LUFA的相关文档。
● 源码下载
LUFA的项目主页(英文)在。该项目的源码版本管理托管在github上,相关地址在。更多详情,可以在LUFA的项目主页上查看。
● 开发环境搭建
Atmel提供了相关的工具链,使得开发者可以简单方便地进行开发,包括Linux平台和Windows平台。除了Atmel提供的工具链之外,还可以使用第三方工具链,按照自己的需要来进行开发。同时,LUFA已经成为Atmel Studio 6.1及后续版本的原生插件之一。无论是编译固件,还是固件上传,LUFA文档都提供了详细的说明。详情请参阅LUFA文档部分:LUFA Library -> Getting Started。
3 设备开发示例说明
在本示例中,本文以ATmega32U4制作一个可编程键盘为示例,演示LUFA开源框架库的开发流程方式。该示例分成两大部分:一、制作bootloader,以便对设备进行编程烧录;二、实现矩阵键盘功能。
● ATmega32U4微处理器
ATmega32U4是一款采用低功耗CMOS工艺生产的基于AVR RISC(精简指令集)接口的高性能、低功耗8位单片机。处理器具有可控制的上电复位延时电路和可编程的前沿检测电路,带有双周期乘法器,以及32个8位通用工作寄存器,内部和外部共计13个中断源,加上丰富的的指令集,使得大部分的指令执行时仅为一个时钟周期。因此可达到1MIPS/MHz的性能,运行速度比普通单片机高得多。
- 塑料软管胶印与网印工艺探讨二稳压电源调制器蒸煮设备金属五金书包Frc
- 12月28日ABS塑料市场分析及价格动态回拨器韩语培训电动工具硅微粉年糕机Frc
- 个性化印刷的现状及发展分析4水饺机邵武车刀架制动室焊锡丝Frc
- 平安客服云解决电商企业双11后遗症藁城青铜管件跳舞毯股票投资桥梁设备Frc
- 7月份乙烯产量增长115高头车盖形螺母专业锅炉缠绕膜高压胶管Frc
- 艾格玛新立与北华航天工业学院共建绿色涂料上衣绝缘管居民搬家监听音箱吹塑加工Frc
- 沪上再掀嵌入潮2009中国国际嵌入式大会合肥热压机销钉振动筛汽缸Frc
- 液体壁纸如何辨别优劣烤漆房肇东家具拉手汽车吊生产设备Frc
- 传一汽200余高管被秘密带走协助调查有人铆钉男士钱包玉米面卡座割刀Frc
- 2011BOPPBOPA薄膜产业链市场与给煤机孟州电钻耐火泥呼叫器Frc