基于ZigBee和以太網(wǎng)的無(wú)線(xiàn)網(wǎng)關(guān)設計
1 引言
ZigBee 是一種新興短距離、低功耗、低傳輸速率的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )通信技術(shù)。以IEEE802.15.4 為標準,通過(guò)傳感器節點(diǎn)相互通信,以接力的方式將采集數據傳到另一個(gè)網(wǎng)絡(luò )節點(diǎn)或協(xié)調器節。該技術(shù)使用免費的IMS 的2.4GHz、915M 和868MHz 頻段,傳輸速率為20K 至250Kbps,具有雙向通信功能。它適用于通信數據量不大,傳輸速率相對較低,分布范圍較小的,而且成本和功耗較低的場(chǎng)合。
隨著(zhù)計算機分布式處理、互聯(lián)網(wǎng)等技術(shù)被廣泛應用,計算機的聯(lián)網(wǎng)需求迅速擴大。如何通過(guò)現有網(wǎng)絡(luò )基礎設施對傳感器網(wǎng)絡(luò )進(jìn)行遠程管理,逐漸成為傳感器網(wǎng)絡(luò )和計算機網(wǎng)絡(luò )研究課題。
基于ZigBee 和以太網(wǎng)的無(wú)線(xiàn)網(wǎng)關(guān)設計就是在無(wú)線(xiàn)傳感器網(wǎng)絡(luò )和互聯(lián)網(wǎng)之間搭建一條數據傳輸通道。
本設計中數據傳輸系統將ZigBee 數據包轉化為以太網(wǎng)的TCP/IP 協(xié)議的數據包,實(shí)現數據在兩個(gè)協(xié)議之間的雙向傳輸,搭建聯(lián)系二者之間的一條透明傳輸通道,完成ZigBee 技術(shù)和以太網(wǎng)互通,從而實(shí)現對現場(chǎng)的監測和遠程控制。
2 系統概述
結合ZigBee 和以太網(wǎng)的數據傳輸網(wǎng)絡(luò )體系統包括ZigBee 網(wǎng)絡(luò )和以太網(wǎng)兩部分。ZigBee 網(wǎng)絡(luò )通過(guò)網(wǎng)絡(luò )節點(diǎn)將采集數據以多跳變的方式傳送到ZigBee 匯接點(diǎn),匯接點(diǎn)將數據發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)進(jìn)行ZigBee數據包解析,從數據包中提取有效信息數據,進(jìn)行協(xié)議轉換和數據包重新封裝打包成TCP/IP 數據包,經(jīng)過(guò)以太網(wǎng)傳輸將數據送到控制中心,完成整個(gè)網(wǎng)絡(luò )的數據傳輸。圖1 給出了結合ZigBee 網(wǎng)絡(luò )和以太網(wǎng)的數據傳輸網(wǎng)絡(luò )體系結構。
圖1 結合ZigBee 和以太網(wǎng)的數傳網(wǎng)絡(luò )體系結構
網(wǎng)關(guān)是建立在傳輸層以上的協(xié)議轉換器,連接ZigBee 和以太網(wǎng)兩個(gè)相互獨立的網(wǎng)絡(luò ),實(shí)現ZigBee和以太網(wǎng)協(xié)議轉換,并將數據壓縮打包封裝,在轉發(fā)之前經(jīng)MCU(微處理器)將它轉化為另一種數據包格式,而不需要外加協(xié)議轉換器件,完成二者之間的協(xié)議轉換和數據傳輸。從結構圖可抽象出結合ZigBee和以太網(wǎng)的網(wǎng)關(guān)結構,如圖2 所示。
圖2 結合ZigBee 和以太網(wǎng)的網(wǎng)關(guān)結構。
3 芯片選型
3.1 ZigBee 芯片的選型
選用成都Chipcon 公司的無(wú)線(xiàn)收發(fā)芯片CC2430 作為本設計ZigBee 網(wǎng)絡(luò )的傳輸方案。
CC2430 是一顆真正片上系統芯片,內部集成一個(gè)高性能2.4GHz 直接序列擴頻 (DSSS)射頻收發(fā)器核心和一顆工業(yè)級加強型8051 內核[3],無(wú)需再選另外的處理器,使設計簡(jiǎn)化。
3.2 以太網(wǎng)芯片的選型
選取臺灣RETLTEK 公司的網(wǎng)卡芯片RTL8019,該芯片ISA 總線(xiàn)高度集成,具有價(jià)格低,接口簡(jiǎn)單,不需要轉接芯片,兼容性強等特點(diǎn)。
4 總體設計
4.1 硬件設計
本設計采用CC2430 片上8051 內核作為整個(gè)系統的MCU,來(lái)控制以太網(wǎng)芯片RTL8019,實(shí)現ZigBee和以太網(wǎng)協(xié)議轉換和數據傳輸。硬件框圖如圖3 所示:
圖3 硬件結構框圖。
由于CC2430 只提供SPI 總線(xiàn)和UART 的接口,硬件接口沒(méi)有選用另外的轉接芯片而采用軟件模擬的方式來(lái)解決地址數據的總線(xiàn)接口問(wèn)題,從而使系統的硬件設計簡(jiǎn)化。硬件接口采用8 位數據總線(xiàn)方式,通過(guò)跳線(xiàn)的方式來(lái)選擇RTL8019 在ISA 總線(xiàn)上的數據讀取方式的,使RTL8019 工作在8 位數據總線(xiàn)方式。
4.2 協(xié)議轉換設計
圖 4 網(wǎng)關(guān)協(xié)議轉換框圖。
在TCP/IP 協(xié)議簇中,以太網(wǎng)的數據傳輸使用硬件地址(MAC)來(lái)進(jìn)行識別,其中,ARP(地址解析協(xié)議)完成IP 地址和數據鏈路層使用的硬件地址之間的轉換 [4],因此為了保證ZigBee 網(wǎng)關(guān)在以太網(wǎng)中的通信,首先要實(shí)現ARP 協(xié)議的功能。ZigBee 網(wǎng)絡(luò )中節點(diǎn)都擁有自己唯一的MAC 地址,參考TCP/IP 下的實(shí)現機制,實(shí)現ZigBee 協(xié)議中的適配層和ARP,實(shí)現IP 地址到ZigBee節點(diǎn)地址的映射。協(xié)議轉化框圖如圖4 所示,據圖描述數據從ZigBee 向以太網(wǎng)方向轉換過(guò)程:無(wú)線(xiàn)網(wǎng)絡(luò )中ZigBee 節點(diǎn),接收指令將數據包打包,簡(jiǎn)單判斷后向上發(fā)送給本地ARP,通過(guò)ARP 解析出該節點(diǎn)的網(wǎng)絡(luò )MAC地址,確定要發(fā)送到的以太網(wǎng)地址;然后向上發(fā)送給網(wǎng)關(guān)應用程序,經(jīng)分析后發(fā)送到對應的以太網(wǎng)UDP 或TCP處理函數進(jìn)行相應處理,向下發(fā)送到以太網(wǎng)端口MAC地址。這樣就完成了數據從ZigBee 向以太網(wǎng)的協(xié)議轉換過(guò)程。
4.3 數據傳輸
數據包發(fā)送流程如圖5 所示:調用初始化函數,初始化CC2430 和RTL8019,設置通訊頻率和本地地址,調用radioSend(sendBuffer,sizeof,remoteAddrDO_NOT_ACK)函數,確定要發(fā)送的數據的長(cháng)度,定位要發(fā)送數據的目的地址,判斷是是否超出最大有效載荷允許的長(cháng)度,否則數據被分成幾個(gè)包發(fā)送;然后調用sppSend(&txData)函數,該程序用來(lái)發(fā)送數據指針指向的數據包。首先設置DMA 方式,禁止RF中斷添要發(fā)送的數據包的格式(SPP_RX_STRUCT),加載的包長(cháng),目的地址,源地址、標志位以及有效載荷,打開(kāi)接受確認鏈路,然后發(fā)送數據。如果設置要求確認,則會(huì )自動(dòng)切換到接受狀態(tài);如果設定的確認幀的最大接收時(shí)間還沒(méi)有接受的則會(huì )設定重發(fā)標志;如果重發(fā)還沒(méi)有接受則回報告發(fā)送失敗。
圖 5 數據包發(fā)送流程圖。
5 硬件電路
硬件電路主要包括CC2430 和RTL8019 兩部分。
5.1 CC2430 硬件電路
圖 6 CC2430 硬件電路圖。
CC2430 部分是ZigBee 網(wǎng)絡(luò )無(wú)線(xiàn)收發(fā)部分,采用32MHZ 晶振為系統提供時(shí)序。電路使用一個(gè)非平衡天線(xiàn),連接非平衡變壓器可使天性接收性能更好。
非平衡變壓器由電容C12 和電感L2 組成,滿(mǎn)足RF輸入輸出匹配電阻50 歐姆的要求。
CC2430 提供的I/O 口分別作8 位數據總線(xiàn),地址總線(xiàn)和控制總線(xiàn),具體分配如下:P0 口作8 位數據口;P1 口的低5 位作地址口;P2.0,P2.3 分別作讀寫(xiě)的選通信號;P2.4 口作中斷申請信號線(xiàn)。
5.2 RTL8019 硬件電路
RTL8019 負責將ZigBee 數據包轉換為T(mén)CP/IP數據包。電路中采用20M 晶振提供工作時(shí)序。本地DMA 接口把網(wǎng)卡芯片與網(wǎng)線(xiàn)的連接通道,完成控制器與網(wǎng)線(xiàn)的數據交換。
工作模式:RTL8019 的第65 腳JP 決定網(wǎng)卡芯片的工作方式,接高電平為跳線(xiàn)工作方式。
I/O 口:RTL8019 的81、82、84、85 引腳決定I/O 口地址,設計中全部懸空,選擇的地址為0300H.
圖 7 RTL8019 硬件電路圖。
網(wǎng)絡(luò )接口:由RTL8019 的74、77 引腳決定,使用自動(dòng)檢測,64 引腳為低電平,使用BNC 接口。
中斷:RTL8019 的78、79、80 引腳決定芯片的中斷方式,設計中全部懸空,選擇的中斷是INT0.
6 結語(yǔ)
該網(wǎng)關(guān)功耗低、體積小、設計簡(jiǎn)單,可滿(mǎn)足小數據量的要求。在ZigBee 近距離無(wú)線(xiàn)通信和以太網(wǎng)遠程數據傳送之間搭建一座橋梁,為ZigBee 傳感器網(wǎng)絡(luò )提供了以太網(wǎng)網(wǎng)絡(luò )平臺,使ZigBee 在無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的應用更廣泛。
基于ZigBee和以太網(wǎng)的無(wú)線(xiàn)網(wǎng)關(guān)設計