Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur...

26
Journées Systèmes Indust riels 28/01/1999 1 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département informatique Château neuf, Place Paul Bert Bayonne

Transcript of Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur...

Page 1: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

1

Présentation des TPs système temps réel sur microcontrôleur

P. ANIORTE

M. DALMAU

IUT de Bayonne, Département informatique

Château neuf, Place Paul Bert

Bayonne

Page 2: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

2

Plan de l’exposé

Le microcontrôleur utilisé (C167) L’environnement de développement (Keil) et le noyau temps réel (RTX) Les maquettes de TP TPs de programmation du microcontrôleur en assembleur et C

objectif : savoir utiliser - les interfaces du microcontrôleur- les interruptions- l’environnement de développement

TPs temps réel objectif : illustrer l’utilisation d’un noyau temps réel

Exemples de TPs réalisés Organisation pratique Problèmes rencontrés

Page 3: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

3

Le microcontrôleur C167

• CPU• Mémoire RAM (4K)

• 16 registres généraux• 212 registres spéciaux

• Périphériques• Lignes d’E/S (114)• Convertisseur A/N• Générateur d’impulsions• Timers / Compteurs• Liaison série synchrone et asynchrone

• Contrôleur d’interruptions• Contrôleur de bus externe

Page 4: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

4

L’environnement de développement microvision (Keil)

• Développement de projets en C ou en Assembleur

• Génération d’un exécutable pour C167

• Possibilité d’y inclure le noyau temps réel RTX

Page 5: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

5

L’environnement de mise au point DScope

• Simulation du C167

• Exécution sur carte externe

• Outils de mise au point

•Points d’arrêt

•Pas à pas

•Variables

•Registres

•Mémoire

•Etat des périphériques

Page 6: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

6

Le noyau Temps Réel RTX166

Généralités

Multitâche préemptif / priorité

2 classes de tâches. Standard. Rapide

Tâches d’IT gérées par RTX166

Page 7: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

7

Le noyau Temps Réel RTX166

Interactions entre tâches

Communication d’informations (messages)Boîtes à lettres (création, lecture, écriture …)

Partage de ressourceSémaphores - jetons (initialisation, attente de jetons,

remise de jetons …) Synchronisation

Signal (attente, envoi, effacement …)

Page 8: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

8

Le noyau Temps Réel RTX166

Structure d’une application

Programme C166 :

Tâches : fonctions C166 étendues

Paramétrage de l’application : nombre maximum de tâches, de boîtes à lettres, de sémaphores, taille de l’espace de travaildes tâches système …)

Transformation du programme C en système multitâche

Page 9: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

9

Structure d’une application RTX

#include <rtx166.h>

#include <reg167.h>

#define WSPSIZE 256 /* Task workspace size (no of words). */

static t_rtx_handle htache1; /* Handles for tasks */

static t_rtx_handle htache2;

static t_rtx_config rtx_conf; /* Configuration record */

unsigned int huge system_heap[0x800]; /* Use 4 kByte of HDATA */

unsigned int near contxt_heap[0x800]; /* Use 4 kByte of NDATA */

Page 10: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

10

Structure d’une application RTX (suite)

void tache1 (void) _task_ 1

{

printf("Début de tâche 1\n");

for (;;) { printf("Tache 1 \n"); }

os_delete_task (os_running_task_id());

}

void tache2 (void) _task_ 2

{

printf("Début de tâche 2\n");

for (;;) { printf("Tache 2 \n"); }

os_delete_task (os_running_task_id());

}

Page 11: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

11

Structure d’une application RTX (fin)void main (void)

{

rtx_conf.max_tasks = 8;

rtx_conf.max_mailboxes = 0;

rtx_conf.max_semaphores = 0;

rtx_conf.max_mem_pools = 0;

rtx_conf.idle_wsp_size = WSPSIZE;

rtx_conf.clock_wsp_size = WSPSIZE;

rtx_conf.round_robin = TRUE;

rtx_conf.system_pool = system_heap;

rtx_conf.system_pool_size = sizeof(system_heap);

rtx_conf.rtx51 = FALSE;

rtx_conf.context_pool = contxt_heap;

rtx_conf.context_pool_size = sizeof(contxt_heap);

status = os_start_system (&rtx_conf);

printf("demarrage tache principale\n");

status = os_create_task (&htache1, 1, WSPSIZE);

status = os_create_task (&htache2, 2, WSPSIZE);

os_delete_task (os_running_task_id());

}

Page 12: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

12

La maquette de TPs

Maquette de TPs

Face avant

8 Sorties numériques à LED

7 x 8 lignes d’entrées/Sorties

dont 16 analogiques

2 boutons poussoirs

2 entrées analogiques par potentiomètres (0 à 5V)

8 Entrées numériques par interrupteursReset du

C167

Carte d’évaluation C167

microcontrôleur + RAM + liaison série

PC

Microvision + Dscope

Alim

Page 13: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

13

TPs de programmation du microcontrôleur en assembleur et en C

Programmation en assembleur TP1 : Utilisation d’un port d’Entrée/Sortie

Ecriture d’un premier programme en assembleur Utilisation de lignes numériques en entrée et en sortie, détection de niveaux logiques

TP2 : Détection d’un seuil analogique, comparaison de tensions Ecriture d’une procédure d’interruption Utilisation du convertisseur analogique/numérique

Programmation en C TP3 : Vumètre à LEDs avec valeur de crête

Ecriture d’un premier programme en C

TP4 : Chenillard à LEDs Ecriture d’une procédure d’interruption Programmation d’un timer

Page 14: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

14

TPs de programmation du microcontrôleur en C (suite)

TP5 : Amélioration du chenillard à LEDs Arriver à une application complexe Adjonction d’interruptions

Interrupteur marche/arrêt

Entrée analogique de réglage de vitesse

Entrée analogique de réglage de longueur

Gestion des priorités entre interruptions Introduire la nécessité d’un système temps réel

TP6 : Générateur de signaux carrés à fréquence et rapport cyclique variables Utilisation de la MLI Problèmes de précision des calculs

choix des types de variables

ordre des opérations

Problèmes de vitesse d’exécution (durée des calculs)

Page 15: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

15

Les TPs Temps Réel

Simulation

Constitution d’une application RTX166 avec microvision -gestion des tâches (priorité, enchaînement …)

Communication d’informationsle modèle producteur/consommateur

Page 16: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

16

Les TPs Temps Réel

Microcontrôleur - maquette

Tâche d’IT

Synchronisation

Application de synthèse :partage de ressource et communication d’information

Page 17: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

17

Comparateur de tension (TP2)

On veut réaliser un comparateur de tension dont le fonctionnement est le suivant :

Lorsque l’entrée 1 est inférieure à l’entrée 2, la LED 1 seule est allumée. Alors que lorsque l’entrée 1 est supérieure à l’entrée 2, c’est la LED 2 qui est seule allumée.

1°) Proposer un montage à base de C167 permettant de réaliser ce comparateur à LEDs.

2°) Ecrire le programme en assembleur correspondant. Ce programme sera constitué

- d’un programme principal qui gère l’état des LEDs en fonction des valeurs mesurées sur les entrées analogiques

- et d’une procédure d’interruption qui tient à jour ces valeurs mesurées sur les entrées.

Carte

C167

LED 1

PotentiomètreOV 5V

PotentiomètreOV 5V

LED 2

Entrée 1

Entrée 2

Page 18: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

18

; initialisation des lignes de commande des LEDsbset DP8.0 ; ligne en sortie (LED 1)bset DP8.1 ; ligne en sortie (LED 2)extr #1bclr ODP8.0 ; niveau TTLbclr P8.0 ; initialement à 0bclr P8.1

; initialisation du convertisseur A/Nmov ADCIC,#004Ch ; It de fin de conversion

; signalée (priorité 3)mov ADEIC,#0 ; pas d'IT de perte d ’infomov ADCON,#02B1h ; canaux 0 et 1, mode continu,

; conv. relancée par lecturebset PSW.11 ; autoriser les ITs

Initialisations

Page 19: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

19

Tâche de fond

; boucle d'asservissement

boucle: mov r1,entree1 ; valeurs mesurées

cmp r1,entree2

jmp cc_ULE,e1estinf

bsetP8.0 ; entrée1 supérieure (LED 1 allumée)

bclrP8.1 ; LED 2 éteinte

jmp boucle

e1estinf: bclr P8.0 ; entrée1 inférieure (LED 1 éteinte)

bsetP8.1 ; LED 2 allumée

jmp boucle ; asservissement (boucle infinie)

Page 20: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

20

Procédure d’interruption

finconv PROC INTERRUPT can=40

; procédure de fin de conversion : met à jour les valeurs

; correspondant aux deux entrées

bclr ADCIC.7 ; effacer l'indication d'IT

mov r5,ADDAT ; résultat de la mesure

mov r2,r5 ; pour garder le n° de canal

shr r2,#12 ; n° de canal seul

and r5,#0000001111111111b ; enlever le n° de canal

cmp r2,#0 ; canal 0 ?

jmp cc_NE,canal1

mov entree1,r5 ; sauvegarder dans entrée 1

jmp finit

canal1: mov entree2,r5 ; sauvegarder dans entrée 2

finit: reti

finconv ENDP

Page 21: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

21

Application de synthèse

1ère séance Partage d’un CAN par 2 tâches surveillant 2 potentiomètres

La première tâche allume une LED lorsque la valeur atteint 2,5V et l’éteint lorque la valeur tombe à 0,5V

La deuxième tâche allume une autre LED lorsque la valeur atteint 4,5V et l’éteint lorque la valeur tombe à 3V

Page 22: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

22

Application de synthèse

1ère séance (suite)

Test visuel :

t pot.1 pot.2 LED 1 LED 2

t1 OV OV éteinte éteintet2 1V OV éteinte éteintet3 1V 5V éteinte alluméet4 1V 4V éteinte allumée

Page 23: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

23

Application de synthèse

2ème séance

La gestion des LEDs est confiée à une 3ème tâche

Il convient de lui communiquer les valeurs acquisespar les 2 tâches précédentes

La boîte à lettres est le dispositif mis en œuvre

Page 24: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

24

Objectifs et bilan

Objectifs Sensibilisation à l’informatique industrielle (capteurs, actionneurs, interruptions,

problèmes de temps …) Prise en main d’un environnement de développement croisé Programmation d’un microcontrôleur en assembleur et en C Utilisation d’un noyau temps réel Comparaison des solutions traditionnelles et temps réel.

Bilan Plutôt bien perçu par les étudiants Peu de problèmes techniques (faisabilité, durée …) Vérification visuelle possible du bon fonctionnement du programme écrit Difficultés de test et de mise au point des programmes par les étudiants Nécessité d ’un encadrement important

Page 25: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

25

Organisation pratique des TPs

Salle de 6 postes + un poste enseignant

Groupes de 12 étudiants travaillant en binômes

TPs de 3 heures

De nombreux problèmes techniques au début (claquage de microcontrôleurs, de cartes) en partie résolus par la maquette (boîte métallique fermée, alim propre..)

Page 26: Journées Systèmes Industriels 28/01/19991 Présentation des TPs système temps réel sur microcontrôleur P. ANIORTE M. DALMAU IUT de Bayonne, Département.

Journées Systèmes Industriels 28/01/1999

26

Les problèmes qui restent et ce que l’on souhaite faire

Problèmes majeurs La maquette limite beaucoup les possibilités (entrées/sorties) Les TPs sont peu réalistes (asservissement, moteurs, capteurs …) Le logiciel de Keil comporte encore pas mal de lacunes (gestion des

projets, points d’arrêts, pertinence de ce que l’on voit …)

L’avenir Protéger davantage la maquette et l’améliorer Utiliser les montages des TPs d’électronique (capteurs, filtres …) Faire le lien ou le parallèle avec les TPs d’automatique (asservissement de

moteurs …)