用于旧式和下一代设备在共享多模总线上共存的告别重置和重启方法与流程

文档序号:13041789阅读:127来源:国知局
用于旧式和下一代设备在共享多模总线上共存的告别重置和重启方法与流程

相关申请的交叉引用

本申请要求于2016年3月10日提交的题为“farewellresetandrestartmethodforcoexistenceoflegacyandnextgenerationdevicesoverasharedmulti-modebus(用于旧式和下一代设备在共享多模总线上共存的告别重置和重启方法)”的美国申请序列号no.15/067,111的优先权和权益,该美国申请要求于2015年3月11日提交的题为“farewellresetandrestartmethodforcoexistenceoflegacyandnextgenerationdevicesoverasharedmulti-modebus(用于旧式和下一代设备在共享多模总线上共存的告别重置和重启方法)”的美国临时申请序列号no.62/131,802的优先权,上述申请的全部内容通过援引纳入于此。

领域

本公开涉及允许不同代的设备在耦合到共享总线时共存的技术,尤其涉及允许下一代设备禁用共享总线上的旧式设备并使它们返回操作而无需功率循环或总线重置。

背景

i2c标准(也被称为i2c)是由nxp定义用于将低速外围设备附连到母板、嵌入式系统、蜂窝电话、相机、或其他电子设备的多主控串行单端总线。i2c总线包括具有7比特寻址的时钟(scl)和数据(sda)线。该总线具有两个给设备的角色:主控方和从动方。主设备是生成时钟并发起与从设备的通信的节点。从设备是接收时钟并在被主设备寻址时进行响应的节点。i2c总线是多主控总线,这意味着可以存在任何数目的主设备。另外,可以在消息之间(在stop(停止)被发送之后)改变主控角色和从动角色。i2c定义了基本的消息类型,其中每种消息类型始于start(开始)并结束于stop。

已提出了各种多协议方法来实现在兼容i2c的总线上的较高带宽,同时仍然允许i2c旧式设备在兼容i2c的总线上保持可操作。例如,(由mipi联盟定义的)i3c标准是i2c标准的演进并且为i2c设备提供了后向兼容性。然而,可以预见,将来在相同的总线上可能期望甚至更高的带宽。在总线上实现此类更高的带宽可能被旧式设备(诸如i2c设备和i3c设备)的操作所阻碍。

因此,需要在由旧式设备和下一代设备共享总线的系统中允许选择性地禁用旧式设备的解决方案,以允许在共享总线上更高的带宽。

概述

第一方面提供了一种设备,包括第一总线、第二总线、第一组设备、以及第二组设备。所述第一组设备耦合到所述第一总线和所述第二总线,并且所述第一组设备被配置成:根据第一通信协议在所述第一总线上通信。所述第二组设备耦合到所述第一总线,并且所述第二组设备被配置成:根据所述第一通信协议和第二通信协议两者在所述第一总线上通信。在一些实现中,所述第二组设备中的一些设备(例如,下一代主设备和/或下一代从设备)可耦合到所述第二总线。在所述第一总线上的第一操作模式中,所述第一组设备和所述第二组设备可使用所述第一通信协议在所述第一总线上并发地通信。在所述第一总线上的第二操作模式中,所述第二组设备可在所述第一总线上使用所述第二通信协议彼此通信,并且所述第一组设备停止在所述第一总线上进行操作。禁用命令可在所述第一总线上(例如,由总线主设备,可能地在所述第二组设备内)被发送,以在所述第二组设备于所述第一总线上的所述第二模式中操作时使所述第一组设备停止在所述第一总线上进行操作。启用命令在所述第二总线上(例如,由所述总线主设备,可能地在所述第二组设备内)被发送,以在所述第一总线切换到在所述第一模式中操作时使所述第一组设备恢复在所述第一总线上进行操作。所述第一通信协议可在所述第一总线上提供第一数据吞吐量,而所述第二通信协议在所述第一总线上提供第二数据吞吐量,其中所述第二数据吞吐量可大于所述第一数据吞吐量。所述禁用命令防止所述第一组设备中的每个设备在所述第一总线上进行接收和传送。在进入所述第二操作模式之前或与之并发,来自所述第二组设备中的至少一个设备发送所述禁用命令。在所述第二操作模式期间,所述第一组设备不受所述第一总线上的活动的影响。

在一种实现中,所述第一总线包括多条线,其中n条线被分配用于在所述第一模式中的传输,并且m条线被分配用于在所述第二模式中的传输,其中n和m是大于或等于二(2)的整数。在一些实例中,线的数目n和m可以是不同的整数。在其他实例中,线的数目n和m是相同的整数,并且在所述第一模式和所述第二模式中定义了不同数目的逻辑传输通道。

第二方面提供了一种旧式设备,包括:第一通信电路、第二通信电路、以及控制电路。所述第一通信电路用于耦合到第一总线并且被配置成根据第一通信协议在所述第一总线上通信。所述第二通信电路用于耦合到第二总线。所述控制电路耦合到所述第一通信电路和所述第二通信电路。所述控制电路可被配置或适配成:(a)将所述通信电路配置成使用所述第一通信协议在所述第一总线上通信,(b)监视所述第一总线以发现禁用命令,(c)在检测到所述禁用命令之际将所述第一通信电路重配置成忽略在所述第一总线上的活动,(d)监视所述第二总线以发现启用命令,和/或(e)在检测到所述启用命令之际将所述第一通信电路重配置成恢复在所述第一总线上的活动。

