摘要:详细介绍SLE4418/SLE4428 IC卡的操作逻辑,着重说明密码校验过程;给出操作流程和的应用示例以及全部的操作源代码。
关键词:SLE4418/SLE4428 IC卡 校验程序
概述
随着国家“金卡工程”的不断发展,各种IC卡应用方案与系统不断涌现,涉及到各个领域各个行业与部门,如各地的IC卡预付费表、零售服务业的汀货与送化等;而这些系统在各行业的推广与实施,又进一步推动了IC卡的应用。目前,我国在用的IC卡卡就有1亿多,随着科学技术与经济的不断发展,IC卡必将得到更广泛的应用。
SLE4418/SLE4428卡是西门子公司的产品,价格便宜,使用方便,比较适合于数量较小的应用,是我国使用较为广泛的一种IC卡。
1 SLE4418/SLE4428 IC卡特点和操作时序分析
1.1 SLE4418/SLE4428 IC卡的基本特征
SLE4418 IC卡共有1024×8位EEPROM,可逐字节地进行写操作与删除操作,每个字节都有具有程序写保护位。SLE4428 IC除了以上功能外,还带有程序密码校验逻辑(PSC)。由于SLE4418/SLE4428 IC卡内置了高压产生器,因而只需即可进行操作,简化了接口电路的设计,可直接由单片机驱动,几乎不要其它和外接元件。此瞳的基本特点如下:
①具有1024×8位的EEPROM存储器;
②以字节为编址单位;
③具有1024×1位保护存储器,保护存储器设置后不可撤消;
④三线串行总线;
⑤可进行10万次擦写操作;
⑥数据保存10年;
⑦卡内具有2个字节的PSC程序加密位,数据仅在密码检验正确后,方可进行写操作。
1.2 操作时序分析
SLE4418/SLE4428 IC卡通过三线串行总线性与芯片接口进行信息交换。数据在程序控制器的统一协议下,进行数据序列转换与安全逻辑校验。SLE4418/SLE4428 IC卡的引脚配置及功能说明。
表1 IC卡引脚功能
引脚名称 | 功 能 |
VCC | 工作电压 |
RST | 复位端 |
CLK | 时钟 |
N.C | 空 |
GND | 地 |
I/O | 数据线 |
(1)复位与复位应答
IC卡在上电时,芯片进入到上电复位状态(POR),POR由一个复位操作(Reset)终止。当RST引脚由“0”状态变换变换为“1”状态时结束。复位时,将终止所有当前的操作命令。
上电复位(POR)后,地在写数据或删除数据前,必须先进行读操作。芯片复位时,地址计数器偏移置被设置为“0”,个数据位出现在数据线(I/O)上中,如图2所示。
(2)命令输入逻辑
SLE4418/SLE4428共有5条控制命令,SLE4428另有3条密码操作命令,如表2所列。
表2 SLE4418/SLE4428IC卡操作命令
字节1 | 字节2 | 字节3 | 操作内容 | ||
S0 S1 S2 S3 S4 S5 | A8 A9 | A0~A7 | D0~D7 | ||
1 0 | 0 0 1 1 | 地址高位 |
| 输入数据 | 带保护位写与删除 |
1 1 | 0 0 1 1 | 输入数据 | 不带保护写或删除 | ||
0 0 | 0 0 1 1 | 比较数据 | 带信号位写(校验) | ||
0 0 | 1 1 1 1 | 忽略 | 带保护位数(读9位) | ||
0 1 | 1 1 0 0 | 忽略 | (不带保护位读(读8位) | ||
0 1 | 0 0 1 1 | 1 1 | 253 | 位掩码 | 写错误计数器 |
1 0 | 1 1 0 0 | 1 1 | 254 | PSC字节1 | 校验个PSC字节 |
1 0 | 1 1 0 0 | 1 1 | 255 | PSC字节2 | 校验第二个PSC字节 |
由表2可看出,每条命令由6位控制位,10位地址位和1个字节的数据组成。进行写数据时,数据字节即是所要写入的数据,可见SLE4418/SLE4428不能进行性多字节的数据,可见SLE4418/SLE4428不能进行性多字节的写操作;读数据时,数据忽略不计,性可读出多字节。当RST由“0”状态变为“1”状态,CLK由“0”状态变为“1”状态时命令输入逻辑启动。命令输入完成后,设置RST为“0”状态。
(3)写操作/删除操作逻辑
对IC卡进行写操作,意味着数据位由“1”状态变为“0”状态;删除操作意消味着数据位由“0”状态变为“1”状态。SLE4418/SLE4428 IC卡在进行写操作与删除操作时,时钟(CLK)必须进行延续。一般来说,单独的写操作或者单独的删除操作,数据输入后,时钟须延续103个脉冲,数据删除后立即进行写操作则需要延续203个时钟脉冲。SLE4418/SLE4428 IC卡具有三种擦写操作,即删除操作后立即写操作、单独的写操作与单独的删除操作三种方式。写保护位时,只须将数据重写,当第二次写入的数据与前写入的数据相同时,设置保护位。保护位一旦设置便不能更改。
(4)读操作逻辑
按表2配置好读命令后,输入命令即启动读操作。当CLK为“0”状态变为“1”状态时,位数据出现在I/O数据线上,此后每个CLK脉冲即接收1位数据。接收8位或9位数据(带保护位时,第9位为保护位)时即为1个字节。每读完1个字节,IC卡地址计数器偏移量自动加1。当RST为“0”状态转变为“1”状态时,读操作结束。读时序逻辑所示。
(5)密码校验逻辑
SLE4428 IC卡具有2个字节的密码保护字节(地址偏移量分别为1022、1023)以及1个错误计数器(地址偏移量为1021)。如果没有进行密码校验,则SLE4428 IC卡只能读出,不能写入,也不能读取密码字节。在没有通过密码校验即读取密码字节,将返回“00”.进行密码校验时,必须按以下步骤进行。
*改变一个没有写入的位(没有写入的位,其当前状态为“1”,改变一个没有写入的位即使期由“1”状态变为“0”状态);
*写入位密码;
*写入第二位密码;
*删除错误计数器。
密码校验的时序逻辑。(写错误计数器请参看写时序逻辑)。
对于密码校验,虽然操作流程说得很清楚,但实际使用时如何实现,还是有一些技巧,因而同时列出所示的操作流程,以供参考。
2 SLE4418/SLE4428在予付费系统中的应用
预付费系统是为了解决电能表收费难而提出的一种收费管理方式,在得到用户的认可后,逐步在水、气行业得到推广,并有在其它行业得到应用的趋势。不管其行业如何,预付费管理系统,归根到底是收费问题,因而管理与操作方式上具有一般性。下面以飞利浦的87LPC764处理器芯片为例进行介绍。
J1为IC卡卡座;U1为87LPC764单片机;U2为串行存储器,用于保存现场数据;SIGN为信号输入;BIT、STAGE、DATA为显示输出线,以串行的形式驱动LED显示器 Power为显示输出线,以串行的形式驱动LED显示器;Power为电源监控,以保护电源电压切断时导至的数据安全问题;Ctrl为控制输出线,用于控制受器件。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。