基于GPRS的自来水流量监测终端的设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于GPRS的自来水流量监测终端的设计

来源:中国一卡通网  作者:中国一卡通收录  发布时间:2011-12-21 09:30:54  字体:[ ]

关键字:水控  流量监测  监控  

摘   要:自来水流量远程监测系统由若干监测终端、无线数据传输网络和监控中心三部分组成。其中,监测终端安装于各供水分区的监测点,及时将监测到的流量数据通过GPRS网络传输到设在自来水公司的监控中心,由中心对各分区的数据进行分析,从而实现对各分区供水的科学管理。


  4 DS1302实时时钟
 
  实时时钟用于提供系统采样、定时上传、记录断电/复电时间等操作的时间基准,是本系统不可缺少的一部分。本设计选用了DS1302实时时钟芯片。

  DS1302使用32.768kHz的外部晶振,该振荡电路不需要外接任何电阻或电容,设计简单。需要注意的是,在晶振的选择上,只能选用负载电容为6pF的32.768kHz晶振,否则可能会导致晶振不能起振,DS1302不计时的问题。

  5 SPIFlash存储器

  采用串行Flash作为外部存储器,记录历史数据和断电/复电时间。与以往的并行存储器或铁电存储器相比,串行存储器具有很大优势。并行存储器存储容量大,读写速度快,但是抗干扰能力差;铁电存储器采用串行接口,抗干扰能力强,也具有很高的灵活性,可以单字节读写(不需要擦除,可直接改写数据),但其存储密度小,单位成本高,读写速度较慢。而本系统中采用的M25P16存储器综合了这二者的优点,不仅存储容量大,读写速度快,而且抗干扰能力强,占用MCU引脚资源少。

  6 供电电路及掉电检测

  整个电路板上器件都工作在5V电压下。

  除了正常供电外,为保证在突然断电的情况下,能及时记录断电时间,以备向监控中心报告,还需要备用电源以及断电检测电路。本系统主电源采用UPS供电,可保证在交流电断电的情况下仍能工作,另外从220V交流电直接接一电源作为掉电检测电路的输入,经光耦隔离,连接到单片机的RB0引脚,断电时,触发单片机的RB0外部中断实现断电保护,读取当前DS1302的时间保存到Flash存储器,并经DTU上传到监控中心,然后使单片机进入低功耗工作状态。恢复供电时,同样要记录复电时间并上传。

  监测终端的软件设计

  在监测终端的软件设计中,采用模块化设计,根据功能将程序划分为多个模块分别设计。这种设计方法不仅使得程序结构清晰,而且为以后新功能的扩展以及程序的移植提供了便利,在调试过程中也便于对软件故障的定位。

  软件在MPLAB IDE8.10环境下,采用PICC编译器,用C语言实现。主程序流程如图3所示。监测终端上电后,先进行初始化,然后进入循环,根据条件调用各个子程序。其中初始化包括各I/O端口的方向设置、SPI初始化、中断标志的设置等。写数据到Flash时,须先判断整个Flash是否写满,惹是须先擦除才能写入新数据。 



  图3 主程序流程图

  在本系统中,单片机需处理多个任务,而且有的任务又是随机的,故MCU采用查询和中断相结合的工作方式。其中,定时上报采用查询方式,如图3所示,而断电检测、来电唤醒则通过PIC单片机的RB0电平变化中断来完成。但是,在中断服务程序中,只简单的设置掉电/复电标志,并不执行其他复杂的操作,相应的掉电/复电服务是在主程序中检测到掉电/复电标志后才执行的。这是因为PIC16F877A单片机只有8层深度的硬件堆栈,在中断里调用子程序极易出现堆栈溢出的情况。为了保证程序的可靠运行,故将读取DS1302的时间、转入睡眠模式等操作都放在主程序中执行,使中断服务程序尽量短小,提高系统运行的可靠性。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