IC卡预付费远传式仪表设计 下载本文

北华大学毕业设计(论文)

2)读保护存储器:该命令的控制字为(34H)。在连续输入32个时钟脉冲情况下,芯片将保护存储器内容传送到I/O线上。最后一个附加时钟脉冲将I/O线置为高状态。对主存储器作读操作不受限制。

3)读加密存储器:该命令类似于读保护存储器,可以读出4个字节加密存储器的内容。该命令的控制字为(31H)。在输出数据的模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功,I/O线总保持为低状态(即输出总是“0”)。

4)修改主存储器:该命令就是根据所传送的字节数据,寻址主存储器的EEPROM然后修改字节内容。该命令的控制字为(38H)。在处理模式期间,可能发生下列情况之一:

·擦除和写入; ·只写入不擦除; ·只擦除不写入。

5)修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中的响应字节的内容进行修改。该命令的控制字为(39H),该命令只能在可编程加密代码(PSC)比较成功之后才能进行。

6)写保护存储器:这一命令的执行过程包含一个被输入的数据与在EEPROM中对应数据进行比较的过程。在确认一致的情况下,保护字位被写0。从而使得主存储器中的信息不可更改。如果比较结果不一致,则保护字位的写操作被禁止执行。

7)比较校验数据:该命令把输入的“校验数据”的各个字节与相对应的参照数据(存放在加密存储器中)进行比较。如果比较不成功(即两组数据不相同),则密码错误计数器的一个字位将只会被从“1”写成“0”。

首先用一个修改命令将密码错误计数器中的一位写0。然后紧跟三条比较校验命令。比较从参照数据的字节1开始整个比较过程成功与否是用能否擦除密码错误计数器来证实。如果比较成功,则擦除操作执行有效,这时只要不下电,对整个芯片各存储器的各区域的写入/擦除处理都可以进行;如果比较不成功,擦除工作执行无效,密码错误计数器将不会恢复为“111”。但只要(EC)不全为0,就允许外部接口设备对芯片进行重试。当校验数据比较成功,加密存储器也同样被打开,其单元中的参照数据也可以像主存储器(EEPROM)中的其它单元一样进行修改变换。芯片在出厂时,根据用户

29 - -

北华大学毕业设计(论文)

的专门安排,常将可编程加密代码(PSC)中编入一个专用代码,这样,在使用时,要打开卡片就必须合法得到这个代码,这也是防止非法窃用的一种方法。

5. SLE4442卡的安全防护

SLE4442卡的安全防护主要有三方面: (1)复位应答检测(ATR检测)

SLE4442上电后,读写器使IC卡复位,接着读取复位应答信息。应答信息中,包含卡的芯片信息,由于这些信息组成是唯一的,即在全球范围内不会产生相同标志,所以读写器读到这些信息后,可以初步确定此卡是否是同类型芯片的卡。

(2)保护区固化信息检测

保护区固化信息包括复位应答信息、芯片制造厂家信息和芯片信息以及应用标识三部分。通过检测保护区固化信息,不仅可以确定IC卡的生产厂家,而且可以确定发行商信息及持卡人信息,从而确定IC卡的唯一性。通常情况下,SLE 4442保护存储器中固化信息如下:

00H-03 H复位应答信息(ATR), 04H-07H芯片生产厂家代码和卡型编码, 15H-1AH应用标示。 (3)密码校验检测

密码校验检测是SLE4442芯片安全体制的关键。它通过对密码存储器的操作来实现。其中包括3个命令:读密码、写密码和校验密码。其中最常用的是校验密码,该密码如果校验成功则对主存储器的写操作使能,以及对密码存储器的读写使能;若校验密码失败,计数器则将失败的校验次数记录下来,为了防止通过多次校验以获得密码的可能性,设计了连续3次错误校验,芯片自锁功能。 5.1.4 显示驱动芯片的选用

一般电表的显示只须5位数字电量(4位整数和1位小数)即可满足要求,所以本设计中显示部分我们选用的是MC14489和5个7段共阴极LED数码管。

MC14489是7段LED直接驱动的芯片,它可以驱动5个7段LED。MC14489可以用串行接口和单片机进行通信,对LED的驱动是以共阴极方式进行的,故显示器件应采用共阴极7段LED。

