《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ATmega128的通信基站智能節(jié)能窗控制系統(tǒng)設(shè)計(jì)
基于ATmega128的通信基站智能節(jié)能窗控制系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第11期
秦 文, 胡天友, 葉琴瑜
(電子科技大學(xué) 機(jī)械電子工程學(xué)院,四川 成都611731)
摘要: 介紹了一種采用ATmega128單片機(jī)設(shè)計(jì)的通信基站智能節(jié)能窗控制系統(tǒng),通過(guò)傳感器對(duì)通信基站的內(nèi)外環(huán)境變量進(jìn)行實(shí)時(shí)取樣,讓節(jié)能窗與空調(diào)聯(lián)動(dòng)工作,從而實(shí)現(xiàn)節(jié)能效果。實(shí)際應(yīng)用表明,該系統(tǒng)在通信基站、機(jī)房等建筑內(nèi)能明顯減少空調(diào)運(yùn)行時(shí)間,降低能耗。
中圖分類(lèi)號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2011)11-0099-03
Design of intelligent energy-saving window control system for communication station based on ATmega128
Qin Wen, Hu Tianyou, Ye Qinyu
School of Mechatronics Engineering, University of Electronic Science and Technology of China, Chengdu 611731, China
Abstract: The paper introduced a kind of intelligent energy-saving window control system which was designed by ATmega128. Through sampling the environment variables of communication station by sensors in the real time, the intelligent energy-saving window and air conditioning could work concerted, so as to realize the goal of energy-saving. Practical application indicated that this system can obviously reduce running time of air conditioning and decrease energy consumption.
Key words : ATmega128; sensor; intelligent energy-saving window; infrared learning


    因通信基站、機(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。