用于数据通信的方法和装置与流程

文档序号:15163827发布日期:2018-08-14 17:11阅读:272来源:国知局

本专利申请要求2013年6月12日提交的题为“Increasing Data Transfer Rate Over I2C Bus(提高I2C总线上的数据传输速率)”的临时申请No.61/834,151、2013年6月19日提交的题为“Camera Control Interface Extension Bus(相机控制接口扩展总线)”的临时申请No.61/836,777、2013年10月2日提交的题为“Simplifying Symbol Transcoding And Transmission Over CCIe Bus(简化CCIe总线上的码元转码和传输)”的临时申请No.61/886,002、以及2014年6月11日提交的题为“Camera Control Interface Extension Bus(相机控制接口扩展总线)”的非临时申请No.14/302,359的优先权,这些申请均被转让给本申请受让人并且由此通过援引明确纳入于此。

背景

领域

本公开一般涉及主机处理器与外围设备(诸如相机)之间的接口,并且更具体地涉及其中时钟信号被嵌入在多导线共享总线上传输的码元中的多模操作。



背景技术:

集成电路间串行总线(也可被称为I2C总线或I2C总线)是旨在用于将低速外围设备连接至处理器的串行单端计算机总线。I2C总线是多主控总线,其中每个设备可以针对I2C总线上传送的不同消息充当主设备和从设备。I2C总线可以仅使用两个双向开漏(open-drain)连接器(包括串行数据线(SDA)和串行时钟线(SCL))来传送数据。这些连接器通常包括由上拉电阻器终接的信号导线。

管控I2C总线操作的协议定义了基本类型的消息,其中每种消息始于START(开始)并结束于STOP(停止)。I2C总线使用7位寻址并且定义两种类型的节点:主节点和从节点。主节点是生成时钟并发起与从节点的通信的节点。从节点是接收时钟并在被主节点寻址时进行响应的节点。I2C总线是多主控总线,这意味着可存在任何数目的主节点。另外,主角色和从角色可以在消息之间(即,在STOP被发送之后)改变。

I2C总线的原始实现在标准模式操作中支持最高达每秒100千比特(100kbps)的数据信令速率,其中较新近的标准在快速模式操作中支持400kbps的速度,并且在快速模式+操作中支持每秒1兆比特(Mbps)的速度。然而,在一些系统和装置中,需要甚至更高带宽来支持某些类型的设备之间的通信。例如,移动通信设备(诸如蜂窝电话)可以采用消耗显著带宽的多个设备(诸如相机、显示器和各种通信接口)。当使用常规的I2C协议以维持与传统设备的兼容性时,可能难以获得较高带宽。

存在着在被配置为连接移动设备内的主组件和从组件的总线的串行接口上提供优化通信的现行需要。

概述

以下给出本公开的一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是本公开的所有构想到的特征的详尽综览,并且既非旨在标识出本公开的所有方面的关键性或决定性要素亦非试图界定本公开的任何或所有方面的范围。其唯一目的是以简化形式给出本公开的一个或多个方面的一些概念作为稍后给出的更详细描述之序言。

本文公开的实施例提供了可以改善使用串行总线的通信接口的性能的系统、方法和装置,该串行总线支持常规的I2C总线操作和使用公共I2C总线的增强型通信接口两者。相机控制接口(CCI)可以使用配置为连接主设备以及一个或多个从设备的总线的双导线、双向、半双工串行接口来部署,其中CCI操作与I2C总线操作兼容。在本文公开的一个示例中,CCI扩展(CCIe)设备可以使用I2C总线来部署以提供双导线、双向、半双工串行接口。CCIe设备可被配置为总线主设备或从设备。CCIe设备可以与I2C总线上的I2C设备兼容或共存,以使得即使在I2C设备正在监视I2C总线时,CCIe设备也可以使用CCIe协议和信令规范来与一个或多个其他CCIe设备通信。本文公开的一个示例提供了能够在CCIe和I2C设备两者部署在相同总线上时用单个主设备来处置总线上的多个从设备的接口。在后一示例中,两个或更多个CCIe设备可以使用CCIe协议来通信,并且与I2C设备的任何通信事务使用I2C总线协议来进行。

在本公开的一个方面,本公开提供了一种能在传送设备上操作的数据通信方法。该方法包括从一组比特生成转变数,将该转变数转换成码元序列,当双导线串行总线在第一操作模式中操作时在该双导线串行总线上传送该码元序列。定时信息可以编码在该码元序列中的码元之间的转变中。每个转变可以导致双导线串行总线的信令状态的改变。该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上进行通信的设备忽略。该码元序列可以包括12个码元。

在另一方面,转变数包括多位三进制数。该三进制数例如可具有12位。通过向转码器提供该三进制数,转变数可被转换成码元序列。在一个示例中,该三进制数的最高有效位被首先提供给转码器,该三进制数的最低有效位被最后提供给转码器,并且最高有效位与最低有效位之间的中间位以有效性降序被提供给转码器。在另一示例中,该三进制数的最高有效位被最后提供给转码器。可以为双导线串行总线定义4个信令状态。该三进制数的每一位可以从三个可用码元之一中选择要在双导线串行总线上传送的下一码元。这三个可用码元中的每一者不同于正在双导线串行总线上传送的当前码元。编码在码元序列中的定时信息使接收机能够从该码元序列生成接收时钟。

在另一方面,双导线串行总线可以是当该双导线串行总线在第一操作模式中操作时支持使用CCIe协议的通信的多用途总线。双导线串行总线可以在第二操作模式中支持使用I2C协议的通信。通过在第一操作模式中在双导线串行总线上传送的码元序列之间提供I2C开始状况,可以在该双导线串行总线上传送该码元序列。该开始状况可以导致配置成用于使用I2C协议进行通信的设备中的接收逻辑复位。码元序列可以在双导线串行总线上传送了第一I2C开始状况之后在双导线串行总线上传送。第二I2C开始状况可以在双导线串行总线上跟随在该码元序列之后。监视双导线串行总线的I2C接收机可以在第一I2C开始状况之后且在第二I2C开始状况之前在双导线串行总线的SCL上感知最大6个时钟循环。

在本公开的一个方面,一种装置包括总线接口和耦合至该总线接口的处理电路,该总线接口适配成将该装置耦合至能操作用于与多个其他装置和设备共享的双导线串行总线。该处理电路可被配置成从一组比特生成转变数,将该转变数转换成码元序列,以及当双导线串行总线在第一操作模式中操作时在该双导线串行总线上传送该码元序列。定时信息可以编码在该码元序列中的码元之间的转变中。每个转变导致双导线串行总线的信令状态的改变。该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上通信的设备忽略。

在本公开的一个方面,一种能在数据通信接收设备上操作的方法包括:当双导线串行总线在第一操作模式中操作时从该双导线串行总线的信令状态的转变推导接收时钟,使用该接收时钟来接收根据第一操作模式在双导线串行总线上传送的码元序列,从该码元序列生成转变数,以及从该转变数解码数据。双导线串行总线的信令状态的转变可以对应于码元序列中的码元之间的转变。该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上通信的设备忽略。该码元序列可以包括12个码元。

在另一方面,转变数可以具有多个位,其中每一位表示码元序列中的一对连贯码元之间的转变。转变数可以包括12位三进制数。可以为双导线串行总线定义4个信令状态。三进制数的每一位可以表示双导线串行总线上的一对连贯信令状态之间的关系。码元序列中的每一个码元可以是由双导线串行总线的信令状态定义的4个码元之一。三进制数的每一位可以定义码元序列中的一对连贯码元之间的关系。

在另一方面,双导线串行总线可以是当该双导线串行总线在第一操作模式中操作时支持CCIe通信的多用途总线。双导线串行总线可以在第二操作模式中支持I2C通信。通过确定双导线串行总线上的I2C开始状况的出现并且根据由接收时钟定义的定时来从双导线串行总线接收12个码元,可以从双导线串行总线接收该码元序列。

在本公开的一个方面,一种装置包括总线接口、时钟恢复电路和耦合至该总线接口的处理电路,该总线接口适配成将该装置耦合至能操作用于与多个其他设备共享的双导线串行总线,该时钟恢复电路配置成从双导线串行总线的信令状态的转变推导接收时钟。该处理电路可被配置成当双导线串行总线在第一操作模式中操作时从该双导线串行总线的信令状态的转变推导接收时钟,使用该接收时钟来接收根据第一操作模式在双导线串行总线上传送的码元序列,从该码元序列生成转变数,以及从该转变数解码数据。双导线串行总线的信令状态的转变可以对应于码元序列中的码元之间的转变。转变数可以具有多个位,其中每一位表示码元序列中的一对连贯码元之间的转变。该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上通信的设备忽略。

附图简述

图1描绘了在各IC设备之间采用数据链路的装置,该数据链路根据多个可用标准之一来选择性地操作。

图2解说了具有基带处理器和图像传感器并且实现图像数据总线和多模控制数据总线的设备。

图3解说了支持共存的I2C模式设备和CCIe模式设备的多用途总线或公共串行总线。

图4解说了用于在IC设备之间采用数据链路的装置的系统架构。

图5解说了根据本文公开的某些方面的发射机和接收机的某些方面。

图6解说了在首先传送码元流中的最低有效码元时配置成将二进制比特转换成三进制数的逻辑。

图7解说了在首先传送码元流中的最高有效码元时配置成将二进制比特转换成三进制数的逻辑。

图8解说了可被用于将12位三进制数转换成多个比特的电路系统的示例。

图9解说了根据本文公开的某些方面的用于转码数据的编码方案。

图10解说了传统I2C协议的典型I2C比特传输循环。

图11解说了常规I2C总线上的SDA和SCL信号导线之间的关系。

图12解说了在连接至共享总线的设备包括I2C设备时在CCIe模式中在该总线上进行数据传输的示例。

图13解说了在总线430上的设备不包括活跃I2C设备时CCIe总线上的数据传输。

图14解说了码元的生成以供在配置成用于CCIe操作模式的串行总线上传送。

图15解说了I2C一个字节写数据操作。

图16解说了开始状况对传统I2C从节点的影响的一个示例。

图17解说了能在同一个串行总线上在多个模式中进行通信的多个设备的系统。

图18解说了与CCIe协议的示例相关联的某些定时和信令方面,该CCIe协议能够在共享串行总线上操作并且还支持传统I2C定时和信令。

图19解说了在CCIe信号由用于I2C Fm+模式的同一个物理驱动器驱动时具有Fm+能力的I2C总线上的CCIe码元定时的一个示例。

图20解说了可由耦合至I2C兼容总线的CCIe设备使用的开漏驱动器的示例。

图21是解说采用可根据本文公开的某些方面来适配的处理系统的装置的示例的框图。

图22是根据本文公开的一个或多个方面的用于在CCIe总线上传送信息的方法的流程图。

图23是解说根据本文公开的一个或多个方面的在CCIe总线上传达信息的传送装置的硬件实现的示例的示图。

图24是根据本文公开的一个或多个方面的用于从CCIe总线接收信息的方法的流程图。

图25是解说根据本文公开的一个或多个方面的解码在CCIe总线上传送的信息的接收装置的硬件实现的示例的示图。

图26是根据本文公开的一个或多个方面的用于操作采用总线的系统或设备的方法的流程图。

详细描述

现在参照附图描述各个方面。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或多个方面的透彻理解。然而,明显的是,没有这些具体细节也可实践此种(类)方面。

