《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的智能卡控制器的實現
基于FPGA的智能卡控制器的實現
來源:微型機與應用2013年第1期
馬 峰,徐和根,趙 曼
(同濟大學 電子與信息工程學院,上海201804)
摘要: 嘗試在FPGA上實現對IC卡的控制,運用EDK中的IP開發工具生成一個智能卡控制器的IP核,用以實現對IC卡的硬件控制。
關鍵詞: FPGA IC卡 IP SPARTAN-3A
Abstract:
Key words :

摘  要: 嘗試在FPGA上實現對IC卡的控制,運用EDK中的IP開發工具生成一個智能卡控制器的IP核,用以實現對IC卡的硬件控制。
關鍵詞: IC卡;IP;FPGA

 智能卡(Smart Card)又稱集成電路卡(Integrated Circuit Card),即IC卡,目前大量使用的交通卡、門禁卡、銀行支付卡等都是智能卡。智能卡接口控制器是連接智能卡和主控設備的橋梁,是智能卡處理設備中的最重要組成部分之一。面對巨大的市場需求,越來越多的公司、科研機構都在研究此類控制器。
 FPGA具有可重構性、開發周期短以及開發流程簡單等優點,越來越多的工程師選擇將FPGA作為工程設計的首選。由于其內嵌微處理器,FPGA在嵌入式方面也獲得了大量的運用。此外,為縮短產品面市時間,FPGA廠商還會提供多種知識產權(IP)核。這類IP核可以作為功能模塊運用在不同的設計中,方便了各種開發的推進。本文嘗試在EDK中開發一個新的IP核,其功能就是實現對IC卡的接口控制。
1 用卡過程
 正常的用卡過程可劃分為幾個階段:(1)將IC卡插入到接口設備IFD(Interface Device),并接通各觸點;(2)對IC卡進行復位,在終端和IC卡間建立通信;(3)執行交易;(4)釋放觸點并取出IC卡。
2 字符的物理傳送
 交易過程中,數據以異步半雙工方式經I/O線在終端和IC卡之間雙向傳送。由終端向IC卡提供時鐘信號,并以此來控制交易的時序。
數據在I/O線上以字符幀傳送,一個字符幀包含著10個相連的數位:1 bit狀態為低(L)的起始位、8 bit組成的數據字節和1 bit偶校驗位,如圖1所示。

 Input AFIFO接收來自總線的命令、地址和數據等,依次存儲在FIFO中(深度為16 bit),Device Controller則讀取該FIFO中數據,并進行相應的操作。
  Output AFIFO用于接收Device(智能卡)返回的數據,并將其傳輸給總線。
  Output Latch的作用是進行狀態緩存與命令緩存,主要是為了滿足相關時序的要求。
  Device Controller是設計的核心環節,它主要有以下功能特征:
 (1)參數的傳遞以及協議的設定;
 (2)時鐘頻率的轉換;
 (3)功能的激活;
 (4)時鐘的停止;
 (5)功能的釋放;
 (6)復位;
 (7)應用協議數據單元APDU(Application Protocol Data Unit)傳送;
 (8)PPS交換。
  該模塊通過PLB接收來自CPU(即Microblaze)的數據,并將它們轉換成串行信號。智能卡(Device)接收這些串行信號,并作出相應的響應。CPU通過PLB總線讀取這些響應。其中,協議的選定是通過軟件來實現的,而且Device Controller的參數傳輸也是通過軟件來實現的。
根據該模塊的主要功能特征,將該模塊細化成以下幾個小的模塊。
 (1)狀態機模塊:用于對通信狀態過程的轉換;
 (2)計數器模塊:用于發送或接收數據的位數計算;
 (3)時鐘分頻模塊:產生合適的時鐘頻率,用于與智能卡的通信;
 (4)信號接口模塊:接收并解碼總線數據(命令、地址和數據);
 (5)數據接收模塊:用于接收Device發送的數據,并封裝成32 bit格式。
