掌桥专利:专业的专利平台
掌桥专利
首页

一种误码插入方法、装置、系统及计算机存储介质

文献发布时间:2024-04-18 19:58:30


一种误码插入方法、装置、系统及计算机存储介质

技术领域

本发明涉及误码插入领域,特别是涉及一种误码插入方法、装置、系统及计算机存储介质。

背景技术

由于数据信息在通信过程中容易受到干扰的影响而失真,导致接收设备无法接收到正确的数据信息,为保证数据的正确性,目前通常使用FEC(Forward Error Correction,前向纠错)编解码技术实现数据通信。具体的,在发送设备中将需要发送的数据信息解码成多条码元(码元也称为codeword)发送给接收设备,接收设备接收到这些码元后对其中的误码进行纠错再进行重编码以得到数据信息,通过误码纠错的方式降低误码率,保证通信的可靠性和数据的准确性。

FEC编解码技术中的误码纠错的准确率直接影响通信可靠性和数据准确性,因此需要对误码纠错的准确率进行测试,而为了进行测试,需要主动在码元中插入误码以便接收设备进行误码纠错,可见,如何实现误码插入是本申请技术人员需要解决的技术问题。

发明内容

本发明的目的是提供一种误码插入方法、装置、系统及计算机存储介质,可以简单且有效地实现了误码插入的功能,方便工作人员对误码纠错的准确率进行测试。

为解决上述技术问题,本发明提供了一种误码插入方法,应用于发送设备中的处理器,所述发送设备与接收设备连接,所述误码插入方法包括:

根据测试指令确定待插入误码的数量;

将待纠错数据的各个码元均以预设交织分布规则分布至N个通道中,得到各个所述码元在N个通道中的符号,N为正整数;

确定与所述待插入误码的数量一致的码元作为待插入码元;

对于任一个所述待插入码元,将预设误码分别插入到所述待插入码元的M个通道的符号中,M为不大于N的正整数;

将所有的所述符号均发送至所述接收设备,以便所述接收设备对所述待纠错数据进行误码纠错。

一方面,将预设误码分别插入到所述待插入码元的M个通道的符号中,包括:

S21:按照预设顺序依次排序各个所述待插入码元;

S22:将第一个所述待插入码元作为当前码元;

S23:确定预设电平信号的电平状态,当所述预设电平信号的电平状态为高电平时,进入S24;所述预设电平信号的电平状态为低电平时,进入S25;

S24:将所述预设误码和第一预设参数以第一预设计算方式进行运算,将运算结果作为新的所述预设误码分别插入到所述当前码元的M个通道的符号中,进入S26;

S25:将所述预设误码和第二预设参数以所述第一预设计算方式进行运算,将运算结果作为新的所述预设误码分别插入到所述当前码元的M个通道的符号中,进入S26;

S26:将所述待插入误码的数量减1,进入S27;

S27:判断所述待插入误码的数量是否为0;若是,则进入将所有的所述符号均发送至所述接收设备的步骤;若否,则进入S28;

S28:翻转所述预设电平信号的电平状态,并将所述当前码元的下一个所述待插入码元作为新的当前码元,返回S23;

其中,所述第一预设参数和所述第二预设参数互为补码。

一方面,在将所述预设误码和第一预设参数以第一预设计算方式进行运算之前,还包括:

根据预设的被插入误码的符号数量与误码之间的对应关系,确定所述待插入码元中被插入误码的通道数对应的误码作为所述预设误码;

在将所述预设误码和第二预设参数以所述第一预设计算方式进行运算之前,还包括:

根据所述对应关系,确定所述待插入码元中被插入误码的通道数对应的误码作为所述预设误码。

一方面,在将运算结果作为新的所述预设误码分别插入到所述当前码元的M个通道的符号中的同时,还包括:

判断所述当前码元对应的脉冲信号电平是否为高电平;

若是,则判定所述当前码元的误码插入完成,进入将所述待插入误码的数量减1的步骤。

一方面,将预设误码分别插入到所述待插入码元的M个通道的符号中,包括:

将预设误码的数据分为M组子数据,其中,各组所述子数据至少包含1位数据;

分别将第i组所述子数据插入到所述待插入码元的第i通道的符号中,得到被插入误码后的所述待插入码元;

其中,i为不大于M的任意一个正整数。

