传感器全局总线的制作方法

文档序号:12481429阅读:312来源:国知局
传感器全局总线的制作方法与工艺

本申请要求于2014年4月28日在美国专利局提交的临时专利申请No.61/985,276、以及于2015年4月23日在美国专利局提交的非临时专利申请No.14/694,618的优先权和权益,这些申请的全部内容通过引用纳入于此。

技术领域

本公开一般涉及主机处理器与外围设备之间的接口,尤其涉及连接传感器的接口。



背景技术:

移动设备(诸如蜂窝电话)的制造商可从各种来源(包括不同制造商)获得移动设备的各组件。例如,移动计算设备中的应用处理器可从第一制造商获得,而该移动计算设备所采用的传感器可从一个或多个其他制造商获得。基于各种标准的接口或专有接口已被定义用于互连移动设备和其他装置中的集成电路(IC)设备,并且这些接口通常涉及特定应用或应用类型。例如,蜂窝电话可以使用兼容或遵从由移动行业处理器接口联盟(MIPI)所规定的相机串行接口标准的通信接口。

针对特定应用被优化的常规接口可能不适于在其他应用中使用。例如,MIPI标准定义了相机控制接口(CCI),CCI使用被配置为连接主控设备以及一个或多个从动设备的总线的双导线、双向、半双工串行接口。CCI被优化以处置与显示器相关联的数据通信要求,这些要求通常超过在各种不同类型的设备中得到广泛运用的集成电路间(I2C)总线的能力。CCI信令和协议可与采用I2C总线使用CCI协议进行通信的设备兼容。即,CCI协议使用I2C串行时钟(SCL)和串行数据(SDA)线,并且可在同一总线上部署CCI设备和I2C设备以使得两个或更多个CCI设备可以使用CCI协议进行通信,而涉及I2C总线的任何通信使用I2C协议。

CCI的较新版本可使用经修改的协议来支持较快信令速率以提供较高吞吐量。在一个示例中,CCI扩展(CCIe)总线可被用于为与CCIe总线操作兼容的设备提供较高数据率。此类设备可被称为CCIe设备,并且CCIe设备可以在彼此通信时通过将数据编码为在常规CCI总线的SCL线和SDA线两者上传送的码元来达到较高数据率。CCIe设备和I2C设备可在同一CCIe总线上共存,以使得多个设备可以使用CCIe编码来交换数据,而涉及旧式I2C设备的数据交换可根据I2C信令约定来传送。

一直存在对于在配置为将不同类型的外围或协作设备连接至处理器的总线的串行接口上提供优化通信的需求。

概述

本文所公开的实施例提供可改善串行总线的性能的系统、方法和装置,该串行总线耦合被配置成使用不同协议和/或信令方案通过该串行总线进行通信的设备。在本公开的一方面,提供了方法、计算机可读存储设备、和装备。

在本公开的一方面,一种数据通信方法包括:在串行总线以第一操作模式操作时向耦合至该串行总线的多个设备传送第一命令,其中第一命令是根据第一协议来传送的以使该串行总线以第二操作模式来操作;在该串行总线以第二操作模式操作时根据第二协议与该多个设备中的第一设备进行通信;以及根据第一协议向该多个设备传送第二命令以终止第二操作模式。与第一设备进行通信可包括:在码元序列中编码数据,其中时钟信息被编码在该码元序列中的连贯码元对之间的转变中;在无额外码元的情况下传送该码元序列中的两个码元将导致该串行总线上的非期望信令状况并且在有该额外码元的情况下传送这两个码元将防止该串行总线上的该非期望信令状况时在这两个码元之间插入该额外码元;以及在该串行总线上传送该码元序列。

在本公开的一方面,一种用于数据通信的装置包括:收发机,其将该装置耦合至串行总线;以及处理电路。该处理电路可被配置成在该串行总线以第一操作模式操作时向耦合至该串行总线的多个设备传送第一命令。第一命令可根据第一协议来传送以使该串行总线以第二操作模式来操作。该处理电路可被配置成根据第二协议在码元序列中编码数据,其中时钟信息被编码在该码元序列中的连贯码元对之间的转变中。该处理电路可被配置成在无额外码元的情况下传送该码元序列中的两个码元将导致串行总线上的非期望信令状况并且在有额外码元的情况下传送这两个码元将防止串行总线上的非期望信令状况时将额外码元插入在这两个码元之间。该处理电路可被配置成:根据第二协议在该串行总线上传送该码元序列;以及根据第一协议向该多个设备传送第二命令以终止第二操作模式。

在本公开的一方面,一种在数据通信接口中执行的方法包括:在串行总线以第一操作模式操作时向耦合至该串行总线的多个设备传送第一命令,其中第一命令是根据第一协议来传送的以使该串行总线以第二操作模式来操作;在该串行总线以第二操作模式操作时根据第二协议与该多个设备中的第一设备进行通信;以及根据第一协议向该多个设备传送第二命令以终止第二操作模式。以第二操作模式在该串行总线的第一导线上传送的有限历时脉冲可具有使该多个设备中的第二设备的滤波器抑制该有限历时脉冲的历时。

在本公开的一方面,一种装备包括:用于在串行总线以第一操作模式操作时向耦合至该串行总线的多个设备传送第一命令的装置,其中第一命令是根据第一协议来传送的以使该串行总线以第二操作模式来操作;用于在该串行总线以第二操作模式操作时根据第二协议与该多个设备中的第一设备进行通信的装置;以及用于根据第一协议向该多个设备传送第二命令以终止第二操作模式的装置。以第二操作模式在该串行总线的第一导线上传送的有限历时脉冲可具有使该多个设备中的第二设备的滤波器抑制该有限历时脉冲的历时。

附图简述

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

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

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

图4解说了根据本文所公开的某些方面的编码方案的第一示例。

图5解说了I2C一字节写数据操作的时序图。

图6解说了连接至共用串行总线的I2C设备和传感器全局总线(SGbus)设备的配置。

图7解说了根据本文所公开的某些方面的用于在串行总线的操作模式之间和/或在可被用在串行总线上的多个协议之间转变的一般化方案。

图8解说了SGbus串行接口上的事务的发起和终止。

图9是解说与根据I2C协议所传送的多个帧相关联的定时的示图。

图10解说了非预期开始和停止状况的发生。

图11解说了根据本文所公开的某些方面的用于在共享总线上传送数据的编码方案的第二示例。

图12解说了根据本文所公开的某些方面的SGbus编码的示例。

图13解说了根据本文所公开的某些方面的SGbus编码的进一步示例。

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

图15是根据本文所公开的一个或多个方面的用于使用SGbus来通信的方法的第一示例的流程图。

图16是解说采用根据本文所公开的某些方面适配的处理电路的装置的硬件实现的第一示例的示图。

图17是根据本文所公开的一个或多个方面的用于使用SGbus来通信的方法的第二示例的流程图。

图18是解说采用根据本文所公开的某些方面适配的处理电路的装置的硬件实现的第二示例的示图。

详细描述

以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以便提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。

