基于AVR单片机通用USB接口模块设计资料.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:469KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于AVR单片机通用USB接口模块设计资料.pdf

基于AVR单片机通用USB接口模块设计资料.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于AVR单片USB机的通接口模块设用计1引言USB接口以其数、连接、易于据传输简单、支持扩展快热插拔PC通信等特点的主要。随着已成为方式之嵌入式外设与一系统的发展,嵌入式USB微处理接口,以便PC器需增等USB主机实现与加通用系统的的通信。PHILIPS公司针对这USB接的样的需求,这里采用口器PDIUSBD12件和Atmel公司AVR系列的ATmega8单片机设计一种通USB接口。该模模块用的块可方便为各US种嵌入式微处理器增加B接口,从而USB主机实现与系统的高速通信。2系统硬件设计该系统模块AVR高速的控制ATmega8单片机。AVR核心是单片机是新RISC一代基微控制器,于哈佛、价具有速结构的度快高速格低、可靠,I/O性高口线驱动能力强和,其内片内集部集成ISP下载成外设Flash有可进编程的,EEPROM、资源丰熔丝行位和锁富等特点定位AVR单片。ISP下载机的电缆制作简单(例如PonyProg)、成本支持PDIUSBD12低廉,。是一款高性USB还有免接口价比费的下载软件器件,完全USB1.l规范符合,易于与各种微处理器接口。系统AVR模块单片PDIUSBD12机与的电路连接1所示。如图由图1看出,由于AVR单片机具有,可利I/O端口用高速性线以软PDIUSBD12的时件方式,对其序。这种模拟读写方式可根据不同的微处PDIUSBD12理器速的时序和地度灵活址,无控制需译码电路,从而简化硬件设计,降低成本。由于ATmega8片内UART集成了,SPI,I2C等接口,该接口模块可利用这些接口与其他系统通信,使得该接口模块成为通用的接口转换器。2其系统所示。硬件结构框图如图3USB固件程序设计本系USB统模块固件程序采的ANSIC标准GCC用符合编译的,结合器设计分层次,可移的模块,只需植性强稍微修化结构改硬件接口层即可将其移植到别的硬件平台,可重复利用代码。USB固件程序设计是基。整个于状态同件程机和标3序的模所示。首先准的前块化层编写硬h后台式次结构件接口程序架如图层构al.c和PDIUSBD12器件的命令接口层,以供PDIUSBD12写指上层模令和读块调用写数据。硬件的函数接口层,以供含有对上层模块调用。当CPU不同,只需时修改这。由于CPU访问些函数PDIUS-BD12与普即可通存储,只需根据硬器一样,在硬件连接件抽象P关系层中编写对DIUSBD12写指令、写读数据的函数,供上层调用即可。实现PDIUSBD12的命令接口层需调用硬件抽象层函数,供上层模块调用。再设计前后台程序及标准设备请求程序模块。先利用C语言的共用体与位域定义一个全局状态变量如下所示:用户可根据需要增加相应的状态标志位,如UART,SPI,I2C等接口收发数据完成标志来满足各种情况下的需要,然后定义一个结构体变量用于存放USB的标准设备请求。在前台主程序中首先初始化全局变量和其他外围设备,然后在while(1)的死循环中检测状态变量值有无变化,根据不同的状态变量值调用下层的相应函数完成相关操作。在后台的中断服务程序中,根据读取的中断寄存器值一方面将PDIUSBD12接收到的数据移入CPU内存或将内存中的数据写入PDIUSBD12发送端点的缓冲区;另一方面根据具体情况改变状态变量值。以下给出了前台主程序的程序代码:以下为后台中断服务程序:当前台主程序检测到状态变量收到SETUP包事件bEvent_flags.bits.setup_packet为1时,该标志位清零,再调用标准设备请求模块stdreq.c的control_handler()函数完成对USB设备的枚举。设计标准设备请求模块,首先利用结构体定义USB枚举所需的各种描述符,以供不同设备请求使用,其次编写11个标准的设备请求处理函数。本层请求模块重要函数是协议控制子程序controlhan-dler(),它根据ControlData中标识的不同USB设备请求类型调用11个函数中的任意一个。除此之外,本层请示求模块还实现中断服务程序调用的控制端点接收与发送中断处理函数。上述各函数及ControlData变量间关系如图4所示。4系统集成与应用4.1PC机驱动程序与应用程序的设计利用该系统模块实现PC机通讯,需对PC机编写相关驱动程序和应用程序,可利用DriverStudio软件生成该系统模块在Windows环境下的驱动程序。应用程序的设计可使用诸如VB、VC、Delphi以及应用普遍的虚拟仪器软件开发工具LabVIEW等软件开发工具,直接调用驱动程序生成的动态链接库中的API函数,可根据具体任务编写相关应用程序。4.2应用于其他系统利用AVR单片