• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 消費電子 > 設計應用 > 工業通信中的檢錯碼技術

    工業通信中的檢錯碼技術

    作者: 時間:2018-08-20 來源:網絡 收藏

    0 引言

    本文引用地址:http://www.czjhyjcfj.com/article/201808/387286.htm

    等工業現場,在傳輸數據的過程中,往往由于噪聲或瞬時中斷等干擾,使接收到的信息出現錯誤。如果信息傳輸出現錯誤而不被發現,會引起災難性的后果,可以采取檢錯碼的辦法來發現這一錯誤。常用的檢錯碼有兩類:奇偶校驗碼與循環冗余校驗碼(CRC,cyclic redundancy code)。奇偶校驗方法簡單,感興趣的讀者可以查閱相關資料,本文要討論的是CRC檢錯碼。

    1 CRC檢錯碼簡要介紹

    檢錯碼方法是將要發送的數據比特序列當作一個多項式f(x)的系數,再用收發雙方預先約定的生成多項式G(x)去除,求得一個余數多項式,將余數多項式加到數據多項式之后發送到接收端。接收端用同樣的生成多項式G(x)去除接收數據多項式f '(x),得到計算余數多項式。如果計算余數多項式與接收余數多項式相同,則表示傳輸無差錯;反之,表示傳輸有差錯,請發送方重發數據,直到正確為止。其工作原理如圖1 所示。

    CRC生成多項式G(x)由協議規定,目前已有多種生成多項式列入國際標準中。在我國及美國,工業通訊中常使用CRC-16。

    實際CRC校驗生成采用減法不借位,加法不進位的算法,在計算時采用異或操作。

    2 CRC 檢錯碼的算法設計

    計算CRC 檢錯碼時常采用按位計算CRC 碼或按字節計算CRC 碼。按位計算法算法簡單,速度慢;按字節計算時須先計算CRC 碼表,并將此表存入存儲器中,計算CRC 碼時通過查表法逐步計算,此法具有算法復雜,計算速度快,占用存儲器資源的特點。

    2.1 按位計算CRC

    2.2 按字節計算CRC碼

    生成多項式,所得余式即為所求CRC 碼。通過觀察式(10)可知,求本字節后的CRC 碼等于上一字節的余式CRC 碼左移8 位再加上本字節所求得CRC 碼。如果把8 位二進制序列數據的全部CRC碼計算出來,預先放在一個表里,然后通過查表計算CRC碼,就可以大大提高計算速度。

    2.3 編程實現

    對于CRC 校驗程序,沒有一個統一的標準,也很難說誰好誰壞。工程師可以根據實際情況決定是按位計算還是按字節計算CRC 碼,及采用何種編程語言編寫CRC校驗程序。本文僅給出按字節計算時用C 語言編寫的程序。另需說明的是,在

    下面的程序中采用查表法計算CRC 碼,沒有給出CRC 碼表,感興趣的讀者可以查閱相關資料。

    3 結語

    CRC檢錯碼的檢錯能力很強,它除了能檢查出離散錯誤外,還能檢查出突發錯;能以

    的概率檢查出(k+1)位的突發錯,即能以99.997%的概率檢查出17 位的突發錯,漏檢概率為0.003%。因此,它是目前工業現場總線通訊中常用

    的一種檢錯碼方法。



    關鍵詞: 變頻器 通信

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 顺昌县| 达州市| 泰宁县| 上饶市| 商都县| 改则县| 茌平县| 灵宝市| 桦川县| 安宁市| 渝北区| 禄劝| 迁西县| 淮安市| 连云港市| 开封县| 乐陵市| 许昌县| 芷江| 盐边县| 富锦市| 武穴市| 天峨县| 达日县| 潜山县| 阜平县| 安龙县| 陇南市| 自治县| 石屏县| 鄄城县| 即墨市| 互助| 昭觉县| 临城县| 太保市| 怀远县| 蒲江县| 澄城县| 大同市| 拉萨市|