IC卡作为一种高效、安全、方便、实用的新型信息载体,已经应用到各个领域、各个行业。本文针对加油站人工付费和结算方式的管理模式,介绍一种IC卡自动加油系统,用户持加油卡即可在任何时间到联网加油站加油,该系统简单实用。
SLE4428卡工作原理SLE4428卡是西门子公司的一款芯片,价格便宜、使用方便,具有密码校验等功能、数据安全性较高。该卡内置高压产生器,2.7~5.5V工作电压即可进行操作,可直接由单片机I/0口驱动,无需要其它外围器件,简化了接口电路。
1.SLE4428卡特点SLE4428卡基本特点如下:具有lO24×8位的EEPROM存储器;字节编址;不可撤销的字节写保护)即数据固化后无法更改;三线串行总线协议;编程结束后状态在数据线上表明;至少10万次擦写循环;至少10年数据保存期;接触点配置和串行接口符合ISO7816标准;2字节的可编程安全码,只有在该安全码校验正确后,数据方可写入卡内。
SLE4428卡引脚图如下图所示,
引脚功能表如下表所示。
引脚名称 | 功能 |
VCC | 工作电压 |
RST | 复位端 |
CLK | 时钟 |
N.C. | 空 |
GND | 地 |
I/0 | 数据线 |
2.SLE4428卡的操作时序SLE4428卡通过三线串行总线与芯片接口进行信息交换,数据在程序控制器和时钟脉冲的统一协调下,进行数据序列转换和安全逻辑校验。
SLE4428卡的操作时序主要有复位与复位应答、命令输入时序、擦除并写时序、只摈除或只写时序、读数据时序、PSC校验时序。
(1)复位与复位应答SLE4428卡上电后,芯片进入上电复位状态,复位操作时RST引脚电平从“0”变为“1”,且当CLK引脚从“0”变为“1”时结束,复位时将终止当前所有的操作命令,在上电复位后和卡内数据更改之前,进行一个读操作。
复位应答是将地址计数器设为0,输出第一个数据位,随后在连续的时钟脉冲下输出共32位地址内容,复位过程中RST的高电平持续时间至少包含一个CLK脉冲。
复位与复位应答操作时序如下图所示。
(2)命令输人时序SLE4428卡共有5条操作命令,如表2所示。
字节1 | 字节2 | 字节3 | 操作 | |
S0S152535455 | A8A9 | A0-A7 | D0-D7 | |
100011 | 地址高位 | 地址低位 | 数据输入 | 带保护位写和擦除 |
110011 | 数据输入 | 不带保护位写和擦除 | ||
11 | 数据比较 | 带保护位写(校验) | ||
1100 | 无影响 | 带保护住读(读9位) | ||
11100 | 无影响 | 不带保护位读(读8位) |
每条操作命令由6位控制位、10位地址位和1个宇节的数据位共3个字节组成。
写数据时每次只能写入一个字节,当RST引脚由“0”变为“1”,CLK引脚由“0”变为“1”时,命令输入逻辑启动,输入过程中,当I/0有效后再送脉冲信号,输入完成后,将RST置回“0”状态,时序如下图所示。
(3)擦除并写操作时序摈除时数据位从“0”变为“1”,写操作时数据位从“1”变为“0”。在撩除并写过程中,输入命令在输入一定数量(24个)的脉冲信号后开始,然后持续203个脉冲后完成整个操作。撩除并写操作完成时I/0从“1”变为“0”,且只有RST从“0”到“1”的变化时I/0口才能置“1”,操作时序如下图所示。
(4)读时序读卡内数据时,只要给出首地址,一次可进行多个字节的读操作。先配置读命令,然后输入命令,启动读操作,命令输入结束后(置RST为“O”),先输入一个脉冲信号,然后当CLK从“0”变为“1” 时,第一位数据输入到I/0数据线,以后每来一个脉冲即接收一个数据位。接收完8位或9位(保护位)时即完成一个字节的读;若连读多个字节时,则每读完一个字节后,地址计数器自动加1,当RST从“0”变为“1”时,读操作结束,读操作时序如下图所示。
(5)PSC校验时序SLE4428卡具有两个字节的密码保护字节(地址分别为1022、1023)和1个密码出错计数器(地址为1021);密码出错计数器初始值为8,密码核对出错一次,计数器初始值减1;当计数器值减到O时,整张卡的数据被锁死,即只可读出,不可写入或更改,且无法继续核对密码:若计数器值非0,只需一次核对正确,则计数器便可恢复为初始值。
在进行密码校验前,所有数据只能读出,不能写入,但不能读取密码字节,当读取密码字节时,将返回“00”字条,3条密码操作命令如下表所示,
字节1 | 字节2 | 字节3 | 操作 | |
SO S1 S2 S3 S4 S5 | A8 A9 | A0—A7 | DO—D7 | |
0 1 O 0 1 1 | 1 1 | 253 | 位掩码 | 写错误计数器 |
1 0 1 1 O O | 1 1 | 254 | PSC字节1 | 校验第一个PSC字节 |
1 0 1 1 O O | 1 1 | 255 | PSC字节2 | 校验第二个PSC字节 |
进行密码校验时,按以下步骤进行:写入一个没有写过的错误计数器位,地址1021;输入第一字节PSC码;输入第二字节PSC码:密码校验正确后,擦除错误计数器(使错误计数重新为8)。密码校验时序如下图所示。
SLE4428卡在加油机中的应用
本文只讲述IC卡与89C51单片机部分的硬件原理图,如下图所示,
J1为14脚的卡座,U1为89C51单片机,WDKG引脚检测是否有IC卡插入,TUIKA+、TUIKA-为IC卡的机械部分,检测卡的到位信号。单片机复位时各I/O引脚为高电平,IC卡上电后初始值均从低电平开始操作,故KVC,KRST和CLK引脚均通过一非门后与单片机相连.为增加I/0口信号稳定性和驱动能力,P1.2引脚外加一上拉电阻。
在IC卡加油机中,卡内主要存储以下信息:卡标识、卡号、用户密码和卡内余额(或卡内油量剩余)等。其中,卡标识用于识别是否本公司发行的加油卡:卡号保证每张卡的唯一性:用户密码由用户自己设定,防止卡丢失时,被他人窃用:卡内余额为用户账户余额信息,它们应满足:(1)卡标识为统一的代码,且不能更改;(2)卡号是唯一的,且不能更改;(3)卡内余额只能由发行单位更改,用户不可更改。
根据SLE4428卡的三项安全机制,即可编程安全码(PSC),采用唯一代码作为系统所用IC卡的标识.可避免相同型号的假冒卡闯入系统,符合要求,1,唯一代码地址为21—26,出厂时已固化,公司可为用户专门设置已向SIEMENS公司注册的全球唯一的用户代码,最大限度地保证用户的利益;数据一经写保护则无法再更改,满足要求(20:可编程安全码(PSC)若未核对正确,则无法写入数据,该PSC码在只系统软件中使用,用户无法看到,保证了要求(3)。
在加油机系统中使用该卡时,应注意以下三点:(1)SLE4428卡无需可编程安全码(PSC)便可读出卡内数据(PSC除外),因此设计时用户密码要加密存储;(2)可编程安全码(PSC)核对正确后,可被读出,因此设计时程序要能防止破坏者采用非法中断程序运行,直接去读取密码的方法来窃取密码;(3)为保证卡内用户信息安全性和;隹确性,卡内余额等信息可在卡内不同地址备份存储。
软件流程
IC卡加油时流程图如下图所示,
图中“IC卡处理”步骤包括IC卡复位、验证卡的正确性、PSC校验等,如果上述一切满足要求,且卡内余额大于设定的允许加油最小值,则符合要求,可以加油,加油完毕后,将剩余余额写入卡内,完成一次加油。
结束语
SLE4428IC卡实现的IC卡加油系统,数据存储可靠性高、软件保密性好。操作简单、读写稳定、效果良好,提高了加油中心的服务效率。