FR 2591834 A1 19870619 FR 8518466 A 19851213 2591.834 - 1 - "PROCEDE DE DECODAGE DE DONNEES RADIODIFFUSEES ET DISPOSITIF DE MISE EN OEUVRE". La présente invention concerne un procédé de décodage de données radiodiffusées, codées le long d'une voie de données structurée en bande de-base dont l'élément le plus grand est un groupe contenant N blocs, chaque bloc étant constitué d'un mot d'information de ni bits et d'un mot de contrôle de n2 bits, procédé qui consiste, dans une première étape, à synchroniser la voie de données en rajoutant volontairement au mot de contrôle de chaque bloc un mot connu de n2 bits, appelé mot de comparaison qui dépend du type et de la position du bloc dans la voie de données, puis en recherchant le mot de comparaison par le calcul du syndrome d'un mot de (ni + n2) bits, ceci chaque bit reçu jusqu'à identification du syndrome calculé à un des mots de comparaison connus contenus dans un registre de comparaison, et, dans une deuxième étape, à exploiter les blocs après identification, d'abord, en détectant et en corrigeant des erreurs éventuelles de synchronisation et de transmission sur les blocs, puis à traiter les blocs eux-même. L'invention concerne également un dispositif de mise en oeuvre du procédé de décodage conforme au préambule, comportant un récepteur radio et un microprocesseur de contrôle du récepteur radio. L'invention trouve une application particulièrement avantageuse dans le domaine des systèmes de radiodiffusion de données, notamment dans la bande FM. De tels systèmes, comme le système connu sous le nom de RDS (Radio Data System) permettent d'insérer è l'insu de l'auditeur des données servant, en particulier, à accorder le récepteur radio et à identifier le programme de radiodiffusion sonore monophonique ou stéréophonique. Ils permettent également, pour des récepteurs munis d'un écran de visualisation de faire -2 - apparaître le nom et le genre du programme sur lequel le récepteur est accordé, l'identification du décodeur, un radiotexte, etc..., ainsi que d'autres informations s'appliquant plus particulièrement aux automobilistes possédant un autoradio, comme les annonces routières. L'Union Européenne de Radiodiffusion (UER) a publié (Tech. 3244-F, Mars 1984) des spécifications du système RDS pour la diffusion de données en radio à modulation de fréquence et le préambule est conforme aux exigences imposées par l'UER. L'invention a pour but de répondre è ces spécifications et de proposer un procédé de traitement des informations radiodiffusées permettant, d'une part, de pouvoir corriger certaines erreurs, comme celles de synchronisation et de transmission, et, d'autre part, de n'exiger qu'une unité de traitement d'encombrement réduit et universelle pouvant s'adapter à tout microprocesseur de contrôle de récepteur radio. En effet, selon la présente invention, un procédé de données radiodiffusées du type de celui mentionné dans le préambule, est notamment remarquable en ce que l'étape de synchronisation comporte une phase d'initialisation au cours de laquelle le syndrome du mot constitué par les (ni + n2) premiers bits reçus est calculé par fraction de (1/(nl + n2))ième à chaque coup d'horloge jusqu'à ce qu'un compteur principal ait compté (ni + n2) bits, le syndrome complet ainsi obtenu étant ensuite comparé aux mots de comparaison connus de sorte que, si le syndrome calculé n'est pas reconnu, une phase itérative permet de calculer à chaque nouveau bit reçu le syndrome correspondant au nouveau mot constitué, et ceci à partir du syndrome du mot précédent, jusqu'à ce qu'un compteur secondaire ait compté Y bits, et de contrôler ce nouveau syndrome de façon à revenir à la phase d'initialisation précédente dès que le compteur secondaire a compté Y bits et que ledit syndrome n'a pas été reconnu, tandis que si le syndrome calculé à l'issue de la phase d'initialisation ou de la phase itérative est reconnu comme étant identique à un mot 259'1834 _3- de comparaison, le mot de comparaison "syndrome prévu sur le bloc suivant" est positionné en vue de réaliser une phase de contrôle par prépositionnement au cours de laquelle le syndrome du bloc suivant est calculé d'une manière identique à celle de la phase d'initialisation et comparé au syndrome prévu prépositionné de sorte que si ces deux syndromes sont différents, on détecte une situation d'erreur dans la voie avec retour à la phase d'initialisation, tandis que s'ils sont égaux, on confirme la bonne synchronisation de la voie, et qu'est engagée I'étape d'exploitation. Un des avantages de l'invention est donc de pouvoir calculer au fur et à mesure, par fraction de l/(nl+n2)ième, le syndrome du mot de nl+n2 bits, au lieu d'attendre d'avoir reçu tous les nl+n2 premiers bits pour ensuite calculer le syndrome en une seule fois, ce qui est moins rapide et nécessite une mémoire à accès aléatoire plus importante. Un autre avantage de l'invention est qu'elle permet de détecter et de corriger aisément les erreurs, notamment les erreurs de transmission qui se produisent, en particulier, lors de la réception à l'intérieur d'un véhicule, comme par exemple une automobile équipée d'un autoradio lorsqu'elle passe sous un pont. Dans ce but, il est prévu que l'étape d'exploitation débute par un contrôle de synchronisation qui consiste, afin d'identifier le bloc suivant à traiter, à positionner sur des valeurs remarquables du compteur principal (0, nl+n2, 2(nl+n2),...) le mot de comparaison "syndrome prévu sur le bloc suivant" puis à appliquer le traitement de contrôle par prépositionnement à l'issue duquel le résultat de la comparaison entre le syndrome calculé et le syndrome prévu est conservé dans un registre d'erreur dont une valeur non nulle conduit à une phase de correction d'erreur sur la synchronisation, de correction d'erreur de transmission et d'envoi d'un mot d'état sur un bus externe, tandis qu'une valeur nulle du registre d'erreur conduit au traitement du bloc qui consiste à composer le mot -4- d'état, comprenant le message, le type du bloc, un argument de synchronisation, des arguments de correction d'erreur, et, ensuite, à envoyer le mot d'état sur un bus externe. Les spécifications publiées par l'Union Européenne de Radiodiffusion concernant le système RDS prévoient que le mot d'information du premier bloc du groupe reste toujours le même dans la bande de base. L'invention tire parti de cette disposition particulière afin de détecter et de corriger un éventuel glissement de + i bit qui pourrait survenir à l'intérieur d'un groupe. C'est pourquoi, on envisage que, selon l'invention, le premier bloc étant identique le long de la voie de données, l'étape d'exploitation comporte également une phase de recherche et de correction de l'erreur de glissement de bits qui consiste à sauvegarder le premier bloc dès qu'il est reçu sans erreur et à effectuer la détection de l'erreur de glissement sur le premier bloc de chaque groupe, et en ce que le deuxième bloc est redressé de façon à rendre le groupe exploitable. Le procédé de décodage selon l'invention présente la caractéristique avantageuse de ne pas nécessiter de moyens de traitement importants notamment en ce qui concerne l'espace mémoire, ce qui permet de prévoir qu'un dispositif de mise en oeuvre du procédé de décodage selon l'invention, comportant un récepteur radio et un microprocesseur de contrôle du récepteur radio, est remarquable en ce qu'il comporte également un décodeur universel constitué, d'une part, d'un composant de démodulation et de régénération d'horloge dont l'entrée est reliée à la sortie multiplex du récepteur-radio, et, d'autre part, d'un microprocesseur de traitement des données radiodiffusées dont la sortie est reliée audit microprocesseur de contrôle du récepteur radio. La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. - La figure 1 montre la structure de base de la voie de données. La figure 2 est un bloc-diagramme d'un procédé de décodage selon l'invention. La figure 3 montre comment est calculé le syndrome d'un mot de la voie de données. La figure 4 illustre la détection et la correction d'une erreur de glissement. La figure 5 est le schéma d'un dispositif-de O10 mise en oeuvre du procédé de décodage selon l'invention. La figure 2 donne un bloc-diagramme d'un procédé de décodage de données radiodiffusées, codées le long d'une voie de données structurée en bande de base dont l'élément le plus grand est, comme le montre la figure 1, un groupe comprenant, par exemple, N=4 blocs. Chaque bloc J (J =i 1 4) est constitué d'un mot d'information M3 de nl bits et un mot de contrôle CJ de n2 bits. Les recommandations de l'Union Européenne de Radiodiffusion concernant le système RDS préconisent un mot d'information de 16 bits et un mot de contrôle de 10 bits; un bloc ayant par conséquent nl+n2 = 26 bits. Le procédé de décodage montré à la figure 2, consiste, dans une première étape, à synchroniser la voie de données en rajoutant volontairement au mot de contrôle CJ de chaque bloc J, un mot connu de n2 bits, dit mot de comparaison Sc(J), qui dépend du type et de la position du bloc J dans la voie de données, puis en recherchant ce mot de comparaison sc(J)par le calcul du syndrome Sk d'un mot de (nl+n2) bits. Comme l'indique la figure 3, on appelle ici syndrome un mot de n2 bits calculé à partir d'un mot de (nl+n2) bits par l'intermédiaire d'une matrice H de dimension (nl+n2)xn2, appelée matrice de contrôle de parité, dont un exemple relatif au système RDS est donné dans les spécifications techniques Tech. 3244 F de l'Union Européenne de Radiodiffusion, à la page 37. La figure 3 montre, plus précisément, le calcul du syndrome S(J) d'un bloc complet J. Le calcul du syndrome Sk est réalisé à chaque bit reçu jusqu'à identification du -6 - syndrome calculé à un des mots de comparaison connus Sc(j) contenus dans un registre de comparaison Rc. Dans une deuxibme étape, ledit procédé de décodage consiste à exploiter les blocs J après identification, d'abord en détectant et en corrigeant des erreurs de synchronisation et de transmission sur lesdits blocs, puis à traiter les blocs eux-même de façon à transmettre les informations utiles dans un bus. Ainsi qu'on peut le voir à la figure 2, l'étape de synchronisation comporte une phase d'initialisation au cours de laquelle est calculé le syndrome Si du mot constitué par les (nl+n2) premiers bits reçus. Afin de limiter le temps de calcul et l'espace-mémoire nécessaire, le syndrome Si est caleulé par fraction de (i/(nl+n2))ibme à chaque coup d'horloge jusqu'à ce qu'un compteur principal ait compté (nl+n2) bits, par exemple par décrémentation, au lieu d'attendre d'avoir reçu tous les (nl+n2) bits avant de calculer le syndrome Si en une fois. Ce syndrome Si ainsi obtenu est ensuite comparé aux mots de comparaison connus Sc(J) du registre de comparaison Rc, de sorte que si le syndrome S1 n'est pas reconnu, une phase itérative permet de calculer à chaque nouveau bit reçu bnl+n2+k le syndrome Sk correspondant au nouveau mot de (nl+n2) bits constitué, et ceci à partir du syndrome SkI du mot précédent, jusqu'à ce qu'un compteur secondaire ait compté Y bits. Dans un mode particulier de réalisation de l'invention le compteur secondaire se décrémente à partir de Y; Y valant (nli+n2-1) + p (nl+n2) avec p entier. Le nouveau syndrome ainsi calculé est ensuite contrôlé de façon à revenir à la phase d'initialisation précédente dès que le compteur secondaire a compté Y bits et que ledit syndrome n'a pas été reconnu. Par contre, si le syndrome calculé à l'issue de la phase d'initialisation (S1) ou de la phase itérative (Sk) est reconnu comme étant identique à un mot de comparaison Sc(j), le mot de comparaison Sc(J+l) "syndrome prévu sur le bloc J+1 suivant" est positionné en vue de réaliser une phase de contrôle par prépositionnement. Lors de cette phase de contrôle par prépositionnement, le syndrome 5(J+1) du bloc - 7 - J+l suivant est calculé d'une manière identique à celle de la phase d'initialisation, c'est à dire par fraction, et comparé au syndrome prévu prépositionné Sc(J+1) de sorte que, si ces deux syndromes sont différents, on détecte une situation d'erreur dans la voie de données avec retour à la phase d'initialisation, tandis que s'ils sont égaux, on confirme la bonne synchronisation de la voie, et qu'est engagée l'étape d'exploitation. Dans le cas, représenté à la figure 2, o l'on exige que deux blocs consécutifs soient reconnus sans erreur pour que la synchronisation soit validée, l'étape d'exploitation débute par un contrôle de synchronisation qui consiste, afin d'identifier le bloc suivant 3+2 à traiter, à positionner sur-des valeurs remarquables du compteur principal O, nl+n2, 2(nl+n2),... le mot de comparaison Sc(J+2) "syndrome prévu sur le bloc suivant". On applique ensuite le traitement de contrôle par prépositionnement précédent à l'issue duquel le résultat de la comparaison entre le syndrome S(3+2), calculé également par fraction, et le syndrome prévu sc(J+2) est conservé dans un registre d'erreur x dont une valeur non nulle conduit à une phase de correction d'erreur sur la synchronisation de correction d'erreur de transmission et d'envoi d'un mot d'état sur un bus externe, tandis qu'une valeur nulle du registre d'erreur conduit au traitement du bloc qui consiste à composer le mot d'état, comprenant le message, le type du bloc, un argument de synchronisation, des arguments de correction d'erreur, et, ensuite à envoyer le mot d'état sur un bus externe. Ce traitement du bloc a lieu, ainsi que le comptage des erreurs, au sein d'une unité dite de traitement d'erreur ERR. Les arguments de correction d'erreur contenus dans le mot d'état sont, d'une part, le type de l'erreur, à savoir absence d'erreur, erreur non corrigeable, erreur corrigeable simple, erreur corrigeable double, d'autre part, la nature du glissement de bits lorsqu'il se produit, et enfin, l'état du registre d'erreur x. On entend par glissement de bits le fait pour un bloc de se trouver décalé par rapport - 8- à sa position nominale dans la voie de données. Conformément à la figure 2, l'accrochage de synchronisation est réalisé au bout de n blocs, ici n = 2, reçus sans erreur et la synchronisation est rejetée lorsque le compteur d'erreurs x atteint une valeur X. Dans ce cas, le retour à la phase d'initialisation de la synchronisation se produit. La valeur X est choisie sur le terrain en fonction des conditions de réception des données radiodiffusées et, d'une façon générale, X sera d'autant plus grande que le nombre n exigé de blocs reçus sans erreur sera grand. Par exemple, si les conditions de réception sont mauvaises, on accrochera la synchronisation sur un seul bloc reçu sans erreur et on la rejettera pour X petit, de l'ordre de 4, par contre, si les conditions de réception sont bonnes, on pourra accrocher la synchronisation sur deux blocs reçus sans erreur et on la rejettera par X grand, de 16 à 64 par exemple. La façon dont le registre d'erreurs x est incrémenté dépend de la stratégie adoptée. Une stratégie possible est d'incrémenter de 1 le registre d'erreurs à chaque erreur non corrigeab]e et de le remettre à O sur une erreur corrigeable ainsi qu'en cas d'absence d'erreur; en d'autres termes, le retour à phase d'initialisation de synchronisation n'a lieu, dans cette stratégie, que lorsque le registre d'erreur a compté X erreurs non corrigeables consécutives. Enfin, il est prévu que, le premier bloc étant toujours identique à luimême le long de la voie de données, l'étape d'exploitation comporte également une phase de recherche et de correction de l'erreur de glissement de bits qui consiste à sauvegarder le premier bloc dès qu'il est reçu sans erreur et, ensuite, à effectuer la détection de l'erreur de glissement sur le premier bloc de chaque groupe. La détection du glissement de bits met donc à profit le fait que le premier bloc est identique pour tous les groupes de la voie, et donc qu'il peut servir de référence à partir du moment o il a été reçu sans erreur une première fois et sauvegardé. Comme le montre la figure 4, la détection d'erreur 9de glissement est réalisé en décalant un bloc 1 (M1 C1) soit d'un bit vers la gauche, soit d'un bit vers la droite, puis d'additionner modulo 2 ce bloc 1 ainsi décalé au bloc 1 de référence (M1R C1R). Si le résultat de l'addition est 0 alors il y a glissement d'un bit respectivement vers la droite ou vers la gauche. A cause des délais de calcul, la détection du glissement se fait lorsque le deuxième bloc (M2 C2) est en cours de traitement, or le système RDS est tel que si le deuxième bloc est perdu le groupe correspondant est perdu dans son ensemble. Aussi, il est prévu que le deuxième bloc est redressé de façon à rendre le groupe exploitable. Le redressement du bloc 2 se fait par un calcul: s'il commence un bit trop tôt, on ne tient pas compte du premier bit mais on prolonge le caleul un bit de plus et on décale en conséquence la matrice H de contrôle de parité. Le procédé de décodage selon l'invention nécessite pour sa mise en oeuvre des moyens relativement limités, du fait qu'il n'exige que peu d'espacemémoire. D'o un microprocesseur 14 de petite taille qui peut être facilement intégré, ainsi que le montre la figure 5, avec un régénérateur d'horloge 12 et un démodulateur 13 au sein d'un seul composant 11 de petite dimension. I1 faut souligner que ce composant 11 a un caractère universel puisqu'il lui suffit de recevoir le signal multiplex tel qu'il est fourni par tout récepteur radiophonique et qu'il délivre en sortie, d'une façon très générale, les mots d'état contenus dans la voie de données, sans aucun traitement d'utilisation particulier. La sortie du composant 11 pourra donc être reliée à toute unité de traitement quelconque tel que celle du système RDS. C'est cette dernière application qu'illustre la figure 5 montrant un dispositif de mise en oeuvre du procédé de codage selon l'invention comportant un récepteur radio 21 et un microprocesseur 22 de contrôle du récepteur radio 21. Le dispositif de la figure 5 comporte également un décodeur 11 universel constitué, d'une part, d'un composant de démodulation 13 et de régénération d'horloge 12, dont l'entrée - 10 - est reliée à la sortie multiplex du récepteur radio 21, et, d'autre part, d'un microprocesseur 14 de traitement des données radiodiffusées dont la sortie est reliée audit microprocesseur 22 de contrôle du récepteur radio, par l'intermédiaire d'un bus de données délivrant des informations de synchronisation, de détection-correction d'erreurs liées aux blocs et ceci à chaque bloc reçu conférant ainsi à l'ensemble 11 son caractère universel. - 1l - REVENDICATIONS: 1. Procédé de décodage de données radiodiffusées, codées le long d'une voie de données structurée en bande de base dont l'élément le plus grand est un groupe contenant N blocs, chaque bloc (J) étant constitué d'un mot d'information (MJ) de nl bits et d'un mot de contrôle (CJ) de n2 bits, procédé qui consiste, dans une première étape, à synchroniser la voie de données en rajoutant volontairement au mot de contrôle (CJ) de chaque bloc (3) un mot connu de n2 bits, appelé mot de comparaison (5c(J)), qui dépend du type et de la position du bloc (J) dans la voie de donnéles, puis en recherchant le mot de comparaison (Sc(J)) par le calcul du syndrome (5k) d'un mot de (nl+n2) bits, ceci à chaque bit reçu jusqu'à identification du syndrome calculé (Sk) à un des mots de comparaison connus (Sc(J)) contenus dans un registre de comparaison (Rc), et, dans une deuxième étape, à exploiter les blocs après identification, d'abord, en détectant et en corrigeant des erreurs éventuelles de synchronisation et de transmission sur les blocs, puis à traiter les blocs eux-même, caractérisé en ce que l'étape de synchronisation comporte une phase d'initialisation au cours de laquelle le syndrome (S1) du mot constitué par les (nl+n2) premiers bits reçus est calculé par fraction (si) de (l/(nl+n2))ième à chaque coup d'horloge jusqu'à ce qu'un compteur principal ait compté (ni+n2) bits, le syndrome complet (51) ainsi obtenu étant ensuite comparé aux mots de comparaison (Sc(J)) connus de sorte que, si le syndrome calculé (S1) n'est pas reconnu, une phase itérative permet de calculer à chaque nouveau bit reçu (bnl+n2+k) le syndrome Sk correspondant au nouveau mot constitué, et ceci à partir du syndrome Sk-1 du mot précedent, jusqu'à ce qu'un compteur secondaire ait compté Y bits, et de contrôler ce nouveau syndrome de façon à revenir à la phase d'initialisation précédente dès que le compteur secondaire a compté Y bits et que ledit syndrome n'a pas été reconnu, tandis que si le syndrome calcule à l'issue de la phase d'initialisation ou de la phase itérative est reconnu comme - 12 - étant identique à un mot de comparaison (Sc(J)), le mot de comparaison (Sc(J+l)) "syndrome prévu sur le bloc suivant" est positionné en vue de réaliser une phase de contrôle par prépositionnement au cours de laquelle le syndrome du bloc suivant (S(J+1)) est calculé d'une manière identique à celle de la phase d'initialisation et comparé au syndrome prévu prépositionné (sc(J+l)) de sorte que si ces deux syndromes sont différents, on détecte une situation d'erreur dans la voie avec retour à la phase d'initialisation, tandis que s'ils sont égaux, on confirme la bonne synchronisation de la voie, et qu'est engagée l'étape d'exploitation. 2. Procédé de décodage selon la revendication 1, caractérisé en ce que l'étape d'exploitation débute par un contrôle de synchronisation qui consiste, afin d'identifier le bloc suivant (J+2) à traiter, à positionner sur des valeurs remarquables du compteur principal (O,nl+n2, 2(nl+n2),...) le mot de comparaison (Sc(3+2)) "syndrome prévu sur le bloc suivant", puis à appliquer le traitement de contrôle par prépositionnement à l'issue duquel le résultat de la comparaison entre le syndrome calculé (5(3+2)) et le syndrome prévu (Sc(J+2)) est conservé dans un registre d'erreurs (x) dont une valeur non nulle conduit à une phase de correction d'erreur sur la synchronisation, de correction d'erreur de transmission et d'envoi d'un mot d'état sur un bus externe, tandis qu'une valeur nulle du registre d'erreur conduit au traitement du bloc qui consiste à composer le mot d'état, comprenant le message, le type du bloc, un argument de synchronisation, des arguments de correction d'erreur, et, ensuite, à envoyer le mot d'état sur un bus externe. Procédé de décodage selon la revendication 2, caractérisé en ce que les arguments de correction d'erreur sont, d'une part, le type de l'erreur, à savoir, absence d'erreur, erreur non corrigeable, erreur corrigeable simple, erreur corrigeable double, d'autre part, la nature du glissement de bits s'il y a lieu, et enfin, l'état du registre d'erreurs (x). - 13 - 4. Procédé de décodage selon la revendication 3, caractérisé en ce que l'accrochage de synchronisation est réalisé au bout de n blocs reçus sans erreur et en ce que la synchronisation est rejetée lorsque le registre d'erreurs (x) atteint une valeur X, X étant d'autant plus grande que n est grand. 5. Procédé de décodage selon la revendication 4, caractérisé en ce que le registre d'erreurs (x) est incrémenté de 1 à chaque erreur non corrigeable et est remis à 0 sur une erreur corrigeable ainsi qu'en cas d'absence d'erreur. 6. Procédé de décodage selon l'une des revendications 2 à 5, caractérisé en ce que, le premier bloc étant identique le long de la voie de données, l'étape d'exploitation comporte également une phase de recherche et de correction d'erreur de glissement de bits qui consiste à sauvegarder le premier bloc dês qu'il est reçu sans erreur et à effectuer la détection de l'erreur de glissement sur le premier bloc de chaque groupe, et en ce que le deuxième bloc est redressé de façon à rendre le groupe exploitable. 7. Dispositif de mise en oeuvre du procédé de décodage selon l'une des revendications 1 à 6, comportant un récepteur radio (21) et un microprocesseur (22) de contrôle du récepteur radio, caractérisé en ce qu'il comporte également un décodeur (11) universel constitué, d'une part, d'un composant de démodulation (13) et de régénération d'horloge (12) dont l'entrée est reliée à la sortie multiplex du récepteur-radio (21), et, d'autre part, d'un microprocesseur (14) de traitement des données radiodiffusées dont la sortie est reliée audit microprocesseur (22) de contrôle du récepteur radio.