Seriell über USB 2.0. Ist es wirklich schneller als die Standard-Seriell-Schnittstelle?

Seriell über USB 2.0. Ist es wirklich schneller als die Standard-Seriell-Schnittstelle?

Ein Mitglied unserer wissenschaftlichen Zusammenarbeit hat eine Datenerfassungsbox mit 4 Kanälen @ 1 kHz entwickelt, die die Zeit mit GPS synchronisiert. Er verwendet USB 2.0, damit die Box mit einem Computer kommuniziert, und die serielle COM-Schnittstelle mit einer Baudrate von 115200 wird verwendet, um Daten im ASCII-Format an den Computer zu übertragen. Der Hersteller nennt dies „virtuell seriell“ über USB 2.0. Folglich spielen alle Konfigurationen wie Parität, Workflow-Steuerung usw. bei der seriellen Schnittstelle keine Rolle, sondern nur die Baudrate muss auf 115200 eingestellt werden, damit dies funktioniert.

Meine Frage ist:Stellt diese Zahl 115200 wirklich die Anzahl der Bytes pro Sekunde dar, die maximal über diesen Port übertragen werden können, und stellt sie damit eine Einschränkung der Leistungsfähigkeit des USB 2.0-Ports dar? Oder ist diese Zahl wirklich egal und die tatsächliche Übertragungsrate beträgt etwa480 Mbit/s als Standard USB 2.0?

Welche Faktoren sind hierfür ausschlaggebend?

Warum fragst du?Die Box verwendet derzeit eine unidirektionale serielle Kommunikation zur Datenübertragung, was zu Problemen führtBei Überlastung des Computers gehen manchmal Bytes verloren. Die zuverlässige Lösung wäre, die Verbindung bidirektional mit Prüfsummen zu machen und nach Paketen zu fragen und erneut zu fragen, wenn Daten beschädigt sind. Wenn wir jedoch wirklich auf 115 kB/s beschränkt sind, bedeutet dies, dass wir keine 4 Kanäle mit 1 kHz übertragen können.

Wenn Sie weitere Informationen benötigen, fragen Sie bitte nach.

Antwort1

Seriell über USB 2.0. Ist es wirklich schneller als seriell?

Ihre Terminologie ist schlampig.
„Seriell über USB 2.0“könnte sich auf die Verwendung von USB-zu-RS232-Adaptern beziehen, oder aufCDC/ACM
Ihr letzter Verweis auf"Seriell"handelt es sich vermutlich um RS-232.

Meine Frage lautet: Stellt die Zahl 115200 tatsächlich die Anzahl an Bytes pro Sekunde dar, die maximal über diesen Port übertragen werden können, und stellt sie somit eine Einschränkung der Leistungsfähigkeit des USB 2.0-Ports dar?

115200 ist die Baudrate, die (in diesem Fall) Bits pro Sekunde (und nicht Bytes pro Sekunde) ist.
Da es sich um einen asynchronen Kanal handelt, wird jedes Zeichen/Byte einzeln mit einem Startbit und 1/1,5/2 Stoppbits gerahmt. Es gibt also einen Framing-Overhead von 25 % (bei der typischen Konfiguration von 8N1).

USB ist ein Bus und kann mehr als einen Datenkanal verarbeiten.
Die asynchronen RS-232-Daten werden für die Übertragung über synchrones USB paketiert und teilen sich die gesamte Bandbreite von 480 Mbit/s von USB 2.0. (Der typische USB-zu-RS232-Adapter verwendet jedoch nur USB 1.1.)

Ich habe erlebt, dass die Übertragung von vier gleichzeitigen RS-232-Kanälen mit 115.200 Baud über eine einzige USB-1.1-Verbindung ohne Probleme lief.

Oder ist diese Zahl wirklich egal und die tatsächliche Übertragungsrate liegt beim Standard-USB 2.0 bei ca. 480 Mbit/s?

Die Zahl ist wichtig, da es sich um die für diesen Kanal konfigurierte Baudrate handelt.

Welche Faktoren sind hierfür ausschlaggebend?

Die maximale Baudrate wird normalerweise durch die Hardware und die unterstützende Software begrenzt.

Warum fragen Sie? Die Box verwendet derzeit eine unidirektionale serielle Kommunikation zur Datenübertragung, was bei einer Überlastung des Computers manchmal zu Byteverlusten führen kann.

Ihr Datenverlust scheint auf einen Überlauf des Systempuffers zurückzuführen zu sein. Die Daten kommen schneller an, als sie vom Anwendungsprogramm gelesen/verarbeitet werden. Um den Überlauf zu verhindern, wird auf dem Datenkanal keine Flusskontrolle eingesetzt.

verwandte Informationen