<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 安全與國防 > 設計應用 > 接觸式CPU卡中T=0異步半雙工字符傳輸協(xié)議的硬件實(shí)現

接觸式CPU卡中T=0異步半雙工字符傳輸協(xié)議的硬件實(shí)現

作者:■ 大唐微電子技術(shù)有限公司 龔宗躍 孫東昱 張學(xué)志 時(shí)間:2005-04-27 來(lái)源:eaw 收藏

摘    要:T=0是接觸式IC卡國際標準 中規定的一種通信協(xié)議。本文首先分析了 -3中對于電信號和傳輸協(xié)議的規定,在此基礎上介紹了T=0的硬件實(shí)現方法。
關(guān)鍵詞: ;;

引言
作為IC卡家族中功能最強、安全性最高的成員,已經(jīng)逐漸在各種應用中占據主導地位。在ISO/IEC 7816-3中介紹了兩種通信協(xié)議:T=0和T=1通信協(xié)議。T=0是異步半雙工字符傳輸協(xié)議,T=1是異步半雙工塊傳輸協(xié)議。目前大多數接口設備都支持T=0通信協(xié)議,因此該協(xié)議應用較為廣泛。
T=0通信協(xié)議可以通過(guò)軟件編程來(lái)實(shí)現。但在軟件實(shí)現過(guò)程中,需要通過(guò)軟件編程來(lái)控制數據收發(fā),對于實(shí)時(shí)性很強的通信處理,CPU的處理能力常常滿(mǎn)足不了要求,而且通信的可靠性和穩定性也不是很理想,而硬件電路實(shí)現不存在上述問(wèn)題。

傳輸協(xié)議描述
ISO/IEC 7816-3規定了IC卡的電氣特性和傳輸協(xié)議。包括該類(lèi)卡和接口設備間的電源、電氣信號協(xié)議和信息交換協(xié)議。通信過(guò)程中,由接口設備給IC卡提供電源(Vcc),復位信號(RST)和時(shí)鐘(CLK),卡和接口設備間通過(guò)I/O端口進(jìn)行串行通信。
定義I/O端口有兩種可能狀態(tài):
傳號或高電平(狀態(tài)Z):當卡和接口設備均處于接收狀態(tài)時(shí),I/O端口處于狀態(tài)Z。也可由發(fā)送方強制定義為狀態(tài)Z。
空號或低電平(狀態(tài)A):可由發(fā)送方強制定義為狀態(tài)A。
根據T=0異步半雙工字符傳輸協(xié)議,IC卡和接口設備之間以字符為單位(簡(jiǎn)稱(chēng)字符幀)進(jìn)行傳輸,采用偶校驗,每個(gè)字符由10bit組成,如圖1所示。傳輸字符幀之前,I/O線(xiàn)處于狀態(tài)Z,第1bit為起始位(狀態(tài)A);后面8bit為數據位D1~D8;第10bit為偶校驗位,即8位數據和奇偶校驗位中1的個(gè)數為偶數。
串行通信是按位傳送的,每位信息寬度(持續時(shí)間)定義為基本時(shí)間單位etu(elementary  time  unit)。在復位應答期間的信息寬度稱(chēng)為“初始etu”,它等于372個(gè)時(shí)鐘周期,即1etu = 372/f 。復位應答后的信息寬度稱(chēng)為“當前etu”,其計算公式為:
當前etu
其中:F是時(shí)鐘頻率變換因數;D是比特率調整因數;f是時(shí)鐘頻率。

