智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議及詳解_第1頁
智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議及詳解_第2頁
智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議及詳解_第3頁
智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議及詳解_第4頁
智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議及詳解_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、智能卡數(shù)據(jù)傳輸T1傳輸協(xié)議類別:消費(fèi)電子   閱讀:883 T1傳輸協(xié)議是智能卡的異步半雙工通信協(xié)議。它立足于國際標(biāo)準(zhǔn)ISO/IEC 7816-3。EMV規(guī)范也和此協(xié)議 有關(guān)。T1協(xié)議是面向字組的協(xié)議,這就是說一個(gè)字組是卡和終端之間可以傳輸?shù)淖钚?shù)據(jù)單元。 這項(xiàng)協(xié)議以嚴(yán)格的層次劃分為特點(diǎn),可作為數(shù)據(jù)鏈路層歸入OSI參考模型中。在這種意義上,層次劃分也 就意味著數(shù)據(jù)指向較高的層次,諸如應(yīng)用層,并可完全由數(shù)據(jù)鏈路層透明地處理。除了這一層直接和所傳輸 的數(shù)據(jù)的內(nèi)容的解釋與修改有關(guān)之外,不再需要?jiǎng)e的層次。特別是報(bào)文的安全性需要嚴(yán)格地遵守層次劃分,只有這樣才能使用戶加密的數(shù)據(jù)通過接口

2、而不必求助于復(fù) 雜的方法或技巧。目前,T=1是惟一的國際智能卡協(xié)議可以使安全數(shù)據(jù)得以在其所有變型的情況下傳輸而沒 有任何問題或危及其安全性。傳輸?shù)倪^程開始于卡送出ATR之后,或在成功執(zhí)行了PTS之后。第1個(gè)字組由終端發(fā)送,下一個(gè)則由卡發(fā)送 。于是,通信按此方式繼續(xù),發(fā)送權(quán)在終端與卡之間輪換。順便提及,T1協(xié)議的應(yīng)用不限于智能卡終端的通信,它被用于多種終端和它們與之相連的計(jì)算機(jī)間交 換有用的數(shù)據(jù)和控制數(shù)據(jù)。數(shù)據(jù)傳輸率對任何協(xié)議自然都是一個(gè)最令人感興趣的方面,表1列出了T=1協(xié)議傳輸某些典型命令的時(shí)間。表1 T=1傳輸協(xié)議對某些典型命令的數(shù)據(jù)傳輸時(shí)間(時(shí)鐘頻率為3.5712MHz,分頻值為372,

3、X0R差錯(cuò)檢測碼,每條命令有2位停止位和8位數(shù)據(jù)字節(jié),C命令 ,R=應(yīng)答) 1,字組結(jié)構(gòu) 所傳送的字組實(shí)質(zhì)上用于兩種不同的目的,其中之一是透明傳輸?shù)膽?yīng)用專用數(shù)據(jù),另一個(gè)則是傳輸協(xié)議控 制數(shù)據(jù)或?qū)鬏敳铄e(cuò)的處理。傳輸?shù)淖纸M由開始的組頭字段,信息字段和最后的組尾字段組成,組頭和組尾字段是強(qiáng)制性的,必須總是 發(fā)送的。相反,信息字段是可選的,它含有應(yīng)用層的數(shù)據(jù),它可能是發(fā)送給智能卡的命令A(yù)PDU或是來自卡的 應(yīng)答APDU。傳輸字組的結(jié)構(gòu)如圖1所示。 圖1 T1傳輸字組的結(jié)構(gòu) 在T=1中有三種基本的不同類型的字組:信息字組、接收確認(rèn)字組和系統(tǒng)字組。信息字組(I字組)用于透 明地交換應(yīng)用層的數(shù)據(jù)。接收確認(rèn)

