- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AVRUSB接口的温度测量系统下位机设计
基于AVRUSB接口的温度测量系统下位机设计
第10卷第11期2008年11月避赫参Vo1.1ONo.11
NOV.20o9
基于AVRUSB接口的温度测量
系统下位机设计
剥,福文
(鲁东大学物理与电子工程学院,山东烟台264025)
摘要:给出了利用ATMEGA8并通过USB通信端口与计算机进行连接以实现对温度的监控与
显示的系统下位机设计方案,同~Iff,l用AVRUSB实现了kLUSB.本系统软件代码短小简洁,
功能强大.具有较高的稳定性和性价比.
关键字:AVRUSB;ADC;ATMEGA8;PTIO0;温度测量;下位机
0引言
近年来,随着集成电路以及芯片制造技术的
不断发展,不同的USB通信芯片不断涌现.目前
典型的USB通信芯片有CH375,PDIUSBD12等,
这些器件的特点是功能较为强大,但价格较高,
很难在中低价位的产品开发中使用.而AVRUSB
技术则是利用高性能的8位RISC架构的AVR单片
机的IO口来模拟USB的通信端口,并由软件来实
现USB通信协议.以将普通的AVR单片机模拟成
一
个USB低速设备,从而实现AVR单片机与计算
机之间的通信和控制.尽管这种方式只能实现低
速传输,但对常用数据量不是十分巨大的系统而
言,它已经足够使用了,且其速度远远高于传统
的串口传输速度.因而在产品开发中具有广阔的
应用前景.本文便是利用AVRUSB技术来实现对
温度的测量和显示功能.
1系统下位机软件流程
下位机软件设计及其实现可基于WINAVR编
程环境,代码则可利用C语言实现.AVR单片机
主要完成两个功能:温度测量和数据传送.温度
测量主要是对电压信号进行采样,以确定温度的
离散数值.传送数据则是将测量的数据通过AVR
所模拟的USB端口传至PC端,以便PC端进行数据
收稿日期:2008—07—10
图2下位机程序流程图
的显示和处理.其主要流程如图l所示.
2软件功能的实现
2.1温度数据的采集
ATmega8内含一个l0位逐次逼近型ADC.该
ADC可与一个8通道的模拟多路复用器连接,以
对来自端口C的8路单端输入电压进行采样.单
端电压输入以0VfGND)为基准.AD转换的时
序图如图2所示.
对于连续AD数据采集.可采用查询法和中
断法,该程序中采用的是中断法,即一次AD转
换结束后便产生中断.设计时可利用如下函数对
电压数值进行采集:
首先定义全局变量Value.储存所测量到的
温度数值,并将该值作为USB端口的发送数值.
voidadc—init(void);//对ADC模数转换
有关的寄存器进行配置
{
2008.11电手元器件主硐59
第lO卷第ll期
2008年11月
电子元嚣件主用
ElectronicComponentamp;DeviceApplications
VoI.10No.11
NOV.20o8
OneConversionNextConversion
CycleN一
}I}IsIIsIJ,JsII.IttIt:I13[1JzJs
ADCClock
ADSC
AD
ADCH
ADCL
——一
卜—{I-———一
llI
IIf?f???I},tfffiff}7fff}?f79}fff}fffff?fff?fffIfff}fI}fffM{BofResult
IIl
‘}f}ff?fff}f,I?ff}?}f}?ff}ff?f}ff?ffffIff}}fII7f?fIf}fII}fff{I(M{BofResult
.,\’—sampleamp;Holdc—ionco唧let.~-MUXandREFSUpdate
‘
…以一
Update
图2ADC数据转换时序图
ADCSR=0x00;//ADC停止工作号,每个代号都是一个双字节的整数.PID和VID
ADMUX:Ox00;//选择0号通道不能随意设置,它是由USB标准协会进行分配的
ACSR:Ox80;(0xl6C0,0x05DC),并在用户配置文件中要遵循
ADCSR=0xC9:/,启动ADC低位在前高位在后的原则.
l
‘2.
3USB数据传输的接口函数
SIGNAL(SIG-ADC)//中断采样程序,将转
换结果保存至全局变量Value中
{
Value=ADCL;//要先读低8位
Valuel=(int)ADCHlt;lt;8;//后读高字节
l
通过该AD转换即可得到所对应的温度数值.
2.2USB数据传输
为了利用ATMEGA8模拟”软USB”,应在
WINAVR将AVRUSB的文件配置文件夹USBDRV
放置在源文件目录下,在该目录下,编程中所需
要的文件如表1所列.
裹1文件名称及功能
文件名功能
usbconfig.h用户配置文件
iarcompat.h为兼容IAR编译器而定义的宏
uBbdh.husb驱动
文档评论(0)