如本申请中所使用的,术语“组件”、“模块”、“系统”及类似术语旨在包括计算机相关实体,诸如但并不限于硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,且组件可以本地化在一台计算机上和/或分布在两台或更多台计算机之间。另外,这些组件能从其上存储着各种数据结构的各种计算机可读介质来执行。这些组件可藉由本地和/或远程进程来通信,诸如根据具有一个或多个数据分组的信号来通信,这样的数据分组诸如是来自藉由该信号与本地系统、分布式系统中另一组件交互的、和/或跨诸如因特网之类的网络与其他系统交互的一个组件的数据。

此外,术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“X采用A或B”旨在表示任何自然的可兼排列。即,短语“X采用A或B”得到以下任何实例的满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。

本发明的某些方面可适用于被部署在电子设备之间的通信链路,这些电子设备可包括装置(诸如电话、移动计算设备、电器、汽车电子设备、航空电子系统等)的子组件。图1描绘了可采用IC设备之间的通信链路的装置。在一个示例中,装置100可包括无线通信设备,该无线通信设备通过RF收发机与无线电接入网(RAN)、核心接入网、因特网和/或另一网络通信。装置100可包括可操作地耦合到处理电路102的通信收发机106。处理电路102可具有一个或多个IC设备,诸如专用IC(ASIC)108。ASIC 108可包括一个或多个处理设备、逻辑电路等等。处理电路102可包括和/或耦合到处理器可读存储(诸如存储器112),该处理器可读存储112可维护可由处理电路102执行的指令和数据。处理电路102可由操作系统以及应用编程接口(API)110层中的一者或多者来控制,该API 110层支持并允许执行驻留在存储介质(诸如无线设备的存储器设备112)中的软件模块。存储器设备112可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、闪存卡、或可以在处理系统和计算平台中使用的任何存储器设备。处理电路102可包括或访问本地数据库114,该本地数据库114可维护用于配置和操作该装置100的工作参数和其它信息。本地数据库114可使用数据库模块、闪存、磁介质、EEPROM、光学介质、磁带、软盘或硬盘等中的一者或多者来实现。处理电路也可以可操作地耦合至外部设备,诸如天线122、显示器124、操作者控件(诸如按钮128和按键板126以及其他组件)。

支持I2C和CCIe操作两者的总线架构的示例

图2是解说具有基带处理器204和图像传感器206的设备202的简化示例的框图200。图像数据总线216和多模控制数据总线208可以在设备202中实现。示图200仅作为示例解说了相机设备202,并且各种其他设备和/或不同功能性可以实现、操作、和/或使用控制数据总线208来通信。在所描绘的示例中,可以在图像数据总线216(诸如由MIPI定义的“DPHY”高速差分链路)上从图像传感器206向基带处理器204发送图像数据。在一个示例中,控制数据总线208可以具有能配置用于I2C总线模式中的操作的两条导线。相应地,控制数据总线208可以包括SCL和SDA导线。SCL可携带时钟信号,该时钟信号可被用于根据I2C协议来同步在控制数据总线208上的数据传输。数据线SDA和时钟线SCL可以耦合至I2C总线(控制数据总线208)上的多个设备212、214和218。在该示例中,可以经由控制数据总线208在基带处理器204与图像传感器206以及其他外围设备218之间交换控制数据。根据I2C协议,SCL导线上的时钟速度对于正常I2C操作可高达100KHz,对于I2C快速模式可高达400KHz,并且对于I2C快速模式+(Fm+)可高达1MHz。在用于相机应用时,I2C总线上的这些操作模式可被称为相机控制接口(CCI)模式。

根据一个方面,可以在多模控制数据总线208上实现改进的操作模式以支持相机操作。改进的操作模式可以使数据能够以大于1MHz的速率来传输,并且该改进的模式可被称为CCI扩展(CCIe)模式。

在一个示例中,CCIe总线可被用于为与CCIe总线操作兼容的设备提供较高数据率。此类设备可被称为CCIe设备,并且CCIe设备可以在彼此通信时通过将数据编码为使用常规CCI总线的SCL线和SDA线两者传送的码元来达到较高数据率。CCIe可被用于相机应用。CCIe设备和I2C设备可以在相同的CCIe总线上共存,以使得在第一时间区间中可以使用CCIe编码来传送数据,并且可以在不同的时间区间中根据I2C信令约定和协议来传送其他数据。

当设备202被配置用于CCIe模式时,基带处理器204包括主节点212并且图像传感器206包括从节点214,其中主节点212和从节点214在控制数据总线208上根据CCIe模式协议来操作而不影响耦合至控制数据总线208的任何传统I2C设备的正确操作。控制数据总线208可以在没有CCIe设备与传统I2C从设备之间的桥接设备的情况下支持CCIe模式操作。

在一个示例中,在控制数据总线208上的第一交换期间,传统I2C设备可以在具有第一时钟、第一总线速度和/或第一信号协议的第一模式中操作,而在控制数据总线208上的第二交换期间,具有CCIe能力的设备可以在具有第二时钟、第二总线速度和/或第二协议的第二模式中操作。第一时钟、第一总线速度、和/或第一信号协议可以不同于第二时钟、第二总线速度、和/或第二协议。例如,第二时钟和/或第二总线速度可以分别快于第一时钟和/或第一总线速度或者具有比第一时钟和/或第一总线速度大的速度。

在另一示例中,所有从设备218可以是具有CCIe能力的设备,以使得不需要在第一操作模式与第二操作模式之间切换。即,所有信令和/或通信可以根据使用第二时钟和/或第二总线速度并且使用第二协议的第二模式来执行。在所有从设备218是具有CCIe能力的设备时,第一模式与第二模式之间的切换是不需要的或者无优势的,因为第二模式可以提供比第一模式更大的比特率。在一些实例中,可以实现第三操作模式,该第三操作模式提供甚至比第二模式更大的比特率,但是在不需要容适第一模式时不与I2C设备兼容。

图3是解说支持共存的I2C模式设备3041-304m以及CCIe模式设备312和3141-314n的公共总线302的框图300。对于I2C模式事务308,具有CCIe能力的主设备312可以在总线302上使用I2C Fm+或CCI协议来与I2C从设备3041-304m通信以获得1Mbps的最大数据率。当具有CCIe能力的主设备312可以支持全部CCI或I2C Fm+能力时,具有CCIe能力的从设备3141-314n可以不需要支持全部I2C能力。

具有CCIe能力的主设备312还可以建立与具有CCIe能力的从设备3141-314n的CCIe模式通信306。CCIe模式准许单主控操作,并且不支持多个主控。在CCIe模式中,CCIe主设备312仅在控制数据总线302上与具有CCIe能力的从设备3141-314n通信。具有CCIe能力的设备312和3141-314n可以在CCIe模式中以比I2C模式中显著更高的数据率来通信。例如,具有CCIe能力的设备312和3141-314n可以6.4Mbps或16.7Mbps的数据率来通信。

可以针对总线302配置或定义默认启动模式。在一个示例中,总线302可被配置成在上电、复位和/或其他类型的启动状况之后在CCIe操作模式中操作。在另一示例中,总线302可被配置成最初在传统I2C模式中操作。具有CCIe能力的主设备312可以通过在例如希望访问具有CCIe能力的从设备3141-314n时传送的I2C一般呼叫来使总线302的操作模式从I2C模式切换至CCIe模式。具有CCIe能力的主设备312可以通过CCIe“退出”协议和I2C一般呼叫的组合来从CCIe模式切换至I2C模式以在总线302上访问I2C从设备3041-304m。

解说适配成用于CCIe操作的设备的某些方面的示例

图4是解说可以采用通信总线(诸如CCIe总线430)的装置400的某些方面的示意性框图。装置400可以实施在无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备等中的一者或多者中。装置400可以包括使用CCIe总线430来通信的多个设备402、420和/或422a-422n。CCIe总线430可以为配置成用于CCIe总线430所支持的增强型特征的设备扩展常规CCI总线的能力。例如,CCIe总线430可以支持比CCI总线高的比特率。根据本文公开的某些方面,CCIe总线430的一些版本可以被配置或适配成支持16.7Mbps或更大的比特率,并且CCIe总线的一些版本可以被配置或适配成支持每秒至少23兆比特的数据率。

在图4中解说的示例中,成像设备402被配置成作为CCIe总线430上的从设备来操作。成像设备402可被适配成提供例如管理图像传感器的传感器控制功能404。另外,成像设备402可包括配置寄存器406和/或其他存储设备424、处理电路和/或控制逻辑412、收发机410和线驱动器/接收器414a和414b。处理电路和/或控制逻辑412可包括处理器,诸如状态机、定序器、信号处理器或通用处理器。收发机410可包括接收机410a、发射机410c和某些共用电路410b,包括定时、逻辑和存储电路和/或设备。在一些实例中,收发机410可包括编码器和解码器、时钟和数据恢复电路和类似物。

发射时钟(TXCLK)信号428可被提供给发射机410c,其中TXCLK信号428可被用来确定用于CCIe通信模式的数据传输速率。当SDA导线418和SCL导线416两者被用于编码所传送的数据时,TXCLK信号428可被嵌入在CCIe总线430上传送的码元序列内。在一个示例中,TXCLK信号428可以使用转变时钟转码来嵌入,由此要在物理链路430上传送的数据被转码,以使得在CCIe总线430上传送的每一对连贯码元之间出现至少一根导线416和/或418的状态改变。

图5是解说可根据本文所公开的某些方面来配置的发射机500和接收机520的示例的框图。对于CCIe操作,发射机500可以将数据510转码成三进制(基数3)转变数,该三进制转变数被编码为在SCL 416和SDA 418信号导线上传送的码元。在所描绘的示例中,输入数据510的每个数据元素(亦称为数据字)可以具有19或20比特。转换器和/或转码器502可以接收输入数据510并且为每个数据元素产生三进制转变数。每一个三进制转变数可被提供为12个三进制位的序列512,每一个三进制位通过两个比特来表示。编码器504接收12个三进制位的序列512并且产生通过线驱动器506传送的2比特码元流514。在所描绘的示例中,线驱动器506包括开漏输出晶体管508。然而,在其他示例中,线驱动器506可以使用推挽式驱动器来驱动SCL 416和SDA 418信号导线。通过确保没有任一对连贯码元包括两个相同码元,由编码器504生成的2比特码元输出流514在连贯码元514之间具有SCL 416和SDA 418信号导线中的至少一者的状态转变。至少一根导线416和/或418的状态转变的可用性准许接收电路520从码元流536的收到版本中提取时钟信息并且从数据码元流536推导接收时钟538。

在CCIe系统中,接收机520可以包括时钟和数据恢复(CDR)电路528或与其协作。接收机520可以包括向CDR电路528提供原始2比特码元流536的线接口电路526。CDR电路528从原始码元536中提取接收时钟538并且向接收机520的其他电路524和522提供2比特码元流534和接收时钟538。在一些示例中,CDR电路528可以产生多个时钟538。在一个示例中,CDR电路528包括检测SCL信号导线416和/或SDA信号导线418上的转变并且在检测到此类转变之际使接收时钟538的状态翻转的逻辑。CDR电路528可以包括时间敏感的电路系统(诸如单稳电路、延迟电路或其他此类元件)以在SCL信号导线416和SDA信号导线418在同一码元边界处的转变关于彼此延迟时排除接收时钟538的多次状态翻转。解码器524可以使用接收时钟538来将码元流534解码成12个三进制位的序列532,每个序列532表示转变数。12位转变数532的每一位可以被表示为2比特三进制位。转码器和/或转换器522可以随后将12个三进制位的每一序列532转换成19比特或20比特输出数据元素530。

