共享总线上的比特分配以促成检错优化的制作方法

文档序号:10699120阅读:210来源:国知局
共享总线上的比特分配以促成检错优化的制作方法
【专利摘要】公开了涉及促成共享总线上的检错优化的各个方面。主控设备耦合至从动设备,并且在主控设备与从动设备之间经由控制数据总线促成字的经编码通信。经编码通信是根据一协议来编码的,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。该协议分配该多个最低有效比特以包括至少一个附加检错比特或者该字的数据部分的至少第一最高有效比特。
【专利说明】共享总线上的比特分配以促成检错优化
[0001]相关申请的交叉引用
[0002]本申请要求于2014年2月28日提交的美国临时专利申请N0.61/946,647、以及于2015年2月27日提交的美国非临时专利申请N0.14/634,106的优先权和权益,这两件申请的全部内容通过援弓I纳入于此。
[0003]背景
[0004]领域
[0005]本公开涉及使得能够在共享总线上进行高效操作,尤其涉及根据期望的字格式来分配比特以促成共享总线上的检错优化。
[0006]背景
[0007]一般而言,可在耦合多个设备时使用共享总线。例如,集成电路间(I2C,并且也称为I2C)是被用于将低速外围设备附连至母板、嵌入式系统、蜂窝电话、或其他电子设备的多主控串行单端总线。I2C总线包括具有7比特寻址的串行时钟线(SCL)和串行数据(SDA)线。I2C总线具有两个节点角色:主控方和从动方。主控节点是生成时钟并发起与从动节点的通信的节点。从动节点是接收时钟并在被主控节点寻址时进行响应的节点。I2C总线是多主控总线,这意味着可存在任何数目的主控节点。另外,主控角色和从动角色可以在消息之间(在STOP被发送之后)被改变。I2C定义了基本的消息类型,其中每种消息类型始于START (开始)并结束于STOP(停止)。
[0008]在相机实现的上下文中,单向传输可被用于从图像传感器捕捉图像并向基带处理器中的存储器传送相应的图像数据,而控制数据可在基带处理器与图像传感器以及其他外围设备之间交换。在一个示例中,相机控制接口(CCI)协议可被用于基带处理器与图像传感器(和/或一个或多个从动节点)之间的此类控制数据。在另一示例中,CCI协议可在图像传感器与基带处理器之间的I2C串行总线上实现。
[0009]检错算法往往被实现以提高共享总线通信的准确性。然而,往往不能通过常规的检错算法来检测此类错误。因此,实现在其中更准确地检测在共享总线上传达的错误的算法是合乎需要的。
[0010]概述
[0011]以下给出本公开的一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是本公开的所有构想到的特征的详尽综览,并且既非旨在标识出本公开的所有方面的关键性或决定性要素亦非试图界定本公开的任何或所有方面的范围。其唯一目的是以简化形式给出本公开的一个或多个方面的一些概念作为稍后给出的更详细描述之序言。
[0012]本公开的各方面提供了涉及促成共享总线上的检错优化的方法、装置、计算机程序产品和处理系统。在一个方面,本公开提供了一种方法,其包括将主控设备耦合至从动设备,以及促成字在主控设备与从动设备之间经由控制数据总线的经编码通信。对于此特定实现,经编码通信是根据一协议来编码的,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。此处,此类最大化是经由一协议达成的,该协议分配多个最低有效比特以包括至少一个附加检错比特或者字的数据部分的至少第一最高有效比特。
[0013]在另一方面,公开了一种配置成促成共享总线上的检错优化的设备。该设备包括耦合至控制数据总线的处理器。此处,该处理器被配置成促成字在主控设备与从动设备之间经由控制数据总线的经编码通信。在此实现中,经编码通信是根据一协议来编码的,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。具体地,该协议分配多个最低有效比特以包括至少一个附加检错比特或者该字的数据部分的至少第一最高有效比特。
[0014]在进一步方面,公开了另一种配置成促成共享总线上的检错优化的设备。对于此实现,该设备包括用于将主控设备耦合至从动设备的装置,以及用于促成字在主控设备与从动设备之间经由控制数据总线的经编码通信的装置。此处,经编码通信是根据一协议来编码的,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。即,该协议分配多个最低有效比特以包括至少一个附加检错比特或者该字的数据部分的至少第一最尚有效比特。
[0015]在又一方面,公开了一种被配置成经由一条或多条指令来促成共享总线上的检错优化的非瞬态机器可读存储介质。此处,在被至少一个处理器执行时,该一条或多条指令使该至少一个处理器将主控设备耦合至从动设备,以及促成字在主控设备与从动设备之间经由控制数据总线的经编码通信。在此实现中,经编码通信是根据一协议来编码的,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。具体地,该协议分配多个最低有效比特以包括至少一个附加检错比特或者该字的数据部分的至少第一最高有效比特。
[0016]这些和其他所公开的方面将在阅览以下详细描述后将得到更全面的理解。在结合附图研读了下文对本发明的具体示例性方面的描述之后,本发明的其他方面、特征和方面对于本领域的普通技术人员将是明显的。尽管本发明的特征在以下可能是针对一些方面和附图来讨论的,但本发明的所有方面可包括本文所讨论的有利特征中的一个或多个。换言之,尽管可能讨论了一个或多个方面具有某些有利特征,但也可以根据本文讨论的本发明的各个方面使用此类特征中的一个或多个特征。以类似方式,尽管示例性方面在下文可能是作为设备、系统或方法方面进行讨论的,但是应该理解,此类示例性方面可以在各种设备、系统、和方法中实现。
[0017]附图
[0018]在结合附图理解下面阐述的详细描述时,各种特征、本质、和优点会变得明显,在附图中,相像的附图标记贯穿始终作相应标识。
[0019]图1解说了根据本公开的一方面的示例性多主控总线。
[0020]图2是根据本公开的一方面的示例性主控/从动设备的框图。
[0021]图3是解说具有基带处理器和图像传感器并且实现图像数据总线和多模式控制数据总线的设备的框图。
[0022]图4解说了时钟可如何在CCIe模式中被嵌入在码元到码元转变内,由此允许将I2C总线中的两条线(即,SDA线和SCL线)用于数据传输。
[0023]图5是解说用于在发射机处将数据比特转码成经转码码元以将时钟信号嵌入在这些经转码码元内的示例性方法的框图。
[0024]图6解说了转变数与顺序码元之间的示例性转换。
[0025]图7解说了转变数与顺序码元之间的转换。
[0026]图8解说了用于从最高有效比特到最低有效比特将二进制比特转换成三进制数的方法。
[0027]图9解说了用于从最高有效比特到最低有效比特将二进制比特转换成三进制数的发射机侧逻辑电路。
[0028]图10解说了用于从最高有效比特到最低有效比特将三进制数转换成二进制比特的方法。
[0029]图11解说了用于将12数位三进制数转换成20比特的接收机侧逻辑电路。
[0030]图12概念性地解说了比特19(8卩,在比特计数开始于为比特O的第一比特时的第20比特)大多数情况下在CCIe协议中不被使用并且可被用于共享总线上的设备之间的命令。
[0031]图13解说了对CCIe模式进入指示符的示例性通用调用,该CCIe模式进入指示符可由主控设备在共享总线上发送以向从动设备指示共享总线正在从I2C模式切换到CCIe模式进行操作。
[0032]图14解说了可由CCIe主控设备(例如,图1中的处于I2C模式的主控设备)发布以向所有具有CCIe能力的设备指示从CCIe模式转变到I2C模式的示例性CCIe调用。
[0033]图15解说了示例性CCIe从动方标识符(SID)字格式。
[0034]图16解说了示例性CCIe地址字格式。
[0035]图17解说了示例性写数据字格式。
[0036]图18解说了示例性读规范字格式。
[0037]图19解说了示例性读数据字格式。
[0038]图20解说了I2C—字节写数据操作的示例性时序图。
[0039]图21解说了其中数据比特已被转码为十二个码元以供在SDA线和SCL线上进行传输的不例性CCIe传输。
[0040]图22解说了从本文公开的编码方案得到的第20比特(比特19)的示例性映射。
[0041]图23解说了图22的第20比特(比特19)区域的示例性映射内的子区域的细节。
[0042]图24解说了可能发生的各种码元错误状况。
[0043]图25解说了示出所传送的码元序列0321_0321_0321(其转译成二进制序列0000_0000_0000_0000_0000和三进制数0000_0000_00003)中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0044]图26解说了示出所传送的码元序列2301_2301_2301(其转译成二进制序列0100_0000_11011111_1000和三进制数1111_1111_11113)中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0045]图27解说了示出所传送的码元序列3131_3131_3131(其转译成二进制序列1000_0001 10111111_0000和三进制数2222_2222_22223)中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0046]图28解说了示出所传送的码元序列0132_3101_3231中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0047]图29解说了示出所传送的码元序列2030_2120_3021中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0048]图30解说了示出所传送的码元序列3231_0132_3101中的可能错误的表以及可如何在3个最低有效比特内检测此类错误。
[0049]图31是解说根据本公开的主控/从动设备的示例性组件的框图。
[0050]图32是解说根据本公开的一方面的示例性编码/解码方法体系的流程图。
[0051 ]图33是解说根据本公开的一方面的示例性编码器组件的框图。
[0052]图34是解说根据本公开的一方面的示例性编码方法体系的流程图。
[0053]图35是解说根据本公开的一方面的示例性解码器组件的框图。
[0054]图36是解说根据本公开的一方面的示例性解码方法体系的流程图。
[0055]详细描述
[0056]在以下描述中,给出了具体细节以提供对诸实施例的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践这些实施例。例如,电路可能用框图示出以免使这些实施例混淆在不必要的细节中。在其他实例中,公知的电路、结构、和技术可能不被详细示出以免使这些实施例不明朗。
[0057]总览
[0058]如在背景部分中讨论的,由于常规检错算法的限制,往往会错过在共享总线上传达的错误。本文公开的诸方面涉及通过根据期望的字格式来分配比特以促成检错优化来克服此类限制。即,公开了涉及将灵活的字格式用于共享总线通信的诸方面,其中可策略性地分配附加的检错比特以促成检错优化。
[0059]接下来参照图1,提供了促成本文公开的检错优化方面的示例性多主控总线架构。如所解说的,多个主控/从动设备110、120、130和140经由共享总线100彼此耦合。此处,构想了共享总线100是多主控总线,其中主控/从动设备110、120、130和140中的任一者均可作为主控设备或从动设备来操作。在此特定示例中,主控/从动设备120经由共享总线100向其他主控/从动设备110、130和140传送字122,其中主控/从动设备120根据优化检错的比特分配方案来编码字122。例如,此类方案可通过分配相对于非优化方案中分配的检错比特的数目而言更大数目的检错比特来优化检错。为了正确地解码字122,因此构想了主控/从动设备110、130和140检测字122是否是用检错优化来编码的,其中字122随后基于相应的比特分配方案来解码。
[0060]在图2中,根据本公开的一方面提供了示例性主控/从动设备的框图。如所解说的,主控/从动设备200包括用于促成执行本文公开的检错优化的各种组件,包括编码器组件210、解码器组件220和通信组件230。构想了主控/从动设备200可被配置为本文描述的任何主控/从动设备,包括例如图1中解说的主控/从动设备110、120、130和140中的任一者。例如,构想了通信组件230可被配置成传送和接收经由共享总线传达的字,其中编码器组件210被配置成通过编码字以包括附加的检错比特来优化检错,并且其中解码器组件220被配置成解码包括这些附加的检错比特的字。
[0061]在本公开的一特定方面,主控/从动设备200被配置成根据CCI协议来编码/解码字。对此,注意,已开发出被称为CCIe (相机控制接口扩展)的对CCI的扩展,该CCI e将二进制数转换成三进制数,该三进制数随后被转码成嵌入有时钟的码元以供在I2C总线上传送,从而实现比之前更高的速度。在一示例性实现中,20比特二进制数被并行地输入三进制数转换器(即,比特到12xT转换器)。在接收到所有二进制比特之后,三进制数转换器输出相应的三进制数。输出数随后以类似的方式发送给转码器。在本文公开的CCIe的一方面,在逐码元基础上执行三进制转变数至串行码元转换,这期望地比同时处理多个码元需要更少的硬件资源。这些码元随后在总线上传送。
[0062]使用三进制数空间并且转换成码元导致额外比特变得可用。在一个示例中,此额外比特可以是最高有效比特,从而三进制数的一区域变得可用以支持原本不可用的其他功能性。例如,由于可被包括在此额外比特中的额外信息,因而可以促成检错、热插入功能、和/或SID扫描。
[0063]示例性操作环境
[0064]图3是解说具有基带处理器304和图像传感器306并且实现图像数据总线316和多模式控制数据总线308的设备302的框图。虽然图3解说了相机设备内的多模式控制数据总线308,但是应当清楚,该控制数据总线308可实现在各种不同设备和/或系统中。图像数据可在图像数据总线316(例如,高速差分DPHY链路)上从图像传感器306发送给基带处理器304。
[0065]在一个示例中,控制数据总线308可以是I2C总线,其包括两条导线:时钟线(SCL)和串行数据线(SDA)。时钟线SCL可被用来发送被用于同步I2C总线(控制数据总线308)上的所有数据传输的时钟。数据线SDA和时钟线SCL耦合至12C总线(控制数据总线308)上的所有设备312、314、和318。在该示例中,可以经由控制数据总线308在基带处理器304与图像传感器306以及其他外围设备318、322和/或324之间交换控制数据。I2C的标准时钟(SCL)速度最高达10KHz。I2C快速模式中的标准时钟SCL速度最高达400KHz,且在I2C快速模式加(Fm+)中其最高达IMHz。12(:总线上的这些操作模式可以在用于相机应用时被称为相机控制接口(CCI)模式。
[0066]根据一个方面,可以在多模式控制数据总线308上实现改进的操作模式(S卩,大于IMHz的控制数据总线传输频率)以支持相机操作。I2C总线上的这种改进的操作模式可以在被用于相机应用时称为相机控制接口扩展(CCI e)模式。在CCI e模式中,SCL线和SDA线两者均可用于传送数据,而时钟被嵌入在这两条线上的码元到码元转变内。在该示例中,基带处理器304包括主控节点312且图像传感器306包括从动节点314,主控节点312和从动节点314两者可根据相机控制接口扩展(CCIe)模式在控制数据总线308上操作,而不影响耦合至控制数据总线308的其他旧式I2C设备的正确操作。根据一个方面,控制数据总线308上的这种改进模式可在无需CCIe设备与旧式I2C从动设备之间有任何桥接设备的情况下来实现。
[0067]提供了准许I2C兼容设备和CCIe兼容设备并发地耦合至共享控制数据总线308的协议。控制数据总线308可动态地在根据不同通信协议(例如,I2C模式和CCIe模式)操作之间切换。如先前提及的,多模式主控设备312管理对共享控制数据总线308的通信和/或访问。主控设备传送进入调用以指示控制数据总线308要将其通信协议从第一协议模式(例如,I2C模式)切换到第二协议模式(例如,CCIe模式)。类似地,主控设备传送退出调用以指示控制数据总线308要将其通信协议从第二协议模式(例如,CCIe模式)切换到第一协议模式(例如,I2C模式)。耦合至共享总线308的从动设备监视这些进入和退出调用以查明它们何时可在共享总线308上操作。
[0068]示例性CCIe编码技术
[0069]图4解说了时钟可如何在CCIe模式中被嵌入在码元到码元转变内,由此允许将I2C总线中的两条线(即,SDA线和SCL线)用于数据传输。在一个示例中,对时钟的这种嵌入可以通过转变时钟转码来达成。例如,要在物理链路(导线)上传送的数据404被转码,从而保证所传送码元在所传送码元406的每个码元循环或转变处改变状态。在一个示例中,比特序列被转换成三进制数,并且该三进制数的每一数位被转换成码元以供传输。即使在三进制数的两个顺序数位相同的情况下,也保证顺序码元是不同的。因此,原始时钟402可被嵌入在每个码元循环的码元状态改变中。接收机从(所传送码元406中的)每个码元处的状态转变来恢复时钟信息408并且随后反转对所传送码元406的转码以获得原始数据410。在一个示例中,每个码元被转换成一数位,多个数位构成三进制数,其中该三进制数随后被转换成多个比特。因此,原始时钟402可被嵌入在每个码元循环的码元状态改变中。这允许I2C总线的这两条导线(图3中的控制数据总线308,SDA线和SCL线)被用于发送数据信息。另外,码元速率可得以加倍,因为不再需要在时钟信号与数据信号之间具有建立和保持时间。
[0070]图5是解说用于在发射机处将数据比特转码成经转码码元以将时钟信号嵌入在这些经转码码元内的示例性方法的框图。在发射机502处,数据比特序列504被转换成三进制(基数为3)数(即,“转变数”),并且这些三进制数随后被转换成在时钟线SCL 512和数据线SDA 514上传送的(顺序)码元。
[0071]在一个示例中,原始的20比特二进制数据被输入到比特至转变数转换器块508以转换成12数位三进制数。该12数位三进制数的每一数位表示“转变数”。两个连贯转变数可具有相同的数字(即,三进制数的连贯数位可以是相同的)。每个转变数在转变至码元块510处被转换成顺序码元以使得任何两个连贯的顺序码元不具有相同值。由于在每个顺序码元处保证有转变,因而此类顺序码元转变可用于嵌入时钟信号。每个顺序码元516随后在双导线物理链路(例如,包括SCL线512和SDA线514的12C总线)上被发送。
[0072]图6解说了转变数602与顺序码元604之间的示例性转换。三进制数(基数为3的数)的个体数位(也被称为转变数)可具有三(3)个可能数位或状态0、I或2之一。虽然在三进制数的两个连贯数位中可能出现相同值,但没有任何两个连贯顺序码元具有相同值。转变数和顺序码元之间的转换保证即使在连贯的转变数是相同的情况下顺序码元也总是改变(从顺序码元到顺序码元)。
[0073]图7中解说性地阐述了转换功能。在发射机侧(TX: T到S) 702,转变数(T)可被转换成顺序码元(S)。例如,当前顺序码元(Cs)可基于先前顺序码元(Ps)和作为当前转变数(T)的函数的临时转变数(Ttmp)来获得。临时转变数(Ttmp)可通过将当前转变数T与O进行比较来获得,并且当T = O时,临时转变数(Ttmp)变成等于3,否则(当T不等于O时)1\_变成等于T(即,Ttmp = T = 0?3: T)。当前顺序码元可以作为当前顺序码元(Cs)加先前顺序码元(Ps)加临时转变数(Ttmp )的总和(S卩,Cs = Ps+Ttmp )来获得。
[0074]在接收机侧(RX:S到T)704,转换操作被反转以从当前顺序码元(Cs)和先前顺序码元(Ps)获得转变数。临时转变数(Ttmp)可以作为当前顺序码元(Cs)加4减去先前码元(Ps)的总和(S卩,Ttmp = Cs+4-Ps)来获得。当前转变数(T)等于临时转变数(Ttmp),但是临时转变数(Ttmp)与三(3)进行比较,并且当Ttmp = 3,临时转变数(Ttmp)变成等于零(O),否则(当1\_不等于3时)T 变成等于 Ttmp(即,T = Ttmp = 3?0:T)。
[0075]表706解说了转变数与顺序码元之间的转换。
[0076]再次参照图6,本文解说了转变数与顺序码元之间的转换的示例。例如,在第一循环606中,当前转变数(Ta)为2,所以Ttmp也为2,并且在先前顺序码元Ps为I的情况下,新的当前顺序码元Cs现在为3。
[0077]在第二循环608中,转变数(Tb)为I。由于转变数(Tb)不等于0,所以临时转变数Ttmp等于为I的转变数(Tb)值。通过将先前顺序码元(Ps)值3与为I的临时转变数Ttmp相加来获得当前顺序码元(Cs)。由于该加法运算的结果等于4,即大于3,因而翻转数O变成当前顺序码
J Li ( Cs ) ο
[0078]在第三循环610中,当前转变数(T)为I。因为转变数T为I,所以临时转变数Ttmp也为
I。通过将先前顺序码元(Ps)值O与为I的临时转变数Ttmp相加来获得当前顺序码元(Cs)。由于加法运算的结果等于I,即不大于3,因而当前码元(Cs)等于I。
[0079 ]在第四循环6 i 2中,当前转变数(T)为O。因为转变数T为O,所以临时转变数!\_为3。
[0080]通过将先前顺序码元(Ps)值I与为3的临时转变数Ttmp相加来获得当前顺序码元(Cs)。由于该加法运算的结果为4,即大于3,因而翻转数O变成当前顺序码元(Cs)。
[0081]注意,即使两个连贯的三进制数位Tb和Tc具有相同数字,该转换也保证了两个连贯顺序码元具有不同状态值。正因如此,顺序码元604中的保证转变可以用于嵌入时钟信号,由此释放I2C总线中的时钟线SCL以用于数据传输。
[0082]再次参照图5,在接收机520处,该过程被反转以将经转码码元转换回比特,并且在该过程中,从码元转变中提取时钟信号。接收机520在双导线物理链路(例如,包括SCL线524和SDA线526的I2C总线)上接收顺序码元序列522。所接收的顺序码元522被输入到时钟数据恢复(CDR)块528中以恢复时钟定时并采样经转码码元(S)。码元至转变数转换器块530随后将经转码(顺序)码元转换成转变数(即,一个三进制数位数)。接着,转变数至比特转换器532转换12个转变数以从12数位三进制数复原20比特原始数据。
[0083]图5和6中针对双导线总线和12个转变数解说的示例可被一般化为η导线系统和m个转变数。如果每一个Τ(Τ0到Tm-1)有r个可能的码元转变状态,那么m个转变可发送rm个不同状态(即,r = 2n-l)。因此,转变TO-Tm-1包含可具有(2n-l)m个不同状态的数据。
[0084]本文解说的这种技术可被用于增大控制数据总线(例如,图3中的控制数据总线308)的链路速率以超出12C标准总线提供的链路速率,并且于此被称为CCI e模式。在一个示例中,耦合至控制数据总线的主控设备和/或从动设备可实现在码元传输内嵌入时钟信号的发射机和/或接收机(如图4、5、6和7中所解说的),以在相同控制数据总线上达成比使用标准12C总线可能达成的更高比特率。
[0085]图8解说了用于从最高有效比特到最低有效比特将二进制比特转换成三进制数的方法。三进制数的每一数位可被转码(转换)成传送给接收方设备的码元。对于12数位三进制数802,其中Τ0、?1...Τ11表示该三进制数,TO表示3°数位(并且是最低有效数位),而Tll表示311数位(并且是最高有效数位)。从收到比特(例如,20比特序列)开始,首先获得三进制数802的最高有效数位Tl I。随后,接下来获得下一最高有效数位TlO。此过程继续直至获得最低有效数位T0。三进制数802的每一数位也可被称为“转变数”。
[0086]图9解说了用于从最高有效比特到最低有效比特将二进制比特转换成三进制数的发射机侧逻辑电路。图8和9解说了以T11、T1、T9.....TO的次序发送的12数位三进制数
802。通过首先获得和发送最高有效比特,所涉及的逻辑和电路系统的复杂度被简化。在图8和9中的办法中,最高有效顺序码元被首先传送给接收方设备,并且因此被称为先MSS(首先最高有效码元)。如本文所使用的,“最低有效码元”指代与三进制数802的最低有效数位相对应的经转码码元。例如并且参照图6和7的描述,当TO被转码成顺序码元时,该码元是最低有效码元,因为它源自最低有效三进制数位。类似地,如本文所使用的,“最高有效码元”指代与三进制数802的最高有效数位相对应的经转码码元。例如并且参照图6和7的描述,当Tll被转码成顺序码元时,该码元是最高有效码元,因为它源自最高有效三进制数位。并且在码元至转变数转换器块530(图5)随后接收并且将经转码的(顺序)码元转换成转变数(即,三进制数的数位)时,其将首先是最高有效数位Tll并且最后是最低有效数位TC。
[0087]回头参考5,20比特的原始数据按倒序转换成三进制数(S卩,最高有效比特被首先提供给转换器),随后三进制数的每一数位(例如,每个转变数)按倒序转换(即,转码)成顺序码元,并且这些经转码码元按倒序(即,首先最高有效码元)在总线上被传送。
[0088]图10解说了用于从最高有效比特到最低有效比特将三进制数转换成二进制比特的方法。即,此接收机侧转换倒转在图8和9中所解说的发射机侧转换中执行的操作。接收方设备(例如,从动设备)接收倒序传输并且执行时钟恢复和码元采样以将经转码码元转换回三进制数,该三进制数随后以倒序被提供给将该三进制数转换回20比特二进制原始数据的接收机侧逻辑电路。
[0089]图11解说了用于将12数位三进制数转换成20比特的接收机侧逻辑电路。换言之,回头参考5,20比特的原始数据按倒序转换成三进制数(S卩,最高有效比特被首先提供给转换器),随后该转变数再次按倒序转换(即,转码)成顺序码元,并且这些经转码码元按倒序在总线上被传送。接收方设备(例如,从动设备)接收倒序传输并且执行时钟恢复和码元采样以将经转码码元转换回三进制数,该三进制数随后以倒序被提供给图11中的电路,该电路将该三进制数转换回20比特二进制原始数据。
[0090]图12概念性地解说了比特19(8卩,在比特计数开始于为比特O的第一比特时的第20比特)大多数情况下如何在CCIe协议中不被使用并且可被用于共享总线上的设备之间的命令。即,作为本文描述的编码方案的结果,所传送码元中的额外比特(B卩,比特19)现在可用。更具体地,图12解说了比特19(8卩,第20比特)。换言之,如计算机科学中典型的情况,从零开始逐比特计数,并且比特19为第20比特。此处,比特0-18在三进制数范围0000_0000_00003至Ij2221_2201_20013内表示。范围2221_2201_20023到2222_2222_22223中的三进制数未被使用。因此,三进制数范围2221_2201_20023到2222_2222_22223可被用于表示比特19(S卩,第20比特)。换言之,三进制2221,2201,20023 是二进制10,000,000,000,000,000,000(十六进制0x80000),并且三进制2222_2222_22223(0x81BF0)是最大可能的12数位三进制数。
[0091]用于CCIe模式的示例性协议
[0092]图13解说了对CCIe模式进入指示符的示例性通用调用,该CCIe模式进入指示符可由主控设备在共享总线上发送以向从动设备指示共享总线正在从I2C模式切换到CCIe模式进行操作。通用调用1302可由I2C主控设备在共享总线(例如,图3中的处于I2C模式的主控设备312在SDA线和SCL线)上发布以向所有I2C兼容设备指示从I2C模式到CCIe模式的转变。
[0093]在I2C模式中,CCIe主控设备发布具有“CCIe模式”字节或指示符1304的此I2C通用调用1302<XCIe兼容从动设备确认收到通用调用1302<XCIe兼容从动设备可通过在通用调用期间保持(图3中的控制数据总线308的)SCL线为低来插入等待循环(若必要)。
[0094]一旦处于CCIe模式,所有CCIe兼容设备能够对来自CCIe主控设备的请求作出响应。不支持CCIe模式的I2C兼容旧式从动设备在共享控制数据总线上的操作状态或任何功能性不受任何CCIe事务的影响。
[0095]图14解说了可由CCIe主控设备(例如,图3中的处于I2C模式的主控设备312)发布以向所有具有CCIe能力的设备指示从CCIe模式到I2C模式的转变的示例性CCIe调用1402。CCIe主控设备可发布此退出调用1402来代替CCIe SID0
[0096]在CCIe模式中,在CCIe模式中的之后跟随着S的最末数据之后,CCIe主控设备发送特殊的CCIe SID码(“退出”码/指示符1404)以指示(例如,向CCIe兼容设备指示)CCIe模式结束以及转变回到I2C模式。另外,在“退出”码/指示符1404之后,CCIe主控设备根据I2C协议来发送之后跟随着“通用调用”1406的S(开始比特),其中“退出”码1408在I2C协议内的第二个字节处。所有具有CCIe能力的从动方都必须确收通用调用1404。
[0097]图15解说了示例性CCIe从动方标识符(SID)字格式。其解说了将16比特从动方标识符(SID)1504用作CCIe SID字格式1502的一部分。此类SID字格式将在该字被置于控制数据总线上时被用于标识特定从动设备。
[0098]图16解说了示例性CCIe地址字格式1602。其解说了每个地址字1606包括16比特地址1604。地址字1606还包括2比特控制码1608和I比特检错常数1610。表1612解说了控制码的各种可能值。
[0099]多个地址字可被顺序地发送。如果当前控制码是‘00’,则这表示地址字将跟在后面。如果控制码是‘01’,则下一数据字为写数据字。如果控制码是‘10’,则下一数据字为读规范字。控制码‘11’被禁止。
[0100]图17解说了示例性写数据字格式1702。其解说了每个写数据字1700包括16比特写数据部分1702。写数据字1700还包括2比特控制码1704和I比特检错常数1710。表1714解说了控制码的各种可能值。
[0101]多个写数据字可被顺序发送。若当前写码字的控制码是‘00’(码元CO),那么数据要被写入到先前地址。若当前写码字的控制码是‘01’(码元Cl),那么数据要被写入到先前地址+1。如果控制码是‘10’(码元E),则下一字将是SID或退出码。
[0102]图18解说了示例性读规范字格式1800。读规范数据字1800可包括16比特读数据值部分1804、2比特控制码1808、和3比特检错常数1810。
[0103]在最后一个地址字1807之后,跟随着“读规范”(RS)字1812。读规范(RS)字1812指定了后面跟随的读数据字的数目。如表1816中解说的,控制码‘00’被用于指示来自相同地址的读字。控制码‘01’被用于指示来自递增地址的读字。(数据正被读取自的)从动设备不应发送比由“读规范”(RS)字1804指定的数据字更多的数据字(不包括CHK字)。从动设备应发送至少一个读字(不包括CHK字)。从动设备可在发送由“读规范”(RS) 1804字指定的字数目之前结束读取传输。
[0104]图19解说了示例性读数据字格式1902。读数据字1902可包括16比特读数据值部分1904、2比特控制码1906、和I比特检错常数1908。由SID 1907寻址的从动设备确定要返回给请求方主控设备的字的数目。如表1916中解说的,如果读字继续来自相同地址,则控制码是“00”(码元R0)。如果读字继续来自递增地址,则控制码是“01”(码元R1)。如果该字是最后一个读字并且在该字之后没有CHK,则控制码是“10”(码元E)。控制码“00”被禁止。
[0105]共享总线上的示例性12C传输对CCIe传输
[0106]图20解说了I2C—字节写数据操作的示例性时序图。在该示例中,共享控制数据总线(例如,图3中的控制数据总线308)包括串行数据线SDA 2002和串行时钟线SCL 2004。图20中解说的传输方案可被称为“I2C模式”。SCL线2004被用于从主控设备向所有从动设备发送时钟,而SDA线2002传送数据比特。I2C主控设备在SDA线2002中发送7比特从动方ID 2008以指示主控设备希望接入I2C总线上的哪个从动设备,然后发送指示写操作的I比特。只有其ID与该7比特从动方ID 2008相匹配的从动设备才能导致预期动作。为了使I2C从动设备检测其自己的ID,主控设备必须在SDA线上发送至少8比特(或者在SCL线上发送8个时钟脉冲)。
[0107]I2C标准要求所有I2C兼容从动设备在接收到START (开始)状况2006(例如,由SCL线为高时在SDA线上的高到低转变来指示)之际使其总线逻辑复位。
[0108]CCIe协议将SDA线2002和SCL线2004两者用于数据传输,同时将时钟信号嵌入在数据传输内。例如,数据比特可被转码成随后在诸线上传送的多个码元。通过将时钟信号(图20中的I2C总线的SCL线)嵌入在码元转变内,SDA线2002和SCL线2004两者均可被用于数据传输。
[0109]图21解说了其中数据比特已被转码成12个码元以供在SDA线2102和SCL线2104上进行传输的示例性CCIe传输。图21中解说的传输方案可被称为“CCIe模式”。CCIe模式是源同步的,由推挽式驱动器来驱动。在共享控制数据总线上发出数据的任何设备也发出嵌入在数据中(例如,嵌入在码元到码元转变内)的时钟信息。因此,控制数据总线上的仅一个设备被允许在任一时间驱动共享控制数据总线。
[0110]为了在同一条总线上支持旧式I2C设备和CCIe设备两者,CCIe模式操作使用相同的3了六1?1'(开始)状况2106、2108、2110,这防止旧式12(:从动设备对任何0:16操作作出反应(例如,CCIe模式期间的开始状况使旧式I2C从动设备复位)。在此示例中,在传送完整从动方ID(S卩,完整7比特)之前检测START状况2106、2108、2110(S卩,由在SCL线2104为高时在SDA线2102上的高到低转变来指示),因此这是不完整的从动方ID(少于7比特)。如果主控设备发送6个SCL脉冲随后发布START状况2106、2108、2110,则所有旧式I2C从动设备在它们将该数据识别为I2C从动方ID之前使其总线逻辑复位。由于这些6比特序列(例如,对应于每两个码元)是在两个START状况2106、2108、2110之间发送的,因而这些6比特序列不被任何I2C从动设备解码为有效的从动方ID。因此,旧式I2C从动设备将不会对不完整的从动方ID采取动作。
[0111]在此系统中,主控设备控制对总线的接入。因此,希望在控制数据总线上进行传送的任何设备必须向主控设备请求此类接入,例如通过发布中断请求来请求。用于发布中断的现有技术机制依赖于专用中断线或专用中断总线。然而,此类专用中断线或中断总线意味着设备必须包括至少一个附加引脚以容适此类中断线或中断总线。为了消除对此类专用中断引脚和中断线/总线的需要,需要用于CCIe内的带内中断的机制。
[0112]对带内中断的使用还应当避免总线争用或冲突。例如,为了避免冲突,当主控设备正驱动控制数据总线时,从动设备不应被允许驱动该控制数据总线(例如,SDA线2002或SCL线2104)以断言IRQ。
[0113]示例性比特19区域和校验和
[0114]图22解说了从本文公开的编码方案得到的第20比特(比特19)的示例性映射。如能够领会的,可用的三进制数可用于扩展主控设备与从动设备之间的特征和能力。例如,比特19内可用的此三进制数空间(S卩,其比特19为‘I’的数据区域)可用于促成或指示:(a)从动设备到从动设备传输,(b)传输的校验和,(C)主控操作至从动设备的切换,(d)心跳时钟等。
[0115]图23解说了图22的第20比特(比特19)区域的示例性映射内的子区域的细节。
[0116]图24解说了可能发生的各种码元错误状况。时序图2402解说了控制数据总线(SDA线和SCL线)和接收机时钟(RXCLK)上的正确传输。
[0117]解说了时钟缺失2404,其中接收机时钟(RXCLK)缺少两个循环2412和2414,以使得数据比特2410被不正确地检测。如果在相同传输方向上有更多后续字,则在后续字中很可能检测到字数据错误。同步(SYNC)丢失也可能被检测到。如果在最后一个字上出现错误,则主控设备需要超时检测功能性。
[0118]解说了额外时钟2406,其中接收机时钟(RXCLK)具有在额外时钟循环2420处检测到的额外码元‘01’2416和2418。这种错误很可能在该字或后续字中检测到。同步丢失也可能被检测到。
[0119]解说了码元错误2408,其中没有接收机时钟(RXCLK)缺失但是出现单个码元错误2422。这种错误很可能在该字或后续字中检测到。校验和错误很可能被检测到。
[0120]所传送码元内的示例性错误检测
[0121]图25-30解说了对于各种CCIe字而言可能出现的各种码元错误状况(S卩,不具有码元滑动的单个码元错误)。如所示出的,这些错误可以通过使用3个比特(比特0、1和2)来检测,如以下进一步讨论的。这些示例将三(3)个最低有效比特(比特[2:0])用于错误检测。
[0122]图25解说了示出所传送的码元序列0321_0321_0321中的可能错误的表2500以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])0000_0000_0000_0000_0000 2502转换成三进制数(TlI…T0)0000_0000_000032504,该三进制数随后被转换成顺序码元(511"50)0321_0321_03212506。出于此示例的目的,该3个最低有效比特2508均为0(000)。如果在传输期间在原始顺序码元0321_0321_0321 2506中的任何码元处引入了错误,则这将导致错误的码元2510。例如,如果最后一个码元“I”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“010”。如果最后一个码元“I”被改变成“3”,则这会导致3个最低有效比特从“000”改变成“001” ο如果第一个码元“O”被改变成“2”,则这会导致3个最低有效比特从“000”改变成“100”。表2500解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0123]图26解说了示出所传送的码元序列2301_2301_2301中的可能错误的表2600以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])0100_0000jl01_llllj000 2602转换成三进制数(TlI…TO)1111_1111_111132604,该三进制数随后被转换成顺序码元(Sll…S0)2301_2301_23012606。出于此示例的目的,该3个最低有效比特2608均为0(000)。如果在传输期间在原始顺序码元2301_2301_2301 2606中的任何码元处引入了错误,则这将导致错误的码元2610。例如,如果最后一个码元“I”被改变成“3”,则这会导致3个最低有效比特从“000”改变成“111”。如果最后一个码元“I”被改变成“2”,则这会导致3个最低有效比特从“000”改变成“001” ο如果第一个码元“2”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“100”。表2600解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0124]图27解说了示出所传送的码元序列3131_3131_3131中的可能错误的表2700以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])1000_0001_1011_1111_0000 2702转换成三进制数(TlI…T0)2222_2222_222232704,该三进制数随后被转换成顺序码元(511.50)3131_3131_31312706。出于此示例的目的,该3个最低有效比特2708均为0(000)。如果在传输期间在原始顺序码元3131_3131_3131 2706中的任何码元处引入了错误,则这将导致错误的码元2710。例如,如果最后一个码元“I”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“111”。如果最后一个码元“I”被改变成“2”,则这会导致3个最低有效比特从“000”改变成“100” ο如果第一个码元“3”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“001”。表2700解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0125]图28解说了示出所传送的码元序列0132_3101_3231中的可能错误的表2800以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])0001_1000jlll_001ll000 2802转换成三进制数(TlI…TO)0120_1201_201232804,该三进制数随后被转换成顺序码元(511"50)0132_3101_32312806。出于此示例的目的,该3个最低有效比特2808均为0(000)。如果在传输期间在原始顺序码元0132_3101_3231 2806中的任何码元处引入了错误,则这将导致错误的码元2810。例如,如果最后一个码元“I”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“111”。如果最后一个码元“I”被改变成“2”,则这会导致3个最低有效比特从“000”改变成“110” ο如果第一个码元“O”被改变成“3”,则这会导致3个最低有效比特从“000”改变成“111”。表2800解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0126]图29解说了示出所传送的码元序列2030_2120_3021中的可能错误的表2900以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])0100_1010jl01_1010jOOO 2902转换成三进制数(TlI…TO)1201_2012_012032904,该三进制数随后被转换成顺序码元(511"50)2030_2120_30212906。出于此示例的目的,该3个最低有效比特2908均为0(000)。如果在传输期间在原始顺序码元3231_0132_3101 2906中的任何码元处引入了错误,则这将导致错误的码元2910。例如,如果最后一个码元“I”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“010” ο如果第一个码元“2”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“011”。表2900解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0127]图30解说了示出所传送的码元序列3231_0132_3101中的可能错误的表3000以及可如何在3个最低有效比特内检测此类错误。通过使用图5、6、7、8、9和10中解说的方法来将20比特序列(比特[19:0])0101_111(^1101_000(^1000 3002转换成三进制数(TlI…T0)2012_0120_120133004,该三进制数随后被转换成顺序码元(511"50)3231_0132_31013006。出于此示例的目的,该3个最低有效比特3008均为0(000)。如果在传输期间在原始顺序码元3231_0132_3101 3006中的任何码元处引入了错误,则这将导致错误的码元3010。例如,如果最后一个码元“I”被改变成“3”,则这会导致3个最低有效比特从“000”改变成“111” ο如果第一个码元“3”被改变成“O”,则这会导致3个最低有效比特从“000”改变成“100”。表3000解说了只要3个最低有效比特是已知常数(例如,固定常数“000”)则可如何通过这3个最低有效比特来检测任何单个码元的改变的各种其他示例。
[0128]示例性主控/从动设备实现
[0129]接下来参照图31,根据本公开提供了解说主控/从动设备的示例性组件的框图。如所解说的,主控/从动设备3114经由控制数据总线3150耦合至另一主控/从动设备3160。此处,构想了主控/从动设备3114或3160可根据本文公开的前述方面作为主控设备或从动设备来操作,并且主控/从动设备3114和3160中的每一者可具有基本上相似的组件。
[0130]在该示例中,主控/从动设备3114可被实现成具有由总线3102—般化地表示的内部总线架构。取决于主控/从动设备3102的具体应用和整体设计约束,总线3114可包括任何数目的互连总线和桥接器。总线3102将包括一个或多个处理器(一般由处理器3104表示)、存储器3105和计算机可读介质(一般由计算机可读介质3106表示)的各种电路链接在一起。总线3102还可链接各种其他电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。
[0131]在一特定实现中,控制数据总线接口3108提供控制数据总线3150与主控/从动设备3114之间的接口,其中处理器3104被配置成促成字在主控/从动设备3114与主控/从动设备3160之间经由控制数据总线3150的经编码通信。此处,构想了控制数据总线3150可以是双线总线,并且经编码通信可根据一协议(例如,CCIe协议)来编码,该协议分配经编码通信的多个最低有效比特以促成使检错常数最大化。如先前提及的,此类最大化可经由一协议达成,该协议分配多个最低有效比特以包括至少一个附加检错比特或者字的数据部分的至少第一最高有效比特。
[0132]在本公开的进一步方面,计算机可读介质3106被配置成包括各种指令3106a、3106b和/或3106c以促成如本文公开的控制数据总线3150上的检错优化。类似地,此类方面可取而代之经由硬件通过将处理器3104耦合至所解说的电路3120、3130和/或3140中的任一者来实现,如所示出的。此外,构想了控制数据总线3150上的检错优化可通过指令3106a、3106b和/或3106c的任何组合以及电路3120、3130和/或3140的任何组合来促成。
[0133]例如,编码器/解码器指令3106a和编码器/解码器电路3120涉及根据所选/检出协议(例如,CCIe协议)来编码/解码各个字。如先前提及的,此类编码/解码可包括在逐数位基础上将三进制数转换成多个码元(例如,12数位三进制数导致12个码元)以产生前述“额外比特” O
[0134]在本公开的另一方面,比特分配指令3106b和比特分配电路3130涉及根据期望的字格式(例如,SID字格式、地址字格式、写数据字格式、读规范字格式、或读数据字格式)来分配比特。对此,本文公开的各种构想出的字格式包括20比特字格式,其中3个最低有效比特被分配以促成使检错常数最大化。此外,构想了比特分配指令3106b和/或比特分配电路3130中的任一者可被配置成促成灵活的比特分配方案以根据希望检错优化还是数据优化来促成此类最大化。例如,在一特定实现中,最低有效比特被分配用于检错,并且第二最低有效比特和第三最低有效比特中的每一者被分配用于附加的检错比特或者字的数据部分的两个最高有效比特。
[0135]在本公开的另一方面,通信指令3106c和/或通信电路3140可被配置成将主控/从动设备3114与控制数据总线3150对接。具体地,通信指令3106c和/或通信电路3140中的任一者可被配置成根据促成本文公开的检错优化的协议(例如,CCIe协议)来促成字在主控/从动设备3114与主控/从动设备3160之间的经编码通信。
[0136]返回参照图31的其余元件,应当领会,处理器3104负责管理总线3102和一般性处理,包括对存储在计算机可读介质3106上的软件的执行。软件在由处理器3104执行时使主控/从动设备3114执行以下针对任何特定装置描述的各种功能。计算机可读介质3106也可被用于存储由处理器3104在执行软件时操纵的数据。
[0137]处理系统中的一个或多个处理器3104可以执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可驻留在计算机可读介质3106上。计算机可读介质3106可以是非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括磁存储设备(例如,硬盘、软盘、磁带)、光盘(例如,压缩碟(CD)或数字通用盘(DVD)、智能卡、闪存存储器设备(例如,卡、棒或密钥驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器、可移除盘、以及用于存储可由计算机存取和读取的软件和/或指令的其他任何合适介质。作为示例,计算机可读介质还可包括载波、传输线、以及任何其他用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质3106可以驻留在主控/从动设备3114中、在主控/从动设备3114外部、或跨包括该主控/从动设备3114在内的多个实体分布。计算机可读介质3106可以实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。
[0138]接下来参照图32,提供了解说根据本文公开的诸方面促成共享总线上的检错优化的示例性方法的流程图。如所解说的,过程3200包括根据本说明书的一方面的可在计算设备(例如,主控/从动设备3114)内执行的一系列动作。例如,过程3200可通过采用处理器执行存储在计算机可读存储介质上的计算机可执行指令以实现这一系列动作来实现。在另一实施例中,包括用于使至少一台计算机实现过程3200的这些动作的代码的计算机可读存储介质也是可预想到的。
[0139]如所解说的,过程3200始于在动作3210处将主控设备耦合至从动设备。此处,应当领会,此类耦合可包括经由控制数据总线连接主控设备和从动设备。过程3200随后行进至动作3220,其中促成字在主控设备与从动设备之间经由控制数据总线的经编码通信(例如,选择期望的协议、期望的字格式等)。此处,构想了根据一协议来编码经编码通信,该协议通过分配经编码通信的多个最低有效比特以包括至少一个附加检错比特或字的数据部分的至少第一最高有效比特来分配该多个最低有效比特以促成使检错常数最大化。由于构想了编码和解码方面两者,因而过程3200可进一步包括在动作3230处确定是继续进行编码器操作还是继续进行解码器操作。例如,当作为编码器来操作时,过程3200可行进至动作3240,其中根据一协议(例如,CCIe协议)来编码字,该协议根据本文公开的诸方面分配经编码通信的多个最低有效比特以促成使检错常数最大化,并且过程3200随后在动作3242处结束,其中经由控制数据总线传送经编码通信。否则,如果作为解码器来操作,过程3200可行进至动作3250,其中经由控制数据总线接收经编码通信,并且过程3200随后在动作3252处结束,其中根据促成本文公开的检错优化的协议(例如,CCIe协议)来解码经编码通信。
[0140]示例性编码器实现
[0141]回头参考图31,现在在将主控/从动设备3114配置为编码器的上下文内讨论示例性实现。为了促成此类实现,构想了编码器/解码器电路3120可被配置为编码器电路并且编码器/解码器指令3106a可被配置为编码器指令。对此,如图33中所解说的,进一步构想了编码器电路3120和编码器指令3106a中的每一者可被配置成根据本文公开的诸方面经由多个子组件中的任何一个子组件来促成对字的编码。即,如图33中所解说的,编码器电路3120可包括协议子电路3310、优化子电路3320和编码子电路3330,而编码器指令3106a可包括协议指令3312、优化指令3322和编码指令3332。对于此特定实现,比特分配电路3130和比特分配指令3106b中的每一者涉及根据比特方案来分配比特,其中该比特分配方案分配经编码通信的多个最低有效比特以促成使检错常数最大化。协议子电路3310和协议指令3312中的每一者随后涉及确定与期望协议(例如,CCIe协议)相关联的字的字格式,而编码子电路3330和编码指令3332中的每一者涉及根据前述字格式和比特分配方案来编码字以生成经编码通信(例如,通过将字编码为转码成码元的经编码三进制数)。一旦字被编码,通信电路3140和/或通信指令3106中的任一者就可被用于经由控制数据总线传送经编码通信。
[0142]在本公开的进一步方面,构想了优化子电路3320和/或优化指令3322中的任一者可被配置成查明要经由期望的字格式和相应的比特分配方案来实现的优化。在一特定实现中,优化子电路3320和/或优化指令3322可被配置成促成在根据具有第一比特分配方案的检错优化来编码字与根据具有第二比特分配方案的数据优化来编码字之间进行切换。例如,当检错优化优选于数据优化时,编码子电路3330和/或编码指令3332可被配置成根据其中多个最低有效比特包括固定数目的3个比特(例如,3个最低有效比特)的检错优化来编码字,其中比特分配电路3130和/或比特分配指令3106b被配置成通过将最低有效比特、第二最低有效比特和第三最低有效比特中的每一者分配用于检错来促成检错优化。然而,当数据优化优选于检错优化时,编码子电路3330和/或编码指令3332可取而代之被配置成根据其中多个最低有效比特包括固定数目的3个比特的数据优化来编码字,其中比特分配电路3130和/或比特分配指令3106b被配置成通过将最低有效比特分配用于检错、将第二最低有效比特分配用于字的数据部分的最高有效比特、以及将第三最低有效比特分配用于字的数据部分的第二最高有效比特来促成数据优化。
[0143]接下来参照图34,根据本文公开的诸方面提供了解说示例性编码方案体系的流程图。如所解说的,过程3400包括根据本说明书的一方面的可在计算设备(例如,主控/从动设备3114)内执行的一系列动作。例如,过程3400可通过采用处理器执行存储在计算机可读存储介质上的计算机可执行指令以实现这一系列动作来实现。在另一实施例中,包括用于使至少一台计算机实现过程3400的这些动作的代码的计算机可读存储介质也是可预想到的。
[0144]如所解说的,过程3400在动作3410处始于选择编码协议(例如,CCIe协议)。过程3400随后行进至动作3420,其中主控/从动设备查明要经由所选协议来实现的期望优化,其中随后在动作3430处确定针对期望优化的恰适的字格式,并且其中随后在动作3440处根据期望优化来分配比特。例如,在期望最大码元检错的场合,动作3430可包括利用20比特CCIe字格式,并且动作3440可包括将此类格式的3个最低有效比特分配用于检错常数。否则,如果期望数据吞吐量优化,则动作3430可再次包括利用20比特CCIe字格式,但是动作3440现在可包括仅将最低有效比特分配用于检错常数,而第二最低有效比特被分配用于字的数据部分的最高有效比特并且第三最低有效比特被分配用于字的数据部分的第二最高有效比特。
[0145]一旦在动作3440处执行了合适的比特分配,过程3400就行进至动作3450,其中根据期望优化的字格式和比特分配方案来编码各个字。此处,如先前提及的,此类编码可包括将各个字编码为被转码成码元的经编码三进制数。过程3400随后在动作3460处结束,其中经由控制数据总线向其他主控/从动设备传送经编码通信。
[0146]示例性解码器实现
[0147]回头参考图31,现在在将主控/从动设备3114配置为解码器的上下文内讨论示例性实现。为了促成此类实现,构想了编码器/解码器电路3120可被配置为解码器电路并且编码器/解码器指令3106a可被配置为解码器指令。对此,如图35中所解说的,进一步构想了解码器电路3120和解码器指令3106a中的每一者可被配置成根据本文公开的诸方面经由多个子组件中的任何一个子组件来促成对各个字的解码。即,如图35中所解说的,解码器电路3120可包括协议子电路3510、优化子电路3520和解码子电路3530,而解码器指令3106a可包括协议指令3512、优化指令3522和解码指令3532。对于此特定实现,通信电路3140和/或通信指令3106c中的任一者可被配置成经由控制数据总线接收经编码通信,而解码器电路3120和/或解码器指令3106a可被配置成促成对经编码通信的解码。协议子电路3510和协议指令3512中的每一者涉及检测包括在与一协议(例如,CCIe协议)相关联的经编码通信中的字的字格式,并且优化子电路3520和优化指令3522中的每一者被配置成查明经编码通信的优化和对应于该优化的比特分配方案。解码子电路3530和解码指令3532可随后被配置成根据恰适的字格式和相应的比特分配方案(例如,通过利用比特映射)来解码经编码通信。
[0148]接下来参照图36,根据本文公开的诸方面提供了解说示例性解码方案体系的流程图。如所解说的,过程3600包括根据本说明书的一方面的可在计算设备(例如,主控/从动设备3114)内执行的一系列动作。例如,过程3600可通过采用处理器执行存储在计算机可读存储介质上的计算机可执行指令以实现这一系列动作来实现。在另一实施例中,包括用于使至少一台计算机实现过程3600的这些动作的代码的计算机可读存储介质也是可预想到的。
[0149]如所解说的,过程3600在动作3610处始于经由共享总线从另一主控/从动设备接收经编码通信。过程3600随后行进至动作3620,其中主控/从动设备检测字格式和对应于经编码通信的相关联的协议。由于构想了可根据特定优化来编码所接收到的通信,因而过程3600可随后在动作3630处查明此类优化,并且随后在动作3640处检索对应于该优化的比特映射。例如,在检测到对应于最大码元检错的字格式的场合,可以利用包括20比特的比特映射,其中3个最低有效比特可被分配用于检错常数。否则,如果检测到数据吞吐量优化,则比特分配方案可包括仅将最低有效比特分配用于检错常数并且分别将第二和第三最低有效比特分配用于字的数据部分的第一和第二最高有效比特。一旦标识出正确的比特分配方案,过程3600就随后在动作3650处结束,其中根据在动作3640处检索到的比特映射来解码经编码通信。
[0150]附图中解说的组件、步骤、特征、和/或功能之中的一个或多个可以被重新编排和/或组合成单个组件、步骤、特征、或功能,或可以实施在数个组件、步骤或功能中。还可添加附加的元件、组件、步骤、和/或功能而不会脱离本文中所公开的新颖特征。附图中所图解的装置、设备和/或组件可以被配置成执行在这些附图中所描述的方法、特征、或步骤中的一个或多个。本文中描述的新颖算法还可以高效地实现在软件中和/或嵌入在硬件中。
[0151 ]另外应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。过程在其操作完成时终止。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。
[0152]此外,存储介质可以代表用于存储数据的一个或多个设备,包括只读存储器(R0M)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备、和/或其他用于存储信息的机器可读介质。术语“机器可读介质”包括但不限于:便携或固定的存储设备、光学存储设备、无线信道以及能够存储、包含、或承载指令和/或数据的各种其它介质。
[0153]此外,诸实施例可以由硬件、软件、固件、中间件、微代码、或其任何组合来实现。当在软件、固件、中间件、或微码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质之类的机器可读介质或其它存储中。处理器可以执行这些必要的任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或是指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合至另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的手段被传递、转发、或传输。
[0154]结合本文中公开的示例描述的各个解说性逻辑块、模块、电路、元件和/或组件可用设计成执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以实现为计算组件的组合,例如DSP与微处理器的组合、数个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
[0155]结合本文中公开的示例描述的方法或算法可直接在硬件中、在能由处理器执行的软件模块中、或在这两者的组合中以处理单元、编程指令、或其他指示的形式实施,并且可包含在单个设备中或跨多个设备分布。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、⑶-ROM、或本领域中所知的任何其他形式的存储介质中。存储介质可耦合至处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。
[0156]本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
[0157]本文所述的本发明的各种特征可实现于不同系统中而不脱离本发明。应注意,以上实施例仅是示例,且不应被解释成限定本发明。这些实施例的描述旨在是说明性的,而并非旨在限定权利要求的范围。由此,本发明的教导可以现成地应用于其他类型的装置,并且许多替换、修改和变形对于本领域技术人员将是显而易见的。
【主权项】
1.一种设备,包括: 耦合至控制数据总线的处理器, 其中所述处理器被配置成促成字在主控设备与从动设备之间经由所述控制数据总线的经编码通信,并且 其中所述经编码通信是根据分配所述经编码通信的多个最低有效比特以促成使检错常数最大化的协议来编码的,所述协议分配所述多个最低有效比特以包括至少一个附加检错比特或所述字的数据部分的至少第一最高有效比特。2.如权利要求1所述的设备,其特征在于,所述控制数据总线是双线总线。3.如权利要求1所述的设备,其特征在于,所述协议是相机控制接口扩展(CCIe)协议。4.如权利要求1所述的设备,其特征在于,进一步包括: 比特分配电路,其被配置成根据比特分配方案来分配比特,其中所述比特分配方案分配所述经编码通信的所述多个最低有效比特; 编码器电路,其被配置成促成对各个字的编码,其中所述编码器电路包括: 协议子电路,其被配置成确定与所述协议相关联的所述字的字格式;以及 编码子电路,其被配置成根据所述字格式和所述比特分配方案来编码各个字以生成所述经编码通信;以及 通信电路,其被配置成经由所述控制数据总线来传送所述经编码通信。5.如权利要求4所述的设备,其特征在于,所述编码子电路被配置成将各个字编码为被转码成码元的经编码三进制数。6.如权利要求4所述的设备,其特征在于,所述编码器电路进一步包括优化子电路,所述优化子电路被配置成查明要经由所述字格式和所述比特分配方案来实现的优化。7.如权利要求6所述的设备,其特征在于,所述优化子电路被配置成促成在根据具有第一比特分配方案的检错优化来编码各个字与根据具有第二比特分配方案的数据优化来编码各个字之间进行切换。8.如权利要求6所述的设备,其特征在于,所述编码子电路被配置成根据其中所述多个最低有效比特包括固定数目的3个比特的数据优化来编码各个字,并且其中所述比特分配电路被配置成通过将最低有效比特分配用于检错、将第二最低有效比特分配用于所述字的所述数据部分的第一最高有效比特并且将第三最低有效比特分配用于所述字的所述数据部分的第二最高有效比特来促成所述数据优化。9.如权利要求6所述的设备,其特征在于,所述编码子电路被配置成根据其中所述多个最低有效比特包括固定数目的3个比特的检错优化来编码各个字,并且其中所述比特分配电路被配置成通过将最低有效比特、第二最低有效比特和第三最低有效比特中的每一者分配用于检错来促成所述检错优化。10.如权利要求1所述的设备,其特征在于,进一步包括: 通信电路,其被配置成经由所述控制数据总线来接收所述经编码通信;以及 解码器电路,其被配置成促成对所述经编码通信的解码。11.如权利要求10所述的设备,其特征在于,所述解码器电路包括: 协议子电路,其被配置成检测与所述协议相关联的所述字的字格式; 优化子电路,其被配置成查明所述经编码通信的优化和对应于所述优化的比特分配方案;以及 解码子电路,其被配置成根据所述字格式和所述比特分配方案来解码所述经编码通?目O12.一种方法,包括: 将主控设备耦合至从动设备;以及 促成字在所述主控设备与所述从动设备之间经由控制数据总线的经编码通信,其中所述经编码通信是根据分配所述经编码通信的多个最低有效比特以促成使检错常数最大化的协议来编码的,所述协议分配所述多个最低有效比特以包括至少一个附加检错比特或所述字的数据部分的至少第一最高有效比特。13.如权利要求12所述的方法,其特征在于,所述控制数据总线是双线总线。14.如权利要求12所述的方法,其特征在于,所述协议是相机控制接口扩展(CCIe)协议。15.如权利要求12所述的方法,其特征在于,进一步包括: 确定与所述协议相关联的所述字的字格式; 根据比特分配方案来分配比特,其中所述比特分配方案分配所述经编码通信的所述多个最低有效比特; 根据所述字格式和所述比特分配方案来编码所述字以生成所述经编码通信;以及 经由所述控制数据总线来传送所述经编码通信。16.如权利要求15所述的方法,其特征在于,所述编码包括将各个字编码为被转码成码兀的经编码二进制数。17.如权利要求15所述的方法,其特征在于,进一步包括:查明要经由所述字格式和所述比特分配方案实现的优化。18.如权利要求17所述的方法,其特征在于,进一步包括:在根据具有第一比特分配方案的检错优化来编码各个字与根据具有第二比特分配方案的数据优化来编码各个字之间进行切换。19.如权利要求17所述的方法,其特征在于,所述编码包括根据其中所述多个最低有效比特包括固定数目的3个比特的数据优化来编码各个字,并且其中所述比特包括通过将最低有效比特分配用于检错、将第二最低有效比特分配用于所述字的所述数据部分的第一最高有效比特并且将第三最低有效比特分配用于所述字的所述数据部分的第二最高有效比特来促成所述数据优化。20.如权利要求17所述的方法,其特征在于,所述编码包括根据其中所述多个最低有效比特包括固定数目的3个比特的检错优化来编码各个字,并且其中所述比特包括通过将最低有效比特、第二最低有效比特和第三最低有效比特中的每一者分配用于检错来促成所述检错优化。21.如权利要求12所述的方法,其特征在于,进一步包括: 经由所述控制数据总线来接收所述经编码通信;以及 解码所述经编码通信。22.如权利要求21所述的方法,其特征在于,进一步包括: 检测与所述协议相关联的所述字的字格式; 查明所述经编码通信的优化和对应于所述优化的比特分配方案;以及 根据所述字格式和所述比特分配方案来解码所述经编码通信。23.—种设备,包括: 用于将主控设备耦合至从动设备的装置;以及 用于促成字在所述主控设备与所述从动设备之间经由控制数据总线的经编码通信的装置,其中所述经编码通信是根据分配所述经编码通信的多个最低有效比特以促成使检错常数最大化的协议来编码的,所述协议分配所述多个最低有效比特以包括至少一个附加检错比特或所述字的数据部分的至少第一最高有效比特。24.如权利要求23所述的设备,其特征在于,进一步包括: 用于确定与所述协议相关联的所述字的字格式的装置; 用于根据比特分配方案来分配比特的装置,其中所述比特分配方案分配所述多个最低有效比特; 用于根据所述字格式和所述比特分配方案来编码所述字以生成所述经编码通信的装置;以及 用于经由所述控制数据总线来传送所述经编码通信的装置。25.如权利要求24所述的设备,其特征在于,进一步包括:用于查明要经由所述字格式和所述比特分配方案来实现的优化的装置。26.如权利要求25所述的设备,其特征在于,进一步包括:用于在根据具有第一比特分配方案的检错优化来编码各个字与根据具有第二比特分配方案的数据优化来编码各个字之间进行切换的装置。27.—种其上存储有一条或多条指令的非瞬态机器可读存储介质,所述指令在由至少一个处理器执行时使所述至少一个处理器: 将主控设备耦合至从动设备;以及 促成字在所述主控设备与所述从动设备之间经由控制数据总线的经编码通信,其中所述经编码通信是根据分配所述经编码通信的多个最低有效比特以促成使检错常数最大化的协议来编码的,所述协议分配所述多个最低有效比特以包括至少一个附加检错比特或所述字的数据部分的至少第一最高有效比特。28.如权利要求27所述的非瞬态机器可读存储介质,其特征在于,所述一条或多条指令进一步包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令: 确定与所述协议相关联的所述字的字格式; 根据比特分配方案来分配比特,其中所述比特分配方案分配所述多个最低有效比特; 根据所述字格式和所述比特分配方案来编码所述字以生成所述经编码通信;以及 经由所述控制数据总线来传送所述经编码通信。29.如权利要求28所述的非瞬态机器可读存储介质,其特征在于,所述一条或多条指令进一步包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令: 根据其中所述多个最低有效比特包括固定数目的3个比特的数据优化来编码各个字;以及 通过将最低有效比特分配用于检错、将第二最低有效比特分配用于所述字的所述数据部分的第一最高有效比特并且将第三最低有效比特分配用于所述字的所述数据部分的第二最高有效比特来促成所述数据优化。30.如权利要求28所述的非瞬态机器可读存储介质,其特征在于,所述一条或多条指令进一步包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:根据其中所述多个最低有效比特包括固定数目的3个比特的检错优化来编码各个字;以及 通过将最低有效比特、第二最低有效比特和第三最低有效比特中的每一者分配用于检错来促成所述检错优化。
【文档编号】G06F13/42GK106068505SQ201580010556
【公开日】2016年11月2日
【申请日】2015年2月28日 公开号201580010556.1, CN 106068505 A, CN 106068505A, CN 201580010556, CN-A-106068505, CN106068505 A, CN106068505A, CN201580010556, CN201580010556.1, PCT/2015/18202, PCT/US/15/018202, PCT/US/15/18202, PCT/US/2015/018202, PCT/US/2015/18202, PCT/US15/018202, PCT/US15/18202, PCT/US15018202, PCT/US1518202, PCT/US2015/018202, PCT/US2015/18202, PCT/US2015018202, PCT/US201518202
【发明人】S·森戈库
【申请人】高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1