歡迎您訪問鄭州興邦電子股份有限公司官方網站!
    阿里巴巴誠信通企業
    全國咨詢熱線:40000-63966
    興邦電子,中國水控機第一品牌

    聯系興邦電子

    全國咨詢熱線:40000-63966

    售后:0371-55132951/55132952

    工廠:河南省 鄭州市 高新區蓮花街電子電器產業園

    IC卡讀寫接口的可靠性設計

    文章出處:http://www.xujuanpiju.com 作者:不詳   人氣: 發表時間:2011年11月04日

    [文章內容簡介]:IC卡讀寫接口的可靠性設計

    摘 要:從幾個與可靠性緊密相關的問題入手,較為系統地闡述了 IC 卡讀寫接口的可靠性設計問題。
      中圖分類號:TP216 文獻標識碼:B

    1 概 述
      IC 卡與磁卡等存儲介質相比,在安全性等諸多方面具有不可比擬的優越性,它在國民經濟各個領域的應用,是一種必然趨勢。
      由于 IC 卡使用中均牽涉到貨幣的問題,因此,它的可靠性顯得至關重要。如何最大限度地提高 IC 卡讀寫器(或接口)的可靠性,就成了 IC 卡全面推廣應用的關鍵所在。
      IC 卡讀寫接口的可靠性,包括 3 個方面:
      (1)IC 卡讀寫過程能可靠地進行;
     ?。?)任意插拔 IC 卡不會引起 IC 卡損傷;
      ( 3 )在IC卡讀寫中出現問題引起異常時,能及時告警并恢復到正常狀態。
      2 IC 卡讀寫接口的可靠性設計
      IC 卡讀寫接口的電原理,一般如圖 1 示:


       2.1 微處理控制器(CPU)的選型
      在 IC 卡讀寫裝置中,大多采用目前流行的單片機,例如 ATMEL 的 89C2051,或 MICROCHIP 的 PICI6 系列中的 PICI6X84 等。這些主流單片機的性 / 價比較高,而且真正能單片工作,既可減少 PCB 板面積,又可提高系統工作可靠性;特別是 PICI6F84單片機,除了具有非常適合新品試投運的現場可編程的 Flash Memory 外,內部還有 64 字節的 EEPROM ,尤其適用于存放 IC 卡數據動靜態加(解)密因子,對于進一步提高 IC 卡數據的可靠性、安全性十分有利,應為 IC 卡儀表(水表等)首選的 CPU 單元。但由于 IC 單片機一般沒有串行接口,因此對于 IC 卡讀寫器,則宜采用 89 系列單片機。
      2.2 IC卡電源的上下電控制
      IC卡的上電一般是可知的,即對 IC 卡讀寫時需要給 IC
      卡上電(送電源)。因此,IC 卡的上電控制比較簡單。由于 IC
      卡讀寫電流很小,一般為幾個 mA ,因此其實現可按照圖 1 所
      示。由單片機來的 IC_PWR 信號通過小功率三極管 9012 控制系統的 +5V 電源切入 IC 卡座與否。當 IC 卡上電后,發光二極管 L1 被點亮,起讀寫指示作用。每次對 IC 卡讀寫完成后,即及時下電,以減少插拔時帶電的可能性。
      要保證 IC 卡能任意插拔(有可能處于帶電狀態),不致引起 IC 卡損壞,必須要使得 IC 卡拔卡過程處于 IC 卡斷電的狀態。要做到這點,必須要保證 IC 卡的下電迅速及時。為此,可將IC 卡的拔卡處理由最高級中斷程序來實現(注意:采用邊沿觸發方式)。如何及時檢測拔卡動作是問題的關鍵。利用 IC 卡座的 IC 卡檢測開關(常閉)可以解決此問題。
      但是,由于機械觸點開關在動合過程中不可避免存在抖動,因此怎么避免因抖動引起中斷重入進而引起系統死機的問題成為最終癥結所在。如果采用硬件“去抖”(如施密特電路),不僅增加成本,而且實踐發現也不是十分可靠;采用軟件延時“去抖”,只要延時常數合適,不僅保證 IC 卡下電的迅速及時,而且十分有效地解決了抖動問題。 IC 卡下電中斷程序框圖,如圖 2 示。

       2.3 IC卡與 CPU間串行信號的限流
      為了保證 IC 卡帶電插拔的安全可靠,需對 IC 卡與 CPU 間串行通訊的數據信號與時鐘信號進行限流(圖 1 虛線框內兩電阻即為限流電阻),限流電阻阻值一般可取 200Ω左右。具體如圖1示。此限流電阻同時可以防止往 IC 卡座中插入導電的異物而引起系統損壞。
      2.4 IC卡的可靠讀寫
      IC 卡的可靠讀寫主要包括以下兩方面:
     ?。?1 )讀寫過程準確可靠;
      ( 2 )避免無卡時進行讀寫操作。
      為保證 IC 卡讀寫過程準確可靠,只要保證讀寫函數嚴格按照 IC 卡的讀寫時序外,采用“重讀”和“回讀”措施。即:讀 IC 卡時,采用讀兩次的方式,如兩次相符,則數據有效,否則再進行第三次讀;寫 IC 卡時,先將數據寫入,再回讀比較,相符則繼續,否則重寫一次,以免由于偶然的寫失敗導致得出 IC 卡失效的錯誤結論。
      為避免 IC 卡讀寫接口死機以及上位機死機,流程如圖 3示。

      上位機收到無卡標志字節后,可以避免進行無卡狀態下的誤操作,進而避免死機現象。
      

       2.5 與上位機通訊的RS-232C通訊接口及可靠通訊的實現TTL 與 RS-232C 電平轉換由諸如 Max202E 接口芯片實現,采用簡單的軟握手三線制通訊方式。為了確保串行通訊的可靠性,應著重從上下位機通訊軟件的以下幾個方面入手:
      ( 1 )通訊電纜盡可能采用屏蔽三芯電纜;
     ?。?2 )合理選擇通訊波特率;
      由于上下位機通訊的數據量很小(最多為 IC 卡的容量),因此通訊波特率可選低一些,如 2400 。但要高度重視下位機(即 IC 卡讀寫裝置)的波特率參數整定問題,對于 51 系列 CPU 尤其要注意電源管理寄存器中 SMOD 位的設置。以 2400 波特率為例,當 SMOD = 0 時,波特率參數為 0F9H ,實際波特率為 2232 ,此時波特率相對誤差是 7%;而當 SMOD = 0時,波特率參數為 0F3H ,實際波特率為 2404 ,此時相對誤差是 0.16%,滿足正常通訊所規定的波特率相對誤差小于 5%的要求。
     ?。?3 )上位機管理系統的開發平臺目前較多采用基于Windows95環境的諸如 VFP3.0 、DELPHI 4.0等 RAD 開發平臺,其中的串行通訊接口程序既可直接使用串行通訊控件 MSCOMM ,也可采 用基于直接對串口操作的動態鏈接庫(DLL)方式。前者編程簡單,后者則具有較強的硬件駕馭能力,但動態鏈接庫一般要借助嵌入匯編實現。
      如果上位機的管理軟件是基于 DOS 環境的,那么必須注意看通 訊接口程序采用調用BIOS,函數,例如 TC 2.0 的 BIOSCOM()函數時,要注意 BIOS 串行通訊函數對握手信號的奇特要求;否則,一般的三線制通訊程序無法正常運行。
      2.6 工作狀態的有效提示
      大多 IC 卡讀寫裝置一般有聲光指示(報警)接口,提到的發光二極管即為 IC 卡讀寫工作狀態指示;聲音提示可采用效率高、體積小的有源或無源蜂鳴器來實現。
      2.7 死機后的恢復
      如何避免上下位機均不死機或能簡單恢復正常工作呢?
      對于作為下位機的 IC 卡讀寫接口,我們利用 IC 卡能隨意插拔,再結合 IC 卡的拔卡處理是一個高級中斷的特點,將 IC 卡的拔卡中斷程序設計成兩個分支:
      (1)非 IC 卡讀寫且非與上位機通訊狀態;
     ?。?)在與上位機通訊、或正在對 IC 卡讀寫狀態。
      第一種情況下,中斷子程序是簡單的拔卡 Beep 告警后,直接中斷返回;對于第二種情況,則會引起系統工作失常甚至死機,在恢復中斷環境后,用強制跳轉指令強制從主程序開始執行,達到復位的效果。程序框圖,如圖 2 示。
      對于上位機,為了避免由于基于查詢方式的串行通訊失常引起死機現象,可采取限時通訊的辦法。
      5 應用舉例
      將可靠性設計思想成功地應用于本地的 IC 卡自來水預收費管理系統中。其中 IC 卡讀寫器采用 ATMEL 89C2051 單片機為內核,采用交叉技術的三線制串行通訊方式與上位機的基于 DELPHI 4.0 的預收費管理系統軟件進行通訊 IC 卡水表則采用 PIC16F84 單片機。經過近兩個月的實際運行,可靠性是令人滿意的

    本文關鍵詞:IC卡讀寫接口的可靠性設計
    回到頂部