RILEVAZIONE DI ERRORI: metodo CRC

RILEVAZIONE DI ERRORI: metodo CRC

I principali metodi di rilevazioni di errori sono 3: CRC, CHECKSUM ed HAMMING ma ci siamo mai chiesti in che modo nascono questi errori?

DOVE NASCONO GLI ERRORI?

Quando avviene uno scambio di informazioni tra l’elaboratore e la memoria attraverso i fili paralleli (BUS), il segnale trasmesso può essere soggetto a rumori e quindi si può sovrapporre creando un bit errato. In caso vi sia la presenza di ERRORE questo può esser trattato in 4 modi diversi:

  • Il messaggio viene scartato.
  • Viene richiesta la trasmissione del messaggio.
  • Viene migliorata la qualità del canale.
  • L’errore viene cercato di corregerlo

CRC

A brief CRC tutorial - IAmAProgrammer - 博客园
Esempio esercizio

ll metodo di rilevazione degli errori usato più comunemente nei sistemi di comunicazione è il
codice CRC o codice a ridondanza ciclica.

Si utilizza un polinomio G(x), chiamato generatore polinomiale, in cui i bit di ordine
più alto e più basso devono essere a 1, noto al mittente e al ricevente.
Sia M(x) la stringa di bit da inviare (di m bit) e G(X) il polinomio generatore (di r bit). M(X) deve
essere più lungo di G(X) cioè m>r.
ll metodo si basa sul calcolo di una checksum che dipende da M(X) e G(x) da aggiungere in
fondo a M(x) in modo che la stringa ottenuta sia divisibile per G(X). ll mittente invia un frame
composto dai bit di dati (M(x)) e dalla checksum.
Per verificare la corretta ricezione basta che il ricevente divida il frame per G(x); se la divisione
dà un resto vuol dire che si è verificato un errore.

Parte 1

Per calcolare il CRC di un pacchetto M(X) di m bit si procede così:

Le operazioni sui polinomi sono eseguite in aritmetica modulo 2: non ci sono riporti per
l”addizione o prestiti perla sottrazione; addizione e sottrazione sono identiche all’ or esclusivo.
La divisione è eseguita come se fosse binaria ma la sottrazione è eseguita in modulo 2 (in
pratica un divisore è contenuto nel dividendo se il dividendo ha tanti bit quanti il divisore contando
le cifre dal primo 1 a sinistra).

Parte 2

Questo metodo del CRC non è infallibile; possono verificarsi degli errori nel frame inviato che danno
comunque O come risultato della divisione del frame per G(X) e che quindi non sono rilevati.
La scelta del polinomio G(X) `e importante perla bontà del metodo.

l polinomi che sono diventati standard internazionali sono: