UTBM. Département GESC. DUREE 2 HEURES.
NOM : PRENOM :
Calculatrices non autorisées. Fascicule DSP Contrôleur TMS320LF24LF07 non autorisé.
Exercice 1 : commande d’un gyropode.
Par définition, le gyropode est un véhicule électrique monoplace, constitué d’une plateforme munie de deux roues sur laquelle l’utilisateur se tient debout, d’un système de stabilisation gyroscopique (calculateur, accéléromètre et gyromètre) et d’un manche de maintien et de conduite.
L’organisation fonctionnelle est donnée ci-dessous :
Le calculateur est un contrôleur TMS320LF24LF07 cadencé à 40MHz.
L’exercice 1 est composé de 3 parties indépendantes.
- Potentiomètre de recopie - Accéléromètre
- Gyromètre - Capteur de courant - Capteur de tension
Tension batterie
Problématique n°1 :
surveillance de la tension batterie.
Le gyropode se trouve en permanence dans un équilibre dynamique. En cas de défaillance de la source d’énergie, la chute est assurée. Cette défaillance risque de se produire lorsque la tension aux bornes de chacune des batteries chute de plus de 10 % par rapport à leur valeur nominale (dans ce cas la tension risque de décroître très rapidement, et la tension d’alimentation des moteurs risque de ne plus être suffisante;
en outre les batteries risquent de ne plus pouvoir être rechargées).
On souhaite donc prévenir une décharge trop importante en surveillant la tension à leurs bornes.
Lorsque cette tension descendra au-dessous du seuil limite, le calculateur donnera l’ordre de ralentissement puis d’arrêt du gyropode.
La tension continue UBATTERIES est appliquée à l’entrée ADCIN2 du convertisseur analogique numérique du DSP par l’intermédiaire d’un pont diviseur de tension qui divise la tension par dix.
Question 1 : calculer la valeur de la tension UADCIN2 qui doit déclencher le signal d’arrêt.
Question 2 : écrire en assembleur le sous-programme INITADC1 initialisant le module ADC en mode start stop et cascadé, pour permettre la conversion de la voie 2. Les conversions seront déclenchées logiciellement. La calibration et le test du module ADC ne sont pas effectués.
Question 3 : écrire en assembleur le sous-programme CONTROLE qui mesure la tension de la batterie et qui met à 1 la variable ARRET si cette tension doit déclencher le signal d’arrêt. Si le signal d’arrêt ne doit pas être déclenché, la variable ARRET sera mise à 0.
Problématique n°2 :
limitation du rayon de braquage.
Une des fonctions du gyropode est de s’assurer que le conducteur puisse prendre les virages en toute sécurité quelle que soit la vitesse.
Le constructeur propose trois gammes de vitesse :
la vitesse d’un homme qui marche : 5 km.h-1,
la vitesse d’un homme qui court : 10 km.h-1,
la vitesse maximale : 18 km.h-1.
Comme le véhicule est entraîné par deux moteurs électriques (un par roue), il faut donc créer un différentiel pour prendre les virages.
Le calculateur doit donc gérer les vitesses des deux moteurs à courant continu de 24 V grâce à quatre sorties commandées en MLI (modulation en largeur d’impulsion) et deux ponts en H.
Pont diviseur
de tension
UBATTERIES DSP
ADCIN2 UADCIN2
Un calcul mécanique a permis de déterminer la différence maxi de consigne entre les deux moteurs pour un virage (moteur intérieur et moteur extérieur) :
On propose d’élaborer un programme qui va surveiller la consigne de vitesse du gyropode (CV) calculée en faisant la moyenne entre les consignes vitesses des deux moteurs (CG et CD). Selon la gamme de vitesse à laquelle se déplace le gyropode, le programme déterminera ensuite la différence entre les deux consignes (D) et la comparera avec les différences maximales (constantes Dp, Dc, Dw).
Si cette différence D dépasse Dp, Dc ou Dw selon la vitesse du gyropode, le programme devra limiter la vitesse de la roue extérieure afin de respecter le rayon minimal de braquage.
Question 4 : compléter l’organigramme du sous-programme LIMITATION du document réponse n°1 traduisant le fonctionnement de la limitation du rayon de braquage.
Question 5 : écrire en langage C le sous-programme LIMITATION. Les variables Dp, Dc, Dw, D, CG, CD, CV sont déclarées dans le programme principal en integer.
Problématique n°3 :
comportement dans une pente en montée.
Dans cette partie, on se propose d’étudier le pilotage d’un moteur électrique lorsque le gyropode est Le schéma de puissance d’un moteur est donné ci-dessous. Le moteur est piloté par un hacheur (pont en H) comprenant 4 interrupteurs Ki constitués d’un transistor IGBT et d’une diode en antiparallèle.
K1 et K4 sont reliés par l’intermédiaire d’une interface à la sortie PWM1 du DSP, K2 et K3 à la sortie PWM2 du DSP.
La vitesse du moteur varie de -2000 tr.min-1 à 2000 tr.min-1 suivant le sens et la vitesse de déplacement.
Le pont en H permet de piloter la tension VM en appliquant +UBAT ou -UBAT en ajustant le rapport cyclique des signaux PWM
La modulation d’énergie est périodique de fréquence 10kHz et les interrupteurs requièrent un temps mort (ou délai de sécurité) de 2s. La sortie PWM1 est active au niveau bas. Le DSP est cadencé à 40 MHz.
Question 6 : quel registre permet de faire varier le rapport cyclique des signaux PWM ?
Question 7 : écrire en assembleur le sous-programme INITEVA réalisant l’activation du module EVA et Dc=10
UBAT M
VM
K1 K3
K4
IM
K2
IBAT
Dp=6 Dw=19
Question 8 : tracer sur un même graphe les signaux PWM1, PWM2 et la tension VM pour un rapport cyclique de 3/4.
Le gyropode surveille, grâce au capteur de courant, l’intensité IBAT fournie par le bloc batterie. La mesure de cette intensité est stockée dans la variable COURANT. On a la relation COURANT = IBAT × 20.
La consigne de vitesse du moteur est stockée dans la variable CD. Pour la marche avant CD est positive et pour la marche arrière CD est négative.
Le fonctionnement est le suivant :
si l’intensité fournie par le bloc batterie est inférieure à 50A, alors = 0,5 + CD / 150, CD variant de +75 à -75.
si l’intensité fournie par le bloc batterie est supérieure à 50A, alors la vitesse du moteur est nulle et on allume une LED STOP reliée à IOPA0. Si IOPA0 = 1 alors la LED éclaire sinon elle est éteinte.
Question 9 : écrire en assembleur le sous-programme INITLED initialisant le port A.
Question 10 : donner l’organigramme du sous-programme VITESSE qui commande la vitesse du moteur en fonction de l’intensité du courant fourni par le bloc batterie et qui allume la LED STOP lorsque l’intensité n’est plus dans l’intervalle requis.
Question 11 : écrire en assembleur le sous-programme VITESSE.
Exercice 2 : décodage d’adresse.
On donne page suivante le schéma partiel d’une carte 6809. Seuls sont représentés les mémoires et le microprocesseur ainsi que le bus d’adresse.
Question 12 : pour les mémoires MEM1, MEM2, MEM3, MEM4 et MEM5, indiquer la capacité mémoire en bits, la capacité mémoire en kbits et l’organisation en nombre de mots et taille des mots (N mots de M bits). Présenter le résultat sous forme de tableau en précisant les calculs.
Question 13 : Compléter le tableau ci-dessous en indiquant votre démarche sur votre copie : Zone occupée Zone utile (si zone
occupée)
Zone de recouvrement Adresse
mini
Adresse maxi
Adresse mini
Adresse maxi
Adresse mini
Adresse maxi
Taille occupée
Taille utilisée
(si) MEM1
MEM2 MEM3 MEM4 MEM5
Table de vérité du 74LS138.
Entrées
Sorties
Valid Select
G1
G2A G2B C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 X X X X X 1 1 1 1 1 1 1 1
X 1 X X X X 1 1 1 1 1 1 1 1
X X 1 X X X 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1
1 0 0 1 0 1 1 1 1 1 1 0 1 1
1 0 0 1 1 0 1 1 1 1 1 1 0 1
39 X1
38 EX2
RESET 37 2 NMI
40 HALT 3 IRQ
4 FIRQ 36 MRDY 33 DMAB
A0 8 A1 9 A2 10 A3 11 A4 12 A5 13 A6 14 A7 15 A8 16 A9 17 A10 18 A11 19 A12 20 A13 21 A14 22 A15 23
D0 31 D1 30 D2 29 D3 28 D4 27 D5 26 D6 25 D7 24
E 34 Q 35 BA 6 BS 5 RW 32 7 VCC
1 VSS
CI1 6809 circuit 40 br
1 A 2 B 3 C
6 G1 4 G2A 5 G2B
Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8
CI2 74LS138
1 A 2 B 3 C
6 G1 4 G2A 5 G2B
Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8
CI3 74LS138
10 A0 9 A1 8 A2 7 A3 6 A4 5 A5 4 A6 3 A7 24 A8 25 A9 21 A10 23 A11 2 A12
20 CE 22 OE 27 WE
D011 D112 D213 D315 D416 D517 D618 D719
RDY1
VCC 28 GND 14
MEM2
10 A0 11 A1 12 A2 13 A3 14 A4
15 CE
O11 O22 O33 O44 O55 O66 O77 O89 VCC 16 GND 8
MEM4
10 A0 9 A1 8 A2 7 A3 6 A4 5 A5 4 A6 3 A7 24 A8 25 A9 21 A10 23 A11 2 A12
20 CE 22 OE 27 WE
D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19
RDY1
VCC 28 GND 14
MEM3
8 A0 7 A1 6 A2 5 A3 4 A4 3 A5 2 A6 1 A7 23 A8 22 A9 19 A10
18 CE 20 OE 21 WE
D0 9 D1 10 D2 11 D3 13 D4 14 D5 15 D6 16 D7 17
VCC 24
GND 12
MEM1
5 A0 6 A1 7 A2 4 A3 3 A4 2 A5 1 A6 17 A7 16 A8 15 A9
8 CS 10 WE
D014 D113 D212 D311
VCC 18
GND 9
MEM5
GND Vcc
Vcc
GND A15
A14 A13
A12 A11 A10
A0 A1 A2 A3 A4 A5 A6 A7 A9 A8 A10
A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A1
A0 A0
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12
A0 A1 A2 A3 A4
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 S2
S3
S5 S1
S4
S4
S5 S3
S2 S1
Bus d’adresse
Carte mémoire 6009
NOM : PRÉNOM : Document réponse n°1 :
D=Dp
gyropode.
Dp
Dc
Dw
D