Professional Documents
Culture Documents
PROJET LIGHT
EQUIPE TOURISTE
Olivier ROMAIN 1
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
I. Introduction
1.1 Les réseaux de capteurs sans-fil
1.1.1. En quoi ça consiste?
Les capteurs sont des éléments essentiels dans tous les systèmes où les informations issues de
l'environnement extérieur sont nécessaires pour évoluer et agir. De ce fait, avoir une
connaissance précise et complète sur ce milieu exige le déploiement de plusieurs capteurs, et
si possible, conjuguer toutes les informations renvoyées pour mieux ajuster les paramètres de
chaque capteur. L'avancée remarquable dans le domaine des télécommunications a permis de
supprimer les liaisons filaires de transmission fort encombrantes. D'autant plus que les câbles
d'alimentations ne sont plus indispensables étant donné que la consommation de tels circuits
n'a cessé de baisser. Toutes ces fonctionnalités nous permettent d'imaginer un système
complexe construit autour de plusieurs capteurs en communication sans fils, capables de
s'adapter selon les évolutions rencontrées.
Un réseau de capteur est constitué d'un grand nombre d’unités (nœuds). Chaque nœud est
composé d'un ou plusieurs capteurs, d'une unité de traitement et module de communication.
Les unités d'un réseau dialoguent entres elles selon la topologie du réseau et l'existence ou pas
d'une infrastructure (points d'accès) afin d’acheminer les informations à une unité de
commande hors de la zone de mesure.
L'utilisation des capteurs en liaison sans fil devient une nécessité pour construire un système
dont la mobilité est une caractéristique dominante. On parle alors de capteurs embarqués sur
des unités mobiles, voir fixes repartis sur une surface considérable. Dans ce cas, la
transmission des acquisitions est plus aisée qu'avec l'utilisation d'une transmission filaire. Les
applications d'une telle architecture sont nombreuses dans différents domaines d’applications.
Elles dépendent étroitement de la catégorie des capteurs utilisés :
Olivier ROMAIN 2
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
L'une des principales applications est la construction d'un réseau d'unités autonomes mobiles
capables de se déplacer dans des zones inconnues, inaccessibles ou hostiles à l'être humain.
On arrive ainsi à fournir des informations sur le terrain afin d'établir une stratégie d'évolution
selon le but souhaité. On peut par exemple localiser des victimes lors des opérations de
sauvetage, ceci est possible grâce à de petits mobiles capables de s'infiltrer à travers les
décombres ou d'autres plus étanches pour explorer les fonds aquatiques. Une autre application,
et non la moindre, est l'exploitation militaire. Dans ce contexte, l'emploi des réseaux de
capteurs peut aller des surveillances de routine des périmètres, jusqu'à assister des attaques
aériennes ou terrestres et de conduire des opérations d'espionnage.
Pour cela, il faut qu'aucun élément ne soit indispensable pour le fonctionnement du réseau.
Une telle architecture, dite en ad-hoc, permet de maintenir le réseau en action suite à la perte
d'un ou de plusieurs éléments.
En effet, un réseau Ad-hoc ne nécessite pas une infrastructure préexistante, où chaque nœud
est capable de router l'information. Plusieurs autres applications sont possibles,
essentiellement pour des systèmes embarqués.
Olivier ROMAIN 3
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Des laboratoires ont mis en œuvre des réalisations pratiques. Dans ce qui suit, quelques
applications sont citées en guise d'exemples et données en annexes :
Il s'agit d'une étude topologique d'un réseau Ad-Hoc. C'est un reseau de capteurs de
température dotés d'un module Ericsson pour la communication sans fil et un microprocesseur
RISC (8 bits, 4MHz et 128 Kbits de memoire flash.
Olivier ROMAIN 4
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Présentation du Projet
• Spécifications
• Volet technique
• Annexe technique
Olivier ROMAIN 5
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
II. Spécifications
2.1 Introduction
L’objectif de ce projet consiste en la conception d’un réseau de capteur sans fil qui sera
déployé dans les locaux du Master SESI de l’Université Paris 6. Celui-ci permettra en temps
réel de mesurer la température afin de prévenir d’un éventuel incendie et de détecter des
mouvements au moyen d’un capteur d’image en technologie CMOS.
Ainsi par le biais de ce mini réseau, nous pouvons imaginer plusieurs scénarios comme par
exemple :
Détecter un incendie par la mesure conjointe de la température et de l’image du feu.
Vérifier la présence des élèves dans la salle. Ainsi une feuille de présence est alors
créée automatiquement sans falsification.
Etc.
Olivier ROMAIN 6
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Tâche n°0. T
°
Tâche n°1. I
Balise n°5 Unité de Balise n°4 mage
contrôle
T°
Interface
µP
Zigbee
Vision
Unité d’acquisition
Le rôle de l’unité d’acquisition est d’obtenir des mesures numériques des paramètres
environnementaux des salles. Pour cela, l’unité d’acquisition est basée sur l’utilisation de trois
capteurs analogiques:
Olivier ROMAIN 7
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
• un capteur de température
• une caméra CMOS numérique
Le champ de vue d’une caméra étant restreint (<90°), toute la salle ne pourra alors être
acquise par ce capteur de vision. Afin d’étendre le champ de vue de la caméra, une monture
gyroscopique (azimut et élévation) commandé par deux servomoteurs seront utilisés. Le
déplacement de la caméra sera fait par l’unité de traitement suivant deux modes :
Unité de traitement
L’unité de traitement est basée sur l’utilisation de la carte Altera Nios CycloneII. Celle-ci
utilise un FPGA de la famille des Cyclones ou un processeur de type Nios II y sera implanté.
Unité de radiocommunication
Pour réaliser notre réseau de capteurs sans fil, trois normes peuvent être utilisées, la norme
Bluetooth (IEEE802.15), la norme Wifi (IEEE802.11b) et la norme Zigbee (IEEE802.15.4).
Le choix entre ces deux normes dépend essentiellement de plusieurs caractéristiques comme
la consommation, la possibilité de réaliser des réseaux Ad-hoc, la simplicité d’interfaçage
avec la plate forme Altera.
Par rapport à l’application envisage, nous avons choisi d’utiliser la norme Zigbee au moyen
de module de radiocommunication de type Xbee Pro de la société Maxstream du fait des
avantages qu’il confère.
Olivier ROMAIN 8
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
L’unité de contrôle est basée sur l’utilisation d’un PC ou interface de radiocommunication est
adjointe. Cette interface sera la même que celle qui sera utilisée dans les balises. La liaison
utilisée entre le PC et le module de radiocommunication sera de type série (RS232) comme le
montre la figure 4 ci-dessous :
RS232 Zigbee
Chaque équipe devra suivre une méthodologie de type cycle en V comme suit :
Olivier ROMAIN 9
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Spécifications Validations
Conception Tests
générale Intégration
Conception Tests
détaillée Unitaires
Réalisation
Tâche n°0. Un encadrant sera là pour vous débloquer lorsque vous estimerez être
désespéré !
Olivier ROMAIN 10
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Les spécifications des capteurs présentés dans le paragraphe sur l’architecture détaillée de la
balise sont données en annexe. Les capteurs permettent de mesurer localement des paramètres
physiques.
L’image acquise par la caméra correspondra à une image de luminance. L’image sera
monochromatique avec des pixels codés sur 8 bits (256 niveaux de gris).
On souhaite pouvoir avoir un historique des données acquises. Lorsque l’unité de contrôle
enverra un ordre de type « historique requis » la balise devra être capable de lui envoyer les
données acquises (température) toutes les minutes pendant une journée.
Afin de contrôler les valeurs acquises par la balise avant leurs émissions à l’unité de contrôle,
on souhaite que la balise possède un écran LCD ou les orientations (azimut et élévation) de la
caméra seront affichées. D’autre part, l’unité de contrôle est pourvue de deux afficheurs 7
segments ou le mesure de la température locale sera affichée.
Avant d’envoyer une image à l’unité de contrôle, on souhaite avoir un suivi local. Pour cela,
l’unité de contrôle sera pourvue d’une interface VGA. Celle-ci sera capable d’envoyer sur un
moniteur d’ordinateur, l’image acquise en temps réel.
La balise devra avant d’émettre ses données, rechercher l’unité de contrôle à laquelle elle
appartient (recherche par identifiant), assurer la non rupture de la communication établie et
assurer le dialogue avec l’unité de contrôle. L’émission des données sera faite par
l’intermédiaire d’un module Bluetooth décrit ci-dessus et en annexe. Son interfaçage avec
l’unité de traitement de la balise devra être fait.
Pour la conception matérielle de la balise et de l’unité de contrôle, les outils suivants seront
utilisés :
Olivier ROMAIN 11
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
• Quartus II
• SOPC Builder
• SignalTap Analyzer II
• Analyseur logic USB (à demander à l’encadrant)
IP
Contrôleur
PPM
Servomoteurs
Pan / Tilt
Bus Avalon
Module
U Zigbee
Interface
Caméra Bus
Nios II A
Avalon R
T
Interface
VGA P Affichage
Bus I Température
Avalon
O
IP IP
Contrôleur Contrôleur
PS2 SMT160
Capteur de
température
Olivier ROMAIN 12
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Une unité de contrôle devra pouvoir dialoguer avec une balise spécifique mais aussi avec
l’ensemble de celles qui seront présentes. Pour cela, l’unité de contrôle sera pourvue d’une
interface de communication basée sur le même module Zigbee que les balises. Vous devrez
développer cette interface. Un programme en langage C devra être de plus développer afin de
piloter l’interface conçue.
L’unité de contrôle sera pourvue d’une interface graphique afin d’afficher les données
acquises par une balise spécifique. Sur l’ordre d’un opérateur, une évolution graphique des
paramètres devra être faite. Dans sa version finale, l’interface graphique devra permettre
d’afficher l’ensemble des balises présentes et d’afficher les paramètres d’une balise choisie.
Olivier ROMAIN 13
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
c. Compte rendu
Olivier ROMAIN 14
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
TÂCHE N°0
L’objectif de cette première séance est de se familiariser avec les outils de conception Quartus.
Vous allez apprendre dans ce TP un flow de conception top-down, c'est-à-dire de la
spécification à la synthèse de composants décrits en VHDL, en passant par la simulation.
Pour cela, cette séance portera sur la conception de plusieurs IP, des registres, ALU, filtre de
type FIR et une UART basée à base de FSM. La difficulté des exercices est croissante.
Olivier ROMAIN 15
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Allez dans le menu File et lancer New Project Wizard. Cet assistant va vous guidez pas à pas
pour créer votre projet.
Sous Quartus II, les projets sont liés à des cibles matériels (FPGA ou CPLD). La principale
raison provient du fait que les simulations sont post-synthèse par défaut.
Vous allez créer un répertoire tache0 et vous nommerez votre premier projet, tache0. La
famille de FPGA que vous sélectionnerez sera la famille Cyclone avec le circuit
correspondant à la carte que vous utiliserez. Demander à ce niveau à l’encadrant. Les autres
options seront celles par défaut. Une fois terminé, appuyer sur Finish.
Vous pouvez alors observer dans la fenêtre Project Navigator la composition de votre projet
(entité de haut niveau et circuit utilisé).
Olivier ROMAIN 16
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Edition et compilation
Une fois le projet crée, il est possible d’y insérer plusieurs fichiers de description de
composants : des descriptions structurelles à l’aide de fichier BDF (Block Diagram File) ou
des descriptions comportementales à l’aide de fichier VHDL, AHDL ou Verilog.
Description comportementale
Olivier ROMAIN 17
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Une fenêtre, éditeur de fichier Vhd1.vhd apparaît. Avant de commencer à écrire votre code,
enregistré le fichier. Attention le nom du fichier correspond au nom que vous donnerez à
votre entité.
Ecrivez le code VHDL d’une bascule D.
Description structurelle
Dans le menu File\New, sélectionner Block Diagram/Schematic File. Une fenêtre vierge
apparaît. Enregistrer votre fichier.
Quartus II vous offre toute une librairie de composant décrit en VHDL que vous pouvez vous
servir. Pour cela, appuyer sur le bouton Symbol Tool matérialisé par le symbole d’une porte
ET.
Olivier ROMAIN 18
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Une nouvelle fenêtre apparaît. Prenez le composant Bascule D (dff) et intégré le sur votre
feuille vierge.
Afin de pouvoir être simulé, il est alors nécessaire d’adjoindre à la bascule des entrées/sorties
physiques, broches.
Pour cela, sélectionner dans la fenêtre symbole, les composants input et output. Reliez les
entrées/sorties du composant avec des fils (signaux 1 bit correspond au bouton « wire »).
Enregistrer votre fichier.
Utiliser les composants disponibles pour réaliser un registre à décalage à gauche de 4 bits.
Compilation
Avant de simuler un circuit, il est nécessaire de vérifier qu’il ne comporte pas d’erreur de
conception. Pour cela nous allons le compiler. Si votre projet comporte plusieurs descriptions,
le compilateur par défaut synthétisera l’entité de haut niveau, celle qui correspond à la
description de tout le système.
Olivier ROMAIN 19
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Dans l’onglet Files du Project Navigator sélectionner le fichier que vous voulez compiler.
Appuyer sur le clic droit de la souris et sélectionner Set as Top-Level Entity. En réalisant
cette opération le compilateur ne synthétisera que ce composant.
Aller dans le menu Tools et appuyer sur Compiler Tool. Une nouvelle fenêtre apparaît.
Lancer le compilateur. Le compilateur analyse, synthèse et réalise un placement routage du
composant sur le circuit cible. L’ensemble des rapports de compilation et d’analyse des
performances sont disponibles à partir de cette fenêtre (compiler tool).
Simulation
Cette étape consiste à vérifier le comportement du composant crée. Attention, cette étape
nécessite d’avoir compiler au préalablement le circuit.
Dans le menu File\New, sélectionner l’onglet Other files et Vector Waveform Files. Ce
fichier permet de décrire visuellement le testbench que vous allez utiliser pour tester votre
circuit.
Olivier ROMAIN 20
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Enregistrez le fichier sous Bench_nom du composant. Par exemple pour la basculeD, le nom
du test bench sera Bench_BasculeD.vwf.
Le fichier de simulation est divisé en deux parties. Une colonne pour le les broches d’entrées /
sorties du composants et une zone graphique munie d’une échelle temporelle. Dans la colonne
Name, à l’aide d’un clic droit de la souris, lancez la commande Insert a node or bus, puis
l’outil Node Finder. Cet outil permet de récupérer les noms des entrées/sorties du composant
que vous avez créé.
D et clk sont des entrées. Nous pouvons leur affecter des valeurs manuellement ou utiliser des
stimulis prédéfinis. Pour le signal clk, dans la barre d’outils Waveform Editor sélectionnez
overwrite clock. Prenez une période d’horloge par défaut à 10ns. Pour le signal D, vous
prendrez un compteur qui s’incrémente tous les 50 ns. Enregistrer votre fichier.
Nous allons simuler le comportement du circuit avec le test_bench que vous venez de réaliser.
Pour cela, dans le menu Tools, sélectionnez Simulator Tool. A l’aide du navigateur,
recherchez votre fichier de simulation et lancez la simulation. Le résultat de la simulation
apparaît.
Olivier ROMAIN 21
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Programmation de la carte
II. Applications
Maintenant que vous maîtrisez l’environnement de développement, c’est à vous de jouer !
Définir de façon comportementale un registre de taille variable sur n bits comportant un reset
synchrone.
• Simulez le composant avec n égal à 4 pour une horloge d’une période de 10 ns et 10µs.
• Déterminer un fichier de simulation Waveform Vector file afin d’observer les résultats
sous Quartus.
Olivier ROMAIN 22
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
• Définir de manière structurelle ce filtre, avec une architecture pipeliné, en utilisant les
composants décrits dans la partie 1.
Olivier ROMAIN 23
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
• Les entrées d’horloge de tous les circuits sont actives sur un front descendent
• Le registre à décalage 8 bits est chargé en parallèle par la donnée à transmettre D7…D0
• Les signaux de contrôle du registre à décalage sont :
o SI : entrée série
o SO : sortie série
o MC : entrée de contrôle de Mode
MC = 0 décalage a droite
MC = 1 chargement parallèle
o CLK : horloge pour le décalage
• Le signal d’horloge TxCLK est obtenu par la division par 16 d’une horloge qui est aussi
utilisée par le circuit de réception série
• Les entrées Set et Reset de la bascule D sont asynchrones
• Le circuit de contrôle et la bascule sont initialisés par Reset
Olivier ROMAIN 24
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Figure 2 : chronogramme
Olivier ROMAIN 25
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Compte-rendu
Le compte rendu consiste dans la prise en main du sujet, il ne doit pas seulement se limiter a
l'écriture du code VHDL, mais plutôt a une analyse des questions, a une explication du code
VHDL écrit, avec vos commentaires ainsi que vos résultats de simulations. A la fin de chaque
partie de la séance il faudra faire valider l’exercice par un des deux enseignants responsables.
Olivier ROMAIN 26
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
TÂCHE N°1
Conception d’une IP de type contrôleur pour le capteur de
température SMT160-30
Le SMT160-30 permet de mesurer la température avec une précision absolue de 0.7 °C dans
l'intervalle -30 °C à +100 °C et 1.2 °C de -45°C à +130 °C. Cela rend le capteur très utile dans
toutes les applications où des conditions "humaines" (contrôle de climat, transformation des
produits alimentaires etc.) doivent être contrôlées. La sortie du capteur, de technologie CMOS,
peut être déportée par un câble jusqu'à 20 mètres. Ceci rend le SMT160-30 très utile dans des
applications de télédétection et de commande. Vous pourrez trouver la documentation
complète sur le site du constructeur SMARTEC à l’adresse http://www.smartec.fr
Olivier ROMAIN 27
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
On peut par ailleurs obtenir la valeur de la température en mesurant le signal de sortie à l'aide
d'un système analogique. La tension moyenne (ainsi que la valeur RMS) est directement
proportionnelle au rapport cyclique (Duty Cycle) et à la tension d'alimentation. Par
conséquence Vout /Vdd représente également la valeur de T1/T2.
En définitive la température peut être mesurée d'une manière simple et précise, aussi bien de
façon analogique que numérique.
On désire réaliser une IP d’un contrôleur SMT160 qui servira d’interface entre le capteur de
température et le micro processeur de type Nios. Cette IP permettra d’obtenir une valeur
numérique de la température à partir du Nios. Pour cela, dans un premier temps nous
réaliserons une IP qui sera interfacée au Nios par le bais d’un port d’entrée/sortie de type PIO
puis dans un second temps nous l’intégrerons directement au Nios en l’interfaçant au bus
avalon.
IP contrôleur
clk data_out[N..0]
reset
mesure
Olivier ROMAIN 28
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Vous êtes libre de concevoir cette IP comme vous le souhaité. C'est-à-dire, soit de manière
comportementale ou structurelle.
Il existe deux manières de connecter une IP au processeur Nios, soit en utilisant un port
d’entrée / sortie (PIO cf : synoptique du démonstrateur et cours), soit en utilisant le bus
Avalon. Dans cette partie, nous allons modifier l’IP conçue auparavant afin que son interface
prenne en compte les signaux disponibles sur le bus avalon.
L’entité à développer en VHDL devra être conforme aux spécifications données ci-dessous :
IP contrôleur
clk data_out[31..0]
reset
adress[1..0]
cs
rd
mesure
data_in [31..0]
wr
• un signal d’adresse sur 2 bits, qui permettra d’accéder aux registres de l’IP
o address = 0x01 : registre d’horloge / échantillonnage
o address = 0x10 : registre d’état de l’IP
Olivier ROMAIN 29
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Apporter à la première version de l’IP les modifications nécessaires afin qu’elle prenne en
compte les signaux disponibles sur le bus avalon. Les spécifications des signaux disponibles
sur les bus sont données dans la documentation de chez Alera (AN : Bus Avalon).
Effectuer les simulations du contrôleur sous l’environnement que vous souhaitez, soit
Modelsim ou soit Quartus.
Olivier ROMAIN 30
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
TÂCHE N°2
Conception du système Nios 2
I. Introduction :
Dans cette partie, nous allons nous intéresser à concevoir une IP de type micro processeur
Nios 32 bits en utilisant l’outil SOPC Builder. L’entité Nios (I ou II) devra prendre en compte
les ressources de la carte de développement mais aussi les différentes interfaces (IP) qui
seront développées dans le cadre des tâches 1, 3, 4 et 5.
2.2 En fonction de l’avancement des autres tâches, intégrer dans le Nios 2 les IP SMT160, IP
PPM et IP PS2.
3.2 En fonction des IPs développées dans les autres tâches, réalisé un programme en C qui
permettra :
• L’affichage sur les afficheurs 7 segments de la valeur de la température acquise
• De gérer le déplacement de la caméra suivant deux modes :
o Automatique
o Manuel : souris PS2
Olivier ROMAIN 31
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
4.1 Connecter l’interface qui vous sera remise sur la carte ALTERA
Olivier ROMAIN 32
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
TÂCHE N°3
Conception d’une IP de type contrôleur PPM en VHDL pour le
déplacement de la monture gyroscopique de la caméra
Il comprend :
Un servomoteur s’interface avec un organe de commande à l’aide de trois fils (rouge, noir et
de couleur). Le rouge correspond à l’alimentation +5v (généralement), la masse (le fils noir)
et le signal de commande. Il est normalement blanc, mais il peut être jaune suivant le
fabriquant.
On pourrait penser qu'il faut fournir un PWM comme signal de commande au servomoteur
pour qu’il tourne comme pour un moteur à courant continu, mais ce n’est pas le cas. On utilise
généralement un signal de commande que l’on appelle PPM. La différence entre ces deux
commandes quasi similaire est explicitée ci-dessous :
Olivier ROMAIN 33
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Plus précisément, il faut fournir au servomoteur une impulsion à 1 (suivie d'un retour à 0).
Ainsi le servomoteur va prendre en compte la largeur temporelle de cette impulsion, qu'il va
convertir proportionnellement (ou presque) en un angle.
Le retour à 0 de l'impulsion peut avoir n'importe quelle durée. En pratique, il semblerait qu'il
ne faille pas dépasser un temps de 20ms entre deux fronts montants. A noter aussi que ce
système présente un avantage par rapport au PWM : une absence de signal (toujours à 1, ou
toujours à 0) laisse le servomoteur en "roue libre" comme si il n'était pas alimenté.
Les figures ci-dessous montrent les différences qu’ils existent entre une commande PWM
classique et une commande PPM utilisée par les servomoteurs.
Olivier ROMAIN 34
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Valeurs typiques :
Soit un "pas" de 8µs correspond à 0.89 deg. Ou dans l'autre sens, un degré correspond à 9µs
approximativement. Une étape de calibrage sera nécessaire afin d’ajuster la largeur de
l’impulsion et ainsi d’obtenir une pleine échelle (de -90° à +90°).
Attention, les chronogrammes donnés ci-dessus ainsi que les valeurs sont des exemples. Les
valeurs temporelles dépendent du servomoteur que vous utiliserez. Il sera nécessaire de
réaliser une phase de calibration, par le biais d’un GBF (Générateur Basse Fonction),
préliminaire pour déterminer les valeurs temporelles à respecter.
On désire réaliser une IP d’un contrôleur PPM qui servira d’interface entre le servomoteur et
le micro processeur de type Nios II. Cette IP permettra de faire tourner la caméra à partir du
Nios II. Pour cela, l’IP que nous allons concevoir sera directement intégré au Nios II par le
biais du bus avalon.
L’entité à développer en VHDL devra être conforme aux spécifications données ci-dessous :
Olivier ROMAIN 35
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
2.2.2 Développement SW
Après avoir intégré l’IP dans le système Nios 2 (si la tâche correspondante a été réalisée),
développé sous l’environnement Eclipse le logiciel qui permet de déplacer le servomoteur.
Connecter la carte pour le servomoteur et vérifier le comportement du servomoteur.
Olivier ROMAIN 36
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Olivier ROMAIN 37
olivier.romain@upmc.fr
01 44 27 96 33
UE PBD
Plateform Based Design Master SESI
Olivier ROMAIN 38
olivier.romain@upmc.fr
01 44 27 96 33