4、字組(R字組),它不含有任何數(shù)據(jù)字段,被用于對接收的認(rèn)可或否認(rèn)。 系統(tǒng)字組(S字組)用于和協(xié)議本身有聯(lián)系的控制信息,取決于特定的控制信息,它們可能有一個(gè)信息字段 。2組頭字段 組頭字段含有三個(gè)子段:結(jié)點(diǎn)地址(NAD),協(xié)議控制字節(jié)(PCB)和長度(LEN),它為三字節(jié)長并含有對 實(shí)際傳輸字組的控制和指針數(shù)據(jù)。這三個(gè)子段的編碼見表2表5。1)結(jié)點(diǎn)地址NAD(Node ADdress) 組頭字段的第1個(gè)字節(jié)被稱為結(jié)點(diǎn)地址(NAD)字節(jié),它含有字組的目標(biāo)和源地址,它們的每一個(gè)用三位編 碼,如果未用地址,則有關(guān)位置為0。此外,為了和老的微控制器相容,對EEPROM或EPROM的編程電壓提供了 控制。然

5、而,這一點(diǎn)沒有實(shí)際應(yīng)用,因?yàn)楝F(xiàn)在的所有智能卡微控制器在芯片內(nèi)都有一個(gè)電荷泵。表2 結(jié)點(diǎn)地址(NAD字段)2)協(xié)議控制字節(jié)PCB(Protocol Control Byte) 接著結(jié)點(diǎn)地址的子段是協(xié)議控制字節(jié)(PCB)。如同名字所暗示,它用來控制和管理傳輸協(xié)議,這就增加了 所需的編碼數(shù)量,PCB字段主要用來編碼字組類型,以及有關(guān)的補(bǔ)充信息。表3 I字組的PCB字段表4 R字組的PCB字段表5 S字組的PCB字段3)長度LEN(LEngth Field) 字節(jié)的長度字段(LEN)以十六進(jìn)制的形式指明信息字段的長度,其值可為00至FE。編碼FF目 前未用而留各未來擴(kuò)充之用。3,信息字段 在I字組中,

6、信息字段起著應(yīng)用層數(shù)據(jù)(OSI第7層)的集裝箱的作用。此字段的內(nèi)容被完整而透明地傳送, 這就是說此內(nèi)容由傳輸協(xié)議直接送出,而不經(jīng)任何分析或評估。在S字組中,這個(gè)字段傳送關(guān)于傳輸協(xié)議的數(shù)據(jù),這是此字段的內(nèi)容用于傳輸層的惟一情形。按照ISO標(biāo)準(zhǔn),信息字段的大小范圍為00至FE(254)字節(jié),F(xiàn)F(255)被ISO為未來應(yīng)用而保 留。終端和卡可以有不同大小的I字段。終端I字段的缺省大小為32字節(jié)的接口設(shè)備信息字段大小(Inf。 rmation Field Size for the interface Device),它可以通過特殊的s字段來改變,這個(gè)32字節(jié)的缺省值 也適用于卡的卡信息字段大小IFS

7、C(Information Field Size for the Card),但它可由ATR中的一個(gè)參 數(shù)來修改。在實(shí)踐中,對于終端和卡二者,I字段的大小在50140字節(jié)之間。4,組尾字段 這個(gè)字段在字組的末尾傳送,含有一差錯(cuò)檢測碼,是由字組中前面所有的字節(jié)算得的。計(jì)算使用的要么是 縱向冗余檢測LRC(Longitudinal Redundancy Check)要么是循環(huán)冗余檢測CRC(Cyclic Redundancy Check )。所用方法必須在ATR的接口字符中予以規(guī)定。如果沒有規(guī)定,則隱含地約定使用LRC法。否則,根據(jù)ISO 3309就進(jìn)行CRC計(jì)算。所用除法多項(xiàng)式和V.41的推薦是

8、一樣的,G(X)=X16+X12+X5+1。兩種差錯(cuò)檢測碼只能用 于差錯(cuò)檢測,它們不能校正一個(gè)字組差錯(cuò)。單字節(jié)的縱向冗余校驗(yàn)和是串行級聯(lián)所有字組中前面的字節(jié)經(jīng)X0R算出的。這項(xiàng)計(jì)算可以執(zhí)行得非常之快,而 它的實(shí)現(xiàn)也用不了多少代碼。通常,它的執(zhí)行是在數(shù)據(jù)傳輸或接收時(shí)進(jìn)行的,它實(shí)際上是所有實(shí)現(xiàn)的T=1的標(biāo) 準(zhǔn)部分。使用CRC方法產(chǎn)生的差錯(cuò)檢測碼比起相對簡單的的X0R校驗(yàn)和來要產(chǎn)生遠(yuǎn)為高得多的差錯(cuò)檢測概率。然而,在 實(shí)際上這個(gè)方法目前幾乎從來都未被使用過,因?yàn)樗鼘?shí)現(xiàn)起來是高代碼強(qiáng)度的而且很慢。此外,組尾字段要擴(kuò) 充為2字節(jié),它進(jìn)一步降低了傳輸率。5發(fā)送和接收序列計(jì)數(shù)器 在T=1協(xié)議中的每個(gè)信息字組有