现在将参照各种装置和方法给出通信系统的若干方面。这些装置和方法将在以下详细描述中进行描述并在附图中由各种框、模块、组件、电路、步骤、过程、算法等(统称为“元素”)来解说。这些元素可使用电子硬件、计算机软件或其任何组合来实现。此类元素是实现成硬件还是软件取决于具体应用和加诸于整体系统上的设计约束。

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

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

传感器全局总线概览

本文所公开的适用于广范围的通信接口的某些方面在传感器全局总线(SGbus)的上下文中描述。SGbus可被部署为用于耦合传感器和处理设备的双导线总线接口。SGbus的某些示例提供与公知的I2C总线的后向兼容性,以致特定旧式I2C设备可通过SGbus所使用的相同导线对进行通信。使用SGbus规范和协议进行通信的设备可以利用比使用其他接口(包括I2C接口)所能提供的更高的性能、吞吐量、可靠性和稳健性。

SGbus可以通过实现低功率接口来降低系统功率要求,并且可以提高比特传输效率。SGbus采用与低开销和高效的总线使用相关联的一种或多种协议,并且SGbus可以实现高速事务和其中该接口为活跃的相应的低时间百分比。在不活跃时,SGbus通常消耗相对较低的功率,这可部分地归因于较小的硅占用空间。例如,通过SGbus连接的一组传感器可按需或按期望在本地配置和管理以使系统级的复杂度最小化。

采用串行总线的设备的示例

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

图2是解说连接至通信总线的装置200的某些方面的示意框图,其中该装置可被实施在以下一者或多者中:无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备、个人数字助理(PDA)或其他手持式设备、上网本、笔记本计算机、电视、娱乐设备、可穿戴设备等。装置200可以包括使用串行总线230来通信的多个设备202、220和222a-222n。串行总线230可以为被配置成用于串行总线230所支持的增强型特征的设备扩展常规I2C总线的能力。例如,串行总线230可以支持比I2C总线高的比特率。

在图2中解说的示例中,设备202可被配置成作为串行总线230上的从动设备来操作。设备202可被适配成提供传感器功能204,该传感器功能204包括和/或管理一个或多个通用传感器、高速传感器、指纹传感器、图像传感器(例如,相机)、触摸屏传感器等。另外,设备202可包括配置寄存器或其他存储206、控制逻辑212、收发机210以及线驱动器/接收机214a和214b。控制逻辑212可包括处理电路,诸如状态机、定序器、信号处理器或通用处理器。收发机210可包括接收机210a、发射机210c和共用电路210b(包括定时、逻辑和存储电路和/或设备)。在一个示例中,发射机210c基于由时钟生成电路208提供的定时来编码并传送数据。

图3是解说可根据本文所公开的某些方面来配置的发射机300和接收机320的示例的框图。对于SGbus操作,发射机300可以将输入数据310转码成三进制(基数3)数,该三进制数被编码在要在SCL 216和SDA 218信号导线上传送的码元中。在所描绘的示例中,输入数据310的每个数据元素(亦称为数据字)可具有预定义数目的比特,诸如8、12、16、19或20比特。转码器302可接收输入数据310并产生每个数据元素的单数位三进制数序列312。在一些实例中,单数位三进制数序列312可表达为多数位三进制数。单数位三进制数可被编码在两个比特中,并且每个单数位三进制数序列312中可以有12个数位。编码器(诸如三进制至码元转换器304)产生被提供给一对线驱动器306的2比特码元流314。在所描绘的示例中,线驱动器306包括驱动SCL 216和SDA 218信号导线的开漏输出晶体管308。在某些示例中,线驱动器306可包括或耦合至驱动SCL 216和SDA 218信号导线的推挽式驱动器。由三进制至码元转换器304生成的2比特码元输出流314在每一对连贯码元314之间导致SCL 216和SDA 218信号导线中的至少一根信号导线的信令状态转变。通过确保连贯码元对不包括两个相同码元来提供这些转变。至少一根导线216和/或218中的信令状态转变的可用性准许接收机320从数据码元流314提取接收时钟338。

在SGbus接口中,接收机320可以包括时钟和数据恢复(CDR)电路328或与其协作。接收机320可以包括向CDR电路328提供原始2比特码元流336的线接口电路326。CDR电路328从原始码元336中提取接收时钟338并且向接收机320的其他电路324和322提供2比特码元流334和接收时钟338。在一些示例中,CDR电路328可以产生多个时钟。解码器(诸如码元至三进制转换器324)可使用接收时钟338来将码元流334解码成12个三进制数的序列332。三进制数332可使用2个比特来编码。转码器322随后可将12个三进制数的每个序列332转换成8比特、12比特、16比特、19比特或20比特输出数据元素330。

带有嵌入式时钟的转变编码方案的示例

图4是解说可由三进制至码元转换器304用于产生具有嵌入式时钟的码元序列314以供在串行总线230上传输的编码方案400的图示。编码方案400还可由接收机320的码元至三进制转换器324用于从接收自串行总线230的码元提取三进制转变数。在SGbus编码方案400中,串行总线230的两根导线准许定义4个基本码元S:{0,1,2,3}。码元序列314、334中的任何两个连贯码元在串行总线230上产生不同信令状态,并且码元序列0,0、1,1、2,2和3,3是连贯码元的无效组合。相应地,在每个码元边界处仅3个有效码元转变可用,其中码元边界由传送时钟确定并且表示第一码元(先前码元Ps)422终止且第二码元(当前码元Cs)424开始的点。

根据本文所公开的某些方面,针对每个Ps码元426,这三个可用转变被指派转变数(T)422。T 426的值可以由三进制数表示。在一个示例中,转变数426的值通过指派用于编码方案的码元排序圆402来确定。码元排序圆402为四个可能码元分配圆402上的位置404a-404d以及位置404a-404d之间的旋转方向406。在所描绘的示例中,旋转方向406为顺时针。转变数426可以表示有效的当前码元424与前一紧邻码元422之间的间隔。间隔可被定义为从前一码元422到达当前码元Cs 424所需要的在码元排序圆402上沿旋转方向406的步数。步数可被表达为一位基数为3的数字。将领会,码元之间的三步差异可被表示为0基数-3。图4中的表420概述了采用这种办法的编码方案。

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

串行总线上的共存

多个SGbus设备可与一个或多个旧式I2C设备共存在同一总线230上。相应地,SGbus接口定义了可被旧式I2C设备忽略、未检出、或以其他方式无视的信令方案。例如,SGbus设备可在与I2C模式信令相一致的信令中传送控制信息,并且可传送根据CCIe协议来编码的数据有效载荷以获得较快传输速度。SGbus设备可使用用于传送数据有效载荷的其他编码模式,包括旧式I2C模式。替换的编码模式可采用转变编码来将数据编码在码元序列中,其中时钟信息嵌入在码元序列中的连贯码元之间的转变中。即,数据可被转码成三进制数,其中该三进制数中的每个数位基于总线的先前信令状态(即先前码元)选择下一码元。

本文所公开的某些方面涉及使用不同通信协议和/或信令进行通信的设备在串行总线上的共存。在一些示例中,当第二协议采用生成由第一协议所识别出的事件的信令时,配置成使用第一协议通过串行总线进行通信的设备可以忽略使用第二协议的其他设备之间的通信。现在将使用其中第一协议为符合或兼容I2C的协议并且第二协议为CCIe、SGbus或其他协议的示例来描述某些方面。

图5是解说I2C一字节写数据操作的时序图500。传输在主节点通过将SDA 218驱动为低而SCL 216保持为高来提供开始状况506时被发起。I2C主节点在SDA 218上发送7比特从ID 502以指示该主节点希望访问I2C总线上的哪个从节点,继以指示该操作是读操作还是写操作的读/写比特512,藉此读/写比特512为逻辑0以指示写操作以及为逻辑1以指示读操作。仅ID匹配该7比特从ID 502的从节点能够响应该写(或另一)操作。为了使I2C从节点检测它自己的从ID 502,主节点在SDA 218上传送至少8比特,连同SCL 216上的8个时钟脉冲。主节点通过将SDA 218驱动为高而SCL 216保持为高来提供停止状况516以终止事务。I2C接口被认为在开始状况506之后处于“总线繁忙”状态并且在停止状况516之后处于“总线空闲”状态。可利用此行为来防止旧式I2C从节点对根据某些协议(包括CCIe协议)的传输作出反应。

CCIe通信可将I2C总线的SCL 216和SDA 218的组合用于数据传输。CCIe码元可以在与针对I2C传输在SCL 216上传送的时钟信号脉冲514的每次翻转相对应的时间传送。在每个帧传输时段中传送的时钟翻转数可以因此定义可为每个CCIe传输传送的码元数。因此,12码元传输可以在6-SCL脉冲序列期间可用的12个信令状态中提供。

当时钟信号已被嵌入在码元转变内时,I2C总线的SCL 216和/或SDA 218可被用于CCIe模式中的数据传输。因此,SDA 218和SCL 216可被用于传送任何任意的12个码元,而不影响旧式I2C从节点功能性并且无需使用桥接设备来将旧式I2C从节点与具有CCIe能力的节点隔离开。在I2C模式中,开始状况506可仅由I2C主控设备提供。在CCIe模式中,开始状况506由将传送12码元字的任何节点提供。

根据本文所公开的某些方面,当利用SCL 216的某些信令特性时,I2C设备可与采用不同通信协议的设备在串行总线上共存。例如,I2C规范是尖峰和/或具有50ns或更小历时的脉冲可被兼容或符合I2C快速模式(Fm)的设备或Fm+设备滤除。因此,在与I2C设备共享的串行总线上使用的协议可包括其中在SCL 216上的脉冲被限制成小于50ns的历时的操作模式。对脉冲历时的限制可通过控制SCL 216上的高状态时钟脉冲生成、实现用于SCL 216的归零信令方案、和/或通过插入防止SCL 216保持在高状态达50ns的额外码元来实施。此额外码元在本文中可被称为虚设码元。在一个示例中,可在50ns时段内传送数个码元,并且当编码器检测到码元序列有可能将SCL 216维持在高状态达50ns时,编码器可插入迫使SCL 216在完成50ns高时段之前变为低的虚设码元。

虚设码元的插入可能导致要在串行总线的一根或多根信号导线上传送额外脉冲(虚设脉冲)。在以上所描述的I2C示例中,当两个连贯码元原本将SCL 216维持在逻辑高状态时,可以插入虚设码元以迫使SCL 216上的逻辑低状态。在传送虚设码元之后,SCL 216返回到对应于这两个连贯码元中的第二码元的逻辑高状态。在一些实例中,可在SCL 216上使用归零(RZ)信令以防止SCL 216上的长历时正脉冲。在一些实例中,硬件逻辑可被配置成通过在SCL 216维持在高状态达预定义时间段时插入短历时逻辑低脉冲来监管SCL216。

当使用转变码元编码时,虚设脉冲可出于除限制表面上的时钟脉冲历时以外的目的而被插入在串行总线的一根或多根信号导线上。可以提供虚设脉冲以避免发生可指示同步事件或状况的不想要的状态。例如,可在SCL 216变为低而SDA 218保持不变时指示I2C开始和停止状况,并且当串行总线被用于根据除I2C以外的协议的通信时,可在SDA 218上插入虚设脉冲以防止此类指示。

通信协议之间的转变

图6解说了其中共享总线602将I2C设备6041-604k、606和CCIe设备612、6141-614n和6161-616m相耦合的配置。SGbus设备612、6141-614n和6161-616m可与常规地配置的I2C设备6041-604k、606共存,并且SGbus设备612、6141-614n和6161-616m中的某些SGbus设备可按期望或按需使用常规I2C协议进行通信。

可使用第一协议(诸如I2C协议的经修改版本或I2C协议的变型)来发起和执行共享总线602上的数据传输(包括配置和其他总线控制消息)。在一个示例中,可使用用于启动事务的常规I2C协议来发起所有事务。

根据本文所公开的某些方面,共享总线602上的通信可被有效地容器化(containerized),以使得耦合至共享总线602的设备之间的数据传输被封装在总线管理和/或控制命令之间发生的事务(容器)中。通常,被配置成使用由参与当前事务的设备所采用的协议进行通信的设备可以忽略或不在意此事务。

图7是解说用于在共享总线602的容器或操作模式之间转变的一般化方案的流程图700。每种容器、操作模式和/或协议可与共享总线602的相应操作状态702、704、706、708、710相关联。总线的操作模式可以在各信令模式、数据吞吐量、传输格式等之间区分开。可针对协议来定义不同操作模式。例如,12码元和20码元模式可被定义用于CCIe协议。

在操作中,共用协议状态704被用于使用所有总线主控设备和/或总线上的所有设备所理解的共用协议来交换总线管理命令。在一个示例中,单协议从动设备可能无法使用共用协议进行通信,并且可因此忽略总线管理命令。在该后一示例中,总线主控设备可以获取对共享总线602的控制,并且使用单协议从动设备所理解的协议与单协议从动设备通信。

在一些示例中,I2C协议被用在共用协议状态704中。在其他示例中,不同协议可被用在共用协议状态704中。共享总线602可被初始化成启动状态702,藉此针对共用协议来配置耦合至共享总线602的设备。在共用协议的单总线主控设备实现中,所指定的总线主控设备可根据由共用协议所定义的规程来发现和/或配置耦合至共享总线602的其他设备。在多主控设备实现中,一旦进入共用协议状态704,一个或多个主控设备就可参与发现、配置和/或仲裁过程以确定哪个总线主控设备控制共享总线602。可采纳总线阶层式概念,其中一个总线主控设备在任何时间具有对共享总线602的活跃控制并且其他总线主控设备请求和等待对共享总线602的准予控制。

在共用协议状态704中,一个或多个设备可争用对共享总线602的控制。可按期望或仲裁的协议状态706、708操作共享总线602以实现耦合至共享总线602的设备之间的通信事务。一旦完成此事务,共享总线602就返回到共用协议状态704。当没有设备正在请求访问共享总线602时,共享总线602可进入空闲状态710。在空闲状态中,一个或多个设备可进入减电操作模式。总线主控设备可周期性地使共享总线602进入共用协议状态704以确定是否有任何设备正在请求访问共享总线602。在一些实例中,共享总线602可响应于中断或其他事件而返回到共用协议状态704。

进入协议状态704、706、708以及退出协议状态704、706、708可使用总线管理命令来实行。这些命令可使用基于共享总线602的架构和设计所选择的信令、消息接发、或者信令和消息接发的一些组合来实现。

数据传输可在共用协议状态704或者由耦合至共享总线602的设备子集所使用的协议状态706、708中的一个协议状态中发生。设备子集所使用的协议状态706、708可以是与共享总线602兼容的任何协议。数据能够以字、帧和/或分组为单位来传递,并且构想了灵活的数据传输模式。

在一些实例中,地址可被动态地分配给耦合至共享总线602的设备。在一个示例中,在共用协议状态704中执行动态地址分配以提供对使用共用协议进行通信的设备的唯一性标识并且为此类设备指派优先级排序。在一些实例中,在其他协议状态706、708中的一个或多个协议状态中执行动态地址分配以提供对使用除共用协议以外的协议进行通信的设备的唯一性标识并且为此类设备指派优先级排序。

在一些实例中,针对共用协议状态704定义异常处置方案。例如,可在共用协议为I2C或I2C衍生协议时提供兼容I2C的带内中断规程。

在一些实例中,可以实现“热插”规程,其中热插规程包括和/或使用带内中断和动态地址分配规程。

图8解说了根据本文所描述的某些方面的在共享总线602上执行的事务800,例如其中共享总线602支持涉及分别使用I2C和SGbus协议所传送的比特和码元802的通信事务。最初,共享总线602可处于总线空闲状态822,并且控制信令806根据通常理解的I2C协议来处置。在控制信令806被确收824、826之后,可发生SGbus数据交换808,在此期间数据有效载荷810被传送给SGbus主控设备612。退出序列812提供从SGbus数据交换808(即,根据SGbus协议的信令)至被识别为与I2C协议相一致的停止状况820、516的信令的转变。随后可导致总线空闲状态822(同时参见图7的空闲状态710)。

在所描绘的示例中,共享总线602上的事务800可由I2C开始状况814(同时参见图5的开始状况506)、此后的地址816(例如,参见I2C从ID 502)、继以一连串命令码818来发起。命令码818可具有可包括由用于共享总线602的SGbus通信协议所定义的数个字节的可变长度。

在一个示例中,可以传送命令码818以定义所选数据传输协议和/或此数据传输协议的某些特性。该后一命令码可标识多种可用数据传输协议中要被用于后续数据传输的一种数据传输协议。所标识出的数据传输协议可以控制事务直至不同的数据传输协议命令被插入在总线上。

在开始状况814之后,共享总线602被认为是繁忙的,直至下一停止状况820(同时参见图5的停止状况516)。总线空闲状态822可被定义为在SCL 216和SDA 218处于逻辑高状态达预定时间段时发生。可基于开始状况814、506和停止状况820、516的发生来定义或标识共享总线602的繁忙/空闲状态。总线空闲状态822具有包括在停止状况820、516之后的时间段的历时,在此期间SCL 216和SDA 218处于逻辑高状态,而不管数据是使用SGbus协议还是兼容I2C的协议来传递的。在一个示例中,期间SCL 216和SDA 218处于逻辑高状态的时间段可被设置为在共享总线602上使用的最慢时钟周期的两倍。例如,在I2C快速模式中,在SCL 216上传送的时钟信号具有至少400kHz的频率,其中2.5μs的时钟周期和5μs时段可足以指示总线空闲状态822。

如图6所示,共享总线602可支持旧式I2C主控设备606、旧式I2C从动设备6041-604k、主SGbus主控设备612、SGbus从动设备6141-614n和副SGbus主控设备6161-616m。主SGbus主控设备612通常预配置有与驻留在共享总线602上的旧式I2C设备606、6041-604k相关的特定操作信息。主SGbus主控设备612可包括非易失性存储器,其中可响应于接收自应用主机设备的通信而预配置和/或更新操作信息和其他信息。

副SGbus主控设备6161-616m和SGbus从动设备6141-614n中的每个设备可被配置成内部地生成任何期望、经配置或预定义长度的随机地址。在一个示例中,随机地址可具有48比特。这些设备6141-614n、6161-616m可以能够使用保留地址来导致中断,该保留地址可被用于标识不具有被指派的本地地址的设备的存在。

在操作中,主SGbus主控设备612可传送一般调用,继之以动态地址分配命令码。主SGbus主控设备612随后可驱动共享总线602的SCL 216上的时钟信号同时释放SDA 218,该SDA 218可被拉至逻辑高电平。之后是仲裁过程,藉此SGbus设备6141-614n、6161-616m根据其相应的随机选择的48比特地址来驱动SDA 218。具有最低地址的SGbus设备6141-614n、6161-616m以与I2C协议所指定的类似方式赢得仲裁。

主SGbus主控设备612在SDA 218被释放的情况下继续驱动SCL 216上的时钟信号。SGbus设备6141-614n、6161-616m当中的获胜设备随后可传递一个或多个特性字节。特性字节包括标识获胜设备的某些特性的信息,包括该设备是否只用作从动设备、设备类型(例如,加速计)、数据宽度(例如,16或12位宽)、以及其他特性。

主SGbus主控设备612可传递获胜设备的7位宽本地地址。该地址纳入了主SGbus主控设备612指派给所标识出的设备的优先级等级。主SGbus主控设备612可重复此规程直至其未接收到来自寻求地址仲裁的设备的响应。主SGbus主控设备612可通过发送特定命令码来终止仲裁规程,该命令码终止使得进入此规程的动态地址分配命令码。

连接至共享总线602的副SGbus主控设备6161-616m可监视仲裁过程并且捕捉在此过程期间的信息交换,以使得副SGbus主控设备6161-616m具有关于共享总线602的寻址、优先级和配置信息的副本。尽管如此,主SGbus主控设备612可向副SGbus主控设备6161-616m传递接收自SGbus从动设备6141-614n的信息。

SGbus设备6141-614n、6161-616m中的每个设备可具有可被用于存储动态地址的一个或多个留存寄存器,以使得SGbus配置可被保留以供在冷启动之后使用。如果两个SGbus设备6141-614n和/或6161-616m选择相同的随机48比特地址并且具有相同的特性字节,则这两个设备可存储相同的本地地址。双指派可保持有效直至SGbus主控设备612需要数据传输并且由这两个不同的SGbus从动设备6141-614n并发地传送的数据不相同。这两个SGbus从动设备6141-614n中的至少一个SGbus从动设备可识别出其具有与连接至共享总线602的另一SGbus从动设备6141-614n相同的地址,并且可离开共享总线602。在下一总线空闲状态822处,离开的SGbus从动设备6141-614n可使用用于此要求的专用控制码来请求新的本地地址。用于标识对相同本地地址的双指派的其他规程可以是可用的,包括可根据本文所公开的某些方面来适配的现有规程。例如,首要或主要的主控设备可以得知需要本地地址的设备数,并且如果较少的本地地址被分配或指派,则主要的主控设备可发起和/或执行恢复规程。在恢复规程的一个示例中,动态地址指派规程可从零开始重新启动。可靠的回退规程的其他示例可供用于从其中两个或更多个设备具有重复地址的实例中恢复。

