董 萍
(三门峡职业技术学院 信息工程系,河南 三门峡472000)
无线传感器网络是由部署在监测区域内大量的廉价微型传感器节点组成,每一个微型节点通过短距离无线通信方式与其他节点进行通信,最终形成的一个多跳自组织网络[1]。无线传感器网络最初应用于军用侦察、环境探测等方面,但是目前随着嵌入式技术的进步,目前无线传感器网络可使用的范围也越来越广泛。
无线传感器网络的核心是自组织网络算法[2]。一般适用于无线传感器网络中的自组织算法较为复杂,并且考虑到保证功耗、安全等性能,算法的复杂度是非常高的。而本文由于仅将无线传感器网络部署于室内,且功能简单、电源充足,因此算法得以大幅简化。
智能家居系统[3]是基于嵌入式系统技术并随着人民生活水平提高而演化出的一种智能家居管理终端,它能够通过多种通信手段从使用者那里获取控制指令,并且能够根据目前传感器网络提供的信息做出智能判断和执行。
一个完整的智能家居系统主要由以下几个部分组成。首先是核心的智能家居主控端[4]。此端点负责进行无线传感器网络的管理和控制,并且需要接受用户的指令(遥控器、短信等)并进行执行。
其次是无线传感器网络[5]。在本文的智能家居系统中,无线传感器网络被设计为星型结构:以主控端为中心,各个传感器为分支。这样设计的原因主要有两个:
(1)所有的传感器数据均由主控端处理,传感器之间的数据交互非常少,因此星型结构效率最高;
(2)主控端接受用户指令后,星型结构下执行指令的效率最高。
最后是用户交互界面和控制器。这些外围器件的主要作用是用来合理的控制主控端功能,并可以实现系统软件的维护和升级功能。
完整的智能家居系统如图1所示。
图1 智能家居系统示意
主控端由于担负了网络信息交互、用户指令响应以及人机交互等工作,因此对硬件要求较高。本设计主要采用三星S3C6410 ARM11处理器作为主CPU。无线设计上考虑到是民用产品,因此使用了工作在2.4G频段上的nRF2401A[6]无线模块来实现无线通信。
主控端还配备了一台串口GSM设备,可以接入运营商的GSM网络。这样主控端就可以接收来自用户指定的手机号码的指令,完成网络内传感器支持的功能;或者在室内发生火情、被入侵等情况时,使用短信及时通知用户。
在人机接口的硬件上,主控端将使用标准的4:3LCD屏幕与配套的触摸屏实现与用户交互。
软件方面,本设计采用了Android2.3智能操作系统来作为主控端的基本软件系统。Android2.3智能系统可以为用户提供友好、便捷的人机界面,极大的增加用户的使用效率。图2是主控端的硬件结构。
图2 主控端硬件结构
主控端的功能主要有以下几点:
(1)使用LCD、触摸屏、GSM模块等人机接口设备与用户进行互动并接收用户指令;
(2)定时扫描各个下属传感器状态;
(3)接收各个下属传感器发出的告警信号并进行处理。
在告警管理方面,主要由一个Android内核进程来实现。这个Linux内核进程直接监视无线通信数据包并会立即对告警进行响应[7]。告警的响应主要根据驻防方式不同而不同,系统主要支持以下几种驻防方式:
(1)白昼驻防模式。发出一定分贝数的警报声,同时通知物业人员。
(2)睡眠驻防模式。依靠特殊的振动手环,提醒用户有侵入警情发生,主要考虑保护用户人身安全。
在无线传感器节点的硬件设计中,主CPU使用ST公司下的Cortex-M3核心的STM32103F系列,此系列CPU拥有较高的运算速度、极低的功耗和高速SPI接口,对于传感器的设计是十分合适的(图3)。
图3 无线传感器节点硬件结构
除了主CPU之外,无线传感器最重要的是传感器本身。在本设计中,无线传感器可以分为以下几种:
(1)红外光栅侵入检测传感器。
(2)烟雾及可燃气体传感器。
(3)门禁系统。
(4)电器遥控系统。
(5)震动报警手环。
传感器的软件,设计时为了提高效率,全部使用前后台方式进行,不使用任何操作系统。
在电源管理方面,有的固定式传感器使用市电作为主电源,电池作为备用电源。而类似电器遥控节点由于其必须具有便携属性,因此只能使用电池作为电源。电源管理模块会对电池电压进行监测管理,并及时提醒用户更换电池。
在下属传感器管理方面,主要由Android系统Java程序来实现。这些程序主要由一个系统定时器控制,定时对下属传感器进行轮询操作,并在LCD上显示出来,以便用户查询。
目前针对系统需要解决的问题有两点:
(1)由于整个网络都工作在室内,但是仍有可能覆盖到室外,因此需要设计无线传感器网络的通信方式、保密模式;
(2)用户可能会逐步扩大网络,加入新的设备,因此需要设计无线传感器网络的扩展方式。
针对以上需要解决的问题,解决的基本方法:
(1)对于网络的通信方式,硬件可以使用2.4GHz的全球公用频段;软件可以使用私有通信帧格式实现。通信加密方式,硬件可以采用多点跳频的方式,软件使用AES加密算法来实现;
(2)对于网络的扩展方式,硬件使用每个设备唯一的物理地址方式来实现,软件使用主控端受控登记的方式来控制。
下文以nRF2401A芯片+S3C6410作为主控端,nRF2401A+STM32103F作为传感器端点为例的实现进行详细说明。
3.2.1 网络加密通信方式的实现
在硬件实现上,为了解决功耗和通信的保密性,系统在设计时加入突发传输模式,在此模式下,可以短时间内传送大量数据,最高速度可以达到1Mbps的速率,在使用电池供电的环境中可以较大的延长系统工作时间。同时,硬件本身支持跳频通信,可以极大地提高数据的安全性。
在软件实现上,考虑到嵌入式平台有限的计算能力,同时本设计也是应用于民用的产品平台,因此本文使用自有帧格式和AES算法来对端点之间的通信进行加密。
首先,在数据传输过程中,采用了自有帧格式作为传输方式,如图4所示。
图4 端点数据传输帧格式
由于每个数据包的长度是不定的,因此每个数据包的第二个字节中存放了这个数据包的Payload长度。系统处理时只需根据长度信息提取数据即可。
其次,数据提取后,需要使用AES算法进行解密,解密之后的数据才能应用于系统。
最后,关于AES加密算法的嵌入式实现问题。AES加密算法在嵌入式系统中的应用已经非常成熟,并且ARM11和CortexM3处理器对AES算法的硬件支持也没有任何问题,因此应用AES算法在软硬件上是没有任何问题的。
3.2.2 无线传感器节点的管理
为了更好地对无线传感器节点进行管理,主控端采用了一种类似于SNMP网络协议栈的管理方式:为每个注册的传感器节点建立MIB库,并且使用TCA(Threshold Cross Alarm,门限越界告警)。
图5是主控端的MIB库管理方式示意。基本原理如下:
图5 主控端MIB管理方式
(1)主控端在系统初始化阶段初始化已经支持的传感器软件模型,并为他们创建对应的Struct。每个Struct有若干个属性,对应于不同的传感器上报数值,这些数值从传感器中轮询得到。
(2)每个Struct会指向一个Threshold数据结构,这个Threshold数据结构中有一系列的门限值 (由用户设置的)。每次主控端从无线传感器获得新的属性值后,就会和Threshold中对应的门限值进行比较,如果超过设定的门限值,主控端就会发送告警信息。
MIB Struct和Threshold的关系如图6所示。
图6 Sensor Struct结构
3.2.3 主从端点功能实现
在完成传感器网络通信功能设计之后,需要对主从端点进行软件设计。图7就是主控端点的软件架构。
如图7所示,主控端的软件主要由内核驱动程序和Java应用程序组成。内核驱动程序主要处理对实时性比较敏感的应用,可以及时处理底层需求;而Java应用程序主要用于对人机接口的实现。
主控端的子端点注册流程如图8所示。
图7 主控端软件架构
图8 主控端注册流程
主控端对于子端点的注册,采用单线程控制的定时广播方式。一旦子端点接收到来自主控端的广播包,就自动回复自身的设备信息。主控端收到后会进行一系列的处理流程来完成对设备的注册或者加入黑名单等动作。
通过如图8的方式,系统实现了自动扩展功能,解决了3.1节提出的问题。
如图9所示,从端点的软件架构就是经典的单片机前后台软件架构,这里就不赘述了。
图9 从端点软件架构
基于无线传感器网络的智能家居系统的测试分为三个部分。
第一,硬件可靠性测试。由于各个从节点的工作环境不同,因此主要针对各个从节点的硬件进行全面测试。主要包括ESD、高低温、阳光直晒、跌落等各项测试。测试结果如下表所示。
硬件测试结果表
第二,软件可靠性测试。测试方法主要是进行各模块功能测试。测试方法为等价值划分法、边界值测量法和场景法。测试步骤主要是使用等价值划分法来划分测试模块边界,然后使用边界值测量法来对边界进行检验,最后使用场景法模拟用户使用来测试实际功能。
测试结果显示各模块工作良好,对用户操作的响应及时,界面友好。
第三,无线网络的抗干扰测试。本系统的设计目标是家用系统,主要测试方法是在系统正常工作后,同时运行一些常见的2.4G无线设备进行同时工作,观察本系统的工作状况。主要测试设备是WIFI和蓝牙系统。
结果表明在同时使用WIFI和蓝牙的环境下,系统工作良好,并没有受到任何干扰,显示出良好的无线抗干扰性能。
以上分析与测试表明,基于无线传感器网络的智能家居系统使用方便,界面友好,扩展性与可靠性较强,对于想要提高生活质量,提升家居管理方式的应用场合,具有很高的使用价值。
[1]王漫,何宁,裴俊,等.面向无线传感器网络应用的嵌入式操作系统综述[J].计算机应用与软件,2007(6):79-84.
[2]何宁,王漫,方昀,等.面向无线传感器网络应用的传感器技术综述[J].计算机应用与软件,2007(9):87-92.
[3]王淑华,陈国定,赵国炳.一种无线传感器网络能耗模型及有效性分析[J].计算机应用与软件,2011(2):112-116.
[4]SamsungNAND FlashMemory[S].MemoryProduct&Technology Division,March,2000.
[5]黄力,周新莲.无线传感器网络基于簇的数据传输可靠性研究[J].计算机应用与软件,2010(8):70-74.
[6]蒋承延,吴思远,陈伟.基于无线传感器网络的智能家居系统[J].微计算机信息,2007(13):85-90.
[7]郑君刚,吴成东,刘大任,等.基于无线传感器网络技术智能家居报警系统设计[J].沈阳建筑大学学报(自然科学版),2008(2):111-114.