0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DS8007和智能卡接口基礎(chǔ)

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-03-03 14:24 ? 次閱讀

DS8007是一款多協(xié)議、低成本、雙智能接口,支持所有ISO 7816、EMV?和GSM11-11要求。這個(gè)混合信號(hào)外設(shè)管理微控制器和兩個(gè)獨(dú)立智能卡之間接口的所有細(xì)節(jié)。本應(yīng)用筆記介紹了智能卡的一些基礎(chǔ)知識(shí)以及如何與智能卡通信。提供的軟件使用DS8007將智能卡與DS5002安全微處理器連接。

概述

什么是智能卡?智能卡通常定義為包含嵌入式集成電路的任何袖珍卡。由于嵌入式集成電路,智能卡有時(shí)被稱為集成電路卡或ICC。圖 1 顯示了一個(gè)典型示例。這些卡用于各種不同的應(yīng)用,取代了熟悉的支付(借記卡或信用卡)卡,后者使用磁條來存儲(chǔ)有關(guān)卡帳戶的信息。在支付應(yīng)用中向智能卡的過渡主要是因?yàn)楣δ茉黾樱貏e是因?yàn)樵摷夹g(shù)可以提高安全性。但是,必須根據(jù)智能卡的較高成本來評(píng)估后一種功能。

嵌入在智能卡中的集成電路可以是簡單的非易失性存儲(chǔ)設(shè)備,也可以是能夠執(zhí)行復(fù)雜操作的微控制器等復(fù)雜設(shè)備。支付卡中的簡單非易失性存儲(chǔ)設(shè)備可以取代用于存儲(chǔ)數(shù)據(jù)的磁條。在許多此類設(shè)備中,存儲(chǔ)器與附加邏輯相結(jié)合,以限制對(duì)部分或全部存儲(chǔ)器的訪問。然而,智能卡的真正功能在于嵌入式微控制器執(zhí)行數(shù)據(jù)處理和/或加密功能的能力。這種處理能力允許增強(qiáng)安全功能。然而,隨著復(fù)雜性的增加,卡的成本也在增加。帶有嵌入式處理器的智能卡的成本在 7.00 美元到 15.00 美元之間,而帶有磁條的支付卡的成本可能低至 0.75 美元1 (美元)。智能卡的這種較高成本減緩了從更簡單技術(shù)的普遍轉(zhuǎn)換,但隨著對(duì)安全性的要求增加,對(duì)智能卡的需求也將增加。

DS8007提供微控制器與兩個(gè)獨(dú)立智能卡物理接口所需的所有電信號(hào)。該器件包含一個(gè)專用的內(nèi)部定序器,用于控制自動(dòng)卡激活和停用,以及一個(gè)用于數(shù)據(jù)通信的ISO UART電荷泵和穩(wěn)壓器允許該器件在 2.7V 至 6.0V 電源電壓下工作,并產(chǎn)生兩個(gè)獨(dú)立的智能卡電源電壓,其中任一電壓可以是 1.8V、3.0V 或 5V。與微控制器的通信由標(biāo)準(zhǔn)的并行8位總線提供,該總線在非多路復(fù)用配置中傳輸數(shù)據(jù),或在多路復(fù)用配置中傳輸數(shù)據(jù)和地址。

智能卡詳細(xì)信息

雖然最熟悉的智能卡外形規(guī)格是信用卡大小的設(shè)備,但術(shù)語“智能卡”也適用于用戶識(shí)別模塊 (SIM),其大小約為郵票大小,常見于移動(dòng)電話中。這種SIM卡外形還用于支付終端,為終端提供特定的支付系統(tǒng)數(shù)據(jù)和詳細(xì)的應(yīng)用信息。信用卡大小設(shè)備的卡部分通常由聚氯乙烯(PVC)制成,并且通常浮雕有帳號(hào)和可能的有效期。無論外形尺寸如何,所有機(jī)電規(guī)格均基于 ISO 7816 系列標(biāo)準(zhǔn)。此外,由EuroCard,MasterCard和Visa(EMV)公司組成的聯(lián)盟已經(jīng)制定了一套專門針對(duì)智能卡及其在支付系統(tǒng)中的應(yīng)用的標(biāo)準(zhǔn)。EMV規(guī)范通?;贗SO 7816文檔。???

智能卡聯(lián)系人

智能卡上觸點(diǎn)的數(shù)量、位置和功能由上述標(biāo)準(zhǔn)明確定義。集成電路在標(biāo)準(zhǔn)智能卡上的位置和觸點(diǎn)尺寸如圖2所示。ISO 7816 定義了八個(gè)可能的接觸位置。在這八個(gè)地點(diǎn)中,有五個(gè)目前用于EMV應(yīng)用。這些觸點(diǎn)的名稱和功能如表1所示。而觸點(diǎn) C6 定義為 V聚丙烯根據(jù) ISO 7816,根據(jù) EMV 規(guī)范,此編程電壓不用于電流卡。不使用觸點(diǎn) C4 和 C8,也不需要實(shí)際存在。下面將更詳細(xì)地討論EMV規(guī)格中指定的各個(gè)觸點(diǎn)。

Contact Name Contact Function
C1 Supply voltage to card (VCC)
C2 Reset (RST)
C3 Clock (CLK)
C4 Provided on the DS8007; not used in EMV
C5 Ground (GND)
C6 VPP; not used in EMV
C7 Input/output (I/O)
C8 Provided on the DS007; not used in EMV

