久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 深入理解7816(4)---關于T=1

深入理解7816(4)---關于T=1

發布人:電子禪石 時間:2023-03-16 來源:工程師 發布文章

本文轉自:https://www.bbsmax.com/A/l1dyxrEA5e/  ,支持原創,傳播知識,僅供學習自用。

之前說過的T=0協議,基本上相當于是透明的數據,也就是說從應用的角度看,通過T=0傳遞的TPDU數據信息大都可以直接轉換為對應的APD命令響應數據,“字節”是T=0協議最小的數據傳輸單元。

  對于T=1協議而言,最小的數據傳輸單元是“數據塊”,這個數據塊由若干個字節組成,其中有些字節是必須的,有些字節是可選的。每個數據塊最多可以包含多少個字節(也就是數據塊的大小)可以通過三種途徑確定:

1)ATR中對應協議T=1的專有接口字節指出;

2)使用默認的值;

3)在數據傳輸過程中協商。

  一個數據塊其實就是一個“數據包”,其中包頭的3個字節(NAD 1字節 + PCB 1字節 + LEN 1字節)包尾1個或者2個字節(如果采用LRC校驗就是 1字節,采用CRC校驗就是 2字節)是必須的,中間的信息數據域INF則是可選的。其中NAD代表節點地址,基本不用,可以設置為“00”PCB代表協議控制字節,用來指明數據塊的類型(分為:傳遞信息域數據的I-塊,應答響應的R-塊,負責通訊參數協商的S-塊)、序列號、是否存在后續的鏈接塊、是否有校驗錯誤、額外超時等待請求、信息數據域大小的協商等。

  和T=0協議最明顯的不同是,T=1協議按照OSI的參考模型進行了分層,分別是:物理層、數據鏈路層和應用層。物理層主要是數據字符的傳輸,數據鏈路層主要是數據塊的傳輸,而應用層主要是APDU的交互傳輸。APDU的交互與數據字符的傳輸,這些和T=0協議里面描述的大體相同,關鍵的就是數據鏈路層定義的數據塊傳輸。因為這個數據鏈路層的定義,使得T=1協議基本具備了可以實現復雜網絡數據傳輸的全部特征,相比而言T=0協議簡直就等同于“裸傳”了。

  數據鏈路層主要進行的是3類數據塊的交互傳輸,基本的原則是:第一個數據塊一定是從終端發給卡片的I-塊或者S-塊;I-塊可以用R-塊或者I-塊來應答,而S-塊的請求只能用S-塊的響應來應答;I塊和R-塊會包含有“0”和“1”的序列號,序列號的初始值為“0”,重新同步之后也是再次從“0”開始,之后在“0”和“1”之間交替切換;如果一條應用數據大于數據塊信息域的最大長度,則需要分割為若干個鏈接的數據塊來傳輸;和T=0協議卡片發送“0x60”類似,如果卡片需要較長時間進行命令處理,可以用延長等待時間的WTX請求S-塊讓終端繼續等待;一旦傳輸過程中出現錯誤,可以通過數據塊重發、重新同步、卡片復位等動作來進行糾錯。

  對于各種正常和異常數據傳輸的處理,7816定義了若干的規則(rules)明確而詳細地說明了終端和卡片在數據塊傳輸過程中應該遵循的流程。

  在實際應用中,接觸式卡片遵循7816 T=1協議的不是很多,但是非接觸的14443 T=CL協議,在數據傳輸方面和7816的T=1協議如出一轍,而且在檢測過程中,最容易出現軟件問題的地方也正是非接觸協議這部分。


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: 7816

技術專區

關閉