由單片機和多片DS1820組成的多點溫度測控系統(tǒng)
1 概述
DS1820 是美國DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優(yōu)點,特別適合于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機處理,而且每片DS1820都有唯一的產(chǎn)品號并可存入其ROM中,以使在構(gòu)成大型溫度測控系統(tǒng)時在單線上掛任意多個 DS1820芯片。從DS1820讀出或?qū)懭隓S1820信息僅需要一根口線,共讀寫及溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以向所掛接的 DS1820供電,而無需額處電源。DS1820能提供九位溫度讀數(shù),它無需任何外圍硬件即可方便地構(gòu)成溫度檢測系統(tǒng)。
2 DS1820的工作原理
DS1820采用3腳PR-35封裝或8腳SOIC封裝,管腳排列如圖1所示。圖中GND為地,I/O為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開路輸出,常態(tài)下呈高電平。VDD是外部+5V電源端,不用時應(yīng)接地。NC為空腳。
圖2所示為DS1820的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲用戶設(shè)定的溫度上下限值的TH和TL解發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗碼(CRC)發(fā)生器等七部分。
2.1 寄生電源
寄生電源由二極管VD1、VD2和寄生電容C組成。電源檢測電路用于判定供電方式。寄生電源供電時,VDD端接地,器件從單線總線上獲取電源。在 I/O線呈低電平時,改由C上的電壓Vc繼續(xù)向器件供電。該寄生電源有兩個優(yōu)點:第一,檢測遠程溫度時無需本地電源;第二,缺少正常電源時也能讀ROM。若采用外部電源VDD,則通過VD2向器件供電。
2.2 溫度測量原理
DS1820 測量溫度時使用特有的溫度測量技術(shù)。其測量電路框圖如圖3所示。DS1820內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號f0,高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號f。當計數(shù)門打開時,DS1820對f0計數(shù),計數(shù)門開通時間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性予以被償。測量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)為9位(符號點1位),但因符號位擴展成高8位,故以16位被碼形式讀出,表1給出了溫度和數(shù)字量的關(guān)系。
[!--empirenews.page--]
2.3 64位激光ROM
64位ROM的結(jié)構(gòu)如下:
開始8位是產(chǎn)品類型的編號(DS1820為10H),接著是每個器件的唯一的序號,共有48位,最后8位是前56位的CRC校驗碼,這也是多個DS1820可以采用一線進行通信的原因。主機操作ROM的命令有五種,如表2所列
[!--empirenews.page--]
2.4 高速暫存器
它由便箋式RAM和非易失性電擦寫 EERAM組成,后者用于存儲TH、TL值。數(shù)據(jù)選寫入RAM,經(jīng)校驗后再傳給EERAM。便箋式EAM點9個字節(jié),包括溫度信息(第1、2字節(jié))、TH 和TL值(3、4字節(jié))、計數(shù)寄存器(7、8字節(jié))、CRC(第9字節(jié))等,第5、6字節(jié)不用。暫存器的命令共6條,見表3所列。
在正常測溫情況下,DS1820的測溫分辨力為0.5℃,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實際溫度的整數(shù)部分Tz,然后現(xiàn)用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度計數(shù)值CD??紤]到DS1820測量溫度的整數(shù)部分以0.25℃、0.75℃為進位界限的關(guān)系,實際溫度Ts可用下式計算:
Ts=(Tz-0.25℃)+(CD-Cs)/CD
2.5 告警信號
DS1820 完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH、TL作比較。若T>TH或T<TL,則將該器件內(nèi)的告警標志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS1820同時測量溫度并進行告警搜索。一旦某測溫點越限,主機利用告警搜索命令即可識別正在告警的器件,并讀出其序號,而不必考慮非告警器件。
2.6 CRC的產(chǎn)生
在64 位ROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(CRC)。主機根據(jù)ROM的前56位來計算CRC值,并和存入DS1820中的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。CRC的函數(shù)表達式為:CRC=X8+X5+X3+1。此外,DS1820尚需依上式為暫存器中的數(shù)據(jù)來產(chǎn)生一個8位CRC 送給主機,以確保暫存器數(shù)據(jù)傳送無誤。
[!--empirenews.page--]
3 多路溫度測控儀的電路設(shè)計
用單片機控制的多路測度測控儀的電路如圖4所示?,F(xiàn)用6只DS1820同時測控6路溫度(視實際需要還可任意擴展通道數(shù))。圖4中采用89C51單片機,其 P1.1口接單線總線。DS1820采用寄生電源供電方式。為保證在有效的DS1820時鐘周期內(nèi)能提供足夠的電流,圖4中采用一個MOSFET管和 89C51的H.0口來完成對DS1820的總線上拉。P1.2~P1.7口用來輸出溫度測控信號,經(jīng)驅(qū)動器MC1413后分別驅(qū)動6只固態(tài)繼電器,通過改變加熱或致冷系統(tǒng)的工作狀態(tài),可實現(xiàn)對被監(jiān)測系統(tǒng)的實時控制。
為提高系統(tǒng)的可靠性,該系統(tǒng)設(shè)計了由硬件與軟件組成的“看門狗”。硬件看門狗由MAX813L及其外圍電路組成,同時還具有電源監(jiān)控和復(fù)位功能。 P1.1定時輸出喂狗,按鍵S1為手動復(fù)位。鍵盤掃描和動態(tài)掃描的顯示共用一片可編程接口芯征8279,顯示采用8位共陰極LED數(shù)碼管,它可用來顯示通道數(shù)、溫度測量值以及TH、TL的值。
需要注意的是,在系統(tǒng)安裝及工作之前應(yīng)將主機逐個與DS1820掛接,以讀出其序列號。其工作過程為:主機發(fā)出一個脈沖,待“0”電平大于 480μs后,復(fù)位DA1820,在 DS1820所發(fā)響應(yīng)脈沖由主機接收后,主機再發(fā)讀ROM命令代碼33H,然后發(fā)一個脈沖(15μs),并接著讀取DS1820序列號的一位。用同樣方法讀取序列號的56位。另外,由于DS1820單線通信功能是分時完成的,遵循嚴格的時隙概念,因此,系統(tǒng)對DS1820和各種操作必須按協(xié)議進行,即:初始化DS1820(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。系統(tǒng)對DS1820操作的總體流程圖如圖5所示