所述第一总线可包括多条线,其中n条线被分配用于在所述第一模式中的传输,并且m条线被分配用于在所述第二模式中的传输,其中n和m是大于或等于二(2)的整数。在一些实例中,多条线n和m是不同的整数。在其他实例中,多条线n和m是相同的整数,并且在所述第一模式和所述第二模式中定义了不同数目的逻辑传输通道。在一个示例中,在所述第一模式中n=2以支持兼容ccie的传输,并且在所述第二模式中m=3以支持三阶乘(3!)多导线多电平差分传输。在另一示例中,在所述第一模式中n=4以支持4导线单端多导线传输,并且在所述第二模式中m=2x2以支持在使用两条线的第一差分对和使用另外两条线的第二差分对上的传输。在又一示例中,在所述第一模式中n=2x2以支持两个差分导线对的兼容ccie的传输,并且在所述第二模式中m=4以支持四阶乘(4!)多导线多电平差分传输。

在另一实现中,其中n=m=3,在所述第一模式中使用3导线单端传输,并且在所述第二模式中,一对线用于差分传输并且剩余的单线用于边带信令。

第三方面提供了一种被配置为总线主设备的下一代设备,可包括第一通信电路、第二通信电路、和/或控制电路。所述第一通信电路用于耦合到与其他设备共享的第一总线。所述第二通信电路用于耦合到与所述其他设备共享的第二总线。所述控制电路可耦合到所述第一通信电路和所述第二通信电路。所述控制电路可被配置成:(a)将所述第一通信电路配置成在其中第一通信协议被用于所述第一总线上的第一模式中操作;(b)在所述第一总线上发送禁用命令以指示不支持第二通信协议的其他设备忽略在所述第一总线上的活动;(c)将所述第一通信电路重配置成在其中所述第二通信协议被用于所述第一总线上的第二模式中操作;(d)将所述第一通信电路重配置成在其中所述第一通信协议被用于所述第一总线上的所述第一模式中操作;和/或(e)在第二总线上发送启用命令以指示其他设备恢复使用所述第一协议在所述第一总线上的活动。

所述禁用命令可防止其他设备在所述第一总线上进行通信。可在所述第一通信电路进入所述第二模式之前或与之并发地发送所述禁用命令。

附图

在结合附图理解下面阐述的详细描述时,各种特征、本质和优点会变得明显,在附图中,相同的附图标记始终作相应标识。

图1是解说了由旧式设备和下一代设备共享的第一总线和第二总线的示例的框图。

图2是解说了图1中的设备的另一实现的框图,其中第二总线可耦合在主设备与旧式设备中的一些或全部旧式设备之间。

图3解说了共享的第一总线的两条导线/线可如何被用于第一模式中的数据传输。

图4解说了可用于将旧式设备(或者至少其至总线的接口)置于禁用模式(例如,暂停、停止、或杀灭模式以使得旧式设备不会苏醒)中的示例性通用呼叫。

图5解说了在下一代设备处操作以禁止旧式设备在共享的第一总线上进行操作并且随后经由第二总线重新启用旧式设备的操作的方法。

图6解说了在旧式设备处操作以用于在与下一下设备共享的第一总线上操作的方法。

图7解说了允许下一代设备禁用和重新启用共享相同的第一总线的旧式设备的方法。

图8是解说用于在发射机处将数据比特转码成顺序码元以在这些顺序码元内嵌入时钟信号的示例性方法的框图。

图9解说了在发射机处从比特到转变数以及随后在接收机处从转变数到比特的示例性转换。

图10解说了转变数与顺序码元之间的示例性转换。

图11解说了顺序码元与转变数之间的转换。

图12解说了将三进制数(基数为3的数)转换成二进制数的一般示例,其中{t11、t10...t2、t1、t0}中的每个t是码元转变数。

图13解说了将二进制数(比特)转换成12位三进制数(基数为3的数)的示例性方法。

图14解说了图13的除法和取模运算的一种可能实现的示例,其可以由任何商业合成工具来合成。

图15是解说了示例性旧式设备的框图。

图16解说了可由旧式设备实现的示例性方法。

图17是解说了示例性下一代设备的框图。

图18解说了可由下一代设备在共享总线上作为主设备来操作时实现的示例性方法。

图19解说了可由下一代设备在共享总线上作为从设备来操作时实现的示例性方法。

详细描述

在以下描述中,给出了具体细节以提供对各实施例的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践这些实施例。例如,电路可能用框图示出以避免使这些实施例湮没在不必要的细节中。在其他实例中,公知的电路、结构和技术可能不被详细示出以免湮没这些实施例。

概览

在下一代设备和旧式设备共享第一总线的系统中,提供了允许下一代设备选择性地禁用旧式设备(或者至少旧式设备的总线接口)或使其睡眠的特征以便改善在总线上的性能(例如,增加带宽或传输速率)。第一组设备(例如,旧式设备、兼容i2c的设备、兼容i3c的设备等等)可被配置成根据第一通信协议在第一总线上通信。第二组设备(例如,下一代设备)可被配置成:根据第一通信协议和第二通信协议两者在第一总线上通信。在第一操作模式中,第一组设备和第二组设备可使用第一通信协议在第一总线上并发地通信。在第二操作模式中,第二组设备在第一总线上使用第二通信协议彼此通信,并且第一组设备停止在第一总线上进行操作。例如,来自第二组设备中的至少一个设备可使第一组设备进入禁用模式并且第二组设备使用第二通信协议彼此通信。因此,在第二模式中,第一组设备忽略在总线上的活动(例如,不进行传送并且忽略大部分命令)。

在一个示例中,第一通信协议在总线上提供第一数据吞吐量(例如,带宽或传输速率),而第二通信协议在总线上提供第二数据吞吐量,其中第二数据吞吐量一般大于第一数据吞吐量。在另一示例中,第二通信协议可比第一通信协议更慢(例如,更小的数据吞吐量),但是可选择第二协议以获得使用例如第一通信协议不能接受的某个dc电平的更低功耗。

在第一操作模式期间,第二组设备中的至少一个设备在第一总线上发送禁用命令或睡眠命令,以使第一组设备停止在第一总线上进行操作。

