《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于ZigBee的空調(diào)集中控制系統(tǒng)
基于ZigBee的空調(diào)集中控制系統(tǒng)
來源:微型機與應用2013年第8期
王為亮,陶加祥,張萬超,李 驥
(中國地質(zhì)大學 機電學院,湖北 武漢430074)
摘要: 為了對已安裝在多個分散點的混雜品牌空調(diào)進行統(tǒng)一高效管理,節(jié)約空調(diào)運行成本,提出了一種新穎的空調(diào)集中控制方案。首先給出了系統(tǒng)總體設計框圖,然后依次對系統(tǒng)的各子模塊進行論述。本設計方案的核心工作有兩點,一是解決紅外遙控器的碼型識別問題,二是描述空調(diào)集中控制系統(tǒng)的具體工作過程和實現(xiàn)方法。
Abstract:
Key words :

摘  要: 為了對已安裝在多個分散點的混雜品牌空調(diào)進行統(tǒng)一高效管理,節(jié)約空調(diào)運行成本,提出了一種新穎的空調(diào)集中控制方案。首先給出了系統(tǒng)總體設計框圖,然后依次對系統(tǒng)的各子模塊進行論述。本設計方案的核心工作有兩點,一是解決紅外遙控器的碼型識別問題,二是描述空調(diào)集中控制系統(tǒng)的具體工作過程和實現(xiàn)方法。
關鍵詞: 學習型遙控器;ZigBee;空調(diào)集中控制;嵌入式系統(tǒng)

    在使用多個獨立空調(diào)而非中央空調(diào)的場所,對多個位置分散、品牌型號混雜的獨立空調(diào)進行集中而靈活的控制,可提高管理的便捷性且節(jié)省能源。目前,市面上已經(jīng)出現(xiàn)了針對普通家庭使用的學習型萬能遙控器。但這種遙控器只是將多個遙控器的功能整合到一個遙控器上,無網(wǎng)絡功能,且需手工操作,不適合多人同時使用的場合。本文提出的空調(diào)集中控制方案以精確性、實用性、學習性和可擴展性為設計理念。方案將網(wǎng)絡功能與數(shù)據(jù)庫技術應用于嵌入式控制方案,提高了系統(tǒng)的靈活性和可擴展性。文章主要介紹了系統(tǒng)總體結構及各子模塊的實現(xiàn)方法,對紅外編碼學習和數(shù)據(jù)庫技術運用進行了詳細研究。
1 系統(tǒng)總體方案
    集中控制系統(tǒng)的根本目的是將原遙控器所發(fā)出的紅外信號進行解調(diào),獲得原遙控器功能鍵所對應的調(diào)制信號,然后根據(jù)這些調(diào)制信號,加上相配套的載波,再調(diào)制出原遙控器功能按鍵所發(fā)出的已調(diào)信號,最后通過該已調(diào)信號來控制空調(diào)而不使用原來的遙控器?;谏厦娴乃悸?,設計了如圖1所示的系統(tǒng)總體結構。
    在圖1中,學習模塊的作用是對原遙控器進行學習,并判斷學習是否正確,如果學習正確就將解調(diào)出的信息進行緩存,然后學習模塊通過與集中控制模塊進行通信將其緩存數(shù)據(jù)存儲在集中控制模塊。學習模塊并不總是系統(tǒng)必需的部分,在學習完成后,可以將其從系統(tǒng)中移除。

    集中控制模塊是系統(tǒng)的核心,它由以ARM為核心的SoC以及一個ZigBee協(xié)調(diào)者(ZC)組成,可以響應用戶的本地操作和網(wǎng)絡操作。集中控制模塊的主要任務是進行數(shù)據(jù)存儲、數(shù)據(jù)查詢和數(shù)據(jù)發(fā)送,這些功能主要由SoC來完成,ZigBee協(xié)調(diào)者負責與所有的單控制模塊進行通信。單控制模塊的作用是接收集中控制模塊發(fā)送過來的數(shù)據(jù)包,從數(shù)據(jù)包中提取出調(diào)制碼,再控制紅外發(fā)射電路發(fā)送紅外信號。

 


    相應于圖1,圖2給出了系統(tǒng)運轉(zhuǎn)時的總框圖,以數(shù)據(jù)流向和工作流程為依據(jù)。

