<strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

        <em id="tpvd9"></em>

          <address id="tpvd9"></address>
            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

            <thead id="tpvd9"><noframes id="tpvd9">
            <ruby id="tpvd9"></ruby>

                  <thead id="tpvd9"></thead>
                  歡迎您訪(fǎng)問(wèn)鄭州興邦電子股份有限公司官方網(wǎng)站!
                  阿里巴巴誠信通企業(yè)
                  全國咨詢(xún)熱線(xiàn):40000-63966
                  興邦電子,中國水控機第一品牌

                  聯(lián)系興邦電子

                  全國咨詢(xún)熱線(xiàn):40000-63966

                  售后:0371-55132951/55132952

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

                  IC卡接口芯片TDA8007的讀寫(xiě)器設計

                  文章出處:http://psychicreadingswithdeb.com 作者:羅勇進(jìn) 路林吉&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年11月03日

                  [文章內容簡(jiǎn)介]:IC卡接口芯片TDA8007的讀寫(xiě)器設計

                  摘要:
                    闡述T=0傳輸協(xié)議,給出IC卡讀寫(xiě)器中使用的IC卡APDU指令流程和原理框圖;重點(diǎn)介紹其中的IC卡接口芯片Philips的TDA8007,給出通過(guò)TDA8007對CPU IC卡上下電過(guò)程、具體程序及TDA8007使用中應注意的問(wèn)題。
                    IC卡(Integrated Circuit card)即集成電路卡,是將一個(gè)集成電路芯片鑲嵌于朔料基片中,封裝成卡的形式,外形與常用的覆蓋磁條的磁卡相似。IC卡芯片具有寫(xiě)入和存儲數據的能力。IC卡存儲器中的內容根據需要可以有條件地供外部讀取,或供內部信息處理和判定。根據卡中所鑲嵌的集成電路的不同,可以分成存儲器卡、邏輯加密卡、CPU卡三類(lèi)。其中CPU卡即為由中央處理器CPU、EEPROM、隨機存儲器RAM以及固化在只讀存儲器ROM中的片內操作系統COS(Chip Operation System)組成的IC卡。IC卡按與外界數據傳送的形式來(lái)分,有接觸式和非接觸式兩種。
                  圖1 T=0的CPU卡APDU指令實(shí)現流程

                    1 CPU IC卡T=0的協(xié)議介紹  
                  目前大多數CPU IC卡采用T=0模式。所謂T=0,即CPU IC卡與接口設備(即讀寫(xiě)器)中數據傳輸方式為異步半雙工字符傳輸模式?! ?BR>  從T=0協(xié)議的功能出發(fā),該協(xié)議的實(shí)現可以分為物理層、數據鏈路層、終端傳輸層和應用層。其中物理層和數據鏈路層可以具體參看ISO7816標準。在T=0協(xié)議應用,終端傳輸層和應用層實(shí)際上是不易分割來(lái)說(shuō)明的,下面簡(jiǎn)單說(shuō)明?! ?BR>  終端傳輸層根據卡片返回的過(guò)程字符和狀態(tài)字節執行相應的操作,使讀寫(xiě)器對數據的處理過(guò)程明朗清晰??ㄆ祷氐倪^(guò)程字節和狀態(tài)字節跟應用層發(fā)送給卡的APDU(Application Protocol Data Unit,應用協(xié)議數據單元)和VPP使用等有關(guān)。表1為VPP未用時(shí)的終端傳輸層中返回的過(guò)程字節。
                  表1

                  應用層即為由CLA、INS、P1、P2、P3作為命令頭組成的命令消息體的APDU響應和應答處理層。其中CLA為指令類(lèi)別,INS為指令碼,P1、P2為參數,P3為根據APDU的不同格式為發(fā)送給卡的數據長(cháng)度或期望響應的數據長(cháng)度。APDU的幾種情況如表2所列。
                  表2

                  CPU卡對接口設備(即讀寫(xiě)器)的應答APDU情況如表3所列。
                  表3  

                    其中體中的數據字節數由命令APDU中的LE指出;SW1、SW2是必備的,可以指明命令APDU執行正確或執行出錯的錯誤類(lèi)型?! ?BR>  2 基于T=0傳輸協(xié)議的CPU IC的APDU指令流程  
                    根據目前CPU卡的常用T=0協(xié)議、自帶編程升壓電路的應用情況,以及本讀寫(xiě)器接收IC卡數據報文直接發(fā)送PC機處理的特點(diǎn),本讀寫(xiě)器可行的APDU命令和響應的處理流程如圖1所示?! ?BR>  3 讀寫(xiě)器的硬件組成  
                    讀寫(xiě)器的硬件部分主要由IC接口管理芯片TDA8007、MCUAT89C52、外部數據存儲器W24257S、串口電平轉換芯片MAX3226、安全IC卡座(即SAM卡座)、應用IC卡座、鍵盤(pán)口供電的串口通信線(xiàn)及其它相關(guān)元器件組成?! ?BR>  圖2所示為通過(guò)PC機控制管理的外置于PC機的接觸式CPU IC卡讀寫(xiě)器。通過(guò)定制的數據線(xiàn),該讀寫(xiě)器的5V直流電源可直接由鍵盤(pán)口提供,同時(shí)數據線(xiàn)還負責PC機與讀寫(xiě)器的串行數據交換。在大部分IC卡讀寫(xiě)應用中,都涉及到IC卡的認證和數據讀寫(xiě)的國解密問(wèn)題,所以本讀寫(xiě)器除了提供一個(gè)供用戶(hù)使用的IC卡接口卡座外,還內置了一個(gè)SAM卡,即安全IC卡卡座,以方便安裝SAM卡,保證應用IC卡讀寫(xiě)時(shí)的數據安全,保護用戶(hù)的利益。

                    硬件的其它組成部分,如處理器,目前采用Atmel的89C52。其4KB的Flash程序存儲器可以滿(mǎn)足讀寫(xiě)器的程序空間需要。由于PC機與89C52、89C52與TDA8007的數據交換要求的暫存數據空間比較大,89C52提供的256字節不夠,需外加一片數據存儲器。本讀寫(xiě)器中使用的是華邦的W24257S。其有32KB存儲容量,IC接口部分的主要芯片為Philips的TDA8007?! ?BR>  4 IC卡接口芯片應用  
                    下面介紹一下TDA8007及其應用。TDA8007的原理結構如圖3所示?! ?BR>  TDA8007芯片能夠提供兩個(gè)能同時(shí)滿(mǎn)足ISO7816標準及EMV和GSM11-11標準的IC卡讀寫(xiě)接口。在本讀寫(xiě)器中,一個(gè)用于與應用IC通信,另一個(gè)用于與安全IC卡通信。與上文CPU卡的觸點(diǎn)圖相對應,CLKi、RSTi、VCCi、I/Oi、GNDCi、PRESi、C4i、C8i(其中i=1,2;C4i、C8i未用;PRESi可用于檢測IC卡是否插入。具體應用可參看TDA8007的技術(shù)文檔)都直接由TDA8007提供給IC卡接口相連,MCU只需通過(guò)其接口控制并行通信來(lái)管理TDA8007,便可實(shí)現對IC卡的上電、下電及讀寫(xiě)數據處理。其中,微處理器既可以通過(guò)總線(xiàn)復用把TDA8007內部的所有寄存器作為外部存儲器,用MOVX尋址,也可以通過(guò)非總線(xiàn)復用方式訪(fǎng)問(wèn),此時(shí)TDA8007用AD0~AD3來(lái)區分內部各寄存器。另外,TDA8007的片選信號和外部中斷信號線(xiàn)可以方便讀寫(xiě)器處理多個(gè)IC卡頭。TDA8007的特別硬件ESD處理、接口短路處理、電源出錯處理等也給IC卡和IC卡讀寫(xiě)器提供了比較高的安全保護;同時(shí),TDA8007內部集成的電源管理功能允許TDA8007的供電范圍可達2.7~6.0V,并且TDA8007通過(guò)電源管理可以給IC卡提供5.0V、3.0V及1.8V的電源,以適合不同工作電壓的IC卡應用。
                  圖3 IC卡接口芯片TDA8007的原理框圖

                  本讀寫(xiě)器是通過(guò)總線(xiàn)復用對TDA8007的寄存器進(jìn)行控制的。其中MCU的P1.5為T(mén)DA8007的片選,P0口為與之通信的8位數據線(xiàn),TDA8007的各寄存器預先被宏定義的成微處理器的一個(gè)外部數據單元(下面電程序處的定義),從而方便MCU訪(fǎng)問(wèn)。下面結合TDA8007寄存器的定義和位分配,給出應用TDA8007接口芯片對IC卡進(jìn)行上電激活和下電的程序。TDA8007的寄存器主要三類(lèi)。第一類(lèi),通用寄存器:①卡槽選擇CSR;②硬件狀態(tài)HSR;③定時(shí)器TOR1、TOR2、TOR3。第二類(lèi),ISO7816串行處理寄存器:①串行狀態(tài)USR;②混合狀態(tài)MSR;③串行發(fā)送UTR;④串行接收URR;⑤隊列控制FCR。第三類(lèi),卡專(zhuān)屬寄存器:①可編程分頻PDR;②保護時(shí)間GTR;③串行控制UCR1、UCR2;④時(shí)鐘配置CCR;⑤上電控制PCR。注意:對于卡專(zhuān)屬的寄存器,即卡接口1、卡接口2分別對應的寄存器,邏輯上具有相同的名及訪(fǎng)問(wèn)地址,因而,對不同的瞳操作,需要通過(guò)CSR選擇對應的卡槽來(lái)切換卡專(zhuān)卡屬寄存器的映射的物理空間。所以,接口設備每次從一個(gè)卡的上下電或讀寫(xiě)轉向另一卡,都需要訪(fǎng)CSR設定對應的卡槽。對于每個(gè)寄存器的位定義不再多述,主動(dòng)性者可參看TDA8007的技術(shù)文檔?! ?BR>  5 上下電過(guò)程及具體程序  
                    圖4為IC卡的上電時(shí)序圖。要實(shí)現之,需對PCR進(jìn)行寫(xiě)操作。其中START=PCR.0,RSTIN=PCR.2,VUP上升表示激活了TDA8007中的電壓轉換電路。當START置高時(shí),只要能檢測到選定卡槽中的IC卡存在,且沒(méi)有TDA8007能檢測到并在HSR中指示的硬件錯誤出現,則對應IC卡接口的VCC1或VCC2將能被提供響應的電平(5V、3V或1.8V)。隨后對應卡的I/O數據線(xiàn)被置成高狀態(tài)(Z狀態(tài)),給IC卡提供設定的時(shí)鐘信號,常用為3.5712MHz。大約在START置高108ETU后,RSTIN置高。因為RST為RSTIN的拷貝,則對應卡的RST被置高。然后,用TDA8007提供的定時(shí)器TOR3、TOR2設定對ATR(Answer To Request)即復位應答首字節的最大等待時(shí)間120ETU(Element Time Unit),TOC設定定時(shí)器工作方式,便開(kāi)始等待ATR首字節到來(lái)后做相應處理。至此,IC卡上電激活工作完成,隨后可以根據ATR字節的要求的工作方式對IC卡進(jìn)行相應的讀寫(xiě)處理。具體見(jiàn)上電程序。
                  圖4 TDA8007產(chǎn)生滿(mǎn)足ISO 7816標準訴IC卡上電激活時(shí)序


                  TDA8007寄存器訪(fǎng)問(wèn)的預定義  
                    #include  
                    #define XXX XBYTE[0x8000]//XXX表示CSR等各寄存器上電程序如下:  
                    P1.5=0; //片選TDA8007  
                    CSR&=0xf8;  
                    CSR|=ncard; //選擇卡,ncard=1,2  
                    CSR&=0xf7;  
                    CSR|=0xf7;  
                    CSR|=0x08; //復位UART的寄存器  
                    UCR2&=0xf7; //異步模式,SAN=0  
                    CCR&=0xdf; //時(shí)鐘停止于低電平  
                    UCR2|=0x60; //關(guān)閉附加中斷及收發(fā)中斷  
                    GTR=0xff; //保持時(shí)間12ETU  
                    If(v==1) //v為函數變量  
                    PCR|=0x08; //1.8V卡用  
                    else if(v==3)  
                    PCR|=0x02; //3V卡用  
                    Else  
                    PCR&=0xfd; //5V卡用  
                    UCR2&=0xfc; //CKU=PSC=0,--31  
                    FCR=0x00; //1奇偶校驗1FIFO  
                    PDR=0x0c; //Divider=12  
                    CCR=0x00; //不分頻  
                    PCR&=0xfb; //RSTIN=0  
                    UCR2|=0x04; //不自動(dòng)轉換  
                    UCR1=0x01; //正向約定  
                    UCR1&=0xf7; //接收模式  
                    flag3=0; //復位定時(shí)標志  
                    flagatr=0; //接收ATR首字節定時(shí)標志  
                    PCR|=0x01; //激活  
                    TOR2=0x6c;  
                    TOR3=0x00;  
                    TOC=0x61; //RST拉高前等待108ETU  
                    while(flag3==0); //定時(shí)時(shí)間到,在中斷中設置flag3=1  
                    TOC=0x00; //關(guān)閉定時(shí)器  
                    PCR|=0x04; //給復位拉高  
                    TOR2=0x78;  
                    TOR3=0x00;  
                    TOC=0x61; //RST拉高前等待  
                    flagatr=1;  
                    ATR(); //復位應答處理函數  
                  圖5為IC卡的下電時(shí)序圖。



                  相對于上電時(shí)序,下電過(guò)程對時(shí)間的要求不是很?chē)栏?,只要設計者控制TDA8007按照一定的順序置低START、RSTIN和停止CLK即可,然后TDA8007會(huì )自動(dòng)逐步釋放RST、I/O、Vcc及VUP。具體處理見(jiàn)下電程序?! ?BR>  下電程序:  
                    P15=0;  
                    PCR&=0xfe; //START=0;下電  
                    PCR&=0xfb; //卡的復位腳保持0  
                    CCR&=0xdf; //停止時(shí)鐘于低  
                    CCR|=0x10; //停止時(shí)鐘  
                  P15=1;


                  6 使用TDA8007應當注意的問(wèn)題  
                    TDA8007對于Vcc、RST出錯,芯片過(guò)熱(如圖IC卡為電源短路卡或金屬片),或IC卡插入拔出時(shí)都會(huì )產(chǎn)生中斷輸出。每次中斷處理結束,應注意把HSR中的值讀入一個(gè)臨時(shí)地址,以便清楚HSR中的標志?! ?BR>  每次發(fā)送數據到IC前,即接收IC卡的最后一個(gè)數據之前,應設置寄存器UCR1中的LCT位,以便接收完IC卡的數據后,自動(dòng)切換成發(fā)送狀態(tài)?! ?BR>  對TDA8007部分布線(xiàn)時(shí)應注意,時(shí)鐘信號線(xiàn)與其它線(xiàn)的隔離:最好被地線(xiàn)包圍?! ?BR>  對于電路板上TDA8007部分的電容應盡量靠近TDA8007,其中電容Cap、Cbp、Cup尤其如此,并最好不要在這些電容連向TDA8007引腳過(guò)程中使用過(guò)孔;同時(shí),Cap、Cup、Cbp電容的ESR要盡量小?! ?BR>  對TDA8007處理的兩個(gè)IC卡座中的任何一個(gè)執行上電、下電、讀寫(xiě)卡操作之前,必須執行選擇卡座的操作函數,以便選中具體的IC卡進(jìn)行處理?! ?BR>  對IC卡操作中上電時(shí)序中的定時(shí),讀寫(xiě)卡字節間等待定時(shí)等都可使用TDA8007中的定時(shí)器及定時(shí)控制器操作,注意其定時(shí)器為向下計數方式?! ?BR>  結語(yǔ)  
                    本文主要從CPU IC卡的T=0的協(xié)議出發(fā),介紹此類(lèi)IC讀寫(xiě)器設計的一些技術(shù)問(wèn)題。值得指出的是,T=0協(xié)議僅僅是IC卡與外界數據交換的一種傳輸協(xié)議,只要在軟件上適當修改并利用接口芯片TDA8007突出的處理能力,本讀寫(xiě)器完全可以實(shí)現對其它ISO7816卡、EMV、GSM`11-11卡的讀寫(xiě)。

                  本文關(guān)鍵詞:IC卡接口芯片TDA8007的讀寫(xiě)器設計
                  回到頂部
                  99久热只有精品视频在线17_精品一区二区三区自拍图片_最新国产v亚洲_久久综合九色综合久
                  <strike id="tpvd9"><dfn id="tpvd9"></dfn></strike>

                        <em id="tpvd9"></em>

                          <address id="tpvd9"></address>
                            <dfn id="tpvd9"><sub id="tpvd9"></sub></dfn>

                            <thead id="tpvd9"><noframes id="tpvd9">
                            <ruby id="tpvd9"></ruby>

                                  <thead id="tpvd9"></thead>