


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精品文檔最近在搞CRC校驗,用的是CRC16標準,查看了很多資料發現很多講的都是CRC16-CCITT標準,一直想弄明白 CRC-16標準中的采用查表法的方式中那兩個表格中的數是如何求出來的。可惜沒有一個文章仔細的講,更沒有文章給出實例來算一算。一切只能靠自己了,誰讓我喜歡尋根摸底呢。研究了一下本站會員玉丫子的文章,自己琢磨了琢磨,終于知道是怎么算出來的了。CRC16算法的生成多項式 xA16 + xA15 + xA2 + 1,十六進制表示為 0x8005。CRC16常見的表格中的數據是按照先傳輸LSB,消息右移進寄存器來計算的。因此需要判斷寄存器的最低位LSB,同時要將0x8005按位顛倒后
2、(0XA001)根據LSB的情況決定是否與寄存器異或即可。CRC16勺表格中對應的數依次為0255計算出來的CRC®,因此,此處只選取其中一兩個數作為實例計算CRC直。具體步驟如下所示:1)從0255中選取需要計算的數,將其對應的十六進制數放入一個長度為16的寄存器的低八位,高八位填充0;2)如果寄存器的末位LSB為1,將寄存器的數值右移1位,再與0XA001位異或,否則僅將寄存器右移1位;3)重復第2步,直到低八位全部右移出寄存器;4)寄存器中的值則為校驗碼。從0255中挑選2 (對應0x02)計算其 CRC值:0x02的CRC-16的表格計算(反向)00000000 000000
3、10<-最低位 LSB = 0,高八位填充 000000000 000000010 右移,高位填充0,并舍棄最后一位 第一次計算00000000 00000001 <- LSB =100000000 000000001 右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第二次10100000 00000001<- LSB =101010000 000000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第三次11110000 00000001<- LSB =101111000 0000000
4、01右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第四次11011000 00000001<- LSB =101101100 000000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第五次11001100 00000001<- LSB =101100110 000000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第六次11000110 00000001<- LSB =101100011 000000001右移,舍棄最后一位A101000000
5、0000001<-與 0xA001 異或 第七次11000011 00000001<- LSB =101100001 100000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 一共右移了八次,得到的結果為CRC精品文檔11000001 10000001<- CRC: 0xC1 81從本文最后的附表中可以看出auchCRCHi的第三個值就是0x 81, auchCRCLo的第三個值就是 0xC1,可見計算無誤。另一個計算實例,從 0255中挑選11 (對應0x0B)計算其CRC值:0x0B的CRC-16的表格計算(反向)000000
6、00 00001011<- 最低位 LSB =1, 高八位填充 000000000 000001011 右移,高位填充0,并舍棄最后一位A1010000000000001<-與 0xA001 異或 第一次計算10100000 00000100 <- LSB =001010000 000000100 右移,舍棄最后一位 第二次01010000 00000010<- LSB = 000101000 000000010右移,舍棄最后一位 第三次00101000 00000001<- LSB =100010100 000000001右移,舍棄最后一位A1010000000
7、000001<-與 0xA001 異或 第四次10110100 00000001<- LSB =101011010 000000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第五次11111010 00000001<- LSB =101111101 000000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 第六次11011101 00000001<- LSB =101101110 1000000001右移,舍棄最后一位A1010000000000001<-與 0xA001
8、異或 第七次11001110 10000001<- LSB =101100111 010000001右移,舍棄最后一位A1010000000000001<-與 0xA001 異或 一共算八次,得到的結果為 CRC11000111 01000001<- CRC: 0xC7 41從本文最后的附表中可以看出auchCRCHi的第12個值就是0x 41,auchCRCLo的第12個值就是0xC7,可見計算無誤。附:CRC-16的CRC數值表const unsigned char auchCRCHi = 0x00, 0xC1, 0x81,0x40, 0x01,0xC0, 0x80, 0
9、x41,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, 精品文檔OxCO, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x80, 0x41, 0x01, OxCO, 0x80, 0x41,
10、 0x00, 0xC1, 0x81,0x40, 0x01, OxCO, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x00, 0xC1,0x81, 0x40, 0x01, OxCO,0x80,0x41,0x00, 0xC1,0x81,0x40,0x01,OxCO,0x80,0x41,0x01, OxCO,0x80, 0x41, 0x00,0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40,0x01,OxCO,0x80, 0x41,0x01,OxCO, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x8
11、0, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81,0x40,0x01,OxCO, 0x80, 0x41,0x01,OxCO,0x80,0x41,0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40,0x01, OxCO, 0x80, 0x41,0x00,0xC1,0x81,0x40, 0x01, OxCO,0x80, 0x41, 0x01, OxCO, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x80, 0x41,0x01
12、, OxCO, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01, OxCO, 0x80, 0x41,0x01, OxCO, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x01, OxCO, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, O
13、xCO, 0x80, 0x41,0x01, OxCO, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, OxCO, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, OxCO, 0x80, 0x41,0x01, OxCO, 0x80, 0x41,0x00, 0xC1,0x81, 0x40;const unsigned char auchCRCLo = 0x00, OxCO, 0xC1,0x01,0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
14、0x05, 0xC5, 0xC4, 0x04, OxCC, OxOC, OxOD, OxCD, OxOF, OxCF, OxCE, OxOE, OxOA, OxCA, OxCB, OxOB, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, Ox1B, OxDB, OxDA, 0x1A, Ox1E, OxDE, OxDF, Ox1F, OxDD, 0x1D, 0x1C, OxDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11,0xD1, O
15、xDO, 0x10, OxFO, 0x30, 0x31, OxF1,0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, OxFC, OxFD, 0x3D, OxFF, 0x3F, 0x3E, OxFE, OxFA, 0x3A, 0x3B, OxFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, OxEB, 0x2B, 0x2A, OxEA, OxEE,0x2E, 0x2F, OxEF, 0x2D, OxED, OxEC, 0x2C, 0xE4
16、, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, OxE1,0x21,0x20, OxEO, OxAO, 0x60, 0x61, 0xA1,0x63, 0xA3, 0xA2,0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, OxAC, OxAD, 0x6D, OxAF, 0x6F,0x6E, OxAE, OxAA, 0x6A, 0x6B, OxAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, OxBB, 0x7B, 0x7A, OxBA, OxBE, 0x7E, 0x7F, OxBF, 0x7D, OxBD, OxBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, OxB1, 0x71,0x70, OxBO, 0x50, 0x90, 0x91,0x51,0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瓣膜置換的圍術期護理
- 人教A版 (2019)選擇性必修 第一冊3.2 雙曲線獲獎教案
- 2024中鋁共享服務(天津)有限公司校園招聘1人筆試參考題庫附帶答案詳解
- 鳳仙花的一生(教學設計)-2024-2025學年科學三年級下冊人教鄂教版
- 人教部編版一年級下冊20 咕咚第2課時教學設計
- 人教版(2024)八年級上冊(2024)第4節 眼睛和眼鏡教案
- 2024中建一局二級公司總工程師公開競聘1人筆試參考題庫附帶答案詳解
- 釘釘使用詳盡培訓
- 2024中國郵政福建建省分公司校園招聘預筆試參考題庫附帶答案詳解
- 人美版三年級下冊第3課 豎彎鉤教案及反思
- 拖掛式房車商業發展計劃書
- 09S304衛生設備安裝圖集
- 護士長招聘筆試題與參考答案(某世界500強集團)2024年
- 戶外趣味健步走活動設計方案2024
- 2024年廣東省深圳市光明區建筑工務署第二批選聘特聘專干8人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 成人中心靜脈導管(CVC)堵塞風險評估及預防-2024團體標準
- 人教版四年級語文下冊期中考試及答案
- 2024至2030年中國快速成型醫療器械市場現狀研究分析與發展前景預測報告
- 腫瘤專科護士考試題 附有答案
- JJG 705-2014液相色譜儀行業標準
- YY/T 0331-2024脫脂棉紗布、脫脂棉粘膠混紡紗布的性能要求和試驗方法
評論
0/150
提交評論