串行通信的「三侠」:I2C/SPI/UART的工作原理以及区别

UART(串口):一对一的通信,异步,无时钟

  1. 只有两根线:发送TX,接收RX
  2. 双方是通过提前约定好波特率(速度),不用时钟线同步
  3. 一帧数据:起始位+数据位+校验位(可选)+停止位
  4. 优点:简单、线少、
  5. 缺点:速度慢、只能一对一
  6. 典型用途:串口打印、蓝牙、GPS
    总的来说:就是提前约定好速度,如果出现乱码,就是波特率不匹配

SPI(高速同步串行)全双工:一主多从,高速,有时钟同步

  1. 4根线:SCK时钟线、MOSI主发线、MISO从发线、CS片选
  2. 主机发时钟,从机跟着时钟跳边沿收发数据
  3. 同一时刻收发同时进行
  4. 主机选那个从机通信,就拉低那个CS
  5. 优点:非常快、
  6. 缺点:线多
  7. 典型用途:Flash、屏、高速传感器
    总的来说:就是主机打拍子,大家跟着跳,想跟谁聊就选谁聊

I2C:多主多从,半双工

  1. 只有两根线:SCL时钟线、SDA数据线
  2. 每台设备有唯一的地址
  3. 通信的流程:a.主机发开始信号-->b.在发从机的地址-->c.从机做出判断应答(ACK),无应答(NACK)-->d.然后读写数据-->e.最后结束信号
  4. 优点:省线、可挂很多设备
  5. 缺点:速度比SPI慢
  6. 典型用途:陀螺仪、RRPROM、小传感器
    总的来说:大家共用两条线,喊地址找人,一问一答聊天
posted @ 2026-04-07 22:28  小布丁鼠  阅读(18)  评论(0)    收藏  举报