摘要:T=0是國(guó)際標(biāo)準(zhǔn)中規(guī)定的一種接觸式CPU卡通訊協(xié)議。結(jié)合開發(fā)實(shí)踐,將該協(xié)議分為四個(gè)層次,主要從CPU卡的角度出發(fā),結(jié)合終端,從兩個(gè)方面系統(tǒng)地闡述了該協(xié)議的特點(diǎn)和實(shí)現(xiàn)過(guò)程,并對(duì)T=0協(xié)議的優(yōu)缺點(diǎn)進(jìn)行了分析,目前已將開發(fā)成果應(yīng)用于實(shí)際中。
關(guān)鍵詞:卡片操作系統(tǒng)(COS)終端應(yīng)用層(TAL)終端傳輸層(TTL)應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)傳輸協(xié)議數(shù)據(jù)單元(TPDU)
IC卡的應(yīng)用越來(lái)越廣泛,從存儲(chǔ)卡到邏輯加密卡,目前CPU卡已經(jīng)逐漸在應(yīng)用中占據(jù)主導(dǎo)地位。CPU卡根據(jù)通訊協(xié)議可分為兩種:接觸式和非接觸式。接觸式CPU卡主要采用兩種通訊協(xié)議:T=0和T=1通訊協(xié)議。T=0是異步半雙工字符傳輸協(xié)議,T=1是異步半雙工塊傳輸協(xié)議。目前T=0通訊協(xié)議的應(yīng)用較為廣泛,國(guó)內(nèi)外大多數(shù)CPU卡都支持該協(xié)議,在金融交易中也采用這種通訊協(xié)議。為了便于說(shuō)明問(wèn)題,本文從T=0協(xié)議的功能出發(fā),將該協(xié)議分為四個(gè)層次:物理層、數(shù)據(jù)鏈路層、終端傳輸層和應(yīng)用層,見圖1。
由于該協(xié)議的特殊性,終端傳輸層與應(yīng)用層聯(lián)系非常緊密,實(shí)現(xiàn)起來(lái)比較繁瑣,在CPU卡中,這些任務(wù)通過(guò)卡片操作系統(tǒng)(COS)來(lái)實(shí)現(xiàn)。終端在與卡的信息交換中,
始終處于主動(dòng)地位,終端向卡發(fā)送符合T=0協(xié)議的命令字節(jié),卡中的COS完成對(duì)數(shù)據(jù)的處理并將處理結(jié)果返回給終端。下面對(duì)T=0協(xié)議的四個(gè)層次進(jìn)行詳述。
1T=0協(xié)議的物理層描述
終端與智能卡之間通過(guò)改變I/O傳輸線上的電平來(lái)交換信息。由于T=0協(xié)議是面向字符的傳輸協(xié)議,這里先定義字符幀的結(jié)構(gòu),并對(duì)組成字符幀位的信息表示作了具體描述。字符幀的結(jié)構(gòu)如圖2所示。
字符幀由1個(gè)起始位S、8個(gè)數(shù)據(jù)位和1個(gè)偶校驗(yàn)位P共10位組成。在數(shù)據(jù)傳輸中每一位的持續(xù)時(shí)間稱為基本時(shí)間單元etu(elementarytimeunit),etu的值由時(shí)鐘頻率決定,etu與時(shí)鐘頻率呈現(xiàn)性關(guān)系:
1etu=(F/D)×(1/f)(1)
其中F稱為時(shí)鐘頻率轉(zhuǎn)換因子,D稱為波特率調(diào)整因子。時(shí)鐘頻率的范圍為1MHz~5MHz,正常的工作頻率為3.57MHz,數(shù)據(jù)傳輸?shù)牟ㄌ芈什捎?600bps,根據(jù)國(guó)際標(biāo)準(zhǔn)的取值范圍,取F=372,D=1,代入式(1),可得:
1etu=372/f=372(2)
即一個(gè)基本時(shí)間單元為372個(gè)時(shí)鐘周期。將工作頻率定為3.57MHz,可以保證數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?600bps。如果要提高數(shù)據(jù)的傳輸率,可以調(diào)整參數(shù)F來(lái)確定傳輸率。對(duì)每一位電平采用三次采樣來(lái)確定,在位持續(xù)時(shí)間的中間和左右15的間隔各取樣一次,取樣點(diǎn)如圖3所示。當(dāng)有兩次以上電平為低,則判斷該位為0;否則該位為1,這樣確保了取樣值的可靠性。由于數(shù)據(jù)位的持續(xù)時(shí)間是用匯編語(yǔ)句來(lái)控制的,可以通過(guò)延時(shí)語(yǔ)句調(diào)整采樣的時(shí)間間隔。但實(shí)現(xiàn)采樣的最基本匯編語(yǔ)句的執(zhí)行時(shí)間不能再縮短,因此數(shù)據(jù)傳輸率有一上限。當(dāng)每一位取樣三次時(shí),數(shù)據(jù)傳輸率最高可達(dá)到57600bps。如果再提高速率,取樣時(shí)序?qū)o(wú)法保證。字符幀的起始位為低電平,起始位的檢測(cè)是通過(guò)周期性地對(duì)I/O傳輸線進(jìn)行采樣來(lái)得到。國(guó)際標(biāo)準(zhǔn)中規(guī)定采樣時(shí)間間隔不得大于0.2etu,實(shí)際上起始位的采樣時(shí)間間隔只有幾個(gè)時(shí)鐘周期,完全滿足要求。
2T=0協(xié)議的數(shù)據(jù)鏈路層實(shí)現(xiàn)
數(shù)據(jù)鏈路層描述了字符交換的時(shí)序要求和差錯(cuò)控制以及終端對(duì)面向傳輸?shù)腻e(cuò)誤的處理,在邏輯上保證終端和卡片之間能夠正確可靠地通訊。
采用上述的字符幀,終端與卡之間進(jìn)行數(shù)據(jù)將交換,字符之間有嚴(yán)格的時(shí)序,時(shí)序是通過(guò)匯編程序語(yǔ)句的執(zhí)行時(shí)間來(lái)控制的。從終端到卡發(fā)送的連續(xù)字符的起始位下降沿之間的最小時(shí)間間隔由復(fù)位應(yīng)答信息通知終端,其值在12etu~266etu之間。從卡發(fā)送到終端的連續(xù)字符的起始位下降沿之間的最小時(shí)間間隔應(yīng)為12etu。
如果字符接收不正確或字符接收正確但校驗(yàn)位不正確,接收端需要在字符起始位下降沿后的(10.5±0.2個(gè)etu時(shí)刻將I/O線置為低電平約1~2個(gè)etu,見圖4,用于向發(fā)送端指明錯(cuò)誤;發(fā)送端在(11±0.2)個(gè)etu時(shí)刻檢測(cè)I/O線。如為高電平則表示字符已經(jīng)正確接收;如果發(fā)送端檢測(cè)到錯(cuò)誤,則在檢測(cè)到錯(cuò)誤那一刻起,2個(gè)etu后重發(fā)該字符,但重復(fù)發(fā)送同一字符的次數(shù)不得超過(guò)3次。如果最后一次發(fā)送失敗,當(dāng)終端是接收端時(shí),則終端應(yīng)該在無(wú)效字符的起始位下降沿后的960個(gè)etu時(shí)間范圍內(nèi)啟動(dòng)釋放序列;當(dāng)終端是發(fā)送端時(shí),在卡片檢測(cè)到字符的偶校驗(yàn)錯(cuò)誤后960個(gè)etu時(shí)間范圍內(nèi),終端啟動(dòng)釋放序列。
命令的執(zhí)行總是由終端應(yīng)用層(TAL)啟動(dòng),通過(guò)終端傳輸層(TTL)送給卡片。TTL與卡片進(jìn)行命令字節(jié)和數(shù)據(jù)字節(jié)交換時(shí),要保證能夠有序正確地進(jìn)行。因此,在數(shù)據(jù)交換過(guò)程中,在任何時(shí)刻TTL和卡片都應(yīng)該隱含地知道哪一方是發(fā)送者,
地址: 浙江省.寧波市鄞州區(qū)寧姜公路(九曲小區(qū)二期旁)
郵編: 315040
聯(lián)系人: 盛立峰
電話: 0574-87139378
傳真: 0574-87139378
手機(jī): 13867861670
郵箱: 85400329@qq.com
Copyright ?2004-2025 寧波市鄞州首南恒宇激光雕刻廠 All Rights Reserved.
地址: 浙江省.寧波市鄞州區(qū)寧姜公路(九曲小區(qū)二期旁) 郵編: 315040 聯(lián)系人: 盛立峰
電話: 0574-87139378 傳真: 0574-87139378 手機(jī): 13867861670