Contexte
Je travaille avec un client sur un grand projet qui nécessite une puce de mise en réseau personnalisée pour répondre aux exigences de transfert de données au sein du projet. Le réseau est destiné à envoyer de petits paquets à quelques centimètres d'un PCB à un autre via un seul câble à paire torsadée. Nous allons concevoir et spécifier le protocole réseau, et une autre société sera responsable de la mise en œuvre du silicium.
J'estime que le débit de données de 20 Mbps entre les nœuds fera facilement face à la quantité de données qui doit être envoyée, avec beaucoup d'espace pour la tête si la quantité de données augmente à l'avenir.
Problème
Le client me demande pourquoi je ne spécifie que 20Mbps. Pourquoi pas quelque chose comme 1Gbps? Ce ne serait pas mieux? Intuitivement, je pense que monter massivement le débit de données au-delà de ce qui serait nécessaire est une mauvaise idée. Au départ, je pensais que le câblage devrait être blindé (ce que je ne veux pas), mais en regardant les catégories de câbles Ethernet, je vois que Gigabit Ethernet peut fonctionner sur un câble Cat 6, qui n'a pas besoin d'être blindé.
Autres contraintes
- Le projet est désespérément limité par l'espace, et n'avons-nous pas de place pour des choses comme le magnétique, sauf s'il s'agit d'un très petit composant (0603 max).
- Les câbles doivent être aussi fins et flexibles que possible.
- L'appareil fonctionnera avec une alimentation enfichable, il n'y a donc pas d'exigence particulière de faible puissance.
Question
Quels sont les problèmes, en termes de conception de silicium, de câblage et d'autre chose, qui peuvent être rencontrés à 1 Gbit / s, qui ne seraient pas aussi graves à 20 Mbit / s? Dois-je suivre la suggestion de mon client de mettre en œuvre le réseau à 1 Gbit / s, ou dois-je insister pour ne mettre en œuvre que ce qui est requis?
Nous sommes soumis à un NDA strict, donc je ne peux pas donner trop de détails sur nos exigences. Mais veuillez laisser un commentaire si une clarification est nécessaire.
la source
Réponses:
Quelques raisons:
Puissance
Une vitesse plus rapide signifie plus de puissance. Non seulement vous avez besoin de circuits analogiques plus rapides, qui consommeront plus d'énergie, mais tous vos appareils électroniques qui les entourent doivent être plus rapides. Vos systèmes numériques, vos verrous, la gestion de l'horloge, etc. Si vous obtenez ce 1 Gbit / s en utilisant la signalisation à plusieurs niveaux, vous avez maintenant besoin de meilleurs ADC et DAC. Vous devrez peut-être commencer à gérer un filtrage plus complexe. Vous pourriez commencer à exiger la FEC qui doit également suivre.
Taille de puce
Plus rapide signifie plus de choses. Vous avez besoin d'une meilleure stabilité d'horloge, ce qui signifie des circuits plus gros. Vous avez besoin d'un meilleur timing, ce qui signifie un système de récupération d'horloge plus complexe. Vous devrez peut-être passer à l'utilisation du DSP pour effectuer l'égalisation des canaux. Votre FEC potentiellement nécessaire a besoin d'un espace de puces.
Sensibilité à l'environnement
Si vous passez de quelques dizaines de mégabauds à tout ce qui est nécessaire pour le gigabit, vous deviendrez beaucoup plus sensible à l'environnement. De petites discordances qui pourraient être imperceptibles à quelques dizaines de MHz deviennent des talons résonnants à des fréquences plus élevées. Les réflexions peuvent commencer à provoquer des performances intermittentes. Un câble entaillé en raison d'un abus au fil des ans (je ne connais pas l'environnement d'application de votre produit) peut convenir à des vitesses inférieures, mais entraîner de mauvaises performances lorsque vous montez plus haut.
Effort de conception
Je pense qu'il est évident d'après toutes les questions supplémentaires que j'ai discutées ci-dessus que le temps et les efforts nécessaires pour concevoir un lien de communication plus rapide sont importants. Cela seul devrait être une raison suffisante.
EMI
Une vitesse plus rapide signifie qu'il peut être plus difficile de répondre aux exigences EMI.
la source
Les signaux TTL (asymétriques, non terminés) peuvent facilement gérer 20 Mbps ou plus - regardez SPI, par exemple. Si vous ne faites que quelques pouces, un câble ruban et des connecteurs IDC (ou un fond de panier quelconque) vous permettront de passer d'une carte à l'autre.
1 Gbit / s vous place dans le domaine de la gestion des traces, connecteurs et câbles à impédance contrôlée. Les récepteurs devront utiliser des techniques PLL / DLL pour maintenir la synchronisation et séparer l'horloge / les données, alors qu'à une vitesse plus lente, une logique synchrone normale sera suffisante. L'excès de 50 × et les maux de tête supplémentaires n'en valent tout simplement pas la peine, si vous êtes sûr que 20 Mbps suffiront dans un avenir prévisible.
J'ai déjà conçu (il y a environ 25 ans) un protocole de bus série personnalisé pour le contrôle carte à carte et l'état des cartes dans un rack de télécommunications. Une sorte de croisement entre I 2 C et SPI - des signaux unidirectionnels comme SPI, mais des adresses de périphériques intégrés comme I 2 C.
la source
La question évidente est: "Est-ce que 1 Gbps signifie Ethernet 1000BASET?" Si c'est ce que pense le client, votre exigence selon laquelle «nous n'avons pas de place pour des choses comme les magnétiques» les exclut immédiatement. Ethernet utilise des magnétiques sur la couche physique, et lorsque j'ai conçu une interface il y a quelques années, les magnétiques faisaient partie d'un cube d'environ 1 pouce.
Vous dites que vous utilisez des FPGA, mais vous ne dites pas à qui. Si vous optez pour Xilinx, vous devez savoir que les modèles actuels prennent en charge nativement LVDS, ce qui semble idéal pour votre objectif. Les premiers systèmes LVDS (téléviseurs haute définition) fonctionnaient à 122 Mbps, et la technologie peut aller bien au-delà d'un Gbps si vous en avez vraiment besoin. Étant différentiel, et en supposant que vos deux cartes n'utilisent pas de motifs flottants, l'immunité au bruit est excellente.
En ce qui concerne votre choix spécifique de fréquences d'horloge, ajouter plus de marge que vous pensez que vous avez besoin est l'une de ces décisions qui peuvent sauver votre bacon à l'avenir, donc je n'exclurais pas de choisir quelque chose comme 100 MHz, mais cela dépend de vous. Vous pourriez familiariser votre client avec la loi de Roberge (Jim Roberge était un professeur d'ingénierie électrique bien connu au MIT il y a quelques décennies): "Ceux qui demandent plus de bande passante que nécessaire méritent ce qu'ils obtiennent." Certes, il parlait de systèmes d'asservissement, mais le principe reste valable dans un éventail remarquablement large de disciplines.
la source
L'application que vous décrivez n'a pas de sens pour passer directement à une solution de silicium personnalisée. Les débits de données que vous prévoyez peuvent être facilement gérés par la technologie FPGA à prix modéré et le FPGA peut être programmé pour implémenter le protocole spécial si vous croyez vraiment qu'un tel protocole est nécessaire.
Plus souvent, vous devriez envisager une couche physique standard, puis créer un protocole personnalisé en plus. Pour une bande passante nette du canal de communication de 20 Mbps, vous devez prévoir une surcharge de protocole d'une certaine quantité car le cadrage, le codage de vérification des erreurs et la synchronisation consomment une partie de votre bande passante. Considérez donc peut-être une bande passante brute plus élevée pour tenir compte de cette surcharge.
Une fois que votre conception a été prouvée, vous pouvez vous adresser au fournisseur FPGA et lui demander de produire une conception de puce dure à partir de la programmation FPGA. Cette approche atténue tous les risques de développement précoce et réduit les coûts NRE globaux de manière considérable par rapport à la "plongée dans du silicium personnalisé simplement parce qu'il semble cool".
la source
La vraie question est de savoir pourquoi concevoir un protocole alors que tout existe déjà.
Pour les solutions Ethenet, vous prenez 10/100 et non 1 GbE car c'est toujours un peu moins cher et beaucoup plus facile à mettre en page. Soit dit en passant, Ethernet peut fonctionner sans magnétique. Mais cela nécessite un MAC, qui peut être un IC supplémentaire. Ou en avez-vous un dans un microcontrôleur?
20Mbps est quelque chose qui correspond à Rs485 ou à une telle couche, ce qui est encore moins cher et plus simple. Les paires torsadées sont livrées avec toutes sortes de câbles, plus ou moins flexibles, avec des connecteurs ou simplement soudés à votre PCB.
Ah, le plus important. Il est plus facile de foirer avec 1 Go. Mais s'ils ont besoin de place pour poursuivre leur croissance, cela limite moins.
Conclusion: vous devez comprendre la configuration système requise.
la source
Je suggérerais que la route la plus simple avec les meilleures chances de succès et le moins de surcharge logicielle serait d'implémenter une connexion Ethernet à 100 Mbps. Vous pouvez l'implémenter sans aucun magnétisme impliqué lorsque les distances sont petites.
Voici un début avec des informations sur le contrôleur PCI-Ethernet Intel 8255 et une note d'application sur les connexions sans le magnétisme.
Je ne suggère pas que vous utilisiez le 8255, mais vous pouvez obtenir l'IP (10/100 / 1000Mbps) pour n'importe lequel des FPGA que vous utiliserez probablement très facilement, et c'est bien débogué.
En supposant que vous ayez un processeur dans le mélange, la prise en charge d'un contrôleur Ethernet standard est un moyen très peu d'effort logiciel pour implémenter un réseau point à point.
Nous avons utilisé un tas de ce type de connexions point à point sur des cartes mères spécialisées chez Intel, elles étaient faciles à déboguer et très fiables.
la source
Les réponses ici sont techniques, je donne une perspective d'ingénierie des exigences:
Ma vision est simple
Vous avez besoin d'au moins 20 Mbps pour le faire fonctionner, alors ne spécifiez pas 20 mais "20 ou plus" pour l'application.
tout matériel plus rapide répond également à vos besoins
si le matériel plus rapide est moins cher / plus facile à développer en raison des normes existantes, alors vos exigences peuvent également être satisfaites par celles-ci.
Si le client en veut plus, essayez de déterminer s'il y a quelque chose derrière (il se peut qu'il planifie déjà des mises à niveau et souhaite rester compatible entre les cartes lors du remplacement)
la source
Puissance, intégrité du signal et synchronisation. J'ai travaillé sur une puce avec une interface à 25 gbps et cela signifiait une fréquence d'horloge de 1,6 GHz et une tonne de puissance. Si nous avions pu fonctionner à 19,2, la fréquence d'horloge aurait été de 1,2 GHz. Plus de 200 ps de marge supplémentaire par période d'horloge, cela aurait été d'une grande aide.
Je n'ai jamais fait de conception de carte, mais je m'attends à ce que 20 Mbps ne posent aucun problème. 1 Gbps n'est toujours pas si difficile, mais beaucoup plus difficile que 20 Mbps.
la source