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

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

 

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

 

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


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

 

(1)DSl8820的復位時序
(2)DSl8820的讀時序

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

 

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

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

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

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

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

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