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

  • 格式:docx
  • 大小:11.12 KB
  • 文档页数:2

对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 总线被启动后两个主控器在每发送一个数据位时。