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?
Nie rozumiem idei CRC32.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
Ala => 7de44b80
https://www.tools4noobs.com/online_php_functions/crc32/ liczy poprawnie
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
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
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?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Łódź
- Postów: 1403
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 :)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
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
Miałem na myśli sprawdzenie poprawności transmisji. Czy CRC32 się do tego nadaje?
Do tego między innymi służy...