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

by ボクにもわかる地上デジタル

地デジトップへ戻る

このページはWindows シリアルのCOMポート割り当ての変更方法に関するメモである。USBシリアルアダプタを使用した場合にシリアルポート(COMポート)を設定する方法やポートを変更する方法について説明する。さらに、希望の番号に設定できない場合の対策方法についても説明する。

RS-232Cケーブル
RS-232Cケーブル

Windowsパソコンとの接続回路

Windowsパソコンのシリアル(RS-232C)にマイコンなどのUARTを接続する場合はMAXIM社のMAX232Aや代替品のAnalog Devices社ADM232AやADM3202ANなどのライン・ドライバー・レシーバを使用してレベル変換する必要があります。ADM3202ANは秋月電子などで売られています。
シリアル(RS-232C)ケーブルにはクロスケーブルとストレートケーブルがありますので、注意が必要です。パソコンとクロスケーブルで接続する場合は、ADM232Aの送信出力をDサブ9ピンの「オス」コネクタの3番ピン(TX)へ、受信入力を2番ピン(RX)に接続します。ストレートケーブルで接続する場合は、「メス」コネクタを使用し、ADM232Aの送信出力をDサブ9ピンの2番ピン(RX)に出力し、受信入力を3番ピン(TX)から入力します。

マイコン側RS-232C端子
マイコン
UART
マイコン側RS-232C端子(D-SUB-9)
オス端子 メス端子
TX TX (3) RX (2)
RX RX (2) TX (3)
RTS RTS (7) CTS (8)
CTS CTS (8) RTS (7)
- DTR(4)→DSR(6) DTR(4)→DSR(6)
PC接続 PCとクロス
ケーブル接続
PCとストレート
ケーブル接続

シリアル(RS-232C)がパソコンに無い場合は、USB・シリアル(RS-232C)変換ケーブルでUSBに変換して接続します。つまり、パソコンからUSB・シリアル変換して、さらに、ライン・ドライバー・レシーバを経由してXBee(ZB)モジュールに接続します。もしくは、FTDI Chip社のUSB-SerialチップFT232RL等を使えば、ライン・ドライバー・レシーバなしにマイコン等のUARTへ接続することが出来ます。

USB・シリアル(RS-232C)変換ケーブルやUSB-Serialチップを使用した場合、パソコンへ仮想シリアルドライバやINFファイルのインストールが必要になります。インストール方法はそれぞれ異なりますが、一般的にUSBに接続する前に予めインストールしておいてからデバイスを接続すると自動でインストールされます。詳しくは各製造元の説明書やホームページを参照してください。

最後に、パソコンのCOMポートの設定を行います。デバイスマネージャの「ポート(COMとLPT)」を選択してダブルクリックすると、認識しているCOMポートが表示されますので、目的のポートをダブルクリックして通信ポートのプロパティを開きます。そして、「ポートの設定」タブを選択すると、通信設定が行えます。


デバイスマネージャの「ポート(COMとLPT)」を選択


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


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

デバイスマネージャの「ポート(COMとLPT)」から、USBシリアルアダプタをダブルクリックし、「ポートの設定」タブを選択、「詳細設定」を押すと、「COMポート番号」の設定が出てくるので、ポート番号を変更する。変更後、デバイスマネージャーの表示は変わらない場合があるが問題なく変更されている。


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


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


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

希望の番号に設定できない場合

設定はCOM1〜COM256までが行えるが、希望の番号に設定できない場合もある。例えば、他のデバイスが使用中のポートは選択できない。
この場合の対処方法は希望のポートを占領している他のデバイスのCOMポート番号を変更する。まず、デバイスマネージャで、設定したいポートを使用しているデバイスを探し出す。但し、マザーボード上やパソコン内部で使用しているポートは、変更しない方が良い。
なお、デバイスマネージャには、希望のポートを使用していた他のUSBデバイスが接続されていないと表示されない。したがって、過去に使用したUSBデバイスをパソコンに接続しておく必要がある。さらに、同じデバイスであっても、異なるUSBポートに接続すると異なるCOMポート番号が割り当てられる場合がある。過去にどのUSBポートに接続したかを良く思い出して接続する必要がある。

新たに使用したいポート番号を占領していたデバイスが見つかったら、そのデバイスをダブルクリックして、「ポートの設定」の「詳細設定」から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」を編集する

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

以上の設定によって、不具合や問題が発生したり、何らかの被害を被ったとしても、当方は一切の責任を負わない。

地デジトップへ戻る


Arduino互換ボード AE-ATmegaの製作と使い方

XBeeモジュール用ピッチ変換基板