Exigences de routage pour une interface USB sur un PCB à 2 couches

Zachariah Peterson
|  Créé: Octobre 30, 2021  |  Mise à jour: Janvier 27, 2024
PCB USB 2 couches

Dans un blog précédent, j'ai abordé certains points de base dans la préparation des règles de routage pour les PCB à 2 couches afin de soutenir le routage et la disposition avec des signaux numériques. En particulier, nous avons examiné certaines des règles de stackup et de routage nécessaires pour soutenir une interface numérique comme I2C ou SPI sur un PCB à 2 couches. Lorsque vous travaillez avec ces interfaces, quelques directives simples peuvent aider à assurer l'intégrité du signal sur votre carte et à réduire les EMI.

Qu'en est-il d'une interface contrôlée par impédance comme l'USB ? Le besoin de contrôle de l'impédance, et savoir quand il peut être violé, est le point principal pour le routage de quelque chose comme l'USB sur un PCB à 2 couches. Dans cet article, je vais montrer comment vous devriez router un protocole à haute vitesse comme l'USB. Spécifiquement, nous examinerons les règles de conception importantes nécessaires pour le routage de la carte, en particulier la limitation de longueur que nous pourrions accepter pour les traces transportant des données USB. Si vous n'avez pas encore lu l'article précédent de cette série, jetez-y un œil car il pose certains des fondements conceptuels nécessaires pour comprendre les limites qui sont fixées sur les exigences de routage USB.

Commencer : Exigences de Routage USB à Haute Vitesse

Dans l'article précédent sur le routage de PCB à 2 couches, nous avons examiné une procédure pour déterminer la longueur de ligne maximale que vous pourriez utiliser dans votre conception sans avoir besoin d'appliquer une adaptation d'impédance. Nous avons découvert que la limite de longueur dépend du niveau de déviation d'impédance d'entrée que vous pouvez tolérer le long de la ligne de transmission. En particulier, cela dépend si vous considérez que 10 % à 25 % de la distance de voyage du signal sont le facteur important pour limiter la longueur de la trace.

Pour cette démo, je veux examiner le routage USB 2.0 sur ce circuit imprimé sous la norme High Speed, et je me concentre sur cette norme pour une raison spécifique. L'USB 2.0 (High Speed) est encore utilisé dans certains systèmes car il offre une connectivité avec des appareils plus anciens en plus d'un taux de transfert de données rapide, et il est encore utilisé sur des plateformes populaires comme Arduino avec une prise de type B.

Juste pour illustrer deux conceptions possibles, j'ai comparé le débit de données et le temps de montée de deux spécifications USB 2.0 (Full Speed et High Speed) :

Temps de montée/descente minimal du pilote

- 500 ps (High Speed)

- 4 - 20 ns (Full Speed)

Décalage maximal de la paire différentielle

- 100 ps (High Speed)

- 1 à 5 ns (Vitesse Complète)

Objectif d'impédance

- 90 Ohms différentiels

Le processus que je vais montrer ci-dessous est réalisé pour les signaux USB 2.0 avec le temps de montée et le décalage à haute vitesse, mais vous pourriez appliquer le même processus à l'USB 3.0 ou à toute autre interface à haute vitesse. Rappelez-vous juste : le routage sur une carte à 2 couches n'est pas approprié pour chaque interface. Par exemple, je ne connais personne qui recommanderait le routage DDR4 sur une carte à 2 couches en raison des limites de longueur réduites et du bruit rayonné par ces signaux rapides.

Longueur Critique

Tout d'abord, nous aimerions connaître la longueur critique pour un signal USB routé sur un PCB à 2 couches typique. Pour un cœur de matériau FR4 avec un Dk = 4.8, nous aurions un délai de propagation d'environ 150 ps/pouce, soit environ 6 pouces/ns. Avec notre temps de montée de 500 ps pour la spécification à Haute Vitesse, cela donne une distance de propagation du signal de 3 pouces pendant le temps de montée. Si nous sommes très conservateurs et utilisons une limite de 10 % sur la longueur critique, cela donne une longueur critique de 0,3 pouce !

La topologie que nous devons router ici est juste une ligne série avec des paires différentielles. Donc, vous avez trois éléments :

  • Le composant pilote, ou votre processeur avec l'interface USB
  • Les résistances de terminaison (voir la section ci-dessous à ce sujet)
  • Le connecteur qui tiendra votre câble USB

Vous vous demandez peut-être, comment cela est-il réalisé sur une plateforme comme Arduino ? Regardez l'image ci-dessous d'un Arduino Mega que vous pouvez acheter sur Amazon. Le contrôleur USB est placé près du connecteur et est définitivement à moins de 2,54 cm (1 pouce).

USB 2-layer PCB Arduino
Exemple de carte Arduino Mega. Remarquez que la puce contrôleur USB est proche du connecteur de type B.

Vous trouverez un placement et un routage similaires sur d'autres cartes Arduino. Afin d'éviter une inadéquation de l'impédance d'entrée avec le connecteur, le câble et le récepteur, nous voudrions suivre le conseil montré ci-dessus et garder le trajet court sur notre PCB à 2 couches. Cependant, nous n'avons pas besoin d'être aussi conservateurs au point d'appliquer une limite de 10 %. Au lieu de cela, si nous optons pour une limite de 25 %, nous aurons une distance de routage beaucoup plus confortable de 1,905 cm (0,75 pouce), ce qui est bien plus gérable sur un PCB à 2 couches.

Notez que cela concerne la spécification Haute Vitesse. Sous la spécification Pleine Vitesse, nous avons une longueur critique plus tolérante de 2,4 pouces (limite de 10 %) ou de 6 pouces (limite de 25 %) pour un temps de montée de 4 ns.

Une chose importante à noter est la suivante : il n'y a pas de limite fixe (10 %, 25 % ou autre) où nous avons une longueur critique valide, et selon la taille de votre PCB, vous pourriez dépasser la longueur critique et devoir maintenant concevoir selon l'impédance correcte. La limite dépend de plusieurs facteurs, et déterminer le bon pourcentage pour votre longueur critique nécessite de toute façon de calculer plusieurs valeurs d'impédance. Plutôt que de développer une règle basée sur cette longueur critique, il est toujours plus facile de simplement concevoir selon l'impédance USB requise.

Résistances de Terminaison

Ensuite, nous devons considérer comment la sortie du pilote est terminée. Puisque nous parlons spécifiquement de l'USB ici, notez que la spécification USB 2.0 exige des résistances de terminaison sur les lignes D+ et D- près du connecteur pour correspondre aux impédances. Celles-ci pourraient être intégrées dans le transceiver USB sur la puce, ou elles pourraient être nécessaires en tant que composant externe. Les valeurs typiques sont 15 Ohms, 22 Ohms ou 45 Ohms, bien que d'autres valeurs puissent être utilisées ; assurez-vous de vérifier votre fiche technique pour votre composant afin de voir quelle terminaison est nécessaire. Juste comme un exemple, le TUSB2077APTR contrôleur de Hub USB utilise des résistances de terminaison de 27 Ohms. Assurez-vous de vérifier la fiche technique pour vérifier si vous avez besoin de ces résistances externes.

Skew Différentiel

Avec une limite de décalage de 100 ps dans la norme à haute vitesse, nous pouvons maintenant calculer le déséquilibre de longueur autorisé entre les deux côtés de la paire différentielle (les signaux D+ et D-). En prenant l'estimation approximative du délai de propagation de 6 ns/pouce pour le routage en couche de surface, et en le multipliant par la limite de décalage, nous obtenons une différence de longueur de trace de 0,6 pouce (600 mil). C'est très important ! Nous avons beaucoup de liberté pour permettre un certain appariement de longueur de trace. Cependant, il y a un point important ici : cela inclut la longueur totale de l'interconnexion (votre carte + câble + carte réceptrice). Par conséquent, juste pour être sûr, faites de votre mieux pour limiter le décalage autant que possible en acheminant les paires ensemble et en imposant un peu d'appariement de longueur là où c'est possible. C'est assez facile car les puces de contrôleur USB placeront généralement les signaux D+ et D- sur le même bord de la puce.

Lorsque la différence de longueur est courte, vous pourriez ne pas avoir besoin de mettre en œuvre l'ajustement de longueur car cela prend de l'espace dans l'agencement du PCB. Juste pour voir ce que feront les autres systèmes fonctionnels, regardez l'image de l'agencement du PCB de l'Arduino UNO ci-dessous (note : cela a été converti à partir de fichiers Eagle). Les lignes USB ont été mises en évidence dans l'image. Si nous mesurons les longueurs des côtés positif et négatif de ces lignes (couvrant chaque côté des résistances de terminaison), nous trouvons que la différence de longueur est d'environ 180 mils. C'est pourquoi ces lignes ne sont pas ajustées en longueur entre l'Arduino et le connecteur USB.

