陳曉雷
摘 要:傳統(tǒng)溫度傳感器系統(tǒng)多采用放大、調(diào)理、A/D轉(zhuǎn)換等形式將溫度信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)傳遞至計(jì)算機(jī)進(jìn)行處理,不僅處理電路復(fù)雜,占用計(jì)算機(jī)資源多,而且無(wú)法保證其可靠性。DS18B20不僅電路簡(jiǎn)單,而且成本低,并且具有較好的擴(kuò)展性,便于組網(wǎng)及多點(diǎn)測(cè)量。該研究探討一種基于DS18B20的數(shù)字溫度計(jì)。
關(guān)鍵詞:DS18B20 數(shù)字溫度計(jì) 設(shè)計(jì)
中圖分類(lèi)號(hào):TH811 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)03(b)-0117-02
1 DS18B20的特點(diǎn)及性能
傳統(tǒng)的溫度測(cè)量系統(tǒng)通常采用熱電偶或熱電阻測(cè)量溫度,而熱電阻必須在一個(gè)良好的恒流源中才能保證溫度測(cè)量的準(zhǔn)確性;而熱電偶發(fā)送的信號(hào)為模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換才能將其發(fā)送至CPU進(jìn)行相應(yīng)處理,且熱電偶信號(hào)僅有十幾個(gè)mA,由于過(guò)于微弱在A/D轉(zhuǎn)換之前需要進(jìn)行增益放大,因此應(yīng)用熱電偶或熱電阻構(gòu)成的溫度測(cè)量系統(tǒng)比較復(fù)雜。DS18B20是一種單線數(shù)字溫度傳感器芯片,由美國(guó)Dallas公司生產(chǎn),與傳統(tǒng)的溫度傳感器不同,DS18B20可將測(cè)得的溫度信號(hào)直接轉(zhuǎn)換為可供單片機(jī)處理的串行數(shù)字信號(hào),因此可獲得更高的工作效率。通過(guò)編程,可通過(guò)DS18B20實(shí)現(xiàn)9~12位的溫度讀數(shù),其溫度測(cè)量范圍在-55 ℃~+125 ℃,其中- 10 ℃~+ 85 ℃其測(cè)溫準(zhǔn)確度誤差可控制在0.5 ℃。相比其他溫度測(cè)量元件,DS18B20的小體積、低功耗、強(qiáng)大的抗干擾能力、易連接微處理器等優(yōu)勢(shì)十分突出,其測(cè)量溫度時(shí)無(wú)需其他硬件,僅需一根I/O口線即可實(shí)現(xiàn)與單片機(jī)的信息交換,其工作電源既可遠(yuǎn)端引入,也可采用寄生電源的方式而無(wú)需額外電源,可通過(guò)數(shù)據(jù)總線向其提供讀寫(xiě)及溫度轉(zhuǎn)換功率等,大大簡(jiǎn)化了電路設(shè)計(jì)。此外,每片DS18B20均設(shè)置對(duì)應(yīng)的產(chǎn)品序列號(hào),該序列號(hào)存放于其內(nèi)部ROM中,由于DS18B20的序列號(hào)具有唯一性,單片機(jī)在識(shí)別序列號(hào)時(shí)通過(guò)簡(jiǎn)單的協(xié)議即可實(shí)現(xiàn),正是其這一特點(diǎn)使得多個(gè)DS18B20可掛接于同一條單線總線,不僅占據(jù)較少微處理器的端口,而且可減少引線及邏輯電路的應(yīng)用,在多點(diǎn)溫度測(cè)控系統(tǒng)的應(yīng)用中具有較大優(yōu)勢(shì)。
2 DS18B20溫度測(cè)量原理
達(dá)拉斯公司將其特有的溫度測(cè)量技術(shù)融入到DS18B20中,其內(nèi)部具有低溫度系數(shù)振蕩器及高溫度系數(shù)振蕩器,應(yīng)用過(guò)程中該低溫振蕩器可產(chǎn)生頻率信號(hào)f0,而被測(cè)溫度會(huì)將高溫度系數(shù)振蕩器轉(zhuǎn)換成頻率信號(hào)f,DS18B20計(jì)數(shù)門(mén)的開(kāi)通時(shí)間由高溫系數(shù)振蕩器來(lái)決定,計(jì)數(shù)門(mén)打開(kāi)時(shí)DS18B20對(duì)f0計(jì)數(shù);測(cè)溫過(guò)程中頻率會(huì)存在非線性,DS18B20內(nèi)部設(shè)置為斜率累加器用于補(bǔ)償頻率的非線性。DS18B20測(cè)溫完畢后將測(cè)量結(jié)果暫存于溫度寄存器,單片機(jī)可直接讀取測(cè)量結(jié)果。DS18B20完成溫度變換后溫度值會(huì)與告警觸發(fā)值進(jìn)行比較,告警觸發(fā)值存儲(chǔ)于TH與TL內(nèi)。如實(shí)際測(cè)量過(guò)程中溫度高于TH或低于TL,則器件內(nèi)告警標(biāo)志將置位,每測(cè)量一次溫度此標(biāo)志就會(huì)更新。當(dāng)告警標(biāo)志置位時(shí)DS18B20會(huì)響應(yīng)告警搜索命令,故單線上多個(gè)DS18B20均可同時(shí)測(cè)量溫度,如果某處溫度越限,正在告警的器件也會(huì)被準(zhǔn)確識(shí)別出來(lái)。
3 基于DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)與實(shí)現(xiàn)
3.1 硬件電路設(shè)計(jì)
該研究提出基于一種基于DS18B20的數(shù)字溫度計(jì),采用ATMEL公司推出的單片機(jī)AT89C2051作為控制器,其屬于小型單片機(jī),其體積小且低壓供電,故成本較低,該溫度計(jì)應(yīng)用兩節(jié)電池作為電源。
該系統(tǒng)中采用DS18B20作為溫度傳感器,其不僅可將溫度信號(hào)直接轉(zhuǎn)換為單片機(jī)可識(shí)別的串行數(shù)字信號(hào),且經(jīng)過(guò)編程后,還可實(shí)現(xiàn)9~12位的溫度讀數(shù)。應(yīng)用一條信號(hào)經(jīng)及地線即可實(shí)現(xiàn)DS18B20與單片機(jī)的可靠連接,為保證數(shù)字溫度系統(tǒng)運(yùn)行的可靠性,該研究以?xún)晒?jié)電池作為外接電源,這種情況下DS18B20第1腳接地,第2腳為信號(hào)線,第3腳直接連接電源。系統(tǒng)中還需要一個(gè)上拉電阻,由于DS18B20在寫(xiě)存儲(chǔ)器操作狀態(tài)及溫度A/I轉(zhuǎn)換操作狀態(tài)時(shí)需要開(kāi)啟500 ms的上拉,上拉電阻則是為滿(mǎn)足這一要求所設(shè)。采用4位一體的共陽(yáng)LED數(shù)碼管作為顯示電路,段碼由P1口輸出,P3.0~P3.3口實(shí)現(xiàn)列掃描,采用8550三極管實(shí)現(xiàn)列驅(qū)動(dòng),溫度顯示由LED數(shù)碼管以動(dòng)態(tài)掃描的方法顯示出來(lái)。
3.2 軟件設(shè)計(jì)
該系統(tǒng)程序包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新子程序等多個(gè)模塊。其中DS18B20測(cè)量的溫度值主要通過(guò)主程序?qū)崿F(xiàn)實(shí)時(shí)的顯示、讀取及處理,每1 s進(jìn)行1次溫度測(cè)量。讀出溫度模塊的主要作用是讀出RAM中的9字節(jié),讀出時(shí)需進(jìn)行CRC校驗(yàn),如發(fā)現(xiàn)錯(cuò)誤則不得改寫(xiě)溫度數(shù)據(jù)。溫度轉(zhuǎn)換命令模塊的主要作用是發(fā)送溫度轉(zhuǎn)換開(kāi)始命令,如采用12位分辨率,則轉(zhuǎn)換時(shí)間在750 ms左右。該系統(tǒng)中采用1 s顯示程序延時(shí)法等待轉(zhuǎn)換完成。計(jì)算溫度模塊的主要作用是將RAM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并判斷溫度值的正負(fù)情況。
3.3 系統(tǒng)調(diào)試
系統(tǒng)調(diào)試需要針對(duì)硬件、軟件兩大部分進(jìn)行分別調(diào)試,其中硬件調(diào)試要仔細(xì)檢查電路焊接質(zhì)量,再用萬(wàn)能表測(cè)試,或進(jìn)行通電檢測(cè)。軟件調(diào)試則先將顯示程序編寫(xiě)完成,再用硬件對(duì)程序編寫(xiě)的正確性進(jìn)行檢驗(yàn),檢查各顯示模塊是否正常,再逐一調(diào)試各程序模塊。設(shè)計(jì)過(guò)程中需要注意,DS18B20是通過(guò)串行數(shù)據(jù)實(shí)現(xiàn)向單片機(jī)的數(shù)據(jù)傳送,因此DS18B20的讀/寫(xiě)編程要嚴(yán)格按照讀/寫(xiě)時(shí)序進(jìn)行,以免無(wú)法準(zhǔn)確讀取測(cè)量結(jié)果。軟件調(diào)試可正確顯示當(dāng)前溫度值,且當(dāng)用手接觸溫度傳感器時(shí)溫度發(fā)生變化后,則溫度顯示也會(huì)隨之改變,證明系統(tǒng)設(shè)計(jì)基本可滿(mǎn)足設(shè)計(jì)要求。
4 結(jié)語(yǔ)
總之,傳統(tǒng)的多路溫度測(cè)量系統(tǒng)多采用公用的放大電路及A/D轉(zhuǎn)換電路,如需要測(cè)量多路溫度則只能逐一轉(zhuǎn)換,不僅電路復(fù)雜且工作效率低下。而基于DS18B20的多點(diǎn)溫度測(cè)量系統(tǒng)可實(shí)現(xiàn)多點(diǎn)溫度的同步轉(zhuǎn)換,大大提高了溫度的測(cè)量效率,由此可見(jiàn),DS18B20具有接口電路簡(jiǎn)單可靠的優(yōu)勢(shì),其在溫度檢測(cè)領(lǐng)域的應(yīng)用前景十分廣闊。
參考文獻(xiàn)
[1] 吳志忠,王克家,吳利予,等.一種基于單線數(shù)字溫度傳感器DSl8B20的儲(chǔ)糧溫度檢測(cè)系統(tǒng)的設(shè)計(jì)[J].應(yīng)用科技,2015,28(7):15-16.
[2] 王廣志,吳穎.數(shù)字式溫度傳感器與分布式溫度測(cè)量系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2014,14(1):26-31.