该系统还可包括与第一总线不同的第二总线或副总线,下一代设备(即,第二组设备)和旧式设备(即,第一组设备)也耦合到该第二总线或副总线。为了在第一总线上已发送禁用命令之后唤醒第二组设备,主设备可利用第二总线或副总线向该第二组设备发送启用命令。即,虽然第一组设备可能已被禁止在第一总线上的通信,但他们可仍然保持在第二总线或副总线上操作。在第二总线或副总线上接收到启用命令之际,第一组设备中的每个设备可被配置成激活其去往/来自第一总线的接口并开始在第一总线上(例如,使用第一协议)进行通信。在各种实现中,在第二操作模式中时,第一总线和/或第二总线可用于通知(例如,第二组设备中的)下一代从设备切换回到第一模式。要注意,第二总线或副总线允许重新启用第一组设备的操作而无需功率循环或硬件重置。在一个示例中,第一总线可以是数据总线并且第二总线可以是控制总线。

示例性操作环境

图1是解说了由旧式设备108和110与下一代设备104和106共享的第一总线102和第二总线112的示例的框图。在一个示例中,旧式设备108和110可以是兼容ccie的设备(以下描述)、兼容i2c的设备、和/或兼容i3c的设备,而下一代设备104和106可以是后ccie(post-ccie)设备和/或后i3c设备。兼容ccie的设备(如下所述)可以是由mipi指定的相机控制接口的演进或扩展。此类下一代设备104和106相对于旧式设备108和110可具有在第一总线102上改善的性能或特征(例如,可更快地操作、或包括改善的能力)。

旧式设备108和110以及下一代设备104和106还可共享与第一总线不同的分开的第二总线112。例如,第一总线102可以是控制总线,而第二总线112可以是数据总线。

在一些操作模式中,可能期望在旧式设备108和110与下一代设备104和106之间共享第一总线102(例如,用于后向兼容性)。在此类操作模式中,可以降低的性能水平来操作下一代设备104和106以便容适旧式设备108和110的操作。

在其他操作模式中,可能期望通过禁用旧式设备108和110(或者至少旧式设备至第一总线的总线接口)来改善第一总线上的性能,从而允许下一代设备104和106在第一总线上操作至其全部能力而无需顾虑旧式设备108和110。

主设备可向旧式设备108和110发送禁用命令,以使旧式设备108和110停止在第一总线上进行接收和/或传送。在一种实现中,旧式设备108和110可通过对其进行功率循环来重置以开始在第一总线102上进行通信(例如,监听和/或传送)。然而,由于对旧式设备的这种功率重置是时间/资源密集的,另一种实现提供了经由第二总线112来发送启用命令。在检测到第二总线112上的启用命令之际,旧式设备108和110可重新使用第一总线(例如,根据第一协议在第一总线上进行接收和/或传送)。

在该示例中,第一下一代设备104可用作多模主设备,其能够根据第一协议和/或第二协议两者来控制在第一总线102上的通信。当在第一总线102上作为主设备来操作时,第一下一代设备104可以能够在第一总线102上向旧式设备108和110发送禁用命令以及在第二总线112上向旧式设备108和110发送启用命令。

图2是解说了图1中的设备的另一实现的框图,其中第二总线212可耦合在主设备104与旧式设备中108和110中的一些或全部旧式设备之间。在一个示例中,第一总线102可以是双线总线。

图3解说了共享的第一总线(例如,第一总线102)的两条导线/线可如何用于在第一(ccie)模式中的数据传输。例如,第一总线102可包括第一线(sda)302和第二线(scl)304。在一种实现中,时钟信号可被嵌入在码元转变内(如以下进一步讨论的)。sda线302和scl线304可各自在两个连贯的开始(start)条件306、308和310之间传送来自旧式设备(例如,具有ccie能力的节点/设备)的任何任意数目的码元。

在一个示例中,可在携带20比特信息的12个码元中发送ccie字。在一种实现中,20比特中的十六(16)比特可以用于数据信息,而20比特中的4比特可以用于其他信息(诸如控制信息)。

用于禁用旧式(ccie)设备的示例性办法

图4解说了可用于将旧式(ccie)设备(或者至少其至总线的接口)置于禁用模式(例如,暂停、停止、或杀灭模式以使得旧式设备不会苏醒)中的示例性通用呼叫。即,当旧式设备随后将不会苏醒(除非通过功率重置或重新引导或者不利用第一总线的其他机制)时可使用此类禁用模式。例如,下一代设备104或106(相对于第一总线102作为主设备来进行操作)可在共享的第一总线102上发送告别/禁用命令/呼叫400,这使得旧式设备108和110变得被禁用,直到功率重置发生或者在第二总线112或212上接收到启用命令为止。告别/禁用命令/呼叫400可包括通用呼叫标识符部分402、以及被专门选择成禁用旧式(ccie)设备108和/或110的地址部分404。告别地址部分404被选择成使得没有旧式设备108和/或110无意地将其解释为有效地址。相反,此类告别地址404被旧式设备108和110解释并处理为告别/禁用命令/呼叫。告别地址可以是紧凑且简单的代码以避免在旧式设备处解码时大的硬件开销。

告别/禁用命令/呼叫400可以例如由主设备(例如,作为主设备来操作以在共享的第一总线102上通信的下一代设备104或106)来发送。当接收到/检测到此类告别/禁用命令/呼叫400时,下一代设备可被配置成切换到不同模式(例如,其中下一代设备根据不同的通信协议、传送速度等等来操作的模式)。例如,在接收到告别/禁用命令/呼叫400之际,下一代设备可将它们的输入/输出规范(例如,输入/输出电平、转换速率等等)从第一协议改变到第二协议。

