首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于AVR单片机和PDIUSBD12的USB接口设计

基于AVR单片机和PDIUSBD12的USB接口设计

USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列单片机ATmega8设计一种通用的USB接口模块。该模块可方便为各种嵌入式微处理器增加USB接口,从而实现与USB主机系统的高速通信。

2 系统硬件设计

    该系统模块的控制核心是AVR高速单片机ATmega8。AVR单片机是新一代基于哈佛结构的高速RISC微控制器,具有速度快、价格低、可靠性高,I/O口线驱动能力强和片内集成外设资源丰富等特点,其内部集成有可进行ISP下载编程的Flash,EEPROM、熔丝位和锁定位。AVR单片机的ISP下载电缆制作简单、成本低廉,还有免费的下载软件(例如PonyProg)支持。PDIUSBD12是一款高性价比USB接口器件,完全符合USB1.l规范,易于与各种微处理器接口。

系统模块AVR单片机与PDIUSBD12的电路连接如图1所示。

5.jpg


由图1看出,由于AVR单片机具有高速性,可利用I/O端口线以软件方式模拟PDIUSBD12的时序,对其读写。这种方式可根据不同的微处理器速度灵活控制PDIUSBD12的时序和地址,无需译码电路,从而简化硬件设计,降低成本。

    由于ATmega8片内集成了UART,SPI,I2C等接口,该接口模块可利用这些接口与其他系统通信,使得该接口模块成为通用的接口转换器。其系统硬件结构框图如图2所示。

6.jpg

3 USB固件程序设计

    本系统模块的USB固件程序采用符合ANSI C标准的GCC编译器设计,结合分层次的模块化结构,可移植性强,只需稍微修改硬件接口层即可将其移植到别的硬件平台,可重复利用代码。

    USB固件程序设计是基于状态机和标准的前后台式程序架构。整个同件程序的模块化层次结构如图3所示。首先编写硬件接口层hal.c和PDIUSBD12器件的命令接口层,以供上层模块调用。硬件接口层含有对PDIUSBD12写指令和读写数据的函数,以供上层模块调用。当CPU不同时,只需修改这些函数即可。由于CPU访问PDIUS-BD12与普通存储器一样,只需根据硬件连接关系,在硬件抽象层中编写对PDIUSBD12写指令、写读数据的函数,供上层调用即可。实现PDIUSBD12的命令接口层需调用硬件抽象层函数,供上层模块调用。再设计前后台程序及标准设备请求程序模块。

7.jpg

先利用C语言的共用体与位域定义一个全局状态变量如下所示: 8.jpg

9.jpg


用户可根据需要增加相应的状态标志位,如UART,SPI,I2C等接口

主推ATME,ST-ERICSSON 品牌全系列晶片。有需要的联系我0755-83013511QQ1771322832
广西军区医院静脉曲张治疗中心
联系电话:0771-5359717
网址:http://www.995jmqz.com
专家QQ:2206509964
专家邮箱:2206509964@qq.com
地址:广西南宁市桃源路78号
来院路线:琅东站609路,安吉路32路,北大站10路,金桥站802路,茂桥站86路,五一路219路到桃源路中下;江南站29,607,802路,大沙田站802路到教育桃源路口下(桃源饭店旁、商务厅对面、广西军区门诊部四楼——静脉曲张科)。
返回列表