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