陈 邦,戴声奎,吴煌鹏
(华侨大学 信息科学与工程学院,福建 厦门361021)
随着微电子技术、传感器技术、无线通信以及嵌入式计算等技术的飞速发展,以及物联网概念的提出与应用推广,短距无线通信技术得到了广泛应用。物联网是通过传感设备,按照约定的协议,将物品与互联网连接起来,进行信息传输通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络[1-2]。Z-Wave[3-4]是丹麦Zensys公司推出的一种新兴的基于射频的、低成本、低功耗、高可靠、适于网络的短距离无线通信技术,具有比ZigBee更低的功耗和更高传输距离,在智能家居应用方面有较大优势[5-6]。国外 Yaledigital、Baldwin及国内Followgood等公司将Z-Wave用于智能指纹门锁上,实现了指纹门锁的远程控制与反馈,但是它们仅利用Z-Wave作控制,却未用于指纹数据的传输。
本文将Z-Wave无线通信技术与 ARM[7-8]嵌入式技术结合运用于酒店指纹密码锁上,旨在实现远程控制和指纹数据传输,设计一种应用于酒店客户的无线智能指纹锁方案,方便酒店人员对门锁进行管理和控制,具有广阔的应用前景。
系统总体结构如图1所示,由前端、中端、后端三部分组成。系统前端为Z-Wave指纹门锁,是该系统的核心部分,用于采集用户指纹及密码等输入、开关门禁、防撬警报等。系统中端为Z-Wave路由节点,用于接力无线信号和传输路径选择,该路由节点可为市场上已有非电池供电类Z-Wave认证产品,如Z-Wave灯座等。系统后端由PC上位机管理控制可视化软件与Z-Wave USB Dongle插件组成,本文设计采用Aeon Labs公司生产的Z-Stick[9]作为PC控制终端接收的插件。
图1 系统框图
系统的用户信息传输及验证流程如下:用户在后端PC上进行指纹采集、密码设置等信息登记,通过连接PC的Z-Stick将指纹、密码等数据通过无线方式发送给目标门锁。如果目标门锁距离不在Z-Stick直接传输的范围内,Z-Stick会通过路由节点经过多跳转发给目标门锁。最终门锁接收到数据信息并保存。当用户开门时输入指纹或密码,门锁内的ARM处理器会对输入信息与保存在存储器内的数据进行比对,验证通过则为用户开锁。
系统的远程控制、警报等信号传输流程与上述信息传输类似。用户使用记录、警报等信息上传为上述信息传输的逆过程,由前端往后端传输。传输结束后,系统将自动进入低功耗休眠状态,等待外部信号(指纹、键盘、无线、防撬触动等)以外部中断方式唤醒系统,从而使系统进入正常工作状态。
系统硬件结构如图2所示,主要包括主控制器S3C2440和存储器模块、电源管理模块、Z-Wave无线通信模块、指纹采集和矩阵键盘输入模块、电机驱动模块等。系统硬件分为ARM核心板、Z-Wave无线通信板和外围电路扩展底板。1.2 V电源为ARM内核供电、1.8 V/2.5 V/3.3 V电源为存储器供电、3.3 V电源为IO和Z-Wave供电、5 V电源为U盘/SD卡/指纹采集模块/LED背光供电、12 V电源为电机驱动电路供电。当用户通过指纹采集模块为输入正确的指纹或是通过矩阵键盘输入正确的开锁密码,以及PC端通过远程为用户发出开锁信号时,系统会驱动电机为用户开锁。键盘输入时,系统会为用户开启LED背光,并伴有蜂鸣器发出的按键音提示。倘若防撬开关被触动,系统会立即向后端发送无线警报信号。SD卡和U盘接口为当无线传输不可用时,用于人工插入外部存储设备并导入用户指纹、密码设置以及系统程序的更新升级。
由于本文门锁系统工作在电池供电及指纹数据运算等情况下,要求系统核心控制器具有较低功耗,有较强的运算能力且具有丰富的硬件接口。综合考虑,核心处理器选择三星公司的基于ARM920T内核的32位RISC微控制器 S3C2440[8],其具有丰富的片上资源(如16 KB指令Cache、16 KB数据Cache等)和外部硬件接口(IIC、SPI、USART 等)。
无线通信模块电路如图 3(a)所示,包括Z-Wave模块ZM3102[3]、EEPROM以及天线和匹配电路。Sigma Designs公司开发的ZM3102模块是一块高度集成的射频通信模块,载有ZW0301芯片、晶振、射频前端和电源滤波,通过异步串行接口与外部数据通信,其实物如图3(b)所示。无线通信模块板上的非易失性外部存储EEPROM用于存储Z-Wave网络节点信息、网络拓扑信息等使得重新上电后依然保持掉电前的网络状态。由于锁体被安装嵌入至门内与墙体相连,并且锁体外壳为金属材质,对电磁信号有强屏蔽作用,增加了对无线信号的阻碍,故将天线接口设计成SMA接口,便于将天线引至锁体外表面。
Zensys公司提供的Z-Wave软件开发工具箱(SDK),其不同的版本对不同系列芯片的组网与通信功能有所区别。本文基于SDK版本04.54.01进行无线通信功能开发。
图3 无线通信模块电路及ZM3102实物
图4 Z-Wave网络拓扑图
如图 4所示,Z-Wave网络是一种最多支持232个节点的网状结构网络(Mesh Network),Z-Wave协议规定网络由两种基本设备组成:控制节点(Controller)和从节点(Slave)。Controller能够建立、管理、维护网络,能够向Slave发出网络命令;Slave是接收命令的节点,提供传感数据或者执行命令响应。Controller又被分为便携式的(Portable)、静止的(Static)及桥接(Bridge)3类;Slave可以分为 3类:普通的、路由型(Routing)、增强型(Enhanced)。建立Z-Wave网络,要求必须要有一个Controller。本文中以后端的Z-Stick作为Controller进行网络组建,按加入节点的顺序为节点分配Node ID,ZStick的Node ID=1(默认)。Slave也可根据供电方式分为市电供电和电池供电两类,特别注意电池供电类Slave无法进行路由选择和中继,如本文中的门锁设备。
图5 Z-Wave软件架构
Z-Wave SDK提供方便开发的软件架构、应用程序接口(API)及程序流程,如图5所示。系统上电后进行系统建立(System Startup)、硬件初始化(ApplicationInitHW)配置硬件环境、软件初始化(ApplicationInitSW)设置通信模式、速率、网络信息、从EEPROM里读取节点信息等,接着进入主循环(ApplicationPoll),最终调用 Z-Wave协议栈[10]。
主循环程序以switch-case编写的状态机方式等待、接收、分析、回应等处理串口数据帧。若硬件初始化失败则进入测试主体(ApplicationTestPoll)。模块天线接收到信息并正确解析后,将以中断方式调用ApplicationCommandHandler来进一步对信息帧进行处理。在组网或者是网络信息变更时,Controller和Slave节点会分别调用ApplicationControllerUpdate和ApplicationSlaveUpdate更新响应。
ARM主控制器以波特率115 200 b/s、8 bit无校验数据位、1 bit停止位方式通过异步串行口(UART)与Z-Wave无线模块进行通信。其帧定义如图6所示,帧头SOF为0x01,长度LEN为除SOF和CHECKSUM外所有的数据字节数,类型TYPE有两种:请求REQ(0x00)和应答RES(0x01),命令COMMAND为SDK规定的命令类型,负载PAYLOAD为应用数据,校验CHECKSUM是0xFF与除SOF和CHECKSUM外所有的数据进行“异或”运算。
图6 Z-Wave串口帧格式
本文设计的指纹锁采集一枚用户指纹的数据大小为1 600 B,在使用Z-Wave进行数据传输时需要将指纹数据分段成多个帧。由于Z-Wave无线传输的数据帧长度限制,除去协议帧头、长度、命令校验等,考虑到应用层协议也将消耗多个字节,本文方案设定每一帧传输的指纹数据量为40 B,分成40次传输。指纹数据传输流程与控制如图7所示,数据传输初始先发送一帧总的信息帧,包含用户 ID、密码、数据帧数量和定义、时间戳等内容,接着发送指纹数据。每一帧数据发送后都会等待接收方回复确认(ACK)再发送下一帧,直至所有数据发送完毕。如果未能收到接收方的ACK,则停留100 ms后再次尝试发送该帧,最多可尝试5次。
图7 数据传输程序流程图
在室内、走道等建筑体内部环境的不同距离下进行实验测试,测试以每组20次传输为基础,一共传输820帧(16 800 B)数据,最后统计取平均数做为结果,传输丢包率与传输距离的关系如表1所示,其中A项数据为用PCB天线传输测得,B项数据为外接天线测得。
表1 帧出错率测试结果
从测试结果可以看出:由于受建筑内部室内墙体、走道拐角等环境因素的影响,在传输距离增大时,节点间数据传输的出错概率加大。在不加功率放大(PA)的情况下,Z-Wave无线信号传输距离有限,板载PCB天线与外接天线在传输性能上有所差异,PCB天线传输距离约为25 m,外接天线时传输距离有一定提高,能达到30 m以上。为减少数据错误率和丢帧率,保证数据传输的高效性和可靠性,节点间隔较大时应适当加入中继节点,或者考虑使用PA对信号功率放大以增加传输距离。
测试过程中使用了Sigma Designs公司提供的无线侦听测试软件Zniffer,选用一个设备节点烧录sniffer_ZW030x固件,通过RS232串口线与PC连接,PC客户端Zniffer能够解析侦听设备并捕捉到节点间传输信息。该软件能够辅助分析数据出错的原因,实验验证了方案设计的可行性和有效性。
本文将Z-Wave无线通信技术和ARM嵌入式技术与指纹锁结合,设计并实现了一种酒店应用的智能化的无线指纹锁管理控制系统,弥补了现有指纹锁无法远程传输指纹的不足,拓宽了指纹锁的功能与应用范围,提高了实用性与可靠性。
[1]周立功.ARM嵌入式系统基础教程(第2版)[M].北京:北京航空航天大学出版社,2008:1-4.
[2]吴帆,杨之乐,林小玲,等.一种嵌入式无线车辆信息采集系统设计[J].传感器与微系统,2013,32(2):116-121.
[3]Zensys.ZM3120C Z-Wave module datasheet[EB/OL].[2007-04-23].http://z-wavesupport.sigmadesigns.com.
[4]刘晗.基于 Z-wave技术的智能家居系统设计[D].上海:复旦大学,2012.
[5]赵敏,常杰,孙棣华.基于 ZigBee和ARM的分布式 RFID信息采集系统的设计[J].传感器与微系统,2011,30(9):105-108.
[6]彭建华,王新.ZigBee与Z-Wave通信技术比较研究[J].山西电子技术,2012(4):62-64.
[7]于明.ARM9嵌入式系统设计[M].北京:电子工业出版社,2007.
[8]S3C2440A 32-bit RISC microprocessor user′s manual(preliminary)[EB/OL].[2004-06-03].http//:www.samsung.com.
[9]Aeotec Z-Stick series 2[EB/OL].[2012-08-13].http://aeotec.com/z-wave-usb-stick.
[10]Zensys.Z-Wave ZW0201/ZW0301 application program guide(v4.54.01)[EB/OL].[2012-06-01].http://z-wavesupport.sigmadesigns.com.