IC卡讀寫接口的可靠性設(shè)計
文章出處:http://www.fang1.net 作者:不詳 人氣: 發(fā)表時間:2011年11月04日
[文章內(nèi)容簡介]:IC卡讀寫接口的可靠性設(shè)計
摘 要:從幾個與可靠性緊密相關(guān)的問題入手,較為系統(tǒng)地闡述了 IC 卡讀寫接口的可靠性設(shè)計問題。
中圖分類號:TP216 文獻(xiàn)標(biāo)識碼:B
1 概 述
IC 卡與磁卡等存儲介質(zhì)相比,在安全性等諸多方面具有不可比擬的優(yōu)越性,它在國民經(jīng)濟(jì)各個領(lǐng)域的應(yīng)用,是一種必然趨勢。
由于 IC 卡使用中均牽涉到貨幣的問題,因此,它的可靠性顯得至關(guān)重要。如何最大限度地提高 IC 卡讀寫器(或接口)的可靠性,就成了 IC 卡全面推廣應(yīng)用的關(guān)鍵所在。
IC 卡讀寫接口的可靠性,包括 3 個方面:
?。?)IC 卡讀寫過程能可靠地進(jìn)行;
?。?)任意插拔 IC 卡不會引起 IC 卡損傷;
( 3 )在IC卡讀寫中出現(xiàn)問題引起異常時,能及時告警并恢復(fù)到正常狀態(tài)。
2 IC 卡讀寫接口的可靠性設(shè)計
IC 卡讀寫接口的電原理,一般如圖 1 示:
2.1 微處理控制器(CPU)的選型
在 IC 卡讀寫裝置中,大多采用目前流行的單片機(jī),例如 ATMEL 的 89C2051,或 MICROCHIP 的 PICI6 系列中的 PICI6X84 等。這些主流單片機(jī)的性 / 價比較高,而且真正能單片工作,既可減少 PCB 板面積,又可提高系統(tǒng)工作可靠性;特別是 PICI6F84單片機(jī),除了具有非常適合新品試投運(yùn)的現(xiàn)場可編程的 Flash Memory 外,內(nèi)部還有 64 字節(jié)的 EEPROM ,尤其適用于存放 IC 卡數(shù)據(jù)動靜態(tài)加(解)密因子,對于進(jìn)一步提高 IC 卡數(shù)據(jù)的可靠性、安全性十分有利,應(yīng)為 IC 卡儀表(水表等)首選的 CPU 單元。但由于 IC 單片機(jī)一般沒有串行接口,因此對于 IC 卡讀寫器,則宜采用 89 系列單片機(jī)。
2.2 IC卡電源的上下電控制
IC卡的上電一般是可知的,即對 IC 卡讀寫時需要給 IC
卡上電(送電源)。因此,IC 卡的上電控制比較簡單。由于 IC
卡讀寫電流很小,一般為幾個 mA ,因此其實(shí)現(xiàn)可按照圖 1 所
示。由單片機(jī)來的 IC_PWR 信號通過小功率三極管 9012 控制系統(tǒng)的 +5V 電源切入 IC 卡座與否。當(dāng) IC 卡上電后,發(fā)光二極管 L1 被點(diǎn)亮,起讀寫指示作用。每次對 IC 卡讀寫完成后,即及時下電,以減少插拔時帶電的可能性。
要保證 IC 卡能任意插拔(有可能處于帶電狀態(tài)),不致引起 IC 卡損壞,必須要使得 IC 卡拔卡過程處于 IC 卡斷電的狀態(tài)。要做到這點(diǎn),必須要保證 IC 卡的下電迅速及時。為此,可將IC 卡的拔卡處理由最高級中斷程序來實(shí)現(xiàn)(注意:采用邊沿觸發(fā)方式)。如何及時檢測拔卡動作是問題的關(guān)鍵。利用 IC 卡座的 IC 卡檢測開關(guān)(常閉)可以解決此問題。
但是,由于機(jī)械觸點(diǎn)開關(guān)在動合過程中不可避免存在抖動,因此怎么避免因抖動引起中斷重入進(jìn)而引起系統(tǒng)死機(jī)的問題成為最終癥結(jié)所在。如果采用硬件“去抖”(如施密特電路),不僅增加成本,而且實(shí)踐發(fā)現(xiàn)也不是十分可靠;采用軟件延時“去抖”,只要延時常數(shù)合適,不僅保證 IC 卡下電的迅速及時,而且十分有效地解決了抖動問題。 IC 卡下電中斷程序框圖,如圖 2 示。
2.3 IC卡與 CPU間串行信號的限流
為了保證 IC 卡帶電插拔的安全可靠,需對 IC 卡與 CPU 間串行通訊的數(shù)據(jù)信號與時鐘信號進(jìn)行限流(圖 1 虛線框內(nèi)兩電阻即為限流電阻),限流電阻阻值一般可取 200Ω左右。具體如圖1示。此限流電阻同時可以防止往 IC 卡座中插入導(dǎo)電的異物而引起系統(tǒng)損壞。
2.4 IC卡的可靠讀寫
IC 卡的可靠讀寫主要包括以下兩方面:
( 1 )讀寫過程準(zhǔn)確可靠;
?。?2 )避免無卡時進(jìn)行讀寫操作。
為保證 IC 卡讀寫過程準(zhǔn)確可靠,只要保證讀寫函數(shù)嚴(yán)格按照 IC 卡的讀寫時序外,采用“重讀”和“回讀”措施。即:讀 IC 卡時,采用讀兩次的方式,如兩次相符,則數(shù)據(jù)有效,否則再進(jìn)行第三次讀;寫 IC 卡時,先將數(shù)據(jù)寫入,再回讀比較,相符則繼續(xù),否則重寫一次,以免由于偶然的寫失敗導(dǎo)致得出 IC 卡失效的錯誤結(jié)論。
為避免 IC 卡讀寫接口死機(jī)以及上位機(jī)死機(jī),流程如圖 3示。
上位機(jī)收到無卡標(biāo)志字節(jié)后,可以避免進(jìn)行無卡狀態(tài)下的誤操作,進(jìn)而避免死機(jī)現(xiàn)象。
2.5 與上位機(jī)通訊的RS-232C通訊接口及可靠通訊的實(shí)現(xiàn)TTL 與 RS-232C 電平轉(zhuǎn)換由諸如 Max202E 接口芯片實(shí)現(xiàn),采用簡單的軟握手三線制通訊方式。為了確保串行通訊的可靠性,應(yīng)著重從上下位機(jī)通訊軟件的以下幾個方面入手:
?。?1 )通訊電纜盡可能采用屏蔽三芯電纜;
?。?2 )合理選擇通訊波特率;
由于上下位機(jī)通訊的數(shù)據(jù)量很?。ㄗ疃酁?IC 卡的容量),因此通訊波特率可選低一些,如 2400 。但要高度重視下位機(jī)(即 IC 卡讀寫裝置)的波特率參數(shù)整定問題,對于 51 系列 CPU 尤其要注意電源管理寄存器中 SMOD 位的設(shè)置。以 2400 波特率為例,當(dāng) SMOD = 0 時,波特率參數(shù)為 0F9H ,實(shí)際波特率為 2232 ,此時波特率相對誤差是 7%;而當(dāng) SMOD = 0時,波特率參數(shù)為 0F3H ,實(shí)際波特率為 2404 ,此時相對誤差是 0.16%,滿足正常通訊所規(guī)定的波特率相對誤差小于 5%的要求。
?。?3 )上位機(jī)管理系統(tǒng)的開發(fā)平臺目前較多采用基于Windows95環(huán)境的諸如 VFP3.0 、DELPHI 4.0等 RAD 開發(fā)平臺,其中的串行通訊接口程序既可直接使用串行通訊控件 MSCOMM ,也可采 用基于直接對串口操作的動態(tài)鏈接庫(DLL)方式。前者編程簡單,后者則具有較強(qiáng)的硬件駕馭能力,但動態(tài)鏈接庫一般要借助嵌入?yún)R編實(shí)現(xiàn)。
如果上位機(jī)的管理軟件是基于 DOS 環(huán)境的,那么必須注意看通 訊接口程序采用調(diào)用BIOS,函數(shù),例如 TC 2.0 的 BIOSCOM()函數(shù)時,要注意 BIOS 串行通訊函數(shù)對握手信號的奇特要求;否則,一般的三線制通訊程序無法正常運(yùn)行。
2.6 工作狀態(tài)的有效提示
大多 IC 卡讀寫裝置一般有聲光指示(報警)接口,提到的發(fā)光二極管即為 IC 卡讀寫工作狀態(tài)指示;聲音提示可采用效率高、體積小的有源或無源蜂鳴器來實(shí)現(xiàn)。
2.7 死機(jī)后的恢復(fù)
如何避免上下位機(jī)均不死機(jī)或能簡單恢復(fù)正常工作呢?
對于作為下位機(jī)的 IC 卡讀寫接口,我們利用 IC 卡能隨意插拔,再結(jié)合 IC 卡的拔卡處理是一個高級中斷的特點(diǎn),將 IC 卡的拔卡中斷程序設(shè)計成兩個分支:
?。?)非 IC 卡讀寫且非與上位機(jī)通訊狀態(tài);
(2)在與上位機(jī)通訊、或正在對 IC 卡讀寫狀態(tài)。
第一種情況下,中斷子程序是簡單的拔卡 Beep 告警后,直接中斷返回;對于第二種情況,則會引起系統(tǒng)工作失常甚至死機(jī),在恢復(fù)中斷環(huán)境后,用強(qiáng)制跳轉(zhuǎn)指令強(qiáng)制從主程序開始執(zhí)行,達(dá)到復(fù)位的效果。程序框圖,如圖 2 示。
對于上位機(jī),為了避免由于基于查詢方式的串行通訊失常引起死機(jī)現(xiàn)象,可采取限時通訊的辦法。
5 應(yīng)用舉例
將可靠性設(shè)計思想成功地應(yīng)用于本地的 IC 卡自來水預(yù)收費(fèi)管理系統(tǒng)中。其中 IC 卡讀寫器采用 ATMEL 89C2051 單片機(jī)為內(nèi)核,采用交叉技術(shù)的三線制串行通訊方式與上位機(jī)的基于 DELPHI 4.0 的預(yù)收費(fèi)管理系統(tǒng)軟件進(jìn)行通訊 IC 卡水表則采用 PIC16F84 單片機(jī)。經(jīng)過近兩個月的實(shí)際運(yùn)行,可靠性是令人滿意的
本文關(guān)鍵詞:IC卡讀寫接口的可靠性設(shè)計
上一篇:電子收費(fèi)之5.8GHz系統(tǒng)與915MHz系統(tǒng)的比較[ 11-04 ]
下一篇:接觸式IC卡接口原理與不同實(shí)現(xiàn)方式對比[ 11-04 ]