动态i2c从装置地址译码器的制作方法

文档序号:6567988阅读:243来源:国知局
专利名称:动态i2c从装置地址译码器的制作方法
技术领域
本发明通常涉及通信装置和方法,并且更具体地涉及用于动态改变和 译码从装置地址的方法和装置。
背景技术
由Philips公司研发的集成电路间(I2C)总线允许集成电路经由简单 的双向2-线式总线(正电源和地)而彼此直接通信。装置连接至总线上两 根线的每一根, 一根是串行数据线(SDA),用于数据的通信,另一根是串 行时钟线(SCL),用于装置之间数据通信的控制和同步。每一个装置并联 连接至其他装置的每一个,并且总线中的每一根线,即SDA和SCL起总线上 全部线路的'线与'(wired-A腦)的作用。每一个装置的输出被布置成集 电极开路/漏极开路装置,并且一个或多个上拉电阻器在总线上保持'软'逻辑高值,同时总线在静止状态。当装置期望访问总线时,经由在 导电状态中被布置至地电势的集电极开路/漏极开路装置,该装置将总线 拉至逻辑低值。通过地址可识别连接至I2C总线的每一个装置,并且可以作为发送方 或接收方工作,或者兼做两者工作。利用主-从通信协议实施数据传送。 主装置(master)是发起数据传送并产生时钟信号以便允许传送的装置; 被寻址的任何装置被认为是用于该传送的从装置(slave)。数据传送可以 通过主装置发起,以便将数据发送到从装置(于此被指定为写入),或者 向从装置请求数据(于此被指定为读出)。例如,诸如显示屏的输出装置 典型地不能够发起数据传送,并因此将被布置成仅作为从装置工作。另一 方面,微处理器将典型地被布置成作为主装置或从装置工作,因为情形要 求。在静止状态中,SDA和SCL总线线路处于逻辑高状态(于此被指定为高、
或逻辑状态q,)。通过在SCL线是高时在SDA线上断言(assert)至逻辑 低状态(于此被指定为低、或逻辑状态'0')的转换,主装置发起数据转 换;这被称作START (启动)条件。其后,主装置切换(toggle) SCL线路, 以便控制数据传送的同步,当SCL时钟是低时,在SDA线路上出现数据值改 变,并且仅当SCL时钟是高时,SDA线路的状态被认为是无效的。可以断言多个START,以便在相同的传送会话中实施一系列的数据传 送。通常,每一个数据传送需要来自寻址的数据传送接收方的确认。为了 终止数据传送,主机在SCL时钟是高时断言SDA线路上低至高转换;这被称 作ST0P条件。其后,如上所述,通过断言SDA线上的低至高转换,任何装 置可以作为主装置而接管总线的控制。需要指出,为了方便参考,于此处 使用的术语^断言(assert)'用于实施或试图实施具体的逻辑状态。在 至逻辑高状态的转换的例子中,这典型地通过断言装置从强制下拉状态释 放总线而提供。逻辑高状态的该断言允许总线上前面提到的上拉装置将总 线带至逻辑高状态,除非另一个装置也强制处于下拉状态。12C数据传送的一般格式包括形成I2C总线的SDA线和SCL线上的信号。 START条件(S)对应于SCL线路是高时SDA线路上信号的高至低转换。在 START之后,主机发送一地址,名义上是七位,接着是读/写非(read/write-not)指示符。在发送了地址和数据传送方向(R/W-)之后, 主机释放SDA线,允许它上升至逻辑高电平。如果从装置识别出它的地址, 通过将总线拉至低,从装置发送确认信号(ACK)。因此,当主机释放SDA 线时没有低信号存在,表示没有确认(non-acknowledgement: NAK)。如 果地址被确认,经由SDA处的低,发送装置发送该数据。如果数据传送的 方向相对于主机是"读入",则从装置是发送装置;如果方向相对于主机 是"写入",则主装置是发送装置。发送装置释放SDA线的控制,接收装置 通过在SDA线上断言逻辑低值来确认数据的接收。如果数据被确认,发送 方发送附加数据。该过程继续,直至数据全部被传送,或者直至发送的数 据项没有被确认。主装置接着可以再次断言START信号,并且重复上面的 过程,或者可以断言STOP信号(P),以便终止该数据传送会话。可以以多种方式实施上面的接口协议。为了最小化用于编程或设计 工2C接口的研发时间,己经披露了多种通用的接口方案。"Design Of A
Behavioral(Register Transfer Level, RTL) Model of The Inter-Integrated Circuit Or I2C_Bus Master-Slave Interface", Master' s Thesis of Amrita Deshpande, University of New Mexico, 1999,公开了试图以I2C装置被具体化的I2C主接口和从接口 ,并 且它通过引用而结合于此。通过提供验证的I2C接口,系统设计者不需要 处理工2C规范和协议的细节。该论文描述的主和从接口是基于状态机的。 在US专利6, 799, 233中进一步描述了基于状态机的系统和方法,该专利通 过引用而结合于此。发明内容本发明的各个方面涉及以处理和克服上面提到的问题的方式动态改 变和译码从装置地址的方法和装置。与示例实施例一致,本发明涉及一种利用I2C串行数据传送总线的通 信系统,该I2C串行数据传送总线具有串行数据线和时钟线,用于实施通 信协议。该通信系统包括具有地址引脚的从装置,每一个地址引脚耦合至 串行数据线或时钟线或电源线或地。从装置中的通信电路被布置成依据通 信协议在数据传送总线与主装置通信。从装置中的译码电路被布置成当时 钟线是逻辑高时,响应于串行数据线上的从逻辑高至逻辑低的转换而检测 从装置的地址引脚的第一状态,当时钟线从逻辑高转换至逻辑低时,检测 从装置的地址引脚的第二状态,其中地址引脚的一个或多个逻辑值在第一 状态和第二状态之间不同,以及按照地址引脚的第一状态和第二状态之间 的函数关系而译码从装置地址。与另一个示例实施例一致,本发明涉及一种方法,包括响应于串行 数据传送总线上的启动条件而检测从装置的地址引脚的第一状态;在第一 状态的检测之后,检测从装置的地址引脚的第二状态,其中地址引脚的一 个或多个逻辑值在第一状态和第二状态之间不同;以及按照地址引脚的第 一状态和第二状态之间的函数关系而译码从装置地址。本发明的上面的概述并非试图描述本发明的每一个实施例或每一个 实施方式。通过参考下面结合附图的详细描述和权利要求,优点和有益效 果,与本发明的更完全的理解一起,将变得明显和可理解。


考虑下面结合附图对本发明的各个实施例的详细描述可以更完全地 理解本发明,在附图中图l是根据本发明实施例的实施从装置地址的改变和译码的数据通信系统的方框图;图2是根据本发明实施例的实施从装置地址的改变和译码的数据通信 系统的数据流的示意图;图3是根据本发明实施例的实施从装置地址的改变和译码的系统的方 框图;图4是根据本发明实施例的用于动态改变和译码从装置地址的方法的 流程图;以及图5是根据本发明其他实施例的用于动态改变和译码从装置地址的另 一方法的流程图。
具体实施方式
在本发明顺从各种修改和可替代形式的同时,已经在附图中通过例子 示出其细节,并将被详细说明。然而可以理解,不试图将本发明限制至所 述的具体实施例。相反,本发明试图覆盖落入如通过附加权利要求限定的 本发明范围的全部修改,等同物和替代物。本发明通常可应用于动态改变和译码从装置地址的方法和装置。已经 发现本发明对于集成电路间(Inter Integrated Circuit) (I2C)串行数 据通信总线是特别有利的,但对于比如系统管理总线(SMBus)体系结构 和/或协议的其他总线和通信协议也是有利的。为了描述的目的,并且不 是限制,将在具有控制至从装置的通信的主装置的I2C总线的上下文中描 述本发明。主装置在I2C总线体系结构上控制与I2C从装置的通信。12C从装置可 以应用于从峰窝电话、PDA和SmartPhones到LCD TV、医学装置,游戏机以 及其他用途的领域中。与一个具体实施例一致,通信系统,利用用于实施 通信协议的具有串行数据线和时钟线的串行数据传送总线,将从装置和动 态从地址译码器结合。例如,可以以具有外部可编程的地址引脚的I2C从 装置实施依据本发明的装置。依据本发明的从地址译码器的实施提供了在 工2C事务中要被动态改变的从地址,并且从地址将被正确译码,而免于不 得不复位或停止给部件供电。由于内部延迟单元的使用,依据本发明的动态从装置地址译码的实施 不需要外部时钟。该延迟单元提供用于地址译码的定时,而不使用单独的时钟。在I2C通信序列的每一个START条件的结尾出检测从地址。由于该特 征,在START条件和检测器译码正确的地址之前,从地址可以随时改变。在本发明的一个实施例中,从装置具有外部可编程的地址引脚,该地 址引脚可被连接至VDD (电源)、GND (地)、SCL和SDA的一个。由于至地址 引脚的四种可能的连接,存在地址引脚可以具有的四个可能值。在I2C总 线上的START条件过程中,本发明提供至地址引脚的连接的检测。利用串行总线上对从装置的动态改变和译码的内部集成电路从装置 可被布置为通用输入/输出(GPIO)装置,或其他从装置。通信系统可以 符合I2C、 SUBus和/或其他串行通信规范。图l是根据本发明的实施例的实施从装置地址的动态改变和译码的数 据通信系统100的方框图。SDA线110和SCL线120被布置成I2C数据总线125。 主装置130和从装置140被连接至I2C数据总线125。利用分别被电连接至 SCL线120和SDA线110的时钟连接134和数据连接132,主装置130被电连接 至I2C数据总线125。利用分别被电连接至SCL线120和SDA线110的时钟连接144和数据连接 142,从装置140被电连接至I2C数据总线125。在动态改变从装置地址的实 施例中,利用当前装置地址,主装置130寻址152从装置140,利用从装置 140执行153I2C事务,并且然后改变154从装置的地址。主装置130然后将 从装置的新地址信息存储156于存储器中,以备以后使用。从装置140检测 162START条件,并且接着译码164它的地址。图2是用于根据本发明实施例的实施从装置地址的动态改变和译码的 数据通信系统的时序图200的示意图。符合I2C通信协议地在图2中描述了 时序图200。根据本发明的动态从地址译码器利用I2C时钟线(SCL)禾M2C 数据线220 (SDA)输入。在I2C总线(其由SCL和SDA信号组成)上产生START
条件(如在I2C协议中定义的),并且在START线250上得以描述。在START 条件过程中,SCL线210是HIGH,同时SDA线220从HIGH至L0W进行转换。如果从装置的地址引脚连接至这两根线的任一根,它将分别跟随它们。例如, 如果地址引脚连接至SCL线210,当SCL线210是这样时,地址引脚将从HIGH 转换至LOW。类似地,如果地址引脚连接至SDA线220,当SDA线220是这样 时,它将从HIGH转换至LOW。如果该转换发生,从地址译码器电路检测地址引脚上的该转换时,并 将该信息存储于寄存器中,以用于将来参考。不存在用于同步SCL和SDA 信号的较高频率外部时钟,从而在这些线上的转换之前和之后存储它们的 值。为了检测这些转换而不利用任何外部时钟,将延迟单元用于产生地址 引脚的延迟版本(version)。例如,三个延迟单元可以用于提供延迟的 SCL230,延迟的SDA240和延迟的START260。SDA线220 (在时序图中通过"B"表示)上的第一HIGH至LOW转换用于 闩锁地址引脚的延迟版本的值。在SDA转换之前,这设置地址引脚的值。 如果该值是LOW,我们推断出地址引脚被连接至GND。SCL线210 (在时序图中通过"A"表示)上的第一HIGH至LOW转换也用 于闩锁地址引脚的延迟版本的值。在SCL转换之前,这设置地址引脚的值。 如果该值是LOW,我们推断出地址引脚被连接至GND或SDA。在SDA线上的下降沿转换之后,START线250 (在时序图中通过"C"表 示)上的上升沿也用于闩锁地址引脚的值,以便检测地址引脚是否随着SDA 线而改变。这通过异或(XOR-ing)地址引脚和SDA线而做到,如在下面参 照图3看出的。延迟的START线250 (在时序图中通过"D"表示)的下降沿 用于如下闩锁至SCL和SDA的地址引脚的连接的检测当地址引脚值在B处是LOW时,地址引脚连接至GND。如果我们知道地址引脚在B处维持HIGH,并且在C处维持LOW,地址引 脚连接至SDA。如果地址引脚在C处维持HIGH,并且在D处维持LOW,地址引脚连接至SCL。如果地址引脚在A处维持HIGH,在D处也维持HIGH,地址引脚连接至VDD。
根据SCL、 SDA、 VDD、 GND四个信号的组合,以及使用的地址引脚的数 量(x),可以检测高达4x个地址。以这种方式,利用延迟单元,不使用外 部振荡器,在每一个START条件过程中译码从地址,并且为了参考而将其 存储。图3是根据本发明实施例的实施从装置地址的动态改变和译码的系统 300的方框图。系统300被描述为利用D触发器310-307和共用的逻辑门而实 施。例如利用RC延迟电路可以实施延迟单元310-313。如上面所述的,启 动逻辑(start logic) 320用于对装置的地址进行动态译码。滤波器331、 332、 333和334可被实施为晶体管电平假信号(glitch)滤波器,比如在本领域中已知的。通过唯一的名字识别至逻辑块的全部相关输入和输出。 例如,SCL线被描述为至启动逻辑320的输入、SCL滤波器331、以及至D触 发器303的时钟输入。图4是根据本发明实施例的用于动态改变和译码从装置地址的方法 400的流程图。该方法400包括检测410地址引脚的第一状态,检测420 地址引脚的第二状态,以及根据地址引脚的第一和第二状态译码430地址。图5是根据本发明其他实施例的用于动态改变和译码从装置地址的方 法500的流程图。在一个描述性的例子中,从装置可被连接至I2C总线。从 装置可以包括被设置成耦合每一个从装置的地址引脚至电源、地、SDA或 SCL的一个的电路。该电路可以是可改变或可编程的,从而使主装置可以 改变从装置的地址。方法500包括检测510地址引脚的第一状态,检测520地址引脚的第二 状态,以及根据地址引脚的第一和第二状态译码530地址。从装置的地址 可被改变540,从而使从装置在下一个START命令处识别不同地址。这可以 是有用的,例如用于在I2C总线上支持更多的物理装置,而不是逻辑地址 能够支持。硬件、固件、软件或其组合可以用于执行如于此所述地动态改变和译 码从装置地址的各种实施例。功能性地用于结合本发明的主装置可以驻留 在如上面所述的I2C主装置中,或者可替代地驻留在被连接至串行数据通 信系统100的独立或网络的计算机上。在图l中描述的串行数据通信系统 IOO是可以用于结合这种通信系统、计算机或其他计算机实施的装置的示
例结构,以便实现本发明的操作。在图1中描述的示例主装置130,适用于根据本发明控制I2C总线上的12C通信,它典型地包括耦合至随机存取存储器(RAM)和/或只读存储器 (ROM)的一些变型的中央处理器(CPU)。该ROM也可以是用以存储程序的 其他类型的存储介质,比如可编程的ROM (PROM),可擦除的PROM (EPROM) 等。处理器可以通过输入/输出(I/O)电路和/或其他汇流排与其他内部 和外部部件通信,以便提供控制信号、通信信号等。主装置130也可以包括一个或多个数据存储装置,包括硬和软盘驱动 器、CD-ROM驱动器、以及能够读和/或存储信息的其他硬件,比如DVD等。 在一个实施例中,在CD-ROM、磁盘或能够便携地存储信息的其他形式的介 质上存储和分配用于动态改变和译码从装置地址的软件。这些存储介质可 被插进比如CD-ROM驱动器、磁盘驱动器等的装置中,或被比如CD-ROM驱动 器、磁盘驱动器等的装置读出。该软件也可以经由数据信号被传送至计算 装置,比如经由比如工nternet的网络被电气地下载。进一步地,如先前描 述的,用于实施与本发明相联系的功能的软件可被可替代地存储于计算装 置的内部存储器/储存器中,比如R0M中。具有计算机可读程序代码的任何可用程序可以在比如存储器装置或 发送装置的一个或多个计算机可用的介质中被具体化,从而依据本发明获 得计算机程序产品或制造商的物品。如此,术语"计算机可读介质","制 造物品","计算机程序产品"或如于此使用的其它类似的语言试图包括永 久性、临时性或过渡性地存在于任何计算机可用的介质上的计算机程序, 比如任何存储装置上,或任何发送装置中。在说明书(包括任何附加权利要求、摘要和附图)中公开的每一个特 征可被具有相同、等同或类似用途的可替代特征所替代,除非另外特别声 明。因此,除非另外特别声明,公开的每一个特征仅是通常的一系列等同 物或类似特征的例子。本发明不应该被认为局限于上面所述的具体例子。各种修改、等同处 理以及本发明可应用于的多种结构都落入本发明的范围中。例如,利用在 比如SMBus或其他总线布置的公共总线上的装置之间通信的类似布置的单 向或两向接口,可以实施依据本发明用于动态改变和译码从装置的实施
例。这种变形可被认为是如在附加权利要求中公平地阐述的所要求保护的 本发明的一部分。
权利要求
1、一种在使用串行数据传送总线(125)的数据通信系统(100)中用于从装置(140)对其装置地址进行译码的方法,所述串行数据传送总线(125)具有串行数据线(110)和时钟线(120),用于实施通信协议,该方法包括响应串行数据传送总线上的启动条件而检测从装置的地址引脚(410)的第一状态;在第一状态的检测之后,检测从装置的地址引脚(420)的第二状态,其中地址引脚的一个或多个逻辑值在第一状态和第二状态之间不同;以及按照地址引脚的第一状态和第二状态之间的函数关系而译码从装置地址(430)。
2、 权利要求l的方法,包括利用函数关系产生START信号(250)。
3、 权利要求l的方法,包括响应于在串行传送总线上通过主装置的 请求而改变从装置地址。
4、 权利要求3的方法,包括响应于在串行传送总线上通过主装置的 随后的请求而恢复从装置地址。
5、 权利要求l的方法,包括如与串行数据线或时钟线或电源线或地 相关联地检测地址引脚的状态。
全文摘要
公开了一种动态I2C从装置地址译码器。与一个示例实施例相一致,通信系统使用I2C串行数据传送总线,它具有串行数据线(110)和时钟线(120),用于实施通信协议的。该通信系统包括具有地址引脚(400)的从装置,每一个地址引脚耦合至串行数据线、时钟线、电源线或地。基于数据传送总线,依据通信协议,通信电路与主装置通信。译码电路检测地址引脚(410)的第一状态,在第一状态的检测之后,检测地址引脚(420)的第二状态,其中地址引脚的一个或多个逻辑值在第一状态和第二状态之间不同,以及按照地址引脚的第一状态和第二状态之间的函数关系而译码从装置地址(430)。
文档编号G06F13/42GK101213535SQ200680023534
公开日2008年7月2日 申请日期2006年5月1日 优先权日2005年4月29日
发明者让-马克·伊拉扎巴尔, 阿姆里塔·德什潘德, 阿尔玛·安德森 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1