基于單片機(jī)的IC卡讀寫器設(shè)計(jì) 摘要:隨著社會(huì)的進(jìn)步和現(xiàn)代化程度的不斷提高,人類所擁有的信息種類和數(shù)量都在成倍地增長,每天都要處理許多與個(gè)人有關(guān)的信息,而這些信息管理十分不便。因此,在實(shí)際生活中IC卡的應(yīng)用范圍非常廣泛,它有助于解決問題。IC卡讀寫器是IC卡和計(jì)算機(jī)之間的傳輸媒介,它與計(jì)算機(jī)之間通過串行口相連,本文主要應(yīng)用89C2051單片機(jī)為核心對(duì)SLE4442卡進(jìn)行讀寫控制。接觸式IC卡是IC卡領(lǐng)域的一項(xiàng)新興技術(shù),它是射頻識(shí)別技術(shù)和IC卡技術(shù)相結(jié)合的產(chǎn)物。 首先在緒論中介紹了課題的開發(fā)意義及功能概述。 其次在主要描述了系統(tǒng)硬件工作原理,并介紹了IC卡SLE4442的內(nèi)部結(jié)構(gòu)及原理圖,論述了本次畢業(yè)設(shè)計(jì)所應(yīng)用的各硬件接口技術(shù)和各個(gè)接口模塊的功能及工作過程。 本系統(tǒng)是以單片機(jī)的基本語言匯編語言來進(jìn)行軟件設(shè)計(jì),指令的執(zhí)行速度快。 最后具體描述了各個(gè)功能模塊的軟、硬件調(diào)試。本文撰寫的主導(dǎo)思想是軟、 硬件結(jié)合,以硬件為基礎(chǔ),來進(jìn)行各功能模塊的編寫。
目錄: 1前言 1.1 系統(tǒng)的提出及研究意義。 1.2 系統(tǒng)的研究方向及功能概述。 2 正文 2.1 硬件設(shè)計(jì)思路。 2.2 硬件論證方案。 2.3 硬件各模塊的設(shè)計(jì)。 2.3.1 89C2051單片機(jī)的簡介。 2.3.2 SLE4442IC卡的簡介: 芯片概述:芯片功能;芯片內(nèi)部邏輯結(jié)構(gòu); 傳輸協(xié)議:復(fù)位和復(fù)位響應(yīng);命令模式;輸出數(shù)據(jù)模式;處理數(shù)據(jù)模式; 2.3.3 SLE4442的應(yīng)用: 芯片的復(fù)位方式; 芯片的操作命令格式; 2.3.4 SLE4442的接口技術(shù): SLE4442卡的接口電路; SLE4442卡的插入/退出識(shí)別與上電/下電復(fù)位過程; SLE4442卡的讀寫; SLE4442卡的邏輯加密。 2.3.5RS—232通信接口芯片: 2.3.6電路原理分析 2.4 軟件設(shè)計(jì)思想。 軟件結(jié)構(gòu)設(shè)計(jì)及其分析; 軟件系統(tǒng)分析; 2.5 軟件程序設(shè)計(jì) 3系統(tǒng)調(diào)試 4 結(jié)論 5 參考文獻(xiàn) 6 致謝 附錄: 附錄一:外文專業(yè)參考資料譯文 附錄二:外文專業(yè)參考資料原文 附錄三:電路原理圖 附錄四:程序流程圖 附錄五:程序清單 1.前言 1.1系統(tǒng)的提出及研究意義。 當(dāng)今世界信息技術(shù)的發(fā)展日新月異,一個(gè)以電子商務(wù)為主要特征的經(jīng)濟(jì)時(shí)代即將來臨,IC卡是一種將個(gè)人信息最有效地送入到先進(jìn)的全球信息網(wǎng)絡(luò)并獲取所需結(jié)果的最有效的辦法,IC卡將成為人們聯(lián)網(wǎng)身份識(shí)別和實(shí)現(xiàn)電子支付手段。其影響面是前所未有的。智能IC卡與普通磁卡相比具有更高的安全性,為此,對(duì)智能IC卡的讀寫進(jìn)行研究是非常有意義的。按卡與外界數(shù)據(jù)傳輸?shù)男问絹矸郑薪佑|式IC卡和非接觸式IC卡兩種。當(dāng)前廣泛使用的是接觸式IC卡,本文對(duì)其進(jìn)行了詳細(xì)介紹。 目前,IC卡家族中檔次最高的智能IC卡,又稱CPU卡.顧名思義, 這種卡片上不但有存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器和對(duì)外聯(lián)絡(luò)的通訊接口,還帶有具備數(shù)據(jù)處理能力的微處理器,實(shí)際上是一臺(tái)卡上的單片微機(jī)系統(tǒng).為了管理這一系統(tǒng)中的硬件和軟件資源, 卡上存儲(chǔ)有進(jìn)行數(shù)據(jù)讀寫和安全管理的程序,以及管理這些程序的卡上操作系統(tǒng),即COS(Chip Operating system).COS與我們?cè)赑C機(jī)上常見的DOS和WINDOWS 等操作系統(tǒng)有很大不同,它是根據(jù)IC卡特點(diǎn)而開發(fā)的專用操作系統(tǒng).COS受IC 卡存儲(chǔ)容量和微處理器性能的限制,主要功能是:控制IC卡與外界的信息交換;管理IC卡上各種存儲(chǔ)器;在IC卡內(nèi)執(zhí)行讀寫器的各種操作命令.有了CPU與COS,IC卡就有了智能.因此智能IC 卡具有超強(qiáng)的存儲(chǔ)性能,提供很高的信息安全性和可靠性. 1.2系統(tǒng)的研究方向及功能概述。 本文主要以89C2051單片機(jī)為核心,IC卡讀/寫設(shè)備就是能將數(shù)據(jù)信息“寫入”IC卡或?qū)C卡內(nèi)部的數(shù)據(jù)信息“讀出”或“擦除”的電子接口設(shè)備,總體來說,可將其分為通用型讀/寫設(shè)備和專用型讀/寫設(shè)備。本設(shè)計(jì)主要分析接觸型IC卡讀/寫器,作為PC機(jī)的嵌入式外設(shè),通過串型接口實(shí)現(xiàn)交換。 功能:能識(shí)別和讀/寫存儲(chǔ)卡;為連機(jī)型讀/寫器,做為依附于PC機(jī)的一種外設(shè),通過RS-232C與PC機(jī)進(jìn)行通信;能自動(dòng)連續(xù)讀/寫,具有上電冷復(fù)位,插卡熱復(fù)位功能;卡上數(shù)據(jù)讀/寫采用雙認(rèn)證方式,確保讀/寫數(shù)據(jù)的可靠性和準(zhǔn)確性;具有一定的抗攻擊能力,即對(duì)于非法插拔,非法IC卡等具有一定的抵抗能力,可避免短路等造成的讀/寫損壞;具有聲光提示讀/寫狀態(tài);采用動(dòng)態(tài)加密算法,避免IC卡被非法復(fù)制,并保證IC卡數(shù)據(jù)的安全性。 2.正文 2.1硬件設(shè)計(jì)思路: IC卡的應(yīng)用領(lǐng)域非常廣泛。在IC卡的觸點(diǎn)和讀/寫設(shè)備的觸點(diǎn)良好接觸之前,讀/寫設(shè)備不應(yīng)對(duì)IC卡施加有關(guān)信號(hào),以免造成不可預(yù)料的損壞。IC卡讀/寫設(shè)備作為系統(tǒng)和用戶交換的接口,必將面對(duì)各種各樣復(fù)雜的應(yīng)用環(huán)境。因此,在設(shè)計(jì)階段應(yīng)注意IC卡讀/寫設(shè)備環(huán)境。作為操作系統(tǒng),管理IC卡的硬件資源和數(shù)據(jù)資源是其基本任務(wù).IC卡上的硬件資源包括CPU,ROM,EEPROM和RAM及通訊接口,這些都由IC卡上操作系統(tǒng)統(tǒng)一管理, 使外部不能直接控制這些資源,使IC卡對(duì)外表現(xiàn)為一個(gè)"黑匣子",從而加強(qiáng)了系統(tǒng)的保密性能. 智能卡通訊管理主要功能是執(zhí)行智能IC卡的信息傳送協(xié)議, 接收讀寫器發(fā)出的指令,并對(duì)指令傳遞是否正確進(jìn)行判斷.一般可采用奇偶檢,CRC校驗(yàn)等方式判斷傳輸錯(cuò)誤.對(duì)于采用分組傳輸協(xié)議的系統(tǒng), 還可以通過分組長度變化來檢出錯(cuò)誤。 智能卡操作系統(tǒng)最重要的功能之一就是數(shù)據(jù)安全管理. 這可以具體地分為用戶與IC卡的鑒別,核實(shí)功能以及對(duì)傳輸數(shù)據(jù)的加密與解密操作. 智能IC卡COS的應(yīng)用管理功能是對(duì)讀寫器發(fā)來的命令進(jìn)行判斷,譯碼和處理. 智能卡的各種應(yīng)用以專有文件形式存在卡上,各專有文件則是由IC 卡的指令系統(tǒng)中指令排列所組成的.
"鑒別"是指對(duì)IC卡本身的合法性進(jìn)行驗(yàn)證,判定一張IC卡是不是偽造的.如在前兩講中談到的多采用多種卡上設(shè)置的讀,寫,擦除密碼作為防偽的基本手段.而COS由于可以通過內(nèi)部軟件運(yùn)行來完成密碼轉(zhuǎn)換,因此智能IC 卡上實(shí)際寫入的密碼無法被讀寫器直接讀取,安全性能更強(qiáng).IC卡由于其高存儲(chǔ)量和高保密性,應(yīng)用領(lǐng)域十分廣泛,除覆蓋了傳統(tǒng)磁卡的全部功能外,還拓展到許多磁卡不能勝任的領(lǐng)域 2.2硬件論證方案: IC卡是一種集成電路卡,它的讀/寫設(shè)備是每個(gè)IC卡應(yīng)用系統(tǒng)必不可缺的周邊設(shè)備。該設(shè)備通過IC卡的8個(gè)觸點(diǎn)向IC卡提供電源并與IC卡相互交換信息。雖然IC卡是從磁卡發(fā)展而來的。 本IC卡讀/寫器的硬件系統(tǒng)設(shè)計(jì)主要有:IC卡的插拔檢測(cè),IC卡的電源控制,IC 卡與CPU的接口以及必要的人機(jī)界面。軟件系統(tǒng)主要由IC卡數(shù)據(jù)讀/寫模塊,串行通信模塊等組成。 SLE4442是德國SIMENS公司設(shè)計(jì)的邏輯加密存儲(chǔ)卡。它具有2K位的存儲(chǔ)容量和完全獨(dú)立的可編程代碼存儲(chǔ)器。內(nèi)部電壓提升電路保證了芯片能夠以單一+5V電壓供電,較大的存儲(chǔ)容量能夠滿足通常應(yīng)用領(lǐng)域的各種需要,因此是目前國內(nèi)應(yīng)用較多的一種IC卡芯片。芯片采用;多存儲(chǔ)器結(jié)構(gòu),2線連接協(xié)議(串行接口滿足ISO7816同步傳輸協(xié)議),NMOS工藝技術(shù),每字節(jié)的擦除/寫入編程時(shí)間位。2。5MS。存儲(chǔ)器具有至少10000次的擦寫周期,數(shù)據(jù)保持時(shí)間至少10以上。 根據(jù)IC卡應(yīng)用系統(tǒng)的這種典型結(jié)構(gòu),開發(fā)者的主要工作包括:(1) 設(shè)計(jì)和構(gòu)造應(yīng)用系統(tǒng)中心數(shù)據(jù)庫,對(duì)應(yīng)用IC卡管理的數(shù)據(jù)進(jìn)行分類存儲(chǔ)和管理.由于數(shù)據(jù)庫一般建立在小型機(jī)或微機(jī)網(wǎng)絡(luò)服務(wù)器上,一般在相應(yīng)環(huán)境中開發(fā)設(shè)計(jì).(2)對(duì)IC 卡上數(shù)據(jù)的存儲(chǔ)格式,讀寫方式,加密和安全保護(hù)方式進(jìn)行規(guī)劃和設(shè)計(jì).這些可借助IC 卡讀寫器和微機(jī)的開發(fā)系統(tǒng)來完成.(3)構(gòu)造IC卡應(yīng)用環(huán)境,建立網(wǎng)絡(luò)和讀寫工作站.作為IC卡系統(tǒng)中的發(fā)卡站和結(jié)算站,可以采用帶聯(lián)機(jī)讀寫器的小型機(jī)或微機(jī).系統(tǒng)設(shè)計(jì)環(huán)境可以是WINDOWS下的VB,FOXPOR,ACCESS等軟件,一般利用讀寫器廠家提供的接口函數(shù)與數(shù)據(jù)庫軟件接口.用戶刷卡使用的工作站可以采用PC機(jī)加聯(lián)機(jī)讀寫器組成,需進(jìn)行用戶界面設(shè)計(jì),能夠提供較友好的用戶界面.也可以使用便攜式的脫機(jī)工作站, 一般由單片機(jī)系統(tǒng)組成,帶有液晶顯示器和小型鍵盤.這種讀寫器的用戶接口軟件, 也需在專用的單片機(jī)系統(tǒng)中開發(fā).
因此,一個(gè)IC卡應(yīng)用系統(tǒng)的設(shè)計(jì)工作除了包括各站點(diǎn)的硬件配置,系統(tǒng)聯(lián)網(wǎng), 系統(tǒng)數(shù)據(jù)庫構(gòu)建和管理軟件編程,各工作站用戶接口軟件的編程,以及IC卡上數(shù)據(jù)規(guī)劃與初始分區(qū)和數(shù)據(jù)寫。 2.3硬件各模塊的設(shè)計(jì): 2.3.189C2051單片機(jī)的簡介: 本讀寫器以ATMEL89C2051為內(nèi)核。此型號(hào)的單片機(jī)是一種低消耗,高性能的8位CMOS微處理芯片。片內(nèi)帶有2KB的閃爍可編程及可擦除只讀存儲(chǔ)器,與工業(yè)標(biāo)準(zhǔn)的80C51指令集相兼容,DIP20封裝。片上的PEROM準(zhǔn)許在線對(duì)程序存儲(chǔ)器重新編碼,也可用常規(guī)的非易揮發(fā)存儲(chǔ)芯片編程。它的特點(diǎn)可歸納為:1.與MCS-51產(chǎn)品兼容;2.2KB的在線可重復(fù)編程閃爍存儲(chǔ)器;:壽命:1000次寫/擦除周期,數(shù)據(jù)保存期10年;3.寬工作電壓:范圍Vcc=2.7~6V;4.全靜態(tài)工作方式:0~24MHZ;5.3級(jí)程序存儲(chǔ)器鎖定;6.256*8位內(nèi)部RAM;7.32條可編程I/O口線;8.3個(gè)16位定時(shí)/計(jì)數(shù)器;9.5個(gè)中斷源;10.可編程串行中斷;11.低功耗的閑置與掉電模式。 - 復(fù)位狀態(tài): MCS—51單片機(jī)復(fù)位后, 程序計(jì)數(shù)器PC和特殊功能寄存器復(fù)位的狀態(tài)如表所示。 復(fù)位不影響片內(nèi)RAM存放的內(nèi)容, 而ALE、PSEN在復(fù)位期間將輸出高電平。由表可以看出: (1) (PC)=0000H 表示復(fù)位后程序的入口地址為0000H; (2)(PSW)=00H, 其中RS1(PSW.4)=0, RS0(PSW.3)=0, 表示復(fù)位后單片機(jī)選擇工作寄存器0組; (3)(SP)=07H 表示復(fù)位后堆棧在片內(nèi)RAM的08H單元處建立;(4)P0口~P3口鎖存器為全1狀態(tài), 說明復(fù)位后這些并行接口可以直接作輸入口, 無須向端口寫1; (5) 定時(shí)器/計(jì)數(shù)器、 串行口、 中斷系統(tǒng)等特殊功能寄存器復(fù)位后的狀態(tài)對(duì)各功能部件工作狀態(tài)的影響。
上電復(fù)位: - AT89C2051結(jié)構(gòu):AT89C2051是一個(gè)有20個(gè)引腳的芯片,引腳配置如圖. 與8051內(nèi)部結(jié)構(gòu)進(jìn)行對(duì)比后可發(fā)現(xiàn),AT89C2051減少了兩個(gè)對(duì)外端口(即P0、P2口),使它最大可能地減少了對(duì)外引腳,因而芯片尺寸有所減小。AT89C2051芯片的20個(gè)引腳功能為:1.VCC 電源電壓;2.GND 接地;3: RST復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),所有I/O引腳復(fù)位至“1”。
引腳結(jié)構(gòu): - XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2來自反向振蕩放大器的輸出。P1口8位雙向I/O口。引腳P1.2~P1.7提供內(nèi)部上拉,當(dāng)作為輸入并被外部下拉為低電平時(shí),它們將輸出電流(IIL),這是因內(nèi)部上拉的緣故。 P3口引腳P3.0~P3.5與P3.7為7個(gè)帶內(nèi)部上拉的雙向I/O引腳。P3.6在內(nèi)部已與片內(nèi)比較器輸出相連,不能作為通用I/O引腳訪問。
單片機(jī)內(nèi)部,外部振蕩電路:
- 單片機(jī)存儲(chǔ)器分類及配置: MCS—51單片機(jī)存儲(chǔ)器的分類從物理結(jié)構(gòu)上可分為: 片內(nèi)、 片外程序存儲(chǔ)器(8031和8032沒有片內(nèi)程序存儲(chǔ)器)與片內(nèi)、 片外數(shù)據(jù)存儲(chǔ)器4個(gè)部分; 從尋址空間分布可分為: 程序存儲(chǔ)器、 內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器3大部分; 從功能上可分為: 程序存儲(chǔ)器、 內(nèi)部數(shù)據(jù)存儲(chǔ)器、 特殊功能寄存器、 位地址空間和外部數(shù)據(jù)存儲(chǔ)器5大部分。
- 特殊功能寄存器(SFR):AT89C2051中特殊功能寄存器描述,它們共占用了19字節(jié),其功能與8051SFR功能相對(duì)應(yīng)。
- 程序存儲(chǔ)器的加密:AT89C2051片內(nèi)有2個(gè)鎖定位,可以編程(P),也可以不編程(U),從而得到3種鎖定位保護(hù)模式。
內(nèi)部結(jié)構(gòu): - 低功耗工作方式:AT89C2051有兩種低功耗工作方式:空閑方式與掉電方式。
1) 空閑方式(休眠方式):當(dāng)利用軟件使空閑方式位IDL(PCON.0)=1時(shí),單片機(jī)進(jìn)入空閑方式。此時(shí),CPU處于休眠狀態(tài),而片內(nèi)所有其他外圍設(shè)備保持工作狀態(tài),片內(nèi)RAM和所有特殊功能寄存器內(nèi)容保持不變。在空閑方式下,當(dāng)晶振fosc=12MHz、電源電壓VCC=6V時(shí),電源電流ICC從20mA降至5mA,而VCC=3V時(shí),ICC由5.5mA降至1mA。中斷或硬件復(fù)位可以終止空閑方式。 當(dāng)空閑方式由硬件復(fù)位終止時(shí),CPU要從休眠處恢復(fù)程序的執(zhí)行,執(zhí)行2個(gè)機(jī)器周期后,內(nèi)部復(fù)位算法才起作用。此時(shí),硬件禁止訪問內(nèi)部RAM,但允許訪問端口引腳。為了防止休眠被復(fù)位終止時(shí)對(duì)端口引腳意外寫入的可能性,在生成空閑方式的指令后不應(yīng)緊跟對(duì)端口引腳的寫指令。如果不采用外部上拉,P1.0和P1.1應(yīng)置“0”;如果采用外部上拉,則應(yīng)置“1”。 2)掉電方式:掉電方式由掉電方式位PD(PCON.1)=1設(shè)置。此時(shí),振蕩器停止工作,設(shè)置掉電方式的指令成為最后執(zhí)行的1條指令,片內(nèi)RAM和特殊功能寄存器內(nèi)容保持不變。在掉電方式下,VCCmin=2V。當(dāng)VCC=6V時(shí),ICCmax=100μA;當(dāng)VCC=3V時(shí),ICCmax=20μA。退出掉電方式的唯一方法是硬件復(fù)位。硬件復(fù)位將重新定義特殊功能寄存器,但不影響片內(nèi)RAM。復(fù)位的保持時(shí)間應(yīng)足夠長,以便振蕩器能重新開始工作并穩(wěn)定下來。在VCC沒有恢復(fù)到正常工作電壓之前,不應(yīng)進(jìn)行復(fù)位。如果不采用外部上拉,P1.0和P1.1應(yīng)置“0”,否則置“1”。 2.3.2 SLE4442IC卡的簡介: SLE4442 是德國西門子SIMENS 公司設(shè)計(jì)的邏輯加密存儲(chǔ)卡它具有2K 位的存儲(chǔ)容量和完全獨(dú)立的可編程代碼存儲(chǔ)器PSC 內(nèi)部電壓提升電路保證了芯片能夠以單+5V 電壓供電較大的存儲(chǔ)容量能夠滿足通常應(yīng)用領(lǐng)域的各種需要因此是目前國內(nèi)應(yīng)用較多的一種IC 卡芯片芯片采用多存儲(chǔ)器結(jié)構(gòu)2 線連接協(xié)議串行接口滿足ISO7816 同步傳送協(xié)議NMOS 工藝技術(shù)每字節(jié)的擦除/寫入編程時(shí)間為2.5ms 存儲(chǔ)器具有至少10000 次的擦寫周期數(shù)據(jù)保持時(shí)間至少10 年。 SLE4442的觸點(diǎn)安排: 操作電壓 地 復(fù)位 未用 時(shí)鐘 雙向數(shù)據(jù)線 未用 未用芯片功能 芯片功能: SLE4442 IC 卡主要包括三個(gè)存儲(chǔ)器: 1.256x8 位EEPROM 型主存儲(chǔ)器。地址0~31 為保護(hù)數(shù)據(jù)區(qū)。該區(qū)數(shù)據(jù)讀出不受限制,寫入受保護(hù)存儲(chǔ)內(nèi)部數(shù)據(jù)狀態(tài)的限制。當(dāng)保護(hù)存儲(chǔ)器中第N 位N=0~31 為1 時(shí),對(duì)應(yīng)主存儲(chǔ)器中第N 個(gè)字節(jié)允許進(jìn)行擦除和寫入操作。地址32~255 后244 字節(jié)為應(yīng)用數(shù)據(jù)區(qū),數(shù)據(jù)讀出不受限制,擦除和寫入受加密存儲(chǔ)器數(shù)據(jù)校驗(yàn)結(jié)果的影響。這種加密校驗(yàn)的控制是對(duì)整個(gè)主存儲(chǔ)器實(shí)施的(即包括保護(hù)數(shù)據(jù)區(qū)和應(yīng)用數(shù)據(jù)區(qū))。 2.32 x1 位PROM 型保護(hù)存儲(chǔ)器.一次性編程以保護(hù)主存儲(chǔ)器保護(hù)數(shù)據(jù)區(qū),防止一些固定的標(biāo)識(shí)參數(shù)被改動(dòng).保護(hù)存儲(chǔ)器同樣受加密存儲(chǔ)器數(shù)據(jù)校驗(yàn)結(jié)果的影響。 3.4x8 位EEPROM 型加密存儲(chǔ)器.第0 字節(jié)為密碼輸入錯(cuò)誤計(jì)數(shù)器(EC).EC的有效位是低三位,芯片初始化時(shí)設(shè)置成”111”這一字節(jié)是可讀的(EC).的1,2,3字節(jié)為參照字存儲(chǔ)區(qū).這3 個(gè)字節(jié)的內(nèi)容作為一個(gè)整體被稱為可編程加密代碼(PSC).其讀出寫入和擦除均受自身比較操作結(jié)果的控制。 芯片內(nèi)部邏輯結(jié)構(gòu)如下: 1. 復(fù)位和復(fù)位響應(yīng): 復(fù)位和復(fù)位響應(yīng)是根據(jù)ISO7816-3 標(biāo)準(zhǔn)來進(jìn)行的。在操作期間的任意時(shí)候都可以復(fù)位。開始,地址計(jì)數(shù)器隨一個(gè)時(shí)鐘脈沖而被設(shè)置為零。當(dāng)RST 線從高狀態(tài)H 置到低狀態(tài)L 時(shí),第一個(gè)數(shù)據(jù)位(LSB)的內(nèi)容被送到I/O 上。若連續(xù)輸入32 個(gè)時(shí)鐘脈沖,主存儲(chǔ)器中的前四個(gè)字節(jié)地質(zhì)單元中的內(nèi)容被讀出。在第33個(gè)始終脈沖的下降沿,I/O 線被置成高狀態(tài)而關(guān)閉. 2.命令模式: 復(fù)位響應(yīng)以后芯片等待著命令。每條命令都以一個(gè)“啟動(dòng)狀態(tài)”開始。整個(gè)命令包括3 個(gè)字節(jié)。隨后經(jīng)更著一個(gè)附加脈沖并用一個(gè)“停止?fàn)顟B(tài)”來結(jié)束操作。 啟動(dòng)狀態(tài):在CLK 為高狀態(tài)H 狀態(tài)期間I/O 顯得下降沿為啟動(dòng)狀態(tài)。 停止?fàn)顟B(tài):在CLK 為高狀態(tài)H 狀態(tài)期間I/O 顯得上升沿為停止?fàn)顟B(tài)。 在接受一個(gè)命令之后有兩種可能的模式輸出數(shù)據(jù)模式即讀數(shù)據(jù)和處理數(shù)據(jù)模式。 命令模式的時(shí)序圖: 3.輸出數(shù)據(jù)模式: 這種模式是將IC 卡芯片中的數(shù)據(jù)傳送個(gè)外部設(shè)備接口(IFD)的一種操作。 在第一個(gè)CLK 脈沖的下降沿之后,I/O 線上的第一位數(shù)據(jù)變?yōu)橛行АkS后每增加一個(gè)時(shí)鐘脈沖芯片,芯片內(nèi)部的一位數(shù)據(jù)被送到I/O 線上,數(shù)據(jù)的發(fā)送從每個(gè)字節(jié)的最低位(LSB)開始。當(dāng)所需要的最后一個(gè)數(shù)據(jù)送出以后,需要再附加一個(gè)時(shí)鐘脈沖來把I/O口置成高狀態(tài),以便接受新的命令。 在輸出數(shù)據(jù)期間任何“啟動(dòng)狀態(tài)”和“停止?fàn)顟B(tài)”均被屏蔽掉. 輸出數(shù)據(jù)模式的時(shí)序關(guān)系: 4.處理數(shù)據(jù)模式: 這種模式是對(duì)IC 芯片作內(nèi)部處理. 芯片在第一個(gè)始終脈沖的下降沿將I/O 線從高狀態(tài)拉到低狀態(tài)并開始處理。此后芯片在內(nèi)部連續(xù)計(jì)時(shí)計(jì)數(shù),直到低n 個(gè)始終脈沖之后的附加一個(gè)時(shí)鐘脈沖的下降沿I/O 線再次置高,完成芯片的處理過程。在整個(gè)處理過程中I/O 線被鎖定成低狀態(tài)。 處理模式的時(shí)序關(guān)系: 2.3.3SLE4442卡的應(yīng)用: 1.部復(fù)位:SLE4442是基于同步夫位響應(yīng)的傳送協(xié)議。芯片的復(fù)位時(shí)序如前述。 2.復(fù)位:在把操作電壓連接到Vcc 段之后,芯片內(nèi)部進(jìn)行復(fù)位操作。I/O 線被置為高狀態(tài)。必須在對(duì)任意地址進(jìn)行讀操作或做一個(gè)復(fù)位響應(yīng)操作之后才可以進(jìn)行數(shù)據(jù)交換。 3.:在CLK為低狀態(tài)期間,如果RST 置為高狀態(tài),則任何操作均無效。I/O 線被鎖定到高狀態(tài)。需要一個(gè)最小維持時(shí)間tres=5Us 之后,芯片才能接受新的復(fù)位。 中止?fàn)顟B(tài)的時(shí)序: 每條命令包含三個(gè)字節(jié)其排列順序如下 SLE4442芯片具有7種命令: 2.3.4SLE4442卡的接口技術(shù):IC卡接口設(shè)備是由IC卡適配插座,IC卡電氣接口電路,用于IC卡時(shí)序生成與數(shù)據(jù)交換的微處理器以及其他主設(shè)備的連接接口組成。根據(jù)IC卡在插入或退出時(shí),按觸點(diǎn)壓觸和脫離的方式區(qū)分主要有兩種,一是滑觸式結(jié)構(gòu),這種方式,觸點(diǎn)處于固定位置,IC卡在插入或退出時(shí),滑過與之不相關(guān)的位置,并滑接在固定的位置,另一類是著陸式結(jié)構(gòu),這種結(jié)構(gòu)下,IC卡在插入過程中,觸點(diǎn)與IC卡同步運(yùn)動(dòng),逐步下壓,并穩(wěn)定與最終位置。 IC卡的接口電路是連接IC卡與讀寫機(jī)具的通路,由它實(shí)現(xiàn)對(duì)IC卡的供電,并滿足不帶電插拔的要求。 一般來說,邏輯電路的“1”和“0”只是反映電壓大小的關(guān)系,都處于帶電狀態(tài)。若帶電插拔IC卡,可能會(huì)給IC卡帶來損傷,甚至損壞它。因此在插拔前應(yīng)先斷開向IC卡供電的電源。,并切斷其邏輯連接,實(shí)現(xiàn)對(duì)IC卡的保護(hù)。 IC卡的邏輯接口電路一般采用集電極開路(OC)輸出及非嵌拉保護(hù)式輸入結(jié)構(gòu)。上拉電阻R源端與IC卡的供電電源相連接。當(dāng)IC卡處于供電狀態(tài)時(shí),整個(gè)接口電路接通,借口設(shè)備與IC卡間構(gòu)成邏輯通路;而當(dāng)IC卡處于下電狀態(tài)時(shí)(V㏄=OFF),上拉電阻R的源端失去了供電,整個(gè)與卡的接口的電路均處于不帶電狀態(tài)。這種電路結(jié)構(gòu)簡單,可與CMOS,TTL接口相兼容,上升沿阻尼較大,不易產(chǎn)生邊沿振蕩,缺點(diǎn)是當(dāng)接口端的分布電容較大時(shí),上升沿過緩。在作為CPU卡的時(shí)鐘驅(qū)動(dòng)時(shí)(通常為3.57MHz ),就有可能產(chǎn)生丟失脈沖等現(xiàn)象。解決這一問題的辦法有兩種,第一種:是通過減小時(shí)鐘驅(qū)動(dòng)端的上拉電,減小上升時(shí)間來解決;另一種是采用互補(bǔ)驅(qū)動(dòng)方式來進(jìn)行時(shí)鐘驅(qū)動(dòng),這種方式結(jié)構(gòu)復(fù)雜些,但可以實(shí)現(xiàn)更高的時(shí)鐘頻率。 所有的IC卡的接口部分都加加了箝位保護(hù)二級(jí)管,這些箝位二級(jí)管可以使各引腳上的電壓嚴(yán)格地限定在-Vd~Vcc+VD之間,這樣,可以抑制由于線路干擾和邏輯電平變化的邊沿產(chǎn)生抖動(dòng)所帶來的瞬態(tài)過壓,為IC卡提供進(jìn)一步的保護(hù)措施。 IC卡接口設(shè)備中的IC卡供電電路也是一個(gè)相對(duì)獨(dú)立于其他回路,這是由于IC卡接口設(shè)備是一個(gè)獨(dú)立于IC卡的設(shè)備,當(dāng)有卡插入時(shí),接口設(shè)備便開始向IC卡提供其所須的電力。如果插入的是一張電源與地?fù)舸┑膲目ǎ蚴且粋(gè)金屬片之類的物質(zhì),就會(huì)造成供電回路的短路現(xiàn)象,若IC卡接口設(shè)備中無過流保護(hù)措施,就會(huì)造成設(shè)備的損壞。即便有保護(hù)措施,若與IC卡接口設(shè)備的其他部分共同使用一個(gè)保護(hù)回路,就會(huì)干擾整個(gè)設(shè)備的正常工作。 該電路利用了帶輸出短路保護(hù)特性的78系列三端穩(wěn)壓集成電路,78L05的最大輸出電流可達(dá)150mA,短路保護(hù)電流起點(diǎn)在150mA~200mA左右,符合ISO/IEC7816-3所確定的范圍。當(dāng)插入的卡是一個(gè)電源對(duì)地的短路負(fù)載時(shí),U1會(huì)因輸出過載而形成短路保護(hù),由于接口設(shè)備的供電是在U2提供的穩(wěn)壓回路上,因而不會(huì)干擾接口設(shè)備的工作,這一段路保護(hù)信息會(huì)在“短路報(bào)警指示”信號(hào)線上形成一個(gè)低電平輸出,接口設(shè)備的微處理器通過感知這一信號(hào)而切斷對(duì)IC卡接口的供電,直到該卡退出為止,U1的輸出也會(huì)隨之而轉(zhuǎn)入正常的電壓輸出范圍,以便為后續(xù)插入的IC卡提供正常的供電服務(wù)。 - IC卡的插入/退出識(shí)別與上電/下電控制技術(shù):IC卡的插入與退出的識(shí)別是通過IC卡適配插座上的感應(yīng)開關(guān)來識(shí)別的,對(duì)于復(fù)雜結(jié)構(gòu)的IC卡適配插座,其識(shí)別與控制過程也相當(dāng)復(fù)雜,且針對(duì)不同的卡座,其控制也各不相同,IC卡的供電控制是一個(gè)直接涉及是否能安全可靠地操作IC卡的過程。它必須嚴(yán)格地遵循ISO7816-3規(guī)定,其操作如下:
(1)上電過程:——RST處于L狀態(tài); (2)下電過程:——RST為狀態(tài)L; ——vcc供電; ——CLK為狀態(tài)L; ——接口設(shè)備處于接受 ——VPP不起作用; 方式; ——VPP上升為空閑狀態(tài); ——I/O為狀態(tài)A; ——CLK由相應(yīng)穩(wěn)定的時(shí)鐘 ——VCC關(guān)閉。 提供; 上電過程: PWRON1:LCALL Recog ;識(shí)別是否有卡插入 CLR RST ;使RST=L CLR CLK ;使CLK=L LCALL Delay-0.5ms ;延遲0.5MS。使端口邏輯信號(hào)穩(wěn)定 CLR PWR ;給卡供電 CLR DATOUT ;使I/O端口=L; RET ;返回 下電過程:PWROFF1:CLR RST ;使RST=L CLR CLK ;使CLK=L CLR DATOUT ;使I/O=L LCALL DELAY-0.5MS ;延遲0.5MS,使端口邏輯信號(hào)穩(wěn)定 SETB PWR ;給卡下電 RET ;返回 由于IC寫主存儲(chǔ)器時(shí)需要驗(yàn)證密碼,所以執(zhí)行下面程序時(shí)請(qǐng)確保SLE4442的密碼的正確性。如果密碼有錯(cuò)誤,IC卡校驗(yàn)3次便會(huì)鎖死報(bào)廢。 ORG 8000H AJMP MAIN ORG 8100H MAIN:MOV SP,#60H Write-read-Card: MOV R0,#PSWD MOV @R0,#0X11 INC R0 MOV @R0,#0X22 INC R0 MOV @R0,#0X33 LCALL CheckPassword Jnz WRExit MOV R0,#WriteBuf MOV @R0,#0X55 INC R0; MOV @R0,#0X66 MOV ByteNum,#0x02 MOV StartAdr,#0x20 LCALL WriteCard JNZ WRExit MOV ByteNum,#0x02 MOV StartAdr,#0x20 LCALL ReadCard JZ Write-Read-Card WRExit:mov A,#00H $INCLUDE(SLE4442.INC); END - IC卡的讀寫技術(shù):不同類型的IC卡其讀寫方式或數(shù)據(jù)協(xié)議方式是不同的,其地址計(jì)數(shù)器是與時(shí)鐘緊密相關(guān)的,當(dāng)卡復(fù)位時(shí),地址計(jì)數(shù)器置“0”,以后,每向卡發(fā)一個(gè)節(jié)拍的時(shí)鐘,都將使IC卡的地址計(jì)數(shù)器加“1”,這一時(shí)鐘頻率上限為50KHZ或280KHZ。
復(fù)位過程:SYNRST:SETB DATOUT ;使能數(shù)據(jù)線 SETB RST ;復(fù)位使能 LCALL DELAY-10US ;延遲10us SETB CLK ;置同步復(fù)位時(shí)鐘H LCALL DELAY-10US ;延遲10us CLR CLK ;時(shí)鐘為L LCALL DELAY-10US ;延遲10us CLR RST ;復(fù)位結(jié)束 RET 數(shù)據(jù)字段的定位:SYNPOS:LCALL SYNRST ;IC卡復(fù)位 SP1:CJNE R3,#00H,SP3 ;判低位 CJNE R2,#00H,SP2 ;判高位 RET ;返回 SP2:DEC R2 ;高位減1 SP3:DEC R3 ;低位減1 SETB CLK ;開始建立一個(gè)時(shí)鐘脈沖 LCALL Delay-10us CLR CLK LCALL Delay-10us ;時(shí)鐘脈沖結(jié)束 SJMP SP1 ;繼續(xù)下一次 數(shù)據(jù)的讀出過程:SYNREAD:LCALL SUNPOS ;定位至起始地址 SETB DATAIN ;使能數(shù)據(jù)輸入線 SR1:MOV R5,#08H ;置移位次數(shù)為8次 SR2:SETB CLK ;CLK=H MOV C,DATIN ;將數(shù)據(jù)線上的內(nèi)容輸入到C觸發(fā)器中 RLC A ;A寄存器循環(huán)左移,C的內(nèi)容進(jìn)入A最低位 LCALL Delay-10us ;延時(shí)10us CLR CLK ;CLK=L LCALL Delay-10us ;延時(shí)10us DJNZ R5,SR2 ;判斷是否接收完一字節(jié),若是繼續(xù),否則轉(zhuǎn)至SR2,繼續(xù)接收下一位 MOV @R0,A ;將字節(jié)內(nèi)容送(R0)單元 INC R0 ;數(shù)據(jù)存放地址加1 DJNZ R4,SR1 ;判斷是否接收完R4個(gè)字節(jié),若是繼續(xù),否則轉(zhuǎn)至SR1,繼續(xù)接收 RET ;返回 IC卡的寫操作:在器件地址碼之后,緊跟著的是字節(jié)地址碼。地址碼長度為8位。時(shí)序中的數(shù)據(jù)為寫字節(jié)時(shí),由IC卡讀/寫器中的單片機(jī)在SDA發(fā)送一個(gè)8位碼長的數(shù)據(jù);卡片每收到一個(gè)數(shù)據(jù)字節(jié)后,都要通過SDA回送一個(gè)“確認(rèn)”信號(hào)。 IC卡的讀操作有3種:現(xiàn)行地址讀、隨機(jī)地址讀、順序讀。 IC卡芯片操作地址:對(duì)IC卡而言,A2,A1,A0地址線均為0;因此,寫地址為0A0H,讀地址為0A1H。 IC卡讀寫器要能讀寫符合ISO7816標(biāo)準(zhǔn)的IC卡。IC卡接口電路作為IC卡與IFD內(nèi)的CPU進(jìn)行通信的唯一通道,為保證通信和數(shù)據(jù)交換的安全與可靠,其產(chǎn)生的電信號(hào)必須滿足下面的特定要求。
完成IC卡插入與退出的識(shí)別操作:IC卡接口電路對(duì)IC卡插入與退出的識(shí)別,即卡的激活和釋放,有很嚴(yán)格的時(shí)序要求。如果不能滿足相應(yīng)的要求,IC卡就不能正常進(jìn)行操作;嚴(yán)重時(shí)將損壞IC卡或IC卡讀寫器。 (1)激活過程:為啟動(dòng)對(duì)卡的操作,接口電路應(yīng)按圖1所示順序激活電路: ◇RST處于L狀態(tài); ◇根據(jù)所選擇卡的類型,對(duì)VCC加電A類或B類,正常操作條件下VCC的電特性見表1; 正常操作條件VCC的電特性 符 號(hào) | 最小值 | 最大值 | 條 件 | Vvcc/V | 4.5
2.7 | 5.5
3.3 | A類
B類 | Icc/mA |
| 60500.5 | A類,在最大允許頻率
B類,在最大允許頻率時(shí)鐘停止 |
◇VPP上升為空閑狀態(tài); ◇接口電路的I/O應(yīng)置于接收狀態(tài); ◇向IC卡的CLK提供時(shí)鐘信號(hào)(A類卡1~5MHz,B類卡1~4MHz)。
如圖所示,在t’a時(shí)間對(duì)IC卡的CLK加時(shí)鐘信號(hào)。I/O線路應(yīng)在時(shí)鐘信號(hào)加于CLK的200個(gè)時(shí)鐘周期(ta)內(nèi)被置于高阻狀態(tài)Z(ta 時(shí)間在t’a之后)。時(shí)鐘加于CLK后,保持RST為狀態(tài)L至少400周期(tb)使卡復(fù)位(tb在t’a之后)。在時(shí)間t’b,RST被置于狀態(tài)H。I/O上的應(yīng)答應(yīng)在RST上信號(hào)上升沿之后的400~40 000個(gè)時(shí)鐘周期(tc)內(nèi)開始(tc在t’b之后)。 在RST處于狀態(tài)H的情況下,如果應(yīng)答信號(hào)在40 000個(gè)時(shí)鐘周期內(nèi)仍未開始,RST上的信號(hào)將返回到狀態(tài)L,且IC卡接口電路按照?qǐng)D2所示對(duì)IC卡產(chǎn)生釋放。 (2)釋放過程:當(dāng)信息交換結(jié)束或失敗時(shí)(例如,無卡響應(yīng)或卡被移出),接口電路應(yīng)按圖2所示時(shí)序釋放電路: ◇RST應(yīng)置為狀態(tài)L; ◇CLK應(yīng)置為狀態(tài)L(除非時(shí)鐘已在狀態(tài)L上停止); ◇VPP應(yīng)釋放(如果它已被激活); ◇I/O應(yīng)置為狀態(tài)A(在td時(shí)間內(nèi)沒有具體定義); 通過觸點(diǎn)向卡提供穩(wěn)定的電源 IC卡接口電路應(yīng)能在表1規(guī)定的電壓范圍內(nèi),向IC卡提供相應(yīng)穩(wěn)定的電流。 - 通過觸點(diǎn)向卡提供穩(wěn)定的時(shí)鐘
IC卡接口電路向卡提供時(shí)鐘信號(hào)。時(shí)鐘信號(hào)的實(shí)際頻率范圍在復(fù)位應(yīng)答期間,應(yīng)在以下范圍內(nèi):A類卡,時(shí)鐘應(yīng)在1~5MHz;B類卡,時(shí)鐘應(yīng)在1~4MHz。 復(fù)位后,由收到的ATR(復(fù)位應(yīng)答)信號(hào)中的F(時(shí)鐘頻率變換因子)和D(比特率調(diào)整因子)來確定。 時(shí)鐘信號(hào)的工作周期應(yīng)為穩(wěn)定操作期間周期的40%~60%。當(dāng)頻率從一個(gè)值轉(zhuǎn)換到另一個(gè)值時(shí),應(yīng)注意保證沒有比短周期的40%更短的脈沖。 - 卡的邏輯加密芯片:邏輯加密卡主要是由EEPROM單元陣列和密碼控制邏輯構(gòu)成的,其功能介于存儲(chǔ)器卡和CPU卡之間,它具有一定的保密邏輯功能,不像存儲(chǔ)器卡那樣能夠被自由擦寫。邏輯加密卡芯片從功能上看,主要分為兩個(gè)部分,一是EEPROM單元陣列,一是保密邏輯部分。 SLE4442卡內(nèi)含256*8位EEPROM存儲(chǔ)器和32*1位保護(hù)存儲(chǔ)器,該保護(hù)存儲(chǔ)器對(duì)EEPROM的前32字節(jié)進(jìn)行寫/刪除保護(hù)。保護(hù)位是一次性的,不能修改。它還有一個(gè)可編程序安全碼邏輯,整個(gè)存儲(chǔ)器除了PSC以外,均可讀,而且只有在比較PSC不正確后才能進(jìn)行寫/刪除操作。在三次比較PSC不正確后將鎖住后續(xù)的PSC比較及寫/刪除操作。
存儲(chǔ)器分配: 邏輯加密卡芯片的功能框圖: 比較從EEPROM中讀出的數(shù)據(jù)和IC卡中讀出的數(shù)據(jù)是否相同: CMPLOOP: MOV A,@R0 MOV R6,A MOV A,@R1 XRL A,R6 JNZ NOEQU DJNZ R7,CMPLOOP SNEQU: CLR SW JMP Read-Insert-Card NOEQU: SETB SW JMP Read-Insert-Card $INCLUDE(SLE4442.INC) $INCLUDE(V12C-24A.inc) end EEPROM邏輯圖2.3.5RS—232通信接口芯片:RS—232是目前串行通信中最常用的總線,其標(biāo)準(zhǔn)RS—232C是美國電子工業(yè)協(xié)會(huì)EIA制定的串行物理接口協(xié)議。RS—232接口的特征是負(fù)邏輯、單端驅(qū)動(dòng)、共地接收、適用于點(diǎn)對(duì)點(diǎn)通信。當(dāng)信號(hào)線上的電平為-3~-15V時(shí),表示邏輯“1” ;當(dāng)信號(hào)為+3~+15V時(shí),表示邏輯“0”。通信雙方使用一條公共信號(hào)地線作電平參考。其驅(qū)動(dòng)器負(fù)載電容不超過2500PF,通信距離受此電容的限制。 JP15跳線組的1和2,即把單片機(jī)鎖緊座的RXD和TXD腳與RS-232電平轉(zhuǎn)換芯片MAX232連接起來。RS-232的2口:C0-RSD,PC接收串行數(shù)據(jù);3口:C0-TXD,PC接收串行數(shù)據(jù)。2.3.6電路原理分析:由于IC卡使用中往往牽涉到經(jīng)濟(jì)及其他信息,因此它的可靠性至關(guān)重要。IC卡讀/寫接口的可靠性包括:IC卡讀/寫過程能可靠地進(jìn)行;任意插拔IC卡不會(huì)引起IC卡損傷;在IC卡讀/寫中出現(xiàn)問題時(shí),能及時(shí)告警并恢復(fù)到正常狀態(tài)。 IC卡的上/下電控制:IC卡的上電一般是可知的,即對(duì)IC卡讀/寫時(shí),須給IC上電;因此,IC卡的上電控制比較簡單,由于IC卡讀/寫電流很小,一般為幾個(gè)毫安,由單片機(jī)的P1。4信號(hào)通過小功率三極管9012控制系統(tǒng)的+5V電源切入IC卡座。當(dāng)IC卡上電后,發(fā)光二極管L2被點(diǎn)亮,起讀/寫指示作用。每次對(duì)IC卡讀/寫完成后,即及時(shí)下電,以減少插拔時(shí)帶電的可能性。要保證IC卡能任意插拔,不致引起IC卡損壞,必須使IC卡拔卡過程處于IC卡斷電的狀態(tài)。要作到這一點(diǎn),必須保證IC卡的下電迅速及時(shí);為此,可將IC卡的拔卡處理由最高級(jí)中斷程序來實(shí)現(xiàn)。 IC卡與CPU間串行信號(hào)的限流: 為了保證IC卡帶電插拔的安全可靠,需對(duì)IC卡與CPU間串行通信的數(shù)據(jù)信號(hào)與時(shí)鐘信號(hào)進(jìn)行。限流電阻阻值一般是100~200歐。此限流電阻同時(shí)可以防止往IC卡座中導(dǎo)電的異物而引起系統(tǒng)損壞。 串行通信接口的實(shí)現(xiàn):TTL與RS-232C電平轉(zhuǎn)換由諸如MAX202E接口芯片實(shí)現(xiàn),采用簡單的軟握手3線制通信方式。 工作狀態(tài)的有效提示:大多IC卡讀/寫裝置有聲光指示接口,發(fā)光二極管L2即為讀/寫工作狀態(tài)指示,發(fā)光二極管L1用與串行通信指示。 2.4軟件的設(shè)計(jì)思想: - 軟件結(jié)構(gòu)設(shè)計(jì)及其分析:
讀/寫器軟件結(jié)構(gòu):讀寫器的讀/寫操作由上位PC機(jī)進(jìn)行控制,通過串行通信的命令字來實(shí)現(xiàn),具體規(guī)定為:如握手信號(hào)為0AAH,則讀卡;如握手信號(hào)為0BBH,則寫卡。其中,在讀/寫卡開始時(shí),設(shè)置讀/寫卡標(biāo)志;在通信開始時(shí),設(shè)置通信標(biāo)志。避免數(shù)據(jù)不全或錯(cuò)誤數(shù)據(jù)讀入或?qū)懭搿A硗猓械模桑每〝?shù)據(jù)是先存放在IC卡的讀緩沖區(qū)和寫緩沖區(qū),“有卡插入否”是通過判斷P3.3引腳的高低電平來實(shí)現(xiàn)。為了保證讀卡的可靠性,必須進(jìn)行軟件“去抖”處理。一旦有卡插入,則設(shè)置讀/寫標(biāo)志;在通信時(shí),設(shè)置正在通信標(biāo)志。目的是為了避免帶電插拔。本系統(tǒng)中關(guān)鍵的軟復(fù)位是通過在外中斷INT0服務(wù)函數(shù)中設(shè)置軟復(fù)位標(biāo)志,在主函數(shù)中強(qiáng)制跳轉(zhuǎn)到函數(shù)首實(shí)現(xiàn)的。 為保證IC卡讀/寫過程準(zhǔn)確可靠,除要保證讀/寫函數(shù)嚴(yán)格按照IC卡的讀/寫時(shí)序外,還須采用“重讀”和“回讀”措施。即:讀IC卡時(shí),采用讀2次的方式,寫IC卡時(shí),先將數(shù)據(jù)寫入,再回讀比較,相符則繼續(xù),否則重寫一次,以免偶然的寫失敗導(dǎo)致得出IC卡失效才錯(cuò)誤結(jié)論。為使上、下機(jī)位均不死機(jī)或簡單恢復(fù)正常工作。對(duì)于作為下位機(jī)的IC卡讀/寫器,利用IC卡能隨意拔插,再結(jié)合IC卡的拔卡處理是一個(gè)高級(jí)中斷的特點(diǎn),將IC卡的拔卡中斷程序分2個(gè)分支:1)非IC卡讀/寫且非與上位機(jī)通信狀態(tài);中斷子程序是簡單的拔卡BEEP告警后,直接中斷返回。2)在與上位機(jī)通信或正在對(duì)IC卡讀/寫狀態(tài)。會(huì)引起系統(tǒng)工作失常甚至死機(jī),在恢復(fù)中斷環(huán)境后,用強(qiáng)制跳轉(zhuǎn)指令強(qiáng)制從主程序開始執(zhí)行,達(dá)到復(fù)位的效果。 為確保串行通信的可靠性,應(yīng)著重從上、下位機(jī)通信軟件的以下問題入手:合理選擇通信波特率,由于上、下位機(jī)通信的數(shù)據(jù)量小,因此,通信波特率可選擇低一些,但要高度重視下位機(jī)的波特率參數(shù)整定問題。 3.系統(tǒng)調(diào)試:對(duì)于開發(fā)者來說,在方案確定和實(shí)施時(shí),首先要考慮對(duì)于不同的功能模塊具體采用的接口方式,接口芯片及電路。要做的工作主要是查閱資料,由于單片機(jī)外圍接口電路設(shè)計(jì)可借鑒的資料十分豐富。因此在電路設(shè)計(jì)時(shí),如果能清楚了解參考資料的設(shè)計(jì)意圖,設(shè)計(jì)要點(diǎn),應(yīng)當(dāng)說在原理上一般不會(huì)出錯(cuò),主要是工藝性錯(cuò)誤或設(shè)計(jì)缺陷。從這個(gè)意義上說,單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試主要是排查電路板的問題和連接的問題。1.仔細(xì)推敲設(shè)計(jì)原理,確認(rèn)無誤;2.對(duì)照設(shè)計(jì)圖紙查印制電路板,看是否有過空,粘連等工藝現(xiàn)象;3.外圍連接是否有誤。單片機(jī)應(yīng)用系統(tǒng)的軟件調(diào)試主要是邏輯錯(cuò)誤和功能錯(cuò)誤。 本設(shè)計(jì)利用DP—51PRO單片機(jī)綜合仿真實(shí)驗(yàn)儀進(jìn)行智能IC卡讀寫器的操作,DP—51PRO單片機(jī)綜合仿真實(shí)驗(yàn)儀提供了豐富的外圍期間和設(shè)備,其中,D8區(qū)是接觸式IC卡實(shí)驗(yàn)區(qū),J100為IC卡控制信號(hào)接口,其中VCC和GND已經(jīng)連接到卡座上。 4.結(jié)論: 在本系統(tǒng)的開發(fā)應(yīng)用過程中,由本人獨(dú)立完成智能IC卡讀寫器的設(shè)計(jì),但是,由于本人經(jīng)驗(yàn)、知識(shí)積累的欠缺,本設(shè)計(jì)還存在很多不足和欠缺。 但是,智能IC卡讀寫器還是應(yīng)用特別的廣泛,此次的設(shè)計(jì)還是比較實(shí)用,基本實(shí)現(xiàn)了預(yù)期目標(biāo)。本次設(shè)計(jì)結(jié)束了我的大學(xué)生涯,它是具有標(biāo)志性的。它不僅僅是一次畢業(yè)論文設(shè)計(jì),在設(shè)計(jì)中我通過實(shí)踐,掌握了更多的專業(yè)知識(shí),由于親自動(dòng)手實(shí)踐,查閱了大量有關(guān)于IC卡,51單片機(jī)的資料,更加深刻的記憶其中的內(nèi)容。在設(shè)計(jì)中培養(yǎng)動(dòng)思維方式、動(dòng)手能力,這對(duì)今后的生活、工作、學(xué)習(xí)都有很大的幫助。而且,同學(xué)的互助,讓我更懂得工作需要團(tuán)體精神!這比設(shè)計(jì)本身更有意義。
6.致謝信: 時(shí)光荏苒,歲月如梭,轉(zhuǎn)眼間四年的大學(xué)生活馬上結(jié)束了。本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,回顧本次畢業(yè)設(shè)計(jì),作為一個(gè)本科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。感謝在此期間,所有教育我的老師,你們的富有創(chuàng)造性的思維方法,豐富的科研經(jīng)驗(yàn)和遠(yuǎn)見卓識(shí),開拓了我的思路,使我受益匪淺,在此深表謝意! 此外,還要特別感謝我的指導(dǎo)老師宮老師,無論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到很大的提高,這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,在此感謝他耐心的輔導(dǎo)。在撰寫論文階段,宮老師幾次審閱我的論文,提出了許多寶貴意見,沒有他的指導(dǎo),我就不能較好的完成課題設(shè)計(jì)的任務(wù)。 最后,將次文獻(xiàn)給所有關(guān)心我,教育我,支持我的親人老師和朋友們謝謝你們的鼓勵(lì),此次畢業(yè)設(shè)計(jì)才會(huì)順利完成! 附錄一:外文專業(yè)參考資料譯文: 附錄二:外文專業(yè)參考資料原文: 附錄三:電路原理圖:
附錄四:程序流程圖: |