痞子衡嵌入式:经常使用的数据差错控制技术(0)- 索引


  你们好,我是痞子衡,是正经搞技术的痞子。本系列痞子衡给你们讲的是嵌入式经常使用的数据差错控制技术,共6篇文章,按部就班地介绍6种经常使用的差错控制技术。html

  通讯发展史与数据编码技术发展息息相关,为了检测与纠正在通讯中发生未知的数据错误,经常须要在原始数据编码时要引入一些技巧,这些技巧就是所谓的编码技术。仔细看下面这张图,想象本身就是其中的一个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

正文篇(持续更新中...3/6)

经常使用的数据差错控制技术(1)- 重复校验(Repetition Code)
经常使用的数据差错控制技术(2)- 奇偶校验(Parity Check)
经常使用的数据差错控制技术(3)- 和校验(Checksum)设计

经常使用的数据差错控制技术(4)- 循环冗余校验(CRC)
经常使用的数据差错控制技术(5)- 汉明码校验(Hamming Code SEC-DED)
经常使用的数据差错控制技术(6)- 博斯-乔赫里-霍克文黑姆码校验(BCH Code)htm

相关文章
相关标签/搜索