单片机的存储器
RAM与ROM是计算机中常见的存储器类型,它们在数据存储和访问方面扮演着重要的角色。RAM(Random Access Memory)是一种临时存储器,用于存储计算机正在运行的程序和数据。它具有快速的读写速度和随机访问的特点。相比之下,ROM(Read-Only Memory)是一种只读存储器,用于存储固定的程序指令和数据。ROM中的数据在计算机断电时不会丢失,因此被称为非易失性存储器。接下来,我们将详细介绍RAM和ROM的特点和常见类型。
一、ROM(Read-Only Memory)
程序存储器(又称为数据Flash),顾名思义,是用来存放用户的程序,让单片机按照所写代码顺序执行,并完成指定任务。所以程序存储器也就是我们听说过很多次的ROM(Read-Only Memory)只读存储器。里面存放的是代码,一般还有常数、表格、圆周率值、数码管字形、单片机ID号、内部参考信号源、掉电唤醒定时器频率、IRC参数等等数据。
注意:
单片机每次都是烧录程序,烧录就是为了把代码放到程序存储器中,而我们用的电脑则是把硬盘的数据和程序放到RAM,再用CPU去读取RAM里面的数据和程序。
ROM是一种只读存储器,其中的数据不能被常规方式修改或写入。它包含了固定的数据,例如启动程序、固件等。
常见的如BIOS芯片,就属于ROM,用于存储开机引导的固件
1、ROM主要特点有:
永久性:ROM中的数据在断电时不会丢失,因此被称为非易失性存储器。
只读性:ROM的内容只能被读取,无法直接修改。它通常在制造过程中被预先写入或烧录,供计算机系统在启动时使用。
2、常见的ROM:
a. MASK ROM(掩模只读存储器):
MASK ROM是在制造过程中被预先编程的ROM类型,无法在常规操作下进行修改。
它的数据是通过光刻等工艺制作在芯片上的,被“硬编码”进入芯片的电路结构中。
MASK ROM适用于存储固定的启动程序、固件等代码。
b. PROM(可编程只读存储器):
PROM是一种可编程的只读存储器,用户可以通过编程操作一次性地将数据写入其中。
编程操作通常由专用的编程设备或编程器完成,一旦写入数据后,数据将无法修改。
PROM适用于需要存储不可更改数据的应用,如设备固件等。
c. EPROM(可擦除可编程只读存储器):
EPROM是一种可擦除的可编程ROM,允许用户多次编程和擦除操作。
EPROM使用紫外线擦除器件来擦除数据,然后通过编程器进行重新编程。
EPROM通常用于存储需要经常更新的程序和数据的应用。
d. EEPROM(电可擦除可编程只读存储器):
EEPROM是一种电可擦除的可编程ROM,相对于EPROM,它不需要紫外线擦除器件。
EEPROM可以通过电压脉冲来擦除和编程数据,使得操作更加方便和可靠。
EEPROM广泛应用于存储配置数据、校准数据、设备序列号等的场景。
EEPRROM,你可以从它的名字上看出ROM这三个字母,没错,它属于ROM,它又被称为数据Flash,在IAP功能下,程序存储器用剩下的空间会被用作数据Flash(EEPROM),用来存放一些应用时需要经常修改,掉电后又能保持不变的参数。
e. Flash存储器:
Flash存储器是一种基于EEPROM技术的存储器,具有非易失性和高密度的特点。
Flash存储器可以通过块擦除方式进行修改,相比EEPROM更具灵活性和可编程性。
Flash存储器广泛应用于各种存储需求,如固件存储、系统存储、可移动存储介质等。
二、RAM
RAM(Random Access Memory):
RAM(Random Access Memory):
RAM是一种计算机主存,用于临时存储数据和程序。也叫“随机访问”存储器,因为它可以随机地存取和读取数据,而不需要按顺序查找。
常见的如我们计算机中的DDR,也叫DDR SDRAM(双倍数据率同步动态随机存取存储器),后面我们会介绍到:
1、RAM主要特点有:
临时性:RAM存储的数据在断电时会丢失,因此称为易失性存储器。
可读写:RAM可以被快速读取和写入,它的存储单元可以根据需要来读取和修改数据。
容量和速度:RAM的容量可以从几兆字节(MB)到数百GB不等,速度非常快,可以通过高速总线迅速访问数据。
2、常见的RAM:
a. DRAM(动态随机存取存储器):
DRAM是计算机系统中最常见的RAM类型之一。
它使用电容和电流来存储数据,并且需要刷新操作以保持数据的稳定性。
DRAM容量较大,成本相对较低,因此广泛用于主内存(RAM)。
b. SRAM(静态随机存取存储器):
SRAM是另一种常见的RAM类型,相对于DRAM来说,更快、更稳定。
它使用存储触发器(通常是互补金属氧化物半导体CMOS电路)来存储数据。
SRAM速度快,但比DRAM成本更高,一般用于高性能缓存和高速缓冲存储器。
c. SDRAM(同步动态随机存取存储器):
SDRAM是一种同步的DRAM类型,与系统主时钟同步工作。
它通过分时多通道的方式提供高速访问和数据传输。
SDRAM广泛用于计算机系统和其他需要高性能存储的设备。
d. DDR SDRAM(双倍数据率同步动态随机存取存储器):
DDR SDRAM是SDRAM的一种进化形式,提供了更高的传输速率。
它通过在每个时钟周期内传送两次数据,实现更高的带宽和更快的数据访问速度。
DDR SDRAM用于大多数现代计算机系统中的主内存。
e.片内基本RAM
片内基本RAM,听名字是不是感觉就是只个RAM(Random Access Memory)随机存储器,以STC8H8K64U单片机256字节的RAM为例,其实这部分包括有:片内低128字节,高128字节以及特殊功能寄存器。
1.低128字节RAM
低128字节RAM是单片机基本的数据存储区,是最接近CPU的数据存储区,也是功能最丰富的存储区。
可以看到,此型号单片机低128字节RAM包含了4个工作寄存器组,一个组内有8个寄存器,可位寻址区,堆栈区。
对于堆栈区,我有些许心得,平时我们执行的函数,进入函数便要使用栈,进行压栈,退出函数的时候就出栈,可以说,栈的作用就是记忆,记录下进入函数之前的位置,执行完函数,原路返回,我们定义的主函数也是函数,其中的临时变量等也在栈区,但是全局变量不在堆栈区。
2.高128字节RAM 与 特殊功能寄存器
高128字节的地址和特殊功能寄存器地址是一样的。但是我们可以通过不同的操作方式来访问他们,高128字节RAM只能采用间接寻址的方式来访问,特殊功能寄存器则可以使用直接寻址的方式来访问。
f.拓展RAM
拓展RAM又分为片内拓展RAM和片外拓展RAM
扩展RAM类似于传统的片外数据存储器,采用访问片外数据存储器的访问指令(汇编助记符为 MOVX )访问扩展RAM区域。可以通过AUXR寄存器中的EXTERAM位来选择片内拓展RAM或片外拓展RAM。
三、总结
RAM和ROM在计算机系统中扮演着不同的角色。
RAM作为主内存,临时存储计算机正在运行的数据和程序,它具有快速的读写速度和较大的容量,能够提高计算机的运行速度和多任务处理能力。
而ROM作为只读存储器,包含了固定的数据,如启动程序、固件等。它在计算机启动时被读取和执行,为计算机提供必要的初始化和启动操作。
不同类型的RAM和ROM适用于不同的应用场景,如DRAM、SRAM、EPROM、Flash等。通过灵活使用RAM和ROM,我们能够有效地管理和存储计算机系统中的数据和程序,实现各种应用需求。