FR 2760921 A1 19980918 FR 9801840 A 19980216 PROCÉDÉ ET DISPOSITIF POUR LA TRANSMISSION DE DONNÉES La présente invention concerne les données de transmission et plus particulièrement, un procédé et un dispositif pour la transmission de données entre des5 dispositifs de communication. On a développé et utilisé des schémas de communication de données pour transmettre des données entre des dispositifs, comme des dispositifs électroniques, selon le type de données transmises. Dans un système de10 communication synchrone, la transmission est effectuée en envoyant des trains binaires et des trains de caractères qui sont asservis à des horloges synchronisées, de façon précise, dans les postes d'émission et de réception. Comme un intervalle de temps constant est établi entre les bits,15 les caractères ou les événements successifs, les impulsions de début et de fin ne sont pas requises en association avec chaque caractère. Ainsi, une transmission synchrone associée à un signal d'horloge maintient en phase l'émetteur et le récepteur. A l'inverse, dans un système de20 communication asynchrone, la transmission des données est commandée, de façon indépendante, par les impulsions de début et de fin dans chaque trame de données. Bien que les données puissent être séparées en trames d'un nombre prédéterminé de bits et que des octets de commande doivent25 être transmis, la transmission des bits ou des trames ne dépend pas d'un signal d'horloge. De façon à transmettre les données dans un quelconque mode, des signaux ou des octets de commande sont transmis pour fournir au récepteur une information l'aidant à30 décoder les données. Par exemple, des octets de commande représentant le début d'une trame (BOF) de données et une fin de trame (EOF) de données sont transmis pour fournir une indication au récepteur selon la trame de données a été envoyée lors de l'envoi de données asynchrones. En particulier, les octets de commande sont des agencements binaires particuliers qui seront reconnus par le récepteur comme ayant une signification particulière, comme le fait5 que les données sont commencées ou terminées. Cependant, un problème survient lorsque les signaux de commande sont présents dans les données à transmettre. Ainsi, un récepteur peut décoder les bits de données comme étant un signal de commande et peut recevoir, de façon incorrecte, les données restantes de la trame. De façon à éviter l'envoi de données qui pourraient être interprétées comme un signal de commande, les données pourraient recevoir des configurations binaires telles que les données ne comprennent pas les configurations binaires des signaux15 de commande. Par exemple, lors de la transmission de configurations binaires ASCII représentant des caractères alphanumériques, les configurations binaires ASCII pourraient être choisies pour s'assurer qu'elles ne correspondent pas à des configurations binaires de signal20 de commande. Cependant, de tels systèmes de transmission de données asynchrones sont limités à la transmission de configurations binaires prédéfinies représentant certains caractères comme des lettres. Selon un autre schéma de transmission de données asynchrones, les données sont modifiées avant la transmission pour s'assurer qu'elles ne comprennent pas de signal de commande. Par exemple, si le signal de commande représente six "un" dans une rangée, l'émetteur insérera un "zéro" toutes les fois que cinq "zéro" sont détectés dans les données. Ainsi, lorsque le récepteur détecte cinq bits de données, le récepteur enlèvera le "zéro" suivant et décodera le bit suivant soit comme un "un", soit comme un "zéro". Si le bit suivant est un "un" représentant six "un" de données, le récepteur ne détectera pas les six "un" comme un octet de commande mais comme des données. A l'inverse, lorsque le récepteur détecte six "un" dans une rangée (sans enlever un "zéro"), le récepteur détectera le signal de commande. Un tel schéma de transmission de données est décrit dans les procédures avancées de commande5 de communication de données (ADCCP). Cependant, une telle "remise en place" binaire nécessite la transmission de données additionnelles qui abaisse la rapidité et l'efficacité du système de transmission de données. Finalement, selon un autre schéma de transmission de données asynchrones, un octet de commande, dit octet d'échappement "ESC", est transmis avant l'envoi d'un octet de données correspondant à un octet de commande. En plus de l'envoi du bit de commande, l'octet de données lui-même pourrait être modifié comme selon une opération booléenne15 de "OU-EXCLUSIF". Lors de la réception d'un octet d'échappement, le récepteur reconnaîtra que l'octet suivant n'est pas un signal de commande et doit être décodé. Cependant, de tels procédés nécessitent la transmission d'un octet d'échappement pour chaque octet correspondant à20 un octet de commande et réduisent, de même, la rapidité et l'efficacité du système de transmission de données. Un tel système crée, de même, un illogisme dans l'efficacité des données. Par exemple, si une trame possède par coïncidence un nombre d'octets de données coïncidant avec des bits de25 commande, le système sera particulièrement inefficace pour cette trame car il devra envoyer un octet d'échappement pour chaque tel octet de données. Ainsi, on recherche un procédé et un dispositif améliorés pour la transmission de données. Sur les dessins: la Figure 1 est un schéma d'un réseau de communication selon la présente invention; la Figure 2 est un synoptique d'un dispositif de communication selon la présente invention; la Figure 3 est un schéma de trame illustrant une trame usuelle de données; la Figure 4 est un schéma de trame illustrant une trame de données selon la présente invention; la Figure 5 est un organigramme illustrant un procédé de transmission de données selon la présente invention; la Figure 6 est un organigramme illustrant le procédé de calcul d'une valeur de décalage selon l'étape 504 de la présente invention; et la Figure 7 est un organigramme illustrant les étapes de transmission et de réception de données dans un réseau de communication de données de la Figure 1 selon la15 présente invention. Un procédé et un dispositif pour la transmission de données améliorent, à la fois, l'efficacité et l'intégrité de la cadence de transmission des données. Selon la présente description, on détermine une valeur de décalage20 de données pour chaque trame de données. La valeur de décalage de données est utilisée pour modifier les données afin de s'assurer qu'elles ne comprennent pas d'octets de commande qui sont envoyés avec les données. Par exemple, la valeur de décalage est calculée de telle façon que, lorsque25 la valeur de décalage est soustraite comme selon une soustraction modulo 265, de chaque octet de données dans la trame, les octets de données ne correspondent à aucun octet de commande envoyé. La valeur de décalage est alors envoyée avec les octets de données modifiés vers un récepteur qui30 décode les octets de données en ajoutant la valeur de décalage à chaque octet de données et traite les données. Ainsi, seule une valeur unique de décalage doit être transmise avec chaque trame de données afin d'empêcher chaque octet de données d'être interprété par erreur comme un octet de commande. En référence tout d'abord à la Figure 1, un réseau de communication 100 pour l'incorporation d'un dispositif de communication 101 de la présente invention est illustré. En général, le réseau de communication 100 est prévu pour transmettre des données et d'autres signaux entre des dispositifs de communication dans des réseaux sans fil10 comme un réseau de téléphones cellulaires, et dans des réseaux usuels câblés, comme un réseau téléphonique public commuté (PSTN) couplé à un réseau informatique. En particulier, un réseau sans fil 102 est illustré couplé pour recevoir des signaux de fréquence radio (R.F.) d'un15 système terminal mobile 104, comme un radiotéléphone cellulaire mobile ou portable ou un autre dispositif de communication sans fil comme un prêt-à-monter pour voiture d'amplificateur à mains libres de 3 Watts pour la réception d'un dispositif de communication 101, via une liaison de20 communication 106 comme une liaison de fréquence radio (R.F.). Le dispositif de communication 101, comme un radiotéléphone portable ou un autre dispositif de communication sans fil, peut être couplé au système25 terminal mobile 104 via une liaison de communication 108 pouvant être une liaison optique, comme une liaison par infrarouge, une connexion standard d'interface EIA-232, une connexion par modem ou une quelconque autre liaison. Le réseau sans fil 102 est couplé, de préférence, à un réseau30 externe 109, comme un réseau téléphonique public via une liaison de communication 110. La liaison de communication peut être une liaison sans fil ou peut être constituée par une connexion physique entre le réseau sans fil et le réseau externe. Les réseaux externes sont couplés à un système terminal fixe à l'aide d'une infrastructure existante. Tandis que le réseau de communication de la Figure 1 permet la transmission de signaux entre un système final mobile et un système final fixe à titre d'exemple, la présente invention pourrait être appliquée, de même, à une communication entre deux systèmes terminaux mobiles couplés au réseau sans fil ou même entre deux dispositifs de communication discrets indépendants de tout réseau. La10 présente invention pourrait être utilisée, de même, dans un quelconque environnement de communication, comme un PCS, un service de communication par satellite, des télécom ou des ordinateurs. De même, tandis que les présents procédé et dispositif trouvent une application particulière dans la15 transmission de données entre deux dispositifs de communication à l'aide d'une transmission sans fil, comme une transmission de données par infrarouge, le procédé de transmission de données de la présente description pourrait être utilisé dans une quelconque des liaisons de communication 106, 108, 110 et/ou 114. En référence à présent à la Figure 2, un synoptique d'un dispositif de communication, comme un radiotéléphone cellulaire, selon la présente invention est illustré. Dans le mode de mise en oeuvre préféré, un microprocesseur 20125 comme un 68HC11 disponible chez Motorola Inc. et un codeur de la parole 203 sont combinés pour générer le protocole de communication requis par le fonctionnement dans un système cellulaire. Le microprocesseur 201 utilise une mémoire vive RAM 205, une mémoire EEPROM 207 et une mémoire morte ROM30 209 associées, de préférence, dans un boîtier 211, pour exécuter les étapes requises par la génération du protocole et pour effectuer d'autres fonctions de l'unité de communication, comme l'écriture sur un moyen d'affichage 213, l'entrée d'informations à partir d'un clavier 215 et la commande d'un synthétiseur en fréquence 225. Le codeur de la parole 203 traite une information audio transformée par un circuit audio 219 à partir d'un microphone 217 et un haut-parleur 221. Un émetteur/récepteur traite les signaux de fréquence radio (R.F.). En particulier, un émetteur 2235 reçoit des données modulées à partir d'un modulateur de données 224 et émet les données, via une antenne 229, à l'aide de fréquences porteuses produites par un synthétiseur en fréquence 225. L'information reçue par l'antenne du dispositif de communication 229 pénètre dans10 le récepteur 227 qui fournit les signaux démodulés au circuit de traitement via un démodulateur de données 228. Le dispositif de communication peut comprendre, en option, un dispositif de stockage et de réception de message 230 comprenant un moyen de traitement de signal15 numérique. Le dispositif de stockage et de réception de message 230 peut être, par exemple, une machine de répondeur numérique ou un récepteur d'appel. Le dispositif de communication peut comprendre un modem de commutation de circuit 232. Les modems à commutation de circuit sont bien20 connus dans le domaine des télécom et peuvent être utilisés pour transmettre des données selon la présente invention. Finalement, le dispositif de communication comprend un récepteur/émetteur asynchrone universel (UART) 231. Les UARTs qui sont bien connus dans le domaine de l'art sont25 utilisés pour assurer l'interface d'une unité de commande avec un réseau de communication en série. Le récepteur/émetteur asynchrone universel (UART) 231 est couplé à une interface EIA-232 233 pour la transmission de données en série. De préférence, le dispositif de30 communication comprend, de même, un formateur de données 234 pour fournir des signaux de communication en série à un émetteur/récepteur I.R. 236. Le formateur de données 234 assure le fait que l'émetteur/récepteur I.R. 236 soit correctement configuré pour émettre les données fournies35 par le récepteur/émetteur asynchrone universel (UART) 231 selon des protocoles de données I.R.. La partie d'émetteur de l'émetteur/récepteur I.R. 236 comprend une diode d'émetteur 238 tandis que la partie de récepteur comprend une diode de détecteur 240. Tandis que des dispositifs5 spécifiques de transmission de données sont illustrés, on pourrait utiliser selon la présente invention d'autres dispositifs de transmission de données. De même, d'autres agencements pour la transmission de signaux I.R. selon le procédé de la présente invention pourraient être utilisés. En référence à présent à la Figure 3, on illustre une trame usuelle pour la transmission de données. En particulier, la trame comprend un octet BOF 302 suivi d'un octet d'adressage/commande 304. Des octets de données 306, 310 et 312 suivent. Un octet de vérification de redondance cyclique (CRC) 314, bien connu dans le domaine de l'art, est alors transmis. Finalement, un octet EOF 316 est transmis. Comme illustré sur la Figure 4, un octet de décalage 402 est ajouté à la trame. Comme cela sera décrit, de façon plus détaillée, en référence à la Figure 6,20 l'octet de décalage est calculé pour s'assurer que les octets de données modifiés 404, 406 et 408 ne deviennent pas identiques à l'octet BOF 302, à l'octet EOF 316 ou à un autre octet pouvant être transmis, comme un octet ESC précédemment décrit. Les octets de données modifiés 404 à25 408 qui sont les octets de données 306, 310 à 312 modifiés par le décalage, et le CRC 410, sur la base de l'octet d'adressage/commande, de l'octet de décalage et des octets modifiés de données, sont envoyés, de même, dans la trame. En référence à présent à la Figure 5, un organigramme illustre les étapes préférées pour la transmission de données selon la présente invention. Le dispositif de communication 101, de préférence via le microprocesseur 201, analyse les données à transmettre à une Étape 502. Par exemple, lors de la transmission d'une trame possédant des données partitionnées en octets, les octets sont comparés à des octets de commande pour déterminer si un quelconque des octets de données correspond aux octets de commande. Le dispositif de communication 101 calcule alors une valeur de décalage sur la base des données à une Étape 504. La valeur5 de décalage sera calculée de telle façon que, lorsque les données sont modifiées par la valeur de décalage à une Étape 506, les octets de données modifiés ne correspondent à aucun octet de commande envoyé. Par exemple, le décalage peut être soustrait de l'octet de données à l'aide d'une soustraction modulo 256 afin de générer un octet de données modifié. L'octet de données modifié résultant ne correspondra plus alors aux signaux de commande. En option, les octets de données peuvent être modifiés par addition modulo 2 (c'est-à-dire fournissant le produit d'un "OU-15 EXCLUSIF" avec une valeur prédéterminée) ou selon une certaine autre fonction. La valeur de décalage et les données modifiées sont alors envoyées à un récepteur à une Étape 508. Le récepteur peut utiliser la valeur de décalage pour reconstituer les octets de données d'origine. En référence à présent à la Figure 6, les étapes préférées pour le calcul d'une valeur de décalage sont illustrées. En particulier, le dispositif de communication, de préférence dans le microprocesseur 201, crée une configuration de drapeau de 256 bits à une Étape 602.25 Chaque bit dans la configuration de drapeau correspond à une valeur possible de décalage. Pour une valeur de décalage de 8 bits, il y a tout d'abord 256 valeurs possibles de décalage. Le bit dans la configuration associé à une valeur de décalage qui ne fonctionnera pas, de façon correcte, comme valeur de décalage sera chargé ("effacé") à zéro. Le dispositif de communication place tous les bits dans la configuration de drapeau à une valeur prédéterminée (par ex. "1") à une Étape 604. Le dispositif de communication efface alors les bits de la configuration associée aux bits de commande. Ainsi, la valeur de décalage ne doit pas être la même qu'un octet de commande. Le dispositif de communication établit un pointeur au début d'un tampon de données, par exemple un tampon de données de voix, à une Étape 606. Le dispositif place alors la valeur5 de données (DVAL) sur l'octet suivant dans le tampon de données à une Étape 608. Le dispositif efface alors les bits dans la configuration de champ de données correspondant aux octets de commande à une Étape 610. Comme cela a été décrit: (1) DVAL - Valeur de Décalage X Octet de Commande Ainsi, il est vrai, de même, que: (2) DVAL É Octet de Commande + Valeur de Décalage Par conséquent, les valeurs potentielles de décalage peuvent être éliminées par soustraction des octets de commande de chaque DVAL selon l'équation suivante: (3) DVAL - Octet de Commande É Valeur de Décalage Le dispositif détermine alors si la fin du tampon de données est atteinte à une Étape 612. Si la fin du tampon de données n'est pas atteinte, le dispositif effacera les20 bits appropriés dans la configuration de champ de données à une Étape 610 pour chaque DVAL. Cependant, si la fin du tampon de données est atteinte à une Étape 612, le dispositif pointera sur le début de la configuration de drapeau à une Étape 616. Le microprocesseur balayera alors25 la configuration à la recherche du "1" suivant à une Étape 618. Le microprocesseur établira alors le décalage de données sur l'index courant de drapeau à une Étape 622. Le microprocesseur soustraira alors la valeur de décalage de tous les octets de données dans le tampon à un Étape 624. En référence à présent à la Figure 7, les étapes d'émission et de réception des données selon la présente 1] invention sont illustrées. L'émetteur calcule une valeur de décalage sur la base de données selon les étapes de la Figure 6 à une Étape 702. L'émetteur modifie alors les octets de données, par exemple en soustrayant la valeur de5 décalage de chaque octet à une Étape 704, et émet la valeur de décalage et les données modifiées à une Étape 706. Le récepteur reçoit alors la valeur de décalage et les octets modifiés de données à une Étape 708 et convertit chaque octet modifié de données à sa valeur d'origine (par10 exemple, en ajoutant la valeur de décalage aux octets de données) à une Étape 710. Le récepteur décode alors les données à une Étape 712. L'émetteur et le récepteur peuvent être des dispositifs de communication comme illustré sur la Figure 2. La présente invention trouve une application particulière dans la transmission de la voix sur une liaison par infrarouge comme entre un radiotéléphone et un accessoire quelconque. Le procédé et le dispositif confèrent une certaine transparence aux données codées de20 la voix transmises sur une liaison de données par infrarouge de telle façon que les octets réservés à des fins de protocole par le standard de données par infrarouge ne soient pas présents dans les données de voix. Le procédé et le dispositif trouvent une application particulière dans25 la réduction du nombre des octets d'en-tête requis pour la transmission de la voix codée ADPCM à 32 Kbits/s en duplex intégral sur une liaison de données par infrarouge à 115.200 bits/s. Les contraintes libérées de calage dans le temps, résultant de la réduction des données de transparence ajoutées, faciliteront les mises en oeuvre par logiciel de la Spécification de Voix par Télécom. avec Association de Données par Infrarouge, et amélioreront le fonctionnement de la liaison par infrarouge des données de voix dans des conditions marginales. Cette invention transmet un octet additionnel de données de transparence en conjonction avec tous les 85 octets de données de voix pour assurer la transparence. Cet octet est choisi de telle façon que, lorsqu'il est5 soustrait de 84 échantillons de voix à transmettre, aucun octet réservé à l'information de commande ne soit présent dans les données résultantes. L'addition de l'octet de transparence dans tous les octets de données du récepteur restaure les données d'origine. Par exemple, selon un10 protocole de trois octets, comme les octets hexadécimaux 7D, CO et C1, on peut constater qu'il existe une valeur unique qui, lorsqu'elle est soustraite de chaque octet d'un paquet atteignant 84 octets aléatoires, garantira qu'il peut être restauré dans le récepteur. Ce procédé et ce15 dispositif peuvent récupérer jusqu'à 0,851 ms par paquet lors de l'envoi de paquets de la parole de 20 ms, et 0,608 ms pour les paquets de la parole de 13,5 ms. Bien que l'invention ait été décrite et illustrée dans la description précédente et par les dessins, on comprendra que cette description n'est donnée qu'à titre d'exemple seulement et que de nombreuses variantes et modifications peuvent être apportées par l'homme du métier sans sortir de l'esprit et du cadre de l'invention. Par exemple, bien qu'un dispositif de transmission de signaux25 asynchrones de communication soit illustré, le procédé et le dispositif pourraient être utilisés pour la transmission de données synchrones. Bien que la présente invention trouve une application particulière dans les radiotéléphones cellulaires portables, l'invention pourrait30 être appliquée à un quelconque dispositif de communication sans fil, comprenant les récepteurs d'appel, les organiseurs électroniques ou les ordinateurs. L'invention du déposant ne sera limitée que par les revendications annexées. REVENDICATIONS 1. Procédé de transmission des données dans une trame possédant des octets de données et une information de commande, caractérisé par les étapes suivantes: - la sélection (504) d'une valeur de décalage sur la base desdits octets de données; - la modification (506) desdits octets de données sur la base de ladite valeur de décalage, lesdits octets de données modifiés étant différents de ladite information de10 commande; et - la transmission (508) desdits octets de données modifiés. 2. Procédé de transmission de données selon la revendication 1, caractérisé en ce que ladite étape de sélection d'une valeur de décalage comprend la détermination d'une valeur qui, lorsqu'elle est utilisée pour modifier lesdits octets de données, entraînera des octets de données modifiés différents de ladite information de commande. 3. Procédé de transmission de données selon la revendication 1, caractérisé en ce que ladite étape de modification desdits octets de données comprend la soustraction (624) de ladite valeur de décalage de chaque dit octet de données. 4. Procédé de transmission de données selon la revendication 1, caractérisé en ce que ladite étape de modification desdits octets de données comprend la prévision d'une opération de OU-EXCLUSIF entre lesdits octets de données et une valeur prédéterminée. 5. Procédé de transmission de données selon la revendication 1, caractérisé en ce que ladite étape de transmission comprend, de plus, la transmission (706) de ladite valeur de décalage. 6. Procédé pour la transmission de données dans une trame possédant au moins un octet de commande, caractérisé par les étapes suivantes: - le partitionnement desdites données en une pluralité d'octets de données (306); - l'analyse (502) de chaque octet de données de ladite pluralité d'octets de données pour déterminer si un octet de données correspond audit au moins un octet de commande; - le calcul (504) d'une valeur de décalage si un octet de données de ladite pluralité d'octets de données correspond audit au moins un octet de commande; - la modification (506) dudit octet de données sur la base de ladite valeur de décalage de telle façon que ledit octet de données tel que modifié soit différent dudit au moins un octet de commande; et - la transmission (508) de ladite trame possédant ledit octet modifié de données. 7. Dispositif pour la transmission d'une trame de données possédant au moins un octet de commande, caractérisé par: - un circuit de traitement (201) pour le calcul d'une valeur de décalage d'une trame d'octets de données à transmettre; - un circuit de formatage de données (234) pour la génération de ladite trame de données possédant ladite valeur de décalage et lesdits octets modifiés de données;30 et - un émetteur (233, 236) pour transmettre ladite trame de données. 8. Dispositif de transmission de données selon la revendication 7, caractérisé en ce que ladite valeur de décalage (402) est une valeur qui, lorsqu'elle est utilisée pour modifier lesdits octets de données, entraîne des octets modifiés de données différents dudit au moins un octet de commande. 9. Dispositif de transmission de données selon la revendication 7, caractérisé en ce que lesdits octets modifiés de données (404) sont des octets de données moins la valeur de décalage. 10. Dispositif de transmission de données selon la revendication 7, caractérisé en ce que lesdits octets modifiés de données sont constitués par le résultat d'une opération de OU-EXCLUSIF des octets de données et d'une valeur prédéterminée.