I2CSPICANPCIe 对比

Posted Li-Yongjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I2CSPICANPCIe 对比相关的知识,希望对你有一定的参考价值。

唯一标识

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

  • 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

以上是关于I2CSPICANPCIe 对比的主要内容,如果未能解决你的问题,请参考以下文章

设置一个当前引脚电平 并与上一次的引脚设置电平 对比 如果设置有更新 则进行对应的更新的方法

上升沿和下降沿

使用 SPI 未在正确的时刻设置芯片使能

esp32gpio一直输出高电平

stm32串口通讯是检测边沿还是电平

CAN总线基础知识