嵌入式相关知识

I2C、SPI、UART通信

spi

  • 同步通信

SPI是四根线,分别是CS(片选)、MOSI(主发从收)、MISO(从发主收)、CLK(时钟),是一种同步传输协议。主机送出CLK信号,主机到从机的数据在MOSI线上传输,从机到主机的数据在MISO线上传输。

  • 全双工通信
  • 通过片选线来选取从设备,拉低选取从设备。

I2C通信

  • 同步通信

    I2C是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。

UART

UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。无论是主机还是从机,均可以自由发送数据,但是由于UART总线并没有时钟线,所以需要提前约定对应的波特率,这是一种很简单的传输协议。

异同点和使用场景

  • I2C和SPI都是同步协议,都有时钟信号,uart是异步。

  • I2C和SPI都可以有多个从设备

    但是I2C的从设备是通过地址来区分的,SPI的从设备是通过片选线来区分的,所以SPI总线上,每多挂一个从设备,就要多用一个线作为片选线,而I2C则不用,只要地址不冲突,可以随便挂设备。但是,I2C总线速度一般普遍慢于SPI,I2C一般的速度是100kbs、400kbps和1Mbps,而SPI的速度可以在几Mbps

  • UART和SPI、I2C不同,他是异步传输的

    一般来说传输速度比较慢,传统的传输速度一般在115200bps或以下

posted @ 2022-08-01 22:39  xfw121  阅读(47)  评论(0)    收藏  举报