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

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

相关文章:

  • 第26节 Node.js 事件
  • 爱普生 SG-9101CB以展频调制技术突破 EMI 难题​
  • 51la查看https统计,悟空统计助力高效运营
  • 系统集成自动化流程编排流实现 if-else 条件分支(一)
  • AIGC方案-java实现视频伪动效果
  • el-table-v2修改表头、单元格、表格整体的宽度、高度样式
  • Web 架构之微服务拆分原则与反模式
  • 网页组件强制设置右对齐
  • 基于拓扑的信任评级实现的车载异常检测框架
  • 从零实现一个红队智能体
  • linux内核编译问题记录
  • 润乾报表display value expression使用介绍
  • Redis GEO 52 位整数的经纬分布
  • 【基于阿里云上Ubantu(x86-64)系统部署配置K8s】
  • Docker环境安装Kafka、Flink、ClickHouse镜像
  • 海外打车代驾app评价系统框架搭建
  • 获取RadioButton的text,更换textview的text
  • C++笔记-C++11(二)
  • 【Unity优化】提高热更新和打包速度
  • Centos与RockLinux设置静态ip
  • 数据库管理与高可用-PostgreSQL日常维护
  • MongoDB入门指南:环境安装与基本操作
  • QGIS新手教程4:相交、缓冲区与合并操作详解(含实战案例)
  • 多头与空头:市场博弈的两面
  • 【2025最新】Adobe Illustrator下载保姆级安装教程(附官方下载链接)
  • ThinkPad 交换 Ctrl 键和 Fn 键
  • Uncaught (in promise) TypeError: Cannot read properties of null (reading ‘xxx’)
  • RK3588开发笔记-GNSS-RTK模块调试
  • YOLO-World 部署踩坑记录
  • Linux611 libvirtb ;FTP vsftpd.conf部分配置文件