基于Zigbee技術(shù)的家用無(wú)線(xiàn)網(wǎng)關(guān)的設計
根據課題要求,選擇的系統硬件組成:采用S3C4480嵌入式開(kāi)發(fā)板,該開(kāi)發(fā)自帶2M FLASH和8M RAM。網(wǎng)絡(luò )芯片采用RTL8019 10M網(wǎng)絡(luò )芯片,Zigbee通信模塊采用TI的CC2420芯片(兩片)。
選用的系統軟件組成:uCOS-Ⅱ+基本功能Zigbee協(xié)議棧+LWIP TCP/IP協(xié)議棧。
Zigbee無(wú)線(xiàn)網(wǎng)關(guān)基本功能為將基于TCP協(xié)議的網(wǎng)絡(luò )與基于Zigbee協(xié)議棧的數據進(jìn)行轉換,從而可以將基于常用的以太網(wǎng)的數據發(fā)送到Zigbee網(wǎng)絡(luò )中,也可以將Zigbee網(wǎng)絡(luò )中的數據發(fā)送到以太網(wǎng)中。開(kāi)啟Zigbee無(wú)線(xiàn)網(wǎng)關(guān),其它的RFD節點(diǎn)通過(guò)與其通信,加入到該無(wú)線(xiàn)網(wǎng)絡(luò )中。這樣Zigbee無(wú)線(xiàn)網(wǎng)關(guān)就可以管理所有節點(diǎn)。
這里涉及兩個(gè)主要協(xié)議棧:Zigbee協(xié)議棧和TCP/IP協(xié)議棧。
TCE/IP協(xié)議棧這里選擇適合嵌入式應用的LWIP協(xié)議棧,具有良好的移植性并且開(kāi)放源代碼。
考慮到目前還沒(méi)有完全可以用的Zigbee協(xié)議棧,在這里定義并實(shí)現了―個(gè)基本功能的Zigbee協(xié)議棧。其基本結構為:
(1)phy層:該層主要實(shí)現與具體Zigbee模塊硬件有關(guān)的操作。
(2)mac層:基于phy層提供的接口,實(shí)現對Zigbee網(wǎng)絡(luò )的基本初始化,設置PAID,設置IEEE 64位地址,選擇通信通道,實(shí)現接收和發(fā)送Zigbee數據包功能。
(3)nwk層:該部分用來(lái)從mac獲得接收到的數據,對數據進(jìn)行分析,進(jìn)行一系列的操作。根據發(fā)送來(lái)的數據,如果是應用層的數據,向上傳遞接收到的數據。如果是網(wǎng)絡(luò )層命令,則進(jìn)行具體操作。
實(shí)現的網(wǎng)絡(luò )層命令有:
a)終端節點(diǎn)(RFD)請求加入該網(wǎng)絡(luò ):進(jìn)行驗證,并為加入的終端節點(diǎn)分配地址。
b)終端節點(diǎn)(RFD)請求離開(kāi)該網(wǎng)絡(luò ):進(jìn)行驗證,并將該節點(diǎn)從節點(diǎn)信息列表中刪除。
c)終端節點(diǎn)(RFD)加入該網(wǎng)絡(luò )成功。
d)終端節點(diǎn)(RFD)離開(kāi)該網(wǎng)絡(luò )成功。
除此之外還包括針對這些請求的FFD響應命令。
(4)app層:該層從nwk層獲得數據,并根據數據內容進(jìn)行操作,與具體應用有關(guān)。本文引用地址:http://dyxdggzs.com/article/157333.htm
3 家用網(wǎng)關(guān)的具體操作流程及其偽代碼
Zigbee協(xié)議棧與TCP/IP協(xié)議棧,分別作為uCOS-II系統的兩個(gè)任務(wù),這兩個(gè)任務(wù)之間通過(guò)消息隊列或者郵箱的形式進(jìn)行數據通信,用以實(shí)現任務(wù)的數據交換。
在啟動(dòng)主機軟件時(shí),用戶(hù)通過(guò)設定要連接的Zigbee網(wǎng)關(guān)IP,從而使用Zigbee網(wǎng)關(guān)的連接。在連接成功以后,PC主機請求Zigbee網(wǎng)絡(luò )中所有節點(diǎn)的信息,Zigbee網(wǎng)關(guān)將Zigbee網(wǎng)絡(luò )中所有的節點(diǎn)信息發(fā)送給主機,主機軟件顯示所有可能的節點(diǎn)。獲得所有節點(diǎn)信息以后,用戶(hù)就可以選擇要通信的節點(diǎn),并通過(guò)TCP將所有的操作信息發(fā)送給該節點(diǎn),從而實(shí)現對節點(diǎn)控制和監控。
這里寫(xiě)出Zigbee協(xié)議棧任務(wù)基本流程偽代碼。
4 網(wǎng)關(guān)調試方法
具體的操作過(guò)程:
(1)打開(kāi)串口調試助手軟件,設置波特率為57 600,8位,l位停止,無(wú)奇偶校驗和流量控制協(xié)議。
(2)連接好Zigbee與PC的串口,同時(shí)連接電源。
(3)在串口調試助手軟件中將顯示有關(guān)設備啟動(dòng)的信息和Zigbee網(wǎng)關(guān)相關(guān)信息。這時(shí)說(shuō)明Zigbee網(wǎng)絡(luò )已經(jīng)初始化完成,并形成了一個(gè)Zigbee網(wǎng)絡(luò )。
(4)打開(kāi)主機軟件,設置好連接的網(wǎng)關(guān)IP地址,然后點(diǎn)擊“連接”按鈕,這時(shí)在軟件左邊的列表框中顯示所有的Zigbee節點(diǎn)信息,也可以通過(guò)下面的“刷新節點(diǎn)信息”來(lái)獲得最新的節點(diǎn)信息列表。
主機軟件最下面的只讀編輯框,里面顯示的是一些日志信息,方便調試。圖3顯示了網(wǎng)關(guān)調試情況:
5 結論
通過(guò)網(wǎng)關(guān)設計分析,發(fā)現該網(wǎng)關(guān)具有實(shí)用性和可行性。在網(wǎng)關(guān)的設計過(guò)程中,遇到不少困難,比如目前還沒(méi)有適用于A(yíng)RM平臺的Zigbee協(xié)議棧,只能對現有的各種Zigbee協(xié)議棧進(jìn)行修改和移植,以適合ARM平臺,這一步實(shí)現起來(lái)較為復雜。另外,為了節省設備成本,測試中兩個(gè)RFD設備同時(shí)接在一個(gè)Zigbee無(wú)線(xiàn)網(wǎng)關(guān)設備上,距離較近,在實(shí)際生產(chǎn)測試中并不適用。
評論