基于AVR USB接口的温度测量系统下位机设计

发布者:山宝宝最新更新时间:2012-01-19 关键字:温度测量系统  下位机 手机看文章 扫描二维码
随时随地手机看文章
0引言

  近年来,随着集成电路以及芯片制造技术的不断发展,不同的USB通信芯片不断涌现,目前典型的USB通信芯片有CH375、PDIUSBD12等,这些器件的特点是功能较为强大,但价格较高,很难在中低价位的产品开发中使用。而AVR USB技术则是利用高性能的8位RISC架构的AVR单片机的IO口来模拟USB的通信端口,并由软件来实现USB通信协议,以将普通的AVR单片机模拟成一个USB低速设备,从而实现AVR单片机与计算机之间的通信和控制。尽管这种方式只能实现低速传输,但对常用数据量不是十分巨大的系统而言,它已经足够使用了,且其速度远远高于传统的串口传输速度,因而在产品开发中具有广阔的应用前景。本文便是利用AVR USB技术来实现对温度的测量和显示功能。

1 系统下位机软件流程

下位机软件设计及其实现可基于WINAVR编程环境,代码则可利用C语言实现。AVR单片机主要完成两个功能:温度测量和数据传送。温度测量主要是对电压信号进行采样,以确定温度的离散数值。传送数据则是将测量的数据通过AVR所模拟的USB端口传至PC端,以便PC端进行数据的显示和处理。其主要流程如图1所示。



2软件功能的实现

2.1温度数据的采集

对于连续AD数据采集,可采用查询法和中断法,该程序中采用的是中断法,即一次AD转换结束后便产生中断。设计时可利用如下函数对电压数值进行采集:
首先定义全局变量Value,储存所测量到的温度数值,并将该值作为USB端口的发送数值。

2.2 USB数据传输

为了利用ATMEGA8模拟"软USB",应在WINAVR将AVRUSB的文件配置文件夹USBDRV放置在源文件目录下,在该目录下,编程中所需要的文件如表1所列。

该设计只要对usbconfig.h的内容进行配置,便可减小代码量。其主要参数配置如表2所列。

一般情况下,每种USB设备都有一个PID和VID。其中VID是生产商的代号,PID是产品的代号,每个代号都是一个双字节的整数。PID和VID不能随意设置,它是由USB标准协会进行分配的(0x16C0、0x05DC),并在用户配置文件中要遵循低位在前高位在后的原则。

2.3 USB数据传输的接口函数

(1)初始化函数

使用AVRUSB前,通常都要通过调用初始化函数usbInit ()来对USB端口进行初始化,调用该函数之前,考虑到该程序可能由其他程序段跳转而来,因此,初始化之前,一般要将USB端口进行重新复位,复位只需要将D-和D+端口的电平拉低即可,利用如下语句便可实现上述功能:

DDRD=0x14;PORTD=0x00;

通常可在程序其他部分初始化完成后再调用函数usbInit (),最后再调用sei ()函数允许中断。在main.c文件中的实现代码如下:

2)事件处理函数

用户程序的主循环中需要定期调用USB事件处理函数usbPoll ()。USB事件处理函数usbPoll ()在没有USB事件需要处理时将直接返回,否则将调用内部函数来进行相应的事件处理,最后再将数据传递到用户接口函数中。通常的方法是:

一次USB通信的超时时间是50ms。所以,在编程时应注意其他事件不要占用太长的时间,以勉usbPoll ()函数不能及时执行。

(3)事件接口函数

在用户程序中,需要编写USB用户事件接口函数,以完成USB通信。AVRUSB将用户接口简化为以下3个函数:

上述三个函数需要用户进行编程处理,它们将完成USB通信的数据处理。

为了使代码最优化,本系统只使用usbFunctionSetup函数,而屏蔽了usbFunctionWrite和usbFnctionRead函数,方法是在usbconfig.h中设置相应的位为0或1即可(参见表2)。

函数usbFunctionSetup负责传递USB请求,其参数存放在一个8字节的数组中(uchar data [8]),其含义是:

由于该系统功能只需要将测得的温度值传送到PC端,因此,该函数中只需做数据传送即可,而无须作不同指令的辨识,设计时

可使用如下代码来实现上述功能:

2.4编译文件的配置


