一、引言

  RFID(Radio Frequency Identification)技术是一种利用无线电信号自动识别特定目标并读写相关数据的无线通信技术。高频RFID技术,特别是工作在13.56MHz的系统,因其在读写距离、数据速率和成本方面的良好平衡,成为了门禁系统、非接触式支付​(如公交卡、校园一卡通)、电子护照、身份证以及物流管理等领域的主流选择。这些应用大多遵循由国际标准化组织(ISO)和国际电工委员会(IEC)联合制定的ISO/IEC 14443标准,该标准定义了邻近式卡(Proximity Card)的通信协议。

二、标准概述

  ISO/IEC 14443标准旨在规范13.56MHz频率下非接触式识别卡(PICC)与读写器(PCD)之间的通信。该标准由物理特性、射频功率与信号接口、初始化和防冲突、​传输协议四个部分组成。

2.1 14443标准A、B对比表

  ISO/IEC 14443标准根据信号接口不同又可分为Type A、Type B两类,两种标准具备两种互不兼容的通信调制方式和协议。

14443-A与14443-B标准比对
14443-A标准14443-B标准
物理特性PICC的物理尺寸和机械特征没有区别
射频
功率
与
信号
接口
工作频率13.56MHz
通讯速率106 kbit/s
工作特性 ​抗干扰能力强​​ 电源稳定性好,安全性更高
但易受外界环境干扰
向卡片
发送数据
PCD->PICC
​100% ASK (幅移键控)调制
Miller编码
​​ 10% ASK (幅移键控)调制
​NRZ (不归零) 编码
向读卡器
发送数据
PICC->PCD
​OOK(开关键控)调制
​曼彻斯特编码
​​ BPSK(二进制相移键控)调制
​NRZ (不归零) 编码
初始化
和
防冲突
防冲突 ​基于​比特冲突检测机制​​ 基于​时隙ALOHA​ 协议
UID ​通常为4字节或7字节​​ PUPI,4字节
传输协议 I/R/S-Block协议
推动厂商飞利浦、恩智浦 (NXP)摩托罗拉、意法半导体
应用场景MIFARE​系列、门禁、交通、票务居民身份证、公交一卡通

2.2 标准PICC对比表

  在14443-A标准之上,不同的芯片制造商和标准组织开发了多种多样的卡片类型,它们在安全机制、内存结构、操作系统和应用功能上有天壤之别。卡片分为几个主要类型如下:

PICC类型对比
  卡片家族Mifare家族CPU卡
协议标准14443-A14443-B
类型Mifare_UltraLight
M0卡
Mifare_Classic
M1卡(S50、S70)
Mifare_PlusMifare_DESFireCPU卡
安全性无安全保护,数
据可随意读取
专有的流密码算
法,但已彻底破
解,安全性很低
AES-128加密,Classic的安全升级版,具备密钥管理和访问控制AES/TDES加密,具备真随机数生成器、安全密钥存储等特性,安全性高RSA、ECC、DES、AES等多种国际标准算法,安全性极高
数据存储线性地址空间;页式存储,每页4字节固定扇区存储;每个扇区4个数据块,每块16字节固定扇区存储;每个扇区4个数据块,每块16字节灵活文件系统复杂文件目录
应用场景地铁单程票、演唱会门票、NFC标签门禁卡、公交卡、饭卡安全性更高的公交卡、门禁高端一卡通、电子钱包二代身份证、金融IC卡

三、14443-A标准详解

3.1 标准命令代码

命令编码命令类型命令功能
0x00读写器命令取消当前指令
0x03读写器命令CRC计算
0x04读写器命令发送数据
0x08读写器命令接收数据
0x0C读写器命令发送并接收数据
0x0E读写器命令密钥验证
0x0E读写器命令读写器复位
0x26Type_A卡片命令寻天线区内未进入休眠状态的Type_A卡
0x30Type_A卡片命令读取卡片块数据
0x50Type_A卡片命令休眠卡片
0x52Type_A卡片命令寻天线内全部卡片
0x60Type_A卡片命令验证A密钥
0x61Type_A卡片命令验证B密钥
0x93Type_A卡片命令一次防冲撞
0x95Type_A卡片命令二次防冲撞
0xA0Type_A卡片命令写入卡片块数据
0xB0Type_A卡片命令保存缓冲区中数据
0xC2Type_A卡片命令块数据写入缓冲区

3.2 通讯命令协议格式

  PICC通信基本命令包含REQA(寻卡)、WAKE-UP(唤醒寻卡)、ANTICOLLISION(防冲突)、SELECT(选卡)、HALT(休眠)5个命令。通过基本命令建立PICC和PCD的基础通讯链路。

