视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
I2C总线中文讲解,详尽通俗
2025-10-03 05:22:49 责编:小OO
文档
一. I2C总线简介

I2C管理总线:(Intel-Integrated Circuit bus)I2C总线是一种由飞利浦Philip公司开发的串行总线,产生于80年代,最初为音频和视频设备开发,现主要在服务器管理中使用。是两条串行的总线,它由一根数据线(SDA)和一根 时钟线(SDL)组成。

◆I2C总线的数据传输过程基本过程为: 

●主机发出开始信号。 

●主机接着送出1字节的从机地址信息,其中最低位为读写控制码(1为读、0为写),高7位为从机器件地址代码。 

●从机发出认可信号。 

●主机开始发送信息,每发完一字节后,从机发出认可信号给主机。 

●主机发出停止信号。 

                             I2C数据传输图

◆I2C总线上各信号的具体说明: 

●开始信号:在时钟线(SCL)为高电平其间,数据线(SDA)由高变低,将产生一个开始信号。 

●停止信号:在时钟线(SCL)为高电平其间,数据线(SDA)由低变高,将产生一个停止信号。 

●应答信号:既认可信号,主机写从机时每写完一字节,如果正确从机将在下一个时钟周期将数据线(SDA)拉 低,以告诉主机操作有效。在主机读从机时正确读完一字节后,主机在下一个时钟周期同样也要将数据线(S DA)拉低,发出认可信号,告诉从机所发数据已经收妥。(注:读从机时主机在最后1字节数据接收完以后不发应答,直接发停止信号)。

 

注意:在I2C通信过程中,所有的数据改变都必须在时钟线SCL为低电平时改变,在时钟线SCL为高电平时必须保 持数据SDA信号的稳定,任何在时钟线为高电平时数据线上的电平改变都被认为是起始或停止信号。

◆I2C总线数据格式:

                              I2C数据格式图

I2C支持两种数据格式:

_ 7-bit/10-bit 寻址数据格式

_ 7-bit/10-bit 寻址和重复开始信号的数据格式

✧S ― I2C 开始标识

✧Slava address ―从设备地址。 

有两种从地址类型:

1) 固定的从地址, I2C总线只能接一个同类型的固定的从地址设备。

2) 半固定的从地址,前半部分地址是固定的,后半部分地址是可编程的,I2C总线只能接多个同类型的半固定的从地址设备。

如7bit半固定从地址通常 7-bit 中四个较重要的位 (MSB) 为固定的,并依器件本身性质的分类区分,如 1010 即代表串行 EEPROM,而其他三个较不重要的位 (LSB),即 A2、A1 与 A0 则可以通过硬件电子引脚设定,并取得高达 8 个不同的 I²C 地址组合,因此在同一个 I²C 总线上可以有 8 个相同形式的器件运作,这些引脚固定在 VCC 高电压代表逻辑 1,固定在接地低电压则代表逻辑 0,7-bit 的定址方式可以带来总线上 128 个器件的组合,但由于部份地址设定保留给特殊指令应用,因此实际上最高器件数大约为 120 个。

✧R/W ―读写操作表示位,0 表示写,1表示读。

✧ACK ―读写完一个byte的地址数据的应答信号

✧Data ―数据,紧跟设备地址传输的第一个byte数据(Data)可以是子地址(sub-address)表示设备的寄存器。

✧S ―I2C结束标识

◆关于从地址的分配

I2C器件的从地址是由I2C总线协会实行统一分配的,飞利浦作为标准I2C总线标准的维护者,负责所有I2C从地址的注册程序以确保能够适当协助授权厂商或其他公司进行从地址的分配。为了避免I2C器件的从地址的冲突必须依赖现有从地址的完整性和可靠的申请注册资料才能达成,所以I2C器件厂家必须向philip公司提交I2C从地址申请并提交一定的费用。

从地址的申请有两种:

第一种是为某一特定的I2C器件设备申请从地址;

第二种是为某一同功能的I2C器件设备群组申请从地址。

