摘要:詳細介紹接觸式IC卡讀寫原理;結(jié)合一個基于不同讀寫芯片、可以同時操作6片接觸式IC卡的系統(tǒng),對包括并行通信、半雙工串行通信和I2C通信的幾種不同接口形式的IC卡讀寫芯片進行了詳細的對比分析。
引 言
??IC卡 (Integrated Circuit Card,集成電路卡)是繼磁卡之后出現(xiàn)的又一種新型信息工具。IC卡在有些國家和地區(qū)也稱智能卡(smart card)、智慧卡(intelligent card)、微電路卡(microcircuit card)或微芯片卡等。它是將一個微電子芯片嵌入符合ISO 7816標(biāo)準(zhǔn)的卡基中,做成卡片形式;已經(jīng)十分廣泛地應(yīng)用于包括金融、交通、社保等很多領(lǐng)域。
IC卡讀寫器是IC卡與應(yīng)用系統(tǒng)間的橋梁,在ISO國際標(biāo)準(zhǔn)中稱之為接口設(shè)備IFD(Interface Device)。IFD內(nèi)的CPU通過一個接口電路與IC卡相連并進行通信。IC卡接口電路是IC卡讀寫器中至關(guān)重要的部分,根據(jù)實際應(yīng)用系統(tǒng)的不同,可選擇并行通信、半雙工串行通信和I2C通信等不同的IC卡讀寫芯片。
1 接觸式IC卡接口技術(shù)原理
IC卡讀寫器要能讀寫符合ISO7816標(biāo)準(zhǔn)的IC卡。IC卡接口電路作為IC卡與IFD內(nèi)的CPU進行通信的唯一通道,為保證通信和數(shù)據(jù)交換的安全與可靠,其產(chǎn)生的電信號必須滿足下面的特定要求。
1.1 完成IC卡插入與退出的識別操作
IC卡接口電路對IC卡插入與退出的識別,即卡的激活和釋放,有很嚴格的時序要求。如果不能滿足相應(yīng)的要求,IC卡就不能正常進行操作;嚴重時將損壞IC卡或IC卡讀寫器。
(1)激活過程
為啟動對卡的操作,接口電路應(yīng)按圖1所示順序激活電路:
◇RST處于L狀態(tài);
◇根據(jù)所選擇卡的類型,對VCC加電A類或B類,正常操作條件下VCC的電特性見表1;
表1 正常操作條件VCC的電特性
符 號 | 最小值 | 最大值 | 條 件 |
Vvcc/V | 4.5 2.7 | 5.5 3.3 | A類 B類 |
Icc/mA | 60500.5 | A類,在最大允許頻率 B類,在最大允許頻率時鐘停止 |
◇VPP上升為空閑狀態(tài);
◇接口電路的I/O應(yīng)置于接收狀態(tài);
◇向IC卡的CLK提供時鐘信號(A類卡1~5MHz,B類卡1~4MHz)。
圖3
如圖1所示,在t’a時間對IC卡的CLK加時鐘信號。I/O線路應(yīng)在時鐘信號加于CLK的200個時鐘周期(ta)內(nèi)被置于高阻狀態(tài)Z(ta 時間在t’a之后)。時鐘加于CLK后,保持RST為狀態(tài)L至少400周期(tb)使卡復(fù)位(tb在t’a之后)。在時間t’b,RST被置于狀態(tài)H。I/O上的應(yīng)答應(yīng)在RST上信號上升沿之后的400~40 000個時鐘周期(tc)內(nèi)開始(tc在t’b之后)。
在RST處于狀態(tài)H的情況下,如果應(yīng)答信號在40 000個時鐘周期內(nèi)仍未開始,RST上的信號將返回到狀態(tài)L,且IC卡接口電路按照圖2所示對IC卡產(chǎn)生釋放。
(2)釋放過程
當(dāng)信息交換結(jié)束或失敗時(例如,無卡響應(yīng)或卡被移出),接口電路應(yīng)按圖2所示時序釋放電路:
◇RST應(yīng)置為狀態(tài)L;
◇CLK應(yīng)置為狀態(tài)L(除非時鐘已在狀態(tài)L上停止);
◇VPP應(yīng)釋放(如果它已被激活);
◇I/O應(yīng)置為狀態(tài)A(在td時間內(nèi)沒有具體定義);
◇VCC應(yīng)釋放。
圖4
1.2 通過觸點向卡提供穩(wěn)定的電源
IC卡接口電路應(yīng)能在表1規(guī)定的電壓范圍內(nèi),向IC卡提供相應(yīng)穩(wěn)定的電流。
1.3 通過觸點向卡提供穩(wěn)定的時鐘
IC卡接口電路向卡提供時鐘信號。時鐘信號的實際頻率范圍在復(fù)位應(yīng)答期間,應(yīng)在以下范圍內(nèi):A類卡,時鐘應(yīng)在1~5MHz;B類卡,時鐘應(yīng)在1~4MHz。
復(fù)位后,由收到的ATR(復(fù)位應(yīng)答)信號中的F(時鐘頻率變換因子)和D(比特率調(diào)整因子)來確定。
時鐘信號的工作周期應(yīng)為穩(wěn)定操作期間周期的40%~60%。當(dāng)頻率從一個值轉(zhuǎn)換到另一個值時,應(yīng)注意保證沒有比短周期的40%更短的脈沖。
2 幾種實現(xiàn)方式的對比與分析
IFD內(nèi)的IC卡讀寫芯片,按其與IFD內(nèi)的CPU的通信方式進行分類,有并行通信、半雙工串行通信和I2C通信的讀寫芯片。圖3是一個基于三種不同通信方式讀寫芯片的通用IC卡讀寫器的原理示意。這個系統(tǒng)可以同時對6片IC卡進行操作,其中每一個IC卡讀寫芯片都可以驅(qū)動2片IC卡。應(yīng)用系統(tǒng)可以根據(jù)實際情況合理選用其中的一種或多種讀寫芯片。
2.1 IC卡讀寫芯片的硬件對比分析
(1)通信方式為并行通信的CTS56I01
CTS56I01支持兩個符合ISO/IEC7816-3標(biāo)準(zhǔn)的T0和T1傳輸協(xié)議的IC卡。它采用并行的方式與IFD內(nèi)的CPU通信;可以檢查到卡的插入與拔出,并自動產(chǎn)生激活與釋放時序。CTS56I01內(nèi)部每個通道都有發(fā)送緩沖空、ATR超時、釋放檢測完成、TS沒有收到等10個獨立的中斷源,當(dāng)CTS56I01內(nèi)部的狀態(tài)發(fā)生變化時,可以產(chǎn)生中斷信號。系統(tǒng)通過P0口與CTS56I01的數(shù)據(jù)線相連,地址選擇用P2[2:0],兩個中斷信號經(jīng)過或門后接到89C51的INT0上。對IC卡的所有操作,只是對CTS56I01內(nèi)部寄存器的讀寫操作,方便可靠。CTS56I01采用LQFP-32封裝,僅占很小的空間。
(2)通信方式為半雙工串行通信的WatchCore
WatchCore是握奇公司為了方便各種嵌入式設(shè)備與IC卡的通信開發(fā)而推出的一款I(lǐng)C卡讀寫芯片,硬件平臺采用ST7261單片機,內(nèi)部掩膜有握奇公司對IC卡進行讀寫操作的全部程序;支持ISO/IEC 7816 T=0、T=1異步傳輸協(xié)議的各種智能卡,支持對Memory卡操作,支持雙卡頭操作,與接口CPU采用半雙工串行通信。系統(tǒng)用P1.1和P1.2模擬一個串口與WatchCore進行通信。WatchCore采用SO-20裝封,占PCB板很小的位置。
圖5
(3)通信方式為I2C的TDA8020
TDA8020是Philips生產(chǎn)的支持兩個獨立IC卡的讀寫芯片,IFD內(nèi)的CPU采用I2C的方式向TDA8020發(fā)送命令和讀取狀態(tài),通過TDA8020的I/OuC端口向IC卡發(fā)送和接收數(shù)據(jù)。它支持符合ISO/IEC7816-3 T=0、T=1標(biāo)準(zhǔn)的IC卡,也支持符合EMV3.1.1(Europay,MasterCard,VISA)標(biāo)準(zhǔn)的卡。與它Pin-to-Pin兼容的芯片還有ST公司生產(chǎn)的ST8020等。TDA8020有2個地址選擇引腳。本系統(tǒng)的地址引腳接地,兩個IC卡對應(yīng)的地址分別為0x40和0x48。I2C的時鐘信號和數(shù)據(jù)信號分別由89C51的P1.3和P1.4進行模擬,IC卡的數(shù)據(jù)通道I/OuC連89C51的P1.5和P1.6。TDA8020也采用LQFP-32裝封。
2.2 IC卡讀寫芯片的軟件設(shè)計
2.2.1 通信方式為并行通信的CTS56I01
CST56I01只有3根地址線,內(nèi)部卻有37個寄存器。其中有8個寄存器可以直接訪問,另外的29個寄存器要通過索引地址寄存器(IAR)來訪問。其訪問分為兩步:第一步是將要間接訪問的寄存器的地址寫到IAR寄存器中;第二步就是從數(shù)據(jù)寄存器(DR)中讀出數(shù)據(jù)或?qū)懭霐?shù)據(jù)到DR寄存器中,來完成對要間接訪問的寄存器的訪問。
下面的C51子程序是基于圖3的寫一個字節(jié)到要間接訪問的寄存器中的子程序。
#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的軟件設(shè)計
WatchCore是不帶硬件的UART,其串行通信是用軟件實時仿真的。通信速度采用9600bps;通信字節(jié)格式為1位起始位,8位數(shù)據(jù)位,1位偶校驗位,2位停止位。TXD與RXD電氣信號是標(biāo)準(zhǔn)的CMOS電平,可直接與TTL的電路相連。以下是通信時的數(shù)據(jù)包格式。
(1)命令包
命令包是IC卡讀寫器內(nèi)的CPU發(fā)往WatchCore的數(shù)據(jù),其包格式如下:
NAD | PCB | LEN | DATA | BCC |
NAD為卡頭選擇, NAD=0x00/0x12為主卡頭,NAD=0x13為從卡頭;
PCB與通信無關(guān),CPU卡T=1時使用,PCB通常設(shè)置為0x00;
LEN為數(shù)據(jù)的字節(jié)長度(僅DATA段的字節(jié)數(shù));
DATA為發(fā)送WactchCore或IC卡內(nèi)的命令(命令參考ISO7816-4的標(biāo)準(zhǔn));
BCC為異或校驗字節(jié)(BCC段前的4段所有字節(jié)的異或和)。
(2)數(shù)據(jù)包
數(shù)據(jù)包是WatchCore 收到命令包后返回的數(shù)據(jù),其包格式如下:
NAD* 是WatchCore把命令包中NAD字節(jié)的高低4位互換后的返回。例如,命令包發(fā)送NAD=0x12,WatchCore則返回NAD*=0x21;
其它各段與命令包相同。
通信舉例(以下數(shù)據(jù)都用十六進制表示)
對主卡進行復(fù)位
發(fā)送命令包如下:
12 00 05 00 12 00 00 00 05
若主卡頭中無卡,則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的軟件設(shè)計
TDA8020與IFD內(nèi)CPU的通信是用I2C總線方式進行的。通過I2C接口,IFD內(nèi)的CPU可以向TDA8020發(fā)送命令或讀取TDA8020的狀態(tài)。TDA8020有兩個地址選擇引腳(SAD0和SAD1)。在圖3中,這兩個地址選擇引腳接地,對應(yīng)兩個IC卡的I2C總線地址分別是40H和48H。如果系統(tǒng)中有別的I2C總線器件,可以按表2的方式進行尋址。
表2 TDA8020的I2C地址選擇表
SAD1 | SAD0 | CARD1 | CARD2 |
0 | 0 | 40H | 48H |
0 | 1 | 42H | 4AH |
1 | 0 | 46H | 4CH |
1 | 1 | 48H | 4EH |
(1)向TDA8020寫入命令的格式
圖4為向TDA8020寫入命令的格式。按圖3所示,對卡1的地址和寫的字節(jié)為40H。
其中控制字節(jié)各位的含義如表3所列。
表3 命令控制字節(jié)各位的含義
名 稱 | 位 | 說 明 |
START和/STOP | 0 | 為1,產(chǎn)生一個冷復(fù)位的激活時序:為0,產(chǎn)生一個釋放時序 |
WARM | 1 | 為1,產(chǎn)生一個熱復(fù)位時序 |
3/5V | 2 | 為1,設(shè)定卡的操作電壓為3V;為0,設(shè)定卡的操作電壓為5V |
PDOWN | 3 | 為1,設(shè)定卡為下電模式;為0,設(shè)定卡為正常工作模式 |
CLKPD | 4 | 為1,設(shè)定下電模式下CLK停在高電平;為0,設(shè)定下電模式下CLK停在低電平 |
CLKSEL1 | 5 | 兩位設(shè)定卡在正常工作模式時的工作時鐘頻率見表4 |
CLKSEL2 | 6 | |
I/OEN | 7 | I/O使能位。為1時,I/O與I/Ouc相連;為0時,I/Ouc是高阻狀態(tài) |
(2)讀TDA8020內(nèi)部狀態(tài)的數(shù)據(jù)格式
從TDA8020讀出狀態(tài)的格式如圖5所示。按圖3所示,對卡1的地址和讀的字節(jié)為41H。
其中狀態(tài)字節(jié)中各位的含義如表5所列。
表4 工作時鐘頻率選擇方式
CLKSEL2 | CLKSEL1 | CLOCK OU |
0 | 0 | CLKIN/8 |
0 | 0 | CLKIN/4 |
1 | 0 | CLKIN/2 |
1 | 1 | CLKIN |
表5 狀態(tài)字節(jié)各位的含義
名 稱 | 位 | 說 明 |
PRES | 0 | 卡的狀態(tài)指示。為1時,檢測到卡:為0時,沒有檢測到卡 |
PRESL | 1 | 為1時,卡的狀態(tài)還沒有讀;當(dāng)為0時,卡的狀態(tài)已讀出 |
I/O | 2 | I/O為高時,這位為1;當(dāng)I/O為低時,這位為0 |
SUPL | 3 | 為1時,表示電源監(jiān)控器已輸出,上電后就為1,直到讀出后為0 |
PROT | 4 | 為1時,表示過熱或過載狀態(tài) |
MUTE | 5 | 為1時表示卡在規(guī)定的時間內(nèi)沒有發(fā)出ATR信號 |
EARLY | 6 | 為1時表示卡在規(guī)定的時間前就已經(jīng)發(fā)出ATR信號 |
ACTIVE | 7 | 為1時,卡處于激活狀態(tài);為0時,卡處于釋放狀態(tài) |
3 總 結(jié)
以上比較詳細地介紹了三種不同接口的IC卡讀寫芯片。這三種方式最大的區(qū)別在于其與IFD內(nèi)的CPU的通信方式不一樣,并且也都符合ISO/IEC7816的標(biāo)準(zhǔn)。但是,這三個讀寫芯片有一些地方也存在一些差異。
TDA8020支持A類和B類卡,但是WatchCore和SNIPER II CST56I01只支持A類卡。(雖然SNIPER II CST56I01內(nèi)部寄存器中有一位是卡類選擇,但卻只支持A類卡。)
TDA8020和SNIPER II CST56I01其ESD保護達6kV,但是WatchCore卻沒有ESD保護功能。
TDA8020對卡的電源可以直接支持,并有過流保護功能;但是WatchCore和SNIPER II CST56I01卻只有通過一個功放管來實現(xiàn),并且沒有過流保護功能,只有外接保護電路(如加可復(fù)位保險絲)。
就其接口方式來說,I2C總線的TDA8020和串口的WatchCore雖然與IC卡讀寫器內(nèi)的CPU的連接方便,但是一般CPU沒有多余的串口和I2C總線接口給這兩個芯片,一般要用通用I/O口來模擬串口和I2C總線接口才能進行通信。而SNIPER II CST56I01與IFD內(nèi)的CPU的并行通信雖然連接線較多,但其相應(yīng)的軟件就方便多了。
綜上所述,這三個IC卡讀寫芯片各有不同,在實現(xiàn)應(yīng)用的過程中,只有根據(jù)不同的資源情況來選用不同的讀寫芯片。
- 接觸式I(6414)
- 方式對比(6703)
相關(guān)推薦
什么是非接觸式IC卡 非接觸式IC卡的分類