一旦被置于禁用模式中,旧式设备108和/或110就不在共享的第一总线102上进行接收或传送。因此,旧式设备108和/或110可能不在第一总线102上通信,除非它们被重置或以其他方式被启用。对旧式设备进行重置或功率循环是不利的,因为这也意味着对第一总线进行重置,这是耗费时间的。相反,可由下一代设备经由第二总线112发送启用命令/呼叫,以启用、恢复旧式设备、或将旧式设备从禁用模式唤醒。此类启用命令/呼叫可被设计成使接收方旧式设备启用旧式设备108和/或110的通信接口,以使得其能够再次在第一总线102上进行接收和/或传送。此类启用命令或呼叫的出现还可使下一代设备104和/或106切换到允许在共享的第一总线102上与旧式设备108和/或110共存的操作模式(例如,从第二协议切换到第一协议)。在替换的实现中,下一代设备106可能不耦合到第二总线112,并且当主设备104切换回到第一协议时可以接收命令以在第一总线102上切换到第二协议。

下一代设备的示例性操作

图5解说了在下一代设备处操作以禁止旧式设备(例如,兼容ccie的设备)在共享的第一总线上进行操作并且随后经由第二总线重新启用旧式设备的操作的方法。下一代设备可确定何时从第一操作模式(其中该下一代设备在第一总线上与旧式设备共存)改变到第二操作模式,其相对于第一操作模式具有在第一总线上的改善性能(例如,更大的数据吞吐量、增加的带宽、增加的总线速度等等)(502)。下一代设备随后可在第一总线上发送禁用命令/信号以使旧式设备针对第一总线变得被禁用(504)。在禁用模式中,旧式设备可忽略在第一总线上的所有传输(即,不在第一总线上进行接收或传送)。

下一代设备随后可根据第二操作模式在第一总线上传送或接收信号(506)。

在一些实现中,下一代设备可在第一总线上接收启用命令并切换到在第一总线上的第一模式中进行操作(508)。

在一些实例中,下一代设备可回复到在第一总线上的第一操作模式中进行操作并在第二总线上传送启用命令,以使旧式设备开始在第一总线上进行通信(例如,接收或传送)(510)。例如,可由下一代主设备来发送此类启用命令。

旧式设备的示例性操作

图6解说了在旧式设备处操作以在与下一代设备共享的第一总线上操作的方法。旧式设备可在第一总线和第二总线上耦合到一个或多个下一代设备。

旧式设备可在与一个或多个下一代设备共享的第一总线上操作,其中第一总线可被配置成在第一操作模式(其中旧式设备和下一代设备在第一总线上共存)与其中仅下一代设备在第一总线上操作的第二操作模式(其相对于第一操作模式具有改善的性能(例如,更大的数据吞吐量、增加的带宽、增加的总线速度等等))之间动态地切换(602)。旧式设备可在第一总线上接收禁用命令(例如,从控制第一总线的主设备)以使旧式设备禁用其在第一总线上的操作(604)。

即使当旧式设备已禁用其在第一总线上的操作时,该旧式设备继续在也与一个或多个下一代设备共享的第二总线上操作(例如,通信)(606)。随后,旧式设备可在第二总线上接收启用命令并恢复在第一总线上的操作(608)。

下一代设备和旧式设备在共享总线上的示例性操作

图7解说了允许下一代设备禁用和重新启用共享相同的第一总线的旧式设备的方法。第一组设备(例如,旧式设备)可耦合到第一总线,该第一组设备被配置成根据第一通信协议在总线上通信(702)。第二组设备(例如,下一代设备)可耦合到第一总线,该第二组设备被配置成:根据第一通信协议和第二通信协议两者在第一总线上通信(704)。在第一操作模式中,第一组设备和第二组设备可使用第一通信协议在总线上并发地通信(706)。在第二操作模式中,第二组设备在总线上使用第二通信协议彼此通信,并且第一组设备停止在第一总线上进行操作(例如,停止进行接收和/或传送)(708)。

即,在第二操作模式期间,第一组设备不受总线活动的影响(例如,忽略在总线上的所有或大部分传输和/或不在总线上进行传送)。例如,在进入第二操作模式之前或与之并发,来自第二组设备中的至少一个设备可使第一组设备进入睡眠模式或禁用模式。例如,在第一操作模式期间可在第一总线上从第二组设备中的至少一个设备发送禁用命令,以使第一组设备停止在第一总线上进行操作(710)。

第一通信协议可在第一总线上提供第一数据吞吐量,而第二通信协议在第一总线上提供第二数据吞吐量,其中第二数据吞吐量大于第一数据吞吐量。

在一个示例中,第一总线可包括两条线。在第一操作模式中,信号可在这两条线上被传送并且时钟信号可被嵌入在信号内的多个码元的码元到码元转变中。

在另一示例中,第一总线可包括多条线,并且所使用的线的数目可取决于第一总线的操作模式而被动态地分配/调整。例如,第一总线可在第一模式中使用n条线并且在第二模式中使用m条线,其中n和m是不同的整数。替换地,第一总线可在第一模式中使用n条线并且在第二模式中使用m条线,其中n和m是相同的整数,但是在第一模式和第二模式中使用不同数目的逻辑通道。

在又一示例中,第一总线可具有第一模式和第二模式,在该第一模式中两条线(n=2)用于传输(例如,兼容ccie的传输),在该第二模式中三条线(m=3)用于传输(例如,三阶乘(3!)多导线多电平差分传输)。

在又一示例中,第一总线可在第一模式和第二模式中使用相同数目的线,但在每种模式中具有不同的编码。例如,第一总线可在第一模式和第二模式中操作,在该第一模式中四条线(n=4)用于传输(例如,4导线单端多导线(每码元2^4-1个状态)),在该第二模式中两对差分线(m=2x2)用于传输(例如,在两条线上的第一差分对和在另外两条线上的第二差分对)。

在又一示例中,第一总线可在第一模式和第二模式中操作,在该第一模式中两对差分线(n=2x2)用于根据第一编码的传输(例如,兼容ccie的传输的两条通道),在该第二模式中四条线(m=4)用于传输(例如,四阶乘(4!)多导线多电平差分传输)。

在又一示例中,第一总线可在第一模式和第二模式中使用相同数目的线,但用于不同的目的。例如,第一总线可在第一模式中使用三(3)条线来传送数据(例如,3导线单端传输),并且在第二模式中可使用两条线来传送数据(例如,一对线用于差分传输)加上单线用于边带信令(例如,旧式设备命令线以用于当第一总线在第二模式中操作时禁用旧式设备)。

在第一操作模式期间,第二组设备中的至少一个设备在第一总线上发送禁用命令,以使第一组设备停止在第一总线上进行操作(或进行通信)。

禁用命令防止第一组设备中的每个设备在第一总线上进行通信,直到第一组设备的上电重置或硬件重置或者经由与第一总线不同的通道向第一组设备发送启用命令为止。当在禁用模式中时,旧式设备可禁止在第一总线上进行接收和/或传送的总线接口操作。在另一示例中,禁用命令可禁用第一组设备内的每个设备的操作。

第一组设备中的每个设备可包括接收机设备,该接收机设备能够仅使用被嵌入在根据第一通信协议来传送的信号内的时钟信号来至少部分地解码总线上的信号。接收机设备可在第一总线上接收到禁用命令之际进入禁用模式中。接收机设备可在第二总线上接收到启用命令之际恢复在第一总线上的操作。例如,可在第二总线上从第二组设备中的至少一个设备发送启用命令以使第一组设备恢复在第一总线上进行操作(712)。在各个示例中,第二总线可以是在第二组设备中的至少一个设备与第一组设备中的一个或多个设备之间的与第一总线不同的一个或多个通道或通信线。在一些实现中,第二总线可根据与在第一总线上所使用的第一协议或第二协议不同的协议来操作。

第一通信协议可以是例如相机控制接口扩展(ccie)协议或i2c协议中的一者。

用于旧式(ccie)设备的示例性转码技术

图8是解说了用于在发射机处将数据比特转码成顺序码元以在这些顺序码元内嵌入时钟信号的示例性方法的框图。在发射机802处,数据比特序列804被转换成三进制(基数为3)数(例如,其中三进制数的每个数位被称为“转变数”),并且这些三进制数被转换成在包括时钟线scl812和数据线sda814的控制数据总线上传送的顺序码元。

在一个示例中,原始的20比特二进制数据804被输入到比特到转变数转换器块808以转换成12位三进制数809。12位三进制数的每一数位可以表示“转变数”。转变数的两个连贯数位可以是相同的数位值。转变数的每一数位在转变到码元块810处被转换成顺序码元,以使得没有两个连贯的顺序码元具有相同值。由于在每个顺序码元处保证有转变(例如,改变),因而此类顺序码元转变可用于嵌入时钟信号。每个顺序码元816随后在双导线物理链路(例如,包括scl线812和sda线814的i2c控制数据总线)上被发送。

在接收机820处,该过程被反向以将顺序码元转换回比特,并且在该过程中,从顺序码元转变中提取时钟信号。接收机820在双导线物理链路(例如,包括scl线824和sda线826的i2c控制数据总线)上接收顺序码元822。所接收的顺序码元822被输入到时钟数据恢复(cdr)块828中以恢复时钟定时并采样顺序码元(s)。码元到转变数转换器块830随后将每个顺序码元转换成转变数,其中每个转变数表示三进制数的一数位。随后,转变数到比特转换器832转换十二(12)个转变数(即,三进制数)以从12位三进制数恢复二十(20)比特原始数据。

本文所解说的技术可被用来增加控制数据总线102(图1)和208(图2)的链路速率,以超出i2c标准控制数据总线提供的链路速率,并且于此被称为ccie模式。在一个示例中,耦合到控制数据总线102和208的主节点/主设备和/或从节点/从设备可以实现在顺序码元改变/转变内嵌入时钟信号的发射机和/或接收机(如图10中所解说的),以便在相同控制数据总线上达成比使用标准i2c控制数据总线可能达成的更高比特率。

图9解说了在发射机处902从比特到转变数以及随后在接收机904处从转变数到比特的示例性转换。该示例解说了使用12个转变码元的双导线系统的传输。发射机902将二进制信息(比特)馈送到“比特到12×t”转换器906中以生成12个码元转变数t0到t11。接收机904接收12个码元转变数(t0到t11),这些码元转变数被馈送到“12×t到比特”转换器908以取回二进制信息(比特)。如果每一个t(t0到t11)存在r个可能的码元转变状态,则12个转变可发送r12个不同状态。对于双导线总线,r=22-1。因此,转变t0…t11包含可具有(22-1)12个不同状态的数据。因此,r=4-1=3,并且状态数目=(4-1)^12=531441。

在使用12个码元转变数的双导线系统的该示例中,可以假设每一个t的可能码元转变r是3(=22-1)。若组中码元的数目为12,则可使用12位三进制数(基数为3的数):t11、t10…t2、t1、t0,其中每个ti:0、1、2。例如,对于{t11,t10,…t2,t1,t0}={2,1,0,0,1,1,0,1,0,1,2,1},三进制数是:

2100_1101_01213(三进制数)

=2×311+1×310+0×39+0×38

+1×37+1×36+0×35+1×34

+0×33+1×32+2×31+1×30

=416356(0x65a64)

以此方式,12个转变数可被转换成一个数字。注意,三进制数2100_1101_01213可被用作转变数(例如在图8中)以使得每一个整数可以被映射到顺序码元,反之亦然。在以逆序发送2100_1101_01213时,ts是以幂的降序来发送的,即,t11是要乘以311的数位,所以它是第11次幂,依此类推。

