I2C通讯协议.doc_第1页
I2C通讯协议.doc_第2页
I2C通讯协议.doc_第3页
I2C通讯协议.doc_第4页
I2C通讯协议.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I2C通讯协议1. 前言1.1 版本1.01992 1992年版本的I2C通讯协议包含以下修改: 通过软件对从机地址进行编程的步骤被省略。此功能的实现相当负责,并且没有被使用。“低速模式”被省略。实际上,此模式是总I2C通讯协议的一个子集,并且不需要详细说明。增加快速模式,这使得增加了四倍的比特率,速度达到了400千比特/秒。快速模式设备是向下兼容的,也就是说它在I2C总线系统中可以以0到100千比特/秒的速度被使用。增加10位寻址。这增加了1024个额外的从机地址斜率控制和快速模式设备的快速滤波被指定用来提高EMC的性能。注意:无论是100kbit/s的I2C通讯系统还是100kbit/s的设备都已经被更改。1.2 版本2.01998 I2C通讯已经达到世界水准,现在已经在超过1000中不同的芯片和超过50家的公司中使用。事实上,当今许多的应用程序需要更高的通讯速度和更低的电源电压。此更新的I2C通讯协议版本满足这些要求,并包含了一下的修改:增加高速模式。这使通讯速度增加到了 3.4Mbit/s。高速模式设备可以与快速模式和标准模式设备混合使用,比特速率范围为0到 3.4Mbit/s。电源电压为2V的设备的低输出电平和滞后在下面经调整已经符合规定的噪声容限,并保持着对更高电源电压设备的兼容性。快速模式在0.6V,6毫安对于输出级的要求被省略。新设备固定的输入电平被通讯相关电压级取代增加了双向电平转换器的应用程序信息。1.3 版本2.12000 版本2.1的I2C通讯协议包括以下细微修改: 在高速模式的重复开始条件之后,延长时钟信号SCLH是可能的(见第13.2节和图22,25和32) 高速模式中一些时序参数被放宽限制(见表6和7)1.4 购买飞利浦I2C通讯元件 购买飞利浦I2C元件,使用I2C系统中的元件在符合飞利浦定义的I2C协议下提供系统。2. I2C通讯为设计者和生产商带来便利 在消费电子,电信和工业电子之间,往往有许多看起来无关但实际上却相似的设计。例如,几乎每个系统都包括: 一些智能控制,通常是一个单芯片单片机 通用的电路,如LCD驱动器,远程I/O端口,RAM,EEPROM,或数据转换器。 面向应用的电路,如数字调谐和无线电和视频系统的信号处理电路,或语音拨号电话的DTMF发生器。 利用这些相似之处可以为系统设计者和设备生产商带来便利,以及最大限度的提高硬件的效率和电路简化,飞利浦开发了一个简单的双向两线总线来实现高效的互联芯片控制。这个总线被称为互联IC或I2C总线。目前,飞利浦的IC范围包括超过150多种兼容类型的CMOS和双极I2C总线来执行之前提到三个类别的功能。所有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集成电路为设计者提供了特殊功能,这对便携式设备和电池供电系统特别有吸引力。 它们是:极低的电流消耗高抗干扰性宽电源电压范围宽工作温度范围 图1:I2C总线应用的两个例子:(a)一个高性能高集成的电视机(b)DECT无线电话基站2.2 制造商的便利 I2C总线兼容的芯片不止为设计者带来帮助,它们也给予了设备生产商广泛的便利,这是因为: 简单的2线串行I2C总线最大限度得减少了互联,因此芯片有更少的引脚并且没有那么多PCB走线;其结果是印刷电路板更小和更便宜。 完全集成的I2C通讯协议减去了地址译码器和其他“胶合逻辑”的需要。 I2C总线的多主机容量允许使用设备通过外部连接到组装线来进行快速测试和校准。 在SO(小轮廓),VSO(非常小轮廓)以及DIL数据上的I2C总线兼容芯片的实用性减少了空间要求。 这些都是便利。此外,I2C总线兼容芯片通过允许设备变量的简单构建和轻松升级保持设计最新来提高系统设计的灵活性。新设备的升级,或功能增强模型(即,扩展内存,遥控器等)可以简单的通过削波总线上适当的芯片来完成。如果需要一个更大的ROM,这仅仅是一个从我们品种齐全的设备中选择一个有一个更大ROM的微遥控器的问题。随着新的芯片取代旧的芯片,通过简单地非剪裁总线上旧的芯片和在它的替代芯片上进行剪裁添加新的功能到设备中或提高设备的性能是十分容易的。3. I2C通讯协议介绍 对于8位数字控制应用,如单片机的需求,需要建立一定的设计标准:一个完整的系统通常包括至少一个单片机和其他外围设备,如存储器和I/O扩展器。将各种设备与系统连接的成本必须最小化。一个执行控制功能的系统不需要高速数据传输整体效率取决于设备的选择和互联总线结构的性质 为了生产满足这些标准的系统,需要串行总线。尽管串行总线不具有并行总线的吞吐能力,但他们布线更少,芯片接脚也更少。然而,总线不只是一种互连线,它具体体现了系统通信的所有格式和过程。 在串行总线上彼此通信的设备必须有某种形式的协议 来避免所有混乱,数据丢失和信息堵塞的可能性。快速设备必须能够与慢速设备进行通信。系统必须不依赖与它连接的设备,否则修改和改善系统都是不可能的。同时,一个程序被设计来确定哪个设备在什么时候被总线控制。而且,如果不同时钟的不同设备连接到总线,总线时钟源必须被定义。所有的这些标准都涉及I2C通讯协议。4. I2C总线概念 I2C总线支持任何芯片制造工艺(NMOS,CMOS,双极性)。连接总线的两条线,串行数据(SDA)和串行时钟(SCL),携载着设备间的信息。每个设备都由一个唯一的地址认证(无论是微型控制器,LCD设备还是键盘接口),也可以作为取决于设备功能的发送器或接收器。显然,LCD驱动器只是一个接收器,而存储器既能接收信息也能发送信息。除了发送器和接收器外,当执行数据转移时,设备也可以被视为主机或从机(见表1)。主机是一个在总线上启动数据传输和产生时钟信号以允许传输的设备。在此时,任何地址的设备都被视为从机。表一:I2C总线术语定义术语描述发送器发送数据给总线的设备接收器从总线接收数据的设备主机启动传输,产生时钟信号以及结束传输的设备从机由主机定址的设备多主机在不破坏信息的情况下多个主机可以在同一时间控制总线仲裁当多个主机同时想控制总线时,保证只有一个主机被允许并且获胜信息不被破坏的过程同步将两个或多个设备的时钟信号同步化的过程 I2C总线是一个多主机总线。这意味着多个能够控制总线的设备可以连接到它之上。因为主机通常是单片机,所以让我们来看看两个连接I2C总线的单片机间数据传输的情况(见图2)。图2:使用两个单片机的I2C总线配置的示例 这突出了I2C总线上主机与从机、接收器与发送器之间的关系。需要特别指出的是,这些关系不是永久性的,它只取决于当时数据传输的方向。数据传输步骤如下:1)假设单片机A要发送数据给单片机B:单片机A(主机),地址单片机B(从机)单片机A(主发送器),将数据发送给单片机B(从接收器)单片机A终止传输2)如果单片机A要接受来自于单片机B的信息单片机A(主机)对单片机B(从机)定址单片机A(主接收器)接受来自于单片机B(从发送器)的数据单片机A终止传输 即使在这种情况下,主机(单片机A)也产生时序和终止传输。 在I2C总线上连接多个单片机的可能性意味着多个主机可以尝试同时启动数据传输。 如果两个或两个以上的主机试图把信息放在总线上,当其他主机产生“0”时第一产生“1”的主机将会失去仲裁。仲裁期间的时钟信号源是多个时钟同步组合的结果,它们是由使用与门连接到SCL线的主机产生的(更详细有关仲裁的信息,见第8节)。 I2C总线上的时钟信号源总是由主机设备产生;当在总线传输数据时,每个主机产生自己的时钟信号源。来源一个主机的总线时钟信号源只有被连接时钟线的低速从机设备拉伸时才能改变,或在仲裁发生时被另一个总机改变。5. 一般特征 SDA和SCL都是双向线路,它们通过一个电流源或上拉电阻器连接到正电源电压(见图3)。当总线空闲时,这两条线都是高平。连接总线设备的输出级必须有一个漏极开路或集电极开路,以实现线与功能。I2C总线上的数据在标准模式下可以以高达100kbit/s的速率传输,在快速模式的传输速率可达到400kbit/s,在高速模式的传输速度可达到3.4Mbit/s。连接到总线的接口数目完全取决于400pf总线电容的限制。有关高速模式下主机设备的信息,间第13节。图3:标准模式和快速模式下设备与I2C的连接6. 位传输由于各种不同的技术设备(CMOS,NMOS,双极性)可以连接到I2C总线,逻辑“0”(低)和“1”(高)电平是不固定的,他们取决于相关联的VDD电平(见第15节的电子协议)。产生时钟脉冲来传输每个数据位。6.1 数据的有效性 SDA线上的数据在时钟周期为高电平时必须是稳定的。数据线的高电平或低电平状态只能在SCL线上的时钟信号源为低电平时才能改变。(见图4)图4:I2C总线上的位传输6.2 开始和停止的条件 在I2C总线的程序中,产生了定义为开始(S)和停止(P)条件的特定情况(见图5)当SCL为高电平是SDA上电平由高电平转换为低电平,就是这样的一个特定的情况。该情况表明开始条件。当SCL为高电平时SDA的电平由低电平转换为高电平,这被定义为停止条件。开始和停止条件总是由主机产生。在开始条件出现后,总线被视为忙碌状态。某个时候在停止条件出现后,总线被视为再次回到空闲状态。总线的空闲状态是在第15节规定的。图5:开始条件和停止条件 如果一个重复开始条件而不是停止条件被产生,总线会一直处于忙碌状态。在这方面,开始条件(S)和重复开始条件(Sr)在功能上是相同的(见图10)。因此,对于该文件的剩余部分,S符号将被用作一个通用术语来表示开始条件和重复开始条件,除非Sr是特别相关的。 如果合并必要的的接口硬件,对于连接总线的设备的开始条件和停止条件的监测是十分容易的。然而,没有这样接口的单片机必须在每个时钟周期对SDA线进行至少两次来检测转换。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 I2C总线上的应答信号8. 仲裁和时钟发生器8.1 同步 所有的主机都在SCL线上产生它们自己的时钟来传输I2C总线上信息。数据只有在时钟高电平周期时才有效。因此,需要一个确定的时钟来进行逐位仲裁。 时钟同步是使用将I2C接口与SCL线连接线与门来实现的。这意味着SCL线上高电平变低电平会使与其连接的设备开始对低电平周期进行计数,一旦设备时钟变为低电平,它会使SCL线保持在低电平直到时钟高电平状态到达(参见图8).然而,如果另一个时钟依然在其低电平周期内,那么时钟从低电平跳变为高电平可能会改变SCL线的状态。因此,SCL线将保持设备的最长低电平周期。在这段时间,短低电平周期的设备进入高电平等待状态。图8 仲裁过程中的时钟同步 当所有有关的设备都开始对它们低电平周期计数时,时钟线将被释放变为高电平。然后设备时钟与SCL线状态不再有差别,所有设备将会开始对高电平周期计数。第一个完成高电平周期的设备将再次拉低SCL线为低电平。 以这种方式,一个同步SCL时钟产生了,它的低电平周期由最长低电平周期时钟的设备决定,它的高电平由最短高电平周期时钟的设备决定。8.2 仲裁 主机只有在总线空闲时才能开始传输。两个或两个以上的主机可能会产生在最短开始条件的保持时间内产生一个开始条件, 这将在总线上产生一个被定义的开始条件。 当SDA线上进行仲裁时,SCL线处于高电平,以这样一种方式,当一个主机发射高电平,而另一个主机发射低电平时,该主机会因为总线电平与自身电平不对应而关闭数据输出阶段。 仲裁可以持续多位。它的第一个阶段是地址位的比较(寻址信息参考第10节和第14节)。如果主机都试图对同一个设备寻址,如果它们是主发射器,仲裁继续数据位的比较;如果它们是主接收器,仲裁继续应答位的比较。因为I2C总线上的地址和数据信息由获胜主机决定,所以在仲裁过程中没有信息丢失。 失去仲裁的主机可以产生时钟脉冲直到在字节末尾失去仲裁。 因为高速模式主机都有一个独一无二的8位主机代码,它将总是在第一个字节期间完成仲裁。(见第13节) 如果主机还合并了从机功能,它在寻址阶段就失去了仲裁,获胜主机就有可能尝试寻址它。因此,失败的主机必须立即转换它的从机代码。 图9显示了两个主机的仲裁过程。当然,也有可能更多的主机参与其中(取决于有多少主机连接在总线上)。这一刻,产生数据1的主机的内部数据电平和SDA线的实际电平有差别,数据输出被关闭,这意味着高电平的输出电平与总线相连。由获胜主机产生的差别不会影响数据传输。图9 两个主机的仲裁过程 因为I2C总线的控制完全决定于地址或主机代码和由竞争主机发送的数据,所以总线上既没有中央主机,也没有优先顺序。 需要特别注意的是,在串行传输中,当重复的开始条件或停止条件被传输到I2C总线上的这一刻,仲裁过程依然在进行中。如果上述情况是可能发生的,参与其中的主机必须在同一个格式帧的位置发送重复的开始条件或停止条件。换而言之,在下面情况间裁不被允许:重复的开始条件和数据位停止条件和数据位重复开始条件和停止条件 从机并不参与到仲裁过程中。8.3 使用时钟同步机制进行信号交换 除了在仲裁过程中被使用之外,时钟同步机制也可以用来保证接收器能处理快速的数据传输,无论是字节级或位级的。 在字节级,设备可以能够以一个快的速度接收数据字节,但是需要更多的时间来存储接收到的字节或者准备另一个要发送的字节。从机在接收到后会使SCL线变为低电平,并且字节的应答信号将迫使主机进入等待状态直到从机在信号交换过程中准备好了下一个字节的传输(见图6)。 在位级,一个设备,如有限制或没有限制I2C总线硬件的单片机,可以通过延长每个时钟低电平的周期来使总线时钟变慢。从而,每个主机的速度都要适合于设备的内部运行速度。在高速模式中,信号交换功能只能用于字节级(见第13节)。9. 7位地址格式 数据按图10所示的格式传输。在启动条件(S)之后,从机地址被发送出去。该地址时7位长的,随后的第八位是数据方向位(R/W)“0”表示传输(WRITE),“1”表示数据请求(READ)。数据传输总是被由主机产生的停止条件(P)终止。然而,如果主机依然希望在总线上继续传输,它可以产生一个重复开始条件(Sr)和寻址另一个没有产生停止条件的从机。在这种传输范围内的读/写格式各种组合是可能的。图10 完整的数据传输可能的数据传输格式:主发送器发送到从接收器。输出方向不改变(见图11)。在第一个字节后从机立即从从机读取(见图12).在第一次应答的这一时刻,中发送器变为了主接收器,从接收器变为了从发送器。第一次的应答依然由从机产生。停止条件由主机产生,主机在先前已经发送了一个非应答信号(A)。组合格式(见图13).在传输时改变方向的过程中,开始条件和从机地址都将重复,但是读/写位将翻转。如果主接收器发送了一个重复开始信号,那么它曾发送过一个非应答信号(A)。注意事项:1.组合格式可以被使用,例如,控制串行存储器。在第一个数据字节时,内部存储器中的位置已经被写入。在开始条件和从机地址重复后,数据可以被传输。2.以前访问内存位置等的所有自动递增或递减的决定都由设备的设计者引入。3.每个字节后面都跟着一个响应信号,在序列中显示为A或A块。4.I2C总线兼容设备必须复位它们总线逻辑上接收到的开始条件或重复开始条件,这样,即使这些开始条件没有被放置为正确的格式,它们都预计发送一个从机地址。5.一个开始条件后面紧跟着一个停止条件(无效信息)是非法格式。图11. 主发送器对7位地址从接收器寻址。传输方向不改变图12. 主机在第一个字节之后立即对从机进行读操作图13. 组合格式10. 7位寻址 I2C总线寻址过程是这样的:第一个字节在开始条件后通常决定哪个从机将被主机选择。唯一的例外是“全呼”地址,它可以寻址所有设备。当这个地址被使用时,理论上所有设备应该响应一个应答信号。然而,设备也可以被设置来忽略这个信号。全呼地址的第二字节定义要采取的行动。此过程更详细的详细在第10.1.1节。10位寻址的信息请参见第14节。 10.1 第一个字节位的定义 第一个字节的前七位组成了从机地址(见图14).第八位是LSB(最低有效位)。它决定了信息的方向。第一个字节最低有效位为“0”表示主机将将信息写入选中的从机中。最低有效位为“1”表示主机将从从机中读取信息。图14. 开始条件后的第一个字节 当一个地址被发送出去后,系统中的每个设备在开始条件后都将会把地址的前七位与自己的地址进行比较。如果它们匹配,设备认为自己被主机寻址为从接收器或从发送器,这取决于R/W位。 从机地址可以由固定部分和可编程部分组成。因为系统中很可能有多个相同的设备,从机地址可编程部分保证了连接I2C总线上的最大可能的设备数量。设备可编程地址位的数目取决月可用的引脚数量。例如,如果一个设备有4个固定地址位和3个可编程地址位,那么共有8个相同的设备可以连接到同一根总线上。 I2C总线委员会协调分配了I2C地址。进一步的信息可从飞利浦生产代理商的封底上获得。两个八地址组(0000XXX ,1111XXX)以表2所示的目的进行保存。从机地址的位组合11110XX以10位地址保存(见第14节)。表2 第一个字节位的定义从地址读写 位描述0000 0000全呼地址0000 0001开始 位0000 001X控制总线 地址0000 010X为不同总线格式保留0000 011X为以后的使用保留0000 1XXX高速模式主机代码1111 1XXX为以后的使用保留1111 0XXX10位从地址注意事项:1.没有设备被允许在接收开始字节时进行应答。2. CBUS地址被保留来保证同一个系统中兼容CBUS和I2C总线兼容设备内部混合。I2C总线兼容设备不被允许回应这个地址的接收。3. 不同总线格式保留的地址是要保证使I2C协议和其他协议混合。只有I2C兼容设备以这样的格式工作并且协议允许响应这个地址。10.1.1 全呼地址 全呼地址时为了寻址连接I2C总线的每个设备。然而,如果设备不需要任何由全呼结构提供的数据,可以忽略此地址不发出应答信号。如果设备需要全呼地址中的信息,它会应答全呼地址并且表现为从机接收器。第二个以及随后的字节会被每个能够处理这些数据的从接收器应答。不能处理这些字节的从机必须忽略它,不进行应答。全呼地址的含义总是被指定在第二个字节中(见图15)。图15 全呼地址格式有两种情况需要考虑:当最低有效位B是“0”当最低有效位B是“1”当位B是“0”时,第二个字节有以下定义:00000110 (H06)。通过硬件重置和写从机地址的可编程部分。一旦收到这个2字节序列 ,所有被设计为响应全呼地址的设备都会复位,并且接收它们地址可编程部分。采取预防措施来保证设备在应用电源电压后不拉低SDA或SCL电 平,因为这些低电平会阻塞总线。 00000100 (H04)。通过硬件写从机地址的可编程部分。所有通过硬件定义地址可编程部分(和应答全呼地址)的设备将锁定在接收两个字节序列时锁定可编程部分。设备将不会被复位。 00000000 (H00)。此代码不允许在第二个字节中使用。 编程过程的序列发布在相应器件的数据表上。其余的代码没有固定,设备必须忽略他们。 当位B是“1”时,2字节的序列是一个“硬件全呼”序列。这表示该序列是由硬件主机设备发射,诸如键盘扫描器,它不能通过编程来发送所需的从机地址。因为硬件主机事先不知道哪个设备的信息必须传输,它只能产生硬件全呼信号和它自己的地址识别系统中的自己(见图16) 第二个字节剩余的7位包含了硬件主机的地址。这个地址被认为是智能设备(如单片机),它连接到总线,然后指示来自硬件主机的信息。如果硬件主机也可以作为从机,那么从机地址与主机地址是相同的。图16 由硬件主发送器中传输的信息 在某些系统中,另一种可能是硬件主发送器在系统重置后设置从接收器的模式。以这种方式,系统的配置主机可以告诉硬件主发送器(现在是从接收器模式)哪个地址数据必须发送(见图17).在这个编程过程后,硬件主机仍然是主机发送模式。图17 数据被能够转存数据的硬件发送器传输到从设备(a) 配置主机将转存地址发送到硬件主机(b) 硬件主机将地址转存给所选的从机10.1.2 开始字节 单片机有两种方式连接在I2C总线上。有芯片上的硬件I2C总线接口的单片机可以被编程为只能被来自总线的请求打断。当设备没有这样的接口时,它必须通过软件不断监视总线。显然,单片机监测或轮询总线的次数越多,它就可以花费更少的时间来执行预定的功能。因此,一个快速硬件设备和一个相对缓慢的单片机的速度是有区别的,这可以通过软件查询。在这种情况下,数据传输之前有一个开始过程,它比正常情况要花费长的时间(见图18).开始过程包括:一个开始条件(S)一个开始字节(00000001)一个应答时钟脉冲(ACK)个重复的开始条件(Sr)图18 开始字节过程 在开始条件S由需要总线访问的主机发送后,开始字节(00000001)被发送。另一个单片机可以在SDA线处于低采样速率时进行采样,直到开始字节中的七个0中的其中一个被检测到。在检测到SDA线上的低电平后,单片机可以切换到一个更高的采样速率来找到重复开始条件Sr,重复起始条件用于同步。 硬件接收器在接收到重复开始条件后会重置,并会因此忽略开始字节。一个相关应答的时钟脉冲在开始字节后产生。没有设备被允许应答开始字节。10.1.3 CBUS兼容性 CBUS接收器可以连接到标准模式的I2C总线上。然后,被称为DLEN的第三根总线必须被连接并且省略应答位。通常情况下,I2C传输是8位字节序列;CBUS兼容设备有不同的格式。 在一个混合的总线结构中,I2C总线设备必须响应CBUS信息。出于这个原因,一个特殊的CBUS地址(0000001X),没有I2C总线兼容设备会响应,被保留。在传输CBUS地址后,DLEN线被激活并且发送一个CBUS格式传输(见图19)。在停止条件后,所有设备将再次准备好接收数据。 主发射器在发送了CBUS地址后可以发送CBUS格式。传输由停止条件结束,这是由所有设备确认。 注意:如果CUBS配置已知,并且CBUS兼容设备的扩展没有被预见,设计者被允许让保持时间调整到使用设备的特定要求上。图19 CBUS发送器/接收器传输的数据格式11. 标准模式I2C通讯协议的扩展 标准模式I2C通讯协议,其数据传输速率高达100kbit/s和7位寻址,自1980年来一直存在。这个概念的知名度迅速增长并在今天在世界各地被普遍接受作为公用标准,飞利浦半导体公司和其他供应商提供了几百种不同的兼容芯片。为了满足更高速度的要求,以及位越来越多新的设备提供更多的从机地址,标准模式I2C通讯协议多年来一直在升级,到现在以下的扩展都可用: 快速模式,速率高达400kbit/s 高速模式(Hs模式),位速率高达3.4Mbit/s 10位寻址,它允许使用多达1024个额为的从机地址有两个主要的原因扩展I2C通讯协议: 今天的许多应用程序需要传输大量的串行数据,并需要的比特速率远远超过100kbit/s (标准模式),甚至有时会超过400kbit/s (快速模式)。不断提高半导体技术的结果是,I2C通讯设备现在比特速率高达 3.4Mbit/s(高速模式),并且在制造过程中没有任何明显增加的接口电路的成本 由于大部分112个可用地址的7为寻址方案很快被分配,很明显, 防止需要更多的地址组合以防止由分配新设备从机地址造成的问题。这个问题通过新的10为寻址方案得到解决,这使得可用地址大约增加了十倍 带有快速模式I2C总线接口或高速模式I2C总线接口的心从机设备可以有一个7位或10位从机地址。如果可能的话,7位地址是优选,因为他是最便宜的硬件解决方案并且产生的信息长度最短。7位地址和10位地址的设备可以在同一个I2C通讯系统中混合使用,无论是快速模式还是告诉模式。现在以及未来的主机都可以产生7位或10位的地址。12. 快速模式 由于快速I2C通讯协议,SDA线和SCL线在标准模式I2C通讯协议中的协议,格式,逻辑电平和最大容忍性负载是不变的。带有I2C总线接口的新设备必须至少满足快速模式或高速模式协议的最低要求(见第13节)。 快速模式设备接收和发送的速度高达400kbit/s。最低要求为它们能够以400kbit/s速率同步传输;它们可以延长SCL信号低电平的周期来放慢传输速度。快速模式设备都向下兼容并且可以以0到100kbit/s的速率在I2C总线系统中与标准模式进行传输。然而,标准模式设备不是向上兼容的,它们不被纳入快速模式总线系统汇总,因为他们不能跟上更块的传输速率并且不可预知的状态可能会发生。 快速模式I2C通讯协议与标准模式相比,有以下附加的功能: 最大比特速率增大到了400kbit/s 定时串行数据(SDA)和定时串行时钟(SCL)信号被修改。与其他通讯系统(如CBUS)的兼容性是不必要的,因为他们不能在已经增加了的比特速率上工作 快速模式设备的输入包括SDA和SCL输入的尖峰抑制和施密特触发器 快速模式设备的输出缓冲器包括SDA和SCL信号的下降沿斜率控制 如果快速模式设备的电源关闭,SDA和SCL的I/O引脚必须浮动这样才不会妨碍总线 连接总线的外部上拉设备必须适合于容纳较短的快速模式I2C总线的最大允许上升时间。对于负载高达200pF的总线来说,上拉设备是一个电阻;对于负载在200pF到400pF的总线来说,上拉设备是一个电流源(最大3mA)或者是一个开关电阻电路(见图43)。13. 高速模式 高速模式(Hs模式)设备在I2C总线传输速度汇总实现了飞跃。高速模式设备可以以高达 3.4Mbit/s的速率传输信息,目前他们对快速模式和标准模式保持着向下兼容性从而实现在混合速度的通讯系统中的双向通信。不同的是,在高速传输过程中仲裁和时钟是不同步的,同一串行通讯协议和数据格式被保持为快速/标准系统。根据不同的应用,虽然高速模式设备由于它们被设计以更大数量的应用是优选,新设备可能有快速或高速模式的I2C总线接口。13.1 高速传输为了实现位传输速度达到3.4Mbit/s,以下的改善已经应用到常规的I2C通讯协议中:高速模式主机设备有一个SDAH信号的开漏输出缓冲器和SCLH输出(1)上的开漏下拉和上拉电流源电路的组合。此电流源电路缩短了SCLH信号的上升时间。只有一个主机的电流源能够在任何时候启动,并且只能在高速模式下。在多主机系统中的高速模式传输中无仲裁和时钟同步执行,这加快了位处理能力。仲裁过程总是在先前快速/标准模式中主机代码传输之后完成。高速模式主机设备产生一个串行时钟信号,信号的高低电平比为1:2。这减轻了设置时间和保持时间的时序要求。作为一个选择,高速模式主机设备可以有一个内置网桥(1)。在高速模式传输过程中,高速模式设备的高速数据(SDAH)线和高速串行时钟(SCLH)线被这个网桥与快速/标准模式设备的SDA线和SCL线分开。这降低了SDAH线和SCLH线的容性负载从而加快上升和下降时间。高速模式从机设备与快速/标准模式从机设备的唯一区别在于运行速度。高速模式从机在SCLH和SDAH输出上有漏极开路输出缓冲器。SCLH引脚上可选择下拉晶体管可以用来拉伸SCLH信号的低电平,虽然这只允许在高速模式传输的应答位之后。高速模式设备的输入包括SDAH和SCLH输入的尖峰抑制和施密特触发器高速模式设备的输出缓冲器包括SDAH和SCLH信号下降沿的斜率控制 图20展示了物理上只有高速模式设备的系统的I2C总线配置。主机设备上的引脚SDA和SCL只用于混合速度通讯系统和仅用于没有连接高速模式的系统。在这种情况下,这些引脚可以用于其他功能。可选系列电阻Rs保护I2C通讯设备的I/O接口不被总线上的高压刺突影响并且尽量减少震荡和干扰。 当总线空闲并且确保信号在所需的上升的时间内从低电平被拉升为高电平,上拉电阻Rp保持SDAH线和SCLH线于高电平。对于更高容量负载的总线(100pF),可以用外部电源上拉代替电阻Rp来满足上升时间的要求。除非是在进行一个应答位时,高速模式传输中SCLH时钟脉冲的上升时间被有效主机的内部电流源上拉电路MCS缩短。(1) 待专利申请(1) SDA和SCL在此处没有使用但是可能会用于其他功能(2) 输入过滤器(3) 只有有效的主机才能使电源上拉电路(4) 点晶体管是可选的开漏输出,可衍生串行时钟信号SCLH图20 只有高速模式设备的I2C总线配置13.2 高速模式中的串行数据传输格式 高速模式中的串行数据传输格式符合了标准模式I2C通行协议。高速模式只能在下面的条件(所有这些都是在快速/标准模式)后开始:1. 开始条件(S)2. 8位主代码(00001XXX)3. 非应答位() 图 21和图22显示了更多细节。主代码有两个主要的功能:它允许仲裁和同步在以快速/标准模式速度竞争主机,从而产生一个获胜主机它表示高速模式输出的开始 快速模式主代码保留8位代码,这不用于从机寻址或其他用途。此外,由于每个主机有其独特的代码,最多8个高速模式主机可以同时出现在同一个I2C通讯系统中(虽然主代码00001000应该保留用于测试和诊断)。 高速模式主机设备的主代码可通过软件编程并且由系统设计软件选择。仲裁和时钟同步只在主机代码传输和非应答位()期间产生,在这之后一个获胜主机仍然有效。主代码向其他设备表示高速模式传输开始并且相连接的设备必须满足高速模式协议。由于没有设备被允许应答主代码,所以主代码后面是一个非应答信号()。 在非应答位()后,SCLH线被上拉为高电平,有效主机转换为高速模式并且使(在时间tH,见图22)电流源上拉电路的SCLH信号。因为其他设备可以通过拉伸SCLH信号的低电平周期在th前延迟串行传输,当所有设备释放SCLH线并且SCLH信号为高电平时,有效的主机使电流源上拉电路,从而加快了SCLH信号最后部分的上升时间。 有效主机然后发送一个重复的开始条件(Sr),其次是一个带一个R/为地址的7位从地址(或10位从地址,见第14节),并从所选从机接收一个应答位(A)。 在一个重复开始条件和每个应答位(A)或非应答位()后,有效主机禁止其电流源上拉电路。这是其他设备能够通过老生SCLH信号的低电平周期来延迟串行输出。 当所有设备被释放并且SCLH信号为高电平,有效主机重新启用器电流源上拉电路,因此加快了剩下部分SCLH信号的上升时间。 在下一个重复开始条件(Sr)后高速模式中的数据传输继续,并且只在停止条件后(P)切换回快速/标准模式。为了降低主代码的开销,主机可能连接许多高速模式传输,并被重复开始条件(Sr)分离。图21 高速模式中数据传输格式 图22 完整的高速传输13.3 从快速/标准模式转换到高速模式以及转换回来 复位和初始化之后,高速模式设备必须处于快速模式(实际上是快速/标准模式,因为快速模式向下兼容标准模式)。每个高速模式设备可以从快速模式转换到高速模式并转换回来,这是由I2C总线上的串行传输控制的。 在图22的时间t1之前,每个连接的设备都以快速模式运行。在时间t1和时间tH间(该时间间隔可以被任意设备拉伸),每个连接的设备必须识别“S 00001XXX A”序列,并且必须将内部电路从快速模式设置转换为高速模式设置。在时间t1和时间tH间,相连接的主机和从机设备通过以下操作执行转换。 有效(获胜)主机:1. 根据高速模式中尖峰抑制的需求调整SDAH和SCLH输入滤波器2. 根据高速模式要求调整设置和保持时间3. 根据高速模式要求调整SDAH和SCLH输出阶段的斜率控制4. 切换到高速模式比特速率,这必须在时间tH之后5. 在时间tH启动SCLH输出阶段的电流源上拉电路 非有效或失败主机:1. 根据高速模式中尖峰抑制的需求调整SDAH和SCLH输入滤波器2. 当总线再次空闲时等待检测停止条件 所有从机:1. 根据高速模式中尖峰抑制的需求调整SDAH和SCLH输入滤波器2. 根据高速模式要求调整设置和保持时间。这个要求可能已经通过输入滤波器的调整达到了满足3. 如果必要的话,调整SDAH输出阶段的斜率控制。对于从机设备,斜率控制仅适用于SD输出阶段,并且取决于电路公差,快速模式和高速模式的要求在未切换内部电路时可能已经被满足。 在图22中的时间中,每个连接的设备必须识别停止条件(P)并且将内部电路在时间t1前从高速模式设置切换回快速模式。根据快速模式协议,这过程必须在最小总线空闲时间内完成。(1) 网桥未被使用,SDA和SCL可能有选择性功能(2)输入滤波器(3)电流源上拉电路被禁用 (4)点晶体管是可选开漏输出,这可以拉伸串行时钟信号SCL图23 快速/标准模式速度的高速模式设备13.4 高速模式设备处于低速模式 高速模式设备是完全向下兼容的,并且可以连接到快速/标准模式的I2C通讯系统(见图23).由于在这样的配置中无主代码发送,所有的高速主机设备都处于快速/标准模式并且以快速/标准模式速度传输,它们的电流源被禁用。SDAH和SCLH引脚被用来连接快速/标准模式通讯系统,并允许高速模式主机设备的SDA和SCL引脚(如果有的话)用于其他功能。13.5 一个串行通讯系统的混合速度模式 如果系统有高速、快速、标准模式组合而成的设备,通过互联网桥,在不同设备间有不同的比特率是可能的(见图24和图25)。 网桥被要求在适当的时间连接/断开高速模式部分/快速或标准模式部分。该网桥包括了电平转换功能,它允许不同电源电压的设备相连接。例如,VDD2为5V的快速/标准模式的设备可以与VDD1为3V或更小(即VDD2=VDD1)的高速设备相连接,为SDA何SCL引脚提供5V的容忍电压。该网桥纳入了高速模式主机设备并且完全由串行信号SDAH,SCLH,SDA,SCL控制。这样的网桥可以在任何的芯片中实现自激电路。 TR1,TR2和TR3是N沟道晶体管。TR1和TR2 传输门功能,TR3是一个漏极下拉阶段。如果TR1或TR2接通电流,他们在两个方向上传输低电平,否则当漏极和源上升到高电平时,晶体管被接通而在漏极和源之间将有有一个高电平。在后面的情况下,晶体管会作为电平移位器,SDAH和SCLH为上拉为VDD1而SDA和SCL会上拉为VDD2。 在快速/标准模式速度中,高速模式主机中其中一个的网桥将SDAH线和SCLH线与对应的SDA线和SCL线连接,从而允许高速模式设备以较慢的速度与快速/标准模式设备传输。在所有连接的设别见完全的快速/标准模式传输的过程中,仲裁和同步是可能的,如第8节所述。然而,在高速模式传输中,网桥开放来分开两个总线部分,并允许高速模式设备以3.4Mbit/s的速度相互传输。高速模式设备与快速/标准模式设备间的仲裁只在主代码中执行(00001XXX),通常都由一个高速模式主机获胜,因为从机地址前面有4个0.其他主机只有在发送保留的8位代码(00000XXX)时才可能赢得仲裁。在这种情况下,网桥保持关闭,传输以快速/标准模式进行。表3给出了在这样的系统中可能的传输速度。(2) 网桥未被使用,SDA和SCL可能有选择性功能(2)输入滤波器(3)只有有效主机可以使电流源上拉电路 (4)点晶体管是可选开漏输出,这可以拉伸串行时钟信号SCL或SCLH图24 快速/标准模式速度传输的通讯系统表3 混合速率通信系统中的传输比特速率在两者间转换串行通讯系统配置高速+快速+标速高速+快速高速+标速快速+标速高速高速0 3.4Mbit/s0 3.4Mbit/s0 3.4Mbit/s高速快速0 100kbit/s0 400kbit/s高速标速0 100kbit/s0 100kbit/s快速标速0 100kbit/s0 100kbit/s快速快速0 100kbit/s0 400kbit/s0 100kbit/s标速标速0 100kbit/s0 100kbit/s0 100kbit/s13.5.1 混合速率通讯系统中以快速/标准模式传输 图24所示的网桥互联对应串行总线,形成了一个串行总线系统。由于没有主代码(00001XXX)被发送,电流源上拉电路被禁用,并且所有输出阶段都为漏极开路。包括高速设备在内的所有设备根据协议,格式和快速/标准模式I2C通讯协议的速度相互通信。13.5.2 混合速率通讯系统中以高速模式传输 图25所示为完整的高速模式传输的时序图,这里调用了开始条件,主代码,和非应答信号(以快速/标准模式的速度)。尽管该时序图被分为两部分,但它应该被看做是一个时序图,时间点tH对于两部分来说都是常见点。 主代码被有效或无效主机(见图24)中的网桥识别。网桥执行以下操作:1. 在t1和tH间(见图25),在晶体管TR3关闭来下拉SDA线到VSS,晶体管TR1打开来分离SDAH线和SDA线。2. 当SCLH和SCL都变为高电平时(图25中的tH),晶体管TR2打开来分离SCLH线和SCL线。TR2必须在SCLH在开始条件后变为低电平前打开。 高速模式传输在tH后,伴随着一个重复开始信号(Sr)。在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论