I2C总线介绍
发布时间:2011/10/10 10:41:39 访问次数:1875
I2C (Inter Intergrated Circuit)总线是一种用于lC器件之间连接的二线制总线。它通过两根线(SDA,串行数据线;SCL,串行时钟线)在连到总线上的器件之间传送信息,根据地址识别每个器件(不管微控制器、LCD驱动器、存储器还是键盘接口),根据器件的功能可以工作于发送或接收方式。 L6561
对于发送器和接收器而言,在进行数据传送时可以是主器件,也可以是从器件。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。总线上主和从、发送和接收的关系不是永久的,而仅取决于此时数据传送的方向。
SDA和SCL都是双向I/O线,通过上拉电阻接正电源。当总线空闲时,2根线都是高电平。连接总线器件的输出级必须是开漏或集电极开路,以具有“线与”功能。I2C总线上数据传送的最高速率为lOOKbps,连到总线上器件数量仅受总线电容400pF的限制。
送到SDA线上的每个字节必须为8位,每次传送的字节数不限,每个字节后面必须跟1个响应位。数据传送时,先传最高位。如果接收器件不能接收下一个字节(例如正在赴理一个内部中断,在这个中断处理完前就不能接收I2C总线上的数据字节),则可以使时钟保持低电平,迫使主器件处于等待状态。当从机准备好接收下一个数据字节释放SCL线后继续传送。
数据传送过程中,确认数据是必需的。认可位对应于主器件的一个时钟,在此时钟内发
送器件释放SDA线,而接收器件必须将SDA线拉成低电平,使SDA在该时钟的高电平期
间为稳定的低电平。
通常被寻址的接收器件必须在收到每个字节后做出响应,若从器件正在处理一个实时事件不能接收而不对地址认可时,从器件必需使SDA保持高电平,此时主器件产生一个结束信号使传送异常结束。
发生在SDA线上的总线竞争是这样进行的:如果一个主器件发送高电平,而另一个主器件发送一个低电平,此时发送电平与SDA总线上电平不对应的器件自动关掉其输出级。当然,也可以有多个主器件参与竞争,这取决于I2C总线上主器件的数目。总线竞争可以在许多位上进行。第一级竞争是地址位的比较,如果主器件寻址同1个从器件,则下一步竞争进入数据位的比较,因为是利用I2C总线上信息进行仲裁,所以信息不会丢失。
在I2C总线上传送信息时的时钟同步是由连在SCL线上的器件的逻辑“与”完成的。SCL绒上由高到低的跳变将影响有关的器件,使它们开始低电平期。一旦一个器件时钟跳为低电平,将使SCL线保持低电平直至该时钟到达高电平。
当所有器件结束它们的低电平期时,时钟线被释放返回高电平。这样使器件时钟之间没有差别,而所有的器件都同时开始它们的高电平期。之后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生1个同步时钟,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。
I2C总线还设有广播呼叫地址,用于寻址总线上的所有器件。若一个器件不需要广播呼叫寻址中所提供的任何数据,该器件可以忽略该地址,不做响应。如果器件需要广播呼叫寻址中提供的数据,则该器件应对地址做出响应。其表现为一个接收器。第二个和接着的数据字节为每个从器件所响应并接收处理。从器件对不能处理的字节应忽略,并不做出响应。
I2C总线可十分方便地用于构成由一个单片机和一些外围器件组成的单片机系统。这样的系统价格低,器件间总线简单,结构紧凑。这种总线结构虽然没有并行总线那么大的吞吐能力,但连接线和连接引脚少。在总线上加器件不影响其他器件,不影响系统正常的工作,系统修改和可扩展性好,同时,如果不同时钟速度的器件连接到总线上,仍能确定总线时钟。
I2C (Inter Intergrated Circuit)总线是一种用于lC器件之间连接的二线制总线。它通过两根线(SDA,串行数据线;SCL,串行时钟线)在连到总线上的器件之间传送信息,根据地址识别每个器件(不管微控制器、LCD驱动器、存储器还是键盘接口),根据器件的功能可以工作于发送或接收方式。 L6561
对于发送器和接收器而言,在进行数据传送时可以是主器件,也可以是从器件。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。总线上主和从、发送和接收的关系不是永久的,而仅取决于此时数据传送的方向。
SDA和SCL都是双向I/O线,通过上拉电阻接正电源。当总线空闲时,2根线都是高电平。连接总线器件的输出级必须是开漏或集电极开路,以具有“线与”功能。I2C总线上数据传送的最高速率为lOOKbps,连到总线上器件数量仅受总线电容400pF的限制。
送到SDA线上的每个字节必须为8位,每次传送的字节数不限,每个字节后面必须跟1个响应位。数据传送时,先传最高位。如果接收器件不能接收下一个字节(例如正在赴理一个内部中断,在这个中断处理完前就不能接收I2C总线上的数据字节),则可以使时钟保持低电平,迫使主器件处于等待状态。当从机准备好接收下一个数据字节释放SCL线后继续传送。
数据传送过程中,确认数据是必需的。认可位对应于主器件的一个时钟,在此时钟内发
送器件释放SDA线,而接收器件必须将SDA线拉成低电平,使SDA在该时钟的高电平期
间为稳定的低电平。
通常被寻址的接收器件必须在收到每个字节后做出响应,若从器件正在处理一个实时事件不能接收而不对地址认可时,从器件必需使SDA保持高电平,此时主器件产生一个结束信号使传送异常结束。
发生在SDA线上的总线竞争是这样进行的:如果一个主器件发送高电平,而另一个主器件发送一个低电平,此时发送电平与SDA总线上电平不对应的器件自动关掉其输出级。当然,也可以有多个主器件参与竞争,这取决于I2C总线上主器件的数目。总线竞争可以在许多位上进行。第一级竞争是地址位的比较,如果主器件寻址同1个从器件,则下一步竞争进入数据位的比较,因为是利用I2C总线上信息进行仲裁,所以信息不会丢失。
在I2C总线上传送信息时的时钟同步是由连在SCL线上的器件的逻辑“与”完成的。SCL绒上由高到低的跳变将影响有关的器件,使它们开始低电平期。一旦一个器件时钟跳为低电平,将使SCL线保持低电平直至该时钟到达高电平。
当所有器件结束它们的低电平期时,时钟线被释放返回高电平。这样使器件时钟之间没有差别,而所有的器件都同时开始它们的高电平期。之后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生1个同步时钟,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。
I2C总线还设有广播呼叫地址,用于寻址总线上的所有器件。若一个器件不需要广播呼叫寻址中所提供的任何数据,该器件可以忽略该地址,不做响应。如果器件需要广播呼叫寻址中提供的数据,则该器件应对地址做出响应。其表现为一个接收器。第二个和接着的数据字节为每个从器件所响应并接收处理。从器件对不能处理的字节应忽略,并不做出响应。
I2C总线可十分方便地用于构成由一个单片机和一些外围器件组成的单片机系统。这样的系统价格低,器件间总线简单,结构紧凑。这种总线结构虽然没有并行总线那么大的吞吐能力,但连接线和连接引脚少。在总线上加器件不影响其他器件,不影响系统正常的工作,系统修改和可扩展性好,同时,如果不同时钟速度的器件连接到总线上,仍能确定总线时钟。
上一篇:DS18820教字温度传感器
上一篇:PCF8574是CMOS电路
热门点击
- 电子基板技术
- 三极管截止、放大和饱和三种工作状态
- 在桥式整流电路中若有一只二极管短路或开路将会
- 微电子、半导体
- 电阻器的常见种类
- MAX491芯片为RS-422/485扩展芯
- 耳塞式耳机的组装及原理
- 基极偏置电路分析方法和三极管静态电流的作用及
- 如何用万用表对电感量进行测试?
- 电容器的串联与并联
推荐技术资料
- 单片机版光立方的制作
- N视频: http://v.youku.comN_sh... [详细]