首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于MF RC500芯片的射频读写器设计和实现方案
来源:本站整理  作者:佚名  2009-07-27 10:45:44



(5) MF RC500与MCU的接口电路
MF RC500支持与不同的微处理器直接接口,包括独立读写选通的MCU连接、公共读写选通的MCU连接以及具有公共读写选通和挂钩功能的MCU连接。在每次上电或硬件复位后,MF RC500也复位其并行微处理器接口模式并自动检测当前微处理器接口的类型。


本系统选用具有公共读写选通和挂钩功能的MCU连接方式,图6为MF RC500与MCU的接口原理。由图中可以看出,本系统采用中断(INT1)工作模式,即MCU利用MFRC500提供中断信息对其进行控制。另外,根据系统的需要,可以采用查询方式对MF RC500进行操作。
4系统软件设计
软件设计主要包括对MF RC500进行初始化、接收上位计算机的指令、控制MF RC500,并且把MF RC500的状态信息反馈给计算机。程序流程如图7所示。


(1) 初始化并行接口
首先读Command 寄存器直到Command的6位值为00H,内部初始化阶段此时结束,MF RC500准备接收控制;将80H 写入Page寄存器以初始化微处理器接口;读Command寄存器,如果该值为00H则微处理器接口初始化成功;在接口初始化之后通过将0X00 写入页寄存器,激活线性地址模式。这个过程可以用以下代码表示:
do{PReset=1; Delay(10);  PReset=0;} // 给复位脉冲
while (ReadRC(RegPage) != 0x80);
do{ WriteRC(RegPage,0x0);}
while(ReadRC(RegCommand) != 0x00);
if (ReadRC(RegCommand) != 0x00)
    status = MI_INTERFACEERR;//接口初始化错误
else
    status = 0;        //接口初始化成功
(2) 对Mifare1卡的操作
MCU对Mifare1卡操作的命令主要有空操作、装载密码、验证密码、读卡、写卡和关卡等。无论哪种操作都必须先把命令代码写入到Command寄存器,比如执行验证密码则需要执行WriteRC(RegCommand,0x0c)命令。
从操作流程上,可以把Mifare1卡的操作分为以下几项:
复位请求:当一张Mifare1卡处在读写器天线的工作范围之内时,读写器向卡发出REQUEST all(或REQUEST std)命令。卡的ATR将启动,将卡Block 0中的卡类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行复位请求操作,读写器对卡的其它操作将不会进行。
反碰撞操作:如果有多张Mifar1e卡处在读写器天线的工作范围之内时,读写器首先与每一张卡进行通信,取得每一张卡的ID号。由于每一张Mifare1卡都具有唯一的ID号,因此读写器根据卡的ID号来保证一次只对一张卡操作。
卡选择操作:完成了上述二个步骤之后,读写器必须对卡进行选择操作。执行操作后,返回卡上的SIZE字节。
认证操作:经过上述三个步骤,在确认已经选择了一张卡片时,读写器必须对卡上已经设置的密码进行认证。如果匹配,才允许进一步的读写操作。
读写操作:对卡的读、写、增值、减值、存储和传送等操作。
5结论
本文的创新工作:基于PHILIPS公司生产的MF RC500芯片,提出了一种结合单片机AT89S52的通用射频卡读写器的设计与实现方案。系统实现了对Mifare1卡读写操作的同时,具有以下优点:(1) 由于接口方式比较多,对IO口操作简单,可以方便地对MF RC500进行控制并获取相应信息;(2) 由于该系统在天线设计合理的情况下可靠性比较高,有效距离可达10cm;(3) 计算机只需通过一定的方式发送命令,即可对卡操作,在此基础上可以根据不同的需要开发出相应的软件产品,具有很大的实用价值。
实际应用表明该读写器架构具有响应速度快、使用简单、读卡距离远和通信稳定可靠的显著优点。

天线:天线设计中,最重要的是计算出天线线圈的电感量,从而确定天线旁路电容和电阻值。一般采用经验公式对线圈电感量进行估算。假设天线设计为常用的环行或者矩形,则有:
 

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:161,648.40000 毫秒