I2C总线协议的简要说明

为了快速的了解I2C总线协议,此处采用另类的方式进行说明。

倘若你和另外一个人只能通过一个开关加灯泡的装置在不同的两个房间进行交流,以下是很简单能说明的一个模型:

  • 你的房间有一个开关,另外一间房间有一个灯泡。你们可以有一千种方法进行对话,前提是你们得商量好怎么表达意思。

以上,只是你给它说话,那如何才能让你接受消息呢?以下是一种思路:

  • 将增加上面同样的装置,只不过灯泡现在在你的房间。

那么,如何才能传递信息?莫尔斯编码?貌似只能表示英文。如果你们每人抱有一本<<新华字典>>,传递的信息为:页码,行,第几个字。这种数据是否更快一点。只是一堆数字而已。

【未完待续】

那么什么是I2C总线?实际上就是两根线。

  • 一根叫时钟线(串行)SCL
  • 另外一根叫数据线(串行)SDA

那这两更线有上面用?

两根线能玩出上面花样?无非就是以下的几种:

  • 以稳定态来参照:
  1. SCL:H,SDA:H
  2. SCL:H,SDA:L
  3. SCL:L,SDA:H
  4. SCL:L,SDA:L
  • 以动态为参考:
    1.当SCL=H时
    SDA:H->L
    SDA:L->H
    2.当SCL=L时
    SDA:H->L
    SDA:L->H
    3.当SDA=H时
    SCL:H->L
    SCL:L->H
    4.当SDA=L时
    SCL:H->L
    SCL:L->H

这种有别与莫尔斯编码需要靠时间长短,点化来区分的编码,无非就是以上几种状态。经过这几种状态,来熟悉一下 ,在I2C bus中是如何定义的。

原文地址:https://www.cnblogs.com/ply616/p/5222173.html