• Aucun résultat trouvé

Les standards DECT et CT

SOLUTIONS ENVISAGEABLES

1.3.2.2.2./ Notion de taux d'erreurs

Le taux moyen d'erreurs c’est le rapport du nombre de bits reçus faux au nombre de bits total envoyés pendant une période donnée. Il dépend du type de liaison utilisée et croît avec le débit binaire.

1.3.2.2.3./ Les codes détecteurs et les codes correcteurs d'erreurs en transmission de données

1.3.2.2.3.1./ Généralités

Une trame est formée de m bits de données et de k bits de contrôle. Si l'on note n la longueur de la trame on a :

n = m + k

L'ensemble des n bits sera appelé mot de code. Le rendement d'un code est défini par le rapport n / m Les codes en bloc : les k bits rajoutés ne dépendent que des m bits d'information. Ils se divisent en deux catégories :

- Les codes détecteurs d'erreurs (codes polynomiaux, codes cycliques, ...). - Les codes correcteurs d'erreurs (les codes de Hamming, les codes BCH)

Les codes convolutionnels ou récurrents : le mot de code construit dépend des blocs précédents.

1.3.2.2.3.2./ Les codes à contrôle de parité par caractère

A partir de caractères de n bits chacun, on ajoute un bit de redondance verticale dit bit de parité pour faire en sorte que le nombre total de bits à 1 (le bit de parité y compris) soit pair ou impair, suivant qu'on utilise la parité paire ou impaire. En transmission de données, la règle est d'utiliser :

- Les parités paires pour les transmissions asynchrones. - Les parités impaires pour les transmissions synchrones.

Ce type de contrôle est appelé VRC (= Vertical Redundancy Check). Il ne permet pas de localiser l'erreur.

1.3.2.2.3.3./ Les codes à contrôle de parités croisées

Si l'on regroupe les caractères par blocs, il est possible d'effectuer : - Un contrôle de parité pour chaque caractère.

- Mais également un contrôle de parité appelé LRC (= Longitudinal Redundancy Check) pour tous les bits de rang i dans chaque caractère. Un bit de contrôle global assure la parité de l'ensemble.

Les erreurs simples et doubles sont détectées. Les erreurs triples et quadruples ne le sont pas toujours, cela dépend de leurs dispositions. Dans le cas d'une erreur simple, il y a correction possible.

1.3.2.2.3.4./ Les codes de Hamming

C’est un code qui permet de corriger toutes les erreurs simples, avec m bits de données et k bits de contrôle de parité. A chacune des 2m combinaisons de bits de données possibles, on associe n + 1 mots de n bits et on a :

( n + 1) . 2m <= 2n n = m + k n + 1 <= 2k

La méthode est la suivante :

- Les bits des mots de code sont numérotés consécutivement.

- Les bits dont les numéros sont des puissances de 2 sont des bits de contrôle. Les autres bits sont des bits de données.

7 6 5 4 3 2 1 m

4 m3 m2 k3 m1 k2 k1

Chaque bit de contrôle est choisi de façon qu'une série de bits (lui-même compris) ait une parité paire (ou impaire). Un bit de données peut servir pour le calcul de plusieurs bits de contrôle. (Pour connaître les bits de contrôle qui utilisent le bit de données de numéro k, il suffit d'écrire k, comme étant la somme des puissances de 2).

Un bit de données est vérifié par les bits de contrôle dont les numéros sont les nombres qui apparaissent dans sa décomposition en puissances de 2.

Quand un mot arrive, le récepteur initialise un compteur à zéro. Il examine alors chaque bit de contrôle k pour vérifier s'il a une parité correcte. Si ce n'est pas le cas, il ajoute k au compteur. Lorsque tous les bits de contrôle ont été vérifiés et si le compteur est nul le mot de code est considéré comme autorisé. Si le compteur est non nul, il contient le numéro du bit erroné.

1.3.2.2.3.5./ Code de Hamming et les erreurs groupées

Une séquence de k mots de code consécutifs est vue comme une matrice dont les k lignes sont des mots de code. Pour corriger les paquets d'erreurs, les données sont transmises colonne par colonne. Quand les k bits ont été envoyés, la seconde colonne est transmise et ainsi de suite. Lorsque la trame arrive, la matrice est reconstruite colonne par colonne. Si un paquet d'erreur de longueur k altère la trame, il y a au plus un bit erroné dans chacun des mots de code. Comme le code de Hamming peut corriger une erreur par mot de code, le bloc entier de données peut être corrigé.

1.3.2.2.3.6./ Les codes polynomiaux

1.3.2.2.3.6.1./ Principe

Un code est cyclique s'il est linéaire et Si toute permutation circulaire d'un mot de code reste un mot de code. Dans les codes polynomiaux CRC (= Cyclic Redundancy Check), on utilise la représentation polynomiale qui associe à un mot binaire de n bits un polynôme de la variable x si il est affectée des

coefficients 1 ou 0, et si le degré est n-1.

L'arithmétique polynomiale est faite modulo 2.Pour utiliser un code polynomial, l'émetteur et le récepteur doivent se mettre d'accord auparavant sur le choix d'un polynôme générateur G(x) qui sera utilisé pour générer les bits de contrôle (checksum).

Pour mettre en oeuvre un code polynomial il faut :

- M(x) qui est le polynôme de degré n associé à l'information initiale. - k le degré du polynôme générateur G(x) choisi.

- G(x) qui est un polynôme de degré k, dit polynôme générateur. Le polynôme générateur doit avoir son bit de poids fort et son bit de poids faible égaux à 1.

Pour calculer la somme de contrôle d'un bloc de m bits il faut que le bloc soit plus long que le polynôme générateur.

1.3.2.2.3.6.2./ Emission

On multiplie M(x) par xk (= ajouter k bits à 0 à la droite du mot représenté par M(x)) pour un obtenir un nouveau polynôme de degré n + k. On effectue ensuite la division euclidienne modulo 2 du polynôme ainsi obtenu par le polynôme générateur G(x) :

(xk . M(x)) / G(x) = Q(x) + R(x)

Le polynôme de contrôle est le reste R(x) (= checksum) de cette division. Il est de degré k - 1, donc codé sur k positions binaires. On envoie en ligne les éléments binaires du polynôme binaire suivant : T(x) = xk . M(x) + R(x)

T(x) = Q(x) . G(x) 1.3.2.2.3.6.3./ Réception

Il suffit de diviser (modulo 2) le polynôme reçu T(x) par le même polynôme générateur G(x). S'il n'y a pas d'erreur de transmission, on obtient un reste nul. Les polynômes générateurs les plus utilisés :

X16 + X12 +X5 + 1 (CRC-CCITT) X12 +X11 + X3 +X2 +X +1 (CRC-12) X16 + X12 +X2 + 1 (CRC-16)

1.3.2.2.3.7./ Les codes BCH

Le code BCH (code correcteur cyclique) permet de détecter et de corriger : - Soit des erreurs de transmission.

- Soit des erreurs de synchronisation.