UART、SPI、IIC、CAN几种通信协议的简述与对比

前置概念理解

串行/并行

  • 串行

    数据按位传输

    UART、SPI、IIC、CAN

  • 并行

    数据在多根信号线上同时传输

    计算机内部总线等

同步/异步

  • 同步

    通信双方共享时钟信号(线),通过一致的频率实现信息同步

    IIC;SPI;

  • 异步

    通信双方分别有自己的时钟,通过起始位/停止位等实现信息同步

    UART;CAN

全双工/半双工/单工

  • 全双工

    双向通信,双方都可发送数据,且可同时进行

    UART;SPI

  • 半双工

    双向通信,双方都可发送数据,但同一时刻只能一方发送,一方接收

    IIC;CAN

  • 单工

    单向通信,只能由一方发送数据,一方接收数据



通讯协议对比

UART

串行(单向只有一根数据线发送数据)、异步(无时钟线)、全双工(收发在不同线上)

速率受传输距离等外部环境影响

  • 信号线与接线方式

    • TX
    • RX
    • GND
    img
  • 通信结构

    点对点式:1对1

  • 信号类型与抗干扰能力

    单端信号(相对GND);抗干扰能力有限

    不包括RS-485

  • 数据通信格式

    按数据帧传输,一个字节数据:起始位+数据位+奇偶校验位+停止位

    使用起始位和停止位表示数据帧的开始和结束

    加上起始位/停止位,这一个字节数据不止8位

  • 使用场景

    计算机与外部设备通信,如计算机和蓝牙模块、无线模块等

    适用于速率有限,简单的点对点通信

SPI

串行(单向只有一根数据线发送数据)、同步(有时钟线)、全双工(收发在不同线上)

速率受信号干扰布线长度等外部环境影响

  • 信号线与连接方式

    • MOSI(Master Out Slave In)
    • MISO(Master In Slave Out)
    • SCLK(Serial Clock)
    • CS/SS(Chip Select / Slave Select)
    img
  • 通信结构

    主从式:1对多

  • 信号类型与抗干扰能力

    单端信号(相对GND);抗干扰能力有限

  • 数据通信格式

    因为有片选线,时钟线,因此没有一帧的概念;通过数据线和时钟线配合完成通讯

    img img
  • 设备选择

    单主设备:使用片选信号线(SS)

  • 使用场景

    高速数据传输,如读取SD卡等

    适用于高速数据传输,一主多从的情况

IIC

串行(单向只有一根数据线发送数据)、同步(有时钟线)、半双工(收发在同一根线上)

速率受总线负载、线缆长度、设备数量等外部环境影响

  • 信号线与连接方式

    • SDA(Serial data)
    • SCL(Serial clock line)
    img
  • 通信结构

    多主多从:多对多

    多个主设备可同时尝试访问总线,由总线仲裁机制确定谁可以获得总线控制权

  • 信号类型与抗干扰能力

    单端信号(相对GND);抗干扰能力有限

  • 数据通信格式

    • 开始信号

      SCL保持高电平,SDA由高电平变为低电平后,延时(>4.7us),SCL变为低电平。

      img
    • 停止信号

      SCL保持高电平。SDA由低电平变为高电平

      img
    • 应答信号

      主机SCL拉高,读取从机SDA的电平,为低电平表示产生应答

      低电平0表示应答,1表示非应答

    • 数据传送

      IIC信号在数据传输过程中,当SCL=1高电平时,数据线SDA必须保持稳定状态,不允许有电平跳变

      只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化

      img

      其中ACK应答由从机产生,其余均由主机产生

      img

      image-20240818234352494

      img

      image-20240818234409072

  • 使用场景

    与低速设备通信,如单片机与低速外设(温度传感器等)

    适用于低速通信应用,多主多从的情况

CAN

串行(差分信号,近似一根线发送数据)、异步(无时钟线)、半双工(收发都在差分信号线上)

通信速率相对较低,长距离

  • 信号线与连接方式

    • CAN_High
    • CAN_Low
    img
  • 通信结构

    多主多从:多对多

    所有节点均平等,任何节点都可作为主节点,发送的数据可广播到其它所有节点

    当多个主节点都尝试发送消息时,由can协议的仲裁机制来避免冲突

  • 信号类型与抗干扰能力

    差分信号;抗干扰能力较强

  • 数据通信格式

    较复杂,使用时注意波特率等;详情另行查阅

  • 应用场景

    多个控制单元之间通信,如汽车

    适用于长距离、抗干扰要求高、多主多从的情况



文章主要参考:

串口的认识(COM接口)_com串口-CSDN博客

SPI原理超详细讲解—值得一看-CSDN博客

IIC原理超详细讲解—值得一看-CSDN博客

秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!_程序获取 can协议所有id-CSDN博客

【一看就懂】UART、IIC、SPI、CAN四种通讯协议对比介绍_uart、can、spi、i2c通信协议-CSDN博客

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值