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

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

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

使用單片機(jī)實(shí)現(xiàn)智能卡接口控制器的設(shè)計(jì)資料說明

Wildesbeast ? 來源:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 作者:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 2020-10-06 18:08 ? 次閱讀

---智能卡(SmartCard)又稱集成電路卡(Integrated Circuit Card,即IC卡),將微電子技術(shù)和單片機(jī)技術(shù)結(jié)合在一起,具有高的可靠性、安全性和靈活性,其廣泛地應(yīng)用于電信、金融、交通及公共事業(yè)等領(lǐng)域。智能卡接口控制器是連接智能卡和主控設(shè)備的橋梁,是智能卡處理設(shè)備中的最重要組成部分之一。面對(duì)龐大的市場(chǎng)需求,各大芯片廠商都推出了各自的智能卡接口控制器芯片,例如,Philips的8007、Linear的LTC1755/6等。本文也提出一種實(shí)用的智能卡接口控制器的設(shè)計(jì)方案。

單片機(jī)智能卡設(shè)計(jì)的硬件結(jié)構(gòu)

讀寫器的硬件組成如圖1所示。包括電源、單片機(jī)系統(tǒng)、RS 232接口、IC卡讀寫接口、多路 時(shí)鐘系統(tǒng)和復(fù)位電路等幾個(gè)主要部分。

單片機(jī)系統(tǒng)由89C52CPU、三態(tài)地址鎖存器和靜態(tài)存貯器組成。89C52的P0口與三態(tài)地址鎖存 器形成地址總線的低8位,即A0~A7,以及數(shù)據(jù)總線D0~D7;89C52的P2.0~P2.6形成地址 總線的高8位,即A8~A12。靜態(tài)存貯器用于保存讀寫器運(yùn)行過程中預(yù)設(shè)的一系列軟件指令。串行接口用于實(shí)現(xiàn)讀寫器與用戶端設(shè)備,如PC機(jī)等之間的數(shù)據(jù)通信。在當(dāng)前系統(tǒng)中采用了一片MAX232,其中的RXD、TXD做為數(shù)據(jù)的I/O通道接CPU串行口,完成讀寫器CPU與外部間的數(shù)據(jù)交換。同時(shí),外部用戶端還可通過串口的RTS信號(hào)對(duì)IC卡讀寫器進(jìn)行軟件上的復(fù)位。

通用的智能卡多為異步型CPU卡,在其時(shí)鐘方面多需要不同的控制和發(fā)生體系。因此在讀寫 器中設(shè)置有專門的時(shí)鐘電路和時(shí)鐘控制電路,主要由74LS253雙四選一電路及D觸發(fā)器等組成 。晶振提供的脈沖經(jīng)分頻產(chǎn)生時(shí)鐘信號(hào)分別送到四選一電路輸入端。另外2個(gè)輸入端分別接地和T0(89C52CPU的T0引腳),T0信號(hào)通過軟件編程分頻后向IC卡提供時(shí)鐘信號(hào),時(shí)鐘頻率、脈沖寬度可由具體編程決定。四選一電路的選擇控制端分別接P1.0和P1.1、P1.0和P1.1,分別對(duì)應(yīng)于不同的頻率關(guān)系。

在讀寫器的硬件構(gòu)成上,還提供有上/下電控制電路。這部分電路用于控制對(duì)卡的上電和下 電操作,也就是提供對(duì)卡的電源開關(guān)控制。主要由89C52的P1.7、R3,R4和三極管Q2等組成開關(guān)電路來控制對(duì)卡的上/下電。當(dāng)需要給IC卡加電時(shí),通過預(yù)先設(shè)定的程序使P17置“0”,使Q2導(dǎo)通,VCC通過Q2將CVCC送至IC卡;當(dāng)I C卡下電時(shí),置P1.7為“1”使Q2截止,從而禁止向IC卡供電。詳細(xì)電路如圖2所示。

作為用戶與IC卡之間的交互平臺(tái),讀寫器需要分別建立與外部用戶和內(nèi)部IC卡之間的數(shù)據(jù)通 信體系。讀寫器中的IC卡接口即提供讀寫器與IC卡間進(jìn)行數(shù)據(jù)交換的通道。根據(jù)目前通用的IC卡接口標(biāo)準(zhǔn),與IC卡的接口基本上由8個(gè)信號(hào)組成:CLK時(shí)鐘、I/O數(shù)據(jù)、RST復(fù)位等,另外有3個(gè)NC信號(hào)供用戶自己定義。將他們分別與讀寫器中CPU接口線相連,再由CPU通過預(yù)設(shè)的軟件指令控制和實(shí)現(xiàn)與IC卡間的數(shù)據(jù)交換,如圖3所示。

3讀寫器的軟件體系

用戶以何種方式和過程使用讀寫器是讀寫器開發(fā)中的關(guān)鍵部分之一,其核心目標(biāo)是在設(shè)備硬件體系的基礎(chǔ)上,開發(fā)并提供一個(gè)使用戶能夠?qū)τ布M(jìn)行直接操作的軟件層,這個(gè)軟件層部分包括的主要是一系列的應(yīng)用協(xié)議和與其相配合的控制程序。在使用讀寫器的過程中,PC機(jī)或其他外部用戶系統(tǒng)必須遵循或借助于這些協(xié)議,才能夠與讀寫器內(nèi)部的控制程序正確互動(dòng)和協(xié)調(diào)一致,以實(shí)現(xiàn)對(duì)設(shè)備有效的使用。依據(jù)實(shí)際的應(yīng)用要求,該讀寫器的軟件體系主要包含以下幾個(gè)組成部分。

3.1對(duì)讀寫器的啟動(dòng)

用戶在開始使用讀寫器,也就是要求與讀寫器進(jìn)行數(shù)據(jù)通信前,首先需對(duì)設(shè)備進(jìn)行復(fù)位,使其加電啟動(dòng)系統(tǒng)并進(jìn)入待機(jī)狀態(tài)。

具體實(shí)施過程為PC機(jī)端首先通過已選擇好的串口,根據(jù)標(biāo)準(zhǔn)串口通信協(xié)議發(fā)送一個(gè)正脈沖至 讀寫器端的RTS引腳。同時(shí)在讀寫器中,為了使用戶(如PC機(jī))能夠驗(yàn)證設(shè)備的當(dāng)前復(fù)位狀態(tài),在讀寫器被正確復(fù)位后,其上的控制系統(tǒng)會(huì)發(fā)送一個(gè)第一響應(yīng)碼至用戶端,在用戶正確接收到后,需返回一個(gè)第二響應(yīng)碼至讀寫器,使讀寫器端與用戶端能夠相互確認(rèn)并建立起正確有效的通信體系。否則在用戶端需要繼續(xù)等待,讀寫器在一定限時(shí)內(nèi)會(huì)重發(fā)第一響應(yīng)碼。但如果用戶端長(zhǎng)時(shí)間未能收到正確數(shù)據(jù),此時(shí)重新進(jìn)行復(fù)位操作。

3.2通信“握手”

為保證數(shù)據(jù)通信過程的正確有效,使讀寫器保持較好的通信質(zhì)量,在協(xié)議中規(guī)定對(duì)用戶設(shè)備 與讀寫器間建立的通信信道的可靠性進(jìn)行實(shí)時(shí)的校驗(yàn)。即在對(duì)讀寫器進(jìn)行復(fù)位啟動(dòng)后,還需要在用戶端與讀寫器間進(jìn)行一個(gè)稱為通信“握手”的校驗(yàn)程序,目的在于檢驗(yàn)當(dāng)前通信信道的工作狀態(tài)是否正常。其具體內(nèi)容主要是對(duì)一組預(yù)定義的數(shù)據(jù),在用戶端與讀寫器之間進(jìn)行通信傳輸,通過驗(yàn)證通信結(jié)果是否符合預(yù)設(shè)的數(shù)據(jù)內(nèi)容,校驗(yàn)當(dāng)前通信信道是否正確可靠。通常為用戶發(fā)送第一響應(yīng)碼至讀寫器,讀寫器正確接收到則返回第二響應(yīng)碼至用戶端,而用戶端若正確接收到第二響應(yīng)碼則繼續(xù)下一步工作,否則等待讀寫器端重發(fā)數(shù)據(jù)。但如果在限時(shí)內(nèi)未收到正確的第二響應(yīng)碼數(shù)據(jù)則確認(rèn)為當(dāng)前通信出現(xiàn)異常,并提示系統(tǒng)報(bào)告當(dāng)前錯(cuò)誤情況。

3.3指令格式

讀寫器的用戶在與讀寫器進(jìn)行數(shù)據(jù)通信時(shí),根據(jù)智能卡應(yīng)用規(guī)范,用戶端都應(yīng)當(dāng)遵循一定的 格式組織和創(chuàng)建指令及提供所需的相關(guān)數(shù)據(jù),目前在讀寫器的控制與使用協(xié)議中定義并使用了以下的一種指令格式。

