引言
随着科学水平的不断提高,基于 RFID 技术的门禁管理系统日渐成熟,现如今已被各大高校,公司,政府机关等敏感区域使用,其强大的功能已为人们深刻认识,它已进入人类社会的各大安全防范领域并发挥着至关重要的作用。越来越多的管理人员意识到门禁管理系统的重要性,而且在未来几年内可以预见到,基于 RFID 技术的门禁管理系统将随着技术的发展逐步普及到学校,住宅,以及人们日常可接触到的公共场合,成为一种为大众所熟知的日常设施。本文是对此次毕业设计的详细描述和分析,将以此为基础对现阶段市场上出现的基于 RFID 技术的门禁系统进行分析,并加以改进和发展。市面上大部分基于 RFID 技术的门禁管理系统的核心结构是使用 51 单片机作为主控模块,将所有设备集成在一块板上,虽然在射频卡识别方面实现了无线传输,但依旧不能实现远程控制开门,在实际生活中局限性较大,并且没有相应的软件管理系统,无法实现对人员信息的管理。在此背景下,本次设计的基于 RFID 技术的门禁管理系统将着手解决这些问题,RFID 技术实现读卡识别功能,通过 ZigBee 模块的无线传输技术实现远程开门,并且设计了配套的软件管理界面来实现对人员的管理和信息的存储。
1 项目概述
1.1 选题背景
在这个科学技术越来越发达的社会,信息技术早就融入人们的生活之中,成为不可或缺的一部分。生活水平的提高使得人们对个人或公共财物的安全与防盗意识逐渐加深,越来越多的研究方向开始向安防系统进发。门禁系统现如今已经被广泛应用于各大公司、高校、住宅等等涉及公有或个人财务安全的地方,是一种安全系数很高的控制管理系统。传统门禁系统如机械锁、磁卡锁、密码锁等在特定条件下都有一定的弊端或安全隐患,已经难以满足人流量大,人口密集地方的安全要求。现在为了保证各领域的安全,管理者通常会在建筑物内的主要管理区,工作地点,会议室等安全问题敏感的出入口增设能够既可以保证安全,也可以对进出人员进行管理,并且操作起来相对简单快捷的门禁管理系统。为此一种新型的基于 RFID 射频识别技术的门禁管理系统应运而生。它可以通过射频识别技术动态的识别出具有进出权限的人判断是否放行,并对进出人员的数据信息进行管理,保证人身财产的安全。
通过上表的测试情况,我们可以看出,虽然远程控制客厅灯、报警器功能正常,但存在一定的误码情况,通过多次测试,该系统的远程通信误码率小于10%,基本满足预先设定。其主要原因是我们采用的公用MQTT服务器,受到服务器拥堵等情况的影响,传输速率和正确率得不到保障,可在后续工作中申请搭建个人专属MQTT服务器解决该情况。
6.6本章小结
本章节主要对控制系统功能进行测试。分析了采用的测试方法以及测试达到的效果,实现了家居环境温度、湿度、光照度监测功能,声光报警功能和远程监测以及远程控制功能。测试结果表明,该基于STM32单片机的智能家居监测系统能够满足系统设计功能需求。
7结论
本文通过查阅了国内外有关文献资料以及相关市场方面的调查工作,分析了目前国内外智能家居产品的现状和存在的问题。本文从普通家庭的实际需求出发,设计开发,实现了一种基于STM32系列单片机的智能家居监测系统。在通过对系统的功能测试的基础上,验证了系统的功能性需求。最后的测试结果表明,本文中所开发的基于STM32系列单片机的智能家居监测系统,在正常工作的基础上满足了相关功能的需求,并且实现了开发,安装和维护成本低,操作简单的目的。
主要完成了以下内容:
(1)该监测系统从普通家庭的实际需求出发集成了温度和湿度监测、光照度监测、声光报警功能、灯光控制以及远程监测和控制功能,系统通过温度湿度传感器模块来监测环境温度及湿度情况,结合OLED液晶显示屏和手机微信小程序,实现了家居环境温度湿度监测功能。
(2)系统通过WiFi通信模块和阿里云平台的数据交互,实现了手机端程序远程监测和控制功能。
(3)本设计采用了市面常见的即插即用传感器模块,当模块发送故障时可以直接更换。
本毕业设计的控制系统按照设计构想实现并通过了有关的功能测试,但还存在一些不足的地方,有待在今后的学习和工作中继续研究。
1.2 目的及意义
在科技飞速发展的今天,各种具有多元化功能的电子科技产品层出不穷。然而,在信息技术的推进下,如今市面上的门禁系统已经逐渐趋于电子化,在人身安全和区域控制方面仅仅通过门锁或人员监管已经无法反制当前的科技手段。因此,在高科技设备层出不穷的今天,使安全防范系统能够跟上科技的发展是我们需要解决的首要问题。而门禁系统就是目前应用最为广泛的安防措施,但就目前来说,传统的安防措施有着明显的漏洞与缺陷,原始的安防设备主要由门锁,防盗门,围栏,监控系统组成,而安防措施则是通过机械门锁来禁止无关人员的进入,分配钥匙来管控人员的进出权限。这种安防措施不仅容易攻破,而且会耗费不必要的人力、物力、财力,一旦钥匙丢失或损坏就需要更换全套门禁系统。
而本设计中提出的基于 RFID 技术的门禁管理系统就可以克服传统门禁系统的种种缺点。
现如今门禁管理系统已经成为现代化管理的重要手段被各大企业,机关应用。在这些
财物和人员信息管理敏感的区域,管理者需要对建筑物内主要的管理去区域,出入关口,存放贵重物品的库房,信息保密设备的安置区域等地方加强安全防护措施,此时就需要开发出一种安全高效,操作简单快捷的门禁管理系统,来识别进出人员的身份权限。本设计提出了基于 RFID 射频识别技术的门禁管理系统,并着重分析和研究了其中一个重要部“门禁管理系统”。门禁管理系统作为保护人们人身安全和财产安全的重要举措,其研究与开发对未来安防系统的发展有着深远的现实意义。
1.3 门禁系统的国内外研究状况及发展趋势
1.3.1 门禁系统国内研究现状
门禁系统在国内的研究领域发展较为缓慢,究其原因是因为我国相较于欧美发达地区起步较晚,在门锁控制方面使用的也是传统的机械锁,密码锁等。在一些经济资本雄厚的企业,或是有政府财政支持的重要机关单位中,非接触式的射频识别技术已经得到使用。但仍然无法向国外市场一样在家庭,住宅以及学校等地方得到普遍的认可。目前,国内智能门禁系统的研究已经从认知教育和实验阶段逐步进入了研发阶段。由于吸取了国外早些年的开发经验,国内的 RFID 技术发展的也较为迅速,但仍然具有许多局限性。例如,国内相关产品的研发缺乏新意,无法从国外设计研发的框架体中跳出,依然局限在国外的研发领域中,没有创新意识。普遍采用的使国外现有的集成模块,对于核心部件依然难以大批量的自主研发以及生产。
从技术层面来说,国内的门禁系统的自主研发硬件设施与国外的相比依旧有差距,并且相当大一部分是通过购买国外生产厂家所生产的核心部件,例如控制模块、读写器、芯片等等,然后将这些现有的设备进行硬件的改进以及软件系统的二次开发,使之成为适合国内用户的门禁管理系统的一部分。由此可见,国内门禁系统的研发相比于国外略微处于滞后状态,在创新和质量方面仍需努力,但成本相比国外的设备更加低廉。相信在不远的将来国内的 RFID 技术在门禁管理系统中的应用会越来越广泛。
1.3.2 门禁系统国外研究现状
国外在门禁管理系统的技术应用方面已经较为成熟,科学便捷的管理方法以及系统的研发方面已经处于领先地位,现如今已经在各大场所到普及。RFID 技术在国外很早就得到了各领域的重视,在门禁系统方面 RFID 技术被应用于 RFID 卡和读卡器的研究与设计中,特别是在美国与欧洲的一些发达国家中 RFID 技术已经广泛的应用于其重要地点的安防措施中。目前部分国外的发达国家已经掌握了 RFID 技术的设计与生产的关键技术,可以大批量的生产相关产品。现如今世界上射频识别卡的主流产品是来自飞利浦公司开发的 mifare 技术,该技术近年来已经在日常生活中普遍的应用,如门禁安全系统、项目集成系统,安全防护系统,一卡通系统等等,该技术现已被制定为国际标准 ISO/IEC14443 U 型 A。目前绝大多数射频读写器制造商都是依据 mifare 技术原理和 ISO/IEC14443 作为标准进行设计与制造。
RFID 技术在国外门禁系统中的应用已经步入成熟阶段,该技术在门禁系统中已广泛应用于各个地方,各大国外公司大力发展相关技术,积累专业人员,这使得门禁系统在国外已经产生了垄断的趋势。相较国内门禁系统来说,国外各大公司对门禁技术的研究已经达到较为成熟的水平,由于其起步早,发展快,这使得这使得国外的门禁系统生产商所推出的产品在系统的稳定性和功能性上比国内的产品更具有优势。但仍然没能在国内市得到普遍的应用,其主要原因为虽然这些产品功能庞杂,性能良好,但价格普遍较高,操作复杂,应用的技术在国内也没能被大多数人了解,因此在安装和使用方面需要具有一定的专业知识的专业技术人员支持。
1.3.3 门禁系统的发展趋势
门禁管理系统顾名思义就是一种可以动态控制人员的进出权限,同时还可以准确记录
相关人员在建筑物内及信息敏感区域的行为并给予统计管理的一种数字化进出控制系统,它是从传统的机械门锁逐步发展而来。传统的门禁系统中并没有涉及到门锁控制电路和软件系统,仅仅是由机械门锁,安保人员或监控系统来手动控制和记录人员的进出,这种方式无疑有着很大的弊端。随着时代的发展无论机械门锁设计多么精密,材质多么坚固,人们总会找到各种方法通过外力破解。并且在一般情况下,一种机械门锁往往对应一种钥匙,一旦钥匙发生丢失出于安全考虑通常只能将整个门锁系统更换掉。为解决这种问题,几种新型电子门锁问世。主要有电子密码锁和磁卡锁,相比传统机械门锁这两种门锁提高了人们对进出人员信息的管理程度,使门禁管理系统进入电子控制模式。然而随着这两种门锁的广泛应用,这种电子门锁的缺陷也开始显露出来,磁卡锁卡面容易磨损和磁性容易被其他磁场干扰,并且记录的信息容易被其他人拦截并拷贝下来。密码锁则容易造成密码泄露,其安全系数相对低,且操作较为复杂,密码丢失后必去更换整个门锁系统。与此同时这个阶段的产品读写设备和控制电路还只能暴漏在墙体之外,给不法分子留下破解的机会。
现阶段随着非接触式感应卡与生物识别技术的出现,门禁系统在各方面都得到了质的提升。它们在安全性,便捷性等方面已经发生了质的飞跃,这种智能化的门禁系统也在大众中得到广泛的认可。
2 相关技术
2.1 射频识别技术
本次设计的门禁管理系统所使用的核心技术是射频识别(RFID)技术,该技术是一种非接触的自动识别技术。该技术自 20 世纪八十年代以来日趋成熟,是一种逐步在现代社会中流行的自动识别技术。它的技术实现过程是利用射频信号通过空间耦合如交变磁场或电磁场,来进行无接触的信息传递,在传递信息的同时需要接收设备接受信号并完成识别[1]。射频识别也被称为无线电识别,它源自无线电通信技术,其基本原理是利用射频的方式进行非接触的双向通信以达到识别与数据交换的目的[2]。射频识别技术在应用到了电磁场的性质,使得在进行信息识别时具有无需接触,传播途径不可见,信息识别可靠的特点。这使得在采集和处理相关信息时具有识别距离合适、适应各种极端条件,信息收集处理迅速等优势,射频识别技术的广泛应用和快速发展对于无线传输领域的进步具有里程碑意义,为今后门禁系统的发展奠定了坚实的基础。
2.1.1 射频识别技术基本原理
一般情况下,射频识别技术的应用系统通常由 RFID 高频读卡器和高频 RFID 卡组成以及应用软件系统组成,其原理如图 2-1 所示。
系统上电后,首先进行设备初始化,各模块以及串口初始化完成后,ZigBee模块将通过程序中预设的账号名称及密码连接到服务器,然后系统执行主程序,各传感器每秒采集一次数值并提供OLED模块实时显示,系统每五秒向服务器发送一次相关的信息,其中包括温度、湿度、传感器数值,以及客厅灯LED和报警器BEEP的工作状态。并且软件我们可以向设备下发关灯和关闭声光报警的指令。
在程序端,我们可以通过程序的主页面实时查看设备所在地的天气情况,以及实时查看家居环境中的温度、湿度和光照度数值情况,并且可以实现远程监测和远程控制客厅灯和报警器的功能,程序端进入界面与接收到服务器数据如图6-5,6-6所示。
图 2-1 射频识别技术原理图
Fig.2-1 Radio Frequency Identification Technology Principle Diagram
读写器一般与计算机配合使用以实现对 RFID 卡的识别和对数据信息的管理。它一般由控制单元,高频通讯模块组成,一般与天线组合使用才能收发信息。而射频卡则是一种无源的应答器,主要有一块集成电路芯片和天线组成,如图 2-1 所示,其内部结构包括射频前端,逻辑控制和存储器,同时也被称为应答器或电子标签[3]。
所谓的智能家居,归根到底还是为了住户的服务,旨在为住户提供更加舒适方便、智能协调、安全环保的居家环境。而随着互联网的快速发展,物联网的应用和普及,在结合网络技术的多样化,智能家居系统的配置显得更加复杂,从而为住户提供的内容也将越来越多样化。现代化的智能家居系统包括家庭电器设备监控系统、防盗报警系统、紧急求助系统、集中供暖供冷系统、网络接入系统、对讲系统、远程抄表系统等等。智能家居系统是一个宽泛的概念,原则上一切能让家居生活更加智能、便捷、安全的设备和系统都可以归到智能家居的范畴中。在智能家居的发展方面,不同国家先后提出了一些不同的设计方案。比如新加坡,早期家居智能化系统包括:家居设备控制、监控系统、安防报警系统、宽带网络接入、三表抄送、可使对讲系统、智能布线箱等。随着科学技术的发展,我们步入了数字化、网络化、智能化的新社会,现如今的智能家居系统拥有的配置越来越丰富。
RFID 射频卡是一种无源的电子设备,其运行需要的能量来源是由读写器发送出可识别的射频脉冲信号,射频卡在接收到信号后产生相应的感应电流。而其识别的准确性,识别距离,响应时间等是由射频卡能否完整准确的接收脉冲信号所决定的。在读写器读取信息成功后往往会将信息传入计算机中进行数据处理和存储。
同时,读写器根据使用的设备或者应用的技术不同可以是读或者读/写设备,是射频识别系统的数据交互和信息处理中心。读写器和应答器之间一般采用半双工通信方式进行信息交互,同时读卡器通过耦合给无源应答器提供能量和时序。而应答器是射频识别系统的信息载体通常以卡片形式出现,大多数射频卡是由耦合原件如线圈、微带天线和微芯片组成的无源单元。
2.1.2 射频识别系统内部结构
射频识别系统的内部结构如图所示,主要由三大模块组成:收发模块,控制模块和天线。其系统结构如图 2-2 所示。
图 2-2 射频识别技术系统结构图
Fig.2-2 Structure of Radio Frequency Identification System
从结构图中可以看出存储器位于射频卡中,它的存储容量由不同设备和技术决定,从几比特到几千比特之间不等,其数据的存储类型分为即时性数据和持久性数据。其中,即时性数据是指写在可重写的存储器内用以存储用户身份信息等一系列数据的可修改数据。而持久性数据是指数据存在于 RFID 卡中不可修改的存储器中用于唯一标识身份的序列号,该序列号在射频卡初始化时就写入其中,一经绑定无法更改。读写操作的实现是由射频卡根据读写器发出的射频脉冲信号进行实时的信息更新修改。读写器与射频卡中均配有控制单元,读写器的控制单元通常用于完成数据处理功能,为射频卡发送工作指令。射频卡中的控制单元用来控制射频卡完成对接收到信号的译码,控制读写器执行命令和控制读写数据等功能。计算机的功能则是向读写器发送指令,完成与读写器之间的数据交换。
2.2 ZigBee 技术
ZigBee 技术基于 IEEE802.15.4 标准,是一个拥有双向无线通信技术的低功率局域网协议[5]。由于其低复杂度,近距离,低速,低功耗和低成本的特点,ZigBee 技术通常用于短距离,低功率消耗和低传输速率的无线传输设备中,以及周期性数据典型应用的各种电子设备之间的数据传输,间歇数据和低反应时间数据传输中[6]。该技术的特点决定,该技术非常适合于短距离无线控制命令的相互作用。本次设计所涉及的门锁控制电路就满足这种要求。首先 Zigbee 技术是一种拥有高可靠性的无线数据传输网络,在由 ZigBee 模块组成的局域网中,每一个 ZigBee 网络数据传输模块之间都可以进行信息传输,一个发送模块可同时对应多个接收模块,以实现操纵多种外接设备。理论上来说可以通过多个模块相连组成庞大的通信网络。总而言之,ZigBee 技术作为一种逐步兴起的近距离无线局域网通信技术弥补了低成本、低消耗和低传输速度的无线通信市场的空缺,在当今电子信息市场上广泛应用,其成功普及的主要因素并非该技术本身的特性,而是其方便,灵活的多种工作模式以及丰富而广泛的应用领域。
2.2.1 ZigBee 协议总体架构
ZigBee 技术在功能实现方面,与其他传统网络结构一样都采用了分层模型结构,这种模型使得在 ZigBee 技术实际应用时更加清晰明了的划分好各层在协议中所起的作用。各层之间分工明确,每层都有各自的功能,最终通过将各模块集合在一起实现整体功能。
ZigBee 协议总体架构如图 2-3 所示。
首先,ZigBee 技术是一种专门为低速率控制网络制定的标准无线网络传输协议。它在
物理层和数据链路层上采用了 IEEE802.15.4 协议标准,并在此基础上进行了完善和扩展。
其网络层、高级应用规范接口(API)都是由 ZigBee 联盟制定的。从图 2-3 可以看出 ZigBee 协议与其他网络通信协议一样采用的是分层模型,不同应用层分别对应不同的功能,在整个协议中划分明确。ZigBee 协议由高层应用层、应用支持层、网络层、数据链路层以及物理层共同组成。
图 2-3 ZigBee 协议总体架构
Fig.2-3 Overall Architecture of ZigBee Protocol
2.2.2 ZigBee 技术优势
在科技飞速发展的今天,人们无线传输技术领域已经有了较大的成就,各种无线传输
技术层出不穷。但是,目前应用最为广泛的无线传输技术依然稳稳的被 ZigBee 技术占据。它之所以能够从众多技术中脱颖而出是因为其具有如下集中优势。其一,在功耗方面, ZigBee 模块具有极低的电能损耗,在低功耗状态下,仅需极低的电量就可以维持很长时间的运作。其次,结构简单,设备规模小巧,可以广泛应用与家庭,学校等公共场所。最重要的是本次设计所选用的 RFID 射频识别技术也是一种无线自动识别技术.与 ZigBee 技术配合使用两者相辅相成,从识别到控制均可以通过无线传输,使得在设备实际安装上拥有更大的发展空间。
3 总体设计
3.1 总体设计方案
本文所设计的门禁管理系统上、下位机系统能够满足数据处理,发出指令,管理人员
信息、数据的无线传输、整体系统控制的需要。系统整体是基于 RFID 射频识别技术和
ZigBee 无线通信技术组成的软硬件结合的门禁管理系统。整个系统包含:系统管理、操作人员管理、以及门禁设备这 3 个部分。其中每个部分又何以细分出多个功能模块。本设计以基于 CC2530 为核心的 ZigBee 模块作为控制核心,使用两个 ZigBee 模块分别作为信号的发射端和接收端以此实现远程的对门锁电路进行控制。通过 RFID 高频读卡器对来自高频 RFID 卡的信息与数据进行读取和判断,将获取的 RFID 卡的唯一信息传入计算机后台程序中,接着系统管理员在后台登陆管理系统,获取将卡片信息写入 SQL server 数据库中由系统管理员对访问人员信息进行管理维护。系统管理员可以直接录入访问人员信息,也可根据计划进行实际申请开门的情况录入申请人的信息。根据需要绑定的 IC 卡所对应的唯一编号来进行绑卡操作,并录入卡片信息,此时实现绑卡操作的 RFID 卡将可以被系统识别控制电机转动实现开门过程的模拟。系统管理员在软件方面还可以打开人员管理界面,选中想要调整的卡片信息,在进行添加或删除后,进行保存。此时删除掉的 RFID 卡编号将对应 RFID 卡,此卡将不再拥有开门权限。除了刷卡开门,管理系统还应实际需求给予后台系统一定的权限,系统管理人员在后台可控制是否批准已录入信息的卡片生效,并且可以通过软件系统直接控制开门,系统管理员权限大于 IC 卡持有者可禁止其进入。生效的 IC 卡将可以通过门禁系统,无效卡系统将提示非法卡。其总体结构如图 3-1 所示。
图 3-1 门禁管理系统系统总体结构图
Fig.3-1 General structure diagram of access control management system
3.2 系统硬件总体设计
3.2.1 系统硬件结构
门禁管理系统硬件结构搭建如图 3-2 所示,本系统初步将硬件部分设定为使用 RFID 高频读卡器和高频 RFID 卡作为系统的核心部件,CC2530 作为 ZigBee 模块上应用的片上系统解决方案,外接的电机作为模拟门锁的设备,白炽灯泡作为照明设备,以实现一个完整的门禁管理系统。其中,射频读写器是系统的核心,主要由射频读写电路,主控电路,天线耦合电路,以及天线等共同组成,用来完成对射频信号的读取和获取数据的传输,以实现对 RFID 卡信息的读取功能。ZigBee 模块分为发送模块,接收模块,天线,继电器以及外接设备共同组成,实现了门锁电路的远程控制。本系统的光照度传感器BH1750的工作温度为-40℃至85℃,光照度的数据范围为0至65535Lx。对室内环境光照度的监测功能进行测试,可以采用手电筒来改变环境光照度。在我们不进行任何操作时,OLED模块显示实时的环境光照度(Light)为70.9 Lx;当我们用手电筒照射光照度传感器时,OLED 模块显示的实时环境光照度(Light)数值迅速升高到2517 Lx。
图 3-2 门禁系统硬件搭建结构图
Fig.3-2 Hardware structure diagram of access control system
3.2.2 系统硬件方案设计
图 3-3 系统硬件设计方案
Fig.3-3 System Hardware Design Scheme
此次设计的门禁管理系统的硬件部分主要应用了以上几种设备,首先读卡模块由读卡器和射频卡组成,射频卡的运作能量是由读写器发出的射频信号提供的,具体原理是射频卡接收到来自读写器发出的脉冲信号后将产生感应电流并以此为能量发送出存储在卡片中的信息给读卡器。读卡器将对信息进行处理后发送给上位机中的门禁管理系统进行相关的数据处理。紧接着完成数据后由下位机发送指令信号给 ZigBee 模块的发送模块,发送模块接收到指令后向接收模块发送信号,由接收模块接收到指令后通过继电器控制步进电机与白炽灯泡的开关以实现开门动作。系统硬件设计方案如图 3-3 所示。系统的核心部件有:
(1)ZigBee 模块
本系统使用到的 ZigBee 模块采用的是 CC2530 片上系统解决方案,该模块可以通过多个模块组成强大的网络,实现物联网技术。它集成了 51 单片机内核,结合了性能优异的 RF 收发器,业界标准的增强型 8051 CPU,系统闪存可通过编程控制,具有 8-KB RAM 和许多其它丰富的功能。与此同时 CC2530 具有可灵活调整的运行模式,使得它可以适配不同功耗要求的系统。可以在短时间内完成模式的切换,在不影响系统功能的条件下进一步降低了能源的消耗。
(2)高频读卡器
本此设计中采用为 RFID 高频读卡器,该射频卡工作于 13.56M 频段,此频段属于高频 HF 频段。同时读卡器芯片为 FM17520 芯片,该芯片具有较低的工作电压,极快的通讯速率,和强大的通讯能力等特点,内部高度集成了模拟调制解调电路,在少量外围电路的辅助下即可实现读卡系统的运行[7]。
(3)直流电机
直流电机是的原理是将提供的电能转化为可对外进行输出的机械能,相对于其他电机具有良好的气动特性和其他电机没有的调速能力。往往被应用于高开关频率、低功耗的电子系统中,具有更便捷的控制方法和低成本。性能稳定,力矩大声音小。
(4)无线传输
系统的无线信息传输功能使通过 RF 内核控制模拟无线模块实现的,它集成在 ZigBee 模块上,与其他外围电路共同组成了主控电路。主控模块与接收模块之间的信息传输就是通过此收发器实现的,它两模块之间提供了一个无线通道,这使得可以模块之间指令传输,状态读取得以实现。通过 RF 收发器,才可以使得 ZigBee 模块实现远程数据传输。作为无线信息传输的核心,该设备还具有电流消耗低,支持节能模式,支持专用的无线协议等特点。
3.3 系统软件总体设计
在项目开始的阶段首先要熟悉市面上已有门禁系统的业务流程,然后采用了面向对象的开发方法将实体对象抽象成计算机可以识别操作机器语言,将需要实现的功能封装成各种类以便在程序编写时方便调用。本次系统开发主要采用 Microsoft Visual Studio 2015 专业版作为 C#语言的开发工具。SQL server 2008 数据库服务器端作为后台服务器,IAR 开发环境作为实现 ZigBee 技术的少些工具和调试器,底层程序通过 c 语言编写。
系统功能模块如图 3-4 所示。
图 3-4 门禁管理系统系统软件功能模块图
Fig.3-4 Software Function Module Diagram of Access Control Management System
3.3.1 上位机软件设计
本设计中需要 PC 机作为系统的上位机向下位机发送操控命令。本次上位机的软件使用 Microsoft Visual Studio 2015 专业版作为开发工具,在设计实现对系统下达操控命令的同时还实现了人机交互页面方便管理人员管理。数据处理方面使用到了 SQL server 2008 数据库服务器端作为后台数据的处理工具。上位机和 ZigBee 模块通过串口通讯传输数据,
通过程序对其端口的参数进行设置完成上下位机的数据传递。上位机软件程序流程如图
3-5 所示。
图 3-5 上位机软件程序流程图
Fig.3-5 Upper Computer Software Program Flow
3.3.2 下位机软件设计
下位机软件主要实现执行模块的控制,此次设计中 ZigBee 模块作为门禁管理系统的下位机,一共需要两个独立的模块分别作为发送模块和接收模块,使用 IAR 开发环境作为实现 ZigBee 技术的编译环境和调试器,底层程序通过 C 语言编写,系统供电之后开始对各个模块进行初始化,设置点对点通讯地址。下位机软件流程如图 3-6 所示。
图 3-6 下位机软件程序流程图
Fig.3-6 Flow chart of software program of lower computer
3.4 数据库设计
本次设计采用的数据存储方法是通过数据库实现的,采用的数据库设计管理软件是 Microsoft SQL Server Management Studio。数据库的设计是用来存储整个系统中所用到的数据信息,在数据库中可以完成对用户信息的增删改查、存储打卡时间以及管理员登陆权限的设置。
因此,本次数据库设计中数据库名为 mylotDB 且在此库种需要建立 3 个表。
3.4.1 关系模式设计
本次设计总共使用到了 3 个表,分别来存储需要的管理的信息。分别为系统管理员
表,用户管理表和打卡信息表。其中,系统管理员表拥有三个属性,分别为管理员帐号,密码和管理员灯基,管理员账号作为主键可唯一标识候选关键字。用户管理拥有卡号,姓名,读卡日期三个属性,其中卡号作为主键唯一标识其他关键字。打卡信息表中有两个属性,卡号和打卡时间,卡号作为主键唯一标识其他关键字。其关系模式如下所示。系统管理员(管理员账号,密码,用户等级)用户管理(卡号,持卡人姓名,读卡日期)打卡信息(卡号,打卡时间)
3.4.2 物理表结构设计
(1)系统管理员表
系统管理员表主要显示管理员帐号,密码,用户等级,和它们所对应的列含义,列标识,类型,是否为空的具体定义。见表 3-1。
表 3-1 系统管理员表
Table 3-1 System Administrator’s Three-Line Table
列含义 列标示 类型 是否为空
管理员帐号 AdName String 否
密码 Adpassword String 否
用户等级 Adlevel String 否
(2)用户管理表
用户管理表主要显示用户包括的卡号,持卡人姓名,读卡日期,及它们所对应的列含义,列标识,类型,是否为空的具体定义。见表 3-2。
表 3-2 用户管理表
Table 3-2 User-managed three-line tables
列含义 列标示 类型 是否为空
卡号 UsID String 否
持卡人姓名 UsName String 否
读卡日期 UsCreateTime Data 否
(3)打卡信息表
打卡信息表主要显示用户包括的卡号,打卡时间,及它们所对应的列含义,列标识,类型,是否为空的具体定义。见表 3-3。
表 3-3 打卡信息表
Table 3-3 Card Information Table Three Line Table
列含义 列标示 类型 是否为空
卡号 UsID String 否
打卡时间 UsSignlnTime Data 否
4 系统硬件设计
4.1 系统硬件设计原则
一个完整的系统设计中,硬件设备是支撑系统运行的核心基础设施。因此,硬件系统的性能直接关系到系统整体的质量。由于本次系统的复杂性和特殊性,对硬件的选形主要依据以下原则。
1.高扩展性
一个完整系统的开发与建设往往是一个持续发展的过程,随着系统应用范围的不断扩展以及业务总量的增大,无法升级改进的系统必然会遭到淘汰。用户的数量也可能急剧增加,这将使得原有的部件无法满足日益增长的需求,因此,要求系统可以在原有的基础上拥有较高的可扩展性。
2.安装快捷,操作简便
优秀的系统应该面向的大部分用户人群,而飞部分专业人士。因此,在系统硬件设计时应充分考虑到硬件设施的安装和操作。快速的安装和便捷操作是系统恩否被广泛应用的重要因素。操作方便应从用户的视角出发,开发出满足用户需求下最清晰便捷的操作流程,如此才能为系统的推广和应用打下良好的基础。
3.高可靠性
硬件的可靠性决定了系统的使用周期的长短和出现异常情况的概率,高可靠性的系统能够在不出现粗无异常的情况下长期频繁运行。因此,在选取硬件设施时要尽可能选用可靠性高的产品。
4.性价比高
在满足用户需求并符合上述原则的前提下,良好的性价比是关键。硬件的种类繁多,
性能与价格也差别巨大,但在选取时不能仅仅关注价格或者性能单独一方面,而是需要根据系统的需求综合考虑,在性能和价格中找到平衡点,选择最合适的部件。控制系统的声光警报通过STM32最小系统开发板自带的PC13指示灯和蜂鸣器来实现声光报警的任务,采集到的温度、湿度、光照度模拟信号经AD转换后将显示到OLED液晶上,然后根据系统预先的设置温湿度和光照度的报警阈值,当实时检测值超过控制系统阈值后,触发报警程序,STM32单片机将控制蜂鸣器和LED灯进行声光报警提示。测试的时候,我们将系统温度报警下限阈值设定为18℃,温度报警上限阈值设定为30℃。湿度报警下限阈值设定为20%,上限阈值设定为70%。光照度报警下限阈值设定为100 Lx,上限阈值设定为1000Lx。当三者的实时监测数值都没有超过报警预设阈值时,控制系统未发出声光报警信号;当三者其中之一的数值超过预设报警阈值时,系统将立即发出声光报警提醒(蜂鸣器蜂鸣,指示灯闪烁),声光报警功能顺利通过测试。
4.2 核心部件选型
4.2.1 ZigBee 模块
系统的核心部件选用的时 CC2530 无线射频单片机,CC2530 是用于 2.4-GHz IEEE 802.15.4、ZigBee 技术的一个真正的片上系统解决方案。它可以以最小的消耗和代价组合成强大的局域网系统。此节点集成了 Flash 存储器、MCU 和 ZigBee,RF 内核以及其他外围电路。在本次设计中选用 CC2530 无线射频单片机是因为它具有通用的 MCU,低价的系统内核以及高性能的开发系统,无疑让其成为本次所选用的 ZigBee 模块的最佳解决方案。从以上介绍中可以看出,CC2530 片上系统解决方案十分强大,是完成此次设计的最
优选择。
表 4-1 CC2530 无线射频单片机性能参数
Table 4-1 Performance Parameters of CC2530 Radio Frequency Single Chip Microcomputer
参数名 参数值
工作电压 2 V-3.6 V
闪存块大小 256 KB 闪存
系统内核 8051 微控制器内核
发送模式(RX)功耗 24mA
接受模式(TX)功耗 29mA
A/D 转换 12 位 ADC,8 路输入
通用 I/O 口 21 个通用 I/O 引脚
工作环境温度范围 TA -40℃ - 125℃
RF 频率范围 2394 - 2507 MHz
4.2.2 高频读写器
本次选用的读卡器为由北京新大陆国际有限公司拼装而成的高频 RFID 读写器,内置 FM17520 芯片,该芯片是一种非接触卡的读卡机专用芯片,读写器也是一种非接触式 IC 卡读写器,其读卡过程的安全与效率优于大部分其他芯片,所以被广泛应用于各个领域。例如目前市面上常见的公交卡,门禁卡等等采用的都是这种读写设备。该读卡器具有 USB 通信协议可与任何具有 RS232 串口和 USB 驱动的电脑或终端连接,用于读写射频卡上的数据信息管理。其工作的适用温度范围为 20℃到 60℃,卡触点使用次数可达到 10 万次之高。在读卡时将发出射频信号,由读卡器为射频卡提供运行能量,其电流大小为 0-130mA。在本设计中运作时需要连接 PC 机,其与 PC 机的通讯类型通过 USB 接口实现信息传递,同时采用 0.6 微米 CMOS EEPROM 工艺,支持 ISO14443 typeA/B 协议,支持 MIFARE 标准的加密算法[8]。在状态显示上通过连接在外壳上的 LED 灯来指示电源开关或者通讯状态。在其使用特性上,生产厂家提供了通用接口函数库,可支持多种操作系统和语言开发平台,支持在线升级功能,同步支持符合 ISO14443TypeA,TypeB 的非接触智能卡,如:
Mifare s50,Mifare s70、MF1ICL10、Mifare Pro、华虹 1102 等非接触式射频卡。高频读卡器参数见表 4-2。
表 4-2 高频读卡器性能参数
Table 4-2 Performance Parameters of High Frequency Card Reader
参数名 参数值
工作电压 5V
工作频率 13.56MHz
通讯协议 ISO1443TypeA/B
通讯类型 USB(无驱)
给卡提供电流 0-130mA
卡触电使用次数 10 万次
通讯速率 9600-38400bps
工作环境温度范围 TA 20℃-60℃
支持卡类型 符合 ISO1443TypeA/B 的非接触卡
4.2.3 射频卡
本设计中采用的高频 RFID 卡为 S50 卡,是一种采用 NXP MF1 IC S50 制作的非接触智能卡,通常简称 S50 卡或 Mifare 1K,符合 ISO14443A 标准,4 或 7 字节 UID[9]。该卡片在使用时无需外接电源,其卡片上的工作能量来源于读写器天线发送的无线电载波信号传输到卡片上天线而产生的感应电流,通常为 2V 左右,足以驱动卡片实现数据管理。其工作频率 13.56MHZ。内置 1k 的数据存储区,可向 IC 卡中存取不超过 1k 的数据,且拥有密钥保护安全性相对较高。现如今已经被公交卡,门禁卡以及各大公司的安放系统广泛应用。
对于 S50 来说,具有内存大小为 1KB 的在线可擦除存储器,数字控制单元共同组成。该存储器通常简称为 E2P 存储器,其内部存储结构是将 1KB 大小的内存分为 16 个扇区空间,每个扇区为 4 块,每块 16 个字节,以块为存取单位实现的。在进行访问控制的时候,其范文空间以扇区为单位,单独访问每个独立的扇区,并且每个扇区拥有独立的密码,通常读卡器识别的是卡片的序列号,因此序列号作为区分每个卡片的唯一标识必然具有唯一的属性。同时还具有防冲突机制,在读卡期间可避免其他卡对他的干扰。同时内部的加密控制逻辑和通讯逻辑电路可用来实现卡与读写器的无线通信。
本次设计所用到的高频 RFID 卡的参数见表 4-3。
表 4-3 高频 RFID 卡性能参数
Table 4-3 Performance parameters of high frequency RFID card
参数名 参数值
感应电流 0-130mA
工作频率 13.56MHz
芯片类型 NXP Mifare 1 IC S50
UID 4-7byte
存储容量 1KB
读写距离 0 ~ 100mm
通讯速率 106Kbps
工作环境温度范围 TA -22℃ ~ +56℃
执行标准 ISO14443A
4.2.4 微型有刷直流电机
本次设计选用直流有刷电机作为门锁控制电路的模拟门锁部件,通过门锁控制电路控制电机转动停止来模拟门禁的开关。作为门锁模拟电机转速不宜过快,因此选用的这种有刷直流电机拥有可调速的特性,转速从 10-600 转不等,工作电压为直流 12/24V。具有规模小,扭力大,转速低,并且拥有可调速的特性。该直流电动机可以在高负载状态下下匀速稳定的运作,而且拥有较大的调速范围,适用于需要个中途改变电机转速的情况。需要注意的是当线圈边处于不同磁场方向的条件下时,流过线圈中的电流方向会不断变化。若想解决此问题必须为电机加装变向器,在电刷的配合下可以使得线圈中的电流保持流向不变,如此电机就可以匀速的保持一个方向低速转动,符合本系统的要求。直流电机性能参数见表 4-4。
表 4-4 直流电机性能参数
系统上电后,首先进行设备初始化,各模块以及串口初始化完成后,ZigBee模块将通过程序中预设的账号名称及密码连接到服务器,然后系统执行主程序,各传感器每秒采集一次数值并提供OLED模块实时显示,系统每五秒向服务器发送一次相关的信息,其中包括温度、湿度、传感器数值,以及客厅灯LED和报警器BEEP的工作状态。并且软件我们可以向设备下发关灯和关闭声光报警的指令。
Table 4-4 Performance parameters of DC motor
工作电压 12V
转速 10-600r/min
扭矩范围 0.64mNm-115mNm
功率 15W
是否调速 可调速
出轴尺寸 6*16MM
电源方式 直流
4.2.5 射频收发器
射频简称 RF,射频收发器是具有一个 IEEE 802.15.4 兼容无线收发器,集成在 CC2530 无线射频单片机上。本系统需要两个独立的模块分别作为发送模块和接收模块,两个模块都集成了 RF 内核控制模拟无线电模块以达到发送和接收的功能。两模块之间的信息的传输是通过一种高频的变化的电磁波,当电磁波频率高于 100kHz 时,此种电磁波就可以以空气作为介质进行传播。这种具有远距离传输能力的高频电磁波称为射频。射频收发器性能参数见表 4-5。
表 4-5 射频收发器性能参数
Table 4-5 Performance parameters of radio frequency transceiver
参数名 参数值
工作电压 2.2V-3.8V
传输速率 115.2 kbps-256 kbps
通讯标准 IEEE 802.15.4
休眠模式电流 0.3mA
接收(RX)模式 11 mA
发送(TX)模式 15 mA
4.2.6 电机驱动模块
本次设计采用的 ZigBee 模块是一种集成电路芯片,其内部各模块运行的供电电压为 2 到 3.6V,很明显这种集成的电路芯片的驱动能力有限,因此在实际应用中若想驱动电机需要专门的电机驱动电路来控制外接设备,就需要通过电机驱动模块驱动外设,因为电机的驱动不仅涉及到控制部分,同时还有功率驱动部分,所以往往与继电器配合使用,可以看成一种必要的电机保护电路,这也是为了电机以及整个 ZigBee 模块的可靠性和安全性
考虑。
表 4-6 ULN2003A 电机驱动模块性能参数
Table 4-6 Performance parameters of ULN2003A motor drive module
参数名 参数值
输出电流 500mA
工作温度 -40℃ ~ +85℃
存储温度 -55℃ ~ +150℃
输出击穿电压 50V
工作电压 12V
4.2.7 ZigBee 模块专用继电器
继电器模块是用来完成模拟开门动作的电机控制模块,本次设计采用的是 ZigBee 模块专用继电器,该继电器可以在干扰较大的场合应用,其特点是该继电器使用两种完全隔离的电源系统进行供电,主控模块和继电器都有独立的电源进行供电,这种供电方式使得继电器的抗干扰性大大增强,确保继电器在输出高低电平时不会对 ZigBee 模块的信号回路产生影响,此外还可以随意切换高低电平的驱动模式,更加安全,灵活的对外设进行控
制。
表 4-7 ZigBee 模块专用继电器性能参数
Table 4-7 Performance parameters of special relay for ZigBee module
参数名 参数值
工作电压 5V
输出方式 单路输出
4.3 硬件电路设计
4.3.1 主控制模块电路
本系统的主控模块为 CC2530 无线射频单片机,此单片机系统的最小系统包括
CC2530 芯片,复位电路,时钟电路,串行接口电路和收发电路。
CC2530 芯片在系统架构上沿用了以往 CC2430 芯片的整体架构,同时做出了一些更新与优化,在单个芯片上整合了射频(RF)前端,内存,和微控制器。它使用的 8051 CPU 内核是一个单周期的 8051 兼容内核。整个 ZigBee 模块共有五个复位源,通过一些操作可以产生复位事件,例如,系统在接通电源后会立即产生一个复位信号完成系统的初始化,达成上电复位的条件。或者在 ZigBee 模块上拥一个 RESET 按钮,在系统运行的任意时刻按下此按钮会对模块强制发送一个低电平,使得 RESET_N 管脚输入引脚为低。在完成复位条件之后程序将自动初始化。与此同时,CPU 程序执行将从 0x0000 地址开始,I/O 引脚配置为带上拉的输入信号,并且所有外部设备寄存器也将初始化为各自的复位值。时钟电路控制着 ZigBee 模块的工作频率,整个系统的数字信号都是按照一定的频率逐步进行,而时钟电路的作用就是电路中而部分的频率达到统一。一般情况下,时钟系统的核心是一个稳定的振荡器,在 ZigBee 模块中通常使用到的是 16MHzRC 振荡器或者 32MHz 晶体
振荡器[10]。CC2530 无线射频单片机芯片的引脚见表 4-8。表 4-8 CC2530 芯片的部分引脚功能表
Table 4-8 Part Pin Function Table of CC2530 Chip
引脚名称 引脚 描述
AVDD1 28 2V-3.6V 模拟电源连接
DCOUPL 40 1.8V 数字电源去耦,不使用外部电路供应
DVDD1 39 2V-3.6V 数字电源连接
GND - 接地
P0 组 0-7 11-19 数字 I/O 端口,4mA 输出驱动能力
P1 组 0-1 9、11 数字 I/O 端口,20mA 输出驱动能力
P1 组 1-7 5-8、37、38 数字 I/O 端口,4mA 输出驱动能力
P2 组 1-2 34、35 数字 I/O 端口,4mA 输出驱动能力
P2 组 3-4 数字 I/O 端口,32.768kHzXOSC
RESET-N 20 复位活动到低电平
XOSC-Q1 22 32MHZ 晶振引脚 1 或外部输入时钟
XOSC-Q2 23 32MHZ 晶振引脚 2
RF-N 26 RFI/O,RX 期间负 RF 输入信号到 LNA
RF-P 25 RFI/O,RX 期间正 RF 输入信号到 LNA
RBIAS 22 参考电流的外部精密偏置电阻
CC2530 微控制器采用 QFN40 封装,QFN40 表明整个芯片上集成了 40 个管脚。其中,
21 个为数字 I/O 端口,需要注意的是 P0 和 P1 是 8 位端口,P2 仅有 5 位可以使用。这 21 个端口均可以通过编程进行配置。而在实际编程过程中,在 P2 端口的 5 个引脚中,有 2 个需要用作仿真,有 2 个需要用作晶振,在 CC2530 的开发中真正能够使用的只有 17 个引脚。
主控制电路芯片电路引脚如图 4-1 所示。
图 4-1 CC2530 芯片的引脚图
Fig.4-1 Circuit Diagram of CC2530 Chip
4.3.2 通信接口电路
该系统上位机与下位机的数据通信使通过 RS-232 通讯接口实现的,是一种异步传输标准接口,该接口集成在 ZigBee 模块的主控模块上,通过 MAX232 芯片以及配套标准接口电路控制。在本设计中使用的是串口转 USB 接口的数据线,此实需要在 PC 机上安装驱动程序,这样才能将 USB 信息转化为 RS232 信息,实现对主控模块发送指令的功能。
其芯片引脚图说明见表 4-9。
表 4-9 通信接口电路部分引脚功能表
Table 4-9 Communication Interface Circuit Part Pin Function Table
引脚名称 引脚 描述
C1+ C1- 1、3 外接电容端
C2+ C2- 4、5 外接电容端
R1IN R2IN 13、8 RS232 电平信号接收输入端
R1OUT R2OUT 12、9 TTL 电平信号输出端
T1IN T2IN 10、11 TTL 电平发送输入端
T1OUT T2OUT 14、7 RS232 电平信号接收输出端
V+ 2 5V 电源
V- 6 接地
图 4-2 通信接口电路图
Fig.4-2 Communication Interface Circuit Diagram
如图 4-2 所示,引脚 1、2、3、4、5、6 以及电容共同构成了供电电路,标准的 RS232 串口的需要标准的工作电压,因此上图中所构成的供电电路就可以产生满足其要求的正负两种电压,为 RS232 串口电平供电。整个电路含有两个数据通道,其数据传输所对应的方向不同,需要将 TTL/CMOS 数据转化为 RS232 数据时,数据需要从 T1IN、T2IN 输入从 T1OUT,T2OUT 传输到串口,需要将 RS232 数据转化为 TTL/CMOS 数据时数据从 R1IN,R2IN 输入,从 T1OUT,T2OUY 输出,通过这两种数据通道完成了计算机和主控模块之间数据类型的传输。VCC 和 GNG 为供电引脚。
4.3.3 LED 模块电路
芯片上集成了 4 个 LED 灯,在系统中 D5,D6 灯用于系统运行提示灯,当设备初始化正常时 D5,D6 灯亮起,D3,D4 灯用于提示系统运行,当系统判断合法卡或给出开门信号时,由驱动电路控制门锁模拟电机运行,同时 D3,D4 灯亮起,用于提示系统处于开门进程中。
图 4-3 LED 模块电路图
Fig.4-3 Circuit Diagram of LED Module
从图 4-3 中可以看出,P1 的 0、1、3、4 引脚分别连接着 4 个 LED 灯。通过设置控制引脚状态,来控制 LED 灯的开关。
4.3.4 高频读卡器模块电路
本设计中采用的是 FM17520 芯片,该芯片是由复旦微电子有限公司设计的基于 ISO14443 标准的非接触卡读卡机专用芯片。其内部是高度集成的模拟电路,最外层仅需要少量的外围电路,工作距离可以达到 10CM,支撑 ISO14443TYPEA / B 协议。它也有内部的加密单元,其中包括 512 字节 EEPROM 和 64 字节 FIFO。数字电路具有 TTL / CMOS 电压操作模式,有一个可编程定时器,中断处理器和和串行输入输出端口。其电路部分引脚说明表见表 4-10。
表 4-10 高频读卡器部分引脚功能表
Table 4-10 High Frequency Card Reader Part Pin Function Table
引脚 引脚名称 描述
1 OSCIN 晶振输入:fosc13.56MHz
2 IRQ 输出中断请求信号
3 MFIN 串行输入:接收串行信号
4 TX1 发射口 1:输出 13.56MHz 信号
5 TVDD 发射器电源:提供 TX1,TX2 输出能量
6 TX2 发射口 2:输出 13.56MHz 信号
8 CO 固定接低电平
17 DVDD 数字电源
18 AVDD 模拟的那远
19 AUX 输出模拟测试信号
21 RX 接收外部天线耦合过来的 13.56MHz 信号
22 VMID 外接 68nF 电容
23 RSTPD 高电平时复位内部电路
24 OSCOUT 晶振输出
读卡器通过 USB 接与 PC 机相连,由 PC 机输出 5V 电压完成供电,如图 4-4 所示芯片右侧为供电电路,ADVV 和 AVSS 分别为 OSCOUT,VMID,RX,AUX 供电,TVDD 和 TVSS 为 TX1 和 TX2 供电,其他管脚则由 DVDD 和 DVSS 供电。电路左侧为信号发射与接收部分,读卡芯片通过 TX1 和 TX2 将 13.56MHz 的信号发射出去,为了使信号的发送和更稳定的接收,该电路的整个传输部分应该使从 Tx1 和 Tx2 的两个信号的引线长度尽可能一致。与此同时,读卡器可被细分为 EMC 滤波电路,谐振和阻抗匹配电路,和线圈,RX 和 VMID 形成的接收电路。该图中的电容器用于稳定内部固定参考电压。R1 引入该参考电压提供给 RX 引脚,从而使芯片的直流电压被加到与固定的 DC 电平,并通过调整 R1,
R2 的电阻可调节由 RX 接收的信号的振幅,从而使芯片读取距离是最佳的。右侧 ANT 为线圈部分,材质为 PCB 线圈或铜线绕制。
EMC 滤波电路由 L1,L2,C1-8 电容,共同组成,此部分同样需要上下对称,这样使得在
信号发射时拥有最佳性能。
图 4-4 高频读卡器电路图
Fig.4-4 Circuit Diagram of High Frequency Card Reader
4.3.5 ULN2003A 电机驱动模块电路
本次设计中所采用的电机驱动电器为 ULN2003A,ULN2003A 是一个 7 路反向器电路,即当输入端为高电平时 ULN2003A 输出端为低电平,当输入端为低电平时 ULN2003A 输出端为高电平,总而言之,其主要作用就是放大驱动电流。驱动电流经过 ULN2003A 放大后驱动继电器控制步进电机以及白炽灯泡工作。电机驱动继电器电路引脚说明见表
4-11。
表 4-11 ULN2003A 电机驱动模块部分引脚功能表
Table 4-11 ULN2003A Motor Drive Module Part Pin Function Table
引脚名称 引脚 描述
IN 1-7 1-7 CPU 脉冲输入端,端口对应一个信号输出端
GND 8 接地,电源负极
COM 9 接 12V 电源,实现续流
OUT 1-7 10-16 脉冲信号输出端
其对应电路并不复杂,总共包含 7 个单元,每一个单元在驱动时驱动电流最大可为 350mA,从 1 管脚输入,16 管脚输出,8 管脚 GND 接地,9 管脚 COM 接 12V 电源,这是因为 ULN2003 是集电极开路输出,为了让这个二极管起到续流作用,必须将 COM 引脚接在负载的供电电源上,只有这样才能够形成续流回路。在本设计中 ZigBee 模块带有扩展接口,可通过扩展板直接与继电器连接。
图 4-5 ULN2003 模块电路图
Fig.4-5 ULN2003 Module Circuit Diagram
4.3.6 继电器模块电路
继电器内部是由线圈组成的电磁铁,当引脚通电时电磁铁通过电生磁效应吸引开关变化以接通电路。
表 4-12 继电器模块部分引脚功能表
Table 4-12 Relay Module Partial Pin Function Table
引脚名称 引脚 描述
NC 1 常闭端
GND 2 接地,电源负极
COM 3 接 12V 电源,实现续流
VCC 4 电源正极
NO 5 常开端
IN 6 通断信号输入引脚
其电路图如图 4-8 所示。
其中各引脚的连接方式如图 4-8 所示,VCC 连接外接电源正极,GND 代表地线通常接地或者参考电位为 0 的线上,IN 是通断信号的输入引脚,由驱动模块发送一个信号通过 IN 进入继电器。NC 即常闭端,COM 即公共端,NO 即常开端。一般情况下 NC 作为常闭端是紧闭的,因此在本设计中外接设备要接到 NO 接口,另一条线连接在 COM 端,若想通过控制模块驱动外设首先由控制模块向电机驱动模块发送指令,驱动模块接收到信号后向继电器发送一个低电平,同时常闭端断开,常开端开启,与 COM 端形成闭合回路,系统开始工作。当 IN 端给高电平时长开端断开,常闭端闭合,负载即停止工作,系统中止。
图 4-8 继电器电路图
Fig.4-8 Relay schematic diagram
5 系统软件设计
5.1 系统软件设计原则
软件的系统部分是连接操作界面、系统的硬件部分以及实现系统功能的重要途径,系统在软件设计开始阶段首先必须清楚软件设计基本原则。
1.可靠性
软件的可靠性是系统在运行过程中避免程序出错的能力,整个系统的工程量越大,则程序出现错误的概率就越大,同时可靠性会降低。因此要提高系统的可靠性,就需要在能够完整是实现系统功能的条件下,尽可能的优化系统的代码量,去除掉冗余的代码。这对于以后系统的升级与维护有着直接的影响。
2.可修改性
系统的可修改性决定了系统在日后的更新和维护中是否能方便快捷的修改程序,优化功能。系统的可修改性不仅仅针对开发者自身,同时也需要其他维护人员能够理解和看懂程序,这样才能被称为拥有较高的可修改性。
3.安全性
系统安全性要求程序能够保障用户信息,程序代码,操作手段等等多方面的安全性。因此需要为程序设计较为健全的管理权限,以及提高后台数据处理的能力。同时,系统本身也要能够及时修复、处理各种安全漏洞,以提升安全性能。
5.2 主程序设计
主程序是整个系统的核心部分,它囊括了系统的各个子模块,一个完整的主程序不仅仅控制着整个系统的运行流程还对系统的每个模块进行划分,这样就可以按照设定好的顺序控制执行各个模块,实现了系统的总体控制。通常我们在主程序中往往需要实现程序的初始化,界面设计,数据处理及显示,以及各个模块之间的连接和参数的传递。在本次设计中,主程序通过 Visual Studio 2015 开发工具进行编写和运行,此外,在本次系统中主程序既完成了门禁管理系统后台管理系统的设计与编写也对下位机终得主控模块进行了指令操控。
主程序流程如图 5-1 所示。
图 5-1 主程序流程图
Fig.5-1 Main program flow chart
软件部分主程序设计流程如图 5-1 所示,首先管理员用账号密码登陆系统,进入主界面,在主界面中可选择相应的读卡模块,用户信息查询模块和管理员管理模块。开启读卡模块将使系统进入读卡进程,此时其他功能将禁止使用。关闭读卡进程后用户信息查询功能和管理员管理功能才能解锁,在帐户信息还礼功能中,系统管理员可以对用户信息,管理员信息进行维护,并且可以执行手动开启门禁的操作。在信息查询功能中,系统管理员可以查询用户的进出详情。
5.3 读卡模块程序设计
读卡模块是门禁管理系统的核心模块,该系统最主要的核心内容简单来说就是实现刷
卡开门的动作。打卡操作不仅仅用于开门过程,同时在本系统中也用于信息管理操作中,通过读卡按钮可以读取卡号快速的查找用户信息。读卡过程的流程如图 5-2 所示。
图 5-2 读卡模块流程图
Fig.5-2 Flow chart of card reading module
高频读卡器通过 USB 接口与 PC 机相连,完成信息交换和供电工作。登陆软件系统后选择开始打卡将完成读卡器的初始化,此时读卡器开始寻卡系统开始判断是否有卡进入范围,此时开始读卡进程每隔一秒读一次卡。当用户操控射频卡进入读写器识别范围时,射频卡将接收到来自读写器的射频脉冲信号,接收到信号的射频卡产生感应电流,为射频卡上的信息修改操作供能,读写器将获取射频卡信息,经过处理后发送给上计算机,信息将在数据库中进行对比判别。若比对成功,表明此卡是有效卡,由上位机向 ZigBee 模块发送一个指令控制开门。若为非法卡,将可以进行绑卡模块,此时绑卡线程开启,在帮卡系统回到寻卡阶段。
5.4 开门模块程序设计
本次门禁管理系统的开门模块的设计选用的是 CC2530 无线射频单片机作为开门模块的主控模块和接收模块,该模块的驱动控制是通过在 IAR 系统开发工具上编程后烧写到单片机上完成的,在编程过程中,主片和从片分开编写,然后分别烧写到对应的模块中。
如图 5-3 为开门模块的程序设计流程。
图 5-3 开门模块流程图
Fig.5-3 Flow chart of opening module
在开门模块中设计了两个开门方法,手动控制开门和自动控制开门。自动开门即刷卡开门,打卡后先由系统判断是否为有效卡,如果系统判断有效卡,计算机则通过 RX232 向主控制模块发送一个指令,主模块接到指令后做出相应判断,然后通过 RF 内核控制模拟无线电模块发一个信号,从模块街道信号后,做出反应通过电机驱动模块向继电器发对应的高低电平,控制电机和白炽灯泡工作。而手动开门控制是通过软件界面中的开门,关门按钮向主控模块发出指令,驱动模拟电机的工作。
5.5 账户管理模块程序设计
账户管理模块是软件管理系统的核心,本设计相对于传统的门禁管理系统来说,更为新颖的地方是拥有独立的管理系统,在获取到卡的信息后存储到数据库中使得管理员可以在后台清楚的看到拥有权限的人员以及人员打卡的时间信息。
如图 5-4 就是软件系统的账户管理模块流程图。
图 5-4 账户管理模块流程图
Fig.5-4 Flow chart of account management module
首先开启软件管理系统后首先要通过帐号和密码登陆软件管理系统,系统默认的账号密码均为 admin,在登录系统后程序会对帐户进行权限的判断,分为超级管理员和普通管理员。当使用超级管理员权限登陆系统时,可以使用该系统中的全部管理功能,并且可以通过后台程序远程控制门禁系统开门。同时超级管理员可以授权新增普通管理员,但普通管理员无法对管理员信息进行管理。
5.6 查询记录模块程序设计
查询记录功能用来查询用户的打卡信息,每次有效卡成功开门后都将生成一条记录,存入数据库中,此类信息可通过该功能查询。查询记录系统流程图如图 5-5 所示。
图 5-5 查询记录模块流程图
Fig.5-5 Flow chart of query and record module
进入主界面后先判断是否开启了打卡进程,若开启则需要先关闭打卡进程查询记录按钮才会点亮,进入查询记录页面后,首先进行读卡操作,也可以手动输入卡号或姓名,读卡后系统将自动识别卡号查询出相关卡号所对应的用户信息,用户和卡属于一对一关系,管理眼只许知道任意信息即可进行查询。同时还可以按照打卡时间进行查询,一天为单位,可以查出制定日期下全部打卡用户的信息。用户信息将以表格的形式显示在界面中。
6系统的测试与运行
6.1 测试方案
1.测试原则
(1)测试的目的是依据测试结果找出系统中存在的缺陷或故障。依据系统测试的目的有如下测试原则。
(2)测试活动应从系统开发阶段进行,一直持续到整个系统编写完成,期间测试应
贯穿系统整个生命周期,且尽早进行。在系统未组装成时可以先对各部件进行单独测试。
测试时应严格的遵守测试原则,避免测试随意进行。
(3)测试用例要有预期结果和实际结果两个部分,在测试结束后将二者进行对比以获取最准确的结果。
(4)测试结果也要仔细核对,尽量避免无效测试。
(5)开发者自身测试结束后最好找第三方测试者对系统进行测试,以保证测试结果的准确性。
2.测试方法
本次需要测试的系统为门禁管理系统,该系统分为两大部分,硬件部分的门禁模拟设备和软件部分的门禁信息管理系统。因此在测试时,首先需要对两个部分分别测试,然后在将整个整个系统整合起来整体测试。
根据本程序的特性,最终决定选用黑盒测试作为系统的测试方法。黑盒测试是指在测试过程中不考虑程序内部程序语言编写问题,而是着重对系统功能进行测试,针对软件界面和功能以及硬件运行情况逐步分析。
首先进行软件测试,首先测试登陆界面,分别使用正确的账户密码和错误的帐户密码测试看是否能够登陆系统。接着进入主菜单界面测试每个按钮是否能正确运行。然后在对查询界面和管理界面进行测试,测试是否能够正确的查出信息和对用户信息进行增删改查操作。带软件流程测试完成后,对硬件部件进行测试,通过给点来测试电机是否能够转动,灯泡能否点亮。并且对读卡器和射频卡进行测试,观察能否正确识别合法卡和无效卡,和持卡人信息能否录入数据库中。
在完成各部分的测试后,将系统整体组合起来进行整体测试,首先登陆系统开启打卡线程,使用多个射频卡测试读卡器,在数据库中查找看数据是否存储成功。完成测试后关闭线程,开始测试信息查询功能,按照设定好的查询方式分别测试每种条件查询。测试结束后进行账户管理模块测试,分别测试系统的绑卡功能,管理员信息管理功能,用户数据查询功能,手动开门功能。测试系统能否正确运行。具体的测试用例将在下文中给出。
3.测试用例
表 6-1 测试用例表
Table 6-1 test case design table
模块 测试用例 操作过程及数据 预期结果 实际结果
登陆模块 输入管理员帐号和密码 admin 在登陆框中分别输入超级管理员的用户名和密码 admin 登陆成功,弹出欢迎进入的对话框 登陆成功,弹出欢迎进入的对话框
输入11
111111 输入超级管理员新增的11 用户 登陆成功,弹出欢迎进入的对话框 登陆成功,弹出欢迎进入的对话框
输入admin
111111 输入错误的密码 提示登陆不成功,用户不存在 提示登陆不成功,用户不存在
打卡模块 点击开始打卡按钮 点击开始打卡 读卡器初始化完成,发出声音提示 读卡器初始化完成,发出声音提示
查询记录模块 点击读卡按钮 将射频卡贴近读卡器,点击读卡按钮 读卡器发出声音,卡号显示在对应区域 读卡器发出声音,卡号显示在对应区域
点击查询用户 点击查询用户按钮 在界面中以表的形式显示出用户个人信息 在界面中以表的形式显示出用户个人信息
在日期选框中选择日期区间 点击日期选框,选择日期 能正确显示选中的日期 能正确显示选中的日期
点击查询管理员 点击查询管理员按钮 管理员帐号,密码权限均可正确查出 管理员帐号,密码权限均可正确查出
点击查询 输入用户名,读取卡号点击查询按钮 在界面中以表的形式显示出用户打卡信息 在界面中以表的形式显示出用户打卡信息
读卡模块 读取卡号 将卡贴近读卡器,点击读卡按钮 卡号被获取传入数据库,在界面中显示出来 卡号被获取传入数据库,在界面中显示出来
帐户设置模块 绑卡 将卡贴近读卡器,点击读卡按钮,输入持卡人姓名,点击保存 提示保存成功 提示保存成功
删除帐号 先在指定位置输入需要删除的管理员帐号,点击查
找,查找成功后点击删除账号 提示删除帐号成功,此账号无法再次登陆 提示删除帐号成功,此账号无法再次登陆
查询用户信息 先点击读卡按钮,待读取卡号后点击查询用户信息 用户信息被显示出来 用户信息被显示出来
新增管理员 先在指定位置输入需要新增的管理员帐号,点击查
找,查找若帐号不存在则,输入新密码,点击新增 管理员新增成功,新账号密码可登陆系统 管理员新增成功,新账号密码可登陆系统
查询管理员帐号 点击查询按钮 在指定位置显示出当前登陆管理员账号,切超级管理员将显示出该账户的密码 在指定位置显示出当前登陆管理员账号,切超级管理员将显示出该账户的密码
删除用户 读卡后点击删除用户按钮 该用户绑定在卡上的
信息被删除,卡变为无效卡无法实现开门 该用户绑定在卡上的
信息被删除,卡变为无效卡无法实现开门
修改密码 分别输入用户名,验证密码和新密码,点击更新密码 原密码无法登陆系统,新密码可以登陆 原密码无法登陆系统,新密码可以登陆
手动开启门禁 点击手动开启门禁按钮 点击手动打开门禁按钮 点击按钮门禁模拟点击运行,白炽灯点亮,且按钮变为手动关闭门禁 点击按钮门禁模拟点击运行,白炽灯点亮,且按钮变为手动关闭门禁
强制关闭门禁 点击强制关闭 点击强制关闭按钮 开门过程中任意时刻点击关闭均可强制关门 开门过程中任意时刻点击关闭均可强制关门
6.2 测试结果与分析
经过对硬件系统各个部件以及软件系统中每个子程序和功能界面的按钮进程的多次测试得知,首先在硬件方面,读卡器启动阶段初始化成功,指示灯也可以根据情况正确改变。且可以正确识别对应卡的权限,区分出合法卡以及非法卡。对卡片所绑定的信息也可以正确的传入数据库中。这个系统运行后,ZigBee 模块的电源指示灯正确亮起,同时在实现开关门动作时 LED 指示灯运行正确。电机与白炽灯也可以正确工作,硬件部分运转一切正常。
在对软件系统的测试中发现,个别按钮没有实现监听,例如清除按钮无法实现功能,门禁动画与硬件实物运转不匹配。最终经过不断的调试运行,该问题已经完全解决。
在系统测试中遇到的问题在调试后均得以全部解决,系统可以投入正常使用。但界面效果还有优化的空间,我将继续对软件界面进行优化。
6.3 系统运行
6.3.1 软件系统运行
整个软件管理系统是通过控制台应用程序进行控制运行的,只有当管理系统主程序运行后整个系统才能运行,首先打开 Microsoft Visual Studio 2015,在其中选择已经编写好的程序,在工具栏点击绿色箭头进行调试,程序编译完成后弹出管理员登陆界面。如图
6-1 所示。
图 6-1 系统登陆界面
Fig.6-1 System landing interface
在登陆完成后系统进入主界面主界面上有开始打卡按钮,查询记录按钮,账户设置按钮,并且还拥有可变换的文本显示区域,用来提示管理员登陆和是否开启门禁系统,同时该软件还设计了一个门禁动画程序,用来模拟门禁控制系统的开关,该动画与外部设备同步,电机运行时门禁动画也会做出相应的改变。如图 6-2 所示。
把握。
1.学生用户需求
(1) 注册
未注册的用户可凭借自己的手机号进行注册,并且设置原始密码,保存自己的账号信息。如果未注册账户,则显示登录失败。
(2) 个人资料
已在系统内注册的学生用户可以在此模块根据实际情况更改自己的个人信息,包括手机号、个人名字等信息。
(3) 模拟考试
学生用户使用此模块功能可对教师发布的试卷及习题进行模拟考试,计时测试,以达到模拟测试的效果。
(4) 考试记录
学生用户可以在此功能下可查看所有参与过的课堂测试的记录,其中包括题目信息、作答答案等基础信息。
(5) 历史错题
学生用户在本软件上的历次考试和课堂作业的出现错误的练习题都会被记录在此模块下,以便于学生日后巩固学习内容。
(6) 题目收藏
学生可根据在不同的测试和考试中遇到的新问题,收藏其想要的题目。此功能模块将对于学生所收藏的题目进行集中收集、保存、管理。
(7) 退出登录
学生可在此模块下退出账号,重返登录界面,亦可以选择登录其他账号。
2.教师用户需求。
(1) 教师用户登录
在登录界面选择教师登录,直接输入密码进入教师管理界面。在密码输入错误时会提示报错。
(2) 导入题库
向题库导入习题,根据难度系数不同可划分为简单、一般、苦难等三种类型;同时可以设置选择题、判断题、主观题等不同类型题目进行输入。在其中设计题目,并且添加答案。
(3) 审批试卷
在此模块下教师可以对学生提交的试卷进行批阅。客观题自动和答案进行比较,进行批阅;主观题由教师进行批阅。同时学生端可以看到老师的批改信息。
2.2 界面需求
用户界面是人与计算机之间的交互的媒介。用户通过用户界面来与计算机进行信息交换。所以,用户界面的质量直接影响软件的使用价值。对大部分普通用户来说,界面设计就是对一个产品的绝大部分认识。因此,必须根据用户的实际需求统一界面风格、颜色、字体等方面,使用户获得良好的交互感受。本系统根据教师和学生的需求分为两种操作界面,在以下几个方面进行界面设计。
(1) 界面元素
一个软件界面的元素包括界面主颜色、字体颜色、字体大小、界面布局、界面交互方式、界面功能分布、界面输入输出模式。其中,对用户工作效率有显著影响的元素包括:输入输出方式、交互方式、功能分布,在使用命令式交互方式的系统中,命令名称、参数也是界面元素的内容,如何设计命令及参数也很重要。影响用户对系统友好性评价的元素则有:颜色、字体大小、界面布局等。围绕界面元素所要达到的设计目的是让最终用户能够获得美感、提高工作效率、易于操作使用系统。
(2) 用户角色
界面必须围绕用户为中心,不同于客观功能需求分析,具有很大的主观性。因此这里引出用户角色这个概念模型。先从调查用户自身特征开始,将不同特征用户群体的要求进行综合处理,再有针对性地分析其界面需求。
依据用户角色不同的优先级别,平衡众多用户需求中的矛盾,抽象出完整的 GUI 界面模型。
(3) 界面原型
由于在软件开发前期,用户的界面需求很模糊,甚至没有自己的理想模型,用户提出的要求就很难量化,结果很容易被忽略。因此在用户角色定义完成后,应用快速原型法来设计用户界面,可以帮助用户尽快完善自己的理想模型。
利用界面原型可以将界面需求调查的周期尽量缩短,并尽可能满足用户的要求。快速原型法是迅速地根据软件系统的需求产生出软件系统的一个原型的过程,其主要好处是可尽早获得更完整、更正确地需求和设计。利用界面原型,用户可以很感性地认识到未来系统的界面风格以及操作方式,从而迅速作出判断:系统是否符合自己的感官期望,是否满足自己的操作习惯,是否能够满足自己工作的需要。同时,可以利用界面原型,诱导用户修正自己的理想系统,提出新的界面要求。
2.3 系统用例图
基于 Android 的答题与测试软件的参与者有:教师和学生。基于 Android 的答题与测试系统顶层用例图如图 2-1 所示。
图 2-1 系统顶层用例图
Figure 2-1 Top-level use case diagram of the system
本系统分为客户端和服务端,下面是针对客户端的主要功能绘制的用例图。
1.学生用户端
主要用户群体——学生,在使用本移动端时,在其主要功能界面出现功能模块。其主要有模拟考试、考试记录、历史错题、历史收藏、个人资料。其系统主要功能用例图如图
2-2 所示。
图 2-2 系统主要功能用例图
Figure 2-2. Use case diagram of the main functions of the system
(1) 模拟考试功能用例
此功能为学生端的主要功能,学生用户点击模拟考试功能后,可根据题型难度不同以及题库数量自主选择不同难度的习题,输入数值后,根据需求系统自动生成试卷。在完成试卷答题的过程中,对于相应的题目学生可以自主进行选择收藏习题。其模拟考试功能用例图如图 2-3 所示, 用例描述表如表 2-1 所示。
图 2-3 模拟考试功能用例图
Figure 2-3 Use case diagram of mock test function
表 2-1 模拟考试用例详细描述
Table 2-1 Mock Test Use Case Details
执行者 学生用户
用例描述前置条件后置条件用例描述 学生使用模拟考试功能,生成试卷
学生已经成功登录,进入主功能界面
学生进行模拟考试答题学生点击模拟考试功能
选择题型(选择、填空、判断、陈述)
选择数量
规则 无
(2) 个人资料功能用例在个人资料模块,学生用户可以查看自己的个人信息。个人信息包括注册时选择的头像图片、姓名、性别、年龄和注册绑定的手机号。在更改信息时可在此进行更改。其个人
资料功能用例图如图 2-4 所示, 用例描述表如表 2-2 所示。
图 2-4 个人信息功能用例图
Figure 2-4 Use case diagram for personal information function
表 2-2 修改个人资料用例详细描述
Table 2-2 Detailed description of the use case for modifying personal data
执行者 学生用户
用例描述 学生修改个人信息
前置条件 学生学生已经成功登录,进入主功能界面,点击个人资料功能
后置条件 成功修改
用例描述 点击右上角修改
点击头像修改用户头像
点击姓名出现移动光标修改姓名点击性别,选择对应性别
点击年龄,出现年龄选项进行修改
点击手机号,出现移动光标填写正确手机号
点击完成实现保存更改内容
规则 无
2.教师用户端
作为本软件另一主要用户——教师,在使用本移动端的时候,可以通过上传习题至题库,系统对上传习题按难度进行区分。之后,对于学生上交的习题,可进行试卷审批。其主要功能用例图如图 2-5 所示。
图 2-5 主要功能用例图
Figure 2-5. Major functional use case diagrams
(1) 题库管理用例
教师通过点击题库管理按钮进行导入练习题的操作,针对题目难度系数的不同进行输入,输入题干后添加相对应的正确答案,以供系统进行判断。其题库管理功能用例图如图
2-6 所示, 用例描述表如表 2-3 所示。
图 2-6 题库管理功能用例图
Figure 2-6 Use case diagram of question bank management function
表 2-3 题库管理用例详细描述
Table 2-3 Detailed description of question bank management use cases
执行者 教师用户
用例描述 教师向题库导入试题
前置条件 教师成功登录点击题库管理功能
后置条件 教师添加试题
用例描述 教师点击右上角加号添加试题
选择添加的试题类型(选择、填空、判断、陈述)编辑添加试题的难度
编辑题干编辑选项
编辑正确答案
点击完成存储试题内容
规则 无
(2) 试卷审批用例
学生完成答题后,系统根据学生上交的试卷统计到教师端的试卷审批功能模块,根据每个学生提交试卷的时间不同进行编号,教师可根据试卷内容进行选择性批阅。对于客观题,系统依据教师端输入的正确答案进行比对,直接给出结果,主观题教师将进行自主批阅。如图 2-7 所示为教师试卷审批用例图, 用例描述表如表 2-4 所示。