STM32-常用存储器

存储器种类

存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。基本的存储器种类见图 22-1。


存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。其中的“易失/非易失”是指存储器断电后,它存储的数据内容是否会丢失的特性。由于一般易失性存储器存取速度快,而非易失性存储器可长期保存数据,它们都在计算机中占据着重要角色。在计算机中易失性存储器最典型的代表是内存,非易失性存储器的代表则是硬盘。

RAM存储器

RAM 是“Random Access Memory”的缩写,被译为随机存储器。 所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。这个词的由来是因为早期计算机曾使用磁鼓作为存储器,磁鼓是顺序读写设备,而 RAM 可随读取其内部任意地址的数据,时间都是相同的,因此得名。实际上现在 RAM 已经专门用于指代作为计算机内存的易失性半导体存储器。根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM)以及静态随机存储器 SRAM(Static RAM)两种。

DRAM

动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0,见图 22-2。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此它需要定期刷新操作,这就是“动态(Dynamic)”一词所形容的特性。刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电; 若电量小于 1/2,则认为其代表 0,并把电容放电,藉此来保证数据的正确性。

SDRAM

根据 DRAM 的通讯方式,又分为同步和异步两种,这两种方式根据通讯时是否需要使用时钟信号来区分。 图 22-3 是一种利用时钟进行同步的通讯时序,它在时钟的上升沿表示有效数据。

由于使用时钟同步的通讯速度更快,所以同步 DRAM 使用更为广泛,这种 DRAM 被称为 SDRAM(Synchronous DRAM)。

DDR SDRAM

为了进一步提高 SDRAM 的通讯速度,人们设计了 DDR SDRAM 存储器(Double Data Rate SDRAM)。它的存储特性与 SDRAM 没有区别,但 SDRAM 只在上升沿表示有效数据,在 1 个时钟周期内,只能表示 1 个有效数据;而 DDR SDRAM 在时钟的上升沿及下降沿各表示一个数据,也就是说在 1 个时钟周期内可以表示 2 数据,在时钟频率同样的情况下,提高了一倍的速度。至于 DDRII 和 DDRIII,它们的通讯方式并没有区别,主要是通讯同步时钟的频率提高了。

当前个人计算机常用的内存条是 DDRIII SDRAM 存储器,在一个内存条上包含多个DDRIII SDRAM 芯片。

SRAM

静态随机存储器 SRAM 的存储单元以锁存器来存储数据,见图 22-4。这种电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的),所以这种存储器被称为“静态(Static)” RAM。

同样地, SRAM 根据其通讯方式也分为同步(SSRAM)和异步 SRAM, 相对来说,异步SRAM 用得较多。

DRAM与SRAM的应用场合

对比 DRAM 与 SRAM 的结构,可知 DRAM 的结构简单得多,所以生产相同容量的存储器, DRAM 的成本要更低,且集成度更高。而 DRAM 中的电容结构则决定了它的存取速度不如 SRAM,特性对比见表 22-1。

所以在实际应用场合中, SRAM 一般只用于 CPU 内部的高速缓存(Cache),而外部扩展的内存一般使用 DRAM。

非易失性存储器

非易失性存储器种类非常多,半导体类的有 ROM 和 FLASH,而其它的则包括光盘、软盘及机械硬盘。

ROM存储器

ROM 是“Read Only Memory”的缩写,意为只能读的存储器。由于技术的发展,后来设计出了可以方便写入数据的 ROM,而这个“Read Only Memory”的名称被沿用下来了,现在一般用于指代非易失性半导体存储器,包括后面介绍的 FLASH 存储器,有些人也把它归到 ROM 类里边。

MASK ROM

MASK(掩膜) ROM 就是正宗的“Read Only Memory”,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大,数据不需要修改的场合,还有应用。

OTPROM

OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在 NXP 公司生产的控制器芯片中常使用 OTPROM 来存储密钥; STM32F429 系列的芯片内部也包含有一部分的 OTPROM 空间。

EPROM

EPROM(Erasable Programmable ROM)是可重复擦写的存储器,它解决了 PROM 芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被 EEPROM 取代。

EEPROM

EEPROM(Electrically Erasable Programmable ROM)是电可擦除存储器。 EEPROM 可以重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写。而且可以按字节为单位修改 数据,无需整个 芯片擦除。现在 主要使用的 ROM 芯片都是EEPROM。

FLASH存储器

FLASH 存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把 FLASH 存储器称为 FLASH ROM,但它的容量一般比 EEPROM 大得多,且在擦除时,一般以多个字节为单位。如有的 FLASH 存储器以 4096 个字节为扇区,最小的擦除单位为一个扇区。根据存储单元电路的不同, FLASH 存储器又分为 NOR FLASH 和 NAND FLASH,见表 22-2。

NOR 与 NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区/块”为单位的。而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。

由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如 NOR 上存储了代码指令, CPU 给 NOR 一个地址, NOR 就能向CPU 返回一个数据让 CPU 执行,中间不需要额外的处理操作。

而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND 上存储了代码指令, CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。 表 22-2 中的最后一项“是否支持 XIP”描述的就是这种立即执行的特性(eXecute InPlace)

若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在功能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别,且读写速度比 RAM 要慢得多。

另外, FLASH 的擦除次数都是有限的(现在普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说 NOR 块块更少,寿命更长。由于可能存在坏块,所以 FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性。

由于两种 FLASH 存储器特性的差异, NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而 NAND FLASH 一般应用在大数据量存储的场合,包括 SD 卡、 U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

在本教程中会对如何使用 RAM、 EEPROM、 FLASH 存储器进行实例讲解。

原文地址:https://www.cnblogs.com/luoxiao23/p/11209911.html

时间: 2024-11-02 13:09:11

STM32-常用存储器的相关文章

STM32(八)- DMA和常用存储器

7 原文地址:https://www.cnblogs.com/wuguangzong/p/10925010.html

STM32 常用GPIO操作函数记录

STM32读具体GPIOx的某一位是1还是0 1 /** 2 * @brief Reads the specified input port pin. 3 * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. 4 * @param GPIO_Pin: specifies the port bit to read. 5 * This parameter can be GPIO_Pin_x where x can b

常用存储器介绍

存储器是计算机中非常重要的组成部分,存储器是用来存储程序代码和数据的部件,有了存储器,计算机才具有记忆功能.电脑CPU是没有记忆功能的,他需要数据的时候都是先从存储器中读出,再进行逻辑运算,处理.处理完后再把数据存储到存储器中,下次再调用. 存储器种类: 存储器按其存储介质特性主要分为"易失性存储器"和"非易失性存储器"两大类. 其中的"易失/非易失"是指存储器断电后,它存储的数据内容是否会丢失的特性. 由于一般易失性存储器存取速度快,而非易失性

stm32常用驱动源码

源码的目录结构如下: STM32LIB USER USER目录如下 hardware_dri main software_module hardware_dri目录 Adc_hard_dri.c //uiAdData:存放AD采样的数据//ucSampleNum:存放AD采样的次数//ucRemoveNum:存放最低值与最高值的个数//去掉的数值放在数组0-(cRemoveNum-1)及(cSampleNum-ucRemoveNum)-(ucSampleNum-1),即最大值与最小值均放在两端v

STM32的位段操作基础

一.位段简介 二.STM32的存储器分布:0.5GB的程序存储区,0.5GB片上内存区,0.5GB片上外设flash区,1GB的外部RAM,1GB的外部设备flash,其它地址分配给了私有的外部总线和私有的内部总线以及供应商的专用地址. 注:这里的1MB代表1M字节,0xFFFFF=1048576,1048576+1=1024*1024Byte=1MB. 三.位段操作的基本实践

STM32---DMA与常用存储介绍

DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用 CPU. 然后了解的是三个方面的部分: 1.从哪里来到哪里去:从存储器到存储器(需要特别的配置),从存储器到外设,从外设到存储器. 2.数据量以及数据的单位:数据量的配置:DMA_CNDTR    单位的配置:DMA_CCRx(8/16/32位的配置) 正确设置两边数据指针的增量模式:外设的地址指针由 DMA_CCRx 的 PINC 配置,存储,存储器的地址指针由DM

FMC—扩展外部 SDRAM

本章参考资料:< STM32F4xx 参考手册 2>.< STM32F4xx 规格书>.库帮助文档< stm32f4xx_dsp_stdperiph_lib_um.chm>.关于 SDRAM 存储器,请参考前面的" 常用存储器介绍"章节,实验中 SDRAM 芯片的具体参数,请参考其规格书< IS42-45S16400J> 来了解. SDRAM 控制原理STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间

汇编指令大全

blt   小于跳转 tst r0,#02 bne sleep ldr  r1,#0 解释:位比较,先进行and运算,如果r0第2位不为1,则与的结果为0,设置标志位zero=1,继续下面的ldr指令.反之,zero=0,跳转到sleep执行. bne指令: 非零则跳转 个人总结:tst 和bne连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果不为0,则跳到bne紧跟着的标记(如bne sleep,则跳到sleep处). tst 和beq连用: 先是用tst进行位与运算,然后将位

计算机基础系列一:计算机硬件

1.编程语言的作用及与操作系统和硬件的关系 一个完整的计算机系统包括硬件.操作系统.软件(即程序员开发的各种软件)三部分组成. 各程序员开发的软件若直接调用计算机的硬件,如硬盘读取.音频播放等,则软件不仅编写复杂同时影响开发效率,因此程序员开发的软件需通过计算机操作系统间接调用计算机各硬件.如下图:  即编写各种计算机软件的编程语言可看作程序员与计算机沟通的介质,程序员通过编程语言编写软件从而达到控制计算机的目的. 2.计算机硬件 计算机硬件(Computer hardware)是指计算机系统中

ARM汇编指令汇总

1.ARM汇编的格式:    在ARM汇编里,有些字符是用来标记行号的,这些字符要求顶格写:有些伪码是需要成对出现的,例如ENTRY和END,就需要对齐出现,也就是说他们要么都顶格,要么都空相等的空,否则编译器将报错.常量定义需要顶格书写,不然,编译器同样会报错.    2.字符串变量的值是一系列的字符,并且使用双引号作为分界符,如果要在字符串中使用双引号,则必须连续使用两个双引号.    3.在使用LDR时,当格式是LDR r0,=0x022248,则第二个参数表示地址,即0x022248,同