【組み込みマイコン基礎】I²C通信とは?原理・配線・データシートの読み方まで解説

今回は組み込みマイコン開発の基礎として、I²C(アイ・スクエアド・シー)通信について紹介します。

マイコンの代表的な通信方式には、以下の3つがあります。

  • I²C
  • SPI
  • UART

いずれも1本の通信線で1ビットずつデータを送るため、シリアル通信と呼ばれます。
最近では I³C や Quad SPI などの発展版も登場していますが、
まずは基本となる3方式を押さえておきましょう。

スポンサーリンク

I²Cの配線方法

I²C通信では、マイコンから以下の4本の線を外部に出します。

  • SCL(クロック線) データ転送のタイミングを決める基準信号
  • SDA(データ線) 0/1 の制御でデータを送受信する
  • VCC(電源)
  • GND(グラウンド)

この4本を各センサーモジュールに接続するだけで通信が可能です。 配線がシンプルなのはI²Cの大きなメリットですね。

I²C通信の確立(アドレス指定とACK)

I²Cでは、通信を始める際にマイコンが次のようにセンサーモジュールへ呼びかけます。

「スレーブアドレス 0x11 のモジュールはいますか?」

センサーモジュールはそれぞれ固有のスレーブアドレスを持っており、該当するモジュールが応答します。

■ スレーブアドレスの送信

  • マイコンは 7ビットのアドレスを送信
  • 続けて 読み込み/書き込み(R/W)ビット を送信
  • その後、モジュールから ACK(アクノリッジ) が返ってくる

■ ACKとは?

  • 0(LOW):応答あり
  • 1(HIGH):応答なし

ACKが返ってくることで、通信が確立されたことが確認できます。

データシートを使った実例:SHT30センサー

例として、温湿度センサー SHT30 のデータシートを見てみます。

■ 測定データの取り込みコマンド

SHT30では、測定開始のために次の2バイトを送信します。

  • 0xE0
  • 0x00

この2バイトを送ると、センサー内部で測定が開始されます。

■ 測定データの読み出し

  1. 再度アドレスを送信(今度は読み出しモード)
  2. センサーが測定データを1バイトずつ返す
  3. マイコン側でデータを計算し、温度・湿度に換算
  4. LCDなどに表示

I²Cではこのように、 通信確立 → コマンド送信 → データ要求 → データ受信 という流れで処理が進みます。

I²Cの長所と短所

■ 長所

  • 配線が4本だけで済む(特にSCLとSDAの2本で通信可能)
  • 複数のデバイスを同じバスに接続できる

■ 短所

  • スレーブアドレスの衝突問題 同じアドレスのセンサーは同時に使えない
  • 毎バイトごとにACK確認が必要 通信手順がやや冗長
  • クロックが遅い 一般的に最大 1 Mbps 程度

便利な反面、制約も多い通信方式と言えます。

まとめ

  • I²Cは 電源+通信線の4本だけで使えるシンプルな通信方式
  • 通信の流れは アドレス送信 → ACK → コマンド送信 → データ受信
  • 配線は楽だが、アドレス衝突や速度の遅さなどのデメリットもある

I²Cは組み込み開発で頻繁に使われる基本技術なので、ぜひ押さえておきましょう。

error: コンテンツ保護のため右クリック使用禁止