基于MSP430的新型自報式水文遙測終端機設(shè)計
水文遙測系統(tǒng)通常由終端機、中繼站和中心站三部分組成。由于終端機是用來直接測量雨量、水位等水文數(shù)據(jù),是整個遙測系統(tǒng)信息的來源,故其設(shè)計成為整個遙測系統(tǒng)的關(guān)鍵。遙測終端機一般處于河流上游或者湖泊邊緣,分布分散,維護起來很不方便,需要長期工作在無人值守的環(huán)境中,并且往往無交流電源提供,需要靠太陽能浮充和免維護蓄電池供電,因此在終端機的設(shè)計過程中低功耗和高可靠性尤為重要。
現(xiàn)有的遙測終端機通常采用MCS51微控制器作為控制芯片并配以較多的模擬電路和邏輯門電路,其設(shè)計復(fù)雜,功耗和可靠性難以得到保證,所以很有必要利用新型的性能更高的器件來對終端機重新設(shè)計。TI公司的MSP430系列集成了大量的外圍部件,是低工作電壓、超低功耗、高性能的微控制器,在電池供電的便攜式設(shè)備和儀器中有著廣泛的應(yīng)用。和MCS51等其他微控制器相比,MPS430具有很多優(yōu)勢:它能夠工作在1.8~3.6V的寬電壓范圍內(nèi);在1MHz時鐘、2.2V電壓的典型工作條件下,靜態(tài)電流僅為225μA;具有5種低功耗工作模式,在不同的模式下消耗電流為 0.1~340μA,用中斷方式將微控制器從低功耗模式喚醒至激活模式下,僅需要6μs。本文以MSP430F147作為控制芯片,同時結(jié)合其他外圍低功耗器件分別從硬件和軟件兩個方面介紹一種新型低功耗終端機的設(shè)計。
終端機工作原理
終端機采用自報工作方式,在雨量或水位數(shù)據(jù)沒有變化時處于低功耗的值守模式,此時CPU、主時鐘(MCLK)以及內(nèi)部數(shù)字振蕩器(DCO)均不工作,微控制器僅由低速輔助時鐘(ACLK)來驅(qū)動,系統(tǒng)功耗很低。當(dāng)水位或雨量變化一個單位或定時發(fā)送時,便會使微控制器立即進入激活模式,并且啟動FM發(fā)射機發(fā)送一次數(shù)據(jù),數(shù)據(jù)發(fā)送完后再轉(zhuǎn)入低功耗模式,直到下一次發(fā)送數(shù)據(jù)。終端機除具有雨量、水位、定時發(fā)送等基本功能外,為了便于維護,還具有強發(fā)和編程功能,各個功能的描述如下。
- 雨量發(fā)送
當(dāng)雨量計產(chǎn)生一個通斷信號時,由雨量傳感器輸出一個具有一定寬度的雨量脈沖信號,此信號作為外部中斷,喚醒處于低功耗模式的微控制器,在6μs內(nèi)微控制器轉(zhuǎn)入激活工作狀態(tài),并控制供電電路給處于掉電狀態(tài)的電路和FM發(fā)射機供電,使之上電工作。此時微控制器將檢測到的雨量信號進行累加和保存,并讀入測量站站址和電池狀態(tài),將以上數(shù)據(jù)裝幀后傳送給FM發(fā)射機,由FM發(fā)射機將數(shù)據(jù)發(fā)送給中繼站,發(fā)送完畢后控制相關(guān)電路掉電后轉(zhuǎn)入低功耗模式工作。
- 水位發(fā)送
與雨量發(fā)送的過程相似,水位發(fā)送只是當(dāng)微控制器檢測到水位脈沖信號后,從水位計上讀入此時的水位值,并與上次所讀入值相比較。若有變化則讀入測量站站址、電池狀態(tài)后發(fā)送數(shù)據(jù);若無變化則直接返回低功耗模式工作。
- 定時發(fā)送
微控制器由內(nèi)部定時中斷喚醒后,首先讀入編程開關(guān)狀態(tài),依據(jù)編程開關(guān)設(shè)置確定由EEPROM中讀入水位數(shù)據(jù)還是雨量數(shù)據(jù),然后再發(fā)送。
- 強發(fā)功能
按下強發(fā)鍵并持續(xù)0.5s將迫使終端機發(fā)送數(shù)據(jù),以此達到維護和檢查終端機的目的。
- 編程功能
通過外部DIP編程開關(guān),可以對終端機的站址、是否清除已有數(shù)據(jù)以及定時發(fā)送何種數(shù)據(jù)進行編程設(shè)置。由于外部EEPROM存儲器的擦寫次數(shù)有限,“清除”可使外部EEPROM內(nèi)的數(shù)據(jù)更換新地址,從而延長其使用壽命。同時還可以通過此開關(guān)設(shè)置定時發(fā)送水位數(shù)據(jù)還是雨量數(shù)據(jù),或者兩者一起發(fā)送,從而使終端機配置水位終端機、雨量終端機或者水文終端機。
硬件電路設(shè)計
由于硬件電路是主要的耗電部分,故在芯片選擇和電路設(shè)計過程中主要考慮低功耗的因素。終端機硬件電路如圖1所示,雨量、水位和電壓信息分別通過各自的傳感器接到微控制器的I/O口,微控制器對這些數(shù)據(jù)進行采集,然后進行相應(yīng)的處理。
圖1 終端機電路圖
- 控制單元
整個硬件電路的核心是MSP430F147微控制器,它控制各個單元協(xié)調(diào)工作,是整個電路主要的耗電部分,對它的功耗控制主要是系統(tǒng)交替工作于高速、低速兩種時鐘和通過軟件設(shè)置其不同工作模式來完成,這兩部分的設(shè)置和實現(xiàn)將在時鐘電路和軟件設(shè)計部分介紹。
- 電源管理電路
終端機由太陽能浮充的免維護蓄電池供電,該蓄電池除了給FM發(fā)射機提供+12V電源外,還給控制電路提供 +3V的電源,這就需要電壓轉(zhuǎn)換電路。Maxim公司的電源管理ICL7663的靜態(tài)工作電流只有10μA,輸入電壓范圍1.5~16V,輸出電壓范圍1.3~16V,由于它功耗極低,非常適合于電池供電的設(shè)備中,故采用ICL7663可以進一步降低終端機的功耗。輸出電壓可由式(1)得出。
(1)
式(1)中Vset的典型值為1.3V,R1、R2為偏置電阻,用來設(shè)置輸出電壓。圖1電路中中選擇R1=1MΩ、R2=1.3MΩ,經(jīng)式(1)計算可得輸出電壓Vout=3V。
輸出電流可以通過限流電阻Rcl來設(shè)置,由式(2)得出。
(2)
圖1電路中選擇Rcl=20Ω,經(jīng)計算輸出電流為35mA,滿足本設(shè)計的要求。
- 時鐘電路
在CMOS數(shù)字邏輯器件中,功耗與系統(tǒng)時鐘頻率f(clk)成正比,見式(3)。
(3)
式(3)中C是COMS的負(fù)載電容,V是電源電壓,E(sw)是跳變頻率。由式(3)可知在負(fù)載電容、電源電壓和跳變頻率基本不變的前提下,要實現(xiàn)低功耗就需要降低微控制器的工作頻率。MSP430F147的特色是具有兩個外部時鐘源,一個為低速的輔助時鐘(ACLK),另一個為高速的主時鐘(MCLK)。ACLK可以使用32.768Hz的手表晶振,它可以給系統(tǒng)提供穩(wěn)定的時間基準(zhǔn)并且降低微控制器的功耗,而MCLK可以使用4MHz的晶振,并可以配置成在需要系統(tǒng)全速工作時由中斷喚醒,從而高效執(zhí)行相應(yīng)的程序和高速處理數(shù)據(jù)。
- 外部存儲器和復(fù)位電路
這部分電路采用Xicor公司的X25045,該芯片將可編程看門狗、電壓監(jiān)控、EEPROM集于一體,具有體積小、占用I/O少等優(yōu)點,應(yīng)用于系統(tǒng)中可以簡化微控制器系統(tǒng)的設(shè)計。芯片采用SPI口與微控制器數(shù)據(jù)交換,通過片內(nèi)可選時間的看門狗定時器可以在微控制器程序跑飛或者死鎖時復(fù)位,這樣便提高了系統(tǒng)的可靠性。
軟件設(shè)計
在軟件方面,主要通過模式的選擇和片內(nèi)模塊的使用兩方面來降低功耗。
- MSP430F147的低功耗工作模式
MSP430F147共有5種低功耗工作模式(LPM0~LPM4)和一個激活模式(AM),任何低功耗的模式都可以由任何允許的中斷喚醒,從而回到激活模式,且轉(zhuǎn)換時間低于6μs。不同工作模式在1MHz時鐘下的典型功耗見表1。
表1 不同模式下典型電流值(μA)
MSP430F147的不同低功耗模式是通過配置狀態(tài)寄存器SR中CPUOFF、OSCOFF、SCG0、SCG1 4個模式控制位來實現(xiàn)的,這四位有效與否的不同組合可以達到控制微控制器時鐘系統(tǒng)的目的。根據(jù)終端機的低功耗設(shè)計要求,可以配置狀態(tài)寄存器SR使微控制器工作于LPM3模式。此時CPUOFF、OSCOFF、SCG0、SCG1 4個模式控制位的值分別為1、0、1、1。在該模式下,CPU、主時鐘(MCLK)和內(nèi)部數(shù)字振蕩器(DCO)均不工作,微控制器僅由輔助時鐘(ACLK)驅(qū)動,此時工作電流僅為2μA,功耗很低。處于該模式的微控制器可以由雨量、水位等外部中斷或者內(nèi)部定時中斷喚醒,喚醒后進入激活工作模式,此時被關(guān)閉的各部分電路將恢復(fù)正常工作。由此可以在終端機需要發(fā)送數(shù)據(jù)的時候激活微控制器,不發(fā)送的時候則使微控制器進入LPM3模式,這樣就大大降低了系統(tǒng)的功耗。
- 片內(nèi)模塊的考慮
MSP430F147集成了較多的模擬模塊,如ADC、Comparator A、SVS等。對于模擬模塊,工作頻率對供電電流幾乎沒有影響,而工作電壓卻有較大影響,故對于不使用的模塊應(yīng)該在程序初始化時將其關(guān)閉,從而通過軟件設(shè)置降低功耗。
- 軟件流程
終端機的軟件流程如圖2所示。整個程序采用查詢式結(jié)構(gòu),分為主程序和中斷程序。主程序包括端口、變量和內(nèi)部寄存器的初始化以及數(shù)據(jù)處理。中斷程序用于響應(yīng)事件并對相應(yīng)標(biāo)志置位,然后將參數(shù)返回給主程序處理。將微控制器從低功耗模式喚醒至激活模式共有兩類中斷:外部中斷和內(nèi)部中斷。由于雨量、水位、強發(fā)信號具有隨機性,故由微控制器的外部中斷響應(yīng)這三個事件。另外由片內(nèi)定時器產(chǎn)生內(nèi)部定時中斷,用于在無水位和雨量變化時定時發(fā)送數(shù)據(jù)。對于清除、站址等編程功能,則在主程序中通過對外部編程開關(guān)的讀取來完成。
圖2 軟件流程圖
評論