《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于GPRS的自來(lái)水流量監(jiān)測(cè)終端的設(shè)計(jì)
基于GPRS的自來(lái)水流量監(jiān)測(cè)終端的設(shè)計(jì)
摘要:  自來(lái)水流量遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的結(jié)構(gòu)如圖1 所示。系統(tǒng)由若干監(jiān)測(cè)終端、無(wú)線數(shù)據(jù)傳輸網(wǎng)絡(luò)和監(jiān)控中心三部分組成。其中,監(jiān)測(cè)終端安裝于各供水分區(qū)的監(jiān)測(cè)點(diǎn),及時(shí)將監(jiān)測(cè)到的流量數(shù)據(jù)通過(guò)GPRS網(wǎng)絡(luò)傳輸?shù)皆O(shè)在自來(lái)水公司的監(jiān)控中心,由中心對(duì)各分區(qū)的數(shù)據(jù)進(jìn)行分析,從而實(shí)現(xiàn)對(duì)各分區(qū)供水的科學(xué)管理。這里所說(shuō)的供水分區(qū)不是一般的給水系統(tǒng)分區(qū)(并聯(lián)分區(qū)或串聯(lián)分區(qū)),而是在供水管網(wǎng)上安裝流量計(jì)將整個(gè)供水系統(tǒng)劃分成若干個(gè)供水區(qū)域,每個(gè)區(qū)域作為一個(gè)監(jiān)測(cè)點(diǎn),對(duì)管理區(qū)域內(nèi)流進(jìn)的自來(lái)水總量和實(shí)際銷(xiāo)售的水量進(jìn)行量化管理,以此來(lái)了解和掌握各區(qū)域內(nèi)的需水量、供銷(xiāo)差、漏失量、未收費(fèi)水量等情況。
Abstract:
Key words :

  系統(tǒng)總體構(gòu)成

  自來(lái)水流量遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的結(jié)構(gòu)如圖1 所示。系統(tǒng)由若干監(jiān)測(cè)終端、無(wú)線數(shù)據(jù)傳輸網(wǎng)絡(luò)和監(jiān)控中心三部分組成。其中,監(jiān)測(cè)終端安裝于各供水分區(qū)的監(jiān)測(cè)點(diǎn),及時(shí)將監(jiān)測(cè)到的流量數(shù)據(jù)通過(guò)GPRS網(wǎng)絡(luò)傳輸?shù)皆O(shè)在自來(lái)水公司的監(jiān)控中心,由中心對(duì)各分區(qū)的數(shù)據(jù)進(jìn)行分析,從而實(shí)現(xiàn)對(duì)各分區(qū)供水的科學(xué)管理。這里所說(shuō)的供水分區(qū)不是一般的給水系統(tǒng)分區(qū)(并聯(lián)分區(qū)或串聯(lián)分區(qū)),而是在供水管網(wǎng)上安裝流量計(jì)將整個(gè)供水系統(tǒng)劃分成若干個(gè)供水區(qū)域,每個(gè)區(qū)域作為一個(gè)監(jiān)測(cè)點(diǎn),對(duì)管理區(qū)域內(nèi)流進(jìn)的自來(lái)水總量和實(shí)際銷(xiāo)售的水量進(jìn)行量化管理,以此來(lái)了解和掌握各區(qū)域內(nèi)的需水量、供銷(xiāo)差、漏失量、未收費(fèi)水量等情況。

系統(tǒng)結(jié)構(gòu)圖

