web-dev-qa-db-ja.com

「COM」、「USB」、「シリアルポート」の違いは何ですか?

これら3つの概念について混乱しています。

私の理解では、Serial Portは通常RS-232互換ポート(RS = Recommended Standard)を意味します。 USBUniversal Serial Busを表します。その名前にはシリアルポートが含まれていますが、RS-232をサポートしていますか? Universalはどういう意味ですか?

そして、COMポートとはどういう意味ですか?

ADD 1

ハンスの答えからの理解:

労力を削減するために、デバイスメーカーは通常、デバイスをシリアルポートデバイスのように動作させることもできます。これは、多くのOSおよび言語ライブラリがすでにシリアルポート通信サポートを含んでいるという事実に依存しています。このようなサポートは、実際に一致するデバイスドライバーに匹敵するものではありませんが。

追加2

シリアルポートHOW-TO に関する優れたリファレンスドキュメント。

ところで、 Linux Document Project は非常に便利です。

23
smwikipedia

Serial portは、UARTチップ、ユニバーサル非同期レシーバートランスミッターを使用するデバイスのタイプです。昔のコンピューターをインターフェースする2つの基本的な方法の1つで、パラレルポートは他の方法でした。シリアルは接続が簡単で、多くのワイヤを必要としません。通常、シリアルの8倍の速度で高速にしたい場合はパラレルが便利でしたが、ケーブルとコネクタは高価でした。設計は、バストランシーバーの途方もない進歩に追いつきました。これは、電気信号をワイヤに送信できる種類のチップです。

COMはMS-Dosに由来し、デバイス名です。 「通信ポート」の略。 1980年代のコンピューターには、通常、マシンの背面にCOM1とCOM2というラベルの付いた2つのシリアルポートがありました。この名前はWindowsに引き継がれ、シリアルポートをシミュレートするほとんどのドライバーは、名前に「COM」を含むデバイスを作成します。 LPTはパラレルポートのデバイス名で、「Line PrinTer」の略です。

RS-232は、シリアルポートの電気信号規格です。これは、デバイスへの要求が非常に低く、ポイントツーポイント接続のみをサポートする最も単純なものです。 RS-422とRS-485は珍しくなく、各信号にツイストペアを使用し、ノイズ耐性を大幅に高め、複数のデバイスを相互に接続できました。

USBはユニバーサルシリアルバスを意味します。マイクロプロセッサを数ミリメートルのサイズで数ダイムのコストのデバイスに統合する能力が強化されています。 1990年代後半にレガシーデバイスを置き換えました。コーヒーポットウォーマーからディスクドライブ、wifiアダプター、オーディオ再生まで、さまざまな種類のデバイスをサポートできるため、ユニバーサルです。シリアルであり、必要なのは4本のワイヤのみです。そしてそれはバスであり、USBデバイスを任意のポートに差し込むことができます。非常によく似たアプローチであり、Appleに支持されているFireWireと競合しましたが、地滑りで勝ちました。

最近のWindowsでは、シリアルポートが依然として関連している唯一の理由は、USBデバイスにはカスタムデバイスドライバーが必要だからです。デバイスの製造元はnotドライバーの作成とサポートのように、ドライバーのショートカットを使用してレガシーシリアルポートデバイスをエミュレートすることがよくあります。そのため、プログラマは、オペレーティングシステムに組み込まれたシリアルポートのレガシーサポートと、あらゆる言語ランタイムライブラリを使用できます。ところで、これらのエミュレーターは、不完全なサポートではなく、プラグアンドプレイをうまくサポートしません。開く特定のシリアルポートを見つけることは非常に困難です。また、これらのドライバーは、プログラムでUSBデバイスを使用しているときに、USBデバイスをぐいと動かすと、方法を診断することが不可能な場合があります。

35
Hans Passant

ユニバーサルシリアルBusのUSBスタンドPort 「シリアルポート」という用語は、単一の信号パスを介してデータが一度に1ビット転送されることを意味します。その意味で、イーサネットでもserial自然。両方の用語でWordserialは、データパスの幅以外の関係がないことを意味します。

あなたは、PCの文脈での用語serial-portは通常RS-232ポートを意味するという点で正しいですが、そのような他のシリアルポート規格があります産業用アプリケーションでよく使用されるRS-422およびRS-485として。これらの共通点は、UART( niversal Asynchronous Receiver/Transmitter )を使用して実装されていることです。

USBのUniversalという用語は、古いハードウェアにある専用のマウスポートやキーボードポートなどの特定のデバイスインターフェイスではないという事実を単に反映したものです。同様に、UARTベースのシリアルポートはデバイス固有ではなく、UARTのUに反映されます。

USBは多くの点でRS-232と大きく異なります。ピアツーピアではなく、マスター/スレーブ(またはUSB用語ではホスト/デバイス)であるため、USBデバイスは通信を開始できないため、ホストによってポーリングされる必要があります。 USBには低電圧電源が含まれており、中程度の電力要件を持つデバイスにバスから電力を供給できます。これが、USBポートを使用してバッテリー駆動デバイスを充電できる理由でもあります。 USBは完全なソフトウェアプロトコルスタックを必要とするのに対し、USBは物理(ハードウェア)層のみを定義するRS-232よりもはるかに複雑です。

COMという用語は、Windows(および以前はMS-DOS)でシリアル(UART)ポートに使用されていたデバイス名のプレフィックスです。 「通信」の略で、たとえばFILE* port = fopen( "COM1", "wr" ) ;を使用してCOMポートをストリームI/Oデバイスとして開くことができます。

8
Clifford