Brevet FR2969337A1 — publié le 20120622

Arrière-plan de l'invention L'invention se situe dans le domaine des dispositifs électroniques, et plus précisément dans celui de l'installation de pilotes logiciels pouvant être installés sur une station hôte apte à communiquer avec de tels dispositifs. Elle s'applique de façon privilégiée mais non limitative aux dispositifs électroniques. Dans ce document, l'expression « dispositif USB » désigne tout dispositif dont l'interface physique avec la station hôte est conforme à la spécification USB (acronyme de « Universal Serial Bus » pour bus série universel) et apte à communiquer selon un protocole conforme à cette spécification. De façon connue, un pilote logiciel approprié au type de dispositif USB doit être installé dans la station hôte pour que celle-ci puisse l'utiliser. 20 On connaît notamment : - le pilote logiciel MASS STORAGE permettant à la station hôte de communiquer avec un périphérique USB vu comme une unité de stockage de masse, et en particulier de type CD-ROM virtuel permettant à la station hôte de télécharger un fichier à exécution automatique connu sous le nom 25 de fichier autorun.inf ; - le pilote logiciel CCID (acronyme de Chip/Smart Card Interface Devices) permettant à la station hôte de communiquer avec un dispositif USB de type « carte intelligente » ; et - le pilote logiciel EEM (acronyme de Ethernet Emulation Model) 30 permettant à la station hôte de communiquer avec le dispositif conformément au protocole Ethernet et donc de voir le dispositif USB comme une carte de communication de type Ethernet. Il est fréquent que le pilote logiciel MASS STORAGE soit préinstallé dans les stations hôtes, mais ce n'est pas le cas pour les pilotes logiciels 35 d'autres types. L'invention permet de faciliter l'installation de tels pilotes. 1 Objet et résumé de l'invention Plus précisément, l'invention concerne un dispositif électronique comportant : - une première mémoire mémorisant au moins un pilote logiciel et un fichier informatique dit « d'installation », ce fichier d'installation téléchargeable par une station hôte du dispositif comportant des instructions permettant à la station hôte, lorsqu'elles sont exécutées par un processeur de la station hôte : - de télécharger le pilote à partir de la première mémoire, dans une mémoire de la station hôte ; et - d'envoyer une commande déterminée au dispositif ; - des moyens de réception de cette commande ; - des moyens aptes, sur réception de ladite commande, à sélectionner et enregistrer d'au moins une description d'interface associée à ce pilote dans une deuxième mémoire dudit dispositif en vue d'un prochain processus de déclaration ; et - des moyens pour déclarer cette description d'interface à la station hôte lors du prochain processus de déclaration. Corrélativement, l'invention concerne aussi un procédé de gestion d'un dispositif électronique comportant, dans une première mémoire, au moins un pilote logiciel et un fichier informatique dit « d'installation », ce fichier d'installation téléchargeable par une station hôte du dispositif comportant des instructions permettant à la station hôte, lorsqu'elles sont exécutées par un processeur de la station hôte : - de télécharger le pilote à partir de la première mémoire, dans une mémoire de la station hôte ; et - d'envoyer une commande déterminée au dispositif. Ce procédé comporte : - une étape de réception de la commande ; - sur réception de la commande, une étape de sélection et d'enregistrement d'au moins une description d'interface associée au pilote dans une deuxième mémoire du dispositif en vue d'un prochain processus de déclaration ; et - une étape de déclaration de la description d'interface à la station hôte lors du prochain processus de déclaration. 2 Ainsi, et de façon très avantageuse, l'invention permet de télécharger automatiquement un pilote logiciel dans la station hôte sans intervention de l'utilisateur. Dans un mode préféré de réalisation, le téléchargement du pilote est effectué avant l'étape de déclaration. Cette caractéristique permet d'éviter la survenance d'un message d'erreur ou d'un message à l'utilisateur de la station hôte lui indiquant que le pilote logiciel est absent et qu'il doit être téléchargé. Dans un mode préféré de réalisation, le dispositif comporte des moyens pour provoquer le prochain processus de déclaration suite à la réception de la commande. A cet effet, le dispositif peut comporter des moyens pour provoquer une réinitialisation du bus de communication avec la station hôte après réception de la commande. Dans un mode particulier de réalisation du dispositif selon l'invention, la première mémoire comporte un programme à lancement automatique téléchargeable par la station hôte et comportant des instructions permettant à la station hôte, lorsqu'elles sont exécutées par un processeur de la station hôte, de télécharger et d'exécuter le fichier d'installation. Dans un mode préféré de réalisation, le dispositif électronique selon l'invention est un dispositif USB, le processus de déclaration correspondant à un processus d'énumération USB. Préférentiellement, ce dispositif USB comporte, dans sa deuxième mémoire, une description d'interface USB de type MASS STORAGE, le programme à lancement automatique étant associé à l'interface USB de type MASS STORAGE. Un tel programme à lancement automatique est connu de l'homme du métier sous le nom « autorun ». Ce mode de réalisation permet avantageusement de télécharger le fichier d'installation lui-même de façon automatique. Dans un mode particulier de réalisation, le programme à lancement automatique comporte des instructions pour éviter le téléchargement des pilotes et l'envoi de la commande par la station hôte, lorsque le pilote est déjà mémorisé dans une mémoire de la station hôte. Il a été dit que l'invention permettait un fonctionnement parfaitement automatique, sans aucune intervention de l'utilisateur. Cependant, dans une variante de réalisation, il peut être souhaitable de demander explicitement à l'utilisateur s'il souhaite utiliser une interface particulière. L'invention propose alors d'insérer l'identifiant des interfaces choisies dans la commande. Par conséquent, dans un mode particulier de réalisation, les moyens d'enregistrement du dispositif selon l'invention sont aptes à sélectionner la description d'interface à enregistrer dans la deuxième mémoire en fonction d'une information contenue dans la commande. Les différentes étapes du procédé de gestion sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes du procédé de gestion tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront dans la description faite ci-dessous en référence aux dessins qui en illustrent un mode de réalisation dépourvu de tout caractère limitatif. Sur les dessins : - la figure 1 représente un dispositif électronique conforme à un mode de réalisation de l'invention, connecté à une station hôte ; et - la figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de gestion conforme à un mode particulier de réalisation de l'invention. Description détaillée d'un mode de réalisation La figure 1 représente une station hôte 1000, par exemple un ordinateur personnel de type PC, ou un téléphone mobile, reliée par un connecteur 3000 à un dispositif 2000 conforme à un mode particulier de réalisation de l'invention. Dans le mode de réalisation décrit ici le dispositif 2000 est un dispositif USB 2000, par exemple une clef USB et le connecteur 3000 est conforme aux spécifications de la norme USB. La station hôte 1000 est tout à fait conventionnelle et seuls les éléments utiles à la compréhension de l'invention ont été représentés. Elle comporte notamment un processeur 1400, et une mémoire non volatile réinscriptible 1100 dans laquelle sont enregistrés : - un programme 1110 de gestion de la communication USB avec le dispositif USB 2000 ; - un pilote logiciel 1120 de la classe USB « MASS STORAGE » permettant à la station hôte 1000 de communiquer avec le dispositif USB 2000, celui-ci étant vu comme une mémoire de masse de type CD-ROM virtuel ; et - un pilote logiciel 1130 de la classe USB « HID» (Human Interface Device). Le dispositif USB 2000 est apte à communiquer avec la station hôte 1000 conformément au protocole USB. Il comporte un processeur 2300, une mémoire vive de type RAM 2301, une mémoire morte de type ROM 2302, une première mémoire non volatile réinscriptible 2400 pour mémoriser des données, et une deuxième mémoire non volatile réinscriptible 2800 de type système. Les mémoires 2400 et 2800 sont par exemple de type EEPROM. La mémoire morte de type ROM 2302 constitue un support au sens de l'invention. Elle mémorise un programme d'ordinateur PG comportant des instructions pour l'exécution des étapes d'un procédé de gestion selon l'invention, et dont les principales étapes sont représentées à la figure 2. La mémoire système 2800 comporte un système d'exploitation 2810 qui gère notamment le contrôle de la première mémoire non volatile 2400 et la communication USB avec la station hôte 1000. La mémoire 2800 comporte aussi une zone dans laquelle peuvent être mémorisés les descripteurs d'interface USB qui doivent être communiqués à la station hôte 1000 lors d'un processus de déclaration, connu sous le nom de processus ou de phase d'énumération dans le contexte de la norme USB. Dans le mode de réalisation décrit ici, la mémoire de données 2400 mémorise un programme à lancement automatique 2401. Conformément à l'invention, la mémoire de données 2400 mémorise en outre au moins un pilote logiciel. Dans l'exemple de réalisation décrit ici, la mémoire 2400 mémorise plus précisément deux pilotes logiciels, à savoir : - un pilote logiciel CCID 2411 (acronyme de Chip/Smart Card Interface Devices) nécessaire pour permettre à la station hôte 1000 de communiquer avec un dispositif USB 2000 lorsque celui-ci émule une carte intelligente ; et - un pilote logiciel EEM 2412 (acronyme de Ethernet Emulation Model) pour permettre à la station hôte 1000 de communiquer avec le dispositif USB 2000 lorsque-celui-ci émule une carte de communication de type Ethernet. Conformément à l'invention, la mémoire de données 2400 comporte en outre un fichier informatique 2420 permettant le téléchargement des pilotes 2411, 2412 par la station hôte 1000 et leur installation dans la mémoire 1100 de la station hôte 1000. Lorsque le dispositif USB 2000 est inséré dans un port USB de la station hôte 1000, le processeur 1400 de la station hôte 1000 détecte la présence du dispositif USB et établit une communication (étape E10) avec le dispositif 2000 conformément au protocole USB. La station hôte 1000 interroge ensuite le dispositif USB 2000 dans une première phase d'énumération pour identifier les périphériques USB nouvellement connectés (étape E20). Lors de cette première phase d'énumération, le système d'exploitation 2810 du dispositif USB 2000 ne s'énumère que comme une mémoire de mass MASS STORAGE de type CD-ROM virtuel. Le programme de gestion 1110 de la station hôte recherche ensuite la présence d'un programme à lancement automatique 2401 dans la mémoire de données 2400 du dispositif USB, le découvre et le télécharge 35 en coopération avec le système d'exploitation 2810 (étape E30). Ce programme est exécuté par le processeur 1400 de la station hôte 1000. Dans le mode de réalisation décrit ici, le programme à lancement automatique 1401 comporte des instructions pour vérifier si les pilotes 2411, 2412 sont déjà mémorisés dans la mémoire 1100 de la station hôte. Dans le scénario décrit ici, ce n'est pas le cas et l'exécution du programme à lancement automatique 1401 se poursuit par une étape E40 au cours de laquelle le processeur 1400 de la station hôte 1000 télécharge, en coopération avec le système d'exploitation 2810, le fichier d'installation 2420. Le processeur 1400 exécute alors (étape [45) les instructions de ce fichier et télécharge les pilotes 2411, 2412 à partir de la mémoire non volatile 2400 ; il les installe dans la mémoire 1100 de la station hôte 1000. Puis, la station hôte 1000 envoie une commande prédéterminée au dispositif USB 2000 conformément aux instructions du programme à lancement automatique 1401. Dans le mode préféré de réalisation décrit ici, cette commande ne comporte pas de paramètre. En variante elle pourrait contenir l'identifiant des interfaces USB que l'utilisateur souhaite effectivement utiliser.. Cette commande est reçue par le dispositif USB lors d'une étape E50. Conformément à l'invention, le dispositif USB 2000 enregistre les descriptions d'interface USB associés aux pilotes logiciels 2411, 2412 dans la zone de la mémoire système 2800 réservée aux descripteurs d'interface USB (étape E60). Si la commande reçue à l'étape E50 comporte des identifiants d'interface USB, seules les descriptions correspondantes sont enregistrées. Dans le mode de réalisation décrit ici, le dispositif USB provoque une phase d'énumération USB (étape E70) en réinitialisant le bus USB 3000 de communication avec la station hôte 1000. En variante, cette opération pourrait être effectuée par la station hôte 1000 après qu'elle a envoyé la commande, un délai minimum devant être respecté pour laisser le temps au dispositif USB 2000 d'enregistrer les descripteurs d'interface USB dans la mémoire système 2800. Un nouveau processus d'énumération est donc déclenché, au cours duquel le système d'exploitation 2810 s'énumère conformément aux descripteurs d'interface enregistrés dans la mémoire système 2800 (étape E70). Le contrôleur 1100 de la station hôte exécute alors les pilotes logiciels correspondant aux classes énumérées : - pilote 1100 pour mémoire de masse ; - pilote 1130 de classe HID ; - pilote 2411 CCID ; et - pilote 2412 EEM. Le processeur 1400 de la station hôte 1000 exécute à nouveau le 10 programme à lancement automatique 2401. Mais lors de cette deuxième exécution, le processeur 1400 détecte que les pilotes 2411, 2412 sont déjà installés dans la mémoire 1100, de sorte qu'il ne cherche pas à les télécharger et qu'il n'envoie pas la commande prédéterminée. 15 Le dispositif USB 2000 peut donc être utilisé par la station hôte 1000, en mode « carte intelligente » et « carte Ethernet ». REVENDICATIONS1. Dispositif électronique (2000) caractérisé en ce qu'il comporte : - une première mémoire (2400) mémorisant au moins un pilote logiciel (2411, 2412) et un fichier informatique (2420) dit « d'installation », ce fichier d'installation téléchargeable par une station hôte (1000) dudit dispositif (2000) comportant des instructions permettant à ladite station hôte (1000), lorsqu'elles sont exécutées par un processeur (1400) de ladite station hôte (1000) : - de télécharger ledit au moins un pilote (2411, 2412) à partir de ladite première mémoire (2400), dans une mémoire (1100) de ladite station hôte (1000) ; - d'envoyer une commande déterminée audit dispositif (2000) ; - des moyens de réception de ladite commande ; et - des moyens aptes, sur réception de ladite commande, à sélectionner et à enregistrer (2300, 2810) au moins une description d'interface associée audit au moins un pilote (2411, 2412) dans une deuxième mémoire (2800) dudit dispositif en vue d'un prochain processus de déclaration ; et - des moyens pour déclarer ladite au moins une description d'interface à ladite station hôte (1000) lors dudit prochain processus de déclaration. 2. Dispositif (2000) selon la revendication 1, caractérisé en ce qu'il comporte des moyens pour provoquer ledit prochain processus de déclaration suivant suite à la réception de ladite commande. 3. Dispositif (2000) selon la revendication 1 ou 2, caractérisé en ce que - ladite première mémoire (2400) comporte un programme à lancement automatique (2401) téléchargeable par la station hôte (1000), ce 30 programme (2401) comportant des instructions permettant à ladite station hôte (1000), lorsqu'elles sont exécutées par un processeur (1400) de ladite station hôte (1000), de télécharger et d'exécuter ledit fichier d'installation (2420). 35 4. Dispositif (2000) selon la revendication 3, caractérisé en ce que ledit programme à lancement automatique (autorun) comporte des25instructions pour éviter ledit téléchargement et l'envoi de ladite commande par ladite station hôte (1000), lorsque ledit au moins un pilote (2411, 2412) est déjà mémorisé dans une mémoire (1100) de ladite station hôte (1000). 5. Dispositif (2000) selon l'une quelconque des revendications 1 à 4, caractérisé en ce lesdits moyens d'enregistrement sont aptes à sélectionner ladite description d'interface à enregistrer dans ladite deuxième mémoire (2800) en fonction d'une information contenue dans ladite commande. 6. Dispositif (2000) selon l'une quelconque des revendications 1 à 5, ledit dispositif étant un dispositif USB. 7. Dispositif USB (2000) suivant les revendications 3 et 6, caractérisé en ce que ladite deuxième mémoire (2800) comporte en outre une description d'interface USB de type MASS STORAGE, ledit programme à lancement automatique étant associé à l'interface USB de type MASS STORAGE. 8. Procédé de gestion d'un dispositif électronique (2000) comportant une première mémoire (2400) comportant au moins un pilote logiciel (2411, 2412) et un fichier informatique (2420) dit « d'installation », ce fichier d'installation étant téléchargeable (E40) par une station hôte (1000) dudit dispositif (2000) comportant des instructions permettant à ladite station hôte (1000), lorsqu'elles sont exécutées par un processeur (1400) de ladite station hôte (1000) : - de télécharger (E45) ledit au moins un pilote (2411, 2412) à partir de ladite première mémoire (2400), dans une mémoire (1100) de 30 ladite station hôte (1000) ; - d'envoyer (E50) une commande déterminée audit dispositif (2000) ; - une étape (E50) de réception de ladite commande ; et - sur réception de ladite commande, une étape de sélection et 35 d'enregistrement (E60) d'au moins une description d'interface associéeaudit au moins un pilote (2411, 2412) dans une deuxième mémoire (2800) dudit dispositif en vue d'un prochain processus de déclaration; et - une étape (E70) de déclaration de ladite description d'interface à ladite station hôte (1000) lors dudit prochain processus de déclaration. 9. Procédé de gestion selon la revendication 8, caractérisé en ce que ledit téléchargement (E45) est effectué avant ladite étape (E70) de déclaration. 10 10. Programme d'ordinateur (PG) comportant des instructions pour l'exécution des étapes du procédé de gestion selon l'une quelconque des revendications 8 ou 9 lorsque ledit programme est exécuté par un ordinateur. 15 11. Support d'enregistrement (2302) lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur (PG) comprenant des instructions pour l'exécution des étapes du procédé de gestion selon l'une quelconque des revendications 7 ou 8.5