基于DS1820的單總線多點(diǎn)測(cè)溫技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:闡述了通過單總線測(cè)溫元件DS1820來實(shí)現(xiàn)多點(diǎn)測(cè)溫的技術(shù),實(shí)現(xiàn)方法是利用DS1820和89C51單片機(jī)構(gòu)建單線多點(diǎn)溫度測(cè)控系統(tǒng),通過軟件對(duì)單片機(jī)進(jìn)行控制,從而實(shí)現(xiàn)一根總線多點(diǎn)測(cè)溫,達(dá)到理想的測(cè)溫效果。實(shí)驗(yàn)結(jié)果表明,該測(cè)控技術(shù)具有測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高,連接方便,占用口線少等優(yōu)點(diǎn)。該技術(shù)的創(chuàng)新主要在于能夠利用一個(gè)通信接口同時(shí)監(jiān)測(cè)幾個(gè)甚至幾十個(gè)溫度數(shù)據(jù),從而達(dá)到節(jié)省帶寬,簡(jiǎn)化硬件設(shè)施的目的。
關(guān)鍵詞:DS1820;多點(diǎn)溫度測(cè)控;89C51;單總線
隨著科學(xué)技術(shù)的發(fā)展,特別是現(xiàn)代儀器的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個(gè)重要方向。美國Dallas半導(dǎo)體公司推出的數(shù)字化溫度傳感器DS1820采用單總線協(xié)議,即與微機(jī)接口僅需占用1個(gè)I/O端口,無需任何外部元件,直接將溫度轉(zhuǎn)化成數(shù)字信號(hào),以9位數(shù)字碼方式串行輸出,從而大大簡(jiǎn)化了傳感器與微處理器的接口。
1 DS1820簡(jiǎn)介
DS1820是美國DALLAS公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(ON-BOARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只晶體管大小的集成電路內(nèi),內(nèi)部結(jié)構(gòu)如圖1所示。
與其他溫度傳感器相比,DS1820具有以下特性:
(1)獨(dú)特的單線接口方式。DS1820在與微處理器連接時(shí)僅需要1條口線即可實(shí)現(xiàn)微處理器與DS1820的雙向通信。
(2)DS1820支持多點(diǎn)組網(wǎng)功能。多個(gè)DS1820可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。
(3)DS1820在使用中不需要任何外圍元件。
(4)測(cè)溫范圍為-55~+125℃,固有測(cè)溫分辨率為0.5℃。
(5)測(cè)量結(jié)果以9位數(shù)字量方式串行傳送。
2 工作原理
DS1820測(cè)溫原理如圖2所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化,其振蕩率有明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。
圖2中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。DS1820特點(diǎn)如下:硬件接口簡(jiǎn)單,性能穩(wěn)定,單線接口,僅需一根口線與MCU連接,無需外圍元件;由總線提供電源;測(cè)溫范圍為-55~+75℃;精度為0.5℃;9位溫度讀數(shù);A/D變換時(shí)間為200 ms;用戶自設(shè)定溫度報(bào)警上下限,其值是非易失性的;報(bào)警搜索命令可識(shí)別哪片DS1820超溫度限。
3 溫度檢測(cè)系統(tǒng)設(shè)計(jì)
3.1 硬件設(shè)計(jì)
由于每片DS1820含有惟一的硅串行數(shù),所以在一條總線上可掛接多個(gè)DS1820芯片。從DS1820讀出信息或?qū)懭隓S1820信息,僅需要1根口線(單線接口)。讀/寫及溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS1820供電,而無需額外電源。DS1820提供9位溫度讀數(shù),構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)而無需任何外圍硬件。對(duì)DS1820的使用,多采用單片機(jī)實(shí)現(xiàn)數(shù)據(jù)采集。處理時(shí),將DS1820信號(hào)線與單片機(jī)一位口線相連,單片機(jī)可掛接多片DS1820,從而實(shí)現(xiàn)多點(diǎn)溫度檢測(cè)系統(tǒng)。由于DS1820只有3個(gè)引腳,其中2根是電源線VDD和GND,另外兩根用作總線DQ(DataIn/Out),由于其輸出和輸入均是數(shù)字信號(hào),且與TTL電平兼容,因此可以與微處理器直接進(jìn)行接口,從而省去了一般傳感器所必需的中間轉(zhuǎn)換環(huán)節(jié)。
該設(shè)計(jì)以DS1820為傳感器,以AT89C51單片機(jī)為控制核心,組成的多點(diǎn)溫度測(cè)試系統(tǒng)如圖3所示。
3.2 軟件設(shè)計(jì)
程序處理是整個(gè)系統(tǒng)的關(guān)鍵,簡(jiǎn)潔的硬件結(jié)構(gòu)是靠復(fù)雜的軟件來支持的。多個(gè)器件掛在一條總線上去識(shí)別不同的器件,在程序設(shè)計(jì)過程中一般有初始化命令、傳送ROM命令、傳送RAM命令、數(shù)據(jù)交換命令4個(gè)步驟。
需要注意的是,無論是單點(diǎn)還是多點(diǎn)溫度檢測(cè),在系統(tǒng)安裝及工作之前,應(yīng)將主機(jī)逐個(gè)與DS182掛接,讀出其序列號(hào)。它的工作過程為:主機(jī)發(fā)出一個(gè)脈沖,待“0”電平大于480μs后,復(fù)位DA1820,在DS1820所發(fā)響應(yīng)脈沖由主機(jī)接收后,主機(jī)再發(fā)讀ROM命令代碼33H,然后發(fā)一個(gè)脈沖(15μs),并接著讀取DS1820序列號(hào)的1位。用同樣方法讀取序列號(hào)的56位。另外,由于DS1820單線通信功能是分時(shí)完成的,遵循嚴(yán)格的時(shí)隙概念,因此系統(tǒng)對(duì)DS1820和各種操作必須按協(xié)議進(jìn)行,即初始化DS182(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。
在正常測(cè)溫情況下,DS1820的測(cè)溫分辨率為0.5℃。這對(duì)于精度要求高的場(chǎng)合有所不足。在詳細(xì)分析DS1820測(cè)溫原理的基礎(chǔ)上,采取直接讀取DS1820內(nèi)部暫存寄存器的方法,將DS1820的測(cè)溫分辨率提高到0.1~0.01℃。圖4為軟件設(shè)計(jì)的總流程。
4 結(jié)語
雖然DS1820具有測(cè)溫系統(tǒng)簡(jiǎn)單,測(cè)溫精度高,連接方便,占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中還應(yīng)注意以下幾方面的問題:
系統(tǒng)硬件雖然簡(jiǎn)單,但需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償;由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀/寫編程時(shí),必須嚴(yán)格地保證讀/寫時(shí)序,否則將無法讀取測(cè)溫結(jié)果。
在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。連接DS1820的總線電纜是有長(zhǎng)度限制的。由于信號(hào)電纜本身存在電阻,距離過長(zhǎng)時(shí)將導(dǎo)致信號(hào)衰減。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過50 m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤;當(dāng)總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通信距離可達(dá)150 m;當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通信距離能進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻摹R虼?,在?strong>DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配的問題。