接触式IC卡技术.ppt

上传人:本田雅阁 文档编号:2852569 上传时间:2019-05-28 格式:PPT 页数:283 大小:3.76MB
返回 下载 相关 举报
接触式IC卡技术.ppt_第1页
第1页 / 共283页
接触式IC卡技术.ppt_第2页
第2页 / 共283页
接触式IC卡技术.ppt_第3页
第3页 / 共283页
接触式IC卡技术.ppt_第4页
第4页 / 共283页
接触式IC卡技术.ppt_第5页
第5页 / 共283页
点击查看更多>>
资源描述

《接触式IC卡技术.ppt》由会员分享,可在线阅读,更多相关《接触式IC卡技术.ppt(283页珍藏版)》请在三一文库上搜索。

1、第2章 接触式IC卡技术,2.1 实训1:接触式存储器卡与逻辑加密卡的存储结构 2.2 接触式IC卡的基本物理特性 2.3 接触式IC卡的芯片技术 2.4 典型存储器卡 2.5 实训2:接触式存储器卡的操作控制 2.6 典型逻辑加密卡 2.7 实训3:接触式逻辑加密卡的操作控制 2.8 接触式IC卡接口技术 思考题,2.1 实训1:接触式存储器卡与逻辑加密卡的存储结构,1实训目的 (1) 建立对接触式IC卡的感性认识。 (2) 理解和掌握接触式存储器卡的访问方式和典型存储结构。 (3) 理解和掌握接触式逻辑加密卡的访问方式和典型存储结构。,2实训设备与器件 (1) 实训设备:通用接触式IC卡读

2、写器,586电脑,通用接触式IC卡读写器DEMO软件(使用方法参见厂商提供的使用手册)。 (2) 实训器件:AT24C01卡、SLE4442卡、AT88SC1604卡(白卡,实验室准备),IC卡电话卡(已发行,自备)。,3实训步骤与要求 1) 通用接触式IC卡读写器及DEMO软件的安装 (1) 按系统提示安装通用接触式IC卡读写器DEMO软件。 (2) 按标志连接通用接触式IC卡读写器的电源线及串口线,注意电源 +5 V与地不可接反。 2) 使用DEMO软件访问AT24C01卡 (1) 按使用手册的说明操作演示软件,对通用接触式IC卡读写器进行建立连接操作。 (2) 将AT24C01卡插入读写

3、器卡座,选择卡型(自动识别卡型或选择AT24C01卡),进入卡操作界面。 (3) 对AT24C01卡进行读/写/擦除操作,记录操作结果及操作条件。,3) 使用DEMO软件访问自备的IC卡电话卡 (1) 将IC卡电话卡插入读写器卡座,选择自动识别卡型,记录卡型。 (2) 进入卡操作界面对电话卡进行读/写/擦除操作,在表2.1中记录操作结果及操作条件。,表2.1 电话卡存储结构记录表,4) 使用DEMO软件访问SLE4442卡 (1) 将SLE4442卡插入读写器卡座,选择卡型,进入卡操作界面。 (2) 对SLE4442卡进行读/写/擦除操作,在表2.2中记录操作结果及操作条件。,表2.2 SLE

4、4442卡存储结构记录表,5) 使用DEMO软件访问AT88SC1604卡 (1) 将AT88SC1604卡插入读写器卡座,选择卡型,进入卡操作界面。 (2) 对AT88SC1604卡进行读/写/擦除操作,在表2.3中记录操作结果及操作条件。,表2.3 AT88SC1604卡存储结构记录表,4实训总结与分析 (1) AT24C01卡的操作界面如图2.1所示。 可以看到,AT24C01的存储容量为1 Kb(128 B),存储结构为1288 b。可以按字节操作,所有字节的读/写/擦除均可任意进行。这种卡被称为存储器卡。存储器卡的详细内容参见2.3节。,(2) IC电话卡的操作界面如图2.2所示。

5、DEMO软件自动识别该卡为SLE4406卡。可以看到,这种卡的存储容量为104 b(13 B),其中仅后5个字节为用户区,可按位操作。用户区可任意读、任意写(由1变为0称为写),但只能按字节借位擦除(由0变为1称为擦除)。当用户区全为0时,卡将作废。SLE4406卡是一种按位操作的逻辑加密卡,它以一次性的计数方式操作,因此这种卡也称为计数卡(Token Memory Card),其详细介绍参见2.6.1节。,图2.1 AT24C01卡的操作界面,图2.2 IC电话卡的操作界面,(3) SLE4442卡的操作界面如图2.3所示。,图2.3 SLE4442卡的操作界面,通过操作我们发现,SLE44