指令由5個(gè)基本字節(jié)組成:字節(jié)1:CLA,指令標(biāo)識(shí)符一;字節(jié)2:INS,指令標(biāo)識(shí)符二;字節(jié)3,4:P1和P2,指令參數(shù);字節(jié)5:LC,數(shù)據(jù)長(zhǎng)度。

用戶端依據(jù)這樣格式建立和發(fā)送指令序列至讀寫器,其中字節(jié)1和字節(jié)2形成一個(gè)二級(jí)的指令標(biāo)識(shí),說明當(dāng)前指令操作碼的含義;字節(jié)3和字節(jié)4提供一個(gè)參數(shù)空間,輔助說明指令操作碼;字節(jié)5說明當(dāng)前指令操作數(shù)的數(shù)據(jù)長(zhǎng)度,主要是針對(duì)于非定長(zhǎng)數(shù)據(jù)的通信傳輸過程。

3.4操作流程

在用戶實(shí)際使用讀寫器操作智能卡的過程中,絕大部分操作都是在完成一個(gè)由用戶端發(fā)送指令和數(shù)據(jù)至讀寫器,由讀寫器解釋執(zhí)行并轉(zhuǎn)發(fā)至智能卡,最后由智能卡端返回結(jié)果至讀寫器,讀寫器最終返回至用戶端的一個(gè)操作過程。因此也以他作為主要依據(jù)來規(guī)范相關(guān)的軟件協(xié)議,具體如下所示:

復(fù)位啟動(dòng)讀寫器協(xié)議要求中的第一步工作。

通信“握手”為確保通信過程的正確有效,用戶與讀寫器進(jìn)行數(shù)據(jù)通信 前都將要先進(jìn)行這一步工作。

發(fā)送指令用戶向讀寫器發(fā)送操作指令時(shí),指令組建必須要符合協(xié)議中的 規(guī)定格式。

發(fā)送數(shù)據(jù)對(duì)于含有操作數(shù)的指令,在送出指令碼后,還必須將相關(guān)的 數(shù)據(jù)送至讀寫器。

接收狀態(tài)碼讀寫器在接收到并執(zhí)行用戶指令后,會(huì)根據(jù)執(zhí)行結(jié)果的內(nèi)容返回執(zhí)行狀態(tài)碼和結(jié)果數(shù)據(jù)至PC機(jī),由此用戶可得到指令的執(zhí)行結(jié)果。

接收數(shù)據(jù)如果當(dāng)前用戶指令要求讀寫器提供結(jié)果數(shù)據(jù),讀寫器在返回執(zhí)行狀態(tài)碼后,需繼續(xù)送結(jié)果數(shù)據(jù)至PC機(jī)。根據(jù)協(xié)議,結(jié)果數(shù)據(jù)的長(zhǎng)度由指令碼中的LC字節(jié)說明。

4對(duì)智能卡的操作COS命令接口

