I2c地址转换的制作方法

文档序号:6426228阅读:305来源:国知局
专利名称:I2c地址转换的制作方法
技术领域
本发明的诸实施例总地涉及用于内部集成电路总线(I2C-总线)的系统、设备和方法。
背景技术
内部集成电路总线(I2C-总线)是经常用来将低速外设附连于主板、嵌入式系统或蜂窝电话之中或之上的串行总线。如图1所示,I2C-总线101仅包括两条双向总线,该双向总线包括串行数据线(SDA)和串行时钟线(SCL)。另外如图1所示,拉高电阻器(Rp)连接在每条数据线和供电电压干线(VDD)之间。用于VDD的常见电压是+5V或+3. 3V,尽管也允许具有其它(例如更高或更低)供电电压干线的系统。当总线空闲时,拉高电阻器(Rp) 将SDA和SCL线两者拉为高(HIGH)。在图1中,一个主机设备102 (例如微控制器)和三个隶属设备104(分别标示为104a、104b和104c)图示为连接于I2C总线101。电子系统越来越多地使用由I2C总线互连的集成电路(IC)。这些IC由于与I2C 总线的兼容性而通常被称为I2C兼容芯片,或更具体地称为I2C兼容设备。示例性I2C兼容设备包括,但不局限于,微控制器、液晶显示器(LCD)、LED驱动器、输入/输出端口、随机存取存储器(RAM)、模数转换器(ADC)、数模转换器(DAC)、温度传感器和数字信号处理器 (DSP)。这类I2C兼容设备的输出级——它们是漏极开路或集电极开路的——可用来有选择地拉低SDA和SCL线,由此提供数据和时钟信号。对给定的I2C兼容设备存在四种潜在的工作模式,尽管多数设备仅使用单功能 (主机或隶属)及其两个模式(发送和接收)。这些模式包括主机发送——主机设备将数据发送至隶属;主机接收——主机设备从隶属接收数据;隶属发送——隶属设备将数据发送至主机;以及隶属接收——隶属设备从主机接收数据。主机一开始通过发送起始位后面跟随想要与之通信的隶属的7位地址(这可被称为I2C地址),而后是代表是否希望从隶属读(1)或写(0)至隶属的单个读/写位而处于主机发送模式。起始位通知与总线连接的全部IC以侦听总线的输入地址。当每个IC接收地址时,IC将该地址与其本身的地址比较。如果接收的地址与IC地址不匹配,则IC知道它未被寻址。如果接收的地址与IC地址匹配,则IC知道它正被寻址,响应于此,IC产生确
5认(ACK)位(确认为低电平有效)。换句话说,如果总线上存在所寻址的隶属,则该隶属对该地址响应以ACK位。主机随后继续发送或接收模式(根据其发送的读/写位),并且隶属继续其互补模式(分别为接收或发送)。地址和数据字节首先送出最高有效位。起始位由 SCL高电平下的SDA高-低跳变指示,停止位由SCL高电平下的SDA低-高跳变指示。如果主机设备想要对隶属设备写入,则它随着隶属发送ACK位而反复发送一个字节(在这种情形下,主机处于主机发送模式而隶属处于隶属接收模式)。如果主机设备想要从隶属设备读出,则它从隶属反复接收一个字节,主机在除了最后一个字节外的每个字节后发送一个ACK 位(在这种情形下,主机处于主机接收模式而隶属处于隶属发送模式)。主机随后用终止位来结束发送,或者主机如果想要对另一次传输(“组合消息”)保留总线控制则可发送另一起始位。为说明的目的,由主机发送的包括起始位紧随的7位地址然后是读/写位的多个位根据读/写位被称为读命令或写命令。由于只有7个位用来指示隶属的地址,因此只有2~7(即128)个可能的地址。然而,由于保留了 16个地址,通常可寻址最多112个不同的设备(即128-16= 112)。在一些情形下,要求同一 IC有多种应用,这意味着许多相同IC (例如相同外设IC 的多个实例)可附连于同一 I2C总线。然而,由于每个设备必须具有唯一的I2C地址,因此使用具有同一 I2C地址的多个IC可能导致数据损坏。这种潜在问题的最常见解决方案是设计具有若干可选地址的外设I2C兼容设备。例如,I2C兼容设备可包括专用于选择设备的地址并由此允许赋予设备四个不同地址之一的两个引脚。然而,如果相同设备的数目超出可选地址的数目(在本例中为4),则存在相同地址重叠问题。从成本和空间角度看,单纯地保持增加更多专用于选择设备地址的引脚是不切实际的。存在几百种当前正在生产的不同I2C兼容设备。尽管其中的一些可设计成具有若干可选地址,但其它的设备设计成固定地址。由于仅可获得112种不同的设备地址,因此很可能两个提供完全不同功能的不同IC可具有相同地址并附连于同一 I2C总线。由于每个设备必须具有唯一的I2C地址,这能防止这两个IC被分别寻址。如果两个不同IC具有相同地址并连接于同一 I2C总线,这也会导致数据损坏。目前对前述I2C寻址局限性没有方便的解决方案。最常见的解决方案是创建具有另一完全地址集的另一独立I2C总线,但这需要在主机控制器上设置另一 I2C端口,这时不
合需的ο

