基于Zigbee技術的家用無線網關的設計
來源:維庫開發網
摘要: 針對現代社會對信息獲取便捷度和家庭網絡化的要求,設計了一種可以組織家用電器成小型網絡的家用網關。該網關采用Zigbee技術和嵌入式系統相結合的設計方案,采用了自行設計的Zigbee協議棧結構使其適合嵌入式系統,達到了連接組網和交換信息的能力。
Abstract:
Key words :
0 引言
網關對于使用過網絡的人也許都不陌生,如家中或者辦公室中的連接個人電腦與國際互聯網的路由器。這里討論的網關,它的作用不是連接你的個人電腦到互聯網上遨游,而是將你家中大大小小的家用電器連接到你的個人電腦上,進而不需要你走進家中就能通過PC機控制家用網關來獲取家電信息和控制它們。因為采用了Zigbee無線技術,所以又稱為家用無線網關。
1 Zigbee技術的體系結構和拓撲結構
在Zigbee技術中,其體系結構通常是通過“層”來量化它的各個簡化標準的,每一層負責完成為其所規定的任務,并向上層提供服務。Zigbee技術的體系結構自下往上主要由物理(PHY)層、媒體接入控制(MAC)層、網絡/安全層以及應用框架層構成。
Zigbee技術網絡有2種拓撲結構:星型拓撲結構和對等拓撲結構(如圖1所示)。其中定義了兩種設備:全功能設備(FFD)和精簡功能設備(RFD)。FFD在硬件功能上比較完備,可以與所有其他的FFD或RFD通信,而RFD只能和與其關聯的FFD進行通信。與RFD相關聯的FFD設備稱為該RFD的“協調器”。在整個網絡中,有一個FFD充當網絡協調器。除直接參與應用外,網絡協調器還需要完成成員身份管理、鏈路狀態信息管理以及分組轉發等任務。
2 家用網關結構及其軟硬件組成
結合本課題中家用網關和家用電器的主從關系,本文采用基于星型拓撲結構的Zigbee網絡。因為Zigbee無線網關需要將基于TCP協議的信息轉發給Zigbee網絡其它的節點,故它必須為一個FFD設備,同時它在整個Zigbee網絡還要管理其它節點的一些信息,故其又實現為一個協調器。
結合本課題中家用網關和家用電器的主從關系,本文采用基于星型拓撲結構的Zigbee網絡。因為Zigbee無線網關需要將基于TCP協議的信息轉發給Zigbee網絡其它的節點,故它必須為一個FFD設備,同時它在整個Zigbee網絡還要管理其它節點的一些信息,故其又實現為一個協調器。

