<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > CRC校驗編程和硬件快速校驗探討

          CRC校驗編程和硬件快速校驗探討

          作者: 時間:2011-04-14 來源:網(wǎng)絡(luò) 收藏

          2 嵌入式系統(tǒng)
          如上所述,k+r位的被模除數(shù)采用右移的方法不斷地同反序的約定多項式對位模除,也就遵從了從高位向低位不斷減余的除法規(guī)則。但由于不必求模除的商,因此只要將被模除數(shù)不斷地右移位,與去掉最高位的反序約定多項式模減,求得余數(shù)即可。
          但如果被模除數(shù)最低位右端的移出位是O,則無論從左端添進多少個O,也不夠模除約定多項式(其隱含的最高位是1)。在此情況下該位的商是O,余數(shù)不變,不應(yīng)再同約定多項式對位模減,而要繼續(xù)左添O右移位,直到當前余數(shù)(被模除數(shù))右移出的位值為1才夠模除(商1),才可將余數(shù)再對位模減一次多項式。由此看出,將約定多項式去掉最高位,可以使模減(異或)的計算位數(shù)r減少(一般r都正好是1字節(jié)位數(shù)的整數(shù)倍)。
          由于被模除數(shù)是k+r位的,因此總共需要右移k位,即左添進尼個O,才能模除到最低位結(jié)束。得到的余數(shù)最多是r位(約定多項式為r+1位),再將它異或人一個新數(shù)據(jù),作為新的被模除數(shù)。
          每異或進一個數(shù)據(jù),求新一輪碼,都只進行走(字節(jié)數(shù)據(jù)是一8)次的右移和一般都少于是次的模減(異或)運算,而且模減的中間差值無需保留(后值覆蓋前值)。因此碼生成的運算過程,就是右移位、判斷移出位為1則同多項式模減(C語言不能對移出位檢測,需將余數(shù)備份后同0xol相“與”)、差值回存后再右移的是次循環(huán)過程,如圖1所示。之后,再異或進下一個數(shù)據(jù)(該步與查表法一致)。得當?shù)脑掃\算量很小。
          筆者用51匯編語言編寫(2R(:一8程序,算得1字節(jié)數(shù)據(jù)的CRC碼,只需64~80個機器周期,只多用1字節(jié)RAM單元(CR(:一16多用2字節(jié),時間加倍)來存儲余數(shù),即下一次的被模除數(shù)(不斷覆蓋上一次已無用的)。因此,完全可以直接運算,而不必存儲大量的數(shù)據(jù)表格。C語言,要考慮語句代碼的優(yōu)化以及只定義使用int和char型局部變量,以免耗時和占用RAM單元太多。

          接收方對于最后收到的r位CRC校驗碼,不需要再納入模除而使最終余數(shù)為O,只需同信息數(shù)據(jù)的模除余數(shù)比較,相等則確定通信正確。這樣可以減少模除循環(huán)次數(shù),節(jié)省時間。

          c語言相關(guān)文章:c語言教程


          分頻器相關(guān)文章:分頻器原理


          關(guān)鍵詞: 校驗 探討 快速 編程 CRC 硬件

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();