Projet Fin D'Étude Istmt-Cnstn
Projet Fin D'Étude Istmt-Cnstn
Projet Fin D'Étude Istmt-Cnstn
Mémoire
De
Projet de fin d’études
Pour l’obtention du :
DIPLOME DE MASTER PROFESSIONNEL EN SYSTEMES
ELECTRONIQUES EMBARQUES ET EQUIPEMENTS
MEDICAUX
Sujet :
Elaboré par :
Hammraoui Imen
Encadré Par :
Remerciements
Je remercie tout d’abord les membres du jury qui me font honneur en jugeant ce
travail.
Je tiens à exprimer mes plus sincères remerciements à mes tuteurs Monsieur Nidhal
Kahlaoui et Monsieur Mohamed Ali Nasir. Leurs disponibilités ; leurs conseils éclairés et
leurs soutiens m’ont été d’une aide inestimable et ont largement contribué à ma formation. Je
n’oublierais certainement jamais cette extraordinaire collaboration…
Et n’oublie pas la direction de mon ISTMT pour la bonne formation qu’on a accueillie.
Enfin, je remercie sincèrement tous les membres de l’équipe, pour leur chaleureux
accueil et pour les bons moments passés ensemble et la bonne ambiance au sein de l’UEIN.
Hammraoui Imen
Dédicace
A tous mes amis : Avec eux j’ai partagé des moments inoubliables De bonheur
et de chagrin qui resteront toujours gravés dans ma mémoire.
Hammraoui Imen
a-présentation…………………………………………………………………...15
B-Convertisseur DAC…………………………………………………………….16
C-Circuit FPGA……………………………………………………………………16
a-présentation…………………………………………………………………...16
b- Architecture………………………………………………………………….16
A-Unité de conception…………………………………………………………….21
IV. Conclusion………………………………………………………………………..24
1-Compteur simple………………………………………………………………..27
2-Afficheur LCD………………………………………………………………….28
a-Caractéristique de LCD………………………………………………………28
b-Programme …………………………………………………………………..28
b-Programme…………………………………………………………………...30
4-Affichage temps………………………………………………………………...31
a-Principe ………………………………………………………………………31
b-Programme …………………………………………………………………...31
6-Machine d’état…………………………………………………………………..34
a-Principe……………………………………………………………………….34
c-Programme……………………………………………………………………35
7-Ajout de la mémoire…………………………………………………………….36
III.Conclusion………………………………………………………………………...38
Conclusion général
Bibliographique
Référence bibliographiques
Ouvrages
• ESIEE-Olivier Français(les convertisseurs N/A)
• Electronique B1 Sylvain LARRIBE CNAM 10 Mai 2005
• Cours FPGA
Introduction générale
I. Présentation du centre National des Sciences et Technologies
Nucléaires :
Mon projet de fin d’étude a été effectué au sein du Centre National des Science et
Technologies Nucléaires(CNSTN) qui est un établissement public, dot personnalité
civil et de l’autonomie financière créé par la loi n°93-115 de novembre1993 Il a
pour mission de réaliser et développer les études nucléaires, et par conséquent les
utilisés dans les secteurs économiques et sociaux, et notamment dans les domaines
de l’agriculture, de l’industrie, de l’énergie, de l’environnement et de la médecine.
Ce centre est constitué par plusieurs unités citant à titre d’exemple l’unité
d’Hydrologie Isotopique, l’unité Radio pharmaceutiques, l’unité de Radioprotection
et l’unité d’électronique et instrumentation Nucléaire(UEIN) au sein de laquelle j’ai
effectué mon projet. L’unité UEIN a plusieurs fonctionnements :
Maintenance des Equipements Electroniques, et Nucléaires.
Assistance Technique auprès des équipes de recherche et d'exploitation.
Choix et sélection des équipements à approvisionner.
Installation et suivi des appareils.
Etudes et développements d'équipements pour le CNSTN.
Approvisionnements en composants et en équipements.
Réception des appareils, installation, essai et contrôle technique.
Parmi les appareils on a trouvé MCA c’est un analyseur multicanaux qui prend
chaque valeur numérique et la met dans une case mémoire on peut le visualiser sous
forme d’un histogramme
Ainsi mon rapport est rédigé en trois chapitres. Le premier chapitre décrit une
généralité sur la radioactivité et les différents types des rayonnements ainsi que la
détection. Le deuxième : La carte FPGA et le langage VHDL, le troisième : les
différents parties du programme ainsi que la réalisation pratique.
Chapitre 1 :
La Radioactivité
Et
La détection
I. Introduction :
Dans ce chapitre on va présenter les notions de base de la radioactivité ainsi que
la chaine d’acquisition dans le système de détection des rayonnements radioactifs.
L’atome (Figure 1) est constitué d’un noyau autour duquel gravitent des électrons.
Le noyau ou nucléide étant lui-même formé par un assemblage nucléons (neutrons
et Protons).
a) Rayonnement alpha
Elle intervient lorsque les noyaux sont trop lourds et contiennent trop de nucléons.
Le noyau éjecte alors une particule α constitué d’un atome d’hélium comprenant
2 protons et 2 neutrons.
b) Rayonnement Béta
Le rayonnement Béta est le résultat de mouvement d’une particule, positron(β+), ou
électron (β-) animée d’une grande vitesse. L’électron ou le positron étant des particules
légères, le rayonnement β est beaucoup plus pénétrant. Comme les particules sont
chargées, elles interagissent facilement avec la matière. Pour arrêter ce rayonnement, il
faut une feuille métallique d’épaisseur de l’ordre de quelques cm.
III. La détection :
Alimentation
Analyseur
Multicanaux
PC : Logiciel
De spectromètr
Figure 6: Chaîne de spectrométrie
III-1 Le détecteur :
Le détecteur est le premier élément de la chaîne d’acquisition qu’on utilise dans le
domaine de spectrométrie nucléaire. C’est un appareil permettant de localiser des
objets métalliques en exploitant le phénomène physique de l'induction magnétique. Il
assure la transformation des Rayonnements issus de la source en un signal électrique.
Parmi les détecteurs qu’on utilise dans le domaine de spectrométrie nucléaire nous citons 3
types de détecteurs :
· Le détecteur à gaz
· Le détecteur à semi-conducteur.
· Le détecteur à scintillation.
On utilise le détecteur à scintillation qui compose de deux parties :
Scintillateur : qui a pour rôle de convertir le rayonnement incident en photon
lumineux
Photomultiplicateur : Son rôle réside à la conversion du signal lumineux issu de
scintillation en un signal électrique exploitable
Les tensions électriques en nombres de classe qui sont classés dans les canaux de
mémoire et finalement ces contenus de l’ensemble des canaux c'est-à-dire la représentation
du spectre sur l’écran. Cette visualisation s’effectue grâce à un système incorporé ou bien
en liaison avec un micro-ordinateur.
Le nombre de canaux mémoire va couramment de 256 à 65536 ; le choix de ce nombre
doit résulter de compromis entre la précision souhaitée dans le spectre et le temps
d’acquisition nécessaire.
Les analyseurs multicanaux peuvent aussi fonctionner en multi-échelle ; ils enregistrent
l’événement dans les canaux mémoires dont la largeur de chacun correspond à un
intervalle de temps donnés.
Ce signal numérique est ensuite stocké dans une mémoire, chacune des cases
mémoire correspond à un canal de l’analyseur. Le contenu de l’emplacement mémoire est
stocké dans le registre de données qui va incrémenter de 1 chaque nouvelle impulsion.
On obtient finalement un spectre (histogramme) représentant le contenu de chaque canal
en fonction du numéro du canal (amplitude).
La carte analyseur multicanaux est composée par :
Registre de
Données
Mémoire
Entrées /Sorties
Registre
D’adresses
ADC
IV. Conclusion :
Ce bloc Analyseur multicanaux on va le remplacer par une carte FPGA et en
utilisant pour la programmation le langage VHDL.
Chapitre 2
La carte FPGA
Et
Le langage VHD
I. Introduction :
A. Afficheur LCD :
a. Présentation :
Angle de vision : (horizontal et vertical) : Indique jusqu'à quel angle peut-on observer
l'image avec un contraste supérieur à 10. [On est à 178 degré]
B. Convertisseur DAC :
CLK SPI_MOSI
SPI_MISO SPI_SCK
DAC_A DAC_CS
DAC_B DAC_CLR
DAC_C AMP_CS
DAC_D AD_CONV
TickAnalogIO
Adc_A
Adc_B
C. Circuit FPGA :
a. présentation :
Les circuits FPGA sont constitués d'une matrice de blocs logiques programmables
entourés de blocs d'entrée sortie programmable. L'ensemble est relié par un réseau
d'interconnexions programmable.
Les FPGA sont bien distincts des autres familles de circuits programmables tout en offrant
le plus haut niveau d'intégration logique. La plupart des grands FPGA modernes sont basés
sur des cellules SRAM.
b. Architecture :
Le FPGA rassemble à un bloc logique est de manière générale constitué d'une table
de correspondance (LUT ou Look Up Table) et d'une bascule.
La LUT sert à implémenter des équations logiques ayant généralement 4 à 6 entrées et une
sortie. Elle peut toutefois être considérée comme une petite mémoire, un multiplexeur ou
un registre à décalage.
L'utilisateur peut programmer la fonction réalisée par chaque cellule (appelée CLB
par Xilinx: Configurable Logic Block) On programme aussi les interconnexions entre
les cellules Ainsi que les entrées et sorties du circuit. Pour cela, ils disposent d'une RAM
interne dans laquelle sera écrit le fichier de configuration.
A- Unité de conception :
Une unité de conception est une partie de programme qui peut être compilée
séparément. Cet aspect modulaire est la base de la structuration de la description. Le
support du programme est un fichier texte qui peut contenir une ou plusieurs unités.
Un code vhdl est constitué par les quatre éléments principaux suivant :
PACKAGEBODY
Optionnels
Les unités de conception secondaires correspondent aux algorithmes des modèles et des
sous-programmes.
au fichier
Téléchargement :
Cliquer sur ‘’IMPACT’’
Choisir le fichier pour le téléchargement dans le FPGA ensuit
cliquer sur ouvrir
Cliquez droit sur l'icône XC3S1000 et sélectionnez le programme,
Cela va lancer le téléchargement du programme dans le FPGA
L'opération de téléchargement devrait prendre quelque minute
VI-Conclusion :
Une autre façon de configurer le FPGA est l'utilisation du port JTAG (Joint Test Action
Group). Ce port est utilisé pour tester le circuit intégré, grâce à la technique de boundary
scan. Un pin est utilisé pour entrer les données JTAG et un autre pour les sortir.
On a remplacé l’analyseur multicanaux (MCA) par la carte FPGA qu’on a utilisé aussi
VHDL pour la programmation.
Chapitre 3 :
La réalisation
Pratique
I- Introduction :
CLK PréDiv
Counter Index/char
500hz
LCD_Driver
12bit
SW (3 :0)
DAC_A
BCD
DAC_B
signal
DAC_D
ADC_A
LED (7 :0)
1- Compteur simple :
Dans cette partie on va créer un compteur qui a une horloge de 50 Mhz, le compteur
est composé de flip flop et de logique, il faut donc avoir un processus séquentiel (avec
clock).
On crée par la suite un signal interne « count »de 32 bits, le compteur incrémente
seulement à chaque front montant d’horloge et l’orsque un bouton est persé ; dans le cas
contraire il va décrémenter et le résultat s’affiche sur les leds.
2- Afficheur LCD :
a-caractéristique de LCD :
L'afficheur LCD disponible sur le starter kit peut afficher 16 caractères sur 2 lignes.
Le FPGA contrôle le LCD via 4 bits de données (SF_D) et 3 bits de contrôle (LCD_E,
LCD_RS, LCD_RW). Certaines broches du FPGA sont connectes a une puce qui sert à
contrôler LCD. Il faut donc savoir comment communiquer avec cette puce pour que
l’affichage se fasse correctement sur LCD.
Cette fiche montre qu’il ya 8bits de donnés, les quatre premiers bits non utilisable, un bit
permet de choisir si on veut lire ou écrire, une autre active LCD et l’autre indique si c’est
une donnée ou une commande.
b- Programme :
Dans cette partie on va afficher sur LCD le mot « Hello IMeNe » donc on commence par :
• Déclarer des variables soit en entré soit en sortie dans l’entité « Entity »
• Crée deux signaux internes Index (caractéristique du tableau ASCII) et char
• L’appel des components par le mot « port map »
Le passage d’un état analogique en état numérique et inversement se fait par des
convertisseurs analogiques numérique(CAN) et numériques analogiques(CNA). Un circuit
analogique manipule des signaux électriques qui peuvent prendre une infinité de valeur qui
sont en générale des fonctions continues du temps.
Dans toute la suite on considère que les signaux numériques représentent des valeurs
binaires. Dans un circuit électronique la grandeur physique que l’on utilise le plus souvent
est la tension.
Dans un système numérique tous les potentiel sont mesurés par rapport à un potentiel
de référence, la masse qui est une équipotentielle.
A chaque équipotentielle d’un circuit on peut donc associer un bit qui représente la valeur
de la tension de l’équipotentielle. Un entré ou une sortie d’un circuit numérique ne peut
prendre que deux valeurs, noté en généralement H pour High (haut) et L pour Low (bas).
CLK 1KHz
Pre_divi Conter
DAC_A
12bit
Sw DAC_B
Rotory_Conterer
DAC_C
DAC_D
Adc_A
LED
Adc_B
b- Programme :
4- Affichage temps :
a - Principe :
Dans cette partie ; on va faire un compteur qui compte de 0 à N (N : valeur optimal) et qui
envoie de son compte sur les LED. La valeur du compteur augmente à chaque seconde puis
à chaque minute et enfin à chaque heur et recommence à 0 après que la valeur optimale est
atteinte.
Chaque compteur est contrôlé par 6 signaux qui sont OverflowS1, S2, M1, M2, H1, H2.
b- Programme :
Remarque :
Pour avoir une minute on doit compléter le comptage jusqu’au 59second c’est pour ca
quand a fait à la fin du programme une concaténation entre SECOND1 et SECOND10.
Même principe pour minute et heur.
Concaténation & :
Process (clk)
Begin
Else
L’acquisition de données fait appel à un circuit FPGA pour le contrôle des fonctionnalités
matérielles. Ce contrôle du cadencement par FPGA permet de rendre toutes les E/S
analogiques et numériques configurables en vue d’un fonctionnement spécifique à
une application. Ce tutorial montre la liaison entre les différents éléments de la carte.
Entity work.Rotary_counter
Entity work.Bin16_Bcd5 Generic map
Port map (CLK=>CLK (bits=>12Increment=>16)
Bcdout=>Bcdout Rot_A=>CLK
Rot_B=>Rot_B
6- Machine d’état :
a- Principe :
La machine d’état fini est un assemblage d’un circuit combinatoire et d’un organe de
mémorisation ; c’est une conceptualisation particulière d’un circuit particulier séquentiel.
Les sorties sont élaborées par un bloc combinatoire de décodage du registre d’état
Dans cette partie du programme on a crée une machine à état finis ; en premier lieu on a
généré les signaux internes qu’on a besoin :
Signal « MCA Data » : qui permet la transmission des données
C'est la fonction qui permet de capter, coder, conserver et restituer les stimulations et les
informations qu’on perçoit. La mémoire qu’on a utilisé est de deux RAM et a une capacité
de 256(2exp8) ; dans cette application on a besoin d’une mémoire pour stocker la valeur du
pic dans chaque case mémoire.
On a utilisé une mémoire de type Dual qui contient da deux mémoires : l’une pour
l’écriture et lecture et l’autre pour lecture seulement.
Programme Final :
Remarque :
* Pour avoir une exécution du programme plus rapide on change l’ADC.
* On utilise pour la communication PC _ carte un câble USB.
* Dans la pratique ce programme est un compteur qui compte un nombre d’impulsion ;
pour avoir le spectre on utilise l’RS232.
III-Conclusion :
On a ainsi réussi d’assemblé tous les différents composants de FPGA pour développer un
programme VHDL qui permet de convertir une valeur aléatoire en une valeur numérique
en la stockant et avec l’affichage sur LCD.
Conclusion général
Au cours de ce projet de fin d’étude, nous avons conçu et réalisé un programme VHDL
qui est composé de plusieurs parties à programmer, une partie du programme pour le
compteur, une partie pour LCD, une partie pour ADC et une autre partie pour la machine
d’état.
Ce programme peut continuer dans la perspective d’afficher les valeurs stockées sous
forme d’un spectre.
Ce projet m’a permis d’enrichir mon connaissance dans plusieurs domaines et notamment
dans l’électronique et les systèmes embarqués puisque j’ai travaillé sur les FPGA et surtout
dans la programmation VHDL.
Et je n’oublie pas la bonne formation qui j’ai reçu dans le service UEIN de la technopole
et surtout qu’on a maitrisé des nouveaux logiciels tel que XILINX ISE 9.2i pour la
programmation des circuits FPGA.
The project consists to program a FPGA board which will replace the MCA and therefore we
chose to create a VHDL program whose role is to provide a peak detect the digital signal from
the acquisition chain.
This program is composed of several parts to be programmed, the program part for the
counter, for LCD, for ADC and another part for the state machine. And it will download the
following program in the FPGA in order to get the final result of the downloading in a wide as
a counter.