登录/注册

循环冗余检查

更多

好的,循环冗余检查(Cyclic Redundancy Check),通常简称为 CRC,是一种在数字通信和数据存储中广泛使用的错误检测技术

它的核心目的是:检测在数据传输或存储过程中可能发生的意外数据改动(错误)

以下是关于循环冗余检查的关键点解释:

  1. 基本原理:

    • 发送方: 在要发送的原始数据块(消息)后面,附加一个短小的、计算出来的二进制序列,称为 CRC 码校验和
    • 计算过程: CRC 码是通过对原始数据执行特定的数学计算(基于模 2 除法/多项式除法)生成的。这个计算依赖于一个双方(发送方和接收方)预先约定好的 生成多项式
    • 接收方: 收到数据(原始数据 + CRC 码)后,用相同的生成多项式对整个接收到的数据块(包括附加的 CRC 码)再次进行同样的计算。
    • 校验结果:
      • 如果计算得到的余数为 0:表示数据在传输/存储过程中很可能没有发生错误
      • 如果计算得到的余数不为 0:则表明数据在传输/存储过程中肯定发生了错误
  2. 关键特点:

    • 高效: CRC 计算通常可以通过硬件(如网卡、存储控制器)或高效的软件算法快速完成,对系统性能影响小。
    • 检错能力强: 它特别擅长检测常见的错误类型,例如:
      • 单个比特翻转
      • 突发性错误(连续多个比特出错)
      • 奇数个比特错误
    • 非纠错: CRC 仅用于检测错误,它本身不能纠正错误。 一旦检测到错误,通常需要请求发送方重传数据或采取其他纠错机制。
    • 广泛应用: 是许多重要协议和标准的基础,例如:
      • 网络通信:以太网 (Ethernet)、Wi-Fi、PPP、ATM 等帧校验。
      • 存储系统:硬盘驱动器 (HDD)、固态硬盘 (SSD)、光盘 (CD/DVD/Blu-ray) 文件系统(如 ZIP, RAR, 7z 等)的数据校验。
      • 文件传输:FTP 等协议。
      • 串行通信。
  3. 为什么叫“循环”?

    • 这个名字来源于其数学基础——循环码。在计算 CRC 时使用的模 2 除法操作,其核心是二进制系数的多项式除法。这些多项式运算在有限域(伽罗华域)中具有循环移位特性。
  4. 常见的“循环冗余检查错误”:

    • 当你在复制文件、读取光盘、进行网络传输等操作时,系统提示“循环冗余检查错误”或 “CRC Error”,这通常意味着:
      • 读取的数据块(来自硬盘、光盘、网络包等)计算出的 CRC 值与存储或传输时附加的 CRC 值不匹配。
      • 这表明该数据块在存储或传输过程中发生了损坏
    • 可能的原因包括:
      • 物理介质损坏(硬盘坏道、光盘划痕)。
      • 数据传输线缆故障或接触不良。
      • 网络干扰导致数据包损坏。
      • 源文件本身已损坏。

总结来说:

循环冗余检查 (CRC) 是一种高效且强大的错误检测码。它通过在数据后附加一个根据特定数学规则(多项式除法)计算出的短校验码(CRC 码)来工作。接收方通过重新计算并比较校验码来判断数据是否在传输或存储过程中发生了意外改变。它广泛应用于确保计算机网络、存储设备和各种通信协议中数据的完整性。当出现“循环冗余检查错误”时,通常表示数据已损坏。

芯源循环冗余校验(CRC)功能

1 概述 循环冗余校验(CRC) 主要应用于核实数据传输或数据存储的正确性和完整性。CW32R030 内部集成CRC 计算单元, 支持采用多种CRC 算法对输入数据进行CRC 计算。 2 主要特性

2026-01-12 06:07:20

CRC(循环冗余校验)应用举例

CRC(循环冗余校验)应用举例

2024-05-16 16:12:32

华大电子MCU CIU32M010、CIU32M030循环冗余校验计算单元及电源管理

华大电子MCU CIU32M010、CIU32M030循环冗余校验计算单元及电源管理

2023-06-20 10:22:03

32位可编程循环冗余校验(CRC)

电子发烧友网站提供《32位可编程循环冗余校验(CRC).pdf》资料免费下载

资料下载 尚文清 2023-09-25 11:22:29

AN5507_STM32H7 系列闪存接口中的循环冗余校验

AN5507_STM32H7 系列闪存接口中的循环冗余校验

资料下载 刘辉 2022-11-21 08:11:13

AN-1251:ADAS1000循环冗余

AN-1251:ADAS1000循环冗余码

资料下载 佚名 2021-04-18 13:44:32

AN-1277: 利用ADV7850的循环冗余校验

AN-1277: 利用ADV7850的循环冗余校验

资料下载 佚名 2021-03-19 07:11:49

使用FPGA实现循环冗余校验CRC编码器的设计资料说明

介绍了循环冗余校验(CRC)编码器的设计及FPGA实现过程,采用原理图输入法对整个系统进行了编译和仿真,并在芯片EPlK30TCl44-3中对该设计的核心部分进行了测试验证。结果表明,试验数据与理论分析结果完全相符。

资料下载 佚名 2021-02-05 17:00:00

CRC循环冗余校验简介

CRC 是Cyclic Redundancy Check的缩写,循环冗余校验,用于校验数据传输的完整性。一般情况下在数据发送前计算CRC校验值,附在发送数据之后,数据接收方也按照同样方法计算CRC,然后对比计算结果,

2023-04-24 13:04:54

从原理到代码理解CRC循环冗余校验

本文详细介绍了CRC循环冗余计算的数学原理,算法中使用的参数说明,并以Modbus协议中的CRC-16算法为例,进行手算验证,同时提供LabVIEW和C语言的直接计算CRC-16 值的代码以及C的查表计算CRC-16

2023-01-29 09:00:00

并行循环冗余校验算法

循环冗余码校验(CRC)是一种众所周知的错误检测代码,已广泛用于以太网,PCIe和其他传输协议中。现有的基于FPGA的实现解决方案在高性能场景中会遇到资源过度利用的问题。填充零问题和可编程性的引入

2022-02-08 16:42:07

如何利用循环冗余校验(CRC)计算单元进行传输数据的校验呢

循环冗余校验(CRC)计算单元是什么?如何利用循环冗余校验(CRC)计算

2021-12-15 06:04:22

Verilog数字系统基础设计中的循环冗余校验

CRC(循环冗余校验) CRC介绍 临时“插播”,后面有实例。 CRC(Cyclic Redundancy Check,循环

2021-08-17 17:08:56

冗余与硬冗余

软冗余是通过软件冗余包实现的冗余,软冗余是两个独立运行的CPU通过标准的

2021-02-09 16:48:00

基于EP2C35-672 FPGA实现CRC循环冗余校验的自定义指令设计

通信系统中,为确保数据传输和存储的可靠性,引入了信道编码。一是可使得编码后的码流频谱适应信道频率特性,二是可检测并纠正传输中的误码。前者属于谱成形技术,后者属于差错控制技术。循环冗余校验(CRC

2020-10-04 14:53:00

7天热门专题 换一换
相关标签