La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Télécharger Lire

Cours de programmation en language synchrone

64 pages
Cours de Programmationen Langage SynchroneSIGNALBernard HOUSSAISIRISA. Equipe ESPRESSO24 septembre 2004TABLE DES MATIERES 3Table des matieres1 Introduction 51.1 La Programmation Temps Reel . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Traitement complet d’un exemple : le VEILLEUR . . . . . . . . . . . . . . . 61.2.1 Le probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.2 Les signaux d’entree et de sortie. . . . . . . . . . . . . . . . . . . . . 61.2.3 Deroulement du processus VEILLEUR. . . . . . . . . . . . . . . . . 61.2.4 Hypotheses de synchronisme. . . . . . . . . . . . . . . . . . . . . . . 71.2.5 Le processus VEILLEUR en langage SIGNAL. . . . . . . . . . . . . 81.2.6 Mise en uvre et execution. . . . . . . . . . . . . . . . . . . . . . . . 92 Les objets du langage: les signaux 112.1 Qu’est-ce qu’un signal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Ports, traces, ots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Types des valeurs des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.1 Type event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.2 Type boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.3 Type integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.4 Types real, dreal,... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Declarations de signaux . ...
Voir plus Voir moins
Cours de Programmation en Langage Synchrone SIGNAL
Bernard HOUSSAIS IRISA. Equipe ESPRESSO
24
septembre
2004
TABLEDESMATIERES
Tabledesmatieres
3
1 Introduction 5 1.1LaProgrammationTempsReel.........................5 1.2 Traitement complet d’un exemple : le VEILLEUR . . . . . . . . . . . . . . . 6 1.2.1Leprobleme................................6 1.2.2Lessignauxdentreeetdesortie.....................6 1.2.3DeroulementduprocessusVEILLEUR.................6 1.2.4 Hypotheses de synchronisme. . . . . . . . . . . . . . . . . . . . . . . 7 1.2.5 Le processus VEILLEUR en langage SIGNAL. . . . . . . . . . . . . 8 1.2.6Miseenuvreetexecution........................9 2 Les objets du langage : les signaux 11 2.1 Qu’est-ce qu’un signal ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Ports, traces, ots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Types des valeurs des signaux . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.1 Typeevent 13. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Typeboolean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.3 Typeinteger. . . . . . . . . . . . . . . . . . . . . . .  14. . . . . . . . 2.3.4 Typesreal, dreal,.... . . . . . . .. . . . . . . . . . . . . . . . . . . .  14 2.4Declarationsdesignaux.............................14 3 De nitions des signaux. Operateurs 15 3.1De nitiondunsignal..............................15 3.1.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.2Determinationdelhorlogedunsignal.................16 3.1.3Elaborationdesde nitionsdesignaux.................17 3.2Operateursmonochrones.............................17 3.2.1Operateurspropresauxtypesdessignaux...............18 3.2.2Operateurhorloge. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.3Valeursprecedentesdunsignal.Operateurretard..........18 3.3Operateurspolychrones.............................20 3.3.1Operateurwhenunaire . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3.2Echantillonnage.Operateurwhen . . . . . . . . . . . . . . .binaire . 21 3.3.3Melange.Operateurdefault 23. . . . . . . . . . . . . . . . . . . . . . .
4
TABLEDESMATIERES
4 Extensions 27 4.1Repetitionsuruneautrehorloge(operateurcell)...............27 4.2 Modularite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5 Applications 31 5.1Intervalleentredeuxevenements.........................31 5.1.1DureeseparantDEBUTetFIN.....................31 5.1.2PresenceentreDEBUTetFIN.....................31 5.2 Automates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.3Synchronisationdessignauxdentree.Sur-echantillonnage..........33 5.4 Synchronisation sur l’horloge des sorties . . . . . . . . . . . . . . . . . . . . 34 6 La compilation de SIGNAL 35 6.1 Analyse du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.2 Equations d’horloges. Cas simple endochrone . . . . . . . . . . . . . . . . . 35 6.3 Le graphe du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.4 Le code produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.5 Processus exochrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.6 Les diagnostics du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.6.1 Input XX not declared in the process interface . . . . . . . . . . . . 40 6.6.2 Clocks Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.6.3 Dependency cycle in the graph . . . . . . . . . . . . . . . . . . . . . 42 6.6.4 Autres erreurs d’horloge . . . . . . . . . . . . . . . . . . . . . . . . . 42 7 Calcul de proprietes 45 7.1 Codage des horloges et valeurs de signaux . . . . . . . . . . . . . . . . . . . 45 7.2Codagedesoperationssurlessignaux.....................46 7.3Exemple:loperateurcell............................47 7.4Veri cationdeproprietes............................47 7.4.1Speci cation,etprogrammeSIGNAL.................47 7.4.2 Codage du programme . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.4.3 Automate associe au programme . . . . . . . . . . . . . . . . . . . . 48 7.4.4Laveri cation..............................49 7.4.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8 Grammaire d’un sous-ensemble de SIGNAL 51 9 Corrige des exercices 57
Chapitre 1
Introduction
5
Signalest un langage pour la programmation d’applicationsTmespReel, suivant une approchesynchrone.
1.1LaProgrammationTempsReel
Les applicationsempsTlReeeugnitsituasedtnlippsaresponticasencearlapresed dinteractionsentreleprogrammeetsonenvironnement,quiimposesapropreechellede temps.UnsystemeTempsReelrecoitsesinformationsacertainsinstants,etagitlui-mˆemesurcetenvironnementadesinstantsprecis.Lordredapparitiondesdonnees,leur entrelacement,comptentautantquelesvaleursdecesdonnees. N’importe quelle machine avec plusieurs capteurs ou boutons de commande est un systemeTempsReel.Ellesecomportecommeunautomate,quireagit,ouchangedetat, augredesdiversesactionsquellerecoit. Certainesautresapplications,ditesegalementTeelepmRs, prennent en compte le tempsdexecutiondetˆaches,enimposantparexempledescontraintestemporellessur leurterminaison.Cestpourquoilessystemesconsideresicisontaussiappelessystemes reactifs, ouenfouis, ouabqruseem... Ces applications se trouvent dans des contextes de plus en plus critiques (avions, cen-tralesnucleaires,armes,...),necessitantundegrede abilitemaximum.Or,letestdepro-grammesTempsReelestparticulierementdicile,ainsiqueleurdebogage(reconstitution delasequencedevenementsayantconduitauncrash). LessystemesTempsReelontlongtempseteprogrammeesoitaumoyendeprimitives debasniveau,soitavecdeslangagesdeprogrammationduparallelisme:CSP,Ada,... Cette approche, diteasynchroneemtnpoepveledaualemetrˆeptse,etsinimreted-,estnon depreuvesdeproprietes. L’approchesynchrone-orp ccieSpetnsioatdseetmrnisiet.sriredesprogrammevesicea grammesdevrontfaciliterlaveri cationautomatiquedecertainesproprietesdusysteme, telle que l’absence de blocage.SIGNAL([1],[2],[3])est un des langages synchrones dispo-nibles, en meme temps que LUSTRE[4] et ESTEREL[5]. ˆ

