一种新型数据校验方法与流程

文档序号:22553599发布日期:2020-10-17 02:33阅读:152来源:国知局
一种新型数据校验方法与流程

本发明属于数据控制技术领域,具体涉及一种新型数据校验方法,特别涉及一种适用于主动光学控制系统的新型数据校验方法。



背景技术:

数据校验是为保证数据的完整性进行的一种验证操作。通常用一种指定的算法对原始数据计算出的一个校验值,接收方用同样的算法计算一次校验值,如果两次计算得到的检验值相同,则说明数据是完整的。

现有的数据校验方法普遍存在检错率低,校验速度慢的缺点。以主动光学控制系统中的光学校验为例,随着大型地基望远镜对主镜面面形精度的要求越来越高,传统的主镜由于其质量、加工、造价以及支撑难度等急剧增加已经不能满足要求,因此薄镜面主动光学技术迅速发展并逐渐成熟。主动光学包含了光学工程、精密仪器、计算机、自动控制等领域,其核心原理是通过波前传感器对镜面面形进行实时监测,计算出所需的校正坐标点和力的大小,进而控制分布在反射镜背面的促动器阵列向反射镜施加轴向作用力,进行镜面面形控制,达到校正波前误差的目的。其中,要保证力促动器校正力分辨率达到mn并保持稳定,这要求数据在传输过程中要保证其快速性和准确性。目前,大型地基望远镜主动光学控制系统中所使用的数据校验方法主要有三种。

1、累加和校验,其不足是检错率一般,例如一个字节多1,一个字节少1,则会出现误判。

2、奇偶校验,其不足是检错率只有50%,只能检测到奇数个数据码出错,对于偶数个数据码出错则无法检测。

3、crc校验,其不足是一位一位地计算会占用很多处理器处理时间,尤其是对传输速度有一定要求的高速通信的场合。

而且,这些数据校验方式均采用误码重传的机制,只能发现错误,不能纠正错误,这大大影响了数据传输的快速性,从而对主镜面面形控制精度带来一定的影响。



技术实现要素:

为实现上述目的,本发明提供如下技术方案:

一种新型数据校验方法,包括:

步骤1:传输d位数据码d1d2d3……dd时,将p位校验码p1p2p3……pp添加到数据码中组成新的n位码字;其中,所述数据码与所述校验码的位数满足如下关系:

n=d+p≤2p-1

其中,d为数据码位数,p为校验码的位数,d、p均为正整数;

步骤2:确定校验码的位置以及取值,将校验码安插到2n处,再计算出校验码的取值;

步骤3:新增第二校验码p对第一校验码p1~pp进行校验,新增第三校验码d对数据码d1~dd进行校验,第二校验码p、第三校验码d满足如下关系:

步骤4:新增第一状态码sp对第一校验码p1~pp和第二校验码p进行校验,新增第二状态码sd对数据码d1~dd和第三校验码d进行校验,第一状态码sp、第二状态码sd满足如下关系:

步骤5:将校验码与数据码进行分组处理,若码字传输过程中没有出现错误,则各状态码的校验结果为0。

更进一步的,所述步骤2中,校验码的位置安插在2n位,然后从第i位的校验码所在第2n位开始,连续校验2n位后再隔2n位继续校验,如此类推得到求解校验码的方程组:

更进一步的,将接收到的码字分三种情况处理:

1)若仅单个数据码出错:根据状态码找到错误位;对错误码进行取反校正;去除校验码,提取并接收数据信息;

2)若仅单个校验码出错:不检测或者纠正校验码,直接提取并接收数据信息;

3)若单个校验码和单个数据码同时出错:结合新增状态码可知至少有两个出错位,无法实现数据纠正,重传码字,再次进行校验。

更进一步的,在发送端,根据数据码位数计算出所需校验码的位数,然后将校验码安插到2n处,再计算出校验码的取值,最后组成新的码字进行发送;在接收端,接收到新码字后,在特定位置获取所有校验码,然后根据相应公式求解出状态码,最后再进行分类处理。

与现有技术相比,本发明的有益效果是:

本发明的方法在传统海明码校验方法的基础上进行进一步优化,在不增加码字冗余度的同时,既保留了传统海明码校验方法的误码检测与自动校正的优点,又提高了误码检测能力和数据的校验速率,大大提高了数据传输的快速性和准确性,当将该方法应用于主动光学控制系统中时,有助于主镜面面形校正精度的进一步提升。

