IIC 总线(inter integrated circuit bus)是 Philips 公司发明的一种高性能芯片间串行同步传输总线,与 SPI、Microwire 接口不同,它仅需两根信号线——串行数据线 SDA 和串行时钟线 SCL,就实现了双工同步数据传送,能够极方便地构成多机系统和外围器件扩展系统。外围器件有 RAM、EEPROM、ADC、DAC、日历时钟、LED 驱动器、温度传感器等等,这些器件地址是采用硬件设置方法,通过软件寻址完全避免了 器件的片选线寻址的弊端,从而使硬件系统更简单、工作更可靠。 MCS51 系列单片机系统扩展的通常都是并行接 口器件,这些器件有很多的引脚,因此开发出的系统 用户板面积较大、引线较多。如果在系统要求传输速 率不太高的情况下,采用软件模拟方法,来扩展 MCS51 系列单片机系统的 IIC 总线接口器件,就可以减少用户电路板的面积和引线数目,从而大大提高了系统的工作可靠性。
IIC 总线应用系统的组网方式非常灵活,如 1 个主 MCU 和几个从 MCU 或一个主 MCU 和几个 I/O 设备 等构成的多种系统。大多数系统中,只用一个主 MCU 来控制挂在 IIC 总线上的所有被控器。
在 IIC 总线上,主控器与被控器相互之间进行传 输的信息有启动信号、停止信号、地址码、读/写控制 信号、数据字节、应答信号等等。其中,启动信号、 停止信号、地址码、读/写控制信号是由主控器发送给 被控器的,应答信号是由被控器发送给主控器的。
IIC 总线只有两根线 SDA和 SCL,这两根线既要 完成地址选择,又要完成数据传送。因此,它的寻址 方式和其他并行总线的寻址方式是不一样的。前面提 到的 IIC 总线的数据传送格式,在启动信号的后面, 传送的就是地址码,这个地址码就决定了地址的选择。 具体地说,如果被控器是内含 CPU 的智能器件,则地 址码由其初始化程序定义;如果被控器是非智能器件, 则由生产厂家在器件内部固化一个专用的从器件地址 码,该地址码根据器件的类型不同,由“IIC 总线委 员会”实行统一分配。一般带 IIC 总线接口的器件, 均拥有一个专用的 7 位从器件地址码,这 7 位地址码 又分为两部分:(1)器件类型地址,占据高 4 位,不 可更改,属于固定地址;(2)引脚设定地址,占据低 3 位,通过引脚接线状态来传输。