今天我们来一起聊聊I2C(Inter-Integrated Circuit,集成电路总线) ;
首先抛出一个问题吧!
我们已经有了及其方便的UART(Universal Asynchronous Receiver and Transmitter)数据通信协议了,为什么还要有I2C、SPI这些协议呢?
本文对I2C进行一个简单的知识普及;
I2C(Inter-Integrated Circuit,集成电路总线):I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
他拥有2根线:SDA(串行数据线)和SCL(串行时钟线);
SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容.而线路中电容会影响总线传输速度.当电容过大时,有可能造成传输错误.所以,其负载能力为400pF,因此可以估算出总线允许长度和所接器件数量。
一般CPU都是自带I2C总线功能ÿ