iic和spi简记

发布时间 2023-08-28 17:31:18作者: ddup123

IIC通信协议

两线式串行总线,多用于主控制器和从器件间的主从通信,在小数据量场合使用,有传输距离短,任意时刻只能有一个主机等特性。

 

 

  • SDA(Serial data)数据线,D代表Data也就是数据,Send Data 也就是用来传输数据的

  • SCL(Serial clock line)时钟线,C代表Clock 也就是时钟 也就是控制数据发送的时序的

  空闲状态下SCL 和SDA都保持高电平

 

开始信号:

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

数据有效性:

传输数据时,SCL=1高电平,数据线SDA必须保持稳定状态不允许有电平跳变,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

SCL=1时 数据线SDA的任何电平变换会看做是总线的起始信号或者停止信号。

应答信号:

主机完成8个数据位传输后,主机需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据,

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

  • 应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字节;
  • 应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。

IIC数据帧:

IIC的每一帧数据由9bit组成,

  如果是发送数据,则包含 8bit数据+1bit ACK,

  如果是设备地址数据,则8bit包含7bit设备地址 1bit方向+1bit ACK,

Start: IIC开始信号,表示开始传输。
DEVICE_ADDRESS:: 从设备地址,就是7位从机地址
R/W: W(write)为写,R(read)为读
ACK: 应答信号
WORD_ADDRESS : 从机中对应的寄存器地址 比方说访问 OLED中的 某个寄存器
DATA: 发送的数据
STOP: 停止信号。结束IIC

 

 


原文链接:https://blog.csdn.net/as480133937/article/details/105366932