范围与标准引用
ISO/IEC14443 的这一部分规定了邻近卡(PICC)进入邻近耦合设备(PCD)时的轮询、通信初始化阶段的字符格式、帧结构与时序信息,REQ 和 ATQ 命令的内容,从多张卡中选取其中一张的方法,以及初始化阶段其它必须的参数。这部分规定同时适用于 A 型 PICC 和 B 型 PICC——也就是说,虽然两类卡的防碰撞机制不同,但初始化阶段的框架性规定是共通的。在实际开发中,"卡进入磁场到被选中"这一段流程就由本部分规范。
该部分引用的文件有四项:ISO/IEC 3309:1993《信息技术 系统间的远程通信和信息交换 数据链路层的控制 帧结构》;ISO/IEC 7816-3:1997《识别卡 接触式集成电路卡 第三部分 电信号和传输协议》;ISO/IEC 14443-2《识别卡 非接触式集成电路卡 第二部分 频谱功率和信号接口》;以及 ITU-T 推荐 V.41。按标准体系约定,被引用文件的条文通过引用即构成本标准的条文;出版时所示版本均有效,但各方应探讨采用最新版本的可能性。
术语和定义
除 ISO/IEC14443-3 中已给出的定义外,下列定义适用于本部分。防碰撞循环:在多张 PICC 中选出需要对话的卡的算法。可适用的:属于应用层或更高层的协议,将在 ISO/IEC14443-4 中描述。位碰撞检测协议:帧内的位检测防碰撞算法。数据块:一系列的数据字节构成数据块。异步数据块传输:在异步数据块传输中,数据块是包括帧头和帧尾的数据帧。字节:八个 bits 构成一个字节。字符串:在异步通信中,一个字符串包括一个开始位、8 位的信息、可选的奇偶检验位、结束位和时间警戒位。碰撞:两个 PICC 和同一个 PCD 通信时,PCD 不能区分数据属于哪一个 PICC。能量单位:在本部分中,1 etu = 128/fc,容差为 1%。时间槽协议:PCD 建立与一个或多个 PICC 通信的逻辑通道,它利用时间槽处理 PICC 的响应,与时间槽的 ALOHA 相似。
缩略语包括:ATQ 对请求的应答;ATQA 对 A 型卡请求的应答;ATQB 对 B 型卡请求的应答;ATR 对重新启动的请求的应答;ATS 对选择请求的应答;ATQ-ID 对 ID 号请求的应答;CRC 环检验码;RATS 对选择应答请求;REQA 对 A 型卡的请求;REQB 对 B 型卡的请求;REQ-ID 请求 ID 号;RESEL 重新选择的请求。
轮询:读写器如何发现卡片
为了检测是否有 PICC 进入 PCD 的有效作用区域,PCD 重复地发出请求信号并判断是否有响应。请求信号必须是 REQA 和 REQB,并附加 ISO/IEC14443 其它部分描述的代码。这里有一条重要约束:A 型卡和 B 型卡的命令与响应不能相互干扰。这条约束解释了实际读写器的工作方式——它在闲置状态下要在两种方式之间周期轮换,正是为了让两类卡的轮询互不干扰,同时又能发现任意一种卡。
A型卡的初始化与防碰撞
当一张 A 型卡到达阅读器的作用范围内并获得足够的供应电能时,卡开始执行一些预置程序,之后进入闲置状态。处于闲置状态的 IC 卡不能对阅读器传输给其它 IC 卡的数据起响应——这一条保证了未被选中的卡不会干扰对目标卡的操作。IC 卡在闲置状态下接收到有效的 REQA 命令,则回送对请求的应答字 ATQA;当 IC 卡对 REQA 命令作了应答后,IC 卡处于 READY 状态,此时阅读器即识别出作用范围内至少有一张 IC 卡存在。随后,通过发送 SELECT 命令启动"二进制检索树"防碰撞算法,选出一张 IC 卡对其进行操作。
PICC状态集
A 型 PICC 的状态集包括五个。调电状态:由于没有足够的载波能量,PICC 没有工作,也不能发送反射波。闲置状态:此时 PICC 已经上电,能够解调信号,并能够识别有效的 REQA 和 WAKE-UP 命令。准备状态:在本状态下实现位帧的防碰撞算法或其它可行的防碰撞算法。激活状态:PCD 通过防碰撞已经选出了单一的卡。结束状态:对应下文 HALT 命令之后的状态。
命令集
PCD 用于管理与 PICC 之间通信的命令有:REQA(对 A 型卡的请求)、WAKE-UP(唤醒)、ANTICOLLISION(防碰撞)、SELECT(选择)、HALT(结束)。这五条命令与前述状态集一一对应——REQA 与 WAKE-UP 用于寻卡,ANTICOLLISION 与 SELECT 完成防碰撞与选中,HALT 让卡片停止应答。
B型卡的初始化与防碰撞
当一个 B 型卡被置入阅读器的作用范围内,IC 卡执行一些预置程序后进入闲置状态,等待接收有效的 REQB 命令。与 A 型卡不同,对于 B 型卡,通过发送 REQB 命令可以直接启动 Slotted ALOHA 防碰撞算法,选出一张卡对其进行操作——不需要 A 型那样的多轮二进制检索。
PICC状态集
B 型 PICC 的状态集包括六个。调电状态:由于载波能量低,PICC 没有工作。闲置状态:PICC 已经上电、监听数据帧,并且能够识别 REQB 信息;当接收到有效的 REQB 帧命令时,PICC 定义单一的时间槽用来发送 ATQB——如果是 PICC 定义的第一个时间槽,PICC 必须发送 ATQB 响应信号,然后进入准备—已声明子状态;如果不是第一个时间槽,则进入准备—已请求子状态。准备—已请求子状态:PICC 已经上电,并且已经定义了单一时间槽用来发送 ATQB,它监听 REQB 和 Slot-MARKER 数据帧。准备—已声明子状态:PICC 已经上电,并且已经发送了对 REQB 的 ATQB 响应,它监听 REQB 和 ATTRIB 数据帧。激活状态:PICC 已经上电,并且通过 ATTRIB 命令的前缀分配到了通道号,进入应用模式,监听应用信息。停止状态:PICC 工作完毕,将不发送调制信号,不参加防碰撞循环。
命令集
管理多极点通信通道的四条基本命令是:REQB(对 B 型卡的请求)、Slot-MARKER、ATTRIB(PICC 选择命令的前缀)、DESELECT(去选择)。
两种防碰撞机制的差异
| 对比项 | A 型卡 | B 型卡 |
|---|---|---|
| 防碰撞机制 | 二进制检索树(位碰撞检测) | Slotted ALOHA(时间槽) |
| 启动方式 | REQA 应答后用 SELECT 启动 | REQB 直接启动 |
| 寻卡命令 | REQA / WAKE-UP | REQB |
| 应答字 | ATQA | ATQB |
| 选中命令 | ANTICOLLISION + SELECT | ATTRIB |
| 终止命令 | HALT | DESELECT |
| 状态数 | 5 个(调电、闲置、准备、激活、结束) | 6 个(调电、闲置、准备—已请求、准备—已声明、激活、停止) |
两者的差异不只是技术路线不同,也影响实际部署。A 型的二进制检索树基于卡号逐位筛选,确定性强;B 型的 Slotted ALOHA 基于时间槽随机分配,属于概率性机制,但寻卡流程更短。此外,A 型的"准备"状态只有单一层级,而 B 型在准备阶段细分为"已请求"与"已声明"两个子状态,这与其时间槽机制需要区分"是否已发送过 ATQB"直接相关。开发上层软件时,两类卡的状态机不能混用,必须分别按各自的状态集与命令集实现。
小结
ISO/IEC14443-3 规范的是"卡进场到被选中"这一段:轮询由 PCD 反复发送 REQA 与 REQB 完成,且两类卡的命令与响应不得相互干扰;A 型卡通过 REQA→ATQA→SELECT 启动二进制检索树防碰撞,B 型卡通过 REQB 直接启动 Slotted ALOHA。两类卡各自拥有独立的状态集与命令集,A 型五个状态、B 型六个状态,命令与状态一一对应。工程实现时最需要留意的三点是:不得混用两类卡的状态机、轮询必须在两种方式间轮换、以及时间参数需按 1 etu = 128/fc 换算。上海营信信息在本类协议资料的整理中,均按标准原文口径保留术语与参数,供集成商技术对照使用。