根据某些方面,通过转换器502和522来执行输入二进制数据510与表示转变数的三进制位序列512之间和/或转变数532与输出数据比特530之间的转换在一个示例中,对于双导线接口430,在发射机500处的从数据比特510到转变数的转换以及随后在接收机520处的从转变数到数据比特530的转换涉及12个转变码元。针对集合或序列{T11,T10,…,T2,T1,T0}中的每一个转变数T所得到的r个可能码元转变状态为12个转变数提供了总共r12个不同状态。对于双导线总线,从每个信令状态可得到的转变状态数r=22-1。因此,转变序列{T11,T10,…,T2,T1,T0}可以编码具有(22-1)12=312=531441个不同状态的数据。在该后一示例中,从{0,1,2}中选择12位三进制数{T11,T10,…,T2,T1,T0}中的每个转变Ti。

例如,对于{T11,T10,…T2,T1,T0}={2,1,0,0,1,1,0,1,0,1,2,1},表示12转变序列的三进制数是:

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个三进制位可被转换成20比特数据输出530。

在图5中解说的双导线系统的示例中,12个码元转变数可被推广为n导线系统和m个码元转变数。在针对集合或序列{Tm-1,…,T1,T0}中的每一个转变数T有r个可能码元转变状态时,m转变序列可以编码rm个不同状态,其中r=2n-1。因此,序列{Tm-1,…,T1,T0}可以编码具有最多达(2n-1)m个不同状态的数据。

在一个示例中,表示双导线、12码元接口中的码元转变数532的三进制数可如下被转换成二进制数输出数据比特530:

比特=T11x 311+T10x 310+T9x 39+T8x 38+T7x 37+T6x 36+T5x 35+T4x 34+T3x 33+T2x 32+T1x 3+T0。

在发射机500处,执行用于将数据比特510转换成三进制数512的算法,该三进制数512可被编码为码元514以供在双导线、12码元接口中的SCL导线416和SDA导线418上传送。该算法可以迭代地计算降序转变数(Ti)值连同其相应余数(Mi)。即,每一位可以如下计算:将在较高位计算中使用的取模运算的余数除以3的该位数次幂、并丢弃小数点后面的数字:

T11=比特/311,M11=比特%311

T10=M11/310,M10=M11%310

T9=M10/39,M9=M10%39

T8=M9/38,M8=M9%38

T7=M8/37,M7=M8%37

T6=M7/36,M6=M7%36

T5=M6/35,M5=M6%35

T4=M5/34,M4=M5%34

T3=M4/33,M3=M4%33

T2=M3/32,M2=M3%32

T1=M2/3,M1=M2%3;

T0=M1。

该后一算法可以从以下合成:

T11=(比特≥311x 2)?2:(比特≥311)?1:0,M11=比特-T11x 311

T10=(M11≥310x 2)?2:(M11≥310)?1:0,M10=M11-T10x 310

T9=(M10≥39x 2)?2:(M10≥39)?1:0,M9=M10-T9x 39

T8=(M9≥38x 2)?2:(M9≥38)?1:0,M8=M9-T8x 38

T7=(M8≥37x 2)?2:(M8≥37)?1:0,M7=M8-T7x 37

T6=(M7≥36x 2)?2:(M7≥36)?1:0,M6=M7-T6x 36

T5=(M6≥35x 2)?2:(M6≥35)?1:0,M5=M6-T5x 35

T4=(M5≥34x 2)?2:(M5≥34)?1:0,M4=M5-T4x 34

T3=(M4≥33x 2)?2:(M4≥33)?1:0,M3=M4-T3x 33

T2=(M3≥32x 2)?2:(M3≥32)?1:0,M2=M3-T2x 32

T1=(M2≥3x 2)?2:(M2≥3)?1:0,M1=M2-T1x 3;

T0=M1。

图6解说了在首先传送码元流中的最低有效码元时用于将二进制输入数据比特510转换成三进制转变数512的示例逻辑620和640。逻辑620、640可以在转换器502中实现。如简化框图600中所示,由转换器502产生的每一个三进制转变数512可以从输入数据比特510中的比特数推导,并且每一个三进制转变数512可以包括12位(T0,T1…T11)602。三进制数512随后被转码成传送给接收设备520的码元514。对于12位三进制转变数,其中T0,T1…T11表示该转变数,T0表示30位并且是最低有效位,而T11表示311位并且是最高有效位。如关于图5所讨论的,这些三进制转变数512与时钟嵌入在一起并且被编码成传送给接收设备520的后续码元514。逻辑图620和逻辑电路640将输入数据比特510转换成“最低有效码元在前的”三进制转变数流512。

图7解说了在首先传送码元流中的最高有效码元时用于将二进制输入数据比特510转换成三进制转变数712的逻辑720。逻辑720可以在转换器704(参见图5的转换器502)中实现。如简化框图700中所示,由转换器704产生的每一个三进制转变数712可以从输入数据比特510中的比特数推导,并且每一个三进制转变数712可以包括12位(T0,T1…T11)702,由此T0表示30位并且是最低有效位,而T11表示311位并且是最高有效位。三进制转变数712随后被转码成传送给接收设备的码元。

在此示例中,转换始于T11。图6解说了以T0,T1,T2,…,T11的次序发送12位三进制数602,而图7涉及其中以T11,T10,T9,…,T0的次序发送12位三进制数702的示例。在图6的示例逻辑620和640与图7中的电路720之间可标识某些差异。图6的电路640包括24个触发器并且与图7的包括复用器、20个触发器和逻辑器件的电路720相比是相当复杂的。相应地,由于逻辑门的减少,在首先发送最高有效比特时,所涉及的逻辑和电路系统在复杂度方面被简化并且没那么昂贵。

如所提及的,图6的逻辑620、640解说了最低有效码元在前(LSS在前)逻辑和电路系统(因为首先向接收设备传送最低有效码元),而图7的逻辑720解说了其中首先向接收设备传送最高有效码元(MSS在前)的示例。如本文所使用的,“最低有效码元”指代与三进制数的最低有效位相对应的经转码码元。例如,当T0被转码成顺序码元时,该码元是最低有效码元,因为其源自最低有效三进制位。并且在码元到转变数转换器(例如,图5的转码器524)随后将经转码的(顺序)码元转换成转变数532(即,一个三进制位数)时,其将是最低有效位。类似地,如本文所使用的,“最高有效码元”指代与三进制数的最高有效位相对应的经转码码元。

图8解说了可被用于将12位三进制数转换成输出比特824的电路系统800的示例。如本文所描述的,例如19或20比特的原始数据510可按倒序被转换成三进制转变数,由此首先将最高有效比特提供给转换器(参见图7和描述)。该转变数可以再次以倒序被转换(即,转码)成顺序码元,并且这些经转码码元在总线上以倒序被传送。接收设备(例如,从设备)接收倒序传输并且执行时钟恢复和码元采样以将经转码码元转换回三进制数,该三进制数随后以倒序被提供给将该三进制数转换回20比特二进制原始数据的电路。电路800可以使用具有耦合至去往逻辑设备的单个输出端的12个输入端的复用器802。

最高有效码元在前与最低有效码元在前操作模式之间的选择可以通过计数器850计数的方向来控制。例如,当计数器850被配置或控制成作为从十六进制“0xB”(即,十进制“11”)递减的递减计数器操作时,可以首先处置最高有效码元。如果计数器850被配置或控制成作为从十六进制“0x0(即,十进制“0)递增的递增计数器操作,则可以首先处置最低有效码元。替换地或补充地,至复用器802的输入的次序可以被配置成使得复用器802对计数器850的输出(DELCNT)814进行响应以产生输出三进制转变数的期望次序。

计数器850可使用同步至可从系统时钟和/或CDR电路528的输出推导出的时钟的寄存器或锁存器860来提供DELCNT 814输出。寄存器860从第一复用器逻辑858接收4比特输入,第一复用器逻辑858基于初始化计数器850的控制信号(开始信号)864来在下一值或开始值之间进行选择。开始值可以在转换器在最高有效码元在前模式中操作时设置为0xB,并且可以在转换器在最低有效码元在前模式中操作时设置为0x0。第一复用器逻辑858从第二复用器逻辑856接收下一值,第二复用器逻辑856基于由结束检测逻辑854检测到结束状况来在DELCNT 814输出的修改版本与DELCNT 814输出之间进行选择。第二复用器856的经修改输入可以是功能852的结果,该功能852可以通过用于递减计数操作的减法逻辑或者从用于递增计数操作的加法逻辑提供。如所描绘的,第二复用器逻辑856在DELCNT 814输出从0x0递减到0xF之后重复DELCNT 814输出,从而指示当前转换结束。对于递减计数操作模式,结束检测逻辑854a可被配置成检测DELCNT 814上的0xF值,并且结束检测逻辑854a切换第二复用器逻辑856输出以使DELCNT 814保持在0xF,直至开始信号864使开始值被加载。对于递增计数操作,结束检测逻辑854b可被配置成检测DELCNT 814上的0xC(十进制“12”或二进制“1100”)。

CCIe编码的示例

图9是解说可被转码器504用于从三进制转变数512产生码元序列514的编码方案900的图示,其中码元序列514具有嵌入的时钟信息并且用于在CCIe总线430上传送。编码方案900还可由转码器524用于从在CCIe总线930上传送的码元534提取三进制转变数532。在CCIe编码方案900中,CCIe总线430的两根导线准许定义4个基本码元S:{0,1,2,3}。码元序列514、534中的任何两个连贯码元具有不同状态,并且码元序列0,0、1,1、2,2和3,3是连贯码元的无效组合。相应地,在每个码元边界处仅3个有效码元转变可用,其中码元边界由发射时钟确定并且表示第一码元(前一码元Ps)922终止且第二码元(当前码元Cs)924开始的点。

根据本文所公开的某些方面,针对每个Ps码元922,这三个可用转变被指派转变数(T)926。T 926的值可以由三进制数表示。在一个示例中,转变数926的值通过指派用于编码方案的码元排序圆902来确定。码元排序圆902为4个可能码元分配圆902上的位置904a-904d以及位置904a-904d之间的旋转方向906。在所描绘的示例中,旋转方向906为顺时针。转变数926可以表示有效的当前码元924与前一紧邻码元922之间的间隔。间隔可被定义为从前一码元922到达当前码元Cs 924所需要的在码元排序圆902上沿旋转方向906的步数。步数可被表达为一位基数为3的数字。

将领会,码元之间的三步差异可被表示为0基数-3。图9中的表920概述了采用这种办法的编码方案。在该示例中,转变数T可根据以下规则来指派:

Ttmp[1:0]=4+Cs-Ps

T=Ttmp[1:0]==3?0:Ttmp[1:0]

相反,当前顺序码元(Cs)可根据以下规则来指派:

Ttmp=T==0?3:T

Cs=Ps+Ttmp

相似的办法可用于n导线系统,这通过对于任何n(例如,n=4,5,6,…)构造保证原始码元将改变的顺序码元至转变数的映射表来实现。例如,在n导线系统的情况下,转变数T可根据以下规则来指派:

T=(Ps≤Cs)?Cs–Ps:2n+Cs–Ps。