一方面,当各组所述子数据中均只包含1位误码数据时,分别将第i组所述子数据插入到所述待插入码元的第i通道的符号中,包括:

分别将第i组所述子数据与所述待插入码元的第i通道的符号中的第X位数据以第二预设计算方式进行运算,得到被插入误码后的所述待插入码元;

其中,X为不大于所述符号的数据总位数的正整数。

一方面,当码元的数量为偶数时,将待纠错数据的多个码元以预设交织分布规则分布至N个通道中,包括:

在所有的所述码元中,以两个码元为一组构成多组交织数据;

在所述交织数据中,将其中一个码元中的N/2数量的符号逐一分布到第q通道的第一路径中,并将剩余的符号逐一分布到第w通道的第二路径中,其中,q为任一个不大于N的偶数,w为任一个不大于N的奇数;

将另一个码元中的N/2数量的符号逐一分布到第q通道的第二路径中,并将剩余的符号逐一分布到第w通道的第一路径中。

本申请还提供一种误码插入装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述的误码插入方法的步骤。

本申请还提供一种误码插入系统,应用于发送设备中的处理器,所述发送设备与接收设备连接,所述误码插入系统包括:

误码数量确定单元,用于根据测试指令确定待插入误码的数量;

交织分布单元,用于将待纠错数据的各个码元均以预设交织分布规则分布至N个通道中,得到各个所述码元在N个通道中的符号,N为正整数;

待插入码元确定单元,用于确定与所述待插入误码的数量一致的码元作为待插入码元;

误码插入单元,用于对于任一个所述待插入码元,将预设误码分别插入到所述待插入码元的M个通道的符号中,M为不大于N的正整数;

发送单元,用于将所有的所述符号均发送至所述接收设备,以便所述接收设备对所述待纠错数据进行误码纠错。

本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的误码插入方法的步骤。

本申请的有益效果在于,提供了一种误码插入方法、装置、系统及计算机存储介质,首先根据测试指令确定待插入误码的数量,将待纠错数据的多个码元以预设交织分布规则分布至N个通道中,得到各个码元在N个通道中的符号,然后确定与待插入误码的数量一致的码元作为待插入码元,对于任一个待插入码元,均将预设误码分别插入到待插入码元的M个通道的符号中,最后将所有的符号均发送至接收设备,以便接收设备对待纠错数据进行误码纠错。通过设定待插入码元的数量和插入误码的通道数量,对交织分布后的符号进行误码插入,简单且有效地实现了误码插入的功能,方便工作人员对误码纠错的准确率进行测试。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请提供的一种误码插入方法的流程图;

图2为本申请提供的一种误码插入装置的结构示意图;

图3为本申请提供的一种误码插入系统的结构示意图。

具体实施方式

本发明的核心是提供一种误码插入方法、装置、系统及计算机存储介质,可以简单且有效地实现了误码插入的功能,方便工作人员对误码纠错的准确率进行测试。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

FEC编解码技术被广泛应用于通信系统中的编码技术以保证数据的准确性,基本思路是在发送端把要发送的数据信息重新编码,加入一定的冗余校验信息组成多条码元再发送给接收端;到达接收端后,如果数据错误的程度在可纠错范围之内,接收端通过解码检查后纠正错误可以降低误码率,提高通信系统的可靠性。在光通信系统中,通过FEC的处理,可以降低冗余开销,有效降低系统的误码率,延长传输距离,实现降低系统成本的目的。

为了检验接收端的误码纠错的准确率,需要主动在码元中插入一定数量的误码,根据插入误码的数量和接收端实际纠错的误码数量这两者的差来确定误码纠错的准确率,差越趋于零则准确率越高。

目前在市面上,只有集成在FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)或ASIC(Application Specific Integrated Circuit,专用集成电路)芯片内部的硬核RS(Reed-solomon,里所码)编解码器可以实现误码插入的功能,但是这种芯片不仅需要用户额外购买lisence(lisence等于是芯片的RS编解码软件的激活方案),而且RS编解码器在直接解码后也只是将数据恢复,无法确定实际纠错的误码数量,对误码纠错的准确率测试没有帮助。

请参照图1,图1为本申请提供的一种误码插入方法的流程图,应用于发送设备中的处理器,发送设备与接收设备连接,误码插入方法包括:

S1:根据测试指令确定待插入误码的数量;

需要首先说明的是,在本申请中,码元指的是codeword,符号指的是symbol,在RS编码领域中,会将一条数据信息分成多个码元(即codeword),每个码元都包含有多个符号(即symbol),符号并非代表的是一种具体的标识,其具体可以是数据位只有一比特位的字符,也可以是数据位有多比特位的字符串,以RS(544,514)编码环境为例,544表示一条数据信息总共被分成了544个符号,其中有514个符号包含有这条数据信息的实际数据内容,剩下的30个符号作为冗余码的符号,且这544个符号都是10比特位的字符串。

在开始插入误码之前,由于接收设备的误码纠错能力有限,用户可以根据接收设备的最大误码纠错数量来设定一个插入码元数量和一个插入符号阶数,插入码元数量指的是有多少个码元需要被插入误码,插入符号阶数指的是单个码元中有多少个符号需要被插入误码,实际要插入到整个待纠错数据中的误码数量等于插入码元数量乘以插入符号阶数,待纠错数据不能大于最大误码纠错数量,因此用户在设定这两个数量时需要根据最大误码纠错数量来考虑。在本申请中,插入码元数量相当于待插入误码的数量,插入符号阶数等于下述的M通道的M值。

在实际应用中,用户利用GUI(Graphical User Interface,图形用户界面)设定插入码元数量和插入符号阶数,然后使能插入误码指令,通过SPI(Serial PeripheralInterface,串行外设接口)总线传输至处理器,处理器总共得到下述这三种数据:

i_insert_err:插入误码信号,该信号表示误码插入过程,在执行误码插入流程时为高电平,其他时间为低电平,也即单次误码插入和误码纠错的测试流程只有一次高电平翻转动作。

i_insert_num:插入码元数量的信号,该信号为用户在GUI设定的信号,宽度为16位即<15:0>。

i_insert_position插入符号阶数的信号,该信号同样是用户在GUI设定的信号,宽度为16位即<15:0>。

在i_insert_err为高电平1时,通过锁存器将i_insert_num和i_insert_position分别锁存在寄存器insert_cnt和insert_position中,并产生误码插入使能信号insert_start=1,进入后续的误码插入步骤;当insert_start=0时,表示误码插入结束,进入最后的发送码元步骤;当insert_cnt=0时,表示剩余的插入误码的次数归零,同样表示误码插入结束。

S2:将待纠错数据的各个码元均以预设交织分布规则分布至N个通道中,得到各个码元在N个通道中的符号,N为正整数;

虽然不同的以太网协议对应的交织分布规则不同,但是其原理是一致的,都相当于是将两个码元的各个符号交替分布到各个虚拟通道上,各通道数据通过发送设备的高速光收发器发送至光模块(光模块即为接收设备)中的接收通道,光模块接收后,外部光纤自环后发给高速光收发器的接收端,高速光收发器的接收通道接收光模块发送过来的数据,最后将数据返回给发送设备的处理器。

S3:确定与待插入误码的数量一致的码元作为待插入码元;

根据上述内容,用户自行设定一个插入码元数量和一个插入符号阶数,根据插入码元数量在所有的码元中选取相同数量的码元作为后续需要插入误码的待插入码元。对于如何在这些码元中选取一定数量的待插入码元,可以根据各个码元在通道上的排序先后顺序或者各个码元生成时刻的先后顺序来选择,也可以根据用户需要来指定待插入码元,本申请对此不做限定。

S4:对于任一个待插入码元,将预设误码分别插入到待插入码元的M个通道的符号中,M为不大于N的正整数;

在插入误码时,插入到每一个待插入码元中的误码都是一样的,而且每一个待插入码元中被插入误码的通道数量也是一样的,这是为了提高误码插入效率,方便统一插入和后续纠错而实现的,作为一个简单的例子,假设总共需要插入16个误码,可以在2个码元的8个通道的符号中各插入一次误码,也可以在4个码元的4个通道的符号中各插入一次误码,可以简单且快速地实现误码插入。另外,若用户对误码插入效率没有要求,也可以针对每个待插入码元的具体插入误码的通道数量单独进行设定。

S5:将所有的符号均发送至接收设备,以便接收设备对待纠错数据进行误码纠错。

在所有的待插入码元的M个通道的符号都插入误码后,等于是本次的待纠错数据被插入了误码,最后将其发送给接收设备,接收设备进行误码纠错,即可根据接收设备实际进行的误码纠错的次数以及实际插入到待纠错数据中的误码总数(也就是上述的实际插入到整个待纠错数据中的误码数量)来确定接收设备的误码纠错准确率,可以理解的是,实际纠错的次数与实际插入的误码总数越接近一致时,说明误码纠错准确率越高。需要说明的是,即使是接收设备的误码纠错准确率为100%,考虑到在实际应用中,待纠错数据在发送给接收设备的过程中,可能会因为干扰的原因而产生额外的误码,导致接收设备实际进行误码纠错的次数大于实际插入的误码总数,因此在实际应用中可以多测试几次来得到更准确的误码纠错准确率。

此外,将所有的符号均发送至接收设备的具体步骤,可以利用发送设备中的高速光收发器,将所有的符号均发送至接收设备的光模块接收通道中。由于码元编码完成后会根据预设的交织分布规则分布到多个通道上,各通道符号数据会通过高速光收发器发送至接收设备中对应的接收通道,也就是每个通道对应一个接收通道,方便接收设备根据通道之间的对应关系来确定每个通道中具体包含的符号数据。

综上,首先根据测试指令确定待插入误码的数量,将待纠错数据的多个码元以预设交织分布规则分布至N个通道中,得到各个码元在N个通道中的符号,然后确定与待插入误码的数量一致的码元作为待插入码元,对于任一个待插入码元,均将预设误码分别插入到待插入码元的M个通道的符号中,最后将所有的符号均发送至接收设备,以便接收设备对待纠错数据进行误码纠错。通过设定待插入码元的数量和插入误码的通道数量,对交织分布后的符号进行误码插入,简单且有效地实现了误码插入的功能,方便工作人员对误码纠错的准确率进行测试。

在上述实施例的基础上:

在一些实施例中,将预设误码分别插入到待插入码元的M个通道的符号中,包括:

S21:按照预设顺序依次排序各个待插入码元;

S22:将第一个待插入码元作为当前码元;

S23:确定预设电平信号的电平状态,当预设电平信号的电平状态为高电平时,进入S24;预设电平信号的电平状态为低电平时,进入S25;

S24:将预设误码和第一预设参数以第一预设计算方式进行运算,将运算结果作为新的预设误码分别插入到当前码元的M个通道的符号中,进入S26;

S25:将预设误码和第二预设参数以第一预设计算方式进行运算,将运算结果作为新的预设误码分别插入到当前码元的M个通道的符号中,进入S26;

S26:将待插入误码的数量减1,进入S27;

S27:判断待插入误码的数量是否为0;若是,则进入将所有的符号均发送至接收设备的步骤;若否,则进入S28;

S28:翻转预设电平信号的电平状态,并将当前码元的下一个待插入码元作为新的当前码元,返回S23;

其中,第一预设参数和第二预设参数互为补码。

考虑到码元是两两交织分布到各个虚拟通道上的,为了有效地将误码插入到每一个待插入码元中,避免两个码元相互交织导致误码插入混乱,在本申请中,设定有两个预设参数,这两个参数互为补码,并由预设电平信号的状态来决定当前码元使用哪个预设参数来进行运算;可以理解的是,每当一个码元插入误码结束后电平信号都会翻转一次,因此交织的两个码元必然使用的是不同的参数。

为了提高效率,可以同时给两个相互交织的码元插入误码,具体的,假设i_insert_err为测试指令,insert_cnt为待插入误码的数量,insert_fec_id为电平信号,在i_insert_err为高电平期间,令误码插入使能信号insert_start同样为高电平,开始执行误码插入。insert_fec_id初始为低电平,令预设误码与第一预设参数进行运算,将结果作为当前码元的新的预设误码,同时将令预设误码与第二预设参数进行运算,将结果作为与当前码元交织的码元的预设误码,在这两个码元的误码插入结束后,将待插入误码的数量减2。

作为一个具体的例子,假设第一预设参数为16’hAAAA,第二预设参数为16’h5555,定义insert_en为原来的预设误码,定义insert_en_temp1作为当前码元的新的预设误码,insert_en_temp2作为下一个码元的新的预设误码,则有以下:

若insert_fec_id为高电平,则insert_en_temp1等于insert_en&16’hAAAA,insert_en_temp2等于insert_en&16’h5555;

若insert_fec_id为低电平,则insert_en_temp1等于insert_en&16’h5555,insert_en_temp2等于insert_en&16’hAAAA。

此外,第一预设计算方式可以为按位相与运算,也可以为按位相或运算。

在一些实施例中,在将预设误码和第一预设参数以第一预设计算方式进行运算之前,还包括:

根据预设的被插入误码的符号数量与误码之间的对应关系,确定待插入码元中被插入误码的通道数对应的误码作为预设误码;

在将预设误码和第二预设参数以第一预设计算方式进行运算之前,还包括:

根据对应关系,确定待插入码元中被插入误码的通道数对应的误码作为预设误码。

为了简单地设定不同的预设误码,本申请根据不同的插入符号阶数预先定义有不同的预设误码,以通道数最高为16(也就是插入符号阶数最大为16)作为例子,有下表:

表1 符号 与i_insert_position关系

其中的i_insert_position值为各种不同的被插入误码的符号的数量对应的预设误码值。

在一些实施例中,在将运算结果作为新的预设误码分别插入到当前码元的M个通道的符号中的同时,还包括:

判断当前码元对应的脉冲信号电平是否为高电平;

若是,则判定当前码元的误码插入完成,进入将待插入误码的数量减1的步骤。

为了简单地判断当前码元是否完成了误码插入,本申请中,基于脉冲信号的特性来实现,具体是当一个码元的开始输入脉冲信号in_pulse为1时说明该码元的误码插入结束。

由此可得:在当前码元的开始输入脉冲信号为高电平时,待插入误码数量insert_cnt减1,插入该当前码元的误码insert_en等于insert_position;如果开始输入脉冲信号为低电平,待插入误码数量insert_cnt保持不变,插入该当前码元的误码insert_en等于0。

在一些实施例中,将预设误码分别插入到待插入码元的M个通道的符号中,包括:

将预设误码的数据分为M组子数据,其中,各组子数据至少包含1位数据;

分别将第i组子数据插入到待插入码元的第i通道的符号中,得到被插入误码后的待插入码元;

其中,i为不大于M的任意一个正整数。

考虑到预设误码可以是单个字符,也可以是一串字符串,当预设误码是位数大于通道数的字符串时,可以将预设误码划分成与通道数的数量相同的M组子数据,每组子数据里都至少包含有1个数据位的数据,在插入误码时,每一组子数据对应一个通道,将子数据中的1位或多位的误码数据插入到对应的通道中,从而实现误码插入的目的。另外,也可以划分数量小于M的子数据,在插入误码时,一组子数据可以对应多个通道来插入误码。

当预设误码为单个字符或少数几个字符时,也可以不划分子数据,直接将预设误码插入到每一个通道中。

进一步的,当各组子数据中均只包含1位误码数据时,分别将第i组子数据插入到待插入码元的第i通道的符号中,包括:

分别将第i组子数据与待插入码元的第i通道的符号中的第X位数据以第二预设计算方式进行运算,得到被插入误码后的待插入码元;

其中,X为不大于符号的数据总位数的正整数。

当预设误码的位数与通道数一致时,划分子数据会划分成与通道数量相同的子数据,且每组子数据都只包含1位数据,那么在实际插入误码时,相当于是将预设误码的每一位数据与每个通道进行对应,只把预设误码中的一位数据插入到一个通道中,将这一位数据插入到该通道的符号中的固定位置,也即固定的bit位。

具体的,定义了一个参数以表示M个通道的数据:lane_符号_temp,该参数表示单个码元在M个通道上分布了符号,且每个符号的数据总位数为A bit位。进一步的,根据上述实施例可知,insert_en_temp1等于当前码元的预设误码,预设误码的位数与通道数一致,预设误码的数据位数同样是M位,将insert_en_temp1赋值给insert_en_set作为实际插入的误码,在实际插入误码时,有:lane_符号_temp[i]={insert_en_set1[i]^lanes_符号[i][X],lanes_符号[i][A-1:0]}。该式表示的意义是的利用预设误码中的第i位数据对第i个通道的符号中的第X bit位的数值进行了改变,且每个符号剩下的A-1个bit位的数值没有发生改变。

为了简单地说明这一点,在此作一个实际例子:假设M为16,A为10,X为9,那么总共有16个通道需要插入误码,单个通道符号中的数据为10 bit位,需要把误码插入到符号的第10位数据里(符号位数为[X:0]),将误码的第一位数据插入到第二个符号的第10位数据里,误码的第二位数据插入到第二个符号的第10位数据里...以此类推。

