CN116107800B - 一种校验码生成方法、数据恢复方法、介质、电子设备 - Google Patents
一种校验码生成方法、数据恢复方法、介质、电子设备 Download PDFInfo
- Publication number
- CN116107800B CN116107800B CN202310382768.9A CN202310382768A CN116107800B CN 116107800 B CN116107800 B CN 116107800B CN 202310382768 A CN202310382768 A CN 202310382768A CN 116107800 B CN116107800 B CN 116107800B
- Authority
- CN
- China
- Prior art keywords
- data
- check
- value
- check code
- byte
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明属于数据恢复技术领域,具体涉及一种校验码生成方法、数据恢复方法、介质、电子设备,其方法包括步骤:S1、通过CRC‑16算法计算源数据的第一校验数据;S2、采用取位查表模式的校验算法对源数据进行计算,以得到第二校验数据;S3、将第一校验数据、第二校验数据合并以生成最终校验码;本发明所述校验码生成方法生成的校验码,可以有效避免非0数据计算得到的检验码为0,且检验码只增加半个字节即可,兼顾了准确性和存储空间。
Description
技术领域
本发明属于数据恢复技术领域,具体涉及一种校验码生成方法、数据恢复方法、介质、电子设备。
背景技术
一般情况下,单片机程序RAM中定义的变量数据会因外在的干扰源(电磁波、太阳辐射、雷电、静电、脉冲群等),导致芯片中RAM变量数据错乱,这对程序的运行是非常致命的,通常情况程序员都有对RAM中定义的变量数据以及E2中的有效数据增加一组CRC校验码。后续只需要判断变量数据和有效数据对应的CRC校验码即可判断变量数据是否需要恢复。
例如申请号为CN201610274612.9的中国发明, 其公开了一种主从串行通讯协议,其包括一主设备和若干从设备,数据帧的传输格式为:协议帧的第1、2字节为包含子设备地址、命令、数据及CRC16校验的字节数;协议帧的第3、4字节为第1、2字节的取反;第5字节为从设备地址,第6字节为命令字节,最后两个字节为CRC16检验码,中间为数据字节。其中,CRC16检验用于保证子设备地址、命令、数据等内容的传输正确性。
但是由于目前CRC-16为异或算法,因此存在缺陷,某些非全0数据在计算CRC-16后会出现值为0000的情况,因此会出现变量数据、有效数据对应的检验码均为全0,但是俩者数据其实不一致的情况,此时系统判断为无需对变量数据进行恢复,然而实则需要进行恢复。因此采用一组CRC校验码的方式进行数据恢复不够可靠。
为了提高数据恢复的可靠性,可使用两种CRC算法,但每一组变量都需要存储2个CRC校验码,这样就会占用较多存储空间。
发明内容
针对现有技术中存在的上述问题,本发明提供一种校验码生成方法、数据恢复方法、介质、电子设备,本发明提供了一种可兼顾准确性和存储空间的校验码生成方法。
本发明采用以下技术方案:
本发明实施例第一方面提供一种校验码生成方法,包括步骤:
S1、通过CRC-16算法计算源数据的第一校验数据;
S2、采用取位查表模式的校验算法对源数据进行计算,以得到第二校验数据;
S3、将第一校验数据、第二校验数据合并以生成最终校验码;
其中采用取位查表模式的校验算法对源数据进行计算的流程,包括以下步骤:
A、对第一校验数据进行合并运算,并将合并值作为查表值;
B、基于当前查表值查询初始表,以得到当前校验码;
C、选取源数据中任一字节作为起始字节,将起始字节与当前校验码进行按位与运算,以得到运算结果;
D、将运算结果与bit(n-1)进行按位与运算,以得到当前字节对应的结果值,并将bit(n-1)和当前校验码进行按位异或运算,将异或运算结果更新为当前查表值,其中n表示当前迭代次数;
E、循环迭代步骤B~步骤D,依次得到源数据中从起始字节开始至最后一个字节对应的结果值,并将所有结果值进行累加,以得到累加值;
F、对累加值进行合并运算,以得到最终结果值,并作为第二校验数据。
作为优选方案,步骤S1与步骤S2之间还包括步骤:
判断源数据是否为全0,若是则直接输出0作为第二校验数据,并执行步骤S3;若否则执行步骤S2。
作为优选方案,步骤C中,所述起始字节为源数据中第一个字节。
作为优选方案,步骤F中,还包括步骤:
判断最终结果值是否为0,若否则将最终结果值作为第二校验数据,若是则改变源数据中起始字节位置,并返回步骤A,以重新计算得到第二校验数据。
作为优选方案,源数据的字节数小于等于8。
作为优选方案,步骤A中具体为:对第一校验数据的高4位和低4位进行合并运算,并将合并值作为查表值。
作为优选方案,步骤F中具体为:对累加值的高4位和低4位进行合并运算,以得到最终结果值,并作为第二校验数据。
本发明实施例第二方面提供一种数据恢复方法,采用如本发明实施例第一方面及第一方面任一项所述的一种校验码生成方法对RAM中变量数据以及有效数据进行校验码生成;
基于变量数据以及有效数据的校验码,判断是否需要对变量数据进行恢复。
本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的一种校验码生成方法。
本发明实施例第四方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的一种校验码生成方法。
本发明的有益效果是:
基于本发明所述校验码生成方法生成的校验码,可以有效避免非0数据计算得到的检验码为0,且检验码只增加半个字节即可,兼顾了准确性和存储空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述一种校验码生成方法中第二校验数据生成方法的流程图。
图2是根据本发明实施例提供的计算机可读存储介质的结构示意图。
图3是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
实施例一:
本实施例提供一种校验码生成方法,包括步骤:
S1、通过CRC-16算法计算源数据的第一校验数据;
S2、采用取位查表模式的校验算法对源数据进行计算,以得到第二校验数据;
S3、将第一校验数据、第二校验数据合并以生成最终校验码;
参照图1所示,其中采用取位查表模式的校验算法对源数据进行计算的流程,包括以下步骤:
A、对第一校验数据进行合并运算(高4位和低4位进行合并运算),并将合并值作为查表值;
B、基于当前查表值查询初始表,以得到当前校验码;
C、选取源数据中任一字节作为起始字节,将起始字节与当前校验码进行按位与运算,以得到运算结果;
D、将运算结果与bit(n-1)进行按位与运算,以得到当前字节对应的结果值,并将bit(n-1)和当前校验码进行按位异或运算,将异或运算结果更新为当前查表值,其中n表示当前迭代次数;
需要说明的是:bit(n-1)表示2进制中的相应值,第一次迭代中bit0即表示00000001,第二次迭代中bit1即表示00000010,第三次迭代中bit2即表示00000100…。
E、循环迭代步骤B~步骤D,依次得到源数据中从起始字节开始至最后一个字节对应的结果值,并将所有结果值进行累加,以得到累加值;
F、对累加值进行合并运算(高4位和低4位进行合并运算),以得到最终结果值,并作为第二校验数据。
具体地:
步骤S1与步骤S2之间还包括步骤:
判断源数据是否为全0,若是则直接输出0作为第二校验数据,并执行步骤S3;若否则执行步骤S2。
步骤C中,所述起始字节为源数据中第一个字节。
步骤F中,还包括步骤:
判断最终结果值是否为0,若否则将最终结果值作为第二校验数据,若是则改变源数据中起始字节位置,并返回步骤A,以重新计算得到第二校验数据。
以下通过具体例子以对本发明所述校验码生成方法的有益效果进行解释说明:
一、一种CRC16_XMODEM计算校验码生成方法:
1、数据为全0时,CRC16校验值为0x0000。
2、数据为{0x05,0x41,0x14,0x0F,0x02,0x8b,0x00,0x2c}时,CRC16校验值为0x97c2。
3、数据为{0x05,0x41,0x14,0x0F,0x01,0xA4,0xC3,0x00}时,CRC16校验值为0x0000,此处就是问题点,源数据并非全0,但计算出的CRC校验值也是全0。
二、两种CRC16_XMODEM计算校验码生成方法:
接第一种情况,当数据为{0x05,0x41,0x14,0x0F,0x01,0xA4,0xC3,0x00}时,CRC16_XMODEM校验值为0x0000,此时采用第二种CRC_CCITT方法校验时,校验值为0x679D,解决了第一种情况的问题,但又出现了新的问题,如果程序中所有数据都采用双CRC校验方式,对存储空间占用非常大,CRC为2个字节,双CRC即占用4个字节空间。
三、本发明所述校验码生成方法:
接第二种情况,当数据为{0x05,0x41,0x14,0x0F,0x01,0xA4,0xC3,0x00}时,CRC16_XMODEM校验值为0x0000,此时采用本发明所述校验码生成方法,校验值为0x5,即解决了第一种情况的问题,又解决了第二种占用空间大的问题。只需2字节+0.5字节,即占用2.5个字节空间,大幅减少了存储空间的占用。
以下通过具体例子,以对本发明所述校验码生成方法的流程进行详细解释:
以8个字节为一个源数据校验组,不足8个字节的单独为一个源数据校验组。
如数据{0x05,0x41,0x14,0x0F,0x01,0xA4,0xC3,0x00}的CRC16_XMODEM校验值为0x0000,将0x0000的高4位和低4位进行合并运算得到0x00,首先判断源数据是否全为0,由于不是,所以不能直接输出0作为第二校验码,用0x00查询初始表得到初始校验值0xFF。
以数据的第一位作为起始字节,因此将0x05与初始校验值0xFF进行按位与运算结果为0x05,在第一次迭代中,将运算结果0x05与bit0进行与运算,得结果值0x01,再将bit0和初始校验值0xFF进行按位异或运算得到继续查表值0xFE。
根据继续查表值0xFE查询初始表得到校验值0x78。将数据的第二位0x41与校验值0x78进行按位与运算结果为0x40,在第二次迭代中,将运算结果0x40与bit1进行与运算,得结果值0x00,再将bit1与校验值0x78进行按位异或运算得到继续查表值0x7A。
根据继续查表值0x7A查询初始表得到校验值0xF4。将数据的第三位0x14与校验值0xF4进行按位与运算结果为0x04,在第三次迭代中,将运算结果0x04与bit2进行与运算,得结果值0x04,再将bit2与校验值0xF4进行按位异或运算得到继续查表值0xF0。
依次类推,直至得到8个字节的所有运算结果,并将运算结果进行累加,最终累加值为0x05,将该最终累加值的高4位和低4位进行合并运算,输出最终结果值为0x5,并将该结果值与0x0000合并,以得到最终的校验码。
上述为第二校验码的最终合并结果不为0的情况,若为0,则需要更改起始字节的位置,重新进行计算,例如:数据{0x00,0x00,0x00,0x01},CRC16_XMODEM校验值为0x1021,高4位和第4位进行合并运算得到为0x31,用0x31查询初始表得到初始校验值0x83。
以数据的第一位作为起始字节,第一位0x00与初始校验值0x83进行按位与运算结果为0x00,在第一次迭代中,将运算结果0x00与bit0进行按位与运算,得结果值0x00,再将bit0和初始校验值0x83进行按位异或运算得到继续查表值0x82。
根据继续查表值0x82查询初始表得到校验值0x88。将数据的第二位0x00与校验值0x88进行按位与运算结果为0x00,在第二次迭代中,将运算结果0x00与bit1进行与运算,得结果值0x00,再将bit1与校验值0x88进行按位异或运算得到继续查表值0x8a。
依次类推直至4个字节均运算结束,得到的最终累加值为0x00,因此进行高4位和低4位的合并运算后,结果任为0。可见使用本发明方案,虽然可以大大降低非0源数据运算得到的校验码为0的情况出现,但仍有可能出现该情况,因此,本发明还进一步作了相应改进:
更改源数据的起始字节,用第二个字节作为起始字节,结合初始校验值0x83,进行上述同样的计算,第二检验码的结果仍为0,这里由于过程一致,因此不作赘述。
更改源数据的起始字节,用第三个字节作为起始字节,结合初始校验值0x83,进行上述同样的计算,第二检验码的结果仍为0,这里由于过程一致,因此不作赘述。
更改源数据的起始字节,用第四个字节作为起始字节,结合初始校验值0x83,进行上述同样的计算,结果值为0x01,因此第二检验码的结果为0x1,这里由于过程一致,因此不作赘述。
因此最终将0x1和0x1021进行合并以得到最终校验码。
需要说明的是,源数据的起始字节可以随意选取,当然为了保险起见,应当先选取源数据的第一个字节作为起始字节,当第一个字节进行上述计算过程得到的第二检验码结果为0,进一步依次选取第二个字节、第三个字节、第四个字节…(注:这里只是优选的选取顺序,也可先选取第三个字节或第四个字节),进行相应结算。
由此,进一步降低了非0源数据运算得到的校验码为0的情况出现。
上述初始表如下表1所示:
表1 初始表
需要说明的是:初始表中索引为10进制数,校验值为16进制数。
对查表进行举例说明:当查表值为0x82时,对应的10进制数是130,则对应表格中索引为130的校验值为0x88。
还需要补充说明的是:本实施例中仅采用一张表进行校验值的查找,其实还可在迭代过程中对表进行不断更新(即每次迭代过程中均采用不同的表),以进一步增加校验值生成逻辑的复杂性,进一步避免非0数据计算得到的检验码为0。
实施例二:
本实施例提供一种数据恢复方法,包括步骤:
采用如实施例一所述校验码生成方法对RAM中变量数据以及有效数据进行校验码生成,具体流程可参见实施例一中所述;
基于变量数据以及有效数据的校验码,判断是否需要对变量数据进行恢复。
具体为:校验码不一致则进行恢复,校验码一致则无需恢复。
实施例三:
参照图2所示,本发明实施例还提供一种存储介质,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中一种校验码生成方法的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述实施例一的流程。
其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
实施例四:
参照图3所示,本发明实施例还提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图3中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述实施例一中的一种校验码生成方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行实施例一中所述的一种校验码生成方法。
上述电子设备具体细节可以对应参阅实施例一中对应的相关描述和效果进行理解,此处不再赘述。
以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的保护范围内。
Claims (8)
1.一种校验码生成方法,其特征在于,包括步骤:
S1、通过CRC-16算法计算源数据的第一校验数据;
S2、采用取位查表模式的校验算法对源数据进行计算,以得到第二校验数据;
S3、将第一校验数据、第二校验数据合并以生成最终校验码;
其中采用取位查表模式的校验算法对源数据进行计算的流程,包括以下步骤:
A、对第一校验数据进行合并运算,并将合并值作为查表值;
B、基于当前查表值查询初始表,以得到当前校验码;
C、选取源数据中任一字节作为起始字节,将起始字节与当前校验码进行按位与运算,以得到运算结果;
D、将运算结果与bit(n-1)进行按位与运算,以得到当前字节对应的结果值,并将bit(n-1)和当前校验码进行按位异或运算,将异或运算结果更新为当前查表值,其中n表示当前迭代次数;
E、循环迭代步骤B~步骤D,依次得到源数据中从起始字节开始至最后一个字节对应的结果值,并将所有结果值进行累加,以得到累加值;
F、对累加值进行合并运算,以得到最终结果值,并作为第二校验数据;
步骤A中具体为:对第一校验数据的高4位和低4位进行合并运算,并将合并值作为查表值;
步骤F中具体为:对累加值的高4位和低4位进行合并运算,以得到最终结果值,并作为第二校验数据;
bit(n-1)表示2进制中的相应值,且第一次迭代中bit0表示00000001,第二次迭代中bit1表示00000010,第三次迭代中bit2表示00000100,依次类推。
2.根据权利要求1所述的一种校验码生成方法,其特征在于,步骤S1与步骤S2之间还包括步骤:
判断源数据是否为全0,若是则直接输出0作为第二校验数据,并执行步骤S3;若否则执行步骤S2。
3.根据权利要求1所述的一种校验码生成方法,其特征在于,步骤C中,所述起始字节为源数据中第一个字节。
4.根据权利要求1所述的一种校验码生成方法,其特征在于,步骤F中,还包括步骤:
判断最终结果值是否为0,若否则将最终结果值作为第二校验数据,若是则改变源数据中起始字节位置,并返回步骤A,以重新计算得到第二校验数据。
5.根据权利要求1所述的一种校验码生成方法,其特征在于,源数据的字节数小于等于8。
6.一种数据恢复方法,其特征在于,包括步骤:
采用如权利要求1-5任一项所述校验码生成方法对RAM中变量数据以及有效数据进行校验码生成;
基于变量数据以及有效数据的校验码,判断是否需要对变量数据进行恢复。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-5任一项所述的一种校验码生成方法。
8.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-5任一项所述的一种校验码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310382768.9A CN116107800B (zh) | 2023-04-12 | 2023-04-12 | 一种校验码生成方法、数据恢复方法、介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310382768.9A CN116107800B (zh) | 2023-04-12 | 2023-04-12 | 一种校验码生成方法、数据恢复方法、介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116107800A CN116107800A (zh) | 2023-05-12 |
CN116107800B true CN116107800B (zh) | 2023-08-15 |
Family
ID=86258236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310382768.9A Active CN116107800B (zh) | 2023-04-12 | 2023-04-12 | 一种校验码生成方法、数据恢复方法、介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107800B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861493B (zh) * | 2023-08-31 | 2024-03-29 | 上海芯联芯智能科技有限公司 | 一种校验码生成方法、处理器及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
CN101296053A (zh) * | 2007-04-25 | 2008-10-29 | 财团法人工业技术研究院 | 计算循环冗余校验码之方法及系统 |
CN101478369A (zh) * | 2009-01-05 | 2009-07-08 | 深圳华为通信技术有限公司 | 一种crc校验的方法和系统及crc初值影响矩阵 |
CN102739258A (zh) * | 2011-04-14 | 2012-10-17 | 普天信息技术研究院有限公司 | 一种计算循环冗余校验码的方法及装置 |
CN103297196A (zh) * | 2013-06-20 | 2013-09-11 | 成都国星通信有限公司 | 一种非整字节数据的循环冗余校验算法 |
CN105975424A (zh) * | 2016-04-28 | 2016-09-28 | 北京信息科技大学 | 一种主从串行通讯协议 |
CN108233944A (zh) * | 2017-12-29 | 2018-06-29 | 北京自动测试技术研究所 | 一种循环冗余校验方法、设备及存储介质 |
CN108599896A (zh) * | 2018-03-23 | 2018-09-28 | 卡斯柯信号有限公司 | 一种基于冗余编码系统的crc校验系统及方法 |
CN109936376A (zh) * | 2019-01-31 | 2019-06-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 按字节运算循环码crc16-ccitt校验的方法 |
CN111552590A (zh) * | 2020-04-16 | 2020-08-18 | 国电南瑞科技股份有限公司 | 一种电力二次设备内存位翻转的检测恢复方法及系统 |
CN113448764A (zh) * | 2020-03-25 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 校验码生成方法、装置、电子设备及计算机存储介质 |
WO2022141732A1 (zh) * | 2020-12-29 | 2022-07-07 | 芯启源(上海)半导体科技有限公司 | 基于usb3.2协议16比特循环冗余校验的硬件实现方法 |
US11626887B1 (en) * | 2022-05-12 | 2023-04-11 | Aira Technologies, Inc. | Byte-based error correction to improve for wireless networks |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613980B2 (en) * | 2003-06-06 | 2009-11-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System for computing a CRC value by processing a data message a word at a time |
US7797609B2 (en) * | 2004-08-19 | 2010-09-14 | Unisys Corporation | Apparatus and method for merging data blocks with error correction code protection |
TWI341096B (en) * | 2007-04-03 | 2011-04-21 | Ind Tech Res Inst | Method and system for calculating crc |
CN104750569A (zh) * | 2013-12-30 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种实现数据纠错的方法及装置 |
US11979232B2 (en) * | 2021-09-17 | 2024-05-07 | Synopsys, Inc. | Verification of Ethernet hardware based on checksum correction with cyclic redundancy check |
-
2023
- 2023-04-12 CN CN202310382768.9A patent/CN116107800B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
CN101296053A (zh) * | 2007-04-25 | 2008-10-29 | 财团法人工业技术研究院 | 计算循环冗余校验码之方法及系统 |
CN101478369A (zh) * | 2009-01-05 | 2009-07-08 | 深圳华为通信技术有限公司 | 一种crc校验的方法和系统及crc初值影响矩阵 |
CN102739258A (zh) * | 2011-04-14 | 2012-10-17 | 普天信息技术研究院有限公司 | 一种计算循环冗余校验码的方法及装置 |
CN103297196A (zh) * | 2013-06-20 | 2013-09-11 | 成都国星通信有限公司 | 一种非整字节数据的循环冗余校验算法 |
CN105975424A (zh) * | 2016-04-28 | 2016-09-28 | 北京信息科技大学 | 一种主从串行通讯协议 |
CN108233944A (zh) * | 2017-12-29 | 2018-06-29 | 北京自动测试技术研究所 | 一种循环冗余校验方法、设备及存储介质 |
CN108599896A (zh) * | 2018-03-23 | 2018-09-28 | 卡斯柯信号有限公司 | 一种基于冗余编码系统的crc校验系统及方法 |
CN109936376A (zh) * | 2019-01-31 | 2019-06-25 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 按字节运算循环码crc16-ccitt校验的方法 |
CN113448764A (zh) * | 2020-03-25 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 校验码生成方法、装置、电子设备及计算机存储介质 |
CN111552590A (zh) * | 2020-04-16 | 2020-08-18 | 国电南瑞科技股份有限公司 | 一种电力二次设备内存位翻转的检测恢复方法及系统 |
WO2022141732A1 (zh) * | 2020-12-29 | 2022-07-07 | 芯启源(上海)半导体科技有限公司 | 基于usb3.2协议16比特循环冗余校验的硬件实现方法 |
US11626887B1 (en) * | 2022-05-12 | 2023-04-11 | Aira Technologies, Inc. | Byte-based error correction to improve for wireless networks |
Non-Patent Citations (1)
Title |
---|
基于CRC算法的ATM信头校验;黄伟平 等;《计算机工程》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116107800A (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116107800B (zh) | 一种校验码生成方法、数据恢复方法、介质、电子设备 | |
CN108563685B (zh) | 一种银行标识代码的查询方法、装置及设备 | |
CN112860968A (zh) | 一种异常检测的方法以及装置 | |
CN111930923A (zh) | 布隆过滤器系统及过滤方法 | |
CN110309629A (zh) | 一种网页代码加固方法、装置及设备 | |
CN111143513A (zh) | 一种敏感词识别方法、装置及电子设备 | |
CN104980161A (zh) | 一种哈夫曼解码方法及装置 | |
CN115982416A (zh) | 一种数据处理方法、装置、可读存储介质及电子设备 | |
CN105528183A (zh) | 一种存储数据的方法及存储设备 | |
CA3138761A1 (en) | Method, device, computer equipment and storage medium for verifying inter-system data admission | |
CN107679107B (zh) | 一种基于图数据库的电网设备可达性查询方法及系统 | |
CN112801302A (zh) | 一种基于接口的机器学习模型发布方法和系统 | |
WO2023202290A1 (zh) | 一种基于脚本的数据流图生成方法及装置 | |
CN108681554B (zh) | 一种利用正则表达式的匹配方法、装置及设备 | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
US11989560B2 (en) | Method and device for executing instructions to perform artificial intelligence | |
CN113726692A (zh) | 一种基于生成对抗网络的虚拟网络映射方法及装置 | |
EP3087510A1 (en) | Improved pattern matching machine for repeating symbols | |
CN114253524A (zh) | 一种基于脚本的用于辅助状态机逻辑代码设计的方法 | |
WO2017148096A1 (zh) | 循环冗余校验码的生成方法和装置 | |
CN111552638B (zh) | 一种代码检测方法及装置 | |
CN113535722A (zh) | 基于映射的dag溯源取样方法、系统、设备及存储介质 | |
CN115185524A (zh) | 向量指令的识别方法、装置、电子设备及计算机可读存储介质 | |
CN115292558B (zh) | 基于正则表达式的模式匹配方法、系统、存储介质及设备 | |
CN108038203B (zh) | 数据字典的存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |