文獻標(biāo)識碼: B
文章編號: 0258-7998(2011)11-0099-03
因通信基站、機房等內(nèi)部設(shè)備運行的需求,基站和機房內(nèi)須保持一定溫濕度及潔凈度,為了達到以上標(biāo)準(zhǔn),基站、機房內(nèi)的空調(diào)系統(tǒng)必須長年連續(xù)運轉(zhuǎn),因此為數(shù)眾多的基站、機房內(nèi)的空調(diào)產(chǎn)生了較大的能耗,造成了通信基站、機房較高的運營成本,迫切需要一種有效的空調(diào)節(jié)能系統(tǒng)。針對這種情況,文中設(shè)計了一種以AVR單片機ATmega128為核心控制單元的智能控制系統(tǒng)。智能控制系統(tǒng)主要根據(jù)室內(nèi)、外的環(huán)境量及空調(diào)運行狀態(tài)分析,通過完善、嚴格的邏輯控制程序?qū)崿F(xiàn)對節(jié)能窗、空調(diào)的控制,以實現(xiàn)室內(nèi)溫濕度保持在設(shè)定范圍之內(nèi),達到通風(fēng)、節(jié)能的目的。同時對于尚未安裝空調(diào)或空調(diào)無法正常工作的基站、機房,該系統(tǒng)也可起抑制高溫的作用。
1 智能節(jié)能窗系統(tǒng)結(jié)構(gòu)及控制原理
1.1 系統(tǒng)結(jié)構(gòu)
智能節(jié)能窗系統(tǒng)是由智能控制器、節(jié)能窗、空調(diào)、監(jiān)控中心、傳感器、紅外收發(fā)模塊和人機交互界面等組成,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
1.2 系統(tǒng)控制原理
智能節(jié)能窗的“控制器”通過實時環(huán)境監(jiān)測量來實現(xiàn)控制節(jié)能,當(dāng)環(huán)境監(jiān)測量低于某個設(shè)定值時,控制器會依據(jù)內(nèi)部優(yōu)化的數(shù)學(xué)模型開啟節(jié)能窗引進室外新風(fēng),關(guān)閉機房空調(diào)達到節(jié)能效果。在確保機房環(huán)境量控制合理的前提下“控制器”依據(jù)環(huán)境監(jiān)測量控制百葉窗、空調(diào)運行。在無法引進室外新風(fēng)時段,節(jié)能系統(tǒng)可以依環(huán)境監(jiān)測量,控制空調(diào)運行,使基站或機房的環(huán)境保持在合適的狀態(tài)下。
2 硬件電路設(shè)計和關(guān)鍵模塊分析
系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示,核心控制單元選擇了ATMEL公司的ATmega128,充分利用了其高性能、低功耗、可靠性高等特點,ATmega128具有53個I/O腳,內(nèi)載128 KB的Flash、4 KB的EEPROM以及通用異步收發(fā)器等其他全方位功能,非常適合該系統(tǒng)多模塊控制、大容量數(shù)據(jù)存儲和遠程監(jiān)控等功能的要求。
2.1環(huán)境監(jiān)測模塊
環(huán)境監(jiān)測模塊的基本原理是通過溫度傳感器、溫濕度傳感器、節(jié)能窗狀態(tài)監(jiān)測器、空調(diào)狀態(tài)監(jiān)測器等環(huán)境監(jiān)測設(shè)備將所獲取的數(shù)據(jù)信息傳到采集器,然后控制系統(tǒng)依據(jù)所獲數(shù)據(jù)信息發(fā)出相應(yīng)控制、操作指令,達到通風(fēng)、節(jié)能、告警等系列功能。
溫度傳感器選擇的是TI公司的DS18B20,溫濕度傳感器選用DHT21,它們均是單總線傳感器芯片,可以直接將被測的溫度、濕度轉(zhuǎn)換為串行數(shù)字信號送到單片機。DS18B20連接到ATmega128的PB1口上;DHT21連接到ATmega128的PB2口上,如圖3所示。
節(jié)能窗由內(nèi)窗、外窗、過濾網(wǎng)及控制機械組成,如圖4所示,通過直流電機和繼電器進行控制。節(jié)能窗開閉狀態(tài)通過行程開關(guān)給出的高低電平信號結(jié)合節(jié)能窗本身的機械結(jié)構(gòu)來確定。
2.2 空調(diào)控制模塊
空調(diào)控制系統(tǒng)由控制單元和狀態(tài)監(jiān)測單元構(gòu)成。根據(jù)基站空調(diào)類型,空調(diào)控制系統(tǒng)有四種設(shè)計模式,如表1所示。
2.4 通信模塊
智能控制系統(tǒng)采用MODBUS標(biāo)準(zhǔn)通信協(xié)議,通過RS485接口與上位機通信,組建監(jiān)控系統(tǒng)網(wǎng)絡(luò),并依照回饋數(shù)據(jù)下達控制指令;同時把系統(tǒng)的各種信息傳送到人機操作界面。
PC機上的串口是具有RS-232C電平的接口,而單片機上的串口是TTL電平的,為了在PC機和單片機之間利用RS-485總線進行串行數(shù)據(jù)傳輸,需要將PC端和單片機端的電平均轉(zhuǎn)換為RS-485電平,TTL和RS-485之間的電平轉(zhuǎn)換芯片有MAX485等。圖7是PC機和ATmega128通信時的連接示意圖。
學(xué)習(xí)子程序:學(xué)習(xí)程序的功能是對紅外遙控編碼的學(xué)習(xí),即對高低脈沖寬度的測量。當(dāng)然不能毫無誤差地復(fù)制出被測的紅外編碼,當(dāng)中一定會存在一定誤差。不過,由于所有的紅外設(shè)備在接收端都允許一定的誤差,只要保證在誤差范圍內(nèi)都可以對紅外設(shè)備進行控制。學(xué)習(xí)程序的主要思路是通過邊沿觸發(fā)中斷來控制定時器的開和關(guān),從而測出高低脈沖寬度。ATmega128單片機的外部中斷0、1口的中斷方式分別設(shè)置為下降沿和上升沿觸發(fā)中斷。當(dāng)沒有接收到紅外信號時,外部中斷0、1口都為高,此時程序等待紅外信號的到來。當(dāng)紅外信號到達時,下降沿觸發(fā)中斷,學(xué)習(xí)程序跳到下降沿中斷服務(wù)程序。在中斷服務(wù)程序里,停止定時器3,保存它寄存器的值并清零,最后啟動定時器1,這樣開始測量低電平。當(dāng)高電平到來時,上升沿觸發(fā)中斷,程序跳到上升沿中斷服務(wù)程序里,此時停止定時器1,保存它寄存器的值并清零,最后啟動定時器3,高電平開始測量。當(dāng)下一個低電平到來時,程序又跳到下降沿中斷服務(wù)程序,重復(fù)上面的工作。這樣,高低電平的測量就在兩個邊沿觸發(fā)中斷服務(wù)程序里面來回跳轉(zhuǎn)。最后一次跳入邊沿觸發(fā)中斷服務(wù)程序時,一旦產(chǎn)生定時器溢出,則程序跳入定時器溢出中斷服務(wù)程序,只要設(shè)定一個標(biāo)志位,讓程序跳回主程序即可。到此,紅外編碼學(xué)習(xí)完畢,只需把學(xué)習(xí)到的編碼寬度值存入EEPROM即可。
發(fā)射子程序:發(fā)射程序是把已經(jīng)學(xué)習(xí)到的紅外編碼發(fā)射出去控制紅外設(shè)備。當(dāng)然首先要根據(jù)所按下鍵來找到EEPROM相應(yīng)的紅外編碼。這里要注意的是通過紅外接收芯片接收到的紅外編碼經(jīng)過一個反相器,所以發(fā)射時要把原來的高低電平翻轉(zhuǎn)一下。紅外發(fā)射程序的思想是通過兩個定時器的配合來調(diào)制出38 kHz的紅外信號。定時器0產(chǎn)生38 kHz的載波信號,用已經(jīng)學(xué)習(xí)到的低電平寬度來確定定時器0的定時長度。當(dāng)發(fā)送低電平時,啟動定時器0;發(fā)送高電平時,停止定時器0。如此就能發(fā)送一個與接收到的紅外編碼反相并且高電平是經(jīng)過38 kHz載波調(diào)制過的紅外遙控信號,這個信號就是普通遙控器發(fā)送出去用來控制紅外設(shè)備的信號。
3.2 人機交互模塊
該模塊硬件由LCD與按鍵組成,實現(xiàn)參數(shù)設(shè)定、數(shù)據(jù)查閱和顯示等功能,所以人機交換界面非常適合用多級菜單模式來實現(xiàn)。多級菜單采用結(jié)構(gòu)體鏈表作為基本架構(gòu):
struct MenuItem
{
int MenuCount;
char *DisplayString;
void (*Subs)();
struct MenuItem *ChildrenMenus;
struct MenuItem *ParentMenus;
} Null;
其中, MenuCount:當(dāng)前層節(jié)點數(shù),即每層菜單最多能顯示的條目數(shù),可以確定移動上界,方便實現(xiàn)菜單的滾動; *DisplayString:指向菜單標(biāo)題的字符串,指向當(dāng)選中該級菜單后所要顯示的字符串;(*Subs)():指向當(dāng)前狀態(tài)應(yīng)該執(zhí)行功能函數(shù)的指針;MenuItem *ChildrenMenus:指向當(dāng)前菜單的下級菜單;MenuItem *ParentMenus:指向當(dāng)前菜單的上級菜單。使用這樣的結(jié)構(gòu),可以很方便地通過修改單獨的菜單項來更新菜單,不用在主程序中修改任何東西,擴展方便,節(jié)約資源。
按鍵函數(shù)則采用狀態(tài)機來編寫,這樣不必延時等待鍵盤穩(wěn)定,還可實現(xiàn)連發(fā)功能,提高了CPU的利用率,并且可以多任務(wù)“并行執(zhí)行”,加快了系統(tǒng)的響應(yīng)速度。圖9是具有連發(fā)功能的按鍵狀態(tài)機轉(zhuǎn)換圖。圖中, “1”表示按鍵處于開放狀態(tài),“0”表示按鍵處于閉合狀態(tài)。而系統(tǒng)的輸出信號則表示檢測和確認到一次按鍵的閉合操作,用“1”表示。將一次按鍵完整的操作分解為4個狀態(tài)。其中,狀態(tài)0為按鍵的初始狀態(tài),當(dāng)按鍵輸入為“1”時,表示按鍵處于開放,輸出“0”(1/0),下一狀態(tài)仍為狀態(tài)0;當(dāng)按鍵輸入為“0”時,表示按鍵閉合,但輸出還是“0”(沒有經(jīng)過消抖,不能確認按鍵真正按下),下一狀態(tài)進入狀態(tài)1。狀態(tài)1為按鍵閉合確認狀態(tài),它表示在10 ms前按鍵為閉合的,因此當(dāng)再次檢測到按鍵輸入為“0”時,可以確認按鍵被按下了(經(jīng)過10 ms的消抖);輸出“1”則表示確認按鍵閉合(0/1),下一狀態(tài)進入狀態(tài)2;當(dāng)按鍵按下后1 s內(nèi)釋放了,系統(tǒng)輸出為1;當(dāng)按鍵按下后1 s沒有釋放,則以后每隔0.5 s,輸出為2,直到按鍵釋放為止。如果系統(tǒng)輸出1,應(yīng)用程序?qū)⒆兞考?;如果系統(tǒng)輸出2,應(yīng)用程序?qū)⒆兞考?0。這樣按鍵驅(qū)動就有了處理連發(fā)按鍵的功能了。
智能節(jié)能窗系統(tǒng)可以很好地減少空調(diào)運行時間、降低能耗,節(jié)約通信基站、機房的運營成本。同時系統(tǒng)中的紅外學(xué)習(xí)功能和遠近協(xié)同監(jiān)控模式也提高了系統(tǒng)的通用性和可靠性。目前該產(chǎn)品已進入市場推廣階段。
參考文獻
[1] 江海波,王卓然,耿德根.深入淺出AVR單片機[M].北京:中國電力出版社,2008.
[2] 陳天水,秦文,胡天友.基于mega128單片機的學(xué)習(xí)型紅外遙控器設(shè)計[J].微型機與應(yīng)用,2011,30(8):26-27.
[3] 耿德根,馬潮.AVR高速嵌入式單片機原理與應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2002.