CN101673296A - 数据通讯过程中文件校验的方法 - Google Patents
数据通讯过程中文件校验的方法 Download PDFInfo
- Publication number
- CN101673296A CN101673296A CN200910189864A CN200910189864A CN101673296A CN 101673296 A CN101673296 A CN 101673296A CN 200910189864 A CN200910189864 A CN 200910189864A CN 200910189864 A CN200910189864 A CN 200910189864A CN 101673296 A CN101673296 A CN 101673296A
- Authority
- CN
- China
- Prior art keywords
- file
- verification
- panel region
- check
- recursive iteration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
数据通讯过程中文件校验的方法,解决嵌入式系统中对一个大的文件进行CRC校验时消耗内存过多的技术问题,采用的技术方案是,在循环冗余码CRC校验基础上增加数学递归迭代算法,将源文件的地址空间分成片,按照配套公式计算出从第一片到最后一片的校验和,通过校验和的比对方式判断文件正确与否。本发明的有益效果是:利用数学递归迭代算法简单,容易实现;发送端与接收端的比对校验速度快,效验结果准确;算法复杂度低,节省嵌入式系统内存的消耗量。
Description
技术领域
本发明属于嵌入式计算机通讯领域,涉及到一种基于循环冗余码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作比较,相同就表示文件发送正确,不同则表示文件发送错误。
Claims (4)
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片区域的大小则为余数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101898641A CN101673296B (zh) | 2009-09-02 | 2009-09-02 | 数据通讯过程中文件校验的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101898641A CN101673296B (zh) | 2009-09-02 | 2009-09-02 | 数据通讯过程中文件校验的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101673296A true CN101673296A (zh) | 2010-03-17 |
CN101673296B CN101673296B (zh) | 2011-07-20 |
Family
ID=42020519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101898641A Active CN101673296B (zh) | 2009-09-02 | 2009-09-02 | 数据通讯过程中文件校验的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101673296B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011157074A1 (zh) * | 2010-06-13 | 2011-12-22 | 中兴通讯股份有限公司 | 一种数据文件传输和校验的方法、设备及系统 |
CN102436388A (zh) * | 2011-12-22 | 2012-05-02 | 华为技术有限公司 | 嵌入式系统软件升级方法和装置 |
CN104219027A (zh) * | 2014-09-05 | 2014-12-17 | 四川长虹电器股份有限公司 | 纠正文件传输错误的分布式文件安全存储系统及其方法 |
CN104484310A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 公式规范性校验方法及装置 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及系统 |
CN108984423A (zh) * | 2017-05-31 | 2018-12-11 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN109597792A (zh) * | 2018-11-26 | 2019-04-09 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关产品 |
CN110058952A (zh) * | 2018-01-18 | 2019-07-26 | 株洲中车时代电气股份有限公司 | 一种嵌入式设备文件的校验方法及系统 |
CN110363027A (zh) * | 2019-06-21 | 2019-10-22 | 捷德(中国)信息科技有限公司 | 一种电子合同的生成及电子签名方法 |
CN111428465A (zh) * | 2020-03-24 | 2020-07-17 | 国网上海市电力公司 | 一种换流站直流控制保护软件修改工作辅助校验方法 |
CN116895039A (zh) * | 2023-09-11 | 2023-10-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种结冰云雾伪颗粒图像识别及特征参数测量方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592498A (en) * | 1994-09-16 | 1997-01-07 | Cirrus Logic, Inc. | CRC/EDC checker system |
US5751725A (en) * | 1996-10-18 | 1998-05-12 | Qualcomm Incorporated | Method and apparatus for determining the rate of received data in a variable rate communication system |
US6094465A (en) * | 1997-03-21 | 2000-07-25 | Qualcomm Incorporated | Method and apparatus for performing decoding of CRC outer concatenated codes |
-
2009
- 2009-09-02 CN CN2009101898641A patent/CN101673296B/zh active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011157074A1 (zh) * | 2010-06-13 | 2011-12-22 | 中兴通讯股份有限公司 | 一种数据文件传输和校验的方法、设备及系统 |
CN102436388A (zh) * | 2011-12-22 | 2012-05-02 | 华为技术有限公司 | 嵌入式系统软件升级方法和装置 |
CN104219027A (zh) * | 2014-09-05 | 2014-12-17 | 四川长虹电器股份有限公司 | 纠正文件传输错误的分布式文件安全存储系统及其方法 |
CN104484310A (zh) * | 2014-12-11 | 2015-04-01 | 北京国双科技有限公司 | 公式规范性校验方法及装置 |
CN105471917A (zh) * | 2016-01-14 | 2016-04-06 | 成都麦杰康科技有限公司 | 数据传输方法及系统 |
CN108984423B (zh) * | 2017-05-31 | 2020-10-27 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN108984423A (zh) * | 2017-05-31 | 2018-12-11 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
CN110058952A (zh) * | 2018-01-18 | 2019-07-26 | 株洲中车时代电气股份有限公司 | 一种嵌入式设备文件的校验方法及系统 |
CN109597792A (zh) * | 2018-11-26 | 2019-04-09 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关产品 |
CN110363027A (zh) * | 2019-06-21 | 2019-10-22 | 捷德(中国)信息科技有限公司 | 一种电子合同的生成及电子签名方法 |
CN110363027B (zh) * | 2019-06-21 | 2021-04-09 | 捷德(中国)科技有限公司 | 一种电子合同的生成及电子签名方法 |
CN111428465A (zh) * | 2020-03-24 | 2020-07-17 | 国网上海市电力公司 | 一种换流站直流控制保护软件修改工作辅助校验方法 |
CN111428465B (zh) * | 2020-03-24 | 2023-06-30 | 国网上海市电力公司 | 一种换流站直流控制保护软件修改工作辅助校验方法 |
CN116895039A (zh) * | 2023-09-11 | 2023-10-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种结冰云雾伪颗粒图像识别及特征参数测量方法 |
CN116895039B (zh) * | 2023-09-11 | 2023-11-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种结冰云雾伪颗粒图像识别及特征参数测量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101673296B (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101673296B (zh) | 数据通讯过程中文件校验的方法 | |
CN111814466B (zh) | 基于机器阅读理解的信息抽取方法、及其相关设备 | |
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US10572153B2 (en) | Efficient data management through compressed data interfaces | |
CN102402394B (zh) | 一种基于哈希算法的数据存储方法及装置 | |
CN106255953B (zh) | 持久性数据存储体中的前向参考记录的方法和系统 | |
CN103473088B (zh) | 一种单片机在线升级方法和系统 | |
CN108027713A (zh) | 用于固态驱动器控制器的重复数据删除 | |
WO2014048172A1 (en) | Method and system for correcting text | |
TW201539187A (zh) | 快閃記憶體之壓縮、讀取方法及應用其方法的裝置 | |
CN102938653A (zh) | 一种利用图形处理器gpu实现的并行rs译码方法 | |
CN105978886B (zh) | 一种适用于多品种计量仪表通讯的参数动态解析方法 | |
CN112800178A (zh) | 答案生成方法、装置、电子设备及可读存储介质 | |
CN102201882B (zh) | 一种线性分组码编码参数的盲识别方法 | |
CN109657127A (zh) | 一种答案获取方法、装置、服务器及存储介质 | |
CN111143240B (zh) | 图像存储方法、系统及终端设备 | |
EP2887224A1 (en) | Latency agnostic transaction buffer for request-grant protocols | |
CN100559509C (zh) | Bch纠错技术中的校验码写入方法及其写入装置 | |
CN112053058A (zh) | 指标模型的生成方法及装置 | |
CN111679959A (zh) | 计算机性能数据确定方法、装置、计算机设备及存储介质 | |
CN107943415B (zh) | 基于fat文件系统的查找空闲簇的方法和系统 | |
CN105653390A (zh) | 一种SoC系统的校验方法 | |
CN113590703B (zh) | Es数据导入方法、装置、电子设备及可读存储介质 | |
CN111143110B (zh) | 一种逻辑卷管理中基于元数据的raid数据恢复方法 | |
CN114550809A (zh) | 多存储卡的测试方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |