DS18B20 的使用方法是什么
DS18B20是DALLAS公司推出的單總線(xiàn)溫度傳感器,因其具有結(jié)構(gòu)簡(jiǎn)單、精度高等優(yōu)點(diǎn),而廣泛應(yīng)用于溫度監(jiān)控等單片機(jī)應(yīng)用系統(tǒng)。
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號(hào),具有體積小,硬件開(kāi)銷(xiāo)低,抗干擾能力強(qiáng),精度高的特點(diǎn)。DS18B20數(shù)字溫度傳感器接線(xiàn)方便,封裝成后可應(yīng)用于多種場(chǎng)合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。
主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀(guān)。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極限溫度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。
1.DS18B20的引腳及性能指標(biāo)DS18B20有3個(gè)引腳,分別是:
1)GND(引腳1),接地引腳。
2)DQ(引腳12),單總線(xiàn)的數(shù)據(jù)輸入/輸出和時(shí)鐘信號(hào)引腳。
3)VDD(引腳3),接外部電源(電壓范圍為+3~+5.5V)的引腳,若采用寄生電源方式供電,則該引腳應(yīng)接地。
DS18B20的主要性能指標(biāo)有:
1)可測(cè)溫度的范圍為-55~+125℃。
2)溫度分辨率可以配置為9~12位,在12位時(shí)的單次轉(zhuǎn)換時(shí)間為750ms。3)溫度測(cè)量在-10~+85℃時(shí),測(cè)量精度為±0.5℃。
4)可以設(shè)置溫度的上、下限報(bào)警值,并存在其內(nèi)部的非易失存儲(chǔ)器中。5)能夠識(shí)別產(chǎn)生溫度報(bào)警的器件。
2.DS18B20的操作指令
在單總線(xiàn)通信中,主機(jī)首先選擇與之通信的DS18B20,然后通過(guò)給DS18B20發(fā)操作命令來(lái)控制其工作。DS18B20的所有操作命令均以8位二進(jìn)制數(shù)表示,見(jiàn)表6-3由表6-3可知,ROM命令主要用于DS18B20的定位(如確定總線(xiàn)上哪一個(gè)DS18B20出現(xiàn)了報(bào)警),而存儲(chǔ)控制命令主要用于控制溫度轉(zhuǎn)換和數(shù)據(jù)的讀、寫(xiě)等。
表6-3 DS18B20的ROM命令
(1)DS18B20的ROM序列號(hào)
ROM序列號(hào)是每個(gè)單總線(xiàn)接口器件都有的唯一的編號(hào),共64位,其中,最后8位是廠(chǎng)家號(hào)(Family Code),DS18B20的廠(chǎng)家號(hào)是10H;中間48位是序列號(hào)(Serial Number);最高8位是CRC冗余檢驗(yàn)碼(CRC Code)。
(2)DS18B20內(nèi)部的存儲(chǔ)結(jié)構(gòu)
DS18B20內(nèi)部存儲(chǔ)資源由高速暫存器和EEPROM構(gòu)成,如圖6-22所示。其中,暫存器的第4個(gè)字節(jié)是配置寄存器(見(jiàn)表6-4),其第6位和第5位用于設(shè)置溫度傳感器的位數(shù)(即分辨率)。
圖6-22 DS18B20的存儲(chǔ)結(jié)構(gòu)
表6-4 DS18B20的配置寄存器
DS18B20的默認(rèn)分辨率為12位。溫度值的低字節(jié)和高字節(jié)分別存放于暫存器的字節(jié)0和字節(jié)1。另外,DS18B20可以采集正、負(fù)溫度,因此溫度以補(bǔ)碼形式存放。采用12位分辨率時(shí)的溫度存放格式見(jiàn)表6-5,其中:
1)字母“S”代表溫度的符號(hào)位,這些位為1時(shí),溫度為負(fù)數(shù),否則為正數(shù)。
2)表格中的數(shù)字為對(duì)應(yīng)二進(jìn)制位的權(quán)重。其中低字節(jié)的bit3~bit0是二進(jìn)制小數(shù)位,其余位是整數(shù)位。例如,若溫度數(shù)據(jù)為0FE6FH(1111 1110 0110 1111B),則溫度值為-25.0625=-1×211+1×210+1×29+1×28+1×27+1×26+1×25+0×24+0×23+1×22+1×21+0×20+1×2?1+1×2?2+1×2?3+1×2?4。在DS18B20復(fù)位時(shí),暫存器字節(jié)0和字節(jié)1的值分別是50H和05H,則溫度值為85℃。
表6-5溫度存放格式
3.DS18B20的使用方法
若DS18B20采用其默認(rèn)配置(12位的溫度分辨率),并假設(shè)總線(xiàn)上只存在一個(gè)DS18B20,則DS18B20的使用步驟如下:
1)檢測(cè)DS18B20是否存在(在線(xiàn)),若存在則進(jìn)入下一步操作,否則不能進(jìn)行通信。2)向DS18B20發(fā)送命令0CCH,即跳過(guò)ROM匹配環(huán)節(jié)。
3)向DS18B20發(fā)送命令44H,啟動(dòng)溫度轉(zhuǎn)換。
4)向DS18B20發(fā)送命令0BEH,準(zhǔn)備讀取轉(zhuǎn)換結(jié)果。
5)連續(xù)從DS18B20的暫存器讀取9個(gè)字節(jié)數(shù)據(jù),其中第0個(gè)和第1個(gè)字節(jié)分別為溫度的低字節(jié)和高字節(jié)。
DS1820使用中注意事項(xiàng)
DS1820雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線(xiàn)少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:
1、較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。
2、在DS1820的有關(guān)資料中均未提及單總線(xiàn)上所掛DS1820數(shù)量問(wèn)題,容易使人誤認(rèn)為可以?huà)烊我舛鄠€(gè)DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線(xiàn)上所掛DS1820超過(guò)8個(gè)時(shí),就需要解決微處理器的總線(xiàn)驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。
3、連接DS1820的總線(xiàn)電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線(xiàn)電纜改為雙絞線(xiàn)帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線(xiàn)帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線(xiàn)分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線(xiàn)分布電容和阻抗匹配問(wèn)題。
4、在DS1820測(cè)溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線(xiàn),當(dāng)程序讀該DS1820時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測(cè)溫電纜線(xiàn)建議采用屏蔽4芯雙絞線(xiàn),其中一對(duì)線(xiàn)接地線(xiàn)與信號(hào)線(xiàn),另一組接VCC和地線(xiàn),屏蔽層在源端單點(diǎn)接地。