赵昱皓,凌 锋
(丽水学院 工学院,浙江 丽水 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 天线设计或外接天线,但要注意天线阻抗匹配问题。可以根据AR9331 芯片手册参数推荐设计,后期根据实际进行微调。另外,在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 无线传感器网络接入提供了一个良好的解决方案。