一种循环冗余校验方法、设备及存储介质与流程

文档序号:14842627发布日期:2018-06-30 14:18阅读:190来源:国知局
一种循环冗余校验方法、设备及存储介质与流程

本发明涉及一种循环冗余校验方法、设备及存储介质,属于集成电路测试技术领域。



背景技术:

为了保证高速数据通信和测试中数据传输的可靠性,防止接收端收到的信息产生误码,CRC CRC(Cyclic Redundancy Check,循环冗余校验)算法被广泛应用。该算法具有编码简单,纠错能力强,误码率低的特点,是一种高效的差错检测方案。

循环冗余校验码的计算一般可分为软件和硬件实现两种方法。Martin R,Riehle D,Buschmann F研究了最常用的以按字节查表法和半字节查表法为基础的软件实现的方法,Gam D.Nguyen提出了不依赖查找表的软件实现方法,该方法可以消除或大大减少许多步骤的多项式除法。然而上述软件算法均无法满足高速系统校验的要求。

因此,目前大多数循环冗余校验码都使用硬件电路,如通过线性反馈移位寄存器LSFR来实现。这种方法简单直观,但每次只能处理一位二进制数据,速度很慢。

为了解决上述问题,CRC并行算法应运而生。该算法可以在一定程度上提高数据处理的速度。但是,在编码校验的过程中,有可能发生了出现错误而不能被发现的情况,所以必须保证校验的差错控制在合理的范围内。

如果错误独立发生,误码率为P,则

P=[2-r-2-n,2-r] (1)

其中n是编码长度,r是生成多项式的阶。由式(1)可以看出,若要减小误码率,需要增加CRC的阶数,但会导致传输的有效带宽减少,并且硬件复杂度增加,从而使整个系统性能降低。

而且,传统的CRC并行算法需要占用大量的存储资源和逻辑资源,降低了系统的处理性能,所以,一种可以有效地减小误码率的新的循环冗余校验方法成为迫切需求。



技术实现要素:

针对现有技术的不足,本发明所要解决的首要技术问题在于提供一种循环冗余校验方法。

本发明所要解决的另一技术问题提供一种循环冗余校验设备。

为实现上述发明目的,本发明采用下述的技术方案:

根据本发明实施例的第一方面,提供一种循环冗余校验方法,包括如下步骤:

将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;

将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

计数器的数值逐一增加,重复上述步骤,直至所有传输的数据序列全部校验完成,得到所有数据序列的校验码。

其中较优地,所述循环冗余校验方法,用于HDMI测试时,包括如下步骤:

S21,HDMI信号通过解码芯片进行解码,将解码后的数据序列Pi发送到FPGA;

S22,将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi;

S23,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

S24,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

S25,计数器的数值逐一增加,重复上述步骤S22~S24,直至FPGA接收的数据序列全部传输完毕,得到FPGA中所有数据序列的校验码;

S26,提取FPGA中最后一个数据序列的校验码,将校验得出的数据序列与理论数据序列进行比较,判断HDMI信号是否正确。

其中较优地,所述CRC第一校验模式为比CRC第二校验模式位数高的循环冗余校验模式。

其中较优地,所述CRC第一校验模式为CRC32校验模式;

所述CRC第二校验模式为CRC8校验模式。

其中较优地,第一校验码CSAi存储在第一校验码寄存器中;所述第一校验码寄存器长度为32位;

第二校验码CSBi存储在第二校验码寄存器中;所述第二校验码寄存器的长度为8位。

其中较优地,第一校验码CSAi-1为第一校验码寄存器的初值;第二校验码CSBi-1为第二校验码寄存器的初值。

其中较优地,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列,是指将二进制序列的第二校验码CSBi-1连到第一校验码CSAi之后形成一个新数据位序列。

其中较优地,CSAi序列与上一个数据序列的校验码CSBi-1序列连接到一起构成数据序列,进行CRC32的运算方法为:

