首页> 中国专利> 一种数据总线转换装置及其RS编译码器

一种数据总线转换装置及其RS编译码器

摘要

本发明的一种数据总线转换装置及其RS编译码器,其中,所述数据总线转换装置包括在系统中同时实现的两种RS编译码器,该两种RS编译码器为P路交织RS(n1,k1)复合码和RS(n2,k2)码,该两种RS编译码器都使用P*m1比特宽的数据总线,并且输入输出接口相同;通过比特0的插入和剔出,实现P*m1与T*m2比特总线之间的相互转换,避免不完整码元的产生,从而实现了传统的RS编译码器在通信领域的前向纠错装置中的应用。

著录项

  • 公开/公告号CN1787385A

    专利类型发明专利

  • 公开/公告日2006-06-14

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200410052576.9

  • 发明设计人 姜志强;

    申请日2004-12-08

  • 分类号H03M13/15(20060101);H04L1/00(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人樊卫民

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦A座6层

  • 入库时间 2023-12-17 17:20:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-20

    专利权的转移 IPC(主分类):H03M13/15 专利号:ZL2004100525769 登记生效日:20221207 变更事项:专利权人 变更前权利人:中兴通讯股份有限公司 变更后权利人:深圳市中兴微电子技术有限公司 变更事项:地址 变更前权利人:518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦A座6层 变更后权利人:518055 广东省深圳市南山区西丽街道留仙大道中兴工业园 变更事项:专利权人 变更前权利人:深圳市中兴微电子技术有限公司 变更后权利人:

    专利申请权、专利权的转移

  • 2016-06-22

    专利权的转移 IPC(主分类):H03M13/15 登记生效日:20160530 变更前: 变更后: 申请日:20041208

    专利申请权、专利权的转移

  • 2009-07-22

    授权

    授权

  • 2006-08-09

    实质审查的生效

    实质审查的生效

  • 2006-06-14

    公开

    公开

说明书

技术领域

本发明涉及一种通信领域的数据总线转换装置以及其前向纠错装置,尤其涉及的是一种RS(Reed-Solomon)码的编译码装置。

背景技术:

RS码是Reed-Solomon码的简称,由Reed和Solomon各自于1960年首先提出,是Galos域GF(2m)上的线性分组循环码。一个码组(也称码字)中包含n个码元,k个信息码元(称为信息组),n-k个校验码元(称为校验组),一般用RS[n,k]表示,可以检测n-k个错误,可以纠正个错误,是一类有很强纠错能力的多进制码。在计算机纠错系统,特别是存储系统,如光盘、磁盘、磁带中用得很普遍,近年来在光传输系统也大量采用了RS码。

目前的RS编译码装置只针对一种RS码,输入输出总线宽度与码元的比特数相同,但在实际应用系统中,通常要求同时实现两种或多种RS码。其中一种是标准RS码或其缩短码,另一种或多种是多路交织的复合码。例如16路交织RS(255,239)和RS(2720,2550),8路交织RS(31,26)和RS(155,131),8路交织RS(15,11)和RS(80,59)等。在同一系统中同时实现的多种RS码码字的总比特数相同,但码元的比特数不一样,信息组的比特数也可能不一样。一般以信息组最少比特数为准,超过该值的用0填充。例如16路交织RS(255,239)与RS(2720,2550),两者的总比特数都为32640,但前者的信息组比特数为16*239*8=30592,后者的信息组比特数为2550*12=30600。为了实现两者兼容,规定RS(2720,2550)每个信息组的最后8比特固定为0。

在实际应用系统中,通常要求使用相同的输入输出接口。仍以16路交织RS(255,239)和RS(2720,2550)为例,目前,16路交织RS(255,239)已经得到广泛应用,实现时一般采用16*8=128bits数据总线,每8-bits一组,按顺序分别与一个RS(255,239)编码器或译码器对应。RS(255,239)编码器或译码器实际使用的是8-bits数据总线,每个时钟周期刚好输入输出一个码元。RS(2720,2550)要使用与16路交织RS(255,239)相同的接口,数据总线也必须是128比特的。但是,RS(2720,2550)的每个码元包含12比特,128不是12的整数倍,每时钟周期输入输出的128比特数据中必然包含不完整的码元,但现有RS编译码技术都是以码元为单位的,不能处理不完整码元。8路交织RS(31,26)和RS(155,131),8路交织RS(15,11)和RS(80,59)等具有与16路交织RS(255,239)和RS(2720,2550)同样的问题。

因此,现有技术存在缺陷,而有待于改进和发展。

发明内容

本发明的目的在于提供一种数据总线转换装置及其RS编译码器,针对上述描述的不完整码元问题,通过比特0的插入和剔出,实现P*m1与T*m2比特总线之间的相互转换,避免不完整码元的产生,从而有效解决现有技术之难题。

本发明的技术方案为:

一种数据总线转换装置,其中,所述数据总线转换装置包括

在系统中同时实现的两种RS编译码器,该两种RS编译码器为P路交织RS(n1,k1)复合码和RS(n2,k2)码,该两种RS编译码器都使用P*m1比特宽的数据总线,并且输入输出接口相同;

一交织模块和一解交织模块,所述P路交织RS(n1,k1)复合码通过该交织模块和解交织模块把P*m1比特宽的数据总线分解成P路独立的具有m1比特宽的数据总线,分别提供给P个相互独立的RS(n1,k1)编译码器;

一总线转换模块,所述RS(n2,k2)编译码器通过该总线转换模块实现P*m1比特数据总线和T*m2比特数据总线之间的转换,提供T*m2比特宽数据总线给RS(n2,k2)半并行编译码器进行T路并行编译码;

其中RS(n1,k1)表示信息码元数为k1,校验码元数为(n1-k1),每个码元包含m1比特的RS码;RS(n2,k2)表示信息码元数为k2,校验码元数为(n2-k2),每个码元包含m2比特的RS码;T是RS(n2,k2)半并行编译码器并行处理的码元数。

所述的数据总线转换装置,其中,所述总线转换模块包括P*m1到T*m2总线转换模块和T*m2到P*m1总线转换模块,所述P*m1到T*m2总线转换模块用于通过P*m1比特总线接收数据,存入一移位寄存器组,再通过T*m2比特数据总线输入到FIFO中缓存,然后用T*m2比特数据总线输出;

一控制模块,用于控制所述移位寄存器组在帧头和帧尾插入适当比特的0,管理FIFO,同时将接收的与P*m1比特总线同步的帧定位信息转换成与输出的T*m2比特数据总线同步的帧定位信息。

所述的数据总线转换装置,其中,所述T*m2到P*m1总线转换模块用于通过T*m2比特总线接收数据,存入移位寄存器组,再通过P*m1比特数据总线输入到FIFO中缓存,然后用P*m1比特数据总线输出;

所述控制模块控制移位寄存器组在帧头和帧尾插入适当比特的0,管理FIFO,同时将接收的与T*m2比特总线同步的帧定位信息转换成与输出的P*m1比特数据总线同步的帧定位信息。

一种使用所述的数据总线转换装置的RS编译码器,其中,所述RS编译码器包括

同时实现的一P路交织RS(n1,k1)复合码和RS(n2,k2)码编译码功能的RS编译码器,所述P路交织RS(n1,k1)编码器和RS(n2,k2)编码器采用相同的输入输出接口,所述P路交织RS(n1,k1)译码器和RS(n2,k2)译码器采用相同的输入输出接口,总线宽度都为P*m1比特。

所述的RS编译码器,其中,所述P路交织RS(n1,k1)编译码器包括一交织模块及一解交织模块,该交织模块与解交织模块之间为P路RS编/译码器;对于编码器,输入数据进入系统后送到P路交织RS编码器进行编码,编码后的数据通过P*m1比特宽度的数据总线输出;对于译码器,输入数据进入系统后送到P路交织RS译码器进行译码,译码后的数据同样通过P*m1比特宽度的数据总线输出。

所述的RS编译码器,其中,所述RS(n2,k2)编译码器包括一P*m1到T*m2总线转换模块及一T*m2到P*m1总线转换模块,在该P*m1到T*m2总线转换模块与该T*m2到P*m1总线转换模块之间为RS(n2,k2)编/译码器;对于编码器,将待编码数据送到所述P*m1到T*m2总线转换模块,插入比特0进行填充,将P*m1比特宽度的数据总线转换成T*m2比特的数据总线,T*m2比特宽度数据输入RS(n2,k2)半并行编码器进行编码,编码后的数据首先输出到T*m2到P*m1总线转换模块,去除信息组中的插入比特0,将T*m2比特宽的数据总线转换成P*m1比特宽的数据总线输出;对于译码器,将待译码数据首先送到P*m1到T*m2总线转换模块,插入比特0进行填充,将P*m1比特宽的数据总线转换成T*m2比特宽的数据总线,T*m2比特宽度数据输入RS(n2,k2)半并行译码器进行译码,译码后的数据首先输出到T*m2到P*m1总线转换模块,去除信息组中的插入比特0,将T*m2比特宽的数据总线转换成P*m1比特宽的数据总线输出。

所述的RS编译码器,其中,所述P*m1比特宽总线和T*m2比特宽总线采用相同频率的时钟,同时用使能信号标示总线上的数据是否有效,如果使能信号不使能,总线上的P*m1或者T*m2比特数据无效,否则有效。

本发明所提供的一种数据总线转换装置及其RS编译码器,由于采用了RS(n1,k1)编译码器的输入输出总线宽度与码元宽度相同,RS(n2,k2)半并行编译码器的输入输出总线宽度是码元宽度的T倍,都不涉及不完整码元,可以用传统的RS编译码方法实现,有效解决了不完整码元无法应用于RS编译码器的问题,统一了不同RS编译码之间的输入输出接口。

附图说明

图1是本发明的统一接口同时实现P路交织RS(n1,k1)复合码和RS(n2,k2)码的编译码器的系统结构图;

图2是本发明的P路交织RS(n1,k1)编码器模块结构图;

图3是本发明的P路交织RS(n1,k1)译码器模块结构图;

图4是本发明的RS(n2,k2)编码器模块结构图;

图5是本发明的RS(n2,k2)译码器模块结构图;

图6是本发明的P*m1到T*m2总线转换模块结构图;

图7是本发明的T*m2到P*m1总线转换模块结构图。

具体实施方式:

下面结合附图对本发明的具体实施例加以详细描述。

本发明方法的其核心思想是:在系统中同时实现的两种RS编译码器--P路交织RS(n1,k1)复合码和RS(n2,k2)码都使用P*m1比特宽的数据总线,输入输出接口相同。P路交织RS(n1,k1)复合码通过交织和解交织模块把P*m1比特宽的数据总线分解成P路独立的具有m1比特宽的数据总线,分别提供给P个相互独立的RS(n1,k1)编译码器。RS(n2,k2)编译码器通过总线转换模块实现P*m1比特数据总线和T*m2比特数据总线之间的转换,提供T*m2比特宽数据总线给RS(n2,k2)半并行编译码器进行T路并行编译码。

其中RS(n1,k1)表示信息码元数为k1,校验码元数为(n1-k1),每个码元包含m1比特的RS码;RS(n2,k2)表示信息码元数为k2,校验码元数为(n2-k2),每个码元包含m2比特的RS码;T是RS(n2,k2)半并行编译码器并行处理的码元数。一般地,m1小于m2,m1*k1小于等于m2*k2,P*m1小于等于T*m2。

如图1所示的,总线转换模块分P*m1到T*m2总线转换模块和T*m2到P*m1总线转换模块两部分,P*m1到T*m2总线转换模块通过P*m1比特总线接收数据,存入移位寄存器组,再通过T*m2比特数据总线输入到FIFO中缓存,然后用T*m2比特数据总线输出。控制模块控制移位寄存器组在帧头和帧尾插入适当比特的0,管理FIFO,同时将接收的与P*m1比特总线同步的帧定位信息转换成与输出的T*m2比特数据总线同步的帧定位信息。T*m2到P*m1总线转换模块与P*m1到T*m2总线转换模块相似,首先通过T*m2比特总线接收数据,存入移位寄存器组,再通过P*m1比特数据总线输入到FIFO中缓存,然后用P*m1比特数据总线输出。控制模块控制移位寄存器组在帧头和帧尾插入适当比特的0,管理FIFO,同时将接收的与T*m2比特总线同步的帧定位信息转换成与输出的P*m1比特数据总线同步的帧定位信息。

RS(n1,k1)编译码器的输入输出总线宽度与码元宽度相同,RS(n2,k2)半并行编译码器的输入输出总线宽度是码元宽度的T倍,都不涉及不完整码元,可以用传统的RS编译码方法实现,有效解决了不完整码元问题,统一了不同RS码之间的输入输出接口。

同时实现P路交织RS(n1,k1)复合码和RS(n2,k2)码编译码功能的RS编译码器的系统结构如图1所示,P路交织RS(n1,k1)编码器和RS(n2,k2)编码器采用相同的输入输出接口,P路交织RS(n1,k1)译码器和RS(n2,k2)译码器也采用相同的输入输出接口,总线宽度都为P*m1比特。对于编码器,输入数据进入系统后送到P路交织RS(n1,k1)编码器或者RS(n2,k2)编码器进行编码,编码后的数据通过P*m1比特宽度的数据总线输出。对于译码器,输入数据进入系统后送到P路交织RS(n1,k1)译码器或者RS(n2,k2)译码器进行译码,译码后的数据同样通过P*m1比特宽度的数据总线输出。

P路交织RS(n1,k1)编码器的结构如图2所示。待编码数据通过P*m1比特宽输入总线首先送到解交织模块210,解交织后通过P条m1比特宽度的数据总线分别送到P个相互独立的RS(n1,k1)编码器进行编码,编码后的数据送到交织模块220进行交织,然后通过P*m1比特宽度数据总线输出。P路交织RS(n1,k1)译码器的结构与编码器相似,如图3所示,待译码的数据通过P*m1比特宽度输入总线首先送到解交织模块210,解交织后通过P条m1比特宽度的数据总线分别送到P个独立的RS(n1,k1)译码器进行译码,译码后的数据送到交织模块220进行交织,然后通过P*m1比特宽度数据总线输出译码后数据。

RS(n2,k2)编码器结构如图4所示,待编码数据首先送到P*m1到T*m2总线转换模块410,插入比特0进行填充,将P*m1比特宽度的数据总线转换成T*m2比特的数据总线。T*m2比特宽度数据输入RS(n2,k2)半并行编码器进行编码,每时钟并行处理T个码元,每个码元包含m2比特,没有不完整码元出现,仍然采用常规RS编码器实现。编码后的数据首先输出到T*m2到P*m1总线转换模块420,去除信息组中的插入比特0,将T*m2比特宽的数据总线转换成P*m1比特宽的数据总线输出。RS(n2,k2)译码器的结构与RS(n2,k2)编码器的结构相似,如图4所示,待译码数据首先送到P*m1到T*m2总线转换模块410,插入比特0进行填充,将P*m1比特宽的数据总线转换成T*m2比特宽的数据总线。T*m2比特宽度数据输入RS(n2,k2)半并行译码器进行译码,每时钟并行处理T个码元,每个码元包含m2比特。译码后的数据首先输出到T*m2到P*m1总线转换模块420,去除信息组中的插入比特,将T*m2比特宽的数据总线转换成P*m1比特宽的数据总线输出。为便于硬件实现,P*m1比特宽总线和T*m2比特宽总线采用相同频率的时钟,同时用使能信号标示总线上的数据是否有效。如果使能信号不使能,总线上的P*m1或者T*m2比特数据无效,否则有效。

一般地,RS(n2,k2)编码器的总线宽度为比特,实际输入的信息组长度为个m2比特码元。因为在信息组前面插入码元比特0不会改变校验组的值,一般需要在信息组前插入-k2个码元比特0,同时需要在信息组末尾插入k2*m2-P*k1*m1个比特0。以16路交织RS(255,239)和RS(2720,2550)为例,因为RS(2720,2550)编码器的接口要与16路交织RS(255,239)的相同,后者采用128-bits输入输出总线,输入239个128-bits信息组以后等待16个以上的时钟周期,输出校验码元,RS(2720,2550)编码模块必须在239个时钟周期内完成校验组的计算,每个时钟周期接收个12-bits码元,编码模块每个时钟周期并行处理11个码元,一个码字需要个时钟周期,实际处理232*11=2552个码元。不过一个码元实际的信息比特数为16*239*8=30592,加上固定填充的8比特,还需要填充2552*12-30592-8=24比特(即2个码元0)进行计算。将24个比特0插到码字前面,RS(2720,2550)码字就变成了RS(2722,2552)码字。为了与16路交织RS(255,239)一致,在编码器的输出端必须将插入到码字前面的24个填充比特去除,将RS(2722,2552)码字转换成RS(2720,2550)码字。RS(2720,2550)译码器的接口也要与16路交织RS(255,239)的相同,255个时钟周期接收完一个RS(2720,2550)码字,每个时钟周期需要并行处理个码元,实际处理时间为个时钟周期,实际处理了248*11=2728个码元。所以,在并行译码前,需要在接收到的RS(2720,2550)码字前面插入6*12=72比特的0(即6个码元0),将其转换成RS(2728,2558)码字。

图6为P*m1比特到T*m2比特总线转换模块结构图,FIFO为宽T*m2比特、深的存储器。2*P*m1比特的移位寄存器组的寄存器从上到下编号依次为0,1,...,2*P*m1。指针pointer指向比特移位寄存器中当前有效填充数据的下一位置,编号小于pointer的寄存器内都有有效数据,编号大于等于pointer的寄存器为空。例如pointer=w,则寄存器0到寄存器w内都有有效数据。如果此时输入有效数据,输入的P*m1比特顺序放在原来剩余数据下面,即放在寄存器w到寄存器w+P*m1-1内,指针下移,指向寄存器w+P*m1。如果移位寄存器内的有效数据超过T*m2比特(指针pointer大于等于T*m2),将最上面的T*m2比特数据移出,同时将剩余数据上移T*m2比特,指针也上移T*m2比特。如果在移出数据的同时有数据输入,首先移出数据,调整剩余数据位置,然后将新输入的数据顺序放到剩余数据下面,根据新的数据位置调整指针。因为只要移位寄存器内有超过T*m2比特数据,就会将顶端数据移出,移位寄存器内的数据始终不会超过2*P*m1比特。

一个时钟周期输入转换模块的最多只有P*m1比特,输出转换模块的可能为T*m2比特,即使P*m1比特数据总线连续输入,T*m2比特数据输出也会有间隙(某些时钟周期数据不使能,表示没有输出)。如果在码字中间有间隙,会大大增加编码、译码的复杂度,故用FIFO对数据缓存,在一个码字开始以后先缓存足够的数据,再连续输出,从而去除码字中间的间隙。如果P*m1比特数据总线连续输入(一般情况下输入都是连续的),一个码字需要n1个时钟周期,连续以T*m2比特数据总线输出,需要个时钟周期,要保证连续,需要先缓存比特数据。在每个码字初始化时,将移位寄存器设为0,同时设置指针为插入个比特0到信息组前面;在输入P*k1*m1信息比特后,还需要添加k2*m2-k1*m1个比特0到移位寄存器。对于译码器的P*m1到T*m2转换模块,需要将移位寄存器设为0的同时设置指针为插入个比特0到信息组前面。控制模块通过对指针的控制完成比特0的插入,它同时还控制FIFO,对帧定位信息进行转换,将输入的与P*m1比特宽数据总线同步的帧定位信号转转成与T*m2比特宽数据总线同步的帧定位信号。

T*m2到P*m1总线转换模块与P*m1到T*m2转换模块类似,使用图7所示的结构。包含2*P*m1比特的移位寄存器组从上到下依次将各寄存器编号为0,1,...,2*P*m1-1。FIFO由宽度为T*m2比特、深度为的存储器构成。指针pointer指向比特移位寄存器中当前有效填充数据的下一位置,编号小于pointer的寄存器内都有有效数据,编号大于等于pointer的寄存器为空。该模块首先通过T*m2比特数据总线从编码模块或译码模块接收数据,存入FIFO中。如果移位寄存器中有超过T*m2个寄存器为空(pointer小于2*P*m1-T*m2),从FIFO中读取T*m2比特数据,按顺序放在移位寄存器中已有数据下面,同时调整指针,指向存入数据后的相应位置。如果移位寄存器中有超过P*m1比特的有效数据,通过P*m1比特数据总线输出,同时将剩余数据移到移位寄存器顶部,调整指针。通常从FIFO读数据和从移位寄存器输出数据是同时发生的,这时首先输出P*m1比特数据,调整剩余数据位置,然后在剩余数据下面顺序存放从FIFO中读入的数据,调整指针。

对于编码器的P*m1到T*m2转换模块,需要丢掉每个码字最前面的比特填充值;对于译码器的P*m1到T*m2转换模块,需要丢掉每个码字最前面的比特填充值。

系统中的RS(n1,k1)和RS(n2,k2)编译码器每时钟周期处理一个或T个码元,不涉及不完整码元,是常规RS编译码器。

本发明通过比特0的插入和剔出,实现了P*m1与T*m2比特总线之间的相互转换,避免了不完整码元的产生,巧妙地解决了数据总线不一致引起的不完整码元问题,实现了接口完全相同的P路交织RS(n1,k1)复合码和RS(n2,k2)码的编译码器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号