Warum nicht 1 Gbit/s implementieren, wenn ich nur 20 Mbit/s benötige?

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

  • Das Projekt ist stark eingeschränkt, und wir haben keinen Platz für Dinge wie Magnete, es sei denn, es handelt sich um eine sehr kleine Komponente (max. 0603).
  • Die Kabel müssen so dünn und flexibel wie möglich sein.
  • Das Gerät wird mit Plug-In-Stromversorgung betrieben, sodass keine besonderen Anforderungen an einen geringen Stromverbrauch bestehen.

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.

Wenn die Anwendung einen Durchsatz von 20 Mbit/s benötigt, dann würde wahrscheinlich ein älterer Standard mit 100 Mbit/s ausreichen, wenn man den gesamten Overhead und dergleichen berücksichtigt. Die Frage wird also nach den Implementierungskosten und der zukünftigen Teileverfügbarkeit liegen. Haben Sie entsprechende Kosten geprüft? Und was meinst du mit "in Bezug auf das Siliziumdesign"? Planen Sie, Ihr eigenes Silizium zu entwerfen?
1 Gbps kann ein Overkill sein ... 100 Mbit / s kann ein geeigneterer nächster Geschwindigkeitsschritt sein .... wenn der Kunde daran interessiert ist, das Gerät zukunftssicher zu machen, vielleicht die Verwendung von Datenkomprimierung untersuchen ... vielleicht demonstrieren dem Kunden, wie viel Datendurchsatz mit 20 Mbit/s erreicht wird ... zeigen Sie ihm ein HD-Youtube-Video und erklären Sie ihm, dass die Bandbreite nur etwa 8 Mbit/s beträgt
@AliChen - Ja, dies wird in benutzerdefiniertem Silizium implementiert, aber das wird von einem anderen Unternehmen übernommen. Wir entwerfen ein Netzwerkprotokoll von Grund auf neu, anstatt ein vorhandenes zu verwenden, da, soweit ich das beurteilen kann, keiner der vorhandenen Netzwerkstandards für das, was wir tun möchten, geeignet ist.
@jsotola - Der Kunde ist kein Dummkopf. Er weiß, dass ein Video etwa 8 Mbit/s hat, ist aber kein Elektronikexperte. Und ich denke, er stellt eine faire Frage. Wirklich, warum nicht einfach auf 1 Gbps gehen? Was ist das Problem?
Warum wollen Sie ein "Netzwerkprotokoll" für eine Punkt-zu-Punkt-Verbindung?
„Ein Netzwerkprotokoll“ von Grund auf neu zu entwerfen, scheint keine besonders kluge Idee zu sein. Das Design, die Implementierung der physikalischen Schicht, die Validierung der physikalischen Schicht, dann die Protokollschicht, die gesamte zugehörige Software und deren Validierung usw. usw. können ziemlich kostspielig sein. Haben Sie schon von HSIC gehört, einer Art USB über 1,2 VLVCMOS?
Bitte stellen Sie eine Demo mit 100 Mio. Ethernet-ICs ohne Magneten zusammen, um dem Benutzer und sich selbst zu demonstrieren, was mit handelsüblichen Standardteilen erreicht werden kann. Machen Sie kein benutzerdefiniertes Silizium, keine benutzerdefinierten Protokolle, ohne zu verstehen, warum Standardprotokolle nicht ausreichen.
Bei einigen Projekten haben wir die Multi-Gbit-Übertragung nicht wegen der Geschwindigkeit, sondern wegen der Latenz verwendet, die Pakete sind nur zeitlich viel kürzer
@ThePhoton - Es ist kein Punkt-zu-Punkt, aber der Umfang der Frage betrifft die Verbindungsgeschwindigkeit zwischen zwei Knoten.
@Neil_UK - Ich bin mit Ethernet und EtherCAT vertraut, die wir derzeit in einigen unserer Produkte verwenden. Ich würde den Wahnsinn von benutzerdefiniertem Silizium nicht vorschlagen , es sei denn, es wäre notwendig. Der Hauptgrund für kundenspezifisches Silizium sind die extremen Platzbeschränkungen, denen wir unterliegen. Kein Chip oder keine Kombination von Chips, die ich auf dem Markt finden kann, bietet alle Funktionen, die wir benötigen, auf dem Platz, den wir zur Verfügung haben. Darüber hinaus glaube ich, dass Ethernet zwei verdrillte Paare erfordert und nicht mit nur einem implementiert werden kann.
@AliChen - Ja, das ist alles wahr. Der Kunde ist jedoch sehr bereit, diesen Weg zu gehen, wenn er unsere Platzprobleme löst.
@Rocketmagnet mit "einzelnem Twisted-Pair-Kabel" meinen Sie ein einzelnes Kabel mit Twisted-Pair-Kabeln oder ein Kabel mit einem einzelnen Twisted-Pair-Kabel?
@Tustique - Ein einzelnes Paar. Der Grund dafür ist, Platz innerhalb des Designs zu sparen.
Obwohl mehrere Paare heute für Ethernet üblich sind, hatte Coax nur eine Ader und eine Rückleitung. Und es gibt Single-Pair-Twisted-Standards für solche Anwendungen.
Ich mache mir Sorgen, dass jemand denkt, dass Sie nur Pins mit dem Anschluss verbinden, wenn Sie glauben, dass Sie einfach eine schnellere Bandbreite angeben können. Wenn Sie an den Pins bereits Gigabit-Rate-Übergänge haben, haben Sie bereits Verbindungsprobleme.
@david ist richtig - Ethernet erfordert per se nicht mehrere Paare, auch nicht in den Twisted-Pair-Varianten. Es kann mehrere Paare verwenden (und wenn mehrere Paare gegeben sind, kann es sie unabhängig voneinander als Punkt-zu-Punkt-Verbindungen verwenden), kann jedoch auf einen Modus zurückgreifen, in dem ein einzelnes Paar für die Halbduplex-Kommunikation unter Verwendung von Kollisionserkennung verwendet wird.
Haben Sie die Kabellängen, Latenzvariationen und den Overhead in Ihre Frage aufgenommen? Dies ist nur ein Beispiel dafür, was in Ihrer Spezifikation fehlt, wenn Sie eine haben (Must have) Klingt wie ... Sie erfinden das Rad neu.
Ok, ein paar Zentimeter. Alles, was Sie brauchen, ist ein synchroner Kanal mit Rahmenpuffer und DMA mit Überwachungskanal für Overhead

