基于MSP430單片機和DS18B20的數(shù)字溫度計
溫度測量是從金屬(物質(zhì))的熱脹冷縮開始,常用的檢測方法有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。這些檢測方法都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。
這里提出一種基于MSP430單片機翻的小型測溫系統(tǒng)設(shè)計方案,主控制器采用MSP430單片機,數(shù)字溫度傳感器DS18B20通過單總線(1-wire)與單片機連接,系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下澍量現(xiàn)場溫度,可應(yīng)用于倉庫測溫、樓宇空調(diào)控制和生產(chǎn)過程監(jiān)控等領(lǐng)域。
1 數(shù)字式溫度計的總體設(shè)計
該系統(tǒng)以單片機為數(shù)字溫度計的主控制器,以集成數(shù)字溫度傳感器為溫度信息采集單元,液晶顯示器及其驅(qū)動元件為顯示單元。系統(tǒng)的基本組成框圖如圖1所示。
2 硬件組成
系統(tǒng)的主控制器選用了TI公司的單片機MSP430F1121A,沮度傳感器選用了DALLAS公司數(shù)字式集成溫度傳感器DS18B20,采用2位共陰極LED數(shù)碼管以及2個CD4511譯碼器實現(xiàn)溫度顯示。系統(tǒng)的整體設(shè)計電路如圖2所示。
2.1 主控制器
MSP430F1121A具有獨特的超低功耗設(shè)計,具有5種低功耗模式,給低功耗儀表設(shè)計帶來了很大方便。MSP430F1121A型單片機為Flash型,可反復(fù)編程,且內(nèi)部集成了A/D轉(zhuǎn)換器,特別為智能式儀表、電池供電便攜設(shè)備而設(shè)計。MSP430F1121A特性如下:
1)高效16位RISC內(nèi)核,16位精簡指令結(jié)構(gòu),27條指令,125 ns指令周期時間,絕大多數(shù)指令可在1個時鐘周期內(nèi)完成;
2)1.8~3.6 V低電壓供電,有多種省電模式,功耗特別低,一顆電池可工作10年;
3)同其他微控制器相比,帶Flash的微控制器可以將功耗降低5倍,既縮小了線路板空間又降低了系統(tǒng)成本;
4)6 μs的快速啟動時間可延長待機時間并使啟動更加迅速,降低了電池的功耗;
5)內(nèi)含12位快速ADC/Slope ADC,只需外接1個電阻、1個電容即可實現(xiàn)高精度斜率A/D轉(zhuǎn)換;
6)片內(nèi)資源豐富,有ADC,PWM,若干TIME,串行口,看門狗,比較器,模擬信號,強大的中斷功能;
7)SP430系列產(chǎn)品可以提供多種存儲器選擇,從14位ADCs到LCD驅(qū)動電路的混合信號外設(shè),簡化了各類應(yīng)用中MSP430的設(shè)計;
8)ESD保護,抗干擾力特強。
2.2 譯碼驅(qū)動及顯示單元電路
為了直觀地顯示出數(shù)字系統(tǒng)的運行狀態(tài)以及工作數(shù)據(jù),系統(tǒng)的顯示模塊中采用LG5011AH共陰極LED數(shù)碼管,CD4511作為顯示譯碼電路,由CD4511把輸進來的二進制信號翻譯成十進制數(shù)字,再由數(shù)碼管顯示出來,如圖3所示。
圖3中的D、C、B、A為BCD碼輸入端,分別與主控制器MSP430F1121A相應(yīng)的I/O端口連接,為消隱功能端,為燈測試端,LE為鎖存端。
單片機MSP430F1121A對DS18B20測量后的數(shù)據(jù)進行控制處理,以8421BCD碼的形式傳送至CD4511,CD4511把BCD碼轉(zhuǎn)換為十進制數(shù)碼送到數(shù)碼管中顯示。
2.3 溫度傳感器
單線數(shù)字溫度傳感器DS18B20可以把溫度信號直接轉(zhuǎn)換成數(shù)字信號,每片DS18B20含有唯一的64位序列號,測溫范圍是-55~+125℃,完全符合系統(tǒng)要求。
DS18B20數(shù)字溫度計提供9位溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,和MCU之間只需一條線連接,讀寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供而無需外部電源。由于每個DS18B20有唯一的系列號(silicon serial number),因此,多個DS18B20可存在于同一條單線總線上,此特性可以應(yīng)用于HVAC環(huán)境控制建筑物設(shè)備或機械內(nèi)的溫度檢測以及過程監(jiān)視和控制中的溫度檢測。
數(shù)字溫度傳感器DS18B20有如下特性:
1)獨特的單線接口只需1個接口引腳即可通信;
2)多點(muhidrop)能力使分布式溫度檢測應(yīng)用得以簡化;
3)測量范圍從-55~+125℃增量值為0.5℃;
4)以9位數(shù)字值方式讀出溫度;
5)在1 s(典型值)內(nèi)把溫度變換為數(shù)字。
DS18B20采用3引腳PR-35封裝,其內(nèi)部結(jié)構(gòu)框圖如圖4所示。
3 系統(tǒng)軟件設(shè)計
3.1 系統(tǒng)程序
系統(tǒng)的程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和顯示數(shù)據(jù)刷新子程序。
程序的主要功能是實時顯示溫度、讀出并處理DS18B20的測量溫度值,溫度測量每1 s進行一次。其程序流程如圖5所示。
DS18B20采用單總線方式傳輸數(shù)據(jù),對時序的要求比較嚴格。MSP430單片機的控制操作不同于51系列,它的I/O口有方向控制及輸入輸出寄存器,讀寫操作要分別控制。以DS18B20為例,給出在MSP430系列單片機語言編譯環(huán)境Work-bench下部分程序代碼。
3.2 DS1SB20與單片機之間的通信命令和時序
DS18B20工作過程中的協(xié)議如下:
1)初始化;
2)ROM操作命令;
3)存儲器操作命令;
4)時序。
主機使用時間隙(time slots)讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。
由于DS18B20采用單總線協(xié)議方式,即在1根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對MSP430F1121A單片機來說,硬件上并不支持單總線協(xié)議,因此,必須采用軟件方法模擬單總線的協(xié)議時序,完成對DS18B20的訪問。
DS18B20在1根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。
該協(xié)議定義了初始化時序、讀時序、寫時序。
3.3 溫度數(shù)據(jù)的計算處理方法
從DS18B20讀取出的二進制值必須先轉(zhuǎn)換成十進制值,才能用于字符的顯示。因為DS18B20的轉(zhuǎn)換精度為9~12位可選的,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器里的值是以0.062 5為步進的,即溫度值為寄存器里的二進制值乘以0.062 5,就是實際的十進制溫度值。一個十進制值和二進制值之間有很明顯的關(guān)系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個字節(jié),這個字節(jié)的二進制值化為十進制值后,就是溫度值的小數(shù)部分。小數(shù)部分因為是半個字節(jié),所以二進制值范圍是0~F,轉(zhuǎn)換成了十進制小數(shù)值就是0.062 5的倍數(shù)(0~15倍),這樣需要4位的數(shù)碼管來顯示小數(shù)部分,實際應(yīng)用可以采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1℃。
4 系統(tǒng)調(diào)試
4.1 硬件檢測和調(diào)試
硬件調(diào)試比較簡單,在系統(tǒng)設(shè)計的過程中,由于主控制器(MSP430F1121A單片機)部分是集成在利爾達單片機技術(shù)有限公司MSP430仿真器FET上的。因此主要是對DS18B20測溫模塊以及LED數(shù)字顯示模塊進行硬件檢測和調(diào)試。
4.2 軟件調(diào)試
本程序采用單片機MSP430的語言編寫,用IAR system公司開發(fā)的IAR Embedded Workbench for MSP430 Kickstart編譯器編程調(diào)試。進入IAR Embedded Workbench集成環(huán)境,然后在該環(huán)境下建立一個項目,進入源程序編輯界面。在這里進行源程序的編輯,編譯結(jié)束后,源文件編譯通過之后,將生成目標(biāo)代碼。最后進入CSFY調(diào)試環(huán)境,如圖6所示。
在CSPY環(huán)境中,分別進行主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序、顯示數(shù)據(jù)刷新等子程序的編程及調(diào)試,通過觀察寄存器的窗口來判斷從DS18B20數(shù)字溫度計讀取的效據(jù)是否準(zhǔn)確。由于該數(shù)字溫度測試儀的時序要求比較嚴,把握讀寫時隙才能準(zhǔn)確地測量出溫度數(shù)值。因此在CSPY工作環(huán)境下,通過觀察程序運行的結(jié)果來斷定程序的正確以及準(zhǔn)確度。在出現(xiàn)錯誤時返回IAR Embedded Workb-ench工作界面,重新對程序進行編寫和修改。
4.3 整體調(diào)試
通過硬件和軟件的調(diào)試后,連接各個模塊。由于主控制器模塊采用MSP430仿真調(diào)試器FET,其集成有MSP430F1121A單片機以及與其相關(guān)的外圍模塊,通過計算機串口連接并由計算機的串口供電(實際工作電壓為2.5 V),進入相關(guān)的調(diào)試控制程序后對單片機進行管理和操作。
溫度測量以及顯示模塊焊接在同一塊電路板上,由直流穩(wěn)壓電源提供3 V的電壓。通過數(shù)據(jù)線將3個主要模塊連接,DS18B20數(shù)字溫度計的數(shù)據(jù)端與MSP430F1121A單片機的散據(jù)端連接。為了保證溫度數(shù)據(jù)的正常讀取,必須將二者的接地端短接,以保證其電勢相等。接通電源后,由計算機進入MSP430調(diào)試環(huán)境,運行程序,這時LED數(shù)碼管開始顯示“00”(程序的開始復(fù)位信號),然后顯示由DS18B20檢測的溫度數(shù)值。整體的調(diào)試過程必須一直調(diào)試到能正常的顯示溫度值,而且在有溫度變化時顯示溫度能改變就基本完成。
5 結(jié)論
在基于MSP430單片機的溫度測試儀的設(shè)計中。在低功耗設(shè)計方面,首先是選擇低功耗元件,從單片機、傳感器和LED顯示器及其驅(qū)動電路,都盡量選擇市場上功耗最低的產(chǎn)品;其次在硬件電路設(shè)計方面,降低系統(tǒng)工作電壓;再次,是軟件設(shè)計融入低功耗思想,核心的方法就是在最短的時間內(nèi)把需要的工作完成,然后立即進入休息狀態(tài),不論在工作還是休息狀態(tài),立即關(guān)閉不必要的模塊,以最大限度地降低功耗,例如,采樣間歇狀態(tài)時,關(guān)閉單片機內(nèi)部除看門狗定時器之外的所有模塊,切斷傳感器和放大器的供電,將外部存儲器置于休眠狀態(tài),只有顯示器處于活動狀態(tài),最大限度地降低了功耗。這些低功耗的措施起到了良好的效果,成功地控制了MSP430單片機的溫度測試儀的功耗,使用MSP430為核心構(gòu)成的便攜式系統(tǒng),MSP430單片機的溫度測試儀電池的使用壽命可以比基于一般CPU的系統(tǒng)延長3~5倍。在降低成本的措施方面,滿足性能的前提下,盡量選擇低成本元件,顯示部分采用了CD4511進行驅(qū)動顯示,溫度測量采用DS18B20數(shù)字溫度傳感器,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),在一根通信線上可以掛多個數(shù)字溫度測試儀,十分方便。相比其他的溫度傳感器,該系統(tǒng)設(shè)計具有結(jié)構(gòu)簡單、分辨率高、可調(diào)節(jié)的特點,且無需硬件同步時鐘控制。