新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于ZigBee和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計

基于ZigBee和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計

作者: 時間:2012-10-08 來源:網(wǎng)絡(luò) 收藏

摘 要: ,實現(xiàn)了 傳感器網(wǎng)絡(luò)和的互聯(lián)互通,進而將監(jiān)測、控制設(shè)備和互聯(lián)網(wǎng)有效的連接起來,為 傳感器網(wǎng)絡(luò)提供了更廣闊的遠程網(wǎng)絡(luò)控制平臺,并完成ZigBee 網(wǎng)絡(luò)與之間數(shù)據(jù)的透明傳輸和協(xié)議轉(zhuǎn)換。論文給出了結(jié)合ZigBee 和以太網(wǎng)的硬件方案,利用CC2430RTL8019 芯片進行的硬件電路,同時提出一種網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換方法。

本文引用地址:http://m.butianyuan.cn/article/153856.htm

  1 引言

  ZigBee 是一種新興短距離、低功耗、低傳輸速率的傳感器網(wǎng)絡(luò)通信技術(shù)。以IEEE802.15.4 為標準,通過傳感器節(jié)點相互通信,以接力的方式將采集數(shù)據(jù)傳到另一個網(wǎng)絡(luò)節(jié)點或協(xié)調(diào)器節(jié)。該技術(shù)使用免費的IMS 的2.4GHz、915M 和868MHz 頻段,傳輸速率為20K 至250Kbps,具有雙向通信功能。它適用于通信數(shù)據(jù)量不大,傳輸速率相對較低,分布范圍較小的,而且成本和功耗較低的場合。

  隨著計算機分布式處理、互聯(lián)網(wǎng)等技術(shù)被廣泛應(yīng)用,計算機的聯(lián)網(wǎng)需求迅速擴大。如何通過現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施對傳感器網(wǎng)絡(luò)進行遠程管理,逐漸成為傳感器網(wǎng)絡(luò)和計算機網(wǎng)絡(luò)研究課題。

  ZigBee 和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計就是在無線傳感器網(wǎng)絡(luò)和互聯(lián)網(wǎng)之間搭建一條數(shù)據(jù)傳輸通道。

  本設(shè)計中數(shù)據(jù)傳輸系統(tǒng)將ZigBee 數(shù)據(jù)包轉(zhuǎn)化為以太網(wǎng)的TCP/IP 協(xié)議的數(shù)據(jù)包,實現(xiàn)數(shù)據(jù)在兩個協(xié)議之間的雙向傳輸,搭建聯(lián)系二者之間的一條透明傳輸通道,完成ZigBee 技術(shù)和以太網(wǎng)互通,從而實現(xiàn)對現(xiàn)場的監(jiān)測和遠程控制。

  2 系統(tǒng)概述

  結(jié)合ZigBee 和以太網(wǎng)的數(shù)據(jù)傳輸網(wǎng)絡(luò)體系統(tǒng)包括ZigBee 網(wǎng)絡(luò)和以太網(wǎng)兩部分。ZigBee 網(wǎng)絡(luò)通過網(wǎng)絡(luò)節(jié)點將采集數(shù)據(jù)以多跳變的方式傳送到ZigBee 匯接點,匯接點將數(shù)據(jù)發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)進行ZigBee數(shù)據(jù)包解析,從數(shù)據(jù)包中提取有效信息數(shù)據(jù),進行協(xié)議轉(zhuǎn)換和數(shù)據(jù)包重新封裝打包成TCP/IP 數(shù)據(jù)包,經(jīng)過以太網(wǎng)傳輸將數(shù)據(jù)送到控制中心,完成整個網(wǎng)絡(luò)的數(shù)據(jù)傳輸。圖1 給出了結(jié)合ZigBee 網(wǎng)絡(luò)和以太網(wǎng)的數(shù)據(jù)傳輸網(wǎng)絡(luò)體系結(jié)構(gòu)。

圖1 結(jié)合ZigBee 和以太網(wǎng)的數(shù)傳網(wǎng)絡(luò)體系結(jié)構(gòu)

圖1 結(jié)合ZigBee 和以太網(wǎng)的數(shù)傳網(wǎng)絡(luò)體系結(jié)構(gòu)

  網(wǎng)關(guān)是建立在傳輸層以上的協(xié)議轉(zhuǎn)換器,連接ZigBee 和以太網(wǎng)兩個相互獨立的網(wǎng)絡(luò),實現(xiàn)ZigBee和以太網(wǎng)協(xié)議轉(zhuǎn)換,并將數(shù)據(jù)壓縮打包封裝,在轉(zhuǎn)發(fā)之前經(jīng)MCU(微處理器)將它轉(zhuǎn)化為另一種數(shù)據(jù)包格式,而不需要外加協(xié)議轉(zhuǎn)換器件,完成二者之間的協(xié)議轉(zhuǎn)換和數(shù)據(jù)傳輸。從結(jié)構(gòu)圖可抽象出結(jié)合ZigBee和以太網(wǎng)的網(wǎng)關(guān)結(jié)構(gòu),如圖2 所示。

圖2 結(jié)合ZigBee 和以太網(wǎng)的網(wǎng)關(guān)結(jié)構(gòu)。

