Die Peer-to-Peer (P2P)-Streaming-Technologie von NI verwendet PCI Express, um direkte Punkt-zu-Punkt-Übertragungen zwischen mehreren Geräten zu ermöglichen, ohne Daten über den Host-Prozessor oder -Speicher zu senden. Dadurch sind Geräte in einem System in der Lage, Informationen auszutauschen, ohne andere Systemressourcen zu beanspruchen. Die P2P-Technologie von NI wird bei bestimmten Modellen von PXI-Express-FlexRIO-FPGA-Modulen, FlexRIO-Koprozessormodulen, Oszilloskopen/Digitizer, Generatoren für beliebige Schwingungen, Vektorsignalgeneratoren, Vektorsignal-Transceivern, Seriellmodulen mit hohen Geschwindigkeiten sowie Geräten der R-Serie unterstützt.
In dem in Abbildung 1 dargestellten System verwendet ein PXIe-5622-Digitizer in einem PXIe-1075-Chassis Peer-to-Peer-Datenstreaming, um Daten direkt an ein PXIe-7966R FlexRIO FPGA-Modul zu senden. Das FPGA-Modul sendet dann Daten zur weiteren Verarbeitung an ein anderes FPGA-Modul. Da in der Backplane des Chassis bereits eine direkte Verbindung der einzelnen Modulsteckplätze vorliegt, ist es nicht notwendig, Daten über den Host-Controller zu übertragen oder andere Systemressourcen wie den CPU oder Host-Speicher zu verwenden.
Abbildung 1: Ein PXIe-5622-Digitizer streamt Daten an zwei PXI-Express-FlexRIO-FPGA-Module.
In RF-Anwendungen wird häufig ein Echtzeit-Frequenzbereichstrigger benötigt. Die meisten RF-Messgeräte hingegen triggern über einen frequenzunabhängigen Leistungspegel. Mit P2P-Datenstreaming und -Verarbeitung mithilfe des LabVIEW FPGA Moduls lassen sich jedoch Frequenzbereichstrigger erstellen. In der in Abbildung 2 dargestellten Anwendung nutzt der Vektorsignalanalysator PXIe-5663 P2P-Datenstreaming, um Daten an das FlexRIO-FPGA-Modul zu senden, wo sie gefenstert, in den Frequenzbereich konvertiert und anschließend mit einer Maske verglichen werden. Überschreiten die Daten die Maske, löst das FPGA-Modul einen digitalen Trigger in der PXI-Backplane aus. Sobald der PXIe-5663 den Trigger empfängt, setzt er seinen normalen Erfassungsspeicher ein, um die Daten, einschließlich der Vortrigger-Samples, aufzuzeichnen. Auf die aufgezeichneten Daten kann dann mithilfe des NI-RFSA-Treibers vom Host aus zugegriffen werden, um die Daten weiterzuverarbeiten oder zu speichern.
Abbildung 2: In dieser Anwendung fügt ein FlexRIO-FPGA-Modul dem Vektorsignalanalysator PXIe-5663 einen Frequenzbereich-Trigger hinzu.
Die Programmierung von Peer-to-Peer-Datenstreaming-Systemen wird durch den NI-P2P-Treiber bedeutend vereinfacht. In Abbildung 3 sendet FPGA 1 Daten direkt an FPGA 2. In LabVIEW FPGA stellen die einfachen P2P-Lese/Schreibknoten eine FIFO-basierte Schnittstelle für den Datenaustausch zur Verfügung. Die Knoten ähneln dabei DMA- bzw. lokalen FPGA-FIFOs. Bevor ein Datenaustausch stattfinden kann, muss der Host den Schreib-Stream von FPGA 1 mit dem Lese-Stream von FPGA 2 verbinden. Dies geschieht über die APIs der Treiber NI-RIO und NI-P2P auf dem Host (siehe Abb. 3). Je nach Konfiguration sind nur ein oder zwei VIs nötig, um die Peer-to-Peer-Streams zu verbinden und somit Daten auszutauschen.
Abbildung 3: Peer-to-Peer-Streaming zwischen zwei FlexRIO-FPGA-Modulen und der zugehörigen Software.
Mit der Peer-to-Peer-Technologie von NI sind Daten-Streaming-Raten von bis zu 7 GB/s in eine Richtung möglich. Der maximale Durchsatz ist dabei von den Streamingraten der Module, dem Chassis und dem möglicherweise eingesetzten Controller abhängig. Im Allgemeinen gibt dabei die niedrigste Streamingrate eines Teilnehmers die höchstmögliche P2P-Bandbreite vor.
Peer-to-Peer-Übertragungen haben eine sehr kurze Latenz, dies hängt jedoch von der Systemkonfiguration ab. Beim Streamen nur über FIFOs und den PCIe-Bus beträgt die Latenz typischerweise ca. 2–4 μs, obwohl aufgrund anderer Buslast gelegentlich ein Spitzenwert von zehn μs auftreten kann. Beim Streamen von einem Digitizer wird normalerweise eine Latenz von ca. 5 μs erwartet. Beim Streamen an einen Generator für beliebige Schwingungen ist aufgrund der geräteeigenen Pufferung eine Latenz von ca. 10 bis 20 μs zu erwarten.
Beim Streamen von Geräten mit integrierter Signalverarbeitung, wie z. B. dem PXIe-5622-Digitizer, können zusätzliche Filter und andere Verarbeitung die Latenz um einige Hundert μs erhöhen. Abschließend ist es wichtig, beim Bewerten der Leistung eines Systems auch die Latenz des auf dem FlexRIO-FPGA-Modul ausgeführten Benutzercodes zu berücksichtigen.
Um Daten von einem Modul auf ein anderes übertragen zu können, müssen alle Daten über die Backplane eines Chassis gesendet werden. Die PCI-Express-Schalter an der Chassis-Backplane routen die Daten durch das Chassis und stellen die Punkt-zu-Punkt-Verbindungen mit hoher Bandbreite zur Verfügung, die für das Peer-to-Peer-Datenstreaming notwendig sind. Sind dabei mehrere Module mit demselben PCI-Express-Schalter verbunden (siehe Abbildung 4), dann hängt die Bandbreite vom Schalter ab.
Abbildung 4: Die Module im Chassis leiten alle Daten über einen einzigen PCI-Express-Schalter.
Tabelle 1 enthält Angaben zu den maximalen Bandbreiten der PCI-Express-Schalter der jeweiligen Chassis. Die Bandbreite wird durch die Verbindung von zwei Steckplätzen mit demselben Schalter erreicht, wobei mehrere Verbindungen pro Schalter mit der gleichen Rate unterstützt werden. Die Architektur und die Bandbreiten der Chassis-Backplane finden Sie in den jeweiligen Spezifikationen.
Chassis | Modulplätze | Maximale Peer-to-Peer-Rate (in eine Richtung) |
---|
PXIe-1062Q | 3–5 | Abhängig vom Controller |
PXIe-1065/1066DC | 7, 8 | Abhängig vom Controller |
PXIe-1065/1066DC | 9–14 | Knapp unter 800 MB/s |
PXIe-1071 | Alles | Abhängig vom Controller |
PXIe-1073 | Alles | >200 MB/s |
PXIe-1075 | Alles | >800 MB/s |
PXIe-1078 | 2, 3, 4 | Abhängig vom Controller |
PXIe-1078 | 5–9 | >200 MB/s |
PXIe-1082Q | Alles | >800 MB/s |
PXIe-1083 | Alles | 460 MB/s |
PXIe-1084 | Alles | 500 MB/s |
PXIe-1085 | Alles | 3,6 GB/s |
PXIe-1085 3. Generation | Alles | 7,2 GB/s |
PXIe-1086 | Alles | 3,6 GB/s |
PXIe-1088 | 4, 6, 8 | Abhängig vom Controller |
PXIe-1088 | 2, 3, 5, 7, 9 | 500 MB/s |
PXIe-1090 | Alles | 895 MB/s |
PXIe-1092 | Alles | 7,2 GB/s |
PXIe-1095 | Alles | 7,2 GB/s |
Tabelle 1: P2P-Bandbreite des PXI-Express-Chassis
Sind die Module in einem P2P-Streamingsystem nicht mit dem gleichen PCI-Express-Schalter auf einer Chassis-Backplane verbunden, werden die Daten über den Onboard-Schalter oder das Chipset des Host-Controllers geleitet, jedoch nicht über den Host-CPU oder -Speicher. Abbildung 5 zeigt diese Konfiguration.
Abbildung 5: Die Module im Chassis routen alle Daten über den Host-Controller.
Tabelle 2 enthält Angaben zu den maximalen Bandbreiten des PCI-Express-Schalters bzw. -Chipsets des jeweiligen Controllers. Beachten Sie, dass die Zahlen dabei die Gesamtbandbreite über ein bestimmtes Segment in den und aus dem Controller darstellen. Wenn über dieselben Segmente mehrere Peer-to-Peer-Streams vorhanden sind, müssen sie sich die Bandbreite teilen. Darüber hinaus wirken sich auch die PCIe-Generation und die Anzahl der Lanes im Chassis auf die maximale Bandbreite aus. Bei den folgenden Werten wird davon ausgegangen, dass das Gehäuse aus derselben PCIe-Generation wie der Controller stammt oder neuer ist.
Controller | Maximale Rate zwischen Switches | Notizen |
---|---|---|
PXIe-8135 | 3,4 GB/s | |
PXIe-8133 | 1,6 GB/s | |
PXIe-8130 | >600 MB/s | Begrenzt durch Chipset |
PXIe-8106 | >800 MB/s | Vierte Verbindung wird nicht unterstützt (zum/vom am weitesten rechts gelegenen Schalter der Chassis NI PXIe-1075 und NI PXIe-1082) |
PXIe-8105 | Knapp unter 800 MB/s | Begrenzt durch Schalter |
PXIe-8101/8102/8108 | Nicht unterstützt | P2P hinter den Switch funktioniert weiterhin |
PXIe-8301 | 6,4 GB/s (3. Generation x8) 3,2 GB/s (3. Generation x4) | |
PXIe-8360/8370 | Knapp unter 800 MB/s | Begrenzt durch Schalter |
PXIe-8375 | >800 MB/s | |
PXIe-8381 | 3,2 GB/s (2. Generation x8) 1,6 GB/s (2. Generation x4) | |
PXIe-8398/8399 | 6,4 GB/s (3. Generation x8) 3,2 GB/s (3. Generation x4) | |
PXIe-8821 | 500 MB/s | |
PXIe-8840 | 2 GB/s | |
PXIe-8861 | 6,4 GB/s (3. Generation x8) 3,2 GB/s (3. Generation x4) | |
PXIe-8880/8881 | 6 GB/s (3. Generation x8) 3 GB/s (3. Generation x4) |
Tabelle 2. P2P-Bandbreite des PXI-Express-Controllers
Unterstützt die Chassis-Controller-Konfiguration eine gewisse Bandbreite, bestimmen die PXI-Express-Module letztendlich die maximal erreichbare Bandbreite. Nachfolgend sind Leistungsangaben und Konfigurationsdetails für verschiedene P2P-fähige Geräte aufgelistet.
FlexRIO-FPGA-Module PXIe-7976R, PXIe-7975R, PXIe-7972R, PXIe-7971R: Diese PXI-Express-FlexRIO-FPGA-Module können Daten mit 1,5 GB/s in das oder aus dem Modul streamen. Die Anzahl der Streams sowie der jeweiligen Bandbreiten hängt von der Konfiguration und Programmierung des FPGAs des Geräts ab. Das PXIe-7976 besitzt eine PCIe-x8-Schnittstelle der 2. Generation, sodass es bis zu 3,2 GB/s in das oder aus dem Modul streamen kann.
FlexRIO-FPGA-Module PXIe-7966R, PXIe-7965R, PXIe-7962R, PXIe-7961R: Diese FlexRIO-FPGA-Module für PXI Express sind in der Lage, Daten mit mehr als 800 MB/s vom bzw. zum Modul zu streamen. Werden Daten simultan in beide Richtungen übertragen, erreichen die FPGA-Module Raten von mehr als 700 MB/s pro Richtung bzw. eine Gesamtdatenrate von mehr als 1,4 GB/s. Diese Daten können aus einem einzelnen Stream oder bis zu 16 separaten Streams bestehen, einen für jeden DMA-Kanal des Geräts. Die Anzahl der Streams sowie der jeweiligen Bandbreiten hängt von der Konfiguration und Programmierung des FPGAs des Geräts ab.
PXIe-5622 ZF-Digitizer: Der PXIe-5622 ist ein Digitizer mit 16 Bit und 150 MS/s, der Daten mit bis zu 300 MB/s generieren kann. Der Digitizer bietet für das P2P-Streaming einen Endpunkt für eine einzelne Datenquelle, der sich auf einem Datenpfad parallel zum Onboard-Speicher befindet. Sie können die erfassten Daten auf diesen Endpunkt schreiben, um sie zu einem FPGA-Ziel zu streamen, sowie sie über den integrierten Speicher an den Host senden. Ein wichtiges Merkmal des NI PXIe-5622 ist die Onboard-Signalverarbeitung mit digitaler Abwärtswandlung für Quadratursignale (DDC), welche eine ZF-Bandbreite von bis zu 60 MHz in Form komplexer I/Q-Daten mit 75 MS/s bzw. 150 MB/s zur Verfügung stellt. In diesem Modus sind die Samples mit Samples des P2P-Streams verschachtelt, wobei das I-Sample dem Q-Sample vorgeht.
Abbildung 6. Peer-to-Peer-Streaming mit dem ZF-Digitizer PXIe-5622
Hochauflösender Digitizer NI PXIe-5122: Der PXIe-5122 ist ein Digitizer mit zwei Kanälen, 14 Bit und 100 MS/s, der Daten mit bis zu 200 MB/s pro Kanal und pro Stream erzeugen kann. Der Digitizer bietet für das P2P-Streaming zwei Schreibendpunkte, die sich auf Datenpfaden parallel zum Onboard-Speicher befinden. Sie können erfasste Daten auf diese Endpunkte schreiben und sie über den integrierten Speicher an den Host senden.
Abbildung 7: Peer-to-Peer-Streaming mit dem hochauflösenden Digitizer PXIe-5122
Beispiele für zulässige Streamingkonfigurationen sind in Tabelle 3 dargestellt:
Tabelle 3. Zulässige Streaming-Konfigurationen
Beachten Sie, dass das Modul so konfiguriert werden kann, dass es Daten mit Raten generiert, die beispielsweise die Busbandbreite von PXI Express x4 der 1. Generation überschreiten, was zu einem Datenüberlauf führen kann. Die letzte Konfiguration der Tabelle 3 führt zu 400 MB/s pro Stream, wenn die Abtastung mit der vollen Rate (insgesamt 800 MB/s) erfolgt. Werden dann noch Daten zum Host-PC gesendet, überschreitet das die Busbandbreite. Eine Maßnahme zur Verhinderung eines Datenüberlaufs ist dabei die Reduzierung der Sampling-Rate des Digitizers.
Module | Modelle | Maximale Peer-to-Peer-Rate |
---|
Generatoren für beliebige Schwingungen | ||
---|---|---|
PXIe-5450 (Rev. C und neuer) | >800 MB/s | |
PXIe-5451 | >800 MB/s | |
PXIe-5745 | 7 GB/s | |
Oszilloskope/Digitizer | ||
PXIe-5122** | 800 MB/s | |
PXIe-5160 | 800 MB/s | |
PXIe-5162 | 800 MB/s | |
PXIe-5164*** | 3,2 GB/s | |
PXIe-5170*** | 3,2 GB/s | |
PXIe-5171*** | 3,2 GB/s | |
PXIe-5172*** | 3,2 GB/s | |
PXIe-5622** | 800 MB/s | |
PXIe-5624 | 3,2 GB/s | |
PXIe-5763 | 7 GB/s | |
PXIe-5764 | 7 GB/s | |
PXIe-5774 | 7 GB/s | |
PXIe-5775 | 7 GB/s | |
RF-Signalanalysatoren | ||
PXIe-5663* | ||
PXIe-5663E* | ||
PXIe-5665* | ||
PXIe-5667 | ||
PXIe-5668R | ||
RF-Signalgeneratoren | ||
PXIe-5673* | ||
PXIe-5673E* | ||
RF-Vektorsignal-Transceiver | ||
PXIe-5644R*** | ||
PXIe-5645R*** | ||
PXIe-5646R*** | ||
PXIe-5840*** | ||
FlexRIO FPGA Module | ||
PXIe-7961R | >800 MB/s | |
PXIe-7962R | >800 MB/s | |
PXIe-7965R | >800 MB/s | |
PXIe-7966R | >800 MB/s | |
PXIe-7971R | 1,5 GB/s | |
PXIe-7972R | 1,5 GB/s | |
PXIe-7975R | 1,5 GB/s | |
PXIe-7976R | 3,2 GB/s | |
FlexRIO-Coprozessormodul | ||
PXIe-7911 | 7 GB/s | |
PXIe-7912 | 7 GB/s | |
PXIe-7915 | 7 GB/s | |
Serielle Module mit hoher Geschwindigkeit | ||
PXIe-6591R | 3,2 GB/s | |
PXIe-6592R | 3,2 GB/s | |
PXIe-7902 | 3,2 GB/s | |
Geräte der R-Serie von NI | ||
PXIe-7820R | 500 MB/s | |
PXIe-7821R | 500 MB/s | |
PXIe-7822R | 500 MB/s | |
PXIe-7846R | 500 MB/s | |
PXIe-7847R | 500 MB/s | |
PXIe-7856R | 500 MB/s | |
PXIe-7857R | 500 MB/s | |
PXIe-7858R | 500 MB/s | |
PXIe-7861 | 500 MB/s | |
PXIe-7862 | 500 MB/s | |
PXIe-7865 | 500 MB/s | |
PXIe-7866 | 500 MB/s | |
PXIe-7867 | 500 MB/s | |
PXIe-7868 | 500 MB/s | |
ZF-Transceiver | ||
PXIe-5785 | 7 GB/s |
Tabelle 4: Maximale Peer-to-Peer-Bandbreite der unterstützten PXI-Express-Module.
* Die oben genannten RF-Signalanalysatoren bestehen aus drei Komponenten: einem RF-Abwärtswandler, einem lokalen Oszillator und einem Digitizer. Der Digitizer ist die Komponente für das P2P-Streaming. Der in diesen RF-Signalanalysatoren verwendete Digitizer ist der PXIe-5622. Ebenso führt der Generator für beliebige Schwingungen das P2P-Streaming für die RF-Signalgeneratoren durch.
** Für PXIe-5122 und PXIe-5622 muss eine aktuelle Firmware-Version vorhanden sein, um Peer-to-Peer-Streaming zu ermöglichen, da dieses mit NI-SCOPE 3.6 aktiviert wurde. Folgen Sie den Schritten in der Readme zu NI-SCOPE 3.6, um zu erfahren, wie die Firmware auf Ihrem PXIe-5122- oder PXIe-5622-Gerät aktualisiert wird.
*** Softwareentwickelte Instrumente unterstützen möglicherweise kein P2P-Streaming in ihren Gerätetreibern. Diese Funktion ist jedoch über FPGA-Erweiterungen des Gerätetreibers und bei der Programmierung mit den Instrumententwurf-Bibliotheken der Geräte verfügbar. Weitere Informationen finden Sie in der gerätespezifischen Dokumentation.
Peer-to-Peer-Daten werden im rohen Binärformat übertragen, welches keine Skalierung oder Kalibrierung beinhaltet. Die Normalisierungskoeffizienten können über NI-SCOPE ermittelt und anschließend zur Kalibrierung der Binärdaten eingesetzt werden, ohne dass eine Skalierung in Volt notwendig ist. Die normalisierten Daten entsprechen dabei den nachfolgenden Kriterien, so dass die Binärdaten zu einem späteren Zeitpunkt ausgewertet oder in Volt skaliert werden können.
Hinweis: Der binäre Maximal- und Minimalwert erstreckt sich über den in NI-SCOPE programmierten vertikalen Bereich (z. B. ±11 V), auch dann, wenn der Benutzer ±10 V angegeben hat. Dadurch werden Überschwingungen erfasst, auch wenn der Bereich die Überschwingungen nicht umfassen soll.
Alternativ können die Skalierungskoeffizienten so ermittelt und angewendet werden, dass Skalierung und Kalibrierung in einem Schritt durchgeführt werden können. Weitere Informationen erhalten Sie in der Hilfe zu Hochgeschwindigkeitsdigitizern.
Die folgende Liste von NI-Hardware unterstützt P2P-Streaming:
Chassis | |
---|---|
PXIe-1062Q | |
PXIe-1065/1066DC | |
PXIe-1071 | |
PXIe-1073 | |
PXIe-1075 | |
PXIe-1078 | |
PXIe-1082 | |
PXIe-1083 | |
PXIe-1084 | |
PXIe-1085 | |
PXIe-1085 3. Generation | |
PXIe-1086 | |
PXIe-1088 | |
PXIe-1090 | |
PXIe-1092 | |
PXIe-1095 | |
Controller | |
PXIe-8105 | |
PXIe-8106 | |
PXIe-8130 | |
PXIe-8133 | |
PXIe-8135 | |
PXIe-8821 | |
PXIe-8840 | |
PXIe-8861 | |
PXIe-8880/8881 | |
Remote-Controller | |
PXIe-8301 | |
PXIe-8360 (PCIe-8361/8362) | |
PXIe-8370 (PCIe-8371/8372) | |
PXIe-PCIe-8375 | |
PXIe-PCIe 8381 | |
PXIe-PCIe 8398/8399 | |
Generatoren für beliebige Schwingungen | |
PXIe-5450 (Rev. C und neuer) | |
PXIe-5451 | |
PXIe-5745 | |
Oszilloskope/Digitizer | |
PXIe-5122** | |
PXIe-5160 | |
PXIe-5162 | |
PXIe-5164*** | |
PXIe-5170*** | |
PXIe-5171*** | |
PXIe-5172*** | |
PXIe-5622** | |
PXIe-5624R | |
PXIe-5763 | |
PXIe-5764 | |
PXIe-5774 | |
PXIe-5775 | |
RF-Signalanalysatoren | |
PXIe-5663* | |
PXIe-5663E* | |
PXIe-5665* | |
PXIe-5667 | |
PXIe-5668R | |
RF-Signalgeneratoren | |
PXIe-5673* | |
PXIe-5673E* | |
RF-Vektorsignal-Transceiver | |
PXIe-5644R*** | |
PXIe-5645R*** | |
PXIe-5646R*** | |
PXIe-5840*** | |
NI-FlexRIO-FPGA-Module | |
PXIe-7961R | |
PXIe-7962R | |
PXIe-7965R | |
PXIe-7966R | |
PXIe-7971R | |
PXIe-7972R | |
PXIe-7975R | |
PXIe-7976R | |
NI FlexRIO-Coprozessormodule | |
PXIe-7911 | |
PXIe-7912 | |
PXIe-7915 | |
Serielle Module mit hohen Geschwindigkeiten von NI | |
PXIe-6591R | |
PXIe-6592R | |
PXIe-7902 | |
Geräte der R-Serie von NI | |
PXIe-7820R | |
PXIe-7821R | |
PXIe-7822R | |
PXIe-7846R | |
PXIe-7847R | |
PXIe-7856R | |
PXIe-7857R | |
PXIe-7858R | |
PXIe-7861 | |
PXIe-7862 | |
PXIe-7865 | |
PXIe-7866 | |
PXIe-7867 | |
PXIe-7868 | |
ZF-Transceiver | |
PXIe-5785 |
Tabelle 5: Von NI P2P unterstützte Hardware
* Die oben genannten RF-Signalanalysatoren bestehen aus drei Komponenten: einem RF-Abwärtswandler, einem lokalen Oszillator und einem Digitizer. Der Digitizer ist die Komponente für das P2P-Streaming. Der in diesen RF-Signalanalysatoren verwendete Digitizer ist der PXIe-5622. Ebenso führt der Generator für beliebige Schwingungen das P2P-Streaming für die RF-Signalgeneratoren durch.
** Für PXIe-5122 und PXIe-5622 muss eine aktuelle Firmware-Version vorhanden sein, um Peer-to-Peer-Streaming zu ermöglichen, da dieses mit NI-SCOPE 3.6 aktiviert wurde. Folgen Sie den Schritten in der Readme zu NI-SCOPE 3.6, um zu erfahren, wie die Firmware auf Ihrem PXIe-5122- oder PXIe-5622-Gerät aktualisiert wird.
*** Softwareentwickelte Instrumente unterstützen möglicherweise kein P2P-Streaming in ihren Gerätetreibern. Diese Funktion ist jedoch über FPGA-Erweiterungen des Gerätetreibers und bei der Programmierung mit den Instrumententwurf-Bibliotheken der Geräte verfügbar. Weitere Informationen finden Sie in der gerätespezifischen Dokumentation.