2 學習模塊
2.1 碼型識別

    在學習過程中,碼型識別是重點也是難點。紅外遙控的編碼方式紛繁復雜,從調(diào)試方式可分為調(diào)制碼和脈沖碼,從數(shù)據(jù)表示法可分為碼寬表示和相位表示,另外每種碼型的數(shù)據(jù)碼組合方式、引導碼、重復碼定義都有所不同[1]。
    根據(jù)前面所提到實用性原則,排除邊緣功能鍵的學習而只對核心功能鍵(例如開、關、制冷、輔熱、溫度加、溫度減功能鍵)進行學習是很好的選擇。這樣可以盡量避開對重復碼、翻轉(zhuǎn)碼的學習,減少按鍵學習數(shù)量和降低學習復雜性。另外,如果核心功能按鍵要涉及到重復碼、翻轉(zhuǎn)碼的學習,可以利用原遙控器提供的交互性界面來作為輔助。
    各廠商紅外編碼協(xié)議的不同給碼型識別帶來了很大的困難。編碼中對數(shù)據(jù)0和1的表示多種多樣,更有甚者并不直接表示0和1。例如用4種不同波形來表示00、01、10、11這4種組合。由此可見,在學習過程中識別0、1是很困難的。
    如果對0、1不加判別,而只是分別測量學習高低電平時間,則不管學習過程還是發(fā)射過程都要簡單得多[1]。下面是一個說明這一學習過程的例子。
    圖3中的已調(diào)紅外信號,數(shù)據(jù)0由528 μs的低電平加上527 μs的低電平表示,數(shù)據(jù)1由528 μs的低電平加上1 582 ?滋s的低電平表示??梢杂嬎愠鲈撔盘柍掷m(xù)時間為42 ms?,F(xiàn)在以“電平類別+持續(xù)時間+電平類別+持續(xù)時間+電平類別+ …”的方式來對它進行重新編碼(其中0表示低電平,1表示高電平,持續(xù)時間是相應電平保持的時長),則對圖3的信號重新編碼為:    1+8440+0+4220+1+528+0+527+1+528+0+527+1+528+0+527+1+528+0+1582+1+528+0+1582+1+528+0+527+1+528+0+1582+1+528+0+1582+1+528+0+4220+1+528+0+1582+1+528+0+527+1+528+0+527+1+528+0+527+1+528+0+1582+1+528+0+527+1+528+0+1582+1+528+0+527+1+528

    上面的編碼若用字符串來表示,要占用296個字符的空間,即296 B??梢钥闯鲞@種編碼將耗費更多的存儲空間,并且對于發(fā)碼結束的判斷也存在難點。在前文提到,本方案將重新編碼的數(shù)據(jù)先進行緩存,最后還要存入存儲容量足夠大的集中控制模塊,所以對于存儲空間的問題可以得到解決。對于發(fā)碼結束判斷的問題,本文提出“飽和截尾校正法”。該方法的解釋如下:在學習過程中,對碼的學習時間盡量延長,目的是確保學習一定完成。由于學習后要驗證碼型識別的正確性,驗證的過程中可以截去冗余的編碼信息。測試編碼時,在保證碼的學習正確的前提下,從后往前逐步刪除已經(jīng)正確學習的編碼的尾部,直到編碼不能再執(zhí)行正確控制功能,此時完成學習。
2.2 學習的流程
    圖4是對一個遙控器進行學習的過程。每一個遙控器的調(diào)制方式只需在最初判斷一次,對于每一個要學習的按鍵,先學習后測試,然后再存入單片機的ROM,當所有要學習的按鍵學習完后,再將單片機中ROM的內(nèi)容一次性讀入ARM的ROM中進行存儲。考慮到單片機ROM的大小,學習完一個遙控器就進行清空。