具体如何申请可参考:

http://www.tcn.semiconductors.philips.com/markets/mms/protocols/i2c/support/requestform/index.html

✧IIC设备规类:

           

◆OMAP730 I2C 简介

二.I2C总线详细介绍

I²C 总线操作原理

任何 I²C 器件都可以连接到 I²C 总线上,而每一个总线上的器件也能和任何一个主控端沟通互相传送信息,在总线上至少必须有一个主控端,如微控器或 DSP,每个主控端拥有相同的优先权,且在 I²C 总线上加入或移除器件都非常简便。

总线的电容总和必须低于 400 pF,大约 20 到 30 个器件或 10 m 的传输长度,以符合上升与下降时间的要求,每个器件必须驱动 3mA 形成逻辑低位准,并在开漏极总线内置大约 2 K 到 10 K ohms 的提升电阻与 0.4 mA 的电流,同时并具有双向 I²C 总线缓冲器可以用来隔离总线上不同接线的电容,以带来更大 (2000pF) 与更长 (2000 m) 的总线结构。

每个 I²C 器件都拥有一个独一无二的 7-bit I²C 地址,让主控端知道通信传输的对象是谁,通常 7-bit 中四个较重要的位 (MSB) 为固定的,并依器件本身性质的分类区分,如 1010 即代表串行 EEPROM,而其他三个较不重要的位 (LSB),即 A2、A1 与 A0 则可以通过硬件电子引脚设定,并取得高达 8 个不同的 I²C 地址组合,因此在同一个 I²C 总线上可以有 8 个相同形式的器件运作,这些引脚固定在 VCC 高电压代表逻辑 1,固定在接地低电压则代表逻辑 0,7-bit 的定址方式可以带来总线上 128 个器件的组合,但由于部份地址设定保留给特殊指令应用,因此实际上最高器件数大约为 120 个。

I²C 总线术语

发送端 - 发送数据到总线的器件。当发送端器件可以主动将数据放到总线,我们称为主控发送端,若可以回应主控端的要求,即称为从属发送端。

接收端 - 接收来自总线传输数据的器件。当接收端器件可以主动接收数据时,我们称为主控接收端,若依照主控端要求而接收,称为从属接收端。

主控端 - 为启动数据传送 (START 指令)、产生时钟 (SCL) 信号并中止数据传送 (STOP指令) 的器件,主控端必须是传送端或接收端。

从属端 - 由主控端定址的器件。从属端可以扮演接收端或发送端的角色。

多重主控端 - 在总线上可同时存一个以上的主控端,并且不会造成冲突或数据遗失。通常来说运用 "bit-banged" 软件的主控端并不具有多重主控端能力,I²C 总线控制器提供了一个将多重主控端硬件 I²C 连接端口加入到 DSP 或 ASIC 的简单方法。

仲裁机制 - 预先定义在特定时间内只有一个主控端能够取得总线控制权。

同步 - 预先将二个或二个以上的主控端时钟信号予以同步化的定义程序。

SDA - 串行数据信号线 (Serial DAta)

SCL - 串行时钟信号线 (Serial CLock)

目标器件的 I²C 地址在第一个位组中送出,而这个起始位组中最不重要位 (LSB) 则用来表明主控端将进行发送 (写入) 数据或由接收端接收 (读取) 数据,称为从属器件,每笔数据交换必须以 START 指令开头,并以 STOP 或 RESTART 情况结束。如果同一个 I²C 总线上有两个主控端,且同时发出 START 指令要控制总线时,那么就会以仲裁机制处理。当主控端,如微控器,已经控制总线时,其他的主控端必须等到第一个主控端送出 STOP 指令,并且将总线回复闲置状态时,才能控制总线。

总线数据传送术语

F (FREE) - 总线为可用或闲置状态,这时 SDA 串行数据线与 SCL 串行时钟均为高电位状态。

