Hintergrund
Ich arbeite mit einem Kunden an einem großen Projekt, für das ein kundenspezifischer Netzwerkchip entwickelt werden muss, um die Datenübertragungsanforderungen innerhalb des Projekts zu lösen. Das Netzwerk soll kleine Pakete über ein einzelnes Twisted-Pair-Kabel einige Zoll 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 problemlos mit der zu sendenden Datenmenge zurechtkommt, mit viel Headroom, falls die Datenmenge in Zukunft zunimmt.
Problem
Der Client fragt mich, warum ich nur 20 Mbit / s spezifiziere. Warum nicht so etwas wie 1 Gbit / s? Wäre das nicht besser? Intuitiv halte ich es für eine schlechte Idee, die Datenrate massiv über das Nötigste anzuheben. Ursprünglich dachte ich, dass die Verkabelung abgeschirmt sein müsste (was ich nicht will), aber wenn ich mir die Kategorien der Ethernet-Kabel anschaue, sehe ich, dass Gigabit-Ethernet mit Cat 6-Kabeln betrieben werden kann, die nicht abgeschirmt sein müssen.
Andere Einschränkungen
- Das Projekt ist extrem räumlich begrenzt, und wir haben keinen Platz für Dinge wie Magnetics, es sei denn, es handelt sich um eine sehr kleine Komponente (max. 0603).
- Die Kabel müssen so schlank und flexibel wie möglich sein.
- Das Gerät wird über eine Steckdose betrieben, sodass kein besonderer Stromverbrauch besteht.
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? Sollte ich dem Vorschlag meines Kunden folgen, das Netzwerk mit 1 Gbit / s zu implementieren, oder sollte ich darauf bestehen, nur das zu implementieren, was erforderlich ist?
Wir sind unter strenger NDA, daher kann ich nicht zu viele Details über unsere Anforderungen geben. Bitte hinterlassen Sie jedoch einen Kommentar, wenn eine Klärung erforderlich ist.
quelle
Antworten:
Ein paar Gründe:
Leistung
Schnellere Geschwindigkeit bedeutet mehr Leistung. Sie brauchen nicht nur schnellere analoge Schaltkreise, die mehr Strom verbrauchen, sondern Ihre gesamte Elektronik, die sie umgibt, muss auch schneller sein. Ihre digitalen Systeme, Ihre Latches, Ihre Taktverwaltung usw. Wenn Sie diese 1 Gbit / s durch die Verwendung von Multilevel-Signalen erzielen, benötigen Sie jetzt bessere ADCs und DACs. Möglicherweise müssen Sie sich mit komplexeren Filtern befassen. Sie könnten anfangen, FEC zu benötigen, die auch Schritt halten muss.
Chipgröße
Schneller bedeutet mehr los. Sie benötigen eine bessere Taktstabilität, was größere Schaltkreise bedeutet. Sie benötigen ein besseres Timing, was ein komplexeres Taktwiederherstellungssystem bedeutet. Möglicherweise müssen Sie zur Verwendung von DSP wechseln, um die Kanalentzerrung durchzuführen. Ihre potenziell benötigte FEC benötigt Speicherplatz.
Umgebungsempfindlichkeit
Wenn Sie von einigen zehn Megabaud auf das umstellen, was für Gigabit erforderlich ist, werden Sie wesentlich empfindlicher für die Umwelt. Kleine Fehlpaarungen, die bei einigen zehn MHz möglicherweise nicht bemerkt werden, werden bei höheren Frequenzen zu Resonanzstummeln. Reflexionen können zu zeitweiligen Störungen führen. Ein gekerbtes Kabel, das im Laufe der Jahre aufgrund von Missbrauch beschädigt wurde (ich kenne die Anwendungsumgebung für Ihr Produkt nicht), ist möglicherweise in Ordnung für niedrigere Geschwindigkeiten, führt jedoch zu einer schlechten Leistung, wenn Sie höher gehen.
Designaufwand
Ich denke, aus all den zusätzlichen Themen, die ich oben besprochen habe, ist ersichtlich, dass der Zeit- und Arbeitsaufwand für das Entwerfen einer schnelleren Kommunikationsverbindung erheblich ist. Das allein sollte Grund genug sein.
EMI
Schneller bedeutet, dass die Erfüllung der EMI-Anforderungen schwieriger sein könnte.
quelle
TTL-Signale (Single-Ended, Unminated) können problemlos 20 Mbit / s oder mehr verarbeiten - siehe beispielsweise SPI. Wenn Sie nur ein paar Zentimeter weit fahren, werden Sie mit Flachbandkabel und IDC-Steckern (oder einer Art Rückwandplatine) von Board zu Board geführt.
Mit 1 Gbit / s müssen Sie sich mit impedanzgesteuerten Leiterbahnen, Steckverbindern und Kabeln auseinandersetzen. Die Empfänger müssen PLL / DLL-Techniken verwenden, um die Synchronisation aufrechtzuerhalten und Takt / Daten zu trennen, wohingegen bei der langsameren Geschwindigkeit 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 werden.
Ich habe vor etwa 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.
quelle
Die naheliegende Frage lautet: "Bedeutet 1 Gbit / s 1000BASET Ethernet?" Wenn der Kunde das denkt, schließt Ihre Forderung "Wir haben keinen Platz für Dinge wie Magnete" dies sofort aus. Ethernet verwendet Magnetics auf der physischen Ebene, und als ich vor einigen Jahren eine Schnittstelle entwarf, waren die Magnetics Teil eines Würfels von ungefähr 1 Zoll.
Sie sagen, Sie verwenden FPGAs, aber Sie sagen nicht, wessen. Wenn Sie mit Xilinx arbeiten, sollten Sie sich darüber im Klaren sein, dass die aktuellen Modelle LVDS nativ unterstützen, was für Ihren Zweck ideal zu sein scheint. Frühe LVDS-Systeme (Hi-Def-Fernseher) liefen mit 122 Mbit / s, und die Technologie kann bei Bedarf deutlich über Gbit / s hinausgehen. Da die beiden Boards unterschiedlich sind und keine wild schwebenden Böden verwenden, ist die Störfestigkeit hervorragend.
Was Ihre spezifische Wahl der Taktfrequenzen betrifft, so ist das Hinzufügen von mehr Headroom, als Sie für nötig halten, eine dieser Entscheidungen, die Ihren Speck in Zukunft retten können. Ich würde also nicht ausschließen, etwas wie 100 MHz auszuwählen, aber das liegt bei Ihnen. Sie könnten Ihren Kunden mit Roberges Gesetz vertraut machen (Jim Roberge war vor einigen Jahrzehnten ein bekannter Professor für Elektrotechnik am MIT): "Wer mehr Bandbreite verlangt, als er braucht, verdient, was er bekommt." Zugegeben, er sprach von Servosystemen, aber das Prinzip bleibt in einem bemerkenswert breiten Spektrum von Disziplinen gut.
quelle
Die von Ihnen beschriebene Anwendung ist nicht sinnvoll, um direkt in eine benutzerdefinierte Siliziumlösung zu springen. Die von Ihnen erwarteten Datenraten können mit der preisgünstigen FPGA-Technologie problemlos verarbeitet werden, und das FPGA kann so programmiert werden, dass es das spezielle Protokoll implementiert, wenn Sie wirklich der Meinung sind, dass ein solches Protokoll erforderlich ist.
Viel häufiger sollten Sie eine physikalische Standardschicht in Betracht ziehen und dann das angepasste Protokoll darauf aufbauen. Bei einer Netto-Kommunikationskanalbandbreite von 20 Mbit / s sollten Sie einen Protokoll-Overhead von einem gewissen Betrag einplanen, da die Framebildung, die Fehlerüberprüfung, die Codierung und die Synchronisierung einen Teil Ihrer Bandbreite aufbrauchen. Ziehen Sie daher möglicherweise eine höhere unformatierte Bandbreite in Betracht, um diesen Mehraufwand auszugleichen.
Sobald Sie Ihr Design unter Beweis gestellt haben, können Sie sich an den FPGA-Anbieter wenden und ihn bitten, ein Hard-Chip-Design aus der FPGA-Programmierung zu erstellen. Dieser Ansatz verringert das Risiko einer frühen Entwicklung und senkt die NRE-Gesamtkosten um einen enormen Betrag im Vergleich zum "Eintauchen in benutzerdefiniertes Silizium, nur weil es cool zu sein scheint".
quelle
Die eigentliche Frage ist, warum ein Protokoll entworfen werden soll, wenn bereits alles vorhanden ist.
Für Ethenet-Lösungen nehmen Sie 10/100 und nicht 1GbE, da es immer noch etwas billiger und viel einfacher zu planen ist. Ethernet kann übrigens auch ohne Magnetics arbeiten. Dafür ist jedoch ein MAC erforderlich, der ein zusätzlicher IC sein kann. Oder hast du einen in einem Mikrocontroller?
20 Mbit / s passt zu Rs485 oder einer solchen Schicht, die sogar noch billiger und einfacher ist. Twisted Pair-Kabel werden mit mehr oder weniger flexiblen Kabeln geliefert, die über Steckverbinder verfügen oder einfach auf Ihre Leiterplatte gelötet werden.
Ah, am wichtigsten. Es ist einfacher, mit 1 GB Mist zu bauen. Wenn sie aber Raum für weiteres Wachstum brauchen, schränkt dies weniger ein.
Fazit: Sie müssen Ihre Systemanforderungen verstehen.
quelle
Ich würde vorschlagen, dass die einfachste Route mit der besten Erfolgswahrscheinlichkeit und dem geringsten Software-Overhead die Implementierung einer 100-Mbit / s-Ethernet-Verbindung ist. Dies können Sie bei kleinen Abständen ohne Magnetisierung realisieren.
Hier erhalten Sie zunächst Informationen zum Intel 8255 PCI-Ethernet-Controller und einen Anwendungshinweis zu Verbindungen ohne Magnetics.
Ich schlage nicht vor, dass Sie den 8255 verwenden, aber Sie können IP (10/100 / 1000Mbps) für jeden der FPGAs erhalten, die Sie wahrscheinlich sehr einfach verwenden, und es ist gut debuggt.
Vorausgesetzt, Sie haben einen Prozessor im Mix, ist die Unterstützung eines Standard-Ethernet-Controllers eine sehr kostengünstige Methode zur Implementierung von Punkt-zu-Punkt-Netzwerken.
Wir haben eine Menge solcher Punkt-zu-Punkt-Verbindungen auf speziellen Motherboards von Intel verwendet. Sie waren einfach zu debuggen und sehr zuverlässig.
quelle
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 Anforderungen
Wenn die schnellere Hardware aufgrund bestehender Standards günstiger / einfacher zu entwickeln ist, kann Ihre Anforderung auch von diesen erfüllt werden.
Wenn der Kunde mehr möchte, versuchen Sie herauszufinden, ob etwas dahintersteckt (es kann sein, dass er bereits Upgrades plant und beim Tauschen zwischen den Boards kompatibel bleiben möchte).
quelle
Leistung, Signalintegrität und Timing. Ich habe an einem Chip mit einer 25-Gbit / s-Schnittstelle gearbeitet, was eine Taktrate von 1,6 GHz und eine Tonne Leistung bedeutet. 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 Boarddesign gemacht, aber ich gehe davon aus, dass 20 Mbit / s kein Problem sind. 1 Gbit / s ist immer noch nicht so schwierig, aber viel schwieriger als 20 Mbit / s.
quelle