CRC冗余码校验编程实验.doc_第1页
CRC冗余码校验编程实验.doc_第2页
CRC冗余码校验编程实验.doc_第3页
CRC冗余码校验编程实验.doc_第4页
CRC冗余码校验编程实验.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 实验目的:掌握CRC冗余码校验编程二、 实验原理:1设置CRC寄存器,并给其赋值FFFF(hex)。 2将数据的第一个8-bit字符与16位CRC寄存器的低8位进行 异或,并把结果存入CRC寄存器。 3CRC寄存器向右移一位,MSB(最高位)补零,移出并检 查LSB(最低位)。 4如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多 项式码相异或。 5重复第3与第4步直到8次移位全部完成。此时一个8-bit数 据处理完毕。 6重复第2至第5步直到所有数据全部处理完成。 7最终CRC寄存器的内容即为CRC值。 常用的CRC循环冗余校验标准多项式如下: CRC(12位) =X12+X11+X3+X2+X+1 CRC(16位) = X16+X15+X2+1 CRC(CCITT) = X16+X12 +X5+1 CRC(32位) = X32+X26+X23+X16+X12+X11+X10+ X8+X7+ X5+X4+X2+X+1 以CRC(16位)多项式为例,其对应校验二进制位列为1 1000 0000 0000 0101。 注意:这儿列出的标准校验多项式都含有(X+1)的多项式因子;各多项式的系数均为二进制数,所涉及的四则运算仍遵循对二取模的运算规则。 (注:对二取模的四则运算指参与运算的两个二进制数各位之间凡涉及加减运算时均进行XOR异或运算,即:1 XOR 1=0,0 XOR 0=0,1 XOR 0=1,0 XOR 1=1,即相同为0,不同为1) 三、 实验内容及步骤: 打开VC选择新建点击“完成”,出现编辑添加控件在对话框上单击右键,选择建立类向导,出现如下对话框,添加成员变量返回最初的对话框单击“开始编码”按钮,选择建立类向导,如下图所示,添加功能函数单击Edit Code 添加如下函数void CGuoshuminDlg:OnButton1() / TODO: Add your control notification handler code hereUpdateData(true);int n,p,k,q,i,j=0;LPCSTRhead,g,begain,str1,str3;CStringstrEdit=m_strEdit1,s=CString(01);n=strlen(m_strEdit2)-1;if( strlen(m_strEdit1)=0 & strlen(m_strEdit2)=0 )MessageBox(没有输入数据!请重新填写!);return ; if( strlen(m_strEdit1)=0 & strlen(m_strEdit2)!=0 )MessageBox(没有输入要编码的数据!请重新填写!);return ;if( strlen(m_strEdit1)!=0 & strlen(m_strEdit2)=0 )MessageBox(没有输入校验多项式!请重新填写!);return ;str1=m_strEdit1;str3=m_strEdit2;for(int I=0; (str1I=0 | str1I=1 ) & I strlen(m_strEdit1) ;I+);if( Istrlen(m_strEdit1) )MessageBox(输入的要编码的数据不合理!请重新填写!); return ;for(int J=0; (str3J=0 | str3J=1 ) & J strlen(m_strEdit2) ;J+);if( J 0;k-)strEdit+=CString(0);strEdit=LPCSTR(strEdit);head = strEdit ;for( ; strlen( head ) = strlen( m_strEdit2 ) ; )g = m_strEdit2 ;for( i=0; *g != 0 ; i+, g+ )if( *(head+i) = *g )strEdit.SetAt(i+j,s0);/CString(0) ;elsestrEdit.SetAt(i+j,s1);/CString(1);q=0;for( ; strEditq != 1 & q strlen(strEdit)-1 ; ) q+ ;j = q ;head = strEdit ;head+=q;p = strlen(strEdit)- n;begain = strEdit;begain += p;m_strEdit3=begain;m_strEdit4 = m_strEdit1 + m_strEdit3;UpdateData(false);返回最初的对话框单击“开始编码”按钮,选择建立类向导,如下图所示,添加功能函数单击Edit Code 添加如下函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论