シリアル通信プロトコルの比較、UART・SPI・I2C・CANの違いと用途別の選び方
マイコンを使った製品開発で、周辺ICやモジュールとの通信方法を選ぶ際に迷うことは少なくありません。特にUART、SPI、I2Cといったシリアル通信プロトコルは組み込み機器でよく使われるため、それぞれの特徴を理解しておくことが重要です。どのプロトコルを選べば、設計がシンプルになり、性能要件を満たし、トラブルを避けられるのか。製品の用途や求められる要件に応じて、最適なプロトコルを見極める必要があります。
ここでは、主要なシリアル通信プロトコルであるUART、SPI、I2C、そして産業用途で使われるCANについて、その違いと選び方のポイントを実務的な視点から解説します。
マイコンと周辺機器をつなぐ、シリアル通信の基礎
マイコンがセンサーやディスプレイ、モータードライバーなどの周辺機器とデータをやり取りする際、一般的にシリアル通信が用いられます。シリアル通信は、データを1ビットずつ順番に送受信する方法で、配線数を少なくできるのが大きなメリットです。かつては複数の配線で同時にデータを送るパラレル通信も使われましたが、高速化に伴うノイズの問題や配線コストの観点から、現代の組み込み機器ではシリアル通信が主流になっています。
シリアル通信には様々なプロトコルがありますが、それぞれに通信速度、配線数、ノイズ耐性、複数デバイスへの対応といった特徴があります。これらの違いを理解し、製品の目的に合わせて適切に選択することが、効率的な設計と安定した動作につながります。
主要なシリアル通信プロトコルの特徴と違い
ここでは、組み込み開発で頻繁に利用される4つのシリアル通信プロトコル、UART、SPI、I2C、CANについて、それぞれの特徴を具体的に見ていきます。
UART:手軽で柔軟な1対1通信
UART(Universal Asynchronous Receiver/Transmitter)は、非同期式のシリアル通信プロトコルです。データ線とグラウンド線の最低2本の配線で通信が可能で、非常にシンプルに実装できます。
- 特徴:
- データとクロックが分離しているため、別途クロック線を必要としない非同期通信です。
- 送信(TX)と受信(RX)の2本のデータ線があれば、全二重通信が可能です。
- 通信速度は比較的低速で、一般的に数Mbps程度までです。
- 主にマイコンとGPSモジュール、Bluetoothモジュール、PCのシリアルポートなど、1対1のデバイス間通信に用いられます。
- スタートビットとストップビットでデータの区切りを示すため、厳密なタイミング同期は不要です。
SPI:高速でシンプルなマスター・スレーブ通信
SPI(Serial Peripheral Interface)は、同期式のシリアル通信プロトコルで、高速なデータ転送が可能です。マスターデバイスがクロックを生成し、複数のスレーブデバイスを制御します。
- 特徴:
- クロック線(SCK)、マスター出力・スレーブ入力線(MOSI)、マスター入力・スレーブ出力線(MISO)、スレーブ選択線(CS/SS)の最低4本の配線が必要です。
- 全二重通信が可能で、データの送受信を同時に行えます。
- 通信速度は数十Mbpsと、UARTやI2Cに比べて高速です。
- 複数のスレーブデバイスを接続できますが、各スレーブに個別のCS線を接続する必要があるため、デバイス数が増えると配線も増えます。
- 主にSDカード、液晶ディスプレイ、EEPROM、高速センサーなど、高速なデータ転送が求められる用途に適しています。
I2C:配線が少なく複数デバイスに対応するバス通信
I2C(Inter-Integrated Circuit)は、フィリップス社(現NXPセミコンダクターズ)が開発した同期式のシリアル通信プロトコルです。SPIと同様にマスター・スレーブ方式ですが、少ない配線で複数のデバイスを接続できるのが特徴です。
- 特徴:
- クロック線(SCL)とデータ線(SDA)の2本の配線のみで通信できます。
- 半二重通信で、データの送受信は同時に行えません。
- 通信速度は標準モードで100kbps、ファストモードで400kbps、ハイスピードモードで3.4Mbps程度と、SPIよりは低速です。
- 各デバイスに固有のアドレスを割り当てることで、複数のデバイスを同じバス上に接続できます。配線数が増えないため、デバイス数が多い場合に有利です。
- 主に温度センサー、加速度センサー、EEPROM、小型ディスプレイなど、比較的低速で複数デバイスを接続する用途に用いられます。
CAN:産業用途や車載に強い堅牢な通信
CAN(Controller Area Network)は、ドイツのボッシュ社が開発した、高い信頼性とノイズ耐性を持つシリアル通信プロトコルです。主に自動車や産業機器といった、過酷な環境下での通信に利用されます。
- 特徴:
- CAN_HとCAN_Lの2本の差動信号線を使用し、高いノイズ耐性を持ちます。
- マルチマスター方式で、どのノードもバスにデータを送信できます。メッセージIDによって優先度が決まり、衝突回避メカニズムも備えています。
- 通信速度は最大1Mbpsと、用途によっては十分な速度です。
- エラー検出・訂正機能が充実しており、信頼性の高いデータ伝送が可能です。
- 主に車載ECU間通信、FA(Factory Automation)機器、医療機器など、リアルタイム性や信頼性が重視されるシステムで活用されます。
用途別、最適なシリアル通信プロトコルの選び方
どのプロトコルを選ぶべきかは、製品が求める要件によって変わります。ここでは、具体的な用途を想定して選び方のポイントを解説します。
| 項目 | UART | SPI | I2C | CAN |
|---|---|---|---|---|
| 通信速度 | 低速〜中速(〜数Mbps) | 高速(〜数十Mbps) | 低速〜中速(〜3.4Mbps) | 中速(〜1Mbps) |
| 配線数 | 2本(TX/RX) | 4本(SCK/MOSI/MISO/CS) | 2本(SCL/SDA) | 2本(CAN_H/CAN_L) |
| デバイス数 | 1対1 | マスター1対スレーブN(CS線で選択) | マスターN対スレーブN(アドレスで選択) | マルチマスターN対N |
| ノイズ耐性 | 低い | 低い | 低い | 高い(差動信号) |
| 通信距離 | 短い(数m以内) | 短い(数十cm〜数m) | 短い(数十cm〜数m) | 長い(数百mまで可能) |
| 主な用途 | GPS、Bluetooth、PC通信 | SDカード、LCD、高速センサー | 温度・加速度センサー、EEPROM | 車載、FA、産業機器 |
センサーデータの取得
- 温度・湿度センサー、加速度センサーなど、比較的低速なデータ: I2Cが適しています。配線数が少なく、複数のセンサーを簡単に接続できます。
- 高速な画像センサーや高分解能のADコンバーターなど、大量のデータをリアルタイムで取得する場合: SPIが有利です。高速なデータ転送能力を活かせます。
表示器の制御
- 小型のキャラクターLCDやOLEDディスプレイ: I2CやUARTが使われることが多いです。特にI2Cは配線が少なく、手軽に接続できます。
- グラフィックLCDなど、画像データを高速に書き換える必要のあるディスプレイ: SPIが選択肢に入ります。データ転送速度が重要になります。
モーター制御
- サーボモーターやステッピングモーターの制御: 各モーターに個別にコマンドを送る場合、UARTやSPIが使われることがあります。SPIは高速な位置制御などにも対応できます。
- 複数のモーターを協調制御し、システム全体の信頼性が求められる場合: CANが選択肢となることがあります。特に産業用ロボットや自動搬送装置などではCANがよく採用されます。
外部モジュールとの連携
- GPSモジュールやBluetoothモジュールなど、ATコマンドで制御するモジュール: ほとんどの場合、UARTが使われます。通信速度もそれほど速くなく、シンプルな接続で十分です。
- 無線LANモジュールやイーサネットコントローラーなど、高速なデータ通信が必要な場合: SPIインターフェースを持つものも多く、高速なデータスループットを実現できます。
製品開発におけるプロトコル選定の落とし穴と注意点
プロトコル選定は、単に機能要件を満たすだけでなく、実装の容易さ、コスト、将来の拡張性なども考慮する必要があります。試作段階では手軽なUARTやI2Cで動かせても、製品化を考えると、ノイズの多い環境での安定性や、長距離配線時の信号品質など、より厳しい視点での検討が求められます。
例えば、多くのデバイスを接続したいがためにI2Cを選んだ結果、アドレスの競合やバス容量の限界に直面するケースもあります。また、高速通信が必要な場面でUARTを選んでしまい、データ落ちや処理遅延が発生することもあります。
サイコス・ジャパン株式会社では、機構設計から電子回路、基板、組み込みソフト、クラウド、量産まで、製品づくりの全工程を一社で手掛けています。試作品をお持ちの方や、製品化の段階で通信プロトコルをはじめとする技術的な課題に直面している方から、様々なご相談をいただきます。当社では、製品のコンセプトや使用環境、目標コストなどを総合的に考慮し、最適なプロトコル選定から設計、実装までをサポートしています。小ロットからの量産にも対応可能です。
製品開発の初期段階から、これらの要素を考慮してプロトコルを選定することが、後々の手戻りを防ぎ、スムーズな製品化への道筋となります。
サイコス・ジャパンが製品化を支援します
製品開発の初期段階でプロトコル選定に悩んでいる方、あるいは試作はできたものの、製品化に向けて通信の安定性や量産時の課題解決が必要な方は、ぜひ一度ご相談ください。サイコス・ジャパン株式会社では、お客様のアイデアを具体的な製品へと落とし込むための技術と経験を持っています。初回相談は無料です。写真と経緯のメモだけでも構いませんので、まずはお気軽にお問い合わせください。