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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM處理器與IC卡接口的時(shí)序匹配

          ARM處理器與IC卡接口的時(shí)序匹配

          作者: 時(shí)間:2013-11-11 來(lái)源:網(wǎng)絡(luò) 收藏

          1 硬件接口

          1.1 TDA8007簡(jiǎn)介
            TDA8007是NXP公司推出的IC卡讀卡芯片。它提供2個(gè)能同時(shí)滿足ISO7816標(biāo)準(zhǔn)、EMV和GSM1111標(biāo)準(zhǔn)的IC卡讀寫(xiě)接口。處理器只需通過(guò)其接口控制并行通信來(lái)管理TDA8007,便可實(shí)現(xiàn)對(duì)IC卡的上電、下電及讀寫(xiě)數(shù)據(jù)處理。TDA8007的片選信號(hào)和外部中斷信號(hào)線可以方便讀寫(xiě)器處理多個(gè)IC卡頭;特別的硬件ESD處理、接口短路處理、電源出錯(cuò)處理等,為IC卡和IC卡讀寫(xiě)器提供了比較高的安全保護(hù);內(nèi)部集成的電源管理功能使其供電范圍可達(dá)2.7~6.0 V,通過(guò)電源管理可以給IC卡提供5.0 V、3.0 V及1.8 V的電源,以適合不同工作電壓的IC卡應(yīng)用。
          1.2 TDA8007工作時(shí)序與ARM總線時(shí)序比較
            在基于ARM核心的嵌入式系統(tǒng)中,程序大多數(shù)是存在外部NAND Flash里面的。當(dāng)TDA8007也接入總線時(shí),若使用總線復(fù)用的方式,就需要把程序調(diào)用到內(nèi)存中運(yùn)行,同時(shí)需要11個(gè)GPIO來(lái)控制TDA8007的讀寫(xiě)。本文采用非總線復(fù)用的方式,選用LPC2220。LPC2220微控制器是基于一個(gè)支持實(shí)時(shí)仿真和嵌入跟蹤的32/16位ARM7TDMIS CPU。由于TDA8007最開(kāi)始是為51核的單片機(jī)設(shè)計(jì)的,所以讀寫(xiě)的時(shí)序和ARM的總線不同。 TDA8007和LPC2220的讀寫(xiě)時(shí)序如圖1和圖2所示。
          圖1 TDA8007的讀寫(xiě)時(shí)序
          ARM處理器與IC卡接口的時(shí)序匹配
          圖2 LPC2220的讀寫(xiě)時(shí)序
          ARM處理器與IC卡接口的時(shí)序匹配
            對(duì)比圖1和圖2,可以發(fā)現(xiàn)TDA8007和LPC2220的讀寫(xiě)時(shí)序是不一樣的,因此無(wú)法直接連接。特別要說(shuō)明的是,使用之前一定要深入研究芯片的數(shù)據(jù)手冊(cè),不對(duì)可能會(huì)導(dǎo)致二次布板。
          1.3 解決方案
            TDA8007無(wú)法直接連接到LPC2220,同時(shí)除非使用專門(mén)的GPIO接口,否則也無(wú)法采用總線復(fù)用的方式操作TDA8007,目前,大多數(shù)設(shè)計(jì)方案都是使用51單片機(jī)控制TDA8007,51單片機(jī)再與LPC2220進(jìn)行通信。本文提出了一種新的解決辦法,可以很方便使TDA8007連接到LPC2220處理器,操作方法和操作存儲(chǔ)器一樣。
            通過(guò)比較可以很清楚看出,二者時(shí)序的主要區(qū)別在于讀寫(xiě)信號(hào)的時(shí)序不同,如表1所列。
          表1 TDA8007與LPC2220讀寫(xiě)時(shí)序比較
          ARM處理器與IC卡接口的時(shí)序匹配
            針對(duì)TDA8007的獨(dú)特時(shí)序,將LPC2220的OE、WE信號(hào)進(jìn)行與操作,作為T(mén)DA8007的WR使能信號(hào),使用一個(gè)GPIO口進(jìn)行讀寫(xiě)控制,CS信號(hào)仍然不變,這樣的時(shí)序圖就非常符合讀寫(xiě)的要求。圖3為T(mén)DA8007與LPC2220連接的電路圖。其中,TDA_RD/WR是GPIO。
          ARM處理器與IC卡接口的時(shí)序匹配
          圖3 TDA8007設(shè)計(jì)電路
          2 軟件接口
            由于TDA8007連接到ARM總線上時(shí)使用GPIO控制讀寫(xiě)操作,所以程序也需進(jìn)行相應(yīng)修改。修改后讀寫(xiě)函數(shù)如下:
          #define TdaCS 0x83000040//TDA8007地址
          unsigned char *volatile TDA=(unsigned char *)TdaCS;
          uchar read_register(uchar address) {
           uchar val;
           IO3DIR=(IO3DIR |(0x0129));
           IO3SET=(0x01 29);//RD控制,RD=1
           val=TDA[address];
           return val;
          }
          void write_register(uchar address, uchar _data){
           IO3DIR=(IO3DIR |(0x0129));
           IO3CLR=(0x01 29);//RD控制,RD=0
           TDA[address]=_data;
           IO3SET=(0x01 29);
          }
          3 結(jié)論
            使用TDA8007時(shí)需要注意如下問(wèn)題:
            ① 外圍電路的配置。SAP和SAM、SBP和SBM、VUP和GND這3個(gè)電容的匹配非常重要,如果電容選擇錯(cuò)誤,可能會(huì)導(dǎo)致上電失敗。按照經(jīng)驗(yàn),SAP和SAM、SBP和SBM之間均使用0.01 μF電容,VUP和GND之間使用220 nF電容。這種配置方式的實(shí)際使用效果好于按照demo電路的電容配置。
            ② 在大多數(shù)的使用環(huán)境下,TDA8007使用晶振為14.745 6 MHz。如果CPU的頻率比較低,最好進(jìn)行分頻。
           ?、?上電前最好先確定是否已經(jīng)插卡9,避免多次上電導(dǎo)致芯片燒毀。
            本文的解決方案已經(jīng)在某公司金融POS系列產(chǎn)品中得到實(shí)際應(yīng)用。從目前的使用情況來(lái)看,可以通過(guò)國(guó)際EMV L1和L2認(rèn)證。


          評(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); })();