Dans cet espace restreint, l'interface fonctionnera toujours correctement car la différence de longueurs n'est que d'environ 180 mils, ce qui est bien inférieur à la tolérance de désalignement. Même avec l'effet de tressage de fibre dans le pire des cas sur un stratifié à tissage de verre lâche, le désalignement total (en termes de longueur) ne représenterait qu'un équivalent de moins d'environ 230 mils, toujours bien inférieur à la tolérance de désalignement pour cette interface.

Votre Style de Routage : Paires Différentielles Couplées ou Microbandes Différentielles Coplanaires

Comme je l'ai souligné dans le blog précédent, vous ne pouvez pas utiliser la largeur de piste correspondant à l'impédance caractéristique dans le USB 2.0 haute vitesse et respecter quand même la spécification d'impédance. Rappelez-vous, la largeur de piste sur un PCB d'épaisseur standard avec deux couches était d'environ 110 mils pour un Dk de 4.8. Comment pouvons-nous possiblement atteindre la spécification d'impédance de paire différentielle dans le USB 2.0 haute vitesse avec cette largeur de piste ?

En réalité, nous n'avons pas besoin d'utiliser cette largeur de piste en raison de la manière dont les pistes dans les paires différentielles vont se coupler entre elles. Si vous utilisez votre calculateur de pile de couches avec un PCB épais à 2 couches pour calculer l'impédance différentielle pour les microstripes, vous trouverez que la largeur de piste réelle nécessaire est beaucoup plus petite et est une fonction de l'espacement. Pour nos lignes microstripes d'exemple sur un PCB à 2 couches, le Gestionnaire de Pile de Couches dans Altium Designer nous indique que la largeur de piste est d'environ 16 mils pour un espacement de 5 mils.

USB 2-layer PCB impedance
Résultats de l'impédance microstrip différentielle dans le Gestionnaire de Pile de Couches d'Altium Designer

Vous pourriez utiliser des pistes plus fines avec ces microbandes différentielles, mais vous auriez besoin d'utiliser un espacement plus petit. Dans cette conception, nous sommes proches de la limite des dégagements entre pistes pour la gravure, donc maintenir un dégagement de 5 mils entre les pistes est acceptable puisque nous atteignons la spécification à extrémité unique et la spécification différentielle avec ces largeurs de piste. Comment savons-nous que nous atteignons la partie à extrémité unique de la spécification ? C'est parce que : la largeur de piste donnée ci-dessus est pour l'impédance en mode impair d'une seule piste, et non l'impédance caractéristique ! C'est pourquoi vous devez vous en tenir à cette valeur particulière pour la largeur de piste et ne pas utiliser la valeur de l'impédance caractéristique pour une microbande isolée.

Il existe une alternative dont nous n'avons pas discuté : utiliser des paires différentielles en microbande coplanaire. En faisant courir le plan de masse jusqu'aux microbandes sur la couche de surface, et en plaçant le plan de masse sous les signaux sur la couche inférieure, vous pouvez atteindre une impédance différentielle de 90 Ohms avec des pistes de 9,5 mils de large, un écart de piste de 5 mils, et un espacement de 5 mils par rapport au sol. Nous pouvons voir à partir des valeurs ci-dessous que nous atteignons bien l'impédance de 90 Ohms requise dans la spécification USB 2.0 avec ces valeurs.

USB 2-layer PCB coplanar impedance
Résultats de l'impédance différentielle coplanaire dans le Gestionnaire de Pile de Couches d'Altium Designer 

Avec cet arrangement, nous n'aurons pas à nous soucier autant du problème de longueur critique et du problème de largeur de trace dans une carte à 2 couches. Cependant, vous devez noter que cette largeur et cet espacement doivent être maintenus tout au long de la longueur du tracé. Le routage USB traite les traces comme des traces à extrémité unique individuelles qui se trouvent juste transporter un signal différentiel, donc vous pourriez les router séparément.

À l'intérieur de la mise en page du PCB

La topologie de routage est assez simple : routez du chip USB aux résistances de terminaison/tirage vers le haut/tirage vers le bas, puis vers le connecteur, le tout en paires différentielles. L'image ci-dessous montre la topologie de routage de haut niveau avec des résistances de tirage vers le haut et vers le bas. Quelques condensateurs sont également requis selon la norme USB 2.0 comme indiqué ci-dessous.

USB 2-layer PCB routing
Topologie de routage pour le routage USB 2.0 à pleine vitesse et haute vitesse.

Le routage est plutôt simple : respectez les pratiques standard de routage de paires différentielles entre chaque partie du système et vous n'aurez pas de problèmes avec l'enregistrement du signal ou l'adaptation d'impédance. Gardez des routes courtes avec des connexions directes partant des lignes de paires différentielles pour faire des connexions à GND/VCC pour les résistances de tirage vers le bas et vers le haut. Assurez-vous de vérifier le circuit d'application pour votre dispositif dans vos fiches techniques car les lignes D+/D- peuvent avoir des condensateurs externes supplémentaires sur le dispositif ; vous verrez cela sur le dispositif TUSB2077A que j'ai cité ci-dessus.

Nous montrerons un exemple réel dans la disposition du PCB dans un blog à venir. Pour l'instant, essayez cela par vous-même et voyez si vous pouvez obtenir le routage du design.

Résumé

Dans ce blog et notre article de blog précédent, nous avons examiné certaines des règles de routage importantes à suivre lors de la configuration et du routage d'une interface à haute vitesse comme l'USB sur un PCB à 2 couches. Voici nos directives de routage finales :

  • Si vous n'avez pas accès à un calculateur d'impédance différentielle, ou si vous ne savez pas comment le calculer, alors contentez-vous de garder les longueurs de pistes inférieures à 0,75 pouces sans contrôle d'impédance
  • Gardez l'écart de longueur entre les paires différentielles dans la limite de 0,6 pouces - c'est très facile à faire
  • Si vous avez accès à un calculateur d'impédance différentielle, alors utilisez des microbandes différentielles ou des microbandes coplanaires différentielles (toutes deux avec une impédance contrôlée) et concevez selon la spécification d'impédance différentielle de 90 Ohms

Les directives de routage présentées ici ne garantiront pas toujours la CEM, il y a d'autres aspects de la conception à considérer, qui sont parfois mal réalisés dans les PCB à 2 couches. Cependant, ces directives aideront certainement à réduire les interférences électromagnétiques si vous travaillez avec la spécification Full Speed. Ma préférence personnelle est d'utiliser un PCB à 4 couches pour les bus numériques sériels et les protocoles à haute vitesse, particulièrement si la carte est plus grande ou si elle va être produite en volume.

Si vous utilisez l'USB 3.0, alors vous avez des exigences strictes en matière d'appariement des longueurs en raison des taux de transition rapides, et vous devriez placer l'interface près du connecteur comme nous l'avons fait avec la spécification Full Speed mentionnée ci-dessus.

Lorsque vous devez router une interface comme l'USB sur un PCB à 2 couches ou sur une carte multicouche plus avancée, utilisez les outils de disposition et de routage de PCB dans CircuitMaker. Tous les utilisateurs de CircuitMaker peuvent créer des schémas, des dispositions de PCB et la documentation de fabrication nécessaire pour passer d'une idée à la production. Les utilisateurs ont également accès à un espace de travail personnel sur la plateforme Altium 365™, où ils peuvent télécharger et stocker les données de conception dans le cloud, et visualiser facilement les projets via un navigateur web sur une plateforme sécurisée.

Commencez à utiliser CircuitMaker dès aujourd'hui et restez à l'écoute pour le nouveau CircuitMaker Pro d'Altium.

A propos de l'auteur

A propos de l'auteur

Zachariah Peterson possède une vaste expérience technique dans le milieu universitaire et industriel. Avant de travailler dans l'industrie des PCB, il a enseigné à la Portland State University. Il a dirigé son M.S. recherche sur les capteurs de gaz chimisorptifs et son doctorat en physique appliquée, recherche sur la théorie et la stabilité du laser aléatoire. Son expérience en recherche scientifique couvre des sujets tels que les lasers à nanoparticules, les dispositifs électroniques et optoélectroniques à semi-conducteurs, les systèmes environnementaux et l'analyse financière. Ses travaux ont été publiés dans diverses revues spécialisées et actes de conférences et il a écrit des centaines de blogs techniques sur la conception de PCB pour de nombreuses entreprises. Zachariah travaille avec d'autres sociétés de PCB fournissant des services de conception et de recherche. Il est membre de l'IEEE Photonics Society et de l'American Physical Society

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.