精华内容
下载资源
问答
  • CRC校验码

    2014-04-27 17:29:09
    CRC校验码
  • crc校验码的工具 Crc校验码的工具 Crc校验码的工具 Crc校验码的工具
  • CRC校验码生成工具

    2018-07-20 16:27:08
    CRC校验码生成工具,CRC校验码生成工具,CRC校验码生成工具
  • 这两天项目中要使用到CRC校验功能,网上大量的例子是针对c、delphi的例子...一、什么是CRC校验:CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字...

    这两天项目中要使用到CRC校验功能,网上大量的例子是针对c、delphi的例子,前期没有做过,理论上也欠缺很多知识,在这里对java如何实现我们想要的crc校验功能做一下自己的总结,以下内容有本分转自网上,希望对有需要的朋友作能够参考一下。

    一、什么是CRC校验:

    CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

    二、CRC的原理:若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得

    V(x)=A(x)g(x)=xRm(x)+r(x);

    其中: m(x)为K次信息多项式, r(x)为R-1次校验多项式,

    g(x)称为生成多项式:

    g(x)=g0+g1x+ g2x2+...+g(R-1)x(R-1)+gRxR

    发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。

    (对于细节性的知识朋友们可以在网上找到大量资料这里不再做重复说明) (以上来自网络转载)

    三、CRC校验码方式有哪些:

    1 byte checksum

    CRC-16

    CRC-16 (Modbus)

    CRC-16 (Sick)

    CRC-CCITT (XModem)

    CRC-CCITT (0xFFFF)

    CRC-CCITT (0x1D0F)

    CRC-CCITT (Kermit)

    CRC-DNP

    CRC-32

    对于以上方式来说结果可以生成为ASCII、HEX等方式

    四、JAVA实现CRC校验

    (1)这里对于CRC-CCITT四种方式进行梳理:

    public class CRC {

    /**

    * CRC-CCITT(Kermit)验证模式

    * @param str

    * @return

    */

    public String CRC_CCITT_Kermit(String str) {

    int j, b, rrrc, c, i;

    String tmpBalance;

    int k;

    rrrc = 0;

    tmpBalance = str;

    int tmpInt, CharInt;

    String tmpChar, tmpStr;

    tmpStr = "";

    int High;

    int Low;

    for (j = 1; j <= 3; j++) {

    if (Character.isDigit(tmpBalance.charAt(2 * j - 2))) {

    High = Integer.parseInt(tmpBalance.charAt(2 * j - 2) + "");

    } else {

    High = 0;

    }

    if (Character.isDigit(tmpBalance.charAt(2 * j - 1))) {

    Low = Integer.parseInt(tmpBalance.charAt(2 * j - 1) + "");

    } else {

    Low = 0;

    }

    High = (High & 0xff) << 4;

    High = High | Low;

    k = High;

    for (i = 1; i <= 8; i++) {

    c = rrrc & 1;

    rrrc = rrrc >> 1;

    if ((k & 1) != 0) {

    rrrc = rrrc | 0x8000;

    }

    if (c != 0) {

    rrrc = rrrc ^ 0x8408;

    }

    k = k >> 1;

    }

    }

    for (i = 1; i <= 16; i++) {

    c = rrrc & 1;

    rrrc = rrrc >> 1;

    if (c != 0) {

    rrrc = rrrc ^ 0x8408;

    }

    }

    c = rrrc >> 8;

    b = rrrc << 8;

    rrrc = c | b;

    tmpInt = rrrc;

    tmpStr = "";

    for (i = 1; i <= 4; i++) {

    tmpChar = "";

    CharInt = tmpInt % 16;

    if (CharInt > 9) {

    switch (CharInt) {

    case 10:

    tmpChar = "A";

    break;

    case 11:

    tmpChar = "B";

    break;

    case 12:

    tmpChar = "C";

    break;

    case 13:

    tmpChar = "D";

    break;

    case 14:

    tmpChar = "E";

    break;

    case 15:

    tmpChar = "F";

    break;

    }

    } else {

    tmpChar = Integer.toString(CharInt);

    }

    tmpInt = tmpInt / 16;

    tmpStr = tmpChar + tmpStr;

    }

    System.out.println("tmpStr:" + tmpStr);

    return tmpStr;

    }

    /**

    * CRC-CCITT(XModem)

    * CRC-CCITT(0xFFFF)

    * CRC-CCITT(0x1D0F)

    * 校验模式

    * @param flag< XModem(flag=1) 0xFFFF(flag=2) 0x1D0F(flag=3)>

    * @param str

    * @return

    */

    public String CRC_CCITT( int flag,String str) {

    int crc = 0x00; // initial value

    int polynomial = 0x1021;

    byte[] bytes=str.getBytes();

    switch(flag){

    case 1:

    crc=0x00;

    break;

    case 2:

    crc=0xFFFF;

    break;

    case 3:

    crc=0x1D0F;

    break;

    }

    for (int index = 0 ; index< bytes.length; index++) {

    byte b = bytes[index];

    for (int i = 0; i < 8; i++) {

    boolean bit = ((b >> (7-i) & 1) == 1);

    boolean c15 = ((crc >> 15 & 1) == 1);

    crc <<= 1;

    if (c15 ^ bit) crc ^= polynomial;

    }

    }

    crc &= 0xffff;

    str = Integer.toHexString(crc);

    return str;

    }

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2011-03-17 08:30

    浏览 322

    评论

    展开全文
  • CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据...CRC校验码的计算过程: 1,先约定

    CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。(以上摘自百度百科)


    CRC校验码的计算过程:

    1,先约定一个校验码。这里有个个人理解:校验码与生成多项式的关系:校验码=生成多项式右移一位

    常见的CRC生成多项式码有:
    crc_4:10011
    crc_8:100110001
    crc_16:11000000000000101

    2,将信息码左移校验码长度个单位,即在信息码后面补N-1个0 ,N为多项式长度(注意这两种表示方法)

    3,将补0的信息码与多项式码进行异或运算 额,具体点吧:

    (1)先将信息码与多项式码高位对齐,进行异或运算

    (2)上一步得到的余数的首位如果为0左移一位,为1就转到(1)

    (3)重复以上两步,直到余数的长度为校验码的长度

    (4)得到的就是CRC校验码


    当然,这只是理论上的计算方法,更不是CRC校验码的原理,CRC校验码的原理是多项式的各种操作~这里就不多讲了,网上资料很多

    那么用Java程序来实现这个过程就有点麻烦了,为了直观,我用整型数组来装01信号与多项式码,为此我定义了异或操作,左右移操作,补0操作。具体见代码注脚。

    (本人水平有限,欢迎指正)
    [java] view plain copy
    1. //说明:本代码可以实现任何01信号串的CRC校验码的计算  
    2. //只需输入待定信号与约定的多项式码即可得到CRC校验码  
    3. //常见的CRC多项式码有:  
    4. //crc_4:10011  
    5. //crc_8:100110001  
    6. //crc_16:11000000000000101  
    7. import java.util.Scanner;  
    8.   
    9. public class MyCrc {  
    10.     public static void main(String args[]) {  
    11.         System.out.println("输入信号:(如1100100):");  
    12.         int a[]=jieShou();                            //将输入的数字串用整型数组接收  
    13.         System.out.println("输入多项式码:(如1011):");  
    14.         int g[]=jieShou();                            //接收多项式码  
    15.         int glength=g.length-1;                       //多项式码-1=校验码长度  
    16.         a=jiaWei(a, glength);                         //给信息码后面补校验码长度个0  
    17.         g=jiaWei(g, a.length-g.length);               //给多项式码长度补0,让其长度=补0后的信息码  
    18.           
    19. //进行CRC的计算  
    20.         while (a.length>glength) {                    //直到a的长度等于校验码的长度(就是要附加的校验码长度)  
    21.             if (a[0]==0) {                            //首端是否为0  
    22.                 a=zuoYi(a);                           //左移  
    23.                 g=youYi(g);                           //多项式码右移  
    24.             }  
    25.             else {  
    26.                 a=yiHuo(a, g);                        //异或  
    27.             }  
    28.         }  
    29.           
    30.         System.out.println("校验码为:");  
    31.         show(a);       
    32.     }  
    33.       
    34. public static int[] jieShou() {                       //接收01字符串并转存成整型数组  
    35.         String s;  
    36.         Scanner d=new Scanner(System.in);  
    37.         s=d.next();  
    38.         char[] q=s.toCharArray();  
    39.         int temp[]=new int[q.length];  
    40.         for (int j = 0; j < q.length; j++) {  
    41.             temp[j]= Integer.parseInt(String.valueOf(q[j]));;  
    42.         }  
    43.         return temp;  
    44.     }  
    45.       
    46. public static int[] yiHuo(int[] a,int[] b) {          //异或操作  
    47.         int temp[]=new int[a.length];  
    48.         for (int j = 0; j < a.length; j++) {  
    49.             if (a[j]-b[j]<0) {  
    50.                 temp[j]=b[j]-a[j];  
    51.             }  
    52.             else {  
    53.                 temp[j]=a[j]-b[j];  
    54.             }  
    55.         }  
    56.         return temp;  
    57.     }  
    58.       
    59.     public static int[] jiaWei(int[] a,int b) {        //补0操作  
    60.         int temp[]=new int[a.length+b];  
    61.         for (int i = 0; i < a.length; i++) {  
    62.             temp[i]=a[i];  
    63.         }  
    64.         return temp;      
    65.     }  
    66.       
    67.     public static int[] zuoYi(int[] a) {              //左移操作  
    68.         int temp[]=new int[a.length-1];  
    69.         for(int i=0;i<a.length-1;i++){                //依次向前赋值  
    70.             a[i] = a[i+1];}  
    71.         for (int i = 0; i < temp.length; i++) {       //去尾  
    72.             temp[i]=a[i];  
    73.         }  
    74.         return temp;  
    75.         }  
    76.   
    77.     public static int[] youYi(int[] a) {              //右移操作  
    78.         int temp[]=new int[a.length-1];  
    79.         for(int i=a.length-1;i>0;i--){                //依次向后赋值  
    80.             a[i] = a[i-1]; }  
    81.         for (int i = 0; i < temp.length; i++) {       //去尾  
    82.             temp[i]=a[i+1];  
    83.         }  
    84.         return temp;  
    85.         }  
    86.   
    87.     public static void show(int[] a) {                //打印  
    88.             for (int i = 0; i < a.length; i++) {  
    89.                 System.out.print(a[i]);  
    90.             }  
    91.             System.out.print("\n");  
    92.         }  
    93. }  

    CRC的校验原理  

    最详细易懂的CRC-16校验原理

    展开全文
  • 常用校验码(奇偶校验码、海明校验码、CRC校验码) 一、奇偶校验码二、海明校验码三、CRC校验码   计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于...

    转载自:https://www.cnblogs.com/VersionP1/p/7779251.html ,作者: FunnyOne 

     

    常用校验码(奇偶校验码、海明校验码、CRC校验码)

    一、奇偶校验码
    二、海明校验码
    三、CRC校验码

      计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的的,误码会导致储存的内容发生改变。为确保数据在传送过程正确无误,常使用检验码. 我们常使用的检验码有三种. 分别是奇偶校验码海明校验码循环冗余校验码(CRC) 。

     

    一、奇偶校验码

     

    学习资料:常用校验码

    概念:

      奇偶校验码是奇校验码偶校验码的统称. 它们都是通过在要校验的编码上加一位校验位组成.

    校验方法:

      如果是奇校验加上校验位后,编码中1的个数为奇数个。如果是偶校验加上校验位后,编码中1的个数为偶数个

    分类:

    1. 水平奇偶校验码:对每一个数据的编码添加校验位,使信息位与校验位处于同一行

    例子:

    原编码 奇校验 偶校验
    0000 0000 1 0000 0
    0010 0010 0 0010 1
    1100 1100 1 1100 0
    1010 1010 1 1010 0

    当原编码在传输、储存的过程中发生了误码,1的数量就会改变,然后就能校验出该过程出现了错误。

    1. 垂直奇偶校验码:把数据分成若干组,一组数据排成一行,再加一行校验码. 针对每一行列采用奇校验 或 偶校验

    缺点:

    1. 只能检测出奇数位出错. 如果发生偶数位错误就无法检测

      设原编码为0000,传输的过程中变成了1001。如果使用奇校验,原编码是00001,传输过后会变成10011,1仍然是奇数个,无法校验;如果使用偶校验,原编码是00000,传输过后会变成10010,1仍然是偶数个,同样无法校验。

    1. 奇偶校验码无法检测出哪位出错.所以属于无法矫正错误的校验码。

      校验过程中只知道1的数量发生变化,对于哪个地方发生变化无从知道。

    二、海明校验码

    学习资料:海明校验码

    实现原理:

      它的实现原理,是在m个数据位之外加上k个校验位,从而形成一个m+k位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

    两个码组对应位上数字的不同位的个数称为码组的距离,简称码距

    例:

    这两个二进制码中,有三个不相同的位置,所以码距为3.

    须知:

    1. 海明校验码是放在2的幂次位上的,即“1,2,4,8,16,32······”;
    2. 信息位为m的原始数据,需要加入k位的校验码,它满足m+k+1<2^k;

    例子:

    要计算原始信息位为101101100的海明校验码。

    先用m+k+1<2^k计算出校验位:9+k+1 <2^k→k=4,即校验位为4位。

    因为海明校验码是放在2的幂次位上,所以插在位置1,2,4,8中

    用到的校验码是看 当前位置由哪几个 校验码所在的位置的和

    • 例如

    校验码的位置是1,2,4,8。位置3= 1 + 2,所以位置3用到的校验码是1和2;位置7 = 1 + 2 + 4组成的,所以位置7用到的校验码是1,2和4。

    然后将校验码校验的位置记录下来:

    • 校验码1(位置1):3,5,7,9,11,13
    • 校验码2(位置2):3,6,7,10,11
    • 校验码3(位置4):5,6,7,12,13
    • 校验码4(位置8):9,10,11,12,13

    注意:后面的数字串是位置的下标,不是值,值还是0或1。

    然后做异或运算(相同时为0,不同时为1)

    • 校验码1(位置1):1 xor 0 xor 1 xor 0 xor 1 xor 0 = 1
    • 校验码2(位置2):1 xor 1 xor 1 xor 1 xor 1 = 1
    • 校验码3(位置4):0 xor 1 xor 1 xor 0 xor 0 = 0
    • 校验码4(位置8):0 xor 1 xor 1 xor 0 xor 0 = 0

    三、循环冗余校验码(CRC校验)

    学习资料:CRC的校验原理以及例子

    原理:CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。

    实现步骤:

    双方事先约定了一个R次多项式g(x),即CRC码

    CRC码的特点:

    • 位数要少于原编码
    • 收尾为1
    • 自行决定

    例:

    原编码:1001001011

    则CRC码可以为10011,也可以为11001等

    但是:10010这种不可以,因为它的尾巴不是1,1001101011也不行,因为它的位数与原编码的一致。

    要注意的是:CRC码并非是校验码,但需要通过CRC码来获得校验码。具体校验码的话要先让原编码加上CRC码位数个0(即CRC码有的多少位,就要加上多少位0在原编码的后面)然后用新原编码除CRC码,得到的余数就是校验码

    例:

    原编码=1010001101

    CRC码设为:110101

    校验码有5位,因此

    新原编码:101000110100000

    然后用新原编码除以CRC码:

    校验码就是01110

    校验方法

    用原编码与校验码进行模2减法,获得最终原编码。此时最终原编码除以CRC码是可以整除的,由于接收方也有相同的CRC码,在数据传输的过程中不发生错误,接收方用接收到的数据除以CRC码也是可以整除的,此时为无错误。同时,不能整除,说明传输过程中数据发生了错误。

    展开全文
  • CRC校验码labview指令

    2018-04-21 10:29:37
    串口通讯需要CRC校验码,labview代码自动根据前面代码计算CRC校验码,得到完整的串口通讯指令
  • 今天给大侠带来基于FPGA 的CRC校验码生成器设计,话不多说,上货。一、概述CRC,即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。其特征是信息段和校验字段的长度可以任意选定。...
    e7aee9ec237af20fbe34ea8519c88452.gif大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

    今天给大侠带来基于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的多项式表示。二进制数表示为生成多项式的系数,如下:      6d57a559e2c433fd8a92cea166a15eab.png所有二进制数均被表示为一个多项式,x仅是码元位置的标记,因此我们并不关心x的取值,称之为码多项式。(我没研究过CRC代数推理过程,没体会到用多项式计算的方便之处,这里要学会的就是给出生成多项式g(x),能写出对应的二进制即可)常见的生成多项式如下:cba55ee47a0bb71b51984d32aae53e67.png五、关于模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,列竖式计算:   2b201bf4f497b95b2fe2b8c10780f19a.png     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,列竖式计算:989d0d28ef4e54ec514a8450ae77dbc0.png掌握了上面的运算规则,你可以尝试计算一个复杂一点的,如下:       9fae621473f85809cbc6a5e2a8d6cf66.png   如果得到的余数结果正确,你掌握的东西就够用了。六、CRC-CCITT的硬件实现CRC-CCITT的生成多项式为:   2f526ebd25e6a7a1335af4a733743962.png     对应的二进制数就是上面复杂运算中那个除数。由刚才的计算可知,对于8 bit的数据 0xaa,它的CRC校验码为0001 0100 1010 0000,下面用verilog来实现,看能否得到这个结果:要实现这一过程,仍然需要LFSR电路,参看《FPGA设计中,产生LFSR伪随机数》中关于该电路特性的介绍,如果你不需要了解原理,直接略过即可;有所改进的地方就是,可以将伪随机数发生器看作一个Moore型状态机,它的输出只与当前的状态有关;而此时利用LFSR电路,需要引入数据输入端,输出不仅取决于当前的状态,还取决于输入信号,相当于Mealy型状态机,如下图:  7a52065aedc378340ba8d37fcf85f5c0.png注意对比与伪随机数产生器中该反馈支路的区别。反馈项gr+1gr……g0为生成多项式的系数,依然是1代表存在反馈,0代表不存在反馈;此电路可以完成上述的模2除法操作,若我们要求0xaa的CRC校验码,则从高位到低位顺序输入0xaa共8 bit后,D15……D0中的数据即为所要求的余数,即CRC校验位。七、verilog描述如果用时序电路串行实现,则8 bit数据要移位8次,就需要8个clk,效率低下,为了能在一个时钟周期输出结果,必须采用组合电路,当然,这是以空间换时间的方法,由于使用了for循环8次,直观的讲电路规模将扩大8倍。2d0032eaf6237c53d12bfa5495acfa8d.pngb4c5cc100cb8d5cc79e9e9bc4db786b4.png      仿真结果如下:得到的是数据0xaa和0xf0的CRC校验码,为验证结果的正确性,可以按照模2法则手工计算一下。016f02114043e37aa9d8a32c4be339c8.png八、其他例子同样给出一个4 bit信息位,5 bitCRC码的(9,4)码的程序和仿真结果,程序的流程与上述流程完全一样:       75af09895a87994d5d7a61c124f027b7.png270e96eb1565c215da9bae83cd9661f3.png6c28569dbbcc93ff1dee13571a015bd8.png     说明:细心的大侠可能发现,本篇对LFSR电路能完成模2求余操作的原因避而不谈,不是因为不告诉你,是因为目前也不是很清楚,工科背景对数学推理实在是有点不知所云,尤其是看到国内教材那好几页的公式的时候,如果您有通俗易懂的讲解LFSR电路由来与应用的文章,注意是深入浅出的,请大力推荐,在此感谢。END后续会持续更新,带来Vivado、 ISE、Quartus II 、Candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

    往期推荐

    • FPGA零基础学习:VGA协议驱动设计

    • FPGA零基础学习:IIC协议驱动设计

    • Zynq:用PS控制DDR3内存读写

    • 举例分析 Intel FPGA 和 Xilinx FPGA 的区别

    • 新谈:为什么你觉得FPGA难学?如何入门?

    25d308628b6b37eb0b4439b660137fb6.gif

    af149a4ed217f179a8b141848e5c764f.png

    FPGA技术江湖广发江湖帖

    无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。

    FPGA技术江湖微信交流群

    277c4eacf65d88cce406764f34ac8421.png

    加群主微信,备注职业+方向+名字进群

    FPGA技术江湖QQ交流群

    38794fdb260db4cdea72c93559c81c5b.png

    备注地区+职业+方向+名字进群

    2e51d4219e8ff322b80bc1b23dc3421f.png

    展开全文
  • CRC校验码计算方法.pdf

    2019-09-17 23:56:41
    CRC校验码计算方法pdf,CRC校验码计算方法
  • crc校验码的实现

    2013-11-16 16:45:57
    crc校验码的实现 crc校验码的实现 crc校验码的实现
  • 奇偶校验码 海明校验码 CRC校验码奇偶校验码
  • CRC校验码计算器

    2017-03-19 20:22:38
    CRC校验码计算工具(8位,16位,32位均可计算)
  • CRC校验码生成说明

    2015-04-08 17:02:04
    CRC校验码生成,简单地列举了一个CRC校验码生成的过程,说明CRC生成的过程和原理。希望对大家有用。
  • Java生成异或校验码、和校验码、CRC校验码、补码求和校验码四种校验码及校验码匹配工具类/*** 报文校验码验证规则*/public class Verification {/*** 校验校验码是否一致* @param type 需要使用的校验规则* @param ...
  • 模2除法(CRC校验码计算)

    万次阅读 多人点赞 2018-09-10 17:53:30
    鉴于网上的讲解自己好不容易才看懂…所以自己整理了一下, 也方便大家能够理解 如果有不对或者不准确的地方,恳请大家指出... 模2加减法 模2除法需要用到模2加减法,关于模2加减法,其实就是异或操作,规则如下: ...
  • 本例提供了CRC校验码的计算与判断函数,从CRC4到CRC16任意计算,生成多项式由一个整数表示,可以自由定制。
  • 为了提高实际通信中检查信号传输错误的能力,提高和推广CRC校验技术,本论文用逻辑代数知识、按模运算、代数知识和C语言编程工具设计了几种具体实用的CRC校验码的计算方法,这些方法可以应用到实用的数据检错工程中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,026
精华内容 1,210
关键字:

crc校验码