仮想COMポート(VCP)

仮想COMポート(VCP)ペアの作成

ビデオチュートリアルがあります

ビデオチュートリアルはこの リンク から視聴できます。


SerialTool - VCP(Virtual COM Port)

このページの画像は、最新バージョンの SerialTool とは異なる場合があります。

強力なカーネルドライバの実装により、仮想COMポートのペアを作成できるだけでなく、COM Splitter、COM Sniffer、COM to Network といったすぐに使えるユーティリティも利用できます。

バージョン 2.2.0 以降、SerialTool は Windows ユーザー向けに、Virtual COM Port 機能を通して仮想COMポートのペアを素早く柔軟かつ信頼性高く作成する機能を提供しています。

この機能は(FREE 版ではいくつか制限がありますが)、組み込みアプリケーションの検証や、すでにサポートされていない古い機器・ソフトウェアと接続したい場合に最適です。

強力なカーネルドライバの実装のおかげで、仮想COMポートのペアを作成できるだけでなく、COM Splitter、COM Sniffer、COM to Network などのユーティリティも利用できます。

Windows における仮想COMポートとは?

仮想COMポート(VCP)は、従来の RS-232 シリアルポートの動作をソフトウェアでエミュレートするインターフェースです。物理的なハードウェアがなくても、アプリケーション同士や仮想デバイスとの間でシリアル通信を行うことができます。Windows では、これらのポートはOSから「本物の」COMポートとして認識されるため、シリアル接続を前提としているソフトウェアとの互換性が保たれます。

仮想COMポートは、ヌルモデム 接続をソフトウェア的に再現します。これは、1つのシリアルポート(例:COM10)の TX-RX ラインを、2つ目のシリアルポート(例:COM11)の RX-TX とクロス接続した物理ケーブルと同等です。COM10 の TX を COM11 の RX に、COM11 の TX を COM10 の RX に接続すると、一方のポートから送信されたデータはもう一方のポートで受信されます。これが「COMポートペア」と呼ばれる理由です。

仮想COMポートは、常にカーネルドライバによってOS内部に作成され、互いに仮想的に接続されたペアとして扱われます。

仮想COMポートは、アマチュア無線(HAM) の構成、GPS 信号スプリッタ、組み込みシステムのデバッグ、Arduino を用いたプロトタイピングなど、さまざまな用途で一般的に使用されています。また、決まった COM 番号やサポートされないボーレートにしか接続できない古いソフトウェアを、現代のシステム上で再利用するために使われることもあります。

仮想COMポートの利点

仮想COMポートには、次のような利点があります。

  • 開発・テスト: 開発やデバッグの段階で、デバイス間のシリアル通信をシミュレートしたい開発者に最適です。
  • レガシーデバイスとの連携: 物理シリアルポートを持たない最新のハードウェア上でも、従来のシリアルポートを前提としたソフトウェアを動作させることができます。
  • ネットワーク通信: シリアルデータを TCP/IP ネットワーク経由で送信でき、物理的な距離やポート数の制限を超えて通信を拡張できます。

仮想COMポートの管理

Virtual COM Port Manager

Virtual COM Port Manager

Virtual COM Port Manager メニューから、仮想COMポートを管理できます。

  • Add Pair: 新しい仮想COMポートのペアを追加します。
  • Remove all Pairs: すべての仮想COMポートペアを一括で削除します。
  • Disable all Pairs および Enable all Pairs: すべての仮想COMポートを無効化/有効化します。ポート自体はインストールされたままですが、一時的に利用できなくなります。

各仮想COMポートペアは、Change ボタンを使って論理信号の接続を変更して設定できます。

仮想COMポートの設定

次は、仮想COMポートの設定画面の例です。

Virtual COM Port Configuration

Virtual COM Port Configuration

設定画面からは、各COMポートの番号を初期割り当て値から変更することができます。例えば COM10 を COM21 など、OS が許可し、かつ他で使用されていない任意の番号に変更できます — 詳細は Microsoft 公式ドキュメント を参照してください。

また、仮想COMポートの信号の論理的な動作も変更できます。

デフォルト設定はクラシックな ヌルモデム 構成で、赤い信号(DTR と RTS)は出力、緑の信号(DSR、DCD、CTS、RI)は入力として定義されています。

入力信号は、1つの出力信号にのみ接続できますが、出力信号は複数の入力信号に接続することができます。
入力信号は、そのボックスをダブルクリックすることで論理反転させることもできます。名前の先頭に「!」が付くことで、対応する出力に対して論理否定されていることが示されます。

TX と RX 信号は画面上では表示されず編集もできませんが、常にペアのポート間でクロス接続されています。

以下に、各COMポート信号の概要を示します。

DTR – Data Terminal Ready

ヌルモデム構成では、DTR は DCD に接続されることが多く、キャリア(回線)の検出を擬似的に示し、「回線がアクティブである」ことを示すために使われます。

RTS/CTS – Request To Send / Clear To Send

この信号ペアは、ハードウェアフロー制御プロトコルを実装します。

  • RTS(Request To Send): DTE(端末側)がデータ送信の許可を要求するために出力します。
  • CTS(Clear To Send): DCE(モデムなど)が送信可能であることを通知するために出力します。

DCD – Data Carrier Detect

この信号は端末に対して、「相手側デバイスとの実際の接続が検出された」 ことを知らせます。
ヌルモデム構成では、DTR や他の信号に接続して擬似的にキャリア検出を行うことがよくあります。

DSR – Data Set Ready

DSR は DTR に対応する信号で、通信デバイス側が「準備完了」であることを示します。

RI – Ring Indicator

この信号は、モデムに接続された電話が鳴っていることを示します。着信があると一時的にアクティブ(通常 –15V 程度)になります。
実際のモデムでは電話回線に接続されていますが、ヌルモデム構成ではほとんどの場合使用されず、未接続のままです。

標準的なアプリケーションのテストを行う場合は、特別な理由がない限り、デフォルトの信号接続設定を変更しないことをおすすめします。変更する場合は、その影響を十分理解した上で行ってください。