國建嶺
(太原科技大學 電子信息工程學院,太原030024)
在工農業生產中,經常要對實時溫度進行檢測。在溫度數據的采集領域,傳統的方式主要是在多點放置溫度測量儀器或者是放置溫度計,進行人工讀取實際數值。這樣不僅操作維護不方便,而且還浪費大量的人力物力去采集溫度。另外,在一些惡劣的工業現場,以人工方式直接去讀取測量儀器的溫度也不現實。本文提出了一種基于單片機技術和集成溫度傳感器DS 18 B 20的多路溫度測試儀,該系統可以方便地實現多路溫度數據的遠程實時采集。并且該系統可以與上位機實現通信,以便數據報表的生成與打印,提供良好的人機界面。該系統具有抗干擾性強、測量精度高等優點。
系統以高性能、低功耗單片機 MSP430F1232為核心控制器,集成多路溫度傳感器DS18B20、數據存儲器、LCD液晶顯示模塊、RS232以及電源模塊。單片機負責接收來自溫度傳感器的實時溫度數據,將需要顯示的溫度數據傳輸到LCD顯示模塊進行顯示,同時對采集到的溫度數據進行存儲,并且還可以通過RS232接口將采集到的溫度數據傳輸給上位機;溫度傳感器DS18B20采集現場溫度,并將數據通過數據線輸出到單片機;LCD液晶顯示模塊用來顯示需要顯示的數據。系統可以通過鍵盤設置溫度報警預定值,如果采集到的溫度達到預先設定的溫度值時,單片機啟動報警程序進行報警。電源模塊采用LM2574降壓型DC-DC電源變換器。系統的結構框圖如圖1所示。

圖1 系統結構框圖
硬件電路的設計以MSP 430 F 1232為核心控制器[1],P 1口和 P 3口控制顯示電路(12864);P 2口的(P 2.2、P 2.3、P 2.4、P 2.5)分別外接8路溫度傳感器,構成多路溫度采集系統,負責溫度數據的采集;通用串口 UATR0(P 3.4、P 3.5)外接 RS232與上位機進行數據通信;P 3.6、P 3.7模擬串行通信接口與存儲器進行數據傳輸;LM 2574為系統提供3.3 V的工作電壓。通過按鍵K 1、K 2可以預先設定各溫度采集點的報警溫度值。系統硬件電路圖如圖2所示。
MCU采用德州儀器(TI)的MSP 430 F 1232單片機,此單片機是一種超低功耗微控器,采用16位的體系結構,16位的CPU集成寄存器和常數發生器,實現了最大化的代碼效率。包括1個內置16位的定時器、一個快速12位A/D轉換器,一個通用串行同步異步通訊接口和22個I/O端口。它的主要特性:低電源電壓輸入范圍,DC 1.8~3.6 V;超低功耗,2.5 u A @4 k Hz,2.2 V;具有5種節電模式;喚醒時間小于6 us;12位200 Ksps的A/D轉換器,自帶采樣保持;一路串行通訊接口可用于異步通信模式或者同步通信模式;2個8位并行端口,1個6位并行端口;片內包含8 KB FLASH ROM和256 RAM;1個通用的16位定時器,并具有片內溫度傳感器。
單片機是整個系統的核心控制器,負責溫度數據的采集、存儲、控制液晶模塊內容的顯示、與上位機通訊等。

圖2 系統硬件電路圖
DS18B20是美國DALLAS公司生產的單總線數字溫度傳感器芯片,采用3引腳T 0-92小體積封裝;它的測溫范圍為-55~+125℃,具有9~12位A/D轉換精度,最小溫度分辨率可達0.062 5℃,以16位補碼方式串行輸出所測量的環境溫度;DS18B20的工作電源既可由遠端引入,也可采用寄生電源方式;多個DS18B20可以并聯到2或3根線上,此時CPU只需用一根端口線就可以實現與多個DS18B20傳感器的通信,這樣占用微處理器的端口也比較少,可廣泛用于多路溫度檢測與控制中[2]。
DS18B20中的溫度傳感器可以實現對環境中溫度的測量,當溫度轉換指令出現后,轉換后的環境溫度以補碼的形式存放在高速暫存存儲器的第0個和第1個字節中。下面以l2位轉化為例具體說明:用16位擴展的二進制補碼形式提供,以0.062 5℃/LSB的形式表示,其中S為符號位。表XX是12位轉化后所得到的12位數據,高字節的前面5位為符號位,如果測得的溫度大于0,這5位為0,此時只要將數據乘以0.062 5便可以得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘以0.062 5即可得到實際溫度[3]。
例如,+125℃的數字輸出為07D0H;25.062 5℃的數字輸出位0191 H;-55℃的數字輸出為FC90 H。
DS18B20與單片機的接口電路。DS18B20常采用內部寄生電源和外部電源供電兩種方式供電,在連接方式上可分為單片連接和多片連接。前者形成單點測溫系統,后者構成多點測溫系統[4]。本次設計中DS 18 B 20與單片機連接方式為外部電源供電方式:P 2口的(P 2.2、P 2.3、P 2.4、P 2.5)分別外接8路DQ 18 B 20溫度測試器,組成32路溫度測試系統;VCC接3.3 V電源供電。外部電源供電的優點是電源穩定、抗干擾性強、操作方便。
為方便溫度信息的顯示,直觀地了解各溫度測試點的具體溫度,以及溫度測試點的報警狀況,本多路溫度測試儀在設計時集成了帶中文字庫的液晶顯示模塊。
液晶顯示模塊采用清達光電公司的HG1286412,它具有8位并行和2線串行接口方式,可以通過設置液晶模塊的PSB管腳的電平高低來控制液晶模塊工作并行或者串行模式,在多路溫度測試儀中采用單片機的P1口并行數據傳輸方式與液晶顯示模塊相連。它內置ST 7920漢字字庫,可以提供8 192個16×16點的中文漢字和128個16×8點ASCII字符。每屏可顯示4行8列共32個16×16點陣的漢字和64個16×8的ASCII字符。只需要向液晶模塊寫入相應的讀寫命令和數據就可以將需要顯示的內容在液晶模塊上顯示出來。液晶模塊可以根據不同的輸入命令分別在液晶屏上顯示中文、ASCII碼字庫或者自己定義的內容。該液晶顯示模塊工作電壓為DC 3.3 V,具有接口方式靈活,控制操作指令簡單、方便等特點。
HG12864的數據輸入輸出端口(DB0~DB7)與單片機的并行端口P1相連接;RS引腳為指令/數據選擇信號端口,RS為高電平時單片機向LCD寫入數據,RS為低電平時單片機向LCD寫入指令;R/W引腳為LCD的讀寫選擇信號端口,R/W高電平時單片機讀出LCD端口數據,R/W低電平時單片機向LCD端口寫入數據;E引腳為LCD模塊的使能信號,高電平有效;分別通過單片機的P3.2、P3.1、P3.0引腳進行控制。LCD模塊與單片機的電路連線圖如圖3所示。

圖3 LCD模塊與MSP430F1232的連接原理圖
系統采用LM2574高性能電壓變換器提供工作電壓。LM2574技術參數如下:具有寬電壓輸入范圍(DC7 V~DC40 V);該芯片可以輸出固定電壓或者可調電壓;最大輸出電流為0.5 A;外圍電路簡單,只需外接4個電子元器件;內置固定頻率(52 KHz)振蕩器;轉換效率高;具有過熱及過負載保護功能。
為方便系統維護與升級,系統軟件設計采用模塊化程序結構,主要由主程序、溫度采集定時器程序、數據顯示程序、溫度設定程序、數據存儲程序以及通信程序等組成。
主程序在完成系統初始化后,進入上位機通信查詢、顯示子程序以及數據存儲程序循環,同時等待定時器中斷的發生,溫度采集采用定時中斷方式來實現。主程序流程圖如圖4(a)所示。
單片機與DS18B20之間由單總線連接,空閑時單總線狀態為高電平,傳感器處于既可以寫入又可以讀取數據的狀態。對DS18B20的操作主要包括2類:讀取數據與寫入數據,以ROM操作命令或存儲操作命令的形式出現。常用的命令組成:[F0H]識別總線上的所有傳感器;[33H]讀單個傳感器的序列號;[55H]定位某個傳感器;[CCH]跳過ROM操作;[4EH]寫存儲器;[BEH]讀存儲器;[44H]完成溫度轉換。
溫度采集中斷程序通過定時器中斷來實現,當定時器達到預定值時產生中斷,系統便進入溫度采集程序。進入溫度采集程序后,系統將對需要采集的溫度采集點進行選擇,相應的溫度傳感器對單片機的請求做出響應,當溫度傳感器完成溫度采集后,單片機對采集完成的數據讀取。單片機對讀取的數據進行相應的轉換后得到溫度數值,并且將溫度數值進行存儲。溫度采集中斷程序流程圖如圖4(b)所示。

圖4 程序流程圖
單片機技術和集成溫度傳感器設計的多路溫度測試儀,具有成本低、精度高、響應速度快等特點。系統硬件以及軟件均采用模塊化設計,易于升級與維護。經過實際運行,采集數據準確可靠,為多點溫度采集應用場合提供了一款全新的測試儀器。避免了以往人工記錄存在較大誤差的缺點,該系統具有良好的推廣價值和應用前景。
[1] 薛小鈴,劉志群,賈俊榮.單片機接口模塊應用與開發實例詳解[M].北京:北京航空航天出版社,2010.
[2] 明德剛.DS18B20在單片機溫控系統中的應用[J].貴州大學學報,2006,23(1):106-110.
[3] 金偉正.單線數字溫度傳感器的原理與應用[J].電子技術應用,2000(6):66-68.
[4] 沙占友.智能化集成溫度傳感器原理與應用[M].北京:機械工業出版社,2002.