Brevet FR2912521A1 — publié le 20080815

Génération de signal périodique à gigue nulle Arrière-plan de l'invention La présente invention se rapporte au domaine général de la génération d'un signal périodique par un microprocesseur. Plus précisément, l'invention concerne la génération d'un signal périodique à gigue nulle, c'est-à-dire que le signal ne subit pas de fluctuations notables au cours de sa génération. Par exemple, les fluctuations du signal peuvent être un glissement de phase ou une dispersion temporelle. Dans certaines applications, de telles fluctuations ne sont pas admissibles. Par exemple, le pilotage d'un afficheur LCD nécessite de pouvoir envoyer vers cet afficheur un signal périodique ne présentant aucun retard. Un microprocesseur pilotant un afficheur LCD doit donc être apte à générer un tel signal. Or, un microprocesseur gère plusieurs flots d'exécutions correspondant à la mise en oeuvre d'un ou plusieurs logiciel(s) embarqué(s). Dans les cas les plus simples, le microprocesseur gère un flot dit tâche de fond et des interruptions. La tâche de fond réalise en boucle des traitements à faire en permanence, par exemple un calcul lié à une régulation thermique. Une telle régulation peut être réalisée par le système de ventilation, de chauffage et/ou de climatisation d'un véhicule. Les interruptions sont déclenchées par un évènement externe, par exemple, l'appui sur une touche de clavier, ou par un évènement interne. Elles viennent interrompre la tâche de fond pour réaliser un traitement court. Pour des raisons d'intégrité des données, il est nécessaire d'interdire les 25 interruptions pour une durée très courte. Cette interdiction engendre un retard sur le traitement des interruptions. Si une interruption est utilisée pour générer un signal carré, par exemple, l'observation de ce signal montrera ce retard. On a vu précédemment qu'un tel retard n'est pas acceptable dans certaines applications. Par exemple, lorsque le passager du 30 véhicule appuie sur un bouton du tableau de commande pour passer de 20 C à 21 C, la conséquence de l'interruption correspondant à l'évènement externe correspondant à l'enfoncement du bouton du tableau de commande serait alors affichée avec un certain retard au niveau du LCD du tableau de commande. En d'autres termes, l'apparition de l'information 21 C n'apparaîtrait pas immédiatement ce qui n'est pas admissible. 35 Il est donc nécessaire de pouvoir interdire certaines interruptions, par exemple, celles résultant de manipulations du clavier sans interdire d'autres interruptions, par exemple, une interruption générant un signal périodique destiné à un afficheur LCD. Il existe des microprocesseurs incluant des gestionnaires d'interruption, permettant, lors de l'exécution d'un logiciel, de ne pas masquer toutes les interruptions et donc, de permettre, à certaines interruptions, de ne jamais subir de retard. Cependant, tous les microprocesseurs ne possèdent pas un gestionnaire d'interruption, notamment pour des raisons de coûts. Dans un tel cadre, il n'est actuellement pas possible de garantir la génération par logiciel d'un signal de pilotage sans retard. Objet et résumé de l'invention La présente invention a pour but principal de permettre la génération d'un signal périodique sans retard indépendamment de la présence ou de l'absence d'un gestionnaire d'interruption au sein d'un microprocesseur. Dans ce but, l'invention propose un microprocesseur apte à effectuer une action périodique à gigue nulle indépendamment de la présence ou de l'absence d'un gestionnaire d'interruptions, ledit microprocesseur comprenant au moins une entrée d'interruption externe non masquable, le microprocesseur étant tel que l'entrée de l'interruption non masquable est câblée à une horloge générant un signal d'horloge et tel que l'interruption non masquable est liée à un logiciel qui, lorsqu'exécuté par le microprocesseur, permet que celui-ci effectue l'action à chaque réception d'un évènement du signal d'horloge sur l'entrée d'interruption non masquable. Avec un tel microprocesseur, l'activation de l'interruption non masquable, généralement externe, par le signal périodique envoyé par l'horloge, permet la génération, par un logiciel activé par l'interruption non masquable, d'une action sans retard, par exemple un signal carré destiné au pilotage d'un afficheur LCD. En effet, quels que soient les flots d'exécution en cours de traitement par le microprocesseur, l'interruption externe non masquable est ainsi définie qu'elle les interrompt. Selon une caractéristique particulière de l'invention, le signal d'horloge est dans un état nul, un état non nul, un changement d'état de non-nul à nul ou un changement d'état de nul à non-nul. Selon une autre caractéristique particulière de l'invention l'action périodique est l'émission d'un signal sur une ou plusieurs sortie(s) du microprocesseur. Avec une telle caractéristique, la génération d'un signal périodique sans retard est rendue possible par voie logicielle sans recours à un gestionnaire d'interruptions. Avantageusement, dans le cadre de la génération d'un signal, la sortie du microprocesseur sur laquelle le signal généré est émis est constituée d'une ou plusieurs sortie(s) tout ou rien. L'utilisation d'une telle sortie, par exemple un port 0-5V, permet une réalisation simple de la génération d'un signal périodique. Le signal périodique généré est avantageusement destiné à contrôler le fonctionnement d'un afficheur LCD. Selon une caractéristique avantageuse de l'invention, l'action est réalisée durant une durée égale à la durée de l'état non--nul du signal d'horloge. Avec une telle caractéristique, l'action est bordée par la durée de l'état non nul du signal d'horloge et systématiquement périodique et régulière sans que d'autres paramètres n'entrent en jeu. Il est également possible de prévoir une durée arbitraire pendant laquelle l'action a lieu après son déclenchement par l'évènement du signal d'horloge reçu sur l'entrée d'interruption non masquable. Néanmoins l'action générée peut également être d'une durée inférieure ou supérieure à la durée de l'état non-nul du signal d'horloge tout en étant calée sur la périodicité du signal d'horloge. L'action peut ainsi durer une demi-période, une période complète ou encore une pluralité de périodes, l'invention permettant, dans tous les cas, un déclenchement périodique et sans retard de l'action. Selon un mode de réalisation avantageux de l'invention, l'horloge est une horloge du microprocesseur. Cette réalisation de l'invention est particulièrement simple puisqu'il s'agit simplement de boucler l'horloge du microprocesseur sur l'entrée ou une des entrées d'interruption externes non masquables du microprocesseur. Il est néanmoins possible d'utiliser une horloge externe pour mettre en oeuvre l'invention. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 illustre le mécanisme de gestion des flots d'exécution par un 30 microprocesseur ; - la figure 2 montre les inconvénients rencontrés avec les microprocesseurs connus ; - la figure 3 montre le retard introduit par les interdictions d'interruptions avec les microprocesseurs connus ; 35 -la figure 4 montre un mode de réalisation d'un microprocesseur selon l'invention ; - la figure 5 représente l'effet de l'invention au niveau de la gestion des interruptions. Description détaillée d'un mode de réalisation La figure 1 représente schématiquement le fonctionnement d'un microprocesseur exécutant une tâche de fond 1 qui peut être interrompu par des interruptions 2. La tâche de fond :1 réalise en boucle des traitements à faire en permanence, par exemple un calcul lié à une régulation thermique. Une interruption 2 est un arrêt temporaire de l'exécution normale d'un programme informatique, notamment la tâche de fond 1, par le microprocesseur afin d'exécuter un autre programme 3 généralement appelé routine d'exécution. Chaque interruption 2 a lieu à l'occurrence d'un évènement externe, par exemple à l'appui sur une touche de clavier ou, à l'occurrence d'un évènement interne, 15 par exemple un signal d'horloge du microprocesseur. Les interruptions viennent donc interrompre la tâche de fond 1 pour réaliser un traitement court 3, ainsi que représenté sur la figure 1. Une fois le traitement court 3 réalisé, le microprocesseur exécute à nouveau la tâche de fond 1. Ainsi que représentée sur la figure 1, la tâche de fond 1 est généralement 20 bouclée sur elle-même. Pour des raisons d'intégrité des données manipulées lors du traitement réalisé par la tâche de fond 1, les interruptions peuvent être ponctuellement interdites pendant des durées courtes. La figure 2 représente une zone d'interruption interdite 1'. Lorsqu'un 25 évènement 4 a lieu pendant cette zone d'interruption interdite 1', l'interruption permettant le traitement 3 lié à l'évènement 4, a alors lieu à la fin de la zone d'interruption interdite 1'. Cela engendre un retard 5 du traitement 3. Un tel retard 5 peut avoir des conséquences dommageables pour certaines applications. La figure 3 illustre un cas où le retard entre l'évènement 4 et le traitement 3 lié 30 à l'évènement 4 engendre un problème. Elle s'intéresse à la génération d'un signal carré tel que, théoriquement représenté sous la référence 10. Lorsque des zones d'interruption interdites entrent en conflit avec le traitement 3 permettant, périodiquement, la génération de ce signal carré théorique 10 par le microprocesseur, on obtient le signal 1]l sur lequel on observe un retard 5 pour le 35 deuxième et le cinquième créneau. Un tel retard n'est parfois pas acceptable. C'est, par exemple, le cas pour le pilotage d'un afficheur LCD qui est un composant sensible aux irrégularités du signal d'alimentation. Ces irrégularités engendrent une détérioration de l'afficheur. L'invention propose une solution pour éviter la présence d'un tel retard pour une interruption particulière indépendamment de la présence ou de l'absence d'un gestionnaire d'interruption au sein du microprocesseur. L'invention utilise la présence d'une entrée d'interruption non masquable. Une telle interruption non masquable est une interruption matérielle qui ne peut pas être inhibée ou ignorée par le microprocesseur et qui est toujours transmise à l'unité centrale lors de son déclenchement. Le microprocesseur va donc nécessairement déclencher le traitement correspondant à cette interruption non masquable. On parle aussi parfois d'interruptions critiques . Une telle interruption matérielle est généralement utilisée pour détecter et signaler des erreurs matérielles, par exemple la détection d'une erreur mémoire. Le déclenchement d'une interruption non masquable, qui est une interruption matérielle, ne peut pas être empêché par logiciel et n'est donc pas affecté par les zones d'interruption interdite. La figure 4 décrit un mode de réalisation de l'invention. Il s'agit d'un microprocesseur 20 possédant une horloge 21 qui génère une impulsion 20 périodiquement sous forme d'un signal d'horloge 24. Le microprocesseur 20 est par ailleurs muni d'au moins une entrée d'interruption non masquable 22. Cette entrée 22 est généralement externe ainsi que représentée dans ce mode de réalisation et apte à être connectée matériellement. Un microprocesseur selon l'invention est réalisé en faisant un câblage externe 25 23 entre l'horloge 21 et l'entrée d'interruption non masquable 22. L'interruption non masquable 22 est liée à l'exécution d'un logiciel 3' permettant la génération d'un signal périodique 10' sur un port de sortie tout ou rien 25 du microprocesseur 20. Dans l'exemple proposé ici, le logiciel 3' est apte à déclencher le passage de 0 à 30 1 sur la sortie 25 du microprocesseur 20 dès qu'un signal non-nul est détecté à l'entrée de l'interruption non masquable 22. La durée D de chaque impulsion du signal 10' est ici directement corrélée avec la durée du signal d'horloge 24 émis par l'horloge 21. Dans ce cas, la durée D est celle du signal d'horloge 24. La durée D peut aussi être une durée arbitraire correspondant 35 aux besoins du système piloté par le signal 10' disponible en sortie du microprocesseur 20. Elle peut notamment être un multiple des périodes du signal d'horloge ou au contraire une fraction de cette période. Comme le signal émis ne présente aucun retard, le pilotage de l'afficheur LCD peut être réalisé directement à l'aide de l'invention, et ce entièrement par logiciel en utilisant une sortie d'horloge 21, une entrée d'interruption non masquable 22 et un port de sortie tout ou rien 25 en sortie du microprocesseur 20. Comme le signal ne présente aucun retard, les signaux générés à l'aide du microprocesseur 20 selon l'invention ne présentent pas de risques de dégrader prématurément l'afficheur et ce, même en l'absence d'un quelconque gestionnaire d'interruption permettant le masquage de toutes les interruptions sauf celles qui génèrent les signaux pour l'afficheur LCD. L'invention permet donc d'économiser le coût de l'implémentation d'un matériel dédié à la commande d'un affichage LCD. La figure 5 illustre l'effet de l'invention sur la gestion des interruptions. Une première interruption 2, non reliée à une interruption non masquable, est représentée. L'évènement 4 lié à l'interruption 2 se produit durant une zone d'interruption interdite 1'. Le traitement 3 est alors effectué avec un retard 5 à l'issue de la zone d'interruption interdite 1'. En revanche, la deuxième interruption 2' est une interruption non masquable. Elle est liée à un évènement externe 4', par exemple un signal d'horloge non-nul produit à l'entrée d'interruption non masquable 22, ayant lieu durant une zone d'interruption interdite 1". Grâce à la connexion de l'évènement externe 4' à l'entrée d'interruption non masquable, l'évènement 4' engendre une interruption immédiate 2'. Le traitement 3' a alors lieu immédiatement sans retard, interrompant la zone d'interruption interdite 1" avant qu'elle ne soit poursuivie une fois le traitement 3' réalisé. L'utilisation de l'interruption non masquable 22 permet que ne soit pas gênée l'exécution du logiciel 3' correspondant à l'occurrence de l'évènement externe 4'. L'interdiction des interruptions non liées à une interruption non masquable n'empêche donc pas le traitement 3' d'être réalisé sans retard par le microprocesseur. On remarque enfin que diverses mises en oeuvre peuvent être réalisées selon les principes de l'invention. Notamment, l'invention est applicable dès lors qu'il est souhaitable de pouvoir exécuter une action périodique, ayant comme contrainte, l'absence de tout décalage ou encore, plus particulièrement, une gigue nulle. REVENDICATIONS 1. Microprocesseur [20] apte à effectuer une action périodique à gigue nulle indépendamment de la présence ou de l'absence d'un gestionnaire d'interruptions, ledit microprocesseur [20] comprenant au moins une entrée d'interruption externe non masquable [22], le microprocesseur [20] étant tel que l'entrée de l'interruption non masquable [22] est câblée à une horloge [21] générant un signal d'horloge [24] et tel que l'interruption non masquable [22] est liée à un logiciel [3'] qui, lorsqu'exécuté par le microprocesseur [20], permet que celui-ci effectue l'action à chaque réception d'un évènement du signal d'horloge [24] sur l'entrée d'interruption non masquable [22]. 2. Microprocesseur selon la revendication 1, caractérisé en ce que le signal d'horloge [24] est dans un état nul, un état non nul, un changement d'état de non-nul à nul ou un changement d'état de nul à non-nul. 3. Microprocesseur selon la revendication 1 ou 2, caractérisé en ce que l'action périodique est l'émission d'un signal [10'] sur une ou plusieurs sortie(s) [25] du microprocesseur [20]. 20 4. Microprocesseur selon la revendication 3, caractérisé en ce que la sortie [25] est une ou plusieurs sortie(s) tout ou rien. 5. Microprocesseur selon l'une des revendications 3 et 4, caractérisé en ce que le signal périodique [10] est destiné à contrôler le fonctionnement d'un afficheur LCD. 6. Microprocesseur selon l'une des revendications 1 à 5, caractérisé en ce que l'action est réalisée durant une durée [D] égale à la durée de l'état non-nul du signal d'horloge [24]. 30 7. Microprocesseur selon l'une des revendications précédentes, caractérisé en ce que l'horloge [21] est une horloge du microprocesseur. 25