こんにちは。
ヘーシロー。です。
今回は、I2Cバスを用いた
システム構成について。
I2C busとは
$I^2C bus$ (アイスクエアシーバス: 以下(I2Cバス))は、
双方向通信の2線のバスです。
このI2Cバスも
バス線の一種ですので、
色々なデバイス(IC)がバス線上に接続されます。
その中でも、
マスタと呼ばれる制御ICがあり、
このマスタが、
I2Cバス上の各デバイスに命令を送ったり、
各デバイスの内部レジスタの情報を
読み取ったりします。
つまり、
このバスに接続されている各デバイスは、
バス上のマスターと通信し、
マスターの制御を受けます。
2線のバス線は、両方とも、
プルアップ抵抗を介して、
電源に接続されています。
I2Cのシステム構成
文章だけだと分かりずらいので、
I2C busで構成されるシステムの
代表例を図示します。
CPU(あるいはマイコン)からの
制御信号はGPIO等のパラレル信号で
送り出されます。
そのパラレル信号を、
2線のI2C bus信号にして、
各デバイスに送り出すのが
Bus controller(バスコントローラ)です。
LED driverやmotor controller等、
複数のデバイスが、
I2C bus上に並列に接続されます。
各デバイスには、
I2C bus上のアドレスが
定められており、
各デバイスは、
自分のアドレスへの命令のみ
受け取ります。
この例では、
LED driverやmotor contolloer等を
どう動かすか
CPUにプログラミングしておく事により、
システムを動作させることが出来ます。
SCL/SDAは双方向バッファ
I2Cは、
双方向通信しますので、
SCL/SDAは、双方向バッファです。
出力のドライバは、
オープンドレイン型なので、
I2C busは、
プルアップ抵抗により、
VDDへ接続されます。
これも簡単な図にしてみました。
今日はここまで。
気まぐれに続きを書きますので、
気長にお待ちいただければと思います。