日本一区二三区在线播放|永久久久精品人人做人人爽|少妇高潮片一区二区三区99|久久狠色噜噜狠狠狠狠98|日本精品一区二区视频在线播放

歡迎您訪問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
阿里巴巴誠(chéng)信通企業(yè)
全國(guó)咨詢熱線:40000-63966
興邦電子,中國(guó)水控機(jī)第一品牌

聯(lián)系興邦電子

全國(guó)咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

基于ISO7816-3標(biāo)準(zhǔn)的智能卡接口控制器的設(shè)計(jì)

文章出處:http://m.dipdnbxp.cn 作者:華南理工大學(xué)電子與信息學(xué)院 蔣曉華 黃光周 于繼榮   人氣: 發(fā)表時(shí)間:2011年09月17日

[文章內(nèi)容簡(jiǎn)介]:介紹了基于ISO7816-3標(biāo)準(zhǔn)的接觸式智能卡接口控制器的一種設(shè)計(jì)方案,描述了該控制器的硬件描述語(yǔ)言模型的仿真過(guò)程及結(jié)果,以及在FPGA上的實(shí)現(xiàn)過(guò)程。

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

控制器工作原理

● 控制器的結(jié)構(gòu)
---本方案的設(shè)計(jì)過(guò)程遵循集成電路設(shè)計(jì)的一般流程,采用自上而下的模塊化設(shè)計(jì)方法。該控制器由七個(gè)子模塊組成:卡激活復(fù)位模塊(RSTM)、串行數(shù)據(jù)收發(fā)模塊(RxTxM)、狀態(tài)中斷管理模塊(INTM)、定時(shí)模塊(TM)、時(shí)鐘管理模塊(CLKM)、寄存器地址管理模塊(AM)和主控制器接口(IF)。其結(jié)構(gòu)如圖1所示,CLKC、IOC、PRESC、VDDC和RSTC為控制器同智能卡的接口,分別為輸出給智能卡的時(shí)鐘、雙向數(shù)據(jù)線、卡存在輸入信號(hào)、卡電源控制信號(hào)和輸出給卡的復(fù)位信號(hào)。本控制器同主控器(如CPU)的接口信號(hào)有:主時(shí)鐘輸入CLK、地址信號(hào)A、雙向并行數(shù)據(jù)線D、片選輸入信號(hào)CS、寫(xiě)控制信號(hào)WR、讀控制信號(hào)RD、主復(fù)位信號(hào)RST和中斷輸出信號(hào)INT。

● 內(nèi)部寄存器
---通常,用戶程序要通過(guò)對(duì)卡接口控制器寄存器的讀寫(xiě)操作,才能實(shí)現(xiàn)同IC卡的交易,因此,智能卡控制器內(nèi)部寄存器設(shè)置的合理性直接影響到該設(shè)計(jì)方案的可行性和將來(lái)實(shí)際產(chǎn)品使用的便利性。不同的智能卡控制器的寄存器設(shè)置一般不盡相同。同其他的智能卡控制器相比較,本方案所設(shè)置的寄存器數(shù)目相對(duì)較多,功能更加全面。表1列出了本控制器的寄存器及其地址分配情況。

---卡控制器使能寄存器EN像個(gè)總開(kāi)關(guān),用來(lái)使能或關(guān)閉整個(gè)控制器。當(dāng)用戶系統(tǒng)暫時(shí)不需要用到卡控制器時(shí),可以設(shè)置EN=0,便可關(guān)閉整個(gè)控制器內(nèi)部的所有操作(包括內(nèi)部分頻器的動(dòng)作),這樣可以減少系統(tǒng)中不必要的功耗。時(shí)鐘預(yù)分頻參數(shù)寄存器PRSCL的設(shè)置可以在無(wú)需外加分頻器的情況下,使控制器方便地應(yīng)用到高時(shí)鐘頻率的目標(biāo)系統(tǒng)中去。目前其他絕大多數(shù)的卡控制器中都沒(méi)有設(shè)置功能與EN和PRSCL相同或者相似的寄存器。因此寄存器EN和PRSCL的設(shè)置是本方案的一大特點(diǎn),若把此卡控制器作為一個(gè)IP用到SoC的設(shè)計(jì)中去,這一特點(diǎn)將顯得尤為重要。

