- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于PC串口通信和单片机的测温系统设计
温度是工业控制中主要的被控参数之一,在日常生活及工农业生产中经常要用到温度的检测及控制,因此研究温度的测量方法和装置具有重要的意义。传统方法多以热电阻和热电偶等为温度传感元件,而这种模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构比较复杂、抗干扰性差、布线麻烦以及成本高等缺点。
针对上述问题,该设计提出了基于Dallas半导体公司的数字式温度传感器DS18B20[1-2]和ATMEL公司AT89S52单片机构成的温度测量系统,并可通过串口连接在PC系统上进行实时显示,该系统安装简易,可靠性高,适用于恶劣环境的现场温度测量。
1系统构成
测温系统由微控制器、温度采集、串口通信、LCD显示和上位机显示等几部分组成,如图1所示。
图1系统组成
数据采集流程为:单片机AT89S52获取温度传感器DS18B20采集的温度值,经处理后传输给LCD1602现实,并且通过串口通信上传给上位机,供上位机显示。
1.1DS18B20数字式温度传感器
DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程读取9~12位数字温度值。DS18B20的性能特点如下:
①适应电压范围更宽(3.0~5.5V),在寄生电源方式下可由数据线供电;
②独特的单线接口方式。与微处理器连接时仅需要一条线即可实现双向通讯;
③DS18B20支持多点组网功能;
④DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在一只形如三极管的集成电路内;
⑤温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;
⑥可编程的分辨率为9~12位,对应的分辨率分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;
⑦转换时间为93.75ms(9位)和750ms(12位),对于一般的实时测温系统已经足够了;
⑧测量结果直接输出数字温度信号,以丹总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;
⑨负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
1.2RS_232串口通信标准
RS_232C是美国电子工业协会(EIA)制定的异步串行通信中应用最广的标准总线。该标准适用于数据传输速率在0~20Kbps范围内的通信,已成为数据终端设备DTE与计算机和数据通信设备DCE的接口标准,是PC机与通信工业中应用最广泛的一种串行接口。其工作电平规定如下:对于数据(逻辑“1”的电平低于-3V;逻辑“0”的电平高于+3V)。对于控制信号(“信号有效”的电平高于+3V,“信号无效”的电平低于-3V)。在实际工作中应保证电平在±(3~15)V。其串行口的9根针脚功能有其固定的定义。该设计中,只要用RXD和TXD两条数据线即可。
1.3AT89S52
AT89S52是一款低功耗、高性能CMOS工艺8位微控制器,携有8K在系统可编程Flash存储器。与80C51产品指令和引脚完全兼容。使其能为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52还含有:256字节RAM、32位I/O口线、看门狗定时器、2个数据指针、三个16位定时器/计数器、一个6向量2级中断结构、全双工串行口、片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1.4LCD1602显示模块
液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示期间,LCD1602液晶显示模块可以显示两行,每行16个字符,其字符发生器ROM中自带数字和英文字母及一些特殊符号的字符库,没有汉字。利用LCD1602可以建立8个6×8点阵自定义字库的特点。它采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
LCD1602的驱动方式有并口驱动和串口驱动两种,并口驱动须占用单片机大量宝贵的I/O接口;而串口驱动须在单片机的UART接口空闲的基础上。其主要功能如下:40通道点阵LCD驱动、可选择当作行驱动或列驱动、输入/输出信号:输出能产生20×2个LCD驱动波形;输入接受控制器送出的串行数据和控制信号,偏压(V1∽V6)、通过单片机控制将所测的频率信号读数显示出来。
2硬件系统设计
2.1温度采集电路
在设计电路时,要想使DS18B20能够进行精确的温度转换,I/0线必须在转换期间保证供电。由于DS18B20的工作电流达到了1mA,所以仅靠5K上拉电阻提供电源是不行的,当几只DS18B20挂在同一根I/0线上并同时想进行温度转换时,这个问题变得更加尖锐。考虑到本系统只进行单点测量,故采用从VDD引脚接入一个外部电源的方法。
2.2主控电路及复位电路
AT89S52具有多种封装形式,该系统为便于焊接,采用PDIP封装形式。AT89S52单片机内资源丰富,为解决该系统的设计提供了多种多样的方案设计,该系统占用AT89S52I/0端口P1、P2、P3的部分资源。
2.3电平转换电路
RS_232是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同,因此,为了能够同计算机接口或终端的TTL器件连接,必须在RS_232与TTL电路之间进行电平和逻辑关系的变换,实现这种变换的方法可用分立元件,也可以用集成电路芯片。考虑到数据的双向传递性,该系统采用MAX232芯片,可以完成TTL到RS_232双向电平转换。
2.4显示电路
LCD1602是常见的液晶显示器,其特点是读写简易,显示精度高,与用动态数码管显示相比其占用资源较少,且显示数据稳定,抗干扰能力强。
2.5硬件构成总电路图
系统整体硬件电路包括温度采集电路、主控制器电路、电平转换电路和显示电路这四部分,电路如图2所示。
3软件系统设计
3.1下位机软件设计
下位机程序设计包含三部分:微控制器的初始化、对DS18B20的访问和对LCD1620的读写。AT89S52是该系统的核心部分,控制着温度的转换以及读取温度数值并转化成十进制数以及相应的ASCII值在1602上进行显示,通过RS232供PC机读取温度值。其主要工作流程为:初始化内部部件以达到环境运行要求、初始化DS18B20以及LCD1602;读取温度值并将采集到的数据进行相应的转化传送到1602上进行显示;当遇到中断时,进入中断服务函数,检查上位机是否向其请求发送数据。一旦检测到正确的请求即将读取的温度数值按照一定的格式放到缓冲器中,直到数据发送结束,返回中断点继续执行原函数。流程图如图3(a)所示。
3.2上位机软件设计
为方便进行远程控制可将采集到的温度数据通过RS_232口传输到控制中心的电脑上,以便实时监测。采用VB6.0[4]作为开发平台,可高效快速地完成软件的开发设计。
采用ViusalBasic开发串口通信程序主要有两种方法:①使用MSComm串口控件;②调用WindowAPI函数。
使用MSComm串口控件实现通信的方法比调用API动态链接库函数的方法方便、快捷、而且用编写代码量少的有点,可以大大地提高编程效率和系统设计的稳定性。该部分软件完成窗体的设计,设置Timer的间隔为300ms,完成MSComm控件的添加,设置其相应的属性,对所得的数据进行分析计算并在窗口中显示。流程图如图3(b)所示。
4结语
这里项目根据实际需要完成了测温系统的设计和实现。
包括:整体架构设计、下位机底层硬件和软件的具体实现、PC串口上位机软件设计,较好地达到了预期目的。系统实物图如图4所示,前后台温度显示如图5(a)、图5(b)所示。
系统充分利用了DS18B20微型化、低功耗、高性能、抗干扰能力强等优点,将温度数据通过串口传输到上位机进行统一管理,有利于温度数据的保存和查询,节省了人力成本。
该系统可应用于较多的测温场合。更高级的基于嵌入式系统和无线传感网络的测温系统目前也是人们研究的热点。下一步的工作将展开基于反馈控制的温控系统设计。