Windows 11対応
シリアルへの接続とCOMポート番号の割り当ての変更方法

by ボクにもわかる地上デジタル & ボクにもわかる電子工作 bokunimo.net

bokunimo.netへ戻る

このページについて

本ページでは、RS-232C信号とUART信号の取り扱い方法や、USB シリアルアダプタを Windows 11 などを搭載したパソコンに接続したときのシリアルポート(COMポート)の設定方法、COMポート番号の変更方法について説明します。さらに、希望の番号に設定できない場合の対策方法についても説明します。

ポートを変更する方法

希望の番号に設定できない場合の対策方法

古い Windows 3.x/95/98 パソコンとの接続方法

クロスケーブルとストレートケーブル

RS-232Cケーブル
RS-232C ケーブルの D-sub 9ピン コネクタ オス(PC側)

Windows 11 搭載パソコンへの接続

シリアル信号線をパソコンに接続するには、「USB・シリアル(RS-232C)変換ケーブル」等で、USBに変換してから接続します。
シリアル(RS-232C)が搭載されている古いパソコンについては、古い Windows 3.x/95/98 パソコンとの接続方法を参照してください。

RS-232C 信号 と UART 信号

シリアル信号には、RS-232C、UART、RS-422、RS-485など、いくつかの種類があります。ここでは RS-232Cと UARTについて説明します。
RS-232C と UART は、どちらもシリアル通信信号に含まれる通信情報は同じです。シリアル通信を非同期(クロック信号の配線が無い)で行います。
主に異なるのは以下で説明する信号電圧です。

RS-232C 規格

RS-232C は、上図のような 9ピンの D-sub 端子を使ったシリアル通信の規格です。
通信信号の電圧には、正電圧(プラス)と負電圧(マイナス)が用いられ、±5V(または、±10V、±12V、±15Vなど)の電圧でシリアル通信を行います。

RS-232Cの規格名称は、 EIA RS-232-C、EIA-232-D、TIA/EIA-232-E、TIA/EIA-232-F、ANSI/TIA-232-F-1997、TIA-232-F(2012年時点) と変化しています。また、当初の EIA RS-232-C には上図のような9ピンは定義されていませんでした。
つまり、実際には「RS-232C規格」といっても、現在は存在しませんし、かつての規格 EIA RS-232-C を示しているわけでもありません。とはいえ、現在でも、一般的に Windows や MS-DOS を搭載した PC向けのシリアル通信用の 9ピン の DピンD-Sub コネクタや、その信号を「RS-232C」と呼んでいます。

UART 信号の USB 変換

RS-232C信号には、負電圧が必要でした。一方、UART は パソコンやマイコンの基板上で使いやすいように、RS-232C信号を正電圧と0Vの信号に変換した信号です。
UARTの正電圧(プラス)には、基板上で取り扱う電圧に合わせて、5V、3.3Vなどが用いられます。
FTDI Chip 社の USB-Serial チップ FT232RL 等を使えば、UART信号をUSBに変換し、パソコンに接続することが出来ます。


FTDI Chip 社の FT232RL を搭載したUSBシリアル変換器の一例(SparkFun製)

RS-232C 信号の USB 変換

市販のUSB RS-232C 変換器で、RS-232C信号をUSBに変換し、パソコンに接続することができます。

RS-232C 信号の UART 変換

RS-232C信号を、そのままマイコンなどのUART端子に接続することは出来ません。ライン・ドライバー・レシーバを経由してUART信号に変換してから、マイコンへ接続します。

RS-232C 信号と UART 信号の違いの一例
項目 RS-232C 信号 UART 信号
信号名 TX, RX, RTS, CTS,
DTR, DSR, CD, RI,
GND
TX, RX, RTS, CTS,
GND
電圧範囲 ±5〜15V (1.8V/3.3V/5V) CMOS
論理 EIA-232
1: -3V以下(-12V)
0: +3V以上(+12V)
3.3V CMOS
0: 0.8V以下(0.0V)
1: 2.3V以上(3.3V)
規格 TIA-232-F デバイス依存
マイコンとの
接続方法
ライン・ドライバー・
レシーバ経由クロス接続
直接、クロス接続
(必要に応じて電圧変換)

仮想シリアルドライバ

仮想シリアルドライバは、USB機器でシリアル通信を行うためのソフトウェアです。
USB・シリアル(RS-232C)変換ケーブルやUSB・シリアル変換チップを使用する際に、仮想シリアルドライバやINFファイルのインストールが必要になります。インストール方法は WindowsのバージョンやUSB・シリアル変換チップによって異なります。
Windows 7や、Windows Vista、Windows 8、Windows 10、Windows 11では、デバイスをUSBへ接続するだけで仮想シリアルドライバのインストールが行えます。ただし、技術者向けの製品(中国製IC)の一部にドライバソフトの事前インストールが必要なUSB機器(USB非認証)があります。中国製であっても一般的に販売されている商品の場合は問題ありません。
Windows 98、Windows ME、Windows XPなどの場合は、先にドライバソフトをインストールしてから、デバイスをUSBへ接続します。Windows 95以前のパソコンでは容易にはUSBを使用することができません。USB端子を標準搭載している場合も、後述の古い Windows パソコンとの接続方法にて、パソコンに、直接、RS-232Cケーブルを接続してください。

COMポートの設定

ドライバのインストールが完了したら、デバイスマネージャを使ってパソコンのCOMポートの設定を行います。
Windows 11の場合、スタートメニュー(Windowsアイコン)を右クリックし、「デバイスマネージャ」を選択します。
下図のようなデバイスマネージャが表示されるので、「ポート(COMとLPT)」を選択後にダブルクリック、または下図の[+]マーク(Windows11の場合は[>]マーク)をクリックしてください。


