This is an old revision of the document!
−Table of Contents
Somme de contrôle CRC
Le CRC, ou Contrôle de Redondance Cyclique est un mécanisme de détection d'erreurs utilisé par certains protocole de communication. Il est par exemple utilisé par le bus OneWire.
Utilisation sur microprocesseur AVR
La bibliothèque standard avr-libc possède des fonctions permettant de calculer rapidement certain type de CRC grâce au fichier d'en-tête crc16.h.
#include <util/crc16.h>
Documentation : http://www.nongnu.org/avr-libc/user-manual/group__util__crc.html
CRC pour OneWire
Le protocole OneWire utilise deux types de CRC, un sur 8 bits et l'autre sur 16 bits.
DOW CRC8
Le CRC 8 bits est utilisés pour la lecture de la mémoire ROM. C'est mémoire de 8 octets contients 1 octets avec la famille du composant utilisé, 6 octets contenant un numéro de série unique et enfin un octets contenants le CRC des 7 octets précédents.
Famille | ID | CRC |
---|---|---|
1 octet | 6 octets | 1 octet |
Pour ce cas, on peut utilisé la fonction _crc_ibutton_update dans le prototype est :
static __inline__ uint8_t _crc_ibutton_update (uint8_t __crc, uint8_t __data);