Brevet FR2947930A1 — publié le 20110114

DETECTION D'ATTACHEMENT USB La présente invention se rapporte à la détection d'attachement USB (pour `Universal Serial Bus' en anglais). Elle concerne plus particulièrement un dispositif ayant un port de type USB pour la communication de données avec un autre dispositif, et plus particulièrement la gestion de la consommation électrique d'un tel dispositif. Le vocable "USB" désigne un protocole de communication de données sous forme série, défini par les spécifications de la norme USB ("USB Specification", version 2.0). La figure 1 illustre un système 11 de type USB classique dans lequel un premier dispositif USB 10 et un second dispositif USB 14 sont reliés par une interface USB 15. Cette dernière se compose généralement d'un câble à quatre fils muni à chaque extrémité d'une broche apte à coopérer avec un connecteur USB à quatre ou cinq contacts disposés sur le premier dispositif USB 10 et sur le second dispositif USB 14. L'interface USB 15 comprend donc quatre ou cinq lignes physiques : une ligne de masse GND, une ligne d'alimentation VBus, deux lignes de données D+ et D-, et une ligne d'identification optionnelle ID. Lorsque le second dispositif USB 14 est ainsi relié physiquement par un câble USB au premier dispositif USB 10, il est dit attaché. Dans le cas contraire, le second dispositif USB 14 est dit détaché. A titre d'exemple seulement, le premier dispositif USB 10 peut correspondre à un téléphone portable quand le second dispositif 14 peut être un casque d'écoute ou encore un ordinateur. Le premier dispositif USB 10 comprend une entité de contrôle 12 qui est une unité généralement majoritairement logicielle (ou `software' en anglais) et une entité d'interface 13 qui est en grande partie généralement implémentée sous forme `hardware'. Cette entité de contrôle et cette entité d'interface sont reliées entre elles via une interface 16. Ce premier dispositif est alimenté via une broche `PWR'. Il dispose également d'une horloge haute fréquence 105 et d'une horloge basse fréquence 104 qui sont fournies au niveau d'un multiplexeur 102. Le premier dispositif USB 10 contrôle certains délais grâce à une horloge haute fréquence qui est utilisée pour les échanges entre le premier dispositif 10 et le second dispositif 14. Cette horloge haute fréquence peut être de l'ordre de 38 MHz. La norme USB est complétée par une spécification supplémentaire OTG, décrite dans le document � On-The-Go and Embedded Hast Supplement to the USB Revision 2.0 Specification - Revision 2.0 - May 8, 2009 � qui comporte en outre dans son paragraphe 5.4 une définition d'un protocole, dont l'acronyme est � ADP � pour � Attach Detection Protocol � en anglais, permettant notamment de détecter l'attachement du second dispositif USB 14 au premier dispositif USB 10, et réciproquement. Pour cela, le protocole ADP prévoit la détection de cet évènement par l'observation des changements capacitifs de la ligne d'alimentation VBus de l'interface 15. Plus précisément, cet évènement est repéré en cherchant, périodiquement, après avoir déchargé la ligne d'alimentation VBus, toute variation de la durée nécessaire à la ligne d'alimentation VBus pour retrouver un niveau de tension prédéterminée. Cette détection d'attachement périodique est qualifiée de détection ADP ou � ADP probing � en anglais, dans le vocabulaire de la norme USB. Les opérations conduites par le premier dispositif USB 10 consistant à repérer des tentatives de détection ADP menées par le second dispositif USB 14 sont qualifiées de perception ADP ou � ADP sensing � en anglais. Elles permettent également au premier dispositif USB 10 de savoir si le second dispositif USB 14 est attaché ou non. La spécification supplémentaire OTG précise que la détection ADP doit être exécutée avec une périodicité comprise entre 1.9 et 2.6 secondes, typiquement toutes les 2 secondes. La détection ADP tout comme la perception ADP sont réalisées sur requêtes périodiques de l'entité de contrôle 12 utilisant l'horloge haute fréquence. Il en découle donc que le premier dispositif 10 ne peut pas entrer dans un état où l'horloge haute fréquence est désactivée tant qu'il effectue ces opérations. Pourtant, il est très avantageux de pouvoir basculer le premier dispositif dans un état lequel l'horloge haute fréquence serait coupée. En effet, une fois l'horloge haute fréquence désactivée, la consommation d'énergie du premier dispositif peut être sensiblement réduite. Il existe donc un besoin pour améliorer la situation. Un premier aspect de la présente invention propose un procédé de gestion d'un changement d'état d'attachement entre un premier dispositif et un second dispositif qui sont reliés via une interface. Le premier dispositif comporte une horloge haute fréquence. Le premier dispositif est dans un état de veille dans lequel l'horloge haute fréquence est désactivée. Le procédé comprend, au niveau du premier dispositif, les étapes suivantes : /1/ déclencher une détection d'un changement d'état d'attachement du second dispositif sur ladite interface, périodiquement sur la base d'une horloge basse fréquence ; /2/ sur détection d'un changement d'état d'attachement, sortir de l'état de veille en activant l'horloge haute fréquence. Lorsque le premier dispositif est en état de veille, il convient de pouvoir le réveiller, si une modification de l'état d'attachement du second dispositif est détectée, afin que le premier dispositif puisse la prendre en compte et la traiter correctement. Pour permettre au premier dispositif de traiter cet évènement, alors qu'il est dans un état de veille dans lequel l'horloge haute fréquence est désactivée, il est prévu avantageusement de se baser sur une horloge basse fréquence pour permettre la programmation périodique de la recherche de cet évènement, et de ne provoquer la sortie de l'état de veille que si un tel évènement s'est effectivement produit. Grâce à ces dispositions, il est ainsi possible de détecter cet évènement, au niveau du premier dispositif, sans toutefois utiliser une horloge haute fréquence, lorsqu'aucune modification de l'état d'attachement n'est détectée. Par conséquent, le premier dispositif peut avantageusement rester en état de veille tant que le ou les seconds dispositifs, ne modifie pas leur état d'attachement. En procédant ainsi, la quantité d'énergie consommée peut être considérablement réduite. Lorsque le premier dispositif est un dispositif mobile, tel qu'un ordinateur portable, ou un téléphone mobile ou encore une caméra vidéo ou tout autre terminal portable qui présente au moins un port de type USB, la mise en oeuvre d'un tel procédé de gestion selon un mode de réalisation de la présente invention s'avère très avantageux quant au gain d'autonomie qu'il peut représenter. Pour répondre à d'autres exigences, au cours de l'étape /1/, l'évènement relatif à un changement d'état d'attachement du second dispositif peut être identifié par détection d'un changement capacitif au niveau l'interface, en particulier, en mettant en oeuvre le protocole ADP, définie par une spécification supplémentaire � On-The-Go and Embedded Hast Supplement to the USB Revision 2.0 Specification - Revision 2.0 - May 8, 2009 �. Dans un mode de réalisation, le premier dispositif comprend une fonctionnalité de contrôle et une fonctionnalité d'interface avec le second dispositif, lesdites fonctionnalités étant reliées entre elles via une interface. L'étape /1/ est alors réalisée par la fonctionnalité d'interface. Dans ce cas, la fonctionnalité d'interface notifie le changement d'état d'attachement du second dispositif à la fonctionnalité de contrôle, via une ligne d'interruption. L'interface est par exemple une interface de type ULPI comportant la ligne d'interruption. Un deuxième aspect de la présente invention propose une entité d'interface comprenant des moyens adaptés pour mettre en oeuvre un procédé de gestion de changement d'état d'attachement USB selon le premier aspect de la présente invention. Une telle entité d'interface peut correspondre à un `Transceiver USB' ou encore `émetteur-récepteur USB' au sein d'un premier dispositif USB. Cette entité d'interface peut être reliée à une entité de contrôle USB, ou encore `Controller USB', via une interface de type UTMI (pour 'USB2.0 Transceiver Macrocell Interface' en anglais) ou encore via une interface de type ULPI (pour `UTMI Low Pin Interface' en anglais). Aucune limitation n'est attachée à la présente invention au regard de l'architecture du premier dispositif. Ainsi, l'entité d'interface et l'entité de contrôle peuvent par exemple être implémentées sur une même puce (ou `chip') et reliées par une interface de type UTMI. Elles peuvent aussi être implémentées sur deux puces distinctes, et ces puces peuvent par exemple être reliées via une interface de type ULPI. Un troisième aspect de la présente invention propose un dispositif comprenant des moyens adaptés pour mettre en oeuvre un procédé de gestion de changement d'état d'attachement USB selon le premier aspect de la présente invention, notamment une entité d'interface selon le deuxième aspect. Un quatrième aspect de la présente invention propose un système 10 comprenant un premier dispositif selon le troisième aspect de la présente invention et au moins un second dispositif. D'autres aspects, buts et avantages de l'invention apparaîtront à la lecture de la description d'un de ses modes de réalisation. L'invention sera également mieux comprise à l'aide des dessins, sur 15 lesquels : - la figure 1 illustre un système USB classique, déjà décrite ; - la figure 2-A illustre les étapes principales d'un procédé de gestion d'un changement d'état d'attachement au premier dispositif d'un second dispositif, mis en oeuvre selon un mode de réalisation de la 20 présente invention ; - la figure 2-B illustre un système USB selon un mode de réalisation de la présente invention ; - la figure 3 illustre un diagramme de séquence d'une mise en oeuvre d'un procédé de détection d'attachement d'un second dispositif au 25 premier dispositif mis en oeuvre selon un mode de réalisation de la présente invention ; - la figure 4 illustre un système USB selon un mode de réalisation de la présente invention. Dans les sections suivantes, on considère un premier dispositif 10 et un 30 second dispositif 14. A titre d'exemple non limitatif, le premier dispositif peut être un téléphone mobile, le second dispositif 14 un casque vocal USB ou un ordinateur. Dans la présente description, à titre illustratif uniquement, l'architecture du premier dispositif repose sur deux puces respectivement pour l'entité de contrôle et pour l'entité d'interface reliées entre elles via une interface de type ULPI et éventuellement une ligne d'interruption. On entend notamment par ligne d'interruption une ligne électrique active dont le changement de niveau indique un changement d'état du système. Il est aisé de l'appliquer à toute autre architecture de dispositif possible, y compris une architecture utilisant une interface utmi par exemple. La figure 2-A illustre les étapes principales d'un procédé de gestion d'un changement d'état d'attachement au premier dispositif d'un second dispositif, mis en oeuvre selon un mode de réalisation de la présente invention. Le premier dispositif est dans un état de veille dans lequel l'horloge haute fréquence est désactivée. Au niveau du premier dispositif, à une étape 21, on déclenche une détection d'un éventuel changement d'état d'attachement du second dispositif sur l'interface. Cet évènement correspond par exemple au branchement par un câble du second dispositif au premier dispositif, si le second dispositif n'était pas jusqu'alors ainsi relié, ou inversement au retrait dudit câble, si le second dispositif était jusqu'alors ainsi relié. Si aucun changement d'état n'a été détecté au cours de l'étape 21, on temporise, au cours d'une étape 22, à l'aide d'une horloge basse fréquence. A l'issue de ce délai, le procédé peut à nouveau être exécuté depuis l'étape 21. En revanche, si, à l'issue de l'étape 21, un changement d'état a été détecté au niveau de l'unité d'interface, on sort dans une étape 23 de l'état de veille le premier dispositif, en activant notamment l'horloge haute fréquence. Par exemple, une notification, prenant la forme du déclenchement d'une interruption matérielle, peut être émise à destination de l'entité de contrôle du premier dispositif au cours de l'étape 23. Dans une première configuration, l'étape 21 peut être réalisée en procédant, au niveau de l'unité d'interface, à une détection ADP. On recherche alors un changement capacitif de la ligne d'alimentation VBus de l'interface 15, conformément à la spécification supplémentaire � On-The-Go and Embedded Hast Supplement to the USB Revision 2.0 Specification - Revision 2.0 - May 8, 2009 �. Dans une deuxième configuration, l'étape 21 peut être réalisée en procédant, au niveau de l'unité d'interface, à une perception ADP. On recherche à repérer l'évolution des tentatives de détection ADP menées par un éventuel second dispositif USB sur l'interface 15, conformément à la spécification supplémentaire � On-The-Go and Embedded Hast Supplement to the USB Revision 2.0 Specification - Revision 2.0 - May 8, 2009 �. Ainsi si des tentatives de détection ADP ne sont plus effectuées alors que c'était le cas précédemment, cela traduit une variation de l'état d'attachement du second dispositif au niveau de l'interface. Inversement, si des tentatives de détection ADP sont effectuées alors que ce n'était pas le cas sur précédemment, cela traduit également une variation de l'état d'attachement du second dispositif au niveau de l'interface. La figure 2-B illustre un système USB selon un mode de réalisation de la présente invention. Les mêmes références que celles utilisées sur la figure 1 désignent les mêmes entités. Il convient de noter ici que, à titre illustratif uniquement, l'architecture du premier dispositif est composée de deux puces 12 et 13 reliées entre elles par une interface 16 sur la base de l'horloge haute fréquence qui peut être de type ULPI. Toutefois, la présente invention s'applique de manière tout aussi aisée à toute autre architecture du premier dispositif. En effet aucune limitation n'est attachée à cet aspect. On peut notamment appliquer la présente invention à une architecture mono-puce dans laquelle l'entité de contrôle et l'entité d'interface sont directement et simplement reliées entres elles. Il convient de noter que l'horloge basse fréquence est avantageusement fournie ici via une liaison 201 à l'entité d'interface 13. Ainsi, cette horloge basse fréquence peut être utilisée pour décompter des périodes de temps lorsque l'horloge haute fréquence est coupée, permettant ainsi de remplir les exigences de la norme tout en économisant de l'énergie. L'interface 16 comporte une ligne d'interruption sur laquelle l'entité d'interface 13 peut générer une interruption sous forme d'un signal électrique à destination de l'entité de contrôle 12. Lorsque l'interface 16 est de type ULPI, cette ligne d'interruption peut être la ligne d'interruption ULPI D3. Alternativement, une ligne d'interruption spécifique 17 entre l'entité d'interface 13 et l'entité de contrôle 12 peut être utilisée. Quelque soit le mode de réalisation, suite à un changement de l'état d'attachement du second dispositif, la ligne d'interruption est utilisée pour déclencher une interruption provoquant la sortie de l'état de veille du système USB, et plus particulièrement de l'entité de contrôle 12 avec une activation de l'horloge haute fréquence. La figure 3 illustre un diagramme de séquence d'une mise en oeuvre d'un procédé de détection d'attachement d'un second dispositif au premier dispositif mis en oeuvre selon un mode de réalisation de la présente invention. Initialement, à l'instant to, l'entité de contrôle 12 est dans un état de veille dans lequel l'horloge haute fréquence est désactivée, permettant ainsi de réduire avantageusement la consommation d'énergie de ce premier dispositif. L'horloge basse fréquence du premier dispositif peut quant à elle rester disponible de manière continue, car l'énergie qu'elle consomme est négligeable au regard de l'énergie consommée par l'horloge haute fréquence. L'entité d'interface 13 applique, sur la base de l'horloge basse fréquence, une temporisation d'une durée T. Selon la spécification supplémentaire OTG, la durée T est comprise entre 1.9 et 2.6 secondes. Puis à un instant t1 situé à T secondes de l'instant to, l'entité d'interface 13 déclenche une détection d'un éventuel changement d'état d'attachement du second dispositif sur l'interface. Cette détection d'attachement périodique peut selon la configuration du premier dispositif 10 être une détection ADP ou � ADP probing � en anglais, ou alternativement une perception ADP ou � ADP sensing � en anglais. Aucun changement d'état n'ayant été détecté à l'instant t1, l'entité d'interface 13 déclenche une nouvelle détection, après temporisation, à l'instant t2, puis pour les mêmes raisons, après temporisation, à l'instant t3. A l'instant t3, un changement d'état est détecté au niveau de l'entité d'interface 13. L'entité d'interface 13 déclenche alors une interruption à destination de l'entité de contrôle 12. A l'instant t3, l'entité de contrôle 12 reçoit l'interruption, et active l'horloge haute fréquence, provoquant la sortie de son état de veille. L'entité de contrôle 12 peut donc alors traiter le changement de l'état d'attachement du second dispositif de manière conventionnelle. La figure 4 illustre une entité d'interface 13 dans un premier dispositif 10 5 comprenant en outre une entité de contrôle et des moyens pour communiquer avec un second dispositif via une interface (15) sur la base d'une horloge haute fréquence. Elle comprend : - une unité de détection 51 adaptée pour détecter un changement de l'état d'attachement du second dispositif au premier dispositif 10 au niveau de ladite interface lorsque le premier dispositif est en état de veille ; - une unité de temporisation 52 adaptée pour déclencher périodiquement une détection de changement d'état sur la base d'une horloge basse fréquence ; et 15 - une unité de notification 53 adaptée pour notifier a l'entité de contrôle un changement de l'état d'attachement du second dispositif de manière électrique. En particulier, l'horloge haute fréquence de l'entité d'interface 13 est activée sur détection d'un changement de l'état d'attachement du second 20 dispositif au premier dispositif par l'unité de détection. Ainsi, un premier dispositif peut comprendre une telle entité d'interface. REVENDICATIONS1. Procédé de gestion d'un changement d'état d'attachement entre un premier dispositif et un second dispositif qui sont reliés via une interface, ledit premier dispositif comportant une horloge haute fréquence, ledit premier dispositif étant dans un état de veille dans lequel l'horloge haute 5 fréquence est désactivée, caractérisé en ce que ledit procédé comprenant au niveau du premier dispositif les étapes suivantes : /1/ déclencher une détection d'un changement d'état d'attachement du second dispositif sur ladite interface, périodiquement sur la base d'une horloge basse fréquence ; 10 /2/ sur détection d'un changement d'état d'attachement, sortir de l'état de veille en activant l'horloge haute fréquence. 2. Procédé de gestion selon la revendication 1, dans lequel, au cours de l'étape /1/, un changement d'état d'attachement du second dispositif 15 correspond à un changement capacitif au niveau l'interface (15). 3. Procédé de gestion selon la revendication 2, dans lequel, au cours de l'étape /1/, un changement d'état d'attachement du second dispositif est détecté en mettant en oeuvre le protocole ADP. 20 4. Procédé de gestion selon l'une quelconque des revendications précédentes dans lequel, le premier dispositif comprenant une fonctionnalité de contrôle (12) et une fonctionnalité d'interface (13) avec le second dispositif, lesdites fonctionnalités étant reliées entre elles via une interface (16), l'étape 25 /1/ étant réalisée par la fonctionnalité d'interface. 5. Procédé de gestion selon la revendication 4, dans lequel, à l'étape /1/, la fonctionnalité d'interface (13) notifie le changement d'état d'attachement dusecond dispositif à la fonctionnalité de contrôle (12), via une ligne d'interruption. 6. Procédé de gestion selon la revendication 5, l'interface (16) est une interface de type ULPI comportant la ligne d'interruption. 7. Entité d'interface (13) dans un premier dispositif comprenant en outre une entité de contrôle et des moyens pour communiquer avec un second dispositif via une interface (15) ; ladite entité d'interface comprenant : une unité de détection (51) adaptée pour détecter un changement de l'état d'attachement du second dispositif au premier dispositif au niveau de ladite interface lorsque le premier dispositif est en état de veille ; - une unité de temporisation (52) adaptée pour déclencher périodiquement une détection de changement d'état sur la base d'une horloge basse fréquence ; et - une unité de notification (53) adaptée pour notifier a l'entité de contrôle un changement de l'état d'attachement du second dispositif de manière électrique. 10. Entité d'interface selon la revendication 7, dans lequel l'horloge haute fréquence est activée sur détection d'un changement de l'état d'attachement du second dispositif au premier dispositif par l'unité de détection (51). 11. Dispositif comprenant une entité d'interface (13) selon la revendication 7 ou 8. 12. Système comprenant un dispositif selon la revendication 8 ou 9 et au 30 moins un second dispositif. 20 25