一种循环冗余校验码生成装置及其构建、生成校验码的方法

文档序号:7526058阅读:182来源:国知局

专利名称::一种循环冗余校验码生成装置及其构建、生成校验码的方法
技术领域
:本发明涉及传输数据校验领域,尤其涉及采用并行电路实现低成本的CRC校验码生成技术。
背景技术
:CRC(CyclicRedundancyCode,循环冗余校验码)是数据通信中最常用的一种差错校验码,它能够发现传输数据中的单双位错误、奇数个错误,以及长度小于CRC级数的连续错误。循环冗余校验方法的原理如下任意一个由二进制位串组成的代码都可以和一个系数4又为'0,和'1,取值的多项式——对应,例如代码110111对应的多项式为义5+;^4+义2+义+1。设发送方要发送的数据对应的多项式为;发送方和接收方约定一个特征多项式g(x),设该特征多项式的最高次幂为R;在要发送的数据的末尾添加R个0,则其相应的多项式为M(x)=;c,(x);用M(jc)除以g(jc),得到商g(x)和余式7(jc),则M(x卜20)gO)+及0);余式i(x)所对应的码值按位取反即为CRC校验码值。令r(x)=+,发送方发送r(x)所对应的l丈据;设接收方接收到的数据对应的多项式为r'(x),将ro)除以g(x),若余式为0(或者是设定的常数),则接收方认为正确接收到发送方发送的数据;否则,认为接收错误。从而达到对接收的信息流进行校验的目的。通过硬件电路得到CRC校验码,可以加快CRC校验码的计算速度。通常可以采用串行、或者并行两种电路来生成CRC校验码。如图1所示的特征多项式为gW=jc16+x12+jc5+1、生成16位CRC校验码的串行电路,其中,N0-N15为反相器(逻辑取反电路),在所有信息流都从输入端串行输入后,寄存器(或触发器)R15-R0的输出值即为余式,按位取反后,就得到16位的CRC校验码。而如图2所示的特征多项式g(jc)=x16+x12+1、生成16位CRC校验码的8级并行电路(即CRC-CCITT16并行8级电路),其中,N0-N15为反相器(逻辑取反电路),Y0-Y15为异或门,D0-D7为并行输入端,寄存器(或触发器)R15-R0的输出值即为余式,按位取反后,就得到16位的CRC校验码。根据CCITT(InternationalConsultativeCommitteeforTelephoneandTelegraph,国际电话电报咨询委员会)规定,生成CRC-CCITT16类型校验码的现有技术的并行电路中触发器的复位值全为1。由于图2所示的电路可以从D0-D7并行输入信息流,则该并行电路生成CRC校验码的速度可以是图1中电路的8倍。因此,并行电路生成CRC校验码的速度要大于串行电路。本发明的发明人发现,现有技术的生成CRC校验码的并行电路采用的反相器较多、硬件成本较高、占用电路空间较大。
发明内容本发明实施例提供了一种循环冗余校验码生成装置及其构建、生成校验码的方法,用以降低生成CRC校验码的并行电路的成本。一种循环冗余校验码生成装置,所述循环冗余校验码的特征多项式为g0c)=x"+A£、?+l,其中"为自然数,^取值为0或1,所述装置具有f个并行输入端/。-^,所述装置包括w个反相器JV。-A^、w个触发器i。-J^,以及《个异或门iW,;所述m由异或关系式AW。-中的第一取反数目所确定;所述异或关系式M及。-iVOi^分别为计算c。(()-c;一,w的等式右边所等效的异或关系式;所述异或关系式指的是至多包含异或和取反关系运算符的关系式;计算c。w-cj"的等式根据第一递推公式确定L((c,1ja&,("卜"-1)其中,r为[2"]之间的整数;数据元素Z)。-Z)m分别对应所述装置的输入端/。-/f—,;在iVA-i中若有w个数据元素在异或关系式iVOi。-MMn—,中取反,则所述第一取反数目为w;并柳个反相器at。-分别对应各取反的数据元素;所述第一递推公式中的c。(1)-值,由第二公式确定fe—In)&=卜"-1)所述第二公式中的C。-分别对应触发器io-i_,的输出端;若在异或关系式iVO及。-iVOd中存在z^,则A对应的反相器的输入端与A对应的输入端/p相连;所述;?为取值范围为0到Nl的整数;所述《由异或关系式M)及。-MM^中多数据元素异或关系式的个数确定;并异或门y。-r^分别对应各多凄t据元素异或关系式;所述多凄t据元素异或关系式指的是至少具有一个异或关系运算符的异或关系式;所述反相器iv。-1—,的输出端、触发器&-及_,和异或门y。-的连接根据异或关系式mm。-m)凡一确定。所述反相器iv。-wM—,的输出端、触发器i。-和异或门y。-的连接根据异或关系式M^。-Mi^确定,具体为若MA为多数据元素异或关系式,则对应的异或门的输出端与触发器&的输入端相连,该异或门输入端的连接则根据确定;若不是多数据元素异或关系式,则触发器&输入端的连接则根据甜i,确定;10所述为取值范围为0到w-l的整数。与对应的异或门的输入端的连接根据MA.确定,具体为若M^.中存在q,则该异或门输入端与触发器i,.的输出端相连;所述/为取值范围为0到w-l的整数;若中存在取反的A,则该异或门输入端与A对应的反相器的输出端相连;若jvc^.中存在没有取反的a,则该异或门输入端与所述装置的输入端a相连;所述/为取值范围为0到f-l的整数。所述触发器ij输入端的连接根据M^/角定,具体为若iV6^中存在q,则触发器ij输入端与触发器《的输出端相连;所述z'为取值范围为0到w-l的整数。所述触发器及。-i^的复位值全部为0、或者全部为1。一种通过上述装置生成循环冗余校验码的方法,包括将信息码从所述装置的并行输入端/。-/M并行输入;在所有的信息码从所述输入端输入后,各触发器的输出组成所述信息码的循环冗余校验码。一种构建循环冗余校验码生成装置的方法,所述循环冗余校验码的特征多项式为^)=,+|>4+1,其中"为自然数,^取值为0或1,所述装置具有f个并行输入端/。-/,_,,所述方法包括确定所述装置的反相器的个数m;所述m由异或关系式M^。-M9i^i中的第一取反数目所确定;所述异或关系式M)i。-iVO^—,分别为计算c。w-c^w的等式右边所等效的异或关系式;所述异或关系式指的是至多包含异或和取反关系运算符的关系式;计算c。(')-c^(0的等式根据第一递推公式确定<formula>formulaseeoriginaldocumentpage12</formula>其中,r为[2"]之间的整数;数据元素D。-i^分别对应所述装置的输入端/。-/,_"在ZVA一中若有w个数据元素在异或关系式iVOi。-M)i"—,中取反,则所述第一取反数目为w;并m个反相器W。-iV^分别对应各取反的数据元素;所述第一递推/>式中的C。(1)画C值,由第二公式确定*—l((C"aa,("1~"—1)所述第二/>式中的c。-C_,分别对应触发器i。-i—,的输出端;若在异或关系式iVOi。-M^_,中存在Dp,则&对应的反相器的输入端与^对应的输入端/p相连;所述/为取值范围为0到的整数;确定所述装置的异或门的个数《;所述《由异或关系式ivOi。-A^i^中多数据元素异或关系式的个数确定;并《个异或门r。-y^分别对应各多数据元素异或关系式;所述多数据元素异或关系式指的是至少具有一个异或关系运算符的异或关系式;根据所述异或关系式肌w。-确定所述反相器iv。-《—,的输出端、触发器&-i_,和异或门r。-^的连接。一种循环冗余校验码生成装置,具有8个并行输入端10-17,包括4个反相器N0-N3、16个异或门Y0-Y15、16个触发器R0-R15;所述反相器N0-N3的输入端分别与所述输入端10-13相连;所述异或门Y0-Y15的输出端分别与触发器R0-R15的输入端相连;异或门Y0的各输入端分别与反相器N3的输出端、输入端17、触发器R8的输出端、触发器R12的输出端相连;异或门Yl的各输入端分别与反相器N2的输出端、输入端16、触发器R9的输出端、触发器R13的输出端相连;异或门Y2的各输入端分别与反相器Nl的输出端、输入端15、触发器R10的输出端、触发器R14的输出端相连;异或门Y3的各输入端分别与反相器N0的输出端、输入端14、触发器Rll的输出端、触发器R15的输出端相连;异或门Y4的各输入端分别与输入端13、触发器R12的输出端相连;异或门Y5的各输入端分别与输入端I2、13、17,以及触发器R8、R12、R13的输出端相连;异或门Y6的各输入端分别与输入端I1、12、16,以及触发器R9、R13、R14的输出端相连;异或门Y7的各输入端分别与输入端I0、II、15,以及触发器RIO、R14、R15的输出端相连;异或门Y8的各输入端分别与输入端10、14,以及触发器RO、Rll、R15的输出端相连;异或门Y9的各输入端分别与反相器N3的输出端、触发器R1的输出端、触发器R12的输出端相连;异或门Yl0的各输入端分别与反相器N2的输出端、触发器R2的输出端、触发器R13的输出端相连;异或门Yll的各输入端分别与反相器N1的输出端、触发器R3的输出端、触发器R14的输出端相连;异或门Y12的各输入端分别与反相器N0的输出端、输入端B、17,以及触发器R4、R8、R12、R15的输出端相连;异或门Y13的各输入端分别与输入端12、16,以及触发器R5、R9、R13的输出端相连;异或门Y14的各输入端分别与输入端I1、15,以及触发器R6、RIO、R14的输出端相连;异或门Y15的各输入端分别与输入端IO、14、17,以及触发器Rll、R15的输出端相连。端增加了反相器,从而可以将并行电路中的每个触发器连接的反相器去掉,从而节省了大量的反相器,筒化了CRC校验码并行电路、降低了硬件成本。图1为现有技术的生成16位CRC校验码的串行电路示意图2为现有技术的生成16位CRC校验码的8级并行电路示意图3为本发明实施例的生成16位CRC校验码的串行电路示意图5为本发明实施例的生成CRC校验码的并行电路构建方法流程图。具体实施例方式具体方案,再由该并行电路推广至其它并行电路。CRC校验码的特征多项式可以表示为=x"+艺&^+1,其中w为自然Ar=l数,^取值为0或1。当w取值为16,h画^、^-6u、613画615取值为0,616、612、65取值为1时,则CRC校验码的特征多项式为g(;c)-;c"+^+xS+l,即CRC-CCITT16类型的校验码的特征多项式。如图3所示,本发明实施例提供的对应的一个具体生成CRC-CCITT16类型校验码的串行电路包括3个触发器组(DG,-DG3)、异或门(Y1和Y2)、反相器(N0)、异或非门(Y0)。其中DG,对应于单项式x5,DG2对应于单项式x12,DG;对应于单项式x16。触发器组中的每个触发器的复位值根据实际情况对CRC校验码的定义可以为140,也可以为1。例如,对于本发明实施例生成CRC-CCITT16类型的校验码的电路中的触发器的复位值为0。DG,触发器组中的触发器个数为5;DG2触发器组中的触发器个数为12-5=7;DG3触发器组中的触发器个数为16-12=4;在DG,DG3触发器组之间串接有异或门Yl、Y2。并且DG,-DG3触发器组的串接顺序按照触发器组的序号进行串接的,也就是,串接顺序为DG。DG2、DG3。反相器,其输出端与DG,触发器组的输入端相连。异或非门,其一个输入端为所述CRC校验码生成电路的输入端,另一个输入端与DG3触发器组的输出端相连,其输出端与所述反相器的输入端、以及各异或门(Y1和Y2)的一个输入端相连。信息码从如图3所示的CRC校验码生成电路的输入端,即异或非门的一个输入端依次输入,则在所有的信息码从所述输入端输入后,触发器组的各触发器的输出即为信息码的余式取反后的CRC校验码。由于图3所示的电路在输入端增加了一个反相器,则可以去掉各触发器输出端连接的反相器,从而相比于现有技术的串行电路节省了硬件资源。下面说明本发明实施例图3所示的CRC校验码生成电路输出的CRC校验码与现有技术图1所示的CRC校验码生成电路输出的CRC校验码相同在如图3所示的电路中,假设各触发器的复位值(即初始值)为CO-C15,由于各触发器的复位值与现有技术图1所示的触发器的复位值相反,则图1电路中的各触发器的初始值为^5-^。经过一个时钟周期后,信息码的第一个数据DO输入到如图1、图3所示的电路中。图1、图3所示的电路中的各触发器输出值如表1所示表1<table>tableseeoriginaldocumentpage16</column></row><table>从上表可以直接看出,经过一个时钟周期后,图1电路中的触发器R1-R4、R6-R11、以及R13-R15输出的值与图3电路中的触发器R1-R4、R6-R11、以及R13-R15输出的值相反。而图1电3各中的触发器R0输出值为C15AD0,图3电路中的触发器RO输出值为C15八D0。根据公式AAB-^^,则有C15AiX^C15AZ)0,因此图1电路中的RO与图3电路中的RO输出值也相反。同理,图1电路中的R5、R12的输出值也与图3电^各中的R5、R12的输出值相反。因此,图1电路中的R0-R15输出值经反相器反向后即与图3电路的R0-R15输出值相同。再经过一个时钟周期后,重复上个时钟周期的推导过程,可发现图1电路中R0-R15输出值与图3电路的R0-R15输出值仍相反。依次类推,经过N个时钟周期,串行输入了N位数据流后,图1电路中R0-R15输出值与图3电路的R0-R15输出值仍相反。而图1电路中R0-R15输出值经反相器反向后即与图3电路的R0-R15输出值相同,从而图1和图3电路得到相同的CRC校验码。因此,本发明实施例提供的如图3所示的电^各生成的CRC4交-睑码与现有技术如图1所示的电路生成的CRC校验码相同。类似的,对于采用本发明实CRC校验码相同,此处不再对各种电路进行——证明,本领域技术根据本发明实施例公开的技术内容可以轻而易举实现。由图3所示的串行电路可以推导出相应的并行电路图3所示的串行电路在第1、2、4、8时钟周期后触发器R0-R15输出值如表2所示表2<table>tableseeoriginaldocumentpage17</column></row><table>上述表2中包括"时钟"项、"输入"项,以及R0-R15项。其中,"时钟"项为0的横排中"C0-C15"表示R0-R15触发器在TO时刻的输出值(若TO为信息码输入的起始时刻,则C0-C15分别等于触发器R0-R15的复位值);"时钟,,项为1、2、4、8的横排中分别表示串行电路R0-R15触发器在T0之后的1、2、4、8时钟周期后的输出;"输入"项中的数据为在TO之后的第1、2、4、8时钟周期,串行电路输入端的数据;R0-R15项中的数据为在T0之后的第1、2、4、8时钟周期后,各R0-R15触发器的输出结果。位于一个单元格中的各数据元素之间的关系为"异或,,例如,表2的第3行、第3列的单元格中包括凄t据元素"DO"和"C15",则RO的输出为D0AC15。对于表中的D0-D7为依次输入到串行电路的输入数据。根据表2中的第2时钟周期触发器R0-R15的输出结果即可构建图3所示的串行电路所对应的2级并行电路;根据表2中的第4时钟周期触发器R0-R15的输出结果即可构建图3所示的串行电路所对应的4级并行电路;表2中的第8时钟周期触发器R0-R15的输出结果即可构建图3所示的串行电路所对应的8级并行电路。例如,才艮据表2中的第8时钟周期后触发器R0-R15的输出结果(即表2中第6行的数据)构建的如图4所示的8级并行电路中。该8级并行电路包括8个并行输入的端口,则可以同时分别输入数据D0-D7。图4所示的8级并行电路还包括4个反相器(N0-N3)。从表2中的第8时钟周期后触发器R0-R15的输出结果中,可以看到从输入端输入的数据D0-D7中,有4个取反的输入数据"D0"、"D1"、"D2"、"D3,,(这里说明一下,符号"~"出现在等式中、或者出现在数据前面则表示"取反"),则该8级并行电路中就相应包括4个反相器(N0-N3),即反相器的个数与取反的输入凄t据个数相同。并且这4个反相器的输入端分别为对应于相应数据的输入端口。例如,NO反相器的输入端即为该8级并行电路输入数据DO的输入端。图4所示的8级并行电路还包括16个触发器R0-R15和16个异或门Y0-Y15,异或门Y0-Y15的输出端分别与触发器R0-R15的输入端相连。异或门Y0-Y15的输入端的连接分别根据表2中的第8时钟周期后输入到触发器R0-R15的数据决定(或者说,异或门Y0-Y15的输入端的连接分别由表2中的第8时钟周期后输入到触发器R0-R15的数据之间的关系式决定)例如,表2中第6行第3列的单元格中的数据元素有"D3"、"D7"、"C8"和"C12"。则说明通过异或门Y0输入到触发器R0的数据关系式为~D3AD7AC8AC12,那么也就决定了Y0的输入端应分别与反相器N3的输出端18(因N3的输入为D3,输出为D3)、该8级并行电路的输入D7的输入端、触发器R8的输出端(因触发器R8输出C8)、触发器R12的输出端(因触发器R12输出C12)。如果,用C0-C15分别代表触发器R0-R15的输出端,用D0-D7分别代表8级并4亍电if各的8个并刊4命入的端口,用D0-D3分别4戈表反相器N0-N3的输出端,则根据表2中第6行的单元格中的数据,就可以直观的确定出异或门Y0-Y15的输入端的连接了。比如,根据表2中第6行第4列单元格中的数据关系式可以确定异或门Yl的输入端分别与反相器N2、8级并行电路的输入D6数据的输入端、触发器R9的输出端、触发器R13的输出端相连。依据上述方法构建的如图4所示的8级并行电if各中该8级并行电路具有8个输入端10-17(图中未标)、4个反相器N0-N3、16个异或门Y0-Y15、16个触发器R0-R15。它们之间的连接关系为反相器N0-N3的输入端分别与该8级并行电路的输入端10-13相连;异或门Y0-Y15的输出端分别与触发器R0-R15的输入端相连;异或门YO的各输入端分别与反相器N3的输出端、该8级并行电路的输入端17、触发器R8的输出端、触发器R12的输出端相连;异或门Yl的各输入端分别与反相器N2的输出端、该8级并行电路的输入端16、触发器R9的输出端、触发器R13的输出端相连;异或门Y2的各输入端分别与反相器N1的输出端、该8级并行电路的输入端15、触发器R10的输出端、触发器R14的输出端相连;异或门Y3的各输入端分别与反相器NO的输出端、该8级并行电路的输入端14、触发器R11的输出端、触发器R15的输出端相连;异或门Y4的各输入端分别与该8级并行电路的输入端13、触发器R12的输出端相连;异或门Y5的各输入端分别与该8级并行电路的输入端I2、13、17,以及触发器R8、R12、R13的输出端相连;异或门Y6的各输入端分别与该8级并行电路的输入端I1、12、16,以及触发器R9、R13、R14的输出端相连;异或门Y7的各输入端分别与该8级并行电路的输入端10、II、15,以及触发器RIO、R14、R15的l餘出端相连;异或门Y8的各输入端分别与该8级并行电路的输入端10、14,以及触发器R0、Rll、R15的输出端相连;异或门Y9的各输入端分别与反相器N3的输出端、触发器R1的输出端、触发器R12的输出端相连;异或门Y10的各输入端分别与反相器N2的输出端、触发器R2的输出端、触发器R13的输出端相连;异或门Yll的各输入端分别与反相器N1的输出端、触发器R3的输出端、触发器R14的输出端相连;异或门Y12的各输入端分别与反相器N0的输出端、该8级并行电路的输入端I3、17,以及触发器R4、R8、R12、R15的输出端相连;异或门Y13的各输入端分别与该8级并行电路的输入端12、16,以及触发器R5、R9、R13的输出端相连;异或门Y14的各输入端分别与该8级并行电路的输入端II、15,以及触发器R6、RIO、R14的输出端相连;异或门Y15的各输入端分别与该8级并行电路的输入端10、14、17,以及触发器Rll、R15的输出端相连。图4所示的8级并行电路显然比如图2所示的现有技术8级并行电路所采用的反相器要少,从而达到了减少硬件成本的目的。"一l总结上述方法,对于根据特征多项式^(^=,+2vc、l生成CRC校验码的串行电路包括"个触发器A國d、一个反相器NO、一个异或非门YO,m个异或门,w等于&为1的个数。异或非门YO的一个输入端为所述串行电路20的输入端,另一个输入端与触发器i"的输出端相连。反相器NO的输入端与异或非门Y0的输出端相连。各触发器i。-i^的输入端则分别4艮据^的值决定如果^为0,那么直接将触发器i^的输出作为触发器^的数据端输入;如果^为1,那么将异或非门Y0的输出端与触发器i^的输出端分别与一个异或门的两个输入端相连后,该异或门的输出端则与触发器it的输入端相连。本发明实施例对于根据特征多项式^)=^"+|>,^+1生成CRC校验码的fG为大于1的整数)级并行电路的方法流程,如图5所示包括如下步骤:特征为5501、确定所述f级并行电路具有?个并行输入端/。-ZM。5502、确定所述f级并行电路反相器的个数m。反相器的个数附由c。w-c^w的表达式确定,而c,-c;—,的表达式由如下^^式1所决定上述递推公式1中r为[2,0之间的整数(r取值包含2");数据元素iVA-,分别对应所述装置的输入端/。-/M,其物理意义可以表示为从输入端/。-/M并行输入的数据;C。w-C^,的物理意义可以表示为f级并行电路中触发器及。-i^的输出值。递推公式1中的C。W-Cj",则由公式2决定公式2的物理意义为,上述特征多项式g(;chjc"+^>4+1生成CRC校验码的串行电路在TO时刻触发器i。-i^输出值为C。-C"—p在TO时刻一个时钟周期后,该串行电路中的触发器i。-输出值为c。(1)-c;J"。上述公式1和2中运算关系符"&"表示"与"的运算关系,运算关系符"A,,表示"异或"的运算关系。公式l中的c。w-c^,的物理意义为表示f级并行电路中触发器i。-iw的输出值。C。w-C",的表达式(即等式右边)最终可以分别等效为异或关系式M/。-M9i^。此处,异或关系式指的是至多包含异或"A"和取反",,关系运算符的关系式。在异或关系式中异或"A"或取反"~"关系运算符用于对数据元素进行逻辑关系运算。在Z)。-I^中若有w个数据元素在异或关系式Mi。-iVOi^中取反,则反相器的个数w即为w。并且w个反相器iV。-A^分别对应各取反的数据元素。比如,在异或关系式7VCW。-iVOi"一中有数据元素"D0"、"D1"、"D2"、"D3",即"。-^—,中取反的数据元素有4个,因此反相器的数目m也为4,并且反相器iV。-A^分别对应D0-D3。S503、确定所述f级并行电路中反相器7V。-《一输入端的连接。反相器iV。-iV^输入端的连接也由C。w-的等式确定,具体由异或关系式M/。-M9i^中取反的£)。-£)M所确定。具体为,若在异或关系式MM。-iVCW^中存在Dp,则A对应的反相器的输入端与Z)p对应的输入端/p相连(;?为取值范围为O到"的整数)。比如,C。W-C^w的异或关系式中取反的/VZ^有"D0"、"D1"、"D2"、"D3",则反相器iV。-i^输入端分别与输入DO、Dl、D2、D3的并行电路的输入端相连。5504、确定所述f级并行电路中异或门的个数《。所述《由异或关系式M9i。-AO^中多数据元素关系式的个数确定;所述多数据元素异或关系式指的是,至少具有一个异或关系运算符的异或关系式。例如,iVOi。为D3AD7AC8AC12,则具有3个异或关系运算符,因此为多数据元素关系式;若不具有异或关系运算符,则称为单数据元素异或关系式。所述f级并行电路中异或门的个数《等于M^-7V0id中有多数据元素异或关系式的个数。5505、确定所述f级并行电路中m个反相器iV。-《"的输出端、"个触发器及。-i^、《个异或门vy"的连接。具体方法为若A^i,为多数据元素异或关系式(y为取值范围为0到w-l的整数),则Mi,对应的异或门的输出端与触发器&的输入端相连,该异或门输入端的连接则根据MA确定若M)^.中存在q(/为取值范围为0到w-l的整数),则该异或门输入端与触发器《的输出端相连;若MA.中存在取反的A,则该异或门输入端与A对应的反相器的输出端相连;若A^^中存在没有取反的D,(/为取值范围为0到f-l的整数),则该异或门输入端与所述装置的输入端/,相连。比如,异或关系式iVOio:~D3AD7AC8AC12,iVOio异或关系式中的各数据元素分别为"D7"、"C8"、"C12"、以及取反的"D3",则与M)io对应的异或门y。的输入端分别与D3对应的反相器W的输出端、D7对应的所述/级并行电路的输入端/7、C8对应的触发器/8的输出端、C12对应的触发器4的输出端相连。若iVCW;不是多数据元素异或关系式,则触发器&输入端的连接则根据M9i^.确定若M3i^中存在C,(/为取值范围为0到"-l的整数),则触发器ij输入端与触发器《的输出端相连。比如,若iVO及,q,则触发器《的输入直接与触发器^的输出相连。由于根据上述公式l、公式2获得的异或关系式M^-iVOd,与对应的串行电路在T0时刻的第f个时钟周期,串行电路各触发器i。-i^输出值的数据关系式一样。因此,才艮据C。W-C^w的等式可以分别决定触发器^-i^的输入端的连接。S506、确定所述f级并行电路中触发器&-/—,的复位值。触发器i。-i^的复位值,即为触发器i。-i^的初始值,即为C。-C^。本领域技术人员可以根据CRC校验码类型来确定触发器A-d的复位值。比如,对于生成CRC-CCITT16类型的校-睑码的并行电路,i殳置电路中的触发器复位值全部为0;对于一些生成其它类型的校验码的并行电路,可以电路中的触发器复位值全部为1。通常,根据现有技术的并行电路的触发器复位值,设置对应的本发明实施例的并行电路的触发器复位值与现有技术的相反。本领域技术人员可以理解,虽然上述说明中,为便于理解,对方法的步骤采用了顺序性描述,但是应当指出,对于上述步骤的顺序并不作严格限制。根据上述步骤则可以确定出特征多项式=x"+艺&+1所对应的生成CRC4交验码的f级并行电路。例如,根据上述步骤S501-S505可以确定出特征多项式g(x)-,+^+xS+l所对应的生成16位CRC校验码的8级并行电路(如图4所示),或者根据"=32的特征多项式釆用上述方法搭建生成32位校验码的f级并行电路。本领域技术人员根据本发明实施例公开的技术内容可以实现各种生成"位校验码的f级并行电路,此处不再——列举。通过上述方法构建并行电路后,通过该并行电路生成校验的过程为将信息码从所述装置的并行输入端/。-/M并行输入;在所有的信息码从所述输入端输入后,并行电路中的各触发器的输出组成所述信息码的循环冗余校验码。根据上述方法生成的并行电路比现有技术的同级数的并行电路的反相器要少,从而达到了降低硬件成本的目的。比如,才艮据本发明实施例生成16位CRC校验码的4级并行电路需要4个反相器,而现有4支术的生成16位CRC校验码的4级并行电路则需要16个反相器。端增加了反相器,从而可以将并行电路中的每个触发器连接的反相器去掉,从而节省了大量的反相器,筒化了CRC校验码并行电路、降低了硬件成本。24是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如ROM/RAM、磁碟、光盘等。还可以理解的是,附图或实施例中所示的装置结构仅仅是示意性的,表示逻辑结构。其中作为分离部件显示的模块可能是或者可能不是物理上分开的,作为模块显示的部件可能是或者可能不是物理模块。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1、一种循环冗余校验码生成装置,所述循环冗余校验码的特征多项式为其中n为自然数,bk取值为0或1,所述装置具有t个并行输入端I0-It-1,其特征在于,所述装置包括m个反相器N0-Nm-1、n个触发器R0-Rn-1,以及q个异或门Y0-Yq-1;所述m由异或关系式NOR0-NORn-1中的第一取反数目所确定;所述异或关系式NOR0-NORn-1分别为C0(t)-Cn-1(t)的表达式所等效的异或关系式;所述异或关系式指的是至多包含异或和取反关系运算符的关系式;所述C0(t)-Cn-1(t)的表达式根据第一递推公式确定其中,r为[2,t]之间的整数;数据元素D0-Dt-1分别对应所述装置的输入端I0-It-1;在D0-Dt-1中若有w个数据元素在异或关系式NOR0-NORn-1中取反,则所述第一取反数目为w;并且m个反相器N0-Nm-1分别对应各取反的数据元素;所述第一递推公式中的C0(1)-Cn-1(1)值,由第二公式确定所述第二公式中的C0-Cn-1分别对应触发器R0-Rn-1的输出端;若在异或关系式NOR0-NORn-1中存在~Dp,则Dp对应的反相器的输入端与Dp对应的输入端Ip相连;所述p为取值范围为0到t-1的整数;所述q由异或关系式NOR0-NORn-1中多数据元素异或关系式的个数确定;并且异或门Y0-Yq-1分别对应各多数据元素异或关系式;所述多数据元素异或关系式指的是至少具有一个异或关系运算符的异或关系式;所述反相器N0-Nm-1的输出端、触发器R0-Rn-1和异或门Y0-Yq-1的连接根据异或关系式NOR0-NORn-1确定。2、如权利要求l所述的装置,其特征在于,所述反相器jv。-1—,的输出端、触发器i。-A一和异或门的连接根据异或关系式iVOi。-iVO凡一,确定,具体为若m)A.为多数据元素异或关系式,则对应的异或门的输出端与触发器&的输入端相连,该异或门输入端的连接则根据m^确定;若不是多数据元素异或关系式,则触发器w」输入端的连接则根据節及乂确定;所述J为取值范围为0到"-l的整数。3、如权利要求2所述的装置,其特征在于,与7W巩对应的异或门的输入端的连接才艮据MA确定,具体为若m^,中存在c,,则该异或门输入端与触发器及,的输出端相连;所述z'为取值范围为0到"-l的整数;若m^.中存在取反的D,,则该异或门输入端与A对应的反相器的输出端相连;若中存在没有取反的A,则该异或门输入端与所述装置的输入端/,相连;所述/为取值范围为0到f-l的整数。4、如权利要求2所述的装置,其特征在于,所述触发器ij输入端的连接根据确定,具体为若m^.中存在c,,则触发器ij输入端与触发器^的输出端相连;所述/为取值范围为0到w-l的整数。5、如权利要求l-4任一所述的装置,其特征在于,所述触发器/。-i^的复位值全部为0、或者全部为1。6、一种通过如权利要求l-4所述的装置生成循环冗余校验码的方法,其特征在于,包括将信息码从所述装置的并行输入端/。-并行输入;在所有的信息码从所迷输入端输入后,各触发器的输出组成所述信息码的循环冗余校验码。7、一种构建循环冗余才交-险码生成装置的方法,所述循环冗余校验码的特征多项式为=jc"+£&jcfc+1,其中《为自然数,^取值为0或1,所述装置具有f个并行输入端/。-仏,其特征在于,所述方法包括确定所述装置的反相器的个数附;所述m由异或关系式MM。-MM—,中的第一取反数目所确定;所述异或关系式M^-iVOd分别为计算c。w-cJ')的等式右边所等效的异或关系式;所述异或关系式指的是至多包含异或和取反关系运算符的关系式;计算C。w-C^w的等式根据第一递推公式确定其中,r为[2,f]之间的整数;数据元素A-A-,分别对应所述装置的输入端/。-/,_,;在A-A—,中若有w个数据元素在异或关系式M)i。-M9i^中取反,则所述第一取反数目为w;并m个反相器iv。-l一分别对应各取反的数据元素;所述第一递推公式中的C。")-C"V"值,由第二公式确定所述第二^^式中的c。-c^分别对应触发器io-i^的输出端;若在异或关系式M^。-M;^中存在n,,则Z)^对应的反相器的输入端与A对应的输入端;相连;所述;?为取值范围为0到f-l的整数;确定所述装置的异或门的个数《;所述g由异或关系式ivcw。-中多数据元素异或关系式的个数确定;并《个异或门y。-r^分别对应各多数据元素异或关系式;所述多数据元素异或关系式指的是至少具有一个异或关系运算((CA)&W-(A:=i~"-1)符的异或关系式;根据所述异或关系式M9及。-M)i^确定所述反相器JV。-气一的输出端、触发器&-,和异或门y。-的连接。8、如权利要求7所述的方法,其特征在于,所述#4居所述异或关系式M)i。-确定所述反相器AT。-的输出端、触发器&-及_,和异或门R誦的连接,具体包括若为多数据元素异或关系式,则对应的异或门的输出端与触发器&的输入端相连,则根据M^确定该异或门输入端的连接;若M)A.不是多数据元素异或关系式,则根据M^.确定触发器A输入端的连接;所述_/为取值范围为0到w-l的整数。9、如权利要求8所述的方法,其特征在于,根据M^.确定iW^对应的异或门输入端的连接,具体包括若A^^中存在c;,则确定该异或门输入端与触发器《的输出端相连;所述z'为取值范围为0到"-l的整数;若M^.中存在取反的",,则该异或门输入端与Z),对应的反相器的输出端相连;若M)^中存在没有取反的£),,则该异或门输入端与所述装置的输入端/,相连;所述/为取值范围为0到f-l的整数。10、如权利要求8所述的方法,其特征在于,所述根据M)i/角定触发器ij输入端的连接,具体包括若M^中存在c,,则确定触发器及j输入端与触发器i,的输出端相连;所述Z为取值范围为0到"-l的整凄t。11、如权利要求7-10任一所述的方法,其特征在于,还包括设置所述触发器i。-7w的复位值全部为0、或者全部为1。12、一种循环冗余校验码生成装置,具有8个并行输入端10-17,其特征在于,包括4个反相器N0-N3、16个异或门Y0-Y15、16个触发器RO-R15;所述反相器N0-N3的输入端分别与所述输入端10-13相连;所述异或门Y0-Y15的输出端分别与触发器R0-R15的输入端相连;异或门YO的各输入端分别与反相器N3的输出端、输入端17、触发器R8的输出端、触发器R12的输出端相连;异或门Yl的各lt入端分别与反相器N2的输出端、输入端16、触发器R9的输出端、触发器R13的输出端相连;异或门Y2的各输入端分别与反相器Nl的输出端、输入端15、触发器R10的输出端、触发器R14的输出端相连;异或门Y3的各输入端分别与反相器NO的输出端、输入端14、触发器Rll的输出端、触发器R15的输出端相连;异或门Y4的各输入端分别与输入端13、触发器R12的输出端相连;异或门Y5的各输入端分别与输入端12、13、17,以及触发器R8、R12、R13的输出端相连;异或门Y6的各输入端分别与输入端II、12、16,以及触发器R9、R13、R14的输出端相连;异或门Y7的各输入端分别与输入端10、II、15,以及触发器RIO、R14、R15的输出端相连;异或门Y8的各输入端分别与输入端10、14,以及触发器RO、Rll、R15的输出端相连;异或门Y9的各输入端分别与反相器N3的输出端、触发器Rl的输出端、触发器R12的输出端相连;异或门Yl0的各输入端分别与反相器N2的输出端、触发器R2的输出端、触发器R13的输出端相连;异或门Yll的各输入端分别与反相器N1的输出端、触发器R3的输出端、触发器R14的输出端相连;异或门Y12的各输入端分别与反相器NO的输出端、输入端13、17,以及触发器R4、R8、R12、R15的输出端相连;异或门Y13的各输入端分别与输入端I2、16,以及触发器R5、R9、R13的输出端相连;异或门Y14的各输入端分别与输入端I1、15,以及触发器R6、R10、R14的输出端相连;异或门Y15的各输入端分別与输入端IO、14、17,以及触发器Rll、R15的输出端相连。全文摘要本发明涉及传输数据校验领域,尤其涉及采用并行电路实现低成本的CRC校验码生成技术。一种循环冗余校验码生成装置及其构建、生成校验码的方法,其特征多项式为g(x)=x<sup>n</sup>+∑b<sub>k</sub>x<sup>k</sup>+1,该装置具有t个并行输入端,所述装置包括m个反相器N<sub>0</sub>-N<sub>m-1</sub>、n个触发器R<sub>0</sub>-R<sub>n-1</sub>,以及q个异或门Y<sub>0</sub>-Y<sub>q-1</sub>;所述m由异或关系式NOR<sub>0</sub>-NOR<sub>n-1</sub>所确定;反相器N<sub>0</sub>-N<sub>m-1</sub>的输入端分别与异或关系式NOR<sub>0</sub>-NOR<sub>n-1</sub>中取反的各输入数据所对应的所述装置的输入端相连接;所述q由异或关系式NOR<sub>0</sub>-NOR<sub>n-1</sub>中多数据元素关系式的个数确定;反相器N<sub>0</sub>-N<sub>m-1</sub>的输出端、触发器R<sub>0</sub>-R<sub>n-1</sub>和异或门Y<sub>0</sub>-Y<sub>q-1</sub>的连接根据异或关系式NOR<sub>0</sub>-NOR<sub>n-1</sub>确定。由于在并行电路的一些输入端增加了反相器,从而可以将并行电路中的每个触发器连接的反相器去掉,从而节省了大量的反相器,降低了硬件成本。文档编号H03M13/09GK101510780SQ200910129188公开日2009年8月19日申请日期2009年3月31日优先权日2009年3月31日发明者叶院红申请人:炬力集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1