圖2 結(jié)合ZigBee 和以太網(wǎng)的網(wǎng)關(guān)結(jié)構(gòu)。

  3 芯片選型

  3.1 ZigBee 芯片的選型

  選用成都Chipcon 公司的無線收發(fā)芯片CC2430 作為本設(shè)計ZigBee 網(wǎng)絡(luò)的傳輸方案。

  CC2430 是一顆真正片上系統(tǒng)芯片,內(nèi)部集成一個高性能2.4GHz 直接序列擴頻 (DSSS)射頻收發(fā)器核心和一顆工業(yè)級加強型8051 內(nèi)核[3],無需再選另外的處理器,使設(shè)計簡化。

  3.2 以太網(wǎng)芯片的選型

  選取臺灣RETLTEK 公司的網(wǎng)卡芯片RTL8019,該芯片ISA 總線高度集成,具有價格低,接口簡單,不需要轉(zhuǎn)接芯片,兼容性強等特點。

4 總體設(shè)計

  4.1 硬件設(shè)計

  本設(shè)計采用CC2430 片上8051 內(nèi)核作為整個系統(tǒng)的MCU,來控制以太網(wǎng)芯片RTL8019,實現(xiàn)ZigBee和以太網(wǎng)協(xié)議轉(zhuǎn)換和數(shù)據(jù)傳輸。硬件框圖如圖3 所示:

圖3 硬件結(jié)構(gòu)框圖

圖3 硬件結(jié)構(gòu)框圖。

  由于CC2430 只提供SPI 總線和UART 的接口,硬件接口沒有選用另外的轉(zhuǎn)接芯片而采用軟件模擬的方式來解決地址數(shù)據(jù)的總線接口問題,從而使系統(tǒng)的硬件設(shè)計簡化。硬件接口采用8 位數(shù)據(jù)總線方式,通過跳線的方式來選擇RTL8019 在ISA 總線上的數(shù)據(jù)讀取方式的,使RTL8019 工作在8 位數(shù)據(jù)總線方式。

  4.2 協(xié)議轉(zhuǎn)換設(shè)計

圖 4 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換框圖

圖 4 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換框圖。

  在TCP/IP 協(xié)議簇中,以太網(wǎng)的數(shù)據(jù)傳輸使用硬件地址(MAC)來進行識別,其中,ARP(地址解析協(xié)議)完成IP 地址和數(shù)據(jù)鏈路層使用的硬件地址之間的轉(zhuǎn)換 [4],因此為了保證ZigBee 網(wǎng)關(guān)在以太網(wǎng)中的通信,首先要實現(xiàn)ARP 協(xié)議的功能。ZigBee 網(wǎng)絡(luò)中節(jié)點都擁有自己唯一的MAC 地址,參考TCP/IP 下的實現(xiàn)機制,實現(xiàn)ZigBee 協(xié)議中的適配層和ARP,實現(xiàn)IP 地址到ZigBee節(jié)點地址的映射。協(xié)議轉(zhuǎn)化框圖如圖4 所示,據(jù)圖描述數(shù)據(jù)從ZigBee 向以太網(wǎng)方向轉(zhuǎn)換過程:無線網(wǎng)絡(luò)中ZigBee 節(jié)點,接收指令將數(shù)據(jù)包打包,簡單判斷后向上發(fā)送給本地ARP,通過ARP 解析出該節(jié)點的網(wǎng)絡(luò)MAC地址,確定要發(fā)送到的以太網(wǎng)地址;然后向上發(fā)送給網(wǎng)關(guān)應(yīng)用程序,經(jīng)分析后發(fā)送到對應(yīng)的以太網(wǎng)UDP 或TCP處理函數(shù)進行相應(yīng)處理,向下發(fā)送到以太網(wǎng)端口MAC地址。這樣就完成了數(shù)據(jù)從ZigBee 向以太網(wǎng)的協(xié)議轉(zhuǎn)換過程。

4.3 數(shù)據(jù)傳輸

  數(shù)據(jù)包發(fā)送流程如圖5 所示:調(diào)用初始化函數(shù),初始化CC2430 和RTL8019,設(shè)置通訊頻率和本地地址,調(diào)用radioSend(sendBuffer,sizeof,remoteAddrDO_NOT_ACK)函數(shù),確定要發(fā)送的數(shù)據(jù)的長度,定位要發(fā)送數(shù)據(jù)的目的地址,判斷是是否超出最大有效載荷允許的長度,否則數(shù)據(jù)被分成幾個包發(fā)送;然后調(diào)用sppSend(txData)函數(shù),該程序用來發(fā)送數(shù)據(jù)指針指向的數(shù)據(jù)包。首先設(shè)置DMA 方式,禁止RF中斷添要發(fā)送的數(shù)據(jù)包的格式(SPP_RX_STRUCT),加載的包長,目的地址,源地址、標志位以及有效載荷,打開接受確認鏈路,然后發(fā)送數(shù)據(jù)。如果設(shè)置要求確認,則會自動切換到接受狀態(tài);如果設(shè)定的確認幀的最大接收時間還沒有接受的則會設(shè)定重發(fā)標志;如果重發(fā)還沒有接受則回報告發(fā)送失敗。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