9、一個(gè)在PCB字節(jié)中的僅有1位的發(fā)送序列號。它按模2增量,這就是說它在0和1 之間交替。發(fā)送序列計(jì)數(shù)器也被稱作N(S)。協(xié)議開初的開始值為0,終端和智能卡的計(jì)數(shù)器是相互獨(dú)立地增 量的。發(fā)送序列計(jì)數(shù)器的主要目的是支持對于重發(fā)接收到的有差錯(cuò)字組的請求,因?yàn)楦鱾€(gè)數(shù)據(jù)字組能由N(S)毫不 含糊地尋址。6,等待時(shí)間 在數(shù)據(jù)傳輸時(shí),定義了不同的等待時(shí)間以提供發(fā)送方和接收方可以在精確規(guī)定的最小和最大時(shí)間區(qū)間內(nèi)的不 同處理。它們也提供了規(guī)定的方法去結(jié)束通信,以便防止在出差錯(cuò)情況下的死鎖。標(biāo)準(zhǔn)中對所有這些等待時(shí)間 都規(guī)定了缺省值,但可以修改它們以提高傳輸率,修改值是在ATR的特定接口字符中指明的。1)字符等待時(shí)間

10、(CWT) 字符等待時(shí)間的定義是字組內(nèi)相連兩字符開始邊之間的最大區(qū)間,如圖2所示。接收方在每一開始邊處啟動(dòng)一 減數(shù)定時(shí)器,以字符等待時(shí)間作為初始值,如果定時(shí)器已滿而又沒有檢測到新一位的開始邊,則接收方可認(rèn)為 傳送的字組已被完整接收。于是,“CWT接收準(zhǔn)則”可一般用作字組結(jié)束的檢測。然而,它卻顯著地減小了數(shù) 據(jù)傳輸率,因?yàn)槊?字組的時(shí)間都被字符等待時(shí)間CWT(Character Waiting Time)的持續(xù)時(shí)間增大了,字組的 結(jié)束最好是用計(jì)數(shù)接收的字節(jié)數(shù)來檢測。 圖2 字符等待時(shí)間(CWT)的定義 CWT用ATR中所含CWI來計(jì)算,根據(jù)下列公式: CWT=(2CWI+11)工作etu CWI

11、的缺省值為13,由此可得CWT的如下之值: CWT=(213+11)工作etu=8.203工作etu 對于時(shí)鐘頻率為3.5712MHz,而分頻值為372時(shí),結(jié)果的區(qū)間為0.85秒。 這個(gè)區(qū)間在標(biāo)準(zhǔn)中被規(guī)定為缺省設(shè)定,對快速數(shù)據(jù)傳送而言是太高了。實(shí)踐中,CWI的常用范圍在3和5之間 ,這就是說對正常的傳輸序列,其中字符一個(gè)接著一個(gè)而無需任何時(shí)間延遲,接收方在檢測出字組的尾部或 一個(gè)通信錯(cuò)誤之前要等待一至二個(gè)字符的時(shí)間。通常,接收程序從LEN字段的長度信息來檢測出字組的結(jié)束。然而,如果這個(gè)字段的內(nèi)容是錯(cuò)誤的,則字符 等待時(shí)間可用作一種另外的手段來結(jié)束接收。這個(gè)問題本身僅僅出現(xiàn)在長度信息過長時(shí),在這