MC14489的典型应用如图5.10所示。图中表示的是单片机对MC14489的控制以及MC14489对7段LED显示器的驱动情况。其中,MCU/MPU是单片机或微处理器,它

30 - -

北华大学毕业设计(论文)

通过串行接口和MC14489的DATA IN,CLOCK以及ENABLE连接,同时,也可以接收MC14489的数据输出端DATA OUT的信号数据。从图中看出:MC14489可以驱 动5个7段的LED显示器。在MC14489内部,配置寄存器和显示寄存器的有关功能说明如下。

配置寄存器的作用和功能用于确定显示的方式。显示方式有低电源方式和一般方式,在一般方式中又分成十六进制译码显示、特殊译码显示和不译码显示3种情况。

+5v+5VVDDVSSP13DATA OUTa......h8afgdbc88afegdbcfe8agdbcfeagd8abcfegdbc单片机R18RxDATA INP10P11P12CLOCKBANK 5......BANK 1eENABLEMC14489 图5.10 MC14489的典型应用

配置寄存器各位分别用C7~C0表示,其中C7为最高有效位,当数据串行输入MC14489时,最高有效位MSB先输入。在数据输入时,ENABLE先变成低电平,串行数据在时钟的作用下,先为最高有效位MSB输入,最后为最低有效位LSB输入,送入移位寄存器中。在8位数据移入移位寄存器之后,ENABLE信号变为高电平。由于输入的是8位数据,故这个数据被存入配置寄存器中。配置寄存器的各位意义如下:

C0:C0=0,MC14489以低电源工作方式工作,通电复位时会强制令C0=0;C0=1时,MC14489以一般方式工作。在低电源工作方式时MC14489处于静态状态,并使显示器熄灭。在一般工作方式中,还有十六进制译码,特殊译码和不译码3种情况,这些情况由C1~C7决定。

31 - -

北华大学毕业设计(论文)

C1:用于控制BANK1端对应的显示数据。C1=0时,BANK1对应的显示数据进行十六进制译码显示;C1=1时,取决于C6的状态。

C2:用于控制BANK2端对应的显示数据。C2=0时,BANK2对应的数据以十六进制译码显示;C2=1时,取决于C6的状态。

C3:用于控制BANK3端对应的显示数据。C3=0时,BANK3对应的数据以十六进制译码显示;C3=1时,取决于C6的状态。

C4:用于控制BANK4端对应的显示数据。C4=0时,以十六进制译码显示;C4=1时,取决于C7的状态。

C5:用于控制BANK5端对应的显示数据。C5=0时,以十六进制译码显示;C5=1时,取决于C7的状态。

C6:在C1~C3为“1”时,决定BANK1~BANK3对应的数据的译码方式。C6=0时,不进行译码显示;C6=1时,实行特殊译码显示。

C7:在C4,C5为“1”时,决定BANK4,BANK5的对应数据的译码方式。C7=0时,不进行译码显示;C7=1时,实行特殊译码显示。

显示寄存器用于存放显示数据和显示控制码。显示寄存器有24位,分别用D23~D0表示,其中,D23是最高有效位MSB。显示寄存器的24位数据输入和配置寄存器8位数据输入类同,在24位数据输入移位寄存器之后,则ENABLE又变为高电平,24位数据从移位寄存器送入显示寄存器中。

在显示寄存器中,含3个字节的数据,分成6组,每组数据4位。低5组是显示数据,最高1组是显示控制码。各组数据及其含义如下:

D0~D3:对应BANK1端的显示数据组1,其中D3是最高有效位。 D4~D7:对应BANK2端的显示数据组2,其中D7是最高有效位。 D8~D11:对应BANK3端的显示数据组3,其中D11是最高有效位。 D12~D15:对应BANK4端的显示数据组4,其中D15是最高有效位。 D16~D19:对应BANK5端的显示数据组5,其中D19是最高有效位。

D20~D23:这4位是显示控制码。其中D23是亮灭控制位,D23=0,熄灭LED;D23=1,开亮LED。D22~D20用于控制各组显示数据的显示,其控制作用如表5.5所示。

32 - -