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

ops/2024/11/14 3:37:03/

目录

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博客


http://www.ppmy.cn/ops/132705.html

相关文章

sql专题 之 三大范式

文章目录 背景范式介绍第一范式:属性不可再分第二范式第三范式注意事项 为什么不遵循后续的范式数据库范式在实际应用中会遇到哪些挑战? 背景 数据库的范式(Normal Form)是一组规则,用于设计数据库表结构以 减少数据冗…

利用RANSAC算法拟合平面并生成包围框的点云处理方法,点云聚类、质心坐标、倾斜角度、点云最小外接矩形

该代码用于分析和处理点云数据,通过对点云数据进行裁剪、平面拟合和生成包围框来提取特定区域的特征并发布结果。主要使用了RANSAC算法来识别并拟合平面,从而提取平面的法向量,接着根据该平面计算出该区域的最小矩形包围框(Boundi…

微信小程序——用户隐私保护指引填写(详细版)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

苍穹外卖 新订单提醒

通过WebSocket技术实现新订单提醒功能,每当有新的订单,就在商家管理端发送消息提示。 WebSocketServer package com.sky.Websocket;import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PathVariable;im…

vue/react做多语言国际化的时候,在语言配置中不同的语言配置不同的字体,动态引入scss里面

如果想直接在vue文件的css里面使用,就可以使用i18n的t函数,注意t外层也有引号: font-size: v-bind("t(style.teamCurModelFontSize)"); 前提是要引入t函数:

性能调优专题(7)之Innodb底层原理与Mysql日志机制深入剖析

一、MYSQL的内部组件结构 大体来说,Mysql可以分为Server层和存储引擎层两部分。 1.1 Server层 Server层主要包括连接器、查询缓存、词法分析器、优化器等。涵盖MYSQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&#x…

Webserver(4.4)多进程/多线程实现并发服务器

目录 多进程实现并发服务器多线程实现并发服务器TCP状态转换 多进程实现并发服务器 要实现TCP服务器处理并发的任务,使用多线程或者多进程来解决 一个父进程,多个子进程 父进程负责等待并接受客户端的连接 子进程:完成通信,接收一…

qt配合映美精取图开发

最近开发一个项目,用映美精相机配合halcon做取图开发,由于网上资料小特意写个记录。到映美精官网下载驱动,映美精官网,下载映美精的工具开发包SDK 映美精的SDK下载SDK后找到classlib文件夹 里面就是SDK新建一个qt程序&#xff0c…