用于数据块的差错检测方法和设备
技术领域
本发明属于数据通信领域,涉及一种数据块差错检测方法,包括发射方法和接收方法两方面,尤其是一种能够在不增加数据长度的情况下对多字段数据块进行可靠的误码检测的方法;本发明还涉及一种差错检测设备,包括发射设备和接收设备两方面,尤其是一种能够在不增加数据长度的情况下对多字段数据块进行可靠的误码检测的发射设备和接收设备。
背景技术
在通信系统中,尤其是无线通信系统中,数字信号在传输过程中会遇到干扰或者其它不利于传输的情形而造成接收方接收的信号产生差错,称之为误码。为了检测和纠正数字信号的误码,通常采用的差错检验与校正机制是在由多个数字信号组成的数据块中加上若干个比特的冗余信号,这称之为校验码和纠错码。校验码和纠错码通过一定的算法或规则得出,可以在有限的范围内检测和纠正误码。
数据块通常由一个或多个字段组成,通常的,数据块带有一个针对整个数据块的校验码或前向纠错码,而每个字段也可以分别带有对应自身字段的校验码或前向纠错码。
对于某些受到数据传输物理信道带宽的限制,能够承载的数据长度有限的通信系统,如数字集群通信系统,由多个相关联的字段组成的数据块中,某些字段可能包括前向纠错吗但不包括差错校验码。由此就会引起这些字段事实上存在差错却因为缺乏能够检测到该字段中的解码错误的能力而没有被识别出来,进而,被当作正确数据进行后续处理的情况,这不但会导致数据块的进一步处理结果无法预期,还会引起与数据块的进一步处理相关的严重问题。
举例来说,假设数据块的字段1用来表示字段2的数据类型或指令类型,字段2表示数据内容或指令内容,上述2个字段均具有各自独立的纠错码或校验码。当字段1在传输当中出现误码并且没被识别出存在误码,而字段2解码正确时,解码方就会将字段2理解为偏离其本意的其他含义,比如说,字段2的原意是一条普通数据,却被误解为一条操作指令,这将会引起数据块接收方的一次错误操作。
因此,期待找到一种能够在不增加数据长度的情况下对多字段数据块进行可靠的误码检测的方法和设备。
发明内容
本发明的目的在于克服现有技术中存在的问题,提出一种能够在不增加数据长度的情况下对多字段数据块进行可靠的误码检测的方法,本发明还提出一种能够在不增加数据长度的情况下对多字段数据块进行可靠的误码检测的差错检测设备。
为达到上述目的,本发明所采用的第一个技术方案是:
一种用于数据块的差错检测方法,包括如下步骤:
(S001)产生数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段 ;
(S002)根据第一字段选择一个第二多个比特的 CRC 初值 ;
(S003)用 CRC 初值作为 CRC 寄存器的初始值,然后计算第二多个比特的CRC 码 ;
(S004)将 CRC 码加入第二多个比特,形成完整的第二多个比特,包含 CRC码的第二多个比特被用于在解码第二多个比特时进行差错检测 ;和
(S005)发射包括第一多个比特和完整的第二多个比特的数据块。
上述技术方案还可以进一步完善:
作为优选,第二字段包括信息,第二多个比特包括信息比特。
作为优选,第一字段包括数据类型或命令类型,并且,第一字段指示第二字段中信息比特的信息类型。
为了达到上述目的,本发明所采用的第二个技术方案是:
一种用于数据块的差错检测方法,其特征在于,它包括如下步骤 :
(S001)接收数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段,第二多个比特包括第二字段的 CRC 码 ;
(S002)解码第一多个比特,以产生第一字段 ;
(S003)根据第一字段,并按照与数据块发送方相同的规则,选择一个第二多个比特的 CRC 初值 ;
(S004)用 CRC 初值作为 CRC 寄存器的初始值,然后对第二多个比特进行CRC 校验 ;
(S005)如果第二多个比特 CRC 校验出错,则判定数据块出现误码。
上述技术方案还可以进一步完善:
作为优选,第二字段包括信息,第二多个比特包括信息比特。
作为优选,第一字段包括数据类型或命令类型,并且,第一字段指示第二字段中信息比特的信息类型。
为了达到上述目的,本发明所采用的第三个技术方案是:
一种用于数据块的差错检测设备,其特征在于,包括 :
处理设备 :
产生数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段 ;
根据第一字段选择一个第二多个比特的 CRC 初值 ;
用 CRC 初值作为 CRC 寄存器的初始值,然后计算第二多个比特的 CRC 码 ;
将CRC码加入第二多个比特,形成完整的第二多个比特,包含CRC码的第二多个比特被用于在解码第二多个比特时进行差错检测 ;和
发射机,发射包括第一多个比特和完整的第二多个比特的数据块。
为了达到上述目的,本发明所采用的第四个技术方案是:
一种用于数据块的差错检测设备,包括:
一种用于数据块的差错检测设备,其特征在于,包括 :
接收机,接收数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段,第二多个比特包括第二字段的 CRC 码 ;
处理设备 :
解码第一多个比特,以产生第一字段 ;
根据第一字段,并按照与数据块发送方相同的规则,选择一个第二多个比特的 CRC 初值 ;
用 CRC 初值作为 CRC 寄存器的初始值,然后对第二多个比特进行 CRC 校验 ;
如果第二多个比特 CRC 校验出错,则判定数据块出现误码。
由于上述技术方案的采用,本发明与现有技术相比,具有以下优点:
在数据块发送时,根据第一字段选择第二字段的CRC初值,并计算第二字段的CRC校验码,在接收时,如果第一字段出现误码而未被检出,则接收方根据错误的第一字段就会选择和发送时不匹配的CRC初值对第二字段进行校验,这必然导致校验出错。通过上述方法和执行上述方法的设备,提高了数据块的检错能力,用不同的CRC初值进行计算不会增加数据块本身的长度,也不会增加校验码的长度,进一步的,由于本发明在信息发送阶段和信息接收阶段均只进行一次针对第二字段的CRC码计算,使得本发明所提出的技术方案也不会增加数据校验的运算步骤和运算量。
本发明在不增加原有数据块的数据长度的前提下,增加了数据块的检错能力,避免了由于部分字段的误解造成的错误操作,非常适用于承载能力有限的窄带通信系统中。
附图说明
图1是本发明的一种流程图,示出了数据块发射方的数据处理过程;
图2是本发明的另一种流程图,示出了数据块接收方的数据处理过程;
图3是一种TDMA体制的数字集群空中接口协议的数据结构;
图4是一种包含第一多个比特和第二多个比特的数据块的结构示意图。
具体实施方式
实施例1
如图1所示的用于数据块的差错检测方法,包括如下步骤:
(S001)产生数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段;
(S002)根据第一多个比特选择一个第二多个比特的CRC初值;
(S003)用该CRC初值作为CRC寄存器的初始值,然后计算第二多个比特的CRC码;
(S004)将CRC码加入第二多个比特,形成完整的第二多个比特,包含CRC码的第二多个比特被用于在解码第二多个比特时进行差错检测;和
(S005)发射包括第一多个比特和完整的第二多个比特的数据块。
第二字段包括信息,通常的,是指用来表征数据内容或指令内容的信息,并且,第二多个比特包括第二字段的CRC码和信息比特。
第一字段包括数据类型或命令类型,并且,第一字段用来指示第二字段中信息比特的数据类型,可选择的,第一字段还可以包括FEC码或CRC码,请参见图4。
实施例2
如图2所示的用于数据块的差错检测方法,包括如下步骤:
(S001)接收数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段,第二多个比特包括第二字段的CRC码;
(S002)解码第一多个比特,以产生第一字段;
(S003)根据第一字段的解码结果,并按照与数据块发送方相同的规则,选择一个第二多个比特的CRC初值;
(S004)用CRC初值作为CRC寄存器的初始值,然后对第二多个比特进行CRC校验;
(S005)如果第二多个比特CRC校验出错,则判定数据块出现误码。
第二字段包括信息,通常的,是指用来表征数据内容或指令内容的信息,并且,第二多个比特包括第二字段的CRC码和信息比特,这个CRC码是数据块发射方采用根据第一字段选择的CRC初值、通过CRC(循环冗余校验)算法对自身进行差错校验所生成的,在数据块接收端,第二字段根据解码后得到的第一字段并按照和发送方相同的规则选择的CRC初值,再次通过CRC算法对自身进行一次差错校验,如果校验结果不为0,则判定数据块出现了误码。
第一字段包括数据类型或命令类型,并且,第一字段用来指示第二字段中信息比特的信息类型,可选择的,第一字段还可以包括FEC码或CRC码,请参见图4。
实施例3
一种用于数据块的差错检测设备,包括:
处理设备:
产生数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段;
根据一个第一多个比特选择一个第二多个比特的CRC初值;
用CRC初值作为CRC寄存器的初始值,然后计算第二多个比特的一个CRC码;
将CRC码加入第二多个比特,形成完整的第二多个比特,包含CRC码的第二多个比特被用于在解码第二多个比特时进行差错检测;和
发射机,发射包括第一多个比特和完整的第二多个比特数据块。
实施例4
一种用于数据块的差错检测设备,包括:
接收机,接收数据块,数据块包括具有第一多个比特的第一字段和具有第二多个比特的至少一个第二字段,第二多个比特包括第二字段的CRC码;
处理设备:
解码第一多个比特,以产生第一字段;
根据第一字段,并按照与数据块发送方相同的规则,选择一个第二多个比特的CRC初值;
用CRC初值作为CRC寄存器的初始值,然后对第二多个比特进行CRC校验;
如果第二多个比特校验出错,则判定数据块出现误码。
实施例3和4中所述的处理设备是诸如微处理器、数字信号处理器、定制处理器和现场可编程门阵列(FPGA),加载在一个或多个通用或专用处理器中的程序指令与处理器外围(如无线电接收机、无线电发射机、用户输入设备等)的电路结合,来控制一个或多个处理器执行实施例1和2中叙述的差错检测方法。可替换的,上述方法与可以以定制逻辑的方式实现在一个或多个专用集成电路(ASIC)中、或实现在未存储程序指令的状态机中。在实施例3和4中,将状态机和ASIC二者都认定为“处理设备”。
实施例5
如图3所示,时隙类型字段对应于本发明所述的第一字段,它包括用于定义信息字段数据类型(或命令类型)的比特、CC(色码)和FEC校验码;信息字段对应于本发明所述的第二字段,包括数据比特及其CRC校验码。上述数据因TDMA发射和接收的需要,均被分为2块,对称地放在同步码(同步或嵌入命令)的两侧。
对于时隙类型字段来说,其只带有前向纠错码(FEC),而没有检错码。信息字段采用CRC算法进行校验,CRC初值根据时隙类型中的数据类型(或命令类型)按约定的规则进行选择,不同的数据类型(或命令类型)具有不同的CRC初值。
接着,根据时隙类型字段中的数据类型选择信息字段CRC初值,并用该CRC初值计算信息字段的CRC码。将计算得到的CRC码附加到信息字段中,和时隙类型一同形成含有CRC码的数据块,并通过发射机发送到接收方的接收机。
接收机接收数据块后,将其传输到处理设备,处理设备解码时隙类型字段,在这个字段中,包括有数据类型(或命令类型)比特,对其解码后根据解码得出的数据类型(或命令类型)按照和发送方相同的规则选择信息字段的CRC初值,并运用该CRC初值对信息字段进行CRC校验,如校验结果不为0,即可以判定数据块是否出现误码。
需要说明的是,尽管实施例5描述的是一种TDMA体制的数字集群空中接口协议的数据结构,但是,本发明的技术方案并不取决于空中接口协议的类型或所使用的信道接入方案(如TDMA、CDMA、FDMA等),因此,本发明的技术方案可以应用在任何类型的空中接口协议和信道接入方案中。
应理解,该实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改、等同替换等,这些等价形式同样落于本申请所附权利要求书所限定的范围。