I2C总线规范

合集下载

I2C规范

I2C规范

以前我们使用AMD 的GX1搭配CS5530做主板,用的还比较顺手,后来AMD的GX1停产了,加上欧洲无铅化的要求,只好在AMD的LX CPU搭配CS5536开新主板,在这片新主板上,我们为了能有一个较好的AV输出,放上了一颗AIT2138的芯片,专门负责把VGA输出转换成AV输出,AIT2138这颗芯片也可以不用软件去控制,但是如果能用软件控制,当然更好,AIT2138上有一个I2C总线可以实现软件控制,我们看到CS5536上也有一个I2C总线的接口,于是我们把他们接到了一起,实践证明,非常有效,本文将重点介绍CS5536上的这个I2C总线接口的操作方法。

1、I2C总线介绍I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。

I2C总线最主要的优点是其简单性和有效性;另一个优点是它支持多主控,其中任何能够进行发送和接收的设备都可以成为主控。

一个主控能够控制信号的传输和时钟频率,当然,在任何时间点上只能有一个主控。

I2C总线只有两条线,数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

在CPU 与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。

上图截自I2C总线的规范,它清楚地告诉我们,I2C总线,只有两条线,所有的设备(IC)都并联接在这两条线上,图中有两个MICRO CONTROLLER,A和B,告诉我们在I2C总线上可以连接多个主控。

下面我们尽可能简单地说明它的通信原理。

上图同样截自I2C总线的规范,它清楚地告诉我们,I2C总线在空闲状态由两个上拉电阻把总线拉到高电平,器件对I2C总线的控制只有释放和拉低这两种方式,这一点对后面理解信号很有帮助。

I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。

I2C总线连接规范

I2C总线连接规范

I2C总线连接规范力泰电子开发部 朱文锋 2008-3-31I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

1.I2C总线特点I2C总线最主要的优点是其简单性和有效性。

由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达7.6米,并且能够以10Kbps的最大传输速率支持40个组件。

目前我司的I2C总线只有一个主控,即S3C9228/R5R0C02;其余每个器件都有一个唯一的地址识别,作为一个发送器或接收器由器件的功能决定。

2. I/O 级和总线线路的电气规范2.1 I2C 总线器件SDA 和SCL I/O 级的特性:参数 最小值 最大值低电平输入电压 -0.5V 0.3VDD高电平输入电压 0.7VDD Vmax+0.5V低电平输出电压 0 0.4V表一2.2 I2C 总线器件到总线线路的电气连接上拉电阻必须连接到一个5V 10%的电源,输入电平连接到V DD 的I2C 总线器件必须有一条公共的电源线连接到上拉电阻。

如图一所示。

图一输入电平定义:低电平噪声容限是0.1V DD高电平噪声容限是0.2V DD串连电阻R S 可以用于防止SDA 和SCL 线的高电压毛刺波,如图二所示:图二2.3 I2C 总线器件电阻R p 和R S 的最大和最小值对于标准模式I2C 总线系统电阻R p 和R S的值由下面的参数决定:¾电源电压¾总线电容¾连接器件数量噪声容限:在前一极输出为最坏的情况下,为保证后一极正常工作.所允许的最大噪声幅度。

电源电压限制了电阻R p 的最小值因为输出级在V OLmax=0.4V 时指定的最小下拉电流是3mA。

低电平要求的0.1V DD 噪声容限限制了R S 的最大值。

图三V DD 与R pmin 的函数曲线从图三V DD 与R pmin 的函数曲线知,R pmin > 1.8KΩ。

i2c总线编写格式

i2c总线编写格式

I2C(Inter-Integrated Circuit)总线是一种用于短距离通信的串行通信协议。

它由Philips(现在的NXP半导体)开发,被广泛应用于微控制器、传感器、内存和其他嵌入式设备之间的通信。

I2C总线的编写格式通常由以下几个部分组成:
1. 起始条件:在开始传输数据之前,需要先发送一个起始条件。

这通常是由主机设备发送的一个高电平信号,然后释放总线,等待从设备应答。

2. 从设备地址:在起始条件之后,主机设备需要发送从设备的地址。

这告诉从设备哪个设备将接收接下来的数据。

每个从设备的地址都是唯一的,以便主机设备可以正确地寻址它们。

3. 数据传输:一旦从设备被寻址,主机设备就可以发送或接收数据。

数据是按字节传输的,每个字节都有一个起始条件,然后是一个从设备地址和一个应答位,然后是一个或多个数据位。

在发送或接收完一个字节之后,需要发送一个停止条件以结束这个传输。

4. 应答信号:在接收到从设备地址或数据之后,从设备会发送一个应答信号(ACK)或非应答信号(NACK)以告诉主机设备它们已经准备好接收下一个字节或将发送下一个字节。

5. 结束条件:在完成所有数据传输之后,需要发送一个结束条件。

这通常是由主机设备发送的一个高电平信号,然后释放总线。

以上就是I2C总线的基本编写格式。

具体的实现可能会因不同的硬件平台和编程语言而有所不同。

但是,一般来说,编写I2C总线程序需要理解这个基本的通信过程和数据格式。

i2c协议参数

i2c协议参数

i2c协议参数I2C协议参数I2C总线是一种串行通信协议,由飞利浦公司(现在的恩智浦半导体公司)开发。

它被广泛应用于各种电子设备中,例如传感器、存储器、数字转换器等。

本文将详细介绍I2C协议的各种参数。

一、物理层参数1. 电压:I2C总线标准电平为5V,但也有3.3V和1.8V版本。

不同版本的电压对应着不同的速率和距离限制。

2. 速率:I2C总线有多种速率可供选择,最高达到400kHz。

速率越高,数据传输越快,但同时也会增加误差和干扰。

3. 距离限制:I2C总线的距离限制取决于电压和速率。

在5V电平下,最大距离约为10米;在3.3V电平下,最大距离约为5米。

二、数据帧格式1. 起始位:一个高电平到低电平的转换表示开始一个传输周期。

2. 地址位:7位或10位地址码表示要访问的设备地址。

3. 读写位:一个读写位指示主机是要读取还是写入数据。

4. 应答位:设备在接收到地址位后需要发送一个应答位,表示它已经准备好接收数据。

5. 数据位:8位数据表示要传输的数据。

6. 停止位:一个低电平到高电平的转换表示传输周期结束。

三、时序参数1. SCL时钟频率:SCL时钟频率是I2C总线的主要参数之一,它决定了数据传输速率。

标准模式下,SCL频率为100kHz;快速模式下,SCL频率为400kHz;高速模式下,SCL频率可达到3.4MHz。

2. 数据保持时间(tHD;DAT):数据保持时间是指从SCL时钟的最后一个上升沿到SDA线上数据变化的最小时间间隔。

标准模式下,tHD;DAT为0.1μs;快速模式下,tHD;DAT为0.9μs;高速模式下,tHD;DAT为0.45μs。

3. 数据建立时间(tSU;DAT):数据建立时间是指从SCL时钟的第一个上升沿到SDA线上数据变化的最小时间间隔。

标准模式下,tSU;DAT为0.1μs;快速模式下,tSU;DAT为0.6μs;高速模式下,tSU;DAT为0.25μs。

4. 停止条件保持时间(tSP):停止条件保持时间是指从SCL时钟的最后一个下降沿到SDA线上数据变化的最小时间间隔。

IIC总线协议中文版

IIC总线协议中文版

IIC总线协议中文版IIC总线协议是一种常用的串行通信协议,也被称为I2C协议(Inter-Integrated Circuit)。

它在数字电子系统中广泛用于芯片之间的通信和数据传输。

本文将介绍IIC总线协议的基本原理、工作模式和通信规范。

在主从模式下,总线上有一个主设备和多个从设备。

主设备负责控制总线上的通信,发送开始信号、地址和数据,并接收从设备返回的数据。

从设备根据收到的地址来判断是否需要响应主设备的请求,并将数据发送给主设备。

在多主模式下,总线上可以有多个主设备。

这些主设备之间通过仲裁来确定哪个主设备有权控制总线,并进行通信。

每个主设备都有一个优先级,优先级高的主设备有权接管总线,而优先级低的主设备则需要等待。

起始信号由主设备发送,用于告诉从设备通信即将开始。

起始信号的生成方法是先拉低数据线(SDA),然后再拉低时钟线(SCL)。

地址帧由主设备发送,用于选择要通信的从设备。

地址帧由7位地址和1位读/写位组成,共计8位。

地址位指定了要通信的从设备,读/写位用于指示主设备是要读取还是写入数据。

数据帧由主设备或从设备发送,用于传输实际的数据。

数据帧的长度可以是1字节到32字节。

停止信号由主设备发送,用于告诉从设备通信结束。

停止信号的生成方法是先拉高时钟线(SCL),然后再拉高数据线(SDA)。

总线上的设备可以通过拉低数据线(SDA)来请求主设备延时或终止通信。

总结IIC总线协议是一种常用的串行通信协议,适用于芯片之间的通信和数据传输。

它基于两根线(数据线和时钟线),支持主从模式和多主模式两种工作模式。

通信包括起始信号、地址帧、数据帧和停止信号。

每个设备通过唯一的地址来进行通信,可以通过拉低数据线来请求主设备延时或终止通信。

IIC总线协议

IIC总线协议
在总线的一次数据传送过程中,可以有以下几种组合 方式:
a、主机向从机发送数据,数据传送方向在整个 传送过程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则表示数据 由从机向主机传送。
A表示应答, A非表示非应答(高电平)。S表示起始信号,P表示 终止信号。。
b、主机在第一个字节后,立即从从机读数据
本课仅讨论I2C串行总线。
I2C总线通过上拉电阻接正电源。当总线空闲时,两 根线均为高电平。连到总线上的任一器件输出的低电平, 都将使总线的信号变低,即各器件的SDA及SCL都是 线“与”关系。
I2C总线的数据传送
一、数据位的有效性规定
I2C总线进行数据传送时,时钟信号为高电平期间, 数据线上的数据必须保持稳定,只有在时钟线上的信 号为低电平期间,数据线上的高电平或低电平状态才 允许变化。
I2C总线的寻址
主机发送地址时,总线上的每个从机都将这7位地址码 与自己的地址进行比较,如果相同,则认为自己正被主 机寻址,根据R/位将自己确定为发送器或接收器。
从机的地址由固定部分和可编程部分组成。在一个系 统中可能希望接入多个相同的从机,从机地址中可编程 部分决定了可接入总线该类器件的最大数目。如一个从 机的7位寻址位有4位是固定位,3位是可编程位,这时 仅能寻址8个同样的器件,即可以有8个同样的器件接 入到该I2C总线系统中。
应答时序图
I2C总线的数据传送格式
(2)数据帧格式 在总线的一次数据传送过程中,可以有以下几种组合 方式: a、主机向从机发送数据,数据传送方向在整个传送过 程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则表 示数据由从机向主机传送。
A表示应答, 表示非应答(高电平)。S表示起始信号,P 表示终止信号。。

I2C总线规范与I2C器件C51读写程序

I2C总线规范与I2C器件C51读写程序
2、I2C规范:
I2C总线规范可以参考有关资料,本文仅给出有关硬件操作的基本概念。
2.1、I2C 总线名词解释:
发送器:发送数据到总线上的器件
接收器:从总线上接收数据的器件
主器件:启动数据传送并产生时钟信号的器件
从器件:被主器件寻址的器件
2.2、I2C总线时序定义:
起始位:SCL=1时,在SDA上有下降延
应答检测:采用应答检测读命令测试从机是否<页写>结束(通过从应答来识别)
*当从器件完成内部写周期后将发送一个应答信号(从应答)给主器件,以便可以继续进行下一次读操作
3、I2C器件C51读写程序
3.1、数据定义说明:
sbit sda=P0^0; //I2C器件SDA数据线
sbit scl=P0^1; //I2C器件SCL时钟线
for(i=0;i<8;i++){
_nop_();
scl=0; //置时钟线为低,准备接收数据位
nops();
scl=1; //置时钟线为高,使数据线上数据有效
_nop_();
c<<=1;
if(sda)c+=1; //读数据位,将接收的数据存c
}
scl=0;
return c;
}
uchar i;
i2c_start();
send_byte(ad_main); //发送器件地址
send_byte(ad_sub); //发送器件子地址
for(i=0;i<num;i++){
send_byte(*buf); //发送数据*buf
buf++;

中文译文,I2C总线规范2.1

中文译文,I2C总线规范2.1

I2C总线规范2.12000年1月11.标准模式I2C总线规范的扩展标准模式I2C总线规范在80年代的初期已经存在,它规定数据传输速率可高达100kbit/s而且7位寻址。

这个概念在普及中迅速成长,今天它已经作为一个标准被全世界接受,而且Philips Semiconductors和其他供应商提供了几百种不同的兼容IC电路。

为了符合更高速度的要求以及制造更多可使用的从机地址给数量不断增长的新器件,标准模式I2C总线规范不断升级,到今天它提供了以下的扩展:快速模式速率高达400kbit/s。

高速模式Hs模式速率高达3.4Mbit/s。

10位寻址允许使用高达1024个额外的从机地址。

扩展I2C总线规范主要有两个原因:现在很多应用需要传输大量的串行数据,要求的速率远远超过100kbit/s (标准模式),甚至是400kbit/s快速模式。

半导体技术持续改进的结果使I2C 总线器件现在可以使用高达3.4Mbit/s(Hs模式)的速率,而且接口电路的生产成本没有任何明显的提高。

由于使用7位寻址策略的大多数地址能被立即分配,很显然要求更多地址结合来防止为新器件分配从机地址的问题。

这个问题可以用新的10位寻址策略解决,它允许可使用的地址成10倍增长。

带有快速或Hs模式I2C总线接口的新从机器件可以有7位或10位的从机地址。

如果可能的话,首选7位地址,因为它是最便宜的硬件解决方案,而且报文长度最短。

有7位和10位地址的器件可以在相同的I2C总线系统中混合使用,不需要考虑它是F/S模式还是Hs模式的系统。

现有的和未来的主机都能产生7位或10位地址。

12.快速模式已经在标准模式I2C总线规范提出的协议、格式、逻辑电平和SDA以及SCL 线的最大电容负载,在快速模式I2C总线规范都没有修改。

带I2C总线接口的新器件必须至少符合快速模式或Hs模式规范的最小要求(见第13章)。

快速模式器件可以在400kbit/s下接收和发送。

IIC总线规范

IIC总线规范

I2C总线规范目录1序言 (3)1.1 版本1.0-1992 (3)1.2 版本2.0-1998 (3)1.3 版本2.1-2000 (3)1.4 购买Philips的I2C总线元件 (3)2I2C总线使设计人员和厂商都得益 (3)2.1 设计人员的得益 (4)2.2 厂商的得益 (5)3介绍I2C总线规范 (6)4I2C总线的概念 (6)5总体特征 (7)6位传输 (7)6.1 数据的有效性 (7)6.2 起始和停止条件 (8)7传输数据 (9)7.1 字节格式 (9)7.2 响应 (9)8仲裁和时钟发生 (10)8.1 同步 (10)8.2 仲裁 (10)8.3 用时钟同步机制作为握手 (11)97位的地址格式 (12)107位寻址 (13)10.1 第一个字节的位定义 (13)10.1.1 广播呼叫地址 (14)10.1.2 起始字节 (15)10.1.3 CBUS的兼容性 (16)11标准模式I2C总线规范的扩展 (16)12快速模式 (17)13Hs模式 (17)13.1 高速传输 (17)13.2 Hs模式的串行数据传输格式 (19)13.3 从F/S模式切换到Hs模式以及返回 (20)13.4 低速模式中的快速模式器件 (21)13.5 串行总线系统的混合速度模式 (21)13.5.1 在混合速度总线系统中的F/S模式传输 (22)13.5.2 在混合速度总线系统中的Hs模式传输 (22)13.5.3 混合速度总线系统中电桥的时序要求 (24)1410位寻址 (24)14.1 头两个字节位的定义 (24)14.2 10位寻址的格式 (24)14.3 广播呼叫地址和10位寻址的起始字节 (26)15I/O级和总线线路的电气规范和时序 (26)15.1 标准和快速模式器件 (26)15.2 Hs模式器件 (28)16I2C总线器件到总线线路的电气连接 (30)16.1 标准模式I2C总线器件电阻R p和R S的最大和最小值 (31)17应用信息 (33)17.1 快速模式I2C总线器件的斜率控制输出级 (33)17.2 快速模式I2C总线器件的开关上拉电路 (34)17.3 总线线路的配线方式 (34)17.4 快速模式I2C总线器件电阻R p和R S的最大和最小值 (35)17.5 Hs模式I2C总线器件的电阻R p和R S的最大和最小值 (35)18F/S模式I2C总线系统的双向电平转换器 (35)18.1 连接逻辑电平不同的器件 (36)18.1.1 电平转换器的操作 (36)19Philips提供的开发工具 (37)20支持的文献 (37)1序言1.1 版本1.0-19921992 I2C总线规范的这个版本有以下的修正• 删除了用软件编程从机地址的内容因为实现这个功能相当复杂而且不被使用• 删除了低速模式实际上这个模式是整个I2C总线规范的子集不需要明确地详细说明• 增加了快速模式它将位速率增加4倍到达400kbit/s快速模式器件都向下兼容即它们可以在0~100kbit/s的I2C总线系统中使用• 增加了10位寻址允许1024个额外的从机地址• 快速模式器件的斜率控制和输入滤波改善了EMC性能注意100kbit/s的I2C总线系统或100kbit/s器件都没有改变1.2 版本2.0-1998I2C总线实际上已经成为一个国际标准在超过100种不同的IC上实现而且得到超过50家公司的许可但是现在的很多应用要求总线速度更高电源电压更低这个更新版的I2C总线规范满足这些要求而且有以下的修正• 增加了高速模式Hs模式它将位速率增加到3.4Mbit/s Hs模式的器件可以和I2C总线系统中快速和标准模式器件混合使用位速率从0~3.4Mbit/s• 电源电压是2V或更低的器件的低输出电平和滞后被调整到符合噪声容限的要求而且保持和电源电压更高的器件兼容• 快速模式输出级的0.6V 6mA要求被删除• 新器件的固定输入电平被总线电压相关的电平代替• 增加了双向电平转换器的应用信息1.3 版本2.1-2000I2C总线规范的V2.1版有以下微小的修改• 在Hs模式的重复起始条件后可以延长时钟信号SCLH见13.2节的图2225和32• Hs模式中的一些时序参数变得更随意见表6和表71.4 购买Philips的I2C总线元件购买Philips的I2C元件同时传递了一个在Philips的I2C专利下在I2C系统使用元件使系统符合由Philips定义的I2C规范的许可证2I2C总线使设计人员和厂商都得益在消费者电子电讯和工业电子中看上去不相关的设计里经常有很多相似的地方例如几乎每个系统都包括• 一些智能控制通常是一个单片的微控制器• 通用电路例如LCD驱动器远程I/O口RAM EEPROM或数据转换器• 面向应用的电路譬如收音机和视频系统的数字调谐和信号处理电路或者是音频拨号电话的DTMF发生器为了使这些相似之处对系统设计者和器件厂商都得益而且使硬件效益最大电路最简单Philips开发了一个简单的双向两线总线实现有效的IC之间控制这个总线就称为Inter IC或I2C总线现在Philips 包括超过150种CMOS和双极性兼容I2C总线的IC可以执行前面提到的三种类型的功能所有符合I2C 总线的器件组合了一个片上接口使器件之间直接通过I2C总线通讯这个设计概念解决了很多在设计数字控制电路时遇到的接口问题下面是I2C总线的一些特征• 只要求两条总线线路一条串行数据线SDA一条串行时钟线SCL• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机发送器或主机接收器• 它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏• 串行的8位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s高速模式下可达3.4Mbit/s• 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整• 连接到相同总线的IC数量只受到总线的最大电容400pF限制图1是两个I2C总线应用的例子2.1 设计人员的得益符合I2C总线的IC允许系统设计快速向前推进直接从功能结构图到原型此外由于它们直接剪贴到I2C总线没有任何额外的外部接口所以允许简单地通过从或者向总线剪贴或不剪贴IC 来修改或升级原型系统符合I2C总线的IC还有一些功能特别吸引设计人员• 结构图的功能模块与实际的IC对应设计快速从结构图向最后的原理图推进• 不需要设计总线接口因为I2C总线接口已经集成在片上• 集成的寻址和数据传输协议允许系统完全由软件定义• 相同类型的IC经常用于很多不同的应用• 由于设计人员快速熟悉了用兼容I2C总线的IC表示经常使用的功能模块使设计时间减少• 在系统中增加或删除IC不会影响总线的其他电路• 故障诊断和调试都很简单故障可被立即寻迹• 通过聚集一个可再使用的软件模块的库减少软件开发时间除了这些优点外符合I2C总线的CMOS IC还向设计者在特别吸引的可移植装置和电池供电系统方面提供了特殊的功能它们都有• 极低的电流消耗• 抗高噪声干扰• 电源电压范围宽• 工作的温度范围广图1 I 2C 应用的两个例子a 高性能的高度集成电视bDECT 无绳电话基站2.2 厂商的得益符合I 2C 总线的IC 不只帮助了设计者它们也使设备厂商得到很多益处因为• 简单的两线串行I 2C 总线将互联减到最小因此IC 的管脚更少而且PCB 的线路也减少结果使PCB 更小和更便宜• 完全完整的I 2C 总线协议不需要地址译码器和其他胶合逻辑• I 2C 总线的多主机功能允许通过外部连接到生产线快速测试和调整最终用户的设备•符合I 2C 总线的IC 提供SO 小型VSO 超小型以及DIL 封装甚至减少了IC 的空间要求这些只是一些益处另外兼容I 2C 总线的IC 通过允许简单地构造设备变量和保持设计是最新的简易升级功能增加了系统设计的灵活性这样整个装置系列可以围绕一个基本的模型开发新设备的升级或者功能增强的模型即扩展的存储器远程控制等等可以简单地通过剪贴相应的IC 到总线上产生如果需要更大的ROM 只需要从我们广泛的IC 中选择一个有更大ROM 的微控制器就可以了由于新的IC 要取代旧的增加新功能到装置或者提升它的性能只要简单地从总线上移去过时的IC然后换上它的后续IC 就可以了3介绍I2C总线规范对于面向8位的数字控制应用譬如那些要求用微控制器的要建立一些设计标准• 一个完整的系统通常由至少一个微控制器和其他外围器件例如存储器和I/O扩展器组成• 系统中不同器件的连接成本必须最小• 执行控制功能的系统不要求高速的数据传输• 总的效益由选择的器件和互连总线结构的种类决定产生一个满足这些标准的系统需要一个串行的总线结构尽管串行总线没有并行总线的数据吞吐能力但它们只要很少的配线和IC连接管脚然而总线不仅仅是互连的线还包含系统通讯的所有格式和过程串行总线的器件间通讯必须有某种形式的协议避免所有混乱数据丢失和妨碍信息的可能性快速器件必须可以和慢速器件通讯系统必须不能基于所连接的器件否则不可能进行修改或改进应当设计一个过程决定哪些器件何时可以控制总线而且如果有不同时钟速度的器件连接到总线必须定义总线的时钟源所有这些标准都在I2C总线的规范中4I2C总线的概念I2C总线支持任何IC生产过程NMOS CMOS双极性两线――串行数据SDA和串行时钟SCL线在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器LCD驱动器存储器或键盘接口而且都可以作为一个发送器或接收器由器件的功能决定很明显LCD驱动器只是一个接收器而存储器则既可以接收又可以发送数据除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机见表1主机是初始化总线的数据传输并产生允许传输的时钟信号的器件此时任何被寻址的器件都被认为是从机表1 I2C总线术语的定义产生时钟信号和终止发送的器件被主机寻址的器件但不破坏报文是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏I2C总线是一个多主机的总线这就是说可以连接多于一个能控制总线的器件到总线由于主机通常是微控制器让我们考虑以下数据在两个连接到I2C总线的微控制器之间传输的情况见图2这突出了I2C总线的主机从机和接收器发送器的关系应当注意的是这些关系不是持久的只由当时数据传输的方向决定传输数据的过程如下1假设微控制器A要发送信息到微控制器B• 微控制器A主机寻址微控制器B从机• 微控制器A主机发送器发送数据到微控制器B从机接收器• 微控制器A终止传输2如果微控制器A想从微控制器B接收信息• 微控制器A主机寻址微控制器B从机• 微控制器A 主机接收器从微控制器B 从机发送器接收数据 •微控制器A 终止传输甚至在这种情况下主机微控制器A 也产生定时而且终止传输连接多于一个微控制器到I 2C 总线的可能性意味着超过一个主机可以同时尝试初始化传输数据为了避免由此产生混乱发展出一个仲裁过程它依靠线与连接所有I 2C 总线接口到I 2C 总线如果两个或多个主机尝试发送信息到总线在其他主机都产生的情况下首先产生一个1的主机将丢失仲裁仲裁时的时钟信号是用线与连接到SCL 线的主机产生的时钟的同步结合关于仲裁的更详细信息请参考第8章图2 使用两个微控制器的I 2C 总线配置举例在I 2C 总线上产生时钟信号通常是主机器件的责任当在总线上传输数据时每个主机产生自己的时钟信号主机发出的总线时钟信号只有在以下的情况才能被改变慢速的从机器件控制时钟线并延长时钟信号或者在发生仲裁时被另一个主机改变5总体特征SDA 和SCL 都是双向线路都通过一个电流源或上拉电阻连接到正的电源电压见图3当总线空闲时这两条线路都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能I 2C 总线上数据的传输速率在标准模式下可达100kbit/s 在快速模式下可达400kbit/s 在高速模式下可达3.4Mbit/s 连接到总线的接口数量只由总线电容是400pF 的限制决定关于高速模式主机器件的信息请参考第13章6位传输由于连接到I 2C 总线的器件有不同种类的工艺CMOS NMOS 双极性逻辑0低和1高的电平不是固定的它由V DD 的相关电平决定见第15章的电气规范每传输一个数据位就产生一个时钟脉冲6.1 数据的有效性SDA 线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变见图4DEVICE 1DEVICE 2图3 标准模式器件和快速模式器件连接到I 2C 总线data line stable;data validchange of data allowedSDASCL图4 I 2C 总线的位传输6.2 起始和停止条件 在I 2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图5的情况其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后总线被认为再次处于空闲状态总线的空闲状态将在第15章详细说明如果产生重复起始Sr条件而不产生停止条件总线会一直处于忙的状态此时的起始条件S和重复起始Sr条件在功能上是一样的见图10因此在本文档的剩余部分符号S 将作为一个通用的术语既表示起始条件又表示重复起始条件除非有特别声明的Sr如果连接到总线的器件合并了必要的接口硬件那么用它们检测起始和停止条件十分简便但是没有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换SDASCLPSTOP conditionSDASCLSSTART condition图5 起始和停止条件7传输数据7.1 字节格式发送到SDA线上的每个字节必须为8位每次传输可以发送的字节数量不受限制每个字节后必须跟一个响应位首先传输的是数据的最高位MSB见图6如果从机要完成一些其他功能后例如一个内部中断服务程序才能接收或发送下一个完整的数据字节可以使时钟线SCL保持低电平迫使主机进入等待状态当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续在一些情况下可以用与I2C总线格式不一样的格式例如兼容CBUS的器件甚至在传输一个字节时用这样的地址起始的报文可以通过产生停止条件来终止此时不会产生响应见10.1.3节7.2 响应数据传输必须带响应相关的响应时钟脉冲由主机产生在响应的时钟脉冲期间发送器释放SDA线高在响应的时钟脉冲期间接收器必须将SDA线拉低使它在这个时钟脉冲的高电平期间保持稳定的低电平见图7当然必须考虑建立和保持时间在第15章详细说明通常被寻址的接收器在接收到的每个字节后除了用CBUS地址开头的报文必须产生一个响应见10.1.3节当从机不能响应从机地址时例如它正在执行一些实时函数不能接收或发送从机必须使数据线保持高电平主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节主机必须再一次终止传输这个情况用从机在第一个字节后没有产生响应来表示从机使数据线保持高电平主机产生一个停止或重复起始条件如果传输中有主机接收器它必须通过在从机不产生时钟的最后一个字节不产生一个响应向从机发送器通知数据结束从机发送器必须释放数据线允许主机产生一个停止或重复起始条件图6 I2C总线的数据传输图7 I 2C 总线的响应8仲裁和时钟发生8.1 同步所有主机在SCL 线上产生它们自己的时钟来传输I 2C 总线上的报文数据只在时钟的高电平周期有效因此需要一个确定的时钟进行逐位仲裁时钟同步通过线与连接I 2C 接口到SCL 线来执行这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期而且一旦器件的时钟变低电平它会使SCL 线保持这种状态直到到达时钟的高电平见图8但是如果另一个时钟仍处于低电平周期这个时钟的低到高切换不会改变SCL 线的状态因此SCL 线被有最长低电平周期的器件保持低电平此时低电平周期短的器件会进入高电平的等待状态C LK 1CLK 2SCLstart counting图8 仲裁过程中的时钟同步当所有有关的器件数完了它们的低电平周期后时钟线被释放并变成高电平之后器件时钟和SCL 线的状态没有差别而且所有器件会开始数它们的高电平周期首先完成高电平周期的器件会再次将SCL 线拉低这样产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定而高电平周期由高电平时钟周期最短的器件决定8.2 仲裁主机只能在总线空闲的时侯启动传输两个或多个主机可能在起始条件的最小持续时间t HD;STA内产生一个起始条件结果在总线上产生一个规定的起始条件当SCL 线是高电平时仲裁在SDA 线发生这样在其他主机发送低电平时发送高电平的主机将断开它的数据输出级因为总线上的电平与它自己的电平不相同仲裁可以持续多位它的第一个阶段是比较地址位有关的寻址信息请参考第10章和第14章如果每个主机都尝试寻址相同的器件仲裁会继续比较数据位如果是主机发送器或者比较响应位如果是主机接收器因为I 2C 总线的地址和数据信息由赢得仲裁的主机决定在仲裁过程中不会丢失信息丢失仲裁的主机可以产生时钟脉冲直到丢失仲裁的该字节末尾由于Hs 模式的主机有一个唯一的8位主机码因此一般在第一个字节就可以结束仲裁见第13章 如果主机也结合了从机功能而且在寻址阶段丢失仲裁它很可能就是赢得仲裁的主机在寻址的器件因此丢失仲裁的主机必须立即切换到它的从机模式图9显示了两个主机的仲裁过程当然可能包含更多的内容由连接到总线的主机数量决定此时产生DATA1的主机的内部数据电平与SDA 线的实际电平有一些差别如果关断数据输出这就意味着总线连接了一个高输出电平这不会影响由赢得仲裁的主机初始化的数据传输DATA 1DATA 2SDASCL图9 两个主机的仲裁过程由于I 2C 总线的控制只由地址或主机码以及竞争主机发送的数据决定没有中央主机总线也没有任何定制的优先权必须特别注意的是在串行传输时当重复起始条件或停止条件发送到I 2C 总线的时侯仲裁过程仍在进行如果可能产生这样的情况有关的主机必须在帧格式相同位置发送这个重复起始条件或停止条件也就是说仲裁在不能下面情况之间进行• 重复起始条件和数据位 • 停止条件和数据位 • 重复起始条件和停止条件从机不被卷入仲裁过程8.3 用时钟同步机制作为握手 时钟同步机制除了在仲裁过程中使用外还可以用于使能接收器处理字节级或位级的快速数据传输在字节级的快速传输中器件可以快速接收数据字节但需要更多时间保存接收到的字节或准备另一个要发送的字节然后从机以一种握手过程见图6在接收和响应一个字节后使SCL 线保持低电平迫使主机进入等待状态直到从机准备好下一个要传输的字节在位级的快速传输中器件例如对I 2C 总线有或没有限制的微控制器可以通过延长每个时钟的低电平周期减慢总线时钟从而任何主机的速度都可以适配这个器件的内部操作速率在Hs 模式中握手的功能只能在字节级使用见第13章97位的地址格式数据的传输遵循图10所示的格式在起始条件S后发送了一个从机地址这个地址共有7位紧接着的第8位是数据方向位R/W0表示发送写1表示请求数据读数据传输一般由主机产生的停止位P终止但是如果主机仍希望在总线上通讯它可以产生重复起始条件Sr和寻址另一个从机而不是首先产生一个停止条件在这种传输中可能有不同的读写格式结合图10 完整的数据传输可能的数据传输格式有• 主机发送器发送到从机接收器传输的方向不会改变见图11• 在第一个字节后主机立即读从机见图12在第一次响应时主机发送器变成主机接收器从机接收器变成从机发送器第一次响应仍由从机产生之前发送了一个不响应信号A的主机产生停止条件• 复合格式见图13传输改变方向的时侯起始条件和从机地址都会被重复但R/W位取反如果主机接收器发送一个重复起始条件它之前应该发送了一个不响应信号A注意1复合格式可以用于例如控制一个串行存储器在第一个数据字节期间要写内部存储器的位置在重复起始条件和从机地址后数据可被传输2自动增加或减少之前访问的存储器位置等所有决定都由器件的设计者决定3每个字节都跟着一个响应位在序列中用A或A模块表示4兼容I2C总线的器件在接收到起始或重复起始条件时必须复位它们的总线逻辑甚至在这些起始条件没有根据正确的格式放置它们也都期望发送从机地址5起始条件后面立即跟着一个停止条件报文为空是一个不合法的格式图11 主机发送器用7位地址寻址从机接收器传输方向不变图12 在第一个字节后主机立即读从机图13 复合格式107位寻址I2C总线的寻址过程是通常在起始条件后的第一个字节决定了主机选择哪一个从机例外的情况是可以寻址所有器件的广播呼叫地址使用这个地址时理论上所有器件都会发出一个响应但是也可以使器件忽略这个地址广播呼叫地址的第二个字节定义了要采取的行动这个过程将在10.1.1节详细介绍有关10位寻址的信息请参考第14章10.1 第一个字节的位定义第一个字节的头7位组成了从机地址见图14最低位LSB是第8位它决定了报文的方向第一个字节的最低位是0表示主机会写信息到被选中的从机1表示主机会向从机读信息当发送了一个地址后系统中的每个器件都在起始条件后将头7位与它自己的地址比较如果一样器件会任务它被主机寻址至于是从机接收器还是从机发送器都由R/W位决定图14 起始条件后的第一个字节从机地址由一个固定和一个可编程的部分构成由于很可能在一个系统中有几个同样的器件从机地址的可编程部分使最大数量的这些器件可以连接到I2C总线上器件可编程地址位的数量由它可使用的管脚决定例如如果器件有4个固定的和3个可编程的地址位那么相同的总线上共可以连接8个相同的器件I2C总线委员会协调I2C地址的分配进一步的信息可以从最后列出的Philips代理商处获得保留的两组8位地址0000XXX和1111XXX的用途见表2从机地址的11110XX位组合保留给10位寻址见第14章。

I2C总线规范详细介绍

I2C总线规范详细介绍

I2C总线规范详细介绍一、I2C 总线术语的定义术语描述发送器发送数据到总线的器件接收器从总线接收数据的器件主机初始化发送产生时钟信号和终止发送的器件从机被主机寻址的器件多主机同时有多于一个主机尝试控制总线但不破坏报文仲裁是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程同步两个或多个器件同步时钟信号的过程二、I2C 总线上数据传输的过程I2C 总线是一个多主机的总线,这就是说可以连接多于一个能控制总线的器件到总线。

由于主机通常是微控制器,让我们考虑以下数据在两个连接到I2C 总线的微控制器之间传输的情况。

这突出了I2C 总线的主机--从机和接收器--发送器的关系。

应当注意的是这些关系不是持久的,只由当时数据传输的方向决定。

传输数据的过程如下:1、假设微控制器A 要发送信息到微控制器B1)微控制器A 主机寻址微控制器B 从机2)微控制器A 主机发送器发送数据到微控制器B 从机接收器3)微控制器A 终止传输2、如果微控制器A 想从微控制器B 接收信息1)微控制器A 主机寻址微控制器B 从机2)微控制器A 主机接收器从微控制器B 从机发送器接收数据3)微控制器A 终止传输,甚至在这种情况下主机微控制器A 也产生定时而且终止传输三、I2C 总线的仲裁连接多于一个微控制器到I2C 总线的可能性意味着超过一个主机可以同时尝试初始化传输数据。

为了避免由此产生混乱,发展出一个仲裁过程。

它依靠线与连接所有I2C 总线接口到I2C 总线。

如果两个或多个主机尝试发送信息到总线,在其他主机都产生“0” 的情况下,首先产生一个“1”的主机将丢失仲裁。

仲裁时的时钟信号是用线与连接到SCL 线的主机产生的时钟的同步结合。

在I2C 总线上产生时钟信号通常是主机器件的责任,当在总线上传输数据时每个主机产生自己的时钟信号。

主机发出的总线时钟信号只有在以下的情况才能被改变:慢速的从机器件控制时钟线并延长时钟信号,或者在发生仲裁时被另一个主机改变。

(完整版)I2C总线

(完整版)I2C总线

概述I2C总线(I2C bus,Inter-IC bus)是一个双向的两线连续总线,提供集成电路(ICs)之间的通信线路。

I2C总线是一种串行扩展技术,最早由Philips公司推出,广泛应用于电视,录像机和音频设备。

I2C总线的意思是“完成集成电路或功能单元之间信息交换的规范或协议”。

Philips公司推出的I2C总线采用一条数据线(SDA),加一条时钟线(SCL)来完成数据的传输及外围器件的扩展;对各个节点的寻址是软寻址方式,节省了片选线,标准的寻址字节SLAM为7位,可以寻址127个单元。

