在现代
电子系统中,有为数众多的 IC 需要进行相互之间以及与外界的
通信。为了简化
电路的设计,Philips 公司开发了一种用于内部 IC 控制的简单的双向两线串行总线 I²C
(Intel-Integrated Circuit bus)。1998 年当推出 I²C 总线协议 2.0 版本时,I²C 协议实际上已经成为一个国际标准。
在进行
FPGA 设计时,经常需要和外围提供 I²C 接口的芯片通信。例如低功耗的 CMOS 实时时钟/日历芯片 PCF8563、LCD 驱动芯片 PCF8562、并行口扩展芯片 PCF8574、键盘/LED 驱动器 ZLG7290 等都提供 I²C 接口。因此在 FPGA 中模拟 I²C 接口已成为 FPGA 开发必要的步骤。
I2C 协议作为一个串行总线标准尽管没有并行总线的数据吞吐能力,但是它的以下特点使其有着广泛的应用:
• 只需要两条总线—串行数据线 SDA 和串行时钟线 SCL;
• 每个连接到总线的器件都可以通过惟一的地址和一直存在的简单的主/从节点关系软件设定地址,主节点可以发送数据或接收数据;
• 是真正的多主总线,当两个或更多主节点同时初始化数据传输时,可以通过冲突检测和仲裁防止数据被破坏;
• 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s,快速模式下可达400kbit/s,高速模式下可达 3.4Mbit/s;
• 片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整;
• 连接到相同总线的 IC 数量只受到总线的最大电容(400pF)限制。
总线不仅仅是互连的线,还包含系统通信的所有格式和过程。I2C 总线结构上的特点保证了其应用时的简洁,另外其完备的协议避免了所有混乱、数据丢失和妨碍信息的可能性。