Bild 1: Alteras SoC-Entwicklungsboard Cyclone V SX und die kleinere FP-HSMC-Karte von Terasic.

Bild 1: Alteras SoC-Entwicklungsboard Cyclone V SX und die kleinere FP-HSMC-Karte von Terasic.Flexibilis/Altera

Ein Beispiel einer HSR- und IEEE-1588-PTP-Lösung mit einem Cyclone-V-SoC zeigt Bild 1, auf dem zwei Leiterplatten zu sehen sind. Die größere ist das Entwicklungsboard Cyclone V SX von Altera; die kleinere die SFP-HSMC-Karte von Terasic. Letztere wird über den HSMC-Stecker auf dem SoC-Board angeschlossen und bietet je nach SFP-Modultyp Anschlüsse für eine Ethernet-Anbindung über Lichtwellenleiter oder Kupfer. Beide Boards sind im Handel erhältlich.

Auf einen Blick

Ein Smart Grid ist ein modernes Stromversorgungsnetz, das neue Technik zum Sammeln von Informationen, für die Kommunikation und zum Steuern des Netzes einsetzt. Ein Smart Grid erhöht die Effizienz, die Zuverlässigkeit und erlaubt die dezentrale Energieerzeugung. Damit lassen sich erneuerbare, aber variierende Energiequellen wie Solar- und Windenergie einfacher ans Netz anschließen. Zu den neuen Techniken im Smart Grid zählen HSR (High Availability Seamless Redundancy) und IEEE 1588 PTP (Precision Time Protocol), die in Umspannwerken für die interne Kommunikation und zur Zeitsynchronisation elektrischer Messungen dienen.

Das Blockdiagramm der Lösung ist in Bild 2 dargestellt. Im Zentrum befindet sich der HSR-Switch, der die HSR/Ethernet-Frames von einem Port an den nächsten weiterleitet. Hier sind vier Ports vorhanden, von denen einer mit dem ARM-Hardwareprozessor verbunden ist, damit dieser Ethernet-Frames senden und empfangen kann. Der Rest der HSR/Ethernet-Ports ist über GMII-zu-1000Base-X- und (G)MII-zu-SGMII-Adapterblöcke mit den SFP-Modulen und anderen Einrichtungen verbunden. Drei externe Ports reichen aus, um fest zugeordnete Redboxes zu implementieren. Ein zusätzlicher Port in Endknoten ist jedoch nützlich, etwa als Wartungsanschluss oder um eine Redbox-im-Endknoten-Funktion zu ermöglichen, womit sich fest zugeordnete Redboxes erübrigen.

Die Adapterblöcke verändern die native MII/GMII-Schnittstelle des HSR-Switch zu 1000Base-X oder SGMII. 1000Base-X wird beim Anschluss eines Gbit/s-LWL-Moduls an den SFP-Slot verwendet, genauso aber auch für ein kupferbasierendes SFP-Modul – dann sind langsamere Geschwindigkeiten (10 und 100 Mbit/s) aber nur im SGMII-Modus möglich. Da kupferbasierende SFP-Module als direkter Ersatz für Glasfasermodule ausgelegt sind, müssen sie getrennt angesteuert werden, um im SGMII-Modus zu arbeiten. Der Befehl zum Wechsel in den SGMII-Modus geht an den Phy-Chip auf dem Modul. Dies erfolgt über den I2C-Bus, den der universelle I/O-Block (GPIO) steuert.

Bild 2: Blockdiagramm der Lösung: im Zentrum befindet sich der HSR-Switch.

Bild 2: Blockdiagramm der Lösung: im Zentrum befindet sich der HSR-Switch.Flexibilis/Altera

Der RTC-Block verfolgt die aktuelle Taktung, die für die IEEE-1588-PTP-Funktion entscheidend ist. Der Block ist vom HSR-Switch getrennt, da dessen Implementierung je nach Umgebung erheblich abweichen kann. Verschiedene Boards weisen unterschiedliche Oszillatoren auf, die einstellbar oder fest sein können und bezüglich ihrer Genauigkeit und Frequenz voneinander abweichen. Der Takt ist für den HSR-Switch erforderlich. Je nach Umsetzung kann der Takt auch für Phy-Chips mit IEEE-1588-Funktion, Ethernet MAC(s) und für andere Blöcke bereit stehen, die eine genaue Taktung erfordern, zum Beispiel für Zeitstempel bei Messproben.

Die Avalon-Switch-Fabric verbindet die Blöcke über eine AXI-zu-Avalon-Bridge mit dem ARM-Hardwareprozessor. Die Avalon-Spezifikation eignet sich hervorragend zum Implementieren des internen FPGA-Registerzugriffs, da sie häufig verwendet wird und ein offener Standard ist. Der Prozessor überwacht und steuert die Funktion der verbundenen Blöcke über den Avalon-Registerzugriff. So lässt sich die Schnittstellen-Übertragungsrate der kupferbasierenden SFP-Module durch Polling des Phy-Chips auf dem Modul dauerhaft überwachen. Ändert sich der Modus, konfiguriert der Prozessor die Geschwindigkeit des (G)MII-zu-SGMII-Adapters und des HSR-Switch-Ports entsprechend.

