循环冗余校验 (CRC) 解释


循环冗余校验 (CRC) 是用于错误检测和纠正的最有效方法。它以一个 **k 比特**的消息作为输入,发送方创建一个 (n – k) 比特的序列,称为帧校验序列。输出的帧,包括 n 个比特,可以被某个固定数整除。模 2 算术用于此二进制加法,没有进位,就像 XOR 操作一样。

冗余意味着 **重复**。CRC 使用的冗余位通过用一个固定除数来分割数据单元进行改变。余数就是 CRC。

CRC 的特性

  • 它应该比除数少一位。

  • 将其连接到数据单元的末尾应该使生成的比特序列能够被除数整除。

CRC 生成器和校验器

过程

  • 一串 n 个 0 被添加到数据单元中。数字 n 比固定除数的比特数少 1。

  • 新的数据单元使用称为二进制除法的过程除以除数;除法产生的余数就是 CRC。

  • 在阶段 2 中解释的 n 位 CRC 恢复了添加到数据单元末尾的 0。

示例

消息 D = 1010001101 (10 位)

    预先确定的 P = 110101 (6 位)

    FCS R = 待计算 5 位

   因此,n = 15 K = 10 且 (n – k) = 5

该消息通过 25 生成:容纳 1010001101000

该乘积除以 P。

将余数插入到 25D 中以提供 T = 101000110101110,该值将被发送。

假设没有错误,接收方完美地接收了 T。接收到的帧除以 P。

由于没有余数,因此没有错误。

更新于: 2023年9月2日

79K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告