2010-06-23 13 views
5

Se ho un certo numero di byte da trasferire in serie, come faccio a determinare quale CRC (CRC8, CRC16, ecc., In pratica un numero di bit di CRC?) Da utilizzare e la percentuale di rilevamento degli errori è ancora elevata? C'è una formula per questo?Come determinare quale CRC utilizzare?

risposta

5

Per rispondere a questa domanda, è necessario conoscere lo bit error rate del proprio canale, che può essere determinato solo empiricamente. E poi, una volta ottenuto il BER misurato, devi decidere quale frequenza di rilevamento è "alta" abbastanza per i tuoi scopi.

L'invio di ciascun messaggio, ad esempio, 5 volte vi darà una discreta rilevazione anche su un canale molto rumoroso, ma arresta un po 'il vostro throughput. Tuttavia, se si inviano comandi a una sonda per lo spazio profondo, potrebbe essere necessaria tale ridondanza.

6

Dal punto di vista della lunghezza del CRC, si applicano le normali statistiche. Per una larghezza di bit di CRC, hai la possibilità di 1/(2^n) di avere un falso positivo. Quindi per un CRC a 8 bit, hai una probabilità di 1/255, ecc.

Tuttavia, anche il polinomio scelto ha un grande impatto. La matematica dipende molto dai dati trasferiti e non è una risposta facile.

È necessario valutare molto più del semplice CRC in base al proprio meccanismo di comunicazione (FEC con sistemi come i codici turbo è molto utile e comune).

Problemi correlati