嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > I2C协议简介

I2C协议简介


大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是嵌入式常用通讯协议I2C协议简介,希望能对你有所帮助


一、I2C协议介绍

1.1 I2C简介

Inter-Integrated Circuit 是一种简单、双向二线制同步串行总线。

1.2 特点

a)同步,半双工
b)两根线,串行时钟线SCL,产生同步时钟脉冲;串行数据线SDA,传输串行数据。
c)I2C总线上可以连接多个设备,既可以做主设备,也可以做从设备
d)同步时钟由主设备产生

1.3 协议格式

a)起始信号:SCL为高,SDA由高变低(空闲状态都为高电平)
b)停止信号:SCL为高,SDA由低变高
c)应答信号:第9个时钟周期,SDA为低
d)非应答信号:第9个时钟周期,SDA为高

1.4 写时序

a)主机发送起始信号
b)发送从设备的地址(7bit) + 1bit写命令(0表示写,1表示读)
c)从机产生一个ACK信号,表示有这个设备
d)发送8bit寄存器地址(此时不需要发写控制位)
e)从机产生应答信号,表示设备内有这个寄存器地址
f)主机写入数据(8bit)
g)从机产生ACK信号
h)是否继续发送,不继续发送的话,就发送停止信号

1.5 读时序

a)主机发送起始信号
b)发送从设备的地址(7bit) + 1bit写命令(0表示写,1表示读)
c)从机产生一个ACK信号,表示有这个设备

d)发送8bit寄存器地址(此时不需要发写控制位)
e)从机产生应答信号,表示设备内有这个寄存器地址
f)再次发送起始信号
g)发送从设备的地址(7bit) + 1bit读命令(0表示写,1表示读)
h)从机产生ACK信号
i)读取数据(从设备将数据放入SDA上的过程,由硬件主动完成,不用人为的写入)
j)产生ACK信号,此信号是CPU产生
k)产生一个NACK信号,此信号是由CPU产生
l)产生一个停止信号


最后,如果觉得有帮助,希望你能一键三连(分享,点赞,在看),你们的认可是我持续输出的动力,感激不尽

欢迎大家骚扰