ZigBee和Android的智能移动监控系统设计

2012-03-20 02:32瞿稻杨继峰陈伟
单片机与嵌入式系统应用 2012年6期
关键词:信息处理线程应用程序

瞿稻,杨继峰,陈伟

(1.武汉理工大学信息学院,武汉430070;2.上海明波通信技术有限公司)

引 言

监控系统是与传感技术、信息传递处理技术和计算机技术等紧密相关的。监控包括监视和控制,意味着系统工作在全双工模式。按通信方式可将监控系统分为有线监控系统和无线监控系统[1]。以往由于信息在无线传递时容易受到干扰等一系列的原因导致其应用远落后于有线监控系统,近年来随着通信技术的发展,无线信息传递越来越稳定可靠,其抗干扰能力、纠错能力和保密能力越来越强。而有线监控系统存在着隐蔽性差、抗破坏能力弱等问题,在一些场合难以铺设或铺设成本高、周期长、费时费力。可以预见,无线监控系统的应用和研究将越来越广泛。

基于IEEE 802.15.4标准[2]的ZigBee协议具有自组织、稳定性好、抗干扰性强、功耗低等一系列优点,在无线个域网、物联网和低功耗传感网络等领域得到了广泛的应用[3]。Android是Google公司推出的一个基于Linux内核的智能移动平台的解决方案[4],由于Android具有人机界面友好、可扩充性强、安全易用等特点,在推出后短短几年就已经占据了移动平台的领军地位。

当前,将ZigBee协议和Android智能平台技术结合起来进行研究的课题十分稀少,相关的研究成果更是少之又少。因此,本课题的研究具有良好的前瞻性和启发性。

1 系统结构

智能移动监控系统由两个主要的部分组成:信息采集与传输子系统和信息处理与控制子系统。信息采集与传输子系统采用ZigBee协议作为基础,其主要功能是采集环境信息并将其发送至信息处理与控制子系统。同时,信息采集与传输子系统需要及时的响应来自信息处理与控制子系统的各种命令。信息处理与控制子系统是基于Android智能平台的,需要实时地显示自信息采集与传输子系统的环境信息,并将用户的控制操作转换成用户命令下达至信息采集与传输子系统。智能移动监控系统的整体结构如图1所示。

1.1 硬件结构

图1 智能移动监控系统整体结构

信息采集与传输子系统采用CC2530作为硬件结构的核心。CC2530内部集成了业界领先的射频收发器、丰富的片内外设和强大的DMA控制器[5]。集成的射频收发器的性能指标远远优于IEEE 802.15.4标准所规定的要求。丰富的片内外设,如AES协处理器、CSP协处理器和SPI等通信接口,为各种基于ZigBee、6LoWPAN和RF4CE等协议的应用提供了有力的支持。强大的DMA控制器为CC2530在高强度、高吞吐量以及实时性要求严格等领域的卓越表现提供了可靠的保证。LCD采用FSTN显示模式的LM6059BCW液晶模块。信息采集与传输子系统硬件结构如图2所示。

图2 信息采集与传输子系统硬件结构

信息处理与控制子系统采用基于ARM1176JZF-S内核的S3C6410微处理器[6]作为核心控制单元。ARM11系列是ARMv6架构的第一代实现。采用两片K4X51163PC Mobile DDR SDRAM芯片构成128MB的内存系统。采用1GB的K9G8G08U0ANAND Flash芯片作为非易失性存储设备。采用7寸TFT触摸屏作为主要的人机交互设备。采用100M以太网芯片DM9000AE构建以太网接口,用于以太网访问。信息处理与控制子系统的硬件结构如图3所示。

1.2 软件结构

信息采集与传输子系统软件架构如图4所示。信息采集与传输子系统的软件系统设计是基于OSAL操作系统的。用户任务和ZDO等ZigBee系统任务一起在OSAL操作系统的调度下运行,其调度机制基于优先级,用户任务的优先级是最低的。

图3 信息处理与控制子系统硬件结构

图4 信息采集与传输子系统软件架构

信息处理与控制子系统软件部分的主体是Android应用程序。该Android应用程序实时地显示环境信息并及时地响应用户的触摸操作。Android应用程序的运行需要底层Linux硬件驱动[7]等的支持。本子系统的软件架构如图5所示。

图5 信息处理与控制子系统软件架构

2 系统关键技术和实现

2.1 信息采集与传输子系统

信息采集与传输子系统中的关键技术有很多,这里主要介绍ZigBee协议[8]。ZigBee协议从上到下由应用层APS、网络层NWK、媒体访问控制层MAC和物理层PHY组成[9]。应用层的主要功能与信息采集与传输密切相关。网络层的功能包括配置设备、路由发现和维护,确保数据能安全、有效地传输到目的设备。媒体访问控制层控制着设备接入无线信道的时间和方法,确保数据链路的可靠性。物理层主要实现数据的发送和接收,完成信道的评估和射频信号能量的测量等。本课题物理层工作在2.4 GHz的ISM频段,调制方式为O-QPSK。ZigBee协议数据传递流程如图6所示。应用层数据从一个ZigBee设备发送到另一个ZigBee设备,它是一个层层封装,然后层层解析的过程。

