繁体中文
设为首页
加入收藏
当前位置:技术文章首页 >> EDA技术 >> 基于AVR单片机和PDIUSBD12的USB接口设计

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

2008-06-26 00:34:26  作者:  来源:互联网  浏览次数:189  文字大小:【】【】【
简介:USB接口以其数据传输快、连接简单、易于扩展、支 ...
发数据完成标志来满足各种情况下的需要,然后定义一个结构体变量用于存放USB的标准设备请求。

在前台主程序中首先初始化全局变量和其他外围设备,然后在while(1)的死循环中检测状态变量值有无变化,根据不同的状态变量值调用下层的相应函数完成相关操作。在后台的中断服务程序中,根据读取的中断寄存器值一方面将PDIUSBD12接收到的数据移入CPU内存或将内存中的数据写入PDIUSBD12发送端点的缓冲区;另一方面根据具体情况改变状态变量值。

以下给出了前台主程序的程序代码:以下为后台中断服务程序:

当前台主程序检测到状态变量收到SETUP包事件bEvent_flags.bits.setup_packet为1时,该标志位清零,再调用标准设备请求模块stdreq.c的control_handler()函数完成对USB设备的枚举。

设计标准设备请求模块,首先利用结构体定义USB枚举所需的各种描述符,以供不同设备请求使用,其次编写11个标准的设备请求处理函数。本层请求模块重要函数是协议控制子程序control han-dler(),它根据ControlData中标识的不同USB设备请求类型调用11个函数中的任意一个。除此之外,本层请示求模块还实现中断服务程序调用的控制端点接收与发送中断处理函数。上述各函数及ControlData变量间关系如图4所示。

4 系统集成与应用

4.1 PC机驱动程序与应用程序的设计

利用该系统模块实现PC机通讯,需对PC机编写相关驱动程序和应用程序,可利用DriverStudio软件生成该系统模块在Windows环境下的驱动程序。应用程序的设计可使用诸如VB、VC、Delphi以及应用普遍的虚拟仪器软件开发工具LabVIEW等软件开发工具,直接调用驱动程序生成的动态链接库中的API函数,可根据具体任务编写相关应用程序。

4.2 应用于其他系统

利用AVR单片机的多种外设接口特点,例如UART、SPI、I2C接口等可以有效地实现与其他微处理器的通信,将该模块嵌入各种系统,实现与其他器件的通讯。固件程序中预留有UART、SPI、I2C等接口程序,只需通过简单的跳线连接就可选择相应的接口,从而实现应用系统增加USB接口。

4.3 固件程序移植其他平台

由于固件程序最大限度考虑到可移植性,所以将固件程序稍加修改即可应用于各种已拥有C语言编译器的微处理器,实现PDIUSBD12直接与微处理器的通讯。

移植固件程序主要工作有:根据硬件连接关系,修改硬件抽象层中的3个读写函数,实现CPU与器件之间的通信;通过调用PDIUSBD12命令接口层的读取芯片ID函数返回值是否为0x1012,测试CPU与器件之间的通讯是否正常。

5 在数据采集器中的应用

由于ATmega8片内集成有逐次比较型ADC,具有6路的模拟输入通道,所以只需要针对采集的物理量选用相应传感器,并将输出信号调整至0~Vcc的范围内就可利用该模块实现USB数据采集器。AVR单片机集成有ADC自带采样保持电路,具有内部参考电压和基于睡眠模式的噪声抑制器,从而大大提高ADC精度,实现高精度的数据采集。而设计只需

[1] [2] [3]

责任编辑:cjb


相关文章
 

最新文章

更多

· 基于FPGA开发的便携式远...
· FPGA设计的数据无阻塞交...
· 基于ARM的嵌入式系统中从...
· 光电智能探测器SOC的设计
· 基于FPGA设计的多路可控...
· 基于单片机和CAN总线的能...
· 片上系统(SOC)设计流程
· 基于FPGA设计的FFT处理器
· 基于AVR单片机和PDIUSBD...
· 高速AD转换器ADS8364的中...

推荐文章

更多

· 基于FPGA开发的便携式远...
· FPGA设计的数据无阻塞交...
· 基于ARM的嵌入式系统中从...
· 光电智能探测器SOC的设计
· 基于FPGA设计的多路可控...
· 基于单片机和CAN总线的能...
· 片上系统(SOC)设计流程
· 基于FPGA设计的FFT处理器
· 基于AVR单片机和PDIUSBD...
· 高速AD转换器ADS8364的中...
. 基于AVR单片机和PDIUSBD12的USB接口设计

热点文章

更多

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