1. 程式人生 > 其它 >ISO14443-4(譯文)

ISO14443-4(譯文)

本章主要講解傳輸協議

識別卡—非接觸式積體電路卡—感應卡—第4部分:傳輸協議

介紹

ISO/IEC 14443 是一系列國際標準之一,描述了 ISO/IEC 7810 中定義的識別卡引數,以及此類卡在國際交換中的使用。

ISO/IEC 14443 本部分定義的協議能夠傳輸 ISO/OEC 7816-4 中定義的應用協議資料單元。因此,應用協議資料單元可以按照 ISO/IEC 7816-4 中的定義進行對映,並且應用選擇可以按照 ISO/IEC 7816-5 中的定義進行使用。

ISO/IEC 14443 旨在允許在存在符合 ISO/IEC 10536 和 ISO/IEC 15693 的其他非接觸式卡的情況下操作感應卡。
國際標準化組織 (ISO) 和國際電工委員會 (IEC) 提請注意這樣一個事實,即聲稱符合 ISO/IEC 14443 的這一部分可能涉及使用專利。

ISO 和 IEC 對該專利權的證據、有效性和範圍不持任何立場。

這些專利權的持有人已向 ISO 和 IEC 保證,他們願意在合理和非歧視性的條款和條件下與世界各地的申請人協商許可。在這方面,專利權持有人的宣告已在 ISO 和 IEC 註冊。

1 範圍

ISO/IEC 14443 的這一部分規定了一種以非接觸式環境的特殊需求為特徵的半雙工塊傳輸協議,並定義了協議的啟用和去啟用順序。

ISO/IEC 14443 的本部分旨在與 ISO/IEC 14443 的其他部分結合使用,適用於 A 類和 B 類感應卡。

2 規範性引用

下列規範性檔案所包含的條款,通過在本文中的引用,構成 ISO/IEC 14443 本部分的條款。凡註明日期的引用檔案,對這些出版物的後續修訂或修訂均不適用。然而,鼓勵基於 ISO/IEC 14443 的這一部分達成協議的各方調查應用下列規範性檔案的最新版本的可能性。對於未註明日期的引用檔案,所引用的規範性檔案的最新版本適用。 ISO 和 IEC 的成員維護當前有效的國際標準的登記冊。

ISO/IEC 7816-3,資訊科技 – 識別卡 – 帶觸點的積體電路卡 – 第 3 部分:電子訊號和傳輸協議。

ISO/IEC 7816-4,資訊科技 – 識別卡 – 帶觸點的積體電路卡 – 第 4 部分:用於交換的行業間命令。

ISO/IEC 7816-5,識別卡 – 帶觸點的積體電路卡 – 第 5 部分:應用識別符號的編號系統和註冊程式。

ISO/IEC 14443-2,識別卡 – 非接觸式積體電路卡 – 感應卡 – 第 2 部分:射頻功率和訊號介面。

ISO/IEC 14443-3,識別卡 – 非接觸式積體電路卡 – 感應卡 – 第 3 部分:初始化和防衝突。

3 術語和定義

就 ISO/IEC 14443 的這一部分而言,以下術語和定義適用。

3.1 位元持續時間

一個基本時間單位 (etu),按以下公式計算:

\[1 etu = 128 / (D * fc) \]

除數 D 的初始值為 1,給出初始 etu 如下:

\[1 etu = 128 / fc \]

其中 fc 是 ISO/IEC 14443-2 中定義的載波頻率

3.2 塊

特殊型別的幀,包含有效的協議資料格式
注意:有效的協議資料格式包括 I-blocks、R-blocks 或 S-blocks

3.3 無效塊

包含無效協議格式的幀型別
注意:超時,當沒有接收到幀時,不會被解釋為無效塊

3.4 幀

ISO/IEC 14443-3 中定義的位序列
注意:PICC Type A 使用為 Type A 定義的標準幀,而 PICC Type B 使用為 Type B 定義的幀

4 符號和縮寫詞

名詞
解釋
ACK 肯定的承認
ATS 回答選擇
ATQA 回答請求,Type A
ATQB 回答請求,Type B
CID 卡識別符號
CRC 迴圈冗餘檢查,如 ISO/IEC 14443-3 中為每個 PICC 型別定義的
D 除數
DR 除數接收(PCD 到 PICC)
DRI 除數接收整數(PCD 到 PICC)
DS 除數傳送(PICC 到 PCD)
DSI 除數傳送整數(PICC 到 PCD)
EDC 錯誤檢測程式碼
etu 基本時間單位
fc 載頻
FSC 感應卡的框架尺寸
FSCI 感應卡的幀尺寸整數
FSD 接近耦合裝置的框架尺寸
FSDI 接近耦合裝置的框架尺寸整數
FWI 幀等待時間 整數
FWT 幀等待時間
FWTTEMP 臨時幀等待時間
HLTA 暫停命令,Type A
I-block 資訊塊
INF 資訊欄位
MAX 定義最大值的索引
MIN 定義最小值的索引
NAD 節點地址
NAK 否定確認
OSI 開放系統互連
PCB 協議控制位元組
PCD 接近耦合裝置
PICC 感應卡
PPS 協議和引數選擇
PPSS 協議和引數選擇開始
PPS0 協議和引數選擇引數 0
PPS1 協議和引數選擇引數 1
R-block 接收就緒塊
R(ACK) 包含肯定確認的 R 塊
R(NAK) 包含否定確認的 R 塊
RATS 請求回答選擇
REQA REQuest命令,Type A
RFU 保留供 ISO/IEC 將來使用
S-block 監控塊
SAK 選擇確認
SFGI 啟動幀保護時間整數
SFGT 啟動幀保護時間
WUPA 喚醒命令,Type A
WTX 等候時間延長
WTXM 等待時間擴充套件乘數

