SLE4442通信协议

更新时间:2023-03-08 19:53:29 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SLE4442通信协议:

数据传输协议是指连接IFD器件和IC之间接口的协议。它与“S=A”类型的协议是相同的。在I/O的所有数据的变化是由CLK的下降沿上确定的。

数据传递协议由四个模式组成: -复位并应答复位 -命令模式 -数据输出模式

-处理模式 以上模式为操作模式

注意:I/O引脚是漏极开路引脚,因此需要外接上拉电阻以获得高电平。 一、 数据传输协议: 1、 应答和复位应答

应答复位是根据ISO7816-3标准产生的。复位信号可以在操作过程中的任何时候给出。起始时,地址计数器被设成零,当RST状态从“H”变到“L”时,伴随着一个始终脉冲第一个数据比特被输出到I/O口。随后再输入另外的31个连续时钟脉冲,第一个4个编址EEPROM单元内容被读出来了。第33个时钟脉冲将I/O口转换成高阻态并且结束了ATR程序。 应答复位:(Hex):

字节1 字节2 字节3 字节4 DO7…DO0 DO15…DO8 DO23…DO16 DO31…DO24

2、 命令模式

在应答复位之后,芯片接着就等待命令。每一个命令都是伴随一个起始位开始的,三个字节的长命令后紧跟着一个额外的始终脉冲并且以一个停止位结束。 -起始位:时钟为H状态时,I/O的下降沿作为起始态; -结束位:时钟为H状态时,I/O的上升沿作为结束条件。 当接收一个命令后,芯片有两种可能的状态: -数据输出模式,以便读取数据; -处理模式,用以檫除和写数据。 3、 数据输出模式:

在这个模式下,IC卡将数据输出到IFD.当第一个时钟脉冲下降沿过后,第一个数据比特位在I/O口有效。当数据的最后一个比特位输送完成后,将有一个额外的时钟脉冲使得I/O口变成高阻态并且为IC卡接收下以命令做准备。在这种模式下,任何的开始和结束标志信号都将被丢弃。

4、 处理模式:

工作在这种模式中IC卡执行内部处理。IC的时钟脉冲要持续不断直到因第一个时钟

下降沿而变成L态的I/O口状态变回高阻态。在此状态下任何形式的开始和结束标志均视为无效。

注意:在上述模式下,RST的状态为L。如果RST的状态在CLK位低电平时被设置为高电平,任何操作都将被放弃;并且I/O口状态变为高阻态。

二、 命令字: 1、 命令格式:

每个命令由三个字节组成:数据形式如下表所示

MSB 控制字节 LSB B 7 B 6 B 5 B 4 B 3 B 2 B 1 B 0 B 7 MSB 地址字节 LSB B 6 B 5 B 4 B 3 B 2 B 1 B 0 B 7 MSB 数据字节 LSB B 6 B 5 B 4 B 3 B 2 B 1 B 0 数据传送从控制字节的LSB位开始。

图表4:命令模式

SLE4432提供4个命令,列于表1。除了这些命令外,SLE4442还提供3个命令,示于表2。 表一:

字节一、控制 字节二 字节三 地址 数据 0 0 0 0 0 0 0 0 地址 地址 无效 地址 无效 输入 无效 输入 操作 更新主存储 存储写保护 模式 处理模式 处理模式 B7 B6 B5 B4 B3 B2 B1 B1 A7-A0 D7-D0 0 0 0 0

0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1 1 读取主存储 数据输出模式 存储读保护 数据输出模式

表二:只对SLE4442有效

0 0 1 1 0 0 0 1 无效 无效 存储器读保护 比较核查数据 数据输出模式 处理模式 处理模式 0 0 1 1 1 0 0 1 地址 输入数据 存储器密码更新 0 0 1 1 0 0 1 1 地址 输入数据

2、 读主存储器(SLE4432和SLE4442)

读数据命令读出的是从给出地址开始到存地址(这个地址可以是0——255之间的数)结束之间单元的内容(数据传送从LSB开始)。命令输入后,IFD必须提供足够的时钟脉冲。所需脉冲数为m=(256-N)×8+1.读访问主存操作始终是被允许的。

地址 (decimal 十进制) 255 : 32 31 : 3 2 1 0 二进制 十六进制 0 0 1 Main memory (主存储器) Data byte 255(D7…D0) : Data byte 32(D7…D0) Data byte 31(D7…D0) : Data byte3(D7…D0) Data byte 2(D7…D0) Data byte 1(D7…D0) Data byte 0(D7…D0) Protection memory (记忆保护) - - - 保护Bit 31(D31) : 保护Bit 3(D3) 保护 Bit 2(D2) 保护 Bit 1(D1) 保护 Bit 0(D0) Security memory (安全存储) (only SLE 4442) - - - - - 参考 data byte 3(D7…D0) 参考 data byte 2(D7…D0) 参考 data byte 1(D7…D0) Error counter 地址 A7…A0 地址 00H—FFH 0 0 0 数据 D7…D0 无效 无效 命令:读主存储器 控制 B7 B6 B5 B4 B3 B2 B1 B0 1 0 30H

3、 存储器读保护:(SLE4432 and SLE4442)

该命令在输入的连续的32个脉冲的条件下,将保护数据比特依次输出。同样的,结束后I/O口状态也将被一个额外脉冲转变成高阻态。保护内存中的数据可以随时读取,并且标明受保护的主存的数据字节是不允许改变的(保护内存可以随时读取,并说明反对改变保护的主存储器中的数据字节) 地址

Main memory Protection memory Security memory

(decimal 十进制) 255 : 32 31 : 3 2 1 0 二进制 十六进制 (主存储器) Data byte 255(D7…D0) : Data byte 32(D7…D0) Data byte 31(D7…D0) : Data byte3(D7…D0) Data byte 2(D7…D0) Data byte 1(D7…D0) Data byte 0(D7…D0) (记忆保护) - - - 保护Bit 31(D31) : 保护Bit 3(D3) 保护 Bit 2(D2) 保护 Bit 1(D1) 保护 Bit 0(D0) (安全存储) (only SLE 4442) - - - - - 参考 data byte 3(D7…D0) 参考 data byte 2(D7…D0) 参考 data byte 1(D7…D0) Error counter 地址 A7…A0 地址 00H—FFH 数据 D7…D0 无效 无效 命令:读受保护的主存储器 控制 B7 B6 B5 B4 B3 B2 B1 B0 0 0 1 1 0 1 0 0 34H

4、 修改主存储器:

这个命令用传送的数据对编制的EEPROM字节进行编程。依据旧有的和新的数据,下面的序列之一将在处理模式中执行: -檫除和写入:(5ms) 相对应的脉冲数位m=255; -单独写: (2.5ms)相对应的脉冲数位m=124; -单独檫除: (2.5ms)相对应的脉冲数位m=124 (所有的值都是在时钟频率为50KHz下)

地址 (decimal 十进制) 255 : 32 31 : 3

Main memory (主存储器) Data byte 255(D7…D0) : Data byte 32(D7…D0) Data byte 31(D7…D0) : Data byte3(D7…D0) Protection memory (记忆保护) - - - 保护Bit 31(D31) : 保护Bit 3(D3) Security memory (安全存储) (only SLE 4442) - - - - - 参考 data byte 3(D7…D0)

2 1 0 Data byte 2(D7…D0) Data byte 1(D7…D0) Data byte 0(D7…D0) 保护 Bit 2(D2) 保护 Bit 1(D1) 保护 Bit 0(D0) 参考 data byte 2(D7…D0) 参考 data byte 1(D7…D0) Error counter 地址 A7…A0 地址 数据 D7…D0 输入数据 命令:修改主存储器数据

