CRC 256 baitų duomenų

J

john2020

Guest
Hi all,Ar šis kodas turi būti naudojamas aptikti klaidą duomenų pakelis 256 baitų?/ *
* Pareigos: Do_CRC8
* * Aprašymas:
* Apskaičiuoja CRC vertė atsižvelgiant baitas ir senų CRC vertė, kaip statinio vertė
*
* Grįžti Vertė: CRC vertė
* Parametrai: Įėjimo duomenų baito turi būti CRC'ed
* Pastabos:
* Naudoja stalo varoma būdas pagreitinti procesą.
*
* /
unsigned char Do_CRC8 (unsigned char XX)
(
/ / Ši tvarka apskaičiuoja
const unsigned char kodų lentelės [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 = lentelėje [ucCRC ^ xx];

return (ucCRC);
)Atsakyti mane keletą pasiūlymų ir idėjų, kaip galima greičiau

linkėjimai
John

 
> Ar šis kodas turi būti naudojamas aptikti klaidą duomenų paketų 256 baitų?

Jis atrodo plausable.

8bit CRC leis blogų paketų per daug nepastebėti.Kai keli bitai paketinis gauti apversta arba jei baitas pabėgus turite apytikriai 1 iš 256 galimybių Neteisingi duomenys, turintys tą patį CRC8 kaip pradinius duomenis, kad klaidos nebus rasta.

 
Hi throwaway18

Dėkojame už reply.have bandote įgyvendinimo CRC 16bit ar 32bit? Jei taip pls Atsakyti me.can galite pasiūlyti man gera knyga, kur galėčiau gauti daugiau informacijos apie įgyvendinimo CRC?

 
Jūsų programa yra tikrai labai greitai, tačiau reikia flash aikštelė.
Jei yra pakankamai laiko, gal šis kodas gali padėti jūsų.

Gomez

/************************************************* ****************************
*** ***
*** Funktion: crc8 ***
*** Aprašymas: funkcijos Calc crc8 suma ***
*** Input: pointer senų CRC suma, nauji duomenys ***
*** Output: ne ***
*** ***
************************************************** ***************************/
tuščia crc8 (unsigned char * VTK, unsigned char data)
(
int index = 8;
LC FB;

do (
FB = (* VTK ^ duomenų) & 0x01;
duomenys>> = 1;
* VTK>> = 1;

jei (FB)
* VTK ^ = 0x8c;

) while (- rodyklė);
)

/************************************************* ****************************
*** ***
*** Funktion: CRC16 ***
*** Aprašymas: funkcijos calc CRC16 suma ***
*** Input: pointer senų CRC suma, nauji duomenys ***
*** Output: ne ***
*** ***
************************************************** ***************************/
tuščia CRC16 (unsigned int * VTK, unsigned char data)
(
int index = 8;
unsigned char FB;

* VTK ^ = (unsigned long) Duomenų <<8;
do (
if (* VTK & 0x8000)
* crc = (* VTK <<1) ^ 0x1021;
kitas
* VTK <<= 1;
) while (- rodyklė);
)

 
Gerbiami Gomez

Dėkojame už Pseudo code.i stengsis, kad atlikti, bet valgė jūs įsitikinęs, kad jis pas aptikti CRC 256 baitų duomenų? anyways
Leiskite patikrinti produkcijos

linkėjimai
John

 
john2020 wrote:

Dėkojame už Pseudo code.i stengsis, kad atlikti, bet valgė jūs įsitikinęs, kad jis pas aptikti CRC 256 baitų duomenų? anyways

Leiskite patikrinti produkcijos

 

Welcome to EDABoard.com

Sponsor

Back
Top