3 集中控制模塊
    集中控制模塊是系統(tǒng)的核心,它由一個 ZigBee模塊和一個基于ARM的SoC組成,系統(tǒng)依靠它進行自動控制。
3.1 ZigBee模塊
    ZigBee是一種基于IEEE802.15.4標準的無線通信協(xié)議。根據(jù)該協(xié)議可以提供短距離、低功耗的無線通信技術。ZigBee技術具有功耗低、可靠性和安全性高、網(wǎng)絡容量大、成本低等特點,它的通信距離在100 m左右。
    ZigBee可以形成星形、樹形和網(wǎng)狀網(wǎng)絡,這些網(wǎng)絡結構由ZigBee協(xié)調(diào)器(ZC)、ZigBee路由器(ZR)和ZigBee終端結點(ZE)這3種結點類型組成。本設計方案使用星形拓撲結構。星形網(wǎng)絡由一個協(xié)調(diào)器與多個全功能設備(FFD)或精簡功能設備(RFD)組成,在該網(wǎng)絡結構中,只有協(xié)調(diào)器與終端設備間才存在直接的通信。
    ZigBee協(xié)議棧建立在IEEE802.15.4的PHY層和MAC子層協(xié)議之上。它另外實現(xiàn)了網(wǎng)絡層(NWK)和應用層(APL)。在應用層內(nèi)提供了應用支持子層(APS)和 ZigBee設備對象(ZDO)。應用框架中則加入了用戶自定義的應用對象[2]。本設計方案主要是利用ZigBee網(wǎng)絡來傳送控制命令,在傳送過程中要用到ZigBee協(xié)議,在編程中主要關注的是協(xié)議棧中的應用層。
3.2 基于ARM的SoC
    ARM是一款功能強大的處理器,以它為核心擴展而成的片上系統(tǒng)(SoC)可以移植多種嵌入式操作系統(tǒng),因而可以提供強大的軟件功能。ARM模塊是ZC和學習模塊的橋梁。
    為了實現(xiàn)數(shù)據(jù)的方便管理和集中控制,可以向ARM板中移植sqlite。sqlite是一款使用廣泛的開源數(shù)據(jù)庫軟件,它占用資源少,便于移植。sqlite使用類似于sql的結構化查詢語言,支持5種存儲類型:空值(NULL)、無符號整型(INTEGER)、浮點型(REAL)、文本字符串(TEXT)和存儲Blob數(shù)據(jù)(BLOB),這些存儲類型完全滿足需求。為了對所有空調(diào)進行管理,建立ac_type表、ac_name表和ac_type_function系列表來存儲數(shù)據(jù)。ac_type表用來表示所有同類型空調(diào)的公共信息,ac_type_function表則是存儲每一種不同類型遙控器被學習的功能鍵所對應的編碼信息,ac_name表用來描述每一個空調(diào)的基本信息。數(shù)據(jù)表的構建很靈活,可以方便地刪除、添加和修改數(shù)據(jù)表,而數(shù)據(jù)庫中表的相應變化與空調(diào)的變化相對應。為了直觀形象地說明數(shù)據(jù)如何存儲,給出了3個具體的表加以說明,如表1~表3所示。

    表1中的編碼字段是由學習模塊和原遙控器發(fā)出的紅外信號進行解調(diào)再編碼形成的字符串。表2中的調(diào)制方式字段記錄遙控器所使用的是何種類型的調(diào)制方式。表3對每一個空調(diào)的信息進行了詳細的記錄,地址字段對應每一個ZigBee芯片的MAC地址,通過ZigBee芯片的MAC地址可以唯一定位空調(diào)。
    當要控制某一個或多個空調(diào)時,具體的方法是先要對數(shù)據(jù)庫進行查詢,然后讀出所需要的字段數(shù)據(jù),接著要對數(shù)據(jù)進行“組合”。如要關掉一個空調(diào),先要進行一系列的查詢,查詢完后可得出組合字符串格式“地址+載波頻率+調(diào)制方式+編碼”。這些數(shù)據(jù)將通過ZigBee協(xié)議進行封裝,單控制模塊正是通過這些數(shù)據(jù)還原原遙控器紅外信號。
    向ARM SoC中移植開源的Web服務器即可將其構建成一個小型服務器,從而可以響應用戶從網(wǎng)絡中發(fā)來的控制請求。結合數(shù)據(jù)庫技術,集中控制系統(tǒng)可實現(xiàn)“軟件化控制”,使得控制動作、方式、權限和個性化可靈活定做。不僅實現(xiàn)集中化控制,并且可以因個人而靈活使用。
