シリアルリンク完全ガイド:物理層からプロトコル、設計と運用の実務まで
はじめに — シリアルリンクとは何か
シリアルリンク(シリアル通信リンク)は、データを1ビットずつ時系列に沿って送受信する通信方式の総称です。PCの古いCOMポートや組込み機器のUART、産業用ネットワークのRS-485、ネットワーク機器のシリアルコンソールなど、ITと組込み分野で広く使われています。本稿では物理層の規格、信号方式、フレーミングやフロー制御、リンク上のプロトコル、現場での設計・運用上の注意点まで、実務的に深堀りします。
シリアル vs パラレル・同期 vs 非同期の整理
シリアル通信は複数のビットを同時に送るパラレル方式と対比されます。シリアルの利点は配線本数の削減、長距離伝送での堅牢性、コスト面の優位性です。さらにシリアルは時間軸での同期方式で分類され、同期式(クロックを共有するSPIやフレーム同期)と非同期式(UARTのようにスタート/ストップビットで同期を取る)があります。同期式は高スループットと低オーバーヘッド、非同期式は配線簡素さと柔軟性が特徴です。
代表的な物理層規格と電気的特徴
主要な物理層規格は用途と電気特性で使い分けられます。
- RS-232(EIA/TIA-232):古典的なシリアル規格。電圧レベルは論理“1”(Mark)が-3~-15V、論理“0”(Space)が+3~+15V(実装により変動)。数メートル程度での点対点通信が中心。
- TTL/CMOSレベルシリアル:マイクロコントローラ間で使われる0〜5V、あるいは0〜3.3V。直接接続は電圧互換が必須。レベル変換や電圧不整合による破損に注意。
- RS-422 / RS-485:差動伝送を行う規格。RS-422は差動点対点、RS-485はマルチドロップ(多点)・半二重や全二重をサポート。長距離(数百メートル〜数キロ)とノイズ耐性に優れる。終端抵抗やバイアス回路の設計が重要。
- USB-シリアル変換:現代では多くがUSB経由で仮想COMポートを提供(FTDI、Prolific、CH340など)。ドライバとチップの差により挙動(遅延、フロー制御挙動、ライン状態検出など)が異なる。
信号の論理とフレーミング(UARTを例に)
非同期シリアル(UART)の基本フレームは、アイドル(ラインは通常High)、スタートビット(Low)、データビット(LSBまたはMSBファースト)、オプションのパリティビット、ストップビット(1/1.5/2)という構成です。一般的な設定は8N1(8データビット、パリティなし、1ストップビット)です。ボーレート(baud)はシンボルレートを示しますが、NRZなど1シンボル=1ビットであればボーレートとビット/秒は等しくなります。フレーミングエラーは受信側のボーレートや設定不一致で発生します。
エラー検出・訂正とリンク上プロトコル
単純なUART通信ではパリティ(偶数/奇数)やストップビットで最小限の誤り検出を行いますが、より高信頼が必要な場合は追加のリンク層プロトコルを使います。代表例:
- SLIP(RFC 1055): 古典的なIPトンネリング用の最小限の封入プロトコル。エスケープ処理が必要。
- PPP(RFC 1661): フレーム境界、認証、圧縮、マルチプロトコルサポートを備える。シリアルリンク上で広く使われた。
- カスタムフレーミング+CRC:産業用装置や組込みプロトコルではヘッダ+長さ+ペイロード+CRCという形式が多い。CRC16/CRC32やFletcherなどが用いられる。
フロー制御とフロー制御の現場的扱い
受信側が処理遅延によりバッファオーバーフローするのを防ぐため、フロー制御は重要です。代表的方式:
- ソフトウェアフロー(XON/XOFF): 0x11(XON)/0x13(XOFF)を送って送信を制御。簡便だがデータ中に同じバイトが現れるとエスケープ処理が必要。
- ハードウェアフロー(RTS/CTS, DTR/DSR): 電気信号線で制御。より確実で高速。USB-シリアル変換では必ずしも完全なRTS/CTSをエミュレートしない場合があるため注意。
実務的な配線と終端の注意点
差動信号(RS-485/RS-422)では終端抵抗(通常はライン特性インピーダンスに等しい120Ω前後)とバイアス(ラインがアイドル時に安定するようにpull-up/pull-down)を正しく配置することが重要です。長距離やノイズ環境ではツイストペアやシールド線を使い、各機器でグランドループを避けるため絶縁(アイソレータ)を検討します。TTLレベルとRS-232は電圧レベルが互換性がないため、MAX232等のレベル変換ICを用いて信号変換を行います。
USB-シリアルと仮想COMポートの落とし穴
現代では従来の物理COMポートが減り、USB経由で仮想シリアルポートを使うケースが多いです。注意点:
- ドライバ依存の遅延やFIFO挙動がある(特に非同期短パケットで顕著)。
- 電源供給能力、Vbus制御、DTR/RTSのライン状態(特にデバッガやブートローダがDTRでリセットをトリガする設計が多い)を把握すること。
- FTDIやProlificなどチップにより信頼性や互換性に差があるため選定に注意。
セキュリティとアクセス管理
シリアルコンソールはルータ・スイッチ・サーバの最初の管理インタフェースとなるため、物理アクセスがあれば完全に制御されるリスクがあります。データは暗号化されないため、敏感な管理情報をやりとりする場合はコンソールへの物理アクセス管理、アクセスログ、可能であればネットワーク越しに使う際はVPNやSSHで保護するなどの対策が必要です。シリアル経由のリモートアクセスにはRFC 2217(Telnet COM Port Control)やシリアルコンソールサーバを組み合わせることがありますが、それらも適切な認証と暗号化が必須です。
パフォーマンスとチューニング
シリアルリンクのスループットはボーレートに依存します。フレームオーバーヘッド(スタート/ストップ/パリティ)やプロトコルヘッダ、インタリーブによる影響を考慮する必要があります。高スループットが必要ならば同期式プロトコルやイーサネットなど別技術を検討することが現実的です。組込み側のバッファサイズ、割り込み処理の設計、DMAの利用などを最適化することで処理遅延とパケットロスを低減できます。
デバッグとトラブルシューティングの実践
よくあるトラブルと対策:
- 通信できない:Tx/Rxのクロス配線(Tx↔Rx)、グランド接続不良、電圧レベル不一致をまず疑う。
- 文字化け:ボーレートやパリティ/ストップビットの不一致。
- 断続的なノイズ:シールドの不備、グランドループ、終端の欠如。
- バッファオーバーフロー:フロー制御未設定、処理遅延。
オシロスコープやロジックアナライザで信号波形(開始/停止、電圧レベル、トランジェント)を確認するのが有効です。論理解析ではUARTデコード機能を使えばバイト列のフレーミングを視覚的に確認できます。
用途別の実装例と設計指針
いくつかの代表的ユースケースと設計上のポイント:
- 組込み機器のデバッグコンソール:TTLレベルのUARTを使い、USB-シリアルでPCと接続。DTRで自動リセットを利用する場合は回路設計でトランジスタを介して安全に行う。
- 産業用フィールドバス(簡易形):RS-485でマルチドロップ、プロトコルは独自フレーミング+CRC。終端とバイアス配置、マスター/スレーブ設計に注意。
- ルータやスイッチの管理コンソール:115200 8N1が一般的。機器のブートローダがコンソールにメッセージを吐くため、ログ収集用に専用のコンソールサーバを用意することが有効。
まとめ — 現代のITでの位置付けと今後
シリアルリンクはシンプルながらも極めて実用的であり、組込み開発、産業制御機器、ネットワーク機器の管理などで今なお重要です。物理層の特性理解、適切な終端・バイアス・レベル変換、フロー制御の選定、USB-シリアルの挙動把握、そしてセキュリティ対策が安定運用の鍵です。将来的にはシリアルの多くがEthernetやUSBに置き換わる場面もありますが、低レイヤでの信頼性やコスト、既存設備の観点からシリアルは当面不可欠な技術であり続けます。
参考文献
- RFC 1055 - The Serial Line Internet Protocol (SLIP)
- RFC 1661 - The Point-to-Point Protocol (PPP)
- RFC 2217 - Telnet Com Port Control Option
- RS-232 - Wikipedia
- RS-485 - Wikipedia
- UART - Wikipedia
- FTDI Chip - Support & FAQ (USB-Serial実装の実務情報)
投稿者プロフィール
最新の投稿
IT2025.12.13F10キーの完全ガイド:歴史・OS別挙動・開発者向け活用法とトラブルシューティング
IT2025.12.13F9キーの全貌:歴史・OS・アプリ別の挙動と活用テクニック
IT2025.12.13F8キーの完全ガイド:歴史・実用・トラブル対処(Windows・アプリ・開発者向け)
IT2025.12.13F7キー完全ガイド:歴史・OS別挙動・IME・アクセシビリティ・開発者向け対処法