其中,序列CSAi的CRC32校验码为X[31:0],序列CSBi-1[7:0]的CRC32校验码为W[31:0],序列X[31:24]的CRC32校验码为C[31:0],表示模2和运算,“,”表示将序列CSBi-1加到序列CSAi之后。

根据本发明实施例的第二方面,提供一种循环冗余校验设备,包括处理器和存储器;所述存储器上存储有可用在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时实现如下步骤:

将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;

将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

计数器的数值逐一增加,重复上述步骤,直至所有传输的数据序列全部校验完成,得到所有数据序列的校验码。

其中较优地,当所述循环冗余校验方法用于HDMI测试时,所述计算机程序被所述处理器执行,还实现如下步骤;

S321,HDMI信号通过解码芯片进行解码,将解码后的数据序列Pi发送到FPGA;

S322,将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi;

S323,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

S324,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

S325,计数器的数值逐一增加,重复上述步骤S22~S24,直至FPGA接收的数据序列全部传输完毕,得到FPGA中所有数据序列的校验码;

S26,提取FPGA中最后一个数据序列的校验码,将校验得出的数据序列与理论数据序列进行比较,判断HDMI信号是否正确。

本发明所提供的循环冗余校验方法中,每个序列的校验码都是该序列与上一序列校验码连接后的校验结果,避免了传统CRC32异或运算的信息丢失,同时在每个初值信息中保留了之前序列的信息,信息码携带的校验码CSBi与历史发送的所有信息码数据有关,而不仅仅取决于当前信息码和上一个信息码中的数据。该方法在不增加资源消耗的基础上,提高了循环冗余校验的准确性。

附图说明

图1为本发明所提供的循环冗余校验方法的流程图;

图2为本发明所提供的实施例中,循环冗余校验方法的整体框架示意图;

图3为本发明所提供一个实施例中,10G以太网64位并联接口的示意图;

图4为本发明所提供一个实施例中,基于级联结构的CRC编码器;

图5为本发明所提供一个实施例中,用于HDMI测试的循环冗余校验方法的框架结构示意图;

图6为本发明实施例中所提供的循环冗余校验设备的结构原理图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

第一实施例

本发明首先提供一种采用两个生成多项式生成校验码来完成CRC运算的方法。这种采用两个生成多项式来生成校验码的CRC方法将标准的CRC32-IEEE方法进行改进,将待校验的输入序列分别进行CRC32和CRC8两种校验,并将其校验结果分别作为下一输入序列的初值和校验序列的一部分与输入的数据序列构成输入序列后共同进行CRC32运算,在不增加带宽的前提下提高了诊断性能。该方法实现了故障诊断准确度的提高,但所需资源没有明显增加。

循环冗余校验对提高数据传输的安全性和可靠性起着重要的作用,该算法具有编码简单,纠错能力强,误码率低的特点。按字节运算方法可直接推导出按循环冗余校验码与输入的数据序列和生成多项式的逻辑关系,计算出CRC校验码的方法比较简洁。

CRC的原理是将要传送的二进制数据表示为T(x),T(x)除以一个二进制序列生成多项式G(x),将最后的余数作为循环冗余校验码。但是,在编码校验过程中有可能发生了错误,但是编码却不能发现,从而产生误码。若要减小误码率,需要增加CRC的阶数,但会导致传输的有效带宽减少,并且硬件复杂度增加,从而使整个系统性能降低。

为了克服现有的CRC算法的缺点,本发明提供一种循环冗余校验方法,以建立使用两个生产多项式计算CRC为技术核心。如图1所示,本发明所提供的循环冗余校验方法,包括如下步骤:首先,从寄存器中获取数据序列Pi;将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列Pi作为数据序列的初始值构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;对构成的新数据序列再进行CRC第一校验模式的校验,得出Pi序列的校验码。计数器逐一增加,重复上述步骤,直至寄存器中的数据序列全部传输完毕。下面对这一处理过程进行详细说明。

S1,从寄存器中获取数据序列Pi;将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列Pi构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数。

图2为发明所提供的循环冗余校验方法的整体框架示意图。在该测试方法中,首先按图2所示,将Pi、CSAi和CSBi作为存储,发送到数据序列的寄存器和两个校验码的寄存器(第一校验码寄存器和第二校验码寄存器),数据序列的寄存器初始值设置为0,第一校验码寄存器和第二校验码寄存器的初值的初始值设置为0。在本发明所提供的实施例中,初值为每次数据序列进行循环冗余校验之前,CRC寄存器的值。当有数据序列不断进行循环冗余校验时,第一校验码寄存器和第二校验码寄存器的初值不断进行更新,其中,第一校验码CSAi-1为第一校验码寄存器的初值;第二校验码CSBi-1为第二校验码寄存器的初值。其次,设置GA和GB分别表示两种校验模式:CRC第一校验模式和CRC第二校验模式。其中,CRC第一校验模式为比CRC第二校验模式高阶(位数高)的循环冗余校验模式。CRC第一校验模式和CRC第二校验模式的循环冗余码的校验长度不一样。冗余码越长,数据要求的安全性越高,校验时所需的资源也会越多。在本发明所提供的实施例中,用循环冗余码的校验长度长的CRC第一校验模式用来计算数据序列的校验码,而用循环冗余码的校验长度较短的CRC第二校验模式来保留了之前数据序列的信息,在保证校验准确度的基础上,最小限度的占用了资源。

在本发明所提供的实施例中,以CRC第一校验模式为CRC32,CRC第二校验模式为CRC8为例进行校验运算说明。则进行第一校验码CSAi存储的第一校验码寄存器的长度为32位,进行第二校验码CSBi存储的第二校验码寄存器的长度为8位。第一个数据序列P1到来后,分别通过GA和GB的CRC运算得到第一校验码CSA1和第二校验码CSB1,并将CSA1和初始值8位’0’的序列连接结果进行再CRC32运算,输出即为P1的校验码。

在本发明所提供的实施例中,CRC8可以采用生成多项式为G(x)=X8+X5+X4+1时CRC8模式下的运算结果。表示当输入数据序列时,数据序列输入第i位数据后所得的CRC的移位寄存器的第j位的值((i=1、2……n),(j=1、2……k-1))。mi表示数据序列的第i位。

式(2)中的的运算符为模2和运算。本发明所提供的实施例中,只需要计算数据序列最后一位数据输入后,移位寄存器的值就可以了。

CRC32采用生成多项式为:

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1的CRC32模式下的运算结果为:

式(3)中的运算符为模2和运算。

在该运算中,每个序列的校验码都是该序列与上一序列校验码连接后的校验结果,避免了传统CRC32异或运算的信息丢失,同时在每个初值信息中保留了之前序列的信息,信息码携带的校验码CSBi与历史发送的所有信息码数据有关,而不仅仅取决于当前信息码和上一个信息码中的数据。

在图2中对n位数据序列进行并行CRC运算时,需要执行n位输入数据的CRC32、CRC8,及n+8位的CRC运算,导致设计中必须有以上多种校验模块,占用了大量的计算资源。为减少资源的使用,对上述公式(3)做出化简。

首先介绍根据递推法通过串行移位电路推导得到CRC并行运算,对于串行移位计算,当前的CRC值只与输入信息序列的前一位和前一状态的CRC值有关。当进行并行计算时,以8位并行输入为例,8位信息序列同时输入与8位信息序列串行移位输入产生的CRC值相同,此时两种电路等效。由此可得出CRC并行算法的方法,即:

当j=0时,式(4)中:表示当输入信息序列为计算第i位数据后所得的CRC的移位寄存器的第j位的值((i=1、2……n),(j=1、2……k-1))。mi表示输入信息序列的第i位。通过式(4)进行p次递归推导可以得出寄存器当前状态与连续输入的p位信息序列和串行编码器前p个周期移位寄存器状态之间的关系。即以8位并行输入的CRC16为例可得:

