《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 單線數(shù)字溫度傳感器的原理與應(yīng)用

單線數(shù)字溫度傳感器的原理與應(yīng)用

2009-02-19
作者:金偉正

  摘 要:介紹單線數(shù)字溫度傳感器DS1820的特性及工作原理,,給出了DS1820與89C51單片機接口的應(yīng)用實例,,以及由DS1820組成溫度檢測系統(tǒng)的方法,,并給出了對DS1820進行各種操作的軟件流程圖,。
  關(guān)鍵詞: 單線制(1-Wire) 時隙 A/D變換


  美國DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器DS1820,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供微機處理,。由于每片DS1820含有唯一的硅串行數(shù),所以在一條總線上可掛接任意多個DS1820芯片,。從DS1820讀出的信息或?qū)懭隓S1820的信息,,僅需要一根口線(單線接口),。讀寫及溫度變換功率來源于數(shù)據(jù)總線,,總線本身也可以向所掛接的DS1820供電,,而無需額外電源,。DS1820提供九位溫度讀數(shù),構(gòu)成多點溫度檢測系統(tǒng)而無需任何外圍硬件,。
  本文給出了DS1820與89C51單片機接口的應(yīng)用實例和DS1820組成溫度檢測系統(tǒng)的方法,,并給出了對DS1820進行各種操作的軟件流程圖。
1 DS1820的特性
  ·單線接口:僅需一根口線與MCU連接
  ·無需外圍元件
  ·由總線提供電源
  ·測溫范圍為-55℃~75℃,,精度為0.5℃
  ·九位溫度讀數(shù)
  ·A/D變換時間為200ms
  ·用戶自設(shè)定溫度報警上下限,,其值是非易失性的
  ·報警搜索命令可識別哪片DS1820超溫度限
2 DS1820引腳及功能
  DS1820的引腳見圖1(PR35封裝)。


  GND:地,;
  DQ:數(shù)據(jù)輸入/輸出腳(單線接口,,可作寄生供電);
  VDD:電源電壓,。
3 DS1820的工作原理
  DS1820的內(nèi)部結(jié)構(gòu)如圖2所示,。由圖2可知,DS1820由三個主要數(shù)字器件組成:


 ?、?64bit閃速ROM,;②溫度傳感器;③非易失性溫度報警觸發(fā)器TH和TL,。64bit閃速ROM的結(jié)構(gòu)如下:

  
  它既可寄生供電也可由外部5V電源供電,。在寄生供電情況下,當(dāng)總線為高電平時,,DS1820從總線上獲得能量并儲存在內(nèi)部電容上;當(dāng)總線為低電平時,,由電容向DS1820供電。
  DS1820的測溫原理:內(nèi)部計數(shù)器對一個受溫度影響的振蕩器的脈沖計數(shù),,低溫時振蕩器的脈沖可以通過門電路,,而當(dāng)?shù)竭_某一設(shè)置高溫時振蕩器的脈沖無法通過門電路。計數(shù)器設(shè)置為-55℃時的值,,如果計數(shù)器到達0之前,,門電路未關(guān)閉,則溫度寄存器的值將增加,,這表示當(dāng)前溫度高于-55℃。同時,,計數(shù)器復(fù)位在當(dāng)前溫度值上,,電路對振蕩器的溫度系數(shù)進行補償,計數(shù)器重新開始計數(shù)直到回零,。如果門電路仍然未關(guān)閉,,則重復(fù)以上過程。溫度表示值為9bit,,高位為符號位,,其結(jié)構(gòu)如下:

  
  對DS1820的使用,,多采用單片機實現(xiàn)數(shù)據(jù)采集。處理時,,將DS1820信號線與單片機一位口線相連,,單片機可掛接多片DS1820,從而實現(xiàn)多點溫度檢測系統(tǒng),。
  系統(tǒng)對DS1820的操作以ROM命令和存儲器命令形式出現(xiàn),。
