前言
上一篇《【nfc专栏】iso14443a协议》介绍了iso14443a协议,接下来继续介绍iso14443b协议。之前介绍过,a和b的协议区别主要在iso14443-3,所以接下来的内容也是集中在iso14443-3。
名词解析
pupi:pseudo-unique picc identifier,可以理解为a卡中的uid
fwi: frame waiting time integer,帧等待时间整数值
fwt: frame waiting time, 帧等待时间
adc: application data coding, 应用数据编码
命令介绍
reqb/wupb
读卡器发送reqb或wupb命令来检查是否有卡存在。命令码如下:
(1)apf: 防碰撞前缀,固定值为0x05。
(2)afi: application family identifier,应用族id,用来指定要检查的picc类型。值为0时表示所有picc都要处理reqb/wupb命令。定义如下:
注:x和y的取值范围都为0x1~0xf。
afi被分为高4位和低4位两个部分,通过这两部分的组合来确定picc类型,可以简单理解为过滤设置。
(3)param: 用来指定是reqb还是wupb, 以及slot(槽)数量。
b4为0时表示reqb,为1时表示wupb。这两命令和和iso14443a中的reqa和wupa类似。wupb命令是处于idle,ready或halt状态的卡都会应答,而reqb命令只有处于idle或ready状态的卡会应答。
b1~b3定义如下:
n主要是要配合slot-marker命令一起解决防碰撞。n可以理解为最大随机值,就比如n=2, picc会产生随机值1或2,如果是1会马上应答(atqb),如果是2,就需要再发送slot-marker命令,picc才会应答。
slot-marker
slot-marker命令格式如下:
(1)apn: 槽(slot)序号, 它的值为 (nnnn 0101)b ,低4位是固定的。
atqb
atqb是reqb/wupb和slot-marker的应答命令。命令格式如下:
(1)pupi: 和a卡中的uid类似。
(2)application data: 应用数据,具体定义如下:
afi: 上面reqb中有提到了
number of applications: 应用数量,高4位与afi一致,‘0’意味着无应用,‘0xf’意味着15种应用或者更多;低4位代表着应用总数,‘0’意味着没有应用,‘0xf’意味着15种应用或者更多。
(3)protocol info: 协议信息,具体定义如下:
第一个字节是速率,定义如下:
第二个字节,高4位是最大帧大小,低4位是是否支持iso14443-4。定义如下:
第三个字节包含: fwi, adc, fo三个部分,定义如下:
fwi就是帧等待的时间值,意思就是发送完一帧数据之后要等待多久才能继续发。
adc意思是应用数据编码:
fo: frame option, 帧选项:
attrib
该命令用于选择picc,命令格式如下:
(1)identifier:就是pupi
(2)param1定义如下:
tr0是picc响应pcd命令的最小延迟时间。定义如下:
tr1是picc副载波调制开始到数据传输的最小延迟时间。定义如下:
eof/sof表示是否需要帧结束标识和帧开始标识。0表示需要,1表示不需要。
(3)param2定义如下:
b7~b8定义picc到pcd的速率:
b5~b6定义pcd到picc的速率:
b1~b4定义最大帧大小:
(4)param3定义如下:
它的高4位为预留位,值为0;低4位定义了picc支持的协议类型,就是上面的是否支持iso14443-4。
(5)param4定义如下:
它的高4位为预留位,值为0;低4位为cid,它的取值范围为0~14。pcd定义了每个激活的picc必须要有唯一的cid,如果picc不支持cid,那么cid的值为(0000)b。
(6)higher layer inf: 高层信息,这字段不是强制的,只有部分特殊卡有。
attrib应答
attrib命令应答格式如下:
(1)第一个字节包含两个部分:
高4位mbli( maximum buffer length index), 让pcd知道picc内部缓冲区对接收链式帧的限制。链式帧就是将大的数据帧拆成多个数据帧。
低4位为picc返回给pcd的cid,如果picc不支持cid,则返回(0000)b。
(2)higher layer response: 根据标签卡情况而定,可能有也可能没有。
hltb
hltb命令用来让卡进入休眠状态。命令格式如下:
(1)identifier: 即pupi。
hltb应答
hltb的应答格式如下:
*注意:iso14443a的halt是没有应答的,而iso14443b的hltb是有应答的。
pcd检测picc流程
(1)pcd发送reqb或wupb, 匹配afi则继续下一步。
(2)n=1时则picc应答atqb,如果n为其他数值(r), 则pcd发送slot marker命令依次进行匹配, 匹配后picc应答atqb。
(3)pcd发送attrib来选择卡,或者发送hltb让卡进入休眠。
防碰撞流程
iso14443b的防碰撞过程的原理是基于时隙的。每次pcd发送的reqb /wupb命令,picc会产生一个随机值(就是时隙),picc在哪个时隙响应都有可能(发送atqb)。通过这种随机概率的方式来进行防碰撞。
防碰撞应答规则
当picc接收到reqb/wupb命令后,处于ready-requested状态时,picc的响应应该遵循下面规则:
(1)如果n=1,picc应该发送atqb并且进入ready-declared状态。
(2)如果n>1:
picc可以采用概率法(pcd检测picc流程图中的option 1),并且进入空闲态(idle state)。
picc采用发送slot-marker命令的方法(pcd检测picc流程图中的option 2),一直到槽序号等于r,然后picc发送atqb并且进入ready-declared 状态。
总结
iso14443a和iso14443b部分命令是很相似的,主要区别在于处理防碰撞机制的差异。
微雪电子RK3308主板CC上手介绍
西班牙将成为LG化学在欧洲的第二大电池工厂
海力士第四代3D闪存芯片256-Gbit 72层TLC NAND介绍
为保护用户安全,苹果对iPhone第三方电池进行功能限制
影像仪自动检测步骤有哪些?
介绍一下ISO14443B协议
便携式LED驱动器的选择与三种拓朴设计
简述保护低速接口和电源电路设计技巧
赛普拉斯CEO:追随传奇,再造辉煌
采用GD32F303的机械键盘方案设计
海信空净一体空调面世 打造全方位舒适体验
MAX16834应用电路
硅橡胶热缩套管的性能特性是怎样的
dfrobot1602 LCD显示器扩展板 V2.0简介
我国功率半导体市场占据全球50%份额,或将成为“中国芯”最好突破口
变电站辅控系统的包含内容和应用优势
金属锂电池聚合物电解质PEO不耐氧化的原因分析
六款开源项目推荐
关于从指定方向图合成阵列优化工作流程的分析
小米Note3什么时候上市?小米Note3最新消息:双曲面设计+前置双摄+骁龙835,4种配色可选