1、三者的区别:
通信协议 | 硬件连接 | 总线速度 | 传输方式 | 功能 |
SPI | 4线(SCLK\MOSI\MISO\SS) | MHz | 同步 | 双向、全双工/半双工 |
I2C | 2线(SDA\SCL) | KHz | 同步 | 多设备总线 |
UART | 2线(TX\RX) | 115200bps | 异步 | 单向或双向串行 |
1. 硬件连接:SPI使用4线或3线(带主从模式)连接,其中包括一个时钟线、一个主从选择线、一个主设备输出线和一个主设备输入线。I2C使用两根线(SDA和SCL)进行连接。UART使用两根线(TX和RX)进行连接。
2. 总线速度:SPI可以达到较高的传输速度,通常可以在MHz范围内运行。I2C的传输速度较低,通常在几十至几百kHz之间。UART的传输速度通常较低,最常见的波特率是115200bps,但可以通过调整设置来达到更高的速度。
3. 总线拓扑:SPI可以支持一对多的连接方式,其中一个主设备可以控制多个从设备。I2C使用多主机和从机的方式,可以有多个主设备和多个从设备连接在同一条总线上。UART通常是点对点的,只支持一个发送器和一个接收器。
4. 传输方式:SPI和I2C是同步传输方式,数据传输时需要时钟同步。UART是异步传输方式,不需要外部时钟信号,数据通过起始位、数据位、校验位和停止位进行帧的组织和同步。
5. 功能:SPI在数据传输方面非常灵活,并且可以支持双向、全双工或半双工模式。I2C具有广泛的设备支持和多种设备可以共享同一条总线的能力。UART主要用于串行数据传输,通常用于简单的单向或双向串行通信。
2、单工,半双工,全双工:
单工(Simplex):单工通信只允许信息在一个方向上进行传输。发送方和接收方在通信中扮演固定的角色,发送方只能发送数据,而接收方只能接收数据。这种通信方式类似于广播,其中一方发送信息,而另一方只能接收信息,而不能传输回复。
半双工(Half Duplex):半双工通信允许信息在两个方向上进行传输,但不能同时进行。发送方和接收方可以交替地发送和接收数据,但在任何给定的时间内,只能有一个方向上的传输。当一方发送数据时,另一方必须等待,而不能同时发送数据。
全双工(Full Duplex):全双工通信允许信息在两个方向上同时进行传输。发送方和接收方可以同时发送和接收数据,因此在通信中可以实现双向传输,无需等待。这意味着发送和接收可以同时进行,提高了通信效率。
在全双工通信中,通信双方需使用独立的信道或信号线来进行发送和接收,以避免冲突。相比之下,半双工通信只需要使用一个信道或信号线来进行交替的发送和接收,因此可能会出现一定程度的冲突。单工通信只允许单一方向上的数据传输,因此通信效率相对较低。选择适当的通信模式取决于具体的应用场景和通信需求。
3、同步传输和异步传输:
1. 同步传输:同步传输是一种基于时钟信号进行数据传输的方式。发送方和接收方在数据传输之前需要保持时钟的同步。数据的传输速率是根据时钟信号的频率来确定的,发送方和接收方都严格按照时钟信号的边沿来进行数据的采样和发送。常见的同步传输协议包括SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)和SDI(Serial Data Interface)等。
2. 异步传输:异步传输是一种不依赖于固定时钟信号的数据传输方式。在异步传输中,每个数据帧具有独立的起始标志和停止标志,以标识一个完整的数据帧。发送方和接收方之间的数据传输速率不需要保持精确的同步。常见的异步传输协议包括UART(Universal Asynchronous Receiver/Transmitter)和USB(Universal Serial Bus)等。
主要区别如下:
- 同步传输依赖于时钟信号,而异步传输不依赖于时钟信号。
- 同步传输的传输速率受到时钟频率的限制,而异步传输的传输速率可以根据需求进行调整。
- 同步传输要求发送方和接收方保持时钟同步,而异步传输不需要时钟同步。
- 同步传输通常用于短距离高速数据传输,而异步传输通常用于串行通信和较长距离的数据传输。
4、串行和并行:
1. 串行传输:串行传输是一种按照顺序逐位传输数据的方式。在串行传输中,数据位逐个按照一定的顺序进行传输,每一位数据都需要依次传输完毕,然后再传输下一位数据。因此,串行传输只使用一条信号线或通道进行数据传输。串行传输的优势在于可以减少所需的物理连接数目,适用于较长距离传输和对线路复杂性要求较低的场景。常见的串行传输接口包括串行总线接口(如I2C、SPI)和串行通信协议(如RS-232)等。
2. 并行传输:并行传输是一种同时传输多个数据位的方式。在并行传输中,数据被分成多个数据位,并通过多条信号线同时传输。每个数据位通过一个独立的信号线进行传输,从而实现多个数据位的同时传输。并行传输的优势在于传输速度较快,适用于对传输速度要求较高的场景。然而,由于每个数据位需要独立的信号线,因此并行传输会增加所需的物理连接数目和线路复杂性,尤其在距离较远时会更加复杂。常见的并行传输接口包括传统的并行端口(如打印机接口)和内部总线(如PCIe)等。
标签:异步,同步,传输,UART,发送,SPI,串行,I2C,时钟 From: https://blog.csdn.net/weixin_48867130/article/details/143249986