自学笔记I2C总线

I2C总线

  • I2C总线概述
    • I2C总线特点
    • I2C总线工作原理
    • 数据有效性
    • 数据传输格式
    • 寻址字节的位定义
  • I2C总线时序
    • 起始和终止信号
    • 应答信号
    • 主机向从机发送数据
    • 主机在第一个字节后,立即从从机读数据
    • 传输中需要改变方向

I2C总线概述

I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I2C总线特点

I2C总线最主要的优点是其简单性有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

I2C总线工作原理

I2C总线是由数据线SDA时钟SCL构成的串行总线,可发送接收数据。

每个连接到总线的设备都有一个独立的地址,主机可以通过该地址来访问不同设备。主机通过SDA线发送设备地址(SLAVE_ADDRESS)查找从机,SLAVE_ADDRESS可以是7位或10位,紧跟着SLAVE_ADDRESS的一个数据位用来表示数据传输方向,即第8位或11位。为0时表示写数据,为1时表示读数据

自学笔记I2C总线_第1张图片

数据有效性

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化

自学笔记I2C总线_第2张图片

数据传输格式

每一个字节必须保证是8位长度。数据传送时,先传送最高位MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。

寻址字节的位定义

自学笔记I2C总线_第3张图片

1~7位组成从机的地址。
0位是数据传送方向位,为0时表示主机向从机写数据,为1时表示主机由从机读数据

I2C总线时序

起始和终止信号

SCL线为高电平期间,SDA线由高电平低电平的变化表示起始信号
SCL
线为高电平期间,SDA线由低电平高电平的变化表示终止信号

自学笔记I2C总线_第4张图片

应答信号

接收数据的IC(外设或者MCU)在接收到8bit(一个字节)数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据

另外的一种解释

数据接收方收到传输的一个字节数据后,需要给出响应,此时处在第9个时钟,发送端释放SDA线控制权将SDA电平拉高由接收方控制。若希望继续,则给出“应答(ACK)”信号,即SDA为低电平;反之给出“非应答(NACK)”信号,即SDA为高电平

自学笔记I2C总线_第5张图片

主机向从机发送数据

在这里插入图片描述

  • 阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
  • “0”表示主机发送数据(T) ,“1"表示主机接收数据(R)
  • A表示应答,A非表示非应答(高电平)。S表示起始信号,P表示终止信号。

主机在第一个字节后,立即从从机读数据

在这里插入图片描述

  • 阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
  • “0”表示主机发送数据(T) ,“1"表示主机接收数据(R)
  • A表示应答,A非表示非应答(高电平)。S表示起始信号,P表示终止信号。

传输中需要改变方向

在这里插入图片描述
在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。

  • 阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送。
  • “0”表示主机发送数据(T) ,“1"表示主机接收数据(R)
  • A表示应答,A非表示非应答(高电平)。S表示起始信号,P表示终止信号。

你可能感兴趣的:(自学笔记I2C总线)