一种基于CRC校验码的数据存储及校验方法技术

技术编号:35269306 阅读:37 留言:0更新日期:2022-10-19 10:37
本发明专利技术公开一种基于CRC校验码的数据存储及校验方法,属于数据技术领域,存储方法包括:将信息数据依次存储在各存储字长的信息位中;分别对各存储字长中的信息位所存储的信息数据进行计算,将生成的内侧校验码分别存储在内侧校验位;对数据块中的信息数据进行计算,将生成的外侧校验码存储在外侧校验位。校验方法包括:读取数据块中的信息数据和外侧校验码并进行CRC校验;判断校验是否通过,是则结束,否则执行纠错处理;读取数据块中各存储字长的信息数据和内侧校验码并进行CRC校验;判断校验是否通过,是则读取下一个存储字长,否则纠错;根据预设的纠错表进行纠错处理。本发明专利技术通过双重校验码的设置,从而有效提高信息数据传递中的校验效率。的校验效率。的校验效率。

【技术实现步骤摘要】
一种基于CRC校验码的数据存储及校验方法


[0001]本专利技术涉及数据处理
,特别涉及一种基于CRC校验码的数据存储及校验方法。

技术介绍

[0002]随着信息技术的发展,各行各业对数据的存储和传输需求呈指数级增长。在控制领域,对数据存储准确性、完整性和安全性要求尤其高。基于MCU数据处理能力和数据空间的增加,业界出现了多种校验方法,但仍不能准确满足要求。
[0003]一般常规的CRC校验多数用来检错以及1位数据错误纠错,也有在数据传输中作2位CRC数据纠错,但一般均应用于低位数检错纠错。传输数据使用循环冗余(n,k)码,检错易于实现,但是由于n>>k,纠错能力不易实现,多位位纠错更难实现。通过查表来纠错,多位错误表十分巨大,计算机需要耗费空间和时间来处理错误数据。

技术实现思路

