I2C 原理及应用(上)
时间:2018-08-16作者:华清远见
1. I2C总线介绍
I2C(Inter-Integrated Circuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。I2C有着如下的特点。 2. I2C总线术语
发送器:发送数据到总线的器件。 3. I2C总线位传输 由于连接到I2C 总线的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲,数据有效性如图1所示。
SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态 I2C位传输数据的有效性在SCL 线的时钟信号是低电平时才能改变,起始和停止条件如图2所示。
SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;SCL线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙碌状态,在停止条件的某段时间后总线被认为再次处于空闲状态。如果产生重复起始条件而不产生停止条件,总线会一直处于忙碌的状态,此时的起始条件(S)和重复起始条件(Sr) 在功能上是一样的。 3. I2C总线数据传输 1.字节格式 发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的高位(MSB),如果从机要完成一些其他功能后(如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。 2.应答响应 应答响应如图3所示。 数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放 SDA 线(高)。在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。通常被寻址的接收器在接收到每个字节后,会产生一个响应。当从机不能响应从机地址时(如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。
如果从机接收器响应了从机地址,但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输。这个情况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平,主机产生一个停止或重复起始条件。 如果传输中有主机接收器,它必须在从机不产生时钟的后一个字节不产生响应,向从机发送器通知数据结束。从机发送器必须释放数据线,允许主机产生一个停止或重复起始条件。 4. I2C总线寻址方式 1.7位寻址 第一个字节的头7位组成了从机地址,低位(LSB)是第8位,它决定了普通的和带重复开始条件的7位地址格式方向。第一个字节的低位是“0”,表示主机会写信息到被选中的从机;“1”表示主机会向从机读信息,当发送了一个地址后,系统中的每个器件都在起始条件后将头7位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W位决定。 2.10位寻址 10位寻址和7位寻址兼容,而且可以结合使用。10位寻址采用了保留的1111XXX作为起始条件,或重复起始条件的后第一个字节的头7位。10位寻址不会影响已有的7位寻址,有7位和10位地址的器件可以连接I2C总线10位地址格式到相同的I2C总线。它们都能用于标准模式和高速模式系统。 10位从机地址由在起始条件或重复起始条件后的头两个字节组成。第一个字节的头7位是11110XX的组合,其中后两位XX是10位地址的两个高位(MSB)。第一个字节的第8位是R/W位,决定了传输的方向,第一个字节的低位是“0”,表示主机将写信息到选中的从机,“1”表示主机将向从机读信息。如果R/W位是“0”,则第二个字节是10位从机地址剩下的8位;如果R/W位是“1”,则下一个字节是从机发送给主机的数据。 5 快速和高速模式 1.快速模式
快速模式器件可以在400 kbit/s下接收和发送。小要求是:它们可以和400 kbit/s传输同步,可以延长SCL信号的低电平周期来减慢传输。快速模式器件都向下兼容,可以和标准模式器件在0~100 kbit/s的I2C 总线系统通信。但是,由于标准模式器件不向上兼容,所以不能在快速模式I2C总线系统中工作。快速模式I2C总线规范与标准模式相比有以下另外的特征。 2.高速模式 高速模式(Hs模式)器件对I2C总线的传输速度有很大的突破。高速模式器件可以在高达3.4 Mbit/s的位速率下传输信息,而且保持完全向下兼容快速模式或标准模式器件,它们可以在一个速度混合的总线系统中实现双向通信。 高速模式传输除了不执行仲裁和时钟同步外,与快速模式系统有相同的串行总线协议和数据格式。 发表评论
|