发明内容
本发明的实施例涉及转换I2C地址的系统、设备和方法。这些系统、设备和方法可用来克服与寻址I2C兼容设备关联的前述局限性的至少一些。根据某些实施例,用于转换I2C地址的方法包括经由第一 I2C兼容设备连接到的 I2C总线的主侧从I2C兼容设备(例如主机设备)接收原始I2C地址。该方法还包括将原始I2C地址转换成经转换的I2C地址,并经由第二 I 2C兼容设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二 I2C兼容设备(例如隶属设备)。在某些实施例中,经转换的I2C地址的至少一部分转换和至少一部分输出是在接收到整个原始I2C地址前执行的。可通过从原始I2C地址减去(或加上)一偏移值来将原始I2C地址转换成经转换的
6I2C地址,从而产生成经转换的I2C地址。可使用引脚包扎或通过将偏移值以允许偏移值可经由I2C总线编程的方式存储来指定该偏移值。或者,可使用可经由I2C总线编程的查找表将原始I2C地址转换成经转换的I2C地址。在特定实施例中,这些方法可通过I2C地址转换器来执行。其它方法可由主机设备执行,其中这些方法允许主机设备单独地发送命令至均具有第一地址(例如同一地址)的两个I2C兼容设备(例如相同类型或不同类型的两个隶属设备),其中两个I2C可兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个 I2C兼容设备中的第二个连接于I2C总线的第二侧。这种方法可包括通过将第一地址纳入到第一命令而将第一命令发送至两个I2C兼容设备中附连于I2C总线的第一侧的第一个设备。该方法还可包括通过将第二地址纳入到第二命令而将第二命令发送至两个I2C兼容设备中附连于I2C总线的第二侧的第二个设备,其中第二命令中的第二地址在两个I2C兼容设备中的第二个接收到第二命令前被转换成第一地址。根据实施例,I2C地址转换器包括配置成经由I2C总线接收原始I2C地址的电路以及配置成将接收的原始I2C地址转换成经转换的I2C地址的电路。另外,I2C地址转换器包括配置成经由I2C总线的次级侧输出经转换的I2C地址的电路。配置成将接收的原始 I2C地址转换成经转换的I2C地址的电路可包括自原始I2C地址减去一偏移值(或加上一偏移值)以由此产生经转换的I2C地址的电路。该电路也可包括例如存储偏移值并允许对该偏移值编程的电路,例如寄存器。在替代实施例中,配置成将接收的原始I2C地址转换成经转换的I2C地址的电路包括可编程查找表,该可编程查找表存储一个或多个原始I2C地址以及针对一个或多个原始I2C的每一个的经转换地址。根据本发明实施例的系统可包括I2C总线的主侧,且多个设备连接于I2C总线的主侧。另外,该系统可包括I2C总线的次级侧,且多个设备连接于I2C总线的次级侧。I2C 地址转换器连接在I2C总线的主侧和I2C总线的次级侧。I2C地址转换器配置成经由I2C 总线的主侧从连接于I2C总线主侧的多个设备之一接收原始I2C地址。另外,I2C转换器配置成将原始I2C地址转换成经转换的I2C地址,并经由I2C总线的次级侧发送经转换的 I2C地址以使经转换的I2C地址可由连接于I2C总线次级侧的多个设备之一接收。该概述无意于概括本发明的所有实施例。根据下面给出的详细说明、附图以及权利要求,本发明的其他和替代实施例以及实施例的特征、方面以及优点将变得更为显而易见。
具体实施例方式本发明的特定实施例涉及I2C地址转换器,该I2C地址转换器可实现为集成电路 (IC)或具有固件的微控制器,但不局限于此。参见图2,根据本发明一个实施例的I2C地址转换器210 —侧(其上有总线主控器102以及第一多个隶属外围设备104a、104b)连接于主 I2C总线IOl1 (也简称为I2C总线),而另一侧(该侧连接于第二多个隶属外围设备104y、 I(Mz)上形成次级I2C总线1012。由于I2C地址转换器210本质上延长了主I2C总线IOl1, 因此主I2C总线也被称为I2C总线的主侧,而由I2C地址转换器210形成的次级I2C总线 IOl2也被称为I2C总线的次级侧。根据某些实施例,I2C地址转换器210可被编程以转换I2C地址,以使主机设备能
7独立地与具有同一 I2C地址的一对I2C兼容设备通信(例如对其发送命令)。下面参照图 3、图4和图5给出这个操作如何完成的进一步细节,其中I2C地址转换器210的不同实施例分别标示为210a、2IOb和210c。通过转换I2C地址,根据本发明的一个实施例,具有相同地址的多对I2C兼容设备可独立寻址,只要一对I2C兼容设备中的一个连接于I2C总线IOl1的主侧而该对I2C兼容设备中的另一个连接于I2C总线IOl2的次级侧。例如,假设第一 I2C兼容设备(例如DAC) 具有7位二进制地址0101111,而第二 I2C兼容设备(例如LED驱动器)也具有7位二进制地址0101111。如果I2C地址转换器210被编程为减去4的偏移值(即二进制值100), 则位于I2C总线IOl1的主侧上的主机设备(例如102)可使用二进制地址0101111对第一 I2C兼容设备(例如DAC)寻址;而主机设备(例如102)可使用二进制地址0110011(它等于二进制值0101111加上二进制值100)对位于I2C总线IOl2的次级侧上的第二 I2C兼容设备(例如LED驱动器)寻址。如此,当I2C地址转换器210从I2C总线IOl1主侧上的主机设备(例如102)接收到二进制地址0110011时,I2C地址转换器210将在I2C总线IOl2 的次级侧上输出二进制地址0101111,由此允许位于次级侧上的第二 I2C兼容设备(例如 LED驱动器)被寻址。在刚才描述的例子中,共享共用地址的第一和第二 I2C兼容设备是不同类型的设备,例如一个是DAC而另一个是LED驱动器。替代地,第一和第二 I2C兼容设备可以是完全相同类型的设备,例如两例具有相同部件号的完全相同类型DAC。I2C地址转换器210的另一种使用如下。假设特定I2C兼容设备包括专用于选择设备的地址并由此允许赋予设备四个不同地址之一的两个引脚。在不使用本发明实施例的 I2C地址转换器210的情况下,该特定I2C兼容设备的四个实例可通过使用两个引脚各自附连于同一 I2C总线以对四个设备中的每一个赋予四个不同地址中的不同的一个地址。但是如果特定I2C兼容设备的第五实例附连于该I2C总线,则特定I2C兼容设备中的两个需要共享同一地址(由于只有四个不同地址可用),这会导致数据损坏。然而,如果使用本发明实施例的I2C地址转换器210,则可独立地对特定I2C兼容的高达八个实例进行寻址。更具体地,I2C地址转换器210可用来将I2C总线的主侧与I2C总线的次级侧划界。这允许特定I2C兼容设备的四个实例附连于I2C总线的主侧(通过使用两个引脚来对四个设备中的每一个赋予四个不同地址中的一个不同地址),并允许该特定I2C兼容设备的四个更多实例附连于I2C总线的次级侧(同样通过使用两个引脚来对四个设备中的每个设备赋予四个不同地址中的一个不同地址)。继续该示例,假设I2C地址转换器210通过从接收的I2C 地址减去偏移值来执行I2C地址转换,如下面结合图3和图4描述的那样。连接于I2C总线IOl1主侧的主机设备可使用四个独立的原始I2C地址以对连接于I2C总线IOl1主侧的特定I2C兼容设备的四个实例作写入和读出,而主机设备可使用四个独立的附加I2C地址对连接于I2C总线IOl2的次级侧的特定I2C兼容设备的四个实例作写入和读出。在该示例中,这四个独立的附加I2C地址(用来对连接于I2C总线IOl2的次级侧的特定I2C兼容设备的四个实例寻址)将等于四个独立原始I2C地址加上偏移值。现在参考图3、图4和图5描述I2C地址转换器的各个不同实施例。如前所述,在图3、图4和图5中,I2C地址转换器210的不同实施例分别标示为210a、2IOb和210c。尽管本文中描述了 I2C地址转换器210的多种配置,然而本领域内普通技术人员将理解落在
8本发明精神和范围内的其它实施例也是可能的。参见图3,在某些实施例中,I2C地址转换器210a可通过外部引脚(例如引脚包扎)从由I2C主机(图2中的102)提供的地址减去一偏移值(例如1、2、4或8或一些其它值)来编程。例如,参见图3的高级图解,四个引脚302中的每一个可选择地接地或连接于供电电压干线(例如VDD)以经由解码器304选择由求和器306从I2C主机接收到的地址值中减去的偏移值,由此产生经转换的地址。通过适当配置转换器210a,附连于I2C总线的次级侧的外设IC的地址可映射至不由I2C总线的主侧使用的I2C地址空间中的地址。还要注意,可类似地使用除引脚外的其它类型端子以对偏移值编程以供I2C地址转换器210 使用。在其它实施例中,I2C地址转换器210可经由EEPR0M(电可擦除可编程只读存储器)、0ΤΡ (—次性可编程)存储器等被编程,这些存储器可通过最终用户藉由微控制器(图 1中的102)使用主I2C总线来寻址转换器210并将寻址转换信息写至转换器210而被写入。这可通过对转换器210赋予唯一的7位地址来达成,类似于当前的标准I2C设备并可相应地受到控制。在某些实施例中,转换信息可被编程为用来产生经转换的I2C地址的偏移。例如, 参照图4的高级图解,标准I2C控制器402可用于响应I2C地址转换器210b被寻址和写入而将偏移值写至寄存器404。之后,当转换器210b不被明确寻址时,求和器406从经由I2C 总线主侧从I2C主机接收的地址值中减去存储在寄存器404中的值,由此产生经由I2C总线的次级侧输出的经转换的地址。这种偏移值可替代地以允许对偏移值编程的其它方式存储。例如,可将偏移值存储在I2C地址转换器210的非易失性存储器内,其中该非易失性存储器经由I2C地址转换器210所连接至的I2C总线编程。在图3和图4中,求和器306、406描述为用来从接收的地址减去一偏移值。因此, 可将求和器306、406称为“求差器”或“减法器”。在替代实施例中,求和器(例如306和 406)可用来将偏移值加至接收的地址。注意,如果接收地址和偏移值之和超出最大地址 (例如超出1111111),则可能发生上溢。同样,在地址转换器减去偏移值时,在接收到的地址减去偏移值是负数的情况下可能发生下溢。因此,应当将注意力放在理解上溢和/或下溢会如何影响地址转换。在其它实施例中,转换算法或查找表可用来实现将次级隶属地址再映射至I2C总线的主侧上的未使用地址。例如,参见图5,标准I2C控制器502可用来对查找表504中的多个地址中的每一个的转换值(例如存储在多个寄存器中,但不仅限于此)进行编程。此后,当I2C地址转换器210c不被明确寻址时,如果通过I2C地址转换器210c接收到查找表 504中的地址,则I2C地址转换器210c经由I2C总线的次级侧输出相应经转换的地址。通常参考图2-5描述的I2C地址转换器210的诸个实施例可涉及一旦最初产品制造和最初加电定序时即被编程。根据某些实施例,在执行该编程操作前,次级总线上的隶属设备是不可寻址的并且被禁用。I2C地址转换器210可使用硬件来转换地址。作为附加或替代,I2C地址转换器 210可使用固件和/或软件来转换地址。例如,I2C地址转换器210可包括使用算法来执行地址转换的固件。这种算法简化为规定经转换的地址等于原始地址减去偏移值。然而,可使用替代类型的算法并仍然落在本发明的范围内。又如,如果原始地址落在第一范围内,则算法可规定使用第一偏移值,而如果原始地址落在第二范围内,则算法规定使用第二偏移值。 算法也可使用除减法以外的其它函数,例如可使用加法。算法使用乘法和/或除法也落在本发明的实施例的范围内,但使用这些函数比使用减法和/或加法更为复杂。参照图25对I2C地址转换器的各实施例进行总括地描述,图2_5示出I2C地址转换器经由I2C总线的主侧的主SDA线从I2C主机接收地址,并经由I2C总线的次级侧的次级SDA线输出经转换的地址。然而,I2C地址转换器也可接收SCL线,并如下面描述的那样, 在某些实施例中可对SCL线施加控制。I2C地址转换器可利用I2C总线的同步特征从而以完全透明和遵照规范的方式执行地址转换。根据特定实施例,下面示出一个顺序步骤1 :I2C地址转换器(例如210)从主机(例如102)接收七个I2C地址位,如同任何附连的隶属ic。I2C地址转换器输出保持无效(SDA和SCL输出高)。步骤2:—旦I2C地址转换器已接收到(例如暂存)七个地址位,则主侧上的SCL 线由I2C地址转换器保持低。此时,转换地址(例如从存储的地址中减去偏移值),并在次级侧上串行地驱动输出。主侧上的总线活动挂起,同时SCL线通过I2C地址转换器保持低。步骤3 —旦经转换的地址已完全移出隶属侧,则次级侧上的SDA线逻辑连接于主侧上的SDA线。步骤4 在短晳延时后,隶属侧上的SCL线被释放并逻辑连接于主侧上的SCL线。 这将导致I2C地址转换器两侧上的SCL线变高。步骤5:此时,I2C地址转换器的主侧上的SCL和SDA线逻辑连接于次级侧上的SCL 和SDA线。剩下的I2C事务以透明方式完成,就像I2C地址转换器简单地由导线代替那样 (但由于I2C地址转换器内的可选缓冲器电路而可能具有微小的延时)。图6示出前述过程的示例性时序图。也可使I2C地址转换器调整隶属侧上的地址传输速度以使其粗略地匹配于主机侧的速度。在最初主机地址传输过程中测量时钟频率提供必要的信息以调整I2C地址转换器的内部时钟,以当发送隶属地址时粗略地匹配时钟频率。在某些实施例中,I2C地址转换器210可配置成使用局限于值2~N(其中N = 1、2、 3、4、5或6)的偏移来执行转换。在这些实施例中,可使I2C地址转换器210在从主机接收到全部七个地址前开始地址转换,并在接收到全部七个地址位和/或完成地址转换前开始输出I2C总线的次级侧上的经转换地址的一部分。当与主侧总线时序相比时,这样做可减少连接于I2C总线次级侧的隶属作出响应的等待时间。换句话说,如果转换偏移值是2~N 值的二进制加权,则有一种情形是经转换的地址的最高有效位(MSB)在地址转换器210(从主机)接收拟转换的全部7位I2C地址前可能开始移出地址转换器210。这是因为如果偏移值的最低有效位(LSB)为零,则偏移值的任何减或加不影响拟转换的I2C地址的至少一些LSB。对于特定例子,假设偏移值是十进制数32 (即2~5 = 32),其二进制值为0100000。 另外假设该主机正对十进制地址53写入,其二进制值为0110101。假设I2C地址转换器 210从接收自主机的I2C地址减去偏移值,则经转换的地址将是53-32 = 21,即二进制值 0010101。注意I2C地址的五个LSB不受转换影响,更具体地,一旦两个MSB由I2C地址转换器210接收,则转换不再变化。因此,在I2C地址转换器210接收拟转换的整个I2C地址前(在本例中是在地址转换器210接收拟转换的地址的5个LSB前)地址转换(在本例中通过减法来获得)可以是完成的并且一部分得到的经转换地址可能开始移出(I2C总线的次级侧上的)I2C地址转换器210。图7是用来概括方法的高级流程图,该方法由I2C转换器使用以根据本发明实施例转换I2C地址。参见图7,在步骤702,经由第一 I2C兼容设备连接至的I2C总线的主侧从第一 I2C兼容设备接收原始I2C地址。在步骤704,原始I2C地址被转换至经转换的I2C 地址。在步骤706,经转换的I2C地址经由第二 I2C兼容设备连接至的I2C总线的次级侧输出至第二 I2C兼容设备(例如隶属设备)。根据实施例,在步骤704的地址转换是通过从原始I2C地址减去(或加上)偏移值以产生经转换的I2C地址来完成的。该偏移值可使用一个或多个端子(例如引脚)来规定,其中每个端子有选择地连接于供电电压干线或接地,例如参考图3描述的那样。替代地,偏移值可存储在寄存器或非易失存储器中,例如前面参考图4所述那样。这种存储的偏移值可经由I2C总线编程,如同前面参考图4描述的那样。在一替代实施例中,在步骤704 的地址转换是使用查找表完成的,例如前面参考图5描述的那样。该查找表可经由I2C总线编程,就像前面参考图5描述的那样。使用如前所述除简单减法或加法以外的算法执行步骤704的地址转换也落在本发明的范围内。图8是用来概括方法的高级流程图,该方法由主机设备使用,允许主机设备独立地将命令发送至均具有相同地址的两个I2C兼容设备,其中两个I2C兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个I2C兼容设备的第二个连接于I2C总线的第二侧。参照图8,在步骤802,主机通过将第一地址纳入第一命令而将第一命令送至两个I2C 兼容设备中的第一个,该第一个I2C兼容设备附连于I2C总线的第一侧。在步骤804,主机通过将第二地址纳入第二命令而将第二命令发送至两个I2C兼容设备中的第二个,该第二个I2C兼容设备附连于I2C总线的第二侧,其中第二命令中的第二地址在两个I2C兼容设备中的第二个接收到第二命令前被转换成第一地址。上述描述是本发明的优选实施例。出于说明和描述目的提供这些实施例,但它们不旨在穷举或将本发明限制在所公开的精确形式。许多改型和变化对本领域内技术人员而言是明显的。这些实施例的选择和描述是为了最好地阐述本发明的原理及其实践应用,由此使本领域内技术人员理解本发明。微小的修改和变化相信落在本发明的精神和范围内。 本发明的范围旨在由下面的权利要求及其等效方案限定。


图1是用来解释I2C兼容设备通常如何与I2C总线中使用的另一 I2C兼容设备通信的高级方框图。图2是根据本发明实施例解释I2C地址转换器如何一侧连接于主I2C总线而另一侧形成次级I2C总线的高级框图。图3-5示出用于编程图2中介绍的I2C转换器的本发明各实施例。图6是用来示出I2C地址转换器如何利用I2C总线的同步特征来以透明和遵照规范的方式执行地址转换的示例性时序图。图7是用来概括根据本发明实施例的方法的高级流程图,该方法由I2C转换器使用以转换I2C地址。
11
图8是用来概括一方法的高级流程图,该方法由主机设备使用,该方法允许主机设备独立发送命令至均具有同一地址的两个I2C兼容设备,其中两个I2C兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个I2C兼容设备中的第二个连接于I2C总
线的第二二侧。
附图中主要组件的附图标记列表
101 内部集成电路总线(I2C总:
IOl1 主I2C总线
IOl2次级I2C总线
102主设备
104a,104b,104c. · ·隶属设备
104y,104z
210,210a,210b,210c12C地址转换器
302引脚
304解码器
306,406求和器
402,502I2C控制器
404寄存器
504查找表
702,704,708,802,804 步骤
Rp拉高电阻器
SCL串行时钟线
SDA串行数据线
VDD供电电压干线
1权利要求
1.一种方法,包括(a)接收原始I2C地址;(b)将所述原始I2C地址转换成经转换的I2C地址;以及(c)输出所述经转换的I2C地址。
2.如权利要求1所述的方法,其特征在于步骤(a)包括经由第一 I2C兼容设备连接至的I2C总线的主侧从所述第一 I2C兼容设备接收所述原始I2C地址;以及步骤(c)包括经由第二 I2C兼容设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二 I2C兼容设备。
3.如权利要求2所述的方法,其特征在于,所述第一I2C兼容设备包括主机设备,而所述第二 I2C兼容设备包括隶属设备。
4.如权利要求1所述的方法,其特征在于步骤(b)包括从所述原始I2C地址减去或加上一偏移值以产生经转换的I2C地址。
5.如权利要求4所述的方法,其特征在于,所述偏移值是使用一个或多个端子规定的, 其中每个端子有选择地连接于供电电压干线或接地。
6.如权利要求4所述的方法,其特征在于,存储所述偏移值。
7.如权利要求6所述的方法,其特征在于,所述存储的偏移值是可经由I2C总线编程的。
8.如权利要求1所述的方法,其特征在于步骤(b)包括使用查找表来基于所述原始I2C地址来产生经转换的I2C地址。
9.如权利要求8所述的方法,其特征在于,所述查找表是可经由I2C总线编程的。
10.如权利要求1所述的方法,其特征在于步骤(b)包括使用算法来基于所述原始I2C地址来产生经转换的I2C地址。
11.如权利要求1所述的方法,其特征在于,在步骤(b)的至少一部分转换和在步骤 (c)的至少一部分输出是在步骤(a)接收到整个原始I2C地址前执行的。
12.—种独立地发送命令至均具有第一地址的两设备的方法,所述方法包括(a)通过将第一地址纳入第一命令而将第一命令送至两设备中的第一设备;以及(b)通过将不同于所述第一地址的第二地址纳入第二命令而将第二命令送至两设备中的第二设备,其中所述第二命令中的第二地址在所述设备中的第二设备接收到第二命令前被转换成第一地址。
13.如权利要求12所述的方法,其特征在于,所述方法由主机设备使用以允许主机设备独立地将命令发送至均具有第一地址的两个I2C兼容设备,其中所述两个I2C兼容设备中的第一设备和所述主机设备连接于I2C总线的第一侧,而所述两个I2C兼容设备中的第二设备连接于所述I2C总线的第二侧,且其中步骤(a)包括通过将第一地址纳入第一命令而将第一命令送至两I2C兼容设备中的第一设备,所述第一设备附连于I2C总线的第一侧;以及步骤(b)包括通过将第二地址纳入第二命令而将第二命令发送至两个I2C兼容设备中的第二设备,所述第二设备附连于I2C总线的第二侧,其中所述第二命令中的第二地址在两个I2C兼容设备中的第二设备接收到第二命令前被转换成第一地址。
14.一种I2C地址转换器,包括配置成接收原始I2C地址的接收电路;配置成将接收的原始I2C地址转换至经转换的I2C地址的转换电路;以及配置成输出经转换的I2C地址的输出电路。
15.如权利要求14所述的I2C地址转换器,其特征在于所述接收电路配置成经由I2C总线的主侧接收原始I2C地址;以及所述输出电路配置成经由I2C总线的次级侧输出经转换的I2C地址。
16.如权利要求14所述的I2C地址转换器,其特征在于,所述转换电路包括 基于偏移值修改原始I2C地址由此产生经转换的I2C地址的电路。
17.如权利要求16所述的I2C地址转换器,其特征在于,所述转换电路还包括存储所述偏移值的电路。
18.如权利要求17所述的I2C地址转换器,其特征在于,所述转换电路还包括允许对所述偏移值编程的电路。
19.如权利要求14所述的I2C地址转换器,其特征在于,所述转换电路包括可编程查找表,所述可编程查找表存储一个或多个原始I2C地址和针对一个或多个原始I2C地址中每一个的经转换的地址。
20.如权利要求14所述的I2C地址转换器,其特征在于原始I2C地址通过转换电路的转换的至少一部分发生在接收电路接收到整个的原始 I2C地址前;以及至少一部分经转换的I2C地址在接收电路接收到整个的原始I2C地址前由输出电路输出。
21.—种系统,包括 I2C总线的主侧;连接于所述I2C总线主侧的多个设备; I2C总线的次级侧;连接于所述I2C总线次级侧的多个设备;以及连接在所述I2C总线的主侧和所述I2C总线的次级侧之间的I2C地址转换器; 其中,所述12C地址转换器配置成经由I2C总线的主侧从连接于所述I2C总线主侧的设备之一接收原始I2C地址; 将所述原始I2C地址转换成经转换的I2C地址;以及将经转换的I2C地址经由所述I2C总线的次级侧发送,以使所述经转换的I2C地址能由连接于I2C总线的次级侧的设备接收。
22.如权利要求21所述的系统,其特征在于,所述I2C地址转换器配置成通过从所述原始I2C地址减去偏移值或将偏移值加到所述原始I2C地址来将所述原始I2C地址转换至经转换的I2C地址。
23.如权利要求21所述的系统,其特征在于,所述I2C地址转换器配置成使用查找表将所述原始I2C地址转换成经转换的I2C地址。
24.如权利要求21所述的系统,其特征在于,连接于所述I2C总线的次级侧的所述多个设备中的每个设备包括I2C地址;经由所述I2C总线的次级侧接收经转换的I2C地址;以及将所述经转换的I2C地址与其I2C地址比较。
全文摘要
本发明的实施例涉及转换I2C地址的系统、设备和方法。根据实施例,转换I2C地址的方法包括经由第一I2C兼容设备连接到的I2C总线从第一I2C兼容设备接收原始I2C地址。该方法还包括将原始I2C地址转换成经转换的I2C地址,并经由隶属设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二I2C兼容设备。可通过从原始I2C地址减去(或加上)一偏移值来将原始I2C地址转换成经转换的I2C地址,从而产生成经转换的I2C地址。该偏移值可使用引脚包扎来规定,或通过将偏移值存储在可经由I2C总线编程的寄存器或非易失存储器中来规定。替代地,可经由I2C总线编程的查找表可用来执行I2C地址转换。
文档编号G06F13/42GK102339267SQ201110158929
公开日2012年2月1日 申请日期2011年5月30日 优先权日2010年6月4日
发明者D·B·贝尔, P·J·班泽尔 申请人:英特赛尔美国股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1