Brevet FR2977690A1 — publié le 20130111

PROCEDE D'INITIALISATION DE REGISTRES D'ORGANES PERIPHERIQUES DANS UN MICROCONTROLEUR La présente invention concerne les microcontrôleurs et en particulier les microcontrôleurs comportant des organes périphériques. Les microcontrôleurs comprennent généralement une unité centrale, des mémoires dont une mémoire volatile et une mémoire non volatile, et s plusieurs organes périphériques tels que des contrôleurs de bus externe, des compteurs, des convertisseurs analogiques / numériques, des convertisseurs numériques / analogiques, etc. Certains microcontrôleurs présentent un mode de veille dans lequel certains de leurs circuits et notamment tout ou partie de leurs organes Io périphériques sont mis hors tension à des fins d'économie d'énergie. Généralement, la sortie du mode de veille est effectuée lors de l'arrivée d'un événement extérieur, et doit pouvoir être effectuée aussi rapidement que possible, notamment afin de réagir avec un temps de réponse acceptable à l'événement extérieur. ls Les microcontrôleurs exécutent généralement une procédure d'initialisation à la mise sous tension du microcontrôleur et lors de la sortie du mode de veille. Cette procédure d'initialisation permet notamment de placer dans un état prédéfini des registres d'état et d'accès aux organes périphériques. Cette procédure d'initialisation est généralement définie sous 20 la forme d'une séquence d'instructions stockée dans une mémoire programme non volatile du microcontrôleur et est exécutée par l'unité centrale du microcontrôleur. La séquence d'instruction d'initialisation comprend généralement pour chaque registre à initialiser, une instruction de lecture d'une valeur d'initialisation dans la mémoire non volatile et une 25 instruction d'écriture de la valeur lue dans le registre. Cette séquence d'initialisation peut également être effectuée par une unité de transfert DMA (Direct Memory Access) préalablement programmée par l'unité centrale du microcontrôleur. Il en résulte que l'initialisation du microcontrôleur est relativement 30 coûteuse en termes de temps d'exécution, de consommation d'énergie et d'occupation de la mémoire non volatile. Le temps d'exécution de cette procédure d'initialisation, relativement important, a pour conséquence de limiter le recours au mode de veille, et de donc de limiter davantage les économies d'énergie susceptibles d'être réalisées. Il est donc souhaitable de prévoir un moyen permettant d'initialiser s des registres d'organes périphériques, qui ne pénalise pas la durée d'activation du microcontrôleur à la suite de la mise sous tension ou de la sortie d'un mode de veille du microcontrôleur. Des modes de réalisation concernent un procédé d'initialisation de registres d'organes périphériques d'un microcontrôleur, comprenant des io étapes consistant à : accéder à des données d'initialisation dans une mémoire non volatile reliée par un bus principal à une unité de traitement du microcontrôleur et aux organes périphériques, activer un organe périphérique comportant des registres à initialiser, et transférer les données lues dans les registres de l'organe périphérique activé. Selon un mode de ls réalisation, les accès aux données d'initialisation dans la mémoire sont effectués par un circuit d'initialisation distinct de l'unité de traitement, les données d'initialisation accédées étant transmises aux organes périphériques par un bus d'initialisation distinct du bus principal. Selon un mode de réalisation, les accès à la mémoire non volatile par 20 le bus principal sont prioritaires sur ceux effectués par le bus d'initialisation, les accès aux registres d'organe périphérique par le bus d'initialisation étant prioritaires sur ceux requis par le bus principal. Selon un mode de réalisation, le procédé comprend une étape de sélection de plusieurs registres de l'organe périphérique activé, de 25 transmission de plusieurs mots d'initialisation d'un registre d'organe périphérique simultanément par le bus d'initialisation, et de chargement des mots d'initialisation transmis dans les registres sélectionnés de l'organe périphérique activé. Selon un mode de réalisation, plusieurs organes périphériques sont 30 activés simultanément pour recevoir chacun simultanément au moins un mot d'initialisation de registre. Selon un mode de réalisation, plusieurs mots d'initialisation de plusieurs registres d'un organe périphérique sont transmis simultanément par le bus d'initialisation et chargés dans des registres sélectionnés de 35 l'organe périphérique en un cycle du signal d'horloge du microcontrôleur. Selon un mode de réalisation, le circuit d'initialisation assure le transfert de requêtes d'accès à la mémoire transmises par le bus principal et le transfert des données lues dans la mémoire vers le bus principal, en réponse aux requêtes d'accès. s Des modes de réalisation concernent également un microcontrôleur comprenant une unité de traitement, des organes périphériques comportant des registres à initialiser, et un bus principal reliant l'unité de traitement aux organes périphériques et à une mémoire non volatile. Selon un mode de réalisation, le microcontrôleur comprend un circuit d'initialisation pour io initialiser des registres d'organes périphériques, le circuit d'initialisation reliant le bus principal à la mémoire et étant relié aux organes périphériques par un bus d'initialisation, le circuit d'initialisation étant configuré pour mettre en oeuvre le procédé défini précédemment. Selon un mode de réalisation, le bus d'initialisation présente une ls largeur correspondant à plusieurs mots d'initialisation d'un registre d'organe périphérique. Selon un mode de réalisation, le circuit d'initialisation est relié à chaque organe périphérique par une liaison d'activation pour activer l'organe périphérique afin d'initialiser les registres de l'organe périphérique, et une 20 liaison de transmission d'un signal de sélection d'un mot d'initialisation de registre d'organe périphérique dans une donnée transmise par le bus d'initialisation. Selon un mode de réalisation, le circuit d'initialisation est relié à chaque organe périphérique par plusieurs liaisons d'activation pour activer 25 l'organe périphérique afin d'initialiser les registres de l'organe périphérique, chaque liaison d'activation étant associée à une liaison de transmission d'un signal de sélection d'un mot d'initialisation de registre d'organe périphérique dans une donnée transmise par le bus d'initialisation. Selon un mode de réalisation, chaque organe périphérique comprend 30 un circuit d'interface configuré pour sélectionner un registre et un mot d'initialisation de registre dans une donnée transmise par le bus d'initialisation et charger le mot sélectionné dans le registre sélectionné. Selon un mode de réalisation, le circuit d'initialisation comprend des circuits de mémorisation d'une adresse de base de stockage dans la 35 mémoire de données d'initialisation des registres d'organe périphérique, et pour chaque organe périphérique, un nombre de registres à initialiser, et des indicateurs signalant si l'organe périphérique doit ou non être initialisé et signalant si l'organe périphérique a été ou non initialisé. Selon un mode de réalisation, chaque organe périphérique comprend s un circuit d'interface connecté au bus principal et au bus d'initialisation et configuré pour donner priorité aux requêtes d'accès reçues par le bus d'initialisation sur celles reçues par le bus principal. Des exemples de réalisation de l'invention seront décrits dans ce qui io suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente schématiquement un microcontrôleur comprenant un circuit d'initialisation de registres d'organes périphériques, selon un mode de réalisation, la figure 2 représente schématiquement le microcontrôleur et en ls particulier le circuit d'initialisation selon un mode de réalisation, la figure 3 représente la structure d'un registre d'état du circuit d'initialisation, la figure 4 représente schématiquement une interface d'entrée d'un organe périphérique du microcontrôleur, selon un mode de réalisation, 20 les figures 5 et 6 représentent schématiquement des circuits de l'interface d'entrée de la figure 4, selon des modes de réalisation, la figure 7 représente un exemple de données d'initialisation de registres d'organes périphériques stockés dans une mémoire non volatile du microcontrôleur, 25 la figure 8 représente des chronogrammes de signaux échangés entre une unité de traitement et des organes périphériques du microcontrôleur, durant une phase d'initialisation, selon un mode de réalisation. La figure 1 représente un microcontrôleur MC selon un mode de 30 réalisation. Le microcontrôleur comprend une unité de traitement PU et éventuellement une unité de transfert DMA (Direct Memory Access), une mémoire volatile VM, une mémoire non volatile NVM, et des organes périphériques PHI, PH2, ... PHn. L'unité PU, l'unité DMA et les organes PH1-PHn sont reliés à un bus principal d'adresse et de donnée ADB du 35 microcontrôleur MC. Les organes PH1-PHn peuvent comprendre un ou 2977690 s plusieurs contrôleurs de bus externe, un ou plusieurs compteurs (timer), un ou plusieurs convertisseurs analogiques / numériques, un ou plusieurs convertisseurs numériques / analogiques, etc. La mémoire VM est par exemple de type RAM ou SRAM et la mémoire NVM peut être de type Flash s ou EEPROM. Selon un mode de réalisation, la mémoire NVM est reliée au bus ADB par l'intermédiaire d'un circuit d'initialisation AINT relié par ailleurs aux organes périphériques par un bus d'initialisation ITB, pour initialiser des registres des organes périphériques PH1-PHn. Ainsi, les organes PH1-PHn io sont connectés à la fois au bus ADB et au bus ITB. Le circuit AINT est configuré pour lire dans la mémoire NVM des données d'initialisation de registres des organes PH1-PHn et transmettre les données lues aux organes PH1-PHn concernés durant une phase d'initialisation du microcontrôleur MC. La figure 2 représente le microcontrôleur MC et en particulier, le ls circuit AINT selon un mode de réalisation. Le circuit AINT est relié à chacun des organes périphériques PH1-PHn par l'intermédiaire du bus ITB et de liaisons de contrôle CTP. Le circuit AINT comprend un circuit de contrôle FSM, un circuit d'arbitrage ARB commandé par le circuit FSM, un démultiplexeur DMX commandé par le circuit ARB et un circuit de conversion 20 de protocole PRCV connecté au bus ITB et aux liaisons de contrôle CTP. Le circuit ARB est connecté en entrée au bus ADB et en sortie à une entrée d'adressage de la mémoire NVM. Le démultiplexeur DMX est connecté en entrée à une sortie de donnée de la mémoire NVM et comprend une sortie connectée au bus ADB et une sortie connectée au circuit PRCV. Le circuit 25 FSM comprend par exemple une machine d'état qui est initialisée et activée sur réception d'un signal d'initialisation RS. Le circuit FSM est configuré pour émettre des ordres de lecture dans la mémoire NVM de données d'initialisation des registres des organes PHI, PHn, et pour fournir au circuit PRCV, pour chaque donnée adressée dans la mémoire NVM, des signaux 30 indiquant le ou les registres d'organes PH1-PHn, destinataires de la donnée. Le circuit ARB est configuré pour retransmettre à la mémoire NVM des ordres de lecture provenant soit du bus ADB, issus de l'unité PU ou DMA, soit du circuit FSM en donnant la priorité aux ordres de lecture transmis par le bus ADB. Le démultiplexeur DMX est commandé par le circuit ARB pour 35 transmettre les données lues dans la mémoire NVM soit au bus ADB lorsque celles-ci correspondent à un ordre de lecture reçu du bus ADB, soit au circuit PRCV lorsque la mémoire NVM a été adressée par le circuit FSM pour lire des données d'initialisation de registres des organes PH1-PHn. Le circuit PRCV est configuré pour activer des organes PH1-PHn en fonction des s données d'initialisation de registre reçues de la mémoire NVM et transmises par le démultiplexeur DMX, et fournir aux organes PH1-PHn activés des signaux de sélection des registres à initialiser, par les liaisons de contrôle CTP, en correspondance avec les données d'initialisation lues dans la mémoire NVM, qu'il transmet par le bus ITB aux organes PH1-PHn. io II est à noter que les organes périphériques PH1-PHn peuvent être reliés au bus ADB par l'intermédiaire d'un bus spécifique relié au bus ADB par un circuit d'interface BDG assurant la communication entre les deux bus. Le bus spécifique peut être de type AMBA (Advanced Microcontroller Bus Architecture) tel que AHB (Advanced High-performance Bus) ou APB ls (Advanced Peripheral Bus) développés par la société ARM. Le circuit FSM comprend également des registres de configuration et d'état pour chaque organe périphérique PH1-PHn du microcontrôleur MC. La figure 3 représente la structure des registres de configuration et d'état STRi correspondant à l'un des organes périphériques PHi. Chaque registre STRi 20 comprend un champ NRG non modifiable, mémorisant le nombre de registres à initialiser de l'organe PHi, un champ EN indiquant si les registres de l'organe PHi doivent être initialisés, et un champ Al, indiquant si les registres de l'organe PHi ont ou non été initialisés. Le champ Al est modifié lorsque tous les registres de l'organe PHi ont été initialisés. Le circuit FSM 25 comprend également un registre contenant une adresse de la mémoire NVM à partir de laquelle sont stockés les données d'initialisation des registres des organes PH1-PHn. Les champs EN correspondant à tous les organes PHi sont par exemple initialisés à partir de la mémoire NVM lors d'une activation du microcontrôleur MC. Les champs Al correspondant à tous les organes 30 PHi sont initialisés à une valeur indiquant que les registres sont à initialiser. Le circuit FSM procède à des initialisations de registres si au moins un champ EN d'organe périphérique indique qu'une initialisation de registre doit être effectuée. Lorsque tous les registres d'un organe PHi ont été initialisés, le champ Al correspondant est mis à jour. La figure 4 représente des circuits d'interface d'entrée d'un organe périphérique PHi du microcontrôleur. Ces circuits comprennent un circuit d'interface INTk pour chaque registre RGk du périphérique. Chaque circuit INTk comprend un circuit d'interface de bus ABIT connecté au bus ADB, un s circuit d'interface de bus IBIT connecté en entrée au bus ITB, un circuit de sélection de bus BMX connecté à des sorties des circuits d'interface ABIT, IBIT et au registre RGk et un circuit de sélection de registre RSEL. Les circuits IBIT et ABIT sont configurés pour réaliser une adaptation de format de données entre les bus ABD et ITB et le registre RGk. Le circuit BMX est io configuré pour sélectionner l'un ou l'autre des bus ADB, ITB à relier au registre RGk de l'organe PHi en fonction des signaux de contrôle CTP. Ainsi durant la phase d'initialisation, les signaux de contrôle CTP commandent le circuit BMX pour fournir une donnée d'initialisation transmise par le bus ITB au registre RGk,. En dehors de la phase d'initialisation (lorsque les signaux ls CTP sont inactifs), le circuit BMX assure des transferts de données entre le bus ADB et le registre RGk. Durant la phase d'initialisation, le circuit BMX peut être configuré pour traiter en priorité I'initialisation du registre RGk par rapport à des requêtes d'accès provenant du bus ADB. Le circuit RSEL est configuré pour sélectionner le ou les registres à activer, notamment pour 20 recevoir une donnée d'initialisation durant la phase d'initialisation, en fonction de la donnée présente sur le bus ITB. En dehors de la phase d'initialisation, le circuit RSEL active le registre indiqué par l'adresse transmise par le bus ADB. Les signaux CTP comprennent un signal d'activation CS(i) par organe 25 périphérique PHi, qui est transmis à ce dernier. Si une lecture de donnée dans la mémoire NVM peut fournir simultanément plusieurs mots d'initialisation de registre et si le bus ITP peut transmettre simultanément tous les mots lus, les signaux CTP comprennent en outre un signal de sélection de mot WSEL qui est transmis à chaque organe PHi pour indiquer 30 quel mot dans la donnée transmise par le bus ITB doit être transféré dans un registre de l'organe périphérique sélectionné. Le signal WSEL comprend un nombre de bits permettant de coder le nombre de mots d'initialisation par donnée transmise par le bus ITB. Le circuit IBIT est alors configuré pour sélectionner un mot transmis par le bus ITB à transférer dans le registre RGk 35 pour l'initialiser, en fonction des signaux CTP. La procédure d'initialisation des registres des organes périphériques peut être accélérée en prévoyant plusieurs signaux CS(i) pour chaque organe PHi, pour activer simultanément plusieurs organes PHi, et initialiser simultanément des registres des organes PHi activés. Dans ce cas, un s signal de sélection de mot WSEL est à prévoir pour chaque signal d'activation CS(i) transmis à un même organe PHi pour permettre de sélectionner un mot d'initialisation dans la donnée présente sur le bus ITB pour chaque organe PHi activé. Les figures 5 à 8 illustrent le cas d'une mémoire NVM et d'un bus ITB io pouvant transmettre simultanément quatre mots d'initialisation de registres d'organes périphériques, lus dans la mémoire NVM, et le cas de signaux de contrôle CTP comprenant deux signaux d'activation CS1(i), CS2(i) par organe périphérique PHi et donc deux signaux de sélection de mot WSEL1, WSEL2 comprenant chacun deux bits pour désigner un mot parmi quatre. Le ls bus de sortie de la mémoire NVM et le bus ITP peuvent ainsi comporter par exemple 128 bits de données, tandis que le bus de sortie de l'unité de traitement PU, le bus ABD et les registres à initialiser des organes PHi comportent 32 bits de données. La prévision de deux paires de signaux (CS1, WSEL1), (CS2, WSEL2) permet d'activer simultanément deux 20 organes PHi, et d'initialiser simultanément plusieurs registres dans les deux organes périphériques activés, si plusieurs mots d'initialisation de registre peuvent être lus en même temps dans la mémoire NVM et transmis par le bus ITB. La figure 5 représente une partie du circuit de sélection de registre 25 RSEL, selon un mode de réalisation. Le circuit RSEL comprend deux portes logiques AG3, AG4 de type ET, deux portes logiques OG2, OG3 de type OU, un compteur CNT et un circuit logique LC. Le circuit RSEL reçoit en entrée les signaux de contrôle CTP comprenant dans le présent exemple, un premier signal de sélection CS1(i) de l'organe périphérique PHi et un signal 30 associé de sélection de mot WSEL1 dans une donnée transmise par le bus ITB, et un second signal de sélection CS2(i) de l'organe périphérique PHi et un signal associé de sélection de mot WSEL2 dans une donnée transmise par le bus ITB. La porte AG3 reçoit en entrée les signaux CS1(i) et WSEL1. De même, la porte AG4 reçoit en entrée les signaux CS2(i) et WSEL2. La 35 sortie de chaque porte AG3, AG4 est connectée à une entrée respective de la porte OG2 qui fournit à un instant donné au circuit LC un signal de sélection de mot WSEL. La porte OG3 reçoit en entrée les signaux CS1(i), CS2(i) et fournit en sortie sur une entrée d'initialisation du compteur CNT un signal CS indiquant quand l'organe périphérique PHi est sélectionné pour s être initialisé. Le compteur CNT reçoit un signal d'horloge CLK du microcontrôleur MC, définissant la cadence de transmission de données d'initialisation de registres par le bus ITB. La sortie du compteur CNT est connectée à une entrée du circuit LC. Le compteur est initialisé à 0 par le signal CS lorsque l'organe périphérique est sélectionné par l'un ou l'autre io des signaux CS1(i), CS2(i) pour être initialisé. Le circuit LC est connecté en sortie à chacune des entrées de sélection des registres RGk de l'organe périphérique PHi, et est configuré pour activer un ou plusieurs registres RGk en fonction du signal WSEL et de la valeur du compteur CNT lorsque l'organe périphérique PHi est sélectionné pour être initialisé par l'un des ls signaux CS1(i), CS2(i). Lorsque le compteur CNT vaut 1 au premier cycle d'initialisation des registres de l'organe PHi, le circuit LC est configuré pour activer simultanément les registres ayant les numéros 0 à 3-WSEL, sans dépasser le nombre de registres de l'organe PHi moins un. A chacun des cycles 20 suivants de la phase d'initialisation, lorsque la valeur du compteur CNT est supérieure à 1, le circuit LC est configuré pour activer simultanément quatre registres de l'organe PHi, suivant ceux qui ont été initialisés au cycle précédent, sans dépasser le nombre de registres de l'organe PHi moins un. Ainsi aux cycles n suivants le premier cycle, le circuit LC active les registres 25 ayant les numéros 4(n-1)-WSEL à 4n-1-WSEL. La figure 6 représente une partie du circuit d'interface IBIT d'un des registres RGk, selon un mode de réalisation. Le circuit IBIT comprend deux multiplexeurs MX1, MX2, deux portes logiques AGI, AG2 de type ET, une porte logique OG1 de type OU et deux additionneurs AD1, AD2. Les 30 multiplexeurs MX1, MX2 comprennent chacun quatre entrées recevant les quatre mots d'initialisation de registre ITB[1 ], ITB[2], ITB[3], ITB[4] transmis simultanément par le bus ITB. Chacun des additionneurs AD1, AD2 fournit à l'entrée de commande d'un des multiplexeurs MX1, MX2 l'un des signaux de sélection de mot WSEL1, WSEL2, additionné à un numéro de registre k du 35 registre RGk auquel le circuit IBIT est connecté. La sortie du multiplexeur 2977690 lo MX1 est connectée à une entrée de la porte AGI dont une autre entrée reçoit le signal de sélection CS1(i) de l'organe périphérique PHi. De même, la sortie du multiplexeur MX2 est connectée à une entrée de la porte AG2 dont une autre entrée reçoit le signal de sélection CS2(i) de l'organe PHi. La s sortie de chaque porte AGI, AG2 est connectée à une entrée respective de la porte OG1 qui fournit à un instant donné un mot WI provenant du bus ITB à inscrire dans le registre RGk correspondant de l'organe PHi. Grâce à ces dispositions, lorsque l'un ou l'autre des signaux CS1(i) ou CS2(i) est actif pour l'organe périphérique PHi, le circuit IBIT de chaque io registre activé par le circuit LC, fournit en sortie W I l'un des quatre mots ITB[1 ], ITB[2], ITB[3], ITB[4] contenus dans la donnée présente sur le bus ITB. Le premier mot à transmettre dans le premier registre RGO de l'organe PHi est sélectionné par le signal WSEL1, WSEL2 correspondant au signal CS1(i), CS2(i) actif. ls La figure 7 représente un exemple de données d'initialisation D1 à D4 mémorisées dans la mémoire NVM, dans le cas où la largeur du bus ITB correspond à la taille de quatre mots d'initialisation de registres d'organes PHi, et où le microcontrôleur MC comprend quatre organes périphériques PHI, PH2, PH3, PH4. Dans l'exemple de la figure 7, l'organe PHI comprend 20 sept registres à initialiser (NRG(1)=7, EN(1)=1), l'organe PH2 comprend 6 registres qui ne sont pas à initialiser (NRG(2)=6, EN(2)=0), l'organe PH3 comprend trois registres à initialiser (NRG(3)=3, EN(3)=1), et l'organe PH4 comprend quatre registres à initialiser (NRG(4)=4, EN(4)=1). La donnée D1 comprend donc les mots d'initialisation W1-W4 des quatre premiers registres 25 de l'organe PHI. La donnée D2 comprend les mots d'initialisation W5-W7 des trois derniers registres de l'organe PHI et le mot d'initialisation W1 du premier registre de l'organe PH3. La donnée D3 comprend les mots d'initialisation W2-W3 des deux derniers registres de l'organe PH3, et les mots d'initialisation W1-W2 des deux premiers registres de l'organe PH4. 30 Enfin, la donnée D4 comprend les mots d'initialisation W3-W4 des deux derniers registres de l'organe PH4. La figure 8 représente des chronogrammes de signaux apparaissant durant la phase d'initialisation, entre le circuit AINT, la mémoire NVM, les organes périphériques PHI, PH2, PH3, PH4, dans l'exemple de la figure 6. 35 Les chronogrammes de la figure 8 comprennent le signal d'horloge CLK du Il microcontrôleur MC, les signaux de sortie de la mémoire NVM, les signaux CS1, CS2, WSEL1, WSEL2, et le contenu des registres des organes périphériques PH1-PH4. Avant un instant t0, les signaux CS1, CS2, WSEL1, WSEL2 sont tous à 0 et les registres des organes PH1-PH4 sont à des s valeurs initiales RV quelconques. A l'instant t0, la donnée D1 est lue dans la mémoire NVM, et les signaux CS1 sont fixés à la valeur 0001 pour activer l'organe PHI . Durant le cycle d'horloge suivant jusqu'à un instant t1, le signal WSEL1 reste à 0. Le circuit LC active donc les registres RGO à RG3 de l'organe PHI, et les mots W1-W4 de la donnée D1 sont transférés io simultanément dans les registres activés. A l'instant t1, la donnée D2 est lue dans la mémoire NVM, les signaux CS1 restent à la valeur 0001 pour maintenir l'organe PHI activé, et le signal WSEL1 reste à 0. Les signaux CS2 sont fixés à 0100 pour activer l'organe PH3, et le signal WSEL2 est fixé à 3 pour sélectionner le quatrième mot W1 de la donnée D2. Durant le cycle ls d'horloge suivant jusqu'à un instant t2, le circuit LC de l'organe PHI active les registres RG4 à RG6. Les trois premiers mots W5, W6, W7 de la donnée D2 sont donc transférés simultanément dans les registres RG4 à RG6 de l'organe PHI. Parallèlement, Le circuit LC de l'organe PH3 active le registre RGO (3-WSEL2=0). Le quatrième mot W1 de la donnée D2 sélectionné par 20 le signal WSEL2, est donc transféré dans le premier registre RGO de l'organe PH3. A l'instant t2, la donnée D3 est lue dans la mémoire NVM, les signaux CS1 sont fixés à 1000 pour activer l'organe PH4, et le signal WSEL1 est fixé à 2 pour lire la donnée D3 à partir du troisième mot. Les signaux CS2 restent à 0100 pour maintenir l'organe PH3 activé et le signal WSEL2 25 reste à 3. Durant le cycle d'horloge suivant jusqu'à un instant t3, le circuit LC de l'organe PH4 sélectionne les registres RGO, RG1 (0 et 3-WSEL1). Les deux derniers mots W1, W2 de la donnée D3 sont donc transférés simultanément dans les registres RGO et RG1 de l'organe PH4. Parallèlement, le circuit LC de l'organe PH3 sélectionne les registres RG1, 30 RG2 (4(n-1)-WSEL2=1 et 4n-1-WSEL2=4 limité à 2 car l'organe PH3 ne comporte que trois registres). Les deux premiers mots W2, W3 de la donnée D3 sont donc transférés simultanément dans les registres RG1 et RG2 de l'organe PH3. A l'instant t3, la donnée D4 est lue dans la mémoire NVM, les signaux CS1 restent à 1000 pour maintenir l'organe PH4 activé, le signal 35 WSEL1 reste à 2, pour lire la donnée D4 à partir du premier mot W3 pour initialiser le troisième et le quatrième registre RG2, RG3 de l'organe PH4 (4(n-1)-WSEL1=2 et 4n-1-WSEL1=5 limité à 3 car l'organe PH3 ne comporte que quatre registres). Les signaux CS2 sont mis à 0000 et le signal WSEL2 est mis à 0 car il n'y a plus d'autre organe périphérique à s initialiser. Durant le cycle d'horloge suivant jusqu'à un instant t4, Le circuit LC de l'organe PH4 sélectionne les registres RG2, RG3. Les deux premiers mots W3, W4 de la donnée D4 sont donc transférés simultanément dans les registres RG2 et RG3 de l'organe PH4. A l'instant t4, les signaux CS1 sont mis à 0000 et le signal WSEL1 est mis à 0 car il n'y a plus d'autre organe io périphérique à initialiser. Ainsi, à l'instant t4, tous les registres des organes PHI, PH3, PH4 ont été initialisés avec des mots lus dans la mémoire NVM. Comme l'organe PH2 n'est pas à initialiser (EN(2)=0), ses six registres restent à leur valeur initiale. Il résulte des chronogrammes de la figure 8, que l'initialisation de ls quatre registres peut être effectuée en un cycle de signal d'horloge, que ces quatre registres appartiennent tous à un seul organe périphérique ou soient répartis dans deux organes périphériques. Si un seul registre pouvait être initialisé à chaque lecture de la mémoire NVM (nombre de mots d'initialisation par donnée lue dans la mémoire NVM égal à 1), un cycle 20 d'horloge serait nécessaire pour initialiser chacun des registres des organes périphériques. A titre de comparaison, I'initialisation de tels registres par une séquence d'instructions exécutées par l'unité de traitement PU prendrait environ 5 cycles par registre à initialiser. En outre, la séquence d'instructions occupe de la mémoire programme et son exécution occupe l'unité de 25 traitement PU. Au contraire, la mise en oeuvre du circuit AINT permet d'initialiser les registres des organes périphériques sans occuper l'unité de traitement PU ni la mémoire programme. Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et diverses applications. 30 En particulier, l'invention n'est pas limitée aux exemples de réalisation décrits, et couvre également un circuit d'initialisation distinct de l'unité de traitement du microcontrôleur, capable d'exécuter une séquence d'instructions d'initialisation des registres des organes périphériques du microcontrôleur, par l'intermédiaire du bus d'initialisation ITB. Il va de soi qu'il n'est pas nécessaire que les accès à la mémoire NVM, requis par l'unité de traitement PU soient prioritaires sur ceux requis par le circuit d'initialisation AINT. En effet, le non respect de cette règle de priorité retarde simplement l'instant de démarrage de l'unité de traitement s PU. En outre, si cette règle de priorité n'est pas respectée, il n'est pas nécessaire d'affecter la priorité au bus d'initialisation AINT sur le bus principal ADB pour accéder aux registres des organes périphériques PHi. En effet, si l'unité de traitement PU n'a pas démarré, aucune requête d'accès aux organes PHi n'est émise par le bus principal ADB. 10 II va également de soi que le nombre de mots d'initialisation de registre transmis par le bus ITP peut être choisi différent de quatre, ou que le nombre d'organes périphériques susceptibles d'être activés simultanément peut être choisi supérieur à deux. Dans ce cas, les signaux de contrôle comprennent autant de signaux CS et WSEL que d'organes périphériques à 15 activer simultanément. Par ailleurs, la mémoire non volatile NVM dans laquelle se trouvent les mots d'initialisation des registres des organes périphériques, peut être interne ou externe au microcontrôleur MC. 20 REVENDICATIONS1. Procédé d'initialisation de registres d'organes périphériques d'un microcontrôleur, comprenant des étapes consistant à : accéder à des données d'initialisation (D1-D4) dans une mémoire non volatile (NVM) reliée par un bus principal (ADB) à une unité de traitement s (PU) du microcontrôleur (MC) et aux organes périphériques (PH1-PHn), activer un organe périphérique comportant des registres (RGk) à initialiser, et transférer les données lues dans les registres de l'organe périphérique activé, 10 caractérisé en ce que les accès aux données d'initialisation (D1-D4) dans la mémoire sont effectués par un circuit d'initialisation (AINT) distinct de l'unité de traitement (PU), les données d'initialisation accédées étant transmises aux organes périphériques (PH1-PHn) par un bus d'initialisation (ITP) distinct du bus principal (ADB). 1s 2. Procédé selon la revendication 1, dans lequel les accès à la mémoire non volatile (NVM) par le bus principal (ADB) sont prioritaires sur ceux effectués par le bus d'initialisation (ITP), les accès aux registres d'organe périphérique (RGk) par le bus d'initialisation étant prioritaires sur 20 ceux requis par le bus principal. 3. Procédé selon la revendication 1 ou 2, comprenant une étape de sélection de plusieurs registres (RG0:3) de l'organe périphérique activé (PHi), de transmission de plusieurs mots (W 1-W4) d'initialisation d'un 25 registre d'organe périphérique simultanément par le bus d'initialisation (ITP), et de chargement des mots d'initialisation transmis dans les registres sélectionnés de l'organe périphérique activé. 4. Procédé selon l'une des revendications 1 à 3, dans lequel plusieurs 30 organes périphériques (PHI, PH3, PH4) sont activés simultanément pour recevoir chacun simultanément au moins un mot d'initialisation de registre. 14 2977690 ls 5. Procédé selon l'une des revendications 1 à 4, dans lequel plusieurs mots d'initialisation (W 1-W4) de plusieurs registres d'un organe périphérique (PHI) sont transmis simultanément par le bus d'initialisation (ITP) et chargés dans des registres (RG0:3) sélectionnés de l'organe périphérique en un s cycle du signal d'horloge (CLK) du microcontrôleur (MC). 6. Procédé selon l'une des revendications 1 à 5, dans lequel le circuit d'initialisation (AINT) assure le transfert de requêtes d'accès à la mémoire (NVM) transmises par le bus principal (ADB) et le transfert des données lues io dans la mémoire vers le bus principal, en réponse aux requêtes d'accès. 7. Microcontrôleur comprenant une unité de traitement (PU), des organes périphériques (PH1-PHn) comportant des registres (RGk) à initialiser, et un bus principal (ADB) reliant l'unité de traitement aux organes ls périphériques et à une mémoire non volatile (NVM), caractérisé en ce qu'il comprend un circuit d'initialisation (AINT) pour initialiser des registres d'organes périphériques (RGk), le circuit d'initialisation reliant le bus principal (ADB) à la mémoire (NVM) et étant relié aux organes périphériques par un bus d'initialisation (ITP), le circuit 20 d'initialisation étant configuré pour mettre en oeuvre le procédé selon l'une des revendications 1 à 6. 8. Microcontrôleur selon la revendication 7, dans lequel le bus d'initialisation présente une largeur correspondant à plusieurs mots (W1-W4) 25 d'initialisation d'un registre d'organe périphérique (RGk). 9. Microcontrôleur selon la revendication 7 ou 8, dans lequel le circuit d'initialisation (AINT) est relié à chaque organe périphérique (PHi) par une liaison d'activation (CS, CS1, CS2) pour activer l'organe périphérique afin 30 d'initialiser les registres de l'organe périphérique, et une liaison de transmission d'un signal de sélection (WSEL, WSEL1, WSEL2) d'un mot d'initialisation de registre d'organe périphérique dans une donnée (D1-D4) transmise par le bus d'initialisation. 10. Microcontrôleur selon l'une des revendications 7 à 9, dans lequel le circuit d'initialisation (AINT) est relié à chaque organe périphérique (PHi) par plusieurs liaisons d'activation (CS1, CS2) pour activer l'organe périphérique afin d'initialiser les registres de l'organe périphérique, chaque s liaison d'activation étant associée à une liaison de transmission d'un signal de sélection (WSEL1, WSEL2) d'un mot d'initialisation de registre d'organe périphérique dans une donnée (D1-D4) transmise par le bus d'initialisation (ITB). 10 11. Microcontrôleur selon l'une des revendications 7 à 10, dans lequel chaque organe périphérique (PHi) comprend un circuit d'interface (INTk, RSEL) configuré pour sélectionner un registre et un mot d'initialisation de registre (W 1-W4) dans une donnée (D1-D4) transmise par le bus d'initialisation (ITB) et charger le mot sélectionné dans le registre (RGk) 15 sélectionné. 12. Microcontrôleur selon l'une des revendications 7 à 11, dans lequel le circuit d'initialisation (AINT) comprend des circuits de mémorisation d'une adresse de base de stockage dans la mémoire (NVM) de données 20 d'initialisation (D1-D4) des registres (RGk) d'organe périphérique (PHi), et pour chaque organe périphérique, un nombre de registres à initialiser (NRG), et des indicateurs (EN, Al) signalant si l'organe périphérique doit ou non être initialisé et signalant si l'organe périphérique a été ou non initialisé. 25 13. Microcontrôleur selon l'une des revendications 7 à 12, dans lequel chaque organe périphérique (PHi) comprend un circuit d'interface (INTk) connecté au bus principal (ADB) et au bus d'initialisation (ITB) et configuré pour donner priorité aux requêtes d'accès reçues par le bus d'initialisation (ITB) sur celles reçues par le bus principal (ADB). 30