---工作等待時(shí)間整數(shù)值寄存器WWT只對(duì)T=0類(lèi)卡有效,字符等待時(shí)間整數(shù)值寄存器CWT和塊等待時(shí)間整數(shù)值寄存器BWT只對(duì)T=1類(lèi)卡有效。本控制器同時(shí)設(shè)置了這三個(gè)寄存器,因此,其既可以和T=0類(lèi)卡進(jìn)行通信,又可以和T=1類(lèi)卡進(jìn)行通訊,這樣彌補(bǔ)了目前大多數(shù)的卡接口控制器只能同某一類(lèi)卡進(jìn)行通信的弊端。

---如表1所示,本控制器還設(shè)置其他寄存器,比如ETU、TXDB、STMR等,這樣做是為了更全面地滿足ISO7816-3標(biāo)準(zhǔn)地要求,能夠兼容各類(lèi)型的IC卡,同時(shí)使得用戶軟件能夠更方便地干預(yù)同IC卡的交易過(guò)程,提高了交易過(guò)程的可控性和使用的便利性。

● 卡控制器的工作過(guò)程
---主控制器(HOST)通過(guò)主控制器接口(IF)向卡控制器發(fā)送命令(即操作卡控制器的寄存器),卡控制器各個(gè)模塊協(xié)同工作對(duì)此命令進(jìn)行解析后,再通過(guò)IC卡接口對(duì)卡進(jìn)行相應(yīng)的操作,這樣就完成主控制器對(duì)IC卡的一次操作。同樣,從IC卡過(guò)來(lái)的命令或者狀態(tài)通過(guò)卡控制器的處理后,再將相關(guān)信息報(bào)告給主控制器??刂破骶褪沁@樣在IC卡和主控制器之間起著橋梁作用。下面將重點(diǎn)介紹串行數(shù)據(jù)收發(fā)模塊(RxTxM)工作過(guò)程。

---本方案所設(shè)計(jì)的卡控制器的串行數(shù)據(jù)收發(fā)模塊(RxTxM)負(fù)責(zé)接收IC卡發(fā)送過(guò)來(lái)的串行數(shù)據(jù)和將主控制器的命令以串行的方式發(fā)送給IC卡。其中串行數(shù)據(jù)接收器為一個(gè)狀態(tài)機(jī),其狀態(tài)轉(zhuǎn)換圖如圖2所示。狀態(tài)機(jī)平時(shí)處于空閑狀態(tài)(idle),若IOC端口上沒(méi)有負(fù)跳變(NoFallingEdge),狀態(tài)機(jī)便一直處于此狀態(tài)。當(dāng)檢測(cè)到IOC上有負(fù)脈沖(FallingEdge)時(shí),狀態(tài)機(jī)便進(jìn)入接收起始位狀態(tài)(startbit),若起始位不合法(StartBitInvalid,例如寬度不夠),狀態(tài)機(jī)便返回idle狀態(tài),否則狀態(tài)機(jī)進(jìn)入到接收數(shù)據(jù)狀態(tài)(data)。若還沒(méi)有收滿8位數(shù)據(jù)(CntBit<8),則繼續(xù)接收,若已經(jīng)收滿了8位數(shù)據(jù)(CntBit=8),狀態(tài)機(jī)便進(jìn)入接收和校驗(yàn)奇偶的狀態(tài)(parity)。若奇偶校驗(yàn)沒(méi)有結(jié)束(Checking),則繼續(xù)處理,否則狀態(tài)機(jī)返回idle狀態(tài),至此控制器完成一次接收過(guò)程。

---若成功接收到1字節(jié),便立即產(chǎn)生一個(gè)成功接收狀態(tài)量rcv_ok,提交給狀態(tài)中斷管理模塊(INTM);若接收的數(shù)據(jù)有錯(cuò)誤,也會(huì)立即將接收錯(cuò)誤的狀態(tài)rcv_error,提交給INTM,并且在IOC數(shù)據(jù)線上產(chǎn)生一個(gè)1~2位數(shù)據(jù)寬度的負(fù)脈沖,以請(qǐng)求IC卡重發(fā)剛才的字節(jié)。按照ISO7816標(biāo)準(zhǔn)的規(guī)定,這種對(duì)同1字節(jié)的重發(fā)請(qǐng)求最多只發(fā)送3次。因此,若RxTxM在第三次重發(fā)請(qǐng)求之后仍然接收到錯(cuò)誤的字節(jié),RxTxM立即產(chǎn)生一個(gè)重收次數(shù)超限的狀態(tài)RTO,報(bào)告給INTM。

