第三章 单元电路方案选择
到31(1FH)这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。当保护存储器中第N位为0时,则对应主存储器中第N个字节就不允许进行擦除和写入操作。故保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数。应用数据区为主存储器后224个字节。其地址从32(20H)到255(FFH).这部分的数据读出不受限制,但擦除和写入受控于加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时,必须首先输入一个3字节长的“校验字”。这个新输入的“校验字”与原来存在在加密存储器中的“参照字”进行一对一的比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次数内重试比较操作。如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。这时整个主存储器变成一个只读存储器。芯片中各存储器的内容不能再改变。
2)保护存储器是一个32×1位的一次性可编程只读存储器(PROM)。它是按字位方式寻址和写入。保护存储器从0~32的每一位对应着主存储器地址从0到31的字节。因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1\写成“0”而不能从“0”擦除成“1”。保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接收任何擦除和写入命令,从而使得该字节单元的数据不可再改变。从使用方面来讲,如果需要防止一些固定的标识参数被改动,可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写位“0”,从而使这一部分单元中的参数内容永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内的“参照字”‘一致,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将闭锁保护存储器。
3)加密存储器:加密存储器是一个4×8位的EEPROM型存储器。在这个存储器中,第0字节为“密码输入错误计数器”(EC)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成\。这一字节是可读的。每
- 16 -
第三章 单元电路方案选择
次比较密码时,先判断计数器中是否还有“1”。如果还有“1”,则将其中一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,密码错误计数器将允许进行擦除操作(芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则密码错误计数器中为“1”的个数将减少一位。只要计数器的内容不全为0,则芯片的比较“校验字”操作还允许进行。当密码计数器减数为零,则芯片的存储单元将全部锁死。加密存储器的第1,2,3字节为“参照字”存储区。这3个字节的内容作为一个整体披称为可编程加密代码(PSC)。值得注意的是:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而“写入、擦除”操作也受自身“比较”操作结果的控制。只有当“比较”成功,加密存储器各字节内容才可以进行读出、写入和擦除。
3.1.4 SLE4442芯片传送协议
传送协议是在接口设备IFD与IC卡的集成电路之间的两线连接协议,SLE4442芯片的协议类型为S=10(同步卡协议)。I/O线上数据变化只在CLK信号的下降沿才有效。
传送协议包括4种模式: ? 复位和复位响应 ? 命令模式 ? 输出数据模式 ? 处理模式 1)复位和复位响应:
复位响应是根据ISO 7816-3标准来进行的。在操作期间的任何时候都可以复位,只有经过了复位才能对IC卡进行其他操作.开始时地址计数器随一个时钟脉冲而被设置成0。当RST线从H状态置到L状态时,第一个数据位的内容被送到I/O线上。若连续输入32个时钟脉冲,主存储器中的前4个字节地址单元中的内容被读出。在第33个时钟脉冲的下降沿,I/O线被置成H状态而关闭。图3-1为芯片复位即复位响应的时序关系。
- 17 -
第三章 单元电路方案选择
在复位响应期间,“启动”和“停止”(见下面)状态被忽略。
图3-1芯片复位及复位响应的时序关系
2)命令模式:复位响应之后,芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括三个字节(命令含义后面解释)。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。图3-2为命令模式时序关系。
启动状态:在CLK为H状态期间,I/O线的下降沿为启动状态。 停止状态:在CLK为H状态期间,I/O线的上升沿为停止状态。
在接受一个命令之后,有两种可能的模式:输出数据模式(即读数据模式)和处理数据模式。
图3-2命令模式的时序关系
3) 输出数据模式:这种模式是将IC卡芯片中的数据传送给外部接口设备的一种操作。图3-3为输出数据模式的时序关系。
在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后
- 18 -
第三章 单元电路方案选择
每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。其输出的顺序是从每个字节的最低位开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成H状态,以便准备接受新的命令。在输出数据期间,任何“启动状态”和“停止状态”均被屏蔽掉。
图3-3输出数据模式的时序关系
4) 处理数据模式:这种模式是对IC卡芯片做内部处理。图3-4为处理数据模式的时序关系。芯片在第一个时钟脉冲的下降沿将I/O从H状态拉为L状态并开始处理。此后芯片在内部连续计时计数,直到第N个时钟脉冲之后的附加时钟脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。
图3-4处理数据模式的时序关系
3.1.5 芯片的操作命令
1)命令的格式:每条命令包含三个字节,其顺序如下: MSB控制字 LSB
MSB地址字 LSB - 19 -
MSB数据字 LSB 第三章 单元电路方案选择
B7 B6 B5 B4 B3 B2 B1 B0 A7 A6A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1D0 命令的传送总是从控制字节开始。首先传送字节的最低位LSB(即B0)。控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开始。在最后一位D7传送完成之后,需要增加一个附加脉冲把I/O线置成高状态。
SLE4442芯片具有七种命令,其格式和功能见下表3-2
表3-2命令格式及功能
字节1(控制) 字节2(地址) 字节3(数据) 功能 30H 地址数 无效 读存储器 38 H 地址数 输入数据 修改存储器 34 H 无效 无效 读保护存储器 3B H 地址数 输入数据 写保护存储器 31 H 无效 无效 读加密存储器 39 H 地址数 输入数据 修改加密存储器 33 H 地址数 输入数据 比较校验数据 2)有关命令的说明:
? 读主存储器:该命令是指读出主存储器的内容。该命令的控制字为(30H)。对
于每个字节来说总是从最低位开始读出。从给定的字节地址(N)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲。对于从地址(N)开始读数据所需要的时钟脉冲的数量M=(256-N)×8+1。对主存储器做读操作不受限制。
? 读保护存储器:该命令的控制字为(34H).在连续输入32个时钟脉冲情况下,
芯片将保护存储器内各位内容传送到I/O线上。最后一个附加时钟将I/O线置为H状态。对保护存储器进行读取操作不受限制。
? 读加密存储器:该命令类似于读保护存储器那样,可以读出4个字节的加密
存储器的内容。在输出数据模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功(除第0字节可读除外),I/O线总保持低状态。
? 修改主存储器:该命令就是根据所传送地址字节数据,寻址主存储器的
命令模式 输出数据模式 处理模式 输出数据模式 处理模式 输出数据模式 处理模式 处理模式 - 20 -