CRC on 256 tavun tiedot

J

john2020

Guest
Hei kaikki,Voisiko seuraava koodi käyttää havaita virheen datapaketin 256 tavua?/ *
* Tehtävä: Do_CRC8
* * Kuvaus:
* Laskee CRC-arvo tavu ja vanhan CRC-arvo staattinen arvo
*
* Paluuarvo: CRC-arvo
* Parametrit: Input Datatavujen on CRC'ed
* Huomautuksia:
* Käyttää taulukon kuljettaa menetelmä nopeuttaa asioita.
*
* * /
unsigned char Do_CRC8 (unsigned char xx)
(
/ / Tämä menettely laskee
const unsigned char koodi taulukko [256] = (
0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D,
0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D,
0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD,
0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD,
0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA,
0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,
0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0A,
0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A,
0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,
0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4,
0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44,
0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,
0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63,
0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13,
0xAE, 0xA9, 0XA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3

);

ucCRC = taulukko [ucCRC ^ xx];

return (ucCRC);
)vastata minulle joitakin ehdotuksia ja ideoita mahdollisimman pian

terveisin
pekan

 
> Voiko seuraava koodi käyttää havaita virhe datapaketin 256 tavua?

Se näyttää plausable.

8bit CRC ei anna paljon huonoja pakettien avulla huomaamatta.Kun useita bittejä paketin saat muuttivat tai jos tavun katoaa sinulla on karkea 1 256 mahdollisuus virheellisenä, jolla on sama CRC8 kuin alkuperäiset tiedot, jotta virhe ei havaita.

 
hi throwaway18

Kiitos reply.have yritit täytäntöön CRC 16bit tai 32bit? jos niin pls vastaus me.can ehdotatte minulle hyvän kirjan, jossa voisin hakea lisätietoja täytäntöönpanosta CRC?

 
Ohjelmasi on varmasti hyvin nopeasti, mutta se tarvitsee paljon Flash.
Jos sinulla on aikaa ehkä tämä koodi voi auttaa.

Gomez

/************************************************* ****************************
*** ***
*** Funktion: crc8 ***
*** Kuvaus: toiminto calc crc8 summa ***
*** Input: osoitin vanhojen CRC summa, uusia tietoja ***
*** Output: non ***
*** ***
************************************************** ***************************/
void crc8 (unsigned char * CRC, unsigned char data)
(
int = 8;
Int FB;

do (
fb = (* CRC ^ data) & 0x01;
data>> = 1;
* CRC>> = 1;

jos (FB)
* CRC ^ = 0x8c;

) while (- indeksi);
)

/************************************************* ****************************
*** ***
*** Funktion: CRC16 ***
*** Kuvaus: toiminto calc CRC16 summa ***
*** Input: osoitin vanhojen CRC summa, uusia tietoja ***
*** Output: non ***
*** ***
************************************************** ***************************/
void CRC16 (unsigned int * CRC, unsigned char data)
(
int = 8;
unsigned char FB;

* CRC ^ = (unsigned long) tiedot <<8;
do (
if (* CRC & 0x8000)
* CRC = (* CRC <<1) ^ 0x1021;
muuten
* CRC <<= 1;
) while (- indeksi);
)

 
Dear Gomez

Kiitos pseudo code.i yrittää että ulos, mutta söi Oletko varma, että se Wil havaita CRC on 256 tavun tietoja? anyways
Saanen Tarkista lähtö

terveisin
pekan

 
john2020 kirjoitti:

Kiitos pseudo code.i yrittää että ulos, mutta söi Oletko varma, että se Wil havaita CRC on 256 tavun tietoja? anyways

Saanen Tarkista lähtö

 

Welcome to EDABoard.com

Sponsor

Back
Top