《基站芯片RC522的14443A读卡器设计.docx》由会员分享,可在线阅读,更多相关《基站芯片RC522的14443A读卡器设计.docx(9页珍藏版)》请在三一办公上搜索。
1、基站芯片RC522的14443A读卡器设计基站芯片RC522的14443A读卡器设计技术分类:工业电子| 2007-12-20来源:单片机及嵌入式系统应用|山东航天电子技术研究所韩爱丽李亚弓I言14443 TypeA密耦合射频卡标准广泛应用在门禁、身份识别和电子钱包等领域,而 BC522作为Philips基站芯片产品系列的新成员,不仅兼容14443A / MIFARF标准,还具 备低电压(3. 3V)、低功耗(休眠电流LMA)、低成本、小尺寸等优点,适用于智能仪表和手 持设备的数据采集和处理。RC522对外提供多种标准的数字接口(如并行接口、SPI、I2C 等),对其的控制通过对芯片内部的4页
2、64个寄存器进行读/写来实现。由于寄存器控制涉 及数字接口、防冲突和通信模拟接口等功能模块,因此,基于RC522的读卡器的设计难度 主要体现在通过软件与RC522片内寄存器的交互,以实现对RC522与系统主控芯片间以 及RC522与14443A射频卡间通信过程的控制上。 p本文设计的读卡器系统以PCl6F7x单片机作为主控芯片,选用MIFARE S50卡片,读 卡器与卡片间以106kbps速率通信,同时实现读卡过程中的防冲突处理和对卡E2PROM块 内容的读/写等功能。读卡器内部设置了 Flash存储器以存放卡数据,在Flash容量满的情 况下可通过读卡器的以太网口读出全部数据到管理中心上位机
3、,便于建立对卡数据的综合管理系统。1硬件系统设计读卡器硬件框图如图1所示。以太网口ISASPIRC522CS8900PIC16F7x4AT45D011图1读卡器硬件框单片机PICl6F7x通过SPI总线与RC522和Flash芯片AT45D011相连,同时用简化 的ISA总线连接以太网接口芯片C58900,以提供连接到局域网的能力。AT45D0II存储容 量为lMb,可同时存储7400多组MIFARE的E2PROM块和UID号,提供了足够读卡器一 天内读取的信息量的存放容量。对于RC522天线部分的设计,Philips公司有专门的手册详 细介绍,本文不再赘述。RC522的SPI总线接口有其自身
4、的时序要求。它只能工作于从模 式,最高传输速率为10 Mbps,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上 升沿同步接收和发送数据,在下降沿数据转换的约束关系。PICl6F7x系列单片机的片上外 设包括1个SSP模块。该模块可配置为SPI接口使用,通过相应的寄存器可控制SPI接口 的数据传输率、数据一时钟相位天系等通信参数。本文中配置SSP模块工作于SPI主模式 下,时钟为1/4单片机主频,接收和发送数据都在时钟上升沿发生。需要注意的是,由于RC522支持的数字接口形式多种多样,因此芯片在每次复位时都 会检测外部引脚连接关系。对于SPI接口,RC522的相关引脚必须按照图2所示的连接
5、关 系配置。RC522接 SPI、总线:SCKMOSIMISOa NSSI2CEASPI接口硬件配置图除了通用的4条SPI信号线(时钟线SCK、输入数据线MOSI、输出数据线MOSO和 选通线NSS)以外,RC522要求额外的2个引脚I2C和EA分别固定接低电平和高电平。这 2个引脚不参与SPI总线传输,只起设定RC522数字界面采用SPI接口的作用。另外,片 选信号必须保证在写入数据流期问为低电平,而在无数据流写入时则为高电平;用户不得为 节省PIC单片机引脚资源而一直将NSS置为低电平。2软件系统设计相对于Philips公司生产的其他14443基站芯片(如RC500、RC530等),RC5
6、22简化 了内部系统结构,去掉了片内E2PROM。从而大大缩减了芯片命令集。另外,对载波调制 电路,发送电路和解调、解码电路的控制也相应简化,去掉了校准接收电路I时钟、Q时钟、 校准发送与接收时钟相位等繁琐的操作。一般而言,单片机与RC522的通信流程如图3所 示。读写通信控制寄存器,设定通信参数与要发送给M1FARE卡的命令和数据到RC522的FIFO写命令字到RC522的命令寄存器,开始与MIFARE卡通信读状态寄存器检测RC522与MIFARE P通信状态,根据状态作相应控制结束.返同该次通信最终 状态字,指示通信成功否图3单片机与RC522通信流程根据RC522和MIFARE卡问传送的
7、控制流数据的不同,通信过程中可能会出现不同的 状态。对各种状态须作不同处理,这正是软件系统开发的难度所在。下面给出RC522命令集中2个最基本命令(Tranceive和MFAuthe-nt)执行过程中可能遇到的通信状态及处理。这 两个命令分别实现向MIFARE卡发送/接收数据和加密认证功能。实际上,通过它们即可 完成对 MIFARE 卡的所有操作,包括Request、Anticollision、Select、READ、WRITE 等。2. 1 RC522命令集的实现RC522主要的状态指示寄存器包括ComIrqReg、Er-rorReg、Status2Reg和FIFOLevelReg等。软件处
8、理的思路:通过ComIrgReg得到RC522内部中断状态;由中断 判断RC522与MIFARE卡的通信流程信息,从而决定是否进行下一流程处理;若中断指示 有错误发生,则需进一步读取ErrorReg的内容,据此返回错误字。新一代Mifare射频基站IC MF RC522在水表中的应用摘要:介绍了 Philips公司最新推出的Mifare非接触IC卡读写芯片MF RC522的主要特性、引脚功能和基 本指令集;简述以MSP430系列超低功耗16位单片机为内核的水表设计以及与MFRC522的硬件接口电路设 计;重点阐述了 MSP430对MF RC522的读写控制流程。关键词:MF RC522 MSP
9、430单片机低功耗水表非接触式智能卡(射频卡)以其高度安全保密性、通信高速性、使用方便性广泛应用于三表行业,实现预 付费功能,使人们生活质量有了很大的提高。射频卡技术应用于水表将是智能水表的一次伟大革命。LCD显示电源管理电路N/阀门控制电路脉冲采集电路MSP430F413报警电路防拆电路MFRC522 接口囹i系统框图MSP430F413RC5221 P1.0RXPL1wTXP2.0on -1DTR 1MX图 2 RC522 接 口MF RC522是Philips公司针对三表最新推出的一款非接触式低功耗读写基站芯片,它是应用于13.56MHz非接触式通信中高集成读卡IC系列中的一员。该读卡I
10、C系列利用了先进的调制和解调概念,完全集成了 13.56MHz下所有类型的被动非接触式通读方式和协议。MF RC522支持ISO14443A所有的层,传输速度最高达424kbps,具有三种主机接口方式:SPI模式、UART模式、I2C模式。本设计采用MSP430系列超低功耗16位单片机为主控芯片,系统3.3V供电完全适合MFRC522供电要求,实现了低功耗的完美结合。1系统设计该系统以TI MSP430F413单片机为核心,工作电压为1.8V3.6V,内置LCD驱动器24X4段,可以缩小体积、降低成本,在休眠模式下典型电流仅为0.7.A;采用内部Flash保存用水数据、剩余水量和水表状态信息;
11、电源监控采用理光R3111E (可根据设定的门限电压选择相应的型号);水表阈门采用2.5V6V直流电机,当人为破坏水表或所购买水量低于设定值时,水表报警并及时关掉阀门,同时将数据保存在内部Flash中;采用MFRC522读写芯片读写Mifare 1 S50卡片实现预付费功能。系统框如图1所示。本设计利用RC522 UART模式与单片机通信,由于MSP430F413没有硬件串口,故需使用TIMERA模拟串口,如图2所示。对于MSP430F413而言,P1.0(TimerA捕获/比较输出口)口是UART的TX,P1.1(TimerA捕获/比较输出口)是 UART 的 RX。2 MFRC522命令寄
12、存器及基本指令集2. 1 命令寄存器 CommandReg (0x01)MF RC522 内部有 64 个寄存器,共分 4 页:PAGE0: COMMAND AND STATUS; PAGE1: COMMAND; PAGE2: CFG;PAGE3: TESTo MF RC522通过内部寄存器的读写控制与Mifare 1 IC卡数据通信。CommandReg命令控制字如表1所示。表1 CommandReg命令控制字commandRegAddress 0x01 Reset value 0x207654321000Rcv OFFPower DownCOMMANDCommand命令类别如表2所示。表2
13、 Command命令类型COMMAND(命令)命令代码Idle(空闲)0000CalcCRC(校验)0011Transmi t(发送)0100NoCmd Change(无命令改变)0111Recceive(接收)1000Transceive(收发)1100MFAuthent(认证)1110Soft Reset(软件复位)11112. 2基本指令集MF RC522有14种基本指令集,实现不同方式的数据传输,如表3所示。表3 14种基本指令集基本指令指令代码Request Std0x26Request All0x52AntiCollision(防重叠)0x93Select Tag(选卡片)0x93
14、Authentication_A0x60Authentication_B0x61Read(读)0x30Write(写 16Bytes)0xA0Write4(写 4Bytes)0xA2Increment(增值)0xC1Destore(减值)0xC0Restore(重储)0xC2Transfer(传送)0xB0No command0x503软件设计MSP430F413首先对MF RC522进行初始化配置,寄存器设置好后,MF RC522可以接收控制执行命令执行操 作,实现与Mifare 1 S50卡片通信;Mifare 1 S50卡根据接收到的指令进行相应操作。但是MSP430F413 并不是通过
15、简单的指令就可以读写IC卡片,需要一系列的操作才能完成通信。主要包括:(1)请求唤醒;(2)防重叠;(3)选择卡片;(4)密码认证;(5)读写操作。MSP430F413对Mifare 1 S50卡片操作流程,如图3所示。3. 1 请求 Request Std/Request All当在天线有效工作距离内检测到卡片,MF RC522发送Request Std/Request All请求指令,卡片接收到请求指令后返回握手信号,从而判断操作是否成功。读块图3 MSP430读写RC522流程图AutherfticatiGi(密帝;An&onlli前on(防重叠,获取序列号)发送 Request Std
16、 或 Request All 请求Select (j 择卡片)复位初始化寄存器传递数据复制写块减值停机增值Request Std(0x26)连续读卡指令Request All(0x52)非连续读卡指令3. 2 Atcollision(防重叠)MF RC522能够防止多张卡片重叠造成的数据错误。当在天线有效工作距离内检测到多张卡片时,MCU读取序列号进行判断检测。Mifare 1 S50卡具有全球唯一 4个字节的序列号,SN存放在Sector0的Block0内前4个字节,第5个字节存放校验码(4字节异或结果),MCU控制循环读取序列号,直到读取一个校验正确的序列号后,保存并退出循环;当然出错也会
17、退出循环。Sector0的Block0数据格式如表4所示。表4 SectoiO的BlockO数据格式SN序列号厂商数据3. 3 Select(选择卡片)将Anticollision操作读取的序列号SN 4个字节还有异或的校验码发送到Mifare 1 S50卡上,卡片接收后与自身SN及校验码核对,只有完全一样才能选定卡片。3. 4 Authentication(密码认证)Mifare 1 S50卡有1KB容量,分为16个扇区:Sector。到Sector15,每个Sector(扇区)包括4个Block(块),每个Block具有16个byte的存储容量。Block被分为Block0至Block3;
18、整个Mifare 1 S50非接触式智能卡共有64个Block。每个Sector的Block3都存放着本扇区自己的密码KeyA、KeyB和Access Bits。通过Access Bits设置密码方式和数据块类型(Write/Read或Value )。只有密码完全认证通过后,才可以对卡片进行Write/Read操作。3. 5 Write/Read(读写操作)Authentication密码认证通过后,可以对64Block进行读写操作。其中Sector0中的Block0只能执行读操作。Mifare 1 S50读写时是以Block为单位的,读或写都是针对整个Block 16字节的数据,不能单个字节
19、读写。为了确保数据的正确性,可进行数据校验。3. 6 Decrement/Increment(增值和减值操作)当数据块通过设置Access bits配置成Value型时,可以对其进行Decrement/Increment操作。为了防止 数据出错,Value Block设有复杂的数据格式。Value重复存放3次,其中原码存放2次,补码再存放1次; Adr重复存放4次,其中原码存放2次,补码再存放2次。Value:增值或减值Adr:操作Block地址执行Decrement/Increment后,把结果存放在内部数据缓冲寄存器中,等待Transfer指令操作写入指定的目标Block中。3. 7 Re
20、storeRestore指令是将Mifare 1 S50内某一 Block内容读出,存放在内部数据缓冲寄存器中,等待Tranfer指令操作写入指定的目标Block中,相当于复制Block a到Block b中.3.8 Transfer(传送)Transfer指令操作是将内部数据缓冲区内数据传送到目标Block中.执行Decrment/Increment和Restore指令操作都需要Transfer指令,数据才能成功传输.3.9 Halt(停机)Halt指令操作将结束MF RC522与Mifare S50通信。MF RC522作为新一代非接触IC卡与传统的IC卡相比有着很大的优势,具有较强的保密性能和防碰撞功能, 特别是采用低电压供电大大降低功耗,能够与超低功耗MSP430单片机结合实现低功耗预付费水表的设计。