基于RFID的小区门禁管理系统设计与实现
2019-07-29邱义
摘 要:随着安全意识的提高以及管理数字化、智能化要求的提出,小区门禁管理系统已大量引入各种新兴技术,实现人员出入管理的有效控制。文中提出一种基于射频识别技术(RFID)的小区门禁管理系统设计方案。该系统控制器通过射频识别技术读取用户卡号,利用串口通信将卡号数据上传到门禁管理软件进行用户身份信息核对与确认,并将核对信息返回控制器以控制门禁开启与提醒,满足现代化门禁管理的要求。
关键词:门禁;射频识别技术;串口通信;单片机;控制器;身份信息
中图分类号:TP368.2 文献标识码:A 文章编号:2095-1302(2019)05-00-03
0 引 言
由于安全问题越来越突出,人们对社区安保措施的要求也不断提高,许多社区、写字楼、校园等公共区域已广泛应用各类门禁系统[1]。目前使用最为普遍的智能门禁系统分别是密码式门禁系统、刷卡式门禁系统与采用生物识别技术的门禁系统三种。密码式门禁系统安全性较差,容易造成密码泄露;生物识别技术的门禁系统一般采用指纹、人脸及虹膜等人体特征作为识别手段,不可复制性与唯一性决定了其安全性,但其价格昂贵,不利于大量部署。射频识别技术(Radio Frequency Identification ,RFID)是一种非接触式自动识别技术,通过射频信息识别目标对象并获取相关数据。随着RFID技术的发展,非接触式IC卡门禁系统由于其技术成熟、价格低廉、使用方便等优良特性已成为住宅、企业等安防系统的重要组成部分[2-3]。
无线射频识别技术在计算机技术、通信技术及机械电子技术迅猛发展的过程中快速成长,其安全便捷、成本低廉、故障率低等优点在当今门禁系统中得到了广泛应用[4]。本文基于51单片机与RFID研究并设计一套小区门禁系统,实现在小区出入口门禁进行RFID识别获取住户身份信息,通过与数据库已有的居民信息进行比对,进行高效、安全的社区管理。
1 系统整体设计
本文设计的门禁管理系统包括由控制器、读卡器、电控锁、LCD液晶显示等模块组成的控制器与门禁管理程序两部分。其中,门禁控制器是系统的核心单元,由微处理器与外围电路组成,微处理器STC89C52RC是宏晶科技公司生产的一种低功耗、高性能的8位处理器,具有8 KB FLASH和512 B RAM,32个I/O端口[5]。射频读卡器模块采用NXP公司生产的MF RC522模块,该芯片具有高度集成的非接触式(13.56 MHz)低功耗读写功能,在无需其他电路的情况下可通过内部发送器部分驱动读写器天线在ISO 14443A/MIFARE卡与应答机之间通信,支持SPI,UART,I2C三种不同的接口与微处理器通信[6],本文设计使用SPI接口与单片机通信。LCD液晶显示模块为J12864模块,是一款低电压低功耗的中文汉字图形点阵液晶显示器,可用来显示汉字与图形,分辨率为128×64,内有8 192个16×16点阵中文汉字,价格低廉,同时显示效果满足设计要求。门禁管理系统通过串口与控制器通信,开发环境为微软Visual Studio 2013,用户界面使用C#编程语言的WinForm窗体框架,用户数据存储采用轻量级关系型数据库系统SQLite即可满足要求[7]。系统整体结构如图1所示。
本文门禁管理系统可有效解决日常门禁使用过程中用户信息管理不够直觀的缺点,实现快速、高效、准确的社区安全管理,主要实现以下功能:
(1)门禁管理,通过RFID技术绑定用户身份信息到电子标签上,当用户刷卡时与后台数据库连接识别身份信息,开启小区门禁;
(2)用户数据管理,可对用户信息进行增加、删除、修改、查找,对于新入住的居民可以添加读写卡号与用户信息,删除已搬离社区的居民信息,修改居民可能更换的信息,查找用户的相关信息;
(3)开关门动作,在没有刷卡开门的动作下,可直接按下手动开关键实现开门;
(4)报警动作,当用户卡号没有在后台数据库查询到时,门无法开启,并且通过蜂鸣器进行报警。
2 系统实现
本文系统软件部分包括单片机控制器程序与门禁管理程序。单片机控制器程序实现对硬件电路的控制,包括RFID读卡识别、串口通信、LCD显示、声光提醒等功能。门禁管理程序主要完成用户信息管理、存储以及与单片机通信等功能。
2.1 控制器程序实现
控制器程序是单片机控制系统程序,使用C语言进行编程设计,开发平台为主流的单片机开发软件Keil C51,该软件提供了包括C编译器、宏汇编、链接器、库管理及功能强大的仿真调试器等在内的完整开发框架[8]。RFID卡号就像每个人的身份证号一样具有唯一性,并且固化在芯片中无法被修改,当住户刷卡时,门禁控制器读取RFID卡号并利用串口通信将卡号上传至管理软件,管理软件查询用户数据库中是否有对应的卡号绑定的居民信息,若存在则返回确认数据以开启小区门禁并提示正常出入,不存在则拒绝开启门禁并在液晶显示屏上提示用户卡无效以及蜂鸣器报警。当用户离开小区时无需刷卡只需通过按下手动开关键即可实现开门,具体工作流程如图2所示。
2.2 门禁管理程序实现
门禁管理程序采用C#编程语言的WinForm窗体用户界面应用程序,其开发平台为微软公司推出的最流行的Windows平台应用程序开发环境Visual Studio 2013。上位机主要实现用户信息与RFID卡号绑定以及存储、查询、管理功能,详细功能包括以下三个部分:
(1)用户交互界面设计;
(2)串口通信,实现与单片机进行数据收发操作;
(3)数据库操作,用户信息增加、删除、修改、查询。
界面设计采用WinFom可视化设计器设计,使用.Net Framework框架提供的丰富类库与控件布局。本文设计中使用的控件有Label,TextBox,Button,PictureBox,RadioButton,ComboBox等控件,主界面如图3所示。主界面包括门禁管理功能、人员管理、人员添加、远程开门。门禁管理功能可设置门禁时间以及控制器串口通信参数;当用户刷卡时人员管理功能显示从数据库中查询出来的用户信息;人员添加功能实现添加新人员门禁权限,同时将该卡与人员信息绑定存放到数据库中,需要保存的信息包括姓名、卡号、性别、年龄、民族、手机号码、籍贯、住址、身份证号等。
串口通信使用C#的串口控件SerialPort控件,端口号由硬件识别结果确定,波特率为9 600 bit/s,数据位为8位,检验位为None,停止位默认设置为1。串口打开通过SerialPort.Open()函数实现,打开后即可进行正常的数据收发[9]。串口发送数据通过SerialPort.Write(byte[] data, int start,int length)函数实现,其中data是一个待发送数据的字节数组,start是数据数组发送的起始位置,一般为0,length是发送的数据长度。串口异步接收数据,使用串口控件SerailPort的DataReceived事件处理函数进行接收,当单片机发送数据至管理程序时自动处理数据接收,串口配置主要实现代码如下。
2.3 通信协议实现
门禁系统管理软件与单片机程序通过串口进行通信,串口通信的特点是一个字符接着一个字符进行传输,并且传输字符时总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求,因此双方必须共同遵循同一套通信协议才能保证数据传输完整正确[10]。本文通信需要实现控制器用户卡号上传与管理软件查询结果返回的功能。通信协议主要包括数据帧头、数据长度、命令类型、设备号、数据正文、CRC校验。数据帧结构如图4所示。
控制器单片机通过硬件串口设备收发数据,门禁系统管理软件通过SerialPort类调用硬件设备收发数据。为保障数据正确传输,程序设计时需要实现数据检验与重发机制。接收串口数据较为复杂,结合串口协议分析需要解决的问题为:缓存串口收到的所有数据;找到一条完整数据帧;分析数据帧的命令内容;将分析出的命令通知上层应用。缓存接收所有数据最高效的方法是利用C#中的List〈B〉结构,该结构能够方便地实现数据元素的增、删、改操作,因此利用SerialPort类的DataReceived增加接收事件将串口接收数据全部放入List〈B〉结构后再分析。找出一条完整的数据帧,首先在缓存的数据中找到帧头,找到后检测后面一个字节的数据长度,然后计算缓存剩下的数据是否足够,数据不够就停止分析以减少时间消耗,如果剩余数据大于数据长度,计算出数据帧CRC校验码并与缓存数据中的CRC校验码对比,如果校验码一致说明数据帧传输正确,解析帧内容并通知上层应用处理,否则丢弃掉该帧等待重发。
3 结 语
门禁系统已经是现代安保设施的一个重要环节,也是社区、办公、商场领域智能化与数字化管理的重要应用之一。本文设计的小区门禁管理系统采用自动射频识别技术,其方案成本低,使用便捷,技术成熟,满足小区管理现代化、智能化、易用性的要求,通过RFID即可实现全区域出入人员的有效管理,是现代社会智能化的一个重要应用。
参 考 文 献
[1]李明娟,李海龙.单片机和RFID技术的智能门禁系统设计[J].实验室研究与探索,2016,35(11):123-126.
[2]郑国伟.基于RFID的小区智能门禁系统[J].福建电脑,2013(11):129-131.
[3]王纪.基于单片机的RFID门禁控制系统设计[J].电脑知识与技术, 2016,12(17):243-245.
[4]王聪,夏青.小区智能门禁管理系统设计[J].电子设计工程,2012,20(14):38-40.
[5]苗振腾.基于单片机控制的RFID门禁系统设计[J].电子世界,2018(12):196-198.
[6]毛敏.基于Arduino的智能门禁系统[J].电子测试,2018(21):40-41.
[7]邓杰海,全智龙,周红娟.基于C#与SQLite的银行财政非税收入管理软件的研发[J].电脑知识与技术, 2017,13(10):74-75.
[8]紀艺娟.利用Keil与Proteus联调改进单片机实验课程教学[J].电子技术,2017(12):70-72.
[9]况海龙,熊庆国.基于串口服务器的声发射监测系统设计[J].电子设计工程,2013,21(13):91-93.
[10]邱义.基于移动支付的自动售货机设计与实现[J].物联网技术,2016,6(10):78-81.