ds18b20數(shù)字溫度傳感器提供9-12位攝氏度溫度測量數(shù)據(jù),可編程非易失存儲器設(shè)置溫度監(jiān)測的上限和下限,提供溫度報警。ds18b20通過1-Wire?總線通信,只需要一條數(shù)據(jù)線 (和地線) 即可與處理器進(jìn)行數(shù)據(jù)傳輸。器件可以工作在-55°C至+125°C范圍,在-10°C至+85°C范圍內(nèi)測量精度為±0.5°C。此外,ds18b20還可以直接利用數(shù)據(jù)線供電 (寄生供電),無需外部電源。
每個ds18b20具有唯一的64位序列號,從而允許多個ds18b20掛接在同一條1-Wire總線??梢苑奖愕夭捎靡粋€微處理器控制多個分布在較大區(qū)域的ds18b20。該功能非常適合HVAC環(huán)境控制、樓宇/大型設(shè)備/機(jī)器/過程監(jiān)測與控制系統(tǒng)內(nèi)部的溫度測量等應(yīng)用。
ds18b20關(guān)鍵特性
獨特的1-Wire?接口僅占用一個通信端口
內(nèi)置溫度傳感器和EEPROM減少外部元件數(shù)量
測量溫度范圍:-55°C至+125°C (-67°F至+257°F)
-10°C至+85°C溫度范圍內(nèi)測量精度為±0.5°C
9位至12位可編程分辨率
無需外部元件
寄生供電模式下只需要2個操作引腳(DQ和GND)
多點通信簡化分布式溫度測量
每個器件具有唯一的64位序列號,存儲在器件ROM內(nèi)
用戶可靈活定義溫度報警門限,通過報警搜索指令找到溫度超出門限的器件
提供8引腳SO(150 mils)、8引腳μSOP、3引腳TO-92封裝
ds18b20時序圖
初始化時序圖
讀時隙時序圖
寫時隙時序圖
ds18b20操作流程
1, 復(fù)位:首先我們必須對ds18b20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給ds18b20單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。
2, 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。
3, 控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進(jìn)行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細(xì)的介紹。
4, 控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。 5, 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機(jī))必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴(yán)格遵循18B20的讀寫時序來操作。
若要讀出當(dāng)前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。其它的操作流程也大同小異,在此不多介紹。