DS18B20的使用方法_第1頁(yè)
DS18B20的使用方法_第2頁(yè)
DS18B20的使用方法_第3頁(yè)
DS18B20的使用方法_第4頁(yè)
DS18B20的使用方法_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、圖1 DS18B20的封裝圖 DS18B20的特點(diǎn):1、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)2、溫范圍55+125,在-10+85時(shí)精度為±0.53、支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過(guò)多,會(huì)使供電電源電壓過(guò)低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定4、工作電源: 35V/DC5、 可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫,測(cè)量結(jié)果以912位數(shù)字量方式串行傳送6、在9位分辨率時(shí)最多在 93.75ms內(nèi)把溫度

2、轉(zhuǎn)換為數(shù)字量,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字量,速度更快7、測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力8、負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作1) 產(chǎn)品型號(hào)與規(guī)格型 號(hào) 測(cè)溫范圍 安裝螺紋 電纜長(zhǎng)度 適用管道 TS-18B20 -55125 無(wú) 1.5 m TS-18B20A -55125 M10X1 1.5m DN1525 TS-18B20B -55125 1/2G 接線盒 DN4060圖2 DS18B20測(cè)溫原理如圖2所示:圖中低溫度系數(shù)晶振的振蕩頻率受溫度

3、影響很小,用于產(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重新開(kāi)始對(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è)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。2) 接線說(shuō)明 特點(diǎn):獨(dú)特的一線接口,只需要一條口線通信

4、多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感器應(yīng)用,無(wú)需外部元件可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V無(wú)需備用電源測(cè)量溫度范圍為-55至+125 ,-10至+85范圍內(nèi)精度為±0.5 。溫度傳感器可編程的分辨率為912位溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒用戶(hù)可定義的非易失性溫度報(bào)警設(shè)置應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng) 。DS18B20提供9至12位溫度輸出。信息發(fā)送從DS18B20通過(guò)1線接口,所以中央微處理器與DS18B20只有一條口線連接。數(shù)據(jù)讀寫(xiě)以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。因?yàn)槊恳粋€(gè)DS18B20包含一個(gè)獨(dú)特的

5、序號(hào),多個(gè)DS18B20可以同時(shí)存在于一條總線,這使得溫度傳感器可以放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測(cè)建筑物內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過(guò)程監(jiān)測(cè)和控制。3) DS18B20有4個(gè)主要的數(shù)據(jù)部件: 圖3 DS18B20內(nèi)部結(jié)構(gòu)圖DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,配置寄存器。(1)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類(lèi)型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余檢驗(yàn)碼(CR

6、C=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。64位的光刻ROM又包括5個(gè)ROM的功能命令:讀ROM,匹配ROM,跳躍ROM,查找ROM和報(bào)警查找。根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。表1 ROM指令表指 令約定代碼功 能讀ROM33H讀DS18B20溫度傳感器ROM中的編碼(即64位地址)符合 ROM55H發(fā)出此命令之后,接

7、著發(fā)出 64 位 ROM 編碼,訪問(wèn)單總線上與該編碼相對(duì)應(yīng)的 DS18B20 使之作出響應(yīng),為下一步對(duì)該 DS18B20 的讀寫(xiě)作準(zhǔn)備搜索 ROM0F0H用于確定掛接在同一總線上 DS18B20 的個(gè)數(shù)和識(shí)別 64 位 ROM 地址。為操作各器件作好準(zhǔn)備跳過(guò) ROM0CCH忽略 64 位 ROM 地址,直接向 DS18B20 發(fā)溫度變換命令,適用于單片工作告警搜索命令0ECH執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng) 表2 RAM指令表指 令約定代碼功 能溫度轉(zhuǎn)換44H啟動(dòng)DS18b20進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)間最長(zhǎng)為750ms(9位為93.75ms),結(jié)果存入內(nèi)部9字節(jié)RAM中讀暫

8、存器0BEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫(xiě)暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送三字節(jié)的數(shù)據(jù),三字節(jié)的數(shù)據(jù)分別被存到暫存器的第3、4、5字節(jié)復(fù)制暫存器48H將RAM中第3 、4、5字節(jié)的內(nèi)容復(fù)制到E2PROM中重調(diào)E2PR0M0B8H將E2PROM中內(nèi)容恢復(fù)到RAM中的第3 、4、5字節(jié)讀供電方式0B4H讀DS18B20的供電模式。寄生供電時(shí)DS18B20發(fā)送“ 0 ”,外接電源供電 DS18B20發(fā)送“ 1 ”(2) DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB

9、形式表達(dá),其中S為符號(hào)位。表3 DS18B20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8bit的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0, 這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FE6FH,-55的數(shù)字輸出為FC90H。表4 DS18B20溫度數(shù)據(jù)表(3)DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)

10、高速暫存RAM和一個(gè)非易失性的可電擦除的E2 PRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。存儲(chǔ)器能完整的確定一線端口的通訊,數(shù)據(jù)開(kāi)始用寫(xiě)寄存器的命令寫(xiě)進(jìn)寄存器,接著也可以用讀寄存器的命令來(lái)確認(rèn)這些數(shù)據(jù)。當(dāng)確認(rèn)以后就可以用復(fù)制寄存器的命令來(lái)將這些數(shù)據(jù)轉(zhuǎn)移到可電擦除RAM中。當(dāng)修改過(guò)寄存器中的數(shù)據(jù)時(shí),這個(gè)過(guò)程能確保數(shù)據(jù)的完整性。 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第1和第2個(gè)字節(jié)。CPU可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表3所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí)

11、,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。第3和第4個(gè)字節(jié)是復(fù)制TH和TL,同時(shí)第3和第4個(gè)字節(jié)的數(shù)據(jù)可以更新;第5個(gè)字節(jié)是復(fù)制配置寄存器,同時(shí)第5個(gè)字節(jié)的數(shù)據(jù)可以更新;6、7、8三個(gè)字節(jié)是計(jì)算機(jī)自身使用。第9個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。表5 DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位 (LS Byte)1溫度值高位 (MS Byte)2高溫限值(TH)3低溫限值(TL)4配置寄存器5保留6保留7保留8CRC校驗(yàn)值9(4)配置寄存器 該字節(jié)各位的意義如下:表6 配置寄存器結(jié)構(gòu)低五位一直都是"1",TM是測(cè)試模式位,用于設(shè)置DS18B

12、20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶(hù)不要去改動(dòng)。R1和R0用來(lái)設(shè)置分辨率,如下表所示(DS18B20出廠時(shí)被設(shè)置為12位)。表7 溫度分辨率設(shè)置表4) DS18B20外部電源的連接方式 DS18B20可以使用外部電源VDD,也可以使用內(nèi)部的寄生電源。當(dāng)VDD端口接3.0V5.5V的電壓時(shí)是使用外部電源;當(dāng)VDD端口接地時(shí)使用了內(nèi)部的寄生電源。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O口線都要接4.7K的上拉電阻。 DS18B20的外部電源供電方式在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,此時(shí)I/O線不需要強(qiáng)上拉,不存在電源電流不足的問(wèn)題,可以

13、保證轉(zhuǎn)換精度,同時(shí)在總線上理論可以掛接任意多個(gè)DS18B20傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85。 圖4 外部電源連接5) DS18B20溫度處理過(guò)程1、 配置寄存器配置寄存器是配置不同的位數(shù)來(lái)確定溫度和數(shù)字的轉(zhuǎn)化。2、溫度的讀取DS18B20在出廠時(shí)已配置為12位,讀取溫度時(shí)共讀取16位,所以把后11位的2進(jìn)制轉(zhuǎn)化為10進(jìn)制后再乘以0.0625便為所測(cè)的溫度,還需要判斷正負(fù)。前5個(gè)數(shù)字為符號(hào)位,當(dāng)前5位全為1時(shí),讀取的溫度為負(fù)數(shù);當(dāng)前5位全為0時(shí),讀取的溫度為正數(shù)。16位數(shù)字?jǐn)[放是從低位到高位。3、DS1

14、8B20控制方法DS18B20有六條控制命令(RAM):見(jiàn)表2。4、DS18B20的初始化 (1)總線主機(jī)發(fā)送一復(fù)位脈沖(最短為480us的低電平信號(hào))(2)總線主機(jī)釋放總線,并進(jìn)入接收方式(3)單線總線經(jīng)過(guò)5K的上拉電阻被拉至高電平狀態(tài)(4)DS18B20在I/O引腳上檢測(cè)到上升沿之后,等待15-60us,接著發(fā)送存在脈沖(60us-240us的低電平信號(hào))初始化時(shí)序5、向DS18B20發(fā)送控制命令 先通過(guò)總線向DS18B20發(fā)送ROM指令,對(duì)ROM進(jìn)行操作;之后,發(fā)送ROM指令,來(lái)啟動(dòng)傳感器或進(jìn)行其它RAM操作,以完成對(duì)溫度數(shù)據(jù)的轉(zhuǎn)換。6) DS1820使用中注意事項(xiàng) DS1820雖然具有

15、測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題: (1)較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS18B20進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì) DS18B20操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。 (2)在DS18B20的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過(guò)8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一

16、點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。(3)連接DS18B20的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)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è)斐傻?。因此,在用DS18B20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。(4)在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào),一旦某個(gè)DS18B20接觸不好或斷線,當(dāng)程序讀該DS18

17、B20時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。數(shù)據(jù)的處理部分:要求出正數(shù)的十進(jìn)制值,必須將讀取到的LSB 字節(jié),MSB 字節(jié)進(jìn)行整合處理,然后乘以0.0625 即可。Eg:假設(shè)從,字節(jié)0 讀取到0xD0 賦值于Temp1,而字節(jié)1 讀取到0x07 賦值于Temp2,然后求出十進(jìn)制值。unsigned int Temp1,Temp2,Temperature;Temp1=0xD0; /低八位Temp2=0x07; /高八位Temper

18、ature = (Temp2<<8 ) | Temp1 ) * 0.0625;/又或者Temperature = (Temp1 + Temp2 *256) * 0.0625; /Temperature=125在這里我們遇見(jiàn)了一個(gè)問(wèn)題,就是如何求出負(fù)數(shù)的值呢?很遺憾的,單片機(jī)不像人腦那樣會(huì)心算,我們必須判斷BIT1115 是否是1,然后人為置一負(fù)數(shù)標(biāo)志。Eg. 假設(shè)從,字節(jié)0 讀取到0x90 賦值于Temp1,而字節(jié)1 讀取到0xFC 賦值于Temp2,然后求出該值是不是負(fù)數(shù),和轉(zhuǎn)換成十進(jìn)制值。unsigned int Temp1,Temp2,Temperature;unsigned

19、 char Minus_Flag=0;Temp1=0x90; /低八位Temp2=0xFC; /高八位/Temperature = (Temp1 + Temp2 *256) * 0.0625; /Temperature=64656/很明顯不是我們想要的答案if(Temp2&0xFC) /判斷符號(hào)位是否為1Minus_Flag=1; /負(fù)數(shù)標(biāo)志置一Temperature = (Temp2<<8 ) | Temp1 ) /高八位第八位進(jìn)行整合Temperature= (Temperature)+1); /求反,補(bǔ)一Temperature*= 0.0625; /求出十進(jìn)制 /Te

20、mperature=55;elseMinus_Flag=0;Temperature = (Temp2<<8 ) | Temp1 ) * 0.0625;繼續(xù)繼續(xù),以上我們是求出沒(méi)有小數(shù)點(diǎn)的正數(shù)。如果我要求出小數(shù)點(diǎn)的值的話,那么我應(yīng)該這樣做。Eg:假設(shè)從,字節(jié)0 讀取到0xA2 賦值于Temp1,而字節(jié)1 讀取到0x00 賦值于Temp2,然后求出十進(jìn)制值,要求連同小數(shù)點(diǎn)也求出。unsigned int Temp1,Temp2,Temperature;Temp1=0XA2; /低八位Temp2=0x00; /高八位/實(shí)際值為10.125/Temperature = (Temp2<

21、<8 ) | Temp1 ) * 0.0625; /10,無(wú)小數(shù)點(diǎn)Temperature = (Temp2<<8 ) | Temp1 ) * (0.0625 * 10) ; /101 ,一位小數(shù)點(diǎn)/Temperature = (Temp2<<8 ) | Temp1 ) * (0.0625 * 100) ; /1012,二位小數(shù)點(diǎn)如以上的例題,我們可以先將0.0625 乘以10,然后再乘以整合后的Temperature 變量,就可以求出后面一個(gè)小數(shù)點(diǎn)的值(求出更多的小數(shù)點(diǎn),方法都是以此類(lèi)推)。得出的結(jié)果是101,然后再利用簡(jiǎn)單的算法,求出每一位的值。unsinged char Ten,One,Dot1Ten=Temperature/100; /1One=Te

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論