用于循环冗余校验的装置和方法制造方法及图纸

技术编号:9893712 阅读:127 留言:0更新日期:2014-04-08 01:24
本发明专利技术涉及用于循环冗余校验(CRC)的装置和方法,其中,该装置包括:多个串行CRC模块,所述多个串行CRC模块均按照相同的CRC多项式和数据长度对输入的串行数据按位进行串行CRC;启动模块,其控制所述多个串行CRC模块依次在不同的时间点启动,以分别对同一输入的串行数据流进行串行CRC,其中,当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,所述装置判断出得到正确的校验结果。利用该方法和装置,能够改进对于大数据量高复杂度报文数据进行CRC的实时性和精度,同时节省硬件资源的使用。

【技术实现步骤摘要】
用于循环冗余校验的装置和方法
本专利技术涉及一种用于循环冗余校验(CRC)的装置和方法。
技术介绍
为了避免数据传输过程中发生的错误对数据安全性产生影响,需要对传输的数据进行校验来确保数据的完整性。CRC码是一种常用的错误检测码,它通过将需要传输的每位数据按照一定的计算方式进行计算,并把计算后的结果作为CRC校验码附加到数据流后一起传输,接收方通过相同的计算方法对接收到的数据进行计算,将结果和收到的CRC码进行比较,以确定数据传输是否正确。由于CRC校验的编解码简单、纠错能力强且误判概率很低,因而在工业测控及通信系统中得到了广泛的应用。在高速铁路系统中,应答器用于传输地面和列控中心发送给列车的运行控制信息,包括实时的速度、坡度、位置等信息,列车通过对接收到的报文信息进行分析后进行自动控制与驾驶。所以应答器对报文信息传输的安全性具有很高的要求。CRC的错误检测能力依赖于CRC多项式的阶次,CRC中每增加一个数据位,就会将碰撞概率减少接近50%。举例来说,理论上CRC-64的碰撞概率大约是每18×1018个CRC码出现一次。为了尽量降低校验中的碰撞概率,提高信息传输的可靠性和安全性,当前高速铁路应答器报文数据采用75位的CRC校验多项式,数据长度采用1023位。CRC算法可以用软件实现,也可以用硬件实现。软件实现的优点是设计相对简单,易于维护和更新,但是缺点是必须由中央处理器(CPU)来完成算法计算,不仅计算的速度受限于系统CPU的速度,而且它还会对系统CPU的工作带来很大的负担,特别是在一些实时性要求很强的嵌入式系统中,这个影响是不可估量的。所以,现在大量的CRC计算都是使用硬件方式来实现的,比较常见的就是使用现场可编程门阵列(FPGA)芯片来完成硬件电路的设计。它不仅可以提高计算速度,同时可提高系统的安全性和可靠性。现有硬件算法实现大体可分为串行实现和并行实现。在串行实现中,每次输入一位数据,将输入数据和上一次异或运算的结果组成新的数据,进行循环异或运算,直到所有规定数据长度(例如上述1023位)的数据输入完,校验电路用移位寄存器和异或门实现。对于r位的CRC校验长度,需要r个寄存器,当有新的数据输入后异或运算立刻得出新的CRC值,寄存器依据时钟控制,等待新的输入数据,反复循环,直到计算出所有数据位的CRC校验码。串行CRC装置的结构是由所采用的CRC多项式决定的。串行实现方式虽然可以计算各种CRC,但是一个时钟周期只能计算一位数据,效率比较低。例如,对于高速铁路应答器中使用1023位的数据报文长度,需要1023位的时间才能完成一次校验;而如果校验错误,则需要复位串行CRC电路以针对接下来的1023位进行下一次的校验。相比串行实现方式,并行实现方式可以在一个时钟内对多位数据进行CRC计算,从而提高了CRC的计算速度。目前已采用的CRC并行算法有查表法和公式法。然而,并行CRC所需硬件资源大,不适合实现大的CRC校验长度,以查找表为例,CRC校验码为16位时,CRC余数表的长度为65535,而CRC校验码为32位时,CRC余数表的长度将为4294967296,这时,已经很难提供足够的硬件资源实现并行CRC校验了,更不用说实现更大长度的CRC校验。因此,对于高速铁路应答器中采用的这种大数据量报文数据的CRC校验,本领域需要既能满足校验实时性,同时又能尽量降低硬件资源需求量的技术。
技术实现思路
考虑到现有技术的上述问题,本专利技术的实施例提供一种用于CRC的装置和方法,其通过采用多任务同时处理的工作模式,通过流水线结构对CRC任务进行区分,根据流水级数的不同控制校验的实时性和硬件资源的消耗数。根据本专利技术的一个方面,提供了一种用于CRC的装置,包括:多个串行CRC模块,所述多个串行CRC模块均按照相同的CRC多项式和数据长度对输入的串行数据按位进行串行CRC;启动模块,其控制所述多个串行CRC模块依次在不同的时间点启动,以分别对同一输入的串行数据流进行串行CRC,其中,当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,所述装置判断出得到正确的校验结果。根据一个实施例,所述不同的时间点平均分布在一串行CRC周期中,所述串行CRC周期是用于采样所述串行数据流中具有所述数据长度的数据段以对其进行串行CRC的周期。根据一个实施例,所述启动模块包括计数器,在所述启动模块启动第一个串行CRC模块后,所述计数器每当对输入的所述串行数据流的位数进行计数达到计数阈值时,所述启动模块启动下一个串行CRC模块,所述计数阈值等于所述数据长度的位数除以所述多个串行CRC模块的数量得到的整数。根据一个实施例,所述启动模块包括计时器,在所述启动模块启动第一个串行CRC模块后,所述计时器每当计时达到计时阈值时,所述启动模块启动下一个串行CRC模块,所述计时阈值等于采样所述数据长度的位数以对其进行串行CRC所需的时间除以所述多个串行CRC模块的数量得到的时间量。根据一个实施例,所述装置还包括校验判别模块,其接收由所述多个串行CRC模块分别输出的校验结果,并且当接收到一个指示校验正确的校验结果时,则判别出得到正确的校验结果。根据一个实施例,所述装置还包括数据输出模块,用于当所述校验判别模块判别出得到正确的校验结果时,在所述校验判决模块的控制下输出对应于所述正确校验结果的数据。根据一个实施例,所述数据输出模块包括选通器,所述选通器连接所述多个串行CRC模块的数据输出端,其中,所述校验判别模块在判别出得到正确的校验结果时,控制所述选通器选通得到正确校验结果的串行CRC模块的输出通路,以输出来自该得到正确校验结果的串行CRC模块的对应于所述正确校验结果的数据。根据一个实施例,所述数据输出模块包括至少具有所述数据长度的位数的缓存器,所述输入的串行数据流在输入到所述多个串行CRC模块的同时并行地输入到所述缓存器,其中,当所述校验判别模块判别出得到正确的校验结果时,控制所述数据输出模块输出当前缓存器中的数据。根据一个实施例,在将所述输入的串行数据流在输入到所述多个串行CRC模块的同时,将其并行地从所述装置输出;其中,当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,从所述装置输出指示校验正确的信息。根据本专利技术的另一个方面,提供了一种安装于列车上的包括上述用于CRC的装置的设备,当所述列车经过地面应答器时,所述设备从所述应答器接收串行数据流,并且通过所述用于CRC的装置得到校验正确的数据报文。根据本专利技术的另一个方面,提供了一种进行CRC的方法,包括:控制多个串行CRC模块依次在不同的时间点启动,以分别对同一输入的串行数据流进行串行CRC,其中,所述多个串行CRC模块均按照相同的CRC多项式和相同的数据长度对输入的串行数据按位进行串行CRC;当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,判断出得到正确的校验结果。根据一个实施例,所述不同的时间点平均分布在一串行CRC周期中,所述串行CRC周期是用于采样所述串行数据流中具有所述数据长度的数据段以对其进行串行CRC的周期。根据一个实施例,所述方法还包括:利用计时器来控制所述多个串行CRC模块依次在所述不同的时间点启动,启动第一个串本文档来自技高网
...
用于循环冗余校验的装置和方法

