ISO14443 Type B類型卡的防碰撞過程以及命令解析

一、介紹

本博文介紹了PCD(Proximity Coupling Device)使用ISO14443-3 Type B協議檢測匹配的PICC(Polling For Proximity Cards)命令以及防碰撞過程(Anticollision Proccess)。

二、命令

2.1 REQBWUPB

2.1.1 概要

REQB命令和WUPB命令是PCD用來檢測PICC是否在無限射頻場(RF)的命令。其中REQB命令用在PCD剛開始檢測RF中的PICC時,而WUPB使用在PCD喚醒處於停止態(HALT State)的PICC時。

2.1.2 命令格式

這裏寫圖片描述

說明:
(1)防碰撞前綴APf的值爲0x05,即(0000 0101)b。
(2)Application Family Identifier(AFI)表示PCD檢測的PICC類型,如果AFI的值爲0,則表示PCD檢測所有支持的PICC類型。AFI所支持的類型如下圖所示。AFI
注:X和Y的取值範圍都爲0x1~0xF。
(3)PARAM的編碼格式如下圖所示。
這裏寫圖片描述
注:
A、所有的Reserved for Future ISO/IEC Use(RFU)比特位都爲0。
B、如果b4比特位爲0,表示該命令是REQB命令,PCD可以在空閒態(Idle State)或者準備態(Ready State)使用該命令去檢測PICC;如果b4比特位是1,表示是WUPB命令,PCD可以在空閒態(Idle State)、準備態(Ready State)或者停止態(HALT State)使用該命令檢測PICC。
C、b1、b2和b3共同組成槽序號(Number of slots)。它的編碼以及含義如下圖所示。
這裏寫圖片描述
注:對於每一個PICC而言,用ATQB響應REQB第一個槽序號的概率都爲1/N。因此,如果PCD使用的是概率響應的辦法,N不作爲調節槽序號的值,但是PICC會在特定ATQB槽序號裏返回它的UID。即N只是槽序號總數,但是每個PICC在0~N的響應概率都爲1/N,N不爲ATQB中的b1、b2和b2的編碼。

2.2 Slot-MARKER

2.2.1 概要

在PCD發送完REQB/WUPB命令後,它可以在槽序號N發送(N-1)個Slot-MARKER命令。Slot-MARKER命令在如下兩種情況會被髮送。
A、PCD接收到PICC的ATQB命令後開始下一個槽(時隙)時,即發送下一條命令時。
B、如果知道該槽是空的,並且沒有ATQB到來,那麼不需要等待ATQB,直到該槽結束的時候。即b1、b2和b3都爲0時。
注:該命令不是PICC強制要支持的。如果PICC不支持該命令,那麼它將會忽視該命令。此時PICC只能通過概率的方法用ATQB去響應PCD的REQB命令。

2.2.2 命令格式

這裏寫圖片描述

說明:
A、APn爲Slot-MARKER命令的第一個字節,它的二進制表示爲(nnnn 0101)b,即它的低四比特爲固定位0x5,即(0101)b;高四比特位編碼如下所示。
這裏寫圖片描述
注:slot-MARKER命令不強制要求隨着槽序號遞增而增加,只要在0~N之間即可。

2.3 ATQB

2.3.1 概要

ATQB命令是PICC對PCD發出的REQB/WUPB和Slot-MARKER命令的響應命令。

2.3.2 命令格式

這裏寫圖片描述

說明:
(1)第一個字節值爲0x50,是ATQB命令的前綴。
(2)第二到第五個字節表示PICC的Pseudo Unique PICC Identifier(PUPI),即Type B類型的卡號。表明Type B類型的卡號只有四個字節。
(3)第六到第九個字節是應用數據(Application Data),它的編碼以及含義如下。
這裏寫圖片描述

注:
A、應用數據的第一個字節是AFI,表明卡片的用途。
B、CRC_B的計算方法參照ISO14443-3文檔。
C、應用序號(Number of Applications)佔一個字節。高四個比特位與AFI一致,‘0’意味着無應用,‘0xF’意味着15種應用或者更多;低四比特位代表着應用總數,‘0’意味着沒有應用,‘0xF’意味着15種應用或者更多。
(4)第十到第十二個字節是協議信息(Protocol Info)。它的編碼以及含義如下。
這裏寫圖片描述
注:
1)第一個字節表示的是數據傳輸的速率。編碼以及含義如下
這裏寫圖片描述
2)第二個字節的高四比特位表示最大幀值(Max_Frame_Size),低四比特位是PICC所支持協議類型(Protocol_Type)。

A、最大幀值編碼以及含義如下圖所示。
這裏寫圖片描述
B、協議類型編碼以及含義如下圖所示。
這裏寫圖片描述
3)第三個字節分成FWI、ADC和FO三部分。
A、第一部分是高四比特位的幀等待整數時間Frame Waiting time Integer(FWI),它是用來定義幀等待時間Frame Waiting Time(FWT)的。它表示PICC響應PCD的最大時間,FWI與FWT之間的轉換爲:FWT = (256 * 16 / fc) * 2^FWI,其中FWI的取值範圍是0~14,fc是射頻場的頻率13.56MHz。
B、第二部分是b4和b3比特位的PICC支持的應用數據編碼(Application Data Coding)。它們的編碼以及含義如下所示。
這裏寫圖片描述
C、第三部分是b2和b1比特位的PICC支持的幀選項(Frame Option)。它們的編碼以及含義如下圖所示。
這裏寫圖片描述

