了解单片机的内存

 

导读:

  在单片机选型的时候,总要看看资源有多少,外设资源,flash大小,RAM的大小等等,其中flash和RAM大小,直接关系到程序,所以这篇来说说单片机里面的内存。

 

内存的分类(RAM、ROM和FLASH):

RAM:Random Access Memory,随机存取存储器。特点,断电后数据会丢失。是单片机CPU运算时临时数据存储介质。

  RAM分为两种,SRAM(static 静态随机存取存储器)和DRAM(dynamic 动态随机存取存储器)。

  SRAM:特点:电路不刷新,数据可以一直保持,读写速度非常快,缺点是价格贵。

  DRAM:特点:保留数据时间短,需要每隔一段时间刷新一次,否则数据会消失,这就需要额外一个驱动刷新的电路,缺点是电路复杂,优点是价格便宜。

  所以一般的单片机,容量不大,用的都是SRAM,像DDR RAM,SD RAM等大的存储则使用DRAM。

 

ROM:Read-Only Memory,只读存储器,特点,断电后数据不会丢失。在单片机中是保存程序。

  正常来说,只读存储器是只能读,不能写。最开始也是这样的,不过经过时代的发展,变成了可读可写,但是ROM的名字一直没有变,所以翻译也一直沿用下来了,但实际上现在大部分用的都是可读可写的。

  最开始是,PROM:Programmable ROM,可编程只读存储器,只能出厂的时候写一次;

  EPROM:Erasable Programmable ROM,可擦除可编程只读存储器,可以多次写入,但是擦除时需要紫外线长时间照射,因为需要先擦除才能写入;

  EEPROM:Electrically Erasable Programmable ROM,带电可擦除可编程只读存储器,直接可以按字节进行读写。

 

FLASH:Flash Memory,闪存,结合了ROM和RAM的长处,广义上也可以说是ROM,是可擦除可编程的存储器,因为flash简化了电路,数据密度更高,成本更低,不同与EEPROM是不能以字节为最小单位擦除。

  同时flash的特性是,只能把1写为0,不能把0写为1,操作flash的时候,都是先要擦除才能写,不然数据会错乱。 

 

FLASH也分为两种Nor(或非) Flash和Nand(与非) Flash。

  Nor Flash:地址、数据总线是分开的,擦除单位是扇区或者块,读写可以最小按照字节,组成结构一般是字节,页,扇区,块。读取速度快,擦除速度慢,价格较贵。

  Nand Flash:地址、数据总线共用,擦除单位是块,读写最小按照页,组成结构一般是页,扇区,块。读取速度慢,擦除速度非常快,价格便宜。

  Nand Flash和Nor Flash比较:Nand Flash的电路更加简单,价格也相对便宜,但是操作数据也是相对比较大,所以一般大型的存储器,比如硬盘、U盘用的是Nand Flash。

  Nor flash可以进行字节寻址,所以CPU可以直接从nor flash中取出数据。而nand flash是最小以页为单位读写,数据就需要先加载到RAM中,再由CPU中执行。嵌入式系统多用一个小容量的nor flash存储引导代码,用一个大容量的nand flash存放文件系统和内核。

 

  目前使用的在单片机上,大部分用的是Nor Flash和SRAM,有些也带有EEPROM,但一般都比较小。


内存在芯片中的分布:

   

这个一款华大的32位单片机HC32F005。

可以看出来最大地址是0xFFFF_FFFF,说明地址总线是32位的,有很多地址没有使用,是保留的。

其中FLASH最大32KB,地址从0x0000_0000到0x0000_8000;

SRAM最大4KB,地址从0x2000_0000到0x2000_1000。

 

   

这是一款赛元的8位单片机SC92F8547,

其中有EEPROM(128bytes),FLASH ROM(32KB),RAM(256bytes)还有外部RAM,LCD RAM。

从中可以看出地址大部分都是从0开始,不像上面的32位单片机内存地址是串行的,由此就可以推断出,这里是做了扩展,地址总线应该是16位。

看手册描述,是通过不同指令,来寻找不同的地址。

 

关于单片机内存,这篇就先讲到这。

posted @   推动故事情节发展  阅读(731)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示