Accueil |
Mes Projets |
Montages |
USB |
Méca |
Astuces |
Liens |
Qui suis-je? |
![]() |
ERREUR 404 |
Cette page illustre et propose des solutions pour développer sur le bus USB. La majeure difficulté lors du développement sur le bus USB est l'observation des échanges réalisés sur celui-ci. En effet, les transferts sont réalisés avec des vitesses importantes, ce qui implique un dispositif rapide permettant de mémoriser sur des durées relativement élevées (1 à 2 secondes).
On peut donc penser dans un premier temps à utiliser un oscilloscope numérique mais celui-ci révèle vite ses limites. J'en veux pour preuve l'observation d'un transfert FULL SPEED (vitesse du transfert 12Mbits/s) qui nécessite une fréquence d'échantillonnage de 40 MHz. Si l'on désire enregistrer les transferts sur une durée d'une seconde, il faut une mémoire de 40 000 000 échantillons. En général, les oscilloscopes offrent une mémoire de 8 000 à 20 000 échantillons.
D'autre part, l'observation d'un paquet USB à l'oscilloscope n'est pas très simple : il faut décoder les paquets bit par bit (décodage NRZI, PID, ENDPOINT, etc..). Pour illustrer le propos précédent, voici une capture d'écran d'un paquet (petit paquet) USB à décoder bit à bit... courage... Petite indication : c'est un paquet que l'on retrouve toutes les ms....
Cette technique n'est certes pas très efficace, mais elle permet dans certains cas de mettre en lumière un problème. En ce qui concerne le développement des hosts, on peut plus facilement mettre en oeuvre cette technique en utilisant une pin de sortie du microcontrôleur pour synchroniser l'oscilloscope (broche trigger). Juste avant d'envoyer un paquet, on envoie une impulsion sur la pin qui a pour effet de démarrer la capture de l'oscilloscope. On peut ainsi vérifier que le paquet que l'on a envoyé correspond au paquet souhaité.
Vous voyez vite que cette technique n'est pas très efficace, en particulier pour observer un transfert entre un PC et un périphérique (nous n'avons rien pour synchroniser l'oscilloscope).
Il existe une autre technique qui consiste à utiliser un analyseur de bus USB. Il y a quelques entreprises qui proposent ce genre d'appareils à des prix très variables. Pour ma part, lorsque j'ai développé mon premier host (en stage), j'ai été amené à utiliser ce genre d'appareil. J'ai fait un petit tour du marché des analyseurs afin de comparer le rapport performances/prix : j'ai vite opté pour les produits Ellisys qui offrent une utilisation simple et très performante. Vous pouvez retrouver toutes les informations sur leur site internetwww.ellisys.com.
Nom du produit/ Marque/ Photo | Low Speed | Full Speed | High Speed | Principaux atouts | Prix |
OUI | OUI | NON | Logiciel très ergonomique et performant. Logiciel gratuit et téléchargeable en version complète sur le site du constructeur. Décodage des requêtes USB standards (SET_ADDRESS, GET_DESCRIPTOR, etc...). Filtrage et traitement des enregistrements. |
Student Version $400
ou 800€ |
|
OUI | OUI | OUI | Mêmes qualités que le précédent avec la vitesse high speed supportée. Trigger externe configurable en entrée ou en sortie. OTG. Requêtes décodées. |
2400€ | |
OUI | OUI | OUI | Mêmes avantages que le précédent avec en plus le décodage des classes (audio, mass_storage, HID,....). Très performant sur tous les plans. |
4800€ |
Je travaille actuellement avec un tracker110. Cet appareil offre une utilisation très simple et très performante grâce à son interface très conviviale. Je préfère dire aux amateurs que cet appareil reste encore réservé aux PME. En effet, son prix est de 800€. Ce prix peut paraître assez élevé pour les amateurs développant chez eux, mais il faut savoir que les autres analyseurs du marché dépassent très souvent 10000€ !!! (pour les mêmes performances).
Si vous souhaitez comprendre en détail le bus USB, je crois qu'il n'y a pas de secret ou de solution miracle, il faut s'y lancer... Pour cela je vous propose en téléchargement des enregistrements de différents périphériques. Ces enregistrements s'ouvrent avec le logiciel gratuit visualUSB que vous trouverez en téléchargement sur le site d'Ellisys www.ellisys.com.
Le logiciel fonctionne même si ne possédez pas d'analyseur : il permet ainsi de visualisez des enregistrements.