i2c协议

Posted 四季帆

tags:

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

1. 定义

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

2. 起始条件S和停止条件P

        起始条件S:当SCL高电平时,SDA由高电平向低电平转换;

        停止条件P:当SCL高电平时,SDA由低电平向高电平转换。

3. 数据传输格式

        传输的每个字节必须为8位,而总字节数不受限制。每个字节后必须跟一个响应位。

4. 响应ACK

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

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

I2C总线协议的软件模拟实现方法

[I2C]I2C总线协议图解

通过KXTF9-2050芯片分析I2C协议

I2C 总线协议详解

I2C协议及裸机程序分析

STM32基于I2C的AHT20温湿度数据采集