RFID打卡器完整报告.docx
- 文档编号:9758134
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:34
- 大小:1.14MB
RFID打卡器完整报告.docx
《RFID打卡器完整报告.docx》由会员分享,可在线阅读,更多相关《RFID打卡器完整报告.docx(34页珍藏版)》请在冰豆网上搜索。
RFID打卡器完整报告
1.系统方案描述……………………………………………………
2.电路设计…………………………………………………………
2.1读写天线及其电路的设计…………………………………
2.1.1低通滤波电路……………………………………
2.2.2接受电路…………………………………………
2.3.3天线匹配电路……………………………………
2.4.4天线圈……………………………………………
2.2MCU控制电路设计……………………………………
2.3射频部分电路设计………………………………………
2.4声音提示及显示部分电路设计
2.5串行通信部分电路设计…………………………………
3.程序设计……………………………………………………
4.测试方案和测试结果……………………………………
4.1硬件测试(结合软件)…………………………………
4.2软件测试…………………………………………………
5.附录
5.1电路原理图………………………………………………
5.2重要的源程序……………………………………………
5.3完整的测试结果……………………………………………
题目名称:
RFID打卡器和射频卡设计
摘要:
本次作品RFID射频打卡器是基于芯片MFRC500进行设计的,MFRC500是基13.56MHz无线通讯的一个新系列高度集成读卡器IC的成员MFRC500支持IS14443的所有层,内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线(可达100mm)。
选用单片机STC89C58RD+来对射频基站部分进行初始化,对串行通讯部分进行初始化,控制通讯部分完成与上位机进行串行数据通讯,接收上位机的命令,通过控制射频部分完成对非接触式IC卡进行各种操作。
同时控制LED,蜂鸣器的工作。
关键词:
RFID射频打卡器MFRC500STC89C58RD+
Abstract:
ThisworkisbasedonRFIDradiochipMFRC500punchdevicedesigning,MFRC50013.56MHzwirelesscommunicationisthebaseofanewfamilyofhighlyintegratedreaderICmembersMFRC500supportIS14443allthelayersPartoftheinternaltransmitterwithoutadditionalactivecircuitrytodirectlydrivetheantennaclosetooperatingdistance(upto100mm)insidethetransmitterpartoftheincreaseinactivecircuitrycannotdirectlydrivetheantennaclosetooperatingdistance(upto100mm)STC89C58RD+microcontrollertousethebasestationRFpartsoftheinitializationpartoftheserialcommunicationisinitialized,controlthecompletionofcommunicationwiththecomputerserialdatacommunication,thereceivinghostcomputer'scommand,bycontrollingtheRFpartofthecompletionofthenon-contactTypeICcardforvariousoperations.SimultaneouscontrolofLED,buzzerwork.
Keywords:
RFIDradiofrequencyclockingdeviceMFRC500STC89C58RD+
1.系统方案描述
系统主要是由MCU模块、蜂鸣器及液晶显示模块、射频模块、串行通信模块、MFRC500模块、天线模块组成。
系统的工作方式主要是,先由MCU控制MFRC500驱动天线对射频卡,进行读写操作。
然后根据所得的数据对其它接口器件,如液晶屏、蜂鸣器进行响应操作,最后,与PC机之间进行通信,把数据传送给上位机。
单片机选用的是STC89C58RD+,该单片机是一款超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,而且他支持ISP(在系统编程)/IAP(在应用可编程),无需专用的编程器、仿真器,可通过串口
(P3.0、P3.1)直接下载程序。
射频部分是非接触式IC卡读写器的关键部件,通过该部分与非接触式卡进行数据通信。
射频部分的主要部件就是射频基站芯片,这里选用的是NXP公司的射频基站芯片MFRC500。
MFRC500支持IS014443A的所有层协议。
内部的发送器不需要增加有源电路就能够驱动近距离天线实现通信(通信距离可达lOOmm)。
接收部分提供一个坚固而有效的解调和解码电路,用于处理IS014443A兼容的非接触式IC卡的信号。
系统总框图如下:
2、电路设计
2.1.读写器天线及其电路的设计:
天线部分包括低通滤波电路、接收电路、天线匹配电路和天线线圈四个部分。
天线拾取的信号经过天线匹配电路送到RX脚。
MFRC50O的内部接收器对信号进行检测和解调并根据寄存器的设定进行处理。
然后数据发送到并行接口。
由微控制器进行读取。
MFRC50O对驱动部分使用单独电源供电。
电路设计天线直接连接的匹配电路如下所示。
(图1)
2.1.1、低通滤波电路:
阅读器的工作频率由一个13.56MHz的石英晶体产生,在产生驱动RC500以及驱动
天线的能量载波的基频同时石英晶体也产生高次谐波。
由国际EMC规定可知,为了抑制住13.56MHz中的三次、五次和高次谐波,设计电路时在射频模块发送端口即TXl脚,IX2脚和地TVSS脚之间引入一个低通滤波器电路。
该低通滤波器电路如同图1所示,其中电感L1、L2为2.2uH,电容C29、C30为68pF。
2.1.2、接收电路:
RC500的内部接受电路是利用非接触式IC卡的返回应答信号在副载波的双边带上都有调制这一概念来工作的。
根据RC500的芯片手册,由RC500芯片内部所产生的VMID作为接收信号引脚RX的输入偏置。
为了减少干扰,提供一个稳定的参考电压,在VMID和地TVSS之间连接了一个O.1uF电容C50,同时在RX和VMID引脚间连接了一个4.7k的电阻R4作为分压器,R5为2.7K,C9为220pF。
2.1.3、天线匹配电路:
由于天线本身的阻抗并不高,需要一个匹配电路连接射频部分。
天线匹配电路设计的是否合理直接影响到天线是否能够正常工作。
下图1.2为天线的匹配电路,由于电路的对称性,可将电路简化为图1.3的电路图
(图1.2天线匹配电路)(图1.3简化的匹配电路)
图中线圈电阻:
在设计直接匹配天线的匹配电路时,电容Cl。
和C2a的值由天线本身和环境影响来决定。
(1)估算匹配电路的电容初值:
(2)计算外部电阻REXT:
要降低原始的品质因素q,需要增加一个外部电阻REXT,REXT值用下面的公式算出:
2.1.4、天线线圈的设计:
天线线圈的等效电路如图1.4所示:
(图1.4天线线圈等效电路)
其中,L=La+Lb为线圈总电感,R=2RcoiI为线圈总电阻。
(1)线圈电感的估算:
天线线圈的电感可由阻抗分析仪测量得到。
采用公式估算的方得到近似的电感值。
天线电感的估算公式如下:
其中,
为为线圈电感,l为线圈一圈的长度,D为导线宽度,N为
线圈匝数,Q为形状系数:
圆形线圈Q=1.07,矩形线圈Q=1.54。
(2)线圈电阻的估算:
系统的工作频率是13.56MHz,在这个频率范围内不能用DC电阻Rtx:
来描述天线
线圈的电阻。
集肤效应(skineffect)不能忽略。
在没有阻抗分析仪的情况下首次天线调谐的估算可以用下面的公式:
增加线圈的匝数N可增大线圈的磁通量密度B,延长线圈的有效工作距离,而天线线圈电感L与线圈匝数N的1.8次方成正比,增加匝数N会使线圈的电感L增大,如前所述,大的线圈电感不仅不利于C的匹配,而且会在高频范围内产生负面效应,如大的反射功率等【321。
所以必须在线圈能提供足够大的磁通量密度情况下保证线圈匝数N尽可能的小。
综合以上考虑以及设计手册,天线线圈La、Lb匝数均设计为2圈。
为了制作出电感较小的天线线圈,采用在PCB板上用导线绕制成矩形线圈的方式制作天线线圈。
环绕的导线线宽为lmm,矩形长宽分别为67mmX53.5mm。
根据公式估算得
≈1.7,uH。
2.2、MCU控制电路设计:
MCU控制部分是非接触式IC卡读写器的控制核心,主要负责对射频基站部分的初
始化工作,对串行通讯部分进行初始化,控制通讯部分完成与上位机进行串行数据通讯,接收上位机的命令,通过控制射频部分完成对非接触式IC卡进行各种操作。
单片机选用的是STC89C58RD+,该单片机是一款超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,而且他支持ISP(在系统编程)/IAP(在应用可编程),无需专用的编程器、仿真器,可通过串口(P3.0、P3.1)直接下载程序。
STC89C58RD+最小系统如下图:
(STC89C58RD+最小系统)
2.3、射频部分电路设计:
射频部分是非接触式IC卡读写器的关键部件,通过该部分与非接触式IC卡进行数
据通信。
射频部分的主要部件就是射频基站芯片,这里选用的是NXP公司的射频基站芯片MFRC500。
MFRC500是应用于13.56MHz非接触通信中高度集成读卡IC系列的成员,利用先进的调制和解调概念,完全集成了13.56MHz下所有类型的被动非接触通信方式和协议。
MFRC500支持IS014443A的所有层协议。
内部的发送器不需要增加有源电路就能够驱动近距离天线实现通信(通信距离可达lOOmm)。
接收部分提供一个坚固而有效的解调和解码电路,用于处理IS014443A兼容的非接触式IC卡的信号。
MFRC500及外围电路图如下:
2.4、声音提示及显示部分电路设计:
非接触式IC卡读写器初始化时,读写器发出声音以提示初始化成功。
发声的器件
选用蜂鸣器。
单片机的IO口驱动能力有限,不能直接驱动蜂鸣器发声,通过三极管来驱动蜂鸣器,用STC89C58RD+单片机的P2.1引脚来控制蜂鸣器的发声。
显示部分采用LCDl602液晶显示模块,它具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。
它可以显示两行,每行16个字符,采用单+5V电源供电。
1、LED和蜂鸣器的电路如下:
2.5、串行通讯部分电路设计:
PC机与单片机之间的通信是近距离的串行通信,这里采用RS-232实现。
单片机串口的输入输出均为TTL电平,而PC机的RS-232接口为了提高抗干扰性能,采用RS232标准的EIA电平,所以要实现PC与单片机之间的串行通信,其接口必须进行电平转换。
选用MAX232CPE芯片实现这两种电平之间的转换。
(串行通讯接口电路)
4.测试方案和测试结果
4.1硬件测试(结合软件)
本作品硬件部分主要包括按键、LED、LCD1602、MFRC500、蜂鸣器、天线、串口以及stc89c58rd+芯片。
(按键部分测试略写)
测试条件:
万用表、示波器
第一,测试最小系统。
测试系统时,系统不外接其它硬件,通过示波器测量晶振是否工作正常。
在
确定晶振工作正常的情况下,通过软件控制相应的管脚,输出相应的电平,用万用表测试是否管脚输出
是否正常。
第二,测试串口部分电路。
测试这一部分电路,主要测试标准是通过串口能够下载程序到单片机中,
并且通过串口调试助手调试时,PC和单片机之间可以正确收发数据。
第三,测试LED和蜂鸣器。
本作品LED和蜂鸣器分别用到P2.0和P2.1管脚,所以在测试这两个部分电
路时,通过程序控制相应的管脚,测试能否驱动LED和蜂鸣器即可。
第四,LCD1602液晶屏显示部分电路测试。
本作品中LCD数据接口用到P1,EP、RW、RS分别用到了P3.0、
P3.1、P3.2管脚,这部分测试主要通过软件测试在指定一位置显示一字符即可。
另外,在调试过程中需要
主要的一点就是:
其中LCD管脚上有个调试对比度的管脚,虽然程序可能正确了,但是对比度没有调到合适,
此时也无法显示(本作品通过接上了0~10K的可变电阻来调试对比度)。
第五,测试MFRC500是否正常工作(这一部分测试工作很大部分要结合软件测试在一起,这里只是略微
指出在软件正确情况,MFRC500主要管脚的输出情况)。
在不外接上天线的情况下,测试MFRC500。
通过示波
器,测试该部分晶振(13.56MHZ)是否正常工作,测试TX1和TX2之间是否输出13.56MHZ的正弦波(这一部分也
可以通过万用表来测试,正常情况下,TX1输出高电平,TX2输出低电平)。
另外,测试VMID和RX端是否输出高
电平以及测试其它管脚与单片机管脚之间的连通性。
第六,天线部分测试(这一部分测试主要结合软件和第五步进行测试)。
在测试MFRC500正常工作的情况
下,通过万用表测试天线连接的管脚输入的电平是否正常,一般情况下,只要MFRC500能够正常工作,天线部分
测试很大程度依赖于程序去测试。
测试时要求达到的效果,测试到打卡器最大可以识别卡的距离大约5.5cm。
4.2软件测试
软件测试这一部分又很大程度依赖于硬件的连接是否正确和工作是否正常,所以在进行这一步工作之前,
我们已经把基本的硬件部分问题解决了。
软件测试,本人也是采用分模块进行测试。
第一,把蜂鸣器、LED、LCD和按键作为测试软件的第一部分。
程序设计思路:
蜂鸣器、LED、LCD三者能够同时正常工作,LCD在指定的地方显示指定的字符,本人在程序
中lcd_pos_XX来表示在指定的位置显示指定的内容。
另外,通过按键能够改变蜂鸣器的声音频率。
第二,把蜂鸣器、LED、MFRC500以及天线部分作为测试软件的第二部分。
程序设计思路:
电路上电后,蜂鸣器响一下,LED在整个程序运行中都不停地取反(cpl),此时打卡器进入等
待卡的状态,如果有卡进入感应区域,此时蜂鸣器在不停地响,LED闪烁的频率减少。
第三,把蜂鸣器、LED、MFRC500、天线部分以及LCD作为测试软件的第三部分。
在这一部分里面可以分为几部分进行。
程序设计思路:
首先,通过LCD能够显示卡的序列号。
在第二步完成之后,即当卡进入感应区域,蜂鸣器响,LED闪烁的频率
明显改变,此时通过read_ic函数进行读取卡的序列号,通过lcd_pos_ID来显示序列号,如果正确显示则调试成功
其次,通过read_card_One_Sector读取一个指定扇区中的内容,然后显示在LCD上面。
在这程序设计读取卡
内的16字节数据,但是只是显示了前5字节数据,由于没有写内容进入卡里面,所以LCD上显示的数据全部为00000。
接着,在正确读取一个扇区内容之后,通过write_card_One_Sector向卡里面指定的扇区的指定的块写入指定
的内容。
然后,通过read_card_One_Sector把内容读出,并显示在LCD上,判断是否正确写入相应的字符。
最后,把蜂鸣器、LED、MFRC500、天线部分、LCD以及按键作为测试软件的最后部分。
程序设计思路:
在第三部正确完成的情况下,这一步要现实的效果就是通过两个按键key1和key2来实现轮询切换。
程序实现
的效果:
当key1按下时,切换到轮询"ID",当有卡进入感应区域时,显示相应卡的序列号;当key2按下时,切换到轮
询"NUM"(编号),当有卡进入感应区域时,显示相应卡的编号001(这部分是卡里面自定义的内容);没有按键按下时,
轮询"WHO",当有卡进入感应区域时,显示相应卡的内容DS;
测试结果分析
通过对硬件和软件两大部分内容的测试,测试结果显示:
该作品不仅能够正确的达到了基本要求部分的内容,
而且能够正确实现发挥部分的第一个要求。
附录
1.电路原理图
2.重要的源程序
本团队采用STC89C58RD+作为控制芯片,程序全部以51汇编进行编程,程序内容主要分为3部分:
1、按键部分2、LCD1602显示部分3、MFRC500芯片与天线的结合编程。
以下对每一部分程序进行
简要的分析:
一、按键部分
打卡器用到了两个按键,用作轮询显示控制,定义了P3.4和P3.5分别作为key1和key2的端口,通
过按键打卡器轮询"WHO"切换轮询"ID"(卡序列号)或切换到轮询"NUM"(编号).代码部分如下:
read_key:
setbkey1
setbkey2
nop
nop
nop
nop
nop
movc,key1
movacc.0,c
movc,key2
movacc.1,c
orla,#0fch;先进行逻辑或
cpla
jze_readkey
movwdt_contr,#34h;清看门狗
calldelay5ms;延时5ms键去钭动
jnbkey1,key11;是按键1按下吗?
是的就去处理
jnbkey2,key22;是按键2按下吗?
是的就去处理
ret
;------------------------------------------------------------------
key11:
calllcd_pos_CLR;先清除LCD
calllcd_pos_NO;显示NO轮询
callset_password;设置密码
movSector,#01h;读取第01扇区,第01块的数据
movblock_addr,#01h;
callread_card_One_Sector1;读卡片任一扇区数据
callding1
ajmpreadkey1
;------------------------------------------------------------------
key22:
calllcd_pos_CLR
calllcd_pos_ID;显示轮询ID
callread_ic;显示ID号
callding1;蜂鸣器
ajmpreadkey1
;------------------------------------------------------------------
readkey1:
;等待放手
setbkey1
setbkey2
nop
nop
nop
nop
nop
movc,key1
movacc.0,c
movc,key2
movacc.1,c
orla,#0fch
cpla
jnzreadkey1
e_readkey:
ret
二、LCD显示部分
LCD这部分程序主要对液晶屏进行一些初始化操作和LCD显示函数的实现,编程时,LCD数据端口用P1,EP、RW、RS
分别使用P3.0、P3.1、P3.2。
函数包括:
Lcd_busy、Lcd_wcmd、Lcd_wdat、Lcd_init(这些是汇编程序的入口)
具体各部分程序如下:
Lcd_busy:
PUSHAcc
busy_next:
CLREP
CLRRS
SETBRW
MOVP1,#0xff
SETBEP
nop
MOVA,P1
JBAcc.7,busy_next;该位为1时就进行跳转
CLREP
POPAcc
RET
Lcd_wcmd:
ACALLLcd_busy
CLRRS
CLRRW
SETBEP
MOVP1,A
CLREP
RET
Lcd_wdat:
ACALLLcd_busy
SETBRS
CLRRW
SETBEP
MOVP1,A
CLREP
RET
Lcd_init:
MOVA,#38H
ACALLLcd_wcmd
MOVA,#06H
ACALLLcd_wcmd
MOVA,#0cH
ACALLLcd_wcmd
MOVA,#01H
ACALLLcd_wcmd
RET
(另外有一部分是实现显示的函数,因为这部分程序比较简单且比较多,在此不再罗列了)
三、MFRC500与天线部分编程
MFRC500用到引脚:
pcd_csbitp2.7
pcd_rstbitp3.3
(其它部分管脚接在相应单片机管脚上)
这一部分涉及的程序比较多,此处只列出用到的主要部分:
pcd_reset;MFRC500复位
pcd_config_new;RC500配置
pic_Request_new;进行询卡
Anticoll;进行防冲突
Select_Tag;选择卡
Load_Key_EE;载入密码
Authentication;进行三重认证
read_ic;读取卡里面的序列号
read_card_One_Sector;读卡里面一个扇区的信息
write_card_One_Sector;写卡里面一个扇区的信息
各部分函数如下:
;a=1:
初始化接口失败
;a=0:
初始化接口成功
pcd_reset:
setbpcd_rst
calldelay25ms
clrpcd_rst
calldelay1ms
movr7,#250
pcd_rst1:
callread_command
nop
jzpcd_rst10
calldelay100us
djnzr7,pcd_rst1
ljmppcd_rst_err
;---------------------------------
pcd_rst10:
movr1,#RC_PAGE;是写PAGE
mova,#80h
callwrite_xdata
;----------------------------------
pcd_rst2:
callread_command
jnzpcd_rst_err
movr1,#RC_PAGE;是写PAGE
mova,#00h
callwrite_xdata
pcd_rst_ok:
clra;置成功标致,A=0
ret
pcd_rst_err:
mova,#01h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RFID 打卡 完整 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)