图8中针对双导线系统和12个码元转变数所解说的示例可被一般化为n导线系统和m个码元转变数。如果每一个t(t0到tm-1)有r个可能的码元转变状态,则m个转变可发送rm个不同状态(即,r=2n-1)。因此,转变t0…tm-1包含可具有(2n-1)m个不同状态的数据。

图10解说了转变数1002与顺序码元1004之间的示例性转换。三进制数(基数为3的数)的个体数位(也被称为转变数)可具有三(3)个可能数位或状态0、1或2之一。虽然在三进制数的两个连贯数位中可能出现相同值,但没有任何两个连贯顺序码元具有相同值。转变数与顺序码元之间的转换保证:即使连贯的转变数相同,顺序码元也总是改变(从顺序码元到顺序码元)。

在一个示例中,转换函数将转变数(例如,三进制数的数位)加1再与先前的原始顺序码元值相加。如果该加法得到大于3的数,则其从0翻转,随后该结果变成当前顺序码元的状态号或值。

在第一循环1006中,当第一转变数(ta)1被输入时先前顺序码元(ps)是1,所以将第一转变数1加1再与先前顺序码元(ps)相加,并且所得的当前顺序码元(cs)3变成被发送给物理链路的当前顺序码元。

在第二(下一)循环1008中,第二转变数(tb)0被输入,并且将第二转变数0加1再与先前顺序码元(ps)3相加。由于该加法的结果(0+1+3)等于4,大于3,因此翻转数0变成当前顺序码元(cs)。

在第三循环1010中,第三转变数(tc)0被输入。转换逻辑将第三转变数0加1再与先前顺序码元(ps)0相加以生成当前顺序码元(cs)1。

在第四循环1012中,第四转变数(td)2被输入。转换逻辑将第四转变数(td)2加上1再与先前码元(ps)1相加以生成当前码顺序元(cs)0(由于该加法的结果4大于3,因此翻转数0变成当前顺序码元)。

因此,即使两个连贯三进制数位tb和tc具有相同数,该转换也保证了两个连贯顺序码元具有不同状态值。由于该转换,码元序列1004中的保证顺序码元改变或转变可用于嵌入时钟信号,从而释放i2c控制数据总线中的时钟线scl以供数据传输。

注意,虽然转变数到顺序数转换的该示例增加保证的数字“1”以在连贯的顺序码元之间递增,但是在其他实现中可以使用其他值以保证顺序码元之间的转变或改变。

再次参照图8,在接收机820处,图10中所解说的过程被反向以将顺序码元转换回比特,并且在该过程中,从码元转变中提取时钟信号。接收机820在双导线物理链路(例如,包括scl线824和sda线826的i2c总线)上接收顺序码元822。所接收的顺序码元422被输入到时钟数据恢复(cdr)块828中以恢复时钟定时并采样经转码码元(s)。码元到转变数转换器块830随后将每个顺序码元转换成转变数,即,该转变数构成了三进制数中的一数位。随后,转变数到比特转换器32转换十二(12)个转变数(即,三进制数)以从12位三进制数中恢复20比特原始数据。

图11解说了顺序码元与转变数之间的转换。该转换将从先前顺序码元号(ps)到当前顺序码元(cs)的每一转变映射成转变数(t)。在发射机设备处,转变数被转换成顺序码元。由于正在使用相对转换方案,因此转变数保证了没有两个连贯的顺序码元1104将会是相同的。

在针对双导线系统的一个示例中,存在被指派给4个顺序码元s0、s1、s2和s3的4个原始码元。对于这4个顺序码元,表1102解说了可如何在先前顺序码元(ps)和基于当前转变数(t)的临时转变数ttmp的基础上来指派当前顺序码元(cs)。

在该示例中,转变数cs可根据下式来指派:

cs=ps+ttmp

其中ttmp=t==0?3:t。换言之,如果当前转变数t等于0,则临时转变数ttmp变成3,否则ttmp变成等于t。并且一旦计算出ttmp,cs就被设置成ps加ttmp。此外,在接收机端,逻辑反转以恢复t,ttmp=cs+4–ps并且t=ttmp=3?0:ttmp。

图12解说了将三进制数(基数为3的数)转换成二进制数的一般示例,其中{t11、t10...t2、t1、t0}中的每个t是码元转变数。

图13解说了用于将二进制数(比特)转换成12位三进制数(基数为3的数)的示例方法。每一数位可如下计算:将来自更高数位计算中的余数(取模运算的结果)除以3的该数位号次幂,丢弃小数点后面的数字。

图14解说了图13的除法和取模运算的一种可能实现的示例,其可以由任何商业合成工具来合成。

示例性旧式设备及其操作

图15是解说了示例性旧式设备1502的框图。在一个示例中,旧式设备1502可以是兼容ccie的设备。旧式设备1502可包括控制电路/逻辑1504,该控制电路/逻辑1504耦合到第一通信电路1506和第二通信电路1507。第一通信电路1506可用于耦合到共享的第一总线并且可被配置成根据第一通信协议在第一总线上通信。在一个示例中,第一通信电路1506可包括或定义发射机/接收机电路1506,其实现转码电路/模块1514、时钟恢复电路/模块1516、和/或传送/接收缓冲器1518。转码电路/模块1514可执行图8-14中所解说的一个或多个功能,以将比特转换成码元以在第一总线上传输并在第一总线上接收到码元之际将接收到的码元转变成比特。该转码还可在码元到码元转变内有效地嵌入时钟。时钟恢复电路/模块1516可用于从码元到码元转变中提取此类嵌入的时钟。传送/接收缓冲器1518可用于缓冲比特以用于传输和/或在接收期间缓冲比特。

第二通信电路1507可用于耦合到第二总线并且可被配置成根据第三通信协议在第二总线上通信。

