I2C通信协议

这块我们来说一下I2C通信协议。

 IIC有两根线,SCL时钟线,SDA数据线,主机可以挂载很多从机, 多个主机也可以挂载相同的从机,但是同一时刻只能有1个主机同一个从机进行通信。并且时钟线SCL是只能由主机控制,数据线SDA主机和从机都可以控制。

IIC时序

1.IIC空闲状态:SDA为高电平,SCL为高电平。

2.起始信号:当SCL为高电平时,SDA由高电平转变为低电平。

3.停止信号:当SCL为高电平时,SDA由低电平转变为高电平

4.应答或者不应答

当发送低电平时为应答,发送高电平为不应答

应答信号是在主机接收到数据后给从机的信号,一般选择不去应答,然后发送停止信号,如果应答从机可能还会继续发送数据。

 5.时序

平时正常使用是写入一个字节(8个bit位),此时是向所有的从机发送,但是从机会去比对发送的数据,这个数据是从机的地址,这个地址是7位bit,但是不知道是给从机发还是从从机收到数据,所以最后一位数据是确定去发送还是去接收数据。

 如图第1-7位是从机的地址位,最后第0位是控制向从机写还是从从机读数据,当第0位为0时表示主机向从机写数据,当为1时代表主机要接收从机的数据。

所以假设从机地址为1010000,此时要读数据,最后一位发送的就是1,最后的数据也就是0xA1,

当要向该从机写数据时就发送0xA0。

总体时序

在读数据和写数据的时候需要去同步传输的数据,IIC是通过SCL这根时钟线来同步传输的数据的,在写入1个bit位时,需要先将SCL拉低,然后改变此时你想传输的1位数据,再将SCL时钟线拉高,也就是从低电平转变为高电

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值