版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
智能溫度傳感器DS18B20的原理與應(yīng)用趙海蘭1,趙祥偉2(1沙洲職業(yè)工學(xué)院江蘇張家港215600;
2高新張銅公司江蘇張家港215600)
摘
要:DS18B20是DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,他具有獨(dú)特的單線總線接口方式。文章詳細(xì)的介紹了單線數(shù)字溫度傳感器DS18B20的測量原理、特性以及在溫度測量中的硬件和軟件設(shè)計(jì),具有接口簡單、精度高、抗干擾能力強(qiáng)、工作穩(wěn)定可靠等特點(diǎn)。?
關(guān)鍵詞:DS18B20;單線制;溫度傳感器;單片機(jī)
DS18B20是美國DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高.他在測溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶帶來了更方便的使用和更令人滿意的效果。1DS18B20簡介
(1)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊.
(2)在使用中不需要任何外圍元件。
(3)可用數(shù)據(jù)線供電,電壓范圍:+3.0~+5.5V。?
(4)測溫范圍:-55~+125℃。固有測溫分辨率為0.5℃.
(5)通過編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。
(6)用戶可自設(shè)定非易失性的報(bào)警上下限值.
(7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測溫。
(8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。?2DS18B20的內(nèi)部結(jié)構(gòu)?
DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖1所示。
(1)64b閃速ROM的結(jié)構(gòu)如下:
開始8位是產(chǎn)品類型的編號,接著是每個(gè)器件的惟一的序號,共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。
(2)非易市失性溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入用戶報(bào)警上下限.?
(3)高速暫存存儲器?
DS18B20溫度傳感器的內(nèi)部存儲器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2RAM。后者用于存儲TH,TL值。數(shù)據(jù)先寫入RAM,經(jīng)校驗(yàn)后再傳給E2RAM。而配置寄存器為高速暫存器中的第5個(gè)字節(jié),他的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如下:?
低5位一直都是1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表1所示(DS18B20出廠時(shí)被設(shè)置為12位).
由表1可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮.?
高速暫存存儲器除了配置寄存器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、TH和TL值第3,4字節(jié)、第6~8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來保證通信正確。
當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1,2字節(jié).單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以00625℃/LSB形式表示。溫度值格式如下:
對應(yīng)的溫度計(jì)算:當(dāng)符號位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。表2是對應(yīng)的一部分溫度值。
DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH,TL作比較,若T〉TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測量溫度并進(jìn)行告警搜索.?
(4)CRC的產(chǎn)生?
在64bROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗(yàn)碼(CRC).主機(jī)根據(jù)ROM的前56位來計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確.3DS18B20的測溫原理
DS18B20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很?。郏保?,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20的測溫原理。?
另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。各種操作的時(shí)序圖與DS1820相同,可參看文獻(xiàn)[2]。4DS18B20與單片機(jī)的典型接口設(shè)計(jì)?
以MCS51單片機(jī)為例,圖3中采用寄生電源供電方式,P11口接單線總線為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管和89C51的P10來完成對總線的上拉[2]。當(dāng)DS18B20處于寫存儲器操作和溫度A/D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:初始化、ROM操作指令、存儲器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12
MHz,根據(jù)DS18B20的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分別編寫3個(gè)子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始,實(shí)際在實(shí)驗(yàn)中不用這種方式,只要在數(shù)據(jù)線上加一個(gè)上拉電阻4.7kΩ,另外2個(gè)腳分別接電源和地.
5DS18B20的精確延時(shí)問題?
雖然DS18B20有諸多優(yōu)點(diǎn),但使用起來并非易事,由于采用單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線完成。因此,對讀寫的操作時(shí)序要求嚴(yán)格。為保證DS18B20的嚴(yán)格I/O時(shí)序,需要做較精確的延時(shí)。在DS18B20操作中,用到的延時(shí)有15μs,90μs,270μs,540μs等。因這些延時(shí)均為15μs的整數(shù)倍,因此可編寫一個(gè)DELAY15(n)函數(shù),源碼如下:?
只要用該函數(shù)進(jìn)行大約15μs×N的延時(shí)即可.有了比較精確的延時(shí)保證,就可以對DS18B20進(jìn)行讀寫操作、溫度轉(zhuǎn)換及顯示等操作。
6結(jié)語?
我們已成功地將DS18B20應(yīng)用于所開發(fā)的“LCD顯示氣溫”的控制系統(tǒng)中,其測溫系統(tǒng)簡單,測溫精度高,連接方便,占用口線少,轉(zhuǎn)換速度快,與微處理器的接口簡單,給硬件設(shè)計(jì)工作帶來了極大的方便,能有效地降低成本,縮短開發(fā)周期。參考文獻(xiàn)[1]胡振宇,劉魯源,杜振輝DS18B20接口的C語言程序設(shè)計(jì)[J]單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002,(7)?[2]金偉正單線數(shù)字溫度傳感器的原理與應(yīng)用[J].電子技術(shù)應(yīng)用,2000,(6):6668數(shù)字溫度傳感器DS18B20的原理與應(yīng)用馬云峰,陳子夫,李培全(山東濰坊學(xué)院自動化系,山東濰坊261041)1引言?
DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO—92小體積封裝形式;溫度測量范圍為—55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路.以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測系統(tǒng)。?2DS18B20的內(nèi)部結(jié)構(gòu)?
圖1DS18B20的內(nèi)部結(jié)構(gòu)?圖2DS18B20的管腳排列?(a)初始化時(shí)序
(b)寫時(shí)序
(c)讀時(shí)序?圖3DS18B20的工作時(shí)序圖
DS18B20中的溫度傳感器完成對溫度的測量,用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號位。例如+125℃的數(shù)字輸出為07D0H,+25。0625℃的數(shù)字輸出為0191H,-25。0625℃232221202-12-22—32-4溫度值低字節(jié)?MSBLSBSSSSS222524溫度值高字節(jié)
高低溫報(bào)警觸發(fā)器TH和TL、配置寄存器均由一個(gè)字節(jié)的EEPROM組成,使用一個(gè)存儲器功能命令可對TH、TL或配置寄存器寫入。其中配置寄存器的格式如下:0R1R011111MSBLSB
R1、R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=“00”,9位精度,最大轉(zhuǎn)換時(shí)間為93。75ms;R1R0=“01”,10位精度,最大轉(zhuǎn)換時(shí)間為187.5ms;R1R0=“10",11位精度,最大轉(zhuǎn)換時(shí)間為375ms;R1R0=“11”,12位精度,最大轉(zhuǎn)換時(shí)間為750ms;未編程時(shí)默認(rèn)為12位精度。?高速暫存器是一個(gè)9字節(jié)的存儲器。開始兩個(gè)字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來保證通信正確。?3DS18B20的工作時(shí)序?DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,如圖3(a)(b)(c)所示。
4DS18B20與單片機(jī)的典型接口設(shè)計(jì)?
圖4以MCS—51系列單片機(jī)為例,畫出了DS18B20與微處理器的典型連接。圖4(a)中DS18B20采用寄生電源方式,其VDD和GND端均接地,圖4(b)中DS18B20采用外接電源方式,其VDD端用3V~5.5V電源供電.?
假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分別編寫了3個(gè)子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始.?
DATEQUP1.0
……?
INIT:CLREA?
INI10:SETBDAT?
MOVR2,#200
(a)寄生電源工作方式?(b)外接電源工作方式
圖4DS18B20與微處理器的典型連接圖INI11:CLRDAT?DJNZR2,INI11;主機(jī)發(fā)復(fù)位脈沖持續(xù)3μs×200=600μs?SETBDAT;主機(jī)釋放總線,口線改為輸入?MOVR2,#30?IN12:DJNZR2,INI12;DS18B20等待2μs×30=60μs?CLRC?ORLC,DAT;DS18B20數(shù)據(jù)線變低(存在脈沖)嗎??JCINI10;DS18B20未準(zhǔn)備好,重新初始化?MOVR6,#80?INI13:ORLC,DAT?JCINI14;DS18B20數(shù)據(jù)線變高,初始化成功?DJNZR6,INI13;數(shù)據(jù)線低電平可持續(xù)3μs×80=240μs?SJMPINI10;初始化失敗,重來?INI14:MOVR2,#240?IN15:DJNZR2,INI15;DS18B20應(yīng)答最少2μs×240=480μs?RET?;-—----—----—-——------—-—
WRITE:CLREA?MOVR3,#8;循環(huán)8次,寫一個(gè)字節(jié)?WR11:SETBDAT?MOVR4,#8
RRCA;寫入位從A中移到CY?CLRDAT
WR12:DJNZR4,WR12?;等待16μs?MOVDAT,C;命令字按位依次送給DS18B20?MOVR4,#20?WR13:DJNZR4,WR13
;保證寫過程持續(xù)60μs?DJNZR3,WR11
;未送完一個(gè)字節(jié)繼續(xù)
SETBDAT
RET
;--—----------------——--—
READ:CLREA?MOVR6,#8;循環(huán)8次,讀一個(gè)字節(jié)?RD11:CLRDAT?MOVR4,#4?NOP;低電平持續(xù)2μs?SETBDAT;口線設(shè)為輸入?RD12:DJNZR4,RD12?;等待8μs?MOVC,DAT
;主機(jī)按位依次讀入DS18B20的數(shù)據(jù)?RRCA;讀取的數(shù)據(jù)移入A?MOVR5,#30?RD13:DJNZR5,RD13
;保證讀過程持續(xù)60μs
DJNZR6,RD11?;讀完一個(gè)字節(jié)的數(shù)據(jù),存入A中?SETBDAT?RET?;----—--—----—-—--—-—---—?
主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:初始化、ROM操作指令、存儲器操作指令。必須
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)課程設(shè)計(jì)項(xiàng)目
- 2024年航天器零部件設(shè)計(jì)與制造合同
- 2024年版派遣員工工作協(xié)議范本
- 二零二五年度住宅小區(qū)綠化帶病蟲害防治與維修協(xié)議3篇
- 2025年度能源管理班組承包運(yùn)營合同3篇
- 2024年版離婚協(xié)議書(無子女)
- 2025年度智能客服軟件服務(wù)協(xié)議合同3篇
- 火災(zāi)報(bào)警電路課程設(shè)計(jì)
- 樓蓋課程設(shè)計(jì)教學(xué)
- 缸體加工工藝課程設(shè)計(jì)
- 腫瘤科醫(yī)院感染管理制度
- 產(chǎn)品拆解:飛書多維表格怎么用
- 意識障礙的診斷鑒別診斷及處理
- 客房服務(wù)員(四級)考證理論考核試題及答案
- 英語演講知到章節(jié)答案智慧樹2023年哈爾濱工程大學(xué)
- 商務(wù)禮儀培訓(xùn)職業(yè)禮儀員工培訓(xùn)PPT
- 圍手術(shù)期手術(shù)部位感染預(yù)防與控制措施試題及答案
- 本田品質(zhì)管理基礎(chǔ)課程(課堂PPT)
- 教育科學(xué)研究方法(第二版) 單元1 主題6 熟悉本學(xué)科著名的辦學(xué)機(jī)構(gòu)
- JC∕T 2647-2021 預(yù)拌混凝土生產(chǎn)企業(yè)廢水回收利用規(guī)范
- 三星公司供應(yīng)鏈管理流程綜合分析報(bào)告
評論
0/150
提交評論