您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基站芯片RC522的14443A读卡器设计

基站芯片RC522的14443A读卡器设计

来源:筏尚旅游网
基站芯片RC522的14443A读卡器设计

基站芯片RC522的14443A读卡器设计 技术分类: 工业电子 | 2007-12-20 来源:单片机及嵌入式系统应用 | 山东航天电子技术研究所 韩爱丽 李亚 引 言 14443 TypeA密耦合射频卡标准广泛应用在门禁、身份识别和电子钱包等领域,而RC522作为Philips基站芯片产品系列的新成员,不仅兼容14443A/MIFARF标准,还具备低电压(3.3V)、低功耗(休眠电流 本文设计的读卡器系统以PICl6F7x单片机作为主控芯片,选用MIFARE S50卡片,读卡器与卡片间以106kbps速率通信,同时实现读卡过程中的防冲突处理和对卡E2PROM块内容的读/写等功能。读卡器内部设置了Flash存储器以存放卡数据,在Flash容量满的情况下可通过读卡器的以太网口读出全部数据到管 理中心上位机,便于建立对卡数据的综合管理系统。

1 硬件系统设计

读卡器硬件框图如图1所示。

单片机PICl6F7x通过SPI总线与RC522和Flash芯片AT45D011相连,同时用简化的ISA总线连接以太网接口芯片C58900,以提供连接到局域网的能力。AT45D0ll存储容量为lMb,可同时存储7400多组MIFARE的E2PROM块和UID号,提供了足够读卡器一天内读取的信息量的存放容量。对于RC522天线部分的设计,Philips公司有专门的手册详细介绍,本文不再赘述。RC522的SPI总线接口有其自身的时序要求。它只能工作于从模式,最高传输速率为10 Mbps,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换”的约束关系。PICl6F7x系列单片机的片上外设包括1个SSP模块。该模块可配置为SPI接口使用,通过相应的寄存器可控制SPI接口的数据传输率、数据一时钟相位天系等通信参数。本文中配置SSP模块工作于SPI主模式下,时钟为1/4单片机主频,接收和发送数据都在时钟上升沿发生。

需要注意的是,由于RC522支持的数字接口形式多种多样,因此芯片在每次复位时都会检测外部引脚连接关系。对于SPI接口,RC522的相关引脚必须按照图2所示的连接关系配置。

除了通用的4条SPI信号线(时钟线SCK、输入数据线MOSI、输出数据线MOSO和选通线NSS)以外,RC522要求额外的2个引脚I2C和EA分别固定接低电平和高电平。这2个引脚不参与SPI总线传输,只起设定RC522数字界面采用SPI接口的作用。另外,片选信号必须保证在写入数据流期问为低电平,而在无数据流写入时则为高电平;用户不得为节省PIC单片机引脚资源而一直将NSS置为低电平。 2 软件系统设计

相对于Philips公司生产的其他14443基站芯片(如RC500、RC530等),RC522简化了内部系统结构,去掉了片内E2PROM。从而大大缩减了芯片命令集。另外,对载波调制电路,发送电路和解调、解码电路的控制也相应简化,去掉了校准接收电路I时钟、Q时钟、校准发送与接收时钟相位等繁琐的操作。一般而言,单片机与RC522的通信流程如图3所示。

根据RC522和MIFARE卡问传送的控制流数据的不同,通信过程中可能会出现不同的状态。对各种状态须作不同处理,这正是软件系统开发的难度所在。下面给出RC522命令

集中2个最基本命令(Tranceive和MFAuthe-nt)执行过程中可能遇到的通信状态及处理。这两个命令分别实现向MIFARE卡发送/接收数据和加密认证功能。实际上,通过它们即可完成对MIFARE卡的所有操作,包括Request、Anticollision、Select、READ、WRITE等。 2.1 RC522命令集的实现

RC522主要的状态指示寄存器包括ComIrqReg、Er-rorReg、Status2Reg和FIFOLevelReg等。软件处理的思路:通过ComIrgReg得到RC522内部中断状态;由中断判断RC522与MIFARE卡的通信流程信息,从而决定是否进行下一流程处理;若中断指示有错误发生,则需进一步读取ErrorReg的内容,据此返回错误字。

新一代Mifare射频基站IC MF RC522在水表中的应用

摘要:介绍了Philips公司最新推出的Mifare非接触IC卡读写芯片MF RC522的主要特性、引脚功能和基本指令集;简述以MSP430系列超低功耗16位单片机为内核的水表设计以及与MFRC522的硬件接口电路设

计;重点阐述了MSP430对MF RC522的读写控制流程。 关键词:MF RC522 MSP430单片机 低功耗 水表

非接触式智能卡(射频卡)以其高度安全保密性、通信高速性、使用方便性广泛应用于三表行业,实现预付费功能,使人们生活质量有了很大的提高。射频卡技术应用于水表将是智能水表的一次伟大革命。

MF RC522是Philips公司针对三表最新推出的一款非接触式低功耗读写基站芯片,它是应用于13.5

6MHz非接触式通信中高集成读卡IC系列中的一员。该读卡IC系列利用了先进的调制和解调概念,完全集成了13.56MHz下所有类型的被动非接触式通读方式和协议。MF RC522支持ISO14443A所有的层,传输速

度最高达424kbps,具有三种主机接口方式:SPI模式、UART模式、I2C模式。

本设计采用MSP430系列超低功耗16位单片机为主控芯片,系统3.3V供电完全适合MFRC522供电要求,实

现了低功耗的完美结合。

1 系统设计

该系统以TI MSP430F413单片机为核心,工作电压为1.8V~3.6V,内置LCD驱动器24×4段,可以缩小体积、降低成本,在休眠模式下典型电流仅为0.7μA;采用内部Flash保存用水数据、剩余水量和水表状态信息;电源监控采用理光R3111E(可根据设定的门限电压选择相应的型号);水表阈门采用2.5V~6V直流电机,当人为破坏水表或所购买水量低于设定值时,水表报警并及时关掉阀门,同时将数据保存在内部

Flash中;采用MFRC522读写芯片读写Mifare 1 S50卡片实现预付费功能。系统框如图1所示。

本设计利用RC522 UART模式与单片机通信,由于MSP430F413没有硬件串口,故需使用TIMERA模拟串口,

如图2所示。

对于MSP430F413而言,P1.0(TimerA捕获/比较输出口)口是UART的TX,P1.1(TimerA捕获/比较输出口)

是UART的RX。

2 MFRC522命令寄存器及基本指令集 2.1 命令寄存器CommandReg(0x01)

MF RC522内部有64个寄存器,共分4页:PAGE0:COMMAND AND STATUS;PAGE1:COMMAND;PAGE2:CFG;

PAGE3:TEST。MF RC522通过内部寄存器的读写控制与Mifare 1 IC卡数据通信。

CommandReg命令控制字如表1所示。

表1 CommandReg命令控制字

commandReg Address 0x01 Reset value 0x20 7 6 5 4 3 2 1 0

0 0 Rcv OFF Power Down COMMAND Command命令类别如表2所示。

表2 Command命令类型

COMMAND(命令) Idle(空闲) CalcCRC(校验) Transmit(发送) NoCmd Change(无命令改变) Recceive(接收) Transceive(收发) MFAuthent(认证) Soft Reset(软件复位) 2.2 基本指令集

MF RC522有14种基本指令集,实现不同方式的数据传输,如表3所示。

表3 14种基本指令集

基本指令 Request Std Request All AntiCollision(防重叠) Select Tag(选卡片) Authentication_A Authentication_B Read(读) 指令代码 0x26 0x52 0x93 0x93 0x60 0x61 0x30 命令代码 0000 0011 0100 0111 1000 1100 1110 1111 Write(写16Bytes) Write4(写4Bytes) Increment(增值) Destore(减值) Restore(重储) Transfer(传送) No command 3 软件设计

0xA0 0xA2 0xC1 0xC0 0xC2 0xB0 0x50 MSP430F413首先对MF RC522进行初始化配置,寄存器设置好后,MF RC522可以接收控制执行命令执行操作,实现与Mifare 1 S50卡片通信;Mifare 1 S50卡根据接收到的指令进行相应操作。但是MSP430F413并不是通过简单的指令就可以读写IC卡片,需要一系列的操作才能完成通信。主要包括:(1)请求唤醒;

(2)防重叠;(3)选择卡片;(4)密码认证;(5)读写操作。

MSP430F413对Mifare 1 S50卡片操作流程,如图3所示。

3.1 请求Request Std/Request All

当在天线有效工作距离内检测到卡片,MF RC522发送Request Std/Request All请求指令,卡片接收到请

求指令后返回握手信号,从而判断操作是否成功。

Request Std(0x26)连续读卡指令

Request All(0x52)非连续读卡指令

3.2 Atcollision(防重叠)

MF RC522能够防止多张卡片重叠造成的数据错误。当在天线有效工作距离内检测到多张卡片时,MCU读取

序列号进行判断检测。

Mifare 1 S50卡具有全球唯一4个字节的序列号,SN存放在Sector0的Block0内前4个字节,第5个字节存放校验码(4字节异或结果),MCU控制循环读取序列号,直到读取一个校验正确的序列号后,保存并

退出循环;当然出错也会退出循环。 Sector0的Block0数据格式如表4所示。

3.3 Select(选择卡片)

将Anticollision操作读取的序列号SN 4个字节还有异或的校验码发送到Mifare 1 S50卡上,卡片接收

后与自身SN及校验码核对,只有完全一样才能选定卡片。

3.4 Authentication(密码认证)

Mifare 1 S50卡有1KB容量,分为16个扇区:Sector0到Sector15,每个Sector(扇区)包括4个Block(块),每个Block具有16个byte的存储容量。Block被分为Block0至Block3;整个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字节的数据,不能单个

字节读写。为了确保数据的正确性,可进行数据校验。

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 Restore

Restore指令是将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单片机结合实现低功耗预付费水表的设计。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务