Brevet FR2925994A1 — publié le 20090703

-1- La présente invention concerne un procédé et un appareil destinés à insérer un message asynchrone dans un flux de données, ainsi qu'un procédé et un appareil destinés à extraire un message asynchrone d'un flux de données dans un système de communication en diversité. Dans un système de communication en diversité, plusieurs canaux redondants sont mis en place pour transporter des signaux contenant le même flux de données vers un dispositif de destination donné. Les différents signaux suivent des itinéraires de transmission différents via des dispositifs relais différents. La Figure 1 représente à des fins illustratives un système de communication sans fil faisant appel à une transmission en diversité. Le système de communication est un réseau maillé 100 comportant un dispositif source 110, un dispositif de destination 120 et une pluralité de dispositifs relais 130. Chaque dispositif relais peut également être un dispositif source et / ou de destination. Les dispositifs sont interconnectés par l'intermédiaire de liaisons 140 de communication radio. Bien que les signaux radio soient diffusés dans toutes les directions, il se peut que certains dispositifs relais ou de destination ne soient pas en mesure de détecter ces signaux en raison d'obstacles ou d'une directivité de l'antenne. Une liaison radio n'est donc pas nécessairement présente entre un dispositif source et chacun des autres dispositifs. Le dispositif de destination 120 reçoit donc cinq versions du même flux de données, une provenant directement du dispositif source et quatre copies via des dispositifs relais. Le flux de données est constitué d'une pluralité de blocs de données et est classiquement protégé contre les erreurs de transmission à l'aide d'un code de correction d'erreur. Typiquement, au niveau du dispositif source, des blocs de données du flux de données sont groupés en paquets, chaque paquet étant alors codé en générant une pluralité de blocs de parité représentant des informations redondantes. Au niveau du dispositif de destination, les paquets reçus sont décodés. Le décodage consiste à éliminer des erreurs éventuellement présentes dans les blocs de données reçus à l'aide des blocs de parité. Les dispositifs relais, quant à eux, transfèrent les paquets codés tels 35 quels, sans décoder et recoder le flux de données. En effet, mettre en oeuvre -2- le décodage et le recodage au niveau de chaque dispositif relais augmenterait la consommation de mémoire car des paquets devraient être temporairement stockés, augmenterait le retard de transmission et consommerait des ressources de traitement. Pour transmettre un flux de données qui peut représenter un flux audio, un flux vidéo ou une combinaison des deux, on utilise classiquement une couche physique synchrone. Une couche physique synchrone permet à chacun des dispositifs du réseau de transmettre des informations à des intervalles de temps ou dans des créneaux temporels réguliers. Ceci peut être mis en oeuvre en utilisant le multiplexage par répartition dans le temps (TDM) dans lequel le domaine temporel est divisé en une pluralité de créneaux temporels de longueur fixée, appelée séquence ou cycle TDM. Le multiplexage TDM permet de rendre invariants certains paramètres comme la latence et le débit binaire de données. Il assure également un très haut niveau de qualité et maintient cette qualité à un niveau constant. La Figure 2 représente un exemple de couche physique synchrone basée sur le TDM. Le temps est divisé en cycles (séquence TDM) 210 et le milieu physique est partagé dans le temps entre les dispositifs en affectant un créneau temporel 220 par cycle à chaque dispositif pour y émettre ses données 230. Lorsqu'un dispositif est en train d'émettre des données pendant un créneau temporel, tous les autres dispositifs peuvent écouter ce dispositif émetteur. Chaque créneau temporel peut transporter zéro, un ou plusieurs blocs du flux de données, en fonction du débit binaire de ce flux de données. Des dispositifs relais retransmettent les blocs reçus dans les créneaux temporels qui leur sont affectés, de sorte qu'à la fin du cycle, les blocs reçus dans les différents créneaux temporels représentent différentes versions des mêmes blocs d'origine tels qu'émis par le dispositif source dans le créneau temporel qui lui est affecté. Une couche physique synchrone n'est toutefois pas bien adaptée à la transmission de messages asynchrones, comme des commandes ou des informations de contrôle, car ceux-ci peuvent être transmis à tout instant. Lorsqu'un message asynchrone doit être transmis d'un dispositif à un autre, une première solution consiste à pré-attribuer ou à réserver certains créneaux temporels à de tels messages. Cette solution n'est toutefois pas -3- optimale, puisqu'une quantité fixe de bande passante est réservée en permanence indépendamment du fait qu'elle soit effectivement utilisée ou non. Il est souhaitable de surmonter ces inconvénients et d'autres de la technique antérieure. Plus précisément, il est souhaitable de mettre à disposition une technique d'insertion et d'extraction de messages asynchrones dans / à partir d'un flux de données transmis sur une couche physique synchrone de façon à optimiser l'utilisation de la bande passante du système de communication. Il est également souhaitable de mettre à disposition une technique de ce type qui soit robuste vis-à-vis des erreurs de transmission. Il est également souhaitable de mettre à disposition une technique de ce type qui soit transparente par rapport au codage d'erreur appliqué pour protéger le flux de données. Il est également souhaitable de mettre à disposition une technique d'insertion de messages asynchrones à des instants non déterministes dans le temps, sans notification préalable du dispositif récepteur auquel sont destinés les messages asynchrones. Un premier aspect de la présente invention concerne un procédé d'insertion de données asynchrones dans un flux de données constitué d'une pluralité de blocs dans un système de communication en diversité comportant une pluralité de dispositifs de communication, le procédé comportant les étapes consistant à : détecter un bloc contenant une séquence prédéterminée ; coder les données asynchrones pour générer des données codées distantes de toutes autres données codées pouvant avoir été codées par un autre dispositif, ainsi que de la séquence prédéterminée, d'une distance supérieure à une distance prédéterminée ; et remplacer la séquence prédéterminée du bloc détecté par les données 30 codées. Corrélativement, la présente invention concerne un appareil d'insertion de données asynchrones dans un flux de données constitué d'une pluralité de blocs dans un système de communication en diversité comportant une pluralité de dispositifs de communication, l'appareil comportant : -4- un moyen de détection d'un bloc contenant une séquence prédéterminée ; un moyen de codage des données asynchrones pour générer des données codées distantes de toutes autres données codées pouvant avoir été codées par un autre dispositif, ainsi que de la séquence prédéterminée, d'une distance supérieure à une distance prédéterminée ; et un moyen de remplacement de la séquence prédéterminée du bloc détecté par les données codées. Ainsi, des données asynchrones sont insérées dans le flux de données afin d'être transportées et extraites par un dispositif distant. Le fait de garantir une distance prédéterminée par rapport à toutes les autres données codées possibles permet d'identifier sans ambiguïté les données asynchrones insérées, même en présence d'erreurs. Le procédé comporte une étape supplémentaire consistant à transmettre le flux de données comprenant le bloc contenant les données codées au dispositif de destination des données asynchrones. Avantageusement, l'étape de codage est réalisée à l'aide d'un code de correction d'erreurs. Ainsi, le codage assure des performances optimales en ce qui concerne la correction d'erreurs au niveau du dispositif de destination. En outre, le codage peut être mis en oeuvre à l'aide de procédés bien connus. Selon un mode particulier de l'invention, la distance prédéterminée est égale à la distance minimale du code de correction d'erreurs. Ceci garantit que les données codées sont rendues distantes de toutes les autres données codées possibles d'un écart supérieur à la distance prédéterminée. Un deuxième aspect de la présente invention concerne un procédé d'extraction de données asynchrones d'un premier flux de données dans un système de communication en diversité comportant une pluralité de dispositifs de communication et de transport d'au moins un deuxième flux de données, le premier flux de données et le ou les deuxièmes flux de données étant constitués d'une pluralité de blocs, chaque bloc du premier flux de données étant associé à un bloc du ou des deuxièmes flux de données, le procédé comportant les étapes suivantes exécutées pour au moins un bloc choisi parmi la pluralité de blocs du premier flux de données : déterminer si la distance entre le bloc choisi et une séquence 35 prédéterminée est supérieure à une distance prédéterminée ; -5-déterminer si la distance entre le bloc choisi et le bloc qui lui est associé dans le ou les deuxièmes flux de données est supérieure à la distance prédéterminée ; et si les résultats des deux étapes de détermination sont positifs, extraire 5 les données asynchrones du bloc choisi. Corrélativement, la présente invention concerne un appareil d'extraction de données asynchrones d'un premier flux de données reçu par l'intermédiaire d'un système de communication en diversité comportant une pluralité de dispositifs de communication, l'appareil recevant au moins un deuxième flux 10 de données, le premier flux de données et le ou les deuxièmes flux de données étant constitués d'une pluralité de blocs, chaque bloc du premier flux de données étant associé à un bloc du ou des deuxièmes flux de données, l'appareil comportant les moyens suivants, pour au moins un bloc choisi parmi la pluralité de blocs du premier flux de données : 15 un moyen destiné à déterminer si la distance entre le bloc choisi et une séquence prédéterminée est supérieure à une distance prédéterminée ; un moyen destiné à déterminer si la distance entre le bloc choisi et le bloc qui lui est associé dans le ou les deuxièmes flux de données est supérieure à la distance prédéterminée ; et 20 un moyen destiné à extraire des données asynchrones du bloc choisi, l'extraction étant effectuée si les résultats des deux moyens de détermination sont positifs. Ainsi, la comparaison de la distance entre des blocs associés rend le procédé et l'appareil d'extraction robustes vis-à-vis des erreurs de 25 transmission. En outre, il n'est plus nécessaire de compter sur des informations de champs insérées dans le bloc, ces informations n'étant pas fiables. Ceci permet également de transférer des données asynchrones à un bas niveau, sans impliquer de mécanismes de maîtrise d'erreur au niveau de l'application. 30 Selon un mode particulier de l'invention, les données asynchrones sont codées par un code de correction d'erreur au sein du bloc choisi au niveau d'un dispositif émetteur, le procédé comportant donc une étape de décodage du bloc choisi avant l'extraction des données asynchrones, à l'aide d'un code de correction d'erreurs. -6- Selon un mode particulier de l'invention, la distance prédéterminée est égale à la distance minimale du code de correction d'erreurs. D'autres caractéristiques et avantages apparaîtront dans la description qui suit, fournie uniquement à titre d'exemple non limitatif et faisant référence aux dessins joints. La Figure 1 représente à des fins illustratives un système de communication sans fil faisant appel à une transmission en diversité. La Figure 2 représente un exemple de couche physique synchrone basée sur le TDM. La Figure 3 illustre une configuration schématique d'un dispositif de communication prévu pour concrétiser l'invention. La Figure 4 illustre une chaîne de communication destinée à l'insertion et à l'extraction d'un message asynchrone dans et à partir d'un flux de données. La Figure 5 illustre le format d'un bloc de flux de données. La Figure 6 représente un organigramme d'insertion d'un message asynchrone dans un flux de données codées. La Figure 7 représente un organigramme d'extraction d'un message asynchrone à partir d'un flux de données codées. La Figure 3 illustre une configuration schématique d'un dispositif de communication concrétisant l'invention. Le dispositif 300 peut représenter le dispositif source 110 ou le dispositif de destination 120 du système de communication 100 décrit précédemment en référence à la Figure 1. Le dispositif 300 peut également représenter un dispositif relais 130 capable de faire fonction de dispositif source ou de destination. Le numéro de repère 302 est une mémoire vive qui fonctionne entre autres comme mémoire principale et comme zone de travail de l'unité centrale 301, et sa capacité de mémoire peut être étendue par une mémoire vive optionnelle reliée à un port d'extension (non illustré). L'unité centrale 301 est capable d'exécuter des instructions issues d'une mémoire morte 303 de programme lors de la mise sous tension du dispositif de communication. Après la mise sous tension, l'unité centrale 301 est capable d'exécuter des instructions issues de la mémoire vive 302 concernant un programme -7-informatique. Ces instructions sont chargées à partir de la mémoire morte 303 de programme ou d'une mémoire externe (non illustrée). Ledit programme informatique, lorsqu'il est exécuté par l'unité centrale 301, provoque l'exécution d'une partie ou de la totalité des étapes des organigrammes représentés sur les Figures 6 et 7. Le numéro de repère 305 représente une unité frontale RF qui convertit (transposition de fréquence et amplification de puissance, par exemple) un signal de sortie d'une unité 306 en bande de base en un signal d'émission RF adapté à une émission par l'intermédiaire d'une antenne 304, et prévu pour recevoir un signal RF provenant de l'antenne 304 et pour délivrer à l'unité 306 en bande de base un signal de réception en bande de base basé sur le signal RF reçu. L'unité 306 en bande de base module / démodule les données numériques échangées avec l'unité frontale 305. Figure 4 illustre une chaîne de communication pour l'insertion d'un message asynchrone dans un flux de données au niveau d'un dispositif source 410 et son extraction du flux de données au niveau d'un dispositif de destination 420. Le dispositif source 410 et le dispositif de destination 420 peuvent être n'importe lesquels des dispositifs 110, 120 ou 130 du système de communication 100. Le dispositif 410 n'est pas nécessairement la source d'origine du flux de données et le dispositif 420 n'est pas nécessairement la destination finale du flux de données. Le flux de données peut être généré localement au sein du dispositif 410 (flux de données 414) ou reçu depuis un dispositif distant afin d'être relayé (flux de données codées 415). De façon analogue, le flux de données peut être délivré localement au sein du dispositif 420 (flux de données 424) ou relayé à un dispositif distant (flux de données codées 425). Le flux de données consistant en une pluralité de blocs de données est groupé en paquets. Lorsque le flux de données est généré localement, les paquets sont codés (codage inter-blocs) par une unité 411 de codage qui produit un flux de données codées. Typiquement, le codage inter-blocs du flux de données peut être réalisé à l'aide d'un code de Reed-Solomon. Le flux de données codées comporte des blocs de données et des blocs de parité, désignés comme des blocs. Le flux de données codées peut alors être soit obtenu à partir de l'unité 411 de codage si le flux de données est -8- codé localement, soit reçu depuis un dispositif émetteur distant, le dispositif 410 faisant alors fonction de relais pour ce flux codé. Dans le présent mode de réalisation, des messages asynchrones sont transportés au sein de flux de données codées. Une unité 412 de détection détecte des blocs du flux de données qui peuvent contenir une partie ou la totalité du message asynchrone. Dans ce qui suit, la partie ou la totalité du message asynchrone est appelée données asynchrones et les blocs pouvant contenir des données asynchrones sont appelés blocs contenants. Un bloc contenant est un bloc susceptible d'être écrasé pour contenir les données asynchrones. Afin que cette opération soit transparente par rapport aux processus de codage et de décodage réalisés par les unités 411 et 421, un bloc contenant doit avoir une valeur connue du dispositif de destination du flux de données. Ceci permet la restauration du flux de données codées au niveau du dispositif de destination avant son décodage. Par exemple, tous les blocs qui contiennent une séquence nulle, ou toute autre séquence prédéterminée, dans le flux de données codées d'origine peuvent être utilisés comme blocs contenants, dans la mesure où cette information est partagée avec le dispositif de destination. Il convient d'observer qu'un flux de données relayé peut comprendre des blocs contenants transportant déjà d'autres données asynchrones. Ces données asynchrones peuvent être écrasées si la transmission de messages asynchrones est censée s'effectuer uniquement entre dispositifs directement reliés (sans relais). L'unité 412 de détection doit être capable de détecter des blocs contenants "vides" contenant une telle séquence prédéterminée d'origine afin de contenir une partie ou la totalité du message asynchrone. Dans le cas d'un scénario de transmission directe de messages asynchrones de dispositif à dispositif, c'est-à-dire si les données asynchrones peuvent être écrasées, l'unité 412 doit également être capable de détecter des blocs contenants "non vides" contenant d'autres données asynchrones. Bien entendu, des blocs "non vides" contenant d'autres types de données (par ex. synchrones), s'ils sont détectés, ne doivent pas être choisis comme blocs contenants car ils ne doivent pas être écrasés. -9- Une unité 413 d'insertion est chargée d'insérer le message asynchrone dans les blocs contenants détectés. Si le message asynchrone est trop long pour être inséré dans un seul bloc contenant, le message asynchrone est fractionné sur autant de blocs contenants que nécessaire (cf. formatage sur la Figure 5, champ 503). Au niveau du dispositif de destination du message asynchrone 420, une unité 423 d'extraction extrait du flux de données codées reçu les données asynchrones insérées. L'extraction est effectuée de façon robuste, ce qui signifie que la présence de données asynchrones est détectée et qu'elles sont récupérées même lorsque le bloc contenant est altéré par des erreurs. Une unité 422 de restauration restaure la séquence d'origine des blocs contenants afin de fournir un flux de données codées 425 non modifié prêt à être soit relayé vers un autre dispositif, soit décodé par une unité 421 de décodage pour récupérer le flux de données 424 d'origine. Les unités 411-413 et 421-423 peuvent être mises en oeuvre soit sous forme matérielle, respectivement au sein des dispositifs 410 et 420, soit sous forme logicielle par l'unité centrale 301 lors de l'exécution des étapes des organigrammes des Figures 6 et 7. La Figure 5 illustre le format d'un bloc du flux de données. La taille du bloc est par exemple de 49 bits, où 48 bits sont réservés pour contenir une séquence (échantillon) du flux de données. Un bit 501 est utilisé pour indiquer si le bloc contient des données utiles 502 (soit des données synchrones du flux de données, soit des données de parité), ou des données 507 de remplissage lorsqu'il n'existe aucun symbole à transmettre. Le remplissage consiste typiquement en une séquence de bits nulle ("0x000000000000" en représentation hexadécimale n'incluant pas le bit 501). La séquence nulle est un exemple de séquence prédéterminée. En pareil cas, le bloc 507 représente donc un bloc contenant. Selon un mode de réalisation de l'invention, lorsque des données asynchrones sont insérées dans un bloc, le formatage suivant est utilisé : - En-tête 503 (2 bits) : indique si les données asynchrones contiennent la totalité du message asynchrone ("00"), la première partie du message asynchrone ("10"), la dernière partie du message asynchrone ("01") ou une partie intermédiaire du message asynchrone ("11"). - 10 -L'en-tête 503 permet ainsi de fractionner la transmission d'un long message asynchrone sur une pluralité de blocs. Identifiant unique 504 (5 bits) : cet identifiant identifie de façon unique chaque version du bloc (ou du flux de données). Il permet l'extraction des données asynchrones même si des erreurs de transmission surviennent, comme expliqué plus loin en référence à l'étape 604 de la Fig. 6. Données asynchrones 505 (16 bits) : une partie ou la totalité du message asynchrone. - Bits 506 de parité (24 bits) : des bits de parité sont générés à partir du codage des champs 503, 504 et 505 (et éventuellement 501) afin de créer une distance par rapport à tout autre bloc susceptible de transporter des données asynchrones. Le codage utilisé pour générer les bits de parité 506 est appelé "codage interne" (par comparaison au codage externe utilisé pour coder les paquets). Le code interne peut être un code quelconque de détection ou de correction d'erreurs ; il est cependant préférable de choisir des codes présentant la plus grande distance minirnale. En plus des champs 503 à 506 décrits ci-dessus, un champ contenant 20 l'adresse du dispositif de destination peut être ajouté si des messages asynchrones sont relayés par un ou plusieurs dispositifs. La Figure 6 représente un organigramme d'insertion d'un message asynchrone dans un flux de données codées. Lorsqu'un message asynchrone est disponible en vue de son émission 25 (test 601), une étape 602 de contrôle des blocs du flux de données à émettre est exécutée par l'unité centrale 301 du dispositif 410. Ces blocs sont lus à partir d'une mémoire-tampon 302 d'émission. Le contrôle consiste à détecter la présence de blocs contenants. Comme expliqué plus haut (unité 412 de la Figure 4), un bloc contenant 30 est détecté s'il contient une séquence prédéterminée. Cette séquence prédéterminée est celle utilisée lorsque le flux de données a été codé et est connue du dispositif de destination du flux de données afin d'être restaurée. Dans un mode de réalisation préféré de l'invention, on choisit comme séquence prédéterminée un mot de code du code interne. Ceci présente 35 l'avantage de faciliter la comparaison de distance lors de l'extraction du - 11 -message asynchrone, car elle peut être mise en oeuvre simplement en effectuant un décodage interne du bloc (cf. solution équivalente pour les étapes 705 et 706 de la Figure 7). Dans une réalisation préférée, on choisit comme séquence prédéterminée 5 une séquence nulle, car une séquence nulle est toujours un mot de code de n'importe quel code interne. Lorsqu'un bloc contenant est trouvé (par ex. le bloc 507 de la Fig. 5), une partie du message asynchrone (ou la totalité du message si un espace suffisant est disponible dans le bloc contenant) est copiée dans le champ 505 10 du bloc contenant (étape 604). En outre, lors de l'étape 604, les autres champs du bloc sont remplis. Le champ 503 est rempli avec la valeur appropriée conformément à la description de la Figure 5, selon qu'une partie ou la totalité du message est transportée. Plus important encore, le champ 504 est réglé sur un identifiant unique 15 pour la version en question du flux de données. Dans un mode de réalisation particulier de l'invention, l'identifiant unique est réglé sur l'adresse du dispositif émetteur du message asynchrone 410. Le bloc contenant qui contient une partie ou la totalité du message asynchrone dans le champ 505, y compris les champs 501, 503 et 504, est 20 appelé bloc asynchrone. Lors de l'étape 605, les bits de parité 506 sont générés par codage interne du bloc asynchrone. Lors de l'étape 606, le bloc contenant est remplacé par le bloc asynchrone codé tel que déterminé lors de l'étape 605 dans le flux de données 25 et écrit dans le tampon d'émission afin d'être envoyé au dispositif de destination 420. Si toutes les données asynchrones du message asynchrone n'étaient pas comprises dans le contenant, les étapes 602 à 607 sont répétées jusqu'à ce que la totalité du message asynchrone soit envoyée. 30 La Figure 7 représente un organigramme pour l'extraction d'un message asynchrone d'un flux de données codées. Le processus d'extraction nécessite de disposer d'au moins deux versions du flux de données reçu. C'est la comparaison de blocs correspondants issus desdites au moins deux versions qui permet de savoir si un bloc contient des - 12 -données utiles (soit des données synchrones, soit des données de parité), des données de remplissage (bloc contenant "vide") ou des données asynchrones. Il convient d'observer qu'on ne peut se baser dans cette phase sur le bit 501 qui différencie les données utiles des données de remplissage, car il peut être altéré par des erreurs de transmission. Le bit 501 n'est utile qu'au niveau de l'application après que le flux de données a été décodé à l'aide du décodage inter- blocs (externe) qui garantit des blocs de données exempts d'erreurs. L'application est alors en mesure d'éliminer en toute sécurité les données de remplissage. Le présent mode de réalisation permet de discerner le contenu des blocs sans décoder le flux de données. Lors de l'étape 701, un seul paquet du flux de données codées est lu depuis le tampon de réception. En variante, la lecture peut également s'effectuer bloc par bloc. Si le paquet lu est la première version reçue par le dispositif de destination 420 (test 702), cette version est stockée dans la mémoire 302 en vue de son utilisation ultérieure lorsqu'au moins une autre version du même paquet sera reçue (étape 703). L'étape 701 est alors à nouveau exécutée. Si deux versions au moins du paquet sont disponibles, un bloc d'une version est choisi parmi l'ensemble de blocs appartenant au paquet (704). Lors de l'étape 705, on détermine la distance entre le bloc choisi et la séquence prédéterminée. Comme décrit plus haut, la séquence prédéterminée est connue au niveau à la fois du dispositif source 410 et du dispositif de destination 420. La distance entre deux séquences de bits est définie comme le nombre de bits qui diffèrent entre les deux séquences. En d'autres termes, la distance entre les première et deuxième séquences représente le nombre de bits qu'il est nécessaire de modifier dans la première séquence pour que cette première séquence devienne égale à la deuxième séquence. Lors de l'étape 706, la distance déterminée est comparée à un seuil afin de déterminer si le bloc choisi est suffisamment proche de la séquence prédéterminée pour déterminer s'il contient des données synchrones ou du remplissage. Si le bloc choisi contenait une séquence prédéterminée lorsqu'il a été émis à l'origine par le dispositif source, la distance serait soit nulle si - 13 - aucune erreur n'a été introduite par le canal, soit probablement inférieure au seuil si le taux d'erreur est faible. Afin de maintenir une probabilité élevée de détection d'erreurs, il est possible d'ajuster le nombre de bits de parité ajoutés (champ 506) en fonction du taux d'erreur estimé du canal. En pareil cas, la taille du champ 505 de données asynchrones ou la taille du bloc doit être adaptée en conséquence. Dans un mode de réalisation préféré de l'invention, le seuil est fixé à la moitié de la distance minimale du code interne. S'il est déterminé que la distance est inférieure au seuil, aucune donnée asynchrone n'a encore été insérée dans le bloc, car les données asynchrones insérées sont toujours à la distance minimale de la séquence prédéterminée. Si on choisit la séquence prédéterminée dans l'ensemble de mots de code du code interne (comme par exemple la séquence nulle), les étapes 705 et 706 peuvent être mises en oeuvre de façon équivalente en effectuant un décodage interne du bloc asynchrone codé. Un ensemble de mots de code d'un code est l'ensemble de tous les mots codés possibles pouvant être obtenus en utilisant un code donné. Le bloc asynchrone (décodé), exempt d'erreurs grâce au décodage, est ainsi comparé à la version décodée de la séquence prédéterminée pour déterminer s'ils sont égaux ou non. S'ils sont égaux, cela équivaut à un résultat positif du test 706, ce qui signifie qu'aucune donnée asynchrone n'a été insérée dans le bloc. S'ils diffèrent, cela équivaut à un résultat négatif du test 706. Il est utile d'observer que, si le code interne est systématique (c'est-à-dire si le codage consiste simplement à ajouter des informations de parité sans modifier les données à coder), l'obtention d'une version décodée de la séquence prédéterminée est immédiate et est effectuée en retirant les 24 bits correspondant aux bits de parité de la séquence prédéterminée d'origine. Lors de l'étape 707, la distance est à nouveau déterminée, non par rapport à la séquence prédéterminée mais entre le bloc choisi et le ou les blocs qui lui correspondent dans une ou plusieurs versions du flux de données. Lors de l'étape 708, la distance est comparée au seuil de façon similaire à l'étape 706. Comme pour l'étape 706, dans un mode de réalisation préféré de l'invention, le seuil pour l'étape 708 est fixé à la moitié de la distance minimale du code interne. - 14 - S'il est déterminé que la distance est inférieure au seuil, des données synchrones sont donc présentes dans le bloc (il est alors reconnu comme un bloc 502 sur la Fig. 5]. Sinon, il est déterminé que le bloc contient des données asynchrones. Le code interne garantit une distance minimale entre deux blocs asynchrones codés quelconques qui représentent des mots de code du code interne, même si les données asynchrones encapsulées dans chaque bloc asynchrone sont les mêmes, car l'identifiant unique diffère toujours d'une version à une autre. Des blocs de différentes versions contenant des données synchrones sont toujours proches les uns des autres car la différence possible entre eux est uniquement due à des erreurs de transmission. L'utilisation d'un code de détection ou de correction d'erreurs pour le codage interne afin de distinguer les blocs asynchrones est un mécanisme facile à mettre en oeuvre et puissant. Le bloc asynchrone est alors décodé à l'aide du décodage interne (étape 709) et les données asynchrones encapsulées dans le champ 505 sont extraites (étape 710). De façon équivalente et similaire aux étapes 705 et 706 de comparaison du bloc choisi à la séquence prédéterminée, les étapes 707, 708 et 709 peuvent être remplacées par ce qui suit. En premier lieu, le bloc choisi et le ou les blocs correspondants dans la ou les autres versions reçues sont décodés à l'aide du décodage interne. Les versions décodées des blocs sont alors comparées les unes aux autres pour déterminer si elles sont égales ou non. Si le bloc choisi décodé est égal à au moins un autre bloc décodé, alors le bloc choisi contient des données synchrones. Ceci équivaut à un résultat positif du test 708. Si le bloc choisi décodé n'est égal à aucun autre bloc décodé, alors le bloc choisi contient des données asynchrones. Ceci équivaut à un résultat négatif du test 708. Si les données asynchrones extraites ne forment qu'une partie d'un message asynchrone, alors les données asynchrones extraites sont stockées dans la mémoire 302 (étape 712) afin de reconstruire ultérieurement le message asynchrone lorsque toutes les parties sont extraites (713). Les éventuelles autres parties du message asynchrone sont extraites d'autres blocs choisis, soit dans le paquet courant, soit dans de futurs paquets à recevoir. REVENDICATIONS 1. Procédé d'insertion de données asynchrones dans un flux de données constitué d'une pluralité de blocs dans un système de communication en diversité comportant une pluralité de dispositifs de communication, caractérisé en ce qu'il comporte les étapes suivantes : détecter un bloc contenant une séquence prédéterminée (603) ; coder les données asynchrones pour générer des données codées distantes de toutes autres données codées pouvant avoir été codées par un autre dispositif, ainsi que de la séquence prédéterminée, d'une distance supérieure à une distance prédéterminée (604, 605) ; et remplacer la séquence prédéterminée du bloc détecté par les données codées (606). 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte une étape supplémentaire consistant à transmettre le flux de données comprenant le bloc contenant les données codées (607). 3. Procédé selon les revendications 1 à 2, caractérisé en ce que l'étape de codage est réalisée à l'aide d'un code de correction d'erreurs. 4. Procédé selon la revendication 3, caractérisé en ce que la 25 distance prédéterminée est égale à la distance minimale du code de correction d'erreurs. 5. Procédé d'extraction de données asynchrones d'un premier flux de données dans un système de communication en diversité comportant une 30 pluralité de dispositifs de communication et de transport d'au moins un deuxième flux de données, le premier flux de données et le ou les deuxièmes flux de données étant constitués d'une pluralité de blocs, chaque bloc du premier flux de données étant associé à un bloc du ou des deuxièmes flux de données, caractérisé en ce qu'il comporte les étapes suivantes exécutées pour20 - 16 - au moins un bloc choisi parmi la pluralité de blocs du premier flux de données: déterminer si la distance entre le bloc choisi et une séquence prédéterminée est supérieure à une distance prédéterminée (706) ; déterminer si la distance entre le bloc choisi et le bloc qui lui est associé dans le ou les deuxièmes flux de données est supérieure à une distance prédéterminée (708) ; et si les résultats des deux étapes de détermination sont positifs, extraire les données asynchrones du bloc choisi (710). 6. Procédé selon la revendication 5, les données asynchrones étant codées par un code de correction d'erreur au sein du bloc choisi au niveau d'un dispositif émetteur, et le procédé étant caractérisé en ce qu'il comporte une étape de décodage du bloc choisi avant l'extraction des données asynchrones, à l'aide d'un code de correction d'erreurs (709). 7. Procédé selon la revendication 6, caractérisé en ce que la distance prédéterminée est égale à la distance minimale du code de correction d'erreurs. 8. Appareil d'insertion de données asynchrones dans un flux de données constitué d'une pluralité de blocs dans un système de communication en diversité comportant une pluralité de dispositifs de communication, caractérisé en ce qu'il comporte: un moyen de détection d'un bloc contenant une séquence prédéterminée (412) ; un moyen de codage des données asynchrones pour générer des données codées distantes de toutes autres données codées pouvant avoir été codées par un autre dispositif, ainsi que de la séquence prédéterminée, d'une distance supérieure à une distance prédéterminée (413) ; et un moyen de remplacement de la séquence prédéterminée du bloc détecté par les données codées (413). 9. Appareil d'extraction de données asynchrones d'un premier flux 35 de données reçu par l'intermédiaire d'un système de communication en - 17 -diversité comportant une pluralité de dispositifs de communication, l'appareil recevant au moins un deuxième flux de données, le premier flux de données et le ou les deuxièmes flux de données étant constitués d'une pluralité de blocs, chaque bloc du premier flux de données étant associé à un bloc du ou des deuxièmes flux de données, caractérisé en ce qu'il comporte les moyens suivants, pour au moins un bloc choisi parmi la pluralité de blocs du premier flux de données: un moyen destiné à déterminer si la distance entre le bloc choisi et une séquence prédéterminée est supérieure à une distance prédéterminée ; un moyen destiné à déterminer si la distance entre le bloc choisi et le bloc qui lui est associé dans le ou les deuxièmes flux de données est supérieure à la distance prédéterminée ; et un moyen destiné à extraire des données asynchrones du bloc choisi, l'extraction étant effectuée si les résultats des deux moyens de détermination sont positifs. 10. Programme qui, lorsqu'il est exécuté par un ordinateur ou un processeur dans un dispositif, amène le dispositif à réaliser un procédé selon l'une quelconque des revendications 1 à 7.