FR 2839831 A1 20031121 FR 0206006 A 20020515 est execute sur un processeur. 1 2839831 Generation de codes particulierement pour communications numeriques UMTS La presente invention concerne d'une maniere s generale la generation de signaux de codage pour des communications numeriques a acces multiple a repartition par codes CDMA (Coded Division Multiple Access) dans une station de base ou une station mobile d'un systeme de transmissions simultanees a 0 debits differents, par exemple un systeme cellulaire radiotelephonique. Plus particulierement l' invention concerne la generation de codes orthogonaux OVSF (Orthogonal Variable Spreading Factor) selon la norme UMTS (Universal Mobile Telecommunications System) en mode TDD (Time Division Duplex) ou FDD (Frequency Division Duplex), typiquement dans l'emetteur ou le recepteur d'une station suivant une liaison descendante ou montante. A titre d'exemple, une frame en mode TDD selon la norme de telephonic mobile UMTS comporte des intervalles temporels (timeslots) de duree predeterminee et comportant chacun U salves simultanees de donnees (bursts) le plus souvent respectivement assignees a U usagers. Un code (channelisation code) pour une salve alloue a un usager donne est constitue par une sequence de SF elements de code (chips) associee a chaque symbole complexe a emettre, avec U S SF. Les elements de code vent en code de non retour a zero NRZ dont les valeurs vent +1 et -1. La longueur de chaque code, appelee facteur d'etalement (Spreading Factor), exprimee en nombre d'elements de code est egale a une puissance de 2 et comprise entre 4 = 22 et 512 = 29. Le facteur d'etalement peut varier dans une station, 2 2839831 nota_ent en fonction du dAbit galement variable, demands pour un usager; par exemple, un code pour un dAbit donna prAsente une longueur Agale la demi longueur d'un code pour la moitiA du dAbit donn6. s Traditionnellement les codes vent gAnArAs par un processus itAratif reproduisant une structure arborescente des codes OVSF considArAs, comme montrd schAmatiquement la figure 1, en notant ['ensemble des codes considArAs par { SF'C}SF=2k,k[(,CE[SF- C1 0 = (1) C2,0 = (1,1) C2 1 = (1,-1) CSF,O CSF/2,OCSF/2, CSF CSF/O F/ {CSF.NC}NCE[SF- CSF,SF-2 CSF/2,SF/-1CSF/2,SF/-1 CSF,SF-1 CSF/2,SF/2-1OSF/2,SF/2-1 dans lesquelles OSFf dAsigne le code dont les AlAments ont des valeurs opposes celles des AlAments du code CSF,SE VSF,Vsf [O. SF - 11 OSF,Bf = CSF,Sf Dans l'6metteur l' interface radio d'une station, un modulateur d'@talement traite les symboles complexes successifs sortant d'un modulateur de phase de type QPSK pour produire le code associA un usage r et modulant le s compos ant e s rAel le et imaginaire de chaque symbole appliquer un embrouilleur avant d'6tre filtrA, amplifid et transposA en frAquence. Pour chaque usager, un code est Acrit dans une mAmoire de code au dAbut d'une 3 2839831 communication avec cet usager et peut etre modifie eventuellement en fonction de requete de modification de code au cours de la communication. Deux memoires vent ainsi prevues: une table de correspondence entre les numeros d' identification d'usager et les numeros de code et une table de correspondence entre les numeros de code et les codes. Typiquement, pour au moins 2 = 512 codes ayant chacun 512 elements de code, la capacite de la deuxieme memoire doit etre au B=9 lo moins de 22B = 349520 bits, soit 43 koctets. B=2 Les codes doivent ainsi etre generes prealablement a leur utilisation et necessitent un espace de memoire pour les stocker. L' invention vise a obvier a ces inconvenients en generant des codes direct ement au fur et a me sure du deroulement de communications dans une station, sans utiliser de deuxieme memoire faisant correspondre un numero de code a un code, c'est-a-dire sans memoriser les codes. A cette fin, un dispositif selon l' invention pouvant generer au plus SFM = 2 codes orthogonaux comprenant chacun au plus SFM elements de code, BM etant un entier, genere un element de code grace aux moyens suivants. Le dispositif recoit un mot representatif d'une position determinee de l' clement de code dans un code, un mot representatif du numero de code designant le code parmi SF = 2B codes possibles a SF elements et un mot representatif d'un numero attribue au nombre SF d' elements du code, B etant un entier tel que B 4 2839831 faible vent les B bits de poids faible selon l'ordre inverse dans le mot de numero de code et les BM-B bits de poids fort vent tous a un etat predetermine, un moyen pour multiplier respectivement les bits de memes rangs dans le mot intermediaire et le mot de position de maniere a produire un mot de produit a BM bits, et un moyen pour appliquer une operation OU- EXCLUSIF a tous les bits du mot de produit afin de generer lt clement de code. lo Les elements d'un code vent ainsi generes en dynamique par des moyens logiques sans aucune memoire de code. Plus generalement, les codes vent generes dynamiquement par le dispositif de l' invention en reponse a des requetes permanentes a frequence elevee associees a des canaux de trafic occupes par des communications entre une station fixe ou mobile contenant le dispositif et une autre station mobile ou fixe. Le dispositif de l' invention presente avantageusement une taille relativement faible par une conception en microcircuit et peut etre inclus en plusieurs exemplaires au sein d'un meme station afin de generer simultanement et de facon independante plusieurs codes orthogonaux. Selon une realisation preferee de l' invention, le moyen logique comprend un moyen pour inverser ltordre des bits du mot de numero de code en un mot inverse, un moyen pour determiner la difference BM-B, et un moyen pour decaler de BM-B positions vers les bits de poids faible les B bits de poids fort du mot inverse afin de former le mot intermediaire avec des bits a l'etat predetermine en tent que BM-B bits de poids fort et avec les B bits de poids fort du mot inverse en tent que B bits de poids falble. 2839831 Selon une realisation particuliere dirigee vers la norme UMTS, BM est egal a 9, et B=0 et B=1 vent des valeurs lnterdites et le moyen pour determiner la difference consiste en un moyen pour inverser l'etat des bits du mot representatif du numero attribue au nombre d'elements de code en un mot de parametre de decalage a appliquer au moyen pour decaler. D'autres caracteristiques et avantages de la lo presente invention apparaltront plus clairement a la lecture de la description suivante de plusieurs realisations preferees de l' invention en reference aux dessins annexes correspondents dans lesquels: - la figure 1 est un diagramme arborescent du processus iteratif de codes orthogonaux OVSF selon la technique anterieure; et - la figure 2 est un bloc-diagramme d'un dispositif de generation de codes orthogonaux OVSF selon l' invention. Le dispositif de generation de codes selon l' invention est inclus dans un modulateur d'etalement de l'emetteur par exemple d'une station de base et vise a generer des codes comportant au maximum SFM bits. Pour la norme UMTS, le nombre maximal de bits SFM est egal a 512 = 29 = 2BM. Dans la suite de la description, un mot binaire M comprenant BM bits est designe par les bits MBM-1' MBM-2, À. M2, M1, M0, MBM_1 et M0 etant le bit de poids fort et le bit de poids faible du mot M. Les fonctions logiques definies ci-apres vent realisees en logique positive a titre d'exemple. Comme montre a la figure 2, le dispositif de generation de codes 1 comprend essentiellement trots ports d' entree de donnees par lesquels il recoit 6 2839831 trots mots binaires representatifs de nombres entiers PC, B et NC qui vent suffisants pour generer un element de code EC binaire, convert) finalement en code de non retour a zero NRZ. Le premier mot est representatif d'une position determinee PC de l' clement de code EC dans un code (channelisation code) donne et est fourni par une base de temps dans le modulateur. La position d'un element de code etant comprise entre O et la longueur SF_1 du code et plus generalement pouvant varier de 0 a SFM-1 = 2 -1 = 511, le mot PC comporte BM = 9 bits PCBM_1 a PCO. Les deuxieme et troisieme mots vent fournis par une table de correspondence equivalente a la premiere memoire precitee dans le modulateur, en reponse au numero d/identification d'un usager donne. Le deuxieme mot est representatif du numero NC du code donne qui designe le code parmi les SF = 2 codes possibles a SF elements et qui est done compris entre 0 et SF-1. Puisque SF est au plus egale a SFM, le nombre de bits NCBM_1 a NCo du mot NC comprend egalement BM = 9 bits et le nombre peut prendre 2 = 512 valeurs. Le troisieme mot est representatif du facteur d'etalement (spreading factor) SF du code donne, egal au nombre d'elements dans le code donne, avec SF = 2 et l'entier B tel que B En fait, le nombre de bits dans le troisieme mot est au plus egal au nombre maximal de bits necessaires pour designer les BM facteurs d'etalement SF, C' eat-a-dire pour numeroter successivement les BM facteurs d'etalement egaux respectivement aux longueurs des codes variant de 2 a 2 par puissances de 2 successives. Le nombre de bits du troisieme mot est done egal a la partie entiere de log2(2 x BM 1). Les deux colonnes de la table de correspondence 7 2839831 suivante 1 font correspondre les 4 = partie entiere(log2 17) bits B3, B2, B1 et Bo du troisieme mot et le facteur d'etalement SF pour BM = 9: TABLE 1 SF=2 B3,B2,B1,B0 D = BM-B D3,D2,Dl,Do 1 0000 9 1001 2 0001 8 1000 4 0010 7 0111 8 0011 6 0110 16 0100 5 0101 32 0101 4 0100 64 0110 3 0011 128 0111 0010 256 1000 1 0001. 512 1001 0 0000 On montre que l' clement de code EC a generer est deduit de la formule logique suivante: EC = XOR(AND(SHR(REV(NC,BM),BM-SF), PC)). REV, SHR, AND et XOR designent des operations logiques qui vent effectuees respectivement par des circuits logiques 2, 3, 4 et 5 inclus dans le dispositif de generation de codes 1, comme montre a la figure 2. Le circuit 2 realise la fonction d'inversion REV (REVerse) afin d'inverser l'ordre des bits NCo a NCBM_ 1 du mot representatif du numero de code NC. Le circuit 2 fournit un mot inverse NC' dont les bits NC' BM- 1 a NC'o vent respectivement identiques aux bits NCo a NCBM_1, comme detaille ci-apres pour BM = 9: NC (NC8,NC7,NC6,NC5'NC4,NC3,NC2,NCl,NCo) NC' (Nct8,Nc'7,Nct6,Ncts,Nct4,Nc'3,Nc'2,Nctl'Nc'o) = (NCo,Ncl,Nc2,NC3,NC4, NC5,Nc6'NC7,Nc8) 8 2839831 Le circuit 3 est un registre a decalage programmable vers la droite, c'est-a-dire vers les bits de poids faible, des bits de poids fort du mot inverse NC'. Le circuit 3 realise une fonction de decalage SHR (SHift Right) dont le decalage est egal a la difference BM - B produite par un circuit de determination de difference 31. Au circuit 31 est applique le mot B3,B2,B1,Bo a 4 = partie entiere de lo log2(2BM-1) bits representatif de l'exposant B de la puissance de 2 egale au facteur d'etalement SF, c'est-a-dire le numero B du facteur d'etalement parmi les BM facteurs d'etalement, c'est-a-dire parmi les BM etages de la structure arborescente montree a la figure 1. Les numeros B de 1 a BM des facteurs d'etalement vent ordonnes selon ltordre croissant des facteurs d'etalement SF. Le circuit 31 calcule la difference BM-B pour fournir un mot de parametre de decalage a 4 bits D3, D2, D1, Do' comme indique dans les troisieme et quatrieme colonnes de la table 1 ci-dessus, a appliquer en parametre de decalage D au circuit 3. Le circuit 3 fournit un mot intermediaire NC" a BM bits NCI'BM_1 a NC"o dont B bits de poids faible vent les B bits de poids fort du mot inverse NC' et done les B bits de poids faible selon l'ordre inverse dans le mot representatif du numero de code NC et dont les BM-B bits de poids forts vent des bits a l'etat binaire predetermine "0", selon la table suivante pour BM = 9: | B-1 | D=BMB | (NCIl8'NCII7, NCII6!NCII5,NCII4,NCII3lNCII2INCII1INCIIO) 1 0000 1000 (O. 0, O. O. O. O. O. O,NC'8) =(O, O. O. O. O. O. O. O,NCo) 9 2839831 0001 0111 (O,O,O,O,O,O,O,NC'8,NC'7) = (O. O. O. O. O. O. 0,NCo,NCl) 0110 (o,o,o,o,O,O,NC'8,NC'7'NC 6) = (O. O. O. O. O. 0,NCo,NC1 NC2) 0011 0101 (O,O,O,O,O,NC'8,NC'7,NC'6,NC'5) =(O'oooo,Nco,NclNc2,Nc3) 0100 (O,O,O,O,NC'8,NC'7,NC'6,NC'5,NC'4) = (O. O. O. 0,NCo,NC1 NC2,NC3,NC4) 0101 0011 (O,O,O,NC'8,NC'7,NC'6,NC'5,NC'4,NC'3) = (O. O. 0,NCo,NC1 NC2,NC3,NC4,NC5) 0010 (oo'NC'8,NC'7, NC'6'NCt5'NC'4'NC'3,Nc'2) = (O. 0,NCo,NC1 NC2,NC3,NC4,NC5,NC6) 0111 0001 (O,NC'8,NC'7,NC'6,NC'5,NC'4,NC'3,NC'2,NC'1) =(O,NCo'NC1 NC2,NC3,NC4,NC5,NC6,NC7) 1000 0000 (NC 8'NC 7,NC 6'NCt5,NC'4, NC'3,NC'2,NC'1'NC'O) =(NCo,Ncl NC2,NC3,NC4,NC5,Nc6,Nc7,Nc8) En pratique, la norme UMTS interdit l'utilisation de valeurs SF o SF ne comporte plus que 3 = partie entiere log2(2.8- 1) bits. Le mot de numero de facteur d'etalement ainsi a 3 bits B2,B1,Bo, au lieu de 4 bits, est applique au port d' entree du circuit 31. Au lieu de realiser directement la difference D = BM-B comme precedemment, le circuit 31 de preference realise une fonction equivalente a cette difference en determinant le complement a "1", c'est-a-dire en inversant l'etat de chaque bit du mot entrant a 3 bits selon les deux premieres colonnes de la table 2839831 suivante dont la troisieme colonne indique le mot intermediaire correspondent NC" en sortie du circuit a decalage 3: B- 2 D (NClI8'NCIt7'NC86'NC''5NC't4,NC''3,NC''2,NC!1tNcI'o) 000 111 (O,O,O,O, O. O. O,NC'8,NC'7) = (O. O. O. O. O. O. O,NCo,NCi) 001 110 (o,o,o,O,O,O,NC'g,NC'7,NC 6) = (O. O. O. O. O. 0,NCo,NC1 NC2) 101 (O,O,O,O,O,NC'8,NC'7,NC'6,NC'5) = (O. O. O. O. 0,NCo,NC1 NC2,NC3) 011 100 (O,O,O,O,NC'8,NC'7,NC'6,NC'5,NC'4) = (O. O. O. 0,NCo,NC1 NC2,NC3,NC9) 011 (O,O,O,NC'g,NC'7,NC'6,NC'5,NC'4, NC'3) = (O. O. 0,NCo,NC1 NC2,NC3,NC4,NC5) 101 010 (O'O,NC 8,NC 7'NC'6, NC'5,NCt4,NCt3,Nct =(O,O,NCo,NC1 NC2,NC3,NC4'NC5'NC6) 001 (O,NC 8'NC 7,NC 6'NC'5'NCt4'NC'3'NC'2'Nct =( ,NCo,Ncl Nc2'Nc3,Nc4'Nc5,Nc6'Nc7) 111 ooo (NC'8'NCt7,NC'6'NCt5,NC'4,Nc 3,NC 2,NC 1,NC O) =(NCo,Ncl Nc2,Nc3, Nc4,Nc5'Nc6'Nc7,Nc8) Le circuit 4 combine deux a deux respectivement les BM bits de poids O a BM-1 dans le mot intermediaire NC" et les BM bits de poids O a BM-1 dans le mot representatif de la position PC de o ['element de code a generer, au moyen de BM portes ET respectives a deux entrees. Les BM - B premieres operations ET produisent des bits de poids fort PC BM-1 a PC' BM-B d'un produit intermediaire a l'etat predetermine "0", et les B operations ET restantes produisent des bits de poids faible PC' BM_B-] = (NC BM-B-1 X PCBM_B_1) a PC 0 = (NC O x PCe) du produit intermediaire. Le circuit 5 determine un bit de parite BP du produit intermediaire egal a l' clement de code EC en binaire a generer. Le bit de parite BP est a l'etat "1" lorsque le nombre de bits "1" dans le mot de produit intermediaire PC' BM-1 a PC'0 est impair et a l'etat "0" lorsque le nombre precise de bits "1" est pair. Le circuit 5 comporte une porte OU-EXCLUSIF a BM entrees pour appliquer l' operation OU-EXCLUSIF a trots bits du mot de resultat intermediaire, soit: BP PC BM-1 PC BM-2. .. PC'2 PC'1 PC' o. Finalement, le dispositif de generation de codes 1 comprend un convertisseur binaire-code de non retour a zero 6 afin de convertir l'etat binaire "0" ou "1" du bit de parite BP en l' clement de code genere EC "1" ou "-1" a appliquer a l' entree de donnees d'etalement de l'embrouilleur cite dans le preambule de la description. En pratique, le dispositif de generation de codes 1 est concu sous la forme d'un circuit logique programmable ou d'un circuit logique specialise ASIC. I1 constitue un circuit de tres petite taille afin que plusieurs dispositifs 1 soient installes en parallele dans une station fixe ou mobile d'un reseau de radiotelephonie cellulaire UMTS pour generer simultanement des codes orthogonaux OVSF. 12 2839831 REVENDI CAT IONS 1 - Dispositif pour generer au plus SFM = 2 codes orthogonaux comprenant chacun au plus SFM elements de code, BM etant un entier, caracterise en ce que pour generer un element de code (EC), il recoit un mot representatif d'une position determinee (PC) de l' clement de code dans un code, un mot representatif du numero de code (NC) designant le 0 code parmi SF = 2 codes possibles a SF elements et un mot representatif d'un numero attribue au nombre SF d'elements du code, B etant un entier tel que B S BM, et il comprend un moyen logique (2, 3) pour fournir un mot intermediaire (NC") a BM bits dont les B bits de poids faible vent les B bits de poids faTble selon l'ordre inverse dans le mot de numero de code (NC) et les BM-B bits de poids fort vent tous a un etat predetermine, un moyen (4) pour multiplier respectivement les bits de memes rangs dans le mot intermediaire (NC") et le mot de position (PC) de maniere a produire un mot de produit (PC') a BM bits, et un moyen (5) pour appliquer une operation OU- EXCLUSIF a tous les bits du mot de produit afin de generer l' clement de code (EC). 2 - Dispositif conforme a la revendication 1, dans lequel le moyen logique comprend un moyen (2) pour inverser l'ordre des bits du mot de numero de code (NC) en un mot inverse (NC'), un moyen (31) pour determiner la difference BM-B, et un moyen (3) pour decaler de BM-B positions vers les bits de poids faible les B bits de poids fort du mot inverse afin de former le mot intermediaire (NC") avec des bits a ltetat predetermine en tent que BM-B bits de poids 13 2839831 fort et avec les B bits de poids fort du mot inverse en tent que B bits de poids faible. 3 - Dispositif conforme a la revendication 2, dans loquel BM=9, et B=0 et B=1 vent des valeurs interdites, et le moyen pour determiner la difference consiste en un moyen (31) pour inverser l'etat des bits du mot representatif du numero attribue au nombre d'elements de code (SF) en un mot de parametre o de decalage (D) a appliquer au moyen pour decaler. 4 - Dispositif conforme a l'une quelconque des revendications 1 a 3, comprenant un convertisseur binaire-non retour a zero (6) en sortie du moyen (5)