由DSl8820構(gòu)成的多點(diǎn)溫度測(cè)量系統(tǒng)
關(guān)鍵詞 溫度測(cè)量 數(shù)字溫度傳感器 單線總線 搜索算法
引 言
在傳統(tǒng)的溫度測(cè)量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù)進(jìn)行設(shè)計(jì),這樣就不可避免地遇到諸如引線誤差補(bǔ)償、多點(diǎn)測(cè)量中的切換誤差和信號(hào)調(diào)理電路的誤差等問(wèn)題;而其中某一環(huán)節(jié)處理不當(dāng),就可能造成整個(gè)系統(tǒng)性能的下降。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個(gè)重要方向。美國(guó)Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DSl8820,具有獨(dú)特的單總線接口,僅需要占用一個(gè)通用I/O端口即可完成與微處理器的通信;在一10~+85℃溫度范圍內(nèi)具有O.5℃精度;用戶可編程設(shè)定9~12位的分辨率。以上特性使得DSl8820非常適用于構(gòu)建高精度、多點(diǎn)溫度測(cè)量系統(tǒng)。
1 DSl8820簡(jiǎn)介
1.1 DSl8820的特點(diǎn)
DSl8820是美國(guó)Dallas半導(dǎo)體公司繼DSl820之后最新推出的一種改進(jìn)型智能數(shù)字溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式;可以分別在93.75ms和75O ms內(nèi)完成9位和12位的數(shù)字量;從DSl8820讀出信息或?qū)懭隓Sl8820信息僅需要1根口線(單線接口);溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DSl8820供電,而無(wú)需額外電源。使用DSl8820可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。DSl8820在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DSl820有了很大的改進(jìn)。
1.2 DSl8820內(nèi)部結(jié)構(gòu)及工作原理
DSl8820的內(nèi)部結(jié)構(gòu)如圖1所示,主要包括寄生電源電路、64位只讀存儲(chǔ)器(ROM)和單線接口、存儲(chǔ)器和控制邏輯、存放中間數(shù)據(jù)的高速暫存存儲(chǔ)器、溫度傳感器、報(bào)警上限寄存器TH、報(bào)警下限寄存器TL、配置寄存器和8位CRC(循環(huán)冗余校驗(yàn)碼)發(fā)生器。
DSl8820的核心是其數(shù)字溫度傳感器,精度可以通過(guò)用戶編程配置為9、10、ll和12位,其分別對(duì)應(yīng)于0.5℃、O,25℃、O.125℃和0.062 5℃,可以滿足各種不同的分辨率要求。開(kāi)始一次溫度轉(zhuǎn)換時(shí),微處理器需要向DSl8820發(fā)出Convert T指令。轉(zhuǎn)換完成之后,該溫度數(shù)據(jù)存放在高速暫存存儲(chǔ)器的溫度寄存器中,占用2字節(jié),并且DSl8820返回到空閑狀態(tài)。當(dāng)DSl8820采用外部供電方式時(shí),主機(jī)可以在發(fā)送溫度轉(zhuǎn)換指令后發(fā)起一次讀時(shí)隙。若此時(shí)該DSl8820已經(jīng)完成溫度轉(zhuǎn)換,它將會(huì)返回“1”,否則返回“0”。
2 溫度測(cè)量系統(tǒng)設(shè)計(jì)
由DS18820和美國(guó)Microchip公司推出的PIC單片機(jī)PICl8F8620以及相關(guān)外圍電路組成的高精度、多點(diǎn)溫度測(cè)量系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。系統(tǒng)采用6片DSl8820構(gòu)成小型溫度傳感器網(wǎng)絡(luò),通過(guò)單線連接方式連接至微處理器的通用I/O端口RB0。其中DSl8820的分辨率為11位模式,即O.125℃。微處理器通過(guò)單線協(xié)泌與溫度傳感器網(wǎng)絡(luò)實(shí)現(xiàn)通信。微處理器獲得溫度信息后,通過(guò)特定的算法,將處理后的溫度信息通過(guò)USB口或RS485接口傳送至上位機(jī)。
2.1 DSl8820的自動(dòng)搜索算法
由于系統(tǒng)中使用了多片DS18B20構(gòu)成溫度傳感器網(wǎng)絡(luò),因此,如何準(zhǔn)確、有效地對(duì)每一溫度傳感器進(jìn)行尋址成為該系統(tǒng)設(shè)計(jì)的一個(gè)核心問(wèn)題。結(jié)合DS18820的實(shí)際特點(diǎn)和系統(tǒng)的需求,提出如下解決方案:首先利用DS18820的內(nèi)部報(bào)警上限寄存器(如圖1所示,以下簡(jiǎn)稱“TH寄存器”)存放溫度傳感器的編號(hào),并將其編號(hào)貼在溫度傳感器表面。由于TH寄存器具有掉電不丟失數(shù)據(jù)功能,因此,便把每片DSl8820的唯一64位注冊(cè)碼及其編號(hào)一一對(duì)應(yīng)起來(lái)。這一過(guò)程需要對(duì)DSl8820進(jìn)行單獨(dú)編程。然后,將確定好編號(hào)的溫度傳感器接入單線網(wǎng)絡(luò),利用DSl8820特有的單線網(wǎng)絡(luò)自動(dòng)搜索功能,即可搜尋到每片DSl8820的注冊(cè)碼,再利用該注冊(cè)碼和相應(yīng)的ROM操作指令,即可從每片DSl8820的TH寄存器中讀出相應(yīng)的設(shè)定編號(hào),實(shí)現(xiàn)每片DS18820的尋址功能。下面重點(diǎn)介紹一下該自動(dòng)搜索功能。
每片DS18820有唯一的64位注冊(cè)碼,存儲(chǔ)在只讀存儲(chǔ)器(ROM)中,其結(jié)構(gòu)如下:
其中低8位是產(chǎn)品的工廠代碼(DSl882(1為28H),接著是每個(gè)器件的唯一序號(hào),共48位,最高8位是前56位的循環(huán)冗余校驗(yàn)碼。這就準(zhǔn)許總線主機(jī)對(duì)總線上特定的DS18820進(jìn)行尋址。只有與64位注冊(cè)碼嚴(yán)格相符的DSl8820,才能對(duì)后續(xù)的操作作出反應(yīng)。所有與64位注冊(cè)碼不符的DSl8820將等待復(fù)位脈沖。
搜索算法首先通過(guò)復(fù)位和在線應(yīng)答脈沖時(shí)隙將單線總線上的所有DS18820復(fù)位。成功地執(zhí)行該操作后發(fā)送1字節(jié)的搜索命令,使所有連接到單總線的DSl8820準(zhǔn)備就緒,開(kāi)始進(jìn)行搜索操作。搜索命令發(fā)出之后,開(kāi)始實(shí)際的搜索過(guò)程。
首先,總線上的所有DSl8820同時(shí)發(fā)送注冊(cè)碼中的第1位(最低有效位,參見(jiàn)上述DS18820內(nèi)部64位注冊(cè)碼結(jié)構(gòu))。按照單總線的特性,當(dāng)所有DS18820同時(shí)應(yīng)答主機(jī)時(shí),結(jié)果相當(dāng)于全部被發(fā)送數(shù)據(jù)位的邏輯“與”。DSl8820發(fā)送其注冊(cè)碼的第1位后,主機(jī)啟動(dòng)下一位操作,接著DS181320發(fā)送第l位數(shù)據(jù)的補(bǔ)碼。從兩次讀到的數(shù)據(jù)位可以對(duì)注冊(cè)碼的第1位作出幾種判斷,如表1所列。
然后,主機(jī)向總線上的所有器件發(fā)回一個(gè)指定位。如果DSl8820巾注冊(cè)碼的當(dāng)前位的值與該數(shù)據(jù)位匹配,則繼續(xù)參與搜索過(guò)程;若DS18820的當(dāng)前位與之不匹配,則該器件轉(zhuǎn)換到等待狀態(tài)并保持等待狀態(tài),直到下一個(gè)復(fù)位信號(hào)到來(lái)。其余63位注冊(cè)碼的搜索依然按照這種讀2位寫(xiě)1位的模式進(jìn)行重復(fù)操作。按照這種搜索算法進(jìn)行下去,最終除了唯一一個(gè)DSl8820外,所有DS18820將進(jìn)入等待狀態(tài),經(jīng)過(guò)最后一輪檢測(cè)就可得到最后保留未進(jìn)入等待狀態(tài)的DSl8820的注冊(cè)碼。在后續(xù)搜索過(guò)程中選用不同的路徑或分支來(lái)查找其他器件的注冊(cè)碼,即可完成所有器件注冊(cè)碼的識(shí)別。
2.2 軟件系統(tǒng)設(shè)計(jì)
系統(tǒng)軟件采用C語(yǔ)言編寫(xiě)。在中斷服務(wù)程序中,實(shí)現(xiàn)用戶輸入以及和上位機(jī)的接口功能;在主程序中,實(shí)現(xiàn)溫度傳感器網(wǎng)絡(luò)的自動(dòng)搜索、編號(hào)排序、獲取溫度信息,并根據(jù)預(yù)先設(shè)定的溫度上下限,實(shí)現(xiàn)相應(yīng)的報(bào)警功能。該系統(tǒng)中,根據(jù)不同的分辨率要求,DSl8820的分辨率可通過(guò)編程設(shè)定,最高分辨率為12位,即0.0625℃,可滿足高精度設(shè)計(jì)要求。同時(shí),由于設(shè)計(jì)中使用傳感器網(wǎng)絡(luò)的自動(dòng)搜索算法,因此,當(dāng)對(duì)網(wǎng)絡(luò)中的溫度傳感器作出調(diào)整(如更換、添加、刪除等操作)時(shí),系統(tǒng)具有很強(qiáng)的自適應(yīng)能力。系統(tǒng)軟件流程如圖3所示。
3 結(jié)論
在傳統(tǒng)的溫度測(cè)量系統(tǒng)中,往往采用模擬的溫度傳感器進(jìn)行設(shè)計(jì),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才可以被微處理器識(shí)別和處理。這樣的設(shè)計(jì)方法不僅對(duì)前端模擬信號(hào)處理電路提出了更高的要求,而且不具有數(shù)字通信和網(wǎng)絡(luò)功能。本文結(jié)合DSl8820的新特性和現(xiàn)代溫度測(cè)量系統(tǒng)提出的新要求,提出了基于智能數(shù)字溫度傳感器DSl8820的高精度、多點(diǎn)溫度測(cè)量系統(tǒng)設(shè)計(jì)方案。該方案具有安裝方便、數(shù)字化程度高、精度高、適應(yīng)性強(qiáng)等特點(diǎn),在多種溫度檢測(cè)中具有廣闊的應(yīng)用前景。
評(píng)論