Brevet FR2787226A1 — publié le 20000616

Dispositif transmetteur avec transcodage NRZ/biphasé L'invention concerne le transfert de données, en particulier dans des applications o ce transfert intéresse à la fois des périphériques filaires et des périphériques opérant par voie radio-électrique. Dans le domaine de l'alarme et de la surveillance de locaux, il est souhaité qu'une alarme déclenchée puisse être trans- mise par téléphone, et également par radio. Toutefois, ces fonctions, bien que techniquement réalisables, n'ont prati- quement pas été implantées jusqu'à présent dans les transmet- teurs d'alarme, pour diverses raisons, dont la difficulté d'obtenir un fonctionnement satisfaisant, à un prix compati- ble avec l'application d'alarme. La Demanderesse s'est attachée à chercher une solution à ce problème. L'une des difficultés rencontrées réside dans le codage des signaux. En effet, les transmetteurs d'alarme sont au- jourd'hui fréquemment articulés sur des micro-contrôleurs, dont certains intègrent aujourd'hui un convertisseur série- parallèle bi-directionnel (dit UART, de l'anglais "Universal Asynchronous Receiver Transmitter"l). Un tel module UART gère automatiquement la conversion parallèle-série des données pour la transmission, et réciproquement la conversion série- parallèle des données pour la réception. L'UART traite des bits logiques, ce qui convient pour un codage de données en mode NRZ. Mais le codage NRZ est inapproprié pour une transmission radio, en particulier à modulation de fréquence ou de phase, du fait que le spectre basse fréquence qu'il produirait serait fortement variable en fonction des données à transmettre. Il est connu par ailleurs que le codage dit "biphasé" ne présente pas cet inconvénient. Mais, pour l'implanter dans un matériel du type transmetteur d'alarme, il faut ajouter à celui-ci d'assez nombreux composants qui en augmentent la complexité et le coût, tout en tendant à diminuer sa fiabili- té. La présente invention vient améliorer la situation. Un but de l'invention est de réaliser un poste transmetteur à microcontrôleur qui soit capable de travailler à la fois en codage NRZ ou en codage biphasé. Un autre but de l'invention est d'utiliser le convertisseur sérieparallèle ou UART du microcontrôleur, d'une manière qui décharge autant que possible l'unité de traitement. L'invention part d'un poste transmetteur qui comprend une unité de traitement, apte à charger des signaux numériques en codage de type NRZ sur l'accès "aller" d'un convertisseur parallèle-série, et des moyens d'adaptation, assortis d'un commutateur, aptes à relier le convertisseur parallèle-série, par sa sortie "aller", soit à au moins un périphérique opérant en mode NRZ, soit à au moins un périphérique opérant en codage biphasé, comme un émetteur radioélectrique, avec transcodage des signaux numériques de NRZ en biphasé. Selon une caractéristique générale de l'invention, les moyens d'adaptation comprennent, dans l'unité de traitement, un module de liaison muni d'une première table, propre à faire correspondre à tout multiplet de n bits logiques en code NRZ, deux groupes de n bits logiques formant le même multiplet en code biphasé; ce module de liaison possède un premier mode (NRZ) dans lequel il assure directement ledit chargement des signaux numériques en codage de type NRZ sur l'accès "aller" du convertisseur parallèle-série, et un second mode (biphasé) dans lequel il applique les signaux numériques en codage de type NRZ à l'entrée de ladite première table, dont la sortie est chargée en deux temps sur l'accès "aller" du convertis- seur parallèle-série; l'unité de traitement est agencée pour piloter conjointement la mise en fonction du périphérique opérant en codage biphasé avec des paramètres de travail - IF - choisis, le passage du module de liaison en mode biphasé, et le basculement de la sortie du commutateur vers ledit périphérique opérant en codage biphasé. Ce qui précède intéresse l'aller ou émission. Dans la plupart des applications, il existe une fonction "retour" ou récep- tion, et le convertisseur parallèle-série opère en mode bi- directionnel. Le module de liaison est également bi-direc- tionnel, avec: - un premier mode retour (NRZ) dans lequel il fournit directement la sortie retour du convertisseur parallèle-série à l'unité de traitement, et - un second mode retour (biphasé), o il fournit la sortie retour du convertisseur parallèle-série comme entrée dans une seconde table, formant table réciproque de la première. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après ainsi que des dessins annexés, sur lesquels: - la figure 1 illustre le schéma électrique de principe d'un transmetteur d'alarme selon l'invention; - la figure 1A illustre un exemple de schéma de principe d'un convertisseur parallèle série directionnel; - les figures 2A et 2B illustrent l'allure d'un signal en code NRZ, respectivement en son principe et tel que fourni par le convertisseur parallèle-série; - la figure 3 illustre le principe d'un signal biphasé; - la figure 4 illustre le contenu d'une première table utilisée selon l'invention; - la figure 5 illustre l'allure d'un signal biphasé tel qu'utilisé selon l'invention; les figures 6A à 6C illustrent différents formats de messages utilisés selon l'invention; - la figure 7 est le schéma de principe du module de liaison incorporé à l'unité de traitement selon la présente inven- tion; la figure 8 est un logigramme du fonctionnement du module de liaison en mode émission; et - la figure 9 est un logigramme du fonctionnement du trans- metteur d'alarme en mode réception. Les dessins annexés comprennent, pour partie au moins, des éléments de caractère certain. En conséquence, ils pourront servir non seulement à mieux faire comprendre la description détaillée ci-après, mais aussi contribuer à la définition de l'invention, le cas échéant. Le transmetteur d'alarme de la figure 1 est articulé sur une unité centrale du type micro-contrôleur 1, qui comporte un convertisseur parallèle-série bi-directionnel 3 (ou UART). De façon connue, le microprocesseur travaille avec une horloge , une mémoire sauvegardée de date 11, une alimentation 90 possédant un mode de veille, des entrées (ou sorties) 91, notamment en direction des capteurs, une interface utilisa- teur 92, et une mémoire sauvegardée de configuration 93. La configuration (N de système, fréquence radio de travail, notamment) est définie à l'installation, et, par la suite, modifiable par radio. La figure 1A illustre le convertisseur parallèle-série bi- directionnel ou UART. Celui-ci comporte différents registres reliés au bus interne 19 du micro-contrôleur, à savoir: - un registre tampon d'émission 310 (TxB0), - un registre tampon de réception 320 (RxB0), - un registre de mode d'interface série asynchrone 300 (ASIM0), - un registre d'état d'interface série asynchrone 327 (ASIS0). On note respectivement TxD0 et RxD0 les données émises sur la borne 312 ou reçues sur la borne 323. Un registre à décalage d"émission 311 (TxS0) envoie les données à émettre, en série. Un registre à décalage de réception 321 (RxS0) accueille les données reçues, en série, pour les transférer en parallèle au registre 320. Tant en réception qu'en émission, le passage des données est commandé par les portes amplificatrices 322 et 312, qui sont respectivement sous le contrôle des parties RxE0 et TxE0 du registre 300. Enfin, la parité des données reçues est contrôlée par le circuit 325 (Rx-CPC), tandis que la parité des données émises est ajoutée par le circuit 315 (Tx-CPA). L'UART comprend encore un générateur de cadence interne 330, piloté par un registre de commande du générateur de cadence en bauds 331 (BRGC0). Dans le mode de réalisation décrit, les cadences d'horloge qui pilotent les registres 310 et 321 passent respectivement à travers les circuits 315 et 325. En outre, le circuit 315 est capable d'élaborer une inter- ruption liée à l'émission INTST0. de son côté, le circuit 325 est capable d'engendrer de lui même une première interruption liée à la réception INSTSR0; il traite en outre trois signaux d'erreurs, respectivement de parité, de cadrage ("framing"), et débordement, qui sont stockés séparément dans le registre 327, et combinés dans une porte ou 328 pour créer une seconde interruption liée à la réception, notée INTSER0, et représen- tative d'une erreur. Différents paramètres programmables dans i'UART sont fixés ici par exemple comme suit: nombre de bits (états) = 8; pas de parité; nombre de bits du bloc stop = 1. Par ailleurs, les circuits 330 et 331 sont programmés pour fixer, par division de l'horloge 10 du micro-contrôleur, la cadence désirée pour l'émission et la réception en série des données. g Y- 1 lm Certaines UART n'ont pas de registre parallèle d'émission 310. On peut alors émuler un tel registre dans la mémoire de l'unité centrale, de façon directement accessible pour le registre série 311, dès qu'il produit son signal "prêt à émettre". On considère le fonctionnement général du transmetteur d'alarme comme classique, et on s'intéresse ici essentielle- ment à sa fonction de transfert des données vers l'extérieur. Le transfert part de i'UART 3, et, à travers un commutateur 4, il peut s'effectuer soit vers une imprimante 51, soit vers un transmetteur téléphonique 52, soit vers un émetteur récepteur radio-électrique 60, notamment. Le commutateur 4 est sous le contrôle d'une ligne de sélection 41 provenant de l'unité centrale 1. Proviennent également de l'unité centrale 1 des commandes circulant sur des lignes bidirectionnelles 61 pour piloter l'émetteur récepteur 60, notamment pour le basculement émission-réception, et la sélection des fréquen- ces de travail. Par ailleurs, il est souhaitable d'obtenir la vitesse de transmission la plus grande possible, au moindre coût, en évitant les collisions, ainsi que les problèmes de consomma- tion électrique. L'imprimante 51 et le transmetteur téléphonique 52 travail- lent habituellement en code NRZ. La figure 2A fait apparaître un mot (ou multiplet) de huit bits en code NRZ, avec en regard le signal NRZ correspondant. Un bit de code NRZ est défini par un et un seul état logique ("0" ou "1"). On devra dans la suite distinguer entre: - le bit logique, qui est un état logique "0" ou "1", pris indépendamment du codage utilisé, donc tel que le "voit" le convertisseur parallèle-série, et - le bit codé, qui est la signification conférée par le codage à un bloc d'un ou plusieurs bits logiques. 4'-t im En code NRZ, un octet codé comprend un octet logique. Le convertisseur parallèle-série va encadrer un octet NRZ (figure 2B) par un bloc START et un bloc STOP, avec, entre ceux-ci, les huit bits de l'octet NRZ dans l'ordre des poids croissants, donc du poids le plus faible (LSB) jusqu'au poids le plus fort (MSB). La figure 3 fait apparaître le même message binaire, mais exprimé cette fois en code biphasé. On remarque que le signal change d'état sensiblement au milieu de chaque bit, et que c'est le sens de la transition qui indique la valeur du bit. Ici, les fronts montants correspondent à un bit 0 et les fronts descendants à un bit 1, mais on peut faire l'inverse, à savoir que les fronts montants correspondent à un bit 1 et les fronts descendants à un bit 0. Comme chaque bit biphasé est défini par une suite de deux états différents, quatre bits en code biphasé correspondent à huit bits logiques; de même, un octet en code biphasé correspond à deux octets logiques. La Demanderesse a envisagé de réaliser par voie logicielle un transcodage de NRZ en biphasé, et/ou réciproquement. Toute- fois, elle a alors observé qu'avec un microcontrôleur cadencé à 4 MHz, l'exécution d'une instruction élémentaire dure en moyenne environ 1,5 microseconde. Comme un programme de transcodage NRZ vers biphasé comprendrait nécessairement un nombre assez élevé d'instructions, il est impossible en pratique de réaliser ledit transcodage par programme, tout en conservant une vitesse de transmission raisonnable (par exemple 50 microsecondes par bit logique), sauf à augmenter considérablement (un facteur 10) la cadence d'horloge du microcontrôleur, et, par conséquent, son coût et sa consomma- tion électrique. En sens inverse, en réception il faudrait en outre augmenter encore d'un facteur 4 les performances du microcontrôleur, si l'on veut conserver un rapport signal à bruit correct. De NRZ vers biphasé, la Demanderesse a observé qu'il est possible d'utiliser une table de conversion comprenant par exemple les valeurs illustrées sur la figure 4. En haut de cette figure 4 est schématisé le format série d'un demi-octet ou quartet en code NRZ, après traversée du conver- tisseur parallèle-série 3. Les seize lignes suivantes donnent, à gauche, les seize valeurs possibles pour un quartet, avec à chaque fois la forme de signal correspondante en code NRZ. En regard de ces seize lignes, on trouve deux colonnes, avec: - dans la première, un seul caractère hexadécimal ayant la valeur du quartet logique en code NRZ situé à gauche (ou autre), et - dans la seconde, deux caractères hexadécimaux, c'est-à-dire deux groupes de quatre bits logiques, qui forment un octet logique, c'est à dire un demi-octet en code bi-phasé. En chargeant cet octet logique sur l'accès parallèle du conver- tisseur parallèle-série ou UART 3, celui-ci délivre en sortie série la forme de signal en code biphasé correspondant au demi-octet NRZ appliqué à l'entrée de la table TAB1. Comme le montre la figure 5, i'UART va donc fournir d'abord la sortie série correspondant au premier octet logique, encadrée par un bit de start et un bit de stop, puis la sortie série corres- pondant au second octet logique, à nouveau encadrée d'un bit de start et d'un bit de stop. La forme particulière de signal biphasé de la figure 5 est obtenue en appliquant à l'UART la valeur 59h (59 en hexadécimal), puis la valeur 99h (99 en hexadécimal). On remarque que la correspondance entre les deux colonnes de droite de la figure 4 est biunivoque, c'est-à-dire qu'il n'y a aucune ambiguïté. Partant d'un octet en code NRZ, on va donc solliciter la table de la figure 4 une première fois avec le demi-octet logique que constituent les 4 premiers bits de l'octet NRZ, et une seconde fois avec le demi-octet logique que consti- tuent les 4 derniers bits de l'octet NRZ. L'ordre est ici celui des poids croissants. L'unité centrale est ainsi largement déchargée: - en mode NRZ, elle fournit directement l'octet NRZ à l'UART; - en mode biphasé, elle fournit successivement les deux groupes de quatre bits de l'octet NRZ à la table, qui donne comme résultat les deux octets logiques biphasé. Le premier est appliqué à l'UART, puis, après un temps de retard, le second. Le temps de retard correspond au temps de décharge- ment série du registre d'émission 310 (Figure 1A). Pendant ce temps de retard, l'unité centrale peut assumer d'autres tâches. En fait l'unité centrale envoie le second octet logique biphasé lorsqu'elle reçoit de l'UART l'information "prêt à émettre" (interruption INTSTO). L'unité centrale fait donc une opération en mode NRZ. En mode biphasé, elle n'en fait que deux (interroger deux fois la table), chaque interrogation de la table étant couplée au chargement de la sortie de la table dans i'UART. En pratique, on peut de la sorte constituer une trame possédant par exemple sept mots de données "data 1" à "data 7", suivis d'un mot de CHECKSUM. L'ensemble est encadré de mots de synchronisation (voir figure 6A), qui jouent un rôle essentiel à la réception, comme on le verra plus loin. Bien qu'il soit envisageable de faire autrement, la Demande- resse considère actuellement comme très nettement préférable d'utiliser le mot de synchronisation FOh, c'est-à-dire la valeur F0 en hexadécimal. Pour des raisons que l'on comprendra plus loin, la demande- resse préfère également que le début d'un message ou d'une trame unique comprenne deux caractères de synchronisation successifs, comme illustré sur la figure 6B. Il en résulte alors que la première trame comporte ces deux caractères de synchronisation. Pour les trames suivantes, il QwYY 1 lm existe toujours deux caractères de synchronisation entre chaque trame, puisqu'il y a le caractère de synchronisation qui termine la trame précédente, et celui qui commence la trame en cours. Ceci est illustré sur la figure 6C. La figure 7 fait apparaitre le schéma de principe des fonctions réalisées dans l'unité de traitement 1 pour la mise en oeuvre de l'invention, avec deux sous-ensembles 21 et 22 du module de liaison, consacrés respectivement à l'émission et à la réception, ainsi que le convertisseur parallèle-série bi-directionnel ou UART 3. Tout ce qui est représenté dans les cadres 21 et 22 est logiciel, c'est à dire contenu dans des zones de mémoire à la disposition du microcontrôleur 1. Les zones mémoires 201 et 229 stockent comme variables le prochain message à émettre et le dernier message reçu, respectivement, en code binaire (par exemple NRZ). Il existe aussi un programme, puisque, par exemple, les commutateurs schématisés en 25 et 26 sont en fait des instructions de programme du type "IF.. ELSE.. ENDIF". En mode NRZ, les accès aux registres TxS0 et RxB0 de 1'UART 3 sont traités de manière connue. Cela est schématisé par les positions "NRZ" des commutateurs 25 et 26. L'émission et la réception sont distinguées, de façon connue, en gérant convenablement les accès par le bus 19 à i'UART (figure 1A). Par contre, l'invention s'intéresse au cas o les commuta- teurs 25 et 26 sont dans la position représentée, c'est-à- dire lorsqu'un transcodage NRZ vers biphasé ou l'inverse est requis. La partie 21 du module de liaison assure une conversion de NRZ vers biphasé. On suppose donc qu'un octet codé NRZ est contenu dans la variable mémoire 201. Une commande Clkl est émise lorsque l'UART indique que son registre d'émission 310 est vide. En réponse à Clkl, le premier bloc de 4 bits de l'octet est appliqué à la table TAB1, et le premier octet I -n X- logique en sortie de la table est chargé dans le tampon d'émission 310 (figure 1A) de l'UART 3, à travers le commuta- teur 25, qui est ici en position "biphasé". Lorsque le premier octet logique est transmis, en réponse à Clkl, les quatre derniers bits de l'octet NRZ sont appliqués de la même manière à TAB1. L'ensemble de ces deux octets logiques fournit en sortie un octet de code biphasé. En fait, au début, le générateur de mots de synchronisation 211 aura émis deux mots de synchronisation FOh pour la première trame, après quoi on place les deux octets de chaque bloc de données de la première trame, puis le bloc de contrôle ou "checksum", et le mot de synchronisation, conformément à la figure 6A. En pratique, l'action du générateur 211 est déclenchée par logiciel (voir figure 8: blocs 801,803, décrits ci-après). Le module 22 se charge de l'opération inverse à savoir la réception, dans laquelle arrive de l'extérieur vers la droite de l'UART 3 un octet biphasé, qu'il y a lieu de convertir en mode NRZ. Dans ce cas, le tampon parallèle de réception 320 de i'UART 3 fournit successivement deux octets logiques, qui sont appliqués successivement à une seconde table 220 ("TAB2"). Cette table sait tout d'abord réaliser le transco- dage inverse de celle de la figure 4, pour fournir un octet logique (constitué par la mémorisation des 4 premiers bits décodés et l'ajout des 4 bits suivants décodés par TAB2), valant le code NRZ qui correspond au code biphasé défini par les deux octets logiques reçus. En outre, des cases supplémentaires sont prévues dans la TAB2 pour reconnaître les mots de synchronisation FOh, ce qui est indiqué sur une sortie (un paramètre) séparé sur 1 bit (variable logique). Enfin, le tableau TAB2 ou 220 possède une autre sortie d'erreur sur un bit, qui est activée lorsque l'octet logique soumis à l'entrée ne correspond à aucune valeur de la table, ou viole la règle du codage biphasé. Tout cela est fourni à la zone mémoire de réception 229. Q -1 1W Des processus convenablement programmés sont mis en oeuvre dans l'unité de traitement du micro-contrôleur, pour réaliser par exemple les logigrammes des figures 8 et 9. De préféren- ce, la programmation est au moins partiellement événemen- tielle, afin de permettre un partage multi-tâches entre ces différents processus. En émission (figure 8), après l'étape de début 800, l'étape 801 consiste à envoyer un premier caractère de synchronisa- tion vers l'UART. Si on est en début de trame (802), on envoie une seconde impulsion de synchronisation (803) comme déjà indiqué. En 810 on effectue le traitement d'un octet courant. L'étape 811 consiste à adresser les 4 premiers bits de cet octet à la table TAB1, dont la sortie est chargée dans le registre 310 de l'UART. Dès réception de la fin d'émission, l'étape 812 consiste à adresser les 4 derniers bits de cet octet à la table TAB1, dont la sortie est chargée dans le registre 310 de l'UART. Si, en 813, on n'est pas en fin de trame, on retourne en 810 pour traiter l'octet suivant. Sinon, l'étape 820 ajoute une impulsion de synchronisation adressée à l'UART. S'il survient une autre trame, le test 825 assure la continuation du processus, en retournant au début de trame 802. Sinon, c'est la fin de l'émission en 829. Le caractère chargé dans le registre parallèle 310 est automatiquement transféré dans le registre série 311. Lorsque le registre parallèle 310 est vide, un signal "prêt à émettre" indique que l'on peut y charger un nouveau caractère à émettre. Par conséquent, le microcontrôleur dispose, pour charger un nouveau caractère dans le registre parallèle, du temps passé pour l'émission du caractère précédent depuis le registre série, de façon à ne pas interrompre le flux, ce qui est nécessaire pour respecter la forme d'onde biphasée au niveau de la trame. Si l'UART est cadencée à l'aide du registre BRGC0 pour fonctionner à 20 000 bauds environ ( en -'i lm fait 20833 bauds), le temps d'émission est de 500 microsecon- des par caractère, ce qui laisse assez de temps au microcon- trôleur pour assurer la continuité de l'émission en bi-phasé. Le mode réception apparaît sur la figure 9, et commence par un éveil de 1'UART en 900. Lorsque l'UART est en attente de réception (au sens début de l'acquisition d'un message), le premier front descendant qu'il reçoit déclenche la synchronisation de l'acquisition des bits. Cet éveil se produit normalement à réception d'un signal de synchronisation. Cependant, dans l'appareil décrit, i'UART de réception est souvent en mode veille, pour limiter la consommation. Il en découle que le premier front descen- dant ne sera pas forcément considéré comme valide. L'étape 901 surveille la réception de caractères un à un, suffisamment rapprochés (902). Tout caractère reçu (octet logique) est adressé au tableau TAB2, pour conversion du code biphasé en code NRZ (étape 903). Tant que le caractère reçu n'est pas un octet de synchronisa- tion, le test 904 boucle sur le test 901. A réception d'un caractère de synchronisation, l'étape 910 met un compteur de quartets à n = 0, avec ensuite des étapes 911, 912 et 913 identiques à 901, 902 et 903, sauf éventuel- lement le paramétrage, en particulier du délai. En 914, on teste si TAB2 ou une autre source a indiqué une erreur. Si oui, on recommence en 901. Sinon, on poursuit en 915 en testant (option) si le caractère en cours est le caractère de synchronisation. Si oui (er- reur), on retourne en 910. Sinon, l'étape 916 stocke 4 bits de l'octet NRZ et incrémente n. La suite 917 teste si le nombre de caractères attendu est atteint. Si oui, on retourne en 911. Sinon, on reprend des étapes 921, 922 et 923, à nouveau identiques à 901, 902 et 903, sauf éventuellement le paramétrage, en particulier du délai. Ceci est l'attente d'un nouveau caractère. Si, après transcodage, il s'avère en 924 que ce n'est pas un caractère de synchronisation, on retourne en 901. Dans le cas contrai- re, l'étape 930 est un traitement de trame, après quoi, en présence d'un autre caractère, on relance le délai en 931, et l'on retourne en 901. Sinon, c'est la fin normale (avec passage en émission si une réponse est demandée). Les sorties "oui" des tests 902, 912 et 922 sont des "fins sur erreur", correspondant en principe à un message interrom- pu anormalement. Les étapes 901 à 904 sont l'attente du caractère de synchro- nisation. Les étapes 910 à 924 reçoivent une trame de n/2 octets codés en biphasé, soit n octets logiques. Le bouclage en 931 permet une réception multi-trame. Les étapes 901, 911 et 921 sont conditionnées par l'état "octet reçu en réception" de i'UART, qui est un signal produit par l'UART lorsque son registre 321 est plein, et contient un tel octet (logique). L'octet reçu est alors stocké dans le registre parallèle, il est contrôlé, et des signaux d'erreur sont également stockés (erreur de parité, erreur sur le bit stop). Le registre série peut alors acquérir un nouveau caractère. Le microcontrôleur dispose donc de la durée de réception d'un caractère dans le registre 311 pour pouvoir lire le précédent dans le registre 310. On pourra maintenant mieux comprendre certains avantages importants du dispositif décrit. La Demanderesse a observé que le bit start commence par une transition vers le bas. Elle a également observé que, pour pouvoir se synchroniser correctement à la réception, il faut satisfaire le critère d'utiliser un caractère de synchronisa- tion qui ne présente qu'une transition vers le bas (start compris), du fait que l'UART démarre (ou se réveille, si elle 1t!- I 1 est en état de veille) sur une transition vers le bas. Dans ce cas, si l'acquisition d'un caractère a malencontreusement débuté avant l'apparition du caractère de synchronisation, la saisie sera resynchronisée sur le début du caractère suivant, et l'erreur ne sera pas perpétuée. Parmi les 256 paires d'octets logiques possibles, seuls huit (8) satisfont ledit critère, à savoir, en hexadécimal: FFh, FEh, FCh, F8h, FOh, EOh, COh, 80h, 00h. Parmi ces 8 caractè- res, seul F0h possède l'allure d'un signal biphasé, avec la propriété d'avoir une composante moyenne constante et établie le plus rapidement possible (par exemple lorsqu'on utilise une boucle à verrouillage de phase pour la réception d'un signal en modulation de fréquence ou de phase). De plus, s'il est mal acquis, le caractère FOh va générer soit une erreur de stop, soit une erreur dans la table de décodage. Ceci résout le problème de la resynchronisation éventuelle. Mais on se heurte alors à un autre problème, qui est de déterminer le début de la trame. La Demanderesse a observé qu'il vaut mieux utiliser un caractère qui est différent des caractères de " données > de la table de la figure 4. Seul le caractère de synchronisation vérifie l'ensemble des critères. Bien que, là aussi, il soit envisageable de faire autrement, la Demanderesse considère actuellement comme très nettement préférable de définir le début de trame par une suite de deux caractères de synchronisation FOh. Il reste encore à trouver la fin de trame. La solution habituelle consiste à compter les caractères reçus dans un temps donné, vérifier que le message appartient bien au système (vérification du N de système), vérifier la somme de contrôle ("cheksum"), puis décider ce qu'il faut en faire. Or, tout ceci doit être fait pendant la durée corres- pondant à la réception d'un caractère (ici, 500 microsecon- des). Il en résulte une charge de calcul critique pour le microcontrôleur. La Demanderesse préfère donc prévoir un caractère de fin de trame, compter simplement les caractères reçus entre le début et la fin de la trame. Ceci permet aussi de prévoir un contrôle de temps plus lâche. Par ailleurs, des morceaux de caractères peuvent manquer, si la liaison radio est perturbée. De plus, de façon générale, l'acquisition d'un caractère qui débute sur un front descen- dant aura tendance à se faire avec un léger retard. Il en résulte un "glissement", qui va fausser l'acquisition de tous les caractères. L'erreur peut être détectée par le contrôle du code biphasé et/ou d'après le nombre de caractères qui apparaissent entre deux codes de synchronisation, si le décalage est supérieur à 1 caractère. Par contre, si le décalage est inférieur à un caractère, il pourra arriver que le caractère de synchronisation soit indûment pris en compte dans le dernier caractère biphasé de la trame. Ceci aura pour conséquence soit de générer une erreur sur le bit de stop, qui est vu à "0", soit de générer une erreur de code biphasé, vu par TAB2. Et, en mode multitrame, le caractère de synchro- nisation du début de la seconde trame ne pourra pas être confondu avec le caractère de synchronisation de fin de la première trame. Ainsi, on a pratiquement détecté toutes les erreurs sans faire de calcul. De plus, en mettant un caractère de synchro- nisation en fin de trame, on ouvre la porte aux messages multitrames. Comme indiqué ci-dessus, en réception, l'unité centrale va simplement compter les caractères et vérifier la trame dans son intégralité au moyen de la somme de contrôle (CHECKSUM), dite aussi multiplet de contrôle. On notera que, si l'UART se perd au milieu d'une trame, il pourra par contre se synchroniser correctement sur la suivante, puisque celle-ci démarre elle aussi sur deux mots de synchronisation. De préférence, la relation microprocesseur/UART se fait par interruption. On sait qu'une interruption, si elle est autorisée, interrompt le programme en cours, exécute le morceau de programme qui lui est attribué, puis lorsqu'elle a fini, retourne au programme qu'elle a interrompu. Le programme ou morceau de programme qui est exécuté à chaque fois que la même interruption est actionnée peut être modifié dynamiquement. Tous les signaux, dont on a parlé précédemment (caractère reçu, tampon parallèle de sortie vide, erreur sur bit stop) peuvent être reliés à des interruptions différentes. Ceci veut dire, en émission, que tant qu'un caractère à trans- mettre n'est pas demandé, il n'y a rien à faire. De même en réception tant qu'il n'y a pas de caractère reçu, il n'y a rien à faire. Ce temps libre peut être occupé par le micro- contrôleur à faire autre chose. La programmation dynamique des interruptions revient à dire que les organigrammes tels qu'ils sont représentés, sont découpés en phases et que chaque phase est déclenchée par une interruption. La gestion des délais se fait de même, avec, dans le microcontrôleur des compteurs ("Timers") qui vont générer des interruptions s'ils ne sont pas arrêtés avant un temps programmé. Tout ceci fait que lorsqu'on a lancé un processus, tous les temps morts sont disponibles pour faire autre chose. L'UART ainsi utilisée offre deux avantages: - on soutient aisément le débit requis, et - le microcontrôleur peut travailler en multitâches. Il n'a aucun besoin de faire un traitement synchrone entre la sérialisation et le parallélisme; il lui suffit de respecter un temps maximum qui est la durée de transmission ou de réception d'un caractère. L'invention est susceptible de différentes variantes. On peut par exemple traiter des longueurs de trame variables, en mettant dans la trame le nombre de caractères qu'elle contient. Revendications 1. Dispositif formant poste transmetteur, comprenant une unité de traitement (1), apte à charger des signaux numéri- ques en codage de type NRZ sur l'accès aller d'un convertis- seur parallèle-série (3), et des moyens d'adaptation (2), assortis d'un commutateur (4), aptes à relier le convertis- seur parallèle-série, par sa sortie aller, soit à au moins un périphérique opérant en mode NRZ (51,52), soit à un périphé- rique opérant en codage biphasé, avec transcodage des signaux numériques de NRZ en biphasé, caractérisé en ce que les moyens d'adaptation (2) compren- nent, dans l'unité de traitement, un module de liaison (21) muni d'une première table (210), propre à faire correspondre à tout multiplet de n bits logiques en code NRZ, deux groupes de n bits logiques formant le même multiplet en code biphasé, en ce que ce module de liaison possède, non seulement son premier mode (NRZ) dans lequel il assure directement le chargement des signaux numériques en codage de type NRZ sur l'accès aller (310) du convertisseur parallèle-série (3), mais aussi un second mode (biphasé) dans lequel il applique les signaux numériques en codage de type NRZ à l'entrée de ladite première table, dont la sortie est chargée sur l'accès aller (310) du convertisseur parallèle-série (3), et en ce que l'unité de traitement est agencée pour piloter conjointement la mise en fonction du périphérique opérant en codage biphasé avec des paramètres de travail choisis, le passage du module de liaison (21) en mode biphasé, et le basculement de la sortie du commutateur (4) vers ledit périphérique opérant en codage biphasé. 2.Dispositif selon la revendication 1, caractérisé en ce que le périphérique opérant en codage biphasé est un émetteur radioélectrique (60). 3.Dispositif selon l'une des revendications 1 et 2, caracté- risé en ce que le module de liaison (21) encadre en outre une suite de multiplets par des caractères de synchronisation, pour former une trame. 4.Dispositif selon la revendication 3, caractérisé en ce que la trame de tête commence par deux caractères de synchroni- sation. 5.Dispositif selon l'une des revendications 3 et 4, caracté- risé en ce que chaque trame comprend un multiplet de contrô- le. 6.Dispositif selon l'une des revendications précédentes, dans lequel le convertisseur parallèle-série (3) est bi-direction- nel, caractérisé en ce que le module de liaison (21, 22) est également bi-directionnel, avec: - un premier mode retour (NRZ) dans lequel il fournit directement la sortie retour (320) du convertisseur paral- lèle-série (3) à l'unité de traitement, et - un second mode retour (biphasé), o il fournit la sortie retour (320) du convertisseur parallèle-série (3) comme entrée dans une seconde table (220), formant table réciproque de la première (210). 7. Dispositif selon la revendication 6, caractérisé en ce que la seconde table (220) comporte une sortie indicative d'une erreur sur le codage biphasé. 8. Dispositif selon l'une des revendications 6 et 7, prise en combinaison avec la revendication 3, caractérisé en ce que la seconde table (220) comporte une case (FOh) et une autre sortie supplémentaire, indicative d'un multiplet de synchro- nisation. 9. Dispositif selon l'une des revendications précédentes, caractérisé en ce qu'il est muni d'un mode de veille, le convertisseur parallèle-série (3) ne fonctionnant que de façon intermittente, en particulier en réception. 10. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les multiplets sont des octets. U1 11 m