iic,spi结构和区别

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

 

 SPI通信协议:

 是一种高速、全双工、同步通信总线,可以在同一时间发送和接收数据,SPI没有定义速度限制

 SPI特性

SPI总线包括4条逻辑线,定义如下:

  MISO:Master input slave output 主机输入,从机输出(数据来自从机);

  MOSI:Master output slave input 主机输出,从机输入(数据来自主机);

  SCLK : Serial Clock 串行时钟信号,由主机产生发送给从机;

  SS      : Slave Select 片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。

主机在MOSI线上发送一位数据,就算只进行单向的数据传输,从机也会MISO线上发送一位数据给主机



posted @ 2023-08-28 17:27  ddup123  阅读(171)  评论(0)    收藏  举报