基于GPRS的自来水流量监测终端的设计
- 格式:pdf
- 大小:144.42 KB
- 文档页数:2
基于13 PRS的自来水流量监测终端的设计
系统总体构成 自来水流量远程监测系统的结构
如图l所示。系统由若干监测终端、无
线数据传输网络和监控中心三部分组 成。其中,监测终端安装于各供水分
区的监测点,及时将监测到的流量数 据通过GPRS网络传输到设在自来水 公司的监控中心,由中心对各分区的
数据进行分析,从而实现对各分区供 水的科学管理。这里所说的供水分区
不是一般的给水系统分区(并联分区 或串联分区),而是在供水管网上安
装流量计将整个供水系统划分成若干 个供水区域,每个区域作为一个监测
点,对管理区域内流进的自来水总量
和实际销售的水量进行量化管理,以 此来了解和掌握各区域内的需水量、 供销差、漏失量、未收费水量等情
况。
1......... .. .. .._j 1. ...........一 园 图1系统结构图
其中,监测终端应实现下列功
能: (1)现场采集流量信息,包括瞬
时流量、正向总量、反向总量、流量
60 母瓣窀子t 0々0辑7嚣 石家庄开发区翼科双实科技有限公司孙晓晔
百分比、差值总量、流速等信息。
(2)具有远程通信功能。定时将
采集的流量信息通过GPRS网络,上传
至监控中心。 (3)监测终端可以按监控中心的
指令完成校时。 (4)停电复电时间记录。监测流 量计的供电,一旦停电立即记录下停
电时间,并报告监控中心,随即进入 睡眠模式;恢复供电时,记录来电时
间,也上传到中心。 (5)历史数据记录。具有一定的
非易失性数据存储区,可在本地保存
断电/复电时间以及历史数据。 (6)软件在线升级。监测终端预
留升级接口,可在不改变硬件设计的 情况下根据用户的需要对软件进行升
级,满足不同用户的需求。
监测终端的硬件设计
监测终端由单片机、G P R S DTu(包括SIM卡、天线等)、供电电
路、实时时钟、Flash存储器以及数据 采集设备组成,如图2所示。其中,虚
线框中是需要用硬件实现的部分。
1 PIC16F877A单片机 鉴于监测终端设置在无人看管、 环境较恶劣的地方,要求抗干扰能力 强、性能可靠,采用了Microchip公司
的PIC单片机中的PICl6F877A。
数据 采集 设备一 (流量 计和转 换器)一
图2监测终端 1 竺苎皇堡卜J 的硬件组成
PI Cl6F877A单片机内部有8K*14 的Flash程序存储器 ̄368B的RAM数
据存储器;采用哈佛结构,数据线和
指令线分离,取数据和取指令可以同 时进行,执行效率高、速度快。
2 GPRS DTU 无线通信模块采用成都众山科技 有限公司的ZSD21 10 GPRS DTU。 ZSD2l10是一款使用GPRS进行无线
数据传输的终端设备,支持PPP、 TCP、UDP、ICMP等众多复杂网络
协议,支持透明数据传输和用户自由 控制传输模式,同时支持点对点、点
对多点、设备间、设备与中心间等各
种不同的通信模式。 3串行通信接口
从图2中可看出,单片机采集数 图
据以及跟DTU之间的通信都是通过
串行接口,而PIC16F877A只有一个 U SART接口。这里采用分时复用
的原则,通过一片4位总线开关芯片 FST3125在流量计与DTU之间切换,
平时与流量计接通,采集数据,上传 时间到时,断开与流量计的连接,接
通DTU,上传数据(必要时完成校
时)。 4 DS1302实时时钟 实时时钟用于提供系统采样、定时
上传、记录断电/复电时间等操作的时
间基准,是本系统不可缺少的一部分。 本设计选用了DS1302实时时钟芯片。
DS1302使用32.768kHz的外部晶 振,该振荡电路不需要外接任何电阻
或电容,设计简单。需要注意的是, 在晶振的选择上,只能选用负载电容
为6pF的32.768kHz晶振,否则可能会 导致晶振不能起振,DS1302不计时的
问题。 5 SPI Flash存储器 采用串行Flash作为外部存储器,
记录历史数据和断电/复电时间。与以
往的并行存储器或铁电存储器相比, 串行存储器具有很大优势。并行存储
器存储容量大,读写速度快,但是抗 干扰能力差;铁电存储器采用串行接
口,抗干扰能力强,也具有很高的灵 活性,可以单字节读写(不需要擦除,
可直接改写数据),但其存储密度小,
单位成本高,读写速度较慢。而本系 统中采用的M25P16存储器综合了这二
者的优点,不仅存储容量大,读写速 度快,而且抗干扰能力强,占用MCU
引脚资源少。 6供电电路及掉电检测 整个电路板上器件都工作在5V电
压下。 除了正常供电外,为保证在突然
断电的情况下,能及时记录断电时间, 以备向监控中心报告,还需要备用电源
以及断电检测电路。本系统主电源采用
UPS供电,可保证在交流电断电的情况 下仍能工作,另外从220V交流电直接
接一电源作为掉电检测电路的输入,经
光耦隔离,连接到单片机的RB0引脚, 断电时,触发单片机的RB091、部中断实 现断电保护,读取当前DS1302的时间
保存 ̄iJFlash存储器,并经DTU上传到
监控中心,然后使单片机进入低功耗工 作状态。恢复供电时,同样要记录复电
时间并上传。
图3主程序流程图
监测终端的软件设计 在监测终端的软件设计中,采用 模块化设计,根据功能将程序划分为
多个模块分别设计。这种设计方法不 仅使得程序结构清晰,而且为以后新
功能的扩展以及程序的移植提供了便
利,在调试过程中也便于对软件故障 的定位。
软件在MPLAB IDE8.1oN境 下,采用PI C C编译器,用C语言实
现。主程序流程如图3所示。监测终端
上电后,先进行初始化,然后进入循 环,根据条件调用各个子程序。其中
初始化包括各I/O端口的方向设置、 SPI初始化、中断标志的设置等。写数
据 ̄lJFlash时,须先判断整个Flash是 否写满,惹是须先擦除才能写入新数
据。
在本系统中,单片机需处理多个 任务,而且有的任务又是随机的,故
M C U采用查询和中断相结合的工作方 式。其中,定时上报采用查询方式,
如图3所示,而断电检测、来电唤醒则 通过PIC单片机的RB0电平变化中断来
完成。但是,在中断服务程序中,只 简单的设置掉电/复电标志,并不执行
其他复杂的操作,相应的掉电/复电服
务是在主程序中检测到掉电/复电标志 后才执行的。这是因为PIC16F877A单 片机只有8层深度的硬件堆栈,在中断 里调用子程序极易出现堆栈溢出的情 况。为了保证程序的可靠运行,故将
读取DS1302的时间、转入睡眠模式等
操作都放在主程序中执行,使中断服 务程序尽量短小,提高系统运行的可
靠性。 囹
母跨窀手 20
0罐 鹦 6I