3.2.1 寻卡命令协议(REQA/WAKE-UP)
寻卡命令协议(PCD -> PICC)
请求命令REQAWAKE-UP
命令说明探测天线区内未进入休眠的Type_A卡探测并唤醒处于休眠状态的Type_A卡
请求格式0x260x52
发送方式7个数据位发送,LSB首先发送(不加奇偶校验)
响应命令ATQA
命令说明2字节数据(可判断卡片类型)
Bit1 ~ Bit5:比特帧防冲突;Bit6,Bit9 ~ Bit16:预留
Bit8、Bit7:UID长度(00:级联级别1,4字节;01:级联级别2,7字节;10:级联级别3,10字节;11:预留)
响应格式
卡片类型(低字节在前)
0x44 0x00:Mifare_UltraLight(M0卡,不带加密)
0x04 0x00:Mifare_One(S50)(M1卡,带加密)
0x02 0x00:Mifare_One(S70)(M1卡,带加密)
0x08 0x00:Mifare_Pro(X)(M0卡,不带加密)
0x44 0x03:Mifare_DESFire(M0卡,不带加密)
3.2.2 防冲突命令协议(ANTICOLLISION)
防冲突命令协议(PCD -> PICC)
请求命令ANTICOLLISION
命令说明通过位冲突检测获取卡的完整 UID
命令格式:[SEL] [NVB]
SEL选择代码0x93(级联级别 1)、0x95(级联级别 2)、0x97(级联级别 3)
4字节UID(一次防冲撞):0x93
7字节UID(两次防冲撞):0x93、0x95
10字节UID(三次防冲撞):0x93、0x95、0x97
NVB有效位数字节0x20表示 PCD 发送 32 位 (4 字节) UID 信息
响应命令ATQA
命令格式:[UID CLn] [BCC]
UID CLnUID数据当前级联级别的UID数据
BCCUID 校验字节对当前级联级别的所有 UID 字节进行连续异或(XOR)运算获得​
3.2.3 选卡命令协议(SELECT)
选卡命令协议(PCD -> PICC)
请求命令SELECT
命令说明选定指定 UID 卡片
命令格式:[SEL] [NVB] [UID] [BCC]
SEL选择码0x93(串联级别 1)、0x95(串联级别 2)、0x97(串联级别 3)
4字节UID(一次选卡):0x93
7字节UID(两次选卡):0x93、0x95
10字节UID(三次选卡):0x93、0x95、0x97
NVB有效位数字节固定值0x70,表示发送完整的7字节数据 (SEL+NVB+32位UID片段+BCC )
UID卡片UID1字节选卡(4字节)
7字节选卡(4字节、3字节)
10字节选卡(4字节、4字节、2字节)
BCCUID 校验字节对当前级联级别的所有 UID 字节进行连续异或(XOR)运算获得​
响应命令SAK
命令格式:1字节(Bit1~Bit8)
Bit2级联位 0:表示UID完整
1:表示UID尚未完整,还有下一级。读卡器需要继续进行CL2的防冲突循环​
Bit6协议支持状态 0:不支持 14443-4​ 传输协议
1:支持 14443-4​ 传输协议​
3.2.4 休眠命令协议(HALT)
休眠命令协议(PCD -> PICC)
请求命令HALT
命令说明卡片进入休眠状态,不再响应普通寻卡请求
命令格式:[0x50] [0x00][CRC_A]
CRC_ACRC_16校验完整的 HALT 命令:0x50, 0x00, 0x9D, 0x6D

3.3 应用命令协议格式

3.3.1 密码认证协议

对卡片的某个扇区进行读/写操作前,必须先通过该扇区的密码认证。

密码认证协议(PCD -> PICC)
请求命令PICC_AUTHENT
命令说明对指定扇区进行密码认证
命令格式:[Key_Code] [Block_Address] [Key] [UID]
Key_CodeKey认证类别0x60(使用密钥A认证密码)、0x61(使用密钥B认证密码)
Block_Address认证块地址同一扇区下的块地址(0~3)仅需进行一次认证
Key6字节扇区密码扇区默认密码一般是6个0xFF或6个0x00,密钥A和密钥B可能存在不同密码
UID4字节UID选中标签的UID数据(级联级别1)
3.3.2 读取块数据协议
读取块数据协议(PCD -> PICC)
请求命令PICC_READ
命令说明读取指定块数据
命令格式:[0x30] [Block_Address] [CRC_A]
Block_Address读取块地址每个扇区的前3块用于存储数据可读取;第4块用于存储密钥和访问控制位
CRC_ACRC_16校验数据CRC校验
3.3.3 写入块数据协议
写入块数据协议(PCD -> PICC)
请求命令PICC_WRITE
命令说明数据写入指定块
命令格式:[0xA0] [Block_Address] [CRC_A]
Block_Address写入块地址每个扇区的前3块可用于数据写入
CRC_ACRC_16校验数据CRC校验

  本章详细剖析了ISO/IEC 14443-A标准的核心通信协议,从底层寻卡、防冲突、选卡到上层认证与数据读写,为开发者理解和实现非接触式智能卡应用提供了坚实的理论基础与协议框架;下文将介绍RC522芯片驱动开发实践~

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