HSR-Implementierung

Bild 3: Typisches High-Availability-Seamless-Redundancy-Netzwerk.

Bild 3: Typisches High-Availability-Seamless-Redundancy-Netzwerk.Flexibilis/Altera

Die gängige HSR-Topologie ist ringförmig, was zu mehr Signalsprüngen zwischen der Quelle und der Senke führt als bei herkömmlichen Ethernet-Topologien. Das macht die Latenzanforderung der Weiterleitung so kurz, dass es unmöglich ist, einen HSR-Knoten mit einem softwarebasierenden Weiterleitungsmodul zu implementieren. Da HSR eine neue und sich weiterentwickelnde Technologie ist, erfolgen alle Implementierungen über FPGA-IP-Blöcke. Rein technisch ist HSR mit Ethernet vergleichbar, und Netzwerke nutzen viele Technologien wie virtuelles LAN und Priorisierung, die herkömmlichen Ethernet-Netzwerken ähneln. Die interne Umsetzung eines HSR Switch mit Address Learning, mehreren Ausgabewarteschlangen und so weiter ähnelt somit sehr der herkömmlicher Ethernet-Switches.

HSR-Implementierungen können jedoch nicht aus reiner Hardware bestehen. Wegen der Redundanz lassen sich einzelne Fehler im Netzwerk ohne spezielle Protokolle wie das HSR-Supervision-Protokoll nicht auffinden. Das Protokoll verfolgt die anderen HSR-Knoten, die Sequenznummern ihrer Supervision-Frames und von welchen redundanten Ports ihre Frames empfangen werden. Die Informationen sind in einer speziellen Tabelle namens Nodes Table gespeichert. Über diese Informationen lassen sich dann fehlerhafte Links oder Netzwerkprobleme aufspüren. Aus praktischen Gründen lässt sich dieses komplexe Protokoll nicht in Hardware implementieren; es muss als Software vorliegen. Da also sowohl Hardware als auch Software für eine HSR-Implementierung erforderlich ist, sind SoCs die perfekte Wahl für eine Singlechip-HSR-Lösung.

IEEE-1588-PTP-Implementierung

Wie bei HSR umfasst auch die IEEE-1588-Implementierung sowohl Hardware als auch Software. Blöcke ohne Echtzeit-Anforderungen werden am besten in Software realisiert. Dazu zählen der Auswahlalgorithmus für den besten Master-Takt, der Protokollstack, die Erzeugung von Ethernet-Frames und so weiter. Zu den zeitkritischen Aufgaben gehört das Erfassen genauer Empfangs- und Sendezeiten der Frames sowie die Anpassung der Korrekturfeld-Nachrichten Sync, Delay_Req, Pdelay_Req und Pdelay_Resp. Diese Aufgaben müssen in Hardware implementiert sein, um über Ethernet eine Synchronisationsgenauigkeit im Sub-Mikrosekundenbereich zu erzielen. Reine Software-Implementierungen erreichen hier kaum den Sub-Millisekundenbereich, während hardwaregestützte Lösungen 1 ns erzielen. Obwohl erhältlich, sind IEEE-1588-Phy-Chips hier nicht erforderlich: die IEEE-1588-Transparent-Clock-Funktion im Switch und die Zeitstempel-Funktion in der Switch-zu-HPS-Ethernet-Verbindung machen IEEE-1588-Support in den Phy-ICs überflüssig. Damit lässt sich IEEE 1588 PTP zum Beispiel in kupferbasierenden SFP-Modulen ohne IEEE-1588-PTP-Support verwenden.

Wissenswertes zu HSR

HSR ist ein Protokoll, das redundantes Ethernet bereitstellt. Ähnlich wie bei RSTP wird die Redundanz über zusätzliche Verbindungen im Netzwerk hergestellt. Im Gegensatz zu RSTP sind diese während des Betriebs mit HSR nicht deaktiviert. Stattdessen nutzt ein HSR-Netzwerk jederzeit alle Verbindungen. Knoten kopieren die Frames, um alle Netzwerkpfade gleichzeitig zu nutzen. Während RSTP ausgewählte Verbindungen deaktiviert, um ein schleifenfreies Netzwerk bereitzustellen, muss HSR diese Schleifen mit einbeziehen.

Bei HSR wird ein HSR-Header zu den Ethernet-Frames hinzugefügt. Dieser enthält eine Sequenznummer, die zusammen mit der Quell-MAC-Adresse Kopien des gleichen Frames erkennt. Die Knoten im HSR-Netzwerk erkennen und speichern die Frames, die sie zuvor empfangen und weitergeleitet haben. Somit lassen sich zusätzliche Kopien der Frames aus dem Netzwerk entfernen und vermeiden, dass Frames in eine Endlosschleife gelangen und die gesamte Kapazität aufbrauchen.

