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

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

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

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

 


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

2 學(xué)習(xí)模塊
2.1 碼型識(shí)別

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

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

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

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

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

    本文提出的空調(diào)集中控制方案具有很好的兼容性,、實(shí)用性和擴(kuò)展性。另外它還可以很好地適應(yīng)物聯(lián)網(wǎng)的發(fā)展,,如果空調(diào)廠商在空調(diào)內(nèi)置ZigBee模塊,,那么這種無(wú)線的集中控制方案硬件設(shè)計(jì)將會(huì)更加精簡(jiǎn),并且實(shí)現(xiàn)預(yù)定的功能將更加方便,。
參考文獻(xiàn)
[1] 顧曉紅.學(xué)習(xí)型遙控器中的碼型識(shí)別[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é)議棧設(shè)計(jì)無(wú)線網(wǎng)絡(luò)傳感器節(jié)點(diǎn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,,2011,20(7):186-189.
[4] 賴聯(lián)有.ZigBee協(xié)議分析及其實(shí)現(xiàn)[J].齊齊哈爾大學(xué)學(xué)報(bào),,2010,,26(1):50-53.

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