如何基于RS485总线设计温湿度监控系统?
扫描二维码
随时随地手机看文章
1 概述
环境条件中的温湿度指标是很多工作场合中的重要参数,不论是仓库治理、图书保存还是产业丈量与计量检定,都需要符合操纵规定的温湿度环境条件。而温湿度也是最不轻易保障的指标,针对这一情况,研制可靠且实用的温湿度监控系统显得非常重要。监控系统以RS-485总线协议为基础组成分布式网络结构,采用PC机与单片机组成的多机系统完成丈量与控制任务。
2 系统硬件结构及工作原理
2.1网络监控系统结构
图1 系统结构原理图
系统结构原理图如图1。系统采用两级主从式总线型网络拓扑结构。由1台PC机(作为上位机)、若干台AT89S52单片机(作为下位机)和RS-485总线通讯网络组成。整个系统在监控系统治理软件的控制下,同一协调工作,完成设计功能。
2.2 主从式通讯网络
监控系统中网络通讯采用RS-485串行总线连接,串行通讯具有传输间隔长、连接简单、使用灵活方便、数据传输可靠性高的特点,在产业监控、数据采集和实时控制系统中得到了广泛应用。其中采用差分通讯方式进行信号发送与接收的RS-485(EIA-485Standard)总线协议较RS-232C协议进步了抗共模干扰能力和传输速率,扩大了传输间隔,更适合作为现场总线应用于复杂的环境中的产业控制和实时监控系统中[1]。
下位现场数据采集与控制单元挂接于同一条数据通讯总线,总线为各现场单元共享,为避免总线通讯的竞争与冲突,系统网络通讯采用主从式和广播式通讯控制方法。由主控微机决定一次通讯过程的启动和终止,通过给需要通讯的现场单元分配总线通讯使用权的方法来实现与下位单片机与主控微机之间的网络通讯。网络中的下位单片机请求通讯时必须等待主控微机将总线使用权分配给它后才能收发数据[2]。采用主从通讯控制方法固然速度稍慢,但由于现场单片机与主控微机间的信息交换不是特别频繁,因此对于本监控系统是适用的。
PC主控微机与各现场单元单片机之间所采用的通讯规约是自定义的、非标准的、比较简单的格式。主控PC微机通过RS-232C串口向总线通讯协议转换控制器发送命令帧信息,总线控制器接口电路负责RS-232C电平和RS-485电平之间的相互转换,转发此通讯帧向RS-485总线网络广播。在通讯帧中包含主控微机所要求的下位现场单元编号,所有下位现场单元单片机都收听广播,在收到广播帧后,进行编号对比操纵,各下位单片机把收到的编号与自己的编号进行比较,编号相同的下位单片机控制器为被选中的下位机,对接收到的帧信息进行处理,其余下位单片机控制器皆为未选中的下位机,需要丢弃收到的帧信息并继续进行网络侦听工作[3]。同样,下位现场单元单片机向主控微机发送信息帧时,由总线通讯协议转换控制器转换为RS-232C通讯协议电平向主控微机转发。在设计实验中,监控系统在串行通讯波特率为9600bit/s,无奇偶校验位,8位数据位,1位停止位的设置下通讯正常,没有发生丢帧或错帧的现象。
2.3 下位机数据采集与控制单元
下位机是一个以AT89S52单片机为核心的数据采集与控制单元。AT89S52是一个低功耗,高性能CMOS 8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的AT89S52可为很多嵌进式控制应用系统提供高性价比的解决方案。 AT89S52具有如下资源:40个引脚,8k Bytes Flash片内程序存储(In system programmable可反复擦写1000 次),256 bytes的随机存取数据存储器(RAM),32个外部双向输进/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通讯口,看门狗(WDT)电路,片内时钟振荡器。可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,直至外中断激活或硬件复位[4]。下位机分别接有8路温度湿度传感器,进行温度湿度检测,并根据各路的均匀温度和均匀湿度,控制除湿机、空调机或其他设施,以使环境温度与湿度控制在特定的范围内,并轮流显示均匀温度、湿度值。下位机还设有烟雾、火光和热释电红外传感器及其相关电路 ,组成防火、防盗报警系统。下位单片机通过TTL/RS-485通讯接口电路与总线网络相连接构成半双工主从式串行通讯网络,实现下位机通过串行口与上位机交换数据。下位机是一个相对独立的智能型区域数据丈量与控制子系统,当监控主机与下位单片机之间的通讯发生故障时,各下位机仍可独立完成相关区域的数据采集、告警和控制功能。
各温度和湿度传感器分别将检测到的温度和湿度物理量转换成电信号,经各自的低噪声放大器放大、模数转换器(A/ D)后,送到AT89S52单片机进行数据分析处理。下位机可接受上位机的访问,根据需要将温度、湿度数据实时传递给上位机,由上位机对各仓库的温湿度数据进行记录并做相应处理。由于不同武器装备对环境温、湿度要求不同,用户可通过外加键盘,在所需要的范围内随意设置系统监控的温、湿度指标,以便系统适应不同的需要。
3 软件设计
3.1网络监控系统软件的设计与开发
网络监控系统软件的设计与开发采用基于面向对象程序设计思想和关系数据库技术,在Windows9x/2000/XP系统平台上采用 Borland C++ Builder编程语言开发而成。监控系统软件完成的主要任务和功能有:系统组态、串行通讯治理、图形显示治理、数据存储、报表打印、统计分析、异常处理等。仓储网络监控系统的软件设计功能较多而复杂,而且层次比较多。因此在设计上首先基于Windows的多任务处理机制,前台完成命令响应、各模块调用以及系统工作状态的动态实时图形化显示等,后台负责实时监视接收各下位现场单元发送的数据、定时巡检或随机抽检工作现场的单片机控制器、进行异常处理和报警处理等;在编程技术上采用VCL组件开发技术,应用多线程技术进行多任务处理;其次,采用模块化程序设计,把一个大的程序划分为若干个小的功能模块,每个模块之间既相互独立又相互联系,这样可以进步软件的可维护性、可读性、可靠性和高效性[2]。
3.2 下位机程序设计[5][!--empirenews.page--]
下位机主程序流程图如图2所示。包括对系统进行初始化处理;判定中断方式(含优先级)设置;串行口工作方式设置;系统各种指标的装进;键盘初始化;控制信号初始化以及建立数据指针、通道初值并启动 A/ D转换。
图2 下位机主程序流程图
以下仅给出下位机处理呼唤应答时的部分程序:
# define ADD0 x01
…
sbit tr=p1.3;
void service serial(void) interrupt4using1
{
uchar rs;
RI=0;
ES=0; //关串行中断
tr=0;
rs=SBUF;
…
}
if(rs!=ADD) //不是呼唤本机
{
ES=1;
if(P3.3=0 ) //A/D转换请求中断
…
Return;
}
SM2 =0;
tr=1;
SBUF=ADD; //应答
While(TI=0);
TI=0;
tr=0; //执行通讯命令
…
4 结语
实践证实,基于RS-485总线协议的网络监控系统依托集中治理、分散控制的现代控制技术,组成监控系统的硬件和软件采用标准化、模块化和系统化的设计,系统的配置具有通用性强、系统组态灵活、控制功能完善以及系统安装、调试和维修简便等特点,并且还可以通过智能通讯接口或标准的通讯网络协议和其它监控系统,如门禁治理子系统相交联通讯,组成功能更完善的自动化网络治理系统。
参考文献
[1] 邱公伟,赵祥元,巫淑萍.实时控制与智能仪表多微机系统的通讯技术[M].北京:清华大学出版社,1996
[2] 周海峰,赵春宇,陈大跃.基于RS-485的种子处理成套设备的网络控制设计[J].测控技术,2004,23(12):48-49
[3] 韩世进,张乐年.基于RS-485的多路数据采集系统[J].现代电子技术,2003(11):14-15
[4] 孙育才,王荣兴,孙华芳. ATMEL新型AT89S52系列单片机及其应用[M].北京:清华大学出版社,2005
[5] 李华,孙晓民,李红青,等.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993