摘 要
本文对基于RFID技术的门禁管理系统进行了设计和实现,并且分析了门禁系统功能需求和 RFID 的工作原理和特点。系统软件采用Microsoft Visual C++开发平台,系统后台采用了MySQL对一卡通数据进行管理,硬件采用明华科技开发的超高频一体式读写器(TW-RC70SIM),以及串口通信API软件开发包。通过读标签模块,验证电子钥匙(RFID标签)的合法性,控制电子门锁的开启,同时写标签模块可以对RFID标签信息进行修改删除管理。本系统能能够时刻自动记录人员的进出情况,限制内部人员的进出区域、进出时间,礼貌的拒绝不速之客,同时也将有效的保护您的财产不受侵犯。
本文在可行性研究和需求分析的基础上,对系统实现人员进出控制、考勤数据采集、数据统计和信息查询等模块进行了较详细的论述。
关键字:RFID;门禁;安防
I
Abstract
The design and implementation of access control system based on RFID technology,And analyze the working principle and characteristics of the access control system functional requirements and RFID.The system software uses the Microsoft Visual C + + development platform,Backend system uses MySQL to manage the card data,Hardware Ming China Science and Technology Development of UHF integrated reader (TW-RC70SIM).And serial communication API Software Development Kit,By reading the label module, to verify the legality of the electronic key (RFID tags).Control electronic door locks to open, write tag module can be modified to delete the RFID tag information management.The system can always automatically record the out, restrict the entry and exit area of the house staff, access time, and politely refused to uninvited guests, but also will effectively protect your property is inviolable.
In this paper, on the basis of a feasibility study and needs analysis, system personnel access control, time and attendance data collection, statistics and information query module are discussed in detail.
Keyword: RFID; Access control;Safety
II
目 录
绪 论 .................................................................................................................................. 1 1 系统总体分析 ................................................................................................................ 4
1.1 系统总体概述 ..................................................................................................... 4 1.2 系统功能设计 ..................................................................................................... 4 2 硬件系统的设计 ............................................................................................................ 6
2.1 门禁系统的构成 ................................................................................................. 6 2.2 硬件设备介绍 ..................................................................................................... 7
2.2.1 硬件功能介绍 .......................................................................................... 8 2.2.2 硬件接口 .................................................................................................. 8 2.2.3 技术参数 .................................................................................................. 9 2.3 RFID系统组成 .................................................................................................... 9
2.3.1 RFID基本工作原理 ............................................................................... 10 2.3.2 RFID关键技术 ....................................................................................... 12 2.3.3 RFID 门禁系统需要完成的主要功能 .................................................. 12
3 系统的软件的设计 ...................................................................................................... 14
3.1 门禁管理系统开发平台 ................................................................................... 14 3.2 系统软体总体设计 ........................................................................................... 14
3.2.1 系统主要功能模块设计 ........................................................................ 16 3.2.2 MFC概述 ................................................................................................ 16 3.2.3 MDI应用程序的构成 ............................................................................ 17 3.2.4 CDatabase类的实现 ............................................................................... 19 3.3 MySQL数据库简介 .......................................................................................... 21
3.3.1 利用ODBC API实现MySQL数据库的功能调用 ............................ 21 3.3.2 门禁管理系统数据库表设计 ................................................................ 22
4 系统功能设计 .............................................................................................................. 23
4.1 登陆模块设计 ................................................................................................... 23 4.2 天线连接模块设计 ........................................................................................... 23 4.3 读标签模块设计 ............................................................................................... 25
III
4.4 写标签模块设计 ............................................................................................... 26 4.5 用户信息管理模块设计 ................................................................................... 27 4.6 门禁控制模块设计 ........................................................................................... 28 4.7 考勤模块设计 ................................................................................................... 29 5 系统测试 ...................................................................................................................... 30
5.1 测试目标 ........................................................................................................... 30 5.2 测试结果 ........................................................................................................... 30 结 论 .............................................................................................................................. 32 致 谢 .............................................................................................................................. 33 参考文献 .......................................................................................................................... 34 附录A API命令返回状态标识定义 .............................................................................. 35 附录B 部分源程序代码 ................................................................................................ 36
IV
沈阳理工大学应用技术学院学士学位论文 绪 论
1)课题开发背景以及意义
射频识别技术是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,作为条形码的无线版本,RFID技术具有条形码所不具备的防水、防磁、耐高温、使用寿命长、读取距离大、标签上数据可以加密、存储数据容量更大、存储信息更改自如等优点,其应用将给零售、物流等产业带来革命性变化。同时,经济水平的高速发展让人们越来越关心建筑内部的安全性。为了适应信息时代的需要,保证建筑内部的安全性,满足用户当时的各种需求,智能门禁管理系统应运而生。智能门禁系统集计算机技术、电子技术、机械技术、磁电技术和射频识别技术于一体,使卡与锁之间实现完整“对话”功能,以智能卡来控制门锁的开启,开创了门禁管理的新概念,它不仅给管理者提供了更安全、更快捷、更自动化的管理模式,而且也给使用者带来了极大的方便。本文研究的基于射频识别技术的门禁管理系统就是这样的一种系统。
智能建筑的推广,建立局域网门禁系统也成为大型单位、社区、学校发展的一种趋势,门禁系统也将会有一个美好的更广阔的发展空间。人们对门禁系统的各方面要求不断提高,对门禁系统的各项功能要求也在不断增加,随之门禁系统的应用范围也越来越广。门禁系统的技术也在不断趋向成熟。人们对门禁系统的应用已不再简单局限在单一的出入控制,并且还要求它不仅可应用于社区和学校的门禁控制、考勤管理、停车场控制、电梯控制、安防报警及楼宇自控,并且还可和其它系统联动控制及多种功能。而基于射频识别的门禁系统又针对集成的应用给出了多种可行性方案,对门禁系统的发展具有重要的意义。
门禁管理系统又称进出口保安自动化的管理系统。智能建筑通过这四个基本元素,1)即结构、2)系统、3)服务、4)管理进行最优化考虑,从而为用户提供高经济效益的办公环境。它在可以在功能上实现通讯自动化Communication Automation(缩写为CA)、办公自动化Office Automation(缩写为OA)及楼宇自动化Building Automation(缩写为BA),通过各个建筑内配置的各子功能系统,以计算机网络为桥梁,以综合布线系统为基础,全方位实现对通讯自动化控制、办公自动化控制、楼宇自动化控制的综合管理。门禁系统又属于智能建筑的一部分,集用户进出控制,保安防盗,报警等多种功能于一身,它主要用于方便内部员工、住户、学生进出,从而杜绝外来人员随意进
1
沈阳理工大学应用技术学院学士学位论文 出,方便了内部管理,也增强了内部安保。一套现代化,功能齐全的门禁系统,不但可以作为进出口管理使用,并且还有助于有序管理内部员工的进出,并且时刻记录人员的进出情况,又限制内部人员的进出区域、进出时间,礼貌的拒绝外来人员。同时也将有效的保护公司财产不受非法侵犯。 2)国内研究现状
中国在RFID技术与应用及标准化研究工作上也已有一定的基础,目前又从多个方面开展了相关标的准研究制定工作。同时制定成了《建设事业IC卡应用技术》、《集成电路卡模块技术规范》等标准应用,并且得到了广泛的推广及应用。在频率规划方面,也做了大量的试验;在技术标准方面,依据ISO/IEC15693系列标准,已基本完成国家标准性的起草方案工作,参照ISO/IEC 18000系列标准制定的国家标准已列入国家标准制订的计划。实际我国工信部已于2003年开始组织的相关专家一开始对ISO/IEC18000进行跟踪研究,进行射频国际标准的研究。目前已完成标准草案的工作。同时中国RFID标准框架研究工作已经基本完成。
一个完整的RFID产业链应该包括:芯片设计、标签封装、芯片封装、中间件开发、读写器设计、网络与应用软件程序的开发以及系统的集成和咨询。
目前国内的RFID供应商已经取得了明显的进步;针对市场供应链管理市场需求的
超高频产品也已开发。在标签封装、中间件开发、读写器设计、网络与应用软件开发工作以及系统集成等工作,国内已有很多厂商参加进来,整个产业链初步形成。 3)可行性分析
随着高科技的蓬勃发展,智能化管理已经走进了人们的社会生活,一座座智能化大厦拔的而起,适应信息的时代需要,作为跨世纪使用的建筑和办公环境,必须在功能上满足当前和未来发展的需求,成为文化和经济发展的基的。
需要辐射少,因为手机随身携带,与人体接触紧密;功率小,不主动发射,因为手机为电池供电,需要节约电力;读写距离需要保证客户可控,不能出现在客户没有感知的情况下进行读写;与相关行业的兼容性好。RFID的频率主要有:低频(125-135KHZ),高频(13.56MHZ),甚高频(850-956MHZ),微波(2.4GHZ)四类频率,频率越高、辐射越大。从移动RFID应用场景的限制来分析,需要选择较低频率,采取被动方式,读写距离控制在客户可控范围内(尽量在10CM内),与相关行业的兼容性好。要尽量选择国际标准组织制定的标准,而不能够选择某个国家或其他组织制定的标准,有利于移动RFID业务与其他行业的兼容性;适用的工作频率是否广泛,工作频率与其他无线
2
沈阳理工大学应用技术学院学士学位论文 电业务是否冲突,标准的工作频率应该使用的频率要多,利于选择方便业务开展的频率;标准体系应该完善,覆盖各个层次;标准适用业务范围广泛,可以开展各种业务。从如上几个方向分析,移动RFID技术应该选择ISO标准体系,因为ISO标准体系由国际标准组织制定,适用公主频率广泛,从KHZ到GHZ,标准体系完善,包括技术标准、数据结构标准、应用标准,涵盖了RFID技术的全部范围;标准适用业务多,如支付、物流、身份识别等。目前移动RFID适用的身份认证和支付行业,主要选择的是13.56MHZ,而13.56MHZ的被读方式的读写距离可以控制在10CM以内,因此RFID技术选择了13.56MHZ。
同时,一张感应卡可以代替所有的大门钥匙,且具有不同的通过权限,授权持卡进入其职责范围内可以进入的门。所有的进出情况在电脑里都有记录,便于针对具体事情的发生时间进行查询,落实责任。对信息管理以及安全有着重要的意义。 4)本文的主要研究内容以及组织结构
本课题主要研究基于RFID射频技术的门禁管理系统。
硬件方面:前端采用RFID天线及读卡器完成标签感应功能,然后将读取的标签信息通过串口传送给计算机处理,在计算机上设计门禁系统软件,并完成软件方面内容。
软件方面:使用Visual C++ 6.0编写门禁管理系统,完成系统登陆、读卡器的连接、发卡、修改卡、记录卡、控制门锁闭合、语音提示、考勤记录查询、数据库和门禁系统通讯及将数据库中的记录显示等功能。论文共分为五大部分:
第一部分:系统总体设计分析 第二部分:系统硬件的设计 第三部分:系统软件的设计 第四部分:系统功能的设计 第五部分:系统测试
3
沈阳理工大学应用技术学院学士学位论文 1 系统总体分析
1.1 系统总体概述
通过RFID技术,验证电子钥匙(RFID标签)的合法性,控制电子门锁的开启;对RFID标签信息进行管理;对用户信息进行管理。同时记录进出信息作为考勤管理。实现自动,安全的智能门禁管理目标。
该门禁系统的设计目的是实现人员进出控制、考勤数据采集、数据统计和信息查询过程的自动化;方便人员进出开锁与报到,方便管理人员统计、考核实验室人员出勤情况。
1.2 系统功能设计
门禁控制器的卡片使用模式:门禁采用的是白名单模式,即某个用户需进入某个门禁控制的门,需在此门的白名单中事先将其加入白名单,方可刷卡开门。一个完成的刷卡开门过程:用户进入门禁管制区域时,读卡器读取用户信息后,将用户信息传输到主机,主机首先判断该信息是否合法,如合法则发出开门指令,如不合法则发出报警,同时读卡器的记录存储功能将记录用户刷卡时间。
门禁控制器的开门权限分为:按钮开门、常开、常闭三种,刷卡开门是指只要是登记过的卡并开通了门禁应用的卡,就可以刷卡开门;常开状态:不需要刷卡也可开门;常闭状态,刷卡将不能开门。进出等级控制:系统可任意对卡片的使用时间、使用的点进行设定,即对不同的卡片进行时区管制和节假日管制、有效期管制、访问区域的管制。
门禁控制器的时间段设置:时区设置是对一天24小时的时间段系统可设置定时事件和各个时间段开门权限的设置。当输人端口状态满足开锁、闭锁条件的时候方可进行相关的开关门处理,不同的用户可以通过编程设置不同的访问区域、不同的访问时间,对某些门禁管制区域可实施定时的开关门处理,同时又可对某些安全性较高的门禁区域,要求必须要多卡认证功能,又可以通过编程实现对某些特定的用户只有在指定的时间段内才能刷卡开门。
门禁控制器的报警功能:如发生控制器异常、开门超时、强制开门、非法卡开门、读卡器或者控制器被破坏等事件发生时时则系统将发出报警信号、并且记录事件。
局域网互联功能:门禁控制器可以通过局域网互联管理门禁系统,共同完成了对进出口的监控及管理。上位机管理系统可以对门禁控制器进行参数设置和初始化门禁系统
4
沈阳理工大学应用技术学院学士学位论文 配置,并对控制器的记录进行管理收集,更新用户信息,可删除、增加人员信息及更改节假日信息。
门禁控制器的远程控制:门禁管理系统可以通过网络实现远程控制门锁的开启及关闭。
门禁控制器的实时监控:门禁管理系统可以实时监控各个门的开关状态以及出入用户的刷卡信息。
门禁控制器的时间校正:工作站管理系统可以对门禁控制器的时间进行同步,保证了时间的准确性。
门禁控制器的记录存储功能:读卡器的存储芯片可储存门禁控制器运行时,所产生的所有用户的刷卡事件、报警时间等,方便于进行用户的考勤管理和发生事故后及时进行处理。
本次项目实施的需求功能如下:
门禁控制器卡片使用的模式:可采用非接触式RFID卡;
门禁控制器的刷卡开门:门禁采用的是白名单模式,例如某个用户想要进入某个门禁控制的门,需在此门的白名单中事先将其加入白名单,用户进入门禁管制区域的时侯需刷卡,读卡器读取用户的信息后,将用户的信息传输到工作站,工作站首先判断该信息是否合法,如合法则发出开门指令,如不合法则发出报警;
5
沈阳理工大学应用技术学院学士学位论文 2 硬件系统的设计
2.1 门禁系统的构成
系统采用分层次的分布式集中控制方案,将所有门禁读卡器组成一个分布式的网络,其组成图2.1所示。整个系统包括管理中心服务器、门禁工作站、门禁读卡器三个层次的结构[1]。
图2.1 门禁系统功能结构图
门禁中心服务器是整个门禁系统的管理和控制的心脏,并且同时运行所有门禁管理系统的程序和数据库。数据库采用的是支持网络通讯数据库结构,方便功能扩展。为了达到对所有出入口进行统一管理的目的,使所有出入口的学生要用学生一卡通在管理中心通过出入口管理系统登记,并将学生个人信息存入数据库。以便考勤及查询。通过管理系统程序可以清楚的查询每个出入口使用状态、进出记录等。
门禁工作站上运行门禁控制服务程序,门禁控制服务程序实现数据的转发功能,它是门禁读卡器和管理中心服务器沟通的桥梁。实现RS485和TCP/IP通讯协议的转换,门禁工作站本身并不直接控制门禁读卡器的动作。向下它是通过RS485总线通过轮寻的方式与门禁读卡器进行信息交互。记录从门禁读卡器采集数据的时间,如果门禁读卡器长时间不能和管理中心服务器通讯,长时间以后一定会丢弃掉过时的读卡数据。向上它是通过局域网以TCP/IP协议与管理中心服务器进行的通讯,传递门禁读卡器的刷卡请求及管理中心服务器的各种控制命令。向下它是通过RS485总线通过轮寻的方式与门禁读卡器进行信息交互。记录从门禁读卡器数据的采集时间,如果门禁读卡器长时间不能和管理中心服务器通讯,长时间以后一定会丢弃掉过时的用户读卡数据。门禁控制服务仅具有进行后台数据交换及转发的功能,除了进程启动和停止外,并没有和用户交互信
6
沈阳理工大学应用技术学院学士学位论文 息,所以只需要设计作为Windows系统的服务进程运行,仅产生运行日志文件即可,并不需要设计和用户信息交互的界面。
2.2 硬件设备介绍
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
支持ISO14443-TypeA标准卡片
外型尺寸:143mm140mm28mm,重量约200克 感应距离:50mm(mifare® 标准卡读写距离) 通讯接口:RS232和RS485 工作频率13.56MHZ
106kbit/s速率高速访问射频卡 开发工具包
选配1-2个SAM安全模块 8位LED显示 实时时钟 典 型 应 用
电子商务(例如:房间预定、预付卡等) 门禁 、宾馆 学校、医院 销售终端
任何情况下当一台PC需要与非接触式芯片通讯时,RC70SIM系列读写器,如下图2.2所示:
图2.2 (明华RC70SIM系列读写器)
7
沈阳理工大学应用技术学院学士学位论文 TW-RC70SIM读写器是明华科技开发的一款超高频远距离一体化读写器,本产品具有发射功率小、读写距离远,主机和天线一体化设计,读取快速移动(速度大于120公里/小时)标签,定时、触发多种工作模式,支持多协议的特点。
本产品可应用于物流和仓储管理;智能停车场管理;生产线管理;高速公路车辆不停车计费;门禁管理;产品防伪检测;宠物管理;物品检验等领域,得到用户的一致好评。
2.2.1 硬件功能介绍
型号定义 型号 支持协议
TW-RC70SIMA ISO18000-6B协议
TW-RC70SIMB ISO18000-6B/ISO18000-6C/EPC
TW-RC70SIME ISO18000-6B/ISO18000-6C/EPC、Class1G2协议,以太网接口 TW-RC70SIM系列读写器可以对ISO18000-6B和ISO18000-6C(EPC G2)电子标签进行读、写等各种操作。本系列读写器支持ISO18000-6B和EPC C1 GEN2协议所规定的所有强制命令操作和部分可选命令操作。具体包括:ISO18000-6B的多标签识读,单标签的读、写、锁定和查询锁定:EPC G2标签的多标签EPC编码识读,单标签多区域数据读写、锁定、销毁等。
本系列读写器提供RS232、RS485、韦根、触发,以太网口等接口和二次开发包,以供客户快速应用和二次开发。 2.2.2 硬件接口
TW-RC70SIM读写器接口 接口说明
序号名称 颜色 功能描述 1 TXD 紫色 RS232信号输出 2 RXD 白色 RS232信号输入 3 GND 黑色 接的 4 T- 绿黄 触发负端 5 T+ 蓝色 触发正端
8
沈阳理工大学应用技术学院学士学位论文 6 DATA1 绿色 Wiegand数据1 7 DATA0 黄色 Wiegand数据0 8 GND 黑色 接的 9 485B- 橙色 485接口负端 10 485A+ 棕色 485接口正端 11 GND 黑色 电源负极 12 DC+9V 红色 +9V电源正极 2.2.3 技术参数
工作频率 美标902MHz~928MHz或国标920MHz~925MHz 射频功率 0dbm~30dbm(1mW~1000mW)
读卡速度 由软件设置,单卡平均读取时每64bits小于10ms 读卡方式 定时自动读卡和外触发控制读卡,由软件设置 数据接口 Wiegand,RS232,RS485(或以太网)接口 数据输入接口 触发输入一组 天线 内置水平极化天线(12dbi) 供电电源 DC+9V,5A 功耗 6W
外形尺寸 475mm×475mm×65mm 重量 4Kg
工作温度 -30℃~+70℃ 读卡距离 8m-15m 读卡提示 蜂鸣器
2.3 RFID系统组成
标签(Tag):由耦合元件及芯片组成;
阅读器(Reader):读取(或写入)标签信息的设备; 天线(Antenna):在标签和阅读器间传递射频信号。
标签自身含有一个16位的随机数或伪随机数发生器(RNG)。以作为响应读写器命令中的参数用。
9
沈阳理工大学应用技术学院学士学位论文 盘存标签、唤醒标签/休眠标签。
唤醒标签:只使一张标签处于开放状态或保护状态,在此状态下,该标签可以执行进一步的访问操作,而对其他标签的访问无效。
休眠标签:使一张被唤醒的标签处于休眠状态。
在此说明的是:实际上标签在使用过程中并没有休眠状态,而是厂商生产过程中为方便用户操作,人为的增加了一个唤醒状态,而与其对应的增加了一个休眠状态。
访问标签:包括对标签的读、写、锁定、灭活等操作。
阅读器和标签通过各自的电磁耦合进行数据的交换。阅读器和标签通过各自的电磁耦合进行数据的交换。阅读器与后台控制系统通过有线/无线的方式进行数据的交换。
图2.3 RFID系统组成图
天线的读写系统中非常重要的一部份,它对读写器与电子标签的操作距离有很大的影响。天线的性能越好,则操作距离可能会越远[2]。 2.3.1 RFID基本工作原理
RFID又称为电子标签、远距离射频卡、远距离IC卡、射频标签、数据载体;RFID读写器又称为电子标签读写器、远距离读卡器。
电子标签与读写器之间通过耦合元件实现射频信号的空间(无接触)耦合、在耦合通道内,根据时序关系,实现能量的传递、数据的交换。基于RFID系统的特性,其在集装箱自动识别、仓库管理、停车收费、车辆进出管理、人员定位,资产监控等领域中正日益得到广泛重视和大面积推广应用[3]。
10
沈阳理工大学应用技术学院学士学位论文
图2.4 RFID系统原理图
依据射频标签工作所需能量的供给方式,可以将RFID系统分为:有源(卡片内有锂电池,主动上传ID号)、无源(通过读卡器发出的感应电流工作)和半有源系统(低频唤醒、高频传输)。
依据RFID的工作频率可以分为低频段射频标签:典型工作频率:125K,134K; 低频标签典型的应用有:容器识别、工具识别、动物识别、电子闭锁防盗(带有内置应答器汽车的钥匙)等。
与低频电子标签相关的国际标准有:ISO11784/11785(用于动物识别)、ISO18000-2(125-135 KHz)。低频电子标签有多种的外观形式,应用于动物识别的低频电子标签。读卡距离应在10厘米之内,最远的不超过一米[4]。
主要优势:采用的CMOS工艺,“具有省电、廉价的特点”工作频率不受无线电频率的管制约束;可以穿透水、木材、有机组织等;适合距离较近的、速度较低的、数据量要求较少的识别(例如:动物识别)等。
劣势主要体现在:只能适合低速、标签存贮数据量少、近距离识别;比较容易复制,安全性能较差。
高频率电子标签:典型的工作频率为:13.56MHz ,可以方便做成卡状。 典型应用包括:电子车票、电子身份证 。
国际标准有:ISO14443、ISO15693、ISO18000-3(13.56MHz)等。工作频率的提高,可选用较高数据传输速率。射频标签天线的设计相对简单,标签一般制成标准卡片形状。读卡距离一般情况小于10CM。
超高频与微波标签:典型工作频率为:433.92MHz,862(902)~928MHz,2.45GHz,5.8GHz。
11
沈阳理工大学应用技术学院学士学位论文 2.3.2 RFID关键技术
主要包括产业化关键技术和应用关键技术两方面,其中RFID产业化关键技术主要包括: 标签芯片设计与制造:例如低成本、低功耗的RFID芯片设计与制造技术,适合标签芯片实现的新型存储技术,防冲突算法及电路实现技术,芯片安全技术,以及电子标签芯片与传感器的集成技术等[5]。
RFID标签封装技术与装备:例如精密机构设计优化,基于低温热压的封装工艺,多物理量检测与控制,装备故障的自诊断与修复,高速运动控制,以及在线检测技术等。
天线的设计与制造:例如标签与天线的匹配技术,针对与不同应用对象的RFID标签天线结构优化技术,多标签天线的优化分布技术,读写器的智能波束扫描天线技术,以及RFID标签天线的仿真软件设计等。
RFID电子标签的集成:例如芯片与天线及所附着的特殊材料介质三者之间的匹配技术,标签加工过程中的一致性技术等。
读写器设计:例如密集读写器技术,抗干扰技术,低成本小型化读写器集成技术,以及读写器安全认证技术等。
RFID应用关键技术主要包括:
RFID应用体系架构:例如RFID应用系统中各种软硬件和数据的接口技术及服务技术等。
RFID系统集成与数据管理:例如RFID与无线通信、信息安全、传感网络、工业控制等的集成技术,RFID应用系统中间件技术,海量RFID信息资源的组织、分发、存储、交换、管理、数据处理及跨平台计算技术等。
RFID的公共服务体系:支持RFID社会性应用的基础服务体系的认证、编码解析、编码管理、注册、多编码体系映射、检索与跟踪等技术与服务[6]。
RFID的检测与规范:例如面向不同行业应用的RFID标签及相关产品物理特性标签与读写器之间空中接口一致性检测技术与规范,性能一致性检测技术与规范,以及系统解决方案综合性检测技术与规范等。 2.3.3 RFID 门禁系统需要完成的主要功能
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。
①权限管理:对人员进出权限可以随意设置、更改、取消、恢复。现只对持有校园
12
沈阳理工大学应用技术学院学士学位论文 “ 一卡通” 正式卡的用户有进出权。
②存储功能:在门禁服务器中可以存储人员进出的日期、时间、卡号、是否非法等相关信息,同时可以对实验室职工进行考勤统计。
③集中管理功能:在后台可以管理户资料库,定期或实时采集每个进出口的进出资料, 同时可按各用户进行汇总、并且支持查询、分类、打印等。
④异常处理功能:当有非法用户闯入时,系统会自动发出实时报警,并且将用户信息传输到管理中心服务器。出现异常情况时具有自适应能力,当管理主机出现死机、病毒时,门禁系统可以正常开启并不会受影响。门禁“一卡通”系统结构图如下所示:
图2.5 RFID门禁“一卡通”系统结构图
13
沈阳理工大学应用技术学院学士学位论文 3 系统的软件的设计
3.1 门禁管理系统开发平台
RFID门禁管理系统分为软件和硬件两部分,软件部分基于Visual C++6.0,系统后台采用了MySQL对一卡通数据进行管理,应用MFC进行界面设计,以先施提拱串口通信API软件开发组件,完成读标签和写标签等功能操作。硬件采用明华科技开发的超高频一体式读写器(TW-RC70SIM)、天线以及射频卡。
3.2 系统软体总体设计
用户将持有的 RFID 卡接近读卡器时, 读卡器识别卡片用户信息并通过串口将卡片用户信息传送给单片机控制器。单片机控制器将卡信与外部 EEPROM中存储的信息比较, 验证用户权限,进而控制门状态。单片机可以通过另一个串口通信经由 RS485 收发器与中央控制器进行通信,将卡片的信息、各时刻的操作信息、键盘的信息等传送到总线上,中央控制器可以通过总线对这些信息进行文件和数据库的存储;同时,中央控制器对各用户的卡片、密码和个人信息的注册或者注销等形式进行数据库的管理,方便于查询。门禁管理系统软件功能结构图如图3.4所示:
登陆 读取 用户信息管刷卡事件记门禁门锁发卡 修改 卡号开锁 闭锁 标签删除 姓名 图3.4 门禁管理系统软件结构图
14
沈阳理工大学应用技术学院学士学位论文 门禁管理系统软件主界面函数设计如图3.5所示:
Login() OnBtnConOnReadtagOnModtagwritedata GateCtrSyUserDlg MotTagDLConnectDEditRecord CFrameW 图3.5 门禁管理系统软件函数图
门禁系统软件主界面是由VC++可视化界面设计,主要应用按扭和列表控件:
图3.6 门禁管理系统软件主界面图
界面设计为简洁实用型,其上半部分为功能按扭,读取标签前必需首先连接读写器,连接成功后方可读取标签。对正确读取并且执行开锁功能的标签,系统将会把其标签数据内容记录在数据库中,从而实现考勤功能。感应开锁按扭是启动门锁监听,一旦有授权用户标签读取,则实现开锁,而禁用开锁按扭是关闭相对应的此功能[7]。
主界面中分两个列表控件,上面一个显示正在读取的标签信息,下面一个显示系统
15
沈阳理工大学应用技术学院学士学位论文 中已有的所有用户信息。 3.2.1 系统主要功能模块设计
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成[8]。
基于RFID的校园一卡通管理系统,是建立在Visual Basic 6.0开发平台和Microsoft Acces数据库基础上。能够对于校园内学生及教工的学习、工作及生活进行现代化的管理,极大的方便了学生及教工的生活。该校园一卡通管理系统主要包括身卡片查询、实验室管理、卡片维护、卡片管理和系统管理五大功能,其结构设计图如图3.1所示:
图3.1 校园一卡通系统结构设计图
3.2.2 MFC概述
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体的应用程序所特有的东西填入这个轮廓。Microsoft Visual C++也提供了相应的工具来完成这个工作: Class Wizard可以用来帮助助添加代码到框架的文件;资源编辑器可用于帮助用户直观的设计用户的接口(代码和资源等);AppWizard可用来生成初步的框架文件;最后编译,通过类库实现了应用程的序特定逻辑[9]。
MFC封装了OLE API,ODBC API,Win32 API等底层的函数功能,并且提供了更
16
沈阳理工大学应用技术学院学士学位论文 高一层的接口通信,同时简化了Windows的编程。MFC接口也可以对底层接口进行直接调用。
MFC还提供了一个Windows应用程序开发的基本模型,对应用程序的控制主要是通过MFC框架完成,并且MFC也完成大部分的功能,预定义或实现了许多事件及消息的处理,等等。框架或者其本身处理的事件,并不仅仅依赖程序员编写的代码处理事件;或者调用程序员编写的代码来处理应用程序特定的事件[10]。
MFC是C++的类库,程序员可以通过继承、使用及扩展合适的类来实现特定的目的。例如,继承时,应用程序特定的事件是由程序员的派生类来处理,不感兴趣的由基类来处理。实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,及MFC实现消息的映射机制。 3.2.3 MDI应用程序的构成
此节解释了一个典型MDI的应用程序构成。
用AppWizard产生一个MDI工程(无OLE等支持),AppWizard创建了一系列文件,构成了一个应用程序框架。这些文件分四类:头文件(.h),模块定义文件(.def)资源文件(.rc),实现文件(.cpp),等。
构成应用程序对象 图3.2解释了该应用程序结构,箭头表示了信息的流向如下图3.2:
图3.2 MDI应用程序结构图
从CTView、CWin App、CDocument、CChildFrame、CView、CMDIFrameWnd类对应的派生出CTApp、CMDIChildWnd 、CTDoc、CMainFrame五个类,这五个类的实例分别是应用程序对象、文档对象、视图对象、主框架窗口对象和文档边框窗口对象。主框架窗口包含了视图窗口、工具条及状态栏[12]。对这些类及对象的解释如下[11]。
17
沈阳理工大学应用技术学院学士学位论文 (1)应用程序
所有的应用程序类都派生于CWinApp。基于框架的应用程序必须是唯一的一个应用程序的对象。它即负责应用程序的初始化,同时又负责应用程序的运行和结束。
(2)边框窗口
SDI应用程序,类派生与边框窗口CFrameWnd类,边框窗口的客户子窗口(MDIClient)同时包含视图窗口;所有的MDI应用程序,都是从CMDIFrameWnd类派生的边框窗口类,边框窗口包含的客户子窗口直接包含了文档边框窗口[13]。
如果需要支持工具条、状态栏,那么派生的边框窗口类还要添加CToolBar和CStatusBar类型的成员变量,并且在同一个OnCreate消息处理函数中初始化这两个控制窗口。
边框窗口用来管理文档的边框窗口、视图窗口、工具条窗口、加速键、菜单栏等,协调半模式状态。正如快捷键shift+f1的帮助。以及ctrl+p的打印预览。
(3)文档边框窗口
文档边框的窗口类从CMDIChildWnd类派生,MDI应用程序通常使用文档边框窗口来包含视窗口。文档类从CDocument类派生,用来管理用户数据的变化,存取都是通过文档实现的。
(4)视图类
视图类从CView或者它的派生类派生。在文档和用户之间起中介的作用,视图和文档联系在一起,即在屏幕上显示的文档的内容,并且把用户输入的内容转换成对文档的操作命令,并通过文档对象来访问和更新数据。
(5)文档模板
文档模板类一般不需要派生。MDI应用程序使用多文档模板类CMultiDocTemplate;SDI应用程序使用单文档模板类CSingleDocTemplate。应用程序可以通过文档模板类对象从而管理上述对象的创建。
这里,用图的形式可直观的表示所涉及的MFC类的继承或者派生关系,如图3-3所示:
18
沈阳理工大学应用技术学院学士学位论文
图3.3 MFC类结构图
上图所示的类都是从CObject类派生出来的;所有处理消息的类都是从CCmdTarget类派生。如果是多文档的应用程序,文档的模板使用CMultiDocTemplae,主框架窗口从CMdiFarmeWnd派生,同时它包含工具条、文档框架窗口及状态栏。文档框架窗口从CMdiChildWnd派生,文档框架窗口包含视图,视从CView或者其派生类派生[14]。 3.2.4 CDatabase类的实现
CDatabase类封装了MySQL数据库的功能,因此并不具备通用性,只能在对MySQL的应用程序中使用。下面将根据C++要求及规范给出CDatabase类的具体结构以及相关简要介绍:
class CDatabase { public:
BOOL UnLockTable(); //解锁
BOOL LockTable(char* TableName,char* PRIORITY); //加锁 int Reload(); //重新登陆,非零时返回的错误信息 char* GetState(); //服务器的状态 char* GetServerInfo(); //服务器的信息 int GetProtocolInfo(); //协议信息 char* GetHostInfo(); //主机信息 char * GetClientInfo(); //客户机的信息
19
沈阳理工大学应用技术学院学士学位论文 char* GetFieldName(int FieldNum); //字段名 BOOL IsEnd(); //是否最后
int DropDB(char *db); //删除数据库,非零时返回的错误信息 void SeekData(int offset); //查找指定的数据
int CreateDB(char *db); //创建的数据库,非零时返回的错误信息 void FreeRecord(); //释放的结果集 unsigned int GetFieldNum(); //得到的字段数
BOOL ConnectDB(Database_Param *p); //连接的数据库 MYSQL_ROW GetRecord(); //得到的结果(一个记录) my_ulonglong GetRowNum(); //得到的记录数 BOOL SelectDB(Data_Param *para); //选择数的据库 BOOL UpdateRecord(Data_Param *para); //更新的记录 BOOL SelectRecord(Data_Param *para); //选择的记录 BOOL InsertRecord(Data_Param *para); //插入的记录 BOOL DelRecord(Data_Param *para); //删除的记录 BOOL SelectAll(Data_Param *para); //选择所有的记录 char * OutErrors(); //输出的错误信息 CDatabase(); //初始化的数据库
virtual ~CDatabase(); //关闭的数据库连接 private:
MYSQL mysql; //数据库的连接句柄 MYSQL_RES *query; //结果集 MYSQL_ROW row; //记录集
MYSQL_FIELD *field; //字段的信息(结构体) BOOL FindSave(char *str); //查找并保存的结果集 };
通过CDatabase类中定义的这些功能函数,我们可以通过远程或者本机完成对MySQL数据库的绝大部分操作,并且通过定义了解锁及加锁是的部分功能,从而使得应用程序能够多进程或多线程访问数据库,大大提高了提高办公效率。以上函数的具体功能都可以通过调用C API函数来实现的。
20
沈阳理工大学应用技术学院学士学位论文 3.3 MySQL数据库简介
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储、更新及存取信息更加的容易。MySQL是一个客户机或者服务器结构的实现,它是由一个服务器守护程序 mysqld鸡许多不同的客户程序以及库组成的数据库[15]。
mySQL的主要目标是快速、易用及健壮。最初是因为mySQL的创始人需要这样一个SQL服务器,它能够处理与任何不昂贵得硬件平台上提供数据库,在一个数量级上的大型数据库,但速度必须更加快速,mySQL因此也就开发出来了。
mySQL自身并不支持Windows的图形化界面,所以,所有的数据库操作及管理功能都只能在MS-Dos方式下来独立完成。首先,必须登陆mySQL服务器进行验证数据库管理权限,即在提示符\\mySQL\\BIN>下输入MYSQL –H host –U user –Ppassword,提示符改为mysql>时表示登陆数据库成功。然后,选择所要操作的数据库,即mysql> USE databasename。接着就可以使用SQL语句进行查询了。如果需要退出数据库服务器,可输入quit命令,这样就可以退出服务器了。
当然,由于mysql数据库的知名度越来越大,许多的第三方软件公司也相继推出了,一系列可以再windows下的图形化界面下操作的软件。如EMS公司的EMS MYSQL MANAGER就提供了Windows图形化界面的mysql数据库的操作软件,并且可以实现各种功能。
3.3.1 利用ODBC API实现MySQL数据库的功能调用
ODBC(Open Database Connectivity)就是开放式数据库的互联,作为Windows的开放性结构的一个重要分支已经为很多Windows程序员熟悉,ODBC的工作依赖于数据库的制造商提供的驱动程序,需要使用ODBC API的时候,Windows的ODBC管理程序会把数据库访问的请求传送给正确的驱动程序,驱动程序再使用SQL语句命令DBMS(数据库管理系统)完成数据库的访问工作,因此,ODBC为我们的开发应用数据库的程序提供了非常强大的兼容性及灵活性。在Windows下也可以对多种得数据库安装ODBC的数据库,来连接数据库并且访问它们的数据[16]。
相对于mysql数据库服务器来说,它的制造商同样提供了相应的ODBC驱动程序,其最新版本为MyODBC V2.50.36。在WINXP环境下进行安装后,就可以使用编程语言
21
沈阳理工大学应用技术学院学士学位论文 通过ODBC API对Mysql数据库进行各种ODBC所支持的各种操作命令。因为ODBC屏蔽了各种数据库的不兼容之处,所以,其它数据库的操作程序命令,通过ODBC 同样可以对MySQL数据库进行相关的操作。也就是说ODBC使程序对数据库的通用性及兼容性大大提高了。
3.3.2 门禁管理系统数据库表设计
数据库中有两张表,各字段如图3.7所示
标签信息表:包括持卡人姓名,卡号,持卡人证件号,有效期,发卡人姓名,发卡时间。用户信息表:用户名,密码。这两张表中发卡人的姓名与用户名一致。
表3.7 用户信息数据表
字段名称 卡号 姓名 学号 系别 性别 出生日期 联系电话 家庭住址
数据类型 文本 文本 文本 文本 文本 日期/时间 文本 文本
字段大小
50 16 26 20 8 50 50 50
必填字段 无 无 无 无 无 无 无 无
22
沈阳理工大学应用技术学院学士学位论文 4 系统功能设计
4.1 登陆模块设计
在数据库存放一张管理员表,字段字户名和密码,在登陆界面中,提取文本框数据与数据库表中内容进行匹配,若数据库表中存在用户信息,且密码正确,则进入系统主界面,否则提示错误并回到重新登陆。
系统主界面图:
图4.1 门禁管理系统用户登录界面
4.2 天线连接模块设计
本模块采用的函数结构如图4.2所示:
ConnectDLG OnConnectBTN() OnDisconnectBTN(图4.2 天线连接主要流程图
GetReaderVersion 主要函数介绍: 1) 打开COM口
调用此函数用于根据串口号打开串口。
apiStatus WINAPI rfidapi03_open(OUT HANDLE &hCom, char *com_port); 参数:
23
沈阳理工大学应用技术学院学士学位论文 hCom: 输出的COM口句柄。
Com_port: 需要打开的COM口,如:COM1、COM2、COM3…。 返回值:
返回状态标识,请参照附录,状态标识说明。 2) 关闭COM口
调用此函数用于关闭已打开串口句柄。
apiStatus WINAPI rfidapi03_close(IN HANDLE hCom); 参数
hCom: 传入读写器的串口句柄。 返回值:
返回状态标识,请参照附录,状态标识说明。 3)获取读写器的功率
调用此函数用于获取读写器当前功率。
apiStatus WINAPI rfidapi03_getrfpower( HANDLE hCom, unsigned short& rf_power, int* ms_count);
参数:
hCom: 传入读写器的串口句柄。 rf_power: 返回读写器的当前功率。
ms_count: 返回执行此函数所耗费的时间(毫秒)。 返回值:
返回状态标识,请参照附录,状态标识说明。 4) 设置读写器的功率
调用此函数用于设置读写器RF功率。
apiStatus WINAPI rfidapi03_setrfpower( HANDLE hCom, unsigned short rf_power, int* ms_count);
参数:
hCom: 传入读写器的串口句柄。
rf_power: 设置读写器RF功率值(0-300),以0.1dBm为单位,即280为28dBm。 ms_count: 返回执行此函数所耗费的时间(毫秒)。 返回值:
24
沈阳理工大学应用技术学院学士学位论文 返回状态标识,请参照附录,状态标识说明。 5) 查询读写器的当前工作频率
调用此函数用于获取读写器的当前工作频道索引值。
apiStatus WINAPI rfidapi03_getfreq( HANDLE hCom, unsigned char* channel, int* ms_count);
参数:
hCom: 传入读写器的串口句柄。
channel: 返回读写器当前工作频率的索引值,如FCC频段(0、1、2、…,其中索引0对应 Frequency Hopping,1对应902.750 MHz,2对应903.250 MHz),
ms_count : 返回执行此函数所耗费的时间(毫秒)。 返回值:
返回状态标识,请参照附录。 6) 设置读写器工作频率
调用此函数用于设置读写器的工作频道索引值。
apiStatus WINAPI rfidapi03_setfreq( HANDLE hCom, unsigned char channel, int* ms_count );
参数:
hCom: 传入读写器的串口句柄。
channel: 指定传入读写器的工作频道索引值,如FCC频段(0、1、2、…,其中索引0对应 Frequency Hopping,1对应902.750 MHz,2对应903.250 MHz);
ms_count: 返回执行此函数所耗费的时间(毫秒)。 返回值:
返回状态标识,请参照附录,状态标识说明。
4.3 读标签模块设计
在系统初始化,首先连接读写器,完读卡器的配置,包括对天线端口。比特率,天线功率参数进行初始化。 在完成之后,天线开始处于就绪态,当系统向读写器发送读命令时,读写器先接收读取命令,并通过控制器向天线发送一定频率的射频信号,当此时标签进入磁场感应电流从而获得能量,向读写器发送自身的编码区数据。 读写器接到发来的数剧后,进行解码压缩,并转换数据格式等操作。最终将标准的数据
25
沈阳理工大学应用技术学院学士学位论文 或信息传到到计算机程序,在系统的主界面显示出来.通过直观的界面,用户可以看到标签里的信息,如卡号。
图4.4 标签读取示意图
4.4 写标签模块设计
第一阶段: 1)提取:
从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。提取指令之后,程序计数器根据指令长度增加存储器单元。指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。这个问题主要被论及在现代处理器的快取和管线化架构。 2)解码:
CPU根据存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。这样的运算目标也许提供一个常数值(即立即值),或是一个空间的定址值:暂存器或存储器位址,以定址模式决定。在旧的设计中,CPU里的指令解码部分是无法改变的硬件设备。不过在众多抽象且复杂的CPU和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。这些微程序在已成品的CPU中往往可以重写,方便变更解码指令。 3)执行:
在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。例如,要求一个加法运算,算数逻辑单元(ALU,Arithmetic Logic Unit)
26
沈阳理工大学应用技术学院学士学位论文 将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow)标志可能会被设置。 最终阶段:
写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。某些类型的指令会操作程序计数器,而不直接产生结果。这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。许多指令也会改变标志暂存器的状态位元。这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。这个标志可藉由随后的跳转指令来决定程式动向。在执行指令并写回结果之后,程序计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。如果完成的是跳转指令,程序计数器将会修改成跳转到的指令位址,且程序继续正常执行。许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。这个部分一般涉及“经典RISC管线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制(Microcontrollers))。
该模块中的函数结构图如图4.5所示:
Opcode () Program Counter() Arithmetic Overflow () Microcontrollers () 图4.5 写标签函数结构图
4.5 用户信息管理模块设计
在这个模块中,主要对数据库进行操作。
1)修改:修改用户人员的信息:年龄,性别,职位等;
27
沈阳理工大学应用技术学院学士学位论文
图4.6 数据修改图
2)删除:若要撤消人员的通过门禁的权限,可以通过删除该用户实现。 被删除的人员即使持有卡,但也无法通过门禁。若要恢复该人员,则重新进行发卡操作。
4.6 门禁控制模块设计
此由三个部分组成: 1)并口驱动
系统用计算机并口两个引脚: 一个作为电平控制 一个接的线 2)继电器
继电器接收并口引脚信号,控制门锁的开关;这里规定: 高电平 1 :关锁 低电平 0 :开锁 3)门锁
门锁的响应时间为0.5秒,当门锁打开后隔5秒则自动关闭。 门禁控制示意图如下:
28
沈阳理工大学应用技术学院学士学位论文
图4.7 门禁控制示意图
4.7 考勤模块设计
考勤是门禁系统的重要组成部分,它实时记录人员的进出情况,在事故发生后可以起到追溯作用,达到人员监控,和财产安全的实用效果。RFID射频识别卡写入想要写入学生的数据信息;每一个学生的标签卡都有一个唯一的标识ID,RFID阅读射频识别卡中当前贮存的各类数据信息,包括学生姓名、班级、老师、家庭住址等等信息,也可以方便的修改或(重新写入)射频识别卡中的数据信息。
系统分为两种查询方式,按姓名查询和按卡号查询。并且系统支持模糊搜索,输入起止日期查询到学生考勤记录。在列表中可以看到进出的人员:ID号、卡类型,以及开门时间。考勤记录图4.8所示:
图4.8 考勤记录图
29
沈阳理工大学应用技术学院学士学位论文 5 系统测试
5.1 测试目标
基于测试角度的不同,更是存在着两种完全不相同的测试目的。如果从用户的角度出发,普遍都是希望通过软件来测试,同时可以发现软件的BUG,从而暴露出软件中陷藏的缺陷、不足及错误,予以考虑是否可以接受该产品。但如果从软件开发者的角度去想,则都希望通过测试能证明软件并没有错误的过程,从而验证该软件已正确的实现了用户的需求,以确立用户对软件质量的信心。
下面这些规则也可以看作是测试的目的或定义:
1、测试是不仅仅是为了发现程序中的错误,而去执行程序的过程; 2、一个好的测试方案是极可能是发现迄今为止尚未发现错误的测试方案; 3、测试是为了证明程序有错,而不是证明程序无错误。
本次测试目标主要是验证系统的软件效果,测试中包括检测软件错误,软件缺陷,软件故障,软件失效等。测试中分析以下内容:当在系统软件生存期内发生不希望或不可接受的人为错误时,导致系统软件缺陷产生的结果,当输入不准确的数据时,系统软件产生的结果,当软件运行过程中出现的一种不希望或不可接受的内部状态,譬如软件处于执行一个多余循环过程时,所产生的结果等。
5.2 测试结果
在环境正确配置后,执行项目主程序“门禁管理系统V1.0.exe”,本系统可以得到以下的预期测试结果:
登陆模块: 输入用户名和密码,如果两者都正确,则进行系统主界面,否则就提示密码或用户名错误,并回到重新登陆界面。如果用户名和密码为空,则提示用户名和密码不能为空,并回到重新登陆界面。
天线连接模块:点击天线连接按扭,出现一个新的对话框,在对话框内下拉条内选择连接参数,包括串口COM、波特率、和读卡功率。设置完后按连接按扭,在下面的提示框里出现读卡器连接成功信息。如果设置错误或硬件连接不正当,则出现连接失败等信息。
读标签模块:把标签放在射频区域内,然后按读标签按扭,在上边的列表控件中显示该标签的数据信息,包括姓名还有卡号。
写卡模块:点击修改标签按扭,系统弹出一个新的对话框,在里面可以修改标签
30
沈阳理工大学应用技术学院学士学位论文 里的数据,修改成功后提示成功信息,否则提示失败。
用户信息管理模块:在列表中选中一用户,然后点击修改信息按扭,出现一个修改信息的对话框。里面包括姓名、性别、年龄、职称内容。
门禁控制模块:当射频区域识别到已授权标签时,点击“感应开锁”,则开动电子锁。当标签离开射频区域,5秒后自动关闭门锁。
考勤模块:点“查看考勤”按扭,弹出新的对话框,可分两个条件供筛选,搜查内容在列表框中显示。列表框产生颜色改变以突显搜查到的信息。
31
沈阳理工大学应用技术学院学士学位论文 结 论
利用RFID无线射频技术实现了门禁系统的管理与运用,本系统通过Microsoft Visual C++和Microsoft SQL环境对门禁系统进行了测试与实现,通过识读、查询、添加、修改、删除信息、信息查询、人员管理、统计查询、系统维护工作正常,验证系统是可行的。而且也符合系统的需求分析、系统功能分析、系统框架设计的要求。通过射频卡读写设备控制模块读出后,即可进行相应的操作,实现不同的功能,保证了门禁信息管理的灵活性和数据信息查询的快速性。
当然,当然本系统虽然项目实现了基本的功能,但仍还有许多不足之处。比如本系统所用的无线非接触卡未能准确的显示出信息,卡信息容易被复制或修改的安全隐患等,这些都有待进一步的改进和完善。
32
沈阳理工大学应用技术学院学士学位论文 致 谢
短短的三个多月的毕业设计过去了,在此毕业论文完成之际,我衷心感谢在大学四年来所有老师的辛勤教诲,特别感谢我的指导老师李志。在整个的设计过程中,老师在百忙之中对我热心指导、严格要求,在选题、系统总体设计与技术方案上,给予了宝贵的意见,帮助我建立了正确的设计思想,保证了课题的研究和开发工作的顺利完成。使我不仅仅学到了学术方面的知识,更树立了严谨的学习态度。
其次我要感谢四年来传授我知识的老师们,你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础,一路走来,从你们的身上我收获无数,却无以回报,谨此一并表达我的谢意!还要感谢在背后默默支持鼓励我完成学业的父母和朋友,感谢他们多年来在生活和精神上给予我的热情帮助和支持!在本文的写作过程中,我参阅了国内外大量的资料。除在参考文献中注明主要参考书外,我还借鉴了大量著作文献,并引用了部分作者的部分资料,在此向所有文献的作者致谢!
再次衷心的向所有指导、关心、照顾和帮助过我的领导、老师、同学们表示最真挚的谢意!谢谢大家!
33
沈阳理工大学应用技术学院学士学位论文 参考文献
[1] 陈国栋.基于射频识别技术的门禁系统研究与设计[D].硕士论文长沙:中南大
学,2005.01.01
[2] 黄菊生.基于智能IC卡的网络门禁系统设计与开发[D].硕士论文长沙:湖南大
学,2003.10.10
[3] 游战清,李苏剑,张益强等.无线射频识别技术(RFID)理论与应用[M].北
京:电子工业出版社,2004
[4] 安静宇.基于非接触式IC卡门禁系统的设计[D].西安科技大学,2006 [5] 康行健.天线原理与设计[M].国防工业出版社,1998.65-73
[6] 韩瑜,焦小澄.高效的LCD模块显示程序设计方法.计算机工程与应用.2004,
22(1):123-126
[7] 王振宇,成立.I2C总线数据存储器在单片机系统中的用法.浙江大学学报.2006,
32(2):195-215
[8] 赵妍妮.I2C总线的单片机C语言实现及应用[J].微机发展,2001(4):7174 [9] 余永权.ATMEL 89系列单片机应用技术[M].北京:北京航空航天大学出版社,
2002
[10] 何立民.单片机应用选集.清华大学出版社,2004:154-189
[11] 张毅刚,彭喜元,姜守达.新编MCS-51单片机应用设计.第二版.哈尔滨工
业大学出版社,2006:45-86
[12] 施平安,段超,郝清赋:《C++程序设计教程》[M],冶金工业出版社,2007年
版。
[13] Paul S.Wang,李健 译:《标准C++与面向对象程序设计》[M], 机械工业出
版社2003版。
[14] 周晓光,王晓华:《射频识别(RFID)技术原理与应用实例》[M], 人民
邮电出版社2006 版。
[15] 袁启昌,袁海宁,华飞君:《C++语言程序设计》[M],清华大学出版社,2004
年版。
[16] 石秀民,魏洪兴:《嵌入式系统原理与应用—基于Xscale与Linux》[M],北京
航空航天大学出版社,2007年版。
34
沈阳理工大学应用技术学院学士学位论文 附录A API命令返回状态标识定义
表6-1 API命令返回状态标识定义表
状态标识 0x00 0x10 0x11 0x12 0x13 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0x0F 0x01 0x7E 0x7F 0x7D 0x80
描述 No errors encountered Header is error Send packet length is error No command code No sub command Write data length is error Mask data length is error Response is none CRC Check is error Parameter is error Initialize is error Parameter length is error Access tag is error Inventory is error Failed to port initialize Failed to port receive Failed to port send Remnant tags need to take out 35
沈阳理工大学应用技术学院学士学位论文 附录B 部分源程序代码
1、登陆窗体主要程序代码 Option Explicit
Dim cnt As Integer '记录确定次数 Private Sub Command1_Click() Dim sql As String
Dim rs_form1 As New ADODB.Recordset
If Trim(Text1.Text) = \"\" Then '判断输入的用户名是否为空 MsgBox \"没有这个用户\", vbOKOnly + vbExclamation, \"\" Text1.SetFocus Else
sql = \"select * from 系统管理 where 用户名='\" & Text1.Text & \"'\" rs_form1.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_form1.EOF = True Then
MsgBox \"没有这个用户\", vbOKOnly + vbExclamation, \"\" Text1.SetFocus
Else '检验密码是否正确 If Trim(rs_form1.Fields(1)) = Trim(Text2.Text) Then userID = Text1.Text userpow = rs_form1.Fields(2) rs_form1.Close Unload Me Form2.Show Else
MsgBox \"密码不正确\", vbOKOnly + vbExclamation, \"\" Text2.SetFocus End If End If End If cnt = cnt + 1
36
沈阳理工大学应用技术学院学士学位论文 If cnt = 3 Then Unload Me End If Exit Sub conn.Close End Sub
Private Sub Form_Load() Dim connectionstring As String
connectionstring = \"provider=Microsoft.Jet.oledb.4.0;\" & _ \"data source=book.mdb\" conn.Open connectionstring cnt = 0 End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then Text2.SetFocus End Sub
2、 数据维护窗体主要程序代码
while(!rs.IsEOF())//遍历数据库
if (GetDlgItem(IDC_EDITNAME)->GetWindowText(name),name == {
rs.GetFieldValue(\"name\", varName); rs.GetFieldValue(\"code\", varCode);
varName)
{
if (GetDlgItem(IDC_EDITCODE)->GetWindowText(code),code ==
varCode)
{
37
沈阳理工大学应用技术学院学士学位论文
}
CDialog::OnOK();//用户与密码检验正确刚跳进主界面 Shell_NotifyIcon(NIM_DELETE, &nd); dlg.DoModal(); b_login = TRUE;
} }
rs.MoveNext();
if (b_login == FALSE)// 用户与密码检验错误 {
MessageBox(\"密码或用户名错误\");
} }
void CConnectDLG::OnConnectBTN() //连接函数 {
CString str;
// comm name
rs.Close(); db.Close();
CComboBox* pCombo1 = (CComboBox*)GetDlgItem(IDC_COMBO_COM); pCombo1->GetLBText(pCombo1->GetCurSel(),str); str.MakeUpper(); if (g_hCom != NULL) {
GetUID(C_HINT),MB_OK);
(!::IsWindowEnabled(GetDlgItem(IDC_BUTTON_CLOSE)->GetSafeHwnd())) }
int i = 1;
status = rfidapi03_open (g_hCom,str.GetBuffer(0)); if (status != ERR_NONE)
38
沈阳理工大学应用技术学院学士学位论文 {
pstr = GetUID(C_OPEN_COM_FAIL); ShowInfo(pstr.GetBuffer(0)); }
3、 挂失申请窗体主要程序代码
Private Sub Command1_Click() If Option1 = True Then
Data1.Recordset.FindFirst \"学号='\" & Text1.Text & \"'\" If Data1.Recordset.NoMatch Then
MsgBox \"没有该生!请重新输入!\", vbOKOnly Else Form3.Show
Form3.Command1.Visible = False Form3.Command4.Visible = False Form3.Command3.Visible = False
Form3.Data1.Recordset.FindFirst \"卡号='\" & Form5.Text1.Text & \"'\" Form3.Command2.Visible = False
'MsgBox \"挂失成功!请于三天之后到后勤补办新卡!\", vbOKOnly + vbInformation, \"系统提示\"
'Unload Me End If End If
If Option2 = True Then Form3.Show
Form3.Command1.Visible = False }
OnDisconnectBTN(); b_connect = FALSE;
GetDlgItem(IDC_ConnectBTN)->EnableWindow(TRUE); GetDlgItem(IDC_DisconnectBTN)->EnableWindow(FALSE);
39
沈阳理工大学应用技术学院学士学位论文 Form3.Command4.Visible = False Form3.Command3.Visible = False Form3.Command2.Value = True End If End Sub
40
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务