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個時隙內沒有回復。