当前位置: 首页 > news >正文

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:适合高干扰环境,时隙机制更稳定,但协议略复杂。
  • 选择依据:取决于应用需求(速度、抗干扰性、成本)。

相关文章:

  • NIFI在Linux系统中的系统配置最佳实践(性能调优)
  • Shuffle流程
  • 【Linux系统编程】System V
  • 大模型呼叫系统——重塑学校招生问答,提升服务效能
  • 离线部署openstack 2024.1 neutron
  • 曼昆《经济学原理》第九版 第十八章生产要素市场
  • 离线部署openstack 2024.1 nova
  • 火山引擎大模型系列都有什么内容
  • Java高频面试之并发编程-27
  • Ubuntu24.04 onnx 模型转 rknn
  • 大语言模型智能体开发的技术框架与应用前景
  • 频域分析和注意力机制
  • 华测CGI-430配置
  • 离线部署openstack 2024.1 keystone
  • 计组刷题日记(1)
  • Python文件读写操作详解:从基础到实战
  • sssssssssssss
  • ConcurrentHashMap详解:原理、实现与并发控制
  • docker推荐应用汇总及部署实战
  • 基本多线程编译make命令
  • 怎样建免费网站/合肥网络推广培训学校
  • 收费下载网站源码/网络营销seo培训
  • 百度快照网站/2019年 2022疫情爆发
  • 网站做页游推广/最好的seo外包
  • 中国建设银行山西省分行网站/广州白云区疫情实时动态
  • 网站建设人员配置/dsp投放方式