Da die Netzwerkverbindungen durch das Redundanzprotokoll nicht deaktiviert werden, benötigt das Protokoll im Fehlerfall auch keine Erholungszeit. Damit eignet sich HSR für Anwendungen, die keine Kommunikationsabbrüche erlauben, etwa in den Bereichen Elektroverteilung, Avionik und Militär.

Die typische Topologie eines HSR-Netzwerks ist ringförmig oder mehrere Ringe sind miteinander verbunden. HSR ist aber nicht nur auf diese Topologien begrenzt, sondern unterstützt im Gegenteil jede Topologie. Es ist jedoch unpraktisch, sehr große HSR-Netzwerke mit Tausenden von Knoten zu unterhalten, da der gesamte Datenverkehr durch jeden Knoten des HSR-Netzwerks läuft – solange keine Einschränkung durch virtuelle LANs erfolgt. Ein typisches HSR-Netzwerk ist in Bild 3 dargestellt. Redboxes (Redundancy Boxes) verbinden Nicht-HSR-bezogene Knoten und Netzwerkteile mit dem HSR-Netzwerk; Quadboxes verbinden HSR-Ringe miteinander. Endknoten (End-nodes, auch DANH genannt) sind Kommunikationsknoten für die Einrichtungen, für die das Netzwerk aufgebaut wurde. HSR unterstützt von Natur aus auch die Anbindung an PRP-Netzwerke, und zwar über HSR-PRP-Redboxes.

Wissenswertes zu IEEE 1588 PTP

Das Precision Time Protocol (PTP) des IEEE-Standards 1588 ermöglicht eine Taktsynchronisation über Ethernet-Netzwerke. In Anwendungen, in denen das Protokoll dann kein separates Synchronisationsnetzwerk erfordert, lassen sich hohe Kosteinsparungen erzielen.

IEEE-1588-PTP-Implementierungen sind sehr unterschiedlich in ihrer Genauigkeit. Die zugrundeliegende Netzwerktechnik hat dabei großen Einfluss. DSL-Techniken sind wesentlich weniger genau als schnelles Ethernet und Gbit/s ist viel besser als schnelles Ethernet, denn mehr Kapazität bedeutet auch höhere Genauigkeit. Bezüglich der Synchronisation ist Glasfaser beziehungsweise Lichtwellenleiter ebenfalls besser als Kupfer. IEEE 1588 PTP kann eine reine Software-Implementierung sein, benötigt dann aber das gesamte Potenzial des verfügbaren Mediums. Das erfordert speziell für IEEE 1588 PTP entwickelte Hardware. Die übernimmt die Aufzeichnung genauer Empfangs- und Sendezeiten bestimmter Frames und in einigen Fällen (One-Step-Takt) auch die spontane Anpassung der Frames. Mit spezieller Hardware lässt sich sogar eine Genauigkeit im Nanosekunden-Bereich erzielen (wenn Gbit/s-Ethernet auf Glasfaser/LWL betrieben wird).

IEEE 1588 enthält einen Auswahlalgorithmus für den besten Master-Takt. Dieser legt fest, welcher Takt im Netzwerk der Master ist und welche Takte Slaves sind, also dem Master-Takt folgen. Damit laufen alle Takte im Netzwerk automatisch zur gleichen Zeit und das System ist tolerant gegen Takt- und Netzwerkausfälle. Transparente Takte kompensieren Fehler in den Netzwerkknoten und verbessern so die Synchronisationsgenauigkeit zwischen Master-Takt und Slave-Takten. Bei Ethernet sind transparente Takte in die Ethernet-Switches integriert. Dort korrigieren sie den durch Switch-Warteschlangenverzögerungen entstandenen Fehler, indem die PTP-Meldungen spontan geändert werden.

HSR kommt in den gleichen Anwendungen wie IEEE 1588 PTP zum Einsatz. Die HSR-Spezifikation definiert daher, wie IEEE 1588 PTP zusammen mit HSR verwendet wird. Eine spezielle Behandlung der IEEE-1588-Frames ist erforderlich, da ein HSR-Netzwerk zwei oder mehr funktionale Pfade zwischen den Takten aufweist, während normale Ethernet-Netzwerke nur einen Pfad besitzen. Das heißt, dass in HSR-Netzwerken keine IEEE-1588-PTP-Folgemeldungen verwendet werden können. Der Empfänger kann nicht wissen, ob die Folgemeldung den gleichen Pfad durch das Netzwerk nahm wie die entsprechende Sync-Meldung. Damit ist ein One-Step-Takt (Sync-Nachricht ohne Folgemeldung) anstelle eines Two-Step-Takts (Sync-Nachricht und Folgemeldung) zwingend erforderlich.