Brevet FR3023437A1 — publié le 20160108

Dispositif de détection d'erreurs sur un bus universel série L'invention concerne la transmission de données sur un bus série et plus particulièrement, le diagnostic d'erreur lors d'une transmission. Le bus universel en série (ou USB pour Universal Serial Bus en anglais) est un bus informatique en transmission série servant à connecter des périphériques informatiques (aussi appelé USB devices en anglais) à un ordinateur (aussi appelé hôte ou USB host en anglais). L'USB est décliné en plusieurs versions permettant chacune de communiquer selon une pluralité de mode. La version 1.x du bus USB permet communiquer selon deux modes : un mode lent (ou « Low Speed » dont le débit est de 1,5 Mbit/s) ou un mode rapide (« Full Speed » dont le débit est de 12 Mbit/s) : La version 2.0 du bus USB comporte en outre un troisième mode (appelé « High Speed » dont le débit est de 480 Mbit/s). Le bus USB fonctionne sur la base d'un anneau à jeton (ou Token Ring) avec lequel chaque noeud du réseau dispose successivement du bus. La bande passante est partagée temporellement entre tous les périphériques connectés. Le temps est subdivisé en trames (frames) ou microtrames (microframes) pendant lesquels plusieurs transferts peuvent avoir lieu. La communication entre l'hôte et les périphériques se fait selon un protocole basé sur l'interrogation successive de chaque périphérique par l'ordinateur. Lorsque l'hôte désire communiquer avec un périphérique, il émet un jeton (un paquet de données, contenant l'adresse du périphérique, codée sur sept bits) désignant un périphérique. Si le périphérique reconnait son adresse dans le jeton, il envoie un paquet de données en réponse. L'USB définit différents types de transferts : le transfert de commande (pour l'énumération et la configuration des périphériques), le transfert d'interruption (utilisé pour fournir des informations de petite taille avec une latence faible) le transfert isochrone et le transfert en masse (pour transférer des informations volumineuses). Il est possible de structurer la communication entre un hôte et un périphérique en plusieurs canaux logiques (pipes et endpoints) pour simplifier la commande du périphérique du port USB. L'USB ne définit pas de moyen permettant de diagnostiquer facilement des erreurs de transmissions. En l'absence d'un tel mécanisme, il est difficile, voire impossible de localiser les potentielles pannes liées au réseau (identification du calculateur défaillant, faisceau défaillant, etc.). De plus, en l'absence d'un tel mécanisme, il n'est pas possible de remonter une alerte à un utilisateur en cas de défaillance liée au réseau USB 2.0. L'utilisateur subit les éventuels dysfonctionnements sans qu'il en soit informé par le système mettant en oeuvre la liaison USB (exemple : plus d'accès à sa bibliothèque de musique, plus d'accès internet). On connaît, par le document US 7,730,360, une méthode et un système pour fournir des informations de diagnostic au travers d'une liaison USB. Cependant, cette solution nécessite l'utilisation d'un filtre qui complexifie l'implémentation du contrôleur hôte. L'invention a donc pour but de remédier aux problèmes précités. Elle propose plus précisément à cet effet un dispositif de détection d'erreurs sur un bus universel série reliant un calculateur hôte à au moins un périphérique, caractérisé en ce que le calculateur hôte comporte des moyens pour interroger le périphérique par l'intermédiaire d'un canal d'information dédié, et en ce que l'hôte et le périphérique comportent des moyens de comptage d'erreurs et des moyens de transmission, par l'intermédiaire d'un canal d'information dédié, du comptage d'erreur. L'invention permet de diagnostiquer des problèmes de connexion USB en fournissant un comptage d'erreur. L'utilisation d'un canal dédié permet de ne pas utiliser le canal dédié à la transmission des données. Les données de diagnostic sont directement récupérées sur le canal dédié et ne nécessitent pas l'implémentation d'un filtre supplémentaire au niveau du calculateur hôte. Avantageusement, le dispositif de détection comporte en outre des moyens d'établissement d'un rapport d'erreur à partir du comptage d'erreurs transmis par le périphérique. Le rapport d'erreur établi permet d'affiner encore le diagnostic. Avantageusement, le dispositif de détection comporte en outre des moyens de transmission du rapport à un outil de diagnostic. Avantageusement, le dispositif de détection comporte en outre des moyens de transmission du rapport à une interface homme machine. Ceci permet d'avertir un utilisateur de la survenue d'une erreur et de la nature de cette erreur. L'implémentation de ce mécanisme permet de mettre en place des messages d'erreur sur un écran (« clé USB non détectée » par exemple). Avantageusement, les erreurs comptabilisées comportent : des erreurs dans un champ d'identification d'un paquet de données et des erreurs de contrôles à redondance cyclique. La comptabilisation de ces erreurs permet d'affiner le diagnostic. Avantageusement, le calculateur hôte et le périphérique comportent en outre des moyens de détermination de la vitesse de transmission des données sur le bus universel série. Ceci permet aussi de détecter si la vitesse transmission effective des données est inférieure à la vitesse de transmission théorique. Avantageusement, l'interrogation du périphérique (12) par le calculateur hôte est effectuée par un transfert d'interruption. Les interruptions sont adaptées à pour l'interrogation du périphérique. Elles permettent de transférer peu de données mais une latence très faible. Avantageusement, le calculateur hôte comporte une mémoire destinée à stocker des codes d'erreur mémoire, les erreurs comptabilisées étant stockées dans la mémoire. En stockant les données de diagnostic en mémoire, celles-ci sont alors tout le temps accessibles, en particulier par un outil de diagnostic. Avantageusement, le périphérique est un calculateur, comportant une mémoire destinée à stocker des codes d'erreur mémoire, les erreurs comptabilisées étant stockées dans la mémoire. L'invention concerne aussi un véhicule comportant un dispositif selon l'invention. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels: - la figure 1 montre une vue schématique d'un réseau ; - la figure 2 montre une vue schématique du premier périphérique selon l'invention ; - figure 3 montre une vue schématique de l'hôte selon l'invention. Les dessins annexés pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant. La figure 1 montre une vue schématique d'un réseau. Le réseau relie un calculateur hôte 11 à un premier périphérique 12 et à un deuxième périphérique 13 par l'intermédiaire d'une liaison USB. Dans l'exemple, le nombre de périphériques est limité à deux. Mais on ne sort pas du cadre de l'invention en modifiant le nombre de périphériques du réseau. Dans ce qui suit, on considère à titre d'exemple non limitatif que le calculateur hôte 11 est un calculateur de véhicule automobile. Mais l'invention n'est pas limitée à ce mode de réalisation. En effet, elle concerne tout calculateur comportant un connecteur USB et un contrôleur USB hôte. Dans ce qui suit, on considère à titre d'exemple non limitatif que le premier périphérique 12 est aussi un calculateur de véhicule automobile. Mais l'invention n'est pas limitée à ce mode de réalisation. En effet, elle concerne tout périphérique comportant un connecteur USB et un contrôleur USB périphérique. Le deuxième périphérique 13 est par exemple un périphérique de stockage (de type disque dur). Le calculateur hôte 11 est aussi apte à être relié à un outil de diagnostic 14 débarqué par l'intermédiaire d'une liaison CAN (pour Controler Area Network en anglais). Mais cette liaison pourrait aussi être de type Flexray ou Ethernet. La figure 2 montre une vue schématique du premier périphérique 12 selon l'invention. Le premier périphérique 12 comporte un connecteur 28 permettant de brancher le premier périphérique 12 à un câble USB. Le premier périphérique 12 comporte aussi un contrôleur USB périphérique 21 permettant de gérer la connexion de données. Le premier périphérique 12 comporte des fonctions 23 (notées F1 à Fn). Ces fonctions permettent de dialoguer, selon protocole normalisé, avec un calculateur hôte implémentant un pilote de fonctions correspondant. Ces fonctions sont généralement regroupées par classe. Il existe par exemple une classe pour les périphériques de stockage de masse (mass storage class, MSC), implémentée par les clés USB et les disques durs externes. Le premier périphérique 12 comporte en outre une fonction 22 de supervision destinée à comptabiliser des erreurs de fonctionnement. Selon une caractéristique de l'invention, le premier périphérique 12 comporte un compteur d'erreurs de protocole. Ce compteur peut être un compteur tournant (remis à 0 une fois la valeur maximale atteinte) ou non (pas de remise à 0, lorsque la valeur maximale est atteinte). Ce compteur s'incrémente sur les erreurs de protocoles détectées par un gestionnaire de protocole USB qui est une fonction standard implémentée sur les périphériques USB. Les erreurs comptabilisées sont par exemple : - des erreurs sur le champ PID (pour Paquet ID) d'un paquet (PID invalide), ce champ étant utilisé pour identifier le type de paquet qui est envoyé ; - des erreurs de CRC (pour Contrôles à Redondance Cyclique), le CRC étant un outil logiciel destiné à déterminer des erreurs de transmission ou ; - des erreurs dites « de bit stuff », le « bit stuff » étant une méthode permettant d'améliorer la transmission des données. De préférence, la fonction de supervision 22 détermine aussi un statut sur le débit de la liaison. Le statut prend par exemple une des deux valeurs suivantes : High Speed (480 Mbit/s) ou Full Speed (12 Mbit/s). Ce statut est aussi transmis à l'hôte 11 en réponse à une interrogation. De préférence, le premier périphérique 12 est un calculateur, en particulier un calculateur de véhicule, comportant une mémoire 24 destinée à stocker des codes d'erreur (aussi appelée mémoire DTC Diagnostic Trouble Codes). La fonction de supervision 22 de supervision transmet les erreurs comptabilisées à la mémoire 24. La figure 3 montre une vue schématique de l'hôte 11 selon l'invention. L'hôte 11 comporte un connecteur 38 permettant de brancher l'hôte 11 à un câble USB. L'hôte 11 comporte aussi un contrôleur USB périphérique 31 permettant de gérer la connexion de données. L'hôte 11 comporte des pilotes de fonctions 33 (ou drivers en anglais) permettant de dialoguer avec des fonctions d'un périphériques. L'hôte 11 comporte en outre un pilote 32 de fonction de supervision destinée à coopérer avec les fonctions de supervision des périphériques USB du réseau. La supervision du réseau USB est active dès que le réseau USB entre dans un état nominal de fonctionnement. Pour récupérer les comptabilisations d'erreurs effectuées par chaque périphérique du réseau USB, l'hôte 11 interroge périodiquement les périphériques 12, 13, par exemple à l'aide d'une trame de type INTERRUPT IN sur un canal dédié. Cette trame peut avoir une périodicité de 128 ms par exemple. Il y a deux cas de figures envisageables : l'hôte 11 ne reçoit pas de réponse de la part d'un périphérique. Si l'hôte 11 ne reçoit aucune réponse de la part d'un périphérique à la trame INTERRUPT IN, pendant un temps déterminé (exemple : 2 secondes), il en déduit l'absence du périphérique. l'hôte 11 reçoit une réponse de la part d'un périphérique. L'hôte 11 reçoit donc correctement tous les paramètres de supervision envoyés par le périphérique (comptabilisation d'erreur, statut sur le débit, etc.). L'hôte 11 comporte en outre un gestionnaire d'erreur 34. Le gestionnaire d'erreur effectue une synthèse de toutes ces données pour déclarer un ou plusieurs codes défauts (périphérique absent, réseau en Full Speed au lieu de High Speed, etc.). De préférence, la fonction de supervision détermine aussi un statut sur le débit de la liaison. Le statut prend par exemple une des deux valeurs suivantes : High Speed (480 Mbit/s) ou Full Speed (12 Mbit/s). La fonction de supervision n'est pas limitée à ces informations, elle peut aussi gérer d'autres paramètres pour affiner le diagnostic (timeout de la perte de communication, etc.). De préférence, l'hôte 11 est un calculateur, en particulier un calculateur de véhicule, comportant une mémoire 35 destinée à stocker des codes d'erreur (aussi appelée mémoire DTC Diagnostic Trouble Codes). La fonction de supervision de supervision transmet les erreurs comptabilisées à 15 la mémoire 35. De façon avantageuse, l'hôte 11 est apte à être connecté à un outil de diagnostic 14. Cette synthèse est accessible via l'outil de diagnostic 14. De façon avantageuse, l'hôte 11 notifie le ou les défaut(s) vers les couches applicatives pour un passage en mode dégradé fonctionnel par 20 exemple ou vers une IHM 36 (Interface Homme Machine). Le canal d'information dédié est ouvert à la fin de la procédure d'énumération, lorsque l'hôte 11 a détecté la présence de la fonction de supervision dans le périphérique 12. REVENDICATIONS1. Dispositif de détection (10) d'erreurs sur un bus universel série reliant un calculateur hôte (11) à au moins un périphérique (12), caractérisé en ce que le calculateur hôte (11) comporte des moyens pour interroger le périphérique (12) par l'intermédiaire d'un canal d'information dédié, et en ce que l'hôte (11) et le périphérique (12) comportent des moyens de comptage d'erreurs et des moyens de transmission, par l'intermédiaire d'un canal d'information dédié, du comptage d'erreur. 2. Dispositif de détection (10) selon la revendication 1, caractérisé en ce qu'il comporte en outre des moyens d'établissement (34) d'un rapport d'erreur à partir du comptage d'erreurs transmis par le périphérique. 3. Dispositif de détection (10) selon la revendication 2, caractérisé en ce qu'il comporte en outre des moyens de transmission du rapport à un outil de diagnostic (14). 4. Dispositif de détection (10) selon l'une des revendications 2 ou 3, caractérisé en ce qu'il comporte en outre des moyens de transmission du rapport à une interface homme machine. 5. Dispositif de détection (10) selon l'une des revendications précédentes, caractérisé en ce que les erreurs comptabilisée comportent : des erreurs dans un champ d'identification d'un paquet de données et des erreurs de contrôles à redondance cyclique. 6. Dispositif de détection (10) selon l'une des revendications précédentes, caractérisé en ce que le calculateur hôte (11) et le périphérique (12) comporte en outre des moyens de détermination de la vitesse de transmission des 302 3 4 3 7 9 données sur le bus universel série. 7. Dispositif de détection (10) selon l'une des revendications précédentes, caractérisé en ce que l'interrogation du périphérique (12) par le calculateur 5 hôte (11) est effectuée par un transfert d'interruption. 8. Dispositif de détection (10) selon l'une des revendications précédentes, caractérisé en ce que le périphérique (12) est un calculateur, comportant une mémoire (24) destinée à stocker des codes d'erreur mémoire, les erreurs 10 comptabilisées étant stockées dans la mémoire (24). 9. Dispositif de détection (10) selon l'une des revendications précédentes, caractérisé en ce que le calculateur hôte (11) comporte une mémoire (35) destinée à stocker des codes d'erreur mémoire, les erreurs comptabilisées 15 étant stockées dans la mémoire. 10. Véhicule comportant un dispositif selon l'une des revendications 1 à 9.