基于STM32的公交車非接觸式IC卡自動收費系統(tǒng)

帶你了解Ic卡與射頻卡的區(qū)別

IC卡讀寫系統(tǒng)的單片機實現(xiàn) STM32+MFRC522實現(xiàn)IC卡讀寫


藍天工控非接觸式IC卡收費系統(tǒng)解決方案
基于射頻識別讀寫器芯片實現(xiàn)非接觸式IC識別器的設(shè)計


非接觸式IC卡的模擬和高頻傳輸通路的接口電路設(shè)計


采用射頻識別技術(shù)芯片MF RC632實現(xiàn)非接觸式IC識別器的設(shè)計


AT89S8252單片機實現(xiàn)接觸式IC卡讀寫控制的設(shè)計


非接觸式ic卡種類

非接觸式ic卡與接觸式區(qū)別

非接觸式ic卡的優(yōu)缺點

非接觸式ic卡的工作原理

如何實現(xiàn)PicoRead RF的非接觸IC卡讀卡器的設(shè)計


Mifare 1 S50非接觸式RFID IC卡資料簡介

詳解IC卡、ID卡、M1卡、射頻卡四種智能卡的區(qū)別

通過讀取IC卡確認駕駛員身份的汽車行駛記錄儀的設(shè)計


非接觸式讀卡器設(shè)計方案匯總,包括RFID,磁卡等介紹