poYBAGQBkoCAQwyAAAAe1dZqAPg987.gif

圖2.接觸尺寸和位置。

Vcc觸點(diǎn) (C1)

此觸點(diǎn)為卡提供電源電壓。V的原始規(guī)格抄送僅包括 5V 直流 ±10%。但是,目前已分階段遷移到低壓卡。僅支持此原始規(guī)范的卡(稱為 A 類卡)將在 2009 年 《》 月底之前替換為 AB 類或 ABC 類卡。五世抄送這些卡類別的規(guī)格如下:

A 類卡:4.5V ≤ VCC ≤ 5.5V at ≤ 50mA

AB類卡:2.70V ≤ VCC ≤ 3.3V at ≤ 50mA

ABC類卡:1.62V ≤ VCC ≤ 1.98V at ≤ 30mA

DS8007卡接口包含電荷泵和穩(wěn)壓器,當(dāng)器件采用2.6V至6.0V電源供電時(shí),可為三種卡類別中的任何一種提供適當(dāng)?shù)碾妷骸?/p>

輸入/輸出觸點(diǎn) (C7)

智能卡上的I/O觸點(diǎn)用作輸入(接收模式)以從終端接收數(shù)據(jù)或作為輸出(傳輸模式)以將數(shù)據(jù)傳輸?shù)浇K端。

在接收模式下,當(dāng)輸入符合以下規(guī)范時(shí),卡將識(shí)別有效數(shù)據(jù)。

A類卡

輸入高壓:0.7 × VCC ≤ VIH ≤ VCC

輸入低電壓:0.0 ≤ VIL ≤ 0.8V

上升時(shí)間/下降時(shí)間:≤ 1μs

AB 類或 ABC 卡

輸入高壓:0.7 × VCC ≤ VIH ≤ VCC

輸入低電壓:0.0 ≤ VIL ≤ 0.2 × VCC

上升時(shí)間/下降時(shí)間:≤ 1μs

在傳輸模式下,I/O 觸點(diǎn)將提供如下信號(hào)電平:

A類卡

輸出高壓:0.7 × VCC ≤ VOH ≤ VCC, -20μA 《 IOH 《 0, VCC = min

輸出低電壓:0.0 ≤ VOL ≤ 0.4V, 0 《 IOL 《 1mA, VCC = min

上升時(shí)間/下降時(shí)間:≤ 1.0μs

AB 類或 ABC 卡

輸出高壓:0.7 × VCC ≤ VOH ≤ VCC, -20μA 《 IOH 《 0, VCC = min

輸出低電壓:0.0 ≤ VOL ≤ 0.15 × VCC, 0 《 IOL 《 1mA, VCC = min

上升時(shí)間/下降時(shí)間:≤ 1.0μs

EMV 規(guī)范規(guī)定,除非 I/O 觸點(diǎn)正在傳輸,否則智能卡的 I/O 觸點(diǎn)驅(qū)動(dòng)程序?qū)⒃O(shè)置為接收模式。

CLK 聯(lián)系人 (C3)

CLK觸點(diǎn)是由接口端子(即DS8007)提供的輸入。該信號(hào)用于控制交易過程中數(shù)據(jù)傳輸?shù)臅r(shí)間。頻率范圍指定在 1.0MHz 和 5.0MHz 之間。此觸點(diǎn)具有以下電氣規(guī)格:

A類卡

輸入高壓:VCC - 0.7 ≤ VIH ≤ VCC

輸入低電壓:0.0 ≤ VIL ≤ 0.5V

上升時(shí)間/下降時(shí)間:時(shí)鐘周期的≤9%

AB 類或 ABC 卡

輸入高壓:0.7 × VCC ≤ VIH ≤ VCC

輸入低電壓:0.0 ≤ VIL ≤ 0.2 × VCC

上升時(shí)間/下降時(shí)間:時(shí)鐘周期的≤9%

RST 觸點(diǎn) (C2)

RST觸點(diǎn)是由接口端子源的卡的輸入。該信號(hào)為低電平有效信號(hào),將導(dǎo)致卡異步復(fù)位。該觸點(diǎn)具有與CLK觸點(diǎn)相同的電氣規(guī)格,但最大上升和下降時(shí)間為1.0μs。

從上述規(guī)范可以看出,與智能卡接口的終端必須提供各種電源電壓和信號(hào)電平。接口規(guī)格還要求端子能夠承受卡的任意兩個(gè)觸點(diǎn)之間的短路。由于這些原因,使用專用器件提供必要的電源電壓和信號(hào)電平顯然比組裝大量分立模擬IC更有利。DS8007就是這樣一款專用器件。除了提供這些功能所需的模擬電路外,它還包含F(xiàn)IFO和其他數(shù)字控制邏輯,以支持完整的卡會(huì)話所需的狀態(tài)排序和時(shí)序。

終端接口要求

所有卡片會(huì)話都包括以下步驟。

將卡插入終端;聯(lián)系人的連接和激活

重置卡;在終端和卡之間建立通信(ATR 序列 — 見下文)

交易的執(zhí)行

停用聯(lián)系人;取出卡

