《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于WSN的小区自行车防盗系统的设计
基于WSN的小区自行车防盗系统的设计
来源:微型机与应用2011年第2期
韩 磊
(南京工程学院 计算机工程学院,江苏 南京211167)
摘要: 针对小区管理的需求,将无线传感器网络引入到小区自行车防盗系统中。以ATmega128L单片机为核心扩展了断线检测模块和以CC1000芯片为基础的无线通信模块,设计了无线传感器网络的电子锁节点和Sink节点。规划了无线传感器网络拓扑,设计了具有较高稳定性的简单无线通信协议,基于监控主机以多线程的方式实现了防盗监控软件。实验验证了方案的可行性,仿真验证了多节点情况下,通信协议的稳定性。
Abstract:
Key words :

摘  要: 针对小区管理的需求,将无线传感器网络引入到小区自行车防盗系统中。以ATmega128L单片机为核心扩展了断线检测模块和以CC1000芯片为基础的无线通信模块,设计了无线传感器网络的电子锁节点和Sink节点。规划了无线传感器网络拓扑,设计了具有较高稳定性的简单无线通信协议,基于监控主机以多线程的方式实现了防盗监控软件。实验验证了方案的可行性,仿真验证了多节点情况下,通信协议的稳定性。
关键词: 无线传感器网络;监控软件;通信协议

近年来,随着无线通信、微电子技术、传感器技术以及嵌入式计算等技术的不断进步,推动了低成本、低功耗的无线传感器网络WSN(Wireless Sensor Network)的发展,促使WSN成为当今活跃的研究领域[1]。WSN由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[2]。无线传感器网络在军事和民用领域都有广阔的应用前景。本文把WSN引入到小区的自行车防盗系统中,给出了一套基于WSN的小区自行车防盗系统的设计方案。为小区自行车的管理,尤其是防盗提供保障。
1 系统方案
    居民小区通常规划在两幢居民楼中间或集中的一片区域停放自行车等两轮车辆。如图1所示,自行车通常被放置在指定车位中,为了加强对自行车的管理,本文引入WSN技术。防盗系统由信息采集和报警提示两部分组成。
    (1)信息采集
    首先,为每一辆自行车配备一块具有唯一ID的电子锁作为小区内自行车的标识。该电子锁具有WSN节点功能,可以检测是否断线、电池电量,同时具有无线通信能力,能够将检测到的信息以多跳方式向观测点发送。为便于收集信息,同时为观测者提供定位信息参考,在指定位置(如车棚、居民楼、路灯杆)部署汇节点,如图1的Sink装置所示。与传统WSN不同的是,汇节点的位置不是随机的,其部署要考虑到小区自行车停放区域的大小、小区的布局等因素。汇节点接收传感节点的信息,并转发给观测者。
    (2)报警提示
    观测站设置在值班室内,如图1所示。由运行于PC机上的监控软件管理WSN收集到的信息,监控软件能够显示自行车在小区中的大致位置,显示电子锁的电池电量,提示更换电子锁电池,提示电子锁暴力开启,提示自行车越界。

    值班人员在得到监控系统的提示后,可以快速采取相应行动,避免自行车失窃。
2 系统硬件设计
    小区自行车防盗系统硬件设计的核心是WSN节点设计。按照在系统中承担的任务划分,可将WSN节点划分成一般传感节点和Sink节点。但这两类节点只是在软件功能上存在差异,而硬件设计并无本质不同。
    本文将电子锁和Sink节点划分成六大硬件模块,如图2所示,以微控制器为核心,扩展了无线通信模块、电源模块、断线检测模块、LED指示模块、电压采集模块、按键模块。

2.1 微控制器
    本文选用ATmega128L作为主处理器。ATmega128L是基于AVR RISC结构的8 bit低功耗CMOS微处理器[3],数据吞吐率高达1 MIPS/MHz,可缓解系统在功耗和处理器之间的矛盾。芯片自带128 KB的可编程Flash,在本应用中无需外扩存储器。另外,ATmega128L有丰富的接口资源(如SPI、USART、TWI、ADC等),为本应用提供了重要支持。