S (START) 或 R (RESTART) - 数据传送是以 START 情况开始,这时 SDA 串行数据线的电压位准会从高电位转变为低电位,而 SCL 串行时钟则保持在高电位,当这个情况发生时,代表了总线进入忙碌 (BUSY) 状态。

C (CHANGE) - 当 SCL 串行时钟数据线为低电位时,数据位就可以由发送端放置到 SDA 串行数据在线,在这段时间内,只要 SCL 串行时钟一直维持在低电位状态,SDA 可以改变它的状态。

D (DATA) - SDA 串行数据在线高或低电位的数据在 SCL 串行时钟线处于高位准时,在整个传输过程中时钟必须稳定维持在高电位以避免错误判读为 START 或 STOP 情况。

P (STOP) - 数据传输在收到 STOP 指令时结束,这时候 SDA 串行数据线的位准由低电位回复到高电位,而 SCL 串行时钟线则维持在高电位,一但数据传送结束后,总线会在自动回复到可用状态。 

电位转换 I²C

由于新的 I²C 器件以各种不同的电压运作,因此飞利浦半导体开发出一个解决方案,几乎不需要任何额外的动作或成本就能使不同电源电压的 I²C 器件拥有完整的双向数据传输电路,只要在 I²C 总线的不同电压位准间加上两颗低成本的晶体管,将电位转换器两端总线上的逻辑电压位准加以隔离,这样的安排同时也让这个电压转换电路可以用来隔离总线上已经断电的装置,使连上电源的 I²C 器件持续正常运作,这些电位转换功能也可以由低成本电位转换总线缓冲器或 GTL 转换器件来达成,I²C 总线规格也拓展到运作电压在 2.7 V 以下的器件,确保 I²C 总线在迈入新世纪时仍是新一代系统串行总线的最佳选择。

高速模式 I²C 总线

高速串行存储器与混合技术电信系统的发展使得总线必须在不同电源电压下高速运作,而 I²C 总线高速 (High speed) 模式 (3.4MHz) 正好可以满足这些需求,在完全不影响与现有的(Standard) 与快速 (Fast) 模式器件的兼容性,并保留低成本、简易的特色,不需任何特殊逻辑电位、时序或驱动能力。高速模式主控端内特别设计的桥接器结构可以让快速与标准模式器件在同一个 I²C 总线系统中双向通信,在必要时主控端也可以进行双向电位转换,以支持各种不同电源电压的器件,这种高速模式通常只出现在需要传送大量的数据的器件上,如 LCD 显示屏、高位数 ADC 或高容量 EEPROM 等,其他大多数的维护与控制应用则以 100kHz 速度运作的 I²C 总线为主。

10-bit I²C 定址机制

10-bit I²C 定址可以使用高达 1024 个额外地址,避免因 I²C 器件快速增加所带来的从属地址分配问题。它并未改变 I²C 总线规格中所定义的地址格式,而是使用现有规格中所保留的地址。10-bit 定址并不会影响现有的 7-bit 定址功能,采用 7-bit 与 10-bit 定址的器件可以连接到相同的 I²C 总线上,而两种形式的器件也可以使用在标准、快速或高速模式系统中,虽然多数的 I²C 器件都还是采用 7-bit 定址,然而设计工程师仍可以利用多个 I²C 总线连接端口或多功器/交换器来达成总线上较小数量的器件,作为另一个解决这个定址的考量。

I²C 与 SMBus 比较

由 Intel 在 1990 所开发的系统管理总线 (SMBus, System Management Bus),属于 I²C 总线常见的衍生规格,通常可与 I²C 兼容,两个总线都采用两线式通信方式,并且都拥有可定址的从属端,其中 SMBus 的最高数据传输率只有 100 kbps,因此需要经过特别处理,才能使用在拥有较高传输率 I²C 的系统中,其他的差异还包括计时与最小时钟速率、电压位准、提升电阻值与电流位准,新的 I²C 器件已经陆续加入 SMBus 的功能,如可以依特定应用需求将计时 (timeout) 功能加以开启或关闭。 下载本文

显示全文
专题