趙昱皓,凌 鋒
(麗水學(xué)院 工學(xué)院,浙江 麗水 323000)
網(wǎng)關(guān)(Gateway)是解決ZigBee 網(wǎng)絡(luò)接入Internet的連接關(guān)鍵裝置,是無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)及互聯(lián)網(wǎng)的專用轉(zhuǎn)接設(shè)備。它不同于普通計算機(jī)網(wǎng)絡(luò)的網(wǎng)關(guān),有著特殊的接入要求。例如,要使用通用串行總線(Universal Serial Bus,USB)的3G、4G 等擴(kuò)展卡,需融合Wi-Fi 連接等。本文擬設(shè)計基于OpenWrt的ZigBee通用網(wǎng)關(guān)系統(tǒng),用于解決如智慧農(nóng)業(yè)、工礦企業(yè)、醫(yī)院會場等場所的ZigBee 接入問題,并通過農(nóng)業(yè)茶葉防凍等具體應(yīng)用進(jìn)行測試,以驗證所設(shè)計系統(tǒng)的可行性[1-3]。
系統(tǒng)選擇AR9331 硬件電路作為核心芯片+TI 的CC2530 芯片方案。AR9331 是一款高通Atheros 生產(chǎn)的達(dá)400 MHz MIPS CPU,適合嵌入式應(yīng)用的Wi-Fi SoC 芯片,接口豐富,如Ethernet MAC、USB 2.0、通用串行口、I2C 等,擁有良好的擴(kuò)展性。另外,它提供穩(wěn)定高速的有線連接和無線連接,支持傳輸控制協(xié)議/網(wǎng)際協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)、802.11 b/g/n 無線網(wǎng)絡(luò)協(xié)議。
圖1 為AR9331 的功能框圖。AR9331 可滿足ZigBee 網(wǎng)關(guān)的設(shè)計要求,并支持2.4 GHz 無線Wi-Fi接入。另外,OpenWrt 對AR9331 提供深度支持,有利于后期裁剪及開發(fā)。系統(tǒng)的ZigBee 協(xié)調(diào)器采用TI公司CC2530 芯片方案。CC2530 是用于2.4 GHz 的IEEE 802.15.4 應(yīng)用片上系統(tǒng)(System on Chip,SoC),能夠以極低的成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn),與相應(yīng)的如Z-stack 協(xié)議棧一起,實現(xiàn)可靠的無線傳感網(wǎng)絡(luò)的自組網(wǎng)拓?fù)溥B接。CC2530 與AR9331 連接可以使用標(biāo)準(zhǔn)的通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART),接入比較方便。
圖1 AR9331 的功能框圖
根據(jù)芯片數(shù)據(jù)手冊,它包含F(xiàn)lash 及同步動態(tài)隨機(jī)存儲器/雙倍速率(Synchronous Dynamic Random Access Memory/Double Data Rate,SDRAM/DDR)電路,用來提供OpenWrt 系統(tǒng)運(yùn)行的相關(guān)程序空間和數(shù)據(jù)空間。5 個10/100M 以太網(wǎng)RJ-45 接口,項目中保留2個。UART 接口提供相應(yīng)的串行口通信接口。USB 2.0接口可以根據(jù)系統(tǒng)要求,在OpenWrt 系統(tǒng)加入驅(qū)動支持,如USB 4G 上網(wǎng)卡等。芯片的Audio 及網(wǎng)絡(luò)電話/脈沖編碼調(diào)制(Voiceover Internet Protocol/Pulse Code Modulation,VoIP/PCM)的接口可相應(yīng)引出,便于后續(xù)擴(kuò)展應(yīng)用。
根據(jù)ZigBee 網(wǎng)關(guān)的應(yīng)用需求,圍繞AR9331 選用的主要芯片有存儲器、DDR 及Flash 等。U-boot 引導(dǎo)加載程序和OpenWrt 固件存儲在Flash 中。在儲存器設(shè)計印制電路板(Printed Circuit Board,PCB),注意等長線(使用蛇型走線保障等長)。其他電路如電源、各接口按要求設(shè)計,具體可參閱手冊。
在設(shè)計AR9331 的Wi-Fi 天線時,可用PCB 天線設(shè)計或外接天線,但要注意天線阻抗匹配問題。可以根據(jù)AR9331 芯片手冊參數(shù)推薦設(shè)計,后期根據(jù)實際進(jìn)行微調(diào)。另外,在Wi-Fi 天線的布置上,一定要與ZigBee 天線保持一定的距離,因為它們工作的頻率都在2.4 GHz 頻段,要避免相互干擾。
CC2530 芯片使用單周期的8051 兼容中央處理器(Central Processing Unit,CPU)內(nèi)核,集成了多個外設(shè),如UART、USB(CC2531 特有)等,并提供了IEEE 802.15.4 兼容無線收發(fā)器,外圍零件很少,可以用低成本的外部器件搭建應(yīng)用電路。它僅包含必要器件,使用推薦參數(shù)基本可以設(shè)計成功。加上TI 公司工具軟件SmartRF Studio 對RF-IC 提供了很大幫助,特別是可幫助無線電系統(tǒng)的設(shè)計人員在設(shè)計過程的早期階段輕松評估RF-IC 無線電的性能和功能,對產(chǎn)生配置數(shù)據(jù)和找到最佳外部組件值等大有助益[4-6]。
農(nóng)業(yè)ZigBee 網(wǎng)關(guān)在野外通過4G 等連接工作,而有很多工作場所取電不易但太陽能豐富。本項目采用TI 的BQ25798 芯片,設(shè)計太陽能電池及后備電池電路。BQ25798 是一款完全集成的開關(guān)模式降壓/升壓充電器,適用于1 ~4 節(jié)鋰離子電池和鋰聚合物電池。集成包含4 個開關(guān)MOSFET 和降壓/升壓轉(zhuǎn)換器的所有環(huán)路補(bǔ)償?shù)缺匾娐?。根?jù)太陽能功率輸入進(jìn)行調(diào)整,可保持電源供應(yīng)。當(dāng)太陽能充足時存儲電能,反之釋放電能輔助供電。支持太陽能電池板的最大功率點(diǎn)跟蹤(Maximum Power Point Tracking,MPPT)和快速備份模式,支持CPU 通信并接受主機(jī)監(jiān)控,實現(xiàn)了智能控制。
AR9331 上使用OpenWrt 進(jìn)行編譯和修改,使用的工具軟件有Ubuntu 軟件、SecureCRT、Tftp Sever、SPI flash 燒錄程序(首次使用編程器燒寫目標(biāo)代碼或Uboot)。源碼文件有OpenWrt 源碼、OpenWrt 的Uboot,還要安裝一些依賴庫(可在線進(jìn)行)。另外,后期可以根據(jù)需要加入必要的Openwrt 插件,支持新功能的開發(fā)。
TI 公司的Z-Stack 協(xié)議棧包含了ZigBee 協(xié)議所規(guī)定的基本功能,對自家的CC2530 非常友好。這些功能是以函數(shù)的形式實現(xiàn)的。為了便于管理這些函數(shù)集,將其設(shè)計成操作系統(tǒng)抽象層(Operating System Abstraction Layer,OSAL)。它把應(yīng)用程序?qū)ο罂醋饕粋€任務(wù),并實現(xiàn)任務(wù)的切換、同步與互斥。OSAL 是一種支持多任務(wù)運(yùn)行的系統(tǒng)資源分配機(jī)制,與標(biāo)準(zhǔn)的操作系統(tǒng)有一定區(qū)別。OSAL 實現(xiàn)了類似操作系統(tǒng)的某些功能,如任務(wù)切換、提供內(nèi)存管理功能等。其中,重要函數(shù)有添加新任務(wù)初始化函數(shù)void osalInitTasks(void)、添加任務(wù)回調(diào)函數(shù)const pTaskEventHandlerFn tasksArr[]={…}等。
通過OpenWrt在“make menuconfig”中編譯和配置。目標(biāo)系統(tǒng)(Atheros AR7xxx/AR9xxx)和路由器的選擇(TP-LINK TL-WR703N)因硬件與TP-LINK非常相似,可以通過簡單的修改在本系統(tǒng)上使用。如果一切正常,可以通過PuTTY 軟件在COM 口打印出OpenWrt 啟動等信息。如果一次啟動正常,那么OpenWrt 的硬件環(huán)境正常。PuTTY 軟件Serial Port Connection OpenWrt 信息,如圖2 所示。它可以使用網(wǎng)絡(luò)工具安全殼(Secure Shell,SSH),比串口速度快很多,可以為后面的開發(fā)及配置提供方便。
圖2 PuTTY 軟件Serial Port Connection OpenWrt 信息
ZigBee 電路測試使用測試工具軟件Z-Sensor Monitor。此軟件由TI 公司開發(fā),用于TI 的ZigBee 設(shè)備與計算機(jī)通信,配合SensorDemo 組成ZigBee 無線傳感器監(jiān)控系統(tǒng),可以快速實現(xiàn)ZigBee 電路測試。
經(jīng)測試,設(shè)計的基于OpenWrt 的農(nóng)業(yè)ZigBee 控制器通用網(wǎng)關(guān)系統(tǒng)可滿足適用于農(nóng)林場所的ZigBee網(wǎng)關(guān)需求。它以AR9331 SoC 芯片為核心硬件,加上OpenWrt 網(wǎng)關(guān)操作系統(tǒng)及ZigBee 協(xié)調(diào)器軟硬件實現(xiàn)設(shè)計。OpenWrt 可裁剪保證ZigBee 控制器通用網(wǎng)關(guān)系統(tǒng)的通用性和靈活性,并支持USB 4G 或5G 等無線上網(wǎng)卡連接,可以使用太陽能供電,為工農(nóng)業(yè)等場所ZigBee 無線傳感器網(wǎng)絡(luò)接入提供了一個良好的解決方案。