1、通用射频卡读写模块的设计流程通用射频卡读写模块的设计流程本设计为非接触式射频卡读卡器,它是基于单片机AT89S52与Philips公司的MF RC500嵌入式读写芯片设计开发的,整个系统包括由AT89S52构成控制模块,由MF RC500构成的射频模块,天线模块,由LCD1602构成的显示模块,通信模块以及若干标签等组成。它能完成对Mifare1卡所有读写及控制操作,并且还可以方便的嵌入到其他系统(如:门禁,公交)中,成为用户系统的一部分。一设计思想本设计所研究的读卡器为非接触式的静距离无限读卡系统。该系统为无线通信系统,对通信距离和通信信息的可靠性等都需进行研究。主要考虑的问题在以下几个方面
2、:不同的射频读卡器系统拥有不同的通信频带,RFID按应用频率的不同分为低频(LF)、高频(HF)、超高频(UHF)、微波(MW),相对应的代表性频率分别为:低频135KHz以下、高频13.56MHz、超高频860M-960MHz、微波2.4G、5.8G,在设计系统时,标签与天线和读卡芯片模块的带宽需严格匹配,否则将无法进行通行或出现通信错误。本设计中采用的为高频频带,在天线设计过程中需严格遵守天线设计的参数要求,设计与高频相匹配的天线,并选用合适的标签,并且标签和射频芯片的需遵守相同的通信标准才能够成功的进行通信。由于RFID通信采用的无线通信方式,无线通信的通信信道是开放性信道,因此对通信安
3、全有比较严格的要求,因此在通信时需要有严格的通信加密方式,才能够确保信息的安全性。在读卡的过程中,由于可能同时存在有多个标签在读写范围内,要能识别正确的标签,则需设计相应的防碰撞法则,以能够选择出对应的标签进行操作并防止出现通信混乱。二MF RC500芯片概述 1. MF RC500芯片特点MF RC500是PHILIPS公司生产的高集成度TYPEA读写器芯片。其主要性能如下:载波频率为13. 56MHz;集成了编码调制和解调解码的收发电路;天线驱动电路仅需很少的外围元件, 有效距离可达10cm; 内部集成有并行接口控制电路,可自动检测外部微控制器(MCU) 的接口类型;具有内部地址锁存和IR
4、Q线,可以很方便地与MCU接口;集成有64 字节的收发FIFO缓存器;内部寄存器、命令集、加密算法可支持TYPE A 标准的各项功能, 同时支持MIFARE 类卡的有关协议;数字、模拟、发送电路都有各自独立的供电电源。基于以上特点,用MF RC500极易设计TYPE A型卡的读写器, 可广泛用于非接触式公共电话、仪器仪表、非接触式手持终端等领域。2.引脚功能MF RC500为32脚SO封装,其引脚功能如表1-1 所列。需说明的是:某些引脚(带*号) 依据其所用MCU(微控制器) 的接口情况具有不同功能。表1-1 MF RC500引脚功能管脚符号类型描述1OSCINI晶振输入,振荡器反相放大器输
5、入,该脚也作为外部时钟输入(fosc=13.56MHz)。2IRQO中断请求,输出中断事件请求信号。3MFINIMIFARE接口输入,接受符合ISO14443A(MIFIRE)的数字串行数据流。4MFOUTOMIFARE接口输出,发送符合 ISO14443A(MIFIRE)的数字串行数据流。5TX1O发送器1 ,发送经过调制的 13.56MHz能量载波。6TVDDPWR发送器电源,提供TX1和TX2 输出电源。7TX2O发送器2,发送经过调制的13.56MHz能量载波。8TVSSPWR发送器地:提供TX1和TX2输出电源。9NCSI片选:选择和激活 MF RC500的微处理器接口。10NWRI
6、写MF RC500寄存器写入数据D0D7选通。11NRDI读MF RC500寄存器读出数据D0D7选通。12DVSSPWR数字地。13D0D7I/O8位双向数据总线。20AD0AD7I/O8位双向地址和数据总线。21ALEI址锁存使能,为高时将AD0AD5锁存为内部地址。22A0I地址线0,寄存器地址位 0。23A1I地址线1,寄存器地址位 1。24A2I地址线2,寄存器地址位 2。25DVDDPWR数字电源。26AVDDPWR模拟电源。27AUXO辅助输出,该脚输出模拟测试信号,该信号可通过 TestAnaOutSel 寄存器选择。28AVSSPWR模拟地。29RXI接收器输入,卡应答输入脚
7、,该应答为经过天线电路耦合的调制 13.56MHz载波。30VMIDPWR内部参考电压,该脚输出内部参考电压(注:必须接一个 100nF 电容)。31RSTPDI复位和掉电,当为高时,内部灌电流关闭,振荡器停止,输入端与外部断开,该管脚的下降沿启动内部复位。32OSCOUTO晶振输出 振荡器反向放大器输出。3. 工作原理MF RC500 的内部电路框图如图1.1 所示, 它由并行接口及控制电路、密钥存贮及加密算法(Cypto1)、状态机与寄存器、数据处理电路、模拟电路(调制、解调及输出驱动电路)等组成。4.MF RC500寄存器设置MF RC500芯片的内部寄存器按页分配, 并通过相应寻址方法
8、获得地址。内部寄存器共分8页,每页有8个寄存器,每页的第一个寄存器称为页寄存器, 用于选择该寄存器页。每个寄存器由8位组成,其位特性有四种: 读/ 写(r/ w) 、只读(r) 、仅写(w) 和动态(dy) 。其中dy属性位可由微控制器读写, 也可以在执行实际命令后自动由内部状态机改变位值。微控制器MCU 通过对内部寄存器的写和读,可以预置和读出系统运行状况。寄存器在芯片复位状态为其预置初始值。了解内部寄存器的设置对于软件编程至关重要,表1-2 给出了寄存器的配置情况。表1-2内部寄存器配置页号功能寄存器地址相应寄存器名0命令与状态07Page ,Command ,FIFOData 6,Pri
9、maryStatus ,FIFOLength FSecondaryStatus ,InterruptEn ,InterruptRq1控制与状态8FPage ,Control ,ErrorFlag ,CollPos R,TimerValue CRCResultLSB ,CRCResultMSB ,BitFraming2发送与编码控制1017Page,TxControl CWConductanc,PreSet13 ,PreSet14 ,ModWidth ,PreSet16 ,PreSet173接受与解码控制181FPage,RxControl1,DecodeControl,BitPhase,RxT
10、hreshold,PreSet1D,RxControl2,ClockQControl4定时和通道冗余码2027Page,RxWait,ChannelRedundancy,CRCPresetLSB,CRCPresetMSB,CRCPreSet25,MFOUTSelect,PreSet275FIFO,定时器和IRQ引脚282FPage,FIFOLevel,TimerClock,TimerControl,TimerReload,IRQPinConfig,PreSet2E,PreSet2F6备用3037Page,RFU 7测试控制383FPage,RFU,TestAnaSelect,PreSet3B,
11、PreSet3C,TestDigiSelect,RFU,5.并行接口NCSA2A1A0D0D7ALENRDNWR片选 低 高 高复用地址/数据线地址所存使能读选通写选通图1-2 复用方式连接图MF RC500芯片可直接支持各种微控制器(MCU) , 也可直接和PC 机的增强型并行接口(EPP) 相连接,每次上电(PON) 或硬启动(Reset) 后,芯片会复原其并行接口模式并检测当前的MCU 接口类型, 通常用检测控制引脚逻辑电平的方法来识别MCU接口, 并利用固定引脚连接和初始化相结合的方法实现正确的接口。图1-2给出了本次设计相应的连接接线图。6. EEPROM 存贮器MF RC500 的
12、EEPROM 共有32 块, 每块16 字节。EEPROM 存贮区分为四部分:第一部分为块0, 属性为只读,用于保存产品的有关信息;第二部分为块1 和块2, 它们具有读/ 写属性,用于存放寄存器初始化启动文件; 第三部分从块3 至块7, 用于存放寄存器初始化文件, 属性为读/ 写; 第四部分从块8 至块31,属性为只写, 用于存放加密运算的密钥, 存放一个密钥需要12 字节, EEPROM 密钥存放区共可存放32 个密钥, 实际密钥长度为6 字节, 存放在紧邻的12 个EEPROM 字节地址中。一个密钥字节的8 位必须分开存放, 若设密钥8 位为K7,K6,K5,K4,K3,K2,K1,K0。
13、则存放在两个相邻字节时为k7k6k5k4 K7K6K5K4 和k3k2k1k0 K3K2K1K0 , 例如密钥字节为A0H 时, 则存放内容为5AH 、F0H 两个字节。7. FIFO 缓存864位的FIFO用于缓存微控制器与芯片之间的输入/输出数据流。可处理数据流长度达64字节。FIFOData 寄存器作为输入/输出数据流的并/并转换口; FIFOLength 寄存器用于指示FIFO缓冲器的字节存储量、写时增量、读时减量; FIFO缓冲器的状态(如空、溢出等) 可由寄存器PrimaryStatus 、FIFOLevel的相关位指示;对FIFO的访问则可通过微控制器送出有效命令来实现。8中断请
14、求芯片的中断请求有定时设置到、发送请求、接收请求、一个命令执行完、FIFO满、FIFO 空等六种。0页寄存器InterruptEn 的相应位(r/w属性)用于相应中断请求使能设置; InterruptRq的相应位(dy属性)用于指示使能情况下的相应中断出现。任何允许中断产生时,0 页寄存器PrimaryStatus的IRQ位(r 属性)可用于指示中断的产生,同时可由引脚IRQ和微控制器进行连接以产生中断请求信号。9. 定时器MF RC500内有定时器,其时钟源于13.56MHz晶振信号,13.56MHz信号由晶振电路(外接石英晶体)产生。微处理器可借助于定时器完成有关定时任务的管理。定时器可用
15、于定时输出计数、看门狗计数、停止监测、定时触发等工作。10.模拟电路a. 发送电路RF信号从引脚TX1和TX2输出可直接驱动天线线圈。调制信号及TX1 、TX2 输出的射频信号类型(已调或无调制载波)均可由寄存器TxControl 控制。b. 接收电路载波解调采用正交解调电路, 正交解调所需的I和Q时钟(两者相差为90)可在芯片内产生。解调后由所得副载波调制信号要经放大、滤波相关器、判决电路进行副载波解调, 其中放大电路的增益可由寄存器RxControl的设置来控制。11.串行信号开关串行信号开关用于桥接芯片数字电路和模拟电路两部分,两部分电路的输入/输出和外部应用所需的输入/输出可以灵活组合
16、。这种组合可借助MFIN和MFOUT引脚和相关寄存器来控制实现。MFIN可输入曼彻斯特码、带副载波的曼彻斯特码, 并由寄存器RxControl2 的设置选择送至解码器。若输入的是修正密勒码, 则由寄存器TxControl设置选择送至发送通道的调制器。MFOUT引脚上可输出曼彻斯特码、带副载波的曼彻斯特码、NRZ 码、修正密勒码以及测试信号, 具体可通过寄存器MFOUTSelect 的不同设置来选择。12. 命令设置MC RF500 的性能由内部状态机保证,状态机可以完成命令功能。寄存器Command 的相应位存贮R命令码(属性为dy) 可用于启动或停止命令执行。命令大多可由写入相应命令码至Co
17、mmand 寄存器实现,其所需变量和数据主要由FIFO缓冲器交换。有关命令及功能如表1-3所列。表1-3 MF RC500命令及功能简介命令码功能简介Startup3F执行Reset和初始化,它仅能由PON和硬件Reset完成Idle00取消当前指令执行Transmit1A从FIFO发送到数据卡Receive16激活接受电路Rransceive1E发送FIFO数据至卡后,自动接受状态WriteE201从FIFO获取数据并写入EEPROMReadE2O3从EEPROM读取数据至于FIFO,但密钥不能读出LoadKey19从FIFO读取一个密钥,将其写入密钥缓存器LoadkeyE20B从EEPRO
18、M拷贝一个密钥至密钥缓存器Authent10C完成从Crpto 1认证的第一部分Authent 214完成从Crpto 1认证的第二部分LoadConfig07从EEPROM读取数据,并初始化芯片寄存器CalcCRC12激活CRC检测功能13.认证与加密Mifare类产品中加密算法的实现被称之为CRYPT01 , 它是一种密钥长度为48bit的流密码。要访问一个Mifare 类卡的数据, 首先要完成认证, Mifare 卡的认证采用三次认证的过程,这个过程可由自动执行Authbent1和Authbent2命令来实现。三 Mifare1 射频卡的结构和工作原理1 工作原理射频卡的电气部分由天线、
19、1个高速(106KB波特率)的RF接口、1个控制单元和1个8K位EEPROM组成。其工作原理如下:读写器向射频卡发一组固定频率的电磁波,卡片内有1个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有1个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可作为电源为其他电路提供工作电压,将卡内数据发射出去或接收读写器的数据。2. Mifare1结构和组成每张卡有唯一的32位序列号,其工作频率为13. 56 MHz , 存储量为1 KB, 分为16个扇区,每扇区一组密码,各扇区的
20、存储区域相互独立,每区可作为不同用途(第0区一般不用),实现一卡多用。Mifare1卡可擦写10万次以上,其密码验证机制严密,可保证存储存信息的安全可靠;同时该卡具有防冲突机制,可支持多卡同时操作。Mifare1卡有16个扇区,每个扇区又分为4块(块0 、块1 、块2 和块3) ,每块16 个字节,以块为存取单位。除第0 扇区的块0(即绝对地址0 块) 已经固化,用于存放厂商代码,不可更改之外,其余每个扇区的块0、块1、块2为数据块,可用于存贮数据,块3为控制块,包括密码A(6字节)、存取控制(4字节)和密码B(6字节).Mifare1卡每个扇区的密码和存取控制都是独立的,可以根据实际需要设定
21、各自的密码及存取控制,存取控制决定各块的读写权限与密码验证。16扇区中的每块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的。四系统结构组成和工作原理1.系统基本结构和工作原理一个比较完整的读卡器系统主要包括有微控制器模块,射频处理模块,天线模块,显示模块以及与PC机得的信模块,其中MF RC模块可以产生载波信号驱动天线发射能量并能够处理经天线反射回来的载有标签信息的模拟信号,使之转化为数字电平。MCU则用于控制其余模块。液晶显示器可以系统获得的标签信息显示出来。读卡器系统的结构框图如图1-3(a)所示。系统工作原理图如图1-3(b)所示。系统数据存储在无源Mifare1卡,也就是
22、PICC(应答器)中。PCD(读写器)的主要任务是传输能量给PICC,并建立与之的通信。PICC是由一个电子数据作载体,通常由单个微型芯片以及用作天线的大面积线圈等组成;而PCD 产生高频的强电磁场,这种磁场穿过线圈横截面和线圈周围的空间。因为MF RC500提供的频率为13.56MHz,所以其波长比PCD的天线和PICC之间的距离大好多倍,可以把PICC 到天线之间的电磁场当作简单的交变磁场来对待。PICC中存在一个LC串联谐振电路, 其频率与读卡器的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而是电容中有了电荷,在这个电容的另一端,接有一个单项导通的电子泵,将电容内的电荷存储到另外
23、一个电容内,当所积累的电荷达到2V时,此电容可作为电源为其他的器件提供工作电压,将卡内的数据通过电磁波发送出去。当天线接收到含有卡片信息的载波后,经过滤波得到的携带卡片信息的有用信号,该模拟信号经MF RC500处理后得到表示Mifare1卡信息的数字信号送入单片机中。如上所述可以看出,PCD 的性能与天线的参数有着直接的关系。在对天线的性能进行优化之后,PCD 的读卡距离可以达到10cm。2.人机接口电路设计(显示器)在本设计中,液晶显示屏主要功能是显示标签的信息,如标签的序列号等。液晶显示屏有很多不同的种类,显示屏与单片机之间需要有驱动电路,本设计中选择的LCD1602液晶显示屏。液晶显示
24、屏也单片机的接口电路如图1-4所示。3. MF RC500应用电路设计MF RC500为32脚SO封装,使用了3个独立的电源以实现在EMC特性和信号解耦方面达到最佳性能。除了模拟电源和数字电源外,MF RC500还对天线驱动电路单独设有电源, 以此提高天线的驱动能力。MF RC500具有出色的RF性能,并且模拟和数字部分可适应不同的操作电压。方便的并行接口可直接连接到任何8位微处理器,这样给读写器的设计提 供了极大的灵活性。工作时需接一个13.56MHz的晶振。4.与天线连接电路 MF RC500提供TXI和TX2两个发送端,采用中心抽头设计方法,以此提高抗干扰能力。 系统的工作频率由一个石英
25、振荡器产生,它同时也产生高次谐波,因此在发送端需要使用低通滤波器:低通滤波器由L0和CO构成。天线接收到的信号经过天线匹配电路送到RX脚, 使用内部产生的电势作为RX管脚的输入,另外还需在RX和VMID引脚之间连接一个分压器。为了减少干扰,VMID引脚接一个电容到地。MF RC500集成了一个正交调制电路,该电路从输入到RX脚的13.56MHz ASK调制信号中解析出ISO14443-A副载波信号。发送器管脚 TX1和TX2上传递的信号是由包络信号调制的13.56MHz能量载波,只需要很少的用于匹配和滤波就可以直接驱动天线。MF RC500与天线的连接电路如图1-5所示。5.与单片机连接电路
26、MF RC500与AT89S52的连接电路主要包括地址、数据及控制线的连接。MF RC500 提供了8位并行数据AD0AD7,地址A0A2,片选信号口,读写控制口,复位口,中断请求口,地址数据复用时的地址锁存使能口。当地址线和数据线复用时,A0、A1接高电平,A2接低电平,AD0AD7同为数据地址线。非复用时,A0,A2为低3位地址,其它3位由MF RC500内部的页选寄存器PAGESELECT的后三位确定。本设计中采用地址数据总线复用的方式。MF RC500与单片机的连接电路图如图1-6所示:6.PCD 的天线设计由于MF RC500 的频率是13.56MHz,属于短波段,因此可以采用小环天
27、线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用方型天线。天线的最大几何尺寸同工作波长之间没有一个严格的界限,一般定义为: (1)式(1)中,L是天线的最大尺寸,是工作波长。对于13.56MHz 的系统来说,天线的最大尺寸在50cm左右。在天线设计中, 品质因数Q是一个非常重要的参数。对于电感耦合式射频识别系统的PCD天线来说, 较高品质因数的值会使天线线圈中的电流强度大些,由此改善对PICC的功率传送。品质因数的计算公式为: (2) 式(2)中的f是工作频率,是天线的尺寸,R是天线的半径。通过品质因数可以很容易计算出天线的带宽: (3) 从式(3)中可以看出,天线的传输带宽与品质因数成
28、反比关系。因此,过高的品质因数会导致带宽缩小,从而减弱PCD的调制边带,会导致PCD无法与卡通信。一般系统的最佳品质因数为1030,最大值不能超过60。五 系统软件的设计1.主程序设计图1-7为单片机系统主程序框图。读写器在完成各项初始化后,就进入检测标签、扫描键盘、上位机的命令的循环,等待转入标签处理或各功能键处理子程序。初始化过程包括对单片机、MF RC500、LCD的初始化主程序如下:#define _SRC#include main.h#undef _SRC#include #include #include #include #include #define MIS_CHK_OK (
29、0)#define MIS_CHK_FAILED (-1)#define MIS_CHK_COMPERR (-2)/ Function: mifs_request#define IDLE 0x00#define ALL 0x01sbit RC500RST = P27;sbit RC500_CS = P26;sbit LED = P34;uchar code SW_Rel = nr MFRC500 V1.0 22.06.02 nr;/ 释放标签序列号static uint Crc; / MR RC500序列号void init(void);code Nkey_a6 = 0xA0, 0xA1, 0
30、xA2, 0xA3, 0xA4, 0xA5; code Nkey_b6 = 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF;void main (void) unsigned char counter,counter2; unsigned char mfout=2;/readbuf16; unsigned char tt12; unsigned char status1; unsigned char cardserialno4; unsigned char *sak1; unsigned char blockdata16; init(); M500PcdConfig(); /初始化RC500 PcdReadE2(8,4,Snr_RC500); /读MF2RC500的系列号并存贮它 M500PcdMfOutSelect(mfout);for (counter=0;counter20;counter+) status1 = M500Pic
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1