iic总线的仲裁机制,iic协议释放总线是什么意思

首页 > 体育 > 作者:YD1662023-11-20 03:43:05


根据上图我们分开进行分析:
当SCL为高电平的时候。SDA从高电平到低电平,这就是开始信号(中间会有极小的延时这点要注意,具体的请参考数据手册),如下图:

iic总线的仲裁机制,iic协议释放总线是什么意思(5)


当SCL为高电平的时候。SDA从低电平到高电平,这就是停止信号(中间会有极小的延时这点要注意,具体的请参考数据手册),如下图:

iic总线的仲裁机制,iic协议释放总线是什么意思(6)

3.I2C总线的字节格式

iic总线的仲裁机制,iic协议释放总线是什么意思(7)


发送到SDA上的每个字节必须是8位,每次传输可以发送的字节数量不受限制,数据从量高有效位(MSB)开始传输。接收器在每成功接收一个字节后都会返回发送器一个应答位。如果从机要完成一些其他功能(如一个内部中断服务程序)才能接收或发送下一个完整的字节,则可以使SCL保持低电平,从而迫使主机进入等待状态。当从机准备好新的字节数据传输时,释放SCL,数据传输便继续进行。

总结:
当IIC主机(不一定是发送端还是接受端)将8位数据或命令传出后,会将SDA信号设置为输入,等待从机应答( 等待SDA由高电平拉为低电平 )。
若从机正确应答,表明数据或者命令传输成功,否则传输失败,注意,应答信号是数据接收方发送给数据发送方的。

4.I2C应答信号

在主机发送完每一个字节数据后,释放SDA(保持高电平),被寻址的接收器在成功接收到每个字节后,必须产生一个应答ACK(从机将SDA拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平)。当从机接收不到数据或通信故障时,从机必须使SDA保持高电平。主机产生一个结束信号终止传输或者产生重复开始信号开始新的传输。


SDA上发送的每个字节必须为8位,其后必须跟一个应答位。12C总线上的所有数量都是以8位字节传送的,发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反一个应答信号。当应答信号为低电平时,规定为有效应答位(ACK),表示接收器已经成功地接收了该字节:当应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。


应答ACK要求接收器在第9个时钟脉冲之前的低电平期间将SDA拉低,并且确保在该时钟的高电平期间为稳定的低电平。如果接收器是主机,则在它收到最后一个字节后,发送一个NACK信号,以通知从机发送器结束数据发送,并释放SDA,以便主机接收器发送一个结束信号。传输过程中每次可以发送的字节数量不受限制。首先传输的是数据的最高有效位(MSB)。


如果从机要在完成一些其他功能之后才能接收或发送下一个完整的数据字节,则可以使SCL保
持低电平,从而迫使主机进入等待状态。当从机准备好接收下一个数据字节,并且释放SCL后,数据传输继续。
12C总线必须由主器件控制,即必须由主机产生开始信号、结束信号和时钟信号。在时钟信
号为高电平时,SDA上的数据必须保持稳定,SDA上的数据状态仅在时钟信号为低电平时才可
以改变,而当SCL为高电平时,SDA上数据的改变被用来表示开始条件和停止条件。需要说明
的是,当主机接收数据时,在最后一个数据字节,必须发送一个非应答信号(NACK),使从机
释放SDA,以便主机产生一个结束信号来终止总线的数据传送,

总结下来就这两句话:
每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以确认从机是否成功接收到了数据。
从机应答主机所需要的时钟仍是主机提供的,应答出现在每一次主机完成8个数据位传输后紧跟着的时钟周期,低电平0表示应答,1表示非应答。

5.I2C总线的仲裁机制
  1. 多主机 - 多个主机能够在没有冲突下的情况下,同时共存于总线上,能够通过总线仲裁避免碰撞或数据丢失。
  2. 仲裁 - 预先安排的时序,一次只授权一个主机控制总线。当SCL线是高电平时,仲裁在SDA线上发生。在其他主机发送低电平时,发送高电平的主机将会断开它的数据传输级,因为总线上的电平与它自己的电平不同(线与连接)。(也就是地址越小,竞争力越强)。
6.从机地址和子地址

在开始条件(S)后,主机发送一个从机地址(或叫作器件地址),指该器件在I2C总线上被主机寻址的地址,地址共有7bit,紧接着的第8bit是数据的读写标志位(0表示写,1表示读)。
从机地址构成:

iic总线的仲裁机制,iic协议释放总线是什么意思(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.