I2C总线有三种数据传输速度:标准,快速模式和高速模式。

标准的是100Kbps,快速模式为400Kbps,高速模式支持快至3.4Mbps的速度。

所有的与次之传输速度的模式都是兼容的。

I2C总线支持7位和10位地址空间设备和在不同电压下运行的设备。

特征1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

术语发送器:发送数据到总线的器件;接收器:从总线接收数据的器件;主机:启动数据传送并产生时钟信号的设备;从机:被主机寻址的器件;多主机:同时有多于一个主机尝试控制总线但不破坏传输;主模式:用I2CNDAT支持自动字节计数的模式;位I2CRM,I2CSTT,I2CSTP控制数据的接收和发送;从模式:发送和接收操作都是由I2C模块自动控制的;仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程;同步:两个或多个器件同步时钟信号的过程。

I2C总线规范

I2C总线规范

【简介,I2C通信协议是荷兰的飞利浦公司研发的一套成熟的通信协议,NXP原是飞利浦旗下的公司(10月27日,高通、NXP联合宣布,双方已经达成最终协议,并经董事会一致批准,高通将收购NXP。

高通将以110美元(溢价11.5%)每股的价格,收购NXP已发行的全部股票,总价值约470亿美元,约合人民币3190亿元,全部以现金支付。

)】I2C总线规范一个典型的嵌入式系统包括一个或多个微控制器和外设单元,类似于存储、转换、I/O 扩展器,LCD驱动,传感器,矩阵,转换器等等。

