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