插入后對(duì)卡進(jìn)行初始重置后,卡會(huì)以一系列稱為重置答案或 ATR 的字符進(jìn)行響應(yīng)。這一系列字符建立初始通信詳細(xì)信息,包括所有后續(xù)通信的特定協(xié)議、位定時(shí)和數(shù)據(jù)傳輸詳細(xì)信息。雖然后續(xù)數(shù)據(jù)傳輸可以更改某些通信參數(shù),但 ATR 會(huì)建立初始通信條件。以下各節(jié)將廣泛討論 ATR。

個(gè)人角色詳細(xì)信息

在智能卡和終端之間的接口期間,信息通過雙向 I/O 觸點(diǎn)串行傳輸。位持續(xù)時(shí)間定義為元素時(shí)間單位或 ETU。ETU 的時(shí)間段與 CLK 觸點(diǎn)上的端子提供的時(shí)鐘信號(hào)具有直接線性關(guān)系。ATR 期間字符的位時(shí)序稱為初始 ETU。此初始 ETU 由以下等式定義:

初始 ETU = 372/? 秒

其中 ? 是以赫茲為單位的時(shí)鐘信號(hào)的頻率。

在 ATR 之后,位持續(xù)時(shí)間稱為電流 ETU,它是參數(shù) F 和 D 以及時(shí)鐘頻率的函數(shù)。(參數(shù) F 和 D 在下面的 TA1 字符部分中進(jìn)行了更詳細(xì)的討論。

當(dāng)前 ETU = F/(D?) 秒

其中 ? 是以赫茲為單位的時(shí)鐘信號(hào)的頻率。

任何通信中的每個(gè)字符都由 10 位組成,因此持續(xù)時(shí)間為 1 個(gè) ETU。字符的第一個(gè)位稱為起始位;它總是很低。在起始位之前,I/O 行保持其默認(rèn)高電平狀態(tài)。字符的最后一位是奇偶校驗(yàn)位;它由源確定為高或低,因此字符中的 3 總數(shù)是偶數(shù)。該位模式如圖<>所示。

poYBAGQBkoGACrXVAAAMPz3Nzx4718.gif

圖3.10 位字符幀。

智能卡通信協(xié)議

在ISO 7816規(guī)范中,四個(gè)位用于選擇卡會(huì)話的通信協(xié)議。目前,可能的 2 種協(xié)議中有 16 種正在使用中。它們被稱為 T=0 和 T=1。兩種協(xié)議都是半雙工(一次一個(gè)方向),異步通信。T=0 協(xié)議是基于字符的格式,而 T=1 是基于塊的格式。所有符合EMV標(biāo)準(zhǔn)的智能卡必須支持T=0或T=1協(xié)議,而終端必須同時(shí)支持兩者。

將卡插入端子后,當(dāng)所有觸點(diǎn)保持在“低”狀態(tài)時(shí),電源電壓立即施加到卡的 V抄送聯(lián)系。在端子驗(yàn)證電壓穩(wěn)定且在指定限值內(nèi)后,將端子的 I/O 觸點(diǎn)驅(qū)動(dòng)器置于接收模式,并將時(shí)鐘信號(hào)施加到卡的 CLK 觸點(diǎn)。在時(shí)鐘信號(hào)啟動(dòng)后的 200 個(gè)周期內(nèi),終端將其 I/O 線置于接收模式,卡將其 I/O 線置于傳輸模式。在 40,000 到 45,000 個(gè)時(shí)鐘周期的間隔之后,終端在卡的 RST 觸點(diǎn)上應(yīng)用高電平有效信號(hào)。在 400 到 40,000 個(gè)時(shí)鐘周期后,該卡以一系列稱為 ATR 的字符進(jìn)行響應(yīng)。ATR 包括詳細(xì)說明后續(xù)通信將如何進(jìn)行的信息,包括 T=0 或 T=1 協(xié)議選擇。如果未指定協(xié)議,則假定 T=0。(下面介紹了 ATR 的完整詳細(xì)信息以及其中包含的信息。

復(fù)位答案 (ATR)

最初由終端重置后,EMV 智能卡以一串字符響應(yīng),稱為重置答案或 ATR。這些字符由初始字符 TS 組成,后跟最多 32 個(gè)附加字符。這些字符一起向終端提供有關(guān)如何在會(huì)話的剩余時(shí)間內(nèi)與卡通信的信息。以下各節(jié)將介紹每個(gè)字符。

表 0 給出了協(xié)議 T=2 的 EMV 規(guī)范定義的 ATR 內(nèi)容,表 1 給出了協(xié)議 T=3 定義的 ATR 內(nèi)容。

字符 價(jià)值 言論
TS “3B”或“3F” 表示直接 (3B) 或反向 (3F) 約定。
T0 '6x 存在 TB1 和 TC1,不存在 TA1 和 TD1;x 表示存在的歷史字節(jié)數(shù)。
TB1 '00' VPP is not required.
UCP “00”到“FF” 指示所需的額外保護(hù)時(shí)間量。值“FF”具有特殊含義。(請(qǐng)參閱下面的 TC1 說明。
字符 價(jià)值 言論
TS “3B”或“3F” 表示直接 (3B) 或反向 (3F) 約定。
T0 'Ex' 存在 TB1、TC1 和 TD1,不存在 TA1;x 表示存在的歷史字節(jié)數(shù)。
TB1 '00' V聚丙烯不是必需的。
UCP “00”到“FF” 指示所需的額外保護(hù)時(shí)間量。
UDP '81' TA2、TB2 和 TC2 缺失;存在 TD2;T=1 使用。
UDP '31' 存在 TA3 和 TB3;TC3 和 TD3 缺失;T=1 使用。
UAR “10”到“FE” 返回 IFSI,它指示卡的信息字段大小和 IFSC 的初始值 16 字節(jié)到 254 字節(jié)。
TB3 m.s. nibble* '0' to '4'; l.s. nibble '0' to '5' BWI = 0 到 4
CWI = 0 到 5
TCK 檢查字符。從 T0 到 TCK (含)的所有 ATR 字節(jié)的獨(dú)占 OR 為空。
*Note: m.s. nibble = most significant nibble; l.s. nibble = least significant nibble.

TS 初始字符

ATR 序列的第一個(gè)字符定義為初始字符 TS。憑借其位模式,此字符同步信息并定義所有后續(xù)字符的極性。TS的前四位由一個(gè)低起始位組成,后跟兩個(gè)高位,后跟一個(gè)附加低位。此固定位模式允許定時(shí)同步。以下三位要么全部為高電平表示直接約定,要么全部為低電平以表示反向約定。對(duì)于直接約定,I/O 線上的高狀態(tài)等效于邏輯 1,并且首先傳輸數(shù)據(jù)的最低有效位。對(duì)于反約定,I/O線上的低狀態(tài)等效于邏輯1,數(shù)據(jù)首先傳輸最高有效位。雖然規(guī)范允許反向約定,但EMV建議將直接約定用于所有當(dāng)前的卡設(shè)計(jì)。最后三位是兩個(gè)低位,后跟一個(gè)高位。此字符幀或任何其他 10 位字符幀中的最后一位是奇偶校驗(yàn)位;它將被設(shè)置或清除以使幀中的 1 數(shù)成為偶數(shù)。

T0 格式字符

ATR 序列的第二個(gè)字符定義為格式字符,稱為 T0。此字符包含兩個(gè)部分,這兩個(gè)部分確定剩余 ATR 序列中包含的字符。最重要的四個(gè)位稱為Y1,它們指示是否將傳輸TA1,TB1,TC1或TD1。對(duì)于 Y1 的每個(gè)邏輯 1,相應(yīng)字符的存在確定如下:

位 8 (msb) = 1 表示將傳輸字符 TD1 位 7 = 1 表示將傳輸字符 TC1 位 6 = 1 表示將傳輸字符 TB1 位 5 = 1 表示將傳輸


字符 TA1

T0 的最低有效四位稱為 K。這些位確定將包含在剩余 ATR 序列中的“歷史字節(jié)”的 0 到 15 個(gè)數(shù)字。歷史字節(jié)傳達(dá)有關(guān)卡的一般信息,例如卡制造商、卡中的芯片、芯片中的屏蔽 ROM 或卡的生存狀態(tài)。ISO 7816 和 EMV 規(guī)范都沒有準(zhǔn)確定義要傳達(dá)的信息(如果有的話)。

如上表2所示,Y1位b7和b6為高電平,b8和b5位為低電平('6x')。這表示將傳輸 TC1 和 TB1,而字符 TA1 和 TD1 不會(huì)傳輸(如表中所示)。對(duì)于協(xié)議 T=0,字符 TB1 和 TC1 完成基本 ATR 序列。在表 3 中,Y8 的第 1 位也很高,因此對(duì)于協(xié)議 T=1,字符 TD1 也將傳輸。

TA1 字符

雖然字符TA1不在T=0或T=1協(xié)議的基本EMV ATR響應(yīng)中傳輸,但在ISO 7816規(guī)范中定義了其他通信。使用時(shí),TA1被分成上下半身。上半字節(jié)確定時(shí)鐘速率轉(zhuǎn)換因子F,用于修改時(shí)鐘信號(hào)的頻率。較低的半字節(jié)確定 D,即可用于調(diào)整 ATR 之后的位持續(xù)時(shí)間的比特率調(diào)整因子。這些參數(shù)的使用如上面的公式2所示。默認(rèn)值 F = 372 和 D = 1 用于 ATR 期間的初始 ETU 值,除非在基本 ATR 之外進(jìn)行更改,否則將在后續(xù)交換期間繼續(xù)使用。

TB1 字符

TB1 字符傳達(dá)有關(guān)智能卡編程電壓要求的信息。位 b1 至 b5(稱為 PI1)表示編程電壓,位 b6 和 b7(稱為 II)表示智能卡所需的最大編程電流。對(duì)于基本 ATR,TB1 = '00' 表示 V聚丙烯智能卡中的 PIN 未連接。

TC1 字符

TC1 字符傳達(dá) N 的值,該值確定從終端發(fā)送到智能卡的連續(xù)字符之間要添加的額外保護(hù)時(shí)間。此值不適用于從卡發(fā)送到終端的字符,也不適用于以相反方向發(fā)送的兩個(gè)字符。N 是一個(gè)二進(jìn)制數(shù),表示要添加為額外保護(hù)時(shí)間的額外 ETU。當(dāng) TC1 = 'FF' 時(shí),應(yīng)使用字符之間的最小延遲。對(duì)于協(xié)議 T=0,這是 12 個(gè) ETU,對(duì)于 T=11,這是 1。N 的值可以是 0 到 255 之間的任何值;如果未在 ATR 中返回 TC1,終端將繼續(xù),就像收到值 00 一樣。由于此值會(huì)增加字符傳輸?shù)臅r(shí)間,因此應(yīng)將其最小化以加快事務(wù)。

TD1 字符

TD1 字符指示是否要傳輸任何其他接口字節(jié),如果是,將使用哪種協(xié)議。字符 TD1 是通用字符 TDx 的特定實(shí)例。TDx最重要的半字節(jié)表示TA(x + 1),TB(x + 1),TC(x + 1)或TD(x + 1)將被傳輸。對(duì)于每個(gè)邏輯 1,后續(xù)傳輸中相應(yīng)字符的存在確定如下:

位 8 (msb) = 1 表示將傳輸字符 TD(x + 1) 位 7 = 1 表示將傳輸字符 TC(x + 1) 位 6 = 1 表示將傳輸字符 TB(x + 1) 位 5 = 1 表示將傳輸


字符 TA(x + 1)

TD1 字符(TDx 廣義)的最低有效半字節(jié)包含值 0x0 或 0x1,分別指示協(xié)議 T=0 或 T=1。

如果使用協(xié)議 T=0,則字符 TD1 將不包括在 ATR 序列中;協(xié)議 T=0 將用于所有后續(xù)傳輸。如果使用協(xié)議 T=1,則將包含 TD1 并包含 0x81 的值。后一個(gè)值表示 TD2 將存在,協(xié)議 T=1 將用于所有后續(xù)傳輸。

TA2字符

雖然字符TA2不在T=0或T=1協(xié)議的基本EMV ATR響應(yīng)中傳輸,但它在ISO 7816規(guī)范中定義。TA2 的存在與否決定了智能卡是在 ATR 之后分別以特定模式還是可協(xié)商模式運(yùn)行。沒有TA2表示將使用可轉(zhuǎn)讓操作模式。

TB2 字符

雖然字符TB2不會(huì)在T=0或T=1協(xié)議的基本EMV ATR響應(yīng)中傳輸,但它在ISO 7816規(guī)范中定義。字符TB2表示PI2,PI1確定智能卡所需的編程電壓值。當(dāng)存在字符 TB1 時(shí),將取代字符 TB2 中的 PI<> 值。

TC2 字符

雖然字符TC2不在T=0或T=1協(xié)議的基本EMV ATR響應(yīng)中傳輸,但它在ISO 7816規(guī)范中定義。如果存在,TC2 特定于協(xié)議類型 T=0。TC2 傳輸工作等待時(shí)間整數(shù) (WI),該整數(shù)確定智能卡發(fā)送的任何字符的起始位的前緣與卡或終端發(fā)送的前一個(gè)字符的起始位的前沿之間的最大間隔。工作等待時(shí)間的值為:

工作等待時(shí)間 = 960 × D ×WI

其中 D 是比特率調(diào)整因子(請(qǐng)參閱上面 TA1 中的說明)。

當(dāng) ATR 序列中不包含 TC2 時(shí),假定默認(rèn)值為 WI = 0x0A。

TD2 字符

TD2 字符與 TD1 字符具有相同的功能。有關(guān)詳細(xì)信息,請(qǐng)參閱上面的 TD1 說明。在協(xié)議 T=3 的表 1 中,存在 TD2 并包含值 0x31。此值指示:TA3 和 TB3 將存在,TC3 和 TD3 將不存在,協(xié)議類型將為 T=1。

TA3 字符

TA3 字符傳達(dá)智能卡的信息字段大小整數(shù) (IFSI)。IFSI 確定智能卡的信息字段大小,這是卡可以接收的塊的信息字段 (INF) 的最大長度。字段大小可以是 0x01 到 0xFE 之間的任何值。0x0和0xFF的值保留供將來使用。在基本 ATR 中使用 T=1 協(xié)議,TA3 的值在 0x10 到 0xFE 的范圍內(nèi),因此表示 IFSC 在 16 到 254 字節(jié)的范圍內(nèi)。對(duì)于不包含 TA3 的 ATR,終端將假定默認(rèn)值為 0x20。

TB3 字符

TB3 字符表示用于計(jì)算字符等待時(shí)間 (CWT) 和塊等待時(shí)間 (BWT) 的字符等待時(shí)間整數(shù) (CWI) 和塊等待時(shí)間整數(shù) (BWI) 的值。TB3 的最低顯著部分(b1 至 b4)表示 CWI 的值;最重要的半字節(jié)(B5 到 B8)表示 BWI 的值。在 T=1 協(xié)議的基本 ATR 中,TB3 字符在 0 到 5 (CWI = 0 到 5) 范圍內(nèi)具有最低有效半字節(jié),在 0 到 4 范圍內(nèi)具有最不重要的半字節(jié)(BWI = 0 到 4)。

TC3 字符

雖然字符TC3不在T=0或T=1協(xié)議的基本EMV ATR響應(yīng)中傳輸,但它在ISO 7816規(guī)范中定義。當(dāng)存在 TC3 時(shí),它指示要使用的塊錯(cuò)誤檢測類型。當(dāng) TC3 不存在時(shí),默認(rèn)縱向冗余校驗(yàn) (LRC) 是使用的塊錯(cuò)誤校驗(yàn)。

TCK 字符

TCK 字符是校驗(yàn)字符,其值允許驗(yàn)證 ATR 中發(fā)送的數(shù)據(jù)的完整性。TCK 的值可以是任何值,只要從 T0 到 TCK 包含的所有字節(jié)的獨(dú)占 OR 為零即可。TCK 不用于 T=0,但在所有其他情況下將在 ATR 中返回。

ATR序列

在終端接收到ATR序列中的最后一個(gè)字符后,將必要的參數(shù)從卡傳輸?shù)浇K端后,可以對(duì)DS8007進(jìn)行任何必要的接口參數(shù)調(diào)整。然后可以開始進(jìn)一步的溝通。

應(yīng)用協(xié)議數(shù)據(jù)單元 (APDU)

如前所述,卡會(huì)話的下一階段是交易的執(zhí)行。交易過程中執(zhí)行的具體操作取決于卡和帳戶的類型(信用卡、借記卡等)以及用戶的請(qǐng)求。無論具體操作如何,事務(wù)都是通過向智能卡發(fā)出命令來完成的。智能卡執(zhí)行請(qǐng)求的操作,并可能傳達(dá)結(jié)果??ǖ牟僮骺梢韵褡x取內(nèi)存中的位置一樣簡單,也可以像執(zhí)行加密操作一樣復(fù)雜。無論操作如何,終端和卡之間的通信都是使用應(yīng)用協(xié)議數(shù)據(jù)單元或APDU進(jìn)行的。

要運(yùn)行應(yīng)用程序,智能卡和終端必須交換信息。這種信息共享是在命令-響應(yīng)數(shù)據(jù)交換中完成的。終端創(chuàng)建命令并將其發(fā)送到智能卡,智能卡隨后解釋命令并發(fā)送響應(yīng)。此命令-響應(yīng)消息對(duì)稱為應(yīng)用程序協(xié)議數(shù)據(jù)單元 (APDU)。終端 (C-APDU) 發(fā)送的特定命令消息將具有來自卡 (R-APDU) 的特定響應(yīng)消息。這些消息稱為 APDU 命令-響應(yīng)對(duì)。EMV 規(guī)范詳細(xì)介紹了這兩種消息類型的格式,它們的格式如下所述。

C-APDU 格式

終端啟動(dòng)所有命令 APDU。它們由必需的 4 字節(jié)標(biāo)頭組成,后跟可包含數(shù)據(jù)的可變長度的可選主體。C-APDU 中包含的數(shù)據(jù)字節(jié)數(shù)在命令字節(jié) Lc 中指定;終端期望從卡的響應(yīng)接收的字節(jié)數(shù)在命令字節(jié) Le 中指定。C-APDU格式如表4所示,字符如表5所示。

CLA INS P1 P2 Lc Data Le
←必需標(biāo)頭→ ←條件體→
Code 描述 長度
CLA 教學(xué)等級(jí) 1
INS 指令代碼 1
P1 指令參數(shù) 1 1
P2 指令參數(shù) 2 1
Lc 命令日期字段中存在的字節(jié)數(shù) 0 或 1
Data 在命令中發(fā)送的數(shù)據(jù)字節(jié)字符串 (= Lc) 變量
Le 響應(yīng)數(shù)據(jù)字段中預(yù)期的最大數(shù)據(jù)字節(jié)數(shù) 0 或 1

命令A(yù)PDU的第一個(gè)字節(jié)被定義為指令類,稱為CLA。此字節(jié)可以采用除 8xFF 之外的任何 0 位值。但是,目前僅使用最高有效半字節(jié) 0 和 8 的值。值為 0 的最重要半字節(jié)定義為行業(yè)間命令,值 8 是 EMV 規(guī)范專有的。

命令A(yù)PDU的第二個(gè)字節(jié)是指令代碼,稱為INS。僅當(dāng)最低有效位為 0 且最高有效半字節(jié)既不是 6 也不是 9 時(shí),此字節(jié)才有效。

必需標(biāo)頭的 P1 和 P2 字節(jié)包含特定命令的參數(shù),可以是任何值。如果未使用,則參數(shù)字節(jié)的值必須為 0x00。

R-APDU

從終端接收并解釋 APDU 命令后,智能卡將返回響應(yīng)。如規(guī)范中所定義,此響應(yīng)由可變長度的可選主體組成,后跟由兩個(gè)字節(jié)組成的所需拖車。這種格式如表6所示,APDU響應(yīng)的內(nèi)容如表7所示。

Data SW1 SW2
←Body→ ←Trailer→
Code 描述 長度
數(shù)據(jù) APDU 響應(yīng)中接收的數(shù)據(jù)字節(jié)字符串 變量 (= Lr)
SW1 命令處理狀態(tài) 1
SW2 命令處理限定符 1

卡響應(yīng)的預(yù)期長度作為 APDU 命令的 Le 代碼部分傳輸。響應(yīng)的實(shí)際長度稱為 Lr。雖然卡不傳輸Lr的值,但終端可以根據(jù)應(yīng)用需要計(jì)算它。

為了正常完成命令,智能卡將返回值為 1x0 的 SW90 和值為 2x0 的 SW00。任何其他響應(yīng)都指示發(fā)生了錯(cuò)誤或警告2。

示例代碼

本應(yīng)用筆記隨附的軟件包含在可下載的文件an4029_sw.zip中。此文件包含生成可執(zhí)行十六進(jìn)制文件 (ds8007.hex) 所需的所有 C (main.c、ds51.c、LCD_Funct.c) 和匯編語言 (Startup.a8007) 源代碼。該代碼是使用 Keil PK51 專業(yè)開發(fā)人員工具包和 μVision 集成開發(fā)環(huán)境 (IDE) 編譯和鏈接的。μVision 項(xiàng)目文件 (ds8007.Uv2) 也包含在.zip文件中。這。HEX文件在DS8007評(píng)估(EV)板(可從Analog獲得)中的DS8007智能卡接口板上加載并運(yùn)行。示例軟件實(shí)現(xiàn)完整的智能卡會(huì)話,包括上電、ATR、APDU 和斷電操作。當(dāng)連接到啞終端時(shí),電路板和軟件將產(chǎn)生232,38波特的RS-400串行輸出。此輸出如下面的圖 4 所示。本軟件的詳細(xì)說明超出了本應(yīng)用筆記的范圍,但提供的源代碼可以作為使用DS5002安全微處理器和DS8007多協(xié)議雙智能卡接口芯片的完整智能卡接口的基礎(chǔ)。?

pYYBAGQBkoKACEQlAAAQb99iBQE023.gif

圖4.軟件輸出。

為了測試示例軟件,使用了高級(jí)卡系統(tǒng)(ACS)基于微控制器的智能卡。作為基于微控制器的設(shè)備,該卡執(zhí)行其嵌入式操作系統(tǒng)的功能,稱為ACS智能卡操作系統(tǒng)版本1或ACOS1。此卡具有以下功能。

8kB EEPROM 存儲(chǔ)器,用于存儲(chǔ)應(yīng)用數(shù)據(jù)

符合 ISO 7816-3,T=0 協(xié)議

DES 和 MAC 功能

基于隨機(jī)數(shù)的會(huì)話密鑰

密碼,可由持卡人更改

用于相互身份驗(yàn)證的密鑰對(duì)

ACOS1 文檔指示此卡將使用 19 字節(jié)的數(shù)據(jù)響應(yīng)重置。如圖 4 所示,為 T0 返回的值為 0xBE。高半字節(jié) (0xB) 表示 TA1、TB1 和 TD1 將與 TS 一起包含在 ATR 中。低半字節(jié)包含0xE,表示 ATR 響應(yīng)中將包含 14 個(gè)歷史字節(jié)(請(qǐng)參閱上面的字符 T0 說明)。因此,卡的 ATR 中總共包含 19 個(gè)字節(jié)。

對(duì)于此示例軟件,執(zhí)行一個(gè) ADPU,即“啟動(dòng)會(huì)話”命令。此命令具有以下格式。

CLA INS P1 P2 P3
0x80 0x84 0x00 0x00 0x08

對(duì)“啟動(dòng)會(huì)話”命令的響應(yīng)具有以下格式。

Data SW1 SW2
RNDc (8 bytes from card) Status Status

圖 4 所示的軟件輸出表明,從卡返回的隨機(jī)數(shù)為 0xCB、0xC4、0xBD、0xD5、0xA4、0x7E、0x36和0x3F。它還顯示返回的狀態(tài)為 0x90, 0x00,這表示命令成功完成。

結(jié)論

DS8007為混合信號(hào)外設(shè),減輕了微控制器與智能卡接口的負(fù)擔(dān)。它提供與兩個(gè)獨(dú)立智能卡進(jìn)行物理接口所需的所有電信號(hào)。專用的內(nèi)部定序器控制自動(dòng)卡激活和停用,以及用于數(shù)據(jù)通信的ISO UART。電荷泵和穩(wěn)壓器允許DS8007工作在2.7V至6.0V電源電壓,同時(shí)產(chǎn)生兩個(gè)獨(dú)立的智能卡電源電壓,可以是1.8V、3.0V或5V。與微控制器的通信由標(biāo)準(zhǔn)的并行8位總線提供,該總線在非多路復(fù)用配置中傳輸數(shù)據(jù)或在多路復(fù)用配置中傳輸數(shù)據(jù)和地址。所提供的軟件使用DS5002安全微處理器和DS8007作為其智能卡接口實(shí)現(xiàn)完整的卡會(huì)話。智能卡在其 ATR 中返回的字符以 38400 波特率輸出在主板的串行端口上,并向卡發(fā)送“啟動(dòng)會(huì)話”命令 APDU。生成的隨機(jī)數(shù)也會(huì)輸出在串行端口上。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7555

    瀏覽量

    151431
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17719

    瀏覽量

    250215
  • 穩(wěn)壓器
    +關(guān)注

    關(guān)注

    24

    文章

    4240

    瀏覽量

    93811
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    多協(xié)議雙智能卡接口DS8007相關(guān)資料下載

    概述:DS8007是一款低成本多協(xié)議雙智能卡讀卡接口,滿足所有ISO 7816、EMV?和GSM11-11的要求。通過其8位并行總線和專用地址選擇(AD3–AD0)引腳,DS8007
    發(fā)表于 05-17 06:55

    DS8007 多協(xié)議雙智能卡接口

    DS8007 多協(xié)議雙智能卡接口 DS8007是一款低成本多協(xié)議雙智能卡讀卡接口,滿足所有IS
    發(fā)表于 11-27 18:05 ?828次閱讀
    <b class='flag-5'>DS8007</b> 多協(xié)議雙<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>

    利用DS8007評(píng)估套件進(jìn)行設(shè)計(jì)

    摘要:本文闡述使用DS8007智能卡接口評(píng)估(EV)套件的步驟,解釋了怎樣安裝和配置軟件、配置硬件,建立并裝載板上DS5002FP微控制器執(zhí)行的應(yīng)用軟件。提供了一個(gè)簡單的"Hello
    發(fā)表于 04-23 10:14 ?1084次閱讀

    DS8007智能卡接口基礎(chǔ)

    摘要:DS8007是一款低成本的多協(xié)議雙智能卡接口,滿足所有ISO 7816、EMV™和GSM11-11的要求。這個(gè)混合信號(hào)外設(shè)可以管理微控制器和兩個(gè)
    發(fā)表于 04-23 10:33 ?611次閱讀
    <b class='flag-5'>DS8007</b>和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基礎(chǔ)

    DS8007智能卡接口基礎(chǔ)

    摘要:DS8007是一款低成本的多協(xié)議雙智能卡接口,滿足所有ISO 7816、EMV™和GSM11-11的要求。這個(gè)混合信號(hào)外設(shè)可以管理微控制器和兩個(gè)獨(dú)立智能卡間的所有
    發(fā)表于 04-24 17:27 ?1346次閱讀
    <b class='flag-5'>DS8007</b>和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基礎(chǔ)

    DS8007智能卡交易中的應(yīng)用

    摘要:本應(yīng)用筆記介紹了一個(gè)用DS8007接口器件和DS5002安全微控制器設(shè)計(jì)的智能卡支付終端實(shí)例。DS8007評(píng)估(EV)套件和所提供的C
    發(fā)表于 04-24 17:28 ?994次閱讀

    利用DS8007評(píng)估套件進(jìn)行設(shè)計(jì)

    摘要:本文闡述使用DS8007智能卡接口評(píng)估(EV)套件的步驟,解釋了怎樣安裝和配置軟件、配置硬件,建立并裝載板上DS5002FP微控制器執(zhí)行的應(yīng)用軟件。提供了一個(gè)簡單的"Hello
    發(fā)表于 04-24 17:29 ?915次閱讀
    利用<b class='flag-5'>DS8007</b>評(píng)估套件進(jìn)行設(shè)計(jì)

    DS8007A多協(xié)議雙智能卡接口

      DS8007A多協(xié)議雙智能卡接口是一款汽車級(jí)、低成本雙智能卡讀卡器接口,滿足所有ISO 7816、EMV™和GSM11-11
    發(fā)表于 11-03 09:10 ?967次閱讀
    <b class='flag-5'>DS8007</b>A多協(xié)議雙<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>

    DS8007 低成本多協(xié)議雙智能卡讀卡接口

    DS8007是一款低成本多協(xié)議雙智能卡讀卡接口,滿足所有ISO 7816、EMV?和GSM11-11的要求。通過其8位并行總線和專用地址選擇(AD3–AD0)引腳,DS8007可方便的
    發(fā)表于 07-21 18:12 ?1721次閱讀
    <b class='flag-5'>DS8007</b> 低成本多協(xié)議雙<b class='flag-5'>智能卡</b>讀卡<b class='flag-5'>接口</b>

    DS8007芯片在智能卡交易中的應(yīng)用

    本應(yīng)用筆記介紹了一個(gè)基于 DS8007 多協(xié)議雙智能卡接口芯片和 DS5002 安全微控制器的智能卡支付交易系統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)基本的
    的頭像 發(fā)表于 10-30 21:17 ?601次閱讀

    DS8007接口芯片在智能卡交易中有什么樣的應(yīng)用

    本應(yīng)用筆記介紹了一個(gè)基于 DS8007 多協(xié)議雙智能卡接口芯片和 DS5002 安全微控制器的智能卡支付交易系統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)基本的
    發(fā)表于 12-08 23:04 ?18次下載

    DS8007智能卡交易中的應(yīng)用

    本應(yīng)用筆記介紹了基于DS8007多協(xié)議、雙智能卡接口芯片和DS5002安全微控制器的智能卡支付交易系統(tǒng)?;拘庞?/div>
    的頭像 發(fā)表于 03-03 14:16 ?830次閱讀
    <b class='flag-5'>DS8007</b>在<b class='flag-5'>智能卡</b>交易中的應(yīng)用

    DS8007智能卡交易中的應(yīng)用

    本應(yīng)用筆記介紹了基于DS8007多協(xié)議、雙智能卡接口芯片和DS5002安全微控制器的智能卡支付交易系統(tǒng)?;拘庞?/div>
    的頭像 發(fā)表于 04-03 11:05 ?934次閱讀
    <b class='flag-5'>DS8007</b>在<b class='flag-5'>智能卡</b>交易中的應(yīng)用

    DS8007智能卡接口基礎(chǔ)

    DS8007是一款多協(xié)議、低成本、雙智能卡接口,支持所有ISO 7816、EMV?和GSM11-11要求。這個(gè)混合信號(hào)外設(shè)管理微控制器和兩個(gè)獨(dú)立智能卡之間
    的頭像 發(fā)表于 04-03 11:12 ?1029次閱讀
    <b class='flag-5'>DS8007</b>和<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>基礎(chǔ)

    利用DS8007評(píng)估套件進(jìn)行設(shè)計(jì)

    本文闡述使用DS8007智能卡接口評(píng)估(EV)套件的步驟,解釋了怎樣安裝和配置軟件、配置硬件,建立并裝載板上DS5002FP微控制器執(zhí)行的應(yīng)用軟件。提供了一個(gè)簡單的\"Hello W
    的頭像 發(fā)表于 06-16 17:19 ?721次閱讀
    利用<b class='flag-5'>DS8007</b>評(píng)估套件進(jìn)行設(shè)計(jì)