码元转变时钟转码的检错常数

申请号 CN201580063826.5 申请日 2015-11-24 公开(公告)号 CN107005346A 公开(公告)日 2017-08-01
申请人 高通股份有限公司; 发明人 S·森戈库;
摘要 公开了用于检测多线 接口 上的传输中的差错的装置、系统以及方法。一种用于在多线接口上传送数据的方法包括在多线接口上传送数据,包括:获得要在多个连接器上传送的多个比特;将该多个比特转换成码元序列;以及在多个连接器上传送该码元序列。该多个比特中的预定数目的最低有效位可被用于检错。该预定数目的最低有效位可具有与多个差错值中的每一者不同的常数值。影响码元序列中的一个或两个码元的码元差错可以使得预定数目的最低有效位的经解码版本具有作为多个差错值之一的值。
权利要求

1.一种设备,包括:
耦合到多个连接器的通信收发机;
配置成将检错常数(EDC)追加到数据字的差错码插入电路
配置成将所述数据字和所述EDC转换成转变数的编码器;以及
配置成将所述转变数作为码元序列在所述多个连接器上传送的发射机电路,其中所述EDC具有被选择成使解码器能够检测所述码元序列中的一个或多个码元差错的长度和预定义值。
2.如权利要求1所述的设备,其特征在于,所述编码器被配置成使用所述转变数的数位和在前码元来生成所述码元序列中的每一码元,并且其中时钟信息被嵌入在所述码元序列中的连贯码元之间的转变中。
3.如权利要求1所述的设备,其特征在于,所述EDC被追加作为预定义数目的最低有效位,最低有效位的所述预定义数目是基于能供用于对所述多个连接器上的数据传输进行编码的每码元状态总数来确定的。
4.如权利要求3所述的设备,其特征在于,最低有效位的所述预定义数目是基于用来编码所述数据字的码元总数来确定的。
5.如权利要求3所述的设备,其特征在于,所述多个连接器包括数个(N个)单端连接器,能供用于编码数据传输的每码元状态总数是2N-x,其中x至少是1。
6.如权利要求3所述的设备,其特征在于,所述多个连接器包括数个(N个)单端连接器,能供用于编码数据传输的每码元状态总数是N!-x,其中x至少是1。
7.如权利要求1所述的设备,其特征在于,在每一转变处可用的状态总数是3,且所述EDC包括8比特。
8.如权利要求1所述的设备,其特征在于,在每一转变处可用的状态总数是3,所述码元序列包括17个或更多码元,且所述EDC包括9比特。
9.如权利要求1所述的设备,其特征在于,在每一转变处可用的状态总数是5,且所述EDC包括10比特。
10.如权利要求1所述的设备,其特征在于,在每一转变处可用的状态总数是5,所述码元序列包括8个或更多码元,且所述EDC包括11比特。
11.一种在多线接口上传送数据的方法,包括:
提供要在多个连接器上传送的多个比特,其中所述多个比特包括检错常数(EDC);
将所述多个比特转换成转变数;以及
将所述转变数作为码元序列在所述多个连接器上传送,
其中使用基于每码元可能状态的最大数目的数字系统来表达所述转变数,并且其中所述EDC具有被选择成使解码器能够检测所述码元序列中的一个或多个码元差错的长度和预定义值。
12.如权利要求11所述的方法,其特征在于,进一步包括:
使用所述转变数的数位和所述码元序列中的在前码元来生成所述码元序列中的每一码元,其中时钟信息被嵌入在所述码元序列中的连贯码元之间的转变中。
13.如权利要求11所述的方法,其特征在于,所述EDC的长度和预定义值被选择成使得影响所述码元序列中的一个或多个码元的传输差错导致所述EDC在被解码时具有与所述预定义值不同的值。
14.如权利要求11所述的方法,其特征在于,所述EDC被提供作为预定义数目的最低有效位,最低有效位的所述预定义数目是基于能供用于对所述多个连接器上的数据传输进行编码的每码元状态总数来确定的。
15.如权利要求11所述的方法,其特征在于,在每一转变处可用的状态总数是3,且所述EDC包括8比特。
16.如权利要求11所述的方法,其特征在于,在每一转变处可用的状态总数是3,所述码元序列包括17个或更多码元,且所述EDC包括9比特。
17.如权利要求11所述的方法,其特征在于,在每一转变处可用的状态总数是5,且所述EDC包括10比特。
18.一种从多线接口接收数据的方法,包括:
从多个连接器接收码元序列;
将所述码元序列转换成转变数,所述转变数的每一数位表示在所述多个连接器上传送的两个连贯码元之间的转变;
将所述转变数转换成多个比特;以及
基于所述多个比特中包括的检错常数(EDC)的值来确定在所述码元序列的传输期间是否发生码元差错,
其中所述EDC具有基于被定义用于对所述多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和长度。
19.如权利要求18所述的方法,其特征在于,进一步包括:
当所述码元序列中存在多个码元差错时确定发生码元差错,
其中所述EDC的预定义值和长度被选择成使得能够检测影响所述码元序列中的多个码元的传输差错。
20.如权利要求18所述的方法,其特征在于,使用基于在所述多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达所述转变数。
21.如权利要求18所述的方法,其特征在于,所述一个或两个码元差错使得所述EDC的经解码版本具有与所述预定义值不同的值。
22.如权利要求18所述的方法,其特征在于,所述EDC被提供作为所述多个比特中的预定义数目的最低有效位,最低有效位的所述预定义数目是基于能供用于对所述多个连接器上的数据传输进行编码的每码元状态总数来确定的。
23.如权利要求22所述的方法,其特征在于,最低有效位的所述预定义数目是基于用来编码所述多个比特的码元总数来确定的。
24.如权利要求22所述的方法,其特征在于,所述多个连接器包括数个(N个)单端连接器,能供用于编码数据传输的每码元状态总数是2N-x,其中x至少是1。
25.如权利要求22所述的方法,其特征在于,所述多个连接器包括传导多级差分信号的数个(N个)连接器,能供用于编码数据传输的每码元状态总数是N!-x,其中x至少是1。
26.如权利要求18所述的方法,其特征在于,在每一转变处可用的状态数的总数是3,且所述EDC包括8比特。
27.如权利要求18所述的方法,其特征在于,在每一转变处可用的状态数的总数是3,所述码元序列包括17个或更多码元,且所述EDC包括9比特。
28.如权利要求18所述的方法,其特征在于,在每一转变处可用的状态数的总数是5,且所述EDC包括10比特。
29.如权利要求18所述的方法,其特征在于,在每一转变处可用的状态数的总数是5,所述码元序列包括8个或更多码元,且所述EDC包括11比特。
30.一种装备,包括:
用于从多个连接器接收码元序列的装置,包括配置成提供用来接收所述码元序列的时钟信号的时钟恢复电路;
用于将所述码元序列转换成转变数的装置,所述转变数的每一数位表示在所述多个连接器上传送的两个连贯码元之间的转变;
用于将所述转变数转换成多个比特的装置;以及
用于基于所述多个比特中包括的检错常数(EDC)的值来确定在所述码元序列的传输期间是否发生码元差错的装置,
其中所述EDC具有基于被定义用于对所述多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和长度。

说明书全文

码元转变时钟转码的检错常数

[0001] 相关申请的交叉引用
[0002] 本申请要求于2015年10月2日向美国专利商标局提交的美国临时申请No.62/236,522、于2015年9月10日向美国专利商标局提交的美国临时申请No.62/216,692、于2014年11月26日向美国专利商标局提交的美国临时申请No.62/084,998以及于2015年11月23日向美国专利商标局提交的美国非临时申请No.14/949,435的优先权和权益,它们的全部内容通过援引纳入于此。
[0003] 背景
[0004] 领域
[0005] 本公开涉及实现数据通信接口上的高效操作,且更具体地涉及促进采用码元转变时钟转码的数据通信接口中的检错。

背景技术

[0006] 数据通信接口可以采用码元转变时钟转码来将时钟信息嵌入在编码将通过具有多条信号导线的接口传送的数据的码元序列中,从而消除对专用时钟信号线的需求。
[0007] 在多信号数据传递(多线差分信令,诸如N阶乘(N!)电压差分信令(LVDS))的某些示例中,可执行转码(例如,一种编码类型到另一编码类型的数字-数字数据转换)以便通过在每一码元循环引起码元转变而不是在单独的数据通道(差分传输路径)中发送时钟信息的方式来嵌入码元时钟信息。通过此类转码来嵌入时钟信息还可最小化时钟与数据信号之间的偏斜并消除用相环(PLL)来从数据信号中恢复时钟信息的需求。在一个示例中,根据常规集成电路间(I2C)协议或相机控制接口(CCI)协议来操作的两线串行总线可被适配成提供CCI扩展(CCIe)总线,它使用码元转变时钟转码。CCIe总线支持比I2C总线或CCI总线更高的比特率。
[0008] 检错在采用转变编码的数据传递接口中可能是有问题的,因为信令状态差错与从数据传递接口解码的数据中的差错之间通常没有直接关联。数据比特与信令状态之间无关联性可以致使常规检错技术在被应用于转变编码接口时无效。
[0009] 将期望在使用码元转变时钟转码来进行通信的各设备之间的传输中提供可靠的检错。
[0010] 概览
[0011] 根据本文公开的某些方面,可检测转变编码多线接口上的传输中的多个码元差错。在一个示例中,要在转变编码多线接口上传达的数据可被转换成转变数,并且转变数的各数位可被转换成码元序列以供在多条导线或连接器上传输。可使用基于可能码元转变的最大数目的数字系统来表达转变数。在一些实例中,可供用于对多个连接器上的数据传输进行编码的每码元状态总数是可供用于对多个连接器上的数据传输进行编码的每码元状态总数至少减1。
[0012] 可使用检错常数(EDC)来检测码元差错,EDC可被配置成还包括数据字的多个比特中的预定数目的最低有效位。可基于可供用于对多条导线或连接器上的数据传输进行编码的每码元状态总数来确定或计算最低有效位的预定数目。影响码元序列中的一个或多个码元的码元差错可以使EDC的经解码版本具有与在发射机处追加到数据字的EDC的预定义值不同的值。
[0013] 根据某些方面,一种传送设备可包括:耦合到多个连接器的通信收发机;配置成提供已追加EDC的数据字的检错逻辑;配置成将数据字转换成转变数以及从转变数生成码元序列的编码器;以及配置成在多个连接器上传送码元序列的发射机电路。EDC可具有预定义值和固定长度。在码元序列中的一个或多个码元在传输期间被修改时,EDC可被修改。
[0014] 在一方面,可使用转变数的数位和在前码元来生成每一码元。时钟信息可被嵌入在码元序列中的连贯码元之间的转变中。
[0015] 在一方面,EDC可被追加作为预定义数目的最低有效位,最低有效位的预定义数目是基于能供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的。可基于用来对数据字进行编码的码元总数来确定最低有效位的预定义数目。该多个连接器可包括数个(N个)单端连接器。该多个连接器可包括携带多级差分信号的N个连接器。在一个示例中,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在另一示例中,可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。
[0016] 在一方面,在每一转变处可用的状态总数可以是3。在第一示例中,EDC可包括8比特。在第二示例中,码元序列可包括17个或更多码元,且EDC可包括9比特。在第三示例中,在每一转变处可用的状态总数是5时,EDC可包括10比特。在第四示例中,在每一转变处可用的状态总数是5且码元序列包括8个或更多码元时,EDC可包括11比特。
[0017] 根据某些方面,一种在多线接口上传送数据的方法包括:提供要在多个连接器上传送的多个比特,其中该多个比特包括具有预定义值和固定长度的EDC。EDC可被用于检错。该方法可包括:将该多个比特转换成转变数;将转变数转换成码元序列;以及在多个连接器上传送该码元序列。可使用基于每码元可能状态的最大数目的数字系统来表达转变数。在码元序列中的一个或多个码元在传输期间被修改时,EDC可被修改。
[0018] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0019] 在一方面,影响码元序列中的一个或多个码元的传输差错可导致EDC当在接收机处被解码时具有与预定义值不同的值。
[0020] 在一方面,EDC被提供作为预定义数目的最低有效位,最低有效位的预定义数目是基于能供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的。在第一示例中,在每一转变处可用的状态总数可以是3,且EDC可包括8比特。在第二示例中,在每一转变处可用的状态总数可以是3,码元序列可包括17个或更多码元,且EDC可包括9比特。在第三示例中,在每一转变处可用的状态总数可以是5,且EDC可包括10比特。
[0021] 根据某些方面,一种计算机可读存储介质上存储有指令。该存储介质可包括瞬态或非瞬态存储介质。这些指令可由处理器执行以使得处理器提供要在多个连接器上传送的多个比特,其中该多个比特包括具有预定义值和固定长度的EDC。EDC可被用于检错。这些指令可使处理器:将该多个比特转换成转变数;将转变数转换成码元序列;以及在多个连接器上传送该码元序列。可使用基于每码元可能状态的最大数目的数字系统来表达转变数。在码元序列中的一个或多个码元在传输期间被修改时,EDC可被修改。
[0022] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0023] 在一方面,影响码元序列中的一个或多个码元的传输差错可导致EDC当在接收机处被解码时具有与预定义值不同的值。
[0024] 在一方面,EDC被提供作为预定义数目的最低有效位,最低有效位的预定义数目是基于能供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的。在第一示例中,在每一转变处可用的状态总数可以是3,且EDC可包括8比特。在第二示例中,在每一转变处可用的状态总数可以是3,码元序列包括17个或更多码元,且EDC可包括9比特。在第三示例中,在每一转变处可用的状态总数可以是5,且EDC可包括10比特。
[0025] 根据某些方面,一种装备包括:用于提供要在多个连接器上传送的多个比特的装置,其中该多个比特包括具有预定义值和固定长度的EDC,其中EDC被用于检错。该装备可包括:用于将该多个比特转换成转变数的装置;用于将转变数转换成码元序列的装置;以及用于在多个连接器上传送该码元序列的装置。可使用基于每码元可能状态的最大数目的数字系统来表达转变数。在码元序列中的一个或两个码元在传输期间被修改时,EDC可被修改。
[0026] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0027] 在一方面,影响码元序列中的一个或两个码元的传输差错可导致EDC当在接收机处被解码时具有与预定义值不同的值。
[0028] 在一方面,EDC被提供作为预定义数目的最低有效位,最低有效位的预定义数目是基于能供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的。在第一示例中,在每一转变处可用的状态总数可以是3,且EDC可包括8比特。在第二示例中,在每一转变处可用的状态总数可以是3,码元序列包括17个或更多码元,且EDC可包括9比特。在第三示例中,在每一转变处可用的状态总数可以是5,且EDC可包括10比特。
[0029] 根据某些方面,一种从多线接口接收数据的方法包括:从多个连接器接收码元序列;将码元序列转换成转变数,转变数的每一数位表示在多个连接器上传送的两个连贯码元之间的转变;将转变数转换成多个比特;以及基于该多个比特中包括的EDC的值来确定在码元序列的传输期间是否发生一个或两个码元差错。EDC可作为具有基于被定义用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和固定长度被传送。
[0030] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0031] 在一方面,可使用基于在多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达转变数。
[0032] 在一方面,一个或两个码元差错可以使得EDC的经解码版本具有与预定义值不同的值。
[0033] 在一方面,EDC可被提供作为该多个比特中的预定义数目的最低有效位。可基于可供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定最低有效位的预定义数目。可基于用来对该多个比特进行编码的码元总数来确定或计算最低有效位的预定义数目。该多个连接器可包括N个单端连接器。该多个连接器可包括携带多级差分信号的N个连接器。在第一示例中,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在第二示例中,可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。
[0034] 在第三示例中,在每一转变处可用的状态数的总数是3时,EDC可包括8比特。在第四示例中,在每一转变处可用的状态数的总数是3且码元序列包括17个或更多码元时,EDC可包括9比特。在第五示例中,在每一转变处可用的状态数的总数是5时,EDC可包括10比特。在第六示例中,在每一转变处可用的状态数的总数是5且码元序列包括8个或更多码元时,EDC可包括11比特。
[0035] 根据某些方面,一种装备包括:用于从多个连接器接收码元序列的装置;用于将码元序列转换成转变数的装置,转变数的每一数位表示在该多个连接器上传送的两个连贯码元之间的转变;用于将转变数转换成多个比特的装置;以及用于基于该多个比特中包括的EDC的值来确定在码元序列的传输期间是否发生一个或两个码元差错的装置。EDC可作为具有基于被定义用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和固定长度被传送。
[0036] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0037] 在一方面,可使用基于在多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达转变数。
[0038] 在一方面,一个或两个码元差错可以使得EDC的经解码版本具有与预定义值不同的值。
[0039] 在一方面,EDC可被提供作为该多个比特中的预定义数目的最低有效位。可基于可供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定最低有效位的预定义数目。可基于用来对该多个比特进行编码的码元总数来计算或以其他方式确定最低有效位的预定义数目。该多个连接器可包括N个单端连接器。该多个连接器可包括携带多级差分信号的N个连接器。在第一示例中,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在第二示例中,可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。
[0040] 在第三示例中,在每一转变处可用的状态数的总数是3时,EDC可包括8比特。在第四示例中,在每一转变处可用的状态数的总数是3且码元序列包括17个或更多码元时,EDC可包括9比特。在第五示例中,在每一转变处可用的状态数的总数是5时,EDC可包括10比特。在第六示例中,在每一转变处可用的状态数的总数是5且码元序列包括8个或更多码元时,EDC可包括11比特。
[0041] 根据某些方面,一种计算机可读存储介质上可存储有指令。该存储介质可包括瞬态或非瞬态存储介质。这些指令可由处理器执行以使得处理器从多个连接器接收码元序列;将码元序列转换成转变数,转变数的每一数位表示在多个连接器上传送的两个连贯码元之间的转变;将转变数转换成多个比特;以及基于该多个比特中包括的EDC的值来确定在码元序列的传输期间是否发生一个或多个码元差错。EDC可作为具有基于被定义用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和固定长度被传送。
[0042] 在一方面,时钟被嵌入在码元序列中的诸码元之间的转变中。
[0043] 在一方面,可使用基于在多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达转变数。
[0044] 在一方面,一个或两个码元差错可以使得EDC的经解码版本具有与预定义值不同的值。
[0045] 在一方面,EDC可被提供作为该多个比特中的预定义数目的最低有效位。可基于可供用于对多个连接器上的数据传输进行编码的每码元状态总数来计算或以其他方式确定最低有效位的预定义数目。可基于用来对该多个比特进行编码的码元总数来确定最低有效位的预定义数目。该多个连接器可包括N个单端连接器。该多个连接器可包括携带多级差分信号的N个连接器。在第一示例中,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在第二示例中,可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。
[0046] 在第三示例中,在每一转变处可用的状态数的总数是3时,EDC可包括8比特。在第四示例中,在每一转变处可用的状态数的总数是3且码元序列包括17个或更多码元时,EDC可包括9比特。在第五示例中,在每一转变处可用的状态数的总数是5时,EDC可包括10比特。在第六示例中,在每一转变处可用的状态数的总数是5且码元序列包括8个或更多码元时,EDC可包括11比特。
[0047] 根据某些方面,一种设备包括:耦合到多个连接器的通信收发机;配置成在多个连接器上接收码元序列的接收机电路;以及配置成将转变数转换成第一数据字的解码器,该转变数表示码元序列中的连贯码元之间的转变。第一数据字可包括被提供用于检测与码元序列的传输相关联的一个或两个码元传输差错的预定数目的最低有效位。
[0048] 在一方面,时钟可被嵌入在码元序列中的诸码元之间的转变中。
[0049] 在一方面,可使用基于在多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达转变数。
[0050] 在一方面,一个或两个码元差错可以使得EDC的经解码版本具有与预定义值不同的值。
[0051] 在一方面,EDC可被提供作为该多个比特中的预定义数目的最低有效位。可基于可供用于对多个连接器上的数据传输进行编码的每码元状态总数来计算或确定最低有效位的预定义数目。可基于用来对该多个比特进行编码的码元总数来确定最低有效位的预定义数目。该多个连接器可包括N个单端连接器。该多个连接器可包括携带多级差分信号的N个连接器。在第一示例中,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在第二示例中,可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。
[0052] 在第三示例中,在每一转变处可用的状态数的总数是3时,EDC可包括8比特。在第四示例中,在每一转变处可用的状态数的总数是3且码元序列包括17个或更多码元时,EDC可包括9比特。在第五示例中,在每一转变处可用的状态数的总数是5时,EDC可包括10比特。在第六示例中,在每一转变处可用的状态数的总数是5且码元序列包括8个或更多码元时,EDC可包括11比特。
[0053] 附图
[0054] 在结合附图理解下面阐述的详细描述时,各种特征、本质、和优点会变得明显,在附图中,相像的附图标记贯穿始终作相应标识。
[0055] 图1描绘了在各IC设备之间采用数据链路的装置,该数据链路根据多个可用标准之一来选择性地操作。
[0056] 图2解说了在IC设备之间采用数据链路的装置的系统架构。
[0057] 图3解说了在两个设备之间提供的N!接口的示例。
[0058] 图4解说了可根据本文公开的某些方面来适配的发射机和接收机。
[0059] 图5解说了可被用来控制转变数与顺序码元之间的转换的编码方案。
[0060] 图6解说了转变编码接口的一个示例中的码元与转变数之间的关系。
[0061] 图7解说了在3!接口中码元边界处可能的转变数到码元编码。
[0062] 图8解说了3!接口中的转变数与码元之间的数学关系。
[0063] 图9解说了其中通过多线通信接口传送的码元序列受单码元差错的影响的示例。
[0064] 图10是解说表征通过多线通信接口传送的码元序列中的单码元差错的数学关系的示图。
[0065] 图11通过表格示出rn的值,其中n在范围0-15中并且在r=3和r=5时。
[0066] 图12通过表格示出与码元序列中的单码元差错相对应的差错系数。
[0067] 图13解说了差错系数中的最长非零LSB部分。
[0068] 图14解说了其中单码元差错导致单个转变数中的差错的情况。
[0069] 图15解说了影响通过多线通信接口传送的码元序列中的两个码元的信令差错的第一示例。
[0070] 图16解说了影响通过多线通信接口传送的两个连贯码元的信令差错的第二示例。
[0071] 图17解说了根据本文公开的某些方面的在EDC中提供的用于检测对字进行编码的码元序列中的两个码元差错的比特数。
[0072] 图18解说了根据本文公开的某些方面的适配成提供检错的发射机和接收机。
[0073] 图19是解说采用可根据本文所公开的某些方面来适配的处理系统的装置的示例的框图
[0074] 图20是根据本文所公开的某些方面的可在发射机处采用的数据通信方法的流程图
[0075] 图21是解说采用根据本文所公开的某些方面的用于在提供码元差错检测的接口中使用的装置的硬件实现的第一示例的示图。
[0076] 图22是根据本文所公开的某些方面的可在接收机处采用的数据通信方法的流程图。
[0077] 图23是解说采用根据本文所公开的某些方面的用于在提供码元差错检测的接口中使用的装置的硬件实现的第二示例的示图。
[0078] 详细描述
[0079] 在以下描述中,给出了具体细节以提供对诸实施例的透彻理解。然而,本领域普通技术人员将理解,没有这些具体细节也可实践这些实施例。例如,电路可能用框图示出以免使这些实施例混淆在不必要的细节中。在其他实例中,公知的电路、结构、和技术可能不被详细示出以免使这些实施例不明朗。
[0080] 概览
[0081] 某些数据传递接口采用转变编码(包括3相和N!多线LVDS接口)和多线单端接口(包括CCIe接口)。转变编码将时钟信息嵌入通过该接口传送的信令状态中。在某些实例中,数据被转码成转变数,其中每一转变数选择要在当前码元之后传送的下一码元。每一码元可以表示该接口的信令状态。例如,转变数可以表示用来在可在接口上传送的有序码元集合中的各码元之间进行选择的偏移。通过确保连贯码元彼此不同,该接口的信令状态的变化在每一码元边界处发生,从而提供被用来生成接收机处的接收时钟的信息。
[0082] 信令状态中将所传送的码元S1改变成接收到的码元Se1的差错可以使接收机产生与紧接在前的码元S2与已改变码元Se1之间的转变相关联的不正确转变数T1+e1。T1表示S2与正确地传送的码元S1之间的差异,而e1是信令差错所引入的偏移的值。第二不正确转变数T0+e0与已改变码元Se1相关联,其中T0表示正确地传送的码元S1与下一码元S0之间的差异,而e0表示由信令差错引入的偏移的值。e1和e0的值没有直接对应于信令状态中的差错,并且数据比特差错与信令状态差错之间的无关联性可致使常规检错技术在被应用于转变编码接口时无效。
[0083] 根据本文公开的某些方面,通过提供检错常数(EDC)来在转变编码接口中实现可靠的检错。EDC可包括具有已知、固定值的预定义数目的比特。在一个示例中,EDC的值可具有零值,并且可被提供作为要在接口上传送的每一字的最低有效位(LSB)。
[0084] 采用转变编码的设备的示例
[0085] 图1描绘了采用IC设备之间的通信链路的装置100的一个示例。在一个示例中,装置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以及其他组件)。
[0086] 图2是解说连接到通信链路220的装置200的某些方面的示意框图,其中该装置200可被实施在以下一者或多者中:无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备等。装置200可包括通过通信链路220交换数据和控制信息的多个IC设备202和230。通信链路220可被用于连接彼此紧邻地定位或者物理上位于装置200的不同部分中的IC设备202和230。在一个示例中,通信链路220可被设在搭载IC设备202和230的芯片载体、基板电路板上。在另一示例中,第一IC设备202可位于折叠式电话的按键板区段中,而第二IC设备230可位于该折叠式电话的显示器区段中。在另一示例中,通信链路220的一部分可包括电缆或光学连接。
[0087] 通信链路220可包括多个信道222、224和226。一个或多个信道226可以是双向的,并且可以工作在半双工和/或全双工模式下。一个或多个信道222和224可以是单向的。通信链路220可以是非对称的,由此在一个方向上提供较高带宽。在本文描述的一个示例中,第一通信信道222可提供或被称为前向链路,而第二通信信道224可提供或被称为反向链路。第一IC设备202可以被指定为主机系统或发射机,而第二IC设备230可以被指定为客户端系统或接收机,即便IC设备202和230两者都被配置成在通信信道222上传送和接收。在一个示例中,前向链路可以在将数据从第一IC设备202传达给第二IC设备230时以较高数据率操作,而反向链路可以在将数据从第二IC设备230传达给第一IC设备202时以较低数据率操作。
[0088] IC设备202和230可各自具有处理器206、236和/或处理和/或计算电路或其他这样的设备或电路。在一个示例中,第一IC设备202可执行装置200的核心功能,包括通过无线收发机204和天线214来维持无线通信,而第二IC设备230可支持管理或操作显示器控制器232的用户接口。第一IC设备202或第二IC设备230可使用相机控制器234来控制相机或视频输入设备的操作。IC设备202和230中的一者或多者所支持的其他特征可包括键盘语音识别组件、以及其他输入或输出设备。显示器控制器232可包括支持显示器(诸如液晶显示器(LCD)面板、触摸屏显示器、指示器等)的电路和软件驱动器。存储介质208和238可包括瞬态和/或非瞬态存储设备,其被适配成维持由相应处理器206和236、和/或IC设备202和230的其他组件所使用的指令和数据。每个处理器206、236与其相应的存储介质208和238以及其他模块和电路之间的通信可分别由一条或多条总线212和242来促成。
[0089] 反向链路(在此是第二通信信道224)可以按与前向链路(在此是第一通信信道222)相同的方式操作,并且第一通信信道222和第二通信信道224可以能够以相当的速度或以不同的速度进行传送,其中速度可被表达为数据传输速率和/或时钟速率。取决于应用,前向和反向数据率可以基本上相同或相差几个数量级。在一些应用中,单个双向链路(在此是第三通信信道226)可支持第一IC设备202与第二IC设备230之间的通信。当例如前向和反向链路共享相同的物理连接并以半双工方式工作时,第一通信信道222和/或第二通信信道
224可以可配置以按双向模式工作。在一个示例中,通信链路220可被操作以根据行业或其他标准在第一IC设备202与第二IC设备230之间传达控制、命令以及其他信息。
[0090] 在一个示例中,前向和反向链路可被配置或适配成支持宽视频图形阵列(WVGA)、每秒80的LCD驱动器IC而不需要帧缓冲器,以810Mbps递送像素数据以供显示器刷新。在另一示例中,前向和反向链路可被配置或适配成与动态随机存取存储器(DRAM)(诸如双倍数据率同步动态随机存取存储器(SDRAM)实现通信。编码设备210和/或230可以在每一时钟转变编码多个比特,且多组导线可被用来传送和接收来自SDRAM的数据、控制信号、地址信号等。
[0091] 前向和反向信道可以遵循或兼容因应用而异的行业标准。在一个示例中,MIPI标准定义包括应用处理器的IC设备202与控制和/或支持移动设备中的相机或显示器的IC设备230之间的物理层接口。MIPI标准包括管控遵循移动设备的MIPI规范的产品的可操作特性的规范。MIPI标准可定义采用互补金属化物半导体(CMOS)并行总线的接口。
[0092] 在一个示例中,图2的通信链路220可被实现为包括多条信号线(记为N条导线)的有线总线。这N条导线可被配置成携带编码在码元中的数据,其中每一码元定义N条导线的信令状态,并且其中时钟信息被嵌入在多条导线上传送的码元序列中。
[0093] 图3是解说在两个设备之间提供的N线接口300的一个示例的示图。在发射机302处,转码器306可被用于使用N阶乘(N!)编码来将数据比特304和时钟信息编码在要在一组N条导线314上传送的码元中。时钟信号推导自传送时钟312并且可以通过以下方式被编码到在这N条导线314上在NC2个差分信号中传送的码元序列中:确保在连贯码元之间在这NC2个信号中的至少一个信号上发生信令状态转变。当N!编码被用来驱动这N条导线314时,码元的每一比特作为差分信号由一组差分线路驱动器310中的一者来传送,其中该组差分线路驱动器310中的诸差分驱动器被耦合到这N条导线中的不同导线对。导线对的可用组合的数目(NC2个)决定了能够在这N条导线314上传送的信号的数目。可以基于可用于每个码元传输区间的可用信令状态的数目来计算能够被编码在码元中的数据比特304的数目。
[0094] 端接阻抗(通常为电阻性的)将这N条导线314中的每一条耦合到端接网络316中的共用中心点318。将会领会,这N条导线314的信令状态反映了终接网络316中的电流的组合,该电流组合归因于耦合到每条导线的差分线路驱动器310。将会进一步领会,中心点318是零点,藉此终接网络316中的电流在该中心点处彼此抵消。
[0095] 因为该链路中的这NC2个信号中的至少一个信号在连贯码元之间转变,所以N!编码方案不需要使用单独的时钟信道和/或非归零解码。有效地,转码器306通过产生其中每个码元都不同于其紧接的前趋码元的码元序列来确保在这N条导线314上传送的每对码元之间发生转变。在图3中所描绘的示例中,提供了N=4条导线,并且这4条导线能够携带4C2=6个差分信号。转码器306可采用映射方案来生成原始码元以供在这N条导线314上进行传输。转码器306可将数据比特304映射到转变数集合。这些转变数随后可以被用于基于在前码元的值来选择供传输的原始码元,以使得所选择的原始码元与在前原始码元不同。在一个示例中,转变数可以被用于参照连贯原始码元中的第一原始码元来查找对应于这些连贯原始码元中的第二原始码元的数据值。例如,在接收机320处,转码器328可以采用映射来确定在查询表中表征一对连贯原始码元之间的差别的转变数。转码器306、328在每一对连贯原始码元包括两个不同码元的基础上操作。
[0096] 发射机302处的转码器306可以在每次码元转变处可用的N!-1个码元之间进行选择。在一个示例中,4!系统在每个码元转变处为要被传送的下一码元提供4!-1=23个信令状态。比特率可以被计算为每传送时钟循环log2(可用状态)。在使用双倍数据率(DDR)时钟(藉此码元转变在传送时钟312的上升沿和下降沿两者处发生)的系统中,每传送时钟循环传送两个码元。对于N=4,传送时钟循环中的总可用状态是(N!-1)2=(23)2=529个,并且每码元可传送的数据比特304的数目可被计算为log2(529)=9.047比特。
[0097] 接收机320使用一组线接收机322来接收该码元序列,其中该组线接收机322中的每个接收机确定N条导线314中的一对导线上的信令状态的差异。相应地,使用NC2个接收机,其中N表示导线的数目。NC2个接收机产生相应数目的原始码元作为输出。在所描绘的N=4导线示例中,在这4条导线314上接收到的信号由6个接收机(4C2=6)处理以产生被提供到相应的CDR 324和解串器326的状态转变信号。CDR 324可产生可由解串器326使用的接收时钟信号334。接收时钟信号334可以是能够由外部电路系统用来接收由转码器328提供的数据的DDR时钟信号。转码器328通过将每个下一码元与紧挨在其前的码元作比较来解码来自解串器326的收到码元块。转码器328产生与提供给发射机302的数据比特304相对应的输出数据330。
[0098] 转变编码示例
[0099] 图4是解说根据本文所公开的某些方面来配置的发射机400和接收机420的框图。发射机400和接收机420可被适配成与各种编码技术(包括N!和CCIe接口中使用的转变编码)联用。发射机400包括被配置成将数据402转换成转变数414的第一转换器404。转变数
414可用于基于当前码元的值来选择供传输的下一码元,其中该下一码元不同于当前码元。
第二转换器(诸如编码器406)接收转变数并产生供使用适当配置的线驱动器408来在接口上传送的码元序列。由于没有连贯码元对包括两个等同码元,因此在每一次码元转变时在接口的信号线418中的至少一者中发生信令状态的转变。在接收机420处,一组线接收机426向CDR 428提供原始码元(SI)436,该CDR 428提取接收时钟438并将捕捉到的码元(S)434提供给将捕捉到的码元434转换成转变数432的电路。转变数可由电路422解码以提供输出数据430。
[0100] 在3!系统的示例中,发射机400可被配置或适配成将数据402转码成由3个比特来表示的五进制(基数为5)转变数414。在CCIe系统的示例中,发射机400可被配置或适配成将数据402转码成由2个比特来表示的三进制(基数为3)转变数414。转变数414可被编码在码元序列416中以在信号线418上传送。提供给发射机400的数据402可以是一个或多个字,每一字具有预定义数目的比特。第一转换器404(它可以是转码器)接收数据402并为每一数据元素产生转变数序列414。转变数序列414可包括足够数目的三进制数以编码预定义数目的数据比特、检错、以及其他信息。编码器406产生通过线驱动器408传送的码元序列416。在一个示例中,线驱动器408可包括开漏输出晶体管。在另一示例中,线驱动器408可包括推挽式驱动器。通过确保没有连贯码元对包括两个相同码元,由编码器生成的输出码元序列416在码元序列416中的每一对连贯码元之间具有信号线418中的至少一者的状态转变。至少一条信号线中的状态转变可用性准许接收机420从码元序列416中提取接收时钟438。
[0101] 图5是解说编码方案500的简单示例的示图。在这一示例中,编码方案可由配置成产生码元序列416以供在两线CCIe接口上传输的编码器406使用。编码方案500还由转码器424用来从接收自在接口的信号线418上传送的信号的码元中提取数据。在所解说的编码方案500中,使用两根信号线418准许定义4个基本码元S:{0,1,2,3}。码元序列416、434中的任何两个连贯码元具有不同状态,并且码元序列0,0、1,1、2,2和3,3是连贯码元的无效组合。
相应地,在每个码元边界处仅3个有效码元转变可用,其中码元边界由传送时钟确定并且表示第一码元(Ps)终止且第二码元(Cs)开始的点。第一码元可被称为在前或先前码元522,且第二码元可被称为当前码元524。
[0102] 根据本文所公开的某些方面,针对每个先前码元522,这三个可用转变被指派转变数(T)526。T 526的值可以由三进制数表示。在一个示例中,转变数526的值通过指派用于编码方案的码元排序圆502来确定。码元排序圆502为4个可能码元分配码元排序圆502上的位置504a-504d以及位置504a-504d之间的旋转方向506。在所描绘的示例中,旋转方向506为顺时针。转变数526可以表示有效的当前码元524与前一紧邻码元522之间的间隔。间隔可被定义为从前一码元522到达当前码元524所需要的在码元排序圆502上沿旋转方向506的步数。步数可被表达为一位基数为3的数。将领会,码元之间的三步差异可被表示为0基数-3。图5中的表520概述了采用这种办法的编码方案。
[0103] 在发射机400处,在给定先前码元522和用作转变数526的输入三进制数的知识的情况下,表520可被用于查找要被传送的当前码元524。在接收机420处,表520可被用作查找表以确定表示先前码元522与当前码元524之间的转变的转变数526。转变数526可作为三进制数来被输出。
[0104] 使用将时钟信息嵌入到码元序列中的转码器可将发射机400接收到以供传输的数据402与在信号线418上传送的码元序列416解除关联。因此,在不考虑至少一个先前传送的码元的情况下,所接收到的原始码元436无法被直接解码以获得提供给发射机400的数据402。该解除关联可使得常规纠错技术无效。例如,常规系统可将纠错码(ECC)追加到数据
402,其中该ECC可以是从数据402的预定义块大小或者分组长度计算出的循环冗余码(CRC)。该ECC可被用于标识和/或纠正在常规接口中的传输期间发生的差错,其中这些差错可包括一个或多个比特差错。
[0105] 在使用转变编码的接口中,码元差错以比特差错突发来显现在接收机处。即,单个码元传输差错可引起多个比特差错。在这些情形中,CRC通常超过汉明距离且不是用于检错的切实解决方案。
[0106] 图6是解说码元602与转变数604(其在本文中也可被称为“转变码元”)之间的关系的时序图600。在这一示例中,每一数据字被编码到在多线接口上传送的m个码元中。在m个码元中传送的字可以使用以下公式来解码:
[0107]
[0108] 其中Tk是第k迭代处的转变数,且r是码元之间的每一转变处的可用码元的数目。例如,在其中自转变被禁止(以确保接收时钟能被可靠地生成)的3!接口中,6个定义状态中的r=5个状态在每一码元转变处可用。在各种示例中,3!接口可以将数据编码在m=4个码元或m=7个码元的序列中。在4!接口中,24个定义状态中的r=23个状态在每一码元转变处可用,并且4!接口可以将数据编码在m=2个码元的序列中。在CCIe接口中,4个定义状态中的r=3个状态在每一码元处可用,并且数据字可被编码在m=12个码元的序列中。对于3线单端接口,m=12和r=7的值可被使用。对于4线单端接口,m=10和r=15的值可被使用。
[0109] 图7是解说用于3!接口的转变数到码元编码的示图700。在这一示例中,存在6个可能码元,S:{0,1,2,3,4,5},其围绕码元排序圆702布置。通过确保同一码元不出现在任何两个连贯码元区间中,时钟信息被嵌入在码元序列中。在这一示例中,r=5,并且对于每一类型的转变704、706、708、710、712,转变数(T)可被指派不同值。转变数的值可以相对于码元排序圆702上的当前码元的位置来指示码元排序圆702上的下一码元的位置。转变数可以取在范围1-5中的值。因为当前码元不能与前一码元相同,所以当前码元与下一码元之间的步数不能是零。
[0110] 转变数可根据以下公式来被指派:
[0111] T=Ps+1≤Cs?Cs–(Ps+1):Cs–(Ps+1)+6
[0112] 相反,当前顺序码元编号(Cs)可根据以下规则来指派:
[0113] Cs=Ps+1+T<6?Ps+1+T:Ps+1+T–6
[0114] 其中Cs是当前码元,且Ps是前一收到码元。
[0115] 图8是解说码元转变时钟转码的一般化示例800的示图。在这一示例800中,接口对于在多线通信接口上传送的每一码元提供六个可能的信令状态,其中通过确保每一对连贯地传送的码元包括两个不同码元,时钟信息被嵌入在连贯码元之间的每一转变处。相应地,在码元之间的每一转变处有5个状态可用。通过将数据字的各比特转换成转变数来编码该数据字,这基于当前所传送的码元来选择要传送的下一码元。在示例800中,三个顺序码元812、814、816在多线通信接口上传送,其中每一码元812、814、816定义多线通信接口的六个信令状态之一。数据和时钟信息被编码在码元812、814、816的连贯对之间的转变中。转变可被表示为转变数808、810的各个数位。转变数的每一数位标识码元序列中的一对连贯码元之间的转变,并且在这一上下文中,各数位也可被称为转变数。如本文所述,对于m个码元的序列,数据被编码为:
[0116]
[0117] 其中k具有在0和m-1之间的值。第一转变数(Tk)808对应于第一码元812(A)与第二码元814(X)之间的转变,并且第二转变数(Tk-1)810对应于第二码元814(X)与第三码元816(B)之间的转变。在此,第一码元812可以编码数据字的最高有效位。
[0118] 在一个示例中,多比特数据字可被转换成m个转变数的序列。每一转变数可以使用三进制数、四进制数、五进制数、六进制数或使用可表示r个转变的某一其他数字系统来表达。即,数字系统可以是提供能跨范围0到r-1的数字的r基系统。每一转变数可以基于正传送的当前码元来选择供传输的下一码元。从与当前码元不同的诸码元中选择下一码元以确保发生信令状态转变,以便将时钟信息嵌入码元序列802中。即,连贯码元对中的两个不同码元的传输造成多线接口的至少一条导线的信令状态的变化,并且接收机可以基于在连贯码元之间的信令状态中检测到的变化来生成接收时钟。
[0119] 在示例800中,码元排序圆806解说了一种选择下一码元的方法。在此,转变数可被表达为五进制数(基数为5),具有可能值{0,1,2,3,4}。对于六个可能码元804a-804f中的每一者,六个信令状态之一在多线通信接口上传送。六个码元804a-804f被布置在绕码元排序圆806的不同位置中。给定在码元排序圆806上的当前码元位置,可通过选择在码元排序圆806上位于T个顺时针步数处的码元作为下一码元来对转变数T进行编码。在一个示例中,在当前码元是码元0 804a时,转变数值T=1选择码元1 804b作为下一码元,转变数值T=2选择码元2 804c作为下一码元,转变数值T=3选择码元3 804c作为下一码元,且转变数值T=
4选择码元4 804d作为下一码元。转变数值T=0可造成翻转,因为该转变数选择距当前码元(码元0 804a)为5个顺时针步数(或1个逆时针步数)的码元,从而选择码元5 804f作为下一码元。
[0120] 在所传送的码元序列802的示例中,码元序列802中的第一码元812可对应于码元1 804b。输入数据可被处理以产生具有值Tk=2的第一转变数808、以及具有值Tk-1=1的第二转变数810。第二码元814可基于Tk的值被确定为码元3 804d,且第三码元816可基于Tk-1的值被确定为码元4 804e。
[0121] 在接收机处,码元排序圆806可被用来确定连贯码元812、814和/或816之间的每一转变的转变数。在一个示例中,接收机基于连贯码元812、814和/或816之间发生的信令状态变化来提取接收时钟。接收机随后可从多线接口捕捉码元812、814、816并确定表示每一对连贯码元812、814和/或816之间的转变的转变数。在一个示例中,可通过计算该对连贯码元812、814之间在码元排序圆806上的步数来确定转变数。
[0122] 转变编码接口中的检错
[0123] 根据本文公开的某些方面,可使用添加到要在转变编码接口上传送的数据的EDC来在转变编码接口中实现可靠检错。EDC可包括具有预定义位数的预定义数目的比特,其中EDC具有已知、固定值。在一个示例中,EDC在被传送时具有零值。在一些情形中,EDC被提供作为要在该接口上传送的每一字的最低有效位(LSB)。EDC字的形式和结构可被选择成使得影响字的单个信令状态差错造成在接收机处解码的EDC具有不同于该固定值的值(例如,非零值)。
[0124] 图9解说了影响转变编码接口的单个差错的效应的示例900。在该示例中,数据字912被提供以供在该接口上传输。EDC 914被追加到数据字912以产生输入到编码器的传输字902。传输字902在码元序列910中传送,其中码元序列910包括12个码元。码元序列910在被配置用于CCIe操作的两线接口上传送并且在接收机处以码元流904被接收。在传输中,发生信令差错,使得初始传送的码元916被修改并被接收为错误码元918。与接收到的码元流
904相对应的转变数流906包括包含差错偏移的转变数920、922。第一转变数920表示前一码元与错误码元918之间的差异,且第二转变数922表示错误码元918与在受影响码元之后传送的下一码元之间的差异。
[0125] EDC 914的大小、位置以及结构可被选择成使得单码元差错的发生在接收机处产生与所传送的EDC 914不同的EDC 926。在一个示例中,EDC 914包括多个比特且可被设置成零值。在CCIe接口的示例中,EDC 914可具有三个比特。
[0126] 图10是解说其中在多线通信接口上传送的码元序列1002受单码元差错1018影响而导致在接收到的码元序列1004中捕捉到错误码元1014的示例的示图。所传送的码元序列1002包括第一码元1008(A码元)、第二码元(X码元)1010以及第三码元1012(B码元)。在接收到的码元序列1004中,第一码元1008和第三码元1012被正确地接收,而第二码元1014被码元差错1018修改(位移e)且被接收为错误码元(X′码元1014)。
[0127] 单码元差错1018的发生导致两个转变数差错。第一不正确转变数1020表示正确接收到的第一码元1018与X′码元1014之间的转变。第二不正确转变数1022表示X′码元1014与正确接收到的第三码元1012之间的转变。第一不正确转变数1020可被表达为Tk+ek,其中Tk是与第一码元1008和X码元1010之间的转变相对应的第一正确转变数1016,而ek是在第一不正确转变数1020中造成的相对于第一正确转变数1016的差错值。第二不正确转变数1022可被表达为Tk-1+ek-1,其中Tk-1是与X码元1010和第三码元1012之间的转变相对应的第二正确转变数1024,而ek-1是在第二不正确转变数1022中造成的相对于第一正确转变数1024的差错值。
[0128] 单码元差错1018的效应在解码转变圆1006中解说。初始从多线接口接收与码元1相对应的第一码元1008。下一码元由于差错而被不正确地捕捉为X′码元1014。X′码元1014可对应于码元0。随后从多线接口接收与码元4相对应的第三码元1012。在这一示例中,最高有效码元被首先传送,并且:
[0129] e=3,Tk=2,Tk-l=1
[0130] Tk+e=2+3=5=0基数5,以及ek=-2
[0131] Tk-l-e=1-3=-2=4基数5,以及ek-1=-3
[0132] 每一数据字可由转变数序列{T0,T1,…,Tm-1}来表示。
[0133] 位移差错e表示所传送的X码元1010与接收到的X′码元1014之间的差异,它可对应于解码转变圆1006中的步数。由于用来表达转变数的数字系统中的翻转,e的值在取值上不一定等于ek。例如,具有值3的转变数可表示解码转变圆1006上的第一正确转变数1016由位移差错e造成的在所传送的X码元1014与接收到的X′码元1014之间的差异,而ek的值具有值2。
[0134] 对于两个连贯码元转变:
[0135] 比特=Tkrk+Tk-1rk-1
[0136] 影响两个连贯码元的单个差错的结果可被表达为:
[0137] 比特′=(Tk+ek)rk+(Tk-1-ek-1)rk-1
[0138]      =(Tkrk+Tk-1rk-1)+(ekr-ek-l)rk-1
[0139] 其中:
[0140] (ekr-ek-1)rk-1可被称为差错效应,
[0141] (ekr-ek-1)可被称为差错系数,以及
[0142] rk-1可被称为基幂。
[0143] 根据某些方面,转变编码接口可被配置成使得r是奇数。在r是奇数时,得出rk-1也是奇数(LSB非零)。相应地,(ekr-ek-1)的值确定EDC所需的LSB的数目。图11提供了在r=3和5时rn的列表(其中n在范围0-15中)。第一表1100可与CCIe接口相关,其中在每一码元区间处有r=3个转变可用。在每一实例中,基幂的LSB 1104被设置成‘1’。第二示例1102可以与3线3!接口相关,其中在每一码元区间处有r=5个转变可用(6个可能码元)。在每一实例中,基幂的LSB 1206被设置成‘1’。
[0144] 图12是通过表格示出差错系数并且解说在码元差错不涉及连贯码元区间中的码元重复(这可造成时钟缺失)的差错系数的表1200。|ek|总是小于r。即:
[0145] 1≤|ek|≤r-1,
[0146] 1≤|ek-1|≤r-1。
[0147] 因为|ek|的最小值是1,所以|ekr|的最小值是r。|ek-1|的最大值是r-1。在存在单码元差错时,差错系数(ekr-ek-1)永不为零。
[0148] 图13解说了差错系数中的最长非零LSB部分的计算和表格化的示例1300。在此,在|ek|和|ek-1|两者是2(2n)的最长幂且ek=ek-1时,(ekr–ek-1)的2个LSB的幂是最长的。差错系数的2个LSB的最长幂确定“检错常数LSB”的大小。
[0149] 本文公开的某些方面可被应用于不使用转变编码来将时钟信息嵌入码元序列的接口。在一些实例中,数据可被转码到具有奇数基数的数字系统。例如,数据可被转码到诸如三进制数字系统、五进制数字系统、七进制数字系统等数字系统。
[0150] 图14解说了其中单码元差错导致单个转变数1408、1426中的差错的情况的两个示例1400、1420。在第一示例1400中,信令差错影响在前码元序列中最后传送的码元1402。该信令差错导致接收机检测到经修改码元1404作为在前码元序列中最后接收的码元。该差错可在表示在前码元序列中最后传送的码元1402与当前码元序列的第一码元之间的差异的转变数1406中引入偏移。在第一示例1400中,该差错的效应可被表达为:em-1rm-1,其中差错系数是em-1且基幂是rm-1。
[0151] 在第二示例1420中,信令差错影响当前码元序列中最后传送的码元1422。该信令差错导致接收机检测到经修改码元1424作为当前码元序列中最后接收的码元。该差错可在表示当前码元序列中最后传送的码元1422与下一码元序列的第一码元之间的差异的转变数1426中引入偏移。在第一示例1400中,该差错的效应可被表达为e0。
[0152] 表1 列出可检测使用转变编码的多线接口中的单码元差错的EDC中的LSB的数目。
[0153]r EDC长度(比特) 示例
3 3 2线单端(例如,CCIe)
5 5 3线多级差分(3!)
7 6 3线单端
9 7  
11 5  
13 6  
15 8 4线单端
17 9  
19 8  
21 7  
23 6 4线多级差分(4!)
[0154] 表1
[0155] 图14中解说的情形不影响EDC中准许检测单码元差错所需的LSB的最大数目。
[0156] 检测每字多个码元差错
[0157] 图15是解说影响对单个数据字进行编码的码元序列1502中的两个码元1504、1506的信令差错的第一示例的时序图1500。图15涉及其中信令差错影响两个非连贯码元的示例。码元1504、1506中的差错导致相应的各对转变差错1508、1510。这些转变差错导致错误的转变数1512、1514、1516、1518。可归因于第一受影响码元1504的差错效应可被表述为(ekr-ek-1)rk-1,而可归因于第一受影响码元1504的差错效应可被表述为(ejr-ej-1)rj-1。假定如果差错的总效应(ekr-ek-1)rk-1+(ekr-ek-1)rk-1总是修改具有预定长度和值的EDC,则多个码元差错可被检测。
[0158] 图16是解说影响对单个字进行编码的码元序列1602中的两个连贯码元1604、1606的信令差错的第二示例的时序图1600。连贯码元1604、1606中的差错导致转变差错1608,转变差错1608导致生成三个错误的转变数1610、1612、1614。可归因于受影响码元1504、1506的差错效应可被表述为(ekr2+ek-1r+ek-2)rk-2。在根据本文公开的某些方面适配的接收机中,与非连贯码元1504、1506中的差错相比,可以用更短EDC来检测可归因于影响连贯码元1604、1606的差错的差错效应。
[0159] 图17是解说用于r(每码元边界可用转变)和m(用来对数据元素进行编码的码元数目)的各种值的EDC比特数的表1700。用于检测两个码元差错的EDC大小随m的值而变化。表1700的第一行(带阴影)对应于用来检测单码元差错的EDC。
[0160] 根据本文公开的某些方面,在足够长度的EDC与数据字一起传送时,接收机可被配置成检测表示数据字的码元序列中的两个码元差错。EDC的长度可基于用来对数据字进行编码的码元数目以及一对连贯地传送的码元之间的边界处可用的转变的数目来确定。
[0161] 由时钟缺失或额外时钟造成的码元滑动差错可能不被检错常数检测到。然而,这些类型的差错中的大多数可由较高协议层、在下一字处、和/或使用接收机设备处的状态机被检测到。
[0162] 图18解说了通过N线串行总线1820来耦合的发射机1800和接收机1840,其中串行总线1820上的每一传输包括根据本文公开的某些方面提供的EDC(检错常数)。发射机1800可包括适配成将EDC追加到数据字1802的EDC插入电路1804,其中数据字1802被提供作为发射机1800的输入。EDC插入电路1804可以将经增强数据字1814提供给第一编码器1806,第一编码器1806配置成将经增强数据字1814转换成转变数1816。发射机1800可包括配置成从转变数1816生成码元序列1818的第二编码器1808。可使用转变数1816的数位和码元序列1818中的在前码元来生成码元序列1818中的每一码元。通信收发机1810可被配置成在串行总线1820上传送码元序列1818。在一些实施例中,时钟信息可被嵌入在码元序列1818中的连贯码元之间的转变中。
[0163] EDC可具有被选择成使得接收机1840能够检测与数据字1802相对应的码元序列1818中的码元差错的长度和预定义值。在一些实例中,EDC的长度和预定义值可被选择成使得接收机1840能够检测影响码元序列1818中的多个码元的传输差错。EDC插入电路1804可以将EDC追加为预定义数目的最低有效位。可基于可供用于对串行总线1820上的数据传输进行编码的每码元状态总数和/或用来对数据字1802和EDC进行编码的码元总数来确定最低有效位的数目。
[0164] 在一个示例中,串行总线1820具有N个单端连接器,并且可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。在另一示例中,串行总线1820具有N个多级差分连接器,并且可供用于对数据传输进行编码的每码元状态总数是N!-x,其中x至少是1。在另一示例中,在每一转变处可用的状态总数是3,且EDC包括8比特。在另一示例中,在每一转变处可用的状态总数是3,码元序列包括17个或更多码元,且EDC包括9比特。在另一示例中,在每一转变处可用的状态总数是5,且EDC包括10比特。在另一示例中,在每一转变处可用的状态总数是5,码元序列包括8个或更多码元,且EDC包括11比特。
[0165] 接收机1840可包括可被配置成从串行总线1820接收原始码元序列1856的通信收发机1846。在一些实例中,接收机1840可包括将接收时钟信号1858和捕捉到的码元序列1854提供给第一解码器1844的时钟和数据恢复电路(CDR)1848。第一解码器1844将捕捉到的码元序列1854转换成转变数1852。转变数1852的每一数位可表示捕捉到的码元序列1854中的两个连贯码元之间的转变。接收机1840可包括适配成将转变数1852转换成一个或多个字1850、1862的第二解码器1842。在所解说的示例中,EDC字1862可被提供给检错电路1864,检错电路1864产生指示传输期间是否发生差错的信号1860。检错电路1864可包括配置成将EDC字1862与预期的预定义值相比较的组合逻辑和/或比较器。在EDC字1862不匹配预定义值时可标识出差错。在一个示例中,预定义值是零,并且EDC字1862的每一比特预期是‘0’比特。第二解码器1842解码出的比特的一部分可被提供作为输出数据字1850。在一些示例中,可以从嵌入在原始码元序列1856中的连贯码元之间的转变中的时钟信息导出接收时钟信号1858。
[0166] 处理电路的示例
[0167] 图19是解说采用可被配置成执行本文所公开的一个或多个功能的处理电路1902的装置的硬件实现的简化示例的概念图1900。根据本公开的各种方面,本文所公开的元素、或元素的任何部分、或者元素的任何组合可使用处理电路1902来实现。处理电路1902可包括一个或多个处理器1904,其由硬件和软件模块的某种组合来控制。处理器1904的示例包括:微处理器微控制器数字信号处理器(DSP)、现场可编程阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。该一个或多个处理器1904可包括执行特定功能并且可由软件模块1916之一来配置、增强或控制的专用处理器。该一个或多个处理器1904可通过在初始化期间加载的软件模块1916的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块1916来进一步配置。
[0168] 在所解说的示例中,处理电路1902可使用由总线1910一般化地表示的总线架构来实现。取决于处理电路1902的具体应用和整体设计约束,总线1910可包括任何数目的互连总线和桥接器。总线1910将各种电路链接在一起,包括一个或多个处理器1904、和存储1906。存储1906可包括存储器设备和大容量存储设备,并且在本文可被称为计算机可读介质和/或处理器可读介质。总线1910还可链接各种其他电路,诸如定时源、定时器外围设备、稳压器、和功率管理电路。总线接口1908可提供总线1910与一个或多个收发机1912之间的接口。可针对处理电路所支持的每种联网技术来提供收发机1912。在一些实例中,多种联网技术可共享收发机1912中找到的电路系统或处理模块中的一些或全部。每个收发机1912提供用于通过传输介质与各种其它装置通信的手段。取决于该装置的本质,用户接口1918(例如,按键板、显示器、触摸接口、扬声器、话筒、操纵杆)也可被提供,并且可直接或通过总线接口1908通信地耦合至总线1910。
[0169] 处理器1904可负责管理总线1910和一般处理,包括对存储在计算机可读介质(其可包括存储1906)中的软件的执行。在这一方面,处理电路1902(包括处理器1904)可被用来实现本文所公开的方法、功能和技术中的任一种。存储1906可被用于存储处理器1904在执行软件时操纵的数据,并且该软件可被配置成实现本文所公开的方法中的任一种。
[0170] 处理电路1902中的一个或多个处理器1904可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储1906中或驻留在外部计算机可读介质中。外部计算机可读介质和/或存储1906可包括非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的软件和/或指令的合适介质。作为示例,计算机可读介质和/或存储1906还可包括载波、传输线、和任何其它用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质和/或存储1906可驻留在处理电路1902中、处理器1904中、在处理电路1902外部、或跨包括该处理电路1902在内的多个实体分布。计算机可读介质和/或存储1906可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。
[0171] 存储1906可维持以可加载代码段、模块、应用、程序等来维持和/或组织的软件,其在本文中可被称为软件模块1916。软件模块1916中的每一者可包括在安装或加载到处理电路1902上并由一个或多个处理器1904执行时有助于运行时映像1914的指令和数据,运行时映像1914控制一个或多个处理器1904的操作。在被执行时,某些指令可使得处理电路1902执行根据本文所描述的某些方法、算法和过程的功能。
[0172] 软件模块1916中的一些可在处理电路1902初始化期间被加载,并且这些软件模块1916可配置处理电路1902以实现本文所公开的各种功能的执行。例如,一些软件模块1916可配置处理器1904的内部设备和/或逻辑电路1922,并且可管理对外部设备(诸如,收发机
1912、总线接口1908、用户接口1918、定时器、数学协处理器等)的访问。软件模块1916可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路
1902提供的各种资源的访问。这些资源可包括存储器、处理时间、对收发机1912的访问、用户接口1918等。
[0173] 处理电路1902的一个或多个处理器1904可以是多功能的,由此软件模块1916中的一些被加载和配置成执行不同功能或相同功能的不同实例。这一个或多个处理器1904可附加地被适配成管理响应于来自例如用户接口1918、收发机1912和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,这一个或多个处理器1904可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器1904服务的任务集。在一个示例中,多任务环境可使用分时程序1920来实现,分时程序1920在不同任务之间传递对处理器1904的控制权,由此每个任务在完成任何未决操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器1904的控制权返回给分时程序1920。当任务具有对一个或多个处理器1904的控制权时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序1920可包括操作系统、在循环法基础上转移控制权的主循环、根据各功能的优先级化来分配对一个或多个处理器1904的控制权的功能、和/或通过将对一个或多个处理器1904的控制权提供给处置功能来对外部事件作出响应的中断驱动式主循环。
[0174] 图20是解说用于采用转码的多线通信接口上的数据通信的方法的流程图。可使用传送电路来执行该方法。
[0175] 在框2002,传送电路可以提供要在多个连接器上传送的多个比特。该多个比特可包括EDC。EDC可具有预定义值和固定长度。EDC可被用于检错。
[0176] 在框2004,传送电路可以将该多个比特转换成转变数。可使用基于每码元可能状态的最大数目的数字系统来表达转变数。
[0177] 在框2006,传送电路可以将转变数作为码元序列在该多个连接器上传送。
[0178] 在一些示例中,传送电路可使用转变数的数位和码元序列中的在前码元来生成码元序列中的每一码元。在一些示例中,时钟信息被嵌入在码元序列中的连贯码元之间的转变中。
[0179] 在码元序列中的一个或两个码元在传输期间被修改时,EDC可被修改。影响码元序列中的一个或多个码元的传输差错可导致EDC当在接收机处被解码时具有与预定义值不同的值。
[0180] 在一些实例中,EDC被提供作为数个最低有效位。可基于可供用于对该多个连接器上的数据传输进行编码的每码元状态总数来确定最低有效位的数目。
[0181] 在一个示例中,当每数据字传送16个或更少码元时,在每一转变处可用的状态数的总数是3并且EDC包括8比特。当码元序列包括17个或更多码元且可用状态的数目是3时,EDC可包括9比特。
[0182] 在另一示例中,当每数据字传送7个或更少码元时,在每一转变处可用的状态数的总数是5并且EDC包括10比特。
[0183] 图21是解说采用处理电路2102的装置2100的硬件实现的示例的概念图。在该示例中,处理电路2102可被实现成具有由总线2116一般化地表示的总线架构。取决于处理电路2102的具体应用和整体设计约束,总线2116可包括任何数目的互连总线和桥接器。总线
2116将包括一个或多个处理器(由处理器2112一般化地表示)和计算机可读介质(由处理器可读存储介质2114一般化地表示)的各种电路链接在一起。总线2116还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。收发机或通信接口2118提供用于通过多线接口2120与各种其它装置通信的手段。取决于该装置的本质,也可提供用户接口(例如,按键板、显示器、扬声器、话筒、操纵杆)。一个或多个时钟生成电路可以设在处理电路2102内或者由处理电路2102和/或一个或多个处理器2112控制。在一个示例中,时钟生成电路可包括一个或多个晶体振荡器、一个或多个锁相环设备和/或一个或多个可配置的时钟树
[0184] 处理器2112负责管理总线2116和一般处理,包括对存储在处理器可读存储介质2114上的软件的执行。该软件在由处理器2112执行时使处理电路2102执行上文针对任何特定装置描述的各种功能。处理器可读存储介质2114可被用于存储由处理器2112在执行软件时操纵的数据。
[0185] 在一种配置中,处理电路可包括用于将带有EDC的数据字编码在转变数中的一个或多个模块和/或电路2104、用于基于转变数来生成码元序列的一个或多个模块和/或电路2106、以及用于在多线接口2120的信令状态中传送码元序列的一个或多个模块和/或电路
2108。
[0186] 图22是解说用于采用转码的多线通信接口上的数据通信的方法的流程图。可使用接收电路来执行该方法。
[0187] 在框2202,接收电路可从多个连接器接收码元序列。在一些示例中,时钟信息被嵌入在码元序列中的连贯码元之间的转变中。
[0188] 在框2204,接收电路可将码元序列转换成转变数。转变数的每一数位可表示在该多个连接器上传送的两个连贯码元之间的转变。可使用基于在该多个连接器上传送的一对连贯码元之间的可能码元转变的最大数目的数字系统来表达转变数。
[0189] 在框2206,接收电路可以将转变数转换成多个比特。
[0190] 在框2208,接收电路可以基于该多个比特中包括的EDC的值来确定在码元序列的传输期间是否发生码元差错。EDC可具有基于被定义用于对多个连接器上的数据传输进行编码的每码元状态总数来确定的预定义值和长度。在一些实例中,一个或多个码元差错可以使得EDC的经解码版本具有与预定义值不同的值。
[0191] 在一些示例中,EDC可被提供作为该多个比特中的预定义数目的最低有效位。可基于可供用于对多个连接器上的数据传输进行编码的每码元状态总数来确定LSB的预定义数目。可基于用来对数据字进行编码的码元总数来确定LSB的预定义数目。
[0192] 该多个连接器可包括数个(N个)单端连接器,可供用于对数据传输进行编码的每码元状态总数是2N-x,其中x至少是1。
[0193] 在一个示例中,在每一转变处可用的状态数的总数是3,且EDC包括8比特。当在每一转变处可用的状态数的总数是3时且当码元序列包括17个或更多码元时,EDC可包括9比特。
[0194] 在另一示例中,在每一转变处可用的状态数的总数可以是5,且EDC可包括10比特。当在每一转变处可用的状态数的总数是5时且当码元序列包括8个或更多码元时,EDC可包括11比特。
[0195] 图23是解说采用处理电路2302的装置2300的硬件实现的示例的概念图。在该示例中,处理电路2302可被实现成具有由总线2316一般化地表示的总线架构。取决于处理电路2302的具体应用和整体设计约束,总线2316可包括任何数目的互连总线和桥接器。总线
2316将包括一个或多个处理器(由处理器2312一般化地表示)和计算机可读介质(由处理器可读存储介质2314一般化地表示)的各种电路链接在一起。总线2316还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。收发机或通信接口2318提供用于通过多线接口2320与各种其它装置通信的手段。取决于该装置的本质,也可提供用户接口(例如,按键板、显示器、扬声器、话筒、操纵杆)。一个或多个时钟生成电路可以设在处理电路2302内或者由处理电路2302和/或一个或多个处理器2312控制。在一个示例中,时钟生成电路可包括一个或多个晶体振荡器、一个或多个锁相环设备和/或一个或多个可配置的时钟树。
[0196] 处理器2312负责管理总线2316和一般处理,包括对存储在处理器可读存储介质2314上的软件的执行。该软件在由处理器2312执行时使处理电路2302执行上文针对任何特定装置描述的各种功能。处理器可读存储介质2314可被用于存储由处理器2312在执行软件时操纵的数据。
[0197] 在一种配置中,处理电路可包括用于从多线接口2320接收码元序列的一个或多个模块和/或电路2304、用于从码元序列生成转变数的一个或多个模块和/或电路2306、用于从转变数来解码数据字的一个或多个模块和/或电路2308、以及用于使用从转变数解码的EDC来检测码元差错的一个或多个模块和/或电路2310。
[0198] 本领域技术人员将领会,结合本文中公开的实施例描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
[0199] 本文所述的本发明的各种特征可实现在不同系统中而不脱离本发明。应注意,以上实施例仅是示例,且不应被解释成限定本发明。这些实施例的描述旨在是说明性的,而并非旨在限定权利要求的范围。由此,本发明的教导可以现成地应用于其他类型的装置,并且许多替换、修改和变形对于本领域技术人员将是显而易见的。
QQ群二维码
意见反馈