日常笔记之嵌入式系统内存

来源:互联网 发布:淘宝限量购买怎么设置 编辑:程序博客网 时间:2024/05/20 02:56

在嵌入式系统中,文件系统和pc的存储介质有些不同。PC 机中常用的是硬盘、内存、光盘和 U 盘等; 嵌入式系统中文件系统常用的有 SDRAM, DDR-SDRAM ,NOR-FLASH ,NAND-FLASH ,SD 卡,U 盘和硬盘等,种类比PC 机要多,有些是两者都有使用;如内存, 在PC 机上称为内存,在 嵌入式系统中有多个名字,可以叫内存,也可以叫SDRAM 和DDR 。

      内存(sdram或ddr) 在嵌入式系统中可以用做文件系统的存储介质, 内存在掉电的情况下,不能保持原有数据不变,所以基于内存的文件系统只能是临时的文件系统 ,可以用来保存临时的文件,不能用来保存需要永久记录的文件,好处是只存在内存之中动态变化,重起系统不会产生垃圾,而且SDRAM中的文件操作要比其它介质中的文件操作要快。内存目前常用的有两种 SDRAM 和DDR SDRAM ,使用SDRAM 需要CPU 提供SDRAM 接口控制器,使用DDR SDRAM 需要CPU 提供DDR SDRAM 接口控制器,两者最大的不同是DDR SDRAM 比SDRAM 至少快1 倍,这就意味着读取一个文件如果使用SDRAM 需要2 秒钟,使用DDR 就可能只需要少于1 秒钟。

       FLASH 是嵌入式系统最常用的文件系统存储介质,有两种类型 NOR 和NAND ,NOR FLASH 可以直接进行读操作,但写操作是按块而不是按字节来进行,不能直接写,需要通过命令来做控制;NAND FLASH 即不能直接进行读操作,也不可以直接进行写,读写都是按块来进行,都需要通过命令来做控制。比较而言NOR 比NAND 读速度要快些,NAND比NOR 的单位密度要高,就是单片IC NAND-FLASH 可以有4GB(Byte) 的存储空间,NOR-FLASH 最多也只有1Gb(bit)。NAND FLASH 通常有坏块,所以文件系统的设计相对复杂(需要对坏块进行处理)。当然最后体验(点)也不一样。需要指出的是FLASH 掉电可以保持文件不丢失。

       注意:在修改bootload等操作中,只能通过修改flash,来实现操作。

      内存工作原理:内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

      具体工作流程:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

       ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
  举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。 

         FLASH 具体介绍:

       FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

      Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
  一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Mxic,而生产NAND Flash的主要厂家有Samsung和Toshiba及Hynix。
  现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据.
  另外,一些变量,都是放到RAM里的,一些初始化数据比如液晶要显示的内容界面,都是放到FLASH区里的(也就是以前说的ROM区),EEPROM可用可不用,主要是存一些运行中的数据,掉电后且不丢失
  SRAM、SDRAM都用于程序工作时保存临时数据和程序,因为在系统调电后,保存在其中的数据都会丢失。
  FLASH用于系统中保存长期的数据,如:配置信息,程序等。
  由于SRAM接口电路简单,在小系统中常用,SDRAM的接口相对复杂,需要相应的控制器支持,但由于容量大、价格便宜、访问速度快,所以常用在对内存容量和处理速度要求高的应用场合,在这种场合中,相应的处理器(CPU)都自带有SDRAM控制器。
  DRAM是动态存储器(Dynamic RAM)的缩写SDRAM是英文SynchronousDRAM的缩写,译成中文就是同步动态存储器的意思。从技术角度上讲,同步动态存储器 (SDRAM)是在现有的标准动态存储器中加入同步控制逻辑(一个状态机),利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能提高系统表现,还能简化设计、提供高速的数据传输。在功能上,它类似常规的DRAM,且也需时钟进行刷新。可以说,SDRAM是一种改善了结构的增强型DRAM。目前的SDRAM有10ns和8ns.

       

 

原创粉丝点击