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