第二部分:DS18B20的多種電路連接方式
如下面的兩張圖片所示,分別為外部供電模式下單只和多只DS18B20測(cè)溫系統(tǒng)的典型電路連接圖。
?。?)外部供電模式下的單只DS18B20芯片的連接圖
這里需要說明的是,DS18B20芯片通過達(dá)拉斯公司的單總線協(xié)議依靠一個(gè)單線端口通訊,當(dāng)全部器件經(jīng)由一個(gè)三態(tài)端口或者漏極開路端口與總線連接時(shí),控 制線需要連接一個(gè)弱上拉電阻。在多只DS18B20連接時(shí),每個(gè)DS18B20都擁有一個(gè)全球唯一的64位序列號(hào),在這個(gè)總線系統(tǒng)中,微處理器依靠每個(gè)器 件獨(dú)有的64位片序列號(hào)辨認(rèn)總線上的器件和記錄總線上的器件地址,從而允許多只DS18B20同時(shí)連接在一條單線總線上,因此,可以很輕松地利用一個(gè)微處 理器去控制很多分布在不同區(qū)域的DS18B20,這一特性在環(huán)境控制、探測(cè)建筑物、儀器等溫度以及過程監(jiān)測(cè)和控制等方面都非常有用。
對(duì) 于DS18B20的電路連接,除了上面所說的傳統(tǒng)的外部電源供電時(shí)的電路連接圖,DS18B20也可以工作在“寄生電源模式”,而下圖則表示了 DS18B20工作在“寄生電源模式”下的電路連接圖。沒錯(cuò),這樣就可以使DS18B20工作在寄生電源模式下了,不用額外的電源就可以實(shí)時(shí)采集到位于多 個(gè)地點(diǎn)的溫度信息了。
第三部分:DS18B20內(nèi)部寄存器解析及工作原理
介紹完DS18B20的封裝、針腳定義和連接方式后,我們有必要了解DS18B20芯片的各個(gè)控制器、存儲(chǔ)器的相關(guān)知識(shí),如下圖所示,為DS18B20內(nèi)部主要寄存器的結(jié)果框圖。
結(jié)合圖中的內(nèi)部寄存器框圖,我們先簡(jiǎn)單說一下DS18B20芯片的主要寄存器工作流程,而在對(duì)DS18B20工作原理進(jìn)行詳細(xì)說明前,有必要先上幾張相關(guān)圖片:
?。?)DS18B20內(nèi)部寄存器結(jié)構(gòu)圖
? (2)DS18B20主要寄存器數(shù)據(jù)格式圖示
(3)DS18B20通訊指令圖
了解了這些內(nèi)部結(jié)構(gòu)和細(xì)節(jié),下面說一下DS18B20芯片的工作原理。
DS18B20啟動(dòng)后將進(jìn)入低功耗等待狀態(tài),當(dāng)需要執(zhí)行溫度測(cè)量和AD轉(zhuǎn)換時(shí),總線控制器(多為單片機(jī))發(fā)出[44H]指令完成溫度測(cè)量和AD轉(zhuǎn)換(其 他功能指令見上面的指令表),DS18B20將產(chǎn)生的溫度數(shù)據(jù)以兩個(gè)字節(jié)的形式存儲(chǔ)到高速暫存器的溫度寄存器中,然后,DS18B20繼續(xù)保持等待狀態(tài)。 當(dāng)DS18B20芯片由外部電源供電時(shí),總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)隙”(詳見本帖的“DS18B20時(shí)隙圖”),從而讀出測(cè)量到的溫度數(shù)據(jù) 通過總線完成與單片機(jī)的數(shù)據(jù)通訊(DS18B20正在溫度轉(zhuǎn)換中由DQ引腳返回0,轉(zhuǎn)換結(jié)束則返回1。如果DS18B20由寄生電源供電,除非在進(jìn)入溫度 轉(zhuǎn)換時(shí)總線被一個(gè)強(qiáng)上拉拉高,否則將不會(huì)有返回值)。另外,DS18B20在完成一次溫度轉(zhuǎn)換后,會(huì)將溫度值與存儲(chǔ)在TH(高溫觸發(fā)器)和TL(低溫觸發(fā) 器)中各一個(gè)字節(jié)的用戶自定義的報(bào)警預(yù)置值進(jìn)行比較,寄存器中的S標(biāo)志位(詳見寄存器格式圖示中的“TH和TL寄存器格式”圖示)指出溫度值的正負(fù) (S=0時(shí)為正,S=1時(shí)為負(fù)),如果測(cè)得的溫度高于TH或者低于TL數(shù)值,報(bào)警條件成立,DS18B20內(nèi)部將對(duì)一個(gè)報(bào)警標(biāo)識(shí)置位,此時(shí),總線控制器通 過發(fā)出報(bào)警搜索命令[ECH]檢測(cè)總線上所有的DS18B20報(bào)警標(biāo)識(shí),然后,對(duì)報(bào)警標(biāo)識(shí)置位的DS18B20將響應(yīng)這條搜索命令。