2.2 无线通信模块
    无线通信模块采用CC1000,它是根据Chipcon公司的SmartRF技术,在0.35 μm CMOS工艺下制造的一种理想的超高频单片收发通信芯片[4]。其工作频带在315 MHz、868 MHz及915 MHz,但CC1000很容易通过编程使其工作在300 MHz~1 000 MHz范围内。它具有低电压(2.3 V~3.6 V)、极低的功耗、可编程输出功率(-20 dBm~10 dBm)、高灵敏度(一般-109 dBm)、小尺寸(TSSOP-28封装)、集成了位同步器等特点。其FSK数据率可达72.8 kb/s,具有250 Hz步长可编程频率能力,适用于跳频协议;主要工作参数能通过串行总线接口编程改变,使用非常灵活。
    ATmega128L通过PCLK、PDATA、PALE三线数字串行接口来操作CC1000芯片,控制它的工作状态以及参数设置。DIO是CC1000与ATmega128L数据交换双向管脚,数据交换时钟始终由CC1000的DCLK提供,即CC1000总是处于主设备状态[5]。
2.3 断线报警模块
    断线报警模块是电子锁的一个构成部分,其基本原理如图3所示,在警戒状态下,BG的基极偏置电压经警戒线S对地短路,BG不工作。如遇盗情,S被断开,BG立即得电工作,SCR导通,发光二极管点亮。微控制ATmega128L通过电压检测模块检测b、e两点的电压,判定电子锁状态。

2.4 其他模块
    电源模块为ATmega128L、CC1000、断线报警模块供电。电压检测模块有两项功能:一是检测电源电压,以判定是否更换电池;二是检测断线报警模块b、e两点电压,以判定电子锁是否被暴力开启。LED指示模块用于指示WSN节点的运行状态,服务于调试。按键模块用于电子锁的密码设置、状态设置。
    为了达到节能的目标,硬件设计除了考虑处理器的几种低功耗处理模式外,还设计了一个模拟开关,在电子锁处于非保护模式且开启时,该开关才能显露出来,供用户关闭电源,降低能耗。
3 系统软件设计
    小区自行车防盗系统软件主要有两大部分:一是运行于WSN节点上的软件,二是运行于PC机上的监控软件。WSN节点软件即信息感知和通信协议,下面从网络拓扑、通信协议、监控软件三个方面论述。
3.1 网络拓扑
    因为小区停放自行车的区域相对规整,自行车的摆放也会相对整齐,所以本文使用图4所示的簇形树状拓扑结构。将车棚区域划分成几个区,每个区形成一个簇,以Sink节点为簇首,电子锁节点和簇首节点形成星形网络,簇首采集到信息通过Sink节点依次转发到观测站的PC机,供监控软件分析处理。

    电子锁和Sink节点的ID用16 bit二进制数表示,这是节点的唯一标识。电子锁和Sink节点的网络地址也用16 bit二进制数表示,可以分为簇首序号和节点序号两部分,各占8 bit,该网络地址是在组网阶段形成的。将网络地址分成簇首序号和节点序号的目的是过滤报文。节点在接收到一条报文后,将簇首序号和节点序号分别与自身网络地址匹配,如果不同可以直接删除报文,降低报文转发处理造成的能耗。