相反,在n导线系统的情况下,当前顺序码元(Cs)可根据以下规则来指派:

Cstmp=Ps+T

Cs=(Cstmp<2n)?Cstmp:Cstmp–2n

在发射机500处,在给定先前生成的码元922和用作转变数926的输入三进制数的知识的情况下,表920可被用于查找要被传送的当前码元924。在接收机520处,表920可被用作查找表以确定表示先前接收的码元922与当前接收的码元924之间的转变的转变数926。转变数926可作为三进制数来输出。

图10和11解说了传统I2C接口的某些方面。图10是解说传统I2C协议的典型I2C比特传输循环的时序图1000。SCL线416可以专用于从主节点向从节点发送时钟信号。SDA线418可用于传输7比特序列连同由接收机在结束时提供的ACK 1008。I2C协议提供8比特数据(字节)和7比特地址连同用于指示命令了读操作还是写操作的1比特的传输。数据传输由接收机确收,该接收机驱动SDA信号导线418达一个时钟周期1008,以使得低信令状态表示指示成功接收的确收(ACK)并且高信令状态表示指示接收失败或者接收错误的否定确收(NACK)。在SCL线416上针对每个时钟循环传送一个数据比特1004、1006或ACK(1008)。在一个示例中,当SCL线416的时钟状态处于高逻辑状态1002时,可以从SDA线418读取数据比特状态1004。

图11是解说常规I2C总线上的SDA和SCL信号导线之间的关系的时序图,并且该图示包括解说常规I2C总线上的SDA和SCL信号导线418、416之间的关系的时序图1100和1120。第一时序图1100解说在常规配置的I2C总线上传输数据时SDA信号导线418与SCL信号导线416之间的定时关系。SCL信号416提供可被用于对SDA信号导线418中的数据进行采样的一系列时钟脉冲1112。当SCL信号导线416在数据传输期间处于逻辑高状态时,要求SDA信号导线418上的数据是稳定且有效的,以使得SDA信号导线418的状态不准许在SCL信号导线416处于高状态时改变。

用于常规I2C协议实现的规范定义了SCL信号导线416上的每个脉冲1112的高时段(t高)1110的最小历时,其中脉冲1112对应于SCL信号导线416处于高逻辑状态的时间。I2C规范还定义了建立时间(tSU;DAT)1106和保持时间(tHD;DAT)1108的最小历时,在该建立时间和保持时间期间,SDA信号导线418的信令状态必须在SDA信号导线418处于高逻辑状态的脉冲1112之前和之后是稳定的。建立时间1106定义了在SDA信号导线418上的信令状态之间的转变1116之后、直至SCL信号导线416上的脉冲1112的上升沿的抵达为止的最大时间段。保持时间1108定义了在SCL信号导线416上的脉冲1112的下降沿之后、直至SDA信号导线418上的信令状态之间的下一转变1118为止的最小时间段。I2C规范还定义了在SDA信号导线416的信令状态可以改变时SCL信号导线416的低时段(t低)1114的最小历时。通常在SCL信号导线416在脉冲1112的前沿之后处于高逻辑状态时捕捉SDA信号导线418上的数据达时间历时(t高)1110。

图11的第二时序图1120解说了在常规I2C总线上的数据传输之间SDA信号导线418和SCL信号导线416上的信令状态。I2C协议定义了开始状况或序列1122,其中SDA信号导线418从高转变为低,而SCL信号导线416保持在高状态。I2C协议定义了停止状况或序列1124,其中SDA线从低信令状态转变为高信令状态,而SCL线416为高。如本文提及的,在数据被传送时,SDA信号导线418的信令状态预期在SCL信号导线416上传送的脉冲1112的高时段期间保持稳定。相应地,在SCL信号导线416处于逻辑高状态时SDA信号导线418的转变可被从设备解读为开始状况1122或停止状况1124。

开始状况1122被定义为准许当前总线主控发信号通知数据将被传送。兼容I2C的从设备必须在接收到开始状况1112时使其总线逻辑复位。开始状况1122在SDA信号导线418从高转变为低而同时SCL信号导线416为高时发生。I2C总线主控最初传送开始状况1122,其后跟随该I2C总线希望与其交换数据的I2C从设备的7比特地址。在该地址之后跟随着指示要进行读操作还是写操作的单个比特。被寻址的I2C从设备(若可用)用ACK比特来响应。主I2C设备和从I2C设备随后在帧中交换信息字节,其中这些字节被串行化,以使得首先传送最高有效比特(MSB)1004并且最后传送最低有效比特1006。当I2C主设备传送停止状况1124时,字节传输完成。停止状况1124在SDA信号导线418从低转变为高而同时SCL信号导线416为高时发生。I2C协议要求SDA信号导线418的所有转变在SCL信号导线416为低时发生,并且例外可被当作开始状况1122或停止状况1124。

在使用传统I2C协议时,每循环用共享串行总线430的2根导线416、418来发送仅1比特信息。即,每循环每导线仅传送0.5比特信息。根据本文公开的诸方面,可以通过在SDA线418和SCL线416两者上传送数据而同时将时钟嵌入到所传送的码元内来获得改进的数据率(即,大于每循环每导线0.5比特信息)。时钟信息可以在接收机处被提取,而无需使用锁相环(PLL)。

图12是解说在连接至总线430的设备402、420、422a-n包括I2C设备时在CCIe模式中在共享总线430上的数据传输的示例的时序图1200。在该示例中,CCIe设备使用推挽式驱动器而不是由I2C设备使用的开漏驱动器来驱动信号导线418、416。数据被编码在信号导线418、416上传送的码元序列1206、1208中。在码元速率为20MHz时,可以为CCIe传输达成每秒约14兆比特(Mbps)的有效数据率。如本文描述的,19比特数据可被转换成12个码元的序列1206、1208,其针对码元序列1206或1208中的每个码元周期(tsym)1212控制SDA信号418和SCL信号416的状态。如所描绘的,每个码元周期1212的历时可以为50ns。在一个示例中,这19比特包括16比特数据以及3比特开销。

连贯码元序列1206和1208之间的定时可以通过为满足管控I2C设备的操作的协议所需要的时间段来控制。在一个示例中,开始状况1210在每个传输1206、1208之前并且具有至少260ns的历时(tHD)。开始状况1210可以由码元值“1”定义,以使得SDA信号418保持为低,而SCL信号416保持为高。开始状况1210可以跟随在信号418和416两者均处于高状态时的最小建立时段(tSU)1216后,如由码元值“3”定义的。最小建立时段(tSU)1216可以在传输1206或1208终止之后开始,并且最小建立时段(tSU)1216可以保持达至少260ns。相应地,第一传输1206的开始与第二传输1208的开始之间的最小流逝时间1214可被计算为:

t字=tHD+tSU+12×tsym=(260+260+12×(50))ns=1120ns

可以针对建立时间与开始时间之间的信号下降时间(tf)包括附加的标称20ns。信号下降时间可被计算为:

相应地,可以在最小1140ns内传送19比特数据,其中相应的原始比特率为约16.7Mbps并且有用比特率为约14.04Mbps(因为在12个码元中传送16比特)。

在总线430上容纳I2C设备时,传输1206与1208之间的最小所需时间显著大于在通信中仅涉及CCIe设备的情形。图12包括解说添加I2C建立和开始时段的增加时间1224以便为I2C设备提供后向兼容性的时序图1220。

图13是解说在总线430上的设备402、420、422a-n不包括活跃I2C设备时CCIe总线430上的数据传输的时序图1300。开始状况的历时可被减少。在此示例中,推挽式驱动器被用于驱动信号导线418、416。22.86Mbps的链路速率可以用20MHz码元速率来达成。12个码元的序列1306、1308编码16比特数据和3比特开销。12个码元的序列1306、1308中的每个码元针对每个码元周期(tsym)1310定义SDA信号418和SCL信号416的状态。对于20MHz码元时钟,每个码元周期1310的历时可以为50ns。在连贯码元序列1306与1308之间的时段1314中传送二码元序列{3,1}。第一传输1306的开始与第二传输1308的开始之间的最小流逝时间1312可被计算为:

t字=14×tsym=700ns

在使用具有推挽式驱动器的CCIe设备时,可以在700ns内传送19比特数据,从而提供约27.1Mbps的原始比特率以及约22.86Mbps的有效比特率,因为在每个12码元字1306、1308中传送16个数据比特。

图14解说了与配置为CCIe接口的串行总线430相关联的某些方面。时序图1400对应于与图5中描绘的CCIe发射机500和接收机520相关联的信令。时序图1400解说了其中发射时钟(TXCLK)1422被嵌入在数据传输期间在SDA导线418和SCL导线416上传送的码元序列1408中的示例。在一个示例中,使用转变时钟转码来将时钟信息嵌入在码元序列1408中。例如,要在物理链路430上传送的数据510被转码,以使得在所传送码元1408的每个码元循环之后发生状态改变。因此,TXCLK 1422可以被嵌入在每个码元循环的码元边界(包括例如与码元S7 1408d相关联的码元边界1414和1416)处发生的码元状态改变中。接收机520可以从时钟信息生成接收时钟(RXCLK)1412,该时钟信息是从所传送码元序列1408中的每个码元边界1414、1416处的状态转变恢复的。接收机520可以随后逆转对所传送码元1408的转码以获得原始数据530。这允许I2C总线430的两根导线都被用于发送数据。另外,码元速率可以显著增大,因为不再需要在时钟信号与数据信号之间具有建立时间和保持时间(如图11中所解说的)。

在时序图1400中描绘的示例中,数据510可被编码在12码元序列或区间1406中传送的码元流1408中。每个12码元序列1406包括开始码元1408a和终止或建立码元1408c。建立码元1408c和开始码元1408a的组合在CCIe总线上传送的12码元序列1406之间形成码元序列{3,1}。如本文描述的,码元序列1406中的任何两个连贯码元产生共享总线430上的不同信令状态,从而接收机可以从在12码元序列1406中的码元边界1414、1416处发生的码元转变推导RXCLK 1412。码元之间的转变可以从转变数1410标识,如本文所描述的。CCIe编码器可以生成12码元序列1408、开始码元1408a、和建立码元1408b。

根据某些方面,串行总线430可以同时支持I2C设备和CCIe设备两者。如本文提及的,对于I2C通信模式而言将作为SCL信号导线416上的时钟信号传送的时钟信息可被嵌入在码元转变内,由此准许对SCL信号导线416的使用被用于携带码元信息。I2C协议的某些信令特性可被用于实现共享总线430针对I2C和CCIe模式的可操作性。例如,I2C协议要求所有兼容I2C的从节点必须在接收到开始状况之际使其总线逻辑复位,该开始状况在SDA线418上发生高到低转变而同时SCL线416为高时发生。

可操作用于CCIe和I2C通信的总线上的信令示例

图15是解说I2C一个字节写数据操作的时序图1500。I2C主节点在SDA线418上传送7比特从ID 1502以指示主节点希望访问I2C总线430上的哪个从节点,之后传送指示该操作是读操作还是写操作的读/写比特1512。读/写比特1512为逻辑0以指示写操作并且为逻辑1以指示读操作。仅ID匹配该7比特从ID 1502的从节点能够响应该写(或读)操作。为了使I2C从节点检测其自己的ID 1502,主节点在SDA线418上传送至少8比特连同SCL线416上的8个时钟脉冲。这种行为可被用于在CCIe操作模式中传送数据以防止传统I2C从节点对CCIe操作作出反应。

