毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
循环冗余校验算法的FPGA设计(3)
2.CRC校验原理
2.1 总论
CRC码有两个组成部分,是由编码的串行在数据传输中发送的序列码,可以分为R位和K位的效验码。这两个效验码的功能和职能是不同的, K位的目的是进行数据的传输和有效信息的重组进行编码,R位则是根据K位提供的有效数据进行信息的产生和发送,通过计算后得到的R位的余数就是我们接收到的有效信息,证明信息是正确的,如果得到的效验码不是正确的,则需要重新发送或请求纠错。
CRC校验是一种异或操作,采用的是国际上通用的二进制来完成的。G(x)的生成在系统中可以通过多项式的方式来产生,在经过了系统经过严格的计算和相应的实验后确定的,有相应的国际标准。
CRC的生成是一个简单的过程,而效验码的生成是在接受数据后产生的。下面用一个简单的例子简单说明。
数据的设置以简单易用验证为主,我们将序列设置为110101110100.通过一系列的传输和数据生成,产生的结果是G(x)= + + +1,k=5,在结果中可以看到生成的序列是110101.生成多项式的序列除去发送数据的序列按照模2的算法,
(其中1000001是Q(x),,01111是R(x))获得的比特序列为01111,01111是r的余数,根据上述结果可以得到下列的校验结果:
110101111010 01111
比特的序列中发送的数据 比特的序列中CRC
通过计算可以得出下列结果,发送比特的序列中会出现CRC的校验结果。
在整个程序的设计中,既要有校验生成模块,也要有校验检错模块,这两个模块是必须具备的。在整个的数据传输过程中,校验结果是否准确的方法如上面的计算过程来显示。只有得到这些数据可以被相同的生成多项式的序列整除。只有这样才能证明整个数据的传输过程中不会出现问题,符合设计的科学严谨性。
2.2 CRC计算方法
首选要进行的是纠错码的设置,我们要将序列设置为10101111,依然按照惯例使用二进制的数字,如下的计算方式:
公式(2-1)
(2-1)中: 是信息代码的多项式,是得到的结果, 是一个二进制数的位置或者代码位置,这都是固定的参数设置 是表示代码的值,如果其是一个二进制的代码的话,我们可以取0来表示,或者可以选择1来表示,结果中仍然利用了异或运算。整个运算过程设计简单易懂,运算模式采用的是常用的方式,易于理解。
对于模式二来说我们也可以利用加法的运算方式来进行运算,得出的结果是一样的。
预设一个二进制的代码多项式,来检查一下检验公式是否合理,需要增加一个效验码可以用(n-k)来表示,在最后出现的结果中就会出现一个表示公式 ,如下图所示。
图2-1 信息代码多项式在新数据块中的表述图
设定的公式效验码,如果结果生成的多项式为 时,公式就是 公式(2-2)
由上述公式可以看出假定商为 ,根据公式计算出的余式为 。
运用公式的计算得出的结果我们会发现多项式加法得出的结果会和减法得出的结果是一致的结果相同,数值一样,可以按如下公式写:
公式(2-3)
共4页:
上一页
1
2
3
4
下一页
上一篇:
单片机电动汽车交流充电桩控制系统设计+源程序
下一篇:
GPS控制网设计与数据处理
基于循环和对称边界的图像反卷积快速算法
FPGA循环冗余码CRC算法分析与设计
MATLAB的循环码及其子码性能仿真研究+程序
MATLAB的循环码BCH码和RS码性能仿真+程序
MATLAB基于循环谱的通信信号识别技术研究
基于FPGA的循环冗余校验算法研究
Matlab循环码在不同信道中...
多元化刑事简易程序构建探讨【9365字】
中国古代秘书擅权的发展和恶变
高校网球场馆运营管理初探【1805字】
浅谈传统人文精神茬大學...
拉力采集上位机软件开发任务书
辩护律师的作证义务和保...
《醉青春》导演作品阐述
国内外无刷直流电动机研究现状
谷度酒庄消费者回访调查问卷表
浅谈新形势下妇产科护理...