I - Des couches hautes (paquets) aux couches basses (bursts):
Pour transmettre des paquets sur le canal radio, le terminal GSM (fonctionnant en mode GPRS) doit les " transformer " en bursts qui seront multiplexés sur des canaux physiques Pdch (Packet Data Channel). Nous décrirons ici cette transformation :
La couche réseau (IP ou X25) fournit un paquet (en-tête + données) à la couche inférieure SNDCP via l'interface NSAPI qui comprime le paquet (Figure 7).
La couche SNDCP segmente le paquet comprimé et ajoute un en-tête à chaque segment. Les segments obtenus ne doivent pas dépasser les 1200 octets et sont fournis à la couche LLC via l'interface SAPI (QoS).
La couche LLC ajoute un en-tête FH et un contrôle d'erreur FCS à chaque segment puis transmet les trames LLC ainsi formées à la couche RLC/MAC.
La couche RLC/MAC découpe chaque trame reçue en blocs après avoir ajouté un en-tête BH et un contrôle BCS + Tail (bits de traînée) à chaque morceau, puis transmet les blocs à la couche physique.
La couche physique réalise alors, pour chaque bloc, un codage de canal CS-1 à CS-4, que nous étudions ci-après, afin de réaliser des blocs encodés de longueur fixée à 456 bits (c'est-à-dire 4 bursts de 114 bits) qui doivent être placés dans des trames TDMA successives (Figure 8).
II - Le codage de canal :
La couche physique se subdivise en 2 sous-couches :
- détecter et corriger les erreurs en transmettant les mots de code et en signalant quand ceux-ci sont incorrects : c’est le codage convolutif (Figure 8);
- choisir le mode de codage (CS-1 à CS-4) et placer les bursts dans des trames TDMA consécutives ;
- détecter la congestion sur le canal.
Pour coder les i bits de charge utile (segment) du bloc RLC, on utilise un code convolutif (n, k) de longueur de mot de code équivalent n et de longueur de bloc équivalent avant codage k. Selon la rapidité de modulation, la taille de la charge utile du bloc RLC ou le rendement k/n souhaité, on utilise un code CS-i (Table des CS-i et Figure 8).
Pour CS-3, on retrouve bien (312+6+16+4)*2 = 676 bits avant poinçonnage, soit un poinçonnage de 676 – 456 = 220 bits pour obtenir un bloc encodé de 456 bits qui sera ensuite découpé en 4 bursts de 114 bits (Figure 7).