笔试I2C知识总结
一、I2C总线的概念
I2C总线通过两线串行数据线(SDA)和串行时钟线(SCL)在连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定)。器件在执行数据传输时也可以被看作是主机或者从机,主机是初始化总线数据传输并产生传输时钟信号的器件,此时,任何寻址的器件都被认为是从机。I2C总线是一个多主机总线,这就是说可以连接多于一个能控制总线的器件到总线。如果两个或多个主机尝试发送信息到总线,在其他主机都产生0的情况下,首先产生一个1的主机将丢失仲裁。仲裁时的时钟信号是用线与连接到SCL线的主机产生的时钟同步结合。
二.总体特征
SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到正的电压电源,当总线空闲时,这两条线路都是高电平,连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能.I2C总线上数据的传输速率在标准模式下,可达到100kbit/s,在快速模式可达400kbit/s,在高速模式下,达到3.4Mbit/s.连接到总线的接口数量只由总线电容400pF的限制决定.
三.位传输
SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态也只有在SCL线的时钟信号是低电平时才能改变.
起始条件:在SCL是高电平时,SDA线从高电平向低电平切换。
停止条件:当SCL是高电平时,SDA线由低电平向高电平切换。