FR 2683964 A1 19930521 FR 9113980 A 19911114 La présente invention concerne les systèmes de téléphone numériques cellulaires utilisant le procédé d'accès multiplex à divison de temps (TDMA), par exemple le procédé GSM. Dans ces systèmes, trois fonctions principales doivent être assurées pour le traitement de la bande de base. 1 Le codage/décodage de la parole; 2 Le codage/décodage de canal (codage CRC/ parité, codage de convolution, interlaçage, désinterla- çage, décodage de Viterbi, contrôle de parité/CRC); 3 Modulateur/démodulateur, modem. Actuellement, ces fonctions sont mises en oeuvre dans trois blocs fonctionnels séparés. En raison du procédé d'accès multiplex à divi- sion de temps (TDMA), le rapport de temps de fonctionne- ment de certains de ces blocs est très faible. Par exemple, le modulateur qui est un organe dont la tâche n'est pas divisible est mis en oeuvre avec un opérateur dédié activé pour une période de temps constante. Dans le système GSM, la valeur maximale de ce rapport pour le modulateur est de 12,5 %, mais globalement elle est inférieure à 0,2 %. Dans les réalisations actuelles, les ressources en circuiterie nécessaires pour cet opérateur ne peuvent être réutilisées pour exécuter d'autres tâches pendant les périodes d'inactivité. Cet opérateur de modulateur numérique est habituellement mis en oeuvre à l'intérieur de parties linéaires, proches des convertisseurs et nécessite une technologie numérique/linéaire mixte qui est pénalisante pour la partie numérique. L'invention se propose de remédier à ces in- convénients en créant un modulateur/démodulateur dont la construction ne compromette pas le fonctionnement de circuits numériques auxquels il serait associé. Elle a donc pour objet un modulateur numérique, caractérisé en ce qu'il comporte un processeur périphéri- que programmable assurant avec les mêmes circuits, la fonction de modulation, ainsi que des tâches de codeur/dé- codeur de canal. Un tel agencement permet une utilisation opti- male des ressources en circuits et améliore de ce fait le rendement du silicium entrant dans la construction des circuits intégrés correspondants. L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés, sur lesquels: la Fig 1 représente le schéma synoptique d'un terminal du type à accès multiplex, à division de temps; la Fig 2 représente le schéma synoptique d'un modulateur numérique connu; la Fig 3 représente le schéma synoptique du processeur associé suivant l'invention au modulateur de la Fig 2; la Fig 4 est un schéma synoptique d'une variante de réalisation d'un circuit de convolution à N états; la Fig 5 est un schéma de la structure géné- rale du filtre entrant dans la construction du modulateur suivant l'invention; la Fig 6 est un schéma détaillé d'un modula- teur GMSK; la Fig 7 est un diagramme représentant un treillis commencé avec une phase remise à zéro; la Fig 8 représente une constellation de phase GMSK; et la Fig 9 représente un treillis de phase GMSK. Le terminal du type à accès multiplex, à divi- sion de temps représenté à la Fig l comporte un vocodeur 1 recevant un signal audio sur une entrée 2 et délivrant un signal audio sur une sortie 3. Le vocodeur 1 est par exemple du type RPE LTP 13 KBT/S du G Sm. Il est relié à un codeur-décodeur 4 dont une sortie est reliée à un modulateur 5 délivrant à ses sorties des signaux I et Q vers un circuit linéaire et dont une entrée est reliée à un démodulateur 6 dont les entrées reçoivent des signaux I et Q en provenance du circuit linéaire. Le codeur-décodeur 4 est par exemple à manipu- lation de bit avec codage de convolution et décodage de Viterbi. Le modulateur 5 est réalisé à base d'une ROM tandis que le démodulateur 6 comporte un processeur de type complexe à mots courts. Les circuits 1,4 et 6 sont connectés à un circuit de commande 7 qui comporte également une sortie de communication avec une application extérieure. Le modulateur 5 représenté plus en détail à la Fig 2, comporte principalement un registre à décalage à trois étages 8 dont l'entrée reçoit des données binaires du codeur-décodeur 4 (Fig 1) et qui comporte une sortie reliée à un compteur 9 d'état de phase A. Un compteur 10 modulo 4, reçoit des signaux d'entrée d'une horloge d'échantillonnage Le registre à décalage 8 délivre sur une seconde sortie des signaux à 3 bits. Le compteur d'état de + 9 délivre à sa sortie des signaux de 2 bits. Le compteur 10 modulo 4 délivre à sa sortie des signaux de 2 bits Les sorties à 3 et 2 bits, des trois circuits précités sont connectées à des entrées correspon- dantes d'un décodeur à 7 bits 11. La sortie du décodeur 11 est reliée à une mémoire 12 de formes d'ondes codées subdivisée en une mémoire ROM 13 de 128 mots codée en I et une mémoire ROM 14 de 128 mots codée en Q. Les sorties des mémoires ROM 13 et 14 sont connectées à un circuit de commande de bus 15 dont les sorties sont à leur tour reliées à des convertisseurs numérique- analogique 16 et 17 des signaux Q et I commandés par les signaux d'horloge d'échantillonnage appliqués au compteur 10 modulo 4. La sortie analogique des signaux Q du conver- tisseur 16 est reliée à l'entrée d'un filtre linéaire de phase 18 tandis que la sortie du convertisseur 17 est connectée à l'entrée d'un autre filtre linéaire de phase 19. Les sorties des filtres 18 et 19 sont respec- tivement connectées à des multiplieurs 20 et 21 qui reçoi- vent par ailleurs des signaux sinloeotl et coslmotl et qui délivrent à leurs sorties des signaux Q et I. Le processeur périphérique du modulateur suivant l'invention est représenté schématiquement à la Fig 3. Il comporte un processeur périphérique 25 proprement dit connecté à une mémoire ROM de programme 26 par un bus d'adresse 27 et un bus de programme 28. Le programme stocké dans la mémoire 26 contient le code de modulation et du codeur (décodeur de canal). Le processeur 25 est relié à un processeur principal 29 par exemple du type DSP ou microcontrôleur, par l'intermédiaire d'une mémoire partagée 30 qui est une mémoire RAM/ROM à deux ports. Il est en outre relié au processeur principal 29 par une ligne de test et de réglage 31 et par des lignes d'interruption 32. Le processeur 25 est avantageusement un proces- seur de protocole du type décrit au brevet français n O 91 07 985 déposé le 27 juin 1991 par la Demanderesse et intitulé " Processeur de protocole destiné à l'éxécution d'un ensemble d'instructions en un nombre réduit d'opéra- tions ". La liaison entre les processeurs 25 et 29, par l'intermédiaire de la mémoire 30 est réalisée au moyen de bus d'adresse 33, 34 et de données 35, 36 respectifs. La mémoire partagée 30 contient des variables locales ainsi que les symboles devant être modulés Elle contient également dans sa partie ROM, une table pour stocker les configurations de base pour le modulateur. Le processeur périphérique 25 est relié à un bloc de circuits 37 qui contient un registre pour la sortie des échantillons modulés (I,Q) qui sont comptés par le processeur périphérique. Les échantillons sont délivrés à une cadence fixée par la ligne d'interruption 32. L'architecture de l'ensemble à été rendue optimale pour réduire au minimum la latence d'interruption ( 2 cycles) et le temps système ( 2 cycles) pour mettre en oeuvre le modulateur. Le tableau 1 qui va suivre représente le pro- cessus de modulation en pseudocode. TABLEAU I SOUS-PROGRAMME PRINCIPAL POUR LE MODULATEUR. BOUCLE CNT = ECH N-A-TX; init BOUCLE CNT avec un nombre de symboles à transmettre. Rh Pk Lh R JUSQU'A BOUCLE CNT = O PRENDRE NOUVEAU SYMBOLE Décaler l'instant SYMB 1 vers la gauche; décaler ligne à retard (ligne à retard est de 3 symboles) Inclure nouveau symbole dans ligne à retard SYMB; SI (nouveau symbole = 0) ALORS ETAT = ETAT + 32 AUTREMENT ETAT = ETAT + 96 ENDIF ETAT = ETAT l 96 l; l'incrémentation d'état est effectué modulo 96 X = concaténation ETAT/SYMB; la concaténation est de 3 bits utiles ( 2 bits les plus significatifs de l'état, 3 bits les moins significatifs du SYMB) décalés 2 fois à gauche X = X + #TABCOS; X contient l'adresse dans la table pour le tampon d'échantillon à transmettre ( 4 échantillons) ATTENDRE JUSQU'A CE QUE LE BAUD EN COURS EST TRANSMIS: attendre que les deux bits les moins significatifs de B soient à zéro B = X; l'adresse pour le tampon à transmettre est nou- velle BOUCLE CNT = BOUCLE CNT 1 FIN REPETER INTERROMPRE SOUS-PROGRAMME POUR LE MODULATEUR ECHANTILLON DE SORTIE ADRESSE PAR B VERS REGISTRE EXTE- RIEUR; INCREMENTER REGISTRE B RETOUR, retour de l'interruption. Le tableau 2 représente une certaine partie du code de logiciel correspondant dans le processeur périphé- rique. TABLEAU II SYMB TX DEPL #4 h,NZ; si symbole est 1 alors A h = 4 (autrement A h = O) obtenir symbole précédent ds A.I sauvegarder nouveau symbole effectuer le codage différen- tiel DEPL SYMBX décaler ligne à retard X A.h, X L; inclure nouveau symbole dans ligne à retard #28, X; garder 3 bits X,SYMB; sauvegarder ligne à retard symbole #32,A H; le défaut est + PI/2 #4, X L; #96, A H,NZ; autrement il est PI/2 ETAT,A H; # 96, A H; calculer valeur du nouvel état A.H,ETAT; sauvegarder valeur nouvel état A,H, X L; additionner décalage à la table ADD #TABCOS,X; calculer adresse nouvelle table sin, cos ATTENDRE BD REPOS ET #3, B L BNZ ATTENDRE BD; attendre nouveau baud DEPL X,B; B contient l'adresse de la RTS table (cos,sin) premier élément de SYMBTX * SOUS PROGRAMME D'INTERRUPTION DE TRANSMISSION * * * Cette interruption transmet un échantillon complexe * * Elle a lieu à 1084 Khz = ( 922,5 Ns) * * * * * ( 4 échantillons/baud à cadence de bande de 271 Khz) * * * * ( 922,5 Ns correspond à 24 cycles) *Utilise/corrompt le registre B, PO * Utilise/corrompt le registre B, POO * * SLL OU ET DEPL DEPL ET DEPL ADD ET DEPL ADD TX INT (B) +, POO; POO est une valeur complexe d'échantillon (I,Q) RTI; l'exécution d'interruption est de 4 cycles. Sur la Fig 4, on a représenté une variante du circuit de convolution à N états. Il met en oeuvre la réalisation de N convolu- tions de façon cyclique. Il comporte une pile de registres 40 à N niveaux destinée à stocker N polynones Gi. A la pile de registres 40 est adjoint un poin- teur de pile 41 qui contrôle la position dans le cycle de codage et le transfert des résultats, Gi ou I. Les N résultats Gi ou I sont transférés de façon séquentielle dans un registre de sortie 42 à N bits. La sortie de la pile 40 est reliée au registre de sortie par l'intermédiaire d'étages 43, 44, Dn x d et XOR. Enfin, un registre D 45 est relié au circuit D x dn 43. Une entrée du registre 45 est une entrée de données et son autre entrée reçoit les signaux Rg Ck- La modulation GMSK est une modulation à enve- loppe constante du type MSK dont les transitions de phase sont lissées par un filtre gaussien. Soit a, la séquence à transmetre. a = a_ 2, an,_ an, an,, an+ 2, Le signal émis est de la forme: s(t, a) = 2 E/T cos l 2 ufot + 4 (t,a) + 4 ol 2 E/T représente l'énergie par symbole émis. Le message est contenu dans l'information de phase (t, a). 4 o est une phase arbitraire. Dans le cas du GSM, les ai ont tous la même probabilité d'apparition et sont décrits par un alphabet à deux niveaux. En ce qui concerne le filtrage, par définition du principe de modulation, la séquence a passe dans un filtre de prémodulation. Soit g (t), la réponse impulsionnelle du filtre. On normalise l'excursion maximale de phase dans (t, a), par Aima = (M-1) ht M= 2 (alphabet binaire + 1, -1) h= index de modulation alors: (t,a) = 2 h Z aiq (t i T) avec q(t) = J g (t) d (r) En se référanî aux spécifications GSM, on voit que g(t) est par définition une fonction de Gauss dont l'écart type est normalisé par le produit BT, B étant la largeur du filtre équivalent (à 3 db), T, la durée d'un symbole. En remarquant que g(t) est limité en temps, g(t) = O si t LT avec L = longueur de contrainte de nombre de symboles corrélés, on peut écrire: (t, a) = 2 nh E t aiq (t-i T) AZ-50 n-L = 2 nh r aiq (t-i T) + hn E ai i=n-L+l i=-o O (t,a) On avec n T lisse possible. Il y aura 2 L-1 étant correlés possibles. On * un état de phase On On va maintenant examiner le signal à émettre pour le modulateur. Ce signal peut s'écrire sous la forme: s(t,g) = 2 E/T{I(t) cos ( 2 nfot) Q(t) sin ( 2 ifot) I(t) = cos l$ (t,) Q(t) = sin lc (t, a)l avec c (t,") = O (t,a) + en (ni I(t) = cos le(t,s)l cos On sin l 8 (t,a)l sin On Q(t) = cos le(t,s)l sin On + sin l 8 (t,a)l cos On 0 lt,al = 2 ih lEn ai q(t-i T)l n-L+l q(t) est la réponse impulsionnelle du filtre de modulateur; cette réponse va être modélisé par L coeffi- cients, O(t,a) est donc défini par: la séquence des L ai les L coefficients du filtre La structure équivalente de ce filtre est représentée à la Fig 5. Ce filtre comporte une mémoire de colonne 46 contenant les coefficients Q 1 à QL du filtre, et une mémoire de rangée 47 contenant la séquence de données an an -L+ 1, reliées par des conducteurs de ligne 48 et de colonne 49. Les données et les coefficients sont combinés par multiplication dans des multiplieurs 50 placés aux intersections des conducteurs 48,49 et sommés dans un sommateur 51 qui délivre à sa sortie un signal O (t,a). En remarquant que ai = (+ 1, -1), les multiplica- tions sont remplacées soit par des transferts, soit par des inversions. Selon une variante, on peut avoir 2 L séquences différentes pondérées par le jeu de coefficients Qi Les 2 L séquences pondérées peuvent être saisies dans une mémoire ROM (non représentée) dont le vecteur d'adresse est équivalent au vecteur ai. Pour assurer l'échantillonnage, il faut générer les signaux coslEO(t,a)l et sinle(t,a)l. il La façon la plus simple est de mémoriser les signaux cos et sin dans une table. On sait qu'il faudrait 8 à 16 échantillons par symbole, chaque échantillon étant codé sur 8 bits. Le modulateur GMSK est représenté à la Fig 6 Il comporte principalement un registre à déca- lage d'entrée 55 pour les données ai commandé par un signal d'horloge de données Ck. La sortie du registre 55 est connectée à une entrée d'une mémoire ROM 56 de stockage des valeurs de coslG(t,_)l et à une entrée d'une mémoire ROM 57 de stoc- kage des valeurs de sinle(t,a)l ayant par ailleurs chacune une entrée d'échantillonnage connectée à la sortie d'un circuit de comptage d'échantillons 58 commandé par un signal d'horloge d'échantillonnage 59. La sortie de la mémoire ROM 56 est appliquée à une entrée d'un premier multiplieur 60 dont une autre entrée est reliée à un circuit 61 générateur d'un signal sin On (+ 1,0,-1} commandé par les données d'entrée du circuit par l'intermédiaire d'un compteur-décompteur 62. La sortie de la mémoire ROM 56 est appliquée à une entrée d'un second multiplieur 63 dont une autre entrée est connectée à la sortie d'un circuit 64 généra- teur d'un signal cos On {+ 1,0,-1 i commandé lui aussi par le compteur-décompteur 62. La sortie de la mémoire 57 est connectée à des entrées d'un troisième et d'un quatrième multiplieurs ,66 dont les autres entrées sont respectivement connec- tées aux circuits 61,64 générateurs des signaux sin On et cos On. Le signal cos O sin Oe apparaissant à la sortie du premier multiplieur 60 est appliqué à une entrée d'un premier additionneur 67 dont une autre entrée reçoit le signal sin G cos On de sortie du quatrième multiplieur 66. Le signal cose cosen de sortie du second multi- plieur 63 est appliqué à une entrée d'un second addition- neur 68 dont une autre entrée reçoit la sortie sine sin On du troisième multiplieur 65. Les sorties des premier et second additionneurs 67 et 68 sont respectivement connectées aux entrées de convertisseurs numériqueanalogiques 69,70 commandés par un signal d'horloge appliqué à leurs entrées d'horloge 71,72 correspondantes. Le fonctionnement du modulateur décrit en référence à la Fig 6 est le suivant. La séquence a est stockée dans le registre à décalage 55 dont les sorties sont décodées pour générer les 2 L adresses de page correspondant aux 2 L différentes séquences possibles. L représente la longueur de contrainte du code et le nombre de bits stockés dans le registre 55. Chaque symbole est codé par N échantillons codés sur 8 bits Le nombre total de mots est ( 2 L x 1) x 2. Les mémoires ROM 56, 57 de cosle(t,a)l et sinl 8 (t,a)l contiennent les 2 L x q valeurs possibles de coslO(t,a)l et sinl 8 (t,al, e(t,a) représentant la partie corrélative de la phase Les états de phase sont codés par le compteur à deux bits 62. Un symbole binaire " 1 " correspond à + 1 et " O ", à -1. Le compteur 62 est incrémenté ou décrémenté par le signal d'horloge de données Il est incrémenté si ai=l et décrémenté si ai= 0. Les quatre états possibles à la sortie du compteur 62 correspondent à nu/2 ( 2 n) Les tables sin On et cos 8 N contiennent uniquement les valeurs {+ 1,0,-1}. Les quatre multiplieurs 60,63,65,66 effectuent comme indiqué plus haut les produits coslO(t,a)cos En, cosl 8 (t,a)l sinon, sinle(t,a)l cosen et sinlG(t,a)l sin On. Les quatre sorties des multiplieurs sont addi- toinnées deux à deux dans les additionneurs 67,68 pour former les signaux I et Q puis convertis pour former les voies I et Q analogiques.5 Le tableau III ci-après donne l'état du comp- teur-décompteur à deux bits 62. TABLEAU III Etat Sin On Cos On 0 O 1 1 + 1 O 2 O -1 3 -1 O Le modulateur de la Fig 6, les convertisseurs numérique-analogiques étant exclus, peut être décomposé en deux parties: une partie opérateur comprenant les compteurs , 62, 58, les multiplieurs 60,63,65,66, les additionn- neurs 67 et 68. une partie opérande avec les tables 56,57, 61,64. Dans le cas du mode de réalistion de la Fig 3, avec le processeur 25, la partie opérateur est effectuée dans le processeur périphérique, tandis que les opérandes sont stockés dans la mémoire partagée 30, les échantillons des signaux I et Q étant stockés dans la mémoire 37. La Fig 7 est un graphique représentant un * treillis initié avec une phase réglée à 0. Comme le montre cette figure, les données binaires sont converties par le modulateur en un signal d'enveloppe constante et dont la phase peut suivre un certain nombre de trajectoires différentes La figure montre toutes les trajectoires possibles que peut suivre la phase sur les quatre premières données émises. La phase initiale a été mise à zéro par commodi- té On peut voir, dès la première donnée, les deux premiè- res trajectoires correspondant soit au " 1 " binaire pour la trajectoire rectiligne, soit au "O" pour la trajectoire en forme d'arche Par la suite, l'émission d'un "l" tendra à augmenter la phase, alors que l'émission d'un "O" tendra à la diminuer. La Fig 8 repésente la constellation de phases obtenue avec le modulateur GMSK de la Fig 6. Le signal modulé est assimilé à un vecteur tournant dans le plan complexe La figure montre les différentes positions de l'extrémité du vecteur prises au milieu des donnée. La Fig 9 est un diagramme représentant le treillis de phase du modulateur GMSK. Cette figure représente le "diagramme de l'oeil" sur la phase du signal émis Ici la phase est comptée entre a/2 et 1,5 n. REVENDICATIONS 1 Modulateur notamment pour systèmes de télé- phones numériques cellulaires, caractérisé en ce qu'il comporte un processeur périphérique ( 25) programmable assurant avec les mêmes circuits, la fonction de modula- tion ainsi que les taches de codeur/décodeur de canal. 2 Modulateur suivant la revendication 1, caractérisé en ce qu'il comporte une partie opérateur ( 25; , 58, 62, 60,63,65,66,67,68) et une partie opérande ( 30,37; 56,57,61,64). 3 Modulateur suivant l'une des revendications 1 et 2, caractérisé en ce qu'il comporte en outre une mémoire partagée ( 30) qui est un constituant de la partie opérande et qui est une mémoire RAM/ROM contenant des variables locales ainsi que les symboles devant être modulés ainsi que dans sa partie ROM, une table de stoc- kage des configurations de base pour le modulateur, ladite mémoire partagée ( 30) étant interposée entre le processeur périphérique ( 25) qui forme la partie opérateur et un processeur principal au moyen de bus d'adresse ( 33,34) et de bus de données ( 35,36) respectifs. 4 Modulateur suivant l'une des revendications 1 à 3, caractérisé en ce que le processeur périphérique ( 25) est relié à un bloc de circuits ( 37) qui est un autre constituant de la partie opérande et qui contient un registre pour la sortie des échantillons modulés (I,Q) qui sont comptés par le processeur périphérique. Modulateur suivant l'une des revendications 1 à 4, caractérisé en ce que le processeur périphérique ( 25) est du type micro-contrôleur ou processeur numérique de signaux (DSP). 6 Modulateur suivant la revendication 1, caractérisé en ce que la partie opérateur comprend des compteurs ( 55,58,62), des mulitplieurs ( 60,63,66) et des additionneurs ( 67,68) et la partie opérande comprend une mémoire ROM ( 56) de stockage des valeurs de Cos lEO(t,a)l, une mémoire ROM ( 57) de stockage des valeurs sinl 8 (t,a)l, un circuit ( 61) générateur d'un signal sin en{+l,O,-1 l et un circuit ( 64) générateur d'un signal cos En{+ 1,0,-1}.