自学内容网 自学内容网

嵌入式面试八股文(六)·ROM和RAM的区别、GPIO的八种工作模式、串行通讯和并行通讯的区别、同步串行和异步串行的区别

目录

1.  ROM和RAM的区别

2.  GPIO的八种工作模式

3.  串行通讯和并行通讯的区别

3.1  串行通讯

3.2  并行通讯

3.3  对比

4.  同步串行和异步串行的区别

4.1  时钟信号

4.2  数据传输效率

4.3  应用场景

4.4  硬件复杂性


1.  ROM和RAM的区别

ROM(Read-Only Memory)只读存储器是一种只能读出事先存储数据的固态存储器。ROM 的特点是在数据存储后,数据不可以被修改,即只能读取数据,不能写入。ROM 在断电后仍然可以保存数据,因此常用于存储固定的系统信息或程序,例如操作系统或预设的应用程序等。

主要特点:

永久性:ROM中的数据在断电时不会丢失,因此被称为非易失性存储器。
只读性:ROM的内容只能被读取,无法直接修改。它通常在制造过程中被预先写入或烧录,供计算机系统在启动时使用。


RAM(Random Access Memory)随机存取存储器是一种可以随机读写数据的存储器。RAM 的特点是数据可以被随机读取和写入,但只有在电源存在的情况下可以保持数据的完整性。RAM 主要用于存储运行时使用的数据和缓存,例如操作系统的临时数据或应用程序的缓存数据等。

主要特点:

临时性:RAM存储的数据在断电时会丢失,因此称为易失性存储器。
可读写:RAM可以被快速读取和写入,它的存储单元可以根据需要来读取和修改数据。
容量和速度:RAM的容量可以从几兆字节(MB)到数百GB不等,速度非常快,可以通过高速总线迅速访问数据。


        ROM 常用于存储固定的系统信息或程序,例如操作系统或预设的应用程序等。

        而 RAM 则主要用于存储运行时使用的数据和缓存,例如操作系统运行时的临时数据或应用程序的缓存数据等。

2.  GPIO的八种工作模式

浮空输入(GPIO_Mode_In_FLOATING):该模式下,GPIO口不连接任何功能,处于浮空状态,可以用于读取外部的开关状态或传感器信号。

上拉输入(GPIO_Mode_IPU):该模式下,GPIO口通过上拉电阻连接到正电源,可以用于读取外部的开关状态或传感器信号。

下拉输入(GPIO_Mode_IPD):该模式下,GPIO口通过下拉电阻连接到地电源,可以用于读取外部的开关状态或传感器信号。

模拟输入(GPIO_Mode_AIN):该模式下,GPIO口可以作为一个模拟输入口使用,通常用于读取模拟信号,例如温度、湿度等传感器信号。

开漏输出(GPIO_Mode_Out_OD):该模式下,GPIO口可以通过控制输出高低电平,实现线与逻辑,并且可以实现电平的转换。

复用开漏输出(GPIO_Mode_AF_OD):该模式下,GPIO口可以通过控制输出高低电平,实现线与逻辑和电平转换的同时,还可以作为其他外设的扩展功能使用。

推挽输出(GPIO_Mode_Out_PP):该模式下,GPIO口可以通过控制输出高低电平,实现线与逻辑和电平转换的同时,还可以作为其他外设的扩展功能使用。

复用推挽输出(GPIO_Mode_AF_PP):该模式下,GPIO口可以通过控制输出高低电平,实现线与逻辑和电平转换的同时,还可以作为其他外设的扩展功能使用。

3.  串行通讯和并行通讯的区别

3.1  串行通讯

        数据逐位传输,传输线少,长距离传输时成本低,但数据的传输控制较复杂。按照实现数据同步的方式,可以分为同步串行异步串行两种。

        成本较低,布线简单,主要适合长距离传输和简单的点对点连接。常用于计算机与外部设备(如串口通信)之间的通讯。

3.2  并行通讯

        数据位同时通过多条数据线同时传输,传输速度较快,通常需要多条数据线,因此布线复杂,成本较高。

        因为多个数据位同时传输,所以会受到信号完整性和时钟同步的限制。

        适合短距离和需要高数据传输速率的应用,常见于计算机内部(如 CPU 与内存之间的通信)。

3.3  对比

特性串行通信并行通讯
通讯距离较远较近
抗干扰能力较强较弱
传输速率较慢较快
成本较低较高

4.  同步串行和异步串行的区别

4.1  时钟信号

同步串行:使用共享的时钟信号来同步数据的发送和接收。发送和接收设备在同一时刻对数据位进行采样。

异步串行:不使用共享的时钟信号。数据位的发送和接收通过起始位和停止位来界定,设备在发送数据时自行控制时序。

4.2  数据传输效率

同步串行:通常具有更高的传输效率,因为数据可以连续传输,没有额外的起始位和停止位。

异步串行:由于需要起始位和停止位,传输效率稍低,但更易于实现和控制。

4.3  应用场景

同步串行:常用于高速数据传输和短距离通信,如 SPI 和 I2C 接口。

异步串行:常用于较简单的串行通信场景,如 UART,适合长距离和低速传输。

4.4  硬件复杂性

同步串行:通常需要额外的硬件支持来生成和管理时钟信号。

异步串行:硬件设计较简单,易于实现,适合资源有限的应用。

千题千解·嵌入式工程师八股文详解_时光の尘的博客-CSDN博客


原文地址:https://blog.csdn.net/MANONGDKY/article/details/143484151

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!