一種多SAM模塊的低功耗IC卡讀卡器設(shè)計與實現(xiàn)
文章出處:http://m.luckydriving.com 作者:武衛(wèi)東 王光興 人氣: 發(fā)表時間:2011年10月16日
IC卡又叫智能卡,它將大規(guī)模集成電路(IC:Integrated circuit)封裝在卡片中,卡片上印有說明文字和圖像,可以存儲大量信息.具有極強的保密性能,抗干擾、無磨損、壽命長等優(yōu)點。
根據(jù)其內(nèi)部結(jié)構(gòu)Ic卡可以分為以下3類:1.存儲卡;2.邏輯加密卡;3.CPU卡。CPU卡內(nèi)部帶有微處理器,把具有存儲加密及數(shù)據(jù)處理能力的芯片鑲嵌在塑料基片中;CPU卡采用密鑰管理機制認(rèn)證過程,通過加密算法運算在SAM卡和CPU卡之間動態(tài)進(jìn)行,CPU卡和SAM卡之間傳遞的是一種動態(tài)變化的偽隨機碼,在實際應(yīng)用中被破譯和攻擊的可能性非常?。辉谛阅苌媳却鎯ㄓ休^好的安全性,兼容性和擴展性;CPU卡信息傳輸方式遵循ISO7816—3國際標(biāo)準(zhǔn),芯片升級時不需要對系統(tǒng)內(nèi)的微控制器程序進(jìn)行改動,這是存儲卡和邏輯加密卡所不能作到的。CPU卡采用文件方式對數(shù)據(jù)進(jìn)行存儲,可以對不同應(yīng)用的數(shù)據(jù)文件進(jìn)行目錄管理,很容易實現(xiàn)一卡多用。
CPU卡的這些優(yōu)勢使其在智能卡表、通信、設(shè)備,交通收費網(wǎng)絡(luò)、安全金融設(shè)備等領(lǐng)域得到越來越廣泛的應(yīng)用。但是目前市面上的CPU型IC卡種類較多,彼此之間的安全認(rèn)證過程不盡相同,且彼此保密。所以為了使瀆卡器兼容不同IC卡,需要設(shè)計一種可以使用不同的SAM卡來對不同的IC卡進(jìn)行安全認(rèn)證的讀卡器,作者根據(jù)某通信有限公司的要求,設(shè)計了一種超低功耗的讀卡器。文章第一部分介紹了讀卡器的硬件結(jié)構(gòu)和工作原理,第二部分介紹了系統(tǒng)的軟件設(shè)計,第三部分對系統(tǒng)進(jìn)行了低功耗測試和性能測試,最后給出了結(jié)論。
1 讀卡器的硬件結(jié)構(gòu)和工作原理
(1)MSP430F149單片機是讀卡器主控制器,負(fù)責(zé)判斷讀卡器中是否插卡,若插卡,則通過對SAM卡卡座中的SAM卡的掃描,對CPU卡進(jìn)行型號判別。判定IC卡類型后,使用相應(yīng)的SAM 卡模塊,對該CPU進(jìn)行安全認(rèn)證,認(rèn)證結(jié)束,通知主機,IC卡合法,主機啟動相應(yīng)的業(yè)務(wù)進(jìn)行服務(wù).通過通信協(xié)議,主機可以發(fā)送讀余額、扣費等指令,MSP430F149單片機接到指令.通過標(biāo)準(zhǔn)協(xié)議向CPU卡發(fā)出讀余額、扣費等操作指令,CPU卡接到指令后自動完成這些操作。
(2)電源:由于該讀卡器在實際使用中是嵌入到所應(yīng)用的系統(tǒng)中,所以系統(tǒng)應(yīng)該提供標(biāo)準(zhǔn)的5V電源(可以在RS一232 C接口端取),為了降低讀卡器的功耗,選用的MSP430F149需要3V的工作電壓,因此選用AS818 DC—DC芯片進(jìn)行電源轉(zhuǎn)換。
(3)用戶卡:用戶卡用CPU型IC卡,用戶卡卡座選用的是常開型卡座,當(dāng)用戶卡插入時,迫使卡座中SW開關(guān)的兩個腳短路,這兩個腳一端接地,一端接單片機具有中斷功能的I/0腳,通過外部上拉,中斷啟動。在實際運行時,由于大部分時間處于低功耗狀態(tài)(睡眠模式),所以在軟件上采用中斷喚醒的工作方式。用戶卡驅(qū)動模塊電路圖如圖4所示,CD4066起開關(guān)作用,在不讀卡時使其與主控器的控制信號隔離。
(4)SAM卡:為了兼容各種用戶卡,瀆取不同公司的SAM 卡,SAM卡卡座選用的是普通的卡座,通過CMOS電壓向rITrL電壓轉(zhuǎn)換電路和MSP430F149相連。電壓轉(zhuǎn)換電路利用雙電源電平移位器74LVC4245來實現(xiàn)。SAM 卡驅(qū)動模塊電路圖與用戶卡類似。
(5)RS一232 C接口:IC卡讀寫器多數(shù)是采用RS232串口進(jìn)行通信的,其硬件的實現(xiàn)比較簡單,一般的主機系統(tǒng)都具有RS一232 C接口,因此可以保證讀卡器具有很好的通用性。
2 讀卡器的軟件設(shè)計
軟件功能模塊,核心部分包括以下幾個模塊:SAM卡的操作模塊、用戶卡4436卡的操作模塊、IC操作模塊和串口發(fā)送和協(xié)議解析模塊。SAM卡的操作模塊主要完成對SAM卡進(jìn)行復(fù)位、基本寫讀操作和命令的發(fā)送和返回字節(jié)數(shù)據(jù)的解析。4436卡的操作模塊主要完成對4436卡數(shù)據(jù)的讀取和認(rèn)證的操作。IC卡的操作模塊主要完成對24c01卡和24c01管理卡的指定地址的讀寫操作。串口發(fā)送和協(xié)議解析模塊主要完成對通信協(xié)議的解析和數(shù)據(jù)的讀取和發(fā)送。
讀卡器的軟件主流程圖從略。判斷有無卡,通過檢測SW引腳的狀態(tài)實現(xiàn),置位為有卡,否則為無卡。當(dāng)有卡時MSP430F149MCU向主機發(fā)出請求,讀卡器接收主機命令,模塊執(zhí)行檢查卡類型子程序,根據(jù)時序檢測卡的類型,并返回數(shù)據(jù)。
3 綜合測試
系統(tǒng)的穩(wěn)定性測試:采用了72小時重復(fù)認(rèn)證和讀寫的方法,通過編寫專門的測試程序?qū)ψx卡器進(jìn)行了測試,測試結(jié)果表明該系統(tǒng)運行穩(wěn)定可靠。
低功耗測試:根據(jù)技術(shù)指標(biāo)要求先將演示系統(tǒng)的讀卡器進(jìn)行測試。
本測試方法采用VC9807電流表串聯(lián)測量的方法,測試時采用的測試程序為一循環(huán)認(rèn)證程序,即設(shè)計的一個無限循環(huán)的連續(xù)認(rèn)證的程序,因此所測的電流為系統(tǒng)的最大工作電流。設(shè)計時,采用全貼片元器件的設(shè)計和焊接工藝,設(shè)計的讀卡器體積60mm*40mm*20mm。因此可以方便地嵌人到公用電話機、自動會員機、自動提款機等系統(tǒng)中,具有體積小的特點。
4 結(jié)論
綜上所述,通過對不同CPU卡和SAM卡的研究和分析,提出了通過使用多SAM卡模塊的循環(huán)掃描對多種用戶卡進(jìn)行認(rèn)證管理,實現(xiàn)了對多種CPU卡的支持,讀卡器兼容多種用戶卡的方法,經(jīng)過聯(lián)合調(diào)試,系統(tǒng)完成了低功耗和項目所規(guī)定的技術(shù)要求,通過了某通信公司的項目驗收,很好完成了此項目,同時具有低功耗,運行穩(wěn)定、體積小等特點。