Brevet FR2657181A1 — publié le 19910719

- La présente invention a trait d'une façon générale au domaine des systèmes à microprocesseur, et concerne plus particulièrement un procédé et un dispositif pour associer à la réception d'impulsions de réinitialisation par un microprocesseur l'accès à des sous-programmes différents selon l'origine de l'impulsion. Dans le domaine de l'automobile notamment, les constructeurs exigent de façon classique que des systèmes électroniques équipés de microprocesseurs présentent une consommation en courant qui soit la plus faible possible. C'est pourquoi, typiquement, un tel microprocesseur est laissé en sommeil tant qu'aucune opération ne lui est demandée Sa consommation est alors extrêmement modérée (de l'ordre de 10 microampères). En outre, un tel microprocesseur est maintenant couramment utilisé pour remplir plusieurs fonctions, par appel de sous-programmes déterminés contenus dans sa mémoire morte. Pour réveiller le microprocesseur lorsqu'un sous- programme donné doit être effectué, on applique une impulsion soit sur sa borne d'entrée de réinitialisation RESET, soit sur sa borne d'entrée d'interruption INT. Dans la majorité des cas, ce sont en effet les deux seules bornes pouvant être sollicitées pour agir sur le fonctionnement du microprocesseur depuis l'extérieur. Par ailleurs, de façon tout à fait classique, on applique une impulsion RESET au microprocesseur à chaque fois que le système est remis sous tension. Ainsi, en théorie, seule la borne INT est disponible pour intervenir depuis l'extérieur sur le fonctionnement du microprocesseur. Et lorsque plusieurs organes du système sont associés au microprocesseur et doivent pouvoir le réveiller, ils partagent donc les accès par les bornes RESET et INT Mais la difficulté est que le microprocesseur ne peut alors pas faire immédiatement, 2 - dès son réveil, la distinction entre plusieurs origines possibles de ce réveil, alors qu'il serait souhaitable d'effectuer sans perte de temps le branchement vers le sous-programme approprié en relation avec l'organe qui a sollicité ce réveil. La présente invention vise à pallier ces inconvénients de la technique antérieure et à proposer un procédé qui permette au microprocesseur de distinguer entre une impulsion de réinitialisation liée à la mise sous tension du système et une impulsion de réinitialisation ayant une origine autre, et ce de façon tout à fait simple et économique. Elle concerne à cet effet un procédé pour associer à la réception d'une impulsion de réinitialisation par un microprocesseur l'accès à un sousprogramme particulier selon que l'impulsion est associée à une mise sous tension d'un système incorporant ledit microprocesseur ou qu'elle constitue une requête en provenance d'un autre organe du système, caractérisé en ce qu'il comprend les étapes consistant à: lors de la mise sous tension, faire varier d'un premier état vers un second état une information logique accessible par le microprocesseur seulement après un certain intervalle de temps après ladite mise sous tension, lors de chaque réception d'une impulsion de réinitialisation, effectuer une lecture de ladite information logique avant que ledit intervalle de temps soit écoulé, et selon que l'information logique est dans son premier état ou dans son second état, effectuer un branchement vers un sous-programme d'initialisation propre à une mise sous tension ou vers un sous-programme de traitement de ladite requête. Dans un premier mode de réalisation de l'invention, l'étape consistant à faire varier l'information logique est accomplie par un circuit connecté à une source de tension d'alimentation du microprocesseur et à une borne d'entrée/sortie dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique bas à un niveau logique haut seulement lorsque ledit intervalle de temps s'est écoulé. Dans un second mode de réalisation, l'étape consistant à faire varier l'information logique est accomplie par un circuit connecté à une source de tension d'alimentation du microprocesseur et à une borne d'entrée/sortie dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique haut à un niveau logique bas seulement lorsque ledit intervalle de temps s'est écoulé. Dans un troisième mode de réalisation, le premier état de l'information logique est donné par le contenu d'un emplacement d'une mémoire vive associée au microprocesseur immédiatement après la mise sous tension, et l'étape consistant à faire varier l'information logique est accomplie en donnant audit emplacement un contenu différent seulement à la fin du déroulement du sous-programme d'initialisation propre à la mise sous tension. L'invention concerne également un dispositif pour la mise en oeuvre du procédé ci-dessus, caractérisé en ce qu'il comprend un circuit connecté à une source de tension d'alimentation du microprocesseur et à une borne d'entrée/sortie dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique bas à un niveau logique haut, constituant le second état de l'information logique, seulement lorsque ledit intervalle de temps s'est écoulé. De façon préférée, le circuit comprend une résistance montée entre la source de tension d'alimentation du microprocesseur et la borne 4 d'entrée/sortie dudit microprocesseur et un condensateur monté entre ladite borne d'entrée/sortie et la masse. L'invention concerne enfin un dispositif pour la mise en oeuvra du procédé ci-dessus, caractérisé en ce qu'il comprend un circuit connecté à une source de tension d'alimentation du microprocesseur et à une borne d'entrée/sortie dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique haut à un niveau logique bas, constituant le second état de l'information logique, seulement lorsque ledit intervalle de temps s'est écoulé. Ce circuit comprend de préférence un condensateur monté entre la source de tension d'alimentation du microprocesseur et la borne d'entrée/sortie dudit microprocesseur et une résistance montée entre ladite borne d'entrée/sortie et la masse. D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif et faite en référence aux dessins annexés, sur lesquels: la figure 1 est un schéma partiel d'un circuit selon la présente invention pour la mise en oeuvre d'un procédé selon une première forme de réalisation de l'invention, la figure 2 est un chronogramme illustrant le comportement du circuit de la figure 1, et la figure 3 est un diagramme logique permettant d'expliquer la mise en oeuvre d'un procédé selon une seconde forme de réalisation de l'invention. En référence tout d'abord à la figure 1, on a représenté un microprocesseur MP qui comporte classiquement une unité centrale de traitement CPU, une mémoire vive RAM, une mémoire morte ROM contenant des programmes et des ports d'entrée-sortie Il s'agit par - exemple d'un microprocesseur qui incorpore ces divers organes dans un boîtier unique Pour sa communication avec l'extérieur, le microprocesseur comprend en particulier une entrée de réinitialisation RESET et une entrée d'interruption INT, de façon tout à fait classique. On trouve également un certain nombre de bornes d'entrées/sorties I/O (ici au nombre de quatre et désignées par I/Oo à I/03 reliées au port d'entrée/sortie IOP incorporé au boîtier. L'une de ces bornes, en l'espèce la borne I/Os, est reliée à une première borne d'une résistance R et à une première borne d'un condensateur C L'autre borne du condensateur est reliée à la masse (Ov), tandis que l'autre borne de la résistance est reliée à la tension d'alimentation VDD (par exemple + 5 v) du microprocesseur. Dans le présent exemple, la borne d'entrée RESET est utilisée pour réveiller le microprocesseur d'une part lors de la mise sous tension du système, et d'autre part lors de l'ouverture et de la fermeture des accès du véhicule en utilisant une clé introduite dans la serrure de l'une des portes, afin d'effectuer un branchement vers un sous-programme de validation de l'ordre reçu (distinction entre l'ordre et un signal parasite accidentel) et d'exécution de l'ordre validement reçu Le dispositif correspondant est schématiquement indiqué en et comprend un circuit 110 propre à engendrer une impulsion de réinitialisation convenant au microprocesseur. En outre, le microprocesseur MP est programmé de telle sorte qu'à chaque réception d'une impulsion de réinitialisation sur son entrée RESET, il exécute dans un délai très court et avant toute autre opération une lecture de l'information présente sur la borne d'entrée sortie I/03, à des fins expliquées plus loin. -6- Par ailleurs, la borne d'entrée INT reçoit un signal qui provoque le réveil du microprocesseur lors- qu'un signal infrarouge de verrouillage/déverrouillage des accès est reçu au niveau d'un récepteur approprié (non représenté), de manière à appeler de façon classique le sous-programme de vérification par comparaison du code reçu dans le signal infrarouge et d'un code mémorisé dans la mémoire vive ou dans la mémoire morte. On va maintenant expliquer en référence au chronogramme de la figure 2 le fonctionnement du circuit décrit ci-dessus. Tout d'abord, lorsqu'à l'instant t O se produit une mise sous tension du système, la tension VDD passe brusquement de O à + 5 v Au contraire, la tension Vl sur la borne I/03, étant donné la constante de temps du circuit RC appliqué à son entrée, ne croît de O à + 5 V que beaucoup plus lentement, comme illustré. De la sorte,>le signal logique Dl sur cette entrée ne passe du niveau bas " O " au niveau haut " 1 " qu'à un instant noté t 2 situé bien après l'instant t O, le retard de t 2 par rapport à t O étant noté 5 t. De plus, à l'instant t O, une impulsion est appliquée à l'entrée RESET du microprocesseur. Suite à cette mise sous tension, le microprocesseur, à un instant tl qui est choisi lors de la conception du programme de manière à être situé avant t 2, lit la donnée présente sur I/03 et constate qu'il s'agit d'un " O " logique. C'est cette lecture d'un "O" qui permet au microprocesseur de constater que l'impulsion de réinitialisation est une impulsion de réinitialisation à la mise sous tension Il peut donc effectuer un branchement vers un sousprogramme d'initialisation des paramètres, mise à zéro des mémoires, etc, effectué conventionnellement par le micro-processeur à la mise sous tension. 7 - Plus tard, lorsque le microprocesseur reçoit une autre impulsioin de réinitialisation sur son entrée RESET (instant t 3),'de la même manière que précédemment, il va lire à l'instant t 4 l'information logique présente sur l'entrée I/03 Et étant donné que durant cette période, aucun changement n'est venu affecter la tension VDD, cette information est et reste au niveau logique " 1 " lors de l'opération de lecture à l'instant t 4. C'est cette lecture d'un " 1 " logique qui dans ce cas permet au microprocesseur d'identifier la réinitialisation comme provenant non pas d'une mise sous tension, mais d'une autre origine (en l'occurence une tentative de verrouillage ou déverrouillage des accès du véhicule à l'aide de la clé). Ainsi, par des moyens aussi simples qu'économiques, le microprocesseur est capable d'établir une distinction tout à fait fiable (et simple à mettre en oeuvre sur le plan du logiciel: lecture d'un port et branchement conditionnel) entre une réinitialisation associée à une mise sous tension du système et une réinitialisation associée à toute autre opération qu'un élément du système demande au microprocesseur d'effectuer. On notera ici, comme indiqué plus haut, que les positions de la résistance et du condensateur telles que représentées sur la figure 1 peuvent être permutées Dans ce cas, lors de la mise sous tension, la tension appliquée à l'entrée I/03 passe lentement de + 5 v à O v, tandis qu'en régime permanent, elle reste constamment à O v Et c'est le retard affecté au passage du niveau haut au niveau bas lors de la mise sous tension qui permet de distinguer une réinitialisation à la mise sous tension d'un autre type de réinitialisation. On a représenté sur la figure 3 un autre mode de réalisation de l'invention. 8 - Dans ce second mode, la réception d'une impulsion de réinitialisation sur l'entrée RESET du microprocesseur (étape 10) déclenche le branchement sur un sous-programme donné selon lecfuel: on teste le contenu d'un emplacement déterminé M de la mémoire vive RAM du microprocesseur (étape 20); dans le cas o ce contenu est différent d'une valeur logique K, on se branche sur un sous-programme (appelé ici INIT 1) qui correspond aux opérations devant être effectuées par le microprocesseur à la suite d'une mise sous tension du système (paramétrages, mise à zéro de la mémoire et des registres,); et à la fin de l'exécution du sous-programme INIT 1 (étape 30), on charge l'emplacement déterminé M avec la valeur logique K (étape 35); Dans le cas o le contenu de M est égal à K, alors on se branche sur un autre sous-programme appelé INIT 2, qui correspond à des opérations devant être effectuées lorsque la réinitialisation n'a pas pour origine une mise sous tension du système (étape 40) Il peut s'agir comme dans l'exemple précédent d'un sous-programme de validation et d'exécution d'un ordre de verrouillage/déverrouillage des accès du véhicule. Le programme décrit ci-dessus se comporte de la façon suivante: lorsque l'impulsion de réinitialisation est associée à une remise sous tension du système, l'emplacement M contient une valeur qui est différente de la valeur K, puisque par construction toute la mémoire s'est vidée lors de l'arrêt précédent du système. L'initialisation par INIT 1, correspondant à une mise sous tension, est donc effectuée, puis la valeur K est chargée dans l'emplacement M. Lorsque, sans mise hors-tension intermédiaire du système, une autre impulsion de réinitialisation est appliquée à l'entrée RESET, alors il est constaté à l'étape 20 que l'emplacement mémoire M contient bien K, 9 - et le branchement est donc effectué sur le sous-programme INIT 2 chargé de la gestion de ce second type de réinitialisati'on. Il faut noter que, pour un fonctionnement correct de ce second mode de réalisation, la valeur K doit être différente de la valeur que contient l'emplacement considéré M de la mémoire suite à la remise sous tension du système Dans le cas o cette mémoire, par construction, est entièrement remplie de zéros logiques lors d'une mise sous tension, il suffit en pratique de choisir une valeur K différente de zéros, et d'un nombre de bits tout à fait quelconque Au contraire, si la mémoire ne contient à la remise sous tension que des niveaux logiques " 1 ", il suffit d'utiliser pour la valeur de K un mot contenant au moins un zéro logique, et'à la limite un seul bit à zéro. En revanche, si par construction la mémoire RAM contient lors d'une remise sous tension une répartition aléatoire de " O " et de " 1 " logiques, alors il faut que K soit sous la forme d'un mot présentant le plus grand nombre possible de bits, afin d'éviter qu'accidentellement le contenu de M à la mise sous tension soit égal à la valeur prédéterminée K. Bien entendu, la présente invention n'est nullement limitée à la forme de réalisation décrite ci- dessus et représentée sur les dessins, mais l'homme de l'art saura y apporter toute variante ou modification conforme à son esprit. En particulier, bien que l'on ait décrit la présente invention dans une application o l'on cherche à effectuer une distinction entre un réveil du microprocesseur par une mise sous tension, un réveil pour le verrouillage/déverrouillage des accès à distance et un réveil pour le verrouillage/déverrouillage des accès par clé, il est bien entendu que l'invention s'applique à des distinctions de types et de natures tout à fait - quelconques; par exemple l'impulsion de réinitialisation ou d'interruption peut être appliquée dans le cadre d'un apprentissage par le microprocesseur d'un nouveau code de commande à distance, ou encore de l'échange de données avec un calculateur d'injection électronique du moteur, auquel peut être relié le micro-processeur. Plus généralement, bien que l'on ait décrit la présente invention dans le contexte d'un système à microprocesseur pour des fonctions annexes d'un véhicule automobile, il est bien entendu qu'elle peut s'appliquer avantageusement dès qu'un microprocesseur d'un type quelconque doit pouvoir faire la distinction entre une réinitialisation liée à une mise sous tension et une réinitialisation adressée à lui par un autre organe du système et tenant lieu dans la pratique d'interruption prioritaire. il - REVENDICATIONS 1 Proeédé pour associer à la réception d'une impulsion de réinitialisation (RESET) par un microprocesseur (MP) l'accès à un sous- programme particulier (INIT 1; INIT 2) selon que l'impulsion est associée à une mise sous tension d'un système incorporant ledit microprocesseur ou qu'elle constitue une requête en provenance d'un autre organe ( 100) du système, caractérisé en ce qu'il comprend les étapes consistant à: lors de la mise sous tension, faire varier d'un 1 u premier état vers un second état une information logique accessible par le microprocesseur seulement après un certain intervalle de temps ( 5 t) après ladite mise sous tension, lors de chaque réception d'une impulsion de réinitialisation, effectuer une lecture de ladite information logique avant que ledit intervalle de temps soit écoulé, et selon que l'information logique est dans son premier état ou dans son second état, effectuer un branchement vers un sous-programme d'initialisation (INI Tl) propre à une mise sous tension ou vers un sous- programme (INIT 2) de traitement de ladite requête. 2 Procédé selon la revendication 1, caractérisé en ce que l'étape consistant à faire varier l'information logique est accomplie par un circuit (R, C) connecté à une source de tension d'alimentation (VDD) du microprocesseur et à une borne d'entrée/sortie (I/O) dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique bas à un niveau logique haut seulement lorsque ledit intervalle de temps ( 5 t) s'est écoulé. 3 Procédé selon la revendication 1, caractérisé en ce que l'étape consistant à faire varier l'information logique est accomplie par un circuit (R, C) connecté à une source de tension d'alimentation (VDD) du 12 - microprocesseur et à une borne d'entrée/sortie (I/03) dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique haut à un niveau logique bas seulement lorsque ledit intervalle de temps ( 5 t) s'est écoulé. 4 Procédé selon la revendication 1, caractérisé en ce que le premier état de l'information logique est donné par le contenu d'un emplacement (M) d'une mémoire vive associée au microprocesseur immédiatement après la mise sous tension et en ce que l'étape consistant à faire varier l'information logique est accomplie en donnant audit emplacement un contenu (K) différent seulement à la fin du déroulement du sous-programme d'initialisation (INIT 1) propre à la mise sous tension. 5 Dispositif pour la mise en oeuvre du procédé selon la revendication 1, caractérisé en ce qu'il comprend un circuit (R, C) connecté à une source de tension d'alimentation (VOD) du microprocesseur et à une borne d'entrée/sortie (I/03 > dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un niveau logique bas à un niveau logique haut, constituant le second état de l'information logique, seulement lorsque ledit intervalle de temps ( 3 t) s'est écoulé. 6 Dispositif selon la revendication 5, caractérisé en ce que le circuit comprend une résistance (R) montée entre la source de tension d'alimentation (Vnn) du microprocesseur et la borne d'entrée/sortie (I/03) dudit microprocesseur et un condensateur (C) monté entre ladite borne d'entrée/sortie et la masse. 7 Dispositif pour la mise en oeuvre du procédé selon la revendication 1, caractérisé en ce qu'il comprend un circuit connecté à une source de tension d'alimentation (Von) du microprocesseur et à une borne d'entrée/sortie (I/03) dudit microprocesseur et agencé pour appliquer à ladite borne un signal qui passe d'un 13 - niveau logique haut à un niveau logique bas, constituant le second état de l'information logique, seulement lorsque ledit-intervalle de temps s'est écoulé. 8 Dispositif selon la revendication 5, caractérisé en ce que le circuit comprend un condensateur monté entre la source de tension d'alimentation (VDD) du microprocesseur et la borne d'entrée/sortie (I/03) dudit microprocesseur et une résistance montée entre ladite borne d'entrée/sortie et la masse.