IIC简介:
IIC总线只有2根信号线,一根是数据线SDA,一根是时钟线SCL。SDA和SCL均为双向信号线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接到总线上的任一器件,输出低电平,都将使总线的信号变低。
SCL--第一条线 ,SDA -- 第二条线,SCL在低电平时可随意对SDA线进行操作
IIC的协议层
I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
一、开始信号
二、IIC停止信号
三、ACK应答信号
NACK:
ACK:
三、下面以MPU6050初始化来说明IIC信号
这里拿第一条MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //复位MPU6050
来说明mpu6050写地址为0xD0 ->208 , 读地址为0xD1 ->209
写字节,IIC通信需要先发送从机的写地址,等待ACK回应后,发送需要写入的寄存器地址,ACK,最后发送需要写入的data,响应后发送IIC停止信号
如图
(1)发送从机写地址0xD0
(2)发送写寄存器地址0x6B
(3)写入寄存器内容0X80
链接:https://pan.baidu.com/s/1gIFjuPoaDLBjeDOVJZVuxA?pwd=6666
提取码:6666