智能卡數(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頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

智能卡數(shù)據(jù)傳輸 T 1 傳輸協(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ù)通過接口而不必求助于復(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ù)傳輸率對(duì)任何協(xié)議自然都是一個(gè)最令人感興趣的方面,表 1 列出了 T=1 協(xié)議傳輸某些典型命令的時(shí)間。表 1 T=1 傳輸協(xié)議對(duì)某些典型命令的數(shù)據(jù)傳輸時(shí)間(時(shí)鐘頻率為 3.5712MHz,分頻值為 372,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ā)送給智能卡的命令 APDU 或是來自卡的 應(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)字組(R字組),它不含有任何數(shù)據(jù)字段,被用于對(duì)接收的認(rèn)可或否認(rèn)。 系統(tǒng)字組(S 字組)用于和協(xié)議本身有聯(lián)系的控制信息,取決于特定的控制信息,它們可能有一個(gè)信息字段 。2組頭字段 組頭字段含有三個(gè)子段:結(jié)點(diǎn)地址(NAD),協(xié)議控制字節(jié)(PCB)和長度(LEN),它為三字節(jié)長并含有對(duì) 實(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。此外,為了和老的微控制器相容,對(duì) EEPROM 或 EPROM 的編程電壓提供了 控制。然而,這一點(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 字組中,信息字段起著應(yīng)用層數(shù)據(jù)(OSI 第 7 層)的集裝箱的作用。此字段的內(nèi)容被完整而透明地傳送, 這就是說此內(nèi)容由傳輸協(xié)議直接送出,而不經(jīng)任何分析或評(pí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è)備信息字段大?。↖nf。 rmation Field Size for the interface Device),它可以通過特殊的 s 字段來改變,這個(gè) 32 字節(jié)的缺省值 也適用于卡的卡信息字段大小 IFSC(Information Field Size for the Card),但它可由 ATR 中的一個(gè)參 數(shù)來修改。在實(shí)踐中,對(duì)于終端和卡二者,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 的推薦是一樣的, G(X)=X16+X12+X5+1。兩種差錯(cuò)檢測碼只能用 于差錯(cuò)檢測,它們不能校正一個(gè)字組差錯(cuò)。單字節(jié)的縱向冗余校驗(yàn)和是串行級(jí)聯(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ò)檢測碼比起相對(duì)簡單的的 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è)信息字組有一個(gè)在 PCB 字節(jié)中的僅有 1 位的發(fā)送序列號(hào)。它按模 2 增量,這就是說它在 0 和 1 之間交替。發(fā)送序列計(jì)數(shù)器也被稱作 N(S)。協(xié)議開初的開始值為 0,終端和智能卡的計(jì)數(shù)器是相互獨(dú)立地增 量的。發(fā)送序列計(jì)數(shù)器的主要目的是支持對(duì)于重發(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)中對(duì)所有這些等待時(shí)間 都規(guī)定了缺省值,但可以修改它們以提高傳輸率,修改值是在 ATR 的特定接口字符中指明的。1)字符等待時(shí)間(CWT) 字符等待時(shí)間的定義是字組內(nèi)相連兩字符開始邊之間的最大區(qū)間,如圖 2 所示。接收方在每一開始邊處啟動(dòng)一 減數(shù)定時(shí)器,以字符等待時(shí)間作為初始值,如果定時(shí)器已滿而又沒有檢測到新一位的開始邊,則接收方可認(rèn)為 傳送的字組已被完整接收。于是,“CWT 接收準(zhǔn)則 ”可一般用作字組結(jié)束的檢測。然而,它卻顯著地減小了數(shù) 據(jù)傳輸率,因?yàn)槊?1 字組的時(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 的缺省值為 13,由此可得 CWT 的如下之值: CWT=(213+11 )工作 etu=8.203 工作 etu 對(duì)于時(shí)鐘頻率為 3.5712MHz,而分頻值為 372 時(shí),結(jié)果的區(qū)間為 0.85 秒。 這個(gè)區(qū)間在標(biāo)準(zhǔn)中被規(guī)定為缺省設(shè)定,對(duì)快速數(shù)據(jù)傳送而言是太高了。實(shí)踐中,CWI 的常用范圍在 3 和 5 之間 ,這就是說對(duì)正常的傳輸序列,其中字符一個(gè)接著一個(gè)而無需任何時(shí)間延遲,接收方在檢測出字組的尾部或 一個(gè)通信錯(cuò)誤之前要等待一至二個(gè)字符的時(shí)間。通常,接收程序從 LEN 字段的長度信息來檢測出字組的結(jié)束。然而,如果這個(gè)字段的內(nèi)容是錯(cuò)誤的,則字符 等待時(shí)間可用作一種另外的手段來結(jié)束接收。這個(gè)問題本身僅僅出現(xiàn)在長度信息過長時(shí),在這種情況下接收 方將等待永遠(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)的措 施。例如,這可能是一個(gè)卡復(fù)位,接著是建立通信的新嘗試。ATR 中的接口字符以縮短形式的 BWI 的編碼來規(guī)定 BWT。 如果在 ATR 中沒有規(guī)定BWI 之值,則使用之缺省值為 4,對(duì)于 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í)間和快速檢測出智 能卡不再對(duì)命令做出響應(yīng)之間的折中。3)字組保護(hù)時(shí)間(BOT) 最后一字節(jié)的開始沿和相對(duì)方的第 1 個(gè)字節(jié)的開始沿之間的最小區(qū)間稱之為字組保護(hù)時(shí)間 BOT(Block Guard Time),參見圖 4。它和叮是相反的,后者被定義為兩個(gè)規(guī)定的開始沿之間的最大時(shí)間。另一個(gè)區(qū)別是字 組保護(hù)時(shí)間對(duì)雙方是強(qiáng)制性的,而且都必須遵守,而字組等待時(shí)間僅對(duì)智能卡有意義。字組保護(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è)請求擴(kuò)充的專門的 s 字組來做到這一點(diǎn),而它接收一個(gè)從終端來的相應(yīng)的 S 字組以確 認(rèn),不允許終端拒絕這一請求。等待時(shí)間的擴(kuò)充過程如圖 5 所示。 圖 5 擴(kuò)充等待時(shí)間的過程 信息字段的一個(gè)字節(jié)通知終端擴(kuò)充時(shí)間的長度。這個(gè)字節(jié)乘以終端等待時(shí)間給出了新的字組等待時(shí)間。然 而,它僅對(duì)最近發(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ù)必須劃分成各個(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è)序列號(hào) N(R)是下一個(gè) I 字組的發(fā)送 序列計(jì)數(shù) N(S )的 R字組,以表明已準(zhǔn)各好接收下一個(gè)鏈接的 I 字組了。于是,下一個(gè)字組被發(fā)送給接收方。這樣來來往往傳送 I 和 R 字組,一直繼續(xù)到發(fā)送方發(fā)布一個(gè) PCB 字段的 M 位表明它是鏈中的最后一個(gè)字組(M 位 =0)的 I 字組時(shí)為止。接收到這一字組后,接收方就有了應(yīng)用層的全部數(shù)據(jù),并可對(duì)全部數(shù)據(jù)字組進(jìn)行處理 。對(duì)應(yīng)用于字組鏈接的程序有一點(diǎn)限制,在一單個(gè)的命令應(yīng)答對(duì)中,鏈接只能在一個(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)?EEPROM(和 BAM 不同)使處理器不能以全速寫入。結(jié)果許多 T1 的實(shí)現(xiàn)沒有鏈接功能,因?yàn)閮r(jià)格收益比經(jīng)常不有利于它。這是一個(gè)典型的例子,在實(shí)際實(shí) 踐中對(duì)標(biāo)準(zhǔn)的解釋常常是太隨意了。在這種情況下的解釋等于把字組鏈接當(dāng)做是 T=1 中的補(bǔ)充選項(xiàng),它不是 絕對(duì)需要的。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é)議層次,它們對(duì)應(yīng)用本身毫無影響。然而,第 3 階段將影響智能卡的所有層次。如果用前兩個(gè)階段終端仍無法建立起一個(gè)無差錯(cuò)的通信連接,它經(jīng)復(fù)位引線啟動(dòng)一個(gè)智能卡復(fù)位。遺憾地是,這意味

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論