ヌル
モデムは、RS-232シリアルケーブルを用いて2つのDTE(Data Terminal Equipment、
コンピュータや
端末など)を直接接続するための通信方式です。通常、RS-232はDTEとDCE(Data Communication Equipment、
モデムなど)を接続するために用いられますが、ヌル
モデムでは
モデムを介さずにDTE同士を接続します。
RS-232規格は、もともと
テレタイプ端末を
モデム経由で接続するために開発されました。しかし、
モデムを使わずに2台の
テレタイプ端末を直接接続したいというニーズから、ケーブルの配線をクロスさせることでDTE同士を接続する方法が生まれました。これがヌル
モデムの始まりです。
ヌル
モデムという用語は、接続方法だけでなく、使用するケーブルやアダプター自体を指すこともあります。1980年代から1990年代初頭にかけて、初期のパソコン間でデータをやり取りするための一般的な手段として広く利用されました。
ケーブルとアダプター
ヌル
モデムケーブルは、送信線と受信線がクロス結線されたRS-232シリアルケーブルです。ハンドシェイク線もクロス結線されている場合があります。ストレート結線のシリアルケーブルとヌル
モデムアダプターを組み合わせて使用することもできます。アダプターには、必要なクロス結線が組み込まれています。
配線図
以下は、2つのDTE(例:2台のPC)を相互接続するための一般的なヌル
モデムケーブルの配線例です。
ピン | DTE 1 | DTE 2 |
---|
-- | - | --- |
1 | DCD | DSR |
2 | TXD | RXD |
3 | RXD | TXD |
4 | DTR | DTR |
5 | GND | GND |
6 | DSR | DCD |
7 | RTS | CTS |
8 | CTS | RTS |
9 | RI | RI |
この配線は、DCD(データキャリア検出)信号を適切にアサートする
ソフトウェアで機能します。
用途
ヌル
モデムの主な用途は、
モデムを使わずに2台の
テレタイプ端末を直接接続することでした。しかし、RS-232規格が他の機器にも採用されるようになると、DTEのようなインターフェースを持つ機器とDCEのようなインターフェースを持つ機器を接続する必要が生じました。2つのDTE(または2つのDCE)を接続するためには、ヌル
モデムが不可欠でした。
一般的には、
コンピューター間で
ファイル転送や遠隔操作を行うために使われました。Windowsでは、ヌル
モデム接続で直接ケーブル接続機能が利用でき、
MS-DOS後期にはInterLnkプログラムが付属していました。これらの
ソフトウェアを使うと、一方の
コンピュータのハードディスクをもう一方のネットワークドライブとしてマッピングできました。
コモドールの
Amigaシステムでは、ヌル
モデム接続は2台のマシンでマルチプレイヤーゲームをプレイする一般的な方法でした。
ヌルモデムの衰退と復活
イーサネットなどのより高速な通信技術が普及したことで、ヌル
モデムケーブルの利用は一般的には少なくなりました。しかし、
カーネルモード開発では、依然としてヌル
モデムケーブルが役立つ場合があります。最小限のデバイスドライバとコードで
カーネルのリモート
デバッグが可能になるためです。
LinuxのKGDB、BSDのddb、WindowsのWinDbg/KDなどのデバッガーで使用できます。
また、シリアル管理コンソールを備えたヘッドレスデバイス(マネージドスイッチ、ラックマウントサーバー、組み込みシステムなど)の管理にも、ヌル
モデムケーブルが活用されています。公共サービス分野では、DNP3、
Modbusなどのプロトコルを使用した短距離のシリアル通信に利用され、新しいネットワーク技術への移行が遅れている分野で、依然として広く使われています。
2つのDTEを接続するには、対応する信号(TD-RD、DTR-DSR、RTS-CTS)を入れ替える必要があります。これには、個別のデバイスを使用するか、専用のクロス結線ケーブルを使用します。キャリア検出が必要な場合は、DSRとDCDを接続してDTR信号からCDをシミュレートすることができます。
ハードウェアハンドシェイクがない例
最もシンプルなシリアルケーブルには、データ線と信号
接地線しか接続されていません。
フロー制御は
ソフトウェアで実装する必要があります。クロス接続されたRx線とTx線でのみデータ通信が可能です。
ループバックハンドシェイク
ケーブルのピン配列がループバックしているだけで、ハードウェア
フロー制御は実際には利用できません。
ソフトウェアがハードウェア
フロー制御があると誤認識する可能性があります。
パーシャルハンドシェイク
フロー制御線は同一のデバイスにループバックされますが、RTSとCTSの
フロー制御が可能になっています。CD(キャリア検出)信号をチェックする場合のみ機能します。
フルハンドシェイク
RTSとCTSがクロスしているため、従来のケーブルのハードウェア
フロー制御とは互換性がありません。適切な
ソフトウェアがあれば、より高速な通信が可能です。
仮想ヌル
モデムは、仮想
シリアルポートを使用して2つのアプリケーションを直接接続する
ソフトウェアソリューションです。ハードウェアヌル
モデムをエミュレートし、より高速なデータ送信やネットワーク経由の接続が可能です。また、物理的な
シリアルポートやケーブルが不要です。
[DOSBox]]などのエミュレーターで仮想ヌルモデムを使用し、昔のDOSゲームをオンラインでプレイできます。Unixの
擬似端末]も仮想[[モデム通信路として利用可能です。
まとめ
ヌル
モデムは、
モデムを介さずに2つのDTEを直接接続するための歴史的な通信手段です。初期のパソコン通信や組み込みシステムの分野で活躍し、現在でも特定の用途で活用されています。また、仮想ヌル
モデムは、
ソフトウェアで物理的なヌル
モデムをエミュレートし、より柔軟な接続環境を提供します。