南京鐵道職業(yè)技術學院王嘯東
基于單片機的IC卡讀寫方法研究
南京鐵道職業(yè)技術學院王嘯東
在日常生活中,IC卡有著越來越廣泛的應用,如小區(qū)的安保系統(tǒng)、食堂的管理系統(tǒng)等。IC卡的安全性是使用者最為關心的問題之一。本文中,筆者介紹的西門子公司生產(chǎn)IC卡為帶有保護功能和可編程密碼(PSC)的256個字節(jié)EEPROM的存儲卡SLE4442。SLE4442具有256X8位的EEPROM用戶內(nèi)存;32X1位寫保護內(nèi)存;2線制通信協(xié)議,可以按字節(jié)尋址;串行接口、觸點配置、復位響應符合ISO標準7816-3;擦除和寫入的編程時間各為2.5MS等特性,滿足了IC卡應用系統(tǒng)的設計要求。
SLE4442主存儲器的容量為256個字節(jié),每個字節(jié)為8位。主存儲器可分為保護區(qū)和應用區(qū),地址單元為00H~1FH的32個字節(jié)是保護區(qū),帶位保護功能,一旦實行保護后,被保護的單元不可擦除和改寫。保護區(qū)中沒有設置為保護狀態(tài)的字節(jié),其使用與應用區(qū)完全相同。
SLE4442保護區(qū)已固化的信息如下:00H~03H復位應答信息;04H~07H芯片生產(chǎn)廠家代碼和卡型編碼;15H~1AH應用標識。在應用系統(tǒng)中,根據(jù)需要,保護區(qū)既可用作存放固定信息,如發(fā)行單位編號、卡編號、批次號、發(fā)行時間、持卡人姓名、證件號碼等,也可像應用區(qū)一樣,存放可變信息。
1.復位電路。在電路上,IC卡與接口設備的連接采用I2C總線形式,支持ISO/7816-3同步傳輸協(xié)議,除去密碼區(qū)操作外,其他類似與對一般串行EEPROM的操作。對SLE4442的操作僅需3根線,即串行時鐘線CLK、復位線RST和雙向資料線I/O。3根線各自都需要通過一個上拉電阻連到電源線上。復位和復位應答的時序如圖1所示。
上電以后,隨著CLK上的1個時鐘脈沖,當RST由高電平到低電平時,即進行了一次復位操作。這個操作將得到卡的應答。隨著以后32個時鐘脈沖的輸入,I/O線上將得到相應的32位資料,這就是從卡發(fā)送到CPU的復位應答標頭。
2.密碼存儲器操作。對密碼內(nèi)存的操作有三個命令:讀密碼、寫密碼和校驗密碼。其中最主要的是校驗密碼,密碼校驗正確,讀/寫密碼的情況就類似與讀/寫主存儲器的操作。校驗密碼必須嚴格按圖的程序框圖進行,任何改變都會導致失敗,達不到改寫卡中資料的目的,還可能引起EC位從“1”變?yōu)椤?”。在程序返回前,如校驗不成功,芯片內(nèi)部將相當于使EC的三位右移一次,高位用0填充。
3.密碼存儲器操作記憶體操作。對主存儲器的操作有4個命令,包括了讀/寫保護區(qū)的命令。如果保護區(qū)里有被保護位,被保護的信息就不能改寫。伴隨著32個時鐘脈沖的輸入,使用讀保護區(qū)的命令可以知道32個字節(jié)中那些有被保護的位,也就能夠讀出保護區(qū)的內(nèi)容。保護區(qū)中沒帶保護位單元的操作如同對應用區(qū)的操作一樣。
IC卡系統(tǒng)硬件電路介紹了單片機、(IC)SEL4442等硬件電路的設計(圖2)。在IC卡控制系統(tǒng)中,在對卡操作前,一般要進行復位和復位應答操作,有時要連續(xù)進行兩次這樣的操作,才能得到正確的復位應答信息。復位應答以后,芯片等待輸入操作命令。每個命令必須由三部分組成:一個開始狀態(tài),接著是寫入三個字節(jié)(命令字、地址、資料),再接著是一個停止狀態(tài)。CLK在高電平時,I/O線由高到低為開始狀態(tài);CLK在高電平時,I/O線由高到低為停止狀態(tài)。
西門子公司的IC卡SLE4442,有著眾多的保護、密碼功能,提高了IC卡系統(tǒng)的安全性,推進了IC卡應用系統(tǒng)的普及速度。本文中,筆者介紹的基于單片機的IC卡讀寫方法在實際應用中有著良好的工作效果,系統(tǒng)安全、穩(wěn)定、可靠。