I2C关于读写控制位

*1、I2C协议简介*
2、空闲开始/应答/结束信号
2.1空闲
I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
2.2 开始和结束
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

2.3 应答
发送方在发送完8bit数据后,在第9个时钟期间释放数据线,等待接收方的应答信号。接收方此时应给出应答(ACK)或非应答信号(NAK),SCL被拉低表示为应答信号,SCL置高为NAK信号。注意应答信号由接收方发出(可能为主,也可能为从,主从和发送接收不要混淆)。接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。

3、I2C读写
不论是读还是写,都是由主设备发起和结束的。也就是由主设备产生开始和结束条件。I2C设备地址为8bit,其中最低位为读写位,0为写,1为读。实际地址位为7bit。
3.1 写过程
可以总结为以下过程:
1、发送起始位
2、发送设备地址信息(写)
4、发送寄存器信息
5、发送数据信息
6、发送停止位
上述过程省略了等待应答,每发送一个字节数据都会等待应答。

这里写图片描述
3.2 读过程
读过程相对来讲会复杂一些,需要先写(写要读的寄存器)再读。并且读的时候由主设备发送ACK
1、发送起始位
2、发送设备地址信息(写)
4、发送要读的寄存器信息
5、重新开始,restart
6、发送设备地址信息(读)
7、读取数据
8、接收完毕,发送NAK
9、发送停止信号

这里写图片描述

读过程的小结
读过程可以理解先发送一个地址,这个地址不能是只能是地址,最后一位空着,为0。即相当于写。是相当于写地址。但是可以理解它为纯地址,切记最低位不能是1.即地址不能是读地址。
然后再发送读地址进行读。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值