I2C协议
I2C 双向同步串行总线 Inter Intergrated CirCUIT bus 内部集成电路总线
低速 同步 芯片-芯片 板上/板间通信 2线 多主设备
串行扩展总线,连接控制器及其外设,2根线完美连接所有器件,缺点为速度太慢,最快才几Mbps,每传一个BYTE就要ACK/NACK(确认每一帧都传输成功)
2 Lines -> 2 data buses + Ground
- 串行时钟SCL(Clock)
- 串行数据SDA(Data)
传输速率:
- 100kbit/s—标准模式
- 400kbit/s—快速模式
- 3.4Mbit/s—高速模式
Master --> Slave
every device have read address and write address
协议格式
1. 一般长这个样子:
2. 以S3C2440芯片为例,其I2C设备管理器的手册中写明读数据和发数据的格式为:
发送数据段的例子
设备向PC发送一个字符‘A’ (A = 0x41(H) = 01000001(B) )
1. SDA先拉低,SDL开启CLK脉冲
2. 8个CLK周期,发送数据(SCL高电平检测引脚电平)
3. 第9个CLK周期,芯片检测ACK信号,输出转为输入
Github地址:https://github.com/kumataahh