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

          新聞中心

          EEPW首頁(yè) > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 利用XC2300系列微控制器實(shí)現(xiàn)CAN網(wǎng)絡(luò)安全

          利用XC2300系列微控制器實(shí)現(xiàn)CAN網(wǎng)絡(luò)安全

          作者: 時(shí)間:2009-04-14 來源:Hagen Platzdasch 德國(guó)英飛凌科技股份公司 收藏

            CRC或存儲(chǔ)檢查模塊

          本文引用地址:http://www.ex-cimer.com/article/93434.htm

            為保證程序和數(shù)據(jù)等存儲(chǔ)信息的完整性,需要進(jìn)行CRC(循環(huán)冗余檢查)。CRC的值通常針對(duì)信息塊進(jìn)行計(jì)算,并被儲(chǔ)存在某個(gè)存儲(chǔ)區(qū)域。在檢查信息時(shí),重新計(jì)算CRC的值,并與儲(chǔ)存的CRC值對(duì)比。這既可在啟動(dòng)等時(shí)點(diǎn)單次進(jìn)行,也可在運(yùn)行期間定期進(jìn)行。CRC也能像CAN協(xié)議那樣保護(hù)數(shù)據(jù)通信,還能保護(hù)要求最高數(shù)據(jù)完整性的單個(gè)關(guān)鍵安全數(shù)據(jù)或變量。當(dāng)然,軟件也能非常靈活地完成CRC計(jì)算,但使用專用硬件的效率更高,因?yàn)楹笳呖商岣哂?jì)算速度并將CPU從此類任務(wù)中解放出來。利用DMA(直接內(nèi)存存取)等讀寫功能,可以在無需CPU參與的情況下,在后臺(tái)進(jìn)行CRC檢查,將CRC檢查與外設(shè)初始化分開。

            FLASH 和RAM上的ECC

            在存儲(chǔ)區(qū)域使用CRC機(jī)制并由CPU啟動(dòng)的同時(shí),可以延伸CRC存儲(chǔ)內(nèi)容保護(hù)理念,在存儲(chǔ)模塊本身增加這類機(jī)制。由特殊ECC(糾錯(cuò)碼)多項(xiàng)式生成的附加存儲(chǔ)校檢和來保護(hù)單個(gè)存儲(chǔ)數(shù)據(jù)。通過這個(gè)校檢和,能檢測(cè)到數(shù)據(jù)的意外變化,并在將數(shù)據(jù)提交CPU之前自動(dòng)予以糾正。這是CRC和ECC的主要區(qū)別。例如,可以檢測(cè)到兩個(gè)比特錯(cuò)誤,其中一個(gè)比特可被糾正,具體取決于所采用的多項(xiàng)式和存儲(chǔ)ECC值的長(zhǎng)度。在進(jìn)行寫入訪問時(shí),生成ECC值,除存儲(chǔ)所寫入的數(shù)據(jù)外,所生成的ECC值也被存儲(chǔ)。在進(jìn)行讀取訪問時(shí),數(shù)據(jù)的ECC被重新計(jì)算,并自主地與所存儲(chǔ)的值對(duì)比。該機(jī)制由硬件執(zhí)行,從系統(tǒng)的角度來看,不需要增加總線周期。目前,ECC一般用于閃存,但出于安全需要,RAM存儲(chǔ)器也采用ECC。


            
          圖4 利用分析器模式構(gòu)建低成本冗余路徑,檢測(cè)被阻斷或受到干擾的報(bào)文傳輸



          評(píng)論


          相關(guān)推薦

          技術(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); })();