3.3 數(shù)據(jù)封裝
    當應用程序需要發(fā)送數(shù)據(jù)時,將通過應用支持子層(APS)數(shù)據(jù)實體發(fā)送數(shù)據(jù)請求到APS,下面的每一層都會為數(shù)據(jù)附加相應的幀頭,組成要發(fā)送的幀信息[3]。圖5顯示了在ZigBee協(xié)議中數(shù)據(jù)是如何層層封裝的。
    在分層的通信協(xié)議中,層與層之間通過服務接入點(SAP)相連接。SAP是層與層之間的唯一接口,其具體的服務以通信原語的形式供上層調(diào)用。在上層調(diào)用下層服務時,只要遵循統(tǒng)一的原語規(guī)范,并不需要去了解如何處理原語,這樣就做到了數(shù)據(jù)層與層之間的透明傳輸[4]。

4 單控制模塊
      單控制模塊中ZE負責接收和解封裝ZC發(fā)送過來的數(shù)據(jù)包,單片機的工作就是根據(jù)解封裝出來的數(shù)據(jù)信息控制紅外發(fā)射電路。
      單控制模塊中的所有ZE與集中控制系統(tǒng)中的ZC形成星形網(wǎng)絡,每一個空調(diào)與一個ZE相對應。圖6中左邊的流程是集中控制模塊向單控制模塊發(fā)送數(shù)據(jù)包的過程。ARM中的主控程序接受用戶操作請求,根據(jù)用戶命令查詢數(shù)據(jù)庫,獲得要控制空調(diào)的記錄信息,記錄信息經(jīng)層層封裝成幀,通過ZC發(fā)送到相應的ZE。右邊的流程是單控制模塊發(fā)送紅外控制信號的過程,ZE接收到數(shù)據(jù),在應用層對它進行解析,得到想要的數(shù)據(jù),然后由單片機對編碼進行調(diào)制,從而產(chǎn)生調(diào)制的紅外控制信號。

    本文提出的空調(diào)集中控制方案具有很好的兼容性、實用性和擴展性。另外它還可以很好地適應物聯(lián)網(wǎng)的發(fā)展,如果空調(diào)廠商在空調(diào)內(nèi)置ZigBee模塊,那么這種無線的集中控制方案硬件設計將會更加精簡,并且實現(xiàn)預定的功能將更加方便。
參考文獻
[1] 顧曉紅.學習型遙控器中的碼型識別[J].電子與封裝,2009,9(10):42-43.
[2] ONDREJ S,ZDENEK B,PETR F,et al.ZigBee technology and device design[C].Networking,International Conference  on Systems and International Conference on Mobile Communications and Learning Technologies,2006.
[3] 章偉聰,俞新武,李忠成.基于CC2530及ZigBee協(xié)議棧設計無線網(wǎng)絡傳感器節(jié)點[J].計算機系統(tǒng)應用,2011,20(7):186-189.
[4] 賴聯(lián)有.ZigBee協(xié)議分析及其實現(xiàn)[J].齊齊哈爾大學學報,2010,26(1):50-53.

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