<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于UART的智能卡接口IP核設(shè)計(jì)

          基于UART的智能卡接口IP核設(shè)計(jì)

          作者: 時(shí)間:2012-12-16 來源:網(wǎng)絡(luò) 收藏

          2.4 的實(shí)現(xiàn)
          由于篇幅有限,本文只介紹狀態(tài)轉(zhuǎn)換和指令的實(shí)現(xiàn)方法。
          用變量state表示當(dāng)前的狀態(tài),有效值為0~5,其他值均為無效狀態(tài),在無效狀態(tài)下將直接跳轉(zhuǎn)到空閑狀態(tài)。狀態(tài)與state的對(duì)應(yīng)關(guān)系如表2所列。

          本文引用地址:http://www.ex-cimer.com/article/189738.htm

          b.JPG


          本文所使用的收發(fā)緩沖模塊為SCFIFO,所有下發(fā)指令都先寫入到發(fā)送FIFO,所有接收的數(shù)據(jù)都進(jìn)入到接收FIFO。
          表1中,4種指令長(zhǎng)度都大于4,為實(shí)現(xiàn)復(fù)位操作,定義復(fù)位指令長(zhǎng)度為1。實(shí)現(xiàn)時(shí),為便于判斷指令,在指令之前先將指令長(zhǎng)度寫到發(fā)送FIFO中。定義復(fù)位操作指令為01 01,其他操作指令為L(zhǎng)EN(指令長(zhǎng)度)+CMD(指令本身)。先取出指令長(zhǎng)度,當(dāng)FIFO數(shù)據(jù)達(dá)到該長(zhǎng)度時(shí)表示一個(gè)完整的指令已經(jīng)下發(fā),這時(shí)才可對(duì)進(jìn)行操作。

          3 仿真與實(shí)際測(cè)試
          3.1 Modelsim仿真分析
          為驗(yàn)證的正確性,在Modelsim ASE6.6d上進(jìn)行了仿真分析。仿真時(shí),測(cè)試程序模擬CPU向IP核發(fā)送指令,同時(shí)模擬智能卡給IP核回復(fù)數(shù)據(jù)。
          3.1.1 復(fù)位操作仿真
          測(cè)試程序模塊CPU向發(fā)送緩沖區(qū)寫復(fù)位指令01 01,再模擬智能卡回復(fù)3b 7d 94 00 00 57 44 37 51 90 86 93 85 3e 97 06 2e 24(數(shù)據(jù)來源于實(shí)際PSAM卡)。圖6是復(fù)位操作的Modelsim仿真圖。

          c.JPG


          圖6中,收到01 01指令后,IP核清空發(fā)送緩沖(tx_bur_clr=1),使IC卡復(fù)位(ic_reset=0),并跳轉(zhuǎn)到復(fù)位狀態(tài)(state=5)。由圖中可以看出,IP核接收到2字節(jié)后計(jì)算出回復(fù)的總長(zhǎng)度為18,狀態(tài)變?yōu)榻邮斩ㄩL(zhǎng)數(shù)據(jù)狀態(tài)(state=4)。當(dāng)接收到的數(shù)據(jù)個(gè)數(shù)達(dá)到設(shè)定長(zhǎng)度時(shí)(rx_buf_len =18),向CPU申請(qǐng)中斷(irq=1),同時(shí)回到空閑狀態(tài)(state=0)。
          由仿真看出,復(fù)位操作時(shí)序正確。
          3.1.2 取隨機(jī)數(shù)操作仿真
          測(cè)試程序模擬CPU向發(fā)送緩沖區(qū)寫取隨機(jī)數(shù)指令05 00 84 00 OO 08,再模擬智能卡回復(fù)84 11 22 33 44 5566 77 88 90 00(8字節(jié)隨機(jī)數(shù)任意填寫)。圖7是取隨機(jī)數(shù)操作的Modelsim仿真圖。

          d.JPG


          圖7中,取隨機(jī)數(shù)指令下發(fā)后,IP核將數(shù)據(jù)線切換為發(fā)送(t_r_sel=0),發(fā)送指令并跳轉(zhuǎn)到接收1字節(jié)狀態(tài)(state=1)。當(dāng)?shù)?個(gè)字節(jié)等于INS(84)且LC=0時(shí),清空接收緩沖區(qū)中的過程響應(yīng)(rx_bur_elr=1),設(shè)置接收長(zhǎng)度為10(rx_const_len=0a),跳轉(zhuǎn)到接收定長(zhǎng)數(shù)據(jù)狀態(tài)(state= 4)。當(dāng)接收到10個(gè)數(shù)據(jù)(rx_bur_len=00a)后跳轉(zhuǎn)到空閑狀態(tài),同時(shí)向CPU申請(qǐng)中斷(irq=1)。
          由仿真看出,取隨機(jī)數(shù)據(jù)操作時(shí)序正確。
          3.2 實(shí)際測(cè)試
          對(duì)本文設(shè)計(jì)的IP核進(jìn)行了實(shí)際測(cè)試。采用Ahera公司的Nios Il CPU作為控制器,EP3C40F48417N為FPGA芯片,用10張PSAM卡作為測(cè)試的IC卡,CPU時(shí)鐘為88.473 6 MHz,PSAM時(shí)鐘為5.529 6 MHz。
          測(cè)試操作過程為:
          ①返回根目錄3f00;
          ②取PSAM卡序列號(hào);
          ③進(jìn)入文件目錄df01;
          ④初始化加密認(rèn)證;
          ⑤取認(rèn)證碼;
          ⑥取隨機(jī)數(shù)。
          6個(gè)操作為1輪,每秒對(duì)10張PSAM卡進(jìn)行一輪測(cè)試。共測(cè)了201 803輪,耗時(shí)20 908 s,平均每秒9.65輪,所有操作全部成功。
          由此驗(yàn)證,該IP核設(shè)計(jì)正確,運(yùn)行穩(wěn)定。

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


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: UART IP核 智能卡 接口

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();