具体的,基于第i个通道的符号对应的参数为lane_符号_temp[i],可知第一个通道的lane_符号_temp[0]={insert_en_set[0]^lanes_符号[0][9],lanes_符号[0][8:0]};假设insert_en_set[0]=1且lanes_符号[0][9]=1,则lane_符号_temp[0][9]由1改变成0;假设insert_en_set[0]=1且lanes_符号[0][9]=0,则lane_符号1_temp[0][9]由0改变成1;当insert_en_set[0]=0时,对lane_符号1_temp[0][9]没有影响。

上述内容是对第1个通道的符号的误码插入流程进行说明,对于第2至第16个通道的说明与第1个通道同理,有:

第2个通道的lane_符号_temp[1]={insert_en_set[1]^lanes_符号[1][9],lanes_符号[1][8:0]};表示利用预设误码的第2位数据与第2个通道的符号中的第10 bit位数据进行异或计算,实现将误码插入到第2个通道的目的。

第3个通道的lane_符号_temp[2]={insert_en_set[2]^lanes_符号[2][9],lanes_符号[2][8:0]};表示利用预设误码的第3位数据与第3个通道的符号中的第10 bit位数据进行异或计算,实现将误码插入到第3个通道的目的。

第4个通道的lane_符号_temp[3]={insert_en_set[3]^lanes_符号[3][9],lanes_符号[3][8:0]};表示利用预设误码的第4位数据与第4个通道的符号中的第10 bit位数据进行异或计算,实现将误码插入到第4个通道的目的。

依次类推直到第16个通道,lane_符号_temp[15]={insert_en_set[15]^lanes_符号[15][9],lanes_符号[15][8:0]},表示利用预设误码的第16位数据与第16个通道的符号中的第10 bit位数据进行异或计算,实现将误码插入到第16个通道的目的。

综上,在实现误码插入时,需要设定预设误码的数据位数与被插入误码的通道数一致,预设误码的每一位数据分别插入到不同通道的符号中的相同bit位。基于此,可以有效地实现误码插入的目的。

在一些实施例中,当码元的数量为偶数时,将待纠错数据的多个码元以预设交织分布规则分布至N个通道中,包括:

在所有的码元中,以两个码元为一组构成多组交织数据;

在交织数据中,将其中一个码元中的N/2数量的符号逐一分布到第q通道的第一路径中,并将剩余的符号逐一分布到第w通道的第二路径中,其中,q为任一个不大于N的偶数,w为任一个不大于N的奇数;

将另一个码元中的N/2数量的符号逐一分布到第q通道的第二路径中,并将剩余的符号逐一分布到第w通道的第一路径中。

在以预设的交织分布规则将码元分布到多个通道上时,根据上述实施例可知,是将两个码元交替且交错地分布到每个通道的不同路径上,当其中一个码元(A)的符号被分布到第i个通道的第一路径上时,会将另一个码元(B)的符号分布到第i+1个通道的第一路径;同时,码元(A)的另一个符号会分布到第i+1个通道的第二路径,码元(B)的另一个符号会分布到第i个通道的第二路径。

作为一种具体的例子,假设总共有16个通道,每个码元包含64个符号,有下表:

表2:两个码元的交织分布表

在表2的第1、3、5、7行中,码元(A)的符号分布在lane0、lane2、lane4、lane6、lane8、lane10、lane12、lane14这8个通道中,CA_j数据即为码元(A)的符号数据,j=[0,63];码元(B)的符号分布在lane1、lane3、lane5、lane7、lane9、lane11、lane13、lane15这8个通道中,CB_k数据即为码元(B)的符号数据,k=[0,63];

同理,在表2的第2、4、6、8行中,码元(A)的符号分布在lane1、lane3、lane5、lane7、lane9、lane11、lane13、lane15这8个通道中,码元(B)的符号分布在lane0、lane2、lane4、lane6、lane8、lane10、lane12、lane14这8个通道中。