控制 B7 B6 B5 B4 B3 B2 B1 B0 0 0 1 1 1 0 0 0 38H 二进制 十六进制 00H—FFH 输入数据

如果地址所指向的单元是受保护的、不允许改变的(在相应的写保护比特位里有标明),I/O口将在两个时钟处理过后变为高阻态。 5、 写保护存储器:

该命令的执行包含输入的数据与在指定字节的EEPROM字节比较。防备身份保护比特位被写入,从而使存储的数据信息保持不变。如果数据比对结果数据不相同,则写数据保护区被禁止。执行时间和需要的脉冲个数要看需更新的主存储器的大小。

地址 (decimal 十进制) 255 : 32 31 : 3

Main memory (主存储器) Data byte 255(D7…D0) : Data byte 32(D7…D0) Data byte 31(D7…D0) : Data byte3(D7…D0) Protection memory (记忆保护) - - - 保护Bit 31(D31) : 保护Bit 3(D3) Security memory (安全存储) (only SLE 4442) - - - - - 参考 data byte 3(D7…D0)

2 1 0 Data byte 2(D7…D0) Data byte 1(D7…D0) Data byte 0(D7…D0) 保护 Bit 2(D2) 保护 Bit 1(D1) 保护 Bit 0(D0) 参考 data byte 2(D7…D0) 参考 data byte 1(D7…D0) Error counter 地址 A7…A0 地址 数据 D7…D0 输入数据 命令:写保护存储器

控制 B7 B6 B5 B4 B3 B2 B1 B0 0 0 1 1 1 1 0 0 3CH 二进制 十六进制 00H—FFH 输入数据 6、 读取安全(保密)存储器(仅对4442有效) 同读保护存储器命令相似,这个命令也是读出4个字节的安全存储器值。在数据输出模式下需要32个脉冲,外加一个额外脉冲将I/O口转换成高阻态。没有前面的PSC的成功核实,相关的字节输出将被禁止。这就意味着I/O口输出将为低电平。

地址 (decimal 十进制) 255 : 32 31 : 3 2 1 0 二进制 十六进制 0 0 1 Main memory (主存储器) Data byte 255(D7…D0) : Data byte 32(D7…D0) Data byte 31(D7…D0) : Data byte3(D7…D0) Data byte 2(D7…D0) Data byte 1(D7…D0) Data byte 0(D7…D0) Protection memory (记忆保护) - - - 保护Bit 31(D31) : 保护Bit 3(D3) 保护 Bit 2(D2) 保护 Bit 1(D1) 保护 Bit 0(D0) Security memory (安全存储) (only SLE 4442) - - - - - 参考 data byte 3(D7…D0) 参考 data byte 2(D7…D0) 参考 data byte 1(D7…D0) Error counter 地址 A7…A0 地址 00H—FFH 0 0 1 数据 D7…D0 无效 无效 命令:读取安全密码 控制 B7 B6 B5 B4 B3 B2 B1 B0 1 0 31H

7、 修改安全存储器(仅对SLE4442)

关于相关数据字节,这个命令将仅仅只在PSC已被成功核对过之后。 命令:修改安全密码 二进制

控制 B7 B6 B5 B4 B3 B2 B1 B0 0 0 1 1 1 0 0 1 地址 A7…A0 地址 数据 D7…D0 输入数据

十六进制 39H 00H—FFH 输入数据 8、 比较核对数据:(仅对于SLE4442)

此命令只能结合错误计数器执行(见PSC密码核对)。该命令将输入的验证信息与卡上相应位置上的数据做对比。这个处理过程中要保证有连续的时钟脉冲。 命令:比较核对数据

二进制 十六进制 9、

0 0 1 控制 B7 B6 B5 B4 B3 B2 B1 B0 1 0 0 1 1 33H 地址 A7…A0 地址 数据 D7…D0 输入数据 00H—FFH 输入数据

本文来源:https://www.bwwdw.com/article/85b7.html

Top