| I2C | 2线(SDA\SCL) | KHz | 同步 | 多设备总线 |
| UART | 2线(TX\RX) | 115200bps | 异步 | 单向或双向串行 |
-
硬件连接:SPI使用4线或3线(带主从模式)连接,其中包括一个时钟线、一个主从选择线、一个主设备输出线和一个主设备输入线。I2C使用两根线(SDA和SCL)进行连接。UART使用两根线(TX和RX)进行连接。
-
总线速度:SPI可以达到较高的传输速度,通常可以在MHz范围内运行。I2C的传输速度较低,通常在几十至几百kHz之间。UART的传输速度通常较低,最常见的波特率是115200bps,但可以通过调整设置来达到更高的速度。
-
总线拓扑:SPI可以支持一对多的连接方式,其中一个主设备可以控制多个从设备。I2C使用多主机和从机的方式,可以有多个主设备和多个从设备连接在同一条总线上。UART通常是点对点的,只支持一个发送器和一个接收器。
-
传输方式:SPI和I2C是同步传输方式,数据传输时需要时钟同步。UART是异步传输方式,不需要外部时钟信号,数据通过起始位、数据位、校验位和停止位进行帧的组织和同步。
-
功能:SPI在数据传输方面非常灵活,并且可以支持双向、全双工或半双工模式。I2C具有广泛的设备支持和多种设备可以共享同一条总线的能力。UART主要用于串行数据传输,通常用于简单的单向或双向串行通信。
单工,半双工,全双工:
单工(Simplex):单工通信只允许信息在一个方向上进行传输。发送方和接收方在通信中扮演固定的角色,发送方只能发送数据,而接收方只能接收数据。这种通信方式类似于广播,其中一方发送信息,而另一方只能接收信息,而不能传输回复。
半双工(Half Duplex):半双工通信允许信息在两个方向上进行传输,但不能同时进行。发送方和接收方可以交替地发送和接收数据,但在任何给定的时间内,只能有一个方向上的传输。当一方发送数据时,另一方必须等待,而不能同时发送数据。