6、42卡具有2 Kb(256 B)的存储容量,它采用多存储器结构,包括三个存储器:2568 b的EEPROM型主存储器,321 b的PROM型保护存储器和48 b的EEPROM型加密存储器。主存储器可重复擦除使用,按字节操作,并分为保护数据区和应用数据区,读出均不受限制,但保护数据区的擦除和写入受保护存储器熔丝状态的保护,而应用数据区的擦除和写入则受加密存储器中的密码及密码计数器保护。SLE4442卡是一种按字节操作的多存储器逻辑加密卡。,(4) AT88SC1604卡的操作界面如图2.4所示。 通过操作我们发现,AT88SC1604卡的存储容量为16 384 b(2048 B)。它采用单存储器

7、多逻辑分区结构,主存储器除划分了特定的标志数据区和控制数据区之外,还将应用数据区分成四个完全隔离的子区,并在每个子区中配备了各自的读、写控制标志和写入/擦除密码以及密码输入错误计数器等逻辑控制。AT88SC1604卡是一种按字节操作的大容量逻辑加密卡。,5思考 (1) 若要构成一个接触式IC卡门禁系统,应采用哪一种卡,为什么?与传统的锁加钥匙的方式相比较,由接触式IC卡及其读写器构成的接触式IC卡门禁系统有何优胜之处? (2) 分别说明AT24C01A、SLE4442和AT88SC1604的安全性是由哪些环节保证的?,图2.4 AT88SC1604卡的操作界面,2.2 接触式IC卡的基本物理特

8、性,所谓接触式IC卡,就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口设备直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。其特点是在卡的表面有符合ISO/IEC 7816标准的多个金属触点。,2.2.1 接触式IC卡的基本构成,图2.5 接触式IC卡外形图,图2.6 接触式IC卡内部结构剖视图,在图2.6中,其各组成部分说明如下: (1) 半导体芯片:它是IC卡的核心部分。一般采用0.380.8 m的HCMOS或NMOS工艺制造的超大规模集成电路。在半导体芯片中包括存储器、译码电路、接口驱动电路、逻辑加密控制电路,甚至微处理器单元(CPU)等各种功能电路。其外形大小约为

9、2 mm1 mm0.3 mm。,(2) 电极膜片:它是作为半导体芯片各输入/输出信号引脚与外部设备接触连接的导电体,它实际是一种精密的印刷电路板(PCB)。其基底为一层绝缘材料,(一般为环氧树脂玻璃或聚酰亚胺薄膜)。在基底的绝缘材料上沉积一层铜合金,并在其外端表面镀金,以提高其导电性能和防氧化能力。电极膜片的外形大小约为:长9.6213.65 mm,宽9.3211.56 mm。电极膜片的外形一般为矩形或椭圆形。这种形状上的差异主要是为了改善卡片的抗扭曲方面的机械特性。电极膜片上共有多个芯片电极,每个电极的中心位置和最小面积是有规定的。但各电极表面分隔形状没有规定。,图2.7 接触式IC卡模块,

10、(3) 塑料基片:它是半导体芯片和电极膜片的载体。根据各生产厂家制卡工艺设备的要求,一般采用PVC(聚氯乙烯)、PET和ABS塑料材料。目前在国内所使用或封装生产的IC卡,基片材料大都使用PVC材料。 但随着制卡技术不断发展和对工业环保的要求,PVC材料的使用将会逐渐受到一定的限制。因而目前国外的一些制卡厂商已逐渐将IC卡的基片材料转向改用PET或ABS材料。塑料基片的大小,对于满足国际标准识别卡的ID-1型的尺寸是85.6 mm(长)53.98 mm (宽)0.75 mm(厚)。应该说明,由半导体芯片和电极膜片封装而成的IC卡模块(Wire Boded Module,如图2.7所示)就可以实

11、现IC卡的基本功能。,2.2.2 接触式IC卡的触点尺寸和位置 符合国际标准的IC卡的物理特性主要由国际标准ISO 7810、ISO 7811-1/2/3/4、ISO 7812、ISO 7813和ISO/IEC 7816-1等定义。其主要特性指标包括几何尺寸、抗X射线能力、触点与卡基表面的误差、电阻(触点)、抗电磁干扰、抗磁场干扰、抗静电能力、热耗、抗弯曲特性以及抗扭曲特性等。上述物理特性及其检测方法参见相关国际标准。 接触式IC卡有8个触点,即集成电路引脚,从C1到C8,如图2.8所示。国际标准ISO/IEC 7816-2对接触式集成电路卡的触点尺寸和芯片位置以及功能作了具体的规定。,图2.

12、8 接触式IC卡的触点位置,IC卡的电极膜片(即8个触点)既可安排在塑料基片的正面,也可安排在反面。触点之间的排列顺序必须按图2.8所示排列。各触点在卡基平面的几何尺寸、位置均以卡触点的接触面的左边沿和上边沿为基准边。其触点的尺寸及位置如图2.8所示。 在ISO/IEC 7816-2中对每个触点的几何形状和最大面积虽然没有规定,但却规定了每个触点表面积的内切矩形面积不得小于2 mm1.7 mm。 各触点之间应相互隔离。而相邻两个触点之间的最大距离为0.84 mm。8个触点所占最大面积没有规定,但规定最小面积不小于9.62 mm(长)9.32 mm(宽)的矩形平面。,表2.4 接触式IC卡的触点

13、功能,2.3 接触式IC卡的芯片技术,2.3.1 存储器卡 1存储器卡的逻辑结构,图2.9 存储器卡的逻辑结构图,2存储器卡的特点 (1) 卡内嵌入的芯片多为通用EEPROM(或Flash Memory)。 (2) 无安全控制逻辑,可对片内信息不受限制地任意存取。 (3) 卡片制造中也很少采取安全保护措施。 (4) 不完全符合或支持ISO/IEC 7816国际协议,而多采用2线串行通信协议(I2C总线协议)或3线串行通信协议(SPI协议)。,3存储器卡的主要应用场合 存储器卡功能简单,没有(或很少有)安全保护逻辑,但价格低廉、开发使用简便、存储容量增长迅猛,因此多用于某些简单的、内部信息无需保

14、密或不允许加密(如急救卡)的场合。 4存储器卡的代表产品 存储器卡的代表产品为美国Atmel公司的EEPROM 卡AT24系列2线串行芯片和AT93系列3线串行系列,Flash Memory卡AT45D系列(28 Mb,SPI协议)。,表2.5 EEPROM存储器卡芯片,2.3.2 逻辑加密卡 1逻辑加密卡的逻辑结构,图2.10 逻辑加密卡的逻辑结构图,2逻辑加密卡的特点 (1) 具有安全控制逻辑,安全性能较好。 (2) 同时采用ROM、PROM、EEPROM等存储技术。 (3) 从芯片制造到交货,均采取较好的安全保护措施,如运输密码TC(Transport Code)的取用。 (4) 支持I

15、SO/IEC 7816国际标准。 (5) 一般均为专门为IC卡设计的芯片。 (6) 为提高安全性,逻辑加密卡的存储空间被分为多个不同的功能区,典型的存储结构如表2.6所示。,表2.6 逻辑加密卡的存储结构,3逻辑加密卡的应用场合与代表产品 由于具有一定的保密功能,且价格较CPU卡低,因此在需要保密但对安全性要求不是太高的场合,逻辑加密卡得以大量应用,如电话卡、网吧上网卡、停车卡等小额消费场合,已成为目前IC卡在非金融领域的最主要的应用形式。 (1) 安全数据存储、传输和处理:面向字节操作的逻辑加密卡,如Atmel的AT88SC200、Philips的PC2032/2042、Siemens的SL

16、E4418/4428/4432/4442等,应用于保险卡、加油卡、驾驶卡、借书卡等。,(2) 相关数据记录、存储、处理,包括: 一次性使用的不可重置式,如Siemens的SLE4406/4436、Atmel的AT88SC06、Gemplus的GPM276/103。 可重置式,如Siemens的SLE4404(64次)、Atmel的AT88SC101/102(128次),应用于IC卡电话、小额电子钱包。,表2.7 Siemens系列逻辑加密卡芯片的特性参数,2.3.3 CPU卡 1CPU卡的逻辑结构 CPU卡的硬件构成包括CPU、存储器(含RAM、ROM、EEPROM等)、卡与读写终端通信的I/

