支持B類(lèi)CPU卡的5 V接觸式讀寫(xiě)器設(shè)計(jì)
單片機(jī)通過(guò)RS232串口接收上位機(jī)發(fā)送的命令,主程序按照預(yù)先設(shè)計(jì)的通信協(xié)議格式對(duì)其解析之后,如果是正確的命令,則轉(zhuǎn)到相應(yīng)的命令處進(jìn)行執(zhí)行,否則向上位機(jī)返回錯(cuò)誤信息,并繼續(xù)接收新的命令。該固件程序可以實(shí)現(xiàn)讀寫(xiě)器與上位機(jī)之間通信速率在9 600 b/s、19 200 b/s、38 400 b/s、57 600 b/s、76 800 b/s、115 200 b/s內(nèi)任意選擇。
本讀寫(xiě)器可以對(duì)符合T=0、T=1協(xié)議的B類(lèi)CPU卡進(jìn)行讀寫(xiě)操作,也可以對(duì)其他的存儲(chǔ)卡、邏輯加密卡進(jìn)行程序擴(kuò)展。T=0的協(xié)議卡以單字節(jié)的字符為基本單位,T=1的協(xié)議卡以有一定長(zhǎng)度的數(shù)據(jù)分組為傳輸?shù)幕締挝?。程?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/設(shè)計(jì)">設(shè)計(jì)過(guò)程中,通過(guò)判斷復(fù)位應(yīng)答來(lái)獲得卡片的協(xié)議類(lèi)型,再根據(jù)不同協(xié)議的要求執(zhí)行相應(yīng)的處理。如圖5所示為主程序執(zhí)行流程。
系統(tǒng)上電后,首先執(zhí)行系統(tǒng)初始化,包括串口的初始化、系統(tǒng)聲光電路的指示設(shè)置等,如果發(fā)光二極管顯示正常,表明讀寫(xiě)器已經(jīng)打開(kāi),可以正常工作。在卡片插入之后,常閉型接觸卡座的查詢(xún)卡片狀態(tài)管腳被彈開(kāi),電壓變?yōu)楦唠娖?,說(shuō)明卡片已到位,此時(shí)按照從串口接收的有效命令對(duì)卡進(jìn)行復(fù)位、密碼校驗(yàn)、讀寫(xiě)數(shù)據(jù)等操作。
3 應(yīng)用軟件設(shè)計(jì)
讀寫(xiě)器的應(yīng)用軟件是讀寫(xiě)器系統(tǒng)的一個(gè)重要組成部分,它主要實(shí)現(xiàn)對(duì)讀寫(xiě)器參數(shù)的設(shè)置、數(shù)據(jù)的讀寫(xiě)和顯示、IC卡狀態(tài)的判斷等,是操作讀寫(xiě)器的最直觀接口[3]。
該應(yīng)用軟件的設(shè)計(jì)環(huán)境為Microsoft Visual C++ 6.0。在軟件設(shè)計(jì)過(guò)程中采用了Visual C++提供的ActiveX控件MSComm來(lái)實(shí)現(xiàn)對(duì)串口的訪問(wèn),該控件的使用不需要了解較為復(fù)雜的API函數(shù)就可以非常方便地進(jìn)行串口編程[6]。
該應(yīng)用軟件界面友好、使用非常方便,只需要把串口通信的串口號(hào)、通信速率設(shè)置好,就能成功對(duì)讀寫(xiě)器進(jìn)行操作,其界面如圖6所示。設(shè)置好串口參數(shù),輸入相應(yīng)的讀寫(xiě)指令后,在OUTPUT框內(nèi)就可以看到讀寫(xiě)器返回的結(jié)果。
該接觸式讀寫(xiě)器經(jīng)檢測(cè)在Windows環(huán)境能夠?qū)類(lèi)CPU卡進(jìn)行全功能讀寫(xiě),可以廣泛應(yīng)用于金融、醫(yī)療、保險(xiǎn)等行業(yè)。同時(shí)該讀寫(xiě)器的讀寫(xiě)速度沒(méi)有因應(yīng)用了電平轉(zhuǎn)換電路而受到明顯的影響,所以真正實(shí)現(xiàn)了在5 V的系統(tǒng)中對(duì)B類(lèi)卡的讀寫(xiě),這對(duì)設(shè)計(jì)AB類(lèi)接口設(shè)備具有指導(dǎo)意義。
參考文獻(xiàn)
[1] 王愛(ài)英.智能卡技術(shù)-IC卡(第二版)[M].北京:清華大學(xué)出版社,2000.
[2] 何英慧,張其善.接觸式智能卡讀寫(xiě)器的研制[J].電子測(cè)量技術(shù),2006,29(3):65-66.
[3] 張國(guó)云.加密型IC卡與AT89C51單片機(jī)接口程序設(shè)計(jì)[J] .電子與自動(dòng)化,2000(5):32-34.
[4] Texas Instruments Incorporated. SN74TVC3010 10-bit voltage clamp datasheet,1999.
[5] 李瀛,王欣,吳曉波,等.基于USB接口的lC卡讀寫(xiě)器[J]. 東北大學(xué)學(xué)報(bào),2004,25(11):1046-1049.
[6] 李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐(第二版)[M].北京:人民郵電出版社,2004.
評(píng)論