精华内容
下载资源
问答
  • CRC校验码生成工具

    2018-07-20 16:27:08
    CRC校验码生成工具,CRC校验码生成工具,CRC校验码生成工具
  • CRC校验码生成工具modbus rtu,计算准确Win10CRC校验码生成工具modbus rtu,计算准确Win10CRC校验码生成工具modbus rtu,计算准确Win10CRC校验码生成工具modbus rtu,计算准确Win10可用
  • 基于FPGA 的CRC校验码生成器 今天给大侠带来基于FPGA的CRC校验码生成器,话不多说,上货。 1、概述 CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验...

    基于FPGA 的CRC校验码生成器

    今天给大侠带来基于FPGA的CRC校验码生成器,话不多说,上货。

     

    1、概述

    CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验字段的长度可以任意选定。

     

    2、CRC校验的基本原理

    CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。如:(7,3)码:110 1001,前三位110为信息码,1001为校验码。

     

    3、校验码的生成规则

    • 1)将原信息码左移r bit,右侧补零,如 110--> 110 0000;

    • 2)用110 0000除以g(x) (注意,使用的是模2除法,见下文),得到的余数即为CRC校验码;

    • 3)将校验码续接到信息码的尾部,形成CRC码。

     

    4、关于生成多项式g(x)

    在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。二进制数表示为生成多项式的系数,如下:

    所有二进制数均被表示为一个多项式,x仅是码元位置的标记,因此我们并不关心x的取值,称之为码多项式。(我没研究过CRC代数推理过程,没体会到用多项式计算的方便之处,这里要学会的就是给出生成多项式g(x),能写出对应的二进制即可) 常见的生成多项式如下:

     

    5、关于模2除法

    模2运算就是加法不考虑进位,减法不考虑借位。

    1)加法运算:

    0+0=0 0+1=1 1+0=1 1+1=0

    例如0101+0011=0110,列竖式计算:

    2)减法运算:

    0-0=0 0-1=1 1-0=1 1-1=0

    例如0110-0011=0101,列竖式计算:

    3)乘法运算

    0×0=0 0×1=0 1×0=0 1×1=1

    多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算:

    4)除法运算:

    0÷1=0 1÷1=1

    多位二进制模2除法也类似于普通意义上的多位二进制除法,但是在如何确定商的问题上两者采用不同的规则。后者按带借位的二进制减法,根 据余数减除数够减与否确定商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义的。

    实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。例如1100100÷1011=1110……110,列竖式计算:

    掌握了上面的运算规则,你可以尝试计算一个复杂一点的,如下:

    如果得到的余数结果正确,你掌握的东西就够用了。

     

    6.CRC-CCITT的硬件实现

    CRC-CCITT的生成多项式为:

    对应的二进制数就是上面复杂运算中那个除数。由刚才的计算可知,对于8 bit的数据 0xaa,它的CRC校验码为0001 0100 1010 0000,下面用verilog来实现,看能否得到这个结果。

    要实现这一过程,仍然需要LFSR电路,参看《FPGA产生基于LFSR的伪随机数》中关于该电路特性的介绍,如果您不需要了解原理,直接略过即可;有所改进的地方就是,可以将伪随机数发生器看作一个Moore型状态机,它的输出只与当前的状态有关;而此时利用LFSR电路,需要引入数据输入端,输出不仅取决于当前的状态,还取决于输入信号,相当于Mealy型状态机,如下图:

    注意对比与伪随机数产生器中该反馈支路的区别!

    反馈项gr+1gr……g0为生成多项式的系数,依然是1代表存在反馈,0代表不存在反馈;此电路可以完成上述的模2除法操作,若我们要求0xaa的CRC校验码,则从高位到低位顺序输入0xaa共8 bit后,D15……D0中的数据即为所要求的余数,即CRC校验位。

     

    7.verilog描述

    如果用时序电路串行实现,则8 bit数据要移位8次,就需要8个clk,效率低下,为了能在一个时钟周期输出结果,必须采用组合电路,当然,这是以空间换时间的方法,由于使用了for循环8次,直观的讲电路规模将扩大8倍。

    仿真结果如下:得到的是数据0xaa和0xf0的CRC校验码,为验证结果的正确性,您可以按照模2法则手工计算一下^.^

     

    8.4 bit信息位,5 bitCRC码的(9,4)码的程序和仿真结果

    同样给出一个4 bit信息位,5 bitCRC码的(9,4)码的程序和仿真结果,程序的流程与上述流程完全一样:

    后记:细心的读者可能发现,本文对LFSR电路能完成模2求余操作的原因避而不谈,不是因为不告诉你,是因为我也不是很清楚,工科背景对数学推理实在是有点不知所云,尤其是看到国内教材那好几页的公式的时候,如果您有深入浅出的讲解LFSR电路由来与应用的文章,注意是深入浅出的,请您大力推荐,在此感谢!

     

    【QQ交流群】

    群号:173560979,进群暗语:FPGA技术江湖粉丝。

    多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。

     

    【微信交流群】

    现微信交流群已建立08群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

    后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

    江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

    展开全文
  • 今天给大侠带来基于FPGA 的CRC校验码生成器设计,话不多说,上货。一、概述CRC,即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其...

    今天给大侠带来基于FPGA 的CRC校验码生成器设计,话不多说,上货。

    一、概述

    CRC,即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验字段的长度可以任意选定。

    二、CRC校验的基本原理

    CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。如:(7,3)码:110 1001,前三位110为信息码,1001为校验码。

    三、校验码的生成规则

    1) 将原信息码左移r bit,右侧补零,如 110--> 110 0000;

    2) 用110 0000除以g(x)  (注意,使用的是模2除法,见下文),得到的余数即为CRC校验码;

    3) 将校验码续接到信息码的尾部,形成CRC码。
           

    四、关于生成多项式g(x)

    在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。二进制数表示为生成多项式的系数,如下:      

    展开全文
  • CRC校验码生成器delphi版源码 本程序修改自网络资源。原程序有错误,因此进行了更正。 此程序本人是用于串口通信中的数据校验,符合Modbus协议GB/T19582.2-2008附录B中的算法。 本程序主要用于展示算法,带有详细...
  • CRC校验码生成器(v0.2)

    热门讨论 2011-04-01 23:49:19
    生成各种CRC校验码的软件,小巧实用,无需注册
  • 1.概述  CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字...  CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)...

    转自:https://www.cnblogs.com/BitArt/archive/2012/12/26/2833100.html

    1.概述

      CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验字段的长度可以任意选定。

    2.CRC校验的基本原理:

      CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。如:(7,3)码:110 1001,前三位110为信息码,1001为校验码。

    3.校验码的生成规则:

      1)将原信息码左移r bit,右侧补零,如 110--> 110 0000;

      2)用110 0000除以g(x)  (注意,使用的是模2除法,见下文),得到的余数即为CRC校验码;

      3)将校验码续接到信息码的尾部,形成CRC码。

    4.关于生成多项式g(x)

      在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。二进制数表示为生成多项式的系数,如下:

      

      所有二进制数均被表示为一个多项式,x仅是码元位置的标记,因此我们并不关心x的取值,称之为码多项式。(我没研究过CRC代数推理过程,没体会到用多项式计算的方便之处,这里要学会的就是给出生成多项式g(x),能写出对应的二进制即可)

      常见的生成多项式如下:

       

    5.关于模2除法

      模2运算就是加法不考虑进位,减法不考虑借位,

      1)加法运算:

        0+0=0        0+1=1        1+0=1        1+1=0

        例如0101+0011=0110,列竖式计算:

               0 1 0 1

           + 0 0 1 1

          ──────

               0 1 1 0

      2)减法运算:

        0-0=0        0-1=1        1-0=1        1-1=0

        例如0110-0011=0101,列竖式计算:

              0 1 1 0

         -  0 0 1 1

           ──────

              0 1 0 1

      3)乘法运算

        0×0=0        0×1=0        1×0=0        1×1=1

        多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算:

     

        

      4)除法运算:

        0÷1=0        1÷1=1

        多位二进制模2除法也类似于普通意义上的多位二进制除法,但是在如何确定商的问题上两者采用不同的规则。后者按带借位的二进制减法,根 据余数减除数够减与否确定商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义 的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。例如1100100÷1011=1110……110,列竖式计算:

          

    掌握了上面的运算规则,您可以尝试计算一个复杂一点的,如下:

        

      如果您得到的余数结果正确,您掌握的东西就够用了。

    6.CRC-CCITT的硬件实现

    CRC-CCITT的生成多项式为:

                      

      对应的二进制数就是上面复杂运算中那个除数。由刚才的计算可知,对于8 bit的数据 0xaa,它的CRC校验码为0001 0100 1010 0000,下面用verilog来实现,看能否得到这个结果:

      要实现这一过程,仍然需要LFSR电路,参看《FPGA产生基于LFSR的伪随机数》中关于该电路特性的介绍,如果您不需要了解原理,直接略过即可;有所改进的地方就是,可以将伪随机数发生器看作一个Moore型状态机,它的输出只与当前的状态有关;而此时利用LFSR电路,需要引入数据输入端,输出不仅取决于当前的状态,还取决于输入信号,相当于Mealy型状态机,如下图:

      

     

     

    注意对比与伪随机数产生器中该反馈支路的区别!

      反馈项gr+1gr……g0为生成多项式的系数,依然是1代表存在反馈,0代表不存在反馈;此电路可以完成上述的模2除法操作,若我们要求0xaa的CRC校验码,则从高位到低位顺序输入0xaa共8 bit后,D15……D0中的数据即为所要求的余数,即CRC校验位。

    7.verilog描述

      如果用时序电路串行实现,则8 bit数据要移位8次,就需要8个clk,效率低下,为了能在一个时钟周期输出结果,必须采用组合电路,当然,这是以空间换时间的方法,由于使用了for循环8次,直观的讲电路规模将扩大8倍。。。

    复制代码

    module CRC_GEN(
        input            rst,     /*async reset,active low*/
        input            clk,     /*clock input*/
        input     [7:0]  data_in, /*parallel data input pins */
        input            d_valid, /* data valid,start to generate CRC, active high*/
        output reg[15:0] crc
    );
    
    integer i;
    reg feedback;
    reg [15:0] crc_tmp;
    /*
    *  sequential process
    */
    always @(posedge clk or negedge rst)
    begin
        if(!rst) 
            crc <= 16'b0;          /*触发器中的初始值十分重要 */
        else if(d_valid==1'b0)
            crc <= 16'b0;
        else
            crc <= crc_tmp;
    end
    
    /*
    *   combination process
    */
    always@( data_in or crc)
    begin
        crc_tmp = crc;
        for(i=7; i>=0; i=i-1)
        begin
            feedback    = crc_tmp[15] ^ data_in[i];
            crc_tmp[15]  = crc_tmp[14];
            crc_tmp[14]  = crc_tmp[13];
            crc_tmp[13]  = crc_tmp[12];
            crc_tmp[12]  = crc_tmp[11] ^ feedback;
            crc_tmp[11]  = crc_tmp[10] ;
            crc_tmp[10]  = crc_tmp[9];
            crc_tmp[9]   = crc_tmp[8];
            crc_tmp[8]   = crc_tmp[7];
            crc_tmp[7]   = crc_tmp[6];
            crc_tmp[6]   = crc_tmp[5];
            crc_tmp[5]   = crc_tmp[4] ^ feedback;
            crc_tmp[4]   = crc_tmp[3];
            crc_tmp[3]   = crc_tmp[2];
            crc_tmp[2]   = crc_tmp[1];
            crc_tmp[1]   = crc_tmp[0];
            crc_tmp[0]   = feedback;
         end
    end
    
    endmodule

    复制代码

     仿真结果如下:得到的是数据0xaa和0xf0的CRC校验码,为验证结果的正确性,您可以按照模2法则手工计算一下^.^

      

     

    8.同样给出一个4 bit信息位,5 bitCRC码的(9,4)码的程序和仿真结果,程序的流程与上述流程完全一样:

        

    复制代码

    module CRC5_GEN(
        input           rst,
        input           clk,
        input     [3:0] data_in,
        input           d_valid, 
        output reg[4:0] crc
    );
    
    integer i;
    reg feedback;
    reg [4:0] crc_tmp;
    always @(posedge clk or negedge rst)
    begin
        if(!rst) 
            crc <= 5'b0;         
        else if(d_valid==1'b0)
            crc <= 5'b0;
        else
            crc <= crc_tmp;
    end
    
    
    always@( data_in or crc)
    begin
        crc_tmp = crc;
        for(i=3; i>=0; i=i-1)
        begin
            feedback    = crc_tmp[4] ^ data_in[i];
            crc_tmp[4]  = crc_tmp[3];
            crc_tmp[3]  = crc_tmp[2];
            crc_tmp[2]  = crc_tmp[1] ^ feedback;
            crc_tmp[1]  = crc_tmp[0];
            crc_tmp[0]  = feedback;
        end
        
    end
    
    endmodule

    复制代码

     

     

    后记:细心的读者可能发现,博主对LFSR电路能完成模2求余操作的原因避而不谈,不是因为不告诉您,是因为博主也不是很清楚,工科背景对数学推理实在是有点不知所云,尤其是看到国内教材那好几页的公式的时候…………如果您有深入浅出的讲解LFSR电路由来与应用的文章,注意是深入浅出的,请您为博主推荐,在此感谢!

    展开全文
  • 1.概述  CRC即Cyclic Redundancy ... CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。如:(7,3)码:...

    1.概述

      CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验字段的长度可以任意选定。

    2.CRC校验的基本原理:

      CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。如:(7,3)码:110 1001,前三位110为信息码,1001为校验码。

    3.校验码的生成规则:

      1)将原信息码左移r bit,右侧补零,如 110--> 110 0000;

      2)用110 0000除以g(x)  (注意,使用的是模2除法,见下文),得到的余数即为CRC校验码;

      3)将校验码续接到信息码的尾部,形成CRC码。

    4.关于生成多项式g(x)

      在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。二进制数表示为生成多项式的系数,如下:

      

      所有二进制数均被表示为一个多项式,x仅是码元位置的标记,因此我们并不关心x的取值,称之为码多项式。(我没研究过CRC代数推理过程,没体会到用多项式计算的方便之处,这里要学会的就是给出生成多项式g(x),能写出对应的二进制即可)

      常见的生成多项式如下:

       

    5.关于模2除法

      模2运算就是加法不考虑进位,减法不考虑借位,

      1)加法运算:

        0+0=0        0+1=1        1+0=1        1+1=0

        例如0101+0011=0110,列竖式计算:

               0 1 0 1

           + 0 0 1 1

          ──────

               0 1 1 0

      2)减法运算:

        0-0=0        0-1=1        1-0=1        1-1=0

        例如0110-0011=0101,列竖式计算:

              0 1 1 0

         -  0 0 1 1

           ──────

              0 1 0 1

      3)乘法运算

        0×0=0        0×1=0        1×0=0        1×1=1

        多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算:

     

        

      4)除法运算:

        0÷1=0        1÷1=1

        多位二进制模2除法也类似于普通意义上的多位二进制除法,但是在如何确定商的问题上两者采用不同的规则。后者按带借位的二进制减法,根 据余数减除数够减与否确定商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义 的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。例如1100100÷1011=1110……110,列竖式计算:

          

    掌握了上面的运算规则,您可以尝试计算一个复杂一点的,如下:

        

      如果您得到的余数结果正确,您掌握的东西就够用了。

    6.CRC-CCITT的硬件实现

    CRC-CCITT的生成多项式为:

                      

      对应的二进制数就是上面复杂运算中那个除数。由刚才的计算可知,对于8 bit的数据 0xaa,它的CRC校验码为0001 0100 1010 0000,下面用verilog来实现,看能否得到这个结果:

      要实现这一过程,仍然需要LFSR电路,参看《FPGA产生基于LFSR的伪随机数》 中关于该电路特性的介绍,如果您不需要了解原理,直接略过即可;有所改进的地方就是,可以将伪随机数发生器看作一个Moore型状态机,它的输出只与当前 的状态有关;而此时利用LFSR电路,需要引入数据输入端,输出不仅取决于当前的状态,还取决于输入信号,相当于Mealy型状态机,如下图:

      

     

     

    注意对比与伪随机数产生器中该反馈支路的区别!

      反馈项gr+1gr……g0为生成多项式的系数,依然是1代表存在反馈,0代表不存在反馈;此电路可以完成上述的模2除法操作,若我们要求0xaa的CRC校验码,则从高位到低位顺序输入0xaa共8 bit后,D15……D0中的数据即为所要求的余数,即CRC校验位。

    7.verilog描述

      如果用时序电路串行实现,则8 bit数据要移位8次,就需要8个clk,效率低下,为了能在一个时钟周期输出结果,必须采用组合电路,当然,这是以空间换时间的方法,由于使用了for循环8次,直观的讲电路规模将扩大8倍。。。

    复制代码
    module CRC_GEN(
        input            rst,     /*async reset,active low*/
        input            clk,     /*clock input*/
        input     [7:0]  data_in, /*parallel data input pins */
        input            d_valid, /* data valid,start to generate CRC, active high*/
        output reg[15:0] crc
    );
    
    integer i;
    reg feedback;
    reg [15:0] crc_tmp;
    /*
    *  sequential process
    */
    always @(posedge clk or negedge rst)
    begin
        if(!rst) 
            crc <= 16'b0;          /*触发器中的初始值十分重要 */
        else if(d_valid==1'b0)
            crc <= 16'b0;
        else
            crc <= crc_tmp;
    end
    
    /*
    *   combination process
    */
    always@( data_in or crc)
    begin
        crc_tmp = crc;
        for(i=7; i>=0; i=i-1)
        begin
            feedback    = crc_tmp[15] ^ data_in[i];
            crc_tmp[15]  = crc_tmp[14];
            crc_tmp[14]  = crc_tmp[13];
            crc_tmp[13]  = crc_tmp[12];
            crc_tmp[12]  = crc_tmp[11] ^ feedback;
            crc_tmp[11]  = crc_tmp[10] ;
            crc_tmp[10]  = crc_tmp[9];
            crc_tmp[9]   = crc_tmp[8];
            crc_tmp[8]   = crc_tmp[7];
            crc_tmp[7]   = crc_tmp[6];
            crc_tmp[6]   = crc_tmp[5];
            crc_tmp[5]   = crc_tmp[4] ^ feedback;
            crc_tmp[4]   = crc_tmp[3];
            crc_tmp[3]   = crc_tmp[2];
            crc_tmp[2]   = crc_tmp[1];
            crc_tmp[1]   = crc_tmp[0];
            crc_tmp[0]   = feedback;
         end
    end
    
    endmodule
    复制代码

     仿真结果如下:得到的是数据0xaa和0xf0的CRC校验码,为验证结果的正确性,您可以按照模2法则手工计算一下^.^

      

     

    8.同样给出一个4 bit信息位,5 bitCRC码的(9,4)码的程序和仿真结果,程序的流程与上述流程完全一样:

        

    复制代码
    module CRC5_GEN(
        input           rst,
        input           clk,
        input     [3:0] data_in,
        input           d_valid, 
        output reg[4:0] crc
    );
    
    integer i;
    reg feedback;
    reg [4:0] crc_tmp;
    always @(posedge clk or negedge rst)
    begin
        if(!rst) 
            crc <= 5'b0;         
        else if(d_valid==1'b0)
            crc <= 5'b0;
        else
            crc <= crc_tmp;
    end
    
    
    always@( data_in or crc)
    begin
        crc_tmp = crc;
        for(i=3; i>=0; i=i-1)
        begin
            feedback    = crc_tmp[4] ^ data_in[i];
            crc_tmp[4]  = crc_tmp[3];
            crc_tmp[3]  = crc_tmp[2];
            crc_tmp[2]  = crc_tmp[1] ^ feedback;
            crc_tmp[1]  = crc_tmp[0];
            crc_tmp[0]  = feedback;
        end
        
    end
    
    endmodule
    复制代码

     

     

    后记:细心的读者可能发现,博主对LFSR电路能完成模2求余操作的原因避而不谈,不是因为不告诉您,是因为博主也不是很清楚,工科背景对数学推理 实在是有点不知所云,尤其是看到国内教材那好几页的公式的时候…………如果您有深入浅出的讲解LFSR电路由来与应用的文章,注意是深入浅出的,请您为博 主推荐,在此感谢!

    转载于:https://www.cnblogs.com/lihao602/p/3365249.html

    展开全文
  • CRC16校验码生成器

    热门讨论 2012-03-10 11:42:03
    crc16校验码生成工具,MFC可执行程序
  • CRC16校验码生成工具

    千次下载 热门讨论 2008-12-12 14:34:42
    一款CRC16的校验码生成工具,可以自己设置校验码生成多项式,可以对十六进制序列和文件进行校验,得出16位CRC校验码。字符串需要输入ASCii码形式,例如:AE 13 4F 78 0C 90 A0 B1,每两个中间要加空格,当校验多项式...
  • crc32源代码32位crc校验码生成程序源代码vc++测试通过 http://hi.baidu.com/yanzi52351
  • CRC16校验码生成,低位在前高位在后的输出方式,尤其适合RTU通讯的朋友!直接用VC运行即可,希望能帮到你!
  • Modbus RTU CRC-16校验码生成器 CRC_Calc v0.3 这是最新版,多达21种CRC生成公式。体积小巧,免安装,是程序员工程师必备的神器,巴拉巴拉
  • CRC&LRC;校验码生成器

    2018-10-16 18:24:57
    CRC&LRC;校验码生成器,可同时生成如下格式验证码: CRC16_CCITT CRC16_CCITT_FALSE CRC16_XMODEM CRC16_X25 CRC16_MODBUS CRC16_IBM CRC16_MAXIM CRC16_USB
  • Modbus协议中的CRC校验码生成函数

    千次阅读 2018-09-11 21:33:34
    //以下为modbus协议中CRC码生成的函数。接口在下面 //*********************************************************** #include&lt;stdio.h&gt; static unsigned char auchCRCHi[] = { 0x00, 0xC1,...
  • CRC-16校验码生成

    2016-04-18 20:09:39
    CRC校验码生成小程序,大大减小了编程的难度
  • 二进制CRC校验码生成程序

    千次阅读 2013-07-01 00:34:34
    /**二进制CRC序列生成程序*/ #include #include #define LEN_DIVIDEND 30 #define LEN_DIVISOR 30 #define LEN_SEQUENCE LEN_DIVIDEND+LEN_DIVISOR void CRC(char*,char*,char*); void MOD2_div(char*,char*,char*);...
  • Modbus RTU CRC校验码生成代码

    千次阅读 2012-12-19 21:07:46
    *执行CRC生成的C语言的函数在下面标出,所有可能的CRC值都被预装在两个数组当中,当计算报文内容时可以简单的索引即可; *一个数组包含有16位CRC域的所有256个可能的高位字节,宁一个数组含有低位字节的值; *这种...
  • CRC循环冗余校验码生成器 ,计算机网络课程作业,有bug,参考,共享。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
  • Modbus RTU CRC-16校验码生成器CRC_Calc v0.2
  • 附件包括crc.h,crc.c,main.c 博文链接:https://kiolp.iteye.com/blog/2262455
  • 计算机系统运行时,各个部之间要进行数据交换,为确保数据在传送过程正确无误,常使用检验码。我们常使用的检验码有三种。 分别是奇偶校验码、海明校验码和循环冗余校验码(CRC) 。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,841
精华内容 4,336
关键字:

crc校验码生成工具