星空 发表于 2021-7-13 20:26:55

i2c 协议通识

本帖最后由 星空 于 2021-9-27 15:58 编辑

1 I2C总线物理拓扑结构
I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。




2 i2c 总线协议
I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。

空闲:SCL高电平,SDA高电平

起始条件:SCL高电平,SDA下降沿

停止条件:SCL高电平,SDA上升沿

忙状态:正在进行数据传输的主从设备独占总线,其他设备无法访问

数据有效:在SCL的高电平期间,SDA保持稳定,数据有效。SDA的改变只能发生在SCL的低电平期间

ACK信号:数据传输的过程中,接收器件每接收一个字节数据要产生一个ACK信号,向发送器件发出特定的低电平脉冲,表示已经收到数据。

整个i2c通信的过程:

写数据
https://img-blog.csdn.net/20161006093503503?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
读数据
https://img-blog.csdn.net/20161006093519069?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center


设备地址:高7位设备地址,最低位为读写位。0表示主设备向从设备写数据,1表示主设备向从设备读数据
I2C总线上的每一个设备都对应一个唯一的地址,



页: [1]
查看完整版本: i2c 协议通识