以此类推,可以得到递推法计算并行CRC运算具有通用性,该递推法消除了余数表,降低了对存储资源的需求,提高了计算速度,具有较好的扩展性。

然后,介绍基于级联结构的并行CRC设计。10G以太网接入系统中常采用64位并行数据通路,而FCS校验数据长度为60-1514字节,使得以太网帧不一定结束在64比特边界,因此常转化为数据格式待处理。如图3所示,为10G以太网64位并行数据处理接口,其中Valid为数据有效指示,Sop为帧头部指示,Eop为帧结束指示,Data为以太网数据,每个周期为64比特,Size代表当前周期数据的有效比特数。在传统并行CRC设计中,通常把数据处理分为两部分,对于Eop之前使用64位并行CRC32校验算法,对于Eop处则根据Size的指示位表示的数据有效位数选择8,16,24,32,40,48,56,和64位CRC32校验模块中的一种来计算最后的循环冗余校验码,导致设计中必须设计以上所有位数的循环冗余校验模块,占用了大量的计算资源。由一般的CRC编码方式,即现将信息多项式左移r位,然后做模2除法得到的式(6)可得如下推论:(其中,式(6)为:);R(x)为进行一般的CRC编码方式得到的循环冗余校验码;G(x)为生成的多项式;Q(x)为信息码;M(x)为多项表达式,可表示为:

M(x)=mn-1xn-1+mn-2xn-2+...+m1x1+m0x0)

推论:已知序列X的CRC32校验码为X’[31:0],序列Y的CRC32校验码为Y’[31:0],设序列X’[31:24]的CRC32校验码为Z[31:0],则序列X的延拓序列{X,Y}的CRC32的校验码为:

在已知8位的并行CRC32校验情况下,可以根据式(6)得到任意N位序列并行CRC32校验的表达式,并设计8-64位任意输入时并行CRC32表达式,如图6所示。其中间节点为:

C1(x)=f(r,d[0:7])x∈[0:31]

C1(x)=f(C1,d[8:15])=f(f(r,d[0:7]),d[8:15])

依照此递推方法,将序列CSBi-1加到序列CSAi之后的CRC32值(即CRC32校验码)可以表示为:

如式(7)所示,该运算中只包含CRC32、CRC8运算和模2和运算模块。采用以上方法,可简化整个运算的设计逻辑。

S12,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列。

将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列。其中,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列,是指将二进制序列CSBi-1连到CSAi之后形成一个新数据位序列。在本发明所提供的实施例中,因为第一校验码CSAi为32位的序列,第二校验码CSBi-1为8位的序列,所以将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成一个40位的新数据序列。

S13,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码。

如图2所示,对于第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列,再进行CRC第一校验模式的校验,得出数据序列Pi的校验码。这样,从计数器i=2开始,每次进行数据序列校验时,都会保留之前数据序列的信息,避免了传统CRC32异或运算的信息丢失。其中,对于第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列,再进行CRC第一校验模式的校验,得出数据序列Pi的校验码。其计算过程与上述步骤S11中CRC32采用生成多项式为:

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1的CRC32模式下的运算再进行一次即可。在此便不再赘述了。

S14,计数器的数值逐一增加,重复上述步骤S11~S13,直至寄存器中的数据序列全部传输完毕,得到所有数据序列的校验码。

计数器的数值逐一增加,计算其他数据序列的校验码时,方法类似,将数据序列Pi-1的第一校验码CSAi-1作为第一校验码寄存器的初值,将数据序列Pi-1的第二校验码CSBi-1作为第二校验码寄存器的初值与当前输入的数据序列Pi一起计算得出本次数据序列Pi的CSAi和CSBi,CSAi与上一个信息码的校验码CSBi-1连接到一起构成新数据序列。所谓CSAi与上一个信息码的校验码CSBi-1连接是指将二进制序列CSBi-1连到CSAi之后形成一个新的40位序列。

