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