射頻卡設(shè)計原理及實現(xiàn)簡介


IC卡這么重要你知道它的原理嗎?

基于單片機的非接觸式IC卡的應(yīng)用及其設(shè)計

非接觸式讀卡器設(shè)計方案匯總

基于FPGA的IC卡控制器的實現(xiàn)

非接觸IC卡控制系統(tǒng)的設(shè)計方案

基于非接觸式IC卡校園門禁管理系統(tǒng)的要求及其設(shè)計與實現(xiàn)

非接觸式IC卡(射頻卡)的組成及其應(yīng)用系統(tǒng)的研究與設(shè)計

RT6型接觸式IC卡讀寫機介紹

采用NuMicro M05132讀寫接觸式IC卡接口電路


基于MFRC530的非接觸式IC讀卡系統(tǒng)設(shè)計


基于ARM的非接觸式IC卡讀卡器設(shè)計

非接觸式IC卡在倉庫管理中的應(yīng)用


非接觸式IC卡讀寫芯片使用指南

支持B類CPU卡的5V接觸式讀寫器設(shè)計

一種基于Mifare卡的射頻讀寫器的設(shè)計與實現(xiàn)

非接觸式IC卡技術(shù)

門禁系統(tǒng)非接觸式IC卡讀卡器的設(shè)計

非接觸式IC卡,非接觸式IC卡是什么意思

接觸式IC卡,接觸式IC卡是什么意思

載頻為13.56MHz非接觸式IC卡接收模塊設(shè)計


公交非接觸IC卡讀寫器的應(yīng)用設(shè)計

非接觸式IC卡詳細資料

ISO15693非接觸式IC卡射頻前端電路的設(shè)計

非接觸IC卡模塊封裝技術(shù)

非接觸式IC卡節(jié)水控制器的設(shè)計與實現(xiàn)


非接觸式存儲器IC

便攜式非接觸式IC卡讀寫器的設(shè)計


基于89C51的IC卡讀寫器設(shè)計與實現(xiàn)

非接觸式IC卡智能熱能表的研制

H4001非接觸式IC卡讀卡程序的研究


IC 卡接口芯片TDA8007 讀寫器設(shè)計

基于MF RC500的非接觸式IC卡讀寫器設(shè)計

非接觸IC卡讀寫模塊MFRC530的工作原理及其應(yīng)用

非接觸IC卡讀寫器的應(yīng)用設(shè)計

非接觸IC卡讀寫程序

非接觸式IC卡預(yù)收費電度表的設(shè)計


評論