[0004]针对现有技术存在的数据存储和传输过程中计算机需要耗费较多的时间和空间来对信息数据进行校验的问题,本专利技术的目的在于提供一种基于CRC校验码的数据存储及校验方法。
[0005]为实现上述目的,本专利技术的技术方案为:
[0006]第一方面,本专利技术提供一种基于CRC校验码的数据存储方法,所述方法用于将信息数据存储到存储单元中的数据块内,所述数据块包括外侧校验位及若干个依次设置的存储字长,每个所述存储字长均包括有用于存储信息数据的信息位以及用于存储内侧校验码的内侧校验位;所述方法包括以下步骤:
[0007]S1、按顺序将信息数据依次存储在各所述存储字长的信息位中;
[0008]S2、基于第一运算规则分别对各所述存储字长中的信息位所存储的信息数据进行计算,并将计算生成的内侧校验码分别存储在各所述存储字长的内侧校验位中;
[0009]S3、基于第二运算规则对所述数据块所存储的信息数据进行计算,并将计算生成的外侧校验码存储在所述外侧校验位中。
[0010]优选的,所述信息位与所述内侧校验位的位数相同。
[0011]优选的,所述存储字长为8位、16位或32位。
[0012]优选的,所述外侧校验位设置在所述数据块的尾部。
[0013]优选的,所述存储单元为flash EEPROM存储器。
[0014]优选的,所述第一运算规则、所述第二运算规则为CRC16_XMODEM、CRC16_USB或CRC16_MODBUS。
[0015]第二方面,本专利技术还提供一种基于CRC校验码的数据校验方法,用于对从存储单元的数据块中读取到的信息数据进行校验,所述信息数据按照如上所述方法存储在所述数据块中,所述方法包括以下步骤:
[0016]S10、读取数据块中存储的信息数据和外侧校验码,并基于第二运算规则对所述数据块进行CRC校验;
[0017]S20、判断校验是否通过,是则结束,否则执行纠错处理。
[0018]进一步的,所述纠错处理包括步骤:
[0019]S30、按顺序读取所述数据块中每个存储字长所存储的信息数据和内侧校验码,并且每读取一个存储字长后,基于第一运算规则对所述存储字长进行CRC校验;
[0020]S40、判断校验是否通过,是则读取下一个存储字长,否则对当前存储字长进行纠错;
[0021]S50、根据预设的纠错表对当前存储字长中信息位所存储的信息数据进行纠错处理。
[0022]优选的,所述纠错表为1位纠错表或多位纠错表。
[0023]采用上述技术方案,本专利技术的有益效果在于:本专利技术基于CRC方法通过增加校验位数实现了长位数信息的检错和纠错,并通过在数据块的尾部增加新的CRC校验位实现了长字节信息的双重校验;并且针对双重校验方式制定了相应的校验策略,从而保证了计算效率,确保校验高效执行。
附图说明
[0024]图1为本专利技术一种基于CRC校验码的数据存储方法的流程图;
[0025]图2为本专利技术实施例一中flash EEPROM存储器的结构示意图;
[0026]图3为本专利技术一种基于CRC校验码的数据校验方法的流程图。
具体实施方式
[0027]下面结合附图对本专利技术的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本专利技术,但并不构成对本专利技术的限定。此外,下面所描述的本专利技术各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
[0028]需要说明的是,在本专利技术的描述中,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示对本专利技术结构的说明,仅是为了便于描述本专利技术的简便,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。
[0029]对于本技术方案中的“第一”和“第二”,仅为对相同或相似结构,或者起相似功能的对应结构的称谓区分,不是对这些结构重要性的排列,也没有排序、或比较大小、或其他含义。
[0030]另外,除非另有明确的规定和限定,术语“安装”、“连接”应做广义理解,例如,连接可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个结构内部的连通。对于本领域的普通技术人员而言,可以根据本专利技术的总体思路,联系本方案上下文具体情况理解上述术语在本专利技术中的具体含义。
[0031]实施例一
[0032]一种基于CRC校验码的数据存储方法,该方法用于将信息数据存储到存储单元中。
其中,存储单元一般具有存储数据和读写数据的功能,一个存储单元可以是1个字节、2个字节等。存储单元通常包含若干个存储字长,存储字长为存储单元中的二进制代码(存储字)位数,存储字长可以是8位、16位、32位等,若干个存储字长按顺序依次布置即形成用于存储信息数据的数据块,存储单元通常包括若干个数据块,相应的,各数据块之间也具有次序关系。
[0033]本实施例中,存储单元配置为flash EEPROM存储器,存储字长配置为32位,每个数据块为256字节。对于每个存储字长来说,其分为用于存储信息数据的信息位以及用于存储内侧校验码(CRC码)的内侧校验位,并且配置信息位和内侧校验位均为16位。另外,在每个数据块的尾部还设置有用于存储外侧校验码(CRC码)的外侧校验位,该外侧校验位也为16位,如图2所示;当然,外侧校验位也可以设置在数据块的头部。
[0034]如图1所示,本实施例提出的数据存储方法包括以下步骤:
[0035]S1、按顺序将信息数据依次存储在各存储字长的信息位中。
[0036]即对于每个数据块来说,当需要通过该数据块进行信息数据存储时,则按照其内各存储字长的排列顺序,从头到尾地将需要存储的信息数据依次存储在每个存储字长的16位信息位中。而每存满一个数据块,则按次序对下一个数据块进行存储操作即可。
[0037]S2、基于第一运算规则分别对各存储字长中的信息位所存储的信息数据进行计算,并将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CRC校验码的数据存储方法,所述方法用于将信息数据存储到存储单元中的数据块内,其特征在于:所述数据块包括外侧校验位及若干个依次设置的存储字长,每个所述存储字长均包括有用于存储信息数据的信息位以及用于存储内侧校验码的内侧校验位;所述方法包括以下步骤:S1、按顺序将信息数据依次存储在各所述存储字长的信息位中;S2、基于第一运算规则分别对各所述存储字长中的信息位所存储的信息数据进行计算,并将计算生成的内侧校验码分别存储在各所述存储字长的内侧校验位中;S3、基于第二运算规则对所述数据块所存储的信息数据进行计算,并将计算生成的外侧校验码存储在所述外侧校验位中。2.根据权利要求1所述的数据存储方法,其特征在于:所述信息位与所述内侧校验位的位数相同。3.根据权利要求2所述的数据存储方法,其特征在于:所述存储字长为8位、16位或32位。4.根据权利要求1所述的数据存储方法,其特征在于:所述外侧校验位设置在所述数据块的尾部。5.根据权利要求1所述的数据存储方法,其特征在于:所述存储单元为flash EEPROM存储器。6.根据权利要求1所述的数据存储方...

【专利技术属性】
技术研发人员:余忠宇黄斌魏琪周健
申请(专利权)人:上海恩阶电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1