Antworten (8)

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.

@Rocketmagnet: Erwähnenswert ist auch, dass das tatsächliche 802.3 1000Base-T Gig-E über Cat5e Signale in beide Richtungen gleichzeitig über 4 Kabelpaare sendet und eine mehrstufige Codierung verwendet, um die Frequenzen auf denselben 125 MHz zu halten als 100Base-T . Jeder Empfänger muss also subtrahieren, was sein eigener Sender sendet, um nur das vom anderen Ende gesendete Signal zu erhalten.
@PeterCordes - Das ist sehr interessant, ich werde dem nachgehen. Aber es klingt nach erheblich mehr Komplexität als einfaches LVDS.
@Rocketmagnet: Ja, GigE klingt dafür nach einer sehr schlechten Wahl. Es gibt einen Grund, warum GigE-Transceiver mehr Strom als 100 M verbrauchen.

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.

Angenommen, wir beabsichtigen bereits impedanzgesteuerte Leiterbahnen, Kabel und Stecker zu verwenden, gibt es andere Probleme?
Die Empfänger müssen PLL/DLL-Techniken verwenden, um die Synchronisation aufrechtzuerhalten und Takt/Daten zu trennen. Bei der langsameren Geschwindigkeit ist eine normale Synchronlogik ausreichend.
Was ist die höchste Geschwindigkeit, die ohne PLL erreicht werden kann, und warum? Und wirkt sich das tatsächlich auf unser Gerät aus? z. B. wird eine PLL das Silizium deutlich größer machen.
Das hängt von Details zu Ihrer Implementierungstechnologie ab, die Sie wahrscheinlich nicht preisgeben dürfen. Wenn Sie FPGAs verwenden (wie durch Ihre Verwendung des Tags impliziert), beachten Sie, dass alle großen Anbieter vorgefertigte Lösungen für die Chip-zu-Chip-Kommunikation mit unterschiedlichen Geschwindigkeiten haben. Sie sind gut beraten, dies für Ihre physische Schicht zu verwenden und Ihr benutzerdefiniertes Protokoll darüber zu implementieren.
Das Entwerfen eines PLL-Blocks ist nicht trivial, und der Kauf der IP kann Sie leicht um 50-100.000 $ bringen
@Mike klar, du und ich haben sehr unterschiedliche Definitionen von "nicht trivial" ...
@Tustique Sie denken, es ist trivial, Ihre eigene PLL auf Silizium zu entwerfen?

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.

Ethernet benötigt die Magnetik nicht, wenn Sie eine Nicht-Standard-Verbindung herstellen. Es ist ziemlich zuverlässig, wenn es ohne die Isolierung implementiert wird.
@JackCreasey aber kann man es dann noch Ethernet nennen ?
Es ist sicherlich nicht IEEE 802.3-konform. Es wird keine Verbindung zu einem konformen Endpunkt herstellen, aber ich habe gesagt, dass es ohne die Magnete nicht konform wäre. Ich bezweifle, dass es die Testsuite für Signale auf der Backplane-Verbindung bestehen würde, aber es sollte alles andere einschließlich Jitter bestehen. Ich würde es immer noch Ethernet nennen, aber Sie dürfen es nicht.
FYI: das einzige Google-Ergebnis für "Diejenigen, die mehr Bandbreite verlangen, als sie brauchen, verdienen, was sie bekommen." ist diese Antwort.

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“.

Genau diesen Weg wollen wir gehen.

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.

Obwohl Ethernet das Protokoll ausführen könnte, hat 100 Base Ethernet eine Mindestabstandsanforderung von 1 Meter (dies hat mich vor einigen Jahren bei der Verwendung einer Ethernet-über-Backplane-Implementierung gebissen). Das OP erwähnte, dass der Abstand einige Zentimeter betrug, was Ethernet auf der physikalischen Schicht eher ausschließt.
@PeterSmith, der Mindestabstand gilt NICHT für Ethernet ohne Magnetik. Dies funktioniert bis auf wenige Zentimeter.

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.