Brevet FR3113748A1 — publié le 20220304

Système comprenant un lecteur sans contact (RD) et un appareil (APP), ledit appareil comportant un transpondeur sans contact (TG), ledit transpondeur comportant une interface sans contact (INT1) et une interface câblée de transpondeur (INT2) et étant configuré pour communiquer avec ledit lecteur selon un protocole sans contact par l’intermédiaire de ladite interface sans contact, ledit appareil comportant un bus (BS) couplé à ladite interface câblée de transpondeur et au moins un module (MD) couplé audit bus, ledit au moins un module comportant une unité de traitement (PRU), ledit lecteur étant configuré pour communiquer les instructions d’un programme informatique exécutables par l’unité de traitement audit au moins un module (MD), via le transpondeur (TG). Figure pour l’abrégé : Fig. 1 Procédé de stockage d’instructions dans une mémoire programme et système associé Des modes de réalisation de l’invention concernent le stockage d’instructions de programme informatique, par exemple des instructions d’un microprogramme (« Firmware » en anglais) (FW), dans une mémoire, par exemple une mémoire flash, d’un module, par exemple un microcontrôleur (MCU), comportant une unité de traitement. Sur la chaîne de production, le premier FW doit être téléchargé dans la mémoire flash du MCU. Après la production, le FW doit être téléchargé dans la mémoire flash du MCU pour être mis à niveau. La première programmation comme la programmation de mise à niveau nécessitent que le produit ou l’application soit alimenté(e) et qu’un câble soit branché, soit à un connecteur externe, ou après ouverture du produit, à un connecteur interne. Toutefois, pour la première programmation ou la mise à niveau du FW, il est nécessaire non seulement que le produit soit alimenté, mais aussi d’ouvrir le produit si aucun connecteur externe spécifique n’est disponible, et il faut brancher un câble pour communiquer avec le MCU, ce qui se fait manuellement la plupart du temps. Il y a donc une possibilité de rupture ou de dégradation d’un connecteur pendant cette opération. En outre, il n’est pas possible de programmer plusieurs produits simultanément (c’est-à-dire des cartes de produits mises en boîtier ensemble), et il n’est pas possible de faire de la programmation « en boîtier », c’est-à-dire sur un produit entièrement mis en boîtier, car un accès physique au connecteur est nécessaire. Des exemples de telle solution câblée connue utilisent un connecteur JTAG, mais celui-ci nécessite à la fois un câblage et une alimentation. Une autre solution câblée est un bus de communication connu comme l’USB ou l’UART. Une solution technique connue pour éviter le câblage consiste à utiliser une technologie de communication sans fil comme BlueTooth ou WiFi, mais ces solutions ne fournissent pas l’alimentation et nécessitent l’introduction d’un FW trop volumineux dans un chargeur d’amorçage ainsi qu’un appariement avant de permettre la communication. De telles solutions ne peuvent donc pas être utilisées comme solutions de première programmation. Il existe par conséquent un besoin de proposer une solution technique plus robuste pour programmer le produit, avec moins d’étapes manuelles dans la production. Il existe aussi un besoin de proposer une solution technique qui offre une possibilité de programmer plusieurs produits simultanément. Il existe aussi un besoin de proposer une solution technique qui offre une possibilité de faire de la programmation « en boîtier », c’est-à-dire permettant de programmer le FW à la toute fin d’une chaîne de production, ce qui permet une personnalisation à la fin de la chaîne de production. Il existe également un besoin de proposer une solution technique offrant une réduction et une simplification de la maintenance du produit. Selon un mode de réalisation, il est proposé d’utiliser un transpondeur sans contact, par exemple un transpondeur NFC (« Near Field Communication »:Communication en Champ Proche) qui coopère sans contact avec un lecteur sans contact (par exemple un lecteur NFC) et qui coopère avec une unité de traitement d’un module, par exemple un microcontrôleur, pour être programmé via un bus câblé, par exemple un bus I 2 C ou un bus SPI, et pour transmettre les instructions de programme du lecteur au module par l’intermédiaire du transpondeur. Il n’est donc pas nécessaire d’ouvrir le produit (module) pour brancher un câble ou d’avoir un connecteur externe, ce qui permet de réduire les étapes manuelles sur la chaîne de production. Le produit ou l’application est plus robuste (pas d’usure de connecteur). La maintenance du produit est réduite et simplifiée. Il est également possible de programmer plusieurs modules simultanément (tous les modules présents dans le même champ RF peuvent être programmés en même temps). Il est aussi possible de faire de la programmation « en boîtier », avec par exemple une programmation du FW tout au bout de la chaîne de production, ce qui permet une personnalisation à la fin de la chaîne de production. Il n’est pas nécessaire d’alimenter en interne le module (le microcontrôleur par exemple) car l’énergie peut être fournie par le transpondeur s’il est équipé d’une batterie par exemple, ou par le champ du lecteur. Selon un aspect, un système est proposé, comprenant un lecteur sans contact et un appareil, par exemple un objet IOT (internet des objets), une montre connectée, un compteur de gaz connecté, ces exemples étant non limitatifs. Ledit appareil comporte un transpondeur sans contact, par exemple un transpondeur NFC/RFID. Ledit transpondeur comprend une interface sans contact et une interface câblée de transpondeur et est configuré pour communiquer avec ledit lecteur selon un protocole sans contact par l’intermédiaire de ladite interface sans contact. Ledit appareil comporte un bus, par exemple un bus de « circuit inter-intégré » (I 2 C) ou un bus SPI ou un bus appelé SMBus, couplé à ladite interface câblée de transpondeur et au moins un module, par exemple un microcontrôleur, couplé audit bus. Ledit au moins un module comporte une unité de traitement. Ledit lecteur est configuré pour communiquer les instructions d’un programme informatique, par exemple les instructions d’un microprogramme, exécutables par l’unité de traitement audit au moins un module, via le transpondeur. Les modes de réalisation de l’invention sont particulièrement applicables aux transpondeurs NFC, par exemple des étiquettes (« tags »), destinés à servir de pont entre ledit dispositif de communication sans contact externe (lecteur), par exemple un téléphone mobile cellulaire, plus connu sous le nom de « smartphone » et le ou les module(s) de l’appareil. Ces transpondeurs qui servent de passerelle peuvent aussi être appelés « transpondeurs dynamiques » ou « étiquettes dynamiques ». La communication en champ proche, plus connue des personnes de l’art sous le nom de NFC (ou NFC en anglais), est une technologie de connectivité sans fil qui permet la communication sur une courte distance, par exemple 10 cm, entre des dispositifs électroniques, comme des cartes à puce ou étiquettes sans contact, et des lecteurs. La technologie NFC est particulièrement appropriée pour connecter n’importe quel type de dispositif d’utilisateur, et permet des communications rapides et faciles. Un transpondeur sans contact est un transpondeur capable d’échanger des informations via une antenne avec un lecteur sans contact, selon un protocole de communication sans contact. Un transpondeur NFC, qui est un transpondeur sans contact, est un transpondeur compatible avec la technologie NFC. La technologie NFC est une plateforme de technologie de format ouvert en ISO / IEC 18092 et ISO / IEC 21481 mais elle incorpore de nombreuses normes existantes comme les protocoles de Type A et de Type B définis dans la norme ISO-14443 qui sont des protocoles de communication qui peuvent être utilisés dans la technologie NFC. La technologie sans contact peut aussi être utilisée dans les transpondeurs de radio-identification (RFID) compatibles avec les normes ISO 15693 et ISO 18000-3. Au cours de la transmission d’informations entre un lecteur et un transpondeur, le lecteur produit un champ magnétique par l’intermédiaire de son antenne qui est généralement, dans les normes utilisées de façon conventionnelle, une onde sinusoïdale (la porteuse) à 13,56 MHz. Pour transmettre des informations du lecteur au transpondeur, le lecteur utilise une modulation d’amplitude de ladite porteuse. Le transpondeur comprend un moyen de traitement configuré pour démoduler la porteuse reçue afin d’obtenir les données transmises par le lecteur. Pour une transmission d’informations du transpondeur au lecteur, le lecteur produit le champ magnétique (la porteuse) sans modulation. L’antenne du transpondeur module ensuite le champ produit par le lecteur, selon les informations à transmettre. La fréquence de cette modulation correspond à une sous-porteuse de ladite porteuse. La fréquence de cette sous-porteuse dépend du protocole de communication utilisé et peut être par exemple égale à 848 kHz. Cette modulation est réalisée en modifiant la charge connectée aux bornes de l’antenne du transpondeur. Deux modes de fonctionnement sont alors possibles, un mode passif et un mode actif. Dans le mode passif, le transpondeur effectue une rétro-modulation de l’onde provenant du lecteur pour transmettre des informations et n’intègre pas, pour la transmission d’informations, de moyen de transmission, ou émetteur, capable par exemple de générer son propre champ magnétique pendant la diffusion. Un tel transpondeur dépourvu d’émetteur est appelé transpondeur passif, par opposition à un transpondeur actif qui comporte un émetteur. Généralement, un transpondeur passif est dépourvu d’alimentation car il utilise l’onde du lecteur pour alimenter son circuit intégré. Dans certaines applications le transpondeur passif peut comporter une alimentation électrique, par exemple une pile. Dans le mode de fonctionnement actif, le lecteur et le transpondeur actif génèrent tous deux un champ électromagnétique. Généralement, ce mode de fonctionnement est utilisé quand le transpondeur actif est pourvu d’une source d’énergie, par exemple une batterie. Chacun des dispositifs NFC (lecteur et transpondeur) transmet les données en utilisant un schéma de modulation. Ici encore, la modulation se traduit par une modification de charge et l’on parle de communication par modulation active de charge. Comparé à un mode de communication passif, on obtient des distances de fonctionnement plus grandes, jusqu’à 20 cm, en fonction du protocole utilisé. De plus, l’utilisation de la modulation active de charge rend possible l’utilisation d’antennes très petites. La présente invention s’applique de préférence aux transpondeurs passifs mais elle est également compatible avec les transpondeurs actifs. Bien qu’il soit possible d’avoir un maître à l’intérieur du module, le lecteur et le transpondeur sont, selon un mode de réalisation avantageux, configurés de telle sorte que le lecteur est le maître sur ledit bus pendant la communication desdites instructions. Le lecteur n’est pas directement relié au bus de communication câblé, mais le lecteur peut être considéré comme étant en réalité le maître de l’application ou le maître sur le bus, du point de vue du système, parce qu’il initie des commandes dans des trames cohérentes avec ledit protocole sans contact, et ces commandes vont être transformées par le transpondeur en commandes sur le bus cohérentes avec le protocole utilisé sur ledit bus. L’interface câblée de l’étiquette, qui est en réalité connectée au bus, est une interface maître du point de vue physique. On peut donc dire aussi que le lecteur est le maître sur le bus par l’intermédiaire de l’interface câblée maître. Avec un tel mode de réalisation, il n’est donc pas nécessaire d’avoir un maître à l’intérieur dudit au moins un module, ce qui conduit à une réduction du coût de l’appareil, une simplification du développement, une réduction et simplification de la maintenance et une réduction de la taille de l’appareil. Ledit transpondeur est avantageusement une passerelle pendant une communication directe des instructions de programme informatique entre ledit lecteur et ledit au moins un module par l’intermédiaire dudit transpondeur. Ledit au moins un module est aussi avantageusement configuré pour communiquer directement avec le lecteur par l’intermédiaire dudit transpondeur, c’est-à-dire sans passer par un microcontrôleur. Selon un mode de réalisation, ledit au moins un module comprend un moyen formant mémoire, par exemple une mémoire flash, un chargeur d’amorçage (« bootloader » en anglais) et un mode de chargeur d’amorçage (« bootloader mode » en anglais) dans lequel le chargeur d’amorçage est configuré pour stocker lesdites instructions dans ledit moyen formant mémoire. De façon bien connue de l’homme du métier, le chargeur d’amorçage est stocké dans la mémoire ROM d’amorçage interne (mémoire de système) du microcontrôleur. Il est programmé par le fabricant du microcontrôleur pendant la production. Son rôle principal est de décharger le microprogramme dans la mémoire flash interne via l’interface série (I2C, SPI, etc.). Une fois dans le mode de chargeur d’amorçage, le microcontrôleur surveille une interface série pour détecter des commandes de programmation. Un protocole de communication est défini pour chaque interface série, avec un jeu de commandes et des séquences compatibles. Le chargeur d’amorçage peut être habituellement activé en mettant une ou des broche(s) dédiée(s) du microcontrôleur à un niveau donné, et/ou en réglant des bits de configuration interne qui permettent d’activer ce mode. Toutefois, le mode de chargeur d’amorçage peut être actif de différentes manières. Par exemple, le microcontrôleur peut démarrer automatiquement en mode de chargeur d’amorçage si la mémoire flash est vide. En cas de mise à jour du microprogramme, le microcontrôleur peut être mis dans son mode de chargeur d’amorçage en réalisant un saut vers la mémoire de système à partir d’un code d’utilisateur. Dans ce cas, il n’y a pas besoin de régler des broches spécifiques à un niveau de tension spécifique. Il est possible de sortir du mode de chargeur d’amorçage en quittant la condition d’activation de chargeur d’amorçage et en générant une remise à zéro matérielle ou en sautant vers un code d’utilisateur. Selon un mode de réalisation, ledit lecteur est en outre configuré pour activer le mode de chargeur d’amorçage par l’intermédiaire du transpondeur. Par exemple, ledit au moins un module a au moins une borne de module dédiée à l’activation du mode de chargeur d’amorçage et ledit transpondeur a au moins une borne de transpondeur couplée à ladite au moins une borne de module et un moyen de commande configuré pour mettre ladite au moins une borne de transpondeur à un ou au moins un niveau de tension en réponse à une commande d’activation de mode de chargeur d’amorçage transmise par le lecteur via l’interface sans contact. Selon un autre aspect, il est proposé un transpondeur appartenant au système défini ci-dessus. Plus particulièrement, le transpondeur peut comprendre un moyen de transfert configuré pour mettre en œuvre une fonction de transfert (ou « pass-through ») pour l’échange de messages entre le lecteur et ledit au moins un module pendant la communication des instructions du programme informatique. Le lecteur peut être configuré pour initier au moins une première commande de chargeur d’amorçage dans au moins une trame cohérente avec ledit protocole sans contact, ladite au moins une première commande de chargeur d’amorçage contenant des premières données utiles incluant les instructions du programme informatique, et ledit moyen de transfert peut être configuré pour transformer ladite au moins une première commande de chargeur d’amorçage en au moins une deuxième commande de chargeur d’amorçage sur le bus cohérente avec un protocole utilisé sur ledit bus. Selon un mode de réalisation, ledit moyen de transfert comprend un premier moyen formant mémoire volatile configuré pour mettre en mémoire tampon lesdites premières données utiles et des deuxièmes données utiles de réponses destinées à être envoyées au lecteur via ladite interface sans contact. Selon un mode de réalisation, ledit moyen de transfert comprend en outre un deuxième moyen formant mémoire volatile configuré pour stocker des données de commande, ledit moyen de transfert étant configuré pour mettre en œuvre ladite fonction de transfert pour l’échange de messages entre le lecteur et ledit au moins un module, en se basant sur lesdites données de commande. Selon un mode de réalisation, ledit moyen de transfert comprend en outre : - une première machine à états configurée pour coopérer avec ledit lecteur via l’interface sans contact et configurée pour écrire/lire ledit premier moyen formant mémoire et une partie dudit deuxième moyen formant mémoire d’après des commandes transmises par le lecteur, - une deuxième machine à états configurée pour coopérer avec ledit bus via ladite interface câblée d’après le contenu d’une partie dudit deuxième moyen formant mémoire et configurée pour écrire/lire ledit premier moyen formant mémoire et une partie dudit deuxième moyen formant mémoire. Selon un mode de réalisation, ladite deuxième machine à états est configurée pour lire lesdites premières données utiles dans le premier moyen formant mémoire volatile et pour les exécuter sur le bus, pour gérer l’horloge et toutes les informations de signalisation de protocole de bus. Selon un mode de réalisation, ladite deuxième machine à états est configurée pour lire les réponses du bus et pour les stocker dans le premier moyen formant mémoire volatile pour qu’elles soient lues par la première machine à états. Lorsque ledit bus est un bus I 2 C, ladite au moins une première commande de chargeur d’amorçage initiée par le lecteur peut comprendre au moins une demande d’une opération d’écriture dans ledit au moins un module. Ladite au moins une demande d’une opération d’écriture dans ledit au moins un module peut comprendre l’adresse dudit au moins un module, un code de commande spécifique et au moins une partie des instructions à écrire dans ledit moyen formant mémoire. Quand ledit bus est un bus SPI, ladite au moins une première commande de chargeur d’amorçage initiée par le lecteur peut comprendre au moins une commande d’écriture. Selon un mode de réalisation avantageux, le transpondeur comprend un moyen de récupération d’énergie réglable configuré pour alimenter ledit au moins un module, et le lecteur est configuré pour envoyer une commande spécifique au transpondeur afin d’activer ledit moyen de récupération d’énergie. Selon un autre aspect, il est aussi proposé un lecteur appartenant à un système tel que défini ci-dessus. Selon un autre aspect, il est aussi proposé un appareil appartenant à un système tel que défini ci-dessus. Selon un autre aspect, un procédé est proposé, pour stocker des instructions de programme informatique dans un moyen formant mémoire d’au moins un module comportant une unité de traitement. Ledit procédé comprend les étapes suivantes : - fournir un transpondeur comportant une interface sans contact et une interface câblée de transpondeur, - coupler un bus entre ladite interface câblée de transpondeur et ledit au moins un module, - faire communiquer par ledit lecteur lesdites instructions de programme informatique au transpondeur via l’interface sans contact selon un protocole sans contact, - faire communiquer par le transpondeur les instructions de programme informatique sur le bus audit au moins un module. Selon un mode de réalisation, ledit procédé comprend en outre le fait de faire agir le lecteur en tant que maître sur ledit bus pendant la communication desdites instructions de programme informatique. Selon un mode de réalisation, ledit procédé comprend les étapes suivantes : - munir ledit au moins un module d’un moyen formant mémoire et d’un chargeur d’amorçage, - placer ledit au moins un module dans un mode de chargeur d’amorçage, - faire stocker par le chargeur d’amorçage lesdites instructions de programme informatique dans ledit moyen formant mémoire. Selon un mode de réalisation, ledit procédé comprend en outre le fait de faire activer par le lecteur le mode de chargeur d’amorçage par l’intermédiaire du transpondeur. Selon un mode de réalisation, ledit procédé comprend en outre les étapes suivantes : - munir ledit au moins un module d’au moins une borne de module dédiée à l’activation du mode de chargeur d’amorçage, - munir ledit transpondeur d’au moins une borne de transpondeur couplée à ladite au moins une borne de module, - faire envoyer par le lecteur une commande d’activation de mode de chargeur d’amorçage au transpondeur via l’interface sans contact et - faire mettre par le transpondeur ladite au moins une borne de transpondeur à au moins un niveau de tension en réponse à ladite commande d’activation de mode de chargeur d’amorçage. Selon un mode de réalisation, ledit procédé comprend en outre les étapes suivantes, exécutées par le transpondeur : - stocker des données de commande, et - mettre en œuvre une fonction de transfert pour l’échange de messages entre le lecteur et ledit au moins un module basé sur lesdites données de commande, pendant la communication des instructions du programme informatique. Selon un mode de réalisation, ledit procédé comprend les étapes suivantes : - faire initier par le lecteur au moins une première commande de chargeur d’amorçage dans au moins une trame cohérente avec ledit protocole sans contact, ladite au moins une première commande de chargeur d’amorçage contenant des premières données utiles qui incluent les instructions du programme informatique, et - faire transformer par ladite fonction de transfert ladite au moins une première commande de chargeur d’amorçage en au moins une deuxième commande de chargeur d’amorçage sur le bus cohérente avec un protocole utilisé sur ledit bus. Selon un mode de réalisation, ledit procédé comprend en outre le fait de munir le transpondeur d’un moyen de récupération d’énergie réglable configuré pour alimenter ledit au moins module, et de faire envoyer par le lecteur une commande spécifique au transpondeur afin d’activer ledit moyen de récupération d’énergie. D’autres avantages et caractéristiques de l’invention apparaîtront à la lecture de la description détaillée ci-dessous et à l’étude des dessins annexés qui ne sont pas limitatifs, dans lesquels : représentent des modes de réalisation de l’invention utilisant un bus I 2 C, et représentent des modes de réalisation de l’invention utilisant un bus SPI. Comme montré sur la , qui illustre un exemple d’un système SYS selon l’invention, un lecteur NFC/RFID RD peut agir en tant que maître I2C de l’application ou appareil APP pour délivrer les instructions d’un microprogramme à un module MD, par exemple un microcontrôleur, comportant une unité de traitement PRU configurée pour exécuter ledit microprogramme. En d’autres termes, le lecteur RD est configuré pour communiquer directement avec le module MD de l’appareil APP via une interface sans contact INT1 d’un transpondeur (ou étiquette) TG à double interface NFC/RFID. Bien que le lecteur RD ne soit pas directement relié au bus BS, ici un bus I 2 C, le lecteur RD peut être considéré comme étant en réalité le maître de l’application ou le maître sur le bus I 2 C, parce qu’il initie des commandes dans des RF, et ces commandes sont ensuite transformées en commandes I 2 C sur le bus I 2 C, cohérentes avec le protocole I 2 C. L’interface I 2 C INT2 de l’étiquette ou transpondeur TG est en réalité connectée au bus I 2 C BS. Cette interface, aussi appelée interface de transpondeur câblée INT2, est une interface maître. On peut donc aussi dire que le lecteur est le maître sur le bus BS à travers l’interface maître I 2 C INT2. Le module MD comprend également une interface esclave I 2 C INTD connectée au bus BS, et un moyen formant mémoire MF, comme une mémoire flash, destiné à stocker le microprogramme. Le module MD comprend aussi un chargeur d’amorçage BLD, connu en soi, et au moins une borne de module, ici trois bornes de module GPC1-GPC3, couplées respectivement à trois bornes de transpondeur GPO1-GPO3. L’étiquette TG comprend également un moyen de commande GPOCTRL configuré pour régler lesdites bornes de transpondeur GPO1-GPO3, et consécutivement les bornes de module GPC1-GPC3 à un niveau de tension respectif en réponse à une commande d’activation de mode de chargeur d’amorçage transmise par le lecteur par l’intermédiaire de l’interface sans contact INT1. Dans le présent exemple, après réception de cette commande d’activation de mode de chargeur d’amorçage, le module est placé dans un mode de chargeur d’amorçage et le chargeur d’amorçage est activé. Ceci sera expliqué plus en détail ci-après. Dans ce mode de réalisation, l’étiquette TG comprend aussi un moyen de récupération d’énergie réglable EHM, ayant une structure connue en soi, configurée pour alimenter le module MD avec une tension d’alimentation VCC, et le lecteur est configuré pour envoyer une commande spécifique au transpondeur afin d’activer ledit moyen de récupération d’énergie EHM. Plus précisément, un exemple non limitatif de moyen de récupération d’énergie réglable EHM est représenté de façon schématique sur la . Quand l’étiquette NFC/RFID TG reçoit plus d’énergie que nécessaire pour s’alimenter à partir du champ RF produit par le lecteur, une partie de l’énergie reçue peut être utilisée pour alimenter un dispositif externe, ici le module MD. Le moyen EHM peut incorporer un pont redresseur à diodes RBR, dont la sortie est commandée par un interrupteur MOS MSW. Quand l’interrupteur MOS MSW est ouvert, aucune tension n’est délivrée sur la sortie de l’EHM, EHMS. Quand l’interrupteur MOS MSW est fermé, une tension redressée provenant des bobines d’antenne ANT1 de l’étiquette est délivrée sur la sortie EHMS pour alimenter le dispositif externe (c’est-à-dire le module ou microcontrôleur MD). L’interrupteur Marche/Arrêt de l’EHM peut être commandé par l’intermédiaire d’une commande dédiée EHMCTRL. En plus des moyens qui viennent d’être décrits, l’étiquette TG intègre un ensemble ENS de moyens représentés plus particulièrement sur la . Une telle étiquette TG peut être utilisée comme passerelle pour permettre des échanges de messages entre le lecteur et le module MD, le lecteur étant le maître et l’interface câblée INT2 étant le maître sur le bus BS pendant cet échange. Des exemples d’une telle étiquette et de son fonctionnement ont été décrits dans la demande PCT déposée le 14 mai 2020 sous le n° PCT/EP2020/063427. L’homme du métier peut se référer à cette demande PCT. Cette demande PCT est incorporée ici par référence. Certaines caractéristiques de l’étiquette ainsi que certaines étapes d’échanges plus particulièrement utilisées dans la présente invention vont maintenant être rappelées. Comme montré sur la , l’étiquette TG intègre, dans l’ensemble de moyens ENS de la : une mémoire non volatile NVM, par exemple une EEPROM, un premier moyen formant mémoire volatile, comme une mémoire tampon BF (FIFO), pour stocker des octets I 2 C, un deuxième moyen formant mémoire volatile, comportant une pluralité de registres, par exemple : un registre RGW pour stocker le nombre d’octets I 2 C à écrire, un registre RGD pour stocker le nombre d’octets I 2 C à lire, un registre RGC (contenant un bit) pour signaler qu’une commande I 2 C est présente dans la mémoire tampon BF, un registre RGR (contenant un bit) pour signaler qu’une réponse I 2 C est présente dans la mémoire tampon BF, un registre RGK (contenant un bit) pour enregistrer une valeur de bit d’accusé de réception (ce registre RGK est réinitialisé à la lecture), une machine à états SM1 pour une commande de transfert RF, une machine à états SM2 pour une commande de transfert I 2 C. Une telle étiquette TG peut être réalisée par exemple par un circuit intégré ou une puce, par exemple sur un circuit intégré de la famille de circuits intégrés portant la référence ST25 chez STMicroelectronics. Le protocole I 2 C est bien connu de l’homme de l’art et peut être trouvé dans la spécification I 2 C. Nous allons à présent rappeler quelques caractéristiques du protocole I 2 C. Le bus I 2 C utilise deux fils : données série (SDA) et horloge série (SCL). Tous les dispositifs maîtres et esclaves I 2 C sont reliés seulement avec ces deux fils. Un dispositif fonctionnant en tant que maître génère une horloge de bus et initie la communication sur le bus, les autres dispositifs sont esclaves et répondent aux commandes sur le bus. Pour pouvoir communiquer avec un dispositif spécifique, chaque dispositif esclave doit avoir une adresse qui est unique sur le bus. Le dispositif maître I 2 C n’a pas besoin d’adresse car aucun autre dispositif (esclave) n’envoie de commandes au maître. Les deux signaux SCL et SDA sont bidirectionnels. À chaque impulsion d’horloge, un bit de données est transféré. Le signal SDA ne peut changer que lorsque le signal SCL est au niveau bas. Quand l’horloge est au niveau haut, les données sont en principe stables. Chaque commande I 2 C initiée par le dispositif maître commence par une condition START (début) et finit par une condition STOP (fin). Pour ces deux conditions, SCL doit être au niveau haut. Une transition haut-bas de SDA est considérée comme une condition START et une transition bas-haut est considérée comme une condition STOP. Après la condition START, le bus est considéré comme étant occupé. Après la condition START, le maître peut générer une condition START répétée. Celle-ci est équivalente à une condition START normale et est généralement suivie de l’adresse I 2 C esclave. Les figures 4, 5 et 6 (tirées de la spécification I 2 C version 6.0, 4 avril 2014) illustrent les caractéristiques du protocole I 2 C. Comme illustré sur la , les données présentes sur le bus I2C sont transférées par paquets de 8 bits (octets). Il n’y a pas de limitation du nombre d’octets, cependant chaque octet doit être suivi d’un bit d’accusé de réception ACK provenant d’un dispositif esclave. Ce bit ACK indique si le dispositif esclave est prêt à passer à l’octet suivant. Pour tous les bits de données et le bit d’accusé de réception ACK, le maître doit générer des impulsions d’horloge. Si le dispositif esclave n’accuse pas réception du transfert, cela signifie qu’il n’y a plus de données ou que le dispositif n’est pas encore prêt pour le transfert. Le dispositif maître doit générer soit une condition STOP, soit une condition START répétée. Les données sont transmises avec le bit de poids fort (MSB) en premier. Si un esclave ne peut pas recevoir ou transmettre un autre octet complet de données jusqu’à ce qu’il ait exécuté une autre fonction, par exemple traiter une interruption interne, il peut maintenir la ligne d’horloge SCL au niveau bas pour obliger le maître à se mettre dans un état d’attente. Le transfert de données continue ensuite quand l’esclave est prêt pour un autre octet de données et libère la ligne d’horloge SCL. Comme représenté sur les figures 5 et 6, chaque dispositif esclave sur le bus doit avoir une adresse unique à 7 bits. La communication commence avec la condition START, suivie de l’adresse d’esclave à 7 bits et du bit de direction de données R/W. Si ce bit R/W est à 0 ( ), alors le maître écrit vers le dispositif esclave. Sinon, si le bit de direction de données R/W est à 1, le maître lit à partir du dispositif esclave ( ). Une fois l’adresse d’esclave et le bit de direction de données R/W envoyés, le maître peut continuer à lire ou écrire. La communication s’arrête avec la condition STOP qui signale également que le bus I 2 C est libre. Si le maître a besoin de communiquer avec d’autres esclaves, il peut générer une condition START répétée avec une autre adresse d’esclave sans générer de condition STOP. Si le maître n’écrit que vers le dispositif esclave, alors la direction de transfert de données ne change pas ( ) ; le récepteur esclave accuse réception de chaque octet. Si le maître n’a besoin que de lire à partir du dispositif esclave, alors il envoie simplement l’adresse I 2 C avec le bit R/W réglé sur lecture. Ensuite, le dispositif maître commence à lire les données ( ). Au moment du premier accusé de réception, l’émetteur maître devient récepteur maître et le récepteur esclave devient émetteur esclave. Ce premier accusé A est toujours généré par l’esclave. Le maître génère les accusés de réception suivants. La condition STOP est générée par le maître, qui envoie un non-accusé juste avant la condition STOP. Les figures 7 à 11 expliquent un exemple d’étapes successives du processus d’écriture d’octets dans un module esclave, ces octets étant envoyés par le lecteur RD pour être transmis au module esclave de l’appareil APP. Comme cela sera expliqué plus loin, ce processus d’écriture d’octets va être utilisé pour transmettre les instructions de microprogramme au module esclave MD à partir du lecteur RD. Comme illustré sur la , le lecteur NFC/RFID RD envoie (étape S7) une commande RF 700 à l’étiquette NFC/RFID pour programmer le nombre d’octets I2C à lire. La commande RF 700 a une structure classique, compatible avec le protocole RF utilisé, et le nombre d’octets I 2 C à lire est inclus dans les données utiles de la commande RF 700. Ici la valeur du nombre d’octets I 2 C à lire est égale à 0 car il n’y a pas d’octet à lire sur le bus I 2 C. Ce nombre d’octets I 2 C à lire est extrait de la commande RF par la machine à états SM1 (commande de transfert RF) puis écrit dans le registre RGD par la machine à états SM1 également (commande de transfert RF). Le registre RGC et le registre RGR contiennent une valeur 0 tandis que le registre RGK contient une valeur 1. Comme représenté sur la , le lecteur NFC/RFID RD envoie (étape S8) une commande d’écriture RF 800 à l’étiquette NFC/RFID. Cette commande RF 800 contient des octets I 2 C à écrire sur le bus I 2 C ainsi que l’adresse d’esclave I 2 C du module esclave destiné à recevoir ces octets I 2 C. L’adresse d’esclave I 2 C et les octets I 2 C forment un message I 2 C complet destiné à être délivré au bus I 2 C mais sans information de signalisation I 2 C, c’est-à-dire ici sans les conditions START et STOP. L’adresse d’esclave I 2 C, qui est le premier octet, inclut le bit R/W qui est réglé sur « écriture ». Ceci déclenche le bit « commande I 2 C en mémoire tampon » du registre RGC. En d’autres termes, le registre RGC est mis à 1 par la machine à états SM1 (commande de transfert RF). La machine à états SM1 (commande de transfert RF) stocke les x octets I 2 C dans la mémoire tampon BF et actualise le registre RGW avec ce nombre x d’octets I 2 C à écrire dans le module esclave désigné. Comme illustré sur la , la machine à états de transfert I2C SM2 lit des octets I2C dans la mémoire tampon BF et les envoie sur le bus I2C au module esclave correspondant, en ajoutant des conditions de signalisation (conditions START et STOP). Ceci déclenche le bit « commande I 2 C en mémoire tampon » du registre RGC. En d’autres termes, le registre RGC est remis à 0 par la machine à états SM2. La machine à états de transfert I 2 C SM2 lit les bits d’accusé de réception sur le bus I 2 C envoyés par le module esclave I 2 C et stocke la valeur 0 dans le bit de registre « Ack » RGK. Comme illustré sur la , le lecteur NFC/RFID RD envoie (étape S10) une commande de lecture RF 1000 à l’étiquette NFC/RFID pour vérifier si l’opération I2C est terminée (scrutation). À la réception de cette commande de lecture RF 1000, la machine à états RF SM1 lit le bit « commande I 2 C en mémoire tampon » contenu dans le registre RGC. La valeur de ce bit est envoyée au lecteur RD via une réponse RF 1001 ayant une structure classique compatible avec le protocole RF utilisé. Si la valeur de ce bit est 0, l’opération d’écriture I 2 C est terminée. Comme représenté sur la , le lecteur NFC/RFID RD envoie (étape S11) une commande de lecture RF 1100 à l’étiquette NFC/RFID pour lire la valeur de bit d’accusé de réception contenue dans le registre RGK pour vérifier si l’opération d’écriture I2C a réussi. L’opération d’écriture a réussi si la valeur de bit d’accusé de réception vaut 0. Plus précisément, cette commande RF 1100 est traitée par la machine à états RF SM1 qui lit la valeur contenue dans le registre RGK, l’envoie via une réponse RF 1101 au lecteur RD et réinitialise la valeur du registre RGK à la valeur 1. Comme on peut le voir à partir d’explications se rapportant aux figures 7 à 11, les registres RGD, RGW, RGC, RGR, RGK contiennent des données (un ou plusieurs bits) de commande (aussi appelée configuration) qui permettent par exemple de déterminer la présence ou l’absence d’une opération à exécuter, le type d’opération (opération d’écriture ou de lecture) ou le statut de l’opération (terminée, par exemple) ou le résultat de l’opération (réussie, par exemple). Ces registres de commande sont lus et/ou écrits - par la machine à états RF SM1 après réception d’une commande RF (demande) envoyée par le lecteur, ou - par la machine à états I 2 C SM2. Plus précisément, les registres RGD, RGW et RGC sont écrits par la machine à états RF SM1. Par exemple, si le registre RGC contient la valeur 0, cela signifie qu’il n’y a pas de commande I 2 C à exécuter par la machine à états I 2 C SM2. Si le registre RGC contient la valeur 1, cela signifie qu’il y a une commande I 2 C à exécuter par la machine à états I 2 C SM2, cette commande étant soit une opération d’écriture, soit une opération de lecture. Le type d’opération (lecture ou écriture) est déterminé par le contenu des registres RGD et RGW. Plus précisément, si la valeur contenue dans le registre RGD est nulle et que la valeur contenue dans le registre RGW est non nulle, l’opération demandée par le lecteur est une opération d’écriture. Si la valeur contenue dans le registre RGW est nulle et que la valeur contenue dans le registre RGD est non nulle, l’opération demandée par le lecteur est une opération de lecture. Le registre RGW et le registre RGD sont aussi lus par la machine à états SM2 afin de connaître le nombre d’octets à écrire ou lire dans le module esclave désigné. Le registre RGC est aussi lu par la machine à états SM2 pour savoir si une commande doit être exécutée sur le bus et est aussi écrit par la machine à états SM2 quand l’exécution de la commande a commencé. Le registre RGC est aussi lu par la machine à états SM1 après une demande du lecteur pour savoir si l’exécution d’une commande demandée est terminée. Le registre RGR est écrit par la machine à états SM2 pour indiquer que les octets lus sont stockés dans la mémoire tampon BF, et le registre RGR est aussi lu par la machine à états SM1 après une demande du lecteur pour vérifier si l’opération de lecture I 2 C est terminée. Le registre RGK (initialement réglé par exemple à 1) est écrit par la machine à états SM2 après réception de bits d’accusés de réception, lu par la machine à états SM1 lors de la demande du lecteur RD de vérifier si l’opération de lecture ou d’écriture est réussie, et réinitialisé à 1 par la machine à états SM1. Parmi ces données de commande, les données contenues dans les registres RGD et RGW sont des données de commande envoyées dans ou déduites des données utiles des commandes envoyées par le lecteur et définissant si une commande émanant du lecteur est une opération d’écriture ou une opération de lecture dans le module esclave désigné. La donnée contenue dans le registre RGC est une donnée de commande qui définit la présence ou l’absence d’une opération à exécuter sur ledit bus. La donnée contenue dans le registre RGC est aussi une donnée de commande qui indique si l’exécution d’une opération d’écriture demandée par le lecteur est terminée et la donnée contenue dans le registre RGR est une donnée de commande indiquant si l’exécution d’une opération de lecture demandée par le lecteur est terminée. La donnée contenue dans le registre RGR est aussi une donnée de commande qui indique si le résultat d’une opération de lecture demandée par le lecteur est stocké dans le transpondeur. La donnée contenue dans le registre RGK est une donnée de commande qui indique si une opération de lecture ou d’écriture demandée par le lecteur a réussi. La donne le détail d’un exemple de la machine à états de transfert RF SM1 et la donne le détail d’un exemple de machine à états de transfert I2C SM2, qui permettent toutes les deux de mettre en œuvre notamment les étapes décrites dans les figures 7 à 11. Après avoir rappelé ces considérations générales, nous faisons à présent référence plus particulièrement aux figures 14 à 17 pour décrire un mode de réalisation de l’invention. La montre un exemple d’organigramme d’un procédé pour stocker des instructions de programme informatique dans un moyen formant mémoire (mémoire flash par exemple) MF du module (ici le microcontrôleur) MD. À l’étape STP1, le lecteur RD autorise la communication avec l’étiquette TG en émettant le champ RF comme précisé dans la norme NFC/RFID en utilisation. L’étiquette est alimentée par le champ du lecteur. À l’étape STP2, le lecteur envoie des commandes RF spécifiques à l’étiquette pour modifier le niveau des broches ou bornes GPO1-GPO3, et donc GPC1-GPC3, afin de configurer le microcontrôleur dans le mode de chargeur d’amorçage. En fait, on suppose ici que le microcontrôleur MD a besoin que ses broches GPCO1-GPCO3 soient mises à un niveau spécifique pour entrer dans le mode de chargeur d’amorçage. À l’étape STP3, le lecteur envoie des commandes RF spécifiques à l’étiquette pour activer le moyen de récupération d’énergie EHM et alimenter ainsi le microcontrôleur. Le microcontrôleur démarre alors en mode de chargeur d’amorçage. À l’étape STP4, le lecteur envoie des commandes RF spécifiques à l’étiquette pour envoyer des commandes I 2 C au microcontrôleur. Cette étape STP4 permet de charger le microprogramme dans la mémoire flash MF du microcontrôleur. Une fois la programmation terminée, le lecteur à l’étape STP5 met fin à la communication avec l’étiquette. Le champ RF est supprimé et le microcontrôleur n’est plus alimenté. À l’étape STP6, le microcontrôleur est prêt à démarrer sur le nouveau microprogramme à la prochaine mise sous tension. L’étape STP2 est décrite plus en détail en référence à la . Plus précisément, le lecteur RD envoie une commande RF dédiée 1500 à l’étiquette TG pour ordonner au moyen de commande GPOCTR de changer le niveau de sortie des bornes GPO1-GPO3. Par exemple, dans la norme ISO 15693, il est possible d’utiliser un code de commande spécial (commandes dites personnalisées) CMCD suivi d’un code de fabricant de circuit intégré ICMC, pour créer des commandes RF spéciales qui ne sont pas définies par la norme. Ainsi la commande personnalisée dédiée 1500 peut être utilisée pour modifier le niveau des bornes GPO1-GPO3 de l’étiquette TG. La partie utile de la commande, située entre le début de trame SOF et la fin de trame EOF, contient le numéro GPO_id des bornes et le niveau de sortie demandé correspondant LGPO. Après avoir été traitée par un moyen conventionnel de l’étiquette, par exemple une machine à états globale, qui désencapsule la commande de la trame RF reçue, cette commande est gérée par le moyen de commande GPOCTR et, en fonction de la valeur de charge utile, le moyen de commande GPOCTR modifie le niveau de tension de la borne sélectionnée GPOi. L’étiquette envoie ainsi une réponse RF 1501 au lecteur. Comme mentionné ci-dessus, l’étiquette NFC/RFID fournit ensuite l’alimentation électrique au microcontrôleur par l’intermédiaire de la sortie de récupération d’énergie EHMS. La commande dédiée EHMCTRL qui active le moyen de récupération d’énergie EHM est aussi désencapsulée d’une trame RF reçue par la machine à états globale conventionnelle. Le microcontrôleur démarre ensuite en mode de chargeur d’amorçage, puisque les bornes de chargeur d’amorçage dédiées GPCO1-GPCO3 du microcontrôleur sont déjà réglées sur les bonnes valeurs de tension par les bornes GPO1-GPO3 de l’étiquette TG. Une fois en mode de chargeur d’amorçage, le microcontrôleur surveille l’interface série INTD pour détecter des commandes de programmation. Quand l’adresse d’esclave I 2 C du microcontrôleur MD est détectée, le chargeur d’amorçage BLD exécute des commandes I 2 C reçues connues, qui sont propres à chaque microcontrôleur et qui sont transmises en utilisant les trames du protocole I 2 C. Ceci va permettre de transmettre les instructions de microprogramme du lecteur RD au microcontrôleur MD (étape STP4), comme cela va maintenant être expliqué plus en détail. De manière générale, les commandes RF contiennent des commandes I 2 C dans leurs données utiles. Les commandes RF sont décodées et exécutées par l’étiquette, comme décrit plus haut en référence aux figures 7 à 11. L’étiquette agit physiquement comme le maître I 2 C (le lecteur est le maître du point de vue du système) et le microcontrôleur MD, en mode de chargeur d’amorçage, agit en tant qu’esclave I 2 C. L’étiquette envoie les commandes I 2 C reçues via l’interface RF au microcontrôleur. Ces commandes contiennent notamment les instructions du microprogramme. Comme mentionné ci-dessus, l’adresse d’esclave I 2 C et les adresses de mémoire destinées à interagir avec le chargeur d’amorçage sont propres à chaque microcontrôleur. Par exemple sur un microcontrôleur de la société STMicroelectronics ayant la référence STM32, les commandes de chargeur d’amorçage I 2 C sont composées d’une condition START, de l’adresse d’esclave envoyée par le maître (l’étiquette), d’une condition d’accusé de réception (ack) provenant de l’esclave (le microcontrôleur), puis d’un code de commande spécifique (1 ou 2 octets) envoyé par le maître, d’une condition « ack » fournie par l’esclave suivie d’octets envoyés ou reçus dans les deux directions possibles selon la commande, et enfin d’une condition STOP. Les figures 16 et 17 illustrent un exemple d’une séquence complète pour envoyer une commande de chargeur d’amorçage du lecteur au chargeur d’amorçage du microcontrôleur. Comme illustré sur la , le lecteur RD envoie une commande d’écriture RF 1600 à l’étiquette. Cette commande RF 1600 est une commande d’écriture analogue à la commande d’écriture représentée sur la . Les données utiles de la commande RF contiennent une première commande de chargeur d’amorçage incluant tous les octets de la commande I 2 C destinée au chargeur d’amorçage du microcontrôleur. En particulier les données utiles contiennent l’adresse d’esclave I 2 C du microcontrôleur MD et l’octet I 2 C 1 est le code de commande de chargeur d’amorçage spécifique BLDCCD. Les autres octets sont des instructions du microprogramme à stocker dans la mémoire flash MF du microcontrôleur MD. Bien entendu, plusieurs commandes d’écriture peuvent être nécessaires pour charger le microprogramme entier. Le traitement de cette commande RF 1600 est analogue à celui décrit pour la commande d’écriture 800 de la . Comme illustré sur la , l’étiquette TG envoie ensuite la commande I2C provenant du lecteur NFC/RFID au microcontrôleur sur le bus I2C (ici, une trame d’écriture I2C). Le traitement de cette commande d’écriture I 2 C est analogue à celui décrit pour la commande d’écriture de la . En particulier, la machine à états de transfert I 2 C SM2 lit des octets I 2 C dans la mémoire tampon BF et les envoie sur le bus I 2 C au module esclave correspondant, en ajoutant des conditions de signalisation (conditions START et STOP). Ceci forme une deuxième commande de chargeur d’amorçage, cohérente avec le protocole I 2 C. La machine à états SM2 a ainsi transformé la première commande de chargeur d’amorçage incorporée dans la commande RF 1600 en ladite deuxième commande de chargeur d’amorçage cohérente avec le protocole I 2 C. La machine à états de transfert I 2 C SM2 lit les bits d’accusé de réception Ack sur le bus I 2 C envoyés par le module esclave I 2 C et stocke la valeur 0 dans le bit de registre « Ack » RGK. Le lecteur scrute ensuite l’étiquette au moyen de commandes RF, pour vérifier le statut de l’exécution de commande I 2 C. Cette scrutation est réalisée comme expliqué en référence à la . En particulier, le lecteur RD envoie une commande de lecture RF à l’étiquette pour vérifier si l’opération I 2 C est terminée (scrutation). À la réception de cette commande de lecture RF, la machine à états RF SM1 lit le bit « commande I 2 C dans mémoire tampon » contenu dans le registre RGC. La valeur de ce bit est envoyée au lecteur RD via une réponse RF 1601 ( ) ayant une structure classique respectant le protocole RF utilisé. Si la valeur de ce bit est 0, l’opération d’écriture I 2 C est terminée. Ensuite, comme expliqué en référence à la , le lecteur RD envoie une commande de lecture RF à l’étiquette pour lire la valeur de bit d’accusé de réception contenue dans le registre RGK pour vérifier si l’opération d’écriture I2C a réussi. L’opération d’écriture (c’est-à-dire le chargement des instructions de microprogramme) est réussie si la valeur de bit d’accusé de réception est égale à 0. L’exemple de la machine à états de transfert RF SM1 et l’exemple de la machine à états de transfert I 2 C SM2 illustrés sur les figures 12 et 13 permettent de mettre en œuvre en particulier les étapes du procédé décrit sur les figures 14 à 17, notamment le traitement des première et deuxième commandes de chargeur d’amorçage. Lorsque la programmation de la mémoire flash du microcontrôleur est terminée, le lecteur NFC/RFID peut commander le niveau des bornes GPCO1-GPCO3 du microcontrôleur pour désactiver le chargeur d’amorçage, afin que le démarrage suivant du microcontrôleur ne se fasse que sur la mémoire flash MF. L’invention n’est pas limitée aux exemples ci-dessus, elle peut être étendue à d’autres technologies RFID : UHF (ISO18000-6, ISO18000-63, EPC Gen2). En outre, l’invention peut être étendue à d’autres protocoles de bus. Par exemple, un autre protocole possible est le SPI (interface périphérique série) (transmission bidirectionnelle à l’alternat (« half duplex » en anglais) ou transmission bidirectionnelle simultanée (« full duplex » en anglais)) comme expliqué plus en détail dans la demande PCT susmentionnée. En particulier, un exemple d’étiquette TG1, compatible avec l’utilisation du protocole SPI, est représenté sur la . Ce transpondeur (ou étiquette) à double interface TG1 intègre : une interface sans contact INT10, une interface maître SPI INT20, un premier moyen formant mémoire volatile comprenant une mémoire tampon (FIFO) d’émission (Tx) BFT pour stocker des octets SPI à transmettre, et une mémoire tampon (FIFO) de réception (Rx) BFR pour stocker les octets SPI reçus ; un deuxième moyen formant mémoire volatile comprenant une pluralité de registres, par exemple les suivants : un registre RGCF pour stocker une configuration SPI (phase/polarité d’horloge, vitesse d’horloge, ordre de bits, mode de transmission bidirectionnelle simultanée ou à l’alternat) ; un registre (compteur) DCNT pour stocker le nombre total d’octets SPI à transmettre et recevoir ; un registre (compteur) TXCNT pour stocker le nombre d’octets à transmettre en mode de transmission bidirectionnelle à l’alternat ; un registre à décalage SR pour stocker des données émises et reçues en transmission bidirectionnelle simultanée ; un registre RGRT pour stocker un bit destiné à signaler que le SPI est prêt à émettre (la mémoire tampon Tx a été remplie) ; un registre RGTC pour stocker un bit destiné à signaler que l’émission/réception SPI est achevée (mémoire tampon Tx BFT a été vidée, mémoire tampon Rx BFR a été remplie) ; une première machine à états SM10 pour la commande en transfert sans contact (RF) ; une deuxième machine à états SM20 pour la commande en transfert SPI. Le protocole SPI est bien connu de l’homme de l’art. On rappelle ci-après certaines caractéristiques du protocole SPI relativement aux figures 19 à 21. Comme illustré sur la , le maître est relié à un ou plusieurs esclaves via 4 lignes (dans un mode de transmission bidirectionnelle simultanée) ou plus : SCLK : horloge MOSI : sortie maître, entrée esclave, pour transmettre des données à un esclave MISO : entrée maître, sortie esclave, pour recevoir des données d’un esclave SS : ligne de sélection d’esclave (active niveau bas pour sélectionner l’esclave). Dans le mode de transmission bidirectionnelle à l’alternat (appelé « mode à 3 fils »), les données sont transmises et reçues sur la même ligne (MOSI = MISO). Comme mentionné ci-dessus, le système SPI peut être configuré pour fonctionner avec un seul maître et un seul esclave, et il peut être configuré avec plusieurs esclaves commandés par un seul maître. Il y a deux façons de relier plusieurs esclaves au maître. Si le maître a plusieurs broches de sélection d’esclave, les esclaves peuvent être câblés en parallèle. Si une seule broche de sélection d’esclave est disponible, les esclaves peuvent être reliés en cascade. Le signal d’horloge SCLK synchronise la sortie de bits de données du maître à l’échantillonnage de bits par l’esclave. Un bit de donnée est transféré à chaque cycle d’horloge, de sorte que la vitesse de transfert des données est déterminée par la fréquence du signal d’horloge. La communication SPI est toujours déclenchée par le maître puisque le maître configure et génère le signal d’horloge. Le maître peut choisir avec quel esclave il veut dialoguer en mettant la ligne SS de l’esclave à un niveau de tension bas. Dans l’état inactif, sans transmission, la ligne de sélection d’esclave est maintenue à un niveau de tension haut. Le maître envoie des données à l’esclave bit par bit, en série via la ligne MOSI. L’esclave reçoit les données envoyées par le maître sur la broche MOSI. Les données envoyées du maître à l’esclave sont généralement, mais pas obligatoirement, envoyées avec le bit de poids fort (MSB) en premier. L’esclave peut aussi envoyer en retour des données au maître via la ligne MISO en série. Les données envoyées de l’esclave au maître sont généralement envoyées avec le bit de poids faible (LSB) en premier. Les données ne sont valides que pendant le niveau bas de SS. Comme montré sur la , le bus SPI est bidirectionnel simultané, basé sur l’échange de données dans un registre à décalage. Les bits du registre à décalage maître sont poussés dans le registre à décalage esclave. En même temps, les bits du registre à décalage esclave sont poussés dans le registre à décalage maître. Comme représenté sur la , les données sont échantillonnées sur SCLK, avec une phase configurable CPHA et une polarité CPOL. Plus précisément, le signal d’horloge SCLK en SPI peut être modifié en utilisant les propriétés de la polarité d’horloge et de la phase d’horloge. Ces deux propriétés coopèrent pour définir quand les bits sont délivrés et quand ils sont échantillonnés. La polarité d’horloge peut être réglée par le maître pour permettre aux bits d’être délivrés et échantillonnés soit sur le front montant, soit sur le front descendant du cycle d’horloge. La phase d’horloge peut être réglée pour que la sortie et l’échantillonnage se produisent soit sur le premier front, soit sur le deuxième front du cycle d’horloge, qu’il soit montant ou descendant. Les étapes de la transmission de données SPI sont les suivantes : Le maître délivre le signal d’horloge ; le maître fait passer la broche SS à un état de tension bas, ce qui active l’esclave ; le maître envoie les données bit par bit à l’esclave sur la ligne MOSI. L’esclave lit les bits à mesure qu’il les reçoit ; si une réponse est nécessaire, l’esclave renvoie des données bit par bit au maître sur la ligne MISO. Le maître lit les bits à mesure qu’il les reçoit. Les registres RGCF, RGRT, RGTC, DCNT, TXCNT contiennent des données (un ou plusieurs bits) de commande (appelée aussi configuration) qui permettent par exemple de déterminer la configuration SPI, ou d’indiquer un statut « prêt à transmettre » ou le statut de l’opération (par exemple terminée) ou le nombre d’octets à transmettre. Ces registres de commande sont lus et/ou écrits : - par la machine à états RF SM10 lors de la réception d’une commande RF (demande) envoyée par le lecteur, ou - par la machine à états SPI SM20. Plus précisément, les registres RGCF, RGRT, DCNT, TXCNT et RGTC sont écrits par la machine à états RF SM10. Par exemple si le registre RGRT contient la valeur 0, cela signifie qu’il n’y a pas de commande SPI à exécuter par la machine à états SPI SM20. Si le registre RGRT contient la valeur 1, cela signifie qu’il y a une commande SPI à exécuter par la machine à états SPI SM20. Le nombre d’octets à transmettre sur le bus SPI est déterminé par le contenu des registres DCNT et éventuellement TXCNT. À cet égard, les registres DCNT et TXCNT sont également lus par la machine à états SM20. Le registre RGRT est aussi lu par la machine à états SM20 pour savoir si une commande doit être exécutée sur le bus et aussi écrit par la machine à états SM20 quand l’exécution de la commande est terminée. Le registre RGTC est écrit par la machine à états SPI SM20 quand l’exécution de la commande est terminée et est lu par la machine à états SM10 à la demande du lecteur pour savoir si l’exécution d’une commande demandée est terminée. Ce registre RGTC est aussi réinitialisé par la machine à états SM10. Parmi ces données de commande, les données contenues dans les registres RGCF, DCNT et TXCNT sont des premières données de commande envoyées dans ou déduites des données utiles des commandes envoyées par le lecteur. La détaille un exemple de la machine à états de transfert RF SM10 et la détaille un exemple de machine à états de transfert SPI SM20, toutes deux permettant de mettre en œuvre en particulier les étapes du procédé de stockage d’instructions de microprogramme utilisant un protocole SPI, notamment le traitement des première et deuxième commandes de chargeur d’amorçage. Système comprenant un lecteur sans contact (RD) et un appareil (APP), ledit appareil comportant un transpondeur sans contact (TG), ledit transpondeur comportant une interface sans contact (INT1) et une interface câblée de transpondeur (INT2) et étant configuré pour communiquer avec ledit lecteur selon un protocole sans contact par l’intermédiaire de ladite interface sans contact, ledit appareil comportant un bus (BS) couplé à ladite interface câblée de transpondeur et au moins un module (MD) couplé audit bus, ledit au moins un module comportant une unité de traitement (PRU), ledit lecteur étant configuré pour communiquer des instructions d’un programme informatique exécutables par l’unité de traitement audit au moins un module (MD), via le transpondeur (TG). Système selon la revendication 1, dans lequel le lecteur et le transpondeur sont configurés de telle sorte que le lecteur (RD) est le maître sur ledit bus pendant la communication desdites instructions. Système selon l’une quelconque des revendications précédentes, dans lequel ledit au moins un module comprend un moyen formant mémoire (MF), un chargeur d’amorçage (BLD) et un mode de chargeur d’amorçage dans lequel le chargeur d’amorçage est configuré pour stocker lesdites instructions dans ledit moyen formant mémoire (MF). Système selon la revendication 3, dans lequel ledit lecteur (RD) est en outre configuré pour activer le mode de chargeur d’amorçage par l’intermédiaire du transpondeur (TG). Système selon la revendication 4, dans lequel ledit au moins un module a au moins une borne de module (GPCi) dédiée à l’activation du mode de chargeur d’amorçage et ledit transpondeur a au moins une borne de transpondeur (GPOi) couplée à ladite au moins une borne de module et un moyen de commande (GPOCTR) configuré pour mettre ladite au moins une borne de transpondeur à au moins un niveau de tension en réponse à une commande d’activation de mode de chargeur d’amorçage transmise par le lecteur via l’interface sans contact. Système selon l’une quelconque des revendications précédentes, dans lequel le transpondeur comprend un moyen de transfert (SM1, SM2) configuré pour mettre en œuvre une fonction de transfert pour l’échange de messages entre le lecteur et ledit au moins un module pendant la communication des instructions du programme informatique. Système selon la revendication 6, dans lequel le lecteur (RD) est configuré pour initier au moins une première commande de chargeur d’amorçage dans au moins une trame cohérente avec ledit protocole sans contact, ladite au moins une première commande de chargeur d’amorçage contenant des premières données utiles incluant les instructions du programme informatique, et ledit moyen de transfert est configuré pour transformer ladite au moins une première commande de chargeur d’amorçage en au moins une deuxième commande de chargeur d’amorçage sur le bus cohérente avec un protocole utilisé sur ledit bus. Système selon la revendication 7, dans lequel ledit moyen de transfert comprend un premier moyen formant mémoire volatile (BF) configuré pour mettre en mémoire tampon lesdites premières données utiles et des deuxièmes données utiles de réponses destinées à être envoyées au lecteur via ladite interface sans contact. Système selon la revendication 7 ou 8, dans lequel ledit moyen de transfert comprend en outre un deuxième moyen formant mémoire volatile (RGD, RGW, RGC, RGR, RGK) configuré pour stocker des données de commande, ledit moyen de transfert étant configuré pour mettre en œuvre ladite fonction de transfert pour l’échange de messages entre le lecteur et ledit au moins un module, en se basant sur lesdites données de commande. Système selon la revendication 8 ou 9, dans lequel ledit moyen de transfert comprend en outre : - une première machine à états (SM1) configurée pour coopérer avec ledit lecteur via l’interface sans contact et configurée pour écrire/lire ledit premier moyen formant mémoire et une partie dudit deuxième moyen formant mémoire d’après des commandes transmises par le lecteur, - une deuxième machine à états (SM2) configurée pour coopérer avec ledit bus via ladite interface câblée d’après le contenu d’une partie dudit deuxième moyen formant mémoire et configurée pour écrire/lire ledit premier moyen formant mémoire et une partie dudit deuxième moyen formant mémoire. Système selon la revendication 10, dans lequel ladite deuxième machine à états (SM2) est configurée pour lire lesdites premières données utiles dans le premier moyen formant mémoire volatile et pour les exécuter sur le bus, pour gérer l’horloge et toutes les informations de signalisation de protocole de bus. Système selon la revendication 11, dans lequel ladite deuxième machine à états (SM2) est configurée pour lire les réponses du bus et pour les stocker dans le premier moyen formant mémoire volatile pour qu’elles soient lues par la première machine à états. Système selon l’une quelconque des revendications précédentes, dans lequel ledit bus (BS) est un bus I 2 C. Système selon les revendications 7 et 13, dans lequel ladite au moins une première commande de chargeur d’amorçage initiée par le lecteur (RD) comprend au moins une demande d’une opération d’écriture dans ledit au moins un module. Système selon la revendication 14, dans lequel ladite au moins une demande d’une opération d’écriture dans ledit au moins un module comprend l’adresse dudit au moins un module, un code de commande spécifique (CMCD) et au moins une partie des instructions à écrire dans ledit moyen formant mémoire. Système selon l’une quelconque des revendications 1 à 12, dans lequel ledit bus (BS) est un bus SPI. Système selon les revendications 7 et 16, dans lequel ladite au moins une première commande de chargeur d’amorçage initiée par le lecteur (RD) comprend au moins une commande d’écriture. Système selon l’une quelconque des revendications précédentes, dans lequel le transpondeur comprend un moyen de récupération d’énergie réglable (EHM) configuré pour alimenter ledit au moins un module, et le lecteur est configuré pour envoyer une commande spécifique au transpondeur afin d’activer ledit moyen de récupération d’énergie. Lecteur appartenant à un système selon l’une quelconque des revendications précédentes. Transpondeur appartenant à un système selon l’une quelconque des revendications 1 à 18. Appareil appartenant à un système selon l’une quelconque des revendications 1 à 18. Procédé pour stocker des instructions de programme informatique dans un moyen formant mémoire (MF) d’au moins un module (MD) comportant une unité de traitement, ledit procédé comprenant les étapes suivantes : - fournir un transpondeur (TG) comportant une interface sans contact et une interface câblée de transpondeur, - coupler un bus (BS) entre ladite interface câblée de transpondeur et ledit au moins un module, - faire communiquer par ledit lecteur (RD) lesdites instructions de programme informatique au transpondeur via l’interface sans contact selon un protocole sans contact, - faire communiquer par le transpondeur (TG) les instructions de programme informatique sur le bus audit au moins un module. Procédé selon la revendication 22, comprenant en outre le fait de faire agir le lecteur (RD) en tant que maître sur ledit bus pendant la communication desdites instructions de programme informatique. Procédé selon la revendication 22 ou 23, comprenant les étapes suivantes : - munir ledit au moins un module d’un moyen formant mémoire (MF) et d’un chargeur d’amorçage (BLD), - placer ledit au moins un module dans un mode de chargeur d’amorçage, - faire stocker par le chargeur d’amorçage (BLD) lesdites instructions de programme informatique dans ledit moyen formant mémoire. Procédé selon la revendication 24, comprenant en outre le fait de faire activer par le lecteur (RD) le mode de chargeur d’amorçage par l’intermédiaire du transpondeur (TG). Procédé selon la revendication 25, comprenant en outre les étapes suivantes : - munir ledit au moins un module d’au moins une borne de module (GPCi) dédiée à l’activation du mode de chargeur d’amorçage, - munir ledit transpondeur d’au moins une borne de transpondeur (GPOi) couplée à ladite au moins une borne de module, - faire envoyer par le lecteur (RD) une commande d’activation de mode de chargeur d’amorçage au transpondeur via l’interface sans contact et - faire mettre par le transpondeur ladite au moins une borne de transpondeur à au moins un niveau de tension en réponse à ladite commande d’activation de mode de chargeur d’amorçage. Procédé selon l’une quelconque des revendications 22 à 26, comprenant en outre les étapes suivantes, exécutées par le transpondeur : - stocker des données de commande, et - mettre en œuvre une fonction de transfert (SM1, SM2) pour l’échange de messages entre le lecteur et ledit au moins un module basé sur lesdites données de commande, pendant la communication des instructions du programme informatique. Procédé selon les revendications 24 et 27, comprenant les étapes suivantes : - faire initier par le lecteur (RD) au moins une première commande de chargeur d’amorçage dans au moins une trame cohérente avec ledit protocole sans contact, ladite au moins une première commande de chargeur d’amorçage contenant des premières données utiles qui incluent les instructions du programme informatique, et - faire transformer par ladite fonction de transfert ladite au moins une première commande de chargeur d’amorçage en au moins une deuxième commande de chargeur d’amorçage sur le bus cohérente avec un protocole utilisé sur ledit bus. Procédé selon l’une quelconque des revendications 22 à 28, dans lequel ledit bus (BS) est un bus I 2 C ou un bus SPI. Procédé selon l’une quelconque des revendications 22 à 29, comprenant en outre le fait de munir le transpondeur d’un moyen de récupération d’énergie réglable (EHM) configuré pour alimenter ledit au moins module, et de faire envoyer par le lecteur (RD) une commande spécifique au transpondeur afin d’activer ledit moyen de récupération d’énergie.