針對傳統水表落后產生的一系列問題,國家建設部提出了城鎮居民住宅“三表出戶”的要求。
所以目前國內的很多水表生產廠家都在進行產品新型化的探索,大部分采用單片機技術,智能水表系統的實用性研究己成為當前儀表行業的熱點之一。本文介紹的就是一種基于MSP430F413單片機的智能水表的設計。
本論文以智能IC卡水表系統為研究對象,重點探討了基于MSP430F413型超低功耗單片機在低功耗智能儀表上的應用與開發。論文首先提出利用IC卡技術智能水表系統的總體設計方案;設計了系統控制的硬件電路結構和研究了軟件控制流程的實現,采用軟硬件結合的方法,對系統的低功耗、抗干擾性設計及安全性問題作了一定的分析與研究。
MSP430F413簡介
TI公司MSP430 F413系列單片機是一種超低功耗的混合信號控制器,其中包括一系列器件,它們針對不同的應用而由各種不同模塊組成。它們具有16位RISC結構,CPU的16個寄存器和常數發生器使MSP430微控制器能達到最高的代碼效率。靈活的時鐘源可以使器件達到最低的功率消耗。數字控制的振蕩器(DCO)可使器件從低功耗模式迅速喚醒,在小于6μs的時間內被激活到正常的工作方式。MSP430F413系列單片機的16位定時器是應用于工業控制如紋波計數器、數字化電機控制、電表、水表和手持式儀表等的理想配置,其內置的硬件乘法器大大增強了其功能并提供了與軟硬件相兼容的范圍,提高了數據處理能力。
智能水表的工作原理
本文設計的智能水表的工作原理:用戶先購買IC卡(用戶卡),并攜帶IC卡至收費工作站交費購水,工作人員將購水量等信息寫入卡中。用戶將卡插入IC卡水表表座內時,IC卡水表內單片機識別IC卡密碼,校驗并確認無誤后,將卡中購水量與表內剩余水量相加后(初次使用時,剩余水量為零),寫入IC卡水表內的存儲器,進而控制電閥開通閥門供水。
用戶在用水過程中,帶磁感器的葉輪在水流的沖擊下轉動,通過磁傳遞,帶動上表罩上的梅花齒輪轉動并使多極齒輪轉動,實現機械累計計量,每當計量到0.01m3時由位于0.01m3處的計量傳感器向單片機發出同步的計量脈沖信號,此時,MSP430F413將輸入的有效脈沖計入并計算用水量,IC卡水表內剩余水量就會相應的減少一個計量單位,累計用水量就會增加一個計量單位,LCD顯示屏上顯示剩余水量等相關用水數據。當剩余水量低于一個定量時(有一個事先設定好的最低剩余水量值),IC卡水表的報警系統啟動(蜂鳴器響起),提醒用戶及時到供水部門再次購水,這時,LCD顯示屏上顯示“請購水”字樣。當剩余水量為-1時,單片機驅動電閥自動關閉,切斷水源,停止供水并報警。在用戶重新購水讀卡存入后,再開通電閥供水。在正常情況下,閥門處于開通狀態,當遇到剩余水量為-1或者電池電壓小于3V等其他特殊情況時閥門會由開通變為關閉狀態。
系統方案設計
本文設計的智能水表系統主要由微處理器、流量傳感器、電動閥門、IC卡讀/寫器、LCD液晶顯示及電源等組成,
圖1 智能水表的原理框圖
硬件結構圖如圖1所示。
1 系統硬件的設計
圖2 系統硬件原理框圖
系統硬件原理框圖如圖2所示。
① 電源低電壓檢測電路
本系統采用三節干電池4.5V作為供電電源,使用一段時間后,干電池會放電,為了保證整個系統,特別是閥門的正常工作,需要對電源進行實時檢測,當電能不能滿足系統要求時,及時報警提醒用戶更換電池,以免造成不必要的麻煩。
為提高智能水表運行的可靠性和安全性,設計中采用電源電壓實時監測電路。如圖3所示。電壓檢測芯片采用日本理光R3111H301C低電壓檢測芯片,R3111H301C輸出電壓為3.0V,最大工作電流為3.0μA,一般情況下的工作電流僅為1.0μA,高精度集成,完全滿足系統低功耗設計的要求。當電源電壓正常時,芯片的輸出腳輸出為高電平;當電源電壓小于3.0V時,輸出腳輸出低電平,即P1.1輸出低電平,P1.1下降沿中斷有效,單片機檢測到該信號時即轉入中斷服務程序處理,這時LCD液晶顯示“換電池”字樣,同時蜂鳴器報警提示用戶更換電池,MSP430F413內部基本定時器使能中斷,定時1s檢測電壓是否回升,如果回升蜂鳴器再次發出一聲警報提示,LCD液晶上的“換電池”顯示字樣清除。如沒有回升,則關閉閥門,直到用戶更換電池,才再次開啟閥門供水。由于MSP430F413工作用電壓是3.0V,所以需要一個電壓轉換芯片將4.5V電壓轉換成3.0V供MSP430F413和其他外圍模塊使用,本電路中用的是RH5RL30AA—電壓調整芯片,它具有高精度的輸出電壓,工作電流極低只有1.1μA。
② 脈沖采集電路
本系統中水表的基表采用符合ISO 4064B標準的旋翼式冷水水表。該表計數機構與測量機構經磁耦合傳動,采用干簧管傳感器計量發訊,每流經0.01m3水時產生一個脈沖。為了有效防止各種可能的干擾抖動而產生的多計數現象,本設計中采用雙干簧管雙脈沖通過由電容和電阻組成的防抖電路輸入單片機計數,當兩個脈沖輸入段依次有脈沖輸入的時候才產生一個有效脈沖計數,兩個脈沖有互鎖功能,P1.3和P1.4作為脈沖輸入端。每輸入一個脈沖,在存儲器中減去相應水量。表內設有磁保護裝置,具有較強的抗外磁干擾能力。
③ 閥門控制電路
閥門控制是水表控制系統中一個很敏感的部分,關啟閥門的可靠性差,將會給供水部門帶來很大的問題。本系統采用的是電動球閥,工作電壓3V,工作時電流僅50mA。設計中利用直流電機帶動半球閥正轉或反轉的方式來控制閥門的開啟和關閉。利用MSP430F413單片機的P6.6和P6.7來控制閥門的正反轉動,利用MSP430F413內部比較器(P1.6CA0,P1.7CA1)檢測堵轉電流來控制電機運行。當電機正常工作時,CA0>CA1,一旦堵轉,電流迅速增大,CAOUT=0,來通知MSP430F413電機轉到位。定時器定時1s檢測電機是否到位,有效地解決閥門關閉不可靠問題。當正向端輸入高電平,反向端輸入低電平時,閥門開啟;反之,閥門閉合。當單片機P6.7口輸入低電平、P6.6口輸入高電平時,正向端(ON)輸出高電平,反向端(OFF)輸出低電平,開啟閥門,開啟到位時,由單片機P1.5口輸入檢測信號,動作停止;反之,正向端輸出低電平,反向端輸出高電平,關閉閥門,同樣由單片機P1.5口輸入關閉到位檢測信號。
2 系統軟件的設計
圖4是主程序流程圖。單片機上電復位后主程序采用順序執行的方法,逐個掃描各個自定義標志位,檢查是否有動作發生,若有發生則轉入相應子程序處理,處理完后回到主程序,繼續掃描其后的標志位,最后進入低功耗狀態,等待下一次中斷喚醒,喚醒后同樣循環一遍,又進入低功耗狀態。由于各信號以中斷的方式進入的,所以要特別注意中斷的優先級及中斷的嵌套問題。采用模塊化方法設計各個子程序。根據不同功能,定義了不同的功能模塊。明確入口出口,相互之間的調用關系,以供調用。主要軟件模塊有:IC卡讀寫模塊,液晶顯示模塊,計量模塊,FLASH讀寫模塊,低電壓保護模塊等。上電后首先對系統進行初始化。初始化包括對內部存儲器單元清零、特殊功能寄存器置初值、液晶顯示的設置等。接著進入主循環,判斷故障、電源電壓是否正常等,若一切正常則開閥供水。無論在什么情況下只要有低電壓信號出現,系統就提示欠壓,蜂鳴器報警,液晶顯示,提示用戶更換電池:當剩余水量低于設定值時,系統液晶顯示提醒用戶“請購水”,如果用戶沒有及時購水重新插卡充值,當剩余水量為負時,系統控制閥門關閉,停止供水。
圖3電源低電壓檢測電路
圖4 系統軟件設計流程圖
3 系統低功耗的設計
在單片機控制系統中,系統的功耗往往和電源電壓的大小成一定比例關系,電源電壓高,系統的功耗相應的也會增大,因此在功耗要求很嚴格的智能水表控制系統中,在保證功能的前提下,盡量選擇低的電源電壓。本系統中選用三節堿性干電池4.5V供電。本文所設計的智能水表的能耗主要由三部分構成:第一部分是控制器中單片機(CPU)液晶正常運行時的持續性能耗,這是主要的功耗;第二部分是IC卡水表執行機構(電閥)動作時的瞬時能耗;第三部分是IC卡水表一些輔助功能如聲音報警等的能耗。上述智能水表能耗的第一、二部分占了總能耗的95%以上。因此,在設計時主要考慮:選擇低功耗電動閥;選擇低功耗器件(CMOS型);選擇低的工作電壓和低的工作頻率;軟件設計時選擇低功耗的系統運行模式。
4 系統抗干擾的設計
本系統中抗干擾設計從兩方面來考慮,一是在硬件設計上采取適當的措施來抑制和消除干擾,例如采用電磁干擾濾波器,如圖5所示。另一方面是從系統軟件設計上采取一定措施來提高系統的抗干擾能力,即使系統受到干擾,也能自動地快速恢復正常上作。如:盡量減少中斷源,采用中斷與查詢相結合的方法,保持盡.可能短的中斷開放時間,隨開隨關;在程序關鍵的地方人為地插入空操作指令,保護CPU在受到干擾,程序“彈飛”時指令不被拆散等軟件措施。
圖5 電磁干擾濾波器在系統中的應用
結束語
實踐證明:本文所設計的智能水表從管理上講對用戶實行“先買水后用水”的預付費管理方式,在一定程度上改善傳統管理模式的種種弊端,符合我國的基本國情,有很強的適用價值。