440 likes | 592 Views
Vendredi 12 Juin 2009. Delco Logique II. Logiciel Embarqué. Tuteuré par Pascal ACCO. Présenté par Alexis DELZON, Clément GEAMBLU, Natalia MENDOZA. Plan. Alexis Delzon. Présentation – Organisation/Retard – La conception – Bilan. Cahier des Charges.
E N D
Vendredi 12 Juin 2009 Delco Logique II Logiciel Embarqué Tuteuré par Pascal ACCO Présenté par Alexis DELZON, Clément GEAMBLU, Natalia MENDOZA
Plan Alexis Delzon
Présentation– Organisation/Retard – La conception – Bilan Cahier des Charges • Mettre en place un ordonnancement pour l’allumage du moteur d’une super 5 • Traiter les informations d’autres capteurs pour informer le conducteur Analyse du fonctionnement du moteur Création d’algorithmes de calcul d’allumage Programmation d’un microcontrôleur DsPIC Alexis Delzon
Présentation– Organisation/Retard – La conception – Bilan Introduction à l’allumage classique • Le moteur 4 temps Alexis Delzon
Présentation– Organisation/Retard – La conception – Bilan Présentation global du système Alexis Delzon
Présentation– Organisation/Retard – La conception – Bilan Delco Logique I • Batterie • 4 Bobines • Bougies • Rupteur + • Distributeur • Rupteur • électronique • Microcontrôleur • Sécurité Alexis Delzon
Présentation– Organisation/Retard – La conception – Bilan Les apports de Delco-Logique 2 Simulateur capteurs Nouveaux capteurs Programmation DsPIC Alexis Delzon
Présentation – Organisation/Retard– La conception – Bilan Organisation de l’équipe Au début Finalement • Relation Inter-Equipe • 3 Taches / 3 Membres • Noyau Temps Réel • Drivers • Simulateurs • Répartition selon Driver • Driver PMH + NTR • Clément Geamblu • Driver Delco v2 • Alexis Delzon • Autres Drivers • Natalia Mendoza Clément Geamblu
Présentation – Organisation/Retard– La conception – Bilan Retards Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le Noyau Temps Réel Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le PMH Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le driver PMH Source: http://www.geea.org/ Auteur: Jean Pierre HOAREAU Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le driver PMH Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Interruption Index Interruption Index Interruption Index Dent 34 84 34 84 34 Bougie 1 Interruption Dents 5 ms Bougie 2 5 ms Bougie 3 5 ms Bougie 4 5 ms Le driver PMH Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Interruption Index Interruption Index Interruption Index Dent 34 84 34 84 34 Bougie 1 Interruption Dents Bougie 2 Bougie 3 5 ms 5 ms Bougie 4 5 ms Le driver PMH 5 ms Algorithme à étincelle perdue Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le driver PMH Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan 101 dents Le driver PMH • Fonctionne • Simulateur du driver PMH! • Le driver PMH avec algorithme à étincelle perdue • Une version de l’algorithme normal pour le régime établi • Soucis • Erreur de précision négligeable pour la charge • Pas de réglage de l’avance (1 dent = 3.56°) • Noyau Temps Réel instable avec le driver PMH Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le driver PMH • Pour l’utilisateur • Activation par init_PMH() • Paramétrable en statique et en dynamique Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Le driver PMH / Noyau Temps Réel • Temps alloué au traitement pour un régime de 6000tr/min • Tdent= 99µs • Temps Max d’exécution mesuré en simulation • Ttraitement_dent_MAX=76µs (avec Focs = 16MHz) • Temps disponible pour les traitements du noyau • Tnoyau_MAX=23µs Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Simulation du driver PMH Haut Régime Pindex=13.55ms Bas Régime Pindex=188ms Clément Geamblu
Présentation – Organisation/Retard – La conception– Bilan Ordonnancement par Delco • Réutilisation des capteurs du groupe Delco I (2008) • Pourquoi? • Interrogations sur les nouveaux capteurs • Faisabilité? • Fonctionnement? • Quand? • Démarrage de la voiture • Régime transitoire incertain • Système de remplacement Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Principe de Fonctionnement Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Principe de Fonctionnement Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Mise en place du simulateur • Fréquence de Fonctionnement ? • 10 ms et 40ms • Ordre d’apparition Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Création du simulateur Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Ordonnancement par Delco I • Volonté de pouvoir basculer d’un programme à un autre • Partage des ressources du DsPIC • Ressources attribuées au départ: • Un Timer : gestion de l’ordonnancement • Une entrée interruptive : rupteur • 4 entrée NI: Signaux Delco I Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Principe de l’ordonnancement • Gestion en mode scrutatif des signaux DELCOI + Interruption par rupteur • T(bob) 5ms • Anticipation sur 2 fronts • Nécessité de 2 timers • T(TIMER) = 2T(opt) – T(BOB) Calcul de T(opt) : utilisation du capteur d’INDEX Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Résultat Test en simulation : rajout du simulateur d’index T(bob) modifiable entre 3ms et 5ms Alexis Delzon
Présentation – Organisation/Retard – La conception– Bilan Les drivers Position et Vitesse • Driver Gestion de la Position de la pédale d’accélération (driver Position) • Fonctionnement de l’ADC • Configuration de registres de l’ADC • Programme • Driver Vitesse de la voiture (driver Vitesse) • Fonctionnement • Configuration de Registre du Timer et d’interruption • Programme Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Position Récupérer la position de la pédale pour la transmettre à la partie communication. Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Position • L’ADC du dsPIC permet de convertir une grandeur continue analogique de tension comprise entre AVSS et AVDD (0 à 5V dans notre cas) • Initialise les ports d’entrée • Configure les registres • Lance la conversion • Exécute la boucle sans fin Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Position • Valeur récupérée sur ADCBUF3 voidadcconfiguration(void){ // Configuration ADC en lancement immédiat ADCON1 = 0x8000; // ADON = 1 module de conversion active ADCON2 = 0x0400; // ALTS=0 ADCHS = 0x0003; // Selection de l’entrée : CHONA=0, CHOSA=0011 ADCON3 = 0x0080; // Tad = internal RC clock, ADCR = 1 ADCON1bits.ADON = 1; // turn ADC ON } Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Position • Récupère une image de la position intcalcul_acceleration (void){ ADCON1bits.SAMP = 0; // start conversion while(ADCON1bits.DONE); // attend la fin return ADCBUF3; } Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Position • Récupère la position en % floatcalcule_niveau_acceleration(void) { longnum ; num = calcul_acceleration (); return ((0.0244)*num); } Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Vitesse • Mesure le temps entre chaque • front montant - gère les interruptions - fait le calcul. Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Vitesse • Configuration du port d’entrée • Configuration du registre d’interruption et du Timer • Lancement de l’interruption • Exécution de la boucle Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Vitesse //Configuration du Port d’entrée : TRISD |= 0x0400; //RD10 en entrée //Configuration du registres du Timer : TMR4 = 0; //Initialisation du Compteur a 0 T4CON = 0xA020; //T2ON=1 (Demarrage Compteur), //TSIDL=1(Fonctione sur idle mode) //(Synchronisation sur Front externe), //TCS=1 (Entrée Externe sélectionné) //Configuration du registres d’Interruption: INTCON2 &= 0xFFF7; //INT3 sur front positive IEC2bits.INT3IE = 1; //Validation Interruption INT3 Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Vitesse void__attribute__((__interrupt__, auto_psv)) _INT3Interrupt(void){ IEC2bits.INT3IE = 0; //Inhibe les interruptions sur INT3 pendant le traitement periode_vitesse = TMR4; TMR4 = 0; //Réinitialisation Timer 4 (Base de Temps Calcul Période) pour le prochain tour IFS2bits.INT3IF = 0; // Supprime drapeau d'interruption sur INT3 IEC2bits.INT3IE = 1; } Natalia Mendoza
Présentation – Organisation/Retard – La conception– Bilan Le driver Vitesse • Calcul et fourni la vitesse de la voiture voidlance_Vitesse_voiture (void){ // resultat en (Km/H) Vitesse_voiture = (3. 392 / periode_vitesse) ; } Natalia Mendoza
Présentation – Organisation/Retard – La conception – Bilan Bilan technique • Points forts • Fonctionnement des drivers • Fonctionnement des simulateurs des capteurs • Drivers adaptables par fichier de configuration • Points faibles • Aucun test en réel • Noyau temps réel difficile à maîtriser • Avance driver Delco v2 gérée mécaniquement Alexis Delzon
Présentation – Organisation/Retard – La conception – Bilan Bilan organisationnel • Points forts • Répartition des tâches pour travailler indépendamment • Meilleur gestion du temps • Séparation en drivers • Délimitation précise des périphériques et du code à générer • Points faibles • Partage des ressources parfois difficile • Une seule carte de test + 1 DsPIC Natalia Mendoza
Présentation – Organisation/Retard – La conception – Bilan Améliorations envisageables • Noyau Temps Réel • Faire un noyau Temps Réel propre au projet • Driver PMH • Utiliser un Timer pour le début de la charge de la bobine • Réaliser l’algorithme de passage entre démarrage et régime établi • Driver Delco v2 • Utilisation de Timerspour la gestion de l’avance Clément Geamblu
Merci de votre attention • Si vous avez des questions ?