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