3.1 ROM命令代碼及其含義
  ·READROM命令代碼[33H]:如果只有一片DS1820,可用此命令讀出其序列號,,若在線DS1820多于一個,,將發(fā)生沖突。
  ·MATCHROM命令代碼[55H]:多個DS1820在線時,,可用此命令匹配一個給定序列號的DS1820,,此后的命令就針對該DS1820。
  ·SKIPROM命令代碼[CCH]:此命令執(zhí)行后的存儲器操作將針對在線的所有DS1820,。
  ·SEARCHRDH命令代碼[F0H]:用以讀出在線的DS1820的序列號,。
  ·ALARMSEARCH命令代碼[ECH]:當(dāng)溫度值高于TH或低于TL中的數(shù)值時,此命令可以讀出報警的DS1820,。
3.2 存儲器操作命令代碼及其含義
  · WRITESCRATCHPAD命令代碼[4EH]:寫兩個字節(jié)的數(shù)據(jù)到溫度寄存器,。
  · READSCRATCHPAD命令代碼[BEH]:讀取溫度寄存器的溫度值。
  ·COPYSCRATCHPAD命令代碼[48H]:將溫度寄存器的數(shù)值拷貝到EERAM中,,保證溫度值不丟失,。
  ·CONVERT命令代碼[44H]:啟動在線DS1280做溫度A/D轉(zhuǎn)換。
  ·RECALL EE命令代碼[B8H]:將EERAM中的數(shù)值拷貝到溫度寄存器中,。
  ·READPOWERSUPPLY命令代碼[B4H]:在本命令送到DS1280之后的每一個讀數(shù)據(jù)間隙,,指出電源模式:“0”為寄生電源;“1”為外部電源,。
  DS1820單線通信功能是分時完成的,,它有嚴(yán)格的時隙概念。因此系統(tǒng)對DS1820的各種操作必須按協(xié)議進行,。操作協(xié)議為:初始化DS1820(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù),。各種操作的時序圖如圖3和圖4所示。

??


4 溫度檢測系統(tǒng)原理及程序流程圖
  溫度檢測系統(tǒng)原理圖如圖5所示,,采用寄生電源供電方式,。為保證在有效的DS1820時鐘周期內(nèi),提供足夠的電流,,我們用一個MOSFET管和89C51的一個I/O口(P1.0)來完成對DS1820總線的上拉,。當(dāng)DS1820處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強的上拉,,上拉開啟時間最大為10μs,。采用寄生電源供電方式時VDD必須接地,。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的,,為了操作方便我們用89C51的P1.1口作發(fā)送口Tx,P1.2口作接收口Rx,。通過試驗我們發(fā)現(xiàn)此種方法可掛接DS1820數(shù)十片,距離可達到50米,,而用一個口時僅能掛接10片DS1820,,距離僅為20米。同時,由于讀寫在操作上是分開的,故不存在信號競爭問題,。


  無論是單點還是多點溫度檢測,,在系統(tǒng)安裝及工作之前,應(yīng)將主機逐個與DS1820掛接,,讀出其序列號,。其工作過程為:主機Tx發(fā)一個脈沖,待“0”電平大于480μs后,,復(fù)位DS1820,,待DS1820所發(fā)響應(yīng)脈沖由主機Rx接收后,主機Tx再發(fā)讀ROM命令代碼33H(低位在前),,然后發(fā)一個脈沖(15μs),并接著讀取DS1820序列號的一位,。用同樣方法讀取序列號的56位。對于圖5系統(tǒng)的DS1820操作的總體流程圖如圖6所示,。它分三步完成:①系統(tǒng)通過反復(fù)操作,,搜索DS1820序列號;②啟動所有在線DS1820做溫度A/D變換,;③逐個讀出在線DS1820變換后的溫度數(shù)據(jù),。主機啟動溫度變換并讀取溫度值的詳細流程圖如圖7所示;主機寫入存儲器數(shù)據(jù)詳細流程圖如8所示,。當(dāng)有更多的檢測點需要測溫時,,可利用89C51的其它口進行擴展。同時,,也可利用89C51的串行通信口(RXD,,TXD)與上位計算機進行通信,從而構(gòu)成微機溫度測量系統(tǒng)網(wǎng),。

? ?


參考文獻
1 DALLAS公司半導(dǎo)體手冊,,1999版
2 陳光東,趙性初.單片微型計算機原理與接口技術(shù). 武漢:華中理工大學(xué)出版社,1998
3 曹志剛.現(xiàn)代通信原理.北京:清華大學(xué)出版社,,1992

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]