SGbus设备6141-614n和/或6161-616m中的每个SGbus设备由主SGbus主控设备612指派优先级排序。优先级排序可由SGbus主控设备612使用动态地分配的本地地址的等级来定义,藉此较低的地址值具有较高的优先级排序。

SGbus设备6141-614n、6161-616m中的每个SGbus设备可在总线空闲状态期间的任何时间断言带内中断请求(IRQ)。IRQ断言规程对应于用于I2C和其他I2C相关接口中的总线仲裁的类似规程。然而,根据本文所公开的某些方面,某些改进和增强可被用于IRQ规程。

在一个示例中,SGbus从动设备6141-614n可通过将SDA 218拉至逻辑低信令状态来断言带内IRQ。主SGbus主控设备612可开始驱动SCL 216上的时钟信号,而使SDA 218不受驱动。SDA 218可被拉向逻辑高信令状态。SGbus从动设备6141-614n可驱动SDA 218以便传送它自己的地址。主SGbus主控设备612确收IRQ,并且随后使用接收自SGbus从动设备6141-614n的地址来执行重复的开始。通过在总线繁忙状态期间在SCL信号导线924为高时并且当将期望停止状况908时将SDA信号导线922驱动为低来提供重复的开始状况928(参见图9)。设备6141-614n、6161-616m和/或6041-604k可在检测到重复的开始状况928之后监视总线以发现它们各自的地址。

如果先前定义的模式不同于目前期望或需要的模式,则主SGbus主控设备612可任选地使用数据传输协议字节来配置数据传输模式。主SGbus主控设备612和发出中断的SGbus从动设备6141-614n可随后开始通信。总线争用在地址评估期间发生,并且同时尝试赢得总线的任何附加SGbus设备6141-614n、6161-616m和/或任何旧式I2C设备6041-604k将输掉仲裁并可在下一总线空闲状态822上重试。

在另一示例中,副SGbus主控设备6161-616m可使用与用于SGbus从动设备6141-614n的规程类似的规程来断言带内IRQ。当主SGbus主控设备612识别出IRQ被副SGbus主控设备6161-616m断言时,主SGbus主控设备612释放SCL 216并且副SGbus主控设备6161-616m执行立即的重复开始状况928,以便寻址目标设备以供通信。

在另一示例中,旧式I2C主控设备606可在与针对副SGbus主控设备6161-616m所描述的规程类似的规程中断言IRQ。旧式I2C主控设备606通常不知晓其何时在与SGbus主控设备612竞争,因为SGbus主控设备612具有较高的等效地址(例如,111 1111)并且将输掉仲裁。将领会,在某些应用中,可能期望从SGbus中排除较慢的旧式设备(诸如I2C设备)。例如,旧式设备可因总线速度(吞吐量要求)或由于实现共存所需的规程的复杂性而被排除。

启动通信事务的主SGbus主控设备612在地址调用期间评估地址仲裁规程。尝试中断主SGbus主控设备612的任何SGbus从动设备6141-614n、副SGbus主控设备6161-616m或旧式I2C主控设备606通常是成功的。然而,具有较低优先级排序的任何设备可能必须等待下一总线空闲状态822。

在一些实例中,旧式I2C主控设备606与SGbus从动设备6141-614n之间可能存在竞争。主SGbus主控设备612在其看到开始状况时(即,当SDA 218变为低时)启动SCL 216上的时钟信号。相应地,具有较高优先级排序的SGbus从动设备6141-614n假定赢得仲裁过程。主SGbus主控设备612知晓仲裁过程的结果,包括获胜地址。

根据本文所公开的某些方面,SGbus可以是多主控总线,其中一个或多个SGbus主控设备612、6161-616m和旧式I2C主控设备606为相应从动设备提供总线控制和管理功能。在SGbus中采用的某些多主控仲裁和总线控制规程可遵循诸如针对IRQ规程所描述的全局规则。因此,当旧式I2C主控设备606与一个或多个副SGbus主控设备6161-616m竞争时,I2C规则可应用。

当副SGbus主控设备6161-616m捕获到对共享总线602的控制以执行事务时,副SGbus主控设备6161-616m仅维持对共享总线602的控制达执行事务所需要的时间。在相应事务之后,停止状况820使总线控制回到主SGbus主控设备612。

旧式I2C主控606通常向旧式I2C从动设备6041-604k传递数据并且采用兼容I2C的协议,即使在其他数据传输协议(诸如CCIe数据传输协议)可用时亦是如此。旧式I2C主控606与SGbus设备6141-614n、6161-616m之间的通信可在系统级被管理。在一个示例中,主SGbus主控设备612可向旧式I2C主控606告知SGbus从动设备6141-614n的存在。主SGbus主控设备612可提供与SGbus从动设备6141-614n的本地地址和特性有关的信息。由此得到的在旧式I2C主控606与SGbus从动设备6141-614n之间的任何通信可与I2C协议一致。

根据本文所公开的某些方面,SGbus可支持热插能力,其中SGbus设备612、6141-614n或6161-616m可被插入到已被动态地配置并且在操作中的总线602中。热插入的SGbus设备612、6141-614n、或6161-616m在总线上启动并且假定与冷启动类似的状况,因此热插入的SGbus设备612、6141-614n、或6161-616m最初不具有获指派的本地地址。不具有获指派的本地地址的设备612、6141-614n、或6161-616m可将预定义字节用作其需要本地地址的指示符来执行IRQ。一旦检测到IRQ以及热插入的SGbus设备612、6141-614n、或6161-616m在共享总线602上的存在,主SGbus主控设备612就可执行动态地址分配规程,诸如在本文中所描述的。

根据本文所公开的某些方面,SGbus可支持多种数据传输协议,包括I2C协议、CCI协议及其变型、以及其他协议。在一个示例中,CCI扩展(CCIe)总线可被用于在SGbus上提供数据传输。可在共享总线602上执行CCIe通信和I2C通信,以使得在第一时间区间中可使用CCIe编码来传送数据并且可在不同的时间区间中根据I2C信令约定来传送其他数据。SGbus采用物理层协议,其确保CCIe传输不违反I2C协议。

图9包括解说与I2C总线上的多个数据传输相关联的定时的时序图900和920。在第一基本示例中,在停止状况908与连贯的开始状况910之间流逝的时间段(空闲时段914)可被延长,从而使常规I2C总线在此空闲时段914期间空闲。在操作中,繁忙时段912在I2C总线主控传送第一开始状况906继之以数据时开始。繁忙时段912在I2C总线主控传送停止状况908时结束并且空闲时段914跟着发生。空闲时段914以第二开始状况910的传输而结束。

还参照时序图920,在一些实例中,I2C总线上的相继数据传输之间的空闲时段914可通过传送重复的开始状况(Sr)928而不是停止状况908来在数量上减少或者消除。重复的开始状况928终止先前的数据传输并且同时指示下一数据传输的开始。SDA信号导线922上的状态转变对于在空闲时段930之后发生的开始状况926以及重复的开始状况928而言是相同的。具体地,SDA信号导线922从高转变为低而同时SCL信号导线924为高。在数据传输之间使用重复的开始状况928时,第二繁忙时段934紧跟在第一繁忙时段932之后。

在SGbus中,数据传输分段可使用任何I2C协议、CCIe协议或另一转变编码协议、或者其变型。要使用的数据传输协议的类型可由SGbus主控设备612、或6161-616m在与SGbus从动设备6141-614n的通信开始时指示。对每个SGbus从动设备6141-614n的数据传输协议的选择保持有效,直至被SGbus主控设备612、或6161-616m改变。在一些实例中,主SGbus主控设备612可将能在I2C模式和CCIe模式两者中通信的任何设备配置成使用I2C模式作为默认模式。

从数据传输的退出可通过将停止状况820、908插入在共享总线602上来实行,在此情形中共享总线602可进入总线空闲状态822。在共享总线602上的事务中传送的某些码元序列可产生可被未参与该事务的一个或多个设备6041-604n、6141-614n、6161-616m的检测逻辑标识为停止状况820、908或重复的开始状况928的信令状态。

图10解说了非预期开始状况1008和非预期停止状况1012的发生,其可能在正常数据交换期间出现和/或由于所解说的同步逻辑中的亚稳性问题而出现。可通过将编码器配置成标识可能导致非预期停止状况1012和非预期开始状况1008的码元序列来避免非预期停止状况1012和非预期开始状况1008。编码器可修改所传送的码元流以避免生成非预期且不想要的停止状况1012和/或非预期开始状况1008。在一个示例中,当处于数据传输模式时,编码协议可在任何二进制“01”码元之后提供二进制“00”虚设码元插入以便避免非预期停止状况1012。在另一示例中,编码协议可在二进制“11”码元的任何发生之后提供二进制“10”虚设码元插入以避免非预期开始状况1008,非预期开始状况1008可能导致旧式I2C设备在错误的或非预期的开始状况1008之后检查其地址。将领会,旧式I2C设备可在其找到地址匹配的情况下对错误的或非预期的开始状况1008作出响应并由此不利地影响CCIe活跃驱动器。

在CCIe模式数据传输中,可基于在共享总线602上传送的码元的计数来执行帧同步,始于在进入数据传输模式的入口点之后发送的第一码元。对于SGbus操作,不需要在帧中的每个12码元序列或20码元序列之前发送重复的开始状况928。不存在重复的开始状况928可提高数据吞吐量。

在一些实例中,可通过检查用于错误检测的最后三个最低有效位(LSB)“000”来进一步验证帧同步。单个差错可通过检查经解码二进制数的最后三个LSB来检测。单个差错可能涉及关于任何12码元字的码元错误,其中没有两个连贯码元是相同的。码元可被编码为二进制数[SDA:SCL],其中与SDA 218的信令状态相对应的比特处于最高有效位(MSB)位置。一个码元错误可能是SDA 218或SCL 216中的一者或两者的采样信令状态差错的结果。

参照图11并且如关于图3和4所讨论的,由发射机300的转码器302生成的三进制数可表示为在圆402上和跨圆402的位移值。在一个示例中,顺时针位移可表示为三进制值T=1,逆时针位移可表示为三进制值T=0,并且跨圆402的位移(即,顺时针2步或逆时针2步)可表示为三进制值T=2。

作为直接结果,产生与圆402上的任一个毗邻码元相同的码元的线错误不被认为是新码元,并且该错误可在字级别被标识。然而,单个码元错误导致两个毗邻三进制数被修改。

根据本文所公开的某些方面,可为SGbus通信提供错误校正。为了传送数据,三进制信息串可被变换成被编码成基数为3的(三进制)数的相等数值。如此,针对相同信息需要在节点之间传送更少的字符。经变换的三进制数是多项式和,其中因子为3的幂并且系数为[0,1,2]。

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>m</mi> <mi>b</mi> <mi>i</mi> <mi>n</mi> <mi>a</mi> <mi>r</mi> <mi>y</mi> </mrow> </munderover> <msub> <mi>B</mi> <mi>i</mi> </msub> <msup> <mn>2</mn> <mi>i</mi> </msup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>m</mi> <mi>t</mi> <mi>e</mi> <mi>r</mi> <mi>n</mi> <mi>a</mi> <mi>r</mi> <mi>y</mi> </mrow> </munderover> <msub> <mi>T</mi> <mi>k</mi> </msub> <msup> <mn>3</mn> <mi>k</mi> </msup> </mrow>

其中:Tk=三进制系数,∈[0,1,2]。

一个码元错误可能产生两个毗邻Tk值的改变,并且最终和可通过下式来更改:

±a×3n±b×3(n-1) (1)

其中:

“n”=错误码元的秩,并且

“a”和“b”为差异系数。

“a”和“b”系数遵循下式:

a∈[0,±1,±2]

b∈[0,±1,±2]

式(1)可写为:

(±3a±b)×3(n-1) (2)

为了使LSB的最后几个比特不被错误所改变,式(2)必须是2的幂的倍数。2的幂的第一秩不为整数倍标示必须提前知道多少个LSB末尾比特,从而应标识一个码元错误。因子3(n-1)是3的倍数,并且其将在未被更改的情况下改变LSB比特。

对相关因子(±3a±b)的分析可基于以下观测:码元至三进制编码图具有圆对称性。因此,对一个点的讨论涵盖所有四个点。例如,如果“2”是正确码元,则对于任何其他正确码元情形,只要用它们的旋转值来替代各自相应的位置即可。以下表1示出了结果所得的可能“a”系数,并且表2示出了结果所得的可能“b”系数。

表1

表2

以下表3示出了结果所得的“a”和“b”系数的可能组合。

表3

在同一背景行上示出了可能(a;b)对,如与相同的可能“错误码元”有关的。直接检视揭示了存在将如下分别进行的组合:

(±3a±b)=2,例如(1;-1)和(-1;1),

(±3a±b)=4例如(-2;2)和(2;-2)。

不存在将产生(±3a±b)=8的对;这原本只对于(2;2)或(-2;-2)是可能的。

因此,在LSB末尾处的任何已知的3个比特可检测到任何一个单码元错误。例如,可以使用“000”,但是任何其他已知的3个比特也可起到相同作用。SDA 218或SCL 216中的任何错误都可通过这最后3个比特来检测。

根据本文所公开的某些方面,当数据传输在进行中时,补充差错校验可基于从码元二进制“01”到二进制“00”的强制变换、或从码元二进制“11”到二进制“10”的强制变换,以在必要时避免对停止状况908或重复的开始状况928的错误标识。在多个12码元或20码元帧的全部数据传输完成时,可插入4个码元,其中最后两个码元可以是二进制“01”、继之以二进制“11”,以便产生停止状况820、908。

