fren

Temps réel


      La gestion du temps est l'un des problèmes majeurs des systèmes. La raison est simple : les système modernes étant souvent multitâches, ceci oblige le système à partager le temps du processeur entre les différentes tâches. Cette notion de partage implique une gestion du passage d'une tâche à l'autre qui est effectuée par un ensemble d'algorithmes appelé ordonnanceur (scheduler en anglais).

      Un système temps réel est une association logiciel/matériel où le logiciel permet, entre autre, une gestion adéquate des ressources matérielles en vue de remplir certaines tâches ou fonctions dans des limites temporelles bien précises.

      Au coeur du noyau se trouve le scheduleur qui gère le microcontrôleur, assure la gestion du temps et l’ordonnancement des différentes tâches.

Une tâche est une boucle infinie réalisant une fonction ou un traitement de donnée

       RTS_S12 est un noyau multitâche entièrement préemptif. Le scheduleur gère les tâches avec des niveaux de priorité définis par l’application. Il peut à tout instant interrompre une tâche pour activer une autre en fonction des évènements internes ou externes (interruptions, appels bloquants, ...)

De par sa structure, RTS_S12 peut être linké avec un programme en phase de test; ou être ROMé pour des applications finales.

Description de l’application temps réel traitée ci après :

interactions

Cette application d’initiation au traitement temps réel a été testée sur notre système AS12. Elle peut également être réalisée sur nos autres systèmes :

  • LC 11 piloté par microcontrôleur 68HC11
  • LC 51 piloté par microcontrôleur 8051
  • LC PIC piloté par microcontrôleur PIC de Microchip
  • LAS12S nouveau système intégrant bus CAN, réseau, USB piloté par 68HC12S

Dans cette application, il est demandé de réaliser une alarme qui se déclenchera si la température dépasse un seuil définit. Le noyau temps réel RTS S12 sera chargé de gérer cette application en temps réel.

  • l’affichage de l’heure, horloge temps réel
  • l’affichage de la température
  • le réglage de déclenchement de l’alarme
  • d’activer le relais lorsque la valeur de la température atteint le seuil programmé
  • de désactiver le relais

Pour ce faire, nous allons découper le programme en cinq sous tâches temps réel qui s’exécuteront simultanément. Ces tâches sont :

tâche Relais : gère le relais,

Cette tâche active le relais lorsque la température atteint le seuil d’alarme préprogrammé Elle utilise le clavier pour stopper l’alarme (désactiver l'alarme en appuyant sur la touche * du clavier).

tâche Horloge : affiche l’heure,

Elle utilise les ressources de l’horloge temps réel pour permettre à l’utilisateur de visualiser sur l’afficheur LCD les heures, minutes et secondes.

tâche Clavier : teste le clavier,

Elle a besoin de la ressource clavier matricé et permet de traiter la touche appuyée.

tâche Capteur de Température : affiche la température,

Elle utilise les ressources du capteur de température pour permettre à l’utilisateur de visualiser la température sur l’afficheur LCD.

tâche Réglage de l’alarme : enregistrer le seuil de température.

tâche Clavier : teste le clavier,

l’appui sur la touche # permet le réglage de la température de seuil en entrant à l’aide du clavier la valeur du seuil de déclenchement de l’alarme. Cette valeur sera affichée sur l’afficheur LCD qui va mémoriser cette valeur .

Puis le scheduleur qui gère toutes les taches réaffichera l’heure et la T° sur le LCD,

Il en résulte la création de sous fonctions à certaines tâches.

  • La fonction LCD, qui affichera selon le besoin l’heure ou la température. Elle sera appelée par les tâches Horloge et Capteur Température.
  • La fonction Relais, qui sera appelée par la tâche Relais. Cette fonction permet d’activer ou de désactiver le relais.
  • La fonction test Clavier, qui sera appelée par la tâche Clavier. Cette fonction scrutera le clavier matricé et retournera la touche pressée à son appelant.
  • La fonction Réglage sera appelée par la tâche Réglage de l’alarme. Cette fonction retournera une variable qui permettra de mettre à jour les variables alarme, suivant l’appelant.

Conception générale : les interactions

interactions