文章目录

  • 前言
  • 一、简要介绍
    • 1、优点
    • 2、缺点
  • 二、信号线和连接方式
    • 1、信号线
    • 2、连接方式
      • 2.1 单主设备,单从设备
      • 2.2 单主设备,多从设备
      • 2.3 多主设备,多从设备
  • 三、数据传输格式
    • 1、数据传输过程
  • 二、SPI配置
    • 1、传输模式
    • 2、地址位宽
    • 3、仲裁机制
      • 3.1 SCL同步问题
      • 3.2 SDA仲裁问题
  • 三、UART、SPI、IIC协议比较

前言

2023.4.22


一、简要介绍

IICInter-Integrated Circuit,集成电路总线

  • 半双工协议
  • 多主设备,多从设备。通过地址索引,I2C可以使能所需从设备
  • 实现不同集成电路组件之间的控制功能

1、优点

  • 接口减少,控制简单,只需要两条总线
  • 通信速率高
  • 多主控,但任意时刻只有一个主控有效。最大主设备——无限制,最大从设备——127个

2、缺点

二、信号线和连接方式

1、信号线

需要连接上拉电阻,空闲时保持高电平

SDA(Serial Data) :串行数据线,用来传输数据信号。
SCL(Serial Clock):串行时钟线,用来传输时钟信号,一般是主设备向从设备提供。

2、连接方式

2.1 单主设备,单从设备

2.2 单主设备,多从设备

2.3 多主设备,多从设备

三、数据传输格式

主设备按照从高到低的顺序,依次发送地址位,从设备进行接收,通常情况下,地址位为7bit,读写选择为1bit。每个从设备有且只有一个唯一的地址编号。读写控制写为0,读为1

为了确保采样时信号稳定,对于主设备,我们在下降沿的时候将信号放在SDA上,对于从设备,我们在上升沿的时候进行采样。

空闲位:空闲时,SCK和SDA均为高电平

起始位:在SCL为1时,拉低SDA,开始数据传输,SCL开始翻转(下降沿检测)

应答位:正确接收从设备拉低信号SDA;未正确接收SDA依旧为高电平

数据位:每一次默认传输一个字节(即8bit),每个字节的传输都需要跟一个应答位(ACK/NACK)

停止位:SCL先拉高,随后SDA先为低后拉高(上升沿检测)

1、数据传输过程

起始位 + 7位地址 + 1位读写控制 + slave响应 + 8位数据 + 响应 + 8位数据 + 响应 + 停止位 (加粗部分为slave控制总线)

二、SPI配置

1、传输模式

  • 标准模式(Standard):100kbps
  • 快速模式(Fast):400kbps
  • 快速模式+(Fast-Plus):1Mbps
  • 高速模式(High-speed):3.4Mbps
  • 超快模式(Ultra-Fast):5Mbps(单向传输)

2、地址位宽

10位地址的从设备,和7位地址的从设备,都可以挂在一个总线上,彼此相互兼容

  • 标准I2C:七位寻址
  • 扩展I2C:十位寻址

3、仲裁机制

3.1 SCL同步问题

总线自带线与逻辑,任意一个拉低,总线表现为低电平,全部位高电平时,总线才是高电平。

假设有两个主设备都想拉低SCL信号,Master1先拉低 ,Master2后拉低,那么SCL会按照CLK1的时间来拉低自身(线与逻辑的应用),而假如Master1先拉高,Master2后拉高,SCL又会按照CLK2的时间来拉高自身。

当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号

3.2 SDA仲裁问题

每个主设备都需要在发送消息之前检测SDA线是低电平还是高电平。

  • 如果SDA线为低电平,则意味着另一个主设备可以控制总线,并且主设备应等待发送消息
  • 如果SDA线为高电平,则可以安全地发送消息

三、UART、SPI、IIC协议比较

低速通用协议接口

数据流向信号线通信类型选通方式主从设备
UART单工/半双工/全双工1/2条异步单主设备、单从设备
SPI全双工4条同步片选信号NSS单主设备、多从设备
IIC半双工2条同步地址索引多主设备,多从设备