<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卡接口原理與不同實(shí)現方式對比

                  文章出處:http://psychicreadingswithdeb.com 作者:北京交通大學(xué) 李永清&nbsp;&nbsp; 人氣: 發(fā)表時(shí)間:2011年11月04日

                  [文章內容簡(jiǎn)介]:接觸式IC卡接口原理與不同實(shí)現方式對比

                  摘要:詳細介紹接觸式IC卡讀寫(xiě)原理;結合一個(gè)基于不同讀寫(xiě)芯片、可以同時(shí)操作6片接觸式IC卡的系統,對包括并行通信、半雙工串行通信和I2C通信的幾種不同接口形式的IC卡讀寫(xiě)芯片進(jìn)行了詳細的對比分析。

                  引 言

                  I(yíng)C卡 (Integrated Circuit Card,集成電路卡)是繼磁卡之后出現的又一種新型信息工具。IC卡在有些國家和地區也稱(chēng)智能卡(smart card)、智慧卡(intelligent card)、微電路卡(microcircuit card)或微芯片卡等。它是將一個(gè)微電子芯片嵌入符合ISO 7816標準的卡基中,做成卡片形式;已經(jīng)十分廣泛地應用于包括金融、交通、社保等很多領(lǐng)域。

                    IC卡讀寫(xiě)器是IC卡與應用系統間的橋梁,在ISO國際標準中稱(chēng)之為接口設備IFD(Interface Device)。IFD內的CPU通過(guò)一個(gè)接口電路與IC卡相連并進(jìn)行通信。IC卡接口電路是IC卡讀寫(xiě)器中至關(guān)重要的部分,根據實(shí)際應用系統的不同,可選擇并行通信、半雙工串行通信和I2C通信等不同的IC卡讀寫(xiě)芯片。

                  1 接觸式IC卡接口技術(shù)原理

                    IC卡讀寫(xiě)器要能讀寫(xiě)符合ISO7816標準的IC卡。IC卡接口電路作為IC卡與IFD內的CPU進(jìn)行通信的唯一通道,為保證通信和數據交換的安全與可靠,其產(chǎn)生的電信號必須滿(mǎn)足下面的特定要求。

                  1.1 完成IC卡插入與退出的識別操作

                    IC卡接口電路對IC卡插入與退出的識別,即卡的激活和釋放,有很?chē)栏竦臅r(shí)序要求。如果不能滿(mǎn)足相應的要求,IC卡就不能正常進(jìn)行操作;嚴重時(shí)將損壞IC卡或IC卡讀寫(xiě)器。

                  (1)激活過(guò)程
                  為啟動(dòng)對卡的操作,接口電路應按圖1所示順序激活電路:
                  ◇RST處于L狀態(tài);
                  ◇根據所選擇卡的類(lèi)型,對VCC加電A類(lèi)或B類(lèi),正常操作條件下VCC的電特性見(jiàn)表1;
                  ◇VPP上升為空閑狀態(tài);
                  ◇接口電路的I/O應置于接收狀態(tài);
                  ◇向IC卡的CLK提供時(shí)鐘信號(A類(lèi)卡1~5MHz,B類(lèi)卡1~4MHz)。
                      
                    如圖1所示,在t’a時(shí)間對IC卡的CLK加時(shí)鐘信號。I/O線(xiàn)路應在時(shí)鐘信號加于CLK的200個(gè)時(shí)鐘周期(ta)內被置于高阻狀態(tài)Z(ta 時(shí)間在t’a之后)。時(shí)鐘加于CLK后,保持RST為狀態(tài)L至少400周期(tb)使卡復位(tb在t’a之后)。在時(shí)間t’b,RST被置于狀態(tài)H。I/O上的應答應在RST上信號上升沿之后的400~40 000個(gè)時(shí)鐘周期(tc)內開(kāi)始(tc在t’b之后)。

                    在RST處于狀態(tài)H的情況下,如果應答信號在40 000個(gè)時(shí)鐘周期內仍未開(kāi)始,RST上的信號將返回到狀態(tài)L,且IC卡接口電路按照圖2所示對IC卡產(chǎn)生釋放。
                      
                  (2)釋放過(guò)程
                  當信息交換結束或失敗時(shí)(例如,無(wú)卡響應或卡被移出),接口電路應按圖2所示時(shí)序釋放電路:
                  ◇RST應置為狀態(tài)L;
                  ◇CLK應置為狀態(tài)L(除非時(shí)鐘已在狀態(tài)L上停止);
                  ◇VPP應釋放(如果它已被激活);
                  ◇I/O應置為狀態(tài)A(在td時(shí)間內沒(méi)有具體定義);
                  ◇VCC應釋放。

                  1.2 通過(guò)觸點(diǎn)向卡提供穩定的電源

                    IC卡接口電路應能在表1規定的電壓范圍內,向IC卡提供相應穩定的電流。

                  1.3 通過(guò)觸點(diǎn)向卡提供穩定的時(shí)鐘

                    IC卡接口電路向卡提供時(shí)鐘信號。時(shí)鐘信號的實(shí)際頻率范圍在復位應答期間,應在以下范圍內:A類(lèi)卡,時(shí)鐘應在1~5MHz;B類(lèi)卡,時(shí)鐘應在1~4MHz。

                    復位后,由收到的ATR(復位應答)信號中的F(時(shí)鐘頻率變換因子)和D(比特率調整因子)來(lái)確定。

                    時(shí)鐘信號的工作周期應為穩定操作期間周期的40%~60%。當頻率從一個(gè)值轉換到另一個(gè)值時(shí),應注意保證沒(méi)有比短周期的40%更短的脈沖。

                  2 幾種實(shí)現方式的對比與分析

                    IFD內的IC卡讀寫(xiě)芯片,按其與IFD內的CPU的通信方式進(jìn)行分類(lèi),有并行通信、半雙工串行通信和I2C通信的讀寫(xiě)芯片。圖3是一個(gè)基于三種不同通信方式讀寫(xiě)芯片的通用IC卡讀寫(xiě)器的原理示意。這個(gè)系統可以同時(shí)對6片IC卡進(jìn)行操作,其中每一個(gè)IC卡讀寫(xiě)芯片都可以驅動(dòng)2片IC卡。應用系統可以根據實(shí)際情況合理選用其中的一種或多種讀寫(xiě)芯片。

                  2.1 IC卡讀寫(xiě)芯片的硬件對比分析

                  (1)通信方式為并行通信的CTS56I01
                    CTS56I01支持兩個(gè)符合ISO/IEC7816-3標準的T0和T1傳輸協(xié)議的IC卡。它采用并行的方式與IFD內的CPU通信;可以檢查到卡的插入與拔出,并自動(dòng)產(chǎn)生激活與釋放時(shí)序。CTS56I01內部每個(gè)通道都有發(fā)送緩沖空、ATR超時(shí)、釋放檢測完成、TS沒(méi)有收到等10個(gè)獨立的中斷源,當CTS56I01內部的狀態(tài)發(fā)生變化時(shí),可以產(chǎn)生中斷信號。系統通過(guò)P0口與CTS56I01的數據線(xiàn)相連,地址選擇用P2[2:0],兩個(gè)中斷信號經(jīng)過(guò)或門(mén)后接到89C51的INT0上。對IC卡的所有操作,只是對CTS56I01內部寄存器的讀寫(xiě)操作,方便可靠。CTS56I01采用LQFP-32封裝,僅占很小的空間。

                  (2)通信方式為半雙工串行通信的WatchCore
                    WatchCore是握奇公司為了方便各種嵌入式設備與IC卡的通信開(kāi)發(fā)而推出的一款I(lǐng)C卡讀寫(xiě)芯片,硬件平臺采用ST7261單片機,內部掩膜有握奇公司對IC卡進(jìn)行讀寫(xiě)操作的全部程序;支持ISO/IEC 7816 T=0、T=1異步傳輸協(xié)議的各種智能卡,支持對Memory卡操作,支持雙卡頭操作,與接口CPU采用半雙工串行通信。系統用P1.1和P1.2模擬一個(gè)串口與WatchCore進(jìn)行通信。WatchCore采用SO-20裝封,占PCB板很小的位置。

                  (3)通信方式為I2C的TDA8020
                    TDA8020是Philips生產(chǎn)的支持兩個(gè)獨立IC卡的讀寫(xiě)芯片,IFD內的CPU采用I2C的方式向TDA8020發(fā)送命令和讀取狀態(tài),通過(guò)TDA8020的I/OuC端口向IC卡發(fā)送和接收數據。它支持符合ISO/IEC7816-3 T=0、T=1標準的IC卡,也支持符合EMV3.1.1(Europay,MasterCard,VISA)標準的卡。與它Pin-to-Pin兼容的芯片還有ST公司生產(chǎn)的ST8020等。TDA8020有2個(gè)地址選擇引腳。本系統的地址引腳接地,兩個(gè)IC卡對應的地址分別為0x40和0x48。I2C的時(shí)鐘信號和數據信號分別由89C51的P1.3和P1.4進(jìn)行模擬,IC卡的數據通道I/OuC連89C51的P1.5和P1.6。TDA8020也采用LQFP-32裝封。

                  2.2 IC卡讀寫(xiě)芯片的軟件設計

                  2.2.1 通信方式為并行通信的CTS56I01

                    CST56I01只有3根地址線(xiàn),內部卻有37個(gè)寄存器。其中有8個(gè)寄存器可以直接訪(fǎng)問(wèn),另外的29個(gè)寄存器要通過(guò)索引地址寄存器(IAR)來(lái)訪(fǎng)問(wèn)。其訪(fǎng)問(wèn)分為兩步:第一步是將要間接訪(fǎng)問(wèn)的寄存器的地址寫(xiě)到IAR寄存器中;第二步就是從數據寄存器(DR)中讀出數據或寫(xiě)入數據到DR寄存器中,來(lái)完成對要間接訪(fǎng)問(wèn)的寄存器的訪(fǎng)問(wèn)。
                  下面的C51子程序是基于圖3的寫(xiě)一個(gè)字節到要間接訪(fǎng)問(wèn)的寄存器中的子程序。
                  #define SN2_IAR XBYTE[0x0000]
                  #define SN2_DR XBYTE[0x0100]
                  void WriteByteIndexed(BYTE bIndex, BYTE bData) {
                  P1.0=0;
                  SN2_IAR = bIndex;
                  SN2_DR = bData;
                  }

                  2.2.2 WatchCore的軟件設計

                    WatchCore是不帶硬件的UART,其串行通信是用軟件實(shí)時(shí)仿真的。通信速度采用9600bps;通信字節格式為1位起始位,8位數據位,1位偶校驗位,2位停止位。TXD與RXD電氣信號是標準的CMOS電平,可直接與TTL的電路相連。以下是通信時(shí)的數據包格式。

                  (1)命令包
                  命令包是IC卡讀寫(xiě)器內的CPU發(fā)往WatchCore的數據,其包格式如下:

                  NAD為卡頭選擇, NAD=0x00/0x12為主卡頭,NAD=0x13為從卡頭;
                  PCB與通信無(wú)關(guān),CPU卡T=1時(shí)使用,PCB通常設置為0x00;
                  LEN為數據的字節長(cháng)度(僅DATA段的字節數);
                  DATA為發(fā)送WactchCore或IC卡內的命令(命令參考ISO7816-4的標準);
                  BCC為異或校驗字節(BCC段前的4段所有字節的異或和)。

                  (2)數據包
                  數據包是WatchCore 收到命令包后返回的數據,其包格式如下:

                  NAD* 是WatchCore把命令包中NAD字節的高低4位互換后的返回。例如,命令包發(fā)送NAD=0x12,WatchCore則返回NAD*=0x21;
                  其它各段與命令包相同。
                  通信舉例(以下數據都用十六進(jìn)制表示)
                  對主卡進(jìn)行復位
                  發(fā)送命令包如下:
                  12 00 05 00 12 00 00 00 05
                  若主卡頭中無(wú)卡,則WatchCore返回:
                  21 00 02 62 00 41
                  若主卡頭有一張T=0的CPU卡,則可能返回:
                  21 00 11 3B 7A 18 00 00 21 08 11 12 13 14 15 16 17 18 90 00 D8

                  2.2.3 TDA8020的軟件設計

                    TDA8020與IFD內CPU的通信是用I2C總線(xiàn)方式進(jìn)行的。通過(guò)I2C接口,IFD內的CPU可以向TDA8020發(fā)送命令或讀取TDA8020的狀態(tài)。TDA8020有兩個(gè)地址選擇引腳(SAD0和SAD1)。在圖3中,這兩個(gè)地址選擇引腳接地,對應兩個(gè)IC卡的I2C總線(xiàn)地址分別是40H和48H。如果系統中有別的I2C總線(xiàn)器件,可以按表2的方式進(jìn)行尋址。
                           
                  (1)向TDA8020寫(xiě)入命令的格式
                  圖4為向TDA8020寫(xiě)入命令的格式。按圖3所示,對卡1的地址和寫(xiě)的字節為40H。
                  其中控制字節各位的含義如表3所列。



                             
                  (2)讀TDA8020內部狀態(tài)的數據格式
                  從TDA8020讀出狀態(tài)的格式如圖5所示。按圖3所示,對卡1的地址和讀的字節為41H。
                  其中狀態(tài)字節中各位的含義如表5所列。



                  3 總 結

                    以上比較詳細地介紹了三種不同接口的IC卡讀寫(xiě)芯片。這三種方式最大的區別在于其與IFD內的CPU的通信方式不一樣,并且也都符合ISO/IEC7816的標準。但是,這三個(gè)讀寫(xiě)芯片有一些地方也存在一些差異。

                    TDA8020支持A類(lèi)和B類(lèi)卡,但是WatchCore和SNIPER II CST56I01只支持A類(lèi)卡。(雖然SNIPER II CST56I01內部寄存器中有一位是卡類(lèi)選擇,但卻只支持A類(lèi)卡。)

                    TDA8020和SNIPER II CST56I01其ESD保護達6kV,但是WatchCore卻沒(méi)有ESD保護功能。

                    TDA8020對卡的電源可以直接支持,并有過(guò)流保護功能;但是WatchCore和SNIPER II CST56I01卻只有通過(guò)一個(gè)功放管來(lái)實(shí)現,并且沒(méi)有過(guò)流保護功能,只有外接保護電路(如加可復位保險絲)。

                    就其接口方式來(lái)說(shuō),I2C總線(xiàn)的TDA8020和串口的WatchCore雖然與IC卡讀寫(xiě)器內的CPU的連接方便,但是一般CPU沒(méi)有多余的串口和I2C總線(xiàn)接口給這兩個(gè)芯片,一般要用通用I/O口來(lái)模擬串口和I2C總線(xiàn)接口才能進(jìn)行通信。而SNIPER II CST56I01與IFD內的CPU的并行通信雖然連接線(xiàn)較多,但其相應的軟件就方便多了。

                    綜上所述,這三個(gè)IC卡讀寫(xiě)芯片各有不同,在實(shí)現應用的過(guò)程中,只有根據不同的資源情況來(lái)選用不同的讀寫(xiě)芯片。

                                   參考文獻
                  1 CTS56I01 Data Sheet REV1.0.2. 2002
                  2 TDA8020HL Data Sheet. 2002
                  3 WatchCore用戶(hù)手冊. 2002-05
                  4 陸永寧. IC卡應用系統. 南京:東南大學(xué)出版社, 2000
                  5 張毅剛, 等. MCS-51單片機應用設計. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社 , 1997

                  本文關(guān)鍵詞:接觸式IC卡接口原理與不同實(shí)現方式對比
                  回到頂部
                  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>