×
单片机 > 单片机程序设计 > 详情

基于RS-485总线的温湿度监控系统设计

发布时间:2020-06-13 发布时间:
|
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通信接口电路与总线网络相连接构成半双工主从式串行通信网络,实现下位机通过串行口与上位机交换数据。下位机是一个相对独立的智能型区域数据测量与控制子系统,当监控主机与下位单片机之间的通信发生故障时,各下位机仍可独立完成相关区域的数据采集、告警和控制功能。[page]
  
各温度和湿度传感器分别将检测到的温度和湿度物理量转换成电信号,经各自的低噪声放大器放大、模数转换器(A/ D)后,送到AT89S52单片机进行数据分析处理。下位机可接受上位机的访问,根据需要将温度、湿度数据实时传递给上位机,由上位机对各仓库的温湿度数据进行记录并做相应处理。由于不同武器装备对环境温、湿度要求不同,用户可通过外加键盘,在所需要的范围内随意设置系统监控的温、湿度指标,以便系统适应不同的需要。

3 软件设计
  
3.1网络监控系统软件的设计与开发
  
网络监控系统软件的设计与开发采用基于面向对象程序设计思想和关系数据库技术,在Windows9x/2000/XP系统平台上采用Borland C++ Builder编程语言开发而成。监控系统软件完成的主要任务和功能有:系统组态、串行通信管理、图形显示管理、数据存储、报表打印、统计分析、异常处理等。仓储网络监控系统的软件设计功能较多而复杂,而且层次比较多。因此在设计上首先基于Windows的多任务处理机制,前台完成命令响应、各模块调用以及系统工作状态的动态实时图形化显示等,后台负责实时监视接收各下位现场单元发送的数据、定时巡检或随机抽检工作现场的单片机控制器、进行异常处理和报警处理等;在编程技术上采用VCL组件开发技术,应用多线程技术进行多任务处理;其次,采用模块化程序设计,把一个大的程序划分为若干个小的功能模块,每个模块之间既相互独立又相互联系,这样可以提高软件的可维护性、可读性、可靠性和高效性[2]。
  
3.2 下位机程序设计[5]
  
下位机主程序流程图如图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
关键字:RS-485总线  温湿度监控系统  AT89S52 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址