基于RC522的非接触式IC卡读卡器设计(含程序) 下载本文

内容发布更新时间 : 2024/12/23 23:52:07星期一 下面是文章的全部内容请认真阅读。

中北大学2016届毕业设计说明书

对该区块是读是写需要设置3个控制位,并以原码和反码格式存放在每个区的尾块中。这3个读写控制位还控制密钥A和B的访问权限。如果知道正确的密钥,并且对应读写条件许可,读写条件是可以修改的[9]。

表2.4 控制位对块的影响 读写控制位 C13 C23 C33 C12 C22 C32 C11 C21 C31 C10 C20 C30 有效命令

????????块 3 2 1 0 说明 尾块 数据块 数据块 数据块 read, write read, write, increment, decrement, transfer, restore read, write, increment, decrement, transfer, restore read, write, increment, decrement, transfer, restore 在表2.4中访问条件的每一位都用符号来表示,其中C13,C23,C33用来控制本区块3的访问条件;C1X,C2X,C3X(X=0-2)用来控制本区块0-块2的访问条件[8]。

在每一次读写存储区时,存储条件必须正确。如果发现是错误的,会锁死这个区块。

2.3.2 尾块的读写条件

对密钥和控制位的读写取决于尾块(块3)的访问控制位,分为“禁止”、“KEY A”、“KEY B”和“KEY A|B”( KEY A或KEY B)[9]。

访问控制位字节6字节7字节8字节9

图2.7 访问条件的组成

为了安全起见,访问条件的每一位即用原码又用反码存储,相当于存放了两遍。特定的数据存放于访问条件的最后一个字节(9)。

第 11 页 共 61 页

中北大学2016届毕业设计说明书

表2.5 块3的访问条件 访问控制位 C1 C2 C3 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 读 禁止 禁止 禁止 禁止 禁止 禁止 禁止 禁止 所控制的访问对象 KEY A 写 Key A 禁止 Key B 禁止 Key A Key B 禁止 禁止 访问控制位 读 Key A Key A Key A|B Key A|B Key A Key A|B Key A|B Key A|B 写 Key B 禁止 禁止 读 Key A Key A 禁止 KEY B 写 Key A 禁止 Key B 注释 Key B可读 Key B可读 Key B可读 传输配置状态 禁止 禁止 禁止 Key A Key B Key B 禁止 Key A 禁止 禁止 禁止 Key A Key B 禁止 禁止 附注2.1 灰色行为key B可读并可用于存储数据的访问控制条件。

如果C1、C2、C3=000,则key A不能读,而持卡人在正确输入key A后,可

以改写key A,读访问条件和读写key B。

Key A在任一条件下都禁止读出,但达到特定条件下可以修改。Key B作为密钥使用时,也是不能读出,但达到一定条件(输入正确的key A)下能读出时,这时存放在key B位置的内容为数据而不是密钥[9]。

尾块和key A被预定义为传输配置状态。因为在传输配置状态下key B可读,新卡必须用key A认证。因为访问控制位本身也可以禁止访问,所以个人化时应当特别小心。

2.3.3 数据块的访问控制条件

不同的控制位的设置,相关的用途也不同。 ? ?

读写块:可读、写。

数值块:运行另外的数值操作——加值、减值、转存和恢复。在用于非充值卡的一种情况(‘001’)下,只能够读和减值。在另一种情况(‘110’)下,可以用key B充值。 ?

制造厂商块:只读,不受访位控制位设置的影响!

第 12 页 共 61 页

[8]

中北大学2016届毕业设计说明书

?

密钥管理:在传输配置状态下,必须用key A 认证。

表2.6 数据分组的访问条件 访问控制位 所控制的访问操作 减值 C1 C2 C3 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 读 key A|B key A|B key A|B key A|B key A|B key B key B 禁止 1111111用途 写 key A|B key B key B key B 禁止 key B 禁止 禁止 11111加值 key A|B 禁止 禁止 key B 禁止 禁止 禁止 禁止 11转存 恢复 key A|B 禁止 禁止 key A|B key A|B 禁止 禁止 禁止 111 传输配置状态 读写块 读写块 数值块 数值块 读写块 读写块 读写块

第 13 页 共 61 页

中北大学2016届毕业设计说明书

3 MF RC522射频芯片

3.1 概述

MF RC522是具有高集成度读写卡芯片,也是一款常用的非接触式通信芯片,工作于13.56MHz的时钟频率。也是NXP公司针对\三表\应用推出的一款低 电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携 式手持设备研发的较好选择[10]。

MF RC522 利用了先进的调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议[11]。支持 ISO14443A 的多层应用。其芯片的TX1和TX2引脚可驱动读写器天线,发送经过调试的13.56MHz载波能量信号,该信号上就有我们需要的数据。接收到的载波信号会通过接收器解调成有效信号,有效信号再经过A/D转换器转换成数字信号,该信号会依照ISO14443A协议处理,先进行错误检测(奇偶 &CRC)。另外,它也能对数据进行算法加密,MFRC522 支持MIFARE系列的卡,可验证该系列产品。相比于其他芯片,它具有更快的近距离双向数据传输速率通信,高达424kbit/s。

MF RC522 与MF RC500和 MF RC530相比,即相似点也有很多差异。它与微控制器间的数据交换可用SPI串行通信,也能根据应用场合功能不用,采用I2C 或串行UART(类似RS232)模式。当然,SPI通信连线更少,制作的PCB 板体积更小,降低成本。 3.2 特性

? 高集成度的调制解调电路;

? 可将发送器控制的TX管脚直接驱动天线; ? 支持 ISO/IEC 14443 TypeA 通信协议;

? 读写器模式中的ISO 14443A协议的工作距离高达60mm,与天线的长度和

匝数有关。

? 支持 ISO 14443 212kbit/s 和424kbit/s 的更高传输速率的通信。 ? 支持 MIFARE® Classic 加密; ? 支持的主机接口: -10Mbit/s 的SPI 接口

第 14 页 共 61 页

中北大学2016届毕业设计说明书

-I2C 接口,快速模式的速率为400kbit/s,高速模式的速率为3400kbit/s -串行UART,传输速率高达1228.8kbit/s,帧取决于RS232 接口,电压电平取决于提供的管脚电压

? 64 字节的发送和接收FIFO 缓冲区; ? 灵活的中断模式; ? 可编程定时器。

? 具备软、硬件掉电和发送器掉电 3 种节电模式,其中\发送器掉电\则是关

闭内部天线驱动器,即关闭电磁场;

? 内置温度传感器,以便在芯片温度过高时自动停止 RF 发射;

? 采用相互独立的多组电源供电,以避免模块间的相互干扰,提高工作的稳

定性;

? 具备 CRC 和奇偶校验功能,CRC 协处理器的16 位长CRC 计算多项式固定

为:x16+x12+x5+1,符合ISO/1EC14443 和CCTITT 协议[12]; ? 内部振荡器,连接 27.12MHz 的晶体; ? 2.5~3.3V 的低电压低功耗设计; ? 工作温度范围-30~+85℃; ? 5mm×5mm×0.85mm 的超小体积。 3.3 功能结构

3.3.1 简化的MF RC522框图

图3.1 简化MF RC522框图

模拟接口用来处理模拟信号的调制和解调。非接触式UART用来处理与主机通信时的协议要求。FIFO缓冲区快速而方便地实现了主机和非接触式UART之间的数

第 15 页 共 61 页