亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于UART的智能卡接口IP核設計

        2012-08-27 08:32:52楊勝姚王鵬武宏偉劉金福
        關鍵詞:智能卡空閑字節(jié)

        楊勝姚,王鵬,武宏偉,劉金福

        (北京萬集科技股份有限公司,北京100085)

        引 言

        智能卡以其安全、靈活、通用等特點,被廣泛應用在金融、交通以及其他安全終端設備上[1]。目前許多讀卡器都采用單片機來實現(xiàn),而在一些特殊應用中,同時需要多張甚至10張以上的智能卡。由于卡片嚴格的時序要求[2],僅用單片機已經(jīng)很難實現(xiàn)多卡的并行操作。FPGA 具有硬件并行性和可編程等優(yōu)點,很容易實現(xiàn)并行且對時序邏輯要求較高的操作,同時IP核的應用又給基于FPGA 的開發(fā)帶來了極大的便利,能減少大量開發(fā)時間[3-4]。

        本文首先介紹了智能卡的基本規(guī)范,著重分析字符傳輸協(xié)議(T=0)的操作流程。然后分析了Altera公司提供的UART IP核的結(jié)構(gòu),在此基礎上給出了智能卡接口IP核的設計,并結(jié)合智能卡的操作流程,給出了傳輸協(xié)議的狀態(tài)轉(zhuǎn)換圖以及實現(xiàn)方法。最后對IP核進行仿真分析和實際測試。

        1 智能卡操作流程簡介

        智能卡是IC卡的一種,帶有微處理器、存儲單元以及芯片操作系統(tǒng),不僅具有數(shù)據(jù)存儲功能,同時還具有命令處理和數(shù)據(jù)安全保護等功能[5]。智能卡采用異步半雙工通信方式,其傳輸協(xié)議分為字符傳輸協(xié)議(T=0)和塊傳輸協(xié)議(T=1)[2]。本文重點討論字符傳輸協(xié)議(T=0),它是目前使用較廣泛的通信協(xié)議。

        圖1 復位操作流程圖

        智能卡主要有復位操作和指令操作。復位操作是將智能卡的復位引腳拉低若干周期,拉高后智能卡回復1 個數(shù)據(jù)幀,提供了協(xié)議選擇、時鐘轉(zhuǎn)換因子、波特率調(diào)整因子等參數(shù),可供后續(xù)操作使用。該幀的長度在第2個字節(jié)中體現(xiàn),因此先接收2個字節(jié),再接收固定長度的數(shù)據(jù),操作流程圖如圖1所示。

        T=0時,指令操作主要有4種情況,如表1所列[2]。

        表1 T=0命令的4種情況

        根據(jù)中國金融集成電路(IC)卡規(guī)范的規(guī)定,可在情況1后面補0,組成5 字節(jié)指令。這時,4 種情況都可歸納為:發(fā)送前5字節(jié),等待接收1字節(jié)回復,由回復決定后續(xù)的操作。

        1字節(jié)的回復分為過程字節(jié)和狀態(tài)字節(jié)兩類,過程字節(jié)主要有INS(或INS補碼)、60、61、6C;除過程字節(jié)以外的其他回復都屬于狀態(tài)字節(jié)。收到過程字節(jié)后須執(zhí)行對應操作。接收到狀態(tài)字節(jié)后須再等待接收1字節(jié)狀態(tài)回復,將兩個狀態(tài)字節(jié)上傳給控制器,終止本次操作。T=0時的指令操作流程圖如圖2所示。

        圖2 T=0時的指令操作流程圖

        2 智能卡接口IP核的設計與實現(xiàn)

        2.1 UART核分析

        UART 接口已經(jīng)很成熟,已有許多現(xiàn)成的IP核可使用,利用UART 進行智能卡接口IP核的設計可減少大量的開發(fā)時間。本文以Altera公司的Avalon總線接口的UART 核[6-7](下文中所有UART 核均指該核)為基礎進行設計。

        UART 核主要有三大模塊:發(fā)送模塊(TX)、接收模塊(RX)、寄存器模塊(REG)。與CPU 連接端為Avalon總線接口,與外部連接端為txd和rxd。其主要結(jié)構(gòu)和信號連接如圖3所示。

        圖3 UART結(jié)構(gòu)和主要信號連接圖

        REG 模塊通過tx_wr_strobe把數(shù)據(jù)tx_data寫到TX模塊中,TX模塊按照設定的波特率往txd串行發(fā)送數(shù)據(jù),同時把發(fā)送寄存器和發(fā)送移位寄存器的狀態(tài)通過tx_ready和tx_shift_empty傳回REG 模塊。

        RX模塊根據(jù)設定的波特率對rxd進行采樣接收,當接收到1字節(jié)有效數(shù)據(jù)時置rx_char_ready有效,REG 模塊通過rx_rd_strobe讀取接收的數(shù)據(jù)。

        REG 模塊中包含控制寄存器、狀態(tài)寄存器、波特率寄存器、數(shù)據(jù)寄存器,還包含Avalon總線接口邏輯以及各種寄存器的操作邏輯。

        2.2 智能卡接口IP核結(jié)構(gòu)設計

        智能卡的引腳有電源、地、復位、時鐘、數(shù)據(jù),其中只有復位和數(shù)據(jù)線與操作有關,因此在IP核中只需要復位線和數(shù)據(jù)線。

        智能卡操作過程中,接收的數(shù)據(jù)和發(fā)送的指令都需要暫存在IP核內(nèi),因此要在UART 核上增加發(fā)送和接收緩沖。除此之外,還需要增加協(xié)議處理模塊用于操作過程中的判斷和交互,增加收發(fā)切換模塊實現(xiàn)異步半雙工的切換,增加發(fā)送控制模塊用于發(fā)送不同的數(shù)據(jù)?;赨ART 核的智能卡接口IP核結(jié)構(gòu)如圖4所示。

        圖4 基于UART核的智能卡接口IP核結(jié)構(gòu)

        圖4中,保留UART 的RX和TX 模塊不變,在REG模塊中增加了RX_BUF、TX_BUF、緩沖區(qū)長度寄存器,還增加了清緩沖區(qū)等功能。

        在UART 核的基礎上增加協(xié)議處理模塊,它是操作智能卡的核心。協(xié)議處理模塊從RX 模塊直接截取數(shù)據(jù)并處理,根據(jù)流程進行各種操作。協(xié)議處理模塊可以清除接收緩沖區(qū)中的過程數(shù)據(jù)、清除無效的發(fā)送指令,協(xié)議處理模塊還控制收發(fā)的切換、控制發(fā)送指令、控制IC 卡復位。

        發(fā)送控制根據(jù)協(xié)議處理中的狀態(tài)和命令,發(fā)送不同的指令到智能卡中。

        2.3 協(xié)議處理的實現(xiàn)

        在圖4中,協(xié)議處理模塊是實現(xiàn)CPU 與智能卡交互的關鍵,本文采用狀態(tài)轉(zhuǎn)換的方法來實現(xiàn)。根據(jù)復位操作(圖1)和指令操作(圖2)的流程,可將智能卡的操作總結(jié)為7種狀態(tài):空閑狀態(tài)、復位狀態(tài)、接收1字節(jié)狀態(tài)、接收定長數(shù)據(jù)狀態(tài)、收到0x61 狀態(tài)、收到0x6c狀態(tài)、其他狀態(tài)。狀態(tài)轉(zhuǎn)換的主要條件是接收到特定的數(shù)據(jù)或接收到特定個數(shù)的數(shù)據(jù),輔助條件是當前的狀態(tài)和其他參數(shù)。狀態(tài)轉(zhuǎn)換圖如圖5所示。

        圖5 協(xié)議處理狀態(tài)轉(zhuǎn)換圖

        空閑狀態(tài):剛上電或無操作時處于空閑狀態(tài),IP核等待CPU 的命令。

        復位狀態(tài):在空閑狀態(tài)下收到復位命令后,復位智能卡并進入復位狀態(tài),等待接收數(shù)據(jù)。根據(jù)前2字節(jié)的回復設置接收數(shù)據(jù)長度,然后進入接收定長數(shù)據(jù)狀態(tài)。

        接收定長數(shù)據(jù)狀態(tài):根據(jù)前一狀態(tài)的設置,等待接收固定個數(shù)的數(shù)據(jù),當接收到設定個數(shù)的數(shù)據(jù)時,向CPU 發(fā)送中斷請求并跳轉(zhuǎn)到空閑狀態(tài)。

        接收1字節(jié)狀態(tài):在空閑狀態(tài)下當有效指令操作下發(fā)時,發(fā)送5字節(jié)命令頭,進入接收1字節(jié)狀態(tài)。在該狀態(tài)下,收到0x60則不進行任何處理;收到INS時需判斷LC,若LC不為0則發(fā)送剩余指令,若LC 為0則設置接收長度進入到接收定長數(shù)據(jù)狀態(tài);接收到0x61或0x6c則分別進入到相應狀態(tài);接收到其他回復則設置固定接收長度為2,并進入接收定長數(shù)據(jù)狀態(tài)。

        收到0x61狀態(tài):接收1字節(jié)數(shù)據(jù)為0x61時進入該狀態(tài),在該狀態(tài)下等待接收1字節(jié)數(shù)據(jù)并將該數(shù)據(jù)加到00 C0 00 00后一起發(fā)送,同時回到接收1字節(jié)狀態(tài)。

        收到0x6c狀態(tài):與收到0x61過程基本一樣,將接收到的數(shù)據(jù)加到CLA INS P1P2后面發(fā)送。

        設計時,在非空閑狀態(tài)下設定超時計數(shù)器,計數(shù)器溢出后無條件返回到空閑狀態(tài),同時清除接收和發(fā)送緩沖,表示本次操作失敗。另外,所有的過程字節(jié)在狀態(tài)處理時都被清除。

        2.4 智能卡接口IP核的實現(xiàn)

        由于篇幅有限,本文只介紹狀態(tài)轉(zhuǎn)換和指令的實現(xiàn)方法。

        用變量state表示當前的狀態(tài),有效值為0~5,其他值均為無效狀態(tài),在無效狀態(tài)下將直接跳轉(zhuǎn)到空閑狀態(tài)。狀態(tài)與state的對應關系如表2所列。

        表2 狀態(tài)變量對應關系

        本文所使用的收發(fā)緩沖模塊為SCFIFO[8],所有下發(fā)指令都先寫入到發(fā)送FIFO,所有接收的數(shù)據(jù)都進入到接收FIFO。

        表1中,4種指令長度都大于4,為實現(xiàn)復位操作,定義復位指令長度為1。實現(xiàn)時,為便于判斷指令,在指令之前先將指令長度寫到發(fā)送FIFO 中。定義復位操作指令為01 01,其他操作指令為LEN(指令長度)+CMD(指令本身)。IP核先取出指令長度,當FIFO 數(shù)據(jù)達到該長度時表示一個完整的指令已經(jīng)下發(fā),這時才可對智能卡進行操作。

        3 仿真與實際測試

        3.1 Modelsim 仿真分析

        為驗證智能卡接口IP核的正確性,在Modelsim ASE 6.6d上進行了仿真分析。仿真時,測試程序模擬CPU 向IP核發(fā)送指令,同時模擬智能卡給IP核回復數(shù)據(jù)。

        3.1.1 復位操作仿真

        測試程序模塊CPU 向發(fā)送緩沖區(qū)寫復位指令01 01,再模擬智能卡回復3b7d94 00 00 57 44 37 51 90 86 93 85 3e97 06 2e24(數(shù)據(jù)來源于實際PSAM 卡)。圖6是復位操作的Modelsim 仿真圖。

        圖6 復位操作Modelsim 仿真圖

        圖6中,收到01 01指令后,IP 核清空發(fā)送緩沖(tx_buf_clr=1),使IC卡復位(ic_reset=0),并跳轉(zhuǎn)到復位狀態(tài)(state=5)。由圖中可以看出,IP核接收到2字節(jié)后計算出回復的總長度為18,狀態(tài)變?yōu)榻邮斩ㄩL數(shù)據(jù)狀態(tài)(state=4)。當接收到的數(shù)據(jù)個數(shù)達到設定長度時(rx_buf_len=18),向CPU 申請中斷(irq=1),同時回到空閑狀態(tài)(state=0)。

        由仿真看出,復位操作時序正確。

        3.1.2 取隨機數(shù)操作仿真

        測試程序模擬CPU 向發(fā)送緩沖區(qū)寫取隨機數(shù)指令05 00 84 00 00 08,再模擬智能卡回復84 11 22 33 44 55 66 77 88 90 00(8字節(jié)隨機數(shù)任意填寫)。圖7是取隨機數(shù)操作的Modelsim 仿真圖。

        圖7 取隨機數(shù)操作Modelsim 仿真圖

        圖7中,取隨機數(shù)指令下發(fā)后,IP核將數(shù)據(jù)線切換為發(fā)送(t_r_sel=0),發(fā)送指令并跳轉(zhuǎn)到接收1 字節(jié)狀態(tài)(state=1)。當?shù)?個字節(jié)等于INS(84)且LC=0時,清空接收緩沖區(qū)中的過程響應(rx_buf_clr=1),設置接收長度為10(rx_const_len=0a),跳轉(zhuǎn)到接收定長數(shù)據(jù)狀態(tài)(state=4)。當接收到10個數(shù)據(jù)(rx_buf_len=00a)后跳轉(zhuǎn)到空閑狀態(tài),同時向CPU 申請中斷(irq=1)。

        由仿真看出,取隨機數(shù)據(jù)操作時序正確。

        3.2 實際測試

        對本文設計的IP核進行了實際測試。采用Altera公司的Nios II CPU 作為控制器,EP3C40F484I7N 為FPGA芯片,用10 張PSAM 卡作為測試的IC 卡,CPU 時鐘為88.473 6 MHz,PSAM 時鐘為5.529 6 MHz。

        測試操作過程為:

        ①返回根目錄3f00;

        ②取PSAM 卡序列號;

        ③進入文件目錄df01;

        ④初始化加密認證;

        ⑤取認證碼;

        ⑥取隨機數(shù)。

        6個操作為1輪,每秒對10張PSAM 卡進行一輪測試。共測了201 803輪,耗時20 908s,平均每秒9.65輪,所有操作全部成功。

        由此驗證,該IP核設計正確,運行穩(wěn)定。

        結(jié) 語

        本文分析了UART 核與智能卡接口的結(jié)構(gòu),對T=0時的操作進行歸納,設計出基于UART 的智能卡接口IP核。由于不需要重新設計UART 的接收、發(fā)送以及相關寄存器等功能,使開發(fā)周期縮短了至少一半。將該IP核用在多卡系統(tǒng)中,能大量減輕CPU 的負擔,提高CPU 的效率。

        [1]蔣曉華,黃光周,于繼榮.基于ISO7816-3標準的智能卡接口控制器的設計[J].今日電子,2005(2):62-63.

        [2]中國人民銀行.中國金融集成電路(IC)卡規(guī)范2.0,2005.

        [3]李蘭黃.Nios II嵌入式軟核——SOPC 設計原理及應用[M].北京:北京航空航天大學出版社,2006.

        [4]王剛,張瀲.基于FPGA 的SOPC 嵌入式系統(tǒng)設計與典型實例[M].北京:電子工業(yè)出版社,2009.

        [5]陳峰,尹寒.CPU 卡的接口特性、傳輸協(xié)議與讀寫程序設計[J].單片機與嵌入式系統(tǒng)應用,2002(3):17-20.

        [6]Altera Corporation.Avalon Interface Specifications,2011.

        [7]Altera Corporation.Embedded Peripherals IP User Guide,2010.

        [8]Altera Corporation.SCFIFO and DCFIFO Megafunctions User Guide,2010.

        猜你喜歡
        智能卡空閑字節(jié)
        恩賜
        詩選刊(2023年7期)2023-07-21 07:03:38
        No.8 字節(jié)跳動將推出獨立出口電商APP
        東方磁卡李曉東:進擊的智能卡研發(fā)巨子
        時代人物(2019年27期)2019-10-23 06:11:58
        “鳥”字謎
        小讀者之友(2019年9期)2019-09-10 07:22:44
        No.10 “字節(jié)跳動手機”要來了?
        彪悍的“寵”生,不需要解釋
        基于STC89 單片機的非接觸智能卡讀寫機設計
        電子制作(2017年17期)2017-12-18 06:40:36
        簡談MC7字節(jié)碼
        WLAN和LTE交通規(guī)則
        CHIP新電腦(2016年3期)2016-03-10 14:09:48
        臨沂機頂盒智能卡升級方案介紹
        99久久精品国产成人综合| 日本午夜理论片在线观看| 帅小伙自慰videogay男男| a级毛片在线观看| 精品久久久久久久久久中文字幕 | 自拍 另类 综合 欧美小说| 少妇一区二区三区乱码| av网站在线观看亚洲国产| 亚洲精品夜夜夜妓女网| 精品88久久久久88久久久| 国产一区二区三区视频大全| 91亚洲国产成人精品一区.| 玩弄丰满奶水的女邻居 | 一区二区激情偷拍老牛视频av| 日韩 无码 偷拍 中文字幕| 少妇高潮无套内谢麻豆传 | 久久国产加勒比精品无码| 乱中年女人伦av| av网站影片在线观看| 亚洲不卡高清av网站| 曰本大码熟中文字幕| 亚洲尺码电影av久久| h动漫尤物视频| 国产饥渴的富婆一凶二区 | 人妻无码一区二区三区四区| 日本老年人精品久久中文字幕| 日韩精品一区二区三区人妻在线| 亚洲无线码一区二区三区| 国产尤物精品自在拍视频首页 | 美日韩毛片| 国产精品视频一区二区三区,| 日本不卡视频一区二区三区| 亚洲中文字幕无码天然素人在线| 漂亮人妻被黑人久久精品| 亚洲国产精品一区二区第一| 人妻中文字幕在线中文字幕| 日本大乳高潮视频在线观看| 丰满多毛少妇做爰视频| 91蜜桃国产成人精品区在线| 97成人精品国语自产拍| a人片在线观看苍苍影院|