图16提供了解说开始状况1606、1608或1610对传统I2C从节点的影响的一个示例1600,其中开始状态1606、1608或1610通过SDA线418上的高到低信令状态转变而同时SCL线416处于高信令状态来指示。在此示例1600中,可以在完整的7比特从ID已被传送之前检测到某些开始状况1608或1610。结果得到的不完整的从ID 1602、1604不会被任何从设备识别出。在操作中,主节点在SCL线416上仅发送6个脉冲1612之后发布开始状况1608、1610的作用包括使所有传统I2C从节点在SDA线418上识别出其相应I2C从ID的可能性发生之前使其总线逻辑复位。换言之,SDA线418上在两个开始状况1606、1608和/或1610之间发送的6比特序列1602、1604不被任何从节点解码为有效的从ID。因此,传统I2C从节点预期不会对不完整的从ID 1602、1604作出响应。

图16还包括解说在CCIe模式中将I2C总线的SCL线416和SDA线418的组合用于数据传输的示例1620。CCIe码元可以在与针对I2C传输在SCL线416上传送的时钟信号1614的每次翻转相对应的时间传送。在两个开始状况1608、1610之间传送的时钟翻转数可以因此定义可以为每个CCIe传输传送的码元数。因此,可以在与不完整的从ID 1602、1604传输等效的6-SCL脉冲序列期间可用的12个信令状态中提供12码元传输1622、1624,而不会使任何从节点将该序列检测为I2C从ID。

在SDA线418上发生的转变与SCL线416上的转变相重合对于传统I2C设备而言是不合逻辑的,这些传统I2C设备可以将此类转变解读为开始状况。然而,传统I2C设备检测稍后发生的有效开始状况1628、1630,该有效开始状况1628、1630使I2C从节点的总线逻辑检测复位。I2C从节点还可将在CCIe传输1622、1624期间发生的一些SDA转变解读为停止状况,但是检测到CCIe传输1622、1624内的此类停止状况仅导致不完整SID 1602、1604的提前终止。类似地,在CCIe传输1622、1624期间检测到开始状况导致从节点的I2C功能执行总线逻辑复位。

因此,明显的是,传统I2C从节点预期会将与6SCL脉冲序列相关联的12码元CCIe传输1622、1624作为不完整的I2C从ID 1602、1604而忽略。因此,在开始状况1606、1608和1610之间可用的12个SCL翻转期间,可以在SCL线416和/或SDA线418上传送12个码元。

当时钟信号已被嵌入在码元转变内时,I2C总线的SCL线416和/或SDA线418可被用于CCIe模式中的数据传输。因此,SDA线418和SCL线416可被用于在两个连贯的开始状况1626、1628和/或1630之间传送任何任意的12个码元,而不影响传统I2C从节点功能性并且无需使用桥接设备来将传统I2C从节点与具有CCIe能力的节点分隔开。在I2C模式中,开始状况仅由I2C主节点发送,而在CCIe模式中,开始状况由传送12码元字的任何节点发送。

图17是解说包括能够使用相同的双导线串行总线430来进行通信的多个设备1702、1722和1742的系统1700的示意性框图。在一个示例中,双导线串行总线430可以在一种模式中用于根据CCIe协议来支持两个或更多个设备1702、1722之间的通信,而在另一种模式中,双导线串行总线430可被用于根据I2C协议来支持两个或更多个设备1702、1722和/或1742之间的通信。相应地,双导线串行总线430上的信令可以采用本文公开的某些技术以确保耦合至双导线串行总线430的设备1702、1722和1742作为数据传输期间的信号定时的结果而不会彼此干扰(无论传输模式如何)。

在所描绘的简化示例中,I2C从设备1742可以能够根据I2C协议进行通信,总线主设备1702能够根据I2C和CCIe协议进行通信,而CCIe从设备1722能够根据CCIe协议并且有可能根据CCIe和I2C协议两者进行通信。在一些实例中,CCIe设备1702和/或1722可以在CCIe操作模式期间作为串行总线上的从设备或主设备来操作。将领会,双导线串行总线430可以耦合其他设备,如图3中所解说的。装置1700可以实施在无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备、电器、可穿戴计算设备等中。

CCIe设备1702、1722可以服务系统1700中的一个或多个特定或指定的功能。例如,CCIe设备1702、1722可以包括外围模块或电路1704、1724,这些外围模块或电路1704、1724控制或包括用户接口的元件,诸如显示器、图像传感器、相机、键盘、触摸屏传感器、鼠标或其他指示器、视听编解码器、调制解调器、全球定位传感器、运动检测器、以及采用系统1700的装置的其他设备或组件。另外,CCIe设备1702、1722可以包括存储1706、1726,处理电路和/或控制逻辑1710、1730,收发机1714、1734,以及线驱动器/接收机1716、1718、1736、1738。处理电路和/或控制逻辑1710、1730可包括处理器,诸如状态机、定序器、信号处理器或通用处理器。收发机1714、1734可以包括接收机(Rx)和发射机(Tx)电路连同某些电路和模块(包括定时、控制逻辑、一般逻辑、CDR、编码、和解码电路和/或设备)。收发机1714、1734可以包括用于维护状态配置并且提供数据缓冲器的存储。

时钟生成电路系统1712、1732可以设在收发机1714、1734内部或外部和/或可以提供可被用于确定I2C和CCIe通信模式的数据传输速率的发射时钟(TXCLK)信号。SCL连接器416可以在I2C操作模式中携带由时钟生成电路系统1712、1732提供的时钟,而在CCIe操作模式中,定时信息可以嵌入在使用SCL连接器416和SDA连接器418传送的码元序列内。

存储1706、1726可以包括处理器或者可用于存储数据、配置信息、状态、和/或软件代码或指令的计算机可读介质。数据可被存储在供应发射机电路的缓冲器和/或处置来自接收机电路的传入数据的缓冲器中。软件代码或指令可以配置处理电路和/或控制逻辑1710、1730和/或由处理电路和/或控制逻辑1710、1730执行,以使得处理电路和/或控制逻辑1710、1730管理或操作设备1702、1722的各种构成元件并且根据双导线串行总线430的当前操作模式来处置通信协议。

主设备1702可以负责控制双导线串行总线430的操作模式并且在必要时在操作模式之间进行切换以准许耦合至双导线串行总线430的设备与其他设备通信。相应地,主设备1702可以实现能够标识需要或请求访问双导线串行总线430的从设备1722、1742的一个或多个协议1708。主设备1702可以在I2C从设备1742要被寻址时发起I2C模式通信事务并且可以在CCIe从设备1722要被寻址时发起CCIe模式通信事务。在一些情况下,可以在同一事务中寻址两个或更多个设备,并且主设备1702可以确定此类事务的通信模式。

图18解说了由配置成用于I2C和CCIe操作模式两者的总线主设备1702进行的模式控制的某些示例。在该示例中,解说了共享串行总线430上的操作的某些一般定时和信令方面,并且将领会,命令或呼叫的结构和内容可以在各应用之间改变而不影响本文解说的概念。同样,根据本文描述的某些方面配置的系统的可操作性不必限于或取决于传输的内容或格式(诸如CDR校准传输1810、进入字1812、退出字1814和/或退出序列1816等)。

如第一时序图1800中所解说的,该协议可以定义使共享总线430在CCIe模式与I2C模式之间进行切换的规程和信令。

在一个示例中,主设备1702可以传送CCIe模式进入命令1812以建立、维持、或转变至使用共享串行总线430的CCIe模式通信。在I2C模式中时,CCIe模式进入命令可被寻址到具有CCIe能力的设备1722,并且被寻址的设备可以重新配置其发射和接收电路系统1734以支持CCIe通信。基于所涉及的通信事务的类型,具有CCIe能力的设备1722可以编码或解码数据以供在共享串行总线430的两根导线上传送,其中时钟信息被嵌入在共享串行总线430上传送的码元序列中。耦合至共享串行总线430的I2C从设备1742通常忽略CCIe事务。I2C从设备可以感知不完整的从ID传输,但是在CCIe传输之间在共享串行总线430上传送I2C开始状况时将使其接收电路系统复位。在一些情况下,其他未被寻址的CCIe设备3141-314n(参见图3)可以监视CCIe通信。

主设备1702可以传送CCIe模式退出命令1814以返回到共享串行总线430上的I2C模式通信。在一个示例中,共享总线430在至CCIe模式的进入1812被执行之后维持在CCIe操作模式中,直至且除非从CCIe模式的退出1814被执行。

另一时序图1802包括示出可被用于实现进入CCIe模式的进入序列的示例。CCIe模式进入1812可被实现为在共享总线430正在I2C模式中操作时传送的一般呼叫的一部分。在进入CCIe模式之后,可以传送恰适的从标识符(SID)1818,之后是标识一个或多个具有CCIe能力的从设备1722的地址,之后是数据传输。该地址可以是多字地址,并且每个地址字和每个数据字可以通过I2C开始命令来分开,该I2C开始命令使任何I2C从设备1742在共享串行总线430上保持不活跃。

类似地,CCIe模式退出1814可由CCIe模式退出序列1804实现,该CCIe模式退出序列1804被提供作为在共享总线430正在CCIe模式中操作时传送的一般呼叫的一部分。CCIe退出命令1814可以使所有CCIe设备1722和/或3141-314n返回到I2C操作模式。相应地,启用CCIe的节点1702、1722和/或3141-314n可以通过分别从I2C模式切换至CCIe模式以及从CCIe模式切换至I2C模式来对包括进入/退出序列1802、1804的一般呼叫作出响应。

图18还提供了CCIe写数据序列或协议1806以及CCIe读数据序列或协议1808的示例。CCIe写数据协议1806可被执行以向由SID标识的从节点/设备1722和/或3141-314n发送任意数目的地址字和数据字。CCIe读数据序列或协议1808可被执行以从由SID标识的从节点/设备1722和/或3141-314n读取1到5个数据字。地址字的数目可被任意定义。

在一些实例中,CDR校准协议1810可由CCIe主节点用于使所指示的CCIe节点(包括主节点自身)校准其CDR逻辑并且使链路速率最大化。为此目的,CCIe主节点也可以具有其自己的SID。CCIe字可以在携带19比特信息的12个码元中发送。除了CDR校准协议之外,这19比特中的16个最低有效比特携带数据,而这19比特中的3个最高有效比特可被用于其他信息(诸如控制信息)。

CCIe接口430的数据率可以通过选择和/或使用推挽式驱动器来提高。再次参照图12,其解说了具有Fm+能力的I2C总线430上的CCIe码元定时的一个示例。由用于I2C Fm+模式的相同物理驱动器驱动的CCIe信号的定时可以通过驱动器的上升时间来限制,其中上升时间是线电压从VDD电平的30%变化到70%所花费的时间。图19是解说在CCIe信号由用于I2C Fm+模式的相同物理驱动器驱动时具有Fm+能力的I2C总线上的CCIe码元定时的一个示例的示图。I2C Fm+的上升时间为120ns,并且信号电压电平从0V到70%的时间可被计算为170ns。虽然此类上升时间在I2C模式中可以是令人满意的,在该I2C模式中信令往往通过基于微控制器的操作来处置,但是在CCIe模式中,信令操作通常是在硬件中实现的。此外,基于微控制器的或由软件操作的I2C设备可能需要许多循环来处理数据,尤其是在SCL导线416处于逻辑低状态时。相应地,对于Fm+,SCL的最小低时段可以为1300ns或更多,而I2C协议可以规定600ns的最小高时段。