参照图12和13,可以强调CCIe的先前实现与目前描述的SGbus之间的某些差异。例如,这两种编码样式可产生不同码元,但是在这两种情形中,经编码的三进制系数是相同的。在另一示例中,SGbus避免共享总线602上的非预期(且不想要的)停止状况908和重复的开始状况928(即,二进制“01”至二进制“11”转变、或二进制“11”至二进制“10”变换)。对于随后的一些数据流,SGbus向传输添加码元,藉此降低数据吞吐量。CCIe接口具有针对每个12码元帧传送的边界序列,而SGbus仅在整个数据传输的结束处(而非逐帧)具有一个退出序列。

在第一示例中,图12的时序图1200解说了由发射机300的转码器302向三进制至码元转换器304(参见图3)提供的三进制发射机(Tx)转变数序列1202。转换器产生码元流1204以供通过串行总线230传送给接收机320。接收机320的码元至三进制转换器324产生三进制接收机(Rx)转变数1206。Tx转变数1202、码元1204和Rx转变数1206的数目之间存在直接联系。

在第二示例中,图12的时序图1220解说了第一SGbus数据帧的传输,藉此由转码器302向三进制至码元转换器304(参见图3)提供发射机(Tx)三进制数序列1222。在此,三进制至码元转换器304产生包括插入的附加码元1230的码元流1224。接收机320的码元至三进制转换器324产生三进制接收机(Rx)转变数1226。码元至三进制转换器324产生包括由转码器322提取的附加数1232的Rx转变数1226。

图13包括时序图1300和1320中的第三和第四示例,由此第三时序图1300涉及中间和/或最差情形SGbus帧,并且第四时序图1320涉及最后的SGbus数据帧。在这些时序图1300、1320中,三进制至码元转换器304产生包括插入的附加码元1310和1330的码元流1304、1324。接收机320的码元至三进制转换器324产生三进制Rx转变数1306、1326。码元至三进制转换器324产生包括由转码器322提取的附加三进制数1312和1332的Rx转变数1306、1326。

不同的数据传输模式可供在共享串行总线上使用,其中基于总线客户端的本质来选择模式以供使用。在一个示例中,使用12码元帧的经修改CCIe数据传输模式在总线上不存在I2C设备或者没有I2C设备参与总线时可用,并且在此模式中不需要虚设变换。在另一示例中,共享总线602上存在I2C设备,并且经修改CCIe数据传输模式与12码元帧以及虚设变换联用。此数据传输模式的特性可取决于I2C客户端的能力。

在另一示例中,可假定所有类型的I2C设备耦合至共享总线602,并且可使用经修改的20码元CCIe数据传输模式,其中在每个20码元帧之前插入重复的开始状况928。在此模式中,未插入虚设变换,并且没有旧式I2C主控可连接至共享总线602。在另一示例中,共享总线602上只有旧式I2C设备并且首要的主控设备根据该总线的能力在I2C模式中控制总线,其中所有数据传输均使用I2C模式。

如本文所公开的,SGbus可以是可使用两根导线来提供多支路(multi-drop)和多主控能力的高速串行接口总线。不需要常规时钟信号,并且用数据来编码使用这两根导线传送的码元。时钟信号通过确保两根信号导线中的至少一根信号导线在每对连贯码元之间的信令状态转变来嵌入在码元流中。SGbus协议可以使用命令码。提供带内中断能力,并且支持具有低等待时间的异步热插。SGbus设备可与I2C设备在同一总线上共存,从而遵守应用于可连接至同一物理总线的旧式I2C设备的相同约束。

在一个方面,SGbus使用容器架构进行通信,由此数据传输被封装在总线管理元素之间。数据可使用多种协议中的一种来传递,如连接至总线的客户端设备所要求或偏好的。在一个示例中,数据可使用CCIe协议来传递,并且在另一示例中,数据可根据兼容I2C的协议来传递。数据有效载荷通常使用CCIe协议来承载,但是可寻址旧式I2C从动设备并在相应I2C模式协议中传输有效载荷。

与SGbus协议相关联的总线管理功能包括总线仲裁、带内中断、热插、多主控、进入和退出数据传输模式。

SGbus主控设备可具有动态地址指派能力。SGbus主控可包括用于带内中断的时钟生成器、基于寄存器的用于留存连接至总线的设备的地址和特性的存储器。SGbus主控设备可使用I2C或CCIe数据传输协议进行通信。

SGbus从动设备可以是能动态寻址的,并且可以能够针对其所连接的总线来请求并接收其地址。SGbus从动设备至少支持CCIe协议,并且在一些示例中,SGbus从动设备可以能够使用旧式I2C协议进行通信。

SGbus支持可在传输期间提供优化(每字节最少能量)的快速数据传输协议,包括采纳CCIe式编码的数据传输协议。可支持带内IRQ规程,并且可施加最小等待时间约束(通常10μs)。可获得提高的效率,因为不需要心跳型信号。可提供异步、热插能力。

在一些实例中,可通过本地系统设计级的配置来达成提高的系统设计灵活性。动态寻址减少或消除了对全局寻址实体的依赖性。动态寻址采用随机地址生成器,由此减少了制造开销。

SGbus的某些实现可与所有旧式I2C设备完全共存。然而,某些低速以及超低成本的旧式I2C设备的存在可阻止对旧式I2C主控的使用。旧式I2C设备不需要评估其在用于每个经CCIe编码的帧的线上的地址匹配。

在一些实例中,可通过增加一根或多根补充线来获得增强的能力和速度增加,从而使编码基数能改变至更高数字。例如,单个附加链路线可传递0-7个码元,其中相对跳转为从0到6,由此允许以基数7进行编码。

处理电路及其配置的某些方面的示例

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

