1. 程式人生 > 其它 >卡片操作流程(譯自ISO7816-3)

卡片操作流程(譯自ISO7816-3)

本章主要講解卡片每個觸點在不同場景下的時序圖

6 卡片操作流程

6.1 原則

在卡的觸點與介面裝置的觸點機械連線之前,電路應保持不活動狀態。 介面裝置與卡的互動通過以下操作順序進行。

  • 介面裝置應將一類操作條件應用於電路,即啟用、冷復位和可能的一個或多個熱復位。 如果卡支援該類,則應根據第 8 條回答復位。介面裝置以完整有效的復位應答和操作條件類結束。 介面裝置應能夠重複整個操作。
  • 為了交換資訊,卡和介面裝置應就傳輸協議和傳輸引數值達成一致。 第 10 條規定 T=0,以介面裝置為主的字元半雙工傳輸。 第 11 條規定 T=1,塊的半雙工傳輸。 第 12 條規定通過 T=0 和 T=1 傳輸命令-響應對。 當不期望來自卡的傳輸時(例如,在處理命令-響應對之後並且在啟動下一個之前),如果卡支援時鐘停止,則介面裝置可以停止時鐘訊號。
  • 介面裝置應執行去啟用。

去啟用應該在卡的觸點和介面裝置的觸點之間機械斷開之前完成。

6.2 啟用、重置和類選擇

6.2.1 啟用

為了啟動與機械連線卡的互動,介面裝置應根據一類操作條件啟用電路:A、B 或 C,見 5.1.3,按以下順序。

  • RST 應置於狀態 L,見 5.2.2。
  • VCC 應通電,見 5.2.1。
  • 介面裝置中的 I/O 應置於接收模式,見 5.2.5。 介面裝置應在啟用期間忽略 I/O 上的狀態。
  • 應為 CLK 提供時鐘訊號,見 5.2.3。

注 1:未定義為 VCC 供電、在接收模式下設定 I/O 和在 CLK 上提供時鐘訊號之間的延遲。

注 2:介面裝置可能會因短路而失活。

圖 1 總結了啟用(時間 Ta 之前)和冷重置(時間 Ta 之後)。

圖 1 - 啟用和冷重置

6.2.2 冷復位

啟用結束時(RST 處於狀態 L,VCC 供電,介面裝置中的 I/O 處於接收模式,CLK 提供合適且穩定的時鐘訊號),卡準備好冷復位。 在冷復位之前未定義卡的內部狀態。

根據圖 1,時鐘訊號在時間 Ta 施加到 CLK。 在時鐘訊號施加到 CLK(時間 Ta + ta)後,卡應在 200 個時鐘週期(延遲 ta)內將 I/O 設定為狀態 H。 冷復位是由於在時鐘訊號施加到 CLK 之後(在時間 Ta + tb)將 RST 保持在狀態 L 至少 400 個時鐘週期(延遲 tb)。 當 RST 處於狀態 L 時,介面裝置應忽略 I/O 上的狀態。

在時間 Tb,RST 被置於狀態 H。 I/O 上的應答應在 RST 上訊號的上升沿(時間 Tb + tc)之後的 400 到 40 000 個時鐘週期(延遲 tc)之間開始。 如果在 RST 處於狀態 H 的 40 000 個時鐘週期內沒有開始應答,則介面裝置將執行去啟用。

6.2.3 熱復位

由於熱復位的答案可能與先前復位的答案不同,介面裝置可以在任何時間熱復位卡,甚至在復位應答期間,但不能在接收到強制字元 TS 和 T0 之前(見 8.1 )。 熱復位不應在字元 T0 前沿後的 4 464 (= 12 × 372) 個時鐘週期內啟動。

警告 在復位應答期間啟動的熱復位可能會損壞符合先前版本 (ISO/IEC 7816-3:1997) 的卡。

根據圖 2,介面裝置通過將 RST 置於狀態 L 至少 400 個時鐘週期(延遲 te)來啟動熱復位(在時間 Tc),同時 VCC 保持供電並且 CLK 提供合適且穩定的時鐘訊號。 在狀態 L 應用於 RST(時間 Tc + td)後,卡應在 200 個時鐘週期(延遲 td)內將 I/O 設定為狀態 H。 當 RST 處於狀態 L 時,介面裝置應忽略 I/O 上的狀態。