图6 ZigBee协议数据传递流程

从应用层来看,信息采集与传输子系统中存在信息采集节点和网关节点两种设备。信息采集系统与传输子系统的Profile ID为INFO_GATHER_PRF。信息采集结点和网关节点的端点号均被配置成INFO_GATHER_EPT。信息采集与传输子系统的两种数据类型如图7所示。信息采集节点和网关节点之间存在两种数据的交互:环境信息数据和用户命令数据。信息采集结点向网关节点发送环境信息数据时采用的簇ID为ENV_INFO_CLU,网关节点向信息采集节点传达用户命令时使用的簇ID为USR_CMD_CLU。

图7 信息采集与传输子系统的两种数据类型

Profile ID号、端点号和簇ID都是ZigBee协议定义的重要的配置信息,请参见ZigBee协议。

环境信息数据和用户命令数据最终都将填充到类型为afIncomingMSGPacket_t的结构体中,其定义如下:typedef struct{

osal_event_hdr_t hdr;

uint16groupId;

uint16clusterId;

afAddrType_t srcAddr;

uint16macDestAddr;

uint8endPoint;

uint8wasBroadcast;

uint8LinkQuality;

uint8correlation;

int8rssi;

uint8SecurityUse;

uint32timestamp;

afMSGCommandFormat_t cmd;

}afIncomingMSGPacket_t;

该结构中clusterId填充的就是簇ID,endPoint填充的就是端点号,Profile ID隐藏在变量srcAddr中。变量cmd填充的就是与应用相关的数据,如环境信息编码和用户命令编码。

2.2 信息处理与控制子系统

信息处理与控制子系统是在Android智能移动平台上研发的。Android智能平台体系从上到下由应用程序、应用程序框架、外部库、Android运行时库、硬件抽象层HAL(Hardware Abstraction Layer)和Linux内核组成[10]。

Android智能移动平台的研发需要借助Eclipse、NDK和JNI等工具和方法。信息处理与控制子系统的MVC模式如图8所示。本文是按MVC模式研发信息处理与控制子系统的。

图8 信息处理与控制子系统的MVC模式

Android应用程序的设计必须要遵循单线程模型。当Android应用程序启动时,Android系统会同时启动一个对应的主线程即UI线程,用于处理与用户界面UI(User Interface)相关的事件。UI线程不是线程安全的。

此设计需要将环境信息实时地显示在Android应用程序上,同时需要及时地将用户操作转换成用户命令发送至信息采集与传输子系统。因此,为了避免阻塞UI线程,设计了一个守候线程并采用了基于zbHandler的消息传递机制。UI线程和守候线程的关系如图9所示。

守候线程是借助于本地方法获取Linux底层驱动环境信息的。信息处理与控制子系统中的本地方法被封装在一个名为ZigBeeJni的类中,其定义如下:

public class ZigBeeJni{

static{

System.loadLibrary("zbjni");

public static native int init();public static native int close();

public static native int readNodeInfo(int node_id);

public static native int sendCmd(int node_id,int cmd);

图9 UI线程和守候线程

结 语

本文研究了基于ZigBee网络和Android智能移动平台的监控系统的设计。经过严格的测试,本系统能够完成对环境信息的实时监测,并能及时地响应用户发出的各种控制命令,系统的设计达到了预期的目标。

[1]谢恒义,郭勇.基于现代通信技术的家庭无线监控系统设计[J].信息通信,2008(3).

[2]LAN/MAN Standards Committee of the IEEE Computer Society.IEEE Std 802.15.4-2006Wireless Medium Access Control(MAC)and Physical Layer(PHY)specifications for Low Rate Wireless Personal Area Networks(LR-WPANs)[S].

[3]刘建兵,蒋朝根.基于ZigBee技术的无线嵌入式温度采样仪设计[J].西南科技大学学报,2007(1).

[4]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8).

[5]TI.CC253xSystem-on-Chip Solution for 2.4GHz IEEE 802.15.4and ZigBee Applications User's Guide[EB/OL].[2012-02-06].http://www.ti.com/.

[6]Samsung Electronics.S3C6410XRISC Microprocessor USER'S MANUAL,Rev 1.20[EB/OL].[2012-02-06].http://www.samsungsemi.com/.

[7]Jonathan Corbet,Alessandro Rubini,Greg Kroah Hartman.Linux设备驱动程序[M].魏永明,耿岳,钟书毅,译.3版.北京:中国电力出版社,2006.

[8]ZigBee Alliance.ZigBee Specification Datasheet,2008.

[9]Shahin Farahani.ZigBee Wireless Networks and Transceivers[M].USA:Elsevier,2008.

[10]姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11).

猜你喜欢
信息处理线程应用程序
东营市智能信息处理实验室
基于Revit和Dynamo的施工BIM信息处理
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
删除Win10中自带的应用程序
地震烈度信息处理平台研究
谷歌禁止加密货币应用程序
CTCS-3级列控系统RBC与ATP结合部异常信息处理
浅谈linux多线程协作
三星电子将开设应用程序下载商店