Up I2C 作成: 2026-09-15
更新: 2026-09-16

4足歩行ロボット自律型コンピュータハードウェアデータ伝送方式I2C

  • 名称
    I²C : Inter Integrated Circuit


  • 同期・半2重
    2線式のシリアル・バスで,ひとつはクロック,もうひとつをデータに使う。
    それぞれ,
      SCL(Serial Clock Line)
      SDA(Serial DAta line)
    と呼ばれ

    データはクロックに同期してやり取りされる。
    データの通信方向は,送信・受信の両方に対応している。
    1本のデータ線を,送信・受信を切り替えて使う。


  • オープンドレイン出力
     比較:プッシュプル出力
      HIGH:信号線に規定電圧を出す (push)
      LOW:GNDに引っ張る (pull)

    ワイヤード・アンド
     すべてのデバイスがHIGH出力 = スイッチ OFF
     いずれかのデバイスがLOW出力 = スイッチ ON


  • クロック周波数
     standard mode (Sm) : 100kHz以下
     fast mode (Fm) : 最大 400kHz
     fast mode plus (Fm+) : 最大 1MHz

    Sm, Fm は,ほとんどのデバイスが対応。
    Fm+ は,通信量が多いアプリケーションに使われる。


  • 接続トポロジ
    2本の信号線 (SCLとSDA) に,デバイスすべてを接続。
    接続できるデバイスの数は,「バス容量」 によって制限される。

    通信は,主と従の関係で行われる。
    この役割を,それぞれコントローラ (マスタ),ターゲット (スレーブ) と呼ぶ。


      STM32      センサ A, B, C
      PB6 ───┬── A (SCL)
             ├── B (SCL)CL
             └── C (SCL)
      PB7 ───┬── A (SDA)
             ├── B (SDA)CL
             └── C (SDA)


  • プロトコル
    通信はコントローラが主導する。
    デバイスは,7bit のターゲット・アドレスを持つ。
    コントローラは通信を行うデバイスをターゲット・アドレスで指定し,データの転送方向を指示する。

       1. 通信開始
       2. データ転送
       3. 通信終了

    例えば,MPU6050 のターゲット・アドレスが 0x68 の場合,MPU を読み出す MCU は,つぎのように通信する:
      START
      ADDRESS (0x68)
      READ
      STOP

    転送開始 (START) 直後の1バイト (ADDRESS) は,コントローラからターゲットへの転送で,
      ターゲット・アドレス (7ビット)
      データ転送方向(送信か受信か)
    を指定。


  • データの転送単位
    基本の通信の単位は,データの8ビットのあとに1ビットを追加した9ビット。
    1クロックで1ビットを送信/受信。


  • 強み
    I2C の最大の利点は:
      SDA(データ)
      SCL(クロック)
    の 2本だけで複数デバイスを接続できること。
    IMU,気圧センサ,温度センサなどを同じ I2C バスにぶら下げられる。

    UART だと,デバイスごとに
      TX
      RX
      GND
    の3本線のポートが必要。

    つまり,I2C は
      「センサ集約」
    に圧倒的に向いている。


  • ケーブル長
    I2C はノイズに弱い。
    ロボット内部でも 10〜20cm 程度 に抑えるのが理想。


  • I2C 専用分岐 (ブレークアウト) 基板
     製品例
      Qwiic ハブ(SparkFun)
      Stemma QT ハブ(Adafruit)

    実質ハブであり,:
      SDA/SCL を内部で共通化
      コネクタを複数並べる
      ケーブルで簡単に分岐できる