日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
轉(zhuǎn):CRC算法原理及C語言實(shí)現(xiàn)
轉(zhuǎn):CRC算法原理及C語言實(shí)現(xiàn)
 更新時(shí)間:2008-8-17 19:44:24  點(diǎn)擊數(shù):28
【字體: 字體顏色

CRC算法原理及C語言實(shí)現(xiàn) 
 
  有一篇好文章,不敢獨(dú)享!

CRC算法原理及C語言實(shí)現(xiàn)(介紹了3種方法)

CRC算法原理及C語言實(shí)現(xiàn)  -來自(我愛單片機(jī))

        摘 要 
        本文從理論上推導(dǎo)出CRC算法實(shí)現(xiàn)原理,給出三種分別適應(yīng)不同計(jì)算機(jī)或微控制器硬件環(huán)境的C語言程序。讀者更能根據(jù)本算法原理,用不同的語言編寫出獨(dú)特風(fēng)格更加實(shí)用的CRC計(jì)算程序。
        關(guān)鍵詞   CRC   算法   C語言
        1  引言
            
        循環(huán)冗余碼CRC檢驗(yàn)技術(shù)廣泛應(yīng)用于測(cè)控及通信領(lǐng)域。CRC計(jì)算可以靠專用的硬件來實(shí)現(xiàn),但是對(duì)于低成本的微控制器系統(tǒng),在沒有硬件支持下實(shí)現(xiàn)CRC檢驗(yàn),關(guān)鍵的問題就是如何通過軟件來完成CRC計(jì)算,也就是CRC算法的問題。
           
        這里將提供三種算法,它們稍有不同,一種適用于程序空間十分苛刻但CRC計(jì)算速度要求不高的微控制器系統(tǒng),另一種適用于程序空間較大且CRC計(jì)算速度要求較高的計(jì)算機(jī)或微控制器系統(tǒng),最后一種是適用于程序空間不太大,且CRC計(jì)算速度又不可以太慢的微控制器系統(tǒng)。
        2  CRC簡(jiǎn)介
        CRC校驗(yàn)的基本思想是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的k位二進(jìn)制碼序列,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的監(jiān)督碼(既CRC碼)r位,并附在信息后邊,構(gòu)成一個(gè)新的二進(jìn)制碼序列數(shù)共(k+r)位,最后發(fā)送出去。在接收端,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進(jìn)行檢驗(yàn),以確定傳送中是否出錯(cuò)。
        16位的CRC碼產(chǎn)生的規(guī)則是先將要發(fā)送的二進(jìn)制序列數(shù)左移16位(既乘以
        )后,再除以一個(gè)多項(xiàng)式,最后所得到的余數(shù)既是CRC碼,如式(2-1)式所示,其中B(X)表示n位的二進(jìn)制序列數(shù),G(X)為多項(xiàng)式,Q(X)為整數(shù),R(X)是余數(shù)(既CRC碼)。
                                (2-1)
        求CRC碼所采用模2加減運(yùn)算法則,既是不帶進(jìn)位和借位的按位加減,這種加減運(yùn)算實(shí)際上就是邏輯上的異或運(yùn)算,加法和減法等價(jià),乘法和除法運(yùn)算與普通代數(shù)式的乘除法運(yùn)算是一樣,符合同樣的規(guī)律。生成CRC碼的多項(xiàng)式如下,其中CRC-16和CRC-CCITT產(chǎn)生16位的CRC碼,而CRC-32則產(chǎn)生的是32位的CRC碼。本文不討論32位的CRC算法,有興趣的朋友可以根據(jù)本文的思路自己去推導(dǎo)計(jì)算方法。
        CRC-16:(美國(guó)二進(jìn)制同步系統(tǒng)中采用)  
        CRC-CCITT:(由歐洲CCITT推薦)       
        CRC-32:   

        接收方將接收到的二進(jìn)制序列數(shù)(包括信息碼和CRC碼)除以多項(xiàng)式,如果余數(shù)為0,則說明傳輸中無錯(cuò)誤發(fā)生,否則說明傳輸有誤,關(guān)于其原理這里不再多述。用軟件計(jì)算CRC碼時(shí),接收方可以將接收到的信息碼求CRC碼,比較結(jié)果和接收到的CRC碼是否相同。

        3  按位計(jì)算CRC
        對(duì)于一個(gè)二進(jìn)制序列數(shù)可以表示為式(3-1):
                                    (3-1)
        求此二進(jìn)制序列數(shù)的CRC碼時(shí),先乘以 后(既左移16位),再除以多項(xiàng)式G(X),所得的余數(shù)既是所要求的CRC碼。如式(3-2)所示:
                  (3-2)
        可以設(shè):                                                (3-3)

[1] [2] [3] [4] [5] [6] [7]  下一頁
  • 上一篇: PIC8位在PICC中的數(shù)據(jù)類型
  • 下一篇: 初淺研究PIC之延時(shí)函數(shù)和循環(huán)體優(yōu)化
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1