2015年10月25日

番外編 -I2C その1(概要)

今回はI2C(アイ・スクウェアド・シー)という通信方式について説明します。I2Cはシリアル通信と同様に電子工作ではよく使われる通信方式です。


目次


1. 概要

I2Cは以前に作成した記事(デジタル通信のルール)で説明した言葉で表すと、以下のような通信方式です。
I2Cはシリアル通信と同様にシングルエンドでシリアル伝送な通信方式ですので、通信速度は高速な部類ではありません。ただ、シリアル通信が非同期方式であるのに対してI2Cは同期方式ですので、シリアル通信よりはI2Cの方が高速です


図1はI2Cの接続図です。SCLがクロックSDAがデータの信号線です。I2Cはこの2本の信号線で通信を行います。

oct25_I2C_1-1.png
図1 I2C接続図

I2Cで使用する部品は行う動作によってマスターとスレーブの2種類に分けられます。マスターとスレーブについては2. マスターとスレーブで説明します。

I2CはSCLもSDAもオープンコレクタ出力であるため、双方向通信が可能です。SCLは常にマスターからスレーブへの一方通行ですが、SDAはマスターとスレーブで入力側と出力側が入れ替わる双方向通信です。
また、SCLもSDAもオープンコレクタ出力であるため、SCLとSDAにはプルアップ回路が必要です。


2. マスターとスレーブ

図1で描いたようにI2Cにはマスターとスレーブがあります。それぞれの役割を以下に記します。
  • マスター:クロック信号や命令を出す側。Arduinoなどのマイコンが担当する
  • スレーブ:クロック信号や命令を受け取る側。LCDなどの周辺機器が担当する
このようにI2Cではマスターの命令に従ってスレーブが動作します。マスターが出す命令は大きく分けて2つです。
  1. 複数あるスレーブの内、どのスレーブと通信するか
  2. Read(マスターがスレーブからデータを読み込み)かWrite(マスターがスレーブにデータを書き込み)か

スレーブとして動く部品にはアドレスという固有の番号が部品メーカーによって割り振られています。マスターはアドレスを使うことで、通信を行うスレーブを指定することができます。
アドレスは基本的に7[bit]の2進数です。たまに10[bit]のアドレスもあります。

I2Cではまず、図2のようにマスターがどのスレーブと通信するかの命令を送ります。このとき、この命令は全てのスレーブが受け取ります。
また、R/W(Read/Write)のどちらを行うかの命令もアドレスと一緒にスレーブへ送っています
なお、マスター-スレーブ間でやり取りするデータは総てSDAの線で行います。ですので、図2と図3ではSCLを省略しています。

oct25_I2C_2.png
図2 マスターからスレーブへの命令

マスターが指定したアドレスと一致するスレーブは図3のようにマスターに対して通信可能であることの返事を行います。この返事をACK(アック)といいます。ACKはacknowledgementの略です。
マスターが指定したアドレスと一致しないスレーブは何もしません。

oct25_I2C_3.png
図3 スレーブからマスターへのACK

マスターはスレーブからのACKを確認してから、データのやり取りを始めます。


このようにI2Cでは双方向通信やアドレス、ACKなどを活用しています。ただし、これらの命令はマスターとスレーブが互いに通信の手順を守らなければいけません。手順を守らなければ、互いの信号をうまくやり取りすることができません。
次回はI2Cの通信手順について説明します。


参考資料

  1. 作者名:後閑哲也. "I2C通信の使い方". サイト名:電子工作の実験室. http://www.picfun.com/c15.html, (参照日:2015-10-25)
  2. 作者名:Shigehiro Kimura. "I2Cの実験(1/5)". サイト名:きむ茶工房ガレージハウス. http://www.geocities.jp/zattouka/GarageHouse/micon/I2C/I2C_1.htm, (参照日:2015-10-25)
  3. 作者名:NXP Semiconductors. "I2C バス仕様およびユーザーマニュアル". サイト名:NXP Semiconductors. http://www.nxp.com/documents/user_manual/UM10204_JA.pdf, (参照日:2015-10-25)

インターネットガジェット入門 面白チャレンジ! USB、I2C、UART、XBee・・・自由自在

価格:1,944円
(2015/10/25 15:01時点)
感想(0件)



posted by ました at 16:50| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。