2.4 ATTRIB

2.4.1 概要

該命令是由PCD發給PICC的命令,一旦該命令發送,意味着PICC已經確定。

2.4.2 命令格式

這裏寫圖片描述

說明:
(1)第一個字節值爲0x1D,它是ATTRIB命令前綴。
(2)第二到第五個字節是Type B的卡號Identifier,值和PUPI一樣。。
(3)第六個字節我們稱之爲參數1,它的編碼以及含義如下。
這裏寫圖片描述

說明:
1)b8和b7比特表示Minimum TR0,含義是PICC響應PCD命令的最小延遲時間。它的編碼以及含義如下。
這裏寫圖片描述
2)b6和b5比特表示Minimum TR1,含義是PICC副載波調製開始到數據傳輸的最小延遲時間。它的編碼以及含義如下。
這裏寫圖片描述
3)b4比特表示是否需要幀結束標識,0表示需要,1表示不需要。
4)b3比特表示是否需要幀開始標識,0表示需要,1表示不需要。
(4)第七個字節我們稱之爲參數2。它的編碼以及含義如下。
1)b8和b7比特位的編碼以及含義如下。
這裏寫圖片描述
2)b6和b5比特位的編碼以及含義如下。
這裏寫圖片描述
3)b4到b1比特位表示PCD最大接收幀的大小,這四個比特位代表的含義如下。
這裏寫圖片描述
(5)第八個字節我們稱之爲參數3。它的高四比特位爲RFU,預留未來適用,值爲0;低四比特位定義了PICC支持的協議類型。
(6)第九個字節我們稱之爲參數4。它的高四比特位爲RFU,值爲0;低四比特位爲CID,它的取值範圍爲0~14。PCD定義了每個激活的PICC必須要有各自獨特的CID,如果PICC不支持CID,那麼CID的值爲(0000)b。
(10)剩餘字節是高層信息,它可有可無,視具體情況而定。PICC不強制要求含有該部分信息。但是像身份證類型的卡,必須要有高層信息。

2.5 ATTRIB命令的響應

命令格式

這裏寫圖片描述

說明:
(1)第一字節分成兩部分:高四比特位爲Maximum Buffer Length Index(MBLI),它讓PCD知道PICC內部緩衝到接收幀的限制。如果MBLI的值爲0,意味着PICC沒有提供信息給內部的輸入緩衝;如果MBLI大於0,則MBL=(PICC最大幀大小)*2^(MBLI-1),PICC會在ATQB中返回PICC最大幀的大小。當PICC發送了MBL時,PCD應該確保幀的長度不會超過MBL。低四比特位爲PICC返回給PCD的CID,如果PICC不支持CID,則返回(0000)b。
(2)高層信息響應字節根據卡片本身情況而定,可能有也可能沒有。

2.6 HLTB

2.6.1 概要

該命令用於設置PICC處於停止態(HALT State),並且讓它不要響應REQB命令。發送該命令成功之後,其它命令都會被忽視,只有WUPB命令能夠響應。

2.6.2 命令格式

這裏寫圖片描述

說明:
(1)第一個字節值爲0x50,它是HLTB的命令前綴。
(2)第二到第五個字節是PICC的卡號Identifier,即PUPI。
(3)最後兩個字節是CRC_B,計算方法參照ISO14443-3文檔。

2.7 HLTB命令響應

命令格式

這裏寫圖片描述

三、PCD檢測PICC過程

流程圖

這裏寫圖片描述

注:
A、R是一個由PICC隨機生成的在1~N之間的數。
B、Option 1是不支持Slot-MARKER命令的PICC分支。Option 2是支持Slot-MARKER命令的PICC分支。

四、防碰撞過程

4.1 描述

防碰撞過程是PCD通過一些命令控制執行的,PCD開始使用REQB命令,和一個或者多個發送ATQB的PICC的通信。如果在PCD發送REQB,具有不止一個PICC發送ATQB響應REQB,那麼我們稱該現象爲“碰撞”。PCD在防碰撞過程執行的一系列命令就是爲了選出一個特定的PICC。PCD完成防碰撞過程後,被選中的PICC的通信就會被PCD所掌控

4.2 原理

防碰撞的過程的原理是基於時隙的,在防碰撞過程中,PICC會在最短的時間內傳輸應用數據。在PCD發送的REQB/WUPB命令中槽序號可能會變化,PICC在每一時隙等可能的響應槽序號,所有的的PICC都可以在防碰撞的過程中進行應答(發送ATQB)。PCD在防碰撞過程設置的命令取決於PCD的使用策略,它既可以使用概率法(重複單槽序號,使PICC的隨機數等於1時響應),也可以使用僞確定法(多槽序號,在碰撞過程中所有PICC可以響應,在某個特定槽序號確定PICC)。

4.3 規則

當PICC接收到REQB/WUPB命令後,處於READY-REQUESTED sub-state時,PICC的響應應該遵循下面規則(N是REQB/WUPB命令中的參數):
—-如果N=1,PICC應該發送ATQB並且進入READY-DECLARED sub-state。
—-如果N>1:

PICC可以採用概率法(PCD檢測PICC流程圖中的Option 1),並且進入空閒態(Idle State);
PICC採用發送Slot-MARKER命令的方法(PCD檢測PICC流程圖中的Option 2),一直到槽序號等於R,然後PICC發送ATQB並且進入READY-DECLARED sub-state。

五、實例

這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章