SlideShare une entreprise Scribd logo
1  sur  25
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
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
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
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
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é
La bibliothèque Simulink SUPSYM5X

   La librairie Simulink SUPSYM5X/QADC64 :
La bibliothèque Simulink SUPSYM5X

   La librairie Simulink SUPSYM5X/QADC64 :
La bibliothèque Simulink SUPSYM5X

   La librairie Simulink SUPSYM5X/QSMCM :
La bibliothèque Simulink SUPSYM5X

   La librairie Simulink SUPSYM5X/QSMCM :
La bibliothèque Simulink SUPSYM5X

   Exemple de comportement en simulation :
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);
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
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
Stimuli   Loi de commande
                                      Frein 1




                            Frein 2
Modules
MPC555    Algorithme
Entrées                Modules
                       MPC555
                       Sorties
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 »
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
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();
                                                                             }
                                }
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));
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
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;
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
Limites des solutions retenues

   Environnement de génération automatique de code
    SUPSYM5X :
      Uniquement utilisable avec la version 4.1 de

       l’environnement RTW
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 »
Bilan

   Point faible du projet SUPSYM5X :
      Logiciel :
         Evolutivité relativement difficile (versions des
          environnements Simulink et RTW)

Contenu connexe

En vedette

Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et Kazakhstan
Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et KazakhstanImplantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et Kazakhstan
Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et KazakhstanGroupe PSA
 
Atelier tapisserie-entreprise
Atelier tapisserie-entrepriseAtelier tapisserie-entreprise
Atelier tapisserie-entrepriseAhmed BEN DAHMEN
 
Audio Cable Service - Mardinnov
Audio Cable Service - MardinnovAudio Cable Service - Mardinnov
Audio Cable Service - MardinnovLe Moulin Digital
 
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia Amante
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia AmanteCultura da Convergência: Escola e Tecnologias Móveis - Lúcia Amante
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia AmanteJosé Moura Carvalho
 
LEONI Cable Solutions (India) Inauguration 6th May 2013
LEONI Cable Solutions (India) Inauguration 6th May 2013LEONI Cable Solutions (India) Inauguration 6th May 2013
LEONI Cable Solutions (India) Inauguration 6th May 2013Pushpendra Singh
 
Capacity building 2010 day 1 dlm
Capacity building 2010 day 1 dlmCapacity building 2010 day 1 dlm
Capacity building 2010 day 1 dlmRCREEE
 
Carte des implantations de PSA Peugeot Citroën en France
Carte des implantations de PSA Peugeot Citroën en FranceCarte des implantations de PSA Peugeot Citroën en France
Carte des implantations de PSA Peugeot Citroën en FranceGroupe PSA
 
Rapport(2ème version)
Rapport(2ème version)Rapport(2ème version)
Rapport(2ème version)Borgi Haytham
 
Implantations de PSA Peugeot Citroën en Europe
Implantations de PSA Peugeot Citroën en EuropeImplantations de PSA Peugeot Citroën en Europe
Implantations de PSA Peugeot Citroën en EuropeGroupe PSA
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationALALSYSE
 
20 fiches conseil pour répondre à vos enjeux RH
20 fiches conseil pour répondre à vos enjeux RH20 fiches conseil pour répondre à vos enjeux RH
20 fiches conseil pour répondre à vos enjeux RHCCI BRETAGNE
 
Cm6.04 part2 gestion_multiculturalite ing
Cm6.04 part2 gestion_multiculturalite ingCm6.04 part2 gestion_multiculturalite ing
Cm6.04 part2 gestion_multiculturalite ingidigroupe6
 
Cm6.03 part2 veille_technologique_chunsi_tech
Cm6.03 part2 veille_technologique_chunsi_techCm6.03 part2 veille_technologique_chunsi_tech
Cm6.03 part2 veille_technologique_chunsi_techidigroupe6
 
Cm6.04 part1 diversite_culturelle manag
Cm6.04 part1 diversite_culturelle managCm6.04 part1 diversite_culturelle manag
Cm6.04 part1 diversite_culturelle managidigroupe6
 
Règlement du jeu Fais ton pronostic avec Eventeam !
Règlement du jeu Fais ton pronostic avec Eventeam !Règlement du jeu Fais ton pronostic avec Eventeam !
Règlement du jeu Fais ton pronostic avec Eventeam !Eventeam
 
L' amélioration des conditions de travail, un point de passage obligé du déve...
L' amélioration des conditions de travail, un point de passage obligé du déve...L' amélioration des conditions de travail, un point de passage obligé du déve...
L' amélioration des conditions de travail, un point de passage obligé du déve...VincentMandinaud
 
Cm6.03 part1 veille_entreprise_ortzi_ing
Cm6.03 part1 veille_entreprise_ortzi_ingCm6.03 part1 veille_entreprise_ortzi_ing
Cm6.03 part1 veille_entreprise_ortzi_ingidigroupe6
 

En vedette (20)

Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et Kazakhstan
Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et KazakhstanImplantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et Kazakhstan
Implantations du Groupe PSA Peugeot Citroën en Russie, Ukraine et Kazakhstan
 
Atelier tapisserie-entreprise
Atelier tapisserie-entrepriseAtelier tapisserie-entreprise
Atelier tapisserie-entreprise
 
enquete de satisfaction
enquete de satisfaction enquete de satisfaction
enquete de satisfaction
 
