利用XC2300系列微控制器實現CAN網絡安全
CRC或存儲檢查模塊
本文引用地址:http://cqxgywz.com/article/93434.htm為保證程序和數據等存儲信息的完整性,需要進行CRC(循環冗余檢查)。CRC的值通常針對信息塊進行計算,并被儲存在某個存儲區域。在檢查信息時,重新計算CRC的值,并與儲存的CRC值對比。這既可在啟動等時點單次進行,也可在運行期間定期進行。CRC也能像CAN協議那樣保護數據通信,還能保護要求最高數據完整性的單個關鍵安全數據或變量。當然,軟件也能非常靈活地完成CRC計算,但使用專用硬件的效率更高,因為后者可提高計算速度并將CPU從此類任務中解放出來。利用DMA(直接內存存取)等讀寫功能,可以在無需CPU參與的情況下,在后臺進行CRC檢查,將CRC檢查與外設初始化分開。
FLASH 和RAM上的ECC
在存儲區域使用CRC機制并由CPU啟動的同時,可以延伸CRC存儲內容保護理念,在存儲模塊本身增加這類機制。由特殊ECC(糾錯碼)多項式生成的附加存儲校檢和來保護單個存儲數據。通過這個校檢和,能檢測到數據的意外變化,并在將數據提交CPU之前自動予以糾正。這是CRC和ECC的主要區別。例如,可以檢測到兩個比特錯誤,其中一個比特可被糾正,具體取決于所采用的多項式和存儲ECC值的長度。在進行寫入訪問時,生成ECC值,除存儲所寫入的數據外,所生成的ECC值也被存儲。在進行讀取訪問時,數據的ECC被重新計算,并自主地與所存儲的值對比。該機制由硬件執行,從系統的角度來看,不需要增加總線周期。目前,ECC一般用于閃存,但出于安全需要,RAM存儲器也采用ECC。

圖4 利用分析器模式構建低成本冗余路徑,檢測被阻斷或受到干擾的報文傳輸













評論