I2C协议简介

关键字 :I2C
1. I2C总线物理拓扑结构

       
       I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。 通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。 在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。

2I2C总线特征

        I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(可以从I2C器件的数据手册得知),主从设备之间就通过这个地址来确定与哪个器件进行通信,在通常的应用中,我们把CPU带I2C总线接口的模块作为主设备,把挂接在总的其他线上设备都作为从设备。
        I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。 一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。
        I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。



3. I2C总线协议

       I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。 起始和结束信号总是由主设备产生。 总线在空闲状态时,SCL和SDA都保持着高电平,当SCL为高电平时,SDA由高到低的跳变,则会产生一个起始条件; 当SCL为高时,SDA由低到高的跳变,则会产生一个停止条件。 在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线; 而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态,当然也可以不释放总线,可以直接选取下一个从设备并且开始下一次传输,最后在释放总线即可。 如图所示:

       在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。 前面我们已经提到过,数据传输以字节为单位。 主设备在SCL线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位,此时才认为一个字节真正的被传输完成。
       I2C协议是NOVATEK在TP产测中比较常用的协议,例如部分NT36xxx系列芯片搭配A-si产品的产测会用到该协议。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论