3. Conception Fonctionnelle Cette étape consiste à élaborer un document complet

3. Conception Fonctionnelle Cette étape consiste à élaborer un document complet de la solution retenue en se limitant aux aspects fonctionnels et en restant indépendant de la technologie son objectif est de définir une structure interne au circuit d’ordre fonctionnelle permettent d’assurer le fonctionnement voulu. Pour cela on partira d’une analyse des spécifications fonctionnelles du circuit. On va se positionner à l’intérieur du circuit et identifier les blocs qui le constitue, les fonctions du circuit et les algorithmes associés à partir de ce que le circuit est capable de réaliser. On associera à ces algorithmes l’ensemble des ressources logiques du circuit. Le résultat s’exprime par une structure fonctionnelle composée de fonctions elle-même raffinées (décrite par une structure fonctionnelle) ou décrites par un algorithme. Dans une structure fonctionnelle, les fonctions sont reliées par des relations qui peuvent être de 3 types : Evénement, c’est une relation de synchronisation ; Variable partagée, qui permet de partager des valeurs sans contraintes de temps ; Port de communication, qui sont de type producteur /consommateur. 3.1. Délimitation des entrées/sorties La délimitation des entrées/sorties du circuit à concevoir se base sur la délimitation du circuit faite lors des spécifications. La figure 1 ci-dessous nous présente, le circuit et son environnement avec lequel il devra inter-agir. Figure 1 : Délimitation des entrées/sorties du circuit à concevoir. 3.2. Première Décomposition Fonctionnelle La décomposition se fait à partir des spécifications qui caractérisent le rôle du circuit pour l’application. Elle doit se baser sur la recherche des variables internes essentielles. Ceci est tout à fait compréhensible pour un circuit car il est clair que ces variables seront transcrites en registre et mémoires internes. Le circuit doit être capable de réagir simultanément aux entités de son environnement, il doit recevoir les trames LIN provenant du nœud maitre et les aiguiller vers le microprocesseur. L’analyse de la spécification du circuit (couplage entre automates) permet de constater les variables internes suivantes : DataInterne : contient les données (trames LIN) reçu par le récepteur LIN qui seront sauvegardé avant d’être aiguiller vers le microprocesseur EtatInterne : contient le nombre d’octets à recevoir par le circuit, l’indication des erreurs éventuelles, l’indication des erreurs de message. Filtre : ByteReceiver : Autour de ces relations internes du circuit, il faut : Une fonction Reception LIN : évalue la valeur de DataLIN et doit sauvegarder les données dans DataInterne Une fonction Interface Micro : interprète l’information des signaux de commande du microprocesseur pour les aiguiller, il copie l’EtatInterne et DataInterne sur le bus de données. Il joue en fait le rôle d’aiguillage Une Horloge : elle assure la cadence du circuit Cela donne la décomposition suivante : Figure 2 : Décomposition fonctionnelle du circuit à concevoir. 3.3. Description des algorithmes Le travail de conception fonctionnel n’est terminé que lorsque tous les types des relations (variables partagées et port de communication) sont spécifiés et lorsque le comportement cyclique de chaque fonction a été exprimé sous formes algorithmiques. Comportement de la Fonction Horloge, son comportement est défini comme suit : Action HORLOGE avec (sortie évenement) Const Hperiod=......; begin Cycle Attente(Hperiod); Signal(H); EndCycle End Horloge. Comportement de la Fonction Réception LIN, son comportement est le suivant : Action Horloge avec (sortie évènement H) Corst Hperiod = __; begin cycle attendre (Hperiod); Signal (H); end cycle; end Horloge; Action ReceptionLIN sur évènement avec (entrée var DataLIN : Def DataLIN; sortie var DataInterne : Def DataInterne; sortie var EtatInterne : Def Etat; entrée var Filtre : Def Filtre; sortie év B_Received sortie év M_Received); var EtatReceptionLIN (Attente, ReceptionBreak_0, ReceptionBreak_1, ...) begin cycle H t:= t+ Hperiod ; case EtatReceptionLIN of: Attente : if (DataLIN =0) then begin EtatReceptionLIN := ReceptionBreak_0; end; ReceptionBreak_0 : if (DataLIN =1) then if ( i<=12) then begin EtatInterne.ErrDelayBreak :=1; EtatReceptionLIN := Attente; end; else begin EtatReceptionLIN := ReceptionBreak_1; end; else if (t:= LINperiod) then begin i:=i+1; end; ReceptionBreak_1 : . . . end; Comportement de la Fonction Dialogue Micro, son comportement est le suivant : process (H,nCLR) begin if (nCLR = '0') then state <= Attente; elsif (H'event and H='1') then case state is when Attente => when EcritureAdresse => when EcritureMasque => when LectureData => when LectureEtat => end case; end if; end process; process (state, €) begin case state is when Attente => when EcritureAdresse => if (E= __) then S <= __; -- action sur transition when EcritureMasque => S <= __; -- action sur état when LectureData => when LectureEtat => end case; end process; 4. Conception Architecturale Il s’agit de déterminer une solution approprié au problème à résoudre sous la forme d’une structure de modules. Le travail consiste à transformer la vue fonctionnelle dans l’étape précédente. 4.1. Introduction des interfaces Il s’agit de considérer les caractéristiques technologiques des entrées et sorties du composant. Cette étape consiste généralement à ajouter une couche supplémentaire de fonctions autour de la description fonctionnelle issue de l’étape de conception fonctionnelle. Dans le cas de notre récepteur LIN, l’introduction des interfaces concerne principalement la partie Dialogue avec le microprocesseur. On va réfléchir sur des signaux logiques manipulé avec le microprocesseur. 4.2. Optimisation des algorithmes L’objectif de cette étape est de réduire la complexité de la solution finale. Il faut : Effectuer des tests par rapport à 0 plutôt qu’a une valeur quelconque, Réduire le nombre d’états et de branches conditionnelles dans les automates, Manipuler simultanément plusieurs variables. La fonction réception LIN à concevoir doit évaluer la valeur de DataLIN et prend plusieurs états, nous avons 15 états significatifs nécessaires pour la réalisation de cette fonction. Nous pouvons améliorer cette fonction en réduisant le nombre d’états significatifs cela va nous permettre d’optimiser en termes de ressources logiques nécessaires à la réalisation de cette fonction. Au lieu de répéter les états Attente_Start, Reception_Start, Reception_Bit et Reception_Stop à chaque fois qu’un champ est transmis. Nous pouvons utiliser ces 4 états pour tous les champs transmissent de la trame LIN. La figure suivante nous présente L’algorithme sous forme graphique de la fonction Reception LIN que nous avons optimisé, nous avons au total 7 états significatifs de la fonction Reception LIN Réception Break_0 Data_LIN = 0 (H ) Réception Break_1 Attente Start Réception Start Réception Bit Attente n:=N-1; i=12; n>0, (H ) n:=n-1; n=0; Data_LIN = 0 (H ) n:=N-1; i:=i11; n>0, (H ) n:=n-1; i=0; Data_LIN = 0 (H ) n=0; Data_LIN = 1 (H ) NbByte:=11; Data_LIN = 0 (H ) n:=(N-1)/2; n>0, (H ) n:=n-1; n=0; Data_LIN = 0 (H ) n:=N-1; i:=7; n>0, (H ) n:=n-1; n=0; i>0 (H ) n:=N-1; i:=i-1; OctetRecu[7..0] = Data_LIN & OctetRecu[7..1] Réception Stop n>0, (H ) n:=n-1; OctetRecu[7..0] = Data_LIN & OctetRecu[7..1]; n:=N-1; n=0; i=0 (H ) DataInterne[j]:=Octet_Recu; j:=j+1; EtatInterne.NbByteReceived:=EtatInterne.NbByteReceived+1; EtatInterne.ByteReceived:=1; NbByte := NbByte -1 n=0; Data_LIN = 1; NbByte>0; NbByte!=10 (H ) n=0; Data_LIN = 1; NbByte=10; (H ) (*) (*);NbByte:=fct(OctetRecu[5..4]; IdentField:=OctetRecu; n=0; Data_LIN = 1; NbByte>0; NbByte!=10 (H ) if ((Filtre.Masque AND Filtre.Adresse) = (Filtre.Masque AND Identifier_Field)) then (*); Etat.MessageReceived:=1; else EtatInterne:=0; DataInterne:=0; Data_LIN = 0; n=0; (H ) EtatInterne.ErrStartStop:=1; Data_LIN = 1; n=0; (H ) EtatInterne.ErrStartStop:=1; Data_LIN = 1; n=0; (H ) EtatInterne.ErrStartStop:=1; Data_LIN = 0; n>0; (H ) EtatInterne.ErrDelayBreak:=1; Data_LIN = 1; i>0; (H ) EtatInterne.ErrDelayBreak:=1; n:=N-1; Figure 3: Automate Réception LIN. La fonction Dialogue Micro est activée selon le niveau du signal nCS, le microprocesseur va initier le cycle de lecture ou d’écriture en activant le nCS. La fonction dialogue Micro est asynchrone, l’aiguillage des informations entre les données et les ressources internes aura une influence sur l’évolution de nCS. Pour des raisons de fiabilités et de robustesse on privilège des liaisons synchrones à l’horloge qui est un choix technologiques. La valeur du nCS sera évaluée sur front montant ou descendant, en faisant ce choix on va préciser la valeur du signal d’horloge H. La période du signal H doit être faible de façon à détecter les signaux les signaux du microprocesseur plus précisément du nCS, donc la période de nCS va nous permettre de déterminer la période du signal d’horloge H. La période du signal d’horloge H sera par la durée de nCS entre 80ns et 120ns, la période minimale permettra à déterminer une valeur de nCS. Donc la période de H sera fixée à 80ns. Figure 4: Algorithme graphique Dialogue Micro. 4.3. Identifications des ressources Cette étape consiste à interpréter les algorithmes que nous avons optimisés et identifier les ressources nécessaires pour chaque état ou instructions associée. Chaque fonction du circuit à concevoir sera constitué d’une partie opérative qui va assurer le traitement escomptés, d’une partie commande qui va assurer la bonne séquence des différents opérations de la partie opérative et une partie mémorisation qui va définir des ressources de mémorisation pour chaque relations internes entre les différentes fonctions du circuit à concevoir. 4.3.1 Ressources de mémorisation Nous allons étudier le rôle de chacune de chacune des relations interne au circuit et pour chaque relation on doit trouver la ressource à mettre en œuvre pour la sauvegarde des données et favoriser l’échange des informations entre Réception LIN et Interface Micro. DataInterne : recevra les données provenant du uploads/Management/ rapport-de-conception.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Apv 27, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.9475MB