SPI、I2C 和 UART 协议有什么区别?

I2C 和 SPI 均与专用时钟同步线 。

物理层:I2C使用2个引脚:SDA(双向数据)和SCL(时钟)。 SPI 至少使用 3 个引脚:MOSI(主输出、从输入)、MISO、SCK 和零个或多个 /SS(从选择)。 时钟:I2C 使用一些标准时钟速率:100 KHz、400 KHz 和一些更快的模式。SPI 时钟可以低于所有连接设备的最大时钟频率(通常在 10 MHZ 左右) 应用:I2C比SPI通信协议实现起来更便宜。SPI只支持一个master 总线上的设备,而 I2C 支持多个主设备。 总体而言,SPI更适合高速和低功耗应用,而 I2C 更适合与大量外设通信以及 I2C 总线上外设之间主设备角色的动态变化。 另一方面,UART 是异步的,没有时钟线 UART:代表通用异步接收/传输。 简单来说𝗨𝗔𝗥𝗧 𝗻𝘁 在接收和发送控制器之间。 接收 MCU 将期望以特定波特率(例如 9600)将位接收到其 RX 端口,而发送 MCU 将以相同的波特率(9600)发送位。双方之间没有主时钟。

  • 同步半双工的I2C
  • 同步全双工的SPI
  • 异步半双工的UART