MEMOIRE de THESE - LATTIS

Transcription

MEMOIRE de THESE - LATTIS
N°
LABORATOIRE ‘I C A R E’ EA 3050
Ingénierie des Communications en informAtique, Réseaux et Electronique sans fil
MEMOIRE de THESE
DOCTORAT de L’UNIVERSITE de TOULOUSE II
Ecole Doctorale
‘Génie Electrique, Electronique et Télécommunication’
Spécialité : Electronique
Présenté par Madame Céline GUILLEMINOT
Maître ès Sciences
‘ÉTUDE ET INTÉGRATION NUMÉRIQUE D’UN SYSTÈME MULTICAPTEURS
AMRC DE TÉLÉCOMMUNICATION BASÉ SUR UN PROTOTYPE VIRTUEL
UTILISANT LE LANGAGE DE HAUT NIVEAU VHDL-AMS’
__________
Soutenue le 01 décembre 2005 devant le jury composé de :
Rapporteurs :
M. JB BEGUERET
M. P. FRAISSE
Examinateurs : M. A. CAZARRE
M. T. VAL
Directeur :
Co-directeur :
Invité :
M. JJ MERCIER
M. L. ANDRIEUX
M. E. CAMPO
Maître de Conférences-HDR à l’Université de Bordeaux I
Léonard de Vinci
Maître de Conférences-HDR à l’Université de Montpellier II
Professeur à l’Université de Toulouse III
Professeur à l’Université de Toulouse II
Professeur à l’Université de Toulouse II
Maître de Conférences à l’Université de Toulouse II
Maître de Conférences – HDR à l’Université de Toulouse II
Laboratoire de Recherche ‘ICARE’ EA 3050
I.U.T de Blagnac - 1, Place Georges Brassens – BP 60073
31 703 Blagnac cedex
Tél. : + 33 (0) 5 62 74 75 75
Fax : + 33 (0) 5 62 74 75 87
SOMMAIRE
TABLE DES MATIERES
INTRODUCTION GENERALE ............................................................................................ 1
I
CHAPITRE I : Problématique de la conception système............................................. 7
I.1
Etat de l’art de la conception système ............................................................................ 9
I.1.1 La conception système dans le contexte industriel .................................................... 9
I.1.1.1 Enjeux et constatations....................................................................................... 9
I.1.1.2 Méthodologie « classique » du développement ............................................... 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
Vérification et prototypage....................................................................... 15
I.1.2 Le prototypage virtuel .............................................................................................. 16
I.1.3 Les méthodologies de conception actuelles ............................................................. 17
I.1.3.1 Les changements de paradigmes ...................................................................... 17
I.1.3.2 Evolution des coûts [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-spécifiques ou ASIC pré-diffusés ................................ 21
I.2.1.1.2
Les circuits spécifiques ou ASIC pré-caractérisés ................................... 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 numérique ...................................................................................... 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 d’un langage propriétaire MAST.......................................... 30
I.3.3.3.2
Description d’un 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 différents outils........................................................ 31
I.3.3.4 Méthodologies et outil de conception retenus.................................................. 32
I.3.3.4.1
Méthodologie m1 avec un langage propriétaire....................................... 33
I.3.3.4.2
Méthodologie m2 avec VHDL-AMS....................................................... 34
I.3.3.4.3
Comparaison des deux méthodologies..................................................... 34
I.4
Bilan ............................................................................................................................. 35
-I-
SOMMAIRE
II CHAPITRE II Vers la conception d’un système de télécommunications à étalement
de spectre................................................................................................................................. 37
II.1
Présentation du cahier des charges............................................................................... 39
II.2
Les systèmes de communication existants ................................................................... 39
II.2.1
Communications Radiofréquences dans les bandes 433 & 868 MHz. ................ 40
II.2.2
Les réseaux 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 réseaux 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 réseaux métropolitains sans fil (WMAN : Wireless Metropolitan Area
Network) et les réseaux étendus (WWAN : Wireless Wide Area Network) ....................... 42
II.2.4.1 WiMax.............................................................................................................. 42
II.2.4.2 MBWA ............................................................................................................. 42
II.2.4.3 Les réseaux mobiles (WWAN) ........................................................................ 42
II.2.5
Contraintes du milieu clos.................................................................................... 43
II.2.5.1 Les interférences radio ..................................................................................... 43
II.2.5.2 Le nombre d’utilisateurs................................................................................... 43
II.2.6
Comparatif des technologies de réseaux sans fil.................................................. 43
II.3
Description des éléments d’une chaîne de communication numérique ....................... 44
II.3.1
Chaîne de communication.................................................................................... 45
II.3.2
Le codage en ligne................................................................................................ 45
II.3.3
Choix d’une modulation numérique..................................................................... 46
II.3.3.1 Quelques définitions utiles ............................................................................... 46
II.3.3.1.1 Débit binaire............................................................................................. 46
II.3.3.1.2 Taux d’erreur sur les bits.......................................................................... 46
II.3.3.1.3 L’efficacité spectrale ................................................................................ 47
II.3.3.1.4 Définition de l’efficacité en puissance Eb/No.......................................... 47
II.3.3.1.5 La simplicité de réalisation ...................................................................... 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 méthodes d’accès........................................................................................... 51
II.3.5.1 Définition des méthodes d’accès...................................................................... 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 Critère de choix sur les méthodes d’accès ....................................................... 54
II.3.6
L’étalement de spectre ......................................................................................... 54
II.3.6.1 Principe............................................................................................................. 54
II.3.6.2 L’étalement de spectre par séquence directe.................................................... 56
II.3.6.2.1 Le principe de l’étalement de spectre par séquence directe ..................... 56
II.3.6.2.2 Les séquences pseudo-aléatoires.............................................................. 56
II.3.6.2.3 L’étalement à l’émission .......................................................................... 58
II.3.6.2.4 Le désétalement par corrélation ............................................................... 60
II.4
Caractéristiques retenues pour le système désiré ......................................................... 61
-II-
SOMMAIRE
II.5
Description fonctionnelle des fonctions à modéliser ................................................... 63
II.5.1
Principe de la modulation différentielle ............................................................... 64
II.5.2
Modélisation du générateur de PN Code.............................................................. 64
II.5.2.1 Principe de la génération des M –séquences.................................................... 64
II.5.2.2 Simulation sous le logiciel SABER ................................................................. 65
II.5.3
Modélisation de la fonction corrélation ............................................................... 68
II.5.3.1 Corrélation à l’émission ................................................................................... 68
II.5.3.2 Corrélation à la réception ................................................................................. 69
II.5.4
Modélisation de l’organe de synchronisation....................................................... 70
II.5.4.1 Problématique de la synchronisation d’un 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 d’acquisition ............................................. 72
II.5.4.2.1.1 L’acquisition par corrélation .............................................................. 72
II.5.4.2.1.2 L’acquisition par filtrage adapté......................................................... 73
II.5.4.2.1.3 L’organe de décision .......................................................................... 74
II.5.4.2.2 Les principaux organes d’acquisition....................................................... 74
II.5.4.2.2.1 Détecteur 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 théoriques des boucles de poursuite ................................ 78
II.5.4.3.1 DLL Cohérente......................................................................................... 79
II.5.4.3.2 La DLL Non Cohérente............................................................................ 80
II.5.4.3.3 La TDL (The Tau Dither Loop) ............................................................... 80
II.5.4.3.4 Comparatif des différents modèles de boucles de poursuite .................... 82
II.5.4.4 Choix de l’organe de synchronisation.............................................................. 83
II.5.4.4.1 Simulation de l’organe 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 d’acquisition ................................................................................. 87
II.5.4.5.3 Conclusion sur le choix des organes de synchronisation ......................... 88
II.6
Conclusion.................................................................................................................... 88
III
CHAPITRE III : Méthodologie et développement d’un 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 différentes descriptions possibles ...................................................... 94
III.2.3.1.2 La structure fondamentale d’un modèle 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 différentes classes d’objets ................................................................ 99
III.2.3.2.2.1 Terminal et nature ............................................................................. 99
III.2.3.2.2.2 Les quantités...................................................................................... 99
III.2.3.2.2.3 Le critère de solvabilité ................................................................... 100
III.3 Codage en langage VHDL-AMS de l’émetteur/récepteur ......................................... 100
III.3.1
Fonctions à implanter et caractéristiques ........................................................... 100
III.3.2
Les étages numériques ....................................................................................... 103
III.3.2.1
Description de l’émetteur ........................................................................... 103
III.3.2.1.1 Générateur de PN-Code ......................................................................... 103
III.3.2.1.2 Encodeur................................................................................................. 105
III.3.2.1.3 Fonction « Multiplieur » ........................................................................ 105
III.3.2.1.4 Résultats de simulation........................................................................... 106
III.3.2.2
Description du récepteur ............................................................................ 107
III.3.2.2.1 Récepteur sans synchronisation ............................................................. 107
III.3.2.2.1.1 Désétalement en réception .............................................................. 108
III.3.2.2.1.2 Test de donnée................................................................................. 109
III.3.2.2.1.3 Décodeur différentiel....................................................................... 110
III.3.2.2.1.4 Résultats de simulations .................................................................. 111
III.3.2.2.2 Synchronisation...................................................................................... 112
III.3.2.2.3 L’organe de poursuite (DLL) ................................................................. 112
III.3.2.2.3.1 Le Discriminateur............................................................................ 113
III.3.2.2.3.2 Le Filtre numérique......................................................................... 115
III.3.2.2.3.3 L’oscillateur numérique controlé en tension................................... 119
III.3.2.2.3.4 Le Générateur de PN-Code du récepteur ........................................ 122
III.3.2.2.4 Synchronisation à N branches ................................................................ 123
III.3.2.2.4.1 L’organe de sélection ...................................................................... 124
III.3.2.2.4.2 Le générateur de PN-Code adapté à la synchronisation N branches.
126
III.3.2.2.4.3 Résultats de simulation du récepteur en bande de base .................. 127
III.3.3
Description des parties analogiques ................................................................... 128
III.3.3.1
Description des parties radio-fréquences ................................................... 128
III.3.3.1.1 La modulation et démodulation BSPK................................................... 128
III.3.3.1.1.1 La modulation BPSK ...................................................................... 128
III.3.3.1.1.2 La démodulation BPSK................................................................... 129
III.3.3.1.2 Les Filtres analogiques........................................................................... 130
III.3.3.1.2.1 Choix des paramètres des filtres analogiques ................................. 130
III.3.3.1.2.2 Description des filtres implantés en VHDL-AMS .......................... 130
III.3.3.2
Le canal AWGN (Additif White Gaussian Noise)..................................... 130
III.3.3.2.1 Génération d’un bruit blanc Gaussien.................................................... 131
III.3.3.2.2 Le délai dans le canal ............................................................................. 132
III.3.3.2.3 Implantation d’un rapport signal sur bruit paramétrable........................ 133
III.3.4
Description du Convertisseur Analogique / Numérique .................................... 135
III.4 Résultats de simulation............................................................................................... 135
III.4.1
Simulation de la fonction d’autocorrélation....................................................... 135
III.4.2
Simulation de la chaîne complète Emetteur/Récepteur...................................... 136
IV
CHAPITRE 4 : Etude et développement de la maquette Emetteur-Récepteur . 139
IV.1
IV.2
Introduction ................................................................................................................ 141
Cible d’implantation................................................................................................... 141
-IV-
SOMMAIRE
IV.2.1 Description du FPGA ......................................................................................... 142
IV.2.2 Le logiciel de commande Quartus II .................................................................. 143
IV.2.3 Etapes d’implantation......................................................................................... 143
IV.3 Les modules périphériques spécifiques développés................................................... 144
IV.3.1 Paramétrage du canal ......................................................................................... 145
IV.3.1.1
Le retard dans le canal................................................................................ 145
IV.3.1.2
Génération du bruit dans le canal............................................................... 147
IV.3.2 Paramétrage du débit.......................................................................................... 148
IV.3.3 Module de calcul de TEB................................................................................... 148
IV.3.4 Interface logicielle.............................................................................................. 149
IV.4 Résultats de synthèse.................................................................................................. 150
IV.5 Evaluation des performances mesurées...................................................................... 151
IV.5.1 Test en milieu non bruité.................................................................................... 152
IV.5.1.1
Emetteur-récepteur Simple Branche .......................................................... 152
IV.5.1.1.1 Mesures pour différents longueurs de codes.......................................... 152
IV.5.1.1.2 Mesures pour différents délais ............................................................... 152
IV.5.1.2
Emetteur-récepteur 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 numériques de l’émetteur.......................... Erreur ! Signet non défini.
ANNEXES 3 . Fonctions transmission .................................................................................. 185
ANNEXE.4. Fonctions du récepteur...................................................................................... 189
GLOSSAIRE......................................................................................................................... 211
-V-
SOMMAIRE
Listes des figures
Figure 0. 1 Exemple des besoins en communication sans fil en milieu clos.............................. 3
Figure I. 1. Evolution des bénéfices d’une entreprise en fonction de l’évolution dans le temps
.................................................................................................................................................. 10
Figure I. 2. Evolution et prévision de la complexité en terme de conception et de technologie,
selon le consortium de fabrication de puces SEMATECH [SEMAT] ...................................... 11
Figure I. 3. Coût total de conception pour une méthodologie RTL [ITRS03]. ........................ 11
Figure I. 4. Flot de conception d’un circuit intégré classique................................................. 12
Figure I. 5. Cycle de conception en V. ..................................................................................... 14
Figure I. 6. Effet de prototypage sur la conception d’un système monopuce. ......................... 16
Figure I. 7. Représentation des changements de paradigmes avec la complexité des
composants [BORE99]............................................................................................................. 18
Figure I. 8. Impact des technologies de conception sur les coûts de production. ................... 19
Figure I. 9. Approche du CODESIGN pour la fabrication d’un prototype. ............................ 20
Figure I. 10. Principe de l’architecture d’un circuit FPGA [MLYN01].................................. 22
Figure I. 11. Intégration d’une carte électronique (exemple de fonction de carte mère)........ 23
Figure I. 12. Description générique d’un système embarqué .................................................. 25
Figure I. 13. Description du passage des modèles de Simulink en modèle VHDL. ................. 27
Figure I. 14. Description de la méthodologie de conception N°1 : m1 ................................... 33
Figure I. 15. Description de la méthodologie de conception N°2 : m2 ................................... 34
Figure II. 1. Représentation schématique d’un système multi-capteurs pour un environnement
clos ........................................................................................................................................... 39
Figure II. 2. Principaux éléments d’une chaîne de transmission numérique. ......................... 45
Figure II. 3. Représentation des codes sources selon leur densité spectrale........................... 45
Figure II. 4. Exemple de valeurs de taux d’erreurs par bit. .................................................... 47
Figure II. 5. Modèle du canal AWGN ...................................................................................... 49
Figure II. 6. Représentation d’une distribution gaussienne..................................................... 50
Figure II. 7. Représentation du principe du canal multi-trajets .............................................. 51
Figure II. 8 .Représentation temps –fréquence du FDMA....................................................... 52
Figure II. 9. Représentation temps –fréquence du TDMA ....................................................... 53
Figure II. 10. Représentation temps / fréquence du CDMA..................................................... 53
Figure II. 11. Spectre du signal étalé en FH-SS. ..................................................................... 55
Figure II. 12. Spectre du signal étalé en DS-SS....................................................................... 55
Figure II. 13. Représentation schématique des principales fonctions ..................................... 56
Figure II. 14. Exemple d’un codage par étalement de spectre par séquence directe.............. 57
Figure II. 15. Fonction d'auto corrélation pour N=15 (Ts=375ns, Tc=25ns). ....................... 58
Figure II. 16. Principe de l’étalement de spectre à l’émission. ............................................... 58
Figure II. 17. Densité spectrale de puissance du signal de donnée et du signal de donnée étalé
(N=3)........................................................................................................................................ 60
Figure II. 18. Principe de la décorrélation à la réception....................................................... 60
Figure II. 19. Schéma de principe global du système Emetteur/Récepteur ............................. 62
Figure II. 20. Principe des fonctions à modéliser.................................................................... 63
Figure II. 21. Générateur de séquence rebouclé de type Galois. ............................................ 65
Figure II. 22.Générateur Galois avec les modules de configuration....................................... 66
Figure II. 23. Exemple d’un modèle de générateur de Galois................................................. 67
Figure II. 24. Modèle de l’émetteur avec le corrélateur.......................................................... 68
Figure II. 25. Principales formes d’ondes de l’émetteur avec le corrélateur.......................... 69
-VI-
SOMMAIRE
Figure II. 26. Schéma de principe pour la corrélation numérique en réception. .................... 69
Figure II. 27. Principales formes d’ondes pour le corrélateur au niveau du récepteur.......... 70
Figure II. 28. Schéma de principe de l’organe « Acquisition/ poursuite ».............................. 71
Figure II. 29. Organigramme des différentes possibilités d’acquisition. ................................ 71
Figure II. 30. Synchronisation par corrélation........................................................................ 72
Figure II. 31. Synchronisation par filtrage adapté. ................................................................. 73
Figure II. 32. Représentation schématique de l’organe de décision. ...................................... 74
Figure II. 33. Principe d’un détecteur de vraisemblance. ....................................................... 75
Figure II. 34. Principe d’une détection par maximum de vraisemblance avec corrélateur. ... 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. Schéma de principe d’une boucle de poursuite. ................................................ 78
Figure II. 39. Schéma de principe de la DLL cohérente.......................................................... 79
Figure II. 40. Schéma de principe d’une DLL non cohérente.................................................. 80
Figure II. 41. Schéma de principe de la TDL........................................................................... 81
Figure II. 42. Modèle de la synchronisation SERIE. ............................................................... 84
Figure II. 43. Signaux en sortie des corrélateurs et signal de contrôle................................... 85
Figure II. 44. Schéma fonctionnel de la structure RASE. ........................................................ 85
Figure II. 45. Sortie du corrélateur 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 d’acquisition SERIE et
RASE......................................................................................................................................... 87
Figure II. 47. Mesure du temps d’acquisition pour les 2 structures d’acquisition.................. 88
Figure III. 1. L’organisation d’un modèle VHDL.................................................................... 95
Figure III. 2. Structure d’un fichier VHDL.............................................................................. 97
Figure III. 3. Illustration de la quantité de branche pour le domaine électrique.................. 100
Figure III. 4. Synoptique du modèle de l’émetteur/ récepteur à étalement de spectre. ......... 101
Figure III. 5. Synoptique de codage du système émetteur/récepteur en VHDL-AMS............ 102
Figure III. 6. Schéma d’implantation de l’émetteur............................................................... 103
Figure III. 7. Schéma de principe du générateur de codes aléatoires ................................... 104
Figure III. 8. Organigramme du codage du générateur de PN-Code.................................... 104
Figure III. 9. Organigramme pour la fonction Encodeur différentiel ................................... 105
Figure III. 10. Résultats de simulation de l’organe Emetteur ............................................... 106
Figure III. 11. Schéma de l’implantation du récepteur simple branche. ............................... 107
Figure III. 12. Schéma de l’intégrateur/bloqueur.................................................................. 108
Figure III. 13. Organigramme de la fonction intégration/Blocage. ...................................... 109
Figure III. 14. Organigramme de la fonction test donnée. .................................................... 110
Figure III. 15. Organigramme du décodeur différentiel........................................................ 110
Figure III. 16. Résultats de simulation sous le logiciel ModelSim. ..................................... 111
Figure III. 17. Synoptique de la fonction Synchronisation simple (une branche). ................ 112
Figure III. 18. Synoptique de l’organe de poursuite.............................................................. 113
Figure III. 19. Simulation des principaux signaux de l’organe de poursuite sous ModelSim.
................................................................................................................................................ 114
Figure III. 20. Définition d’un filtrage numérique................................................................. 115
Figure III. 21. Structure du filtre de boucle numérique......................................................... 117
Figure III. 22. (a).Réponse impulsionnelle h(t) ..................................................................... 117
Figure III. 23. Processus pour le filtre numérique de la boucle à verrouillage de délai. ..... 118
Figure III. 24. Simulation d’un filtre numérique RII. ............................................................ 118
Figure III. 25. Schéma de principe pour l’oscillateur numérique contrôlé........................... 119
-VII-
SOMMAIRE
Figure III. 26. Evolution du registre du NCO pour deux valeurs d’entrée, dans le cas d’un
registre de 4 bits..................................................................................................................... 120
Figure III. 27. Représentation 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 l’organe NCO en langage VHDL............................................ 122
Figure III. 30. Structure du générateur de PN-Code de récepteur........................................ 122
Figure III. 31. Représentation de la fonction d’autocorrélation pour chaque branche de
synchronisation (Cas N=7) décalée d’un temps chip. ........................................................... 123
Figure III. 32. Structure du récepteur pour une synchronisation comptant N branches....... 124
Figure III. 33. Description du fonctionnement de l’organe sélection.................................... 125
Figure III. 34. Simulation de l’organe déphaseur et du nouveau générateur de PN-Code... 126
Figure III. 35. Organigramme du générateur de PN-Code pour une synchronisation N
branches. ................................................................................................................................ 126
Figure III. 36. Simulation du récepteur dans le cas d’une synchronisation 15 branches. .... 127
Figure III. 37. Schéma global des étages radio-fréquences pour l’émission et la réception. 128
Figure III. 38. Organigrammes de fonctions composant la modulation BPSK. .................... 128
Figure III. 39. Résultats de simulation du modulateur BPSK................................................ 129
Figure III. 40. Démodulateur BPSK utilisé à la réception. ................................................... 129
Figure III. 41. Résultats de simulation en sortie du démodulateur BPSK. ............................ 129
Figure III. 42. Description fonctionnelle du module du canal AWGN. ................................. 131
Figure III. 43. Organigramme de la génération d’un bruit blanc gaussien. ......................... 132
Figure III. 44. Densité de probabilité à l’aide du modèle VHDL-AMS et du modèle
mathématique sous MATLAB. ................................................................................................ 132
Figure III. 45. Structure interne du canal AWGN paramétrable........................................... 133
Figure III. 46. Simulation des différents signaux du module « CANAL AWGN ». ................ 134
Figure III. 47. Représentation du bruit gaussien avec différents niveaux de bruits. ............. 134
Figure III. 48. Fonction d’autocorrélation théorique et simulée pour N=15........................ 136
Figure III. 49. Résultats de simulation des principaux signaux de l’émetteur/récepteur. ..... 137
Figure IV. 1. Carte de développement NIOS EXCALIBUR. .................................................. 142
Figure IV. 2. Méthodologie pour un FPGA de la famille ALTERA ....................................... 143
Figure IV. 3. Synoptique du système de tests du FPGA......................................................... 144
Figure IV. 4 : Représentation des différents délais commandés dans le canal. .................... 145
Figure IV. 5 : Schéma 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/récepteur avec retard programmable 147
Figure IV. 8. Circuit analogique réalisant la fonction bruit.................................................. 148
Figure IV. 9. Capture d’écran de l’interface graphique de commande FPGA. .................... 149
Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de l’émetteur (a)
et du récepteur (b). ................................................................................................................. 151
Figure IV. 11. Chronogrammes mesurés pour différentes longueurs de code N=7,N=15 et
N= 31...................................................................................................................................... 152
Figure IV. 12. Chronogramme système corrélé dans le cas sel =11. .................................... 152
Figure IV. 13. Chronogramme système non corrélé.............................................................. 153
Figure IV. 14. Représentation du temps d’accrochage(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 d’un niveau de bruit de 50mV en sortie du canal..... 155
Figure IV. 18. Chronogramme du système avec une tension de bruit de 1V. ........................ 156
-VIII-
SOMMAIRE
Figure IV. 19. Mesure de TEB du récepteur simple implanté sur le FPGA. ......................... 156
Figure 0. 2 . Architecture en couches du modèle OSI........................................................... 162
-IX-
SOMMAIRE
-X-
INTRODUCTION GENERALE
INTRODUCTION GENERALE
-1-
INTRODUCTION GENERALE
-2-
INTRODUCTION GENERALE
A l’heure actuelle, le marché des composants électroniques est de plus en plus complexe.
En effet, les systèmes électroniques peuvent comprendre au sein d’une même puce aussi bien
des technologies numériques et analogiques exigeant des arbitrages matériel–logiciel que des
fonctions mécaniques, optiques ou biochimiques. Les concepteurs d’aujourd’hui doivent alors
gérer des systèmes qui ne sont plus exclusivement électroniques, mais pluridisciplinaires. Les
développeurs doivent donc concevoir des circuits hétérogènes (analogique-numérique,
multiples domaines d’applications, matériel/logiciel…) qui demande un ensemble de
compétences difficiles à réunir au sein d’une même équipe de concepteurs.
A ces difficultés de conception s’ajouteront les contraintes toujours plus fortes du marché
actuel, qui poussent à réduire 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. Dès lors, industriels et laboratoires de
recherche ont décidé de mener des recherches conjointes, qui ont vu l’émergence de
plateformes de prototypage virtuel. Dans tous les domaines de l’industrie : aéronautique,
automobile, électronique grand public, la prise en compte des critères de conception toujours
plus nombreux impose de multiplier les angles de vision d’un produit. Les prix de conception
de prototype, jusqu’alors réels, sont en effet considérables. Dès lors, les avantages du
prototype virtuel sont évidents : les performances des simulations mixtes numériqueanalogique et des outils graphiques permettent de produire un prototype virtuel dans des
délais plus courts, et à un coût plus faible que celui du prototype réel.
Parallèlement, l’évolution de l’électronique numérique a permis ces dernières années une
expansion rapide des télécommunications sans fil dans le domaine spatial ou dans la
téléphonie mobile. Dernièrement, les besoins en systèmes fonctionnant dans les espaces clos
ont beaucoup progressé (cf. Figure 0.1) ; la multiplication des systèmes électroniques au sein
de l’habitat ou du véhicule automobile par exemple ont nécessité le développement de
systèmes de communication adaptés pour relier les calculateurs, les capteurs et les actionneurs
répartis dans un espace restreint. Ces systèmes permettent de limiter les câblages et par
conséquent d’augmenter la souplesse d’utilisation.
Besoins et applications
Habitat
• Développement
domotique
• Téléphone
• Centrale d’alarme
• Industrie
Automobile
• Communication vers
Internet
• Connaissance en temps réel
de paramètres (pression des
pneus , température moteur)
Médecine
• Soins de première urgence
• Surveillance à domicile
Prototypage virtuel
Figure 0. 1 Exemple des besoins en communication sans fil en milieu clos.
Les travaux présentés dans ce mémoire s’inscrivent dans la volonté de développer un
prototype mixte de communication sans fil. Son rôle est de surveiller, administrer et
commander un espace clos basé sur un système multicapteurs. Le système de communication
sera donc capable de transmettre aussi bien des données à faibles débits (inférieurs à quelques
-3-
INTRODUCTION GENERALE
kbit/s) de type capteur de température, de présence, que des données nécessitant de forts
débits dans le cas d’une transmission de voix ou de données vidéo. La technique de
communication qui a été retenue est celle par étalement de spectre par séquence directe (DSSS) dont les propriétés apportent certains avantages pour un environnement clos. Des travaux
antérieurs [BOUR00] [MELE01] ont permis, à l’aide du logiciel de simulation
comportementale SABER de modéliser le système communicant. Une étude du modèle en
environnement idéal a validé les différentes fonctions du système mixte. Par la suite, des
travaux complémentaires ont permis une implantation ASIC des fonctions d’étalement et de
désétalement seules.
Les travaux présentés dans ce mémoire constituent une continuité directe des travaux
précédents. Notre souci est de répondre aux besoins actuels de la conception système par
ordinateur, que sont l’optimisation, et la fiabilisation du produit au niveau de la conception
assistée par ordinateur. Dans ce cadre, notre démarche de développement dans cette thèse
repose sur une plateforme de prototypage virtuel utilisant un langage de haut niveau,
permettant de décrire la conception de la totalité des circuits mixtes analogique-numérique
tant en émission qu’en réception. Pour cela, nous avons axé nos recherches sur la description
des fonctions analogiques –numériques en vue d’une intégration sur un circuit programmable.
Une première partie de ce mémoire présente les enjeux dans le milieu industriel de la
conception. Nous décrirons tout d’abord les méthodologies classiques de développement et
les différentes techniques de vérification en détaillant plus particulièrement celle par
prototypage virtuel. Ces méthodes ne correspondant plus au marché, nous définirons les
méthodologies de conception actuelles. Après avoir dressé l’état de la conception système,
nous listerons les cibles matérielles de conception. Nous confronterons deux types de cibles
en terme d’application et d’architecture, pour retenir celle qui correspond le mieux à la
réalisation d’un prototype. Nous définirons alors l’outil logiciel de conception adéquat pour
un système mixte.
La seconde partie de ce mémoire présente le cahier des charges du système multicapteurs.
Après une étude sur les systèmes de communication existants, nous comparons les
caractéristiques techniques d’une chaîne de communication numérique afin de justifier les
solutions de modulations et de codage retenues pour la réalisation de notre système. Nous
accorderons un intérêt particulier à la méthode d’accès au canal. Nous serons donc en mesure
de proposer un schéma fonctionnel du modèle émetteur/récepteur. Une étude complémentaire
fera état de diverses techniques de synchronisation et poursuite. Plus particulièrement, nous
comparerons différentes architectures de synchronisation et poursuite en environnement
bruité et nous en définirons leurs performances.
Après avoir établi l’architecture des différents organes de notre système de
communication émetteur/récepteur, les étages numériques et analogiques sont présentés dans
la troisième partie de ce mémoire. Pour cela, nous aurons à définir le langage de haut niveau
HDL (High Description Language) pour le codage des fonctions numériques et analogiques.
A partir de ce langage, nous présenterons les différents fonctions numériques et analogiques
mises en jeu tant au niveau de l’émetteur que du récepteur : encodage, générateur de PNCode, fonctions étalement/désétalement, organe de poursuite, boucle à verrouillage de délai,
canal, modulation/démodulation. Les simulations fonctionnelles nous permettront de choisir
la topologie des étages numériques et analogiques, et de fixer l’architecture finale de notre
modèle.
Disposant alors des fichiers sources, la dernière partie de ce mémoire portera sur la
réalisation d’une maquette émetteur/récepteur en bande de base. Nous définirons tout d’abord
la cible de conception choisie et la procédure de conception pour un circuit FPGA. Nous
-4-
INTRODUCTION GENERALE
présenterons le synoptique de notre platine de tests et développerons plus particulièrement les
modules spécifiques associés. Après avoir indiqué les résultats de synthèse, nous évaluerons
les performances en milieu idéal (non bruité) ainsi qu’en milieu bruité. Nous mesurerons plus
particulièrement la latence de notre circuit en fonction des séquences du code d’étalement et
le taux d’erreur sur le bit associé.
-5-
CHAPITRE I : Problématique de la conception système
-6-
CHAPITRE I : Problématique de la conception système
I
CHAPITRE I : Problématique de la conception système
Résumé
Ce chapitre contient un état de l’art de la conception système et les solutions techniques actuelles. Pour
comprendre la problématique de conception système, nous présentons dans ce chapitre les méthodologies de
conception actuelles et le choix de l’outil 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 l’art de la conception système....................................................................................................... 9
La conception système dans le contexte industriel............................................................................... 9
Le prototypage virtuel........................................................................................................................ 16
Les méthodologies 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-
CHAPITRE I : Problématique de la conception système
-8-
CHAPITRE I : Problématique de la conception système
I.1 Etat de l’art de la conception système
Dans ce premier chapitre, nous aborderons les différentes notions de la conception
système. Pour cela nous avons articulé notre chapitre sur trois thèmes qui sont : la
problématique de la conception système, la technologie et les outils de conception.
Ainsi une première partie s’attachera à mettre en avant les enjeux industriels actuels pour
la conception de systèmes électroniques. Ces systèmes devenant de plus en plus complexes,
nous verrons que de nouvelles méthodologies de conception ont été développées pour
diminuer le cycle de conception habituel. Nous décrirons une des solutions, sur laquelle se
sont focalisés les industriels, qui est le prototypage.
La deuxième partie sera dédiée à une étude sur les cibles de conception existantes que
nous compléterons par une prospection de ces composants issus des différents constructeurs.
Une dernière partie présentera une étude sur les outils de conception permettant de
justifier l’utilisation d’un langage pluridisciplinaire. Nous développerons ensuite deux
méthodologies de conception pour des systèmes mixtes, l’une est basée sur un langage
propriétaire et l’autre sur un langage issu de normalisation. Leur comparaison permettra de
définir le langage le plus adapté à notre système de communication.
I.1.1La conception système dans le contexte industriel
I.1.1.1
Enjeux et constatations
Sans nous en rendre compte, nous utilisons actuellement tous de nombreux systèmes
embarqués. En effet de nos jours, ces systèmes électroniques ont été introduits dans de
nombreux domaines d’applications tels que l’automobile, l’avionique, les systèmes
multimédia, les appareils électroménagers ou bien des terminaux de communication sans fil.
Les concepteurs doivent donc gérer les développements de systèmes électroniques embarqués
multi-disciplinaires et multi-processeurs. Ainsi, depuis quelques années, le marché des
composants électroniques est orienté vers des produits grand public qui combinent aussi bien
la téléphonie que le multimédia : Téléphone mobile avec appareil photos, PDA (Personal
Digital Assistants) avec systèmes GPS (Global Positioning System), jeux ou lecteurs vidéos
… . Pour cet exemple les industriels devront bientôt être capable de réunir au sein d’un
unique objet aussi bien les fonctions de téléphone, de navigateur internet, d’appareil photo
numérique, d’écran couleur et de lecteurs multimédia. La complexité ne cesse d’augmenter
pour la conception de ce genre de produit. La solution pour la combinaison de ces différentes
fonctions se trouve dans un premier temps dans la technologie du transistor qui est la
fondation du circuit. En effet, comme nous pouvons le constater sur le Tableau I. 1,
l’évolution de la longueur de canal d’un transistor en technologie CMOS n’a cessé de
diminuer depuis ces 8 dernières années [CHAN99].
1997
1998
1999
2002
Technologie du process
0,35µm
0,25µm
0,18µm
0,13µm
Capacité d’intégration
sur silicium
Temps de conception
Applications typiques
200K -500K portes
logiques
18-12 mois
Téléphone portable,
PDA, DVD
1M-2M portes
logiques
12 -10 mois
PDA sans Fil
4M -6M portes
logiques
10- 8 mois
Application internet
Coût de fabrication($)
1,5- 2,0 milliards
2,0 -3,0 milliards
3,0 -4,0 milliards
10M -25M portes
logiques
8-6 mois
Contrôleur
interconnecté et
intelligent
> 4,0 milliards
Tableau I. 1.Evolution de la technologie d’intégration sur Silicium. [CHAN99]
-9-
CHAPITRE I : Problématique de la conception système
Bien que la limite théorique pour la longueur de canal aurait été estimée à 0,5µm dans les
années 80, nous voyons dans le Tableau I. 1 que cette prévision a été largement sous-estimée.
La complexité des applications a donc engendré une augmentation de la capacité d’intégration
des transistors sur une puce par une évolution de la technologie autorisant une diminution des
dimensions de canal. L’autre difficulté auquelle doivent faire face actuellement les industriels
c’est 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 d’un nouveau produit. C’est pourquoi il faut impérativement
à l’heure actuelle réduire au maximum ce temps de mise sur le marché.
Durée de vie
Bénéfices
Système produit en accord avec le marché
Système produit en décalage
Temps de mise sur le marché (Time to Market)
Temps
Figure I. 1. Evolution des bénéfices d’une entreprise en fonction de l’évolution dans le temps
L’exigence de diminuer ce temps de mise sur le marché a été répercutée sur le temps de
conception qui, malgré l’augmentation de la technologie, est de plus en plus court. En effet
ces temps de conception ont diminué de moitié sur ces 8 dernières années alors que la
capacité d’intégration a été multipliée par 50. Au vu des prévisions de NTRS (National
Technology Roadmap for Semiconductors) [NTRS], nous aurions théoriquement atteint de
nos jours des centaines de millions de transistors par puce. Cependant, à l’heure actuelle ce
potentiel d’intégration ne peut être exploité. En effet, il existe un fossé entre la conception (la
complexité d’un projet en terme du nombre de transistor) et la technologie (complexité de
réalisation en terme de capacité technologique d’intégration). Cette différence entre le nombre
de portes à concevoir et le nombre de portes conçues est un phénomène identifié auprès des
concepteurs comme étant le « Design Productivity Gap » ou le « Design Gap ».
-10-
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
CHAPITRE I : Problématique de la conception système
Nombre de Transistor par puce en Millions
10000
Technologie
1000
Productivité
100
Ecart entre la conception
et la technologie
10
1
0,1
0,01
Figure I. 2. Evolution et prévision 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 années 90 la technologie a rattrapé, puis
dépassé, la conception et ne cesse dès lors d’augmenter. Toutefois, cette rapide évolution de la
technologie et de la complexité du circuit crée aussi un coût de fabrication (Tableau I. 1)
croissant pour des méthodes classiques de conception.
$100 000 000
Coût total de conception
$10 000 000
$1 000 000
$100 000
"Méthodologie RTL"
$10 000
1985
1990
1995
2000
2005
2010
2015
Années
Figure I. 3. Coût total de conception pour une méthodologie RTL [ITRS03].
-11-
2020
CHAPITRE I : Problématique de la conception système
La méthodologie de conception la plus développée au début des années 90 est une
méthodologie de type RTL (Register Transfer Language) permettant la description d’un
système comme un ensemble de registres et de relations logiques. Nous voyons (Figure I. 3)
qu’en restant avec une conception de ce type, le coût de conception sera de plus en plus élevé
puisque la technologie ne cesse d’évoluer. Pour être en concordance avec les applications du
marché et les temps de plus en plus réduits il est donc nécessaire de développer de nouvelles
méthodologies de conception. Dans le paragraphe suivant, nous rappelons le cycle de
conception d’un produit industriel connu sous le nom de « Cycle de conception en V » et la
méthodologie de conception traditionnelle dans le cas d’un développement de circuit intégré.
I.1.1.2
Méthodologie « classique » du développement
I.1.1.2.1 Flot de conception traditionnelle
La conception d’un circuit est le plus souvent réalisée au niveau structurel ou RTL. En
effet, les outils de CAO (Conception Assisté par Ordinateur) ont leur point d’entrée à ce
niveau pour implémenter la partie matérielle. Des méthodologies de type RTL ont donc été
développées pour que la réalisation de puces de faible complexité soit la plus fiable possible
avec un temps de conception réduit. La Figure I. 4 [MILP01] permet de décrire pour le niveau
RTL, le flot de conception traditionnelle. Il s’agit d’une méthodologie classique dite de haut
en bas (ou Top-Down) pour laquelle les différentes étapes sont présentées sur la figure
suivante :
A
B
C
D
E
F
G
Figure I. 4. Flot de conception d’un circuit intégré classique
Le point de départ d’une conception de circuit intégré classique est le cahier des charges.
Il consiste à définir les spécifications, à savoir :
les différentes fonctionnalités ; par exemple on recherche dans ce descriptif à
définir le gabarit d’un filtre numérique.
-12-
CHAPITRE I : Problématique de la conception système
ses performances ; pour notre exemple c’est la définition des différents
paramètres du filtre numérique choisi.
les possibilités d’interfaçage.
les contraintes liées à la puce finale ; par exemple pour respecter la fréquence
d’échantillonnage, il faudra limiter le nombre d’interconnexions.
La conception d’un circuit intégré classique se déroule par les étapes successives
suivantes:
A. un développement structurel sera créé définissant les fonctionnalités du
système.
B. une vérification fonctionnelle du code RTL produit est faite.
C. la description RTL de l’application est alors synthétisée en un fichier
décrivant l’interconnexion des éléments aussi connu sous le nom de netlist.
D. une vérification temporelle est alors effectuée afin de vérifier si les
performances souhaitées sont bien satisfaites. Lorsque c’est le cas, la netlist
sert de base afin de réaliser la conception physique .
E. nous passons à l’étape suivante (aussi appelé Back-end) qui transforme
le schéma logique de la netlist en un plan de masse physique.
F. le placement-routage des cellules est alors effectué. Il permet de placer
(généralement grâce à un algorithme de routage) le plus judicieusement les
cellules pour que le nombre des interconnexions soit optimisé.
G. Enfin la dernière vérification permet de prendre en compte les
paramètres physiques liés à la puce. Une fois cette étape de vérification
achevée, le layout du circuit est envoyé en fonderie pour la réalisation finale.
Toutes ces étapes nécessitent la collaboration de plusieurs équipes (au moins deux) de
développement. Pour diminuer les coûts et les temps de conception de cette méthodologie de
type RTL, une solution est de concevoir un prototype avant de lancer la fabrication en série
du produit. Le cycle de conception habituellement utilisé en industrie est celui en V. Malgré
la complexification des systèmes en industrie, ce cycle de conception n’a pas subi d’avancées
majeures [SNAI04].
I.1.1.2.2 Cycle de conception en V
Le cycle de conception en V permet aux différents groupes au sein du même projet
d’évoluer du « besoin » au « produit » suivant le cycle présenté sur la Figure I. 5.
Ce cycle se divise en deux branches distinctes :
La branche de gauche est communément appelée « Méthodologie descendante (top down) » et a été décrite dans le cas particulier de la conception d’un circuit intégré dans le
paragraphe précédent. La branche « analyse » généralise les différentes étapes (Figure I. 5) de
la méthodologie RTL.
A partir d’un cahier des charges, une analyse fonctionnelle est effectuée qui permet un
découpage en différentes fonctions. Par la suite, ces fonctions donneront lieu à des
architectures distinctes. Une architecture est la structure fondamentale d’un système
(ensemble des fonctions) qui permet de déterminer les constituants, les interfaces et les
comportements des sous-fonctions. Une rétroaction entre les architectures et les fonctions est
possible pour que les contraintes des fonctions développées soient respectées. Lorsque
-13-
CHAPITRE I : Problématique de la conception système
l’architecture est décidée, les concepteurs analyseront chaque bloc unitaire (ou sous-fonction)
et en détermineront l’architecture finale pour la conception d’un prototype.
Besoin
Produit
Analyse
Prototypes
Validation, Certification
(3)
Cahier des
charges
Test
opérationnel F
Validation système
Analyses
fonctionnelles
(3)
Test d’intégration
E
système
Validation Architecture
Conception
Architecture
A
Vérification fonctionnelle
Conception détaillée
(fonction unitaire)
B
Test
Architecture D
(3)
Test unitaires
C
Prototype
Vérification implémentation
Figure I. 5. Cycle de conception en V.
Parallèlement aux étapes précédemment présentées s’articule la branche « prototype »,
dont l’objectif est de s’assurer que les prototypes respectent toujours les spécifications. La
vérification de ce système comporte différents points de tests montrés sur la Figure I. 5. Les
points de tests et de vérification sont les suivants :
A. Vérification de la fonctionnalité pendant la phase de conception.
B. Vérification de l’implémentation de l’architecture.
C. Test unitaire.
D. Test architecture permettant de vérifier l’architecture du système.
E. Test d’intégration système permettant de vérifier l’intégration des composants.
F. Test opérationnel permettant de tester le système dans son environnement
avant sa fabrication.
Le coût de ces vérifications est très élevé en termes de temps et d’investissement
puisqu’on estime que 70% du temps de conception [EVAN03] est passé pour la vérification.
Il est évident que la vérification du système doit être rigoureuse, car une erreur détectée après
fabrication entraînerait un surcoût.
-14-
CHAPITRE I : Problématique de la conception système
I.1.1.2.3 Vérification et prototypage
Différentes techniques de vérification ayant des stratégies différentes existent
[SASON04] :
La vérification formelle permet de représenter les caractéristiques du
système pour vérifier certaines propriétés. Deux types de vérifications formelles
sont possibles :
- Soit un débogage de la spécification permettant de vérifier si la
spécification est bien décrite et si tous les besoins sont bien inclus.
- Soit la vérification de l’implémentation vérifiant si la spécification est
bien implémentée.
Une des difficultés d’utilisation de cette technique est qu’elle n’est applicable
qu’aux systèmes simples à cause de la complexité du processus de vérification.
La simulation utilise des modèles de calcul sur ordinateur. Cette
technique est basée sur la description d’un modèle pour l’analyse des systèmes.
C’est le moyen le plus employé pour la vérification fonctionnelle. Différents types
de simulations sont possibles : ils s’étendent de la simulation comportementale à la
simulation très bas niveau (niveau layout).
L’émulation emploie des modèles physiques qui imitent le
comportement du matériel. L’avantage de ce type de technique est sa vitesse
d’exécution. Toutefois, il est difficile d’observer les signaux internes et donc les
erreurs temporelles sont difficilement détectables. C’est pourquoi cette méthode est
généralement employée après plusieurs étapes de simulations.
Le prototypage combine l’utilisation des différents modèles.
Comme le montre la Figure I. 6, le prototypage permet de diminuer les temps de
conception. Lorsqu’il n’y a pas de prototypage (Cas a), il faut attendre la fabrication de la
puce pour développer le logiciel et vérifier l’intégration logicielle/matérielle. Un prototype
permet de diminuer ce temps de conception en pouvant avant la fabrication de la puce
développer la partie logicielle et la vérification de l’intégration (Cas b). Nous pouvons réduire
encore ce temps de conception en utilisant une plateforme reconfigurable (Cas c) et qui subira
une légère modification d’architecture pour chaque nouvelle application.
-15-
CHAPITRE I : Problématique de la conception système
Figure I. 6. Effet de prototypage sur la conception d’un système monopuce.
Plusieurs types de prototypage sont rencontrés [SASON04] :
Le prototypage virtuel.
Le prototypage matériel.
Le prototypage mixte.
Le prototypage virtuel se fait par simulation de tous les composants du système. Ces
simulations [CLOU02] peuvent combiner différents niveaux d’abstractions (niveau
fonctionnel, niveau architectural, niveau RTL …). L’inconvénient de ce type de prototype est
sa vitesse car elle n’est pas aussi élevée que dans le cas d’un émulateur par exemple.
Le prototypage matériel quant à lui utilise les modèles physiques des composants pour la
réalisation du système. L’implémentation de ce type de prototype utilise des composants
reconfigurables ce qui implique de connaître la description RTL ou en termes de portes
logiques de chaque composant.
Le prototypage mixte combine aussi bien de la simulation, que de l’émulation et de
l’utilisation de composants réels. Son principal inconvénient est donc l’interconnexion entre
la partie simulation et la partie émulation.
Notre choix pour notre système s’est porté sur le prototypage virtuel qui a l’avantage
d’être flexible et de faible coût.
I.1.2Le prototypage virtuel
Différentes raisons peuvent entraîner de faire appel au prototypage virtuel et cela peut
intervenir à différents niveaux d’abstraction du cycle en V. Les objectifs peuvent être l’étude
d’une conception d’un produit ou de l’amélioration du dispositif que ce soit en terme de
conception (réduire le cycle ou fiabiliser le circuit) ou en terme de technologie (amélioration
des performances techniques du système). Les études commencent naturellement à partir des
spécifications et d’un recensement des dispositifs existants. A partir des spécifications, le
-16-
CHAPITRE I : Problématique de la conception système
prototype virtuel peut demander plus ou moins de temps selon le niveau d’abstraction. Si par
exemple, nous sommes à un niveau d’abstraction comportemental, la modélisation sera rapide
dans la mesure où les étages sont représentés par leur fonction et non par leur description
physique. Dans ce cas de niveau d’abstraction physique, les temps de conception sont
augmentés puisque le développement intègre la technologie (physique du transistor par
exemple). Dans tous les cas, les spécifications devront être établies en fonction du produit
demandé et des dispositifs existants. En effet si la modélisation se fait sur la base de produits
existants, les spécifications devront comprendre ses résultats réels. Par contre, les produits
inexistants devront se baser sur les spécifications fonctionnelles.
L’implémentation d’un 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. L’avantage est sa flexibilité et son coût puisqu’il s’agit de simulation
pouvant introduire des modèles de hauts niveaux. Le point faible de ce type de prototypage
est qu’il est difficile de connecter un prototype virtuel avec l’environnement physique du
système.
I.1.3Les méthodologies de conception actuelles
I.1.3.1
Les changements de paradigmes
La description des généralités sur le cycle de conception, a permis de montrer que ce
cycle prend beaucoup de temps alors qu’on demande à l’heure actuelle un temps de
conception de plus en plus court. Nous allons donc introduire les nouvelles méthodologies
employées. Pour lutter contre l’écart grandissant entre la productivité et la technologie, les
laboratoires de recherche et les industries s’efforcent de mettre en œuvre de nouveaux
paradigmes. De nos jours, pour répondre à une complexité croissante des fonctions à
développer, les concepteurs doivent prendre en compte sur un même circuit des cœurs
microprocesseurs, des mémoires, des fonctions spécifiques et des parties analogiques ou
radiofréquences. C’est pourquoi, ces dernières années les changements de paradigme sont
apparus :
Synthèse haut niveau, apparue dans les années 95, cette démarche de
conception permet la réutilisation de composants au niveau portes logiques
(association de transistors) puis la réutilisation des fonctions (assemblage de portes
logiques) associés.
Codesign : En 1997, l’évolution des méthodologies se porte sur la conception
conjointe des parties logicielles et des parties matérielles.
Utilisation d’IP (Intellectual Property) : le rapprochement des milieux logiciel
et matériel a permis d’utiliser au niveau du silicium un concept bien connu dans le
monde de la conception logicielle à savoir la réutilisation de composants préconçus
aussi nommés « propriété intellectuelle ». Ce composant virtuel, lorsqu’il est
correctement défini au niveau de description RTL, permet une intégration plus aisée
donc un gain de temps de conception.
Plateforme où coexiste aussi bien du matériel que du logiciel.
-17-
CHAPITRE I : Problématique de la conception système
La Figure I. 7 représente l’évolution de la capacité d’intégration des circuits au cours de
ces dernières années, et montre l’influence de ces nouveaux paradigmes de conception sur la
complexité grandissante.
Figure I. 7. Représentation des changements de paradigmes avec la complexité des composants
[BORE99]
I.1.3.2
Evolution des coûts [ITRS03]
Parallèlement aux quatre évolutions majeures (Synthèse haut niveau, Codesign, IP-Based
et Plateform-based) décrites dans le paragraphe précédent, les industriels se sont efforcés de
réduire l’évolution des coûts (Figure I. 8.a) de production associée à l’augmentation de la
complexité. Pour cela, nous avons répertorié sept actions visant à modérer les coûts et
reportées leur influence sur la Figure I. 8.b.
-18-
CHAPITRE I : Problématique de la conception système
(a)
(b)
Figure I. 8. Impact des technologies de conception sur les coûts de production.
Ces innovations [KAHN02] sont :
• « Le placement routage sur le site de développement du prototype ». Opération
auparavant effectuée par le fondeur, les délais pouvaient atteindre une semaine. Depuis 1993,
le placement routage est fait sur site avec des délais avoisinant désormais quelques heures.
Ceci se traduit par une amélioration de l’ordre de 40 % de la productivité et 5 K portes par an
et par concepteur.
• « L’ingénierie ». Cette méthodologie a permis de montrer qu’au lieu de diviser les
travaux de conception en équipe d’experts (simulation et synthèse), une seule personne devra
suivre la conception du circuit. Cette découverte a permis de réaliser une amélioration 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
réutilisation des blocs matériels et autorisent les premières grosses avancées 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
l’apparition de nouveau outil logiciel, qui a permis une amélioration de 63% pour la
productivité.
• « Intelligent Test Bench » est une automatisation du flot de vérifications fonctionnelles
(vu dans le cycle en V) qui inclut naturellement la vérification matérielle « IC implementation
tool ». Cette technique a permis une augmentation de 37,5% pour atteindre 91K portes par an
et concepteur.
• « Electronic System level methodology ». L’évolution de la complexité fait apparaître
dans les années 2000, la nécessité de faire cohabiter aussi bien la partie matérielle que la
partie logicielle. Nous tendons alors vers une description simultanée fonctionnelle/
architecturale.
• Very large Block Reuse. Ce paradigme à l’état naissant est l’évolution logique des
fonctionnalités « Small block reuse et large block reuse », permettant de réutiliser en totalité
des macro-fonctions. Cependant, des problèmes de compatibilité se posent principalement
d’un point de vue logiciel.
-19-
CHAPITRE I : Problématique de la conception système
I.1.3.3
Le prototypage virtuel par le CODESIGN
Comme nous l’avons vu précédemment, le codesign a été l’un des paradigmes clé
permettant de lutter contre l’inflation des possibilités de production devant la capacité
d’intégration (Design Gap (Figure I. 2)). Le codesign autorise une conception simultanée des
environnements logiciel et matériel et ainsi de diminuer le temps de conception [CLOU01].
Les méthodologies proposées pour le codesign se différencient en fonction des choix
stratégiques : le style de spécifications, le modèle de l’architecture cible et les étapes de
synthèse. Différents modèles de description sont possibles pour le codesign [HAMO05]
[VERM02] : soit un langage de description matérielle (VHDL ou Verilog), soit de logiciel (C
ou assembleur) soit dans un langage de description au niveau système (SDL, StateCharts,
CSP, SpecCharts, etc…). La conception conjointe matérielle ou logicielle peut être vue de la
manière suivante:
Figure I. 9. Approche du CODESIGN pour la fabrication d’un prototype.
Cette approche typique du codesign commence par décrire à partir d’un langage de
spécifications le niveau système afin de réaliser le découpage logiciel/matériel. La répartition
des environnements étant réalisée, une synthèse de communication entre ces deux
environnements doit être effectuée. Chaque environnement accompli sa propre synthèse pour
arriver jusqu’à la conception du prototype. Le découpage des parties logicielles et matérielles
dépend des outils de co-simulation utilisés et des contraintes (coûts de simulation,
flexibilité….).
I.2 Solution technologiques actuelles
Les paragraphes précédents nous ont permis d’établir l’évolution de la conception
système, et de montrer les actions menées afin de combler le « design gap » défini
précédemment. L’objet de la partie qui suit est de faire l’état de l’art des cibles de réalisation
numériques existantes, en essayant de dégager un compromis temps de développement/coût
/capacité d’intégration idéal lors du développement final d’un prototype virtuel.
-20-
CHAPITRE I : Problématique de la conception système
I.2.1Les cibles de conception existantes [ROBE02]
Différentes solutions s’offrent au concepteur afin de réaliser le circuit numérique final :
les circuits développés spécifiquement pour une application (ASIC’s), les circuits matriciels
programmables FPGA et enfin les circuits à microprocesseur DSP. Nous allons présenter
brièvement chaque type de circuit, afin de dégager un comparatif et les situer en terme de
compromis coût/temps de développement/rapidité. Nous terminerons enfin sur une courte
étude de marché.
I.2.1.1
Les ASICs
Un ASIC (Application-Specific Integrated Circuit) est un circuit intégré à application
spécifique. Il est classé en 2 catégories :
Le circuit semi-spécifique (certaines étapes ont été faites avant la conception de
fabrication) et le circuit spécifique (toutes les étapes de fabrication seront réalisées après la
conception).
I.2.1.1.1 Les circuits semi-spécifiques ou ASIC pré-diffusés
Avant même la conception, l’utilisateur fixe le nombre de portes et de plots
d’entrée/sortie. Les réseaux de transistors sont alors programmés et interconnectés par
l’utilisateur et les dernières étapes de fabrication sont effectuées par le fondeur. Ce type de
circuit se caractérise par une forte densité d’intégration, mais n’a aucune flexibilité car sa
topologie est fixée avant la conception.
I.2.1.1.2 Les circuits spécifiques ou ASIC pré-caractérisés
Les ASICs pré-caractérisés ont été beaucoup développés dans les années 90 lors de la
phase « placement / routage sur site » qui a vu l’évolution des outils de synthèse (cf Chapitre
1-§I.1.3.2). Ces circuits sont conçus à partir de cellules prédéfinies dans une bibliothèque
propre à chaque fabricant et chaque technologie. Les concepteurs utilisent des éléments de la
bibliothèque constructeur ce qui permet aux fondeurs d’automatiser l’étape finale de synthèse
logique. L’existence de ces bibliothèques permet un gain de temps conséquent grâce à la
notion de réutilisation. De plus, compte tenu des capacités d’intégration actuelles, permet de
concevoir des systèmes sur puces (System On Chip ou SOC). Les ASICs présentent
l’avantage d’une forte capacité d’intégration (jusqu’à 20 Millions de portes) et une faible
consommation par fonction utilisée, et un faible coût unitaire. Par contre les coûts de
développement sont élevés, dans la mesure où ils incluent les coûts de fabrication :
Le coût unitaire du masque qui augmente en fonction de la technologie cible choisie.
Le coût de conception lié aux équipes de développements et aux logiciels de CAO
utilisés.
C’est pourquoi le temps de développement est généralement élevé, et la flexibilité quasinulle. Au vu des constats précédemment cités (temps de développement élevé et coût) le
projet de prototypage basé sur un ASIC pré-caractérisé devient de moins en moins rentable.
I.2.1.2
Les FPGA
Les FPGA (Field Programmable Gate Array) font partie de la famille de composants
programmables électriquement. A l’origine basés sur un réseau de matrices de portes
élémentaires ET et OU (Program Array Logic ou PAL), ces circuits programmables sont
-21-
CHAPITRE I : Problématique de la conception système
devenus au milieu des années 90 des circuits plus complexes grâce à l’intégration de
ressources spécifiques dédiées, associées à de la mémoire interne et à des entrées/sorties
flexibles [DUTE02][BROW96].
Matrice de connexion Bloc logique
programmable
programmable
Matrice d’interrupteur
programmable
Figure I. 10. Principe de l’architecture d’un circuit FPGA [MLYN01]
Un FPGA est un circuit dont l’architecture correspond à une matrice de portes logiques
séparées par des réseaux d’interconnexion. 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 à l’aide d’un langage de type matériel
(VHDL ou Verilog) sur une platine de programmation. La tendance actuelle pour ces circuits
est la possibilité de réaliser des systèmes sur puce (ou SoC) en utilisant des « composants
virtuels » et de concevoir ainsi des blocs de propriété intellectuelle (Intellectual Property ou
IP) qui sont par exemple des fonctions VHDL/Verilog génériques réutilisables.
Le FPGA offre une souplesse de conception grâce à sa facilité d’utilisation et sa facilité
de programmation (et reprogrammation). Contrairement à un circuit ASIC, pour lequel le
concepteur maîtrise totalement le placement routage au niveau transistor, le FPGA n’autorise
pas cette opération qui s’effectue de manière transparente pour le développeur. Pour une
application visant la mise sur le marché d’une forte qualité des produits, le circuit spécifique
est la solution faîble coût. Par contre, dans le cas d’un développement ponctuel, le FPGA est
nettement plus avantageux. C’est pourquoi ce composant est plus adapté pour la mise au point
de prototypes et accessible à un plus grand nombre d’utilisateur que l’ASIC.
I.2.1.3
Les DSP
Un DSP (Digital Signal Processing) est un type particulier de microprocesseur,
équivalent à un circuit intégré programmable en langage C ou assembleur. Il comporte
essentiellement des unités arithmétiques dédiées et optimisées pour des calculs rapides. Ces
fonctions sont destinées à le rendre particulièrement performant dans le domaine du
traitement numérique du signal. Comme un microprocesseur classique, un DSP est mis en
œuvre en lui associant de la mémoire (RAM, ROM) et des périphériques. Un DSP typique a
plutôt vocation à servir dans des systèmes de traitements autonomes. Il se présente donc
généralement sous la forme d’un microcontrôleur intégrant, selon les marques et les gammes
des constructeurs, de la mémoire, des timers, des ports série synchrones rapides, des
contrôleurs DMA, des ports d’E/S divers. Ces dernières années, les techniques à base de
processeurs de traitement du signal ont été largement employées pour la conception
d’émetteurs-récepteurs de communication évolués, trouvant leur champ d’application dans la
détection, l’égalisation, la démodulation, les synthétiseurs de fréquence.
-22-
CHAPITRE I : Problématique de la conception système
I.2.1.4
Les SoCs
D’après Gartner Dataquest (Société d’étude de marché) [GARTWW] un SoC est défini
comme un composant d’au moins cent milles portes et comprenant un noyau programmable
(processeur ou DSP) et de la mémoire (de type RAM et/ou ROM).
Figure I. 11. Intégration d’une carte électronique (exemple de fonction de carte mère)
Plus concrètement, la tendance actuelle est d’intégrer sur une même puce de silicium
aussi bien des fonctions numériques que des fonctions logicielles (processeur, interfaçage …).
La Figure I. 11 illustre les possibilités d’intégration en terme de fonction d’une carte mère
d’un ordinateur personnel sur une seule puce, sur laquelle nous voyons cohabiter le
microprocesseur, les mémoires avec les fonctions classiques associées. Le composant virtuel
(l’autre nom donné au SoC) est souvent commercialisé par des sociétés spécialisées qui
fournissent les blocs IP pouvant être sous forme matérielle (masque par exemple) ou sous
forme logicielle (modèle VHDL). Des prévisions d’évolution, de ce type de technologie,
faites par l’IRTS [IRTS03] prévoient l’augmentation du nombre de transistors par un facteur
50. On pourrait atteindre en 2008 le nombre de 500 millions de transistors sur un même SoC.
Les principaux avantages de ce type de composant sont sa capacité d’intégration, la
conception d’une plateforme commune entre le milieu logiciel et le milieu matériel et sa
consommation réduite. C’est pourquoi de nombreuses d’études portent sur la co-simulation et
son implémentation en SoCs.
I.2.2 Le marché actuel des composants
I.2.2.1
Famille de circuits et applications
Nous terminerons cette étude par une comparaison de ces composants issus des différents
constructeurs. Les ASICs pré-caractérisés ne sont pas présentés dans cette comparaison
puisque la technologie et les performances dépendent directement de l’application. Cette
comparaison a pour but de présenter les produits actuels afin de dresser un état de l’art des
performances associées [XILIWW] [ALTEWW] [ACTEWW] [TEXWW] [ANOLWW].
-23-
450MHz 1,2 V 864 à
9936
Stratix II
(ALTERA)
0,9µm
500MHz 1,2V 419 à
9383
ProASIC3
(ACTEL)
0,13µm
(Flash)
350MHz 1,5V SRAM
0 à 144
Divers
0,9µm
Applications
Virtex 4
(XILINX)
Cellules ou
instructions
Fréquence
d’horloge
maximum
Mémoire (kB)
SRAM
Technologie
Constructeurs et
composants
Tension
Alimentation
CHAPITRE I : Problématique de la conception système
FPGA
6144 à Circuits logiques (Famille
89088 LX)
Application SoC (Famille
FX)
Application DSP(Famille
SX)
6240 à Applications logiques
71760 SoC (NiosII)
Application DSP
30k à
3M
FROM
1
CPU : PPC405
(G1) Fx seulement
Hardcopy II :
Migration sur
ASIC d’une
architecture sur
STRATIX II
Applications logiques
Composants
pour les systèmes
intrinsèquement
aéronautiques et spatiaux immunisé au SEU
(Single Event
Upset)
DSP
C6000
(Texas
Instrument)
0,18µm
1GHz
1,1V 64 et
à
2048
1,9V
1200 à Virgule fixe : téléphonie, Compiler C pour
8000
Système multicanal ,
optimiser les
MIPS Biométrie
performances
600 à
1800
MIPS
Blackfin
(Analog
Devices)
0,18µm
400 à
750
MHz
0,8V RAM
à
52 kB et
1,6V 308 kB
Virgule flottante : Haute
précision comme
traitement d’image ou
instrumentation
TNT et appareil photos
numériques.
RISC 32 Bits
Tableau I. 2. Comparaison des dernières technologies des FPGA et du DSP.
Nous observons tout d’abord une cible d’applications différentes entre les différentes
familles de composants programmables. Les applications visées par les constructeurs de
FPGA sont principalement la programmation d’applications dédiées aux fonctions logiques et
à des applications de type SoC. Les applications touchées par les DSP sont la téléphonie, la
biométrie ou l’imagerie, donc des applications nécessitant des performances de processeurs
plus élevées comparées aux applications FPGA. Toutefois, les technologies récentes des
FPGA (Virtex 4 (Famille SX) et Stratix II) disposent de nouvelles architectures à technologie
mixte, à base de FPGA et de DSP, permettant des capacités de calcul massives et comprenant
des systèmes d’entrées/sorties haut débit. De plus, nous pouvons noter que le FPGA du
constructeur ACTEL a orienté sa technologie pour lutter contre les SEU (fortes contraintes du
domaine aéronautique et spatiales) ce qui explique que sa technologie (au niveau longueur du
canal) soit moins avancée que pour les constructeurs ALTERA et XILINX. Pour les
applications logiques qui correspondent à notre système, le FPGA semble pour l’instant le
meilleur choix.
Pour continuer notre comparaison entre ces composants, nous exposerons la différence
architecturale entre un FPGA et un processeur.
-24-
CHAPITRE I : Problématique de la conception système
I.2.2.2
Architecture des composants programmables
La Figure I. 12, donne en exemple une architecture type pour un système embarqué avec
monoprocesseur (System On Package ou SoP) où on peut identifier les composants décrits
précédemment (FPGA, SoC ou DSP).
Figure I. 12. Description générique d’un système embarqué
Si la cible est une solution système (SoP) ou une solution SoC, le composant FGPA
communique seul avec l’extérieur et échange les informations avec le processeur et les soussystèmes via un bus de communication rapide. Dans le cas d’une solution FPGA, le système
est isolé et ne nécessite aucune interface de communication.
Cette étude nous montre que pour la conception d’un prototype, le FPGA apparaît comme
la solution à retenir. En effet, le marché des FPGA (Tableau I. 2) est celui qui correspond le
mieux à l’application visée qui est de type « applications de développement de fonctions
logiques ». De plus, nous venons de montrer que l’utilisation d’un FPGA pour la conception
système n’est pas restrictive et permet d’envisager une application logicielle si nécessaire.
Le choix de la cible de conception finale sera aussi déterminé par l’outil logiciel de
conception utilisé. C’est pourquoi nous passerons en revue dans le prochain paragraphe les
différents outils de conception et à leur langage associé.
I.3 Comparaison des langages et outils de conception
I.3.1Introduction
Comme nous venons de le voir, les concepteurs font face aujourd’hui au développement
de systèmes sur puce dans lesquels doivent cohabiter les environnements logiciel et matériel.
La vérification d’une conception de ce type demande un langage d’abstraction matériel plus
élevé. A l’heure actuelle, deux voies sont explorées : celles du monde logiciel qui doivent
adapter leur langage à la description matérielle et celles du monde matériel (outils de CAO)
qui doivent étendre leur langage à une programmation au niveau logiciel. Nous ferons donc la
différence entre les simulateurs issus de la conception matérielle et ceux issus de la
-25-
CHAPITRE I : Problématique de la conception système
conception logicielle. Le Tableau I. 3 résume les langages de modélisation multi-domaines.
Nous avons aussi fait une distinction pour les outils de type analogique (résolution à partir des
équations différentielles) et les outils de type numérique (simulateur dirigé par évenements).
Outils issus du milieu de la CAO
Type de langages Analogique
Niveau
d’abstraction
Niveau
Spécifications
Niveau
Comportemental
Niveau
Spice
architecture
Niveau Composant
Numérique
Outils issus du monde
logiciel
Mixte
C/C++
VHDL -AMS
VHDL
Verilog
Saber
Matlab
/Simulink
Tableau I. 3. Comparaison des différents langages de modélisation.
I.3.2Les outils issus du milieu logiciel
Comme énoncé dans le paragraphe précédent, les outils logiciels tels que MATLAB
cherchent à avancer leur cycle de conception jusqu’au niveau RTL. Le langage VHDL
(VHSIC Hardware Description Language (§I.3.3.2)) étant incontournable, des travaux de
recherche ont été développés pour que les outils de MATLAB et Simulink [MATL03]
permettent de générer des fichiers VHDL. La première application apparue pour répondre à
cet objectif est la conception de filtres numériques. A partir des coefficients simulés et
optimisés sous MATLAB, une netlist VHDL est générée. Cette démarche consistant à fournir
des fichiers VHDL à partir des modèles simulink (.mdl) est généralisée grâce à la routine de
conversion présentée Figure I. 13 .
-26-
CHAPITRE I : Problématique de la conception système
1
Modèle Simulink
(fichier .mdl)
Fichier Source
Modèle Simulink
(fichier .mdl)
2
Utilité de
conversion
Modèle VHDL
(fichier .vhd)
Algorithme de
conversion
Optimisation
Simulation
Logique
Modèle VHDL
(fichier .vhd)
Synthèse
3
Vers implantation
Vers implantation
ASIC
FPGA
ASIC : Interface pour les
fondeurs
Netlist :
Simulation
FPGA : Configuration
des données
Placement
et routage
(Layout)
Fichier .vhd
(VHDL)
Figure I. 13. Description du passage des modèles de Simulink en modèle VHDL.
Pour chaque étape du procédé, le fonctionnement du système est vérifié, soit avec des
réponses de type comportemental (échelon, sinusoïdale) pour la partie 1, soit avec des
réponses de types logiques (0 ou 1) pour la partie 2 et 3. La base de conversion correspond
aux éléments du système défini en . mdl sous Simulink. Seuls les éléments numériques seront
pris en compte pour la conversion. Ces fichiers sont créés en terme de code VHDL c'est-à-dire
avec des architectures et des entités. Le code est alors optimisé pour prédéfinir une
architecture. Cette architecture choisie, est alors vérifiée par une simulation numérique.
Lorsque la phase vérification a donné les résultats escomptés, nous pouvons synthétiser le
code VHDL. La synthèse permettra d’avoir une netlist pour le placement/routage. C’est à
partir de cette étape que l’on peut choisir la cible de production (FPGA ou ASIC). Matlab a
pour inconvénient d’être un langage propriétaire. La conversion de fichier .mdl en fichier
VHDL était à l’époque de notre choix d’outil de conception très peu exploitable.
I.3.3Les outils issus du milieu CAO
I.3.3.1
Simulateur Analogique
Le simulateur analogique le plus connu et le plus implanté dans le monde industriel est
PSPICE [VLAD94]. Ce simulateur analogique est généralement utilisé pour la vérification de
circuits et la prédiction comportementale de circuits. L’origine de ce logiciel est l’outil SPICE
(Simulation Program for Integrated Circuit Emphasis). Il a été développé dans les années
1970 par Nagel et Pederson de l’université de Berkeley et était alors librement utilisable dans
le monde. C’est seulement une dizaine d’années plus tard que l’on voit apparaître les versions
commerciales. MicroSim développera la version pour ordinateur personnel sous le nom de
-27-
CHAPITRE I : Problématique de la conception système
PSPICE (Personnal Computer SPICE) [NAGE75] et Avant la version pour station dénommée
HSpice.
Basé initialement sur une saisie de la topologie sous forme de texte, MicroSim étendra
ensuite la programmation par l’outil Probe qui présente les résultats de simulation sous forme
graphique. D’autres évolutions arriveront ensuite comme l’interface Schematics qui permet la
description graphique des circuits jusqu’à nous amener à la version PSpice A/D
(Analogical/Digital). La notion de simulateur mixte apparaît alors, permettant de simuler des
circuits comprenant aussi bien des éléments analogiques que des éléments numériques. Sa
bibliothèque comprend plus de 18000 modèles, Pspice est bien implanté dans le milieu
industriel.
Pspice est en fait une évolution graphique de SPICE, ce qui veut dire qu’il utilise le
même algorithme numérique et les mêmes fichiers que SPICE. L’ordinateur construit une
netlist à partir du schéma et détermine en chaque nœud l’équation du circuit. Cet outil se base
donc toujours sur le modèle de base. Cependant, l’évolution des modèles n’est pas très facile,
le simulateur étant basé sur le même « cœur » 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 aujourd’hui répondre à tous les besoins de modélisation de
circuits, notamment pour les raisons suivantes :
- La difficulté à décrire le comportement souhaité à cause des équations primitives
complexes de SPICE.
- Les temps de simulations peuvent devenir prohibitifs à cause de la description trop
détaillée des composantes internes aux circuits ou de la présence d’une constante de temps
élevée.
- Le développement de modélisations mixtes puisqu’il est basé sur un simulateur à
temps continu.
I.3.3.2
Simulateur numérique
Au début des années 90, l’augmentation du nombre de portes de circuits numériques a
ouvert la voie aux langages de description matérielle de haut niveau (les HDL, Hardware
Description Language). Deux d’entre eux ont émergé et sont couramment utilisés : VHDL
(VHSIC Hardware Description Language) et Verilog. Ces deux langages bénéficient du
support de la quasi-totalité des logiciels [SMIT98].
I.3.3.2.1 Le VERILOG : Historique et description
Verilog est un langage de description matérielle créé par la société Gateway Design
Automation en 1984. Le langage original appelé HiLo, s’apparente beaucoup au langage C, ce
qui succite un intérêt immédiat notamment de la part de la communauté des informaticiens.
Au départ, il était un langage propriétaire et n’était pas standardisé. En 1989, Cadence devient
le propriétaire de la société Gateway et donc du langage Verilog et de son mécanisme
« d’interface de langage de programmation » (Progamming Language Interface : PLI). En
1990, Verilog est ouvert au domaine public ce qui permet à chacun de développer son
simulateur en Verilog et devenir un compétiteur potentiel de Cadence. Ainsi, le Verilog
pouvait devenir le langage de description matérielle le plus répandu et le plus utilisé. C’est
pourquoi le groupe de travail OVI a été formé sur le langage VERILOG et du mécanisme
-28-
CHAPITRE I : Problématique de la conception système
PLI. La popularité du Verilog augmentant et l’arrivée du langage VHDL, il devenait
important pour les personnes de l’OVI (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 habitués du langage C ainsi qu’une assignation des signaux moins
contraignante que le VHDL. Par contre, cette absence peut être piégeuse dans la mesure où le
type de signaux (bus, signé … ) n’est pas pris en compte. De plus, Verilog ne comporte pas de
concept de package (ni de librairies). Ainsi chaque fonction et chaque procédure d’un module
doivent être définis dans ce module.
La description d’un système mixte est aussi possible en Verilog et porte le nom de
Verilog-AMS HDL. Ce langage est défini sur la base du Verilog 1364-1995 pour la partie
numérique, et du Verilog-A pour les systèmes analogiques.
I.3.3.2.2 VHDL : Historique et description
Dans les années 80, le département de la défense aux Etats-Unis fait un appel d’offre
pour avoir un langage de description matérielle numérique unique. Le langage VHDL (VHSIC
Hardware Description Language) est inventé pour répondre à ces critères. Ce langage se base
sur le VHSIC (Very High Speed Integrated Circuit) qui est un projet de recherche nationalle
mené par le groupement IBM/Texas Instruments / Intermetrics. Ce langage est ouvert au
domaine public en 1985 et deviendra une norme en 1987 sous la dénomination de IEEE 10761987. Des changements minimes se feront pour la seconde normalisation en 1993 et il portera
le nom VHDL’93. La dernière évolution de la norme est la norme IEEE 1076-2001.
Les avantages qui se dégagent de ce langage sont la réutilisation de fichiers grâce à la
notion de paquet et la généricité individuelle des modèles.
Cependant, la norme IEEE 1076-2001 ne permet pas seule la description mixte
(numérique et analogique). Le Verilog et le VHDL ont des capacités techniques équivalentes
[SMIT98]. Le choix du langage est souvent dicté par la « culture » de l’équipe de
développement ou de l’équipe de recherche. De plus, ce choix est parfois imposé par les outils
disponibles, les logiciels de simulation et de synthèse, dont les langages associés sont fixés
par des aspects économiques. Nous pouvons noter toutefois que les outils actuels permettent
de mélanger ces deux langages.
I.3.3.3
Les simulateurs mixtes
La simulation mixte a pour objectif de faire cohabiter la gestion des signaux à temps
continus (analogiques) et à temps discrets (numériques). Ainsi, cette technologie de
simulation permet de concevoir des fonctions pluridisciplinaires telles que mécanique,
optique, chimique, biochimique, fluidique. Des langages ont été créés dans ce sens VHDLAMS et Verilog-AMS qui sont l’extension des langages VHDL et Verilog. D’autres langages,
comme celui du logiciel SABER, permettent de décrire des fonctions mixtes.
Nous allons présenter deux langages clés dans la chronologie du développement de la
modélisation des systèmes mixtes, à savoir le langage propriétaire MAST et le langage normé
VHDL-AMS.
-29-
CHAPITRE I : Problématique de la conception système
I.3.3.3.1 Description d’un langage propriétaire MAST
Le logiciel SABER, développé par Analogy Inc, est un outil dédié à la modélisation et à
la simulation de systèmes couvrant de nombreuses disciplines de la physique telles que
l’électronique, l’optique, la mécanique, l’électricité, l’électromécanique, l’hydraulique, le
magnétisme, les télécommunications et le thermique. Ces systèmes peuvent être analogiques
(continu en temps et en amplitude), discrets en temps et continus en amplitude, ou digitaux
(discrets en temps et en amplitude). Outre les modèles propriétaires spécifiques présents dans
les librairies, ce logiciel permet de créer ses propres modèles de composants à partir du
langage de programmation MAST (Modeling Analog System with Template). Depuis 2003,
une ouverture vers le standart VHDL-AMS permet de développer ses applications en utilisant
ce langage. Malheureusement toutes les librairies standard du VHDL-AMS ne sont pas encore
implantées dans le support du langage.
I.3.3.3.2 Description d’un langage normé : VHDL-AMS
En 1999, le langage VHDL-AMS naît d’une réflexion d’une dizaine d’années entre les
chercheurs et les industriels. Il permet de décrire des modèles pluridisciplinaires (électrique,
mécanique … ) c'est-à-dire des modèles aussi bien à temps continu qu’à temps discret. Le
langage VHDL-AMS intègre le langage VHDL. Ce langage de description des circuits
numériques exclusivement permet de simuler et synthétiser pour différentes technologies ces
circuits.
La norme VHDL-AMS est donc une extension du VHDL où la partie analogique a été
ajoutée et développée. Une des forces réside dans la possibilité de décrire des systèmes mixtes
aussi bien à un niveau d’abstraction comportementale (grâce aux transformées de Laplace ou
en Z) qu’au niveau RTL (car il s’agit d’un langage issu du VHDL).
Cependant, la gestion des équations différentielles ne dépendant pas du temps, comme
par exemple les équations différentielles partielles à 2 ou 3 dimensions, sont difficilement
modélisables. Par exemple, l’approche analytique pour la description d’une structure de
microsystèmes est insuffisante, d’autres outils sont alors développés.
I.3.3.3.3 Les Outils supportant la simulation mixte en VHDL-AMS
I.3.3.3.3.1
historique
Les premiers outils apparus avec la simulation mixte en VHDL-AMS (début des années
deux milles) sont :
-
ADVance AMS de la société Mentor Graphics[MENT01]
-
hAMSter (High performance AMS tool for Engineering and Research) [SIME03]
-
SEAMS de l’université de Cincinnati
-
SMASH de la société Dolphin [SMAS05]
Ces premiers simulateurs ont pour désavantage d’être difficiles d’accès pour les non
initiés au langage. C’est pourquoi ces outils sont de moins de moins utilisés aujourd’hui
comme par exemple le logiciel Hamster qui n’est plus commercialisé (racheter par la société
Ansoft , il a été intégré sous le logiciel Simplorer). Cet outil étant simple d’utilisation, il est
encore utilisé par les enseignants pour l’apprentissage du VHDL-AMS. Les autres outils de
conception sont puissants mais plutôt réservés aux spécialistes du langage. C’est le cas du
logiciel ADVanceAMS qui est l’outil le plus pourvu en éléments d’implémentation de la
première norme VHDL-AMS.
-30-
CHAPITRE I : Problématique de la conception système
La relative complexité du langage VHDL-AMS alliée au marché de la technologie mixte
en pleine croissance, ont poussé les développeurs supportant la norme à faciliter son accès
aux non spécialistes. Comme l’avait fait en son temps Spice, certains des outils
précédemment cités, ont été développés sur la base d’une interface graphique utilisateur
(Graphical User Interface : GUI). Ceci permet aux personnes non expertes de s’affranchir du
langage et de n’avoir qu’à utiliser, pour leur étude, les « boîtes » codées par les spécialistes du
langage.
I.3.3.3.3.2
Les outils à interface graphique
Comme nous venons de le voir, ces outils à interfaces graphiques permettent de
s’affranchir, à un certain degré, de la connaissance du langage VHDL-AMS. Ils permettent
donc de concevoir un microsystème à partir du code HDL masqué sous une image. Pour cela,
l’utilisateur ne rentre que les paramètres et le type des signaux d’entrées/sorties. Les outils
actuels présents sur le marché sont :
-
SaberHDL (Analogy) [SYNO03]
Il permet d’utiliser une bibliothèque restreinte de composants pluridisciplinaires. La
première version de SaberHDL est toutefois pauvre au niveau des composants de la
bibliothèque.
-
Simplorer (Ansoft) [ANSO03]
Il se base pour son noyau de simulation VHDL-AMS sous l’outil hAMSter. C’est le
premier outil qui a développé une représentation graphique pour coder en VHDL-AMS.
-
SystemVision (Mentor Graphics) qui se base sur AdvanceAMS [MENT03]
L’interface graphique permet aussi à l’utilisateur d’ « instancier » le modèle souhaité.
Enfin, l’utilisateur un peu plus expérimenté pourra alimenter les bibliothèques de composants
en créant ses propres modèles. Un des paramètres important, pour le choix de l’un de ces
outils supportant cette norme, est le nombre de composants fournis par la bibliothèque
d’origine et l’implémentation des librairies associées.
I.3.3.3.3.3
Comparaison des différents outils
A partir des propriétés énoncées ci-dessus ainsi que d’une étude comparative [HAMO05]
de trois simulateurs basés sur le langage VHDL-AMS, nous avons résumé et comparé leurs
performances générales pour le concepteur système dans le Tableau I. 4.
Le troisième simulateur a donc un environnement graphique convivial et permet aussi
l’interfaçage avec C/C++, mais pour sa version complète. Malheureusement, n’étant pas
disponible au sein de notre laboratoire nous n’avons pas retenu ce logiciel. C’est pourquoi
nous nous sommes intéressés dans un premier temps aux simulateurs SaberHDL [SYNO03] et
SystemVision [MENT03]. Comme le montre le tableau ci–dessous, la création d’un code
VHDL-AMS est plus difficile avec l’outil SaberHDL car il ne possède pas d’éditeur interne
pour le codage des fonctions. L’autre point négatif pour SaberHDL était que la bibliothèque
de composants est moins fournie que SystemVision. Nous avons, en plus, rencontré des
difficultés au niveau des librairies standard qui n’étaient pas encore toutes implémentées sous
SaberHDL. Pour toutes les raisons que nous venons d’énoncer, nous avons choisi d’utiliser
l’outil SystemVision pour le développement d’un prototype virtuel.
-31-
CHAPITRE I : Problématique de la conception système
Société
Création du code
VHDL-AMS
Création d’un
symbole
Bibliothèque de
composant
Algorithme de
Simulation
Disponibilité du
logiciel
SaberHDL
Synopsis
Utilisation d’un
éditeur externe
Manuelle
Eléments de base
écrits en VHDL-AMS
Simec
Licence associée à
SABER
SystemVision
Mentor Graphics
Editeur interne
Automatique et avec
outil interne
Eléments de base
écrits en VHDL-AMS
Newton Calaveras
Version gratuite pour
les étudiants
disponibles sur
internet
Simplorer
Ansoft
Création automatique
de l’entête du modèle.
Automatique
Eléments de base
écrits en VHDL-AMS
Eldo
Version gratuite pour
les étudiants
disponibles sur
internet
Tableau I. 4. Etude comparative des simulateurs supportant VHDL-AMS.
I.3.3.4
Méthodologies et outil de conception retenus
Au vu de l’étude précédente présentant l’état des outils associés, la conception mixte peut
s’envisager, soit à partir d’un langage propriétaire, soit à partir d’un outil normé. Pour
répondre à cette question, nous allons confronter des méthodes que nous appellerons m1 &
m2. Ces deux méthodes se basent sur la branche gauche du cycle en V (Figure I. 5) :
- m1 : cette méthode fait appel au langage propriétaire MAST, supporté par l’outil
logiciel SABER.
- m2 : cette méthode fait appel au langage normalisé VHDL-AMS.
-32-
CHAPITRE I : Problématique de la conception système
I.3.3.4.1 Méthodologie m1 avec un langage propriétaire
Notre première approche de conception est présentée sur la Figure I. 14.
Cahier des charges
Environnement
SABER
Simulation
fonctionnelle mixte
SABER Sketch
Analyse fréquentielle et
temporelle
SABER Scope
NOK
Validation de
l’architecture
OK
Codage VHDL
synthétisable
Fichiers VHDL synthétisable
pour implantation FPGA/ASIC
Figure I. 14. Description de la méthodologie de conception N°1 : m1
Pour un outil de simulation mixte tel que SABER la méthodologie de conception
commence par une étude comportementale sous le logiciel. Les fonctions à développer sont
écrites en langage propriétaire MAST (langage propriétaire de Saber). Un avantage réside
dans la présence d’une bibliothèque de modèles et des fonctions pluridisciplinaires.
L’utilisateur peut également développer ses propres modèles, à un niveau d’abstraction allant
d’un « modèle fin de transistor » à un macro-modèle de très haut niveau. Dans un objectif de
synthèse de fonctions numériques, le développeur doit obligatoirement coder manuellement et
de manière synthétisable ces fonctions. Cette étape peut vite s’avérer extrêmement lourde et
coûteuse en temps.
-33-
CHAPITRE I : Problématique de la conception système
I.3.3.4.2 Méthodologie m2 avec VHDL-AMS
Le développement d’un système mixte peut également se baser sur le langage VHDLAMS. Dans ce cas, les fonctions analogiques sont décrites en VHDL-AMS. Si le concepteur
développe les fonctions numériques simultanément en VHDL synthétisable, l’étape de codage
manuel supplémentaire de la méthode m1 est supprimée.
Cahier des charges
Environnement VHDL-AMS
Etages
Analogiques
VHDL -AMS
Etages Numériques
VHDL Synthétisable
Analyse Fréquentielle et
temporelle
NOK
Validation de
l’architecture
OK
Fichiers VHDL synthétisable
pour implantation FPGA/ASIC
Figure I. 15. Description de la méthodologie de conception N°2 : m2
I.3.3.4.3 Comparaison des deux méthodologies
Le Tableau I. 5 permet de dresser un bilan pour chaque méthodologie basée sur les
facteurs importants d’une action de conception système [GUIL04E].
Comme nous pouvons le constater le codage manuel en VHDL synthétisable des
fonctions numériques de SABER pénalise le temps de développement pour la méthodologie
n°1. L’utilisation du langage VHDL-AMS s’affranchit de cette étape et permet de gagner en
flexibilité, car la compilation d’un module seul est possible. On peut alors simuler une
nouvelle architecture sans recompiler tous les modèles. Le désavantage de la méthodologie de
conception n°2 pour notre système est le manque de bibliothèques de bruit. Cette déficience
est pénalisante pour le codage du canal, nous développerons donc un fichier spécifique
permettant de combler cette lacune.
-34-
CHAPITRE I : Problématique de la conception système
SABER
(Méthodologie N°1)
Temps de développement
Bibliothèque Bruit
Exemple fichier d’un élement
(Générateur de PN-CODE)
Flexibilité
Temps de simulation
Apprentissage Langage
VHDL-AMS
(Méthodologie N°2)
☺
296 lines (15ko)
99 instructions lines
☺
(Si nouvelle architecture,
recompilation de tous les
modèles)
16min CPU TIME
☺ (Outil graphique
facilité d’apprentissage)
☺ (Module compilable seul,
possibilité de nouvelle architecture
sans recompiler les autres modèles)
6 min 51 sec CPU TIME
(SystemVision)
(Difficulté d’apprentissage du
langage VHDL-AMS)
Tableau I. 5. Comparatif entre 2 méthodes de conception.
I.4 Bilan
L’état de l’art sur la conception système que nous venons de dresser, a permis de mettre
en lumière qu’à l’heure actuelle les systèmes à concevoir sont de plus en plus complexes avec
un temps de mise sur le marché de plus en plus réduits. C’est pourquoi la méthodologie de
conception a pris une place importante dans la fabrication système. Ce cycle de conception
(qui est généralement en V) peut être diminué par l’utilisation d’un prototypage. En effet les
phases de vérification du cycle en V, au nombre de cinq dans le cycle traditionnel en V, sont
d’énormes consommatrices de temps. Nous avons alors fait état, d’une synergie forte entre
industriels et laboratoire de recherche, en essayant de répondre à cette problématique en
proposant trois types de prototypages. Le prototypage matériel permet une description
physique des composants. Le prototype mixte allie les types de vérifications « simulation » et
« émulation ». Le prototypage virtuel permet quant à lui la simulation des composants
systèmes. Le dernier point important de cet état de l’art est le choix de l’outil de conception.
Ils existent à l’heure actuelle deux catégories d’outils de conception. Ceux qui sont issus du
monde de la modélisation (Matlab pour la modélisation mathématique) et ceux issus de la
CAO électronique. Pour une description au niveau matériel, les outils de conception CAO
sont encore les outils les plus compétents pour réaliser une synthèse fiable. Toutefois, les
outils de modélisation commencent à descendre dans le cycle de conception et permettent de
définir, comme l’outil 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
adaptés à la synthèse, nous avons choisi un langage de description matérielle. Le choix du
langage s’est basé sur la pluridisciplinarité du langage et l’intégration dans une cible comme
le FPGA. Nous avons donc retenu le langage VHDL-AMS qui est un langage normé (donc
non propriétaire) et qui permet de simuler avec des langages comme le C, ou MATLAB si
une méthodologie de conception par prototypage virtuel est appliquée.
-35-
CHAPITRE I : Problématique de la conception système
-36-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II CHAPITRE II Vers la conception d’un système de
télécommunications à étalement de spectre
Résumé
Ce chapitre présente le système de télécommunication à modéliser. Pour cela, nous définissons les paramètres
propres d’un système de communication AMRC et focalisons sur le choix de la topologie de la fonction
synchronisation, organe clé des communications à étalement de spectre.
1
2
3
4
5
Présentation du cahier des charges .............................................................................................................. 39
Les systèmes de communications existants ................................................................................................. 39
Description des éléments d’une chaîne de communication numérique. ...................................................... 44
Caractéristiques retenues pour le système désiré......................................................................................... 61
Description fonctionnelle des fonctions à modéliser ................................................................................... 63
5.1
Principe de la modulation différentielle............................................................................................. 64
5.2
Modélisation du générateur de PN Code........................................................................................... 64
5.3
Modélisation de la fonction corrélation............................................................................................. 68
5.4
Modélisation de l’organe de synchronisation.................................................................................... 70
6
Conclusion................................................................................................................................................... 88
-37-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
-38-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.1 Présentation du cahier des charges
La première partie de ce mémoire a présenté l’état de l’art des moyens, outils et méthodes
mis en œuvre afin de concevoir, des spécifications au prototype, le système.
La seconde partie s’efforce d’appliquer les moyens développés dans le premier chapitre à
une problématique de communication sans fil en milieu clos (habitat, mais aussi automobile,
milieu urbain). La Figure II. 1. Représentation schématique d’un système multi-capteurs pour
un environnement closillustre, par exemple, l’application type d’un système multi-capteurs
pour l’environnement de l’habitat dans le cadre de l’instrumentation d’une pièce.
Figure II. 1. Représentation schématique d’un système multi-capteurs pour un environnement clos
Le milieu de propagation « indoor » est fortement « pollué » à cause des autres sources
(téléphone mobile ou réseaux sans fil) qui opèrent dans les mêmes bandes (2,4 GHz, 5,1 GHz)
puisque elles sont imposées par la loi. De plus, il faut tenir compte des réflexions multiples
(multi-trajets) dues à l’environnement physique (cloisons, plafond…) arrivant atténuées et
retardées sur le récepteur. Une contrainte supplémentaire liée à l’environnement clos est le
nombre d’utilisateurs qui doivent cohabiter dans le même canal. Un point important
supplémentaire de notre cahier des charges est de véhiculer aussi bien des informations bas
débit (<1Mbits/s) et des informations haut débit (de 1 à 10 Mbits/s).
II.2 Les systèmes de communication existants
Tout d’abord, revenons sur la notion de système ou d’objets communicants. Un système
communicant peut se définir par une multitude d’objets dispersés physiquement disposant
chacun d’une unité de traitement de données et d’un accès à un réseau de communication.
Actuellement, les systèmes de communication sont basés sur des liaisons radiofréquences. De
nombreuses normes pour les communications radiofréquences ont été mises en place ces
dernières années (IEEE802.11, BLUETOOTH, ZIGBEE, …). Nous allons présenter dans le
-39-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
paragraphe, un descriptif rapide des systèmes de communications actuels afin de mieux nous
positionner quant au cahier des charges de notre système.
II.2.1 Communications Radiofréquences dans les bandes 433 & 868
MHz.
Ces modules de communication basés sur une modulation analogique fonctionnent sur
des fréquences libres de 433MHz et 868 MHz. Les modules travaillant à 433MHz actuels
permettent d’obtenir des débits jusqu’à 30kbits/s en FM et 3kbits/s en AM. Les modules 868
MHz sont plus performants en terme de débits puisqu’ils permettent de transmettre jusqu’à
50kbits/s. Plusieurs fabricants (AUREL, Mipot, Telecontrolli, Radiometrix…) proposent des
modules d’émission/réception. Le Tableau II.1 résume les caractéristiques des principaux
modules du marché :
Fournisseurs
Fréquence
d’utilisation
Modules GRAVITON 868-870 MHz
Modules MIPOT
433 MHz
Modules AUREL
869 MHz
Débit Minimal
50Kbits/s
30Kbits/s
100kbits/s
Portée en espace Modulation
libre maximum
1,5 km
FM
100m
FM
FM ou FSK
Tableau II.1. Comparaison des caractéristiques de communications Radiofréquences 433 et 868 MHz.
Ces modules sont inadaptés à notre cahier des charges, ne présentant pas de sécurisation
des données.
II.2.2
Les réseaux personnels sans fil (WPAN : Wireless
Personnal Area Network)
Les réseaux personnels permettent la communication entre différents appareils dans un
rayon réduit. Actuellement, le réseau personnel le plus communément utilisé est celui basé sur
la technologie Bluetooth. Deux nouvelles technologies émergent pour ce type de réseaux : une
adaptée à des débits élevés UWB (Ultra Wide Band ou Ultra large bande), tandis que ZigBee
autorise des connexions d’équipements faibles consommations.
II.2.2.1
Bluetooth [ELHO05]
Le but principal de cette technologie est de supprimer les câbles et de permettre la
transmission de la voix et des données via une liaison radio courte distance. Bluetooth
permettait initialement de faire communiquer un appareil maître avec sept autres appareils
esclaves. Cette technologie est normalisée sous le nom IEEE 802.15.1 [802.15.1]. Les
spécifications techniques de la dernière norme (Bluetooth 2.0) permettent de bénéficier de
débits supérieurs allant jusqu’à 2 ou 3 Mbits/s dans un rayon de moins de 100 mètres. Les
appareils compatibles Bluetooth utilisent des ondes radio sur la bande ISM (Industrial
Scientific & Médical). Cette bande de fréquence est comprise entre 2,4 et 2,48 GHz, utilisable
librement sans licence ni autorisation.
II.2.2.2
Ultra Wide Band [BLIN04][BRAC05]
Cette technologie « âgée » de quarante ans n’est véritablement exploitée que depuis 2002.
Se basant sur un système de transmission d’impulsions de très courtes durées, elle offre la
possibilité d’un débit élevé jusqu’à 480 Mbit/s pour une portée de 15 mètres. L’UWB utilise
ainsi une bande très large de fréquence (entre 3,1GHz à 10,6GHz) pour échanger des données
et répondre au standard IEEE 802.15.3 [802.15.3].
-40-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Cette norme UWB est plus répandue au niveau américain qu’au niveau européen. En
effet, le spectre radio étant utilisé de manière différente aux Etats-Unis et en Europe,
l’introduction de l’UWB génère des problèmes d’interférences avec les autres dispositifs sans
fil utilisés en Europe.
II.2.2.3
ZigBee
ZigBee est une norme de transmission de données 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 d’un accord stratégique de licence signé entre
MicroChip et Adcon Telemetry. Les caractéristiques principales de cette technologie sont un
faible débit, et un faible coût avec pour atout majeur une faible consommation. ZigBee utilise
une méthode d’étalement de spectre par séquence directe DS-SS (Direct Sequence Spread
Spectrum), et fonctionne sur la bande de fréquence de 2,4 GHz répartie sur 16 canaux.
Cette technologie a donc été créée pour le marché des réseaux sans fil domestiques
(Home Area Network - HAN). Ces équipements doivent être bon marché, capables
d’échanger des données, en consommant peu, de manière sécurisée et fiable. Aujourd’hui en
2005, les premiers kits de développement [FREE05] apparaissent et commencent à mobiliser
les travaux de recherche [VDBO05].
II.2.3
Les réseaux locaux sans fil (WLAN : Wireless Local Area
Network)
Un réseau local sans fil est une infrastructure de communication reliant des équipements
informatiques et permettant de partager des ressources communes sur une aire limitée à
quelques centaines de mètres. Afin de communiquer dans un WLAN, il existe deux modes de
propagation : le mode point à point où la transmission s’effectue entre deux points fixes et le
mode omnidirectionnel où la transmission s’effectue dans toutes les directions de l’espace. La
technique de transmission utilisée pour ce type de réseau est l’étalement de spectre (nous
reviendrons dans sur cette technique dans la partie II.3.6). Les problèmes majeurs liés à ce
type de réseau sont la dispersion du signal et la génération d’interférences.
Le standard 802.11 a aujourd’hui le monopole mondial de ce type de réseau, 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 grâce à des antennes
bidirectionnelles sur de courtes distantes. La norme 802.11 est la norme de référence dans le
monde des réseaux locaux sans fil. Des révisions ont été apportées à la norme originale afin
d’optimiser le débit que nous présentons 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
Débit théorique (Mbits/s)
1 ou 2
11
54
54
320
Portée (m)
≈10m
≈100m
≈30m
≈100m
≈30m
Bande de fréquences
2,4 GHz
2,4 GHz
5 GHz
2,4 GHz
2,4 et 5 GHz
Tableau II. 2. Description des différentes normes basées sur IEEE 802.11.
D’autres extensions à cette norme existent, aussi nous pouvons citer IEEE 802.11e
utilisée pour un réseau avec signalisation et présentant une qualité de service, la norme IEEE
-41-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
802.11.f étendue pour le handover (passage d’une cellule à l’autre sans coupure) ou bien
encore le standard IEEE 802.11i amélioré du point de vue sécurité. [PEYR05]
II.2.3.2
Le standard HiperLAN II [BAUD02]
HiperLAN (High Performance Radio Local Area Network) est une famille de standards
pour les communications numériques sans fil à haut débit dans les bandes 5,15GHz- 5, 3GHz
et 17,1 -17,3 GHz à l’initiative de l’institut de standardisation européenne (ETSI : European
Telecommunications Standards Institute). Un émetteur-récepteur radio est installé sur chaque
station mobile, il ne nécessite aucun point d’accès pour communiquer avec une autre station
mobile. Par contre, des stations de bases sont nécessaires pour faire le lien entre la partie radio
et la partie filaire existante d’un LAN. La bande allouée est d’une largeur de 10MHz autour
de 5,2GHz. Le standard Hiperlan2 a été particulièrement développé pour fournir un débit aux
réseaux IP, Ethernet, UMTS et aux futurs systèmes multimédia pouvant aller jusqu’à 54
Mbit/s (pour la couche physique). Ce débit important est rendu possible par l’utilisation d’une
méthode de modulation multi-porteuses de type OFDM (Orthogonal Frequency Division
Multiplex). L’espacement 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 excéder 10m/s.
II.2.4
Les réseaux métropolitains sans fil (WMAN : Wireless
Metropolitan Area Network) et les réseaux étendus (WWAN :
Wireless Wide Area Network)
Comme leur nom l’indique, les réseaux sans fil métropolitains ont été crés pour assurer
des communications au sein d’une ville ou d’un village. Les principaux standard sont WiMax,
basé sur la norme 802.16 et MBWA pour des réseaux mobiles à hauts débits. Les réseaux
WWAN sont quant à eux des réseaux étendus ou communément appelés réseaux cellulaires
mobiles.
II.2.4.1
WiMax
WiMax est le nom d’une marque destinée à labelliser des équipements compatibles avec
le standard américain IEEE.802.16 [802.16] et la norme européenne ETSI HiperMAN. Il
permet un débit théorique 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
développement par le groupe IEEE 802.20. Il devrait permettre la mise en place de réseaux
métropolitains mobiles avec des vitesses allant jusqu’à 250 km/h. Il utilise des bandes de
fréquences en dessous des 3,5 GHz. Le débit théorique est de 1Mbits/s en descente et
300Kbits/s en montée. Toutefois, ce standard ne devrait pas être commercialisé avant 2007.
II.2.4.3
Les réseaux mobiles (WWAN)
Il s’agit des réseaux sans fil les plus répandus puisque tous les téléphones mobiles sont
connectés à un réseau étendu sans fil. Les principales technologies sont les suivantes :
GSM (Global System for Mobile Communication ou Groupe Spécial Mobile) : Ce
standard a été prévu initialement pour les applications de transport de la parole, de
transmission de données à bas débits (9600 bits/s) autour des fréquences 935MHz-
-42-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
960MHz ou 890-915MHz. Cette norme a permis l’essor des communications mobiles
d’aujourd’hui.
GPRS (General Packet Radio Service) : Cette technologie est la première évolution
de la norme GSM pour pouvoir atteindre des débits compatibles avec des applications
à débits moyens de type multimédia.
UMTS (Universal Mobile Telecommunication System) : Cette norme UMTS a pour
but de développer une meilleure couverture radio et d’augmenter le nombre
d’abonnés par unité de surface et promouvoir l’acheminement des services 3ème
Génération (3G). L’UMTS permet un débit théorique jusqu’à 2 Mbit/s.
II.2.5
Contraintes du milieu clos
Le milieu de l’habitat est un milieu à fortes contraintes temporelles. On peut classer ces
contraintes en deux catégories : les problèmes posés par les interférences radio et les
problèmes posés par le nombre d’utilisateurs.
II.2.5.1
Les interférences radio
L’émergence des réseaux sans fil et de la téléphonie mobile, que nous venons de décrire,
rend le milieu clos, de plus en plus pollué en ondes électromagnétiques. Les ondes réellement
perturbantes sont celles que l’on retrouve dans la bande passante et qui ne peuvent pas être
filtrés. Les contraintes des interférences radio sont de deux types :
Brouillage des autres sources. L’allocation des fréquences étant régie par la loi, les
systèmes de communication dans le milieu « INDOOR » opèrent sur les mêmes
fréquences. Pour des transmissions hauts débits, seulement trois bandes de
fréquences sont disponibles (2,4GHz, 5,2GHz ou 60GHz).
Multitrajets. Ceux-ci sont dus aux réflexions multiples propres à l’environnement de
l’habitat (cloisons, plafond…). Ces réflexions vont créer des ondes dans la même
gamme de fréquences mais retardées et atténuées de manière quasi aléatoire.
II.2.5.2
Le nombre d’utilisateurs
Pour des systèmes émission / réception destinés à la communication dans un
environnement clos le nombre d’utilisateurs partageant le même médium devient une
contrainte. En effet les réseaux de communication doivent prendre en compte le fait que
plusieurs utilisateurs devront cohabiter sur le même canal. Les problèmes suivants sont alors
soulevés :
Sécurisation permettant de garantir la confidentialité des informations transmises.
Contraintes liées aux techniques de multiplexages (méthodes d’accès) permettant le
partage du médium.
Flexibilité en termes du nombre d’utilisateurs.
II.2.6
Comparatif des technologies de réseaux sans fil
Le tableau ci-dessous résume les principales technologies de réseaux sans fil, présentant
leur dénomination commerciale, la norme associée, les débits autorisés ainsi que les
caractéristiques techniques (Bande Passante, type de modulation, etc.) [CHRIWW].
-43-
WPAN
WLAN
Bluetooth
UWB
IEEE.802.15.1
IEEE.802.15.3
Zigbee
869
100m
≈10m
2402-2480 FH-SS
IEEE.802.15.4
2 Mbits/s
Jusqu’à 50
Mbits/s
250 kbits/s
10m
75m
Wi-Fi5
IEEE.802.11a
40 kbits/s
20 kbits/s
54 Mbits/s
24002483,5
902-928
868-868,6
5500
Wi-Fi
IEEE.802.11b
11 Mbits/s
Wi-Fi
IEEE.802.11g
54 Mbits/s
WiMax
IEEE.802.16
70 Mbits/s
≈100m (intérieur)
≈400m (extérieur)
≈30m (intérieur)
≈100m (extérieur)
50 km
MBWA
IEEE.802.20
1Mbits/s
≈30m
≈100m
Modulation
Technique
d’étalement
de
Bande
Fréquence
(MHz)
Portée
maximum
(m=mètres)
100kbits/s
Modules
radio AUREL
WMAN
Débit théorique
Norme
supportée
Technologie
Type de réseau
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
FM
FSK
GFSK
DS-SS
O-QPSK
DS-SS
DS-SS
BPSK
BPSK
OFDM
2400
OFDM
2400
OFDM
2500
3500
5860
<3500
ou
ou
ou
OFDM
Tableau II. 3. Comparatif des différents réseaux sans fil (WPAN, WLAN,WMAN )
Parmi les technologies identifiées, nous constatons que, seulement quelques normes
fonctionnent dans la bande de fréquence de 2,4 GHz retenue pour notre système. Dans cette
bande, deux technologies ont des caractéristiques intéressantes : la technologie Zigbee qui
permet de transmettre à des faibles débits (250 kbits/s) et la technologie Bluetooth pour des
plus hauts débits (2Mbits/s). Pourtant ces technologies ne correspondent pas à notre
application, puisque l’autre paramètre important pour notre conception est la notion de
transmission multi-canal permettant à différents types de débits d’être véhiculés. Au vu des
résultats obtenus nous n’avons aucun standard correspondant à nos attentes. C’est pourquoi
nous allons définir notre propre système de communication.
II.3 Description des éléments d’une chaîne de
communication numérique
Afin de définir le cahier des charges technique, nous nous proposons dans le paragraphe
suivant de définir les éléments théoriques propres aux communications numériques. Nous
rappellerons et définirons les paramètres clés, propres à la caractérisation d’une telle chaîne
(débit, TEB, efficacité spectrale du canal AWGN), puis nous focaliserons sur la technique
d’étalement de spectre par séquence directe que nous devrons mettre en œuvre.
-44-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.3.1
Chaîne de communication
Une chaîne de transmission numérique est composée, entre un émetteur et un récepteur,
des éléments présentés sur la Figure II. 2.
Figure II. 2. Principaux éléments d’une chaîne de transmission numérique.
On peut donc distinguer différents blocs pour l’émetteur :
o Le bloc « codage source » permet de coder les données numériques issues du capteur
(un taux de compression important) afin de les adapter à la modulation ultérieure.
o Une fonction « modulation » adapte les données du canal physique.
Entre l’émetteur et le récepteur, on trouve un bloc canal dépendant de la nature de
l’application. Le canal est souvent composé d’une partie analogique appelée aussi
radiofréquence.
Pour le récepteur, les fonctions sont à présent les symétriques de celles vues à l’émetteur.
o Un bloc de « démodulation » où l’on peut trouver une synchronisation pour retrouver
le signal modulé.
o Un bloc de « décodage » des données.
II.3.2
Le codage en ligne
Le codage source est une représentation électrique de l’information binaire. Le choix du
codage se fait en fonction du canal et de la technique de la modulation employée. Le terme
codage en ligne est employé pour les modulations numériques qui ne sont pas sur fréquence
porteuse donc en bande de base. Les principaux codes binaires existants sont les codes NRZ,
RZ, biphase et bipolaire. La Figure II. 3 représente leurs densités spectrales de puissance, en
fonction de la fréquence normalisée.
Figure II. 3. Représentation des codes sources selon leur densité spectrale.
-45-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Dans le cadre de notre travail de thèse, nous avons étudié plus particulièrement le code
NRZ-L (Non Retour à Zéro) qui associe à chaque élément binaire d’un message (0 ou 1) un
symbole (1 ou -1). La forme d’onde pour ce code est une créneau d’amplitude A, un bit « 0 »
est représenté par une amplitude –A et un bit « 1 » par une amplitude +A. Cependant ce code
ne présente pas de transitions lorsqu’il y a de longues séquences de 0 et de 1 ce qui est une
difficulté lors de l’étape de synchronisation (cf. § II.5.4), mais en revanche, ce code est très
facile à générer et il possède un taux d’erreur de bits inférieur aux autres codes.
II.3.3
Choix d’une modulation numérique
Avant d’argumenter ce choix, nous commençons par définir les principaux critères
caractérisants une modulation numérique à savoir :
•
Le débit.
•
Le taux d’erreur sur les bits.
•
L’efficacité d’occupation spectrale.
•
L’efficacité de la puissance émise.
•
La simplicité de réalisation.
Ces éléments sont définis dans le paragraphe ci-dessous, afin de dresser par la suite un bilan.
II.3.3.1
Quelques définitions utiles
II.3.3.1.1
Débit binaire
Nous appellerons débit binaire D (bit/s) ou vitesse de canal le nombre d’informations
élémentaires (ou bits) que ce canal transporte pas unité de temps.
1
Tb
Tb représente la durée du bit d’information, exprimée en seconde.
D=
II.3.3.1.2
[Eq.II. 1]
Taux d’erreur sur les bits
Les modulations numériques sont évaluées grâce au taux d’erreur par bit (TEB). Il permet
de chiffrer l’influence du bruit (grâce au rapport signal sur bruit ou à l’efficacité de puissance)
pour chaque modulation et en fonction du nombre d’états de la modulation. Il se définit de la
manière suivante :
TEB =
Nbre _ d ' élements _ binaire _ faux
Nbre _ d ' élements _ binaire _ émis
[Eq.II. 2]
La Figure II. 4 représente les taux d’erreur par bit en fonction du rapport du rapport Eb/N0
pour quatre modulations présentées dans le Tableau II. 4.
-46-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 4. Exemple de valeurs de taux d’erreurs par bit.
II.3.3.1.3
L’efficacité spectrale
L’efficacité spectrale (en Bit/Seconde/Hertz) d’un signal numérique est le nombre de bits
par seconde de données qui peuvent être supportés pour chaque hertz de la bande de
fréquence utilisée (B en Hertz) :
η=
Débit
D( Bit / s )
=
Bande _ occupée B( Hertz )
[Eq.II. 3]
On peut aussi noter que pour des applications où la bande passante est limitée par des
contraintes physiques, il faut choisir une technique qui donne la plus haute efficacité
spectrale, laquelle doit permettre d’obtenir de faibles taux d’erreur sur le bit en sortie du
système.
II.3.3.1.4
Définition de l’efficacité en puissance Eb/No
L’efficacité en puissance se définit par le rapport entre l’énergie moyenne Eb par bit
d’information et la densité spectrale d’un bruit blanc No/2.
Nous allons maintenant exprimer la relation entre l’efficacité en puissance et le rapport
signal sur bruit (SNR (Signal Noise Ratio)). Tout d’abord, définissons le rapport existant
entre l’énergie totale E et l’énergie moyenne Eb par bit dans un système à M états.
Eb =
E
log 2 M
[Eq.II. 4]
La puissance S est définie comme le rapport entre l’énergie totale E et la durée d’un 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
-47-
[Eq.II. 5]
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
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 dépend de l’efficacité spectrale et du
nombre d’états M du système. C’est pourquoi pour comparer les différentes modulations
numériques il vaut mieux s’intéresser à l’efficacité en puissance qui est une valeur
indépendante du procédé de modulation.
II.3.3.1.5
La simplicité de réalisation
La complexité d’un système dépendra de la sensibilité de la modulation aux
imperfections et de la cohérence de la démodulation. Dans le premier cas, la sensibilité
augmente le nombre d’états pour la modulation, tandis que dans le deuxième cas, c’est la
récupération de la porteuse qui augmente la complexité du système.
II.3.3.2
Modulation retenue
La modulation choisie devra permettre de minimiser l’occupation spectrale pour un débit
binaire donné et la probabilité d’erreur selon la puissance et donc du rapport signal sur bruit.
Lors de l’établissement du cahier des charges [BOUR00] il a été distingué les
modulations numériques suivantes :
•
ASK : Modulation par sauts d’amplitude (Amplitude Shift Keying). La modulation se
fait ici par saut d’amplitude.
•
FSK : Modulation par sauts de fréquence (Frequency Shift Keying). La modulation se
fait par saut de fréquence.
•
PSK : Modulation par sauts de phase (Phase Shift Keying). La modulation se fait par
saut de phase.
•
QAM : Modulation d’amplitude en quadrature (Quadrature Amplitude Modulation).
La modulation est une combinaison des deux précédentes modulations où
l’information associée à la phase du signal mais aussi l’amplitude.
Le tableau suivant résume leurs performances en fonction de trois critères de choix : la
résistance aux distorsions et aux perturbations, l’efficacité spectrale et la simplicité de
réalisation.
-48-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Modulation
Nombre
d’états
ASK
2
4
8
2
4
8
2
4
PSK
DPSK
QAM
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
4
16
64
FSK
2
4
6
10,5
14,3
20,5
Efficacité liée
aux
fréquences
porteuses
TEB dépend
de l’indice de
modulation
Avantages
Inconvénients
-Simplicité
pour
la
démodulation et son faible
coût
- Avantageux si M<2
- Simple à réaliser
-TEB meilleur que ASK
- Sensible aux
non - linéarités
du système
- Identiques au PSK
- Plus simple à réaliser que
PSK
- η proportionnelle à M
- TEB meilleur que PSK
- Plus performant si M>8
Un peu moins
performant que
PSK
Complexité de
réalisation
si
M> 16
Moins sensible au brouillage
des canaux adjacents
Faible efficacité
spectrale
- Limitée pour
M>8
Tableau II. 4. Performances des modulations numériques retenues.
A la vue de ce tableau de synthèse sur les modulations et sachant que le milieu de
propagation est particulièrement hostile, les critères qui ont été retenus sont la simplicité et la
résistance aux multi-trajets. C’est pourquoi la démodulation différentielle 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 défini les codes en ligne et les modulations numériques
possibles, nous allons définir le canal de transmission. Les canaux les plus utilisés pour le
milieu clos sont le canal AWGN (Additif White Gaussian Noise) et le canal multi-trajets. Ces
deux canaux seront modélisés pour évaluer les performances du système communicant. Le
premier est utilisé afin de reproduire le bruit alors que le deuxième sera utilisé pour évaluer
les performances par la présence de multi-trajets.
II.3.4.1
Le canal AWGN
Le modèle du canal AWGN est composé selon le principe de la Figure II. 5 d’un bruit
blanc Gaussien ajouté dans le médium à l’onde modulée s(t) .
Figure II. 5. Modèle du canal AWGN
Un bruit blanc Gaussien est un processus aléatoire stationnaire puisqu’il est indépendant
du signal transmis. La spécificité d’un bruit blanc réside dans l’uniformité de sa densité
spectrale de puissance qui vaut N0 sur toute la bande de fréquences. Du fait de sa largeur de
-49-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
bande théoriquement infinie, il est difficile d’exprimer le bruit blanc, c’est pourquoi l’on
suppose que le bruit sommé au signal d’entrée du récepteur a été filtré par un filtre idéal, de
largeur de bande B très 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, régie par la densité spectrale suivante :
1
p ( x) =
e
σ 2π
−
( x−m)2
2σ 2
[Eq.II. 7]
avec σ² qui représente la variance et m la valeur moyenne de la variable aléatoire x. La figure
suivante représente p(x) la densité spectrale d’un bruit blanc gaussien.
Figure II. 6. Représentation d’une distribution gaussienne
Dans la mesure où la valeur moyenne du bruit est nulle, sa distribution s’écrit
p ( x) =
II.3.4.2
1
σ 2π
e
−
( x)2
2σ 2
[Eq.II. 8]
Le canal multi-trajets
La modélisation du canal multi-trajets permet de prendre en compte l’influence des
différents trajets dus à la diversité de propagation dans le milieu indoor (réflexions multiples)
et d’observer l’influence des autres utilisateurs qui travaillent dans la même bande.
L’équation [II.9] permet de modéliser un canal comprenant i utilisateurs et n multi-trajets.
r (t ) = ∑∑ α n s i (t − τ n )
i
[Eq.II. 9]
n
où r(t) est le signal en sortie du canal, αn et τn respectivement l’atténuation et le retard du
trajet n et si(t) est le signal émis par l’utilisateur i. Pour définir les deux paramètres retard et
atténuations, deux solutions sont envisageables, basées soit sur une méthode statistique, soit
sur des mesures in situ mais propre à la topologie de l’environnement.
-50-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 7. Représentation du principe du canal multi-trajets
Le modèle statistique [HASH93] consiste à définir les deux paramètres comme des
variables aléatoires ayant une répartition la plus proche de la réalité. Cette méthode donne lieu
à des modèles de canaux permettant d’évaluer les performances de manière générale. Le
modèle de canal le plus répandu est celui à évanouissement où l’on considère la somme des
trajets au niveau du récepteur à un instant t :
r (t ) = R(cos w0 t + θ m (t ) + Φ )
[Eq.II. 10]
où θ m (t ) représente la modulation, et R et Φ sont des variables aléatoires. R représente l’effet
de la somme de tous les trajets sur l’onde reçue et Φ représente la phase des différents
chemins qui sont considérés uniformément distribués sur (0:2π). Dans un canal à
évanouissement, la variable R peut suivre deux lois : soit une loi de Rayleigh dans le cas d’un
affaiblissement de Rayleigh, soit une loi de Rice lorsqu’on considère le cas d’un
affaiblissement de Rice. Le canal de Rice est utilisé lorsqu’un trajet est prédominant par
rapport aux autres trajets (par exemple dans le cas d’un émetteur et un récepteur en visibilité
directe). On considère un canal de Rayleigh lorsque tous les chemins sont indépendants et
d’atténuations comparables. Les modèles statistiques sont intéressants pour traiter des cas
généraux, mais deviennent vite insuffisants pour étudier un cas réel.
II.3.5
Les méthodes d’accès
Les communications hertziennes doivent utiliser la largeur des bandes de fréquences
allouées de manière optimale. Il s’agit en effet, d’une part de transmettre un maximum de
données utiles par unités de temps entre la source et le destinataire, mais également de fixer
les règles permettant à tous les émetteurs de communiquer de façon optimale. Il sera donc
nécessaire de définir les principes de communication à l’intérieur du médium pour que les
-51-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
utilisateurs puissent se partager le canal. Ces principes basés sur le partage de la ressource
sont appelés techniques de méthode d’accès. Historiquement, ils existent trois possibilités de
partage :
•
le FDMA (Frequency Division Multiple Access) fractionne l’accès au médium par un
partage en fréquence de la bande allouée.
•
le TDMA (Time Division Multiple Access) partage l’accès au médium dans le temps
•
le CDMA (Carrier Division Multiple Access) permet un accès multiple en nombre
d’utilisateurs avec une répartition par code.
Nous allons à présent préciser chacune de ces méthodes d’accès et conclure quant à la
méthode la plus intéressante pour notre application.
II.3.5.1
Définition des méthodes d’accès
II.3.5.1.1
Le FDMA
Le FDMA (ou AMRF :Accès Multiple à Répartition dans les Fréquences) est la
technique la plus ancienne où les utilisateurs se partagent la bande passante du canal alors
divisée. Chaque utilisateur se voit allouer une fréquence porteuse différente. La figure illustre
le principe de répartition en fréquence du FDMA.
Figure II. 8 .Représentation temps –fréquence du FDMA
Il peut alors émettre en continu dans sa bande de fréquence propre. La largeur de la bande
étant plus réduite que la bande totale autorisée, elle permet à cette technique d’être moins
sensible aux interférences. Son inconvénient majeur est le manque de souplesse pour la
réalisation d’un débit variable. Le nombre d’utilisateurs est fixé par le nombre de
synthétiseurs de fréquence implantés dans le système.
II.3.5.1.2
Le TDMA
Contrairement à la méthode précédente où chaque utilisateur travaille sur une porteuse
différente, le TDMA (ou AMRT : Accès Multiple à Répartition dans le Temps) utilise ici une
fréquence fixe, son émission est alors restreinte à des intervalles de temps prédéfinis.
-52-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 9. Représentation temps –fréquence du TDMA
Le temps est ainsi découpé en intervalles de longueurs fixes ou « Slots ». Nous ne
pouvons pas émettre en continu, mais seulement à certains instants définis de façon
périodiques, la transmission se faisant en rafales, le débit est plus grand que pour le FDMA
mais entraîne une sensibilité plus importante aux interférences (un retard peut dégrader
l’intervalle de temps suivant). Son inconvénient principal est la nécessité d’une
synchronisation entre tous les utilisateurs avec une horloge commune.
II.3.5.1.3
Le CDMA
La technique du CDMA (ou AMRC : Accès Multiple à Répartition par les Codes) repose
sur l’accès du canal par tous les utilisateurs, qui pourront émettre en continu et sur toute la
largeur de bande disponible. Ce principe est généralement identifié comme une technique
d’étalement de spectre.
Figure II. 10. Représentation temps / fréquence du CDMA
Ici, chaque utilisateur est reconnu grâce à un code qui lui est propre. Ce code, qui a un
débit plus élevé que la donnée, a la propriété d’étaler le spectre de la donnée transmise. La
récupération de l’information se fait en réalisant l’opération inverse, c'est-à-dire en
décorrélant avec le code utilisateur identique. L’émission de chaque utilisateur est alors perçu
par les autres utilisateurs comme un bruit. L’inconvénient de cette méthode est la diminution
du débit réel dans la mesure où chaque bit de données sera codé par un mot de longueur
inférieur et variable.
-53-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.3.5.2
Critère de choix sur les méthodes d’accès
Le mode TDMA paraît plus performant que le mode FDMA en terme de débit et de
souplesse, mais la méthode d’accès la plus adéquate pour les milieux clos apparaît être le
CDMA car elle répond aux besoins suivants :
• Sécurisation de l’information grâce à la signature par code,
• Flexibilité car elle se superpose facilement à un système existant (peu perturbatrice et
forte immunité aux perturbations grâce à l’étalement de spectre),
• Souplesse en termes de nombres d’utilisateurs et de débits grâce au code d’étalement,
• Accès parfaitement aléatoire.
D’un point de vue des interférences, des études ont montré [VITE85] [MAZO79] que le
TDMA et le FDMA étaient plus avantageux si le milieu de propagation n’introduisait pas
d’évanouissements. Dans le cas contraire nous allons montrer que grâce à l’étalement de
spectre, le CDMA garantit de meilleures performances en milieu clos. C’est pourquoi la
technique d’étalement de spectre s’impose comme technique de transmission.
II.3.6
II.3.6.1
L’étalement de spectre
Principe
L’étalement de spectre permet de répartir l’énergie radioélectrique du signal émis sur une
bande de fréquences plus importante que celle qui est initialement nécessaire.
Il existe plusieurs techniques d’étalement de spectre :
• L’étalement par saut de fréquence (Frequency Hopping Spread Spectrum ou FH-SS)
(Figure II. 11)
Pour cette technique, le signal change par sauts successifs de fréquences porteuses en
fonction d’un code pseudo-aléatoire. Ce saut de fréquence peut être soit rapide (Fast FHSS) ou lent (Low FH-SS) selon que le rythme des sauts est bien supérieur ou bien
inférieur au rythme des symboles. Les avantages du FH-SS sont :
Sa résistance aux interférences bandes étroites présentes dans la bande du canal
Sa résistance aux problèmes au near/far. Les problèmes de near/far sont dus à des
utilisateurs (A) d’un système fonctionnant en CDMA placés trop près d’un récepteur
écoutant un utilisateur (B). En effet, si la puissance de (A) est trop importante alors la
corrélation entre le code du récepteur et le message de (A) peut être supérieure à la
corrélation du code récepteur et du message issu de (B). Dans ce cas, le récepteur
n’accroche plus (B) et perd l’information. Là encore, grâce aux sous-canaux, le FH-SS
est mieux immunisé car le problème ne se posera que lorsque (A) et (B) seront sur la
même fréquence porteuse, alors qu’en DS-SS le problème est permanent.
Les inconvénients se trouvent dans la complexité de la réalisation et au niveau des
performances de la synchronisation. En effet, pour que le récepteur se synchronise, il faut
avoir une horloge commune pour l’émetteur-récepteur qui sera gérée par un maître. Le gain
en traitement dépend de la longueur de la séquence de sauts de fréquence mais aussi des
performances des synthétiseurs.
-54-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 11. Spectre du signal étalé en FH-SS.
•
L’étalement de spectre par séquence 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 débit plus élevé. Ce signal est alors perçu comme un bruit
large bande et présente une densité spectrale représentée sur la figure ci-dessous :
Les avantages du DS-SS sont les suivants :
Un meilleur temps d’accroche comparativement au FH-SS.
Un gain en traitement plus facile à obtenir car il ne dépend que de la longueur
de la fréquence.
Une synchronisation simple puisque le récepteur se synchronise par rapport à
la trame reçue.
Figure II. 12. Spectre du signal étalé en DS-SS.
•
Notons également l’étalement par saut de temps TH-SS (Time Hopping – Spread
Spectrum) et le CDMA multi-porteuses (MC-CDMA) qui sont des techniques moins
utilisées que les deux premières.
Pour notre application, nous retiendrons la technique DS-SS pour diverses raisons.
D’abord, n’étant pas dans le cas de communications mobiles, les problèmes near /far effets
peuvent être résolus par la disposition judicieuse des émetteurs/récepteurs. Ensuite les normes
-55-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
émergentes et les comités de normalisation (ETSI pour l’Europe) encouragent fortement
l’utilisation de l’étalement de spectre [NEWM86] ce qui tend à diminuer les interférences à
bandes étroites aux fréquences allouées, rendant à terme, le DS-SS sensible au brouillage
intentionnel. A cela s’ajoutent les avantages précités du gain de performances ainsi que la
simplicité de réalisation qui sont des aspects importants pour la réalisation du système en
terme de surface et de coût.
Nous allons développer dans le paragraphe suivant l’étalement de spectre par séquence
directe.
II.3.6.2
L’étalement de spectre par séquence directe
II.3.6.2.1
Le principe de l’étalement de spectre par séquence directe
Densité Spectrale
Densité Spectrale
L’étalement de spectre par séquence directe (DS-SS) est une modulation de la trame de
symbole à transmettre (d(t)) par une séquence d’étalement pseudo-aléatoire c(t) (Code
d’étalement ou Pseudo-Noise Code). Le PN-Code va ainsi diviser le code à transmettre en
sous intervalles dénommés « Chip » de période bien plus petite que celui du bit à transmettre
(la période du bit à transmettre étant le temps symbole). La mise en œuvre de l’étalement de
spectre par séquence direct est illustrée avec la figure suivante.
Figure II. 13. Représentation schématique des principales fonctions
Les trois principales fonctions à mettre en œuvre pour cette technique DS-SS sont la
génération des codes d’étalements (PN-Code), la corrélation à l’émission qui permet d’étaler
la donnée à transmettre et la décorrélation à la réception qui permet de récupérer la donnée
transmise en remontant le signal au dessus du bruit.
II.3.6.2.2
Les séquences pseudo-aléatoires
Le code d’étalement, comme nous l’illustrons sur la Figure II. 14, permet de diviser en
sous intervalles le bit à transmettre. Pour ce faire, il suffit de multiplier, au sens booléen du
terme (Ou Exclusif) la donnée à émettre et le code d’étalement c(t).
-56-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 14. Exemple d’un codage par étalement de spectre par séquence directe.
Les séquences pseudo-aléatoires c(t) possèdent des propriétés mathématiques
particulières. Tout d’abord, afin de ne pas modifier les propriétés statistiques du signal émis
(et par conséquent son spectre), elles doivent être le plus faiblement auto-corrélées :
+∞
Rc (τ ) = ∫ c(t ).c(t − τ )dt = 0
−∞
pour τ ≠ 0
[Eq.II. 11]
où Rc(τ) représente la fonction d’autocorrélation de c(t).
Afin d’assurer la sécurité et d’éviter le brouillage des sources entre-elles, les séquences
doivent être le plus faiblement intercorrélées :
+∞
Rci c j (τ ) = ∫ ci (t ).c j (t − τ )dt = 0
−∞
[Eq.II. 12]
Où ci et cj représentant deux séquences différentes.
Enfin, pour permettre la synchronisation, elles doivent posséder un pic d’autocorrélation
le plus étroit possible :
+∞
Rc (0) = ∫ c(t ).c(t )dt = 1
−∞
[Eq.II. 13]
Comme ces propriétés sont celles d’un process stochastique proche du bruit, on les
nomme séquences pseudo-aléatoire (ou pseudo-noise sequences).
La fonction d’autocorrélation [Eq.II.11] peut être tracée à l’aide du logiciel SABER et
représentée sur la Figure II. 15.
-57-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
1,2
1
Corrélation
Corrélation
Rc(τ )
0,8
Rc (N=15)
0,6
0,4
-0,068
0,2
0
-0,2 0
50
100
150
200
250
300
350
400
τ (ns)
Figure II. 15. Fonction d'auto corrélation pour N=15 (Ts=375ns, Tc=25ns).
Au vu de ces propriétés mathématiques, il semble important que la synchronisation, entre
le code à la réception et le code à l’émission, se fasse correctement. Dans le cas d’un écart
temporel entre les deux codes, seul le bruit étalé pourra être récupéré au niveau du récepteur.
Cet organe de synchronisation est composé de deux étages, un qui permet de rechercher
rapidement un pic d’autocorrélation dans le signal reçu et l’autre qui permet d’affiner cette
recherche. Ces deux fonctions s’appellent respectivement organe de synchronisation et boucle
à verrouillage de délai et seront détaillées dans le paragraphe (Chapitre II §II.5.4.2.2 et
§II.5.4.3).
II.3.6.2.3
L’étalement à l’émission
L’étalement de spectre correspond à la multiplication du PN-Code généré à l’émission
avec la donnée binaire éventuellement codée à émettre comme l’illustre la figure suivante.
Donnée binaire
d(t)
Donnée étalée
d(t)c(t)
Modulateur
PSK
Signal étalé Se(t)
2 P d (t )c(t ) cos( wo t )
Porteuse
2 P cos( wo t )
PN-Code
c(t)
Figure II. 16. Principe de l’étalement de spectre à l’émission.
Supposons que c(t) soit une séquence NRZ (Non Retour à Zéro) prenant ses valeurs dans
l’alphabet {-1, +1}, c(t) s’écrit alors :
c(t ) =
+∞
∑ C .g (t − nT )
n = −∞
n
c
[Eq.II. 14]
où g(t-nTc) est la forme du signal (Signal Shape), et Cn représente la séquence transmise tirée
d’un alphabet binaire {-1, +1}.
-58-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Supposons ensuite que sd(t) soit un signal DBPSK (Differential Binary Phase Shift
Keying) défini comme suit :
s d (t ) = a(t ). cos[ w0 t + θ d (t )]
[Eq.II. 15]
avec w0 la pulsation de la fréquence porteuse, a (t ) = 2 P l’enveloppe constante d’une
porteuse de puissance P et θ d (t ) la phase de modulation faisant des sauts de 180° codant
l’information transmise en différentiel. Il apparaît alors que le signal peut aussi être exprimé
de la manière suivante :
s d (t ) = 2 P d (t ) cos( w0 t )
[Eq.II. 16]
avec d(t) l’information codée en différentiel.
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 aisément la densité
spectrale de puissance de sd(t) et de se(t) si l’on considère que c(t) est parfaitement aléatoire.
Cette hypothèse n’est pas loin de la réalité puisque les séquences sont calculées [ISCC95]
pour être faiblement corrélées. Les densités spectrales de puissance du signal représentant les
données SSd et du signal étalé en sortie de l’émetteur sont :
{
}
[Eq.II. 18]
{
}
[Eq.II. 19]
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 représentation associée est illustrée sur les figures (a) et (b) de la Figure II. 17 dans
le cas d’un facteur d’étalement de longueur N=3.
On observe que la densité spectrale du signal étalé est divisée par N alors que le spectre
est étalé de la valeur N.
-59-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
(a)
(b)
Figure II. 17. Densité spectrale de puissance du signal de donnée et du signal de donnée étalé (N=3)
II.3.6.2.4
Le désétalement par corrélation
A la réception, le désétalement s’obtient en corrélant le signal reçu avec un PN-code
généré localement et identique à celui utilisé en émission. La Figure II. 18 en illustre le
principe.
Figure II. 18. Principe de la décorrélation à la réception.
L’opération de décorrélation est un point crucial de l’organe de réception. Pour qu’elle se
passe correctement, il faut estimer le retard Td apporté par le canal. Cette estimation sera faite
par l’organe de synchronisation. Le signal en sortie du multiplieur s’exprime
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 corrélation est totalement réalisée après le
filtrage passe-bande (qui réalise ainsi une fonction d’intégration) et que l’on néglige les
distorsions apportées par ce filtre, alors le signal en sortie du décorrélateur est :
s c (t ) = s m (t )
filtré
= 2 P Rc (Td − Td' ) cos[w0 t + θ d (t − Td )]
-60-
[Eq.II. 21]
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Si la synchronisation joue son rôle correctement alors Td=Td’ ce qui rend la fonction
d’autocorrélation Rc maximale (égale à 1) et le signal est correctement désétalé. Si par contre
|Td|>Td’, les propriétés d’autocorrélation entraînent une fonction Rc minimale. C’est
pourquoi la partie synchronisation et en particulier la poursuite seront les organes qui
détermineront les performances du système.
La partie décorrélation ne peut évidemment se dérouler correctement que si les PNCodes de l’émission et de la réception sont égaux. En effet si la donnée binaire est étalée avec
un PN-Code ci(t) et que la décorrélation se fait avec un PN-Code cj(t), le signal en sortie du
corrélateur s’exprime de la manière suivante :
s d (t ) = 2 P ci c j (τ ) cos[w0 t + θ d (t − Td )] = 0
[Eq.II. 22]
au vue des propriétés d’intercorrélations [Equa.II.12]
L’autre propriété importante de la corrélation en réception est l’augmentation du rapport
signal sur bruit en sortie du démodulateur d’un gain (dénommée Gp) par rapport au rapport
signal sur bruit en entrée du démodulateur (cf. Equation II.16).
⎛P⎞
= 10 log10 ⎜ ⎟ + GP
⎝J⎠
dB
⎛S⎞
avec G p = 10 log10 ( N ) = ⎜ ⎟
−
sortie
⎝ B ⎠ démodulateur
S
N
[Eq.II. 23]
⎛S⎞
⎜ ⎟entrée
⎝ B ⎠ démodulateur
[Eq.II. 24]
Ce gain, dénommé gain en traitement, ou gain en process (Gp) est directement fonction
du facteur d’étalement N.
II.4 Caractéristiques retenues pour le système désiré
A la lumière de cet état de l’art sur les communications numériques, il devient possible de
dresser un cahier des charges en vue de la réalisation du système final. Le but premier est de
réaliser un système de communication radiofréquence pour la communication entre capteurs
et vers un système central, dans un environnement clos. Le système a la vocation d’être le
plus flexible, multicanaux avec un canal haut débit (5 Mb/s) tout en assurant un TEB
d’environ 10-6.
De ces considérations, découle le cahier des charges suivant :
-61-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Fréquence porteuse
2,44 GHz
norme 802.11.b
Bande passante
80MHz
norme 802.11.b
Modulation
DBPSK/DQPSK
performance et réalisation
Méthode d’accès
CDMA
Flexibilité
Technique d’étalement
DS-SS
performance et réalisation
S/N en entrée du démodulateur
11dB
TEB et modulation
S/N en sortie de l’étage RF
3 dB
11dB-Gpmin
Particularité
Générateur de PN Code programmable
Filtrage de Nyquist non optimal
(Fcoupure= 1/Tchip)
Tableau II. 5. Caractéristiques retenues pour la réalisation d’un prototype de communication entre
capteurs.
Le cahier des charges étant fixé, il est possible de dresser un synoptique du système
global. Ce système, présenté sur la Figure II. 19, comporte toutes les fonctions de base
permettant l’émission et la réception des données numériques.
Le principe de chaque fonction sera détaillé dans la suite de ce chapitre.
Capteur de
position
Capteur de
température
Video/Voix
Données
émises
Données
GENERATEUR
DE PN CODE
FPB
LNA
MODULATION
A
Code 1 N=2047
Code 2 N=7
CODAGE
DIFFERENTIEL
ETALEMENT
Osc Local
2.44 GHz
Canal
AWGN
FPB
EMETTEUR
Bruit
Blanc Gaussien
LNA
TRANSPOSITION
EN FREQUENCE
A
DESETALEMENT
DEMODULATEUR
DIFFERENTIEL
MISE EN
FORME
PN - Code
Osc Local
2.44 GHz
GENERATEUR
DE PN CODE
Horloge de Rythme
SYNCHRONISATION
POURSUITE
RECEPTEUR
Traitement des données
Figure II. 19. Schéma de principe global du système Emetteur/Récepteur
-62-
Données
reçues
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Les fonctions présentées sur ce synoptique à modéliser et à optimiser sont :
La partie émission : Elle comprend les étages numériques réalisant le codage des
signaux issus des capteurs et la fonction étalement de spectre. Ce dernier étage permet
d’étaler le signal codé grâce au codage de l’information par l’intermédiaire d’une
séquence pseudo – aléatoire. La partie radiofréquence (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
génération d’un bruit blanc gaussien et un étage dans lequel le bruit est additionné au
signal étalé sur fréquence porteuse.
La partie réception : La partie radiofréquence transpose le signal reçu en bande de
base. La fonction désétalement permet enfin de désétaler les données reçues et ainsi
récupérer la trame émise. Pour faire cette opération, les systèmes communiquants à
étalement de spectre requièrent que le PN – code généré localement soit synchronisé
avec la séquence de la donnée étalée pour que le désétalement soit correct. C’est pour
cela que nous trouvons la présence des organes de synchronisation et de poursuite.
II.5 Description fonctionnelle des fonctions à modéliser
Dans ce paragraphe, nous aborderons les différents organes de notre système. Pour
chaque organe présenté nous exposerons leurs principes et leurs modèles associés. Ils seront
validés de manière qualitative par l’observation des signaux principaux sous le logiciel
SABER.
Figure II. 20. Principe des fonctions à modéliser.
Les données binaires (tri(t)) issues des capteurs sont encodées différentiellement puis
étalées avec le code d’étalement c(t) issu du générateur. Après 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 fréquence centrale du filtre est
de 2,44 GHz et sa largeur de bande de 80 MHz. A ces fréquences, la réalisation d’un tel filtre
est très délicate, c’est pourquoi nous avons décidé de réaliser le filtrage de Nyquist avant la
modulation. En effet, il sera plus aisé de filtrer le signal en bande de base qu’en bande portée
à 2,44 GHz. Cela ne change rien dans le principe puisque l’occupation spectrale est fixée par
le signal en bande de base. De plus, comme le filtrage est réalisé en amont du modulateur,
l’utilisation d’un filtre numérique sera possible [LEE98].
Enfin, en ce qui concerne la puissance du signal, elle doit être normée (Pe=100 mW
selon les normes ETSI). Si on suppose un filtrage idéal, le signal émis s’écrira donc :
e(t ) = 2 Pe cos(ω 0 t + θ d (t ) + ϕ )
Nous allons à présent détailler ces différentes fonctions.
-63-
[Eq.II. 25]
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.1
Principe de la modulation différentielle
Comme nous venons de le voir dans le paragraphe précédent, il a été choisi d’implanter
un modulateur différentiel de phase réalisant l’opération de codage différentiel des données
issues des capteurs. Le signal à transmettre n’est donc plus un simple bit mais une information
relative à la comparaison avec le bit précédent. Cette comparaison représentera 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 différents qui sera
traduit avec le codage suivant :
tri = 1 ⇔ Δθ d = π
[Eq.II. 26]
tri = 0 ⇔ Δθ d = 0
avec tri la donnée à transmettre et Δθ d le saut de phase. Le tableau suivant fait état de la
table de vérité de l’encodeur BPSK en donnant la valeur de la phase instantanée di en fonction
de l’information à transmettre tri et l’état de phase précédent di-1.
d i-1
0
0
1
1
tri ⇒ Δθ d
0⇒ 0
1⇒π
0⇒ 0
1⇒ π
di
0
1
1
0
Tableau II. 6.Table de vérité du codeur de transition.
Nous déduisons immédiatement du tableau précédent l’opération logique liant
l’information à transmettre et le signal encodé :
d i = tri ⊕ d i −1
[Eq.II. 27]
Cette fonction est représentée par la fonction OU exclusif .
II.5.2
Modélisation du générateur de PN Code
Les codes d’étalement appelés aussi PN-code, sont des séquences binaires possédant de
bonnes propriétés de bruit [Eq.II.12]. Il existe différentes classes pour les séquences pseudoaléatoires qui comportent deux grandes familles non périodiques (Séquence de Barker) et
périodiques (M-Sequences, Séquences de Hall, Séquences Jumelles, Séquences de Legendre)
[ISCC95] [SIMO94]. Nous avons choisi d’utiliser la sous-famille des M-séquences (ou
Maximal-length sequences) pour les raisons suivantes :
o Elles sont périodiques et donc plus facilement synthétisables par un circuit
numérique.
o Elles sont générées au moyen d’un polynôme caractéristique, dont les
coefficients sont paramétrables par un circuit numérique.
La fonction d’autocorrélation présente à l’origine (décalage nul) un maximum, leur
intérêt majeur est d’être facilement généré grâce à des registres à décalages linéaires et donc
synthétisables dans l’objectif d’intégration numérique.
II.5.2.1
Principe de la génération des M –séquences
La séquence aléatoire (b0, b1,b2, …bn) que nous voulons produire grâce à ce générateur
peut être représentée par le polynôme suivant :
-64-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
b( D) = b−1 D −1 + b0 + b1 D 1 + ... + bn D n
[Eq.II. 28]
Cette séquence b(D) peut être produite par un générateur de registre à décalage rebouclé
comme le montre la figure suivante :
a r-1
gr
a r-2
a2
g3
g r-1
a1
g2
a0
b(D)
g1
g0
Figure II. 21. Générateur de séquence rebouclé de type Galois.
Le polynôme a(D) est la séquence chargée dans les registres à décalage et le polynôme
g(D), symbolisé par des interrupteurs ouverts ou fermés selon la valeur des coefficients de
g(D), représente l’architecture du générateur. Les polynômes g(D) utilisés sont choisis de telle
sorte que b(D) ait les propriétés d’un PN-Code. Ces polynômes sont dits primitifs et ont été
étudiés et listés par Perterson et Weldon [ISCC95].
Le calcul de la séquence b(D) ainsi généré, se fait grâce à une division polynomiale des
polynômes a(D) par g(D) également dénommé polynôme caractéristique du générateur.
b( D ) =
a( D)
g ( D)
[Eq.II. 29]
Pour que la séquence b(D) soit de longueur maximale (propriété de M séquences), il faut
que le polynôme g(D) soit irréductible et que la période P = 2r-1 soit le plus petit entier. Pour
cela, il faut que g(D) soit un polynôme primitif [ISCC95].
Un autre type de générateur, développé par Fibonacci, permet de générer des M
séquences. Ce dernier génère la même trame à partir du même polynôme mais avec une
structure différente. Ces deux types de générateurs (Galois et Fibonacci) sont implantés dans
notre système. Ils ont été développés grâce aux travaux de Chien et Jain [JAIN92], sur les
générateurs programmables de longueur maximale N=215-1. Le générateur de Galois est
utilisé à l’émission car il est plus simple à mettre en œuvre et plus rapide tandis que le
générateur de Fibonacci sera utilisé à la réception car il permet d’initialiser le démarrage des
séquences par une trame série issue de la séquence (Chapitre II §II.5.4.4).
II.5.2.2
Simulation sous le logiciel SABER
La structure du générateur de Galois a été simulée sous le logiciel SABER et peut être
programmée par 2 mots parallèles c(n) et i(n).
Le premier mot représente la valeur du coefficient c(n) permettant de choisir la longueur
du PN-Code. Le coefficient c(n) est calculé à partir du polynôme primitif g(D) auquel on
retranche la valeur g0 (coefficient qui permet le rebouclage) :
c ( n) = g ( D ) − g 0
[Eq.II. 30]
Le deuxième mot i(n) est le vecteur d’initialisation du registre à décalage toujours égal à
1 afin d’ « amorcer » le système bouclé. L’exemple de la figure suivante générant un PN-code
-65-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
de longueur N=15, fixe le coefficient c(n) à 9 soit [000000001001], et le vecteur
d’initialisation i(n) à 1.
c(n)
Coefficients
Horloge Chip
PN_Code
Démarrage
I(n)
Initialisation
Figure II. 22.Générateur Galois avec les modules de configuration.
Le polynôme primitif pour la valeur de coefficient c(n) choisie vaut g(D)=1+D+D4
(010011)b [2 3]O. La valeur du vecteur d’initialisation i(n) équivaut à a(D). On peut donc
retrouver après calcul, la valeur de la séquence b(D) par la division polynomiale de a(D) par
g(D). Dans notre cas, nous obtenons b(D)= 111101011001000 qui permettra donc de générer
un PN-Code de longueur 15.
Le tableau suivant nous présente la correspondance entre la valeur du polynôme primitif
g(D), la valeur du coefficient c(n) et la valeur du PN-Code.
-66-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
N
Valeur octale Coefficient c[n]
g(D)
Valeur du PN code b(D)
7
[13]
000000000101 1110100
15
[23]
000000001001 111101011001000
31
[45]
000000010010 1010111011000111110011010010000…
63
[103]
000000100001 1111110101011001101101001001110…
127
[211]
000001000100 1001001101001111011100001111111…
255
[435]
000010001110 1011000111101000011111111001000…
511
[1021]
000100001000 1000100011001000111010101101100…
1023
[3023]
001100001001 1111010111101110010011111000100…
2047
[4005]
010000000010 1010101010111011101110010011100…
Tableau II. 7. Configuration du générateur de PN code à partir du coefficient c[i].
qn
r
D FF
clk
q
qn
r
s
D FF
d
clk
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
qn
q
s
D FF
d
clk
r
d
q
qn
r
D FF
clk
d
s
q
qn
r
s
D FF
clk
d
q
qn
r
D FF
clk
d
s
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
qn
q
s
D FF
d
clk
r
d
q
qn
r
D FF
clk
d
s
q
qn
r
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
D FF
s
d
clk
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
s
D FF
clk
d
q
qn
r
D FF
clk
d
s
i(n)
q
qn
r
Load_C
Clock_in
D FF
s
d
clk
set_l4
Bascule D
SET
level:_1
el:_1
c(n)
qn
q
d
s
q
PN_out
La figure suivante représente le schéma électrique du générateur de Galois qui est
composé de bascules D et d’une porte logique OU-Exclusif qui forment le registre à décalage,
et de portes ET pour la configuration du polynôme primitif. Le mot d’initialisation i(n) est lui
créé grâce à des portes NON ET et NON .
Figure II. 23. Exemple d’un modèle de générateur de Galois.
-67-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.3
Modélisation de la fonction corrélation
Le corrélateur est l’élément essentiel (aussi bien à l’émission qu’à la réception) pour un
système à étalement de spectre, puisqu’il détermine les propriétés fondamentales du gain en
traitement et de l’immunité aux multi-utilisateurs. Nous présentons dans cette partie le modèle
de la corrélation à l’émission.
II.5.3.1
Corrélation à l’émission
Pour l’émission la corrélation consiste à mélanger la trame émise et encodée
différentiellement avec le PN-Code généré localement pour produire un signal modulé et étalé
se(t) d’après l’équation [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) représente le PN-Code et d(t) la donnée binaire.
La multiplication entre la donnée binaire et le PN-code peut être réalisée numériquement
par un OU-Exclusif inversé (ET-inclusif) comme le montre la table de vérité suivante :
d(t)
di
c(t)
ci
d(t)×c(t)
d i ⊕ ci
d i ⊕ ci
1
1
1
1
1
0
1
1
1
-1
0
-1
1
0
-1
0
1
1
-1
1
1
-1
0
-1
0
1
0
0
Tableau II. 8. Table de vérité révélant la fonction d’étalement de spectre
di et ci correspondent respectivement aux valeurs numériques de trames d(t) et c(t)
initialement codées en NRZ.
Il est toutefois possible d’utiliser un simple OU_EXCLUSIF, l’information transmise
sera alors inversée. Le schéma de principe modélisant la fonction de corrélation de l’émission
peut donc être représentée de la manière suivante :
Figure II. 24. Modèle de l’émetteur avec le corrélateur.
Le modèle implanté sur le simulateur nous permet de valider le principe de corrélation à
l’émission. Les chronogrammes présentés sur la Figure II. 24 représentent les différentes
formes d’ondes présentes à l’émetteur avec les paramètres suivants :
-68-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Un temps symbole Ts= 375ns.
Un coefficient d’arrondi du filtre de Nyquist valant ici 0,35.
La trame émise [10111001].
Trame émise
Trame encodée
D(t)_PN
Sortie corrélateur
D(t)_PN_filt
sortie filtre de Nyquist
Figure II. 25. Principales formes d’ondes de l’émetteur avec le corrélateur.
II.5.3.2
Corrélation à la réception
Le corrélateur à la réception est l’organe clef du système de réception puisque c’est lui
qui détermine les performances (gain en traitement) permettant de rehausser le rapport signal
sur bruit [CHUN93]. Comme nous l’avons montré précédemment (§ II.3.6.2.4) la
décorrélation s’effectue en réalisant les opérations analogiques de multiplication et intégration
avec un multiplieur et un filtre passe-bas pour une implantation en numérique [MELE01].
Plusieurs possibilités d’architectures ont été envisagées. La solution retenue est présentée 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 théorique, tout en conservant une architecture simple.
Intégrateur Bloqueur
Signal étalé reçu Sm(t)
2 P d (t − Td )c(t − Td ) cos( wot )
Intégrateur
Echantillonnage
Blocage
( N × 4 ) −1
∑
Signal désétalé Sc(t)
2 P Rc(Td − Td ' )d (t − Td ) cos( wo t )
0
PN-Code
c(t-Td’)
Fréquence d’échantillonnage
Figure II. 26. Schéma de principe pour la corrélation numérique en réception.
Ce schéma est validé par la simulation suivante des principales formes d’ondes pour un
corrélateur à la réception.
-69-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 27. Principales formes d’ondes pour le corrélateur au niveau du récepteur.
Base_r_z représentant le signal reçu étalé Sm(t).
Yl représentant le signal Sm(t) multiplié par le PN_Code local c(t-Td’).
Yl_int_z est le signal intégré sur une période de symbole.
Yl_échant est la sorite du filtre Intégrateur/Bloqueur Sc(t).
II.5.4
Modélisation de l’organe de synchronisation
Avant de modéliser notre organe de synchronisation, nous définirons la problématique de
la synchronisation pour un système à étalement de spectre en exposant les principes sur
lesquels elle se base.
II.5.4.1 Problématique de la synchronisation d’un organe à étalement
de spectre
Le code pseudo-aléatoire d’étalement présente de bonnes propriétés d’autocorrélation ce
qui autorise la synchronisation lors d’une inter-corrélation. En effet, pour que le désétalement
se passe correctement, il est nécessaire que le PN-Code soit en phase avec le signal reçu ce
qui permettra de minimiser l’erreur de corrélation et donc de maximiser le gain en traitement.
La synchronisation du PN-Code est donc un point crucial au niveau du récepteur et se déroule
en deux temps : la première fonction que nous appellerons « acquisition » permet d’aligner le
code identique à l’émission et localement généré avec le signal reçu grâce à la détection d’un
pic d’autocorrélation. La deuxième fonction, la « poursuite » permet de maintenir un
alignement fin des données reçues. La figure suivante illustre ces différents éléments en
présentant un schéma synoptique de l’ensemble de synchronisation en réception.
-70-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 28. Schéma de principe de l’organe « Acquisition/ poursuite ».
Dans les paragraphes suivants, nous présentons le principe de fonctionnement mis en
œuvre pour différents organes recensés pour les fonctions acquisition et poursuite. Nous
présentons dans ce cadre deux dispositifs permettant l’acquisition pour un système à
étalement de spectre en milieu bruité dont les performances associées détermineront le choix
de la structure finale pour notre implantation.
II.5.4.2
Principes de mise en œuvre de la fonction acquisition
Les différents moyens pour retrouver l’origine du PN-Code pour un système à étalement
de spectre sont résumés dans l’organigramme suivant [SIMO77].
Désétalement pour
un système DS/SS
Estimation
Séquentielle
SERIE
RASE
Filtrage
adapté
RARASE
Rapid Acquistiion by
Sequentiial Estimation
Variable Dwell
Time
Fixed Dwell Time
Multiple Dwell
Time
Single Dwell Time
CORRELATION
Figure II. 29. Organigramme des différentes possibilités d’acquisition.
Les recherches pour l’origine du PN-Code, dans l’étage désétalement, peuvent se
décomposer en deux catégories :
Le filtrage adapté: cette structure permet d’utiliser un filtre adapté au code
d’étalement.
-71-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
La correlation : Ces structures sont basées sur l’emploi d’un ou plusieurs corrélateurs.
Ils existent deux principales techniques qui sont :
•
La recherche SERIE examine toutes les possibilités d’alignement du PN-Code
généralement à l’aide de détecteur. Les possibilités d’alignement peuvent se
faire soit pour une période fixe (qui peut être simple ou multiple), soit pour une
période variable.
•
Une estimation séquentielle du PN-Code qui permet à partir du signal reçu de
retrouver le PN-Code.
L’étage de détection est quant à lui composé d’un détecteur de maximum de
vraisemblance permettant d’évaluer à partir du vecteur de décision, quelle information a été
transmise.
II.5.4.2.1
Mise en œuvre de la fonction d’acquisition
L’acquisition se base sur deux grands principes à savoir, la corrélation et le filtrage
adapté.
II.5.4.2.1.1
L’acquisition par corrélation
Comme nous l’avons énoncé dans le paragraphe II.3.6.2.4, la méthode dite de corrélation
résulte d’une multiplication entre le signal reçu r(t) et le PN-code ci(t) suivie par une
intégration de ce résultat sur une durée T (dans notre cas le temps symbole). Ce calcul
représente aussi la fonction d’intercorrélation en r(t) et ci(t). On récupère ainsi l’image de
l’onde transmise et donc de l’information. Dans le cas de l’acquisition par corrélation en
réception, le principe repose sur la mise en parallèle de plusieurs branches, réalisant chacune
cette fonction corrélation entre le signal bruité reçu et le code d’étalement volontairement
retardé.
Figure II. 30. Synchronisation par corrélation.
Le signal r(t) passe à travers K corrélateurs en parallèle qui assurent l’image ri(t)
composée par chaque branche de corrélation. On obtient alors l’équation suivante :
-72-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
TS
TS
0
0
ri (t ) = ∫ r (t )ci (t )dt = ∫ [ y (t ) + n(t )]ci (t )dt
Eq.II. 32]
avec r(t) le signal étalé reçu , y(t) le signal émis, n(t) le bruit et c(t) l’ensemble des
fonctions orthonormés (pour nous les PN-Codes).
A partir de la banque de résultats ri(t), en fin de chaque branche, nous trouvons la
fonction détection, non représentée ici, qui sera décrite dans une partie ultérieure (Chapitre 2
§II.5.4.2.1.3).
II.5.4.2.1.2
L’acquisition par filtrage adapté
La seconde méthode est appelée « filtrage adaptée ». Le principe du filtrage adapté est la
recherche d’un filtre f(t) tel que le rapport signal sur bruit soit maximal à l’instant de la
décision T.
Figure II. 31. Synchronisation par filtrage adapté.
Prenons l’exemple suivant :
r (t ) = x(t ) + b(t )
[Eq.II. 33]
avec x(t) le signal émis, b(t) le bruit et r(t) le signal reçu.
Le signal r(t) se positionne à la sortie d’un ensemble de filtres à réponse impulsionnelle
f(t). D’où z(t) la sortie du filtre vaut :
z (t ) = (h ∗ r )(t ) = (h ∗ x )(t ) + (h ∗ b )(t )
[Eq.II. 34]
Le signal de sortie est donc la somme des sorties non bruitées et de la contribution du
bruit. Nous pouvons alors retrouver par le calcul du rapport signal sur bruit et le
développement des produits de corrélation que le filtre qui maximise le rapport signal sur
bruit à l’instant de décision T est le filtre dont la réponse impulsionnelle hk(t) est la copie
retournée et décalée dans le temps du signal que l’on recherche d’où
-73-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
⎧ f (T − t )
k (t ) = ⎨ k
⎩0
[Eq.II. 35]
C’est pourquoi on parle de filtrage adapté puisque le filtre s’adapte au signal. La relation
existante entre le signal et l’inverse de la fonction de transfert souhaitée peut être calculée
grâce à une simple intercorrélation entre r(t) et x(t) :
t
t
0
0
z (t ) = R yx (T − t ) = ∫ r (τ )x k (t − τ )dτ = ∫ r (τ ) f k (T − t + τ )dτ
[Eq.II. 36]
Le récepteur calcule donc l’intercorrélation entre le signal reçu r(t) et le signal attendu
x(t). L’avantage de cette méthode réside par rapport à la corrélation dans l’optimisation du
rapport signal sur bruit en recherchant le maximum pour l’instant T.
T
rk (t ) = y k (T ) = ∫ r (τ )hk (τ )dτ
[Eq.II. 37]
0
L’inconvénient de cette méthode est de reproduire l’inverse de la fonction de transfert
souhaitée.
II.5.4.2.1.3
L’organe de décision
Nous traitons dans ce paragraphe l’organe de décision qui est l’élément permettant de
trouver la meilleure information possible à partir du signal reçu ri(t). Cet organe se situe
derrière les organes de corrélation (Chapitre II .§II.5.4.2.1.1ou §II.5.4.2.1.2).
Figure II. 32. Représentation schématique de l’organe de décision.
Comme le montre la Figure II. 32 ce choix se fait à partir du calcul de probabilité d’erreur
au niveau de l’observation ri(t). Ce critère de décision s’appelle le critère de maximum de
vraisemblance.
II.5.4.2.2
Les principaux organes d’acquisition
Nous exposons ici les trois principales catégories basées sur les principes que nous
venons de présenter.
II.5.4.2.2.1
Détecteur du maximum de vraisemblance
La Figure II. 33 montre la structure d’un détecteur à maximum de vraisemblance. Nous
pouvons observer qu’il est composé de deux éléments. Le premier permet de calculer le
rapport de vraisemblance qui dépend du canal alors que le deuxième compare ce rapport à un
seuil.
-74-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 33. Principe d’un détecteur de vraisemblance.
Il existe deux manières de calculer le maximum sur une probabilité d’erreur. La première
est la « stratégie Bayésienne » qui base son calcul sur la notion de coût qui représente la
pénalité ou la perte associée à l’évènement conjoint (c'est-à-dire le prix à payer pour chacune
des décisions). La deuxième stratégie est la « stratégie Neyman-Pearson » qui elle considère
deux sortes d’erreurs qui sont l’erreur de fausse alarme et l’erreur de mauvaise détection. Pour
ces deux stratégies, la figure suivante montre la structure d’un détecteur à maximum de
vraisemblance. Seul le calcul de seuil de décision change entre les deux structures. Dans le
cas Bayésienne, le seuil dépend du coût 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 d’une détection par maximum de vraisemblance avec corrélateur.
Le calcul pour les stratégies précédentes se fait symbole par symbole, c'est-à-dire que le
calcul de la probabilité d’erreur du détecteur est optimal pour chaque symbole. Cependant
lorsque le signal présente une mémoire, c'est-à-dire 2 symboles successifs et ne sont pas
indépendants, la stratégie du détecteur doit détecter une séquence de symbole. L’algorithme
de recherche le plus connu est l’algorithme de Viterbi [VERD01].
II.5.4.2.2.2
SERIE
Historiquement la synchronisation de type SERIE a été étudiée par SAGE [SAGE64] un an
avant le système RASE. La structure SERIE est basée sur la corrélation du signal reçu avec le
PN-Code généré localement [POLY84]. Une détection en sortie de corrélation estimera la
corrélation. Comme nous pouvons le voir sur l’organigramme (Figure II. 29) des différentes
acquisitions pour un système à étalement de spectre, il existe plusieurs possibilités pour une
acquisition de type SERIE :
i.
Single Dwell time permet la recherche de chaque possibilité d’alignement sur un
intervalle de temps fixé.
ii.
Multiple Dwell time permet quant à elle une estimation de la corrélation sur un
intervalle de temps variable. Cette structure sera donc composée de plusieurs
branches d’observation, avec un retard variable du code d’étalement sur chaque
branche réalisant la corrélation.
-75-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.4.2.2.2.a
La structure Single Dwell time
Le modèle classique décrivant une acquisition SERIE est présenté par la figure ci-dessous
[ISCC95].
Figure II. 35. Synchronisation SERIE simple branche.
Il est composé de la fonction corrélation (multiplieur et intégration par filtrage) pour la
pré-détection, d’une mise au carré pour la détection non cohérente, d’un bloqueur qui
maintient la valeur sur un temps symbole et d’un comparateur de seuil pour la prise de
décision.
Cette structure présente des inconvénients : si la prise de décision en fin de chaîne directe
fait état d’une corrélation médiocre, il faut recommencer un nouveau calcul en décalant le
code local. Ceci peut se réitérer jusqu’à « N.Tc » fois, et devient extrêmement pénalisant lors
d’ séquence aléatoire longue (N élevée). Ce temps peut être diminué par une augmentation du
nombre de branches, solution proposée par la structure « Multiple Dwell ». Toutefois, ce type
d’acquisition est efficace, avec des fonctions pouvant être implémentées en numérique.
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 contrôle de corrélation est ajoutée pour détecter la branche présentant une
corrélation maximale. Le PN-Code local est décalé d’une fraction de temps chip et le résultat
de chaque branche est à nouveau estimé. Il est possible de trouver un compromis
performance/temps de calcul en fixant judicieusement ce temps de décalage.
.
.
.
Figure II. 36. Synchronisation SERIE N branches.
-76-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Outre une complexité plus importante, l’avantage de cette structure est la diminution du
temps d’accrochage et sa bonne immunité au bruit.
II.5.4.2.2.3
RASE : Rapid Acquisition by Sequential Estimation
La méthode de synchronisation RASE permet de reconstituer le PN-Code à partir du
signal reçu. Cette structure a été développée par [WARD77] puis approfondie par Kilgus et
Yiu [POLY84b]. Le schéma de fonctionnement est le suivant:
Figure II. 37. Principe de la synchronisation RASE.
Initialement les commutateurs sont sur la position 1. Une estimation du PN-Code incident
est effectuée par le détecteur et est chargée dans les registres du générateur de PN-Code.
Lorsque les registres sont pleins, les commutateurs sont mis en position 2 et le générateur
délivre le PN-Code. L’étape suivante est la vérification de la synchronisation, pour cela une
corrélation entre le PN-Code estimé et le signal reçu est faite. Une logique de contrôle permet
de déterminer si la corrélation a eu lieu. Si c’est le cas, les interrupteurs restent en position 2
et la synchronisation entre le PN-Code et le signal reçu est correcte sinon il faut ré-estimer le
code incident, les interrupteurs repassent donc en position 1. Il existe une amélioration de
cette méthode par la technique de RARASE (Recursion Aided Rapid Acquisition by
Sequential Estimation) qui repose sur les mêmes principes que la technique RASE pour
l’estimation et la détection de corrélation. Un indicateur de mérite formé par la somme de
chaque code sur un temps « chip » détermine quand les registres du générateur doivent être
commutés pour le rechargement du code à estimer.
Cette méthode a comme avantage que le temps d’estimation du PN-Code est relativement
faible et elle permet que le PN-Code généré localement soit parfaitement en phase avec le
signal reçu. L’inconvénient de cette technique est qu’elle est valable pour des rapports signal
sur bruit modérés car les erreurs de l’estimation sont de plus en plus importantes lorsque
l’environnement est de plus en plus bruité. Ceci est donc contradictoire avec le principe de
l’étalement de spectre.
-77-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.4.3
Etude /comparaison théoriques des boucles de poursuite
Après avoir décrit la partie acquisition qui permet de retrouver le PN-Code, nous allons
présenter la seconde fonction constituant la synchronisation d’un système à étalement de
spectre « la poursuite ». Cette fonction permet d’affiner et de maintenir le code d’étalement
avec la trame reçue pour effectuer l’opération de désétalement correctement.
Cet organe se schématise de la manière suivante:
Commandé par validation de l’acquisition
Erreur de poursuite
δ= Td - Td’
r(t)
signal reçu avec
un certain retard
Td
DISCRIMINATEUR
ε(t,δ)
Filtre de
boucle
Signaux en
avance ou en
retard
Signal en phase
avec le signal
reçu Td’
Générateur de
PN CODE
Oscillateur
numérique controlé
en tension
Figure II. 38. Schéma de principe d’une boucle de poursuite.
La boucle de poursuite comporte quatre fonctions principales à savoir :
Le discriminateur : Il fournit une tension ε(t) proportionnelle à l’erreur de
poursuite δ. Cette erreur de poursuite est définie comme la différence 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 d’effectuer une intégration de la tension obtenue.
L’oscillateur numérique commandé en tension (NCO) permet de générer un signal
dont la période varie en fonction de sa tension d’entrée.
Le générateur du code d’étalement qui permet de délivrer localement des codes
fonction de la fréquence fournie par l’oscillateur. L’asservissement permet de
générer le signal de sortie en phase avec le signal d’entrée.
Toutes les topologies de boucles à verrouillage de délai sont basées sur le même schéma
fonctionnel. Les trois structures de la littérature [ISCC95] se différencient uniquement par les
fonctions intégrées dans le discriminateur.
Nous allons maintenant présenter fonctionnellement les différentes boucles de poursuite
(spécialement leur discriminateur) et en tirer leurs principales caractéristiques. Nous
étudierons en particulier la performance « Tracking Jitter » [ISCC95] qui permet d’évaluer la
variation de l’erreur de délai autour de l’origine. Cette valeur doit être bien entendu la plus
faible possible afin de garantir un taux d’erreur sur le bit (TEB) minimal.
Trois topologies d’organes de poursuite sont couramment citées dans la littérature
[GUIL03] : la boucle à verrouillage de délai (Delay Locked Loop ou DLL) cohérente, la DLL
non cohérente et la TDL (Tau Dither Loop).
-78-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.4.3.1
DLL Cohérente
Le schéma de principe de la DLL cohérente est montré sur le schéma suivant :
Δ ⎞
⎛
c⎜ t − τ d' + TC ⎟
2 ⎠
⎝
(
c t − τ d'
Δ ⎞
⎛
c⎜ t − τ d' − TC ⎟
2 ⎠
⎝
)
Figure II. 39. Schéma de principe de la DLL cohérente
Selon la Figure II. 39, nous pouvons voir que ce discriminateur est composé de 2
branches principales. Chacune des branches pilotées par le code d’étalement en avance et en
retard se compose de la manière suivante :
Une corrélation permet la multiplication entre le PN– Code (en avance et en retard) et
la trame reçue étalée en bande base.
Un filtre passe-bas qui permet de rejeter les fréquences non desirées.
Une mise au carré et un soustracteur.
La tension d’erreur ε(t) en sortie du discriminateur, après calcul, s’écrit [ISCC95] :
⎧
⎡⎛
⎣⎝
Δ⎞
⎤
⎠
⎦
⎡⎛
⎣⎝
Δ⎞
⎤⎫
⎠
⎦⎭
ε (t ) = ( y− ) − ( y+ ) = K × P × ⎨Rc2 ⎢⎜δr − ⎟Tc ⎥ − Rc2 ⎢⎜δr + ⎟Tc⎥⎬
2
2
2
2
⎩
[Eq.II. 38]
avec K le gain du multiplieur, P la puissance du signal reçu, Rc la fonction
d’autocorrélation (§ II.3.6.2.2) et Δ est une constante fixée par le concepteur, qui permet
d’ajuster le retard du code local généré comme un multiple ou un sous multiple du temps chip
Tc. Sa valeur est généralement comprise entre 0,5 et 2 [SHEE94], ce qui correspond à un
décalage temporel décalant Tc/4 et Tc respectivement. Enfin, δN représente le délai normalisé
défini comme suit :
δN =
Td − Td'
Tc
[Eq.II. 39]
L’équation [Eq.II.37] s’écrit également :
ε (t ) = K 2 PDΔ (δ N )
-79-
[Eq.II. 40]
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Nous faisons volontairement apparaître la quantité DΔ (δ r ) dénommée fonction S-Curve
qui correspond à la différence entre les 2 fonctions d’autocorrélation élevées au carré. Cette
fonction S-Curve est la caractéristique du discriminateur.
II.5.4.3.2
La DLL Non Cohérente
Le schéma de principe de la DLL Non cohérente est décrit sur la Figure II. 40.
Figure II. 40. Schéma de principe d’une DLL non cohérente.
La principale différence entre une DLL cohérente et DLL non cohérente [SIMO77] est
que cette dernière fonctionne sur fréquence porteuse alors que la DLL cohérente est sur bande
base. Cet oscillateur local délivre une fréquence égale à la fréquence porteuse d’émission à
laquelle est soustraite une fréquence intermédiaire FFI. Les signaux A1(t) et A2(t) sont alors
sur fréquence porteuse, de valeur fp-f FI. Ainsi, le discriminateur outre le signal d’entrée étalé
sur fréquence porteuse fp comporte deux branches d’entrée (avance /retard) comme dans le
cas précédent. En sortie des mélangeurs M, les signaux Y1(t) et Y2(t) sont transposés en
fréquence intermédiaire pour un rôle équivalent au filtre Passe-Bas de la boucle en bande de
base. Le détecteur d’énergie final (mise au carré et filtre) délivre alors le résultat de la
corrélation pour la branche considérée. La tension d’erreur en sortie proportionnelle à l’erreur
de poursuite estimée s’écrit [ISCC95] :
1
⎧
⎡⎛
Δ⎞
⎤
⎡⎛
Δ⎞
⎤⎫
ε (t ) = ⎣⎡ y −2 (t ) − y +2 (t )⎦⎤ = K1P ⎨Rc 2 ⎢⎜ δ - ⎟Tc ⎥ − Rc 2 ⎢⎜ δ + ⎟Tc ⎥ ⎬
2
2 ⎠ ⎦⎭
⎣⎝ 2 ⎠ ⎦
⎣⎝
⎩
1
ε (t ) = K1PDΔ (δ )
2
II.5.4.3.3
[Eq.II. 41]
La TDL (The Tau Dither Loop)
Le schéma de principe est celui représenté sur la Figure II. 41. Nous constatons à la
différence des précédentes boucles, que le discriminateur se compose d’une seule branche,
dans la mesure où un commutateur réalise une commutation périodique entre les codes
d’étalement mesurés et retardés.
-80-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Figure II. 41. Schéma de principe de la TDL.
Il comporte les éléments suivants :
-
Une fonction interrupteur, commandée par un signal numérique q(t) de valeur +1 et -1.
-
Un mélangeur couplé à un oscillateur local oscillant à une fréquence fP-fFI.
-
Un corrélateur qui permet la multiplication entre le signal reçu et deux PN– codes : un
en avance d’une demi période et l’autre en retard d’une demi période.
-
Un filtre de Passe–Bande qui permettra d’être centré sur la bande voulue.
-
Une structure de détecteur d’énergie.
-
Un multiplieur qui permettra la multiplication entre la sortie du détecteur et le signal
q(t) qui commande l’interrupteur des PN–codes .
Le principal avantage de cette structure réside dans le fait qu’elle comprend un nombre
plus réduit de fonctions comparées avec deux autres boucles (une seule branche dans le
discriminateur). La tension ε s’écrit, après calculs [ISCC95]
ε (t ) = ⎡( y− ) q1(t ) − ( y+ ) q2 (t )⎤
2
⎣
2
⎦
[Eq.II. 42]
1
2
[Eq.II. 43]
Dans le cas où :
Q1 =+1
Q2=-1
L’équation [Eq.II.42] s’écrit, après calcul:
1
2
ε (t ) = K1PDΔ' (δ ) avec DΔ' (δ ) = DΔ (δ )
-81-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
II.5.4.3.4
Comparatif des différents modèles de boucles de poursuite
Les performances exposées sont :
-
la structure du discriminateur. Ce critère nous permet de juger la complexité de la
structure en vue de l’implantation.
-
La caractéristique du discriminateur. L’expression de l’erreur de poursuite en
fonction de K le gain du multiplieur, P la puissance reçue et D(δ) la caractéristique
du discriminateur (fonction S-Curve).
-
Le « Tracking Jitter » [WILD95][WELT94]. Le paramètre représente la
dynamique de variation de délai autour de l’origine dûe au bruit présent en entrée.
2
Il est défini à partir du calcul de la variance σ δ et décrit comme suit pour les
différentes boucles :
o DLL cohérente σ δ2 =
N 0 × WL
1
=
ρL
2P
2
o DLL non cohérente σ δ =
o TDL
σ2 =
δ
=
N 0WL ⎛ 2 N 0 B N ⎞
1
⎜1 +
⎟=
4 ⎝
P ⎠ 2ρ L
N W ⎛ 1 1 ⎞⎛
8
0 L
⎜ + ⎟⎜1 +
2 P ⎝ 4 4 ⎠⎜⎝ π 2
2
⎞ N 0 WL B N
⎟+
⎟
2P 2
⎠
⎡
8
⎢1 +
⎣⎢ π 2
⎛
2 ⎞
⎟⎟
⎜⎜1 +
⎝ ρ IF ⎠
8
⎛3⎞
⎜ ⎟+
4
⎝ ⎠ 9π 2
⎛ 1 ⎞⎤
⎜ ⎟⎥
⎝ 4 ⎠⎦⎥
1 ⎛⎜
3.261 ⎞⎟
1.811 +
⎟
ρ
2ρ ⎜
L⎝
IF ⎠
avec N0= densité spectrale du bruit, WL= Bande passante équivalente du bruit,
P
P=Puissance reçue , BN = Bande Passante du filtre Passe Bande et ρ IF =
.
N 0 BN
Dans le cas de courts délais et pour assurer un taux d’erreur sur le bit faible, ce critère
doit être le plus faible possible. Ainsi, la variation du « Jitter » aura peu d’influence sur des
délais courts.
Divers
Structure du
Caractéristique du
Tracking Jitter
Discriminateur
Discriminateur
[ISSC95]
DLL Cohérente
2 Branches,
Bande de Base
1
ε (t ,δ ) = y −2 (t ) − y +2 (t )
2 corrélateurs,
2
ρL
= K1 PDΔ (δ )
2 filtres passe bas,
2 mises au carré
1 soustracteur
Fréquence
DLL Non
2 Branches
ε (t ,δ ) = y −2 (t ) − y +2 (t )
1 ⎛
2 ⎞
+
1
Porteuse
cohérente
2 +2 corrélateurs
⎜
⎟
1
2 ρL ⎝
ρIF ⎠
= K1 PDΔ (δ )
2 filtres Passe bande
2
2 détecteurs d’énergie
1 oscillateur local
1 soustracteur
TDL
1 branche
Facilité
ε (t ,δ ) = y −2 (t ) − y +2 (t ) 1 ⎛
3.261⎞
1.811+
⎜
1 interrupteur
⎟
d’implantation
1
D (δ )
2ρL ⎝
ρIF ⎠
= K1 P Δ
1 filtre Passe bande
HARDWARE
2
2
1 Détecteurs d’énergie
2 corrélateurs
Tableau II. 9. Récapitulatif des modèles et de leurs caractéristiques.
Modèles
-82-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
D’après le Tableau II. 9, nous voyons que la structure la plus simple est la TDL car elle ne
comprend qu’une branche. C’est son principale avantage. Mais sa simplicité d’implantation
dégrade des paramètres importants comme le « Tracking Jitter ». Ce que nous souhaitons au
niveau performance c’est que ce paramètre soit le plus faible possible ; ce sera à cause de ce
point que la DLL cohérente sera privilégiée pour l’implantation.
II.5.4.4
Choix de l’organe de synchronisation
A partir de l’étude et de la structure des organes de synchronisation (§II.5.4.2.2), ces
modèles ont été implantés sous le logiciel SABER. Nous avons donc développé un modèle
fonctionnel complet sous ce logiciel, en bande de base, incluant toutes les fonctions
précédemment étudiées dans ce chapitre : génération de code d’étalement, étalement de
spectre à l’émission, désétalement en réception, encodage différentiel, organe de poursuite de
type DLL cohérente. De plus, afin de déterminer les performances des synchronisations Série
et RASE, il est nécessaire d’inclure un modèle AWGN, ainsi qu’un retard Td paramétrable.
Ces deux fonctions sont inclues dans la bibliothèque de modèle SABER : le bruit blanc est
borné par un ajout d’un filtre passe-bas de longueur de bande égale 40MHz. Quant à la
fonction retard, elle est modélisée par la quantité e −Td p .
La comparaison entre les deux organes de synchronisation se base sur leurs performances
en terme d’évolution de gain en traitement Gp et du temps d’acquisition (temps d’accrochage)
en milieu bruité.
II.5.4.4.1
Simulation de l’organe SERIE
La structure fonctionnelle complète émetteur-récepteur en bande de base, développée
sous SABER et incluant un organe de synchronisation Série de type multiple Dwell time à
deux branches, est présentée sur la Figure II. 42.
Les deux opérations de corrélation (les deux branches de l’acquisition) sont effectuées
pour un décalage du code d’étalement égal à un temps chip, soit 25ns. Le « bloc » logique de
contrôle saisit les résultats des opérations des branches de corrélation, et détermine à partir du
seuil le code d’étalement délivrant une corrélation maximale. Si cette condition n’est pas
satisfaite, le bloc de contrôle délivre un signal ( contrôle ) qui commande un décalage de
l’horloge rythmant le générateur de code. Ce décalage final et fixé par l’utilisateur et
généralement compris entre 0,25 Tc et Tc.
-83-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Contrôle
Figure II. 42. Modèle de la synchronisation SERIE.
Pour un retard dans le canal fixé à 25ns, la Figure II. 43 fait état de chronogrammes de
signaux « clé » de la synchronisation série, à savoir :
Correl1 et correl2 sont les signaux présents en sortie de chaque branche,
respectivement pour un décalage nul de valeur 25ns entre le code local et la trame
reçue. Aucune corrélation n’est détectée (Figure 43-a). Parallèlement, l’opération de
corrélation fournit un saut de valeur dépassant le seuil préalablement étalonné (Figure
43-b)
Le signal « contrôle », signal maître de la commande du décalage d’horloge lorsque
la corrélation n’est pas suffisante, est actif jusqu’à détection d’une corrélation corrélée.
Il est alors par suite inactif.
Les chronogrammes suivants valident la fonction développée et autorisent la mesure du
temps d’acquisition, pour cet exemple de valeur 20µs.
-84-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Signal
contrôle (c)
Correl2
(b)
Temps d’acquisition
Correl1
(a)
Figure II. 43. Signaux en sortie des corrélateurs et signal de contrôle.
II.5.4.4.2
Organe RASE
Figure II. 44. Schéma fonctionnel de la structure RASE.
Le modèle de l’organe de synchronisation RASE implémenté sous le logiciel SABER est
représenté sur le Figure II. 44.
Le corrélateur auquel on a ajouté un détecteur d’énergie (mise au carré) et un filtre Passebas, permet de récupérer la valeur efficace de la corrélation. Une logique de contrôle estime à
partir d’un seuil la corrélation. Si le franchissement du seuil n’est pas effectué, alors une
-85-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
impulsion « lost » est générée. Cette impulsion commande le bloc « logique de
l’interrupteur » dont le signal « CTRL » est l’image et pilote l’interrupteur (Organe Switch).
L’interrupteur comporte un état de chargement et un état de synchronisation. Pour un rapport
signal sur bruit de -3dB, les signaux « clés » ont été visualisés sur la Figure II. 45 et sont :
« out_correl ». Ce signal est celui présent en sortie du corrélateur et de la
détection (Mise au carré et filtre Passe-Bas). Le seuil préalablement défini par
l’utilisateur est franchi aux environs de 22µs.
« CTRL ». Ce signal permet le contrôle des interrupteurs et est actif tant que la
corrélation n’est pas réalisée. L’impulsion du signal bascule l’état de l’interrupteur
Swith. Lorsque le seuil de corrélation est franchi, le signal « CTRL » devient
inactif.
Temps d’acquisition
Seuil 1,5V
Figure II. 45. Sortie du corrélateur pour un rapport SNR=-2,9 dB et un seuil de 1,5V.
Ce chronogramme permet la validation RASE et la mesure du temps d’acquisition qui est
estimée ici à environ 22µs.
II.5.4.5
Comparaison des boucles [GUIL04J]
Notre comparaison s'est focalisée sur deux paramètres clefs d'un système à é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 représente la différence entre le rapport signal sur bruit en sortie du
récepteur et le rapport signal sur bruit en entrée.
⎛S⎞
⎛S⎞
−⎜ ⎟
Gp = ⎜ ⎟
⎝ B ⎠ Sortie / récepteur ⎝ B ⎠ Entrée / récepteur
-86-
[Eq.II. 44]
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
Ce gain en traitement traduit un avantage important des systèmes utilisant la technique
d’étalement de spectre, à savoir l’augmentation après décorrélation en réception du niveau du
signal d’un facteur égal à ce gain Gp.
La Figure II. 46 montre l’évolution du gain en traitement des deux structures de
synchronisation, le niveau de bruit étant paramétrable au moyen du canal AWGN implanté
dans le simulateur. Ces résultats sont comparés au gain en traitement théorique, dépendant
directement de la longueur N du code :
Gp=10 log [N]
[Eq.II. 45]
Les résultats présentés sont pour une valeur N égale à 15, soit un gain de traitement
théorique de 11,7dB.
Gain en traitement (dB)
12
11,5
11
10,5
RASE
SERIE
THEORIE
10
-8
-6
-4
-2
0
2
4
6
8
10
Rapport Signal/Bruit en entrée récepteur (dB)
Figure II. 46. Comparaison du gain en traitement pour les structures d’acquisition SERIE et RASE.
Pour les très faibles niveaux de bruit (SNR entrée > 4dB), la structure SERIE est très
proche du gain en traitement théorique, alors que la structure RASE présente un gain inférieur
de 1 dB. L’organe SERIE assure toujours un meilleur gain en traitement lorsque
l’augmentation du bruit dégrade les performances des deux structures. Uniquement pour des
très haut niveaux de bruits (SNR <-4 dB), la structure RASE semble présenter un meilleur
gain. Cependant, dans ce cas les valeurs de bruit associées, de fortes valeurs, entraînent très
rapidement une impossibilité de synchronisation. D’après ces résultats pour des rapports
signal sur bruit communément rencontrés en milieu clos, la structure SERIE semble
avantageuse.
II.5.4.5.2
Temps d’acquisition
Le temps d’acquisition conditionne directement le temps de réponse du système complet.
Il a été mesuré à partir des simulations des signaux de « contrôle » et du signal résultant de
l’opération de corrélation, comme présenté dans le paragraphe (Chapitre II §II.5.3.2). Son
évolution, dans le cas des deux structures de synchronisation, est présentée sur la Figure II. 47
en fonction du rapport signal sur bruit.
-87-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
80
Temps d'acquistion (µs)
70
SERIE
RASE
60
50
40
30
20
10
0
-8
-6
-4
-2
0
2
4
Rapport Signal/Bruit (dB)
6
8
10
Figure II. 47. Mesure du temps d’acquisition pour les 2 structures d’acquisition
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 d’étalement reçu par estimation. Pour
des niveaux de bruits plus importants (SNR<-2 dB), ce calcul est de plus en plus complexe et
le temps d’acquisition se dégrade. Dans ce cas, la structure SERIE devient nettement plus
avantageuse, présentant par exemple un temps d’acquisition réduit de 30% pour un rapport
signal sur bruit de –6 dB dans le canal.
II.5.4.5.3
Conclusion sur le choix des organes de synchronisation
Nous avons comparé ces deux principales structures de synchronisation (Série et RASE)
en déterminant par simulations fonctionnelles les paramètres clefs du système que sont le gain
en traitement et le temps d’acquisition. Au vu des résultats obtenus, il apparaît une
complémentarité des deux structures. En présence d’un rapport signal sur bruit moyen à élevé,
le système à synchronisation Série présente un meilleur gain en traitement avec toutefois avec
un temps d’accroche plus important. Pour un milieu très fortement bruité, le gain en
traitement devient voisin de celui obtenu avec la structure RASE, tout en présentant un temps
d’accroche cette fois-ci favorable.
Pour toutes ces raisons, nous retiendrons donc la structure Série car la résistance au bruit
est un paramètre important pour notre système. De plus, cette structure Série peut être
optimisée, par une augmentation du nombre de branches effectuant les calculs de corrélations.
Cette amélioration, visant à diminuer le temps d’acquisition, sera évaluée ultérieurement
(Chapitre 4 §IV.5.1.2).
II.6 Conclusion
Dans ce chapitre, après des généralités sur les communications numériques, nous avons
décrit le cahier des charges pour un système de télécommunication à étalement de spectre.
Nous avons alors passé en revue les différents organes mis en jeux dans ce système
(modulation, étalement de spectre et sa génération de PN-Code, démodulation) en
développant particulièrement l’organe d’acquisition et de poursuite. Une recherche
bibliographique a montré les différentes possibilités pour concevoir ces deux fonctions. Deux
solutions ont été mises en avant pour la structure de l’acquisition (acquisition SERIE,
-88-
CHAPITRE II : Vers la conception d’un système de télécommunications à étalement de spectre
acquisition RASE) et une pour la poursuite (DLL Cohérente). Nous avons alors comparé ces
dispositifs sur les critères de gain en traitement et de temps d’acquisition. De cette
comparaison, la structure SERIE avec la boucle à verrouillage de délai cohérente a été retenue
particulièrement à cause de sa résistance au bruit, et la possibilité d’optimisation de la latence
finale par l’ajout de branches de corrélation supplémentaires.
-89-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
-90-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III CHAPITRE III : Méthodologie et développement d’un prototype
virtuel mixte en langage de haut niveau
Résumé
Ce chapitre décrit tous les étages développés en VHDL-AMS. Ces modèles permettent l’optimisation de
différents paramètres de l’organe de synchronisation (nombres de branches, valeur du seuil de corrélation).
Dans ce chapitre, nous avons tout particulièrement développé notre propre modèle de canal composé d’un canal
AWGN et d’un module de retard paramétrable.
1
2
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 l’émetteur/récepteur......................................................................... 100
3.1
Fonctions à implanter et caractéristiques........................................................................................ 100
3.2
Les étages numériques ..................................................................................................................... 103
3.3
Description des parties analogiques................................................................................................ 128
3.4
Description du Convertisseur Analogique / Numérique .................................................................. 135
4
Résultats de simulation.............................................................................................................................. 135
4.1
Simulation de la fonction d’autocorrélation .................................................................................... 135
4.2
Simulation de la chaîne complète Emetteur/Récepteur.................................................................... 136
-91-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
-92-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.1 Introduction
Dans le chapitre précédent, nous avons étudié les différentes fonctions du système
émetteur/récepteur à étalement de spectre. Nous allons maintenant développer dans ce
chapitre la description du prototypage virtuel associé.
Considérant la complexité du système, nous avons choisi une description basée sur un
langage matériel de haut niveau, qui présente comme avantage une grande flexibilité de
conception [HERV02]. Historiquement, deux types de langage de description matérielle sont
nés quasi-simultanément, au début des années quatre vingt dix : le VHDL et le Verilog. Ces
deux langages supportent la gestion des signaux à évènements discrets. Par suite est apparu
leur extension respective (VHDL-AMS et Verilog-AMS) incluant la gestion des signaux à
temps continu. Le Tableau III. 1 résume cette évolution.
Langages
VHDL
Organisme de
normalisation
IEEE(1076)
(Date de
normalisation : 1993)
Objectif du
langage
Commentaires
Description du
matériel
Niveau d’abstraction élevée.
Langage le plus utilisé en Europe.
Langage plus utilisé aux Etats Unis.
Verilog 2001n’est pas toujours pris en
compte par les outils du commerce
Description d’un Niveau d’abstraction plus élevé que le
IEEE(1076)
VHDL-AMS
système analogique
Verilog-AMS.
(Date de
(Extension du VHDL)
normalisation : 1999)
et numérique.
Outil graphique (Simplorer et
[IEEE1]
SystemVision) développé pour le
VHDL-AMS
Description
d’un
Niveau
d’abstraction
restreint .
IEEE
Verilog-AMS
système
analogique
(Date
de
(Extension du Verilog)
normalisation : 1998)
et numérique.
[IEEE2]
Verilog
IEEE(1364)
(Date de
normalisation : 1995)
Description du
matériel
Tableau III. 1. Récapitulatif des principaux langages de description matérielle et de leur extension.
Ces deux langages (VHDL-AMS et Verilog-AMS) présentent des capacités techniques
assez similaires. Nous avons retenu de développer notre prototype en langage VHDL-AMS,
pour diverses raisons :
Premièrement, le VHDL (ou VHDL-AMS) a un niveau d’abstraction plus élevé que le
Verilog ce qui permet d’avoir une meilleure vision au niveau système.
Notre environnement et collaboration scientifique semblent plus ouverts aux échanges
avec des spécialistes du VHDL-AMS que du Verilog-AMS.
Enfin, les outils disponibles au laboratoire et l’offre logicielle en outils graphiques
(des sociétés Ansoft ou Mentors Graphics) s’appuient sur ce langage.
Ce chapitre s’articule de la manière suivante : dans un premier temps, nous allons
présenter le langage de haut niveau VHDL-AMS, permettant de définir sa puissance mais
aussi ses limites de performances. Puis, toutes les fonctions mixtes analogiques et
numériques, propres à notre prototype de télécommunication à étalement de spectre sont
développées dans ce langage. Des fonctions analogiques spécifiques ont du être mises en
œuvre, le langage n’incluant pas de bibliothèque de bruit par exemple.
-93-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.2 Le langage VHDL-AMS
III.2.1
Historique
Dans les années quatre vingt, le département de la défense américaine fait un appel
d’offre afin de disposer d’un langage de description de matériel numérique unique. Le
langage VHDL (VHSIC Hardware Description Language) est retenu pour répondre à ce
critère. Ce langage est un sous produit de VHSIC (Very High Speed Integrated Circuit) qui
est un projet de recherche national mené par le groupement IBM/Texas
Instruments/Intermetrics. Ce langage est ouvert au domaine public en 1985 et deviendra une
norme IEEE en 1987 sous le nom de IEEE 1076-1987. Des changements minimes se feront
pour la seconde normalisation en 1993 et il portera le nom VHDL’93. La dernière norme en
cours est la norme IEEE 1076-2001. Ce langage de description matérielle permet la
description du matériel d’un système au cours d’une ou plusieurs étapes de conception.
Comme ce langage a pour vocation d’être un langage de description matérielle
numérique, il est exploité par tous les fabricants de circuits numériques pour son
indépendance à la technologie de fabrication. Il est aussi bien utilisé pour le développement,
la synthèse ou la vérification système.
Par la suite (fin des années 90), le langage VHDL-AMS est une redirection du langage
VHDL-A qui devait être à la base un langage de modélisation analogique. Le langage VHDLAMS, dont les bases numériques sont le VHDL, permet la modélisation d’un système
multidisciplinaire. Il gère donc aussi bien les signaux numériques que analogiques. Comme le
VHDL, nous pouvons faire aussi bien de la description comportementale, de la description
structurelle que de la description de type « boîte noire ». Ce langage conserve les mêmes
principes que le VHDL (modularité, flexibilité, extensibilité) ainsi que la même sémantique,
mais apporte un net avantage grâce à la possibilité de modéliser un système complet et
l’influence de son environnement.
III.2.2
Choix de ce langage
En vue d’implanter notre système, le choix du langage VHDL semble incontournable,
quelque soit la cible que nous choisirons pour notre circuit final. Notre système sera alors
réutilisable, flexible, extensible et permettra de modéliser d’un bout à l’autre la chaîne mixte
de communication. En vue d’une 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
Description du langage [VACH02][HERV02]
III.2.3.1 Le langage VHDL
III.2.3.1.1
Les différentes descriptions possibles
Trois types de descriptions de fonctions sont identifiés et complémentaires : la
description matérielle, la description comportementale, et la description fonctionnelle.
Comme nous l’avons énoncé précédemment, le langage VHDL a été créé pour permettre
une description matérielle d’une fonction. Une description matérielle (ou structurelle) définit
la structure d’un modèle par un assemblage de composants, ou des boîtes noires. Ce type de
description permet de créer la fonction voulue au niveau composant à l’aide de l’association
d’éléments sous formes de portes logiques. C’est pourquoi la description structurelle est la
-94-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
seule à être synthétisable puisqu’elle fait référence au matériel de type porte logique
élémentaire.
Une autre possibilité de description est la description comportementale qui permet de
définir le fonctionnement d’un système ou le comportement d’un modèle. Cette description ne
repose pas sur une structure mais plus sur des algorithmes.
La dernière possibilité de description est celle appelée « flot de données » ou description
fonctionnelle. Elle rejoint la description comportementale puisqu’elle se base sur l’expression
des fonctions de sortie à partir d’équations booléennes. Il apparaît donc plus difficile d’utiliser
ce type de description dans le cas d’un circuit complexe où il est nécessaire de se rattacher à
une structure.
Au vu de la définition des différentes descriptions possibles, nous avons choisi d’utiliser
la description structurelle afin de synthétiser facilement notre système. Cette démarche
demande effectivement plus d’investissement au niveau de la définition de la structure du
circuit mais ce temps sera regagné lors de l’étape de synthèse.
III.2.3.1.2
La structure fondamentale d’un modèle VHDL
L’organisation d’un modèle VHDL est illustrée sur la figure III.1.
Figure III. 1. L’organisation d’un modèle VHDL.
-95-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Ce modèle VHDL comprend les parties suivantes :
i. Une déclaration de paquetage, utilisée par plusieurs fichiers, sous-programmes et
composants. Elle permet de définir les librairies utilisées, les fichiers, sousprogrammes et composants qui composent le corps de paquetage.
ii. L’architecture globale de l’entité peut contenir un ou plusieurs composants, chaque
composant étant défini par les mêmes parties que l’entité de conception principale.
iii. Le corps de l’entité comprenant la déclaration de cette entité et son architecture
interne.
Les parties (i) et (ii) permettent une description matérielle du système alors que la
dernière (iii) permet de regrouper les informations pouvant être réutilisées dans d’autres
systèmes. Toutes les déclarations (entité, configuration et paquetage) décrivent une vue
extérieure, c'est-à-dire qu’elles sont visibles par toutes les parties du modèle et permettent
ainsi le partage et la réutilisation des ressources. Elles sont généralement associées aux parties
« corps ». Ces parties « corps » permettent de définir une vue interne de l’entité ou du
paquetage et une description fine des différentes architectures ou paquetages sera faite. On
peut définir pour une même déclaration d’entité plusieurs architectures.
La Figure III. 2 présente un exemple type de structure de fichier VHDL, faisant
apparaître le paquetage, la déclaration de l’entité et son architecture.
III.2.3.1.3
Les signaux
Afin que chaque entité puisse communiquer avec l’extérieur ou simplement dans le
modèle principal il existe deux classes de déclaration de signaux generic et ports. Les
signaux generic sont des constantes ou des paramètres qui servent à rendre le système plus
général.
Les signaux ports sont des variables ou des nœuds entre chaque entité. Ils sont définis
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 entrée(in)et son type est
std_logic (standard logique).
Un mode comprend trois déclarations possibles. Le mode entrée (in), le mode sortie (out)
et le mode bidirectionnel (inout). Enfin, le type peut être entier, flottant, énuméré ou tableau.
III.2.3.1.4
Le processus
Une notion importante est la notion de processus ou « process ». Un processus regoupe
un ensemble d’instructions qui sont exécutées en fonction d’évènements auxquels ils sont
sensibles. Les instructions du processus s’exécutent séquentiellement jusqu’à un point d’arrêt.
C’est à la fin du processus que les signaux prennent leurs valeurs.
-96-
Déclaration
Paquetage
Commentaires
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
--*****************************************************************************
-- INTEGRATEUR/BLOQUEUR
--*****************************************************************************
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.all;
use work.parameter.all;
Déclaration des paquetages standard
Déclaration du paquetage « parameter »
propre au système
entity integ_dump is
port
(
clk160nco
: in std_logic;
rst
: in std_logic;
dump_clk40nco : in std_logic;
Déclaration des ports en mode
entrée et de type std_logic
Déclaration de l’entité
Déclaration du port en
mode entrée et de type
vecteur signé
data_multi_clk40nco : in signed (3 downto 0);
result_clk160nco
: out signed (M downto 0)
Déclaration du port en
mode sortie et de type
vecteur signé
);
end integ_dump;
Entité
Définition de la librairie
Corps de l’architecture
associé à l’entité integ_dump
architecture arch of integ_dump is
Définition des signaux internes de l’architecture
arch de l’entité integ_dump
signal acc_test_clk160nco : signed (M+1 downto 0);
signal result1_clk160nco : signed (M downto 0);
signal dump_resynchronise_clk160nco: std_logic;
Architecture
begin
Signal interne
« Acc_test_clk160nco
» de type signé
Process qui resynchronise les signaux
dump sur la bonne horloge
re_synchro: process (rst,clk160nco)
Liste des événements auquelle est
begin
sensible au process re-synchro
if (rst='1') then
dump_intermediaire_clk160nco <= '0';
dump_resynchronise_clk160nco <= '0';
Affectations asynchrones
elsif(rising_edge(clk160nco)) then
Affectations séquentielles
dump_intermediaire_clk160nco <= dump_clk40nco;
dump_resynchronise_clk160nco <= dump_intermediaire_clk160nco;
end if;
end process re_synchro;
Process qui calcul l’intégration
integration:process(clk160nco,rst)--Horloge de 160 Mhz
Liste des événements auquelle est
begin
sensible du process intégration
…
…
…
end process integration;
Affectations concurrentes
result_clk160nco <= result1_clk160nco when(detect_front_clk160nco <='1')
else (others => '0') when(rst = '1');
end arch;
Calcul en fin des process de la
valeur du port de sortie
« result_clk160nco »
Figure III. 2. Structure d’un fichier VHDL
-97-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.2.3.2 Le langage VHDL-AMS
III.2.3.2.1
Description du langage
Développé à partir du langage VHDL, le langage VHDL-AMS repose donc sur la même
fondation. De manière identique au langage VHDL décrit précédemment, un modèle VHDLAMS comporte les différentes déclarations (déclaration d’entité, déclaration de configuration
et déclaration de paquetage) et les différents corps (corps d’architecture et corps de
paquetage).
Les fonctions analogiques sont décrites à l’aide d’équations différentielles et algébriques
avec le temps comme variable indépendante. Ces équations sont de deux types : conservatif et
non conservatif.
•
Conservatif
Les systèmes de type conservatif sont gouvernés par des lois de la physique et des lois de
conservation de l’énergie. Pour le domaine de l’électricité, nous retrouvons des circuits à
temps continu régis 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 systèmes non conservatifs n’ont pas besoin d’être régis par la conservation d’énergie.
En VHDL-AMS la description sera de type de quantité libre.
C
dU (t )
= I (t )
dt
[Eq.III. 2]
Le langage VHDL-AMS comporte deux noyaux de simulation, l’un pour la partie
numérique et l’autre pour la partie analogique. Chaque noyau de simulation possède sa propre
horloge. Le VHDL-AMS permettant une simulation mixte, il faut que les noyaux numériques
et analogiques soient synchronisés. Pour cela, il a été créé les instructions break et above.
L’instruction break est utilisée lorsqu’on veut une interaction du noyau numérique sur le
noyau analogique. Cette instruction permet de forcer le calcul de la partie analogique au
moment d’un évènement sur la partie numérique. L’instruction above permet que le noyau
analogique agisse sur le noyau numérique. Un évènement sera alors créé à partir d’une
quantité du noyau analogique.
Une entité joue toujours le rôle d’« interface » pour la communication entre les fichiers
extérieurs et le modèle à l’aide des déclarations de type generic et port. En VHDL-AMS les
ports peuvent appartenir à différentes classes selon le système (conservatif ou non
conservatif) :
•
•
•
Les ports de classe signal modélisent les signaux logiques, comme en VHDL.
Les ports de classe terminal fournissent des points de connexions analogiques pour
les systèmes pour lesquels la loi de conservation d’énergie est satisfaite.
Les ports de classe quantité (quantity) définissent des points de connexions
analogiques mais directionnels avec des entrées (in) ou des sorties (out). Les
-98-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
quantités prennent leurs valeurs par la résolution d’un système d’équations effectuée
dans le domaine analogique.
III.2.3.2.2
III.2.3.2.2.1
Les différentes classes d’objets
Terminal et nature
Un objet de type terminal définit des points de connexion analogiques pour les systèmes à
conservation d’énergie. Ainsi les terminaux définissent les branches auxquelles différentes
grandeurs sont associées. Dans le domaine électrique par exemple ces grandeurs sont la
tension et le courant.
A chaque terminal est associé une « nature » qui est définie à travers deux classes. La
classe « entre » (accross) qui modélise l’effort aux bornes du terminal et la classe « à travers »
(through) qui représente un flux à travers le terminal. Un tableau ci-dessous présente les
efforts et les flux associés à chaque nature d’un objet de type terminal.
Nature
Electrique
Thermique
Hydraulique
Mécanique de translation
Mécanique de rotation
Effort
Tension
Température
Pression
Vitesse
Vitesse angulaire
Flux
Courant
Débit de Chaleur
Débit
Force
Torsion
Tableau III. 2. Exemples de Nature possible pour les terminaux
Au titre de la conservation d’énergie (la somme des flux à un nœud est nulle et l’effort est
commun ⇒ la somme des puissances dissipées dans les branches du réseau est nulle), les
terminaux connectés devront être de même nature.
III.2.3.2.2.2
Les quantités
Les quantités représentent les inconnues des équations différentielles du système. Ces
objets mémorisent la valeur de la variable jusqu’à la prochaine résolution des équations
différentielles dans le noyau de simulation analogique. Les quantités sont soit de type réel soit
de type flottant. Il existe trois sortes de quantités :
• Les quantités « libres » représentent n’importe quelle grandeur analogique à temps
continu.
• Les quantités de « branches » représentent une grandeur dans un système conservatif.
Elles sont associées à des terminaux.
• Les quantités sources sont des quantités libres dédiées à l’analyse fréquentielle ou à
l’analyse de bruit.
-99-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
L’exemple suivant illustre la quantité de branche pour le domaine électrique :
V12
Tb2
I12
Tb1
terminal tb1, tb2 : electrical ; --Définition 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)
Figure III. 3. Illustration de la quantité de branche pour le domaine électrique
III.2.3.2.2.3
Le critère de solvabilité
Ce critère est un garde fou qui permet de s’assurer qu’à tout moment le modèle comporte
autant d’équations que d’inconnues. Ce critère, imposé par la norme, est établi comme suit :
Le nombre d’équations simultanées doit être égal au nombre de quantités « à travers »
augmenté du nombre de quantités libres et du nombre de quantités d’interfaces en mode
« sortie ».
Ce critère est effectivement contraignant, mais s’il est appliqué correctement pour chaque
composant, il permet d’assurer lors d’une association de composants la bonne résolution des
équations pour le système. Si ce critère n’est pas appliqué le modèle n’est pas compilable.
C’est donc un critère sur lequel tout concepteur système en VHDL-AMS doit s’appuyer.
III.3 Codage en langage VHDL-AMS de l’émetteur/récepteur
Ce paragraphe présente le codage VHDL et VHDL-AMS selon le type des signaux mis
en jeu (numérique et analogique) du système émetteur/récepteur complet. Concernant le
développement de chaque fonction numérique en VHDL, nous détaillons le codage de la
fonction sous forme d’organigramme, puis sa validation à partir du schéma bloc et des
chronogrammes associés.
Une des difficultés de codage réside dans le fait que tous les processus sont cadencés à
partir d’une horloge ce qui génère des retards. Il faut donc s’assurer lors de chaque processus
que les différents signaux soient en phase avec la même horloge. Pour cela, nous avons dû
introduire entre certaines fonctions des bascules de resynchronisation.
Quant aux fonctions analogiques en VHDL-AMS, elles concernent majoritairement le
codage du canal, les étages radiofréquences et le convertisseur analogique/numérique.
III.3.1
Fonctions à implanter et caractéristiques
Nous rappelons dans cette partie les fonctions détaillées numériques et analogiques de
notre système émetteur/récepteur (Figure III. 4).
-100-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 4. Synoptique du modèle de l’émetteur/ récepteur à étalement de spectre.
Notons sur le schéma fonctionnel la présence entre autres, des organes de synchronisation
et de poursuite définis au chapitre II, ainsi que le convertisseur analogique/numérique en
entrée du récepteur.
Au vu du cahier des charges exposé dans le chapitre II (§II.4) les caractéristiques et
paramètres physiques associés à chacune des fonctions sont définis dans le Tableau III. 3.
-101-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Fonctions
Type de
signal
Caractéristiques
Emetteur
Codeur différentiel
Numérique
Etalement
Générateur de PN-Code
Numérique
Numérique
Fonctions Radiofréquence
Analogique
AWGN Additive White
Gaussian Noise
Analogique
Fosc=1/(Tc*N),
Rapport Cyclique 0.5
Porte XOR
Générateur de Galois
7<Code d’étalement<2047
Filtre Passe bande 2.44 Ghz ,
80 Mhz de Bande passante
Canal
Bande Passante = 40Mhz
Fréquence de coupure =160Mhz
SERIE
Acquisition, Poursuite, Génération PN- Code
Récepteur
Corrélation
Logique de
Contrôle du
seuil
Clock
Numérique
Numérique
Produit , Intégrateur/bloqueur
Seuil de corrélation paramétrable
Numérique
Discriminateur
Numérique
Numérique
Période = Tc=25ns
Pas Offset PN code : ½ chip
Produit, Intégrateur/bloqueur, Valeur
Absolue
1
avec τ=1µs
1er ordre ,
1 + τs
KNCO =100kHz/V Fo=160MHz
Numérique
M-Sequences
Numérique
Numérique
Produit, Intégrateur/bloqueur
Fosc=1/(Tc*N)
Poursuite DLL
Filtre de
boucle
NCO
(Oscillateur
numérique
commandé)
Générateur
PN Code
Désétalement
Décodeur différentiel
Numérique
Tableau III. 3 . Fonctions à coder et caractéristiques associées.
Le synoptique de codage en VHDL-AMS, déduit du schéma fonctionnel (Figure III. 5),
permet de décrire le test bench.
SOURCE
(VHDL)
TRANSMISSION
(Description VHDL-AMS)
EMISSION
(VHDL Synthétisable)
FONCTIONS EMETTEUR
(VHDL Synthétisable)
RECEPTEUR
(VHDL Synthétisable)
FONCTIONS RECEPTEUR
(VHDL Synthétisable)
Fichier Test Bench
Figure III. 5. Synoptique de codage du système émetteur/récepteur en VHDL-AMS.
-102-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Le codage de notre système suppose l’existence des fichiers suivants :
Le fichier SOURCE permet de créer les signaux tels que les horloges, les signaux
d’initialisation (Reset), les données issues des capteurs et les signaux pour la
configuration du générateur de PN Code. Ce fichier n’est utile que pour la simulation
mais lors de l’implantation ce fichier n’existera plus car ces signaux seront générés par
le circuit ou des éléments externes de type bouton poussoir par exemple.
Le fichier EMISSION permet de décrire le fonctionnement de l’émetteur à partir des
fonctions décrites dans le fichier FONCTIONS EMISSIONS.
Le package FONCTIONS EMISSIONS décrit chaque fonction EMISSION (codeur
différentiel, générateur de PN-Code, multiplieur)
Le fichier TRANSMISSION décrit les fonctions radiofréquences (multiplieur
analogique, filtres …) et le canal AWGN.
Le fichier RECEPTEUR décrit le fonctionnement du récepteur à partir des fonctions
décrites dans le fichier FONCTIONS RECEPTEUR.
Le package FONCTIONS RECEPTEUR décrit les fonctions du récepteur
(désétalement, synchronisation, poursuite, génération du PN-Code, démodulateur,
encodeur différentiel, mise en forme)
Le fichier TRANCEIVER TEST permet de réunir et de visualiser tous les signaux
utiles pour notre choix d’architecture.
III.3.2
Les étages numériques
III.3.2.1 Description de l’émetteur
L’émetteur est constitué des fonctions suivantes :
le générateur de PN-Code.
un encodeur différentiel des données issues des capteurs.
une fonction « multiplieur » permettant l’étalement de spectre.
Ces fonctions seront décrites individuellement dans le fichier package « Fonctions
Emetteurs », décrit ci-dessus.
Figure III. 6. Schéma d’implantation de l’émetteur
III.3.2.1.1
Générateur de PN-Code
Nous avons montré (Chapitre II (§V.2)) que la génération du PN-Code nécessite un
polynôme d(n) pour l’initialisation et en entrée un polynôme générateur c(n) qui permet de
-103-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
charger le polynôme primitif dans les registres à décalage. Le schéma électrique du générateur
de PN-Code est le suivant :
Figure III. 7. Schéma de principe du générateur de codes aléatoires
Nous remarquons la présence d’une horloge de 40MHz, fixant le temps chip du code
d’étalement à 25ns.
Le diagramme du générateur de Galois est illustré de la manière suivante :
Figure III. 8. Organigramme du codage du générateur de PN-Code
L’organigramme de codage du code d’étalement (Figure III. 8) comprend deux
processus :
Le premier processus (celui de gauche) permet l’initialisation des registres.
Le deuxième processus (celui de droite) crée un signal dump qui fixe le temps
symbole du PN_Code. A chaque coup d’horloge, la valeur des signaux q(i+1) (signal
-104-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
en entrée de la bascule D) est affectée au mot d(i) (signal de sortie des bascules D). Le
signal q(0) représente le signal de sortie du générateur de PN-Code.
III.3.2.1.2
Encodeur
L’encodeur différentiel possède trois signaux en entrée : le signal à encoder, l’horloge
40MHz et le signal pour la détection du temps symbole.
Figure III. 9. Organigramme pour la fonction Encodeur différentiel
Cette fonction est composée de deux processus :
Le premier processus effectue l’opération d’encodage différentiel à partir de deux
portes logiques (NOT) et (XOR).
Le deuxième processus détermine le front montant sur dump (signal généré tous les
temps symbole) à partir des signaux dump_e_rideau1 et dump_e_rideau2
(signaux de resynchronisation utile à la détection du front montant).
III.3.2.1.3
Fonction « Multiplieur »
Cette fonction « Multiplieur » (référence à la fonction analogique de multiplication) doit
décrire le fonctionnement de l’étalement de spectre. Une donnée à l’état haut est codée par la
séquence d’étalement et une donnée à l’état bas par la même séquence inversée. Ceci amène
logiquement à la table de vérité ( Tableau III. 4):
D donnée
1
1
0
0
Ci (Code
étalement)
1
0
1
0
Fonction à
réaliser
1
0
0
1
Tableau III. 4. Description de la fonction « multiplieur ».
Nous voyons que la fonction à réaliser peut être décrite soit par une porte logique de type
« not XOR » soit par une description comportementale.
-105-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.2.1.4
Résultats de simulation
Les fichiers « Generateur_PN_Code », « codeur », « multiplieur » et « Emetteur » sont
compilés à l’aide de l’outil ModelSim. Les résultats sont représentés sur la Figure III. 10 pour
une longueur de code N=15.
Figure III. 10. Résultats de simulation de l’organe Emetteur
Les signaux présentés sont décrit ci-dessous :
• Clk_40e : Horloge de 40MHz qui correspond à un temps Chip.
• Rst : Le signal Reset permet d’initialiser tous les signaux de l’émetteur. (Reset
Asynchrone).
• Cn_code : Bus d’initialisation du générateur de PN_code, ici la valeur est fixée à 9 ce
qui correspond à une longueur N=15. C’est un des paramètres d’entrée de l’organe
Emetteur.
• Data_source : Données présentées au niveau de l’émetteur qui modélise les signaux
issus des capteurs.
• Data_encodee: Sortie de l’encodeur différentiel.
• Dump_e_clk_40e: Signal généré par le générateur de PN_Code à chaque « temps
symbole » (ici Ts=375 ns).
• Dump_e_rideau1 et Dump_e_rideau2 : Signaux permettant la détection du front
montant sur le signal Dump_e_clk_40e.
• Detect_front : Signal qui détermine le front montant Dump_e_clk_40e.
• Code_e_clk_40e : Code de sortie du générateur de PN_Code. Pour une longueur de
15 , le code est « 1111 0101 1001 000 ».
• Data_etalee: Signal résultant de la recomposition de la donnée encodée
« Data_encodee » avec le PN_Code « Code_e_clk_40e ». Data_etalee est le
signal en sortie de l’émetteur.
Pour valider notre modèle VHDL de l’émetteur, nous avons comparé et validé nos
résultats de simulation avec ceux obtenus de manière fonctionnelle sous le logiciel SABER.
-106-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.2.2 Description du récepteur
Le récepteur permet de retrouver les données émises (data_source) à partir du signal
étalé reçu . Le récepteur est composé de :
la partie « récepteur_ss_synchronisation » désétalant la donnée reçue à partir du PNcode fourni par la synchronisation,
d’un étage « synchronisation» générant le PN-Code en phase à partir de la recherche
d’un gain en traitement maximum.
d’un organe « poursuite » permettant de maintenir le PN-Code retrouvé par la
fonction « synchronisation ».
La synchronisation peut comporter plusieurs structures. En effet, nous avons vu (§
Chapitre II § II.5.4.4.1) qu’une organisation à plusieurs branches doit permettre
théoriquement de diminuer le temps d’acquisition. Les valeurs d’entrée sur lesquelles
l’utilisateur peut configurer le récepteur sont :
le vecteur cn pour fixer la longueur du PN-code.
la valeur du seuil de corrélation (fonction test seuil).
les constantes de temps pour les différents filtres.
Deux horloges sont à présent nécessaires : une fixée à 40MHz, de manière identique à
celle de l’émetteur et paramétrant le temps chip (Tc=25ns) et une seconde égale à 160MHz
dont le rôle est la division par quatre du temps chip dans l’organe de corrélation. Les
fonctions principales de cet élément récepteur (i,ii,iii) sont détaillées dans les paragraphes qui
suivent. De plus, une fois ce modèle validé en VHDL, nous implémentons une
synchronisation théoriquement plus performante à plusieurs branches (N branches) et
évaluerons ses capacités.
Figure III. 11. Schéma de l’implantation du récepteur simple branche.
III.3.2.2.1
Récepteur sans synchronisation
Le « récepteur sans synchronisation » effectue les opérations classiques de conversion
analogique/numérique et de désétalement. Il se compose des fonctions :
-107-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
i. « convertisseur analogique/numérique », issue de la bibliothèque et adaptée à notre
application. Elle est développée dans la partie III.3.4.
ii. « désétalement en réception » qui décorrèle le signal reçu.
iii. « test donnée » qui traite le résultat de corrélation en exprimant le résultat sur un bit.
iv. Le décodage différentiel, opération inverse du codage à l’émission.
III.3.2.2.1.1
Désétalement en réception
La première opération classique de « multiplication » est identique à celle de l’émission
(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 l’entrée data_codee[3:0]. Le signal data_multi[3:0]
peut prendre 2n-1 valeurs.
Figure III. 12. Schéma de l’intégrateur/bloqueur.
L’intégrateur/bloqueur est un organe important du système puisqu’associé à la
fonction « multiplieur», il permet de désétaler le signal reçu. Il est composé d’un registre qui
accumule le signal reçu (data_multi[3:0]) sur la durée du temps symbole Ts dépendant
de la longueur du code (N), et d’un « bloqueur » qui reçoit et fige la valeur du registre
d’accumulation chaque temps symbole (dump_clk40nco). La détection d’un temps symbole
est créée à partir du front montant sur le signal dump. Ce signal dump a deux vocations : la
remise à zéro de l’intégrateur, et le déclenchement de la phase suivante d’intégration. Pour
une question de précision sur la fonction « multiplication », nous avons choisi [MELE01]
qu’un temps Chip soit décrit par quatre échantillons. L’accumulation dans le registre se fait
donc à la fréquence d’échantillonnage de 160 MHz. La taille utile à la fonction accumulation
(na) a pour paramètre le nombre d’échantillons par symbole (M) et le nombre d’échantillons
sur un temps Chip (ne). Nous pouvons ainsi déterminer le nombre de bits nécessaires pour
coder l’accumulateur valant :
Nbre_val_accu= 2 n × M − 2M + 1 =114 633
Avec ne = 4 échantillons par chip, Nmax=2047 et M=N×ne=2047×4=8188
na = log 2 ( Nbre _ val _ accu ) =16,81 soit 17 bits.
Nous représentons l’organigramme correspondant au code VHDL de la fonction
Intégrateur/Bloqueur sur la Figure III. 13.
-108-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 13. Organigramme de la fonction intégration/Blocage.
Cette fonction est composée de deux processus. Le premier processus permet de
resynchroniser les signaux dump avec l’horloge de 160MHz (non représentée sur la figure).
Le deuxième processus permet de générer le blocage sur le signal dump (signal généré tout
les temps symbole Ts) et l’accumulation sur chaque front montant de l’horloge de 160MHz.
La période d’intégration varie donc en fonction de la longueur du PN-Code. Le signal
accu_test[M:0] est le signal présent à la sortie de l’intégrateur. Le signal result1[M:0]
(sur M bits) représente le signal en sortie du bloqueur, récalculé tous les temps symbole. Ce
signal est par suite injecté à l’entrée de la fonction « Test de donnée ».
III.3.2.2.1.2
Test de donnée
La fonction « Test de donnée » compare par rapport à un seuil, le mot d’entrée sur M bits,
et le restitue sur un bit. Au vu de la fonction d’autocorrélation théorique (Chapitre II
1
§III.6.2.2) négative pour une corrélation nulle (et égale à −
), il est logique d’effectuer la
N
comparaison par rapport à la valeur zéro. Toutefois, en simulation, nos premiers résultats avec
ce seuil sont erronés car quelque soit la valeur en sortie de l’intégration (positive ou négative),
cette fonction retrouvait le signal équivalent à Data_encodee. La sortie correspondait donc
aux données émises. Il faut en effet moduler cette valeur en fonction de la longueur N du code
d’étalement. Pour palier à ce problème, nous avons défini un nouveau seuil de valeur +200
(pour N=15). Ce seuil est testé à chaque temps symbole (grâce au signal dump) et la fonction
« test de donnée » convertit dans un deuxième temps le mot de M bits (résultat de
l’intégration) sur un bit. La Figure III. 14 décrit l’organigramme de cette démarche.
-109-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 14. Organigramme de la fonction test donnée.
III.3.2.2.1.3
Décodeur différentiel
Le décodeur différentiel, dont le principe a été étudié au Chapitre II § V.1, permet de
décoder le signal data_av_decodee_clk160nco en sortie de la fonction « test de
donnée ». Ce décodeur possède deux signaux en entrée : le signal à décoder et le signal
dump_r_clk40nco qui détermine le passage à un autre symbole. Le signal en sortie de cette
fonction est le signal de sortie du récepteur et doit être identique à la trame de données
(data_source) en entrée de l’émetteur. L’organigramme de cette fonction est représenté sur
la figure suivante :
Figure III. 15. Organigramme du décodeur différentiel.
Cette fonction se compose de deux processus. Le premier processus est la
resynchronisation du signal dump avec l’horloge de 160MHz (non représenté ici) et la
définition des signaux d’entrée data_n_1 (représentant l’état précédent de data_n) et
data_n. Le second processus est le décodage du signal Data_av_decodee_clk160nco sur
le front montant de l’horloge en sortie du NCO, et du signal Dump_clk40nco resynchronisé.
Le décodeur DBPSK est ainsi réalisé à l’aide deux portes logiques NOT et XOR qui encodent
les data_n_1 et data_n, et d’un registre à décalage pour la fonction mémoire (entre
data_n_1 et data_n). Cette fonction représente la fonction inverse de l’étage Encodeur à
l’émission.
-110-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.2.2.1.4
Résultats de simulations
Les différents signaux de l’organe « recepteur_ss_synchronisation » sont représentés sur
la figure III.16.
Retard d’un symbole
1
0
1
0
Figure III. 16. Résultats de simulation sous le logiciel ModelSim.
On peut voir sur la Figure III.16 les différents signaux générés par le récepteur et classés
par fonctions.
•
Data_codee_clk40e : les données reçues et échantillonnées (après conversion du
•
Code_out (=>PN_code_bus) : le PN_Code en phase issu du générateur de PN-
signal reçu) et pouvant être retardées par la traversée du canal.
Code.
•
•
•
•
•
Data_multi_clk40nco : données après la fonction « multiplieur » dont la valeur
varie entre +7 et -7 selon la valeur du PN-Code, qui correspondent au signal encodé de
l’émetteur.
Acc_test_clk160nco : le signal d’accumulation généré sur le front montant de
l’horloge. Les valeurs sont incrémentées de +7 ou décrémentées -7 tous les 6,25ns
(Tc/4). Dans notre exemple, c'est-à-dire pour N=15, ce signal peut atteindre en valeur
maximum +/- 420 ((4×N×7) ou (4×N×-7)).
Dump_clk40nco : ce signal est généré par le générateur de code aléatoire tous les
temps symbole (375ns) à partir de l’horloge Chip. Ce signal est aussi utile au bloqueur
et à la remise à zéro de l’accumulateur de l’intégrateur.
Detect_front : le signal détecte pour une horloge de 160MHz le front montant sur
le signal dump_clk40nco. Ce procédé de resynchonisation est inévitable puisque le
dump est généré à partir d’une horloge de 40MHz et exploité par une horloge de
160MHz.
Data_desetalee_clk160nco : il correspond au signal en sortie de la fonction
« désétalement réception ». Il est donc généré sur chaque front montant
(detect_front) de dump_clk40nco avec un symbole de retard par rapport au signal
d’accumulation (Acc_test_clk160nco) et peut donc prendre les valeurs maximums
de +/- 420.
-111-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
•
•
Data_av_decodee_clk160nco :
il s’agit du signal en sortie de la
fonction « test_donnée » et est issu de la comparaison au seuil de valeur 200. Il est
restitué sur un bit, et correspond au signal après encodage au niveau de l’émetteur.
Sortie_clk160nco : c’est le signal en fin de chaîne de réception, équivalent à la
trame de données en entrée de l’émetteur.
III.3.2.2.2
Synchronisation
Nous décrivons tout d’abord la structure élémentaire de l’organe de synchronisation
comportant une seule branche.
Figure III. 17. Synoptique de la fonction Synchronisation simple (une branche).
A partir du schéma fonctionnel de la synchronisation SERIE (Chapitre 2 § V.4.3.2.2) et
des travaux antérieurs [BOUR00], les fonctions utiles pour cet organe sont :
un multiplieur et un filtre Passe-Bas du 2ème ordre pour la corrélation,
une mise au carré et un filtre de Bessel du 5ème ordre pour la détection d’enveloppe ,
une logique de contrôle pour déterminer si la corrélation est existante.
Cependant, l’intégration de ces fonctions nous oblige à les substituer par un homologue
numérique. Ainsi :
La fonction corrélation regroupant le multiplieur et le filtre devient les fonctions
« désétalement réception » déjà présentées dans le paragraphe (III.3.2.2.1.1).
La mise au carré est représentée par la fonction valeur absolue.
Le filtrage pour la détection d’enveloppe par un filtre numérique de type RII.
La logique de contrôle par la fonction « test seuil » avec le seuil adapté.
III.3.2.2.3
L’organe de poursuite (DLL)
Comme énoncé dans le chapitre II (§V.4.4.1.1), l’organe de poursuite est composé d’un
discriminateur qui détermine l’erreur de poursuite, d’un filtre de boucle pour moyenner
l’erreur de poursuite et d’un oscillateur commandé en tension pour générer une horloge de
fréquence 160 MHz modulée par la valeur de l’erreur. Un multiplexeur permet de déclencher
la poursuite lorsqu’une corrélation est détectée (signal synchro de valeur 1) par l’organe de
synchronisation.
-112-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 18. Synoptique de l’organe de poursuite.
Si le résultat de corrélation de la branche « Early » est supérieur à celle de la branche
« Late », une erreur de poursuite (discri) positive est créée et générera une période en sortie
de l’oscillateur (NCO) de valeur Tearly = 6,25ns + influence de l’erreur (augmentation de la
période du NCO). Dans le cas d’une prépondérance de la branche Late, la période du NCO est
de 6,25ns - influence de l’erreur.
Les simulations ont montré que l’organe de poursuite s’asservit seulement si le PN-Code
à synchroniser n’a pas à se décaler de +/- 12,5ns par rapport au PN-Code central (Code_out).
C’est pourquoi le chaîne d’asservissement ne devra pas apporter un retard supérieur à un
temps Chip en totalité.
III.3.2.2.3.1
Le Discriminateur
Le discriminateur est composé de 2 branches de corrélation. Chaque branche de
corrélation est composée d’une fonction « multiplieur », intrégrateur/Bloqueur et valeur
« absolue », qui est la même organisation que la chaîne de synchronisation. Après écriture en
VHDL, les signaux mis en jeu sont simulés sous ModelSim et présentés sur la Figure III. 19.
-113-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 19. Simulation des principaux signaux de l’organe de poursuite sous ModelSim.
Le détail des signaux mis en jeu est à présent énuméré :
•
Data_codee_clk40e : données reçues et échantillonnées (après conversion du
signal reçu)
•
•
•
•
•
Data_multi_clk40nco : données multipliées dont la valeur varie entre +7 et -7 et
qui correspondent au signal encodé de l’émetteur.
Code_early : PN_Code en avance d’un ¼ Chip et issu du générateur de PN-Code.
Dump_early_clk40nco : le signal est généré par le générateur de PN_Code tous les
symboles à partir de l’horloge Chip. Il est généré tous les temps symbole pour que la
corrélation sur la branche early soit maximum.
Data_desetalee_early_clk160nco : le signal correspond à la sortie de
l’intégration/ 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
l’intégrateur/bloqueur décrit au III.3.2.2.1.1).
Data_absolu_early_clk160nco : ce signal prend la valeur absolue du signal
précédent Data_desetalee_early_clk160nco.
Les signaux pour la branche en retard (late) ont la même définition que ceux de la
branche en avance (Early).
•
Discri : signal de sortie du discriminateur, proportionnel à l’erreur de poursuite. Il
est
défini
comme
la
différence
entre
les
signaux
Data_absolu_early_clk160nco et Data_absolu_late_clk160nco.
Lorsque les branches sont équilibrées (ce qui veut dire que le Pn-Code en réception
(Code_out) a été ajusté précisement), ce signal prend pour valeur 0. Ce signal moyenné
pilote la fréquence du NCO.
-114-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.2.2.3.2
Le Filtre numérique
Les filtres numériques constituent la branche de traitement du signal la plus étudiée. Au
départ créée pour simuler les filtres analogiques afin d’optimiser leurs paramètres avant
réalisation, l’avancée technologique des logiciels permet désormais leur réalisation
[KPAL03]. C’est pourquoi des méthodes et des outils spécifiques ont été développés pour la
synthèse des filtres numériques.
Un filtre linéaire à temps discret réalise une opération de convolution entre le signal
d’entrée et la réponse impulsionnelle du filtre. Dans le domaine de l’échantillonné, elle
devient un produit algébrique (Figure III. 20).
Figure III. 20. Définition d’un filtrage numérique.
Y ( z) = H ( z) X ( z)
[Eq.III. 3]
où H(z) est la fonction de transfert du filtre numérique et Y(z) le signal de sortie du filtre.
Cette fonction H(z) peut s’écrire de deux manières :
M
H ( z)
∑b
m =0
m
zm
N −1
z + ∑ an z
N
avec M≤N pour que le filtre soit réalisable.
n
n =0
Par une équation aux différences utiles pour définir 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 numériques :
Le filtre à Réponse Impulsionnelles Finie (RIF) définie comme
h(n)=0 pour n ≥N et h(n)≠0 pour n=0,1,…N-1
Les filtres à Réponse Impulsionnelles Infinie (RII) tels que
h(n)≠ 0 pour n=0,1,…+∞
Les synthèses des filtres RIF ou RII se font de manières différentes. Pour le RIF, la
synthèse se fait généralement avec la méthode de la fenêtre où il faut imaginer la réponse
fréquentielle du filtre. Quant au filtre RII, il se base sur les méthodes du « monde de
l’analogique ». A partir d’une fonction de transfert issue du modèle fréquentiel, il est possible
de définir, grâce à la transformée bilinéaire, dans le domaine de l’échantillonné la fonction de
transfert du filtre numérique. Nous pouvons ainsi utiliser le savoir-faire du monde analogique
(Butterworth, Chebychev, Bessel…) dans le monde numérique.
Nous allons maintenant comparer ces deux familles sur les critères importants pour les
filtres numériques qui sont la stabilité, la phase linéaire et la quantité de calcul.
-115-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Critères
Stabilité
Filtre RIF
Toujours Stable
Filtre RII
La stabilité n’est pas
automatique. Elle doit être
vérifiée.
Oui
Non
Linéarité de la phase
Quantité de calculs Q associés Pour un gabarit donné Q RIF>>Q RII ce qui implique forcément
plus de calculs pour le filtre RIF que le filtre RII
Tableau III. 5. Comparaison des classes RIF et RII des filtres numériques.
Notre premier critère de choix s’est porté sur la quantité de calculs engendrée 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 définition des filtres étant faite en analogique [BOUR00], il
semble que le filtre RII apporte une meilleure transposition du filtre analogique en numérique.
Les désavantages du filtre RII comme la linéarité de la phase ne sont pas un critère important,
de même pour la stabilité qui peut être facilement vérifiée par simulation.
Pour toutes ces raisons, nous avons choisi un filtre RII en vue d’une implantation.
Le calcul du filtre numérique de la boucle à verrouillage de délai se base sur les
paramètres du filtre analogique, à savoir un filtre du 1er Ordre dans le domaine fréquentiel
avec une constante de temps τ= 1µs [BOUR00].
F ( p) =
1
1 + τp
[Eq.III. 4]
Grâce à la transformation bilinéaire [BELL02], nous nous basculons du domaine de
LAPLACE dans le domaine échantillonné de la transformée en Z. Cette transformation se
définit de la manière suivante :
H (z) = H ( p)
p=
2 Z −1
Te Z + 1
[Eq.III. 5]
Où Te représente la période d’échantillonnage (Te=Tc/4).
En appliquant le changement de variable de l’équation (Eq.III. 5), le calcul se développe
de la manière 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]
Par analogie avec :
H ( z) =
Y ( z ) b0 + b1 z −1
=
X ( z ) a 0 + a1 z −1
[Eq.III. 7]
Les coefficients a0,a1,b0 et b1 prennent respectivement pour valeurs :
b0 = b1 =
Te
= 0,1579
Te + 2τ
a0 = 1
a1 =
[Eq.III. 8]
2τ − Te
= 0,6842
Te + 2τ
-116-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
En vue de l’intégration numérique, nous déduisons l’équation aux récurrences (Eq.III.7 ) :
0,1579 x( n) + 0,1579 x(n − 1) = y (n) − 0,6842 y (n − 1)
Soit
y ( n) = 0,1579 x(n) + 0,1579 x(n − 1) + 0,6842 y (n − 1)
[Eq.III. 9]
Cette équation se traduit par la structure classique suivante :
Figure III. 21. Structure du filtre de boucle numérique
Son implantation dans le logiciel MATLAB nous permet de valider la stabilité. Les
résultats confirment que le filtre est un filtre du 1er Ordre stable puisque le pôle est à
l’intérieur du cercle de rayon R=1.
(a)
Figure III. 22. (a).Réponse impulsionnelle h(t)
-117-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
(b)
Figure III. 24.b Diagramme de stabilité du filtre.
Après cette vérification, cette structure est développée en VHDL, et génère les processus
suivants (Figure III. 23) :
Figure III. 23. Processus pour le filtre numérique de la boucle à verrouillage de délai.
Ce modèle est alors simulé sous le logiciel ModelSim avec une période d’échantillonnage
fixée à 6,25ns (Figure III. 24).
Figure III. 24. Simulation d’un filtre numérique RII.
Nous pouvons voir que le filtre implanté comprend un seul dépassement et se stabilise
avec comme valeur finale la valeur de l’échelon (c'est-à-dire 256). Notons que ce filtre
engendre un retard correspondant à 2 Te soit 12,5ns.
-118-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.2.2.3.3
L’oscillateur numérique controlé en tension
L’oscillateur numérique controlé en tension (NCO) est l’élément central de la DLL. Il
permet d’avancer ou de retarder le PN-Code en fonction de l’information d’erreur fournie par
le discriminateur, en générant une fréquence d’horloge contrôlable autour de la fréquence
centrale 160MHz. La période 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 fréquence générée en sortie du NCO sera plus rapide et
inversement. La structure de cet élément est présentée sur la figure suivante :
Figure III. 25. Schéma de principe pour l’oscillateur numérique contrôlé.
Le principe du NCO consiste à incrémenter sur chaque front montant d’une horloge
d’entrée (fréquence élevée par rapport à la fréquence d’échantillonnage du mot) un registre
« Accumulateur » d’un mot de commande W constitué du pas d’incrémentation (choisi pour
générer une fréquence centrale de 160MHz ) et du mot en sortie du filtre de boucle.
W[A:0]= entrée NCO + pas d’incrémentation
[Eq.III. 10]
L’influence du mot de commande W sur le bit de poids le plus fort (MSB) du registre est
illustrée pour deux valeurs d’erreur en entrée (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 d’incrémentation
de 2(0010b) et d’un mot d’entrée discri_int[10 :0] valant 0. Nous constatons que le signal
associé à l’évolution du bit de poids le plus fort est périodique, de période égale à 8 coups
d’horloge (Figure III. 26a).
Dans le deuxième cas (tableau de droite) le mot W toujours constitué d’un pas
d’incrémentation de 2 (0010b), est sommé au mot d’entrée discri_int[10 :0] de 1(0001b). Dans
ce cas, l’évolution du bit de poids le plus fort est également périodique, avec une période
fixée à 17 coups d’horloge (Figure III. 27.b). Nous avons donc bien réalisé une commande de
fréquence numérique. De manière générale, la fréquence de sortie du NCO s’écrit [LU93] :
-119-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Entrée nulle [discri_int]=(0)d
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
MSB
N(2)
N(1)
N(0)
0
2
4
6
8
10
12
14
0
Temps
0
0
0
0
0
0
0
0
0
Etat des registres de
l’accumulateur pour un
mot W de 0010
Valeur
accumulateur
(décimal)
Cycle pourW= 3
N(2)
0
1
0
1
0
1
0
1
0
N(0)
0
0
1
1
0
0
1
1
0
N(1)
0
0
0
0
1
1
1
1
0
MSB
Temps
Cycle pour W=2
Etat des registres
de l’accumulateur
pour un mot W de
0010
Entrée non nulle [discri_int]=(1)d
Valeur
accumulateu
r (décimal)
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 d’entrée, dans le cas d’un registre de
4 bits.
Figure III. 27. Représentation du bit de poids fort pour deux cas du mot W.
Les deux exemples précédents illustrent donc la variation de fréquence en fonction du
mot de commande W. La formule donnant la fréquence de sortie en fonction du mot W est la
suivante :
⎛f
f s = ⎜ clknco
A
⎝ 2
⎞
⎟ × [ Mot _ W ] d
⎠
[Eq.III. 11]
avec A la taille du registre de l’accumulateur.
La résolution associée s’écrit :
⎛f
⎞
résolution = ⎜ clknco
⎟
A
⎝ 2 ⎠
-120-
[ Eq.III. 12]
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Différentes simulations ont permis de fixer pour notre application la fréquence d’horloge
et le pas d’incrémentation. Les résultats obtenus sont présentés dans le tableau ci-dessous :
Fréquence Horloge
Longueur du registre
Pas incrémentation
Mot d’entrée
WMAX
(Signal d’entrée
=1111111111)
WMIN
(Signal d’entrée =0)
Plage de fréquence
Résolution (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
Tableau III. 6. Caractéristiques principales de l’oscillateur numérique commandé en tension.
La modélisation VHDL s’effectue sur la base de l’organigramme de la Figure III. 28.
Figure III. 28. Organigramme de la fonction NCO.
L’architecture du NCO comporte deux processus : un premier processus est déclenché
par le front montant de l’horloge à 640MHz qui ajoute à l’accumulateur n le résultat de
l’addition du pas d’incrémentation (fixé à 214) avec le signal d’entrée (discri). Le second
processus génère en sortie du NCO le bit de poids le plus fort de l’accumulateur. Les
chronogrammes issus des simulations sous ModelSim sont représentés dans la Figure III. 29.
-121-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 29. Simulation de l’organe NCO en langage VHDL.
Nous pouvons voir sur cette figure que nous générons une période de 6,25ns en sortie du
NCO qui correspond bien à la fréquence de 160MHz. Le mot issu du discriminateur est ajouté
à chaque front montant de l’horloge sur les bits n(9) à n(0) et fait donc varier la période du
signal de sortie du NCO permettant d’avancer ou de retarder la génération du PN-Code.
L’inconvénient majeur de cette structure avec cette configuration est sa difficulté
d’implémentation du fait du temps de propagation de la retenue. Une structure
d’accumulateur pipeline [LU93] peut palier à ce problème.
III.3.2.2.3.4
Le Générateur de PN-Code du récepteur
Ce générateur est basé sur la même structure que le générateur de PN-Code de l’émetteur.
En supplément, il doit fournir les PN-Codes en avance et en retard pour les branches du
discriminateur. Une étude antérieure [BOUR00] menée sur la variance du modèle fonctionnel
de la DLL a montré que l’écart entre les branches doit être de Tc/4 (6,25ns). De manière
identique au générateur de l’émetteur, il est paramétré par les vecteurs de configuration c(n) et
d’initialisation a(n). Il est à présent piloté par l’horloge issue de l’oscillateur numérique. Cette
horloge, centrée sur 160MHz, admet un minimum de 10MHz de variation.
Figure III. 30. Structure du générateur de PN-Code de récepteur.
-122-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Le générateur présenté ici est celui utilisé pour une synchronisation avec l’organe SERIE
une branche. Nous verrons dans le prochain paragraphe qu’il a été adapté dans le cas d’une
synchronisation à plusieurs branches (N branches).
III.3.2.2.4
Synchronisation à N branches
L’organe 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 décalage entre
chaque branche est égale à la durée d’un temps chip Tc, les calculs de corrélation en parallèle
couvrent tous les cas de corrélation. La figure suivante illustre la fonction d’autocorrélation
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 délai), un pic de corrélation peut être
détecté. Ainsi, à tout moment, une voie de synchronisation est valide (signal
Synchro_voie_corrélé vaut 1).
Figure III. 31. Représentation de la fonction d’autocorrélation pour chaque branche de
synchronisation (Cas N=7) décalée d’un temps chip.
La structure définie pour ce nouvel organe de synchronisation est la suivante :
-123-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 32. Structure du récepteur pour une synchronisation comptant N branches.
Comparée à la structure élémentaire, il est nécessaire d’implémenter un nouvel organe
supplémentaire entre la synchronisation et la poursuite détaillé dans le paragraphe ci-dessous.
III.3.2.2.4.1
L’organe de sélection
Comme son nom l’indique, l’organe de sélection a deux rôles principaux :
il doit indiquer l’image de la voie synchronisée. Ceci est évalué à l’aide des différents
signaux (synchro_N°_voie_corrélé),
il doit recaler le PN-Code pour permettre à la première voie d’être synchronisée. Par
conséquence, nous nous retrouvons dans le cas d’une synchronisation simple branche.
Dans le cas d’un code de longueur 15, la première étape consiste à dupliquer 15 fois la
branche de synchronisation. Nous avons alors conçu par concaténation des signaux de sortie
de chaque branche le mot k_n [14:0], qui définit la voie synchronisée. Il faut commander
la mise à jour des registres à décalage du générateur de PN-Code pour qu’au prochain signal
dump (ou temps symbole), le PN-Code de la voie 1 soit en phase avec la donnée étalée reçue.
L’étape suivante est d’accommoder la génération du PN-Code pour qu’au prochain temps
symbole, le PN-Code de la voie 1 soit en phase avec la donnée étalée. Le signal qui permet
cela est le signal interne d (valeur des registres à décalage) imposé par la sortie du module de
sélection. Le second signal de sortie de l’organe de sélection est le signal maj qui identifie le
moment de mise à jour du signal d.
La machine à états de la Figure III. 33 précise le fonctionnement global de cet organe.
-124-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 33. Description du fonctionnement de l’organe sélection.
La fonction sélection comporte donc 5 états :
Repos : c’est l’état d’initialisation 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 première voie (celle qui ne comprend pas
de retard avec l’organe récepteur_ss_synchronisation) est corrélée. Ce sera le cas lorsque
nous n’avons aucun retard engendré par le canal.
Les trois états suivants sont définis lorsque la corrélation n’est effective que sur la
première voie.
Sbn1 définit l’étape dans lequel est fait la mise à jour de d en fonction du numéro de la
branche. (MAJ=’1’)
Sbn2 traduit la fin de la mise à jour. Le signal maj vaut alors ‘0’.
Sbn3 est la dernière étape et gère les cas de désynchronisation. Dans le cas d’une perte
de synchronisation, nous retournons dans l’étape Sbn1 pour retrouver la nouvelle voie
synchronisée.
Nous évaluons la valeur du mot d(0:11) en fonction de la branche synchronisée. 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 à décalage répond à l’équation suivante :
Ts_maj =Ts+(k_n -1)*Tc
[Eq.III. 13]
La figure suivante illustre les différents signaux que nous venons de décrire. 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 c’est la branche n°8 qui est corrélée pendant le
premier symbole. Au prochain temps symbole (2ème Dump) c’est la branche 1 (donc le
Synchro1 vaut 1) qui est maintenant corrélée. Nous voyons que la machine à états passe par
les états Sb1, Sbn1 et Sbn2.
-125-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 34. Simulation de l’organe déphaseur et du nouveau générateur de PN-Code.
III.3.2.2.4.2
Le générateur de PN-Code adapté à la synchronisation N branches.
Le deuxième organe modifié pour permettre une synchronisation N branches est le
générateur de PN-Code qui comporte à présent deux nouveaux signaux en entrée :
le signal maj commande la mise à jour des registres des générateurs (actifs à l’état 1).
le mot d_int[0:11] qui est la valeur des registres à décalage du générateur.
L’organigramme du générateur de PN-Code devient le suivant :
Figure III. 35. Organigramme du générateur de PN-Code pour une synchronisation N branches.
-126-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
L’organigramme du générateur 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 deuxième processus (celui de droite) permet l’affectation des registres à décalage
(mot dint) et la création du signal dump définissant le temps symbole. La mise à jour
des registres à décalage se fait pendant l’état haut du signal maj.
III.3.2.2.4.3
Résultats de simulation du récepteur en bande de base
La structure que nous venons de décrire a été implantée en VHDL. Outre les signaux
présentés lors des simulations précédentes, nous montrons les signaux du récepteur
(III.3.2.2.1.4) permettant la validation du modèle sur la figure suivante :
Figure III. 36. Simulation du récepteur dans le cas d’une synchronisation 15 branches.
Nous observons que c’est bien la voie 8 qui est corrélée au départ puisque le signal
synchro7 symbolisant la corrélation existante sur la 8ème voie est mis à 1. La fonction
sélection joue alors son rôle :
la machine à états (signal sync0) bascule successivement dans l’état Sbn1, sbn2 puis
sbn3.
après concaténation, le vecteur k_out, initialement à 0, prend la valeur 128.
La branche 8 (27) est celle délivrant une corrélation correcte. Enfin, la valeur du vecteur
passe à 1, ce générateur de code venant de recaler le délai, la corrélation correcte finale
s’effectue sur la branche numéro 0 (20).
La branche numéro 1 devient alors corrélée après un temps symbole. Les signaux du
récepteur deviennent alors correctes et correspondent aux signaux que nous avions dans le cas
d’une synchronisation simple branche (Figure.III.16). Au vu de cette simulation nous
pouvons donc valider notre modèle de synchronisation 15 branches.
-127-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.3
Description des parties analogiques
La modélisation des étages radiofréquences de la chaîne d’émission-réception tire partie
de la fonctionnalité analogique et mixte du langage VHDL-AMS. Les étages radiofréquences
sont constitués d’oscillateurs locaux (analogiques), de multiplieurs (analogiques et mixtes) et
de filtres (analogiques).
III.3.3.1 Description des parties radio-fréquences
Figure III. 37. Schéma global des étages radio-fréquences pour l’émission et la réception.
Ces étages radiofréquences sont donc constitués de multiplieurs et d’oscillateurs
effectuant la modulation BPSK sur fréquence porteuse, de filtres Passe-Bande et d’un filtre
Passe-Bas pour éliminer les fréquences doubles en sortie du démodulateur. La modélisation
du canal englobe un canal AWGN dont le niveau de bruit peut être paramétrable.
III.3.3.1.1
III.3.3.1.1.1
La modulation et démodulation BPSK
La modulation BPSK
La modulation BPSK (Chapitre II §V.I) consiste à matérialiser le signal binaire par un
changement de phase de la porteuse ; un déphasage de π devra être interprété à la réception
comme un ‘1’ binaire et l’absence de déphasage comme un ‘0’. Ceci se traduit à l’émission
par la mise en œuvre d’un multiplieur numérique - analogique : un mélange entre le signal
binaire (data_étalé) et une porteuse (ici 2,44GHz). Cette opération nécessite la transformation
des données étalées au format NRZ (Etats -1 ;+1). Cette fonction est décrite à partir de
l’organigramme suivant (Figure III. 38).
Figure III. 38. Organigrammes de fonctions composant la modulation BPSK.
-128-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
L’instruction break permet l’interaction entre le noyau numérique dans lequel sont
définis les signaux numériques de l’émetteur et le noyau analogique dans lequel est définie la
porteuse. Les signaux de sorties de l’oscillateur et du multiplieur sont décrits au moyen de
terminaux qui définissent des connexions analogiques.
Oscillateur local
Saut de phase
Sortie haute fréquence
Figure III. 39. Résultats de simulation du modulateur BPSK.
Les résultats de la Figure III. 39 montrent que chaque front sur la donnée étalée se traduit
par un saut de phase.
III.3.3.1.1.2
La démodulation BPSK
Le schéma classique de la démodulation BPSK est utilisé à la réception et permet de
transposer directement le signal étalé en bande portée en bande de base (Figure III. 40). Outre
un oscillateur local (OL) et un multiplieur, le filtre passe-bas rejette la composante spectrale
de fréquence double (Figure III. 41).
Figure III. 40. Démodulateur BPSK utilisé à la réception.
Sortie OL
Sortie Filtre
Passe-bas
Figure III. 41. Résultats de simulation en sortie du démodulateur BPSK.
Le gabarit du filtre passe-bas est déterminé dans la partie suivante.
-129-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.3.1.2
Les Filtres analogiques
III.3.3.1.2.1
Choix des paramètres des filtres analogiques
Pour choisir les différents filtres analogiques utiles dans la chaîne radiofréquence, nous
nous sommes basés sur une étude comparative [NIVE99] décrivant les différents filtres
analogiques. Le bilan est le suivant :
Les filtres Passe - Bande en sortie du modulateur et en entrée du démodulateur ont pour rôle
de borner la bande d’émission en accord avec la bande ISM (Bande passante d’émission =
80MHz). La fonction de transfert retenue est [NIVE99] :
b0 +b1p +b2 p2
p2
H( p) =
=
[Eq.III. 14]
a0 +a1p +a2 p2 +a3 p3 +a4 p4 4,4.1022 +3,13.1011p +3,88.102 p2 +1,37.10−9 p3 +4,4.10−19 p4
Le filtre de Tchébyscheff apporte la configuration optimale. Ce filtre a été retenu pour sa
bonne réjection malgré une mauvaise linéarité en phase et une oscillation de sa réponse
fréquentielle dans la bande utile. Les caractéristiques retenues sont : un filtre de
Tchébyscheff d’ordre 5, de fréquences de coupure 2,44GHz ± 40MHz avec une ondulation
dans la bande passante de 0,05dB.
Pour le filtre Passe - Bas en sortie du démodulateur le filtre de Bessel détient les
meilleures propriétés. En effet, la réjection est moindre du fait de l’écart de fréquence entre le
signal utile et le signal à rejeter (4,88GHz). Il déforme peu la réponse impulsionnelle et
présente une très bonne linéarité en phase. Le filtre de Bessel d’ordre 5 et de fréquence de
coupure 40MHz a été retenu [NIVE99] dont la fonction de transfert s’écrit :
H ( p) =
III.3.3.1.2.2
50
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
[Eq.III. 15]
Description des filtres implantés en VHDL-AMS
En VHDL-AMS, le comportement d’un filtre peut être exprimé de deux manières soit
sous forme de fonction de transfert, soit sous d’une équation différentielle. Déjà exprimer
sous forme de fonction de transfert, nous avons décrit les filtres sous cette forme. Elle
s’exprime sous l’attribut prédéfini ‘ltf, qui accepte comme argument les tableaux de
coefficients de polynôme num et den, représentant respectivement polynôme du numérateur
et du dénominateur. Les filtres n’ont alors qu’une instruction simultanée qui permet
d’exprimer la fonction de transfert du filtre dans le domaine de LAPLACE. Les entrées et les
sorties de ces filtres sont définies à l’aide de terminaux (points de connexions analogiques).
III.3.3.2 Le canal AWGN (Additif White Gaussian Noise)
Dans toute application de ce type, les mesures issues des simulations (gain en traitement,
rapport signal sur bruit SNR, taux d’erreur sur le bit TEB) s’effectuent en milieu bruité. Il est
donc nécessaire de développer un modèle de canal AWGN dans lequel nous pouvons
aisément paramétrer les niveaux de bruit, permettant de voir directement le rapport signal sur
bruit. Pour cela, les fonctions développées pour la modélisation du canal, en VHDL-AMS,
sont :
une atténuation (B)
un retard Td (B)
un générateur de bruit blanc gaussien (A), intégrant une fonction spécifique capable de
générer de manière implicite le niveau de bruit correspondant à un rapport signal sur
bruit souhaité (C).
-130-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Ces fonctions sont schématisées sur la Figure III. 42.
Figure III. 42. Description fonctionnelle du module du canal AWGN.
Ces fonctions développées en VHDL-AMS, sont détaillées dans les paragraphes suivants.
III.3.3.2.1
Génération d’un bruit blanc Gaussien
Comme nous l’avons déjà vu (Chapitre 1( § IV.2.3)), les bibliothèques de bruit en
VHDL-AMS sont quasiment inexistantes, nous avons donc développé notre propre modèle de
bruit. Pour cela, nous nous sommes basés sur la méthode de BOX-MULLER [BOXM58]
permettant de transformer deux variables définies par une distribution uniforme en une
variable basée sur une loi normale.
Définition de la transformation de BOX MULLER
Soit x1 et x2 deux variables uniformes et distribuées indépendamment entre 0 et 1, alors z1
définit comme suit est une distribution normale de valeur moyenne µ nulle et de variance σ²
égale à 1.
z 1 = − 2 ln x1 cos(2πx 2 )
[Eq.III. 16]
La loi décrite par la variable z1 est appelée aussi loi normale centrée réduite et permet de
définir un signal blanc gaussien.
Description du bruit blanc gaussien en VHDL-AMS
La génération du bruit blanc gaussien se déroule en deux étapes [KARR04,NORM04]. La
première étape permet de décrire les deux variables uniformes X1 et X2. Pour ce faire, nous
utilisons la fonction UNIFORM [LECU88] de la bibliothèque « Math_real ». Cette fonction
retourne un nombre x pseudo-aléatoire basé sur une distribution uniforme dans l’intervalle
-131-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
[0.0, 1.0]. Ces variables sont ensuite composées par la transformation de Box-Muller au
moyen de l’équation (Eq.III.8). L’organigramme suivant (Figure III. 43) décrit cette
génération du bruit blanc gaussien en VHDL-AMS.
Figure III. 43. Organigramme de la génération d’un bruit blanc gaussien.
Les variables aléatoires x et y de l’organigramme permettent de définir la variable
gaussienne « noise ». L’instruction concurrente break permet de forcer le calcul à un instant
défini par le temps d’échantillonnage (Tps_echant).
La Figure III. 44 représente la densité de probabilité issue du bruit généré à l’aide de la
transformation de BOX-MULLER en VHDL-AMS comparée à la théorie calculée sous
MATLAB [GUIL05G]. Ce résultat permet de valider la génération d’un bruit blanc gaussien.
MATLAB
VHDL-AMS
Figure III. 44. Densité de probabilité à l’aide du modèle VHDL-AMS et du modèle mathématique sous
MATLAB.
III.3.3.2.2
Le délai dans le canal
En VHDL-AMS, le délai dans le canal a été créé grâce à la fonction DELAYED qui
recopie l’entrée sur la sortie après un temps réglable. Cette modélisation sera notamment utile
pour la validation du modèle du récepteur et en particulier l’organe de synchronisation. En
effet, cette déviation temporelle paramétrable dans le canal permet de mesurer la fonction
-132-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
d’autocorrélation en sortie de l’organe de corrélation du récepteur, sans synchronisation. Par
la suite, cette fonction est aussi mise en œuvre pour la modélisation d’un canal multitrajet.
III.3.3.2.3
Implantation d’un rapport signal sur bruit paramétrable
L’implantation d’un signal « bruit » dans le canal au moyen d’un additionneur permet de
reproduire le comportement en milieu bruité du prototype [GUIL05E]. Cependant, les étapes
de mesures associées, comme la détermination du rapport signal sur bruit en entrée du
récepteur, sont contraignantes : mesure de la puissance du signal seul (S) injection du bruit,
mesure de la fréquence totale, déduction de la puissance du bruit (B). La syntaxe du VHDLAMS permet de développer un modèle de canal dans lequel nous fixons comme paramètre
d’entrée, directement le rapport signal sur bruit (SNR). Le modèle fonctionnel complet du
canal AWGN est présenté sur la Figure III. 45.
Figure III. 45. Structure interne du canal AWGN paramétrable.
Nous retrouvons comme variables d’entrée le retard Td et l’atténuation A, auxquelles
s’ajoute le niveau de rapport signal sur bruit en décibel. Le signal de l’entrée du sommateur
s’écrit :
Noise_generator_out=10(Level/20.0)×Noise
[Eq.III. 17]
dans lequel Level représente le niveau de bruit implicite dans le canal, noise le bruit
blanc gaussien généré avec la méthode de BOX-MULLER et Noise_generator_out le
bruit gaussien généré pour le niveau Level.
-133-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Le niveau de bruit Level est calculé en fonction du rapport signal sur bruit désiré (SNR)
et du niveau du signal Ve, qui peut être atténué (A1) par rapport au signal en entrée du canal.
Pour cela, il est donc nécessaire de mesurer Ve (en dB) au prélable :
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 à l’entrée du canal Ve(dB). Le second
processus génère le bruit blanc gaussien adaptatif. Il crée le bruit Noise grâce 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
l’intermédiaire du signal Noise_generator_out.
-a-b-c-dFigure III. 46. Simulation des différents signaux du module « CANAL AWGN ».
La Figure III. 46 décrit les différents signaux mis en jeu dans l’organe CANAL AWGN.
Le signal (a) représente le signal en entrée du canal , le signal(b) Noise est le bruit blanc
gaussien généré, le signal (c) Noise_generator_out décrit le bruit injecté dans le canal et
enfin le signal (d) représente la sortie du canal.
La figure ci-dessous présente la densité de probabilité pour deux rapports signal sur bruit
(SNR =15 dB à gauche et SNR=10 dB à droite) générés. La valeur moyenne du « bruit
paramétrable » est nulle, mais la variance évolue en fonction du rapport signal sur bruit
(SNR).
SNR=10 dB
SNR=15 dB
Figure III. 47. Représentation du bruit gaussien avec différents niveaux de bruits.
Ces derniers résultats permettent de valider le module canal AWGN modélisé en VHDLAMS.
-134-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
III.3.4
Description du Convertisseur Analogique / Numérique
A l’entrée du récepteur, après les étages radiofréquences, le signal en bande de base est
échantillonné par la transformation analogique/numérique. Ce composant est le seul élément
mixte analogique/numérique de la chaîne de communication. Le nombre de bits en sortie du
convertisseur analogique/numérique est un paramètre important, et influe directement sur la
taille et la complexité du circuit final. Une architecture à taille de mots réduits sera
potentiellement plus rapide qu’une architecture à mots plus longs. L’étude de l’influence de
ce paramètre sur le gain en traitement Gp [MELE01] a montré qu’une architecture du
récepteur à 4 bits assure un bon compromis entre les performances et la largeur du bus du
récepteur.
Le modèle que nous avons développé est un convertisseur analogique/numérique utilisant
un processus d’approximations successives pour calculer le mot de sortie. Nous avons adapté
un modèle inclus dans la bibliothèque standard du VHDL-AMS pour que la plage de tension
et le temps de conversion soient configurables pour l’utilisateur. Dans ce convertisseur, quatre
états sont développés : l’entrée de la donnée analogique, le maintien, la conversion et la sortie
du mot sur 4 bits. Le process est constitué d’une série d’instructions séquentielles déclenchée
par un front montant de l’horloge d’échantillonnage. Les signaux en entrée sont le signal issu
du canal (ain), un signal de début de conversion (start), l’horloge d’échantillonnage
(640MHz) pour la conversion (clk). Les signaux en sortie sont un signal détectant la fin de
conversion (eoc) et le signal dout converti en numérique sur 4 bits.
La valeur du signal analogique est prélevée lorsque le signal start vaut ‘1’. A chaque
période d’échantillonnage clk =’1’, la valeur Vin est stockée dans un variable Vtmp. Cette
valeur est alors quantifiée dans la variable Dtmp avant d’être affectée à la sortie sous forme
signée codée sur 4 bits.
III.4 Résultats de simulation
III.4.1
Simulation de la fonction d’autocorrélation
La validation du principe de l’étalement de spectre [GUIL05B] est effectuée pour
différentes simulations au niveau du récepteur pour une longueur de code égale à 15 en
présence d’un canal non-bruité. La fonction suivante est obtenue, et comparée à la fonction
théorique (Figure III. 48).
-135-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
1,2
Théorie
Simulation
1
0,8
Rc(tau)
0,6
0,4
0,2
0
0
50
100
150
200
250
300
350
400
450
-0,2
tau (ns)
Figure III. 48. Fonction d’autocorrélation théorique et simulée pour N=15.
Nous obtenons une courbe comparable à la théorie (Chapitre 2 §III.6.2) avec un pic
−1
d’autocorrélation maximal de valeur 1 pour un délai nul, et minimal (de valeur
) en dehors
N
de la zone de corrélation. A la différence de la théorie, la fonction d’auto-corrélation forme
des paliers pendant environ 6ns, qui s’expliquent par le calcul de l’intégration sur une
fréquence d’échantillonnage de 160MHz. Cette simulation permet de valider la fonction de
désétalement de notre modèle, et valident qualitativement le modèle développé tout au long
de ce chapitre.
III.4.2
Simulation de la chaîne complète Emetteur/Récepteur
Toutes les fonctions mixtes analogiques et numériques décrites dans ce chapitre
(émetteur, canal, récepteur) sont implantées dans le logiciel SystemVision, constituant ainsi
notre prototype virtuel en langage de haut niveau.
Nous illustrons les différentes ondes temporelles principales mises en jeu dans la chaîne
de l’émetteur/récepteur par la figure suivante (Figure III. 49).
-136-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
Figure III. 49. Résultats de simulation des principaux signaux de l’émetteur/récepteur.
Les principaux signaux de l’émetteur, du canal et du récepteur représentés sont :
A l’émission : Data_source, Data_encodee et Data_etalée sont respectivement
la trame à émettre, la trame encodée différentiellement et cette donnée est ensuite
étalée. Ce dernier signal est modulé avec un oscillateur de 2,44GHz, puis filtré à l’aide
d’un filtre passe-bande.
Dans le canal: Entrée_canal et Sortie_canal sont les signaux en entrée et en
sortie du canal.
A la réception : ain et data_codee sont les signaux d’entrée du récepteur. Ain est le
signal après la modulation BPSK, dont le résultat après la conversion
analogique/numérique donne le signal data_codee. Ce signal est ensuite corrélé
avec le PN-Code du récepteur (code_clk_40nco) ce qui donne lieu au signal
data_desetalee. Cette donnée est ensuite comparée (data_av_decodee), puis
décodée en différentiel pour donner le signal en sortie du récepteur
(sortie_clk160nco).
Nous observons que le signal data_av_decodee du récepteur et Data_encodee de
l’émetteur correspondent bien. Enfin, les signaux data_source et sortie_clk160nco
sont identiques mais avec une certaine latence.
-137-
CHAPITRE III : Méthodologie et développement d’un prototype virtuel mixte en langage de haut niveau
-138-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
IV CHAPITRE 4 : Etude et développement de la maquette
Emetteur-Récepteur
Ce chapitre présente l’intégration du prototype complet. Ainsi nous décrivons le choix du circuit programmable
utilisé et les différentes procédures de tests réalisées. Nous expérimentons l’intégralité des fonctions numériques
de notre système en axant nos tests sur la généricité du système implanté et l’organe de synchronisation
comportant plusieurs branches.
1
2
3
4
5
6
Introduction ............................................................................................................................................... 141
Cible d’implantation.................................................................................................................................. 141
2.1
Description du FPGA....................................................................................................................... 142
2.2
Le logiciel de commande Quartus II................................................................................................ 143
2.3
Etapes d’implantation ...................................................................................................................... 143
Les modules périphériques spécifiques développés .................................................................................. 144
3.1
Paramétrage du canal...................................................................................................................... 145
3.2
Paramétrage du débit....................................................................................................................... 148
3.3
Module de calcul de TEB ................................................................................................................. 148
3.4
Interface logicielle ........................................................................................................................... 149
Résultats de synthèse................................................................................................................................. 150
Evaluation des performances mesurées ..................................................................................................... 151
5.1
Test en milieu non bruité.................................................................................................................. 152
5.2
Mesures en milieu bruité.................................................................................................................. 155
BILAN....................................................................................................................................................... 156
-139-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
-140-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
IV.1 Introduction
Cette dernière partie portera sur la réalisation d’une maquette Emetteur/Récepteur à
circuit programmable comprenant tous les étages numériques. Dans un premier temps, nous
testerons les fonctions principales de l’émetteur et du récepteur en bande de base et nous nous
focaliserons en particulier sur l’organe important pour un émetteur/récepteur à étalement de
spectre qui est la partie synchronisation. Dans un deuxième temps, nous ajouterons un délai
« numérique » avec/sans bruit dans le canal pour évaluer les performances de notre système.
IV.2 Cible d’implantation
Nous présentons tout d’abord le choix de notre cible pour l’implantation des étages
numériques écrits dans le langage haut niveau VHDL.
A partir de l’étude menée dans le premier chapitre, nous avons décidé de choisir comme
cible d’implantation un circuit programmable FPGA, pour sa souplesse de conception (facilité
d’utilisation, facilité de programmation).
Depuis plusieurs années, les constructeurs de FPGA ont augmenté la complexité de leur
circuit, tout en rendant disponibles gratuitement (via internet) ou à faible coût les logiciels
pilotes associés. Ceci est un donc un sérieux avantage pour un développement basé sur un
composant programmable. Ces logiciels actuels associés pour la synthèse conviennent dans la
plupart des cas lorsque la conception devient plus difficile (fréquence élevée, nombre de
portes importantes, contraintes temporelles fortes…), il est alors nécessaire d’utiliser d’autres
outils que ceux des fournisseurs de FPGA comme l’outil de synthèse de Mentor Leornardo
Spectrum (ou plus récemment Precision RTL) ou bien encore Synplify Pro de Synplicity. Le
placement – routage est naturellement exclusivement fait par les fabricants de FPGA qui sont
amenés à connaître le plus précisément possible les caractéristiques physiques de leurs
circuits.
Le tableau suivant permet de comparer les différents outils logiciels des fabricants de FPGA.
Editeur
Nom de l’outil
Actel
Libero
Altera
Quartus II
Lattice
IspLever
Xilinx
ISE
Vue graphique de la
Compilation incrémentale
conception au niveau
Conception et implantation
logique et physique
indépendantes des modules
Editeur de paramétrage
Outil graphique de
des E/S
connexion d’IP et de cœurs
Outil de calcul de la
de processeurs
consommation
Simulateur disponible
Points
marquants
Principaux outils
tiers utilisés
dans le flot de
conception
Outil de gestion de projet Préplacement de blocs
Simulateur propre avec intégrant des contraintes
édition et visualisation
de timing
des chronogrammes Assignation automatique
Outil d’analyse et
des broches de FPGA
d’estimation de temps
pour le circuit
critique sans
Outil de débogage temps
recompilation
réel avec déclenchement
croisé avec le logiciel
Simulation
Simulation
Simulation
Simulation
ModelSim(Mentor)
ModelSim(Mentor)
ModelSim(Mentor)
ModelSim(Mentor)
Génération Test Bench
Synthèse
NC Sim(Cadence)
NC Sim(Cadence)
Synplify FGPA
Synthèse
Sirocco(Synopsis)
Sirocco(Synopsis)
Synplify FGPA
Synthèse
Synthèse
(Synplicity)
Design Compiler(Synopsis)
Synplify FGPA
(Synplicity)
Leonardo (Mentor)
(Synplicity)
Leonardo (Mentor)
Analyse statistique de
Synthèse physique
Leonardo (Mentor)
Palace (Magma)
délais
Synthèse physique
Prime time (Synopsis)
Palace (Magma)
Tableau IV. 1. Flots de conception des fabricants de FPGA [GAU04].
Pour des raisons de disponibilité de matériel au laboratoire, nous avons choisi de nous
limiter aux produits d’ALTERA. 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 coût est
-141-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
prohibitif (≈ 2000€) et le rend impossible d’utilisation. Pour un moindre coût, le FPGA
Cyclone II présente un bon compromis coût / performances. Possédant des performances
inférieures au Stratix II, il semble nous satisfaire pour notre projet car il est capable d’utiliser
2 millions de portes, avec des fréquences d’horloge pouvant aller à 800 MHz. Cependant nous
disposons au laboratoire d’un kit de développement ALTERA APEX 20KE200E. Les
performances intrinsèques sont certes inférieures à celles présentées par les modèles
précédents, mais elles pourront tout de même satisfaire un premier prototype.
IV.2.1
Description du FPGA
Le FPGA ALTERA APEX 20KE200EFC484 se trouve sur la carte de développement
EXCALIBUR que nous pouvons voir sur la Figure IV. 1.
3
1
4
2
5
Figure IV. 1. Carte de développement NIOS EXCALIBUR.
La carte de développement Excalibur comprend :
1. Le composant FPGA Apex20K200EFC484.
2. Un port SERIE RS-232.
3. Une mémoire flash de 1Mbyte.
4. Une mémoire SRAM de 256Kbytes.
5. Un oscillateur d’une fréquence de 33.33MHz.
Il offre en autre la possibilité d’utiliser jusqu’à 80 entrées/sorties. Ses caractéristiques
sont résumées dans le tableau suivant :
-142-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Nom du
FGPA
Nombre de portes
maximum du
système
Portes
typiques
Nombre
d’éléments
logiques
Nombre de
blocs système
incorporé
PLL
20K200E
526 000
200 000
8320
52
2
Tension
d’alimentation
Maximum
de bits
RAM
Maximum
µcellule
Maximum
d’entrée/sortie
Différentes tensions
d’alimentation
1.8V
106496
832
376
1.8V,2.5V,3.3V,5.0V
Tableau IV. 2 Résumé des caractéristiques du FPGA utilisé (APEX).
Notons qu’en raison des performances présentées par notre FPGA, nous avons choisi de
diviser par 4 nos fréquences d’horloge. Ainsi, la fréquence d’échantillonnage, initialement à
160MHz, évolue maintenant à une fréquence de 40 MHz et la fréquence rythmant le bit du
code d’étalement devient une fréquence de 10 MHz.
IV.2.2
Le logiciel de commande Quartus II
Nous avons mis en œuvre QUARTUS II version 5.0 disponible gratuitement via le site
internet d’ALTERA [ALTWW]. Son utilisation est indispensable pour configurer un FPGA,
car il exécute le placement routage et génère les fichiers qui permettent de configurer le
FPGA. QUARTUS permet aussi de concevoir des systèmes, 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 paramètres tels que la fréquence maximale et la puissance
consommée.
IV.2.3
Etapes d’implantation
La Figure IV. 2 montre les différentes phases pour l’implantation de fichiers VHDL sur
un FPGA de la famille Altéra.
Cahier des charges
Quartus Environment
Environnement VHDL-AMS
Etages Numériques
VHDL Synthétisable
Etages
Analogiques
VHDL -AMS
Fichiers VHDL Synthétisable
Quartus II
Bibliothèques
du constructeur
Analyse Fréquentielle et
temporelle
Synthèse (Génération de Netlist)
Analysis & Synthesis
Synthèse Logique
Placement routage
Fitter
Vérification Electrique et
temporelle
Analyser & Timing Analyser
Choix de l’architecture
Configuration du FPGA
APEX20KE
Figure IV. 2. Méthodologie pour un FPGA de la famille ALTERA
-143-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Nous trouvons 4 phases :
L’outil « Analysis & Synthesis » vérifie la syntaxe et la sémantique du code et réduit
au minimum la logique de conception. Il génère ensuite une netlist qui détermine le nombre
d’éléments logiques utiles à la réalisation du système et la connexion entre ces éléments
logiques. Un élément logique est composé pour l’APEX20K200E d’un registre ou/et d’une
LUT (Look Up Table). Le registre permet de faire toutes les affectations de signaux (par
exemple détection sur front montant) alors que la LUT déclare dans une table la valeur des
signaux (utiles par exemple pour la définition des paramètres).
La deuxième phase est le placement/routage qui est défini à partir de la netlist des
éléments logiques. C’est la phase qui consomme le plus de temps car c’est lors de cette étape
que le logiciel choisit les positions physiques des cellules et les chemins des signaux pour une
utilisation optimale et réduite.
La phase suivante correspond à la vérification des choix faits lors de la phase
précédente et la génération des fichiers vers le FPGA. Elle permet d’analyser les différents
chemins et les délais de propagation. Après cette étape, nous pourrons connaître le délai pour
le chemin le plus critique. Les résultats de cette phase sont établis sous forme de rapport et
déterminent les performances du composant (occupation du FPGA, Puissance, température de
fonctionnement, schémas des connexions …).
La dernière phase implante le circuit conçu par programmation et configure les
interrupteurs en fonction des résultas du placement/routage.
IV.3 Les modules périphériques spécifiques développés
Le synoptique du système est illustré par la Figure IV. 3.
Figure IV. 3. Synoptique du système de tests du FPGA.
Il se compose d’un module de bruit analogique, du kit de développement pour le FPGA
APEX 20K200E, d’une interface en Visual Basic spécifiquement développée et d’un
analyseur logique 16 voies.
-144-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
IV.3.1
Paramétrage du canal
IV.3.1.1 Le retard dans le canal
Lors de nos tests, le canal paramétrable permet de choisir différents instants, entre autre,
un délai correspondant à un retard de propagation ou à une réflexion. Quatres valeurs de délais
ont été privilégiées, correspondant à des points clés de la fonction d’autocorrélation (pic de
corrélation (Cas 11), entre le pic de corrélation et le temps chip (Cas 00)), entre les 2 pics de
corrélation (Cas 01), et sur le deuxième pic de corrélation (Cas 10).
Figure IV. 4 : Représentation des différents délais commandés dans le canal.
Valeurs théoriques (N=15, Tc=25ns) Formules Signal sel
Pente de corrélation
12,5 ns
½ Tc
00
(Cas 00)
Pas de corrélation
200 ns
8Tc
01
(Cas 01)
Pic de corrélation
375 ns
15Tc
10
(Cas 10)
Aucun retard
0 ns
0
11
(Cas 11)
Tableau IV. 3. Valeur des points intéressants de la courbe d'auto corrélation.
La solution retenue pour la génération des retards est un registre à décalage de la
bibliothèque de Altera. La cascade de plusieurs de ces registres forme le composant
« altshift ». Le nombre de registres associés, huit pour notre exemple, fixe le retard de
propagation (Tableau IV. 3).
-145-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
altshift
altshift
altshift
Figure IV. 5 : Schéma du bloc retard_canal
Le paramètre générique « width » fixe la taille du bus d’entrée-sortie et le paramètre
« depth » le nombre de bascules. Le port de sortie est constitué des signaux retardés en
fonction du nombre de bascules déterminé par le paramètre « depth ». Le code et un exemple
de cet organe sont illustrés sur la figure ci-dessous :
component altshift is
generic ( WIDTH : INTEGER := 0; -- largeur de l'entrée et de la sortie
DEPTH : INTEGER := 8 -- profondeur
);
port ( data : IN STD_LOGIC_VECTOR (WIDTH-1 DOWNTO 0); --entrée 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 l’utilisation, et fixant la
sélection du retard dans le canal au moyen d’un multiplieur.
Le module retard canal doit être comme tous les autres modules, utilisable pour n’importe
quelle longueur de code (de N=7 à N=2047). Nous avons donc développé une « matrice » de
fonctions retard_canal, dont chacune comporte des modules adaptés en nombre de registres
suivants la valeur du temps symbole. Les chronogrammes après synthèse sous QUARTUS
sont présentés sur la Figure IV. 7. Lorsque le mot « sel » vaut ‘00’ (Pente de corrélation) la
sortie (sortie_clk160nco ) est équivalente à l’entrée des données, tandis que dans le cas
‘01’ la sortie est active à 1.
-146-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Cas ‘00’
Corrélation
Cas ‘01’
décorrélation
Figure IV. 7 : Chronogramme des signaux émetteur/récepteur avec retard programmable
IV.3.1.2 Génération du bruit dans le canal
Dans tout système de communication, il est nécessaire d’évaluer ses performances en
milieu bruité. Ce bruit doit avoir un contrôle de niveau afin de calculer le rapport signal/bruit.
Pour injecter un bruit blanc gaussien dans le canal, la solution suivante a été envisagée :
Les constructeurs de FPGA mettent à disposition des modules VHDL réalisant des
fonctions pré-établies (IP ou Intellectual Property). Le module « AWGN » permet de bruiter
le signal directement sur le FGPA, sans avoir à importer du matériel externe. Sachant que les
FPGA servent essentiellement de nos jours à mettre au point des systèmes et que le bruit et un
point très important dans une conception, XILINX a créé ce module pour faciliter le travail
des ingénieurs. Dans ce module, nous entrons le niveau du signal sur le bruit souhaité.
L’utilisation de ce module pour un FPGA Altera entraînerait un temps de conception
prohibitif dû au portage de cette IP Xilinx sur un FPGA de la famille ALTERA. Cette
solution a donc été écartée pour cause de complexité de portage.
La solution retenue est basée sur un circuit analogique externe dont la source de bruit est
générée par un générateur incluant cette fonction. Le générateur HEWLETT PACKARD
33120A possède une fonction bruit (noise) qui génère un bruit dont nous pouvons faire varier
l’amplitude entre 0.5 mV et 10V.
Le circuit externe se compose du générateur de bruit (GBF) à l’entrée d’un sommateur
avec le signal en sortie de l’émetteur (Figure IV. 8).
.
-147-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Générateur de
bruit
R
+
Signal étalée
R
R
-
FPGA
Signal étalé bruité
R
Figure IV. 8. Circuit analogique réalisant la fonction bruit.
IV.3.2
Paramétrage du débit
Le cahier des charges nous oblige à paramétrer le débit de notre émetteur entre 4 kps et
1,5 Mbps. Pour cela, nous fixons dans une bibliothèque dénommée parameter les valeurs du
coefficient c(n) permettant de fixer la longueur du PN-Code. Comme nous l’avons vu dans le
(Chapitre 2 §V.2.1) ce coefficient c(n) permet le choix de neuf débits différents de 4,75Kbps à
1,43Mbps. Pour choisir ce coefficient et par mesure d’économie de bit, nous l’avons codé sur
un mot de 4 bits, accédant aux neufs possibilités. Chacune des valeurs renvoie un coefficient
c(n) qui sert pour le calcul du PN-Code. La fréquence du chip est fixée à 10 MHz, soit un
temps chip de 100ns. La longueur de code est donc égale à N.Tc .
Les liens entre la longueur du code d’étalement, le coefficient c(n) et les paramètres
associés sont résumés dans le tableau suivant :
N
COEFFICIENT
C(N)
VALEUR DU PN-CODE
DEBIT
EN
(KBPS)
CODE
4 BITS
TEMPS
SYMBOLE
(µS)
7
15
31
63
127
255
511
1023
2047
000000000101
000000001001
000000010010
000000100001
000001000100
000010001110
000100001000
001100001001
010000000010
1110100
111101011001000
101011101100011111001101001…
111111010101100110110100100…
100100110100111101110000111…
101100011110100001111111100…
100010001100100011101010110…
111101011110110010011111110..
101010101011101110111001001…
1428
667,5
322,5
158,75
78,75
39,25
19,5
9,75
4,75
0000
0001
0010
0011
0100
0101
0110
0111
1000
0,70
1,5
3,1
6,3
12,7
25,5
51,1
102,3
204,7
Tableau IV. 4. Correspondance entre N, le débit et le mot de programmation sur 4 bits.
IV.3.3
Module de calcul de TEB
Le bruit étant créé, nous allons quantifier son influence à l’aide d’un module de taux
d’erreurs sur le bit (TEB). Pour cela, nous devons comparer la trame qui est envoyée à la
trame que nous obtenons en réception et compter le nombre d’erreurs que nous avons obtenu.
La solution d’implanter deux récepteurs de même nature, l’un pour un trame d’entrée bruitée,
l’autre une trame d’entrée non bruitée a été mis en œuvre. D’après l’équation (Eq.II.2) du
-148-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
chapitre II, le calcul du TEB se fait par la division du nombre d’erreurs obtenues par le
nombre de bits envoyés.
IV.3.4
Interface logicielle
Cette interface permet à l’utilisation de contrôler :
la séquence de la trame d’entrée (8 bits), répétée jusqu’à la fin de l’émission,
la longueur du code d’étalement sur 4 bits (de N=7 à N=2047),
la valeur du retard dans le canal (corrélation, non corrélation, demicorrélation et pic de corrélation),
le nombre d’échantillons,
un gestionnaire d’erreur permettant à la fin de l’émission le calcul du TEB.
Figure IV. 9. Capture d’écran de l’interface graphique de commande FPGA.
En aucun cas nous ne pouvons envoyer une configuration qui n’a pas été définie au
préalable auprès du FPGA. Cette interface communique avec le FPGA sur le port parallèle 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 l’interface sont chargées dans
le FPGA.
3) Etat de « Marche » : Le système Emetteur-Récepteur fonctionne et le calcul du
TEB est actif.
4) Etat de « Rapport » : L’interface reçoit la valeur du TEB.
Lorsque l’envoi des trames est terminé, selon le nombre d’échantillons choisi, un signal
de fin de fonctionnement « end_transmit » passe à l’état « 1 » et ce dernier commande le
-149-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
passage à l’état « envoie_du_teb », ainsi nous envoyons le nombre d’erreurs à l’interface
toujours sur les fronts de l’horloge du PC.
IV.4 Résultats de synthèse
Le nombre de branches de l’organe de synchronisation, ainsi que le nombre de registres
(fonctions de la longueur du code) à utiliser pour paramétrer les retards voulus dans le canal
sont extrêmement consommateurs de place dans le FPGA. Quatre exemples de synthèse ont
été effectués (Tableau IV. 5), pour des valeurs extrêmes et moyennes du nombre de branches
B de l’organe de synchronisation et de la longueur N du code d’étalement. La synthèse N°2,
utilisant un nombre égal (N=B=255) relativement élevé est irréalisable à partir de notre
matériel (taux d’occupation 332%). Nous avons retenu un compromis de configuration
(N=B=63), permettant d’utiliser un code de longueur N=63 et son nombre de branches de
synchronisation équivalent. A partir de cette configuration d’implantation, les résultats de
synthèse, en terme d’occupation de nombre de cellules, font état d’une répartition par fonction
détaillée sur la Figure IV. 10.
Occupation du FPGA
Canal Test
Synchronisation
Synthèse N°1
20%
N=2047
B=1
Synthèse N°2
332%
N=255
B=255
Synthèse N°3
5%
N=63
B=1
Synthèse N°4
76%
N=63
B=63
N=2047
N=255
N=63
N=63
(B=nombres de branches de
synchronisation)
Longueur de code
maximum
Tableau IV. 5: Résumé des différentes synthèses effectuées.
-150-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
7000
Registres
LUT
6000
Nombre de cellules utilisées
5000
4000
3000
2000
1000
0
Canal
emission
parametre
Registres
LUT
140
6000
Emission
100
80
60
40
Registres
LUT
5000
Nombres de cellules utilisées
120
Nombres de cellules utilisées
Recepteur
Récepteur
4000
3000
2000
1000
20
0
0
encodeur
Generateur trames
Gene_code_emission
Poursuite
multi_emission
Reception_ss_synchro
Synchronisation_globale
Figure IV. 10. Occupation en nombres de cellulles des principales fonctions de l’émetteur (a) et du
récepteur (b).
IV.5 Evaluation des performances mesurées
Cette dernière partie a pour objectif d’évaluer et mesurer les performances de notre
prototype complet incluant la totalité des fonctions développées tout au long de ce mémoire :
émetteur complet en bande de base, canal bruité, retard paramétrable, récepteur avec
synchronisation série à N branches et boucle à verrouillage de délai. Enfin, nous mesurons
l’évolution du taux d’erreur sur le bit, en fonction du rapport signal sur bruit dans le canal et
le comparerons à des résultats de mesures effectuées en environnement réel.
-151-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
IV.5.1
Test en milieu non bruité
IV.5.1.1 Emetteur-récepteur Simple Branche
IV.5.1.1.1
Mesures pour différents longueurs de codes
Pour trois longueurs de code différentes, nous relevons et comparerons les données
d’entrées avec les données en sortie du récepteur.
N=7
Ts7=700ns
N=15
Ts15=1500ns
N=31
Ts31=3100ns
Ts31
Ts15
Ts7
Figure IV. 11. Chronogrammes mesurés pour différentes longueurs de code N=7,N=15 et N= 31.
Ces trames sont identiques permettant d’affirmer que les fonctions propres à l’étalement
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,43µs.
IV.5.1.1.2
Mesures pour différents délais
Nous n’appliquons 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_étalée est directement lié à data_étalée_retardée qui est le signal d’entrée
du récepteur. Le chronogramme suivant a été obtenu pour une longueur de PN-Code N=7.
Figure IV. 12. Chronogramme système corrélé dans le cas sel =11.
La propagation du signal data_étalé provoque un décalage de 4ns en sortie du canal
data_étalée_retardée , une valeur négligeable car nous sommes sur le premier pic
d’autocorrélation (Cas 11 du module de retard), donc le système est parfaitement corrélé. Le
signal de sortie du récepteur « sortie » est décalé par rapport au signal de l’émetteur de 1,43
µs. Cette valeur est dûe à la propagation à l’intérieur du composant dans le cas N=7.
Pour ce test, nous nous plaçons 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-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
respectivement 15,31,63 et de 4 Tc pour N=7. Ce dernier cas est le cas que nous allons
présenter sur le chronogramme suivant :
Figure IV. 13. Chronogramme système non corrélé.
Nous constatons que le retard introduit entre le signal « data_etalée » et le signal
« data_etalée_retardée » est de 400ns ce qui nous positionne entre le deux pics de corrélation.
Nous constatons que le signal « sortie » est toujours égal à « 1 ». Le système est donc
incapable de décorréler le signal, conformément à nos attentes.
Nous avons par la suite focalisé nos mesures sur deux paramètres que sont le temps
d’accrochage (TA) correspondant au temps de synchronisation et la latence totale, écart entre
le signal d’entrée et la sortie (TL). Ces deux paramètres sont présentés sur la figure suivante :
Ecart TA
Ecart TL
Figure IV. 14. Représentation du temps d’accrochage(TA) et de la latence (TL).
Le tableau suivant résume les différentes mesures effectuées pour des longueurs de code
variables.
Longueur du PN-Code
aucun retard TA(temps
(Cas 11)
d’accrochage de la
synchronisation)
TL(latence globale)
décorrélé
TA
(Cas 01)
DemiTA
corrélation TL
(Cas 00)
N=7
1µs
N=15
1,8µs
N=31
8µs
1,34µs
Pas
d’accrochage
1,2µs
1,5µs
2,5µs
Pas
d’accrochage
2µs
5,5µs
6,04µs
Pas
d’accrochage
8,25µs
6,5µs
Tableau IV. 6. Résumé des différentes mesures pour des longueurs de PN-Code différents.
Les différentes mesures renseignées dans le Tableau IV. 6 montrent que pour un même
retard le temps d’accrochage augmente en fonction de la longueur du PN-Code.
IV.5.1.2 Emetteur-récepteur avec synchronisation N branches
La synchronisation série, développée dans le chapitre III (§III.3.1.1.4), est synthétisée et
implantée dans le FPGA associée à la boucle à verrouillage de délai. Le test comprend à
présent les fonctionnalités suivantes :
-
Emission d’une trame pour des longueurs de code N=7 à N=63.
Récepteur qui permet de décoder les codes d’étalement précédemment cités pour
l’émission.
Synchronisation qui détecte lorsque la corrélation est existante sur une des 63
branches de l’organe.
Recherche de la branche corrélée.
-153-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
-
Poursuite qui permet de maintenir la corrélation.
Le test présenté sur la Figure IV. 15 est effectué avec un retard nul dans le canal (Cas où
sel = 11). Nous avons visualisé les différents signaux évaluant la synchronisation en sortie des
différentes branches. Notre analyseur logique ne comprenant que 16 voies, nous avons
sélectionné les branches les plus susceptibles d’être validées en fonction des différents
retards.
TA
TL
Figure IV. 15. Chronogramme des signaux de synchronisation (retard canal seul).
Temps
Le test a été effectué pour une longueur de PN-Code de N=15. Les signaux synchro(n)
représentent l’état de la corrélation relative à la branche n. Ainsi, lorsque la 31ième branche est
corrélée, le signal synchro(31) passe à l’état 1. Le signal synchro quant à lui est à l’état
haut lorsqu’une synchronisation est détectée. Le chronogramme montre la corrélation
effective sur les branches 0 et 31. Ceci correspond aux résultats escomptés, puisque pour tous
les temps symboles la corrélation est détectée. Notons que la sortie est correcte et comporte
un écart TL avec l’entrée data_source.
{
Nous allons maintenant observer le mot k dont la valeur désigne la branche corrélée. 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 décorrélé du canal (cas 01), le signal de sortie vaut 1. Le
mot k_out [0 :6] devrait quant à lui détecter la 8ème branche. Ce n’est 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 d’accrochage et de la latence globale (TA
et TL) d’une synchronisation comportant N branches.
-154-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Nombres de branches (équivalent à la
longueur du PN-Code)
aucun retard ( TA(temps d’accrochage
Cas 11)
de la synchronisation)
TL(Latence totale)
Branches détectées
décorrélé TA
(Cas 01)
Branches détectées
Pic de
corrélation
(Cas 10)
TA
TL
Branches détectées
N=7
N=15
N=31
1,04µs
1,84µs
3µs
2,88µs
N° :0,8,15
Pas
d’accrochage
N° :7,14
5,28µs
N° : 0,16,31
Pas
d’accrochage
Oscillation
entre N°9 et
N°10.
2,48µs
6,88µs
N° : 0, 16, 31
11,68µs
N° :0,31
Pas
d’accrochage
N° :9
1,36µs
3,04µs
N° :0,8,15
3,5µs
12,72µs
N° : 0, 31
Tableau IV. 7. Mesures associées à une synchronisation comportant N branches.
Nous pouvons remarquer que le temps TL est doublé (dans le cas N=15) par rapport au
temps TL de l’implémentation d’une synchronisation simple branche. Comme nous l’avions
prévu, nous retrouvons un temps d’accrochage plus faible. En effet nous avons divisé d’un
facteur et temps d’accrochage 2,5 TA par rapport à une synchronisation simple branche.
IV.5.2
Mesures en milieu bruité
Nous testons maintenant notre système émetteur-récepteur en milieu bruité. Pour cela,
nous utilisons les modules de génération de bruit à partir de la carte analogique et le module
de calcul de taux d’erreur par bit.
Un niveau de bruit est appliqué sur notre signal en sortie de l’émetteur dont nous pouvons
visualiser les effets sur la figure suivante dans le cas d’un niveau égal à 50mV.
Signal bruité
Signal non bruité
Figure IV. 17. Visualisation des effets d’un niveau de bruit de 50mV en sortie du canal.
En appliquant un niveau de bruit (1V), nous remarquons (Figure IV. 18) l’apparition de
bits erronés.
-155-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Bits erronés
Figure IV. 18. Chronogramme du système avec une tension de bruit de 1V.
Le taux d’erreur sur le bit correspondant, fourni par le module interface est de 2.10-1. Le
rapport signal sur bruit associé s’écrit :
⎛5⎞
⎛ Vsignal ⎞
SNR = 10 × log⎜
⎟ = 10 × log⎜ ⎟ = 7 dB
⎝ Vbruit ⎠
⎝1⎠
Les mesures pour différentes tensions de bruit permettant de reproduire l’évolution du
taux d’erreur sur le bit, sont présentées sur la Figure IV. 19.
0
2
4
6
8
10
12
14
16
18
20
22
1,00E+00
Taux d'erreur sur le bit
1,00E-01
1,00E-02
1,00E-03
1,00E-04
1,00E-05
Rapport Signal sur bruit (dB)
Figure IV. 19. Mesure de TEB du récepteur simple implanté sur le FPGA.
IV.6 Bilan
Au cours de ce chapitre nous avons intégré dans un circuit programmable le prototype
complet présenté dans le chapitre III. Pour cela une première étude sur les outils existants a
été menée. Le composant choisi est un FPGA « APEX20KE » d’ALTERA pour des raisons
de disponibilité et de flexibilité. A l’aide du logiciel QUARTUS II fourni par le constructeur,
nous avons implanté les fichiers synthétisables du modèle VHDL-AMS.
-156-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
Pour la procédure de test, nous avons développé deux organes supplémentaires. Le
premier (canal paramétrable) nous a permis de tester les différents états du système, et le
second (module de calcul d’un taux d’erreur sur le bit) de caractériser notre système en milieu
bruité. Pour pouvoir communiquer avec le composant programmable nous avons enfin
développé une interface en Visual Basic.
L’étape de synthèse nous a montré rapidement que la capacité d’intégration du
composant était insuffisante pour traiter toutes les branches de notre modèle complet
(synchronisation avec 2047 branches maximum) et les modules complémentaires. Ces
résultats nous ont conduit à limiter les longueurs de PN-Codes à N = 63 et de supprimer le
récepteur qui servait de comparateur dans le module de calcul du taux d’erreur de bit. Avec
ces limitations, nous utilisons 75% de la capacité d’intégration du FPGA. C’est pourquoi les
horloges pour l’étude de notre modèle ont été divisées par quatre. Ainsi, le temps chip (TC) est
désormais fixé à 100ns.
Malgré ces limitations nous avons pu expérimenter les fonctions principales de notre
système. Nous avons axé nos tests sur la généricité du système implanté (tests pour
différentes longueurs de PN-Code) et sur l’organe de ,bre de branches augmentait la latence
globale entre l’entrée et la sortie mais en contre partie la détection de la synchronisation est
plus rapide.
-157-
CHAPITRE IV : Etude et développement de la maquette Emetteur-Récepteur
-158-
CONCLUSION ET PERSPECTIVES
CONCLUSION ET PERSPECTIVES
-159-
CONCLUSION ET PERSPECTIVES
-160-
CONCLUSION ET PERSPECTIVES
Le travail présenté dans ce mémoire constitue une contribution au prototypage virtuel basé
sur la norme VHDL-AMS. Le travail développé nous permet de disposer d’un prototype
virtuel mixte complet décrit dans un langage de haut niveau pour un émetteur/récepteur à
étalement de spectre. Afin d’être en adéquation avec les nouvelles méthodologies de
conception, ce prototype se positionne sur une approche de réutilisation de blocs matériels
dans une application de télécommunication sans fil.
Un état de l’art sur la conception système, présenté dans le premier chapitre, nous a
permis de constater la complexification et la miniaturisation des composants électroniques.
Nous avons mis en avant les méthodologies de conception actuelles permettant de réduire les
cycles de conception et les coûts de développement en insistant tout particulièrement sur le
prototypage virtuel. Différentes cibles de conception ont alors été présentées et comparées. Les
outils de conception étant devenus une nécessité dans ce type de développement, nous avons
conclu ce chapitre par le choix du langage multidisciplinaire VHDL-AMS.
Dans le deuxième chapitre, nous avons présenté le système de communication hertzien
émetteur/récepteur dans la bande libre ISM. Le système doit être multi-capteurs et multiutilisateurs en milieu bruité pour un environnement clos. Il nécessite de plus un haut niveau de
sécurité de transmission. A partir de ce cahier des charges, nous avons exposé les éléments de
base d’une chaîne de communication numérique et avons proposé un schéma fonctionnel du
modèle émetteur/récepteur. Nous avons comparé ensuite différentes architectures de
synchronisation et de poursuite pour établir au terme de ce chapitre les différents organes de
notre système communicant.
Après avoir défini le langage VHDL-AMS, nous avons traité dans la troisième partie, la
description des étages numériques et analogiques du système. Nous avons étudié et simulé
différentes topologies d’architectures. Nous avons opté pour une synchronisation de type
SERIE avec une boucle à verrouillage de délai cohérente dans laquelle nous avons inclus la
possibilité pour l’utilisateur de choisir la longueur de la séquence pseudo-aléatoire, le temps de
propagation dans le canal et le rapport signal sur bruit. Notons que ce rapport signal sur bruit
est défini directement par l’utilisateur, le niveau de bruit étant calculé de manière implicite par
le langage VHDL-AMS. En vue d’améliorer les performances du récepteur à étalement de
spectre, nous avons développé une synchronisation N branches et un organe de sélection. Les
résultats de simulations semblent en parfait accord avec les résultats théoriques attendus. Au
terme de ce chapitre, nous avons établi les fonctions numériques devant être implantées dans
un FPGA.
La dernière partie développe donc la réalisation d’un prototype matériel de
l’émetteur/récepteur en bande de base. Nous présentons tout d’abord notre platine de test et
les modules spécifiques associés pour mener à bien nos mesures. Les performances du circuit
en terme de capacité d’intégration sont évaluées. Nous avons montré que la fonction
synchronisation SERIE, retenue au second chapitre, occupe à elle seule la majorité du circuit
programmable, soit environ 5500 cellules élémentaires. La capacité relativement réduite de
notre FPGA (8000 cellules) limite le nombre de branches de cette synchronisation à 63. Les
tests effectués, valident les fonctions de notre prototype de communication, en milieu idéal et
bruité. Ce prototype nous a permis de tester différentes fonctionnalités du système dans un
environnement bruité : fonction d’autocorrélation, temps d’accrochage, latence et rapport
signal sur bruit. En milieu faiblement bruité, nous avons pu mesuré un taux d’erreur sur le bit
de l’ordre de 10-5, valeur qui évolue défavorablement lorsque le bruit augmente.
-161-
CONCLUSION ET PERSPECTIVES
L’étude en bande de base du prototype matériel, a permis de valider la globalité des
organes numériques de notre émetteur/récepteur. Les organes doivent à présent être couplés
aux étages radiofréquences. Le système complet pourra alors être configuré avec plusieurs
émetteurs, afin d’expérimenter le comportement de la communication multi-capteurs. Nous
porterons un intérêt particulier à la mesure de débit pour les fréquences d’horloges élevées et
à la stabilité de la boucle à verrouillage de délai en fonction du délai dans le canal.
Les marchés et les technologies sont toujours appelés à évoluer. C’est pourquoi à terme
nous prévoyons d’intégrer les étages radiofréquences et la partie traitement du signal en bande
de base sur une seule puce (System On Chip : SoC). Par ailleurs, l’essor et l’évolution actuels
des circuits FPGA pourront aussi donner lieu à une étude plus fine de notre système
émetteur/récepteur avec l’utilisation de composants présentant une capacité d’intégration bien
supérieure (par exemple « STRATIX II », « VIRTEX IV »). Ces derniers composants
semblent d’autant plus intéressants qu’ils intégrent une propriété intellectuelle (IP) permettant
de générer un bruit blanc additif gaussien (AWGN) [XILI02]. Ce fichier pourrait être en
particulier utilisé pour mesurer les performances du taux d’erreur par bit de notre système de
communication.
Enfin, les langages associés au VHDL-AMS, tels que le C/C++, permettront à notre
prototype virtuel d’inclure un protocole de communication. Pour cela, le système devra être
couplé à des simulateurs réseaux, tels que les logiciels Network Simulator, Opnet, Qualnet,
permettant ainsi de pouvoir simuler la globalité des trois couches basses du modèle OSI d’un
système communicant (Figure 0.2).
Réseau
Liaison de données
Physique
Figure 0. 2 .Architecture en couches du modèle OSI.
-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 d’amérique 2003.
[BAGH02] A.BAGHADADI « Exploration et conception systèmatique d’architectures
multiprocesseurs monopuces dédiées à des applications spécifiques » Thèse de doctorat,
Institut national polytechnique de Grenoble, Mai 2002.
[BAUD02] G.BAUDOIN (Collectif d’auteurs) « Radiocommunications numériques /1.
Principes et modélisation et simulation » Collection DUNOD 2002. ISBN : 2100055801
[BELL02] M. BELLANGER « Traitement numérique du signal Théorie 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, N°5,pp71-79, Sep. 1999.
[BOUR00] S.Bourdel « Modélisation et Simulations fonctionnelles d’un émetteur et d’un
récepteur radiofréquence à é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 intéressante »
http:/ /www.eetimes.fr. 9 Août 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. Stüber, « Effects of multiple-access interference on the
noncoherent delay lock loop. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 48,
N°12, 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.2µm CMOS. », IEEE
JOURNAL OF SOLID-STATE CIRCUIT, VOL. 29, N° 12, Dec. 1994.
[CHRIWW] « Qu’est-ce qu’un réseau 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, N°7, 0733-8716/93, Sept. 1993.
[CLOU01] CLOUTE.F« Etude de la conception des systèmes embarqués sur silicium : une
approche de codesign matériel/logiciel », Thèse 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 »Thèse de doctorat,
Université de Montpellier II, Oct. 2002.
[ELHO05] S.ELHOMSI : « Etude et proposition des méthodes et d’outils pour un système
de communication de capteurs/actionneurs sans fil repartis basé sur la technologie
Bluetooth ».Thèse 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
ICNS’05, 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 ingénieurs, N°143, 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, N°5, 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, N°11, 0090-6778/93, Nov. 93.
[GUIL03] C.GUILLEMINOT, L.ANDRIEUX « COMMUNICATIONS NUMERIQUES CDMA :
Simulation d’une boucle à verrouillage numérique » CNRIUT’03, 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 » Eurosim’04, Marne
la Vallée, France, Sept. 2004.
-165-
REFERENCES
[GUIL04J]
C.GUILLEMINOT,
L.ANDRIEUX
« Simulation
de
systèmes
de
synchronisation/poursuite pour les télécommunications en étalement de spectre »
JNRDM’04, Journées Nationales du Réseau Doctoral de Microélectronique, 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
BMAS’05, SanJose,Californie,USA, 22-23 Sept. 2005.
[GUIL05E] C.GUILLEMINOT, L.ANDRIEUX, JJ.MERCIER « Virtual Prototype design using
VHDL-AMS
for
transceiver
model »
IEEE
EUROCON’05,
BELGRADE,
Serbie&Montenegro, 21-24 Nov. 2005.
[GUIL05G] C.GUILLEMINOT « Contribution au prototypage virtuel d’un système de
télécommunication à étalement de spectre en VHDL-AMS » GEET ’05, Journées de l’école
doctorale Génie Electrique, Electronique, Télécommunications, Toulouse, France, Mai
2005.
[HAMO05] HAMON Juan-Carlos « Méthodes et outils de la conception amont pour les
systèmes et les microsystèmes » Thèse de doctorat de l’institut National Polytechnique de
Toulouse , Fév. 2005.
[HASH93] H.Hashemi « The Indoor Radio propagation Channel », Proceedings of IEEE, pp
943-968, Vol.81, N°7, 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, n°1,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
(ISQED’2002)
[KARR04] M.KARRAY,P.DESGREYS,JJ CHARLOT « VHDL-AMS modelling of VCSEL
including Noise » IEEE BMAS’03, 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 numérique du signal. Théorie et
applications» Ellipses collection TECHNOSUP Septembre 2003. ISBN : 2-7298-1728-X
[LECU88] P.L’ECUYER « Communications of ACM »vol.31 , N°6, 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,N°9, 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, N°10, Oct. 1998.
[LU93] Fang LU and al (1993)“A 700-MHz 24-b Pipelined Accumulator in 1,2µm CMOS for
application as a numerically Controlled Oscillator” , IEEE Journal of Solid-State Circuits, vol.
28,n°8, 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 réalisation d’un circuit numérique spécifique à
étalement de spectre pour un système 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« Méthodologie et développement pour
les Intellectuals properties pour l’applications telecoms ». Rapport d’avancement 1.1
Niveau comportemental : outils HLS et IPs.
[MLYN01] D. MYLNEK « Design of VLSI Systems »Ecole polytechnique Fédérale 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 N°ERL-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 chaîne 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 sécurité des réseaux WiFi » Seminaire L2I,
Blagnac
[ROBE02]
M.Robert
« Circuits
et
systèmes
intégrés
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
vérfication des systèmes monopuces » Thèse de doctorat de l’université 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. Stüber, « Effects of multipath fading on delay-locked loops for
spread spectrum systems. », IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 42,
N°2/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, N°3, 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 « Modélisation multidisciplinaire VHDL-AMS de systèmes
complexes : vers le prototypage virtuel », Thèse de doctorat de l’université L.Pasteur de
Strasbourg , Décembre 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, N°5, May 1997.
[Syno00] Synopsys, « Hardware/Software Co-Verification with Synopsys Eaglei Tools »,
Synposys Inc, Etats-Unis d’Amérique 2000.
[SYNO03] Synopsys, « SaberHDL : language-Independant Mixed –Signal Multi-Technology
Simulator », Synposys Inc, Etats-Unis d’Amérique 2003.
[TEXWW]Texas Instrument http://www.ti.com
[VACH02] A.VACHOUX « Modélisation de systèmes integrés Analogiques et mixtes;
Intorduction à VHDL-AMS » http://lsmwww.epfl.ch
[VALD98]C.A VALDERRAMA « Prototype virtuel pour la génération des architectures
mixtes logicielles/matérielles » Thèse de doctorat de l’institut 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 (VTC’2006), May 2006.
[VERD01]S.VERDU, « MULTIUSER DETECTION »Cambridge, ISBN 0521593735
[VERM02]F.VERMEULEN « Reuse of System-Level Design components in datadominated Digital systems », Thèse de doctorat de l’université catholique de Leuven
(Belgique), Décembre 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, N°8, 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, N°8, 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, N°6, 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, N°6, 0018-9545/00, Nov. 2000.
-170-
REFERENCES
ANNEXES
-170-
ANNEXES
ANNEXES 1 : Fichier Test Bench
-**************************************************************************************
-- Fichier de test de l'emetteur-recepteur avec le canal AWGN
--16/03/2005
--Fichier regroupant les fonctions de l'émetteur, du recepteur et les composants externes
-- emission, generateur de trame en entree de l'emetteur, l'horloge,
-- le controle de l'emetteur, et le recepteur(CAN) avec le canal de transmission radio
--***************************************************************************************
library IEEE,DISCIPLINES;
use IEEE.STD_LOGIC_1164.all;
use IEEE.numeric_std.all;
use DISCIPLINES.electromagnetic_system.all;
use work.parameter.all;
entity test_reception_avec_radio is
-- pas de ports externes
end test_reception_avec_radio;
architecture arch_test_reception_avec_radio of test_reception_avec_radio is
--***************************************************************************************
--Définition des signaux de jonctions
--***************************************************************************************
signal clk_40e : std_logic;
signal rst : std_logic;
signal data_source : std_logic;
signal cn_code : std_logic_vector(11 downto 0);
signal data_etalee : std_logic;
signal
clock : std_logic; --Horloge de 40Mhz de l'entrée du recepteur
terminal ain : electrical;
--signal reset : std_logic;
signal
clock_640 : std_logic;
signal
eoc : std_logic;
signal
sortie_clk160nco : std_logic;
--***************************************************************************************
--Définition des composants
--***************************************************************************************
component emission 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 component;
component Gene_trame1 port(
reset: out std_logic;
datasource : out std_logic
);
end component;
component horloge_40 port(
clock : out std_logic
);
end component;
component controle port(
cn_code: out std_logic_vector(11 downto 0)
-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'entrée
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
);
: in std_logic;
: electrical;
: electrical
end component;
--***************************************************************************************
--Définition 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
-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
ANNEXES 2. Fonctions numériques de l’émetteur
-175-
ANNEXES
-176-
ANNEXES
EMETTEUR
(Emission)
Générateur de
PN Code
Encodeur
Différentielle
(Gene_code_e)
Paramètres
Longueur du PN code
Fréquence de Génération
(Codeur)
-177-
Fonction
« Multiplication »
(Mult_e)
ANNEXES
Figure A.1 Organigramme de la fonction Emetteur
--**************************************************************************************
-- 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 générateur 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
--***************************************************************************************
--Définition 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;
--***************************************************************************************
--Définition 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;
--***************************************************************************************
--Définition 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);
--Générateur 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 récepteur
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
--Génération de PN Code à partir des coefficients CN_CODE
--Paramètres: (à définir)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'extérieur du process
--20/05/2005 Test de la version complète
--*****************************************************************************
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 réinjectées 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 réaffectation 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
--génération 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;
--réaffectation 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 données issues des capteurs
--paramètre: 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 réagir 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 donnée encodée avec le PN_code
--20/05/2005 Test de la version complète
--*****************************************************************************
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
ANNEXES 3 . Fonctions transmission
--****************************************************************
-- 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;
--définitions des coefficients du polynôme du dénominateur
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;
--définition du numérateur et du dénominateur 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 filtrée
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));
--generation du bruit blanc gaussien
wait for 1 ns;
level <= (ve_db - SNR);
out1 <= 10.0**(level/20.0)*noise_s;
--calcul de niveau de bruit a agouter dans le canal en dB
--regle out1 = noise_s au niveau de level (en dB)
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
--****************************************************************
-- 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
ANNEXE.4. Fonctions du récepteur
-189-
Récepteur
ANNEXES
Hiérarchie Récepteur
(Recepteur_CAN)
Synchronisation
(Synchronisation)
Poursuite
Diviseur
(Poursuite)
(Diviseur)
Convertisseur
Analogique/Numérique (CAN2)
Test donnée
(Test_donnee)
Décodage
Différentielle
Récepteur_sans_synchronisation
(Recepteur_ss_synchro)
Désétalement
(Desetalement)
(Decodeur)
Filtre de boucle
(filtre_fifobis)
Cte de temps
Coefficients RII
Gain du filtre de boucle
(multiplieur_r,integ_dump)
(nco)
Param:
Param:
Désétalement
synchronisation
NCO
Valeur
absolu
(Absolu)
Pas NCO
Frequence NCO
Gain NCO
Générateur PN-Code
Récepteur N branches
(gene_code_r_N_synchro)
Discriminateur
(discriminateur)
Param:
Gain du discriminateur
Param:
Intégrateur/bloqueur
(Integ_dump)
Param:
Longueur du PN code
Coeff m (en fonction N)
Vecteur initialisation
Coeff m (en fonction N)
Sélection PN_CODE Filtre Correlation Test Seuil pour
1 branche
(Dephaseur_PN_code) (filtre_fifobis)
(Test_seuil)
Param:
Param: Nombres de branches
Fonction
« multiplication »
(Multiplieur_r)
Coefficients RII
Param:
Valeur du seuil
-190-
Désétalement
poursuite
(multiplieur_r,integ_dump,
absolu)
Soustracteur
ANNEXES
--************************************************************
-- Organe RECEPTEUR DE TRANSCEIVER_synthétisable
--31/01/2005
-- Fichier comprenant CAN avec temps de conversion, Récepteur_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'entrée
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;
--**********************************************************
-- Définition 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); --Données en sortie du convertisseur
signal data_convertie: out signed(3 downto 0)); --Données étalées 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 donnée
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 donnée
synchro_clk160nco :
out std_logic
);
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;
-192-
ANNEXES
--***************************************************************************************
--définition 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/Numérique
--18 /01/2005
--Les entrées et sorties
-- Entrée START qui définie le début de conversion
-- Entrée CLK qui eshorloge du système
-- Entrée Analogique à convertir
-- Sortie EOC qui définit la fin de conversion
-- Sortie DOUT qui définit le signal de sortie
-- Paramètre du CAN: Plage maximun de tension Vmax, temps de conversion delay
-- Lorsque nous avons un front montant sur EOC les données devront être récuppérer 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
when convert =>
-- Begin successive approximation conversion
if Vtmp<0.0 then
dtmp(3):='1';
-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 critère 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 complète
--******************************************************************************
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 :
in std_logic;
in std_logic;
in signed (3 downto 0);
-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
--***************************************************************************************
--Définition 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);
--***************************************************************************************
--Définition des composants
--***************************************************************************************
------------------------------------------------------------------Définition 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;
------------------------------------------------------------------Définition de l'intégrateur/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
: out signed (M downto 0)
);
end component;
------------------------------------------------------------------Définition de la valeur absolu
----------------------------------------------------------------component absolu is
-197-
ANNEXES
port (
rst
: in std_logic;
data_clk160nco
: in signed(M downto 0);
data_absolu_clk160nco: out signed(M downto 0)
);
end component;
------------------------------------------------------------------Définition du soustracteur
----------------------------------------------------------------component soustracteur is
port (
data_absolu_late_clk160nco
data_absolu_early_clk160nco
: in signed(M downto 0);
: in signed(M downto 0);
discri: out signed(M downto 0)
);
end component;
--***************************************************************************************
--Définition 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 =>
data_absolu_early_clk160nco ,
discri => discri,
data_absolu_late_clk160nco => data_absolu_late_clk160nco
);
END;
--**************************************************************************
-- Fonction Test de donnée
--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 complète
--**************************************************************************
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 début 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
-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 décodage différentielle 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 complète
--*****************************************************************************
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 début 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 système Emetteur /Récepteur
);
end decodeur;
architecture arch of decodeur is
signal data_n : std_logic;--15/03permet de faire le décodage différentielle (donnée -1)
signal data_n_1 : std_logic;
signal detect_front_clk160nco : std_logic;--17/03--signal détectant 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 réception
--03/11/2004
--31/03/2005--Mise à jour dans nouveau projet
--20/05/2005 Test de la version complète
--*************************************************
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') --Définition 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
-- Intégrateur /Bloqueur avec comme fréquence 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 résultat final (donc à chaque dump)
signal detect_front_clk160nco : std_logic;--permet de détecter 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;--Bibliothèque 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 début 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 mémorise l'entrée . Ceci permet facilement de changer l'équation aux différences
-- 2 process fifo une pour l'entrée (X(n)) et l'autre pour la sortie (Y(n))
-- Eq différence du filtre de corrélation
-- Y(n)=6 X(n)+4 X(n-1)- Y(n-1) .Les cstes 4 et 6 sont definit pour 1µs
--20/05/2005 Test de la version complète
---***************************************************************************************
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
--déclaration 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
--Définition 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;
--Définition 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;
--Définition de l'équation aux différences
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é numériquement permet d'avoir en fonction des données
-- 02/11/2004 ---Mise à jour des fichiers
--01/04/2005 --Mise à jour des fichiers
-- Sortie: Horloge dont la période varie en fonction du mot d'entrée
--20/05/2005 Test de la version complète
-- ************************************************************************************
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'incrémentation du registre de la valeur de l'entrée à 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 récepteur 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 réinjectées 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 réaffectation 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;
--génération 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
--réaffectation 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 délai)
DS-SS : Direct Sequence Spread Spectrum
FPGA : Field Programmable Gate Array
Gp : Gain en traitement
HDL : Hardware Description Language
IP : Intellectual Property ( propriété intellectuelle)
ISM : Industrial Scientific & Medical
ITRS : International Technology Roadmap for Semiconductors
LUT : Look Up Table
M : Nombre d’échantillons par symbole
N : Longueur de PN-Code
NCO : Numerical Controlled Oscillator (Oscillateur Numérique Contrôlé en Tension)
PN-Code : Pseudo-Noise Code (Code pseudo-aléatoire)
RASE : Rapid Acquistion by Sequential Estimation
RII : Réponse Impulsionnelle Infinie
RTL : Register transfer language
SNR : Signal Noise Ratio
SOC : System On Chip
TEB : Taux d’erreur sur le Bit
TDL : Tau Dither Loop
VHDL : VHSIC Hardware Description Language
VHDL-AMS : VHDL Analog and Mixed Signal
-212-
RESUME
« Etude et intégration numérique d’un système multicapteurs AMRC de
télécommunication basé sur un prototype virtuel utilisant le langage de haut
niveau VHDL-AMS »
Résumé :
L’industrie des composants et des modules électroniques est orientée vers des systèmes de
plus en plus complexes et intégrés. Aujourd’hui, la conception système tend vers la
conception multidisciplinaire et doit faire cohabiter sur une même puce des fonctions mixtes
spécifiques analogiques/numériques, des microprocesseurs et également des interfaces
logicielles. Le récent standard VHDL-AMS (Very High Description Language – Advanced
and Mixed System) semble répondre à cette problématique de conception, en ajoutant à la
modélisation des signaux discrets la gestion des signaux à temps continus. Les travaux de
thèse présentés dans ce mémoire appliquent la notion de prototypage virtuel à un système
multicapteurs et multiutilisateurs de communication hertzienne émetteur/récepteur dans la
bande libre ISM. La première partie présente un état de l’art de la conception système ainsi
que les outils logiciels dédiés. Par suite, tous les étages numériques et analogiques sont
développés sous le standard VHDL-AMS. Notre étude se focalise alors sur le choix de la
topologie de l’organe de synchronisation et de poursuite, fonctions clés des communications à
étalement de spectre. Afin de compléter les bibliothèques dédiées aux télécommunications en
langage VHDL-AMS, un modèle de canal AWGN est proposé, intégrant un générateur de
bruit (méthode mathématique de Box-Muller) et un module de retard paramétrable. Enfin, un
prototype de tests est développé, basé sur une implantation des fonctions numériques dans un
circuit FPGA, nous permettant d’évaluer les performances d’un tel système en terme de débit,
de taux d’erreurs sur le bit et d’occupation matérielle.
Mots clés : Langage VHDL-AMS, prototypage virtuel, étalement de spectre par séquence
directe, synchronisation série, boucle à verrouillage de délai, 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-

Documents pareils