基于SLE4442的IC卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
文章出處:http://www.fang1.net 作者: 人氣: 發(fā)表時(shí)間:2012年03月20日
摘要:本文主要介紹了一種基于MCS-51 單片機(jī)的IC 卡讀寫(xiě)終端,設(shè)計(jì)了單片機(jī)控制IC 卡數(shù)據(jù)讀寫(xiě)的軟/硬件,以及與PC 機(jī)之間的串口通信。
關(guān)鍵詞:SLE4442;51 單片機(jī); 讀寫(xiě)器; 串口通信
1 引言
IC卡又稱集成電路卡,是Integrated Circuit Card的英文縮寫(xiě),它將一個(gè)集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式,具有讀寫(xiě)數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的能力。IC卡比磁卡存儲(chǔ)容量大,可靠性和安全性高,在應(yīng)用上除了覆蓋磁卡的全部應(yīng)用范圍以外,還提供了許多磁卡所不具備的應(yīng)用特性。正是這些特性,使IC卡在脫機(jī)業(yè)務(wù)處理和聯(lián)網(wǎng)數(shù)據(jù)一致性等方面表現(xiàn)出前所未有的優(yōu)勢(shì)。
2 SLE4442 卡介紹
邏輯加密卡SLE4442是德國(guó)西門(mén)子公司推出的智能帶寫(xiě)保護(hù)功能和保密邏輯的256字節(jié)EEPROM卡,具有以下特點(diǎn):二線制通信協(xié)議、串行接口、觸點(diǎn)配置、至少可擦寫(xiě) 1萬(wàn)次及數(shù)據(jù)可保持10年以上[1]。
SLE4442芯片的觸點(diǎn)位置與功能符合ISO7816-2標(biāo)準(zhǔn),觸點(diǎn)位置見(jiàn)圖1所示,觸點(diǎn)功能見(jiàn)表1所示。
圖1 觸點(diǎn)位置 表1 SLE4442的觸點(diǎn)功能
3 接口電路與讀寫(xiě)控制
3.1 接口電路的設(shè)計(jì)
本設(shè)計(jì)采用的單片機(jī)是8051單片機(jī)。SLE4442卡座與8051單片機(jī)的最基本連接如圖2所示。SLE4442的RST,CLK,I/O三條線均需接上拉電阻接到+5V上,因選用的接口,內(nèi)有上拉電阻,故可以省去。這三條線上也可以加箝拉保護(hù)二極管(在電壓穩(wěn)定、干擾很小的情況下,可以不加)。這種接法線路簡(jiǎn)單、實(shí)用。為了防止IC卡座被插入鐵片等物而造成短路,卡座的供電最好與單片機(jī)系統(tǒng)分開(kāi),且讓單片機(jī)能檢測(cè)到這種短路,不讓P1.7為低電平,從而使IC卡斷電。其中R1,D1,Q組成卡上下電電路,當(dāng)P1.7=0時(shí),Q導(dǎo)通,IC卡座Vcc得電,當(dāng)P1.7=1時(shí),Q截止,IC卡座失電。R1,D1用于檢測(cè)卡電源是否短路,以防人為破壞,在對(duì)IC卡供電時(shí),如果單片機(jī)檢測(cè)到P1.6=0,說(shuō)明電源短路,發(fā)報(bào)警信號(hào)。SW1、SW2為IC卡卡座的一對(duì)常開(kāi)觸點(diǎn),當(dāng)有卡插人時(shí),SW1、SW2短路,給INT0送人低電平,此信號(hào)用來(lái)檢測(cè)有無(wú)卡插入[2]。
圖2 SLE4442它與8051的接口電路
3.2 SLE4442 操作命令的實(shí)現(xiàn)
1)SLE4442 的模式
SLE4442傳輸協(xié)議是在接口設(shè)備IFD與IC卡的集成電路之間的兩線連接協(xié)議,其協(xié)議類型為S=A。I/O線上的數(shù)據(jù)變化只在CLK信號(hào)的下降沿才有效。該傳輸協(xié)議包括4種模式:復(fù)位與復(fù)位應(yīng)答、命令模式、輸出數(shù)據(jù)模式以及數(shù)據(jù)處理模式。
2) SLE4442 的操作命令
SLE4442共有7條操作命令,針對(duì)操作對(duì)象的不同,分為三類:
主存儲(chǔ)區(qū):讀主存儲(chǔ)區(qū)、寫(xiě)主存儲(chǔ)區(qū);
保護(hù)區(qū):讀保護(hù)區(qū)、寫(xiě)保護(hù)區(qū);
密碼區(qū):讀密碼區(qū)、寫(xiě)密碼區(qū)、比較密碼。
SLE4442操作命令格式如表2所示。每條命令包含三個(gè)字節(jié):命令控制字、地址、數(shù)據(jù)。命令傳輸?shù)捻樞蛞来问强刂谱?,地址,?shù)據(jù)。每個(gè)字節(jié)的最低有效位LSB最先傳送。
表2 操作命令格式
本文需要解決的問(wèn)題之一即是如何通過(guò)微處理器發(fā)控制命令,卡的讀寫(xiě)操作,實(shí)現(xiàn)IC卡與接口設(shè)備之間的數(shù)據(jù)交換。
3) SLE4442 讀寫(xiě)操作
由圖2的接口電路可以看出SLE4442的時(shí)鐘、上下電以及讀寫(xiě)操作均由單片機(jī)控制,因此單片機(jī)編程時(shí)應(yīng)符合SLE4442的傳輸協(xié)議和操作命令。本設(shè)計(jì)首先按照要求編寫(xiě)對(duì)SLE4442進(jìn)行操作的子程序,再編寫(xiě)主程序形成一套完整的IC卡讀寫(xiě)系統(tǒng)。其中密碼效驗(yàn)和讀寫(xiě)控制的程序流程比較常見(jiàn),本文省略。幾個(gè)主要子程序流程圖如圖3、圖4所示:
圖3 插卡識(shí)別流程圖 圖4 復(fù)位和復(fù)位應(yīng)答程序流程圖
第1頁(yè)第2頁(yè) |