不同类型的内存Arduino | SRAM, EEPROM, Flash

在本教程中,我们将学习计算机内存的基础知识,它的操作和类型。亚博彩票下载然后我们将关注Arduino,了解Arduino上不同类型的内存,如Flash, EEPROM, RAM,它们的大小和用途。

什么是计算机内存?

计算机被设计和开发来执行各种工程、数学、教育和娱乐任务,速度非常快,而且精度很高。所有这些复杂的任务可以归结为三个基本操作:

  • 在某些输入设备的帮助下接受数据。
  • 分析和处理数据。
  • 在一些输出设备的帮助下产生结果(数据)。

为了让处理器无缝地执行这些操作,它需要存储输入数据,保存中间结果,还需要将输出数据(结果)存储在某个地方。这叫做记忆。

计算机存储器是一种永久或临时存储数据和指令的电子设备。无论大小和应用,例如,它可以是一个巨大的存储服务器或一个简单的基于微控制器的嵌入式系统,所有的计算机系统都需要内存。

内存表示法

我们知道数字电子学只处理两个数字1和0。亚博最新官网网址这是用来表示信号的电压水平。例如,在一个5V逻辑电平系统中,' 1 '代表5V, ' 0 '代表0V。

因此,在任何给定的时间,信号的状态可以是' 1 '或' 0 '。这被称为比特,是数字世界中最小的数据单位。通过组合8个比特,我们得到一个字节,它可以是28= 256个不同的位模式。

下列是两个常用的资料单位:

位:数据的最小单位。它通过两个可能的值' 1 '或' 0 '中的一个来表示逻辑状态。

字节:一组8位称为字节。数据字节可以是00000000到11111111之间的任何二进制值。

基本的内存操作

只有两种基本的你可以在记忆体上执行。他们是读和写。典型的内存读操作需要一个地址作为输入,并返回该位置的数据。

对于一个典型的写操作,它需要一个必须存储数据和实际数据本身的地址。

类型的内存

计算机系统中所有不同的内存都可以分为两种类型的内存。它们是RAM和ROM。

RAM或随机存取存储器用于存储临时数据。在基于微处理器的系统中,操作系统、应用程序和其他数据被加载到RAM中,以便处理器能够快速访问。

在基于微控制器的系统中,RAM用于存储临时数据。

ROM或只读存储器更多的是存储应用程序代码或固件的永久存储。

Types-of-Memory-on-Arduino

挥发性和非易失性

记忆的另一个重要分类是基于权力依赖性。像RAM这样的存储器只要供电就能存储数据,一旦断电,其中的数据就会消失。这种类型的内存称为易失性内存。

另一方面,像ROM这样的存储器被称为非易失性存储器,因为它们中的数据是独立于电源的,也就是说,即使电源被拔掉,它们仍然保留数据。

Arduino上不同类型的内存

现在我们已经看到了一点关于计算机内存和不同类型的内存,现在让我们继续理亚博彩票下载解Arduino上不同类型的内存。

和任何计算机系统一样,即使是Arduino也有两个基本的内存,即RAM和ROM。但有趣的是它们是如何组织的,以及它们的大小。

基本上Arduino板上有三种类型的内存,如UNO, Mega 2560或Nano。它们是:

  • 闪光
  • 内存
  • eepm

Arduino中的RAM和其他RAM一样,用于存储临时数据,也是Volatile。Flash和EEPROM是两种ROM存储器,用于存储应用程序代码和小数据。它们本质上是不挥发的。

让我们分别看看这三种内亚博彩票下载存在Arduino上的情况,并比较它们在不同Arduino板上的大小。

注意:从技术上讲,所有这些内存都是微控制器(如ATmega328P或ATmega 2560)的Arduino板(如UNO, Nano, Mega2560)的一部分。

闪光

Flash Memory又称Flash ROM。在Arduino中,Flash存储着要运行的应用程序代码。在我们写了一个Arduino草图之后,比如一个Blinky,我们只需点击Arduino IDE中的Upload按钮来运行Blinky程序。

在后台编译草图并生成二进制文件,将二进制文件存储到Arduino的Flash中。复位后Arduino会读取存储在闪存中的指令并进行必要的操作。

下表比较了一些流行的Arduino板上Flash内存的数量。

Arduino电路板

单片机 Flash内存大小
Arduino UNO ATmega328P

32 KB

Arduino纳米

ATmega328P 32 KB
Arduino超级2560 2560接口

256 KB

Arduino微

ATmega32U4 32 KB
Arduino达芬奇 ATmega32U4

32 KB

这个Flash Memory的一部分实际上是由Bootloader使用的,Bootloader负责通过串行接口将二进制文件存储到Flash中。

eepm

Arduino上的下一种内存类型是EEPROM。EEPROM是电可擦可编程只读存储器的缩写。

实际上,上面提到的Flash Memory也是EEPROM的一种。主要的区别是EEPROM可以在字节级被擦除,而Flash可以在块级被擦除。

Arduino中的EEPROM通常用于存储少量的数据,如输入或输出设备的状态,这样即使Arduino断电也可以保留这些数据。我做了一个专门的教程Arduino EEPROM(内部和外部)。

有关Arduino内部EEPROM的更多信息,请访问“Arduino EEPRPM教程”。如果你对I接口感兴趣2基于C的外部EEPROM IC如AT24C256与Arduino,然后访问“Arduino AT24C256 EEPROM教程”。

回到Arduino上的EEPROM,大小通常很小,只有几个字节。下表显示了不同Arduino板上EEPROM的大小。

Arduino电路板

单片机 eepm大小
Arduino UNO ATmega328P

1 KB

Arduino纳米

ATmega328P 1 KB
Arduino超级2560 2560接口

4 KB

Arduino微

ATmega32U4 1 KB
Arduino达芬奇 ATmega32U4

1 KB

内存

Arduino中的RAM实际上被称为SRAM或静态随机存取存储器,这是一种使用触发器来存储1位数据的RAM。另一种类型的RAM称为DRAM或动态随机存取存储器,它使用一个电容器来存储数据。

在Arduino中,SRAM存储临时数据或运行时数据(函数创建的变量、中断)。Arduino中的SRAM实际上分为几个部分。它们是:

  • 文本
  • 数据
  • BSS
  • 堆栈

“文本”段包含从闪存中加载的任何指令。“数据”部分包含了草图中初始化的变量。“BSS”段包含任何未初始化的数据(并将它们初始化为0)。

最后,堆栈和堆。堆栈是RAM的一部分,它在执行代码时实际存储函数和中断的数据。如果您在运行时创建任何变量,那么它们将存储在堆中。

下表描述了不同Arduino板中可用SRAM的数量。

Arduino电路板

单片机 内存大小
Arduino UNO ATmega328P

2 KB

Arduino纳米

ATmega328P 2 KB
Arduino超级2560 2560接口

8 KB

Arduino微

ATmega32U4 2.5 KB
Arduino达芬奇 ATmega32U4

2.5 KB

结论

在本教程中,您了解了计算机内存,计算机内存类型,易失性和非易亚博彩票下载失性内存,以及Arduino板上不同类型的内存。

留下一个回复

您的电子邮件地址将不会被公布。必填字段被标记