- 相關(guān)推薦
AVR單片機CRC校驗碼的查表與直接生成
摘要:循環(huán)冗余碼校驗CRC是常用的重要校驗方法之一。AVR高速嵌入式單片機功能強大,在無線數(shù)據(jù)傳輸應(yīng)用方面具有很大優(yōu)勢。本文基于Atmega128高速嵌入式單片機,實現(xiàn)32位CRC校驗碼的直接生成法和查表生成法;根據(jù)實驗結(jié)果,分析兩種方法的特點。關(guān)鍵詞:Atmega128 CRC校驗碼 CRC生成表 數(shù)據(jù)段
引 言
隨著技術(shù)的不斷進步,各種數(shù)據(jù)通信的應(yīng)用越來越廣泛。由于傳輸距離、現(xiàn)場狀況、干擾等諸多因素的影響,設(shè)備之間的通信數(shù)據(jù)常會發(fā)生一些無法預(yù)測的錯誤。為了降低錯誤所帶來的影響,一般在通信時采用數(shù)據(jù)校驗的辦法,而循環(huán)冗余碼校驗是常用的重要校驗方法之一。
AVR高速嵌入式單片機是8位RISC MCU,執(zhí)行大多數(shù)指令只需一個時鐘周期,速度快(8MHz AVR的運行速度約等于200MHz 80C51的運行速度),32個通用寄存器直接與ALU相連,消除了運算瓶頸;內(nèi)嵌可串行下載或自我編程的Flash和EPPROM,功能繁多,具有多種運行模式。
本文采用Atmel公司的Atmega128高速嵌入式單片機,依照IEEE 1999年公布的802.11無線局域網(wǎng)協(xié)議標準,采用32位循環(huán)冗余校驗碼(Cyclic Redundancy Check)實現(xiàn)無線傳輸數(shù)據(jù)時的差錯校驗。
1 CRC循環(huán)冗余校驗碼原理
1.1 數(shù)據(jù)傳輸?shù)膸袷?/p>
根據(jù)IEEE制定的802.11無線局域網(wǎng)絡(luò)協(xié)議,在數(shù)據(jù)傳輸時都應(yīng)按照幀傳輸。這里,我們采用了信息處理系統(tǒng)-數(shù)據(jù)通信-高級數(shù)據(jù)鏈路控制規(guī)程-幀結(jié)構(gòu),它的每個幀由下列字段組成(傳輸順序自左至右):
地 址控 制信 息CRC校驗位地址——數(shù)據(jù)站地址字段;
控制——控制字段。
信息——信息字段;
CRC校驗位——根據(jù)前面三個字段生成的CRC校驗位。
由地址、控制、信息三個字段組成的總的字段統(tǒng)稱為數(shù)據(jù)段。
1.2 CRC校驗碼的理論生成方法
CRC校驗采用多項式編碼方法,被處理的數(shù)據(jù)塊可以看作是一個n階的二進制多項式。這里,假定待發(fā)送的二進制數(shù)據(jù)段為g(x),生成多項式為 m(x),得到的CRC校驗碼為c(x)。
CRC校驗碼的編碼方法是用待發(fā)送的二進制數(shù)據(jù)g(x)除以生成多項式m(x),將最后的余數(shù)作為CRC校驗碼,實現(xiàn)步驟如下。
① 設(shè)待發(fā)送的數(shù)據(jù)塊是m位的二進制多項式 g(x),生成多項式為r階的m(x)。在數(shù)據(jù)塊的末尾添加r個0,數(shù)據(jù)塊的長度增加到m+r位,對應(yīng)的二進制多項式為G(x) 。
、 用生成多項式m(x)去除G(x) ,求得余數(shù)為階數(shù)是r-1的二進制多項式c(x)。此二進制多項式 c(x)就是g(x)經(jīng)過生成多項式m(x)編碼的CRC校驗碼。
③ 用模2的方式減去c(x),得到的二進制多項式就是包含了CRC校驗碼的待發(fā)送字符串。
CRC校驗可以
[1] [2] [3] [4]
【AVR單片機CRC校驗碼的查表與直接生成】相關(guān)文章:
近景攝影測量用于直接生成塑像施工圖紙05-02
直接04-29
消費調(diào)查表05-01
制作調(diào)查表05-01
學(xué)校安全工作排查表06-19
薪酬調(diào)查表設(shè)計05-01
鄰里關(guān)系調(diào)查表05-01
部屬缺點檢查表04-29
直接指示規(guī)則04-27