电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

I2C-BUS

I2C-BUS

I2C总线是由原Philips公司[如今的NXP]所开发的,最开始是开发用于的控制电池的一个总线。

I2C总线标准包含:电气层和协议层。

总线包含两个信号Serial Clock Line [SCL] 和 Serial Data Lines [SDA]。电气连接时,会在SCL和SDA信号线上接一个上拉电阻Rp[Pull],有时考虑静电保护[ESD],会在设备和总线直接加接一个保护电阻Rs。总线上的每个设备都可以发送或接收数据,也都可以作为主设备[Master]或从设备[Slave] 。总线上的时钟由主设备提供,并且总线上可以有多个从设备,但是只能有一个主设备。从设备可以和主设备进行数据的交换,而不能在从设备之间进行数据传输。

I2C总线数据传输速率

*低速模式[Low Speed]:10Kb/s[10kbps]

*标准模式[Standard Mode]:100Kb/s

*快速模式[Fast Mode]:400Kb/s

*快速模式+[Fast Mode Plus]:1Mb/s

*高速模式[High Speed Mode]: 3.4Mbps

I2C总线通信模式:

因为只有一个数据线和一个时钟线,所以只能进行半双工通信[同一时刻只能有一个发送和一个接收]。

I2C总线的最大负载电容有400pF,这决定了总线上最多可挂载的设备数和最远的传输距离。

通信时,采用8bit一个单元进行传输,先发送最高有效位[bit[7..0],先发送bit7],并且总线上的每个设备都有一个独立的设备地址。

-数据:

*发送数据的时候,在时钟SCL为低电平时改变SDA上的数据;

*数据格式:数据长9bits,其中8bits的数据加1bit的响应位[响应位是监听总线数据的设备发出的,发送‘1’表示响应]。

*响应方式:有两种响应方式

  1. 接受设备发送‘1’[相应位],然后发送‘0’表示准备好接收下一组数据;

2. 接受设备发送‘1’[相应位],然后发送‘1’表示结束接收。

Note:响应位发送时的时钟同样由主设备提供

-控制模式:

*开始位:在时钟SCL为高时,SDA上出现一个下降沿,表示数据发送的起始位;

*结束位:在时钟SCL为低时,SDA上出现一个上升沿,表示数据发送的结束位;

-设备地址和读写控制:

*总线上的每个设备会有一个7bits的地址,发送时会增加一个读写控制位[1,读;0,写]。

*通信时,主设备先给总线上发送要访问的从设备的设备地址,然后再进行数据的交换。

一个完整的读写控制如下图:

NXP的I2C总线协议标准2007年版本:

博主
xu459742619@163.com
Xu.Bovey's Blog
欢迎交流学习    文章争取原创,转载请注明出处。遇到好的东西也会转载分享。Tab Kit
点击跳转