对I2C总线的时钟同步和总线仲裁的深入理解

对I2C总线的时钟同步和总线仲裁的深入理解

对I2C总线的时钟同步和总线仲裁的深入理解

每一个IIC 总线器件内部的SDA、SCL 引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管、输入缓

冲为一只高输入阻抗的同相器[1]。这种电路具有两个特点:①由于SDA、SCL 为漏极开路结构,借助于外部的上拉电阻实现了信号的线与逻辑;

②引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出

一致。为时钟同步和总线仲裁提供硬件基础。

I2C 总线接口内部结构

IIC 设备对总线的操作仅有把线路接地输出逻辑0。基于IIC 总线的设计,线路上不可能出现电平冲突现象。如果一设备发送逻辑0,其他发送逻辑1,

那么线路看到的只有逻辑0。也就是说,如果出现电平冲突,发送逻辑0 的始

终是赢家。总线的物理接法允许主设备往总线写数据的同事读取数据。这样两

主设备争总线的时候赢家并不知道竞争的发生,只有输家发现了冲突当写一个

逻辑1,却读到了0 而退出竞争。时钟同步如果被控器希望主控器降低传送速度可以通过将SCL 主动拉低延长其低电平时间的方法来通知主控器,当主控器在准备下一次传送发现SCL 的电平被拉低时就进行等待,直至被控器完成操作并释放SCL 线的控制控制权。这样以来,主控器实际上受到被控器的时钟同步控制。可见SCL 线上的低电平是由时钟低电平最长的器件决定;高电平的时间由高电平时间最短的器件决定。这就是时钟同步,它解决了I2C 总线的速度同步。

总线仲裁假设主控器1 要发送的数据DATA1 为101 ;主控器2 要发送的数据DATA2 为1001 总线被启动后两个主控器在每发送一个数据位时

相关主题
相关文档
最新文档