根据本文公开的某些方面,CCIe模式设备可以不向每根线416、418上的逻辑1或逻辑0的历时、或者历时差异赋予含义。CCIe通信仅要求接收机能够使用硬件技术来正确地解码逻辑1和0,并且CCIe不要求较长的高或低时段来执行若干动作。相应地,CCIe系统可以使用125MHz或更快的时钟,从而产生8ns时段。为了使接收机正确地检测到异步输入值,接收机可以对相同的值至少采样三次。在一个示例中,CCIe信号的最小高时段(t高)可被设置为30ns,其远高于与125MHz时钟相关联的最小所需24ns。因此,170ns+30ns(=200ns)高时间的0到70%上升时间是最小可能的码元时间,并且结果得到的最大码元速率为5MHz。

在兼容I2C的总线上可用的最大CCIe链路速率可以受到由具有CCIe能力的设备使用的驱动器类型的影响。在一个示例中,开漏驱动器2002、2004、2006(参见图20)可由耦合至兼容I2C的总线430的CCIe设备使用。在此示例中,可以在200纳秒(ns)的最小码元时间1212中发送12个码元1206、1208中的每个码元,以使得可以在2400ns中传送12个码元1026、1208。另外,在传统I2C从设备耦合至共享总线430时,遵循I2C定时规范的开始状况是必需的。对于I2C快速模式+(Fm+)操作,最小开始状况建立时间1216和最小开始状况保持时间1210具有260ns的指定最小历时。此外,对于I2C Fm+,即使在SDA线418被发射机500的晶体管508下拉的情况下,针对SDA线418操作所准许的最大下降时间也为120ns,其对应于上拉电阻器2002的最大上升时间。对于CCIe设备,SDA线418的下降时间可被假定为具有比I2C最大下降时间显著更快的下降时间。例如,CCIe设备可以针对开始状况为SDA线418提供20ns的标称下降时间。因此,CCIe设备可以在2940ns内传送CCIe字连同开始状况。携带19比特信息的CCIe字的原始比特率可被计算为:

19比特/2940ns≈6.4Mbps。

然而,每个CCIe字可包括16比特数据和3比特开销,从而提供被计算为5.4Mbps(≈16比特/2940ns)的净数据率。

16比特/2940ns≈5.4Mbps。

在另一示例中,CCIe设备可以使用推挽式驱动器而不是开漏驱动器来传送12码元CCIe字。可以得到改善的性能并且可以按20MHz码元速率达成至少16.7Mbps的链路速率。CCIe设备可以使用能够在I2C操作期间模仿开漏驱动器行为(包括CCIe模式中的开始状况)的CMOS推挽式驱动器。CCIe设备可以通过选择性地禁用推挽式驱动器的PMOS晶体管来模仿开漏驱动器行为。替换地或附加地,CCIe设备可以在CCIe模式中在12个码元期间活跃地从推挽式驱动器的PMOS晶体管驱动高信号状态。结果,可以使用50ns码元周期1212,从而实现在600ns内传送12码元CCIe字1206、1208。tSU+tHD=540ns时段(建立时间1216和保持时间1210)的开始状况历时被维持。在这种配置中,针对CCIe模式传输在1140ns内发送一个字是可能的,其等效于如下计算的原始比特率:

19比特/1140ns≈16.7Mbps。

然而,每个CCIe字可包括16比特数据和3比特开销,从而提供如下计算的净数据率:

16比特/1140ns≈14.0Mbps。

在第三示例中,当仅具有CCIe能力的设备耦合至总线430时,具有CCIe能力的设备可以将CMOS推挽式驱动器用于所有传输。结果,码元周期1212可以保守地缩短至50ns,并且600ns内的12码元CCIe字1206、1208的传输可以在600ns内发送。因为不需要遵循I2C的开始状况,所以可以通过提供建立时段1216达等效于50ns码元周期1212的历时并且提供保持时段1210达等效于50ns码元周期1212的历时来实现开始状况时段,由此将开始状况缩短至100ns的历时。在此示例中,可以在700ns中传送一个19比特字,其等效于27.1Mbps(≈19比特/700ns)的比特率,该比特率等效于如下计算的原始比特率:

19比特/700ns≈27.1Mbps。

然而,每个CCIe字可包括16比特数据和3比特开销,从而提供如下计算的净数据率:

16比特/700ns≈22.9Mbps。

支持多个通信模式的系统的第一示例

再次参照图3、4和17,系统或装置300、1700可以采用由多模总线302互连的多个设备3041-304n、312和3141-314n。多模总线302可以包括双导线串行总线430,该双导线串行总线430包括第一线416和第二线418。第一操作模式实现用于串行总线430上的数据传输的第一协议,并且第二模式实现用于串行总线430上的数据传输的第二协议。串行总线430可以在I2C和CCIe操作模式中操作。该总线可以是兼容I2C的总线。在一个示例中,第一线416在串行总线430作为I2C总线操作时充当SCL线,并且第二线418在串行总线430作为I2C总线操作时充当SDA线416。

耦合至总线302的第一组设备312和/或3041-304n可被配置成在第一操作模式中将第一线用于数据传输并且将第二线用于第一时钟信号,并且在第二操作模式中,耦合至总线的第二组设备312和/或3141-314n可被配置成将第一线和第二线两者用于数据传输而同时将第二时钟信号嵌入在数据传输的码元转变内。第二时钟信号可以具有比第一时钟信号更大的频率。

第一组设备312和/或3041-304n以及第二组设备312和/或3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第一线。第一组设备312和/或3041-304n以及第二组设备312和/或3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第二线。

在第一操作模式中,来自第一组设备312和/或3041-304n中的主设备312可以在总线的第一线上向来自第一组设备312和/或3041-304n中的从设备3041-304n传送数据。

在第二操作模式中,来自第二组设备312和/或3141-314n中的主设备312可以在总线的第一线上向来自第二组设备312和/或3141-314n中的从设备3141-314n传送数据。

在第二操作模式中,第一组从设备3041-304n可以在第一线和第二线上接收抑制对有效从节点地址的检测的复位指示符。该复位指示符可以例如是I2C开始状况。在第二操作模式中,当复位指示符被插入第一线和第二线时,可以周期性地中断数据传输,由此使第一组设备3041-304n在检测到有效的比特序列之前使其总线逻辑复位。

在第一操作模式中,主节点312可以在第一线上发送第一比特序列,该第一比特序列向第二组设备3141-314n指示至第二操作模式的切换。主节点312可以在总线430上发送退出码元序列,该退出码元序列向第二组设备3141-314n指示至第一操作模式的切换。

第二操作模式可以在总线430上具有比第一操作模式更高的传输比特率。例如,第一操作模式可以在总线430上支持每秒1兆比特的最大比特率,而第二操作模式可以支持每秒6.4兆比特的最大比特率。在另一示例中,第一操作模式可以在总线430上支持每秒1兆比特的最大比特率,而第二操作模式可以支持每秒16.7兆比特的最大比特率。

第二组设备3141-314n可以能够在第一操作模式和第二操作模式两者中操作。

在一个示例中,总线430耦合至包括来自第二组设备3141-314n中的第一设备在内的基带处理器,并且耦合至包括来自第二组设备3141-314n中的第二设备在内的图像传感器。总线430可以控制基带处理器与图像传感器之间的数据信号。

在一些实例中,第二组设备3141-314n中的每个设备适配成将数据比特序列转换成多个(M个)转变数,将每个转变数转换成来自一组顺序编号中的顺序编号,以及在总线上传送该顺序编号。M个转变数可被表达为三进制位。该顺序编号可以从基于自紧挨着的前一顺序编号的转变的转变数来选择以保证没有两个顺序编号是相同的。可以通过将多个转变数转换成顺序编号来将每个转变数转换成来自一组顺序编号中的顺序编号。

支持多个通信模式的系统的第二示例

继续参照图3、4和17,系统或装置300、1700可以采用由多模总线302互连的多个设备3041-304n、312和3141-314n。总线302可以包括双导线串行总线430,该双导线串行总线430具有第一线418和第二线416。该总线可以是兼容I2C的总线。第一组设备3041-304n、312可以在第一操作模式中将第一线418用于数据传输并且将第二线416用于第一时钟信号,而耦合至总线的第二组设备312和3141-314n可被配置成在第二操作模式中将第一线和第二线两者用于数据传输而同时将第二时钟信号嵌入在数据传输的码元转变内。

第一组设备3041-304n、312以及第二组设备312和3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第一线418。第一组设备3041-304n、312以及第二组设备312、3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第二线416。

在一个示例中,在第一操作模式中,来自第一组设备3041-304n、312中的主设备312在总线430的第一线418上向从设备3041-304n传送数据。在另一示例中,在第二操作模式中,来自第二组设备312、3141-314n中的主设备312在总线430的第一线上向从设备3141-314n传送数据。第二操作模式可以在总线430上具有比第一操作模式更高的传输比特率。在一个示例中,第一操作模式可以在总线430上具有每秒1兆比特的最大比特率,而第二操作模式可以在总线430上具有每秒6.4兆比特的最大比特率。在第二示例中,第一操作模式可以在总线430上具有每秒1兆比特的最大比特率,而第二操作模式可以在总线430上具有每秒16.7兆比特的最大比特率。第二时钟信号可以具有比第一时钟信号更大的频率。

第一操作模式可以实现用于总线430上的数据传输的第一协议,并且第二模式实现用于总线430上的数据传输的第二协议。

在第二操作模式中,第一组设备可以在第一线418和第二线416上接收抑制对有效从节点地址的检测的复位指示符。在第二操作模式中,可以通过在第一线418和第二线416中插入复位指示符来周期性地中断数据传输,该复位指示符使第一组设备3041-304n在检测到有效的比特序列之前使其总线逻辑复位。

在第一操作模式期间,主节点312可以在第一线418上发送第一比特序列,该第一比特序列向第二组设备3141-314n指示正在作出至第二操作模式的切换。在第二操作模式期间,主节点312可以在总线430上发送退出码元序列,该退出码元序列向第二组设备3141-314n指示正在作出至第一操作模式的切换。

在一个示例中,第二组设备3141-314n可以能够在第一操作模式和第二操作模式两者中操作。

在一些实例中,总线430耦合至包括来自第二组设备3141-314n中的第一设备在内的基带处理器,并且耦合至包括来自第二组设备3141-314n中的第二设备在内的图像传感器。总线可以携带基带处理器与图像传感器之间的控制数据信号。第二组设备3141-314n中的每个设备可被适配成将数据比特序列转换成多个(M个)转变数,将每个转变数转换成来自一组顺序编号中的顺序编号,以及在总线430上传送该顺序编号。该顺序编号可以从基于自紧挨着的前一顺序编号的转变的转变数来选择以保证没有两个顺序编号是相同的。可以通过将多个转变数转换成顺序编号来将每个转变数转换成来自一组顺序编号中的顺序编号。

支持多个通信模式的系统的第三示例

继续参照图3、4和17,系统或装置300、1700可以采用由多模总线302互连的多个设备3041-304n、312和3141-314n。总线302可以包括双导线串行总线430,该双导线串行总线430具有第一线418和第二线416。该总线可以是兼容I2C的总线。第一组设备3041-304n、312可以在第一操作模式中将第一线418用于数据传输并且将第二线416用于第一时钟信号,而耦合至总线的第二组设备312和3141-314n可被配置成在第二操作模式中将第一线和第二线两者用于数据传输而同时将第二时钟信号嵌入在数据传输的码元转变内。

