ISO/IEC 14443协议(物理和链路层最关键的协议)
一、基本概念
ISO/IEC 14443是NFC通信的底层核心协议,由国际标准化组织(ISO)和国际电工委员会(IEC)为13.56MHz的非接触集成电路卡制定的一套通信标准。
相关的基本定义:
(1)接近式卡Proximity card(PICC) 卡
(2)接近式耦合设备Proximity coupling device(PCD) 读卡器
(3)载波Carrier(fc)
(4)副载波Subcarrier(fs)
(5)基本时间单元elementary time unit(etu) 1etu=128/fc,即1个时间单元是频率的128分之一。(通信速率为106K)
(6)冲突collision:在同一个PCD激励场中并且在同一时间周期内两个PICC的传输,使得PCD不能分辨数据是从哪一个PICC发出的。
二、识别机制
IOS 14443 Type A的识别机制:Cascade Anticollision Protocol(级联抗冲突协议):
2.1核心理念
(1)每张卡有唯一的UID(4字节、7字节或10字节)
| UID 类型 | 总层数 | 总字节数 | 有效 UID 字节 | Cascade Tag(级联标记) 数量 |
|---|---|---|---|---|
| 4 字节 | 1 | 4 | 4 | 0 |
| 7 字节 | 2 | 7 | 6 | 1(0x88) |
| 10 字节 | 3 | 10 | 9 | 2(0x88) |
(2)读卡器通过逐位比对UID,按位选出唯一一张卡
(3)如果多张卡前几位相同,继续比对下一位,直至区分
(4)采用分层(Cascade)方式分批识别完整UID(支持不同长度)
2.2识别流程详细步骤
(1)REQA->读卡器广播激活命令
(2)ATQA->所有卡响应
(3)Anticollision(Level 1)
-
读卡器发送
SELECT+ NVB(指定已知前缀) -
卡片逐位比对前缀,若匹配 → 继续回应
-
若冲突 → 读卡器调整掩码前缀继续匹配
(4)SELECT + UID + BCC 校验 → 成功识别唯一卡片
(5)若 UID 大于4字节 → 进入 Level 2、Level 3 重复上述过程(称为 Cascade)
2.3举例说明(UID冲突)
-
卡A UID =
04 A1 2B 90 -
卡B UID =
04 A1 2B 91
前3字节完全一样,第4字节不同
-
读卡器从第1位开始比对,一直到第25位前两张卡都回应 → 第26位比对失败 → 读卡器分支并选择其一 → 识别完成
2.4总结对比
| 对比项 | EPC Gen2 | ISO 14443 Type A |
|---|---|---|
| 适合环境 | 批量识别(上百上千个标签) | 单个识别(门禁、认证、支付) |
| 防碰撞原理 | 槽位排队 + RN16 轮询(Slotted ALOHA) | UID按位比对(逐位筛选) |
| 多标签识别能力 | 非常强,支持快速扫描成千上万个标签 | 弱,通常识别1–2张,更多时需特殊机制 |
| 识别速度 | 非常快,适合高速传送带扫描 | 慢,但准确,适合近距离交互 |
| 通信距离 | 1–10 米 | 0–10 厘米 |
| 是否支持多轮识别 | ✅ 可自动继续识别剩下标签 | ✅ 但通常仅用于识别1–2张卡片 |
2.5应用场景
| 场景 | 建议协议 | 理由 |
|---|---|---|
| 超市收银识别100件商品标签 | ✅ EPC Gen2 | 识别速度快,标签成本低,远距离批量处理 |
| 公司门禁识别一张工牌 | ✅ ISO 14443 | UID唯一,支持安全认证,加密命令,可连接后台身份系统 |
| RFID图书馆批量借书识别 | ✅ EPC Gen2 | 批量识别,便于扫描书籍标签 |
| NFC 手机刷公交/支付 | ✅ ISO 14443 | 安全性强,支持 NFC,兼容银行卡结构,带加密与认证 |
IOS 14443 Type B:
2.6 Type B与Type A的关系
| 项目 | 内容 |
|---|---|
| 标准来源 | ISO/IEC 14443 标准(共分四部分:Part 1~4) |
| Type A 与 Type B | 是 ISO 14443 标准中规定的两种不同的物理与传输方式 |
| 共通点 | 都是 13.56 MHz 高频、被动供电、用于非接触式智能卡、支持 Part 4 APDU |
| 应用场景 | Type A 用于 MIFARE/NFC;Type B 用于中国二代身份证、金融卡等 |
2.7 详细异同比对
| 层级 | Type A | Type B |
|---|---|---|
| ⏱️ 频率 | 都是 13.56 MHz | 同上 |
| ⚙️ 调制方式 | 读卡器→卡片:100% ASK(调幅)卡片→读卡器:OOK(负载调制) | 读卡器→卡片:10% ASK卡片→读卡器:Load modulation(幅移) |
| 🔢 编码方式 | Reader → 卡片:Modified Miller 编码 | Reader → 卡片:NRZ-L 编码 |
| ⌛ 位持续时间定义 | 通过 Pulse Interval Encoding(PIE) | 使用固定数据速率,无需 PIE |
| 🧠 抗冲突机制 | 级联式UID比对(Cascade Anti-collision) | 时间片选择(Slot-based Anti-collision) |
| ⛓ 通信模式 | 启动→选择→APDU 数据交换 | 启动→分配时间片→APDU 交换 |
| 🗂 UID格式 | 支持4字节、7字节、10字节 UID(需Cascade) | 一律使用固定长度(一般10字节) |
| 📦 数据层支持 | 完全支持 ISO 7816-4 APDU | 同上 |
2.8抗冲突机制差异
Type A:Cascade 抗冲突协议
-
原理:多张卡片同时回应,读卡器按位识别每张卡的 UID
-
使用 "SELECT" + 掩码方式逐步缩小范围,直到唯一识别一张卡
-
由于长度不确定,读卡器不能一次性识别全部 UID,所以会按“每次4字节(或5字节,多一个BBC校验)一段”地逐层识别 UID。
-
卡片回应中的UID中如果第一个字节是
0x88,说明“不是最后一级”,后面还有 UID 没识别,必须进入下一层(Level 2 或 Level 3)
| UID 总长度 | 使用的级联级数 | 举例 UID | 实际识别过程 |
|---|---|---|---|
| 4 字节 | Level 1 | 04 A1 2B 90 |
一次 SELECT 就识别完 |
| 7 字节 | Level 1 + 2 | 88 04 A1 2B 90 C3 17 |
第1级识别前4字节,第2级识别后3字 |
| 10 字节 | Level 1 + 2 + 3 | 88 04 A1 2B 90 88 C3 17 D2 6F |
需要3级 SELECT,分三轮识别完成 |
-
适合安全型智能卡,如门禁、交通卡、NFC
Type B:时间片选择抗冲突协议
-
原理:系统分配时间槽,卡片只能在自己时间槽回应
-
每张卡在初始化时得到一个唯一的槽号(PUPI - pseudo UID)
-
通常只需要一轮识别,效率高但灵活性较差
-
常用于金融类卡证,如中国二代身份证、社保卡
2.9应用场景
| 应用场景 | Type A or B | 原因说明 |
|---|---|---|
| 地铁公交卡(如 MIFARE) | ✅ Type A | 结构简单,速度快,成本低 |
| 手机 NFC(Android、iPhone) | ✅ Type A | NFC Forum 标准主要基于 Type A |
| 中国居民二代身份证 | ✅ Type B | 国家标准采用 ISO 14443 Type B 协议 |
| 银行金融卡(带非接触功能) | ✅ Type B | Type B 通信更稳定,适用于加密安全性要求较高的环境 |
更多推荐

所有评论(0)