Brevet FR3084938A1 — publié le 20200214

B17042 - 17-GR2-0631 1 MICROCONTROLEUR Domaine La présente description concerne le domaine des microcontrôleurs et plus particulièrement les interconnexions des différentes fonctions d'un microcontrôleur. Exposé de l'art antérieur Un microcontrôleur est généralement un circuit intégré qui rassemble les fonctions électroniques essentielles d'un ordinateur par exemple : unité de traitement de données ou processeur, mémoires (mémoire morte et mémoire vive) et interfaces d'entrées-sorties. Les différentes fonctions électroniques d'un microcontrôleur sont généralement connectées les unes aux autres par l'intermédiaire d'un bus. Les différentes interconnexions à l'intérieur d'un microcontrôleur sont faites de manière filaire. Ainsi, le 15 positionnement des différentes fonctions est limité par ces interconnexions. De plus, le nombre de fonctions est limité aux fonctions intégrées lors de la fabrication du microcontrôleur. Résumé 20 Un mode de réalisation pallie tout ou partie des inconvénients des microcontrôleurs usuels. B17042 - 17-GR2-0631 2 Un mode de réalisation prévoit un microcontrôleur comprenant des fonctions électroniques distinctes et un circuit d'interconnexion adapté à transmettre, sans fil, des données entre lesdites fonctions. 5 Selon un mode de réalisation, au moins une fonction comprend une unité de traitement de données et au moins une fonction comprend une mémoire. Selon un mode de réalisation, les différentes fonctions électroniques ne sont pas connectées entre elles par une connexion 10 filaire. Selon un mode de réalisation, une fonction électronique comprend une interface d'entrée/sortie. Selon un mode de réalisation, l'interface d'entrée/sortie comprend des connexions filaires avec des 15 périphériques. Selon un mode de réalisation, le circuit d'interconnexion est un routeur wifi. Selon un mode de réalisation, le circuit d'interconnexion comprend une unité de traitement de données, un 20 routeur, une mémoire, et un circuit d'émission/réception de données. Selon un mode de réalisation, un mode d'utilisation comprend les étapes suivantes : a. déterminer les fonctions électroniques 25 présentes ; b. si des fonctions électroniques dont les caractéristiques de configuration ne sont pas contenues dans la mémoire sont présentes, écrire leurs caractéristiques de configuration dans la mémoire du circuit d'interconnexion ; et 30 c. si des fonctions électroniques dont les caractéristiques de configuration sont contenues dans la mémoire sont absentes, effacer leurs caractéristiques de configuration de la mémoire du circuit d'interconnexion. B17042 - 17-GR2-0631 3 Selon un mode de réalisation, les étapes a, b et c sont effectuées périodiquement au cours du fonctionnement du microcontrôleur. Selon un mode de réalisation, la période est comprise 5 entre environ 1 ms et environ 10 s. Selon un mode de réalisation, le mode d'utilisation comprend les étapes suivantes : d. déterminer un programme à exécuter ; e. déterminer les fonctions électroniques 10 utilisées par ce programme ; f. déterminer si ces fonctions électroniques sont disponibles ; g. rendre inaccessibles ces fonctions électroniques à d'autres programmes ; h. établir une connexion sans fil entre les fonctions électroniques ; et exécuter le programme. Selon un mode de réalisation, chaque fonction électronique comprend un circuit d'émission/réception de données. Selon un mode de réalisation, le circuit d'interconnexion est adapté à détecter l'ajout et/ou le retrait de fonctions électroniques dans le microcontrôleur. Selon un mode de réalisation, le circuit d'interconnexion et au moins certaines des fonctions électroniques 25 sont alimentées sans fil. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation 30 avec les figures jointes parmi lesquelles : la figure 1 illustre schématiquement un mode de réalisation d'un microcontrôleur ; la figure 2 illustre plus en détail une partie du microcontrôleur de la figure 1 ; et B17042 - 17-GR2-0631 4 la figure 3 illustre un mode d'utilisation du microcontrôleur de la figure 1. Description détaillée De mêmes éléments ont été désignés par de mêmes 5 références dans les différentes figures. Par souci de clarté, seuls les éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, Sauf précision contraire, les expressions 10 "approximativement", "environ", "sensiblement", et "de l'ordre de" signifient à 10 près, de préférence à 5 près. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie que ces éléments sont directement connectés sans élément intermédiaire autre que 15 des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être directement reliés (connectés) ou reliés par l'intermédiaire d'un ou plusieurs autres éléments. La figure 1 illustre schématiquement un mode de 20 réalisation d'un microcontrôleur 100. Le microcontrôleur 100 comprend, dans cet exemple, sept fonctions électroniques distinctes et un circuit d'interconnexion 116 (INTERCONNECT). Plus précisément, ces fonctions comprennent ici deux unités de traitement de données ("Central Processing Unit") 102 (CPU1) et 104 (CPU2), deux mémoires 106 (MEM1) et 108 (MEM2), un circuit d'alimentation 110 (POWER), des horloges 112 (TIMERS), une interface d'entrée/sortie 114 (PERIPH). En pratique, le microcontrôleur 100 peut comprendre un nombre quelconque de fonctions électroniques, mais au moins une 30 unité de traitement de données et au moins une mémoire. Le circuit d'interconnexion 116 est adapté à transmettre, sans fil, des données entre différentes fonctions électroniques du microcontrôleur 100. Par données, on entend tous signaux requis, qu'il s'agisse d'adresses, de données proprement 35 dites ou de commandes. Chaque fonction électronique du B17042 - 17-GR2-0631 5 microcontrôleur comprend donc un circuit adapté à recevoir et à émettre des données. Ces circuits d'émission/réception permettent d'établir une connexion sans fil entre les différentes fonctions, par l'intermédiaire du circuit d'interconnexion, et sont par 5 exemple compatibles les uns avec les autres. Le circuit d'alimentation 110 est par exemple un circuit d'alimentation sans fil. Les différentes fonctions électroniques pouvant faire partie du microcontrôleur sont alors adaptées à être alimentées par un tel circuit d'alimentation 110. 10 Les mémoires 106 et 108 sont par exemple des mémoires volatiles ou non-volatiles. L'interface d'entrée/sortie 114 est un circuit formant une interface entre des périphériques, non représentés, et le microcontrôleur 100. Les périphériques sont par exemple reliés à 15 l'interface 114 par des connexions filaires 118. Des données peuvent donc être transmises entre les périphériques et le microcontrôleur 100 par l'intermédiaire d'une connexion filaire, entre les périphériques et l'interface 114, et par l'intermédiaire d'une connexion sans fil, entre l'interface 114 et les fonctions 20 internes au microcontrôleur 100. Des fonctions électroniques, adaptées à fonctionner avec le circuit d'interconnexion 116, peuvent être ajoutées ou retirées du microcontrôleur à tout moment et en nombre quelconque. Pour ce faire, ces fonctions sont placées à portée du circuit 25 d'interconnexion 116. Le circuit 116 est par exemple un routeur wifi. Un autre exemple de circuit d'interconnexion 116 est décrit en relation avec la figure 2. La figure 2 illustre plus en détail une partie du 30 microcontrôleur de la figure 1. Le circuit 116 (INTERCONNECT) comprend : - une unité de traitement de données 202 (CPU) comprenant par exemple des circuits logiques 204 (LOGIC) et un séquenceur 205 (SEQUENCER) ; 35 - une mémoire 206 (MEM) ; B17042 - 17-GR2-0631 6 - un routeur 208 (ROUTER) ; et - un circuit 210 d'émission/réception radiofréquence (RADIO). Le circuit 116 comprend, en outre, un circuit 5 d'alimentation, non représenté, par exemple adapté à être alimenté par le circuit 110 d'alimentation sans fil (illustré en figure 1) . Le routeur 208 et le circuit 210 d'émission/réception permettent la transmission de données entre les différentes 10 fonctions du microcontrôleur 100. La figure 3 illustre un mode d'utilisation du microcontrôleur de la figure 1 comprenant un circuit d'interconnexion 116 tel que décrit en relation avec la figure 2. Au cours d'une première étape 302 (INIT), le 15 microcontrôleur 100 est initialisé. Les différentes fonctions électroniques présentes sont activées. En particulier, le circuit 110 d'alimentation est mis en fonctionnement, ce qui permet d'alimenter les autres fonctions. De plus, les fonctions électroniques et le circuit d'interconnexion 116 sont initialisés 20 de manière à être prêts à fonctionner. Au cours d'une étape 304 (DETECT FONCTIONS) postérieure à l'étape 302, le circuit d'interconnexion 116 détecte les fonctions électroniques présentes, c'est-à-dire disponibles pour le microcontrôleur 100. Le circuit 116 détecte par exemple les 25 fonctions électroniques situées à portée du circuit 116. Le circuit 116 détermine ensuite, à une étape 306 (NEW FONCTIONS ?), si des fonctions électroniques qu'il n'avait pas détectées précédemment, c'est-à-dire des fonctions dont les caractéristiques de configuration ne sont pas contenues en mémoire 206, sont présentes. Si c'est le cas, (branche 308, YES), le circuit 116 enregistre, dans la mémoire 206, les caractéristiques de configuration de chaque nouvelle fonction. Cela correspond à une étape 310 (ADD INFO TO MEM). Par caractéristiques de configuration, on désigne les caractéristiques permettant par exemple de transmettre les données, de déterminer les fonctions B17042 - 17-GR2-0631 7 entre lesquelles doivent être transmises des données, et de déterminer si les fonctions présentes sont suffisantes pour exécuter un programme donné. Par exemple, dans le cas où la fonction est une mémoire, 5 le circuit 116 enregistre par exemple le type de mémoire (ROM, RAM, Flash etc.), la taille de la mémoire, certaines adresses spécifiques, la vitesse de la mémoire, etc. Dans le cas d'une mémoire comprenant des programmes, par exemple une mémoire non volatile, le circuit 116 enregistre le nombre de programmes 10 contenus dans la mémoire et les ressources, c'est-à-dire les types et nombre de fonctions électroniques, utilisées pour l'exécution du programme. Après l'étape 310, ainsi que dans le cas où le circuit 116 ne détecte pas de fonctions électroniques qu'il n'avait pas 15 détecté précédemment (branche 312, NO), le circuit 116 détermine si certaines fonctions dont les caractéristiques de configuration sont contenues dans la mémoire 206 sont absentes ou inaccessibles (étape 314, MISSING FONCTIONS ?). Si c'est le cas, c'est-à-dire si certaines de ces fonctions ne sont plus présentes (branche 316, 20 YES), le circuit 116 efface les caractéristiques correspondant à ces fonctions de la mémoire 206 (étape 318, REMOVE INFO FROM MEM). Après l'étape 318, ainsi que dans le cas où le circuit 116 détermine que toutes les fonctions dont les caractéristiques de configuration sont contenues dans la mémoire 206 sont présentes 25 et accessibles (branche 320, NO), le circuit 116 passe à l'étape suivante (étape 322). A titre de variante, les étapes 314 et 318 peuvent être effectuées avant les étapes 306 et 310 ou peuvent être effectuées simultanément. 30 Les étapes 304 à 318 forment un ensemble d'étapes 321. L'ensemble 321 peut être répété au cours du fonctionnement du microcontrôleur 100. Par exemple, l'ensemble 321 est répété périodiquement, par exemple avec une période comprise entre environ 1 ms et environ 10 s, par exemple comprise entre environ B17042 - 17-GR2-0631 8 7,5 ms et environ 4 s. L'ensemble 321 est par exemple effectué avant chaque étape 322. Par la suite, le circuit 116 détermine si des programmes cherchent à être exécutés (étape 322, PROGRAM TO RUN?), par 5 exemple sur instruction d'une unité de traitement de données. Par programme, on désigne toute activité du microcontrôleur 100 dans laquelle des données sont transmises entre différentes fonctions du microcontrôleur. Le circuit 116 peut par exemple permettre l'exécution de plusieurs programmes simultanément. 10 Si aucun programme n'est à exécuter (branche 324, NO), le circuit d'interconnexion 116 est en attente. Si au moins un programme est à exécuter (branche 326, YES), le circuit 116 détermine, par exemple par l'intermédiaire des circuits logiques 204, si les fonctions utilisées par ce programme sont présentes 15 et disponibles (étape 328, FONCTIONS AVAILABLE ?). Par exemple, si le programme consiste en l'écriture ou la lecture de données dans une mémoire, les fonctions utilisées sont par exemple une unité de traitement de données et une mémoire. Si au moins une de ces fonctions n'est pas présente ou 20 n'est pas disponible (branche 330, NO), le circuit 116 passe à un autre programme et revient à l'étape 322. Si toutes les fonctions utilisées par le programme sont présentes et disponibles (branche 332, YES), ces fonctions sont bloquées (étape 334, LOOK RESSOURCES), par exemple par les circuits logiques 204, c'est-à- 25 dire qu'elles ne sont plus disponibles pour d'autres programmes pouvant chercher à les utiliser. A titre de variante, certaines fonctions peuvent être adaptées à exécuter plus d'un programme à la fois. Ces fonctions sont alors considérées indisponibles lorsqu'elles exécutent simultanément le nombre maximal de 30 programmes. Une fois cette étape effectuée, une connexion sans fil est établie, par l'intermédiaire du circuit d'émission/réception 210 et du routeur 208, entre les fonctions utilisées par le programme (étape 336, CONNECTION BETWEEN FONCTIONS) et le 35 programme est lancé (étape 338, RUN PROGRAM), par l'intermédiaire B17042 - 17-GR2-0631 9 des circuits logiques 204. Après le lancement du programme, le circuit 116 détermine si un autre programme doit être exécuté (étape 322). Si une fonction est retirée, par exemple n'est plus à 5 portée du circuit 116 ou est éteinte, les programmes utilisant cette fonction sont soit redirigés vers une autre fonction similaire, soit mis en attente, soit arretés. Les caractéristiques de configuration des programmes peuvent par exemple comprendre des instructions pour un tel cas. 10 Un avantage des modes de réalisation décrits est qu'il est possible de former un microcontrôleur dont le nombre de fonctions n'est pas limité par l'espace disponible et le nombre de connexions filaires. Il est donc possible d'ajouter, au besoin, des fonctions, par exemple des mémoires, des unités de traitement 15 de données etc. Un autre avantage des modes de réalisation décrits est que les composants peuvent être physiquement éloignés les uns des autres. Un autre avantage des modes de réalisation décrits est 20 qu'il n'est plus nécessaire de prévoir de connexions filaires internes au microcontrôleur, ce qui entraine une diminution du coût de fabrication. Divers modes de réalisation avec diverses variantes ont été décrits ci-dessus. D'autres variantes apparaitront à l'homme 25 de l'art. On notera que l'homme de l'art REVENDICATIONS1. Microcontrôleur (100) comprenant des fonctions électroniques (102, 104, 106, 108, 110, 112, 114) distinctes et un circuit d'interconnexion (116) adapté à transmettre, sans fil, des données entre lesdites fonctions. 2. Microcontrôleur selon la revendication 1, dans lequel au moins une fonction comprend une unité de traitement de données (102, 106) et au moins une fonction comprend une mémoire (106, 108). 3. Microcontrôleur selon la revendication 1 ou 2, dans 10 lequel les différentes fonctions électroniques ne sont pas connectées entre elles par une connexion filaire. 4. Microcontrôleur selon l'une quelconque des revendications 1 à 3, dans lequel une fonction électronique comprend une interface d'entrée/sortie (114). 15 5. Microcontrôleur selon la revendication 4, dans lequel l'interface d'entrée/sortie (114) comprend des connexions filaires (118) avec des périphériques. 6. Microcontrôleur selon l'une quelconque des revendications 1 à 5, dans lequel le circuit d'interconnexion est 20 un routeur wifi. 7. Microcontrôleur selon l'une quelconque des revendications 1 à 6, dans lequel le circuit d'interconnexion comprend une unité de traitement de données (202), un routeur (208), une mémoire (206), et un circuit d'émission/réception de 25 données (210). 8. Microcontrôleur selon la revendication 7, dans lequel un mode d'utilisation comprend les étapes suivantes : a. déterminer les fonctions électroniques présentes (304) ; 30 b. si des fonctions électroniques dont les caractéristiques de configuration ne sont pas contenues dans la mémoire sont présentes (306), écrire leurs caractéristiques de configuration dans la mémoire du circuit d'interconnexion (308) ; et B17042 - 17-GR2-0631 11 c. si des fonctions électroniques dont les caractéristiques de configuration sont contenues dans la mémoire sont absentes (314), effacer leurs caractéristiques de configuration de la mémoire du circuit d'interconnexion (318). 5 9. Microcontrôleur selon la revendication 8, dans lequel les étapes a, b et c sont effectuées périodiquement au cours du fonctionnement du microcontrôleur. 10. Microcontrôleur selon la revendication 9, dans lequel la période est comprise entre environ 1 ms et environ 10 s. 11. Microcontrôleur selon l'une quelconque des revendications 8 à 10, dans lequel le mode d'utilisation comprend les étapes suivantes : d. déterminer un programme à exécuter (322) ; e. déterminer les fonctions électroniques 15 utilisées par ce programme (328) ; f. déterminer si ces fonctions électroniques sont disponibles (328) ; g. rendre inaccessibles ces fonctions électroniques à d'autres programmes (334) ; 20 h. établir une connexion sans fil entre les fonctions électroniques (336) ; et exécuter le programme (338). 12. Microcontrôleur selon l'une quelconque des revendications 1 à 11, dans lequel chaque fonction électronique 25 comprend un circuit d'émission/réception de données. 13. Microcontrôleur selon l'une quelconque des revendications 1 à 12, dans lequel le circuit d'interconnexion (116) est adapté à détecter l'ajout et/ou le retrait de fonctions électroniques dans le microcontrôleur (100). 30 14. Microcontrôleur selon l'une quelconque des revendications 1 à 13, dans lequel le circuit d'interconnexion et au moins certaines des fonctions électroniques sont alimentées sans fil.