在時間 Td,RST 被置於狀態 H。 I/O 上的應答應在 RST 上訊號的上升沿(時間 Td + tf)之後的 400 到 40 000 個時鐘週期(延遲 tf)之間開始。 如果在 RST 處於狀態 H 的 40 000 個時鐘週期內沒有開始應答,則介面裝置將執行去啟用。

圖 2 - 熱復位

6.2.4 類選擇

圖 3 說明了選擇操作條件類別的原則。 該圖並非詳盡無遺。

  • 如果復位應答攜帶指示正在應用的類的類指示符(參見 8.2 中 T=15 的第一個 TA),則可以繼續正常操作。 或者,介面裝置可以執行去啟用,並在至少 10 毫秒的延遲後,應用卡支援的另一個類。
  • 如果復位應答不攜帶類指示符,則介面裝置應保持當前類。 如果在完成復位應答後,卡不工作,則介面裝置應執行去啟用,並在至少 10 ms 的延遲後應用另一類。
  • 如果卡不響應復位,則介面裝置應執行去啟用和
    • 延遲至少 10 毫秒後,應用另一個類(如果有),或
    • 中止選擇過程。

在選擇過程中止之後,介面裝置可以發起另一個選擇過程。

圖 3 — 介面裝置的類選擇

一經選定,正常執行期間不得更改等級。 為了改變它,介面裝置應執行去啟用,並在至少 10 ms 的延遲後,應用另一個類。

6.3 資訊交流

6.3.1 傳輸引數和協議的選擇

完成復位應答後,卡將等待來自介面裝置的字元:它們的傳輸由傳輸引數控制(見 7.1); 它們的解釋受協議約束(見 9、10 和 11)。 圖4說明了傳輸引數和協議的選擇原則。

  • 如果 TA2(見 8.3)出現在復位應答(特定模式的卡)中,則介面裝置應使用特定的傳輸引數值啟動特定的傳輸協議。
  • 否則(卡處於可協商模式),對於傳輸引數,在復位應答期間使用的值(即傳輸引數的預設值,見 8.1)應繼續如下應用。
    • 如果卡接收到的第一個字元的值為“FF”,則介面裝置應啟動 PPS 交換(見 9); 傳輸引數的預設值將繼續應用,直到成功完成 PPS 交換(見 9.3),之後介面裝置應使用傳輸引數的協商值啟動協商傳輸協議。
    • 否則,介面裝置應啟動“第一個提供的傳輸協議”(見 8.2.3 中的 TD1)。 當卡僅提供一種傳輸協議且僅提供傳輸引數的預設值時,介面裝置應這樣做。 這種卡不需要支援 PPS 交換。
圖 4——傳輸引數和協議的選擇

注 1:PPSS('FF',見 9.2)的值對 CLA(T=0,見 10.3.2)和 NAD(T=1,見 11.3.2.1)無效。

注 2:在可協商模式下提供 T=0 的多協議卡中,只能“隱式”選擇 T=0。

注 3:面向可協商模式的卡且既不支援 PPS 交換也不支援“首先提供的傳輸協議”的介面裝置可以執行熱復位或去啟用。

注 4:向不知道特定模式存在的介面裝置傳送字元 TA2 的卡不能依賴熱復位來切換模式。

注 5:檢測到字元 TA2 的介面裝置在檢測到接收字元中不支援的值或 WT 溢位之前不應啟動熱復位(見 7.2)。

6.3.2 時鐘停止

對於支援時鐘停止的卡,當介面裝置期望卡沒有傳輸並且I/O在狀態H保持至少1860個時鐘週期(延遲tg)時,則根據圖5,介面裝置可以停止傳送 CLK 上的時鐘(在時間 Te),而 VCC 保持供電並且 RST 處於狀態 H。

圖 5 — 時鐘停止

當時鐘停止時(從時間 Te 到時間 Tf),根據 8.3 中定義的時鐘停止指示器 X,CLK 應保持在狀態 H 或狀態 L。

在時間 Tf,介面裝置重新啟動時鐘,並且 I/O 上的資訊交換可能會在至少 700 個時鐘週期(時間 Tf + th)後繼續進行。

6.4 停用

當資訊交換完成或中止時(例如,卡無響應,檢測到卡移除),介面裝置應按以下順序停用電路(見圖 6)。

  • RST 應置於狀態 L。
  • CLK 應置於狀態 L(除非時鐘已停止在狀態 L)。
  • I/O 應置於狀態 L。
  • VCC 應停用。
圖 6 — 停用