ZigBee無線遙控系統
引言
隨著高科技和信息技術的廣泛應用,安全、舒適、便利的生活環境已不再是一個夢想,智能家電已成為家居生活的必需品。但智能家電的普及,導致遙控器種類的多樣性,這就迫切需要一個功能更為強大的遙控器對其進行整合。
家中許多的電器產品只要有遙控的功能,例如電視機、空調以及音響等家電產品,都是以紅外線遙控的方式來控制。但是,由于紅外遙控的局限性,無法在一個地方,通過一個遙控器來控制多種類型的家電產品。設計了基于ZigBee模塊傳輸協議的遙控器,通過遠距離控制開發板上的Led 燈,來模擬實現對智能家電的遙控。ZigBee 數傳相比紅外傳輸的距離遠,并且,不必像紅外遙控需要嚴格的角度控制。所以,目前很多智能家居都是采用ZigBee數傳模塊傳輸數據,而智能家電無線遙控系統是在智能家居的基礎上實現的。
1 無線遙控系統整體模型
無線遙控系統主要由開發板模塊、遙控器和智能家電3 部分組成,如圖1 所示。
圖1 系統整體結構圖
(1)開發板模塊:本模塊采用RF2530A 開發板,板上集成了TI 公司的CC2530 芯片,能對來自遙控器的信號進行分析處理后通過ZigBee模塊把控制信息發送給智能家電。CC2530 芯片具有優質鏈路性能、芯片的內部空間小、低功耗等特性,使其成為智能家居控制的首選。
(2)遙控器:采用RemoTI R遙控器,其內部雖然集成有高性能的射頻收發器,但對于有阻隔物或距離較遠時,信號會受影響。因此為RemoTI R 外接功放芯片CC2590,遙控器上控制家電的信號通過功放芯片CC2590 發送給開發板,達到控制智能家電的目的。
(3)智能家電:ZigBee數傳網絡拓撲結構有對等和星型兩種結構,智能家居中一般采用星型網絡結構是由于星型網絡中協調器有且只有一個,終端設備節點可以有多個且可以被協調器自動識別,符合智能家居的特性。家庭生活中的電視、空調、冰箱等家電與ZigBee數傳模塊節點連接,組成網絡的終端設備節點;開發板設置為網絡中的協調器,與家電設備組成星型無線網絡。
2 硬件設計
2.1 開發板模塊
RF2530A 開發板包括天線接口、電源接口、內存、I/O 擴展接口、4 個Led 燈和CC2530 芯片等,CC2530 芯片是開發板的核心。該芯片采用8051MCU內核,支持IEEE 802.15.4/ZigBee協議,有21 個擴展口,允許5 種工作模式,電流損耗小,在無線短距離傳輸領域得到了廣泛應用,具體硬件結構如圖2 所示。
圖2 開發板結構圖
開發板通過USB 接口對CC2530 芯片進行燒錄程序,同時把接受到的程序保存在內存中。芯片在供電后,由晶振產生時鐘脈沖驅動主控芯片運行,讀取內存程序,并對無線接受設備進行監聽。當無線接受設備收到來自遙控器的信號時,主控芯片對信息進行處理分析,并進行相應的操作。
2.2 遙控器
遙控器RemoTI R集成CC2530 芯片,是在無線接收方面的一個拓展。但芯片自身的接收靈敏度較固定、發射頻率較小、傳輸距離僅幾百米,這難于滿足庭院式、復式家庭中對智能家電的控制需求,因此在遙控器中為CC2530 芯片連接一個射頻前端芯片CC2590,大大提高了接收的靈敏度,擴展了通信距離,連接如圖3 所示。
圖3 連接線路圖
CC2590 芯片內集成了功率放大器、收發器、巴倫、低噪聲放大器等電子元件,通過功率放大器可以輸出較高的功率,巴倫電子元件可以和CC2530 實現無縫連接,低噪聲放大器可以改善靈敏度,從而可以改善鏈路的估算,在無線網絡中獲得了極大的應用。
3 軟件實現過程
3.1 平臺構建
系統軟件部分利用的是IAR Embedded Workbench開發,協議方面的代碼由TI 官方提供,所以需要對Z-Stack_lighting文件進行安裝獲得協議代碼。
對IAR Embedded Workbench 搭建,按照軟件說明對IAR820 進行安裝,然后把iar.c c++.complier.v8.20.2.4.1139.for.8051 -patch 復制到安裝目錄下,即完成主要控件的搭建。
3.2遙控器按鍵控制函數
無線遙控系統主要通過遙控器上的按鍵控制RF2530A 開發板上的4 個Led 燈模擬實現對智能家居的控制,實現按鍵響應需要設置以下幾個主要函數。
(1)HalKeyInit()函數:當按鍵被啟動后,首先調用此函數,完成必須的或可選參數的初始化操作。
(2)HalKeyConfig()函數:此函數對按鍵配置中斷或輪詢服務。若無中斷,調用中斷服務程序(ISR)來處理,輪詢在100 ms 后自動開始;若中斷發生,將會有一個25 ms的延時來消除回跳。
(3)HalKeyRead()函數:此函數的返回值為按鍵的當期狀態。若按鍵被設置為輪詢,此函數每100 ms有HAL驅動任務調用一次;若按鍵被設置為中斷驅動,此函數會在中斷發生后每25 ms 由HAL 驅動任務調用一次。
3.3 驅動Led燈控制函數
分析開發板上的Led 燈支持ON、OFF 和FLASH 操作,驅動Led 燈需配置以下幾個函數:(1)HalLedInit():當啟動Led 燈服務時,首先調用此函數來配置所必須的、可選參數的初始化操作。
(2)HalLedSet():此函數用來設置Led 燈的工作模式,想完成函數中參數的設置,必須調用HalLed-Blink()函數。
(3)HalLedBlink():此函數可以根據提供的參數控制特定的Led 燈工作。
(4)HalLedEnterSleep():本函數存儲Led 燈的當期狀態,還可以通過設置全局狀態變量,控制Led 燈進入睡眠模式,達到節能的目的。
4 功能測試
實驗時硬件開發板一塊,接口連接如圖4 所示。
圖4 開發板連接圖
與開發板配對的遙控器一個,接口連接如圖5 所示。
圖5 遙控器連接圖
通過按動遙控器上的按鍵遠距離控制開發板上的Led 燈的亮滅來驗證無線遙控系統的可行。
分別給遙控器和開發板模塊供電,RF2530A 開發板在供電之后,若所有的Led 燈閃爍一下后滅掉,說明線路連接成功。若不成功,應首選檢查開發板與遙控器的跳冒連接是否正確、連接兩者的杜邦線是否緊密等硬件問題;其次再檢查燒錄協議、函數設置等軟件問題。
在實驗驗證之前,遙控器模塊和開發板首先距離保持在30 cm 左右;然后ON 和OFF鍵同時按一下,建立網絡連接;最后等待5 s,可以看到開發板上的4個Led 燈閃爍一下,說明遙控器和開發板連接成功。
遙控器和開發板的距離能擴展到幾百米范圍,通過遙控器上的按鍵可以打開/ 關閉開發板上的Led 燈,測試結果達到了預期的效果。
5 結束語
隨著物聯網技術的出現,為住宅智能化提供了技術基礎,給智能家居帶來了新的春天,方便人們享受舒適的生活。本文針對智能家居中出現遙控器種類過多的問題,以RF2530A 開發板為數據處理中心,利用ZigBee無模塊設計了一個靈敏度好、低功耗的遙控器,利用ZigBee數傳模塊短距離無線傳輸協議,把家庭中的智能家電、開發板構建成星型結構的網絡,通過設計好的遙控器來管理家庭中的所有家電,方便了用戶,美化了家居環境。
此遙控器硬件成本低、操作簡單,易于工業化生產,具有廣泛的應用前景。