存储器(ROMRAMFLASHSDRAMSRAMDDREEPROMEMMC)

存储器(ROMRAMFLASHSDRAMSRAMDDREEPROMEMMC)

2023年7月17日发(作者:)

存储器(ROMRAMFLASHSDRAMSRAMDDREEPROMEMMC)电路设计离不开存储器器件,对于⼀个电路系统⽽⾔,⼀般包含以下⼏种存储器:ROM、RAM、FLASH存储器分类ROM——存储固化程序的(存放指令代码和⼀些固定数值,程序运⾏后不可改动)c⽂件及h⽂件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、⽂件中的代码(类似ARM中的bootloader或者X86中的BIOS,⼀些低端的单⽚机是没有这个的)通通都存储在ROM中,只可读。RAM——程序运⾏中数据的随机存取(可读写,但掉电后数据消失)整个程序中,所⽤到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。FLASH——存储⽤户程序和需要永久保存的数据,可读写,掉电后数据不消失。例如:现在家⽤的电⼦式电度表,它的内核是⼀款单⽚机,该单⽚机的程序就是存放在ROM⾥的。电度表在⼯作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时⼀个适时的数据,⽤户不关⼼,它只是⽤来计算电度⽤,计算完后该次采集的数据就⽤完了,然后再采集下⼀次,因此这些值就没必要永久存储,就把它放在RAM⾥边。然⽽计算完的电度,是需要永久保存的,单⽚机会定时或者在停电的瞬间将电度数存⼊到FLASH⾥。存储器运作原理1、程序经过编译、汇编、链接后,⽣成固件;2、⽤专⽤的烧录软件,通过烧录器将固件⽂件烧录到ROM中注:这个时候的ROM中,包含所有的程序内容:⼀⾏⼀⾏的程序代码、函数中⽤到的局部变量、头⽂件中所声明的全局变量,const声明的只读常量等,都被⽣成了⼆进制数据。疑问:既然所有的数据在ROM中,那RAM中的数据从哪⾥来?什么时候CPU将数据加载到RAM中?会不会是在烧录的时候,已经将需要放在RAM中数据烧录到了RAM中?答:(1)ROM是只读存储器,CPU只能从⾥⾯读数据,⽽不能往⾥⾯写数据,掉电后数据依然保存在存储器中;RAM是随机存储器,CPU既可以从⾥⾯读出数据,⼜可以往⾥⾯写⼊数据,掉电后数据不保存,这是条永恒的真理,始终记挂在⼼。(2)RAM中的数据不是在烧录的时候写⼊的,因为烧录完毕后,拔掉电源,当再给MCU上电后,CPU能正常执⾏动作,RAM中照样有数据,这就说明:RAM中的数据不是在烧录的时候写⼊的,同时也说明,在CPU运⾏时,RAM中已经写⼊了数据。3、ROM中包含所有的程序内容,在MCU上电时,CPU开始从第1⾏代码处执⾏指令。这⾥所做的⼯作是为整个程序的顺利运⾏做好准备,或者说是对RAM的初始化(注:ROM是只读不写的),⼯作任务有⼏项:(1)为全局变量分配地址空间—如果全局变量已赋初值,则将初始值从ROM中拷贝到RAM中,如果没有赋初值,则这个全局变量所对应的地址下的初值为0或者是不确定的。当然,如果已经指定了变量的地址空间,则直接定位到对应的地址就⾏,那么这⾥分配地址及定位地址的任务由“连接器”完成。(2)设置堆栈段的长度及地址—⽤C语⾔开发的单⽚机程序⾥⾯,普遍都没有涉及到堆栈段长度的设置,但这不意味着不⽤设置。堆栈段主要是⽤来在中断处理时起“保存现场”及“现场还原”的作⽤,其重要性不⾔⽽喻。⽽这么重要的内容,也包含在了编译器预设的内容⾥⾯,确实省事,可并不⼀定省⼼。(3)分配数据段data,常量段const,代码段code的起始地址——代码段与常量段的地址可以不管,它们都是固定在ROM⾥⾯的,⽆论它们怎么排列,都不会对程序产⽣影响。但是数据段的地址就必须得关⼼。数据段的数据时要从ROM拷贝到RAM中去的,⽽在RAM中,既有数据段data,也有堆栈段stack,还有通⽤的⼯作寄存器组。通常,⼯作寄存器组的地址是固定的,这就要求在绝对定址数据段时,不能使数据段覆盖所有的⼯作寄存器组的地址。必须引起严重关注。注:这⾥所说的“第⼀⾏代码处”,并不⼀定是你⾃⼰写的程序代码,绝⼤部分都是编译器代劳的,或者是编译器⾃带的demo程序⽂件。因为,你⾃⼰写的程序(C语⾔程序)⾥⾯,并不包含这些内容。⾼级⼀点的单⽚机,这些内容,都是在startup的⽂件⾥⾯。4、普通的flash MCU是在上电时或复位时,PC指针⾥⾯的存放的是“0000”,表⽰CPU从ROM的0000地址开始执⾏指令,在该地址处放⼀条跳转指令,使程序跳转到_main函数中,然后根据不同的指令,⼀条⼀条的执⾏,当中断发⽣时(中断数量也很有限,2~5个中断),按照系统分配的中断向量表地址,在中断向量⾥⾯,放置⼀条跳转到中断服务程序的指令,如此,整个程序就跑起来了。决定CPU这样做,是这种ROM结构所造成的。过程中中C语⾔编译器作了很多的⼯作,可仔细阅读编译器⾃带的help⽂件进⾏学习。存储器详细说明(随机存储器,Random Access Memory)指存储内容可被快速地写⼊或者读出,掉电后存储内容丢失地存储器。RAM可分为SRAM(静态随机存储器,Static RAM)和DRAM(动态随机存储器,Dynamic RAM)两种。1)SRAMSRAM的优点是只要器件不掉电,存储内容就不会丢失,⽆需刷新电路,⼯作速度快。缺点是集成度低,功耗⼤,价格⾼。上图是⼀种典型的SRAM结构,每个存储单元由六个MOS管组成,中间四个MOS管构成双稳态触发器,两侧的两个MOS管(Q1,Q1’)的开关状态由同⼀个选择信号CE控制。数据写⼊时,数据信号D及其取反后的信号D#分别出现在Q1和Q1’上,待选择信号CE将Q1和Q1’导通后,D和D#触发双稳态触发器,使之发⽣相应的翻转,并使翻转后的状态⼀直得到保留,直到下次数据写⼊事件的发⽣。数据读出时,选择信号CE有效并使Q1和Q1’导通后,A和A’点的逻辑状态出现在数据信号D和D#上,从⽽实现数据的读取,该读取的过程并不改变存储单元内双稳态触发器的状态。每个SRAM存储单元由六个MOS管组成,功耗⼤,集成度低,但由于内部采⽤了双稳态触发器,也⽆需不断地对内部存储地内容进⾏刷新。2)DRAMDRAM地优点是集成度⾼,功耗⼩,价格低。缺点是即便器件不掉电,存储内容也只能保持很短地时间,需不断地被刷新。典型地DRAM结构图如下:每个存储单元由⼀个MOS管及其寄⽣电容构成。由于数据信号的状态由电容的电荷量决定,因此每隔⼀段时间需对电容做⼀次充放电的刷新操作。(只读存储器,Read only memory)指⼀旦写⼊,则⽆法擦除改写的存储器。此处,将ROM的定义做进⼀步的扩展,定义为⾮易失存储器,即器件掉电后,内部存储器内容仍保留,且⽀持电可擦除可改写的只读存储器。电路设计中常⽤的ROM包括EEPROM(电可擦写可编程只读存储器)和FLASH(闪速存储器)SDRAM介绍SDRAM概述SDRAM指同步动态随机存储器,同步指存储器的⼯作需要参考时钟。SDRAM的信号输出电平为LVTTL,属单端信号。对于同步动态存储器件,有三个与⼯作速率相关的重要指标:内核⼯作频率、时钟频率、数据传输速率。就SDRAM⽽⾔,其内核⼯作频率、时钟频率和数据传输速率三者相同。最⾼速率可达200MHZ,设计中常⽤的速率有100MHZ、133MHZ、167MHZ。SDRAM存储空间被分为若⼲逻辑块(BANK),取地址时,⾸先需提供BANK地址以找到待操作的逻辑块,然后需提供⾏地址和列地址以在该BANK内定为存储单元。因此,在器件资料上,SDRAM存储容量的定义⽅式是:地址数X位宽XBANK数。例如: 512Mbit的SDRAM 规格为 32M X 4 X4⾏地址信号线为A0 ~ A12共13根,可组成2^{13}个不同的⾏地址,列地址信号线为A0~ A9、A11、A12共12根,可组成2^{12}个不同的列地址,因此地址数为32M。数据信号线为D0~D3共四根,因此数据位宽为4位(想象每块BANK是⽴体的;⾏->⾼;列->长;位宽->宽),BANK信号线为B0 ~ B1共两根,因此BANK数为4(2^{2})。DDR SDRAMDDR指双倍速率(Double Data Rate),DDR SDRAM与SDRAM的基本结构是相似的,最基本的区别在于DDR SDRAM⽀持在⼀个时钟周期内传输两次数据,这是通过接⼝结构的改进⽽实现的。DDR SDRAM采⽤2倍预取架构,即芯⽚内部能以两倍于时钟运⾏的速率预取数据,从⽽使得芯⽚内核⼯作速率仅为外部数据传输率的⼀半。SDRAM采⽤1倍预取架构,即芯⽚内核⼯作速率与外部数据传输速率相同。内核⼯作速率越⾼,芯⽚⼯艺越复杂,基于这种⼯艺的限制,不可能快速地提⾼芯⽚内核⼯作速率。在相同地内核⼯作速率下,DDR SDRAM地外部数据传输速率为SDRAM的两倍,从⽽提⾼存储器的传输效率。例如,在DDR SDRAM和SDRAM的外部数据传输速率为400Mbps的情况下,对于DDR SDRAM,其内核⼯作速率仅需要200MHZ,⽽对于SDRAM,其内核⼯作速率需要为400MHZ。利⽤这项技术,DDR SDRAM可以在不提⾼内核⼯作速率的前提下(即⽆需对芯⽚做⼤的技术⾰新),⼤⼤提⾼外部数据传输速率,从⽽获取更⾼的性能。DDR SDRAM与SDRAM硬件设计上的区别时钟信号。SDRAM的时钟信号CLK为单端信号,⽽DDR SDRAM则采⽤差分对时钟信号CK/CK#信号电平。SDRAM采⽤LVTTL电平,接⼝信号为单端信号,⽽DDR SDRAM采⽤SSTL-2电平,接⼝信号本质上属于差分对。电源。两种存储器的电源引脚都分为Vdd和Vddq,⼀般这两种引脚均可采⽤同⼀电源供电,但SDRAM的电源为3.3V,⽽DDR SDRAM的电源为2.5V。电源种类。SDRAM仅需3.3V电源,⽽DDR SDRAM需三种电源:给Vdd/Vddq供电的2.5V,给Vref供电的1.25V,以及给SSTL-2终结电路供电的Vtt电源1.25V。时序测试。对地址信号、控制信号,SDRAM和DDR SDRAM的时序测试⽅法相同,对数据信号,SDRAM为单边沿采样,DDR SDRAM为双边沿采样,且时序参考信号DQS⽽不是时钟信号。输出信号驱动能⼒。DDR SDRAM输出信号的驱动能⼒可被设置为强驱动或者弱驱动两种模式,SDRAM则不能设置。DDR2DDR2(Double Data Rate2, 两倍数据速率,版本2)SDRAM与DDR SDRAM相⽐,虽然其仍保持了⼀个时钟周期完成两次数据传输的特性,但DDR2 SDRAM在数据传输率,延时,功耗等⽅⾯有了显著提⾼。DDR2 SDRAM的技术更新DDR SDRAM的数据预取能⼒是2,即芯⽚内部能以两倍于时钟的速度来预取数据,这使得芯⽚内核⼯作频率仅需要外部数据传输率的⼀半。对此,DDR2 SDRAM做了进⼀步的改进,其数据预取能⼒为4,使得芯⽚内核⼯作频率仅需要为外部数据传输率的1/4。⽽对于SDRAM,芯⽚内核⼯作频率等于外部数据传输速率。所以,同样内核⼯作频率下,DDR SDRAM的数据传输率⽐SDRAM⾼⼀倍,⽽DDR SDRAM的数据传输率⼜⽐DDR SDRAM⾼⼀倍。例如,在DDR2 和DDR SDRAM的外部数据传输率都为400Mbps的情况下,对于DDR2 SDRAM⽽⾔,其内核⼯作频率仅为100MHZ,⽽对于DDR SDRAM,其内核⼯作频率为200MHZ。如果是SDRAM,其内核频率需达到400MHZ,才能提供400Mbps的外部数据传输率,正是因为如此⾼的内核频率⽆法在技术和⼯艺上得到实现,因此SDRAM的数据传输率⽆法达到400Mbps。利⽤这项技术,DDR2 SDRAM可以在不提⾼内核⼯作频率的前提下(即⽆需对芯⽚做⼤的技术⾰新),⼤⼤提⾼外部数据传输速率。SRAMDRAM的性能在很⼤程度上受刷新操作的影响,⽽SRAM则不涉及刷新,因此在相同时钟频率的条件下,SRAM的性能远⾼于DRAM。SRAM的缺点是集成度低,容量⼩,功耗⼤,价格⾼。在应⽤的场合上,SRAM毫不逊⾊于DRAM。CPU的⾼速缓存(如 ⼀级缓存;⼆级缓存)即为SRAM,相⽐CPU外部1GB,甚⾄2GB 的DRAM存储器,CPU内SRAM的容量则⼩得多,且CPU内部SRAM容量的⼤⼩,在很⼤程度上决定了CPU性能的⾼低。SRAM分为同步SRAM与异步SRAM两⼤类,同步SRAM街道读写指令后,需参考外部时钟信号的边沿才能发起操作,⽽异步SRAM则⽆需外部时钟,只要接到读写指令⽴即开始⼯作。在⾼速电路设计中,ZBT SRAM和QDRII SRAM是常⽤的SRAM,这两种SRAM都属于同步SRAM。Flash电路设计中,⼀般采⽤Flash存储⼤容量的底层驱动程序或软件程序。⽬前常⽤的FLASH 芯⽚有NOR 和 NAND两种规格。NOR FLASH和NAND FLASH 的区别列举如下:(1)信号线区别:NOR FLASH有独⽴的地址、数据引脚,与SRAM类似;⽽NAND FLASH的地址、数据引脚是复⽤的。(2)读取⽅式: NOR FLASH的应⽤特点是⽚上运⾏,即,由于其读取⽅便,程序可直接在FLASH中运⾏,⽽⽆需导⼊SDRAM等⾼速存储器件,适合于引导程序的存储。NAND FLASH的应⽤特点是⾼密度⼤容量,适合于⼤规模容量软件的存储,如上层应⽤软件的存储,但由于其地址、数据引脚复⽤在⼀起,操作时,需使⽤专门的驱动代码将读取指令转换为NAND FLASH可以识别的指令,读取操作复杂,运⾏时,需将软件程序导⼊SDRAM等器件后再执⾏。(3)编程⽅式:NOR FLASH的擦除和写⼊速度较慢,达到秒级;⽽NAND FLASH的擦鞋和写⼊速度快,仅为毫秒级;NOR FLASH 和NANDFLASH均可对⽚内某个块(block)单独擦除,同时保留其他地址空间的存储内容,不过,NAND FLASH的擦除单元块相对更⼩。(4)存储容量:基于同样的价格,NAND FLASH的容量更⼤。FLASH 是易损器件,设计中注意事项:(1)ESD。调试和⽣产时,若不采取防静电措施,FLASH器件极易遭到损坏,设计时,应尽量使FLASH远离单板边缘。(2)机械损坏。由于FLASH器件较薄,且横截⾯积相对较⼤,容易遭到机械损坏,设计时应注意FLASH器件不能布放在单板易弯曲处。EEPROMEEPROM常⽤于单板信息的存储(如单板名称、⼚家名称、单板版本号、单板序列号等),EEPROM在应⽤上的特点是:容量⼩(SDRAM的存储容量⼀般为⼏百兆⾄⼏吉⽐特位;FLASH的容量⼀般为⼏百兆位,⽽EEPROM的存储容量⼀般仅为⼏千⽐特位)、⾮易失、读取⽅便(使⽤IIC总线)。ATMEL公司的AT24C系列EEPROM器件:AT24C01 1KbitAT24C02 2KbitAT24C04 4KbitAT24C08 8KbitAT24C16 16KbitNorFlash、NandFlash、eMMC闪存的⽐较与区别NorFlashNOR Flash需要很长的时间进⾏抹写,但是它提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,这使的它⾮常适合取代⽼式的ROM芯⽚。当时ROM芯⽚主要⽤来存储⼏乎不需更新的代码,例如电脑的BIOS或机上盒(Set-top Box)的固件。NOR Flash可以忍受⼀万到⼀百万次抹写循环,它同时也是早期的可移除式快闪存储媒体的基础。CompactFlash本来便是以NOR Flash为基础的,虽然它之后跳槽到成本较低的 NAND Flash。NandFlashNAND Flash式东芝在1989年的国际固态电路研讨会(ISSCC)上发表的, 要在NandFlash上⾯读写数据,要外部加主控和电路设计。NAND Flash具有较快的抹写时间, ⽽且每个存储单元的⾯积也较⼩,这让NAND Flash相较于NOR Flash具有较⾼的存储密度与较低的每⽐特成本。同时它的可抹除次数也⾼出NOR Flash⼗倍。然⽽NAND Flash 的I/O接⼝并没有随机存取外部地址总线,它必须以区块性的⽅式进⾏读取,NAND Flash典型的区块⼤⼩是数百⾄数千⽐特。因为多数微处理器与微控制器要求字节等级的随机存取,所以NAND Flash不适合取代那些⽤以装载程序的ROM。从这样的⾓度看来,NANDFlash⽐较像光盘、硬盘这类的次级存储设备。NAND Flash⾮常适合⽤于储存卡之类的⼤量存储设备。第⼀款创建在NAND Flash基础上的可移除式存储媒体是SmartMedia,此后许多存储媒体也跟着采⽤NAND Flash,包括MultiMediaCard、Secure Digital、Memory Stick与xD卡。EMMCemmc存储器eMMC (Embedded Multi Media Card) 为MMC协会所订⽴的,eMMC 相当于 NandFlash+主控IC ,对外的接⼝协议与SD、TF卡⼀样,主要是针对⼿机或平板电脑等产品的内嵌式存储器标准规格。eMMC的⼀个明显优势是在封装中集成了⼀个控制器,它提供标准接⼝并管理闪存,使得⼿机⼚商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩⼩光刻尺⼨和降低成本的NAND供应商来说,同样的重要。eMMC由⼀个嵌⼊式存储解决⽅案组成,带有MMC(多媒体卡)接⼝、快闪存储器设备(Nand Flash)及主控制器,所有都在⼀个⼩型的BGA封装。接⼝速度⾼达每秒52MBytes,eMMC具有快速、可升级的性能。同时其接⼝电压可以是 1.8v 或者是 3.3v。现在很多智能电视已经逐步抛弃Nor或Nand,使⽤更为先进的eMMC芯⽚,然⽽普通编程器⽆法读写eMMC芯⽚,新开发的可⽀持eMMC芯⽚烧写的编程器性价⽐⾼,还能⽀持Nor、Nand芯⽚,⽀持全⾯、功能强⼤

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689548661a265247.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信