循环冗余校验码的生成和数据序列发送、校验方法及装置的制作方法

文档序号:7974376阅读:593来源:国知局

专利名称::循环冗余校验码的生成和数据序列发送、校验方法及装置的制作方法
技术领域
:本发明涉及通信及计算机数据传输
技术领域
,尤其涉及一种循环冗余校验码的生成和数据序列发送、校验方法及装置。
背景技术
:在数据传输过程中,由于受传输距离、现场状况、以及各种干扰等诸多因素的影响,使得通信设备之间的数据传输常会发生一些无法预测的错误。为降低这些错误所带来的不利影响,在数据传输时通常采用数据校验的方法来发现和/或纠正,例如,在发送端的待发送数据中插入特定的校验码,在接收端利用接收到的数据中特定的校验码对数据进行校验,进而判断所述数据在传输中是否有误。目前,循环冗余校验(CRC,CyclicRedundancyCheck)码是数字信号传输中使用较普遍的一种差错控制编码。所述CRC校^r的基本原理是发送端将待发数据序列N(x)除以某一特定的CRC生成多项式G(x)(如CRC-5、CRC-8、CRC-16、CRC-32等),得到余数R(x),该余数R(x)为CRC校验码。发送端将该CRC校验码置于所述待发数据序列N(x)之后,并随该数据序列N(x)—同发送。接收端将接收到的数据序列N(x)按照与发送端相同的方法,除以同一生成多项式G(x),得到新的CRC校验码。将该新CRC校验码与原CRC校验码进行比较,如果一致,则认为接收的数据序列正确;反之,则认为该数据在传输中有差错,并要求发送端重新发送。所述CRC校验操作通常采用专用硬件电路实现,但为降低成本,很多系统常利用单片机、微处理器编程或可编程器件来完成。目前常用的CRC校验方法有方法一直接生成法。所述直接生成法是根据所述CRC校验码的生成原理直接计算生成CRC校验码,该方法是将整列待发数据N(x)除以某一特定生成多项式G(x),直到得到最终的结果,生成的余数即所述的CRC校验码。这种方法由于逐位处理,l次只能处理l比特数据,因此处理数据的效率低,且运算量大,不适合对较长数据序列的校验处理。方法二查表法。所述查表法是在CRC表项中查找到与数据序列对应的CRC校验码,然后根据该CRC校验码进行校验。该方法首先要求生成一个与待处理数据序列长度同比特的CRC表项,所述表项中包含所有该位数的数据序列和与之对应的(〕RC校验码。然而,该方法在数据序列较长时,会占用较大的表项资源。例如,如果对20比特的二进制数据序列进行CRC-5校验,则需要的表项的数量为2^-lM个,又因为每一个表项占5bit,因此要占用22Gx5Bit=5MBit的系统存储空间,这对于一般的可编程逻辑器件FPGA是无法满足的。
发明内容有鉴于此,本发明的目的在于提供一种占用的存储单元少,而且能够快速处理较多位数数据序列的循环冗余校验码的生成和数据序列发送、校验方法及装置。为解决上述问题,本发明提供的循环冗余校验码的生成方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余4交验码。其中,所述步骤A具体为当数据序列能够被等分时,将数据序列顺序等分成n比特数据段,建立n比特的循环冗余校验码表项;或当数据序列不能被等分时,将数据序列按n比特为一段顺序分成若干段,将余出的iii比特数据作为最后一段,建立n、ni比特的循环冗余校验码表项。其中,在步骤E中所述将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码具体为当数据序列能够被等分时,将所述n比特数据进行n比特循环冗余校验码表项的查找得到循环冗余校验码;或当数据序列不能被等分时,将所述ni比特数据进行ni比特循环冗余校验码表项的查找得到循环冗余校验码。优选的,所述直到所述数据序列只剩最后一段时具体为直到所述数据序列长度小于等于n比特时。优选的,在所述步骤A与所述步骤B之间还包括设置计数器的初始值为0。其中,在所述步骤D和步骤E之间还包括将计数器值加l。其中,所述直到所述数据序列只剩最后一段时具体为直到当所述计数器值等于所述数据序列所分的数据段的总数减1时。基于上述方案,本发明提供的循环冗余校验码的生成装置,包括寄存器用于将存入的数据序列顺序分段;表项生成单元建立与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,得到循环冗余校验码。其中,当数据序列不能够被等分时,所述查表单元包括第一查表单元、第二查表单元;所述寄存器将存入的数据序列按n比特为一段顺序分成若干段,将余出的nl比特数据作为最后一段,所述表项生成单元建立与所述寄存器中n、r^比特数据段同比特的n、ni比特循环冗余校验码表项,并将所述n、n!比特循环冗余校验码表项分别存入所述第一查表单元、第二查表单元。.其中,所述第一查表单元对所述寄存器中首个数据段进行n比特的循环冗余校验码表项查找,并将得到的r位查找结果发送至所述处理单元;所述第二查表单元对所述寄存器中最后一个数据段进行ni比特的循环冗余校验码表项的查找,得到循环冗余校验码。基于上述方案,本发明提供的含循环冗余校验码的数据序列的发送方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码;F、将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。基于上述方案,本发明提供的含循环冗余校验码的数据序列的发送装置,包括寄存器用于将存入的数据序列顺序分段;表项生成单元生成与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;所述查表单元对所述寄存器中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至发送单元;所述发送单元将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。基于上述方案,本发明提供的对接收数据序列进行循环冗余校验的方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码;F、将所述得到的循环冗余校验码与原循环冗余校验码进行模二加,根据其结果对该数据序列进行校验。其中,所述根据其结果对该数据序列进行校验包括当所得结果为0时,则认为所述待处理的数据序列无误;当所得结果为1时,则认为所述待处理凄t据序列有误。基于上述方案,本发明提供的对接收到的含有循环冗余校验码的数据序列进行循环冗余校验的装置,包括寄存器用于将存入的数据序列顺序分段;表项生成单元生成与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;所述查表单元对所述寄存器中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至校验单元;所述校验单元将所述得到的循环冗余校验码与原循环冗余校验码进行模二加,根据其结果对该数据序列进行校验,并将校-验结果输出。与现有技术对比,本发明首先将待处理数据序列进行分组,分成含有少量比特数的数据段,再通过对分组数据进行查表、及简单的模二加运算,从而进行CRC校验。通过本发明能够减小系统的运算量,进而提高了处理速度,尤其适用于位数较多的数据序列;同时,本发明只对分组后的数据段进行CRC表项的查询,由于分段数据的比特数不大,为310位,所以所述CRC表项占用的存储空间会很小,这对于尤其采用可编程器件来进行CRC校验而言,还能够节省系统的存储资源。图1为采用直接生成法生成CRC校验码的方法流程图2为本发明生成CRC校验码的方法实施例一的流程示意图3为本发明生成CRC校验码的方法实施例二的流程示意图4为本发明生成CRC校验码的方法实施例三的流程示意图5为本发明生成CRC校验码的方法实施例四的流程示意图6为本发明CRC冲L睑码生成装置结构示意图7为本发明含有CRC校验码的发送数据序列的发送装置结构示意图8为本发明用于对接收数据进行CRC校验的装置结构示意图。具体实施例方式本发明提供的循环冗余校验码的生成方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码。其中,所述循环冗余校验(以下简称CRC)码表项包括长度为相同比特的所有数据段及其对应的CRC校验码;所述CRC校验码可根据特定的CRC生成多项式采用直接生成法生成。请参阅图1,为采用直接生成法生成CRC校验码的方法流程图,设待处理数据序列g(x)为m位,该方法包括步骤101:将所述寄存器中的值置零。步骤102:在待处理的m比特的数据序列g(x)后添加r个零后,按照高低位顺序将该数据序列的一段数据存入所述寄存器中。其中所述r值等于要生成CRC校验码的位数,同时还根据所述r值确定所述生成多项式G(x)。例如当r-5时,则选定CRC-5生成多项式。步骤103:判断预处理的数据序列g(x)的位数是否小于等于r。当大于r时,执行步骤104;否则,执行步骤107。步骤104:判断所述寄存器首位是否为1如果为1,则执行步骤105;否则,执行步骤106。步骤105:将所述寄存器中的预处理的数据序列与所述生成多项式G(x)进行模二加。步骤106:将所述寄存器中的数据序列左移l位,读入继该数据段后的一个新的数据并置于寄存器位0的位置。返回至步骤103。步骤107:判断预处理的数据序列g(x)的位数是否等于r如果等于r,执行步骤108;否则,所述寄存器中的数值即为CRC校验码。步骤108:将所述寄存器中的预处理的r位数据与所述生成多项式G(x)进行模二加,所得结果为CRC校验码。下面结合附图对本发明CRC校验码的生成方法的实施方式做进一步的详细阐述。请参阅图2,为本发明CRC校验码的生成方法实施例一的流程示意图,本实施例一的具体步骤是设待处理的数据为m位二进制序列g(x),CRC校验生成多项式为r阶的G(x)。步骤201:将m位待校验数据序列g(x)按照n比特一组,从首位开始分成若干个数据段,所述比特n的取值范围优选为3~10。步骤202:利用直接生成法生成n比特的CRC校验码表项。所述n比特的CRC检验码表项包括所有n比特二进制数据序列及与其对应的CRC检验码,所述校验码是根据特定CRC生成多项式采用直接生成法计算得到。具体为,将n比特的"0""1"组成的二进制数据序列通过排列组合得到所有n比特的二进制数据序列,即2n个n比特的二进制凝:据序列。再将2"个11比特的二进制数据序列分别通过直接生成法,得到与之相对应的CRC校验码。将所述生成的2"个CRC校验码与其对应的数据序列填入所述CRC校验码表项中,得到一个二维的n比特CRC校验码表项。例如,当n为4比特时,如果采用5阶的CRC生成多项式,按照上述方法则可生成一个4比特的CRC-5校验码表项,如下表1所示表14比特CRC-5校验码表项<table>tableseeoriginaldocumentpage15</column></row><table>步骤203:将所述m比特数据序列g(x)末尾添加r个零,得到m+r比特的数据序列。将该m+r比特的数据序列写入m+r位的寄存器中。步骤204:判断g(x)位数是否等于n如果不等于n,执行步骤205;否则,执行步骤207。步骤205:对首个n比特数据段进行n比特CRC校验码表项的查询。从g(x)高位依次取n比特数据,在所述n比特CRC校验码表项中查找与该数据对应的CRC校验码,所述该CRC校验码数值位长为r比特。步骤206:将该查找结果与进行^f莫二加,并将查找到的所述r比特CRC校验码与所述数据序列g(x)的第二数据段首位起的r位数据进行异或运算,将所得结果取代所述r位数据;并将该数据序列左移n位。返回至步骤204。步骤207:根据所述g(x)中的n位数据查询n比特CRC校验码表项。所得结果即所述n比特数据段对应的CRC校验码。请参阅图3,为本发明方法实施例二的流程示意图。当所述m位待处理的二进制数据序列g(x)不能被n整除时,此时设商为a,所得余数为n,。则可按照下述实施例二的方法进行处理,本发明对凄t据序列进行CRC才史-验的方法实施例二为设待处理的数据段为m位二进制序列g(x),CRC校验生成多项式为r阶的G(x)。步骤301:将m位待校验数据序列g(x)按照n比特为一组从首位开始分成若干个数据段,所述比特分组n的取值范围优选为3~10。由于m/n的余数为ni,则所述m位待校验数据序列的最后一组为n!比特数据段。例如,对于19比特的数据序列,如果按照4比特为一组进行分组,则所述19位的数据序列的最后一组为w=3比特。步骤302:利用直接计算法生成n、ni比特的CRC校验码表项。所述n、m比特的CRC检验码表项包括所有n、rM立二进制数据序列及与其对应的CRC检验码,所述CRC校验码是根据特定CRC生成多项式采用直接生成法计算得到。步骤303:将所述m位数据序列末尾添加r个零,得到m+r比特的数据序列。将该m+r比特的数据序列写入m+r位的寄存器中。步骤304:判断g(x)位数是否小于n如果否,执行步骤305;否则,执行步骤307。步骤305:对首个n比特数据段进行n比特CRC校验码表项的查询。从g(x)高位依次取n比特数据,在所述n比特CRC校验码表项中查找与该数据对应的CRC校验码,所述该CRC校验码数值位长为r比特。步骤306:将该查找结果与进行模二加,并将查找到的所述r比特CRC校验码与所述数据序列g(x)的第二数据段首位起的r位数据进行异或运算,将所得结果取代所述r位数据;并将该数据序列左移n位。返回至步骤304。步骤307:根据所述g(x)中的ni位数据查询所述ni比特CRC校验码表项。得到与所述ni位数据段对应的CRC校验码。请参阅图4,为本发明所述CRC校验码生成方法的实施例三的流程示意图,当所述m位待处理的二进制数据序列g(x)能被n整除时,此时设商为a。则还可按照下述实施例三的方法进行处理,本发明对数据序列进行CRC校验的方法实施例三为设待处理的数据段为m位二进制序列g(x),CRC校验生成多项式为r阶的G(x)。步骤401:将m位待校验数据序列g(x)按照n比特一组从首位开始分成若干个数据段,所述比特分组n的取值范围优选为3~10。步骤402:利用直接计算法生成n比特的CRC校验码表项。所述n比特的CRC检验码表项包括所有n位二进制数据序列及与其对应的检验码,所述校验码是根据特定CRC生成多项式采用直接生成法计算得到。步骤403:将所述m位数据序列末尾添加r个零,得到m+r比特的数据序列。将该m+r比特的数据序列写入m+r位的寄存器中。步骤404:判断计数器是否等于a-1如果否,执行步骤405;否则,执行步骤407。步骤405:对首个n比特数据段进行n比特CRC校验码表项的查询。从g(x)高位依次取n比特数据,在所述n比特CRC校验码表项中查找与该数据对应的CRC校验码,所述该CRC校验码数值位长为r比特。步骤406:将该查找结果与进行^t二加,并将查找到的所述r比特CRC校验码与所述数据序列g(x)的第二数据段首位起的r位数据进行异或运算,将所得结果取代所述r位数据;并将该数据序列左移n位。所述计数器加1。返回至步骤404。步骤407:根据所述g(x)中的n位数据查询n比特CRC校验码表项。所得结果即所述n比特数据段对应的CRC校验码。请参阅图5,为本发明所述CRC校验码的生成方法实施例四的流程示意图。当所述m位待处理的二进制数据序列g(x)不能被n整除时,此时设商为a,所得余数为n。则还可"fe照下述实施例四的方法进行处理,本发明对数据序列进行CRC校验的方法实施例四为设待处理的数据段为m位二进制序列g(x),CRC校验生成多项式为r阶的G(x)。步骤501:将m位待校验数据序列g(x)按照n比特为一组从首位开始分成若干个数据段,所述比特分组n的取值范围优选为3-10。由于m/n的余数为ni,则所述m位待校验数据序列的最后一组为ni比特数据段。设分成a组。步骤502:利用直接计算法生成n、n,比特的CRC校验码表项。所述n、n!比特的CRC检验码表项包括所有n、ni位二进制数据序列及与其对应的检验码,所述校验码是根据特定CRC生成多项式采用直接生成法计算得到。步骤503:将所述m位数据序列末尾添加r个零,得到m+r比特的数据序列。将该m+r比特的数据序列写入m+r位的寄存器中。步骤504:设置计数器的初始值为O。步骤505:判断所述计数器是否等于a如果否,执行步骤506;否则,执行步骤508。步骤506:对首个n比特数据段进行n比特CRC校验码表项的查询。从g(x)高位依次取n比特数据,在所述n比特CRC校验码表项中查找与该数据对应的CRC校验码,所述该CRC才交-验码数^直位长为r比特。步骤507:将该查找结果与进行模二加,并将查找到的所述r比特CRC校验码与所述数据序列g(x)的第二数据段首位起的r位数据进行异或运算,将所得结果取代所述'位数据;并将该数据序列左移n位。将所述计数器值加1。返回至步骤504。步骤508:根据所述g(x)中的n!位数据查询所述比特CRC校验码表项。得到与所述ni位数据段对应的CRC校验码。图6为本发明CRC校^r码生成装置结构示意图,基于上述方案,本发明提供的CRC校验码的生成装置,包括寄存器601、表项生成单元602、查表单元603、处理单元604、判断单元605。其中,寄存器601用于将存入的数据序列顺序分段;表项生成单元602建立与所述寄存器601中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元603;所述查表单元603对所述寄存器601中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元604;所述处理单元604将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器601中所述r位数据;所述寄存器601将所述数据序列的首个数据段溢出;判断单元605对所述寄存器601中剩下的数据段总数进行判断,直到所述寄存器601中的数据序列只剩最后一段时,所述查表单元603将所述寄存器601中该段数据进行相应的循环冗余校验码表项的查找,得到循环冗余校验码。当数据序列不能够被等分时,所述寄存器601将存入的数据序列按n比特为一段顺序分成若干段,将余出的nl比特数据作为最后一段。此时,所述查表单元603分为第一查表单元、第二查表单元。所述表项生成单元建立与所述寄存器中n、rM比特数据^歐同比特的n、ni比特循环冗余校验码表项后,并将所述n、n!比特循环冗余校验码表项分别存入所述第一查表单元、第二查表单元。其中,当数据序列不止一段时,选择所述第一查表单元对所述寄存器中首个数据段进行n比特的CRC校验码表项查找;当数据序列只剩最后一个数据段时,则选择第二查表单元对所述最后一段数据进行查表,查表结果即为最终的CRC校验码。本发明提供的含循环冗余校验码的数据序列的发送方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码;F、将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。基于上述方案,本发明提供的含循环冗余校验码的数据序列的发送装置,如图6示,包括寄存器601、表项生成单元602、查表单元603、处理单元604、判断单元605、,发送单元701。其中,寄存器601用于将存入的数据序列顺序分段;表项生成单元602建立与所述寄存器601中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元603;所述查表单元603对所述寄存器601中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元604;所述处理单元604将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器601中所述r位数据;所述寄存器601将所述数据序列的首个数据段溢出;判断单元605对所述寄存器601中剩下的数据段总数进行判断,直到所述寄存器601中的数据序列只剩最后一段时,所述查表单元603将所述寄存器601中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至发送单元701;所述发送单元701将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。本发明提供的对接收数据序列进行循环冗余校验的方法,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余4交-睑码;F、将所述得到的循环冗余校验码与原循环冗余校验码进行模二加,根据其结果对该数据序列进行校验。其中,所述根据其结果对该数据序列进行校验包括当所得结果为0时,则认为所述待处理的数据序列无误;当所得结果为1时,则认为所述待处理数据序列有误。基于上述方案,本发明提供的对接收到的含有CRC校验码的数据序列进行CRC校验的装置,如图8示,包括寄存器601、表项生成单元602、查表单元603、处理单元604、判断单元605、接收单元801、校验单元802。其中,寄存器601用于将从接受单元801接收来的数据序列顺序分段;表项生成单元602建立与所述寄存器601中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元603;所述查表单元603对所述寄存器601中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元604;所述处理单元604将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器601中所述r位数据;所述寄存器601将所述数据序列的首个数据段溢出;判断单元605对所述寄存器601中剩下的数据段总数进行判断,直到所述寄存器601中的数据序列只剩最后一段时,所述查表单元603将所述寄存器601中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至检验单元802;所述校验单元802将所述得到的循环冗余校验码与原循环冗余校验码进行模二加,根据其结果对该数据序列进行校验,并将校验结果输出。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。权利要求1.一种循环冗余校验码的生成方法,其特征在于,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丢弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码。2、如权利要求1所述的循环冗余校验码的生成方法,其特征在于,所述步骤A具体为当数据序列能够被等分时,将数据序列顺序等分成n比特数据段,建立n比特的循环冗余校验码表项;或当数据序列不能被等分时,将数据序列按n比特为一段顺序分成若干段,将余出的ni比特数据作为最后一段,建立n、ni比特的循环冗余校验码表项。3、如权利要求2所述的循环冗余校验码的生成方法,其特征在于,在步骤E中所述将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码具体为当数据序列能够被等分时,将所述n比特数据进行n比特循环冗余校验码表项的查找得到循环冗余校验码;或当数据序列不能被等分时,将所述ni比特数据进行ni比特循环冗余校验码表项的查找得到循环冗余校验码。4、如权利要求3的循环冗余校验码的生成方法,其特征在于,所述直到所述数据序列只剩最后一段时具体为直到所述数据序列长度小于等于n比特时。5、如权利要求2所述的循环冗余校验码的生成方法,其特征在于,在所述步骤A与所述步骤B之间还包括设置计数器的初始值为0。6、如权利要求5所述的循环冗余校验码的生成方法,其特征在于,在所述步骤D和步骤E之间还包括将计数器值加1。7、如权利要求6所述的循环冗余校验码的生成方法,其特征在于,所述直到所述数据序列只剩最后一段时具体为直到当所述计数器值等于所述数据序列所分的数据段的总数减1时。8、一种循环冗余校验码的生成装置,其特征在于,包括寄存器用于将存入的数据序列顺序分段;表项生成单元建立与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;所述查表单元对所述寄存器中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,得到循环冗余校验码。9、如权利要求8所述的循环冗余校验码的生成装置,其特征在于,当数据序列不能够被等分时,所述查表单元包括第一查表单元、第二查表单元;所述寄存器将存入的数据序列按n比特为一段顺序分成若干段,将余出的ni比特数据作为最后一段,所述表项生成单元建立与所述寄存器中n、n!比特数据段同比特的n、化比特循环冗余校验码表项,并将所述n、r^比特循环冗余校验码表项分别存入所述第一查表单元、第二查表单元。10、如权利要求9所述的循环冗余校验码的生成装置,其特征在于,所迷第一查表单元对所述寄存器中首个数据段进行n比特的循环冗余校验码表项查找,并将得到的r位查找结果发送至所述处理单元;所述第二查表单元对所述寄存器中最后一个数据段进行ni比特的循环冗余校验码表项的查找,得到循环冗余校验码。11、一种含循环冗余校验码的数据序列的发送方法,其特征在于,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丟弃;E、重复步骤B至D;直到所述数据序列只剩最后一^a时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码;F、将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。12、一种含循环冗余纟t验码的数据序列的发送装置,其特征在于,包括寄存器用于将存入的数据序列顺序分段;表项生成单元生成与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;所述查表单元对所述寄存器中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至发送单元;所述发送单元将所述循环冗余校验码顺序添加在所述数据序列之后,随该数据序列一同发送。13、一种对接收数据序列进行循环冗余校验的方法,其特征在于,包括A、将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B、对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C、将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D、将所述数据序列的首个数据段丟弃;E、重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码;F、将所述得到的循环冗余校验码与原循环冗余校-睑码进行模二加,根据其结果对该数据序列进行校验。14、如权利要求13所述的循环冗余校验的方法,其特征在于,所述根据其结果对该数据序列进行校验包括当所得结果为()时,则认为所述待处理的数据序列无误;当所得结果不为0时,则认为所述待处理数据序列有误。15、一种对接收到的含有循环冗余校验码的数据序列进行循环冗余校验的装置,其特征在于,包括寄存器用于将存入的数据序列顺序分段;表项生成单元生成与所述寄存器中数据段同比特的循环冗余校验码表项,并将该表项存入查表单元;所述查表单元对所述寄存器中首个数据段进行同比特的循环冗余校验码表项的查找,并将得到相应的r位查找结果发送至处理单元;所述处理单元将所述查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果按对应位取代寄存器中所述r位数据;所述寄存器将所述数据序列的首个数据段溢出;判断单元对所述寄存器中剩下的数据段总数进行判断,直到所述寄存器中的数据序列只剩最后一段时,所述查表单元将所述寄存器中该段数据进行相应的循环冗余校验码表项的查找,并将得到的循环冗余校验码发送至校验单元;所述校验单元将所述得到的循环冗余校验码与原循环冗余校验码进行模二加,根据其结果对该数据序列进行校验,并将校验结果输出。全文摘要本发明公开了一种循环冗余校验码的生成方法,包括A.将数据序列顺序分段,建立与所分数据段同比特的循环冗余校验码表项;B.对首个数据段进行同比特的循环冗余校验码表项的查找,得到r位查找结果;C.将该查找结果与第二数据段首位起的r位数据进行模二加,并将所得结果取代所述r位数据;D.将所述数据序列的首个数据段丢弃;E.重复步骤B至D;直到所述数据序列只剩最后一段时,将该段数据进行相应的循环冗余校验码表项的查找得到循环冗余校验码。通过本发明能够快速处理包括位数较多的数据序列。文档编号H04L1/22GK101207467SQ200610165418公开日2008年6月25日申请日期2006年12月19日优先权日2006年12月19日发明者张文红申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1