IC卡读写器防冲突过程
防冲突是读卡器对进入其读写范围内的有效卡片按一定的顺序进行有条不紊的操作。在这个过程中,读卡器始终处于主动状态,通过一个命令集来管理与多张卡片的通信。卡片内部的操作系统,能够对IC卡读卡器发出的这组命令集进行处理。当读写器在检测到冲突发生时,读写器必须执行相应的防冲突(Anticollision)过程,以识别出每一张工作卡片,并准备进入传输协议的更高层, 以进行后续的通信过程。
第一步:若有多张卡片进入RF场,当读卡器检测到冲突之后,发送多时隙带AF I应用标识符的REQB或者WUPB命令,那些与AF I相匹配的卡片,产生一个内部随机数R, R 的取值范围在1~N 之间, R = 1的卡片即除在1时隙的卡片,回ATQB给读卡器。若在1时隙内有多于一张卡片回复ATQB,则发生新的冲突,这些卡片无法在此次防冲突循环中被识别出来,等待下次的防冲突循环;若仅有一张卡片且正确回复ATQB,则读卡器可接着发出ATTR IB或者HALT命令;若发AT2TR IB命令,则选定此卡进入ACTIVE状态,此时卡片可接受高层命令并进行处理, REQB 及WUPB命令无效,直至卡片离开射频场内;若发出HLTB命令,则卡片进入HALT状态,此时卡片只接受WUPB命令,直至卡片离开射频场内。
第二步:读卡器发SLOTMARKER命令,由小到大依次检查2~N 这N - 1个时隙,选取卡片的原理和过程同第一步。
第三步:若一次防冲突循环之后,还有卡片未被识别出来,则继续执行步骤1和步骤2,直至所有卡片被识别出来。
防冲突循环允许在任何时间选择一张或者多张卡进行进一步的高层通信。
设同时有3张卡进入RF场中, 3张卡片的应用类型各不相同。首先读卡器发单时隙REQB命令,卡片1和卡片3都回复了ATQB,读卡器检测到冲突后,改发4 时隙的REQB命令,卡片1 选择了时隙2,这次不回复ATQB;卡片3选择了1时隙,马上回复ATQB;卡片2类型符不对,所以不做反应。然后读卡器发时隙2的SLOTMARKER命令,卡片1回复AT2QB;卡片2类型不符,还是不做回复,卡片3时隙不符也不做回复。读卡器接着发出时隙3和时隙4的SLOTMARKER命令,卡片1和3不在这2个时隙内,不做回复;卡片2 类型不对,也不做回复;此时卡片1和3等待着HLTB或者ATTR IB,所以这2个时隙内没有回复。读卡器接着发时隙3和时隙4的SLOTMARKER命令,卡片1和3不在这2个时隙内,不做回复;卡片2 类型不对,也不做回复;此时卡片1和3等待着HLTB或者ATTR IB,所以这2个时隙内没有回复。