s3c2440 I2C协议

I2C总线:i2c控制器与设备之间用i2c总线连接,i2c总线有两条,一根是SLC,串行时钟线,不停的发送时钟。另一根是SDA,串行数据线,用来传输数据的。一条I2C总线上可以连接多个设备,是一主多从的结构。
I2C协议:当s3c2440需要发送数据给设备时,先发出一个开始信号,然后发送7位的地址信号和一位方向信号(0代表写)发送完毕后从设备进行回应,如果从设备有回应,就发送8位数据到从设备中,从设备进行回应,无回应就结束(P),发送完成后也会结束。读数据也是相同的方式,不过这次是s3c2440进行回应,并将数据读到芯片上。
s3c2440 I2C协议
I2C时序图:SCL保持高电平、SDA从高变低,这就是一个开始信号(S);
SCL保持高电平、SDA从低变高,这就是一个结束信号(P)。每九个时钟为一个周期,在第九个时钟产生中断,判断设备或arm是否有回应,无回应则结束传输,有回应就继续传输,直到发出P信号。
s3c2440 I2C协议