对连接好的40位序列进行CRC32运算,得出Pi序列的校验码作为最终的校验结果。重复上述步骤S11~S13,直至寄存器中的数据序列全部传输完毕,得到所有数据序列的校验码。在进行数据序列的校验时,仅根据最后一个数据序列的校验码即可得到所有寄存器中数据序列的正确性。因为最后一个数据序列中包含前边所有数据序列的校验码,当最后一个数据序列的校验码正确时,寄存器中传输的所有数据序列均正确。当最后一个数据序列的校验码不正确时,寄存器中传输的所有数据序列存在错误的情况。在本发明所提供的实施例中,最终获取所有数据序列的校验码,以便数据序列的传输和解码使用。

综上所述,本发明所提供的循环冗余校验方法,从寄存器中获取数据序列Pi;将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;计数器的数值逐一增加,重复上述步骤,直至寄存器中的数据序列全部传输完毕,得到寄存器中所有数据序列的校验码。在该运算中,每个序列的校验码都是该序列与上一序列校验码连接后的校验结果,避免了传统CRC32异或运算的信息丢失,同时在每个初值信息中保留了之前序列的信息,信息码携带的校验码CSBi与历史发送的所有信息码数据有关,而不仅仅取决于当前信息码和上一个信息码中的数据。

第二实施例

HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)是一种高速数字总线,每个信道的传输速率可达3.4Gb/s,该速率超过了常规配置集成电路自动测试系统的最高测试速率,因此使用HDMI标准的解码芯片解码HDMI信号,并将该数据序列发送到高性能FPGA验证的测试方案成为一种有效解决方案。使用该方案需要将HDMI接收端解码得到的RGB数据与发送端输出的理论RGB数据进行比较,从而判断HDMI模块发送的数据是否正常。

在进行RGB数据比较的时候最理想的方式为采用直接比较,即将标准结果直接存储于外部存储器中,每次检出的数据与标准数据比较,但实际应用中运算速度主要受限于存储器的读取速度,难以实时测试。

循环冗余校验作为高速数据处理流程的重要组成部分,完全适用于HDMI测试需求。PHY芯片输出的24bit RGB数据送入CRC模块,进行行CRC(或帧CRC)运算,在一行(或一帧)结束后再将CRC结果与理论结果进行比较,判断是否一致即可完成测试。该方法可以实现实时比较,但必须保证校验的差错控制在合理的范围内。

针对HDMI的循环冗余校验需要CRC算法满足实时性要求,传统的CRC并行算法需要占用大量的存储资源和逻辑资源,降低了系统的处理性能。

本发明所提供的第二实施例是一种采用两个生成多项式生成校验码来完成CRC运算的HDMI功能测试故障诊断方法,是将循环冗余校验方法用于HDMI测试,采用两路生成多项式校验方式简化了校验过程,减小了误码率。与第一实施例相比,其区别点主要在于:

如图5所示,本发明所提供的循环冗余校验方法,用于HDMI测试,具体包括如下步骤:

S21,将HDMI信号通过标准HDMI连接线和解码芯片相连,通过解码将数据序列Pi发送到FPGA(Field-Programmable Gate Array,即现场可编程门阵列)。

HDMI信号由被测试芯片发出,通过标准HDMI连接线和解码芯片相连,选用HDMI解码芯片,将解码的数值送到FPGA中进行循环冗余校验和比较,从而判断数据序列的正确性。

关于HDMI解码出来的数据。解码模块有效的转换接收RGB视频数据并提供高清的YCbCr格式,数字视频接口支持多种视频处理器,在本发明所提供的实施例中,选取24位RGB/YCbCr 4:4:4作为解码出的数据,传送给FPGA。解码出的数据以RCr、GY、BCb的方式存在,该数据同时送入FPGA完成循环冗余校验、比较,并最终输出结果。

S22,将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;

