Temps réel/Approches sans exécutif

De Polima.

Il existe deux techniques :

  • Scrutation logicielle
  • Technique des interruptions

Sommaire

Scrutation logicielle des E/S

  • L'évènement modifié une bascule du registre d'état.
  • Le uP lit régulièrement certains bits de certains registres d'états.

On est capable de borner le temps maximum d’exécution de la boucle.

A comparer avec la dynamique du procédé et donc avec les contraintes de temps associé

=> solution acceptable

Technique des interruptions

L'interface d'entrée lit la valeur du capteur d'entrée.

Si temps > 21 alors l'interface génère le signal INT.

Interruption.png

Programme d'Interruption

A chaque Instruction du programme principal :

  • Le uP regarde si le signal INT est actif
  • Si oui :
    • Il mémorise l'adresse de l'instruction en cours et le contenu des registres manipulés (sauvegarde du contexte)
    • Il exécute le programme d'interruption
    • Il restaure le contexte pour retrouver l'adresse de la dernière instruction traitée au niveau du programme principal
  • Il reprend l'exécution du programme principal

Le uP doit savoir à quelle adresse le programme d'INT se situe.

On mémorise l'adresse du début du programme d'INT à un endroit spécifique de la mémoire : table des vecteurs.

Architecture matérielle

Il existe 4 architecture possibles :

  • Interruption directe
  • Interruption directe et scrutation
  • Scrutation câblée (daisy chain)
  • Utilisation d'un contrôleur d'interruption

Scrutation câblée (daily chain)

  • L'interface qui veut interrompre le uP émet le signal IRQ
  • Le uP répond généralement le signal IRQA
  • L'interface le reçoit sur l'entrée E1, elle bloque ce signal et émet le numéro du vecteur correspondant au programme d'interruption à exécuter, sinon elle transmet le signal sur la sortie E0

Temps d'attente

Tempslatencerecouvrement.png

  • Δ0 : temps de production du signal logique INT
  • Δ1 : temps de détection du signal INT par le uP
  • Δ2 : temps de sauvegarde du contexte
  • Δ3 : temps de recherche de l'adresse du programme d'interruption