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