Donner un sens au standard USB
Les connecteurs Tous les appareils ont une connexion amont vers l'hôte et tous les hôtes ont une connexion aval vers l'appareil. Les connecteurs amont et aval ne sont pas interchangeables mécaniquement, éliminant ainsi les connexions de rebouclage interdite aux Hubs comme pour un port aval connecté à un port aval. Il y a généralement 2 types de connecteurs, appelé type A et type B présenté ci-dessous.
Les prises mâles de type A sont toujours tournés vers l'Amont. Les prises femelles de type A se trouveront généralement sur les hôtes et les Hubs. Par exemple, les prises femmelles de type A sont courantes sur les cartes mères des ordinateurs et les Hubs. Les prises mâles de type B sont toujours connecté vers l'aval et par conséquent les prises femelles de type B se trouvent sur les appareils. Il peut-être intéressant de trouver des câbles de type A vers type A avec un câblage direct et une matrice de changeur de genre USB dans certains magasins d'ordinateurs. C'est en contradiction avec la spécification USB. Les seuls appareils avec prise type A vers prise type A sont des ponts que l'on utilise pour brancher 2 ordinateurs entre eux. D'autres câbles prohibés sont les extensions USB qui ont une prise mâle à une extrémité (soit de type A ou de type B) et une prise femelle à l'autre. Ces câbles ne respectent pas les exigences de longueur de câble de l'USB. L'USB 2.0 comprenait un errata qui présente les mini connecteurs USB de type B. On peut trouver les détails de ces connecteurs dans la notice changement technique des mini connecteurs B. La raison d'être des mini connecteurs est issu de la gamme d'appareils électroniques miniatures comme les téléphones mobiles et les agendas électroniques. Le connecteur ordinaire de type B est trop grand pour être facilement intégré à ces appareils. Il vient de paraître une spécificité On-the-Go qui ajoute la fonctionalité pair à pair (peer to peer) à l'USB. D'où l'introduction des hôtes USB dans les téléphones mobiles et les agendas électroniques, de même qu'une particularité pour les prises mâles mini A, les prises femelles mini A et les prises femelles mini A-B. Tout porte à croire que nous devrions être inondés de câbles mini USB et d'une gamme de câbles convertisseurs de la taille mini à standard.
Les concepteurs PCB voudront se référer au chapitre 6 pour des
empreintes de pas standards et des affectations des broches. A moins que vous ne conceviez le silicium pour un appareil ou émetteur / récepteur USB ou bien pour un hôte ou Hub USB, il n'y a pas grand chose à retenir des particularités électriques du chapitre 7. Nous vous précisons brièvement les points essentiels ici-même. Comme nous en avons déjà discuté, l'USB utilise une paire de transmission différentiel pour les données. Celle-ci étant codé en utilisant le NRZI et est garni de bits pour assurer les transitions adéquates dans le flot de données. Sur les appareils à vitesse basse et pleine un '1' différentiel est transmis en mettant D+ au dessus de 2,8V grâce à une résistance de 15k ohms relié à la masse et D- en dessous de 0,3V avec une résistance de 1,5k ohms relié à 3,6V. D'autre part un différentiel '0' correspond à D- plus grand que 2,8V et D+ inférieur à 0,3V avec les mêmes résistances de rappel état haut/bas adéquates. Le récepteur défini un différentiel '1' avec D+ plus grand de 200 mV que D- et un différentiel '0' avec D+ plus petit de 200 mV que D-. La polarité du signal est inversé en fonction de la vitesse du BUS. En conséquence les états référencés par les termes 'J' et 'K' sont utilisés pour signifier les niveaux logiques. En vitesse basse, un état 'J' est un différentiel '0'. En vitesse haute, un état 'J' est un différentiel '1'. Les émetteurs / récepteurs USB comprendront à la fois des sorties différentiels et uniques (non complémentaires). Certains états de BUS USB sont indiqués par des signaux à sorties uniques (single ended zero) sur D+, D- ou les deux. Par exemple un zéro à sorties uniques ou SE0 peut être utilisé pour signifier la réinitialisation d'un appareil s'il est maintenu plus de 10 ms. On génère un SE0 en maintenant D+ et D- en position basse (inférieur à 0,3V). Les sorties uniques et différentielles sont importantes d'être notées si vous utilisez un émetteurs / récepteurs et un FPGA comme appareil USB. Vous ne pouvez pas vous contenter simplement d'échantillonner la sortie différentielle. Le BUS basse et pleine vitesse a une impédance caractéristique de 90 Ohms +/-15%. Il est donc important d'observer la documentation technique lorsque vous sélectionnez les résistances des caractéristiques électriques séries pour D+ et D- afin d'équilibrer l'impédance. Toute documentation technique devrait spécifier ces valeurs et tolérances. Le mode vitesse haute (480 Mbits/s) utilise un courant constant de
17,78 mA pour demander de réduire le bruit. Un appareil USB doit indiquer sa vitesse en mettant soit D+ ou D- à 3,3V. Un appareil pleine vitesse, représenté plus bas utilisera une résistance de rappel rattaché à D+ pour se signaler comme tel. Ces résistances de rappel à l'extrémité de l'appareil seraient aussi utilisés par l'hôte ou Hub pour détecter la présence d'un appareil connecté à son port. Sans résistance de rappel, l'USB suppose qu'il n'y a rien de connecté au BUS. Certains appareils possèdent cette résistance intégré sur le silicium, pouvant être connecté ou non sous commande microprogrammée, d'autres exigent une résistance externe. Par exemple Philips Semiconducteur a une technologie Soft connectTM. Lors d'une première connexion au BUS, elle permet au microcontrôleur d'initialiser la fonction USB de l'appareil avant de valider la résistance de rappel d'identification de vitesse, indiquant ainsi qu'un appareil est relié au BUS. Si la résistance de rappel était connecté à VBUS, alors celle-ci indiquerait qu'un appareil est branché au BUS dés que la prise est insérée. L'hôte peut alors tenter de réinitialiser l'appareil et demander un descripteur au moment ou le microprocesseur n'a pas encore commencé à initialiser la fonction USB de l'appareil. D'autres fournisseurs tel que Cypress Semiconducteur utilise aussi une
résistance programmable à des fins de Re-NumérationTM dans
leurs appareils EzUSB ou l'appareil peut-être énuméré par une fonction
telle que la programmation sur champs puis être déconnecté du BUS sous
commande micro programmée, et énuméré en tant qu'appareil différent, tout
cela en un clin d'oeil. La plupart des appareils EzUSB n'ont pas de Flash
ou de ROM OTP pour stocker le code. Ils sont amorcés dès le branchement.
Vous noterez que nous n'avons pas inclus d'identification de vitesse pour le mode haute vitesse. Les appareils haute vitesse démarreront dès qu'ils seront connectés en tant qu'appareils pleine vitesse (1,5 kOhms à 3,3V). Une fois qu'il sera attaché il émettra un Chirp à haute vitesse pendant la réinitialisation et établira une connexion à grande vitesse si le Hub le supporte. Si l'appareil fonctionne en mode haute vitesse, alors la résistance de rappel est retiré pour équilibrer la ligne. Un appareil de détection d'anomalie pour l'USB 2.0 n'est pas utile pour supporter le mode haute vitesse. Cela permet d'utiliser des appareils meilleurs marché si la vitesse n'est pas critique. C'est aussi le cas des appareils USB1.1 basse vitesse qui n'est pas nécessaire pour supporter la plein vitesse. Toutefois un appareil haute vitesse ne peut pas supporter le mode basse
vitesse. Il devrait seulement supporter le mode pleine vitesse nécessaire
en début de connexion, ensuite le mode haute vitesse s'il réussit par être
négocié. Un appareil face aval à détection d'anomalies pour l'USB 2.0 (Hub
ou Hôte) doit supporter les 3 modes, Haute, pleine et basse vitesse.
Un des avantages de l'USB réside dans ces appareils alimentés par le Bus. Ceux-ci obtiennent leur alimentation à partir du Bus et ne demande aucune prise externe et câble additionnel. Cependant beaucoup de gens se focalisent sur cette option sans prendre en compte au préalable tous les critères nécessaires. Un appareil USB précise sa consommation électrique exprimé en unité de 2mA dans le descripteur de la configuration que nous examinerons plus tard. Un appareil ne peut pas augmenter sa consommation électrique plus qu'il n'est précisé pendant l'énumération, même s'il perd de la puissance externe. Il existe 3 classes de fonctions USB,
Les fonctions alimentés par le Bus à haute puissance tireront toute leur puissance du Bus et ne pourront tirer plus d'une unité de charge jusqu'à ce qu'elles aient été configurées, après quoi elle pourront tirer 5 unités de charge (500mA max) pourvu que cela soit demandé dans son descripteur. Les fonctions du Bus à Haute puissance doivent être capable d'être détectées et énumérées à un minimum de 4,40V. Lorsqu'elles fonctionnent à pleine charge, un VBUS minimum de 4,75V est précisé avec un maximum de 5,25V. Une fois de plus, ces mesures sont prises à la prise mâle amont. Les fonctions auto alimentées peuvent tirer jusqu'à une unité et faire dériver le reste de leur alimentation d'une source extérieure. Si cette source extérieure venait à manquer, il doit y avoir des résreves en place de manière à ne pas tirer plus d'une unité de charge du Bus. Les fonctions auto alimentées sont plus facile à concevoir au niveau de la spécification car il ne peut guère y avoir de problêmes en ce qui concerne l'alimentation électrique. La charge alimentée par le Bus à une seule unité permet la détection de l'énumération d'appareil sans avoir besoin d'une alimentation principale/secondaire du secteur. Aucun appareil USB, qu'il soit alimenté par le Bus ou bien auto alimentée ne peut piloter VBus sur son port face amont. Si VBus est perdu, l'appareil a une durée de 10 secondes pour retirer l'alimentation des résistances de rappel de D+/D- utilisées pour l'identification de la vitesse. Les autres considérations de VBUS sont l'appel de courant qui doit être limité. Ceci est souligné dans le paragraphe 7.2.4.1 des spécifications USB et est souvent laissé de côté. L'appel de courant est soutenu au niveau de la capacité de tête de votre appareil entre VBUS et la masse. Les spécifications précisent par conséquent que la capacité de découplage maximum que vous pouvez avoir sur votre appareil est de 10µF. Quand vous déconnectez l'appareil après que le courant soit passé par le câble USB inductif, une grande tension de retour peut se produire sur l'extrémité ouverte du câble. Pour éviter ceci, on recommande une capacité de découplage VBUS minimum de 1µF. Pour l'appareil habituel alimenté sur un Bus, celui-ci ne peut drainer
plus de 500 mA, ce qui est fort raisonnable. Où est donc la complication,
me demandez vous? Peut-être dans le mode veille (suspend)? Le mode Veille est obligatoire sur tous les appareils. Pendant son temps d'action, d'autres contraintes surviennent. Le courant maximum de veille est proportionnel à l'unité de charge. Pour un appareil d'une unité de charge (par défaut) le courant de veille maximum est de 500µA. Ceci comprend le courant dû aux résistances de rappel sur le Bus. Au niveau du Hub, D- et D+ possèdent des résisatnces de rappel niveau bas de 15 kOhm. Pour des raisons de consommation électrique, la résistance de rappel niveau bas de l'appareil est montée en série avec la résistance de rappel niveau haut de 1,5 kOhm, totalisant ainsi une charge de 16,5 kOhm sur VTERM habituel de 3,3V. Par conséquent cette résistance draine un courant de 200 µA avant même que l'on commence. Une autre considération pour bon nombre d'appareils est le régulateur de 3,3V. Un grand nombre d'appareil USB fonctionne sur 3,3V. Le PDIUSBD11 en est un exemple. Les régulateurs linéaires sont habituellement tout à fait inefficace avec des courants de repos moyen de l'ordre de 600µA, par conséquent on aura besoin de régulateurs plus efficace et donc plus cher. Dans la majorité des cas, vous devez ralentir ou arrêter les horloges pour que la consommation du microcontrôleur tombe en dessous de la limite de 500µA. Beaucoup de développeur demande au forum des fournisseurs USB, quelles sont les complications si l'on dépasse cette limite? On comprend bien, que la plupart des Hôtes et des Hubs n'ont pas la possibilité de détecter de surcharge de cette importance et ainsi si vous drainez peut-être 5 mA ou même 10 mA cela devrait aller, tout en gardant à l'esprit qu'à la fin de la journée, votre appareil a enfreint la spécification USB. Toutefois en fonctionnement normal, si vous essayez de dépasser les 100 mA ou la charge permise qui vous est indiqué, alors attendez-vous à ce que le Hub ou Hôte le détecte et déconnecte votre appareil, dans l'intérêt de l'intégrité du Bus. Bien sûr, ces problèmes de conception peuvent être évités si vous
choisissez de concevoir un appareil auto alimenté. Les courants de veille
peuvent ne pas être d'un grand inérêt pour les ordinateurs de bureau mais
avec l'introduction de la spécification On-The-Go, nous allons commencer à
voir des Hôtes USB construit dans les téléphones mobiles et agendas
électroniques. La consommation électrique utilisée à partir de ces
appareils affectera défavorablement la durée de vie de la batterie.
Un appareil USB entrera en veille lorsqu'il n'y a aucune activité sur le Bus pendant plus de 3ms. Il dispose ensuite de 7ms de plus pour éteindre l'appareil et ne prendre que le courant de veille désigné, ne prenant ainsi que le courant de veille nominal à partir du Bus 10ms après que l'activité du Bus ce soit arrêté. Afin de le maintenir connecté à un Hub ou à un Hôte mis en veille, l'appareil doit encore fournir de l'alimentation à ces résistances de rappel de sélection de vitesse pendant le mode veille. L'USB possède un démarrage de trames de bits (frame packet) ou bien d'entretien qui sont envoyés périodiquement sur le Bus. Ceci empêche un Bus inutilisé d'entrer dans le mode veille en l'absence de données.
L'appreil reprendra son fonctionnement quand il recevra tout signal qui
n'est pas en attente. Si un appareil possède une mise en service de réveil
retardé, alors il devra signaler à l'Hôte de reprendre à partir du mode
veille. Un autre domaine qui est souvent négligé est la tolérance de l'horloge USB. Elle est précisée dans la spécification USB 7.1.11
|
Ce document vous a plu, alors il est possible de le
télécharger au format PDF CHAPITRE
2 ![]()
|
![]() Accueil |
![]() Sommaire |
![]() |