最后更新:2022-07-24 04:00:13 手机定位技术交流文章
IIC通信只有两条线就可以实现,一条是时钟线SCL,另一条是数据线SDA。是一种半双工通信协议。
关于《国际合作委员会协定》的主要事项是:
1.数据线SDA只能在时钟线SCL处于低水平时更改水平状态,不包括启动信号、响应信号、结束信号。
在传输数据时,数据线SDA水平在每个时间线SCL的高水平上收集,数据线SDA水平在每个时间线SCL的低水平上更改。
每个通信都需要接收器向发送器返回响应信号。
发送和接收可以控制时钟和数据线.
这里注意一个问题,接收者和发送者都可以驱动数据线,那么在同一时刻,一方面,驱动数据线是高压的,另一边将数据线驱动到低压水平,这样电路就会烧掉。关于这个问题,在另一篇文章:
硬件知识2–协议类(基于百问网硬件操作大全视频教程)_山、的博客-CSDN博客
中有介绍,这里不再详细说明,只简单说一下。

在硬件电路上,如上图所示,使用三极管驱动时钟和数据线。 因此,当两边驱动三极管时,数据线就会被拉下来,无需担心电路被烧毁。
IIC的时间序列如下。

分析上述时间序列:
初始信号: SCL = 1, SDA 生成一个下降。
最后信号: SCL = 1, SDA 生成一个沿着上升。
ACK响应信号:响应信号由接收机发送,并且在一小时内,SDA总是低压,被认为是响应信号,接收机接收接收接收机的响应,然后继续正常通信。
主机每发送8位,然后等待机器的响应信号。当第一个消息被发送时,发送的不是数据,而不是一个七位从家里的地址加上一个工作模式,R/W = 0: 写数据; R/W = 1: 读数据。从第二次开始,传输的八位数据都是真实数据,当然,每次你发送一个字,你必须等待机器的响应。
读取操作的顺序与上面类似,只要从机器发送数据,主机回应,流程是:主机产生开始信号–>主机发送7bit设备地址+1bitR/W–>从机回应–>从机发送8bit数据–>主机回应–> …从机发送8bit数据–>主机回应–>主机发送结束信号。
写操作流程
读操作流程:

在上面的图中,灰色背景表示数据方向是“主→主”,而白色背景表示“主→主”。
基于上述资料,我们可以总结IIC总线的下列通信过程:
1、主机发送起始信号启用总线。
主机发送一个单位数据,指示主机地址的传输方向和随后的数据(7位地址,1位方向命令)。
地址接收器向主机发送响应信号。
发送器发送一个数据字节.
接收机向接收机发送响应信号,
(周期的第4和第5步)
通信完成后, 主机发送停止信号释放总线.
注:上面的发送器和接收器可以是主机和机器,主要是看谁发送数据,谁接收数据。
本文由 在线网速测试 整理编辑,转载请注明出处。