微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于MF RC632芯片的专用读卡器设计及实现

基于MF RC632芯片的专用读卡器设计及实现

时间:06-24 来源:互联网 点击:
3 设计方案实现

3.1 硬件部分

(1) 系统供电电路

由于本系统的最终设计目标是做出一台手持设备,所以在供电上选用电池供电。为减少整个电路板上的电源消耗,除了在器件选择上选用低功耗器件外,在电源设计上也使用了一些简单的电路来实现电源管理。如图3所示,整个供电电路分为三个部分,电池电压通过接插件BATTER输入,经过D3后将6V左右的电压降为5.3V。5.3V电压经过VT4后输出5V左右电压供给板上的5V电路,VT4由系统的控制核心CPU控制。5.3V电压经过电源模块后给供电电路。AS1117构成3.3V供电电路为电路板上的控制核心P89LPC932供电。3.3V电压经过VT2后输出3V左右的供电电压,为板上的其他3V左右的电路供电。除了系统的控制核心采用这种方式供电外,其他电路的供电完全由系统的控制核心P89LPC932通过软件来控制,大大减少了系统的功耗,提高了电源使用效率。


(2) 系统的控制核心

其电路如图4所示。

整个系统的控制核心使用PHILPS公司生产的高速51系列产品,利用其丰富的内部资源,不仅降低了设计难度,在PCB制板上也提高了系统的可靠性。


(3) 射频电路

其电路如图5所示。在本设计中,为提高整个系统的使用范围,在芯片选择上使用功能更加强大的MFRC632,这也是整个系统的核心部分。


(4) 系统时钟电路

系统时钟电路如图6所示。在本系统中,为节约系统的I/O资源,选用了I2C总线高性能的时钟芯片,同时利用其内部的电源检测电路对系统的供电电池进行监控。


(5) 天线设计

由于MF RC632的频率是13.56MHz,属于短波段,因此可以采用小环天线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用方型天线。天线的最大几何尺寸与工作波长之间没有严格的界限,一般定义为:

L/λ≤1/2π   (1)

上式中,L是天线的最大尺寸,λ是工作波长。对于13.6MHz的系统来说,天线的最大尺寸在50厘米左右。在天线设计中,品质因数Q是一个非常重要的参数,对于电感耦合式射频识别系统的PCD天线来说,较高的品质因数值会使天线线圈中的电流强度大一些,但由此可改善对PICC的功率传送。品质因数的计算公式为:

Q=(2πf0·Lcoil)/Rcoil   (2)

式中。?0是工作频率,Lcoil是天线的电感量,Rcoil是天线的电阻值。通过品质因数可以很容易计算出天线的传输带宽:

B=f0/Q   (3)

从式(3)中可以看出,天线的传输带宽与品质因数成反比关系。因此,过高的品质因数会导致传输带宽缩小,从而减弱PCD的调制边带,导致PCD无法与卡通信。一般系统的最佳品质因数为10~30,最大值不能超过60。

考虑上述因素和实现的方便,采用在PCB板的最外侧用方形导线缠绕形成天线。其电路原理图如图7所示,天线PCB电路如图8所示。

(6) 数据存储电路

数据存储电路如图9所示。在本系统中,为节约系统的硬件资源并增加系统的数据 存储能力,采用ATMEL公司生产的SPI总线接口的容量为264KB的Flash AT45DB021,用来存储系统设置和备份数据。


3.2 软件部分

3.2.1 对Mifare卡的操作流程

整个系统的工作由对Mifare卡操作和系统后台处理两大部分组成。由于篇幅有限,本文只对Mifare卡的操作流程进行简单介绍,其操作流程如下:

(1) 复位请求

当一张Mifare卡片处在卡片读写器天线的工作范围之内时,程序员控制读写器向卡片发出REQUEST all(或REQUEST std)命令,卡片的ATR将启动,将卡片Block 0中的卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行复位请求操作,读写器对卡片的其他操作将不会进行。

(2) 反碰撞操作

如果有多张Mifare卡片处在卡片读写器天线的工作范围之内,PCD天线将与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张Mifare卡片都具有惟一的序列号(决不会相同),因此PCD天线将根据卡片的序列号来保证一次只对一张卡操作。该操作使PCD天线得到PICC的返回值作为卡的序列号。

(3) 卡选择操作

完成上述二个步骤之后,PCD天线必须对卡片进行选择操作。执行操作后,返回卡上的SIZE字节。

(4) 认证操作

经过上述三个步骤,确认已经选择了一张卡片,PCD天线在对卡进行读写操作之前,还必须对卡片上已经设置的密码进行认证。如果匹配,才允许进行读写操作。

(5) 读写操作

该写操作是对卡的最后操作,包括读、写、增值、减值、存储和传送等操作。

3.2.2 系统软件的部分代码

根据上面的流程,采用Keil C语言进行编程,由于篇幅有限,本文只对读卡程序的头文件的部分代码进行简单的介绍,主要介绍在程序中所要使用到的部分功能函数:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top