葛欣
渤海大學(xué)工學(xué)院
?
基于MSP430單片機的智能水表設(shè)計
葛欣
渤海大學(xué)工學(xué)院
本文介紹了基于低功耗單片機MSP430F413的智能水表的開發(fā)。包括智能水表的工作原理、MSP430單片機在低功耗方面的優(yōu)勢及性能、智能水表的整體設(shè)計方案等等。
MSP430F413 智能水表 低功耗 IC卡技術(shù)
隨著社會的發(fā)展和科技的進入,智能化和信息化成為了當(dāng)前的熱門話題。而在供水方面也有了不少的探索和研究。供水的傳統(tǒng)管理方式為:“先供水后收費”。這種方式造成供水部門在抄表、收費上的低效率,如何更改管理方式,提高效率、方便管理成為當(dāng)前承需解決的問題。本文即是基于此,提出了一種基于MSP430F413超低功耗單片機為主控MCU的智能水表解決方案。
本設(shè)計由單片機作為主控,電動閥門作為供水開關(guān),IC用于記錄購水量并將數(shù)據(jù)同步至單片機內(nèi),液晶用于數(shù)據(jù)顯示,蜂鳴器用于報警提示。本只能水表的使用流程如下:
首先,用戶需要在購水處購買IC卡和用水量,并由工作人員將所購買的用水量等信息錄入IC卡中。然后,用戶將IC卡插入水表上卡座內(nèi)時,表內(nèi)單片機啟動IC卡檢測及校驗程序,識別并驗證IC卡密碼,根據(jù)IC中的信息,更新表內(nèi)剩余水量值(第一次使用時,卡內(nèi)的剩余水量值為零)并存儲記錄。最后,單片機判斷剩余水量是否大約0,大于0則打開閥門供水。
水表用水量的統(tǒng)計采用單位水量(0.01立方米)的機械觸發(fā),產(chǎn)生多傳感器組合信號,并由單片機處理和統(tǒng)計數(shù)據(jù)的方式。具體流程如下:
①供水時,水流帶動表內(nèi)葉輪轉(zhuǎn)動,進而通過磁感器帶動齒輪轉(zhuǎn)動,實現(xiàn)機械累計。②每當(dāng)機械累計量達(dá)到單位水量時,多傳感器向單片機發(fā)出組合信號。③單片機被喚醒并處理用水量數(shù)據(jù),記錄和更新剩余水量。
當(dāng)剩余水量低于某閾值時(單片機內(nèi)設(shè)定的剩余水量不足的閾值),水表的報警系統(tǒng)啟動每個N分鐘(通過算法實現(xiàn)每次報警時間間隔遞增),蜂鳴器連續(xù)響5聲,用于提醒用戶剩余水量不足。當(dāng)剩余水量為0時,停止供水。在用戶重新購水后,單片機執(zhí)行卡檢測、密碼驗證、更新剩余水量后,驅(qū)動電閥供水。在遇到電池供電電壓過低時,3次報警提示后關(guān)閉供水。在剩余水量低于設(shè)定閥值時報警提示水量不足,當(dāng)剩余水量為0時,關(guān)閉供水并報警。
MSP430F413是一款以超低功耗著稱的16位單片機,它的所有外設(shè)的時鐘都可以單獨關(guān)閉和打開,并且外設(shè)可以選擇不同的時鐘源,這種靈活的時鐘設(shè)置可以使基于此單片機的產(chǎn)品滿足性能的情況下,達(dá)到最低的功率消耗。同時,它采用16位RISC結(jié)構(gòu),CPU執(zhí)行代碼效率高。其片上豐富的外設(shè)也簡化了外部設(shè)計電路,節(jié)省成本。
本文設(shè)計的智能水表原理框圖如圖1,主要由以下幾部分構(gòu)成,包括MSP430F413單片機、液晶顯示、電動供水閥、流量傳感器、IC卡讀寫器、及電源電路等。
圖1
圖2
4.1硬件原理框圖(如圖2)
4.2數(shù)據(jù)采集電路
本智能水表的基表是旋翼式冷水水表,符合ISO 4064B標(biāo)準(zhǔn)。使用干簧管傳感器采集信號。配合單片機的IO口檢測,統(tǒng)計水量。為了提高檢測精度,本設(shè)計中使用2個干簧管組成雙脈沖計數(shù)邏輯,并在硬件設(shè)計上添加濾波電路,只有當(dāng)兩個干簧管依次產(chǎn)生脈沖信號才記為一次有效計數(shù),以有效減少因抖動造成單個干簧管多次觸發(fā)導(dǎo)致統(tǒng)計偏差。由于正常情況下,單片機處于低功耗模式下,因此,檢測干簧管產(chǎn)生的脈沖信號的引腳使用能夠喚醒單片機的P1.3口和P1.4口。每當(dāng)有一次有效計數(shù)產(chǎn)生,則更新并記錄相應(yīng)水量。同時,為防止外部電磁信號的干擾,表內(nèi)設(shè)計了磁保護裝置,以保證采樣精度。
4.3低電壓檢測電路
為保證供電電壓的穩(wěn)定,同時提供便攜的安裝,本水表不使用外接電源,而采用電池供電。帶來的問題是,如果提供保證水表能長久有效的正常工作的電量。為了解決此問題,一方面我們采用低功耗器件和IC,保證供電時常。另一方面,對電源低電壓進行實時檢測。當(dāng)檢測到電池電量過低時,蜂鳴器報警。當(dāng)電量低于某閾值時,停止供水并報警。
為滿足低功耗下實時供電電壓檢測的要求,采用低功耗的電壓檢測芯片R3111H301C。R3111H301C為低電壓檢測芯片,其正常的工作電流只有1.0μA。供電電壓正常時,芯片的輸出引腳為高電平;電壓小于3.0V時,輸出引腳為低電平。以此,在軟件設(shè)計中,使用能夠喚醒單片機的引腳P1.1作為電量檢測的IO口。IO口配置為高電平輸入,下拉中斷。當(dāng)檢測電壓低于3.0V時,P1.1引腳被拉低,單片機被從低功耗模式下喚醒。處理中斷子程序,置低電量標(biāo)志位,蜂鳴器報警,內(nèi)部定時器開始定時。當(dāng)在一段時間內(nèi)電壓仍未恢復(fù),報警未被清除,則停止供水,直至電源電壓恢復(fù)。
4.4閥門控制電路
水表進水閥門的控制是智能水表中一個很重要,也很敏感的器件。因為如果閥門關(guān)閉不牢,將可能導(dǎo)致偷漏水等現(xiàn)象,給供水部門帶來損失。而為保證閥門的穩(wěn)定可靠,本設(shè)計所使用閥門為電動球閥。其工作電壓3.0V,工作電流約50mA。通過直流電機正反轉(zhuǎn)帶動半球閥轉(zhuǎn)動,進而控制供水閥門的開關(guān)。利用單片機的P3.0正、P3.1負(fù)驅(qū)動電機正轉(zhuǎn),P3.0負(fù)、P3.1正驅(qū)動電機反轉(zhuǎn),利用P1.5引腳檢測電機是否正轉(zhuǎn)到位;P1.6檢測檢測電機是否反轉(zhuǎn)到位。同時,為了防止電機轉(zhuǎn)動到位,而P1.5或P1.6未檢測到,而導(dǎo)致電機長期處于堵轉(zhuǎn)狀態(tài)而燒毀電機,本設(shè)計采用MSP430F413內(nèi)部ADC采樣電路檢測堵轉(zhuǎn)電流來控制電機運行或停轉(zhuǎn),以提供雙保險。正常情況下,電機正傳,控制閥門打開后,P1.5口能檢測到高電平中斷,則單片機控制電機停轉(zhuǎn)。電機反轉(zhuǎn),控制閥門關(guān)閉后,P1.6口能檢測到高電平中斷,單片機控制電機停轉(zhuǎn)。在電機啟動正反轉(zhuǎn)時,ADC采集電路工作,同時定時器打開并開始計時。當(dāng)定時器定時超過閾值,且ADC檢測值到電機堵轉(zhuǎn),則繼續(xù)等待20ms后關(guān)閉電機。關(guān)于ADC采集電路的檢測,當(dāng)電機未堵轉(zhuǎn),則ADC采集的值幾乎為零。當(dāng)電機堵轉(zhuǎn)時,ADC采集值將超過正常閾值,為保證電機可靠打開或關(guān)閉,在檢測到電機堵轉(zhuǎn)時,使電機再繼續(xù)轉(zhuǎn)動20ms后關(guān)閉電機。
4.5其他電路設(shè)計
其他電路包括液晶顯示設(shè)計、按鍵設(shè)計、防拆電路設(shè)計等。
液晶用于顯示當(dāng)前當(dāng)前時間、剩余水量、已用水量、購買添加水量歷史等信息。正常情況下,液晶不工作,用于保證系統(tǒng)的低功耗性能。只在有按鍵觸發(fā)時,才點亮屏幕并顯示相關(guān)信息。當(dāng)無操作一段時間后,單片機將再次關(guān)閉屏幕。
按鍵功能包括設(shè)置時間、報警清除、點亮屏幕等功能。當(dāng)單片機供電過低報警時,為保證緊急供水的需要,允許手動清除報警3次,手動清除報警后,每隔15分鐘會再次檢查供電。當(dāng)3次手動清除后供電電壓仍未恢復(fù),則強制關(guān)閉供水閥門。當(dāng)供電電量恢復(fù)時,清除計數(shù)。
防拆電路是為了保證在用于更換電池時,閥門電路一定是關(guān)閉的。防止出現(xiàn)水表不供電,不工作,但閥門一直打開的情況。
軟件設(shè)計邏輯上,中斷時置標(biāo)志位,采用主程序逐個掃描相關(guān)標(biāo)志位是否置位,置位則處理相關(guān)子程序處理并返回,繼續(xù)掃描標(biāo)志位。當(dāng)檢測次數(shù)超過規(guī)定次數(shù)時,進入芯片的低功耗模式。
只有中斷才可以將MSP430從低功耗LMP4下喚醒。當(dāng)有中斷產(chǎn)生時,初始化相關(guān)外設(shè)并循環(huán)掃描相關(guān)標(biāo)志位,處理相關(guān)信號或數(shù)據(jù)后再次進入低功耗狀態(tài)。其中,低電壓報警后,由于開啟內(nèi)部定時器,因此進入的是低功耗模式LPM3,以保證內(nèi)部定時器的運行。
程序主要實現(xiàn)了IC卡讀寫,液晶顯示,數(shù)據(jù)采集,低電量檢測、電機控制、定時等部分相關(guān)代碼,通過邏輯組合完成整個設(shè)計上的邏輯實現(xiàn)。
產(chǎn)品的低功耗是軟件和硬件結(jié)合的結(jié)果。硬件方面往往與微處理器選型、電源轉(zhuǎn)換芯片的特性、二極管和三極管的選型,其他電路的搭建等等有關(guān)。軟件方面則與代碼效率、使用芯片的低功耗等級、低功耗模式下IO口及外設(shè)模塊的處理有關(guān)。
本設(shè)計的功耗主要由四部分組成:一是單片機正常運行時的電量消耗;二是點亮液晶屏幕、蜂鳴器報警等的短時間電量電量消耗;三是電閥開啟或關(guān)閉時的瞬時電量消耗;四是硬件電路設(shè)計上的電量消耗,如電壓轉(zhuǎn)換電路、ADC采集電路等等;五是待機電量消耗。其中,前三部分占了總功耗的90%以上。
為實現(xiàn)本設(shè)計的低功耗要求,硬件上使用低功耗電動閥、IC器件。軟件上提高代碼效率、關(guān)閉不必要的外設(shè)始終、合理使用不同的芯片時鐘,減少芯片在正常運行和低功耗運行時的消耗。
任何設(shè)計都需要考慮其抗干擾能力和對周圍電磁環(huán)境的影響(即EMI)。本設(shè)計主要從硬件上提高其抗干擾能力和EMI性能,硬件上采用雙干簧管電路保證采集的準(zhǔn)確性、良好的地線設(shè)計等。
系統(tǒng)穩(wěn)定性上,則從軟件上入手。例如,只在中斷中置標(biāo)志位,相應(yīng)的子程序在主程序中執(zhí)行;在單片機退出低功耗模式時打開看門狗,防止軟件跑飛等措施。
本文探討了一種基于低功耗單片機在智能水表上可行性和相關(guān)方法、評估了其設(shè)計的低功耗性能。文中提出了總體的設(shè)計方案,并給出了硬件設(shè)計思路,同時說明了軟件的實現(xiàn)方法,對其抗干擾及低功耗性能也做了相應(yīng)評估。
[1]《MSP430x41x Mixed Signal Microcontroller》2008.12.11
[2]《MSP430F413 Device Erratasheet》2015.04.29