编码方法 【技术领域】
本发明涉及一种编码方法,这种方法尤其适用于符合IEEE802.3标准的数据传输网。
背景技术
本发明的目的是对数据进行编码,使得在传输补充信息项,或者在可应用纠错时与错误检测相关的信息项的同时,数据能够通过线路传输,前述补充信息项是例如字节开始指示或者帧开始指示。利用净荷数据形成(imitate)可能性低的字符组合编码数据帧来指示数据帧开始在本领域中众所周知,通过编码并传送循环冗余校验字来检测帧差错也是本领域众所周知的,前述循环冗余校验字作为数据帧中传送的数据的函数计算。这些补充信息项增加了需要传送的码元量。
将p比特的二进制字用由q个三进制数字组成的三进制字码元进行编码(也就是说进行-1、0或+1加权),得到线路比特率低于需要传送的二进制数据地比特率,这在本领域众所周知,称为pB/qT编码或者pB/qT码。这种三进制编码的引入是为了减小调制率,但还避免了在金属线路上传输直流电,只要,在较长时间间隔上,发送加权+1码元和加权-1码元的数量相同。不需要直流电对通过金属线路传输相当重要,因为金属线路的每一端由各个变压器分离,如果存在直流电,变压器可能会饱和。
在目前使用的码(4B/3T、8B/6T)中,加权为0的三进制码元的数量少于需要编码的二进制数量。利用两种不同码元编码相同二进制字的特定二进制字,一个三进制字加权+1,一个三进制字加权-1,从而防止直接流,这在本领域中众所周知。连续计算传送的码元加权之和,其编码构成如下:如果和的当前值为-1,利用加权+1的码元,如果和的当前值为+1,利用加权-1的码元。这样,本领域中已知的三进制编码方法发送四比特或8比特的二进制字的所有值,而不会出现直流电,其缺陷有二:
可用码元数量不足以传送补充信息项。
特定码元的冗余用于消除直流电,它减少了未用码元的数量,从而降低了传输差错检测的效率。
另一问题出现了:如果传送一长串0,接收机设备可能会失去同步。文档EP 0.548.415A给出了一种编码方法,它利用三进制码元编码主二进制信号的一个比特。编码采用可选标志插入(AMI)类型来防止直流电。为了防止传送一长串0,该现有技术方法在需要发送一长串0时,改变了编码规则。使用的编码规则类似于HDB3码的编码规则,后者由CCITT标准化,但是替换长串0的方法不同于HDB3码所用的方法。
编码主二进制信号的一个比特的码元的传输被替换成传输违反使用的编码规则的码元。违反当前编码规则意味着编码表需要改变。因为尽管如此,仍然需要传输被删除的比特,并且希望不会增加传输的码元的比特率,所以该方法利用新的编码规则来编码该比特,前述新的编码规则根据比特的值来选择。在接收时,通过识别哪个是新的编码规则,对该比特进行解码。这样,编码规则的改变既不会减少发送的比特数量,也不会增加传输比特率。
【发明内容】
本发明的目的是提出一种编码方法,它不需要替换长串0,并且以给定的传输比特率高效传送补充比特。
在第一种变化例中,本发明由这样一种编码方法构成,该方法按照多张编码表,通过由q个三进制数字组成的码元对p比特字进行编码,根据需要编码的至少一个信息项,为需要编码的每个二进制字选择编码表;
其特征在于,选择p和q,使得加权为0的码元的数量至少等于2×2p;
在第一编码表中包含2p个加权为0的码元;以及
在第二编码表中包含2p个加权为0的其它码元。
前面提到的方法的特征在于,利用加权为0的两个不同码元,对构成待传送数据的每个2p二进制字进行编码,此外,通过改变编码表对补充信息项进行编码。这样,就能够实现不用直流电,而不需要监控传送的码元的加权和,这简化了编码器和解码器的生产。
在第二变化例中,本发明由这样一种编码方法构成,该方法按照多张编码表,通过由q个三进制数字组成的码元对p比特字进行编码,根据需要编码的至少一个信息项,为需要编码的每个二进制字选择编码表;
其特征在于,选择p和q,使得加权为0或者加权为±1的码元的数量至少等于3×2p;
在第一编码表中包含2p个加权为0的码元;
在第二编码表中包含2p个加权为-1的其它码元;以及
在第三编码表中包含2p个加权为+1的其它码元。
前面提到的方法的特征在于,利用三个不同码元(一个加权为0,一个加权为+1,一个加权为-1),对构成待传送数据的每个2p二进制字进行编码。这样,通过改变编码表可以对补充信息项进行编码。在使用金属线时,因为采用的码元不是加全都为0,维护0直流电是必要的。一种优选实施例根据以前编码并传送的码元的加权和的当前值,按照第二表改变编码,按照第三表进行编码:
如果和等于+1,使用只利用加权为-1的码元对所有二进制字进行编码的表。
如果和等于-1,使用只利用加权为+1的码元对所有二进制字进行编码的表。
如果和等于0,使用只利用加权为0的码元对所有二进制字进行编码的表。
如果在接收的数据没有遵从上述规则,就发生了传输错误。这种编码能够得到很好的差错检测。
在尤其适用于非金属线,例如光纤线路的第三变化例中,该方法由这样一种编码方法构成,该方法按照多张编码表,通过由q个三进制数字组成的码元对p比特字进行编码,根据需要编码的至少一个信息项,为需要编码的每个二进制字选择编码表;
其特征在于,选择p和q,使得q大于等于p+1,并且在第一编码表中包含2p个码元,在第二编码表中包含2p个其它码元。
前面提到的方法的特征在于,利用两个不同码元,对构成待传送数据的每个2p二进制字进行编码,此外,通过改变编码表对补充信息项进行编码。
按照本发明的方法的三种变化例避免了替换长串0,因为它们实现了足够的码元冗余度,构成的编码表使得长串0不会出现。这样,就可以利用改变表来编码任何补充信息项,完全与防止长串0的方法无关。事实上,按照本发明的方法,利用至少两个不同码元,对构成待传送数据的每个2p二进制字进行编码。因为每个二进制字可以表示成至少两个选定的码元,所以可以发送由选定的码元,也就是选定的编码表,表示的补充信息项。补充信息项根据用于解码二进制字的解码表来还原。
补充信息项的一种用途是,根据所用的编码表,区分属于用于数据传送的虚拟网络的帧和属于用于电话传输的虚拟网络的帧。这种区分意味着两种类型的帧可以用两种不同的优先级处理。因为得到信息项而不需要分析帧的内容来析取优先级码,所以帧处理时间得以缩短。
这些补充信息项的另一应用是通过改变编码表来检测消息的开始或字节开始。例如,同样是为了识别帧的开始,检测编码表的改变比传统方法中检测前同步码和帧分界符来得快。
如果码元的数量2q大于待编码的二进制字数量2p的两倍,就可以传送特定业务信息项的特定码元,例如消息的开始定界符。
没有使用的特定码元也有助于差错检测,因为在同步阶段之后,检测到未用码元表明出错。
在一种优选实施例中,编码方法包括改变编码表,指示消息的开始,还包括利用这样的码元来指示消息的开始,该码元无法由编码表中使用的那些码元中的两个连续码元的组合形成。
传送的补充信息项的另一种应用包括管理以太网链路的定位信息项。实际上,在以太网链路上,传输开始于协商终端设备的特性和能力的阶段,然后是学习阶段。在学习阶段,设备开始发送相对较长的比特串序列;它们是时钟脉冲序列,间隔125±14微秒。17个奇集脉冲总是出现,构成一个时钟信号。16个偶集脉冲构成数据:一个偶集脉冲代表1,没有偶集脉冲代表0。换句话说,三进制编码用于减少比特率,但在特定情况下,二进制字必须有两倍长才能被正确识别。
解码操作相当复杂:必须分析整串比特序列,并具有相关时态约束。定时器证实时钟脉冲持续125微秒,数据脉冲持续62.5微秒,对值为1的脉冲而言,两个数据脉冲之间的间隔持续31.25微秒,对值为0的脉冲而言,两个数据脉冲之间的间隔为93.75微秒。基于按照本发明的编码方法,通过改变编码表,可以标记这些处理。从而可以很大程度上简化解码操作。
如果码元的数量2q大于待编码的二进制字数量的两倍,就可以传送特定业务信息项的特定码元,例如消息的开始定界符。
没有使用的特定码元也有助于差错检测,因为检测到未用码元表明出错。
本发明还包括实现按照本发明的方法的一种编码器和一种解码器。
【附图说明】
通过下面对本发明实施例的描述,本发明将会更易于理解,本发明的其他属性将会更加明显,在附图中:
图1的概要框图给出了金属线上按照本发明方法的一种实施例的编码器的一个例子;
图2的概要框图给出了金属线上按照本发明方法的该实施例的解码器的一个例子。
【具体实施方式】
下表说明了一个非常简单的例子,其中p=4,q=4。该编码例子利用包括4个三进制数字的码元对16个4比特二进制字进行编码。这些码元在水平方向上通过增加的加权表示,从加权-4到加权+4。81个码元中,19个的值为0,31个的值从+1到+4,31个的值从-1到-4。需要注意,16个码元的加权为+1,16个码元的加权为-1。 -4 -3 -2 -1 0 1 2 3 4 ---- 0--- 00-- 000- 0000 000+ 00++ 0+++ ++++ -0-- 0-0- 00-0 00+- 00+0 0+0+ +0++ --0- 0--0 0+-- 00-+ 0-++ 0++0 ++0+ ---0 -00- 0-00 0+0- 0+00 +00+ +++0 -0-0 0-+- 0+-0 0+-+ +0+0 --00 0--+ 0-0+ 0++- ++00 ---+ +0-- 0-+0 -0++ +++- --+- +-0- +0-0 -+0+ ++-+ -+-- +--0 +00- -++0 +-++ +--- -000 ++-- +000 -+++ -0+- +-00 -0-+ -0-+ +--+ +0+- -+0- +-+- +-0+ -+-0 -00+ +-+0 --0+ -0+0 ++0- --+0 -+00 ++-0 -+-+ -++- --++
在第一编码表的构成中,利用16个加权为0的码元对16个二进制字0000,0001,........,1111进行编码。加权为0的两个码元仍然可用于补充信息项,码元0000未用,因为它使得接收编码数据的时钟信号的恢复更为复杂。
在第二编码表的构造中,利用16个加权为+1的码元对16个二进制字0000,0001,........,1111进行编码。
在第三编码表的构造中,利用16个加权为-1的码元对16个二进制字0000,0001,........,1111进行编码。
可以通过检测所有非法三进制字来检测传输差错,也就是所有那些加权-2、-3、-4、+2、+3、+4。可以通过改变编码表来编码补充信息项。例如,通过检测第一表到第二或第三表的改变来检测消息的开始。
因为所用的码元不都是加权为0,必须维护0直流电。一个例子如下:
如果和等于+1,使用第三表,后者只用加权为-1的码元对所有二进制字进行编码。
如果和等于-1,使用第二表,后者只用加权为+1的码元对所有二进制字进行编码。
如果和等于0,并且没有指示消息的开始,则使用只用加权为0的码元对所有二进制字进行编码的表。
如果接收的码元违反了上述规则,则意味着它受了传输差错的影响。
在第二例子中,包括利用包括8个三进制数字(8B/8T编码)的码元来编码256个二进制字。加权为0的码元的数量等于744,通过加权为0的256个码元来编码二进制字00000000,......,1111111来构成第一编码表。
第二编码表利用加权为0的256个其它码元来编码256个二进制字构成。从第一到第二编码表的改变用于编码补充信息项,例如从一种类型数据改变到另一种类型(例如话音/数据)。
这种类型的编码使得解码能够快速完成,因为不再需要析取和识别一个码元;在解码时识别表的变化就已足够。解码同时使用两张解码表。用以识别接收码元的表提供了解码二进制字和识别该表的补充比特。
第三编码表可以构造成利用231个加权为0的其它码元,编码231个补充信息项(例如消息开始指示码元,消息终止指示码元,差错控制码等等)。
一种优选实施例包括改变编码表,指示消息的开始,还包括利用这样的码元来指示消息的开始,该码元无法由编码表中使用的那些码元中的两个连续码元的组合形成。该码元例如是----++++。
图1的概要框图给出了金属线上按照本发明方法的一种实施例(8B/8T)的编码器的一个例子。
它包括:
存储器1,包含两张编码表T1和T2并且具有:
用于选择表的输入8,该输入接收二进制信号T,表示了待传送的二进制信息项(例如指示帧的开始),
地址输入7,它对表T1和T2都相同,该输入接收构成待编码的数据字节的二进制字D;以及
提供16比特的输出,其形式为8比特字A和8比特字B;
两个寄存器2和3,每个寄存器有8个并行输入和一个串行输出,存储器1输出端的8个比特被送入寄存器2的输入端,另8个比特被送入寄存器3的输入;
两个线路放大器4和5,每个放大器都有一个输入连接到寄存器2和3之一的一个输出;以及
一个线路变压器6,其主线圈连接到两个线路放大器4和5的输出,其辅线圈连接到两线式传输线路,未示出。
控制装置,未示出,控制寄存器2和3,使其与存储器1同步。
每个放大器4和5的输出只能有一个高状态或一个低状态,该状态由一个施加在它的输入端的二进制信号控制。通过将放大器4的输出设置成高值,放大器5的输出设置成低值,发送三进制数字值+1。通过将放大器4的输出设置成低值,放大器5的输出设置成高值,发送三进制数字值-1。通过例如将放大器4的输出设置成高值,放大器5的输出设置成高值,发送三进制数字值0。
例如,如果使用表T1,其T1a部分提供了激活放大器5的比特,其T1b部分提供了激活放大器4的比特。为了编码一个码元,必须用8个连续比特,也就是组成字A的8个比特激活放大器5。与此同时,必须用8个连续比特,也就是组成字B的8个比特激活放大器4。存储器1同时将这16个比特(字A和字B)提供给移位寄存器2和3。这些寄存器的功能是在8个连续时刻依次恢复这些比特。
例如,为了发送码元S=00+0--++,存储器1同时提供以下字A和B(字A=列A;字B=列B): S A B 0 0 0 0 0 0 + 1 0 0 0 0 - 0 1 - 0 1 + 1 0 + 1 0
寄存器2还以并行方式存储了上表中第二列的内容A。寄存器3还以并行方式存储了上表中第三列的内容B。为每个码元而言,都需要寄存器2和3读取8次,从而每一个寄存器都能顺序输出8个连续比特。
图2的概要框图给出了金属线上按照本发明方法的该实施例(8B/8T)的解码器的一个例子。它包括:
一个线路变压器11,其主线圈连接到两线式线路,未示出,和一个辅线圈;
两个线路接收机12和13,每个接收机都有一个输入连接到变压器11的辅线圈;
两个寄存器14和15,每个寄存器有一个串行输入和8个并行输出;以及
存储器16,包含两张解码表T1’和T2’,该存储器具有:
地址输入,它接收寄存器14(字A)的输出所提供的8个比特,以及寄存器15(字B)的输出所提供的8个比特;
提供构成解码数据字节的8比特二进制字D的输出17;
提供恢复补充二进制信息项(例如帧开始指示)的比特T的输出18;以及
提供比特E的输出19,在可应用的情况下,该比特指示了接收的码元不对应于任何预期码元,从而发生差错;
控制装置,未示出,控制寄存器14和15,使其与存储器16同步。
每个放大器12和13的输出只能有一个高状态和一个低状态,分别表示值0和1。接收到三进制数字值+1,放大器12输出1值,放大器13输出0值。接收到三进制数字值-1,放大器12输出0值,放大器13输出1值。接收到三进制数字值0,例如放大器12输出0值,放大器14输出0值。
这样,每个接收的三进值数字由一对比特表示。寄存器14存储了每一对的第一比特。寄存器15存储了每一对的第二比特。为得到每一个码元,需要命令8次码元寄存器14和15,从而每一个寄存器存储8个连续比特。每一对的两个比特由寄存器14和15同时记录。
将由8个三进制数字组成码元S解码成8比特二进制字D通过两个步骤实现:
在第一步骤中,在寄存器14和15中连续存储8对比特,它们对应于构成接收的码元的8个三进制数字。
在第二步骤中,寄存器14和15的并行输出同时提供这8对比特给存储器16的地址输入,其形式为8比特二进制字A和8比特二进制字B。例如,如果接收到码元S=00+0--++,它们同时提供以下8对比特(列A和B): S A B 0 0 0 0 0 0 + 1 0 0 0 0 - 0 1 - 0 1 + 1 0 + 1 0
应用于存储器16地址输入的16个比特11100011,00001100导致读入9比特二进制字,除非接收的码元有错。在这9个比特中,8个构成了解码的二进制字D,第9个比特指示了接收的码元是属于解码表T1’,还是解码表T2’。
必须选择小于p值的q值,以减少调制率,从而减小线路上的比特率。
在满足该条件的第三例的构造中,利用包括12个三进制数字(16B/12T编码)的码元,编码16比特的65536个二进制字。加权为0的码元数量大于65536的两倍。第一编码表的构造中,利用加权为0的65536个码元编码65536个二进制字。第二编码表的构造中,利用加权为0的65536个其它码元编码65536个二进制字。从第一编码表到第二编码表的变化用以对补充信息项进行编码。
这类编码的编码器和解码器的实现与前面描述的类似。
第四例适用于光传输线路,它利用包括10比特(8B/10B编码)的码元对8比特的256个二进制字进行编码。码元的数量是1024。第一编码表的构造中,利用256个第一码元编码256个二进制字。第二编码表的构造中,利用256个第二码元编码256个二进制字。剩余的512个未用码元有助于差错检测。从第一编码表到第二编码表的变化用以对补充信息项进行编码。
这类编码的编码器和解码器的实现与前面描述的类似。