《ARM嵌入式接口技术应用》第三章存储器.ppt
《《ARM嵌入式接口技术应用》第三章存储器.ppt》由会员分享,可在线阅读,更多相关《《ARM嵌入式接口技术应用》第三章存储器.ppt(96页珍藏版)》请在三一办公上搜索。
1、第三章 存储器件,一、存储器概述二、EEPROM存储器件三、SRAM存储器件四、Nor-Flash存储器件五、Nand-Flash存储器件六、附录-Nor-Flash与Nand-Flash比较,一、存储器件概述,存储器的重要性存储器是嵌入式系统的主要组成部分,运行的程序需要存储器,处理数据需要存储器,存储数据也需要存储器。没有存储器,系统无法工作。,存储器的种类 只读存储器(简称ROM)ROM是一种非易失性的存储器,即在电源被关掉之后也不会丢失数据的。随机访问存储器(简称RAM)RAM是一种易失性的存储器,即在电源被关掉之后数据会丢失。,1.1存储器ROM,ROM的种类很多,一般分为以下5种:
2、,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、CAT24
3、WC32等。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电平
4、发生从低到高的跳变。2.设备选址3.应答信号4.写操作5.读操作,设备选址,主器件发送1个起始信号启动发送过程,然后发送寻址的从器件地址。8位从器件地址的高4位固定为1010,接下来3位(A10、A9、A8)为从器件的地址位。R/W为读写控制位。CAT24WC16监测总线当其地址与发送的从地址相符时发出1个应答信号,CAT24WC16根据读写控制位的状态准备读写操作。,应答信号,在SCL时钟线上的第9个时钟周期将SDA线拉低就表示一个应答信号。I2C总线每成功传送1Byte,接收器都必须产生1个应答信号。CAT24WC16在接收到起始信号和从器件地址之后也要产生应答信号。如果该器件工作于读模式
5、时,在发送1个8位数据后释放SDA线并等待1个应答信号。,写操作,写操作分为“字节写”和“页写”。在“字节写”操作模式下,主器件首先给从器件发送起始信号和从器件地址信息,在从器件送回应答信号后,然后主器件再发送一字节的地址信息到CAT24WC16地址指针,主器件在收到从器件的应答信号后,最后发送1Byte的数据到被寻址的存储单元,从器件再次应答,并在主器件产生停止信号后开始内部数据擦写。,在“页写”操作模式下,页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号,主器件被允许发送15个额外的字节。如果在发送停止信号之前主器件发送超过16个字节,地址计数器将自动翻转先前写入的数
6、据被覆盖。在发送最后一个字节后,主器件发送一个停止信号通知数据传输结束,如图所示。,读操作,CAT24WC16支持三种读操作方式:1、当前地址读2、随机地址读3、连续读,在“当前地址读”操作方式时,CAT24WC16地址计数器内容为最后操 作字节的地址上加1。CAT24WC16接收到从器件地址信号后,首先发送一个应答信号,然后发送 一个8位字节数据。如图所示:,“随机地址读”操作允许主器件对存储器的任意字节进行读操作。1、主器件首先通过发送起始信号、从器件地址并选择写操作。2、等CAT24WC16应答之后主器件重新发送起始信号和从器件地址。3、CAT24WC16响应并发送应答信号,然后输出该地
7、址处的一个字节数据,最后主器件发送一个停止信号结束此次读操作。过程如图:,“连续读”操作既可以是当前地址读,也可以是随机地址读,工作时序上大体相同。不同的是:当主器件每接收到一个数据字后,会回应一个应答信号给CAT24WC16,而不是停止信号。CAT24WC16在接收到应答信号后会将地址加1。直到主器件发送停止位才结束此操作。CAT24WC16输出的数据按顺序由地址N开始输出。读操作时地址计数器在CAT24WC16内部增加。如果上次读写地址为芯片末地址,则计数器将翻转到第一个字节地址(0 x00)处。,1.3 实验目的与内容,实验目的:通过实验,理解I2C数据传输的原理,掌握I2C接口电路连接
8、和软件编程。实验内容:事先往CAT24WC16的某个地址区域Addr写入一个字符串“Hello”,然后从地址Addr处读取5个字节内容,并在屏幕上显示,检查读出来的字符串是否也为“Hello”。,1.4 实验原理分析,电路原理分析EEPRROM(CAT24WC16)通过I2C接口与处理器进行通信,电路中将EEPRROM 的地址线A0、A1、A2接地,SCL和SDA线上都接一个10K的上拉电阻。,软件设计 为了方便编程与程序可读性,首先定义几个宏,这些宏分别对应I2C控制寄存器I2CONSET的某些控制位。#defineSI0 x08/I2C中断标志位#defineSTO0 x10/I2C停止位
9、#defineSTA0 x20/I2C起始位#defineAA0 x04/I2C应答位#defineI2EN 0 x40/I2C使能位根据实验内容我们设计了3个底层驱动函数,这三个底层驱动函数分别是:CAT24WC16_Init()初始化设置函数。CAT24WC16_Write()CAT24WC16的写函数。CAT24WC16_Read()CAT24WC16的读函数。,CAT24WC16_Init(),/*名称:CAT24WC16_Init()*功能:I2C初始化。*入口参数:fi2c初始化I2C总线速率,最大值为40K*出口参数:无*/void CAT24WC16_Init(uint32 F
10、_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进入主发送模式-I2
11、CONCLR=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读取数据。*入口参数:slaveAddrCAT
12、24WC16器件中具体的某一存储单元;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;/清零:起始、中断
13、、应答标志位I2CONSET=STA;/启动总线while(I2CONSET/等待SI置位,if(I2STAT!=0 x08)/查看状态码I2CONSET=STO;/结束数据传输结束return(I2STAT);/返回错误状态码/-发送器件地址R位-I2CONCLR=SI|STA;/SI位,STA位清零I2DAT=sla|0 x01;while(I2CONSET,1.5 实验参考程序,uint8 EEPROM_TAB10=Hello!0;/*名称:main()*功能:对EEPROM进行读写控制*/int main(void)uint8 REEPROM_buf5;uint8 flag;/-初始化
14、-IO1DIR=IO1DIR|BEE;/设置蜂鸣器控制引脚 BEEOFF();/关闭蜂鸣器CAT24WC16_Init(10000);/-写数据-flag=CAT24WC16_Write(CAT24WC16,0 x00,EEPROM_TAB,5);,DelayMS(1);/等待内部写操作完成if(flag!=1)BEEON();DelayMS(1);BEEOFF();/-读数据-flag=CAT24WC16_Read(CAT24WC16,0 x00,REEPROM_buf,5);if(flag!=1)BEEON();DelayMS(1);BEEOFF();return(0);,全速运行,我们将
15、在变量观察窗口中观察到数组REEPROM_buf中的内容也为“Hello”。正确运行结果如下图:,三、SRAM存储器件,SRAM概述RAM分为SRAM和DRAM两种类型。DRAM的存取速度没有SRAM快,但是DRAM更容易做成大容量的RAM。在存放信息比较多的嵌入式系统中,主存储器采用 DRAM,而快速存储器则采用 SRAM。SRAM它不具有掉电保持数据的特性,但其存取速度高于Flash存储器,且具有读/写的属性。系统及用户堆栈、运行数据也都放在SRAM中。SRAM架构是处于同一列的基本存储单元共用一条列地址线,而处于同一行的基本存储单元共用一条行地址线,组成一个基本存储单元构成的矩阵架构。,
16、1.1 IS61LV25616AL介绍,IS61LV25616AL是美国ISSI公司生产的高速SRAM器件。IS61LV25616AL的特性如下:高速访问时间1012nsCMOS低功耗工作单个3.3V电源工作,TTL兼容接口电平完全静态操作无需时钟和刷新三态输出高低字节数据控制可用的工业级温度,IS61LV25616AL内部功能模块与引脚描述,IS61LV25616AL内部主要由4部分组成:1、控制电路 2、数据电路 3、译码器电路 4、存储器阵列,内部功能框图 IS61LV25616AL引脚图,IS61LV25616AL芯片一共有44条引脚,其中18根地址线、16根数据线、5根控制线、4根电
17、源线和1根闲置线。IS61LV25616AL引脚描述见表所列。,IS61LV25616AL的读写和擦除操作,ARM是通过操作IS61LV25616AL的控制线而执行相应的操作。IS61LV25616AL可工作在输出禁能、读操作、写操作3种工作模式下。IS61LV25616AL工作模式:,1.2实验目的与内容,实验目的:通过实验,深刻理解RAM器件操作与电路连接。实验内容:完成一块内存区域的自检(类似于台式机的开机内存自检),具体做法是:向这块内存区域的每个单元写入数据0 x55,然后从该单元读出数据,若读出的数据也为0 x55,表明该单元没有问题;若读出的数据不为0 x55,表明该内存单元已坏
18、,蜂鸣器短叫一声,并且将损坏的单元地址保存起来加以标记。,1.3实验原理分析,当IS61LV25616AL与LPC2220的外部接口Bank0连接时,则IS61LV25616AL的芯片地址范围为0 x8000 0000。,当IS61LV25616AL与LPC2220的外部接口Bank1连接时,则IS61LV25616AL的芯片地址范围为0 x8100 0000;,RAM_Write()、为SRAM(IS61LV25616AL)写数据函数RAM_Read()、为SRAM读数据函数。,#define RAM_ADDR 0 x81000000/*名称:RAM_Write(uint32 Addr,ui
19、nt16 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(ui
20、nt32 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,关闭蜂鸣器,/-检查起始地址为0 x81000100的100
21、个内存单元(字节单位)-for(i=0,j=0;i50;i+)RAM_Write(100+i,0 x5555);data=RAM_Read(100+i);if(data!=0 x5555)/判断内存单元地址是否损坏Remakej=100+i;j+;IO1SET=(124);/打开蜂鸣器DelayMS(10);IO1CLR=(124);/关闭蜂鸣器DelayMS(10);return(0);,运行程序,for循环体中的程序每运行一次,则对应的地址上的内容就会更改为0 x55。正确运行结果如下图所示:,四、Nor-Flash存储器件,Nor-Flash存储器是一种可以在系统(In-System)进
22、行电擦写,掉电后信息不丢失的存储器。常用的Flash为8位或16位的数据宽度。优点:它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,在体积、抗震性方面都有很大的优势。最大的特点:是可在芯片内执行,即应用程序可以直接在上面运行,不必再把代码读到系统RAM中。而其他类型的Flash存储器不具备这个特点。,1.1 NorFlash器件SST39VF1601,SST39VF1601是由SST公司推出的,是一个多功能Flash器件,存储容量为2MB,16位数据宽度。SST39VF1601由SST提供了固定的擦除和编程时间,与擦除/编程周期数无关。SST39VF1601的特
23、性存储空间组织 1M16。读写操作采用单一电源2.73.6V。低功耗、高可靠性。具有地址和数据锁存功能。自动写时序内部产生Vpp。写结束检测,SST39VF1601引脚描述,SST39VF1601一共有48个引脚,48个引脚中包括:20根地址线、16根数据线、3根控制线、3根电源线和其他不用连接的引脚。,SST39VF1601内部主要由控制逻辑电路、缓冲区电路、译码器电路、存储器电路四大部分组成。,SST39VF1601的读写和擦除操作,NOR Flash存储采用的是SRAM接口,其地址线和数据线是分开的。SST39VF1601芯片可工作在读模式、写模式、擦除模式 3种模式之下。,工作模式选择
24、,SST39VF1601的读操作,SST39VF1601具备快速读访问能力。SST39VF1601的读操作是CE和OE信号线控制的。读操作的时序如图所示:,SST39VF1601的写操作,SST39VF1601的写操作主要是以一个半字接一个半字的方式进行写入的。写操作分3步进行:第1步,送出“软件数据保护”的3字节,SW0,SW1,SW2。第一字节SW0:地址线载入地址0 x5555,数据线载入0 xXXAA;第二字节SW1:地址线载入地址0 x2AAA,数据线载入0 xXX55;第三字节SW2:地址线载入地址0 x5555,数据线载入0 xXXA0;第2步,送出地址和数据,地址在CE或WE的
25、下降沿(无论哪一个后产生下降沿)锁存。,第3步,内部写入处理阶段。在内部写入阶段,任何指令都将被忽略。WE控制的字写入时序如图所示:,扇区/块/整片擦除操作,SST39VF1601扇区是统一的2 K半字(16位)大小,块是统一的 32 K半字大小。SST39VF1601存储容量为2M字节大小。SST39VF1601支持以下操作:1、扇区擦除操作2、块擦除操作3、整片擦除操作扇区或块擦除操作允许SST39VF1601以一个扇区接一个扇区,或一个块接一个块地进行擦除。,这三种擦除操作都是通过6字节的指令序列进行的。其中前面5字节的指令序列是相同的,唯一不同的在第6个字节指令中。3种擦除操作的流程图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM嵌入式接口技术应用 ARM 嵌入式 接口 技术 应用 第三 存储器
链接地址:https://www.31ppt.com/p-6071834.html