12、種情況下接收 方將等待永遠(yuǎn)沒有到達(dá)的另外字符。這樣將阻塞了傳輸協(xié)議,這種狀態(tài)只能由卡復(fù)位來清除,而字符等待機(jī) 制則繞過了這一問題。2)字組等待時(shí)間(BWT) 字組等待時(shí)間BWT(Block Wailing Time)被定義來當(dāng)智能卡沒有響應(yīng)時(shí)去建立一種結(jié)束通信的方法。它是 發(fā)送給卡的字組中最后一字節(jié)的開始邊和卡回送的第1個(gè)字節(jié)的開始邊之間的最大允許區(qū)間,參看圖3。 圖3 字組等待時(shí)間(BWT)的定義 以常規(guī)的T=1字組而言,這是命令字組組尾字段的X0R字節(jié)的前沿和卡的應(yīng)答的NAD字節(jié)的前沿之間的最大 允許區(qū)間。如果這段等待期間已滿之時(shí)而仍未從卡接收到應(yīng)答,則終端可以認(rèn)為卡出了故障并啟動(dòng)相應(yīng)的措

13、 施。例如,這可能是一個(gè)卡復(fù)位,接著是建立通信的新嘗試。ATR中的接口字符以縮短形式的BWI的編碼來規(guī)定BWT。 如果在ATR中沒有規(guī)定BWI之值,則使用之缺省值為4,對于3.5712MHz和372的分頻值,則給出的字組等待時(shí) 間為1.6s 可以看出,這個(gè)數(shù)值是過分慷慨了。實(shí)踐中,BWI的常用值為3,它產(chǎn)生的字組等待時(shí)間為0.8s。在卡中 的典型命令執(zhí)行時(shí)間通常為0.2s。這樣的阿的持續(xù)時(shí)間則表現(xiàn)了在正常的命令執(zhí)行時(shí)間和快速檢測出智 能卡不再對命令做出響應(yīng)之間的折中。3)字組保護(hù)時(shí)間(BOT) 最后一字節(jié)的開始沿和相對方的第1個(gè)字節(jié)的開始沿之間的最小區(qū)間稱之為字組保護(hù)時(shí)間BOT(Block G

14、uard Time),參見圖4。它和叮是相反的,后者被定義為兩個(gè)規(guī)定的開始沿之間的最大時(shí)間。另一個(gè)區(qū)別是字 組保護(hù)時(shí)間對雙方是強(qiáng)制性的,而且都必須遵守,而字組等待時(shí)間僅對智能卡有意義。字組保護(hù)時(shí)間的目的 是提供給字組發(fā)送方一個(gè)最短的時(shí)間區(qū)間,在其間可從發(fā)送轉(zhuǎn)換為接收。 圖4 字組保護(hù)時(shí)間(BOT)的定義 字組保護(hù)時(shí)間有一個(gè)固定值,它已標(biāo)準(zhǔn)化為22etu。在一個(gè)運(yùn)行于3.5712MHz,分頻值為372的智能卡中, 它產(chǎn)生的區(qū)間大約為2.3ms。7傳輸協(xié)議機(jī)制 I)等待時(shí)間的擴(kuò)充 如果卡需要比由字組等待時(shí)間(BWT)最多允許的還要多些的時(shí)間來產(chǎn)生其應(yīng)答,它可向終端請求等待時(shí) 間擴(kuò)充。智能卡發(fā)送一個(gè)

15、請求擴(kuò)充的專門的s字組來做到這一點(diǎn),而它接收一個(gè)從終端來的相應(yīng)的S字組以確 認(rèn),不允許終端拒絕這一請求。等待時(shí)間的擴(kuò)充過程如圖5所示。 圖5 擴(kuò)充等待時(shí)間的過程 信息字段的一個(gè)字節(jié)通知終端擴(kuò)充時(shí)間的長度。這個(gè)字節(jié)乘以終端等待時(shí)間給出了新的字組等待時(shí)間。然 而,它僅對最近發(fā)送的I字組有效。2)字組鏈接 T1協(xié)議的一項(xiàng)根本特性是字組鏈接功能,它使得任一方可傳送大于發(fā)送或接收緩存器大小的數(shù)據(jù)字組??紤]到智能卡的有限存儲(chǔ)器容量,這一點(diǎn)是特別有用的。只允許信息字組可以鏈接,因?yàn)?只有這些字組才包含有大量的數(shù)據(jù)。在鏈接過程中,應(yīng)用數(shù)據(jù)被劃分成各個(gè)數(shù)組,然后一個(gè)接一個(gè)地發(fā)送給 接收方。應(yīng)用層的數(shù)據(jù)必須劃分成

