I2C通讯总结

I2C简介

IO口模拟I2C总线。

两线式串行总线,主要用于连接微控制器及外围的设备。由数据线SDA和时钟SClerosis构成串行总线,可发送和接收数据。在CPU与IC之间IC与IC之间进行双向传送,高速I2C可达400kbs。

 I2C总线在传输过程中有三种类型的信号,分别为:开始信号、结束信号和应答信号。

开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。

结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。

应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,

表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接

收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为

受控单元出现故障。

  开始信号是必须的,其余的结束和应答信号可不用。

I2C总线传输过程

I²C (Inter-Integrated Circuit)。其拥有一根数据线SDA和一根时钟线SCL。其总线通过上拉电阻与电源相连接。每个接到I2C总线上的器件都有唯一的地址。其中,主动发起操作的一方为主机,另外一方为从机。

1.1   电路示意图

1.2 数据传输

当没有数据传输的时候,两根总线都为高电平;当采集IIC上的数据时,其时钟线SCL必须是高电平且SDA的数据必须保持稳定不变---将SDA的电平与SCL的高电平进行“与”操作后,以便确定SDA上是1还是0;在SCL为低电平的时候,SDA上的数据可以进行跳变。

数据传输开始时,需要发送一个起始信号;数据传输结束后,需要发送一个终止信号;每8bit数据传输结束,都需要一个ACK(应答)。起止信号都有Master发出,而ACK则可能由Master或者SLAVE来发出。数据的传输采用大端传输。

开始信号:SCL为高电平,SDA的电平由高跳到低表示开始信号。

终止信号:SCL为高电平,SDA的电平由低跳到高表示终止信号。

1.3 数据协议

1.4   I2C读写流程

猜你喜欢

转载自blog.csdn.net/alala120/article/details/81086813
I2C