基于ZigBee和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計
摘 要: 基于ZigBee 和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計,實現(xiàn)了ZigBee 傳感器網(wǎng)絡(luò)和以太網(wǎng)的互聯(lián)互通,進(jìn)而將監(jiān)測、控制設(shè)備和互聯(lián)網(wǎng)有效的連接起來,為ZigBee 傳感器網(wǎng)絡(luò)提供了更廣闊的遠(yuǎn)程網(wǎng)絡(luò)控制平臺,并完成ZigBee 網(wǎng)絡(luò)與以太網(wǎng)之間數(shù)據(jù)的透明傳輸和協(xié)議轉(zhuǎn)換。論文給出了結(jié)合ZigBee 和以太網(wǎng)的網(wǎng)關(guān)硬件設(shè)計方案,利用CC2430 和RTL8019 芯片進(jìn)行無線網(wǎng)關(guān)的硬件電路設(shè)計,同時提出一種網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換方法。
本文引用地址:http://2s4d.com/article/153856.htm1 引言
ZigBee 是一種新興短距離、低功耗、低傳輸速率的無線傳感器網(wǎng)絡(luò)通信技術(shù)。以IEEE802.15.4 為標(biāo)準(zhǔn),通過傳感器節(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ò)進(jìn)行遠(yuǎn)程管理,逐漸成為傳感器網(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)測和遠(yuǎ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)進(jìn)行ZigBee數(shù)據(jù)包解析,從數(shù)據(jù)包中提取有效信息數(shù)據(jù),進(jìn)行協(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)
網(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)。
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)框圖。
由于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)換框圖。
在TCP/IP 協(xié)議簇中,以太網(wǎng)的數(shù)據(jù)傳輸使用硬件地址(MAC)來進(jìn)行識別,其中,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ù)進(jìn)行相應(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),加載的包長,目的地址,源地址、標(biāo)志位以及有效載荷,打開接受確認(rèn)鏈路,然后發(fā)送數(shù)據(jù)。如果設(shè)置要求確認(rèn),則會自動切換到接受狀態(tài);如果設(shè)定的確認(rèn)幀的最大接收時間還沒有接受的則會設(shè)定重發(fā)標(biāo)志;如果重發(fā)還沒有接受則回報告發(fā)送失敗。
評論