16、各個(gè)段,其結(jié)果應(yīng)沒有大于接收方能接收的最大字組。按照T=1協(xié)議,第1段被安 放在一信息字段中,補(bǔ)充上組頭和組尾字段后即可發(fā)送給接收方。M位(尚有數(shù)據(jù)位)被設(shè)定在字組的PCB字 段中,以便向接收方表明已經(jīng)使用了字組鏈接功能,被鏈的數(shù)據(jù)在隨后的字組中,鏈接字組的傳送如圖6所示。 圖6 從終端向智能卡傳輸數(shù)據(jù)的字組鏈接舉例 隨著接收方成功收到這個(gè)具有用戶數(shù)據(jù)第1段的信息字組,它回送一個(gè)序列號N(R)是下一個(gè)I字組的發(fā)送 序列計(jì)數(shù)N(S)的R字組,以表明已準(zhǔn)各好接收下一個(gè)鏈接的I字組了。于是,下一個(gè)字組被發(fā)送給接收方。這樣來來往往傳送I和R字組,一直繼續(xù)到發(fā)送方發(fā)布一個(gè)PCB字段的M位表明它是鏈中的最

17、后一個(gè)字組(M位 =0)的I字組時(shí)為止。接收到這一字組后,接收方就有了應(yīng)用層的全部數(shù)據(jù),并可對全部數(shù)據(jù)字組進(jìn)行處理 。對應(yīng)用于字組鏈接的程序有一點(diǎn)限制,在一單個(gè)的命令應(yīng)答對中,鏈接只能在一個(gè)方向上進(jìn)行。例如, 如果終端發(fā)送了鏈接字組,卡就不能在響應(yīng)中發(fā)送鏈接字組。這里還有更進(jìn)一步的限制,不過不是協(xié)議本身的,而是由于卡非常有限的存儲(chǔ)引起的。實(shí)現(xiàn)字組鏈接機(jī)制 包括了一定數(shù)量的額外軟件,而它的用途極其有限,因?yàn)槊詈蛻?yīng)答并不都是那么長,因此通常都不需要鏈 接。如果卡在BAM中的緩存器不是足夠大以存儲(chǔ)所有用字組鏈接傳送的數(shù)據(jù),它就必須把緩存器放在EEPROM 中。然而,這將引起傳輸率的明顯下降,因?yàn)镋

18、EPROM(和BAM不同)使處理器不能以全速寫入。結(jié)果許多T1的實(shí)現(xiàn)沒有鏈接功能,因?yàn)閮r(jià)格收益比經(jīng)常不有利于它。這是一個(gè)典型的例子,在實(shí)際實(shí) 踐中對標(biāo)準(zhǔn)的解釋常常是太隨意了。在這種情況下的解釋等于把字組鏈接當(dāng)做是T=1中的補(bǔ)充選項(xiàng),它不是 絕對需要的。8,差錯(cuò)處理 T1協(xié)議顯示出相當(dāng)完善的差錯(cuò)檢測與處理機(jī)制,如果接收到了不正確的字組,則協(xié)議試圖用準(zhǔn)確規(guī)定的 方法恢復(fù)無差錯(cuò)通信。從終端的角度來看,存在著三個(gè)同步階段,在第1階段,差錯(cuò)字組的發(fā)送方接收到一 個(gè)表明EDC/奇偶位差錯(cuò)或一般差錯(cuò)的R字組,接收到此R字組后必須重發(fā)最后發(fā)送的字組。如果已證明利用此機(jī)制無法恢復(fù)無差錯(cuò)的連接,則求助于第2階段。這就是說,智能卡收到一個(gè)從終端發(fā)出的以s字組形式的再同步請求,而終端期待著一個(gè)再同步應(yīng)答的答復(fù)。于是,終端和卡雙方把它們的發(fā)送和接收計(jì)數(shù)器復(fù)位為零,它相應(yīng)于緊接著ATR的協(xié)議狀態(tài)?;诖?,終端試圖建立起新的連接。第1和第2階段僅影響協(xié)議層次,它們對應(yīng)用本身毫無影響。然而,第3階段將影響智能卡的所有層次。如果用前兩個(gè)階段終端仍無法建立起一個(gè)無差錯(cuò)的通信連

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論