PCのCOMポートをRS485に接続する

PCのCOMポートをRS485に接続するには、レベル変換のほかに半二重通信のための制御が必要になります。具体的にはRS485変換ICのDE/~REピンに制御信号を入力しないといけません。これにはいくつかの方法があります。

(1) FTDIのICのTXDENを接続する

  • メリット: 専用ハードウェアで確実に制御される。
  • デメリット: FTDIのICに限定される。

産業用PCを除けば、最近ではPCに物理COMポート(RS232Cポート)が搭載されることはほぼなくなりました。PCでCOMポートを使う場合はUSBシリアル変換ICを用いた仮想COMポートが一般的です。FTDIはそのUSBシリアル変換ICの代表的なメーカーです。

FTDIのUSBシリアル変換ICは、RS485の半二重通信を制御するためにTXDEN(データ送信イネーブル)というピン機能を備えています。例えばFT232RLの場合、CBUS2ピンにデフォルトでTXDENの機能が割り当てられています。

採用例として、下図はDSD TECH社製のSH-U11というUSB/RS485変換器の回路の概略図です。
(実物を分解して調べました。)

f:id:licheng:20210602190841j:plain

(2) TxDのNOTを接続する

  • メリット: 安価なUSBシリアル変換ICが使える。
  • デメリット: ノイズに弱い。ボーレートを高くできない。

あまり筋の良い方法とは言えませんが、TxDを論理反転させてDE/~REに接続するという方法が一部の安価なUSB/RS485変換器で用いられています。

この方法では出力はプッシュプルではなく、TxDがHighのときはプルアップ/プルダウン抵抗まかせになります。そのためノイズに弱くなり、ボーレートもあまり高くできなくなります。これではRS485の利点を失います。

採用例として、下図はDSD TECH社製のSH-U10というUSB/RS485変換器の回路の概略図です。
(実物を分解して調べました。)

f:id:licheng:20210602190910j:plain

(3) RTSのNOTを接続する

  • メリット: 物理COMポートでは確実に制御される。
  • デメリット: FTDIのICではうまくいかない。ソフトウェア作成の難易度が高い。

RTSとは本来はRequest To Send (送信要求) の信号です。これを (負論理なので反転させて) DE/~REに接続すれば良いはずです。しかし実際にはRTSを「送信要求」信号として使うことはまれで、ハードウェアフロー制御のための「送信許可」信号として使うほうが一般的です。

WindowsのWin32APIは両方のモードをサポートしていますが、 .NETのSerialPortクラスは「送信要求」モードをサポートしていません。そのため、ソフトウェア作成の難易度が少し高くなります。


また、FTDIのUSBシリアル変換ICでは送信要求のRTSを正確なタイミングで出すことができないようです。

まとめ

以上から、FTDIのICを使うのが簡単でかつ手堅いと思います。