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