張小勇
(太原大學計算機工程系,山西 太原 030032)
計算機,特別是單板計算機(SBC)隨著性能的增強,功耗也越來越大,同時機器運行溫度也越來越高,而計算機機箱體積卻呈現(xiàn)縮小的趨勢,這便加劇了電源穩(wěn)定性、散熱等問題,因此使用監(jiān)控系統(tǒng)對機箱運行的物理環(huán)境進行監(jiān)控是很有必要的。通過監(jiān)控系統(tǒng)可以在故障發(fā)生前采取應急措施,從而避免系統(tǒng)崩潰,硬件損壞等情況發(fā)生。[1]這里針對計算機最容易損壞的冷卻系統(tǒng)和電源等部件設計了一種基于STC單片機的計算機機箱監(jiān)控系統(tǒng),系統(tǒng)可以監(jiān)控計算機電源狀態(tài),機箱內溫度,根據(jù)溫度控制機箱風扇轉速,顯示信息及發(fā)出異常報警音。
監(jiān)控系統(tǒng)以單片機為核心,由電壓測量子模塊,溫度測量子模塊,風扇測控子模塊、顯示報警子模塊組成。監(jiān)控系統(tǒng)結構框圖如圖1所示。
圖1 監(jiān)控系統(tǒng)結構框圖
其中:
電壓測量子模塊,負責對標準ATX電源所提供的+3.3V、+5V、+12V、-12V電壓進行測量;
溫度測量子模塊,負責對機箱內部溫度進行測量并傳給單片機;
風扇測控子模塊,負責對機箱風扇的轉速進行測量,并根據(jù)溫度調節(jié)風扇轉速;
顯示、報警子模塊,通過液晶屏顯示機箱當前工作狀態(tài),并在系統(tǒng)出現(xiàn)錯誤時驅動蜂鳴器發(fā)出報警音。
在系統(tǒng)啟動后,主程序工作流程如下:單片機首先執(zhí)行初始化程序,對單片機時鐘、A/D、IO端口功能、定時器、溫度傳感器等進行初始化;執(zhí)行測量程序,控制A/D對電壓信號進行采集,并保存;讀取溫度信息,測量當前風扇轉速;根據(jù)溫度信息調整風扇轉速;最后對電壓、溫度信息進行處理后,判斷結果是否超過警戒值,同時控制液晶屏顯示及蜂鳴器動作,然后延時等待1S后,循環(huán)執(zhí)行測量程序。主程序流程圖如圖2所示。
單片機是監(jiān)控系統(tǒng)的核心,它負責控制各個子模塊,對測量到的數(shù)據(jù)進行處理及在系統(tǒng)運行出現(xiàn)異常時控制報警模塊報警。這里選擇了STC12C5A16AD型單片機。STC12C5A16AD是STC單片機中較為經典的型號,它具有60K程序存儲空間,2KRAM空間,更重要的是它具有一個內部集成的10位A/D轉換器,利用內部集成AD可以節(jié)省板上空間、降低系統(tǒng)功耗并增強系統(tǒng)的穩(wěn)定性[2]。
單片機基本外圍電路主要指復位電路與時鐘電路。良好的復位電路為監(jiān)控系統(tǒng)正常工作提供了保障,相對于由阻容電路構成的復位電路,使用專用集成芯片可以獲得更高的穩(wěn)定性,這里使用電源監(jiān)控芯片MAX809,該芯片可以在上電、掉電情況下向微控制器提供復位信號。時鐘電路由外部無源晶振與2個30pF電容構成。
圖2 主程序流程圖
電壓測量子模塊中電壓測量的方法是將電源電壓由電阻分壓,經由電壓跟隨器后由A/D進行采集測量。STC12C5A16AD共有8個A/D轉換通道,這里將四路被測電壓分別連接到單片機的A/D通道管腳,由于分壓電阻的阻值是已知的,所以可以通過A/D轉換結果計算出被測電壓值。電壓跟隨器選用了TI公司出品的集成運放LM324構成。
3.3V,5V,12V 電壓測量電路是相似的,只是分壓電阻阻值不同。以3.3V電壓測量為例,電路如圖3所示,R1選取10K,R2選取6.8KΩ,這里設3.3V電源電壓最大超壓為30%,最低輸入為0V,即電壓范圍為:0~4.29V,所以分壓后的電壓范圍為:0~1.736V。
由于單片機集成的A/D不支持負壓測量,在對-12V電壓進行測量時,使用了雙電源直流分壓電路[3],將負壓轉換成了正壓。正電源采用的是電壓芯片LM4040產生2.048V參考電壓。原理圖如圖 4所示。R1選取 1.3KΩ,R2選取10KΩ,這里設-12V電源電壓最大超壓、欠壓均為30%,即被測電壓范圍為:-8.4V~ -15.6V,所以分壓后的電壓范圍為:0.758~0.018V。
這里由于對溫度測量的實時性和精度要求都較低,所以采用外圍電路簡單,使用方便的數(shù)字溫度傳感器DS18B20,該芯片是較常用的溫度傳感器。
圖3 電壓測量子模塊原理圖
圖4 -12V電壓測量電路原理圖
DS18B20是DALLAS公司出品的數(shù)字溫度傳感器,采用TO92封裝,體積小,使用方便,在使用內部12位精度 A/D時,單次測量時間為750ms,測量范圍為:-55℃到+125℃,在–10℃to到85℃范圍內測量精度為 ±0.5℃[4]。電路原理圖如圖5所示。傳感器DQ引腳與單片機IO相連接。
圖5 溫度傳感器電路原理圖
普通機箱都一般采用2線直流風扇用于機箱散熱,這里需將其更換為3線直流風扇,3線直流風扇是目前使用最多的風扇之一,除了電源線與地線外,它還有一根測速信號線。當風扇正常工作時,測速信號線會輸出與轉速成正比的方波,只要測出單位時間內的方波個數(shù),就可以計算出風扇轉速。風扇測控子模塊包括:風扇轉速測量與風扇轉速控制兩部分。
風扇轉速測量:這里將測速線上拉后直接與單片機計數(shù)器2的捕獲引腳相連,便可以由計數(shù)器2測得轉速。
風扇轉速控制:采用 DC-DC調壓芯片MAX1771對風扇供電,該芯片是通過改變連接在FB引腳的反饋電阻阻值對輸出電壓值進行調節(jié)。這里通過控制CMOS管 BSS138使阻值為23.2KΩ,17.8K,15.8K,14.3K 的電阻分別與阻值為100K的電阻并聯(lián)從而獲得不同阻值的反饋,將輸出電壓分為+12V、+11V、+10V、+8V四個不同的值,從而實現(xiàn)對風扇轉速的控制。該子模塊電路原理圖如圖6所示。
圖6 風扇測控子模塊電路原理圖
系統(tǒng)要顯示的信息較多,包括:溫度,風扇轉速、電源電壓等,這里選取了12864液晶顯示屏用于系統(tǒng)顯示。該顯示屏可以顯示4*8個中文字符[5]。報警音是采用12mm直徑蜂鳴器產生的,這種蜂鳴器只需要一個8050型三極管便可以方便地驅動。該子模塊電路原理圖如圖7所示。
圖7 報警子模塊電路原理圖
基于本文的設計制作了電路實物,并進行了一系列組裝調試,最終完成了實驗樣機的制作。通過將樣機安裝在聯(lián)想M240E型機箱中進行了實驗,結果表明該系統(tǒng)運行良好,起到了電壓測量、風扇轉速控制、顯示、異常報警等功能,具有一定的實用價值。
[1]Charles Linquist.下一代機箱監(jiān)控解決方案[J].電子產品世界,2005(2).
[2]龔成瑩,等.基于STC12C5A08AD單片機的自動電阻測試儀的設計[J].自動化與儀器儀表,2012(2).
[3]閆石.模擬電路設計[M].北京:高等教育出版社,2006:510-511.
[4]賈兆虎.一種基于DS18B20的溫度檢測儀設計[J].數(shù)字技術與應用,2011(2).
[5]彭真真.單片機驅動 LCD12864的應用[J].電子制作,2011(7).