摘要:利用單總線數(shù)字溫度傳感器DS18B20芯片以及微處理器,可以用軟件方法實(shí)現(xiàn)對(duì)傳感器由于環(huán)境溫度帶來的測(cè)量誤差的補(bǔ)償。文中以電阻應(yīng)變式傳感器為例,提出了具體的補(bǔ)償方案。
關(guān)鍵詞:傳感器;溫度補(bǔ)償;單總線DS18B20芯片;神經(jīng)元芯片
Abstract: A one-wire digital chip DS18B20 and microprocessor by software are used to modify the error caused by the changing of surrounding temperature when the sensor is testing. In this paper, a detailed compensation scheme about resistance stain type sensor is put forward.
Key words: Sensor; Temperature compensation; One-wire DS18B20 chip; Neuron Chip
工業(yè)現(xiàn)場(chǎng)的溫度變化范圍大而劇烈,工作在工業(yè)現(xiàn)場(chǎng)的傳感器大多數(shù)都對(duì)溫度有一定的敏感度,這樣就會(huì)使傳感器的零點(diǎn)發(fā)生變化,從而造成輸出值隨環(huán)境溫度變化,導(dǎo)致測(cè)量出現(xiàn)附加誤差,因此溫度補(bǔ)償問題一直是傳感器技術(shù)中的關(guān)鍵環(huán)節(jié)。溫度補(bǔ)償?shù)姆椒壳皯?yīng)用較廣泛的是利用微處理器實(shí)現(xiàn)溫度漂移軟硬件補(bǔ)償方法。本文要介紹的溫度補(bǔ)償方法也屬于一種軟硬件補(bǔ)償,只是在具體實(shí)現(xiàn)的過程中提出了新的設(shè)計(jì)方案-采用單總線數(shù)字溫度計(jì)DS18B20芯片和LonWorks現(xiàn)場(chǎng)總線技術(shù)中的神經(jīng)元芯片(Neuron Chip即CPU)實(shí)現(xiàn)傳感器的溫度補(bǔ)償,并以電阻應(yīng)變片式傳感器為例,詳細(xì)介紹了它的硬件電路和軟件設(shè)計(jì)部分[1-5]。
1 傳感器溫度漂移軟件補(bǔ)償原理
由于環(huán)境溫度變化而引起的附加誤差,可采用軟件補(bǔ)償?shù)姆椒▉硇拚浠舅悸肥牵涸陔娮钁?yīng)變片式傳感器附近敏感部位處,安放一個(gè)測(cè)溫元件,用來檢測(cè)傳感器所在環(huán)境的溫度;把測(cè)溫元件的輸出經(jīng)過多路開關(guān)與信號(hào)同一路徑送入CPU,根據(jù)溫度誤差的數(shù)學(xué)模型去補(bǔ)償被測(cè)信號(hào),以達(dá)到精確測(cè)量的目的。其中誤差修正是根據(jù)應(yīng)變片在無載荷情況下,由于溫度變化而引起的溫度漂移的應(yīng)變值。
傳感器采用這種軟件補(bǔ)償方法解決溫度附加誤差時(shí),通常測(cè)溫元件采用熱電阻,因此必須增加相應(yīng)的熱電阻溫度變送器及A/D轉(zhuǎn)換兩部分的電路,任何一個(gè)環(huán)節(jié)都不能缺少,具體實(shí)施起來難免顯得有些繁瑣,而且兩部分電路的溫度特性可能成為新的附加誤差。
針對(duì)上述問題,可以通過使用數(shù)字溫度傳感器代替熱電阻檢測(cè)電阻應(yīng)變片周圍環(huán)境溫度。本設(shè)計(jì)采用由美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單總線智能溫度傳感器。它具有其它溫度傳感器無法比擬的特點(diǎn):
(1) DS18B20采用DALLAS公司獨(dú)特的"單線(1-wire)總線"專有技術(shù),通過串行通信接口(I/O)直接輸出被測(cè)溫度(9位二進(jìn)制數(shù),含符號(hào)位);
(2) 測(cè)溫范圍為-55~+125℃,其分辨率為0.5℃,若采用高分辨率模式,分辨率可達(dá)0.1℃,溫度轉(zhuǎn)換可在1s內(nèi)完成;
(3) 適配各種單片機(jī)或系統(tǒng)機(jī),具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等特點(diǎn);
(4) 價(jià)格便宜,市售僅為幾元錢,僅為普通變送器的十分之一;
(5) 只需一根數(shù)據(jù)線就能實(shí)現(xiàn)與微處理器的通訊,而且芯片正常工作所需電源也可以從數(shù)據(jù)線上獲得,無需外部電源[2]。
經(jīng)試驗(yàn)研究證明,DS18B20這種溫度傳感器可以很好地解決溫度漂移軟件補(bǔ)償中的測(cè)溫問題。
DS18B20的工作原理是:DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其中GND為地;I/O為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開路輸出,常態(tài)下呈高電平;Vdd是外部+5V電源端,不用時(shí)應(yīng)接地;NC為空腳。圖1所示為DS1820的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH和TL觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分[3]。
圖1 DS18B20內(nèi)部結(jié)構(gòu)圖
DS18B20的溫度測(cè)量原理如下:DS18B20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù),其測(cè)量電路框圖如圖2所示。內(nèi)部計(jì)數(shù)器對(duì)一個(gè)受溫度影響的振蕩器的脈沖計(jì)數(shù),低溫時(shí)振蕩器的脈沖可以通過門電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時(shí),振蕩器的脈沖無法通過門電路。計(jì)數(shù)器設(shè)置為-55℃時(shí)的值,如果計(jì)數(shù)器到達(dá)0之前,門電路未關(guān)閉,則溫度寄存器的值將增加,這表示當(dāng)前溫度高于-55℃。同時(shí),計(jì)數(shù)器復(fù)位在當(dāng)前溫度值上,電路對(duì)振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計(jì)數(shù)器重新開始計(jì)數(shù)直到回零。如果門電路仍然未關(guān)閉,則重復(fù)以上過程[3]。
圖2 DS18B20測(cè)溫原理框圖
2 電阻應(yīng)變式傳感器的溫度補(bǔ)償方案
電阻應(yīng)變片式傳感器的最大用武之地是稱重和測(cè)力領(lǐng)域。這種傳感器有如下特點(diǎn):應(yīng)用和測(cè)量范圍廣,應(yīng)變片可制成各種機(jī)械測(cè)量傳感器,分辨力和靈敏度高,結(jié)構(gòu)輕小,商品化。不過和大多數(shù)傳感器一樣,其溫度特性不太理想,在實(shí)際使用時(shí)需進(jìn)行溫度補(bǔ)償[4]。
具體思路是:在確定傳感器與溫度之間的數(shù)學(xué)模型后,通過數(shù)字溫度傳感器DS18B20芯片,直接把溫度信號(hào)轉(zhuǎn)換為相應(yīng)的數(shù)字量,送入CPU進(jìn)行后續(xù)處理,即根據(jù)傳感器的溫度特性對(duì)測(cè)量進(jìn)行修正,實(shí)現(xiàn)用軟件的方法消除由于環(huán)境溫度的變化給測(cè)量帶來的誤差。
2.1 電阻應(yīng)變片式傳感器溫度補(bǔ)償硬件電路設(shè)計(jì)
硬件電路設(shè)計(jì)如圖3所示,其核心部分是51單片機(jī)的CPU芯片和DS18B20芯片。51單片機(jī)的CPU采用AT89C52,共32個(gè)雙向可編程I/O口。這些I/O口根據(jù)不同需要,靈活選擇接口方式,實(shí)現(xiàn)與外圍設(shè)備的接口。本文涉及的I/O對(duì)象主要有DS18B20的數(shù)據(jù)總線,A/D轉(zhuǎn)換的數(shù)據(jù)總線及液晶的控制及數(shù)據(jù)總線。其中DS18B20由AT89C52的P1.0腳控制。
圖3 電阻應(yīng)變式傳感器溫度補(bǔ)償硬件電路圖
對(duì)于DS18B20芯片工作時(shí)所需的一系列初始化序列,都由相應(yīng)的時(shí)序來控制。有了這些時(shí)序CPU對(duì)外圍元件DS18B20芯片的控制與通信就顯得非常方便。
2.2 電阻應(yīng)變片式傳感器溫度補(bǔ)償軟件設(shè)計(jì)
從圖3給出的硬件電路可以發(fā)現(xiàn),電阻應(yīng)變式傳感器溫度補(bǔ)償環(huán)節(jié)的硬件電路比較簡(jiǎn)單,然而簡(jiǎn)潔的硬件配置是靠復(fù)雜的軟件來支撐的。為保證數(shù)據(jù)可靠傳送,任一時(shí)刻單總線上只能有一個(gè)控制信號(hào)或數(shù)據(jù),因此進(jìn)行數(shù)據(jù)傳輸通信時(shí),要符合總線協(xié)議。一般有以下四個(gè)過程:初始化信號(hào),傳送ROM信號(hào),傳送RAM信號(hào)和數(shù)據(jù)交換。神經(jīng)元芯片所用的編程語言本設(shè)計(jì)采用匯編語言編程,其軟件設(shè)計(jì)包括以下兩個(gè)部分:
(1) 溫漂值的測(cè)定
在實(shí)驗(yàn)室里,將傳感器貼在不受任何載荷模擬現(xiàn)場(chǎng)的試件上,然后人為地使溫度升高(或降低),例如:將應(yīng)變片及其附屬設(shè)備放在冰箱或冰柜里。利用溫度傳感器DS18B20測(cè)出其溫度,再利用單片機(jī)讀出相應(yīng)的應(yīng)變值。將與溫度相對(duì)應(yīng)的應(yīng)變值存入片外RAM中,并建立一個(gè)溫度和溫漂值相對(duì)應(yīng)的數(shù)據(jù)庫。
(2) 結(jié)果的修正
在現(xiàn)場(chǎng),通過軟硬件測(cè)得環(huán)境溫度后,接著要對(duì)一定環(huán)境溫度應(yīng)變值進(jìn)行修正,其流程圖如圖4所示。首先,在現(xiàn)場(chǎng)將電阻應(yīng)變片貼在試件上,測(cè)出其應(yīng)變值,然后將其結(jié)果輸入CPU中,用CPU記錄此結(jié)果,再從數(shù)據(jù)庫中讀出與溫度相應(yīng)的溫漂值,并對(duì)該溫度下測(cè)得低應(yīng)變值進(jìn)行修正,最后輸出經(jīng)過溫度補(bǔ)償真實(shí)的應(yīng)變值,并存入片外RAM中。
圖4 軟件補(bǔ)償流程圖
3 結(jié)語
傳感器的溫度漂移問題是影響傳感器正常工作的一個(gè)比較棘手的難題。通過本文的例子可以看出,單總線芯片DS18B20不僅可以應(yīng)用于溫度檢測(cè),而且更加方便地解決了傳感器的溫度漂移補(bǔ)償。并且DS18B20系列芯片不斷有新的功能推出,它在傳感器溫度補(bǔ)償中的應(yīng)用前景是廣泛的。
參考文獻(xiàn):
[1] 劉君華.智能傳感器系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,1999,1.
[2] Dallas Semiconductor Data Book, DS1820 Data Sheet.
[3] 沙占有.智能化集成溫度傳感器原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002,7:84-102.
[4] 劉少強(qiáng).檢測(cè)技術(shù)與系統(tǒng)設(shè)計(jì)[M].北京:中國電力出版社,2002,1:66-85.
[5] DS18B20 Programmable Resolution 1-Wire Digital Thermometer. http://www.dalsemi.com.
[6] 王俊省.微計(jì)算機(jī)檢測(cè)技術(shù)及應(yīng)用[M].北京:電子工業(yè)出版社,1999:147-151.
[7] LonWorks Technology Device Data,Motorola Inc,1997:15-40.
[8] Neuron Chip Data Book,Motorola and Toshiba,1992:119-130.