Verfügt USB über eine Servicequalität für Daten, die zwischen meinem USB-CDC-Gerät und dem USB-Host gesendet werden?
Ich weiß, dass mit herkömmlichem RS232 in einer verrauschten Situation (z. B. einem Kfz-Diagnoseanschluss) oft genug schlechte Bits auftreten, die Prüfsummen für das Protokoll wichtig sind. Wenn ich ein solches Protokoll an eine reine USB-Anwendung anpassen würde, kann ich dann die Prüfsumme und die damit verbundenen Fehlerbehandlungsroutinen sicher weglassen?
Als Referenz verwende ich einen AT91SAM7S256 mit dem von Atmel bereitgestellten USB-CDC- Framework.
Aktualisieren:
Ich habe mein Google-Fu etwas länger auf dieses Problem trainiert und diesen Artikel gefunden, der eine CDC-Unterklasse für die Ethernet-Emulation beschreibt und besagt:
Über das USB-Kabel fließen gekapselte Ethernet-Frames ab der Ziel-MAC-Adresse bis kurz vor der Frame-Prüfsumme. (Die Frame-Prüfsumme wird nicht benötigt, da USB ein zuverlässiger Transport ist.)
Dies kann bedeuten, dass USB-CDC ein zuverlässiger Transport ist, nicht USB im Allgemeinen, da einige Geräteklassen, die für Burst-Daten mit hohem Durchsatz (Webcam?) Vorgesehen sind, möglicherweise keine Puffer füllen möchten, wenn ein Programm nicht schnell genug nach Daten suchen kann.
Ich hätte gerne noch eine zusätzliche Bestätigung dazu.
quelle
USB ist möglicherweise ein relativ zuverlässiges Protokoll, aber nicht alle Geräte und Treiber, die CDC verwenden, sind zuverlässig. Ich habe ein paar verschiedene Geräte gesehen, bei denen es ziemlich ärgerlich war, Datenbytes zu überspringen, die vom PC gesendet wurden. Das Beobachten der Daten auf einem Bereich zeigte, dass das Problem nicht darin bestand, dass das empfangende Gerät überlastet wurde - einige Datenbytes gingen einfach verloren (ich konnte das gesamte Paket auf dem Bereich erfassen; die Kopf- und Fußzeile waren beide vorhanden, aber einige der Bytes zwischen ihnen fehlten). Ich bin nicht sicher, was genau schief gelaufen ist, um dieses Verhalten zu verursachen, aber der Versuch, Daten zu schnell zu senden, schien ein beitragender Faktor zu sein.
quelle