根據課題要求,選擇的系統硬件組成:采用S3C4480嵌入式開發板,該開發自帶2M FLASH和8M
RAM。網絡芯片采用RTL8019 10M網絡芯片,Zigbee通信模塊采用TI的CC2420芯片(兩片)。選用的系統軟件組成:uCOS-Ⅱ+基本功能Zigbee協議棧+LWIP TCP/IP協議棧。
Zigbee無線網關基本功能為將基于TCP協議的網絡與基于Zigbee協議棧的數據進行轉換,從而可以將基于常用的以太網的數據發送到Zigbee網絡中,也可以將Zigbee網絡中的數據發送到以太網中。開啟Zigbee無線網關,其它的RFD節點通過與其通信,加入到該無線網絡中。這樣Zigbee無線網關就可以管理所有節點。
這里涉及兩個主要協議棧:Zigbee協議棧和TCP/IP協議棧。
TCE/IP協議棧這里選擇適合嵌入式應用的LWIP協議棧,具有良好的移植性并且開放源代碼。
考慮到目前還沒有完全可以用的Zigbee協議棧,在這里定義并實現了—個基本功能的Zigbee協議棧。其基本結構為:
(1)phy層:該層主要實現與具體Zigbee模塊硬件有關的操作。
(2)mac層:基于phy層提供的接口,實現對Zigbee網絡的基本初始化,設置PAID,設置IEEE 64位地址,選擇通信通道,實現接收和發送Zigbee數據包功能。
(3)nwk層:該部分用來從mac獲得接收到的數據,對數據進行分析,進行一系列的操作。根據發送來的數據,如果是應用層的數據,向上傳遞接收到的數據。如果是網絡層命令,則進行具體操作。
RAM。網絡芯片采用RTL8019 10M網絡芯片,Zigbee通信模塊采用TI的CC2420芯片(兩片)。選用的系統軟件組成:uCOS-Ⅱ+基本功能Zigbee協議棧+LWIP TCP/IP協議棧。
Zigbee無線網關基本功能為將基于TCP協議的網絡與基于Zigbee協議棧的數據進行轉換,從而可以將基于常用的以太網的數據發送到Zigbee網絡中,也可以將Zigbee網絡中的數據發送到以太網中。開啟Zigbee無線網關,其它的RFD節點通過與其通信,加入到該無線網絡中。這樣Zigbee無線網關就可以管理所有節點。
這里涉及兩個主要協議棧:Zigbee協議棧和TCP/IP協議棧。
TCE/IP協議棧這里選擇適合嵌入式應用的LWIP協議棧,具有良好的移植性并且開放源代碼。
考慮到目前還沒有完全可以用的Zigbee協議棧,在這里定義并實現了—個基本功能的Zigbee協議棧。其基本結構為:
(1)phy層:該層主要實現與具體Zigbee模塊硬件有關的操作。
(2)mac層:基于phy層提供的接口,實現對Zigbee網絡的基本初始化,設置PAID,設置IEEE 64位地址,選擇通信通道,實現接收和發送Zigbee數據包功能。
(3)nwk層:該部分用來從mac獲得接收到的數據,對數據進行分析,進行一系列的操作。根據發送來的數據,如果是應用層的數據,向上傳遞接收到的數據。如果是網絡層命令,則進行具體操作。
實現的網絡層命令有:
a)終端節點(RFD)請求加入該網絡:進行驗證,并為加入的終端節點分配地址。
b)終端節點(RFD)請求離開該網絡:進行驗證,并將該節點從節點信息列表中刪除。
c)終端節點(RFD)加入該網絡成功。
d)終端節點(RFD)離開該網絡成功。
a)終端節點(RFD)請求加入該網絡:進行驗證,并為加入的終端節點分配地址。
b)終端節點(RFD)請求離開該網絡:進行驗證,并將該節點從節點信息列表中刪除。
c)終端節點(RFD)加入該網絡成功。
d)終端節點(RFD)離開該網絡成功。
除此之外還包括針對這些請求的FFD響應命令。
(4)app層:該層從nwk層獲得數據,并根據數據內容進行操作,與具體應用有關。
3 家用網關的具體操作流程及其偽代碼
Zigbee協議棧與TCP/IP協議棧,分別作為uCOS-II系統的兩個任務,這兩個任務之間通過消息隊列或者郵箱的形式進行數據通信,用以實現任務的數據交換。
在啟動主機軟件時,用戶通過設定要連接的Zigbee網關IP,從而使用Zigbee網關的連接。在連接成功以后,PC主機請求Zigbee網絡中所有節點的信息,Zigbee網關將Zigbee網絡中所有的節點信息發送給主機,主機軟件顯示所有可能的節點。獲得所有節點信息以后,用戶就可以選擇要通信的節點,并通過TCP將所有的操作信息發送給該節點,從而實現對節點控制和監控。
這里寫出Zigbee協議棧任務基本流程偽代碼。
(4)app層:該層從nwk層獲得數據,并根據數據內容進行操作,與具體應用有關。
3 家用網關的具體操作流程及其偽代碼
Zigbee協議棧與TCP/IP協議棧,分別作為uCOS-II系統的兩個任務,這兩個任務之間通過消息隊列或者郵箱的形式進行數據通信,用以實現任務的數據交換。
在啟動主機軟件時,用戶通過設定要連接的Zigbee網關IP,從而使用Zigbee網關的連接。在連接成功以后,PC主機請求Zigbee網絡中所有節點的信息,Zigbee網關將Zigbee網絡中所有的節點信息發送給主機,主機軟件顯示所有可能的節點。獲得所有節點信息以后,用戶就可以選擇要通信的節點,并通過TCP將所有的操作信息發送給該節點,從而實現對節點控制和監控。
這里寫出Zigbee協議棧任務基本流程偽代碼。

4 網關調試方法
具體的操作過程:
(1)打開串口調試助手軟件,設置波特率為57 600,8位,l位停止,無奇偶校驗和流量控制協議。
(2)連接好Zigbee與PC的串口,同時連接電源。
(3)在串口調試助手軟件中將顯示有關設備啟動的信息和Zigbee網關相關信息。這時說明Zigbee網絡已經初始化完成,并形成了一個Zigbee網絡。
(4)打開主機軟件,設置好連接的網關IP地址,然后點擊“連接”按鈕,這時在軟件左邊的列表框中顯示所有的Zigbee節點信息,也可以通過下面的“刷新節點信息”來獲得最新的節點信息列表。
主機軟件最下面的只讀編輯框,里面顯示的是一些日志信息,方便調試。圖3顯示了網關調試情況:
5 結論
通過網關設計分析,發現該網關具有實用性和可行性。在網關的設計過程中,遇到不少困難,比如目前還沒有適用于ARM平臺的Zigbee協議棧,只能對現有的各種Zigbee協議棧進行修改和移植,以適合ARM平臺,這一步實現起來較為復雜。另外,為了節省設備成本,測試中兩個RFD設備同時接在一個Zigbee無線網關設備上,距離較近,在實際生產測試中并不適用。
具體的操作過程:
(1)打開串口調試助手軟件,設置波特率為57 600,8位,l位停止,無奇偶校驗和流量控制協議。
(2)連接好Zigbee與PC的串口,同時連接電源。
(3)在串口調試助手軟件中將顯示有關設備啟動的信息和Zigbee網關相關信息。這時說明Zigbee網絡已經初始化完成,并形成了一個Zigbee網絡。
(4)打開主機軟件,設置好連接的網關IP地址,然后點擊“連接”按鈕,這時在軟件左邊的列表框中顯示所有的Zigbee節點信息,也可以通過下面的“刷新節點信息”來獲得最新的節點信息列表。
主機軟件最下面的只讀編輯框,里面顯示的是一些日志信息,方便調試。圖3顯示了網關調試情況:
5 結論
通過網關設計分析,發現該網關具有實用性和可行性。在網關的設計過程中,遇到不少困難,比如目前還沒有適用于ARM平臺的Zigbee協議棧,只能對現有的各種Zigbee協議棧進行修改和移植,以適合ARM平臺,這一步實現起來較為復雜。另外,為了節省設備成本,測試中兩個RFD設備同時接在一個Zigbee無線網關設備上,距離較近,在實際生產測試中并不適用。
此內容為AET網站原創,未經授權禁止轉載。