色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關(guān) 閉

          新聞中心

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

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

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

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

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

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

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

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

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

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