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

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

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

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

電子設(shè)計 ? 來源: 電子設(shè)計 ? 作者: 電子設(shè)計 ? 2020-10-30 21:17 ? 次閱讀

本應(yīng)用筆記介紹了一個基于 DS8007 多協(xié)議雙智能卡接口芯片和 DS5002 安全微控制器的智能卡支付交易系統(tǒng)。該系統(tǒng)可實現(xiàn)基本的智能卡存款、取款交易以及卡的初始化功能。雖然系統(tǒng)沒有進(jìn)行任何與"實際"支付交易系統(tǒng)有關(guān)的安全測試,但這里演示的功能對于此類系統(tǒng)極具代表性。

演示中使用的硬件是 DS8007 評估(EV)板。該評估套件提供了一個方便的、經(jīng)過驗證的平臺,用于測試基于 DS8007 器件的智能卡操作。評估板包括:作為主處理器的 DS5002 安全微控制器、一個 2 行 20 字符的液晶顯示(LCD)模塊、兩個智能卡插槽(分別為信用卡尺寸和 SIM 尺寸)。此外還提供一個 DB-9 連接器,用于通過 RS-232 串行接口傳輸信號。使用本公司的微控制器工具包(MTK)軟件(下載),用戶可將 PC 與 RS-232 口連接下載程序或數(shù)據(jù)文件,也可以與應(yīng)用系統(tǒng)通信。評估板還包括 512k x 8 的電池備份 SRAM,用于存儲程序和數(shù)據(jù)信息。DS5002 安全處理器為電池備份的 SRAM 提供電檢測控制電路。

開發(fā)該應(yīng)用系統(tǒng)使用的軟件工具集是 Keil 公司的 PK51 專業(yè)開發(fā)工具套件,包括μVision3?集成開發(fā)環(huán)境(IDE)和 CX51 ANSI C 編譯器。PK51 包提供匯編器、連接器、仿真器和調(diào)試器的完整開發(fā)環(huán)境。它生成的十六進(jìn)制文件可使用 MTK 軟件直接從 PC 下載到 DS8007 評估板。

應(yīng)用實例
本應(yīng)用筆記提供的交易功能可看作是應(yīng)用筆記 4036: 利用 DS8007 評估套件進(jìn)行設(shè)計中描述的低層功能之上的附加層。

本交易實例可執(zhí)行和正確管理應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)的發(fā)送和接收。APDU 由 ACOS3 智能卡 EMV 規(guī)范定義。通過生成和發(fā)送適當(dāng)?shù)?APDU 并處理其可能的響應(yīng),可演示典型的支付交易操作。

用于本應(yīng)用系統(tǒng)的 C 語言源代碼可提供下載,文件名為 AN4120_SW.zip。前面提到的應(yīng)用筆記 4036 中的代碼是這些交易實例的核心,它提供 DS8007 的所有基本接口 / 驅(qū)動函數(shù)和所有直接的低層智能卡接口函數(shù)。AN4036 中的代碼也在相同的網(wǎng)址提供下載,文件名為 AN4036_SW.zip。

交易實例詳述

為創(chuàng)建一組有代表性的交易功能,本實例實現(xiàn)了三種主要的智能卡操作。

取款交易,即扣除信用卡余額

存款交易,即增加信用卡余額

信用卡初始化交易,將信用卡余額和交易次數(shù)設(shè)定為初始值

卡中初始金額為$100.00,初始交易次數(shù)在初始化交易過程中被設(shè)定為 1。為簡化實例,每次存款、取款交易都固定在信用卡余額中增加或扣除$10.00。

為了提供一個合理的演示,首先要考慮的是如何利用 DS8007 評估板上的資源建立一個用戶接口。由于設(shè)計目標(biāo)之一是無需借助其它設(shè)備就能單機(jī)運行,因此評估板上的 RS-232 串口不能作為用戶接口。最方便作為用戶輸入接口的硬件是開關(guān) SW4,當(dāng)該開關(guān)按下時,會將處理器的端口引腳 P3.2 下拉至地電平。P3.2 是一個多功能端口引腳,還可用作外部中斷輸入(INT0)。但是本應(yīng)用實例軟件中不使能該中斷,因此,引腳 P3.2 通常由處理器的引腳驅(qū)動電路上拉到高電平,按下開關(guān) SW4 時通過一個 1kΩ電阻拉至低電平。應(yīng)用系統(tǒng)可簡單通過讀取該引腳的電平檢測開關(guān)是否閉合。