控制电路/逻辑1504可包括或实现命令监视电路/模块1508、禁用检测电路/模块1510、和/或启用检测电路/模块1512。控制电路/逻辑1504可被适配成:将通信电路1506配置成使用第一通信协议在第一总线上通信。命令监视电路/模块1508可监视第一总线以发现禁用命令。如果在第一总线上检测到禁用命令,则禁用电路/模块1510可完全或部分地禁用第一通信电路1506的操作以忽略在第一总线上的活动。

在一个示例中,总线可以是双线总线。在第一通信协议中,信号可在两条线上被传送,并且时钟信号可被嵌入在信号内的多个码元的码元到码元转变中。

禁用命令可使旧式设备1502停止在第一总线上进行操作(例如,停止在第一总线上进行传送并停止在第一总线上进行接收)。例如,禁用命令可防止旧式设备1502在第一总线上进行通信,直到旧式设备的上电重置或硬件重置或者从第二总线接收到启用命令为止。

图16解说了可由旧式设备实现的示例性方法。第一通信电路可被配置成使用第一通信协议在第一总线上通信(1602)。旧式设备可监视第一总线以发现禁用命令(1604)。旧式设备可在第一总线上从第二设备接收禁用命令,该第二设备能够在使用第一通信协议的第一操作模式中和使用第二通信协议的第二操作模式中进行操作(1606)。在检测到禁用命令之际第一通信电路可被重配置成忽略在第一总线上的活动(1608)。

第一通信协议可在第一总线上提供第一数据吞吐量,而第二通信协议在第一总线上提供第二数据吞吐量,其中第二数据吞吐量大于第一数据吞吐量。

第一总线可包括两条线,并且在第一操作模式中,信号在这两条线上被传送并且时钟信号被嵌入在信号内的多个码元的码元到码元转变中。

可在第一总线被切换到根据旧式设备不支持的第二通信协议来操作之前或与之并发地接收禁用命令。

虽然旧式设备可被禁止使用第一总线,但它可继续操作和/或监视第二总线(或通道)以发现启用命令(1610)。旧式设备可在第二总线上接收此类启用命令(1612),其使该旧式设备将第一通信电路重配置成恢复使用第一协议在第一总线上的活动(1614)。

在第一示例中,第一总线包括多条线,其中n条线被分配用于在第一模式中的传输,并且m条线被分配用于在第二模式中的传输,其中n和m是大于或等于二(2)的整数。

在一种实现中,n和m可以是不同的整数。在另一实现中,n和m可以是相同的整数,并且在第一模式和第二模式中定义了不同数目的逻辑传输通道。

在第二示例中,在第一模式中n=2以支持兼容ccie的传输,并且在第二模式中m=3以支持三阶乘(3!)多导线多电平差分传输。

在第三示例中,在第一模式中n=4以支持4导线单端多导线传输,并且在第二模式中m=2x2以支持在使用两条线的第一差分对和使用另外两条线的第二差分对上的传输。

在第四示例中,在第一模式中n=2x2以支持两条差分导线对的兼容ccie的传输,并且在第二模式中m=4以支持四阶乘(4!)多导线多电平差分传输。

在第五示例中,n=m=3,在第一模式中使用3导线单端传输,并且在第二模式中,一对线用于差分传输并且剩余的单线用于边带信令。

示例性下一代设备及其操作

图17是解说了示例性下一代设备1702的框图。在各个示例中,下一代设备1702可作为从设备或主设备来操作。在一个示例中,下一代设备1702可以是兼容ccie的设备。下一代设备1702可包括控制电路/逻辑1704,该控制电路/逻辑1704耦合到第一通信电路1706和可任选地第二通信电路1707。例如,当下一代设备1702作为主设备来操作时,其可包括或激活第二通信电路1707以便重新启用先前已被禁用的旧式设备(即,在第二总线上)。

第一通信电路1706可用于耦合到与其他设备共享的第一总线。第一通信电路1706可被配置成根据第一通信协议或第二通信协议在第一总线上通信。在一个示例中,为了使下一代设备根据其中使用第一通信协议的第一模式来操作,第一通信电路1706可包括或定义发射机/接收机电路1706,该发射机/接收机电路1706实现转码电路/模块1714、时钟恢复电路/模块1716、和/或传送/接收缓冲器1718。转码电路/模块1714可执行图8-14中所解说的一个或多个功能,以将比特转换成码元以在第一总线上传输并在使用第一通信协议时在第一总线上接收到码元之际将接收到的码元转变成比特。该转码还可在码元到码元转变内有效地嵌入时钟。时钟恢复电路/模块1716可用于从码元到码元转变中提取此类嵌入的时钟。传送/接收缓冲器1718可用于缓冲比特以用于传输和/或在接收期间缓冲比特。

控制电路1704可包括或实现第一模式电路/模块1708,其被适配成:将第一通信电路1706配置成在其中第一通信协议被用于第一总线上的第一模式中操作。

为了在使用第二协议的第二模式中操作,当下一代设备作为主设备来操作时,控制电路1704可包括或实现禁用电路/模块1710,该禁用电路/模块1710在第一总线上发送禁用命令以指示不支持第二通信协议的其他设备忽略在第一总线上的活动。控制电路1704可包括或实现第二模式电路/模块,其被适配成:将第一通信电路重配置成在其中第二通信协议被用于第一总线上的第二模式中操作。在第二操作模式中,第一通信电路1706可禁用例如转码电路/模块1714和/或时钟恢复电路/模块1716的操作。

当下一代设备1702作为主设备来操作时,控制电路1704可包括或实现启用电路/模块,该启用电路/模块在第二通信电路上(例如,通过第二总线)发送启用命令以指示其他设备(例如,旧式设备)恢复在第一总线上的活动。第一通信电路1706可被重配置成在其中第一通信协议被用于第一总线上的第一模式中操作。

