![CRC16查表法中表格數(shù)據(jù)計(jì)算方法及實(shí)例_第1頁(yè)](http://file4.renrendoc.com/view/123feb55ea60b0f1f01f69f14f665efa/123feb55ea60b0f1f01f69f14f665efa1.gif)
![CRC16查表法中表格數(shù)據(jù)計(jì)算方法及實(shí)例_第2頁(yè)](http://file4.renrendoc.com/view/123feb55ea60b0f1f01f69f14f665efa/123feb55ea60b0f1f01f69f14f665efa2.gif)
![CRC16查表法中表格數(shù)據(jù)計(jì)算方法及實(shí)例_第3頁(yè)](http://file4.renrendoc.com/view/123feb55ea60b0f1f01f69f14f665efa/123feb55ea60b0f1f01f69f14f665efa3.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
最近在搞CRC校驗(yàn),用的是CRC16標(biāo)準(zhǔn),查看了很多資料發(fā)現(xiàn)很多講的都是CRC16-CCITT標(biāo)準(zhǔn),一直想弄明白CRC-16標(biāo)準(zhǔn)中的采用查表法的方式中那兩個(gè)表格中的數(shù)是如何求出來(lái)的??上](méi)有一個(gè)文章仔細(xì)的講,更沒(méi)有文章給出實(shí)例來(lái)算一算。一切只能靠自己了,誰(shuí)讓我喜歡尋根摸底呢。研究了一下本站會(huì)員玉丫子的文章,自己琢磨了琢磨,終于知道是怎么算出來(lái)的了。CRC16算法的生成多項(xiàng)式x"16+x"15+x"2+1,十六進(jìn)制表示為0x8005。CRC16常見(jiàn)的表格中的數(shù)據(jù)是按照先傳輸LSB,消息右移進(jìn)寄存器來(lái)計(jì)算的。因此需要判斷寄存器的最低位LSB,同時(shí)要將0x8005按位顛倒后(0xA001)根據(jù)LSB的情況決定是否與寄存器異或即可。CRC16的表格中對(duì)應(yīng)的數(shù)依次為0~255計(jì)算出來(lái)的CRC值,因此,此處只選取其中一兩個(gè)數(shù)作為實(shí)例計(jì)算CRC值。具體步驟如下所示:1)從0~255中選取需要計(jì)算的數(shù),將其對(duì)應(yīng)的十六進(jìn)制數(shù)放入一個(gè)長(zhǎng)度為16的寄存器的低八位,高八位填充0;2) 如果寄存器的末位LSB為1,將寄存器的數(shù)值右移1位,再與0xA001位異或,否則僅將寄存器右移1位;3) 重復(fù)第2步,直到低八位全部右移出寄存器;4) 寄存器中的值則為校驗(yàn)碼。從0?255中挑選2(對(duì)應(yīng)0x02)計(jì)算其CRC值:0x02的CRC-16的表格計(jì)算(反向)0000000000000010 〈-最低位LSB= 0,高八位填充000000000000000010右移,高位填充0,并舍棄最后一位 第一次計(jì)算TOC\o"1-5"\h\z0000000000000001<-LSB= 100000000000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第二次1010000000000001 <-LSB= 101010000000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第三次1111000000000001 <-LSB= 101111000000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第四次1101100000000001 <-LSB= 101101100000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第五次1100110000000001 <-LSB= 101100110000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第六次1100011000000001 <-LSB= 101100011000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第七次1100001100000001 <-LSB= 101100001100000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 一共右移了八次,得到的結(jié)果為CRC1100000110000001 <-CRC:0xC181從本文最后的附表中可以看出auchCRCHi[]的第三個(gè)值就是0x81,auchCRCLo[]的第三個(gè)值就是0xC1,可見(jiàn)計(jì)算無(wú)誤。另一個(gè)計(jì)算實(shí)例,從o?255中挑選11(對(duì)應(yīng)OxOB)計(jì)算其CRC值:OxOB的CRC-16的表格計(jì)算(反向)0000000000001011〈-最低位LSB=1,高八位填充000000000000001011右移,高位填充0,并舍棄最后一位"10100000 00000001 〈-與0xA001異或 第一次計(jì)算TOC\o"1-5"\h\z1010000000000100<-LSB= 001010000000000100右移,舍棄最后一位 第二次0101000000000010 <-LSB= 000101000000000010右移,舍棄最后一位 第三次0010100000000001 <-LSB= 100010100000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第四次1011010000000001 <-LSB= 101011010000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第五次1111101000000001 <-LSB= 101111101000000001右移,舍棄最后一位"1010000000000001 〈-與0XA001異或 第六次1101110100000001 <-LSB= 1011011101000000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 第七次1100111010000001 <-LSB= 101100111010000001右移,舍棄最后一位"10100000 00000001 〈-與0xA001異或 一共算八次,得到的結(jié)果為CRC1100011101000001 <-CRC:0xC741從本文最后的附表中可以看出auchCRCHi[]的第12個(gè)值就是0x41,auchCRCLo[]的第12個(gè)值就是0xC7,可見(jiàn)計(jì)算無(wú)誤。附:CRC-16的CRC數(shù)值表constunsignedcharauchCRCHi[]={oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxo1,oxCo,ox8o,ox41,oxo1,oxCo,ox8o,ox41,oxoo,oxC1,ox81,ox4o,oxoo,oxC1,ox81,ox4o,oxo1,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40};constunsignedcharauchCRCLo[]={0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1,0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,0x5C,0x5D
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代醫(yī)療用品的冷鏈物流管理策略
- 現(xiàn)代農(nóng)業(yè)技術(shù)推廣與農(nóng)業(yè)可持續(xù)發(fā)展
- 媽媽班活動(dòng)方案國(guó)慶節(jié)
- 2023八年級(jí)物理上冊(cè) 第二章 物質(zhì)世界的尺度、質(zhì)量和密度第二節(jié) 物體的質(zhì)量及其測(cè)量說(shuō)課稿 (新版)北師大版
- 4《同學(xué)相伴》第一課時(shí) 說(shuō)課稿-2023-2024學(xué)年道德與法治三年級(jí)下冊(cè)統(tǒng)編版
- 《6~9的加減法-用減法解決問(wèn)題》說(shuō)課稿-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版001
- 1少讓父母為我擔(dān)心(說(shuō)課稿)-統(tǒng)編版(五四制)道德與法治四年級(jí)上冊(cè)
- 2024-2025學(xué)年高中物理 第四章 勻速圓周運(yùn)動(dòng) 第3節(jié) 向心力的實(shí)例分析說(shuō)課稿 魯科版必修2
- Unit3《It's a colourful world!》(說(shuō)課稿)-2024-2025學(xué)年外研版(三起)(2024)英語(yǔ)三年級(jí)上冊(cè)(2課時(shí))
- Unit 4 I have a pen pal Part B Let's learn(說(shuō)課稿)-2023-2024學(xué)年人教PEP版英語(yǔ)六年級(jí)上冊(cè)
- 部編人教版語(yǔ)文小學(xué)六年級(jí)下冊(cè)第四單元主講教材解讀(集體備課)
- 【課件】2024-2025學(xué)年高一上學(xué)期英語(yǔ)開(kāi)學(xué)第一課課件
- 年度重點(diǎn)工作計(jì)劃
- 《經(jīng)濟(jì)思想史》全套教學(xué)課件
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測(cè)
- 對(duì)合同條款有異議函
- 模板工程風(fēng)險(xiǎn)辨識(shí)及防范措施
- 中醫(yī)館工作細(xì)則
- 2024版《安全生產(chǎn)法》考試題庫(kù)附答案(共130題)
- 節(jié)后復(fù)工安全教育培訓(xùn)內(nèi)容【5篇】
- 尋夢(mèng)緣古法駐顏培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論