[国嵌攻略][152][I2C总线介绍]

IIC电气特性

I2C(inter intergrated circuit)总线是由philps公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I2C总线只有两根双向信号线:

SDA:serial date line   数据线

SCL:serial clock line   时钟线

总线寻址

I2C总线规定:从设备采用7位的地址。D7-D1:从设备地址。D0:数据传输方向,为0时表示主设备向从设备写入数据,为1时表示主设备从从设备读取数据。主设备发送地址时,总线上的每个从设备都将这7位地址码与自己的地址进行比较,如果相同,则认为自己被主设备寻址,根据R/W位将自己确认为发送器或接受器。

从设备的地址由固定部分和用户自定义部分组成:

1.固定部分:D7-D4共4位决定。这是由从设备的生产厂商生产时就已经确定的值。

2.用户自定义部分:D3-D1共3位决定。这三位通常对应设备的3个引脚(A0-A2)。把3个引脚接到不同的电平上,就可以形成一个3位的数值。

空闲状态

I2C总线的SDA和SCL两条信号线同时处于高电平时,规定总线为空闲状态。

起始状态

在时钟线SCL保持高电平期间,数据线SDA上的电平被拉低(及负跳变),定义为I2C总线的启动信号,它标志着一次数据传输的开始。

结束状态

在时钟线SCL保持高电平时,数据线SDA被释放,使得SDA返回高电平(即正跳变),称为I2C总线的停止信号。

数据传输

I2C总线上的所有数据(地址和数据)都是以8位一个字节为单位传送的。

应答数据

发送器每发送一个字节,就在时钟信号脉冲第9位释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,认为有效应答ACK,表示接收器已经成功接收了该字节,应答信号为高电平时,认为无效应答NACK,表示接收器没有成功接收该字节。

原文地址:https://www.cnblogs.com/d442130165/p/5284064.html