- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告用模2除法计算CRC码的CRC校验软件设计
用模2除法计算CRC码的CRC校验软件设计
一、设计目标
1)掌握用模二除法实现CRC码的计算方法;
2)掌握用C语言计算CRC码的算法;
3)熟练并掌握C语言在通信网络中的编程实现方式及功能;
4) 学会用C语言实现文件之间的读取和写入,实现共享传送功能;
5)熟悉VC6.0的运行环境,熟练掌握在其中运行编译的各个步骤。
二、设计原理和方法
1、CRC简介及原理:
CRC码为循环冗余校验码,基本表示方式为(n,k),其中n为数据位数,k为校验码位数。CRC码校验的基本思想是利用线性编码理论,在发送端根据要传送的(n,k)位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。CCITT建议:2048 kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验采用16位CRC校验。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,使用CRC-16。CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。最常用的CRC码的生成多项式有CRC16,CRC32.
32位CRC码的产生的规则是先将要发送的二进制序列数左移32位后,再除以一个多项式(生成多项式G(x)),最后得到的余数既是CRC码,如式(2-1)式所示,其中C(X)表示(n-k)位的二进制序列数,G(X)为多项式,Q(X)为商(整数),R(X)是余数(既CRC码)。(2-1)
求CRC码所采用模2加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。
本课程设计中使用的生成多项式是由欧洲CRC32,即:
g(x)= x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
接收方将接收到的二进制序列数(包括信息码和CRC码)除以多项式,如果余数为0,则说明传输中无错误发生,否则说明传输有误。用软件计算CRC码时,接收方可以根据接收到的信息码求CRC码,比较结果和接收到的CRC码是否相同。
例如信息位是“”、多项式g(x)=1001,用模二除法生成CRC码的过程如下所示:
①在信息位“”后面增加3个“0”,即“”
②用“”模二除g(x)=1001,r(x)=011;
③得到的余数“011”即为“”的CRC校验码;将其加在原数据后面,即“”,通过发送端发送,在接收端收到数据再除以多项式g(x),若余数为0,则传输正确,去掉后三位即得到需要的数据“”;若信道有干扰,使接收到的数据不是“”,除以多项式g(x)后余数不为0,则传输失败,等待重传。
2、模二除法实现CRC校验的基本原理
用计算机编程实现CRC校验码,采用寄存器移位的方法。
假设待测数据是1101 0110 11,生成项是10011,假设有一个4 bits的寄存器,通过反复的移位和进行CRC的除法,最终该寄存器中的值就是我们所要求的余数。
3 2 1 0 Bits
+---+---+---+---+
Pop -- | | | | | ----- Augmented message(已加0扩张的原始数据)
+---+---+---+---+
1 0 0 1 1 = The Poly 生成项
依据这个模型,我们得到了一个最最简单的算法:
把register中的值置0.
把原始的数据后添加w个0.
While (还有剩余没有处理的数据)
Begin
把register中的值左移一位,读入一个新的数据并置于register最低位的位置。
If (如果上一步的左移操作中的移出的一位是1)
register = register XOR Poly.
End
实际上就是模拟XOR除法的过程,即被测数据一位一位放到寄存器中来做除法。
比如生成项是10011,则生成的余数是4位XXXX,所
您可能关注的文档
- 论农村金融与县域经济发展.doc
- 论光伏系统的设计与安装.doc
- 论如何吸引和留住人才.doc
- 论学校、家庭的互补教育.doc
- 论审计风险的控制与防范本科毕业论文.doc
- 论小型企业的发展与其学习力.doc
- 论建筑工程施工中安全监理的控制.doc
- 论当前企业网络广告存在的问题及对策.doc
- 计算机硬件技术基础电梯监控系统设计.doc
- 论我国新闻工作者的社会责任开题报告.doc
- 2024年沧州市公务员考试行测真题及答案详解(名师系列).docx
- 粮油食品检验人员复习提分资料带答案详解(精练).docx
- 粮油食品检验人员自我提分评估(考点精练)附答案详解.docx
- 粮油食品检验人员全真模拟模拟题附参考答案详解(精练).docx
- 2025年延安市公务员考试行测试卷历年真题附答案详解(突破训练).docx
- 2025年株洲市公务员考试行测试卷历年真题含答案详解.docx
- 2024年枣庄市公务员考试行测真题及完整答案详解1套.docx
- 2024年抚顺市公务员考试行测真题及答案详解(各地真题).docx
- 2025年常州市公务员考试行测真题及一套参考答案详解.docx
- 2023年德州市公务员考试行测试卷历年真题及1套完整答案详解.docx
最近下载
- 实验室安全和保证人员健康程序.docx VIP
- 2025四川攀枝花市第十二中学校直接考核招聘编外艺体培训导师20人笔试备考试题及答案解析.docx VIP
- 课程思政教学竞赛说课稿《电机与电气控制技术》.pptx VIP
- 检查更换油井油嘴.ppt
- 人教版三年级数学下册思维训练应用题(含答案).pdf VIP
- GB 10068-2008 轴中心高为56 mm及以上电机的机械振动.pdf
- 国企招聘党群岗笔试试题及答案.pdf VIP
- 00015-英语二-第三单元课后答案及参考译文.docx VIP
- 2024年云南省《辅警招聘考试必刷500题》考试题库附完整答案.pdf VIP
- 4s店财务经理述职报告7篇.docx
文档评论(0)