趙昱皓,凌 鋒
(麗水學院 工學院,浙江 麗水 323000)
網關(Gateway)是解決ZigBee 網絡接入Internet的連接關鍵裝置,是無線傳感器網絡(Wireless Sensor Network,WSN)及互聯網的專用轉接設備。它不同于普通計算機網絡的網關,有著特殊的接入要求。例如,要使用通用串行總線(Universal Serial Bus,USB)的3G、4G 等擴展卡,需融合Wi-Fi 連接等。本文擬設計基于OpenWrt的ZigBee通用網關系統,用于解決如智慧農業、工礦企業、醫院會場等場所的ZigBee 接入問題,并通過農業茶葉防凍等具體應用進行測試,以驗證所設計系統的可行性[1-3]。
系統選擇AR9331 硬件電路作為核心芯片+TI 的CC2530 芯片方案。AR9331 是一款高通Atheros 生產的達400 MHz MIPS CPU,適合嵌入式應用的Wi-Fi SoC 芯片,接口豐富,如Ethernet MAC、USB 2.0、通用串行口、I2C 等,擁有良好的擴展性。另外,它提供穩定高速的有線連接和無線連接,支持傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol,TCP/IP)、802.11 b/g/n 無線網絡協議。
圖1 為AR9331 的功能框圖。AR9331 可滿足ZigBee 網關的設計要求,并支持2.4 GHz 無線Wi-Fi接入。另外,OpenWrt 對AR9331 提供深度支持,有利于后期裁剪及開發。系統的ZigBee 協調器采用TI公司CC2530 芯片方案。CC2530 是用于2.4 GHz 的IEEE 802.15.4 應用片上系統(System on Chip,SoC),能夠以極低的成本建立強大的網絡節點,與相應的如Z-stack 協議棧一起,實現可靠的無線傳感網絡的自組網拓撲連接。CC2530 與AR9331 連接可以使用標準的通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART),接入比較方便。

圖1 AR9331 的功能框圖
根據芯片數據手冊,它包含Flash 及同步動態隨機存儲器/雙倍速率(Synchronous Dynamic Random Access Memory/Double Data Rate,SDRAM/DDR)電路,用來提供OpenWrt 系統運行的相關程序空間和數據空間。5 個10/100M 以太網RJ-45 接口,項目中保留2個。UART 接口提供相應的串行口通信接口。USB 2.0接口可以根據系統要求,在OpenWrt 系統加入驅動支持,如USB 4G 上網卡等。芯片的Audio 及網絡電話/脈沖編碼調制(Voiceover Internet Protocol/Pulse Code Modulation,VoIP/PCM)的接口可相應引出,便于后續擴展應用。
根據ZigBee 網關的應用需求,圍繞AR9331 選用的主要芯片有存儲器、DDR 及Flash 等。U-boot 引導加載程序和OpenWrt 固件存儲在Flash 中。在儲存器設計印制電路板(Printed Circuit Board,PCB),注意等長線(使用蛇型走線保障等長)。其他電路如電源、各接口按要求設計,具體可參閱手冊。
在設計AR9331 的Wi-Fi 天線時,可用PCB 天線設計或外接天線,但要注意天線阻抗匹配問題??梢愿鶕嗀R9331 芯片手冊參數推薦設計,后期根據實際進行微調。另外,在Wi-Fi 天線的布置上,一定要與ZigBee 天線保持一定的距離,因為它們工作的頻率都在2.4 GHz 頻段,要避免相互干擾。
CC2530 芯片使用單周期的8051 兼容中央處理器(Central Processing Unit,CPU)內核,集成了多個外設,如UART、USB(CC2531 特有)等,并提供了IEEE 802.15.4 兼容無線收發器,外圍零件很少,可以用低成本的外部器件搭建應用電路。它僅包含必要器件,使用推薦參數基本可以設計成功。加上TI 公司工具軟件SmartRF Studio 對RF-IC 提供了很大幫助,特別是可幫助無線電系統的設計人員在設計過程的早期階段輕松評估RF-IC 無線電的性能和功能,對產生配置數據和找到最佳外部組件值等大有助益[4-6]。
農業ZigBee 網關在野外通過4G 等連接工作,而有很多工作場所取電不易但太陽能豐富。本項目采用TI 的BQ25798 芯片,設計太陽能電池及后備電池電路。BQ25798 是一款完全集成的開關模式降壓/升壓充電器,適用于1 ~4 節鋰離子電池和鋰聚合物電池。集成包含4 個開關MOSFET 和降壓/升壓轉換器的所有環路補償等必要電路。根據太陽能功率輸入進行調整,可保持電源供應。當太陽能充足時存儲電能,反之釋放電能輔助供電。支持太陽能電池板的最大功率點跟蹤(Maximum Power Point Tracking,MPPT)和快速備份模式,支持CPU 通信并接受主機監控,實現了智能控制。
AR9331 上使用OpenWrt 進行編譯和修改,使用的工具軟件有Ubuntu 軟件、SecureCRT、Tftp Sever、SPI flash 燒錄程序(首次使用編程器燒寫目標代碼或Uboot)。源碼文件有OpenWrt 源碼、OpenWrt 的Uboot,還要安裝一些依賴庫(可在線進行)。另外,后期可以根據需要加入必要的Openwrt 插件,支持新功能的開發。
TI 公司的Z-Stack 協議棧包含了ZigBee 協議所規定的基本功能,對自家的CC2530 非常友好。這些功能是以函數的形式實現的。為了便于管理這些函數集,將其設計成操作系統抽象層(Operating System Abstraction Layer,OSAL)。它把應用程序對象看作一個任務,并實現任務的切換、同步與互斥。OSAL 是一種支持多任務運行的系統資源分配機制,與標準的操作系統有一定區別。OSAL 實現了類似操作系統的某些功能,如任務切換、提供內存管理功能等。其中,重要函數有添加新任務初始化函數void osalInitTasks(void)、添加任務回調函數const pTaskEventHandlerFn tasksArr[]={…}等。
通過OpenWrt在“make menuconfig”中編譯和配置。目標系統(Atheros AR7xxx/AR9xxx)和路由器的選擇(TP-LINK TL-WR703N)因硬件與TP-LINK非常相似,可以通過簡單的修改在本系統上使用。如果一切正常,可以通過PuTTY 軟件在COM 口打印出OpenWrt 啟動等信息。如果一次啟動正常,那么OpenWrt 的硬件環境正常。PuTTY 軟件Serial Port Connection OpenWrt 信息,如圖2 所示。它可以使用網絡工具安全殼(Secure Shell,SSH),比串口速度快很多,可以為后面的開發及配置提供方便。

圖2 PuTTY 軟件Serial Port Connection OpenWrt 信息
ZigBee 電路測試使用測試工具軟件Z-Sensor Monitor。此軟件由TI 公司開發,用于TI 的ZigBee 設備與計算機通信,配合SensorDemo 組成ZigBee 無線傳感器監控系統,可以快速實現ZigBee 電路測試。
經測試,設計的基于OpenWrt 的農業ZigBee 控制器通用網關系統可滿足適用于農林場所的ZigBee網關需求。它以AR9331 SoC 芯片為核心硬件,加上OpenWrt 網關操作系統及ZigBee 協調器軟硬件實現設計。OpenWrt 可裁剪保證ZigBee 控制器通用網關系統的通用性和靈活性,并支持USB 4G 或5G 等無線上網卡連接,可以使用太陽能供電,為工農業等場所ZigBee 無線傳感器網絡接入提供了一個良好的解決方案。