Audio Cable Service - Mardinnov
Audio Cable Service - MardinnovAudio Cable Service - Mardinnov
Audio Cable Service - Mardinnov
 
Liste des stages 07 02 2017
Liste des stages 07 02 2017Liste des stages 07 02 2017
Liste des stages 07 02 2017
 
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia Amante
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia AmanteCultura da Convergência: Escola e Tecnologias Móveis - Lúcia Amante
Cultura da Convergência: Escola e Tecnologias Móveis - Lúcia Amante
 
LEONI Cable Solutions (India) Inauguration 6th May 2013
LEONI Cable Solutions (India) Inauguration 6th May 2013LEONI Cable Solutions (India) Inauguration 6th May 2013
LEONI Cable Solutions (India) Inauguration 6th May 2013
 
Capacity building 2010 day 1 dlm
Capacity building 2010 day 1 dlmCapacity building 2010 day 1 dlm
Capacity building 2010 day 1 dlm
 
Carte des implantations de PSA Peugeot Citroën en France
Carte des implantations de PSA Peugeot Citroën en FranceCarte des implantations de PSA Peugeot Citroën en France
Carte des implantations de PSA Peugeot Citroën en France
 
Rapport(2ème version)
Rapport(2ème version)Rapport(2ème version)
Rapport(2ème version)
 
Soutenance de stage ouvrier
Soutenance de stage ouvrierSoutenance de stage ouvrier
Soutenance de stage ouvrier
 
Implantations de PSA Peugeot Citroën en Europe
Implantations de PSA Peugeot Citroën en EuropeImplantations de PSA Peugeot Citroën en Europe
Implantations de PSA Peugeot Citroën en Europe
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
 
20 fiches conseil pour répondre à vos enjeux RH
20 fiches conseil pour répondre à vos enjeux RH20 fiches conseil pour répondre à vos enjeux RH
20 fiches conseil pour répondre à vos enjeux RH
 
Cm6.04 part2 gestion_multiculturalite ing
Cm6.04 part2 gestion_multiculturalite ingCm6.04 part2 gestion_multiculturalite ing
Cm6.04 part2 gestion_multiculturalite ing
 
Cm6.03 part2 veille_technologique_chunsi_tech
Cm6.03 part2 veille_technologique_chunsi_techCm6.03 part2 veille_technologique_chunsi_tech
Cm6.03 part2 veille_technologique_chunsi_tech
 
Cm6.04 part1 diversite_culturelle manag
Cm6.04 part1 diversite_culturelle managCm6.04 part1 diversite_culturelle manag
Cm6.04 part1 diversite_culturelle manag
 
Règlement du jeu Fais ton pronostic avec Eventeam !
Règlement du jeu Fais ton pronostic avec Eventeam !Règlement du jeu Fais ton pronostic avec Eventeam !
Règlement du jeu Fais ton pronostic avec Eventeam !
 
L' amélioration des conditions de travail, un point de passage obligé du déve...
L' amélioration des conditions de travail, un point de passage obligé du déve...L' amélioration des conditions de travail, un point de passage obligé du déve...
L' amélioration des conditions de travail, un point de passage obligé du déve...
 
Cm6.03 part1 veille_entreprise_ortzi_ing
Cm6.03 part1 veille_entreprise_ortzi_ingCm6.03 part1 veille_entreprise_ortzi_ing
Cm6.03 part1 veille_entreprise_ortzi_ing
 

Similaire à PFE PSA Peugeot Citroen - Prototypage rapide

Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJsimeon
 
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosSaid Benaissa
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallCloudOps2005
 
Les générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienLes générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienNicolas Carlo
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieLoic Yon
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesVincent Composieux
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Websphere compute gid
Websphere compute gid Websphere compute gid
Websphere compute gid sammiiaa
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...Publicis Sapient Engineering
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en pythongburet
 
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquéeDéveloppement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquéeMustapha Tachouct
 

Similaire à PFE PSA Peugeot Citroen - Prototypage rapide (20)

Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJ
 
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de Montréall
 
Les générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienLes générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidien
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Websphere compute gid
Websphere compute gid Websphere compute gid
Websphere compute gid
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Boost.SIMD
Boost.SIMDBoost.SIMD
Boost.SIMD
 
PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquéeDéveloppement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
Développement d'un générateur d'intépréteur de bytecodes pour une JVM embarquée
 
Perf university
Perf universityPerf university
Perf university
 
Atelier IDS SNORT
Atelier IDS SNORTAtelier IDS SNORT
Atelier IDS SNORT
 

PFE PSA Peugeot Citroen - Prototypage rapide

  • 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. 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. 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. 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. 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. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QADC64 :
  • 7. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QADC64 :
  • 8. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QSMCM :
  • 9. La bibliothèque Simulink SUPSYM5X  La librairie Simulink SUPSYM5X/QSMCM :
  • 10. La bibliothèque Simulink SUPSYM5X  Exemple de comportement en simulation :
  • 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. 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. 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. Stimuli Loi de commande Frein 1 Frein 2
  • 15. Modules MPC555 Algorithme Entrées Modules MPC555 Sorties
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Bilan  Point faible du projet SUPSYM5X :  Logiciel :  Evolutivité relativement difficile (versions des environnements Simulink et RTW)