这些所有连接到一起的设备,其复杂度和成本需要压缩到最低。

系统的设计必须能够使慢速设备与系统进行通信,而不会减慢速度。

为了满足这些要求,需要一个串行总线,总线是指定义总线上的规则的连接、协议、格式、地址和过程的规范。

这正是I2C总线规范定义的。

I2C总线使用2根线:串行数据口(SDA)和串行时钟(SCL)。

所有I2C主、从设备通过两根总线连接起来。

每个外设既能够发送数据又能够接收数据。

作为主机他们产生总线的时钟和总线上通信的初始化。

其他的从机设备对主机进行应答。

为了与指定的设备进行通信,每个在总线上的从机设备必须拥有唯一的设备地址。

主设备可以没有主机地址,因为主机不需要其他设备对其发送命令,然后产生应答。

I2C时序发送者这是传输数据到总线的设备接受者这是从总线接收数据的设备主机:这是一个产生时钟信号,开始通信指令,和发送I2C指令,和停止通信的指令。

从机:这是一个监听总线信号,回信息给主机的设备多主机:I2C可以有跟多的主机每个主机都可以发送命令给从机仲裁:当更多的主设备需要占用总线时,一个确定总线上的主机可以使用它同步:在一个或者多个设备上处理同步时钟信号总线信号SCL和SDA信号都是双向的。

他们通过连接正电极的两个电阻进行供电。

这意味着当总线空闲时,两根线都是高电平,总线上的所有设备都必须有开槽或开漏针。

激活这条线意味着把它拉下来(有线和)。

i2c总线编写格式

i2c总线编写格式

i2c总线编写格式(原创实用版)目录1.I2C 总线的概述2.I2C 总线的编写格式3.I2C 总线的数据传输过程4.I2C 总线的优点与应用正文【I2C 总线的概述】I2C(Inter-Integrated Circuit)总线是一种串行通信总线,它是由 Philips 公司(现在的 NXP 半导体公司)在 1980 年代开发的。

I2C 总线的主要用途是在微控制器(MCU)和周边设备(如 EEPROM、LCD 显示器、传感器等)之间进行低速通信。

I2C 总线上的设备可以通过地址进行识别,从而实现多主控制器和多从设备的通信。

【I2C 总线的编写格式】I2C 总线的编写格式主要包括以下三个部分:1.设备地址:每个连接到 I2C 总线上的设备都具有一个唯一的地址,通常为 7 位。

设备地址由主控制器分配,并存储在设备的寄存器中。

2.设备数据寄存器:设备数据寄存器用于存储设备与主控制器之间的通信数据。

I2C 总线支持多个数据寄存器,每个寄存器都有一个唯一的寄存器地址。

3.设备控制寄存器:设备控制寄存器用于控制设备的操作,例如读/写操作、设备复位等。

控制寄存器中的某些位可以用于标识设备的状态,例如忙碌、空闲等。

【I2C 总线的数据传输过程】I2C 总线的数据传输过程分为三个阶段:1.仲裁阶段:在数据传输过程中,如果有多个主控制器需要访问 I2C 总线,那么它们之间需要进行仲裁,以确定哪个主控制器可以访问总线。

仲裁的输赢取决于主控制器的仲裁位(ARB)和设备地址。

2.数据传输阶段:在仲裁阶段结束后,主控制器和从设备之间可以进行数据传输。

数据传输过程中,主控制器需要发送设备地址和读/写操作位(R/W 位),以指示从设备进行读取或写入操作。

3.结束阶段:数据传输完成后,主控制器需要发送一个停止信号(STOP),以结束本次通信。

从设备在接收到停止信号后,可以开始处理其他操作。

【I2C 总线的优点与应用】I2C 总线的主要优点包括:1.主从设备通信:I2C 总线允许多个主控制器和从设备进行通信,提高了系统的可扩展性。

I2C总线规范

I2C总线规范

CBUS 的兼容性
CBUS 接收器可以连接到标准模式的I2C 总线,但是必须 连接第三条叫DLEN 的线,而且要省略响应位,通常I2C 的传输是8 位的字节序列,兼容CBUS 的器件有不同的格 式。 在混合的总线结构中,I2C 总线器件必须不能响应CBUS 的报文,因此保留了一个兼容I2C 总线器件不会被相应的 特殊CBUS 地址0000001X 发送CBUS 地址后DLEN 线激 活,发送CBUS 格式的报文, 在停止条件后所有器件再 次准备好接收数据。
传输数据
响应:
数据传输必须带响应,相关的响应时钟脉冲由主机产生,在响应的时钟 脉冲期间发送器释放SDA 线高。 在响应的时钟脉冲期间接收器必须将SDA 线拉低,使它在这个时钟脉冲 的高电平期间保持稳定的低电平。
仲裁和时钟发生
仲裁过程中的时钟同步:
产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定, 而高电平周期由高电平时钟周期最短的器件决定,如下图:
10 位寻址的格式
主机接收器用10 位的从机地址读从机发送器
传输方向在第2 个R/W 位改变, 整个过程直到并包括响应位A2 都与 主机发送器寻址从机接收器的相同,在重复起始条件Sr 后匹配的从机 成员记得它之前被寻址这个从机然后检查Sr 后第一个字节的头7 位是 否和起始条件S 后的相同,并检查第8 位R/W 是不是1, 如果匹配从 机会认为它作为发送器被寻址然后产生响应A3 ,从机发送器保持寻 址直到接收到停止条件P 或从机地址不同的另一个重复起始条件Sr, 重复起始条件Sr 后所有其他从机器件也用从机地址第一个字节的头7 位11110XX 与自己的地址比较并检查第8 位R/W ,但是没有一个会 被寻址因为R/W =1, 10 位寻址或11110XX 从机地址7 位地址器件不 能匹配

