I2C总线串行接口应用设计
I2C是一种较为常用的串行接口标准,具有协议完善、支持芯片较多和占用I/O线少等优点。I2C总线是PHILIPS公司为有效实现电子器件之间的控制而开发的一种简单的双向两线总线。现在,I2C总线已经成为一个国际标准,在超过100种不同的IC集成电路上实现,得到超过50家公司的许可,应用涉及家电、通信、控制等众多领域,特别是在ARM嵌入式系统开发中得到广泛应用。
1 实例说明
本实例介绍I2C总线接口在ARM中的应用,以及它在ARM平台中的I/O交互拓展能力。
在ARM嵌入式系统开发中,系统和外围设备的信息交换能力非常重要。传统的方式多采用地址和数据总线来完成,但是由于嵌入式系统总线资源的限制,利用有限的I/O接口和足够的通信速度来扩展多功能的外围器件就显得十分必要。I2C总线正好可以满足这一嵌入式系统设计的需要。在嵌入式系统中应用I2C总线,可以在很大程度上简化系统结构,模块化系统电路,而I2C总线上各节点独立的电气特性也可以使整个系统具有最大的灵活性。
2 I2C设计原理
2.1 I2C主从模式
I2C采用两根I/O线:一根时钟线(SCL串行时钟线),一根数据线(SDA串行数据线),实现全双工的同步数据通信。I2C总线通过SCL/SDA两根线使挂接到总线上的器件相互进行信息传递。
ARM通过寻址来识别总线上的存储器、LCD驱动器、I/O扩展芯片及其他I2C总线器件,省去了每个器件的片选线,因而使整个系统的连接极其简洁。总线上的设备分为主设备(ARM处理器)和从设备两种,总线支持多主设备,是一个多主总线,即它可以由多个连接的器件控制。典型的系统构建如图15-1所示。
每一次I2C总线传输都由主设备产生一个起始信号,采用同步串行传送数据,数据接收方每接收一个字节数据后都回应一个应答信号。一次I2C总线传输传送的字节数不受限制,主设备通过产生停止信号来终结总线传输。数据从最高位开始传送,数据在时钟信号高电平时有效。通信