在一个示例中,第一通信协议在总线上提供第一数据吞吐量/速率,而第二通信协议在第一总线上提供第二数据吞吐量/速率,其中第二数据吞吐量/速率大于第一数据吞吐量/速率。

第一总线可包括或由两条线定义,其中,第一操作模式中,信号在这两条线上被传送并且时钟信号被嵌入在信号内的多个码元的码元到码元转变中。

禁用命令可防止其他设备在第一总线上进行通信,直到其他设备中的每个设备的上电重置或硬件重置或者以其它方式在其他设备上实现启用命令为止。可在设备进入第二模式之前或与之并发地发送禁用命令。

第一通信电路1706可包括接收机设备,该接收机设备能够仅使用被嵌入在根据第一通信协议来传送的信号内的时钟信号来至少部分地解码第一总线上的信号。

在第一示例中,第一总线包括多条线,其中n条线被分配用于在第一模式中的传输,并且m条线被分配用于在第二模式中的传输,其中n和m是大于或等于二(2)的整数。

在一种实现中,n和m可以是不同的整数。在另一实现中,n和m可以是相同的整数,并且在第一模式和第二模式中定义了不同数目的逻辑传输通道。

在第二示例中,在第一模式中n=2以支持兼容ccie的传输,并且在第二模式中m=3以支持三阶乘(3!)多导线多电平差分传输。

在第三示例中,在第一模式中n=4以支持4导线单端多导线传输,并且在第二模式中m=2x2以支持在使用两条线的第一差分对和使用另外两条线的第二差分对上的传输。

在第四示例中,在第一模式中n=2x2以支持两个差分导线对的兼容ccie的传输,并且在第二模式中m=4以支持四阶乘(4!)多导线多电平差分传输。

在第五示例中,n=m=3,在第一模式中使用3导线单端传输,并且在第二模式中,一对线用于差分传输并且剩余的单线用于边带信令。

图18解说了可由下一代设备在作为主设备来操作时实现的示例性方法。第一通信电路可被配置成在其中第一通信协议被用于第一总线上的第一模式中操作(1802)。下一代设备可在第一总线上发送禁用命令以指示不支持第二通信协议的其他设备忽略在第一总线上的活动(1804)。随后,第一通信电路可被重配置成在其中第二通信协议被用于第一总线上的第二模式中操作(1806)。

随后,下一代设备可将第一通信电路重配置成在其中第一通信协议被用于第一总线上的第一模式中操作(1808)。下一代设备随后在第二总线上发送启用命令以指示其他设备恢复使用第一协议在第一总线上的活动(1810)。

总线可包括两条线,并且在第一操作模式中,信号在这两条线上被传送并且时钟信号被嵌入在信号内的多个码元的码元到码元转变中。

在一个示例中,可在设备进入第二模式之前或与之并发地发送睡眠命令或禁用命令。

图19解说了可由下一代设备在共享总线上作为从设备来操作时实现的示例性方法。在一些示例中,该下一代设备可仅仅耦合到共享的第一总线。第一通信电路可被配置成在其中第一通信协议被用于第一总线上的第一模式中操作(1902)。

下一代设备随后可接收或检测关于第一总线要在其中第二通信协议被用于第一总线上的第二模式中操作的指示(1904)。因此,第一通信电路可被重配置成在其中第二通信协议被用于第一总线上的第二模式中操作(1906)。

下一代设备随后可接收或检测关于第一总线要在其中第二通信协议被用于第一总线上的第二模式中操作的指示(1908)。

因此,下一代设备可将第一通信电路重配置成在其中第一通信协议被用于第一总线上和/或可任选地第二总线上的第一模式中操作(1910)。

附图中解说的组件、步骤、特征、和/或功能之中的一个或多个可以被重新编排和/或组合成单个组件、步骤、特征、或功能,或可以实施在数个组件、步骤或功能中。也可添加附加的元件、组件、步骤、和/或功能而不会脱离本文中所公开的新颖性特征。附图中所解说的装置、设备和/或组件可以被配置成执行在这些附图中所描述的方法、特征、或步骤中的一个或多个。本文中描述的新颖算法还可以高效地实现在软件中和/或嵌入到硬件中。

另外,还应注意,各实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能把各操作描述为顺序过程,但是这些操作中的许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。过程在其操作完成时终止。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。

此外,存储介质可以代表用于存储数据的一个或多个设备,包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光学存储介质、闪存设备、和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括但不限于:便携或固定的存储设备、光学存储设备、无线信道以及能够存储、包含、或承载指令和/或数据的各种其它介质。

此外,诸实施例可以由硬件、软件、固件、中间件、微代码、或其任何组合来实现。当在软件、固件、中间件、或微码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质之类的机器可读介质或其它存储中。处理器可以执行这些必要的任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或是指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段被传递、转发、或传输。

结合本文中公开的示例描述的各个解说性逻辑块、模块、电路、元件和/或组件可用设计成执行本文中描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以实现为计算组件的组合,例如dsp与微处理器的组合、数个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的示例描述的方法或算法可直接在硬件中、在能由处理器执行的软件模块中、或在这两者的组合中以处理单元、编程指令、或其他指示的形式实施,并且可包含在单个设备中或跨多个设备分布。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。存储介质可耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。

本领域技术人员将进一步领会,结合本文所公开的各实施例描述的各种说明性逻辑框、模块、电路和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。

本文中所描述的本发明的各种特征可实现在不同系统中而不会脱离本发明。应注意,前述实施例仅是示例,且不应被解释成限定本发明。对各实施例的描述旨在是解说性的,而非限定权利要求的范围。由此,本发明的教导可以现成地应用于其他类型的装置,并且许多替换、修改和变形对于本领域技术人员将是显而易见的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1