i2c总线协议标准与规范

i2c总线协议标准与规范

i2c 总线协议标准与规范I2C 总线协议I2C 协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。

起始和结束信号总是由主设备产生。

总线在空闲状态时,SCL 和SDA 都保持着高电平,当SCL 为高电平而SDA 由高到低的跳变,表示产生一个起始条件;当SCL 为高而SDA 由低到高的跳变,表示产生一个停止条件。

在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C 器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态。

如图所示:在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。

前面我们已经提到过,数据传输以字节为单位。

主设备在SCL 线上产生每个时钟脉冲的过程中将在SDA 线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA 线,回传给主设备一个应答位,此时才认为一个字节真正的被传输完成。

当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否定应答位。

数据传输的过程如图所示:在前面我们还提到过,I2C 总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7 位的,然后协议规定再给地址添加一个最低位用来表示接下来数据传输的方向,0 表示主设备向从设备写数据,1 表示主设备向从设备读数据。

如图所示:I2C 协议2 条双向串行线,一条数据线SDA,一条时钟线SCL。

SDA 传输数据是大端传输,每次传输8bit,即一字节。

支持多主控(mulTImastering),任何时间点只能有一个主控。

总线上每个设备都有自己的一个addr,共7 个bit,广播地址全0.系统中可能有多个同种芯片,为此addr 分为固定部分和可编程部份,细节视芯片而定,看datasheet。

i2c 标准

i2c 标准

i2c 标准I2C总线是一个串行通信总线,它允许多个设备之间在短距离内双向通信。

I2C总线使用两根信号线:时钟线(SCL)和数据线(SDA),它们都是开漏输出。

I2C标准由日本的NXP Semiconductors(前Philips Semiconductors)开发,最初是一种内部通信协议,用于连接母板和各种附属芯片,例如EEPROM、传感器和控制器等。

现在已成为众多微控制器、传感器和其他设备之间通信的常用标准。

I2C总线由两个设备类型组成:主机和从机。

主机控制总线并发出信号,从机在接收到信号时响应。

I2C总线可以通过地址识别来支持多个从机设备。

I2C总线传输数据时使用的是字节流,每个字节由8位组成,包括7位数据和1位校验。

I2C总线支持不同的数据传输速率,最高可达400Khz。

I2C总线是一个轻量级协议,它非常灵活和可扩展。

由于总线上的每个设备都有独特的地址,它可以连接多达112个设备。

此外,I2C总线不需要额外的线路,仅使用两根线就可以完成通信。

I2C总线标准具有以下几个重要特性:1. 灵活性I2C总线对于新硬件设备非常灵活,可以在现有配置中添加或删除设备,而不会影响其他设备的工作。

这使得I2C总线成为工业和自动化系统中控制器和传感器等各种设备之间通信的理想选择。

2. 数据安全I2C总线在数据传输过程中使用了CRC校验和,从而保证了数据传输的安全性。

此外,它还支持差错校正码(ECC)技术,确保数据在传输过程中不会丢失或被损坏。

3. 轻量级和低功耗I2C总线是一种轻量级协议,它不需要额外的线缆或接口。

此外,由于它是一个串行通信总线,而不是一个并行总线,因此它消耗的电能也比其他总线低。

4. 硬件和软件兼容性I2C总线在各种硬件平台和操作系统中都有很好的兼容性。

它支持各种软件协议、API 和操作系统,因此很容易与各种开发环境和框架集成。

总之,I2C总线是一种优秀的通信标准,具有灵活性、数据安全、轻量级和低功耗、硬件和软件兼容性等优点。

i2c限制下降沿时间

i2c限制下降沿时间

i2c限制下降沿时间I2C(Inter-Integrated Circuit)是一种串行通信协议,使用两根线(时钟线SCL和数据线SDA)进行通信。

它是一种多主从结构的总线系统,适用于短距离、低速率的通信。

在I2C协议中,下降沿时间是指从时钟信号的高电平到低电平的时间。

I2C通信中,下降沿时间的限制对于数据传输的稳定性和可靠性至关重要。

下降沿时间的过长或者不稳定会导致数据传输错误或失败。

下降沿时间的限制取决于I2C总线的工作频率和I2C设备的特性。

根据I2C规范,下降沿时间应该控制在特定的时间范围内。

首先,我们需要了解I2C的时序规范。

I2C的数据传输分为两种类型:地址传输和数据传输。

在地址传输中,先发送起始位和从器件地址,然后是读或写模式的选择位。

在数据传输中,发送数据字节,并等待从器件的确认。

关于下降沿时间的限制,常见的参考内容包括I2C规范和I2C设备的数据手册。

1. I2C规范:一般来说,I2C总线的工作频率越高,下降沿时间的要求就越严格。

例如,在标准模式下(100 kHz),下降沿时间应该小于1000 ns。

而在高速模式下(400 kHz),下降沿时间则应小于300 ns。

具体的下降沿时间限制可以在I2C规范中找到。

2. I2C设备的数据手册:对于每个具体的I2C设备,其数据手册中通常会提供下降沿时间的限制。

这些限制会告诉你在不同工作频率下,下降沿时间的要求是多少。

数据手册还可能包含其他与I2C通信相关的时序参数,比如上升沿时间、数据保持时间等。

为了确保符合下降沿时间的要求,我们可以采取一些措施:1. 选择适当的I2C设备:了解每个I2C设备的下降沿时间限制,并选择与要求匹配的设备。

2. 使用合适的I2C总线:在设计电路时,应选择能够满足下降沿时间要求的I2C总线。

3. 调整I2C总线的工作频率:如果下降沿时间超过限制,可以尝试降低I2C总线的工作频率,适应较慢的传输速度。

4. 优化硬件设计:确保电路板上的布线和接地良好,减少信号的干扰与反射。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

