999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2012-08-27 08:32:52楊勝姚王鵬武宏偉劉金福
單片機與嵌入式系統應用 2012年12期
關鍵詞:指令

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

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

引 言

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

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

1 智能卡操作流程簡介

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

圖1 復位操作流程圖

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

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

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

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

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

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

2 智能卡接口IP核的設計與實現

2.1 UART核分析

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

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

圖3 UART結構和主要信號連接圖

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

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

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

2.2 智能卡接口IP核結構設計

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

智能卡操作過程中,接收的數據和發送的指令都需要暫存在IP核內,因此要在UART 核上增加發送和接收緩沖。除此之外,還需要增加協議處理模塊用于操作過程中的判斷和交互,增加收發切換模塊實現異步半雙工的切換,增加發送控制模塊用于發送不同的數據。基于UART 核的智能卡接口IP核結構如圖4所示。

圖4 基于UART核的智能卡接口IP核結構

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

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

發送控制根據協議處理中的狀態和命令,發送不同的指令到智能卡中。

2.3 協議處理的實現

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

圖5 協議處理狀態轉換圖

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

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

接收定長數據狀態:根據前一狀態的設置,等待接收固定個數的數據,當接收到設定個數的數據時,向CPU 發送中斷請求并跳轉到空閑狀態。

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

收到0x61狀態:接收1字節數據為0x61時進入該狀態,在該狀態下等待接收1字節數據并將該數據加到00 C0 00 00后一起發送,同時回到接收1字節狀態。

收到0x6c狀態:與收到0x61過程基本一樣,將接收到的數據加到CLA INS P1P2后面發送。

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

2.4 智能卡接口IP核的實現

由于篇幅有限,本文只介紹狀態轉換和指令的實現方法。

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

表2 狀態變量對應關系

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

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

3 仿真與實際測試

3.1 Modelsim 仿真分析

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

3.1.1 復位操作仿真

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

圖6 復位操作Modelsim 仿真圖

圖6中,收到01 01指令后,IP 核清空發送緩沖(tx_buf_clr=1),使IC卡復位(ic_reset=0),并跳轉到復位狀態(state=5)。由圖中可以看出,IP核接收到2字節后計算出回復的總長度為18,狀態變為接收定長數據狀態(state=4)。當接收到的數據個數達到設定長度時(rx_buf_len=18),向CPU 申請中斷(irq=1),同時回到空閑狀態(state=0)。

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

3.1.2 取隨機數操作仿真

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

圖7 取隨機數操作Modelsim 仿真圖

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

由仿真看出,取隨機數據操作時序正確。

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;

④初始化加密認證;

⑤取認證碼;

⑥取隨機數。

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

由此驗證,該IP核設計正確,運行穩定。

結 語

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

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

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

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

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

[5]陳峰,尹寒.CPU 卡的接口特性、傳輸協議與讀寫程序設計[J].單片機與嵌入式系統應用,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.

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 久久国语对白| 国产美女自慰在线观看| 一区二区无码在线视频| 国产在线精品美女观看| 欧美在线视频不卡第一页| 亚洲综合极品香蕉久久网| 精品一区二区三区中文字幕| 亚洲乱强伦| 国产精品林美惠子在线播放| 69av免费视频| 亚洲另类色| 超碰aⅴ人人做人人爽欧美| 成人精品午夜福利在线播放| 国产人成在线观看| 免费女人18毛片a级毛片视频| 华人在线亚洲欧美精品| 亚洲日韩精品无码专区97| 欧美在线天堂| 亚洲Av激情网五月天| 亚洲欧洲日韩久久狠狠爱| 欧洲成人免费视频| 视频一本大道香蕉久在线播放| 久久特级毛片| 波多野结衣中文字幕一区| 国产成人福利在线视老湿机| 国产性生大片免费观看性欧美| 欧美a在线| 中文无码日韩精品| 精品人妻无码中字系列| 成年看免费观看视频拍拍| 97狠狠操| 日韩精品高清自在线| 久久一日本道色综合久久| 亚洲AV色香蕉一区二区| 人妻精品全国免费视频| 欧美精品成人| 夜夜高潮夜夜爽国产伦精品| 亚洲人人视频| 最新国产午夜精品视频成人| 国产精品午夜福利麻豆| 国产精品久线在线观看| 尤物国产在线| 国产精品开放后亚洲| 亚洲中文字幕av无码区| 在线观看欧美国产| 亚洲最大在线观看| 亚洲天堂在线视频| 国产成人精品无码一区二 | 日韩A级毛片一区二区三区| 香蕉99国内自产自拍视频| 欧美天堂在线| 伊人91在线| www欧美在线观看| 欧美全免费aaaaaa特黄在线| 男人的天堂久久精品激情| 国产成人av一区二区三区| 无码日韩视频| 国产日产欧美精品| 人人爽人人爽人人片| 日本一区二区三区精品AⅤ| 亚洲欧美日韩成人在线| 国产噜噜在线视频观看| 国产成人一区二区| 亚洲欧美日韩成人在线| 免费一级毛片不卡在线播放| 人妻少妇乱子伦精品无码专区毛片| 国产91在线免费视频| 五月婷婷丁香综合| 欧美影院久久| 美女潮喷出白浆在线观看视频| 狠狠干综合| 日韩欧美国产中文| 91无码视频在线观看| 国产美女自慰在线观看| 亚洲精品天堂自在久久77| 人妖无码第一页| 精品欧美日韩国产日漫一区不卡| 欧美国产综合色视频| 久久国产精品无码hdav| 特级aaaaaaaaa毛片免费视频| 亚国产欧美在线人成| 亚洲精品无码不卡在线播放|