经过上述过程的配置和编程后,即可实现下位机的数据采样和USB端口的数据传输。

3 结束语

基于AVRUSB技术的温度测量和显示系统由于使用了一体的软USB技术,其硬件电路设计更加小巧稳定。经使用和测试证明:该系统具有性能稳定、价格低廉等特点。重要的是,本系统提供了一种低成本的USB设计方案,同时较详细的提供了下位机的设计流程和部分代码,从而为中低成本的USB设备开发提供了一个较好的思路。


在WINAVR软件环境下,还需要配置MakeFile,以用于编译编程文件:

ATmega8内含一个10位逐次逼近型ADC。该ADC可与一个8通道的模拟多路复用器连接,以对来自端口C的8路单端输入电压进行采样。单端电压输入以0 V(GND)为基准。AD转换的时序图如图2所示。

关键字:温度测量系统  下位机 引用地址:基于AVR USB接口的温度测量系统下位机设计

上一篇:基于CC2430和DS18B20的无线测温系统设计
下一篇:基于嵌入式Linux的磁场测量系统

推荐阅读最新更新时间:2024-03-30 22:23

基于C8051和Atmegal6的无线温度测量系统设计
  目前,温度测量已被广泛应用于钢铁、冶金、工业焊接、波峰焊、回流焊等各个领域。这些应用的待测温度很高,测量环境非常恶劣。传统的有线测温装置,在这种测温环境下,或无法应用,或受到很多限制。这就要求研发无线的测温系统。这种系统要能够耐受恶劣的环境,还要具有高的测量精度和温度采集速度,并能在远距离由上位机接收。   根据上述工业生产的需要,本文研发出了一种无线测温系统。该系统使用K型热电偶作为感温原件,测温范围大,适用于波峰焊、回流焊等高温领域。而且本系统具有独立的温度补偿电路,从而解决了某些集成温度补偿芯片温度采集速度慢的问题,提高了温度测量的灵敏度。由于本系统是无线收发,使用CCl000作为无线通讯芯片,故可以在一定距离由上位机
