快印首页 » 基于SLE4442的IC卡系统设计与实现

& 基于SLE4442的IC卡系统设计与实现

 

1 引言

IC卡又称集成电路卡,是Integrated Circuit Card的英文缩写,它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,具有读写数据和存储数据的能力。IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。

2 SLE4442 卡介绍

逻辑加密卡SLE4442是德国西门子公司推出的智能带写保护功能和保密逻辑的256字节EEPROM卡,具有以下特点:二线制通信协议、串行接口、触点配置、至少可擦写 1万次及数据可保持10年以上[1]。

SLE4442芯片的触点位置与功能符合ISO7816-2标准,触点位置见图1所示,触点功能见表1所示。

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]。

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卡读写系统。其中密码效验和读写控制的程序流程比较常见,本文省略。4所示:


4) SLE4442 读写操作的主程序

 

用户对 IC 卡的操作有如下几种:读主存储器、写主存储器、读保护存储器、写保护存储器、密码效验、密码修改。在本次设计中设置了一个字节变量“Key_Con”,通过对此变量的值进行判断来完成功能的选择。而此变量的值是由上位计算机通过串行接口传送到单片机中的。用户只需对用户界面进行操作即可完成对IC 卡的读写操作。通过IC 卡读写器对SLE4442 的操作流程图如图5 所示。

4 单片机与计算机的串口通信

4.1 单片机与计算机硬件连接系统

PC机串口通常采用RS-232电平,而单片机串口是TTL电平,二者不兼容。所以,接口必须做电平转换处理。在此,采用的是MAXIM公司的MAX232芯片进行转换。系统中的单片机和PC机串口通信模块的原理图如图6所示[3]。8051单片机TXD端连接到MAX232的T1IN端。用于发送数据;PC机的RD端连接到MAX232的T1OUT端,用于接收数据;8051单片机RXD端连接到MAX232的R1OUT端,用于接收数据;PC机的TD端连接到MAX232的R1IN端,用于发送数据。