IICバス

読み:アイアイスィーバス
外語:IIC bus: Inter-IC bus
品詞:固有名詞,+規格

オランダのPhilips社が開発したIC間用双方向シリアルバスの規格。I2Cバスとも書く。

同規格に基づくIC同士なら、僅か2本の配線で、複数の周辺IC間の相互データ転送や制御ができる。対応するICにはシリアルEEPROMや、A/D、D/Aなどがある。

信号線は、シリアルクロック線(SCL)と、シリアルデータ線(SDA)がある。

この2線だけで、制御側(マスタ)と、IC(スレーブ)の通信を行なう。

シリアルクロック(SCL)

SCLは、同期を取るための信号線である。通常はマスタ→スレーブの一方向である。

SCLがローの期間にシリアルデータ(SDA)を変更し、SCLをハイで保持することでその通信を行なう。

シリアルデータ(SDA)

SCLに同期し、データの転送に用いる信号線である。マスタ、スレーブ、どちらからも送信されうる。

通信のACK信号もSDAを通じて送信されるため、転送方向は通信中に随時変化する。

データは、スタートコンディションに始まり、実際のデータ送受信が続き、ストップコンディションで終わる。

スタートコンディション

マスタが通信を開始する前に、バスの使用権を獲得するため、スタートコンディションを発行する。

これは、SCLがハイの状態で、SDAをハイ→ローとすることで行なう。

データ

次いで、データの送受信が行なわれる。

これがどのような形式であるかはICによって異なるが、一例では、デバイスアドレス、リード/ライトの区別、デバイス内のメモリアドレス、実際のデータ、といった形式になる。

リード

SCLをロー→ハイとすると、スレーブはSDAに1ビットのデータを送信するので、マスタはこれを読み取る。

SCLをローに戻し、再度ロー→ハイとすれば、その次のビットが送信される。これを繰り返す。

ライト

SCLがローの状態でSDAに1ビットのデータを設定し、SCLをロー→ハイとすると、スレーブは1ビットのデータを受信する。

SCLをローに戻し、SDAに1ビットのデータを設定して再度ロー→ハイとすれば、その次のビットがスレーブに送信される。これを繰り返す。

ストップコンディション

データの転送を終えたら、バスを解放するため、ストップコンディションを発行する。

これは、SCLがローの状態でSDAをローにし、SCLをハイ、SDAをハイ、とすることで行なう。