[测试测量]
基于C8051和Atmegal6的无线<font color='red'>温度</font><font color='red'>测量系统</font>设计
基于51单片的炭黑复合导电材料的电阻一温度测量系统
0 引 言 随着电子工业及信息技术等产业的迅速发展,对于具有导电功能的高分子材料的需求越来越迫切。导电复合材料具有质量轻、无锈蚀、易于加工成各种复杂形状,尺寸稳定性好,电导率在较大范围内可调,易于大批量生产以及价格便宜等特点,因此广泛应用于抗静电、微波吸收、自控温发热材料、电磁波屏蔽等领域。其中,炭黑复合导电材料是目前应用最广,用量最大的一种。在此以AT89S51单片机为核心,设计一种简易的测量炭黑复合导电材料电阻和温度系统,系统框图如图1所示。 单片机通过热电偶放大器芯片采集当前的温度值;通过电压转换电路采集电阻值,送到FM24C02以备查询,LCD显示当前的电阻和温度情况,使用者可以方便地读出电阻和温度的变化,还可以通
[单片机]
基于51单片<font color='red'>机</font>的炭黑复合导电材料的电阻一<font color='red'>温度</font><font color='red'>测量系统</font>
基于单片的高精度温度测量系统设计
0 引言 温度是工业生产过程和实验过程中比较重要的一个参数,精确的温度测量和及时的显示温度是很重要的。目前温度测量系统种类繁多,功能参差不齐。单片机具有体积小,价格便宜,通用性和灵活性强的特点,利用单片机设计温度测量系统,既可以满足功能要求,又经济实惠。数字温度测量传感器DS18B20是单一总线的高精度测量器件,它克服了以前模拟式传感器与微机接口时需要的A/D转换器及其他复杂外围电路的缺点。本文就是运用单片机及其接口和集成单总线温度传感器DS18B20构建一个高精度的温度测量和显示系统,并且通过开关进行温度上限的设置,如果温度超过设定值就会报警或进行相应的控制命令。设计的电路简单,易于实现,而且还具有一定的扩展功能,可以扩展成多
[单片机]
基于单片<font color='red'>机</font>的高精度<font color='red'>温度</font><font color='red'>测量系统</font>设计
基于C8051F020和Atmegal6 的无线温度测量系统设计
O 引言 目前,温度测量已被广泛应用于钢铁、冶金、工业焊接、波峰焊、回流焊等各个领域。这些应用的待测温度很高,测量环境非常恶劣。传统的有线测温装置,在这种测温环境下,或无法应用,或受到很多限制。这就要求研发无线的测温系统。这种系统要能够耐受恶劣的环境,还要具有高的测量精度和温度采集速度,并能在远距离由上位机接收。 根据上述工业生产的需要,本文研发出了一种无线测温系统。该系统使用K型热电偶作为感温原件,测温范围大,适用于波峰焊、回流焊等高温领域。而且本系统具有独立的温度补偿电路,从而解决了某些集成温度补偿芯片温度采集速度慢的问题,提高了温度测量的灵敏度。由于本系统是无线收发,使用CCl000作为无线通讯芯片,故可以在一定
[单片机]
基于C8051F020和Atmegal6 的无线<font color='red'>温度</font><font color='red'>测量系统</font>设计
【dsPIC33E】Bootloader(三)Bootloader下位
前面2节讲述了dsPIC33E的Flash存储结构以及Hex格式,接下来开始讲述如何编写Bootloader下位机和上位机。 本节讲述下位机的设计,考虑到执行效率和烧录时间,我们将主要解析工作放到上位机中,因为PC的执行速度远高于MCU。在上位机中,我们将Hex文件解析成一组一组的地址和数据组合,然后将一个地址和数据打包发送到Bootloader,Bootloader将其写入对应地址内。 我们先将地址空间分割成三段区域: 0x000000-0x0007FF: 第一段为起始跳转、复位和中断向量表 0x000800-0x0071FF: 第二段为Bootloader,此处预留0x6400长度,为了以后扩充,多预留了一点,
[单片机]
【dsPIC33E】Bootloader(三)Bootloader<font color='red'>下位</font><font color='red'>机</font>
基于嵌入式技术的温度测量系统设计
  1. 引言   嵌入式系统是能够运行操作系统的软、硬件综合体,且多数系统的应用软件和操作系统是紧密结合在一起的。选配好RTOS(Real-Time Operating System)开发平台,就能合理的实现多任务调度,系统资源利用。   嵌入式系统较一般单片机系统而言,软件资源利用率较高,开发周期短;系统精度较高;实时性也更好。特别适合于数据处理量较大,有联网、通信等要求的场合。   为了利用嵌入式系统构造一个分布式多点温度测控系统,本文做了一些前期的尝试和开发工作。结合可编程单总线数字式温度传感器DS18B20,用嵌入式系统构造了一个具有温度测量、相关数据处理以及与上位机通信等功能的现场温度测量单元,上位机则主要完成系
[测试测量]
基于嵌入式技术的<font color='red'>温度</font><font color='red'>测量系统</font>设计
温度测量系统对模数转换器的性能要求
1 引言 测量温度的传感器有几种。为具体应用选择适当的温度传感器取决于待测温度范围以及所需的精度。系统精度取决于温度传感器的精度以及对传感器输出进行数字化的模数转换器的性能。在多数情况下,由于传感器信号非常微弱,因此需要高分辨率模数转换器。Σ-Δ模数转换器具有高分辨率,因而非常适合这种系统,而且这种转换器往往包含温度测量系统所需的内置电路,如激励电流源。本应用注释主要介绍可以利用的温度传感器(热电偶、电阻温度检测器(RTD)、热敏电阻器与热敏二极管)以及连接传感器与模数转换器所需的电路,并介绍对模数转换器的性能要求。 热电偶 热电偶由两种不同类型的金属组成。当温度高于零摄氏度时,在两种金属的连接处会产生温差电压,电压大
[测试测量]
基于AT89C51和DS18B20的最简温度测量系统
l引 言 温度的测量和控制在激光器、光纤光栅的使用及其他的工农业生产和科学研究中应用广泛。温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结之类的模拟温度传感器。信号经取样、放大后通过模数转换,再交自单片机处理。被测温度信号从温敏元件到单片机,经过众多器件,易受干扰、不易控制且精度不高。因此,本文介绍一种新型的可编程温度传感器DS18B20,他能代替模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 2温度测量系统硬件 系统结构图如图1所示 。这里通过上拉电阻直
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved