• I2C、SPI、CAN、PCIe 对比


    唯一标识

    在社会上,靠身份证号,来唯一标识一个人。
    在计算机的世界里,通过什么来唯一标识一个外设呢?方案还不止一种

    • I2C
      • 使用地址(7 或 10 位)来唯一标识一个外设
    • SPI
      • 使用 CS 引脚来唯一确定通信的外设
    • CAN
      • 不对设备进行唯一标识,而是对报文进行唯一标识,设备处理自己感兴趣的报文 ID(11 位或 29 位)就行了
    • PCI
      • 则是对功能进行唯一标识,通过 BDF(Bus,Device,Function) 来唯一确定目标功能的位置。

    通信手段

    • I2C

      • 两根线
        • SCL:时钟线,时钟都是由 master 提供
        • SDA:双向数据线,发送数据或者接收数据(收发不能同时)
      • 起始信号、地址字节和读写命令、应答信号、停止信号
      • 特殊情况,当 master 决定不再接收数据时,应向 slave 发送 NACK 信号
    • SPI

      • 四根线
        • SCLK:时钟线,时钟都是由 master 提供
        • MOSI:Master 输出,Slave 输入,由 Master 向 Slave 发送数据
        • MISO:Master 输入,Slave 输出,由 Slave 向 Master 发送数据
        • CS:Chip Select,片选信号,Master 通过拉低 Slave 的片选信号选择 Slave
    • CAN

      • 两根线
        • CAN_H
        • CAN_L
      • CAN_H = CAN_L = 2.5V,隐性电平,逻辑 1
      • CAN_H = 3.5V,CAN_L = 1.5V,显性电平,逻辑 0
    • PCIe

      • x1:1 个 lane
      • x4:4 个 lane
      • x32:32 个 lane
      • 1 个 lane
        • 两对差分信号线(4 根线),一对用来发,一对用来收
          在这里插入图片描述
      • 差分时钟(两根线)
      • 时钟架构有三种 在这里插入图片描述

    数据报文

    • I2C
      • 按字节传输
        在这里插入图片描述
        在这里插入图片描述
    • SPI
      • 按字节传输
        在这里插入图片描述
    • CAN
        • 数据帧,软件实现,所以只要掌握数据帧、遥控帧即可
        • 遥控帧,软件实现
        • 错误帧,硬件完成
        • 过载帧,硬件完成
      • 每帧由 7 部分组成
        • 帧起始、仲裁段、控制段、数据段、CRC 段、ACK 段、帧结束
          在这里插入图片描述
    • PCIe
      • 四层
        • 应用层,不是 PCIe Spec 规定的内容,完全由用户自行设计。下面三层都是 PCIe Spce 明确规定的,要求设计者严格遵循。
        • 事务层,Transaction Layer,收发事务层包(Transaction Layer Packet,TLP)
        • 数据链路层,Data Link Layer,收发数据链路层包(Data Link Layer Packet,DLLP)
        • 物理层,Physical Layer

      • 在这里插入图片描述

      • 在这里插入图片描述
      • TLP 报文格式
        在这里插入图片描述

    特点

    • I2C

      • 同步、半双工
      • 速率
        • 标准模式 100kbps
        • 快速模式 400kbps
        • 高速模式 3.4Mbps
      • 同一时刻只能有一个 master 与一个 slave 通信
    • SPI

      • 同步、全双工

      • 同一时刻只能有一个 master 与一个 slave 通信

      • 有 4 种不同的数据传输时序(工作模式)

      • 速率

        • 受限于硬件,STM32 是 18M
      • 主要用在 EEPROM、FLASH、实时时钟、AD 转换器、数字信号处理器、数字信号解码器

      • 缺点

        • 没有应答机制确认是否收到数据
      • CAN

        • 多主总线,多主竞争
        • 废除传统的地址编码,代之使用对通信数据块进行编码。优点是节点个数在理论上不受限制。
        • 数据段长度最多为 8 字节,不会占用总线太长时间,实时性高
        • 速率
          • 最高 1M
    • PCIe

      • 也是串行总线
      • 点对点(传统 PCI 是共享总线)
      • 全双工
      • 按需调整 PCIe 设备带宽
        • 显卡,多个 lane
        • 网卡,一个 lane
      • 速率
        • 注意这里是 大B
          在这里插入图片描述
  • 相关阅读:
    多重背包理论基础
    微服务架构整理-(十二、SpringCloud实战之Zuul网关)
    AspNetCore配置多环境log4net配置文件
    asp.net core 8.0 使用 Autofac ioc 容器 具体实例
    什么耳机戴着舒服耳朵不疼?不塞耳道的骨传导耳机
    终端业务下滑,ICT基础设施业务保持稳定增长,3016亿符合预期
    财务小知识之名词解释
    mysql数据库日志
    java每日一练(4)
    调试 Mahony 滤波算法的思考 10
  • 原文地址:https://blog.csdn.net/lyndon_li/article/details/128167893