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