USB 2.0 経由のシリアル。本当に標準シリアルより速いのでしょうか?

USB 2.0 経由のシリアル。本当に標準シリアルより速いのでしょうか?

私たちの科学コラボレーションのメンバーが、GPS と時間を同期する 4 チャンネル @ 1 kHz のデータ取得ボックスを設計しました。彼は、USB 2.0 を使用してボックスをコンピューターと通信させ、115200 ボー レートの COM シリアル インターフェイスを使用してデータを ASCII 形式でコンピューターに転送します。メーカーはこれを USB 2.0 上の「仮想シリアル」と呼んでいます。したがって、パリティ、ワークフロー制御などのすべての構成はシリアル インターフェイスでは重要ではありませんが、これを機能させるにはボー レートを 115200 に設定する必要があります。

私の質問は次のとおりです:この115200という数字は、このポートで最大転送できる1秒あたりのバイト数を表しており、USB 2.0ポートの限界を表しているのでしょうか?それとも、この数字は重要ではなく、実際の転送速度は標準USB 2.0として480 Mbits/s?

これを決定する要因は何でしょうか?

なぜ尋ねます?このボックスは現在、データの送信に単方向シリアル通信を使用しているため、次のような問題が発生します。コンピュータの過負荷により時々バイトが失われる信頼性の高い解決策は、チェックサムを使用して双方向接続を行い、パケットを要求し、データが破損したときに再度要求することです。ただし、実際に 115 kB/s に制限されている場合、1 kHz で 4 チャネルを転送することはできません。

追加情報が必要な場合はお問い合わせください。

答え1

USB 2.0 経由のシリアル。本当にシリアルより速いのでしょうか?

あなたの用語はいい加減です。
「USB 2.0 経由シリアル」USB-RS232アダプタの使用を参照するか、CDC/ACM.
前回の参照"シリアル"おそらくRS-232です。

私の質問は、この数字 115200 は、実際にこのポートを介して最大限に転送できる 1 秒あたりのバイト数を表し、USB 2.0 ポートの機能に制限を設けているのでしょうか?

115200 はボーレートで、この場合、ビット/秒です (バイト/秒ではありません)。
これは非同期チャネルなので、各文字/バイトは 1 つのスタート ビットと 1/1.5/2 のストップ ビットで個別にフレーム化されます。そのため、フレーミング オーバーヘッドは 25% になります (8N1 の一般的な構成を想定)。

USB はバスであり、複数のデータ チャネルを処理できます。
非同期 RS-232 データは、同期 USB 経由で送信するためにパケット化され、USB 2.0 の 480 Mbs の合計帯域幅を共有します (ただし、一般的な USB-RS232 アダプタは USB 1.1 のみを使用します)。

私は、4 つの 115200 ボー RS-232 チャネルが単一の USB 1.1 接続を介して同時に問題なく送信されるのを目撃しました。

それとも、この数値は実際には重要ではなく、実際の転送速度は標準 USB 2.0 の約 480 Mbits/s なのでしょうか?

この数字は、そのチャネルに設定されているボーレートであるため重要です。

これを決定する要因は何でしょうか?

最大ボーレートは通常、ハードウェアとサポートソフトウェアによって制限されます。

なぜ尋ねるのですか? 現在、ボックスはデータを配信するために単方向シリアル通信を使用しており、コンピューターが過負荷になると時々バイトが失われるという問題が発生します。

データ損失はシステム バッファ オーバーランによるものと思われます。 データは、アプリケーション プログラムによって読み取られたり処理されたりするよりも速く到着します。 オーバーランを防ぐために、データ チャネルではフロー制御は使用されていません。

関連情報