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