張 軍,陳慧麗
(鄭州科技學院 河南 鄭州 450064)
溫度測量是從金屬(物質)的熱脹冷縮開始,常用的檢測方法有電阻式、熱電偶式、PN結型、輻射型、光纖式及石英諧振型等。這些檢測方法都是基于溫度變化引起其物理參數(如電阻值,熱電勢等)變化的原理。隨著大規模集成電路工藝的提高,出現了多種集成的數字化溫度傳感器[1]。
這里提出一種基于MSP430單片機[2]的小型測溫系統設計方案,主控制器采用MSP430單片機,數字溫度傳感器DS18B20通過單總線(1-wire)與單片機連接,系統結構簡單,抗干擾能力強,適合于惡劣環境下測量現場溫度,可應用于倉庫測溫、樓宇空調控制和生產過程監控等領域。
該系統以單片機為數字溫度計的主控制器,以集成數字溫度傳感器為溫度信息采集單元,液晶顯示器及其驅動元件為顯示單元。系統的基本組成框圖如圖1所示。

圖1 系統的基本組成框圖Fig.1 Basic composition block diagram of system
系統的主控制器選用了TI公司的單片機MSP430F1121A,溫度傳感器選用了DALLAS公司數字式集成溫度傳感器DS18B20,采用2位共陰極LED數碼管以及2個CD4511譯碼器實現溫度顯示[3-4]。系統的整體設計電路如圖2所示。
MSP430F1121A具有獨特的超低功耗設計,具有5種低功耗模式,給低功耗儀表設計帶來了很大方便。MSP430F1121A型單片機為Flash型,可反復編程,且內部集成了A/D轉換器,特別為智能式儀表、電池供電便攜設備而設計。MSP430F1121A特性[5]如下:
1)高效16位RISC內核,16位精簡指令結構,27條指令,125 ns指令周期時間,絕大多數指令可在1個時鐘周期內完成;
2)1.8~3.6 V低電壓供電,有多種省電模式,功耗特別低,一顆電池可工作10年;

圖2 基于MSP430單片機的數字溫度計原理圖Fig.2 Schematic diagram of digital thermometer based on MSP430 MCU
3)同其他微控制器相比,帶Flash的微控制器可以將功耗降低5倍,既縮小了線路板空間又降低了系統成本;
4)6μs的快速啟動時間可延長待機時間并使啟動更加迅速,降低了電池的功耗;
5)內含12位快速ADC/Slope ADC,只需外接1個電阻、1個電容即可實現高精度斜率A/D轉換;
6)片內資源豐富,有 ADC,PWM,若干 TIME,串行口,看門狗,比較器,模擬信號,強大的中斷功能;
7)SP430系列產品可以提供多種存儲器選擇,從14位ADCs到LCD驅動電路的混合信號外設,簡化了各類應用中MSP430的設計;
8)ESD保護,抗干擾力特強。
為了直觀地顯示出數字系統的運行狀態以及工作數據,系統的顯示模塊中采用LG5011AH共陰極LED數碼管,CD4511作為顯示譯碼電路,由CD4511把輸進來的二進制信號翻譯成十進制數字,再由數碼管顯示出來,如圖3所示。

圖3 顯示系統Fig.3 Display system
圖3中的D、C、B、A為BCD碼輸入端,分別與主控制器MSP430F1121A相應的I/O端口連接,BI為消隱功能端,LT為燈測試端,LE為鎖存端。
單片機MSP430F1121A對DS18B20測量后的數據進行控制處理,以8421BCD碼的形式傳送至CD4511,CD4511把BCD碼轉換為十進制數碼送到數碼管中顯示。
單線數字溫度傳感器DS18B20可以把溫度信號直接轉換成數字信號,每片DS18B20含有唯一的64位序列號,測溫范圍是-55~+125℃,完全符合系統要求。
DS18B20數字溫度計提供9位溫度讀數,指示器件的溫度信息經過單線接口送入DS18B20或從DS18B20送出,和MCU之間只需一條線連接,讀寫和完成溫度變換所需的電源可以由數據線本身提供而無需外部電源。由于每個DS18B20有唯一的系列號(silicon serial number),因此,多個DS18B20可存在于同一條單線總線上,此特性可以應用于HVAC環境控制建筑物設備或機械內的溫度檢測以及過程監視和控制中的溫度檢測。
數字溫度傳感器DS18B20有如下特性:
1)獨特的單線接口只需1個接口引腳即可通信;
2)多點(multidrop)能力使分布式溫度檢測應用得以簡化;
3)測量范圍從-55~+125℃增量值為0.5℃;
4)以9位數字值方式讀出溫度;
5)在1 s(典型值)內把溫度變換為數字。
DS18B20采用3引腳PR-35封裝,其內部結構框圖如圖4所示。