在操作中,处理电路可被配置成向和从发射机和接收机电路发送和接收数据,并且发射机和接收机电路可被配置成在包括第一线418和第二线416的总线430上进行通信。发射机和接收机电路可被配置成在第一操作模式中将第一线418用于数据传输并且将第二线416用于第一时钟信号,以及在第二操作模式中将第一线418和第二线416两者用于传送数据,以使得第二时钟信号被嵌入在数据传输的码元转变内。

该设备可以与耦合至总线的其他设备集合共存,但是仅在第一模式中操作而同时在第一操作模式和第二操作模式两者期间不断地监视至少第一线418。该设备可以与耦合至总线430的其他设备集合共存,但是仅在第一模式中操作而同时在第一操作模式和第二操作模式两者期间不断地监视至少第二线416。

该设备可以在第一操作模式中在总线430的第一线418上向从设备传送数据。该设备可以在第二操作模式中在总线430的第一线418和第二线416上向从设备传送数据。第一操作模式可以实现用于总线430上的数据传输的第一协议,并且第二模式可以实现用于总线430上的数据传输的第二协议。

发射机和接收机电路可被配置成在第二操作模式期间在第一线418和第二线416上发送复位指示符以抑制在第一操作模式中操作的其他设备检测到有效的从节点地址。第二操作模式期间的数据传输可以通过在第一线418和第二线416中插入复位指示符来周期性地中断,该复位指示符使在第一模式中操作的其他设备在检测到有效的比特序列之前使其总线逻辑复位。

在一些示例中,发射机和接收机电路被配置成在第一操作模式中在第一线418上发送第一比特序列,该第一比特序列向能够在第一模式和第二模式两者中操作的其他设备指示至第二操作模式的切换。主节点312可以在第二操作模式中在总线430上发送退出码元序列,该退出码元序列向能够在第一模式和第二模式两者中操作的其他设备指示至第一操作模式的切换。

第二操作模式可以在总线上具有比第一操作模式更高的传输比特率。在一个示例中,第一操作模式在总线430上具有每秒1兆比特的最大比特率,而第二操作模式具有每秒6.4兆比特的最大比特率。在另一示例中,第二时钟信号可以具有比第一时钟信号更大的频率。

支持多个通信模式的系统的第四示例

继续参照图3、4和17,系统或装置300、1700可以采用由多模总线302互连的多个设备3041-304n、312和3141-314n。总线302可以包括双导线串行总线430,该双导线串行总线430具有第一线418和第二线416。该总线可以是兼容I2C的总线。第一组设备3041-304n、312可以在第一操作模式中将第一线418用于数据传输并且将第二线416用于第一时钟信号,而耦合至总线的第二组设备312和3141-314n可被配置成在第二操作模式中将第一线和第二线两者用于数据传输而同时将第二时钟信号嵌入在数据传输的码元转变内。

根据本文公开的某些方面,主设备312可以查明耦合至总线的所有设备是否均能够根据第三操作模式来操作,该第三操作模式将第一线和第二线两者均用于数据传输而同时将第二时钟信号嵌入在针对第一时钟信号的数据传输线的码元转变内,并且仅在耦合至总线的所有设备均能够在第三模式中操作的情况下才使设备3041-304n、312和3141-314n在第三操作模式中操作。在一个示例中,第三操作模式可以提供相对于第二模式减少的信令开销。只要耦合至总线的所有设备3041-304n、312和3141-314n均能够在第三模式中操作,或者只要耦合至总线的所有活跃设备3041-304n、312和3141-314n均能够在第三模式中操作,则该组设备3041-304n、312和3141-314n就被配置成在第三模式中操作。活跃设备可以是已上电、耦合至总线430、和/或正在监视总线430的设备。设备3041-304n、312和3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第一线418。第一组设备3041-304n、312以及第二组设备312和3141-314n可以在第一操作模式和第二操作模式两者中并发地监视至少第二线416。

在一个方面,第一操作模式实现用于总线430上的数据传输的第一协议,第二模式实现用于总线430上的数据传输的第二协议,并且第三模式实现用于总线430上的数据传输的第三协议。第二操作模式可以准许传统设备在第一线418和第二线416上接收抑制对有效从节点地址的检测的复位指示符。在第二操作模式中,数据传输可以通过在第一线418和第二线416中插入复位指示符来周期性地中断,该复位指示符使耦合至总线430的传统设备在检测到有效的比特序列之前使其总线逻辑复位。在第三操作模式中,不在第一线418和第二线416中发送复位指示符。

第三操作模式可以在总线430上具有比第二操作模式更高的传输比特率。第三操作模式可以在总线430上具有每秒27.1兆比特的最大比特率。

在一方面,主设备312可以查明耦合至总线的所有设备能够根据第三模式来操作,并且向耦合至总线的所有设备3041-304n、312和3141-314n发送命令以在第三模式中操作。

可配置用于CCIe和I2C操作的处理系统的示例

图21是解说采用可被配置成执行本文所公开的一个或多个功能的处理电路2102的装置的硬件实现的简化示例的概念图2100。根据本公开的各种方面,元素、或元素的任何部分、或者元素的任何组合可使用处理电路2102来实现。处理电路2102可包括一个或多个处理器2104,其由硬件和软件模块的某种组合来控制。处理器2104的示例包括:微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。该一个或多个处理器2104可包括执行特定功能并且可由软件模块2116之一来配置、增强或控制的专用处理器。该一个或多个处理器2104可通过在初始化期间加载的软件模块2116的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块2116来进一步配置。

