文獻標識碼: A
文章編號: 0258-7998(2013)05-0082-04
隨著信息技術的快速發展,物聯網技術開始受到人們的廣泛關注和重視,并被視為繼計算機、互聯網與移動通信網之后的世界信息產業第三次浪潮 [1]。同時,如何通過物聯網技術改善居家環境和辦公環境,從而實現對不同設備的集中控制、節能控制和智能化管理[2]也成為人們日益關注的熱點。但當今我們所使用的家電大部分仍采用紅外協議進行控制,如,空調、投影儀和DVD等,致使這些紅外家電不能快速、有效地融入物聯網中。而無論是對這些家電進行改造或是重新設計都將延長研發周期,增加研發成本,提高設備價格,這也正是物聯網技術推廣艱難的重要原因之一。因此,設計一套使現有紅外家電在不做任何改造的情況下即可順利融入物聯網環境中的系統是十分必要的。同時對物聯網的推廣具有重要現實意義。
1 系統方案
本文設計的ZigBee-紅外控制系統依次分為上位機控制中心、ZigBee網絡和終端設備三部分。其系統架構如圖1所示。其中ZigBee網絡部分由ZigBee協調器和基于ZigBee無線網絡控制的ZigBee-紅外遙控組成。控制中心通過串口向ZigBee協調器發送控制指令,協調器在接收到控制指令后通過ZigBee網絡將控制信息發送給對應ZigBee-紅外遙控節點,并由該節點發射對應的紅外信號,實現基于ZigBee無線通信技術的紅外家電控制。
系統ZigBee網絡部分采用TI公司的無線SoC集成芯片CC2530[3]以及TI2007版ZigBee協議棧。
2 硬件設計
硬件部分采用模塊化的設計方式,將電路分為CC2530核心板與各功能不同的擴展板,實現同一核心板與不同擴展板的配合使用。這樣的好處在于針對不同的應用場景只需選取不同的擴展板,而不必對核心板進行修改。CC2530核心板包含CC2530芯片和RF收發電路,并引出芯片的主要I/O口與擴展板結合。根據功能的不同,擴展版分為ZigBee協調器和ZigBee-紅外遙控兩種。
2.1 ZigBee-紅外遙控電路
ZigBee-紅外遙控由CC2530核心板和ZigBee-紅外遙控擴展板兩部分組成。其擴展版主要包括嵌入式微處理器、紅外收/發模塊和電源模塊等。其結構框圖如圖2所示。
為實現低成本、高實時性的遙控,遙控的嵌入式微處理器選用由NXP半導體公司生產的基于Cortex-M0內核的LPC1114。該微處理器的CPU頻率可到50 MHz,同時包含高達32 KB片內Flash存儲器和8 KB數據存儲器, 4個通用計時器以及多達42個通用I/O引腳[5]。同時為進一步提高遙控的實時性,減小軟件負載,遙控不采用任何嵌入式操作系統。
2.2 ZigBee協調器電路
ZigBee協調器由CC2530核心板和協調器擴展板兩部分組成。其擴展版主要包括電源和開關模塊、UART串口模塊以及編程下載模塊。其框圖如圖3所示。
由于ZigBee協調器是一個ZigBee無線網絡的創建者和協調者,同時還是網絡內部與外部通信的樞紐[4],因此協調器必須一直處于活躍狀態。本次設計選用220 V AC/DC穩壓電源轉換模塊為協調器提供持續穩定的電源電壓,并設有電源開關。
2.3 協調器電源電路
由于CC2530由3.3 V電壓供電,因此協調器電源電路需設計為3.3 V電壓輸出,如圖4所示。
首先由JP1電源接口輸入220 V交流電,經過AC/DC電源模塊輸出5 V直流電源。再經過SPX1117-3.3 V LDO芯片產生穩定的3.3 V輸出電壓。SPX1117-3.3 V芯片的輸出電流可達800 mA,輸出電壓的精度在±1%以內。
3 軟件設計
本系統的軟件設計包含基于TI Z-Stack軟件構架的ZigBee程序設計、嵌入式微處理器程序設計和上位機控制中心軟件設計三部分。
3.1 ZigBee程序設計
基于Z-Stack軟件構架的ZigBee程序設計分為協調器程序設計和ZigBee-紅外遙控程序設計兩部分。它們同樣采用TI 2007版ZigBee協議棧,該協議棧的特點在于很好地支持了網絡的自組織和自愈合。同時,相對于2006版的ZigBee協議棧, 2007版協議棧還增加了支持多密鑰高安全性、支持大型網絡、支持分割傳輸等新特性。
ZigBee協議棧通過輪詢的方式依次查詢來自MAC層、網絡層、硬件抽象層、應用支持子層(APS)、ZigBee設備對象(ZDO)層和應用層的任務,并按優先級由高至低的順序依次處理[6]。
本設計的重點在于建立穩定可靠的、能自組織的ZigBee網絡,同時實現基于ZigBee網絡的紅外家電控制。ZigBee協調器和ZigBee-紅外遙控主要實現的功能有:
(1)協調器依據ZigBee協議棧,在Z_Stack架構下,組建了一個低功耗、自組織、可多跳和可靠健壯的樹形無線網絡。
(2)協調器將來自上位機控制中心的控制信息按照預定義的幀格式構造成發射數據,再通過ZigBee網絡發送給相應的遙控節點。
(3)遙控節點在接收到數據后按照預定義的幀格式解析數據,并執行相應操作,實現基于ZigBee網絡的紅外家電控制。
(4)通過遙控節點上的不同傳感器對室內溫度、濕度等信息進行采集,并將采集到的信息通過上位機顯示,實現對室內溫度、濕度的監控。
如圖5所示,根據ZigBee節點的類型、編號、功能指令和操作類型等參數定義數據幀格式。
3.2 嵌入式微處理器程序設計
為實現集中控制,同一遙控節點需對不同紅外家電進行控制[7],因此遙控節點需具有一定紅外學習能力。由于當前家電所采用的紅外協議紛繁復雜,要實現紅外協議的統一并不現實。因此,為了避開紛繁復雜的碼型,本系統中的遙控采用記錄紅外信號高低電平脈沖寬度的方式實現紅外信號的學習[8]。
設計思路為,通過嵌入式微處理器實現紅外信號的學習、存儲以及發射。當進入紅外學習狀態后,首先使能LPC1114 GPIO 2的雙邊沿觸發中斷,并等待紅外信號。當檢測到紅外信號下降沿時,進入中斷處理函數,開啟計數器,直到紅外信號出現邊沿跳變時再次進入中斷處理函數,關閉計數器,記錄低電平脈沖寬度。同時再次啟動計數器,開始記錄高電平脈沖寬度。直至檢測到脈沖寬度大于60 ms時,判斷為紅外信號發送完畢,結束學習過程。最后將學習到的數據存入存儲器中。
以下為紅外學習中斷處理函數代碼[5]:
LPC_GPIO2->IC|=Signal_In;
LPC_TMR16B0->TCR=0x00;
IR_Data[Ram_Point]= LPC_TMR16B0->TC;
LPC_TMR16B0->TC=0;
LPC_TMR16B0->TCR=0x01;
Ram_Point ++;
判斷紅外信號發射完畢程序代碼:
if (LPC_TMR16B0->TC>=60000){
NVIC_DisableIRQ(EINT2_IRQn);
LPC_TMR16B0->TCR= 0x00;}
紅外信號的發射過程采用匹配中斷的方式實現。首先將學習到的脈寬數據加載到LPC1114的32位計數器中,并啟動計數器。當計數值與計數器中預裝載的值相匹配時,產生匹配中斷。以下為紅外發射中斷處理函數代碼:
LPC_TMR32B0->IR=0x01;
Ram_Point ++;
LPC_TMR32B0->MR0=
IR_Data[Ram_Point];
if (Ram_Point%2==0)
Signal_OFF(); else
Signal_ON();
嵌入式微處理器的程序流程圖如圖6所示。
遙控的載波由16位計數器通過匹配反轉輸出的方式產生。該方法極大地提高了載波的穩定性[9],同時減少額外器件,降低成本。圖7為通過邏輯分析儀獲取的某一紅外信號與本遙控所學信號間的對比圖。由于紅外接收頭會將接收到的紅外信號反向,因此,原信號與學習信號剛好高低電平相反。通過圖7的波形對比可看出該遙控已成功實現學習功能。
3.3 上位機控制中心軟件設計
上位機控制中心的軟件設計選用Visual Studio 2010集成開發環境,并采用面向對象的編程語言C#[10]。主要實現對各遙控節點的可視化控制,并實時顯示由各節點采集到的數據。控制中心設計有串口調試窗口以便于對PC和協調器節點間的串口通信進行調試。
4 系統測試
系統的測試借助于上位機控制中心、ZigBee協調器和ZigBee-紅外遙控。選用一間配備有空調和投影儀的普通房間作為實驗環境,并將房間內的空調和投影儀作為實驗對象。
首先,用ZigBee協調器創建一個ZigBee網絡;其次,各ZigBee-紅外遙控節點依次加入網絡中;然后,通過上位機控制中心對相應遙控節點發送控制指令;最后,觀察房間內空調與投影的工作狀況。
測試過程中控制中心能實現對房間內空調和投影的有效控制,達到設計要求,表明該系統效果良好。
本文所設計的面向物聯網家電的ZigBee-紅外控制系統主要包括上位機控制中心、ZigBee協調器和ZigBee-紅外遙控。它實現在不對現有紅外家電做任何改造的情況下使其快速、有效地融入到物聯網環境中,達到對紅外家電的集中控制、節能控制和智能化管理。本系統成本低、功耗低、性能優越,并具有良好的可擴展性。不僅能滿足普通家庭需求,同時還可應用在如政府機關、學校、醫院等場合。因此本系統具有使用和推廣價值。
參考文獻
[1] ITU Internet Reports 2005: The Internet of Things[R].Geneva: International Telecommunication Union, 2005.
[2] HAN I, PARK H S, JEONG Y K,et al. An integrated home server for communication, broadcast reception, and home automation[J]. IEEE Transactions on Consumer Electronics, 2006,52(1):104-109.
[3] CC2530 data sheet[M]. April 2009.
[4] 鐘永鋒,劉永俊. ZigBee無線傳感器網絡[M]. 北京:北京郵電大學出版社, 2011.
[5] LPC111x/LPC11Cxx User Manual Rev. 7[M]. 19 September 2011.
[6] 高守瑋,吳燦陽. ZigBee技術實踐教程 [M]. 北京:北京航空航天大學出版社,2009.
[7] PARK W K, HAN I, PARK K R. ZigBee based dynamic control scheme for multiple legacy IR controllable digital consumer Devices[J]. IEEE Trans. On Consumer Electronics, 2007,53(1):172-177.
[8] 陳祖爵,王建毅. 智能型紅外遙控器的設計[J]. 微計算機信息,2008,24(1-2):305-307.
[9] 徐志,何明華,林武,等. 一類基于軟件載波的學習型遙控器的設計與實現[J]. 現代電子技術,2009(2):36-38.
[10] WATSON K, NAGEL C. C#入門經典(第5版)[M].北京:清華大學出版社, 2010.