圖1  系統(tǒng)結(jié)構(gòu)圖

  其中,監(jiān)測(cè)終端應(yīng)實(shí)現(xiàn)下列功能:

  (1)現(xiàn)場(chǎng)采集流量信息,包括瞬時(shí)流量、正向總量、反向總量、流量百分比、差值總量、流速等信息。

 ?。?)具有遠(yuǎn)程通信功能。定時(shí)將采集的流量信息通過(guò)GPRS網(wǎng)絡(luò),上傳至監(jiān)控中心。

 ?。?)監(jiān)測(cè)終端可以按監(jiān)控中心的指令完成校時(shí)。

 ?。?)停電復(fù)電時(shí)間記錄。監(jiān)測(cè)流量計(jì)的供電,一旦停電立即記錄下停電時(shí)間,并報(bào)告監(jiān)控中心,隨即進(jìn)入睡眠模式;恢復(fù)供電時(shí),記錄來(lái)電時(shí)間,也上傳到中心。

 ?。?)歷史數(shù)據(jù)記錄。具有一定的非易失性數(shù)據(jù)存儲(chǔ)區(qū),可在本地保存斷電/復(fù)電時(shí)間以及歷史數(shù)據(jù)。

 ?。?)軟件在線升級(jí)。監(jiān)測(cè)終端預(yù)留升級(jí)接口,可在不改變硬件設(shè)計(jì)的情況下根據(jù)用戶的需要對(duì)軟件進(jìn)行升級(jí),滿足不同用戶的需求。

  監(jiān)測(cè)終端的硬件設(shè)計(jì)

  監(jiān)測(cè)終端由單片機(jī)、 GPRS DTU(包括SIM卡、天線等)、供電電路、實(shí)時(shí)時(shí)鐘、Flash存儲(chǔ)器以及數(shù)據(jù)采集設(shè)備組成,如圖2所示。其中,虛線框中是需要用硬件實(shí)現(xiàn)的部分。

監(jiān)測(cè)終端的硬件組成

圖 2 監(jiān)測(cè)終端的硬件組成

  1 PIC16F877A單片機(jī)

  鑒于監(jiān)測(cè)終端設(shè)置在無(wú)人看管、環(huán)境較惡劣的地方,要求抗干擾能力強(qiáng)、性能可靠,采用了Microchip公司的PIC單片機(jī)中的PIC16F877A。

  PIC16F877A單片機(jī)內(nèi)部有 8K*14的Flash程序存儲(chǔ)器和368B的RAM數(shù)據(jù)存儲(chǔ)器;采用哈佛結(jié)構(gòu),數(shù)據(jù)線和指令線分離,取數(shù)據(jù)和取指令可以同時(shí)進(jìn)行,執(zhí)行效率高、速度快。

  2 GPRS DTU

  無(wú)線通信模塊采用成都眾山科技有限公司的ZSD2110 GPRS DTU。ZSD2110是一款使用GPRS進(jìn)行無(wú)線數(shù)據(jù)傳輸?shù)慕K端設(shè)備,支持PPP、TCP、UDP、ICMP等眾多復(fù)雜網(wǎng)絡(luò)協(xié)議,支持透明數(shù)據(jù)傳輸和用戶自由控制傳輸模式,同時(shí)支持點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)、設(shè)備間、設(shè)備與中心間等各種不同的通信模式。

  3 串行通信接口

  從圖2中可看出,單片機(jī)采集數(shù)據(jù)以及跟DTU之間的通信都是通過(guò)串行接口,而PIC16F877A只有一個(gè)USART接口。這里采用分時(shí)復(fù)用的原則,通過(guò)一片4位總線開(kāi)關(guān)芯片F(xiàn)ST3125在流量計(jì)與DTU之間切換,平時(shí)與流量計(jì)接通,采集數(shù)據(jù),上傳時(shí)間到時(shí),斷開(kāi)與流量計(jì)的連接,接通DTU,上傳數(shù)據(jù)(必要時(shí)完成校時(shí))。

  4 DS1302實(shí)時(shí)時(shí)鐘

  實(shí)時(shí)時(shí)鐘用于提供系統(tǒng)采樣、定時(shí)上傳、記錄斷電/復(fù)電時(shí)間等操作的時(shí)間基準(zhǔn),是本系統(tǒng)不可缺少的一部分。本設(shè)計(jì)選用了DS1302實(shí)時(shí)時(shí)鐘芯片。

  DS1302使用32.768kHz的外部晶振,該振蕩電路不需要外接任何電阻或電容,設(shè)計(jì)簡(jiǎn)單。需要注意的是,在晶振的選擇上,只能選用負(fù)載電容為6pF的32.768kHz晶振,否則可能會(huì)導(dǎo)致晶振不能起振,DS1302 不計(jì)時(shí)的問(wèn)題。

  5 SPI Flash存儲(chǔ)器

  采用串行Flash作為外部存儲(chǔ)器,記錄歷史數(shù)據(jù)和斷電/復(fù)電時(shí)間。與以往的并行存儲(chǔ)器或鐵電存儲(chǔ)器相比,串行存儲(chǔ)器具有很大優(yōu)勢(shì)。并行存儲(chǔ)器存儲(chǔ)容量大,讀寫(xiě)速度快,但是抗干擾能力差;鐵電存儲(chǔ)器采用串行接口,抗干擾能力強(qiáng),也具有很高的靈活性,可以單字節(jié)讀寫(xiě)(不需要擦除,可直接改寫(xiě)數(shù)據(jù)),但其存儲(chǔ)密度小,單位成本高,讀寫(xiě)速度較慢。而本系統(tǒng)中采用的M25P16存儲(chǔ)器綜合了這二者的優(yōu)點(diǎn),不僅存儲(chǔ)容量大,讀寫(xiě)速度快,而且抗干擾能力強(qiáng),占用MCU引腳資源少。

  6 供電電路及掉電檢測(cè)

  整個(gè)電路板上器件都工作在5V電壓下。

  除了正常供電外,為保證在突然斷電的情況下,能及時(shí)記錄斷電時(shí)間,以備向監(jiān)控中心報(bào)告,還需要備用電源以及斷電檢測(cè)電路。本系統(tǒng)主電源采用UPS供電,可保證在交流電斷電的情況下仍能工作,另外從220V交流電直接接一電源作為掉電檢測(cè)電路的輸入,經(jīng)光耦隔離,連接到單片機(jī)的RB0引腳,斷電時(shí),觸發(fā)單片機(jī)的RB0外部中斷實(shí)現(xiàn)斷電保護(hù),讀取當(dāng)前DS1302的時(shí)間保存到Flash存儲(chǔ)器,并經(jīng)DTU上傳到監(jiān)控中心,然后使單片機(jī)進(jìn)入低功耗工作狀態(tài)?;謴?fù)供電時(shí),同樣要記錄復(fù)電時(shí)間并上傳。

   監(jiān)測(cè)終端的軟件設(shè)計(jì)

 

  在監(jiān)測(cè)終端的軟件設(shè)計(jì)中,采用模塊化設(shè)計(jì),根據(jù)功能將程序劃分為多個(gè)模塊分別設(shè)計(jì)。這種設(shè)計(jì)方法不僅使得程序結(jié)構(gòu)清晰,而且為以后新功能的擴(kuò)展以及程序的移植提供了便利,在調(diào)試過(guò)程中也便于對(duì)軟件故障的定位。

  軟件在MPLAB IDE8.10環(huán)境下,采用PICC編譯器,用C語(yǔ)言實(shí)現(xiàn)。主程序流程如圖3所示。監(jiān)測(cè)終端上電后,先進(jìn)行初始化,然后進(jìn)入循環(huán),根據(jù)條件調(diào)用各個(gè)子程序。其中初始化包括各I/O端口的方向設(shè)置、SPI初始化、中斷標(biāo)志的設(shè)置等。寫(xiě)數(shù)據(jù)到Flash時(shí),須先判斷整個(gè)Flash是否寫(xiě)滿,惹是須先擦除才能寫(xiě)入新數(shù)據(jù)。

