if (pInformation->
pInformation->
pInformation->了从机地址但是在传输了一段时间后不能接受更多的数据字节,主机必须终止传输。这个情
况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平 主机产生一个停止或重复起始条件。
如果主机为接收模式,它必须在从机发送结束,时钟停止的最后一个字节不发送响应位,从而告诉发送器数据结
束。从机发送器释放数据线,允许主机产生一个停止或重复起始条件。
数据传输时序,数据响应时序如下图:
数据响应:
数据仲裁:
所有主机在SCL总线上产生自己的时钟来传输数据,数据只在时钟的高电平周期有效。
时钟同步通过线与SCL线来执行。就是说:SCL线的高低切换会使器件开始数它们的低电平周期,而且一旦器件的时钟变低,它会使SCL线保持这种状态知道到达时钟的高电平。但是,当变为高电平时,另一个总线上的时钟仍处于低电平周期,这个低到高的电平变化不会出现在总线上改变SCL的状态。所以,SCL线被最长低电平周期的器件所持有,此时低电平周期短的器件会进入高电平的等待状态。
等所有器件数完了它们的低电平周期后,时钟线会被释放为高电平。之后所有器件开始数他们的高电平,最早数完高电平的器件会再次把SCL拉低,因此高电平周期是由高电平周期最短的器件决定的。
总线仲裁 同步时钟时序图:
仲裁:
主机只能在总线空闲的时候启动传输。两个或多个主机可能在起始条件的最小持续时间内产生一个起始条件,结果在总线上产生一个规定的起始条件。
当SCL线是高电平时,仲裁在SDA线发生:在其他主机发送低电平时,发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不同。
仲裁可以持续多位。最开始是比较地址位,如果有相同主机尝试寻址相同的器件,仲裁会继续比较数据位(如果是主机-发送器),或者比较响应位(如果是主机-接收器)。因为IIC总线的地址和数据信息由赢得仲裁的主机决定,在仲裁过程中不会丢失信息。即最后赢得总线的主机是发送或接受的数据是正确的主机。
丢失仲裁的主机可以产生时钟脉冲知道丢失仲裁的该字节末尾。
由于HS模式的主机有一个唯一的8位主机码,因此一般在第一个字节就可以结束仲裁。
如果主机也结合了从机的功能,而且在寻址阶段丢失仲裁,它很可能就是赢得仲裁的主机在寻址的器件。因此丢失仲裁的主机要立即切换到从机模式。
两个主机抢总线的时序图:
IIC总线的控制只由地址或主机码以及竞争主机发送的数据决定,没有中央主机,总线也没有任何定制的优先权。
注意:在串口传输时,当重复起始条件或停止条件发送到IIC总线的时候,仲裁过程仍在进行。
下面情况仲裁不发送:
1. 重复其实条件和数据位
2. 停止条件和数据位
3. 重复起始条件和停止条件
从机不会介入仲裁过程。
用时钟同步机制作为握手
在字节级的快速传输中,器件可以快速接受字节,但是需要更多的时间保存接受到的字节或准备另一个要发送的字节。因此,从机可以以一种握手过程在接受和响应一个字节后使SCL线保持低电平,迫使主机进入等待状态,直到从机准备好下一个要传输的字节。时序参考Fig.6。
在位传输级可以通过延长每个时钟的低电平周期减慢总线时钟。从而使主机和从机都能适应器件内部的操作速率。
HS模式,握手功能只能在字节级使用。
数据格式:
7位的地址格式:
数据的传输如下图格式:
在起始条件(S)后,发送了一个从机的地址。地址共7位,紧接着的第8位是数据方向位(R/W)-‘0’ 表示发送写,‘1’表示请求数据读。数据传输一般由主机产生的停止位(P)终止。但是主机还希望在总线上通讯,它可以产生重复起始条件(Sr)和寻址另一个从机,而不是首先产生一个停止条件。在这种传输中,可能有不同的读/写格式组合。
如下图:
7位寻址:
IIC总线的寻址过程是在起始条件后的第一个字节决定了主机选择哪个主机。广播呼叫‘地址除外。使用这个地址,理论上所有器件都会发出一个响应。也可以使器件忽略这个地址。广播呼叫地址的第二个字节定义了要采取的行动。
当主机在总线上发送了7个地址位之后,系统中的每个器件都在其实条件后讲头7位与自己的地址比较。如果一样,器件会被主机寻址,从机的工作模式有第八位觉得(接受/发送)。
从机的地址位是由固定地址部分和可编程地址部分组成。如有4位固定的和3位通过芯片引脚可编程的那么可以挂载8个相同的芯片到IIC总线。
IIC地址的分配由IIC总线委员会协调进行。
起始位之后的第一个字节的一些特殊地址含义:
如下表:
|