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