Streaming-Technologie von NI: konstante Hochgeschwindigkeits-Datenübertragung über USB
Übersicht
Um den Einsatz des Universal Serial Bus (USB) zu optimieren und eine leistungsstarke Datenerfassung zu ermöglichen, entwickelte National Instruments die NI-Streaming-Technologie zur Datenübertragung. Diese Streaming-Technologie verbindet drei innovative Designelemente auf Hard- und Softwareebene, um kontinuierliche Datenströme mit hohen Geschwindigkeiten und in zwei Richtungen über USB zu ermöglichen. Sie unterstützt Anwender bei der Umsetzung leistungsstarker Applikationen auf USB, was bisher nur auf einem internen Bussystem wie beispielsweise PCI erreichbar war.
In diesem Whitepaper werden die Herausforderungen beschrieben, die bei der Hochgeschwindigkeits-Datenerfassung über USB auftreten. Außerdem werden Gründe aufgeführt, warum die NI-Streaming-Technologie eine wesentliche Rolle für USB-Datenerfassungsgeräte spielt.
Inhaltsverzeichnis
Einleitung
Seit Einführung des PCI-Busses 1993 sind Verbreitung und Einsatz von PC-basierten Datenerfassungstechnologien auf einem Höchststand angelangt. So wurde beispielsweise im Jahr 2006 allein von National Instruments Hardware für 6 Millionen neue Messkanäle verkauft. Zwei Milliarden Anschlüsse weltweit (usb.org) sind Beweis dafür, dass USB die Datenerfassungslandschaft radikal verändert hat, denn immer mehr Anwender erstellen jetzt ein Datenerfassungssystem auf Grundlage des externen, portablen und bedienfreundlichen USB-Busses. Wie bereits die ersten Anwender von USB-basierten Mess-, Prüf-, Steuer- und Regelprodukten feststellten, existiert bei der Leistung eine erhebliche Kluft zwischen USB- und den entsprechenden PCI-Geräten.
Diese Kluft rührt nicht daher, dass leistungsstarke Bauteile nicht auf USB-Datenerfassungsgeräten platziert werden können, sondern ist in der Natur des Universal Serial Bus begründet. USB weist geringere Übertragungsraten, größere Latenz und durch den Host initiierte Datenübertragungen auf. Aufgrund dieser Herausforderungen waren frühe USB-basierte Anwendungen auf Datenspeicherung und fundamentale Datenerfassung beschränkt und dienten als Alternative zu GPIB und seriellen Schnittstellen bei der Messgerätesteuerung.
Damit der Einsatz des Universal Serial Bus optimiert wird und leistungsstarke Datenerfassung möglich ist, entwickelte National Instruments die NI-Streaming-Technologie zur Datenübertragung. Diese Streaming-Technologie verbindet drei innovative Designelemente auf Hard- und Softwareebene, um kontinuierliche Datenströme mit hohen Geschwindigkeiten und in zwei Richtungen über USB zu ermöglichen. Sie unterstützt Anwender bei der Umsetzung leistungsstarker Applikationen auf USB, was bisher nur auf einem internen Bussystem wie beispielsweise PCI erreichbar war.
USB stellt Herausforderungen an die Datenerfassung
Die Bandbreite von Hi-Speed USB von 53 MB/s ist theoretisch für die meisten Datenerfassungsanwendungen ausreichend. Allerdings sind bestehende Hard- und Softwaredesigns für die USB-Datenerfassung nicht in der Lage, die bereitgestellte Übertragungsrate zu nutzen. Die Datenerfassung beinhaltet oft mehrere I/O-Aufgaben wie etwa Analogein- und Analogausgang, Digitalein- und Digitalausgang sowie mehrere Counter/Timer. Damit all diese Aufgaben simultan ausgeführt werden können, muss das Datenerfassungsgerät mehrere Datenströme gleichzeitig verarbeiten und in der Lage sein, Daten zügig an den PC-Speicher zu übertragen und aus ihm zu lesen. PCI und PCI Express eignen sich besonders für Datenerfassungsdesigns, da diese Busse eine hohe Bandbreite, geringe Latenz, Bus-Mastering und DMA-Kanäle (Direct Memory Access) bereitstellen, um Daten direkt in den PC-Speicher zu übertragen. USB und andere externe Busse, wie z. B. Ethernet, sind Bussen fürSteckkarten unterlegen, da ihnen gleichwertige Funktionen fehlen.
Im Gegensatz zu PCI-Designs sind USB-Datenerfassungsgeräte aufgrund des durch den Host gesteuerten seriellen Protokolls ohne DMA-Kanäle eingeschränkt. Das Betriebssystem muss jede Anfrage für eine Datenübertragung zum oder vom Gerät auslösen. Das verursacht erheblichen Overhead bei den Datenübertragungen, da Geräte die Steuerung des Busses und die Übertragung von Daten nicht mehr ohne CPU-Interaktion übernehmen können. Des Weiteren wird das Verschieben von Daten in den oder aus dem PC-Speicher durch den Computerprozessor gesteuert, wodurch es zu erheblichem Overhead bei der Kommunikation kommt.
Die NI-Streaming-Technologie geht von einem anderen Ansatz aus, um diese Herausforderungen zu bewältigen. Sie ermöglicht kontinuierliche bidirektionale Hochgeschwindigkeitsdatenströme über USB. Bevor die Streaming-Technologie näher erläutert wird, sollen noch USB-Kommunikation und ältere USB-Datenerfassungsarchitekturen betrachtet werden.
Überblick über die Kommunikation mittels USB
USB ist ein serielles Protokoll, das Daten wie beispielsweise Adressen, Anfragen und Bestätigungen in Paketen verschickt und die verfügbare Bandbreite unter allen vorhandenen Geräten aufteilt. USB-Systeme umfassen drei Bestandteile: den Host (gewöhnlich ein PC oder ein Laptop), ein USB-Gerät und ein USB-Kabel. Der USB-Host startet alle Datenübertragungen an ein USB-Gerät. Diese bestehen aus drei oder mehr Paketen für eine einfache Transaktion: Host-Anfrage, Datenübertragung und Host-Bestätigung.
Informationen werden über die Endpunkte eines USB-Geräts zum und vom Gerät geschickt. Ein Endpunkt entspricht einem Gatter, durch das alle Daten laufen müssen, um zum USB-Gerät zu gelangen. Endpunkte können Daten nur in eine Richtung übertragen. So müssen Geräte mehrere Endpunkte haben, um über Ein- und Ausgangsfunktionen zu verfügen. Daten werden unter Einsatz vier grundlegender Übertragungsarten zu oder von den Endpunkten des Geräts an den Host-Controller übertragen – eine für die USB-Bussteuerung und drei weitere für die Datenübertragung:
- Die Interrupt-gesteuerte Datenübertragung stellt Daten geringen Volumens mittels rechtzeitiger und zuverlässiger Datenübertragungen zur Verfügung. Sie wird häufig für Peripheriegeräte wie Tastatur oder Maus genutzt.
- Die isochrone Datenübertragung bietet vorab festgelegte Bandbreite mit möglichem Datenverlust. Sie wird oft eingesetzt, wenn eine rechtzeitige Datenbereitstellung wichtiger ist als Datengenauigkeit, wie etwa die kontinuierliche Übertragung von Audio- und Videodaten.
- Die Bulk-Übertragung ermöglicht große Datenübertragungen ohne Datenverlust. Sie wird häufig für Anwendungen verwendet, bei denen sehr viele Daten ohne Verlust übertragen werden müssen, so beispielsweise bei externen Festplatten.
Mithilfe von integrierten Funktionen zur Fehlersuche und Übertragung großer Datenmengen ist die Bulk-Übertragung die logische Wahl für die USB-Datenerfassung. In der Praxis können Bulk-Übertragungen allerdings eine schnellere Leistung erzielen, wenn nur ein einziger Datenstrom über den USB-Anschluss verschickt wird. Alle weiteren Datenströme können die Übertragungsraten erheblich reduzieren, insbesondere, wenn die Übertragungen bidirektional sind.
Traditioneller Ansatz
Drei technische Sachverhalte tragen dazu bei, dass USB den Anforderungen hinsichtlich Datendurchsatz und Latenz für leistungsstarke Datenerfassung nicht gerecht wird. Der erste Sachverhalt ist die ineffiziente Nutzung eines Prozessors für die Datenverwaltung. Der derzeitige Standard für die Datenverwaltung zwischen dem Front-End für die Datenerfassung und den USB-Endpunkten ist ein langsamer, kommerzieller Standardprozessor. Er sorgt dafür, dass die entsprechenden Informationen an jeden einzelnen USB-Endpunkt verteilt werden. Verglichen mit einem individuellen Design ist das eine kostengünstige Lösung mit einer relativ einfachen Implementierung.
Abb. 1: Herkömmliche USB-Datenerfassungsarchitekturen nutzen einen Prozessor mit geringer Leistung zur Anbindung des Front-Ends für die Datenerfassung an die USB-Endpunkte.
Ein weiterer Sachverhalt ist die Latenz. Latenz wird als Zeitverzögerung zwischen dem Auslösen einer Datenanfrage und dem Beginn der eigentlichen Datenübertragung definiert. USB hat eine höhere Latenz als PCI, da der Zugriff vom Betriebssystem abhängig ist und USB lediglich eine serielle Übertragung ermöglicht. Eine typische Einzelwerterfassung eine Spannung kann Dutzende Anweisungen auf Registerebene erfordern, was bei einer Multiplikation mit 1 ms Latenz inakzeptabel ist.
Schließlich gibt es noch einen Kompromiss zwischen Datendurchsatz und Latenz. Um eine schnellere Durchsatzrate zu erzielen, müssen Anwender größere Datensätze bei jeder Übertragung verschieben. Dadurch wird die Reaktionszeit des Systems verringert und die Systemlatenz erhöht. Somit kann das Gerät bei der Übertragung großer Datenmengen nicht mehr auf Ereignisse und Anfragen reagieren.
Was wirklich benötigt wird, ist eine Datenübertragungsmethode, die sowohl die Streaming-Funktionen der isochronen Datenübertragung und die 100 % fehlerfreie Stapelübertragung nutzt. Als Reaktion auf diese Anforderungen entwickelte National Instruments eine innovative, zum Patent angemeldete Streaming-Technologie über USB: die NI-Streaming-Technologie.
NI-Streaming-Technologie und USB-Datenerfassung
Schnelle Datenübertragungen
Es gibt zwei Anforderungen, um große Datenmengen schnell über USB übertragen zu können. Zum einen muss, da USB ein über den Host initiiertes Kommunikationsprotokoll ist, ein Softwaretreiber unablässig Datenanfragen in schneller Folge verschicken. Zum anderen müssen den USB-Endpunkten geräteseitig so schnell wie möglich Daten zur Verfügung gestellt werden, um die zügig eingehenden Host-Anfragen abzuarbeiten.
Auf Seiten des Host-Rechners stellt die Treibersoftware NI-DAQmx aktiv kontinuierliche Datenanfragen sicher. Diese Anfragen werden in eine Warteschlange eingereiht und können vom USB-Host verschickt werden, auch während dieser eingehende Daten vom Gerät empfängt und verarbeitet.
Auf Seiten des Geräts verhindert die NI-Streaming-Technologie ein prozessorbasiertes, schaltungsähnliches Verhalten durch Einsatz des NI Signal Streaming Controller. Dieser benutzerspezifische Controller führt gleichzeitig mehrere Aufgaben aus und weist Datenströme direkt USB-Endpunkten zu. Die NI-Streaming-Technologie nutzt den System-Timing-Controller NI-STC 2, um vier integrierte Hochgeschwindigkeits-DMA-Kanäle direkt mit vier USB-Endpunkten zu verknüpfen. Dadurch werden Ressourcen für den Prozessor frei, damit er andere Aufgaben abarbeiten kann, so beispielsweise Nachrichtenübersetzung. Integrierte DMA-Übertragungen stellen sicher, dass Daten immer zum Lesen oder Schreiben an den USB-Endpunkten bereitstehen.
Nachrichtenbasierte Anweisungen
Wie bereits angesprochen, hat USB eine höhere Latenz als PCI. Diese Verzögerung wird noch verstärkt, wenn eine Einzelwerterfassung von Spannungen die Übertragung mehrerer Dutzend Befehle auf Registerebene erfordert. Die NI-Streaming-Technologie ermöglicht eine nachrichtenbasierte Kommunikation, um langwierige Übertragungen zu vermeiden. Der Host muss nur eine einzelne High-Level-Nachricht wie etwa „acquire.commit“ über USB verschicken. Der Geräteprozessor wandelt dann die Nachricht in Dutzende Befehle auf Registerebene um, die erforderlich sind, um den System-Timing-Controller richtig einzurichten.
Geräteseitige Intelligenz für die Kommunikation
Schließlich wird durch die NI-Streaming-Technologie der Kompromiss zwischen Datendurchsatz und Latenz aufgehoben. Um einen hohen Datendurchsatz zu erzielen, werden große Datensätze kontinuierlich übertragen, wodurch eine sofortige Anfrage für einen kleineren Datensatz unmöglich erfüllt werden kann. Bei gängigen USB-Datenerfassungsgeräten wartet der USB-Host, bis große Datenübertragungen abgeschlossen sind, bevor er Daten für den Nutzer freigibt.
Leistungsstarke Datenerfassung über USB
Schnellere Datenübertragungen und nachrichtenbasierte Anweisungen tragen zu höherem Datendurchsatz bei und die zusätzliche geräteseitige Intelligenz in Verbindung mit nachrichtenbasierten Anweisungen zu geringerer Latenz. Sie ermöglichen eine Steigerung der Leistung für die Einzelwerterfassung von bis zu 1600 Prozent für Analogeingänge und bis zu 250 Prozent für Analogausgänge.

