Brevet FR2716017A1 — publié le 19950811

"Structure électronique multi-applications, et procédés pour sa mise en oeuvre" DESCRIPTION La présente invention concerne une structure électronique multi-applications. La présente invention concerne également des procédés pour la mise en oeuvre de cette structure électronique. I1 existe actuellement dans le commerce des composants du type microprocesseur ou microcontrôleur qui sont capables de plusieurs applications et, pour chaque application, comportent, des moyens logiciels et/ou matériels spécifiques. Ces composants comportent en pratique une série de broches de codage sur chacune desquelles le fabricant de l'appareil doit établir une entrée binaire permanente de façon que lesdites broches définissent ensemble un code de sélection d'application. En fonction de ce code, le composant fonctionne selon l'une déterminée de ses applications potentielles. Le composant comporte aussi d'autres broches pour son raccordement avec les ressources externes dont il a besoin pour fonctionner suivant l'application sélectionnée. I1 a été trouvé selon l'invention que la présence des broches de codage est peu avantageuse. La taille du composant est souvent si réduite que les broches du composant contribuent significativement à 11 encombrement global du composant sur le circuit imprimé. Un composant nécessitant de nombreuses broches doit être logé dans un boîtier présentant un périmètre suffisant pour que toutes les broches puissent être réparties avec un écartement convenable. La présence de broches supplémentaires peut donc conduire à augmenter la taille du boîtier du composant. Le but de la présente invention est ainsi de réduire ou supprimer le supplément d'encombrement résultant de la nécessité de coder un composant multiapplications. Suivant l'invention, la structure électronique multi-applications comprenant un composant muni de moyens logiciels définissant plusieurs applications potentielles et des moyens pour mettre en oeuvre une application sélectionnée en fonction d'un code parmi les diverses applications potentielles, est caractérisée en ce que les moyens logiciels comportent une étape de lecture du code dans la mémoire nonvolatile, et au moins une étape d'interaction, autre que le choix d'application, entre l'une au moins des applications potentielles et la mémoire non-volatile. Ainsi, la mémoire non-volatile, qui est de toutes façons nécessaire dans de très nombreux cas pour le fonctionnement de certaines au moins des applications du composant, est en outre utilisée pour stocker le code de sélection d'applications. I1 n'est plus nécessaire de prévoir une série de broches réservée en permanence à la définition du code de sélection d'applications. La mémoire non-volatile peut être intérieure ou extérieure au composant. Le chargement du code dans la mémoire peut être effectué par le fabricant de la mémoire. Le code peut également être chargé directement dans la mémoire ou par l'intermédiaire du composant, par le fabricant de l'appareil mettant en oeuvre le composant et la mémoire. Pour cela, la structure électronique peut comprendre des moyens sensibles à un signal d'annonce du chargement du code pour lancer un sous-programme de réception du code et de chargement de celui-ci comme code de sélection d'application dans la mémoire nonvolatile. Le signal d'annonce peut consister en une combinaison particulière d'états de la totalité ou de certaines prédéterminées des broches du composant ou de la mémoire non-volatile à un stade particulier de l'exécution du logiciel du composant. De préférence, ce stade particulier vient juste après le branchement de l'appareil. En pratique il peut s'agir d'un premier branchement effectué sur la chaîne de fabrication de l'appareil. Pour fournir d'une part l'information d'annonce du chargement du code, puis le code à charger dans la mémoire, on peut utiliser un dispositif du type "clé de programmation" que l'on raccorde provisoirement à un connecteur prévu à cet effet sur l'appareil, ou un dispositif du type "planche à clous" venant se connecter automatiquement sur les broches du composant ou de la mémoire. Le code lui-même peut être chargé sous forme parallèle à travers certaines broches prédéterminées du composant ou de la mémoire, ou encore sous forme série à travers une broche prédéterminée du composant ou de la mémoire. Lorsque le composant comporte un protocole de communication lui permettant de communiquer avec l'extérieur à travers un espace de communication bidirectionnelle tel que le réseau d'alimentation électrique, un réseau hertzien, un réseau filaire spécialisé, etc..., l'information d'annonce ou le code peut également être introduit par cette voie. I1 est également possible d'introduire l'information d'annonce puis le code, et non pas seulement l'un ou l'autre, à travers l'espace de communication, mais avec le risque que le composant en service chez l'utilisateur interprête comme un ordre de changement de code certaines perturbations arrivant à travers l'espace de communication. Pour réduire la probabilité d'apparition de telles anomalies, on pourra avantageusement combiner la transmission sur l'espace de communication avec une action physique prédéterminée sur l'appareil, par exemple appuyer sur un ou plusieurs boutons de l'appareil. Une fois que le code a été chargé, la ou les bornes, ou encore l'accès à l'espace de communication, qui ont été utilisés pour introduire l'information d'annonce puis le code de sélection, peuvent avoir une toute autre fonction pour le fonctionnement du composant en service, et notamment pour la mise en oeuvre de l'application sélectionnée. D'autres particularités et avantages de l'invention ressortiront encore de la description ci-après, relative à des exemples non limitatifs. Aux dessins annexés - la figure 1 est un schéma bloc d'une structure électronique multi-applications selon l'invention; - la figure 2 est un schéma bloc simplifié d'une variante de la structure de la figure 1 ; et - la figure 3 est un organigramme d'une partie des moyens logiciels de la structure de la figure 1 ou de la figure 2. Dans l'exemple représenté à la figure 1, le composant électronique 1, du type microcontrôleur, renferme des moyens logiciels 2 définissant diverses applications Al, A2A ...A2P, ...AN ainsi qu'un sousprogramme de sélection 3. Dans un but de schématisation, les applications ont été représentées séparées les unes des autres mais en pratique certaines ressources logicielles des moyens 2 peuvent être communes à plusieurs applications. Certaines applications sont très voisines les unes des autres, ce que l'on a schématisé en subdivisant l'application A2 en diverses variantes A2A ... A2P. Le composant 1 est également muni d'un protocole de communication 4 lui permettant de communiquer avec d'autres appareils à travers un espace de communication bidirectionnel 6, par l'intermédiaire d'une interface 7 ayant au moins un accès 12 relié à l'espace 6. L'espace 6 peut être constitué par le réseau d'alimentation électrique, auquel cas l'interface 7 est un modem assurant la conversion entre les signaux intelligibles par le composant 1 et les messages du type "courants porteurs" pouvant être véhiculés par l'espace 6. Comme indiqué schématiquement par la liaison 13, les différentes applications Al, A2A ... A2P, ...AN, ou au moins certaines d'entre d'elles, coopèrent avec une mémoire non-volatile 8 qui, dans l'exemple de la figure 1, est un composant séparé du microcontrôleur 1 et constitue une ressource externe de celui-ci. Le composant 1 comporte de multiples broches de raccordement C1, ... C22, etc (d'autres broches non représentées sont symbolisées par le trait mixte Cx). Ces broches sont reliées à diverses ressources externes 9 du microcontrôleur 1, qui ne sont pas autrement explicitées et qui sont montées autour du microcontrôleur en fonction de l'application selon laquelle celui-ci devra fonctionner dans l'appareil. L'interface 7 et la mémoire non-volatile 8 constituent également des ressources externes du microcontrôleur 1, raccordées au microcontrôleur 1 par certaines des broches Cx. Une autre ressource externe est constituée par une alimentation 10. La mémoire 8 comporte elle-même des broches M1 Mx, notamment pour son raccordement au microcontrôleur 1. Aucune broche du microcontrôleur 1 ou de la mémoire 8 n'est exclusivement réservée à une fonction de codage de l'application sélectionnée du microcontrôleur 1. Il est prévu dans la mémoire non-volatile 8 un emplacement mémoire 11 réservé au code de sélection d'application. Lors de la fabrication en usine de la mémoire, cet emplacement comporte un code initial, par exemple "1, 1, ..., 1". Certaines broches, C1 à Cg, reliées à l'alimentation 10 et respectivement à certaines des ressources 9 sont en outre reliées en dérivation à un connecteur 14 destiné à recevoir temporairement, à un certain stade de la fabrication de l'appareil, une clé de codage 16 faisant partie de l'outillage de fabrication de l'appareil. La clé de codage 16 comporte un connecteur 17 complémentaire du connecteur 14 de l'appareil, un codage physique 18 sous forme de présence ou d'absence de cavaliers sur une série de plots, et trois diodes électroluminescentes 19, 21, 22. Le connecteur 17 peut comprendre une partie alimentation. L'allumage de la diode 19 indique "codage et tests en cours" et celui n de la diode 21 indique "codage et tests réussis". La diode 22 clignote selon différents rythmes pour indiquer différents types d'anomalies relevées pendant le codage et les tests. Les tests seront décrits plus loin. On va maintenant décrire en référence à la figure 3 le procédé pour mettre en oeuvre la structure électronique de la figure 1. A la fabrication, avant la première mise sous tension, on place la clé de codage 16 sur le connecteur 14. Le codage physique 18 de la clé 16 correspond à l'application du composant l dans la série d'appareils en train d'être fabriquée. Lors de la mise sous tension (étape 26), la clé 16 est alimentée par son raccordement aux bornes C1 et C2, donc à l'alimentation 10 de l'appareil. Un test 27 recherche la présence d'un signal d'annonce. S'il s'agit de la première mise sous tension, le signal d'annonce sera systématiquement présent, en raison de la présence de la clé de codage 16, qui émet le signal d'annonce par exemple sous forme série à travers une borne C ou M déterminée sous forme parallèle par combinaison d'état d'un premier groupe des broches C3 à C9. Si le signal d'annonce est présent, le logiciel lance un sous-programme 28 de chargement du code de sélection commençant par une étape 29 d'attente du code pendant un délai déterminé par une temporisation. En pratique, le code pourra être chargé sous forme parallèle sur les bornes C3 à Cg reliées au connecteur 14 mais autres que celle(s) émettant le signal d'annonce. A la fin du délai, un test 31 détermine si le code reçu est valide. Comme un codage défectueux serait très préjudiciable puisqu'il mettrait l'ensemble de l'appareil hors d'état de fonctionner, le test de validité du code est sévère. D'une part on exclut le code correspondant à tous les bits au repos. Ce code est très susceptible d'être présent sur les broches et par conséquent d'être interprété comme un nouveau code au cas où le signal d'annonce serait imité par des parasites ou lancé par une anomalie. C'est pourquoi ce code à risque n'est, par précaution, affecté à aucune application. Par conséquent, s'il est reçu, cela correspond nécessairement à une erreur. D'autre part le code reçu doit être corroboré, par exemple par un nombre prédéterminé de répétitions et/ou par des bits de contrôle. Les répétitions peuvent résulter d'un nombre de cycles déterminés effectués par le logiciel, et à chacun desquels le même code doit être reçu en provenance de la clé. Si aucun code valide n'a été reçu à l'expiration du délai, l'exécution du sous-programme de chargement de code est avortée (sortie 32). Si un code valide a été reçu, une étape 33 commande l'effacement du code précédant dans la mémoire nonvolatile. Ensuite, un groupe d'étapes 34 effectue des opérations de contrôle et de détection des éventuels défauts sur la mémoire non-volatile 8 ainsi qu'un autotest sur les ressources internes du microcontrôleur 1, en particulier mémoire interne, temporisateurs, interface série etc. En effet, le sous-programme de chargement 28 est en pratique effectué dès que l'appareil a été fabriqué et il est très avantageux de profiter de l'opération de codage et de la mise sous tension qu'elle nécessite, pour effectuer des tests d'absence de défauts de fabrication. Si ces tests concluent à l'absence de défauts, une étape 36 commande le chargement du code en mémoire nonvolatile à la place du code, en général le code tel que "11...1", qui préexistait dans l'emplacement 11. On vérifie ensuite, (étape 37) si le code enregistré par la mémoire 8 est bien le meme que celui toujours présent sur les bornes correspondantes du composant 1. Puis une étape 38 effectue un test sur les ressources externes 9, c'est à dire sur leur compatibilité avec l'application sélectionnée et sur leur absence de défauts. L'étape 39 qui suit commande l'affichage du résultat des tests par les diodes électroluminescentes 21 et 22. Le sous-programme de chargement 28 aboutit alors à un cycle d'attente de débranchement 41. Autrement dit, une étape de chargement réussie du code ne peut pas directement déboucher sur un logiciel d'application. L'appareil doit d'abord être débranché puis remis sous tension (étape 26), à la suite de quoi le test 27, ne détectant cette fois aucun signal d'annonce, conduit à une étape 42 de lecture du code dans la mémoire nonvolatile en vue de faire fonctionner le microprocesseur 1 selon l'application et le cas échéant la variante d'application correspondant au code lu. Pendant le fonctionnement du microprocesseur 1 selon l'application sélectionnée, les accès (12, C1 Cx, M1 ... Mx) sont tous disponibles pour véhiculer des signaux qui sont sans rapport avec le signal d'annonce de chargement ou avec le code chargé. Pour éviter que des perturbations bloquent le fonctionnement du microprocesseur sur le sous-programme 28, une temporisation peut être lancée dès la réception du signal d'annonce pour provoquer un débranchement au bout d'un certain temps même si l'exécution du sousprogramme 28 n'et pas terminée. La réalisation que l'on vient de décrire a l'avantage que la clé de codage 16 peut être très simple et son cout réduit, car l'opération de codage exploite au maximum des ressources logicielles prévues dans le composant 1, notamment pour piloter l'enregistrement du code dans la mémoire 8. Mais comme représenté en pointillés en bas à droite de la figure 1, il est également possible que le connecteur 23 soit directement relié aux bornes M1, ... Mx de la mémoire 8 (ou à certaines d'entre elles seulement), pour recevoir une clé de codage 24 qui dans ce cas doit être reliée à des moyens informatiques externes 25 pour piloter l'enregistrement du code à la bonne adresse et sous la forme appropriée à l'intérieur de la mémoire 8. De manière non représentée, une telle utilisation de moyens informatiques externes est également concevable si le connecteur est raccordé à des bornes du composant 1 autres que celles raccordées à la mémoire 8, auquel cas le composant 1 ne sert plus que de relais entre le connecteur et la mémoire, et peut donc être programmé de manière plus simple. Dans l'exemple de la figure 2, qui ne sera décrit que pour ses différences par rapport au précédent, la mémoire non-volatile 58 fait partie intégrante du composant 51. Dans ce cas, la mémoire non-volatile n'a aucune borne accessible et par conséquent le chargement du code ne peut se faire qu'à la fabrication du composant 51, ou par une ou plusieurs de ses bornes Cx, ou par l'interface de communication. I1 en va de même pour le signal d'annonce de chargement. Bien entendu, l'invention n'est pas limitée aux exemples décrits et représentés. Bien que dans ceux-ci l'expression "structure électronique" couvre le composant 1 ou 51 et ses ressources externes, l'invention s'interprète également comme englobant, en tant que structure électronique, le composant capable de fonctionner seul ou non encore assemblé à ses ressources externes ou à toutes les ressources externes qui lui sont nécessaires en utilisation. On peut à volonté prévoir que le signal d'annonce est appliqué sous forme série ou sous forme parallèle et indépendamment de cela il en va de même pour le code lui-meme, d'une part entre la source extérieure telle que la clé 16 et le composant 1, d'autre part, et de manière encore indépendante de ce qui précède, entre le composant 1 et la mémoire 8. La présence d'un connecteur n'est pas indispensable, il est possible d'utiliser à la place de la clé un outillage de fabrication dit "planche à clous" que l'on applique directement sur celles des broches C1, ... Cx et/ou M1, ... Mx à travers lesquelles l'annonce et le codage doivent s'effectuer. Que ce soit ou non par l'intermédiaire d'un connecteur spécifique, il est encore possible d'envoyer le signal d'annonce puis le code sous forme de courants porteurs à travers l'accès extérieur 12 de l'interface 7. Même si la mémoire 8 est réalisée distincte du composant 1 (cas de la figure 1), il est concevable qu'elle soit dès sa fabrication chargée avec le code correspondant à l'application pour laquelle elle est spécifiquement prévue. REVENDICATIONS 1. Structure électronique multi-applications, comprenant un composant (1, 51) incorporant des moyens logiciels (2) définissant plusieurs applications potentielles (A1, A2A ... A2p, .. AN) et des moyens pour mettre en oeuvre une application sélectionnée en fonction d'un code parmi les diverses applications potentielles, caractérisée en ce que les moyens logiciels (2) comportent une étape (42) de lecture du code dans une mémoire non-volatile (8), et au moins une étape (13) d'interaction, autre que le choix d'application, entre l'une au moins des applications potentielles et la mémoire non-volatile. 2. Structure selon la revendication 1, caractérisée en ce que la structure incorpore la mémoire nonvolatile (58) sous forme intégrée dans le composant (51). 3. Structure selon la revendication 1, caractérisée en ce que la structure incorpore la mémoire nonvolatile (8) à l'extérieur du composant (1). 4. Structure selon l'une des revendications 1 à 3, caractérisée en ce qu'elle comprend des moyens sensibles à un signal d'annonce du chargement du code pour lancer un sous-programme (28) de réception du code et de chargement de celui-ci comme code de sélection d'application (11) dans la mémoire non-volatile (8, 58). 5. Structure selon la revendication 4, caractérisée en ce que les moyens sensibles (27) sont temporairement activés à la mise sous tension (26) de la structure et avant l'étape de lecture (42). 6. Structure selon la revendication 4 ou 5, caractérisée en ce que le sous-programme (28) comprend au moins une étape (34, 38) d'auto-test sur des ressources internes et/ou externes (4, 7, 8, 9, 58) du composant (1, 51). 7. Structure selon l'une des revendications 4 à 6, caractérisée en ce que le sous-programme (28) se termine par une étape (41) d'attente de débranchement. 8. Structure selon l'une des revendications 4 à 7, caractérisée en ce que les moyens sensibles et le sousprogramme font partie des moyens logiciels du composant (1, 51). 9. Structure selon l'une des revendications 1 à 8, caractérisée en ce qu'elle comprend en outre un connecteur de codage (14, 23) relié en dérivation à des bornes (C1 à Cg, Cx ; M1, ... Mx ; 12) de la structure. 10. Structure selon l'une des revendications 1 à 8, caractérisée en ce qu'elle comprend en outre un connecteur de codage (14 ; 23) relié en dérivation à des bornes (C1 à Cg, Cx) du composant (1) reliées par ailleurs à des ressources externes (8, 9, 10) du composant (1). 11. Structure selon la revendication 9, caractérisée en ce que le connecteur de codage (14) est relié en dérivation à des bornes (C1, C2) d'alimentation du composant. 12.Procédé pour mettre en oeuvre une structure selon l'une des revendications 1 à 11, caractérisé en ce qu'au cours d'une phase préparatoire on charge le code de sélection d'application sous forme série par une borne (C1, ... C22, Cx, M1, Mx) destinée en outre, en-dehors de la phase préparatoire, au transit de signaux autres que le code de sélection d'application. 13. Procédé pour mettre en oeuvre une structure selon l'une des revendications 1 à 11, caractérisé en ce qu'au cours d'une phase préparatoire on charge le code de sélection d'application sous forme parallèle par des bornes (C1, ... C22, Cx, M1, Mx) destinées en outre, en-dehors de la phase préparatoire, au transit de signaux autres que le code de sélection d'application. 14. Procédé selon la revendication 12 ou 13, caractérisé en ce qu'on charge le code par des bornes (C1, ... C2, Cx) du composant (1, 51). 15. Procédé selon l'une des revendications 12 à 14, caractérisé en ce qu'on charge le code par des bornes (M1, ... Mx) de la mémoire non-volatile (8), réalisée distincte du composant (1). 16. Procédé pour mettre en oeuvre une structure selon l'une des revendications 1 à 9, caractérisé en ce qu'au cours d'une phase préparatoire on charge le code de sélection d'application à travers un espace de communication bidirectionnelle (6) et une interface (7) de communication entre le composant (1), équipé d'un protocole de communication (4), et l'espace de communication (6). 17. Procédé selon l'une des revendications 12 à 16, caractérisé en ce qu'on initie la phase préparatoire en appliquant un signal d'annonce. 18. Procédé selon la revendication 17, caractérisé en ce qu'on applique le signal d'annonce sur au moins un accès de la structure différent de celui devant recevoir le code de sélection d'application. 19. Procédé selon l'une des revendications 12 à 18, caractérisé en ce que pendant la phase préparatoire on ne prend en compte le code de sélection d'application que s'il est différent d'un code prédéterminé comme érroné, dont tous les éléments correspondent à un état de repos. 20. Procédé selon l'une des revendications 12 à 19, caractérisé en ce que pour charger le code on relie temporairement à certaines au moins des bornes (C1 à Cg) de la structure une clé (16) comportant un codage physique (18). 21. Procédé selon la revendication 20, caractérisé en ce que la clé comporte des indicateurs (19, 21, 22) de déroulement du processus de codage. 22. Procédé selon l'une des revendications 20 ou 21, caractérisé en ce qu'on ne raccorde la clé (16) qu'à la structure électronique. 23. Procédé selon l'une des revendications 12 à 22, caractérisé en ce que pour charger le code on effectue un raccordement temporaire sur un connecteur (14) de la structure relié en dérivation à des bornes (C1, Cg; M1, ... mu ; 12) de la structure. 24. Procédé selon l'une des revendications 12 à 21 ou 23, caractérisé en ce que pour charger le code on réalise une liaison temporaire entre la structure et des moyens informatiques externes (25). 25. Procédé selon l'une des revendications 12 à 19, caractérisé en ce que pour charger le code on relie à certaines au moins des bornes de la structure un dispositif du genre planche à clous. 26. Clé de codage pour la mise en oeuvre du procédé selon l'une des revendications 20 à 22, comprenant des moyens de codage (18) et un connecteur (17) pour transmettre électriquement le code défini par les moyens de codage. 27. Clé de codage selon la revendication 26, caractérisée en ce que le connecteur (17) comprend une partie alimentation. 28. Clé de codage selon la revendication 26 ou 27, caractérisée en ce qu'elle comprend des moyens (19, 21, 22) indicateurs du déroulement du processus de codage. 29. Clé de codage selon l'une des revendications 26 à 28, caractérisée en ce qu'elle comprend des moyens pour émettre à travers le connecteur (17) un signal d'annonce de codage.