I2Cとは?マイクロコントローラ(MCU)のシリアルインタフェースの種類と特徴

I2C(Inter-Integrated Circuit)

I2CもSPIのように1対複数台の接続が可能です。SPIとの大きな相違は、個々のスレーブがアドレスを持っており、マスタは通信したいスレーブのアドレスを送信することにより、アドレスが一致したスレーブのみと通信することが可能になります。 また、信号線、クロック線ともNチャンネルオープンドレイン*方式で出力することになっており、出力はLレベルのみ、その他の期間においては、外部のプルアップ抵抗によりHレベルに引き上げられます。


図1.1 I2C回路例

図1.1 I2C回路例


 

*1:Nチャンネルオープンドレイン
Hレベル、Lレベル双方を出力するコンプリメンタリ出力に対して、Lレベルのみを出力する方式をNチャンネルオープンドレイン、Hレベルのみ出力する方式をPチャンネルオープンドレインと称す。オープンドレイン方式の場合は、NチャンネルならH側の出力がなく、プルアップ抵抗抵抗を付加して信号線をHレベルにし、ハイインピーダンス(HでもLでもない状態)を防ぐ。

図1.2 (a)コンプリメンタリ出力回路
図1.2 (a)コンプリメンタリ出力回路

図1.3(b) Nチャンネルオープンドレイン出力回路
図1.3(b) Nチャンネルオープンドレイン出力回路


【 送信 (マスタ→スレーブ) 】
マスタは、最初にスレーブアドレスを送信し、スレーブからのアクノリッジ信号を受け取ります。以降、マスタは送信データをスレーブに対して送信するとともに、データごとのアクノリッジ信号を受け取ります。


図2.8 I2Cにおけるマスタからスレーブへの転送フォーマット

図1.4 I2Cにおけるマスタからスレーブへの転送フォーマット


【 受信 (マスタ←スレーブ) 】
マスタは、最初にスレーブアドレスを送信し、スレーブからはアクノリッジ信号を受け取ります。以降、マスタはスレーブから出力されるデータを受信し、各データを受信する毎にアクノリッジ信号を出力します。


図1.5 I2Cにおけるスレーブからマスタへの転送フォーマット

図1.5 I2Cにおけるスレーブからマスタへの転送フォーマット


なお、クロック(SCL)、スタートコンディション、ストップコンディションは、以下の通りです。SCLがHの区間に、SDAが立ち下がればスタートとなり、SCLがHの区間にSDAが立ち上がればストップとなります。


図1.6 I2Cにおけるスレーブからマスタへの転送フォーマット

図1.6 I2Cにおけるスタートコンディションとストップコンディション