智能卡數(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ù)免費閱讀

下載本文檔

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

文檔簡介

智能卡數(shù)據(jù)傳輸 T 1 傳輸協(xié)議類別:消費電子 閱讀:883 T1 傳輸協(xié)議是智能卡的異步半雙工通信協(xié)議。它立足于國際標(biāo)準(zhǔn) ISO/IEC 7816-3。EMV規(guī)范也和此協(xié)議 有關(guān)。T1 協(xié)議是面向字組的協(xié)議,這就是說一個字組是卡和終端之間可以傳輸?shù)淖钚?shù)據(jù)單元。 這項協(xié)議以嚴(yán)格的層次劃分為特點,可作為數(shù)據(jù)鏈路層歸入 OSI 參考模型中。在這種意義上,層次劃分也 就意味著數(shù)據(jù)指向較高的層次,諸如應(yīng)用層,并可完全由數(shù)據(jù)鏈路層透明地處理。除了這一層直接和所傳輸 的數(shù)據(jù)的內(nèi)容的解釋與修改有關(guān)之外,不再需要別的層次。特別是報文的安全性需要嚴(yán)格地遵守層次劃分,只有這樣才能使用戶加密的數(shù)據(jù)通過接口而不必求助于復(fù) 雜的方法或技巧。目前,T=1 是惟一的國際智能卡協(xié)議可以使安全數(shù)據(jù)得以在其所有變型的情況下傳輸而沒 有任何問題或危及其安全性。傳輸?shù)倪^程開始于卡送出 ATR 之后,或在成功執(zhí)行了 PTS 之后。第 1 個字組由終端發(fā)送,下一個則由卡發(fā)送 。于是,通信按此方式繼續(xù),發(fā)送權(quán)在終端與卡之間輪換。順便提及,T1 協(xié)議的應(yīng)用不限于智能卡終端的通信,它被用于多種終端和它們與之相連的計算機間交 換有用的數(shù)據(jù)和控制數(shù)據(jù)。數(shù)據(jù)傳輸率對任何協(xié)議自然都是一個最令人感興趣的方面,表 1 列出了 T=1 協(xié)議傳輸某些典型命令的時間。表 1 T=1 傳輸協(xié)議對某些典型命令的數(shù)據(jù)傳輸時間(時鐘頻率為 3.5712MHz,分頻值為 372,X0R 差錯檢測碼,每條命令有 2 位停止位和 8位數(shù)據(jù)字節(jié),C命令 ,R= 應(yīng)答) 1,字組結(jié)構(gòu) 所傳送的字組實質(zhì)上用于兩種不同的目的,其中之一是透明傳輸?shù)膽?yīng)用專用數(shù)據(jù),另一個則是傳輸協(xié)議控 制數(shù)據(jù)或?qū)鬏敳铄e的處理。傳輸?shù)淖纸M由開始的組頭字段,信息字段和最后的組尾字段組成,組頭和組尾字段是強制性的,必須總是 發(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ù)字段,被用于對接收的認(rèn)可或否認(rèn)。 系統(tǒng)字組(S 字組)用于和協(xié)議本身有聯(lián)系的控制信息,取決于特定的控制信息,它們可能有一個信息字段 。2組頭字段 組頭字段含有三個子段:結(jié)點地址(NAD),協(xié)議控制字節(jié)(PCB)和長度(LEN),它為三字節(jié)長并含有對 實際傳輸字組的控制和指針數(shù)據(jù)。這三個子段的編碼見表 2表 5。1)結(jié)點地址 NAD(Node ADdress) 組頭字段的第 1 個字節(jié)被稱為結(jié)點地址(NAD )字節(jié),它含有字組的目標(biāo)和源地址,它們的每一個用三位編 碼,如果未用地址,則有關(guān)位置為 0。此外,為了和老的微控制器相容,對 EEPROM 或 EPROM 的編程電壓提供了 控制。然而,這一點沒有實際應(yīng)用,因為現(xiàn)在的所有智能卡微控制器在芯片內(nèi)都有一個電荷泵。表 2 結(jié)點地址(NAD 字段)2)協(xié)議控制字節(jié) PCB( Protocol Control Byte) 接著結(jié)點地址的子段是協(xié)議控制字節(jié)(PCB)。如同名字所暗示,它用來控制和管理傳輸協(xié)議,這就增加了 所需的編碼數(shù)量,PCB字段主要用來編碼字組類型,以及有關(guān)的補充信息。表 3 I 字組的 PCB 字段表 4 R 字組的 PCB 字段表 5 S 字組的 PCB 字段3)長度 LEN(LEngth Field) 字節(jié)的長度字段( LEN)以十六進(jìn)制的形式指明信息字段的長度,其值可為00至FE 。編碼FF目 前未用而留各未來擴充之用。3,信息字段 在 I 字組中,信息字段起著應(yīng)用層數(shù)據(jù)(OSI 第 7 層)的集裝箱的作用。此字段的內(nèi)容被完整而透明地傳送, 這就是說此內(nèi)容由傳輸協(xié)議直接送出,而不經(jīng)任何分析或評估。在 S 字組中,這個字段傳送關(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 字段來改變,這個 32 字節(jié)的缺省值 也適用于卡的卡信息字段大小 IFSC(Information Field Size for the Card),但它可由 ATR 中的一個參 數(shù)來修改。在實踐中,對于終端和卡二者,I 字段的大小在 50140 字節(jié)之間。4,組尾字段 這個字段在字組的末尾傳送,含有一差錯檢測碼,是由字組中前面所有的字節(jié)算得的。計算使用的要么是 縱向冗余檢測 LRC(Longitudinal Redundancy Check)要么是循環(huán)冗余檢測 CRC( Cyclic Redundancy Check )。所用方法必須在 ATR 的接口字符中予以規(guī)定。如果沒有規(guī)定,則隱含地約定使用 LRC 法。否則,根據(jù) ISO 3309 就進(jìn)行 CRC 計算。所用除法多項式和 V.41 的推薦是一樣的, G(X)=X16+X12+X5+1。兩種差錯檢測碼只能用 于差錯檢測,它們不能校正一個字組差錯。單字節(jié)的縱向冗余校驗和是串行級聯(lián)所有字組中前面的字節(jié)經(jīng) X0R 算出的。這項計算可以執(zhí)行得非常之快,而 它的實現(xiàn)也用不了多少代碼。通常,它的執(zhí)行是在數(shù)據(jù)傳輸或接收時進(jìn)行的,它實際上是所有實現(xiàn)的 T=1 的標(biāo) 準(zhǔn)部分。使用 CRC 方法產(chǎn)生的差錯檢測碼比起相對簡單的的 X0R 校驗和來要產(chǎn)生遠(yuǎn)為高得多的差錯檢測概率。然而,在 實際上這個方法目前幾乎從來都未被使用過,因為它實現(xiàn)起來是高代碼強度的而且很慢。此外,組尾字段要擴 充為 2 字節(jié),它進(jìn)一步降低了傳輸率。5發(fā)送和接收序列計數(shù)器 在 T=1 協(xié)議中的每個信息字組有一個在 PCB 字節(jié)中的僅有 1 位的發(fā)送序列號。它按模 2 增量,這就是說它在 0 和 1 之間交替。發(fā)送序列計數(shù)器也被稱作 N(S)。協(xié)議開初的開始值為 0,終端和智能卡的計數(shù)器是相互獨立地增 量的。發(fā)送序列計數(shù)器的主要目的是支持對于重發(fā)接收到的有差錯字組的請求,因為各個數(shù)據(jù)字組能由 N(S )毫不 含糊地尋址。6,等待時間 在數(shù)據(jù)傳輸時,定義了不同的等待時間以提供發(fā)送方和接收方可以在精確規(guī)定的最小和最大時間區(qū)間內(nèi)的不 同處理。它們也提供了規(guī)定的方法去結(jié)束通信,以便防止在出差錯情況下的死鎖。標(biāo)準(zhǔn)中對所有這些等待時間 都規(guī)定了缺省值,但可以修改它們以提高傳輸率,修改值是在 ATR 的特定接口字符中指明的。1)字符等待時間(CWT) 字符等待時間的定義是字組內(nèi)相連兩字符開始邊之間的最大區(qū)間,如圖 2 所示。接收方在每一開始邊處啟動一 減數(shù)定時器,以字符等待時間作為初始值,如果定時器已滿而又沒有檢測到新一位的開始邊,則接收方可認(rèn)為 傳送的字組已被完整接收。于是,“CWT 接收準(zhǔn)則 ”可一般用作字組結(jié)束的檢測。然而,它卻顯著地減小了數(shù) 據(jù)傳輸率,因為每 1 字組的時間都被字符等待時間 CWT(Character Waiting Time)的持續(xù)時間增大了,字組的 結(jié)束最好是用計數(shù)接收的字節(jié)數(shù)來檢測。 圖 2 字符等待時間(CWT)的定義 CWT 用 ATR 中所含 CWI 來計算,根據(jù)下列公式:CWT=(2CWI+11)工作 etu CWI 的缺省值為 13,由此可得 CWT 的如下之值: CWT=(213+11 )工作 etu=8.203 工作 etu 對于時鐘頻率為 3.5712MHz,而分頻值為 372 時,結(jié)果的區(qū)間為 0.85 秒。 這個區(qū)間在標(biāo)準(zhǔn)中被規(guī)定為缺省設(shè)定,對快速數(shù)據(jù)傳送而言是太高了。實踐中,CWI 的常用范圍在 3 和 5 之間 ,這就是說對正常的傳輸序列,其中字符一個接著一個而無需任何時間延遲,接收方在檢測出字組的尾部或 一個通信錯誤之前要等待一至二個字符的時間。通常,接收程序從 LEN 字段的長度信息來檢測出字組的結(jié)束。然而,如果這個字段的內(nèi)容是錯誤的,則字符 等待時間可用作一種另外的手段來結(jié)束接收。這個問題本身僅僅出現(xiàn)在長度信息過長時,在這種情況下接收 方將等待永遠(yuǎn)沒有到達(dá)的另外字符。這樣將阻塞了傳輸協(xié)議,這種狀態(tài)只能由卡復(fù)位來清除,而字符等待機 制則繞過了這一問題。2)字組等待時間(BWT) 字組等待時間 BWT(Block Wailing Time)被定義來當(dāng)智能卡沒有響應(yīng)時去建立一種結(jié)束通信的方法。它是 發(fā)送給卡的字組中最后一字節(jié)的開始邊和卡回送的第 1 個字節(jié)的開始邊之間的最大允許區(qū)間,參看圖 3。 圖 3 字組等待時間(BWT)的定義 以常規(guī)的 T=1 字組而言,這是命令字組組尾字段的 X0R 字節(jié)的前沿和卡的應(yīng)答的 NAD 字節(jié)的前沿之間的最大 允許區(qū)間。如果這段等待期間已滿之時而仍未從卡接收到應(yīng)答,則終端可以認(rèn)為卡出了故障并啟動相應(yīng)的措 施。例如,這可能是一個卡復(fù)位,接著是建立通信的新嘗試。ATR 中的接口字符以縮短形式的 BWI 的編碼來規(guī)定 BWT。 如果在 ATR 中沒有規(guī)定BWI 之值,則使用之缺省值為 4,對于 3.5712MHz 和 372 的分頻值,則給出的字組等待時 間為1.6s 可以看出,這個數(shù)值是過分慷慨了。實踐中,BWI 的常用值為 3,它產(chǎn)生的字組等待時間為 0.8s。 在卡中 的典型命令執(zhí)行時間通常為 0.2s。這樣的阿的持續(xù)時間則表現(xiàn)了在正常的命令執(zhí)行時間和快速檢測出智 能卡不再對命令做出響應(yīng)之間的折中。3)字組保護(hù)時間(BOT) 最后一字節(jié)的開始沿和相對方的第 1 個字節(jié)的開始沿之間的最小區(qū)間稱之為字組保護(hù)時間 BOT(Block Guard Time),參見圖 4。它和叮是相反的,后者被定義為兩個規(guī)定的開始沿之間的最大時間。另一個區(qū)別是字 組保護(hù)時間對雙方是強制性的,而且都必須遵守,而字組等待時間僅對智能卡有意義。字組保護(hù)時間的目的 是提供給字組發(fā)送方一個最短的時間區(qū)間,在其間可從發(fā)送轉(zhuǎn)換為接收。 圖 4 字組保護(hù)時間(BOT)的定義 字組保護(hù)時間有一個固定值,它已標(biāo)準(zhǔn)化為22etu。在一個運行于 3.5712MHz,分頻值為 372 的智能卡中, 它產(chǎn)生的區(qū)間大約為 2.3ms。7傳輸協(xié)議機制 I)等待時間的擴充 如果卡需要比由字組等待時間(BWT)最多允許的還要多些的時間來產(chǎn)生其應(yīng)答,它可向終端請求等待時 間擴充。智能卡發(fā)送一個請求擴充的專門的 s 字組來做到這一點,而它接收一個從終端來的相應(yīng)的 S 字組以確 認(rèn),不允許終端拒絕這一請求。等待時間的擴充過程如圖 5 所示。 圖 5 擴充等待時間的過程 信息字段的一個字節(jié)通知終端擴充時間的長度。這個字節(jié)乘以終端等待時間給出了新的字組等待時間。然 而,它僅對最近發(fā)送的 I 字組有效。2)字組鏈接 T1 協(xié)議的一項根本特性是字組鏈接功能,它使得任一方可傳送大于發(fā)送或接收緩存器大小的數(shù)據(jù)字組。考慮到智能卡的有限存儲器容量,這一點是特別有用的。只允許信息字組可以鏈接,因為 只有這些字組才包含有大量的數(shù)據(jù)。在鏈接過程中,應(yīng)用數(shù)據(jù)被劃分成各個數(shù)組,然后一個接一個地發(fā)送給 接收方。應(yīng)用層的數(shù)據(jù)必須劃分成各個段,其結(jié)果應(yīng)沒有大于接收方能接收的最大字組。按照T=1 協(xié)議,第 1 段被安 放在一信息字段中,補充上組頭和組尾字段后即可發(fā)送給接收方。M 位(尚有數(shù)據(jù)位)被設(shè)定在字組的 PCB 字 段中,以便向接收方表明已經(jīng)使用了字組鏈接功能,被鏈的數(shù)據(jù)在隨后的字組中,鏈接字組的傳送如圖 6 所示。 圖 6 從終端向智能卡傳輸數(shù)據(jù)的字組鏈接舉例 隨著接收方成功收到這個具有用戶數(shù)據(jù)第 1 段的信息字組,它回送一個序列號 N(R)是下一個 I 字組的發(fā)送 序列計數(shù) N(S )的 R字組,以表明已準(zhǔn)各好接收下一個鏈接的 I 字組了。于是,下一個字組被發(fā)送給接收方。這樣來來往往傳送 I 和 R 字組,一直繼續(xù)到發(fā)送方發(fā)布一個 PCB 字段的 M 位表明它是鏈中的最后一個字組(M 位 =0)的 I 字組時為止。接收到這一字組后,接收方就有了應(yīng)用層的全部數(shù)據(jù),并可對全部數(shù)據(jù)字組進(jìn)行處理 。對應(yīng)用于字組鏈接的程序有一點限制,在一單個的命令應(yīng)答對中,鏈接只能在一個方向上進(jìn)行。例如, 如果終端發(fā)送了鏈接字組,卡就不能在響應(yīng)中發(fā)送鏈接字組。這里還有更進(jìn)一步的限制,不過不是協(xié)議本身的,而是由于卡非常有限的存儲引起的。實現(xiàn)字組鏈接機制 包括了一定數(shù)量的額外軟件,而它的用途極其有限,因為命令和應(yīng)答并不都是那么長,因此通常都不需要鏈 接。如果卡在 BAM 中的緩存器不是足夠大以存儲所有用字組鏈接傳送的數(shù)據(jù),它就必須把緩存器放在 EEPROM 中。然而,這將引起傳輸率的明顯下降,因為 EEPROM(和 BAM 不同)使處理器不能以全速寫入。結(jié)果許多 T1 的實現(xiàn)沒有鏈接功能,因為價格收益比經(jīng)常不有利于它。這是一個典型的例子,在實際實 踐中對標(biāo)準(zhǔn)的解釋常常是太隨意了。在這種情況下的解釋等于把字組鏈接當(dāng)做是 T=1 中的補充選項,它不是 絕對需要的。8,差錯處理 T1 協(xié)議顯示出相當(dāng)完善的差錯檢測與處理機制,如果接收到了不正確的字組,則協(xié)議試圖用準(zhǔn)確規(guī)定的 方法恢復(fù)無差錯通信。從終端的角度來看,存在著三個同步階段,在第 1 階段,差錯字組的發(fā)送方接收到一 個表明 EDC/奇偶位差錯或一般差錯的 R字組,接收到此 R 字組后必須重發(fā)最后發(fā)送的字組。如果已證明利用此機制無法恢復(fù)無差錯的連接,則求助于第 2 階段。這就是說,智能卡收到一個從終端發(fā)出的以 s 字組形式的再同步請求,而終端期待著一個再同步應(yīng)答的答復(fù)。于是,終端和卡雙方把它們的發(fā)送和接收計數(shù)器復(fù)位為零,它相應(yīng)于緊接著 ATR 的協(xié)議狀態(tài)?;诖?,終端試圖建立起新的連接。第 1 和第 2 階段僅影響協(xié)議層次,它們對應(yīng)用本身毫無影響。然而,第 3 階段將影響智能卡的所有層次。如果用前兩個階段終端仍無法建立起一個無差錯的通信連接,它經(jīng)復(fù)位引線啟動一個智能卡復(fù)位。遺憾地是,這意味

溫馨提示

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

評論

0/150

提交評論