---當(dāng)主控器往本控制器的發(fā)數(shù)寄存器寫(xiě)入1字節(jié)數(shù)據(jù)時(shí),本控制器便會(huì)以串行的方式發(fā)送給IC卡,若發(fā)送成功且沒(méi)有檢測(cè)到IC卡的重發(fā)請(qǐng)求,便立即產(chǎn)生一個(gè)發(fā)送成功的狀態(tài)量tr_ok,報(bào)告給狀態(tài)中斷管理模塊;若檢測(cè)到IC卡的重發(fā)請(qǐng)求,便重發(fā)剛才的字節(jié)。同樣如果在第三次重發(fā)后仍然收到IC卡的重發(fā)請(qǐng)求,則立即報(bào)告給INTM一個(gè)重收次數(shù)超限的狀態(tài)。

設(shè)計(jì)的仿真及實(shí)現(xiàn)
● 控制器模型的時(shí)序仿真

---在Xilinx公司的ISE5集成開(kāi)發(fā)環(huán)境下,用VHDL語(yǔ)言建立各個(gè)模塊的RTL模型,并模仿實(shí)際情況,用VHDL編寫(xiě)了測(cè)試向量testbench,選用外部仿真軟件Modelsim進(jìn)行仿真。由于篇幅關(guān)系,這里僅列出控制器接收IC卡發(fā)送過(guò)來(lái)的串行數(shù)據(jù)時(shí)的仿真時(shí)序波形,如圖3所示。

---由圖3可以看出,IC卡發(fā)過(guò)來(lái)的串行數(shù)據(jù)為1001001010(低位在前),共10位,除去起始位0和校驗(yàn)位1,8位數(shù)據(jù)為00100101,與數(shù)據(jù)接收寄存器rxbuffer所接收到的內(nèi)容相同,且校驗(yàn)結(jié)果為0,滿足ISO 7816

● 設(shè)計(jì)的FPGA實(shí)現(xiàn)
---根據(jù)綜合結(jié)果,目標(biāo)器件選用Xilinx公司的Spartan2系列的xc2s30tq144-6,其內(nèi)部資源概況在表2中列出。

---為了進(jìn)一步驗(yàn)證本設(shè)計(jì)的正確性,將本控制器模型的接口改成AMBA總線的APB接口,把它作為一個(gè)外圍IP,連接到以AMBA總線作為內(nèi)部總線的SoC的APB總線上,然后將此SoC系統(tǒng)編譯并下載到FPGA中,再嵌入實(shí)際的應(yīng)用系統(tǒng)中,經(jīng)驗(yàn)證可以同IC卡進(jìn)行交易。

結(jié)論
---本方案所設(shè)計(jì)的IC卡控制器可行性已經(jīng)在實(shí)際應(yīng)用中得到了驗(yàn)證,應(yīng)用軟件通過(guò)對(duì)控制器內(nèi)部的寄存器的操作,可以方便地與智能卡進(jìn)行通信交易。本IC卡控制器不僅可以單獨(dú)下載到FPGA或CPLD器件中,應(yīng)用到目標(biāo)系統(tǒng)中去,也可以在對(duì)其外部接口稍做修改后,將其當(dāng)作一個(gè)IP模塊,方便地應(yīng)用到SoC系統(tǒng)的設(shè)計(jì)中去。由于沒(méi)有為其設(shè)計(jì)內(nèi)嵌的給IC卡供電的電源模塊,所以在實(shí)際應(yīng)用中,需要同外擴(kuò)的電源模塊搭配起來(lái)使用,這點(diǎn)有待進(jìn)一步改進(jìn)和完善。

本文關(guān)鍵詞:智能卡,ISO7816,FPGA
回到頂部