数据通讯过程中文件校验的方法.pdf

上传人:a**** 文档编号:1004384 上传时间:2018-03-25 格式:PDF 页数:12 大小:469.90KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910189864.1

申请日:

2009.09.02

公开号:

CN101673296A

公开日:

2010.03.17

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20090902|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

太仓市同维电子有限公司

发明人:

李新志; 王志波; 汪 澜; 张锡健

地址:

215400江苏省太仓市陆渡镇飞沪北路

优先权:

专利代理机构:

深圳市智科友专利商标事务所

代理人:

曲家彬

PDF下载: PDF下载
内容摘要

数据通讯过程中文件校验的方法,解决嵌入式系统中对一个大的文件进行CRC校验时消耗内存过多的技术问题,采用的技术方案是,在循环冗余码CRC校验基础上增加数学递归迭代算法,将源文件的地址空间分成片,按照配套公式计算出从第一片到最后一片的校验和,通过校验和的比对方式判断文件正确与否。本发明的有益效果是:利用数学递归迭代算法简单,容易实现;发送端与接收端的比对校验速度快,效验结果准确;算法复杂度低,节省嵌入式系统内存的消耗量。

权利要求书

1、  数据通讯过程中文件校验的方法,通讯传输的目标文件包括源文件以及以校验码形式生成的头文件,该方法是在循环冗余码校验方法基础上实现的,其特征在于:以上方法中校验和的生成是借助数学递归迭代思想完成的,校验方法的具体步骤是:
在发送端,
A1、根据文件的大小首先设定每个文件片的大小,将源文件按照文件大小以及相应的地址空间分成N片区域,N是大于等于1的整数;
A2、计算校验和,利用递归迭代思想和配套的计算公式,对文件的每个文件片用递归迭代的方式计算校验和,并最终计算出整个文件的递归迭代校验和J,并将此校验和J存储在中间存储单元;
A3、定义头文件格式,将校验和J记录在头文件中,与源文件合并后生成目标文件传输到接收端;
在接收端,
B1、在接收到的文件中头中,首先提取头文件中存储的传送端的递归迭代生成的校验和J,然后将接收到的目标文件删除头文件,得到剩余文件;
B2、以与发送端相同的计算方法计算剩余文件的校验和,同理按照步骤A2的方法计算并生成最终递归迭代的校验和K;
B3、将接收端得到的校验和K与发送端得到的校验和J比对,完成校验过程。

2、
  根据权利要求1所述的数据通讯过程中文件校验的方法,其特征在于:所述的校验和的初始值为0。

3、
  根据权利要求1所述的数据通讯过程中文件校验的方法,其特征在于:所述的发送端在计算校验和过程时,利用递归迭代思想和配套计算公式,计算出第N片区域的校验和,并将第N片区域的效验和存储在中间存储单元;接收端在比对时,只需对此第N片区域的校验和进行比对。

4、
  根据权利要求1所述的数据通讯过程中文件校验的方法,其特征在于:源文件按照文件大小以及相应的地址空间分成N片区域,其中第1片至第N-1片区域的大小等分,第N片区域的大小则为余数。

说明书