传输数据
字节格式
发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量 不受限制,每个字节后必须跟一个响应位。首先传输的是数据的最高位 MSB,如果从机要完成一些其他功能,例如一个内部中断服务程序才能 接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平迫使 主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线 SCL 后数据传输继续。
1 假设微控制器A 要发送信息到微控制器B • 微控制器A 主机寻址微控制器B 从机 • 微控制器A 主机发送器发送数据到微控制器B 从机接收器 • 微控制器A 终止传输 2 如果微控制器A 想从微控制器B 接收信息 • 微控制器A 主机寻址微控制器B 从机 • 微控制器A 主机接收器从微控制器B 从机发送器接收数据 • 微控制器A 终止传输
广播呼叫地址
广播呼叫地址是用来寻址连接到I2C 总线上 的每个器件的。 它的格式如下:
起始字节
微控制器可以用两种方法连接到I2C 总线,有片上 硬件I2C 总线接口的微控制器可被编程为只由总线 的请求中断,当器件没有这种接口时它必须通过 软件监控总线。 下面是一个起始字节的过程:
10 位寻址
广播呼叫地址和10 位寻址的起始字节
I2C 总线的10 位寻址过程是起始条件S 后 的头两个字节,通常决定了主机要寻址哪 个从机。 硬件主机可以在广播呼叫之后发送它们的 10 位地址,此时的广播呼叫地址字节后面 的两个字节包含了主机发送器的10 位地址 格式。 其中第一个数据字节是主机地址的8 个最低位。
I2C总线的起始和停止条件
在SCL 线是高电平时,SDA 线从高电平向低电平切换,这 个情况表示起始条件。 当SCL 是高电平时,SDA 线由低电平向高电平切换表示停 止条件。 起始和停止条件一般由主机产生,总线在起始条件后被认为 处于忙的状态,在停止条件的某段时间后总线被认为处于空 闲状态。
两个主机的仲裁过程
7 位的地址格式
在起始条件S 后发送了一个从机地址这个地址共有7 位,紧接着的第8 位是数据方向位R/W ,0 表示发送写,1 表示请求数据读数据传输,一 般由主机产生的停止位P 终止,但是如果主机仍希望在总线上通讯它可 以产生重复起始条件SR和寻址另一个从机。
第一个字节的位定义
头两个字节位的定义
10 位从机地址是由在起始条件S 或重复起始条件 Sr 后的头两个字节组成,第一个字节的头7 位是 11110XX 的组合,其中最后两位XX 是10 位地址 的两个最高位MSB,第一个字节的第8 位是R/W 位, 决定了报文的方向,第一个字节的最低位是0 表示 主机将写信息到选中的从机,1 表示主机将向从机 读信息 如果R/W 位是0 则第二个字节是10 位从机地址剩 下的8 位,如果R/W 位是1 则下一个字节是从机发 送给主机的数据
I2C总线规范的基本知识
I2C总线的定义
简单地说,就是用于连接到总线的器件传递信息的通 道。 它支持任何IC生产过程(NMOS,CMOS,双极性),是 一个多主机的总线,可以连接多于一个能控制总线的 器件到总线。 是一种双向两线总线,包括一条串行数据线(SDA), 一条串行时钟线(SCL),总线空闲时这两条线路都 是高电平。
10 位寻址的格式
主机接收器用10 位的从机地址读从机发送器
传输方向在第2 个R/W 位改变, 整个过程直到并包括响应位A2 都与 主机发送器寻址从机接收器的相同,在重复起始条件Sr 后匹配的从机 成员记得它之前被寻址这个从机然后检查Sr 后第一个字节的头7 位是 否和起始条件S 后的相同,并检查第8 位R/W 是不是1, 如果匹配从 机会认为它作为发送器被寻址然后产生响应A3 ,从机发送器保持寻 址直到接收到停止条件P 或从机地址不同的另一个重复起始条件Sr, 重复起始条件Sr 后所有其他从机器件也用从机地址第一个字节的头7 位11110XX 与自己的地址比较并检查第8 位R/W ,但是没有一个会 被寻址因为R/W =1, 10 位寻址或11110XX 从机地址7 位地址器件不 能匹配
I2C总线的总体特征
SDA 和SCL 都是双向线路都通过一个电流源或上拉电阻连 接到正的电源电压,当总线空闲时这两条线路都是高电平, 连接到总线的器件输出级必须是漏极开路或集电极开路才能 执行线与的功能。 SDA 线上的数据必须在时钟的高电平周期保持稳定,数据 线的电平状态只有在SCL 线的时钟信号是低电平时才能改变。
传输数据
响应:
数据传输必须带响应,相关的响应时钟脉冲由主机产生,在响应的时钟 脉冲期间发送器释放SDA 线高。 在响应的时钟脉冲期间接收器必须将SDA 线拉低,使它在这个时钟脉冲 的高电平期间保持稳定的低电平。
仲裁和时钟发生
仲裁过程中的时钟同步:
产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定, 而高电平周期由高电平时钟周期最短的器件决定,如下图:
10 位寻址的格式
组合格式1
主机发送数据到从机然后从相同的从机读数据, 相同的主机始终占用着总线,传输方向在第二个 R/W 位后改变。
10 位寻址的格式
组合格式2
主机发送数据到一个从机然后发送数据到 另一个从机,相同的主机始终占用着总线。
10 位寻址的格式
组合格式3
在一个串行传输中组合了10 位和7 位寻址, 在每个起始条 件S 或重复起始条件Sr 后发送10 位或7 位的从机地址, 显示了主机如何发送数据到一个7 位地址的从机,然后发 送数据到另一个10 位地址的从机。相同的主机始终占用 着总线。
第一个字节的头7 位组成了从机地址, 最低位LSB 是第8 位 它决定了报文的方向,第一个字节的最低位是0 表示主机会写 信息到被选中的从机,1 表示主机会向从机读信息。 当发送了一个地址后系统中的每个器件都在起始条件后将头 7 位与它自己的地址比较,如果一样,器件会认为它被主机寻 址,至于是从机-接收器还是从机-发送器都由R/W 位决定。
CBUS 的兼容性
CBUS 接收器可以连接到标准模式的I2C 总线,但是必须 连接第三条叫DLEN 的线,而且要省略响应位,通常I2C 的传输是8 位的字节序列,兼容CBUS 的器件有不同的格 式。 在混合的总线结构中,I2C 总线器件必须不能响应CBUS 的报文,因此保留了一个兼容I2C 总线器件不会被相应的 特殊CBUS 地址0000001X 发送CBUS 地址后DLEN 线激 活,发送CBUS 格式的报文, 在停止条件后所有器件再 次准备好接收数据。
10 位寻址的格式
主机将10 位从机地址发送到从机
传输的方向不改变 ,当起始条件后有10 位地址时每个从机 将从机地址第一个字节的头7 位11110XX 与自己的地址比 较,并测试看第8 位R/W 方向位是否为0 ,此时很可能超过 一个器件发现地址相同并产生一个响应A1, 所有发现地址 相同的从机将从机地址第2个字节的8位XXXXXXXX 与自 己的地址比较。此时只有一个主机发现地址相同并产生一 个响应A2 ,匹配的从机将保持被主机寻址直到接收到停 止条件P 或从机地址不同的重复起始条件Sr。
I2C总线术语的定义
I2C总线的特征
每个连接到总线的器件都可以通过唯一的地址和一直存在 的简单的主机从机关系软件设定地址主机,可以作为主机 发送器或主机接收器。 它是一个真正的多主机总线,如果两个或更多主机同时初 始化数据传输可以通过冲突检测和仲裁防止数据被破坏。 串行的8 位双向数据传输位速率在标准模式下可达 100kbit/s, 快速模式下可达400kbit/s ,高速模式下可达 3.4Mbit/s。 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完 整。 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
The end
10 位寻址和7 位寻址兼容而且可以结合使用,10 位寻址采用了保留的1111XXX 作为起始条件S或 重复起始条件Sr 的后第一个字节的头7 位,10 位 寻址不会影响已有的7 位寻址,有7 位和10 位地址 的器件可以连接到相同的I2C 总线.
尽管保留地址位1111XXX 有8 个可能的组合,但是 只有4 个组合11110XX 用于10 位寻址,剩下的4个 组合11111XX 保留给以后增强的I2C 总线.
相关文档
最新文档