La lecture en ligne est gratuite
Télécharger

Publications similaires

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.