附图说明

图1是本实施例中位数与状态码的关系图;

图2是本发明中发送端编码流程图;

图3是本发明中接收端解码纠错流程图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

本发明提供一种如图1-3所示的新型数据校验方法,在发送端,根据数据码位数计算出所需校验码的位数,然后将校验码安插到2n处,再计算出校验码的取值,最后组成新的码字进行发送;在接收端,接收到新码字后,在特定位置获取所有校验码,然后根据相应公式求解出状态码,最后再进行分类处理,根据相应的情况,做出相应的处理。本发明的新型数据校验方法是在传统海明码校验方法的基础上进行优化,传输d位数据码d1d2d3……dd(d为正整数),需要p位校验码p1p2p3……pp(p为正整数),d与p的关系满足公式d+p≤2p-1(d为数据码位数,p为校验码的位数)。该方法包括:

1、新增校验码p对p1~pp进行校验,校验码d对数据码d1~dd进行校验,校验码p、d可以通过公式(1)、(2)计算得到。

2、新增状态码sp对校验码p1~pp和新增校验码p进行校验、新增状态码sd对数据码d1~dd和新增校验码d进行校验,状态码sp、sd可以通过公式(3)、(4)计算得到。

本实施例中的数据位数与状态码的关系如图1所示。

3、将接收到的码字分三种情况处理:单个数据码出错;单个校验码出错;单个校验码和单个数据码同时出错,根据不同的情况做出相应的处理。

以下以8位数据码d1d2d3d4d5d6d7d8为例对本发明的方法进行说明。本实施例的新型数据校验方法包括如下步骤:

步骤1、根据数据码的位数计算出所需校验码位数,并将p位校验码添加到d位数据码中组成新的n位码字。其中,数据码与所需校验码位数满足如下的数学关系:

n=d+p≤2p-1(1)

由公式(1)可知,8位数据码d1~d8需要4位校验码p1p2p3p4。

步骤2、确定p位校验码的位置以及取值,校验码的位置满足一定的规律,必须安插在2n位(如1、2、4、8),然后从第i位(i=1、2、3、4)的校验码所在第2n位开始,连续校验2n位后再隔2n位继续校验,如此类推可得到求解校验码的方程组,(默认采用偶校验):

步骤3、新增校验码p对p1p2p3p4进行校验,校验码d对数据码d1~d8进行校验,校验码p、d可以通过公式(3)、(4)计算得到。

步骤4、新增状态码sp对校验码p1~p4和新增校验码p进行校验、新增状态码sd对数据码d1~d8和新增校验码d进行校验,状态码sp、sd可以通过公式(5)、(6)计算得到。

步骤5、将校验码与数据码进行分组处理,分组情况见公式(7)。若码字传输过程中没有出现错误,则各状态码(s4s3s2s1)的校验结果应该为0。

步骤6、将接收到的码字分三种情况处理:

1)单个数据码出错

例如:发送的码字为001100111110,接收到的码字为001100011110,即第七位d4出错。

则sp=0,p1p2p3p4=0011;sd=1,s4s3s2s1=0111(即十进制7),表示校验码无误,数据码出错,且可知是第七位d4出错,然后对第七位d4进行校正,并接收信息。

2)单个校验码出错

例如:发送的码字为001100111110,接收的码字为011100111110,即第二位p2出错。

则sp=1,p1p2p3p4=0111;sd=0,s4s3s2s1=0010(即十进制2),表示校验码出错,数据码无误。因此可不用检测或者纠正校验码,直接提取信息并接收。

3)单个校验码和单个数据码同时出错

例如:发送的码字为001100111110,接收的码字为011100011110,即第二位p2和第七位d4出错。则sp=1,p1p2p3p4=0111;sd=1,s4s3s2s1=0101(即十进制5),出现定位误码出错的情况。结合状态码sp和sd可知至少有两个位出现错误,无法实现数据纠正,可直接重传码字,再次进行校验。

综上所述,本发明克服现有技术的不足,在传统海明码校验方法的基础上进行进一步优化。在不增加码字冗余度的同时,既保留了传统海明码校验方法的误码检测与自动校正的优点,又提高了误码检测能力和数据的校验速率,大大提高了主动光学控制系统的数据传输的快速性和准确性,有助于主镜面面形校正精度的进一步提升。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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