单片机数字温度计设计指南

摘 要

数字温度计系统是一种快速直观的检测环境温度的设备,用于快速生成生活中对周围环境温度检测的设备,它也是快速提高各个测温效率的必要设备之一。为了满足生活中对数字温度计的这一需求,本文设计了一款精度高、可靠性高、操作简便的数字温度计系统。
本文利用STM32单片机控制DS18B20感温芯片,结合8段数码管、独立按键模块完成数字温度计功能,该系统不仅可以实时直观检测当前环境温度而且提供设置温度上限和下限,在超过温度上限或者降低到温度下限以后,报警灯开始闪烁。
通过对本系统的测试,结果表明本设计很好地实现了数字测温显示功能和超限报警功能。成熟的DS18B20模块增加了系统的稳定性,它不需经过模拟信号与数字信号的转换,只需要三线就可以完成温度的采集,简化了外围电路。高效的32位单片机STM32增加该系统的可扩展性。该系统不仅可以单独应用于生活中测量温度,还可以和其他模块连接起来组成一个全新的、更加高端的系统,例如恒温大棚温控系统,温度检测联动报警系统等。

关键词:数字温度计;温度传感器DS18B20;STM32单片机

1 整体方案设计

1.1 主控芯片类型选择

数字温度计系统可以使用一个主控制器来完成,在各项资料的收集与对比之后总结出本系统可供选择的控制方案有单片机控制和DSP控制,具体方案如下:
方案一:系统可以使用单片机作为主控芯片,单片机是一种虽然小但很完整的芯片,应用在集成电路中,也可以称之为微型计算机系统。它包括RAM、CPU、ROM、中断控制器,定时器和I/O模块,更先进的单片机还包括PWM、SPI、AD、IIC等电路[1]。在工业控制中,单片机已经应用在多个场景,以其强大的系统处理能力和稳定性著称。
方案二:系统能够采用DSP作为主控芯片,DSP即数字信号处理器,是一种研究用数字对信号进行分析,转换,滤波,检测,调制,解调和高速算法的元件。数字处理器的主要功能是完成各模块之间的通信,主要包括上电自举,键盘读取值,音频编码芯片和LCD屏幕初始化,以及通过LCD屏幕指示数字编解码芯片的运行状态。将音频数字信号存储在闪存中。
综上,DSP的运行速度很快,但其控制算法相对复杂。而单片机的系统的控制方法相对简单,且可靠性高、价格较低、功耗低,虽然单片机相比DSP功能比较简单,但是完全满足本设计需求。本设计考虑到后续的功能扩展,应选取高性能、低成本、低功耗的单片机。单片机系统功能强大,调试简便,可以很方便的组成测温系统。采用单片机作为本设计的控制部分,后续可以基于单片机高性能进行功能性扩展,比如一些恒温大棚温控系统中自动送风大型无刷电机精准控制驱动,工业节点温度检测回传系统等等,因此本设计选用单片机作为主控芯片。

1.2 测温电路选择

测温系统即对周围环境的温度进行收集并且传递至单片机,因为环境温度并不是恒定的温度,所以对于测温元件的要求会比较高,本测温电路可供选择的有光敏电阻测温电路和DS18B20测温模块控制方式,具体方案如下:
方案一:可以使用热敏电阻一类的温感效应器件,利用其某个参数会随着温度变化进行变化的特性,如电压或者电流,通过A/D转换后进入单片机处理从而可以得到对应的温度值[2],此方案需要用到A/D转换芯片,需要考虑模拟量在整个系统可靠性以及抗干扰能力,以及单片机运算能力,调试的功能点多,温度误差大等缺点。
方案二:可以使用DS18B20温测芯片,通过单线协议,在规定时序下即可读取温度值,DS18B20为全数字温度转换和输出芯片[3],先进的单总线数据通信。单线协议使外围电路简单只需要一根数据两个电源线即可完成温度的采集。
两种方案都可以读取到当前环境的温度值,但很容易看出方案二的DS18B20温测芯片实现起来更为简单,经过比较,第二种方案测量的温度数值比较稳定,所以选择方案二为测温电路更为合适。

1.3 系统总体方案

数字温度计系统要求实现实时温度的采集显示和监测。按照设计的要求,系统可分为三个部分,即对于温度数据的采集部分、对于温度检测的报警部分、对于数据的显示部分。其中的数据采集是运用单片机通过单线协议读取测温芯片数据,采集数据后通过显示部分对环境进行显示,方便用户读取实时温度,温度检测报警部分通过独立按键设置温度门限值,实时对比环境温度和门限温度,超出门限温度后控制LED闪烁报警。
本设计具体的系统方案如图1.1所示。

图1.1 系统设计方案

2 系统的硬件电路设计

