下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水產(chǎn)品加工水井租賃協(xié)議
- 藥品集中采購(gòu)招投標(biāo)策略
- 社區(qū)底商營(yíng)業(yè)房租賃合同
- 音樂(lè)節(jié)校車租賃合同
- 2025年度IT產(chǎn)品研發(fā)保密協(xié)議及成果轉(zhuǎn)化合同3篇
- 學(xué)校教室改造敲墻合同
- 證券公司網(wǎng)站管理辦法
- 景觀綠化帶砂石料招投標(biāo)
- 保障性住房工程監(jiān)督意見(jiàn)書
- 2025年度教育培訓(xùn)機(jī)構(gòu)借款合同范本6篇
- 智能 檢測(cè)與監(jiān)測(cè) 技術(shù)-智能建造技術(shù)專01課件講解
- 大學(xué)生創(chuàng)業(yè)參考計(jì)劃書范文5篇
- 2024年度醫(yī)院醫(yī)療設(shè)備融資租賃合同4篇
- 行政規(guī)范性文件課件
- 交通事故應(yīng)急處理考核試卷
- 工貿(mào)企業(yè)安全生產(chǎn)費(fèi)用提取和使用管理制度(4篇)
- 中建硅墨烯保溫板外墻保溫施工方案
- 化學(xué)概論知到智慧樹章節(jié)測(cè)試課后答案2024年秋東北師范大學(xué)
- GB/T 750-2024水泥壓蒸安定性試驗(yàn)方法
- 2025屆廣東省廣州市物理高二第一學(xué)期期末檢測(cè)試題含解析
- 郵政行業(yè)事故隱患監(jiān)測(cè)與獎(jiǎng)勵(lì)機(jī)制
評(píng)論
0/150
提交評(píng)論