隨著我國經濟的發展,科學研究深入推進,溫度監測與控制系統在工業設計、智能儀表、日常家用電器等領域的應用越為廣泛,基于單片機設計的電子產品有著廣闊的應用市場和發展前景。 DS18B20是Dallas公司生產的一款數字溫度傳感器,超小體積,超低硬件開銷,抗干擾能力強,精度高,附加功能強。DS18B20的溫度檢測與數字數據輸出集成于,一個芯片上,單總線數據通信,二進制輸出,分辨率最高可達12位,檢測溫度范圍為-55~+125℃,具有限溫報警功能。同時,DS18B20內置EEPROM、64位光刻ROM,支持多點組網,根據需要把多個DS18B20并聯在唯一的三總線上,便可實現組網多點測溫,便于溫控系統的擴展和升級。 1 系統工作原理 為實現被控對象溫度的冷熱調節,所設計的溫度控制系統以AT89S51單片機作為控制核心,包括溫度采樣模塊、溫度顯示模塊、執行模塊、過欠溫指示模塊以及小鍵盤等外同電路。系統時鐘頻率為12MHz,采用智能集成化器件DS18B20來監測被控對象,將溫度值轉換為帶符號的數字信號,通過單總線輸出,實現了溫度采集、轉換與變送的功能,有利于簡化電路?紤]到單片機的直流輸出驅動能力,采用三極管、74LS244和74LS07來驅動相應的外圍集成電路。溫度數據通過4個并行共陽極的LED動態顯示,并自行搭建小鍵盤來實現被控對象目標溫度的設定。執行模塊利用固態繼電器SSR進行光電隔離,實現小功率直流電控制220V交流電通斷,使得控制加熱管通斷、風扇啟停的繼電器帶電或失電,并采用大功率的風扇和加熱管以實現有效的溫度冷熱調節。系統中采用不同顏色的LED燈指示系統的工作運行狀態,紅色發光二極管亮表示溫度過高或過低報警,綠色發光二極管亮則表示系統工作正常。系統組成如圖1所示。 在核心控制處理模塊AT89S51單片機中,為了有效抑制從DS18B20傳來的溫度數字信號的隨機誤差,提高系統的測量精度和抗干擾性,在AT89S51單片機的控制程序中加入數字濾波子程序。數字濾波平滑處理盡可能消除系統隨機誤差的影響,從軟件方面提高系統的抗干擾能力。并利用MATLAB對測溫數據進行擬合,從而進一步校正測量溫度值,使測量值更逼近精確值。 2 系統硬件設計 2.1 電源及溫度顯示模塊 為避免信號之間的串擾,采用5V直流電源分別為單片機、鍵盤、固態繼電器控制模塊、8段數碼管供電,并提供上電復位電壓。同時為風扇和400W加熱器提供220V交流電。 溫度顯示模塊采用4個8段數碼管顯示溫度。為穩定顯示,采用總線延時的動態顯示方式。驅動電路和位選分別由74IS244、74LS07搭建組成。 2.2 小鍵盤模塊 小鍵盤模塊自行搭建,由復位鍵、確認鍵、加1鍵和TAB鍵等4個按鍵組成。鍵盤電路簡單明了,滿足設定被控對象目標溫度的人機交互要求。各個按鍵的功能說明如表1所示。 2.3 溫度數據采集 DS18B20采用單總線專用技術,通過I/O端口線與單片機相接,無須經過其他變換電路便可直接輸出被測溫度值(12位二進制數,含符號位)。其引腳功能分別為:VDD引腳接工作電源,當工作于寄生方式時,此引腳必須接地;DQ引腳用于數據輸入/輸出;GND引腳接地。 在該系統中DS18B20與單片機的接口電路,如圖2所示,VDD經1kΩ的上拉電阻與外部電源相接,GND接地,DQ通過單總線與單片機P0.0口相連。 DS18B20測量溫度與輸出溫度之間的關系如表2所示,輸出溫度為12位的二進制數,存儲在DS18B20兩個8位的RAM中,二進制數的前5位是符號位。 2.4 固態繼電器驅動模塊 本設計中選用交流型固態繼電器SSR,它是一種輸入控制電流小、帶光電隔離器的無觸點開關。通過控制SSR輸入端直流電的通斷便可控制輸出端交流電的通斷,而且啟動性能平穩,對電網輻射干擾小。固態繼電器控制電路見系統總電路圖(圖2),在負載端由100Ω和0.1μF組成串接電路,用于對風扇、加熱管進行過電壓保護。 2.5 AT89S51單片機控制模塊 AT89S5l是整個系統的控制核心,其內置FlashROM,用于存放用戶程序。DS18B20所感測的溫度數字信號和用戶目標溫度作為輸入信號,經控制程序處理后發出相應的控制信號,顯示系統工作狀態、被控對象溫度值,以及控制SSR直流端的通、斷電,從而控制風扇、加熱管的通斷電,實現被控對象溫度的冷熱調節?傠娐穲D(圖2)中雖然給出DS18B20與單片機的接口電路、固態繼電器控制電路,但由于DS18B20和執行設備設置在被控對象現場,因而在實際中要留出相應的信號傳輸線。 3 系統軟件設計 軟件部分采用程序模塊化設計,便于各個功能的調試和實現。系統軟件程序主要由主程序、功能實現和運算控制3個模塊組成。 3.1主程序模塊 主程序模塊采用循環查詢直至中斷退出,以達到溫控系統冷熱自動控制的目的。主程序流程如圖3所示。 3.2運算控制模塊 運算控制模塊包括數字濾波、PID算法、溫度傳感器控制3個子程序。數字濾波由限速濾波實現,限速濾波能充分利用每一個采樣值,保證了采樣的實時性和采樣值變化的連續性。限速濾波子程序流程如圖4所示。 PID算法由積分分離PID算法實現,采用積分分離的方法,在被控量開始監控時取消積分作用,在溫度值接近目標值時才產生積分作用,有效降低系統啟、停次數頻繁給系統帶來的振蕩。積分分離PID算法為: 式中,Y(K)為溫度的目標設定值,C(K)為經數字濾波后的溫度測量值,△Y為設定的最大允許偏差值。根據此算法思想可用匯編語言編程實現積分分離PID算法。 DS18B20控制子程序按照DS18B20的通信協議編制,包括DDS18B20初始化,DS18B20讀、寫控制子程序,分別按照相應的規則說明進行編程實現。 3.3 功能實現模塊 功能實現模塊包括溫度值設置、溫度顯示、固態繼電器通斷控制以及系統運行狀態顯示等子程序,其中在溫度顯示子程序中要完成各個位置段碼的調用、數碼管的選通以及數據總線的穩定(一般采用延時幾ms實現)。 4 系統調試 系統調試主要進行PID參數的整定和溫度值的系統誤差校正。PID參數及系統其它參數的整定首先采用經驗值,再逐個細調,以滿足控制精度要求。根據表3的實驗數據,利用MATLAB進行一維曲線擬合,校正系統誤差,從而得到更準確的測量數據。 MATLAB擬合過程和結果如圖5所示。圖5中“O”表示(檢測值,標準值),“*”表示(檢測值,擬合值),一維曲線擬合方程為:y=0.9948x-0.3996,經數字濾波后的采樣值再采用此方程處理便可得到更為精確的測量值。 5 結束語 本文從應用角度出發,給出了溫控系統冷熱調節詳細的硬件和軟件設計,充分利用DS18B20單總線測溫的準確性和便捷性,并使用限速濾波、積分分離PID算法、MATLAB一維曲線擬合等方法來提高系統的可靠性和測量值的精確性。但信號傳輸線的抗干擾、鍵盤按鍵消抖等方面還不夠完善,而且采用MATLAB進行處理的實驗數據采樣不夠充分,未考慮在測量過高或過低溫度時的溫度漂移情況,因此系統的設計有待進一步的深入與完善。 |