主程序流程圖

圖 3 主程序流程圖

  在本系統(tǒng)中,單片機(jī)需處理多個(gè)任務(wù),而且有的任務(wù)又是隨機(jī)的,故MCU采用查詢和中斷相結(jié)合的工作方式。其中,定時(shí)上報(bào)采用查詢方式,如圖3所示,而斷電檢測(cè)、來(lái)電喚醒則通過(guò)PIC單片機(jī)的RB0電平變化中斷來(lái)完成。但是,在中斷服務(wù)程序中,只簡(jiǎn)單的設(shè)置掉電/復(fù)電標(biāo)志,并不執(zhí)行其他復(fù)雜的操作,相應(yīng)的掉電/復(fù)電服務(wù)是在主程序中檢測(cè)到掉電/復(fù)電標(biāo)志后才執(zhí)行的。這是因?yàn)镻IC16F877A單片機(jī)只有8層深度的硬件堆棧,在中斷里調(diào)用子程序極易出現(xiàn)堆棧溢出的情況。為了保證程序的可靠運(yùn)行,故將讀取DS1302的時(shí)間、轉(zhuǎn)入睡眠模式等操作都放在主程序中執(zhí)行,使中斷服務(wù)程序盡量短小,提高系統(tǒng)運(yùn)行的可靠性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。