日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀]在一些通信規(guī)約中,經(jīng)常會(huì)用到數(shù)據(jù)校驗(yàn),其中CRC(Cyclical Redundancy Check)最為常見。它是利用除法及余數(shù)的原理來作錯(cuò)誤偵測的,實(shí)際應(yīng)用時(shí),發(fā)送裝置計(jì)算出CRC值并隨數(shù)據(jù)一同發(fā)送給接收裝置,接收裝置對(duì)收到的數(shù)據(jù)

在一些通信規(guī)約中,經(jīng)常會(huì)用到數(shù)據(jù)校驗(yàn),其中CRC(Cyclical Redundancy Check)最為常見。它是利用除法及余數(shù)的原理來作錯(cuò)誤偵測的,實(shí)際應(yīng)用時(shí),發(fā)送裝置計(jì)算出CRC值并隨數(shù)據(jù)一同發(fā)送給接收裝置,接收裝置對(duì)收到的數(shù)據(jù)重新計(jì)算CRC并與收到的CRC相比較,若兩個(gè)CRC值不同,則說明數(shù)據(jù)通信出現(xiàn)錯(cuò)誤。有關(guān)CRC算法的原理就不詳細(xì)說了,直接貼出C程序,用到的時(shí)候根據(jù)CRC生成多項(xiàng)式,做一些修改即可。

舉個(gè)例子:CRC生成多項(xiàng)式G(x)= x^16 + x^15 + x^13 + 1根據(jù)該多項(xiàng)式系數(shù),就可以判斷CRC值為16位兩字節(jié)數(shù)。從bit0位 到 bit15位 ,可知系數(shù)為1010 0000 0000 0001,所以簡記為OxAOO1。

//uc_p_Fst:校驗(yàn)的起始數(shù)據(jù)指針

//uc_p_End:指向校驗(yàn)結(jié)束數(shù)據(jù)的下一個(gè)數(shù)據(jù)的指針

//ui_CRC:初始數(shù)據(jù)(注意有些網(wǎng)上給出的程序習(xí)慣初始值為0 或初始值為0xffff,這兩種情況下校驗(yàn)時(shí)的方向不同,前者校驗(yàn)位左移,后者右移,具體原因我也解釋不清楚。)

uint16 CheckCRC(uint8* uc_p_Fst,uint8* uc_p_End,uint16 ui_CRC)

{

uint16 ui_Reg,i;

while(uc_p_Fst < uc_p_End)

{

ui_CRC = ui_CRC ^ (((uint16)(*uc_p_Fst))<<8);

for(i=0;i<8;i++)

{

ui_Reg = ui_CRC & 0x8000;

if(ui_Reg)

{

ui_CRC <<=1;//注意左移

ui_CRC = ui_CRC ^ 0xA001;// 這個(gè)地方就是用到不同的CRC生成多項(xiàng)式,做相應(yīng)的修改

}

elseui_CRC <<=1;

}

uc_p_Fst ++;

}

return(ui_CRC);

}

下面貼出用labview編寫的CRC校驗(yàn)小程序

前面板:

程序框圖:





如有錯(cuò)的地方,請(qǐng)大家指正!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