板載 LCD 模塊可作為用戶接口的輸出器件。DS8007 評估板的 LCD 模塊是一個 2 行 20 字符的顯示器。它包含液晶驅(qū)動電路,并為處理器提供 8 位并行接口。通過向模塊寫入必要的控制和字符就可進(jìn)行顯示操作,由模塊管理實際的 LCD。

用戶完成一次輸入,軟件就以重復(fù)順序在 LCD 上顯示三種可能的交易類型供用戶選擇。按下開關(guān) SW4 時,軟件執(zhí)行選中的交易。

智能卡詳述
本應(yīng)用實例中選用的智能卡是香港 Advanced Card Systems Limited (ACS)公司生產(chǎn)的 ACOS3 卡。該卡內(nèi)含嵌入式處理器,運行 ACS 智能卡操作系統(tǒng)版本 3 (ACOS3)的操作系統(tǒng),具有如下特性:


16kB 應(yīng)用數(shù)據(jù) EEPROM 存儲器


符合 ISO 7816-1/2/3 標(biāo)準(zhǔn),T = 0 協(xié)議


兼容數(shù)字加密標(biāo)準(zhǔn)(DES)、3DES 和信息驗證能力(MAC)


5 個安全碼 + 發(fā)行密碼


卡持有者可更新 PIN 碼


密鑰對相互驗證


會話密鑰采用隨機(jī)數(shù)字


線性文件具有固定的記錄長度


帳戶數(shù)據(jù)結(jié)構(gòu)可實現(xiàn)安全支付應(yīng)用系統(tǒng)


ACOS3 性能的全部說明可在 ACS 網(wǎng)站上找到。對于本應(yīng)用實例,沒有使用智能卡的任何安全功能,只使用其文件結(jié)構(gòu)和 EEPROM 存儲空間。

智能卡存儲空間

本交易實例中,選用的智能卡必須包含一定的非易失存儲器空間,用于保存信息。僅有兩個數(shù)值保存在卡中:記錄成功處理的交易次數(shù)的"計數(shù)器"和虛擬帳戶的"余額"。對于該計數(shù)器,選用 1 個字節(jié)的無符號數(shù),它可表示 0 至 255 次交易數(shù)。對于余額,選用 16 位整數(shù),可表示數(shù)值 -32,768 至+32,767。這種方式允許用戶透支卡中的可用余額(即產(chǎn)生負(fù)的余額)。因此,本實例中總共需要 3 個字節(jié)的非易失存儲器。

ACOS3 的文件結(jié)構(gòu)

制造 ACOS3 卡時,其 16kB EEPROM 存儲器劃分成內(nèi)部數(shù)據(jù)存儲區(qū)和用戶數(shù)據(jù)存數(shù)區(qū)兩部分。內(nèi)部數(shù)據(jù)存儲區(qū)保存配置數(shù)據(jù),通常被操作系統(tǒng)用于管理特定的功能。用戶數(shù)據(jù)存儲區(qū)保存"實際"交易控制下正常使用智能卡的操作數(shù)據(jù)。在本實例代碼中,只使用內(nèi)部數(shù)據(jù)存儲區(qū),后續(xù)討論中將重點關(guān)注內(nèi)部數(shù)據(jù)存儲區(qū)。

不論是內(nèi)部數(shù)據(jù)存儲區(qū)還是用戶數(shù)據(jù)存儲區(qū),訪問 ACOS3 卡的存儲器都要通過數(shù)據(jù)文件和數(shù)據(jù)記錄進(jìn)行。每個數(shù)據(jù)文件都由一定數(shù)量的數(shù)據(jù)記錄組成,最多可達(dá) 255 個。不同數(shù)據(jù)文件的記錄長度可以不同,但對于給定的數(shù)據(jù)文件其記錄長度總是固定的。內(nèi)部數(shù)據(jù)文件的文件結(jié)構(gòu)(文件大小、記錄長度等)由操作系統(tǒng)定義且不能更改,但對于用戶數(shù)據(jù)存儲區(qū),可由卡發(fā)行人在進(jìn)行個性化智能卡設(shè)置時確定其文件結(jié)構(gòu)。為簡單起見,只使用卡中已有的內(nèi)部數(shù)據(jù)文件系統(tǒng),不再生成一個專門的用戶數(shù)據(jù)文件系統(tǒng)。

