正常情况下读写器每一时刻只能对磁场中的一张射频卡进行读写操作。但是当多张卡片同时进入读写器的射频场时,读写器需要选出唯一一张卡片进行读写操作,这就是防冲突。
防冲突机制是非接触式智能卡特有的问题。在接触式智能卡的操作中是不存在冲突的,因为接触式智能卡的读写器有一个专门的卡座,一张卡座只能插一张卡片,不存在读写器同时面对两张以上卡片的问题。常见的非接触式智能卡中的防冲突机制主要有以下几种:面向位的防冲突机制(ISO14443 Type A使用)、面向时隙的防冲突机制(ISO14443 TypeB使用)、位和时隙相结合的防冲突机制(ISO15693使用)。下面将具体介绍ISO14443 Type A中使用的面向位的防冲突机制。
面向位的防冲突帧仅用在位帧防冲突循环期间,是一个7字节长度的标准帧,分为两部分:第一部分PCD到PICC的传输;第二部分PICC到PCD的传输。使用规则如下:
1)数据位的和为56位;
2)第一部分最小的数据位长度为16;
3)第一部分值大的数据位长度为55。
因此第二部分数据位的最小长度为1,数据位最大的长度为40。
此帧由1字节选择命令码(SEL),1字节有效位数目(NVB)和5字节UID CLn部分。当有2个以上的PICC同时发送位串信息时,PCD将根据对接收信号译码所得的某一位电平“无变化”的异常,判断冲突位。Type A类型非接触IC遵循的是“动态二进制搜索法”,PCD仅仅发送冲突以前的数据位,即防冲突帧的第一部分。后半部分由PICC发送。
在每个级联层的防冲突循环如下:
如果PCD知道PICC的UID,PCD可以跳过步骤2到步骤10选择PICC,不需要执行防冲突循环,下图说明步骤1到步骤13:
防冲突实例如下: