View
0
Download
0
Category
Preview:
Citation preview
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 1
Mise en œuvre avancée du microcontrôleur
Systèmes multitâches
Sommaire :
Première solution la scrutation ou pooling 2
Analyse du code AVRco 2
Analyse du programme pooling 8
Essai du programme pooling 8
Deuxième solution programmation multitâche 9
Analyse du programme multitâche 10
Essai du programme multitâche 10
Troisième solution les interruptions 11
Analyse du programme interruption 13
Essai du programme interruption 13
Synthèse 14
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 2
Première solution la scrutation ou pooling
La première expérimentation va consister à utiliser une technique de scrutation. Cette technique
consiste à faire tourner le programme dans une boucle sans fin, le temps de réponse du système
dépend donc de la durée des différentes parties de codes exécutées.
Pour expérimenter cette technique il faut simuler le fichier MT_INIT_AVRco_1.DSN
Analyse du code AVRco
Le code du programme est listé ci-dessous :
Ce code est écrit en langage Pascal l’EDI est AVRco d’E-LAB computer, un compilateur Pascal et un
environnement de développement ciblant les microcontrôleurs ATMELS. Le langage Pascal est un
langage évolué à la syntaxe plus dépouillée et plus claire que le C, de plus l’EDI est très complète et
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1
LM044L
PB0/ICP1/CLKO/PCINT014
PB1/OC1A/PCINT115
PB3/MOSI/OC2A/PCINT317
PB2/SS/OC1B/PCINT216
PD6/AIN0/OC0A/PCINT2212
PD5/T1/OC0B/PCINT2111
PD4/T0/XCK/PCINT206
PD3/INT1/OC2B/PCINT195
PD2/INT0/PCINT184
PD1/TXD/PCINT173
PD0/RXD/PCINT162
PB4/MISO/PCINT418
PB5/SCK/PCINT519
PB7/TOSC2/XTAL2/PCINT710
PB6/TOSC1/XTAL1/PCINT69
PC6/RESET/PCINT141
PC5/ADC5/SCL/PCINT1328
PC4/ADC4/SDA/PCINT1227
PC3/ADC3/PCINT1126
PC2/ADC2/PCINT1025
PC1/ADC1/PCINT924
PC0/ADC0/PCINT823
AVCC20
AREF21
PD7/AIN1/PCINT2313
ATMEGA88BP1
BP2
PT1PICOT
SYNCV=FLT
Mise en oeuvre de systèmes multitâches
MT_INIT_AVRco.DSN
BP3
pour simuler en continu
D1LED-BLUE
D2LED-GREEN
D3LED-RED
D4LED-YELLOW
Approche temps réel
P.G VOX
PoolingPremière étude :
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3
propose beaucoup plus de pilote des périphériques hardware et software du microcontrôleur. Il est
possible de mettre en œuvre un système multitâches RTOS, ce que nous feront dans le TP suivant.
CONFIGURATION
SYSTEME
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 4
DECLARATIONS
DES
VARIABLES
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 5
PROCEDURE D’INITIALISATION
DES PORTS
PROCEDURE DE DETECTION
DES APPUIS SUR LES BP
PROCEDURE DE CLIGNOTEMENT
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 6
APPEL PROCEDURES INITIALISATION
AFFICHAGE ‘PUBLICITAIRE’
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 7
BOUCLE PERPETUELLE
A
B
C
DA
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 8
Analyse du programme pooling
Pour bien comprendre les résultats de la simulation effectuer au préalable une analyse de ce que fait le
programme, pour cela répondre aux questions suivantes :
Q1. Donner la structure générale des différentes parties du code.
Q2. Indiquez dans la partie du code déclarant les variables comment est traité l’accès à un bit d’un
octet par le langage Pascal.
Q3. Décrire le fonctionnement de la procédure TestBP.
Q4. Analyse de la boucle principale du programme : lister les différents blocs de codes successifs.
Q5. Que se passe t-il sur un appui détecté du BP 3 ?
Q6. Que se passe t-il sur un appui détecté du BP 2 ?
Q7. Que se passe t-il sur un appui détecté du BP 1 ?
Une documentation résumée du Pascal AVRco
Essai du programme pooling
Analyser le fonctionnement du programme pooling, en particulier que pensez-vous de la réaction du
programme à l’appui sur les différents boutons poussoirs ?
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 9
Deuxième solution programmation multitâche
Pour pallier aux défauts inhérents à la programmation de type pooling, une évolution consiste, quand
c’est disponible, à utiliser une programmation de type multitâches ou RTOS. Le langage pascal AVRco
le permet ce que nous allons étudier maintenant.
Pour expérimenter cette technique il faut simuler le fichier MT_INIT_AVRco_2.DSN
La structure générale du programme est identique à la structure sauf la déclarations de tâches, tâches
qui sont mises en œuvre par les capacités RTOS de AVRco.
Le système RTOS est déclenché par la commande :
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1
LM044L
PB0/ICP1/CLKO/PCINT014
PB1/OC1A/PCINT115
PB3/MOSI/OC2A/PCINT317
PB2/SS/OC1B/PCINT216
PD6/AIN0/OC0A/PCINT2212
PD5/T1/OC0B/PCINT2111
PD4/T0/XCK/PCINT206
PD3/INT1/OC2B/PCINT195
PD2/INT0/PCINT184
PD1/TXD/PCINT173
PD0/RXD/PCINT162
PB4/MISO/PCINT418
PB5/SCK/PCINT519
PB7/TOSC2/XTAL2/PCINT710
PB6/TOSC1/XTAL1/PCINT69
PC6/RESET/PCINT141
PC5/ADC5/SCL/PCINT1328
PC4/ADC4/SDA/PCINT1227
PC3/ADC3/PCINT1126
PC2/ADC2/PCINT1025
PC1/ADC1/PCINT924
PC0/ADC0/PCINT823
AVCC20
AREF21
PD7/AIN1/PCINT2313
ATMEGA88BP1
BP2
PT1PICOT
SYNCV=FLT
Mise en oeuvre de systèmes multitâches
MT_INIT_AVRco.DSN
BP3
pour simuler en continu
D1LED-BLUE
D2LED-GREEN
D3LED-RED
D4LED-YELLOW
Approche temps réel
P.G VOX
Programmation multitâchesDeuxième étude :
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 10
Analyse du programme multitâche
Q1. Décrire le code des deux tâches ci-dessous :
Q2. Préciser l’activation des deux tâches sur le diagramme ci-dessous :
2
s
41 3
Diagramme activation des tâches
tâche clignotement lent
tâche clignotement rapideComparer la mise en oeuvre des deux clignotements entre le programme pooling et le programme
multitâches.
Essai du programme multitâche
Analyser le fonctionnement du programme multitâche, en particulier que pensez-vous de la réaction du
programme à l’appui sur les différents boutons poussoirs ? comparer avec la programmation pooling.
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 11
Troisième solution les interruptions
Toute les EDI ne disposent pas de la possibilité de traiter la mise en œuvre de RTOS. Pour réagir
rapidement sans ralentir le programme principal il est possible d’utiliser le mécanisme d’interruption. Ce
mécanisme est géré par le microcontrôleur, celui-ci en effet déclenche le traitement approprié en
fonction d’un évènement matériel, dans notre exemple l’appui sur les boutons poussoirs BP1 et BP3.
Sur le schéma ci-dessous nous voyons que pour chaque broche d’entrée du microcontrôleur est associé
la possibilité de déclencher une demande d’interruption :
Pour la broche 23 PORTC.0 c’est l’interruption n° INT8, et ainsi de suite ..
Voilà les deux traitements associés :
Le traitement doit avoir une
durée d’exécution compatible
avec la fréquence de
l’interruption.
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 12
La boucle principale est donnée ci-dessous :
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1
LM044L
PB0/ICP1/CLKO/PCINT014
PB1/OC1A/PCINT115
PB3/MOSI/OC2A/PCINT317
PB2/SS/OC1B/PCINT216
PD6/AIN0/OC0A/PCINT2212
PD5/T1/OC0B/PCINT2111
PD4/T0/XCK/PCINT206
PD3/INT1/OC2B/PCINT195
PD2/INT0/PCINT184
PD1/TXD/PCINT173
PD0/RXD/PCINT162
PB4/MISO/PCINT418
PB5/SCK/PCINT519
PB7/TOSC2/XTAL2/PCINT710
PB6/TOSC1/XTAL1/PCINT69
PC6/RESET/PCINT141
PC5/ADC5/SCL/PCINT1328
PC4/ADC4/SDA/PCINT1227
PC3/ADC3/PCINT1126
PC2/ADC2/PCINT1025
PC1/ADC1/PCINT924
PC0/ADC0/PCINT823
AVCC20
AREF21
PD7/AIN1/PCINT2313
ATMEGA88BP1
BP2
PT1PICOT
SYNCV=FLT
Mise en oeuvre de systèmes multitâches
MT_INIT_AVRco.DSN
BP3
pour simuler en continu
D1LED-BLUE
D2LED-GREEN
D3LED-RED
D4LED-YELLOW
Approche temps réel
P.G VOX
Gestion des évènements par interruptionTroisième étude :
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 13
Analyse du programme interruption
Pour expérimenter cette technique il faut simuler le fichier MT_INIT_AVRco_3.DSN
Q1. Décrire les actions réalisées dans la boucle principale.
Q2. Comment est géré le clignotement
Q3. Quelles sont les actions réalisées lors d’une demande d’interruption sur la PinC.0 ?
Q4. Quelles sont les actions réalisées lors d’une demande d’interruption sur la PinC.2 ?
Essai du programme interruption
Analyser le fonctionnement du programme, en particulier comparer le comportement des réactions aux
interruptions par rapport aux actions réalisées dans la boucle pricipale.
P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 14
Synthèse
Rédiger sur une page maximum le bilan de vos expérimentations entre les trois modes de traitement de
l’information : (A) Pooling, (B) RTOS, (C) Interruptions.
Indique un document ressource
Retour au sommaire
Retour à la page courante
Recommended