3.2 通信协议设计
    小区自行车防盗系统中Sink节点的部署是固定的,而自行车何时摆放在车棚,摆放在哪个车棚,摆放在车棚的哪个位置是不确定的,即电子锁节点的进入是随机的。因此,通信协议[6]的运行分为两个阶段:主链网组网阶段和信息感知阶段。
    (1)主链网组网阶段协议
    Sink节点部署在既定位置之后,如图4所示,网络包含一个与监控主机相连的网关节点、若干个Sink节点和一些电子锁传感器节点。网关节点是路由的发起者和数据的收集者。上电初始化后,网关节点发送组网报文,如图5所示,发布自己的网络地址和同步时间列表。网关邻居节点收到组网报文后,根据同步时间列表,发送确认报文,确认报文中包含自己的ID。网关节点收到确认报文后,向邻居节点发送配置报文,配置报文包含网关节点为邻居节点分配的网络地址。这样网关节点就和邻居节点建立了父子层次关系。得到了网络地址的子节点发布组网报文,如此重复,建立了主链网络拓扑。

    (2)信息感知阶段协议
    主链网络拓扑建立后,电子锁节点会随机进入信息感知区域。网络进入信息感知阶段,该阶段电子锁节点与Sink节点的交互过程如图6所示。Sink节点按照自己的时序列表,定时发送组网报文,进入Sink节点检测区域的电子锁在设置为保护状态后,未获得网络地址之前,会持续监听组网报文。电子锁节点收到Sink节点的组网报文后,依据报文中指示的同步时间列表,响应电子锁加入报文,报文中包含电子锁的ID号。Sink节点收到电子锁加入报文后,向电子锁节点发送配置报文,为电子锁分配网络地址。电子锁拥有网络地址后,会定时将采集到的信息发送给Sink节点,并逐层转发到观测站监控计算机。如果用户需要使用自行车正常外出,输入正确的密码正常开启电子锁后,电子锁向Sink节点发送正常离开报文,然后进入休眠状态。

3.3 监控软件设计
    电子锁向Sink节点发送的数据报文包含的信息主要有断线报警状态、正常外出状态、电池电压值和网络地址,其中网络地址中包含电子锁的簇首序号。运行于PC机上的监控软件收集、分析处理这些信息,达到监控小区自行车的目的。监控软件基于VC和SQL Server 平台开发,实现越界报警、断线报警、电子锁电池更换提示等功能。
    监控程序在系统初始化后,启动Socket数据接收和数据处理两个线程,分别完成数据采集、数据处理功能。两个线程以数据库为数据交换的媒介,以信号量同步数据库访问。
    Socket数据接收线程的流程如图7所示,线程初始化后,首先启动Socket监听,然后向网关发送组网命令,以建立主链网络拓扑。该线程监听Socket端口,接收来自网关的数据报文,从数据报文中解析WSN感知到的数据信息,写入数据库表中。在访问数据库之前需要和数据处理线程以信号量保持同步。如果线程检测到主进程发送的终止线程信号,线程将释放占用的资源,结束自己。

    数据处理线程的执行流程如图8所示,数据处理线程以数据库为数据源,访问数据库前通过征用信号量与Socket线程同步,得到数据库的访问权后,数据处理线程依次做三项查询,其中,断线状态优先级最高,越界次之,更换电池提示最低。根据查询结果做报警或提示处理,周而复始,直到检测到进程设置的线程结束标志,才结束线程自身。
    该系统是一个基于无线传感器网络的小区自行车管理系统。系统设计结合现阶段小区自行车管理现状及WSN技术的发展现状,将ATmega128L微控制器和CC1000无线芯片技术结合到一起,除电子锁的机械结构外,完成了电子锁节点及Sink节点的实验室模型设计。实验表明,根据节点检测到的信息,监控程序能够正确分析并显示电子锁节点的进入、越界、断线、正常离开等状态,越界或断线时,监控软件发出警报,提醒安保人员注意,达到了模型系统的效果。为了验证通信协议在多节点时的稳定性,基于NS2平台[7]做了仿真实验,在节点数达到1 000时,协议仍能运行良好。
    本文选用的硬件解决方案具有低成本、低能耗的特点,设计的通信协议虽然简单,但是稳定性良好,具有较好的实用价值。
参考文献
[1] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[2] YICK J,MUKHERJEE B,GHOSAL D.Wireless sensor net-work survey[J].Computer Networks,2008,52(12):2292-2330.
[3] 陈东云,杜敬仓,任柯燕.ATmega 128单片机原理与开发指导[M].北京:机械工业出版社,2006.
[4] 李倩.基于AT89LV52和CC1000的无线测温系统的设计[J].中国科技信息,2010(10):145-146,136.
[5] 袁朝辉.基于CC1000的小型无线传感器网络的设计[J].计算机测量与控制,2008,16(11):1761-1765.
[6] KASTNER W,NEUGSCHWANDTNER G,SOUCEK S,et al. Communication systems for building automation and control[J].Proceedings of the IEEE,2005,93(6):1178-1203.
[7] 徐雷鸣,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,2003:32-58.

此内容为AET网站原创,未经授权禁止转载。