【技术保护点】
一种用于循环冗余校验(CRC)的装置,包括:多个串行CRC模块,所述多个串行CRC模块均按照相同的CRC多项式和数据长度对输入的串行数据按位进行串行CRC;启动模块,其控制所述多个串行CRC模块依次在不同的时间点启动,以分别对同一输入的串行数据流进行串行CRC,其中,当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,所述装置判断出得到正确的校验结果。

【技术特征摘要】
1.一种用于循环冗余校验(CRC)的装置,包括:多个串行CRC模块,所述多个串行CRC模块均按照相同的CRC多项式和数据长度对输入的串行数据按位进行串行CRC;启动模块,其控制所述多个串行CRC模块依次在不同的时间点启动,以分别对同一输入的串行数据流进行串行CRC,其中,当所述多个串行CRC模块中的一个串行CRC模块得到正确的校验结果时,所述装置判断出得到正确的校验结果。2.如权利要求1所述的装置,其中,所述不同的时间点平均分布在一串行CRC周期中,所述串行CRC周期是用于采样所述串行数据流中具有所述数据长度的数据段以对其进行串行CRC的周期。3.如权利要求1所述的装置,其中,所述启动模块包括计数器或计时器,其中,在所述启动模块启动第一个串行CRC模块后,所述计数器每当对输入的所述串行数据流的位数进行计数达到计数阈值时,所述启动模块启动下一个串行CRC模块,所述计数阈值等于所述数据长度的位数除以所述多个串行CRC模块的数量得到的整数,或者,其中,在所述启动模块启动第一个串行CRC模块后,所述计时器每当计时达到计时阈值时,所述启动模块启动下一个串行CRC模块,所述计时阈值等于采样所述数据长度的位数以对其进行串行CRC所需的时间除以所述多个串行CRC模块的数量得到的时间量。4.如权利要求1所述的装置,还包括:校验判别模块,其接收由所述多个串行CRC模块分别输出的校验结果,并且当接收到一个指示校验正确的校验结果时,则判别出得到正确的校验结果。5.如权利要求4所述的装置,还包括:数据输出模块,用于当所述校验判别模块判别出得到正确的校验结果时,在所述校验判决模块的控制下输出对应于所述正确校验结果的数据。6.如权利要求5所述的装置,其中,所述数据输出模块包括选通器,所述选通器连接所述多个串行CRC模块的数据输出端,其中,所述校验判别模块在判别出得到正确的校验结果时,控制所述选通器选通得到正确校验结果的串行CRC模块的输出通路,以输出来自该得到正确校验结果的串行CRC模块的对应于所述正确校验结果的数据。7.如权利要求5所述的装置,其中,所述数据输出模块包括至少具有所述数据长度的位数的缓存器,所述输入的串行数据流在输入到所述多个串行CRC模块的同时并行地输入到所述缓存器,其中,当所述校验判别模块判别出得到正确的校验结果时,控制所述数据输出模块输出当前缓存器中的数据。8.如权利要求1所述的装置,其中,在将所述输入的串行数据流在输入到所述多个串行CRC模块的同时,将其并行地从所述装置...

【专利技术属性】
技术研发人员:霍旭东朱卫华张建平赵银峰
申请(专利权)人:西门子信号有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1