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