6 INTRODUCTIONCHAPITRE 1. 1.2 Traitement complet d’un exemple : le VEILLEUR A ndedonneruneideeintuitivedecequestlaprogrammationdanscelangage SIGNAL, nous proposons de traiter et de commenter une application simple, mais assez complete:leprogrammeVEILLEUR.
1.2.1 Le probleme Un processus DEMANDEUR envoie des commandes a un EXECUTANT. Une com-mandedoiteˆtreexecuteedansuncertainDELAI,sinonilyaanomalie.Onappelle VEILLEUR laboitepoeiedhcqaeuocmmandevedeirecre edei.laleElcretcoiegrahc emise,ainsiquunsignaldelexecutantlorsquelacommandeprecedenteestterminee.Elle declencheunealarmesiundelaitroplong( xeenparametre)secouleentrecesdeux signaux. Siunenouvellecommandearrivealorsquelaprecedentenestpasachevee,lecomptage dutempsrecommenceazero.Unsignaldeterminaisonarrivantapresledelai,oune correspondantaaucunecommande,estanegliger.
1.2.2Lessignauxdentreeetdesortie. LeprocessusVEILLEURrecoitauninstantquelconquelavisdulancementdune commande. On supposera que cette commande est codee par un entier. Au cours de sa vie, le VEILLEUR recevra donc sur uneentreeappeleeCOMMANDEunesuite d’entiers, chacunauninstantprecis. Ilrecoitegalementsuruneautreentreedesavisdeterminaison.Ilsagitdunesimple information elementaire, appelee en SIGNALtnevemene, et codee par un ”booleen” toujours vrai (typeevent). Pour mesurer le temps a partir du lancement d’une commande, VEILLEUR utilise unonhreometrc)ntmenead,teTnPOveepyeeimpieunon(uulsiueiruq,riuliovneeext chaqueunitedetemps,parexemplechaqueseconde.Remarquerquelonnutilisepasle mothorlogemorbeennirmeapxopsedetSnesnesertuanuaierIsLADELeL.NAIG,qu decechronometre,cequievitedavoirasepreoccuperdelunitedetempsutilisee. Ensortie,VEILLEURproduituneALARMEchaquefoisqueleDELAIestdepasse apreslancementduneCOMMANDE.Lalarmepeuteˆtreunevent, ou mieux, l’HEURE alaquelleseproduitlalarme,heurecompteeparnumerotationdestopsdentree. Enresume,lesobjetsutilisessontdoncdessuites de valeursde divers types, chaque valeurdelasuiteetantpresenteauninstantdonne. Un tel objet est appelesignal. La suitedesinstantsouunsignalprendunevaleurestappeleel’horlogedu signal. Ceprocessusconsomme3signauxdentree:COMMANDE,TERMINEE,etleTOP duchronometreexterne.Ilproduitunsignaldesortie:ALARME.
1.2.3DeroulementduprocessusVEILLEUR. Pour gurerunscenariopossiblepourleprocessusVEILLEUR,onrepresenteletemps surunaxehorizontal,etlonnotepourchaquesignallesinstantsoucesignalestpresent, enyassociantsavaleur.Lessignauxseproduisantaumˆemeinstantsontrepresentessur lamˆemeverticale.
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin