DS8007是一款多協議、低成本、雙智能卡接口,支持所有ISO 7816、EMV?和GSM11-11要求。這個混合信號外設管理微控制器和兩個獨立智能卡之間接口的所有細節。本應用筆記介紹了智能卡的一些基礎知識以及如何與智能卡通信。提供的軟件使用DS8007將智能卡與DS5002安全微處理器連接。
概述
什么是智能卡?智能卡通常定義為包含嵌入式集成電路的任何袖珍卡。由于嵌入式集成電路,智能卡有時被稱為集成電路卡或ICC。這些卡用于各種不同的應用,取代了熟悉的支付(借記卡或信用卡)卡,后者使用磁條來存儲有關卡帳戶的信息。在支付應用中向智能卡的過渡主要是因為功能增加,特別是因為該技術可以提高安全性。但是,必須根據智能卡的較高成本來評估后一種功能。
嵌入在智能卡中的集成電路可以是簡單的非易失性存儲設備,也可以是能夠執行復雜操作的微控制器等復雜設備。支付卡中的簡單非易失性存儲設備可以取代用于存儲數據的磁條。在許多此類設備中,存儲器與附加邏輯相結合,以限制對部分或全部存儲器的訪問。然而,智能卡的真正功能在于嵌入式微控制器執行數據處理和/或加密功能的能力。這種處理能力允許增強安全功能。然而,隨著復雜性的增加,卡的成本也在增加。帶有嵌入式處理器的智能卡的成本在 7.00 美元到 15.00 美元之間,而帶有磁條的支付卡的成本可能低至 0.75 美元1 (美元)。智能卡的這種較高成本減緩了從更簡單技術的普遍轉換,但隨著對安全性的要求增加,對智能卡的需求也將增加。
DS8007提供微控制器與兩個獨立智能卡物理接口所需的所有電信號。該器件包含一個專用的內部定序器,用于控制自動卡激活和停用,以及一個用于數據通信的ISO UART。電荷泵和穩壓器允許該器件在 2.7V 至 6.0V 電源電壓下工作,并產生兩個獨立的智能卡電源電壓,其中任一電壓可以是 1.8V、3.0V 或 5V。與微控制器的通信由標準的并行8位總線提供,該總線在非多路復用配置中傳輸數據,或在多路復用配置中傳輸數據和地址。
智能卡詳細信息
雖然最熟悉的智能卡外形規格是信用卡大小的設備,但術語“智能卡”也適用于用戶識別模塊 (SIM),其大小約為郵票大小,常見于移動電話中。這種SIM卡外形還用于支付終端,為終端提供特定的支付系統數據和詳細的應用信息。信用卡大小設備的卡部分通常由聚氯乙烯(PVC)制成,并且通常浮雕有帳號和可能的有效期。無論外形尺寸如何,所有機電規格均基于 ISO 7816 系列標準。此外,由EuroCard,MasterCard和Visa(EMV)公司組成的聯盟已經制定了一套專門針對智能卡及其在支付系統中的應用的標準。EMV規范通?;贗SO 7816文檔。???
智能卡聯系人
智能卡上觸點的數量、位置和功能由上述標準明確定義。集成電路在標準智能卡上的位置和觸點尺寸如圖2所示。ISO 7816 定義了八個可能的接觸位置。在這八個地點中,有五個目前用于EMV應用。這些觸點的名稱和功能如表1所示。而觸點 C6 定義為 V聚丙烯根據 ISO 7816,根據 EMV 規范,此編程電壓不用于電流卡。不使用觸點 C4 和 C8,也不需要實際存在。下面將更詳細地討論EMV規格中指定的各個觸點。
聯系人姓名 | 觸點功能 |
C1 | 卡的電源電壓 (V抄送) |
C2 | 復位 (RST) |
C3 | 時鐘(CLK) |
C4 | DS8007 提供;未在電動勢車中使用 |
C5 | 接地(接地) |
C6 | V聚丙烯;未在電動勢車中使用 |
C7 | 輸入/輸出 (I/O) |
C8 | DS007 提供;未在電動勢車中使用 |
圖2.接觸尺寸和位置。
Vcc觸點 (C1)
此觸點為卡提供電源電壓。V的原始規格抄送僅包括 5V 直流 ±10%。但是,目前已分階段遷移到低壓卡。僅支持此原始規范的卡(稱為 A 類卡)將在 2009 年 <> 月底之前替換為 AB 類或 ABC 類卡。五世抄送這些卡類別的規格如下:
A類卡:4.5V≤VCC≤5.5V,≤50mA
AB類卡:2.70V≤VCC≤3.3V,≤50mA
ABC類卡:1.62V≤VCC≤1.98V,≤30mA
DS8007卡接口包含電荷泵和穩壓器,當器件采用2.6V至6.0V電源供電時,可為三種卡類別中的任何一種提供適當的電壓。
輸入/輸出觸點 (C7)
智能卡上的I/O觸點用作輸入(接收模式)以從終端接收數據或作為輸出(傳輸模式)以將數據傳輸到終端。
在接收模式下,當輸入符合以下規范時,卡將識別有效數據。
A類卡
輸入高壓:0.7×VCC≤VIH≤VCC
輸入低電壓:0.0≤VIL≤0.8V
上升時間/下降時間:≤1μs
AB類或ABC類卡
輸入高壓:0.7×VCC≤VIH≤VCC
輸入低電壓:0.0≤VIL≤0.2×VCC
上升時間/下降時間:≤1μs
在傳輸模式下,I/O觸點將提供如下信號電平:
A類卡
輸出高壓:0.7×VCC≤VOH≤VCC,-20μA<IOH<0,VCC=min
輸出低電壓:0.0≤VOL≤0.4V,0
上升時間/下降時間:≤1.0μs
AB類或ABC類卡
輸出高壓:0.7×VCC≤VOH≤VCC,-20μA<IOH<0,VCC=min
輸出低電壓:0.0≤VOL≤0.15×VCC,0
上升時間/下降時間:≤1.0μs
EMV 規范規定,除非 I/O 觸點正在傳輸,否則智能卡的 I/O 觸點驅動程序將設置為接收模式。
CLK 聯系人 (C3)
CLK觸點是由接口端子(即DS8007)提供的輸入。該信號用于控制交易過程中數據傳輸的時間。頻率范圍指定在 1.0MHz 和 5.0MHz 之間。此觸點具有以下電氣規格:
A類卡
輸入高壓:VCC-0.7≤VIH≤VCC
輸入低電壓:0.0≤VIL≤0.5V
上升時間/下降時間:≤時鐘周期的9%
AB類或ABC類卡
輸入高壓:0.7×VCC≤VIH≤VCC
輸入低電壓:0.0≤VIL≤0.2×VCC
上升時間/下降時間:≤時鐘周期的9%
RST 觸點 (C2)
RST觸點是由接口端子源的卡的輸入。該信號為低電平有效信號,將導致卡異步復位。該觸點具有與CLK觸點相同的電氣規格,但最大上升和下降時間為1.0μs。
從上述規范可以看出,與智能卡接口的終端必須提供各種電源電壓和信號電平。接口規格還要求端子能夠承受卡的任意兩個觸點之間的短路。由于這些原因,使用專用器件提供必要的電源電壓和信號電平顯然比組裝大量分立模擬IC更有利。DS8007就是這樣一款專用器件。除了提供這些功能所需的模擬電路外,它還包含FIFO和其他數字控制邏輯,以支持完整的卡會話所需的狀態排序和時序。
終端接口要求
所有卡片會話都包括以下步驟。
將卡插入終端;聯系人的連接和激活
重置卡;在終端和卡之間建立通信(ATR 序列 — 見下文)
交易的執行
停用聯系人;取出卡
插入后對卡進行初始重置后,卡會以一系列稱為重置答案或 ATR 的字符進行響應。這一系列字符建立初始通信詳細信息,包括所有后續通信的特定協議、位定時和數據傳輸詳細信息。雖然后續數據傳輸可以更改某些通信參數,但 ATR 會建立初始通信條件。以下各節將廣泛討論 ATR。
個人角色詳細信息
在智能卡和終端之間的接口期間,信息通過雙向 I/O 觸點串行傳輸。位持續時間定義為元素時間單位或 ETU。ETU 的時間段與 CLK 觸點上的端子提供的時鐘信號具有直接線性關系。ATR 期間字符的位時序稱為初始 ETU。此初始 ETU 由以下等式定義:
初始 ETU = 372/? 秒
其中 ? 是以赫茲為單位的時鐘信號的頻率。
在 ATR 之后,位持續時間稱為電流 ETU,它是參數 F 和 D 以及時鐘頻率的函數。(參數 F 和 D 在下面的 TA1 字符部分中進行了更詳細的討論。
Current ETU = F/(D?) seconds
其中?是以赫茲為單位的時鐘信號的頻率。
任何通信中的每個字符都由 10 位組成,因此持續時間為 1 個 ETU。字符的第一個位稱為起始位;它總是很低。在起始位之前,I/O 行保持其默認高電平狀態。字符的最后一位是奇偶校驗位;它由源確定為高或低,因此字符中的 3 總數是偶數。該位模式如圖<>所示。
圖3.10 位字符幀。
智能卡通信協議
在ISO 7816規范中,四個位用于選擇卡會話的通信協議。目前,可能的 2 種協議中有 16 種正在使用中。它們被稱為 T=0 和 T=1。兩種協議都是半雙工(一次一個方向),異步通信。T=0 協議是基于字符的格式,而 T=1 是基于塊的格式。所有符合EMV標準的智能卡必須支持T=0或T=1協議,而終端必須同時支持兩者。
將卡插入端子后,當所有觸點保持在“低”狀態時,電源電壓立即施加到卡的 V抄送聯系。在端子驗證電壓穩定且在指定限值內后,將端子的 I/O 觸點驅動器置于接收模式,并將時鐘信號施加到卡的 CLK 觸點。在時鐘信號啟動后的 200 個周期內,終端將其 I/O 線置于接收模式,卡將其 I/O 線置于傳輸模式。在 40,000 到 45,000 個時鐘周期的間隔之后,終端在卡的 RST 觸點上應用高電平有效信號。在 400 到 40,000 個時鐘周期后,該卡以一系列稱為 ATR 的字符進行響應。ATR 包括詳細說明后續通信將如何進行的信息,包括 T=0 或 T=1 協議選擇。如果未指定協議,則假定 T=0。(下面介紹了 ATR 的完整詳細信息以及其中包含的信息。
復位答案 (ATR)
最初由終端重置后,EMV 智能卡以一串字符響應,稱為重置答案或 ATR。這些字符由初始字符 TS 組成,后跟最多 32 個附加字符。這些字符一起向終端提供有關如何在會話的剩余時間內與卡通信的信息。以下各節將介紹每個字符。
表 0 給出了協議 T=2 的 EMV 規范定義的 ATR 內容,表 1 給出了協議 T=3 定義的 ATR 內容。
字符 | 價值 | 言論 |
TS | “3B”或“3F” | 表示直接 (3B) 或反向 (3F) 約定。 |
T0 | '6x | 存在 TB1 和 TC1,不存在 TA1 和 TD1;x 表示存在的歷史字節數。 |
TB1 | '00' | V聚丙烯不是必需的。 |
TC1 | “00”到“FF” | 指示所需的額外保護時間量。值“FF”具有特殊含義。(請參閱下面的 TC1 說明。 |
字符 | 價值 | 言論 | |
TS | “3B”或“3F” | 表示直接 (3B) 或反向 (3F) 約定。 | |
T0 | “前” | 存在 TB1、TC1 和 TD1,不存在 TA1;x 表示存在的歷史字節數。 | |
TB1 | '00' | V聚丙烯不是必需的。 | |
TC1 | “00”到“FF” | 指示所需的額外保護時間量。 | |
TD1 | '81' | TA2、TB2 和 TC2 缺失;存在 TD2;T=1 使用。 | |
TD2 | '31' | 存在 TA3 和 TB3;TC3 和 TD3 缺失;T=1 使用。 | |
TA3 | “10”到“FE” | 返回 IFSI,它指示卡的信息字段大小和 IFSC 的初始值 16 字節到 254 字節。 | |
TB3 | m.s. nibble* '0' to '4'; l.s. nibble '0' to '5' |
BWI = 0 到 4 CWI = 0 到 5 |
|
TCK | 檢查字符。從 T0 到 TCK (含)的所有 ATR 字節的獨占 OR 為空。 | ||
*注:m.s.半字節=最高有效半字節;l.s.半字節=最低有效半字節。 |
TS 初始字符
ATR 序列的第一個字符定義為初始字符 TS。憑借其位模式,此字符同步信息并定義所有后續字符的極性。TS的前四位由一個低起始位組成,后跟兩個高位,后跟一個附加低位。此固定位模式允許定時同步。以下三位要么全部為高電平表示直接約定,要么全部為低電平以表示反向約定。對于直接約定,I/O 線上的高狀態等效于邏輯 1,并且首先傳輸數據的最低有效位。對于反約定,I/O線上的低狀態等效于邏輯1,數據首先傳輸最高有效位。雖然規范允許反向約定,但EMV建議將直接約定用于所有當前的卡設計。最后三位是兩個低位,后跟一個高位。此字符幀或任何其他 10 位字符幀中的最后一位是奇偶校驗位;它將被設置或清除以使幀中的 1 數成為偶數。
T0 格式字符
ATR 序列的第二個字符定義為格式字符,稱為 T0。此字符包含兩個部分,這兩個部分確定剩余 ATR 序列中包含的字符。最重要的四個位稱為Y1,它們指示是否將傳輸TA1,TB1,TC1或TD1。對于 Y1 的每個邏輯 1,相應字符的存在確定如下:
Bit8(msb)=1表示將發送字符TD1
Bit7=1表示將發送字符TC1
Bit6=1表示將發送字符TB1
Bit5=1表示將發送字符TA1
T0 的最低有效四位稱為 K。這些位確定將包含在剩余 ATR 序列中的“歷史字節”的 0 到 15 個數字。歷史字節傳達有關卡的一般信息,例如卡制造商、卡中的芯片、芯片中的屏蔽 ROM 或卡的生存狀態。ISO 7816 和 EMV 規范都沒有準確定義要傳達的信息(如果有的話)。
如上表2所示,Y1位b7和b6為高電平,b8和b5位為低電平('6x')。這表示將傳輸 TC1 和 TB1,而字符 TA1 和 TD1 不會傳輸(如表中所示)。對于協議 T=0,字符 TB1 和 TC1 完成基本 ATR 序列。在表 3 中,Y8 的第 1 位也很高,因此對于協議 T=1,字符 TD1 也將傳輸。
TA1 角色
雖然字符TA1不在T=0或T=1協議的基本EMV ATR響應中傳輸,但在ISO 7816規范中定義了其他通信。使用時,TA1被分成上下半身。上半字節確定時鐘速率轉換因子F,用于修改時鐘信號的頻率。較低的半字節確定 D,即可用于調整 ATR 之后的位持續時間的比特率調整因子。這些參數的使用如上面的公式2所示。默認值 F = 372 和 D = 1 用于 ATR 期間的初始 ETU 值,除非在基本 ATR 之外進行更改,否則將在后續交換期間繼續使用。
TB1 字符
TB1 字符傳達有關智能卡編程電壓要求的信息。位 b1 至 b5(稱為 PI1)表示編程電壓,位 b6 和 b7(稱為 II)表示智能卡所需的最大編程電流。對于基本 ATR,TB1 = '00' 表示 V聚丙烯智能卡中的 PIN 未連接。
TC1 字符
TC1 字符傳達 N 的值,該值確定從終端發送到智能卡的連續字符之間要添加的額外保護時間。此值不適用于從卡發送到終端的字符,也不適用于以相反方向發送的兩個字符。N 是一個二進制數,表示要添加為額外保護時間的額外 ETU。當 TC1 = 'FF' 時,應使用字符之間的最小延遲。對于協議 T=0,這是 12 個 ETU,對于 T=11,這是 1。N 的值可以是 0 到 255 之間的任何值;如果未在 ATR 中返回 TC1,終端將繼續,就像收到值 00 一樣。由于此值會增加字符傳輸的時間,因此應將其最小化以加快事務。
TD1 字符
TD1 字符指示是否要傳輸任何其他接口字節,如果是,將使用哪種協議。字符 TD1 是通用字符 TDx 的特定實例。TDx最重要的半字節表示TA(x + 1),TB(x + 1),TC(x + 1)或TD(x + 1)將被傳輸。對于每個邏輯 1,后續傳輸中相應字符的存在確定如下:
Bit 8(msb)=1表示將發送字符TD(x+1)
Bit7=1表示將發送字符TC(x+1)
Bit6=1表示將發送字符TB(x+1)
Bit5=1表示將發送字符TA(x+1)
TD1 字符(TDx 廣義)的最低有效半字節包含值 0x0 或 0x1,分別指示協議 T=0 或 T=1。
如果使用協議 T=0,則字符 TD1 將不包括在 ATR 序列中;協議 T=0 將用于所有后續傳輸。如果使用協議 T=1,則將包含 TD1 并包含 0x81 的值。后一個值表示 TD2 將存在,協議 T=1 將用于所有后續傳輸。
TA2 角色
雖然字符TA2不在T=0或T=1協議的基本EMV ATR響應中傳輸,但它在ISO 7816規范中定義。TA2 的存在與否決定了智能卡是在 ATR 之后分別以特定模式還是可協商模式運行。沒有TA2表示將使用可轉讓操作模式。
TB2 字符
雖然字符TB2不會在T=0或T=1協議的基本EMV ATR響應中傳輸,但它在ISO 7816規范中定義。字符TB2表示PI2,PI1確定智能卡所需的編程電壓值。當存在字符 TB1 時,將取代字符 TB2 中的 PI<> 值。
TC2 字符
雖然字符TC2不在T=0或T=1協議的基本EMV ATR響應中傳輸,但它在ISO 7816規范中定義。如果存在,TC2 特定于協議類型 T=0。TC2 傳輸工作等待時間整數 (WI),該整數確定智能卡發送的任何字符的起始位的前緣與卡或終端發送的前一個字符的起始位的前沿之間的最大間隔。工作等待時間的值為:
工作等待時間 = 960 × D ×WI
其中 D 是比特率調整因子(請參閱上面 TA1 中的說明)。
當 ATR 序列中不包含 TC2 時,假定默認值為 WI = 0x0A。
TD2 字符
TD2 字符與 TD1 字符具有相同的功能。有關詳細信息,請參閱上面的 TD1 說明。在協議 T=3 的表 1 中,存在 TD2 并包含值 0x31。此值指示:TA3 和 TB3 將存在,TC3 和 TD3 將不存在,協議類型將為 T=1。
TA3 角色
TA3 字符傳達智能卡的信息字段大小整數 (IFSI)。IFSI 確定智能卡的信息字段大小,這是卡可以接收的塊的信息字段 (INF) 的最大長度。字段大小可以是 0x01 到 0xFE 之間的任何值。0x0和0xFF的值保留供將來使用。在基本 ATR 中使用 T=1 協議,TA3 的值在 0x10 到 0xFE 的范圍內,因此表示 IFSC 在 16 到 254 字節的范圍內。對于不包含 TA3 的 ATR,終端將假定默認值為 0x20。
TB3 字符
TB3 字符表示用于計算字符等待時間 (CWT) 和塊等待時間 (BWT) 的字符等待時間整數 (CWI) 和塊等待時間整數 (BWI) 的值。TB3 的最低顯著部分(b1 至 b4)表示 CWI 的值;最重要的半字節(B5 到 B8)表示 BWI 的值。在 T=1 協議的基本 ATR 中,TB3 字符在 0 到 5 (CWI = 0 到 5) 范圍內具有最低有效半字節,在 0 到 4 范圍內具有最不重要的半字節(BWI = 0 到 4)。
TC3 字符
雖然字符TC3不在T=0或T=1協議的基本EMV ATR響應中傳輸,但它在ISO 7816規范中定義。當存在 TC3 時,它指示要使用的塊錯誤檢測類型。當 TC3 不存在時,默認縱向冗余校驗 (LRC) 是使用的塊錯誤校驗。
特克角色
TCK 字符是校驗字符,其值允許驗證 ATR 中發送的數據的完整性。TCK 的值可以是任何值,只要從 T0 到 TCK 包含的所有字節的獨占 OR 為零即可。TCK 不用于 T=0,但在所有其他情況下將在 ATR 中返回。
ATR 摘要
在終端接收到ATR序列中的最后一個字符后,將必要的參數從卡傳輸到終端后,可以對DS8007進行任何必要的接口參數調整。然后可以開始進一步的溝通。
應用協議數據單元 (APDU)
如前所述,卡會話的下一階段是交易的執行。交易過程中執行的具體操作取決于卡和帳戶的類型(信用卡、借記卡等)以及用戶的請求。無論具體操作如何,事務都是通過向智能卡發出命令來完成的。智能卡執行請求的操作,并可能傳達結果。卡的操作可以像讀取內存中的位置一樣簡單,也可以像執行加密操作一樣復雜。無論操作如何,終端和卡之間的通信都是使用應用協議數據單元或APDU進行的。
要運行應用程序,智能卡和終端必須交換信息。這種信息共享是在命令-響應數據交換中完成的。終端創建命令并將其發送到智能卡,智能卡隨后解釋命令并發送響應。此命令-響應消息對稱為應用程序協議數據單元 (APDU)。終端 (C-APDU) 發送的特定命令消息將具有來自卡 (R-APDU) 的特定響應消息。這些消息稱為 APDU 命令-響應對。EMV 規范詳細介紹了這兩種消息類型的格式,它們的格式如下所述。
C-APDU 格式
終端啟動所有命令 APDU。它們由必需的 4 字節標頭組成,后跟可包含數據的可變長度的可選主體。C-APDU 中包含的數據字節數在命令字節 Lc 中指定;終端期望從卡的響應接收的字節數在命令字節 Le 中指定。C-APDU格式如表4所示,字符如表5所示。
CLA | INS | P1 | P2 | Lc | Data | Le |
←必需標頭→ | ←條件體→ |
Code | 描述 | 長度 |
CLA | 教學等級 | 1 |
INS | 指令代碼 | 1 |
P1 | 指令參數 1 | 1 |
P2 | 指令參數 2 | 1 |
Lc | 命令日期字段中存在的字節數 | 0 或 1 |
Data | 在命令中發送的數據字節字符串 (= Lc) | 變量 |
Le | 響應數據字段中預期的最大數據字節數 | 0 或 1 |
命令APDU的第一個字節被定義為指令類,稱為CLA。此字節可以采用除 8xFF 之外的任何 0 位值。但是,目前僅使用最高有效半字節 0 和 8 的值。值為 0 的最重要半字節定義為行業間命令,值 8 是 EMV 規范專有的。
命令APDU的第二個字節是指令代碼,稱為INS。僅當最低有效位為 0 且最高有效半字節既不是 6 也不是 9 時,此字節才有效。
必需標頭的 P1 和 P2 字節包含特定命令的參數,可以是任何值。如果未使用,則參數字節的值必須為 0x00。
R-APDU
從終端接收并解釋 APDU 命令后,智能卡將返回響應。如規范中所定義,此響應由可變長度的可選主體組成,后跟由兩個字節組成的所需拖車。這種格式如表6所示,APDU響應的內容如表7所示。
數據 | SW1 | SW2 |
←身體→ | ←預告片→ |
法典 | 描述 | 長度 |
數據 | APDU 響應中接收的數據字節字符串 | 變量 (= Lr) |
SW1 | 命令處理狀態 | 1 |
SW2 | 命令處理限定符 | 1 |
卡響應的預期長度作為 APDU 命令的 Le 代碼部分傳輸。響應的實際長度稱為 Lr。雖然卡不傳輸Lr的值,但終端可以根據應用需要計算它。
為了正常完成命令,智能卡將返回值為 1x0 的 SW90 和值為 2x0 的 SW00。任何其他響應都指示發生了錯誤或警告2。
示例代碼
本應用筆記隨附的軟件包含在可下載的文件an4029_sw.zip中。此文件包含生成可執行十六進制文件 (ds8007.hex) 所需的所有 C (main.c、ds51.c、LCD_Funct.c) 和匯編語言 (Startup.a8007) 源代碼。該代碼是使用 Keil PK51 專業開發人員工具包和 μVision 集成開發環境 (IDE) 編譯和鏈接的。μVision 項目文件 (ds8007.Uv2) 也包含在.zip文件中。這。HEX文件在DS8007評估(EV)板(可從Analog獲得)中的DS8007智能卡接口板上加載并運行。示例軟件實現完整的智能卡會話,包括上電、ATR、APDU 和斷電操作。當連接到啞終端時,電路板和軟件將產生232,38波特的RS-400串行輸出。此輸出如下面的圖 4 所示。本軟件的詳細說明超出了本應用筆記的范圍,但提供的源代碼可以作為使用DS5002安全微處理器和DS8007多協議雙智能卡接口芯片的完整智能卡接口的基礎。?
圖4.軟件輸出。
為了測試示例軟件,使用了高級卡系統(ACS)基于微控制器的智能卡。作為基于微控制器的設備,該卡執行其嵌入式操作系統的功能,稱為ACS智能卡操作系統版本1或ACOS1。此卡具有以下功能。
8kB EEPROM 存儲器,用于存儲應用數據
符合 ISO 7816-3,T=0 協議
DES 和 MAC 功能
基于隨機數的會話密鑰
密碼,可由持卡人更改
用于相互身份驗證的密鑰對
ACOS1 文檔指示此卡將使用 19 字節的數據響應重置。如圖 4 所示,為 T0 返回的值為 0xBE。高半字節 (0xB) 表示 TA1、TB1 和 TD1 將與 TS 一起包含在 ATR 中。低半字節包含0xE,表示 ATR 響應中將包含 14 個歷史字節(請參閱上面的字符 T0 說明)。因此,卡的 ATR 中總共包含 19 個字節。
對于此示例軟件,執行一個 ADPU,即“啟動會話”命令。此命令具有以下格式。
CLA | INS | P1 | P2 | P3 |
0x80 | 0x84 | 0x00 | 0x00 | 0x08 |
對“啟動會話”命令的響應具有以下格式。
數據 | SW1 | SW2 |
RNDc(卡中的 8 個字節) | 地位 | 地位 |
圖 4 所示的軟件輸出表明,從卡返回的隨機數為 0xCB、0xC4、0xBD、0xD5、0xA4、0x7E、0x36和0x3F。它還顯示返回的狀態為 0x90, 0x00,這表示命令成功完成。
結論
DS8007為混合信號外設,減輕了微控制器與智能卡接口的負擔。它提供與兩個獨立智能卡進行物理接口所需的所有電信號。專用的內部定序器控制自動卡激活和停用,以及用于數據通信的ISO UART。電荷泵和穩壓器允許DS8007工作在2.7V至6.0V電源電壓,同時產生兩個獨立的智能卡電源電壓,可以是1.8V、3.0V或5V。與微控制器的通信由標準的并行8位總線提供,該總線在非多路復用配置中傳輸數據或在多路復用配置中傳輸數據和地址。所提供的軟件使用DS5002安全微處理器和DS8007作為其智能卡接口實現完整的卡會話。智能卡在其 ATR 中返回的字符以 38400 波特率輸出在主板的串行端口上,并向卡發送“啟動會話”命令 APDU。生成的隨機數也會輸出在串行端口上。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7542瀏覽量
151316 -
穩壓器
+關注
關注
24文章
4223瀏覽量
93762 -
存儲器
+關注
關注
38文章
7484瀏覽量
163765
發布評論請先 登錄
相關推薦
評論