I2C引脚定义:都是双向I/O线,接口电路为开漏输出,需通过上拉电阻接电源。当总线空闲时,两根线都是高电平,连到总线上的任一器件输出的低电平,都将使总线的信号变低。
- SDA(串行数据线)
- SCL(串行时钟线)
二、数据有效性
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化 - scl处于高电平的时候,如果sda处于低电平:传输数据0,sda处于高电平:传输数据1
- 在scl处于高电平的时候,sda用来传输数据,必须保持电平稳定
- 如果要产生数据即sda需要变化时,只能在scl处于低电平的时候
起始信号与终止信号
SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;
SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
(连接到I2C总线上的器件,若具有I2C总线的硬件接口,则很容易检测到起始和终止信号,若接受器件需要等待,可以先将SCL拉成低电平,从而使主机处于等待状态,直到接受器件准备好,再释放SCL线为高电平,使数据传送可以继续进行)