当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络。I2C 总线有时候也叫作 IIC,它已有20多年的历史了。I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。

I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络。I2C 总线有时候也叫作 IIC,它已有20多年的历史了。I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。

I2C 总线用两根线来连接多支路总线中的多个设备。这种总线是双向、低速的,并与公共时钟同步。可以直接将一个设备接到 I2C 总线上或是从该总线上取下,而不会影响其他设备。一些生产商比如 Microchip 公司、Philips 公司、Intel 公司等生产的小型微处理器都内置了 I2C 接口。I2C 总线的数据传输率比 SPI 总线要慢一些,在标准模式下的传输速度为 100kbps,在快速模式下为 400kbps。

利用 I2C 接口在设备之间进行连接使用的两根线是 SDA(串行数据)和 SCL(串行时钟),它们都是开漏,通过一个上拉电阻接到正电源,因此在不使用的时候扔保持高电平。使用 I2C 总线进行通信的设备驱动这两根线变为低电平,在不使用的时候就让它们保持高电平。每个连到 I2C 的设备都有一个唯一地址,这个设备可以是数据发送者(总线主机)、接收者(总线从机),也可以二者都是。I2C 是多主机总线,这意味着可以有多个设备充当总线主机的角色。

 

 

图1. I2C总线连线图

SDA 和 SCL 都是双向的。SPI 总线有两根单独的线,分别用于两个方向的通信,而 I2C 总线不同,它使用同一根线来完成主机发送数据和接收从机响应。另外,与 SPI 总线具有多个工作模式不同,I2C 总线只有一个工作模式,时钟线 SCL 和数据线 SDA 之间的时序关系很简单直观:当空闲的时候,SDA 和 SCL 都是高电平,只有 SDA 变为低电平,接着 SCL 也变为低电平时,才开始 I2C 总线的数据传输。当 SDA 和 SCL 都变为低电平时,就是告诉总线上的所有接收设备数据包的传输开始了,在 SCL 变为低电平后,SDA 才发送第一个有效数据位,这称为开始条件。

对于被传输的每一位,当 SCL 为低电平时在 SDA 上必须变为有效,该位是在 SCL 的上升沿对 SDA 上的数据位进行采样的,也必须一直保持有效直到 SCL 再次变为低电平,然后 SDA 就在 SCL 再次变为高电平之前传输下一位。

最后,SCL 变为高电平,接着 SDA 也变为高电平,数据传输结束。这被称为结束条件。

 

 

图2. I2C总线传输的开始条件和结束条件

无论多大的数据包都可以通过 I2C 总线进行传输。像 SPI 总线一样,I2C 也是高位先传输。如果数据接收者无法再接收更多的数据,它可以通过将SCL保持低电平来中断传输,这样可以迫使数据发送者等待,直到 SCL 被重新释放。

发送方发出的每个字节都必须经过接收方确认,每个字节的第8位数据一旦传送结束,发送方就释放数据线 SDA,然后主机在 SCL 上产生一个额外的时钟脉冲,这会触发接收方通过将 SDA 置为低电平来表示接收到的字节进行确认。如果接收方没有能将 SDA 置为低电平,发送方就会中断传输,并且采取适当的错误处理措施。

 

 

图3. 带有接收方确认的I2C数据包

由于 I2C 是多主机总线,因此存在同一时刻会有多个主机试图开始数据传输的可能。SPI 总线使用一个独立的片选端来使接收从机有效,每个 SPI 从机都有一个单独的片选端,由主机驱动。I2C 没有这样的选择机制,不过总线上的每个设备都有一个唯一的地址,数据包传输时先发送地址位,接着才是数据。一个地址字节由7个地址位和1个指示位组成。如果指示位是0,意味着这个传输是一个写操作,被选中的从机将接收数据并将其作为输入;如果指示位是1,就要求从机将数据发送回主机。

I2C 总线还支持一个扩展的10位寻址模式,可连接的外设数量可达1024个,使用7位寻址模式的设备和10位寻址模式的设备可以在同一个系统中混合使用。10位寻址时,使用2个字节来保存地址。如果第1个地址字节以0b11110xx_开始,就会产生一个10位地址,第1个字节的第1、2位(第0位是读写指示位)和第2个字节的8位合起来构成10位的地址。而7位设备将会忽略这个过程。

 

 

图4. I2C普通的和带重复开始条件的7位地址格式

 

 

图5. I2C总线10位地址格式

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