Mialem zaimplementowac w swoim programie algorytm liczenia sumy kontrolnej CRC-CCITT. Postac wielomianu jest taka: X^16 + X^12 + X^5 +1. Wartosc poczatkowa: 0xFFFF.
Dostalem gotowy dokument przepis , ktory wyglada tak:
NOTES:
A = new byte
B = temp byte
CRCHI = High byte (most significant) of the 16-bit CRC
CRCLO = Low byte (least significant) of the 16-bit CRC
START:
FOR A = FIRST_BYTE TO LAST_BYTE IN BLOCK DO:
A = A XOR CRCHI
CRCHI = A
SHIFT A RIGHT FOUR TIMES (ZERO FILL)
A = A XOR CRCHI { I J K L M N O P }
CRCHI = CRCLO { swap CRCHI, CRCLO }
CRCLO = A
ROTATE A LEFT 4 TIMES { M N O P I J K L }
B = A { temp save }
ROTATE A LEFT ONCE { N O P I J K L M }
A = A AND $1F { 0 0 0 I J L L M }
CRCHI = A XOR CRCHI
A = B AND $F0 { M N O P 0 0 0 0 }
CRCHI = A XOR CRCHI { CRCHI complete }
ROTATE B LEFT ONCE { N O P 0 0 0 0 M }
B = B AND $ E0 { N O P 0 0 0 0 0 }
CRCLO = B XOR CRCLO ( CRCLO complete }
DOEND;
Powiem szczerze nie zrozumialem z tego wszystkiego ale znalazlem gotowy algorytm w C liczenia sumy CCITT i faktycznie realizuje on te kroki. Suma jest liczona dobrze.
Moj problem jest czysto teoretcyzny. Mianowicie mam teraz napisac do tego sprawozdanie wiec musze zaczac od jakiegos wstepu o sumach kontrolnych. Wszedzie mozna znalezc przyklady, ze jest to reszta z dzielenia danego wyrazenia przez okreslony wielomian. Dodatkowo przed dzieleniem dopisuje sie do dzielnej tyle zer ile wynosi stopien wielomianu.
Sprawdzilem na kartce papieru. Dziala.
Problem ,ktory mnie nurtuje to jak sie to teoretyczne liczenie odnosi do tego algorytmu ,ktory wkleilem powyzej. Niewidze tam w ogole wykorzystania zadnego wielomianu ?? Wykorzystuje sie natomiast wartosc poczatkowa, ktora z kolei nie byla wykorzystywana w tych teoretycznych obliczeniach na kartce papieru.
Teoretyczny problem z alorytmem CRC
Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
ODPOWIEDZ
Posty: 1
• Strona 1 z 1
Wróć do „Podstawy elektroniki - teoria i praktyka”
Przejdź do
- Forum EdW - regulamin, wskazówki i opinie
- ↳ Regulamin forum oraz wskazówki dla początkujących
- ↳ Opinie o Forum "EdW" i stronie Elportal.pl
- Czasopismo "Elektronika dla Wszystkich" - opinie i uwagi
- ↳ Uwagi do bieżącego i archiwalnych numerów EdW
- Elektronika
- ↳ Podstawy elektroniki - teoria i praktyka
- ↳ Elektronika - dyskusje ogólne
- ↳ DIY - projekty użytkowników forum
- ↳ Warsztat
- ↳ Układy audio
- ↳ Serwis urządzeń elektronicznych
- ↳ Programy wspomagające projektowanie
- ↳ Robotyka i modelarstwo
- ↳ Kącik lampowy / elektronika retro
- ↳ Szkoła konstruktorów
- ↳ Poszukiwania
- ↳ Dane katalogowe
- ↳ Szukam schematu/PCB
- ↳ Gdzie kupić?
- ↳ Kity AVT
- Komputery, mikroprocesory i technika cyfrowa
- ↳ Mikroprocesory i technika cyfrowa
- ↳ Technika cyfrowa
- ↳ 8051
- ↳ AVR/AVR32
- ↳ PIC
- ↳ ARM
- ↳ MSP430
- ↳ PSoC
- ↳ Komputery
- ↳ Komputery - dyskusje ogólne
- ↳ Programowanie komputerów
- Warto zajrzeć
- ↳ Książki i czasopisma oraz interesujące linki
- ↳ Szkoły i uczelnie
- Inne
- ↳ Hyde Park
- ↳ Prace domowe - sprawozdania, projekty, zaliczenia itp.
- ↳ Śmietnik
- Kramik
- ↳ Sprzedam
- ↳ Kupię
- ↳ Zamienię
- ↳ Praca