摘要:隨著現(xiàn)代化生產(chǎn)和科學研究的發(fā)展,人們對溫度過程控制的要求越來越高。文章介紹以單片機 P89C668為核心的智能溫度控制系統(tǒng)。它使用一線制數(shù)字溫度傳感器DS18B20采集溫度,與傳統(tǒng)測溫裝置相比,具有結(jié)構(gòu)簡單,測溫精度高、應(yīng)用面廣等特點。另外,系統(tǒng)還擴展了和上位計算機的串行通信,實現(xiàn)遠程監(jiān)控。整個系統(tǒng)不但成本低廉、而且使用和擴展方便,可廣泛應(yīng)用于人們?nèi)粘I睢⒐まr(nóng)業(yè)生產(chǎn)和科學研究領(lǐng)域,為廣泛深入應(yīng)用提供了借鑒。
關(guān)鍵詞:單片機;DS18B20;單總線;溫度控制;串行通信
中圖分類號:TP216文獻標識碼:A文章編號:1009-3044(2008)31-1011-03
The Principle and Application of Temperature Control System of 1-Wire Digital Sensor
XUE Feng1,2, WANG Hong-hai2
(1.The School of Electrical Science and Technology of Anhui University, Hefei 230039, China; 2. Department of Information and Communication Technology, Anhui Sanlian College, Hefei 230601, China)
Abstrsct: With the development of moden industry and science research, it is higher of the demand of temperature controlling. The article introduces the intellectual temperature control system based on single chip microcomputer of P89C668. It makes use of 1-Wire digital temperature sensor of DS18B20 to collect temperature. Compared withthe traditional measuring system, it features simple construction, accurate measuring and wide application. In addition, it develops serial communication of PC, achieves long-distance monitor and control. This system is low-cost and convenient to use. It can apply to people's daily life, scientific research andindustrial and agricultural production.
Key words: single chip microcomputer; DS18B20; 1-Wire bus; temperature; temperature control; serial communication
1 引言
隨著科學技術(shù)的不斷進步與發(fā)展,溫度控制在工業(yè)控制、電子測溫計、醫(yī)療儀器、家用電器等各種溫度控制系統(tǒng)中廣泛應(yīng)用。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式,從集成向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,其中以美國 DALLAS公司生產(chǎn)的DS18B20數(shù)字溫度傳感器為代表。DS18B20是一種單總線(1-Wrie)數(shù)字溫度傳感器,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微機處理,在一條總線上可掛接多個DS18B20芯片,微處理器只需1根端口線就能與諸多 DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。本文介紹以P89C668單片機為控制核心,由數(shù)字溫度傳感器DS18B20組成的測溫系統(tǒng)進行的溫度測量處理。
2 系統(tǒng)構(gòu)成
系統(tǒng)分為現(xiàn)場溫度數(shù)據(jù)采集和上位監(jiān)控計算機兩部分。圖1為系統(tǒng)的結(jié)構(gòu)圖。
下位機主要由單片機P89C668、采集溫度的溫度傳感器DS18B20、鍵盤、顯示電路、報警電路、RS232通信接口組成,單片機通過對采集到的溫度數(shù)據(jù)進行分析處理,并將數(shù)據(jù)上傳給上位機,下位機可以脫離上位計算機而獨立工作。系統(tǒng)中設(shè)計上位機的目的在于能夠更方便地遠離現(xiàn)場實現(xiàn)監(jiān)控、管理,上位機與下位機的數(shù)據(jù)傳送接口采用RS232接口。
2.1 DS18B20單總線數(shù)字溫度傳感器
DS18B20數(shù)字溫度傳感器是一種新型“一線器件”產(chǎn)品,它具有體積小、適用電壓寬、接口方便、傳輸距離遠等特點。主要性能特點有:①采用單總線專用技術(shù),微處理器僅需要1條端口線即可實現(xiàn)與DS18B20的雙向通信。②內(nèi)含寄生電源,電壓范圍:3.0~5.5V,支持外接電源。③測溫范圍:-55~125℃。通過編程可實現(xiàn)9-12位的數(shù)字讀數(shù)方式。④12位數(shù)字(測溫分辨率達 0.0625℃)轉(zhuǎn)換時間750ms(最大)。⑤用戶可自設(shè)定非易失性的報警上下限值。
DS18B20內(nèi)部框圖如圖2所示。ROM中的64位序列號是出廠前被光刻好的,可以看作是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。通過識別不同序列號標志,可以實現(xiàn)1根總線上掛接多個DS18B20的目的。
其溫度靈敏元件可完成對溫度的測量,測到的溫度以16位帶符號擴展的二進制補碼形式,存儲在高速暫存存儲器的第0、1字節(jié)。第2個字節(jié)和第3個字節(jié)存放用戶設(shè)定的溫度上下限值(TH和TL)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH,TL做比較,若T>TH或 T<TL,則將該器件內(nèi)的告警標志置位,并對主機發(fā)出的告警搜索命令做出響應(yīng)。
3系統(tǒng)硬件電路設(shè)計
本溫度控制系統(tǒng)選擇菲利浦公司生產(chǎn)的P89C668單片機為控制核心,P89C668具有64K可編程的非易失性FLASH程序存儲器和8K數(shù)據(jù)存儲器,存貯容量大,不需外接存儲器,為單片機控制顯示驅(qū)動電路預(yù)留了大量的I/O口,方便電路進一步的擴展。此外,P89C668可選擇1個機器周期由6個時鐘周期組成的工作方式,運行速度就可比傳統(tǒng)80C51提高一倍。
3.1 系統(tǒng)主電路設(shè)計
系統(tǒng)主要由三部分組成:DS18B20與單片機接口電路、顯示電路、輸出控制電路。硬件結(jié)構(gòu)如圖3所示。
3.1.1 DS18B20與單片機接口電路
DS18B20與單片機P89C668連接非常簡單,只需將DS18B20信號線與單片機一位I/O線相連,且一位I/O線可連接多個DS18B20,以實現(xiàn)單點或多點溫度測量。溫度傳感器 DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號的數(shù)字信號,輸出腳 DQ直接與單片機的P3.2相連,接4.7K上拉電阻,傳感器采用外部電源供電。若采用帶屏蔽的雙絞電纜線,傳感器可置于離裝置150米以內(nèi)的任何地方。P89C668是整個裝置的控制核心,用戶程序存放在P89C668的64K字節(jié)的FlashROM里。
3.1.2 顯示電路
顯示器模塊由四位共陽數(shù)碼管和4個9012組成,根據(jù)設(shè)計溫度范圍需要,三個數(shù)碼管顯示測量的溫度,一個數(shù)碼管顯示溫度符號。用戶可通過數(shù)碼管的顯示數(shù)據(jù)來確定系統(tǒng)的當前工作狀態(tài)以及即時觀察所采樣的溫度值信息等。為節(jié)約成本,采用單片機直接驅(qū)動數(shù)碼管,動態(tài)掃描方式。
3.1.3 鍵盤及報警電路
鍵盤電路主要通過編程完成設(shè)置、查詢等功能,如對系統(tǒng)的復位,溫度值進行標定設(shè)置,給傳感器設(shè)定上下限報警值等。當被測溫度值超過預(yù)先設(shè)定的上下限時,由報警電路作出響應(yīng),蜂嗚器發(fā)出響聲,告知用戶溫度的異常,繼而調(diào)整該現(xiàn)場溫度,以達到對溫度波動的控制。
3.1.4 輸出控制電路
系統(tǒng)的輸出模塊設(shè)計采用固態(tài)繼電器控制外部加熱或制冷設(shè)備從而達到調(diào)節(jié)溫度的目的。固體繼電器是一種四端器件,兩個輸入端,兩個輸出端。輸入端接控制信號,輸出端與負載、電源串聯(lián),實際是一個受控電力電子開關(guān)。單片機通過處理設(shè)定溫度與當前溫度,通過PID算法,從P1.7口輸出PWM波,經(jīng)ULN2003反相驅(qū)動后作為固體繼電器的控制信號。
3.2 串行通信電路
本系統(tǒng)用串口實現(xiàn)單片機與上位計算機的連接,下位機向上位機上傳溫度值,上位機顯示此溫度值,并可以整定PID參數(shù),讓系統(tǒng)得以適用于不同的對象,具體電路可以選擇MAX232芯片與DB9接口連接。限于篇幅,這里不給出具體電路。
4 軟件設(shè)計及流程
系統(tǒng)軟件主要包括系統(tǒng)初始化程序、LED顯示子程序、DS18B20信號處理程序子程序、溫度計算子程序、溫度判斷分析及報警子程序、按鍵處理子程序和串口通信程序設(shè)計等,所有下位機程序均采用MCS51匯編語言編寫。系統(tǒng)主程序流程如圖5所示。為節(jié)省篇幅,以下僅介紹DS18B20信號處理程序設(shè)計和串口通信程序設(shè)計。
4.1 DS18B20信號處理程序設(shè)計
DS1820單線通信功能是分時完成的,它有嚴格的時隙概念。因此系統(tǒng)對DS1820的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS1820(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。[1-2]
DS18B20操作程序流程如圖6所示。其中任何一步失敗時自動重新初始化。
對單個DS18B20溫度進行1次轉(zhuǎn)換并讀取溫度值子程序ZH_T如下。
ZH_T:LCALL INIT;復位 DS18B20
JNB 00H,$+4
RET;復位錯誤,則返回
MOV A,#OCCH
LCALL WRITE;發(fā)跳過 ROM 命令
MOV A,#44H
LCALL WRITE;發(fā)啟動轉(zhuǎn)換命令
LCALL DELAY;等待 DS18B20轉(zhuǎn)換
LCALL INIT
MOV A,#0CCH;發(fā)跳過 ROM命令
LCALL WRITE
MOV A,#OBEH;發(fā)讀存儲器命令
LCALL WRITE
LCALL READ
MOV 40H,A;溫度值低位存 30H
LCALL READ
MOV 41H,A;溫度值高位存 31H
RET
4.2 串行通信程序設(shè)計
P89C668單片機通過引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通訊SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。在四種工作方式中,方式0和2的波特率是固定的,方式1和3的波特率是可變的,由定時器T1的溢出率控制。方式2為自動重裝入初值的8位定時器/計數(shù)器模式,所以用它來做波特率發(fā)生器最恰當。
上位機編程中,我們采用最常用的通信控件MSComm來實現(xiàn)可視化界面。MSComm控件的常用屬性有:CommPort設(shè)置并返回通訊端口號;Settings以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位;PortOpen設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口;Input從接收緩沖區(qū)返回和刪除字符;Output向傳輸緩沖區(qū)寫一個字符串。
串口初始化如下:
RXTXDlg::CHSHUDialog( )
{
Comport.SetCommPort(1);//設(shè)定串口號為 COM1
if(!Comport.GetPortOpen( )) //判斷串口是否已經(jīng)打開
Comport.SetPortOpen(TRUE);//打開指定的串口
Comport.SetSettings(\"19200,n,8,1\"); //設(shè)置波特率、數(shù)據(jù)位、停止位等參數(shù)
Comport.SetRThreshold(n);//設(shè)定每接受 n個字符觸發(fā)一次MSComm事件
Comport.SetlnputLen(0); //設(shè)置讀取方式
Comport.Getlnput( );//預(yù)置緩沖區(qū)以清除殘留數(shù)據(jù)
return TRUE;
}
5 結(jié)束語
本文介紹的智能溫度控制系統(tǒng),由于所采用的單總線數(shù)字溫度傳感器DS18B20其體積小,構(gòu)成系統(tǒng)結(jié)構(gòu)簡單,能有效地降低成本,縮短開發(fā)周期。通過 RS232通信進行數(shù)據(jù)上傳,可由上位計算機處理復雜數(shù)據(jù),提高了系統(tǒng)的速度和性能,并且系統(tǒng)能夠適應(yīng)遠程控制、惡劣環(huán)境條件下工作等優(yōu)點,在人們?nèi)粘I詈凸まr(nóng)業(yè)生產(chǎn)中,有著廣泛的應(yīng)用前景。
參考文獻:
[1] DS18B20 Data Sheet[Z].DALLAS SEMICONDUCTOR,2001.
[2] 韓志軍,劉新民. 數(shù)字溫度傳感器DS18B20及應(yīng)用[J].南京工程學院學報(自然科學版),2003,1(1):9-14.
[3] 沙占有. 智能化集成溫度傳感器原理及應(yīng)用[M].北京:機械工業(yè)出版社.2002.
[4] 儲海兵,譚功全.單片機溫度控制實驗系統(tǒng)[J].儀表技術(shù),2007,12(5):22-24.
[5] 劉俊伏,宗云.DS18B20與單片機的接口及編程技術(shù)[J].河北工業(yè)科技,2007,24(4):227-229.
[6] 何立民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1995.