用MAXQ3212微控制設計數(shù)字溫度監(jiān)控器
引言
很多應用場合需要調節(jié)、控制溫度,例如,當環(huán)境溫度過低時,利用一個燈泡即可提升一個封閉的小空間的溫度或烘干未干的油漆等類似物品。多數(shù)情況下,利用溫度檢測、電源開關和加熱源即可構成一個閉環(huán)溫控系統(tǒng)。本應用筆記說明了如何使用MAXQ微控制器設計這樣的控制系統(tǒng)或溫度監(jiān)控器。考慮到MAXQ3212所具備的功能及其設計簡單、價格低廉和隨處可得的低價位開發(fā)環(huán)境,MAXQ3210評估板(MAXQ3210-KIT),我們選擇這款器件作為系統(tǒng)控制器。本文例程所使用的開發(fā)環(huán)境是MAX-IDE 1.0版和MAXQ3210仿真開發(fā)板A版。
系統(tǒng)設計詳細說明
概述
這個數(shù)字溫度監(jiān)控系統(tǒng)的實施非常簡單,圖1是系統(tǒng)的電路圖。DS18B20 1-Wire?數(shù)字溫度傳感器用來檢測環(huán)境溫度,系統(tǒng)把這個溫度與用戶設置的溫度門限進行比較,如果溫度低于用戶設置的門限,繼電器將產生控制信號。通常情況下系統(tǒng)通過4位LED顯示器指示環(huán)境溫度,當用戶設置溫度時,LED用來顯示用戶的設置值。MAXQ3212用作系統(tǒng)控制器,將兩個按鍵開關連接到處理器配置為輸入端口的引腳,實現(xiàn)用戶接口功能(設置上、下調節(jié))。另外一個微處理器端口用作信號輸出,控制繼電器動作。
圖1. 系統(tǒng)電路圖
利用一個4位、7段LED顯示器作為系統(tǒng)顯示,確保其在各種照明環(huán)境下提供有效顯示,不需要額外的系統(tǒng)背光。
為簡化處理器與顯示器之間的接口設計,提供必要的驅動電流和多路復用開關,本系統(tǒng)選用了Maxim的8位LED顯示驅動器ICM7218AIPI。該器件包含了所有與微控制器、共陽極LED顯示器直接連接的電路。LED驅動器可以最多驅動8位數(shù)字,但本系統(tǒng)只使用了4位顯示器。無需使用外部限流電阻即可驅動7段顯示器的每一段。
系統(tǒng)輸出控制標準電機繼電器,把交流電切換到任意負載,可以按照負載的供電要求進行設置。系統(tǒng)采用了一個可以切換8A電流、線圈電壓恰好是5V系統(tǒng)供電電壓的繼電器。當然,該繼電器可以工作在任何不超過最終驅動FET (BS170)額定電壓或電流的條件下。
考慮到這個系統(tǒng)實施的可行性,不需要進行精確地系統(tǒng)仿真或優(yōu)化系統(tǒng)的閉環(huán)性能。實際溫度與所要求溫度門限的簡單比較是唯一的輸出切換規(guī)則。為了達到實際系統(tǒng)的要求,可以修改軟件子程序Relay_Switch。
用簡單的DS18B20-PAR測量環(huán)境溫度,在-10°C至+85°C溫度范圍內可以提供±0.5°C的測試精度。本系統(tǒng)中,所要求的工作溫度范圍為+12°C至+38°C (+55°F至+100°F)。芯片的溫度測試分辨率是9至12位,可由用戶選擇,關于分辨率的選擇可參考下述內容。其它應用中,每個DS18B20所包含的唯一的64位ID可以支持1-Wire網絡中掛接多個DS18B20。
1-Wire接口
Maxim的1-Wire總線采用獨特的串行通信接口,只需要一條信號線和地線進行通信。這種接口通過微控制器的一個引腳即可實現(xiàn)與1-Wire器件的通信。接口還具有供電功能,稱為寄生電源,利用1-Wire信號線能夠在沒有1-Wire器件本地供電的情況下進行工作。該系統(tǒng)設計中,接口設計并不重要,關鍵在于遠端溫度的測量。雖然系統(tǒng)中只用到了一個1-Wire器件,但是,1-Wire總線設計工作在一個主機和多個從機,即多點工作,本應用中選用了一片DS18B20進行溫度測量,Maxim還可提供多款具有類似功能的器件。例如,需要檢測多個位置的溫度時,可以使用DS28EA00,它可以簡化1-Wire器件在1-Wire網絡中的物理位置識別。
在溫度監(jiān)控應用中,通過一條口線進行逐位控制,實現(xiàn)1-Wire總線的通信。實現(xiàn)這一功能的軟件請參考應用筆記3769,"用MAXQ3210構建1-Wire溫度記錄儀"。這個軟件專為MAXQ3210和DS1822 Econo 1-Wire數(shù)字溫度計編寫。本應用中只需把原來軟件里的9位分辨率更該成10位,應用筆記3769也提供了1-Wire及其應用的參考設計。
MAXQ3212 I/O引腳
MAXQ3212共有15個端口引腳可以使用:端口0有8條口線,端口1有7條口線。與ICM7218顯示驅動器通信最少需要10條信號線(引腳),4個引腳用于溫度設置的上、下調節(jié),繼電器驅動以及DS18B20的通信,共占用14個引腳。默認情況下,MAXQ3212 15個引腳中的4個用于JTAG接口(P1.0、P1.2、P1.3、P1.4),1個用于做復位輸入(P1.1)。雖然這5個信號控制調試功能,但也用作其它功能。在整個調試過程中需要特別考慮。將控制位TAP和RSTD設置到相應電平(分別為0和1),這5個引腳的默認調試功能可以被禁,可作為普通引腳使用,不再用于調試功能。本設計中,最終調試的應用程序是顯示部分,因為它們需要大量的I/O引腳,但功能比較簡單,僅需要少量的調試工作。
匯編程序在指令禁止這五個調試控制信號之前插入較長的時間延時(大約5秒鐘),這個延時允許調試板在禁止調試控制之前仍然具有處理器的控制權。由此,調試板能夠在必要時對器件進行控制。
顯示器選擇
對顯示器的選擇主要考慮溫度監(jiān)控器用于室內還是室外,光線的亮暗程度。這樣做的目的是希望在除了強光照射情況(比如陽光直射的室外)以外,在各種光照條件下都能看清LED的顯示結果。通常采用簡單的彩燈就可以提供必要的顯示對比度和可見性。LED顯示器不再需要額外電路,比如背光電路。本應用中不使用多路復用器,需驅動4位、每位7段的LED。不包括小數(shù)點位,共需要28條獨立的信號線(4位 x 7段)。顯然,如果沒有其它電路的話,MAXQ3212無法提供這么多端口信號。所以,我們選用了ICM7218解決這個問題,其內部多路復用器可以提供最多8位顯示,不需要額外的限流電阻可直接驅動LED顯示。簡單通過8位信號和2路控制(模式、寫操作)就可以與處理器連接。
用戶輸入門限設置
鑒于MAXQ3212的端口資源,不可能為用戶輸入溫度門限提供一個并行接口。所以,采用簡單的上、下調節(jié)鍵增大或降低溫度門限。在系統(tǒng)初始上電時,軟件會把溫度默認值設置為+72.5°F,并把這個值存儲到MAXQ3212 EEPROM內。如果用戶增大或降低溫度設置點,新的溫度值就會存進這個EEPROM。由于EEPROM為非易失存儲器,即使在掉電情況下數(shù)據也不會丟失。檢測到按鍵動作時候,LED會顯示當前的設置點。為了幫助指示正在顯示的是溫度門限,微控制器會打開最后一位小數(shù)點 (通常為關閉狀態(tài))。如果按鍵保持足夠的時間,溫度會以大約每秒0.5°F的速度遞增或遞減。達到所要求的溫度時,用戶可釋放按鍵,立即建立新的溫度門限。顯示器隨后返回到環(huán)境溫度值,最后一位小數(shù)點關閉。
溫度轉換
這個應用中,利用軟件把溫度從攝氏度轉換到華氏度。執(zhí)行DS18B20的“溫度轉換”命令,16位(帶符號位)結果按照以下方式儲存到溫度傳感器的寄存器中。溫度高有效位
Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 |
Sign | Sign | Sign | Sign | Sign | 26 | 25 | 24 |
溫度低有效位
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
23 | 22 | 21 | 20 | 2-1 | 2-2 | 2-3 | 2-4 |
這個溫度傳感器的分辨率可以由用戶配置為9、10、11或12位,對應的溫度分辨率為0.5°C、0.25°C、0.125°C、0.0625°C。DS18B20上電時的默認分辨率是12位,本應用中被初始化為10位,此時,第1位和第0位(2-3,2-4)沒有意義,可以分辨最小溫度值是0.25°C。
在這個應用里,以華氏溫度為單位顯示溫度。利用下列方程進行轉換:
華氏溫度 = (攝氏溫度 × 1.8) + 32(式1)
因為溫度以小數(shù)形式表示,而且轉換時需要乘以1.8,所以用二進制數(shù)進行計算。進行實數(shù)乘法運算時,需要在不浪費處理器資源的情況下盡量減小計算誤差。DS18B20初始化時,溫度值的分辨率設置成10位,所以第1位和第0位沒有意義。在溫度小數(shù)部分的其余2位(第3位和第2位)提供
評論