一种编码方法及装置转让专利

申请号 : CN200810119743.5

文献号 : CN101373974B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 温晓辉陈峰刘志红

申请人 : 北大方正集团有限公司北京大学北京方正数字印刷技术有限公司

摘要 :

本发明公开了一种编码方法及装置,在不增加线缆成本的情况下,避免高速串行数据传输技术存在的RMT。本发明提供的一种编码方法包括:从待编码的数据流中依次读取待编码的数据,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列。本发明应用于高速串行数据传输技术中的数据编码,避免在编码序列中出现RMT,从而保证接收端可以快速进入锁定状态,提高数据传输可靠性以及传输效率,并且降低了线缆成本。

权利要求 :

1.一种编码方法,其特征在于,该方法包括:

从待编码的数据流中依次读取待编码的数据,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;

根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列,所述标志码中不含有“01”组合,且数据的数字码均只含有一个“01”组合。

2.根据权利要求1所述的方法,其特征在于,该方法还包括:预先设置次数和标志码之间的对应关系,其中,不同的次数对应不同的标志码;

用于标识所述数据组中数据连续出现次数的标志码,是根据该数据组中数据连续出现的次数,通过查找所述对应关系得到的。

3.根据权利要求1所述的方法,其特征在于,该方法还包括:预先设置数据和数据码之间的对应关系,其中,不同的数据对应不同的数据码;

所述数据组中数据的数据码,是根据所述数据组中的数据,通过查找所述对应关系得到的。

4.根据权利要求1所述的方法,其特征在于,所述从待编码的数据流中依次读取待编码的数据,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数的步骤包括:从待编码的数据流中的第一个数据开始,依次读取每个待编码的数据;

从所述数据流中的第二个数据开始,对于当前读取到的每个数据,执行以下步骤:判断当前读取到的数据是否与上一次读取到的数据相同,如果是,则记录当前读取到的数据及其连续被读取的次数,并继续读取所述数据流中的下一个数据;否则,利用上一次连续读取到的数据及其连续被读取的次数,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数。

5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,所述编码序列中,标志码为数据码的前一码字。

6.一种编码装置,其特征在于,所述装置包括:

读取单元,用于从待编码的数据流中依次读取待编码的数据;

计数单元,用于确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;

编码单元,用于根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列,所述标志码中不含有“01”组合,且数据的数字码均只含有一个“01”组合。

7.根据权利要求6所述的装置,其特征在于,该装置还包括:数据缓冲单元,用于存储所述编码单元得到的编码序列,并且当所述编码单元完成对所述待编码的数据流的编码时,或者自身达到预先设置的存储容量时,将自身存储的编码序列发送给输出单元;

所述输出单元,用于输出所述编码序列。

8.根据权利要求6或7所述的装置,其特征在于,所述编码单元包括:存储单元,用于存储预先设置的次数和标志码之间的对应关系,其中,不同的次数对应不同的标志码;

标志码单元,用于根据该数据组中数据连续出现的次数,通过查找所述对应关系得到用于标识所述数据组中数据连续出现次数的标志码;

数据码单元,用于得到所述数据组中数据的数据码;

生成单元,用于由所述标志码以及数据码生成所述数据组的编码序列。

9.根据权利要求8所述的装置,其特征在于,所述存储单元还用于存储预先设置的数据和数据码之间的对应关系,其中,不同的数据对应不同的数据码;

所述数据码单元,根据所述数据组中的数据,通过查找所述数据和数据码之间的对应关系得到所述数据组中数据的数据码。

10.根据权利要求6所述的装置,其特征在于,所述读取单元,从待编码的数据流中的第一个数据开始,依次读取每个待编码的数据;

所述计数单元包括:

判断单元,用于从所述数据流中的第二个数据开始,对于所述读取单元当前读取到的每个数据,判断当前读取到的数据是否与上一次读取到的数据相同,如果是,则触发记录单元,否则,触发确定单元;

所述记录单元,用于记录所述读取单元当前读取到的数据及其连续被读取的次数,并触发所述读取单元继续读取所述数据流中的下一个数据;

所述确定单元,用于利用所述读取单元上一次连续读取到的数据及其连续被读取的次数,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数。

说明书 :

一种编码方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种编码方法及装置。

背景技术

[0002] 现有的高速串行数据传输技术采用一对线缆来传输一组同步数据,由于线缆结构简单且成本低廉,使得该传输技术得到了越来越广泛的应用。
[0003] 这种高速串行数据传输技术在数据发送端完成并串转换,同时在所得到的每组串行编码数据的前端和后端分别增加一比特(bit)的1和一bit的0,这样在时钟连续的情况下,数据发送端实际输出的串行bit流(即编码数据)中每两个连续的码字(一个码字可以承载一组串行数据)之间都会存在一个与数据发送端的发送时钟存在倍频关系的时钟上升沿。以18位的码字举例说明,图1示出了由多个码字组成的串行bit流,矩形框中的比特位为“01”组合,即每个时钟的上升沿,其中的“1”表示每个码字的起始比特,“0”表示每个码字的结束比特。
[0004] 数据接收端接收并检索到串行bit流中的时钟上升沿,在检测到若干间隔相同的时钟上升沿后,例如,如图1所示,连续检测到5个时钟上升沿,数据接收端就可以将本地接收时钟与串行bit流中所携带的发送时钟同步起来,此时数据接收端进入锁定状态,进入锁定状态后的数据接收端可以准确地进行串并转换并正确输出数据。
[0005] 然而,除了间隔固定的时钟上升沿的“01”组合以外,如果在某一数据的编码数据中含有“01”组合,并且需要连续多次传输该数据时,则在连续传输的多个编码数据中的同一比特位置还存在另一“01”组合,如图2中的阴影矩形框中所示的“01”组合,则数据接收端得不到间隔相同的“01”组合,不能判断哪 个是时钟上升沿,从而不能进入锁定状态,导致数据传输失败。这种除了时钟上升沿的“01”组合以外的在连续传输的编码数据的同一比特位置上还存在的另一“01”组合被称为重复多次转换(RMT,Repetitive Multiple Transition),RMT是造成数据接收端不能进入锁定状态的重要原因。
[0006] 针对高速串行数据传输技术存在的这一RMT问题,现有的一种可行的解决方案是数据接收端将是否进入锁定状态的信息实时传递给数据发送端,当数据发送端片获知数据接收端失去锁定状态时,连续发送特定的不含RMT的编码数据来帮助数据接收端重新进入锁定状态。
[0007] 但是,数据接收端将自身失去锁定状态的信息通知给数据发送端的操作需要在原来传输线路的基础上再增加一条传输线缆,因此增加了成本。另外,所述特定的不含RMT的编码数据为数据发送端和数据接收端预先约定好的编码数据,是用于数据接收端重新进入锁定状态的编码数据,因此,数据接收端不会把这种特定编码数据当作有效数据来处理,如果数据发送段后续利用了这种特定的不含RMT的编码数据发送有效数据的话,数据接收端仍然会认为该编码数据不是有效数据,从而导致数据传输失败。

发明内容

[0008] 本发明实施例提供了一种编码方法及装置,用以在不增加线缆成本的情况下,避免高速串行数据传输技术存在的RMT。
[0009] 本发明实施例提供的一种编码方法包括:
[0010] 从待编码的数据流中依次读取待编码的数据,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;
[0011] 根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列,所述标志码中不含有“01”组合,且数据的数字码均只含有一个“01”组合。
[0012] 本发明实施例提供的一种编码装置包括:
[0013] 读取单元,用于从待编码的数据流中依次读取待编码的数据;
[0014] 计数单元,用于确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;
[0015] 编码单元,用于根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列,所述标志码中不含有“01”组合,且数据的数字码均只含有一个“01”组合。
[0016] 本发明实施例通过从待编码的数据流中依次读取待编码的数据,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数;根据该数据组中数据连续出现的次数,确定标识该次数的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列,从而避免了在高速串行数据流传输过程中的编码序列中出现的RMT,保证了数据的接收端可以快速进入锁定状态而不再失去锁定,提高了数据传输的可靠性以及传输效率,并且降低了线缆成本。

附图说明

[0017] 图1为串行bit流中的作为时钟上升沿的“01”组合的示意图;
[0018] 图2为串行bit流中存在RMT的示意图;
[0019] 图3为本发明实施例提供的一种编码方法的流程示意图;
[0020] 图4为采用本发明实施例提供的编码方法对4比特数据流进行编码的一种可行的编码表的示意图;
[0021] 图5为本发明实施例提供的一段需要发送的4比特数据流序列的示意图; [0022] 图6为采用本发明实施例提供的编码方案编码后实际发送的数据流序列的示意图;
[0023] 图7为本发明实施例提供的一种编码装置的结构示意图。

具体实施方式

[0024] 本发明实施例提供了一种适用于高速串行数据传输的编码方法及装置,用以在不增加线缆成本的前提下,保证串行数据流的接收端进入锁定状态而不会失锁;并且,采用本发明实施例提供的编码方案对一段连续的重复发送的数据 进行编码时,只需要两个码字,因此可以有效提高数据传输速率。
[0025] 下面结合附图对本发明实施例进行详细说明。
[0026] 对于任意一段待编码的数据流,参见图3,本发明实施例提供的一种高速串行数据传输的编码方法包括步骤:
[0027] S301、从待编码的数据流中依次读取数据,确定由连续出现的同一数据所组成的数据组以及该数据连续出现的次数。
[0028] S302、对于由连续出现若干次的同一数据所组成的数据组,根据该数据组中同一数据连续出现的次数,确定该次数所对应的标志码,利用该标志码以及该数据的数据码生成该数据组的编码序列。
[0029] 本发明实施例中所述标志码的码字中不含有“01”组合,用于表示同一数据连续出现的次数,不同的标志码表示不同的次数。
[0030] 其中,步骤S302根据数据组中同一数据连续出现的次数,确定该次数所对应的不含“01”组合的标志码的操作,可以是根据预先设置的次数和不含“01”组合的标志码的对应关系,查找该次数对应的不含“01”组合的标志码。
[0031] 例如,本发明实施例中预先设置如图4所示的编码表,该编码表中包括标志码和数据码,所述标志码的码字中不含有“01”组合,不同的标志码表示不同的次数;所述数据码的码字即为代表不同数据的码字。图4示出了以对4比特数据流进行编码为例的编码表,该编码表中前六个表项中的码字均不含“01”组合,定义这6个码字为标志码,分别表示同一数据的连续出现次数为:1、2、4、8、16、32;该编码表中后16个表项中的码字均只含有一个“01”组合,且“01”组合在这16个码字中所处的比特位置是均匀分布的。 [0032] 例如,待编码的数据流如图5所示,可以检测出该数据流中的数据“8”连续出现2次,数据“C”连续出现4次,数据“F”连续出现8次,数据“4”连续出现4次。 [0033] 标志码为数据码的前一码字。在传输某个数据的编码序列时,由于该数据的标志码为该数据的数据码的前一码字,也就是说,按照先标志码后数据码的 方式传输该数据的编码数据,使得接收端可以先解码标志码,从而得知即将解码的数据码所代表的数据的连续出现次数。由于本发明实施例采用了不含有“01”组合的标志码来标识同一数据的连续出现次数,避免了对同一数据的连续多次的编码,从而避免了RMT的出现,保证了数据接收端能够快速进入锁定状态且不失锁。并且,只要一个码字的标志码和一个码字的数字码就可以实现对某个需要连续发送多次的数据的发送,从而还可以提高数据的传输效率。 [0034] 具体地,从待编码的数据流中的第一个数据开始依次读取每个数据,并且从第二个数据开始,对于每次读取到的待编码的数据,执行下述步骤:
[0035] 判断当前读取的待编码的数据(简称当前数据)是否与前一次读取的待编码的数据相同,如果是,则记录该数据的连续被读取的次数,并继续读取下一个数据,否则,根据当前数据连续被读取的次数,从预先设置的编码表中读取该次数所对应的标志码,将该标志码设置为当前数据的标志码;并且,从预先设置的编码表中读取当前数据的数据码,由该数据码和该标志码组成该数据的编码序列,并且,该标志码为该数据码的前一码字。直到待编码的数据流中所有数据均被读取过,完成对该数据流的编码为止。
[0036] 例如,图5所示的第1个数据“8”连续出现2次,则依照图4所示的编码表就可以使用代表重复2次的标志码10000和数据“8”的码字01110来编码连续出现的2次的数据“8”;图5所示的第3个数据“C”连续出现4次,则依照图4所示的编码表就可以使用代表重复4次的标志码11000和数据“C”的码字10011来编码连续出现的4次的数据“C”;图5所示的第7个数据“F”连续出现8次,则依照图4所示的编码表就可以使用代表重复8次的标志码11100和数据“F”的码字10111来编码连续出现的8次的数据“F”;图5所示的第15个数据“4”连续出现4次,则依照图4所示的编码表就可以使用代表重复4次的标志码
11000和数据“4”的码字00110来编码连续出现4次的数据“4”,从而得到图6所示的编码后的实际发送的编码序列。
[0037] 参见图5和图6,采用现有的编码方法对图5所示的数据流进行编码后, 需要发送18个4比特的数据,而采用本发明实施例提供的编码方法编码后只需要发送图6所示的8个5比特的数据。由此可以看出,采用本发明实施例提供的编码方案对一段连续的重复发送的数据进行编码时,只需要两个码字,因此可以有效提高该段数据的传输速率。也就是说,对于具有连续出现多次数据的数据流,采用本发明实施例提供的编码方法可以提高编码数据的传输效率。
[0038] 综上,本发明实施例提供的技术方案既保证了数据接收端能够快速进入锁定状态且不失锁,又能够在传输具有特定数据流特点的数据时有效提高数据的传输效率。 [0039] 下面介绍一下本发明实施例提供的装置。
[0040] 参见图7,本发明实施例提供的一种编码装置包括:
[0041] 读取单元71,用于从待编码的数据流中依次读取待编码的数据。 [0042] 计数单元72,用于确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数。
[0043] 编码单元73,用于对于由连续出现的同一数据组成的数据组,根据该数据组中数据连续出现的次数,确定标识该次数的不包含“01”组合的标志码,由该标志码以及所述数据的数据码生成该数据组的编码序列。
[0044] 较佳地,该装置还包括:
[0045] 数据缓冲单元74,用于存储所述编码器得到的编码序列,并且当所述编码器完成对所述待编码的数据流的编码时,或者自身达到预先设置的存储容量时,将自身存储的编码序列发送给输出单元75。
[0046] 所述输出单元75,用于输出所述编码序列。
[0047] 较佳地,所述编码单元73包括:
[0048] 存储单元731,用于存储预先设置的次数和不包含“01”组合的标志码之间的对应关系,其中,不同的次数对应不同的标志码。
[0049] 标志码单元732,用于对于由连续出现的同一数据组成的数据组,根据该数据组中数据连续出现的次数,通过查找所述对应关系得到用于标识所述数据 组中数据连续出现次数的标志码。
[0050] 数据码单元733,用于得到所述数据组中数据的数据码。
[0051] 生成单元734,用于由所述标志码以及数据码生成所述数据组的编码序列。 [0052] 较佳地,所述存储单元731还用于存储预先设置的数据和数据码之间的对应关系,其中,不同的数据对应不同的数据码。
[0053] 所述数据码单元733,根据所述数据组中的数据,通过查找所述数据和数据码之间的对应关系得到所述数据组中数据的数据码。
[0054] 较佳地,所述读取单元71,从待编码的数据流中的第一个数据开始,依次读取每个待编码的数据。
[0055] 所述计数单元72包括:
[0056] 判断单元721,用于从所述数据流中的第二个数据开始,对于所述读取单元当前读取到的每个数据,判断当前读取到的数据是否与上一次读取到的数据相同,如果是,则触发记录单元722,否则,触发确定单元723。
[0057] 所述记录单元722,用于记录所述读取单元71当前读取到的数据及其连续被读取的次数,并触发所述读取单元71继续读取所述数据流中的下一个数据。
[0058] 所述确定单元723,用于利用所述读取单元71上一次连续读取到的数据及其连续被读取的次数,确定由连续出现的同一数据组成的数据组以及该数据连续出现的次数。 [0059] 综上,待发送的数据经过读取单元71被传输到计数单元72,计数单元72负责对输入的数据流中数据的连续重复次数进行计数,当输入的数据发生变化时,例如从数据“2”变为数据“8”,则计数单元72就会向编码单元73输出上一个数据和上一个数据的重复次数两个参数,编码单元73根据预先设定的编码表将所得到的数据和该数据的重复次数这两个参数进行编码,并且将生成的编码序列发送到数据缓冲单元74,当需要发送的数据全部处理完毕或者数据缓冲单元74达到预先设定的存储容量时,数据缓冲单元74将自身存储的编码序列通过输出单元75连续发送到后端的高速串行数据发送模块进行发送。
[0060] 进一步,为了配合不同的编码表,本发明实施例提供的编码装置中的编码单元73还可以提供相应的寄存器接口,用于外部控制模块将不同的符合本发明实施例所提供的编码方案的编码表配置到本发明实施例所提供的编码装置中,这样本发明实施例所提供的编码装置可以适应更为广泛的应用环境。
[0061] 综上所述,本发明实施例提供的技术方案所带来的有益效果包括: [0062] 由于本发明实施例提供的高速串行数据传输的编码方法中,在对数据进行编码时,使用不含“01”组合的标志码来标识该数据的连续传输的次数,因此,保证了间隔固定时间(一个码字)的数据肯定不会在同一比特位置出现“01”组合,这样就避免了出现RMT。由于在发送的数据流中存在RMT是导致接收端不能进入锁定状态的原因,因此采用本发明实施例提供的编码方法,使得高速串行数据传输的接收端能够快速进入锁定状态,并且在进入锁定状态后不会失去锁定,因此不需要增加一条用于反馈自身锁定状态的传输线,节约了传输线缆成本。另外,由于本发明实施例提供的高速串行数据传输的编码方案在传输一段连续的重复数据时只需要传输两个码字,因此可以有效地提高了高速串行数据的传输速度。
[0063] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。