您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页iData基于STM32的温度测量系统曹圆圆

iData基于STM32的温度测量系统曹圆圆

来源:意榕旅游网
󰀁󰀂仪器仪表与分析监测󰀁2010年第1期

基于STM32的温度测量系统

TemperatureMeasurementSystemBasedontheSTM32

曹圆圆

(华北电力大学控制科学与工程学院󰀁河北保定󰀁071003)

󰀁󰀁[摘要]󰀁介绍一种基于STM32处理器的温度测量系统设计方案。以STM32F103RBT6微控制器为核心,采用AD590作温度传感器,测量温度用四位数码管显示,能够同PC机进行串口通信。具有体积小、精度高、处理能力强等特点。

[关键词]󰀁温度测量;STM32;AD590

[中图分类号]󰀁TP273󰀁󰀁󰀁󰀁[文献标志码]󰀁B

温度是日常生活与工农业生产中的一个重要参是利用JTAG烧写在板FLASH,因此将其加入最小系数,传统的温度计存在反应速度慢、测量精度不高以统。系统的整体结构框如图1所示。及读数麻烦等缺点,随着电子技术的发展,各种基于单片机的温度测量系统先后被提出。温度传感器AD590具有线性度好、性能稳定、灵敏度高、抗干扰能力强等优点;鉴于目前ARM微处理器在国内的广泛应用和广阔的发展前景,本文采用AD590温度传感器,基于一款ARM微处理器STM32F103RBT6作为系统核心,设计了一种温度测量系统。它不仅可以通过四位数码管直观显示00.00~99.99󰀁,还可以完成同PC机的通信,并详细介绍了其硬件设计和相关程序编写。

图1󰀁系统整体结构框图

2󰀁硬件设计

2.1󰀁STM32F103RBT6微控制器

STM32F103RBT6是一款基于CORTEX-M3内

核、高性能、低成本、低功耗的微控制器,在软件和引脚封装方面同其他STM32系列处理器是兼容的。

它的时钟频率达到72MHz,能实现高端运算。内嵌128KBFLASH程序存储器。丰富的外设,UART、SPI等串行接口以及最大翻转率18MHz的

1󰀁系统结构

温度测量系统主要有温度测量、温度显示电路、RS232串行通讯等模块。主控电路由STM32F103RBT6

及其外围电路组成,是系统的核心部分,主要完成数据的传输和处理工作。温度传感器采集的模拟信号,经过处理器本身内嵌的ADC进行A/D转换后得到实时

GPIO。更重要的是它拥有最快1󰀁s转换速度的双12

温度数据,再经处理器相关处理后通过温度显示电路

位精度ADC,此快速采集,高性能的ADC非常适用于

进行实时显示,同时,处理器还可以实现与PC机的通

数据的快速采集和快速处理上,这也是本系统选择它

信功能。

作为核心控制器的一个重要原因。

STM32系列处理器是意法半导体ST公司生产

如图2所示,STM32F103RBT6采用LQFP64

的一种基于ARMv7架构的32位、支持实时仿真和跟

封装,GPIO中PA0(ADC_IN0)引脚接入测温电路

踪的微控制器。嵌入式处理器不能独立工作,必须给

输入的电压模拟信号,PA9和PA10引脚为串口输

它提供电源、时钟以及复位电路。这些提供给嵌入式

入输出,PA1~PA4作为4个数码管的位选信号控

处理器运行所必须的条件电路与嵌入式处理器共同

制,PC0~PC7输出信号接到数码管的段选引脚

构成了这个嵌入式处理器的最小系统。其他如JTAG

上。

调试接口,在芯片实际工作时不是必须的,但本系统󰀁16󰀁基于STM32的温度测量系统󰀁曹圆圆󰀁

使V0=3.3V,如此反复多次,直到当温度范围为0~100󰀁时,运放电压输出范围为0~3.3V。2.3󰀁模数转化器

图2󰀁STM32F103RBT6

AD590测温电路输出的电压信号为模拟信号,

要进行4位八段数码管显示,首先要将此信号转换成

目前,测温器件比较多,如热电偶、热电阻及石英数字信号。在此选用A/D转换器为片内的AD转换体温度传感器等,该温度测量系统所选用的温度传感电路。2.2󰀁温度测量电路

器是美国模拟器件公司生产的单片集成两端感温电流

STM32处理器所带的12位ADC是一种逐次逼

源AD590。它的测温范围为-55󰀁~+150󰀁,足以满近式模拟数字转化器,ADC转换速率达1MHz。它足日常生活和生产的应用要求;电源电压可在4~6V有18个通道,可测量16个外部和2个内部信号源。连续、扫描或不连续模范围变化,可以承受44V正向和20V反向电压,因而各通道的A/D转换可以单次、

器件反接也不会被损坏;同时AD590输出标准化,产式执行,ADC的结果可以左对齐或右对齐存储在16生的电流与绝对温度成正比,测量温度每增加1󰀁,输位数据寄存器中。

STM32F103RBT6的ADC的基准电压VREF+在出电流增加1󰀁A,具有非常好的线性输出性能;而且输

出为电流,便于长距离传输,因为是高阻抗电流源,对芯片内部与电源信号线连接,系统选用一个高精度的

3.3V外部参照电压,以期解决因VCC电源电压精激励电压也不太敏感。

测温电路工作原理如图3所示,基准电压源度不高带来的ADC测量不准确的问题。AD581输出电压为10V,目的是通过R1、R2为AD590提供稳定电压以保证其输出电流信号稳定。

2.4󰀁温度显示电路

该测温系统的显示部分由四位八段LED数码管

虽然AD590具有较好的线性度,但在其温度测量范组成,方便廉价。电码管的位选由PA1-PA4口输

O的驱动能力,需围内仍有一定的非线性;AD590在0󰀁下输出电流为出进行控制,考虑STM32系列GPI273.2󰀁A,用它来测量摄氏温度时需要调零。

要使用三极管来推动提供足够大的电流来点亮LED。四个共阳极LED的八段段选信号a-g、dp分

别接到PC0-PC7上。具体硬件连接图如图4所示。

图3󰀁温度测量电路

所以为了提高精度,扩大测量范围,在A/D转换前将信号加以放大并进行零点迁移是必须的,该系统除采用AD581提供精密的基准电压外,还设计有一个双点微调电路,通过两个电位计R2、R4可以分别完成零度和满度的调整。

AD590的输出通过R3、R4将电流信号转化成电压输出,其电压信号将随AD590变化而变化,即运放

图4󰀁温度显示电路

2.5󰀁数据接口

通信接口是模块与外界进行交互的通道和桥梁。因此,通信接口的设计是模块不可缺少的重要部分。考虑到目前主流的几种通信方式,该测温系统设计了RS-232串行通讯接口以保证其同PC机通信的需

要。MAX3232EEAE为单一正3.3V供电,可同时完

第六引脚输出直流电压随温度变化而变化,并成正比。

成发送转换和接收转换双重功能的专用芯片。其串

选择合适大小的R1、R3,调零调满时,首先在0󰀁下调

口电路连接如图5所示。

整R2使运放输出V0=0V,然后在100󰀁下调整R4,

󰀁17󰀁

󰀁󰀂仪器仪表与分析监测󰀁2010年第1期

perature依位模10处理得到四位数码管需要显示的数据,建立字型码TAB表。数码管的八段段选由PC0~PC7控制,欲显示0~9其中一个数字只要让PC口输出它对应的字型码。

为节省占用资源、减小耗电量,采用动态显示也就是利用人眼的暂留视觉,循环轮流点亮各数码管的方法。四位数码管的片选信号是PA1~PA3在控制,通过简单的端口数据寄存器GPIOA_ODR的移位及

图5󰀁串口电路原理图

一个延时程序即可实现。3.4󰀁串口通信

软件中还编写了串口同PC通信程序,将测量温

3󰀁软件设计

度temperature每隔一秒通过串口输出到PC机。采

根据设计任务的要求,系统软件主要完成温度数用STM32的固件函数配置串口的波特率115200、数据的采集和滤波处理、LED数码管显示以及串口同据长度8bit、1位停止、无校验位,使用串口线连接板PC机的通信。程序采用STM32的固件函数库在Re-上的COM0和PC的串口后即能完成信息通信。alViewMDK环境下编写,主要包括以下内容。3.1󰀁初始化

首先完成GPIO口初始化配置,将PA0配置为ADC的第0个采样通道,PA9和PA10引脚为串口的输入输出,配置PA1~PA4为数码管控制信号输出,PC0~PC7作为数码管八段段选输出。3.2󰀁数据的采集和处理

4󰀁结论

本文采用温度传感器AD590测量温度,以STM32F103RBT6做主控芯片,并配上相应的显示、串口通信等外部接口电路,设计制作了一款温度测量系

统。该系统体积小、精度高、功能稳定、使用方便,适用于日常生活、农业生产以及工业制造中的各类温度

实际应用中受外界电磁、噪声等干扰,ADC测出测量。

离谱的数据总会出现。从某种意义上讲,单次ADC

毫无意义。为了减弱干扰,对ADC采样值通常要进参考文献行滤波处理。

系统采用的软件滤波方法为均值滤波,一个温度值每毫秒采样一次,共16次取平均值。这样就需要暂时存储一定数量的采样值,配置DMA通道1用于传输ADC_IN0转换的结果。配置ADC1,连续转换模式、右对齐、非外部触发;ADC转换通道0为规则转换通道,此处参数ADC_SampleTime是转换时间,愈大结果愈准确也稳定。3.3󰀁数码显示

[1]󰀁STMicroelectronicsCorporation,STM32F103XXDatasheet[J],2007,11.

[2]󰀁李宁.基于MDK的STM32处理器应用开发

[M].北京:北京航空航天大学出版社,2008:304-327.

[3]󰀁刘鹏程.基于ARM的温度测量系统[J].科技

信息(学术研究),2008(18):77-78.

[4]󰀁雷少刚.基于AD590组成的温度测量电路及应

用[J].西安航空技术高等专科学校学报,2007,25(3):21-22.

由于ADC转换后的数据是二进制数据,而数码

管所要显示的数据是十进制数据,因此需要进行二、[5]󰀁罗廷坤.基于嵌入式操作系统的智能生物杂交十进制数据转换,ADC输出的最大转换值为0x0FFF仪的设计[D].华北电力大学硕士学位论文.(100󰀁),实际要显示的摄氏温度应为(ADC_Value/2004.12.0X0FFF*100)󰀁(其中ADC_Value为ADC采样输出),即温度temperature=ADC_Value*100>>12󰀁。

将四位数码管小数点设置在第二位后,也就是它所能显示的范围为00.00~99.99。将十进制数tem-󰀁

18󰀁

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务