I2C总线是由Philips公司开拓的一种大略、双向二线制同步串行总线。它只须要两根线即可在连接于总线上的器件之间传送信息。
二、I2C总线开拓设计须要把稳点

1、总线容量及驱动能力
I2C总线的外围扩展器件都是CMOS器件,总线有足够的电流驱动能力,因此总线上扩展的节点数不由电流负载能力决定,而由电容负载确定。总线上每个实际节点器件的总线接口都有一定的等效电容,等效电容的存在会造成总线传输的延迟,导致数据传输出错。
常日总线负载能力为400pF,常日各个I2C器件都会有它自己的电容值,一样平常为不大于20pF,据此可打算出总线长度及节点数目的限定数量。总线上的每个外围器件都有一个器件地址,因此总线上扩展外围器件时也要受器件地址限定。
2、I2C总线的电气构造
I2C总线为双向同步串行总线,因此I2C总线接口内部为双向传输电路,如图所示。总线端口输出为开漏构造,故总线上必须有上拉电阻,上拉电阻与电源电压、SDA、SCL以及总线串接电阻有关,可参考有关数据手册进行选择,常日可选4.7K到10K。
3、每个节点都有一个固定的节点地址。
I2C总线为双向同步串行总线,因此总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在总线的地址寄存器件中,称为主器件的从地址。在总线的多主系统中,单片机作为从节点时,其从地址才故意义,以是总线上所有的外围器件都有规范的器件地址。
4、I2C总线时序
I2C总线上数据通报时,总线上传送的每一帧数据均为一个字节。但启动总线后,传送的字节数没有限定,只哀求每传送一个字节后,对方回应一个应答位。
在发送时,首先发送的是数据的最高位。每次传送开始有起始旗子暗记,结束时有停滞旗子暗记。在总线传送完一个字节后,可以通过对时钟线的掌握使传送停息。
①时钟和数据发送:
SDA引脚常日利用外部设备拉高。SDA引脚上的数据只能在SCL为低电平时进行变动,SCL为高电平时数据变动将指示开始或停滞条件。如图所示。
②起止条件:
SDA由高到低且SCL为高是启动条件,必须先于任何其他命令。SDA由低到高且SCL为高是停滞条件,在一个读序列后,停滞命令会使EEPROM进入待机模式。如图所示。
③应答:
所有地址和数据字均以8bit字连续传输到EEPROM,EEPROM发送一个"0"来应答,以确认它已收到每个字。应答发生在第九个时钟周期如图所示。
三、设计实例
我们对付AT24C256肯定不会陌生,这是ATMEL公司256kbit串行电可擦的可编程只读存储器,8引脚双排直插式封装,具有构造紧凑、存储容量大等特点,可以在2线总线上并接4片该IC,特殊适用于具有高容量数据储存哀求的数据采集系统。
EEPROM存储器设备既可以吸收又可以发送数据。每个挂接在总线上的器件都有唯一一个地址识别。
主机访问EEPROM时,主机在向EEPROM发送完掌握字节和地址信息后,紧接着向EEPROM存储器发送起始条件和掌握旗子暗记并发送读标志位旗子暗记,切换数据的收发方向。接着在收到EEPROM的相应旗子暗记后便可以读出须要的数据了。
四、总结
通过以上实例,我们可以知道I2C优点紧张表现在:
1、简化了硬件电路。在这种总线中只须要两根线,即串行数据线(SDA)和串行的时钟线(SCL)。
2、每个挂在总线上的I2C器件都有一个唯一的地址,并可以通过软件寻址。
3、由于在总线上可能有多个主I2C器件,因此I2C总线接口协议中有冲突监测和仲裁机制,以防止通信中的数据丢失或发生缺点。
4、这种串行的两线双向的总线在标准模式下的速率为100kbit/s,在快速模式下的速率为400kbit/s,在高速模式下为3.4Mbit/s。
5、I2C器件中有滤波抗扰方法来担保数据的完全性。
6、在总线上挂接的器件数目是有限的,即总线上的容抗不能超过400pF。








