I2C(アイツーシー)

I2C(アイツーシー)

I2C(アイツーシー)

英語表記: I2C (Inter-Integrated Circuit)

概要

I2C(アイツーシー)は、組み込み機器(IoTデバイス, マイコン)の内部で、CPU(マイコン)と各種センサーやメモリなどの周辺ICチップの間を接続するために設計された、代表的なシリアル通信プロトコルの一つです。このプロトコルは、たった2本の信号線(SDAとSCL)だけで複数のデバイスを効率的に制御できる点が最大の特徴であり、小型化と低消費電力が求められる近距離通信の分野で標準的に採用されています。複雑な配線を避けつつ、多くの機能をマイコンに追加したい場合に、I2Cは極めて有用な選択肢となります。

詳細解説

I2Cは、組み込み機器の「通信とネットワーク」の中でも、特に基板上のIC間通信をシンプルにする目的で開発されました。限られた基板スペースとマイコンのピン数を最大限に活用するための、非常に洗練された設計思想を持っています。

目的と設計思想

多くの組み込みシステムにおいて、マイコンは温度、湿度、加速度などのデータをセンサーから絶えず収集し、その結果に基づいてアクチュエータ(モーターやディスプレイなど)を制御する必要があります。もしこれらのデバイスを一つ一つ専用の配線で接続すると、マイコンのピン(足)が不足し、基板上の配線が非常に複雑化してしまいます。I2Cは、この問題を解決するために、たった2本の共有バスに複数のデバイスをぶら下げる「バス構造」を採用しているのです。これは、配線コスト(省ピン化)と拡張性のバランスを取る上で、組み込み設計者にとって非常に重要な要素となります。

主要な信号線(2線式)

I2Cの通信は、以下の2本の信号線(ライン)のみを使用して行われます。これが、このプロトコルが「近距離通信」として小型デバイスに選ばれる理由です。

  1. SDA (Serial Data Line): 実際のデータ(情報)を送受信するために使用される信号線です。マスターとスレーブの間で双方向のデータ転送を行います。
  2. SCL (Serial Clock Line): 通信のタイミング(テンポ)を同期させるためのクロック信号線です。通信の主導権を持つマスターがこのクロックを生成します。

動作原理:マスター・スレーブ方式と同期通信

I2Cは、通信を制御する役割を持つ「マスター」と、マスターの指示に従って動作する「スレーブ」という役割分担に基づいています。

  • マスター (Master): 通常、マイコン(CPU)がこの役割を担います。マスターはSCLを生成し、通信の開始(スタートコンディション)や終了(ストップコンディション)を制御します。また、どのスレーブと通信したいかを指定する「アドレス」を送信します。
  • スレーブ (Slave): 接続されている周辺デバイス(センサー、メモリ、液晶コントローラなど)がスレーブとなります。スレーブにはそれぞれ固有の「スレーブアドレス」が割り当てられており、マスターから自分宛てのアドレスが送られてきたときだけ応答します。

同期通信の優位性:
SCLラインがあるため、I2Cは「同期通信」に分類されます。これは、データ転送のタイミングをクロックによって厳密に管理できることを意味します。組み込み機器の内部では、データが欠落したりタイミングがずれたりすると誤動作につながるため、この同期通信による信頼性の高さは非常に重要視されます。マスターがクロックを刻むことで、スレーブはそれに合わせて正確にデータを読み書きできるのです。

拡張性の高さ

I2Cバスには、理論上128個(7ビットアドレスの場合)までのスレーブデバイスを接続できます。もちろん、実際にはバスの容量や速度の制約がありますが、一つのマイコンから非常に多くのセンサーやICを制御できるため、多機能なIoTデバイスを設計する際には、この拡張性の高さが大きなメリットとなります。配線を増やさずに機能を追加できるのは、まさに組み込み機器の設計における魔法のような仕組みだと感じます。

具体例・活用シーン

I2Cは、私たちの身の回りにある、ほとんど全ての小型デジタル機器の内部で利用されている、縁の下の力持ちのような存在です。

  • スマートフォンやスマートウォッチ:

    • デバイスの向きを検出するジャイロセンサーや加速度センサー。
    • 画面の明るさを自動調整する環境光センサー。
    • バイタルデータを取得する心拍数センサー。
      これらの各種センサーICとメインのマイコンとの通信にI2Cバスが使われています。特にスマートウォッチのような非常に小さなデバイスでは、配線数を減らすことがそのまま製品の小型化・軽量化につながります。
  • 教育用マイコンボード(例:Raspberry Pi, Arduino):

    • これらの開発ボードに、外部の温度センサーモジュールや小型OLEDディスプレイを接続する際、多くの場合、たった4本のピン(電源、GND、SDA、SCL)を接続するだけで済みます。これにより、初心者でも簡単に機能拡張を試みることができます。

初心者向けのアナロジー:オフィス内の内線システム

I2Cの動作原理は、現代のオフィスにおける「特定の部署を呼び出す内線電話システム」に例えると非常に分かりやすいです。

普通の電話(パラレル通信)は、話したい相手ごとに専用の回線が必要ですが、I2Cはたった2本の共有された内線(SDAとSCL)しか持っていません。

マスター(マイコン)は受付の交換手です。
交換手(マスター)は、まず「これから通信を始めますよ」と合図(スタートコンディション)を出し、社内の全員に通信が始まることを伝えます。
次に、交換手は「人事部のAさん(スレーブアドレス05番)に用事があります」と呼びかけます。この内線は社内全員に聞こえますが、自分宛てではない部署(経理部や広報部など)は、静かに聞き流します。
05番の人事部Aさんだけが応答し、交換手(マスター)とデータをやり取りします。このやり取りの間、交換手は常に一定のテンポ(SCLクロック)で話を進めるため、会話が混乱することはありません。

このシステムのおかげで、オフィス(組み込み機器)の規模が大きくなり、多くの部署(センサーやメモリ)が増えても、配線(内線)を2本追加するだけで済みます。これが、限られたリソースの中で高い拡張性を実現するI2Cの賢い仕組みなのです。

資格試験向けチェックポイント

I2Cは、ITパスポート試験では詳細な仕組みまでは問われにくいですが、基本情報技術者試験や応用情報技術者試験の組込みシステムに関する分野では、その特徴と他のプロトコルとの比較が頻出します。組み込み機器(IoTデバイス, マイコン)の近距離通信の文脈でしっかりと理解しておきましょう。

  • 構成線の理解(2線式):

    • I2CはSDA(データ)とSCL(クロック)の2線式であることを必ず覚えてください。これは、SPI(通常4線式)やUART(通常2線式だが非同期)との明確な比較ポイントとなります。
    • 試験では、「配線数が少なく、省ピン化に貢献するプロトコルはどれか」といった形で問われることがあります。
  • マスター・スレーブ方式とアドレス指定:

    • 複数のデバイスが同じバスを共有できる理由が、マスターによる「スレーブアドレス」の指定にあることを理解してください。マスターが通信の主導権を握る点も重要です。
    • IoTデバイスの設計問題において、複数のセンサーを一つのマイコンに接続する際の適切な通信方式としてI2Cが選択肢となることが多いです。
  • **同期通信 vs

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

両親の影響を受け、幼少期からロボットやエンジニアリングに親しみ、国公立大学で電気系の修士号を取得。現在はITエンジニアとして、開発から設計まで幅広く活躍している。

目次