Le Gigabit Ethernet est désormais effectivement un standard de base pour le réseau de bureaux et commercial. Il existe de nombreux composants disponibles qui peuvent être utilisés pour construire un commutateur Ethernet simple, mais dans cet article, nous allons montrer un exemple de conception pour un commutateur Ethernet à grand nombre de ports. La conception présentée dans cet article inclut également une expansion pour câble à fibre optique avec un connecteur SFP. Ce projet nécessite la mise en œuvre réussie de plusieurs aspects communs de la conception à haute vitesse, incluant :
Comme d'habitude, les fichiers du projet peuvent être téléchargés depuis mon site web. Vous pouvez également consulter les liens de téléchargement dans l'intégration du visualiseur Altium 365 ci-dessous. Cliquez sur ce lien pour télécharger une archive ZIP avec les fichiers sources du projet ou vous pouvez utiliser le lien de téléchargement dans l'intégration.
Ce projet de commutateur Ethernet est basé sur la série VSC742x de processeurs de commutation Ethernet de Microchip. Ces processeurs peuvent être associés à un PHY d'expansion associé qui se connecte au processeur de commutation via une interface SGMII. Il y a des composants supplémentaires pour la mémoire et la communication externe, ainsi que plusieurs régulateurs de tension. La liste des principaux composants dans les circuits comprend :
Au total, l'appareil prend en charge 12 ports Ethernet standard, inclut un port de liaison montante et comprend un port SFP pour un transceiver à fibre. Le design inclut également une interface série amenée sur un connecteur RJ-45 sans le circuit de terminaison mag jack.
Dans les fichiers du projet, les schémas pour l'interrupteur et les interfaces de port se trouvent aux pages une, deux et trois. Le VSC7426 comprend une interface DDR2 et utilise une puce RAM DDR2 externe. Il dispose de plusieurs GPIOs qui peuvent fonctionner comme indicateurs, bien que le firmware fourni par le vendeur fournisse également les messages d'état requis sur un terminal.
Les schémas pour cette conception sont grossièrement basés sur la conception de référence VSC7426/VSC7427 de Microchip. Vous pouvez accéder à la conception de référence originale sur le site web de Microchip.
Les circuits VSC7426 et VSC8574 sont montrés dans les images ci-dessous. Le VSC7426 est la vedette du spectacle et il fournit jusqu'à 16 ports RJ-45. Le VSC8574 est utilisé pour étendre ce nombre de ports et communique avec le VSC7426 via une interface SGMII. Des condensateurs de couplage AC sont inclus comme c'est standard dans SGMII. Notez que la documentation de Microchip sur ce chipset recommande de mettre à niveau le VSC8574 vers le VSC8664 ; cependant, le package OS embarqué disponible publiquement est compatible avec la puce VSC8574.
Certains des réglages du VSC7426 sont déterminés par un ensemble de résistances de configuration sur les broches C6, C7, C8 et C9. Le réseau de résistances de 1 kOhm présenté ci-dessous peut être installé ou retiré selon les besoins pour activer diverses fonctionnalités sur le VSC7426. Le VSC7427 peut également être utilisé dans cette conception, mais cela nécessite de modifier certains des réglages des résistances, comme détaillé dans le coin inférieur gauche de l'image.
Ces puces disposent de plusieurs rails et utilisent une quantité importante d'énergie pour générer l'horloge et le signal. Comme on peut le voir ci-dessous, les puces utilisent un nombre significatif de condensateurs de découplage pour assurer l'intégrité de l'alimentation.
Vous remarquerez que des ferrites sont utilisés pour isoler des éléments en raison de la forte consommation de courant dans l'alimentation principale de la logique. Comme mentionné dans certains autres articles d'Altium, cette approche fonctionne parfois pour isoler un PLL plus lent ou un rail analogique d'un rail numérique rapide fonctionnant en parallèle, mais des tests devraient être effectués pour confirmer que la ferrite n'amplifie pas les transitoires entre les deux rails. C'est quelque chose que je discuterai plus en détail dans un prochain article et vidéo, mais en attendant, je renvoie les lecteurs à une présentation plus ancienne de DesignCon qui discute de ce cas d'utilisation spécifique des perles de ferrite.
L'image ci-dessous montre le circuit du connecteur SFP utilisé pour se connecter à un transceiver optique. Le circuit de connecteur SFP présenté ici est utilisé dans d'autres conceptions supportant jusqu'à 10 Gbps. Le connecteur SFP nécessite plusieurs résistances de configuration pour accéder à certaines fonctionnalités sur un transceiver optique. Certaines d'entre elles ont été marquées DNI dans le schéma ci-dessous car elles ne sont pas nécessaires pour la fonctionnalité minimale viable du transceiver optique.
En plus du MOSFET utilisé pour basculer la broche Tdis, il y a une logique supplémentaire entre le VSC8574 et le MOSFET. On pourrait contourner cette logique supplémentaire si l'on souhaite activer de manière permanente le transceiver optique. Pour ce faire, tirez la porte du MOSFET vers le haut ou mettez la broche d'activation à l'état bas, et cela activera le transceiver.
Un autre point important ici concerne les résistances de zéro ohm sur les lignes RX et TX. Les résistances de zéro ohm pourraient être remplacées par des condensateurs de couplage AC, mais cela n'est pas nécessaire. La raison est que le couplage AC est intégré dans les modules transmetteurs de fibre optique standardisés. Lors de l'utilisation de ce circuit à 1 Gbps, échanger entre des résistances de 0 ohm et différentes valeurs de condensateurs de couplage AC ne créera très probablement aucun bénéfice ni préjudice sur l'intégrité du signal. Si ce schéma doit être utilisé à des débits de données plus élevés, les condensateurs de couplage et leur emplacement pourraient être ajustés en fonction des raisons que je décris dans cet article récent.
Le design inclut à la fois de la mémoire flash et de la RAM pour le stockage des données et la conservation du binaire du firmware, respectivement. Le design comprend deux puces flash, comme montré ci-dessous, bien que seulement une de ces puces soit requise pour un design viable minimal. La plus petite puce flash Macronix NOR de 128 Mbit (MX25L12835FMI-10G) a été utilisée dans notre PCB de démonstration et a été utilisée dans les versions de production de ce design.
RAM et mémoires Flash trouvées dans SCH003.
La mémoire flash doit être connectée à SPI et sera écrite en utilisant un programmeur externe via un connecteur SWD. Ceci sera discuté plus en détail plus tard.
Il y a deux autres puces mémoire qui peuvent être utilisées dans la conception :
Sur notre carte de démonstration, nous les avons marquées DNI et elles n'ont pas été incluses dans l'assemblage.
Une manière de se connecter rapidement à un commutateur Ethernet installé dans un rack est d'utiliser un port série. Pour rendre le port accessible à travers le boîtier de l'appareil, une option consiste à sortir un port série sur un connecteur RJ-45. Cela est réalisé ci-dessous en utilisant un connecteur jack non magnétique. Selon l'orientation du port série RJ-45, un câble pourrait être routé vers un panneau de brassage, et un technicien pourrait alors brancher son ordinateur sur un panneau de brassage pour accéder au port série.
L'accès au port série a également été ajouté en utilisant un connecteur à deux broches sur l'entrée du transceiver RS-232 (J5 dans l'image ci-dessus). Cela vous donne accès au port série via un module USB-vers-UART.
Ce design comprend au total trois BGA, le plus grand étant le VSC7426 avec 672 broches. La plupart des broches sur le VSC7426 et le VSC8574 sont des broches de masse et d'alimentation, donc nous n'aurons pas besoin d'un circuit imprimé à un nombre de couches très élevé pour terminer le routage. Ce circuit a été réalisé avec six couches, avec l'empilement montré ci-dessous.
Empilement du PCB et réglages d'impédance
Cet empilement correspond presque à un empilement standard de chez JLCPCB, bien que les tolérances sur DDR2 et Ethernet permettent une certaine variation dans les épaisseurs des couches. Tant que les couches externes sont fines et la couche centrale interne est épaisse, l'impédance différentielle et l'impédance simple des lignes à impédance contrôlée atteignent l'impédance cible dans les tolérances autorisées. Les couches externes fines garantissent que notre routage en microstrip ne sera pas trop large, car les voies Ethernet et DDR2 nécessitent une impédance contrôlée.
Toutes les paires différentielles dans le design ont été routées avec une impédance différentielle de 100 ohms. Bien que l'empilement ait été conçu sur mesure pour être produit dans une large gamme d'usines de fabrication, le prototype de carte montré plus loin dans cet article a été produit chez JLCPCB avec l'un de leurs empilements standard.
Le chipset Ethernet PHY et la puce DDR2 ont des pas de bille de 1,0 mm et 0,8 mm, respectivement. Cela signifie que nous pouvons utiliser des vias traversants avec dog-bone fanout pour atteindre les rangées intérieures des BGA. Nous n'avons également pas besoin de vias aveugles et enterrés pour les liaisons Ethernet car les puces VSC ont les broches Ethernet regroupées autour du bord des boîtiers. Cela signifie que les voies Ethernet peuvent être routées directement dans les boîtiers sous forme de microbandes différentielles. Ce routage est montré ci-dessous, incluant de petites sections de réglage de longueur où des coins sont présents dans le routage.
Ensuite, le bus DDR est suffisamment large pour que la conception nécessite deux couches pour être entièrement routée dans la puce DDR. Cela est montré dans les deux captures d'écran ci-dessous. Le bus DDR est routé avec une impédance de 50 ohms sur la couche interne et la couche externe ; l'horloge différentielle est montrée sur la Couche 4.
Il est parfaitement acceptable d'effectuer ce type de routage pour un bus parallèle, mais cela nécessite un ajustement des retards entre les couches externes et internes. Comme le retard de propagation du microstrip est déterminé par une constante diélectrique effective, les signaux se déplaçant le long d'un microstrip et d'une stripline auront des vitesses de propagation différentes. Cela nécessite un ajustement des retards sur les différentes couches pour s'assurer que tous les signaux sur le bus DDR2 arrivent dans la fenêtre de temps requise.
L'interface parallèle NAND flash n'était pas installée sur la carte de démonstration, mais la conception peut l'accueillir si nécessaire. L'interface parallèle utilise 8 traces appariées en longueur pour router entre le VSC7426 et le flash parallèle. Ce routage est confiné à la Couche 4 et est montré ci-dessous (l'interface parallèle est mise en évidence).
Comme cette conception implique un processeur qui a de nombreuses E/S à haute vitesse fonctionnant simultanément, certains principes de base de l'intégrité de l'alimentation doivent être mis en œuvre. Dans le schéma, nous avons montré un grand nombre de condensateurs utilisés sur les rails logiques, mais le PCB a également besoin d'une capacité de plan pour la stabilité de l'alimentation dans la gamme des 100 mégahertz. Cette exigence de stabilité de l'alimentation s'applique ici parce que les interfaces Ethernet fournies dans ce dispositif ont des exigences de bande passante de canal dans la gamme des 100 MHz, donc nous devons assurer une alimentation stable au moins jusqu'à ces fréquences.
Pour ce faire, nous routons de grands rails sur la couche 3 pour fournir directement de l'énergie aux alimentations d'E/S à haute vitesse à 3,3 V, 2,5 V, 1,8 V et 1,0 V.
Afin de garantir que la conception présente une faible inductance sur les connexions de chaque condensateur, tous les petits condensateurs de découplage ont été montés directement sur le côté arrière du PCB, derrière le boîtier BGA VSC7426. Une connexion directe à travers une paire de vias traversants jusqu'aux billes sur le boîtier BGA ajoute environ 1 nH d'inductance à la valeur ESL du condensateur et cela limitera la capacité de réponse des petits condensateurs de découplage SMD à la gamme des 10 MHz. La même approche a été adoptée sur le VSC8574.
Les condensateurs de découplage/bypass sont connectés directement aux vias traversants sur les paires de broches d'alimentation/masse pour garantir des connexions à faible inductance sur les condensateurs.
Ensemble, les condensateurs de masse sur les alimentations, les condensateurs de bypass et de découplage sur les BGA, la capacité des plans provenant des grands rails, et la capacité sur puce dans le chipset Ethernet couvrent collectivement jusqu'à la gamme des GHz et aident à garantir l'intégrité de l'alimentation.
Le modèle 3D complet de l'agencement final du PCB est présenté ci-dessous. Nous pouvons voir les 12 ports RJ-45, le port supplémentaire GbE Uplink connecté au VSC8574, le connecteur série-RJ-45, et la cage SFP pour notre transceiver en fibre.
Le VSC7426 exécute un noyau Linux embarqué utilisant RedBoot comme chargeur de démarrage. Le système d'exploitation embarqué est simple à installer et le code est disponible chez Microchip. Le fournisseur propose différentes versions du code en fonction de la fréquence d'horloge principale, du PHY d'expansion et des paramètres de configuration utilisés dans la conception. Pour aider les lecteurs à démarrer rapidement, j'ai inclus un binaire de firmware fonctionnel dans les fichiers du projet.
Pour flasher le binaire sur l'appareil, les utilisateurs auront besoin d'un programmeur avec une interface SPI. Le programmeur que je préfère utiliser pour le flashage est le programmeur Forte, disponible sur ASIX.net. Ce programmeur prend en charge une longue liste de microcontrôleurs et de mémoires, y compris la flash NOR SPI de Macronix utilisée dans ce projet. La vidéo à la fin de cet article décrit les étapes de flashage en utilisant le logiciel de programmation ASIX UP et le programmeur Forte.
Une fois le processus de flashage terminé, éteignez la conception, débranchez le programmateur et connectez un pont série au connecteur 2 broches (J5) pour accéder à l'interface UART (taux de baud de 115200 kbps). Ensuite, réappliquez l'alimentation et la conception démarrera jusqu'à une invite de connexion ; connectez-vous avec le nom d'utilisateur admin, le mot de passe est vide.
Sortie du terminal (dans TeraTerm) une fois que le commutateur démarre et que l'utilisateur se connecte
Des instructions supplémentaires sont nécessaires pour mettre pleinement en service la conception et activer chacun des ports. Pour accomplir ces tâches, les instructions peuvent être trouvées dans le fichier “VSC5611EV Mechanical Assembly and Programming Guide.pdf” dans le dossier Binaires des fichiers sources. Les instructions de programmation commencent à la page 18 du fichier PDF.
La vidéo ci-dessous montre notre travail de mise en service et une revue de la conception du PCB sur la chaîne Youtube Altium Academy. Pour en savoir plus sur ce projet et voir le processus de flashage, vous pouvez regarder la vidéo suivante.
Que vous ayez besoin de construire des électroniques de puissance fiables ou des systèmes numériques avancés, utilisez l'ensemble complet de fonctionnalités de conception de PCB et d'outils CAO de classe mondiale dans Altium Designer. Pour mettre en œuvre la collaboration dans l'environnement interdisciplinaire d'aujourd'hui, les entreprises innovantes utilisent la plateforme Altium 365 pour partager facilement les données de conception et lancer les projets en fabrication.
Nous n'avons fait qu'effleurer la surface de ce qui est possible avec Altium Designer sur Altium 365. Commencez votre essai gratuit d'Altium Designer + Altium 365 dès aujourd'hui.