Hintergrund
Ich arbeite mit einem Kunden an einem großen Projekt, bei dem ein benutzerdefinierter Netzwerkchip entwickelt werden muss, um die Datenübertragungsanforderungen innerhalb des Projekts zu erfüllen. Das Netzwerk soll kleine Pakete über ein einziges Twisted-Pair-Kabel einige Zentimeter von einer Leiterplatte zur anderen senden. Wir werden das Netzwerkprotokoll entwerfen und spezifizieren, und ein anderes Unternehmen wird für die Siliziumimplementierung verantwortlich sein.
Ich schätze, dass eine Datenrate von 20 Mbit/s zwischen den Knoten die zu sendende Datenmenge problemlos bewältigen kann, mit viel Spielraum, falls die Datenmenge in Zukunft zunehmen sollte.
Problem
Der Client fragt mich, warum ich nur 20 Mbit/s angebe. Warum nicht so etwas wie 1 Gbps? Wäre das nicht besser? Intuitiv halte ich es für eine schlechte Idee, die Datenrate massiv über das erforderliche Maß hinaus anzukurbeln. Anfangs dachte ich, dass die Verkabelung abgeschirmt werden müsste (was ich nicht möchte), aber wenn ich mir die Ethernet-Kabelkategorien ansehe, sehe ich, dass Gigabit-Ethernet auf Cat-6-Kabeln laufen kann, die nicht abgeschirmt werden müssen.
Andere Einschränkungen
Frage
Was sind die Probleme in Bezug auf Siliziumdesign, Verkabelung und alles andere, die bei 1 Gbit / s auftreten können, die bei 20 Mbit / s nicht annähernd so schlimm wären? Soll ich dem Vorschlag meines Kunden folgen, das Netzwerk mit 1 Gbps zu implementieren, oder sollte ich darauf bestehen, nur das zu implementieren, was erforderlich ist?
Wir unterliegen einer strengen Geheimhaltungsvereinbarung, daher kann ich nicht zu viele Details zu unseren Anforderungen preisgeben. Aber hinterlassen Sie bitte einen Kommentar, wenn Klärungsbedarf besteht.
Ein paar Gründe:
Leistung
Höhere Geschwindigkeit bedeutet mehr Leistung. Sie benötigen nicht nur schnellere analoge Schaltungen, die mehr Strom verbrauchen, sondern auch Ihre gesamte Elektronik, die sie umgibt, muss schneller sein. Ihre digitalen Systeme, Ihre Latches, Taktverwaltung usw. Wenn Sie diese 1 Gbps durch die Verwendung von Multilevel-Signalisierung erreichen, brauchen Sie jetzt bessere ADCs und DACs. Möglicherweise müssen Sie sich mit komplexeren Filtern befassen. Sie könnten anfangen, FEC zu verlangen, das ebenfalls mithalten muss.
Chipgröße
Schneller bedeutet mehr los. Sie benötigen eine bessere Taktstabilität, was größere Schaltungen bedeutet. Sie benötigen ein besseres Timing, was ein komplexeres Taktwiederherstellungssystem bedeutet. Möglicherweise müssen Sie für die Kanalentzerrung auf die Verwendung von DSP umschalten. Ihre möglicherweise benötigte FEC benötigt Chipspace.
Umgebungsempfindlichkeit
Wenn Sie von einigen zehn Megabaud auf das umsteigen, was für Gigabit erforderlich ist, werden Sie viel sensibler für die Umwelt. Kleine Fehlanpassungen, die bei einigen zehn MHz möglicherweise unbemerkt bleiben, werden bei höheren Frequenzen zu resonanten Stichleitungen. Reflexionen können zu einer intermittierenden Leistung führen. Ein geknicktes Kabel aufgrund von Missbrauch im Laufe der Jahre (ich kenne die Anwendungsumgebung für Ihr Produkt nicht) kann für niedrigere Geschwindigkeiten in Ordnung sein, führt jedoch zu einer schlechten Leistung, wenn Sie höher gehen.
Gestaltungsaufwand
Ich denke, es ist aus all den zusätzlichen Problemen, die ich oben diskutiert habe, offensichtlich, dass der Zeit- und Arbeitsaufwand für das Entwerfen einer schnelleren Kommunikationsverbindung erheblich ist. Dies allein sollte Grund genug sein.
EMI
Eine höhere Geschwindigkeit bedeutet, dass es schwieriger sein könnte, die EMI-Anforderungen zu erfüllen.
TTL-Signale (Single-Ended, nicht terminiert) können problemlos 20 Mbit/s oder mehr verarbeiten – sehen Sie sich zum Beispiel SPI an. Wenn Sie nur ein paar Zentimeter gehen, bringen Sie Flachbandkabel und IDC-Anschlüsse (oder eine Art Backplane) von Platine zu Platine.
1 Gbit/s bringt Sie in den Bereich, in dem Sie sich mit impedanzgesteuerten Leiterbahnen, Steckern und Kabeln auseinandersetzen müssen. Die Empfänger müssen PLL/DLL-Techniken verwenden, um die Synchronisation aufrechtzuerhalten und Takt/Daten zu trennen, während bei der langsameren Geschwindigkeit eine normale synchrone Logik ausreicht. Der 50-fache Overkill und die zusätzlichen Kopfschmerzen sind es einfach nicht wert, wenn Sie sicher sind, dass 20 Mbit / s auf absehbare Zeit ausreichen.
Ich habe einmal (vor ungefähr 25 Jahren) ein benutzerdefiniertes serielles Busprotokoll für die Board-to-Board-Steuerung und den Status zwischen Boards in einem Telekommunikations-Rack entworfen. Eine Art Kreuzung zwischen I 2 C und SPI – unidirektionale Signale wie SPI, aber eingebettete Geräteadressen wie I 2 C.
Die offensichtliche Frage lautet: „Bedeutet 1 Gbit/s 1000BASET-Ethernet?“ Wenn der Kunde das denkt, schließt Ihre Anforderung „Wir haben keinen Platz für Dinge wie Magnete“ sofort aus. Ethernet verwendet Magnetik auf der physikalischen Schicht, und als ich vor einigen Jahren eine Schnittstelle entwarf, waren die Magnetiken Teil eines etwa 1 Zoll großen Würfels.
Sie sagen, Sie verwenden FPGAs, aber Sie sagen nicht, wessen. Wenn Sie sich für Xilinx entscheiden, sollten Sie sich darüber im Klaren sein, dass die aktuellen Modelle LVDS nativ unterstützen, was für Ihren Zweck ideal erscheint. Frühe LVDS-Systeme (HD-Fernseher) liefen mit 122 Mbit/s, und die Technologie kann weit über ein Gbit/s gehen, wenn Sie es wirklich brauchen. Da es sich um Unterschiede handelt und vorausgesetzt, dass Ihre beiden Boards keine wild schwebenden Böden verwenden, ist die Störfestigkeit ausgezeichnet.
Was Ihre spezifische Wahl der Taktfrequenzen betrifft, so ist das Hinzufügen von mehr Headroom, als Sie denken, dass Sie brauchen, eine dieser Entscheidungen, die Ihren Speck in der Zukunft retten kann, also würde ich nicht ausschließen, etwas wie 100 MHz zu wählen, aber das liegt an Ihnen. Vielleicht machen Sie Ihren Kunden mit dem Gesetz von Roberge bekannt (Jim Roberge war vor einigen Jahrzehnten ein bekannter Professor für Elektrotechnik am MIT): „Diejenigen, die mehr Bandbreite verlangen, als sie brauchen, verdienen, was sie bekommen.“ Zugegeben, er sprach von Servosystemen, aber das Prinzip bleibt über ein bemerkenswert breites Spektrum von Disziplinen hinweg gut.
Die von Ihnen beschriebene Anwendung ist nicht sinnvoll, um direkt in eine kundenspezifische Siliziumlösung einzusteigen. Die von Ihnen erwarteten Datenraten lassen sich problemlos mit preisgünstiger FPGA-Technologie handhaben, und das FPGA kann so programmiert werden, dass es das spezielle Protokoll implementiert, wenn Sie wirklich glauben, dass ein solches Protokoll benötigt wird.
Viel häufiger sollten Sie eine standardmäßige Bitübertragungsschicht in Betracht ziehen und dann das angepasste Protokoll darauf aufbauen. Bei einer Netto-Kommunikationskanalbandbreite von 20 MBit/s sollten Sie einen gewissen Protokoll-Overhead einplanen, da Framing, Fehlerprüfungscodierung und Synchronisation einen Teil Ihrer Bandbreite beanspruchen. Ziehen Sie also vielleicht eine höhere Rohbandbreite in Betracht, um diesen Overhead zu berücksichtigen.
Sobald Sie Ihr Design geprüft haben, können Sie zum FPGA-Anbieter gehen und ihn dazu bringen, ein Hardchip-Design aus der FPGA-Programmierung zu erstellen. Dieser Ansatz mindert alle frühen Entwicklungsrisiken und senkt die NRE-Gesamtkosten um einen enormen Betrag gegenüber dem „Eintauchen in kundenspezifisches Silizium, nur weil es cool erscheint“.
Die eigentliche Frage ist, warum man ein Protokoll entwirft, wenn alles bereits existiert.
Für Ethernet-Lösungen nehmen Sie 10/100 und nicht 1 GbE, weil es immer noch etwas billiger und viel einfacher zu gestalten ist. Ethernet kann übrigens auch ohne Magnetik funktionieren. Aber es erfordert MAC, was ein zusätzlicher IC sein kann. Oder haben Sie einen in einem Mikrocontroller?
20 Mbps ist etwas, das zu Rs485 oder einer solchen Schicht passt, was noch billiger und einfacher ist. Twisted-Pair-Kabel gibt es mit allen Arten von Kabeln, mehr oder weniger flexibel, mit Steckern oder einfach auf Ihre Leiterplatte gelötet.
Ach, das Wichtigste. Es ist einfacher, es mit 1 GB zu vermasseln. Aber wenn sie Platz für weiteres Wachstum brauchen, schränkt es weniger ein.
Fazit: Sie müssen Ihre Systemanforderungen verstehen.
Ich würde vorschlagen, dass die einfachste Route mit der größten Erfolgswahrscheinlichkeit und dem geringsten Software-Overhead die Implementierung einer 100-Mbit / s-Ethernet-Verbindung wäre. Bei kleinen Abständen können Sie dies ohne Magnetismus realisieren.
Hier ist ein Anfang mit Informationen zum Intel 8255 PCI-Ethernet-Controller und einem Anwendungshinweis zu Verbindungen ohne Magnetik.
Ich schlage nicht vor, dass Sie den 8255 verwenden, aber Sie können IP (10/100/1000 Mbit / s) für jedes der FPGAs erhalten, die Sie wahrscheinlich sehr einfach verwenden werden, und es ist gut debuggt.
Unter der Annahme, dass Sie einen Prozessor in der Mischung haben, ist die Unterstützung eines Standard-Ethernet-Controllers eine Methode mit sehr geringem Softwareaufwand zur Implementierung von Punkt-zu-Punkt-Netzwerken.
Wir haben eine Reihe dieser Art von Punkt-zu-Punkt-Verbindungen auf spezialisierten Motherboards bei Intel verwendet, sie waren einfach zu debuggen und sehr zuverlässig.
Die Antworten hier sind technisch, ich gebe eine Anforderungs-Engineering-Perspektive:
Meine Ansicht dazu ist einfach
Sie benötigen mindestens 20 Mbit/s, damit es funktioniert, geben Sie also nicht 20, sondern „20 oder mehr“ für die Anwendung an.
jede schnellere Hardware erfüllt auch Ihre Anforderung
wenn die schnellere HW aufgrund vorhandener Standards billiger/einfacher zu entwickeln ist, dann kann Ihre Anforderung auch von diesen erfüllt werden.
Wenn der Kunde mehr möchte, versuchen Sie herauszufinden, ob etwas dahinter steckt (es könnte sein, dass er bereits Upgrades plant und beim Austausch zwischen den Boards kompatibel bleiben möchte).
Leistung, Signalintegrität und Timing. Ich habe an einem Chip mit einer 25-Gbit/s-Schnittstelle gearbeitet, und das bedeutete eine Taktrate von 1,6 GHz und eine Menge Leistung. Wenn wir mit 19,2 hätten laufen können, wäre die Taktrate 1,2 GHz gewesen. Mehr als 200 ps zusätzliche Marge pro Taktperiode, das wäre eine große Hilfe gewesen.
Ich habe noch nie Board-Design gemacht, aber ich gehe davon aus, dass 20 Mbit / s kein Problem sind. 1 Gbps ist immer noch nicht so hart, aber viel schwieriger als 20 Mbit/s.
Ale..chenski
jsotola
Raketenmagnet
Raketenmagnet
Das Photon
Ale..chenski
Neil_DE
PlasmaHH
Raketenmagnet
Raketenmagnet
Raketenmagnet
Tustique
Raketenmagnet
David
David
Jules
Tony Stewart EE75
Tony Stewart EE75