デバイスマネージャの「ポート(COMとLPT)」を選択後、ダブルクリック

下図のように、認識しているCOMポートが表示されたら、目的のポートをダブルクリックして通信ポートのプロパティを開いてください。


USBシリアルアダプタをダブルクリック

ウィンドウのタブで「ポートの設定」を選択すると、下図のような画面になり、通信設定が行えます。


通信ポートのプロパティの「ポートの設定」タブで通信設定を行う


デバイスマネージャCOMポートを変更する

デバイスマネージャの「ポート(COMとLPT)」から、USBシリアルアダプタをダブルクリックし、「ポートの設定」タブを選択後、「詳細設定」を押すと、「COMポート番号」の設定が表示されます。ここで、ポート番号の変更が出来ます。


USBシリアルアダプタをダブルクリック


「ポートの設定」タブを選択、「詳細設定」を押す


「COMポート番号」の設定が出てくるので、ポート番号を変更する

但し、マザーボード上やパソコン内部のUART端子がデバイスマネージャ上に「通信ポート(COM1)」のように表示されている場合があります。このポートは物理的に存在するので使用しない場合も、変更しないほうが良いでしょう。

希望のCOMポート番号に設定できない場合

COMポート番号はCOM1〜COM256の範囲内で設定することが出来ますが、希望の番号に設定できない場合もあります。例えば、使用するアプリケーションがCOM1〜COM4までしか対応していない場合などで、既にCOM1〜COM4を他のデバイスで使用中の場合です。

この場合、希望のポートを占領している他のデバイスのCOMポート番号を前節の方法で変更するか、次節の方法でCOMポート番号を削除します。
あるいは、Windows 7、Windows Vista、Windows 8、Windows 10、Windows 11の場合は、同時に使用しないUSB機器に対して重複する同じCOMポート番号を設定することもできます。但し、同じCOMポート番号のUSBデバイスを誤って接続してしまうと、WindowsのOS動作に支障をきたし、OSがハングアップする場合もあるので注意してください。

COMポート番号を削除したい場合

削除したい対象の機器が手元にある場合は、そのデバイスをパソコンに接続します。デバイスマネージャで、当該デバイスのCOMポートが表示されたら、当該デバイスをダブルクリックし、タブ「ドライバー」に移り、デバイスのアンストール」を行います。

デバイスが手元にない場合は、デバイスマネージャの「表示」メニューから「非表示のデバイス」をクリックし、不要なデバイスを削除します。

COMポート番号の「使用中」を強制的に消したい場合

占領しているデバイスが見つからない場合や、Windows 95、Windows 98、Windows XPを使用している場合など、COMポート番号の「使用中」を強制的に解除するには、regeditで「HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\COM Name Arbiter」の「ComDB」を編集します。
ComDBは32バイト256ビットのコードです。1バイト目からポート1が第0ビット、ポート8が第7ビットを示しています。使用中のポートのビットは1、不使用ビットは0です。
例えば、ポート1とポート3が使用中なら「0000 0101」となり16進数で「05」になります。下図の例ではポート1〜7が使用中であることを示しています。


「ComDB」を編集する

なお、実際には他で使用していることになっているポートを使うので、それまで占領していたCOMポートのデバイスを、再度接続することは避けましょう。エラーが発生するばかりか、場合によっては、Windowsそのものに支障をきたして、OSがハングアップする場合もあります。とくに、シリアルポートはハードウェアと密接に関わっている部分なので、慎重に実施しましょう。

以上の情報によって、不具合や問題が発生したり、被害を被ったとしても、当方は一切の責任を負いません。

古い Windows パソコンとの接続方法

かつてのWindows搭載パソコン(PC/AT互換機など)には、シリアル端子(RS-232C端子)が標準装備されていました。シリアル端子付きのパソコンに、マイコンなどの UART信号ピン(TXDとRDX)を接続するには、ライン・ドライバー・レシーバを使用してレベル変換する必要があります。代表的な変換ICとして、MAXIM社のMAX232Aや代替品のAnalog Devices社ADM232A、ADM3202ANなどがあり、秋月電子通商などで売られています。

クロスケーブルとストレートケーブル

RS-232C シリアル・ケーブルには「クロスケーブル」と「ストレートケーブル」があります。パソコン側の RS-232C D-sub 9ピン端子(一般的にオス)の3番ピン(TX)送信出力を、デバイス側(マイコン+ADM232Aなど)の D-sub 9ピン端子の2番ピン(RX)受信入力に(交差させて)接続したい場合は、クロスケーブルを使用します。このとき、パソコン側の2番ピン(RX)は、デバイス側の3番ピン(TX)に接続されます。
また、パソコン側の3番ピン(TX)送信出力を、デバイス側の D-sub 9ピン端子の3番ピンの受信入力に接続したい場合は、ストレートケーブルで接続します。
一般的には、オス端子同士をメスのクロスケーブルで接続し、オス・メス端子間をオス・メスのストレートケーブルで接続することが多いですが、オス/メスの取り扱いは機器によって異なるので、説明書やデータシートで確認する必要があります。

RS-232C D-sub 9ピン端子の接続方法(一例)
PC側 RS-232C
(一般的に)オス端子
マイコン側 RS-232C (D-sub 9pin)
(一般的に)オス端子 (一般的に)メス端子
TX Out (3) RX In (2) TX In (3)
RX In (2) TX Out (3) RX Out (2)
RTS Out (7) CTS In (8) RTS In (7)
CTS In (8) RTS Out (7) CTS Out (8)
DTR Out (4) DSR In (6) DTR In (4)
DSR In (6) DTR Out (4) DSR Out (6)
PCとの接続方法   PCとクロス
ケーブル接続
PCとストレート
ケーブル接続

bokunimo.netへ戻る

地デジトップへ戻る