I2C地址转换.pdf

上传人:n****g 文档编号:971787 上传时间:2018-03-22 格式:PDF 页数:19 大小:622.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110158929.3

申请日:

2011.05.30

公开号:

CN102339267A

公开日:

2012.02.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/42申请日:20110530|||公开

IPC分类号:

G06F13/42

主分类号:

G06F13/42

申请人:

英特赛尔美国股份有限公司

发明人:

D·B·贝尔; P·J·班泽尔

地址:

美国加利福尼亚州

优先权:

2010.06.04 US 61/351,563; 2011.03.11 US 13/046,610

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

钱慰民

PDF下载: PDF下载
内容摘要

本发明的实施例涉及转换I2C地址的系统、设备和方法。根据实施例,转换I2C地址的方法包括经由第一I2C兼容设备连接到的I2C总线从第一I2C兼容设备接收原始I2C地址。该方法还包括将原始I2C地址转换成经转换的I2C地址,并经由隶属设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二I2C兼容设备。可通过从原始I2C地址减去(或加上)一偏移值来将原始I2C地址转换成经转换的I2C地址,从而产生成经转换的I2C地址。该偏移值可使用引脚包扎来规定,或通过将偏移值存储在可经由I2C总线编程的寄存器或非易失存储器中来规定。替代地,可经由I2C总线编程的查找表可用来执行I2C地址转换。

权利要求书

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 兼容设备中的第二设备接收到第二命令前被转换成第一地址。 2
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 地址转换器 ; 其中, 所述 I2C 地址转换器配置成 : 经由 I2C 总线的主侧从连接于所述 I2C 总线主侧的设备之一接收原始 I2C 地址 ; 将所述原始 I2C 地址转换成经转换的 I2C 地址 ; 以及 将经转换的 I2C 地址经由所述 I2C 总线的次级侧发送, 以使所述经转换的 I2C 地址能 由连接于 I2C 总线的次级侧的设备接收。
22: 如权利要求 21 所述的系统, 其特征在于, 所述 I2C 地址转换器配置成通过从所述原 始 I2C 地址减去偏移值或将偏移值加到所述原始 I2C 地址来将所述原始 I2C 地址转换至经 转换的 I2C 地址。
23: 如权利要求 21 所述的系统, 其特征在于, 所述 I2C 地址转换器配置成使用查找表将 所述原始 I2C 地址转换成经转换的 I2C 地址。
24: 如权利要求 21 所述的系统, 其特征在于, 连接于所述 I2C 总线的次级侧的所述多个 设备中的每个设备 : 3 包括 I2C 地址 ; 经由所述 I2C 总线的次级侧接收经转换的 I2C 地址 ; 以及 将所述经转换的 I2C 地址与其 I2C 地址比较。

说明书


