電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 61|回復(fù): 0
收起左側(cè)

如何選擇CRC校驗(yàn)碼的長(zhǎng)度?

[復(fù)制鏈接]

660

主題

660

帖子

4567

積分

四級(jí)會(huì)員

Rank: 4

積分
4567
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-11-30 08:01:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
' `" E: a$ k! ?- ]; t
點(diǎn)擊上方藍(lán)色字體,關(guān)注我們
/ ]7 y* O( a' b- a. t9 z2 K+ ?
# q. h2 t+ E8 }8 ~3 ?; a選擇CRC校驗(yàn)碼的長(zhǎng)度時(shí)確實(shí)需要在檢錯(cuò)能力和系統(tǒng)開銷之間做出權(quán)衡。CRC碼的長(zhǎng)度(通常是4、8、16、32位)直接影響到能檢測(cè)到的錯(cuò)誤類型和概率。
; I( Y# G9 R0 B& s; {3 W' D( i4 w+ N& X- i  c/ Y  G

5 s. \# O" m+ A4 H要確定在一定檢錯(cuò)概率 p 下的最小CRC長(zhǎng)度,可以從幾個(gè)方面入手,包括信息長(zhǎng)度 n、錯(cuò)誤檢測(cè)概率需求 p、以及CRC多項(xiàng)式的選擇。& @' |9 C2 X# b9 i) U; B
( v) k, p, p5 }, B* G
下面從理論背景、實(shí)用方法以及計(jì)算步驟等方面詳細(xì)解釋。
# {, D+ n, P: W  ]6 u' @19 t$ H1 W) `( Y+ D4 A+ g, \
理論背景:CRC的檢錯(cuò)原理
% o6 ]8 M4 N) b" v; QCRC(Cyclic Redundancy Check)使用一個(gè)特定的生成多項(xiàng)式對(duì)數(shù)據(jù)幀進(jìn)行余數(shù)計(jì)算,產(chǎn)生一個(gè)校驗(yàn)碼。0 R2 c3 |0 h+ U9 B! G2 p+ C
8 V4 ^& D7 E; a5 i$ ?; `
接收端利用相同的多項(xiàng)式重算余數(shù),如果余數(shù)為零則判定無(wú)誤差,否則判定出錯(cuò)。
0 O. x, o$ d& r* r# h+ X9 A2 J3 W/ }7 Y; E: g
對(duì)于不同長(zhǎng)度的CRC碼,其生成多項(xiàng)式能探測(cè)不同類型的錯(cuò)誤:
; C/ |. j4 D: t) t+ `
  • 單比特錯(cuò)誤:任何CRC都能檢測(cè)單比特錯(cuò)誤。
  • 連續(xù)位翻轉(zhuǎn)的突發(fā)錯(cuò)誤:長(zhǎng)度為 k 位的CRC最多可以檢測(cè)到長(zhǎng)度不超過 k 位的突發(fā)錯(cuò)誤。
  • 隨機(jī)錯(cuò)誤:概率與CRC碼的位數(shù)有關(guān)。" Y2 Q7 U! j& J

    ! \$ K3 L- Z) s2
    ; J9 \* w, k/ Q0 J  V1 E: t檢錯(cuò)概率的數(shù)學(xué)模型
    8 M) x4 C. u8 d: d3 ICRC的檢錯(cuò)概率可以近似通過以下公式進(jìn)行估算:
    0 g& j/ R( r! X6 t. B# c. ? % l4 G- m+ c& A
    其中 k為CRC校驗(yàn)碼的位數(shù)。
    ( X( N* A4 [+ K0 s+ Z0 ~4 h8 D. S0 w4 m" ?
    例如,對(duì)于一個(gè)8位的CRC碼,理論上可檢測(cè)到的錯(cuò)誤概率約為 1?1/256=0.996。從公式中可以看出,位數(shù)越多,檢錯(cuò)概率越高。
    & ^% R/ v9 _, L3  ~8 J" n  j; C. Q" o
    根據(jù)信息長(zhǎng)度 n 和所需檢錯(cuò)概率 p 計(jì)算CRC位數(shù)
    3 W9 H" d& H! F* a- s, F$ H在實(shí)際應(yīng)用中,我們可以通過以下步驟來(lái)確定CRC的位數(shù):確定目標(biāo)檢錯(cuò)概率:假設(shè)我們要求的檢錯(cuò)概率 Pdetect≥p。
    ' y0 L, o9 P6 {- u: q; X6 b" e1 V3 P& F. v0 j1 M9 _
    代入公式并求出位數(shù):我們可以重新排列公式來(lái)得到最小的CRC位數(shù):
    & w- F$ l# y: S/ t+ t3 O  z0 a8 |# h2 ?
    1 B2 A  ]! P* \7 \0 N3 H例如,若我們希望檢錯(cuò)概率 p=0.999,則:
    - g; {0 [4 e6 B( G# C2 M; q 5 p; t' `6 k1 n* \: \0 ^# H
    這意味著至少需要10位的CRC才能滿足這個(gè)檢錯(cuò)概率。
    , |6 X  y1 y  N* |, V
    $ C4 A2 L  O/ j# v9 V" q, e考慮信息長(zhǎng)度 n:雖然理論上,CRC的檢錯(cuò)能力與信息長(zhǎng)度 n 不直接相關(guān),但在極長(zhǎng)的幀中,可能會(huì)遇到極端情況。# o6 t+ }" ^: B' y, z1 v; B5 j
    : f  u8 e& f" ]0 `' i/ n4 i$ b8 G
    因此,當(dāng) n 非常大(如數(shù)百甚至上千位)時(shí),建議增加1-2位以提高穩(wěn)健性。; |5 q- R( t9 A5 S+ j# `
    4, `( [; E+ R" _
    CRC位數(shù)選擇的經(jīng)驗(yàn)法則8 n7 ~5 P& @1 Z
  • 短數(shù)據(jù)幀(如10-100比特):通常8位的CRC碼已經(jīng)可以提供很高的檢錯(cuò)概率,適合普通通信應(yīng)用。
  • 中等數(shù)據(jù)幀(100-1000比特):16位的CRC是更合適的選擇,適合要求較高檢錯(cuò)概率的協(xié)議。
  • 長(zhǎng)數(shù)據(jù)幀(1000比特以上):32位CRC可以提供極高的檢錯(cuò)能力,多用于高可靠性的工業(yè)、通信或存儲(chǔ)系統(tǒng)中。
      n/ Y- C9 b& o9 L7 W, l1 U

      R1 b, [8 M( c假設(shè)你設(shè)計(jì)的協(xié)議需要保證檢錯(cuò)概率不低于 p=0.999,且每幀數(shù)據(jù)為 n=500 比特。7 B/ |8 i+ T0 Y0 G4 c

    ' V" U( Q& ]& A  W' X根據(jù)上面的公式,我們計(jì)算得到的最小位數(shù)約為10位;結(jié)合數(shù)據(jù)幀長(zhǎng)度,實(shí)際應(yīng)用中推薦至少選擇12位甚至16位的CRC,以確保滿足高檢錯(cuò)需求。# S+ _! C6 D' m3 Z* ?
    " g# u1 ]$ y* O1 K) }, E* Z
    進(jìn)一步的,標(biāo)準(zhǔn)CRC多項(xiàng)式(如CRC-16或CRC-32)經(jīng)過廣泛驗(yàn)證,在通信和存儲(chǔ)應(yīng)用中可靠性高,通常推薦直接采用這些標(biāo)準(zhǔn)多項(xiàng)式。. L6 X  e6 w# h, \' |9 N5 i% @
    5
    : X! s6 D% h) {- JCRC碼位數(shù)對(duì)系統(tǒng)的影響: k1 Y  F4 R1 z# \' l1 s* t
    位數(shù)越長(zhǎng)的CRC校驗(yàn)碼,校驗(yàn)性能越好,但代價(jià)是數(shù)據(jù)包的開銷和計(jì)算復(fù)雜性增大。
    ; U* ^; T! c/ l0 Z; p* G
    ' d) ~) |" A, U0 ?0 n典型的實(shí)現(xiàn)中:$ D' a4 K+ @- p+ R5 w
  • 計(jì)算性能:硬件CRC加速器可以顯著降低較長(zhǎng)CRC的計(jì)算延遲。
  • 通信開銷:8位CRC增加的傳輸開銷通常較小,但超過16位時(shí),額外開銷對(duì)低速通信協(xié)議影響較大。
    ( Q* u3 _7 Y" A' F/ q
    0 ^! Y2 I/ }% Q" H7 o- l
    綜合以上分析,為了在實(shí)際應(yīng)用中確定CRC碼長(zhǎng)度,建議的步驟如下:
    0 a; f, n9 |$ ~
  • 根據(jù)要求的檢錯(cuò)概率計(jì)算最小位數(shù)。
  • 考慮數(shù)據(jù)幀長(zhǎng)度,適當(dāng)增加1-2位以提高穩(wěn)健性。
  • 使用標(biāo)準(zhǔn)CRC多項(xiàng)式以確保通用性和可靠性。& Y  K7 F- H; a0 P3 d
    , z" Q2 K7 B0 R

    ; Q3 M5 w  C( ~: t( W9 W
    % a) H) j, n3 ^& I" i點(diǎn)擊閱讀原文,更精彩~
  • 發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表