一种智能化钥匙管理系统的设计
2012-05-28张震宇赵震波
张震宇,管 帆,赵震波
(浙江科技学院 自动化与电气工程学院,杭州310023)
社会上许多单位(如学校、医院、大型企业等)具有众多的大型楼宇和庞大的员工数量,与其对应的钥匙总数也非常可观。早期的钥匙管理方法是用一个很大的钥匙盘将所有的钥匙串在一起[1],用户需要使用钥匙时,往往是将整个钥匙盘拿走或从钥匙盘上取下钥匙,钥匙管理者手工记录使用者和时间等信息,这种管理方式缺点明显,在一些涉密单位,这样的方式在安全性上也有一定的隐患。随着技术的发展,近几年也出现了一系列基于电子技术和信息技术的钥匙管理系统,使得钥匙的集中管理变得更加高效、便捷。代表性的主要有以下几种:一是采用钥匙柜代替传统的钥匙盘,同时在钥匙柜上带有指纹识别模块,只有得到授权的用户才能使用钥匙;二是给钥匙加上ID或IC标签,用户可以直接进入取用钥匙,由低频近距离RFID读卡器记录钥匙被取用的信息;三是利用计算机技术和网络等技术对钥匙ID身份信息实现本地和远程管理,使得钥匙管理变得更为方便、可靠。
综观上述3种代表性的钥匙管理系统,第一种钥匙本身无任何身份ID信息,第二种用户可直接进入,且低频读卡器对钥匙标签的读写距离很近,不便管理大量的钥匙,第三种着重于钥匙本身的信息化管理,但和用户信息的关联程度不是很紧密。总体上,现有的钥匙管理系统技术,要么着重管理用户身份信息,要么着重管理钥匙身份信息,未能将这两者紧密联系起来,功能上较为单一、不够全面,智能化和信息化程度也不是很高。因此,从整体上看,现有的系统存在一定的不足。
笔者设计了一种智能化的钥匙管理系统,充分应用了计算机技术、嵌入式技术、电子技术、无线通信技术、网络技术和数据库技术,通过系统集成方法,对现有主流的钥匙管理系统取长补短,构成功能全面、性能突出的钥匙管理系统。相较于现有的钥匙管理系统,此系统在综合性能上具有明显的优势。
1 系统硬件构成
系统按模块化思想设计,硬件构成简洁,主要包括主控MCU和人机对话、指纹识别、无源超高频远距离RFID读写、MCU和PC机USB通信、PC机管理软件、SQL数据库等组成部分,MCU作为现场级的信息处理中枢,PC机作为管理级的服务中心,各功能模块协同工作,完成整个钥匙管理系统的正常工作。该系统的整体构成如图1所示。
1.1 主控MCU和人机对话部分
主控MCU部分是整个系统现场级信息处理的核心。主控芯片采用STM32F107VCT6,这是一款基于ARM-Coretex M3内核的32位RISC型高性能单片机[2],采用LQFP100脚封装形式,具有256kB的Flash程序存储空间和64kB的RAM数据存储空间,GPIO资源丰富,各种功能接口齐全,包括RJ45网络接口、SPI、I2C、CANBUS、USART、USB等,便于连接各种接口的外围电路模块。主控MCU部分的作用是发送指令给各功能模块,并读取各模块执行指令后给出的反馈信息。主控MCU和PC机以USB2.0方式通信,接受来自PC机的命令,并给出正确的回应。
人机对话部分是用户在使用系统时的人机交互装置,其作用是在主控MCU的控制下,接受用户的命令,并将相关信息显示在显示器上,给用户以提示和回馈。系统直接采用了3.2英寸触摸屏,取代了传统的键盘加显示器的设计方法,使该部分的设计更加简洁。
1.2 指纹识别部分
图1 系统整体构成示意图Fig.1 Diagram of overall system composition
在系统中,用户必须先通过指纹比对,方能进入钥匙柜取用钥匙,指纹模块起到鉴别用户身份信息的作用。系统采用了一体化光学指纹识别模块CAMA-SM12[3],指纹登记容量为3 000枚,可扩展至8 000枚。认假率(FAR)<0.000 1%,拒真率(FRR)<0.01%。比对方式采用1∶N和1∶1比对。指纹模板大小为498Byte。安全等级从Level 1至Level 5可设置。指纹特征提取时间<0.45s,1∶1比对时间<0.5s,1∶N比对时间(500枚时)<0.6s。该部分模块和主控 MCU之间采用UART通信方式,电平标准为3.3VTTL,串行通信数据帧格式为1个起始位、无奇偶校验、1个停止位,通信波特率为9 600、19 200、38 400、57 600、115 200(b/s)可选。主控 MCU通过发送相应命令数据给指纹识别模块,实现对该模块的初始化、指纹采集、指纹存储等动作,同时该模块将代表执行结果的数据返还发送给主控MCU,这样双向通信以确保该模块和主控MCU之间能够正确地工作。
1.3 无源超高频远距离RFID读写部分
在系统中,每把钥匙和大楼的房间号相对应。每把钥匙上都贴有规格为ISO18 000-6C柔性标签(tag),即俗称的“6C”卡,其内部芯片采用美国Alien公司的Higgs3。每个标签都具有全球唯一的ID码,即64Bit TID。这种标签内部具有512Bit用户内存,因此,它不仅可被超高频读写器读取,也可被读写器写入,这样的可读可写机制,可以保证信息的完整和安全。系统采用JT-8 220UHF超高频远距离RFID读写模块[4],频率范围为902~928MHz,可读写包括各种柔性标签在内的6B和6C卡,通过读取每把钥匙上标签(tag)的信息,即可识别出每把钥匙对应的房间号。
该读写器具备多种标准接口,包括 UART、Wiegand26/34/42、RJ45、RS232、RS485等,适合应用于多种场合。在系统中,该读写器和主控MCU之间也采用UART通信方式,其电平标准、通信帧格式及波特率设置等情况,与指纹模块的基本类似。为获得更远的读写距离,以便能读取到更多的钥匙标签(tag),读写器配备了8Dbi天线,而不是传统的PCB天线,实际使用中,读取距离稳定在2m以上。
读写器模块在主控MCU的控制下,一直不断地高速扫描所有钥匙标签(tag),一旦有用户取走某把钥匙,则在下一个扫描循环中读写器将读不到这把钥匙的信息,系统即认为该钥匙被人取走,当用户用毕归还钥匙时,其过程类似。因此,读写器模块的作用是区分出每把钥匙的身份信息,以及记录下每把钥匙是否被取用或归还的情况,实现对所有钥匙的身份信息的动态管理。
1.4 计算机管理软件、SQL数据库和Internet部分
为了管理更大量的楼宇钥匙和对系统通过网络进行远程管理,该系统采用一台计算机(PC机)作为上位机,作为系统整体管理之用。PC机既是本地管理计算机,又是网络服务器。在计算机上设计有管理软件,界面风格简洁友好,查询和管理功能齐全。同时在后台设计有SQL数据库,用户指纹、钥匙ID身份、事件发生时间等所有重要信息都可存储在该数据库中以备查询。当钥匙系统管理人员不在现场时,可通过Internet进入到该计算机,在异地实现远程管理。该计算机和主控MCU通过USB2.0方式进行通信,MCU接受计算机指令,可将读取到的指纹、钥匙ID等信息都传给计算机。计算机部分是钥匙管理系统管理级的大脑。
1.5 钥匙柜体部分
主要包括钥匙柜、锁止电机及驱动和相应的机械结构,其中电机及驱动部分接受主控MCU的指令,可打开或关闭柜门和钥匙扣环。
2 系统软件设计
设某事业单位有员工1 000人,有房间500间。人员级别分为高层领导、中层领导和普通员工。不同级别的人员权限不同,即高层领导允许进入所有房间(假设房间编号从001号至500号),中层领导允许进入部分房间(假设允许进入的房间编号从001号至100号),普通员工只允许进入自己所在的房间,这意味着不同级别的人允许取用的钥匙范围不同。500间房间对应钥匙500把,每把钥匙上都贴有柔性标签(tag)和房间号,配有采用此钥匙管理系统的钥匙柜1台。
2.1 系统初始化程序
钥匙柜系统软硬件安装和调试完毕后,首先要进行以下初始化工作。
2.1.1 人员指纹信息及相关信息录入
指纹识别是将读取到的进入者的指纹和系统中原存储在数据库中的指纹信息进行比对,然后判断该进入者指纹是否是已采集过的授权指纹。因此,必须先进行1 000人的指纹录入工作。同时,为了便于管理和查询,还要将每个人的姓名、身份证号码、性别、出身年月、所在部门、所任职位、级别(高层领导、中层领导和普通员工)等信息也录入。采集时,规定所有人员一律采集右手大拇指指纹信息。如图2所示为用户指纹录入的程序设计流程图。
2.1.2 钥匙Tag信息录入
每把钥匙都具有唯一的身份编码,为了管理所有钥匙,应将所有钥匙的ID信息录入数据库,钥匙ID信息要和房间编号一一对应。该系统选用的标签(tag)为可读可写,现阶段只用到了读功能,在后续的系统升级设计中,为加强数据保密性,将用到其写入功能。如图3所示为钥匙标签(tag)身份信息录入的程序设计流程图。
除了做好指纹采集和钥匙身份信息录入这些初始化工作外,还需要设置计算机的TCP/IP协议,保证计算机能够正常上网。
2.2 系统工作程序
上述准备工作就绪后,则整个系统按以下流程进入正常工作状态。
2.2.1 取用钥匙流程
图2 指纹录入流程图Fig.2 Flowchart of fingerprint input
假设该单位某中层领导甲要进入钥匙柜取用钥匙。在显示器提示信息的指导下,首先甲将右手大拇指按到指纹识别器上,系统在数据库中搜寻匹配指纹信息,指纹识别通过后,系统认为甲是授权用户,同时判断出了甲的具体部门、身份证号码和职位等信息。接下来系统在人机对话部分显示欢迎信息,并打开柜门,同时控制电机和相应的机械结构,打开所有允许被甲取用的钥匙(编号从001号至100号)的扣环,等待甲取用。
假设甲在2011年11月21日14:00取用99号钥匙。每个钥匙都被扣在一个钥匙扣环里,要取用钥匙,必须先控制电机驱动相应的机械结构后,才能打开扣环。超高频读卡器一直在其读取距离范围内高速扫描所有钥匙上的标签(tag)信息,若所有钥匙都在原位未被人取用,则每次都能读到所有钥匙的信息。当甲取用了99号钥匙,扫描过程中读取不到99号钥匙的相关信息,系统即认为99号钥匙被人取走,显示器上就会显示“甲用户在2011年11月21日14:00取用了99号钥匙”的相关信息,让甲知道这一情况的发生。同时数据库中记录下该事件发生的时间,认为在该时刻99号钥匙被甲取走,系统写入数据库中相关字段。待甲持钥匙离开钥匙柜距离超过超高频读写模块的读取距离后,系统等待20s后关闭钥匙柜门和所有扣环。上述过程中,若甲超时,则系统会关闭并显示警告信息。用户取用钥匙的程序设计流程图如图4所示。
2.2.2 归还钥匙流程
假设甲在2011年11月21日16:00用毕后归还99号钥匙。这一过程和取用钥匙过程非常类似,基本上就是一个反过程。首先甲必须通过指纹认证重新打开柜门,系统判别出是甲的指纹,扫描到其所持的钥匙ID,打开99号钥匙的扣环,界面提示甲将钥匙放入99号对应的扣环,扣环锁止到位后,显示器上显示归还成功信息,数据库中会记录甲归还99号钥匙的时刻。上述过程中,若甲超时,则系统会关闭并显示警告信息,该过程和取用流程基本类似。
图3 钥匙tag信息录入流程图Fig.3 Flowchart of key tag input
2.2.3 PC端管理软件及数据库设计
利用Visual Baisc 6编程环境,在PC机平台上进行了钥匙管理系统软件设计工作,设计了带有完整功能按钮及文本对话框的界面,简单易用。同时该管理软件和计算机后台数据库相关联,数据库采用SQL2008软件设计而成,其字段包括钥匙身份信息、用户身份信息、用户等级权限、授权选项、取用和归还信息等,可方便地对该数据库进行初始化、添加删除授权用户、添加删除钥匙信息、修改授权用户等级权限等操作,便于在实际应用中能够应付各种复杂的钥匙或人员的动态情况变化。系统管理员可借助管理软件和数据库,在本地方便地操作、管理该钥匙柜系统。若系统管理人员需要在异地查看和管理该系统,则可通过TCP/IP协议,通过Internet进入到该计算机,输入用户名和密码后,即可进入整个软件系统,就像在本地操作计算机一样,进行查询和数据库管理等操作。
图4 用户取用钥匙流程图Fig.4 Diagram of key process by user
3 结 语
笔者对该系统做了初步的测试,实际效果整体上令人满意,达到了预期的功能目标。但也发现一些和实际预期有一定出入之处,主要有:
1)指纹识别效果在有些情况下不是非常理想。若用户右手大拇指不是很干净,比如有油污或其他色泽,往往会通不过指纹比对,其原因在于指纹比对是通过图像处理技术进行识别的。这一问题,在后续的系统升级设计中,可考虑选用算法更加先进的指纹识别模块,或购买昂贵的电容式指纹模块。在有条件的情况下,也可以利用半导体指纹传感器和DSP芯片[5],自行研究设计指纹识别模块,这也是一个非常值得投入研究的领域。
2)超高频读写器距离超过预期。经实验,发现该型号的超高频读写器对标签(tag)的读取距离可达到3m以上,写入距离也能稳定在2m左右,超出了笔者的预期。分析其原因,其中之一是由于其采用了大功率的天线,而不是市场上大量采用的廉价PCB天线,保证了其读写距离指标令人满意。
总体上,笔者设计的智能化钥匙管理系统具有较强的实用性、鲜明的技术特色和领先的功能优势。从应用领域而言,此系统可归属到目前正在中国飞速发展的物联网领域,其涉及的核心技术,包括身份识别、信息处理、网络和数据库等相关技术,可在物联网等相关领域作大量的应用推广,其前景值得预期。
[1] 高鹏.人机交互智能钥匙管理装置:中国,201020240926.5[P/OL].(2011-04-06)[2011-11-15].http://211.157.104.87:8080/sipo/zljs/hyjs-yx-new.jsp?recid=CN201020240926.5&leixin=syxx&title=人机交互智能钥匙管理装置&ipc=G06Q10/00(2006.01)I.
[2] 彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.
[3] 西安富兰威尔电子科技有限公司.CAMA-SM12产品详情[EB/OL].(2011-11-08)[2011-11-18].http://www.xianfrankwell.com/html/Pro_Content31.html.
[4] 深 圳 捷 通 科 技 有 限 公 司.UHF RFID 读 写 器 [EB/OL].(2011-09-12)[2011-11-20].http://www.jt-rfid.com/ArticleInfo/a153.html.
[5] 王冬,黄静,徐家泉.基于BCT100芯片的指纹采集系统的设计与实现[J].浙江理工大学学报,2010(5):756-759.