课件:ARM嵌入式接口技术应用》第三章存储器.ppt_第1页
课件:ARM嵌入式接口技术应用》第三章存储器.ppt_第2页
课件:ARM嵌入式接口技术应用》第三章存储器.ppt_第3页
课件:ARM嵌入式接口技术应用》第三章存储器.ppt_第4页
课件:ARM嵌入式接口技术应用》第三章存储器.ppt_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

,第三章 存储器件,一、存储器概述 二、EEPROM存储器件 三、SRAM存储器件 四、Nor-Flash存储器件 五、Nand-Flash存储器件 六、附录 - Nor-Flash与Nand-Flash比较, ,一、存储器件概述,存储器的重要性 存储器是嵌入式系统的主要组成部分,运行的程序需要存储器,处理数据需要存储器,存储数据也需要存储器。没有存储器,系统无法工作。,存储器的种类 只读存储器 (简称ROM) ROM是一种非易失性的存储器,即在电源被关掉之后也不会丢失数据的。 随机访问存储器 (简称RAM) RAM是一种易失性的存储器,即在电源被关掉之后数据会丢失。, ,1.1存储器ROM,ROM的种类很多,一般分为以下5种:,1只读存储器( ROM ) 2可编程ROM (PROM) 3电可编程ROM ( EPROM) 4电可擦除可编程ROM ( EEPROM) 5闪存(Flash Memory), ,1.2 随机访问存储器RAM,与ROM相比,RAM具有如下一些优点: 1、读取速度比ROM快 2、写入数据跟从RAM读出的速度一样。, ,二、EEPROM存储器件,EEPROM的种类很多,它们大致可分为以下3种: 并行EEPROM 串行EEPROM 加密型EEPROM,EEPROM概述, ,1.1 CAT24WC16介绍,CAT24WC16是CATALYST公司生产的EEPROM,同系列还有CAT24WC02、CAT24WC04、CAT24WC08、CAT24WC32等。 CAT24WC16的存储空间 内部总共有128页,每一页为16字节(byte),每一字节为8位(bit),共有2K个存储字节单元(即16K比特位)。 CAT24WC16的其他特性 1.8 到6.0 伏工作电压范围。 16字节页写缓冲器。 与400KHz的I2C总线兼容,符合双向数据传输协议。 具有硬件写保护和软件数据保护功能。 自动定时擦写周期。, ,引脚说明, ,(注意:I2C是个漏极开路的接口,需要外接上拉电阻),电路连接, ,1.2 CAT24WC16工作时序,1. 起停信号 起始信号: 时钟线SCL保持高电平期间,数据线SDA电平发生从高到低的跳变。 停止信号: 时钟线SCL保持高电平期间,数据线SDA电平发生从低到高的跳变。 2. 设备选址 3. 应答信号 4. 写操作 5. 读操作, ,设备选址,主器件发送1个起始信号启动发送过程,然后发送寻址的从器件地址。 8位从器件地址的高4位固定为1010,接下来3位(A10、A9、A8)为从器件的地址位。R/W为读写控制位。 CAT24WC16监测总线当其地址与发送的从地址相符时发出1个应答信号, CAT24WC16根据读写控制位的状态准备读写操作。, ,应答信号,在SCL时钟线上的第9个时钟周期将SDA线拉低就表示一个应答信号。 I2C总线每成功传送1Byte,接收器都必须产生1个应答信号。 CAT24WC16在接收到起始信号和从器件地址之后也要产生应答信号。 如果该器件工作于读模式时,在发送1个8位数据后释放SDA线并等待1个应答信号。, ,写操作,写操作分为“字节写”和“页写” 。 在“字节写”操作模式下,主器件首先给从器件发送起始信号和从器件地址信息,在从器件送回应答信号后,然后主器件再发送一字节的地址信息到CAT24WC16地址指针,主器件在收到从器件的应答信号后,最后发送1Byte的数据到被寻址的存储单元,从器件再次应答,并在主器件产生停止信号后开始内部数据擦写。, ,在“页写”操作模式下,页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号,主器件被允许发送15个额外的字节。 如果在发送停止信号之前主器件发送超过16个字节,地址计数器将自动翻转先前写入的数据被覆盖。 在发送最后一个字节后,主器件发送一个停止信号通知数据传输结束,如图所示。, ,读操作,CAT24WC16支持三种读操作方式: 1、当前地址读 2、随机地址读 3、连续读,在“当前地址读”操作方式时,CAT24WC16地址计数器内容为最后操 作字节的地址上加1。 CAT24WC16接收到从器件地址信号后,首先发送一个应答信号,然后发送 一个8位字节数据。如图所示:, ,“随机地址读”操作允许主器件对存储器的任意字节进行读操作。 1、主器件首先通过发送起始信号、从器件地址并选择写操作。 2、等CAT24WC16应答之后主器件重新发送起始信号和从器件地址。 3、CAT24WC16响应并发送应答信号,然后输出该地址处的一个字节数据,最后主器件发送一个停止信号结束此次读操作。过程如图 :, ,“连续读”操作既可以是当前地址读,也可以是随机地址读,工作时序上大体相同。 不同的是:当主器件每接收到一个数据字后,会回应一个应答信号给CAT24WC16,而不是停止信号。CAT24WC16在接收到应答信号后会将地址加1。直到主器件发送停止位才结束此操作。 CAT24WC16输出的数据按顺序由地址N开始输出。读操作时地址计数器在CAT24WC16内部增加。如果上次读写地址为芯片末地址,则计数器将翻转到第一个字节地址(0x00)处。, ,1.3 实验目的与内容,实验目的:通过实验,理解I2C数据传输的原理,掌握I2C接口电路连接和软件编程。 实验内容:事先往CAT24WC16的某个地址区域Addr写入一个字符串“Hello”,然后从地址Addr处读取5个字节内容,并在屏幕上显示,检查读出来的字符串是否也为“Hello”。, ,1.4 实验原理分析,电路原理分析 EEPRROM(CAT24WC16)通过I2C接口与处理器进行通信,电路中将EEPRROM 的地址线A0、A1、A2接地,SCL和SDA线上都接一个10K的上拉电阻。, ,软件设计 为了方便编程与程序可读性,首先定义几个宏,这些宏分别对应I2C控制寄存器I2CONSET的某些控制位。 #define SI 0x08 /I2C中断标志位 #define STO 0x10 /I2C停止位 #define STA 0x20 /I2C起始位 #define AA 0x04 /I2C应答位 #define I2EN 0x40 /I2C使能位 根据实验内容我们设计了3个底层驱动函数,这三个底层驱动函数分别是: CAT24WC16_Init() 初始化设置函数。 CAT24WC16_Write() CAT24WC16的写函数。 CAT24WC16_Read() CAT24WC16的读函数。, ,CAT24WC16_Init(),/* *名称: CAT24WC16_Init() *功能: I2C初始化。 *入口参数: fi2c初始化I2C总线速率,最大值为40K *出口参数:无 */ void CAT24WC16_Init(uint32 F_I2C) PINSEL0 = (PINSEL0 /使能主I2C , ,CAT24WC16_Write(),/* *名称: CAT24WC16_Write() *功能: 主发送模式,向CAT24WC16写入数据。 *入口参数: sla 器件地址; slaveAddr 器件子地址 pWriteData 待发送数据缓存区指针 num 待写入字符的个数 *出口参数: 1 代表发送成功 I2STAT 返回错误状态码,代表发送不成功 */ uint8 CAT24WC16_Write(uint8 sla,uint8 slaveAddr,uint8 *pWriteData,uint8 num) uint8 i; /-通过软件置位STA进入主发送模式- I2CONCLR = AA | SI | STA; /清零:SI位,起始标志位,应答标志位 I2CONSET = I2EN | STA; /启动总线 while(I2CONSET /返回错误状态码 , ,/-发送器件地址W位- I2CONCLR = SI | STA; /清零:SI位,起标志位标志位 I2DAT = sla /返回错误状态码 , ,/-发送数据- for(i=num;i0;i-) I2CONCLR = SI; /SI位清零 I2DAT = *pWriteData+; while(I2CONSET , ,CAT24WC16_Read(),/* *名称: CAT24WC16_Read() *功能: 主接收模式,从器件CAT24WC16读取数据。 *入口参数: slaveAddr CAT24WC16器件中具体的某一存储单元; pWriteData 数据接收缓冲区指针; num 要读取的数据个数; *出口参数: 1 代表发送成功 I2STAT 返回错误状态码,代表发送不成功 */ uint8 CAT24WC16_Read(uint8 sla,uint8 slaveAddr, uint8 *pReadData, uint8 num) uint8 i ,state=0; /-定位CAT24WC16器件的存储单元- state = CAT24WC16_Write(sla,slaveAddr,0,0); if(state != 1) return(state); /-发送起始标志位- I2CONCLR = SI | AA; /清零:起始、中断、应答标志位 I2CONSET = STA; /启动总线 while(I2CONSET /等待SI置位, ,if(I2STAT !=0x08) /查看状态码 I2CONSET = STO; /结束数据传输结束 return(I2STAT); /返回错误状态码 /-发送器件地址R位- I2CONCLR = SI | STA; /SI位,STA位清零 I2DAT = sla | 0x01; while(I2CONSET , ,1.5 实验参考程序,uint8 EEPROM_TAB10=“Hello!0“; /* * 名称:main() * 功能:对EEPROM进行读写控制 */ int main (void) uint8 REEPROM_buf5; uint8 flag; /-初始化- IO1DIR = IO1DIR | BEE; /设置蜂鸣器控制引脚 BEEOFF(); /关闭蜂鸣器 CAT24WC16_Init(10000); /-写数据- flag = CAT24WC16_Write(CAT24WC16,0x00,EEPROM_TAB,5);, ,DelayMS(1); /等待内部写操作完成 if(flag != 1) BEEON(); DelayMS(1); BEEOFF(); /-读数据- flag = CAT24WC16_Read(CAT24WC16,0x00,REEPROM_buf,5); if(flag != 1) BEEON(); DelayMS(1); BEEOFF(); return(0); , ,全速运行,我们将在变量观察窗口中观察到数组REEPROM_buf中的内容也为 “Hello”。 正确运行结果如下图:, ,三、SRAM存储器件,SRAM概述 RAM分为SRAM和DRAM两种类型。 DRAM的存取速度没有SRAM快,但是DRAM更容易做成大容量的RAM。在存放信息比较多的嵌入式系统中,主存储器采用 DRAM,而快速存储器则采用 SRAM。 SRAM它不具有掉电保持数据的特性,但其存取速度高于Flash存储器,且具有读/写的属性。系统及用户堆栈、运行数据也都放在SRAM中。 SRAM架构是处于同一列的基本存储单元共用一条列地址线,而处于同一行的基本存储单元共用一条行地址线,组成一个基本存储单元构成的矩阵架构。, ,1.1 IS61LV25616AL介绍,IS61LV25616AL是美国ISSI公司生产的高速SRAM器件。IS61LV25616AL的特性如下: 高速访问时间1012ns CMOS低功耗工作 单个3.3V电源工作,TTL兼容接口电平 完全静态操作无需时钟和刷新 三态输出 高低字节数据控制 可用的工业级温度, ,IS61LV25616AL内部功能模块与引脚描述,IS61LV25616AL内部主要由4部分组成: 1、控制电路 2、数据电路 3、译码器电路 4、存储器阵列,内部功能框图 IS61LV25616AL引脚图, ,IS61LV25616AL芯片一共有44条引脚,其中18根地址线、16根数据线、5根控制线、4根电源线和1根闲置线。 IS61LV25616AL引脚描述见表所列。, ,IS61LV25616AL的读写和擦除操作,ARM是通过操作IS61LV25616AL的控制线而执行相应的操作。IS61LV25616AL可工作在输出禁能、读操作、写操作3种工作模式下 。 IS61LV25616AL工作模式:, ,1.2实验目的与内容,实验目的:通过实验,深刻理解RAM器件操作与电路连接。 实验内容:完成一块内存区域的自检(类似于台式机的开机内存自检),具体做法是:向这块内存区域的每个单元写入数据0x55,然后从该单元读出数据,若读出的数据也为0x55,表明该单元没有问题;若读出的数据不为0x55,表明该内存单元已坏,蜂鸣器短叫一声,并且将损坏的单元地址保存起来加以标记。, ,1.3实验原理分析,当IS61LV25616AL与LPC2220的外部接口Bank0连接时,则IS61LV25616AL的芯片地址范围为0x8000 0000。,当IS61LV25616AL与LPC2220的外部接口Bank1连接时,则IS61LV25616AL的芯片地址范围为0x8100 0000;, ,RAM_Write()、为SRAM(IS61LV25616AL)写数据函数 RAM_Read()、为SRAM读数据函数。,#define RAM_ADDR 0x81000000 /* *名称: RAM_Write(uint32 Addr,uint16 Data)。 *功能: 向RAM写一个半字数据。 *入口参数: AddrRAM器件中具体的某一存储单元地址; Data待发送的数据(16位数据) */ void RAM_Write(uint32 Addr,uint16 Data) volatile uint16 *addr; addr = (volatile uint16 *)(RAM_ADDR|(Addr1); *addr = Data; ,驱动子程序, ,/* *名称: uint16 RAM_Read (uint32 Addr) *功能: 从RAM某个单元地址读取一个半字的内容。 *入口参数: Addr 内存单元地址 *出口参数: 返回一个半字数据 */ uint16 RAM_Read (uint32 Addr) volatile uint16 *addr; addr = (volatile uint16 *)(RAM_ADDR|(Addr1); return(uint16)*addr); ,RAM的读子程序, ,1.4 实验参考程序,/* * 名称:main() * 功能:完成某块内存区域的自检,损坏的单元地址保存在数组Remake中 */ int main (void) uint8 i,j; uint32 Remake50; uint16 data; IO1DIR = IO1DIR | (124); / 设置P1.24为I/O输出 IO1CLR = (124); / P1.24 = 0, 关闭蜂鸣器, ,/-检查起始地址为0x81000100的100个内存单元(字节单位)- for(i=0,j=0;i50;i+) RAM_Write(100+i,0x5555); data = RAM_Read (100+i); if(data!=0x5555) /判断内存单元地址是否损坏 Remakej=100+i; j+; IO1SET = (124); / 打开蜂鸣器 DelayMS(10); IO1CLR = (124); / 关闭蜂鸣器 DelayMS(10); return(0); , ,运行程序,for循环体中的程序每运行一次,则对应的地址上的内容就会更改为0x55。正确运行结果如下图所示:, ,四、 Nor-Flash存储器件,Nor-Flash存储器是一种可以在系统(In-System)进行电擦写,掉电后信息不丢失的存储器。 常用的Flash为8位或16位的数据宽度。 优点:它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,在体积、抗震性方面都有很大的优势。 最大的特点:是可在芯片内执行,即应用程序可以直接在上面运行,不必再把代码读到系统RAM中。而其他类型的Flash存储器不具备这个特点。, ,1.1 NorFlash器件SST39VF1601,SST39VF1601是由SST公司推出的,是一个多功能Flash器件,存储容量为2MB,16位数据宽度。SST39VF1601由SST提供了固定的擦除和编程时间,与擦除/编程周期数无关。 SST39VF1601的特性 存储空间组织 1M16。 读写操作采用单一电源2.73.6V。 低功耗、高可靠性。 具有地址和数据锁存功能。 自动写时序内部产生Vpp。 写结束检测, , SST39VF1601引脚描述,SST39VF1601一共有48个引脚,48个引脚中包括:20根地址线、16根数据线、3根控制线、3根电源线和其他不用连接的引脚。, ,SST39VF1601内部主要由控制逻辑电路、缓冲区电路、译码器电路、存储器电路四大部分组成。, , SST39VF1601的读写和擦除操作,NOR Flash存储采用的是SRAM接口,其地址线和数据线是分开的。SST39VF1601芯片可工作在读模式、写模式、擦除模式 3种模式之下。,工作模式选择, , SST39VF1601的读操作,SST39VF1601具备快速读访问能力。 SST39VF1601的读操作是CE和OE信号线控制的。 读操作的时序如图所示 :, , SST39VF1601的写操作,SST39VF1601的写操作主要是以一个半字接一个半字的方式进行写入的。写操作分3步进行: 第1步,送出“软件数据保护”的3字节,SW0,SW1,SW2。 第一字节SW0:地址线载入地址0x5555,数据线载入0xXXAA; 第二字节SW1:地址线载入地址0x2AAA,数据线载入0xXX55; 第三字节SW2:地址线载入地址0x5555,数据线载入0xXXA0; 第2步,送出地址和数据,地址在CE或WE的下降沿(无论哪一个后产生下降沿)锁存。, ,第3步,内部写入处理阶段。在内部写入阶段,任何指令都将被忽略。WE控制的字写入时序如图所示:, , 扇区/块/整片擦除操作,SST39VF1601扇区是统一的2 K半字(16位)大小,块是统一的 32 K半字大小。SST39VF1601存储容量为2M字节大小。SST39VF1601支持以下操作: 1、扇区擦除操作 2、块擦除操作 3、整片擦除操作 扇区或块擦除操作允许SST39VF1601以一个扇区接一个扇区,或一个块接一个块地进行擦除。, ,这三种擦除操作都是通过6字节的指令序列进行的。其中前面5字节的指令序列是相同的,唯一不同的在第6个字节指令中。3种擦除操作的流程图如左图所示:, ,3中擦除操作时序如图:,扇区擦除操作时序,块擦除操作时序,整片擦除操作时序, , 内部操作查询,芯片进入内部编程或擦除操作状态后,允许处理器查询DQ6位来判别芯片内部操作是否完成。 当内部操作进行中,所得的DQ6在1和 0之间跳变 当内部操作结束后,DQ6位的值不再变化。, ,1.2 实验目的与内容,实验目的:通过实验,理解Nor-Flash操作时序和电路连接,深刻掌握Flash烧写算法。 实验内容1:擦除SST39VF1601中某段未用的扇区,往这个扇区填充0x55,然后通过AXD调试工具观察该段扇区的内容。 实验内容2:擦除SST39VF1601中某段未用的扇区,往这个扇区拷入某个程序的二进制代码,比如一段蜂鸣的子程序代码,然后让程序指针跳到该扇区执行。, ,1.3 电路原理分析,SST39VF1601与LPC2220的连接如图所示。LPC2220使用外部的存储器接口Bank0上的存储器引导程序运行。, ,编写2个子程序: SST_SErase()和SST_Write(),分别完成SST39VF1601扇区擦除功能和字编程功能。,扇区删除函数,#define FLASH_ADDR 0x80000000 #define GetAddr(addr) (volatile uint16 *)(FLASH_ADDR|(addr1) /* *名称: SST_SErase(uint32 SA) *功能: SST39VF1601扇区擦除。 *入口参数: SA 扇区号(1512) *出口参数: 返回1表示成功,返回0表示失败 */,1.4 软件设计, ,uint8 SST_SErase(uint32 SA) volatile uint16 *ip; uint16 data1,data2; if(SA512) | (SA1) /检查扇区号是否在1512范围内 return(0); SA = 4096 * (SA-1) ; /根据扇区号,计算扇区地址 /*写入六个字节的扇区擦除指令序列*/ ip = GetAddr(0x5555); *ip = 0xaaaa; / 第一个写周期,地址0x5555,数据0xAA ip = GetAddr(0x2aaa); *ip = 0x5555; / 第二个写周期,地址0x2aaa,数据0x55 ip = GetAddr(0x5555); *ip = 0x8080; / 第三个写周期,地址0x5555,数据0x80 ip = GetAddr(0x5555); *ip = 0xaaaa; / 第四个写周期,地址0x5555,数据0xAA ip = GetAddr(0x2aaa);, ,*ip = 0x5555; / 第五个写周期,地址0x2aaa,数据0x55 ip = (volatile uint16 *)(FLASH_ADDR|(SA); *ip = 0x30; / 第六个写周期,扇区地址SA,数据0x30,执行扇区擦除操作 /*等待操作完成*/ while(1) /若编程操作没有完成,每次读操作DQ6会跳变 data1 = *ip; data2 = *ip; if(data1=data2) if( data1 != 0xffff) return(0); else return(1); , ,/* *名称: SST39VF1601_WriteByte () *功能: SST39VF1601的半字写入。 *入口参数: Addr 写入地址 WriteData 写入的数据 *出口参数: 0 操作不成功 1 操作成功 */ uint8 SST_Write(uint32 Addr,uint16 WriteData) volatile uint16 *ip; volatile uint16 *SADDR; uint16 data1,data2; SADDR = (volatile uint16 *)(FLASH_ADDR|(Addr,字编程函数, ,ip = GetAddr(0x5555); / 转换地址0x5555 ip0 = 0xaaaa; / 第一个写周期,地址0x5555,数据0xAA ip = GetAddr(0x2aaa); ip0 = 0x5555; / 第二个写周期,地址0x2aaa,数据0x55 ip = GetAddr(0x5555); ip0 = 0xa0a0; / 第三个写周期,地址0x5555,数据0xA0 *SADDR = WriteData; / 第四个写周期,地址Addr,数据Writ /*等待操作完成*/ while(1) /若编程操作没有完成,每次读操作DQ6会跳变 data1 = *SADDR; data2 = *SADDR; if(data1=data2) if(data1!=WriteData) return(0); else return(1); , ,实验1参考程序,#define Ssize 4096 /一个扇区4096个字节大小 /* * 名称:main() * 功能:往NOR-FLASH最后一个扇区填充数据0x55; */ int main (void) uint32 i,Addr; SST_SErase(512); /擦除最后一个扇区 for(i=0; iSszie; i=i+2) /往最后一个扇区填充0x55 Addr = Ssize * 511 + i; SST_Write(Addr,0x5555); return(0); , ,实验2参考程序,首先用汇编函数定义了一个程序跳转函数uint32 JUMP(uint32 addr),参数addr为给定的程序地址。,EXPORT JUMP AREA JUMPC,CODE,READONLY ENTRY JUMP MOV PC, R0 END, ,然后用C语言定义了一个BEE_Function()函数,#define BEE (124) / BEE连接P1.24 /* * 名称:BEE_Function() * 功能:控制蜂鸣器叫 */ void BEE_Function(void) PINSEL2 = PINSEL2 , ,#define Ssize 4096 /一个扇区4096个字节大小 extern uint32 JUMP(uint32 addr); /声明跳转函数 /* * 名称:main() * 功能:首先擦除第6号扇区,然后找到BEE_Function函数地址,将BEE_Function函数复制到第6号扇区,最后将程序跳转到第6号扇区起始处运行。 */ int main (void) uint16 i,Data1; uint32 Addr,Data,*P; SST_SErase(6); /擦除6号扇区 P = (uint32 *)BEE_Function; /指针指向BEE_Function函数 Addr = 0x80000002 + (Ssize * 5); /地址Addr指向第6个扇区的开始位置,主函数main。, ,for(i=0;i16); SST_Write(Addr+2,Data1); P+; Addr+=4; Addr = 0x80000002 + (Ssize * 5); JUMP(Addr); /程序跳转到第6号扇区运行 return(0); , ,五、Nand-Flash存储器件,NOR和NAND是目前市场上两种主要的非易失性闪存技术。Nand-Flash存储器结构则能提供极高的单元密度,可以达到很大的存储容量,并且写入和擦除的速度也很快。但Nand-Flash存储器需要特殊的接口来操作。二者以其各自的特点,在不同场合中发挥着各自的作用。 Nand-Flash存储器是Flash存储器的一种技术规格,其内部采用非线性宏单元模式,现在得到了越来越广泛的应用。 由于 Nand-Flash(非线性 Flash)存储器内部结构不同于Nor-Flash(线性Flash)存储器。一般来讲,读写的过程要靠软件编程来完成。, ,1.1 K9F6408U0C介绍,K9F6408U0C是SAMSUNG公司生产的NAND型Flash存储器,存储容量为66Mb。 片内写控制逻辑自动实现所有的编程和擦除功能,包括脉冲的周期、内部校验和数据冗余。 K9F6408U0C的其他特性 存储空间组织 (8M+256K)byte 页寄存器 (512+16)byte 支持页编程;支持块擦除。 命令/地址/数据复用I/O口。 可靠性高:耐久力可经受100K次擦写,数据保存10年。 命令寄存器操作。 工作电压:2.73.6V。 采用唯一ID号保护版权。 48脚封装TSOP。, ,K9F6408U0C引脚描述, , K9F6408U0C内部结构,K9F6408U0C由1024块组成,每块由16页组成,每页中有51216个字节。K9F6408U0C的有效总容量为16K页,合计8M字节。这种结构,满足文件系统中划分簇和扇区的结构要求 。, ,K9F6408U0C有效地址空间为8M字节,那么片内必须提供23根地址线进行选址,其中A9A22称为行地址,送入X译码器;A0A8称为列地址,送入Y译码器中。 K9F6408U0C芯片的内部结构框图如图所示 :, , K9F6408U0C的内部指令,K9F6408U0C具备自己的操作指令。有一些指令只需要一个总线周期完成;另外一些指令,则需要2个周期。 K9F6408U0C具备的指令和功能如右图:, , K9F6408U0C的内部操作-读操作,2种读的方式: 页读方式1: 默认的页读方式,用于读取页寄存器的前半页、后半页或整个页(0511)。 页读方式2: 用来读取备用区域(512527), ,通过将00h/01h指令写入指令寄存器,接着写入3字节地址来启动。,写入指令和地址后,处理器可以通过对信号线R/B的分析来判断该操作是否完成。,要读取的数据被送入了K9F6408U0C内部的页寄存器。外部控制器可以RE脉冲信号的控制下,从I/O口依次读出数据。,连续页读操作中,输出的数据是从指定的列地址开始,直到该页的最后一个列地址的数据为止。, 页读方式1的操作时序, ,页读方式2操作通过将50h指令写入指令寄存器,同样写入3字节地址来启动。 页读方式2的其他时序与页读方式1相同。, 页读方式2的操作时序, ,K9F6408U0C的写操作同样以页为单位。 页写入周期总共3个步骤: 1、写入串行数据输入指令 2、然后写入 3个字节的地址信息 3、最后串行写入数据, 写操作, ,内部写入操作开始后,器件自动进入“读状态寄存器”模式。此时,系统控制器可以读取状态寄存器,或检测R/B的输出来判断内部写入是否结束。,写操作时序图, ,擦除操作是以块为单位进行的。启动擦除,随后输入块地址,接

温馨提示

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

评论

0/150

提交评论