I2C(Inter-integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。
I2C总线支持设备之间的短距离通信,它只需要两根信号线来完成信息交换。
它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。用于处理器和一些外围设备之间的接口,常用于单片机系统里主要用来和24C02等小容易存储器连接。
1)工作原理
SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容.
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。数据传输和地址设定由软件设定,非常灵活。
|