シリアルポート入門と実践ガイド:RS-232/TTL/USBの違い・設定・トラブルシューティング
概要:シリアルポートとは何か
シリアルポート(シリアル通信ポート)は、データをビット列として逐次送受信するためのインターフェースです。かつてはPCの標準的な外部インターフェースとして広く使われ、産業機器、組み込み機器、ルータやスイッチのコンソールなどで現在も重要な役割を担っています。代表的な物理・電気的仕様としてはRS-232、産業用のRS-485、マイクロコントローラのTTLレベルシリアル(UART)、そしてUSB経由の仮想COMポート(CDC/ACMやFTDI等)があります。
歴史と用途の変遷
1970年代〜1990年代にかけて、RS-232はモデムやターミナル接続の標準でした。USBやEthernetの普及でPCの物理シリアルポートは減少しましたが、産業分野や組込み分野ではシンプルさと堅牢さから根強く使われ続けています。現在はデバッグ用のシリアルコンソール、マイコンとの通信、産業プロトコル(Modbus/RTU等)のトランスポート層として広く用いられています。
主要な規格と電気的特徴
- RS-232: かつてPCで一般的だった規格。信号電圧は論理「1」(MARK)が-3 ~ -15V、論理「0」(SPACE)が+3 ~ +15V。シングルエンド伝送でノイズに弱く、長距離には不向き。コネクタはDB-9やDB-25が標準。
- RS-485: 差動信号(A/B)を用いる半二重・全二重のバス型システム向け標準。長距離伝送(数百メートル〜1200m程度)や多点接続に向く。終端抵抗と差動ペアの配線が重要。
- TTL/CMOSレベル(UART): マイコンで一般的。電圧レベルは3.3Vや5Vが主流で、直接接続は電圧互換に注意が必要。物理的にはピンヘッダやケーブルで接続される。
- USB-シリアル変換: FTDI、Prolific、CH340等のチップでUSBを仮想COMポートに変換。USB CDC/ACMクラスに対応するデバイスもある。ドライバやチップ固有の癖(ブート時の識別など)に注意。
基本的な通信パラメータ
シリアル通信を正しく行うには、次のパラメータを送受信側で一致させる必要があります。
- ボーレート(baud): 1秒あたりのシンボル数。一般的な値は9600、19200、38400、115200など。ただしUARTの内部クロック精度やケーブル長で誤り率が変わる。
- データビット(data bits): 7bitや8bitが一般的。
- パリティ(parity): なし(None)、偶数(Even)、奇数(Odd)など。
- ストップビット(stop bits): 1、1.5、2など。
- フロー制御(flow control): ハードウェア(RTS/CTS)またはソフトウェア(XON/XOFF)。データレート維持やバッファオーバーフロー防止に使用。
コネクタとピン配置
昔ながらのPC向けではDB-9コネクタが一般的でした。代表的なピンは以下の通りです(DTE/DCEの役割により信号の方向が入れ替わる)。
- TXD (Transmit Data)
- RXD (Receive Data)
- RTS (Request To Send)
- CTS (Clear To Send)
- DTR (Data Terminal Ready)
- DSR (Data Set Ready)
- GND (Signal Ground)
RS-232は電源リターンにGNDピンが必要です。RS-485では差動ペア(A/B)と場合によっては信号GNDを扱います。コネクタの違いとピン割当は装置間で合わせる必要があります。
フロー制御の実際と選び方
小さなデータ交換ではフロー制御が不要な場合が多いですが、次の点を考慮してください。
- バッファが小さい組み込みデバイスや高速通信ではRTS/CTSなどハードウェアフロー制御が推奨される。
- XON/XOFFはソフトウェアで制御できるが、バイナリデータに誤検出されるリスクがある。
- USB-シリアル変換では仮想的なRTS/CTS制御が実装されることが多いが、ドライバに依存する場合がある。
配線、終端、ノイズ対策
物理配線と取り扱いで通信の安定性は大きく変わります。
- シングルエンド(RS-232)ではケーブル長は短く(数メートル程度)抑えるのが安全。長距離ではRS-485など差動伝送を用いる。
- 差動信号(RS-485)はツイストペアと終端抵抗(両端に120Ω程度)を使い、バスの正しい動作を保証する。
- グラウンドループを避けるため、異なる電源系統を接続する際は信号GNDの接続方法を検討する。必要ならばアイソレーション(光アイソレータやトランス)を導入する。
- ESD対策、過電圧保護、サージ保護を施すと現場での故障が減る。
ソフトウェア側の扱い(Linux/Windows/macOS)
Linuxではシリアルデバイスは/dev/ttyS*(オンボードUART)や/dev/ttyUSB*(USB-シリアル)/dev/ttyACM*(CDC/ACM)として現れます。基本的な設定はsttyで行い、実際の接続確認にはscreen、minicom、picocom、cutecom等を使います。systemdを使う環境ではgettyをシリアルに割り当てることでログインコンソールを提供できます。
WindowsではCOM1、COM2などの名前で見え、Tera TermやPuTTYなどのターミナルソフトを使います。USB-シリアルドライバのインストールが必要になることがあります(FTDI、Prolific、WCH等)。macOSは/dev/tty.*や/dev/cu.*のデバイス名で扱います。
トラブルシューティングの手順
- 物理層確認: ケーブル、コネクタ、電源、GNDを確認する。
- 信号レベル確認: TTLとRS-232を混同して接続していないか。必要ならレベル変換(MAX232等)やアイソレータを使う。
- 通信設定確認: ボーレート、パリティ、データビット、ストップビット、フロー制御が双方で一致しているか。
- 自己ループバックテスト: TXとRXを短絡して送信したデータが返ってくるか確認。
- ロジックアナライザ/オシロスコープで信号波形を確認すると、ノイズや電圧レベル不一致が見つかる。
- ドライバ確認: USB-シリアルではデバイスが正しく認識されているか。Windowsではデバイスマネージャ、Linuxではdmesgで確認。
実践的ヒントとベストプラクティス
- マイクロコントローラ間の接続では電圧レベル(3.3V vs 5V)を最優先で確認する。直接接続すると破損する恐れがある。
- RS-485ネットワークではバスの両端に終端し、リピータやトランシーバのDE/REライン管理を正しく行う。
- デバッグ用にFTDIやUSBシリアルアダプタを常備するとトラブル解決が早まる。信頼性の高いチップはFTDIやSilicon Labs(CP210x)。CH340やProlificは安価だがドライバで問題が出ることがある。
- 産業用途ではアイソレーション付きシリアルモジュールを使うことで機器破壊を防げる。
- 重要ログや診断メッセージはシリアルコンソールに出すと、OSが起動しない場合でも状況把握できる。
代表的なツールとコマンド例(Linux)
簡単な接続テストと設定例:
- デバイス確認: dmesg | grep tty
- sttyで設定: stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb -ixon
- 接続: screen /dev/ttyUSB0 115200 または picocom -b 115200 /dev/ttyUSB0
- ループバックテスト: TXとRXを短絡してechoを試す
産業プロトコルと上位層の関係
シリアルは下位の物理層であり、上位層でModbus/RTU、Profibus(物理は別)、DNP3などのプロトコルが動作します。Modbus/RTUはRS-485上でよく使われ、タイミングベースでフレーミングするため、レイテンシやボーレートの設定が重要です。
セキュリティと運用上の注意
シリアルポートは物理的アクセスがあれば容易に操作・監視されうるため、次の点に注意してください。
- コンソールにアクセスできるとシステムの設定変更やブートパラメータの変更が可能になる。物理的なアクセス制御を行う。
- 産業用機器ではデフォルトのボーレートやパスワードが公開されていることがあり、ネットワーク以上に脆弱な場合がある。運用ルールを整備する。
- ログの記録やアクセス監査を行うことで、現場での不正あるいは誤操作検出に役立つ。
将来展望:シリアルの役割はどう変わるか
USBやEthernetの普及により、日常ユーザーデバイスの多くはシリアルポートを持ちませんが、組み込みや産業分野では依然不可欠です。仮想COMポートやプロトコル変換(シリアル→TCP/IP)の普及により、既存インフラをIPベースの監視・制御に統合するケースが増えています。シンプルで低コスト、低遅延の特性は今後も残るでしょう。
まとめ
シリアルポートは歴史のある技術ですが、ハードウェアレベル、プロトコル、運用ノウハウを正しく理解すると、トラブルシューティングやシステム設計で強力な武器になります。電気的なレベルや配線、フロー制御、ソフトウェア設定を順序立てて確認することが安定運用の鍵です。
参考文献
- RS-232 - Wikipedia
- RS-485 - Wikipedia
- UART - Wikipedia
- MAX232 (Level shifter) - Maxim Integrated
- FTDI Drivers and Documentation
- USB Implementers Forum (USB specifications)
- Modbus Organization (Modbus specifications)
- Linux TTY layer documentation
投稿者プロフィール
最新の投稿
IT2025.12.13スマートウォッチの現状と技術深掘り:健康機能・セキュリティ・開発の実務知見
IT2025.12.13iPad徹底ガイド:モデル比較・活用法・選び方(2024年時点)
IT2025.12.13タブレット完全ガイド:用途・技術・選び方から今後のトレンドまで徹底解説
IT2025.12.13スマートフォンの進化と仕組み:ハード・ソフト・未来まで徹底解説

