| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 嵌入式系统存储器 -> 正文阅读 |
|
[嵌入式]嵌入式系统存储器 |
简介 首先分为两大类:主存(内存)和辅存(非易失存储)。 主存和辅存的区别主要是访问速度和数据易失性两个考量。 主存速度快,但掉电后数据丢失。 辅存能掉电后保存数据,但访问速度慢。比如PC的硬盘。 内存 在嵌入式系统中,主存分为SRAM和DRAM,在速度和成本方面有着差异。 1,Static Random Access Memory (SRAM) 速度快,大概是DRAM的4倍。但每一bit的数据,需要更多的晶体管,所以更贵。 2,Dynamic Random Access Memory (DRAM) 为了保持数据,需要每隔几毫秒就刷新一下,否则数据就会被擦除。即使电源没断电还是需要刷新。 因为DRAM中的数据bit是保存在电容中,经过一定时间数据就会消失,所以需要一个控制器,不断选中一行行地址来补充电荷。 这个周期是ms级别的,比如1s中刷新4次。 因为有刷新操作,所以耗电更多。 最开始的SRAM就叫做RAM,后来DRAM出现了,才从RAM改名为SRAM,以示区分。 在嵌入式系统中,通常是SRAM和DRAM混合使用。 辅存 一般是用来存储程序和数据的电子器件。 第一个,要介绍的是掩膜ROM(Masked ROM)。 掩膜的意思是指这种IC器件的生产方式,是工艺厂家根据客户所要存储的信息,设计专用的掩膜板进行生产的。 这个是在存储器件制造的过程中,就把数据写进去,所以后面也无法更新数据。 这种功能和应用的使用场景,一般是用来存储微控制器的bootloader程序,还有微处理器的微码程序。 微码就是CPU中的软件,用来将复杂的指令转换成CPU可以能字节执行的简单指令序列,或者预防CPU硬件设计问题,能提供一些软件补救措施。 比如硬件电路设计不对,就要飞个线,但CPU没法飞线,就使用软件改变一些控制位,来改变电路行为。 这样的话,CPU得到一个指令,就可以根据不同的控制条件,来输出不同的操作。 这种存储使用的场景,一般是大规模生产的,生命周期很长的产品,从而成本控制很严格。 并且每个bit数据比其他种类存储器件需要的空间很小,这样设计出来的集成电路也就更小,所以厂商很很喜欢这一点。 第二个,是PROM,指Programmable Read-Only Memory。也称为OTP ROM,one time Programable ROM。 和掩膜ROM不同,可以烧写一次,烧写完后既不能擦除也不能再烧写。 比如台湾松瀚Sonix的8bit的芯片,SN8PXXXX,低功耗的8位微控制器MCU,4KB的OTP ROM,表示,只能烧写一次,所以用调试器调试好再发布量产软件,出厂了就不能改了。 当时用这个芯片,好像有个功能用调试器模拟不来,好像是休眠功耗,要测电流。所以改一次代码,用烧写器烧一个芯片,然后再把旧芯片吹下来,新芯片贴上去,很麻烦。 不过这么少的资源,功能一定很简单,成本也很低,自然是符合其使用场景的,不能重新烧写也没问题,还有内存SRAM是256个字节。 使用场景(Function and Application area): 用于大规模生产的,但生命周期相对掩膜ROM短一些的产品。 较短的生命周期是因为科技迭代较快,可能每年就会有新的产品推出,所以使用掩膜ROM来做不划算。 考虑投入产出比(cost/benefit trade-off)。 这类产品包括TV,微波炉和洗碗机等。 第三个,是EPROM。 全程Erasable Programmable Read-Only Memory。这类器件通常在顶部有一个小的玻璃窗口,如果在紫外线直射下可以擦除芯片数据。 擦除以后,就能够再次烧写数据。 使用场景: 和PROM类似,也是用来存储源代码生成的软件和常量数据。但这类芯片经常用于软件开发阶段,因为可以重复擦除和烧写,这在开发阶段很有用。 在开发完成后,硬件设计师通常会把这个芯片换成PROM。这样PROM和EPROM的最终使用场景是类似的。 第四个,EEPROM。 全称是Electrically Erasable Programmable Read-Only Memory。 这类器件使用电压就可以重新擦除和烧写,而不用像EPROM一样,使用UV(紫外)射线。 使用场景: 一般有三个, 1,在产品开发阶段用于存储软件。 2,存储产品使用过程中需要的常量数据。 3,用于软件可升级的产品。 掩膜ROM,PROM和EPROM是真正的ROM,因为它们仅可读,但EEPROM可以作为一个仅可读和可读可写存储设备的混合体。 通过控制器的操作,EEPROM的每个数据bit是可编程的,并且和RAM相比是非易失的数据。 这样在产品出场并到达用户手中时,产品制造商还可以对软件进行升级,这提高了产品的品质。 第五个,Flash存储器。 这是目前最流行的存储器,根据类型区分有Nor Flash,Nand flash等,根据接口区分有SPI-Flash等。 和EEPROM一样,可擦除可重写,但不是一个bit一个bit操作,而是一个block位单位操作。 Block的大小是多个字节,在芯片手册中可以查询。 使用场景: Flash Memory的最大优点是经济性(cost-effective),以每个字节为单位来计算,这个比EEPROM要便宜的多。 所以可以用来存储很大的文件。现在越来越复杂的嵌入式系统,也需要更多的存储空间来存储软件和数据。 第六个,NVRAM (Non Volatile Random Access Memory) 这是一种特殊的RAM,用来存储维持性数据。基本上就是一个SRAM带一个供电(比如纽扣电池CR2302),也叫做RAM disks。 使用场景: 一般使用在启动时间很重要的场合。毫秒级的时间损失都是不可接受的。 所以不能从一个低速的存储器中,比如flash或EEPROM中来加载程序。 一般只是把这低速存储器作为备份,在更换电池时,把运行中的数据存到备份存储器中,电池更换后,再重新载入。 参考链接: https://embeddedinventor.com/8-types-of-memory-every-embedded-engineer-should-know-about/ |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 10:27:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |