質問:「UART、I2C、SPI接続の違いは?」
以下はChatGPTの回答。
UART、I2C、SPIは、マイコンやセンサ、周辺デバイス間の通信に使われるシリアル通信の方式ですが、それぞれに特徴があります。以下に違いをわかりやすくまとめます。
1. UART(Universal Asynchronous Receiver/Transmitter)
特徴:
- 非同期通信(クロック信号を使わない)
- 通信線:2本(TX, RX)
- 1対1通信(基本は1:1)
メリット:
- 配線が少ない(クロック線が不要)
- 比較的簡単に扱える
デメリット:
- 複数デバイスとの通信には向かない(マルチポイント不可)
- 通信速度やフォーマット(ボーレート)を事前に一致させる必要がある
2. I2C(Inter-Integrated Circuit)
特徴:
- 同期通信(クロック線を使う)
- 通信線:2本(SCL:クロック、SDA:データ)
- マルチマスタ・マルチスレーブ対応
メリット:
- 1本のバスに複数のデバイスを接続できる(各デバイスにアドレスを割り当てる)
- 配線が少なくてすむ(2本)
デメリット:
- 通信速度は遅め(一般的に最大400kbps〜1Mbps)
- 線が長くなるとノイズに弱い
3. SPI(Serial Peripheral Interface)
特徴:
- 同期通信
- 通信線:最低4本(MOSI, MISO, SCLK, SS)
- 1対多通信(マスタ1台+スレーブ複数)
メリット:
- 高速通信(数十Mbpsも可)
- フルデュプレックス通信(送受信同時)
デメリット:
- スレーブが増えるとCS(チップセレクト)線が増える
- 配線が多くなる(デバイス数に比例)
【比較表】
項目 | UART | I2C | SPI |
---|---|---|---|
クロック | なし(非同期) | あり(同期) | あり(同期) |
配線本数 | 2本 | 2本 | 4本〜(デバイス数で増加) |
通信形態 | 1対1 | 1対多(アドレス制御) | 1対多(CS制御) |
速度 | 中〜遅め | 遅め | 速い |
実装難易度 | 低 | 中 | 中〜高 |
主な用途 | PCやGPSモジュール等 | センサ類(温度、加速度など) | 高速センサ、液晶、SDカードなど |
用途によって使い分けられていて、例えば:
- UART:ログ出力、PCとの通信など
- I2C:複数センサの接続、小規模システム
- SPI:高速通信が必要なデバイス(ディスプレイやメモリ)
必要なら、ラズパイでの使い方や実装例も紹介できるよ。興味ある通信方式ある?