シリアル接続とは?初心者からプロまで押さえる仕組み・規格・実践ガイド
はじめに:シリアル接続の位置づけ
シリアル接続(シリアル通信)は、ビット列を時分割で1本または少数の線で順次送受信する通信方式です。古くはモデムや端末接続で使われ、現在でも組み込み機器のデバッグ、産業用フィールドバス、マイクロコントローラ間通信などで広く使われています。本稿では物理層からプロトコル、実装上の注意点、トラブルシューティング、最新の実務的知見までを幅広く解説します。
シリアル接続の基本概念:同期式と非同期式
シリアル通信は大きく同期式(synchronous)と非同期式(asynchronous)に分かれます。同期式は送受信側が共通のクロックやビットの同期信号を持つためフレーミングが簡単で高効率ですが、配線や制御が複雑になりがちです。非同期式(UARTが代表)は、フレームにスタート/ストップビットと任意のパリティを付与して時刻同期を行うため、配線が簡素で用途が広いのが特徴です。
代表的な規格とその特徴
- RS-232:歴史的に最も有名なシリアル規格で、単線(差動ではない)で±3V以上を論理閾として伝送します。コネクタはDB-9やDB-25が一般的。短距離(推奨15m程度)でのポイントツーポイント用途に使われます。
- RS-422:差動信号を用いることで長距離伝送と高耐ノイズ性を実現。フルデュプレックスに対応する実装が一般的です。
- RS-485:差動でマルチドロップ(最大32ノードなど)をサポートし、半二重通信が多い。産業用フィールドネットワークでよく使われます。終端抵抗やバイアスが重要です。
- TTL/CMOSシリアル(ロジックレベルUART):マイクロコントローラなどの内部UARTは0〜5Vまたは0〜3.3Vのロジックレベルで動作。外部機器やPCと接続する際はレベル変換(MAX232など)やUSB-シリアル変換器が必要です。
- USB CDC/FTDI:近年はUSB経由で仮想COMポートを作るUSBシリアル変換(FTDI、Prolific、Silicon Labsなど)が主流で、古いRS-232を持たないPCでもシリアル機器と接続できます。
物理層の詳細:電気的性質とコネクタ
RS-232はシングルエンドで論理1/0が逆転している(マーク=負電圧、スペース=正電圧)という点に特徴があります。一般的に±3V〜±15Vの範囲で通信されます。一方、RS-422/485は差動ペア(A/B)で信号をやり取りするため、共通モードノイズに強く長距離伝送に適します。RS-485は終端抵抗(通常は120Ω)とバイアス(ラインアイドル時のA/Bレベルを決めるプルアップ/プルダウン)が重要です。
コネクタは用途により異なります。PC側の古典的形状はDB-9/DB-25、産業機器では端子台やRJ-45(ピン割当ては標準化されていないことに注意)を使うことがあります。
UARTフレーミングとボーレート
一般的なUARTフレームはスタートビット(1ビット)、データビット(5〜9ビット)、パリティビット(オプション)、ストップビット(1、1.5、2)が組み合わされます。通信速度(ボーレート)はbpsで表し、典型的な値は9600、19200、38400、115200などです。UARTでは送受信側のクロックが一致しないため、受信側はスタートビットを検出した後、内部クロックでビットタイミングをサンプリングします。一般的には受信クロックは送信クロックの±2%程度しか許容できないため、ボーレート設定は正確に行ってください。
フロー制御とハンドシェイク
シリアル通信では送信側が受信側の準備を確認するためにフロー制御を用います。ハードウェアフロー制御(RTS/CTS、DTR/DSR)は信頼性が高く、高速通信時に推奨されます。ソフトウェアフロー制御(XON/XOFF)はケーブルのピン数が限られる場合に使われますが、バイナリデータ中の誤検出に注意が必要です。
実装上の注意点とコモン問題
- グラウンドループと共通モード電圧:特に長距離での接続では異なる機器間でグラウンドポテンシャル差が生じ、通信障害や機器破損の原因になります。必要に応じて絶縁(アイソレーション)トランスミッタやフォトカプラ、デジタルアイソレータを検討してください。
- 終端とバイアス(RS-485):終端抵抗が無いと反射で信号が歪みます。バイアス抵抗でアイドル状態のライン電位を安定させ、ノイズによる誤トリガを防ぎます。
- ケーブルと配線:差動ペアはツイストペアで配線し、シールドをグラウンドに適切に接続するとノイズ耐性が上がります。RS-232のような単線信号はノイズに弱いので短距離での利用に限定してください。
- レベル変換器:TTLとRS-232は電圧・論理極性が異なるため、ルーチンでMAX232等のレベルシフタを挟みます。USB-シリアルIC(FTDI、CP210x、CH340など)はPC接続の現代的手段です。
ソフトウェア側の設定(Linux/Windows)
Linuxではシリアルデバイスは/dev/ttyS*(ハードUART)や/dev/ttyUSB*(USB-シリアル)として現れます。設定はsttyやtermios APIで行い、ボーレート、パリティ、データビット、ストップビット、フロー制御を指定します。WindowsではCOMポート設定をデバイスマネージャやWin32 APIで操作します。正しいボーレートとフロー制御が合っていないと通信エラーが発生します。
トラブルシューティングの実用手順
- 物理層確認:ケーブル、コネクタ、ピン配列、終端、バイアスをチェック。マルチメータで電圧やショートの有無を確認。
- 波形観察:オシロスコープやロジックアナライザで波形を観察し、ビット幅、振幅、反射、ノイズを確認。
- 設定一致確認:双方のボーレート、パリティ、ストップビット、フロー制御が一致しているか確認。
- ループバックテスト:送信ピンと受信ピンを短絡して送信が受信されるか確認し、UARTモジュール自体の動作を切り分け。
- ログとエラーカウンタ:UARTハードウェアやドライバが提供するフレーミングエラー、オーバラン、パリティエラーカウンタを参照。
産業用途・プロトコル例
産業用途ではRS-485上でModbus RTU、Profibusなどのプロトコルが使われます。Modbus RTUはバイナリフレーミングを用いるため、タイミング(キャラクタ間ギャップ)によるフレーム境界の判定が重要です。これらプロトコルはエラーチェック(CRC)やアドレス指定を備え、複数ノード間の信頼性ある通信を提供します。
高度な話題:ハードウェアPCR(締め切り)、DMA、バッファリング
マイクロコントローラのUART実装では、FIFOやDMAを使ってCPU介在を減らし高速通信や低消費電力運用が可能です。割り込み駆動ではCPU負荷が高まるため、データ量が多い場合はDMAが推奨されます。また、ソフトウェアでリングバッファを実装してデータの欠落を防ぐ設計も一般的です。
セキュリティと運用上の注意
シリアル接続はしばしばコンソールアクセスに使われるため、初期設定での不正アクセス経路になり得ます。機器のコンソールを通じたアクセス制御やロギング、物理アクセス制限を設けることが重要です。また、ファームウェア書込みやブートローダへのアクセス経路を物理的に管理してください。
まとめ:選択と実践のポイント
- 用途に応じて規格を選ぶ:短距離でシンプルならRS-232/TTL、長距離やマルチドロップならRS-485。
- 電気的対策を怠らない:終端、バイアス、絶縁、シールドは信頼性に直結。
- ソフト設定を揃える:ボーレートやパリティ、フロー制御を両端で一致させること。
- デバッグツールを活用:オシロ、ロジアナ、仮想端末ソフトを組み合わせて問題を切り分ける。
参考文献
Modbus Application Protocol Specification
投稿者プロフィール
最新の投稿
用語2025.12.21全音符を徹底解説:表記・歴史・演奏実務から制作・MIDIへの応用まで
用語2025.12.21二分音符(ミニム)のすべて:記譜・歴史・実用解説と演奏での扱い方
用語2025.12.21四分音符を徹底解説:記譜法・拍子・演奏法・歴史までわかるガイド
用語2025.12.21八分音符の完全ガイド — 理論・記譜・演奏テクニックと練習法

