IIC 协议
1. 了解 IIC
1.1 什么是 IIC
IIC 即 I2C,一种总线结构。IIC 即 Inter-Integrated Circuit,这种总线类
型是由菲利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电
路(ICS) ,IIC 是一种多向控制总线,也就是说多个芯片可以连接到同一总
线结构下,同时每个芯片都可以作为实施数据传输的控制源。这种方式简化
了信号传输总线。例如:内存中的 SPD 信息,通过 IIC,与 BX 芯片组联系,
IIC 存在于英特尔 PIIX4 结构体系中。
随着大规模集成电路技术的发展,把 CPU 和一个单独工作系统所必需
的 ROM、RAM、I/O 端口、A/D、D/A 等外围电路集成在一个单片内而制成
的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种
很多。其中包括各种字长的 CPU,各种容量的 ROM、RAM 以及功能各异的
I/O 接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种
单片机来进行扩展。扩展的方法有两种:一种是并行总线,另一种是串行总
线。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接
用 导 线 连 接 各 个 设 备 。 因 此 , 采 用 串 行 线 可 大 大 简 化 系 统 的 硬 件 设 计 。
PHILIPS 公司早在十几年前就推出了 I2C 串行总线,利用该总线可实现多主
机系统所需的裁决和高低速设备同步等功能。因此,这是一种高性能的串行
总线。
飞利浦电子公司日前推出新型二选一 I2C 主选择器,可以使两个 I2C 主
设备中的任何一个与共享资源连接,广泛适用于从 MP3 播放器到服务器等
计算、通信和网络应用领域,从而使制造商和终端用户从中获益。PCA9541
可以使两个 I2C 主设备在互不连接的情况下与同一个从设备相连接,从而简
化了设计的复杂性。此外,新产品以单器件替代了 I2C 多个主设备应用中的
多个芯片,有效节省了系统成本。
1.2 IIC 的硬件结构
I2C 串行总线一般有两根信号线,一根是双向的数据线 SDA,另一根是
时钟线 SCL。所有接到 I2C 总线设备上的串行数据 SDA 都接到总线的 SDA
上,各设备的时钟线 SCL 接到总线的 SCL 上。
为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是漏
极开路(OD)输出或集电极开路(OC)输出。设备上的串行数据线 SDA
接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接
收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主
机,一方面要通过 SCL 输出电路发送时钟信号,另一方面还要检测总线上
的 SCL 电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命
令的从机,要按总线上的 SCL 信号发出或接收 SDA 上的信号,也可以向