Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

crc_8_16.c File Reference


Detailed Description

CRC calculation.

functions for calculating and checking 8bit or 16bit CRC (cyclic redundancy check) checksums.

For 8 bit CRC calculation, the polynomial used is

For 16 bit CRC calculations, the polynomial used is

Id:
crc_8_16.c,v 1.3 2004/03/03 13:50:13 rbr Exp

Author: Monica Redon Segrera and Nuria Llombart Juan

Copyright: (C) 2003-2004 by Fraunhofer IIS-A, IT-Services, Erlangen

Created: 2001-02-01

Version: 2004-03-02

#include "crc_8_16.h"

Functions

void CRC_Init_16 (unsigned short usCRC_Table[])
 create CRC-16 table

void CRC_Init_8 (unsigned char ucCRC_Table[])
 create CRC-8 table

unsigned short CRC_Build_16 (const unsigned char *cDataPointer, const unsigned long iLength)
 calculate CRC-16

unsigned char CRC_Build_8 (const unsigned char *cDataPointer, const unsigned long iLength)
 calculate 8 bit CRC

char CRC_Check_16 (const unsigned char *cDataPointer, const unsigned long iLength, const unsigned short iCRC_16)
 check whether data matches CRC-16

char CRC_Check_8 (const unsigned char *cDataPointer, const unsigned long iLength, const unsigned char iCRC_8)
 check whether data matches CRC-8


Variables

const unsigned short CRC_Table_16 [256]
const unsigned char CRC_Table_8 [256]


Function Documentation

unsigned short CRC_Build_16 const unsigned char *    cDataPointer,
const unsigned long    iLength
 

calculate CRC-16

calculates the 16 bit CRC value of the provided data and returns it

CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
cDataPointer  pointer to the first data byte.
iLength  size of the data in bytes
Returns :
CRC-16 value

unsigned char CRC_Build_8 const unsigned char *    cDataPointer,
const unsigned long    iLength
 

calculate 8 bit CRC

calculates the 8 bit CRC value of the provided data and returns it

CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
cDataPointer  pointer to the first data byte.
iLength  size of the data in bytes
Returns :
unsigned char with the CRC-8 value

char CRC_Check_16 const unsigned char *    cDataPointer,
const unsigned long    iLength,
const unsigned short    iCRC_16
 

check whether data matches CRC-16

compares the 16 bit CRC value of the provided data to the provided 16 bit value

CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
cDataPointer  pointer to the first data byte.
iLength  size of the data in bytes
iCRC_16  received CRC-16 value
Return values:
1  There are no errors
0  The received CRC-16 is different to the CRC-16 calculated in the receiver.

char CRC_Check_8 const unsigned char *    cDataPointer,
const unsigned long    iLength,
const unsigned char    iCRC_8
 

check whether data matches CRC-8

compares the 8 bit CRC value of the provided data to the provided 8 bit value

CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
cDataPointer  pointer to the first data byte.
iLength  size of the data in bytes
iCRC_8  received CRC-8 value
Return values:
1  There are no errors
0  The received CRC-8 is different to the CRC-8 calculated in the receiver.

void CRC_Init_16 unsigned short    usCRC_Table[]
 

create CRC-16 table

creates the necessary table for being used in the efficient calculation of the 16 bit CRC.

Note:
this is obsolete - the CRC calculations are done with the (hardcoded) CRC_Table_16
CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
usCRC_Table  the table is returned into an array of length 256

void CRC_Init_8 unsigned char    ucCRC_Table[]
 

create CRC-8 table

creates the necessary table for being used in the efficient calculation of the 8 bit CRC

Note:
this is obsolete - the CRC calculations are done with the (hardcoded) CRC_Table_8
CreationDate: 2001-02-02

Version: 2004-03-02

Parameters:
ucCRC_Table  the table is returned into an array of length 256


Variable Documentation

const unsigned short CRC_Table_16[256] [static]
 

Global variable in which the CRC-16 table is stored

const unsigned char CRC_Table_8[256] [static]
 

Initial value:

 {
 0x0,   0x1D,   0x3A,   0x27,   0x74,   0x69,   0x4E,   0x53,   0xE8,   0xF5,   
0xD2,   0xCF,   0x9C,   0x81,   0xA6,   0xBB,   0xCD,   0xD0,   0xF7,   0xEA,   
0xB9,   0xA4,   0x83,   0x9E,   0x25,   0x38,   0x1F,    0x2,   0x51,   0x4C,   
0x6B,   0x76,   0x87,   0x9A,   0xBD,   0xA0,   0xF3,   0xEE,   0xC9,   0xD4,   
0x6F,   0x72,   0x55,   0x48,   0x1B,    0x6,   0x21,   0x3C,   0x4A,   0x57,   
0x70,   0x6D,   0x3E,   0x23,    0x4,   0x19,   0xA2,   0xBF,   0x98,   0x85,   
0xD6,   0xCB,   0xEC,   0xF1,   0x13,    0xE,   0x29,   0x34,   0x67,   0x7A,   
0x5D,   0x40,   0xFB,   0xE6,   0xC1,   0xDC,   0x8F,   0x92,   0xB5,   0xA8,   
0xDE,   0xC3,   0xE4,   0xF9,   0xAA,   0xB7,   0x90,   0x8D,   0x36,   0x2B,   
 0xC,   0x11,   0x42,   0x5F,   0x78,   0x65,   0x94,   0x89,   0xAE,   0xB3,   
0xE0,   0xFD,   0xDA,   0xC7,   0x7C,   0x61,   0x46,   0x5B,    0x8,   0x15,   
0x32,   0x2F,   0x59,   0x44,   0x63,   0x7E,   0x2D,   0x30,   0x17,    0xA,   
0xB1,   0xAC,   0x8B,   0x96,   0xC5,   0xD8,   0xFF,   0xE2,   0x26,   0x3B,   
0x1C,    0x1,   0x52,   0x4F,   0x68,   0x75,   0xCE,   0xD3,   0xF4,   0xE9,   
0xBA,   0xA7,   0x80,   0x9D,   0xEB,   0xF6,   0xD1,   0xCC,   0x9F,   0x82,   
0xA5,   0xB8,    0x3,   0x1E,   0x39,   0x24,   0x77,   0x6A,   0x4D,   0x50,   
0xA1,   0xBC,   0x9B,   0x86,   0xD5,   0xC8,   0xEF,   0xF2,   0x49,   0x54,   
0x73,   0x6E,   0x3D,   0x20,    0x7,   0x1A,   0x6C,   0x71,   0x56,   0x4B,   
0x18,    0x5,   0x22,   0x3F,   0x84,   0x99,   0xBE,   0xA3,   0xF0,   0xED,   
0xCA,   0xD7,   0x35,   0x28,    0xF,   0x12,   0x41,   0x5C,   0x7B,   0x66,   
0xDD,   0xC0,   0xE7,   0xFA,   0xA9,   0xB4,   0x93,   0x8E,   0xF8,   0xE5,   
0xC2,   0xDF,   0x8C,   0x91,   0xB6,   0xAB,   0x10,    0xD,   0x2A,   0x37,   
0x64,   0x79,   0x5E,   0x43,   0xB2,   0xAF,   0x88,   0x95,   0xC6,   0xDB,   
0xFC,   0xE1,   0x5A,   0x47,   0x60,   0x7D,   0x2E,   0x33,   0x14,    0x9,   
0x7F,   0x62,   0x45,   0x58,    0xB,   0x16,   0x31,   0x2C,   0x97,   0x8A,   
0xAD,   0xB0,   0xE3,   0xFE,   0xD9,   0xC4
}
Global variable in which the CRC-8 table is stored


Generated on Thu Mar 18 13:10:33 2004 for journaline_demo by doxygen1.2.17