讀寫器作為用戶端與IC卡間的操作平臺(tái),在接受用戶端控制與使用的同時(shí),還有一個(gè)重要的 功能就是實(shí)現(xiàn)對(duì)智能卡的操作。COS命令接口就是對(duì)智能卡操作的前端實(shí)現(xiàn)部分。通常在智能卡應(yīng)用當(dāng)中,智能卡本身都具備一個(gè)COS系統(tǒng),由他協(xié)調(diào)并控制卡上的所有指令和數(shù)據(jù)處理過程,讀寫器必須借助于COS系統(tǒng)才能夠?qū)崿F(xiàn)相應(yīng)的功能。COS命令接口做為讀寫器端的CO S數(shù)據(jù)通道直接影響到讀寫器對(duì)卡的操作。在這一部分協(xié)議中規(guī)定讀寫器向IC卡發(fā)送一組定制的指令數(shù)據(jù),IC卡接收到這組協(xié)議數(shù)據(jù)后,通過解釋這組指令數(shù)據(jù)的具體含義、形成操作指示,再進(jìn)一步轉(zhuǎn)換為讀、寫、比較、認(rèn)證及其他控制操作,然后將操作結(jié)果返回給接口設(shè)備,從而完成一次對(duì)卡的操作過程。讀寫器向卡發(fā)送的具有特定操作含義的數(shù)據(jù)塊就是對(duì)智能卡的操作命令;而從卡返回讀寫器的狀態(tài)及數(shù)據(jù)信息即為執(zhí)行結(jié)果。其詳細(xì)過程如圖4所示。

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631980
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177073
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210829
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    接口芯片控制器兩個(gè)智能卡參考設(shè)計(jì)

    接口芯片控制器兩個(gè)智能卡參考設(shè)計(jì)顯示LTC1955用于雙智能卡到RS232應(yīng)用,由單個(gè)鋰離子電池供電
    發(fā)表于 06-01 09:34

    支持智能卡和微控制器的NCN6001智能卡接口

    NCN6001DEMO / D,演示板使用NCN6001智能卡接口。 NCN6001是一種混合集成電路,旨在支持智能卡和微控制器之間的接口。
    發(fā)表于 08-14 09:34

    智能卡接口芯片ST8024相關(guān)資料下載

    概述:該ST8024是一個(gè)完整的低成本模擬接口異步3 V和5 V智能卡。它可以放置在和微控制器與極少的外部元件來執(zhí)行所有的電源保護(hù)和控制
    發(fā)表于 05-17 07:20

    基于單片機(jī)的預(yù)付費(fèi)智能卡水表軟時(shí)鐘結(jié)構(gòu)設(shè)計(jì)與分析

    本文介紹了預(yù)付費(fèi)智能卡水表的工作原理及其MPU MSP430F413 單片機(jī)和PCF8563時(shí)鐘芯片的功能及特性在水表中的應(yīng)用。詳細(xì)說明了利用匯編語(yǔ)言實(shí)現(xiàn)了定時(shí)1 秒鐘中斷功能 和實(shí)時(shí)
    發(fā)表于 06-18 09:28 ?44次下載

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

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

    基于AMBA總線的智能卡控制器設(shè)計(jì)

    基于AMBA總線的智能卡控制器設(shè)計(jì) 摘要:通過分析ISO/IEC 7816-3傳輸協(xié)議,設(shè)計(jì)該符合協(xié)議標(biāo)準(zhǔn)的接觸式智能卡控制器,實(shí)現(xiàn)對(duì)字符
    發(fā)表于 12-23 09:44 ?1035次閱讀
    基于AMBA總線的<b class='flag-5'>智能卡</b><b class='flag-5'>控制器</b>設(shè)計(jì)

    智能卡(CPU),什么是智能卡(CPU)

    智能卡(CPU),什么是智能卡(CPU) 智能卡又稱CPU。CPU
    發(fā)表于 04-02 13:36 ?3143次閱讀

    51單片機(jī)與SD接口設(shè)計(jì)

    介紹51單片機(jī)與SD接口設(shè)計(jì)原理,以及FAT32文件系統(tǒng)的設(shè)計(jì)和應(yīng)用程序控制SD讀寫操作的實(shí)現(xiàn)
    發(fā)表于 04-09 15:35 ?412次下載
    51<b class='flag-5'>單片機(jī)</b>與SD<b class='flag-5'>卡</b><b class='flag-5'>接口</b>設(shè)計(jì)

    基于80C51單片機(jī)智能PID控制器的設(shè)計(jì)與實(shí)現(xiàn)_吳占雄

    基于80C51單片機(jī)智能PID控制器的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 06-06 10:00 ?17次下載

    DMA控制器單片機(jī)接口技術(shù)

    在某些單片機(jī)應(yīng)用系統(tǒng)中,往往需要解決外部設(shè)備與存儲(chǔ)貯之間快速傳送數(shù)據(jù)的問題。為此,本文研究了DMA控制器8237與單片機(jī)8031的接口技術(shù)
    發(fā)表于 12-06 11:28 ?3270次閱讀
    DMA<b class='flag-5'>控制器</b>與<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>接口</b>技術(shù)

    HT66F4360智能卡讀卡Flash單片機(jī)

    該系列單片機(jī)是一款帶智能卡接口的A/D型具有8位高性能精簡(jiǎn)指令集的Flash單片機(jī),專門為需要與各類智能卡通信的產(chǎn)品而設(shè)計(jì)。它們具有一系列功
    發(fā)表于 04-26 15:33 ?2次下載

    AN4100 STM32F05xx微控制器智能卡接口設(shè)計(jì)

    AN4100 STM32F05xx微控制器智能卡接口設(shè)計(jì)
    發(fā)表于 11-24 08:32 ?2次下載
    AN4100 STM32F05xx微<b class='flag-5'>控制器</b>的<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>設(shè)計(jì)

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

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

    使用STM32F05xx微控制器設(shè)計(jì)智能卡接口

    電子發(fā)燒友網(wǎng)站提供《使用STM32F05xx微控制器設(shè)計(jì)智能卡接口.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 14:49 ?0次下載
    使用STM32F05xx微<b class='flag-5'>控制器</b>設(shè)計(jì)<b class='flag-5'>智能卡</b><b class='flag-5'>接口</b>