所有文件都可通過 ACOS3 的讀記錄和寫記錄命令進(jìn)行訪問。這些命令發(fā)送到智能卡,而任何響應(yīng)都會被應(yīng)用筆記 4036 中提供的 APDU 函數(shù)接收。每個文件都由 2 字節(jié)的文件標(biāo)識符來識別。對于所有內(nèi)部數(shù)據(jù)文件,標(biāo)識符的第一個字節(jié)固定為 0xFF。表 1 列出了內(nèi)部數(shù)據(jù)文件的文件名、文件標(biāo)識符和記錄結(jié)構(gòu)。

表 1. 內(nèi)部數(shù)據(jù)文件信息

個性化文件 ID = 0xFF 0x02,包含三個記錄共 12 字節(jié),各記錄的長度為 4 個字節(jié)。第一個記錄包含智能卡中某些選項的配置信息,而第二和第三個記錄則沒有預(yù)先定義。因此,這兩個記錄被用于保存本應(yīng)用實例中智能卡的交易次數(shù)和帳戶余額。雖然單個記錄具有足夠的存儲空間(4 個字節(jié))來保存交易次數(shù)和帳戶余額所需的三個字節(jié),但這兩個數(shù)據(jù)還是存儲在不同的記錄中以便操作。這也使得增大這兩個數(shù)據(jù)的值成為可能。交易次數(shù)存儲在記錄 2 的第一個字節(jié),而帳戶余額則存儲在記錄 3 的前兩個字節(jié),高字節(jié)在前(大端)。

ACOS3 命令結(jié)構(gòu)

ACOS3 卡有 13 條基本命令,本應(yīng)用實例中主要用到其中的三條命令。它們分別是文件選擇、讀記錄和寫記錄命令。這三條命令都將在后面進(jìn)行說明。ACOS3 卡的所有命令都符合 EMV 規(guī)范描述的應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)的格式。APDU 的一般格式包括如下幾部分:


CLA 命令類


INS 指令代碼


P1 指令參數(shù) 1


P2 指令參數(shù) 2


Lc(P3)命令數(shù)據(jù)域給出的字節(jié)數(shù)(可選)


命令發(fā)送數(shù)據(jù)字節(jié)中的數(shù)據(jù)序列


Le 應(yīng)答中數(shù)據(jù)域所期望的數(shù)據(jù) 字節(jié)最大長度(可選)


文件選擇命令


文件選擇命令可打開文件,從而讀 / 寫文件的記錄。它是一個 7 字節(jié)命令,格式為:

個性化文件是本應(yīng)用中用到的唯一文件(見表 1),它的文件 ID 0xFF 0x02 為命令的最后兩個字節(jié)。與所有 ACOS3 命令一樣,執(zhí)行成功后返回 2 字節(jié)狀態(tài)信息,其數(shù)值為 0x90 0x00。若返回任何其它數(shù)值則表明命令執(zhí)行錯誤。在前面提到的 ACS 網(wǎng)站上,ACOS3 參考手冊中列出了所有可能的錯誤狀態(tài)字節(jié)及其含義。

讀記錄命令
讀記錄命令可從當(dāng)前所選文件的已識別記錄中讀取指定數(shù)量的字節(jié)。它是一個 5 字節(jié)命令,格式為:

可以看出,該命令包含兩個可變字節(jié):一個字節(jié)指示記錄號,另一個字節(jié)指示要從指定記錄中讀取的字節(jié)數(shù)(長度)。在本應(yīng)用實例中,每次都讀取個性化文件記錄的全部四個字節(jié),因此長度固定為 0x04。若讀記錄命令執(zhí)行成功,將返回 6 字節(jié)數(shù)據(jù):記錄中存儲的 4 字節(jié)信息,2 字節(jié)狀態(tài)信息。若返回的狀態(tài)字節(jié)數(shù)值不是 0x90 0x00,則表明命令執(zhí)行錯誤,應(yīng)丟棄返回的數(shù)據(jù)。

寫記錄命令
寫記錄命令可向當(dāng)前所選文件的指定記錄寫入數(shù)據(jù)。該命令的長度可以隨著要寫入的字節(jié)數(shù)變化。在本實例中,每次都寫入 4 個字節(jié),因此該命令具有如下所示的格式:

可以看出,該命令總共包含 6 個可變字節(jié);一個字節(jié)指示記錄號(0 至 N-1),另一個字節(jié)指示要寫入的字節(jié)數(shù)(長度 = 0x04),此外還有四個數(shù)據(jù)字節(jié)。若寫記錄命令執(zhí)行成功,將返回兩字節(jié)狀態(tài)信息(執(zhí)行成功時返回 0x90 0x00)。