数据通讯过程中文件校验的方法
技术领域
本发明属于嵌入式计算机通讯领域,涉及到一种基于循环冗余码CRC校验的方法,特别是一种对文件进行CRC校验时采用递归迭代的方法。
背景技术
随着社会的进步,科技的发展,多元化设备也是日新月异,用户对嵌入式设备也提出了更高的要求,需要能够提供功能完备、安全、快捷、稳定、易操作等优点的嵌入式设备,全而完善的功能必定需要一套完备的管理机制,小而专的系统简称为嵌入式系统。
目前比较常见的嵌入式系统有Linux,WinCE,VxWorks,UC/OS,Nucleus,各个系统都有其优缺点,各个嵌入式系统在不同的时期和不同的应用需要而得到推广的,Linux嵌入式系统就是一个很好的嵌入式系统,应用最广且开源的操作系统,WinCE,VxWorks,UC/OS,Nucleus都是付费的嵌入式操作系统,在开发过程中可以得到很好的技术支持。就目前的嵌入式系统中Linux在这块市场占了很大一部分市场,Linux的特点是开源,免费,并且存在一个庞大的开源组织不管在实际开发过程遇到什么问题都可以通过开源论坛,或者是其它途径找解决方案,该系统为嵌入式系统注入了活力,使今后嵌入式系统的发展历上添加了重重的一笔。如上所述,由于嵌入式设备的需求量很大,对嵌入式系统的发展提供了很好的契机。
在项目开发尤其是嵌入式开发的过程中,经常要用到一种或者几种校验来保证文件内容的可靠性。在实际工程中,校验的方法非常多,像md5校验、CRC校验、异或校验、齐偶校验等,但是CRC校验是最常用的一种。
CRC算法已经成熟,并且有比较经典的现成代码可供我们利用。CRC计算可以靠专用的硬件来实现,但是对于低成本的微控制器系统,在没有硬件支持下实现CRC检验,关键的问题就是如何通过软件来完成CRC计算,也就是CRC算法的问题。CRC校验的基本思想是利用线性编码理论,当两台计算机通讯时,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,(k与r为正整数),最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。
但在工程技术中,CRC校验通常是一次性的对整个文件或者镜像进行校验。先把整个文件打开,读到计算机的内存中,然后一次性地对整个文件进行校验,这样做,尤其在文件很大时极其浪费内存。而对于嵌入式设备来说,内存资源有限,一次性校验一个文件很不实用。
发明内容
本发明的目的是为了解决嵌入式系统中对一个大的文件进行CRC校验时消耗内存过多的技术问题,设计了数据通讯过程中文件校验的方法,在CRC思想的基础上又利用了数学递归迭代思想,对比通过此方法得出的效验码,节省了内存资源的消耗量。
本发明为实现发明目的采用的技术方案是,数据通讯过程中文件校验的方法,通讯传输的目标文件包括源文件以及以校验码形式生成的头文件,该方法是在循环冗余码校验方法基础上实现的,以上方法中校验和的生成是借助数学递归迭代思想完成的,校验方法的具体步骤是:
在发送端,
A1、根据文件的大小首先设定每个文件片的大小,将源文件按照文件大小以及相应的地址空间分成N片区域,N是大于等于1的整数;。
A2、计算校验和,利用递归迭代思想和配套的计算公式,对文件的每个文件片用递归迭代的方式计算校验和,并最终计算出整个文件的递归迭代校验和J,并将此校验和J存储在中间存储单元;
A3、定义头文件格式,将校验和J记录在头文件中,与源文件合并后生成目标文件传输到接收端;
在接收端,
B1、在接收到的文件中头中,首先提取头文件中存储的传送端的递归迭代生成的校验和J,然后将接收到的目标文件删除头文件,得到剩余文件;
B2、以与发送端相同的计算方法计算剩余文件的校验和,同理按照步骤A2的方法计算并生成最终递归迭代的校验和K;
B3、将接收端得到的校验和K与发送端得到的校验和J比对,完成校验过程。
本方法的基本思想是在循环冗余码CRC校验基础上增加数学递归迭代算法,将源文件的地址空间分成片,按照配套公式计算出从第一片到最后一片的校验和,通过校验和的比对方式判断文件正确与否。
本发明的有益效果是:利用数学递归迭代算法简单,容易实现;发送端与接收端的比对校验速度快,效验结果准确;算法复杂度低,节省嵌入式系统内存的消耗量。
下面结合附图对本发明进行详细说明。
附图说明
图1是本发明的方法在发送端的处理流程图。
图2是本发明的方法在接收端的处理流程图。
具体实施方式
数据通讯过程中文件校验的方法,通讯传输的目标文件包括源文件以及以校验码形式生成的头文件,该方法是在循环冗余码校验方法基础上实现的,以上方法中校验和的生成是借助数学递归迭代思想完成的,校验方法的具体步骤是:
在发送端,
A1、根据文件的大小首先设定每个文件片的大小,将源文件按照文件大小以及相应的地址空间分成N片区域,N是大于等于1的整数;。
A2、计算校验和,利用递归迭代思想和配套的计算公式,对文件的每个文件片用递归迭代的方式计算校验和,并最终计算出整个文件的递归迭代校验和J,并将此校验和J存储在中间存储单元;
A3、定义头文件格式,将校验和J记录在头文件中,与源文件合并后生成目标文件传输到接收端;
在接收端,
B1、在接收到的文件中头中,首先提取头文件中存储的传送端的递归迭代生成的校验和J,然后将接收到的目标文件删除头文件,得到剩余文件;
B2、以与发送端相同的计算方法计算剩余文件的校验和,同理按照步骤A2的方法计算并生成最终递归迭代的校验和K;
B3、将接收端得到的校验和K与发送端得到的校验和J比对,完成校验过程。
本方法的基本思想是在循环冗余码CRC校验基础上增加数学递归迭代算法,将源文件的地址空间分成片,按照CRC配套计算公式计算出文件递归迭代校验和,通过校验和的比对方式判断文件正确与否。
为了便于计算机处理与设置,上述的校验和的初始值为0。
为了进一步提高计算机内存单元的使用率,上述的发送端在计算校验和过程时,利用递归迭代思想和配套计算公式,计算出第N片区域的校验和,并将第N片区域的效验和存储在中间存储单元;接收端在比对时,只需对此第N片区域的校验和进行比对。
为了进一步方便计算机处理以及提高校验速度,源文件按照文件大小以及相应的地址空间分成N片区域,其中第1片至第N-1片区域的大小等分,第N片区域的大小则作为余数。
下面列举一例来说明本方法中的递归迭代原理:
首先设定头文件,比如256字节,其中有一块单元将用来存放递归迭代发校验和。
发送端,源文件的大小为m字节,设定的分片大小为k字节,则源文件可以分为n片:
当m/k有余数时:n=m/k+1,这时,最后一片的大小c=m-k*(n-1);
当m/k整除时:n=m/k;
其中,m、c、k为正数,n为大于等于0的正整数;
而CRC的校验和计算公式为:(i为大于等于0小于等于n-1的整数);
crc[i+1]=f(crc[i],addr[i+1],size[i+1]);
其中f:表示crc计算用到的表达式;
crc[i]:表示第i阶crc校验和,当i=0时,crc[0]=0;
addr[i+1]:第i+1片文件在内存中的起始地址,在实际的运算中,每次都可以把文件的片的内容存放到内存中某一固定地址,假设为addr;
size[i+1]:第i+1片文件的大小,前边的文件片大小一定是设定的大小k,只有最后一次的大小有可能小点,是m-k*(n-1);
迭代递归运算时,i从0始,也就是说,
第1次迭代递归
crc[1]=f(crc[0],addr,k)
第2次迭代递归
crc[2]=f(crc[1],addr,k)
..................
第i次:
crc[i]=f(crc[i-1],addr,k)
................
最后一次:
crc[n]=f(crc[n-1],addr,m-k*(n-1))
到此为止,最后一次的crc[n]就是我们要的校验和J。把这个校验和J保存到设计好的文件头中的用于存放crc校验和J的中间存储单元,然后用软件工具把刚才校验的文件加到头文件后边即可。
在接收端,对于一个接收到的整个目标文件,先剥掉头文件(比如256字节),并提取头文件中的校验和J,对剩下的文件内容采用和发送端一样的校验方法进行校验,得到最终的校验和K,用此校验和K与提取的CRC校验和J作比较,相同就表示文件发送正确,不同则表示文件发送错误。

数据通讯过程中文件校验的方法.pdf_第1页
第1页 / 共12页
数据通讯过程中文件校验的方法.pdf_第2页
第2页 / 共12页
数据通讯过程中文件校验的方法.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《数据通讯过程中文件校验的方法.pdf》由会员分享,可在线阅读,更多相关《数据通讯过程中文件校验的方法.pdf(12页珍藏版)》请在专利查询网上搜索。

数据通讯过程中文件校验的方法,解决嵌入式系统中对一个大的文件进行CRC校验时消耗内存过多的技术问题,采用的技术方案是,在循环冗余码CRC校验基础上增加数学递归迭代算法,将源文件的地址空间分成片,按照配套公式计算出从第一片到最后一片的校验和,通过校验和的比对方式判断文件正确与否。本发明的有益效果是:利用数学递归迭代算法简单,容易实现;发送端与接收端的比对校验速度快,效验结果准确;算法复杂度低,节省嵌。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1