CRC校驗編程和硬件快速校驗探討
3 硬件CRC校驗的探討
器件或設備的說(shuō)明書(shū)中,常給出其硬件CRC碼的生成電路。以總線(xiàn)數字溫度傳感器DS18820為例,其8位CRC碼生成電路如圖2所示。本文引用地址:http://dyxdggzs.com/article/156401.htm
對應該硬件電路,等效的模除多項式為:
g(x)=x2+x5+x4+1
該模除多項式反序后,再隱含最高位,其多項式的值為8CH。
8位移位寄存器的初始值清O(00H),通信數組數據的每個(gè)字節低位在前,按位依次輸入,當數據全部輸入完成后,移位寄存器各個(gè)位的存儲(輸出)值就是所需的CRC校驗碼。
在實(shí)際應用中發(fā)現,Autonics等品牌的控制儀表,其通信CRC校驗碼與DSl8820的完全相同。
對應于圖2的硬件生成電路,可用1片8D觸發(fā)器(如74HC373)和1片4封裝異或門(mén)(如74HCl36)連接而成,如圖3所示。
對于CRC賦初值OOH(74HC373清O)的操作,可先讀出DO~D7的隨機值,然后將讀出的數據再串行輸入即可。因為相同的數據相異或總是為O,再除以任何多項式仍為O。
若MCU剩余足夠的I/O口,可將CRC碼的DO~D7位并行讀入。否則,還需加一片74HCl65,將D0~D7轉換成串行數據讀入。
以少量的硬件實(shí)現快速CRC,能節省單片機的運算時(shí)間和存儲資源。用于發(fā)送端,能夠快速獲得CRC校驗碼,在系統其他任務(wù)很重時(shí),能增強實(shí)時(shí)性。而用于接收端,除了上述優(yōu)點(diǎn)之外,還能顯著(zhù)增強系統接收和確認信息的可靠性,適用于一些遠程控制的執行裝置(如變頻驅動(dòng)器、閥門(mén)定位控制器、重要的監測報警裝置等)。這些裝置對于接收到的數據或命令信息,一旦因誤校驗而不能正確地判斷執行,其后果都是比較嚴重的。因此,要提高嵌入式系統的可靠性和實(shí)時(shí)性,硬件CRC校驗是一種選擇。
結 語(yǔ)
本文在分析了常用CRC碼的反序生成原理的基礎上,給出了其編程運算的統一步驟,并提出了由硬件快速生成CRC碼或對接收數據進(jìn)行CRC校驗的電路和方法,可為嵌入式系統的可靠性和實(shí)時(shí)性設計提供參考.
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
分頻器相關(guān)文章:分頻器原理
評論