mise en œuvre avancée du...

14
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

Upload: others

Post on 24-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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

Page 2: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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 :

Page 3: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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

Page 4: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 4

DECLARATIONS

DES

VARIABLES

Page 5: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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

Page 6: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 6

APPEL PROCEDURES INITIALISATION

AFFICHAGE ‘PUBLICITAIRE’

Page 7: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 7

BOUCLE PERPETUELLE

A

B

C

DA

Page 8: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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 ?

Page 9: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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 :

Page 10: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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.

Page 11: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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.

Page 12: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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 :

Page 13: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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.

Page 14: Mise en œuvre avancée du microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D_SIN_Multitaches.pdf · 2015. 1. 27. · P.G Vox Fichier STI2D_SIN_Multitaches.docx Page 3 propose beaucoup

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