17、O接口及加密运算协处理器CAU,其中: (1) CPU一般均为兼容于位字长单片机(如MC68HC05、Intel8051等)的微处理器。它将在COS(Chip Operation System,片内操作系统)控制下,实现卡与外界的信息传输、加密、解密和判别处理等。 (2) ROM用于存放COS,316 KB。 (3) RAM用于存放中间处理结果及作为卡与读写器间信息交换的中间缓存器,128 B1 KB。,(4) EEPROM则是真正可供用户访问的存储区,用于保存卡的各种信息、密码、密钥、应用文件等,116 KB。 (5) CPU卡通常采用DES、RSA等加密、解密算法提高系统的安全度,采用RS

18、A等算法时要进行对运算速度要求较高的大指数模运算,8位的CPU将难以胜任,因此多设有专用加密、解密运算协处理器CAU。 例如Siemens的SLE44C20,内含8位字长的CPU、15 KB的ROM、32 B的PROM、2 KB的EEPROM和256 B的RAM。,2CPU卡的特点 (1) 片内带有CPU、各种存储器ROM、RAM以及专用加密、解密运算协处理器CAU,具有很高的数据处理和计算能力以及较大存储容量,因此应用的灵活性、适应性较强。 (2) 在硬件结构、操作系统、制作工艺上采取多层次安全措施,保证了其极强的安全防伪能力。它不仅可验证卡和持卡人的合性法,而且可鉴别读写终端,即进行双向认

19、证。,3CPU卡的主要应用场合与典型产品 目前CPU卡多用于一卡多用(一卡通)及对数据安全保密性特别敏感的场合,如金融信用卡、手机SIM卡等。 CPU卡的详细内容参见第4章。本章将以存储器卡和逻辑加密卡为基础介绍接触式IC卡的芯片及接口技术。,2.4 典型存储器卡,2.4.1 AT24Cxx系列存储器卡芯片总体描述 1芯片特点 (1) 低电压/标准电压操作:1.85 V。 (2) 内部组成:1288(AT24C01),2568(AT24C02),5128(AT24C04),10248(AT24C08),20488(AT24C16)的串行EEPROM。 (3) 2线串行接口。 (4) 双向数据传

20、输协议。,(5) 支持ISO/IEC 7816-10同步协议。 (6) 8 B页面(AT24C01/02),16 B页面(AT24C04/08/16)写入方式。 (7) 自定时写入周期(最大10 ms)。 (8) 高可靠性:使用寿命为100 000次写/擦除,数据保留期为100年。 (9) 多种封装形式:提供芯片、模块及标准封装形式。,2芯片封装及引脚功能 1) 封装,图2.11 AT24Cxx触点分配图,表2.9 IC卡触点功能表,2) 引脚功能说明 SCL:串行时钟输入(Serial Clock Input)。串行时钟上升沿时,数据输入芯片(写入);串行时钟下降沿时,数据从芯片输出(读出)

21、。 SDA:串行数据(Serial DAta),双向串行传送数据。该端为漏极开路驱动,可与任意数量的其他漏极开路或集电极开路器件“线或”。 A2、A1、A0:器件/页面地址(DevicPage Addresses)。器件地址输入端,应用于标准封装中,在IC卡模块封装中不将A2、A1、A0引出到触点上,详细使用见“器件寻址”。,3逻辑结构与存储器组织,图2.12 AT24Cxx的逻辑结构,2.4.2 器件操作 1时钟和数据转换,图2.13 AT24Cxx数据的有效性时序图,1) 输出数据 当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串

22、行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。 基于MCS-51单片机的接口设备可利用如下串行输出字节子程序SHOUT来实现输出(写)一个字节数据的操作。,SHOUT: ;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器 PUSH B MOV B,#8 ;设置位计数器 L1: RLC A ;移一位到CY中 MOV SDA,C ;输出位 NOP ;保持SCL为低且使数据稳定 SETB SCL ;升高时钟 ACALL DELAY_4 s;

23、保持SCL为高,CLR SCL ;降低时钟 DJNZ B, L1 ;传送下一位 SETB SDA ;释放SDA等待应答 NOP ;保持SCL为低,保持时间tAA NOP SETB SCL ;升高ACK时钟脉冲 ACALL DELAY_4 s;保持SCL为高 MOV C, SDA ;读入ACK位 CLR SCL ;降低ACK时钟脉冲 POP B RET,2) 输入数据 当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上

24、的数据稳定,可供接口设备读取。 基于MCS-51单片机的接口设备可利用如下串行输入字节子程序SHIN来实现输入(读)一个字节数据的操作。,SHIN: ;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回时接收到的数据置于A中 SETB SDA ;使SDA为高,准备读 PUSH B MOV B,#8 ;设置位计数器 L2: NOP ;保持SCL为低且使数据稳定 NOP SETB SCL ;升高时钟,NOP ;保持SCL为高 NOP MOV C, SDA ;输入位 RLC A ;将位移入A CLR SCL ;降低时钟 DJNZ B, L2 ;传送下一位 POP

25、 B RET,2开始状态(START) SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图2.14。,图2.14 AT24Cxx开始/停止定义时序图,基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。 START: ;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高 SETB SDA ;升高SDA SETB SCL ;校验总线有效 JNB SDA, ERROR1;若SDA不为高则跳转到ER

26、ROR1 JNB SCL, BACK1 ;若SDA不为高则跳转到BACK1 NOP ;保持数据建立延迟及周期延迟,CLR SDA ;降低SDA ACALL DELAY_4 s;保持SDA为低,保持时间hold delay CLR SCL ;降低SDL CLR C ;清零错误标志 AJMP BACK1 ERROR1: SETB C ;置位错误标志 BACK1: RET,3停止状态(STOP) SCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。其停止定义时序图见图2.14。 基于MCS-5

27、1单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。,STOP: ;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高 CLR SDA NOP ;保持SCL为低及数据稳定 NOP SETB SCL ACALL DELAY_4 s;保持建立延迟 SETB SDA RET,4确认应答(ACK) 所有地址和数据字以位码串行输入/输出EEPROM,EEPROM在收到每个地址或数据码之后,置SDA于低电平作为确认应答,该确认应答发生于第9个时钟周期,见图2.15。,图2.15 AT24Cxx确认应答时序图,在串行输出字节子程序SHOUT中我

28、们可以清楚地看到,当接口设备向卡发送完8位数据后,程序将产生第9个时钟脉冲并将SDA线读入CY位,此时CY位的状态即为卡响应状态。当CY=1时表示卡尚未接收到数据,不能进行下一步的操作;当CY=0时表示卡已接收到数据,可以进行下一步的操作。,5待机模式 AT24Cxx的特性之一是具备待机模式,这一模式当电源掉电;接收到STOP位或完成任何一个内部处理之后有效。 6存储器复位 当电源掉电、系统复位或协议中断时,任何一个2线的部分都可通过以下步骤复位: (1) 9个时钟周期之后; (2) 在每个时钟周期当SCL为高时等待SDA为高; (3) 产生一个START状态。,2.4.3 器件寻址 以上AT

29、24系列EEPROM在紧接着开始状态后均需一个8位器件地址(Device Address),如图2.16所示,以使器件能够进行读/写操作。 器件地址高4位为1010,这对所有器件都是相同的。 在标准封装中,接下来的3位器件寻址码将因芯片容量的不同而有不同的定义: 对于AT24C01/02来说,下面3位器件寻址码是A2、A1、A0,这3位必须与它们相应的硬件连线输入引脚相对应。,图2.16 AT24Cxx器件地址,对于AT24C04来说,仅用A2和A1器件寻址位,第3位是存储器页面寻址位。2个器件寻址位必须与硬件连线输入引脚相对应,A0引脚不连接。 对于AT24C08来说,仅用A2器件寻址位,下

30、面2位是存储器页面寻址。A2必须与硬件连线输入引脚相对应,A1和A0引脚不连接。 对于AT24C16来说,无器件寻址位。这3位均用于存储器页面寻址,A0、A1、A2不连接。,AT24C04/08/16的页面寻址位应被视为随后数据码寻址的最高位。 IC卡上使用的EEPROM芯片,因受尺寸限制,一般只能使用一个芯片,同时应符合国际标准,因此A2、A1、A0未引出到触点上,A2A1A0=000。 器件寻址的第8位是读/写操作选择位,该位为高电平时启动读操作,处于低电平时启动写操作。 设备寻址一经成功,EEPROM将在SDA总线上输出一个确认应答ACK;相反,则芯片回到待机状态。,2.4.4 写操作

31、1写字节(BYTE WRITE) 写字节时序见图2.17。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着给出一个8位地址码(32 KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。然后送要写的8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图2.18中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。,图2.17 AT24Cxx写字节时序图,图2.18 AT2

32、4Cxx写周期时序图,基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。 WRITE_BYTE: ;AT24Cxx写字节功能。调用前可编程的器件地址programmable address置于A中,字节地址置于寄存器ADDR_HI和ADDR_LO中,数据置于寄存器XDATA中。未等待写周期完成。返回CY为1表明总线无效或该器件无应答。占用A累加器 ACALL START JC BACK2 ;若总线无效则中断 RL A ;可编程地址左移一位 ORL A, #FADDR ;加入固定器件地址 CLR ACC.0 ;设置写,建立器件地址,ACALL SHOUT

33、 ;发送器件地址 JC ERROR2 ;若无应答则中断 MOV A, ADDR_HI ;发送字节地址的高8位 ACALL SHOUT JC ERROR2 ;若无应答则中断 MOV A, ADDR_LO ;发送字节地址的低8位 ACALL SHOUT JC ERROR2 ;若无应答则中断 MOV A, ADATA ;取数据 ACALL SHOUT ;发送数据 JC ERROR2 ;若无应答则中断 CLR C ;清零错误标志,ERROR2:ACALL STOP BACK2: RET,2写页面(PAGE WRITE) AT24C01/02可以进行8 B页面写入,AT24C04/08/16可以进行16

34、 B页面写入。启动写页面与启动写字节操作一样,但数据传送设备无需在第一个字节随时钟输入后发出一个停止状态;在EEPROM确认收到第一个数据码之后,数据传送设备再传送7个(对于AT24C01/02)或15个(对于AT24C04/08/16)数据码;每收到一个数据,EEPROM都将通过SDA回送一个确认应答信号,最后数据传送设备通过“停止”状态终止写页面操作,其过程见图2.19。,图2.19 写页面时序图,数据地址的低3位(对于AT24C01/02)或4位(对于AT24C04/08/16)在收到每个数据字后,在芯片内部自动加1。数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEP

35、ROM中的数据字超过8(对于AT24C01/02)或16(对于AT24C04/08/16),数据字地址将“滚动覆盖”,以前写入的数据将被覆盖。 基于MCS-51单片机的接口设备可利用如下写块子程序WRITE_BLOCK来实现写页面操作。,WRITE_BLOCK: ;向AT24Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_HI和ADDR_LO中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0) AC

36、ALL START JC BACK3 ;总线无效则中断 RL A ORL A, #FADDR ;生成器件地址,CLR ACC.0 ;定义写操作 ACALL SHOUT ;发送器件地址 JC ERROR3 ;无应答则中断 MOV A, ADDR_HI ;发送字节地址高8位 ACALL SHOUT JC ERROR3 ;无应答则中断 MOV A, ADDR_LO ;发送字节地址低8位 ACALL SHOUT JC ERROR3 ;无应答则中断 MOV INDEX, #BUFFER ;指向数据缓冲区首地址,L3: MOV A, INDEX ;取数据 ACALL SHOUT ;发送数据 JC ERRO

37、R3 ;无应答则中断 INC INDEX ;地址指针加1 DJNZ COUNT, L3 ;下一个字节 CLR C ;清零错误标志 ERROR3: ACALL STOP BZCK3: RET,3确认查询(ACKNOWLEDGE POLLING) 一旦内定时写循环开始且禁止EEPROM输入,确认查询将被启动。当数据传送设备在送出一个“开始”状态以及紧随其后的器件地址码(读/写位代表所要进行的操作)时,只有在内定时写循环完成时,EEPROM才通过拉低SDA总线发出“确认”应答,允许读或写过程继续进行。AT24Cxx系列存储器芯片的内定时写周期(tWR)最大为10 ms,因此,每完成一个写操作,应延时

38、约10 ms或查询SDA总线重新为低时才能发出下一个操作的开始命令,否则下一次操作命令将不被器件接收、执行。,2.4.5 读操作 1现行地址读(CURRENT ADDRESS READ) 内部数据字地址指针总是保持最后一次读/写操作中最后访问的地址,并按“1”递增。只要芯片保持上电,该地址在两次操作之间一直保持有效。如果最后一个操作是在地址n处读取,则现行地址是n+1;如果最后一个操作是在地址n处写入,则当前地址也是n+1。在出现“滚动覆盖”的情况时,读操作的地址是从最后一页的最后一个字节滚动覆盖到第一页的第一个字节,而写操作的地址是从当前页的最后一个字节滚动覆盖到同一页的第一个字节。,图2.

39、20 现行地址读时序图,一旦读/写选择位置于1,器件地址随时钟输入,并收到EEPROM的确认应答,现行地址的数据码随时钟被EEPROM串行输出。此时数据传送设备(微控制器)可在SDA线上随时钟串行读入数据。读取数据结束后,微控制器不是通过确认(低电平ACK)来应答,而是使总线处于高电平(NO ACK),随后产生一个停止状态,见图2.20。 基于MCS-51单片机的接口设备可利用如下现行地址读子程序READ_CURRENT来实现现行地址读操作。,READ_CURRENT: ;AT24Cxx现行地址读功能。调用时,器件地址的可编程地址置于A中,返回数据置于A中。返回时,CY位为1表明总线无效或器件

40、无应答 ACALL START JC BACK4 ;若总线无效则中断 RL A ORL A, #FADDR ;生成器件地址 SETB ACC.0 ;设置读操作 ACALL SHOUT ;发送器件地址 JC ERROR4 ;若无应答则中断 ACALL SHIN ;接收数据字节,ACALL NAK ;发送高电平NAK应答 CLR C ;清零错误标志 ERROR4:ACALL STOP BACK4:RET 注意: 写操作中卡接收到数据(地址、数据)后向接口设备发送低电平应答ACK,程序通过将第9个时钟周期的SDA线读入CY位来接收应答,查询CY位是否为低来判断是否收到卡确认应答。而读操作中是接口设备

41、接到数据后向卡发送高电平应答(NO ACK),该高电平应答由NAK子程序来产生。,NAK子程序: NAK: ;随时钟输出一个高电平的负应答位。调用前SCL为低,返回时SCL为低,SDA为高 SETB SDA ;NAK位 NOP ;保持SCL为低及数据稳定 NOP SETB SCL ;升高时钟 ACALL DELAY_4 s ;保持SCL为高 CLR SCL ;降低时钟 RET,2随机地址读(RANDOM ADDRESS READ) 随机读取需要一个“空”字节写序列来载入数据地址,一旦器件地址(读/写选择位置低)和数据地址随时钟输入,并被EEPROM确认,传送设备必须产生另一个开始状态。此时送出

42、的器件地址中读/写选择位处于高电平,将启动一个现行地址读,EEPROM收到器件地址后回送确认应答,并随时钟串行输出数据码,微控制器读取数据后不通过确认应答,而是使SDA总线处于高电平,随后产生一个停止状态,见图2.21。 基于MCS-51单片机的接口设备可利用如下随机地址读子程序READ_RANDOM来实现随机地址读操作。从程序中可以看到,在完成了一个“空”写之后,直接调用上面给出的现行地址读子程序就可以实现随机地址读操作了。,图2.21 随机地址读时序图,READ_RANDOM: ;AT24Cxx随机地址读功能。调用时器件地址的可编程地址置于A中,字节地址置于寄存器ADDR_HI和ADDR_

43、LO中,返回数据置于A中。返回时CY位为1表明总线无效或器件无应答 PUSH B MOV B, A ;可编程器件地址暂存B中 ;*发送空写命令来设置内部地址* ACALL START JC BACK5 ;总线无效则中断 RL A ORL A, #FADDR ;生成器件地址,CLR ACC.0 ;设置写操作 ACALL SHOUT ;发送器件地址 JC ERROR5 ;无应答则中断 MOV A,ADDR_HI ;发送字节地址高8位 ACALL SHOUT JC ERROR5 ;无应答则中断 MOV A, ADDR_LO ;发送字节地址低8位 ACALL SHOUT JC ERROR5 ;无应答则

44、中断 ;*调用现行地址读功能*,MOV A, B ;取可编程器件地址 ACALL READ_CURRENT AJMP BACK4 ;退出 ERROR5: ACALL STOP BACK5: POP B RET,3顺序读(SEQUENTIAL READ) 顺序读取由现行读或随机地址读启动。微控制器收到一个数据码之后回送“确认”应答,只要EEPROM收到“确认”之后,便会继续增加数据地址并随时钟串行输出后面的数据。当达到存储地址极限时,数据地址将重复滚动,顺序读取将继续;当终止顺序读操作时,微控制器不产生低电平确认信号,而是使SDA总线处于高电平应答,随后产生一个停止状态。顺序读时序图见图2.22

45、。,图2.22 顺序读时序图,基于MCS-51单片机的接口设备可利用如下读块子程序READ_BLOCK来实现顺序读操作。 READ_BLOCK: ;从AT24Cxx读一页数据。当读出超过一个字节时执行由随机地址读扩展而来的顺序读。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_HI和ADDR_LO中,字节计数器置于寄存器COUNT中。返回时数据置于BUFFER中。返回时CY为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:COUNT为字节计数器,可使用工作寄存器R1),;*发送空写命令来设定第一个字节的地址* ACALL START JC BACK6 ;若

46、总线无效则中断 RL A ORL A, #FADDR ;生成器件地址 MOV INDEX, A ;暂存器件地址于INDEX CLR ACC.0 ;设置写操作 ACALL SHOUT ;发送器件地址 JC ERROR6 ;若无应答则中断 MOV A, ADDR_HI ;发送字节地址高8位 ACALL SHOUT JC ERROR6 ;若无应答则中断 MOV A, ADDR_LO ;发送字节地址低8位 ACALL SHOUT JC ERROR6 ;若无应答则中断,;*发送读命令及接收数据* ACALL START ;第二次开始启动读操作 JC ERROR6 ;若总线无效则中断 MOV A,INDE

47、X ;从INDEX中取器件地址 SETB ACC.0 ;设置读操作 ACALL SHOUT ;发送器件地址 JC ERROR6 ;若无应答则中断 MOV INDEX, #BUFFER;指向数据缓冲区首地址 L6: ACALL SHIN ;接收数据字节 MOV INDEX, A ;保存数据 CJNE COUNT, #1, NEXT;不是最后一个字节则继续 ACALL NAK ;读完发送NAK应答 AJMP DONE ;完成,NEXT: ACALL ACK ;发送ACK应答字节 INC INDEX ;数据缓冲区地址加1 DJNZ COUNT, L6 ;读下一个字节 DONE: CLR C ;清零错

48、误标志 ERROR6: ACALL STOP BACK6: RET,注意: 写操作中卡接收到数据后向接口设备发送低电平应答ACK,程序通过将第9个时钟周期的SDA线读入CY位来接收应答,查询CY位是否为低来判断是否收到卡确认应答。而顺序读操作中接口设备每接到一个字节的数据后向卡发送低电平应答ACK,该低电平应答由ACK子程序来产生。,ACK子程序: ACK: ;随时钟输出一个低电平应答位。调用前SCL为低。返回时,SCL、SDA为低 CLR SDA ;应答位 NOP ;保持SCL为低及数据稳定 NOP SETB SCL ;升高时钟脉冲 ACALL DELAY_4 s ;保持SCL为高 CLR

49、SCL ;降低时钟脉冲 RET,2.5 实训2:接触式存储器卡的操作控制,1实训目的 (1) 进一步理解和掌握AT24Cxx系列存储器卡的操作时序。 (2) 掌握接触式IC卡接口电路的原理与设计、制作方法。 (3) 掌握按操作时序编写和调试卡操作(读/写)控制程序的方法。,2实训设备与器件 (1) 实训设备:通用接触式IC卡读写器及其DEMO软件,586电脑,5 V稳压电源,MCS-51系列单片机仿真系统。 (2) 实训器件:AT24C01卡,接触式IC卡卡座,PNP三极管9012,10 k电阻3个,1.2 k电阻1个,40脚IC座。 (3) 实训电路: 接触式存储器卡接口电路如图2.23所示。其中接口设备MCU选用AT89C51单片机,SMARTADP为接触式IC卡卡座,AT89C51的P1.0、P1.1分别通过卡座接AT24C01卡的串行数据端SDA和串行时钟

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1