基于RFID技术关于门禁系统的设计.docx
《基于RFID技术关于门禁系统的设计.docx》由会员分享,可在线阅读,更多相关《基于RFID技术关于门禁系统的设计.docx(35页珍藏版)》请在冰豆网上搜索。
![基于RFID技术关于门禁系统的设计.docx](https://file1.bdocx.com/fileroot1/2023-2/6/72a9b25b-d06d-48ad-b79d-bec242a4ce30/72a9b25b-d06d-48ad-b79d-bec242a4ce301.gif)
基于RFID技术关于门禁系统的设计
摘要
RFID技术在无线电技术方面得到广泛应用与发展,其基本原理是利用射频方式进行非接触双向通信,以达到识别与数据交换的目的。
本设计是基于RFID技术的门禁系统,利用其非接触式无线识别的特点,能够对进出小区的人员进行自动识别,同时自动开启和关闭道阀,将出入口的控制从被动防守变为主动监控,从而加强对小区人员和校园等重要场所进出人员的管理,极大提高人员出入的效率,减少管理方面的混乱局面,节约人力成本,并且为公共场所的安全提供了极大地方便和保障。
在生活中有些场合并不是任人自由进出的,而只允许有进出权限者通行,这时,就得使用出入口管理系统即门禁系统。
传统的门锁是最古老、最简单的门禁方式,一把锁配一把钥匙,几把锁就要配几把钥匙,使用不便。
为了适应信息时代的需要,保证建筑内部的安全性,满足用户当时的各种需求,智能门禁系统应运而生。
根据市场需求设计一款基于RFID的门禁系统。
本设计采用AT89C51作为主控芯片,用奥尔斯实验箱中的HF模块专用读卡器模块用来读射频卡的信息,当有卡进入到读卡器读卡的范围内时就会读取到相应的卡序列号,并根据得到的卡序列号做出相应的操作。
在扩展时采用Delphi软件做上位机,并建立一个Access数据库用来存储用户信息。
上位机与下位机之间的通信采用串口通信,选用奥尔斯实验箱完成上、下位机之间的通信。
本设计实现了自动、准确的识别卡序列号,对门禁系统起着重要的作用。
本设计给出了系统的总体结构,并对主要组成部分的功能及具体实现做了阐述。
关键词:
门禁系统射频识别读卡器数据库RFID技术无线识别
一前言…………………………………………………………2
二案例描述……………………………………………………3
三需求分析……………………………………………………4
3.1实验箱模块的选择………………………………………4
3.2系统语言的选择……………………………………………5
3.3数据交换方式………………………………………………6
3.4应用程序的结构……………………………………………7
3.4.1显示子程序………………………………………………7
3.4.2密码子程序………………………………………………8
3.5存储系统的设计及分析……………………………………9
3.6系统模块的总体设计………………………………………11
3.6.1系统硬件设计…………………………………………12
3.6.2系统软件设计…………………………………………12
四系统的整体描述和实现……………………………………13
4.1射频识别的简单描述……………………………………13
4.2软件结构的实现…………………………………………15
4.3系统功能的具体实现……………………………………17
4.3.1系统软件调试……………………………………………17
4.3.2系统整体调试…………………………………………18
五课程设计总结………………………………………………22
六参考文献……………………………………………………23
七致谢……………………………………………………24
八附录……………………………………………………25
一前言
射频识别(RadioFrequencyIdentification,RFID)技术是从20世纪80年代开始走向成熟的一项自动识别技术,是当前最受人们关注的热点之一,该项技术既传统也充满新意和活力。
射频识别是无线电识别的简称,即通过无线电波进行识别。
它源于无线电通信技术,综合了现代计算机智能控制、智能识别、计算机网络等高新技术,顺应了计算机集成制造系统,电子商务等热点应用的发展需要。
射频识别应用电磁场,以非接触、无视觉、高可靠的方式传递特定识别信息,由于大规模集成电路技术的日益成熟,使得射频识别系统的体积大大减少,从而进入了实用化阶段。
射频识别技术具有工作距离大、信息收集处理快捷及较好的环境适应性等优点,极大地加速了有关信息的采集和处理,在近年来获得了极为迅速的发展。
基于RFID的考勤系统设计是将射频识别技术应用到家庭安防系统中的一次成功尝试。
这一系统克服了家庭生活中居住的安全性不能得到保证的弱点,能够有效地提高家庭安防系统的能力,为居家生活提供更好的,更安全的保障。
二案例描述
门禁系统,又称人口控制系统.在何时允许某些人进出,拒绝某些人进出,什么情况下要发生报警,记录人员的出入状况,是门禁系统最基本的功能.智能的RFID门禁系统是对楼房中的重要通道进行管理。
在门口,电梯,等人员来往频繁或重要的地方安装控制装置,例如:
读卡器,键盘等,人员想要进入必须有卡才能通过,大大增强的安全性。
基于RFID技术的门禁系统作为智能门禁系统的“骨干”,已经成为了一项先进的高科技技术防范和管理手段,在一些经济发达的国家已经广泛的应用于科研,工业,博物馆,酒店,商场,医疗监护,银行,监狱等,已成为安防技术重点研究和开发的对象。
1994年RFID技术进入中国,引发了中国RFID技术的应用革命。
在我国基于RFID的智能门禁系统的使用仍然处于发展状态,因此对射频识别技术在门禁系统方面的应用理论及实际可行性及实用性研究的重中之重。
近几年,关于识别系统的通讯模式,指纹等生物识别设备的集成管理及DVR系统的集成成为现代门禁系统发展的亮点。
另外,作为蓬勃发展的生物识别技术,随着其辨别技术的的不断成熟,以及人们对这类产品的进一步了解,若价格因素能保持人们可以接受的范围内,那么,该技术的应用前景将是十分广泛的。
射频识别(RFID,即RadioFrequencyIdentification)技术是自动识别技术在无线电技术方面的具体应用与发展,其基本原理是利用射频方式进行非接触双向通信,以达到识别与数据交换的目的[1]。
具有高精度、适应环境能力强、抗干扰强、操作快捷等优点,能够实现无线自动识别,主动监控的功能。
RFID技术作为一项先进的自动识别和数据采集技术,在实际应用中取得了显著的成效,已经成功应用到生产制造、物流管理、公共安全等各个领域。
随着RFID技术的日益成熟和普及,各国政府都意识到RFID技术的研究价值和蕴涵的巨大商机,制定相关政策加大财力、物力投资,积极推动本国RFID技术发展。
RFID技术的运用是非接触式IC卡目前的潮流,更快的响应速度和更高的频率是未来的趋势。
三需求分析
3.1实验箱模块的选择
本次实验选择的是实验箱中的高频模块,即HF高频下识别卡不需要绕制线圈,可以通过印刷的方式制作天线。
识别卡一般是负载调制的方式工作,也就是通过识别卡的负载电阻的接通和断开促使读写器天线上的电压发生变化,实现远距离识别卡对天线电压进行振幅调制。
就频率而言,高频RFID具有以下特性:
①工作频率为13.56MHz,该频率的波长大概为22米。
②除了金属材料外,该频率的波长可以穿过大多数的材料,但是往往会降低读取距离。
识别卡(感应器)需要离开金属一段距离。
③该频段在全球都得到认可并没有特殊的限制。
④该系统具有防冲撞特性,可以同时读取多个识别卡。
⑤可以把某些数据信息写入识别卡中。
⑥数据传输速率比低频要快且价格不是很贵。
高频RFID主要应用有:
◎航空包裹的管理和应用
◎瓦斯钢瓶的管理应用
◎预收费系统
◎酒店门锁的管理和应用
◎大型会议人员通道系统
◎固定资产的管理系统
◎医药物流系统的管理和应用
◎智能货架的管理
系统运行简要说明:
①:
上电后,430先通过并口访问7970芯片,在没有读到卡时,程序运行在串口读写模式,并每隔0.5s向串口发送一个“D”,直到有写操作为止。
②:
当有卡读写时,针对相应的卡,程序进入不同的协议中,并且点亮相应的LED灯。
(2)API调用说明
①:
上电后,配置完内部寄存器,程序进入串口读写程序,可以进行人机交互。
②:
当读到不同协议的卡时,程序退出串口读写程序,进入相应的协议子程序中(目前支持14443A协议和15693协议)。
读完卡后,退出相应的协议子程序,进入串口读写程序。
(3)ISO15693第三部分
通过读卡器获取指令流,读卡器采用TItrf7970读卡器芯片,开发资料参考协议ISO15693,trf7970datasheet,参考trf7960EVM.pdf实现ISO15693第三部分指令部分,防碰撞实验。
高频读写模块中,利用高频卡可以进行识别操作,因此高频读写有以下特性:
1.支持近场通讯(NFC)标准NFCIP-1(ISO/IEC18092)和NFCIP-2(ISO/IEC21481)2.用于ISO15693、ISO18000-3、ISO14443A/B、和FeliCa的完全集成的协议处理3.集成编码器、解码器和用于NFC启动程序的数据成帧,对所有3个比特率(106kbps,212kbps,424kbps)的有源和无源目标操作及卡仿真。
4.用于NFC无源发射机应答器仿真操作的具有可编程唤醒电平的RF场侦测器。
5.用于NFC物理冲突避免的RF场检测器。
6.用于ISO14443A防冲突(不完整字节)操作(发射机应答器仿真或者NFC无源目标)的集成状态机。
7.输入电压范围:
2.7VDC至5.5VDC。
8.可编程输出功率:
+20dBm(100mW),+23dBm(200mW)。
9.可编程I/O电压电平从1.8VDC至5.5VDC。
3.2开发语言的选择
软件结构框图:
系统软件主要包括信号处理和系统管理两个部分,信号处理模块采用C语言编程,系统管理部分软件采用MicrosoftVisualC++编程,VC++是Windos平台上的C++编程环境,学习VC要了解很多Windos平台的特性并且掌握MFC、ATL、COM等的知识,C++的具有就是界面简单,占用资源少,操作方便的特点。
其中建立了一个中间数据库,编程简单,开发时间短,能够实现双卡识别功能,控制道阀自动开启和关闭,同时具有报警功能。
其软件流程图如下图1所示。
图一软件结构框图
3.3数据交换的方式
本次设计采用数据库存储用户信息及数据,执行程序之前,首先要设置串口波特率等相关串口参数,然后上位机通过串口向下位机发送命令,并进入串口中断。
下位机根据接收SBUF的值做相应的处理。
程序流程图如图2所示
图2数据采集子程序流程图
3.4应用程序的结构
3.4.1显示子程序
显示子程序的主要功能是对当前的门控状态进行显示,显示函数首先判断是写命令操作还是写数据操作,若是写命令操作,则根据命令进行相应的操作,如清屏、设置显示模式等;若是写数据操作,则在显示器上显示相应数据。
程序流程图如图3所示。
图3显示子程序流程图
3.4.2密码子程序
密码子程序流程图如图4所示,当程序运行时,会一直判断是否有按键被按下,当有按键被按下时,系统会确定键值,关将键值存入到密码数组里,然后将输入的密码与本身的密码做比较,若相同,则执行开门和显示正确信息的操作;若不相同,则执行报警和显示错误信息的操作。
密码子程序是整个门禁系统的关键部分,因为在通过密码程序的实施之后,才可以进行数据的访问与访问者的信息匹配,因此,密码系统就好比整个门禁系统的大门,它是连接访问者与数据的关键一环。
其中,密码程序的代码如下:
P1=0x0f;
if(P1!
=0x0f)compare(P1);
for(n=0;n<10;n++)
if(input[n]!
=password[n])break;
if(n==10)
{if(m<10)continue;
WriteLcdCom(0x01); //清屏
WriteLcdCom(0x80);//第一行数据指针地址
for(s=0;s<16;s++)
WriteLcdDat(str2[s]);
LEDG=0;
BUZ=0;
delay_10ms(20);
LEDG=1;
BUZ=1;
WriteLcdCom(0x01);
input[0]="";}
elseif((n<10)&&(P1==0xbd))
{WriteLcdCom(0x01); //清屏
WriteLcdCom(0x80);//第一行数据指针地址
for(s=0;s<16;s++)
WriteLcdDat(str4[s]);
LEDR=0;
for(s=0;s<5;s++)
{BUZ=0;
delay_10ms(20);
BUZ=1;
delay_10ms(20);}
LEDR=1;}
密码子系统的流程图如下:
图4密码子程序流程图
3.5存储系统的设计及分析
本设计中数据的存储芯片选用的是AT24C04,该芯片是串行的E2PROM,支持I2C总线数据传送协议。
程序流程图如图5所示。
图5存储系统程序流程图
当我们完成对存储过程的分析之后,我们需要对存储过程加以实施,此时,就需要编写存储程序的代码,存储程序核心的代码如下:
voideeprom()
{write_byte(0,0x1e);
write_byte(1,0xda);write_byte(2,0x62);write_byte(3,0xb6);
write_byte(4,0x25);write_byte(5,0xee);write_byte(6,0xde);
write_byte(7,0xb6);write_byte(8,0x05);write_byte(9,0xc8);
write_byte(10,0x43);write_byte(11,0xb8);write_byte(12,0x3a);
write_byte(13,0x04);write_byte(14,0x5d);write_byte(15,0xb6);}
bitshout(ucharwrite_data)//从MCU移出数据到AT89C51
{uchari;bitack_bit;
for(i=0;i<8;i++)//循环移入8个位
{SDA1=(bit)(write_data&0x80);
_nop_();
SCL1=1;
delayNOP();
SCL1=0;
write_data<<=1;}
SDA1=1; //读取应答
delayNOP();
SCL1=1;
delayNOP();
ack_bit=SDA1;
SCL1=0;
returnack_bit; //返回AT24C04应答位
}
voidwrite_byte(ucharaddr,ucharwrite_data)
{start();
shout(OP_WRITE);
shout(addr);
shout(write_data);
stop();
delay_10ms
(1);}
3.6系统模块的总体设计
依据上述功能的分析,系统中模块分别为:
数据采集模块、数据处理模块、数据存储模块、显示模块、串口发送/接收模块、密码输入模块、报警机制模块。
系统功能结构图如图6所示,各功能模块具体功能如下:
1.数据采集模块:
当RFID卡进入到读卡器读卡范围时,读卡器读取卡序列号的过程。
2.数据处理模块:
针对于采集到的数据处理,从而对得到的数据进行判断其有效性。
3.数据存储模块:
用来存储数据。
4.显示模块:
用来接收单片机发送的数据,并对数据进行操作从而得到要显示的信息。
5.串口发送/接收模块:
主要用来通过串口发送和接收数据。
6.密码输入模块:
针对于用按键输入密码,根据密码的正确与否来进行相应的操作。
7.报警机制模块:
当出现非法卡或输入的密码不正确时产生报警。
图6系统功能结构图
3.6.1系统硬件设计
系统硬件设计主要由AT89C51主控芯片和ISO/IEC15693读卡器模块构成。
硬件电路由八部分构成:
微控制器AT89C51、读卡器模块ISO/IEC15693、LCD1602显示、串口通信MAX232、按键电路、AT24C04存储、报警电路、门控电路。
微控制器AT89C51负责读卡器模块ISO/IEC15693的初始化,上位机通过串口向ISO/IEC15693发送命令,ISO/IEC15693根据上位机发送的命令做相应的操作,然后将得到的信息传送给微控制器AT89C51,然后微控制器控制其它模块完成显示、报警、判断和门控操作。
上位机与下位机之间的连接主要是通过串口进行通信,采用MAX232芯片并将芯片的输入和输出管脚连接到AT89C51的I/O口,在MAX232的引脚上连接10µF的电解电容用来滤波。
读卡器模块ISO/IEC15693与微控制器AT89C51之间的通信是通过I2C总线进行的,由于AT89C51单片机本身并没有I2C总线,所以将ISO/IEC15693模块的串行时钟线与数据线接到AT89C51的两个I/O口,然后通过模拟I2C时序来完成AT89C51与ISO/IEC15693之间的通信,为了防止出现三态,在ISO/IEC15693的串行时钟线和数据线上分别上拉10k电阻。
而ISO/IEC15693读卡器与RFID卡之间的数据通信主要是通过天线进行的。
AT24C04与AT89C51之间的通信也是通过模拟I2C时序进行,同时为了防止出现三态,在时钟线与数据线上分别连接5.1k的上拉电阻。
LCD1602与AT89C52之间的通信是通过将LCD1602的3条控制线和8条数据线与AT89C51的I/O口相连。
对于按键电路的设计是将3*4按键直接连接到AT89C51的7位I/O口,采用线反转法通过查询方式进行工作。
3.6.2系统软件设计
软件主要实现数据的采集,数据的分析,模块之间的通信,以及相应的数据处理。
1.数据采集:
读卡器ISO/IEC15693通过天线读取RFID卡的数据,然后将数据传送出去。
2.数据分析:
AT89C51接收到数据后,将数据传送给AT24C04或上位机,AT24C04或上位机对数据进行分析,从而判断数据的有效性。
3.模块之间的通信:
AT89C51与ISO/IEC15693/AT24C04之间的通信都是通过模拟I2C总线进行的,I2C总线的高效性、高实用性、高可靠性数据传输增强了系统的实时性和可靠性。
4.数据处理:
针对数据的采集和分析的结果做出相应的处理,例如显示、报警、门控等。
四系统的整体描述和实现
4.1射频识别的简单描述
在本设计中,采用的是射频识别技术。
下面对射频识别技术做一下简要介绍:
1.射频识别技术原理
通常情况下,RFID的应用系统主要由读写器和RFID卡两部分组成的,见下图7。
其中,读写器一般作为计算机终端,用来实现对RFID卡的数据读写和存储,它是由控制单元、高频通讯模块和天线组成。
而RFID卡则是一种无源的应答器,主要是由一块集成电路(IC)芯片及其外接天线组成,其中RFID卡芯片通常集成有射频前端、逻辑控制、存储器等电路,有的甚至将天线一起集成在同一芯片上。
RFID应用系统的基本工作原理是RFID卡进入读写器的射频场后,由其天线获得的感应电流经升压电路作为芯片的电源,同时将带信息的感应电流通过射频前端电路检得数字信号送入逻辑控制电路进行信息处理,所需回复的信息则从存储器中获取经由逻辑控制电路送回射频前端电路,最后通过天线发回给读写器。
可见,RFID卡与读写器实现数据通讯过程中起关键的作用是天线。
一方面,无源的RFID卡芯片要启动电路工作需要通过天线在读写器天线产生的电磁场中获得足够的能量;另一方面,天线决定了RFID卡与读写器之间的通讯信道和通讯方式。
图7射频识别系统原理图
2.射频识别系统典型结构
射频识别系统的典型结构见图8,主要是由两部份组成:
读写器和射频卡。
读写器同射频卡之间通过无线方式通讯,因此它们都有无线收发模块及天线(或感应线圈)。
射频卡中有存储器,内存容量为几个比特到几十千比特。
可以存储永久性数据和非永久性数据。
永久性数据可以是射频卡序列号,它是用来作为射频卡的唯一身份标识,不能更改;非永久性数据写在E2PROM等可重写的存储器内,用以存储用户数据。
射频卡可以根据读写器发出的指令对这些数据进行相应的实时读写操作。
控制模块完成接收、译码及执行读写器的命令,控制读写数据,负责数据安全等功能。
射频卡分无源卡和有源卡两种,有源卡内置天线和电池,而无源卡只有内置天线没有电池,其能量由读写器提供,由于无源卡无需电池因此其尺寸较小且使用寿命长,应用越来越广泛。
读写器内的控制模块往往具有很强的处理功能,除了完成控制射频卡工作的任务,还要实现相互认证、数据加解密、数据纠错、出错报警及与计算机通信等功能。
计算机的功能是向读写器发送指令,并与读写器之间进行数据交换。
图8RFID系统典型结构
图8为RFID系统的工作过程,这是一个无源系统,即射频卡内不含电池,射频卡工作的能量是由射频读写模块发出的射频脉冲提供。
(1)射频读写模块在一个区域内发射能量形成电磁场,区域大小取决于发射功率、工作频率和天线尺寸。
(2)射频卡进入这个区域时,接收到射频读写模块的射频脉冲,经过桥式整流后给电容充电。
电容电压经过稳压后作为工作电压。
(3)数据解调部分从接收到的射频脉冲中解调出命令和数据并送到逻辑控制部分。
逻辑控制部分接收指令完成存储、发送数据或其它操作。
(4)如果需要发送数据,则将数据调制然后从收发模块发送出去。
(5)读写模块接收到返回的数据后,解码并进行错误校验来决定数据的有效性,然后进行处理,必要时可以通过RS232或RS422或RS485或RJ45或无线接口将数据传送到计算机。
读写器发送的射频信号除提供能量外,通常还提供时钟信号,使数据同步,从而简化了系统的设计。
有源系统的工作原理与此大致相同,不同处只是卡的工作电源由电池提供的。
4.2软件结构的实现
4.2.1系统的整体软件结构
系统软件设计是整个系统设计的重要部分,在硬件电路的基础上,加上软件编程才可以实现系统预期的功能。
在本系统中,软件的设计主要包括:
数据采集模块、存储模块、显示模块、门控模块、报警模块、键盘模块和上位机软件的设计几个方面。
本系统的软件结构框图如图9所示。
1.数据采集模块:
读卡器ISO/IEC15693通过天线读取RFID卡的数据,然后将数据传送出去。
2.存储模块:
AT89C51接收到数据后,将数据传送给AT24C04进行存储。
3.显示模块:
AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若两者完全相同,则液晶显示正确的信息;若不相同,则液晶显示错误的信息。
4.门控模块:
AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若两者完全相同,则进行开门操作;若不相同,则不开门。
5.报警模块:
AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若不相同则报警。
6.键盘模块:
通过键盘输入密码,并根据输入密码的有效性做相应的操作。
图9软件结构框图
串口发送/接收部分的调试:
将电路板与计算机连接以后,用一段简单的程序进行调试。
发现在调