APP下载

远程温度检测系统的设计

2014-01-14

武夷学院学报 2014年2期
关键词:PC机串口通讯

(闽南理工学院 电子与电气工程系,福建 石狮 362700)

引言

远程温度检测系统在日常的工业生产中应用广泛。由于RS-485总线采用平衡发送和差分接收,因此具有抑制共模干扰的能力[1],适用于远程的数据通信系统。在20Kbps的传输速率以下,RS-485总线最大的传输距离可达到1219米[2,3]。RS-485总线只需要一对双绞线就可以构成多点采集系统[4],具有布线简单,成本低廉等优点,因此,本文采用RS-485总线进行远程通讯,将检测到的温度通过RS-485总线传输至主机,进行温度的显示。

1 系统总体设计方案

该远程温度检测系统主要由前端温度检测模块、RS-485收发模块和主机接收通讯模块三大部分组成,系统的总体框图如图1所示。该系统主要实现的功能是将前端检测到的温度通过RS-485总线进行远距离的发送,由另一单片机接收后,再通过串口传输至PC机进行温度的显示。

图1 远程温度检测系统总体框图Fig1 Block diagram of the remote temperature detecting system

2 前端温度检测模块设计

前端温度检测模块负责温度的检测,主要由温度检测模块、液晶显示模块、单片机控制模块等部分组成。温度检测模块采用单总线温度传感器DS18B20将检测到的温度发送至AT89C51单片机,并在液晶LCD1602上显示检测到的温度,其总体硬件电路原理图如图2(a)所示。

图2 远程温度检测系统硬件电路图(a)前端温度检测模块 (b)RS-485 收发模块(c)主机接收通讯模块Fig2 Schematic of the remote temperature detecting system(a)Front-end temperature detecting module(b)RS-485 transceiver module(c)PCreceiving communication module

2.1 温度检测模块

温度检测模块采用DS18B20作为温度传感器。DS18B20采用“1-wire总线”的接口,其温度检测的范围为-55℃~+125℃,精度可达 0.0625℃,最大的转换时间为200ms[5]。本系统中将DS18B20的数据接口DQ接到51单片机的P3.7,并给I/O线提供一个上拉电阻。

2.2 液晶显示模块

液晶显示模块采用LCD1602,显示DS18B20检测到的温度,为了充分发挥DS18B20的精度,显示四位小数。

2.3 单片机控制模块

单片机控制模块负责将DS18B20检测到的温度在LCD1602上进行显示,并且将数据发送至RS-485总线。

由于单片机在读取DS18B20的温度数据时,每次读取两个字节,先读低8位,再读高8位,每一位代表不同的温度加权值。因此需要由单片机控制模块进行数据处理,得到温度的实际数值后,再分别将百位、十位、个位、小数点后四位的数值分离出来,在LCD1602上进行显示。

前端温度检测模块的软件流程图如图3所示。系统上电复位后,对串口进行初始化,设置其工作方式以及波特率,然后对DS18B20进行读写操作,将读取到的数值转换为对应的温度值,通过串口发送至RS-485总线。

图3 前端温度检测程序流程图Fig3 Program flow of front-end temperature detection

3 RS-485收发模块

常见的RS-485总线驱动芯片有TI公司的SN系列,美信公司的MAX系列,为了该温度检测系统具有更好的可扩展性,本设计选择MAX487作为RS-485收发器。MAX487可驱动128个节点,其电路图如图2(b)所示。MAX487的发送和接收功能转换是由芯片的端控制的:当时,MAX487处于发送状态;当时,MAX487处于接收状态。

在本系统中,由前端温度检测模块采集并处理后的温度数据经过一片MAX487驱动后发送到485总线,经远程传输后,由另一片MAX487接收,传输给与上位机进行通讯的单片机。

4 主机接收通讯模块

4.1 温度数据模块

经过处理的温度数据由RS-485总线远程传输后,采用另外一片AT89C51进行温度数据的接收。单片机将接收到的温度数据通过串口传送到上位机(PC机)。在单片机与PC机之间需要接入一个MAX232,以实现TTL-RS232的电平转换。温度数据接收模块的电路图如图2(c)所示,串口的波特率设置为9600,程序流程图如图4所示。

图4 接收温度模块程序流程图Fig4 Program flow of temperature receiving module

4.2 PC串口通讯模块

在PC机上,采用Visual C++6.0平台,结合ActiveX通信控件 (Microsoft Communications Control,version 6.0)实现串口通讯。

人机交互界面的设计如图5所示,设置了五个功能按键:打开串口,开始接收,停止接收,清除内容,关闭串口;界面右边的编辑框显示了接收温度的时间以及当前的实时温度。点击“打开串口”按钮后,再点击“开始接收”,前端实时检测到的温度数据就可以在PC机上进行显示(如图5所示),以实现远程温度检测。

图5 PC机接收到的温度数据Fig5 The temperature data of PCreceived

5 结束语

本系统以温度传感器DS18B20测量温度,采用51单片机作为控制单元,将所测得的温度数据通过RS485收发器,经过RS485总线传输;同时,在PC机上编写VC++面向对象程序,实现与单片机的串口通讯,最终实现温度在PC机上显示。

在设计的过程中,由于工业控制环境的复杂性,必然存在噪声,因此数据可能会产生错误,可以进一步在保证系统效率的前提下,设计滤波算法,保证数据的正确。

[1] 何青,胡汉春,代刚,张邦力.基于RS-485总线的PC机与单片机串行通讯仿真系统的设计 [J].机电产品开发与创新,2011,24(1):147-148.

[2] 秦贞臻,于斌.简述RS-485的优点与应用[J].品牌与标准化,2011(4):26.

[3] 李良.影响RS-485总线可靠性的因素 [J].内江科技,2011(1):53,74.

[4] 瓮嘉民,任鹏飞.基于Proteus的RS-485总线系统仿真设计[J].河南科学,2012,30(2):227-230.

[5] 赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2003:307-308.

猜你喜欢

PC机串口通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
浅谈AB PLC串口跟RFID传感器的通讯应用
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
通讯简史
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索