圖4 DS18B20內部結構框圖Fig.4 Internal structure diagram of DS18B20
系統的程序主要包括主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序和顯示數據刷新子程序。
程序的主要功能是實時顯示溫度、讀出并處理DS18B20的測量溫度值,溫度測量每1 s進行一次。其程序流程如圖5所示。

圖5 DS18B20溫度計程序流程圖Fig.5 Program flow chart of DS18B20 thermometer
DS18B20采用單總線方式傳輸數據,對時序的要求比較嚴格。MSP430單片機的控制操作不同于51系列,它的I/O口有方向控制及輸入輸出寄存器,讀寫操作要分別控制。以DS18B20為例,給出在MSP430系列單片機語言編譯環境Work-bench下部分程序代碼。


DSl8B20工作過程中的協議如下:
1)初始化;
2)ROM 操作命令;
3)存儲器操作命令;
4)時序。
主機使用時間隙(time slots)讀寫 DSl820的數據位和寫命令字的位。
由于DS18B20采用單總線協議方式,即在1根數據線實現數據的雙向傳輸,而對MSP430F1121A單片機來說,硬件上并不支持單總線協議,因此,必須采用軟件方法模擬單總線的協議時序,完成對DS18B20的訪問。
DS18B20在1根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。
該協議定義了初始化時序、讀時序、寫時序。
從DS18B20讀取出的二進制值必須先轉換成十進制值,才能用于字符的顯示。因為DS18B20的轉換精度為9~12位可選的,為了提高精度采用12位。在采用12位轉換精度時,溫度寄存器里的值是以0.062 5為步進的,即溫度值為寄存器里的二進制值乘以0.062 5,就是實際的十進制溫度值。一個十進制值和二進制值之間有很明顯的關系,就是把二進制的高字節的低半字節和低字節的高半字節組成一個字節,這個字節的二進制值化為十進制值后,就是溫度值的小數部分。小數部分因為是半個字節,所以二進制值范圍是0~F,轉換成了十進制小數值就是0.062 5的倍數(0~15倍),這樣需要4位的數碼管來顯示小數部分,實際應用可以采用1位數碼管來顯示小數,可以精確到0.1℃。
硬件調試比較簡單,在系統設計的過程中,由于主控制器(MSP430F1121A單片機)部分是集成在利爾達單片機技術有限公司MSP430仿真器FET上的。因此主要是對DS18B20測溫模塊以及LED數字顯示模塊進行硬件檢測和調試。
本程序采用單片機MSP430的語言編寫,用IAR System公司開發的IAR Embedded Workbench for MSP430 Kickstart編譯器編程調試。進入IAR Embedded Workbench集成環境,然后在該環境下建立一個項目,進入源程序編輯界面。在這里進行源程序的編輯,編譯結束后,源文件編譯通過之后,將生成目標代碼。最后進入CSPY調試環境,如圖6所示。