Abb. 4: Diagramm zur Leistung für die Einzelwerterfassung analoger Ein- und Ausgänge
Durch Nutzung neuer Architekturen für die USB-Datenerfassung, die NI-Streaming-
Technologie mit Hi-Speed USB verbinden, kann National Instruments USB als leistungsstarkes Bussystem für seine auf dem Markt etablierten Geräte der M-Serie und seine NI-CompactDAQ-Geräte verwenden. USB-Geräte der M-Serie bieten integrierte Signalanbindung sowie eine Leistung, die der entsprechender PCI-Geräte gleichkommt. Sie stehen als über den Bus versorgte und netzgespeiste Formate zur Verfügung.
Bei NI CompactDAQ handelt es sich um ein erweiterbares Datenerfassungssystem mit integrierter Signalkonditionierung und im laufenden Betrieb austauschbaren Modulen der C-Serie. Beide Plattformen umfassen zudem weitere branchenführende NI-Technologien, die für eine leistungsstarke und präzise Datenerfassung entwickelt wurden. Alle USB-Datenerfassungsgeräte mit NI-Streaming-Technologie beinhalten vier DMA-ähnliche Kanäle und können bis zu vier Hochgeschwindigkeitsoperationen simultan über USB übertragen.
Abb. 5: Führende USB-Datenerfassungsplattformen von NI
Zusammenfassung
USB hat sich von einem Peripheriebus mit geringer Geschwindigkeit für Zubehör wie Mäuse und Tastaturen zu einem Hochgeschwindigkeitsbus entwickelt, der datenintensive Anwendungen mühelos bewältigen kann. Dank der NI-Streaming-Technologie wird in Verbindung mit der dem USB-Protokoll eigenen Fehlererkennung, Rauschunterdrückung, Energieverwaltung und Stromverteilung ein flexibler, sicherer und zuverlässiger USB-Bus für den Einsatz in Mess-, Steuer- und Regelanwendungen bereitgestellt.
Durch die Einführung der NI-Streaming-Technologie erreichen USB-Geräte jetzt die Leistung, die Nutzer gewöhnlich von Steckkarten erwarten. Indem Leistungsanforderungen durch schnellere Datenübertragungen, verringertem Overhead bei der Kommunikation und erhöhter Geräteantwortzeit Rechnung getragen wird, ist die NI-Streaming-Technologie eine für jedes USB-Datenerfassungsgerät notwendige Technologie. Ganz gleich, ob mehrere Messarten im Megahertzbereich übertragen werden oder Sensordaten bei mehreren Hertz erfasst werden, die NI-Streaming-Technologie liefert die für USB-Datenerfassungsanwendungen erforderliche Leistung.
Nathan Yang
Product Marketing Engineer
nathan.yang@ni.com
Möchten Sie mehr über die erweiterten Funktionen von NI-USB-Produkten erfahren?
Laden Sie sich das High-Performance USB E-Kit jetzt herunter.
Links auf thematisch verwandte Seiten:
USB-Datenerfassungsprodukte von NI
AGB
Dieses Tutorium ("Tutorium") wurde von National Instruments ("NI") entwickelt. Auch wenn National Instruments dieses Tutorium technisch unterstützt, ist es jedoch möglich, dass dieses Tutorium nicht umfassend getestet und überprüft wurde. NI übernimmt weder Garantien bezüglich der Qualität des Tutoriums noch bezüglich der weiteren technischen Unterstützung neuer Versionen ähnlicher Produkte und Treiber. DIESES TUTORIUM WIRD IM "IST-ZUSTAND" ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN AUF NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).




