一种基于研磨机系统的通信数据包校验方法

文档序号:7818389阅读:227来源:国知局
一种基于研磨机系统的通信数据包校验方法
【专利摘要】本发明公开了一种基于研磨机系统的通信数据包校验方法,通过CRC校验的方式,生成发送数据包,然后接受模块接收到数据包解压缩,判断校验和是否正确,将CRC校验方式用于研磨机数据通信中,解决了现有技术中研磨机领域串口通信数据包容易出错或丢失的问题。通过CRC校验和的方式计算校验位数据,这种方式计算量小,节约时间,同时,计算的准确性高,有效保证了测试的准确率。
【专利说明】一种基于研磨机系统的通信数据包校验方法

【技术领域】
[0001]本发明属于电子设备应用领域,具体涉及一种基于研磨机系统的通信数据包校验方法。

【背景技术】
[0002]循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(X)。根据G(X)可以生成K位信息的校验码,而G(X)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(X)左移R位,则可表示成C(x) *x的R次方,这样C (X)的右边就会空出R位,这就是校验码的位置。通过C(x)*X的R次方除以生成多项式G(X)得到的余数就是校验码。
[0003]利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
[0004]CRC是常用的校验码,在早期的通信中运用广泛,因为早期的通信技术不够可靠(不可靠性的来源是通信技术决定的,比如电磁波通信时受雷电等因素的影响),不可靠的通信就会带来‘确认信息’的困惑,书上提到红军和蓝军通信联合进攻山下的敌军的例子,第一天红军发了条信息要蓝军第二天一起进攻,蓝军收到之后,发一条确认信息,但是蓝军担心的是‘确认信息’如果也不可靠而没有成功到达红军那里,那自己不是很危险?于是红军再发一条‘对确认的确认信息’,但同样的问题还是不能解决,红军仍然不敢贸然行动。
[0005]对通信的可靠性检查就需要‘校验’,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长η个bit,信息码长k个bit,就称为(n, k)码。它的编码规则是:1、首先将原信息码(kbit)左移r位(k+r=n) 2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。非常简单,要说明的:模2除就是在除的过程中用模2力卩,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是:0+0=1+1=0, 1+0=0+1=1即‘异’则真,‘非异’则假。由此得到定理:a+b+b=a也就是‘模2减’和‘模2加’真值表完全相同。有了加减法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。
[0006]在研磨机领域,大多采用的是232通信和485通信等串口通信,这种通信方式数据结构简单,容易操作,但是,串口通信数据传输慢,数据包容易错误或丢失,在研磨机工作过程中,数据丢失会影响研磨精度及研磨效率。


【发明内容】

[0007]本发明所要解决的技术问题是:提供一种基于研磨机系统的通信数据包校验方法,解决了现有技术中研磨机领域串口通信数据包容易出错或丢失的问题。
[0008]本发明为解决上述技术问题采用以下技术方案:
一种基于研磨机系统的通信数据包校验方法,所述研磨机系统包括数据发送单元、数据接收单元,所述校验方法包括如下步骤:
步骤1、构建通信协议的头文件;
步骤2、构建通信数据包校验和的高字节校验数据存储区列表、低字节校验数据存储区列表,以及校验和存储区列表查询索引;
步骤3、定义校验和存储区,定义高字节、低字节的初始化数据;
步骤4、数据发送单元获取待发送的数据包的包头以及数据长度;
步骤5、根据数据包的包头判断数据包类型;
步骤6、对每个数据包的数据区数据进行CRC校验和计算,并且将校验和与预先定义的校验和高字节、低字节的初始化数据进行或运算,运算后的数据存储于该数据包的最后两个字节,然后将该数据包进行压缩后发送;
步骤7、数据接收单元接收到压缩后的数据包,进行解压缩,获取该数据包的包头,以及校验和字节,根据校验和数据存储区列表查询索引,查询该数据包校验和的高字节及低字节所在校验数据存储区列表中的位置;
步骤8、判断该数据校验和的高字节数据是否与高字节校验数据存储区列表中相应位置的数据一致,如果一致,则执行步骤9,否则,丢弃该包,重复执行步骤4至步骤7 ;
步骤9、判断该数据校验和的低字节数据是否与低字节校验数据存储区列表中相应位置的数据一致,如果一致,则数据接收单元接收该数据包,并进行处理,否则,数据接收单元丢弃该包,重复执行步骤4至步骤8。
[0009]所述的数据包的结构依次为数据包头、数据串、校验和。
[0010]所述步骤3中低字节、高字节的初始化数据均为OxfT。
[0011]所述步骤6中最后两个字节依次为高字节、低字节的顺序。
[0012]所述步骤6中CRC校验和check为两个字节,按如下公式计算:
Check=X16 + X15 + X2 + X?,其中,X=10。
[0013]与现有技术相比,本发明具有以下有益效果:
1、CRC校验易于用二进制的电脑硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,将CRC校验应用于研磨机通信领域,保证数据传输过程中的正确率,避免因丢包或错误造成研磨精度低的问题。
[0014]2、CRC校验原理简单,易于实现,用于研磨机控制程序中,不会占用很多的硬件资源,节省了数据存储空间。

【专利附图】

【附图说明】
[0015]图1为本发明通信连接示意图。
[0016]图2为本发明的带CRC校验和的数据包构成框图。

【具体实施方式】
[0017]下面结合附图对本发明的结构及工作过程作进一步说明。
[0018]如图1、图2所示,一种基于研磨机系统的通信数据包校验方法,所述研磨机系统包括数据发送单元、数据接收单元,所述校验方法包括如下步骤:
步骤1、构建通信协议的头文件;
步骤2、构建通信数据包校验和的高字节校验数据存储区列表、低字节校验数据存储区列表,以及校验和存储区列表查询索引;
步骤3、定义校验和存储区,定义高字节、低字节的初始化数据;
步骤4、数据发送单元获取待发送的数据包的包头以及数据长度;
步骤5、根据数据包的包头判断数据包类型;
步骤6、对每个数据包的数据区数据进行CRC校验和计算,并且将校验和与预先定义的校验和高字节、低字节的初始化数据进行或运算,运算后的数据存储于该数据包的最后两个字节,然后将该数据包进行压缩后发送;
步骤7、数据接收单元接收到压缩后的数据包,进行解压缩,获取该数据包的包头,以及校验和字节,根据校验和数据存储区列表查询索引,查询该数据包校验和的高字节及低字节所在校验数据存储区列表中的位置;
步骤8、判断该数据校验和的高字节数据是否与高字节校验数据存储区列表中相应位置的数据一致,如果一致,则执行步骤9,否则,丢弃该包,重复执行步骤4至步骤7 ;
步骤9、判断该数据校验和的低字节数据是否与低字节校验数据存储区列表中相应位置的数据一致,如果一致,则数据接收单元接收该数据包,并进行处理,否则,数据接收单元丢弃该包,重复执行步骤4至步骤8。
[0019]所述的数据包的结构依次为数据包头、数据串、校验和。
[0020]RS485串口反馈的8位数据的格式框图如图2所示,
其中Idle为空闲时间,SD2为起始指针,ADR为测试地址,TYP为数据类型,PDU为数据读数,BCC为校验位。
[0021]例如:0204 85 00 02 00 00 13 88 1A,
02 03 85 00 02 00 00 13 88 1D,
02 01 85 00 02 00 00 13 88 1F,
02 02 85 00 02 00 00 13 88 1C,
如果读数为以上类似数据,则说明MAX485端口正常。
[0022]所述步骤3中低字节、高字节的初始化数据均为OxfT。
[0023]所述步骤6中最后两个字节依次为高字节、低字节的顺序。
[0024]所述步骤6中CRC校验和check为两个字节,按如下公式计算:
Check=X16 + X15 + X2 + X?,其中,X=10。
[0025]通过CRC校验和的方式计算校验位数据,这种方式计算量小,节约时间,同时,计算的准确性高,有效保证了测试的准确率。
[0026]本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而这些属于本发明的实质精神所引伸出的显而易见的变化或变动仍属于本发明的保护范围。
【权利要求】
1.一种基于研磨机系统的通信数据包校验方法,所述研磨机系统包括数据发送单元、数据接收单元,其特征在于:所述校验方法包括如下步骤: 步骤1、构建通信协议的头文件; 步骤2、构建通信数据包校验和的高字节校验数据存储区列表、低字节校验数据存储区列表,以及校验和存储区列表查询索引; 步骤3、定义校验和存储区,定义高字节、低字节的初始化数据; 步骤4、数据发送单元获取待发送的数据包的包头以及数据长度; 步骤5、根据数据包的包头判断数据包类型; 步骤6、对每个数据包的数据区数据进行CRC校验和计算,并且将校验和与预先定义的校验和高字节、低字节的初始化数据进行或运算,运算后的数据存储于该数据包的最后两个字节,然后将该数据包进行压缩后发送; 步骤7、数据接收单元接收到压缩后的数据包,进行解压缩,获取该数据包的包头,以及校验和字节,根据校验和数据存储区列表查询索引,查询该数据包校验和的高字节及低字节所在校验数据存储区列表中的位置; 步骤8、判断该数据校验和的高字节数据是否与高字节校验数据存储区列表中相应位置的数据一致,如果一致,则执行步骤9,否则,丢弃该包,重复执行步骤4至步骤7 ; 步骤9、判断该数据校验和的低字节数据是否与低字节校验数据存储区列表中相应位置的数据一致,如果一致,则数据接收单元接收该数据包,并进行处理,否则,数据接收单元丢弃该包,重复执行步骤4至步骤8。
2.根据权利要求1所述的基于研磨机系统的通信数据包校验方法,其特征在于:所述的数据包的结构依次为数据包头、数据串、校验和。
3.根据权利要求1所述的基于研磨机系统的通信数据包校验方法,其特征在于:所述步骤3中低字节、高字节的初始化数据均为Oxff。
4.根据权利要求1所述的基于研磨机系统的通信数据包校验方法,其特征在于:所述步骤6中最后两个字节依次为高字节、低字节的顺序。
5.根据权利要求1所述的基于研磨机系统的通信数据包校验方法,其特征在于:所述步骤6中CRC校验和check为两个字节,按如下公式计算:
Check=X16 + X15 + X2 + X?,其中,X=10。
【文档编号】H04L1/00GK104378174SQ201410599004
【公开日】2015年2月25日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】徐花, 肖亚韪, 张静雅 申请人:苏州德鲁森自动化系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1