3.2 IP核的頂層模塊
 控制器的頂層模塊的結構圖如圖3所示。

 在這個控制模塊中,有6個輸入信號是本控制器接收來自主控制器(Microblaze)的信號,分別為總線時鐘信號Bus2IP_Clk、總線復位信號Bus2IP_Reset、數據信號Bus2IP_Data、總線選擇信號Bus2IP_BE、總線讀使能信號Bus2IP_RdCE以及總線寫使能信號Bus2IP_WrCE。5個信號用于本控制器發送響應給主控制器(Microblaze),分別為IP發送數據信號IP2Bus_Data、IP讀響應信號IP2Bus_RdAck、IP寫響應信號IP2Bus_WrAck、IP報錯信號IP2Bus_Error以及IP中斷信號IP2Bus_IntrEvent。還有6個信號用于本控制器與智能卡之間的通信,分別為輸出給智能卡的時鐘信號SCID2SC_CLK、復位信號SCID2SC_RST、電壓信號SCID2SC_VPP、接收智能卡返回值SCID2SC_IO_I、輸出信號給智能卡SCID2SC_IO_O、輸入輸出選擇信號SCID2SC_IO_T。在時鐘頻率的選擇上,由于Spartan-3A的工作頻率是62.5 MHz,因此Bus2IP_Clk采用的是62.5 MHz,而智能卡在這樣的高頻下則無法有效工作,因此通過DCM來實現分頻,最終選取IP_CLK的頻率為33.25 MHz。
3.3 控制器的工作流程
 當此控制器IP核接收到來自總線的命令后,就將開始工作,實現對智能卡的接口控制,其工作的狀態轉換如圖4所示。

 上電后,該控制器開始處于起始狀態(INITIAL),當接收到來自總線的信號后,信號接收模塊便會識別信號中的命令。當命令為CMD_ACT、CMD_RST、CMD_ATR時,則開始工作;否則,繼續處于起始狀態。
開始工作后,首先進入到SIGNAL_ST_CLK狀態,在這個狀態里,時鐘生成模塊開始工作,它將產生一個需要的時鐘頻率,作為控制器與智能卡進行通信的工作頻率。接著就要對智能卡進行第一次復位(冷復位),即進入到SIGNAL_ST_RST狀態,復位后進入SIGNAL_ST_ATR狀態(ATR為復位應答),等待來自智能卡的返回信息。當智能卡發送信號有效時,進入到SIGNAL_ST_GET狀態,接收來自智能卡的響應。如果返回值正確,則將進入空閑狀態(IDLE),等待下一命令。如果返回值不正確,則需要智能卡重新發送,并重新進入到SIGNAL_ST_GET狀態。
 在IDLE狀態下,控制器會根據總線后續的命令來進行操作,在本設計中主要是發送CMD_ATR、CMD_APDU和CMD_PPS命令,其過程是對智能卡進行數據的發送。首先進入到SIGNAL_ST_SEND狀態,每發完一組數據(10 bit)后,都會對這組數據進行檢查,即進入SIGNAL_ST_CHECK狀態。
 當所有操作命令都完成,就需要對此狀態機進行釋放,進入SIGNAL_ST_DACT狀態。釋放過程分為3步:首先對智能卡進行復位操作,然后要停止向智能卡輸出時鐘信號,最后將控制器對智能卡的輸出信號拉低。至此,本次狀態轉換就結束了,對智能卡的一次控制也就完成了。
4 FPGA的實現
 在ISE 12.4開發環境中新建一個SmartCard控制器的工程,并添加EDK開發模塊,運用其IP生成功能來生成一個智能卡的控制IP核iso7816_intf_dev,輸入相應的Verilog HDL代碼,并將生成的IP添加到EDK系統中。整個EDK系統的工作平臺如圖5所示。

 

 

 只需在將此工程生成相應的比特流,并下載到FPGA開發板上,就可以對智能卡進行控制操作了。
為了在硬件上實現該控制器的功能,選用Xilinx公司的Spartan-3A系列XC3S700A-4FG484開發板來實現該控制器。其內部消耗資源概況如圖6所示。
 最后,借助于Xilinx的SDK對該控制器進行測試。在SDK中,可以運用函數Xil_Out32或者Xil_In32來進行數據的發送與接收。

 Xil_Out32(Base_Address+Offset,command/data),Xil_In32(Base_Address+Offset)。