S23,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

S24,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

S25,计数器的数值逐一增加,重复上述步骤S22~S24,直至FPGA接收的数据序列全部传输完毕,得到FPGA中所有数据序列的校验码。

S26,提取FPGA中最后一个数据序列的校验码,将校验得出的数据序列与理论数据序列进行比较,判断HDMI信号是否正确。

在进行数据序列的校验时,仅根据最后一个数据序列的校验码即可得到收到的所有数据序列的正确性。因为最后一个数据序列中包含前边所有数据序列的校验码,当最后一个数据序列的校验码正确时,收到的所有数据序列均正确。当最后一个数据序列的校验码不正确时,收到的数据序列存在错误的情况。在本发明所提供的实施例中,最终获取所有数据序列的校验码,以便数据序列的传输和解码使用。

本发明所提供的是一种使用双生成多项式构成循环冗余校验的HDMI功能测试故障诊断方法。这种循环冗余校验方法将标准的CRC方法进行改进,使用两个生成多项式进行CRC运算,并通过级联运算减少了硬件资源的使用,提高诊断性能。该方法在不增加带宽的前提下提高了诊断性能,可以对HDMI进行更有效的功能测试,可在可实现更高的测试效率和更大的故障覆盖率。

第三实施例

本发明实施例还提供了一种循环冗余校验设备,用以实现上述的方法,如图3所示,该设备包括处理器32以及存储有处理器32可执行指令的存储器31;

其中,处理器32可以是通用处理器,例如中央处理器,还可以是数字信号处理器、专用集成电路,或者是被配置成实施本发明实施例的一个或多个集成电路。

其中,存储器31,用于存储程序代码,并将该程序代码传输给CPU。存储器31可以包括易失性存储器,例如随机存取存储器;存储器31也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器31还可以包括上述种类的存储器的组合。

具体地说,本发明实施例所提供的视图控件控制设备,包括处理器32和存储器31;存储器31上存储有可用在处理器32上运行的计算机程序,当计算机程序被处理器32执行时实现如下步骤:

S311,从寄存器中获取数据序列Pi;将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;

S312,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

S313,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

S3114,计数器的数值逐一增加,重复上述步骤,直至寄存器中的数据序列全部传输完毕,得到寄存器中所有数据序列的校验码。

其中,将该循环冗余校验方法用于HDMI检测,当计算机程序被处理器22执行时实现如下步骤;

S321,将HDMI信号通过标准HDMI连接线和解码芯片相连,通过解码将数据序列Pi发送到FPGA;

S322,获取数据序列Pi;将第一校验码CSAi-1和第二校验码CSBi-1作为数据序列Pi的初值与数据序列连接构成输入数据序列;分别进行CRC第一校验模式和CRC第二校验模式的校验,得到第一校验码CSAi和第二校验码CSBi,其中,i为正整数的计数器,i=1,2,……;CSB0为N位’0’序列,N为第二校验码的二进制位数,CSA0为M位’0’序列,M为第一校验码的二进制位数;

S323,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列;

S324,对构成的新数据序列再进行CRC第一校验模式的校验,得出数据序列Pi的校验码;

S325,计数器的数值逐一增加,重复上述步骤S322~S324,直至FPGA接收的数据序列全部传输完毕,得到FPGA中所有数据序列的校验码。

S326,提取FPGA中最后一个数据序列的校验码,将校验得出的数据序列与理论数据序列进行比较,判断HDMI信号是否正确。

其中,将第一校验码CSAi与上一个数据序列Pi-1的第二校验码CSBi-1连接到一起构成新数据序列,当计算机程序被处理器22执行时实现如下步骤;

将二进制序列的第二校验码CSBi-1连到第一校验码CSAi之后形成一个新数据位序列。

第四实施例

本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的用于实现上述方法实施例中循环冗余校验方法的部分步骤或者全部步骤。

上面对本发明所提供的循环冗余校验方法、设备及存储介质进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1