基于Z-Wave无线技术的指纹锁系统设计

2024-02-12 11:32

本文主要是介绍基于Z-Wave无线技术的指纹锁系统设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.chinaaet.com/article/218940

摘  要: 结合新兴的低功耗的Z-Wave短距无线通信技术,设计一种应用于酒店的智能指纹锁无线管理与控制系统。该系统的门锁硬件电路包括主控制器S3C2440、指纹采集模块、电机驱动模块及ZM3102无线模块,对门锁节点中Z-Wave通信模块的硬件设计和软件设计进行详细说明,并研究了Z-Wave网络的结构、协议、软件开发,充分考虑指纹数据传输的方案设计,并对传输性能进行测试。测试结果表明:系统能够在低功耗工作情况下实现对指纹数据的采集、存储、传输和控制,并且运行良好。
关键词: Z-Wave;ARM;指纹锁;指纹数据传输

    随着微电子技术、传感器技术、无线通信以及嵌入式计算等技术的飞速发展,以及物联网概念的提出与应用推广,短距无线通信技术得到了广泛应用。物联网是通过传感设备,按照约定的协议,将物品与互联网连接起来,进行信息传输通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络[1-2]。Z-Wave[3-4]是丹麦Zensys公司推出的一种新兴的基于射频的、低成本、低功耗、高可靠、适于网络的短距离无线通信技术,具有比ZigBee更低的功耗和更高传输距离,在智能家居应用方面有较大优势[5-6]。国外Yaledigital、Baldwin及国内Followgood等公司将Z-Wave用于智能指纹门锁上,实现了指纹门锁的远程控制与反馈,但是它们仅利用Z-Wave作控制,却未用于指纹数据的传输。
    本文将Z-Wave无线通信技术与ARM[7-8]嵌入式技术结合运用于酒店指纹密码锁上,旨在实现远程控制和指纹数据传输,设计一种应用于酒店客户的无线智能指纹锁方案,方便酒店人员对门锁进行管理和控制,具有广阔的应用前景。
1 系统总体结构设计
    系统总体结构如图1所示,由前端、中端、后端三部分组成。系统前端为Z-Wave指纹门锁,是该系统的核心部分,用于采集用户指纹及密码等输入、开关门禁、防撬警报等。系统中端为Z-Wave路由节点,用于接力无线信号和传输路径选择,该路由节点可为市场上已有非电池供电类Z-Wave认证产品,如Z-Wave灯座等。系统后端由PC上位机管理控制可视化软件与Z-Wave USB Dongle插件组成,本文设计采用Aeon Labs公司生产的Z-Stick[9]作为PC控制终端接收的插件。

    系统的用户信息传输及验证流程如下:用户在后端PC上进行指纹采集、密码设置等信息登记,通过连接PC的Z-Stick将指纹、密码等数据通过无线方式发送给目标门锁。如果目标门锁距离不在Z-Stick直接传输的范围内,Z-Stick会通过路由节点经过多跳转发给目标门锁。最终门锁接收到数据信息并保存。当用户开门时输入指纹或密码,门锁内的ARM处理器会对输入信息与保存在存储器内的数据进行比对,验证通过则为用户开锁。
    系统的远程控制、警报等信号传输流程与上述信息传输类似。用户使用记录、警报等信息上传为上述信息传输的逆过程,由前端往后端传输。传输结束后,系统将自动进入低功耗休眠状态,等待外部信号(指纹、键盘、无线、防撬触动等)以外部中断方式唤醒系统,从而使系统进入正常工作状态。
2 系统硬件设计
    系统硬件结构如图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盘接口为当无线传输不可用时,用于人工插入外部存储设备并导入用户指纹、密码设置以及系统程序的更新升级。

2.1 核心处理器选择
    由于本文门锁系统工作在电池供电及指纹数据运算等情况下,要求系统核心控制器具有较低功耗,有较强的运算能力且具有丰富的硬件接口。综合考虑,核心处理器选择三星公司的基于ARM920T内核的32位RISC微控制器S3C2440[8],其具有丰富的片上资源(如16 KB指令Cache、16 KB数据Cache等)和外部硬件接口(IIC、SPI、USART等)。
2.2 无线通信模块电路
    无线通信模块电路如图3(a)所示,包括Z-Wave模块ZM3102[3]、EEPROM以及天线和匹配电路。Sigma Designs公司开发的ZM3102模块是一块高度集成的射频通信模块,载有ZW0301芯片、晶振、射频前端和电源滤波,通过异步串行接口与外部数据通信,其实物如图3(b)所示。无线通信模块板上的非易失性外部存储EEPROM用于存储Z-Wave网络节点信息、网络拓扑信息等使得重新上电后依然保持掉电前的网络状态。由于锁体被安装嵌入至门内与墙体相连,并且锁体外壳为金属材质,对电磁信号有强屏蔽作用,增加了对无线信号的阻碍,故将天线接口设计成SMA接口,便于将天线引至锁体外表面。
3 Z-Wave网络与软件架构
     Zensys公司提供的Z-Wave 软件开发工具箱(SDK),其不同的版本对不同系列芯片的组网与通信功能有所区别。本文基于SDK版本04.54.01进行无线通信功能开发。
3.1 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,Z-Stick的Node ID=1(默认)。Slave也可根据供电方式分为市电供电和电池供电两类,特别注意电池供电类Slave无法进行路由选择和中继,如本文中的门锁设备。

 

3.2 Z-Wave软件架构
    Z-Wave SDK提供方便开发的软件架构、应用程序接口(API)及程序流程,如图5所示。系统上电后进行系统建立(System Startup)、硬件初始化(ApplicationInitHW)配置硬件环境、软件初始化(ApplicationInitSW)设置通信模式、速率、网络信息、从EEPROM里读取节点信息等,接着进入主循环(ApplicationPoll),最终调用Z-Wave协议栈[10]。

    主循环程序以switch-case编写的状态机方式等待、接收、分析、回应等处理串口数据帧。若硬件初始化失败则进入测试主体(ApplicationTestPoll)。模块天线接收到信息并正确解析后,将以中断方式调用ApplicationCommandHandler来进一步对信息帧进行处理。在组网或者是网络信息变更时,Controller和Slave节点会分别调用ApplicationControllerUpdate和ApplicationSlaveUpdate更新响应。
4 数据传输
    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和CHE-CKSUM外所有的数据进行“异或”运算。

    本文设计的指纹锁采集一枚用户指纹的数据大小为1 600 B,在使用Z-Wave进行数据传输时需要将指纹数据分段成多个帧。由于Z-Wave无线传输的数据帧长度限制,除去协议帧头、长度、命令校验等,考虑到应用层协议也将消耗多个字节,本文方案设定每一帧传输的指纹数据量为40 B,分成40次传输。指纹数据传输流程与控制如图7所示,数据传输初始先发送一帧总的信息帧,包含用户ID、密码、数据帧数量和定义、时间戳等内容,接着发送指纹数据。每一帧数据发送后都会等待接收方回复确认(ACK)再发送下一帧,直至所有数据发送完毕。如果未能收到接收方的ACK,则停留100 ms后再次尝试发送该帧,最多可尝试5次。

5 系统传输测试结果
    在室内、走道等建筑体内部环境的不同距离下进行实验测试,测试以每组20次传输为基础,一共传输820帧(16 800 B)数据,最后统计取平均数做为结果,传输丢包率与传输距离的关系如表1所示,其中A项数据为用PCB天线传输测得,B项数据为外接天线测得。

    从测试结果可以看出:由于受建筑内部室内墙体、走道拐角等环境因素的影响,在传输距离增大时,节点间数据传输的出错概率加大。在不加功率放大(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-wavesup-port.sigmadesigns.com.

这篇关于基于Z-Wave无线技术的指纹锁系统设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/702507

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi