Successfully reported this slideshow.
Your SlideShare is downloading. ×

PFE PSA Peugeot Citroen - Prototypage rapide

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Solution d'OTA
Solution d'OTA
Loading in …3
×

Check these out next

1 of 25 Ad
Advertisement

More Related Content

Viewers also liked (20)

Similar to PFE PSA Peugeot Citroen - Prototypage rapide (20)

Advertisement

Recently uploaded (20)

PFE PSA Peugeot Citroen - Prototypage rapide

  1. 1. Projet de fin d’études d’ingénieur SUPSYM5X Spécification, conception et validation de modules logiciels dédiés automobile et de blocs Simulink pour le microcontrôleur MPC555
  2. 2. Sommaire 1. Présentation du projet 2. La bibliothèque Simulink SUPSYM5X 3. L’environnement de génération automatique de code SUPSYM5X_RTW 4. Limites des solutions retenues 5. Bilan
  3. 3. Présentation du projet  Objectif : réaliser un Support de Prototypage de Système Mécatronique  Système mécatronique = système physique + système de pilotage  Système de pilotage agit sur le système physique  Loi de commande conçue sous l’environnement Simulink v4.1
  4. 4. Présentation du projet  Permet un « prototypage rapide »  Carte électronique développée autour d’un microcontrôleur MPC555  Bibliothèque de modules logiciels bas niveau  Environnement de génération automatique et de téléchargement de code C dédié  Sera intégré sur les « démonstrateurs » de la DRIA
  5. 5. La bibliothèque Simulink SUPSYM5X  Ensemble de blocs Simulink représentant les modules du microcontrôleur MPC555  Respect du comportement physique des modules  Génération automatique d’un code C dédié
  6. 6. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QADC64 :
  7. 7. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QADC64 :
  8. 8. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QSMCM :
  9. 9. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QSMCM :
  10. 10. La bibliothèque Simulink SUPSYM5X  Exemple de comportement en simulation :
  11. 11. La bibliothèque Simulink SUPSYM5X  Exemple de comportement en génération automatique de code :  Mise à jour des fonctions module Déclaration des sorties du du module  Initialisation du module QADC64 QADC64 logiciel /* Implémentation de(s) S-Fonction : <Root>/QADC64_NUM */ de la S-Fonction(s) de la librairie SUPSYM5X_QADC64 */ UINT8 listeBroche_0[1]; static UINT8 data = 0; #include "h_QADC.h" static STATUS erreur_initDigitalOutput_QADCA = 0; /* Implémentation de(s) S-Fonction : <Root>/QADC64_NUM */ la librairie de la S-Fonction(s) du type QADC64_NUM de /* Mécanisme de seuillage */ SUPSYM5X_QADC64 S-Fonction : <Root>/QADC64_NUM */ Implémentation de la */ listeBroche_0[0] = AN58; if(test_Input.Input_1 > 0) extern STATUS B_QADC_InitDigitalInput(PTRModule, UINT8, PTRUINT8); erreur_initDigitalOutput_QADCA = B_QADC_InitDigitalOutput(&QADC_A, 1, extern STATUS B_QADC_InitDigitalOutput(PTRModule, UINT8, PTRUINT8); data = 1; elselisteBroche_0); extern STATUS B_QADC_WritePin(PTRModule, UINT8, UINT8); extern UINT8 B_QADC_ReadPin(PTRModule, UINT8); data = 0; erreur_sendDigitalValue_QADCA = B_QADC_WritePin(&QADC_A, AN58, data);
  12. 12. L’environnement de génération automatique de code SUPSYM5X  Objectif : générer un code C optimisé  Dédié au microcontrôleur MPC555  Dédié au compilateur – éditeur de liens Metrowerks for Embedded PowerPC  Utilise l’environnement RTW  Définit des options de génération spécifiques  S’inspire de la cible matérielle prédéfinie Embedded C-code
  13. 13. L’environnement de génération automatique de code SUPSYM5X  Exemple : système de freinage piloté d’un « démonstrateur » de la DRIA  Système physique :  Deux servovalves  Capteurs de pression  Système de pilotage pour chaque circuit hydraulique :  Un correcteur proportionnel intégral  Deux filtres numériques du premier ordre
  14. 14. Stimuli Loi de commande Frein 1 Frein 2
  15. 15. Modules MPC555 Algorithme Entrées Modules MPC555 Sorties
  16. 16. L’environnement de génération automatique de code SUPSYM5X  Fichiers générés :  Fichiers source C :  Phycore.c  c_app_Phycore.c ou c_basiqsec_Phycore.c  Fichiers de déclaration :  Phycore.h  Phycore_export.h  Phycore_prm.h  Fichiers de rapport html, fichier de « calibration »
  17. 17. L’environnement de génération automatique de code SUPSYM5X  Fichier Phycore.c :  Code des fonctions de la loi de commande :  void Phycore_initialize(boolean firstTime)  void Phycore_step(void)  void Phycore_terminate(void)  Inclusion des fichiers Phycore.h, Phycore_export.h et Phycore_prm.h
  18. 18. L’environnement de génération automatique de code SUPSYM5X  Séquenceur de tâches OSEK : Fichier c_app_Phycore.c /*************************************************************** /******************************************************************* /***************************************************************** /********************************************************************* Task Name : B_BegApp Task Name B_InitApp : B_Tache0 Task Name : B_EndApp Engineer : Engineer : /********************************************************************** Engineer : Date : Date : Task Name : B_QADCI_EOC Date : Engineer : Parameters : none Parameters : none Date : Parameters : none Returns : none Returns : none Returns : none Notes : This task initializes the task scheduling is activated by an cyclic alarm Notes applicationtask : This Parameters : noneNotes : This task initializes the task scheduling ****************************************************************/ ********************************************************************/ *****************************************************************/ Returns : none *********************************************************************/ void B_BegApp(void) B_InitApp(void) void B_Tache0(void) Notes : Fonction appelée par l'ISR du module QADC_A ou QADC_B void B_EndApp(void) { { **********************************************************************/ { /* Activation fonction d'initialision du fichier RTW Phycore.c */ RTW Phycore.c */ Appel à la de la tache correspondantàau modèle Simulink fichier /* Appel la fonction step du "Phycore.mdl" */ {} void B_QADCA_EOC(void) /* Appel à la fonction de terminaison du fichier RTW Phycore.c */ B_SetTempsTempo(0, (unsigned int)(1.0)); Phycore_initialize(TRUE); /* Cas d'un uniquevoid B_QADCB_EOC(void) {} sample time */ Phycore_terminate(); } Phycore_step(); } }
  19. 19. L’environnement de génération automatique de code SUPSYM5X  Séquenceur basique de tâches : Fichier c_basiqsec_Phycore.c /*************************************************************** while(1) Task Name : main { Engineer : Date : if (IsNewStep()) { Parameters : none ToggleRedLED(); Returns : none Notes : This task initializes and launches the basic sequenceur /* Appel à la fonction step du fichier RTW Phycore.c */ ****************************************************************/ /* Cas d'un unique sample time */ void main() Phycore_step(); { } /* Initialisation des LED de la carte Phycore MPC555 */ } InitializeLED(); /* Appel à la fonction de terminate du fichier RTW Phycore.c */ /* Appel à la fonction d'initialision du fichier RTW Phycore.c */ Phycore_terminate(); Phycore_initialize(TRUE); } /* main */ /* Initialisation du timer programmable du microcontrôleur MPC555 PIT */ /* Période d'activation donnée en ms */ InitializePIT((unsigned int)(1.0));
  20. 20. L’environnement de génération automatique de code SUPSYM5X  Influence du mécanisme d’ « Inlining » des paramètres du modèle Simulink Variable rtb_temp30 Sortie 1 du bloc QADC64_ANA
  21. 21. L’environnement de génération automatique de code SUPSYM5X  Influence du mécanisme d’ « Inlining » des paramètres du modèle Simulink  Paramètre Gain du bloc Gain non « inliné » :  Fonction Phycore_step() : rtb_temp30 = (-Phycore_Param.Offset_P_brut_1_Value + Phycore_Block.QADC64_ANA_o1) * Phycore_Param.Gain_P_brut_2_bar_1_Gain;  Paramètre Gain du bloc Gain « inliné » :  Fonction Phycore_step() : rtb_temp30 = (-51.15 + Phycore_Block.QADC64_ANA_o1) * 1.7319580201087256E-001;
  22. 22. Limites des solutions retenues  Bibliothèque Simulink SUPSYM5X :  Uniquement utilisable sous la version 4.1 de l’environnement Simulink  Pour tout bloc de la bibliothèque :  Utilisation d’une broche par plusieurs blocs Simulink
  23. 23. Limites des solutions retenues  Environnement de génération automatique de code SUPSYM5X :  Uniquement utilisable avec la version 4.1 de l’environnement RTW
  24. 24. Bilan  Points forts du projet SUPSYM5X :  Matériel  Microcontrôleur MPC555  Logiciel :  Modules logiciels bas niveau  Génération automatique de code C  Noyau OSEK temps réel  Fichier de « calibration »
  25. 25. Bilan  Point faible du projet SUPSYM5X :  Logiciel :  Evolutivité relativement difficile (versions des environnements Simulink et RTW)

×