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