ISO/IEC 14443 防碰撞协议 Type A Type B

ISO/IEC 14443是近场通信(NFC)和射频识别(RFID)领域的重要标准,定义了非接触式智能卡(PICC)与读卡器(PCD)之间的通信协议。其中,14443-3部分规定了防冲突(防碰撞)机制,确保多个卡同时进入读卡器场时能够被正确识别。该标准分为Type AType B两种通信模式,两者的防冲突算法差异较大。


1. 防冲突(防碰撞)的基本概念

当多个卡(PICC)同时处于读卡器(PCD)的射频场时,它们的响应信号会互相干扰(碰撞),导致读卡器无法正确识别。防冲突算法的目标是:

  1. 检测冲突:发现多个卡同时响应。
  2. 解决冲突:通过特定机制逐个选择卡,确保每次只与一张卡通信。

2. ISO/IEC 14443-3 Type A 防冲突机制

Type A 采用基于位冲突检测的动态二进制搜索算法(类似 ALOHA 改进版),核心步骤如下:

(1) 初始化(REQUEST / WUPA)

  • 读卡器发送 REQA(短帧请求)或 WUPA(唤醒所有卡)。
  • 所有卡进入 READY 状态,并返回 ATQA(Answer To Request,2字节),包含 UID(唯一标识符)长度信息(4/7/10字节)。

(2) 防冲突循环(ANTICOLLISION)

  • 读卡器发送 ANTICOLLISION 命令(0x93/0x95/0x97,取决于UID长度),附带当前已知的UID部分(初始为空)。
  • 所有卡比较读卡器发送的UID前缀:
    • 匹配:继续发送后续UID位。
    • 不匹配:静默,等待下一轮。
位冲突检测(Bit Collision Detection)
  • Type A 采用 Manchester编码,在传输UID时,如果多个卡同时发送不同电平(一个发“0”,一个发“1”),会导致 载波调制异常(冲突位)。
  • 读卡器检测到冲突后:
    1. 记录冲突位置(如第N位)。
    2. 发送 SELECT 命令,强制该位为“0”或“1”,筛选部分卡。
    3. 重复直到唯一UID被识别。

(3) 选择卡(SELECT)

  • 读卡器发送 SELECT 命令,附带完整UID,目标卡返回 SAK(Select Acknowledge),确认进入 ACTIVE 状态,可进行后续通信(如ISO/IEC 14443-4)。

3. ISO/IEC 14443-3 Type B 防冲突机制

Type B 采用基于时隙的动态轮询算法(类似 时隙ALOHA),核心步骤如下:

(1) 初始化(REQUEST / WUPB)

  • 读卡器发送 REQBWUPB,附带参数:
    • N(时隙数,1~16)。
    • AFI(应用标识符,可选)。
  • 卡随机选择一个时隙(1~N)响应。

(2) 时隙响应(SLOT-MARKER)

  • 读卡器发送 SLOT-MARKER 命令,指定当前时隙(如时隙1)。
  • 只有选择该时隙的卡回复 ATQB(Answer To Request B),包含:
    • PUPI(伪唯一标识符,4字节)。
    • 协议信息(比特率、帧大小等)。
冲突处理
  • 如果多个卡选择同一时隙:
    • 读卡器检测到冲突(信号叠加),但不明确具体PUPI。
    • 读卡器调整 N(增加时隙数)并重试,降低碰撞概率。

(3) 选择卡(ATTRIB)

  • 读卡器发送 ATTRIB 命令,附带目标卡的PUPI,将其激活进入 ACTIVE 状态。

4. Type A vs Type B 防冲突对比

特性Type AType B
冲突检测方式位冲突(Manchester编码)时隙冲突(信号叠加)
UID处理完整UID逐位匹配动态生成PUPI(伪UID)
算法复杂度较高(二进制搜索)较低(时隙轮询)
抗干扰能力较弱(易受噪声影响)较强(时隙分散)
典型应用MIFARE系列(如公交卡)身份证、金融卡(如EMV)

5. 实际应用示例

(1) Type A(MIFARE Classic)

  • 读卡器逐步获取UID,如:
    1. 发送 ANTICOLLISION,收到部分UID [0x12, 0x34] 并检测到位冲突。
    2. 发送 SELECT 强制下一位为“0”,筛选出UID [0x12, 0x34, 0x56]
    3. 最终获取完整UID [0x12, 0x34, 0x56, 0x78]

(2) Type B(身份证)

  • 读卡器发送 REQB,设置 N=4
  • 卡随机选择时隙(如时隙2)返回 ATQB
  • 读卡器发送 ATTRIB 激活该卡。

6. 总结

  • Type A:适合低成本场景,但防冲突效率较低(依赖逐位匹配)。
  • Type B:适合高干扰环境,时隙机制更稳定,但协议略复杂。
  • 选择依据:取决于应用需求(速度、抗干扰性、成本)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geometry Fu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值