硬件實(shí)現方案
按照上述標準實(shí)現的可編程串行接口系統如圖2所示。
可編程串行接口內部的特殊功能寄存器有:
1. 串行接口控制/狀態(tài)寄存器SCON(復位后為00H)。
寄存器各位定義如下:
SCON[0]:接收中斷標志位;
SCON[1]:發(fā)送中斷標志位;
SCON[2]:發(fā)送出錯標志位;
SCON[3]:接收出錯標志位;
SCON[4]:允許發(fā)送標志位;
SCON[5]:允許接收標志位;
SCON[6]:保留;
SCON[7]:可編程串行接口允許標志位。
SCON[4]、SCON[5]不能同時(shí)為1,否則I/O接口將處于邏輯混亂狀態(tài)。
2.串行接口數據緩沖器SBUF(復位后為00H) 。發(fā)送時(shí),SBUF作為發(fā)送數據緩沖器,用于緩存待發(fā)的數據。接收時(shí),SBUF作為接收數據緩沖器,用于緩存收到的數據。
3. 波特率寄存器MR、BR (復位后MR=0BH,BR=13H,串行接口工作于基本速率)。為了簡(jiǎn)化硬件電路設計,將復位應答信號中TA1包含的F1和D1對應的波特率譯碼工作交由軟件完成,由軟件設置通信波特率。內部13bit定時(shí)器根據波特率寄存器MR、BR 值( &)對CLK信號 進(jìn)行分頻,以確定信息寬度。因為1etu,所以MR,BR寄存器設定為MR[7?]&BR[4?]= -1,例如,基本速率時(shí),F=372,D=1,可得,設置MR=0BH,BR=13H,即“00001011,10011”=371;對于手機中常用的增強速率,F=512,D=8,可得,設置MR=01H,BR=1FH,即“00000001,11111”=63。
下面介紹可編程串行接口的工作過(guò)程。在發(fā)送和接收數據前,按以下步驟初始化串行接口:
1. 根據應用,通過(guò)設置MR、BR寄存器來(lái)設定通信速率。
2. 清除SCON[0]和SCON[1]中斷標志。
3. 置位串行接口允許標志位SCON[7],使能串行接口。
初始化工作完成后,可選擇發(fā)送模式或接收模式。
發(fā)送模式
首先將發(fā)送數據寫(xiě)入SBUF,數據移位寄存器data_shift_reg [10~0]將自動(dòng)寫(xiě)入 “ ”,其中P為奇偶校驗位,為欲發(fā)送數據,0為起始位,1代表狀態(tài)Z,最低兩位“01”用于產(chǎn)生起始位下降沿。
置位SCON[4],數據開(kāi)始發(fā)送。根據波特率寄存器中設置的值,接收/發(fā)送控制模塊中,13位定時(shí)器在每位數據將結束時(shí)產(chǎn)生計數脈沖。當計數脈沖有效時(shí),數據移位寄存器右移1位,最低位輸出到I/O線(xiàn),最高位補入I/O線(xiàn)采樣數據。
當校驗位發(fā)送完畢后,I/O線(xiàn)變?yōu)楦咦钁B(tài),發(fā)方在11etu處對I/O線(xiàn)進(jìn)行采樣,如果為狀態(tài)Z,則認為接收正確;如果為狀態(tài)A,則認為傳輸出錯,根據結果刷新串行接口控制/狀態(tài)寄存器中相應位。
當一幀數據發(fā)送完畢后,無(wú)論發(fā)送是否正確,SCON[1] 都將硬件置位,產(chǎn)生發(fā)送中斷申請。如果發(fā)送正確,SCON[4]將被硬件自動(dòng)清0;如果發(fā)送出錯,發(fā)送出錯標志位SCON[2]將被硬件置位,SBUF中的數據將從檢測到錯誤那一刻起2etu后自動(dòng)重發(fā),如圖3所示。在重發(fā)完畢前,必須軟件清除SCON[1]及發(fā)送出錯標志位SCON[2],否則將會(huì )出現循環(huán)重發(fā)錯誤。
接收模式
置位SCON[5] ,系統處于接收狀態(tài)。
起始位的檢測是通過(guò)對I/O線(xiàn)進(jìn)行周期性采樣判決得到的。為了提高抗噪聲性能,當檢測到起始位后,在每位數據中間進(jìn)行3次采樣,根據采樣判決結果產(chǎn)生采樣數據,根據波特率寄存器中設置的值,接收/發(fā)送控制模塊中13位定時(shí)器在每位數據中間產(chǎn)生計數脈沖。在計數脈沖控制下,將采樣數據串行移入數據移位寄存器。
當一幀數據接收完畢后,進(jìn)行數據校驗。根據校驗結果,在起始位下降沿后第10.5個(gè)etu起發(fā)送確認位。確認位為狀態(tài)Z,表示接收正確,為狀態(tài)A,表示接收出錯。確認位信號寬度為1個(gè)etu,如圖4所示。無(wú)論接收是否正確, SCON[0]都將在起始位下降沿后第10.5個(gè)etu置位,產(chǎn)生接收中斷,并根據校驗結果刷新串行接口控制/狀態(tài)寄存器中相應位。如果正確接收,SCON[5]將被硬件自動(dòng)清除,數據移位寄存器中收到的8bit數據將自動(dòng)加載到SBUF中;如果不正確,則置位接收出錯標志位SCON[3],等待數據重發(fā)。軟件清除SCON[0]和SCON[3] 必須在下一幀數據接收完畢前完成。
由于設有數據移位寄存器和SBUF緩沖器,從而能在一幀數據接收完,由數據移位寄存器裝入SBUF后,立即開(kāi)始接收下一幀信息,CPU應在下一幀數據接收結束前從SBUF緩沖器中將數據取走,否則前一幀數據將丟失。
通過(guò)上述可編程串行接口,當接收或發(fā)送完一幀數據后,內部硬件自動(dòng)置位SCON[0] 或SCON[1],CPU可以通過(guò)查詢(xún)中斷標志位或響應中斷申請來(lái)進(jìn)行串行通信處理。兩個(gè)中斷請求標志位不能由硬件自動(dòng)清0,而必須通過(guò)軟件清0。

結語(yǔ)
ISO/IEC 7816,T=0異步半雙工字符傳輸協(xié)議的硬件實(shí)現電路具有如下特點(diǎn):對每位數據采取多次采樣判決的方式,提高了接口抗干擾能力;通信波特率軟件可調,滿(mǎn)足不同系統對通信速率的要求;T=0協(xié)議基于字符幀檢錯重發(fā)。為了避免可能出現的無(wú)限次的重發(fā)現象,在軟件中可設置最大重發(fā)次數。同T=1協(xié)議相比,在通信質(zhì)量不理想的情況下,T=0協(xié)議只需要重發(fā)錯誤字符幀,提高了工作效率?!?/P>

參考文獻
1 International Standard ISO/IEC 7816-3 . Identification cards. Integrated circuit(s) cards with contacts,Part 3:Electronic signals and transmission protocols,1997
2 王愛(ài)英. 智能卡技術(shù)-IC卡第二版. 清華大學(xué)出版社,2000.10

作者簡(jiǎn)介:
龔宗躍,工程師,碩士,研究方向為數字集成電路前端設計;孫東昱,工程師,碩士,研究方向為數字集成電路前端設計。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>