1 绪论
1.1 背景知识
I2C(Inter-Integrated Circuit)通信协议,是由Philps公司开发的一种简单的、双向二线制同步串行通信协议,只需要两条线即可在连接于总线上的器件之间传递消息。I2C通信协议和通信接口在很多工程中有广泛的应用,比如数据采集领域的串行AD,图像处理领域的摄像头配置,工业领域的X射线管配置,等等。除此之外,由于I2C协议占用的引脚特别少,硬件实现简单,可扩展性强,因此被广泛地使用在系统内多个集成电路(IC)之间的通信中。
1.2 I2C协议的物理层
其物理层有如下特点:
(1)它是一个支持多设备的总线,"总线“指多个设备共用的信号线。在一个I2C通信总线中,可以连接多个I2C设备,支持多个通信总机及多个通信从机。
(2)一个I2C总线只使用两条总线线路,一条是双向串行数据线(SDA),另一条是串行时钟线(SCL)。数据线用于传输数据,时钟线用于实现数据收发同步。
(3)每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。
(4)总线上通过上拉电阻接到电源,当I2C设备空闲时,会输出高阻态,而当所有的设备都空闲,都输出高阻态时,将由上拉电阻将主线拉成高电平。
(5)多个主机同时使用总线时,为了防止数据冲突,会利用仲裁的方式决定由那个设备占用总线。
(6)具有三种传输模式:标准传输模式的传输速率为100kbit/s,快速模式下为400kbit/s,高速模式下可达到3.4Mbit/s,但目前大多数I2C设备尚不支持高数模式。
(7)连接到相同总线的集成电路数量受到总线的最大容量400pf的限制。