CN100424998C - 一种基于循环冗余码的单比特纠错查表方法及其电路 - Google Patents

一种基于循环冗余码的单比特纠错查表方法及其电路 Download PDF

Info

Publication number
CN100424998C
CN100424998C CNB2006100013647A CN200610001364A CN100424998C CN 100424998 C CN100424998 C CN 100424998C CN B2006100013647 A CNB2006100013647 A CN B2006100013647A CN 200610001364 A CN200610001364 A CN 200610001364A CN 100424998 C CN100424998 C CN 100424998C
Authority
CN
China
Prior art keywords
bit
information
matrix
bit error
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn - After Issue
Application number
CNB2006100013647A
Other languages
English (en)
Other versions
CN1829099A (zh
Inventor
葛宁
潘赟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Han Chen Technology Co ltd
Original Assignee
Beijing Huahuan Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huahuan Electronics Co Ltd filed Critical Beijing Huahuan Electronics Co Ltd
Priority to CNB2006100013647A priority Critical patent/CN100424998C/zh
Publication of CN1829099A publication Critical patent/CN1829099A/zh
Application granted granted Critical
Publication of CN100424998C publication Critical patent/CN100424998C/zh
Withdrawn - After Issue legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)

Abstract

本发明涉及一种基于循环冗余码的单比特纠错查表方法及其电路,属于数字通信技术领域。将数据段进行循环冗余码校验,得到行向量,若不为零,则从中按子空间抽取p比特元素,获得行向量Rp,剩余部分构成行向量Rq;将行向量Rp作为地址信息,从查找表中获得与该地址相对应的匹配信息和单比特错误位置信息;根据匹配信息与行向量Rq的吻合情况,得到单比特纠错指示,并进行单比特纠错。本发明的电路,包括校验器、选择器、存储器比较器和单比特纠错器。本发明方法和电路,对地址信息进行最优化控制,减少了查找表所占用的地址空间,降低了存储单元的容量;查找表信息表示简单,保证了电路的简单实现;整体电路模块清晰,结构规整,执行速度快,易于集成。

Description

一种基于循环冗余码的单比特纠错查表方法及其电路
技术领域
本发明涉及一种基于循环冗余码的单比特纠错查表方法及其电路,属于数字通信技术领域。
背景技术
循环冗余码(以下简称CRC)校验技术,由于其实现简单、高效,占用软件或硬件的资源少,已经在数字通信的检错纠错领域中得到了广泛的应用。目前,国际上数字通信领域应用最广的CRC校验主要是生成多项式为x16+x12+x5+1的CRC-16和x32+x26+x23+x22+x16+X12+x11+x10+x8+x7+x5+x4+x2+x+1的CRC-32。在现有的绝大部分通信***中,CRC部分通常只是实现简单的检错功能,往往不进行纠错处理。一些通信***中利用了CRC的单比特纠错能力,实现了对关键字段的单比特错误的恢复,增加了通信的可靠性。
CRC校验一个典型的应用是在通用成帧规程(简称GFP)协议中。该协议在净荷长度指示(简称PLI),净荷类型区域,扩展类型区域等三个关键字段均采用了生成多项式为x16+x12+x5+1的CRC-16的检错和单比特纠错。该CRC保护的信息字段长度为16比特,本身校验位为16比特,因此总的数据段长度为32比特。在GFP的接收端,需要能够纠正该数据段前16比特的受保护的信息字段的单比特错误,对后16比特校验位的单比特错误不需要纠正。
CRC单比特纠错方法通常是采用查表法,每种单比特错误出现的错误图样对应唯一的校验图样。因此,利用接收到的信息部分和CRC校验部分,在接收端重新进行CRC计算,判断是否有错;如果有单比特错误,利用CRC的计算结果进行查表可以确定该错误的所在位置。这种方法无论是用软件还是硬件实现,算法上都比较规范和简单,易于集成和复用。但是,由于单比特查表纠错方法的核心技术在于校验图样查找表的生成,而现有的各种算法在查找表的生成上比较随意,利用了某些特殊性或者自定义的预运算来生成查找表,因此各算法对资源的利用差异很大,同时其中的一些算法实现较为复杂,对除查找表部分外的电路要求较高。
查找表占用资源的大小,主要取决于地址空间的大小;查找表部分外的电路设计复杂程度,主要取决于结构是否简单、规整。利用CRC校验本身的一些特征,可以对地址空间的大小进行最优化分析,从而找到一种使查找表占用空间最小化,同时使整体结构简单的设计方法和电路。假设CRC校验的信息字段为k bits,CRC校验字段为n-k bits,因此发送的数据段总长为n比特,可以用多项式v(x)表示(其最高次数为n-1)。传输过程中引入的错误图样可以记做e(x)(最高次数为n-1),其中的非零项表示错误发生的位置。那么,接收到的多项式为r(x)=v(x)+e(x)。对接收的多项式重新进行和发送端相同的CRC的运算,有如下结果:
CRC(r(x))=CRC(v(x)+e(x))=CRC(v(x))+CRC(e(x))=Constant+CRC(e(x)),等式中的加法为模二加法。其中的CRC(v(x))不管发送的v(x)为何值,结果都为一常量序列,在大多数的CRC校验中这一常量为零。因此,接收到的r(x)在CRC运算后的图样取决于传送过程中的错误图样的CRC运算结果。利用这一结论,我们可以用更为有效的方法对查找表进行最优化的分析和设计,用最小的地址空间生成单比特纠错的核心查找表。
发明内容
本发明的目的是提出一种基于循环冗余码的单比特纠错查表方法及其电路,基于通常的查表思想,通过最优化过程,用尽可能小的地址空间实现单比特纠错的核心查找表,极大的减少对资源的占用,同时使电路的整体结构更为有效和规整,以更加适合于专用集成电路(简称ASIC)中知识产权(简称IP)核的集成和复用。
本发明提出的基于循环冗余码的单比特纠错查表方法,包括如下步骤:
(1)对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m};
(2)建立地址信息与内容信息一一映射的查找表T;
(3)将上述接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;
(4)从上述行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq
(5)将上述行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后
Figure C20061000136400061
比特的单比特错误位置信息;
(6)当上述前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;
(7)根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;
(8)重复步骤(3)~(7),完成所有接收数据段的纠错。
上述方法中,从1到m的校验位序号中提取子空间I的过程,包括以下步骤:
(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;
(2)设待提取的子空间I的元素个数为p,取p的初始值为
(3)从上述矩阵A中任意取p列,构成n×p矩阵,共有Cm p种矩阵组合,对Cmp种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则进行步骤(4);
(4)对子空间I的元素个数p赋以新值,p=p+1,重复步骤(2)和(3),直至找到任意两行都不相同的矩阵,以得到子空间I。
上述方法中,建立地址信息与内容信息一一映射的查找表T的过程,包括以下步骤:
(1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;
(2)从上述矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;
(3)根据上述单比特错误图样的按行排列的校验结果顺序,构建
Figure C20061000136400072
矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成
Figure C20061000136400073
的矩阵E,作为查找表T的内容信息;
(4)将上述矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。
其中构建矩阵D的过程,包括:(1)设矩阵D的大小为
Figure C20061000136400074
其中n为接收数据段的长度;(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。其中将e(x)多项式中非零项的次数映射成二进制代码的方法为:若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为
Figure C20061000136400081
比特,并在该二进制代码前补上“1”,作为最高位,构成长度为
Figure C20061000136400082
的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
本发明提出的基于循环冗余码的单比特纠错查表电路,包括:
(1)校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,检验器与选择器相连接;
(2)选择器,用于从上述的校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接;
(3)存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和
Figure C20061000136400083
比特的单比特错误位置信息,存储器与比较器相连接;
(4)比较器,用于比较上述内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;
(5)单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
上述电路中的比较器包括:q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接;或q比特序列比较器及与门,将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示。
上述电路中的单比特纠错器包括:
(1)移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;
(2)异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
本发明提出的基于循环冗余码的单比特纠错查表方法及其电路,采用查找表的方法进行单比特错误的定位,在查找表的构建上面利用了CRC运算时错误图样决定运算结果的特征,采用了最优化的分析方法,保证了查找表占用空间的最小化,同时周边电路结构简单,从而实现了占用资源尽可能小,结构简单、高效,易于集成的纠错方法和电路。本发明的优点之一是查找表的构建过程中,对地址信息进行最优化控制,实现其表示位数最小化,极大的减少了查找表所占用的地址空间,降低了存储单元的容量,比传统的定制方法减少了1倍以上。优点之二是匹配信息和错误位置信息表示简单,不需要经过计算,信息通过简单比较、移位即可用,保证了电路的简单实现。优点之三是整体电路模块清晰,结构规整,执行速度快,易于集成,非常适合在集成电路中的应用。
附图说明
图1是本发明方法的流程框图。
图2是本发明方法中的子空间I的获得方法示意图。
图3是本发明方法中的单比特纠错查找表T的生成方法示意图。
图4是本发明方法中的单比特纠错查找表T的结构示意图。
图5是本发明方法中的单比特错误位置信息矩阵D的构建过程示意图。
图6是本发明方法的单比特错误位置信息矩阵D的构建过程中二进制码的映射方法。
图6(a)用于纠正信息位与校验位单比特错误,图6(b)用于只纠正信息位单比特错误。
图7是本发明提出的单比特纠错查表电路示意图。
图8是本发明中的比较器的电路示意图,其中图8(a)用于纠正信息位与校验位单比特错误,图8(b)用于只纠正信息位单比特错误。
图9是本发明中的单比特纠错器的电路示意图。
具体实施方式
本发明提出的基于循环冗余码的单比特纠错查表方法,其流程框图如图1所示,首先对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m};建立地址信息与内容信息一一映射的查找表T;将接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;从行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq;将行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后
Figure C20061000136400101
比特的单比特错误位置信息;当前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;根据单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;重复上述过程,完成所有接收数据段的纠错。
上述方法中,从1到m的校验位序号中提取子空间I的过程框图,如图2所示,首先将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;设待提取的子空间I的元素个数为p,取p的初始值为
Figure C20061000136400102
从矩阵A中任意取p列,构成n×p矩阵,共有Cm p种矩阵组合,对Cm p种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则对子空间I的元素个数p赋以新值,p=p+1,重复上述过程,直至找到任意两行都不相同的矩阵,以得到子空间I。
上述方法中,建立的地址信息与内容信息一一映射的查找表T的结构如图4所示,其建立过程如图3所示,首先将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;从矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;根据单比特错误图样的按行排列的校验结果顺序,构建
Figure C20061000136400103
矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成
Figure C20061000136400104
的矩阵E,作为查找表T的内容信息;将矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。其中构建矩阵D的过程,如图5所示,包括:(1)设矩阵D的大小为
Figure C20061000136400111
其中n为接收数据段的长度;(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。其中将e(x)多项式中非零项的次数映射成二进制代码的方法为:若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码,如图6(a)所示;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为比特,并在该二进制代码前补上“1”,作为最高位,构成长度为的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码,如图6(b)所示。
本发明提出的基于循环冗余码的单比特纠错查表电路示意图,如图7所示,包括:校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,检验器与选择器相连接;选择器,用于从校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接;存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和
Figure C20061000136400114
比特的单比特错误位置信息,存储器与比较器相连接;比较器,用于比较内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
上述电路中的比较器,包括:q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接,如图8(a)所示;或q比特序列比较器及与门,该器件为可选项,若进行信息位以及校验位的单比特纠错,不用该器件,则将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示,如图8(b)所示。
上述电路中的单比特纠错器,如图9所示,包括:移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
本发明提出的基于CRC的单比特纠错查表方法及其电路,核心思想是通过最优化分析,遍历单比特错误情况下所有可能的地址子空间,找到最小的地址子空间,构建地址表示位数尽可能小的查找表,该方法及其电路的工作原理如下:
将接收到的数据进行校验位位长为m的循环冗余校验,得到m比特的校验结果。
若校验结果为零向量,接收的数据校验正确,不需要进行单比特纠错,否则对该结果进行调整,按最优化的抽取子空间I,从中抽取p比特的地址信息,剩余部分构成q比特的待比较信息。从1到m的校验位序号中最优化的提取子空间I的过程是本发明的重点之一。该过程需要考虑最优化的约束,一是要求抽取子空间的元素个数尽可能的小,也就是p值最小,这样才能使查找表对应的地址空间最小化,二是要求按该子空间抽取的结果两两不相等,保证地址空间的唯一性。从一个n×m的校验矩阵中任意取p列,构成n×p的矩阵,共有Cm p种组合。通过调整p的值,总能够在当p大于等于某个值的时候,抽取的这些矩阵组合中,存在至少一个矩阵满足它的任意两行都不相同的条件。该值就是p的最后取值,也就是子空间在满足最优化约束条件下的p的最小取值;对应的最优化子空间I中的元素值为该p值情况下,满足任意两行都不相同的矩阵集合中,某一矩阵中的每一列在原校验A矩阵中的列号。这种最优化的方法能够在保证地址信息的唯一性前提下,让表示地址空间位数的p值达到最小,从而使寻址的操作尽可能简单,同时查找表占用的地址空间达到最小。
利用上述p比特的地址信息,在已预先生成的最优化的查找表T中查找,获得该地址所对应的内容信息。最优化查找表T的生成是本发明的重点之二。查找表T的生成利用了接收到的数据段在CRC运算后的结果直接取决于传送过程中的错误图样的CRC运算结果这一结论,根据对所有可能单比特错误图样e(x)进行校验位位长为m的循环冗余校验而得到的校验矩阵A,依照最优化的子空间I,抽取得到表示位数最小的地址信息矩阵,抽取后A矩阵的剩余部分构成匹配信息矩阵。在把所有可能的单比特错误图样e(x)进行校验位位长为m的循环冗余码校验以得到校验矩阵A的过程中,知道了每行所对应的单比特错误位置信息,对该信息进行处理,按一定规则映射成二进制代码,构建单比特错误位置信息矩阵。把地址信息矩阵作为查找表的地址,匹配信息矩阵和单比特错误位置信息矩阵合并作为和地址信息相对应的查找表的内容信息,构成所占用地址空间最小和内容空间尽可能少的查找表。
将上述的内容信息中的前q比特的匹配信息和q比特的待比较信息相比较,并根据是否要纠正校验位的单比特错误,结合内容信息中的后
Figure C20061000136400121
比特的单比特错误位置信息的最高位,以得到单比特纠错指示。当两者相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当两者不吻合时,意味着发生了多比特错误,无法进行单比特的纠错,因此纠错过程结束。该部分的主体是两个q比特长序列的比较,这在数字电路中非常易于实现。
根据上述单比特错误位置信息和输出的单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错。通常情况下,通信***只需要对信息位的单比特错误进行纠错,而校验位的单比特错误不需要纠正。
本发明提出的基于CRC的单比特纠错查表电路:
其中的校验位位长为m的循环冗余码校验器,在专用集成电路设计中,利用通常的CRC校验单元,其硬件描述语言VHDL或Verilog的源代码可以从很多途径获得,包括一些网站提供的自动生成工具,网上开放的IP库,一些半导体厂商例如Cadence公司提供的硬IP核等。
其中的选择器,根据最优化后确定的子空间I中的元素值,直接用硬连线实现m比特数据的p比特和q比特的划分。
其中的存储器。用普通的通用RAM或ROM实现,预先存储地址空间最优化的查找表T。存储器的地址对应查找表T的地址信息,存储器的地址对应的存储内容相对应于查找表T的内容信息,存储器中空闲的地址空间对应的存储内容置为全“1”或全“0”。
其中的比较器,其主体部分用通用的q比特长序列的比较器,实现两个q比特长的序列的相互比较。根据是否要纠正校验位的单比特错误,决定是否要外加与门。
其中单比特纠错器,利用移位器和异或器的简单组合,根据单比特错误位置信息和单比特纠错指示,完成单比特纠错。
以下以通用成帧规范中校验位位长为16的循环冗余码单比特纠错查表为例,介绍本发明的一个实施例:
对长度为32比特的数据进行校验位位长为16的循环冗余码校验,得到长度为16比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为16,从1到16的校验位序号中提取子空间I,I=i1,i2,i3,…,ip=2,3,4,5,6,7,11,其中p=7。
上述提取子空间I的过程为:将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为16的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为16比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为16,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A;设待提取的子空间I的元素个数为p,取p的初始值为5;从上述矩阵A中任意取p列,构成32×p矩阵,共有G16 p种组合,矩阵组合,对C16 p种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则子空间I的元素个数p赋以新值,p=p+1,重复上述过程,直至找到任意两行都不相同的矩阵,以得到子空间I,这时p=7,I=2,3,4,5,6,7,11。
建立地址信息与内容信息一一映射的查找表T,其过程为:将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为16的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为16比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为16,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A;从矩阵A中,将子空间I中的元素值作为该矩阵的列号,抽取7列比特,得到32×7的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成32×9子矩阵C,作为查找表T的内容信息中的匹配信息;根据单比特错误图样的按行排列的校验结果顺序,构建32×5矩阵D,作为查找表T的内容信息中的单比特错误位置信息,并与子矩阵C合并,E=[C,D],构成32×14的矩阵E,作为查找表T的内容信息;将矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T。
其中构建矩阵D的过程为:设矩阵D的大小为32×5,其中32为接收数据段的长度;校验矩阵A的各行对应了各自相应的单比特错误图样,将各单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数按一定规则映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去16后的值映射成二进制代码,其长度为4比特,再在该二进制代码前补上“1”,作为最高位,构成长度为5的新二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
将接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×16行向量R;若上述R为零向量,则接收的数据正确,若不为零,则从向量R中按子空间I抽取7比特元素,获得1×7的行向量Rp,剩余部分构成1×9的行向量Rq
将行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前7比特的匹配信息和后5比特的单比特错误位置信息;当前7比特的匹配信息与上述行向量Rq相吻合时,若单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错。
除了子空间I和查找表T在过程开始时构建一次之外,重复上述过程,完成所有接收数据段的纠错。

Claims (7)

1. 一种基于循环冗余码的单比特纠错查表方法,包括如下步骤:
(1)对接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到长度为m比特的校验结果,设其中最高校验位对应的序号为1,最低校验位对应的序号为m,从1到m的校验位序号中提取子空间I,I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m},提取子空间I的过程,包括以下步骤:
(1-1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度;
(1-2)设待提取的子空间I的元素个数为p,取p的初始值为
Figure C2006100013640002C1
(1-3)从上述矩阵A中任意取p列,构成n×p矩阵,共有Cm p种矩阵组合,对Cm p种矩阵组合进行遍历搜寻,直至找到任意两行都不相同的矩阵,该矩阵中的每一列在原A矩阵中的列号即为子空间I的元素值;若未找到任意两行都不相同的矩阵,则进行步骤(4);
(1-4)对子空间I的元素个数p赋以新值,p=p+1,重复步骤(2)和(3),直至找到任意两行都不相同的矩阵,以得到子空间I;
(2)建立地址信息与内容信息一一映射的查找表T,建立查找表T的过程,包括以下步骤:
(2-1)将数据传输过程中的所有单比特错误图样e(x)分别进行校验位位长为m的循环冗余码校验,分别得到单比特错误图样的校验结果,校验结果的长度分别为m比特,将所有校验结果按行排列,以比特作为矩阵的基本元素,最高校验位相对应的序号为1,最低校验位相对应的序号为m,以校验位的序号作为矩阵的列号,构成一个n×m的校验矩阵A,其中n为单比特错误图样e(x)的长度:
(2-2)从上述矩阵A中,将上述子空间I中的元素值作为该矩阵的列号,抽取p列比特,得到n×p的子矩阵B,作为查找表T中的地址信息,A矩阵的剩余部分构成n×q子矩阵C,作为查找表T的待定内容信息中的匹配信息,m=p+q;
(2-3)根据上述单比特错误图样的按行排列的校验结果顺序,构建
Figure C2006100013640002C2
矩阵D,作为查找表T的待定内容信息中的单比特错误位置信息,并与上述子矩阵C合并,E=[C,D],构成的矩阵E,作为查找表T的内容信息;
(2-4)将上述矩阵B中的一行作为查找表中的地址,矩阵E中相对应的行作为与该地址相对应的内容,构成查找表T;
(3)将上述接收到的长度为n比特的数据段进行校验位位长为m的循环冗余码校验,得到以比特作为基本元素的1×m行向量R,若该行向量R为零向量,则接收的数据正确,若不为零,则进行以下步骤;
(4)从上述行向量R中按子空间I抽取p比特元素,获得1×p的行向量Rp,剩余部分构成1×q的行向量Rq
(5)将上述行向量Rp作为从上述查找表T中待查找的一个地址信息,根据该地址信息,获得与该地址相对应的内容信息,该内容信息包括前q比特的匹配信息和后
Figure C2006100013640003C1
比特的单比特错误位置信息;
(6)当上述前q比特的匹配信息与上述行向量Rq相吻合时,若进行信息位以及校验位的单比特纠错,则输出单比特纠错指示,若只进行信息位的单比特纠错,则当上述的单比特错误位置信息的最高位为“1”时,输出单比特纠错指示,为“0”时,不输出单比特纠错指示;当上述前q比特的匹配信息与上述行向量Rq不吻合时,结束纠错过程;
(7)根据上述单比特错误位置信息和上述单比特纠错指示,对处在错误位置的比特进行取反操作或者与“1”异或,进行单比特纠错;
(8)重复步骤(3)~(7),完成所有接收数据段的纠错。
2. 如权利要求1所述的方法,其特征在于其中所述的接收到的数据长度为32比特,其中校验位位长为16,提取的子空间I为:I=i1,i2,i3,…,ip=2,3,4,5,6,7,11,其中p=7。
3. 如权利要求1所述的方法,其特征在于其中建立查找表T的过程中构建矩阵D的过程,包括以下步骤:
(1)设矩阵D的大小为
Figure C2006100013640003C2
其中n为接收数据段的长度;
(2)将与上述校验矩阵A的各行相对应的单比特错误图样中“1”所处的位置,即e(x)多项式中非零项的次数映射成二进制代码,作为矩阵D中的行,其行号为该单比特错误图样在校验矩阵A中所对应的行号,构建成矩阵D。
4. 如权利要求3所述的方法,其特征在于其中所述的将e(x)多项式中非零项的次数映射成二进制代码的方法为:若进行信息位以及校验位的单比特纠错,则将所对应的e(x)多项式中非零项的次数直接映射成二进制代码;若只进行信息位的单比特纠错,当单比特错误图样中“1”所处的位置在信息位时,则将该位置所对应的e(x)多项式的次数减去m后的值映射成二进制代码,其长度为
Figure C2006100013640003C3
比特,并在该二进制代码前补上“1”,作为最高位,构成长度为的二进制代码,当单比特错误图样中“1”所处的位置在校验位时,则将该位置所对应的e(x)多项式的次数直接映射成全“0”二进制代码。
5. 一种基于循环冗余码的单比特纠错查表电路,其特征在于该电路包括:
(1)校验位位长为m的循环冗余码校验器,用于对接收到的长度为n比特的数据段进行校验,得到m比特的校验结果,输入到选择器,循环冗余码校验器与选择器相连接;
(2)选择器,用于从上述的校验结果中按子空间I选择p比特,作为地址信息输入到存储器,剩余q比特作为待比较信息,输入到比较器,选择器分别与存储器和比较器相连接,其中所述的子空间I=i1,i2,i3,…,ip,其中1≤p≤m,且i1,i2,i3,…,ip∈{1,2,…,m},m为最低校验位对应的序号,1为最高校验位对应的序号;
(3)存储器,用于存储查找表T,并根据上述的输入的地址信息,得到相应的表中的内容信息,其中包括q比特的匹配信息和比特的单比特错误位置信息,存储器与比较器相连接,其中所述的存储查找表T为地址信息与内容信息映射表;
(4)比较器,用于比较上述内容信息中的匹配信息和待比较信息是否相同,以得到单比特纠错指示,比较器与单比特纠错器相连接;
(5)单比特纠错器,用于根据上述的单比特错误位置信息和单比特纠错指示,完成单比特纠错。
6. 如权利要求5所述的电路,其特征在于其中所述的比较器包括:q比特序列比较器,用于比较上述内容信息中的q比特的匹配信息和待比较信息是否相同,相同输出“1”,不相同输出“0”,q比特序列比较器与与门相连接;或q比特序列比较器及与门,将上述的q比特序列比较器的输出直接作为单比特纠错指示,若只进行信息位的单比特纠错,则将上述的q比特序列比较器的输出与上述的单比特错误位置信息的最高位相与的结果作为单比特纠错指示。
7. 如权利要求5所述的电路,其特征在于其中所述的单比特纠错器包括:
(1)移位器,用于根据上述单比特错误位置信息,将“1”移到错误位置比特所在的位置,其他位为“0”,移位器与异或器相连接;
(2)异或器,根据单比特纠错指示,当该指示为“1”时,将接收到的数据和移位器的输出进行异或操作,完成单比特纠错,为“0”时,不进行异或操作。
CNB2006100013647A 2006-01-20 2006-01-20 一种基于循环冗余码的单比特纠错查表方法及其电路 Withdrawn - After Issue CN100424998C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100013647A CN100424998C (zh) 2006-01-20 2006-01-20 一种基于循环冗余码的单比特纠错查表方法及其电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100013647A CN100424998C (zh) 2006-01-20 2006-01-20 一种基于循环冗余码的单比特纠错查表方法及其电路

Publications (2)

Publication Number Publication Date
CN1829099A CN1829099A (zh) 2006-09-06
CN100424998C true CN100424998C (zh) 2008-10-08

Family

ID=36947271

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100013647A Withdrawn - After Issue CN100424998C (zh) 2006-01-20 2006-01-20 一种基于循环冗余码的单比特纠错查表方法及其电路

Country Status (1)

Country Link
CN (1) CN100424998C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4973939B2 (ja) * 2007-10-10 2012-07-11 ソニー株式会社 受信装置、受信方法、情報処理装置、情報処理方法、及びプログラム
CN102612173B (zh) * 2011-01-21 2016-08-10 芯讯通无线科技(上海)有限公司 多模手机及其通讯模块之间的通讯方法
CN106921395B (zh) * 2015-12-28 2021-09-28 北京忆芯科技有限公司 Ldpc编码方法及其装置
CN108958963A (zh) * 2018-06-01 2018-12-07 杭州电子科技大学 一种基于ldpc和循环冗余校验码的nand flash差错控制方法
CN112622448B (zh) * 2020-12-17 2021-08-13 上海坚芯电子科技有限公司 支持循环加墨的墨盒芯片设计的方法和***
CN113162728B (zh) * 2021-03-25 2022-11-04 展讯半导体(南京)有限公司 极化Polar编码方法、装置、电子设备和存储介质
CN113050519B (zh) * 2021-03-31 2022-04-12 山东商业职业技术学院 一种基于crc16的单比特纠错fpga实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238075A (zh) * 1996-09-27 1999-12-08 艾利森公司 自动请求重发***的检错方案
WO2003100987A1 (en) * 2002-05-24 2003-12-04 Nokia Corporatoin Crc-based error correction
CN1571284A (zh) * 2003-07-14 2005-01-26 北京大学 一种用于纠正数据帧中错误比特的快速循环crc校验方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238075A (zh) * 1996-09-27 1999-12-08 艾利森公司 自动请求重发***的检错方案
WO2003100987A1 (en) * 2002-05-24 2003-12-04 Nokia Corporatoin Crc-based error correction
CN1571284A (zh) * 2003-07-14 2005-01-26 北京大学 一种用于纠正数据帧中错误比特的快速循环crc校验方法

Also Published As

Publication number Publication date
CN1829099A (zh) 2006-09-06

Similar Documents

Publication Publication Date Title
CN100424998C (zh) 一种基于循环冗余码的单比特纠错查表方法及其电路
CN109428605B (zh) 利用校正子解码分量代码的用于g-ldpc码的位翻转解码器
CN101958720B (zh) 缩短Turbo乘积码的编译码方法
CN107154836B (zh) 一种基于fpga的并行循环冗余crc校验方法
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
EP1929637A2 (en) Method and apparatus for error management
JP3429037B2 (ja) Atmセルヘッダにおけるエラー検出および補正方法および装置
US8972838B2 (en) Data transmission detecting device, data transmission detecting method and electronic device thereof
WO2019226253A1 (en) Progressive length error control code
CN106788878A (zh) 一种具有单比特纠错功能的并行crc纠错方法
WO2020001638A1 (zh) 一种提高Turbo译码性能的方法、装置及计算机设备
US11256570B2 (en) Progressive length error control code
CN100433614C (zh) 一种数据包恢复方法
US20180309463A1 (en) Hybrid type iterative decoding method and apparatus
US20150341055A1 (en) Double bit error correction in a code word with a hamming distance of three or four
US6920601B1 (en) Error correction for data communication
KR20200120524A (ko) 메모리 시스템 및 메모리의 동작 방법
CN101355403B (zh) 通用成帧协议中检错纠错的装置及其控制方法
US6968491B1 (en) Generating a check matrix for error correction
CN113595560B (zh) 一种信息纠错方法、装置、设备及存储介质
Liu et al. A modified algorithm for double errors correction in RRNS
US9274880B1 (en) Methods and apparatus for detecting and correcting errors in high-speed serial communications systems
CN110741562A (zh) 向量信令码信道的流水线式前向纠错
CN114666011B (zh) 一种数据处理方法、装置及电子设备
WO1997014224A1 (en) Cyclic code generation and error correction using sum of remainders

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING HANCHEN TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING HUAHUAN ELECTRONIC CO., LTD.

Effective date: 20150716

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150716

Address after: 101500, Beijing, Miyun prosperous South Road, No. 7, No. 1, building 1 to 5

Patentee after: Beijing Han Chen Technology Co.,Ltd.

Address before: Beijing city in Haidian District on the 100085 Street No. 26

Patentee before: Beijing Huahuan Electronics Co.,Ltd.

AV01 Patent right actively abandoned

Granted publication date: 20081008

Effective date of abandoning: 20230908

AV01 Patent right actively abandoned

Granted publication date: 20081008

Effective date of abandoning: 20230908

AV01 Patent right actively abandoned
AV01 Patent right actively abandoned