|
基于芯片
RC522
的
14443A
读卡器设计
引 言
14443 TypeA密耦合射频卡标准广泛应用在门禁、身份识别和电子钱包等领域,而
RC522
作为
Philips基站
芯片产品系列的新成员,不仅兼容
14443A
/
MIFARF标准,还具备低电压
(3.
3V)、低功耗
(休眠电流
<1mA
)、低成本、小尺寸等优点,适用于智能仪表和手持设备的数据采集和处理。
RC522对外提供多种标准的数字接口
(如并行接口、
SPI、
I
2C等
),对其的控制通过对芯片内部的
4页
64个寄存器进行读/写来实现。由于寄存器控制涉及数字接口、防冲突和通信模拟接口等功能模块,因此,基于
RC522的读卡器的设计难度主要体现在通过软件与
RC522片内寄存器的交互,以实现对
RC522与系统主控芯片间以及
RC522与
14443A射频卡间通信过程的控制上。
本读卡器系统以PIC
l
6F7x单片机
作为主控芯片,选用
MIFARE S50卡片,读卡器与卡片间以
106kbps速率通信,同时实现读卡过程中的防冲突处理和对卡
E2PROM块内容的读/写等功能。读卡器内部设置了
Flash存储器以存放卡数据,在
Flash容量满的情况下可通过读卡器的以太网口读出全部数据到管理中心上位机,便于建立对卡数据的综合管理系统。
1
硬件系统设计
读卡器硬件框图如图
1所示。
单片机
PICl
6F7x通过
SPI总线与
RC522和
Flash芯片
AT45D011相连,同时用简化的
ISA总线连接以太网接口芯片
C58900,以提供连接到局域网的能力。
AT45D0ll存储容量为
lMb,可同时存储
7400多组
MIFARE的
E2PROM块和
UID号,提供了足够读卡器一天内读取的信息量的存放容量。对于
RC522天线部分的设计,
Philips公司有专门的手册详细介绍,本文不再赘述。
RC522的
SPI总线接口有其自身的时序要求。它只能工作于从模式,最高传输速率为
10 Mbps,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换”的约束关系。
PICl
6F7x系列单片机的片上外设包括
1个
SSP模块。该模块可配置为
SPI接口使用,通过相应的寄存器可控制
SPI接口的数据传输率、数据一时钟相位天系等通信参数。本文中配置
SSP模块工作于
SPI主模式下,时钟为
1/
4单片机主频,接收和发送数据都在时钟上升沿发生。
需要注意的是,由于
RC522支持的数字接口形式多种多样,因此芯片在每次复位时都会检测外部引脚连接关系。对于
SPI接口,
RC522的相关引脚必须按照图
2所示的连接关系配置。
除了通用的
4条
SPI信号线
(时钟线
SCK、输入数据线
MOSI、输出数据线
MOSO和选通线
NSS)以外,
RC522要求额外的
2个引脚
I
2C和
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等。
|