Nie rozumiem idei CRC32.

Nie rozumiem idei CRC32.
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem jak dokładnie obliczana jest suma kontrolna. Dajmy dla przykładu wyraz "Ala". Skorzystałem z kalkulatorów dostępnych w internecie i każdy podaje inny wynik. Próbowałem sprzętowo generować CRC32 i mi wyszło 1449053287 dziesiętnie, 565ECC67 szesnastkowo. Czy to jest poprawny wynik?

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

Są różne wersje CRC32, różniące się użytym wielomianem: https://en.wikipedia.org/wiki/Cyclic_redundancy_check#Standards_and_common_use

  • Rejestracja: dni
  • Ostatnio: dni
0

Już poprawiłem błąd. Teraz sprzętowe CRC liczy sumę tak jak należy. Chciałbym wykorzystać CRC do zabezpieczenia komunikacji UART pomiędzy PC a mikrokontrolerem. Przed wysłaniem jakiegoś stringa aplikacja na PC obliczyła by crc, następnie wysłała string i crc. Mikrokontroler po debraniu stringa obliczyłby swoje crc i porównał z odebranym crc. Jeśli by się zgadzały została by wykonana pewna akcja.
Czy to jest dobry pomysł do zabezpieczenia komunikacji?

kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
0

Przy mikrokontrolerach używa się zazwyczaj się CRC16... Aczkolwiek tu też jest kilka różnych standardów. Może użyj tetgo opisanego w modbusie - może się przydać do kilku rzeczy :)

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

Co to znaczy 'zabezpieczenie komunikacji'? CRC32 nie jest od zabezpieczenia tylko do sprawdzenia czy nie nastąpiły błędy przy transferze czy odczycie danych.

  • Rejestracja: dni
  • Ostatnio: dni
0

@kaczus Mikrokontroler generuje sprzętowo CRC32, i takie chciałbym wykorzystać.
@Wibowit Miałem na myśli sprawdzenie poprawności transmisji. Czy CRC32 się do tego nadaje?

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Miałem na myśli sprawdzenie poprawności transmisji. Czy CRC32 się do tego nadaje?

Do tego między innymi służy...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.