在所解说的示例中,处理电路1402可使用由总线1410一般化地表示的总线架构来实现。取决于处理电路1402的具体应用和整体设计约束,总线1410可包括任何数目的互连总线和桥接器。总线1410将各种电路链接在一起,包括一个或多个处理器1404、和存储1406。存储1406可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质和/或处理器可读介质。总线1410还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口1408可提供总线1410与一个或多个收发机1412之间的接口。可针对处理电路所支持的每种联网技术来提供收发机1412。在一些实例中,多种联网技术可共享收发机1412中找到的电路系统或处理模块中的一些或全部。每个收发机1412提供用于通过传输介质与各种其它装置通信的手段。取决于该装置的本质,也可提供用户接口1418(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口1418可直接或通过总线接口1408通信地耦合至总线1410。

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

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

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

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

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

图15包括流程图1500、1520,其解说了用于SGbus串行接口上的数据通信的方法的某些方面。该方法的各个步骤可由包括图2中解说的总线主控设备220、总线从动设备202、图3中的解说的设备300或320、和/或本文描述的其他设备的某一组合的设备来执行。

在框1502,当串行总线在第一操作模式中操作时,主控设备可向耦合至串行总线的多个设备传送第一命令。第一命令可根据第一协议来传送以使串行总线以第二操作模式来操作。

在框1504,当串行总线在第二操作模式中操作时,主控设备可根据第二协议与该多个设备中的第一设备进行通信(参见流程图1520)。

在框1506,主控设备可根据第一协议向该多个设备传送第二命令以终止第二操作模式。

在一些实例中,与第一设备进行通信包括:在通过串行总线来传送两个码元的情况下确定传送这两个码元将导致在该串行总线的第一导线上发生具有比50纳秒更大的历时的脉冲;以及将额外码元插入到该码元序列中,该额外码元被选择成终止第一导线上的该脉冲。

当该额外码元被插入在这两个码元之间时,第二设备可在串行总线在第二操作模式中操作时忽略该串行总线上的通信。

在一个示例中,码元序列中的每个码元具有多个比特,其中每个比特针对一个码元区间定义该串行总线的一根导线的信令状态。码元序列中的每一对连贯码元包括两个不同码元。串行总线的至少一根导线的信令状态可在每一对连贯码元中的第二码元被传送时改变。

在另一示例中,当串行总线以第一操作模式来操作时,可向该多个设备传送第三命令。第三命令可根据第一协议来传送以使串行总线以第三操作模式来操作。当串行总线在第三操作模式中操作时,主控设备可根据第三协议与该多个设备中的第三设备进行通信。主控设备可根据第一协议向该多个设备传送第四命令以终止第二操作模式。

第二流程图1520涉及与第一设备进行通信。在框1522,主控设备可在码元序列中编码数据,其中时钟信息被编码在该码元序列中的连贯码元对之间的转变中。

在框1524,在无额外码元的情况下传送两个码元将导致串行总线上的非期望信令状况并且在有额外码元的情况下传送两个码元将防止串行总线上的非期望信令状况时,主控设备可在该码元序列中的这两个码元之间插入额外码元。

在框1526,主控设备可在串行总线上传送该码元序列。

在一个示例中,非期望信令状况涉及串行总线的两根导线上的转变的相对定时。

在另一示例中,非期望信令状况涉及在串行总线的一根导线上传送的脉冲的历时。

在另一示例中,非期望信令状况涉及由除第二协议以外的协议定义的同步或开始状况。

第一协议可遵循或兼容I2C协议,其中非期望信令状况涉及由I2C协议定义的开始状况。

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

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

在一个配置中,用于无线通信的装置1600包括模块和/或电路1608、1610,其被配置成在串行总线(例如,连接器或导线1614)在第一操作模式中操作时向耦合至该串行总线的多个设备传送第一命令,其中根据第一协议来传送第一命令以使该串行总线以第二操作模式来操作。装置1600还可包括模块和/或电路1604,其被配置成根据第二协议在码元序列中编码数据,其中时钟信息被编码在该码元序列中的连贯码元对之间的转变中。装置1600还可包括模块和/或电路1606,其被配置成在无额外码元的情况下传送两个码元将导致串行总线上的非期望信令状况并且在有额外码元的情况下传送两个码元将防止串行总线上的非期望信令状况时在该码元序列中的这两个码元之间插入额外码元。装置1600还可包括模块和/或电路1608、1610、1612,其被配置成根据第二协议在该串行总线上传送该码元序列。装置1600还可包括模块和/或电路1608、1610,其被配置成根据第一协议向该多个设备传送第二命令以终止第二操作模式。

图17是解说用于SGbus串行接口上的数据通信的方法的流程图1700。该方法的各个步骤可由包括图2中解说的总线主控设备220、总线从动设备202、图3中的解说的设备300或320、和/或本文描述的其他设备的某一组合的设备来执行。

在框1702,当串行总线在第一操作模式中操作时,主控设备可向耦合至该串行总线的多个设备传送第一命令。第一命令可根据第一协议来传送。第一命令可使该串行总线以第二操作模式来操作。

在框1704,当串行总线在第二操作模式中操作时,主控设备可根据第二协议与该多个设备中的第一设备进行通信。

在框1706,主控设备可根据第一协议向该多个设备传送第二命令以终止第二操作模式。

以第二操作模式在该串行总线的第一导线上传送的有限历时脉冲可具有使该多个设备中的第二设备的滤波器抑制该有限历时脉冲的历时。当有限历时脉冲被抑制时,第二设备可在串行总线在第二操作模式中操作时忽略该串行总线上的通信。

在一个示例中,第一操作模式为I2C通信模式。有限历时脉冲可具有不大于50纳秒的历时。有限历时脉冲可在串行总线的SCL导线上被传送。

在另一示例中,根据第二协议进行通信包括在多比特码元序列中编码数据,其中每个多比特码元中的每一比特针对一个码元区间定义串行总线的一根导线的信令状态。主控设备可确定在通过该串行总线来传送该码元序列中的两个或更多个连贯码元的情况下传送这两个或更多个连贯码元将导致在第一导线上发生具有比50纳秒更大的历时的脉冲。因此,主控设备可将额外码元插入到该码元序列中,该额外码元被选择成防止发生具有比50纳秒更大的历时的脉冲。每个多比特码元中的1个比特可定义在相应码元区间中是否在第一导线上传送有限历时脉冲。

在另一示例中,第二操作模式为CCIe通信模式。

在另一示例中,第一设备包括传感器,并且第二操作模式支持适配成用于耦合多个不同传感器的协议。

在另一示例中,当串行总线在第一操作模式中操作时,主控设备可向该多个设备传送第三命令。第三命令可根据第一协议来传送以使该串行总线以第三操作模式来操作。当串行总线在第三操作模式中操作时,主控设备随后可根据第三协议与该多个设备中的第三设备进行通信。主控设备随后可根据第一协议向该多个设备传送第四命令以终止第二操作模式。以第二操作模式在第一导线上传送的有限历时脉冲可具有使该多个设备中的第二设备的滤波器抑制该有限历时脉冲的历时。

在另一示例中,第一主控设备可通过以下操作与第一设备进行通信:在码元序列中编码数据,其中时钟信息被编码在该码元序列中的连贯码元对之间的转变中;在无额外码元的情况下传送两个码元将导致串行总线上的非期望信令状况并且在有额外码元的情况下传送两个码元将防止串行总线上的非期望信令状况时在该码元序列中的这两个码元之间插入额外码元;以及在该串行总线上传送该码元序列。

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

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

在一个配置中,用于无线通信的装置1800包括模块和/或电路1808、1810,其被配置成在串行总线(例如,连接器或导线1814)在第一操作模式中操作时向耦合至该串行总线的多个设备传送第一命令,其中第一命令根据第一协议来传送以使该串行总线以第二操作模式来操作。装置1800还可包括:模块和/或电路1806、1810,其被配置成用于在串行总线在第二操作模式中操作时根据第二协议与该多个设备中的第一设备进行通信;以及模块和/或电路1808、1810,其被配置成用于根据第一协议向该多个设备传送第二命令以终止第二操作模式;以及模块和/或电路1804、1810,其被配置成提供有限历时脉冲以供以第二操作模式在该串行总线的第一导线上传送,该有限历时脉冲具有使该多个设备中的第二设备的滤波器抑制该有限历时脉冲的历时。

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

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

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