接触式ic卡sle4442卡读写实验.docx

上传人:b****7 文档编号:11228260 上传时间:2023-02-25 格式:DOCX 页数:11 大小:191.33KB
下载 相关 举报
接触式ic卡sle4442卡读写实验.docx_第1页
第1页 / 共11页
接触式ic卡sle4442卡读写实验.docx_第2页
第2页 / 共11页
接触式ic卡sle4442卡读写实验.docx_第3页
第3页 / 共11页
接触式ic卡sle4442卡读写实验.docx_第4页
第4页 / 共11页
接触式ic卡sle4442卡读写实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

接触式ic卡sle4442卡读写实验.docx

《接触式ic卡sle4442卡读写实验.docx》由会员分享,可在线阅读,更多相关《接触式ic卡sle4442卡读写实验.docx(11页珍藏版)》请在冰豆网上搜索。

接触式ic卡sle4442卡读写实验.docx

接触式ic卡sle4442卡读写实验

接触式ic卡sle4442卡读写实验

接触式IC卡(SLE4442卡)读写实验

1.实验目的

了解接触式IC卡的知识,学会如何根据时序逻辑图编写实用程序。

2.实验设备及器件

IBMPC机一台

DP-51PR0C单片机综合仿真实验仪一台

三•实验内容

根据IC卡的读写时序图编写程序,实现IC卡(SLE4442)的读写。

四•实验要求

根据IC卡的时序图编写51单片机程序读写逻辑加密IC卡(SLE4442)读写程序。

五、实验线路与实验原理

接触式IC卡的触点定义遵循ISO7816规定,IC卡8个触点分布位置如图

3.23所示,对应着DP-51PRO(单片机综合仿真实验仪“D8IC卡”区IC卡座上

方的引线。

本实验使用的是SLE4442卡,SLE4442的触点安排见图3.24。

图3.24IC卡触点分布图图3.25SLE4442的触点安排

本实验SLE4442卡与单片机的引脚连线关系见表3.4。

表3.4SLE4442与单片机引脚连线

单片机实验仪板上对应引线SLE4442引脚

P1.0TP1I/O

P1.1TP4CLK

P1.2TP3RST

下面介绍SLE4442的有关知识

5.1概述

SLE4442是德国西门子(SIMENS公司设计的逻辑加密存储卡。

它具有2K位的存储容量和完全独立的可编程代码存储器(PSC)。

内部电压提升电路保证了芯片能够以单+5V电压供电,较大的存储容量能够满足通常应用领域的各种需要。

因此是目前国内应用较多的一种IC卡芯片。

芯片采用多存储器结构,2线连接协议(串行接口满足ISO7816同步传送协议),NMOST艺技术,每字节的擦除/写入编程时间为2.5ms。

存储器具有至少10000次的擦写周期,数据保持时间至少10年。

SLE4442IC卡主要包括三个存储器:

(1)256x8位EEPRO型主存储器。

地址0~31为保护数据区,该区数据读出不

受限制,写入受保护存储内部数据状态的限制。

当保护存储器中第N位(N=0~31)

为1时,对应主存储器中第N个字节允许进行擦除和写入操作。

地址32~255后223字节为应用数据区,数据读出不受限制,擦除和写入受加密存储器数据校验结果的影响。

这种加密校验

的控制是对整个主存储器实施的(即包括保护数据区和应用数据区)。

(2)32x1位PROM型保护存储器。

一次性编程以保护主存储器保护数据区,防止一些固定的标识参数被改动。

保护存储器同样受加密存储器数据校验结果的影

响。

⑶4x8位EEPRO型加密存储器。

第0字节为密码输入错误计数器(EC)。

EC的有效位是低三位,芯片初始化时设置成“111”。

这一字节是可读的。

EC的1,2,3字节为参照字存储区。

这3个字节的内容作为一个整体被称为可编程加密代码(PSC)。

其读出,写入和擦除均受自身“比较”操作结果的控制

图3.26SLE4442卡的内部结构图

5.2传送协议

(1)复位和复位响应

L.—_

vccJ

如1図%「叫1叫d『词両n

JlEMTTW

图3.27复位时序图

复位和复位响应是根据ISO7816-3标准来进行的。

在操作期间的任意时候都可

以复位。

开始,地址计数器随一个时钟脉冲而被设置为零。

当RST线从高状态(H)

置到低状态

(L)时,第一个数据位(LSB)的内容被送到I/O上。

若连续输入32个时钟脉冲,主存储器中的前四个字节单元中的内容被读出。

在第33个脉冲的下降沿,I/O线被置成高状态而关闭。

(2)命令模式

复位响应以后,芯片等待着命令。

每条命令都以一个“启动状态”开始。

整个

命令包括3个字节。

随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。

启动状态:

在CLK为高状态(H状态)期间,I/O为下降沿时为启动状态。

停止

状态:

在CLK为高状态(H状态)期间,I/O为上升沿时为停止状态。

在接受一个

命令之后,有两种可能的模式:

输出数据模式(即读数据)和处理数据模式。

®iro启动状3T掘倒[FL的"停止狀査“

图3.28命令模式的时序图

(3)输出数据模式

这种模式是将IC卡芯片中的数据传送个外部设备接口(IFD)的一种操作。

L茜片静询披ft成高状左

命令1.刚蠱揖—|

宓~iLjzLni_nmn

图3.29输出数据模式的时序图

在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。

随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。

数据的发送从每个字节的最低位(LSB)开始。

当所需要的最后一个数据送出以后,需要在附加一个时钟

脉冲来把I/O置成高状态,以便接受新的命令。

在输出数据期间,任何“启动状

态”和“停止状态”均被屏蔽掉。

(4)处理数据模式

这种模式是对IC芯片作内部处理。

沁―趾理过畀I

OX—dJ^LTTL一-FLFLn—

佃_n-I—

||1I

他理il帝肝鮒址援过霍轴臺

图3.30处理模式的时序图

芯片在第一个脉冲的下降沿将I/O线从高状态拉到低状态并开始处理。

此后芯片在内

部连续计时计数,直到低n个时钟脉冲之后的附加一个时钟脉冲的下降沿I/O线再次置高,完成芯片的处理过程。

在整个处理过程中I/O线被锁定成低状态。

5.3SLE4442卡的应用

1.芯片的复位方式

⑴外部复位:

SLE4442时基于同步复位响应的传送协议。

芯片的复位时序如前述。

(2)加电复位:

在把操作电压连接到Vcc段之后,芯片内部进行复位操作。

I/O线被置为高状态。

必须在对任意地址进行读操作或做一个复位响应操作之后才可以进行数据交换。

(3)中止:

在CLK为低状态期间,如果RST置为高状态,则任何操作均无效。

I/O线被锁定到高状态。

需要一个最小维持时间tres=5Us之后,芯片才能接受新的复位,中止状态的时序关系如图3.31。

中止状态之后,芯片又准备下一个操作。

RST/

ires

*

—►

td

4

i/o!

图3.31中止时序图

芯片的操作命令

命令格式:

(1)每条命令包含三个字节,其排列顺序如下

表3.5命令格式

WE'IhW

rfiLSB

MSBIt.Illj'JSB

MSB

-i

ISA

B786

BSB4B2Bl

SO

A7ASASA-AJA2AlAO

D7D&D号D4DiDEl'l

DO

(2)SLE4442芯片具有七种命令,其格式和功能见表3.6

;V1:

■:

";■

mOMi1

A7^A0

rV53f:

hi

把爭比Jx

堆虬笹

諭」

Hid

如i'.■'■

..'iA'.■':

规isf

J4H

iirftT'W巾嚣

悄E畋IVHid

3CM

aiitn

■..

.'■.i.;

.1i'■i

J1I1

Ji11*if'-n

UbTtiitWjt

JEiilft

协魄hi瓷储挣

QI

1”

HiJMA

31H

曲it敦

出如检SftSfc機

址-吧呵l

注意:

每个字节来说总是从最低LSB开始读出。

写入时首先传送的也是字节的最低为(LSB)。

对保护存储器进行修改时,输入数据必须与原有数据相等,才能正确保护。

比较校验数据流程如下。

忧事世*■崖牺*序蟲駁

图3.32比较校验数据的程序流程图

六实验步骤

1.在DP-51PR0(单片机综合仿真实验仪上按表3.4(SLE4442与单片机引脚连线)在A2区和D6区之间连接好IC卡与单片机之间的连线。

2.将SLE4442卡触点朝下插入IC卡座中。

3.运行”SLE4442实验程序”(实验程序一)。

4.运行C51开发环境观察程序运行结果。

实验程序一、从主存储区的0地址读8个字节

ORG8000H

AJMPMAIN

ORG8100H

MAIN:

MOVSP,#60H;设置栈底

Read」nsert_Card:

MOVByteNum,#08H

MOVStartAdr,#00H;从主存储区的0地址读8个字节

LCALLReadCard

JMPRead_Insert_Card

$INCLUDE(SLE4442.INC);包含SLE4442驱动程序

J

END

在JMPRead_Insert_Card处设置断点,观察RecBuf的内容,RecBuf的定义见SLE4442.INC文件。

LE4442.INC的源码及注释请见SLE4442.INC文件.实验程序二、从0x20地址开始写入2个数据0x55和0x66,再读出来,由于SLE4442写主存储器时需要验证密码,所以执行下面的程序时请确保你SLE4442卡的密码的正确性,如果密钥错误,你的SLE4442校验三次便会锁死报废。

ORG8000H

AJMPMAIN

ORG8100H

MAIN:

MOVSP,#60H;设置栈底

Write_Read_Card:

MOVR0,#PSWD密码缓冲区首址

MOV@R0,#0x11

INCR0

MOV@R0,#0x22

INCR0

MOV@R0,#0x33输;入密码:

填充密码缓冲区LCALLCheckPassword;校验密码

JNZWRExit;如果校验不成功,退出

;密码校验成功,进入写卡程序

MOVR0,#WriteBuf;WriteBuf为写卡缓冲区首址MOV@R0,#0x55

INCR0;

MOV@R0,#0x66填;充写缓冲区

MOVByteNum,#0x02

MOVStartAdr,#0x20

LCALLWriteCard;调用写卡子程序

JNZWRExit;如果写不成功,退出

MOVByteNum,#0x02;下面读出刚刚写入的数据MOVStartAdr,#0x20

LCALLReadCard

;如果读成功,才可以执行这个循环,在此设置断点,JZWrite_Read_Card

;观察读缓冲区内容

WRExit:

MOVA,#00H;在此设置断点

$INCLUDE(SLE4442.INC);包含SLE4442驱动程序;

END

请在JZWrite_Read_Card语句处设置断点,在读成功时可以观察读缓冲区的数

据。

在MOVA,#00H语句处设置断点,这样当发生错误时程序不乱跑。

七、实验思考题

(1)如果单片机的晶振频率选用24MHz程序应该做那些修改,才能正确读写

SLE4442卡。

(2)编程序,根据SLE4442的时序图用C语言编写读写程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1