I2C 地址转换

    优先权声明
     本申请要求以下美国专利申请的优先权 :
     由 David B.Bell 和 Phillip J.Benzel 在 2011 年 3 月 11 日 提 交 的 题 为 “I2C ADDRESS TRANSLATION(I2C 地 址 转 换 )”的 美 国 专 利 申 请 No.13/046,610( 委 托 案 号 No.ELAN-01254US1) ; 以及
     由 David B.Bell 和 Phillip J.Benzel 在 2010 年 6 月 4 日 提 交 的 题 为 “I2C ADDRESS TRANSLATOR(I2C 地址转换器 )” 的美国临时专利申请 No.61/351,563( 委托案号 No.ELAN-1254US0)。
     技术领域
     本发明的诸实施例总地涉及用于内部集成电路总线 (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 产生确认 (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 地址转换成经转换的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 地址转换器, 该 I2C 地址转换器可实现为集成电路 (IC) 或具有固件的微控制器, 但不局限于此。参见图 2, 根据本发明一个实施例的 I2C 地址 转换器 210 一侧 ( 其上有总线主控器 102 以及第一多个隶属外围设备 104a、 104b) 连接于主 I2C 总线 1011( 也简称为 I2C 总线 ), 而另一侧 ( 该侧连接于第二多个隶属外围设备 104y、 104z) 上形成次级 I2C 总线 1012。由于 I2C 地址转换器 210 本质上延长了主 I2C 总线 1011, 因此主 I2C 总线也被称为 I2C 总线的主侧, 而由 I2C 地址转换器 210 形成的次级 I2C 总线 1012 也被称为 I2C 总线的次级侧。
     根据某些实施例, I2C 地址转换器 210 可被编程以转换 I2C 地址, 以使主机设备能独立地与具有同一 I2C 地址的一对 I2C 兼容设备通信 ( 例如对其发送命令 )。下面参照图 3、 图 4 和图 5 给出这个操作如何完成的进一步细节, 其中 I2C 地址转换器 210 的不同实施 例分别标示为 210a、 210b 和 210c。
     通过转换 I2C 地址, 根据本发明的一个实施例, 具有相同地址的多对 I2C 兼容设备 可独立寻址, 只要一对 I2C 兼容设备中的一个连接于 I2C 总线 1011 的主侧而该对 I2C 兼容 设备中的另一个连接于 I2C 总线 1012 的次级侧。例如, 假设第一 I2C 兼容设备 ( 例如 DAC) 具有 7 位二进制地址 0101111, 而第二 I2C 兼容设备 ( 例如 LED 驱动器 ) 也具有 7 位二进 制地址 0101111。如果 I2C 地址转换器 210 被编程为减去 4 的偏移值 ( 即二进制值 100), 则位于 I2C 总线 1011 的主侧上的主机设备 ( 例如 102) 可使用二进制地址 0101111 对第一 I2C 兼容设备 ( 例如 DAC) 寻址 ; 而主机设备 ( 例如 102) 可使用二进制地址 0110011( 它等 于二进制值 0101111 加上二进制值 100) 对位于 I2C 总线 1012 的次级侧上的第二 I2C 兼容 设备 ( 例如 LED 驱动器 ) 寻址。如此, 当 I2C 地址转换器 210 从 I2C 总线 1011 主侧上的主 机设备 ( 例如 102) 接收到二进制地址 0110011 时, I2C 地址转换器 210 将在 I2C 总线 1012 的次级侧上输出二进制地址 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 总 线 1011 主侧的主机设备可使用四个独立的原始 I2C 地址以对连接于 I2C 总线 1011 主侧的 特定 I2C 兼容设备的四个实例作写入和读出, 而主机设备可使用四个独立的附加 I2C 地址 对连接于 I2C 总线 1012 的次级侧的特定 I2C 兼容设备的四个实例作写入和读出。在该示 例中, 这四个独立的附加 I2C 地址 ( 用来对连接于 I2C 总线 1012 的次级侧的特定 I2C 兼容 设备的四个实例寻址 ) 将等于四个独立原始 I2C 地址加上偏移值。
     现在参考图 3、 图 4 和图 5 描述 I2C 地址转换器的各个不同实施例。如前所述, 在 图 3、 图 4 和图 5 中, I2C 地址转换器 210 的不同实施例分别标示为 210a、 210b 和 210c。尽 管本文中描述了 I2C 地址转换器 210 的多种配置, 然而本领域内普通技术人员将理解落在
     本发明精神和范围内的其它实施例也是可能的。
     参见图 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 可经由 EEPROM( 电可擦除可编程只读存储 器 )、 OTP( 一次性可编程 ) 存储器等被编程, 这些存储器可通过最终用户藉由微控制器 ( 图 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 地址。图 8 是用来概括一方法的高级流程图, 该方法由主机设备使用, 该方法允许主机 设备独立发送命令至均具有同一地址的两个 I2C 兼容设备, 其中两个 I2C 兼容设备中的第 一个和主机设备连接于 I2C 总线的第一侧, 而两个 I2C 兼容设备中的第二个连接于 I2C 总 线的第二侧。
     附图中主要组件的附图标记列表
     101 内部集成电路总线 (I2C 总线 )
     1011 主 I2C 总线
     1012 次级 I2C 总线
     102 主设备
     104a, 104b, 104c... 隶属设备
     104y, 104z
     210, 210a, 210b, 210c 12C 地址转换器
     302 引脚
     304 解码器
     306, 406 求和器
     402, 502 I2C 控制器 404 寄存器 504 查找表 702, 704, 708, 802, 804 步骤 Rp 拉高电阻器 SCL 串行时钟线 SDA 串行数据线 VDD 供电电压干线

I2C地址转换.pdf_第1页
第1页 / 共19页
I2C地址转换.pdf_第2页
第2页 / 共19页
I2C地址转换.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《I2C地址转换.pdf》由会员分享,可在线阅读,更多相关《I2C地址转换.pdf(19页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102339267A43申请公布日20120201CN102339267ACN102339267A21申请号201110158929322申请日2011053061/351,56320100604US13/046,61020110311USG06F13/4220060171申请人英特赛尔美国股份有限公司地址美国加利福尼亚州72发明人DB贝尔PJ班泽尔74专利代理机构上海专利商标事务所有限公司31100代理人钱慰民54发明名称I2C地址转换57摘要本发明的实施例涉及转换I2C地址的系统、设备和方法。根据实施例,转换I2C地址的方法包括经由第一I2C兼容设备连接到的I2C总线从第。

2、一I2C兼容设备接收原始I2C地址。该方法还包括将原始I2C地址转换成经转换的I2C地址,并经由隶属设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二I2C兼容设备。可通过从原始I2C地址减去或加上一偏移值来将原始I2C地址转换成经转换的I2C地址,从而产生成经转换的I2C地址。该偏移值可使用引脚包扎来规定,或通过将偏移值存储在可经由I2C总线编程的寄存器或非易失存储器中来规定。替代地,可经由I2C总线编程的查找表可用来执行I2C地址转换。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书8页附图7页CN102339280A1/3页21一。

3、种方法,包括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。

4、所述的方法,其特征在于,所述偏移值是使用一个或多个端子规定的,其中每个端子有选择地连接于供电电压干线或接地。6如权利要求4所述的方法,其特征在于,存储所述偏移值。7如权利要求6所述的方法,其特征在于,所述存储的偏移值是可经由I2C总线编程的。8如权利要求1所述的方法,其特征在于步骤B包括使用查找表来基于所述原始I2C地址来产生经转换的I2C地址。9如权利要求8所述的方法,其特征在于,所述查找表是可经由I2C总线编程的。10如权利要求1所述的方法,其特征在于步骤B包括使用算法来基于所述原始I2C地址来产生经转换的I2C地址。11如权利要求1所述的方法,其特征在于,在步骤B的至少一部分转换和在步骤。

5、C的至少一部分输出是在步骤A接收到整个原始I2C地址前执行的。12一种独立地发送命令至均具有第一地址的两设备的方法,所述方法包括A通过将第一地址纳入第一命令而将第一命令送至两设备中的第一设备;以及B通过将不同于所述第一地址的第二地址纳入第二命令而将第二命令送至两设备中的第二设备,其中所述第二命令中的第二地址在所述设备中的第二设备接收到第二命令前被转换成第一地址。13如权利要求12所述的方法,其特征在于,所述方法由主机设备使用以允许主机设备独立地将命令发送至均具有第一地址的两个I2C兼容设备,其中所述两个I2C兼容设备中的第一设备和所述主机设备连接于I2C总线的第一侧,而所述两个I2C兼容设备中。

6、的第二设备连接于所述I2C总线的第二侧,且其中步骤A包括通过将第一地址纳入第一命令而将第一命令送至两I2C兼容设备中的第一设备,所述第一设备附连于I2C总线的第一侧;以及步骤B包括通过将第二地址纳入第二命令而将第二命令发送至两个I2C兼容设备中的第二设备,所述第二设备附连于I2C总线的第二侧,其中所述第二命令中的第二地址在两个I2C兼容设备中的第二设备接收到第二命令前被转换成第一地址。权利要求书CN102339267ACN102339280A2/3页314一种I2C地址转换器,包括配置成接收原始I2C地址的接收电路;配置成将接收的原始I2C地址转换至经转换的I2C地址的转换电路;以及配置成输出。

7、经转换的I2C地址的输出电路。15如权利要求14所述的I2C地址转换器,其特征在于所述接收电路配置成经由I2C总线的主侧接收原始I2C地址;以及所述输出电路配置成经由I2C总线的次级侧输出经转换的I2C地址。16如权利要求14所述的I2C地址转换器,其特征在于,所述转换电路包括基于偏移值修改原始I2C地址由此产生经转换的I2C地址的电路。17如权利要求16所述的I2C地址转换器,其特征在于,所述转换电路还包括存储所述偏移值的电路。18如权利要求17所述的I2C地址转换器,其特征在于,所述转换电路还包括允许对所述偏移值编程的电路。19如权利要求14所述的I2C地址转换器,其特征在于,所述转换电路。

8、包括可编程查找表,所述可编程查找表存储一个或多个原始I2C地址和针对一个或多个原始I2C地址中每一个的经转换的地址。20如权利要求14所述的I2C地址转换器,其特征在于原始I2C地址通过转换电路的转换的至少一部分发生在接收电路接收到整个的原始I2C地址前;以及至少一部分经转换的I2C地址在接收电路接收到整个的原始I2C地址前由输出电路输出。21一种系统,包括I2C总线的主侧;连接于所述I2C总线主侧的多个设备;I2C总线的次级侧;连接于所述I2C总线次级侧的多个设备;以及连接在所述I2C总线的主侧和所述I2C总线的次级侧之间的I2C地址转换器;其中,所述I2C地址转换器配置成经由I2C总线的主。

9、侧从连接于所述I2C总线主侧的设备之一接收原始I2C地址;将所述原始I2C地址转换成经转换的I2C地址;以及将经转换的I2C地址经由所述I2C总线的次级侧发送,以使所述经转换的I2C地址能由连接于I2C总线的次级侧的设备接收。22如权利要求21所述的系统,其特征在于,所述I2C地址转换器配置成通过从所述原始I2C地址减去偏移值或将偏移值加到所述原始I2C地址来将所述原始I2C地址转换至经转换的I2C地址。23如权利要求21所述的系统,其特征在于,所述I2C地址转换器配置成使用查找表将所述原始I2C地址转换成经转换的I2C地址。24如权利要求21所述的系统,其特征在于,连接于所述I2C总线的次级。

10、侧的所述多个设备中的每个设备权利要求书CN102339267ACN102339280A3/3页4包括I2C地址;经由所述I2C总线的次级侧接收经转换的I2C地址;以及将所述经转换的I2C地址与其I2C地址比较。权利要求书CN102339267ACN102339280A1/8页5I2C地址转换0001优先权声明0002本申请要求以下美国专利申请的优先权0003由DAVIDBBELL和PHILLIPJBENZEL在2011年3月11日提交的题为“I2CADDRESSTRANSLATIONI2C地址转换”的美国专利申请NO13/046,610委托案号NOELAN01254US1;以及0004由DAV。

11、IDBBELL和PHILLIPJBENZEL在2010年6月4日提交的题为“I2CADDRESSTRANSLATORI2C地址转换器”的美国临时专利申请NO61/351,563委托案号NOELAN1254US0。技术领域0005本发明的诸实施例总地涉及用于内部集成电路总线I2C总线的系统、设备和方法。背景技术0006内部集成电路总线I2C总线是经常用来将低速外设附连于主板、嵌入式系统或蜂窝电话之中或之上的串行总线。如图1所示,I2C总线101仅包括两条双向总线,该双向总线包括串行数据线SDA和串行时钟线SCL。另外如图1所示,拉高电阻器RP连接在每条数据线和供电电压干线VDD之间。用于VDD的。

12、常见电压是5V或33V,尽管也允许具有其它例如更高或更低供电电压干线的系统。当总线空闲时,拉高电阻器RP将SDA和SCL线两者拉为高HIGH。在图1中,一个主机设备102例如微控制器和三个隶属设备104分别标示为104A、104B和104C图示为连接于I2C总线101。0007电子系统越来越多地使用由I2C总线互连的集成电路IC。这些IC由于与I2C总线的兼容性而通常被称为I2C兼容芯片,或更具体地称为I2C兼容设备。示例性I2C兼容设备包括,但不局限于,微控制器、液晶显示器LCD、LED驱动器、输入/输出端口、随机存取存储器RAM、模数转换器ADC、数模转换器DAC、温度传感器和数字信号处理。

13、器DSP。这类I2C兼容设备的输出级它们是漏极开路或集电极开路的可用来有选择地拉低SDA和SCL线,由此提供数据和时钟信号。0008对给定的I2C兼容设备存在四种潜在的工作模式,尽管多数设备仅使用单功能主机或隶属及其两个模式发送和接收。这些模式包括主机发送主机设备将数据发送至隶属;主机接收主机设备从隶属接收数据;隶属发送隶属设备将数据发送至主机;以及隶属接收隶属设备从主机接收数据。0009主机一开始通过发送起始位后面跟随想要与之通信的隶属的7位地址这可被称为I2C地址,而后是代表是否希望从隶属读1或写0至隶属的单个读/写位而处于主机发送模式。起始位通知与总线连接的全部IC以侦听总线的输入地址。。

14、当每个IC接收地址时,IC将该地址与其本身的地址比较。如果接收的地址与IC地址不匹配,则IC知道它未被寻址。如果接收的地址与IC地址匹配,则IC知道它正被寻址,响应于此,IC产生确说明书CN102339267ACN102339280A2/8页6认ACK位确认为低电平有效。换句话说,如果总线上存在所寻址的隶属,则该隶属对该地址响应以ACK位。主机随后继续发送或接收模式根据其发送的读/写位,并且隶属继续其互补模式分别为接收或发送。地址和数据字节首先送出最高有效位。起始位由SCL高电平下的SDA高低跳变指示,停止位由SCL高电平下的SDA低高跳变指示。如果主机设备想要对隶属设备写入,则它随着隶属发送。

15、ACK位而反复发送一个字节在这种情形下,主机处于主机发送模式而隶属处于隶属接收模式。如果主机设备想要从隶属设备读出,则它从隶属反复接收一个字节,主机在除了最后一个字节外的每个字节后发送一个ACK位在这种情形下,主机处于主机接收模式而隶属处于隶属发送模式。主机随后用终止位来结束发送,或者主机如果想要对另一次传输“组合消息”保留总线控制则可发送另一起始位。0010为说明的目的,由主机发送的包括起始位紧随的7位地址然后是读/写位的多个位根据读/写位被称为读命令或写命令。0011由于只有7个位用来指示隶属的地址,因此只有27即128个可能的地址。然而,由于保留了16个地址,通常可寻址最多112个不同的。

16、设备即12816112。0012在一些情形下,要求同一IC有多种应用,这意味着许多相同IC例如相同外设IC的多个实例可附连于同一I2C总线。然而,由于每个设备必须具有唯一的I2C地址,因此使用具有同一I2C地址的多个IC可能导致数据损坏。这种潜在问题的最常见解决方案是设计具有若干可选地址的外设I2C兼容设备。例如,I2C兼容设备可包括专用于选择设备的地址并由此允许赋予设备四个不同地址之一的两个引脚。然而,如果相同设备的数目超出可选地址的数目在本例中为4,则存在相同地址重叠问题。从成本和空间角度看,单纯地保持增加更多专用于选择设备地址的引脚是不切实际的。0013存在几百种当前正在生产的不同I2C。

17、兼容设备。尽管其中的一些可设计成具有若干可选地址,但其它的设备设计成固定地址。由于仅可获得112种不同的设备地址,因此很可能两个提供完全不同功能的不同IC可具有相同地址并附连于同一I2C总线。由于每个设备必须具有唯一的I2C地址,这能防止这两个IC被分别寻址。如果两个不同IC具有相同地址并连接于同一I2C总线,这也会导致数据损坏。0014目前对前述I2C寻址局限性没有方便的解决方案。最常见的解决方案是创建具有另一完全地址集的另一独立I2C总线,但这需要在主机控制器上设置另一I2C端口,这时不合需的。发明内容0015本发明的实施例涉及转换I2C地址的系统、设备和方法。这些系统、设备和方法可用来克。

18、服与寻址I2C兼容设备关联的前述局限性的至少一些。0016根据某些实施例,用于转换I2C地址的方法包括经由第一I2C兼容设备连接到的I2C总线的主侧从I2C兼容设备例如主机设备接收原始I2C地址。该方法还包括将原始I2C地址转换成经转换的I2C地址,并经由第二I2C兼容设备连接至的I2C总线的次级侧将经转换的I2C地址输出至第二I2C兼容设备例如隶属设备。在某些实施例中,经转换的I2C地址的至少一部分转换和至少一部分输出是在接收到整个原始I2C地址前执行的。可通过从原始I2C地址减去或加上一偏移值来将原始I2C地址转换成经转换的说明书CN102339267ACN102339280A3/8页7I。

19、2C地址,从而产生成经转换的I2C地址。可使用引脚包扎或通过将偏移值以允许偏移值可经由I2C总线编程的方式存储来指定该偏移值。或者,可使用可经由I2C总线编程的查找表将原始I2C地址转换成经转换的I2C地址。在特定实施例中,这些方法可通过I2C地址转换器来执行。0017其它方法可由主机设备执行,其中这些方法允许主机设备单独地发送命令至均具有第一地址例如同一地址的两个I2C兼容设备例如相同类型或不同类型的两个隶属设备,其中两个I2C可兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个I2C兼容设备中的第二个连接于I2C总线的第二侧。这种方法可包括通过将第一地址纳入到第一命令而将第一命令。

20、发送至两个I2C兼容设备中附连于I2C总线的第一侧的第一个设备。该方法还可包括通过将第二地址纳入到第二命令而将第二命令发送至两个I2C兼容设备中附连于I2C总线的第二侧的第二个设备,其中第二命令中的第二地址在两个I2C兼容设备中的第二个接收到第二命令前被转换成第一地址。0018根据实施例,I2C地址转换器包括配置成经由I2C总线接收原始I2C地址的电路以及配置成将接收的原始I2C地址转换成经转换的I2C地址的电路。另外,I2C地址转换器包括配置成经由I2C总线的次级侧输出经转换的I2C地址的电路。配置成将接收的原始I2C地址转换成经转换的I2C地址的电路可包括自原始I2C地址减去一偏移值或加上。

21、一偏移值以由此产生经转换的I2C地址的电路。该电路也可包括例如存储偏移值并允许对该偏移值编程的电路,例如寄存器。在替代实施例中,配置成将接收的原始I2C地址转换成经转换的I2C地址的电路包括可编程查找表,该可编程查找表存储一个或多个原始I2C地址以及针对一个或多个原始I2C的每一个的经转换地址。0019根据本发明实施例的系统可包括I2C总线的主侧,且多个设备连接于I2C总线的主侧。另外,该系统可包括I2C总线的次级侧,且多个设备连接于I2C总线的次级侧。I2C地址转换器连接在I2C总线的主侧和I2C总线的次级侧。I2C地址转换器配置成经由I2C总线的主侧从连接于I2C总线主侧的多个设备之一接收。

22、原始I2C地址。另外,I2C转换器配置成将原始I2C地址转换成经转换的I2C地址,并经由I2C总线的次级侧发送经转换的I2C地址以使经转换的I2C地址可由连接于I2C总线次级侧的多个设备之一接收。0020该概述无意于概括本发明的所有实施例。根据下面给出的详细说明、附图以及权利要求,本发明的其他和替代实施例以及实施例的特征、方面以及优点将变得更为显而易见。具体实施方式0021本发明的特定实施例涉及I2C地址转换器,该I2C地址转换器可实现为集成电路IC或具有固件的微控制器,但不局限于此。参见图2,根据本发明一个实施例的I2C地址转换器210一侧其上有总线主控器102以及第一多个隶属外围设备104。

23、A、104B连接于主I2C总线1011也简称为I2C总线,而另一侧该侧连接于第二多个隶属外围设备104Y、104Z上形成次级I2C总线1012。由于I2C地址转换器210本质上延长了主I2C总线1011,因此主I2C总线也被称为I2C总线的主侧,而由I2C地址转换器210形成的次级I2C总线1012也被称为I2C总线的次级侧。0022根据某些实施例,I2C地址转换器210可被编程以转换I2C地址,以使主机设备能说明书CN102339267ACN102339280A4/8页8独立地与具有同一I2C地址的一对I2C兼容设备通信例如对其发送命令。下面参照图3、图4和图5给出这个操作如何完成的进一步细。

24、节,其中I2C地址转换器210的不同实施例分别标示为210A、210B和210C。0023通过转换I2C地址,根据本发明的一个实施例,具有相同地址的多对I2C兼容设备可独立寻址,只要一对I2C兼容设备中的一个连接于I2C总线1011的主侧而该对I2C兼容设备中的另一个连接于I2C总线1012的次级侧。例如,假设第一I2C兼容设备例如DAC具有7位二进制地址0101111,而第二I2C兼容设备例如LED驱动器也具有7位二进制地址0101111。如果I2C地址转换器210被编程为减去4的偏移值即二进制值100,则位于I2C总线1011的主侧上的主机设备例如102可使用二进制地址0101111对第一。

25、I2C兼容设备例如DAC寻址;而主机设备例如102可使用二进制地址0110011它等于二进制值0101111加上二进制值100对位于I2C总线1012的次级侧上的第二I2C兼容设备例如LED驱动器寻址。如此,当I2C地址转换器210从I2C总线1011主侧上的主机设备例如102接收到二进制地址0110011时,I2C地址转换器210将在I2C总线1012的次级侧上输出二进制地址0101111,由此允许位于次级侧上的第二I2C兼容设备例如LED驱动器被寻址。0024在刚才描述的例子中,共享共用地址的第一和第二I2C兼容设备是不同类型的设备,例如一个是DAC而另一个是LED驱动器。替代地,第一和第。

26、二I2C兼容设备可以是完全相同类型的设备,例如两例具有相同部件号的完全相同类型DAC。0025I2C地址转换器210的另一种使用如下。假设特定I2C兼容设备包括专用于选择设备的地址并由此允许赋予设备四个不同地址之一的两个引脚。在不使用本发明实施例的I2C地址转换器210的情况下,该特定I2C兼容设备的四个实例可通过使用两个引脚各自附连于同一I2C总线以对四个设备中的每一个赋予四个不同地址中的不同的一个地址。但是如果特定I2C兼容设备的第五实例附连于该I2C总线,则特定I2C兼容设备中的两个需要共享同一地址由于只有四个不同地址可用,这会导致数据损坏。然而,如果使用本发明实施例的I2C地址转换器2。

27、10,则可独立地对特定I2C兼容的高达八个实例进行寻址。更具体地,I2C地址转换器210可用来将I2C总线的主侧与I2C总线的次级侧划界。这允许特定I2C兼容设备的四个实例附连于I2C总线的主侧通过使用两个引脚来对四个设备中的每一个赋予四个不同地址中的一个不同地址,并允许该特定I2C兼容设备的四个更多实例附连于I2C总线的次级侧同样通过使用两个引脚来对四个设备中的每个设备赋予四个不同地址中的一个不同地址。继续该示例,假设I2C地址转换器210通过从接收的I2C地址减去偏移值来执行I2C地址转换,如下面结合图3和图4描述的那样。连接于I2C总线1011主侧的主机设备可使用四个独立的原始I2C地址。

28、以对连接于I2C总线1011主侧的特定I2C兼容设备的四个实例作写入和读出,而主机设备可使用四个独立的附加I2C地址对连接于I2C总线1012的次级侧的特定I2C兼容设备的四个实例作写入和读出。在该示例中,这四个独立的附加I2C地址用来对连接于I2C总线1012的次级侧的特定I2C兼容设备的四个实例寻址将等于四个独立原始I2C地址加上偏移值。0026现在参考图3、图4和图5描述I2C地址转换器的各个不同实施例。如前所述,在图3、图4和图5中,I2C地址转换器210的不同实施例分别标示为210A、210B和210C。尽管本文中描述了I2C地址转换器210的多种配置,然而本领域内普通技术人员将理解。

29、落在说明书CN102339267ACN102339280A5/8页9本发明精神和范围内的其它实施例也是可能的。0027参见图3,在某些实施例中,I2C地址转换器210A可通过外部引脚例如引脚包扎从由I2C主机图2中的102提供的地址减去一偏移值例如1、2、4或8或一些其它值来编程。例如,参见图3的高级图解,四个引脚302中的每一个可选择地接地或连接于供电电压干线例如VDD以经由解码器304选择由求和器306从I2C主机接收到的地址值中减去的偏移值,由此产生经转换的地址。通过适当配置转换器210A,附连于I2C总线的次级侧的外设IC的地址可映射至不由I2C总线的主侧使用的I2C地址空间中的地址。。

30、还要注意,可类似地使用除引脚外的其它类型端子以对偏移值编程以供I2C地址转换器210使用。0028在其它实施例中,I2C地址转换器210可经由EEPROM电可擦除可编程只读存储器、OTP一次性可编程存储器等被编程,这些存储器可通过最终用户藉由微控制器图1中的102使用主I2C总线来寻址转换器210并将寻址转换信息写至转换器210而被写入。这可通过对转换器210赋予唯一的7位地址来达成,类似于当前的标准I2C设备并可相应地受到控制。0029在某些实施例中,转换信息可被编程为用来产生经转换的I2C地址的偏移。例如,参照图4的高级图解,标准I2C控制器402可用于响应I2C地址转换器210B被寻址和。

31、写入而将偏移值写至寄存器404。之后,当转换器210B不被明确寻址时,求和器406从经由I2C总线主侧从I2C主机接收的地址值中减去存储在寄存器404中的值,由此产生经由I2C总线的次级侧输出的经转换的地址。这种偏移值可替代地以允许对偏移值编程的其它方式存储。例如,可将偏移值存储在I2C地址转换器210的非易失性存储器内,其中该非易失性存储器经由I2C地址转换器210所连接至的I2C总线编程。0030在图3和图4中,求和器306、406描述为用来从接收的地址减去一偏移值。因此,可将求和器306、406称为“求差器”或“减法器”。在替代实施例中,求和器例如306和406可用来将偏移值加至接收的地。

32、址。注意,如果接收地址和偏移值之和超出最大地址例如超出1111111,则可能发生上溢。同样,在地址转换器减去偏移值时,在接收到的地址减去偏移值是负数的情况下可能发生下溢。因此,应当将注意力放在理解上溢和/或下溢会如何影响地址转换。0031在其它实施例中,转换算法或查找表可用来实现将次级隶属地址再映射至I2C总线的主侧上的未使用地址。例如,参见图5,标准I2C控制器502可用来对查找表504中的多个地址中的每一个的转换值例如存储在多个寄存器中,但不仅限于此进行编程。此后,当I2C地址转换器210C不被明确寻址时,如果通过I2C地址转换器210C接收到查找表504中的地址,则I2C地址转换器210。

33、C经由I2C总线的次级侧输出相应经转换的地址。0032通常参考图25描述的I2C地址转换器210的诸个实施例可涉及一旦最初产品制造和最初加电定序时即被编程。根据某些实施例,在执行该编程操作前,次级总线上的隶属设备是不可寻址的并且被禁用。0033I2C地址转换器210可使用硬件来转换地址。作为附加或替代,I2C地址转换器210可使用固件和/或软件来转换地址。例如,I2C地址转换器210可包括使用算法来执行地址转换的固件。这种算法简化为规定经转换的地址等于原始地址减去偏移值。然而,可使用替代类型的算法并仍然落在本发明的范围内。又如,如果原始地址落在第一范围内,则算说明书CN102339267ACN。

34、102339280A6/8页10法可规定使用第一偏移值,而如果原始地址落在第二范围内,则算法规定使用第二偏移值。算法也可使用除减法以外的其它函数,例如可使用加法。算法使用乘法和/或除法也落在本发明的实施例的范围内,但使用这些函数比使用减法和/或加法更为复杂。0034参照图25对I2C地址转换器的各实施例进行总括地描述,图25示出I2C地址转换器经由I2C总线的主侧的主SDA线从I2C主机接收地址,并经由I2C总线的次级侧的次级SDA线输出经转换的地址。然而,I2C地址转换器也可接收SCL线,并如下面描述的那样,在某些实施例中可对SCL线施加控制。0035I2C地址转换器可利用I2C总线的同步特。

35、征从而以完全透明和遵照规范的方式执行地址转换。根据特定实施例,下面示出一个顺序0036步骤1I2C地址转换器例如210从主机例如102接收七个I2C地址位,如同任何附连的隶属IC。I2C地址转换器输出保持无效SDA和SCL输出高。0037步骤2一旦I2C地址转换器已接收到例如暂存七个地址位,则主侧上的SCL线由I2C地址转换器保持低。此时,转换地址例如从存储的地址中减去偏移值,并在次级侧上串行地驱动输出。主侧上的总线活动挂起,同时SCL线通过I2C地址转换器保持低。0038步骤3一旦经转换的地址已完全移出隶属侧,则次级侧上的SDA线逻辑连接于主侧上的SDA线。0039步骤4在短暂延时后,隶属侧。

36、上的SCL线被释放并逻辑连接于主侧上的SCL线。这将导致I2C地址转换器两侧上的SCL线变高。0040步骤5此时,I2C地址转换器的主侧上的SCL和SDA线逻辑连接于次级侧上的SCL和SDA线。剩下的I2C事务以透明方式完成,就像I2C地址转换器简单地由导线代替那样但由于I2C地址转换器内的可选缓冲器电路而可能具有微小的延时。0041图6示出前述过程的示例性时序图。也可使I2C地址转换器调整隶属侧上的地址传输速度以使其粗略地匹配于主机侧的速度。在最初主机地址传输过程中测量时钟频率提供必要的信息以调整I2C地址转换器的内部时钟,以当发送隶属地址时粗略地匹配时钟频率。0042在某些实施例中,I2C。

37、地址转换器210可配置成使用局限于值2N其中N1、2、3、4、5或6的偏移来执行转换。在这些实施例中,可使I2C地址转换器210在从主机接收到全部七个地址前开始地址转换,并在接收到全部七个地址位和/或完成地址转换前开始输出I2C总线的次级侧上的经转换地址的一部分。当与主侧总线时序相比时,这样做可减少连接于I2C总线次级侧的隶属作出响应的等待时间。换句话说,如果转换偏移值是2N值的二进制加权,则有一种情形是经转换的地址的最高有效位MSB在地址转换器210从主机接收拟转换的全部7位I2C地址前可能开始移出地址转换器210。这是因为如果偏移值的最低有效位LSB为零,则偏移值的任何减或加不影响拟转换的。

38、I2C地址的至少一些LSB。对于特定例子,假设偏移值是十进制数32即2532,其二进制值为0100000。另外假设该主机正对十进制地址53写入,其二进制值为0110101。假设I2C地址转换器210从接收自主机的I2C地址减去偏移值,则经转换的地址将是533221,即二进制值0010101。注意I2C地址的五个LSB不受转换影响,更具体地,一旦两个MSB由I2C地址转换器210接收,则转换不再变化。因此,在I2C地址转换器210接收拟转换的整个I2C地址前在本例中是在地址转换器210接收拟转换的地址的5个LSB前地址转换在本例中说明书CN102339267ACN102339280A7/8页11。

39、通过减法来获得可以是完成的并且一部分得到的经转换地址可能开始移出I2C总线的次级侧上的I2C地址转换器210。0043图7是用来概括方法的高级流程图,该方法由I2C转换器使用以根据本发明实施例转换I2C地址。参见图7,在步骤702,经由第一I2C兼容设备连接至的I2C总线的主侧从第一I2C兼容设备接收原始I2C地址。在步骤704,原始I2C地址被转换至经转换的I2C地址。在步骤706,经转换的I2C地址经由第二I2C兼容设备连接至的I2C总线的次级侧输出至第二I2C兼容设备例如隶属设备。0044根据实施例,在步骤704的地址转换是通过从原始I2C地址减去或加上偏移值以产生经转换的I2C地址来完。

40、成的。该偏移值可使用一个或多个端子例如引脚来规定,其中每个端子有选择地连接于供电电压干线或接地,例如参考图3描述的那样。替代地,偏移值可存储在寄存器或非易失存储器中,例如前面参考图4所述那样。这种存储的偏移值可经由I2C总线编程,如同前面参考图4描述的那样。在一替代实施例中,在步骤704的地址转换是使用查找表完成的,例如前面参考图5描述的那样。该查找表可经由I2C总线编程,就像前面参考图5描述的那样。使用如前所述除简单减法或加法以外的算法执行步骤704的地址转换也落在本发明的范围内。0045图8是用来概括方法的高级流程图,该方法由主机设备使用,允许主机设备独立地将命令发送至均具有相同地址的两个。

41、I2C兼容设备,其中两个I2C兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个I2C兼容设备的第二个连接于I2C总线的第二侧。参照图8,在步骤802,主机通过将第一地址纳入第一命令而将第一命令送至两个I2C兼容设备中的第一个,该第一个I2C兼容设备附连于I2C总线的第一侧。在步骤804,主机通过将第二地址纳入第二命令而将第二命令发送至两个I2C兼容设备中的第二个,该第二个I2C兼容设备附连于I2C总线的第二侧,其中第二命令中的第二地址在两个I2C兼容设备中的第二个接收到第二命令前被转换成第一地址。0046上述描述是本发明的优选实施例。出于说明和描述目的提供这些实施例,但它们不旨在穷。

42、举或将本发明限制在所公开的精确形式。许多改型和变化对本领域内技术人员而言是明显的。这些实施例的选择和描述是为了最好地阐述本发明的原理及其实践应用,由此使本领域内技术人员理解本发明。微小的修改和变化相信落在本发明的精神和范围内。本发明的范围旨在由下面的权利要求及其等效方案限定。附图说明0047图1是用来解释I2C兼容设备通常如何与I2C总线中使用的另一I2C兼容设备通信的高级方框图。0048图2是根据本发明实施例解释I2C地址转换器如何一侧连接于主I2C总线而另一侧形成次级I2C总线的高级框图。0049图35示出用于编程图2中介绍的I2C转换器的本发明各实施例。0050图6是用来示出I2C地址转。

43、换器如何利用I2C总线的同步特征来以透明和遵照规范的方式执行地址转换的示例性时序图。0051图7是用来概括根据本发明实施例的方法的高级流程图,该方法由I2C转换器使用以转换I2C地址。说明书CN102339267ACN102339280A8/8页120052图8是用来概括一方法的高级流程图,该方法由主机设备使用,该方法允许主机设备独立发送命令至均具有同一地址的两个I2C兼容设备,其中两个I2C兼容设备中的第一个和主机设备连接于I2C总线的第一侧,而两个I2C兼容设备中的第二个连接于I2C总线的第二侧。0053附图中主要组件的附图标记列表0054101内部集成电路总线I2C总线00551011主。

44、I2C总线00561012次级I2C总线0057102主设备0058104A,104B,104C隶属设备0059104Y,104Z0060210,210A,210B,210C12C地址转换器0061302引脚0062304解码器0063306,406求和器0064402,502I2C控制器0065404寄存器0066504查找表0067702,704,708,802,804步骤0068RP拉高电阻器0069SCL串行时钟线0070SDA串行数据线0071VDD供电电压干线说明书CN102339267ACN102339280A1/7页13图1图2说明书附图CN102339267ACN102339280A2/7页14图3说明书附图CN102339267ACN102339280A3/7页15图4说明书附图CN102339267ACN102339280A4/7页16图5说明书附图CN102339267ACN102339280A5/7页17图6说明书附图CN102339267ACN102339280A6/7页18图7说明书附图CN102339267ACN102339280A7/7页19图8说明书附图CN102339267A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1