基于SLE4442的IC卡系统设计与实现
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间: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页 |