痞子衡嵌入式:常用的数据差错控制技术(0)- 索引
作者:互联网
大家好,我是痞子衡,是正经搞技术的痞子。本系列痞子衡给大家讲的是嵌入式常用的数据差错控制技术,共6篇文章,循序渐进地介绍6种常用差错控制技术。
大家好,我是痞子衡,是正经搞技术的痞子。本系列痞子衡给大家讲的是嵌入式常用的数据差错控制技术,共6篇文章,循序渐进地介绍6种常用的差错控制技术。
通信发展史与数据编码技术发展息息相关,为了检测与纠正在通信中发生未知的数据错误,常常需要在原始数据编码时要引入一些技巧,这些技巧就是所谓的编码技术。仔细看下面这张图,想象自己就是其中的一个bit,是不是有身临其境地感受数据通信编码的感觉?是的话,欢迎阅读本系列文章。
本系列文章选取了用于差错控制的六大经典的编码校验方式,在进入正文之前,我们先用一张表对比这六大校验技术差异:
校验法对比
校验方法 | 数据块大小 | 校验码长度 | 检错能力 | 纠错能力 | 适用场合 | 失效分析 | 行业应用 |
---|---|---|---|---|---|---|---|
重复校验 | n bits | (q-1)*n bits q为重复数 | 不限bit错误 | x bits 但并不可靠 | 数据块小且对传输效率无要求 | 检错:重复码与原码出错bit位一致 纠错:错误码概率大于原码 | 增强实现版本用于FlexRay通信协议 |
奇偶校验 | n bits | 1 bit | 奇数个bit错误 | 无 | 数据块小且一般只发生1bit错误 | 偶数个bit错误 | 串口UART通信协议 |
和校验 | n bytes | 1 byte | 不限bit错误 | 无 | 数据块中等且错误bit较少 | 多个bit错误导致的增量和能整除0x100 | hex, s-record文件 |
循环冗余校验 | n bytes | 1/2/4/8 byte | 不限bit错误 | 设计初衷仅检错,原理上也可纠错(算法复杂) | 数据块大且错误bit无规律 | 多个bit错误导致碰撞现象(即错误数据CRC与原数据CRC恰好相等) | Modbus RTU模式,USB通信协议 |
汉明码校验 | 256/512 bytes | 22/24 bits | 2 bit错误 | 1 bit错误(仅发生1 bit错误时) | 数据块较大但常只发生1/2 bit错误 | 多于2 bit错误 | SLC NAND Flash ECC |
BCH码校验 | (m*k) bits m组k位 | (m*n) bits n>k | (x+1) bit错误 | x bit错误 | 数据块较大且容易发生多bit错误 | 多于(x+1) bit错误 | SSD NAND Flash(MLC/TLC) ECC |
标签:错误,差错控制,校验,嵌入式,痞子,bit,数据 来源: https://blog.51cto.com/u_12094353/2711198