嵌入式面试高频(通信协议)
通信协议
通讯总线 |
特点 |
全双工/半双工 |
I2C总线 |
两根线进行数据传输,具有主从设备的概念,适合连接低速设备。 |
半双工 |
SPI总线 |
通常需要4根线,支持高速全双工串行通信,适用于连接外围设备和外部存储器。 |
全双工 |
UART总线 |
使用两根线进行异步串行通信,适用于连接串口设备、无线模块等。 |
全双工 |
CAN总线 |
用于汽车和工业控制领域的通信总线,支持可靠的实时数据传输和多个节点之间的通信。 |
可以是全双工或半双工 |
USB总线 |
提供高速数据传输和连接外部设备的标准接口,可以支持多种传输模式,包括全双工和半双工。 |
可以是全双工或半双工 |
PCIe总线 |
高性能的外设连接总线,提供高速全双工数据传输和低延迟的连接。 |
全双工 |
以太网 |
用于连接网络接口控制器和外部网络设备,支持局域网或互联网连接。 |
通常是全双工 |
1 串行和并行的区别⭐⭐⭐⭐⭐
串行和并行都是指处理数据的方式,其主要区别在于数据处理的顺序和方式。
串行指的是数据处理的顺序是逐个进行的,即一次只处理一个数据,等待上一个数据处理完成后再进行下一个数据的处理。串行处理可以用于一些简单的数据处理场合,比如计算序列中的数值加总等。
而并行则是指数据处理的顺序是同时进行的。在同一时间内可以同时对多个数据进行处理,从而提高数据处理的效率。常见的并行方式有多线程和分布式处理,这些方法可以将数据拆分成多个子任务,分别由多个处理器或线程同时进行处理,最后进行整合。
在实际应用中,串行和并行的选择取决于数据处理的任务和要求。对于简单的数据处理场合,串行处理已经够用。而对于更加复杂的数据处理任务,特别是在大数据领域,不采用并行处理方式几乎是不可行的。并行处理可以大大缩短处理时间,提高处理效率,并提供更好的应用性能和响应速度。
2 异步传输和同步传输的区别⭐⭐⭐⭐⭐
异步传输和同步传输都是指数据传输的方式,其区别主要在数据传输的实现方式和数据传输的效率上。
同步传输是指数据传输时,每次传输都需要等待接收方对前一次数据的确认后才能进行下一次数据传输。在数据传输过程中需要有一定的握手协议来确认数据的接收和发送,以保证数据的完整性和正确性。同步传输的实现方式相对来说比较简单,但其传输效率较低,因为每次传输都需要等待确认后才能进行下一次传输。
异步传输则是指数据传输时,不需要等待接收方的确认,数据传输和数据处理可以同时进行,异步传输的实现方式较为复杂,但传输效率较高,在一些复杂数据传输场景下特别是在高速网络传输中,异步传输的效果更加明显。
总之,同步传输更注重数据传输的安全和完整性,异步传输更注重数据传输的速度和效率。在实际应用中需要根据场景需求选择合适的传输方式。
3 说说你了解的总线⭐⭐⭐⭐⭐
4 IIC介绍,时序图,如何传输数据⭐⭐⭐⭐⭐
IIC(Inter-Integrated Circuit)是一种串行通信协议,也称为I2C总线。它由Philips(现在是NXP半导体公司)公司在1980年代初开发,用于连接微控制器、传感器、存储器和其他外设。I2C协议使用两根线(SDA和SCL线)进行通信,其中SDA线是数据线,SCL线是时钟线。I2C协议在工业控制、智能家居、物联网、数字信号处理等领域都有广泛应用。
IIC的传输方式是主从式,由主设备控制整个数据传输过程。IIC总线上的设备包括一个主设备和多个从设备,主设备负责向从设备发送指令或数据,从设备则负责处理主设备发出的指令或数据,并将处理结果返回给主设备。
以下是IIC数据传输的时序图:
I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。
SDA:双向数据线,为OD (Open Drain,漏极输出) 门,与其它任意数量的OD与OC (Open Collector,集电极开路) 门成\线与\关系。
SCL:上升沿将数据输入到每个I2C从设备中;下降沿驱动I2C从设备输出数据。(边沿触发)
空闲状态:I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。
起始信号:当SCL为高电平期间,SDA由高到低的跳变;
停止信号:当SCL为高电平期间,SDA由低到高的跳变;
在传输数据时,主设备首先发送起始信号(Start),然后发送从设备地址和读写位(R/W)。从设备在收到地址后会回传一个应答信号(ACK)。接着,主设备向从设备发送数据,并在每个数据字节发送后等待一个应答信号(ACK)。当数据传输完成后,主设备向从设备发送停止信号(Stop)。
IIC总线的数据传输过程可以分为以下几个阶段:
1. 检测和发送起始信号(Start)
2. 发送从设备地址和读写位(R/W)
3. 接收从设备的应答信号(ACK)
4. 发送数据并等待从设备回传应答信号(ACK/NACK)
5. 检测和发送停止信号(Stop)
在IIC总线上,主设备和从设备通过时序精密同步来进行数据传输,需要遵循一定的传输规则和电气标准。它是一种可靠性高、控制简单、速度较快的通信协议,在现代数字、模拟电路设计和系统集成中具有广泛应用。
5 SPI总线,时序图,如何传输数据⭐⭐⭐⭐⭐
SPI(Serial Peripheral Interface)是一种用于连接微控制器和大型外设(如存储器、显示器和传感器等)的串行通信协议。它通常由主设备控制,可以同时与多个从设备进行通信,是一种高速数据传输协议。
SPI总线使用多线方式进行通信,。SPI主设备通过SCLK时钟线产生时钟信号,驱动从设备和主设备之间的数据传输。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
该专栏面向嵌入式开发工程师、C++开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、数电基础、模电基础、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等文章。超全的嵌入式软件工程师面试题目和高频知识点总结! 另外,专栏分为两个部分,大家可以各取所好,为了有更好的阅读体验,后面会持续更新!!!