0 引言
網(wǎng)關(guān)對(duì)于使用過(guò)網(wǎng)絡(luò)的人也許都不陌生,如家中或者辦公室中的連接個(gè)人電腦與國(guó)際互聯(lián)網(wǎng)的路由器,。這里討論的網(wǎng)關(guān),,它的作用不是連接你的個(gè)人電腦到互聯(lián)網(wǎng)上遨游,而是將你家中大大小小的家用電器連接到你的個(gè)人電腦上,,進(jìn)而不需要你走進(jìn)家中就能通過(guò)PC機(jī)控制家用網(wǎng)關(guān)來(lái)獲取家電信息和控制它們,。因?yàn)椴捎昧?a href="http://wldgj.com/article/index.aspx?id=23778 ">Zigbee無(wú)線技術(shù),所以又稱(chēng)為家用無(wú)線網(wǎng)關(guān),。
1 Zigbee技術(shù)的體系結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu)
在Zigbee技術(shù)中,,其體系結(jié)構(gòu)通常是通過(guò)“層”來(lái)量化它的各個(gè)簡(jiǎn)化標(biāo)準(zhǔn)的,每一層負(fù)責(zé)完成為其所規(guī)定的任務(wù),,并向上層提供服務(wù),。Zigbee技術(shù)的體系結(jié)構(gòu)自下往上主要由物理(PHY)層、媒體接入控制(MAC)層,、網(wǎng)絡(luò)/安全層以及應(yīng)用框架層構(gòu)成,。
Zigbee技術(shù)網(wǎng)絡(luò)有2種拓?fù)浣Y(jié)構(gòu):星型拓?fù)浣Y(jié)構(gòu)和對(duì)等拓?fù)浣Y(jié)構(gòu)(如圖1所示),。其中定義了兩種設(shè)備:全功能設(shè)備(FFD)和精簡(jiǎn)功能設(shè)備(RFD),。FFD在硬件功能上比較完備,,可以與所有其他的FFD或RFD通信,而RFD只能和與其關(guān)聯(lián)的FFD進(jìn)行通信,。與RFD相關(guān)聯(lián)的FFD設(shè)備稱(chēng)為該RFD的“協(xié)調(diào)器”,。在整個(gè)網(wǎng)絡(luò)中,有一個(gè)FFD充當(dāng)網(wǎng)絡(luò)協(xié)調(diào)器,。除直接參與應(yīng)用外,,網(wǎng)絡(luò)協(xié)調(diào)器還需要完成成員身份管理、鏈路狀態(tài)信息管理以及分組轉(zhuǎn)發(fā)等任務(wù),。
結(jié)合本課題中家用網(wǎng)關(guān)和家用電器的主從關(guān)系,,本文采用基于星型拓?fù)浣Y(jié)構(gòu)的Zigbee網(wǎng)絡(luò)。因?yàn)閆igbee無(wú)線網(wǎng)關(guān)需要將基于TCP協(xié)議的信息轉(zhuǎn)發(fā)給Zigbee網(wǎng)絡(luò)其它的節(jié)點(diǎn),,故它必須為一個(gè)FFD設(shè)備,,同時(shí)它在整個(gè)Zigbee網(wǎng)絡(luò)還要管理其它節(jié)點(diǎn)的一些信息,故其又實(shí)現(xiàn)為一個(gè)協(xié)調(diào)器,。

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

具體的操作過(guò)程:
(1)打開(kāi)串口調(diào)試助手軟件,設(shè)置波特率為57 600,8位,,l位停止,,無(wú)奇偶校驗(yàn)和流量控制協(xié)議。
(2)連接好Zigbee與PC的串口,,同時(shí)連接電源,。
(3)在串口調(diào)試助手軟件中將顯示有關(guān)設(shè)備啟動(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)主機(jī)軟件,設(shè)置好連接的網(wǎng)關(guān)IP地址,,然后點(diǎn)擊“連接”按鈕,這時(shí)在軟件左邊的列表框中顯示所有的Zigbee節(jié)點(diǎn)信息,,也可以通過(guò)下面的“刷新節(jié)點(diǎn)信息”來(lái)獲得最新的節(jié)點(diǎn)信息列表,。
主機(jī)軟件最下面的只讀編輯框,里面顯示的是一些日志信息,,方便調(diào)試,。圖3顯示了網(wǎng)關(guān)調(diào)試情況:
5 結(jié)論
通過(guò)網(wǎng)關(guān)設(shè)計(jì)分析,發(fā)現(xiàn)該網(wǎng)關(guān)具有實(shí)用性和可行性,。在網(wǎng)關(guān)的設(shè)計(jì)過(guò)程中,,遇到不少困難,比如目前還沒(méi)有適用于ARM平臺(tái)的Zigbee協(xié)議棧,,只能對(duì)現(xiàn)有的各種Zigbee協(xié)議棧進(jìn)行修改和移植,,以適合ARM平臺(tái),這一步實(shí)現(xiàn)起來(lái)較為復(fù)雜,。另外,,為了節(jié)省設(shè)備成本,測(cè)試中兩個(gè)RFD設(shè)備同時(shí)接在一個(gè)Zigbee無(wú)線網(wǎng)關(guān)設(shè)備上,,距離較近,,在實(shí)際生產(chǎn)測(cè)試中并不適用。