杨浦做网站,wordpress所有函数,网站效果图用什么做,天津seo数据监控一、IIC通信原理 IIC通信和串口通信有一定的相似之处#xff0c;都有一根共地线和两根数据线。但是传递外部信息#xff0c;串口有两根数据线可以进行双向通信#xff0c;也就是全双工通信。而在IIC通信下#xff0c;其中一条数据线是用于提供同步时钟脉冲的时钟线(SCL)都有一根共地线和两根数据线。但是传递外部信息串口有两根数据线可以进行双向通信也就是全双工通信。而在IIC通信下其中一条数据线是用于提供同步时钟脉冲的时钟线(SCL)只有一根数据线(SDA)能够用于传递外部信息。因此虽然IIC可以进行双向通信但是不能够同时进行也就是半双工通信。 IIC采用主从模式支持多设备通信。即一台被当作主机剩下的当作从机。由主机率先发起通信从机才能根据主机的指令回复相应的信息。 像这种支持多个设备进行通信的通信协议我们称之为总线协议。在IIC总线上每个从机都有其唯一的设备地址。例如AHT20的设备地址是0x70,OLED设备地址是0x7A。当主机需要与AHT20进行通信时,在通信开始时主机就会发送AHT20设备地址。当从机收到主机发来是自己的设备地址后就会向主机发送响应数据(ACK)。如果不是自己的设备地址就把信息抛弃。 在串口中通信的双方首先约定通信的速度即比特率。然后双方按照这一速度在合适的时机去设置/读取数据线上的高低电平这种模式称之为异步模式。这种的优点就是通信便捷但是缺点就是要保证双方各自的时钟系统是精确的。 但是有很多小型传感器并没有精确的晶振提供时钟基准因此IIC选择了同步通信方式。由主机通过SCL发送固定频率的时钟脉冲信号来作为IIC总线上的统一时钟源。
二、IIC通信步骤 主机负责提供同步的脉冲信号与从机进行时间同步。具体就是当时钟线处于低电平时数据发送方有权设置数据线的电平当时钟线为高电平时无数据线控制权的设备读取数据线电平。 首先IIC数据线与时钟线上往往有一个上拉电阻进行上拉。所以在未开始通信时数据线和时钟线都处于高电平。在通信开始时数据线的控制权在主机上从机负责在时钟线在高电平时读取数据。在时钟线依旧是高电平时将数据线提前下拉。所有从机就读取到一个低电平意味着开始接收主机指令。而后时钟线提供一个恒定频率的时钟脉冲信号主从机根据这个时钟信号开始通信操作。例如主机要发送0x71(0111001)数据。 在时钟线低电平时数据线为高电平说明主机发送的数据是1数据线为低电平时数据发送的就是0在时钟线高电平时数据线为高电平说明从机读取到的数据是1数据线为低电平时从机读取到的就是0.. 将0x71发送完后从机AHT20收到主机与自身建立通信的信息返回一个ACK信号并获得数据线控制权。在物理上的表现就是时钟线处于低电平时从机将数据线电平拉低。而后就与之前的方式相反了。主机负责在时钟线在高电平时读取数据从机在时钟线低电平时写数据。如此反复直到AHT20返回所有数据。而后在时钟线为高电平时主机将数据线拉高表示IIC通信结束。
也就是说当时钟线为高电平时主机拉低数据线就代表通信开始时钟线为高电平的期间, 拉高数据线, 就表示本次通讯结束。