从此可见,当每个符号的数据bit位数为10时,每个通道(lane)中所包含的数据为:lanes_符号<15:0><9:0>,若将表2中的一行数据看作是一个路径,可以得到8条路径,分别为lanes_符号-1至lanes_符号-8,按照预设交织分布规则,以lanes_符号-1为例,数据包含表2中第1行的所有数据,也即包含CA_0、CB_0、CA_1、CB_1、CA_2、C_B_s2、CA_3、CB_3、CA_4、CB_4、CA_5、CB_5、CA_6、CB_6、CA_7、CB_7这16个值,lanes_符号-2至lanes_符号-8路径中的数据分别对应表2中的第2行到第8行。另外需要说明的是,在路径数量大于2的情况下,第一路径和第二路径可以分别指代的是奇数行的路径和偶数行的路径。

在将这些符号发送给接收数据时,每个通道(通道也称为lane)中都包含8个符号共计80bit的数据,lane0包含CA_0、CB_8、CA_16、CB_24、C_A_32、CA_40、CB_48、CA_56这8个符号,lane1~lane15中包含的符号则对应表2中从左往右数的第2至第16列中的符号数据。

基于此可得:

lane0={lanes_符号7[0],lanes_符号6[0],lanes_符号5[0],lanes_符号4[0],lanes_符号3[0],lane_符号2[0],lane_符号1[0],lanes_符号0[0]};

lane1={lanes_符号7[1],lanes_符号6[1],lanes_符号5[1],lanes_符号4[1],lanes_符号3[1],lane_符号2 [1],lane_符号1[1],lanes_符号0[1]};

lane3={lanes_符号7[2],lanes_符号6[2],lanes_符号5[2],lanes_符号4[2],lanes_符号3[2],lane_符号2 [2],lane_符号1[2],lanes_符号0[2]};

以此类推直到第16个lane,lane15={lanes_符号7[15],lanes_符号6[15],lanes_符号5[15],lanes_符号4[15],lanes_符号3[15],lane_符号2 [15],lane_符号1[15],lanes_符号0[15]}。

在发送数据给接收设备时,接收设备通过对每一个码元的译码并进行误码纠错,从而检测出被纠错的码元数量,比较该数据与用户设定的插入码元数量是否一致,并检测出纠错的符号数量,比较该数据与用户设定的插入符号阶数是否一致,从而确定误码纠错的准确率。

此外,本申请若采用并行度64伴随式计算,可以保证电路的最大时钟频率大于390Mhz,在数据接口宽度为1280比特的情况下,达到425G/bits以上的数据吞吐率,通过插入误码功能测试了网络分析仪FEC测试正确,使用分析仪对通时FEC分析准确,实现了400G网络分析仪的分析功能。

请参照图2,图2为本申请提供的一种误码插入装置的结构示意图,包括:

存储器21,用于存储计算机程序;

处理器22,用于执行计算机程序时实现如上述的误码插入方法的步骤。

对于本申请提供的误码插入装置的详细介绍,请参照上述误码插入方法的实施例,本申请在此不再赘述。

请参照图3,图3为本申请提供的一种误码插入系统的结构示意图,应用于发送设备中的处理器,发送设备与接收设备连接,误码插入系统包括:

误码数量确定单元31,用于根据测试指令确定待插入误码的数量;

交织分布单元32,用于将待纠错数据的多个码元以预设交织分布规则分布至N个通道中,得到各个码元在N个通道中的符号,N为正整数;

待插入码元确定单元33,用于确定与待插入误码的数量一致的码元作为待插入码元;

误码插入单元34,用于对于任一个待插入码元,将预设误码分别插入到待插入码元的M个通道的符号中,M为不大于N的正整数;

发送单元35,用于将所有的符号均发送至接收设备,以便接收设备对待纠错数据进行误码纠错。

对于本申请提供的误码插入系统的详细介绍,请参照上述误码插入方法的实施例,本申请在此不再赘述。

本申请还提供一种计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的误码插入方法的步骤。

对于本申请提供的计算机存储介质的详细介绍,请参照上述误码插入方法的实施例,本申请在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种通信共享系统、方法、装置、计算机装置及存储介质
  • 一种数据采集系统定位方法、装置和计算机可读存储介质
  • 一种晶体生长控制方法、装置、系统及计算机存储介质
  • 一种晶体生长控制方法、装置、系统及计算机存储介质
  • 一种文件读取方法、系统、装置及计算机可读存储介质
  • 误码掩盖方法、装置、系统、存储介质和计算机设备
  • 一种链路误码处理方法、装置及计算机可读存储介质
技术分类

06120116501298