5 PICC Type A的協議啟用

應應用以下啟用序列:

  • ISO/IEC 14443-3 中定義的 PICC 啟用序列(請求、防衝突迴圈和選擇)。

  • 在開始時,應檢查 SAK 位元組以瞭解 ATS 的可用性。 SAK 在 ISO/IEC 14443-3 中定義。

  • 如果沒有可用的 ATS,可以使用 ISO/IEC 14443-3 中定義的 HLTA 命令將 PICC 設定為 HALT 狀態。

  • 如果 ATS 可用,則 PCD 可以在收到 SAK 後將 RATS 作為下一個命令傳送。

  • PICC 應傳送其 ATS 作為對 RATS 的答覆。 如果在選擇後直接接收到 RATS,PICC 將只對 RATS 作出應答。

  • 如果PICC支援ATS中的任何可變引數,則PCD可以在收到ATS更改引數後使用PPS請求作為下一個命令。

  • PICC 應傳送 PPS 響應作為對 PPS 請求的應答。

如果 PICC 不支援 ATS 中的任何可變引數,則 PICC 不需要實現 PPS。

PICC A 型的 PCD 啟用順序如圖 1 所示。

圖 1 — PCD 啟用 PICC Type A

5.1 要求回答選擇

本節定義了 RATS 及其所有欄位(見圖 2)。

圖 2 - 請求回答選擇

引數位元組由兩部分組成(見圖 3):

  • 最重要的半位元組 b8 到 b5 稱為 FSDI,編碼為 FSD。 FSD 定義了 PCD 能夠接收的幀的最大尺寸。 FSD的編碼如表1所示。

  • b4 到 b1 的最低有效半位元組被命名為 CID,它在 0 到 14 的範圍內定義了被定址的 PICC 的邏輯編號。值 15 是 RFU。 CID 由 PCD 指定,並且對於同時處於 ACTIVE 狀態的所有 PICC 應該是唯一的。 CID 在 PICC 處於活動狀態時是固定的,PICC 應使用 CID 作為其邏輯識別符號,該識別符號包含在收到的第一個無差錯 RATS 中。

  • PCD 設定 FSDI = '9'-'F' 不符合此標準。 接收到的 FSDI = '9'-'F' 值應被 PICC 解釋為 FSDI = '8'(FSD = 256 位元組)。 PCD 設定 CID = 15 不符合此標準。 ICC 行為見 5.6.1.2 (c)

圖 3 — RATS 引數位元組的編碼
表 1 — FSDI 到 FSD 的轉換

5.2 回答選擇

本節定義了 ATS 及其所有可用欄位(見圖 4)。

如果 PICC 傳送的 ATS 中不存在定義的欄位之一,則應應用該欄位的預設值。

圖 4 — ATS 的結構

5.2.1 位元組結構

長度位元組 TL 後跟可變數量的可選後續位元組,順序如下:

  • 格式位元組 T0,

  • 介面位元組 TA(1)、TB(1)、TC(1) 和

  • 歷史位元組 T1 到 Tk。

5.2.2 長度位元組

長度位元組 TL 是強制性的,它規定了傳輸的 ATS 的長度,包括它自己。這兩個 CRC 位元組不包括在 TL 中。 ATS 的最大大小不得超過指定的 FSD。因此TL的最大值不應超過FSD-2。

5.2.3 格式位元組

格式位元組 T0 是可選的,只要長度大於 1 就會出現。當該格式位元組出現時,ATS 只能包含以下可選位元組。

T0 由三部分組成(見圖 5):

  • 最高有效位 b8 應設定為 0。值 1 是 RFU。

  • 位元 b7 到 b5 包含 Y(1),指示後續介面位元組 TC(1)、TB(1) 和 TA(1) 的存在。

  • b4 到 b1 的最低有效半位元組稱為 FSCI,編碼為 FSC。 FSC 定義了 PICC 接受的幀的最大尺寸。 FSCI 的預設值為 2,導致 FSC 為 32 位元組。 FSC的編碼等同於FSD的編碼(見表1)。

  • PICC 設定 FSCI = '9'-'F' 不符合此標準。接收到的 FSCI = '9'-'F' 值應被 PCD 解釋為 FSCI = '8'(FSC = 256 位元組)。未將 b8 設定為 0 的 PICC 不符合此標準。 PCD 應該忽略 b8 並且它對整個幀的任何其他欄位的解釋不應改變。

圖 5 — 格式位元組的編碼

5.2.4 介面位元組 TA(1)

介面位元組TA(1)由四部分組成(見圖6)

  • 最高有效位 b8 編碼處理每個方向不同除數的可能性。 當該位設定為 1 時,PICC 無法處理每個方向的不同除數。

  • 位 b7 到 b5 編碼 PICC 的位元率能力,用於從 PICC 到 PCD 的方向,稱為 DS。 預設值應為 (000)b。

  • 位 b4 應設定為 (0)b,另一個值為 RFU。

  • b3 到 b1 位編碼 PICC 的位元率能力,用於從 PCD 到 PICC 的方向,稱為 DR。 預設值應為 (000)b。

圖 6 — 介面位元組 TA(1) 的編碼

可以由PCD使用PPS來為每個方向選擇特定的除數D。

PICC 設定 b4 = 1 不符合此標準。接收到的 b4 = 1 的 TA(1) 值應被 PCD 解釋為 (b8 到 b1) = (00000000)b(兩個方向僅 ~106 kbit/s)。

5.2.5 介面位元組TB(1)

介面位元組 TB(1) 傳送資訊以定義幀等待時間和啟動幀保護時間。

介面位元組 TB(1) 由兩部分組成(見圖 7):

  • 最重要的半位元組 b8 到 b5 稱為 FWI 並編碼 FWT(見 7.2)。

  • b4 到 b1 的最低有效半位元組稱為 SFGI,並對用於定義 SFGT 的乘數值進行編碼。 SFGT 定義了 PICC 在傳送 ATS 之後準備好接收下一幀之前所需的特定保護時間。 SFGI 的編碼範圍為 0 到 14。15 的值是 RFU。 0 值表示不需要 SFGT,1 到 14 範圍內的值用於通過下面給出的公式計算 SFGT。 SFGI 的預設值為 0。

圖 7 — 介面位元組 TB(1) 的編碼

SFGT 由以下公式計算:

\[SFGT=(256*16/fc)*2^{SFGI} \]

SFGTMIN = ISO/IEC 14443-3 中定義的幀延遲時間的最小值

SFGTDEFAULT = ISO/IEC 14443-3 中定義的幀延遲時間的最小值

SFGTMAX = ~4949ms

PICC 設定 SFGI = 15 不符合此標準。在 ISO 指定 RFU 值 15 之前,接收 SFGI = 15 的 PCD 應將其解釋為 SFGI = 0。 PICC 設定 FWI = 15 不符合此標準。在 ISO 分配 RFU 值 15 之前,接收 FWI = 15 的 PCD 應將其解釋為 FWI = 4。

5.2.6 介面位元組 TC(1)

介面位元組 TC(1) 指定了協議的引數。

特定介面位元組TC(1)由兩部分組成(見圖8):

  • b8 至 b3 的最高有效位應為 (000000)b,所有其他值均為 RFU。

  • 位 b2 和 b1 定義 PICC 支援的序言欄位中的哪些可選欄位。允許PCD跳過PICC支援的欄位,但PICC不支援的欄位決不能由PCD傳送。預設值應為 (10)b,指示支援 CID 和不支援 NAD。

  • PICC 設定(b8 到 b3)<> (000000)b 不符合此標準。 PCD 應該忽略 (b8 到 b3) 並且它對 (b2,b1) 或整個幀的任何其他欄位的解釋不應改變。

圖 8 — 介面位元組 TC(1) 的編碼

5.2.7 歷史位元組

歷史位元組 T1 到 Tk 是可選的並指定一般資訊。 ATS 的最大長度給出了最大可能的歷史位元組數。 ISO/IEC 7816-4 規定了歷史位元組的內容。

5.3 協議及引數選擇請求

PPS 請求包含起始位元組,後跟兩個引數位元組(參見圖 9)。

圖 9 — 協議和引數選擇請求

5.3.1 起始位元組

PPSS 由兩部分組成(見圖 10):

  • 最高有效半位元組 b8 到 b5 應設定為 (1101)b 並標識 PPS。

  • b4 到 b1 的最低有效半位元組被命名為 CID,它定義了定址 PICC 的邏輯編號。

圖 10 PPSS 的編碼

5.3.2 引數 0

PPS0 指示可選位元組 PPS1 的存在(見圖 11)。

PCD 設定(b4 到 b1)<> (0001)b 和/或設定(b8 到 b6)<> (000)b 不符合此標準。 PICC 接收 (b4 to b1) <> (0001)b 和/或接收 (b8 to b6) <> (000)b 應適用 5.6.2.2 (b)。

圖 11 — PPS0 的編碼

5.3.3 引數 1

PPS1 由三部分組成(見圖 12):

  • b8 到 b5 的最高有效半位元組應為 (0000)b,所有其他值均為 RFU。

  • 位 b4 和 b3 稱為 DSI,並將選定的除數整數從 PICC 編碼為 PCD。

  • 位 b2 和 b1 稱為 DRI 並將選定的除數整數從 PCD 編碼到 PICC。

  • PCD 設定(b8 到 b5)<> (0000)b 不符合此標準。 PICC 接收 (b8 至 b5) <> (0000)b 應適用 5.6.2.2 (b)。

圖 12 — PPS1 的編碼

DS和DR的定義見5.2.4。

D 的編碼如表 2 所示。

表 2 — DRI、DSI 到 D 的轉換

5.4 協議及引數選擇響應

PPS 響應確認收到的 PPS 請求(見圖 13)並且它只包含起始位元組(見 5.3.1)。

新位元率應在 PICC 傳送 PPS 響應後立即在 PICC 中生效。 當 PPS 響應丟失或無效或 PICC 返回的 PPSS 與 PCD 傳送的 PPSS 不相同時,改變位元率的 PCD 不符合該標準。

圖 13 — 協議和引數選擇響應

5.5 啟用幀等待時間

啟用幀等待時間定義了 PICC 在從 PCD 接收到的幀結束後開始傳送其響應幀的最長時間,值為 65536/fc (~4833 µs)。

注 ISO/IEC 14443-3 中定義了任何方向上的幀之間的最短時間。

5.6 錯誤檢測與恢復

5.6.1 RATS 和 ATS 的處理

5.6.1.1 PCD 規則

當 PCD 傳送 RATS 並接收到有效的 ATS 時,PCD 將繼續執行。

在任何其他情況下,PCD 可以在它使用第 8 節中定義的去啟用序列之前重傳 RATS。如果這個去啟用序列失敗,它可以使用 ISO/IEC 14443-3 中定義的 HLTA 命令。

5.6.1.2 PICC 規則

當 PICC 已被最後一個命令選中並且

  1. 收到有效的 RATS,PICC
    • 應發回其 ATS 和
    • 應禁用 RATS(停止響應收到的 RATS)。
  2. 收到一個有效的區塊(HLTA):
    • 應處理命令並應進入 HALT 狀態
  3. 收到 CID = 15 的無效塊或 RATS:
    • 不應響應,並應進入 IDLE 狀態或 HALT 狀態,如 ISO/IEC 14443-3 的圖 6“PICC 型別 A 狀態圖”中所述。

5.6.2 PPS請求和PPS響應的處理

5.6.2.1 PCD 規則

當 PCD 已傳送 PPS 請求並收到有效的 PPS 響應時,PCD 應啟用所選引數並繼續操作。

在任何其他情況下,PCD 可以重新傳輸 PPS 請求並繼續操作。

5.6.2.2 PICC 規則

當 PICC 收到一個 RATS,傳送它的 ATS 和

  1. 收到有效的 PPS 請求,PICC
    • 應傳送 PPS 響應,
    • 應禁用 PPS 請求(停止響應收到的 PPS 請求)和
    • 應啟用接收到的引數。
  2. 收到無效塊,PICC
    • 應禁用 PPS 請求(停止響應收到的 PPS 請求)和
    • 應保持在接收模式。
  3. 收到一個有效的塊,除了 PPS 請求,PICC
    • 應禁用 PPS 請求(停止響應收到的 PPS 請求)和
    • 將繼續運營。

5.6.3 啟用期間 CID 的處理

當 PCD 傳送了一個包含 CID=n 不等於 0 的 RATS 並且

  1. 收到指示支援 CID 的 ATS,PCD
    • 將包含 CID=n 的塊傳送到這個 PICC 並且
    • 當此 PICC 處於 ACTIVE 狀態時,不得將 CID=n 用於進一步的 RATS。
  2. 收到 ATS 指示不支援 CID,PCD
    • 應向該 PICC 傳送不包含 CID 的塊,並且
    • 當該 PICC 處於 ACTIVE 狀態時,不得啟用任何其他 PICC。

當 PCD 傳送了一個包含 CID 等於 0 的 RATS 並且

  1. 收到指示支援 CID 的 ATS,PCD
    • 可以向這個 PICC 傳送包含 CID 等於 0 的塊,並且
    • 當該 PICC 處於 ACTIVE 狀態時,不得啟用任何其他 PICC。
  2. 收到指示不支援 CID 的 ATS,PCD 應
    • 將不包含 CID 的塊傳送到此 PICC 並
    • 當此 PICC 處於 ACTIVE 狀態時,不啟用任何其他 PICC。

6 PICC Type B的協議啟用

ISO/IEC 14443-3 中描述了 PICC B 類的啟用序列。

7 半雙工塊傳輸協議

半雙工塊傳輸協議滿足非接觸式卡環境的特殊需求,並使用 ISO/IEC 14443-3 中定義的幀格式。

幀格式的其他相關元素是:

  • 塊格式,
  • 最大幀等待時間,
  • 電源指示和
  • 協議操作。

該協議是根據 OSI 參考模型的分層原則設計的,特別關注跨邊界互動的最小化。 定義了四層:

  • 物理層根據 ISO/IEC 14443-3 交換位元組。
  • 資料鏈路層交換本節中定義的塊。
  • 會話層與資料鏈路層相結合以獲得最小的開銷。
  • 應用層處理命令,涉及在任一方向上交換至少一個區塊或區塊鏈。