圖6 CSPY工作界面Fig.6 Working interface of CSPY
在CSPY環境中,分別進行主程序、讀出溫度子程序、溫度轉換命令子程序、計算溫度子程序、顯示數據刷新等子程序的編程及調試,通過觀察寄存器的窗口來判斷從DS18B20數字溫度計讀取的數據是否準確。由于該數字溫度測試儀的時序要求比較嚴,把握讀寫時隙才能準確地測量出溫度數值。因此在CSPY工作環境下,通過觀察程序運行的結果來斷定程序的正確以及準確度。在出現錯誤時返回IAR Embedded Workbench工作界面,重新對程序進行編寫和修改。
通過硬件和軟件的調試后,連接各個模塊。由于主控制器模塊采用MSP430仿真調試器FET,其集成有MSP430F1121A單片機以及與其相關的外圍模塊,通過計算機串口連接并由計算機的串口供電(實際工作電壓為2.5 V),進入相關的調試控制程序后對單片機進行管理和操作。
溫度測量以及顯示模塊焊接在同一塊電路板上,由直流穩壓電源提供3 V的電壓。通過數據線將3個主要模塊連接,DS18B20數字溫度計的數據端與MSP430F1121A單片機的數據端連接。為了保證溫度數據的正常讀取,必須將二者的接地端短接,以保證其電勢相等。接通電源后,由計算機進入MSP430調試環境,運行程序,這時LED數碼管開始顯示“00”(程序的開始復位信號),然后顯示由DS18B20檢測的溫度數值。整體的調試過程必須一直調試到能正常的顯示溫度值,而且在有溫度變化時顯示溫度能改變就基本完成。
在基于MSP430單片機的溫度測試儀的設計中,在低功耗設計方面,首先是選擇低功耗元件,從單片機、傳感器和LED顯示器及其驅動電路,都盡量選擇市場上功耗最低的產品;其次在硬件電路設計方面,降低系統工作電壓;再次,是軟件設計融入低功耗思想,核心的方法就是在最短的時間內把需要的工作完成,然后立即進入休息狀態,不論在工作還是休息狀態,立即關閉不必要的模塊,以最大限度地降低功耗,例如,采樣間歇狀態時,關閉單片機內部除看門狗定時器之外的所有模塊,切斷傳感器和放大器的供電,將外部存儲器置于休眠狀態,只有顯示器處于活動狀態,最大限度地降低了功耗。這些低功耗的措施起到了良好的效果,成功地控制了MSP430單片機的溫度測試儀的功耗,使用MSP430為核心構成的便攜式系統,MSP430單片機的溫度測試儀電池的使用壽命可以比基于一般CPU的系統延長3~5倍。在降低成本的措施方面,滿足性能的前提下,盡量選擇低成本元件,顯示部分采用了CD4511進行驅動顯示,溫度測量采用DS18B20數字溫度傳感器,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,在一根通信線上可以掛多個數字溫度測試儀,十分方便。相比其他的溫度傳感器,該系統設計具有結構簡單、分辨率高、可調節的特點,且無需硬件同步時鐘控制。
[1]羅文廣,蘭紅莉,陸子杰.基于單總線的多點溫度測量技術[M].北京:機械電子工業出版社,2002.
[2]Texas Instruments.MSP430xlxx family user's guide[EB/OL].(2010-01-10)[2010-04-22].http://focus.ti.com.cn/cn/lit/ug/slau056j/slau056j.pdf.
[3]李五坡,董海霞.LED數碼顯示器及接口技術[J].商丘職業技術學院學報,2005(2):55-57.LI Wu-po,DONG Hai-xia.LED digital code display and interface technology [J].Journal of Shangqiu Vocational Technical College,2005(2):55-57.
[4]徐太忠,鄒高平.便攜式電子系統的低功耗設計[J].單片機與嵌入式系統應用,2001(8):11-13.XU Tai-zhong,ZOU Gao-ping.Low power design of portable electronic system[J].Application of MCU and Embedded System,2001(8):11-13.
[5]胡大可.MSP430系列超低功耗16位單片機原理與應用[M].北京:北京航空航天大學出版社,2000.
[6]張廣明,司棟森.一種新型單總線數字溫度傳感器的特性與應用[J].計算機測量與控制,2003(11):318-320.ZHANG Guang-ming,SI Dong-sen.Characteristics and application of a new 1 -Wire digital temperature sensor[J].Computer Measurement and Control,2003(11):318-320.
[7]沙占友.智能化集成溫度傳感器原理與應用[M].北京:機械工業出版社,2002.