痞子衡嵌入式:經常使用的數據差錯控制技術(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

相關文章
相關標籤/搜索