摘 要:介紹單線(xiàn)數(shù)字溫度傳感器DS1820的特性及工作原理,,給出了DS1820與89C51單片機(jī)接口的應(yīng)用實(shí)例,,以及由DS1820組成溫度檢測(cè)系統(tǒng)的方法,,并給出了對(duì)DS1820進(jìn)行各種操作的軟件流程圖,。
關(guān)鍵詞: 單線(xiàn)制(1-Wire) 時(shí)隙 A/D變換
美國(guó)DALLAS公司生產(chǎn)的單線(xiàn)數(shù)字溫度傳感器DS1820,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微機(jī)處理。由于每片DS1820含有唯一的硅串行數(shù),所以在一條總線(xiàn)上可掛接任意多個(gè)DS1820芯片,。從DS1820讀出的信息或?qū)懭隓S1820的信息,,僅需要一根口線(xiàn)(單線(xiàn)接口)。讀寫(xiě)及溫度變換功率來(lái)源于數(shù)據(jù)總線(xiàn),,總線(xiàn)本身也可以向所掛接的DS1820供電,,而無(wú)需額外電源,。DS1820提供九位溫度讀數(shù),,構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)而無(wú)需任何外圍硬件。
本文給出了DS1820與89C51單片機(jī)接口的應(yīng)用實(shí)例和DS1820組成溫度檢測(cè)系統(tǒng)的方法,,并給出了對(duì)DS1820進(jìn)行各種操作的軟件流程圖,。
1 DS1820的特性
·單線(xiàn)接口:僅需一根口線(xiàn)與MCU連接
·無(wú)需外圍元件
·由總線(xiàn)提供電源
·測(cè)溫范圍為-55℃~75℃,精度為0.5℃
·九位溫度讀數(shù)
·A/D變換時(shí)間為200ms
·用戶(hù)自設(shè)定溫度報(bào)警上下限,,其值是非易失性的
·報(bào)警搜索命令可識(shí)別哪片DS1820超溫度限
2 DS1820引腳及功能
DS1820的引腳見(jiàn)圖1(PR35封裝),。
GND:地;
DQ:數(shù)據(jù)輸入/輸出腳(單線(xiàn)接口,,可作寄生供電),;
VDD:電源電壓。
3 DS1820的工作原理
DS1820的內(nèi)部結(jié)構(gòu)如圖2所示,。由圖2可知,,DS1820由三個(gè)主要數(shù)字器件組成:
① 64bit閃速ROM,;②溫度傳感器,;③非易失性溫度報(bào)警觸發(fā)器TH和TL。64bit閃速ROM的結(jié)構(gòu)如下:
它既可寄生供電也可由外部5V電源供電,。在寄生供電情況下,,當(dāng)總線(xiàn)為高電平時(shí),DS1820從總線(xiàn)上獲得能量并儲(chǔ)存在內(nèi)部電容上;當(dāng)總線(xiàn)為低電平時(shí),,由電容向DS1820供電,。
DS1820的測(cè)溫原理:內(nèi)部計(jì)數(shù)器對(duì)一個(gè)受溫度影響的振蕩器的脈沖計(jì)數(shù),低溫時(shí)振蕩器的脈沖可以通過(guò)門(mén)電路,,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時(shí)振蕩器的脈沖無(wú)法通過(guò)門(mén)電路,。計(jì)數(shù)器設(shè)置為-55℃時(shí)的值,如果計(jì)數(shù)器到達(dá)0之前,,門(mén)電路未關(guān)閉,,則溫度寄存器的值將增加,,這表示當(dāng)前溫度高于-55℃。同時(shí),,計(jì)數(shù)器復(fù)位在當(dāng)前溫度值上,,電路對(duì)振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計(jì)數(shù)器重新開(kāi)始計(jì)數(shù)直到回零,。如果門(mén)電路仍然未關(guān)閉,,則重復(fù)以上過(guò)程。溫度表示值為9bit,,高位為符號(hào)位,,其結(jié)構(gòu)如下:
對(duì)DS1820的使用,多采用單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集,。處理時(shí),,將DS1820信號(hào)線(xiàn)與單片機(jī)一位口線(xiàn)相連,單片機(jī)可掛接多片DS1820,,從而實(shí)現(xiàn)多點(diǎn)溫度檢測(cè)系統(tǒng),。
系統(tǒng)對(duì)DS1820的操作以ROM命令和存儲(chǔ)器命令形式出現(xiàn)。
3.1 ROM命令代碼及其含義
·READROM命令代碼[33H]:如果只有一片DS1820,,可用此命令讀出其序列號(hào),,若在線(xiàn)DS1820多于一個(gè),將發(fā)生沖突,。
·MATCHROM命令代碼[55H]:多個(gè)DS1820在線(xiàn)時(shí),,可用此命令匹配一個(gè)給定序列號(hào)的DS1820,此后的命令就針對(duì)該DS1820,。
·SKIPROM命令代碼[CCH]:此命令執(zhí)行后的存儲(chǔ)器操作將針對(duì)在線(xiàn)的所有DS1820,。
·SEARCHRDH命令代碼[F0H]:用以讀出在線(xiàn)的DS1820的序列號(hào)。
·ALARMSEARCH命令代碼[ECH]:當(dāng)溫度值高于TH或低于TL中的數(shù)值時(shí),,此命令可以讀出報(bào)警的DS1820,。
3.2 存儲(chǔ)器操作命令代碼及其含義
· WRITESCRATCHPAD命令代碼[4EH]:寫(xiě)兩個(gè)字節(jié)的數(shù)據(jù)到溫度寄存器。
· READSCRATCHPAD命令代碼[BEH]:讀取溫度寄存器的溫度值,。
·COPYSCRATCHPAD命令代碼[48H]:將溫度寄存器的數(shù)值拷貝到EERAM中,,保證溫度值不丟失。
·CONVERT命令代碼[44H]:?jiǎn)?dòng)在線(xiàn)DS1280做溫度A/D轉(zhuǎn)換,。
·RECALL EE命令代碼[B8H]:將EERAM中的數(shù)值拷貝到溫度寄存器中,。
·READPOWERSUPPLY命令代碼[B4H]:在本命令送到DS1280之后的每一個(gè)讀數(shù)據(jù)間隙,指出電源模式:“0”為寄生電源,;“1”為外部電源,。
DS1820單線(xiàn)通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,。因此系統(tǒng)對(duì)DS1820的各種操作必須按協(xié)議進(jìn)行,。操作協(xié)議為:初始化DS1820(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù),。各種操作的時(shí)序圖如圖3和圖4所示。
4 溫度檢測(cè)系統(tǒng)原理及程序流程圖
溫度檢測(cè)系統(tǒng)原理圖如圖5所示,,采用寄生電源供電方式,。為保證在有效的DS1820時(shí)鐘周期內(nèi),提供足夠的電流,,我們用一個(gè)MOSFET管和89C51的一個(gè)I/O口(P1.0)來(lái)完成對(duì)DS1820總線(xiàn)的上拉,。當(dāng)DS1820處于寫(xiě)存儲(chǔ)器操作和溫度A/D變換操作時(shí),總線(xiàn)上必須有強(qiáng)的上拉,,上拉開(kāi)啟時(shí)間最大為10μs,。采用寄生電源供電方式時(shí)VDD必須接地。由于單線(xiàn)制只有一根線(xiàn),,因此發(fā)送接收口必須是三態(tài)的,,為了操作方便我們用89C51的P1.1口作發(fā)送口Tx,P1.2口作接收口Rx。通過(guò)試驗(yàn)我們發(fā)現(xiàn)此種方法可掛接DS1820數(shù)十片,,距離可達(dá)到50米,,而用一個(gè)口時(shí)僅能掛接10片DS1820,距離僅為20米,。同時(shí),由于讀寫(xiě)在操作上是分開(kāi)的,故不存在信號(hào)競(jìng)爭(zhēng)問(wèn)題。
無(wú)論是單點(diǎn)還是多點(diǎn)溫度檢測(cè),,在系統(tǒng)安裝及工作之前,,應(yīng)將主機(jī)逐個(gè)與DS1820掛接,讀出其序列號(hào),。其工作過(guò)程為:主機(jī)Tx發(fā)一個(gè)脈沖,,待“0”電平大于480μs后,復(fù)位DS1820,,待DS1820所發(fā)響應(yīng)脈沖由主機(jī)Rx接收后,,主機(jī)Tx再發(fā)讀ROM命令代碼33H(低位在前),然后發(fā)一個(gè)脈沖(15μs),并接著讀取DS1820序列號(hào)的一位,。用同樣方法讀取序列號(hào)的56位,。對(duì)于圖5系統(tǒng)的DS1820操作的總體流程圖如圖6所示。它分三步完成:①系統(tǒng)通過(guò)反復(fù)操作,,搜索DS1820序列號(hào),;②啟動(dòng)所有在線(xiàn)DS1820做溫度A/D變換;③逐個(gè)讀出在線(xiàn)DS1820變換后的溫度數(shù)據(jù),。主機(jī)啟動(dòng)溫度變換并讀取溫度值的詳細(xì)流程圖如圖7所示,;主機(jī)寫(xiě)入存儲(chǔ)器數(shù)據(jù)詳細(xì)流程圖如8所示。當(dāng)有更多的檢測(cè)點(diǎn)需要測(cè)溫時(shí),,可利用89C51的其它口進(jìn)行擴(kuò)展,。同時(shí),,也可利用89C51的串行通信口(RXD,TXD)與上位計(jì)算機(jī)進(jìn)行通信,,從而構(gòu)成微機(jī)溫度測(cè)量系統(tǒng)網(wǎng),。
參考文獻(xiàn)
1 DALLAS公司半導(dǎo)體手冊(cè),1999版
2 陳光東,,趙性初.單片微型計(jì)算機(jī)原理與接口技術(shù). 武漢:華中理工大學(xué)出版社,1998
3 曹志剛.現(xiàn)代通信原理.北京:清華大學(xué)出版社,,1992