在所解说的示例中,处理电路2102可使用由总线2110一般化地表示的总线架构来实现。取决于处理电路2102的具体应用和整体设计约束,总线2110可包括任何数目的互连总线和桥接器。总线2110将各种电路链接在一起,包括一个或多个处理器2104、存储2106。存储2106可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质。总线2110还可链接各种其它电路,诸如定时源、定时器、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,并且其中的一些电路因此将不再进一步描述。总线接口2108可提供总线2110与线接口电路2112之间的接口。线接口电路2112提供用于在传输介质(诸如串行总线)上与各种其他装置进行通信的手段。取决于该装置的本质,也可提供用户接口2118(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口可直接或通过总线接口2108通信地耦合至总线2110。

处理器2104可负责管理总线2110和一般处理,包括对存储在计算机可读介质(其可包括存储2106)中的软件的执行。在这一方面,处理电路2102(包括处理器2104)可被用来实现本文所公开的方法、功能和技术中的任一种。存储2106可被用于存储处理器2104在执行软件时操纵的数据,并且该软件可被配置成实现本文所公开的方法中的任一种。

处理电路2102中的一个或多个处理器2104可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储2106中或驻留在外部计算机可读介质中。计算机可读介质和/或存储2106可以是非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存存储器设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的软件和/或指令的合适介质。作为示例,计算机可读介质和/或存储2106还可包括载波、传输线、和任何其它用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质和/或存储2106可驻留在处理电路2102中、处理器2104中、在处理电路2102外部、或跨包括该处理电路2102在内的多个实体分布。计算机可读介质和/或存储2106可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。

存储2106可维持以可加载代码段、模块、应用、程序等来维持和/或组织的软件,其在本文中可被称为软件模块2116。软件模块2116中的每一个可包括在安装或加载到处理电路2102上并被一个或多个处理器2104执行时有助于运行时映像2114的指令和数据,运行时映像2114控制一个或多个处理器2104的操作。在被执行时,某些指令可使得处理电路2102执行根据本文所描述的某些方法、算法和过程的功能。

软件模块2116中的一些可在处理电路2102初始化期间被加载,并且这些软件模块2116可配置处理电路2102以实现本文所公开的各种功能的执行。例如,一些软件模块2116可配置处理器2104的内部设备和/或逻辑电路2122,并且可管理对外部设备(诸如,线接口电路2112、总线接口2108、用户接口2118、定时器、数学协处理器等)的访问。软件模块2116可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路2102提供的各种资源的访问。这些资源可包括存储器、存储2106、处理时间、对线接口电路2112的访问、用户接口2118等。

处理电路2102的一个或多个处理器2104可以是多功能的,由此软件模块2116中的一些被加载和配置成执行不同功能或相同功能的不同实例。这一个或多个处理器2104可附加地被适配成管理响应于来自例如用户接口2118、线接口电路2112和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,这一个或多个处理器2104可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器2104服务的任务集。在一个示例中,多任务环境可使用分时程序2120来实现,分时程序2120在不同任务之间传递对处理器2104的控制权,由此每个任务在完成任何未决操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器2104的控制权返回给分时程序2120。当任务具有对一个或多个处理器2104的控制权时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序2120可包括操作系统、在循环基础上转移控制权的主循环、根据各功能的优先级化来分配对一个或多个处理器2104的控制权的功能、和/或通过将对一个或多个处理器2104的控制权提供给处置功能来对外部事件作出响应的中断驱动式主循环。

图22是解说用于CCIe总线上的数据通信的方法的流程图2200。该方法的各个步骤可由发射机设备执行,该发射机设备包括例如图1-8、20、22、和/或24中解说的设备和电路的一些组合。

在框2202,该设备可以从一组比特生成转变数。该转变数可以包括12位三进制数。在一个示例中,该设备可以从一组比特生成转变数。该转变数可以是12位三进制数。

在步骤2204,该设备将该转变数转换成码元序列。定时信息可以编码在该码元序列中的诸码元之间的转变中。编码在码元序列中的定时信息使接收机能够从该码元序列生成接收时钟。通过向转码器提供该三进制数,转变数可被转换成码元序列。

在一个示例中,转码器首先接收该三进制数的最高有效位,转码器可以最后接收该三进制数的最低有效位,并且最高有效位与最低有效位之间的中间位以有效性降序被提供给转码器。在另一示例中,转码器首先接收该三进制数的最低有效位,转码器可以最后接收该三进制数的最高有效位,并且最高有效位与最低有效位之间的中间位以有效性升序被提供给转码器。

在框2206,当双导线串行总线在第一操作模式中操作时,该设备可以在该双导线串行总线上传送该码元序列。该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上进行通信的设备忽略。可以为双导线串行总线定义4个信令状态。该三进制数的每一位可以从三个可用码元之一中选择和/或指示要在双导线串行总线上传送的下一码元。这三个可用码元中的每一者可以不同于正在双导线串行总线上传送的当前码元。相应地,连贯码元之间的每个转变导致双导线串行总线的信令状态的改变。

在一个示例中,双导线串行总线可以是当在第一操作模式中操作时支持CCIe通信的多用途总线。对于第二操作模式,双导线串行总线可以支持I2C和/或CCI通信模式。当控制序列在双导线串行总线上传送时,该设备可被配置或适配成导致从第一操作模式至第二操作模式的改变。在CCIe操作模式中,可以在CCIe操作模式中在双导线串行总线上传送的码元序列之间提供I2C开始状况。开始状况的定时的某些方面可以导致配置成用于I2C操作模式的另一设备(包括只能够使用I2C协议进行通信的设备)中的接收逻辑的复位。

在一个示例中,可以在双导线串行总线上传送码元序列之前,在双导线串行总线上传送第一I2C开始状况。在码元序列已在双导线串行总线上传送之后,可以在双导线串行总线上传送第二I2C开始状况。在第一I2C开始状况与第二I2C开始状况之间流逝的时间可以小于I2C协议在I2C操作模式中接收地址字所需要的时间。相应地,监视双导线串行总线的I2C接收机通常在第一开始状况之后并且在第二I2C开始状况之前在双导线串行总线的SCL信号导线上感知最大6个时钟循环。

图23是解说采用处理电路2302的装置的硬件实现的简化示例的示图2300。该处理电路通常具有处理器2316,处理器2316可包括微处理器、微控制器、数字信号处理器、定序器、状态机等中的一者或多者。处理电路2302可用由总线2320一般化地表示的总线架构来实现。取决于处理电路2302的具体应用和整体设计约束,总线2320可包括任何数目的互连总线和桥接器。总线2320将包括一个或多个处理器和/或硬件模块(由处理器2316,模块或电路2304、2306、2308、2310,可配置成通过包括多个连接器或导线的多通道CCIe总线2314进行通信的线接口电路2312,以及计算机可读存储介质2318表示)的各种电路链接在一起。总线2320还可链接各种其它电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。

处理器2316负责一般性处理,包括执行存储在计算机可读存储介质2316上的软件。该软件在由处理器2316执行时使处理电路2302执行上文针对任何特定装置描述的各种功能。计算机可读存储介质2318还可被用于存储由处理器2316在执行软件时操纵的数据,包括从在多通道CCIe总线2314上传送的码元中解码的数据。处理电路2302进一步包括模块和/或电路2304、2306和2308中的至少一者。模块和/或电路2304、2306、2308和2310可以是在处理器2316中加载、配置和运行的软件模块、驻留/存储在计算机可读存储介质2318中的软件模块、耦合至处理器2316的一个或多个硬件模块、或其某种组合。模块和/或电路2304、2306和2308可包括微控制器指令、状态机配置参数、或其某种组合。

在一种配置中,用于无线通信的装置2300包括被配置成从一组比特生成转变数的模块和/或电路2304、被配置成将该转变数转换成码元序列的模块和/或电路2306、以及被配置成在双导线串行总线的信令状态中传送该码元序列的模块和/或电路2308。该装置2300可以包括附加的模块和/或电路,包括例如控制串行总线2314和/或装置2314的操作模式的模块和/或电路2310。例如,模式控制模块和/或电路2310可以包括命令生成模块或者与命令生成模块协作,该命令生成模块在串行总线2314上传送控制序列。在另一示例中,模式控制模块和/或电路2310可以导致线接口电路2314的重新配置以在I2C操作模式中实现开漏线驱动器或其等效物并且在CCIe操作模式中实现推挽式驱动器。

图24是解说用于CCIe总线上的数据通信的方法的流程图2400。该方法的各个步骤可使用CCIe设备中的接收机电路系统和模块执行,该CCIe设备包括例如图1-8、20、23、和/或24中解说的设备和电路的某种组合。

在步骤2402,当双导线串行总线在第一操作模式中操作时,该设备可以从该双导线串行总线的信令状态的转变推导接收时钟。双导线串行总线可以是当该双导线串行总线在第一操作模式中操作时并发地支持CCIe通信的多用途总线。双导线串行总线可以在第二操作模式中支持I2C通信。双导线串行总线可以支持与兼容I2C、CCI和/或CCIe协议中的一者或多者的设备的通信。

在步骤2404,该设备可以使用该接收时钟来接收根据第一操作模式在双导线串行总线上传送的码元序列。双导线串行总线的信令状态的转变可以对应于码元序列中的诸码元之间的转变。通过确定双导线串行总线上的I2C开始状况并且根据由接收时钟定义的定时来从双导线串行总线接收12个码元,可以从该双导线串行总线接收该码元序列。

在一个方面,该码元序列可由配置成用于当双导线串行总线在第二操作模式中操作时在该双导线串行总线上进行通信的设备忽略。

在框2406,该设备可以从该码元序列生成转变数。转变数可以具有多个位,其中每一位表示码元序列中的一对连贯码元之间的转变。

在步骤2408,该设备可以从该转变数解码数据。该转变数可以是12位三进制数。可以为双导线串行总线定义4个信令状态。三进制数的每一位可以表示双导线串行总线上的一对连贯信令状态之间的关系。码元序列中的每一个码元可以是由双导线串行总线的信令状态定义的4个码元之一。三进制数的每一位可以定义码元序列中的一对连贯码元之间的关系。

图25是解说采用处理电路2502的装置的硬件实现的简化示例的示图2500。该处理电路通常具有处理器2516,处理器2516可包括微处理器、微控制器、数字信号处理器、定序器、状态机等中的一者或多者。处理电路2502可用由总线2520一般化地表示的总线架构来实现。取决于处理电路2502的具体应用和整体设计约束,总线2520可包括任何数目的互连总线和桥接器。总线2520将包括一个或多个处理器和/或硬件模块(由处理器2516,模块和/或电路2504、2506和2508,可配置成通过包括多个连接器或导线的多通道CCIe总线2514进行通信的线接口电路2512,以及计算机可读存储介质2518表示)的各种电路链接在一起。总线2520还可链接各种其它电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。

处理器2516负责一般性处理,包括执行存储在计算机可读存储介质2516上的软件。该软件在由处理器2516执行时使处理电路2502执行上文针对任何特定装置描述的各种功能。计算机可读存储介质2518还可被用于存储由处理器2516在执行软件时操纵的数据,包括从在多通道CCIe总线2514上传送的码元中解码的数据。处理电路2502进一步包括模块和/或电路2504、2506和2508中的至少一者。模块和/或电路2504、2506和2508可以是在处理器2516中运行的软件模块、驻留/存储在计算机可读存储介质2518中的软件模块、耦合至处理器2516的一个或多个硬件模块、或其某种组合。模块和/或电路2504、2506和2508可包括微控制器指令、状态机配置参数、或其某种组合。

在一种配置中,用于无线通信的装置2500包括被配置成从双导线串行总线的信令状态的转变推导接收时钟并且使用该接收时钟来从双导线串行总线接收码元序列的CDR电路2504,被配置成从该码元序列生成转变数的模块和/或电路2506,以及被配置成从该转变数解码数据的模块和/或电路2508。双导线串行总线的信令状态的转变可以对应于码元序列中的诸码元之间的转变。转变数可以具有多个位,其中每一位表示码元序列中的一对连贯码元之间的转变。

图26是解说与采用总线的系统或设备有关的方法的流程图2600。在一个示例中,设备可以具有包括第一线和第二线的总线、耦合至该总线的第一组设备、以及耦合至该总线的第二组设备。该方法可以适用于本文公开的CCIe总线430,由此第一线可以是SDA线418并且第二线可以是SCL线416(例如,参见图4和17)。

在步骤2602,在第一操作模式中,耦合至总线的第一组设备可被配置成将第一线用于数据传输并且将第二线用于第一时钟信号。

在步骤2604,在第二操作模式中,耦合至总线的第二组设备可被配置成将第一线和第二线两者用于数据传输而同时将第二时钟信号嵌入在数据传输的码元转变内。

在一些实例中,总线可以在第三模式中操作。在此类实例中,可以在步骤2606确定耦合至总线的所有活跃设备是否均能够在第三模式中操作。在一个示例中,可以基于由总线主设备维护的配置信息来作出该确定。该配置信息可以包括预定义配置信息和/或通过发现协议获得的信息等。该配置信息可以包括对耦合至总线的已被标识为当前活跃的设备的能力的描述。当前活跃的设备可以是已在启动规程中标识出的设备、已对总线上传送的广播作出响应的设备、和/或已参与总线上的通信事务的设备。不活跃设备可以是休眠设备和/或尚未对总线上传送的包括设备SID的通信或者包括预期促使来自设备的响应的广播的通信作出响应的设备。

如果在步骤2606确定耦合至总线的所有活跃设备均能够在第三操作模式中操作,则在步骤2608,可以使总线在第三操作模式中操作。在第三操作模式中,一个或多个设备被配置成将第一线和第二线两者用于数据传输,而同时将时钟信号嵌入在数据传输的码元转变内。

在一些实例中,第一组设备和第二组设备在第一操作模式和第二操作模式两者中并发地监视总线的至少一根导线。在第一操作模式中,第一组设备中的主设备可以在总线的第一线上向第一组设备中的从设备传送数据。在第二操作模式中,第二组设备中的主设备可以在总线上向第二组设备中的从设备传送数据。第二组设备中的设备能够在第一操作模式和第二操作模式两者中操作。主设备可以能够在第一操作模式和第二操作模式中操作。设备可以在第一操作模式和第二操作模式两者中充当主设备。能够在第一操作模式和第二操作模式两者中充当主设备的设备可被认为是第一组设备和第二组设备两者的成员。主设备可以能够在第一、第二和第三操作模式中操作。设备可以在第一、第二、和第三操作模式中的每一者中充当主设备。

在一个方面,第一操作模式实现用于总线上的数据传输的第一协议,并且第二模式实现用于总线上的数据传输的第二协议。第一协议可以对应于I2C操作模式或者与I2C操作模式兼容。第二协议可以对应于CCIe操作模式或者与CCIe操作模式兼容。

在第二操作模式中,第一组设备可以在第一线和第二线上接收抑制对有效从节点地址的检测的复位指示符。在一个示例中,通过在第一线和第二线中插入复位指示符来周期性地中断第二操作模式中的数据传输,该复位指示符使第一组设备在检测到有效的比特序列之前使其总线逻辑复位。当第一操作模式对应于I2C操作模式或者与I2C操作模式兼容时,该复位指示符可以对应于开始状况。

根据本文公开的某些方面,第二组设备中的主节点在第一操作模式期间在第一线上发送第一比特序列,其中该第一比特序列向第二组设备指示至第二操作模式的切换。在第二操作模式期间,主节点可以在总线上发送退出码元序列,该退出码元序列向第二组设备指示至第一操作模式的切换。

根据本文公开的某些方面,总线是兼容I2C的总线。在一个示例中,第一操作模式可以在总线上具有每秒1兆比特的最大比特率,而第二操作模式可以具有每秒6.4兆比特的最大比特率。在另一示例中,第一操作模式在总线上具有每秒1兆比特的最大比特率,而第二操作模式具有每秒16.7兆比特的最大比特率。

在一些实例中,第一操作模式实现用于总线上的数据传输的第一协议,第二操作模式实现用于总线上的数据传输的第二协议,并且第三操作模式实现用于总线上的数据传输的第三协议。第三操作模式可以在总线上具有每秒27.1兆比特的最大比特率。

在一个示例中,总线耦合至第二组设备中包括基带处理器在内的第一设备,并且耦合至第二组设备中包括图像传感器在内的第二设备。总线可以携带基带处理器与图像传感器之间的控制数据信号。

根据本文公开的某些方面,第二组设备中的每个设备可被适配成将数据比特序列转换成多个(M个)转变数,将每个转变数转换成来自一组顺序编号中的顺序编号,以及在总线上传送该顺序编号。该顺序编号可以从基于自紧挨着的前一顺序编号的转变的转变数来选择以保证没有两个顺序编号是相同的。可以通过将多个转变数转换成顺序编号来将每个转变数转换成来自一组顺序编号中的顺序编号。

应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。应理解,基于设计偏好,可以重新编排这些过程中各步骤的具体次序或层次。所附方法权利要求以范例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。

提供之前的描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文所示出的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于……的装置”来明确叙述的。

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