La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 informatique Château neuf, Place Paul Bert Bayonne

2 Journées Systèmes Industriels 28/01/19992 Plan de lexposé äLe microcontrôleur utilisé (C167) äLenvironnement 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 - lenvironnement de développement äTPs temps réel ä objectif : illustrer lutilisation dun noyau temps réel äExemples de TPs réalisés äOrganisation pratique äProblèmes rencontrés

3 Journées Systèmes Industriels 28/01/19993 Le microcontrôleur C167 CPU Mémoire RAM (4K) 16 registres généraux 212 registres spéciaux Périphériques Lignes dE/S (114) Convertisseur A/N Générateur dimpulsions Timers / Compteurs Liaison série synchrone et asynchrone Contrôleur dinterruptions Contrôleur de bus externe

4 Journées Systèmes Industriels 28/01/19994 Lenvironnement de développement microvision (Keil) Développement de projets en C ou en Assembleur Génération dun exécutable pour C167 Possibilité dy inclure le noyau temps réel RTX

5 Journées Systèmes Industriels 28/01/19995 Lenvironnement de mise au point DScope Simulation du C167 Exécution sur carte externe Outils de mise au point Points darrêt Pas à pas Variables Registres Mémoire Etat des périphériques

6 Journées Systèmes Industriels 28/01/19996 Le noyau Temps Réel RTX166 Généralités Multitâche préemptif / priorité â 2 classes de tâches. Standard. Rapide â Tâches dIT gérées par RTX166

7 Journées Systèmes Industriels 28/01/19997 Le noyau Temps Réel RTX166 Interactions entre tâches â Communication dinformations (messages) Boîtes à lettres (création, lecture, écriture …) â Partage de ressource Sémaphores - jetons (initialisation, attente de jetons, remise de jetons …) â Synchronisation Signal (attente, envoi, effacement …)

8 Journées Systèmes Industriels 28/01/19998 Le noyau Temps Réel RTX166 Structure dune application Programme C166 : â Tâches : fonctions C166 étendues â Paramétrage de lapplication : nombre maximum de tâches, de boîtes à lettres, de sémaphores, taille de lespace de travail des tâches système …) â Transformation du programme C en système multitâche

9 Journées Systèmes Industriels 28/01/19999 Structure dune application RTX #include #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 */

10 Journées Systèmes Industriels 28/01/ Structure dune 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()); }

11 Journées Systèmes Industriels 28/01/ Structure dune 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()); }

12 Journées Systèmes Industriels 28/01/ La maquette de TPs Maquette de TPs Face avant 8 Sorties numériques à LED 7 x 8 lignes dentrées/Sorties dont 16 analogiques 2 boutons poussoirs 2 entrées analogiques par potentiomètres (0 à 5V) 8 Entrées numériques par interrupteurs Reset du C167 Carte dévaluation C167 microcontrôleur + RAM + liaison série PC Microvision + Dscope Alim

13 Journées Systèmes Industriels 28/01/ TPs de programmation du microcontrôleur en assembleur et en C Programmation en assembleur äTP1 : Utilisation dun port dEntrée/Sortie äEcriture dun premier programme en assembleur äUtilisation de lignes numériques en entrée et en sortie, détection de niveaux logiques äTP2 : Détection dun seuil analogique, comparaison de tensions äEcriture dune procédure dinterruption äUtilisation du convertisseur analogique/numérique Programmation en C äTP3 : Vumètre à LEDs avec valeur de crête äEcriture dun premier programme en C äTP4 : Chenillard à LEDs äEcriture dune procédure dinterruption äProgrammation dun timer

14 Journées Systèmes Industriels 28/01/ TPs de programmation du microcontrôleur en C (suite) äTP5 : Amélioration du chenillard à LEDs äArriver à une application complexe äAdjonction dinterruptions 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é dun 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 dexécution (durée des calculs)

15 Journées Systèmes Industriels 28/01/ Les TPs Temps Réel Simulation â Constitution dune application RTX166 avec microvision - gestion des tâches (priorité, enchaînement …) â Communication dinformations le modèle producteur/consommateur

16 Journées Systèmes Industriels 28/01/ Les TPs Temps Réel Microcontrôleur - maquette â Tâche dIT â Synchronisation â Application de synthèse : partage de ressource et communication dinformation

17 Journées Systèmes Industriels 28/01/ Comparateur de tension (TP2) On veut réaliser un comparateur de tension dont le fonctionnement est le suivant : Lorsque lentrée 1 est inférieure à lentrée 2, la LED 1 seule est allumée. Alors que lorsque lentrée 1 est supérieure à lentrée 2, cest 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é - dun programme principal qui gère létat des LEDs en fonction des valeurs mesurées sur les entrées analogiques - et dune procédure dinterruption qui tient à jour ces valeurs mesurées sur les entrées. CarteC167CarteC167 LED 1 Potentiomètre OV 5V Potentiomètre OV 5V LED 2 Entrée 1 Entrée 2

18 Journées Systèmes Industriels 28/01/ ; initialisation des lignes de commande des LEDs bsetDP8.0; ligne en sortie (LED 1) bsetDP8.1; ligne en sortie (LED 2) extr#1 bclrODP8.0; niveau TTL bclrP8.0; initialement à 0 bclrP8.1 ; initialisation du convertisseur A/N movADCIC,#004Ch ; It de fin de conversion ; signalée (priorité 3) movADEIC,#0; pas d'IT de perte d info movADCON,#02B1h; canaux 0 et 1, mode continu, ; conv. relancée par lecture bsetPSW.11; autoriser les ITs Initialisations

19 Journées Systèmes Industriels 28/01/ Tâche de fond ; boucle d'asservissement boucle:movr1,entree1; valeurs mesurées cmpr1,entree2 jmpcc_ULE,e1estinf bsetP8.0 ; entrée1 supérieure (LED 1 allumée) bclrP8.1; LED 2 éteinte jmpboucle e1estinf: bclr P8.0; entrée1 inférieure (LED 1 éteinte) bsetP8.1; LED 2 allumée jmpboucle ; asservissement (boucle infinie)

20 Journées Systèmes Industriels 28/01/ Procédure dinterruption finconv PROC INTERRUPT can=40 ; procédure de fin de conversion : met à jour les valeurs ; correspondant aux deux entrées bclrADCIC.7; effacer l'indication d'IT movr5,ADDAT; résultat de la mesure movr2,r5; pour garder le n° de canal shrr2,#12; n° de canal seul andr5,# b ; enlever le n° de canal cmpr2,#0; canal 0 ? jmpcc_NE,canal1 moventree1,r5; sauvegarder dans entrée 1 jmpfinit canal1: moventree2,r5; sauvegarder dans entrée 2 finit:reti finconvENDP

21 Journées Systèmes Industriels 28/01/ Application de synthèse 1 ère séance â Partage dun 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

22 Journées Systèmes Industriels 28/01/ Application de synthèse 1 ère séance (suite) Test visuel : tpot.1pot.2LED 1LED 2 t1OVOVéteinteéteinte t21VOVéteinteéteinte t31V5Véteinteallumée t41V4Véteinteallumée

23 Journées Systèmes Industriels 28/01/ 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 acquises par les 2 tâches précédentes â La boîte à lettres est le dispositif mis en œuvre

24 Journées Systèmes Industriels 28/01/ Objectifs et bilan Objectifs uSensibilisation à linformatique industrielle (capteurs, actionneurs, interruptions, problèmes de temps …) uPrise en main dun environnement de développement croisé uProgrammation dun microcontrôleur en assembleur et en C uUtilisation dun noyau temps réel uComparaison des solutions traditionnelles et temps réel. Bilan uPlutôt bien perçu par les étudiants uPeu de problèmes techniques (faisabilité, durée …) uVérification visuelle possible du bon fonctionnement du programme écrit uDifficultés de test et de mise au point des programmes par les étudiants uNécessité d un encadrement important

25 Journées Systèmes Industriels 28/01/ 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..)

26 Journées Systèmes Industriels 28/01/ Les problèmes qui restent et ce que lon 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 darrêts, pertinence de ce que lon voit …) Lavenir ;Protéger davantage la maquette et laméliorer ;Utiliser les montages des TPs délectronique (capteurs, filtres …) ;Faire le lien ou le parallèle avec les TPs dautomatique (asservissement de moteurs …)


Télécharger ppt "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."

Présentations similaires


Annonces Google