嵌入式面试八股文(六)·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博客