基于STM32的温度测量系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ST M32的温度测量系统
Te mper ature Measur ement Syste m Based on the STM32
曹圆圆
(华北电力大学控制科学与工程学院河北保定071003)
[摘要]介绍一种基于STM32处理器的温度测量系统设计方案。
以ST M32F103RB T6微控制器为核心,采用AD590作温度传感器,测量温度用四位数码管显示,能够同PC机进行串口通信。
具有体积小、精度高、处理能力强等特点。
[关键词]温度测量;ST M32;AD590
[中图分类号]TP273[文献标志码]B
温度是日常生活与工农业生产中的一个重要参数,传统的温度计存在反应速度慢、测量精度不高以及读数麻烦等缺点,随着电子技术的发展,各种基于单片机的温度测量系统先后被提出。
温度传感器AD590具有线性度好、性能稳定、灵敏度高、抗干扰能力强等优点;鉴于目前ARM微处理器在国内的广泛应用和广阔的发展前景,本文采用AD590温度传感器,基于一款ARM微处理器ST M32F103RBT6作为系统核心,设计了一种温度测量系统。
它不仅可以通过四位数码管直观显示00.00~99.99e,还可以完成同PC机的通信,并详细介绍了其硬件设计和相关程序编写。
1系统结构
温度测量系统主要有温度测量、温度显示电路、RS232串行通讯等模块。
主控电路由STM32F103RBT6及其外围电路组成,是系统的核心部分,主要完成数据的传输和处理工作。
温度传感器采集的模拟信号,经过处理器本身内嵌的ADC进行A/D转换后得到实时温度数据,再经处理器相关处理后通过温度显示电路进行实时显示,同时,处理器还可以实现与PC机的通信功能。
ST M32系列处理器是意法半导体ST公司生产的一种基于ARM v7架构的32位、支持实时仿真和跟踪的微控制器。
嵌入式处理器不能独立工作,必须给它提供电源、时钟以及复位电路。
这些提供给嵌入式处理器运行所必须的条件电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。
其他如J TAG 调试接口,在芯片实际工作时不是必须的,但本系统是利用JTAG烧写在板FLASH,因此将其加入最小系统。
系统的整体结构框如图1
所示。
图1系统整体结构框图
2硬件设计
2.1ST M32F103RB T6微控制器
ST M32F103RB T6是一款基于CORTEX-M3内核、高性能、低成本、低功耗的微控制器,在软件和引脚封装方面同其他STM32系列处理器是兼容的。
它的时钟频率达到72MH z,能实现高端运算。
内嵌128KB FLAS H程序存储器。
丰富的外设, UART、SPI等串行接口以及最大翻转率18MH z的GPI O。
更重要的是它拥有最快1L s转换速度的双12位精度ADC,此快速采集,高性能的ADC非常适用于数据的快速采集和快速处理上,这也是本系统选择它作为核心控制器的一个重要原因。
如图2所示,STM32F103RBT6采用LQFP64封装,GP I O中PA0(ADC_I N0)引脚接入测温电路输入的电压模拟信号,PA9和PA10引脚为串口输入输出,PA1~PA4作为4个数码管的位选信号控制,PC0~PC7输出信号接到数码管的段选引脚上。
)
16
)
5仪器仪表与分析监测62010年第1期
图2 STM 32F103RBT 6
2.2 温度测量电路
目前,测温器件比较多,如热电偶、热电阻及石英体温度传感器等,该温度测量系统所选用的温度传感器是美国模拟器件公司生产的单片集成两端感温电流
源AD590。
它的测温范围为-55e ~+150e ,足以满足日常生活和生产的应用要求;电源电压可在4~6V 范围变化,可以承受44V 正向和20V 反向电压,因而器件反接也不会被损坏;同时AD590输出标准化,产生的电流与绝对温度成正比,测量温度每增加1e ,输出电流增加1L A,具有非常好的线性输出性能;而且输
出为电流,便于长距离传输,因为是高阻抗电流源,对激励电压也不太敏感。
测温电路工作原理如图3所示,基准电压源AD581输出电压为10V,目的是通过R1、R2为AD590提供稳定电压以保证其输出电流信号稳定。
虽然AD590具有较好的线性度,但在其温度测量范围内仍有一定的非线性;AD590在0e 下输出电流为273.2L A,
用它来测量摄氏温度时需要调零。
图3 温度测量电路
所以为了提高精度,扩大测量范围,在A /D 转换前将信号加以放大并进行零点迁移是必须的,该系统除采用AD581提供精密的基准电压外,还设计有一个双点微调电路,通过两个电位计R2、R4可以分别完成零度和满度的调整。
AD590的输出通过R3、R4将电流信号转化成电压输出,其电压信号将随AD590变化而变化,即运放
第六引脚输出直流电压随温度变化而变化,并成正比。
选择合适大小的R1、R3,调零调满时,首先在0e 下调
整R2使运放输出V 0=0V,然后在100e 下调整R4,
使V 0=3.3V,如此反复多次,直到当温度范围为0~100e 时,运放电压输出范围为0~3.3V 。
2.3 模数转化器
AD590测温电路输出的电压信号为模拟信号,
要进行4位八段数码管显示,首先要将此信号转换成
数字信号。
在此选用A /D 转换器为片内的AD 转换电路。
ST M 32处理器所带的12位ADC 是一种逐次逼
近式模拟数字转化器,ADC 转换速率达1MH z 。
它有18个通道,可测量16个外部和2个内部信号源。
各通道的A /D 转换可以单次、
连续、扫描或不连续模式执行,ADC 的结果可以左对齐或右对齐存储在16位数据寄存器中。
ST M 32F103RB T6的ADC 的基准电压VREF+在芯片内部与电源信号线连接,系统选用一个高精度的
3.3V 外部参照电压,以期解决因VCC 电源电压精度不高带来的ADC 测量不准确的问题。
2.4 温度显示电路
该测温系统的显示部分由四位八段LED 数码管
组成,方便廉价。
电码管的位选由PA1-P A 4口输
出进行控制,考虑ST M 32系列GPI O 的驱动能力,需要使用三极管来推动提供足够大的电流来点亮LED 。
四个共阳极LED 的八段段选信号a-g 、dp 分
别接到PC0-PC7上。
具体硬件连接图如图4
所示。
图4 温度显示电路
2.5 数据接口
通信接口是模块与外界进行交互的通道和桥梁。
因此,通信接口的设计是模块不可缺少的重要部分。
考虑到目前主流的几种通信方式,该测温系统设计了RS-232串行通讯接口以保证其同PC 机通信的需
要。
MAX3232EE AE 为单一正3.3V 供电,可同时完
成发送转换和接收转换双重功能的专用芯片。
其串
口电路连接如图5所示。
)
17)
基于STM 32的温度测量系统 曹圆圆
图5 串口电路原理图
3 软件设计
根据设计任务的要求,系统软件主要完成温度数据的采集和滤波处理、LED 数码管显示以及串口同PC 机的通信。
程序采用STM 32的固件函数库在Re -al V ie w MDK 环境下编写,主要包括以下内容。
3.1 初始化
首先完成GPI O 口初始化配置,将PA0配置为ADC 的第0个采样通道,P A9和PA10引脚为串口的输入输出,配置PA1~PA4为数码管控制信号输出,PC0~PC7作为数码管八段段选输出。
3.2 数据的采集和处理
实际应用中受外界电磁、噪声等干扰,ADC 测出离谱的数据总会出现。
从某种意义上讲,单次ADC
毫无意义。
为了减弱干扰,对ADC 采样值通常要进行滤波处理。
系统采用的软件滤波方法为均值滤波,一个温度值每毫秒采样一次,共16次取平均值。
这样就需要暂时存储一定数量的采样值,配置D MA 通道1用于传输ADC_I N 0转换的结果。
配置ADC1,连续转换模式、右对齐、非外部触发;ADC 转换通道0为规则转换通道,此处参数ADC _Sa m ple T i m e 是转换时间,愈大结果愈准确也稳定。
3.3 数码显示
由于ADC 转换后的数据是二进制数据,而数码
管所要显示的数据是十进制数据,因此需要进行二、十进制数据转换,ADC 输出的最大转换值为0x0FFF (100e ),实际要显示的摄氏温度应为(ADC _Va l u e /0X0FFF *100)e (其中ADC _V alue 为ADC 采样输出),即温度te mperature =ADC _V al u e *100>>12e 。
将四位数码管小数点设置在第二位后,也就是它所能显示的范围为00.00~99.99。
将十进制数te m -perature 依位模10处理得到四位数码管需要显示的数据,建立字型码TAB 表。
数码管的八段段选由PC0~PC7控制,欲显示0~9其中一个数字只要让PC 口输出它对应的字型码。
为节省占用资源、减小耗电量,采用动态显示也就是利用人眼的暂留视觉,循环轮流点亮各数码管的方法。
四位数码管的片选信号是P A1~PA3在控制,通过简单的端口数据寄存器GPI O A _ODR 的移位及
一个延时程序即可实现。
3.4 串口通信
软件中还编写了串口同PC 通信程序,将测量温
度te m perature 每隔一秒通过串口输出到PC 机。
采
用STM 32的固件函数配置串口的波特率115200、数据长度8b it 、1位停止、无校验位,使用串口线连接板上的CO M 0和PC 的串口后即能完成信息通信。
4 结论
本文采用温度传感器AD590测量温度,以ST M 32F103RB T6做主控芯片,并配上相应的显示、串口通信等外部接口电路,设计制作了一款温度测量系
统。
该系统体积小、精度高、功能稳定、使用方便,适用于日常生活、农业生产以及工业制造中的各类温度
测量。
参考文献[1] ST M icr oe lectron ics Corporati o n,STM 32F103XX Datashee t[J],2007,11.
[2] 李宁.基于MDK 的ST M 32处理器应用开发
[M ].北京:北京航空航天大学出版社,2008:304-327.
[3] 刘鹏程.基于ARM 的温度测量系统[J].科技
信息(学术研究),2008(18):77-78.
[4] 雷少刚.基于AD590组成的温度测量电路及应
用[J].西安航空技术高等专科学校学报,2007,25(3):21-22.
[5] 罗廷坤.基于嵌入式操作系统的智能生物杂交仪的设计[D ].华北电力大学硕士学位论文.2004.12.)
18)
5仪器仪表与分析监测62010年第1期。