大容量串行Flash的快速编程.doc_第1页
大容量串行Flash的快速编程.doc_第2页
大容量串行Flash的快速编程.doc_第3页
大容量串行Flash的快速编程.doc_第4页
大容量串行Flash的快速编程.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大容量串行Flash的快速编程夏礼智,应立军 (中南大学 铁道校区 湖南 长沙 410075)来源:中电网,WWW。CHINAECNET。COM串行Flash存储器具有体积小、功耗低、管脚少、掉电不丢失数据等诸多优点,在IC卡和便携式智能检测仪表中广泛的应用。而在这类芯片中ATMEL公司生产的AT45D041存储容量较大(4Mb),因而在某些要求大容量存储数据的场合具有重要的应用价值,主要用于存放一些保密性要求不高、数据量极大的数据,如声音、图像或采集数据等。他们大都是SPI接口,对他们的通讯,通常采用带SPI通讯协议的微处理器。但有些单片机没有SPI接口,如51系列的单片机,通常采用IO端口模拟SPI接口,此方法对速度要求不高的场合还可以使用,但程序编制比较复杂。本文将介 绍一种通过51系列单片机的串行口与AT45D041芯片通讯的方法,此方法不仅编程简单,且运行速度高,是一种值得推荐的编程方法。 1 AT45D041的工作原理AT45D041是具有4 325 376位的大容量存储器,他们被分成2 048页(对应地址为PAl0一PA0),每页264B(对应地址BA8BA0)。这些存储器被称之为主存储器,此外AT45D041还有2个264 B的缓冲区Bufferl和Buffer2,当主存储器的某页正在被使用时,这2个缓冲区允许接收数据。当片选CS有效时,数据的传输在时钟信号SCK的同步下,通过SI(输入)和SO (输出) 进行。其原理框图如图1所示。表1为包含AT45D041芯片IC卡管理定义。 AT45D041的最大工作频率可达10MHz,工作电压为5 V10,工作最大电流读为25 mA,写为50 mA,数据保持可达100年,工作温度为070,根据要求可超过指定工作温度,通讯协议为SPI串行接口方式0和方式3。2 AT45D041与AT89C55的接口由于AT45D041只有一个管脚进行命令、数据的输入和数据的输出,其命令和数据都是串行输入的,工作时序图如图2所示。从图2可以看出,输入数据时,SCK的上升沿前后一段时间分别为建立时间tsu (10 ns)和保持时间tH (25 ns),输入接口应在SCK上升前tsu时段内将数据准备好,并在其后的tH时段内保持该数据。输出数据时,SO仅在SCK下降沿rv (80 ns)时间后有信号输出,并在下一个时钟下降沿到来时消失(tHo0),接口电路应在有效输出时间内读取数据。 51系列的单片机都具有至少一个全双工串行接口,他支持4种工作方式,这里采用方式0,作为移位寄存器输入输出。其工作时序图如图3所示。串行口以振荡频率的112波特率接收和发送数据,RXD为串行数据输入输出端,TXD为同步移位信号输出端。 本系统采用AT89C55单片机芯片实现与AT45B041的接口,负责传感器信号的采集、存储与读取及显示,其硬件接口电路图如图4所示。图4中P1.0接IC卡的CS信号,P1.1接RB信号,P1.2接RST信号,IC卡的SCK接单片机的TxD,SI和SO接在一起与单片机的RxD相连。P0口接AD(模数转换)芯片和LCD(液晶显示屏),P2口接键盘。 工作原理是,AD采样数据一方面通过单片机直接存入IC卡,另一方面通过计算显示在液晶屏上。系统的采样速度要求达到1kHz,这对于12MHz主频的AT89C55单片机速度要求很高,这就要求花在存储方面的时间尽量少。因系统不需要与外界通信,单片机的串口闲置,这样,可以考虑利用单片机的串口,来提高存储速度。由于AT45D041只支持SPI通讯的模式0和3,而AT89C55单片机支持移位寄存器输入输出工作方式。这样可以把AT45D041当作移位寄存器来操作。但51系列单片机的串口都是先输出低位,后输出高位。这与AT45D041的定义正好相反。为此在通过UART输出数据之前必须将其进行转换。当然,通过查表可以解决这一难点。3 单片机编程下面以一个检测IC卡状态的C语言程序来说明对这种存储器的编程方法。(关于AT45D041存储器的操作时序及命令,参阅AT45D041的器件说明书。) 定义查表矩阵 unsigned char code concode256= 0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0,0x10, 0x90,0x50,0xd0,0x30,0xb0,0x70,0xf0, . . 0x0f,0x8f,0x4f,0xcf,0x2f,0xaf,0x6f,0xef,0xlf,0x9f,0x5f,0xdf,0x3f,Oxbf,0x7f,Oxff; 检查IC的有效性函数bit testcard(void) unsigned char tmp; cs450; SCON=0; SBUF=concode0x57; 读状态寄存器命令为0x57 while(!TI); SCON=0x10; while(!RI); tmp=concodeSBUF; tmp内为状态寄存器值 cs45=1 if(tmp&0x38)=0x18) return (0); 是AT45d041卡,返回0 return(1); 不是AT45d041卡,返回1 AT45D041芯片的状态寄存器结构如下:位7为0表示忙;为1表示闲,可以接收下一条指令。 位6为0表示主存储区数据与缓存区比较匹配,否则为不匹配。 位5、位4、位3对于AT45D041为011”(二进制)。4 总体性能评价在此系统中,单片机需采样8路12位信号,并把他们保存在数据IC卡中。只需带回IC卡,通过IC卡读写器把数据读入计算机,便可以进行数据的离线处理、分析。可以看出,仅采用几个廉价芯片,便组成一个性能可观的数据采集系统。 从以上程序可以看出,数据传送的速率基本上与单片机的机器周期相同。而通过以前的IO端口模拟SPI端口的操作中,数据传送的速率最大不到机器周期的13。另外,在串口传送数据的过程中,CPU还可以同时进行其他的指令。总体性能要比采用IO端口模拟SPI端口的操作快上4倍以上。 在以上的快速数据采集系统中,花在存储方面的时间相对很少,这样,一方面数据采集的速率可以提高;另一方面单片机有充足的时间计算、分析数据,处理LCD显示,键盘中断等。减少存储所花的时间,对整体性能的提高有着显著的意义。 当然,采用以上方式操作SPI口,需要对所操作的芯片的操作时序比较了解,如果操作失误,可能产生线路冲突(单片机和SPI口同时输出)。这样虽然对器件没有多大的损害,因为芯片端口都有保护电路。当然最好是采用带有SPI端口操作的单片机,这里是对某些情况下不得已采用的方法,也有一定的实用价值。AT45D系列SPI接口FLASH存储器1 概述在目前所有的非易失性存储器(PROM、EPROM、EEPROM和Flash)中,唯有Flash存储器几乎拥有现今讲究个性化的用户所需的所有特点,它具有掉电数据不丢失、快速数据存取速度、电可擦除、容量大、在线可编程、价格低廉以及足够多的擦除、容量大、在线可编程、价格低廉以及足够多的擦写次数(一百万次)和较高的可靠性等诸多优点,因而已为新一代嵌入式应用(如数字相机和MP3 播放机)的首选存储器。现在FLASH的成本已低于PROM/EPROM,可以肯定,它将很快占邻PROM/EPROM市场,MASK(掩膜)ROM尽管在大指生产时具备一定的价格优势,但其升级不便的弱点将随着今后FLASH成本的进一步降低,而使得MASK ROM的前景并不乐观。ATMEL生产的Flash AT45系列中的AT45D041为单5V供电的SPI接口器件,其封装形式有PLCC、TSOP和SOIC三种,图1给出了该器件采用SOIC封装形式的管脚排列和说明。AT45D041 的内部结构如图2所示。该器件有2048页(每页264字节)内存(Flash Memory,也叫主存Main Memory)和两具Buffer(每个Buffer为264字节的SRAM)组成。数据可以直接写入闪存,也可以选写入Buffer,然后再将 Buffer的数据整个复制到闪存的某一天,也可以在闪存正处于编程时(页编程时间典型值7ms)将数据写入Buffer。以下是该器件的一些特点:一页主存传送到Buffer的典型时间为80s;有效电流的典型值为15mA,空闲电流为20A;最大时钟频率为10MHz;具有硬件擦、写保护功能,当WP脚为低时,前256页钭禁止编程。输入输出与CMOS和TTL电平兼容;具有商业和工业两种温度范围;可单周期重编程(包括擦除和编程);带有串行接口,读写操作时地址会自动增1;复位时将终止正在进行的操作,当复位管脚恢复高电平时,操作也可以恢复;传送数据时,高位(MSB)在前。2 操作命令介绍对AT45D041的操作一共有18条命令,表1所列为AT45D041的操作命令集。其中:表1 AT45D041的操作命令集读主存52HrrrPA10PA0BA8BA032个读Buffer154H11个BFA8BFA08个读Buffer256H11个BFA8BFA08个主存传送到Buffer153HrrrrPA10PA09个主存传送到Buffer255HrrrrPA10PA09个主存与Buffer1比较60HrrrrPA10PA09个主存与Buffer2比较61HrrrrPA10PA09个写Buffer184H11个BFA8BFA0写Buffer287H11个BFA8BFA0带擦除的Buffer1传送到存83HrrrrPA10PA09个带擦除的Buffer2传送到主存86HrrrrPA10PA09个不带擦除的Buffer1传送到主存88HrrrrPA10PA09个不带擦除的Buffer2传送到主存89HrrrrPA10PA09个Buffer1为缓冲对主存编程82HrrrrPA10PA0BA8BA0Buffer2为缓冲对主存编程85HrrrrPA10PA0BA8BA0Buffer1为缓冲自动重编程28HrrrrPA10PA09个Buffer2为缓冲自动重编程59HrrrrPA10PA09个读状态寄存器 57Hr为保留位,AD45D041用0代替,容量更大的器件一般可能会用到;为无关位(0或1均可,为了占时钟位);PA10PA0用来指定页地址,对AT45D041而言,一共有2048页,占11位;BA8BA0用来指定内字节的起始地址,每页264字节,占9位;BFA8BFA0用来指定缓冲区内字节的起始地址,缓冲区也是264字节;52H61H、82H-89H分别是用来区别不同操作的命令字。 执行命令时,首先通过SPI串口往Flash发送一连串的数据,然后以命令字开头,除了“读状态寄存器”外,后面还要跟上页地址和页内的字节地址发及一些无关位。“读主存”时,首先需要往Flash发送64bit的命令,即:命令字52(8bit)+4个“r”+页地址(11bit)+页内字节的起始地址(9bit)+32个无关位,发送完这64bit(通常是组合成8个字节)命令后,紧跟着从Flash读数据以可以了(即后面的SCK信号使得数据从SO 脚移出),每读出一个字节,字节地址自动加1,如遇到该页的末尾,只要有SCK信号,系统再加到该页的开关处读数据。在整个操作过程中,CS脚始终为 “0”;当CS脚回到“1”时,将终止此次操作,SO脚恢复到高阻状态。 主存传送到Bufferx是指将2048页主存中的任何一页(由PA10PA0决定)的内容复制到缓冲区,发送完32bit命令后,当CS脚由“0”为“1”后,数据的复制才真正开始。主存与Bufferx的比较主要是看主存中的某一页与缓冲区是否一样,当CS脚回到“1”后,比较才开始进行,比较的结果(是否一样)记录在状态寄存器的bit6中。把带擦除的Bufferx传送到主存就是将缓冲区的内容复制到主存中的某一页,复制前应将缓冲区的内容复制到主存中的某一页,复制前应将主存中的该页数据全部擦掉,所有这些操作只有等到CS脚回到“1”后才能进行。对于不带擦除的Bufferx传送到主存的操作,在命令执行前,指定的主存页必须已被擦除过。以Bufferx 为缓冲为主存编程就是将“写Bufferx”与“带擦除的Bufferx传送到主存”进行组合。在发送完命令后,写入Flash的数据将被写入到缓冲区内,如果遇到缓冲区末尾,要继续写入的数据又从缓冲区开头写入,直到CS脚由“0”到“1”后,主存中被指定的页的数据被擦除后再将缓冲区的数据整个复制到主存的指定页中。3 状态寄存器及操作完成指示一般向Flash发送57H后以可读出状态寄存器(移出时,高位在前),状态寄存器的位定义如表2所列。其中Bit7为“0”表示器件忙,为“1”表示可以接收新的命令;Bit6是比较结果位,为“0”表示主存与缓冲区的数据一样,为“1”时表示最少有一个bit不同;Bit5Bit3为该系列器件的容量指示位,一共种8种容量,对于AT45D041来说,该区域为“011”;Bit2Bit0未使用。一共蛾6种操作会使器件处于“忙”状态,这6种操作是:主存传送到Bufferx;主存与Bufferx比较;带擦除的Bufferx传送到主存;不带擦除的Bufferx传送到主存;Bufferx为缓冲对主存编程;Bufferx为缓冲自动重编程。这6种操作均需要监视状态寄存器,以便知道操作是否完成。除了监视状态寄存器外,更好的方法是将芯片管脚RDY/BUSY与CPU的某个中断相连,并将中断设置为升沿触发,操作一完成即可触发中断,这样可能节省大量的CPU时间。4 SPI接口及应用4.1 SPI接口串行外围接口一共有4种操作模式,图3为其时序图。这些操作模式决定了传送与接收的时钟相位和极性,换句话说,也就是这些模式决定了利用时钟信号的哪个沿来控制数据传判断的方向。这些模式一般由主机(CPU)来设置。当CPOL=0时,时钟信号SCK在空闲时为“0”,即模式0和1;如果CPOL=1,则SCK在空闲时为“1”,即模式2和3;当CPHA=CPOL时,数据总在时钟信号的上升沿移进Flash,下降沿移出Flash,即模式0和3。4.2 SPI接口应用对于12位的数据采集系统,使用AD公司的Flash集成MCU芯片AduC812可使电路设计更加简单快捷。由于AduC812有一个与I2C兼容的 SPI接口,所以与AT45系列的Flash接口只需将相应的管脚相连即可,只不过要将AduC812设为主机,而AT45D041自然以是从机了。在 AduC812中有SPI控制寄存器(SPICON)与SPI数据寄存器(SPIDAT),数据寄存器的使用如同使用RS232的Buffer一样简单,控制寄存器的位定义如表3所列。现对其各个位定义进行说明:ISPI:SPI中断位,在每次传送过错SPIDAT中的数据后,置“1”;WCOL:写冲突错误标志位,在写保护状态下编程会导致该位置“1”;SPE:SPI允许控制位,为“0”时禁止;SPIM:主从模式选择位,为“1”时选择主机;CPOL:时钟极性选择,为“0”时,将使CLK在空闲时为低电平;CPHA:时钟相位选择,为“0”时,在时钟上升沿被锁存;SPR1、SPR0:SPI波特率选择位,BITRATE=Fose/4,8,32,64。“00”选择除以4。4.3 SPI操作模式选择AT45 系列的Flash支持SPI模式0和3,并且在每个CS信号的下降沿,可通过采样时钟信号的状态自动选择操模式。由于在上电或复位时器件将自动进入缺省的模式3,所以使用械比较可靠。在AduC812的应用中,选择模式0和3对“写”Flash没有差别,但在“读”Flash时,选择模式0会使从 Flash读出的数据总缺少一个bit,这可能是模式0中数据有效的时间比较靠后的缘故。图4和图5分别是模式0和模式3的“读主存”时序图,由时序图可以看出:模式0中数据的有效时间明显比模式3的有效时间靠后半个时钟周期。表2 状态寄存器的位定义Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDY/BUSYCOMP011表3 SPI控制寄存器的位定义Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0ISPIWOOLSPESPIMCPOLCPHASPR1SPR0铁电存储器的技术原理铁电存储器(FRAM)能兼容RAM的一切功能,并且和ROM技术一样,是一种非易失性的存储器。铁电存储器在这两类存储类型间搭起了一座跨越沟壑的桥梁一种非易失性的RAM。 相对于其它类型的半导体技术而言,铁电存储器具有一些独一无二的特性。传统的主流半导体存储器可以分为两类-易失性和非易失性。易失性的存储器包括静态存储器SRAM(static random access memory)和动态存储器DRAM(dynamic random access memory)。 SRAM和DRAM在掉电的时候均会失去保存的数据。 RAM 类型的存储器易于使用、性能好,可是它们同样会在掉电的情况下会失去所保存的数据。 非易失性存储器在掉电的情况下并不会丢失所存储的数据。然而所有的主流的非易失性存储器均源自于只读存储器(ROM)技术。正如你所猜想的一样,被称为只读存储器的东西肯定不容易进行写入操作,而事实上是根本不能写入。所有由ROM技术研发出的存储器则都具有写入信息困难的特点。这些技术包括有EPROM(几乎已经废止)、EEPROM和Flash。 这些存储器不仅写入速度慢,而且只能有限次的擦写,写入时功耗大。铁电存储器能兼容RAM的一切功能,并且和ROM技术一样,是一种非易失性的存储器。铁电存储器在这两类存储类型间搭起了一座跨越沟壑的桥梁-一种非易失性的RAM。当一个电场被加到铁电晶体时,中心原子顺着电场的方向在晶体里移动。当原子移动时,它通过一个能量壁垒,从而引起电荷击穿。内部电路感应到电荷击穿并设置存储器。移去电场后,中心原子保持不动,存储器的状态也得以保存。铁电存储器不需要定时更新,掉电后数据能够继续保存,速度快而且不容易写坏。铁电存储器技术和标准的CMOS制造工艺相兼容。铁电薄膜被放置于CMOS基层之上,并置于两电极之间,使用金属互连并钝化后完成铁电制造过程。Ramtron 公司的铁电存储器技术到现在已经相当的成熟。最初的铁电存储器采用两晶体管/两电容器(2T/2C)的结构,导致元件体积相对过大。最近随着铁电材料和制造工艺的发展,在铁电存储器的每一单元内都不再需要配置标准电容器。Ramtron新的单晶体管/单电容器结构可以像DRAM一样,使用单电容器为存储器阵列的每一列提供参考。与现有的2T/2C结构相比,它有效的把内存单元所需要的面积减少一半。新的设计极大的提高了铁电存储器的效率,降低了铁电存储器产品的生产成本。Ramtron公司同样也通过转向更小的技术节点来提高铁电存储器各单元的成本效率。最近采用的0.35微米的制造工艺相对于前一代0.5微米的制造工艺,极大的降低了芯片的功耗,提高了单个晶元的利用率。所有这些令人振奋发展使铁电存储器在人们日常生活的各个领域广为应用。从办公室复印机、高档服务器到汽车安全气囊和娱乐设施,铁电存储器不断改进性能在世界范围内得到广泛的应用。(全文结束)ATMEL接触式IC卡及开发实例目 录 第一章 几种常见的ATMEL接触式IC卡的存储结构及其保密特性 2一、AT24C01A、AT24C02、AT24C04、AT24C08、AT24C16、AT24C32、AT24C64 2二、AT88SC102、AT88SC1604、AT88SC1608、AT88SC153 31AT88SC102加密卡 32AT88SC1604加密卡 53AT88SC1608加密卡 84AT88SC153加密卡 12三、AT45D041 16第二章 接触式IC卡的接口函数 19一、函数列表(函数名, 简单说明) 191通用函数 192ATMEL AT88SC102/AT88SC1604加密卡专用函数 193ATMEL AT88SC1608及AT88SC153加密卡专用函数 204ATMEL AT45D041 Flash存储卡专用函数 20二、函数说明 21附录一:卡类型预定义 29附录二:ICFOX.PLB测试例程 30第三章 接触式IC卡底层软件开发实例 31一、IC卡操作底层函数 311IC卡操作底层函数说明: 312IC卡低层通讯头文件(Base.h) 32二、AT24C64卡应用实例 321AT24C64卡函数头文件(AT24C64.h) 322AT24C64卡函数 333AT24C64卡应用例程(App24C64.c) 35 第一章 几种常见的ATMEL接触式IC卡的存储结构及其保密特性为了能够使IC卡应用到自已的系统中,系统开发公司的工程师应了解一些卡的基本技术资料,下面就ATMEL公司生产的接触式IC卡在应用中常见的和性能比较好的型号做一简单介绍,希望能对IC卡的选型及开发有所帮助。?1 AT24C01A、AT24C02、AT24C04、AT24C08、AT24C16、AT24C32、AT24C64这几个型号的IC卡为ATMEL存储卡,是一种不具备加密功能的EEPROM卡,AT24C为系列号,数字部分为K位容量,分别为1K、2K、4K、8K、16K、32K、64K位。它的使用方法与EEPROM完全相同,存储结构简单,只有读写两种操作功能,主要用于存放一些保密性要求不高的数据。AT24C系列的工作频率为1MHz(5V),1MHz(2.7V),400KHz(1.8V);工作电压为5V10%,根据要求最低可至1.8V;Icc电流读最大为1mA,写最大为3mA;写/擦除次数为100万次;数据保持100年;工作温度为070,根据要求可超过指定工作温度;通讯协议符合ISO/IEC 7816-3同步协议,双线串行接口。存储结构:AT24C系列型号的后两位数字为该型号的最大K位数(1K=1024),8位为1字节,最大字节存储容量的算法为K位数10248。如:AT24C01A的最大存储容量的110248=128,其字节地址空间为0127(16进制为0x000x7F)。下面的伪码程序在AT24C系列卡的ADDR地址开始写LEN个字节,并且读出校对。Open(AT24Cxxx)Write(ADDR,LEN,WDATA)RDATA = Read(ADDR,LEN)Close()IF WDATA = RDATA THEN 写成功 ELSE 写失败下面的伪码程序在AT24C系列卡的ADDR地址开始读LEN个字节。Open(AT24Cxxx)RDATA = Read(ADDR,LEN)Close()二、AT88SC102、AT88SC1604、AT88SC1608、AT88SC153这几个型号的IC卡为ATMEL加密卡,采用CMOS低功耗技术,具有传输代码、生产代码,密码及错误计数器、熔丝保护等安全保护功能。存储空间分成设置区和应用区两大功能区,应用区又可分为不同的分区,每个区具有各自独立的保密功能。从型号上看,AT88SC为系列号,最后一位数字为应用区分区数,分别为2、4、8、3个分区,中间的数字10、160、15为K位容量,分别为1K、16K、16K、1.5K位。其中不同应用分区另有自已的分区密码。AT88SC1604又可分为等分区卡和不等分区卡两种。1AT88SC102加密卡AT88SC102加密卡的访问时间读为2us/位,写为5ms/位;工作电压为5V10%;写/擦除次数为10万次;数据保持100年;工作温度为-2570;通讯协议符合ISO/IEC 7816-3同步协议。存储结构:存储分区 位地址 位数 字节地址 字节数FZ 厂商代码区 0-15 16 0-1 2 IZ 发行者区 16-79 64 2-9 8 SC 主密码区 80-95 16 10-11 2 SCAC 主密码错误计数区 96-111 16 12-13 2 CPZ 代码保护区 112-175 64 14-21 8 AZ1 应用区一 176-687 512 22-85 64 EZ1 一区擦除密码 688-735 48 86-91 6 AZ2 应用区二 736-1247 512 92-155 64 EZ2 二区擦除密码 1248-1279 32 156-159 4 EAC2 二区擦除密码错误计数 1280-1407 128 160-175 16 MTZ 测试区 1408-1423 16 176-177 2 注:擦、写是两种不同的操作,擦是位写1操作,写是位写0操作。修改数据时,只有先擦除才能再写数据。在熔丝熔断(FUSE2)前与熔丝熔断后它的保密特性是不同的。熔丝熔断前的保密特性:FZ:由ATMEL公司出厂时设置(FUSE1),只读不可更改。ATMEL公司可以为批量用户定制此代码,以保证卡片的唯一性。 IZ:可读。SC核对正确,IZ可以反复擦写。SC:SC核对正确时,SC可读和擦写,SC核对不正确时,SC不能读和擦写。SCAC:初始值为4,SC核对每错1次SCAC减1,SCAC等于0时,卡自毁,如果SC核对正确SCAC恢复为初始值4。SCAC永远可读。CPZ:为用户标注,用于对卡中信息操作过程的标注,永远可读,SC核对正确后可擦写。AZ1,AZ2;前2位为写读保护位,即176位为AZ1写保护位(1PR),177位为AZ1读保护位(1RD),736位为AZ2写保护位(2PR),737位为AZ2读保护位(2RD)。 SC核对正确时,AZn可读(n代表1或者2,下同),如果SC核对不正确时,nRD控制着AZn的可读性,即如果nRD=1时,AZn可读;如果nRD=0时,AZn不可读。在熔丝熔断(FUSE2)前,nPR不起作用,只要SC核对正确,AZn就可擦写,EZ1,EZ2:SC核对不正确时,EZn不能读和擦写。SC核对正确时,EZn可读和擦写。在熔丝熔断(FUSE2)前,EZn不起什么作用。EAC2:熔丝熔断(FUSE2)前,EAC2不起什么作用。MTZ:用于测试卡的擦写性能。任意条件下均可测试。熔丝熔断后的保密特性:FZ:由ATMEL公司出厂时设置(FUSE1),只读不可更改。ATMEL公司可以为批量用户定制此代码,以保证卡片的唯一性。IZ:永远可读。但熔丝熔断(FUSE2)后IZ内容被固化,IZ将永远不能再改。SC:不可读,SC核对正确时,SC可擦写,SC核对不正确时,SC不能擦写。SCAC:初始值为4,SC核对每错1次SCAC减1,SCAC等于0时,卡自毁,如果SC核对正确SCAC恢复为初始值4。SCAC永远可读。CPZ:为用户标注,用于对卡中信息操作过程的标注,永远可读,SC核对正确后可擦写。AZ1,AZ2;前2位为写读保护位,即176位为AZ1写保护位(1PR),177位为AZ1读保护位(1RD),736位为AZ2写保护位(2PR),737位为AZ2读保护位(2RD)。 SC核对正确时, AZn可读(n代表1或者2,下同),如果SC核对不正确时,nRD保护着AZn的可读性,即如果nRD=1时,AZn可读;如果nRD=0时,AZn不可读。在熔丝熔断(FUSE2)后,即使SC核对正确,也要看nPR是否为1,如果是0,AZn被写保护永远不能写。EZ1,EZ2:SC核对不正确时,EZn不能读和擦写。SC核对正确时,EZn可读和擦写。在熔丝熔丝熔断(FUSE2)后,只有EZn核对正确,才能对AZn进行擦除操作,同时不可能再对EZn进行读和擦写操作。EAC2:熔丝熔断(FUSE2)后,AZ2只有128次擦除机会,每擦1次计数减1。MTZ:用于测试卡的擦写性能。任意条件下均可测试。下面的伪码程序在AT88SC102卡完成初始化操作和在一应用区ADDR地址开始写LEN个字节,并读出校对。Open(AT88SC102)IF CheckSC(Pwd) = OK THEN 继续 ELSE 非法卡WriteCPZ(CPZ) ;可以写一些系统标识UpdateSC(NewPwd)SetZone(1)UpdateEZ(NewEZ)Erase(ADDR,LEN)Write(ADDR,LEN,WDATA)RDATA = Read(ADDR,LEN)IF WDATA = RDATA THEN 写成功 ELSE 写失败Fuse()Close()下面的伪码程序判断AT88SC102卡是否是本系统支持的卡和对一应用区ADDR地址开始的LEN个字节完成某种操作。Open(AT88SC102)ReadCPZ(CPZ) ;读出系统标识if CPZ = 系统标识 THEN 继续 ELSE 非法卡IF CheckSC(Pwd) = OK THEN 继续 ELSE 非法卡SetZone(1)RDATA = Read(ADDR,LEN)IF CheckEZ(Pwd) = OK THEN 继续 ELSE 非法卡Erase(ADDR,LEN)Write(ADDR,LEN,WDATA)RDATA = Read(ADDR,LEN)IF WDATA = RDATA THEN 写成功 ELSE 写失败Close()2AT88SC1604加密卡AT88SC1604加密卡的访问时间读为2us/位,写为5ms/位;工作电压为5V10%;写/擦除次数为10万次;数据保持10年;工作温度为070;通讯协议符合ISO/IEC 7816-3同步协议。AT88SC1604又可分为等分区卡和不等分区卡两种,它们各区和熔丝地址不一样。二、三、四应用区不等分区卡没有区密码错误计数,而等分区卡有,不等分区卡在性能上比较明显地偏重第一区。在选择AT88SC1604卡时应注意它是不等分区卡还是等分区卡。不等分区卡的存储结构:(二、三、四应用区没有区密码错误计数)存储分区 位地址 位数 字节地址 字节数FZ 厂商代码区 0-15 16 0-1 2 IZ 发行者区 16-79 64 2-9 8 SC 主密码区 80-95 16 10-11 2 SCAC 主密码错误计数区 96-103 8 12 1 CPZ 代码保护区 104-167 64 13-20 8 SC1 一区密码 168-183 16 21-22 2 S1AC 一区密码错误计数 184-191 8 23 1 EZ1 一区擦除密码 192-207 16 24-25 2 E1AC 一区擦除密码错误计数 208-215 8 26 1 AZ1 应用区一 216-9775 9560 27-1221 1195 SC2 二区密码 9776-9791 16 1222-1223 2 EZ2 二区擦除密码 9792-9807 16 1224-1225 2 E2AC 二区擦除密码错误计数 9808-9815 8 1226 1 AZ2 应用区二 9816-11863 2048 1227-1482 256 SC3 三区密码 11864-11879 16 1483-1484 2 EZ3 三区擦除密码 11880-11895 16 1485-1486 2 E3AC 三区擦除密码错误计数 11896-11903 8 1487 1 AZ3 应用区三 11904-13951 2048 1488-1743 256 SC4 四区密码 13952-13967 16 1744-1745 2 EZ4 四区擦除密码 13968-13983 16 1746-1747 2 E4AC 四区擦除密码错误计数 13984-13991 8 1748 1 AZ4 应用区四 13992-16039 2048 1749-2004 256 MTZ 测试区 16040-16055 16 2005-2006 2 FUSE 熔丝 16288-16303 最后地址 16383 2047 等分区卡的存储结构:(二、三、四应用区有区密码错误计数)存储分区 位地址 位数 字节地址 字节数FZ 厂商代码区 0-15 16 0-1 2 IZ 发行者区 16-79 64 2-9 8 SC 主密码区 80-95 16 10-11 2 SCAC 主密码错误计数区 96-103 8 12 1 CPZ 代码保护区 104-167 64 13-20 8 SC1 一区密码 168-183 16 21-22 2 S1AC 一区密码错误计数 184-191 8 23 1 EZ1 一区擦除密码 192-207 16 24-25 2 E1AC 一区擦除密码错误计数 208-215 8 26 1 AZ1 应用区一 216-4311 4096 27-538 512 SC2 二区密码 4312-4327 16 539-540 2 S2AC 二区密码错误计数 4328-4335 8 541 1 EZ2 二区擦除密码 4336-4351 16 542-543 2 E2AC 二区擦除密码错误计数 4352-4359 8 544 1 AZ2 应用区二 4360-8455 4096 545-1056 512 SC3 三区密码 8456-8471 16 1057-1058 2 S3AC 三区密码错误计数 8472-8479 8 1059 1 EZ3 三区擦除密码 8480-8495 16 1060-1061 2 E3AC 三区擦除密码错误计数 8496-8503 8 1062 1 AZ3 应用区三 8504-12599 4096 1063-1574 512 SC4 四区密码 12600-12615 16 1575-1576 2 S4AC 四区密码错误计数 12616-12623 8 1577 1 EZ4 四区擦除密码 12624-12639 16 1578-1579 2 E4AC 四区擦除密码错误计数 12640-12647 8 1580 1 AZ4 应用区四 12648-16303 3656 1581-2037 457 MTZ 测试区 16304-16319 16 2038-2039 2 FUSE 熔丝 16352-16367 最后地址 16383 2047 注:擦、写是两种不同的操作,擦是位写1操作,写是位写0操作。修改数据时,只有先擦除才能再写数据。在熔丝熔断(FUSE2)前与熔丝熔断后它的保密特性是不同的。熔丝熔断前的保密特性:FZ:由ATMEL公司出厂时设置(FUSE1),只读不可更改,不等分卡一般为0F0F,等分卡一般为7156。ATMEL公司可以为批量用户定制此代码,以保证卡片的唯一性。IZ:可读。SC核对正确,IZ可以反复擦写。SC:SC核对正确时,SC可读和擦写,SC核对不正确时,SC不能读和擦写。SCAC:初始值为8,SC核对每错1次SCAC减1,SCAC等于0时,卡自毁,如果SC核对正确SCAC恢复为初始值8。SCAC永远可读。CPZ:为用户标注,用于对卡中信息操作过程的标注,永远可读,SC核对正确后可擦写。SC1,SC2,SC3,SC4,EZ1,EZ2,EZ3,EZ4:熔丝熔断(FUSE2)前,不起什么作用。SC核对正确时,SCn、EZn可读和擦写(n代表1或2或3或4,下同),S1AC,S2AC,S3AC,S4AC,E1AC,E2AC,E3AC,E4AC:永远可读,熔丝熔断(FUSE2)前,不起什么作用。SC核对正确时,SnAC、EnAC可擦写,AZ1,AZ2,AZ3,AZ4;前2位为AZn的写读保护位,即写保护位(nPR),读保护位(nRD)。 SC核对正确时,AZn可读,如果SC核对不正确时,nRD控制着AZn的可读性,即如果nRD=1时,AZn可读;如果nRD=0时,AZn不可读。在熔丝熔断(FUSE2)前,nPR不起作用,只要SC核对正确,AZn就可擦写,MTZ:用于测试卡的擦写性能。任意条件下均可测试。 熔丝熔断后的保密特性:FZ:由ATMEL公司出厂时设置(FUSE1),只读不可更改,不等分卡一般为0F0F,等分卡一般为7156。ATMEL公司可以为批量用户定制此代码,以保证卡片的唯一性。IZ:永远可读。但熔丝熔断(FUSE2)后IZ内容被固化,IZ将永远不能再改。SC:不可读,SC核对正确时,SC可擦写,SC核对不正确时,SC不能擦写。SCAC:初始值为8,SC核对每错1次SCAC减1,SCAC等于0时,卡自毁,如果SC核对正确SCAC恢复为初始值8。SCAC永远可读。CPZ:为用户标注,用于对卡中信息操作过程的标注,永远可读,SC核对正确后可擦写。 SC1,SC2,SC3,SC4:不可读,SC核对正确时,SCn可校对,SC核对不正确时,SCn不能校对。SCn核对正确时,SCn可擦写。S1AC,S2AC,S3AC,S4AC:初始值为8,SCn核对每错1次SnAC减1,SnAC等于0时,n区自毁,如果SCn核对正确SnAC恢复为初始值8。SnAC永远可读。EZ1,EZ2,EZ3,EZ4:不可读,SCn核对正确时,EZn可校对,SCn核对不正确时,EZn不能校对。EZn核对正确时,EZn可擦写。E1AC,E2AC,E3AC,E4AC:初始值为8,EZn核对每错1次EnAC减1,EnAC等于0时,n区自毁,如果EZn核对正确EnAC恢复为初始值8。EnAC永远可读。AZ1,AZ2,AZ3,AZ4;前2位为AZn的写读保护位,即写保护位(nPR),读保护位(nRD)。 SCn核对正确时,AZn可读,如果SCn核对不正确时,nRD控制着AZn的可读性,即如果nRD=1时,AZn可读;如果nRD=0时,AZn不可读。EZn核对正确时,AZn可擦, EZn核对不正确时,Azn不可擦。在熔丝熔断(FUSE2)后,即使SCn核对正确,也要看nPR是否为1,如果是0,AZ被写保护永远不能写。同时不可能再对EZ1进行读和擦写操作。MTZ:用于测试卡的擦写性能。任意条件下均可测试。下面的伪码程序在AT88SC1604卡完成初始化操作和在一应用区ADDR地址开始写LEN个字节,并读出校对。Open(AT88SC1604)IF CheckSC(Pwd) = OK THEN 继续 ELSE 非法卡WriteCPZ(CPZ) ;可以写一些系统标识UpdateSC(NewPwd)SetZone(1)UpdateSC(NewPwd)UpdateEZ(NewEZ)Erase(ADDR,LEN)Write(ADDR,LEN,WDATA)RDATA = Read(ADDR,LEN)IF WDATA = RDATA THEN 写成功 ELSE 写失败Fuse()Close()下面的伪码程序判断AT88SC1604卡是否是本系统支持的卡和对一应用区ADDR地址开始的LEN个字节完成某种操作。Open(AT88SC1604)ReadCPZ(CPZ) ;读出系统标识if CPZ = 系统标识 THEN 继续 ELSE 非法卡IF CheckSC(Pwd) = OK THEN 继续 ELSE 非法卡SetZone(1)RDATA = Read(ADDR,LEN)IF CheckSC(Pwd) = OK THEN 继续 ELSE 非法卡IF CheckEZ(Pwd) = OK THEN 继续 ELSE 非法卡Erase(ADDR,LEN)Write(ADDR,LEN,WDATA)RDATA = Read(ADDR,LEN)IF WDATA = RDATA THEN 写成功 ELSE 写失败Close()3AT88SC1608加密卡如果说AT88SC1064是在AT88SC102、AT24C16的基础上作了一些改进的话,那么AT88SC1608则是接触式IC卡的一次成熟稳定的飞跃,在一卡多用上更能体现它的长处,它的保密性能强,读写速度快,无需先擦除就可以进行写操作。AT88SC1608加密卡时钟频率为1MHz,支持页写方式(16字节/页),如果以页写方式访问的话,访问时间为10ms(最大)/页;工作电压为2.7V5.5V;写/擦除次数为10万次;数据保持100年;工作温度为070;通讯协议符合ISO/IEC 7816-3同步协议。尤其是AT88SC1608加密卡的高保密性能十分突出,除了带加密逻辑,还具有高保密认证及反截取跟踪技术,64位相互认证及认证错误计数器,错误计数8次。AT88SC1608具有1个128字节设置区和8个256字节应用分区,8个区可以自由合并,分别受读密码、写密码(16套密码、各3个字节)控制,错误计数8次。AT88SC1608共有17408位(2176字节)存储空间,其中前16K位(2K字节)为应用区,后1K位(128字节)为设置区。存储结构:(字节地址以16进制表示)存储分区 $0 $1 $2 $3 $4 $5 $6 $7 地址应用分区0(User0) 256字节 $000应用分区1(User1) 256字节 $100应用分区2(User2) 256字节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论