裝載可執(zhí)行文件
DS8007 評估板出廠時已裝有本智能卡交易實例的軟件。若要驗證是否安裝了該軟件,可以給評估板通電然后觀察顯示屏。如果顯示屏上出現(xiàn)"在下面的大插槽中插入智能卡",則表明已經(jīng)加載了程序。如果沒有顯示這條信息,則可通過 MTK 軟件將交易軟件裝載到板上的電池備份 SRAM 中。應(yīng)用筆記 4036 (參看上文)說明了如何裝載應(yīng)用程序。要裝載的文件為 Trans.hex,包含在 AN4120_SW.zip 中,可從上面提到的 ftp 網(wǎng)站下載。

在安裝完交易軟件并斷開引導(dǎo)加載程序之后,處理器就立即開始運行應(yīng)用程序。如果評估板此時仍然連接至 PC,則 MTK 屏幕上會顯示應(yīng)用程序的 RS-232 串行輸出。這些信息可用于分析和調(diào)試,但可以忽略。用戶應(yīng)按照 LCD 模塊上顯示的指令進(jìn)行操作。如果必要,可分析源代碼以確定串行輸出的含義。

插入智能卡后,LCD 上會短暫的顯示智能卡的當(dāng)前交易次數(shù)和帳戶余額。然后,LCD 上就開始循環(huán)顯示交易選項—取款、存款和智能卡初始化,大約每兩秒鐘按順序變化一次。當(dāng)期望的交易選項出現(xiàn)時,按下 SW4 開關(guān)就可執(zhí)行該項交易。這時 LCD 上會顯示交易執(zhí)行情況。之后顯示交易完成信息,指示用戶取下智能卡。此時,交易選項將循環(huán)顯示,等待智能卡插入。

結(jié)束語
本應(yīng)用筆記介紹一個基于 DS8007 多協(xié)議雙智能卡接口芯片和 DS5002 安全微控制器的智能卡支付交易系統(tǒng)。系統(tǒng)中使用具有 16kB EEPROM 存儲器的 ACOS3 智能卡,并利用它的讀記錄和寫記錄命令將信息存儲到非易失存儲器中。反饋信息通過板載的 2 行 20 字符 LCD 提供給用戶。系統(tǒng)可實現(xiàn)存款、取款交易和智能卡初始化功能。提供源代碼文件下載,可以此為基礎(chǔ)開發(fā)真正的支付交易系統(tǒng)。

審核編輯 黃昊宇

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

    關(guān)注

    452

    文章

    49985

    瀏覽量

    419665
  • 智能卡
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    24717
收藏 人收藏

    評論

    相關(guān)推薦

    智能IC測試設(shè)備的技術(shù)原理和應(yīng)用場景

    嚴(yán)格的測試和驗證。測試設(shè)備可以模擬各種交易場景,對銀行的各項功能進(jìn)行全面測試,確保其在實際應(yīng)用的穩(wěn)定性和安全性。 公共交通領(lǐng)域: 公交、地鐵
    發(fā)表于 09-26 14:27

    驅(qū)動芯片在應(yīng)用的常見問題分析與解決

    電子發(fā)燒友網(wǎng)站提供《驅(qū)動芯片在應(yīng)用的常見問題分析與解決.pdf》資料免費下載
    發(fā)表于 09-10 10:48 ?0次下載
    驅(qū)動<b class='flag-5'>芯片在</b>應(yīng)用<b class='flag-5'>中</b>的常見問題分析與解決

    竹木芯片:綠色科技與智能生活的完美結(jié)合 #智能卡 #ic智能卡 #木 #環(huán)保木

    IC智能卡
    深圳市融智興科技有限公司
    發(fā)布于 :2024年07月26日 16:14:39

    TCA5013支持1張用戶和3張SAM的多功能智能卡接口IC數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TCA5013支持1張用戶和3張SAM的多功能智能卡接口IC數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 07-03 10:38 ?0次下載
    TCA5013支持1張用戶<b class='flag-5'>卡</b>和3張SAM<b class='flag-5'>卡</b>的多功能<b class='flag-5'>智能卡</b>接口IC數(shù)據(jù)表

    新恒匯:智能卡領(lǐng)域領(lǐng)航者,創(chuàng)新賦能引領(lǐng)發(fā)展

    數(shù)字化時代來臨,智能卡已經(jīng)成為現(xiàn)代社會不可或缺的一部分,其在通訊、金融、交通、身份識別等領(lǐng)域發(fā)揮著至關(guān)重要的作用。在這個競爭激烈的市場,新恒匯電子股份有限公司(簡稱“新恒匯”或“公司”)憑借卓越
    的頭像 發(fā)表于 06-26 15:27 ?599次閱讀

    紫光同芯亮相2024年迪拜智能卡支付及零售展覽會

    5月14日,2024年迪拜智能卡支付及零售展覽會(Seamless Middle East)在迪拜世界貿(mào)易中心隆重開幕。
    的頭像 發(fā)表于 05-15 09:21 ?472次閱讀
    紫光同芯亮相2024年迪拜<b class='flag-5'>智能卡</b>支付及零售展覽會

    門禁系列應(yīng)用演示 #IC #智能卡 #門禁 #會員 #滴膠

    智能卡IC智能卡
    深圳市融智興科技有限公司
    發(fā)布于 :2024年04月11日 14:39:50

    智能公交外觀展示 #智能卡 #校園 #公交 #IC

    IC智能卡
    深圳市融智興科技有限公司
    發(fā)布于 :2024年04月01日 15:39:39

    基于有限元模型的IC芯片受力分析研究

    智能卡三輪測試,失效表現(xiàn)為芯片受損,本文基于有限元模型來研究智能 IC (Integrated circuit card)
    的頭像 發(fā)表于 02-25 09:49 ?556次閱讀
    基于有限元模型的IC<b class='flag-5'>卡</b><b class='flag-5'>芯片</b>受力分析研究

    淺談智能卡遠(yuǎn)程費控電能表的設(shè)計與應(yīng)用研究分析

    淺談智能卡遠(yuǎn)程費控電能表的設(shè)計與應(yīng)用研究分析 張穎姣 安科瑞電氣股份有限公司?上海嘉定201801 摘要:分析了國內(nèi)外遠(yuǎn)程費控電能表的研究現(xiàn)狀。依據(jù)遠(yuǎn)程費控電能表的功能需求與參數(shù)要求,對遠(yuǎn)程費
    的頭像 發(fā)表于 02-20 15:39 ?316次閱讀
    淺談<b class='flag-5'>智能卡</b>遠(yuǎn)程費控電能表的設(shè)計與應(yīng)用研究分析

    電壓基準(zhǔn)芯片在電路的應(yīng)用

    端用一個可控電壓控制,能否實現(xiàn)端基準(zhǔn)電壓芯片正負(fù)極電壓改變?在這場合的應(yīng)用一般的電壓基準(zhǔn)芯片在電路原理和結(jié)構(gòu)上有什么不同?
    發(fā)表于 01-17 23:10

    RK3399芯片在消費產(chǎn)品的應(yīng)用及PCB設(shè)計關(guān)鍵注意事項

    RK3399芯片在消費產(chǎn)品的應(yīng)用逐漸成為一種趨勢。作為一款強(qiáng)大的嵌入式處理器,RK3399廣泛用于智能電視、智能音響、智能攝像頭等消費電子
    的頭像 發(fā)表于 11-17 07:40 ?777次閱讀
    RK3399<b class='flag-5'>芯片在</b>消費產(chǎn)品<b class='flag-5'>中</b>的應(yīng)用及PCB設(shè)計關(guān)鍵注意事項

    用于智能卡供電的集成式DC_DC轉(zhuǎn)換器設(shè)計

    電子發(fā)燒友網(wǎng)站提供《用于智能卡供電的集成式DC_DC轉(zhuǎn)換器設(shè)計.pdf》資料免費下載
    發(fā)表于 11-10 15:40 ?0次下載
    用于<b class='flag-5'>智能卡</b>供電的集成式DC_DC轉(zhuǎn)換器設(shè)計

    計算機(jī)智能卡登錄網(wǎng)絡(luò)版配置指導(dǎo)手冊

    計算機(jī)智能卡登錄系統(tǒng),依托Windows交互憑證登錄技術(shù),采用智能卡為載體,無須輸入用戶名和密碼,只要刷卡即可登錄操作系統(tǒng) ,適用于Win7和Win 10 Win11 軟件推薦安裝在D盤等非系統(tǒng)盤
    發(fā)表于 10-27 16:35 ?1次下載

    基于RTX51嵌入式多任務(wù)實時操作系統(tǒng)的智能卡電能表設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于RTX51嵌入式多任務(wù)實時操作系統(tǒng)的智能卡電能表設(shè)計.pdf》資料免費下載
    發(fā)表于 10-26 09:12 ?2次下載
    基于RTX51嵌入式多任務(wù)實時操作系統(tǒng)的<b class='flag-5'>智能卡</b>電能表設(shè)計