2.1 单片机系统设计

为了保证系统更好更快的运行,应该选择性价比高,可靠性高,低功耗的控制器。由于温度测量需要掉电保护来防止温度测量时出现太大误差,所以需要使用掉电存储数据的时候可以直接使用单片机内部的存储,因此应选择含有2k字节的EEPROM存储的单片机。基于此有以下方案可供选择:
方案一:使用STC89C51单片机作为主控制器。它采用8051内核,它是一个8位通用CPU外加一些闪存单元组成。用户代码可以通过串行通信口下载到芯片中,成本低是它的一个优势。
方案二:使用MSP430混合信号处理器作为它的主控单元,它是一个16位能量消耗超低的精简指令集[5] 的CPU。一般来说,需要使用电池供电的设备仪表使用该系列的单片机。开发难度一般比较大、价格稍微贵些。
方案三:使用STM32F103C8T6单片机作为主控单元,STM32F103是以低功耗、高性能、高稳定性32位的CONTESTM3内核的单片机,满足高稳定系和后续处理复杂控制的可扩展性。
MSP430单片机价格稍微贵些,且属于16位CPU,STC89C51单片机开发难度较低但是满足不了复杂程度高的处理,STM32系列单片机价格低,性能出众满足设计所需,因此本系统使用STM32系列单片机。

2.2 单片机的引脚说明

本设计是以STM32F103C8T6为最小系统作为主控单元,主要引脚说明见表2.1。它将所有的引脚以插针形式全部引出,板载晶振和复位逻辑,采用3.3V供电。该封装在焊接的时候可以采用一个IC插座进行先焊接然后焊接完成后再将芯片插到IC插座上这样做方便更换单片机单元。STM32F103一共具有48只引脚,其中可以用来控制的引脚有32个分别是PA0-15、PB0-15、PC13-15。这些引脚默认都可以当做GPIO来使用,可输入可输出,在这些引脚上同时也提供了第二功能,比如SPI,IIC,AD等等。

图2.1 STM32封装形式

3 系统软件测试

系统软件用Keil5集成开发工具编写,Keil5集成开发工具可以连接JLINK ARM调试工具,通过SWD调试口可以非常方便的进行系统软件在线调试。SWD调试口为串行线调试口,我们常见的JTAG有20pin接口,拥有太多的Pin接口自然会会导致PCB布线会非常麻烦,而支持SWD接口调试,只需要使用4个Pin口:GND、3.3V、SWIO、SWCLK。
程序同样可以通过SWD调试口下载到单片机中。
系统软件调试主要遇到以下问题:
(1)DS18B20双向口实时切换问题。
GPIO可以设置IO方向,在51单片机,如果需要输入则直接给引脚赋值1即可读取引脚数据,对于STM32单片机来说,如果是双向口,就不可以这样处理,最开始DS18B20一直没有发现回应,数据口是双向的,必须要随着逻辑变化GPIO口的方向,通过查找资料,用寄存器赋值方式简化了切换方向的方式,解决了问题。
(2)DS18B20返回信号问题。
在DS18B20测温程序设计过程中,系统向DS18B20发出温度转换的命令之后,程序通常会等待来自DS18B20的返回信号。但是如果DS18B20中有不不恰当的接触或错误的断线,会在读DS18B20时无法接收到返回信号,程序就会陷入死循环,不能继续进行。因此,调试前应该仔细检查硬件的连接。

图4.1 软件调试成功图

4 结 论

本篇论文提出了解决水银温度计等机械温度系统无法准确读取温度的问题,应用本设计用户可以准确的读取到当前的环境温度,对于工业设计来说可以很方便的应用数字温度数据,提高工业检测水平。
本设计是由STM32F103单片机、温度传感器、独立按键以及外围电路组成。温度传感器采用的是DS18B20数字温度传感器,它通过“一线总线”连接到单片机处理单元。单片机每经过100ms读取一次温度信息,同时将温度信息通过LED数码管展现给用户。用户也可以设置温度的最大值和最小值,经由单片机比对后生成报警信号。独立按键部分可以调整温度的最大值和最小值,它有两个独立的按键组成,可组合成多种功能,如:调节最大值,调节最小值,数值增加,数值减少,返回到温度显示等等;
本设计经过原理图绘制,硬件元器件采购、焊接以及软件程序的编码调试,各部分均达到了预期功能:实现了实时采集温度以及显示功能,独立按键实现了温度阈值的调整,实现了温度超出阈值以后报警显示温度功能。该温度系统可靠性高、抗干扰能力强,可以使用户精确的读取到当前的温度。应用本设计还可以扩展多种应用,如实时温度网络推送,恒温大棚温控系统等等。

作者:QQ1928499906

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机数字温度计设计指南

发表回复