注:應用選擇可以按照 ISO/IEC 7816-5 中的定義使用。 不建議將隱式應用選擇與多應用 PICC 一起使用。

7.1 塊格式

塊格式(參見圖 14)由序言欄位(強制性)、資訊欄位(可選)和結尾欄位(強制性)組成。

圖 14 — 塊格式

7.1.1 序言欄位

序言欄位是強制性的,最多包含三個位元組:

  • 協議控制位元組(強制),
  • 卡識別符號(可選),
  • 節點地址(可選)。
7.1.1.1 協議控制位元組欄位

PCB 用於傳達控制資料傳輸所需的資訊。

  • 該協議定義了三種基本型別的塊:
  • I-block 用於傳送資訊以供應用層使用。
  • R-block 用於傳達肯定或否定的確認。 R 塊從不包含 INF 欄位。 確認與最後接收的塊有關。
  • S-block 用於在 PCD 和 PICC 之間交換控制資訊。 定義了兩種不同型別的 S 塊:
    1. 等待時間擴充套件包含一個 1 位元組長的 INF 欄位和
    2. DESELECT 不包含 INF 欄位。

PCB 的編碼取決於其型別,並由下圖定義。 此處未定義的 PCB 編碼要麼用於 ISO/IEC 14443 的其他條款,要麼屬於 RFU。 I塊、R塊和S塊的編碼如圖15、圖16和圖17所示。

I-block 的 PICC 或 PCD 設定 b6 <> 0 不符合此標準。 R 塊的 PICC 或 PCD 設定 b2 <> 1 不符合此標準。 S 塊的 PICC 或 PCD 設定 (b2,b1) <> (10)b 不符合此標準。

圖 15 — I-block PCB 的編碼
圖 16 — R-block PCB 的編碼
圖 17 — S 塊 PCB 的編碼
7.1.1.2 卡識別符號欄位

CID 欄位用於標識特定的 PICC,由三部分組成(見圖 18):

  • 兩個最高有效位 b8 和 b7 用於指示 PICC 從 PCD 接收到的功率電平指示。 對於 PCD 到 PICC 通訊,這兩個位元應設定為 (00)b。 功率電平指示的定義見 7.4。

  • 位 b6 和 b5 用於傳送附加資訊,這些資訊未定義,應設定為 (00)b,所有其他值均為 RFU。

  • PICC 或 PCD 設定 (b6,b5) <> (00)b 不符合此標準。 (b6,b5) <> (00)b 應被視為協議錯誤。

  • 位 b4 到 b1 對 CID 進行編碼。

圖 18 — 卡識別符號的編碼

CID 的編碼在 5.1 中對 A 型和 ISO/IEC 14443-3 對 B 型給出。

PICC 對 CID 的處理描述如下:

PICC,不支援 CID

  • 應忽略任何包含 CID 的塊。

支援 CID 的 PICC

  • 應使用其 CID 響應包含其 CID 的塊,

  • 應忽略包含其他 CID 的塊和

  • 如果它的 CID 為 0,也應通過不使用 CID 來響應不包含 CID 的塊。

7.1.1.3 節點地址欄位

序言欄位中的 NAD 保留用於建立和定址不同的邏輯連線。當位 b8 和 b4 都設定為 0 時,NAD 的使用應符合 ISO/IEC 7816-3 的定義。所有其他值都是 RFU。

PICC 或 PCD 設定 b8 <> 0 和/或 b4 <> 0 不符合此標準。 b8 <> 0 和/或 b4 <> 0 應被視為協議錯誤。

以下定義適用於 NAD 的使用:

NAD 欄位只能用於 I 塊。

當PCD使用NAD時,PICC也應該使用NAD。

  1. 在連結期間,NAD 只能在鏈的第一個塊中傳輸。

  2. PCD 不得使用 NAD 定址不同的 PICC(CID 應用於定址不同的 PICC)。

  3. 當 PICC 不支援 NAD 時,它將忽略任何包含 NAD 的塊。

7.1.2 資訊欄位

INF 欄位是可選的。當存在時,INF 欄位傳送 I 塊中的應用程式資料或 S 塊中的非應用程式資料和狀態資訊。資訊欄位的長度是通過計算整個塊的位元組數減去序言和結尾欄位的長度來計算的。

7.1.3 尾聲欄位

結尾欄位包含傳輸塊的 EDC,即 ISO/IEC 14443-3 中定義的 CRC。

7.2 幀等待時間

FWT 定義了 PICC 應在 PCD 幀結束後開始其響應幀的時間(見圖 19)。

注:ISO/IEC 14443-3 中定義了任何方向上的幀之間的最短時間。

FWT 由以下公式計算:

\[FWT = (256 * 16 / fc) * 2^{FWI} \]

其中 FWI 的值範圍為 0 到 14,15 的值是 RFU。 對於 A 類,如果省略 TB(1),則 FWI 的預設值為 4,即 FWT 值為 ~ 4.8 ms。

\[對於 FWI = 0,FWT = FWT_{MIN} (~ 302 µs) \]\[對於 FWI = 14,FWT = FWT_{MAX} (~ 4949 ms) \]

PCD 應使用 FWT 值來檢測協議錯誤或無響應的 PICC。 如果在 FWT 內沒有收到來自 PICC 的響應的開始,PCD 獲得重傳的權利。

B 類的 FWI 欄位位於 ISO/IEC 14443-3 中定義的 ATQB 中。 A 類的 FWI 欄位位於 ATS 中(見 5.2.5)。

PICC 不應將 FWI 設定為 15 的 RFU 值。 在 ISO 分配 RFU 值 15 之前,接收 FWI = 15 的 PCD 應將其解釋為 FWI = 4。

注:當 ISO 定義 RFU 值 15 時,為了 PCD 與未來 PICC 的相容性,添加了該條款。

7.3 幀等待時間延長

當 PICC 需要比定義的 FWT 更長的時間來處理接收到的塊時,它應使用 S(WTX) 請求來延長等待時間。 S(WTX) 請求包含一個 1 位元組長的 INF 欄位,該欄位由兩部分組成(見圖 20):

  • 兩個最高有效位 b8 和 b7 對功率電平指示進行編碼(見 7.4)。
  • 未設定 (b8,b7) = (00)b 的 PCD 不符合此標準。 PICC 將 (b8,b7) <> (00)b 視為協議錯誤。
  • 最低有效位 b6 到 b1 編碼 WTXM。 WTXM 的編碼範圍為 1 到 59。值 0 和 60 到 63 是 RFU。
  • PICC 設定 WTXM = 0 或 WTXM = 60-63 不符合此標準。 當接收到 WTXM = 0 或 WTXM = 60-63 時,PCD 應將其視為協議錯誤。
圖 20 — S(WTX) 請求的 INF 欄位的編碼

PCD 應通過傳送 S(WTX) 響應來確認,該響應還包含一個 1 位元組長的 INF 欄位,該欄位由兩部分組成(參見圖 21)幷包含與請求中接收到的相同的 WTXM:

  • 最高有效位 b8 和 b7 應為 (00)b,所有其他值均為 RFU。
  • 最低有效位 b6 至 b1 對用於定義臨時 FWT 的已確認 WTXM 值進行編碼。
圖 21 — S(WTX) 響應的 INF 欄位的編碼

FWT 對應的臨時值由以下公式計算:

\[FWT_{TEMP} = FWT * WTXM \]

PICC 請求的 FWT TEMP 時間在 PCD 傳送 S(WTX) 響應後開始。

當公式得出的值高於 FWTMAX 時,應使用 FWTMAX

臨時 FWT 僅適用於 PCD 接收到下一個塊。

7.4 功率電平指示

功率電平指示如表 3 所示編碼,使用嵌入在 CID 欄位(當存在時)和 PICC 傳送的 S 塊中的兩個位元(見 7.1.1.2 和 7.3)。

表 3 功率電平指示編碼
(00)b PICC 不支援功率電平指示
(01)b 電量不足,無法發揮全部功能
(10)b 足夠的功率來實現全部功能
(11)b 足夠強大的功能來實現全部功能

注:PCD 對功率電平指示的解釋是可選的。

7.5 協議操作

在啟用序列之後,PICC 將等待一個塊,因為只有 PCD 有權傳送。傳送一個塊後,PCD 將切換到接收模式並等待一個塊,然後再切換回傳送模式。 PICC 可以僅響應接收到的塊傳輸塊(它對時間延遲不敏感)。響應後,PICC 將返回到接收模式。

在當前的命令/響應對完成之前或者如果超過幀等待時間而沒有響應,PCD 不應啟動新的命令/響應對。

7.5.1 多重啟用

多重啟用功能允許 PCD 同時將多個 PICC 保持在 ACTIVE 狀態。它允許在多個 PICC 之間直接切換,而無需額外的時間來停用 PICC 和啟用另一個 PICC。

有關多重啟用的示例,請參見附錄 A。

注意 PCD 需要為每個啟用的 PICC 處理一個單獨的塊號。

7.5.2 連結

連結特性允許 PCD 或 PICC 通過將資訊分成幾個塊來傳輸不適合 FSC 或 FSD 定義的單個塊的資訊。每個塊的長度應分別小於或等於 FSC 或 FSD。

I-block 的 PCB 中的連結位控制塊的連結。每個設定了連結位的 I-block 應由一個 R-block 確認。

連結功能如圖 22 所示,使用一個 16 位元組長的字串在三個塊中傳輸。

符號:

I(1)X 帶有連結位設定和塊號 x 的 I 塊
I(0)X 未設定連結位的 I 塊(鏈的最後一個塊)和塊號 x
R(ACK)X 指示肯定確認的 R 塊。

圖 22 - 連結

7.5.3 塊編號規則

7.5.3.1 PCD 規則

規則 A. 對於每個啟用的 PICC,PCD 塊號應初始化為 0。

規則 B. 當接收到一個 I 塊或一個 R(ACK) 塊的塊號等於當前塊號時,PCD 將在可選地傳送一個塊之前切換該 PICC 的當前塊號。

7.5.3.2 PICC 規則

規則 C. PICC 塊號應在啟用時初始化為 1。

規則 D. 當接收到一個 I-block 時,PICC 將在傳送一個塊之前切換它的塊號。

注意 PICC 可能會檢查接收到的塊號是否不符合 PCD 規則,以決定不切換其內部塊號也不傳送響應塊。

規則 E. 當接收到塊號不等於當前 PICC 塊號的 R(ACK)塊時,PICC 應在傳送塊之前切換其塊號。

注意 當接收到 R(NAK) 塊時,沒有塊號切換。

7.5.4 塊處理規則

7.5.4.1 一般規則

規則 1. 第一個塊應由 PCD 傳送。

規則 2. 當接收到指示連結的 I 塊時,該塊應由 R(ACK) 塊確認。

規則 3. S 塊只能成對使用。 S(...) 請求塊應始終跟隨一個 S(...) 響應塊(見 7.3 和 8)。

7.5.4.2 PCD 規則

規則 4. 當接收到無效塊或發生 FWT 超時時,應傳送 R(NAK) 塊(PICC 連結或 S(DESELECT) 的情況除外)。

規則 5. 在 PICC 連結的情況下,當接收到無效塊或發生 FWT 超時時,應傳送 R(ACK) 塊。

注:R(ACK) 塊只能在 PICC 連結的情況下由 PCD 傳送,因為未定義在其他情況下接收 R(ACK) 塊時的 PICC 響應。

規則 6. 當接收到一個 R(ACK) 塊時,如果它的塊號不等於 PCD 的當前塊號,則應重傳最後一個 I 塊。

注:PCD 連結不需要最後一次 I-block 重傳。 PCD可以通過在鏈外的任何時間(包括在傳送任何I塊之前)傳送R(NAK)塊並從PICC接收R(ACK)(如果存在)來確定PICC的存在。

規則 7. 當接收到一個 R(ACK) 塊時,如果它的塊號等於 PCD 的當前塊號,則繼續連結。

規則 8. 如果 S(DESELECT) 請求沒有被無錯誤的 S(DESELECT) 響應回答,則 S(DESELECT) 請求可能會被重新傳輸或 PICC 可能會被忽略。

7.5.4.3 PICC 規則

規則 9. PICC 被允許傳送 S(WTX) 塊而不是 I 塊或 R(ACK) 塊。

規則 10. 當接收到不指示連結的 I-block 時,該塊應由 I-block 確認。

注:如果接收到的 I-block 為空,則傳送的強制 I-block 可能為空或包含任何適用資訊(例如錯誤程式碼)。

規則 11. 當接收到 R(ACK)或 R(NAK)塊時,如果其塊號等於 PICC 的當前塊號,則重傳最後一個塊。

規則 12. 當接收到一個R(NAK)塊時,如果它的塊號不等於PICC當前的塊號,則傳送一個R(ACK)塊。

規則 13. 當接收到一個R(ACK)塊時,如果它的塊號不等於PICC的當前塊號,並且PICC處於連結狀態,則繼續連結。

7.5.5 PICC 存在檢查

以下方法可用於在任何時間檢查 PICC 的存在,包括在任何 I-block 交換之前。

PCD 不應檢查 PICC 的存在,直到當前的命令/響應對已經完成,或者如果超過幀等待時間而沒有響應。

7.5.5.1 方法一

PCD 可以傳送一個空的 I-block 並期望從 PICC 接收一個 I-block。

7.5.5.2 方法二

在第一次 I-block 交換之前,PCD 可能會發送一個 R(NAK) 塊(塊號為 0)並期望從 PICC 接收一個 R(ACK) 塊(規則 12)。

在第一次 I-block 交換之後,PCD 可以

  • 傳送一個 R(NAK) 塊(具有當前塊號)並期望從 PICC 接收一個 R(ACK) 塊(規則 12),在這種情況下,PCD 不應重新傳輸其最後一個 I 塊,如註釋中所述 第 6 條; 或者

  • 切換其塊號,然後傳送一個 R(NAK) 塊,並期望從 PICC 接收最後一個 I 塊(規則 11)。

7.5.6 錯誤檢測和恢復

當檢測到錯誤時,應嘗試以下恢復規則。 本節中的定義推翻了塊處理規則(見 7.5.3)。

7.5.6.1 PCD 檢測到的錯誤

PCD 應檢測以下錯誤:

  1. 傳輸錯誤(幀錯誤或 EDC 錯誤)或 FWT 超時

    PCD 應按所示順序通過以下技術嘗試錯誤恢復:

    • PCD規則的應用(見7.5.4.2),
    • 可選擇再次應用 PCD 規則(見 7.5.4.2),
    • 使用 S(DESELECT) 請求,
    • 可選地再次使用 S(DESELECT) 請求(如第 8.2 條所述),
    • 忽略 PICC。
  2. 協議錯誤(違反PCB編碼或違反協議規則)

    PCD 應按所示順序通過以下技術嘗試錯誤恢復:

    • 使用 S(DESELECT) 請求,
    • 忽略 PICC。
7.5.6.2 PICC 檢測到的錯誤

PICC 應檢測以下錯誤:

  1. 傳輸錯誤(幀錯誤或 EDC 錯誤),
  2. 協議錯誤(違反協議規則)。

PICC 不應嘗試錯誤恢復。 當發生傳輸錯誤或協議錯誤時,PICC 應始終返回到接收模式,並且應隨時接受 S(DESELECT) 請求。

注意 PICC 從不傳送 R(NAK) 塊。

8 PICC Type A和Type B的協議停用

在 PCD 和 PICC 之間的事務完成後,PICC 應設定為 HALT 狀態。

PICC 的停用是通過使用 DESELECT 命令完成的。

DESELECT 命令被編碼為協議的 S 塊,由 PCD 傳送的 S(DESELECT) 請求塊和 PICC 作為確認傳送的 S(DESELECT) 響應組成。

8.1 去活幀等待時間

去啟用幀等待時間定義了 PICC 在從 PCD 接收到的 S(DESELECT) 請求幀結束後開始傳送其 S(DESELECT) 響應幀的最長時間,值為 65536/fc (~4,8 多發性硬化症)。

注 ISO/IEC 14443-3 中定義了任何方向上的幀之間的最短時間。

8.2 錯誤檢測與恢復

當 PCD 傳送 S(DESELECT) 請求並收到 S(DESELECT) 響應時,PICC 已成功設定為 HALT 狀態並釋放分配給它的 CID。

當 PCD 未能收到 S(DESELECT) 響應時,PCD 可能會重試停用序列。

附件 A(資料性)多啟用示例

下表描述了三個 PICC 使用 Multi-Activation 的示例。

表 A1 — 多重啟用

附件 B(資料性)協議情景

本附件給出了一些無錯誤操作和錯誤處理的場景。 這些場景可用於構建合規性測試的測試用例。

B.1 符號

符號 描述
===> 正確接收任意塊
=≠=> 錯誤地收到任意塊
= => 未收到任何資訊(FWT 超時)
———— 分隔符:最小協議操作結束
I(1)x 帶有連結位設定和塊號 x 的 I 塊
I(0)X 未設定連結位的 I 塊(鏈的最後一個塊)和塊號 x
R(ACK)x 指示肯定確認的 R 塊
R(NAK)x 指示否定確認的 R 塊
S(... ) S塊

場景中的塊編號始終以目標 PICC 的 PCD 當前塊編號開始。 為便於表述,場景在 PICC 啟用序列之後開始,因此當前塊編號從 0 開始用於 PCD,從 1 開始用於 PICC。

B.2 無差錯操作

B.2.1 I-block 的交換

場景 1 I-block 的交換

B.2.2 請求延長等待時間

場景 2 輪候時間延長

B.2.3 取消選擇

場景 3 取消選擇

B.2.4 連結

場景 4 PCD 使用連結

場景5 PICC使用連結

B.2.5 PICC 存在性檢查

PICC 存在檢查,方法 1

PICC 存在檢查,方法 2-a(在第一次 I-block 交換之前)

PICC 存在檢查,方法 2-a

PICC 存在檢查,方法 2-b

B.3 錯誤處理

B.3.1 I-block 的交換

場景 6 協議開始

場景 7 I-block 的交換

場景 8 I-block 的交換

場景 9 I-block 的交換

B.3.2 請求延長等待時間

場景10 請求延長等待時間

場景11 請求延長等候時間

場景12 請求延長等待時間

場景13 請求延長等待時間

場景14 請求延長等待時間

B.3.3 取消選擇

場景 15 取消選擇

B.3.4 連結

場景 16 PCD 使用連結

場景 17 PCD 使用連結

場景 18 PCD 使用連結

場景19 PICC使用連結

場景 20 PICC 使用連結

附件 C(資料性)塊和幀編碼概述

本節概述了 PCD 傳送的不同塊和幀編碼。 塊或幀的型別由第一個位元組指示。

ISO/IEC 14443-3 中的定義:

命令名稱 命令程式碼
REQA (0100110)b (7 bit)
WUPA (1010010)b (7 bit)
REQB/WUPB (00000101)b
Slot-MARKER(Type B only) (xxxx0101)b
SELECT(Type A only) (1001xxxx)b
ATTRIB(Type B only) (00011101)b
HLTA (01010000)b
HLTB (01010000)b

ISO/IEC 14443 這部分的定義:

命令名稱 命令程式碼
RATS (11100000)b
PPS (1101xxxx)b
I-block (00xxxxxx)b (not (00xxx101)b)
R-block (10xxxxxx)b (not (1001xxxx)b)
S-block (11xxxxxx)b (not (1110xxxx)b and not (1101xxxx)b)

下表描述了定義的塊和幀編碼的第一個位元組。

表 C1 — 塊和幀編碼