I²C 总线支持任何 IC 生产过程(NMOS、CMOS 和双极性)。串行数据线 SDA 和串行时钟线 SCL在连接到总线的器件间传递信息。每个器件都有一个惟一的地址作为识别的标志(无论是微控制器、LCD 驱动器存储器还是键盘接口),并且都可以发送数据和接收数据。很明显 LCD 驱动器只需要接收数据,而存储器需要接收和发送数据。图 4-1 所示的是一个高性能集成电视的例子。
从图 4-1 可以看到,应用 I²C 总线是非常方便的。用通俗的话讲 I²C 总线的硬件设计工作就是连接 SDA 和 SCL 两条线,依靠 I²C 协议完成软件工作。在 I²C 协议中应理解如下的概念。
1.主/从节点主节点负责初始化总线的数据传输,并产生允许传输的时钟信号。此时任何被寻址的器件都被认为是从节点。当有多个主节点在总线上传输数据时,每个主节点产生自己的时钟信号。挂接到总线上的所有外围器件、外设接口都是总线上的节点。
2.总线上节点的寻址方式在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,可分时实现点-点的数据传送。因此总线上每个节点都有一个固定的节点地。
I²C 总线上主节点的地址由软件给定,此地址存放在 I²C 总线的地址寄存器中。 I²C 总线上所有的外围器件都有规范的器件地址。器件地址由 7 位数字组成,它和 1 位方向位构成了 I²C总线器件的寻址字节 SLA(Slave address)。器件地址是 I²C 总线外围接口器件固有的地址编码,器件出厂时就已给定。数据方向位规定了总线上主节点对从节点的数据传送方向。