L'interface ULPI des couches PHY USB haute vitesse

Phil Salmony
|  Créé: October 3, 2022  |  Mise à jour: November 16, 2022
Routage USB haute vitesse (ULPI)

Il existe aujourd'hui de nombreuses variantes de la norme USB sur le marché, allant des variantes du protocole lui-même aux variations internes. Dans cet article, nous allons examiner l'interface ULPI (interface UTMI + à faible brochage), que l'on trouve dans les couches PHY USB haute vitesse (HS).

L'ULPI est une variante de l'interface UTMI+ avec un nombre de broches réduit. Cela nous aide en tant qu'ingénieurs concepteurs de circuits imprimés, car nous n'avons pas besoin de tracer et de faire correspondre la longueur d'autant de pistes. Ceci est particulièrement avantageux pour les conceptions à espace restreint, ainsi que pour la gestion des interférences électromagnétiques.

L'ULPI est un interfaçage haut vitesse qui permet la mise en œuvre finale de l'USB haute vitesse afin d'atteindre un débit binaire maximum spécifique de 480 Mbps. Il faudra donc faire preuve de prudence lors du routage, afin d'éviter les problèmes d'interférences électromagnétiques et d'intégrité du signal.

Pour plus d'informations, n'hésitez pas à visionner cette vidéo (en anglais).

Principes de base

Une couche PHY USB haute vitesse est, pour faire simple, un point de transition entre une interface ULPI et une paire différentielle USB visible par un connecteur USB. L'interface ULPI est exposée à un circuit intégré compatible, tel qu'un microcontrôleur avancé, un FPGA ou un système sur puce (SoC).

L'interface ULPI est composée d'un bus de données bidirectionnel de 8 bits (DATA[7:0]), d'un signal d'horloge (CLK) fonctionnant à une fréquence de 60 MHz et de divers signaux de contrôle (DIR, STP, NXT).

Temps de montée et de descente de l'ULPI

Bien que la fréquence d'horloge de 60 MHz puisse sembler faible, n'oublions pas ici que nous ne sommes pas nécessairement préoccupés par celle-ci, mais plutôt par les temps de montée et de descente.

C'est dû au fait que les bords de notre signal numérique (presque) carré contiennent la majorité des informations haute fréquence. Sans analyse détaillée, on peut facilement s'en rendre compte en observant la série de Fourier d'une onde carrée qui est composée de la fondamentale (ici, 60 MHz) et d'harmoniques impaires s'étendant à l'infini avec des niveaux de puissance décroissants.

Malheureusement, les temps de montée et de descente sont généralement difficiles à trouver sur la fiche technique d'un fabricant et doivent être extraits via des fichiers IBIS. Les fiches techniques ne nous donnent généralement qu'un « meilleur scénario » pour les temps de montée et de descente, ce qui n'est pas tout à fait suffisant.

Dans tous les cas, en raison de ce contenu harmonique à haute fréquence, ainsi que des contraintes liées à la temporisation imposées par l'interface ULPI, nous devrons faire attention lors du routage.

Impédance contrôlée des pistes ULPI

Les signaux ULPI nécessitent un contrôle d'impédance aux fréquences concernées. Pour les pistes plus longues, celles-ci agiront comme des lignes de transmission. Ainsi, l'impédance doit correspondre au niveau du driver et du récepteur.

De manière générale, les pistes ULPI devront avoir une impédance contrôlée de 50 ohms. Nous n'aborderons pas dans cet article le calcul de l'impédance des pistes. Toutefois, Altium Designer propose un solveur de champs 2D très pratique.

Vous devrez connaître l'empilement de votre circuit imprimé et saisir ces informations dans le gestionnaire d'empilage de couches d'Altium Designer. Ensuite, vous pourrez accéder à l'onglet « Impedance » et Altium Designer se chargera de calculer la largeur de piste requise pour une impédance donnée.

impédance contrôlée


Notez que la paire différentielle USB haute vitesse doit être routée avec une impédance différentielle de 90 ohms.

Égalisation du temps de propagation

Égalisation du temps de propagation


Outre le contrôle de notre impédance de piste, nous devons aussi égaliser le temps de propagation des pistes. La spécification ULPI et les spécifications de synchronisation de la fiche technique PHY peuvent être utilisées pour déterminer le budget de synchronisation.

Si vous n'avez encore jamais calculé de budget de synchronisation auparavant, n'oubliez pas de consulter le guide de l'utilisateur UG863 de Xilinx et en particulier la section USB 2.0. Vous obtiendrez ainsi les calculs de la longueur de piste maximale autorisée, ainsi que les variations maximales du temps de propagation entre les pistes de signaux ULPI et la piste CLK.

Quel que soit le scénario d'égalisation du temps de propagation, n'oubliez pas de prendre en compte les retards liés aux broches du boîtier de votre contrôleur. Comme pour les temps de montée et de descente, les retards des broches et du boîtier peuvent être assez difficiles à identifier. Cependant, ils peuvent être de l'ordre de plusieurs centaines de picosecondes, ce qui peut impacter votre budget de synchronisation.

Il faudra également tenir compte des retards liés aux vias. Il existe une méthode de routage simple permettant d'ignorer ce retard en routant toutes les pistes de la même manière. Cela implique d'utiliser le même nombre de vias et les mêmes transitions de couches pour tous les signaux ULPI.

Plans de référence et pistes ULPI

N'oubliez pas d'ajouter des plans de référence pleins (de préférence, des plans « 0V ») directement adjacents à vos pistes de signaux. Il est également recommandé d'ajouter un diélectrique fin entre les deux. De même, ne routez pas les pistes ULPI sur des séparations ou des vides dans le plan de référence.

Plans de référence


Enfin, lors de la transition entre des références et des couches avec un via de signal, veillez à placer un via de « transition » (à « 0V ») à proximité du via de signal. Cela permet de s'assurer que le chemin de retour soit toujours bien défini et garantisse une bonne transition du plan de référence pendant la transition sur l'axe Z.

Plans de référence


Le routage ULPI nécessite une attention particulière en ce qui concerne la topologie et le routage des circuits imprimés.

Cependant, avec un peu de réflexion et en suivant les indications de cet article, vous parviendrez à créer des conceptions ULPI fonctionnelles tout en évitant les problèmes d'interférences électromagnétiques et d'intégrité du signal.

Altium Designer peut vous assister dans ce processus grâce à son solveur de champ 2D avancé pour les calculs d'impédance, ainsi que ses outils d'égalisation du temps de propagation et de longueur.
 

A propos de l'auteur

A propos de l'auteur

Phil Salmony est ingénieur en conception matérielle et créateur de contenu d'ingénierie pédagogique. Après avoir obtenu une maîtrise en ingénierie des systèmes électriques et de commande à l'université de Cambridge, il a commencé sa carrière d'ingénieur dans une grande entreprise aérospatiale allemande. Plus tard, il a cofondé au Danemark une start-up de drones dont il était directeur de l'électronique et de la conception de circuits imprimés et qui se spécialisait dans les systèmes embarqués à signaux mixtes. Il dirige actuellement son propre cabinet de conseil en ingénierie en Allemagne et travaille principalement dans le domaine de l'électronique numérique et de la conception de circuits imprimés.

En plus de son travail de consultant, Phil Salmony dirige sa propre chaîne YouTube (Phil's Lab), où il crée et publie des vidéos d'ingénierie éducative sur des sujets tels que la conception de circuits imprimés, le traitement de signaux numériques et l'électronique à signaux mixtes.

Ressources associées

Documentation technique liée

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