驗證此IP核能否正常工作,主要需要驗證ATR、APDU和PPS這3個命令是否能夠正確地發送并接收正確的響應。由于這3個命令的發送與接收都是運用同樣的函數,只是命令符與地址不同,因此只列出ATR的測試情況。
 運用下面的函數向對應的地址發送命令:
 Xil_Out32(0xcce00004,0x03000003);
 Xil_Out32(0xcce00000,0x00000101)。
 運用下面的函數接收來自智能卡的響應:
 fpireg0=Xil_In32(0xcce0001c);
 xil_printf("data0:%x\r\n",fpireg0)。
 智能卡對此命令的響應如下,它返回12個字符:3B,19,96,00,21,02,00,00,00,FF,90,00。
這些響應是符合此類智能卡的響應規定,因此,該IP核對于ATR功能是正確的。
利用同樣的驗證方法可以看出,該IP核對于APDU以及PPS等命令的響應都是完全正確的。
經驗證,本方案所設計的智能卡控制器是可行的。在進行嵌入式設計時,可以將該IP核直接添加到相關的EDK工程中去,從而減少了設計的復雜度。但是本設計還只是局限于將IP核運用在FPGA上,以后需要繼續研究,能夠將該IP核通用化,這樣就可以添加到任何目標系統中去,方便SoC的設計,這將是今后研究的重點所在。
參考文獻
[1] International Standard ISO/IEC 7816-3[S].
[2] Xilinx公司. Spartan-3 FPGA Family Data Sheet[Z].
[3] Xilinx公司. Spartan-3 Starter Kit Board User Guide[Z].
[4] 夏宇聞,甘偉.Verilog HDL入門[M].北京:北京航空航天大學出版社,2008.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区不卡在线视频 午夜欧美不卡在 | 久久久国产精品一区二区三区| 日韩一区二区免费高清| 亚洲国产综合在线看不卡| 欧美淫片网站| 久久国产精品久久久| 亚洲欧美日韩国产一区| 亚洲在线网站| 亚洲欧美伊人| 午夜免费日韩视频| 欧美一区91| 久久成人av少妇免费| 久久精品99国产精品| 久久精品人人做人人爽电影蜜月| 欧美一区二区三区四区高清| 欧美一区二区视频免费观看| 欧美一区二区三区久久精品茉莉花| 性欧美xxxx大乳国产app| 亚洲欧美制服另类日韩| 午夜视黄欧洲亚洲| 久久精品首页| 亚洲日本aⅴ片在线观看香蕉| 亚洲人成在线观看| 99精品视频免费| 亚洲视频在线观看一区| 亚洲午夜精品国产| 午夜亚洲福利在线老司机| 欧美在线高清| 可以看av的网站久久看| 欧美高清日韩| 欧美日一区二区三区在线观看国产免 | 亚洲免费视频在线观看| 羞羞色国产精品| 亚洲激情网站| 99视频一区二区| 亚洲欧美日韩另类精品一区二区三区| 午夜精品久久久久久99热软件| 篠田优中文在线播放第一区| 久久手机免费观看| 免费国产一区二区| 欧美日韩性生活视频| 国产精品久久久亚洲一区| 国产一区二区三区免费不卡| 亚洲成人在线视频播放| 亚洲毛片网站| 香蕉尹人综合在线观看| 最新日韩在线视频| 亚洲一区二区三区精品动漫| 欧美一区亚洲一区| 欧美11—12娇小xxxx| 欧美日韩免费观看一区三区| 国产精品永久| 91久久在线播放| 亚洲综合日韩中文字幕v在线| 久久精品视频在线看| 一本一本久久| 欧美中文字幕不卡| 欧美精彩视频一区二区三区| 国产精品美女视频网站| 激情成人av在线| 日韩一级在线观看| 久久精品国产精品| 亚洲手机在线| 久久亚洲国产成人| 欧美日在线观看| 一区在线影院| 亚洲午夜成aⅴ人片| 亚洲国产精品小视频| 亚洲欧美国产精品va在线观看| 久久一综合视频| 国产精品s色| 亚洲国产高清高潮精品美女| 亚洲欧美日韩国产一区| 日韩一级片网址| 久久人体大胆视频| 国产精品日日摸夜夜摸av| 亚洲国产精品高清久久久| 午夜日韩激情| 亚洲欧美不卡| 欧美激情中文字幕一区二区| 国产精品久久久久久久app | 亚洲自拍16p| 美女尤物久久精品| 国产精品无码专区在线观看| 最新国产精品拍自在线播放| 亚洲成色777777女色窝| 午夜精品偷拍| 欧美日韩国产三级| 在线看无码的免费网站| 香蕉视频成人在线观看 | 欧美日本在线| 一区二区亚洲欧洲国产日韩| 亚洲综合第一页| 一区二区三区偷拍| 蜜桃久久av一区| 国产亚洲激情视频在线| 亚洲手机成人高清视频| 一区二区三区产品免费精品久久75| 免费观看一级特黄欧美大片| 国产欧美韩国高清| 亚洲先锋成人| 亚洲一区在线看| 欧美午夜精品久久久久久浪潮| 亚洲人www| 亚洲精品久久久久久下一站| 久热国产精品| 在线免费观看一区二区三区| 久久成人精品一区二区三区| 久久国内精品自在自线400部| 国产精品久久久久免费a∨| 99热在这里有精品免费| 一本色道久久综合亚洲精品小说| 欧美激情视频一区二区三区在线播放 | 欧美日韩国产片| 91久久精品www人人做人人爽 | 国产日韩精品一区二区三区 | 夜夜嗨av一区二区三区免费区| 欧美gay视频激情| 亚洲成色www久久网站| 亚洲国产99精品国自产| 久久久精品一区二区三区| 国产日韩欧美精品一区| 亚洲自拍偷拍视频| 欧美综合国产| 国产一区二区三区在线观看视频 | 亚洲女同精品视频| 国产精品久久久久久久久久免费看| 宅男噜噜噜66国产日韩在线观看| 亚洲午夜伦理| 国产精品久久亚洲7777| 亚洲永久免费观看| 欧美在线你懂的| 国产日韩欧美在线播放| 小嫩嫩精品导航| 久久欧美中文字幕| 影音先锋亚洲一区| 99精品久久| 欧美日韩在线播放| 在线一区二区日韩| 欧美一区视频| 伊人成人开心激情综合网| 亚洲黄色av| 欧美日韩国产美女| 亚洲一级片在线看| 久久国产精品久久久久久| 伊人色综合久久天天| 亚洲人成免费| 欧美午夜激情视频| 午夜精品久久| 免费欧美在线视频| 日韩视频一区| 亚洲欧美色婷婷| 激情av一区二区| av成人福利| 国产精品一区三区| 亚洲国产精品一区在线观看不卡 | 日韩一级精品| 欧美诱惑福利视频| 亚洲电影欧美电影有声小说| 亚洲一区二区日本| 国产一区99| aa亚洲婷婷| 国产日韩专区| 亚洲精品色婷婷福利天堂| 欧美日韩午夜激情| 欧美在线免费观看| 欧美精品123区| 亚洲欧美日本伦理| 欧美99久久| 亚洲综合视频一区| 欧美成人影音| 亚洲综合电影一区二区三区| 女同一区二区| 亚洲午夜视频在线| 欧美成人综合| 亚洲欧美日韩一区二区在线 | 久久一区中文字幕| 日韩午夜在线| 久久久久久久激情视频| 夜夜嗨av一区二区三区| 久久久av毛片精品| 日韩亚洲视频在线| 久久躁狠狠躁夜夜爽| 亚洲视频第一页| 免费成人在线视频网站| 亚洲一区精品电影| 欧美激情影院| 久久aⅴ乱码一区二区三区| 欧美日韩一区二区视频在线 | 亚洲欧美国产高清va在线播| 亚洲高清视频的网址| 欧美伊久线香蕉线新在线| 日韩一区二区精品视频| 久热这里只精品99re8久| 亚洲无限乱码一二三四麻| 欧美sm重口味系列视频在线观看| 亚洲免费网站| 欧美日韩欧美一区二区| 亚洲国产清纯| 国产亚洲制服色|