概述 很多地方都需要測量溫度。在設計溫度遙測系統時,通常需要采用電池供電的極低功耗模塊。傳統的測溫手段比較多,但不論是采用分立晶體管、熱敏電阻,或者是熱電偶,功耗都降不下來。本文介紹了一種滿足低功耗要求的可行方案,該方案使用一枚極低功耗的、帶Flash存儲器的MCU,以及數字溫度傳感器、液晶模塊(LCD)和一個32kHz的鐘表用振蕩器。該方案的突出特點是節能耐用,僅需一枚紐扣電池,就可以連續工作10年以上。 工作原理 MCU擴展系統的電源是一枚CR-2032型紐扣式鋰電池,這種電池的容量為220mAh。要讓系統達到連續工作10年(87600小時)的要求,允許的最大負載電流可以用以下方法計算出來: 220mAh / 87,600小時 = 2.51 A 這個測溫系統不但要測量溫度,還要連續顯示測量結果。當系統處于單步模式時,TMP100溫度傳感器每完成一次測量,就會自動進入關斷模式,此時的典型功耗為0.1 A;系統處于節能低功率模式(LPM3)時,晶振、LCD驅動器和16位定時器繼續工作,此時MSP430的典型功耗為0.9 A;3位半LCD的典型功耗為1 A。 系統每個工作周期的耗電情況如圖2所示,溫度傳感器、MCU和LCD的總功耗平均值為2.45 A。為了盡可能延長電池的使用壽命,在工作周期內的絕大多數時間,系統都處于等待模式。 硬件設計說明 電池加上一只0.1 F的去耦電容,構成了這個系統的電源。MCU的復位端連接一只68k的上拉電阻,時鐘脈沖(ACLK)取自32.768KHz的鐘表用晶體。在I2C總線的SCL(時鐘)和SDA(數據)上,分別連接一只10K的上拉電阻。 工作原理 MCU同溫度傳感器之間通過I2C總線連接。I2C總線占用2條MCU輸入輸出口線,二者之間的通信完全依靠軟件完成。溫度傳感器的地址可以通過2根地址引腳設定,這使得一根I2C總線上可以同時連接8個這樣的傳感器。本方案中,傳感器的7位地址已經設定為1001000。MCU需要訪問傳感器時,先要發出一個8位的寄存器指針,然后再發出傳感器的地址(7位地址,低位是WR信號)。傳感器中有3個寄存器可供MCU使用,8位寄存器指針就是用來確定MCU究竟要使用哪個寄存器的。本方案中,主程序會不斷更新傳感器的配置寄存器,這會使傳感器工作于單步模式,每更新一次就會測量一次溫度。 要讀取傳感器測量值寄存器的內容,MCU必須首先發送傳感器地址和寄存器指針。MCU發出一個啟動信號,接著發出傳感器地址,然后將RD/WR管腳設為高電平,就可以讀取測量值寄存器。 為了讀出傳感器測量值寄存器中的16位數據,MCU必須與傳感器進行兩次8位數據通信。當傳感器上電工作時,默認的測量精度為9位,分辨力為0.5 C/LSB(量程為-128.5 C至128.5 C)。本方案采用默認測量精度,根據需要,可以重新設置傳感器,將測量精度提高到12位。如果只要求作一般的溫度指示,比如自動調溫器,那么分辨力達到1 C就可以滿足要求了。這種情況下,傳感器的低8位數據可以忽略,只用高8位數據就可以達到分辨力1 C的設計要求。由于讀取寄存器時是按先高8位后低8位的順序,所以低8位數據既可以讀,也可以不讀。只讀取高8位數據的好處有二,第一是可以縮短MCU和傳感器的工作時間,降低功耗;第二是不影響分辨力指標。 MCU讀取傳感器的測量值后,接下來就要進行換算并將結果顯示在LCD上。整個處理過程包括:判斷顯示結果的正負號,進行二進制碼到BCD碼的轉換,將數據傳到LCD的相關寄存器中。 數據處理完畢并顯示結果之后,MCU會向傳感器發出一個單步指令。單步指令會讓傳感器啟動一次溫度測試,然后自動進入等待模式,直到模數轉換完畢。MCU發出單步指令后,就進入LPM3模式,這時MCU系統時鐘繼續工作,產生定時中斷喚醒CPU。定時的長短可以通過編程調整,以便適應具體應用的需要。 功能擴充 實現上文所述方案的程序代碼只有400字節左右,而MCU的Flash程序存儲器有8k之多。此外,雖然MCU有256字節的RAM,但是本程序一個字節都不必用。這256字節的RAM以及那些未用的在系統可編程(ISP)Flash存儲器可以用來記錄歷史數據。另外,MCU還剩余22根輸入輸出口線、一個雙端電壓比較器和一個完整的三通道16位定時器Timer A,這些空閑的資源可以用來實現其他一些常用的功能,例如鍵盤、合成鈴聲、模數轉換、電池電量檢測以及串行通信功能。由于系統時鐘使用的是32kHz的鐘表晶體,所以可以利用定時器中斷實現時鐘功能(RTC)。 由于溫度傳感器和MCU之間采用了I2C總線,所以,可以依靠分配不同的地址連接更多的傳感器。以3位地址的TMP100傳感器為例,總線上最多可以同時連接8枚傳感器。 小結 本文介紹了一種極低功耗測溫裝置的軟硬件設計方案,方案采用了MCU、傳感器和LCD顯示屏,具有功能完善、節能耐用、結構簡單、外形小巧、價格低廉等優點。按照該方案制作的測溫裝置不但可以達到測量要求,而且可以在使用一枚3V電池供電的情況下,連續工作10年以上而不必更換電池。 |