Professional Documents
Culture Documents
LABORATOIRE I C A R E EA 3050 Ingnierie des Communications en informAtique, Rseaux et Electronique sans fil
MEMOIRE de THESE
DOCTORAT de LUNIVERSITE de TOULOUSE II Ecole Doctorale Gnie Electrique, Electronique et Tlcommunication
Spcialit : Electronique
TUDE ET INTGRATION NUMRIQUE DUN SYSTME MULTICAPTEURS AMRC DE TLCOMMUNICATION BAS SUR UN PROTOTYPE VIRTUEL UTILISANT LE LANGAGE DE HAUT NIVEAU VHDL-AMS
__________
Soutenue le 01 dcembre 2005 devant le jury compos de : Rapporteurs : M. JB BEGUERET M. P. FRAISSE Examinateurs : M. A. CAZARRE
M. T. VAL
Matre de Confrences-HDR lUniversit de Bordeaux I Lonard de Vinci Matre de Confrences-HDR lUniversit de Montpellier II Professeur lUniversit de Toulouse III
Professeur lUniversit de Toulouse II Professeur lUniversit de Toulouse II Matre de Confrences lUniversit de Toulouse II Matre de Confrences HDR lUniversit de Toulouse II
M. JJ MERCIER
M. L. ANDRIEUX M. E. CAMPO
Laboratoire de Recherche ICARE EA 3050 I.U.T de Blagnac - 1, Place Georges Brassens BP 60073 31 703 Blagnac cedex Tl. : + 33 (0) 5 62 74 75 75 Fax : + 33 (0) 5 62 74 75 87
SOMMAIRE
I.1 Etat de lart de la conception systme ............................................................................ 9 I.1.1 La conception systme dans le contexte industriel .................................................... 9 I.1.1.1 Enjeux et constatations....................................................................................... 9 I.1.1.2 Mthodologie classique du dveloppement ............................................... 12 I.1.1.2.1 Flot de conception traditionnelle.............................................................. 12 I.1.1.2.2 Cycle de conception en V......................................................................... 13 I.1.1.2.3 Vrification et prototypage....................................................................... 15 I.1.2 Le prototypage virtuel .............................................................................................. 16 I.1.3 Les mthodologies de conception actuelles ............................................................. 17 I.1.3.1 Les changements de paradigmes ...................................................................... 17 I.1.3.2 Evolution des cots [ITRS03] .......................................................................... 18 I.1.3.3 Le prototypage virtuel par le CODESIGN....................................................... 20 I.2 Solution technologiques actuelles ................................................................................ 20 I.2.1 Les cibles de conception existantes [ROBE02] ....................................................... 21 I.2.1.1 Les ASICs ........................................................................................................ 21 I.2.1.1.1 Les circuits semi-spcifiques ou ASIC pr-diffuss ................................ 21 I.2.1.1.2 Les circuits spcifiques ou ASIC pr-caractriss ................................... 21 I.2.1.2 Les FPGA......................................................................................................... 21 I.2.1.3 Les DSP............................................................................................................ 22 I.2.1.4 Les SoCs........................................................................................................... 23 I.2.2 Le march actuel des composants ............................................................................ 23 I.2.2.1 Famille de circuits et applications.................................................................... 23 I.2.2.2 Architecture des composants programmables.................................................. 25 I.3 Comparaison des langages et outils de conception ...................................................... 25 I.3.1 Introduction .............................................................................................................. 25 I.3.2 Les outils issus du milieu logiciel ............................................................................ 26 I.3.3 Les outils issus du milieu CAO................................................................................ 27 I.3.3.1 Simulateur Analogique..................................................................................... 27 I.3.3.2 Simulateur numrique ...................................................................................... 28 I.3.3.2.1 Le VERILOG : Historique et description ................................................ 28 I.3.3.2.2 VHDL : Historique et description ............................................................ 29 I.3.3.3 Les simulateurs mixtes ..................................................................................... 29 I.3.3.3.1 Description dun langage propritaire MAST.......................................... 30 I.3.3.3.2 Description dun langage norm : VHDL-AMS ...................................... 30 I.3.3.3.3 Les Outils supportant la simulation mixte en VHDL-AMS..................... 30 I.3.3.3.3.1 historique.............................................................................................. 30 I.3.3.3.3.2 Les outils interface graphique ........................................................... 31 I.3.3.3.3.3 Comparaison des diffrents outils........................................................ 31 I.3.3.4 Mthodologies et outil de conception retenus.................................................. 32 I.3.3.4.1 Mthodologie m1 avec un langage propritaire....................................... 33 I.3.3.4.2 Mthodologie m2 avec VHDL-AMS....................................................... 34 I.3.3.4.3 Comparaison des deux mthodologies..................................................... 34 I.4 Bilan ............................................................................................................................. 35
-I-
SOMMAIRE
II CHAPITRE II Vers la conception dun systme de tlcommunications talement de spectre................................................................................................................................. 37 II.1 Prsentation du cahier des charges............................................................................... 39 II.2 Les systmes de communication existants ................................................................... 39 II.2.1 Communications Radiofrquences dans les bandes 433 & 868 MHz. ................ 40 II.2.2 Les rseaux personnels sans fil (WPAN : Wireless Personnal Area Network) ... 40 II.2.2.1 Bluetooth [ELHO05]........................................................................................ 40 II.2.2.2 Ultra Wide Band [BLIN04][BRAC05] ............................................................ 40 II.2.2.3 ZigBee .............................................................................................................. 41 II.2.3 Les rseaux locaux sans fil (WLAN : Wireless Local Area Network) ................ 41 II.2.3.1 La norme 802.11 .............................................................................................. 41 II.2.3.2 Le standard HiperLAN II [BAUD02] .............................................................. 42 II.2.4 Les rseaux mtropolitains sans fil (WMAN : Wireless Metropolitan Area Network) et les rseaux tendus (WWAN : Wireless Wide Area Network) ....................... 42 II.2.4.1 WiMax.............................................................................................................. 42 II.2.4.2 MBWA ............................................................................................................. 42 II.2.4.3 Les rseaux mobiles (WWAN) ........................................................................ 42 II.2.5 Contraintes du milieu clos.................................................................................... 43 II.2.5.1 Les interfrences radio ..................................................................................... 43 II.2.5.2 Le nombre dutilisateurs................................................................................... 43 II.2.6 Comparatif des technologies de rseaux sans fil.................................................. 43 II.3 Description des lments dune chane de communication numrique ....................... 44 II.3.1 Chane de communication.................................................................................... 45 II.3.2 Le codage en ligne................................................................................................ 45 II.3.3 Choix dune modulation numrique..................................................................... 46 II.3.3.1 Quelques dfinitions utiles ............................................................................... 46 II.3.3.1.1 Dbit binaire............................................................................................. 46 II.3.3.1.2 Taux derreur sur les bits.......................................................................... 46 II.3.3.1.3 Lefficacit spectrale ................................................................................ 47 II.3.3.1.4 Dfinition de lefficacit en puissance Eb/No.......................................... 47 II.3.3.1.5 La simplicit de ralisation ...................................................................... 48 II.3.3.2 Modulation retenue .......................................................................................... 48 II.3.4 Le Canal ............................................................................................................... 49 II.3.4.1 Le canal AWGN............................................................................................... 49 II.3.4.2 Le canal multi-trajets........................................................................................ 50 II.3.5 Les mthodes daccs........................................................................................... 51 II.3.5.1 Dfinition des mthodes daccs...................................................................... 52 II.3.5.1.1 Le FDMA ................................................................................................. 52 II.3.5.1.2 Le TDMA................................................................................................. 52 II.3.5.1.3 Le CDMA................................................................................................. 53 II.3.5.2 Critre de choix sur les mthodes daccs ....................................................... 54 II.3.6 Ltalement de spectre ......................................................................................... 54 II.3.6.1 Principe............................................................................................................. 54 II.3.6.2 Ltalement de spectre par squence directe.................................................... 56 II.3.6.2.1 Le principe de ltalement de spectre par squence directe ..................... 56 II.3.6.2.2 Les squences pseudo-alatoires.............................................................. 56 II.3.6.2.3 Ltalement lmission .......................................................................... 58 II.3.6.2.4 Le dstalement par corrlation ............................................................... 60 II.4 Caractristiques retenues pour le systme dsir ......................................................... 61
-II-
SOMMAIRE
II.5 Description fonctionnelle des fonctions modliser ................................................... 63 II.5.1 Principe de la modulation diffrentielle ............................................................... 64 II.5.2 Modlisation du gnrateur de PN Code.............................................................. 64 II.5.2.1 Principe de la gnration des M squences.................................................... 64 II.5.2.2 Simulation sous le logiciel SABER ................................................................. 65 II.5.3 Modlisation de la fonction corrlation ............................................................... 68 II.5.3.1 Corrlation lmission ................................................................................... 68 II.5.3.2 Corrlation la rception ................................................................................. 69 II.5.4 Modlisation de lorgane de synchronisation....................................................... 70 II.5.4.1 Problmatique de la synchronisation dun organe talement de spectre....... 70 II.5.4.2 Principes de mise en uvre de la fonction acquisition .................................... 71 II.5.4.2.1 Mise en uvre de la fonction dacquisition ............................................. 72 II.5.4.2.1.1 Lacquisition par corrlation .............................................................. 72 II.5.4.2.1.2 Lacquisition par filtrage adapt......................................................... 73 II.5.4.2.1.3 Lorgane de dcision .......................................................................... 74 II.5.4.2.2 Les principaux organes dacquisition....................................................... 74 II.5.4.2.2.1 Dtecteur du maximum de vraisemblance.......................................... 74 II.5.4.2.2.2 SERIE ................................................................................................. 75 II.5.4.2.2.2.a La structure Single Dwell time .................................................... 76 II.5.4.2.2.2.b Multiple Dwell time..................................................................... 76 II.5.4.2.2.3 RASE : Rapid Acquisition by Sequential Estimation ........................ 77 II.5.4.3 Etude /comparaison thoriques des boucles de poursuite ................................ 78 II.5.4.3.1 DLL Cohrente......................................................................................... 79 II.5.4.3.2 La DLL Non Cohrente............................................................................ 80 II.5.4.3.3 La TDL (The Tau Dither Loop) ............................................................... 80 II.5.4.3.4 Comparatif des diffrents modles de boucles de poursuite .................... 82 II.5.4.4 Choix de lorgane de synchronisation.............................................................. 83 II.5.4.4.1 Simulation de lorgane SERIE ................................................................. 83 II.5.4.4.2 Organe RASE........................................................................................... 85 II.5.4.5 Comparaison des boucles ................................................................................. 86 II.5.4.5.1 Gain en traitement .................................................................................... 86 II.5.4.5.2 Temps dacquisition ................................................................................. 87 II.5.4.5.3 Conclusion sur le choix des organes de synchronisation ......................... 88 II.6 Conclusion.................................................................................................................... 88 III CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau........................................................................................................... 91 III.1 Introduction .................................................................................................................. 93 III.2 Le langage VHDL-AMS .............................................................................................. 94 III.2.1 Historique ............................................................................................................. 94 III.2.2 Choix de ce langage ............................................................................................. 94 III.2.3 Description du langage [VACH02][HERV02] .................................................... 94 III.2.3.1 Le langage VHDL ........................................................................................ 94 III.2.3.1.1 Les diffrentes descriptions possibles ...................................................... 94 III.2.3.1.2 La structure fondamentale dun modle VHDL....................................... 95 III.2.3.1.3 Les signaux............................................................................................... 96 III.2.3.1.4 Le processus ............................................................................................. 96 III.2.3.2 Le langage VHDL-AMS .............................................................................. 98 III.2.3.2.1 Description du langage............................................................................. 98
-III-
SOMMAIRE
III.2.3.2.2 Les diffrentes classes dobjets ................................................................ 99 III.2.3.2.2.1 Terminal et nature ............................................................................. 99 III.2.3.2.2.2 Les quantits...................................................................................... 99 III.2.3.2.2.3 Le critre de solvabilit ................................................................... 100 III.3 Codage en langage VHDL-AMS de lmetteur/rcepteur ......................................... 100 III.3.1 Fonctions implanter et caractristiques ........................................................... 100 III.3.2 Les tages numriques ....................................................................................... 103 III.3.2.1 Description de lmetteur ........................................................................... 103 III.3.2.1.1 Gnrateur de PN-Code ......................................................................... 103 III.3.2.1.2 Encodeur................................................................................................. 105 III.3.2.1.3 Fonction Multiplieur ........................................................................ 105 III.3.2.1.4 Rsultats de simulation........................................................................... 106 III.3.2.2 Description du rcepteur ............................................................................ 107 III.3.2.2.1 Rcepteur sans synchronisation ............................................................. 107 III.3.2.2.1.1 Dstalement en rception .............................................................. 108 III.3.2.2.1.2 Test de donne................................................................................. 109 III.3.2.2.1.3 Dcodeur diffrentiel....................................................................... 110 III.3.2.2.1.4 Rsultats de simulations .................................................................. 111 III.3.2.2.2 Synchronisation...................................................................................... 112 III.3.2.2.3 Lorgane de poursuite (DLL) ................................................................. 112 III.3.2.2.3.1 Le Discriminateur............................................................................ 113 III.3.2.2.3.2 Le Filtre numrique......................................................................... 115 III.3.2.2.3.3 Loscillateur numrique control en tension................................... 119 III.3.2.2.3.4 Le Gnrateur de PN-Code du rcepteur ........................................ 122 III.3.2.2.4 Synchronisation N branches ................................................................ 123 III.3.2.2.4.1 Lorgane de slection ...................................................................... 124 III.3.2.2.4.2 Le gnrateur de PN-Code adapt la synchronisation N branches. 126 III.3.2.2.4.3 Rsultats de simulation du rcepteur en bande de base .................. 127 III.3.3 Description des parties analogiques ................................................................... 128 III.3.3.1 Description des parties radio-frquences ................................................... 128 III.3.3.1.1 La modulation et dmodulation BSPK................................................... 128 III.3.3.1.1.1 La modulation BPSK ...................................................................... 128 III.3.3.1.1.2 La dmodulation BPSK................................................................... 129 III.3.3.1.2 Les Filtres analogiques........................................................................... 130 III.3.3.1.2.1 Choix des paramtres des filtres analogiques ................................. 130 III.3.3.1.2.2 Description des filtres implants en VHDL-AMS .......................... 130 III.3.3.2 Le canal AWGN (Additif White Gaussian Noise)..................................... 130 III.3.3.2.1 Gnration dun bruit blanc Gaussien.................................................... 131 III.3.3.2.2 Le dlai dans le canal ............................................................................. 132 III.3.3.2.3 Implantation dun rapport signal sur bruit paramtrable........................ 133 III.3.4 Description du Convertisseur Analogique / Numrique .................................... 135 III.4 Rsultats de simulation............................................................................................... 135 III.4.1 Simulation de la fonction dautocorrlation....................................................... 135 III.4.2 Simulation de la chane complte Emetteur/Rcepteur...................................... 136 IV IV.1 IV.2 CHAPITRE 4 : Etude et dveloppement de la maquette Emetteur-Rcepteur . 139 Introduction ................................................................................................................ 141 Cible dimplantation................................................................................................... 141
-IV-
SOMMAIRE
IV.2.1 Description du FPGA ......................................................................................... 142 IV.2.2 Le logiciel de commande Quartus II .................................................................. 143 IV.2.3 Etapes dimplantation......................................................................................... 143 IV.3 Les modules priphriques spcifiques dvelopps................................................... 144 IV.3.1 Paramtrage du canal ......................................................................................... 145 IV.3.1.1 Le retard dans le canal................................................................................ 145 IV.3.1.2 Gnration du bruit dans le canal............................................................... 147 IV.3.2 Paramtrage du dbit.......................................................................................... 148 IV.3.3 Module de calcul de TEB................................................................................... 148 IV.3.4 Interface logicielle.............................................................................................. 149 IV.4 Rsultats de synthse.................................................................................................. 150 IV.5 Evaluation des performances mesures...................................................................... 151 IV.5.1 Test en milieu non bruit.................................................................................... 152 IV.5.1.1 Emetteur-rcepteur Simple Branche .......................................................... 152 IV.5.1.1.1 Mesures pour diffrents longueurs de codes.......................................... 152 IV.5.1.1.2 Mesures pour diffrents dlais ............................................................... 152 IV.5.1.2 Emetteur-rcepteur avec synchronisation N branches ............................... 153 IV.5.2 Mesures en milieu bruit .................................................................................... 155 IV.6 Bilan ........................................................................................................................... 156 CONCLUSION ET PERSPECTIVES ............................................................................... 159 REFERENCES ..................................................................................................................... 163 ANNEXES............................................................................................................................. 170 ANNEXES 1 : Fichier Test Bench......................................................................................... 172 ANNEXE 2. Fonctions numriques de lmetteur.......................... Erreur ! Signet non dfini. ANNEXES 3 . Fonctions transmission .................................................................................. 185 ANNEXE.4. Fonctions du rcepteur...................................................................................... 189 GLOSSAIRE......................................................................................................................... 211
-V-
SOMMAIRE
SOMMAIRE
Figure II. 26. Schma de principe pour la corrlation numrique en rception. .................... 69 Figure II. 27. Principales formes dondes pour le corrlateur au niveau du rcepteur.......... 70 Figure II. 28. Schma de principe de lorgane Acquisition/ poursuite .............................. 71 Figure II. 29. Organigramme des diffrentes possibilits dacquisition. ................................ 71 Figure II. 30. Synchronisation par corrlation........................................................................ 72 Figure II. 31. Synchronisation par filtrage adapt. ................................................................. 73 Figure II. 32. Reprsentation schmatique de lorgane de dcision. ...................................... 74 Figure II. 33. Principe dun dtecteur de vraisemblance. ....................................................... 75 Figure II. 34. Principe dune dtection par maximum de vraisemblance avec corrlateur. ... 75 Figure II. 35. Synchronisation SERIE simple branche. ........................................................... 76 Figure II. 36. Synchronisation SERIE N branches. ................................................................. 76 Figure II. 37. Principe de la synchronisation RASE................................................................ 77 Figure II. 38. Schma de principe dune boucle de poursuite. ................................................ 78 Figure II. 39. Schma de principe de la DLL cohrente.......................................................... 79 Figure II. 40. Schma de principe dune DLL non cohrente.................................................. 80 Figure II. 41. Schma de principe de la TDL........................................................................... 81 Figure II. 42. Modle de la synchronisation SERIE. ............................................................... 84 Figure II. 43. Signaux en sortie des corrlateurs et signal de contrle................................... 85 Figure II. 44. Schma fonctionnel de la structure RASE. ........................................................ 85 Figure II. 45. Sortie du corrlateur pour un rapport SNR=-2,9 dB et un seuil de 1,5V.......... 86 Figure II. 46. Comparaison du gain en traitement pour les structures dacquisition SERIE et RASE......................................................................................................................................... 87 Figure II. 47. Mesure du temps dacquisition pour les 2 structures dacquisition.................. 88 Figure III. 1. Lorganisation dun modle VHDL.................................................................... 95 Figure III. 2. Structure dun fichier VHDL.............................................................................. 97 Figure III. 3. Illustration de la quantit de branche pour le domaine lectrique.................. 100 Figure III. 4. Synoptique du modle de lmetteur/ rcepteur talement de spectre. ......... 101 Figure III. 5. Synoptique de codage du systme metteur/rcepteur en VHDL-AMS............ 102 Figure III. 6. Schma dimplantation de lmetteur............................................................... 103 Figure III. 7. Schma de principe du gnrateur de codes alatoires ................................... 104 Figure III. 8. Organigramme du codage du gnrateur de PN-Code.................................... 104 Figure III. 9. Organigramme pour la fonction Encodeur diffrentiel ................................... 105 Figure III. 10. Rsultats de simulation de lorgane Emetteur ............................................... 106 Figure III. 11. Schma de limplantation du rcepteur simple branche. ............................... 107 Figure III. 12. Schma de lintgrateur/bloqueur.................................................................. 108 Figure III. 13. Organigramme de la fonction intgration/Blocage. ...................................... 109 Figure III. 14. Organigramme de la fonction test donne. .................................................... 110 Figure III. 15. Organigramme du dcodeur diffrentiel........................................................ 110 Figure III. 16. Rsultats de simulation sous le logiciel ModelSim. ..................................... 111 Figure III. 17. Synoptique de la fonction Synchronisation simple (une branche). ................ 112 Figure III. 18. Synoptique de lorgane de poursuite.............................................................. 113 Figure III. 19. Simulation des principaux signaux de lorgane de poursuite sous ModelSim. ................................................................................................................................................ 114 Figure III. 20. Dfinition dun filtrage numrique................................................................. 115 Figure III. 21. Structure du filtre de boucle numrique......................................................... 117 Figure III. 22. (a).Rponse impulsionnelle h(t) ..................................................................... 117 Figure III. 23. Processus pour le filtre numrique de la boucle verrouillage de dlai. ..... 118 Figure III. 24. Simulation dun filtre numrique RII. ............................................................ 118 Figure III. 25. Schma de principe pour loscillateur numrique contrl........................... 119
-VII-
SOMMAIRE
Figure III. 26. Evolution du registre du NCO pour deux valeurs dentre, dans le cas dun registre de 4 bits..................................................................................................................... 120 Figure III. 27. Reprsentation du bit de poids fort pour deux cas du mot W......................... 120 Figure III. 28. Organigramme de la fonction NCO. .............................................................. 121 Figure III. 29. Simulation de lorgane NCO en langage VHDL............................................ 122 Figure III. 30. Structure du gnrateur de PN-Code de rcepteur........................................ 122 Figure III. 31. Reprsentation de la fonction dautocorrlation pour chaque branche de synchronisation (Cas N=7) dcale dun temps chip. ........................................................... 123 Figure III. 32. Structure du rcepteur pour une synchronisation comptant N branches....... 124 Figure III. 33. Description du fonctionnement de lorgane slection.................................... 125 Figure III. 34. Simulation de lorgane dphaseur et du nouveau gnrateur de PN-Code... 126 Figure III. 35. Organigramme du gnrateur de PN-Code pour une synchronisation N branches. ................................................................................................................................ 126 Figure III. 36. Simulation du rcepteur dans le cas dune synchronisation 15 branches. .... 127 Figure III. 37. Schma global des tages radio-frquences pour lmission et la rception. 128 Figure III. 38. Organigrammes de fonctions composant la modulation BPSK. .................... 128 Figure III. 39. Rsultats de simulation du modulateur BPSK................................................ 129 Figure III. 40. Dmodulateur BPSK utilis la rception. ................................................... 129 Figure III. 41. Rsultats de simulation en sortie du dmodulateur BPSK. ............................ 129 Figure III. 42. Description fonctionnelle du module du canal AWGN. ................................. 131 Figure III. 43. Organigramme de la gnration dun bruit blanc gaussien. ......................... 132 Figure III. 44. Densit de probabilit laide du modle VHDL-AMS et du modle mathmatique sous MATLAB. ................................................................................................ 132 Figure III. 45. Structure interne du canal AWGN paramtrable........................................... 133 Figure III. 46. Simulation des diffrents signaux du module CANAL AWGN . ................ 134 Figure III. 47. Reprsentation du bruit gaussien avec diffrents niveaux de bruits. ............. 134 Figure III. 48. Fonction dautocorrlation thorique et simule pour N=15........................ 136 Figure III. 49. Rsultats de simulation des principaux signaux de lmetteur/rcepteur. ..... 137 Figure IV. 1. Carte de dveloppement NIOS EXCALIBUR. .................................................. 142 Figure IV. 2. Mthodologie pour un FPGA de la famille ALTERA ....................................... 143 Figure IV. 3. Synoptique du systme de tests du FPGA......................................................... 144 Figure IV. 4 : Reprsentation des diffrents dlais commands dans le canal. .................... 145 Figure IV. 5 : Schma du bloc retard_canal.......................................................................... 146 Figure IV. 6: Description du composant altshift (a) et circuit associ(b) (Depth =8,with=0) ................................................................................................................................................ 146 Figure IV. 7 : Chronogramme des signaux metteur/rcepteur avec retard programmable 147 Figure IV. 8. Circuit analogique ralisant la fonction bruit.................................................. 148 Figure IV. 9. Capture dcran de linterface graphique de commande FPGA. .................... 149 Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de lmetteur (a) et du rcepteur (b). ................................................................................................................. 151 Figure IV. 11. Chronogrammes mesurs pour diffrentes longueurs de code N=7,N=15 et N= 31...................................................................................................................................... 152 Figure IV. 12. Chronogramme systme corrl dans le cas sel =11. .................................... 152 Figure IV. 13. Chronogramme systme non corrl.............................................................. 153 Figure IV. 14. Reprsentation du temps daccrochage(TA) et de la latence (TL). ................. 153 Figure IV. 15. Chronogramme des signaux de synchronisation (retard canal seul)............. 154 Figure IV. 16. Chronogramme du mot k_out pour un canal retard de 8Tc. ........................ 154 Figure IV. 17. Visualisation des effets dun niveau de bruit de 50mV en sortie du canal..... 155 Figure IV. 18. Chronogramme du systme avec une tension de bruit de 1V. ........................ 156
-VIII-
SOMMAIRE
Figure IV. 19. Mesure de TEB du rcepteur simple implant sur le FPGA. ......................... 156 Figure 0. 2 . Architecture en couches du modle OSI........................................................... 162
-IX-
SOMMAIRE
-X-
INTRODUCTION GENERALE
INTRODUCTION GENERALE
-1-
INTRODUCTION GENERALE
-2-
INTRODUCTION GENERALE
A lheure actuelle, le march des composants lectroniques est de plus en plus complexe. En effet, les systmes lectroniques peuvent comprendre au sein dune mme puce aussi bien des technologies numriques et analogiques exigeant des arbitrages matriellogiciel que des fonctions mcaniques, optiques ou biochimiques. Les concepteurs daujourdhui doivent alors grer des systmes qui ne sont plus exclusivement lectroniques, mais pluridisciplinaires. Les dveloppeurs doivent donc concevoir des circuits htrognes (analogique-numrique, multiples domaines dapplications, matriel/logiciel) qui demande un ensemble de comptences difficiles runir au sein dune mme quipe de concepteurs. A ces difficults de conception sajouteront les contraintes toujours plus fortes du march actuel, qui poussent rduire le temps de conception et de mise sur le march. Ces constations impliquent la mise en uvre de nouvelles technologies de conception permettant de fiabiliser et de diminuer le cycle de conception. Ds lors, industriels et laboratoires de recherche ont dcid de mener des recherches conjointes, qui ont vu lmergence de plateformes de prototypage virtuel. Dans tous les domaines de lindustrie : aronautique, automobile, lectronique grand public, la prise en compte des critres de conception toujours plus nombreux impose de multiplier les angles de vision dun produit. Les prix de conception de prototype, jusqualors rels, sont en effet considrables. Ds lors, les avantages du prototype virtuel sont vidents : les performances des simulations mixtes numriqueanalogique et des outils graphiques permettent de produire un prototype virtuel dans des dlais plus courts, et un cot plus faible que celui du prototype rel. Paralllement, lvolution de llectronique numrique a permis ces dernires annes une expansion rapide des tlcommunications sans fil dans le domaine spatial ou dans la tlphonie mobile. Dernirement, les besoins en systmes fonctionnant dans les espaces clos ont beaucoup progress (cf. Figure 0.1) ; la multiplication des systmes lectroniques au sein de lhabitat ou du vhicule automobile par exemple ont ncessit le dveloppement de systmes de communication adapts pour relier les calculateurs, les capteurs et les actionneurs rpartis dans un espace restreint. Ces systmes permettent de limiter les cblages et par consquent daugmenter la souplesse dutilisation.
Besoins et applications
Habitat
Automobile
Mdecine
Communication vers Internet Connaissance en temps rel de paramtres (pression des pneus , temprature moteur)
Prototypage virtuel Figure 0. 1 Exemple des besoins en communication sans fil en milieu clos.
Les travaux prsents dans ce mmoire sinscrivent dans la volont de dvelopper un prototype mixte de communication sans fil. Son rle est de surveiller, administrer et commander un espace clos bas sur un systme multicapteurs. Le systme de communication sera donc capable de transmettre aussi bien des donnes faibles dbits (infrieurs quelques -3-
INTRODUCTION GENERALE
kbit/s) de type capteur de temprature, de prsence, que des donnes ncessitant de forts dbits dans le cas dune transmission de voix ou de donnes vido. La technique de communication qui a t retenue est celle par talement de spectre par squence directe (DSSS) dont les proprits apportent certains avantages pour un environnement clos. Des travaux antrieurs [BOUR00] [MELE01] ont permis, laide du logiciel de simulation comportementale SABER de modliser le systme communicant. Une tude du modle en environnement idal a valid les diffrentes fonctions du systme mixte. Par la suite, des travaux complmentaires ont permis une implantation ASIC des fonctions dtalement et de dstalement seules. Les travaux prsents dans ce mmoire constituent une continuit directe des travaux prcdents. Notre souci est de rpondre aux besoins actuels de la conception systme par ordinateur, que sont loptimisation, et la fiabilisation du produit au niveau de la conception assiste par ordinateur. Dans ce cadre, notre dmarche de dveloppement dans cette thse repose sur une plateforme de prototypage virtuel utilisant un langage de haut niveau, permettant de dcrire la conception de la totalit des circuits mixtes analogique-numrique tant en mission quen rception. Pour cela, nous avons ax nos recherches sur la description des fonctions analogiques numriques en vue dune intgration sur un circuit programmable. Une premire partie de ce mmoire prsente les enjeux dans le milieu industriel de la conception. Nous dcrirons tout dabord les mthodologies classiques de dveloppement et les diffrentes techniques de vrification en dtaillant plus particulirement celle par prototypage virtuel. Ces mthodes ne correspondant plus au march, nous dfinirons les mthodologies de conception actuelles. Aprs avoir dress ltat de la conception systme, nous listerons les cibles matrielles de conception. Nous confronterons deux types de cibles en terme dapplication et darchitecture, pour retenir celle qui correspond le mieux la ralisation dun prototype. Nous dfinirons alors loutil logiciel de conception adquat pour un systme mixte. La seconde partie de ce mmoire prsente le cahier des charges du systme multicapteurs. Aprs une tude sur les systmes de communication existants, nous comparons les caractristiques techniques dune chane de communication numrique afin de justifier les solutions de modulations et de codage retenues pour la ralisation de notre systme. Nous accorderons un intrt particulier la mthode daccs au canal. Nous serons donc en mesure de proposer un schma fonctionnel du modle metteur/rcepteur. Une tude complmentaire fera tat de diverses techniques de synchronisation et poursuite. Plus particulirement, nous comparerons diffrentes architectures de synchronisation et poursuite en environnement bruit et nous en dfinirons leurs performances. Aprs avoir tabli larchitecture des diffrents organes de notre systme de communication metteur/rcepteur, les tages numriques et analogiques sont prsents dans la troisime partie de ce mmoire. Pour cela, nous aurons dfinir le langage de haut niveau HDL (High Description Language) pour le codage des fonctions numriques et analogiques. A partir de ce langage, nous prsenterons les diffrents fonctions numriques et analogiques mises en jeu tant au niveau de lmetteur que du rcepteur : encodage, gnrateur de PNCode, fonctions talement/dstalement, organe de poursuite, boucle verrouillage de dlai, canal, modulation/dmodulation. Les simulations fonctionnelles nous permettront de choisir la topologie des tages numriques et analogiques, et de fixer larchitecture finale de notre modle. Disposant alors des fichiers sources, la dernire partie de ce mmoire portera sur la ralisation dune maquette metteur/rcepteur en bande de base. Nous dfinirons tout dabord la cible de conception choisie et la procdure de conception pour un circuit FPGA. Nous -4-
INTRODUCTION GENERALE
prsenterons le synoptique de notre platine de tests et dvelopperons plus particulirement les modules spcifiques associs. Aprs avoir indiqu les rsultats de synthse, nous valuerons les performances en milieu idal (non bruit) ainsi quen milieu bruit. Nous mesurerons plus particulirement la latence de notre circuit en fonction des squences du code dtalement et le taux derreur sur le bit associ.
-5-
-6-
Rsum
Ce chapitre contient un tat de lart de la conception systme et les solutions techniques actuelles. Pour comprendre la problmatique de conception systme, nous prsentons dans ce chapitre les mthodologies de conception actuelles et le choix de loutil de conception.
I.1 I.1.1 I.1.2 I.1.3 I.2 I.2.1 I.2.2 I.3 I.3.1 I.3.2 I.3.3 I.4
Etat de lart de la conception systme....................................................................................................... 9 La conception systme dans le contexte industriel............................................................................... 9 Le prototypage virtuel........................................................................................................................ 16 Les mthodologies de conception actuelles ....................................................................................... 17 Solution technologiques actuelles........................................................................................................... 20 Les cibles de conception existantes [ROB02] .................................................................................... 21 Le march actuel des composants...................................................................................................... 23 Comparaison des langages et outils de conception ................................................................................. 25 Introduction ....................................................................................................................................... 25 Les outils issus du milieu logiciel....................................................................................................... 26 Les outils issus du milieu CAO........................................................................................................... 27 Bilan ....................................................................................................................................................... 35
-7-
-8-
1998
0,25m
1M-2M portes logiques 12 -10 mois PDA sans Fil 2,0 -3,0 milliards
1999
0,18m
4M -6M portes logiques 10- 8 mois Application internet 3,0 -4,0 milliards
2002
0,13m
10M -25M portes logiques 8-6 mois Contrleur interconnect et intelligent > 4,0 milliards
0,35m
200K -500K portes logiques 18-12 mois Tlphone portable, PDA, DVD 1,5- 2,0 milliards
-9-
Bien que la limite thorique pour la longueur de canal aurait t estime 0,5m dans les annes 80, nous voyons dans le Tableau I. 1 que cette prvision a t largement sous-estime. La complexit des applications a donc engendr une augmentation de la capacit dintgration des transistors sur une puce par une volution de la technologie autorisant une diminution des dimensions de canal. Lautre difficult auquelle doivent faire face actuellement les industriels cest la concordance du produit de nouvelles technologies avec le march conomique. La notion de temps de mise sur le march (Time to market) est devenue une contrainte importante lors de la conception dun nouveau produit. Cest pourquoi il faut imprativement lheure actuelle rduire au maximum ce temps de mise sur le march. Dure de vie Bnfices Systme produit en accord avec le march Systme produit en dcalage
Temps
Figure I. 1. Evolution des bnfices dune entreprise en fonction de lvolution dans le temps
Lexigence de diminuer ce temps de mise sur le march a t rpercute sur le temps de conception qui, malgr laugmentation de la technologie, est de plus en plus court. En effet ces temps de conception ont diminu de moiti sur ces 8 dernires annes alors que la capacit dintgration a t multiplie par 50. Au vu des prvisions de NTRS (National Technology Roadmap for Semiconductors) [NTRS], nous aurions thoriquement atteint de nos jours des centaines de millions de transistors par puce. Cependant, lheure actuelle ce potentiel dintgration ne peut tre exploit. En effet, il existe un foss entre la conception (la complexit dun projet en terme du nombre de transistor) et la technologie (complexit de ralisation en terme de capacit technologique dintgration). Cette diffrence entre le nombre de portes concevoir et le nombre de portes conues est un phnomne identifi auprs des concepteurs comme tant le Design Productivity Gap ou le Design Gap .
-10-
1000
100
10
0,1
0,01
Figure I. 2. Evolution et prvision de la complexit en terme de conception et de technologie, selon le consortium de fabrication de puces SEMATECH [SEMA]
Comme le montre la Figure I. 2, partir des annes 90 la technologie a rattrap, puis dpass, la conception et ne cesse ds lors daugmenter. Toutefois, cette rapide volution de la technologie et de la complexit du circuit cre aussi un cot de fabrication (Tableau I. 1) croissant pour des mthodes classiques de conception.
$100 000 000
$1 000 000
$100 000
"Mthodologie RTL"
19 81 19 83 19 85 19 87 19 89 19 91 19 93 19 95 19 97 19 99 20 01 20 03 20 05 20 07 20 09
Technologie Productivit
1990
1995
2000 Annes
2005
2010
2015
2020
-11-
La mthodologie de conception la plus dveloppe au dbut des annes 90 est une mthodologie de type RTL (Register Transfer Language) permettant la description dun systme comme un ensemble de registres et de relations logiques. Nous voyons (Figure I. 3) quen restant avec une conception de ce type, le cot de conception sera de plus en plus lev puisque la technologie ne cesse dvoluer. Pour tre en concordance avec les applications du march et les temps de plus en plus rduits il est donc ncessaire de dvelopper de nouvelles mthodologies de conception. Dans le paragraphe suivant, nous rappelons le cycle de conception dun produit industriel connu sous le nom de Cycle de conception en V et la mthodologie de conception traditionnelle dans le cas dun dveloppement de circuit intgr.
I.1.1.2
E F G
Figure I. 4. Flot de conception dun circuit intgr classique
Le point de dpart dune conception de circuit intgr classique est le cahier des charges. Il consiste dfinir les spcifications, savoir : les diffrentes fonctionnalits ; par exemple on recherche dans ce descriptif dfinir le gabarit dun filtre numrique.
-12-
ses performances ; pour notre exemple cest la dfinition des diffrents paramtres du filtre numrique choisi. les possibilits dinterfaage. les contraintes lies la puce finale ; par exemple pour respecter la frquence dchantillonnage, il faudra limiter le nombre dinterconnexions. La conception dun circuit intgr classique se droule par les tapes successives suivantes: A. un dveloppement structurel sera cr dfinissant les fonctionnalits du systme. B. une vrification fonctionnelle du code RTL produit est faite. C. la description RTL de lapplication est alors synthtise en un fichier dcrivant linterconnexion des lments aussi connu sous le nom de netlist. D. une vrification temporelle est alors effectue afin de vrifier si les performances souhaites sont bien satisfaites. Lorsque cest le cas, la netlist sert de base afin de raliser la conception physique . E. nous passons ltape suivante (aussi appel Back-end) qui transforme le schma logique de la netlist en un plan de masse physique. F. le placement-routage des cellules est alors effectu. Il permet de placer (gnralement grce un algorithme de routage) le plus judicieusement les cellules pour que le nombre des interconnexions soit optimis. G. Enfin la dernire vrification permet de prendre en compte les paramtres physiques lis la puce. Une fois cette tape de vrification acheve, le layout du circuit est envoy en fonderie pour la ralisation finale. Toutes ces tapes ncessitent la collaboration de plusieurs quipes (au moins deux) de dveloppement. Pour diminuer les cots et les temps de conception de cette mthodologie de type RTL, une solution est de concevoir un prototype avant de lancer la fabrication en srie du produit. Le cycle de conception habituellement utilis en industrie est celui en V. Malgr la complexification des systmes en industrie, ce cycle de conception na pas subi davances majeures [SNAI04].
larchitecture est dcide, les concepteurs analyseront chaque bloc unitaire (ou sous-fonction) et en dtermineront larchitecture finale pour la conception dun prototype. Besoin Analyse
Cahier des charges Analyses fonctionnelles
Produit Prototypes
Test oprationnel F Test dintgration E systme Test Architecture D Test unitaires
(3)
Validation Architecture
A
Vrification fonctionnelle
Conception Architecture
(3)
B
Vrification implmentation
Prototype
Paralllement aux tapes prcdemment prsentes sarticule la branche prototype , dont lobjectif est de sassurer que les prototypes respectent toujours les spcifications. La vrification de ce systme comporte diffrents points de tests montrs sur la Figure I. 5. Les points de tests et de vrification sont les suivants : A. Vrification de la fonctionnalit pendant la phase de conception. B. Vrification de limplmentation de larchitecture. C. Test unitaire. D. Test architecture permettant de vrifier larchitecture du systme. E. Test dintgration systme permettant de vrifier lintgration des composants. F. Test oprationnel permettant de tester le systme dans son environnement avant sa fabrication. Le cot de ces vrifications est trs lev en termes de temps et dinvestissement puisquon estime que 70% du temps de conception [EVAN03] est pass pour la vrification. Il est vident que la vrification du systme doit tre rigoureuse, car une erreur dtecte aprs fabrication entranerait un surcot.
-14-
-15-
Plusieurs types de prototypage sont rencontrs [SASON04] : Le prototypage virtuel. Le prototypage matriel. Le prototypage mixte. Le prototypage virtuel se fait par simulation de tous les composants du systme. Ces simulations [CLOU02] peuvent combiner diffrents niveaux dabstractions (niveau fonctionnel, niveau architectural, niveau RTL ). Linconvnient de ce type de prototype est sa vitesse car elle nest pas aussi leve que dans le cas dun mulateur par exemple. Le prototypage matriel quant lui utilise les modles physiques des composants pour la ralisation du systme. Limplmentation de ce type de prototype utilise des composants reconfigurables ce qui implique de connatre la description RTL ou en termes de portes logiques de chaque composant. Le prototypage mixte combine aussi bien de la simulation, que de lmulation et de lutilisation de composants rels. Son principal inconvnient est donc linterconnexion entre la partie simulation et la partie mulation. Notre choix pour notre systme sest port sur le prototypage virtuel qui a lavantage dtre flexible et de faible cot.
prototype virtuel peut demander plus ou moins de temps selon le niveau dabstraction. Si par exemple, nous sommes un niveau dabstraction comportemental, la modlisation sera rapide dans la mesure o les tages sont reprsents par leur fonction et non par leur description physique. Dans ce cas de niveau dabstraction physique, les temps de conception sont augments puisque le dveloppement intgre la technologie (physique du transistor par exemple). Dans tous les cas, les spcifications devront tre tablies en fonction du produit demand et des dispositifs existants. En effet si la modlisation se fait sur la base de produits existants, les spcifications devront comprendre ses rsultats rels. Par contre, les produits inexistants devront se baser sur les spcifications fonctionnelles. Limplmentation dun prototype virtuel [VALD98] peut se faire par simulation ou cosimulation (simulation avec plusieurs simulateurs). Nous pouvons dans ce type de prototypage faire cohabiter aussi bien des simulations de niveau RTL, que des simulations de niveau fonctionnel. Lavantage est sa flexibilit et son cot puisquil sagit de simulation pouvant introduire des modles de hauts niveaux. Le point faible de ce type de prototypage est quil est difficile de connecter un prototype virtuel avec lenvironnement physique du systme.
-17-
La Figure I. 7 reprsente lvolution de la capacit dintgration des circuits au cours de ces dernires annes, et montre linfluence de ces nouveaux paradigmes de conception sur la complexit grandissante.
Figure I. 7. Reprsentation des changements de paradigmes avec la complexit des composants [BORE99]
I.1.3.2
Paralllement aux quatre volutions majeures (Synthse haut niveau, Codesign, IP-Based et Plateform-based) dcrites dans le paragraphe prcdent, les industriels se sont efforcs de rduire lvolution des cots (Figure I. 8.a) de production associe laugmentation de la complexit. Pour cela, nous avons rpertori sept actions visant modrer les cots et reportes leur influence sur la Figure I. 8.b.
-18-
(a)
(b)
Ces innovations [KAHN02] sont : Le placement routage sur le site de dveloppement du prototype . Opration auparavant effectue par le fondeur, les dlais pouvaient atteindre une semaine. Depuis 1993, le placement routage est fait sur site avec des dlais avoisinant dsormais quelques heures. Ceci se traduit par une amlioration de lordre de 40 % de la productivit et 5 K portes par an et par concepteur. Lingnierie . Cette mthodologie a permis de montrer quau lieu de diviser les travaux de conception en quipe dexperts (simulation et synthse), une seule personne devra suivre la conception du circuit. Cette dcouverte a permis de raliser une amlioration de productivit de 63% en 1995 soit 9 K portes par an et par concepteur. Small block reuse et large block reuse . Ces techniques permettent la rutilisation des blocs matriels et autorisent les premires grosses avances de la productivit, atteignant + 340% dans le meilleur des cas soit 56K portes par an et par concepteur. IC implementation tool set est une automatisation du flot de conception RTL, par lapparition de nouveau outil logiciel, qui a permis une amlioration de 63% pour la productivit. Intelligent Test Bench est une automatisation du flot de vrifications fonctionnelles (vu dans le cycle en V) qui inclut naturellement la vrification matrielle IC implementation tool . Cette technique a permis une augmentation de 37,5% pour atteindre 91K portes par an et concepteur. Electronic System level methodology . Lvolution de la complexit fait apparatre dans les annes 2000, la ncessit de faire cohabiter aussi bien la partie matrielle que la partie logicielle. Nous tendons alors vers une description simultane fonctionnelle/ architecturale. Very large Block Reuse. Ce paradigme ltat naissant est lvolution logique des fonctionnalits Small block reuse et large block reuse , permettant de rutiliser en totalit des macro-fonctions. Cependant, des problmes de compatibilit se posent principalement dun point de vue logiciel.
-19-
I.1.3.3
Comme nous lavons vu prcdemment, le codesign a t lun des paradigmes cl permettant de lutter contre linflation des possibilits de production devant la capacit dintgration (Design Gap (Figure I. 2)). Le codesign autorise une conception simultane des environnements logiciel et matriel et ainsi de diminuer le temps de conception [CLOU01]. Les mthodologies proposes pour le codesign se diffrencient en fonction des choix stratgiques : le style de spcifications, le modle de larchitecture cible et les tapes de synthse. Diffrents modles de description sont possibles pour le codesign [HAMO05] [VERM02] : soit un langage de description matrielle (VHDL ou Verilog), soit de logiciel (C ou assembleur) soit dans un langage de description au niveau systme (SDL, StateCharts, CSP, SpecCharts, etc). La conception conjointe matrielle ou logicielle peut tre vue de la manire suivante:
Cette approche typique du codesign commence par dcrire partir dun langage de spcifications le niveau systme afin de raliser le dcoupage logiciel/matriel. La rpartition des environnements tant ralise, une synthse de communication entre ces deux environnements doit tre effectue. Chaque environnement accompli sa propre synthse pour arriver jusqu la conception du prototype. Le dcoupage des parties logicielles et matrielles dpend des outils de co-simulation utiliss et des contraintes (cots de simulation, flexibilit.).
-20-
I.2.1.1
Les ASICs
Un ASIC (Application-Specific Integrated Circuit) est un circuit intgr application spcifique. Il est class en 2 catgories : Le circuit semi-spcifique (certaines tapes ont t faites avant la conception de fabrication) et le circuit spcifique (toutes les tapes de fabrication seront ralises aprs la conception).
I.2.1.2
Les FPGA
Les FPGA (Field Programmable Gate Array) font partie de la famille de composants programmables lectriquement. A lorigine bass sur un rseau de matrices de portes lmentaires ET et OU (Program Array Logic ou PAL), ces circuits programmables sont
-21-
devenus au milieu des annes 90 des circuits plus complexes grce lintgration de ressources spcifiques ddies, associes de la mmoire interne et des entres/sorties flexibles [DUTE02][BROW96].
Matrice de connexion Bloc logique programmable programmable Matrice dinterrupteur programmable
Un FPGA est un circuit dont larchitecture correspond une matrice de portes logiques spares par des rseaux dinterconnexion. Ils existent deux types de FPGA : les non reprogrammables (technologie de type anti-fusible) et les reprogrammables (technologies de type SRAM ou Flash). La programmation de ce type de composant se fait laide dun langage de type matriel (VHDL ou Verilog) sur une platine de programmation. La tendance actuelle pour ces circuits est la possibilit de raliser des systmes sur puce (ou SoC) en utilisant des composants virtuels et de concevoir ainsi des blocs de proprit intellectuelle (Intellectual Property ou IP) qui sont par exemple des fonctions VHDL/Verilog gnriques rutilisables. Le FPGA offre une souplesse de conception grce sa facilit dutilisation et sa facilit de programmation (et reprogrammation). Contrairement un circuit ASIC, pour lequel le concepteur matrise totalement le placement routage au niveau transistor, le FPGA nautorise pas cette opration qui seffectue de manire transparente pour le dveloppeur. Pour une application visant la mise sur le march dune forte qualit des produits, le circuit spcifique est la solution fable cot. Par contre, dans le cas dun dveloppement ponctuel, le FPGA est nettement plus avantageux. Cest pourquoi ce composant est plus adapt pour la mise au point de prototypes et accessible un plus grand nombre dutilisateur que lASIC.
I.2.1.3
Les DSP
Un DSP (Digital Signal Processing) est un type particulier de microprocesseur, quivalent un circuit intgr programmable en langage C ou assembleur. Il comporte essentiellement des units arithmtiques ddies et optimises pour des calculs rapides. Ces fonctions sont destines le rendre particulirement performant dans le domaine du traitement numrique du signal. Comme un microprocesseur classique, un DSP est mis en uvre en lui associant de la mmoire (RAM, ROM) et des priphriques. Un DSP typique a plutt vocation servir dans des systmes de traitements autonomes. Il se prsente donc gnralement sous la forme dun microcontrleur intgrant, selon les marques et les gammes des constructeurs, de la mmoire, des timers, des ports srie synchrones rapides, des contrleurs DMA, des ports dE/S divers. Ces dernires annes, les techniques base de processeurs de traitement du signal ont t largement employes pour la conception dmetteurs-rcepteurs de communication volus, trouvant leur champ dapplication dans la dtection, lgalisation, la dmodulation, les synthtiseurs de frquence.
-22-
I.2.1.4
Les SoCs
Daprs Gartner Dataquest (Socit dtude de march) [GARTWW] un SoC est dfini comme un composant dau moins cent milles portes et comprenant un noyau programmable (processeur ou DSP) et de la mmoire (de type RAM et/ou ROM).
Figure I. 11. Intgration dune carte lectronique (exemple de fonction de carte mre)
Plus concrtement, la tendance actuelle est dintgrer sur une mme puce de silicium aussi bien des fonctions numriques que des fonctions logicielles (processeur, interfaage ). La Figure I. 11 illustre les possibilits dintgration en terme de fonction dune carte mre dun ordinateur personnel sur une seule puce, sur laquelle nous voyons cohabiter le microprocesseur, les mmoires avec les fonctions classiques associes. Le composant virtuel (lautre nom donn au SoC) est souvent commercialis par des socits spcialises qui fournissent les blocs IP pouvant tre sous forme matrielle (masque par exemple) ou sous forme logicielle (modle VHDL). Des prvisions dvolution, de ce type de technologie, faites par lIRTS [IRTS03] prvoient laugmentation du nombre de transistors par un facteur 50. On pourrait atteindre en 2008 le nombre de 500 millions de transistors sur un mme SoC. Les principaux avantages de ce type de composant sont sa capacit dintgration, la conception dune plateforme commune entre le milieu logiciel et le milieu matriel et sa consommation rduite. Cest pourquoi de nombreuses dtudes portent sur la co-simulation et son implmentation en SoCs.
-23-
Tension Alimentation
Applications
Technologie
Cellules ou instructions
FPGA
Virtex 4 (XILINX) 0,9m 450MHz 1,2 V 864 9936 6144 Circuits logiques (Famille 89088 LX) Application SoC (Famille FX) Application DSP(Famille SX) 6240 Applications logiques 71760 SoC (NiosII) Application DSP 30k 3M CPU : PPC405 (G1) Fx seulement
Stratix II (ALTERA)
0,9m
ProASIC3 (ACTEL)
0,13m (Flash)
Hardcopy II : Migration sur ASIC dune architecture sur STRATIX II Applications logiques Composants pour les systmes intrinsquement aronautiques et spatiaux immunis au SEU (Single Event Upset)
DSP
C6000 (Texas Instrument) 0,18m 1GHz 1,1V 64 et 2048 1,9V 1200 Virgule fixe : tlphonie, Compiler C pour 8000 Systme multicanal , optimiser les MIPS Biomtrie performances 600 1800 MIPS Blackfin (Analog Devices) 0,18m 400 750 MHz 0,8V RAM 52 kB et 1,6V 308 kB Virgule flottante : Haute prcision comme traitement dimage ou instrumentation TNT et appareil photos numriques.
RISC 32 Bits
Nous observons tout dabord une cible dapplications diffrentes entre les diffrentes familles de composants programmables. Les applications vises par les constructeurs de FPGA sont principalement la programmation dapplications ddies aux fonctions logiques et des applications de type SoC. Les applications touches par les DSP sont la tlphonie, la biomtrie ou limagerie, donc des applications ncessitant des performances de processeurs plus leves compares aux applications FPGA. Toutefois, les technologies rcentes des FPGA (Virtex 4 (Famille SX) et Stratix II) disposent de nouvelles architectures technologie mixte, base de FPGA et de DSP, permettant des capacits de calcul massives et comprenant des systmes dentres/sorties haut dbit. De plus, nous pouvons noter que le FPGA du constructeur ACTEL a orient sa technologie pour lutter contre les SEU (fortes contraintes du domaine aronautique et spatiales) ce qui explique que sa technologie (au niveau longueur du canal) soit moins avance que pour les constructeurs ALTERA et XILINX. Pour les applications logiques qui correspondent notre systme, le FPGA semble pour linstant le meilleur choix. Pour continuer notre comparaison entre ces composants, nous exposerons la diffrence architecturale entre un FPGA et un processeur.
-24-
Divers
Constructeurs et composants
I.2.2.2
La Figure I. 12, donne en exemple une architecture type pour un systme embarqu avec monoprocesseur (System On Package ou SoP) o on peut identifier les composants dcrits prcdemment (FPGA, SoC ou DSP).
Si la cible est une solution systme (SoP) ou une solution SoC, le composant FGPA communique seul avec lextrieur et change les informations avec le processeur et les soussystmes via un bus de communication rapide. Dans le cas dune solution FPGA, le systme est isol et ne ncessite aucune interface de communication. Cette tude nous montre que pour la conception dun prototype, le FPGA apparat comme la solution retenir. En effet, le march des FPGA (Tableau I. 2) est celui qui correspond le mieux lapplication vise qui est de type applications de dveloppement de fonctions logiques . De plus, nous venons de montrer que lutilisation dun FPGA pour la conception systme nest pas restrictive et permet denvisager une application logicielle si ncessaire. Le choix de la cible de conception finale sera aussi dtermin par loutil logiciel de conception utilis. Cest pourquoi nous passerons en revue dans le prochain paragraphe les diffrents outils de conception et leur langage associ.
-25-
conception logicielle. Le Tableau I. 3 rsume les langages de modlisation multi-domaines. Nous avons aussi fait une distinction pour les outils de type analogique (rsolution partir des quations diffrentielles) et les outils de type numrique (simulateur dirig par venements). Outils issus du milieu de la CAO Type de langages Analogique Niveau dabstraction Niveau Spcifications Niveau Comportemental Niveau Spice architecture Niveau Composant Numrique Outils issus du monde logiciel Mixte C/C++
VHDL -AMS
VHDL Saber
Matlab /Simulink
Verilog
-26-
1
Modle Simulink (fichier .mdl) Modle Simulink (fichier .mdl)
Fichier Source
2
Utilit de conversion Modle VHDL (fichier .vhd) Optimisation
Algorithme de conversion
Simulation Logique
Synthse
3
Vers implantation
ASIC
Netlist : Simulation
Vers implantation
FPGA
Pour chaque tape du procd, le fonctionnement du systme est vrifi, soit avec des rponses de type comportemental (chelon, sinusodale) pour la partie 1, soit avec des rponses de types logiques (0 ou 1) pour la partie 2 et 3. La base de conversion correspond aux lments du systme dfini en . mdl sous Simulink. Seuls les lments numriques seront pris en compte pour la conversion. Ces fichiers sont crs en terme de code VHDL c'est--dire avec des architectures et des entits. Le code est alors optimis pour prdfinir une architecture. Cette architecture choisie, est alors vrifie par une simulation numrique. Lorsque la phase vrification a donn les rsultats escompts, nous pouvons synthtiser le code VHDL. La synthse permettra davoir une netlist pour le placement/routage. Cest partir de cette tape que lon peut choisir la cible de production (FPGA ou ASIC). Matlab a pour inconvnient dtre un langage propritaire. La conversion de fichier .mdl en fichier VHDL tait lpoque de notre choix doutil de conception trs peu exploitable.
-27-
PSPICE (Personnal Computer SPICE) [NAGE75] et Avant la version pour station dnomme HSpice. Bas initialement sur une saisie de la topologie sous forme de texte, MicroSim tendra ensuite la programmation par loutil Probe qui prsente les rsultats de simulation sous forme graphique. Dautres volutions arriveront ensuite comme linterface Schematics qui permet la description graphique des circuits jusqu nous amener la version PSpice A/D (Analogical/Digital). La notion de simulateur mixte apparat alors, permettant de simuler des circuits comprenant aussi bien des lments analogiques que des lments numriques. Sa bibliothque comprend plus de 18000 modles, Pspice est bien implant dans le milieu industriel. Pspice est en fait une volution graphique de SPICE, ce qui veut dire quil utilise le mme algorithme numrique et les mmes fichiers que SPICE. Lordinateur construit une netlist partir du schma et dtermine en chaque nud lquation du circuit. Cet outil se base donc toujours sur le modle de base. Cependant, lvolution des modles nest pas trs facile, le simulateur tant bas sur le mme cur depuis son apparition. Les circuits actuels augmentant en complexit, il est de plus en plus difficile de les simuler dans des conditions normales avec cet outil car le temps de simulation peut devenir rapidement excessif. Ainsi, ce simulateur ne peut aujourdhui rpondre tous les besoins de modlisation de circuits, notamment pour les raisons suivantes : - La difficult dcrire le comportement souhait cause des quations primitives complexes de SPICE. - Les temps de simulations peuvent devenir prohibitifs cause de la description trop dtaille des composantes internes aux circuits ou de la prsence dune constante de temps leve. - Le dveloppement de modlisations mixtes puisquil est bas sur un simulateur temps continu.
I.3.3.2
Simulateur numrique
Au dbut des annes 90, laugmentation du nombre de portes de circuits numriques a ouvert la voie aux langages de description matrielle de haut niveau (les HDL, Hardware Description Language). Deux dentre eux ont merg et sont couramment utiliss : VHDL (VHSIC Hardware Description Language) et Verilog. Ces deux langages bnficient du support de la quasi-totalit des logiciels [SMIT98].
-28-
PLI. La popularit du Verilog augmentant et larrive du langage VHDL, il devenait important pour les personnes de lOVI (Open Verilog International) de fonder un comit de travail pour sa standardisation IEEE. Ce comit a t form en 1993 et a donn lieu au standard 1364-1995 qui combine la syntaxe du langage Verilog et son PLI. Pour ces quipes de conception, les points positifs de ce langage sont : une facilit de prise en main pour les habitus du langage C ainsi quune assignation des signaux moins contraignante que le VHDL. Par contre, cette absence peut tre pigeuse dans la mesure o le type de signaux (bus, sign ) nest pas pris en compte. De plus, Verilog ne comporte pas de concept de package (ni de librairies). Ainsi chaque fonction et chaque procdure dun module doivent tre dfinis dans ce module. La description dun systme mixte est aussi possible en Verilog et porte le nom de Verilog-AMS HDL. Ce langage est dfini sur la base du Verilog 1364-1995 pour la partie numrique, et du Verilog-A pour les systmes analogiques.
I.3.3.3
La simulation mixte a pour objectif de faire cohabiter la gestion des signaux temps continus (analogiques) et temps discrets (numriques). Ainsi, cette technologie de simulation permet de concevoir des fonctions pluridisciplinaires telles que mcanique, optique, chimique, biochimique, fluidique. Des langages ont t crs dans ce sens VHDLAMS et Verilog-AMS qui sont lextension des langages VHDL et Verilog. Dautres langages, comme celui du logiciel SABER, permettent de dcrire des fonctions mixtes. Nous allons prsenter deux langages cls dans la chronologie du dveloppement de la modlisation des systmes mixtes, savoir le langage propritaire MAST et le langage norm VHDL-AMS.
-29-
Ces premiers simulateurs ont pour dsavantage dtre difficiles daccs pour les non initis au langage. Cest pourquoi ces outils sont de moins de moins utiliss aujourdhui comme par exemple le logiciel Hamster qui nest plus commercialis (racheter par la socit Ansoft , il a t intgr sous le logiciel Simplorer). Cet outil tant simple dutilisation, il est encore utilis par les enseignants pour lapprentissage du VHDL-AMS. Les autres outils de conception sont puissants mais plutt rservs aux spcialistes du langage. Cest le cas du logiciel ADVanceAMS qui est loutil le plus pourvu en lments dimplmentation de la premire norme VHDL-AMS. -30-
La relative complexit du langage VHDL-AMS allie au march de la technologie mixte en pleine croissance, ont pouss les dveloppeurs supportant la norme faciliter son accs aux non spcialistes. Comme lavait fait en son temps Spice, certains des outils prcdemment cits, ont t dvelopps sur la base dune interface graphique utilisateur (Graphical User Interface : GUI). Ceci permet aux personnes non expertes de saffranchir du langage et de navoir qu utiliser, pour leur tude, les botes codes par les spcialistes du langage. I.3.3.3.3.2 Les outils interface graphique
Comme nous venons de le voir, ces outils interfaces graphiques permettent de saffranchir, un certain degr, de la connaissance du langage VHDL-AMS. Ils permettent donc de concevoir un microsystme partir du code HDL masqu sous une image. Pour cela, lutilisateur ne rentre que les paramtres et le type des signaux dentres/sorties. Les outils actuels prsents sur le march sont : SaberHDL (Analogy) [SYNO03] Il permet dutiliser une bibliothque restreinte de composants pluridisciplinaires. La premire version de SaberHDL est toutefois pauvre au niveau des composants de la bibliothque. Simplorer (Ansoft) [ANSO03] Il se base pour son noyau de simulation VHDL-AMS sous loutil hAMSter. Cest le premier outil qui a dvelopp une reprsentation graphique pour coder en VHDL-AMS. SystemVision (Mentor Graphics) qui se base sur AdvanceAMS [MENT03] Linterface graphique permet aussi lutilisateur d instancier le modle souhait. Enfin, lutilisateur un peu plus expriment pourra alimenter les bibliothques de composants en crant ses propres modles. Un des paramtres important, pour le choix de lun de ces outils supportant cette norme, est le nombre de composants fournis par la bibliothque dorigine et limplmentation des librairies associes. I.3.3.3.3.3 Comparaison des diffrents outils
A partir des proprits nonces ci-dessus ainsi que dune tude comparative [HAMO05] de trois simulateurs bass sur le langage VHDL-AMS, nous avons rsum et compar leurs performances gnrales pour le concepteur systme dans le Tableau I. 4. Le troisime simulateur a donc un environnement graphique convivial et permet aussi linterfaage avec C/C++, mais pour sa version complte. Malheureusement, ntant pas disponible au sein de notre laboratoire nous navons pas retenu ce logiciel. Cest pourquoi nous nous sommes intresss dans un premier temps aux simulateurs SaberHDL [SYNO03] et SystemVision [MENT03]. Comme le montre le tableau cidessous, la cration dun code VHDL-AMS est plus difficile avec loutil SaberHDL car il ne possde pas dditeur interne pour le codage des fonctions. Lautre point ngatif pour SaberHDL tait que la bibliothque de composants est moins fournie que SystemVision. Nous avons, en plus, rencontr des difficults au niveau des librairies standard qui ntaient pas encore toutes implmentes sous SaberHDL. Pour toutes les raisons que nous venons dnoncer, nous avons choisi dutiliser loutil SystemVision pour le dveloppement dun prototype virtuel.
-31-
Socit Cration du code VHDL-AMS Cration dun symbole Bibliothque de composant Algorithme de Simulation Disponibilit du logiciel
SaberHDL Synopsis Utilisation dun diteur externe Manuelle Elments de base crits en VHDL-AMS Simec Licence associe SABER
SystemVision Mentor Graphics Editeur interne Automatique et avec outil interne Elments de base crits en VHDL-AMS Newton Calaveras Version gratuite pour les tudiants disponibles sur internet
Simplorer Ansoft Cration automatique de lentte du modle. Automatique Elments de base crits en VHDL-AMS Eldo Version gratuite pour les tudiants disponibles sur internet
I.3.3.4
Au vu de ltude prcdente prsentant ltat des outils associs, la conception mixte peut senvisager, soit partir dun langage propritaire, soit partir dun outil norm. Pour rpondre cette question, nous allons confronter des mthodes que nous appellerons m1 & m2. Ces deux mthodes se basent sur la branche gauche du cycle en V (Figure I. 5) : - m1 : cette mthode fait appel au langage propritaire MAST, support par loutil logiciel SABER. - m2 : cette mthode fait appel au langage normalis VHDL-AMS.
-32-
Environnement
SABER
NOK
Validation de larchitecture
OK
Pour un outil de simulation mixte tel que SABER la mthodologie de conception commence par une tude comportementale sous le logiciel. Les fonctions dvelopper sont crites en langage propritaire MAST (langage propritaire de Saber). Un avantage rside dans la prsence dune bibliothque de modles et des fonctions pluridisciplinaires. Lutilisateur peut galement dvelopper ses propres modles, un niveau dabstraction allant dun modle fin de transistor un macro-modle de trs haut niveau. Dans un objectif de synthse de fonctions numriques, le dveloppeur doit obligatoirement coder manuellement et de manire synthtisable ces fonctions. Cette tape peut vite savrer extrmement lourde et coteuse en temps.
-33-
Environnement VHDL-AMS
Etages Analogiques VHDL -AMS Etages Numriques VHDL Synthtisable
NOK
Validation de larchitecture
OK
-34-
99 instructions lines
(Module compilable seul, possibilit de nouvelle architecture sans recompiler les autres modles) 6 min 51 sec CPU TIME (SystemVision) (Difficult dapprentissage du langage VHDL-AMS)
I.4 Bilan
Ltat de lart sur la conception systme que nous venons de dresser, a permis de mettre en lumire qu lheure actuelle les systmes concevoir sont de plus en plus complexes avec un temps de mise sur le march de plus en plus rduits. Cest pourquoi la mthodologie de conception a pris une place importante dans la fabrication systme. Ce cycle de conception (qui est gnralement en V) peut tre diminu par lutilisation dun prototypage. En effet les phases de vrification du cycle en V, au nombre de cinq dans le cycle traditionnel en V, sont dnormes consommatrices de temps. Nous avons alors fait tat, dune synergie forte entre industriels et laboratoire de recherche, en essayant de rpondre cette problmatique en proposant trois types de prototypages. Le prototypage matriel permet une description physique des composants. Le prototype mixte allie les types de vrifications simulation et mulation . Le prototypage virtuel permet quant lui la simulation des composants systmes. Le dernier point important de cet tat de lart est le choix de loutil de conception. Ils existent lheure actuelle deux catgories doutils de conception. Ceux qui sont issus du monde de la modlisation (Matlab pour la modlisation mathmatique) et ceux issus de la CAO lectronique. Pour une description au niveau matriel, les outils de conception CAO sont encore les outils les plus comptents pour raliser une synthse fiable. Toutefois, les outils de modlisation commencent descendre dans le cycle de conception et permettent de dfinir, comme loutil Simulink de Matlab, un fichier VHDL pour le placement/ routage vers des cibles ASICs ou FPGA. Puisque les outils de conception CAO sont les outils les mieux adapts la synthse, nous avons choisi un langage de description matrielle. Le choix du langage sest bas sur la pluridisciplinarit du langage et lintgration dans une cible comme le FPGA. Nous avons donc retenu le langage VHDL-AMS qui est un langage norm (donc non propritaire) et qui permet de simuler avec des langages comme le C, ou MATLAB si une mthodologie de conception par prototypage virtuel est applique.
-35-
-36-
Rsum
Ce chapitre prsente le systme de tlcommunication modliser. Pour cela, nous dfinissons les paramtres propres dun systme de communication AMRC et focalisons sur le choix de la topologie de la fonction synchronisation, organe cl des communications talement de spectre.
Prsentation du cahier des charges .............................................................................................................. 39 Les systmes de communications existants ................................................................................................. 39 Description des lments dune chane de communication numrique. ...................................................... 44 Caractristiques retenues pour le systme dsir......................................................................................... 61 Description fonctionnelle des fonctions modliser ................................................................................... 63 5.1 Principe de la modulation diffrentielle............................................................................................. 64 5.2 Modlisation du gnrateur de PN Code........................................................................................... 64 5.3 Modlisation de la fonction corrlation............................................................................................. 68 5.4 Modlisation de lorgane de synchronisation.................................................................................... 70 6 Conclusion................................................................................................................................................... 88
1 2 3 4 5
-37-
-38-
Figure II. 1. Reprsentation schmatique dun systme multi-capteurs pour un environnement clos
Le milieu de propagation indoor est fortement pollu cause des autres sources (tlphone mobile ou rseaux sans fil) qui oprent dans les mmes bandes (2,4 GHz, 5,1 GHz) puisque elles sont imposes par la loi. De plus, il faut tenir compte des rflexions multiples (multi-trajets) dues lenvironnement physique (cloisons, plafond) arrivant attnues et retardes sur le rcepteur. Une contrainte supplmentaire lie lenvironnement clos est le nombre dutilisateurs qui doivent cohabiter dans le mme canal. Un point important supplmentaire de notre cahier des charges est de vhiculer aussi bien des informations bas dbit (<1Mbits/s) et des informations haut dbit (de 1 10 Mbits/s).
-39-
paragraphe, un descriptif rapide des systmes de communications actuels afin de mieux nous positionner quant au cahier des charges de notre systme.
II.2.1 Communications Radiofrquences dans les bandes 433 & 868 MHz.
Ces modules de communication bass sur une modulation analogique fonctionnent sur des frquences libres de 433MHz et 868 MHz. Les modules travaillant 433MHz actuels permettent dobtenir des dbits jusqu 30kbits/s en FM et 3kbits/s en AM. Les modules 868 MHz sont plus performants en terme de dbits puisquils permettent de transmettre jusqu 50kbits/s. Plusieurs fabricants (AUREL, Mipot, Telecontrolli, Radiometrix) proposent des modules dmission/rception. Le Tableau II.1 rsume les caractristiques des principaux modules du march : Fournisseurs Frquence dutilisation Modules GRAVITON 868-870 MHz Modules MIPOT 433 MHz Modules AUREL 869 MHz Dbit Minimal 50Kbits/s 30Kbits/s 100kbits/s Porte en espace Modulation libre maximum 1,5 km FM 100m FM FM ou FSK
Tableau II.1. Comparaison des caractristiques de communications Radiofrquences 433 et 868 MHz.
Ces modules sont inadapts notre cahier des charges, ne prsentant pas de scurisation des donnes.
II.2.2 Les rseaux personnels sans fil (WPAN : Wireless Personnal Area Network)
Les rseaux personnels permettent la communication entre diffrents appareils dans un rayon rduit. Actuellement, le rseau personnel le plus communment utilis est celui bas sur la technologie Bluetooth. Deux nouvelles technologies mergent pour ce type de rseaux : une adapte des dbits levs UWB (Ultra Wide Band ou Ultra large bande), tandis que ZigBee autorise des connexions dquipements faibles consommations.
II.2.2.1
Bluetooth [ELHO05]
Le but principal de cette technologie est de supprimer les cbles et de permettre la transmission de la voix et des donnes via une liaison radio courte distance. Bluetooth permettait initialement de faire communiquer un appareil matre avec sept autres appareils esclaves. Cette technologie est normalise sous le nom IEEE 802.15.1 [802.15.1]. Les spcifications techniques de la dernire norme (Bluetooth 2.0) permettent de bnficier de dbits suprieurs allant jusqu 2 ou 3 Mbits/s dans un rayon de moins de 100 mtres. Les appareils compatibles Bluetooth utilisent des ondes radio sur la bande ISM (Industrial Scientific & Mdical). Cette bande de frquence est comprise entre 2,4 et 2,48 GHz, utilisable librement sans licence ni autorisation.
II.2.2.2
Cette technologie ge de quarante ans nest vritablement exploite que depuis 2002. Se basant sur un systme de transmission dimpulsions de trs courtes dures, elle offre la possibilit dun dbit lev jusqu 480 Mbit/s pour une porte de 15 mtres. LUWB utilise ainsi une bande trs large de frquence (entre 3,1GHz 10,6GHz) pour changer des donnes et rpondre au standard IEEE 802.15.3 [802.15.3].
-40-
Cette norme UWB est plus rpandue au niveau amricain quau niveau europen. En effet, le spectre radio tant utilis de manire diffrente aux Etats-Unis et en Europe, lintroduction de lUWB gnre des problmes dinterfrences avec les autres dispositifs sans fil utiliss en Europe.
II.2.2.3
ZigBee
ZigBee est une norme de transmission de donnes sans fil permettant la communication de machine machine. ZigBee (aussi connu sous le nom IEEE. 802.15.4 [802.15.4]) est un prolongement de la norme HomeRF issu dun accord stratgique de licence sign entre MicroChip et Adcon Telemetry. Les caractristiques principales de cette technologie sont un faible dbit, et un faible cot avec pour atout majeur une faible consommation. ZigBee utilise une mthode dtalement de spectre par squence directe DS-SS (Direct Sequence Spread Spectrum), et fonctionne sur la bande de frquence de 2,4 GHz rpartie sur 16 canaux. Cette technologie a donc t cre pour le march des rseaux sans fil domestiques (Home Area Network - HAN). Ces quipements doivent tre bon march, capables dchanger des donnes, en consommant peu, de manire scurise et fiable. Aujourdhui en 2005, les premiers kits de dveloppement [FREE05] apparaissent et commencent mobiliser les travaux de recherche [VDBO05].
II.2.3 Les rseaux locaux sans fil (WLAN : Wireless Local Area Network)
Un rseau local sans fil est une infrastructure de communication reliant des quipements informatiques et permettant de partager des ressources communes sur une aire limite quelques centaines de mtres. Afin de communiquer dans un WLAN, il existe deux modes de propagation : le mode point point o la transmission seffectue entre deux points fixes et le mode omnidirectionnel o la transmission seffectue dans toutes les directions de lespace. La technique de transmission utilise pour ce type de rseau est ltalement de spectre (nous reviendrons dans sur cette technique dans la partie II.3.6). Les problmes majeurs lis ce type de rseau sont la dispersion du signal et la gnration dinterfrences. Le standard 802.11 a aujourdhui le monopole mondial de ce type de rseau, et seul HiperLAN2 tente de le concurrencer en Europe.
II.2.3.1
La norme 802.11
Le standard 802.11 permet d'tablir des liaisons point point grce des antennes bidirectionnelles sur de courtes distantes. La norme 802.11 est la norme de rfrence dans le monde des rseaux locaux sans fil. Des rvisions ont t apportes la norme originale afin doptimiser le dbit que nous prsentons dans le tableau suivant [802.11]. Variantes de la norme IEEE 802.11 IEEE 802.11 b IEEE 802.11a IEEE 802.11g IEEE 802.11n Dbit thorique (Mbits/s) 1 ou 2 11 54 54 320 Porte (m) 10m 100m 30m 100m 30m Bande de frquences 2,4 GHz 2,4 GHz 5 GHz 2,4 GHz 2,4 et 5 GHz
Tableau II. 2. Description des diffrentes normes bases sur IEEE 802.11.
Dautres extensions cette norme existent, aussi nous pouvons citer IEEE 802.11e utilise pour un rseau avec signalisation et prsentant une qualit de service, la norme IEEE
-41-
802.11.f tendue pour le handover (passage dune cellule lautre sans coupure) ou bien encore le standard IEEE 802.11i amlior du point de vue scurit. [PEYR05]
II.2.3.2
HiperLAN (High Performance Radio Local Area Network) est une famille de standards pour les communications numriques sans fil haut dbit dans les bandes 5,15GHz- 5, 3GHz et 17,1 -17,3 GHz linitiative de linstitut de standardisation europenne (ETSI : European Telecommunications Standards Institute). Un metteur-rcepteur radio est install sur chaque station mobile, il ne ncessite aucun point daccs pour communiquer avec une autre station mobile. Par contre, des stations de bases sont ncessaires pour faire le lien entre la partie radio et la partie filaire existante dun LAN. La bande alloue est dune largeur de 10MHz autour de 5,2GHz. Le standard Hiperlan2 a t particulirement dvelopp pour fournir un dbit aux rseaux IP, Ethernet, UMTS et aux futurs systmes multimdia pouvant aller jusqu 54 Mbit/s (pour la couche physique). Ce dbit important est rendu possible par lutilisation dune mthode de modulation multi-porteuses de type OFDM (Orthogonal Frequency Division Multiplex). Lespacement entre deux canaux est de 20MHz. Ce standard comporte une fonction handover offrant une possibilit de mobilit des terminaux mais dont la vitesse ne doit pas excder 10m/s.
II.2.4 Les rseaux mtropolitains sans fil (WMAN : Wireless Metropolitan Area Network) et les rseaux tendus (WWAN : Wireless Wide Area Network)
Comme leur nom lindique, les rseaux sans fil mtropolitains ont t crs pour assurer des communications au sein dune ville ou dun village. Les principaux standard sont WiMax, bas sur la norme 802.16 et MBWA pour des rseaux mobiles hauts dbits. Les rseaux WWAN sont quant eux des rseaux tendus ou communment appels rseaux cellulaires mobiles.
II.2.4.1
WiMax
WiMax est le nom dune marque destine labelliser des quipements compatibles avec le standard amricain IEEE.802.16 [802.16] et la norme europenne ETSI HiperMAN. Il permet un dbit thorique de 70 Mbits/s sur un rayon de 50 km maximum [FOUR05].
II.2.4.2
MBWA
Le MBWA (Mobile Broadband Wireless Access) est un standard en cours de dveloppement par le groupe IEEE 802.20. Il devrait permettre la mise en place de rseaux mtropolitains mobiles avec des vitesses allant jusqu 250 km/h. Il utilise des bandes de frquences en dessous des 3,5 GHz. Le dbit thorique est de 1Mbits/s en descente et 300Kbits/s en monte. Toutefois, ce standard ne devrait pas tre commercialis avant 2007.
II.2.4.3
Il sagit des rseaux sans fil les plus rpandus puisque tous les tlphones mobiles sont connects un rseau tendu sans fil. Les principales technologies sont les suivantes : GSM (Global System for Mobile Communication ou Groupe Spcial Mobile) : Ce standard a t prvu initialement pour les applications de transport de la parole, de transmission de donnes bas dbits (9600 bits/s) autour des frquences 935MHz-
-42-
960MHz ou 890-915MHz. Cette norme a permis lessor des communications mobiles daujourdhui. GPRS (General Packet Radio Service) : Cette technologie est la premire volution de la norme GSM pour pouvoir atteindre des dbits compatibles avec des applications dbits moyens de type multimdia. UMTS (Universal Mobile Telecommunication System) : Cette norme UMTS a pour but de dvelopper une meilleure couverture radio et daugmenter le nombre dabonns par unit de surface et promouvoir lacheminement des services 3me Gnration (3G). LUMTS permet un dbit thorique jusqu 2 Mbit/s.
II.2.5
Le milieu de lhabitat est un milieu fortes contraintes temporelles. On peut classer ces contraintes en deux catgories : les problmes poss par les interfrences radio et les problmes poss par le nombre dutilisateurs.
II.2.5.1
Lmergence des rseaux sans fil et de la tlphonie mobile, que nous venons de dcrire, rend le milieu clos, de plus en plus pollu en ondes lectromagntiques. Les ondes rellement perturbantes sont celles que lon retrouve dans la bande passante et qui ne peuvent pas tre filtrs. Les contraintes des interfrences radio sont de deux types : Brouillage des autres sources. Lallocation des frquences tant rgie par la loi, les systmes de communication dans le milieu INDOOR oprent sur les mmes frquences. Pour des transmissions hauts dbits, seulement trois bandes de frquences sont disponibles (2,4GHz, 5,2GHz ou 60GHz). Multitrajets. Ceux-ci sont dus aux rflexions multiples propres lenvironnement de lhabitat (cloisons, plafond). Ces rflexions vont crer des ondes dans la mme gamme de frquences mais retardes et attnues de manire quasi alatoire.
II.2.5.2
Le nombre dutilisateurs
Pour des systmes mission / rception destins la communication dans un environnement clos le nombre dutilisateurs partageant le mme mdium devient une contrainte. En effet les rseaux de communication doivent prendre en compte le fait que plusieurs utilisateurs devront cohabiter sur le mme canal. Les problmes suivants sont alors soulevs : Scurisation permettant de garantir la confidentialit des informations transmises. Contraintes lies aux techniques de multiplexages (mthodes daccs) permettant le partage du mdium. Flexibilit en termes du nombre dutilisateurs.
II.2.6
Le tableau ci-dessous rsume les principales technologies de rseaux sans fil, prsentant leur dnomination commerciale, la norme associe, les dbits autoriss ainsi que les caractristiques techniques (Bande Passante, type de modulation, etc.) [CHRIWW].
-43-
Type de rseau
Dbit thorique
Technologie
de
Technique dtalement
100kbits/s IEEE.802.15.1 IEEE.802.15.3 IEEE.802.15.4 2 Mbits/s Jusqu 50 Mbits/s 250 kbits/s 40 kbits/s 20 kbits/s 54 Mbits/s 11 Mbits/s 54 Mbits/s 70 Mbits/s 1Mbits/s 100m 10m 10m 75m 30m 100m (intrieur) 400m (extrieur) 30m (intrieur) 100m (extrieur) 50 km 100m
Bluetooth UWB
FM FSK GFSK
Modulation
ou O-QPSK BPSK BPSK OFDM OFDM OFDM OFDM
WPAN
Zigbee
Wi-Fi5
24002483,5 902-928 868-868,6 5500 2400 2400 2500 3500 5860 <3500 ou ou
Norme supporte
WLAN WMAN
MBWA
Tableau II. 3. Comparatif des diffrents rseaux sans fil (WPAN, WLAN,WMAN )
Parmi les technologies identifies, nous constatons que, seulement quelques normes fonctionnent dans la bande de frquence de 2,4 GHz retenue pour notre systme. Dans cette bande, deux technologies ont des caractristiques intressantes : la technologie Zigbee qui permet de transmettre des faibles dbits (250 kbits/s) et la technologie Bluetooth pour des plus hauts dbits (2Mbits/s). Pourtant ces technologies ne correspondent pas notre application, puisque lautre paramtre important pour notre conception est la notion de transmission multi-canal permettant diffrents types de dbits dtre vhiculs. Au vu des rsultats obtenus nous navons aucun standard correspondant nos attentes. Cest pourquoi nous allons dfinir notre propre systme de communication.
-44-
II.3.1
Chane de communication
Une chane de transmission numrique est compose, entre un metteur et un rcepteur, des lments prsents sur la Figure II. 2.
On peut donc distinguer diffrents blocs pour lmetteur : o Le bloc codage source permet de coder les donnes numriques issues du capteur (un taux de compression important) afin de les adapter la modulation ultrieure. o Une fonction modulation adapte les donnes du canal physique. Entre lmetteur et le rcepteur, on trouve un bloc canal dpendant de la nature de lapplication. Le canal est souvent compos dune partie analogique appele aussi radiofrquence. Pour le rcepteur, les fonctions sont prsent les symtriques de celles vues lmetteur. o Un bloc de dmodulation o lon peut trouver une synchronisation pour retrouver le signal modul. o Un bloc de dcodage des donnes.
II.3.2
Le codage en ligne
Le codage source est une reprsentation lectrique de linformation binaire. Le choix du codage se fait en fonction du canal et de la technique de la modulation employe. Le terme codage en ligne est employ pour les modulations numriques qui ne sont pas sur frquence porteuse donc en bande de base. Les principaux codes binaires existants sont les codes NRZ, RZ, biphase et bipolaire. La Figure II. 3 reprsente leurs densits spectrales de puissance, en fonction de la frquence normalise.
Figure II. 3. Reprsentation des codes sources selon leur densit spectrale.
-45-
Dans le cadre de notre travail de thse, nous avons tudi plus particulirement le code NRZ-L (Non Retour Zro) qui associe chaque lment binaire dun message (0 ou 1) un symbole (1 ou -1). La forme donde pour ce code est une crneau damplitude A, un bit 0 est reprsent par une amplitude A et un bit 1 par une amplitude +A. Cependant ce code ne prsente pas de transitions lorsquil y a de longues squences de 0 et de 1 ce qui est une difficult lors de ltape de synchronisation (cf. II.5.4), mais en revanche, ce code est trs facile gnrer et il possde un taux derreur de bits infrieur aux autres codes.
II.3.3
Avant dargumenter ce choix, nous commenons par dfinir les principaux critres caractrisants une modulation numrique savoir : Le dbit. Le taux derreur sur les bits. Lefficacit doccupation spectrale. Lefficacit de la puissance mise. La simplicit de ralisation.
Ces lments sont dfinis dans le paragraphe ci-dessous, afin de dresser par la suite un bilan.
II.3.3.1
II.3.3.1.1
Nous appellerons dbit binaire D (bit/s) ou vitesse de canal le nombre dinformations lmentaires (ou bits) que ce canal transporte pas unit de temps.
[Eq.II. 1]
II.3.3.1.2
Les modulations numriques sont values grce au taux derreur par bit (TEB). Il permet de chiffrer linfluence du bruit (grce au rapport signal sur bruit ou lefficacit de puissance) pour chaque modulation et en fonction du nombre dtats de la modulation. Il se dfinit de la manire suivante :
TEB = Nbre _ d ' lements _ binaire _ faux Nbre _ d ' lements _ binaire _ mis
[Eq.II. 2]
La Figure II. 4 reprsente les taux derreur par bit en fonction du rapport du rapport Eb/N0 pour quatre modulations prsentes dans le Tableau II. 4.
-46-
II.3.3.1.3
Lefficacit spectrale
Lefficacit spectrale (en Bit/Seconde/Hertz) dun signal numrique est le nombre de bits par seconde de donnes qui peuvent tre supports pour chaque hertz de la bande de frquence utilise (B en Hertz) :
[Eq.II. 3]
On peut aussi noter que pour des applications o la bande passante est limite par des contraintes physiques, il faut choisir une technique qui donne la plus haute efficacit spectrale, laquelle doit permettre dobtenir de faibles taux derreur sur le bit en sortie du systme.
II.3.3.1.4
Lefficacit en puissance se dfinit par le rapport entre lnergie moyenne Eb par bit dinformation et la densit spectrale dun bruit blanc No/2. Nous allons maintenant exprimer la relation entre lefficacit en puissance et le rapport signal sur bruit (SNR (Signal Noise Ratio)). Tout dabord, dfinissons le rapport existant entre lnergie totale E et lnergie moyenne Eb par bit dans un systme M tats. Eb = E log 2 M
[Eq.II. 4]
La puissance S est dfinie comme le rapport entre lnergie totale E et la dure dun bit Tb, nous obtenons la relation suivante pour le rapport signal sur bruit :
E S E T = b = N N 0 B Tb N 0 B
[Eq.II. 5]
-47-
En utilisant les relations (Eq.II.1 et Eq.II.3) nous obtenons le rapport signal sur bruit (SNR)
S log 2 M Eb = N Tb B No E S = log 2 M b N No
[Eq.II. 6]
Cette relation montre que le rapport signal sur bruit dpend de lefficacit spectrale et du nombre dtats M du systme. Cest pourquoi pour comparer les diffrentes modulations numriques il vaut mieux sintresser lefficacit en puissance qui est une valeur indpendante du procd de modulation.
II.3.3.1.5
La simplicit de ralisation
La complexit dun systme dpendra de la sensibilit de la modulation aux imperfections et de la cohrence de la dmodulation. Dans le premier cas, la sensibilit augmente le nombre dtats pour la modulation, tandis que dans le deuxime cas, cest la rcupration de la porteuse qui augmente la complexit du systme.
II.3.3.2
Modulation retenue
La modulation choisie devra permettre de minimiser loccupation spectrale pour un dbit binaire donn et la probabilit derreur selon la puissance et donc du rapport signal sur bruit. Lors de ltablissement du cahier des charges [BOUR00] il a t distingu les modulations numriques suivantes : ASK : Modulation par sauts damplitude (Amplitude Shift Keying). La modulation se fait ici par saut damplitude. FSK : Modulation par sauts de frquence (Frequency Shift Keying). La modulation se fait par saut de frquence. PSK : Modulation par sauts de phase (Phase Shift Keying). La modulation se fait par saut de phase. QAM : Modulation damplitude en quadrature (Quadrature Amplitude Modulation). La modulation est une combinaison des deux prcdentes modulations o linformation associe la phase du signal mais aussi lamplitude.
Le tableau suivant rsume leurs performances en fonction de trois critres de choix : la rsistance aux distorsions et aux perturbations, lefficacit spectrale et la simplicit de ralisation.
-48-
Modulation ASK
Nombre dtats 2 4 8 2 4 8 2 4 4 16 64
Efficacit Eb/No pour Spectrale un TEB de 10-6 1 10,5 2 14,3 3 21 1 10,5 2 10,5 3 13,8 1 11,3 2 12,8 2 4 6
Efficacit lie aux frquences porteuses
Avantages
-Simplicit pour la dmodulation et son faible cot - Avantageux si M<2 - Simple raliser -TEB meilleur que ASK - Identiques au PSK - Plus simple raliser que PSK - proportionnelle M - TEB meilleur que PSK - Plus performant si M>8 Moins sensible au brouillage des canaux adjacents
Inconvnients
- Sensible aux non - linarits du systme - Limite pour M>8 Un peu moins performant que PSK Complexit de ralisation si M> 16 Faible efficacit spectrale
A la vue de ce tableau de synthse sur les modulations et sachant que le milieu de propagation est particulirement hostile, les critres qui ont t retenus sont la simplicit et la rsistance aux multi-trajets. Cest pourquoi la dmodulation diffrentielle PSK a t choisie et est de plus avantageuse pour le CDMA (Chapitre II II.3.5.1.3).
II.3.4
Le Canal
Maintenant, que nous avons dfini les codes en ligne et les modulations numriques possibles, nous allons dfinir le canal de transmission. Les canaux les plus utiliss pour le milieu clos sont le canal AWGN (Additif White Gaussian Noise) et le canal multi-trajets. Ces deux canaux seront modliss pour valuer les performances du systme communicant. Le premier est utilis afin de reproduire le bruit alors que le deuxime sera utilis pour valuer les performances par la prsence de multi-trajets.
II.3.4.1
Le canal AWGN
Le modle du canal AWGN est compos selon le principe de la Figure II. 5 dun bruit blanc Gaussien ajout dans le mdium londe module s(t) .
Un bruit blanc Gaussien est un processus alatoire stationnaire puisquil est indpendant du signal transmis. La spcificit dun bruit blanc rside dans luniformit de sa densit spectrale de puissance qui vaut N0 sur toute la bande de frquences. Du fait de sa largeur de
-49-
bande thoriquement infinie, il est difficile dexprimer le bruit blanc, cest pourquoi lon suppose que le bruit somm au signal dentre du rcepteur a t filtr par un filtre idal, de largeur de bande B trs grande devant la bande utile. Le bruit blanc peut tre rendu Gaussien par une distribution gaussienne. Ainsi, le bruit doit suivre la loi normale, ou loi de Gauss, rgie par la densit spectrale suivante :
p ( x) = 1
( xm)2 2 2
[Eq.II. 7]
avec qui reprsente la variance et m la valeur moyenne de la variable alatoire x. La figure suivante reprsente p(x) la densit spectrale dun bruit blanc gaussien.
( x)2 2 2
[Eq.II. 8]
II.3.4.2
Le canal multi-trajets
La modlisation du canal multi-trajets permet de prendre en compte linfluence des diffrents trajets dus la diversit de propagation dans le milieu indoor (rflexions multiples) et dobserver linfluence des autres utilisateurs qui travaillent dans la mme bande. Lquation [II.9] permet de modliser un canal comprenant i utilisateurs et n multi-trajets. r (t ) = n s i (t n )
i n
[Eq.II. 9]
o r(t) est le signal en sortie du canal, n et n respectivement lattnuation et le retard du trajet n et si(t) est le signal mis par lutilisateur i. Pour dfinir les deux paramtres retard et attnuations, deux solutions sont envisageables, bases soit sur une mthode statistique, soit sur des mesures in situ mais propre la topologie de lenvironnement.
-50-
Le modle statistique [HASH93] consiste dfinir les deux paramtres comme des variables alatoires ayant une rpartition la plus proche de la ralit. Cette mthode donne lieu des modles de canaux permettant dvaluer les performances de manire gnrale. Le modle de canal le plus rpandu est celui vanouissement o lon considre la somme des trajets au niveau du rcepteur un instant t : r (t ) = R(cos w0 t + m (t ) + )
[Eq.II. 10]
o m (t ) reprsente la modulation, et R et sont des variables alatoires. R reprsente leffet de la somme de tous les trajets sur londe reue et reprsente la phase des diffrents chemins qui sont considrs uniformment distribus sur (0:2). Dans un canal vanouissement, la variable R peut suivre deux lois : soit une loi de Rayleigh dans le cas dun affaiblissement de Rayleigh, soit une loi de Rice lorsquon considre le cas dun affaiblissement de Rice. Le canal de Rice est utilis lorsquun trajet est prdominant par rapport aux autres trajets (par exemple dans le cas dun metteur et un rcepteur en visibilit directe). On considre un canal de Rayleigh lorsque tous les chemins sont indpendants et dattnuations comparables. Les modles statistiques sont intressants pour traiter des cas gnraux, mais deviennent vite insuffisants pour tudier un cas rel.
II.3.5
Les communications hertziennes doivent utiliser la largeur des bandes de frquences alloues de manire optimale. Il sagit en effet, dune part de transmettre un maximum de donnes utiles par units de temps entre la source et le destinataire, mais galement de fixer les rgles permettant tous les metteurs de communiquer de faon optimale. Il sera donc ncessaire de dfinir les principes de communication lintrieur du mdium pour que les
-51-
utilisateurs puissent se partager le canal. Ces principes bass sur le partage de la ressource sont appels techniques de mthode daccs. Historiquement, ils existent trois possibilits de partage : le FDMA (Frequency Division Multiple Access) fractionne laccs au mdium par un partage en frquence de la bande alloue. le TDMA (Time Division Multiple Access) partage laccs au mdium dans le temps le CDMA (Carrier Division Multiple Access) permet un accs multiple en nombre dutilisateurs avec une rpartition par code.
Nous allons prsent prciser chacune de ces mthodes daccs et conclure quant la mthode la plus intressante pour notre application.
II.3.5.1
II.3.5.1.1
Le FDMA (ou AMRF :Accs Multiple Rpartition dans les Frquences) est la technique la plus ancienne o les utilisateurs se partagent la bande passante du canal alors divise. Chaque utilisateur se voit allouer une frquence porteuse diffrente. La figure illustre le principe de rpartition en frquence du FDMA.
Il peut alors mettre en continu dans sa bande de frquence propre. La largeur de la bande tant plus rduite que la bande totale autorise, elle permet cette technique dtre moins sensible aux interfrences. Son inconvnient majeur est le manque de souplesse pour la ralisation dun dbit variable. Le nombre dutilisateurs est fix par le nombre de synthtiseurs de frquence implants dans le systme.
II.3.5.1.2
Le TDMA
Contrairement la mthode prcdente o chaque utilisateur travaille sur une porteuse diffrente, le TDMA (ou AMRT : Accs Multiple Rpartition dans le Temps) utilise ici une frquence fixe, son mission est alors restreinte des intervalles de temps prdfinis.
-52-
Le temps est ainsi dcoup en intervalles de longueurs fixes ou Slots . Nous ne pouvons pas mettre en continu, mais seulement certains instants dfinis de faon priodiques, la transmission se faisant en rafales, le dbit est plus grand que pour le FDMA mais entrane une sensibilit plus importante aux interfrences (un retard peut dgrader lintervalle de temps suivant). Son inconvnient principal est la ncessit dune synchronisation entre tous les utilisateurs avec une horloge commune.
II.3.5.1.3
Le CDMA
La technique du CDMA (ou AMRC : Accs Multiple Rpartition par les Codes) repose sur laccs du canal par tous les utilisateurs, qui pourront mettre en continu et sur toute la largeur de bande disponible. Ce principe est gnralement identifi comme une technique dtalement de spectre.
Ici, chaque utilisateur est reconnu grce un code qui lui est propre. Ce code, qui a un dbit plus lev que la donne, a la proprit dtaler le spectre de la donne transmise. La rcupration de linformation se fait en ralisant lopration inverse, c'est--dire en dcorrlant avec le code utilisateur identique. Lmission de chaque utilisateur est alors peru par les autres utilisateurs comme un bruit. Linconvnient de cette mthode est la diminution du dbit rel dans la mesure o chaque bit de donnes sera cod par un mot de longueur infrieur et variable.
-53-
II.3.5.2
Le mode TDMA parat plus performant que le mode FDMA en terme de dbit et de souplesse, mais la mthode daccs la plus adquate pour les milieux clos apparat tre le CDMA car elle rpond aux besoins suivants : Scurisation de linformation grce la signature par code, Flexibilit car elle se superpose facilement un systme existant (peu perturbatrice et forte immunit aux perturbations grce ltalement de spectre), Souplesse en termes de nombres dutilisateurs et de dbits grce au code dtalement, Accs parfaitement alatoire. Dun point de vue des interfrences, des tudes ont montr [VITE85] [MAZO79] que le TDMA et le FDMA taient plus avantageux si le milieu de propagation nintroduisait pas dvanouissements. Dans le cas contraire nous allons montrer que grce ltalement de spectre, le CDMA garantit de meilleures performances en milieu clos. Cest pourquoi la technique dtalement de spectre simpose comme technique de transmission.
II.3.6
II.3.6.1
Ltalement de spectre
Principe
Ltalement de spectre permet de rpartir lnergie radiolectrique du signal mis sur une bande de frquences plus importante que celle qui est initialement ncessaire. Il existe plusieurs techniques dtalement de spectre : Ltalement par saut de frquence (Frequency Hopping Spread Spectrum ou FH-SS) (Figure II. 11) Pour cette technique, le signal change par sauts successifs de frquences porteuses en fonction dun code pseudo-alatoire. Ce saut de frquence peut tre soit rapide (Fast FHSS) ou lent (Low FH-SS) selon que le rythme des sauts est bien suprieur ou bien infrieur au rythme des symboles. Les avantages du FH-SS sont : Sa rsistance aux interfrences bandes troites prsentes dans la bande du canal Sa rsistance aux problmes au near/far. Les problmes de near/far sont dus des utilisateurs (A) dun systme fonctionnant en CDMA placs trop prs dun rcepteur coutant un utilisateur (B). En effet, si la puissance de (A) est trop importante alors la corrlation entre le code du rcepteur et le message de (A) peut tre suprieure la corrlation du code rcepteur et du message issu de (B). Dans ce cas, le rcepteur naccroche plus (B) et perd linformation. L encore, grce aux sous-canaux, le FH-SS est mieux immunis car le problme ne se posera que lorsque (A) et (B) seront sur la mme frquence porteuse, alors quen DS-SS le problme est permanent. Les inconvnients se trouvent dans la complexit de la ralisation et au niveau des performances de la synchronisation. En effet, pour que le rcepteur se synchronise, il faut avoir une horloge commune pour lmetteur-rcepteur qui sera gre par un matre. Le gain en traitement dpend de la longueur de la squence de sauts de frquence mais aussi des performances des synthtiseurs.
-54-
Ltalement de spectre par squence directe (Direct Sequence Spread Spectrum ou DSSS) (Figure II. 12). Cette technique permet de coder le signal mis par un autre signal binaire (appel code de pseudo-bruit) ayant un dbit plus lev. Ce signal est alors peru comme un bruit large bande et prsente une densit spectrale reprsente sur la figure ci-dessous : Les avantages du DS-SS sont les suivants : Un meilleur temps daccroche comparativement au FH-SS. Un gain en traitement plus facile obtenir car il ne dpend que de la longueur de la frquence. Une synchronisation simple puisque le rcepteur se synchronise par rapport la trame reue.
Notons galement ltalement par saut de temps TH-SS (Time Hopping Spread Spectrum) et le CDMA multi-porteuses (MC-CDMA) qui sont des techniques moins utilises que les deux premires.
Pour notre application, nous retiendrons la technique DS-SS pour diverses raisons. Dabord, ntant pas dans le cas de communications mobiles, les problmes near /far effets peuvent tre rsolus par la disposition judicieuse des metteurs/rcepteurs. Ensuite les normes
-55-
mergentes et les comits de normalisation (ETSI pour lEurope) encouragent fortement lutilisation de ltalement de spectre [NEWM86] ce qui tend diminuer les interfrences bandes troites aux frquences alloues, rendant terme, le DS-SS sensible au brouillage intentionnel. A cela sajoutent les avantages prcits du gain de performances ainsi que la simplicit de ralisation qui sont des aspects importants pour la ralisation du systme en terme de surface et de cot. Nous allons dvelopper dans le paragraphe suivant ltalement de spectre par squence directe.
II.3.6.2
Ltalement de spectre par squence directe Le principe de ltalement de spectre par squence directe
II.3.6.2.1
Ltalement de spectre par squence directe (DS-SS) est une modulation de la trame de symbole transmettre (d(t)) par une squence dtalement pseudo-alatoire c(t) (Code dtalement ou Pseudo-Noise Code). Le PN-Code va ainsi diviser le code transmettre en sous intervalles dnomms Chip de priode bien plus petite que celui du bit transmettre (la priode du bit transmettre tant le temps symbole). La mise en uvre de ltalement de spectre par squence direct est illustre avec la figure suivante.
Densit Spectrale
Les trois principales fonctions mettre en uvre pour cette technique DS-SS sont la gnration des codes dtalements (PN-Code), la corrlation lmission qui permet dtaler la donne transmettre et la dcorrlation la rception qui permet de rcuprer la donne transmise en remontant le signal au dessus du bruit.
II.3.6.2.2
Le code dtalement, comme nous lillustrons sur la Figure II. 14, permet de diviser en sous intervalles le bit transmettre. Pour ce faire, il suffit de multiplier, au sens boolen du terme (Ou Exclusif) la donne mettre et le code dtalement c(t).
-56-
Densit Spectrale
Figure II. 14. Exemple dun codage par talement de spectre par squence directe.
Les squences pseudo-alatoires c(t) possdent des proprits mathmatiques particulires. Tout dabord, afin de ne pas modifier les proprits statistiques du signal mis (et par consquent son spectre), elles doivent tre le plus faiblement auto-corrles :
Rc ( ) = c(t ).c(t )dt = 0
+
pour 0
[Eq.II. 11]
o Rc() reprsente la fonction dautocorrlation de c(t). Afin dassurer la scurit et dviter le brouillage des sources entre-elles, les squences doivent tre le plus faiblement intercorrles :
Rci c j ( ) = ci (t ).c j (t )dt = 0
+
[Eq.II. 12]
O ci et cj reprsentant deux squences diffrentes. Enfin, pour permettre la synchronisation, elles doivent possder un pic dautocorrlation le plus troit possible :
Rc (0) = c(t ).c(t )dt = 1
+
[Eq.II. 13]
Comme ces proprits sont celles dun process stochastique proche du bruit, on les nomme squences pseudo-alatoire (ou pseudo-noise sequences). La fonction dautocorrlation [Eq.II.11] peut tre trace laide du logiciel SABER et reprsente sur la Figure II. 15.
-57-
1,2 1 0,8
Rc( )
Corrlation Corrlation Rc (N=15)
-0,068
200
(ns)
250
300
350
400
Figure II. 15. Fonction d'auto corrlation pour N=15 (Ts=375ns, Tc=25ns).
Au vu de ces proprits mathmatiques, il semble important que la synchronisation, entre le code la rception et le code lmission, se fasse correctement. Dans le cas dun cart temporel entre les deux codes, seul le bruit tal pourra tre rcupr au niveau du rcepteur. Cet organe de synchronisation est compos de deux tages, un qui permet de rechercher rapidement un pic dautocorrlation dans le signal reu et lautre qui permet daffiner cette recherche. Ces deux fonctions sappellent respectivement organe de synchronisation et boucle verrouillage de dlai et seront dtailles dans le paragraphe (Chapitre II II.5.4.2.2 et II.5.4.3).
II.3.6.2.3
Ltalement lmission
Ltalement de spectre correspond la multiplication du PN-Code gnr lmission avec la donne binaire ventuellement code mettre comme lillustre la figure suivante.
Modulateur PSK
PN-Code c(t)
Porteuse 2 P cos( wo t )
Supposons que c(t) soit une squence NRZ (Non Retour Zro) prenant ses valeurs dans lalphabet {-1, +1}, c(t) scrit alors : c(t ) =
n =
C .g (t nT )
n c
[Eq.II. 14]
o g(t-nTc) est la forme du signal (Signal Shape), et Cn reprsente la squence transmise tire dun alphabet binaire {-1, +1}.
-58-
Supposons ensuite que sd(t) soit un signal DBPSK (Differential Binary Phase Shift Keying) dfini comme suit : s d (t ) = a(t ). cos[ w0 t + d (t )]
[Eq.II. 15]
avec w0 la pulsation de la frquence porteuse, a (t ) = 2 P lenveloppe constante dune porteuse de puissance P et d (t ) la phase de modulation faisant des sauts de 180 codant linformation transmise en diffrentiel. Il apparat alors que le signal peut aussi tre exprim de la manire suivante :
s d (t ) = 2 P d (t ) cos( w0 t )
[Eq.II. 16]
avec d(t) linformation code en diffrentiel. Une fois tal, le signal transmettre est not :
s e (t ) = 2 P c(t )d (t ) cos( w0 t )
[Eq.II. 17]
A partir de la densit spectrale de puissance du signal NRZ, on obtient aisment la densit spectrale de puissance de sd(t) et de se(t) si lon considre que c(t) est parfaitement alatoire. Cette hypothse nest pas loin de la ralit puisque les squences sont calcules [ISCC95] pour tre faiblement corrles. Les densits spectrales de puissance du signal reprsentant les donnes SSd et du signal tal en sortie de lmetteur sont :
1 PTS sin c 2 [( f fo )TS ] + sin c 2 [( f + fo )TS ] 2 1 S Se ( f ) = PTC sin c 2 [( f fo )TC ] + sin c 2 [( f + fo )TC ] 2 S Sd ( f ) =
o Ts=N Tc. Leur reprsentation associe est illustre sur les figures (a) et (b) de la Figure II. 17 dans le cas dun facteur dtalement de longueur N=3. On observe que la densit spectrale du signal tal est divise par N alors que le spectre est tal de la valeur N.
-59-
(a)
(b)
Figure II. 17. Densit spectrale de puissance du signal de donne et du signal de donne tal (N=3)
II.3.6.2.4
A la rception, le dstalement sobtient en corrlant le signal reu avec un PN-code gnr localement et identique celui utilis en mission. La Figure II. 18 en illustre le principe.
Lopration de dcorrlation est un point crucial de lorgane de rception. Pour quelle se passe correctement, il faut estimer le retard Td apport par le canal. Cette estimation sera faite par lorgane de synchronisation. Le signal en sortie du multiplieur sexprime
sm (t ) = 2 Pc(t Td )c(t Td' ) cos[ w0t + d (t Td )]
[Eq.II. 20]
o Td' est le retard estim. Si on suppose que la corrlation est totalement ralise aprs le filtrage passe-bande (qui ralise ainsi une fonction dintgration) et que lon nglige les distorsions apportes par ce filtre, alors le signal en sortie du dcorrlateur est :
s c (t ) = s m (t )
filtr
[Eq.II. 21]
-60-
Si la synchronisation joue son rle correctement alors Td=Td ce qui rend la fonction dautocorrlation Rc maximale (gale 1) et le signal est correctement dstal. Si par contre |Td|>Td, les proprits dautocorrlation entranent une fonction Rc minimale. Cest pourquoi la partie synchronisation et en particulier la poursuite seront les organes qui dtermineront les performances du systme. La partie dcorrlation ne peut videmment se drouler correctement que si les PNCodes de lmission et de la rception sont gaux. En effet si la donne binaire est tale avec un PN-Code ci(t) et que la dcorrlation se fait avec un PN-Code cj(t), le signal en sortie du corrlateur sexprime de la manire suivante :
s d (t ) = 2 P ci c j ( ) cos[w0 t + d (t Td )] = 0
[Eq.II. 22]
au vue des proprits dintercorrlations [Equa.II.12] Lautre proprit importante de la corrlation en rception est laugmentation du rapport signal sur bruit en sortie du dmodulateur dun gain (dnomme Gp) par rapport au rapport signal sur bruit en entre du dmodulateur (cf. Equation II.16).
P = 10 log10 + GP J dB S avec G p = 10 log10 ( N ) = sortie B dmodulateur S N
[Eq.II. 23]
S entre B dmodulateur
[Eq.II. 24]
Ce gain, dnomm gain en traitement, ou gain en process (Gp) est directement fonction du facteur dtalement N.
-61-
Frquence porteuse Bande passante Modulation Mthode daccs Technique dtalement S/N en entre du dmodulateur S/N en sortie de ltage RF Particularit
norme 802.11.b norme 802.11.b performance et ralisation Flexibilit performance et ralisation TEB et modulation 11dB-Gpmin
Tableau II. 5. Caractristiques retenues pour la ralisation dun prototype de communication entre capteurs.
Le cahier des charges tant fix, il est possible de dresser un synoptique du systme global. Ce systme, prsent sur la Figure II. 19, comporte toutes les fonctions de base permettant lmission et la rception des donnes numriques. Le principe de chaque fonction sera dtaill dans la suite de ce chapitre.
Capteur de position Capteur de temprature Video/Voix
Donnes
GENERATEUR DE PN CODE FPB
LNA
Donnes mises
Code 1 N=2047 Code 2 N=7 CODAGE DIFFERENTIEL
ETALEMENT
EMETTEUR
Canal AWGN
FPB
LNA
TRANSPOSITION EN FREQUENCE
DESETALEMENT
PN - Code
DEMODULATEUR DIFFERENTIEL
MISE EN FORME
GENERATEUR DE PN CODE
Horloge de Rythme
SYNCHRONISATION POURSUITE
RECEPTEUR
Donnes reues
-62-
Les fonctions prsentes sur ce synoptique modliser et optimiser sont : La partie mission : Elle comprend les tages numriques ralisant le codage des signaux issus des capteurs et la fonction talement de spectre. Ce dernier tage permet dtaler le signal cod grce au codage de linformation par lintermdiaire dune squence pseudo alatoire. La partie radiofrquence (RF) met le signal tal sur une porteuse de 2.44 GHz (Bande ISM). Le canal AWGN (Additif White Gaussian Noise). Il comprend un tage pour la gnration dun bruit blanc gaussien et un tage dans lequel le bruit est additionn au signal tal sur frquence porteuse. La partie rception : La partie radiofrquence transpose le signal reu en bande de base. La fonction dstalement permet enfin de dstaler les donnes reues et ainsi rcuprer la trame mise. Pour faire cette opration, les systmes communiquants talement de spectre requirent que le PN code gnr localement soit synchronis avec la squence de la donne tale pour que le dstalement soit correct. Cest pour cela que nous trouvons la prsence des organes de synchronisation et de poursuite.
Les donnes binaires (tri(t)) issues des capteurs sont encodes diffrentiellement puis tales avec le code dtalement c(t) issu du gnrateur. Aprs avoir t modul, le signal doit tre filtr au moyen d'un filtre passe bande (o filtre gabarit) limitant la largeur de bande du signal selon les normes en vigueur. Dans notre application, la frquence centrale du filtre est de 2,44 GHz et sa largeur de bande de 80 MHz. A ces frquences, la ralisation dun tel filtre est trs dlicate, cest pourquoi nous avons dcid de raliser le filtrage de Nyquist avant la modulation. En effet, il sera plus ais de filtrer le signal en bande de base quen bande porte 2,44 GHz. Cela ne change rien dans le principe puisque loccupation spectrale est fixe par le signal en bande de base. De plus, comme le filtrage est ralis en amont du modulateur, lutilisation dun filtre numrique sera possible [LEE98]. Enfin, en ce qui concerne la puissance du signal, elle doit tre norme (Pe=100 mW selon les normes ETSI). Si on suppose un filtrage idal, le signal mis scrira donc : e(t ) = 2 Pe cos( 0 t + d (t ) + ) Nous allons prsent dtailler ces diffrentes fonctions.
[Eq.II. 25]
-63-
II.5.1
Comme nous venons de le voir dans le paragraphe prcdent, il a t choisi dimplanter un modulateur diffrentiel de phase ralisant lopration de codage diffrentiel des donnes issues des capteurs. Le signal transmettre nest donc plus un simple bit mais une information relative la comparaison avec le bit prcdent. Cette comparaison reprsentera un saut de phase et non un tat de phase comme pour les modulations traditionnelles. Ainsi, un saut de phase vaut 1 si deux bits successifs sont identiques et 0 si les deux bits sont diffrents qui sera traduit avec le codage suivant : tri = 1 d = tri = 0 d = 0
[Eq.II. 26]
avec tri la donne transmettre et d le saut de phase. Le tableau suivant fait tat de la table de vrit de lencodeur BPSK en donnant la valeur de la phase instantane di en fonction de linformation transmettre tri et ltat de phase prcdent di-1. d i-1 tri d di 0 0 0 0 0 1 1 1 0 0 1 1 1 0
Nous dduisons immdiatement du tableau prcdent lopration logique liant linformation transmettre et le signal encod : d i = tri d i 1 Cette fonction est reprsente par la fonction OU exclusif .
[Eq.II. 27]
II.5.2
Les codes dtalement appels aussi PN-code, sont des squences binaires possdant de bonnes proprits de bruit [Eq.II.12]. Il existe diffrentes classes pour les squences pseudoalatoires qui comportent deux grandes familles non priodiques (Squence de Barker) et priodiques (M-Sequences, Squences de Hall, Squences Jumelles, Squences de Legendre) [ISCC95] [SIMO94]. Nous avons choisi dutiliser la sous-famille des M-squences (ou Maximal-length sequences) pour les raisons suivantes :
o Elles sont priodiques et donc plus facilement synthtisables par un circuit numrique. o Elles sont gnres au moyen dun polynme caractristique, dont les coefficients sont paramtrables par un circuit numrique.
La fonction dautocorrlation prsente lorigine (dcalage nul) un maximum, leur intrt majeur est dtre facilement gnr grce des registres dcalages linaires et donc synthtisables dans lobjectif dintgration numrique.
II.5.2.1
La squence alatoire (b0, b1,b2, bn) que nous voulons produire grce ce gnrateur peut tre reprsente par le polynme suivant :
-64-
b( D) = b1 D 1 + b0 + b1 D 1 + ... + bn D n
[Eq.II. 28]
Cette squence b(D) peut tre produite par un gnrateur de registre dcalage reboucl comme le montre la figure suivante :
a r-1 a r-2 a2 a1
a0
b(D)
gr
g r-1
g3
g2
g1
g0
Le polynme a(D) est la squence charge dans les registres dcalage et le polynme g(D), symbolis par des interrupteurs ouverts ou ferms selon la valeur des coefficients de g(D), reprsente larchitecture du gnrateur. Les polynmes g(D) utiliss sont choisis de telle sorte que b(D) ait les proprits dun PN-Code. Ces polynmes sont dits primitifs et ont t tudis et lists par Perterson et Weldon [ISCC95]. Le calcul de la squence b(D) ainsi gnr, se fait grce une division polynomiale des polynmes a(D) par g(D) galement dnomm polynme caractristique du gnrateur. b( D ) = a( D) g ( D)
[Eq.II. 29]
Pour que la squence b(D) soit de longueur maximale (proprit de M squences), il faut que le polynme g(D) soit irrductible et que la priode P = 2r-1 soit le plus petit entier. Pour cela, il faut que g(D) soit un polynme primitif [ISCC95]. Un autre type de gnrateur, dvelopp par Fibonacci, permet de gnrer des M squences. Ce dernier gnre la mme trame partir du mme polynme mais avec une structure diffrente. Ces deux types de gnrateurs (Galois et Fibonacci) sont implants dans notre systme. Ils ont t dvelopps grce aux travaux de Chien et Jain [JAIN92], sur les gnrateurs programmables de longueur maximale N=215-1. Le gnrateur de Galois est utilis lmission car il est plus simple mettre en uvre et plus rapide tandis que le gnrateur de Fibonacci sera utilis la rception car il permet dinitialiser le dmarrage des squences par une trame srie issue de la squence (Chapitre II II.5.4.4).
II.5.2.2
La structure du gnrateur de Galois a t simule sous le logiciel SABER et peut tre programme par 2 mots parallles c(n) et i(n). Le premier mot reprsente la valeur du coefficient c(n) permettant de choisir la longueur du PN-Code. Le coefficient c(n) est calcul partir du polynme primitif g(D) auquel on retranche la valeur g0 (coefficient qui permet le rebouclage) : c ( n) = g ( D ) g 0
[Eq.II. 30]
Le deuxime mot i(n) est le vecteur dinitialisation du registre dcalage toujours gal 1 afin d amorcer le systme boucl. Lexemple de la figure suivante gnrant un PN-code
-65-
de longueur N=15, fixe le coefficient c(n) 9 soit [000000001001], et le vecteur dinitialisation i(n) 1.
c(n) Coefficients
I(n)
Initialisation
Figure II. 22.Gnrateur Galois avec les modules de configuration.
Le polynme primitif pour la valeur de coefficient c(n) choisie vaut g(D)=1+D+D4 (010011)b [2 3]O. La valeur du vecteur dinitialisation i(n) quivaut a(D). On peut donc retrouver aprs calcul, la valeur de la squence b(D) par la division polynomiale de a(D) par g(D). Dans notre cas, nous obtenons b(D)= 111101011001000 qui permettra donc de gnrer un PN-Code de longueur 15. Le tableau suivant nous prsente la correspondance entre la valeur du polynme primitif g(D), la valeur du coefficient c(n) et la valeur du PN-Code.
-66-
000000000101 1110100 000000001001 111101011001000 000000010010 1010111011000111110011010010000 000000100001 1111110101011001101101001001110 000001000100 1001001101001111011100001111111 000010001110 1011000111101000011111111001000 000100001000 1000100011001000111010101101100 001100001001 1111010111101110010011111000100 010000000010 1010101010111011101110010011100
La figure suivante reprsente le schma lectrique du gnrateur de Galois qui est compos de bascules D et dune porte logique OU-Exclusif qui forment le registre dcalage, et de portes ET pour la configuration du polynme primitif. Le mot dinitialisation i(n) est lui cr grce des portes NON ET et NON .
PN_out q
D FF
clk
qn
c(n)
Bascule D
D FF
qn
clk
D FF
D FF
clk
qn
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
D FF
clk
qn
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
D FF
clk
qn
D FF
D FF
qn
clk
D FF
D FF
qn
clk
D FF
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
clk
qn
level:_1 el:_1
set_l4
D FF
clk
qn
i(n)
Clock_in
D FF
qn
clk
D FF
clk
qn
Load_C
SET
-67-
II.5.3
Le corrlateur est llment essentiel (aussi bien lmission qu la rception) pour un systme talement de spectre, puisquil dtermine les proprits fondamentales du gain en traitement et de limmunit aux multi-utilisateurs. Nous prsentons dans cette partie le modle de la corrlation lmission.
II.5.3.1
Corrlation lmission
Pour lmission la corrlation consiste mlanger la trame mise et encode diffrentiellement avec le PN-Code gnr localement pour produire un signal modul et tal se(t) daprs lquation [Eq.II.11] :
s e (t ) = 2 P c(t ) cos( w0 t + L + d (t )) = 2 P c(t )d (t ) cos[w0 (t Td ) + L ]
[Eq.II. 31]
o c(t) reprsente le PN-Code et d(t) la donne binaire. La multiplication entre la donne binaire et le PN-code peut tre ralise numriquement par un OU-Exclusif invers (ET-inclusif) comme le montre la table de vrit suivante : d(t) 1 1 -1 -1 di 1 1 0 0 1 -1 1 -1 c(t) ci 1 0 1 0 d(t)c(t) 1 -1 -1 1 d i ci 0 1 1 0
d i ci
1 0 1 0
di et ci correspondent respectivement aux valeurs numriques de trames d(t) et c(t) initialement codes en NRZ. Il est toutefois possible dutiliser un simple OU_EXCLUSIF, linformation transmise sera alors inverse. Le schma de principe modlisant la fonction de corrlation de lmission peut donc tre reprsente de la manire suivante :
Le modle implant sur le simulateur nous permet de valider le principe de corrlation lmission. Les chronogrammes prsents sur la Figure II. 24 reprsentent les diffrentes formes dondes prsentes lmetteur avec les paramtres suivants : -68-
Un temps symbole Ts= 375ns. Un coefficient darrondi du filtre de Nyquist valant ici 0,35. La trame mise [10111001].
Trame mise
Trame encode
II.5.3.2
Corrlation la rception
Le corrlateur la rception est lorgane clef du systme de rception puisque cest lui qui dtermine les performances (gain en traitement) permettant de rehausser le rapport signal sur bruit [CHUN93]. Comme nous lavons montr prcdemment ( II.3.6.2.4) la dcorrlation seffectue en ralisant les oprations analogiques de multiplication et intgration avec un multiplieur et un filtre passe-bas pour une implantation en numrique [MELE01]. Plusieurs possibilits darchitectures ont t envisages. La solution retenue est prsente sur la Figure II. 26 . Il a t montr[MELE01] que cette structure permet de maintenir un gain en traitement suffisant proche de sa valeur thorique, tout en conservant une architecture simple. Intgrateur Bloqueur
Signal tal reu Sm(t) 2 P d (t Td )c(t Td ) cos( wot )
Intgrateur
( N 4 ) 1
Echantillonnage Blocage
PN-Code c(t-Td)
Frquence dchantillonnage
Ce schma est valid par la simulation suivante des principales formes dondes pour un corrlateur la rception.
-69-
Figure II. 27. Principales formes dondes pour le corrlateur au niveau du rcepteur.
Base_r_z reprsentant le signal reu tal Sm(t). Yl reprsentant le signal Sm(t) multipli par le PN_Code local c(t-Td). Yl_int_z est le signal intgr sur une priode de symbole. Yl_chant est la sorite du filtre Intgrateur/Bloqueur Sc(t).
II.5.4
Avant de modliser notre organe de synchronisation, nous dfinirons la problmatique de la synchronisation pour un systme talement de spectre en exposant les principes sur lesquels elle se base.
-70-
Dans les paragraphes suivants, nous prsentons le principe de fonctionnement mis en uvre pour diffrents organes recenss pour les fonctions acquisition et poursuite. Nous prsentons dans ce cadre deux dispositifs permettant lacquisition pour un systme talement de spectre en milieu bruit dont les performances associes dtermineront le choix de la structure finale pour notre implantation.
II.5.4.2
Les diffrents moyens pour retrouver lorigine du PN-Code pour un systme talement de spectre sont rsums dans lorganigramme suivant [SIMO77].
Dstalement pour un systme DS/SS
SERIE
Estimation Squentielle
RASE
Rapid Acquistiion by Sequentiial Estimation
Filtrage adapt
RARASE
CORRELATION
Les recherches pour lorigine du PN-Code, dans ltage dstalement, peuvent se dcomposer en deux catgories : Le filtrage adapt: cette structure permet dutiliser un filtre adapt au code dtalement. -71-
La correlation : Ces structures sont bases sur lemploi dun ou plusieurs corrlateurs. Ils existent deux principales techniques qui sont : La recherche SERIE examine toutes les possibilits dalignement du PN-Code gnralement laide de dtecteur. Les possibilits dalignement peuvent se faire soit pour une priode fixe (qui peut tre simple ou multiple), soit pour une priode variable. Une estimation squentielle du PN-Code qui permet partir du signal reu de retrouver le PN-Code.
Ltage de dtection est quant lui compos dun dtecteur de maximum de vraisemblance permettant dvaluer partir du vecteur de dcision, quelle information a t transmise.
II.5.4.2.1
Lacquisition se base sur deux grands principes savoir, la corrlation et le filtrage adapt. II.5.4.2.1.1 Lacquisition par corrlation
Comme nous lavons nonc dans le paragraphe II.3.6.2.4, la mthode dite de corrlation rsulte dune multiplication entre le signal reu r(t) et le PN-code ci(t) suivie par une intgration de ce rsultat sur une dure T (dans notre cas le temps symbole). Ce calcul reprsente aussi la fonction dintercorrlation en r(t) et ci(t). On rcupre ainsi limage de londe transmise et donc de linformation. Dans le cas de lacquisition par corrlation en rception, le principe repose sur la mise en parallle de plusieurs branches, ralisant chacune cette fonction corrlation entre le signal bruit reu et le code dtalement volontairement retard.
Le signal r(t) passe travers K corrlateurs en parallle qui assurent limage ri(t) compose par chaque branche de corrlation. On obtient alors lquation suivante :
-72-
TS
TS
Eq.II. 32]
avec r(t) le signal tal reu , y(t) le signal mis, n(t) le bruit et c(t) lensemble des fonctions orthonorms (pour nous les PN-Codes). A partir de la banque de rsultats ri(t), en fin de chaque branche, nous trouvons la fonction dtection, non reprsente ici, qui sera dcrite dans une partie ultrieure (Chapitre 2 II.5.4.2.1.3). II.5.4.2.1.2 Lacquisition par filtrage adapt
La seconde mthode est appele filtrage adapte . Le principe du filtrage adapt est la recherche dun filtre f(t) tel que le rapport signal sur bruit soit maximal linstant de la dcision T.
r (t ) = x(t ) + b(t ) avec x(t) le signal mis, b(t) le bruit et r(t) le signal reu.
[Eq.II. 33]
Le signal r(t) se positionne la sortie dun ensemble de filtres rponse impulsionnelle f(t). Do z(t) la sortie du filtre vaut :
[Eq.II. 34]
Le signal de sortie est donc la somme des sorties non bruites et de la contribution du bruit. Nous pouvons alors retrouver par le calcul du rapport signal sur bruit et le dveloppement des produits de corrlation que le filtre qui maximise le rapport signal sur bruit linstant de dcision T est le filtre dont la rponse impulsionnelle hk(t) est la copie retourne et dcale dans le temps du signal que lon recherche do
-73-
f (T t ) k (t ) = k 0
[Eq.II. 35]
Cest pourquoi on parle de filtrage adapt puisque le filtre sadapte au signal. La relation existante entre le signal et linverse de la fonction de transfert souhaite peut tre calcule grce une simple intercorrlation entre r(t) et x(t) :
z (t ) = R yx (T t ) = r ( )x k (t )d = r ( ) f k (T t + )d
0 0 t t
[Eq.II. 36]
Le rcepteur calcule donc lintercorrlation entre le signal reu r(t) et le signal attendu x(t). Lavantage de cette mthode rside par rapport la corrlation dans loptimisation du rapport signal sur bruit en recherchant le maximum pour linstant T.
rk (t ) = y k (T ) = r ( )hk ( )d
0 T
[Eq.II. 37]
Linconvnient de cette mthode est de reproduire linverse de la fonction de transfert souhaite. II.5.4.2.1.3 Lorgane de dcision
Nous traitons dans ce paragraphe lorgane de dcision qui est llment permettant de trouver la meilleure information possible partir du signal reu ri(t). Cet organe se situe derrire les organes de corrlation (Chapitre II .II.5.4.2.1.1ou II.5.4.2.1.2).
Comme le montre la Figure II. 32 ce choix se fait partir du calcul de probabilit derreur au niveau de lobservation ri(t). Ce critre de dcision sappelle le critre de maximum de vraisemblance.
II.5.4.2.2
Nous exposons ici les trois principales catgories bases sur les principes que nous venons de prsenter. II.5.4.2.2.1 Dtecteur du maximum de vraisemblance
La Figure II. 33 montre la structure dun dtecteur maximum de vraisemblance. Nous pouvons observer quil est compos de deux lments. Le premier permet de calculer le rapport de vraisemblance qui dpend du canal alors que le deuxime compare ce rapport un seuil.
-74-
Il existe deux manires de calculer le maximum sur une probabilit derreur. La premire est la stratgie Baysienne qui base son calcul sur la notion de cot qui reprsente la pnalit ou la perte associe lvnement conjoint (c'est--dire le prix payer pour chacune des dcisions). La deuxime stratgie est la stratgie Neyman-Pearson qui elle considre deux sortes derreurs qui sont lerreur de fausse alarme et lerreur de mauvaise dtection. Pour ces deux stratgies, la figure suivante montre la structure dun dtecteur maximum de vraisemblance. Seul le calcul de seuil de dcision change entre les deux structures. Dans le cas Baysienne, le seuil dpend du cot et de la probabilit a priori, alors que dans le cas Neyman Pearson le seuil est fix par la probabilit de fausse alarme.
Figure II. 34. Principe dune dtection par maximum de vraisemblance avec corrlateur.
Le calcul pour les stratgies prcdentes se fait symbole par symbole, c'est--dire que le calcul de la probabilit derreur du dtecteur est optimal pour chaque symbole. Cependant lorsque le signal prsente une mmoire, c'est--dire 2 symboles successifs et ne sont pas indpendants, la stratgie du dtecteur doit dtecter une squence de symbole. Lalgorithme de recherche le plus connu est lalgorithme de Viterbi [VERD01]. II.5.4.2.2.2 SERIE Historiquement la synchronisation de type SERIE a t tudie par SAGE [SAGE64] un an avant le systme RASE. La structure SERIE est base sur la corrlation du signal reu avec le PN-Code gnr localement [POLY84]. Une dtection en sortie de corrlation estimera la corrlation. Comme nous pouvons le voir sur lorganigramme (Figure II. 29) des diffrentes acquisitions pour un systme talement de spectre, il existe plusieurs possibilits pour une acquisition de type SERIE : i. ii. Single Dwell time permet la recherche de chaque possibilit dalignement sur un intervalle de temps fix. Multiple Dwell time permet quant elle une estimation de la corrlation sur un intervalle de temps variable. Cette structure sera donc compose de plusieurs branches dobservation, avec un retard variable du code dtalement sur chaque branche ralisant la corrlation.
-75-
II.5.4.2.2.2.a
Le modle classique dcrivant une acquisition SERIE est prsent par la figure ci-dessous [ISCC95].
Il est compos de la fonction corrlation (multiplieur et intgration par filtrage) pour la pr-dtection, dune mise au carr pour la dtection non cohrente, dun bloqueur qui maintient la valeur sur un temps symbole et dun comparateur de seuil pour la prise de dcision. Cette structure prsente des inconvnients : si la prise de dcision en fin de chane directe fait tat dune corrlation mdiocre, il faut recommencer un nouveau calcul en dcalant le code local. Ceci peut se ritrer jusqu N.Tc fois, et devient extrmement pnalisant lors d squence alatoire longue (N leve). Ce temps peut tre diminu par une augmentation du nombre de branches, solution propose par la structure Multiple Dwell . Toutefois, ce type dacquisition est efficace, avec des fonctions pouvant tre implmentes en numrique.
II.5.4.2.2.2.b Multiple Dwell time
Cette structure est une duplication en N branches de la structure Single Dwell time. Une logique de contrle de corrlation est ajoute pour dtecter la branche prsentant une corrlation maximale. Le PN-Code local est dcal dune fraction de temps chip et le rsultat de chaque branche est nouveau estim. Il est possible de trouver un compromis performance/temps de calcul en fixant judicieusement ce temps de dcalage.
. . .
-76-
Outre une complexit plus importante, lavantage de cette structure est la diminution du temps daccrochage et sa bonne immunit au bruit. II.5.4.2.2.3 RASE : Rapid Acquisition by Sequential Estimation
La mthode de synchronisation RASE permet de reconstituer le PN-Code partir du signal reu. Cette structure a t dveloppe par [WARD77] puis approfondie par Kilgus et Yiu [POLY84b]. Le schma de fonctionnement est le suivant:
Initialement les commutateurs sont sur la position 1. Une estimation du PN-Code incident est effectue par le dtecteur et est charge dans les registres du gnrateur de PN-Code. Lorsque les registres sont pleins, les commutateurs sont mis en position 2 et le gnrateur dlivre le PN-Code. Ltape suivante est la vrification de la synchronisation, pour cela une corrlation entre le PN-Code estim et le signal reu est faite. Une logique de contrle permet de dterminer si la corrlation a eu lieu. Si cest le cas, les interrupteurs restent en position 2 et la synchronisation entre le PN-Code et le signal reu est correcte sinon il faut r-estimer le code incident, les interrupteurs repassent donc en position 1. Il existe une amlioration de cette mthode par la technique de RARASE (Recursion Aided Rapid Acquisition by Sequential Estimation) qui repose sur les mmes principes que la technique RASE pour lestimation et la dtection de corrlation. Un indicateur de mrite form par la somme de chaque code sur un temps chip dtermine quand les registres du gnrateur doivent tre commuts pour le rechargement du code estimer. Cette mthode a comme avantage que le temps destimation du PN-Code est relativement faible et elle permet que le PN-Code gnr localement soit parfaitement en phase avec le signal reu. Linconvnient de cette technique est quelle est valable pour des rapports signal sur bruit modrs car les erreurs de lestimation sont de plus en plus importantes lorsque lenvironnement est de plus en plus bruit. Ceci est donc contradictoire avec le principe de ltalement de spectre.
-77-
II.5.4.3
Aprs avoir dcrit la partie acquisition qui permet de retrouver le PN-Code, nous allons prsenter la seconde fonction constituant la synchronisation dun systme talement de spectre la poursuite . Cette fonction permet daffiner et de maintenir le code dtalement avec la trame reue pour effectuer lopration de dstalement correctement. Cet organe se schmatise de la manire suivante: Command par validation de lacquisition
Erreur de poursuite = Td - Td
DISCRIMINATEUR
(t,)
Filtre de boucle
Oscillateur numrique control en tension
Gnrateur de PN CODE
La boucle de poursuite comporte quatre fonctions principales savoir : Le discriminateur : Il fournit une tension (t) proportionnelle lerreur de poursuite . Cette erreur de poursuite est dfinie comme la diffrence entre le temps de retard d la propagation dans le canal Td et celui estim par la boucle Td. Le Filtre de boucle qui permet deffectuer une intgration de la tension obtenue. Loscillateur numrique command en tension (NCO) permet de gnrer un signal dont la priode varie en fonction de sa tension dentre. Le gnrateur du code dtalement qui permet de dlivrer localement des codes fonction de la frquence fournie par loscillateur. Lasservissement permet de gnrer le signal de sortie en phase avec le signal dentre. Toutes les topologies de boucles verrouillage de dlai sont bases sur le mme schma fonctionnel. Les trois structures de la littrature [ISCC95] se diffrencient uniquement par les fonctions intgres dans le discriminateur. Nous allons maintenant prsenter fonctionnellement les diffrentes boucles de poursuite (spcialement leur discriminateur) et en tirer leurs principales caractristiques. Nous tudierons en particulier la performance Tracking Jitter [ISCC95] qui permet dvaluer la variation de lerreur de dlai autour de lorigine. Cette valeur doit tre bien entendu la plus faible possible afin de garantir un taux derreur sur le bit (TEB) minimal. Trois topologies dorganes de poursuite sont couramment cites dans la littrature [GUIL03] : la boucle verrouillage de dlai (Delay Locked Loop ou DLL) cohrente, la DLL non cohrente et la TDL (Tau Dither Loop).
-78-
II.5.4.3.1
DLL Cohrente
' c t d + TC 2
' c t d TC 2
' c t d
)
Figure II. 39. Schma de principe de la DLL cohrente
Selon la Figure II. 39, nous pouvons voir que ce discriminateur est compos de 2 branches principales. Chacune des branches pilotes par le code dtalement en avance et en retard se compose de la manire suivante : Une corrlation permet la multiplication entre le PN Code (en avance et en retard) et la trame reue tale en bande base. Un filtre passe-bas qui permet de rejeter les frquences non desires. Une mise au carr et un soustracteur. La tension derreur (t) en sortie du discriminateur, aprs calcul, scrit [ISCC95] :
[Eq.II. 38]
(t ) = ( y ) ( y+ ) = K P Rc2 r Tc Rc2 r + Tc 2 2
2 2
avec K le gain du multiplieur, P la puissance du signal reu, Rc la fonction dautocorrlation ( II.3.6.2.2) et est une constante fixe par le concepteur, qui permet dajuster le retard du code local gnr comme un multiple ou un sous multiple du temps chip Tc. Sa valeur est gnralement comprise entre 0,5 et 2 [SHEE94], ce qui correspond un dcalage temporel dcalant Tc/4 et Tc respectivement. Enfin, N reprsente le dlai normalis dfini comme suit :
N =
Lquation [Eq.II.37] scrit galement :
Td Td' Tc
[Eq.II. 39]
(t ) = K 2 PD ( N )
[Eq.II. 40]
-79-
Nous faisons volontairement apparatre la quantit D ( r ) dnomme fonction S-Curve qui correspond la diffrence entre les 2 fonctions dautocorrlation leves au carr. Cette fonction S-Curve est la caractristique du discriminateur.
II.5.4.3.2
Le schma de principe de la DLL Non cohrente est dcrit sur la Figure II. 40.
La principale diffrence entre une DLL cohrente et DLL non cohrente [SIMO77] est que cette dernire fonctionne sur frquence porteuse alors que la DLL cohrente est sur bande base. Cet oscillateur local dlivre une frquence gale la frquence porteuse dmission laquelle est soustraite une frquence intermdiaire FFI. Les signaux A1(t) et A2(t) sont alors sur frquence porteuse, de valeur fp-f FI. Ainsi, le discriminateur outre le signal dentre tal sur frquence porteuse fp comporte deux branches dentre (avance /retard) comme dans le cas prcdent. En sortie des mlangeurs M, les signaux Y1(t) et Y2(t) sont transposs en frquence intermdiaire pour un rle quivalent au filtre Passe-Bas de la boucle en bande de base. Le dtecteur dnergie final (mise au carr et filtre) dlivre alors le rsultat de la corrlation pour la branche considre. La tension derreur en sortie proportionnelle lerreur de poursuite estime scrit [ISCC95] :
2 2 (t ) = y (t ) y + (t ) = K1P Rc 2 - Tc Rc 2 + Tc 2 2 2
[Eq.II. 41]
1 (t ) = K1PD ( ) 2
II.5.4.3.3
Le schma de principe est celui reprsent sur la Figure II. 41. Nous constatons la diffrence des prcdentes boucles, que le discriminateur se compose dune seule branche, dans la mesure o un commutateur ralise une commutation priodique entre les codes dtalement mesurs et retards.
-80-
Il comporte les lments suivants : Une fonction interrupteur, commande par un signal numrique q(t) de valeur +1 et -1. Un mlangeur coupl un oscillateur local oscillant une frquence fP-fFI. Un corrlateur qui permet la multiplication entre le signal reu et deux PN codes : un en avance dune demi priode et lautre en retard dune demi priode. Un filtre de PasseBande qui permettra dtre centr sur la bande voulue. Une structure de dtecteur dnergie. Un multiplieur qui permettra la multiplication entre la sortie du dtecteur et le signal q(t) qui commande linterrupteur des PNcodes .
Le principal avantage de cette structure rside dans le fait quelle comprend un nombre plus rduit de fonctions compares avec deux autres boucles (une seule branche dans le discriminateur). La tension scrit, aprs calculs [ISCC95]
(t ) = ( y ) q1(t ) ( y+ ) q2 (t )
2 2
[Eq.II. 42]
1 2
1 2
[Eq.II. 43]
-81-
II.5.4.3.4
-
Les performances exposes sont : la structure du discriminateur. Ce critre nous permet de juger la complexit de la structure en vue de limplantation. La caractristique du discriminateur. Lexpression de lerreur de poursuite en fonction de K le gain du multiplieur, P la puissance reue et D() la caractristique du discriminateur (fonction S-Curve). Le Tracking Jitter [WILD95][WELT94]. Le paramtre reprsente la dynamique de variation de dlai autour de lorigine de au bruit prsent en entre. 2 Il est dfini partir du calcul de la variance et dcrit comme suit pour les diffrentes boucles :
o DLL cohrente 2 =
N 0 WL 1 = L 2P
2
N 0WL 2 N 0 B N 1 1 + = 4 P 2 L
2 N 0 WL B N + 2P 2 8 1 + 2
2 1 + IF
8 3 + 4 9 2 1 4
o TDL
N W 1 1 8 0 L + 1 + 2 P 4 4 2
1 1.811 + 3.261 2 L IF
avec N0= densit spectrale du bruit, WL= Bande passante quivalente du bruit, P P=Puissance reue , BN = Bande Passante du filtre Passe Bande et IF = . N 0 BN Dans le cas de courts dlais et pour assurer un taux derreur sur le bit faible, ce critre doit tre le plus faible possible. Ainsi, la variation du Jitter aura peu dinfluence sur des dlais courts.
Divers Structure du Caractristique du Tracking Jitter Discriminateur Discriminateur [ISSC95] 2 2 DLL Cohrente 2 Branches, Bande de Base 1 (t , ) = y (t ) y + (t ) 2 corrlateurs, 2 L = K1 PD ( ) 2 filtres passe bas, 2 mises au carr 1 soustracteur 2 2 Frquence DLL Non 2 Branches (t , ) = y (t ) y + (t ) 1 2 1+ Porteuse cohrente 2 +2 corrlateurs 1 2 L IF = K1 PD ( ) 2 filtres Passe bande 2 2 dtecteurs dnergie 1 oscillateur local 1 soustracteur 2 2 TDL 1 branche Facilit (t , ) = y (t ) y + (t ) 1 3.261 1.811+ 1 interrupteur dimplantation 1 D ( ) 2L IF = K1 P 1 filtre Passe bande HARDWARE 2 2 1 Dtecteurs dnergie 2 corrlateurs Tableau II. 9. Rcapitulatif des modles et de leurs caractristiques. Modles
-82-
Daprs le Tableau II. 9, nous voyons que la structure la plus simple est la TDL car elle ne comprend quune branche. Cest son principale avantage. Mais sa simplicit dimplantation dgrade des paramtres importants comme le Tracking Jitter . Ce que nous souhaitons au niveau performance cest que ce paramtre soit le plus faible possible ; ce sera cause de ce point que la DLL cohrente sera privilgie pour limplantation.
II.5.4.4
A partir de ltude et de la structure des organes de synchronisation (II.5.4.2.2), ces modles ont t implants sous le logiciel SABER. Nous avons donc dvelopp un modle fonctionnel complet sous ce logiciel, en bande de base, incluant toutes les fonctions prcdemment tudies dans ce chapitre : gnration de code dtalement, talement de spectre lmission, dstalement en rception, encodage diffrentiel, organe de poursuite de type DLL cohrente. De plus, afin de dterminer les performances des synchronisations Srie et RASE, il est ncessaire dinclure un modle AWGN, ainsi quun retard Td paramtrable. Ces deux fonctions sont inclues dans la bibliothque de modle SABER : le bruit blanc est born par un ajout dun filtre passe-bas de longueur de bande gale 40MHz. Quant la fonction retard, elle est modlise par la quantit e Td p . La comparaison entre les deux organes de synchronisation se base sur leurs performances en terme dvolution de gain en traitement Gp et du temps dacquisition (temps daccrochage) en milieu bruit.
II.5.4.4.1
La structure fonctionnelle complte metteur-rcepteur en bande de base, dveloppe sous SABER et incluant un organe de synchronisation Srie de type multiple Dwell time deux branches, est prsente sur la Figure II. 42. Les deux oprations de corrlation (les deux branches de lacquisition) sont effectues pour un dcalage du code dtalement gal un temps chip, soit 25ns. Le bloc logique de contrle saisit les rsultats des oprations des branches de corrlation, et dtermine partir du seuil le code dtalement dlivrant une corrlation maximale. Si cette condition nest pas satisfaite, le bloc de contrle dlivre un signal ( contrle ) qui commande un dcalage de lhorloge rythmant le gnrateur de code. Ce dcalage final et fix par lutilisateur et gnralement compris entre 0,25 Tc et Tc.
-83-
Contrle
Pour un retard dans le canal fix 25ns, la Figure II. 43 fait tat de chronogrammes de signaux cl de la synchronisation srie, savoir :
Correl1 et correl2 sont les signaux prsents en sortie de chaque branche,
respectivement pour un dcalage nul de valeur 25ns entre le code local et la trame reue. Aucune corrlation nest dtecte (Figure 43-a). Paralllement, lopration de corrlation fournit un saut de valeur dpassant le seuil pralablement talonn (Figure 43-b) Le signal contrle , signal matre de la commande du dcalage dhorloge lorsque la corrlation nest pas suffisante, est actif jusqu dtection dune corrlation corrle. Il est alors par suite inactif. Les chronogrammes suivants valident la fonction dveloppe et autorisent la mesure du temps dacquisition, pour cet exemple de valeur 20s.
-84-
Temps dacquisition
Correl2 (b)
Correl1 (a)
II.5.4.4.2
Organe RASE
Le modle de lorgane de synchronisation RASE implment sous le logiciel SABER est reprsent sur le Figure II. 44. Le corrlateur auquel on a ajout un dtecteur dnergie (mise au carr) et un filtre Passebas, permet de rcuprer la valeur efficace de la corrlation. Une logique de contrle estime partir dun seuil la corrlation. Si le franchissement du seuil nest pas effectu, alors une
-85-
impulsion lost est gnre. Cette impulsion commande le bloc logique de linterrupteur dont le signal CTRL est limage et pilote linterrupteur (Organe Switch). Linterrupteur comporte un tat de chargement et un tat de synchronisation. Pour un rapport signal sur bruit de -3dB, les signaux cls ont t visualiss sur la Figure II. 45 et sont : out_correl . Ce signal est celui prsent en sortie du corrlateur et de la dtection (Mise au carr et filtre Passe-Bas). Le seuil pralablement dfini par lutilisateur est franchi aux environs de 22s. CTRL . Ce signal permet le contrle des interrupteurs et est actif tant que la corrlation nest pas ralise. Limpulsion du signal bascule ltat de linterrupteur Swith. Lorsque le seuil de corrlation est franchi, le signal CTRL devient inactif.
Temps dacquisition
Seuil 1,5V
Figure II. 45. Sortie du corrlateur pour un rapport SNR=-2,9 dB et un seuil de 1,5V.
Ce chronogramme permet la validation RASE et la mesure du temps dacquisition qui est estime ici environ 22s.
II.5.4.5
Notre comparaison s'est focalise sur deux paramtres clefs d'un systme talement de spectre, que sont le gain en traitement Gp et le temps d'acquisition Tacq.
II.5.4.5.1
Gain en traitement
Le gain en traitement reprsente la diffrence entre le rapport signal sur bruit en sortie du rcepteur et le rapport signal sur bruit en entre.
S S Gp = B Sortie / rcepteur B Entre / rcepteur
[Eq.II. 44]
-86-
Ce gain en traitement traduit un avantage important des systmes utilisant la technique dtalement de spectre, savoir laugmentation aprs dcorrlation en rception du niveau du signal dun facteur gal ce gain Gp. La Figure II. 46 montre lvolution du gain en traitement des deux structures de synchronisation, le niveau de bruit tant paramtrable au moyen du canal AWGN implant dans le simulateur. Ces rsultats sont compars au gain en traitement thorique, dpendant directement de la longueur N du code : Gp=10 log [N]
[Eq.II. 45]
Les rsultats prsents sont pour une valeur N gale 15, soit un gain de traitement thorique de 11,7dB.
12
11,5
11
10,5
RASE
SERIE
THEORIE
10 -8 -6 -4 -2 0 2 4 6 8 10
Pour les trs faibles niveaux de bruit (SNR entre > 4dB), la structure SERIE est trs proche du gain en traitement thorique, alors que la structure RASE prsente un gain infrieur de 1 dB. Lorgane SERIE assure toujours un meilleur gain en traitement lorsque laugmentation du bruit dgrade les performances des deux structures. Uniquement pour des trs haut niveaux de bruits (SNR <-4 dB), la structure RASE semble prsenter un meilleur gain. Cependant, dans ce cas les valeurs de bruit associes, de fortes valeurs, entranent trs rapidement une impossibilit de synchronisation. Daprs ces rsultats pour des rapports signal sur bruit communment rencontrs en milieu clos, la structure SERIE semble avantageuse.
II.5.4.5.2
Temps dacquisition
Le temps dacquisition conditionne directement le temps de rponse du systme complet. Il a t mesur partir des simulations des signaux de contrle et du signal rsultant de lopration de corrlation, comme prsent dans le paragraphe (Chapitre II II.5.3.2). Son volution, dans le cas des deux structures de synchronisation, est prsente sur la Figure II. 47 en fonction du rapport signal sur bruit. -87-
80 70
SERIE
RASE
60 50 40 30 20 10 0 -8 -6 -4
-2
10
Figure II. 47. Mesure du temps dacquisition pour les 2 structures dacquisition
Pour de faibles niveaux de bruit (SNR>-2 dB), la structure RASE est ici plus performante que la structure SERIE. En effet, elle calcule le code dtalement reu par estimation. Pour des niveaux de bruits plus importants (SNR<-2 dB), ce calcul est de plus en plus complexe et le temps dacquisition se dgrade. Dans ce cas, la structure SERIE devient nettement plus avantageuse, prsentant par exemple un temps dacquisition rduit de 30% pour un rapport signal sur bruit de 6 dB dans le canal.
II.5.4.5.3
Nous avons compar ces deux principales structures de synchronisation (Srie et RASE) en dterminant par simulations fonctionnelles les paramtres clefs du systme que sont le gain en traitement et le temps dacquisition. Au vu des rsultats obtenus, il apparat une complmentarit des deux structures. En prsence dun rapport signal sur bruit moyen lev, le systme synchronisation Srie prsente un meilleur gain en traitement avec toutefois avec un temps daccroche plus important. Pour un milieu trs fortement bruit, le gain en traitement devient voisin de celui obtenu avec la structure RASE, tout en prsentant un temps daccroche cette fois-ci favorable. Pour toutes ces raisons, nous retiendrons donc la structure Srie car la rsistance au bruit est un paramtre important pour notre systme. De plus, cette structure Srie peut tre optimise, par une augmentation du nombre de branches effectuant les calculs de corrlations. Cette amlioration, visant diminuer le temps dacquisition, sera value ultrieurement (Chapitre 4 IV.5.1.2).
II.6 Conclusion
Dans ce chapitre, aprs des gnralits sur les communications numriques, nous avons dcrit le cahier des charges pour un systme de tlcommunication talement de spectre. Nous avons alors pass en revue les diffrents organes mis en jeux dans ce systme (modulation, talement de spectre et sa gnration de PN-Code, dmodulation) en dveloppant particulirement lorgane dacquisition et de poursuite. Une recherche bibliographique a montr les diffrentes possibilits pour concevoir ces deux fonctions. Deux solutions ont t mises en avant pour la structure de lacquisition (acquisition SERIE, -88-
acquisition RASE) et une pour la poursuite (DLL Cohrente). Nous avons alors compar ces dispositifs sur les critres de gain en traitement et de temps dacquisition. De cette comparaison, la structure SERIE avec la boucle verrouillage de dlai cohrente a t retenue particulirement cause de sa rsistance au bruit, et la possibilit doptimisation de la latence finale par lajout de branches de corrlation supplmentaires.
-89-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
-90-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Rsum
Ce chapitre dcrit tous les tages dvelopps en VHDL-AMS. Ces modles permettent loptimisation de diffrents paramtres de lorgane de synchronisation (nombres de branches, valeur du seuil de corrlation). Dans ce chapitre, nous avons tout particulirement dvelopp notre propre modle de canal compos dun canal AWGN et dun module de retard paramtrable.
Introduction ................................................................................................................................................. 93 Le langage VHDL-AMS ............................................................................................................................. 94 2.1 Historique .......................................................................................................................................... 94 2.2 Choix de ce langage........................................................................................................................... 94 2.3 Description du langage[VACH02][HERV02] ................................................................................... 94 3 Codage en langage VHDL-AMS de lmetteur/rcepteur......................................................................... 100 3.1 Fonctions implanter et caractristiques........................................................................................ 100 3.2 Les tages numriques ..................................................................................................................... 103 3.3 Description des parties analogiques................................................................................................ 128 3.4 Description du Convertisseur Analogique / Numrique .................................................................. 135 4 Rsultats de simulation.............................................................................................................................. 135 4.1 Simulation de la fonction dautocorrlation .................................................................................... 135 4.2 Simulation de la chane complte Emetteur/Rcepteur.................................................................... 136
1 2
-91-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
-92-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.1 Introduction
Dans le chapitre prcdent, nous avons tudi les diffrentes fonctions du systme metteur/rcepteur talement de spectre. Nous allons maintenant dvelopper dans ce chapitre la description du prototypage virtuel associ. Considrant la complexit du systme, nous avons choisi une description base sur un langage matriel de haut niveau, qui prsente comme avantage une grande flexibilit de conception [HERV02]. Historiquement, deux types de langage de description matrielle sont ns quasi-simultanment, au dbut des annes quatre vingt dix : le VHDL et le Verilog. Ces deux langages supportent la gestion des signaux vnements discrets. Par suite est apparu leur extension respective (VHDL-AMS et Verilog-AMS) incluant la gestion des signaux temps continu. Le Tableau III. 1 rsume cette volution.
Langages VHDL Verilog Organisme de normalisation IEEE(1076)
(Date de normalisation : 1993)
Objectif du langage
Description du matriel Description du matriel
Commentaires
Niveau dabstraction leve. Langage le plus utilis en Europe.
Langage plus utilis aux Etats Unis. Verilog 2001nest pas toujours pris en compte par les outils du commerce Description dun Niveau dabstraction plus lev que le IEEE(1076) VHDL-AMS systme analogique Verilog-AMS. (Date de (Extension du VHDL) normalisation : 1999) et numrique. Outil graphique (Simplorer et [IEEE1] SystemVision) dvelopp pour le VHDL-AMS Description dun Niveau dabstraction restreint . IEEE Verilog-AMS systme analogique (Date de (Extension du Verilog) normalisation : 1998) et numrique. [IEEE2]
IEEE(1364)
Tableau III. 1. Rcapitulatif des principaux langages de description matrielle et de leur extension.
Ces deux langages (VHDL-AMS et Verilog-AMS) prsentent des capacits techniques assez similaires. Nous avons retenu de dvelopper notre prototype en langage VHDL-AMS, pour diverses raisons : Premirement, le VHDL (ou VHDL-AMS) a un niveau dabstraction plus lev que le Verilog ce qui permet davoir une meilleure vision au niveau systme. Notre environnement et collaboration scientifique semblent plus ouverts aux changes avec des spcialistes du VHDL-AMS que du Verilog-AMS. Enfin, les outils disponibles au laboratoire et loffre logicielle en outils graphiques (des socits Ansoft ou Mentors Graphics) sappuient sur ce langage. Ce chapitre sarticule de la manire suivante : dans un premier temps, nous allons prsenter le langage de haut niveau VHDL-AMS, permettant de dfinir sa puissance mais aussi ses limites de performances. Puis, toutes les fonctions mixtes analogiques et numriques, propres notre prototype de tlcommunication talement de spectre sont dveloppes dans ce langage. Des fonctions analogiques spcifiques ont du tre mises en uvre, le langage nincluant pas de bibliothque de bruit par exemple.
-93-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.2.2
Choix de ce langage
En vue dimplanter notre systme, le choix du langage VHDL semble incontournable, quelque soit la cible que nous choisirons pour notre circuit final. Notre systme sera alors rutilisable, flexible, extensible et permettra de modliser dun bout lautre la chane mixte de communication. En vue dune implantation, le langage VHDL semble incontournable puisque quelque soit la cible choisie, ce langage est support par la quasi-totalit des logiciels de CAO.
III.2.3
Trois types de descriptions de fonctions sont identifis et complmentaires : la description matrielle, la description comportementale, et la description fonctionnelle. Comme nous lavons nonc prcdemment, le langage VHDL a t cr pour permettre une description matrielle dune fonction. Une description matrielle (ou structurelle) dfinit la structure dun modle par un assemblage de composants, ou des botes noires. Ce type de description permet de crer la fonction voulue au niveau composant laide de lassociation dlments sous formes de portes logiques. Cest pourquoi la description structurelle est la
-94-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
seule tre synthtisable puisquelle fait rfrence au matriel de type porte logique lmentaire. Une autre possibilit de description est la description comportementale qui permet de dfinir le fonctionnement dun systme ou le comportement dun modle. Cette description ne repose pas sur une structure mais plus sur des algorithmes. La dernire possibilit de description est celle appele flot de donnes ou description fonctionnelle. Elle rejoint la description comportementale puisquelle se base sur lexpression des fonctions de sortie partir dquations boolennes. Il apparat donc plus difficile dutiliser ce type de description dans le cas dun circuit complexe o il est ncessaire de se rattacher une structure. Au vu de la dfinition des diffrentes descriptions possibles, nous avons choisi dutiliser la description structurelle afin de synthtiser facilement notre systme. Cette dmarche demande effectivement plus dinvestissement au niveau de la dfinition de la structure du circuit mais ce temps sera regagn lors de ltape de synthse.
III.2.3.1.2
-95-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Ce modle VHDL comprend les parties suivantes : i. Une dclaration de paquetage, utilise par plusieurs fichiers, sous-programmes et composants. Elle permet de dfinir les librairies utilises, les fichiers, sousprogrammes et composants qui composent le corps de paquetage. ii. Larchitecture globale de lentit peut contenir un ou plusieurs composants, chaque composant tant dfini par les mmes parties que lentit de conception principale. iii. Le corps de lentit comprenant la dclaration de cette entit et son architecture interne. Les parties (i) et (ii) permettent une description matrielle du systme alors que la dernire (iii) permet de regrouper les informations pouvant tre rutilises dans dautres systmes. Toutes les dclarations (entit, configuration et paquetage) dcrivent une vue extrieure, c'est--dire quelles sont visibles par toutes les parties du modle et permettent ainsi le partage et la rutilisation des ressources. Elles sont gnralement associes aux parties corps . Ces parties corps permettent de dfinir une vue interne de lentit ou du paquetage et une description fine des diffrentes architectures ou paquetages sera faite. On peut dfinir pour une mme dclaration dentit plusieurs architectures. La Figure III. 2 prsente un exemple type de structure de fichier VHDL, faisant apparatre le paquetage, la dclaration de lentit et son architecture.
III.2.3.1.3
Les signaux
Afin que chaque entit puisse communiquer avec lextrieur ou simplement dans le modle principal il existe deux classes de dclaration de signaux generic et ports. Les signaux generic sont des constantes ou des paramtres qui servent rendre le systme plus gnral. Les signaux ports sont des variables ou des nuds entre chaque entit. Ils sont dfinis par un nom, un mode et un type. Par exemple clk_160nco : in std_logic ; Le signal porte le nom clk_160nco, est de mode entre(in)et son type est
std_logic (standard logique).
Un mode comprend trois dclarations possibles. Le mode entre (in), le mode sortie (out) et le mode bidirectionnel (inout). Enfin, le type peut tre entier, flottant, numr ou tableau.
III.2.3.1.4
Le processus
Une notion importante est la notion de processus ou process . Un processus regoupe un ensemble dinstructions qui sont excutes en fonction dvnements auxquels ils sont sensibles. Les instructions du processus sexcutent squentiellement jusqu un point darrt. Cest la fin du processus que les signaux prennent leurs valeurs.
-96-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Commentaires
--***************************************************************************** -- INTEGRATEUR/BLOQUEUR --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic;
Dclaration des ports en mode entre et de type std_logic Dclaration du port en mode entre et de type vecteur sign
Dfinition de la librairie Dclaration des paquetages standard Dclaration du paquetage parameter propre au systme Dclaration de lentit
Dclaration
Paquetage
data_multi_clk40nco : in signed (3 downto 0); result_clk160nco ); end integ_dump; architecture arch of integ_dump is : out signed (M downto 0)
Dclaration du port en mode sortie et de type vecteur sign
Entit
re_synchro: process (rst,clk160nco) Liste des vnements auquelle est begin sensible au process re-synchro if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0';
Affectations asynchrones
Architecture
elsif(rising_edge(clk160nco)) then dump_intermediaire_clk160nco <= dump_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; end if; end process re_synchro;
Affectations squentielles
result_clk160nco <= result1_clk160nco when(detect_front_clk160nco <='1') else (others => '0') when(rst = '1'); end arch;
-97-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Dvelopp partir du langage VHDL, le langage VHDL-AMS repose donc sur la mme fondation. De manire identique au langage VHDL dcrit prcdemment, un modle VHDLAMS comporte les diffrentes dclarations (dclaration dentit, dclaration de configuration et dclaration de paquetage) et les diffrents corps (corps darchitecture et corps de paquetage). Les fonctions analogiques sont dcrites laide dquations diffrentielles et algbriques avec le temps comme variable indpendante. Ces quations sont de deux types : conservatif et non conservatif.
Conservatif
Les systmes de type conservatif sont gouverns par des lois de la physique et des lois de conservation de lnergie. Pour le domaine de llectricit, nous retrouvons des circuits temps continu rgis par des quations conservatrices que sont les lois de Kirchoff . En VHDLAMS le formalisme de ce genre de description sera de deux types : terminal et nature (paragraphe III.2.3.2.2.1).
V (t ) = R I (t )
[Eq.III. 1]
Non Conservatif
Les systmes non conservatifs nont pas besoin dtre rgis par la conservation dnergie. En VHDL-AMS la description sera de type de quantit libre.
dU (t ) = I (t ) dt
[Eq.III. 2]
Le langage VHDL-AMS comporte deux noyaux de simulation, lun pour la partie numrique et lautre pour la partie analogique. Chaque noyau de simulation possde sa propre horloge. Le VHDL-AMS permettant une simulation mixte, il faut que les noyaux numriques et analogiques soient synchroniss. Pour cela, il a t cr les instructions break et above. Linstruction break est utilise lorsquon veut une interaction du noyau numrique sur le noyau analogique. Cette instruction permet de forcer le calcul de la partie analogique au moment dun vnement sur la partie numrique. Linstruction above permet que le noyau analogique agisse sur le noyau numrique. Un vnement sera alors cr partir dune quantit du noyau analogique. Une entit joue toujours le rle d interface pour la communication entre les fichiers extrieurs et le modle laide des dclarations de type generic et port. En VHDL-AMS les ports peuvent appartenir diffrentes classes selon le systme (conservatif ou non conservatif) :
Les ports de classe signal modlisent les signaux logiques, comme en VHDL. Les ports de classe terminal fournissent des points de connexions analogiques pour les systmes pour lesquels la loi de conservation dnergie est satisfaite. Les ports de classe quantit (quantity) dfinissent des points de connexions analogiques mais directionnels avec des entres (in) ou des sorties (out). Les
-98-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
quantits prennent leurs valeurs par la rsolution dun systme dquations effectue dans le domaine analogique.
III.2.3.2.2
III.2.3.2.2.1
Un objet de type terminal dfinit des points de connexion analogiques pour les systmes conservation dnergie. Ainsi les terminaux dfinissent les branches auxquelles diffrentes grandeurs sont associes. Dans le domaine lectrique par exemple ces grandeurs sont la tension et le courant. A chaque terminal est associ une nature qui est dfinie travers deux classes. La classe entre (accross) qui modlise leffort aux bornes du terminal et la classe travers (through) qui reprsente un flux travers le terminal. Un tableau ci-dessous prsente les efforts et les flux associs chaque nature dun objet de type terminal. Nature Electrique Thermique Hydraulique Mcanique de translation Mcanique de rotation Effort Tension Temprature Pression Vitesse Vitesse angulaire Flux Courant Dbit de Chaleur Dbit Force Torsion
Au titre de la conservation dnergie (la somme des flux un nud est nulle et leffort est commun la somme des puissances dissipes dans les branches du rseau est nulle), les terminaux connects devront tre de mme nature. III.2.3.2.2.2 Les quantits
Les quantits reprsentent les inconnues des quations diffrentielles du systme. Ces objets mmorisent la valeur de la variable jusqu la prochaine rsolution des quations diffrentielles dans le noyau de simulation analogique. Les quantits sont soit de type rel soit de type flottant. Il existe trois sortes de quantits :
Les quantits libres reprsentent nimporte quelle grandeur analogique temps continu. Les quantits de branches reprsentent une grandeur dans un systme conservatif. Elles sont associes des terminaux. Les quantits sources sont des quantits libres ddies lanalyse frquentielle ou lanalyse de bruit.
-99-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Lexemple suivant illustre la quantit de branche pour le domaine lectrique : V12 Tb2 I12 Tb1
terminal tb1, tb2 : electrical ; --Dfinition des terminaux tb1 et tb2 quantity V12 accross quantit entre (Tension pour le domaine choisi) I12 through tb1 to tb2 ; quantit travers (Courant pour le domaine choisi)
III.2.3.2.2.3
Le critre de solvabilit
Ce critre est un garde fou qui permet de sassurer qu tout moment le modle comporte autant dquations que dinconnues. Ce critre, impos par la norme, est tabli comme suit :
Le nombre dquations simultanes doit tre gal au nombre de quantits travers augment du nombre de quantits libres et du nombre de quantits dinterfaces en mode sortie .
Ce critre est effectivement contraignant, mais sil est appliqu correctement pour chaque composant, il permet dassurer lors dune association de composants la bonne rsolution des quations pour le systme. Si ce critre nest pas appliqu le modle nest pas compilable. Cest donc un critre sur lequel tout concepteur systme en VHDL-AMS doit sappuyer.
III.3.1
Nous rappelons dans cette partie les fonctions dtailles numriques et analogiques de notre systme metteur/rcepteur (Figure III. 4).
-100-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Notons sur le schma fonctionnel la prsence entre autres, des organes de synchronisation et de poursuite dfinis au chapitre II, ainsi que le convertisseur analogique/numrique en entre du rcepteur. Au vu du cahier des charges expos dans le chapitre II (II.4) les caractristiques et paramtres physiques associs chacune des fonctions sont dfinis dans le Tableau III. 3.
-101-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Fonctions
Type de signal
Caractristiques
Emetteur
Codeur diffrentiel Etalement Gnrateur de PN-Code Fonctions Radiofrquence
Fosc=1/(Tc*N), Rapport Cyclique 0.5 Porte XOR Gnrateur de Galois 7<Code dtalement<2047 Filtre Passe bande 2.44 Ghz , 80 Mhz de Bande passante Bande Passante = 40Mhz
Frquence de coupure =160Mhz
Canal
AWGN Additive White Gaussian Noise
Analogique
Rcepteur
Acquisition, Poursuite, Gnration PN- Code
SERIE
Produit , Intgrateur/bloqueur Seuil de corrlation paramtrable Priode = Tc=25ns Pas Offset PN code : chip Produit, Intgrateur/bloqueur, Valeur Absolue 1 avec =1s 1er ordre , 1 + s KNCO =100kHz/V Fo=160MHz
Filtre de boucle NCO (Oscillateur numrique command) Gnrateur PN Code Dstalement Dcodeur diffrentiel
Poursuite DLL
Le synoptique de codage en VHDL-AMS, dduit du schma fonctionnel (Figure III. 5), permet de dcrire le test bench.
SOURCE (VHDL)
-102-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Le codage de notre systme suppose lexistence des fichiers suivants : Le fichier SOURCE permet de crer les signaux tels que les horloges, les signaux dinitialisation (Reset), les donnes issues des capteurs et les signaux pour la configuration du gnrateur de PN Code. Ce fichier nest utile que pour la simulation mais lors de limplantation ce fichier nexistera plus car ces signaux seront gnrs par le circuit ou des lments externes de type bouton poussoir par exemple. Le fichier EMISSION permet de dcrire le fonctionnement de lmetteur partir des fonctions dcrites dans le fichier FONCTIONS EMISSIONS. Le package FONCTIONS EMISSIONS dcrit chaque fonction EMISSION (codeur diffrentiel, gnrateur de PN-Code, multiplieur) Le fichier TRANSMISSION dcrit les fonctions radiofrquences (multiplieur analogique, filtres ) et le canal AWGN. Le fichier RECEPTEUR dcrit le fonctionnement du rcepteur partir des fonctions dcrites dans le fichier FONCTIONS RECEPTEUR. Le package FONCTIONS RECEPTEUR dcrit les fonctions du rcepteur (dstalement, synchronisation, poursuite, gnration du PN-Code, dmodulateur, encodeur diffrentiel, mise en forme) Le fichier TRANCEIVER TEST permet de runir et de visualiser tous les signaux utiles pour notre choix darchitecture.
III.3.2
III.3.2.1.1
Gnrateur de PN-Code
Nous avons montr (Chapitre II (V.2)) que la gnration du PN-Code ncessite un polynme d(n) pour linitialisation et en entre un polynme gnrateur c(n) qui permet de
-103-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
charger le polynme primitif dans les registres dcalage. Le schma lectrique du gnrateur de PN-Code est le suivant :
Nous remarquons la prsence dune horloge de 40MHz, fixant le temps chip du code dtalement 25ns. Le diagramme du gnrateur de Galois est illustr de la manire suivante :
Lorganigramme de codage du code dtalement (Figure III. 8) comprend deux processus : Le premier processus (celui de gauche) permet linitialisation des registres. Le deuxime processus (celui de droite) cre un signal dump qui fixe le temps symbole du PN_Code. A chaque coup dhorloge, la valeur des signaux q(i+1) (signal
-104-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
en entre de la bascule D) est affecte au mot d(i) (signal de sortie des bascules D). Le signal q(0) reprsente le signal de sortie du gnrateur de PN-Code.
III.3.2.1.2
Encodeur
Lencodeur diffrentiel possde trois signaux en entre : le signal encoder, lhorloge 40MHz et le signal pour la dtection du temps symbole.
Cette fonction est compose de deux processus : Le premier processus effectue lopration dencodage diffrentiel partir de deux portes logiques (NOT) et (XOR). Le deuxime processus dtermine le front montant sur dump (signal gnr tous les temps symbole) partir des signaux dump_e_rideau1 et dump_e_rideau2 (signaux de resynchronisation utile la dtection du front montant).
III.3.2.1.3
Fonction Multiplieur
Cette fonction Multiplieur (rfrence la fonction analogique de multiplication) doit dcrire le fonctionnement de ltalement de spectre. Une donne ltat haut est code par la squence dtalement et une donne ltat bas par la mme squence inverse. Ceci amne logiquement la table de vrit ( Tableau III. 4): D donne 1 1 0 0 Ci (Code talement) 1 0 1 0 Fonction raliser 1 0 0 1
Nous voyons que la fonction raliser peut tre dcrite soit par une porte logique de type not XOR soit par une description comportementale.
-105-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.1.4
Rsultats de simulation
Les fichiers Generateur_PN_Code , codeur , multiplieur et Emetteur sont compils laide de loutil ModelSim. Les rsultats sont reprsents sur la Figure III. 10 pour une longueur de code N=15.
Les signaux prsents sont dcrit ci-dessous : Clk_40e : Horloge de 40MHz qui correspond un temps Chip. Rst : Le signal Reset permet dinitialiser tous les signaux de lmetteur. (Reset Asynchrone). Cn_code : Bus dinitialisation du gnrateur de PN_code, ici la valeur est fixe 9 ce qui correspond une longueur N=15. Cest un des paramtres dentre de lorgane Emetteur. Data_source : Donnes prsentes au niveau de lmetteur qui modlise les signaux issus des capteurs. Data_encodee: Sortie de lencodeur diffrentiel. Dump_e_clk_40e: Signal gnr par le gnrateur de PN_Code chaque temps symbole (ici Ts=375 ns). Dump_e_rideau1 et Dump_e_rideau2 : Signaux permettant la dtection du front montant sur le signal Dump_e_clk_40e. Detect_front : Signal qui dtermine le front montant Dump_e_clk_40e. Code_e_clk_40e : Code de sortie du gnrateur de PN_Code. Pour une longueur de 15 , le code est 1111 0101 1001 000 . Data_etalee: Signal rsultant de la recomposition de la donne encode Data_encodee avec le PN_Code Code_e_clk_40e . Data_etalee est le signal en sortie de lmetteur. Pour valider notre modle VHDL de lmetteur, nous avons compar et valid nos rsultats de simulation avec ceux obtenus de manire fonctionnelle sous le logiciel SABER.
-106-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.1
Le rcepteur sans synchronisation effectue les oprations classiques de conversion analogique/numrique et de dstalement. Il se compose des fonctions :
-107-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
i. convertisseur analogique/numrique , issue de la bibliothque et adapte notre application. Elle est dveloppe dans la partie III.3.4. ii. dstalement en rception qui dcorrle le signal reu. iii. test donne qui traite le rsultat de corrlation en exprimant le rsultat sur un bit. iv. Le dcodage diffrentiel, opration inverse du codage lmission. III.3.2.2.1.1 Dstalement en rception
La premire opration classique de multiplication est identique celle de lmission (OU exclusif) et permet la transformation du PN-Code en fonction du mot de 4 bits (data_codee[3:0]). Quand le PN-Code vaut 1 data_multi[3:0] ( sortie de cet organe) recopie la valeur data_codee[3:0],dans le cas de la valeur 0 data_multi[3:0] inverse lentre data_codee[3:0]. Le signal data_multi[3:0] peut prendre 2n-1 valeurs.
Lintgrateur/bloqueur est un organe important du systme puisquassoci la fonction multiplieur, il permet de dstaler le signal reu. Il est compos dun registre qui accumule le signal reu (data_multi[3:0]) sur la dure du temps symbole Ts dpendant de la longueur du code (N), et dun bloqueur qui reoit et fige la valeur du registre daccumulation chaque temps symbole (dump_clk40nco). La dtection dun temps symbole est cre partir du front montant sur le signal dump. Ce signal dump a deux vocations : la remise zro de lintgrateur, et le dclenchement de la phase suivante dintgration. Pour une question de prcision sur la fonction multiplication , nous avons choisi [MELE01] quun temps Chip soit dcrit par quatre chantillons. Laccumulation dans le registre se fait donc la frquence dchantillonnage de 160 MHz. La taille utile la fonction accumulation (na) a pour paramtre le nombre dchantillons par symbole (M) et le nombre dchantillons sur un temps Chip (ne). Nous pouvons ainsi dterminer le nombre de bits ncessaires pour coder laccumulateur valant :
Nous reprsentons lorganigramme correspondant au code VHDL de la fonction Intgrateur/Bloqueur sur la Figure III. 13.
-108-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Cette fonction est compose de deux processus. Le premier processus permet de resynchroniser les signaux dump avec lhorloge de 160MHz (non reprsente sur la figure). Le deuxime processus permet de gnrer le blocage sur le signal dump (signal gnr tout les temps symbole Ts) et laccumulation sur chaque front montant de lhorloge de 160MHz. La priode dintgration varie donc en fonction de la longueur du PN-Code. Le signal accu_test[M:0] est le signal prsent la sortie de lintgrateur. Le signal result1[M:0] (sur M bits) reprsente le signal en sortie du bloqueur, rcalcul tous les temps symbole. Ce signal est par suite inject lentre de la fonction Test de donne . III.3.2.2.1.2 Test de donne
La fonction Test de donne compare par rapport un seuil, le mot dentre sur M bits, et le restitue sur un bit. Au vu de la fonction dautocorrlation thorique (Chapitre II 1 III.6.2.2) ngative pour une corrlation nulle (et gale ), il est logique deffectuer la N comparaison par rapport la valeur zro. Toutefois, en simulation, nos premiers rsultats avec ce seuil sont errons car quelque soit la valeur en sortie de lintgration (positive ou ngative), cette fonction retrouvait le signal quivalent Data_encodee. La sortie correspondait donc aux donnes mises. Il faut en effet moduler cette valeur en fonction de la longueur N du code dtalement. Pour palier ce problme, nous avons dfini un nouveau seuil de valeur +200 (pour N=15). Ce seuil est test chaque temps symbole (grce au signal dump) et la fonction test de donne convertit dans un deuxime temps le mot de M bits (rsultat de lintgration) sur un bit. La Figure III. 14 dcrit lorganigramme de cette dmarche.
-109-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.1.3
Dcodeur diffrentiel
Le dcodeur diffrentiel, dont le principe a t tudi au Chapitre II V.1, permet de dcoder le signal data_av_decodee_clk160nco en sortie de la fonction test de donne . Ce dcodeur possde deux signaux en entre : le signal dcoder et le signal dump_r_clk40nco qui dtermine le passage un autre symbole. Le signal en sortie de cette fonction est le signal de sortie du rcepteur et doit tre identique la trame de donnes (data_source) en entre de lmetteur. Lorganigramme de cette fonction est reprsent sur la figure suivante :
Cette fonction se compose de deux processus. Le premier processus est la resynchronisation du signal dump avec lhorloge de 160MHz (non reprsent ici) et la dfinition des signaux dentre data_n_1 (reprsentant ltat prcdent de data_n) et data_n. Le second processus est le dcodage du signal Data_av_decodee_clk160nco sur le front montant de lhorloge en sortie du NCO, et du signal Dump_clk40nco resynchronis. Le dcodeur DBPSK est ainsi ralis laide deux portes logiques NOT et XOR qui encodent les data_n_1 et data_n, et dun registre dcalage pour la fonction mmoire (entre data_n_1 et data_n). Cette fonction reprsente la fonction inverse de ltage Encodeur lmission.
-110-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.1.4
Rsultats de simulations
Les diffrents signaux de lorgane recepteur_ss_synchronisation sont reprsents sur la figure III.16.
On peut voir sur la Figure III.16 les diffrents signaux gnrs par le rcepteur et classs par fonctions.
Data_codee_clk40e : les donnes reues et chantillonnes (aprs conversion du
Code.
Data_multi_clk40nco : donnes aprs la fonction multiplieur dont la valeur
varie entre +7 et -7 selon la valeur du PN-Code, qui correspondent au signal encod de lmetteur. Acc_test_clk160nco : le signal daccumulation gnr sur le front montant de lhorloge. Les valeurs sont incrmentes de +7 ou dcrmentes -7 tous les 6,25ns (Tc/4). Dans notre exemple, c'est--dire pour N=15, ce signal peut atteindre en valeur maximum +/- 420 ((4N7) ou (4N-7)). Dump_clk40nco : ce signal est gnr par le gnrateur de code alatoire tous les temps symbole (375ns) partir de lhorloge Chip. Ce signal est aussi utile au bloqueur et la remise zro de laccumulateur de lintgrateur. Detect_front : le signal dtecte pour une horloge de 160MHz le front montant sur le signal dump_clk40nco. Ce procd de resynchonisation est invitable puisque le dump est gnr partir dune horloge de 40MHz et exploit par une horloge de 160MHz. Data_desetalee_clk160nco : il correspond au signal en sortie de la fonction dstalement rception . Il est donc gnr sur chaque front montant (detect_front) de dump_clk40nco avec un symbole de retard par rapport au signal daccumulation (Acc_test_clk160nco) et peut donc prendre les valeurs maximums de +/- 420.
-111-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Data_av_decodee_clk160nco :
il sagit du signal en sortie de la fonction test_donne et est issu de la comparaison au seuil de valeur 200. Il est restitu sur un bit, et correspond au signal aprs encodage au niveau de lmetteur. Sortie_clk160nco : cest le signal en fin de chane de rception, quivalent la trame de donnes en entre de lmetteur.
III.3.2.2.2
Synchronisation
Nous dcrivons tout dabord la structure lmentaire de lorgane de synchronisation comportant une seule branche.
A partir du schma fonctionnel de la synchronisation SERIE (Chapitre 2 V.4.3.2.2) et des travaux antrieurs [BOUR00], les fonctions utiles pour cet organe sont : un multiplieur et un filtre Passe-Bas du 2me ordre pour la corrlation, une mise au carr et un filtre de Bessel du 5me ordre pour la dtection denveloppe , une logique de contrle pour dterminer si la corrlation est existante. Cependant, lintgration de ces fonctions nous oblige les substituer par un homologue numrique. Ainsi : La fonction corrlation regroupant le multiplieur et le filtre devient les fonctions dstalement rception dj prsentes dans le paragraphe (III.3.2.2.1.1). La mise au carr est reprsente par la fonction valeur absolue. Le filtrage pour la dtection denveloppe par un filtre numrique de type RII. La logique de contrle par la fonction test seuil avec le seuil adapt.
III.3.2.2.3
Comme nonc dans le chapitre II (V.4.4.1.1), lorgane de poursuite est compos dun discriminateur qui dtermine lerreur de poursuite, dun filtre de boucle pour moyenner lerreur de poursuite et dun oscillateur command en tension pour gnrer une horloge de frquence 160 MHz module par la valeur de lerreur. Un multiplexeur permet de dclencher la poursuite lorsquune corrlation est dtecte (signal synchro de valeur 1) par lorgane de synchronisation.
-112-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Si le rsultat de corrlation de la branche Early est suprieur celle de la branche Late , une erreur de poursuite (discri) positive est cre et gnrera une priode en sortie de loscillateur (NCO) de valeur Tearly = 6,25ns + influence de lerreur (augmentation de la priode du NCO). Dans le cas dune prpondrance de la branche Late, la priode du NCO est de 6,25ns - influence de lerreur. Les simulations ont montr que lorgane de poursuite sasservit seulement si le PN-Code synchroniser na pas se dcaler de +/- 12,5ns par rapport au PN-Code central (Code_out). Cest pourquoi le chane dasservissement ne devra pas apporter un retard suprieur un temps Chip en totalit. III.3.2.2.3.1 Le Discriminateur
Le discriminateur est compos de 2 branches de corrlation. Chaque branche de corrlation est compose dune fonction multiplieur , intrgrateur/Bloqueur et valeur absolue , qui est la mme organisation que la chane de synchronisation. Aprs criture en VHDL, les signaux mis en jeu sont simuls sous ModelSim et prsents sur la Figure III. 19.
-113-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Figure III. 19. Simulation des principaux signaux de lorgane de poursuite sous ModelSim.
signal reu)
Data_multi_clk40nco : donnes multiplies dont la valeur varie entre +7 et -7 et
qui correspondent au signal encod de lmetteur. Code_early : PN_Code en avance dun Chip et issu du gnrateur de PN-Code. Dump_early_clk40nco : le signal est gnr par le gnrateur de PN_Code tous les symboles partir de lhorloge Chip. Il est gnr tous les temps symbole pour que la corrlation sur la branche early soit maximum. Data_desetalee_early_clk160nco : le signal correspond la sortie de lintgration/ bloqueur de la branche en avance. Ce signal est un mot de M bits et peut prendre comme valeurs maximums de +/- 413 (Voir explication de lintgrateur/bloqueur dcrit au III.3.2.2.1.1). Data_absolu_early_clk160nco : ce signal prend la valeur absolue du signal prcdent Data_desetalee_early_clk160nco.
Les signaux pour la branche en retard (late) ont la mme dfinition que ceux de la branche en avance (Early).
est
dfini
comme
la
diffrence
entre
les
signaux
Data_absolu_early_clk160nco et Data_absolu_late_clk160nco.
Lorsque les branches sont quilibres (ce qui veut dire que le Pn-Code en rception (Code_out) a t ajust prcisement), ce signal prend pour valeur 0. Ce signal moyenn pilote la frquence du NCO.
-114-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.3.2
Le Filtre numrique
Les filtres numriques constituent la branche de traitement du signal la plus tudie. Au dpart cre pour simuler les filtres analogiques afin doptimiser leurs paramtres avant ralisation, lavance technologique des logiciels permet dsormais leur ralisation [KPAL03]. Cest pourquoi des mthodes et des outils spcifiques ont t dvelopps pour la synthse des filtres numriques. Un filtre linaire temps discret ralise une opration de convolution entre le signal dentre et la rponse impulsionnelle du filtre. Dans le domaine de lchantillonn, elle devient un produit algbrique (Figure III. 20).
Y ( z) = H ( z) X ( z)
Cette fonction H(z) peut scrire de deux manires :
[Eq.III. 3]
o H(z) est la fonction de transfert du filtre numrique et Y(z) le signal de sortie du filtre.
M
H ( z)
m =0 N
zm
avec MN pour que le filtre soit ralisable.
n
z + an z
n =0
N 1
Par une quation aux diffrences utiles pour dfinir la structure du filtre. y(n) = b0 x(n N) + b1 x(n N +1) + ...+ bM x(n N + M ) aN 1 y(n 1) ... a1 y(n N +1) a0 y(n N) Ils existent deux grandes classes de filtres numriques : Le filtre Rponse Impulsionnelles Finie (RIF) dfinie comme h(n)=0 pour n N et h(n)0 pour n=0,1,N-1 Les filtres Rponse Impulsionnelles Infinie (RII) tels que h(n) 0 pour n=0,1,+ Les synthses des filtres RIF ou RII se font de manires diffrentes. Pour le RIF, la synthse se fait gnralement avec la mthode de la fentre o il faut imaginer la rponse frquentielle du filtre. Quant au filtre RII, il se base sur les mthodes du monde de lanalogique . A partir dune fonction de transfert issue du modle frquentiel, il est possible de dfinir, grce la transforme bilinaire, dans le domaine de lchantillonn la fonction de transfert du filtre numrique. Nous pouvons ainsi utiliser le savoir-faire du monde analogique (Butterworth, Chebychev, Bessel) dans le monde numrique. Nous allons maintenant comparer ces deux familles sur les critres importants pour les filtres numriques qui sont la stabilit, la phase linaire et la quantit de calcul.
-115-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Filtre RII La stabilit nest pas automatique. Elle doit tre vrifie. Oui Non Linarit de la phase Quantit de calculs Q associs Pour un gabarit donn Q RIF>>Q RII ce qui implique forcment plus de calculs pour le filtre RIF que le filtre RII
Tableau III. 5. Comparaison des classes RIF et RII des filtres numriques.
Critres Stabilit
Notre premier critre de choix sest port sur la quantit de calculs engendre pour le fonctionnement du filtre. En effet, nous voulons implanter notre circuit dans un circuit programmable. Il faut donc que le calcul engendr ne soit pas trop gourmand en temps et donc nombres de portes. La dfinition des filtres tant faite en analogique [BOUR00], il semble que le filtre RII apporte une meilleure transposition du filtre analogique en numrique. Les dsavantages du filtre RII comme la linarit de la phase ne sont pas un critre important, de mme pour la stabilit qui peut tre facilement vrifie par simulation. Pour toutes ces raisons, nous avons choisi un filtre RII en vue dune implantation. Le calcul du filtre numrique de la boucle verrouillage de dlai se base sur les paramtres du filtre analogique, savoir un filtre du 1er Ordre dans le domaine frquentiel avec une constante de temps = 1s [BOUR00].
F ( p) =
1 1 + p
[Eq.III. 4]
Grce la transformation bilinaire [BELL02], nous nous basculons du domaine de LAPLACE dans le domaine chantillonn de la transforme en Z. Cette transformation se dfinit de la manire suivante :
H (z) = H ( p)
p=
2 Z 1 Te Z + 1
[Eq.III. 5]
O Te reprsente la priode dchantillonnage (Te=Tc/4). En appliquant le changement de variable de lquation (Eq.III. 5), le calcul se dveloppe de la manire suivante :
Te Te + z 1 H ( z) = = Te + 2 Te + 2 2 z 1 Te 2 1 1+ 1+ z Te z + 1 Te + 2 1
[Eq.III. 6]
-116-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Soit
[Eq.III. 9]
Son implantation dans le logiciel MATLAB nous permet de valider la stabilit. Les rsultats confirment que le filtre est un filtre du 1er Ordre stable puisque le ple est lintrieur du cercle de rayon R=1.
(a)
-117-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
(b)
Aprs cette vrification, cette structure est dveloppe en VHDL, et gnre les processus suivants (Figure III. 23) :
Figure III. 23. Processus pour le filtre numrique de la boucle verrouillage de dlai.
Ce modle est alors simul sous le logiciel ModelSim avec une priode dchantillonnage fixe 6,25ns (Figure III. 24).
Nous pouvons voir que le filtre implant comprend un seul dpassement et se stabilise avec comme valeur finale la valeur de lchelon (c'est--dire 256). Notons que ce filtre engendre un retard correspondant 2 Te soit 12,5ns.
-118-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.3.3
Loscillateur numrique control en tension (NCO) est llment central de la DLL. Il permet davancer ou de retarder le PN-Code en fonction de linformation derreur fournie par le discriminateur, en gnrant une frquence dhorloge contrlable autour de la frquence centrale 160MHz. La priode de cette horloge volue en fonction de la valeur du mot de sortie du filtre de boucle. Si ce mot est positif (qui se traduit par une erreur de poursuite positive en sortie du discriminateur), la frquence gnre en sortie du NCO sera plus rapide et inversement. La structure de cet lment est prsente sur la figure suivante :
Le principe du NCO consiste incrmenter sur chaque front montant dune horloge dentre (frquence leve par rapport la frquence dchantillonnage du mot) un registre Accumulateur dun mot de commande W constitu du pas dincrmentation (choisi pour gnrer une frquence centrale de 160MHz ) et du mot en sortie du filtre de boucle. W[A:0]= entre NCO + pas dincrmentation
[Eq.III. 10]
Linfluence du mot de commande W sur le bit de poids le plus fort (MSB) du registre est illustre pour deux valeurs derreur en entre (0)d et (1)d. Le pas est fixe, pour les deux exemples de valeurs (10)b, le registre est volontairement limit 4 bits par souci de clart. Dans le premier cas (tableau de gauche), le mot W est la somme du pas dincrmentation de 2(0010b) et dun mot dentre discri_int[10 :0] valant 0. Nous constatons que le signal associ lvolution du bit de poids le plus fort est priodique, de priode gale 8 coups dhorloge (Figure III. 26a). Dans le deuxime cas (tableau de droite) le mot W toujours constitu dun pas dincrmentation de 2 (0010b), est somm au mot dentre discri_int[10 :0] de 1(0001b). Dans ce cas, lvolution du bit de poids le plus fort est galement priodique, avec une priode fixe 17 coups dhorloge (Figure III. 27.b). Nous avons donc bien ralis une commande de frquence numrique. De manire gnrale, la frquence de sortie du NCO scrit [LU93] :
-119-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Temps
MSB
N(2)
N(1)
N(0)
Cycle pourW= 3
0 0 0 0 1 1 1 1 0
0 0 1 1 0 0 1 1 0
0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0
0 2 4 6 8 10 12 14 0
0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0
Temps
MSB
0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0
N(2)
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
N(1)
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
N(0)
0 3 6 9 12 15 2 5 8 11 14 1 4 7 10 13 0
Figure III. 26. Evolution du registre du NCO pour deux valeurs dentre, dans le cas dun registre de 4 bits.
Figure III. 27. Reprsentation du bit de poids fort pour deux cas du mot W.
Les deux exemples prcdents illustrent donc la variation de frquence en fonction du mot de commande W. La formule donnant la frquence de sortie en fonction du mot W est la suivante :
f f s = clknco A 2 [ Mot _ W ] d
[Eq.III. 11]
-120-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Diffrentes simulations ont permis de fixer pour notre application la frquence dhorloge et le pas dincrmentation. Les rsultats obtenus sont prsents dans le tableau ci-dessous : Frquence Horloge Longueur du registre Pas incrmentation Mot dentre WMAX (Signal dentre =1111111111) WMIN (Signal dentre =0) Plage de frquence Rsolution (kHz) 640 MHz 16 2 14 10 bits 2 14 + (2 10-1) 2 14
210 1 160 MHz 14 160 MHz = 160 MHz 10 MHz 2 9,765
Larchitecture du NCO comporte deux processus : un premier processus est dclench par le front montant de lhorloge 640MHz qui ajoute laccumulateur n le rsultat de laddition du pas dincrmentation (fix 214) avec le signal dentre (discri). Le second processus gnre en sortie du NCO le bit de poids le plus fort de laccumulateur. Les chronogrammes issus des simulations sous ModelSim sont reprsents dans la Figure III. 29.
-121-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Nous pouvons voir sur cette figure que nous gnrons une priode de 6,25ns en sortie du NCO qui correspond bien la frquence de 160MHz. Le mot issu du discriminateur est ajout chaque front montant de lhorloge sur les bits n(9) n(0) et fait donc varier la priode du signal de sortie du NCO permettant davancer ou de retarder la gnration du PN-Code. Linconvnient majeur de cette structure avec cette configuration est sa difficult dimplmentation du fait du temps de propagation de la retenue. Une structure daccumulateur pipeline [LU93] peut palier ce problme. III.3.2.2.3.4 Le Gnrateur de PN-Code du rcepteur
Ce gnrateur est bas sur la mme structure que le gnrateur de PN-Code de lmetteur. En supplment, il doit fournir les PN-Codes en avance et en retard pour les branches du discriminateur. Une tude antrieure [BOUR00] mene sur la variance du modle fonctionnel de la DLL a montr que lcart entre les branches doit tre de Tc/4 (6,25ns). De manire identique au gnrateur de lmetteur, il est paramtr par les vecteurs de configuration c(n) et dinitialisation a(n). Il est prsent pilot par lhorloge issue de loscillateur numrique. Cette horloge, centre sur 160MHz, admet un minimum de 10MHz de variation.
-122-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Le gnrateur prsent ici est celui utilis pour une synchronisation avec lorgane SERIE une branche. Nous verrons dans le prochain paragraphe quil a t adapt dans le cas dune synchronisation plusieurs branches (N branches).
III.3.2.2.4
Synchronisation N branches
Lorgane de synchronisation est compos maintenant de plusieurs branches. Ce nombre de branches est directement gal la longueur du PN-Code N. En effet, si le dcalage entre chaque branche est gale la dure dun temps chip Tc, les calculs de corrlation en parallle couvrent tous les cas de corrlation. La figure suivante illustre la fonction dautocorrlation pour chaque voie de synchronisation. Nous pouvons donc voir que pour chaque Tc (qui est la limite de la recherche de la boucle verrouillage de dlai), un pic de corrlation peut tre dtect. Ainsi, tout moment, une voie de synchronisation est valide (signal Synchro_voie_corrl vaut 1).
Figure III. 31. Reprsentation de la fonction dautocorrlation pour chaque branche de synchronisation (Cas N=7) dcale dun temps chip.
-123-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Figure III. 32. Structure du rcepteur pour une synchronisation comptant N branches.
Compare la structure lmentaire, il est ncessaire dimplmenter un nouvel organe supplmentaire entre la synchronisation et la poursuite dtaill dans le paragraphe ci-dessous. III.3.2.2.4.1 Lorgane de slection
Comme son nom lindique, lorgane de slection a deux rles principaux : il doit indiquer limage de la voie synchronise. Ceci est valu laide des diffrents signaux (synchro_N_voie_corrl), il doit recaler le PN-Code pour permettre la premire voie dtre synchronise. Par consquence, nous nous retrouvons dans le cas dune synchronisation simple branche. Dans le cas dun code de longueur 15, la premire tape consiste dupliquer 15 fois la branche de synchronisation. Nous avons alors conu par concatnation des signaux de sortie de chaque branche le mot k_n [14:0], qui dfinit la voie synchronise. Il faut commander la mise jour des registres dcalage du gnrateur de PN-Code pour quau prochain signal dump (ou temps symbole), le PN-Code de la voie 1 soit en phase avec la donne tale reue. Ltape suivante est daccommoder la gnration du PN-Code pour quau prochain temps symbole, le PN-Code de la voie 1 soit en phase avec la donne tale. Le signal qui permet cela est le signal interne d (valeur des registres dcalage) impos par la sortie du module de slection. Le second signal de sortie de lorgane de slection est le signal maj qui identifie le moment de mise jour du signal d. La machine tats de la Figure III. 33 prcise le fonctionnement global de cet organe.
-124-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
La fonction slection comporte donc 5 tats : Repos : cest ltat dinitialisation dans lequel le signal reset vaut 1, maj vaut 0 et d(0 :11)h de valeur 800h. Sb1 : tat dans lequel on se trouve lorsque la premire voie (celle qui ne comprend pas de retard avec lorgane rcepteur_ss_synchronisation) est corrle. Ce sera le cas lorsque nous navons aucun retard engendr par le canal. Les trois tats suivants sont dfinis lorsque la corrlation nest effective que sur la premire voie. Sbn1 dfinit ltape dans lequel est fait la mise jour de d en fonction du numro de la branche. (MAJ=1) Sbn2 traduit la fin de la mise jour. Le signal maj vaut alors 0. Sbn3 est la dernire tape et gre les cas de dsynchronisation. Dans le cas dune perte de synchronisation, nous retournons dans ltape Sbn1 pour retrouver la nouvelle voie synchronise. Nous valuons la valeur du mot d(0:11) en fonction de la branche synchronise. Nos simulations nous ont montr que le temps de parcours de la machine tats tant de trois temps chip et que la valeur affecter au mot d(0:11) vaut b00h. Le temps symbole lors de la mise jour des registres dcalage rpond lquation suivante : Ts_maj =Ts+(k_n -1)*Tc
[Eq.III. 13]
La figure suivante illustre les diffrents signaux que nous venons de dcrire. Notamment, nous observons le mot d(0:11 ) qui prend la valeur b00h lorsque maj vaut 1. Le signal Synchro7 valant 1 montre que dans ce cas cest la branche n8 qui est corrle pendant le premier symbole. Au prochain temps symbole (2me Dump) cest la branche 1 (donc le Synchro1 vaut 1) qui est maintenant corrle. Nous voyons que la machine tats passe par les tats Sb1, Sbn1 et Sbn2.
-125-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.2.2.4.2
Le deuxime organe modifi pour permettre une synchronisation N branches est le gnrateur de PN-Code qui comporte prsent deux nouveaux signaux en entre : le signal maj commande la mise jour des registres des gnrateurs (actifs ltat 1). le mot d_int[0:11] qui est la valeur des registres dcalage du gnrateur. Lorganigramme du gnrateur de PN-Code devient le suivant :
Figure III. 35. Organigramme du gnrateur de PN-Code pour une synchronisation N branches.
-126-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Lorganigramme du gnrateur de PN-Code pour une synchronisation N branches est compos deux processus : Le premier processus (celui de gauche) permet initialisation des registres pendant un reset. Le deuxime processus (celui de droite) permet laffectation des registres dcalage (mot dint) et la cration du signal dump dfinissant le temps symbole. La mise jour des registres dcalage se fait pendant ltat haut du signal maj. III.3.2.2.4.3 Rsultats de simulation du rcepteur en bande de base
La structure que nous venons de dcrire a t implante en VHDL. Outre les signaux prsents lors des simulations prcdentes, nous montrons les signaux du rcepteur (III.3.2.2.1.4) permettant la validation du modle sur la figure suivante :
Figure III. 36. Simulation du rcepteur dans le cas dune synchronisation 15 branches.
Nous observons que cest bien la voie 8 qui est corrle au dpart puisque le signal synchro7 symbolisant la corrlation existante sur la 8me voie est mis 1. La fonction slection joue alors son rle : la machine tats (signal sync0) bascule successivement dans ltat Sbn1, sbn2 puis sbn3. aprs concatnation, le vecteur k_out, initialement 0, prend la valeur 128. La branche 8 (27) est celle dlivrant une corrlation correcte. Enfin, la valeur du vecteur passe 1, ce gnrateur de code venant de recaler le dlai, la corrlation correcte finale seffectue sur la branche numro 0 (20). La branche numro 1 devient alors corrle aprs un temps symbole. Les signaux du rcepteur deviennent alors correctes et correspondent aux signaux que nous avions dans le cas dune synchronisation simple branche (Figure.III.16). Au vu de cette simulation nous pouvons donc valider notre modle de synchronisation 15 branches.
-127-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.3
La modlisation des tages radiofrquences de la chane dmission-rception tire partie de la fonctionnalit analogique et mixte du langage VHDL-AMS. Les tages radiofrquences sont constitus doscillateurs locaux (analogiques), de multiplieurs (analogiques et mixtes) et de filtres (analogiques).
Figure III. 37. Schma global des tages radio-frquences pour lmission et la rception.
Ces tages radiofrquences sont donc constitus de multiplieurs et doscillateurs effectuant la modulation BPSK sur frquence porteuse, de filtres Passe-Bande et dun filtre Passe-Bas pour liminer les frquences doubles en sortie du dmodulateur. La modlisation du canal englobe un canal AWGN dont le niveau de bruit peut tre paramtrable.
III.3.3.1.1
III.3.3.1.1.1
La modulation BPSK (Chapitre II V.I) consiste matrialiser le signal binaire par un changement de phase de la porteuse ; un dphasage de devra tre interprt la rception comme un 1 binaire et labsence de dphasage comme un 0. Ceci se traduit lmission par la mise en uvre dun multiplieur numrique - analogique : un mlange entre le signal binaire (data_tal) et une porteuse (ici 2,44GHz). Cette opration ncessite la transformation des donnes tales au format NRZ (Etats -1 ;+1). Cette fonction est dcrite partir de lorganigramme suivant (Figure III. 38).
-128-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Linstruction break permet linteraction entre le noyau numrique dans lequel sont dfinis les signaux numriques de lmetteur et le noyau analogique dans lequel est dfinie la porteuse. Les signaux de sorties de loscillateur et du multiplieur sont dcrits au moyen de terminaux qui dfinissent des connexions analogiques. Oscillateur local Saut de phase
Les rsultats de la Figure III. 39 montrent que chaque front sur la donne tale se traduit par un saut de phase. III.3.3.1.1.2 La dmodulation BPSK
Le schma classique de la dmodulation BPSK est utilis la rception et permet de transposer directement le signal tal en bande porte en bande de base (Figure III. 40). Outre un oscillateur local (OL) et un multiplieur, le filtre passe-bas rejette la composante spectrale de frquence double (Figure III. 41).
-129-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.3.1.2
III.3.3.1.2.1
Pour choisir les diffrents filtres analogiques utiles dans la chane radiofrquence, nous nous sommes bass sur une tude comparative [NIVE99] dcrivant les diffrents filtres analogiques. Le bilan est le suivant : Les filtres Passe - Bande en sortie du modulateur et en entre du dmodulateur ont pour rle de borner la bande dmission en accord avec la bande ISM (Bande passante dmission = 80MHz). La fonction de transfert retenue est [NIVE99] : b0 +b p +b2 p2 p2 1 H( p) = = [Eq.III. 14] 22 a0 +a1p +a2 p2 +a3 p3 +a4 p4 4,4.10 +3,1310 p +3,8810 p2 +1,37109 p3 +4,4.1019 p4 . 11 . 2 . Le filtre de Tchbyscheff apporte la configuration optimale. Ce filtre a t retenu pour sa bonne rjection malgr une mauvaise linarit en phase et une oscillation de sa rponse frquentielle dans la bande utile. Les caractristiques retenues sont : un filtre de Tchbyscheff dordre 5, de frquences de coupure 2,44GHz 40MHz avec une ondulation dans la bande passante de 0,05dB. Pour le filtre Passe - Bas en sortie du dmodulateur le filtre de Bessel dtient les meilleures proprits. En effet, la rjection est moindre du fait de lcart de frquence entre le signal utile et le signal rejeter (4,88GHz). Il dforme peu la rponse impulsionnelle et prsente une trs bonne linarit en phase. Le filtre de Bessel dordre 5 et de frquence de coupure 40MHz a t retenu [NIVE99] dont la fonction de transfert scrit :
H ( p) = 45 1. + 1,22.10 8 p + 5,51.10 17 p 2 + 1,08.10 25 p 3 + 7,83.10 35 p 4 50
[Eq.III. 15]
III.3.3.1.2.2
En VHDL-AMS, le comportement dun filtre peut tre exprim de deux manires soit sous forme de fonction de transfert, soit sous dune quation diffrentielle. Dj exprimer sous forme de fonction de transfert, nous avons dcrit les filtres sous cette forme. Elle sexprime sous lattribut prdfini ltf, qui accepte comme argument les tableaux de coefficients de polynme num et den, reprsentant respectivement polynme du numrateur et du dnominateur. Les filtres nont alors quune instruction simultane qui permet dexprimer la fonction de transfert du filtre dans le domaine de LAPLACE. Les entres et les sorties de ces filtres sont dfinies laide de terminaux (points de connexions analogiques).
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Ces fonctions dveloppes en VHDL-AMS, sont dtailles dans les paragraphes suivants.
III.3.3.2.1
Comme nous lavons dj vu (Chapitre 1( IV.2.3)), les bibliothques de bruit en VHDL-AMS sont quasiment inexistantes, nous avons donc dvelopp notre propre modle de bruit. Pour cela, nous nous sommes bass sur la mthode de BOX-MULLER [BOXM58] permettant de transformer deux variables dfinies par une distribution uniforme en une variable base sur une loi normale.
La loi dcrite par la variable z1 est appele aussi loi normale centre rduite et permet de dfinir un signal blanc gaussien.
-131-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
[0.0, 1.0]. Ces variables sont ensuite composes par la transformation de Box-Muller au moyen de lquation (Eq.III.8). Lorganigramme suivant (Figure III. 43) dcrit cette gnration du bruit blanc gaussien en VHDL-AMS.
Les variables alatoires x et y de lorganigramme permettent de dfinir la variable gaussienne noise . Linstruction concurrente break permet de forcer le calcul un instant dfini par le temps dchantillonnage (Tps_echant). La Figure III. 44 reprsente la densit de probabilit issue du bruit gnr laide de la transformation de BOX-MULLER en VHDL-AMS compare la thorie calcule sous MATLAB [GUIL05G]. Ce rsultat permet de valider la gnration dun bruit blanc gaussien.
MATLAB VHDL-AMS
Figure III. 44. Densit de probabilit laide du modle VHDL-AMS et du modle mathmatique sous MATLAB.
III.3.3.2.2
En VHDL-AMS, le dlai dans le canal a t cr grce la fonction DELAYED qui recopie lentre sur la sortie aprs un temps rglable. Cette modlisation sera notamment utile pour la validation du modle du rcepteur et en particulier lorgane de synchronisation. En effet, cette dviation temporelle paramtrable dans le canal permet de mesurer la fonction
-132-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
dautocorrlation en sortie de lorgane de corrlation du rcepteur, sans synchronisation. Par la suite, cette fonction est aussi mise en uvre pour la modlisation dun canal multitrajet.
III.3.3.2.3
Limplantation dun signal bruit dans le canal au moyen dun additionneur permet de reproduire le comportement en milieu bruit du prototype [GUIL05E]. Cependant, les tapes de mesures associes, comme la dtermination du rapport signal sur bruit en entre du rcepteur, sont contraignantes : mesure de la puissance du signal seul (S) injection du bruit, mesure de la frquence totale, dduction de la puissance du bruit (B). La syntaxe du VHDLAMS permet de dvelopper un modle de canal dans lequel nous fixons comme paramtre dentre, directement le rapport signal sur bruit (SNR). Le modle fonctionnel complet du canal AWGN est prsent sur la Figure III. 45.
Nous retrouvons comme variables dentre le retard Td et lattnuation A, auxquelles sajoute le niveau de rapport signal sur bruit en dcibel. Le signal de lentre du sommateur scrit :
Noise_generator_out=10(Level/20.0)Noise [Eq.III. 17]
dans lequel Level reprsente le niveau de bruit implicite dans le canal, noise le bruit blanc gaussien gnr avec la mthode de BOX-MULLER et Noise_generator_out le bruit gaussien gnr pour le niveau Level. -133-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Le niveau de bruit Level est calcul en fonction du rapport signal sur bruit dsir (SNR) et du niveau du signal Ve, qui peut tre attnu (A1) par rapport au signal en entre du canal. Pour cela, il est donc ncessaire de mesurer Ve (en dB) au prlable :
Level(dB) = Ve (dB)-SNR(dB)
[Eq.III. 18]
Le module CANAL AWGN comporte donc deux processus concurrents. Le premier processus calcule la valeur du niveau du signal seul lentre du canal Ve(dB). Le second processus gnre le bruit blanc gaussien adaptatif. Il cre le bruit Noise grce la transformation de Box-Muller et calcule le niveau Level en fonction du SNR et du niveau Ve en dB. Lorsque Level est calcul le niveau de bruit est inject dans le canal par lintermdiaire du signal Noise_generator_out.
-a-b-c-dFigure III. 46. Simulation des diffrents signaux du module CANAL AWGN .
La Figure III. 46 dcrit les diffrents signaux mis en jeu dans lorgane CANAL AWGN. Le signal (a) reprsente le signal en entre du canal , le signal(b) Noise est le bruit blanc gaussien gnr, le signal (c) Noise_generator_out dcrit le bruit inject dans le canal et enfin le signal (d) reprsente la sortie du canal. La figure ci-dessous prsente la densit de probabilit pour deux rapports signal sur bruit (SNR =15 dB gauche et SNR=10 dB droite) gnrs. La valeur moyenne du bruit paramtrable est nulle, mais la variance volue en fonction du rapport signal sur bruit (SNR).
SNR=15 dB
SNR=10 dB
Figure III. 47. Reprsentation du bruit gaussien avec diffrents niveaux de bruits.
Ces derniers rsultats permettent de valider le module canal AWGN modlis en VHDLAMS.
-134-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
III.3.4
A lentre du rcepteur, aprs les tages radiofrquences, le signal en bande de base est chantillonn par la transformation analogique/numrique. Ce composant est le seul lment mixte analogique/numrique de la chane de communication. Le nombre de bits en sortie du convertisseur analogique/numrique est un paramtre important, et influe directement sur la taille et la complexit du circuit final. Une architecture taille de mots rduits sera potentiellement plus rapide quune architecture mots plus longs. Ltude de linfluence de ce paramtre sur le gain en traitement Gp [MELE01] a montr quune architecture du rcepteur 4 bits assure un bon compromis entre les performances et la largeur du bus du rcepteur. Le modle que nous avons dvelopp est un convertisseur analogique/numrique utilisant un processus dapproximations successives pour calculer le mot de sortie. Nous avons adapt un modle inclus dans la bibliothque standard du VHDL-AMS pour que la plage de tension et le temps de conversion soient configurables pour lutilisateur. Dans ce convertisseur, quatre tats sont dvelopps : lentre de la donne analogique, le maintien, la conversion et la sortie du mot sur 4 bits. Le process est constitu dune srie dinstructions squentielles dclenche par un front montant de lhorloge dchantillonnage. Les signaux en entre sont le signal issu du canal (ain), un signal de dbut de conversion (start), lhorloge dchantillonnage (640MHz) pour la conversion (clk). Les signaux en sortie sont un signal dtectant la fin de conversion (eoc) et le signal dout converti en numrique sur 4 bits. La valeur du signal analogique est prleve lorsque le signal start vaut 1. A chaque priode dchantillonnage clk =1, la valeur Vin est stocke dans un variable Vtmp. Cette valeur est alors quantifie dans la variable Dtmp avant dtre affecte la sortie sous forme signe code sur 4 bits.
La validation du principe de ltalement de spectre [GUIL05B] est effectue pour diffrentes simulations au niveau du rcepteur pour une longueur de code gale 15 en prsence dun canal non-bruit. La fonction suivante est obtenue, et compare la fonction thorique (Figure III. 48).
-135-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
0,8
0,6 Rc(tau) 0,4 0,2 0 0 50 100 150 200 250 300 350 400 450 -0,2 tau (ns)
Nous obtenons une courbe comparable la thorie (Chapitre 2 III.6.2) avec un pic 1 dautocorrlation maximal de valeur 1 pour un dlai nul, et minimal (de valeur ) en dehors N de la zone de corrlation. A la diffrence de la thorie, la fonction dauto-corrlation forme des paliers pendant environ 6ns, qui sexpliquent par le calcul de lintgration sur une frquence dchantillonnage de 160MHz. Cette simulation permet de valider la fonction de dstalement de notre modle, et valident qualitativement le modle dvelopp tout au long de ce chapitre.
III.4.2
Toutes les fonctions mixtes analogiques et numriques dcrites dans ce chapitre (metteur, canal, rcepteur) sont implantes dans le logiciel SystemVision, constituant ainsi notre prototype virtuel en langage de haut niveau. Nous illustrons les diffrentes ondes temporelles principales mises en jeu dans la chane de lmetteur/rcepteur par la figure suivante (Figure III. 49).
-136-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
Les principaux signaux de lmetteur, du canal et du rcepteur reprsents sont : A lmission : Data_source, Data_encodee et Data_etale sont respectivement la trame mettre, la trame encode diffrentiellement et cette donne est ensuite tale. Ce dernier signal est modul avec un oscillateur de 2,44GHz, puis filtr laide dun filtre passe-bande. Dans le canal: Entre_canal et Sortie_canal sont les signaux en entre et en sortie du canal. A la rception : ain et data_codee sont les signaux dentre du rcepteur. Ain est le signal aprs la modulation BPSK, dont le rsultat aprs la conversion analogique/numrique donne le signal data_codee. Ce signal est ensuite corrl avec le PN-Code du rcepteur (code_clk_40nco) ce qui donne lieu au signal data_desetalee. Cette donne est ensuite compare (data_av_decodee), puis dcode en diffrentiel pour donner le signal en sortie du rcepteur (sortie_clk160nco). Nous observons que le signal data_av_decodee du rcepteur et Data_encodee de lmetteur correspondent bien. Enfin, les signaux data_source et sortie_clk160nco sont identiques mais avec une certaine latence.
-137-
CHAPITRE III : Mthodologie et dveloppement dun prototype virtuel mixte en langage de haut niveau
-138-
Ce chapitre prsente lintgration du prototype complet. Ainsi nous dcrivons le choix du circuit programmable utilis et les diffrentes procdures de tests ralises. Nous exprimentons lintgralit des fonctions numriques de notre systme en axant nos tests sur la gnricit du systme implant et lorgane de synchronisation comportant plusieurs branches.
1 2
4 5 6
Introduction ............................................................................................................................................... 141 Cible dimplantation.................................................................................................................................. 141 2.1 Description du FPGA....................................................................................................................... 142 2.2 Le logiciel de commande Quartus II................................................................................................ 143 2.3 Etapes dimplantation ...................................................................................................................... 143 Les modules priphriques spcifiques dvelopps .................................................................................. 144 3.1 Paramtrage du canal...................................................................................................................... 145 3.2 Paramtrage du dbit....................................................................................................................... 148 3.3 Module de calcul de TEB ................................................................................................................. 148 3.4 Interface logicielle ........................................................................................................................... 149 Rsultats de synthse................................................................................................................................. 150 Evaluation des performances mesures ..................................................................................................... 151 5.1 Test en milieu non bruit.................................................................................................................. 152 5.2 Mesures en milieu bruit.................................................................................................................. 155 BILAN....................................................................................................................................................... 156
-139-
-140-
IV.1 Introduction
Cette dernire partie portera sur la ralisation dune maquette Emetteur/Rcepteur circuit programmable comprenant tous les tages numriques. Dans un premier temps, nous testerons les fonctions principales de lmetteur et du rcepteur en bande de base et nous nous focaliserons en particulier sur lorgane important pour un metteur/rcepteur talement de spectre qui est la partie synchronisation. Dans un deuxime temps, nous ajouterons un dlai numrique avec/sans bruit dans le canal pour valuer les performances de notre systme.
Actel Libero
Altera Quartus II
Lattice IspLever
Xilinx ISE
Outil de gestion de projet Prplacement de blocs Simulateur propre avec intgrant des contraintes dition et visualisation de timing des chronogrammes Assignation automatique Outil danalyse et des broches de FPGA destimation de temps pour le circuit critique sans Outil de dbogage temps recompilation rel avec dclenchement crois avec le logiciel Simulation Simulation Simulation Simulation ModelSim(Mentor) ModelSim(Mentor) ModelSim(Mentor) ModelSim(Mentor) Gnration Test Bench Synthse NC Sim(Cadence) NC Sim(Cadence) Synplify FGPA Synthse Sirocco(Synopsis) Sirocco(Synopsis) Synplify FGPA Synthse Synthse (Synplicity) Design Compiler(Synopsis) Synplify FGPA (Synplicity) Leonardo (Mentor) (Synplicity) Leonardo (Mentor) Analyse statistique de Synthse physique Leonardo (Mentor) Palace (Magma) dlais Synthse physique Prime time (Synopsis) Palace (Magma)
Vue graphique de la Compilation incrmentale conception au niveau Conception et implantation logique et physique indpendantes des modules Editeur de paramtrage Outil graphique de des E/S connexion dIP et de curs Outil de calcul de la de processeurs consommation Simulateur disponible
Pour des raisons de disponibilit de matriel au laboratoire, nous avons choisi de nous limiter aux produits dALTERA. Comme nous en avions fait tat dans notre tude de march (Chapitre 1 III.2) le Stratix II est le plus performant de la famille ALTERA mais son cot est -141-
prohibitif ( 2000) et le rend impossible dutilisation. Pour un moindre cot, le FPGA Cyclone II prsente un bon compromis cot / performances. Possdant des performances infrieures au Stratix II, il semble nous satisfaire pour notre projet car il est capable dutiliser 2 millions de portes, avec des frquences dhorloge pouvant aller 800 MHz. Cependant nous disposons au laboratoire dun kit de dveloppement ALTERA APEX 20KE200E. Les performances intrinsques sont certes infrieures celles prsentes par les modles prcdents, mais elles pourront tout de mme satisfaire un premier prototype.
IV.2.1
Description du FPGA
Le FPGA ALTERA APEX 20KE200EFC484 se trouve sur la carte de dveloppement EXCALIBUR que nous pouvons voir sur la Figure IV. 1. 3 1 4
La carte de dveloppement Excalibur comprend : 1. Le composant FPGA Apex20K200EFC484. 2. Un port SERIE RS-232. 3. Une mmoire flash de 1Mbyte. 4. Une mmoire SRAM de 256Kbytes. 5. Un oscillateur dune frquence de 33.33MHz. Il offre en autre la possibilit dutiliser jusqu 80 entres/sorties. Ses caractristiques sont rsumes dans le tableau suivant :
-142-
Portes typiques
PLL
526 000
Tension dalimentation
200 000
Maximum de bits RAM
8320
Maximum cellule
52
Maximum dentre/sortie
2
Diffrentes tensions dalimentation
1.8V
106496
832
376
1.8V,2.5V,3.3V,5.0V
Notons quen raison des performances prsentes par notre FPGA, nous avons choisi de diviser par 4 nos frquences dhorloge. Ainsi, la frquence dchantillonnage, initialement 160MHz, volue maintenant une frquence de 40 MHz et la frquence rythmant le bit du code dtalement devient une frquence de 10 MHz.
IV.2.2
Nous avons mis en uvre QUARTUS II version 5.0 disponible gratuitement via le site internet dALTERA [ALTWW]. Son utilisation est indispensable pour configurer un FPGA, car il excute le placement routage et gnre les fichiers qui permettent de configurer le FPGA. QUARTUS permet aussi de concevoir des systmes, faire les simulations prenant en compte le choix du FPGA cible, ce qui peut nous guider pour le choix de ce dernier. De plus, il calcule un certain nombre de paramtres tels que la frquence maximale et la puissance consomme.
IV.2.3
Etapes dimplantation
La Figure IV. 2 montre les diffrentes phases pour limplantation de fichiers VHDL sur un FPGA de la famille Altra.
Cahier des charges
Bibliothques du constructeur
Synthse (Gnration de Netlist) Analysis & Synthesis Synthse Logique Placement routage Fitter Vrification Electrique et temporelle Analyser & Timing Analyser Configuration du FPGA APEX20KE
Choix de larchitecture
-143-
Nous trouvons 4 phases : Loutil Analysis & Synthesis vrifie la syntaxe et la smantique du code et rduit au minimum la logique de conception. Il gnre ensuite une netlist qui dtermine le nombre dlments logiques utiles la ralisation du systme et la connexion entre ces lments logiques. Un lment logique est compos pour lAPEX20K200E dun registre ou/et dune LUT (Look Up Table). Le registre permet de faire toutes les affectations de signaux (par exemple dtection sur front montant) alors que la LUT dclare dans une table la valeur des signaux (utiles par exemple pour la dfinition des paramtres). La deuxime phase est le placement/routage qui est dfini partir de la netlist des lments logiques. Cest la phase qui consomme le plus de temps car cest lors de cette tape que le logiciel choisit les positions physiques des cellules et les chemins des signaux pour une utilisation optimale et rduite. La phase suivante correspond la vrification des choix faits lors de la phase prcdente et la gnration des fichiers vers le FPGA. Elle permet danalyser les diffrents chemins et les dlais de propagation. Aprs cette tape, nous pourrons connatre le dlai pour le chemin le plus critique. Les rsultats de cette phase sont tablis sous forme de rapport et dterminent les performances du composant (occupation du FPGA, Puissance, temprature de fonctionnement, schmas des connexions ). La dernire phase implante le circuit conu par programmation et configure les interrupteurs en fonction des rsultas du placement/routage.
Il se compose dun module de bruit analogique, du kit de dveloppement pour le FPGA APEX 20K200E, dune interface en Visual Basic spcifiquement dveloppe et dun analyseur logique 16 voies.
-144-
IV.3.1
Paramtrage du canal
La solution retenue pour la gnration des retards est un registre dcalage de la bibliothque de Altera. La cascade de plusieurs de ces registres forme le composant altshift . Le nombre de registres associs, huit pour notre exemple, fixe le retard de propagation (Tableau IV. 3).
-145-
altshift
altshift
altshift
Le paramtre gnrique width fixe la taille du bus dentre-sortie et le paramtre depth le nombre de bascules. Le port de sortie est constitu des signaux retards en fonction du nombre de bascules dtermin par le paramtre depth . Le code et un exemple de cet organe sont illustrs sur la figure ci-dessous :
component altshift is generic ( WIDTH : INTEGER := 0; -- largeur de l'entre et de la sortie DEPTH : INTEGER := 8 -- profondeur ); port ( data : IN STD_LOGIC_VECTOR (WIDTH-1 DOWNTO 0); --entre du registre clock : IN STD_LOGIC := '0'; --horloge front montant aclr : IN STD_LOGIC := '0'; clken : IN STD_LOGIC := '1'; result : OUT STD_LOGIC_VECTOR (WIDTH-1 DOWNTO 0) -- sortie du registre ); end component;
(a)
(b)
Figure IV. 6: Description du composant altshift (a) et circuit associ(b) (Depth =8,with=0)
Le signal sel du Tableau IV. 3 est un mot de 2 bits fix par lutilisation, et fixant la slection du retard dans le canal au moyen dun multiplieur. Le module retard canal doit tre comme tous les autres modules, utilisable pour nimporte quelle longueur de code (de N=7 N=2047). Nous avons donc dvelopp une matrice de fonctions retard_canal, dont chacune comporte des modules adapts en nombre de registres suivants la valeur du temps symbole. Les chronogrammes aprs synthse sous QUARTUS sont prsents sur la Figure IV. 7. Lorsque le mot sel vaut 00 (Pente de corrlation) la sortie (sortie_clk160nco ) est quivalente lentre des donnes, tandis que dans le cas 01 la sortie est active 1.
-146-
Cas 00
Corrlation
Cas 01
dcorrlation
-147-
Gnrateur de bruit
R
Signal tale
+
R
FPGA
Signal tal bruit
IV.3.2
Paramtrage du dbit
Le cahier des charges nous oblige paramtrer le dbit de notre metteur entre 4 kps et 1,5 Mbps. Pour cela, nous fixons dans une bibliothque dnomme parameter les valeurs du coefficient c(n) permettant de fixer la longueur du PN-Code. Comme nous lavons vu dans le (Chapitre 2 V.2.1) ce coefficient c(n) permet le choix de neuf dbits diffrents de 4,75Kbps 1,43Mbps. Pour choisir ce coefficient et par mesure dconomie de bit, nous lavons cod sur un mot de 4 bits, accdant aux neufs possibilits. Chacune des valeurs renvoie un coefficient c(n) qui sert pour le calcul du PN-Code. La frquence du chip est fixe 10 MHz, soit un temps chip de 100ns. La longueur de code est donc gale N.Tc . Les liens entre la longueur du code dtalement, le coefficient c(n) et les paramtres associs sont rsums dans le tableau suivant :
N COEFFICIENT C(N) VALEUR DU PN-CODE DEBIT EN (KBPS) CODE 4 BITS TEMPS SYMBOLE (S)
IV.3.3
Le bruit tant cr, nous allons quantifier son influence laide dun module de taux derreurs sur le bit (TEB). Pour cela, nous devons comparer la trame qui est envoye la trame que nous obtenons en rception et compter le nombre derreurs que nous avons obtenu. La solution dimplanter deux rcepteurs de mme nature, lun pour un trame dentre bruite, lautre une trame dentre non bruite a t mis en uvre. Daprs lquation (Eq.II.2) du -148-
chapitre II, le calcul du TEB se fait par la division du nombre derreurs obtenues par le nombre de bits envoys.
IV.3.4
Interface logicielle
la squence de la trame dentre (8 bits), rpte jusqu la fin de lmission, la longueur du code dtalement sur 4 bits (de N=7 N=2047), la valeur du retard dans le canal (corrlation, non corrlation, demicorrlation et pic de corrlation), le nombre dchantillons, un gestionnaire derreur permettant la fin de lmission le calcul du TEB.
En aucun cas nous ne pouvons envoyer une configuration qui na pas t dfinie au pralable auprs du FPGA. Cette interface communique avec le FPGA sur le port parallle et fonctionne selon les 4 modes suivant : 1) Etat non actif (Reset =1) : rien ne se passe 2) Etat de configuration : Les valeurs issues de linterface sont charges dans le FPGA. 3) Etat de Marche : Le systme Emetteur-Rcepteur fonctionne et le calcul du TEB est actif. 4) Etat de Rapport : Linterface reoit la valeur du TEB. Lorsque lenvoi des trames est termin, selon le nombre dchantillons choisi, un signal de fin de fonctionnement end_transmit passe ltat 1 et ce dernier commande le
-149-
passage ltat envoie_du_teb , ainsi nous envoyons le nombre derreurs linterface toujours sur les fronts de lhorloge du PC.
-150-
6000
4000
3000
2000
1000
Registres LUT
140
6000
Emission
Nombres de cellules utilises
5000
Registres LUT
120
4000
Rcepteur
100
80
3000
60
2000
40
1000
20
Poursuite
Reception_ss_synchro
Synchronisation_globale
Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de lmetteur (a) et du rcepteur (b).
-151-
IV.5.1
IV.5.1.1 Emetteur-rcepteur Simple Branche IV.5.1.1.1 Mesures pour diffrents longueurs de codes
Pour trois longueurs de code diffrentes, nous relevons et comparerons les donnes dentres avec les donnes en sortie du rcepteur.
Ces trames sont identiques permettant daffirmer que les fonctions propres ltalement de spectre sont correctes. Le temps symbole est ici fix Tc=100ns, ce qui implique un temps symbole gal (700, 1500 et 3100ns respectivement pour N=7, 15 et 31). Notons une latence globale, gale 1,43s.
IV.5.1.1.2
Nous nappliquons pas de retard en plus de celui induit par la propagation des signaux, nous sommes dans le cas o sel 11 du module de bruit (Chapitre 4 IV.3.1.1). Le signal tal data_tale est directement li data_tale_retarde qui est le signal dentre du rcepteur. Le chronogramme suivant a t obtenu pour une longueur de PN-Code N=7.
Figure IV. 12. Chronogramme systme corrl dans le cas sel =11.
La propagation du signal data_tal provoque un dcalage de 4ns en sortie du canal data_tale_retarde , une valeur ngligeable car nous sommes sur le premier pic dautocorrlation (Cas 11 du module de retard), donc le systme est parfaitement corrl. Le signal de sortie du rcepteur sortie est dcal par rapport au signal de lmetteur de 1,43 s. Cette valeur est de la propagation lintrieur du composant dans le cas N=7. Pour ce test, nous nous plaons dans le cas o sel (10) du module de retard. Le retard utilis est alors gal 8 Tc (Temps Chip) pour des longueurs de PN-Code valant -152-
respectivement 15,31,63 et de 4 Tc pour N=7. Ce dernier cas est le cas que nous allons prsenter sur le chronogramme suivant :
Nous constatons que le retard introduit entre le signal data_etale et le signal data_etale_retarde est de 400ns ce qui nous positionne entre le deux pics de corrlation. Nous constatons que le signal sortie est toujours gal 1 . Le systme est donc incapable de dcorrler le signal, conformment nos attentes. Nous avons par la suite focalis nos mesures sur deux paramtres que sont le temps daccrochage (TA) correspondant au temps de synchronisation et la latence totale, cart entre le signal dentre et la sortie (TL). Ces deux paramtres sont prsents sur la figure suivante :
Ecart TA
Ecart TL
Le tableau suivant rsume les diffrentes mesures effectues pour des longueurs de code variables. Longueur du PN-Code aucun retard TA(temps (Cas 11) daccrochage de la synchronisation) TL(latence globale) dcorrl TA (Cas 01) DemiTA corrlation TL (Cas 00) N=7 1s 1,34s Pas daccrochage 1,2s 1,5s N=15 1,8s 2,5s Pas daccrochage 2s 5,5s N=31 8s 6,04s Pas daccrochage 8,25s 6,5s
Tableau IV. 6. Rsum des diffrentes mesures pour des longueurs de PN-Code diffrents.
Les diffrentes mesures renseignes dans le Tableau IV. 6 montrent que pour un mme retard le temps daccrochage augmente en fonction de la longueur du PN-Code.
-153-
Le test prsent sur la Figure IV. 15 est effectu avec un retard nul dans le canal (Cas o sel = 11). Nous avons visualis les diffrents signaux valuant la synchronisation en sortie des diffrentes branches. Notre analyseur logique ne comprenant que 16 voies, nous avons slectionn les branches les plus susceptibles dtre valides en fonction des diffrents retards. TA
TL Temps
Figure IV. 15. Chronogramme des signaux de synchronisation (retard canal seul).
Le test a t effectu pour une longueur de PN-Code de N=15. Les signaux synchro(n) reprsentent ltat de la corrlation relative la branche n. Ainsi, lorsque la 31ime branche est corrle, le signal synchro(31) passe ltat 1. Le signal synchro quant lui est ltat haut lorsquune synchronisation est dtecte. Le chronogramme montre la corrlation effective sur les branches 0 et 31. Ceci correspond aux rsultats escompts, puisque pour tous les temps symboles la corrlation est dtecte. Notons que la sortie est correcte et comporte un cart TL avec lentre data_source. Nous allons maintenant observer le mot k dont la valeur dsigne la branche corrle. Le prochain chronogramme a t effectu pour un retard de 8Tc dans le canal et une longueur de PN-Code N=15.
Mot k_out
Figure IV. 16. Chronogramme du mot k_out pour un canal retard de 8Tc.
Comme escompt dans le mode dcorrl du canal (cas 01), le signal de sortie vaut 1. Le mot k_out [0 :6] devrait quant lui dtecter la 8me branche. Ce nest ici pas le cas puisque la valeur du mot k_out [0 :6] oscille entre les valeurs 9 (0001001b) ou 10 (0001010b). Cette erreur est d au fait que nous ne connaissons pas exactement la valeur du retard dans le canal qui volue en fonction du temps de propagation des portes. Le Tableau IV. 7 fait tat des mesures du temps daccrochage et de la latence globale (TA et TL) dune synchronisation comportant N branches.
-154-
Nombres de branches (quivalent la longueur du PN-Code) aucun retard ( TA(temps daccrochage Cas 11) de la synchronisation) TL(Latence totale) Branches dtectes dcorrl TA (Cas 01) Branches dtectes Pic de corrlation (Cas 10) TA TL Branches dtectes
N=7 1,04s 2,88s N :0,8,15 Pas daccrochage N :7,14 1,36s 3,04s N :0,8,15
N=15 1,84s 5,28s N : 0,16,31 Pas daccrochage Oscillation entre N9 et N10. 2,48s 6,88s N : 0, 16, 31
Nous pouvons remarquer que le temps TL est doubl (dans le cas N=15) par rapport au temps TL de limplmentation dune synchronisation simple branche. Comme nous lavions prvu, nous retrouvons un temps daccrochage plus faible. En effet nous avons divis dun facteur et temps daccrochage 2,5 TA par rapport une synchronisation simple branche.
IV.5.2
Nous testons maintenant notre systme metteur-rcepteur en milieu bruit. Pour cela, nous utilisons les modules de gnration de bruit partir de la carte analogique et le module de calcul de taux derreur par bit. Un niveau de bruit est appliqu sur notre signal en sortie de lmetteur dont nous pouvons visualiser les effets sur la figure suivante dans le cas dun niveau gal 50mV.
Signal bruit
Figure IV. 17. Visualisation des effets dun niveau de bruit de 50mV en sortie du canal.
En appliquant un niveau de bruit (1V), nous remarquons (Figure IV. 18) lapparition de bits errons.
-155-
Bits errons
Figure IV. 18. Chronogramme du systme avec une tension de bruit de 1V.
Le taux derreur sur le bit correspondant, fourni par le module interface est de 2.10-1. Le rapport signal sur bruit associ scrit :
5 Vsignal SNR = 10 log = 10 log = 7 dB Vbruit 1 Les mesures pour diffrentes tensions de bruit permettant de reproduire lvolution du taux derreur sur le bit, sont prsentes sur la Figure IV. 19.
0 1,00E+00 2 4 6 8 10 12 14 16 18 20 22
1,00E-01
1,00E-02
1,00E-03
1,00E-04
Figure IV. 19. Mesure de TEB du rcepteur simple implant sur le FPGA.
IV.6 Bilan
Au cours de ce chapitre nous avons intgr dans un circuit programmable le prototype complet prsent dans le chapitre III. Pour cela une premire tude sur les outils existants a t mene. Le composant choisi est un FPGA APEX20KE dALTERA pour des raisons de disponibilit et de flexibilit. A laide du logiciel QUARTUS II fourni par le constructeur, nous avons implant les fichiers synthtisables du modle VHDL-AMS.
-156-
Pour la procdure de test, nous avons dvelopp deux organes supplmentaires. Le premier (canal paramtrable) nous a permis de tester les diffrents tats du systme, et le second (module de calcul dun taux derreur sur le bit) de caractriser notre systme en milieu bruit. Pour pouvoir communiquer avec le composant programmable nous avons enfin dvelopp une interface en Visual Basic. Ltape de synthse nous a montr rapidement que la capacit dintgration du composant tait insuffisante pour traiter toutes les branches de notre modle complet (synchronisation avec 2047 branches maximum) et les modules complmentaires. Ces rsultats nous ont conduit limiter les longueurs de PN-Codes N = 63 et de supprimer le rcepteur qui servait de comparateur dans le module de calcul du taux derreur de bit. Avec ces limitations, nous utilisons 75% de la capacit dintgration du FPGA. Cest pourquoi les horloges pour ltude de notre modle ont t divises par quatre. Ainsi, le temps chip (TC) est dsormais fix 100ns. Malgr ces limitations nous avons pu exprimenter les fonctions principales de notre systme. Nous avons ax nos tests sur la gnricit du systme implant (tests pour diffrentes longueurs de PN-Code) et sur lorgane de ,bre de branches augmentait la latence globale entre lentre et la sortie mais en contre partie la dtection de la synchronisation est plus rapide.
-157-
-158-
CONCLUSION ET PERSPECTIVES
CONCLUSION ET PERSPECTIVES
-159-
CONCLUSION ET PERSPECTIVES
-160-
CONCLUSION ET PERSPECTIVES
Le travail prsent dans ce mmoire constitue une contribution au prototypage virtuel bas sur la norme VHDL-AMS. Le travail dvelopp nous permet de disposer dun prototype virtuel mixte complet dcrit dans un langage de haut niveau pour un metteur/rcepteur talement de spectre. Afin dtre en adquation avec les nouvelles mthodologies de conception, ce prototype se positionne sur une approche de rutilisation de blocs matriels dans une application de tlcommunication sans fil. Un tat de lart sur la conception systme, prsent dans le premier chapitre, nous a permis de constater la complexification et la miniaturisation des composants lectroniques. Nous avons mis en avant les mthodologies de conception actuelles permettant de rduire les cycles de conception et les cots de dveloppement en insistant tout particulirement sur le prototypage virtuel. Diffrentes cibles de conception ont alors t prsentes et compares. Les outils de conception tant devenus une ncessit dans ce type de dveloppement, nous avons conclu ce chapitre par le choix du langage multidisciplinaire VHDL-AMS. Dans le deuxime chapitre, nous avons prsent le systme de communication hertzien metteur/rcepteur dans la bande libre ISM. Le systme doit tre multi-capteurs et multiutilisateurs en milieu bruit pour un environnement clos. Il ncessite de plus un haut niveau de scurit de transmission. A partir de ce cahier des charges, nous avons expos les lments de base dune chane de communication numrique et avons propos un schma fonctionnel du modle metteur/rcepteur. Nous avons compar ensuite diffrentes architectures de synchronisation et de poursuite pour tablir au terme de ce chapitre les diffrents organes de notre systme communicant. Aprs avoir dfini le langage VHDL-AMS, nous avons trait dans la troisime partie, la description des tages numriques et analogiques du systme. Nous avons tudi et simul diffrentes topologies darchitectures. Nous avons opt pour une synchronisation de type SERIE avec une boucle verrouillage de dlai cohrente dans laquelle nous avons inclus la possibilit pour lutilisateur de choisir la longueur de la squence pseudo-alatoire, le temps de propagation dans le canal et le rapport signal sur bruit. Notons que ce rapport signal sur bruit est dfini directement par lutilisateur, le niveau de bruit tant calcul de manire implicite par le langage VHDL-AMS. En vue damliorer les performances du rcepteur talement de spectre, nous avons dvelopp une synchronisation N branches et un organe de slection. Les rsultats de simulations semblent en parfait accord avec les rsultats thoriques attendus. Au terme de ce chapitre, nous avons tabli les fonctions numriques devant tre implantes dans un FPGA. La dernire partie dveloppe donc la ralisation dun prototype matriel de lmetteur/rcepteur en bande de base. Nous prsentons tout dabord notre platine de test et les modules spcifiques associs pour mener bien nos mesures. Les performances du circuit en terme de capacit dintgration sont values. Nous avons montr que la fonction synchronisation SERIE, retenue au second chapitre, occupe elle seule la majorit du circuit programmable, soit environ 5500 cellules lmentaires. La capacit relativement rduite de notre FPGA (8000 cellules) limite le nombre de branches de cette synchronisation 63. Les tests effectus, valident les fonctions de notre prototype de communication, en milieu idal et bruit. Ce prototype nous a permis de tester diffrentes fonctionnalits du systme dans un environnement bruit : fonction dautocorrlation, temps daccrochage, latence et rapport signal sur bruit. En milieu faiblement bruit, nous avons pu mesur un taux derreur sur le bit de lordre de 10-5, valeur qui volue dfavorablement lorsque le bruit augmente.
-161-
CONCLUSION ET PERSPECTIVES
Ltude en bande de base du prototype matriel, a permis de valider la globalit des organes numriques de notre metteur/rcepteur. Les organes doivent prsent tre coupls aux tages radiofrquences. Le systme complet pourra alors tre configur avec plusieurs metteurs, afin dexprimenter le comportement de la communication multi-capteurs. Nous porterons un intrt particulier la mesure de dbit pour les frquences dhorloges leves et la stabilit de la boucle verrouillage de dlai en fonction du dlai dans le canal. Les marchs et les technologies sont toujours appels voluer. Cest pourquoi terme nous prvoyons dintgrer les tages radiofrquences et la partie traitement du signal en bande de base sur une seule puce (System On Chip : SoC). Par ailleurs, lessor et lvolution actuels des circuits FPGA pourront aussi donner lieu une tude plus fine de notre systme metteur/rcepteur avec lutilisation de composants prsentant une capacit dintgration bien suprieure (par exemple STRATIX II , VIRTEX IV ). Ces derniers composants semblent dautant plus intressants quils intgrent une proprit intellectuelle (IP) permettant de gnrer un bruit blanc additif gaussien (AWGN) [XILI02]. Ce fichier pourrait tre en particulier utilis pour mesurer les performances du taux derreur par bit de notre systme de communication. Enfin, les langages associs au VHDL-AMS, tels que le C/C++, permettront notre prototype virtuel dinclure un protocole de communication. Pour cela, le systme devra tre coupl des simulateurs rseaux, tels que les logiciels Network Simulator, Opnet, Qualnet, permettant ainsi de pouvoir simuler la globalit des trois couches basses du modle OSI dun systme communicant (Figure 0.2).
-162-
REFERENCES
REFERENCES
-163-
REFERENCES
[802.11] IEEE Computer Society IEEE 802.11 standard Wireless . 1996. [802.15.1] IEEE Computer Society IEEE 802.15.1 standard Wireless . 2002 [802.15.3] IEEE Computer Society IEEE 802.15.3 standard Wireless . 2003 [802.15.4] IEEE Computer Society IEEE 802.15.4 standard Wireless . 2003. [802.16] IEEE Computer Society IEEE 802.16 standard Wireless .2004. [802.20] IEEE Computer Society IEEE 802.20 standard Wireless . 2002 [ACTEWW] ACTEL, http://www.actel.com [ALTEWW] ALTERA , http://www.altera.com [ANOLWW]Analog Device, http://www.analog.com [ANSO03] ANSOFT Corporation, http://www.ansoft.com/products/em/simplorer System modeling . ANSOFT Corporation. Etats unis damrique 2003. [BAGH02] A.BAGHADADI Exploration et conception systmatique darchitectures multiprocesseurs monopuces ddies des applications spcifiques Thse de doctorat, Institut national polytechnique de Grenoble, Mai 2002. [BAUD02] G.BAUDOIN (Collectif dauteurs) Radiocommunications numriques /1. Principes et modlisation et simulation Collection DUNOD 2002. ISBN : 2100055801 [BELL02] M. BELLANGER Traitement numrique du signal Thorie et pratique DUNOD 2002. ISBN :2 10 0063111. [BLIN04] J.BLIN UWB se veut-il le futur fils ?http://www.01net.com/outils/article=231215. 02/2004 de tous les sans-
[BORE99] J.Borel Design Automation in MEDEA :Present and Future IEEE Micro, Vol. 19, N5,pp71-79, Sep. 1999. [BOUR00] S.Bourdel Modlisation et Simulations fonctionnelles dun metteur et dun rcepteur radiofrquence talement de spectre pour une application domotique , INSA , Toulouse. Oct. 2000. [BOXM58] G.E.P BOX and M.E MULLER A note on the generation of random normal deviates Ann. Math. Stat , pp 610-611, 1958. [BRAC05] B.Brackenridge Bluetooth et UWB nous vivons une poque intressante http:/ /www.eetimes.fr. 9 Aot 2005. [BROW96] S.Brown and J.Pose FPGA and CPLD Architectures. A tutorial IEEE Design&Test of computers Summer 1996. [CAFF00] J. Caffery, G.L. Stber, Effects of multiple-access interference on the noncoherent delay lock loop. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 48, N12, Dec. 2000. [CHAN00] H.S. Chang, Y.W. Park, Y.H. Lee, DS-SS code acquisition based on simultaneous search and verification. , Dept. of electrical engineering, KAIST, 00906778/00/99, 2000 IEEE. [CHAN99] Chang H., Cooke L., Hunt M., Martin G., McNelly A., Todd L., SURVIVING the SOC Revolution- A Guide to Plateforme-Based Design , Kluwer Academic Publisher , 1999.
-164-
REFERENCES
[CHIE94] C. Chien, R. Jain, E.G. Cohen, H. Samueli, A single-chip 12.7MChips/s digital IF BPSK Direct Sequence Spread-Spectrum Tansceiver in 1.2m CMOS. , IEEE JOURNAL OF SOLID-STATE CIRCUIT, VOL. 29, N 12, Dec. 1994. [CHRIWW] Quest-ce quun rseau sans fil http://www.chirido.com/wifi_networks.cfm [CHUN93] B.Y. Chung, C. Chien, H. Samueli, R. Jain, Performance analysis of an Alldigital BPSK direct sequence spread-spectrum IF receiver architecture. , IEEE JOURNAL ON SELECTED AREAS COMMUNICATIONS, VOL. 11, N7, 0733-8716/93, Sept. 1993. [CLOU01] CLOUTE.F Etude de la conception des systmes embarqus sur silicium : une approche de codesign matriel/logiciel , Thse de doctorat, Institut National Polytechnique de Toulouse, 2001. [CLOU02] A.CLOUARD, G.MASTROCO, F.CARBOGNANI, A.PERRIN, F.GHENASSIA Toward Bridging the Precision Gap between SoC Transactional and Cycle-Accurate Levels DATE, PARIS 2002. [DUTE02] J-M DUTERTRE Circuits Reconfigurables Robustes Thse de doctorat, Universit de Montpellier II, Oct. 2002. [ELHO05] S.ELHOMSI : Etude et proposition des mthodes et doutils pour un systme de communication de capteurs/actionneurs sans fil repartis bas sur la technologie Bluetooth .Thse de doctorat. Universit Toulouse II Le Mirail, Toulouse. Sept. 2005. [EVAN03] Evans Data Corporation, Embedded Systems Developement Survey, Volume 1, 2003 , http://www.evansdata.com/n2c/surveys/embedded_toc_03_2.shtml,2003. [FOUR05] N. FOURTY, T.VAL, P.FRAISSE, J.J MERCIER Comparative analysis of a new high data rate wireless communication technologies-From WiFi to WiMAX IEEE ICNS05, Papeete, Tahiti, French Polynesia. Oct. 2005. [FREE05] Freescale Semiconductor, MC 13192 2,4GHz Low Power Transceiver for the IEEE 802.15.4 Standard : Reference Manual. Document # MC13192RM Rev.1.3, Apr. 2005. [GARTWW] GARTNER DATAQUEST, http://www.gartner.com/ dataquest_overview.html [GAUT04] F.GAUTHIER Les flots de FPGA complexes se structurent Electronique Le mensuel de conception des ingnieurs, N143, pp 38-40, Jan. 2004. [GAUD91] R.D. Gaudenzi, M. Luise, Decision-Directed coherent delay-lock tracking loop for DS-Spread-Spectrum signals. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 39, N5, 0090-6778/91/0500-0758, May 1991. [GAUD93] R.D. Gaudenzi, M. Luise, R. Viola, A digital chip timing recovery loop for bandlimited direct-sequence spread-spectrum signal. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 41, N11, 0090-6778/93, Nov. 93. [GUIL03] C.GUILLEMINOT, L.ANDRIEUX COMMUNICATIONS NUMERIQUES CDMA : Simulation dune boucle verrouillage numrique CNRIUT03, Colloque National de recherche IUT 2003, Tarbes, France, Mai 2003. [GUIL04E] C.GUILLEMINOT, L.ANDRIEUX Design methodolgies in electronics : application to a W-CDMA multirate transceiver for noisy environment Eurosim04, Marne la Valle, France, Sept. 2004.
-165-
REFERENCES
[GUIL04J] C.GUILLEMINOT, L.ANDRIEUX Simulation de systmes de synchronisation/poursuite pour les tlcommunications en talement de spectre JNRDM04, Journes Nationales du Rseau Doctoral de Microlectronique, Marseille, France, Mai 2004. [GUIL05B] C.GUILLEMINOT, L.ANDRIEUX, JJ.MERCIER A contribution to a virtual prototyping for a spread spectrum telecommunication system using VHDL-AMS IEEE BMAS05, SanJose,Californie,USA, 22-23 Sept. 2005. [GUIL05E] C.GUILLEMINOT, L.ANDRIEUX, JJ.MERCIER Virtual Prototype design using VHDL-AMS for transceiver model IEEE EUROCON05, BELGRADE, Serbie&Montenegro, 21-24 Nov. 2005. [GUIL05G] C.GUILLEMINOT Contribution au prototypage virtuel dun systme de tlcommunication talement de spectre en VHDL-AMS GEET 05, Journes de lcole doctorale Gnie Electrique, Electronique, Tlcommunications, Toulouse, France, Mai 2005. [HAMO05] HAMON Juan-Carlos Mthodes et outils de la conception amont pour les systmes et les microsystmes Thse de doctorat de linstitut National Polytechnique de Toulouse , Fv. 2005. [HASH93] H.Hashemi The Indoor Radio propagation Channel , Proceedings of IEEE, pp 943-968, Vol.81, N7, Juil.1993. [HERV02]Y.HERVE VHDL-AMS Applications et enjeux industriels , DUNOD ISBN 2100058886 [HIND93] J.K. Hinderling, T. Rueth, K. Easton, D. Eagleson, D. Kindred, R. Kerr, J. Levin, CDMA Mobile Station Model ASIC. , IEE JOURNAL OF SOLID-STATE CIRCUIT, VOL. 28, N 3, Mar. 1993. [HUAN98] W. Huang, I. Andonovic, M. Nakagawa, PLL performance of DS-CDMA Systems in the presence of phase noise, multiuser interference, and additive Gaussian Noise. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 46, N 11, Nov. 1998. [HUAN98b] W. Huang, I. Andonovic, Code Tracking of DS-CDMA Systems in the Presence of Multiuser interface and Additive Noise. , University of Strathclyde, Dept. of EEE, 1998. [IEEE1] IEEE standard VHDL Analog and Mixed-signal Extensions (1076.1-1999 Language Reference Manual) disponible http://www.vhdl.org/analog/ [IEEE2] Verilog-AMS Language ams/htmlpages/publics-docs/lrm Reference Manual) http://www.eda.org/Verilog-
[ISCC95] R.L Peterson, R.E Ziemer, D.E Borth Introduction to Spread Spectrum Communications , Prentice Hall,1995. [ITRS03] International Technology Roadmap for Semiconductors, 2003 Edition, Executive Summary .http://public.itrs.net/Files/2003ITRS [JAIN92] R. Jain et al., Computer Aided Design of a BPSK Spread-Spectrum Chip Set , IEEE Journal of Solid-State Circuits, vol.27, n1,pp. 44-57, Jan.1992.
-166-
REFERENCES
[KAHN02]A.B. KAHNG,G.SMITH A new Design cost model for the 2001 ITRS ,Proceedings of the international Symposium on Quality Electronic Design (ISQED2002) [KARR04] M.KARRAY,P.DESGREYS,JJ CHARLOT VHDL-AMS modelling of VCSEL including Noise IEEE BMAS03, San Jose, Californie, USA, Oct 2003. [KIM99] H.G. Kim, I. Song, Y.U. Lee, S.C. Kim, Y.H. Kim, Double-dwell serial-search PN code acquisition using a nonparametric detector in DS/CDMA systems. , Dept. of electrical engineering, KAIST, 0-7803-5538-5/99, 1999 IEEE. [KPAL03] K.KPALMA, V.HAESE-COAT Traitement numrique du signal. Thorie et applications Ellipses collection TECHNOSUP Septembre 2003. ISBN : 2-7298-1728-X [LECU88] P.LECUYER Communications of ACM vol.31 , N6, June 1988, pp 742-774. [LEE98] Lee D.,Lee.H, Milstein L.B, Direct Sequence Spread Spectrum Walsh-QPSK modulation , IEEE Transactions Communications, vol.46,N9, Spet.1998,pp.1227-1232. [LIM98] H. Lim, K. Cheun, Analysis of decimator-based full-digital delay-locked PN code tracking loops for bandlimited direct-sequence spread-spectrum signal in AWGN. , IEICE TRANSACTIONS ON COMMUNICATIONS, VOL. E81-B, N10, Oct. 1998. [LU93] Fang LU and al (1993)A 700-MHz 24-b Pipelined Accumulator in 1,2m CMOS for application as a numerically Controlled Oscillator , IEEE Journal of Solid-State Circuits, vol. 28,n8, pp. 878-885 [MATL03] I.A Grout and K.Keane, A Matlab to VHDL conversion toolbox for digital control . IFAC Symposium CACSD 2000, Salford, UK, Sep. 2000. [MAZO79] J.E MAZO Some Theorical observation on spread spectrum communications Bell Synth. Tech. Journal, vol.58, pp 2013-2023, Avr 1979. [MELE01]P.MELET. Conception et ralisation dun circuit numrique spcifique talement de spectre pour un systme multicapteurs en milieu clos , Universit Paul Sabatier, Toulouse. Dec. 2001. [MENT01] Mentor Graphics Corporation, AdvanceMS Datasheet Mentor Graphics Corporation 2001. [MENT03] Mentor Graphics Corporation, System Modeling Mentor Graphics Corporation 2001. http://www.mentor.com/systemvision/ Mentor Graphics Corporation 2003. [MILP01] E.MARTIN, A.BAGANNE, E.CASSEAU Mthodologie et dveloppement pour les Intellectuals properties pour lapplications telecoms . Rapport davancement 1.1 Niveau comportemental : outils HLS et IPs. [MLYN01] D. MYLNEK Design of VLSI Systems Ecole polytechnique Fdrale de Lausane (EPFL) 2001 http://lsiwww.epfl.ch/LSI2001/teaching/webcourse/toc.html [NAGE75]L.W NAGEL Spice2 : A computer program to simulate semi-conductors circuits.Memorandum NERL-M520 , Electrons .Research Laboratory. [NEWM86] D.Newman, IEEE communications magazine, pp 46-47, Juillet 1986.
-167-
REFERENCES
[NIVE99]F. Nivelle, S. Bourdel, P. Melet, E. Campo Etude comparative, sous MATLAB et SABER, des principaux filtres analogiques. Application la chane de communication talement de spectre ,Rapport Equipe ICARE, IUT B de Blagnac, Juillet 1999. [NORM04] E.NORMARK,L.YANG,C.WAKAYAMA, P.NIKITIN, R.SHI VHDL-AMS Behavioral Modeling and Simulation of /4 DQPSK Transceiver System , BMAS 04, Oct.2004. [NTRS] Semiconductor Industry Association The National Technology Roadmap for Semiconductors http://public.ntrs.net/Files/2003NTRS [POLY84] A. Polydoros, C.L. Weber, A Unified Approach to Serial Search-Spectrum Code Acquisition Part I : General Theory. , 0090-6778/84/0500-0542, IEEE 1984. [POLY84b] A. Polydoros, C.L. Weber, A Unified Approach to Serial Search-Spectrum Code Acquisition Part II : A Matched-Filter Receiver. , 0090-6778/84/0500-0550, IEEE 1984. [PEYR05] Jul.2005. F.PEYRARD La scurit des rseaux WiFi Seminaire L2I, Blagnac
[ROBE02] M.Robert Circuits et systmes intgrs micro-lectronique : technologie,conception http://www.lirmm.fr/~robert /cours/SyntheseASIC2002.pdf [RON99] Ron.W Is SoC really different ? EETimes 8 November 1999. http:// www.eetimes.com/story/OEG19991108S0009. [RUSC01] L. Ann Rusch, Indoor Wireless Communications : Capacity and Coexistence on the Unlicensed Bands. , Intel Corporation 2001. [SAGE64] G.F.Sage Serial Synchronisation of Pseudonoise Transactions on communications.,Vol.CT-12, pp.123-127, Dec.1964. Systems ,IEEE
[SASON04] SASONGKO Arif Prototypage bas sur une plateforme reconfigurable pour la vrfication des systmes monopuces Thse de doctorat de luniversit Joseph Fourier. Oct. 2004. [SCHW01] R. Schwarz, F. Sigtek Inc, An introduction to linear recursive sequences in spread spectrum systems. , Dec. 2001. [SEAMww] http:// www.mentor.com/products/fv/hwsw_coverification/seamless/index.cfm. [SEMA] SEMATECH (SEmiconductor MAnufacturing TECHnology) Consortium de fabricant de puce : http://sematech.org [SHEE94] W.H. Sheen, G.L. Stber, Effects of multipath fading on delay-locked loops for spread spectrum systems. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 42, N2/3/4, Feb/March/April 1994. [SIME03]SIMEC hAMSter The high Performance AMS tool for Engineering and research http // :www .hamster-ams.com. [SIMO77] M.K Simon, Noncoherent Pseudonoise Code tracking Performance of Spread Spectrum Receiver . IEEE Transactions on Communications, Vol. Com-25, N3, pp.327345, Mars 1977.
-168-
REFERENCES
[SIMO94] M.K.SIMON, J.K OMURA, R.A SHOLTZ, B.K LEVITT, Spread Spectrum Communications Handbook, Mac Graw-Hill, 1994. [SMAS05] SMASH 5.5 Logic, Analog and Mixed Simulation http://www.dolphin.fr/medal/smash/smash_overview.html. [SMIT98] D.SMITH HDL Chip Design : A pratical Guide for Designing, Synthesis & Simulating Asics &FPGAs using VHDL or Verilog Doone Pubns . ISBN : 0965193438 [SNAI04] S.SNAIDERO Modlisation multidisciplinaire VHDL-AMS de systmes complexes : vers le prototypage virtuel , Thse de doctorat de luniversit L.Pasteur de Strasbourg , Dcembre 2004. [SU97] S.L. Su, N.Y. Yen, Performance of digital code tracking loops for direct-sequence spread-spectrum signals in mobile radio channels. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 45, N5, May 1997. [Syno00] Synopsys, Hardware/Software Co-Verification with Synopsys Eaglei Tools , Synposys Inc, Etats-Unis dAmrique 2000. [SYNO03] Synopsys, SaberHDL : language-Independant Mixed Signal Multi-Technology Simulator , Synposys Inc, Etats-Unis dAmrique 2003. [TEXWW]Texas Instrument http://www.ti.com [VACH02] A.VACHOUX Modlisation de systmes integrs Analogiques et mixtes; Intorduction VHDL-AMS http://lsmwww.epfl.ch [VALD98]C.A VALDERRAMA Prototype virtuel pour la gnration des architectures mixtes logicielles/matrielles Thse de doctorat de linstitut national polytechnique de grenoble, Oct.1998. [VDBO05] A. VAN DEN BOSSCHE, T. VAL, E. CAMPO Proposition of a full deterministic medium access method for wireless network in a robotic application Soumission IEEE Vehicular Technology Conference (VTC2006), May 2006. [VERD01]S.VERDU, MULTIUSER DETECTION Cambridge, ISBN 0521593735 [VERM02]F.VERMEULEN Reuse of System-Level Design components in datadominated Digital systems , Thse de doctorat de luniversit catholique de Leuven (Belgique), Dcembre 2002. [VITE85] Viterbi.A.J, When not to spread spectrum a sequel , IEEE Communications magazine, vol.23, pp 12-18, Avr 1985. [VLAD94]A.VLADIMIRESCU. The Spice Book. J.Wiley&Sons, Inc,New York, 1994. ISBN :047160969 [WARD77]R.B Ward,K.P.Yiu Acquisition of pseudonoise Signals by Recursion-Aided Sequential Estimation ,IEEE Transactions on communications, vol.com-25, N8, pp.784794,Nov.1978. [WELT94] A.L. Welti, B.Z. Bodbrovsky, Mean time to lose lock for the Langevin-type delay-locked loop. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 42, N8, Aug. 1994.
-169-
REFERENCES
[WILD95] A. Wilde, U.P. Bernhard, Mean time to lose lock for a second order extended tracking range delay-locked loop. , 0-7803-3002-1/95, 1995 IEEE. [WILD96] A. Wilde, On the performance of extended tracking range delay-locked loops. , May 1996. [WU97] Jen-Shi Wu, Ming-Luen Liou, Hsi-Pin Ma, Tzi-Dar Chiueh A 2.6-V, 44MHz AllDigital QPSK Direct-Sequence Spread-Sprectrum Transceiver IC , IEEE Journal of SolidState Circuits, VOL. 32, N 10 October 1997 0018-9200/97. [XILIWW] XILINX http://www.xilinx.com [YEN96] N.Y. Yen, S.L. Su, S.C. Hsieh, Performance analysis of digital delay lock loops in the presence of Doppler shift. , IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 44, N6, June 1996. [YOON00] S. Yoon, I. Song, S.Y. Kim, S.R. Park, A DS-CDMA code acquisition scheme robust to residual code phase offset variation. , IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY, VOL. 49, N6, 0018-9545/00, Nov. 2000.
-170-
REFERENCES
ANNEXES
-170-
ANNEXES
-172-
ANNEXES
); end component; COMPONENT horloge_640 PORT ( clock : out std_logic); END COMPONENT; component recepteur_CAN port( clock : in std_logic; --Horloge de 40Mhz de l'entre terminal ain : electrical; -- ADC's analog input terminal eoc : out std_logic; -- End Of Conversion pin reset : in std_logic; clock_640: in std_logic; cn_code : in std_logic_vector (11 downto 0); sortie_clk160nco : out std_logic ); end component; component radio port( data_etalee terminal ain terminal ref ); end component; --*************************************************************************************** --Dfinition des port map --*************************************************************************************** begin generation_de_trame: Gene_trame1 port map ( datasource => data_source , reset => rst ); horloge_chip : horloge_40 port map( clock => clk_40e ); horloge_40MHz_entree_recep : horloge_40 port map( clock => clock ); Gene_coef_code_emission : controle port map ( cn_code => cn_code ); E1 : emission port map ( clk_40e => clk_40e, rst => rst, data_source => data_source, cn_code => cn_code, data_etalee => data_etalee ); AWGN : radio port map ( data_etalee => data_etalee, ain => ain, ref => electrical_ground : in std_logic; : electrical; : electrical
-173-
ANNEXES
); horloge_640MHz : horloge_640 port map ( clock => clock_640 ); R2 : recepteur_CAN port map ( clock => clock, ain => ain, reset => rst, clock_640 => clock_640, cn_code => cn_code, eoc => eoc, sortie_clk160nco => sortie_clk160nco ); end arch_test_reception_avec_radio;
-174-
ANNEXES
-175-
ANNEXES
-176-
ANNEXES
EMETTEUR
(Emission)
Gnrateur de PN Code
(Gene_code_e)
Encodeur Diffrentielle
(Codeur)
Fonction Multiplication
(Mult_e)
-177-
ANNEXES
--************************************************************************************** -- Fonction-emetteur-teste -- 04/04/2005 --Fichier regroupant les fonctions de l'metteur --Description des fonctions suivantes de l'metteur : codeur(codeur), fonction multiplication (mult_e), du gnrateur de -- PN CODE Emission (gene_code_e) et des bascules pour resynchroniser (2 bascules D) *************************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use work.parameter.all; entity emission is port( clk_40e: in std_logic; rst: in std_logic; data_source : in std_logic; cn_code : in std_logic_vector(11 downto 0); data_etalee : out std_logic ); end emission; architecture arch_emission of emission is --*************************************************************************************** --Dfinition des signaux de jonctions --*************************************************************************************** signal data_encodee_clk40e : std_logic; signal data_encodee_re_clk40e: std_logic; signal dump_e_clk40e : std_logic;
-178-
ANNEXES
signal code_e_clk40e : std_logic; signal code_retardee_e_clk40e : std_logic; signal code_retardee2_e_clk40e : std_logic; signal code_retardee3_e_clk40e : std_logic; --*************************************************************************************** --Dfinition des composants --*************************************************************************************** component codeur port( clk_40e: in std_logic; rst : in std_logic; dump_e_clk40e : in std_logic; data_source : in std_logic; data_encodee_clk40e : out std_logic ); end component; component mult_e port( code_e_clk40e : in std_logic; data_encodee_clk40e : in std_logic; data_etalee : out std_logic ); end component; component gene_code_e port( clk_40e : in std_logic; rst : in std_logic; cn_code : in std_logic_vector(11 downto 0); code_e_clk40e : out std_logic; dump_e_clk40e : out std_logic ); end component; component bascule_d port( clk_40e: in std_logic; rst: in std_logic; code_e_clk40e :in std_logic; code_retardee_e_clk40e:out std_logic ); end component; --*************************************************************************************** --Dfinition des port map --*************************************************************************************** begin encodeur: codeur port map ( clk_40e =>clk_40e, rst =>rst , dump_e_clk40e => dump_e_clk40e, data_source => data_source, data_encodee_clk40e => data_encodee_clk40e ); multi_emission : mult_e port map( code_e_clk40e =>code_retardee3_e_clk40e,
-179-
ANNEXES
data_encodee_clk40e =>data_encodee_re_clk40e, data_etalee => data_etalee); --Gnrateur de Pn_Code_Emission Gene_code_emission:gene_code_e port map ( clk_40e =>clk_40e, rst=>rst, cn_code =>cn_code, code_e_clk40e => code_e_clk40e, dump_e_clk40e => dump_e_clk40e); --1er bascule pour un clock de retard bascule_d1:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e =>code_e_clk40e, code_retardee_e_clk40e =>code_retardee_e_clk40e); --2eme bascule pour tre en phase bascule_d2:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>code_retardee_e_clk40e, code_retardee_e_clk40e =>code_retardee2_e_clk40e); --15/03/2005 Ajout d'une bascule D pour la multiplication du rcepteur bascule_d3:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>code_retardee2_e_clk40e, code_retardee_e_clk40e =>code_retardee3_e_clk40e); --17/09/2005 Rajout Bascule pour soit en phase avec code_retardee3_e_clk40e bascule_Encodeur:bascule_d port map ( clk_40e =>clk_40e, rst =>rst , code_e_clk40e=>data_encodee_clk40e, code_retardee_e_clk40e =>data_encodee_re_clk40e); end ;
-180-
ANNEXES
**************************************************************************** --GENERATEUR DE PN CODE de l'metteur -- 04/04/2005 --Gnration de PN Code partir des coefficients CN_CODE --Paramtres: ( dfinir)longueur du PN CODE, initialisation DU PN CODE --19/03 Pour que le dump soient de 375 ns laisser les calculs pour le registre l'extrieur du process --20/05/2005 Test de la version complte --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity gene_code_e is port ( clk_40e : in std_logic; rst : in std_logic; cn_code : in std_logic_vector(11 downto 0); code_e_clk40e : out std_logic; dump_e_clk40e : out std_logic ); end gene_code_e; architecture arch of gene_code_e is signal a : std_logic_vector (0 to 11); signal q : std_logic_vector (1 to 11); signal dump1_e_clk40e :std_logic; -- initialisation du registre des bascules d --signal d : std_logic_vector(0 to 11) := "100000000000";
-181-
ANNEXES
signal d : std_logic_vector(0 to 11); begin --calcul des valeurs binaires rinjectes dans le registre : a(0) <= cn_code(0) and d(0); a(1) <= cn_code(1) and d(0); a(2) <= cn_code(2) and d(0); a(3) <= cn_code(3) and d(0); a(4) <= cn_code(4) and d(0); a(5) <= cn_code(5) and d(0); a(6) <= cn_code(6) and d(0); a(7) <= cn_code(7) and d(0); a(8) <= cn_code(8) and d(0); a(9) <= cn_code(9) and d(0); a(10) <= cn_code(10) and d(0); a(11) <= cn_code(11) and d(0); --calcul des prochaines valeurs du registre : q(1) <= d(1) xor a(0); q(2) <= d(2) xor a(1); q(3) <= d(3) xor a(2); q(4) <= d(4) xor a(3); q(5) <= d(5) xor a(4); q(6) <= d(6) xor a(5); q(7) <= d(7) xor a(6); q(8) <= d(8) xor a(7); q(9) <= d(9) xor a(8); q(10) <= d(10) xor a(9); q(11) <= d(11) xor a(10); -- initialisation du registre --processus de raffectation du registre : p1 : process(clk_40e,rst) begin if(rst = '1') then --19/03 Ajout du reset seulement d <= "100000000000"; dump1_e_clk40e <= '0'; elsif (rising_edge(clk_40e)) then --gnration de l'horloge de bloquage : if q(1 to 11)&a(11)="100000000000" and dump1_e_clk40e='0' then dump1_e_clk40e <= '1'; else dump1_e_clk40e<='0'; end if; --raffectation du registre: d(0) <= q(1); d(1) <= q(2); d(2) <= q(3); d(3) <= q(4); d(4) <= q(5); d(5) <= q(6); d(6) <= q(7); d(7) <= q(8); d(8) <= q(9); d(9) <= q(10); d(10)<= q(11); d(11)<= a(11); end if; end process p1; dump_e_clk40e<=dump1_e_clk40e;
-182-
ANNEXES
code_e_clk40e<=d(0); end arch; --********************************************************************** -- ENCODEUR EMETTEUR -- 04/04/2005 Mise jour dans projet DLL seule --Fonction permettant l'encodage des donnes issues des capteurs --paramtre: Horloge de temps symboles --********************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity codeur is port ( clk_40e: in std_logic; rst : in std_logic; dump_e_clk40e : in std_logic; data_source : in std_logic; data_encodee_clk40e : out std_logic ); end codeur; architecture arch of codeur is signal data_out1_clk40e : std_logic; signal detect_front_clk40e : std_logic; signal dump_e_rideau1 : std_logic; signal dump_e_rideau2 : std_logic; begin data_encodee_clk40e<=data_out1_clk40e;--permet d'avoir un clock d'horloge d'cart (plus de front descendant) re_synchro: process (rst,clk_40e) begin if (rst='1') then dump_e_rideau1 <= '0'; dump_e_rideau2 <= '0'; elsif(rising_edge(clk_40e)) then dump_e_rideau1 <= dump_e_clk40e; dump_e_rideau2 <= dump_e_rideau1; end if; end process re_synchro; --processus calculant la sortie chaque front montant de l'horloge de bloquage p1 : process(clk_40e,rst) begin if (rst = '1') then data_out1_clk40e <= '0'; detect_front_clk40e <= '0'; elsif rising_edge(clk_40e) then--permet de ragir sur le front montant de dump (rising_edge(dump)) if (dump_e_rideau1 = '1'and dump_e_rideau2 = '0' and detect_front_clk40e = '0') then data_out1_clk40e <= not(data_out1_clk40e xor data_source); detect_front_clk40e <='1'; else detect_front_clk40e <='0'; data_out1_clk40e <= data_out1_clk40e; end if;--If dump end if;--If clk_40e end process p1; end arch;
-183-
ANNEXES
--***************************************************************************** --MULTIPLIEUR EMETTEUR --02/11/2004-- Mise jour des fichiers --31/03/2005--Mise jour dans nouveau projet --Multiplication de la donne encode avec le PN_code --20/05/2005 Test de la version complte --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; entity mult_e is port ( code_e_clk40e : in std_logic; data_encodee_clk40e : in std_logic; data_etalee : out std_logic ); end mult_e; architecture arch of mult_e is begin data_etalee <= not(data_encodee_clk40e xor code_e_clk40e); end arch;
-184-
ANNEXES
--**************************************************************** -- Multiplicateur RF en sortie de l'emetteur (numerique->analogique) -- 15/03/05 -- transposition de la frequence de base vers la RF --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; entity mult_digit is port(in1 : in std_logic; terminal sin ,out1,ref : electrical); end mult_digit; architecture arch of mult_digit is quantity v1 across sin to ref; quantity v2 across i through out1 to ref; begin break on in1; if in1='0' use v2==v1; else v2==-v1; end use; end architecture arch; -****************************************************************
-185-
ANNEXES
-- Filtre passe-bande de gabarit --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; use IEEE.math_real.all; entity filtre_bande is port( terminal in1,out1,ref: electrical); end filtre_bande; architecture arch of filtre_bande is quantity vi across in1 to ref; quantity vo across i through out1 to ref; --dfinitions des coefficients du polynme du dnominateur constant a4 : real :=8.517935e-19; constant a3 : real :=1.377222e-9; constant a2 : real :=3.882865e+2; constant a1 : real :=3.130874e+11; constant a0 : real :=4.402075e+22; --dfinition du numrateur et du dnominateur de la fonction de transfert constant num : real_vector :=(0.0,0.0,1.0); constant den : real_vector :=(a0,a1,a2,a3,a4); begin --affectation de la sortie filtre vo== vi'ltf(num, den); end architecture arch;
--****************************************** -- CANAL AWGN -- 16/05/05 --****************************************** library IEEE,IEEE_PROPOSED,DISCIPLINES,mgc_ams; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use DISCIPLINES.electromagnetic_system.all; use IEEE.math_real.all; use mgc_ams.conversion.all; entity canal is generic ( tps_propa : time := 0.0 ns ;-- temp de propagation de l'onde electromagnetique entre l'emetteur et le recepteur SNR : real := -10.0 ; -- SNR en dB attenuation : real := 0.5 -- valeur comprise entre 1.0 et 0.0 ); port( terminal entree_canal,ref,sortie_canal: electrical); end canal; architecture arch of canal is quantity Vo across sortie_canal to ref; -- electrical_ground ou ref quantity Ve across entree_canal to ref; quantity Va through sortie_canal to ref; -- POUR LE CRITERE DE SOLVABILITE signal out1 : real := 0.0; signal noise_s : real := 0.0; -- bruit injecte dans le canal -- bruit seul non adapte au SNR (0dB)
-186-
ANNEXES
signal ve_max, ve_max1: real := 0.01; signal ve_rms : real := 0.01; signal ve_db : real := 0.0; signal level : real := -60.0; signal ve1 : real := 0.01;
-- valeur max du niveau en entree du canal -- valeur RMS du niveau en entree du canal -- valeur du niveau en entree du canal en dB -- niveau de buit a injecter dans le canal pour avoir un SNR donne -- valeur absolu du signal a l'entree du canal
constant retard : real := time2real(tps_propa); constant racine_de_deux :real := 1.414; begin calcul_niveau_entree : process begin ve1 <= ABS (ve*attenuation); --prend en compte l'attenuation dans le cannal wait for 10 ns; ve_max <= REALMAX (ve1 ,ve_max1); --valeur max de ve ve_rms <= ve_max/racine_de_deux; ve_db <= 20.0*log10 (ve_rms); --valeur en dB de ve ve_max1 <= ve_max - 0.01; --sert a mettre a jour la valeur max de ve end process calcul_niveau_entree; p0 : process variable seed11:integer:=2000 ; variable seed12:integer:=100000000 ; variable x,y :real ; begin uniform (seed11,seed12,x); uniform (seed11,seed12,y); noise_s <= 1.0*(sqrt(-2.0*log(x))*cos(2.0*math_pi*y)); wait for 1 ns; level <= (ve_db - SNR); out1 <= 10.0**(level/20.0)*noise_s; end process p0; break on out1; vo == ve'DELAYED (retard) * attenuation + out1; l'attenuation end architecture arch; --affectation de sortie_canal (vo) avec le retard, le bruit et --calcul de niveau de bruit a agouter dans le canal en dB --regle out1 = noise_s au niveau de level (en dB) --generation du bruit blanc gaussien
--**************************************************************** -- Multiplicateur RF en entree du recepteur (analogique->analogique) -- 15/03/05 -- transposition de la RF vers la frequence de base --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee_proposed.electrical_systems.all; entity mult_analog is port(terminal in1 ,sinus, out1,ref : electrical); end mult_analog; architecture arch of mult_analog is quantity v1 across in1 to ref; quantity v2 across sinus to ref; quantity v3 across i3 through out1 to ref;
-187-
ANNEXES
begin v3==v1*v2; end architecture arch; --**************************************************************** -- Filtre passe-bas --**************************************************************** library ieee,ieee_proposed; use ieee.std_logic_1164.all; use ieee.math_real.all; use ieee_proposed.electrical_systems.all; entity filtre_bas is port( terminal in1,out1,ref: electrical); end filtre_bas; architecture arch of filtre_bas is quantity vi across in1 to ref; quantity vo across i through out1 to ref; --constant b5 : real :=432710406.0; constant b4 : real :=7.832322887179808e-35; constant b3 : real :=1.083750705598370e-25; constant b2 : real :=5.518945839655140e-17; constant b1 : real :=1.224571370534976e-8; constant b0 : real :=1.0; constant num : real_vector :=(1.0,0.0); constant den : real_vector :=(b0,b1,b2,b3,b4); begin vo== vi'ltf(num, den); end architecture arch;
-188-
ANNEXES
-189-
ANNEXES
Rcepteur
(Recepteur_CAN)
Hirarchie Rcepteur
Rcepteur_sans_synchronisation
(Recepteur_ss_synchro)
Synchronisation
(Synchronisation)
Poursuite
(Poursuite)
Diviseur
(Diviseur)
Test donne
(Test_donnee)
Dcodage Diffrentielle
(Decodeur)
Dstalement
(Desetalement)
Filtre de boucle
(filtre_fifobis) Param:
Cte de temps Coefficients RII Gain du filtre de boucle
NCO
(nco) Param:
Pas NCO Frequence NCO Gain NCO
Discriminateur
(discriminateur) Param:
Gain du discriminateur
Intgrateur/bloqueur
(Integ_dump) Param:
Coeff m (en fonction N)
Dstalement synchronisation
(multiplieur_r,integ_dump)
Slection PN_CODE Filtre Correlation Test Seuil pour 1 branche (Dephaseur_PN_code) (filtre_fifobis) (Test_seuil) Param:
Param: Nombres de branches
Coefficients RII
Dstalement poursuite
(multiplieur_r,integ_dump, absolu)
Soustracteur
Param:
Valeur du seuil
-190-
ANNEXES
--************************************************************ -- Organe RECEPTEUR DE TRANSCEIVER_synthtisable --31/01/2005 -- Fichier comprenant CAN avec temps de conversion, Rcepteur_ss_synchro, Poursuite , synchronisation -- et Diviseur --************************************************************ LIBRARY work; LIBRARY ieee,ieee_proposed; USE work.parameter.all; use ieee_proposed.electrical_systems.all; USE ieee.numeric_std.all; USE ieee.std_logic_1164.all; ENTITY recepteur_CAN IS port ( clock : in std_logic; --Horloge de 40Mhz de l'entre terminal ain : electrical; reset : in std_logic; clock_640: in std_logic; cn_code : in std_logic_vector (11 downto 0); --start:in std_logic; eoc : out std_logic; --synchro_clk160nco: out std_logic ; sortie_clk160nco : out std_logic ); END; ARCHITECTURE arch_recepteur OF recepteur_CAN IS --********************************************************** --DEFINITION DES SIGNAUX DE JONCTIONS --********************************************************** SIGNAL clk80nco :std_logic; SIGNAL clk40nco :std_logic; SIGNAL clk160nco:std_logic; SIGNAL clk_simu:std_logic; SIGNAL dump_r_clk40nco : std_logic; SIGNAL code_out_clk40nco : std_logic; SIGNAL data_codee_clk40e : signed (3 downto 0); SIGNAL data_conv : signed (3 downto 0); -- SIGNAL synchro_clk160nco: boolean; SIGNAL synchro_clk160nco: std_logic; SIGNAL clock_NCO: std_logic; --SIGNAL eoc:std_logic; --********************************************************** -- Dfinition des components --********************************************************** component CAN2 is generic ( Vmax : voltage := 0.05; -- ADC's maximum range delay : time := 1 ns -- ADC's conversion time ); port ( signal start : in std_logic; -- Start signal signal clk : in std_logic; -- Strobe clock terminal ain : electrical; -- ADC's analog input terminal signal eoc : out std_logic := '0'; -- End Of Conversion pin signal dout : out signed(3 downto 0)); -- Digital output end component; component inversion is port (
-191-
ANNEXES
signal dout : in signed(3 downto 0); --Donnes en sortie du convertisseur signal data_convertie: out signed(3 downto 0)); --Donnes tales et converties end component; component reception_ss_synchro is port( clk160nco rst
: :
in std_logic; in std_logic;
data_codee_clk40e : in signed (3 downto 0); code_clk40nco : in std_logic;--PN code devra tre en phase dump_r_clk40nco: in std_logic;--Signal permettant le test donne sortie_clk160nco : out std_logic ); end component; component synchronisation is port( clk160nco rst
: :
in std_logic; in std_logic;
data_codee_clk40e : in signed (3 downto 0); code_clk40nco : in std_logic;--PN code devra tre en phase dump_r_clk40nco: in std_logic;--Signal permettant le test donne synchro_clk160nco : ); end component; component poursuite IS port( clk40nco : in std_logic; clk160nco : in std_logic; clk_640:in std_logic; rst : in std_logic; cn_code : in std_logic_vector (11 downto 0); data_codee_clk40e : in signed (3 downto 0); synchro_clk160nco: in std_logic; dump_r_clk40nco : out std_logic; code_out_clk40nco : out std_logic; clock_NCO :out std_logic ); END component; COMPONENT horloge_simu PORT ( clock : out std_logic); END COMPONENT; component diviseur is port( clk : in STD_LOGIC ; clk_divise_2 : out STD_LOGIC ); end component; out std_logic
-192-
ANNEXES
--*************************************************************************************** --dfinition des port map --*************************************************************************************** BEGIN Convertisseur1: CAN2 generic map ( Vmax => 0.05, -- ADC's maximum range delay => 1 ns ) port map ( start =>clock, clk =>clock_640, ain => ain, eoc =>eoc, -- ADC's analog input terminal dout => data_conv ); INVERSE:INVERSION port map ( dout => data_conv, data_convertie =>data_codee_clk40e ); reception1: reception_ss_synchro PORT MAP ( clk160nco => clk160nco, rst => reset, --data_codee_clk40e => data_codee_clk40e, data_codee_clk40e => data_conv,-- 23/09/2005 Element inversion enleve dump_r_clk40nco => dump_r_clk40nco, code_clk40nco => code_out_clk40nco, sortie_clk160nco => sortie_clk160nco); synchronisation1 :synchronisation PORT MAP ( clk160nco => clk160nco, rst => reset, data_codee_clk40e => data_codee_clk40e, dump_r_clk40nco => dump_r_clk40nco, code_clk40nco => code_out_clk40nco, synchro_clk160nco => synchro_clk160nco); org_poursuite: poursuite PORT MAP ( clk40nco => clk40nco, clk160nco => clk160nco, clk_640 => clock_640, rst => reset, cn_code => cn_code, data_codee_clk40e => data_codee_clk40e, synchro_clk160nco => synchro_clk160nco, code_out_clk40nco => code_out_clk40nco , clock_NCO =>clock_NCO, dump_r_clk40nco => dump_r_clk40nco ); HorlogeSimu : horloge_simu port map ( clock =>clk_simu );
-193-
ANNEXES
diviseur1: diviseur port map ( clk =>clock_NCO, clk_divise_2 => clk80nco ); diviseur2: diviseur port map ( clk =>clk80nco, clk_divise_2 => clk40nco ); clk160nco<=clock_NCO; END;
-194-
ANNEXES
--****************************************************************************************** -- Convertisseur Analogique/Numrique --18 /01/2005 --Les entres et sorties -- Entre START qui dfinie le dbut de conversion -- Entre CLK qui eshorloge du systme -- Entre Analogique convertir -- Sortie EOC qui dfinit la fin de conversion -- Sortie DOUT qui dfinit le signal de sortie -- Paramtre du CAN: Plage maximun de tension Vmax, temps de conversion delay -- Lorsque nous avons un front montant sur EOC les donnes devront tre rcupprer en sortie --****************************************************************************************** library IEEE; library IEEE_PROPOSED; use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use IEEE_PROPOSED.electrical_systems.all; entity CAN2 is generic ( Vmax : voltage := 0.05; -- ADC's maximum range delay : time := 1ns -- ADC's conversion time ); port ( signal start : in std_logic; -- Start signal signal clk : in std_logic; -- Strobe clock terminal ain : electrical; -- ADC's analog input terminal signal eoc : out std_logic := '0'; -- End Of Conversion pin signal dout : out signed(3 downto 0)); -- Digital output end entity CAN2; architecture sar of CAN2 is type states is (input,hold, convert, output); -- Three states of A2D Conversion quantity Vin across Iin through ain to electrical_ref; -- ADC's input branch --quantity Vin across ain to electrical_ref; -- quantity Vsortie across Isortie through Vcan to electrical_ref; --signal Vsortie_temp : real := 0.0; begin sa_CAN2 : process variable thresh : voltage := Vmax; -- Threshold to test input voltage -- against variable Vtmp : voltage := Vin; -- Snapshot of input voltage when -- conversion starts variable dtmp : signed(3 downto 0); -- Temp. output data variable status : states := input; -- Begin with "input" CASE begin case status is when input => -- Read input voltages when start goes high wait on start until start = '1' or start = 'H'; thresh := Vmax; -- Vtmp := Vin; eoc <= '0'; status :=hold; when hold => wait on clk until clk = '1' or clk = 'H'; status Vtmp := Vin; := convert; -- Go to convert state -- Begin successive approximation conversion dtmp(3):='1';
if Vtmp<0.0 then
-195-
ANNEXES
Vtmp := Vtmp+(thresh); else dtmp(3):='0'; end if; if Vtmp >= (thresh/2.0) then dtmp(2):='1'; --Vtmp := Vtmp-0.25; Vtmp := Vtmp-(thresh/2.0); else dtmp(2):='0'; end if; if Vtmp >= (thresh/4.0) then dtmp(1):='1'; --Vtmp:=Vtmp-0.125; Vtmp := Vtmp-(thresh/4.0); else dtmp(1):='0'; end if; if Vtmp >= (thresh/8.0) then dtmp(0):='1'; else dtmp(0):='0'; end if; if dtmp="1000" then dtmp:="1001"; end if; status := output; -- Go to output state
when output => -- Wait for output enable, then put data on output pins eoc <= '1' after delay; dout <= dtmp after delay; --wait on eoc until eoc = '1'; --dout<= dtmp; status := input; end case; end process sa_CAN2; -- Set up for next conversion
Iin == 0.0;--cette quation est utile pour le critre de solvabilit. end architecture sar --****************************************************************************** --FICHIER regroupant les fonctions du discriminateur -- 04/04/2005 Mise jour dans projet DLL seule -- fichier comprenant le port map du discriminateur de la DLL ----20/05/2005 Test de la version complte --****************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; use work.parameter.all; entity discriminateur is port( clk160nco rst
: :
data_codee_clk40e :
-196-
ANNEXES
code_early_clk40nco : code_late_clk40nco :
in std_logic;--PN code devra tre en avance in std_logic;--PN code devra tre en retard
dump_early_clk40nco: in std_logic;--Signal en avance pour la branche early dump_late_clk40nco: in std_logic;--Signal en retard pour la branche late discri: out signed(M downto 0) ); end discriminateur ; architecture arch_discriminateur of discriminateur is --*************************************************************************************** --Dfinition des signaux de jonctions --*************************************************************************************** signal data_multi_discri_early_clk40nco:signed (3 downto 0); signal data_multi_discri_late_clk40nco:signed (3 downto 0); signal data_destalee_early_clk160nco: signed (M downto 0); signal data_destalee_late_clk160nco: signed (M downto 0); signal data_absolu_early_clk160nco: signed (M downto 0); signal data_absolu_late_clk160nco: signed (M downto 0); --*************************************************************************************** --Dfinition des composants --*************************************************************************************** ------------------------------------------------------------------Dfinition du multiplieur ----------------------------------------------------------------component multiplieur_r is port ( rst: in std_logic; code_clk40nco : in std_logic; data_codee_clk40e : in signed (3 downto 0); data_multi_clk40nco: out signed (3 downto 0) ); end component; ------------------------------------------------------------------Dfinition de l'intgrateur/bloqueur ----------------------------------------------------------------component integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic; data_multi_clk40nco : in signed (3 downto 0); result_clk160nco ); end component; ------------------------------------------------------------------Dfinition de la valeur absolu ----------------------------------------------------------------component absolu is : out signed (M downto 0)
-197-
ANNEXES
port ( rst
: in std_logic;
data_clk160nco : in signed(M downto 0); data_absolu_clk160nco: out signed(M downto 0) ); end component; ------------------------------------------------------------------Dfinition du soustracteur ----------------------------------------------------------------component soustracteur is port ( data_absolu_late_clk160nco data_absolu_early_clk160nco ); end component; : in signed(M downto 0); : in signed(M downto 0);
--*************************************************************************************** --Dfinition des port map --*************************************************************************************** begin multiplieur_early : multiplieur_r port map ( rst =>rst , code_clk40nco=> code_early_clk40nco, data_codee_clk40e=> data_codee_clk40e, data_multi_clk40nco => data_multi_discri_early_clk40nco ); multiplieur_late : multiplieur_r port map ( rst =>rst , code_clk40nco=> code_late_clk40nco, data_codee_clk40e=> data_codee_clk40e, data_multi_clk40nco => data_multi_discri_late_clk40nco ); integrateur_early: integ_dump port map ( clk160nco =>clk160nco, rst =>rst , dump_clk40nco => dump_early_clk40nco , data_multi_clk40nco => data_multi_discri_early_clk40nco, result_clk160nco=> data_destalee_early_clk160nco ); integrateur_late: integ_dump port map (
-198-
ANNEXES
clk160nco =>clk160nco, rst =>rst , dump_clk40nco => dump_late_clk40nco, data_multi_clk40nco => data_multi_discri_late_clk40nco, result_clk160nco=> data_destalee_late_clk160nco ); absolu_early: absolu port map ( rst =>rst , data_clk160nco => data_destalee_early_clk160nco, data_absolu_clk160nco => data_absolu_early_clk160nco ); absolu_late: absolu port map ( rst =>rst , data_clk160nco => data_destalee_late_clk160nco, data_absolu_clk160nco => data_absolu_late_clk160nco ); soustracteur_discri: soustracteur port map ( data_absolu_early_clk160nco => discri => discri, data_absolu_late_clk160nco => data_absolu_late_clk160nco ); END; --************************************************************************** -- Fonction Test de donne --02/11/2004 --31/03/2005--Mise jour dans nouveau projet --01/04/2005-- Test de donnee avec seuil sur I&DUMP --20/05/2005 Test de la version complte --************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity test_donnee is port ( --detect_front : in std_logic;--01/04--signal de dbut de symbole data_desetalee_clk160nco : in signed(M downto 0);--signal issu du I&D correlation:out std_logic; data_av_decodee_clk160nco: out std_logic --signal entre 0 et 1 en fonction du bit de signe ); end test_donnee; architecture arch of test_donnee is
data_absolu_early_clk160nco ,
-199-
ANNEXES
signal valeur_seuil_max: signed(M downto 0); signal data_correle :std_logic; --affectation du bit de signe begin data_av_decodee_clk160nco <= not(data_desetalee_clk160nco(M));--permet d'obtenir selon le bit de signe un 1 ou 0 pour la sortie correlation <='1'; end arch; --************************************************************************************* -- Changement de test donnee qui detecte 1 ou 0 en fonction de la valeur de result --01/04/2005 --********************************************************************************** --begin --detection :process --begin --wait until detect_front='1'; --if (detect_front ='1') then --valeur_seuil_max <= abs (data_desetalee_clk160nco); --if(valeur_seuil_max < "0010110100" ) then -- --if(valeur_seuil_max < "0101000000" ) then (faux) --correlation <= '0';--Signal decorrele --else --if (valeur_seuil_max < "0101011110" ) then -data_correle <= '0' ; -else data_correle <='1'; --end if; --correlation <='1'; --end if; --end process detection; --data_av_decodee_clk160nco <= data_correle ; --end arch; --***************************************************************************** --DECODEUR DIFFERENTIELLE -- 04/04/2005 Mise jour dans projet DLL seule --Permet le dcodage diffrentielle dn=not(tn XOR tn-1) --15/03/2005 resynchronise data_n pour que le XOR se fasse correctement --17/03/2005 Suppression de detect_front --20/05/2005 Test de la version complte --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; entity decodeur is port ( clk160nco:in std_logic; rst:in std_logic;
-200-
ANNEXES
dump_r_clk40nco : in std_logic;--Signal de dbut de symbole data_av_decodee_clk160nco : in std_logic;--Signal issu de test donnee (signal entre 0 et 1) sortie_clk160nco : out std_logic--signal en sortie du systme Emetteur /Rcepteur ); end decodeur; architecture arch of decodeur is signal data_n : std_logic;--15/03permet de faire le dcodage diffrentielle (donne -1) signal data_n_1 : std_logic; signal detect_front_clk160nco : std_logic;--17/03--signal dtectant le front sur dump signal dump_intermediaire_clk160nco: std_logic; signal dump_resynchronise_clk160nco: std_logic; signal dump_rideau1 : std_logic; signal dump_rideau2 : std_logic; signal sortie1_clk160nco: std_logic;--16/03 begin --Resynchronisation du signal dump sur une horloge 160Mhz re_synchro: process (rst,clk160nco) begin if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0'; data_n <= '0'; --15/03 data_n_1 <= '0'; --15/03 dump_rideau1 <= '0'; dump_rideau2 <= '0'; elsif(rising_edge(clk160nco)) then data_n_1 <=data_av_decodee_clk160nco;--15/03 data_n <=data_n_1;--15/03 dump_intermediaire_clk160nco <= dump_r_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; dump_rideau1 <= dump_resynchronise_clk160nco; dump_rideau2 <= dump_rideau1; end if; end process re_synchro; decodage : process(clk160nco,rst) begin if (rst = '1') then sortie1_clk160nco <='0'; detect_front_clk160nco <= '0'; elsif rising_edge(clk160nco) then --Permet de reagir sur le front montant de dump -if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0' and detect_front_clk160nco = '0') then -if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0') then if (dump_rideau1 = '1'and dump_rideau2='0' and detect_front_clk160nco = '0') then sortie1_clk160nco <= not(data_n_1 xor data_n); detect_front_clk160nco<= '1';--17/03 else detect_front_clk160nco <='0'; --17/03 sortie1_clk160nco <= sortie1_clk160nco; end if; --If dump end if;--If clk_c end process decodage; sortie_clk160nco <= sortie1_clk160nco; end arch;
-201-
ANNEXES
--************************************************* --Multiplication pour la rception --03/11/2004 --31/03/2005--Mise jour dans nouveau projet --20/05/2005 Test de la version complte --************************************************* library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; entity multiplieur_r is port ( rst: in std_logic; code_clk40nco : in std_logic; data_codee_clk40e : in signed (3 downto 0); data_multi_clk40nco: out signed (3 downto 0) ); end multiplieur_r; architecture arch of multiplieur_r is signal pn_code_bus : std_logic_vector(3 downto 0); signal data_multi_clk40nco_int : std_logic_vector(3 downto 0); begin --data_multi_clk40nco <= "0000" when(rst = '1') --Dfinition comportementale de la fonction multiplication -else data_codee_clk40e when(code_clk40nco = '1') -- modif CG -else -data_codee_clk40e ; -- modif CG -else data_codee_clk40e ; -- modif CG pn_code_bus(3 downto 0) <= "0111" when(code_clk40nco = '1') else "1001";-- Mise sur 4 bits du PN_Code data_multi_clk40nco_int(3) <= not(data_codee_clk40e(3) xor pn_code_bus(3)) after 1 ns; data_multi_clk40nco_int(2) <= not(data_codee_clk40e(2) xor pn_code_bus(2)) after 1 ns; data_multi_clk40nco_int(1) <= not(data_codee_clk40e(1) xor pn_code_bus(1)) after 1 ns; data_multi_clk40nco_int(0) <= not(data_codee_clk40e(0) xor pn_code_bus(0)) after 1 ns; data_multi_clk40nco <= "0111" when(data_multi_clk40nco_int = "0001") else "1001"; end arch; --***************************************************************************** -- INTEGRATEUR/BLOQUEUR -- Intgrateur /Bloqueur avec comme frquence d'chantillonnage de 160Mhz --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity integ_dump is port ( clk160nco : in std_logic; rst : in std_logic; dump_clk40nco : in std_logic; data_multi_clk40nco : in signed (3 downto 0); detect_front: out std_logic;--01/04/2005 result_clk160nco ); : out signed (M downto 0)
-202-
ANNEXES
end integ_dump; architecture arch of integ_dump is signal acc_clk160nco : signed (M downto 0); -- signal accumulation pour l'integrateur signal acc_test_clk160nco : signed (M+1 downto 0); -- signal accumulation pour l'integrateur signal result1_clk160nco : signed (M downto 0);--signal donnant le rsultat final (donc chaque dump) signal detect_front_clk160nco : std_logic;--permet de dtecter le front montant sur dump signal dump_intermediaire_clk160nco: std_logic; signal dump_resynchronise_clk160nco: std_logic; begin --Resynchronisation du signal dump sur une horloge 160Mhz re_synchro: process (rst,clk160nco) begin if (rst='1') then dump_intermediaire_clk160nco <= '0'; dump_resynchronise_clk160nco <= '0'; elsif(rising_edge(clk160nco)) then dump_intermediaire_clk160nco <= dump_clk40nco; dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco; end if; end process re_synchro; integration:process(clk160nco,rst)--Horloge de 160 Mhz begin if (rst = '1') then --result_clk160nco <=(M downto 0 => '0'); result1_clk160nco <=(M downto 0 => '0'); acc_test_clk160nco <=(M+1 downto 0 => '0'); acc_clk160nco <=(M downto 0 => '0'); detect_front_clk160nco <= '0'; elsif rising_edge(clk160nco ) then if (dump_intermediaire_clk160nco = '1'and dump_resynchronise_clk160nco='0' and detect_front_clk160nco = '0') then if(acc_test_clk160nco(M+1) = '0') then if(acc_test_clk160nco(M) = '1') then result1_clk160nco(M) <= '0'; result1_clk160nco(M-1 downto 0) <= (others => '1'); else result1_clk160nco <= ('0' & acc_test_clk160nco(M-1 downto 0)); end if; else if(acc_test_clk160nco(M) = '0') then result1_clk160nco(M) <= '1'; result1_clk160nco(M-1 downto 0) <= (others => '0'); else result1_clk160nco <= ('1' & acc_test_clk160nco(M-1 downto 0)); end if; end if; acc_clk160nco <= (others => '0'); acc_test_clk160nco <= (others => '0'); detect_front_clk160nco <='1'; else detect_front_clk160nco <='0'; acc_clk160nco <= acc_clk160nco + data_multi_clk40nco; if(data_multi_clk40nco(3) = '0') then
-203-
ANNEXES
acc_test_clk160nco <= acc_test_clk160nco + ('0' & data_multi_clk40nco); else acc_test_clk160nco <= acc_test_clk160nco + ('1' & data_multi_clk40nco); end if; end if;--If dump end if;--If Clk_160 end process integration; result_clk160nco <= result1_clk160nco when(detect_front_clk160nco <='1') else (others => '0') when(rst = '1'); end arch; --***************************************************************************** --SELECTION PN_CODE --15/04/2005 -- MODULE permettant de remettre la synchro sur la voie 1. -- Etat Repos: Initialisation -- Etat Sb1: Synchronisation sur la voie 1 -- Etat Sbn1:Synchronisation sur une voie k , mise jour (maj) de la valeur d -- Etat Sbn2:Synchronisation sur une voie k , remise 0 de maj -- Etat Sbn3:Cas d'une desynchronisation --***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all;--Bibliothque utilis pour un nombre signed entity dephaseur_pncode is port ( clk40nco :in std_logic; rst :in std_logic; maj: out std_logic; k_n : in std_logic_vector(14 downto 0); d : out std_logic_vector(0 to 11) ); end dephaseur_pncode; architecture arch of dephaseur_pncode is type sync0_type is(repos, sb1, sbn1, sbn2, sbn3); signal Sync0 : Sync0_type; signal d_table:std_logic_vector(0 to 11);
begin d_table <= x"800" when(k_n="000000000000001") else x"b00" when(k_n="000000000000010") else --X"900" x"b00" when(k_n="000000000000100") else x" b00" when(k_n="000000000001000") else x"700" when(k_n="000000000010000") else x"E00" when(k_n="000000000100000") else x"500" when(k_n="000000001000000") else--X500 x"b00" when(k_n="000000010000000") else x"D00" when(k_n="000000100000000") else x"300" when(k_n="000001000000000") else x"600" when(k_n="000010000000000") else x"C00" when(k_n="000100000000000") else x"100" when(k_n="001000000000000") else x"200" when(k_n="010000000000000") else x"400" when(k_n="100000000000000") ; p1:process(clk40nco,rst)
-204-
ANNEXES
begin if (rst = '1') then d <= x"800"; Sync0 <= repos; maj <= '0'; elsif rising_edge(clk40nco) then case Sync0 is when repos => maj <= '0'; d <= x"800"; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sb1; else Sync0 <= sbn1; end if; when sb1 => d <= x"800"; maj <= '0'; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sb1; else Sync0 <= sbn1; end if; when sbn1 => d <= d_table; maj <= '1'; Sync0 <= sbn2; when sbn2 => d <= d_table; maj <= '0'; if(k_n="000000000000000" or k_n="000000000000001" ) then Sync0 <= sbn3; else Sync0 <= sbn2; end if; when sbn3 => d <= d_table; maj <= '0'; if(k_n="000000000000001" or k_n="000000000000000" ) then Sync0 <= sbn3; else Sync0 <= sbn1; end if; when others => null; end case; end if; end process; end arch; --************************************************************************** -- Fonction Test de seuil --02/11/2004 --************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity test_seuil is port ( detect_front : in std_logic;--01/04--signal de dbut de symbole data_desetalee_clk160nco : in signed(M downto 0);--signal issu du I&D SEUIL : in signed(15 downto 0);
-205-
ANNEXES
correlation:out std_logic; data_av_decodee_clk160nco: out std_logic --signal entre 0 et 1 en fonction du bit de signe ); end test_seuil; architecture arch of test_seuil is signal valeur_seuil_max: signed(M downto 0); signal data_correle :std_logic ; --affectation du bit de signe begin detection :process begin wait until detect_front='1'; if (detect_front'EVENT and detect_front ='1') then valeur_seuil_max <= abs (data_desetalee_clk160nco); if(valeur_seuil_max > SEUIL) then data_av_decodee_clk160nco <= not(data_desetalee_clk160nco(M));--permet d'obtenir selon le bit de signe un 1 ou 0 pour la sortie correlation <='1'; else data_av_decodee_clk160nco <= '1'; correlation <= '0'; --Signal decorrele end if; end if; end process detection; end arch; --**************************************************************************************** -- Filtre de correlation avec fifo -- Filtre de correlation o l'on mmorise l'entre . Ceci permet facilement de changer l'quation aux diffrences -- 2 process fifo une pour l'entre (X(n)) et l'autre pour la sortie (Y(n)) -- Eq diffrence du filtre de corrlation -- Y(n)=6 X(n)+4 X(n-1)- Y(n-1) .Les cstes 4 et 6 sont definit pour 1s --20/05/2005 Test de la version complte ---*************************************************************************************** library IEEE; library std; use IEEE.STD_LOGIC_1164.all; use IEEE.numeric_std.all; entity filtre_fifobis is port ( clk160nco: in std_logic; rst: in std_logic; data_absolu_clk160nco : in signed(9 downto 0); --data_filtre_clk160nco: out signed(9 downto 0) data_filtre_clk160nco: out signed(10 downto 0) ); end filtre_fifobis; architecture arch of filtre_fifobis is --dclaration des variables de la fifo pour le filtre avec constantes CT1(12)/CT2(998)/CT3(1024) signal data_out_clk160nco : signed(10 downto 0); signal fifo_x_n_clk160nco : signed(10 downto 0); --Signal de droite de la fifo_X --06/04/2005
-206-
ANNEXES
signal fifo_x_nm_clk160nco : signed(10 downto 0); --signal de gauche de la fifo_X(n-1)--06/04/2005 signal fifo_y_nm_clk160nco : signed(10 downto 0);--Signal de droite de la fifo_Y --06/04/2005 signal fifo_y_n_clk160nco : signed(10 downto 0);--signal de gauche de la fifo_y(n-1) --06/04/2005 signal dump_r_rideau1:std_logic; signal dump_r_rideau2:std_logic; signal somme : signed(10 downto 0); begin --Dfinition de la fifo pour X fifo_x:process(clk160nco,rst) begin if (rst = '1') then fifo_x_n_clk160nco <= (others =>'0');--def X(n)--06/04/2005 fifo_x_nm_clk160nco <= (others =>'0');--def X(n-1)--06/04/2005 elsif rising_edge(clk160nco) then if(data_absolu_clk160nco(9) = '1') then fifo_x_nm_clk160nco(10 downto 0) <= data_absolu_clk160nco(9) & '1' & data_absolu_clk160nco(8 downto 0) ; else fifo_x_nm_clk160nco(10 downto 0) <= data_absolu_clk160nco(9) & '0' & data_absolu_clk160nco(8 downto 0) ; end if; --If data_absolu fifo_x_n_clk160nco <= fifo_x_nm_clk160nco ;
end if; --If rst end process fifo_x; --Dfinition de la fifo pour Y fifo_y:process(clk160nco,rst) begin if (rst = '1') then fifo_y_n_clk160nco <= (others =>'0');--def y(n) fifo_y_nm_clk160nco <= (others =>'0');--def y(n-1) elsif rising_edge(clk160nco) then
fifo_y_nm_clk160nco <= data_out_clk160nco; fifo_y_n_clk160nco <= fifo_y_nm_clk160nco ; end if; --If rst end process fifo_y; --Dfinition de l'quation aux diffrences somme <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco); --data_out_clk160nco <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco) / 2;--Bonne valeur pour le gain data_out_clk160nco <= ( fifo_x_nm_clk160nco + fifo_x_n_clk160nco) / 2; --Affectaiton sur 10 bits --data_filtre_clk160nco<=data_out_clk160nco(10 downto 1); data_filtre_clk160nco <= data_out_clk160nco; end arch;
-207-
ANNEXES
-- ************************************************************************************ -- NUMERICAL CONTROLLED OSCILLATOR ( NCO ) -- oscillateur control numriquement permet d'avoir en fonction des donnes -- 02/11/2004 ---Mise jour des fichiers --01/04/2005 --Mise jour des fichiers -- Sortie: Horloge dont la priode varie en fonction du mot d'entre --20/05/2005 Test de la version complte -- ************************************************************************************ library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity nco is port ( clk_640 : in std_logic; rst : in std_logic; -discri_moyennee_clk160nco : in signed (10 downto 0); discri_moyennee_clk160nco : in signed (9 downto 0); clk_NCO : out std_logic ); end nco; architecture arch of nco is signal n : signed(15 downto 0); --signal n : signed(13 downto 0); signal clk_out2 :std_logic:='0'; signal clk_NCO1 :std_logic:='0'; signal clk_out1 :std_logic:='0'; signal discri_divise : signed (9 downto 0); begin -- processus d'incrmentation du registre de la valeur de l'entre chaque front montant p1 :process(clk_640, rst) begin if (rst = '1') then clk_NCO1 <='1'; n (15 downto 0) <= (others => '0'); elsif rising_edge(clk_640) then n <= n+16384+discri_moyennee_clk160nco; --16384 = 2(exp14) -- affectation de la sortie (bit de poids fort) clk_NCO1 <= n(15); end if;--fin du clock end process p1; p : process(clk_NCO1) begin if falling_edge(clk_NCO1) then clk_out1 <= not clk_out1; end if; end process p; p3 : process(clk_out1) begin if falling_edge(clk_out1) then
-208-
ANNEXES
clk_out2 <= not clk_out2; end if; end process p3; clk_NCO <= clk_NCO1; discri_divise(9 downto 0) <= "11" & discri_moyennee_clk160nco(8 downto 1) when(discri_moyennee_clk160nco(9) = '1') else "00" & discri_moyennee_clk160nco(8 downto 1); end arch;
--**************************************************************************** -- GENERATEUR DE PN CODE du rcepteur pour synchronisation N branches ---***************************************************************************** library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.NUMERIC_STD.all; use work.parameter.all; entity gene_code_r_N_synchro is port ( rst:in std_logic; clk40nco : in std_logic; cn_code : in std_logic_vector(11 downto 0); synchro_clk160nco: in std_logic ; maj: in std_logic; d: in std_logic_vector(0 to 11); code_clk40nco : out std_logic; dump_clk40nco : out std_logic ); end gene_code_r_N_synchro; architecture arch of gene_code_r_N_synchro is signal a : std_logic_vector (0 to 11); signal q : std_logic_vector (1 to 11); signal dump1_e_clk40e :std_logic; -- initialisation du registre des bascules d --signal d : std_logic_vector(0 to 11) := "100000000000"; signal d_int : std_logic_vector(0 to 11); signal quatre : unsigned(1 downto 0);--signal pour diviser par 4 begin --calcul des valeurs binaires rinjectes dans le registre : a(0) <= cn_code(0) and d_int(0); a(1) <= cn_code(1) and d_int(0); a(2) <= cn_code(2) and d_int(0); a(3) <= cn_code(3) and d_int(0); a(4) <= cn_code(4) and d_int(0); a(5) <= cn_code(5) and d_int(0); a(6) <= cn_code(6) and d_int(0); a(7) <= cn_code(7) and d_int(0); a(8) <= cn_code(8) and d_int(0); a(9) <= cn_code(9) and d_int(0); a(10) <= cn_code(10) and d_int(0); a(11) <= cn_code(11) and d_int(0); --calcul des prochaines valeurs du registre : q(1) <= d_int(1) xor a(0); q(2) <= d_int(2) xor a(1);
-209-
ANNEXES
q(3) <= d_int(3) xor a(2); q(4) <= d_int(4) xor a(3); q(5) <= d_int(5) xor a(4); q(6) <= d_int(6) xor a(5); q(7) <= d_int(7) xor a(6); q(8) <= d_int(8) xor a(7); q(9) <= d_int(9) xor a(8); q(10) <= d_int(10) xor a(9); q(11) <= d_int(11) xor a(10); -- initialisation du registre --processus de raffectation du registre : p1 : process(clk40nco,rst) begin if(rst = '1') then d_int <= "100000000000"; dump1_e_clk40e <= '0'; quatre <= "00"; elsif (rising_edge(clk40nco)) then quatre <= quatre + "01"; if(maj='1') then d_int <=d; end if; --gnration de l'horloge de bloquage : if q(1 to 11)&a(11)="100000000000" and maj='0' then -- and dump1_e_clk40e='0' then dump1_e_clk40e <= '1'; else dump1_e_clk40e<='0'; end if; if (quatre = "00" ) and maj='0' then --pour division par quatre --raffectation du registre: d_int(0) <= q(1); d_int(1) <= q(2); d_int(2) <= q(3); d_int(3) <= q(4); d_int(4) <= q(5); d_int(5) <= q(6); d_int(6) <= q(7); d_int(7) <= q(8); d_int(8) <= q(9); d_int(9) <= q(10); d_int(10)<= q(11); d_int(11)<= a(11); end if; end if; end process p1; dump_clk40nco<=dump1_e_clk40e; code_clk40nco<=d_int(0); end arch;
-210-
GLOSSAIRE
GLOSSAIRE
-211-
GLOSSAIRE
ASIC : Application-Specific Integrated Circuit AWGN : Additif White Gaussian Noise CAO : Conception assist par Ordinateur CDMA : Carrier Division Multiple Access DBPSK : Differential Quadrature Phase Shift Keying DSP : Digital Signal Processing DLL : Delay Locked Loop (boucle verrouillage de dlai) DS-SS : Direct Sequence Spread Spectrum FPGA : Field Programmable Gate Array Gp : Gain en traitement HDL : Hardware Description Language IP : Intellectual Property ( proprit intellectuelle) ISM : Industrial Scientific & Medical ITRS : International Technology Roadmap for Semiconductors LUT : Look Up Table M : Nombre dchantillons par symbole N : Longueur de PN-Code NCO : Numerical Controlled Oscillator (Oscillateur Numrique Contrl en Tension) PN-Code : Pseudo-Noise Code (Code pseudo-alatoire) RASE : Rapid Acquistion by Sequential Estimation RII : Rponse Impulsionnelle Infinie RTL : Register transfer language SNR : Signal Noise Ratio SOC : System On Chip TEB : Taux derreur sur le Bit TDL : Tau Dither Loop VHDL : VHSIC Hardware Description Language VHDL-AMS : VHDL Analog and Mixed Signal
-212-
RESUME
Etude et intgration numrique dun systme multicapteurs AMRC de tlcommunication bas sur un prototype virtuel utilisant le langage de haut niveau VHDL-AMS
Rsum : Lindustrie des composants et des modules lectroniques est oriente vers des systmes de plus en plus complexes et intgrs. Aujourdhui, la conception systme tend vers la conception multidisciplinaire et doit faire cohabiter sur une mme puce des fonctions mixtes spcifiques analogiques/numriques, des microprocesseurs et galement des interfaces logicielles. Le rcent standard VHDL-AMS (Very High Description Language Advanced and Mixed System) semble rpondre cette problmatique de conception, en ajoutant la modlisation des signaux discrets la gestion des signaux temps continus. Les travaux de thse prsents dans ce mmoire appliquent la notion de prototypage virtuel un systme multicapteurs et multiutilisateurs de communication hertzienne metteur/rcepteur dans la bande libre ISM. La premire partie prsente un tat de lart de la conception systme ainsi que les outils logiciels ddis. Par suite, tous les tages numriques et analogiques sont dvelopps sous le standard VHDL-AMS. Notre tude se focalise alors sur le choix de la topologie de lorgane de synchronisation et de poursuite, fonctions cls des communications talement de spectre. Afin de complter les bibliothques ddies aux tlcommunications en langage VHDL-AMS, un modle de canal AWGN est propos, intgrant un gnrateur de bruit (mthode mathmatique de Box-Muller) et un module de retard paramtrable. Enfin, un prototype de tests est dvelopp, bas sur une implantation des fonctions numriques dans un circuit FPGA, nous permettant dvaluer les performances dun tel systme en terme de dbit, de taux derreurs sur le bit et doccupation matrielle. Mots cls : Langage VHDL-AMS, prototypage virtuel, talement de spectre par squence directe, synchronisation srie, boucle verrouillage de dlai, circuit FPGA.
Study and digital integration of a CDMA multisensors telecommunications system based on a virtual prototype using VHDL-AMS high level language
Abstract : Today, requirements in system designs are extending more and more from electronic design (analogue and digital) to multidiscipline design. These current needs imply implementation of methodologies to optimize and to make the CAD product reliable. The recent VHDL-AMS standard seems to fit very well. This thesis presents an application of virtual prototype dedicated to a multisensor and multiuser DS-SS (Direct Sequence Spread Spectrum) transceiver system using ISM unlicensed band. The first part describes the state of the art of system design and software tools. After this, the whole digital and analogue stages will be developed under VHDLAMS standard. Our study will focus on the synchronization and tracking entity topology choice, which are the main functions of a spread spectrum communication device. In order to complete VHDL-AMS library dedicated to telecommunication, a model of AWGN channel including a noise generator (Box-Muller method) will be proposed. Finally, a hardware prototype will be developped, based on digital function implantations in a FPGA chipset allowing to assess such a system data rate, bit error rate and size performances. Key words : VHDL-AMS language, virtual prototype, Direct Sequence Spread Spectrum (DSSS), serial synchronization, Delay Locked Loop (DLL), FPGA circuit.
-213-