关于CRC冗余校验原理及实现

原创 2007年09月26日 19:01:00

关于CRCITCC16校验码计算的疑惑。
/******函数名:CRCCCITT_CalculateBuf() *********************
 *
 *   功能描述:
 *       这个函数为CRC-CCITT的CRC16的计算函数,计算指定地址和个数
 *       的数据的CRC_16的校验值.
 *       EPC标签中的CRC计算采用CRC-CCITT算法。
 *       计算公式:
 *         CRC_16= x^16 + x^12 + x^5 + 1
 *
 *   调用参数:    
 *       ptr 计算的数据起始地址
       len 计算的数据长度
 *   返回值:      
 *       函数计算的CRC值
 *   函数代码:   
 */
UINT16 CRCCCITT_CalculateBuf(UINT8 *ptr, UINT16 len)
{
  UINT8    i;
  UINT16 crc_result = 0xffff;    //此处为何要这样设置啊?
  while(len--)
  {
    for(i=0x80; i!=0; i>>=1 )
  { 
       if (crc_result&0x8000)
              crc_result   = (crc_result << 1) ^0x1021 ;
       else
             crc_result <<= 1 ;
         
       if(*ptr&i)
              crc_result^=0x1021 ;    //什么时候要执行两次出发运算
  }
  ptr++;
 }
 return crc_result;
  } 

还有一点是当i= 0x80时的除法运算,按原理来说应该是*ptr<<8^0x1021 

循环冗余校验 CRC 原理

奇偶校验码作为一种检错码虽然简单,但是漏检率太高。在计算机网络和数据通信中用E得最广泛的检错码,是一种漏检率低得多也便于实现的循环冗余码CRC (Cyclic Redundancy .Code),CR...

CRC冗余校验码的Matlab仿真实现

  • 2015年08月25日 10:20
  • 3KB
  • 下载

CRC冗余校验的C语言实现

CRC即循环冗余校验:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后...

循环冗余校验+CRC的算法分析和程序实现

循环冗余校验 CRC的算法分析和程序实现 摘要   通信的目的是要把信息及时可靠地传送给对方,因此要求一个通信系统传输消息必须可靠与快速,在数字通信系统中可靠与快速往往是一对矛盾。为了解决可靠性,...
  • jax_lee
  • jax_lee
  • 2011年09月09日 17:18
  • 1244

CRC冗余校验码的介绍和实现

首先,任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关系。例如,代码1010111对应的多项式为X^6+X^4+X^2+X+1(这里的X^n表示x的n次...

循环冗余校验 CRC32 的 C 语言实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验实用程序库在数据存储和数据通讯...
  • iw1210
  • iw1210
  • 2013年12月26日 11:25
  • 3230

循环冗余检验CRC原理

为什么引入CRC现实的通信链路都不会是理想的。这就是说,比特在传输的过程中可能会产生差错:1可能会变成0,0可能会变成1,这就叫做比特差错。在一段是时间内,传输错误的比特占所传输比特总数的比率成为误码...

循环冗余检验 (CRC) 算法原理

Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。 算法原理 假设数据传输过程中需要发送15位的二进制信息g=101...
  • lj9010
  • lj9010
  • 2017年11月23日 14:38
  • 35

循环冗余检验(CRC)算法原理

  • 2009年12月10日 15:29
  • 74KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于CRC冗余校验原理及实现
举报原因:
原因补充:

(最多只允许输入30个字)