工業(yè)通信中的檢錯(cuò)碼技術(shù)
|
孫久軍1, 劉琳娜2,李云2 |
| (1.山東新風(fēng)光電子科技發(fā)展有限公司, 山東汶上272500)(2. 濟(jì)南試金集團(tuán)有限公司, 山東濟(jì)南250022) |
| 摘要 對(duì)循環(huán)冗余校驗(yàn)進(jìn)行了理論分析,并介紹了其實(shí)現(xiàn)過程和編程方法。 |
| 關(guān)鍵字 工業(yè)通信;檢錯(cuò)碼;CRC |
|
0 引言 在變頻器等工業(yè)現(xiàn)場(chǎng),在傳輸數(shù)據(jù)的過程中,往往由于噪聲或瞬時(shí)中斷等干擾,使接收到的信息出現(xiàn)錯(cuò)誤。如果信息傳輸出現(xiàn)錯(cuò)誤而不被發(fā)現(xiàn),會(huì)引起災(zāi)難性的后果,可以采取檢錯(cuò)碼的辦法來發(fā)現(xiàn)這一錯(cuò)誤。常用的檢錯(cuò)碼有兩類:奇偶校驗(yàn)碼與循環(huán)冗余校驗(yàn)碼(CRC,cyclic redundancy code)。奇偶校驗(yàn)方法簡(jiǎn)單,感興趣的讀者可以查閱相關(guān)資料,本文要討論的是CRC檢錯(cuò)碼。 1 CRC檢錯(cuò)碼簡(jiǎn)要介紹 檢錯(cuò)碼方法是將要發(fā)送的數(shù)據(jù)比特序列當(dāng)作一個(gè)多項(xiàng)式f(x)的系數(shù),再用收發(fā)雙方預(yù)先約定的生成多項(xiàng)式G(x)去除,求得一個(gè)余數(shù)多項(xiàng)式,將余數(shù)多項(xiàng)式加到數(shù)據(jù)多項(xiàng)式之后發(fā)送到接收端。接收端用同樣的生成多項(xiàng)式G(x)去除接收數(shù)據(jù)多項(xiàng)式f '(x),得到計(jì)算余數(shù)多項(xiàng)式。如果計(jì)算余數(shù)多項(xiàng)式與接收余數(shù)多項(xiàng)式相同,則表示傳輸無差錯(cuò);反之,表示傳輸有差錯(cuò),請(qǐng)發(fā)送方重發(fā)數(shù)據(jù),直到正確為止。其工作原理如圖1 所示。 CRC生成多項(xiàng)式G(x)由協(xié)議規(guī)定,目前已有多種生成多項(xiàng)式列入國(guó)際標(biāo)準(zhǔn)中。在我國(guó)及美國(guó),工業(yè)通訊中常使用CRC-16。


 實(shí)際CRC校驗(yàn)生成采用減法不借位,加法不進(jìn)位的算法,在計(jì)算時(shí)采用異或操作。 2 CRC 檢錯(cuò)碼的算法設(shè)計(jì) 計(jì)算CRC 檢錯(cuò)碼時(shí)常采用按位計(jì)算CRC 碼或按字節(jié)計(jì)算CRC 碼。按位計(jì)算法算法簡(jiǎn)單,速度慢;按字節(jié)計(jì)算時(shí)須先計(jì)算CRC 碼表,并將此表存入存儲(chǔ)器中,計(jì)算CRC 碼時(shí)通過查表法逐步計(jì)算,此法具有算法復(fù)雜,計(jì)算速度快,占用存儲(chǔ)器資源的特點(diǎn)。 2.1 按位計(jì)算CRC
 2.2 按字節(jié)計(jì)算CRC碼

生成多項(xiàng)式,所得余式即為所求CRC 碼。通過觀察式(10)可知,求本字節(jié)后的CRC 碼等于上一字節(jié)的余式CRC 碼左移8 位再加上本字節(jié)所求得CRC 碼。如果把8 位二進(jìn)制序列數(shù)據(jù)的全部CRC碼計(jì)算出來,預(yù)先放在一個(gè)表里,然后通過查表計(jì)算CRC碼,就可以大大提高計(jì)算速度。 2.3 編程實(shí)現(xiàn) 對(duì)于CRC 校驗(yàn)程序,沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),也很難說誰(shuí)好誰(shuí)壞。工程師可以根據(jù)實(shí)際情況決定是按位計(jì)算還是按字節(jié)計(jì)算CRC 碼,及采用何種編程語(yǔ)言編寫CRC校驗(yàn)程序。本文僅給出按字節(jié)計(jì)算時(shí)用C 語(yǔ)言編寫的程序。另需說明的是,在 下面的程序中采用查表法計(jì)算CRC 碼,沒有給出CRC 碼表,感興趣的讀者可以查閱相關(guān)資料。
 3 結(jié)語(yǔ) CRC檢錯(cuò)碼的檢錯(cuò)能力很強(qiáng),它除了能檢查出離散錯(cuò)誤外,還能檢查出突發(fā)錯(cuò);能以 的概率檢查出(k+1)位的突發(fā)錯(cuò),即能以99.997%的概率檢查出17 位的突發(fā)錯(cuò),漏檢概率為0.003%。因此,它是目前工業(yè)現(xiàn)場(chǎng)總線通訊中常用 的一種檢錯(cuò)碼方法。
|
|
作者簡(jiǎn)介: |
|
孫久軍(1977-),男,碩士,工程師,就職于山東新風(fēng)光電子科技發(fā)展有限公司,研究方向?yàn)楦邏鹤冾l器。 |
|
參考文獻(xiàn): (略) |
本文標(biāo)簽:工業(yè)通信中的檢錯(cuò)碼技術(shù)
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《工業(yè)通信中的檢錯(cuò)碼技術(shù)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“工業(yè)通信中的檢錯(cuò)碼技術(shù)”的更多資訊