4166金沙手机官网计算之前先将移位寄存器全部清零

当前位置:4166金沙手机官网 > 4166金沙手机官网 > 4166金沙手机官网计算之前先将移位寄存器全部清零
作者: 4166金沙手机官网|来源: http://www.cotesdunord.com|栏目:4166金沙手机官网

文章关键词:4166金沙手机官网,冗余检验

  检验,校验最根本的原理就是将原始数据除以某个固定的数,然后所得的余数就是CRC校验码,根据校验码位数的不同常用的CRC校验算法有:CRC8、CRC12、CCITT CRC16、ANSI CRC16、CRC32。4166金沙手机官网这次我只实现了CRC8的算法,至于CRC16或CRC32下次再研究。

  对于CRC的基本原理我们可以根据具体的硬件电路图来理解,通常CRC循环冗余校验可以表示为带有反馈的移位寄存器,移位寄存器的阶数就是CRC字节的位数。另一种表示方法是将CRC表示为 X的多项式,X的幂次数就是CRC字节相应的位数,系数为“1”表示相对应阶数的寄存器有反馈,系数为“0”表示无反馈。

  计算之前先将移位寄存器全部清零,然后将数据一位一位地串行方式输入移位寄存器,当所要计算的有用数据最后一位输入后,此时移位寄存器中的值就是所输入这段有用数据的CRC8校验值。

  我们可以通过CRC8的两个重要性质来验证我们事先CRC8算法的正确性,这两个性质在接下来的仿线的移位寄存器的初始值为八位的数据A时,如果将相同的8位数据A依次输入给移位寄存器,寄存器将清零。也可以说成是A除以A余数为0。

  2)当CRC8的移位寄存器的初始值为八位的数据 时,如果我们将 的反码 依次输入给移位寄存器,移位寄存器的结果将是35H,也就是十进制的53。利用该特性可以对CRC8算法进行验证。

  以上所介绍的这种串行移位寄存器的方式主要是帮助我们掌握CRC校验的基本原理,当然实现上也可以用Verilog语言实现这种硬件电路,可想而知这种方式计算起来是相当慢的,要1个clk计算1bit。常用的CRC8算法是查找表算法。

  该算法是以一次输入8位数据din为单位的,也就是说一个时钟内并行输入一个字节数据,下一个时钟即可算出CRC8校验字节。利用Verilog语言先定义一个CRC8字节的寄存器,4166金沙手机官网在CRC8寄存器内容的基础上,利用新输入的8位数据计算新的CRC8字节来更新CRC8寄存器。如果CRC8寄存器初始值为0,那么输入8位数据后计算得到的CRC8就有256种可能。因此,定义了一个查找表reg [7:0] CRC8_table[255:0]并初始化为如下所示:

  下面说下实现该算法的过程:输入的8位数据din即作为查找表CRC8_table的索引i = din,然后执行CRC8 《= CRC8_table语句就得到了该字节的CRC8校验码,然而以上过程的前提是CRC8寄存器初始化为0,若CRC8寄存器不为0,那么查找表的索引i 的计算应为当前CRC8与输入数据的异或,即 i = CRC8^din,4166金沙手机官网然后执行语句CRC8 《= CRC8_table就得到了新的CRC8校验码。依次循环处理每个字节。。。。。。

  Teledyne e2v开发高速数据转换平台,以配合最新的Xilinx现场可编程门阵列器件

  英特尔推出业界领先的AI与数据分析平台,全新处理器、内存、存储、FPGA解决方案集体亮相

  艾迈斯半导体推出适用于高速电机的新型位置传感器,助力汽车行业的电气化发展

  生而为速,Xilinx专为联网和存储加速优化推出全新 Virtex UltraScale+ VU23P FPGA

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!