《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于DS18B2O的測(cè)溫系統(tǒng)設(shè)計(jì)
基于DS18B2O的測(cè)溫系統(tǒng)設(shè)計(jì)
摘要: DS18820數(shù)字溫度計(jì)是DALEAS公司生產(chǎn)的1一Wire,即單總線器件,屬于新一代適配微處理器的智能數(shù)字溫度傳感器。將溫度感測(cè)、信號(hào)變換、A/D轉(zhuǎn)換和加熱功能集成到一個(gè)芯片上,采用T0—92封裝,接口非常簡(jiǎn)單。其引腳和封裝如圖1所示,DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。
Abstract:
Key words :

1 DSl8820簡(jiǎn)介
DS18820數(shù)字溫度計(jì)是DALEAS公司生產(chǎn)的1一Wire,即單總線器件,屬于新一代適配微處理器的智能數(shù)字溫度傳感器。將溫度感測(cè)、信號(hào)變換、A/D轉(zhuǎn)換和加熱功能集成到一個(gè)芯片上,采用T0—92封裝,接口非常簡(jiǎn)單。其引腳和封裝如圖1所示,DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。

 

2 DSl8820的內(nèi)部結(jié)構(gòu)和工作時(shí)序
2.1 DSl8820的內(nèi)部結(jié)構(gòu)
DSl8820內(nèi)部結(jié)構(gòu)如圖2所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。

 

ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DSl8820的地址序列碼,每個(gè)DSl8820的64位序列號(hào)均不相同。64位ROM的排的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個(gè)DSl8820都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DSl8820的目的。高速暫存器是一個(gè)9字節(jié)的存儲(chǔ)器。開始兩個(gè)字節(jié)包含被測(cè)溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來(lái)保證通信正確。
DSl8820中的溫度傳感器可完成對(duì)溫度的測(cè)量,并用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式輸出溫度值,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。例+125℃的數(shù)字輸出為07DOH,+25.06℃的數(shù)字輸出為019lH,一25.06℃的數(shù)字輸出為FF6FH,一55℃的數(shù)字輸出為FC90H。
高低溫報(bào)警觸發(fā)器TH和TL、配置寄存器均由一個(gè)字節(jié)的EEPROM組成,使用一個(gè)存儲(chǔ)器功能命令可對(duì)TH、TL或配置寄存器寫入。其中配置寄存器的格式如下:


R1、RO決定溫度轉(zhuǎn)換的精度位數(shù):RlR0=“00”,9位精度,最大轉(zhuǎn)換時(shí)間為93.75ms;R1RO=“01”,10位精度,最大轉(zhuǎn)換時(shí)間為187.5ms;R1RO=“10”,11位精度,最大轉(zhuǎn)換時(shí)間為375ms;R1R0=“11”,12位精度,最大轉(zhuǎn)換時(shí)間為750ms;默認(rèn)為12位精度。
2.2 DSl8820的工作時(shí)序
DSl8820的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,如下圖3所示:

 

(1)DSl8820的復(fù)位時(shí)序
(2)DSl8820的讀時(shí)序

對(duì)于DSl8820的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。對(duì)于DSl8820的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DSl8820把數(shù)據(jù)傳輸?shù)絾慰偩€上。DSl8820在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。
(3)DSl8820的寫時(shí)序

 

對(duì)于DSl8820的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。
對(duì)于DSl8820寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫O時(shí)序時(shí),單總線要被拉低至~>60us,保證DSl8820能夠在15us到45us之間能夠正確地采樣IO總線上的“O”電平,當(dāng)要寫l時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。

3 DSl8820的應(yīng)用設(shè)計(jì)
DSl8820采用的是1一Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。對(duì)AT89S5l單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)Dsl8820芯片的訪問。
3.1 硬件設(shè)計(jì)
DSl8820采用的是1一Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向串行傳輸,所以硬件接口電路非常簡(jiǎn)單。需要注意的地方是:DQ數(shù)據(jù)線需要接上拉電阻。DSl8820有兩種接線方式:寄生電源方式和外接電源方式。圖3以MCS一5l系列單片機(jī)為例,畫出了DSl8820與微處理器的典型連接。圖4(上)中DSl8820采用寄生電源方式,其VDD和GND端均接地,圖4(下)中DS18820采用外接電源方式,其VDD端用3V~5.5V電源供電。
圖4 DSl8820與微處理器的典型連接

3.2 軟件設(shè)計(jì)
由于DSl8820是在一根I/0線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DSl8820有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。

4 DSl8820使用中的注意事項(xiàng)
DSl820雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:
(1)較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DSl820與微處理器問采用串行數(shù)據(jù)傳送,因此,在對(duì)DSl820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DSl820操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。
(2)在DSl820的有關(guān)資料中均未提及單總線上所掛DSl820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DSl820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DSl820超過8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題。
(3)連接DSl820的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DSl820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問題。
(4)在DSl820測(cè)溫程序設(shè)計(jì)中,向DSl820發(fā)出溫度轉(zhuǎn)換命令后,程序需要等待DSl820的返回信號(hào)。一旦某個(gè)DSl820接觸不好或斷線,讀該DSl820時(shí)將沒有返回信號(hào),程序?qū)⑦M(jìn)入死循環(huán)。

5 結(jié)論
采用數(shù)字溫度傳感器DS18820進(jìn)行溫度的時(shí)實(shí)監(jiān)測(cè)的系統(tǒng)具有轉(zhuǎn)換精度高、體積小、與微處理器接口簡(jiǎn)單等優(yōu)點(diǎn);能夠給硬件設(shè)計(jì)工作帶來(lái)了極大的方便,能有效地降低成本,縮短開發(fā)周期。另外DSl8820芯片內(nèi)部集成了9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字信號(hào)的方式串行輸出,因此抗干擾能力也比同類芯片高。DSl8820在溫度監(jiān)測(cè)、自動(dòng)控制等領(lǐng)域均已得到廣泛的應(yīng)用。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。