Rev. 5.0J — 2012 年 10 月 9 日
(日本語翻訳 11 月 2 日) ユーザーマニ ュ アル
文書情報
情報 内容
キーワー ド I2C、 I2C バス、 Standard-mode、 Fast-mode、 Fast-mode Plus、 Fm+、
Ultra Fast-mode、 UFm、 Hispeed、 Hs、 イ ン タ ー IC、 SDA、 SCL、 USDA、 USCL 概要 フ ィ リ ッ プ ス ・ セ ミ コ ン ダ ク タ ーズ (現在 : NXP セ ミ コ ン ダ ク タ ーズ) は、 効率的な IC (デバ イ ス) 間制御 を シン プルに実現するシ ン プルな 2 線式双方向バスを開発 し ま し た。 このバスは I2C バス (Inter-IC バス ) と 呼 ばれ、 シ リ ア ル ・ デ ー タ ラ イ ン (SDA) と シ リ ア ル ・ ク ロ ッ ク ラ イ ン (SCL) の 2 本のバス ラ イ ン で構成 さ れま す。 Standard-mode では最大 100kbit/s、 Fast-mode で は最大 400kbit/s、 Fast-mode Plus (Fm+) では 最大 1Mbit/s、 High-speed (Hs-mode) では最大 3.4Mbit/s の、 8 ビ ッ ト 単 位のシ リ アル双方向デー タ 転送が可能です。 Ultra Fast-mode (UFm) で は、 単方向、 最大 5Mbit/s のデー タ 転送が可能です。
こ の日本語訳資料は、 参考資料 と し てご提供 し てお り ます。 英語版の オ リ ジ ナル資料は頻繁に更新 されま す。最終的なご確認は最新の英語 版ユーザーマニ ュ アル をご参照 く だ さ い。
お問い合わせ先
詳細は弊社 Web サイ ト を ご覧 く だ さ い : http://www.nxp.com お近 く のオ フ ィ スの住所につい ては電子 メ ールでお問合せ く だ さ い : [email protected] 改定履歴 Rev 日付 説明 v.4 20121009 ユーザーマニ ュ アル更新 変更•
3.1.7 章 「ク ロ ッ ク 同期」: 「ア イ ド ル (バス)」 を 「フ リ ー (バス)」 に変更•
3.1.8 章 「調停」:「ア イ ド ル(バス)」を「フ リ ー(バス)」に変更•
3.1.12 章 「予約済のア ド レ ス」: – 「1111 1xx」 の R/W ビ ッ ト を 1 に し 「将来の機能拡張に予約」 を 「デバ イ ス ID」 に変更 – 第 3 パ ラ グ ラ フの古い記述 を削除•
3.1.17 章 「デバイ ス ID」: – 番号 を付けた リ ス ト の中の 「ス タ ー ト ・ コ マン ド 」 を 「ス タ ー ト コ ン デ ィ シ ョ ン」 に – 番号 を付けた リ ス ト の中の 「ス ト ッ プ ・ コ マン ド 」 を 「ス ト ッ プ コ ン デ ィ シ ョ ン」 に – 注釈の 「NACK コ マン ド 」 を 「NACK」 に – 表 4 「割当済の メ ーカ ー ID」 を更新•
3.2.8 章 「10 ビ ッ ト ア ド レ ス指定」: – 第 1 パ ラ グ ラ フ第 3 文。 「NA1」 を 「W 」 に。 第 4 文か ら 「NA2」 を削除 – 図 29を更新•
3.2.9 章 「UFm の予約済ア ド レ ス」: 第 3 文を削除•
7.2.1 章 「fSCL 周波数の低下」: – 「70%か ら 70%&」 「30%から 30%」 の記述訂正 v.4 20120213 ユーザーマニ ュ アル Rev.4 v.3 20070619 今日、多 く のア プ リ ケーシ ョ ン ではよ り 長 さ の長いバス、高速なス ピー ド が求められま す。Fast-modePlus は、Fast-mode と Standard-mode のス ピー ド お よび ソ フ ト ウ ェ ア コ マ ン ド と の下位互換性を維 持 し なが ら ド ラ イ ブ強度 を 10 倍に高め、 デー タ 転送レー ト を 1Mbit/s に高速化する こ と で このよ う なニーズへ応え られる よ う に開発 さ れま し た。 v2.1 2000 I2C バス仕様のバージ ョ ン 2.1 v2.0 1998 I2C バスは、 世界の メ ー カー 50 社以上に ラ イ セ ンス提供 され、 1,000 を超え る様々な IC に実装 さ れ てい る世界的なデフ ァ ク ト ス タ ンダー ド と な っ てい ま す。 し か し 、 今日の多 く の ア プ リ ケーシ ョ ン ではよ り高速なバス速度 と 低い電源電圧への対応が求め られていま す。今回ア ッ プデー ト さ れた I2C バス仕様の新 し いバージ ョ ンは、 これ らのニーズに応える ものです。 v1.0 1992 I2C バス仕様のバージ ョ ン 1.0 Original 1982 初版
1. は じ めに
I2C バスは、 世界の メ ー カー 50 社以上が製造 し て いる 1,000 を 超え る様々な IC (デバ イ ス) に採用 されてお り 、 世界的なデ フ ァ ク ト ス タ ン ダー ド と な っ てい ます。 ま た、 シ ステ ム管理バス (SMBus)、 パワーマネージ メ ン ト バス (PMBus)、 イ ン テ リ ジ ェ ン ト ・ プ ラ ッ ト フ ォーム ・ マネージ メ ン ト ・ イ ン タ ー フ ェ ース (IPMI)、 表示デー タ チ ャ ネル (DDC)、 ア ド バン ス ト ・ テ レ コ ム ・ コ ン ピ ュ ーテ ィ ング ・ アーキテ ク チ ャ (ATCA) など、 多様な コ ン ト ロールアーキテ ク チ ャ で使われてい ます。 本書は、 デバ イ スおよびシ ステムの設計担当者 を対象に、 I2C バスの機能 と 実際的な ア プ リ ケーシ ョ ンの実装方法につい て、理解が深め られる よ う に編集 さ れてい ます。様々な動 作モー ド の説明 と 共に、 バスデー タ転送、 ハン ド シ ェ ー ク、 バス調停スキームについ ての 総合的な説明があ り ます。 ま た、動作モー ド ご と の タ イ ミ ングお よび電気特性を説明する セ ク シ ョ ン も用意 さ れてい ます。 I2C 互換チ ッ プの設計は、 本書に記載 された内容に従 っ て行わな ければな り ません。 ま た I2C デバ イ ス を含むシ ス テムの設計には、 本書 と 各デバ イ スのデー タ シー ト を 参照する よ う に し て く だ さ い。2. I
2C バスの特徴
家電、 通信器、 産業のそれぞれのエ レ ク ト ロ ニ ク スは、 一見相互に関連性がない よ う に見 える ますが、 多 く の類似点があ り ます。 た と えば、 ほぼすべてのシ ステムに共通する要素 と し て :•
イ ン テ リ ジ ェ ン ト な制御機能。 通常はシ ングルチ ッ プ ・ マ イ ク ロ コ ン ト ロー ラ。•
汎用回路。 LCD ド ラ イバや LED ド ラ イバ、 リ モー ト I/O ポー ト 、 RAM、 EEPROM、 リ アル タ イム ク ロ ッ ク、 A/D コ ンバー タ や D/A コ ンバー タ な ど。•
ア プ リ ケーシ ョ ン固有の回路。 ラ ジオやビデオ ・ シ ステムのデジ タ ル ・ チ ューニング や信号処理、 温度センサー、 スマー ト カー ド など。 フ ィ リ ッ プ ス ・ セ ミ コ ンダ ク タ ーズ (現在の NXP セ ミ コ ンダ ク タ ーズ) は、 これらのシ ステムの類似点に着目 し 、 回路 を単純化、 ハー ド ウ ェ アの利用効率 を高め、 よ り よい設計 を実現する ための IC 間制御を行 う シン プルな 2 線式双方向バスを開発し ま し た。 このバ スを 「Inter IC バス」 ま たは 「I2C バス」 と 呼びます。 すべての I2C バス対応デバ イ スに はチ ッ プ上に イ ン タ ー フ ェ ース (オ ン チ ッ プ イ ン タ ー フ ェ ース) が搭載 さ れてい るので、 I2C バス と 直接相互に通信で き ます。 こ れに よ り デジ タ ル制御回路設計の イ ン タ ー フ ェ ー スに関する多 く の問題が解決でき ます。 I2C バス には次のよ う な特徴があ り ます。•
必要なバス ラ イ ンは 2 本のみ - シ リ アル ・ デー タ ラ イ ン (SDA) と シ リ アル ・ ク ロ ッ ク ラ イ ン (SCL)。•
バスに接続 さ れてい る各デバ イ スを固有のア ド レ スに よ っ て指定でき 、常に シ ン プル なマス タ / スレーブの関係で通信を行います - マス タ はマス タ ト ラ ン ス ミ ッ タ ま た はマス タ レ シーバと し て動作し ます。•
真のマルチマス タ バス - 複数のマス タ が同時にデー タ 転送を開始し た場合のデー タ の破壊を防止する衝突検出 と 調停機能を備えます。•
Standard-mode (ス タ ンダー ド モ ー ド :Sm) では最大 100kbit/s、 Fast-mode ( フ ァ ー ス ト モ ー ド :Fm) では最大 400 kbit/s、 Fast-mode Plus (フ ァ ース ト モー ド プ ラ ス :Fm+) で は最大 1Mbit/s、 High-speed (ハ イ ス ピ ー ド モ ー ド ;Hs-mode) で は最大 3.4Mbit/s の 8 ビ ッ ト 単位シ リ アル双方向デー タ 転送が可能。•
Ultra Fast-mode (ウル ト ラ フ ァ ース ト モー ド :UFm) では最大 5Mbit/s の 8 ビ ッ ト 単 位、 シ リ アル片方向デー タ 転送が可能。•
オ ン チ ッ プ ・ フ ィ ル タ リ ングに よ っ てバスデー タ ラ イ ンのスパ イ ク を除去。•
同一バスに接続可能な IC の数をは、 バスの最大容量で制限さ れます。 条件に よ り 拡 張可能。7.2 章を参照。 I2C バス ア プ リ ケーシ ョ ンの例 を下図 (図 1) に示 し ま す。2.1 設計担当者に と っ ての メ リ ッ ト
I2C バス対応のデバ イ ス を使用する こ と で、 機能ブ ロ ッ ク 図の作成か ら 試作ま でのシ ス テ ム設計過程の時間を短縮でき ます。 ま た追加回路な し で I2C バスへ直接接続で き る ため、 試作シ ステムの変更やア ッ プグ レー ド も簡単にデバ イ スの接続、取 り 外 し だけ で実行でき ます。 特に設計担当者に と っ て役立つ I2C バス対応 IC の機能は …•
ブ ロ ッ ク図の核機能ブ ロ ッ クが実際の IC に対応し ている ため、 ブ ロ ッ ク図から最終 的な配線図を短時間で作成可能。•
I2C バス イ ン タ ーフ ェ ースがすでに チ ッ プ に内蔵 されてい るため、直接接続が可能 (バ ス イ ン タ ー フ ェ ースの設計が不要)。•
ア ド レ ス指定お よびデー タ 転送プ ロ ト コ ルが統合 さ れてい るので、シ ステムを ソ フ ト ウ ェ ア で定義可能。•
多 く の場合、同 じ タ イ プのデバ イ スを様々な異なる ア プ リ ケーシ ョ ンに再利用する こ と が可能。•
機能ブ ロ ッ ク と し ての I2C 対応デバ イ スの再利用が可能。 繰 り 返 し 使 う こ と で設計担 当者の習熟度が向上 し 、 設計に要する時間を短縮でき ます。 図 1. I2C バス ア プ リ ケー シ ョ ンの例 I2C A/D or D/A Converters I2C General Purpose I/O Expanders I2C LED Controllers VDD4 I2C Repeaters/ Hubs/Extenders I2C DIP Switches VDD5 I2C Slave VDD0 VDD1 PCA9541 I2C Master Selector/ Demux I2C Multiplexers and Switches VDD2 I2C Port via HW or Bit Banging I2C Bus Controllers MCUs 8 MCUs I2C Serial EEPROMs LCD Drivers (with I2C) I2CReal Time Clock/ Calendars VDD3 I2C Temperature Sensors Bridges (with I2C) SPI UART USB 002aac858
•
バス上の他の回路に影響を与える こ と な く 、 シ ステムへのデバ イ スを追加 ・ 削除が可 能。•
障害診断 と デバ ッ グの実行が簡単 - 不具合の ト レースが容易。•
ソ フ ト ウ ェ ア ・ モ ジ ュールを再利用可能な ラ イ ブ ラ リ と し て組み立てる手法で、 ソ フ ト ウ ェ アの開発期間を短縮 こ れ らの メ リ ッ ト に加え、 幅広い互換性を有 し てい る I2C バスの CMOS IC は、 携帯機器 やバ ッ テ リ ー式のシ ステムなど で特に役立つ様々な機能をデザ イナに提供 し ます。•
超低電流消費•
優れた ノ イズ耐性•
幅広い電源電圧範囲•
幅広い動作温度範囲2.2
メ ー カーに と っ ての メ リ ッ ト
I2C バス対応 IC はデザ イナ を 支援する だけ で な く 、 設備機器の メ ー カーに も 幅広い範囲 で数多 く の メ リ ッ ト を も た ら し ます。•
シ ン プルな 2 線式シ リ アルであ る ため、 ワ イヤの接続本数が最小限で済みます。 IC のピ ン数 と プ リ ン ト 基板上の配線を少な く し 、よ り 小型で低価格のプ リ ン ト 基板を実 現。•
I2C バス プ ロ ト コルに準拠 し て動作するため、ア ド レ ス デコ ーダや他の 「グルーロジ ッ ク」 が不要。•
I2C バスはマルチマ ス タ バス であ る ため、 機器外部か ら マ ス タ を 接続 し て短時間で テ ス ト や調整を行 う こ と が可能。•
様々な リ ー ド レ ス ・ パ ッ ケージ で提供 ― さ ら なる省スペース化をサポー ト こ れ らの メ リ ッ ト はほんの一部に過ぎません。 こ れに加え、 I2C 対応デバ イ スの利用で柔 軟なシ ステム設計が可能に な り 、派生品の開発や最新技術対応を素早行えます。 た と えば 基本モデルをベースに し た製品 フ ァ ミ リ 展開や、新型や機能強化モデル ( メ モ リ や リ モ コ ンの追加など) を開発する場合 も、 適切なデバ イ ス をバス上に接続する だけです。 よ り 大 容量の ROM が必要 と な っ た場合で も、NXP の製品フ ァ ミ リから大容量 ROM を実装し た マ イ ク ロ コ ン ト ロー ラ を選択する だけ で済みます。古い IC を新し い IC に取り 替える こ と でデバ イ スへの新機能を追加 し 、 パ フ ォーマン スを高める こ と も可能です。2.3 デバイ ス (IC) 設計担当者の メ リ ッ ト
マ イ ク ロ コ ン ト ロー ラの設計担当者には、 常に少ピ ン化が求め られています。 I2C を使え ば、 個別のア ド レス信号やチ ッ プ イ ネーブル (チ ッ プ セレ ク ト ) 信号な し に、 多様なペ リ フ ェ ラルを接続でき ます。 I2C イ ン タ ー フ ェ ースに対応 し たマ イ ク ロ コ ン ト ロー ラは市場 で有利です。なぜな ら既に多 く のペ リ フ ェ ラルデバ イ スが こ の イ ン タ ー フ ェ ースを持 っ て お り 、 こ れ ら を有効に使 う こ と ができ る ためです。3. I
2C バス プ ロ ト コ ル
3.1 I
2C バス プ ロ ト コ ル - Standard-mode (ス タ ン ダー ド モー ド : Sm) 、
Fast-mode (フ ァ ース ト モー ド : Fm)、 Fast-mode Plus (フ ァ ース ト モー
ド プ ラ ス : Fm+)
2 本の線、 シ リ アルデー タ (SDA) と シ リ アル ク ロ ッ ク (SCL) に よ っ て、 バスに接続 さ れたデバ イ ス間での情報の転送を行い ます。各デバ イ スはそれぞれ固有のア ド レ スで認識 さ れ (マ イ ク ロ コ ン ト ロー ラ、 LCD ド ラ イバ、 メ モ リ 、 キーボー ド イ ン タ ー フ ェ ースな ど)、 その機能に応 じ て ト ラ ン ス ミ ッ タ (送信側) やレ シーバ (受信側) と し て動作 し ま
す。 た と えば LCD ド ラ イバはレ シーバのみの機能を、 メ モ リ はデー タ の ト ラ ン ス ミ ッ タ / レ シ ーバ両方の機能 を備え ま す。 デー タ 転送時の各デバ イ スは、 ト ラ ン ス ミ ッ タ お よび レ シーバの機能に加え、 マス タ ま たはスレーブ と し ての役割を実行 し ます。 マス タ デバ イ スは、 バス上でデー タ転送を開始 し、 転送を行 う ためのク ロ ッ ク信号を出力し ます。 マス タ 側か ら ア ド レ ス指定 さ れたデバ イ スはスレーブ と な り ます。 I2C バスはマルチマ ス タ バス で ある ため、 バスの制御を 行 う デバ イ ス を 複数接続する こ と が可能です。 一般にマ イ ク ロ コ ン ト ローラが、 マス タ デバ イ ス と な り ま す。 例 と し て、 2 つのマ イ ク ロ コ ン ト ロー ラ間のデー タ 転送を説明 し ます (図 2参照)。 表 1. I2C バス - 用語解説 用語 説明 ト ラ ン ス ミ ッ タ バスにデー タ を送信するデバイ ス レ シーバ バスか らデー タ を受信するデバイ ス マス タ 転送の開始 と 終了を行 う 。 転送時の ク ロ ッ ク信号を出力 スレーブ マス タ か ら ア ド レ ス指定 さ れるデバイ ス マルチマス タ メ ッ セージ を壊す こ と な く 、 複数のマス タ が同時にバスを制御 し ます 調停 (アービ ト レー シ ョ ン) 複数のマス タ か ら同時にバス制御が試行 さ れた と き に、 メ ッ セージ を壊す こ と な く 1 つのマス タ のみに制御を認める手順 同期化 複数のデバイ ス間の ク ロ ッ ク信号を同期する手順 図 2. 2 つのマ イ ク ロ コ ン ト ロ ー ラ を使用する I2C バス構成の例 mbc645 SDA SCL MICRO -CONTROLLER A STATIC RAM OR EEPROM LCD DRIVER GATE ARRAY ADC MICRO -CONTROLLER B
こ の例では、 I2C バス上のマ ス タ / ス レ ーブの関係 と ト ラ ン ス ミ ッ タ / レ シーバの関係を 説明 し てい ます。 こ れ らの関係は永続的な ものではな く 、 その時点におけ るデー タ の転送 方向に よ っ て変化 し ます。 デー タ 転送の流れは次の と お り です。 1. マ イ ク ロ コ ン ト ロー ラ A がマ イ ク ロ コ ン ト ロー ラ B に情報 を送信する場合。 – マ イ ク ロ コ ン ト ロー ラ A (マ ス タ ) が、 マ イ ク ロ コ ン ト ロー ラ B (ス レ ーブ) の ア ド レ スを指定 – マ イ ク ロ コ ン ト ロー ラ A (マ ス タ ト ラ ン ス ミ ッ タ ) が、 マ イ ク ロ コ ン ト ロー ラ B (スレーブ レ シーバ) にデー タ を送信 – マ イ ク ロ コ ン ト ロー ラ A が、 転送 を終了 2. マ イ ク ロ コ ン ト ロー ラ A がマ イ ク ロ コ ン ト ロー ラ B か ら 情報 を受信する場合。 – マ イ ク ロ コ ン ト ロー ラ A (マ ス タ ) が、 マ イ ク ロ コ ン ト ロー ラ B (ス レ ーブ) の ア ド レ スを指定 – マ イ ク ロ コ ン ト ロー ラ A (マ ス タ レ シーバ) が、 マ イ ク ロ コ ン ト ローラ B (ス レ ー ブ ト ラ ン ス ミ ッ タ ) か らのデー タ を受信 – マ イ ク ロ コ ン ト ロー ラ A が、 転送 を終了 こ の受信の例の場合で も、 転送 タ イ ミ ン グ と 終了はマス タ (マ イ ク ロ コ ン ト ローラ A) が 生成 し ます。 複数のマ イ ク ロ コ ン ト ローラが I2C バスに接続 さ れた環境では、 複数のマ ス タ が同時に デー タ 転送を開始する場合があ り ます。こ のよ う な状況で混乱が生 じ ない よ う にする ため に、 調停の手順が定義 さ れてい ます。 こ の手順は、 I2C バスへのすべての イ ン タ ー フ ェ ー スがワ イヤー ド AND 接続さ れている こ と を利用し ています。 複数のマス タ がバスへの情報の転送を試行 し た場合、 一方のマス タが 「1」 を出力、 他方 のマス タ が 「0」 を出力し た時に、 「1」 を出力 し た側が制御を失いま す。 調停が行われて い る間の ク ロ ッ ク信号は、複数のマス タ が出力する こ と に な り ますが、SCL 線のワ イヤー ド AND 接続を用いた同期が行われます (調停の詳細は 3.1.8 章を参照)。 I2C バスの ク ロ ッ ク 信号は常にマ ス タ デバ イ スが出力 し ます。 それぞれのマ ス タは、 デー タ を転送する際に ク ロ ッ ク を出力 し ます。 マス タ が出力する ク ロ ッ ク信号を、低速スレー ブや調停中の他のマス タ が LOW に保持する こ と で引き伸ばすこ とがで きま す。 シ ステム構成 と その役割に よ る、 I2C バス仕様の必須/オ プシ ョ ン機能 を下表 (表 2) に 示 し ます。
[1] スレー ブ と し て機能す る マス タ に も 該当 [2] ク ロ ッ ク ス ト レ ッ チは、 一部のスレー ブが備える機能です。 シ ステムに ク ロ ッ ク を ス ト レ ッ チ (SCL を LOW にホール ド ) で き る ス レー ブがない場合、 こ れを処理で き る よ う に マ ス タ を設計す る必要はあ り ませ ん。 [3] 「ビ ッ ト バンギン グ」 ( ソ フ ト ウ ェ ア エ ミ ュ レーシ ョ ン) マルチマス タ シ ステムの場合はス タ ー ト バイ ト を 用い る こ と ができ ます。3.1.15 章参照。 3.1.1 SDA と SCL SDA と SCL はど ち ら も 双方向の信号 ラ イ ン で、電流源ま たはプルア ッ プ抵抗を 通 じ て プ ラ スの電源電圧に接続 さ れま す (図 3) 。 バスが フ リ ー状態の場合、 ど ち ら の ラ イ ン も HIGH に な り ます。 ワ イ ヤー ド AND での接続であ る ため、 デバ イ スの出力段はオープ ン ド レ イ ン ま た は オ ー プ ン コ レ ク タ で な く ては な り ま せ ん。 Standard-mode で は最大 100kbit/s、 Fast-mode では最大 400kbit/s、 Fast-mode Plus では最大 1Mbit/s、 High-speed では最大 3.4Mbit/s のデー タ 転送が可能です。バスに接続でき る イ ン タ ー フ ェ ースの数は、 バスの静電容量に よ っ て制限 さ れます。 単一のマス タ で、バス上に ク ロ ッ ク ス ト レ ッ チを行 う デバ イ スが存在 し なければ、 マス タ の SCL 出力を プ ッ シ ュ プル駆動に し て も構いません。 表 2. I2C バス プ ロ ト コル機能の適用について M = 必須、O = オ プ シ ョ ン、n/a = 適用不可 機能 構成 単一マス タ マルチ マス タ ス レーブ[1] ス タ ー ト コ ンデ ィ シ ョ ン M M M ス ト ッ プ コ ンデ ィ シ ョ ン M M M ア ク ノ リ ッ ジ M M M 同期化 n/a M n/a 調停 n/a M n/a ク ロ ッ ク ス ト レ ッ チ O[2] O[2] O 7 ビ ッ ト ス レ ーブ ア ド レ ス M M M 10 ビ ッ ト ス レ ーブ ア ド レ ス O O O ゼネ ラ ル コールア ド レ ス O O O ソ フ ト ウ ェ ア リ セ ッ ト O O O ス タ ー ト バイ ト n/a O[3] n/a デバイ ス ID n/a n/a O VDD2、 VDD3 はデバイ ス に依存 (た と え ば 12 V) 図 3. 電源電圧が異なるデバイ スで同 じ バスを共有
CMOS CMOS NMOS BIPOLAR
002aac860 VDD1 = 5 V ± 10 % Rp Rp SDA SCL VDD2 VDD3
3.1.2 SDA と SCL の論理レ ベル I2C バスには様々な製造テ ク ノ ロ ジ (CMOS、 NMOS、 バイ ポー ラ) を 基盤に し たデバ イ スを接続する ため、 論理 「0」 (LOW) と 「1」 (HIGH) は固定ではな く 、 使われる VDD のレベル依存 と し てい ます。入力 リ フ ァ レ ン ス ( 基準 ) レベルは VDD の 30% および 70%、 VIL は 0.3VDD、 VIH は 0.7VDD に設定 さ れます。図 38 の タ イ ミ ング図を参照 し て く だ さ い。 一部の古いデバ イ スの入力 レベルは、 固定の VIL = 1.5V と VIH = 3.0V と な っ てい ますが、すべての新 し いデバ イ スは 30% と 70% の仕様に準拠し なければな り ません。電 気的特性仕様の詳細は6 章を参照し て く だ さ い。 3.1.3 デー タ の有効性 ク ロ ッ クが HIGH 期間にあ る と き、 SDA ラ イ ンのデー タ は安定し ていなければな り ませ ん。 デー タ ラ イ ンの HIGH ま たは LOW の状態の変更は、 SCL ラ イ ンのク ロ ッ ク信号が LOW の場合にのみ可能で す (図 4)。 転送 さ れるデー タ ビ ッ ト 毎に ク ロ ッ クパルスが 1 回 生成 さ れます。 3.1.4 ス タ ー ト (START) コ ンデ ィ シ ョ ン と ス ト ッ プ (STOP) コ ンデ ィ シ ョ ン すべての ト ラ ンザ ク シ ョ ンは START (S) で始ま り、 STOP (P) で終了 し ま す (図 5)。 SCL が HIGH の期間の、SDA ラ イ ンの HIGH か ら LOW への変化を ス タ ー ト コ ンデ ィ シ ョ ン、 LOW から HIGH への変化をス ト ッ プ コ ンデ ィ シ ョ ン と定義 し ま す。 ス タ ー ト / ス ト ッ プ コ ンデ ィ シ ョ ンは、 常に マス タ が生成し ます。 ス タ ー ト コ ンデ ィ シ ョ ンの後、 バスは ビジ ー状態 と な り ます。 ス ト ッ プ コ ンデ ィ シ ョ ンの後、 一定の時間が経過 する と バスはフ リ ー状態と な り ます。 バスのフ リ ー状況は6 章で規定さ れます。 ス ト ッ プ コ ン デ ィ シ ョ ン ではな く リ ピ ー ト ス タ ー ト コ ン デ ィ シ ョ ン (repeated START condition : Sr) が生成 され る と、 バスはビ ジー状態のま ま置かれます。 機能の点におい て ス タ ー ト コ ンデ ィ シ ョ ン (S) と リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) は全 く 同じ です。 以降、 本マニ ュ アルでは特に 「Sr」 と 記載し ない限り 、 「S」 はス タ ー ト コ ンデ ィ シ ョ ン と リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ンの両方を意味し ます。 図 4. I2C バス でのビ ッ ト 転送 mba607 data line stable; data valid change of data allowed SDA SCL 図 5. ス タ ー ト コ ンデ ィ シ ョ ン と ス ト ッ プ コ ンデ ィ シ ョ ン mba608 SDA SCL P STOP condition S START condition
バス イ ン タ ーフ ェ ースがハー ド ウ ェ ア で実装 さ れていれ るデバ イ スでは、 ス タ ー ト コ ン デ ィ シ ョ ンやス ト ッ プ コ ンデ ィ シ ョ ンの検出はど ち ら も容易で し ょ う 。 し か し た と えば、 専用の イ ン タ ー フ ェ ース を備えてい ないマ イ ク ロ コ ン ト ロー ラが こ れを認識する ために は、 ク ロ ッ ク 期間ご と に最低 2 回の SDA ラ イ ンのサン プ リ ング を実行し なければな り ま せん。 3.1.5 バイ ト ・ フ ォ ーマ ッ ト SDA ラ イ ン上のすべてのバ イ ト は、 8 ビ ッ ト 長で なければな り ません。 1 回の転送で送る こ と ができ るバ イ ト 数に制限はあ り ません。各バ イ ト には必ず、 ア ク ノ リ ッ ジ ビ ッ ト が続 き ます。デー タ 転送は、MSB フ ァ ース ト ( 最上位ビ ッ ト から最下位ビ ッ ト の順で転送 ) で 行われます (図 6)。 スレーブ側はマス タ を強制的に待機状態 と する ために ク ロ ッ ク ラ イ ン SCL を LOW に保持する こ と ができ ます。 た と えばスレーブが自身の内部割り 込み処 理など、 他の機能 を実行する間、 次の送信ま たは受信の準備が出来る ま で、 マス タ を待た せる こ と ができ ます. スレーブ内で次のデー タ バ イ ト を処理する準備が整 う と 、 ク ロ ッ ク ラ イ ン SCL を リ リ ース し デー タ 転送を継続し ます。 3.1.6 ア ク ノ リ ッ ジ (ACK) と ノ ッ ト ・ ア ク ノ リ ッ ジ (NACK) ア ク ノ リ ッ ジは、各バ イ ト の後に付け られます。 ア ク ノ リ ッ ジ ビ ッ ト は受信側か ら送信側 に対 し 、 バ イ ト 受信の成功 と、 次のバ イ ト の送信 を し て構わない こ と を通知 し ます。 ア ク ノ リ ッ ジの 9 番目のク ロ ッ クパルスを含め、 すべてのク ロ ッ クパルスはマス タ が出力し ます。 ア ク ノ リ ッ ジ信号は次のよ う に定義 さ れます : ア ク ノ リ ッ ジ ク ロ ッ クパルスの期間、 ト ラ ン ス ミ ッ タ は SDA ラ イ ン を リ リ ース し ます. レ シーバは SDA ラ イ ン を LOW に引っ張 り 、 ク ロ ッ クパルスが HIGH の間は、 LOW の状態を保持し ます (図 4)。 セ ッ ト ア ッ プ時 間 と ホール ド 時間は規定通 り であ る こ と が必要です (図 6参照)。 9 番目の ク ロ ッ ク パルス の間に SDA が HIGH であ る場合 を、 ノ ッ ト ・ ア ク ノ リ ッ ジ (NACK) と 定義し ます。 マス タ はス ト ッ プ コ ンデ ィ シ ョ ン を生成し て転送を中止するか、 リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を生成 し て新た な転送を開始で き ます。 NACK を発生 さ せる条件は次の通 り 。 1. 転送 さ れたア ド レ スのレ シーバがバスに存在 し ない.つ ま り ア ク ノ リ ッ ジ で応答する デバ イ スがない場合。 2. レ シ ーバが何 ら かの リ アル タ イム機能 を 実行中で マ ス タ と の通信を 行 え る状態で は な く 、 送信 も受信 も でき ない場合。 3. 転送の間、 受信 し たデー タ や コ マ ン ド を レ シーバが理解で き ない場合。 4. 転送の間、 レ シーバがそれ以上デー タ バ イ ト を 受信で き ない場合。 5. マ ス タ レ シーバがス レ ーブ ト ラ ン ス ミ ッ タ に対 し 転送の終了を 伝え る場合。 図 6. I2C バス でのデー タ 転送 S or Sr Sr or P SDA SCL MSB 1 2 7 8 9 1 2 3 to 8 9 ACK ACK 002aac861 START or repeated START condition STOP or repeated START condition acknowledgement
signal from slave
byte complete, interrupt within slave
clock line held LOW while interrupts are serviced
P
Sr acknowledgement signal from receiver
3.1.7 ク ロ ッ ク 同期 バスが フ リ ー状態の と き 、 2 つのマス タ が同時に転送を開始する と 、 ど ち らのマス タ がバ スの制御権を得、転送を完遂でき る よ う にするのかを決定 し なければな り ません。 こ れを 行 う のが ク ロ ッ ク同期 と 調停です。単一マス タ のシ ステムであれば、 ク ロ ッ ク同期 と 調停 は必要あ り ません。 ク ロ ッ ク同期は、SCL ラ イ ンの I2C イ ン タ ー フ ェ ースのワ イ ヤー ド AND 接続を使っ て実 行 さ れます。SCL ラ イ ンが HIGH から LOW へ変化する と、接続 されているマス タは LOW 期間の カウ ン ト を開始、 一定の時間 SCL ラ イ ン を LOW 状態に保持し た後に HIGH へと 変化 さ せます (図 7)。 し か し 、 も し 別のマス タ がまだ ク ロ ッ クの LOW を保持し ている と 、 SCL は LOW のま ま と な り ます。 このよ う に SCL ラ イ ンは LOW 期間が最も長いマ ス タ に よ っ て LOW 状態が保持さ れる こ と に な り ます。 LOW 期間が短いマス タ は HIGH への変化を待つ状態に置かれます。 接続さ れてい るすべてのマス タ の LOW 期間が完了する と、 ク ロ ッ ク ラ イ ンはリ リ ース さ れ、 HIGH 状態に な り ます。 これでマス タ の内部ク ロ ッ ク と SCL ラ イ ンの状態が同じ と な り 、 すべてのマス タ が HIGH 期間のカウ ン ト を開始し ます。 SCL ラ イ ンは、 HIGH 期間 が最 も早 く 完了 し たマス タ に よ っ て再度 LOW にな り ま す。 こ のよ う に し て SCL ク ロ ッ クの同期が行われま す。 結果 と し て SCL の LOW 期間はク ロ ッ ク LOW の期間が最も長いマス タ に よ っ て、 HIGH 期間はク ロ ッ ク HIGH の期間が最 も短い マス タ に よ っ て決ま り ます。 3.1.8 調停 調停 も、 ク ロ ッ ク同期 と 同様に、 シ ステム内で複数のマス タ を使用 し てい る場合にのみ必 要 と なる プ ロ ト コ ルです。調停処理に スレーブは関与 し ません。 マス タ が転送を開始する のは、 バスが フ リ ーの場合のみです。 2 つのマス タ がス タ ー ト コ ンデ ィ シ ョ ンの最小ホー ル ド 時間 (tHD;STA) 内に ス タ ー ト コ ンデ ィ シ ョ ン を生成 し た場合、 こ れはバス上では有効 なス タ ー ト コ ンデ ィ シ ョ ン と な っ て し まい ます。こ の後ど ち らのマス タ の転送を完遂 さ せ るかを決定する ため、 調停が必要に な り ます。 調停はビ ッ ト 単位で行われ、 SCL が HIGH のと き、 各マス タ は SDA のレベルが自分の送 信 し た内容 と 一致するかど う かを チ ェ ッ ク し ます。こ のプ ロ セスが完了する ま でに た く さ んのビ ッ ト 転送が行われる こ と も考え られます。最終的に ど ち らのマス タ も エ ラー (送信 内容 と と SDA 状態の不一致) を検出 し なかっ た場合には、 ど ち らのマス タ も同一の転送 を行な っ てい た と い う こ と に な り ます。 HIGH の送信を行な っ ているに も関わらず SDA が LOW であ る こ と を検出する と 、 その時点でそのマス タ は調停に失敗し た こ と を認識 し 、 SDA 出力を オ フに し ます。 も う 1 つのマス タ は転送処理を続行し ます。 図 7. 調停中の ク ロ ッ ク同期 CLK 1 CLK 2 SCL counter reset wait state start counting HIGH period mbc632
調停の プ ロ セ スで情報が失われる こ と はあ り ません。 調停に失敗 (ロ ス ト ) し たマス タ は、 ロ ス ト が発生 し たバ イ ト の最後ま で ク ロ ッ クパルスを出力する こ と ができ ます。調停 に失敗 し たマス タ は、 バスが フ リ ー状態にな っ た後、 転送 ( ト ラ ンザ ク シ ョ ン) を再実行 し な く てはな り ません。 スレーブ機能 も兼ねてい る マス タ が、 ア ド レ ス指定の段階で調停に失敗 し た場合、調停に 成功 し た側のマス タ が、 こ の失敗 し た側のア ド レ ス指定を行 う こ と も可能です。 こ のため 調停に失敗 し た側のマ ス タ は、 ただ ち にス レーブ モ ー ド に切 り 替わ ら な く てはな り ませ ん。 マス タ が 2 つの場合の調停プ ロ セスを下図 (図 8) に示 し ま す。 バスに接続さ れてい る マ ス タ の数に よ っ て、 こ のプ ロ セ スはよ り 多 く のマス タ 間で実行 さ れる こ と も あ り ま す。 DATA1 を出力するマ ス タの、 内部デー タ レ ベル と実際の実際の SDA ラ イ ンのレ ベルが 違 っ た時に、 DATA1 出力はオ フに な り ます. 調停に成功し たマス タ のデー タ 転送は影響 さ れません。 I2C バスの制御権 を得るかど う かは、 それぞれのマ ス タ が送信する ア ド レ ス と デー タ のみ に よ っ て決ま る ため、 セン タ ーマス タ や予め決め られた優先順位などは存在 し ません。 調停プ ロ セスの進行中に、いずれかのマス タ が リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ンやス ト ッ プ コ ンデ ィ シ ョ ンが生 じ た場合、定義 さ れてい ない状態 と な り ます。具体的には次の組合 せの場合に、 未定義の状態が発生 し ます。
•
マス タ 1 がリ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を送信、マス タ 2 がデー タ ビ ッ ト を送信•
マス タ 1 がス ト ッ プ コ ンデ ィ シ ョ ン を送信、 マス タ 2 がデー タ ビ ッ ト を送信•
マス タ 1 がリ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を送信、 マス タ 2 がス ト ッ プ コ ンデ ィ シ ョ ン を送信 図 8. マス タ が 2 つの場合の調停プ ロ セス msc609 DATA 1 DATA 2 SDA SCL Smaster 1 loses arbitration DATA 1 SDA
3.1.9 ク ロ ッ ク ス ト レ ッ チ ト ラ ンザ ク シ ョ ン を一時停止 さ せる場合、 SCL ラ イ ン を LOW に保持する ク ロ ッ ク ス ト レ ッ チが行われます。 SCL ラ イ ンがリ リ ース さ れる (再度 HIGH に なる) ま で、 ト ラ ン ザ ク シ ョ ン を続行する こ と はでき ません。 ク ロ ッ ク ス ト レ ッ チはオ プ シ ョ ン です。実際の 多 く のスレーブ ・ デバ イ スには SCL ド ラ イバ (訳注 : SCL に対する出力回路) は実装さ れてお らず、 ク ロ ッ ク ス ト レ ッ チを行 う こ と はあ り ません。 デー タ バ イ ト の各ビ ッ ト の受信を高速で実行でき るデバ イ スで も、受信 し たバ イ ト の格納 や送信 さ れる別のバ イ ト の準備には若干の時間が必要に なるか も知れません。 こ のため、 スレーブはバ イ ト 転送 と ア ク ノ リ ッ ジの後に SCL ラ イ ン を LOW に保持する こ と で、 次 のバ イ ト 転送の準備がで き る ま で マス タ を強制的に待機状態に するハン ド シ ェ ー ク処理 が行えます (図 7)。 ビ ッ ト レ ベルでは、 た と えばマ イ ク ロ コ ン ト ロー ラ のよ う な デバ イ スは各 ク ロ ッ ク の LOW 期間 を延ばすこ と でバス ・ ク ロ ッ ク を遅 く する こ と がで き ま す。 こ の結果、 マ ス タ の転送速度は こ の (スレーブ) デバ イ スの内部的な動作速度に合わせて調整 さ れる こ と に なる ます。 Hs モ ー ド の場合、 こ のハン ド シ ェ ー ク 処理はバイ ト レ ベルでのみ使われます (5.3.2 章参 照)。 3.1.10 スレ ーブ ア ド レ ス と R/W ビ ッ ト デー タ 転送の形式を下図 (図 9) に示 し ま す。 ス タ ー ト コ ンデ ィ シ ョ ン (S) の後、 スレー ブ ア ド レ スが送信 さ れます。 こ のア ド レスは 7 ビ ッ ト 長で、 8 ビ ッ ト 目にデー タ 転送の方 向を示すビ ッ ト (R/W) が続き ます。 「0」 は、 送信 (WRITE、 書き込み) を、 「1」 はデー タ の リ ク エ ス ト (READ、 読み出 し) を示し ます (図 10)。 デー タ の転送は必ずマス タ が 生成する ス ト ッ プ コ ンデ ィ シ ョ ン (P) で終了し ますが、 マス タ が続けて通信を行 う 場合 は、 ス ト ッ プ コ ンデ ィ シ ョ ンではな く リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) を生成し て 別のスレーブのア ド レ スを指定 し ます。 次のよ う なデー タ 転送 フ ォーマ ッ ト を使 う こ と ができ ます : 図 9. デー タ 転送。 開始か ら終了ま で S 1 - 7 8 9 1 - 7 8 9 1 - 7 8 9 P STOP condition START condition DATA ACK DATA ACK ADDRESS R/W ACK SDA SCL mbc604 図 10. ス タ ー ト プ ロ セス後の最初のバイ ト mbc608 R/W LSB MSB slave address
マス タ ト ラ ン ス ミ ッ タ か ら スレーブ レ シーバに送信。 転送方向は不変 (図 11)、 スレーブ レ シーバは各バ イ ト に ア ク ノ リ ッ ジ を返 し ます。
•
1 バ イ ト 目の後、 ス レ ーブか ら マ ス タへ読み出 し (図 12)。 最初のア ク ノ リ ッ ジ でマ ス タ ト ラ ン ス ミ ッ タ はマス タ レ シーバに、スレーブ レ シーバはスレーブ ト ラ ン ス ミ ッ タ に な り ます。 最初のア ク ノ リ ッ ジはスレーブに よ っ て生成 さ れますが、 その後のア ク ノ リ ッ ジはマス タ に よ っ て生成さ れます。ス ト ッ プ コ ンデ ィ シ ョ ンはマス タ に よ っ て生成さ れ、 その直前には ノ ッ ト ・ ア ク ノ リ ッ ジ (A) が (マス タ か ら ス レー ブへ) 返 さ れます。•
組合せ フ ォーマ ッ ト (図 13) 。 転送の方向を変える場合、 改めてス タ ー ト コ ンデ ィ シ ョ ン と R/W ビ ッ ト を反転さ せたスレーブ ア ド レ スが送信さ れます。 マス タ レ シー バが リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を送信する直前には ノ ッ ト ・ ア ク ノ リ ッ ジ (A) が返 さ れます。 備考 1. 組合せの フ ォ ーマ ッ ト は、 た と えばシ リ アル メ モ リ の コ ン ト ロールに使用で き ます。 最初のデー タ バ イ ト に よ っ て内部 メ モ リ の位置を指定。ス タ ー ト コ ンデ ィ シ ョ ン と ス レーブ ア ド レ スを改めて送出 し た後に、 デー タ の転送を行い ます。 2. (連続 し たア ク セス を 行 う ために) 前回指定 し た メ モ リ 位置を 記憶 し 、 (その後のア ク セス位置情報の) オー ト イ ン ク リ メ ン ト ま たはデ ィ ク リ メ ン ト を行 う かど う かは、 デ バ イ スの設計担当者が判断 し ます。 3. シーケ ン ス内の各バ イ ト には、 A ブ ロ ッ ク ま たは A ブ ロ ッ ク と し て示 さ れる ア ク ノ リ ッ ジ ビ ッ ト が続き ます。 4. I2C バス準拠デバ イ スは、 ス タ ー ト コ ンデ ィ シ ョ ン ま たは リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を受信する と 、た と え こ れ らのス タ ー ト コ ンデ ィ シ ョ ンが フ ォーマ ッ ト と し て 適切でない場所で発生 し た と し て も、 バス ・ ロ ジ ッ ク を リ セ ッ ト し 、 次に スレーブ ア ド レ スを受け る よ う に し ておかなければな り ません。 5. ス タ ー ト コ ンデ ィ シ ョ ンの直後に ス ト ッ プ コ ンデ ィ シ ョ ンが続 く 空の メ ッ セージ は 不正な フ ォーマ ッ ト です。 し か し 、 多 く のデバ イ スが こ のよ う な状況で も適切に動作 する よ う にデザ イ ン さ れてい ます。 6. バスに接続 さ れてい る各デバ イ スは、 固有のア ド レ スに よ っ て指定で き ます。 通常は 1 対 1 のマ ス タ / ス レ ーブの関係でや り と り が行われますが、 た と えば同 じ ア ド レ ス を持つ複数のスレーブに同時に受信 ・ 応答 さ せるグループ ブ ロー ド キ ャ ス ト を行 う こ と も可能です。 こ の方法は、 PCA9546A のよ う なバススイ ッ チを介し て、 4 つのチ ャ ン ネルに接続さ れた同一ア ド レ ス を持つ複数のデバイ スに対する設定を一度に行 う よ う な場面で役立ち ます。 こ の場合、 各スレーブか らのア ク ノ リ ッ ジ を個別に判断で き ない ため、プ ログ ラ ミ ング結果の確認には個々のチ ャネル 1 つづつ ON に し てデバ イ スの読み出 し を行い ます。詳細はそれぞれのデバ イ スのデー タ シー ト を参照 し て く だ さ い。 図 11. マス タ ト ラ ン ス ミ ッ タ に よ る 7 ビ ッ ト ア ド レ スのスレーブ レ シーバの指定(転送方向は 変化な し ) mbc605 A/A A '0' (write) data transferred (n bytes + acknowledge)A = acknowledge (SDA LOW) A = not acknowledge (SDA HIGH) S = START condition
P = STOP condition R/W
from master to slave
from slave to master
DATA DATA
A SLAVE ADDRESS
3.1.11 10 ビ ッ ト ア ド レ ス指定 10 ビ ッ ト ア ド レ ス 指定に よ っ て、 使用可能な ア ド レ スの数 を 増やすこ と がで き ます。 7 ビ ッ ト ア ド レ ス と 10 ビ ッ ト ア ド レ スのデバイ スは同じ I2C バスに接続する こ と がで き 、 バスのすべてのスピー ド モー ド で使用でき ます。 し か し 現在の と こ ろ 10 ビ ッ ト ア ド レ ス を使 う デバ イ スは多 く はあ り ません。 10 ビ ッ ト ス レ ーブ ア ド レ ス は、 ス タ ー ト コ ンデ ィ シ ョ ン (S) ま たは リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) に続 く 最初の 2 バイ ト で構成さ れます。 1 バ イ ト 目の先頭の 7 ビ ッ ト 、 1111 0XX の末尾 2 ビ ッ ト (XX) は 10 ビ ッ ト ア ド レ スの 最上位 2 ビ ッ ト 、 8 ビ ッ ト 目は メ ッ セージの方向を決定する R/W ビ ッ ト です。 こ の予約済ア ド レ スビ ッ ト 1111 XXX の組合せは全部で 8 つあ り ま すが、 10 ビ ッ ト ア ド レ ス指定では 4 つの組合せ 1111 0XX のみが使用さ れます。残 りの 4 つの組合せ 1111 1XX は、 将来のバスの拡張用に予約 さ れてい ます。 先に解説 し た 7 ビ ッ ト ア ド レ ス指定の読み出し / 書き込みフ ォ ーマ ッ ト は、すべて 10 ビ ッ ト ア ド レ ス指定で も使用可能です。 こ の詳細を次の 2 つの例で説明し ます。
•
マス タ ト ラ ン ス ミ ッ タ がスレーブ レ シーバに 10 ビ ッ ト スレーブ ア ド レ スを送信。 転送方向は不変 (図 14)、 ス タ ー ト コ ンデ ィ シ ョ ンに 10 ビ ッ ト ア ド レ スが続 く 場合、 各スレーブは自身の と ア ド レ スの 1 バイ ト 目の最初の 7 ビ ッ ト (1111 0XX) を比較 し 、 8 番目のビ ッ ト (R/W 方向ビ ッ ト ) が 「0」 であ る こ と を確認し ます。 複数のデ バイ スがこ れに マ ッ チ し 、 ア ク ノ リ ッ ジ (A1) を返す場合も あ り ま す (A1)。 マ ッ チ し た すべ て のス レ ー ブ は、 自身の ア ド レ ス と 2 バ イ ト 目の 8 ビ ッ ト を 比較 し (XXXX XXXX)、 マ ッ チ し た 1 つのス レーブがア ク ノ リ ッ ジ を返 し ま す (A2)。 マ ッ チ し たスレーブは、 ス ト ッ プ コ ンデ ィ シ ョ ン (P) か リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) に続いて異なる スレーブ ア ド レ スを受信する ま で、 ア ド レ ス指定さ れた状態 と な り ます。•
マス タ レ シーバが 10 ビ ッ ト ・ スレーブ ア ド レ スのスレーブ ト ラ ン ス ミ ッ タ を読み 出す。 転送方向は 2 回目の R/W ビ ッ ト の後に変化 し ま す (図 15)、 ア ク ノ リ ッ ジ ビ ッ ト A2 ま での手順はマス タ ・ ト ラ ン ス ミ ッ タ に よ る スレーブ レ シーバのア ド レ ス指定 と 同 じ です。 リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) の後で も、 マ ッ チする スレーブは先に 図 12. マス タ は最初のバイ ト の直後に スレーブ を読み出す 図 13. 組合せ フ ォ ーマ ッ ト mbc606 A (read) data transferred (n bytes + acknowledge) R/W A 1 P DATA DATA SLAVE ADDRESS S A mbc607 DATA A R/W read or write A/A DATA A R/W (n bytes + ack.)* direction of transfer may change at this point.read or write (n bytes
+ ack.)*
Sr = repeated START condition A/A
*not shaded because transfer direction of data and acknowledge bits depends on R/W bits.
SLAVE ADDRESS
ア ド レ ス指定 さ れた こ と を記憶 し てお り 、 Sr に続 く ス レーブ ア ド レ スの最初のバイ ト の先頭の 7 ビ ッ ト が一致するかを チ ェ ッ ク、 さ ら に 8 ビ ッ ト 目 (R/W ) が 「1」 で あ る こ と を確認し ます。 マ ッ チ し た場合、 スレーブは ト ラ ン ス ミ ッ タ と し てア ド レ ス指定さ れた と 判断し 、 ア ク ノ リ ッ ジ A3 を返 し ます。 ス レーブ ト ラ ン ス ミ ッ タ は、 ス ト ッ プ コ ンデ ィ シ ョ ン (P) を受信するか次の リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) に続けて異なる スレー ブ ア ド レ スを受信する ま で、 ア ド レ ス指定 さ れた状態 と な り ます。 リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) の後は、 他のすべてのスレーブデバイ ス も自 身のア ド レ スに対 し てスレーブ ア ド レ スの最初のバ イ ト を確認 し ます。 し か し た と え 先頭の 7 ビ ッ ト (1111 0XX) がマ ッ チ し た と し て も、 8 ビ ッ ト 目が R/W = 1 と なる ため、 いずれのスレーブ ・ デバ イ ス も ア ド レ ス指定 さ れた状態 と はな り ません。 10 ビ ッ ト ・ ア ド レスのス レーブ ア ド レスは、 7 ビ ッ ト ア ド レ スのス レ ーブデバ イ ス と 同 じ よ う に 「ゼネ ラル コ ール」 に反応 し ます。 ハー ド ウ ェ ア ・ マス タ は、 「ゼネ ラル コ ール」 の後に 10 ビ ッ ト ・ ア ド レ スを送信する こ と ができ ます。 この場合、 「ゼネ ラルコール」 ア ド レ ス ・ バ イ ト に、 マス タ ト ラ ンス ミ ッ タの 10 ビ ッ ト ア ド レ スの 2 つのバイ ト が続き ま す。(図 15) マス タ ア ド レスの下位 8 バイ ト が DATA の先頭に入っ ている様子を示し てい ます。 ス タ ー ト バイ ト 0000 0001 (01h) は、 7 ビ ッ ト ア ド レス指定の場合と 同様に 10 ビ ッ ト ア ド レ ス指定に先行する こ と ができ ます (3.1.15 章参照)。 図 14. マス タ ・ ト ラ ン ス ミ ッ タ に よ る スレーブ レ シーバのア ド レ ス指定 (10 ビ ッ ト ア ド レス) mbc613 R/W A1 (write) A2 A A/A 1 1 1 1 0 X X 0 SLAVE ADDRESS 1st 7 BITS
S SLAVE ADDRESS DATA DATA P 2nd BYTE 図 15. マス タ レ シーバに よ る スレーブ ・ ト ラ ン ス ミ ッ タ のア ド レ ス指定 (10 ビ ッ ト ア ド レス) mbc614 R/W A1 (write) A3 DATA DATA A2 R/W (read) 1 1 1 1 0 X X 0 1 1 1 1 0 X X 1 A A P Sr SLAVE ADDRESS 1st 7 BITS SLAVE ADDRESS 2nd BYTE SLAVE ADDRESS 1st 7 BITS S
3.1.12 予約済のア ド レ ス 2 つのグループ(0000 XXX と 1111 XXX)に各 8 個のア ド レ スが、表 3の通 り 予約 さ れてい ます。 [1] ゼネ ラ ルコ ールア ド レ スは、 ソ フ ト ウ ェ ア リ セ ッ ト を含む複数の機能に使われます。 [2] ス タ ー ト バイ ト の受信に対 し てデバイ スがア ク ノ リ ッ ジ を返す こ と はでき ません。 [3] CBUS ア ド レ スは、 同 じ シ ス テム内で の CBUS 対応デバ イ ス と I2C バス対応デバイ スの相互利用のために 予約 さ れてい ます。 I2C バス デバ イ スが このア ド レス に応答す る こ と は認められて いません。 [4] 異なるバスフ ォ ー マ ッ ト 用に予約 さ れてい る ア ド レ スは、I2C お よび他のプ ロ ト コ ルを混合 し て利用で き る よ う にす るためのも のです。 こ れら のフ ォ ー マ ッ ト と プ ロ ト コ ルをサポー ト す る I2C バス対応デバイ スの みが、 こ のア ド レ スに応答でき ます。 ロー カルシ ステム内でのア ド レ スの割当ては、 シ ステムアーキテ ク ト が行い ます。 シ ステ ム ・ アーキテ ク ト は、 バスで使用 され るデバ イ スだけでな く 、 他の I2C バスデバ イ ス を 将 来的に使用する可能性 も考慮 し ておかなければな り ません。 し か し た と えば、ユーザー割 当て可能な 7 つのア ド レ スピ ン を有するデバイ スの場合、128 のア ド レ スすべてを割り 当 てる こ と ができ ますが、予約済のア ド レ スを本来の目的に使用 し ない こ と があ らか じ め分 か っ てい るのであれば、 こ れ ら を スレーブ ア ド レ ス と し て使用する こ と も でき ます。 3.1.13 ゼネ ラ ルコ ールア ド レ ス ゼネ ラルコ ールア ド レ スは、 I2C バスに接続 し たすべてのデバ イ ス を 同時に ア ド レ ス指定 する ために用意 さ れてい ます。 ただ し 、ゼネ ラル コ ールに よ るデー タ を用い ないデバ イ ス の場合、 こ のア ド レスにア ク ノ リ ッ ジ返 さ ず、 無視 し ます。 ゼネ ラル コ ールア ド レ スに よ るデー タ を用い るデバ イ スの場合、 こ のア ド レ スに対 し てア ク ノ リ ッ ジ を返 し 、 スレーブ レ シーバ と な り ます。マス タ は何個のデバ イ スが実際に ア ク ノ リ ッ ジ を返 し たかを知る こ と はでき ません。 2 バイ ト 目以降も、 このデー タ を処理でき るすべてのスレーブ レ シーバ からのア ク ノ リ ッ ジを受け取り ます。 スレーブは、 こ れらのバ イ ト の う ち処理でき ない も のに対 し て ノ ッ ト ・ ア ク ノ リ ッ ジ を返 し、 無視 し ます。 こ の場合 も、 他のスレーブがア ク ノ リ ッ ジ を返す と 、 マス タは ノ ッ ト ・ ア ク ノ リ ッ ジ を認識する こ と はで き ません。 ゼネ ラ ル コ ールア ド レ スの内容は、 常に 2 バイ ト 目で指定さ れます (図 16)。 表 3. 予約済のア ド レ ス
X = don’t care; 1 = HIGH; 0 = LOW.
スレーブ ア ド レ ス R/W ビ ッ ト 説明 0000 000 0 ゼネ ラル コ ールア ド レス[1] 0000 000 1 ス タ ー ト バ イ ト[2] 0000 001 X CBUS ア ド レ ス[3] 0000 010 X 異な るバス フ ォ ーマ ッ ト 用に予約[4] 0000 011 X 将来の使用のため予約 0000 1XX X Hs-mod マス タ コ ー ド 1111 1XX X デバ イ ス ID 1111 0XX X 10 ビ ッ ト ス レ ー ブ ア ド レ ス指定 図 16. ゼネ ラ ル コールア ド レ スの形式 mbc623 LSB second byte 0 0 0 0 0 0 0 0 A X X X X X X X B A first byte (general call address)
次の 2 つのケースを考慮し な く てはな り ません。
•
最下位ビ ッ ト B が 「0」 の場合。•
最下位ビ ッ ト B が 「1」 の場合。 ビ ッ ト B が 「0」 の場合、 2 バイ ト の定義は次の通 り。•
0000 0110 (06h): ハー ド ウ ェ ア に よ る リ セ ッ ト 、 ス レ ーブ ア ド レ スのプ ログ ラ ミ ング 可能な部分を書込み。 こ の 2 バイ ト シーケ ンス を受信する と、 ゼネ ラルコールア ド レ スへ応答する よ う にデザ イ ン さ れてい るすべてのデバ イ スは、 リ セ ッ ト し プ ログ ラム 可能な部分を書き 込みます。 電源投入後にデバ イ スが SDA、 SCL ラ イ ン を引っ張ら ないよ う に注意し なければな り ません。 LOW レベルの発生はバス を停止 させて し ま いま す。•
0000 0100 (04h):ス レ ーブ ア ド レ スのプ ログ ラ ミ ング可能な部分のハー ド ウ ェ アに よ る書込み。 挙動は上記 と 同 じ ですが、 デバ イ スを リ セ ッ ト し ません。•
0000 0000 (00h): 2 バ イ ト 目の と し て こ の コ ー ド を 使用する こ と はで き ません。 プ ログ ラ ミ ングの手順は各デバ イ スのデー タ シー ト を参照 し て く だ さ い。こ れ以外の残 り の コ ー ド は規定 さ れてお らず、 デバ イ スは無視 し なければな り ません。 ビ ッ ト B が 「1」 の場合、 2 バイ ト シーケン スは 「ハー ド ウ ェ ア ・ ゼネ ラルコール」 と な り ます。 こ のシ ーケ ンスは、 た と えばキーボー ド スキ ャ ナなどのハー ド ウ ェ ア ・ マス タ デ バイ スが、 自身のス レー ブ ア ド レ スを通知で き る よ う 設け られた ものです。 このよ う な ハー ド ウ ェ ア マ ス タ は メ ッ セージ の転送先 と な るデバ イ ス を事前に知る こ と はで き ない ので、 シ ステム側で認識 し て も ら える よ う にハー ド ウ ェ ア ・ ゼネ ラル コ ール と 自身のア ド レ スを送信 し ます (図 17)。 2 バ イ ト 目の先頭 7 ビ ッ ト は、 ハー ド ウ ェ ア マ ス タのア ド レ ス で す。 バスに接続 さ れてい る イ ン テ リ ジ ェ ン ト デバ イ ス (マ イ ク ロ コ ン ト ロー ラ など) は こ のア ド レ スを認識 し て、 ハー ド ウ ェ ア マス タ か らの情報を受信 し ます。ハー ド ウ ェ ア マス タ が同時に スレーブ で も あ る場合、 スレーブ ア ド レ ス と マス タ ア ド レ スは同一 と な り ます。 シ ステム リ セ ッ ト の後はハー ド ウ ェ ア マス タ ・ ト ラ ン ス ミ ッ タ がスレーブ レ シーバ ・ モー ド に なる システム も可能です。 こ れ を使えば、 シ ステム設定を行 う マス タ が ( スレーブ レ シーバ ・ モー ド に なっ た ) ハー ド ウ ェ アマス タ ・ ト ラ ン ス ミ ッ タ に、 ア ド レ スデー タ の送 信先を教える こ と ができ ます (図 18)。 こ の処理 を行 っ た後は、 ハー ド ウ ェ ア ・ マス タ は マス タ ト ラ ン ス ミ ッ タ ・ モー ド で動作し ます。 図 17. ハー ド ウ ェ ア ・ ト ラ ン ス ミ ッ タ か らのデー タ 転送 mbc624 general call address (B) A A second byte A A (n bytes + ack.) S 00000000 MASTER ADDRESS 1 DATA DATA P3.1.14 ソ フ ト ウ ェ ア リ セ ッ ト ゼネ ラルコ ール (0000 0000) の後、 2 バイ ト 目と し て 0000 0110 (06h) を送信する と 、 ソ フ ト ウ ェ ア リ セ ッ ト が実行 さ れます。 こ の機能はオ プ シ ョ ン で、すべてのデバ イ スが こ の コ マン ド に応答するわけ ではあ り ません。 こ の 2 バイ ト ・ シーケ ン スの受信に よ っ て、 ゼネ ラ ル コ ール ・ ア ド レ スへ応答する よ う にデザ イ ン さ れてい る すべてのデバ イ スは リ セ ッ ト し 、 プ ログ ラム可能な部分を書き 込みます。 電源投入後にデバ イ スが SDA、 SCL ラ イ ン を引っ張ら ない よ う に注意し なければな り ません。 LOW レベルの発生はバスを停 止 さ せて し まい ます。 3.1.15 ス タ ー ト バイ ト マ イ ク ロ コ ン ト ロー ラの I2C バス対応には 2 つの方法があ り ま す。マ イ ク ロ コ ン ト ロー ラ が I2C バス イ ン タ ー フ ェ ース をハー ド ウ ェ ア で持 っ て いる な ら 、バス リ ク エ ス ト に よ る割 り 込みを用い たプ ログ ラムが可能で し ょ う 。こ のよ う な イ ン タ ー フ ェ ースを実装 し てい な いデバ イ スの場合、 ソ フ ト ウ ェ ア よ っ てバスを継続的に監視 し なければな り ません。 マ イ ク ロ コ ン ト ロー ラがバスの監視ややポー リ ング を行 う 時間が増える と 、本来の機能を実行 する時間が削 られて し まい ます。 し たが っ て高速なハー ド ウ ェ ア を持つデバ イ ス と 、ソ フ ト ウ ェ アポー リ ングに依存 し た比 較的遅い マ イ ク ロ コ ン ト ロー ラには、 スピー ド に差が出ます。 こ の遅いデバ イ スに対応する ため、デー タ 転送の前に通常よ り も長い ス タ ー ト 手順を置 く こ と が可能です (図 19)。 こ のス タ ー ト 手順は次の通 り 。
•
ス タ ー ト コ ンデ ィ シ ョ ン (S)•
ス タ ー ト バイ ト (0000 0001)•
ア ク ノ リ ッ ジ ク ロ ッ クパルス (ACK)•
リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) a. 構成マ ス タ がハー ド ウ ェ ア マ ス タ にダ ン プ ア ド レ ス を送信 b. ハー ド ウ ェ ア マ ス タ が指定のス レ ー ブへデー タ をダ ン プ 図 18. ス レ ーブ デバ イ スへデー タ を 直接ダ ン プ で き るハー ド ウ ェ ア ト ラ ン ス ミ ッ タ に よ る デー タ 転送 002aac885 write A A R/WS SLAVE ADDR. H/W MASTER DUMP ADDR. FOR H/W MASTER X P
002aac886 R/W write A A (n bytes + ack.) A/A S DUMP ADDR. FROM H/W MASTER DATA DATA P
バス ・ ア ク セスを開始する マス タ がス タ ー ト コ ンデ ィ シ ョ ン (S) の後に、 ス タ ー ト バイ ト (0000 0001) を送信 し ま す。 これを受ける側のマ イ ク ロ コ ン ト ロー ラはス タ ー ト バイ ト 中の 7 つの 「0」 のいずれかを検出で きれば良いので、 SDA ラ イ ン を低レー ト でサン プ リ ング でき ます。 こ の SDA ラ イ ンの LOW レベルを検出し た後、 マ イ ク ロ コ ン ト ロー ラ はサン プ リ ング を高い レー ト に切 り 替えて リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) を検出 し 、 その後の同期に使用 し ます。 ハー ド ウ ェ ア レ シーバはリ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン (Sr) の受信で リ セ ッ ト さ れる ため、 ス タ ー ト バ イ ト は無視 さ れます。 ス タ ー ト バ イ ト の後、 ア ク ノ リ ッ ジ ク ロ ッ ク パル スが出力 さ れ ま すが、 こ れはバ スの フ ォーマ ッ ト に合わせる ためのもので、 どのデバイ ス も、 ス タ ー ト バイ ト に対し てア ク ノ リ ッ ジ を返す こ と はでき ません。 3.1.16 バス ク リ ア ク ロ ッ ク (SCL) が LOW の状態で動かな く な っ て し ま う 状況の発生はあ ま り 考え られま せんが、 も し こ のよ う な状況が発生 し た場合には、 使用 し てい る I2C デバ イ ス に HW リ セ ッ ト 入力があれば、 それを使用 し て リ セ ッ ト すべき です。HW リ セ ッ ト 入力がない場合 は、 電源の再投入でパワーオ ン リ セ ッ ト (POR) を試みます。 デー タ ラ イ ン (SDA) が LOW の状態で動かな く な っ て し ま っ た場合、 マス タはク ロ ッ ク ・ パルス を 9 回送信 し なければな り ません。 バス を LOW に し ているデバイ スはこの 9 回の ク ロ ッ クの内に SDA を リ リ ースする必要があ り 、 これが う ま く いかなかっ た場合は HW リ セ ッ ト を使用するか、 電源の再投入でバス を ク リ ア し ます。 3.1.17 デバイ ス ID デバ イ ス ID フ ィ ール ド (図 20) はオプ シ ョ ン と し て用意 さ れる読取専用の 3 バイ ト (24 ビ ッ ト ) ワー ド で、 次の情報を提供 し ます。
•
メ ー カー (製造業者) 固有の 12 ビ ッ ト の (例 : NXP)•
9 ビ ッ ト のパーツ ID、 メ ー カーが割当て (例 : PCA9698)•
3 ビ ッ ト のダ イ (チ ッ プ) の リ ビ ジ ョ ン、 メ ー カーが割当て (例 : RevX) 図 19. ス タ ー ト バイ ト ・ プ ロ シージ ャ 002aac997 S 9 8 2 1 Sr 7 NACK dummy acknowledge (HIGH) START byte 0000 0001 SDA SCL 図 20. デバイ ス ID フ ィ ール ド 0 002aab942 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 revision 0 0 0 0 0 part identification manufacturerデバ イ ス ID は読み出し 専用で、 デバイ ス内でハー ド ワ イヤ さ れた情報です。 ア ク セスの 方法は次の通 り 。 1. ス タ ー ト コ ンデ ィ シ ョ ン 2. マス タ がデバ イ ス ID 用に予約済のア ド レ ス と こ れに続 く R/W 0」、 書 き込み) を 送出 (1111 1000)。 3. マ ス タ が、 識別 し よ う と し てい るデバ イ スのス レ ーブ ア ド レ ス を 送信。 最下位ビ ッ ト の値は 「Don’t care」。 このバイ ト にア ク ノ リ ッ ジ を返すのは 1 デバイ スのみ (指定し たバススレーブ ア ド レ スを有し てい るデバイ ス)。 4. マ ス タ が リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ン を 送出。 注意 : (Sr ではな く ) ス ト ッ プ コ ンデ ィ シ ョ ン と これに続 く ス タ ー ト コ ンデ ィ シ ョ ン を送出する と 、 スレーブのステー ト マシンが リ セ ッ ト さ れて し ま う ため、 デバイ ス ID の読取 り を実行で き ません。 ま たス ト ッ プ コ ンデ ィ シ ョ ン ま たは リ ピー ト ス タ ー ト コ ンデ ィ シ ョ ンの後に別のスレーブ ア ド レ スに ア ク セス し た場合 も、スレーブのス テー ト マシ ンが リ セ ッ ト さ れて し ま う ので、 デバ イ ス ID の読み出し を実行でき ませ ん。 5. マス タ がデバ イ ス ID 用に予約済のア ド レ ス と こ れに続 く R/W 1」、 読み出 し ) を 送出 (1111 1000)。 6. デバ イ ス ID の読み出 し が可能に な り 、 最初に メ ーカ ーを 表す 12 ビ ッ ト (最初のバ イ ト +2 バイ ト 目の上位 4 ビ ッ ト )、 パーツ ID の 9 ビ ッ ト (2 バイ ト 目の下位 4 ビ ッ ト +3 バイ ト 目の上位 5 ビ ッ ト )、 最後にダ イ の リ ビ ジ ョ ン を 表す 3 ビ ッ ト (3 バ イ ト 目 の下位 3 ビ ッ ト ) のビ ッ ト が続き ます。 7. マ ス タ は最後のバ イ ト に NACK を 返 し 読み出 し シーケ ン ス を 終了。 こ れに よ っ て ス レーブデバイ スのステー ト マシンがリ セ ッ ト さ れ、 マス タ は STOP コ マン ド を送出 し ます。 注意 : デバイ ス ID の読み出し は、 マス タが NACK を返す こ と に よ っ ていつで も中止 でき ます。 マス タ が 3 バイ ト 目に対し て も ACK を返す と 、ス レーブは最初のバイ ト に戻っ て、NACK を検出する ま でデバ イ ス ID のシーケ ン スを送信し ます。
メ ー カー ID の発行を希望さ れる場合は、 NXP ま で メ ールで ([email protected]) お 問合わせ く だ さ い。 表 4. 割当済の メ ー カー ID メ ーカ ービ ッ ト 会社名 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 NXP セ ミ コ ンダ ク タ ーズ 0 0 0 0 0 0 0 0 0 0 0 1 NXP セ ミ コ ンダ ク タ ーズ(予約済) 0 0 0 0 0 0 0 0 0 0 1 0 NXP セ ミ コ ンダ ク タ ーズ(予約済) 0 0 0 0 0 0 0 0 0 0 1 1 NXP セ ミ コ ンダ ク タ ーズ(予約済) 0 0 0 0 0 0 0 0 0 1 0 0 Ramtron International 0 0 0 0 0 0 0 0 0 1 0 1 Analog Devices 0 0 0 0 0 0 0 0 0 1 1 0 STMicroelectronics 0 0 0 0 0 0 0 0 0 1 1 1 ON Semiconductor 0 0 0 0 0 0 0 0 1 0 0 0 Sprintek Corporation 0 0 0 0 0 0 0 0 1 0 0 1 ESPROS Photonics AG 0 0 0 0 0 0 0 0 1 0 1 0 Fujitsu Semiconductor 0 0 0 0 0 0 0 0 1 0 1 1 Flir 0 0 0 0 0 0 0 0 1 1 0 0 O2Micro 0 0 0 0 0 0 0 0 1 1 0 1 Atmel
3.2 I
2C バス プ ロ ト コ ル ― Ultra Fast-mode (ウル ト ラ フ ァ ース ト モー ド :
UFm)
UFm I2C バスは 2 線式プ ッ シ ュ プルシ リ アルバス で、DC か ら 5MHz ま での片方向デー タ 転送をサポー ト し ます。 1MHz 以上のス ピー ド で、 LED コ ン ト ロー ラやその他フ ィ ー ド バ ッ ク が不要 なデバ イ ス を動かすのに最適 です。 UFm I2C バス プ ロ ト コ ルは、 START、 スレーブ ア ド レ ス、 コ マン ド ビ ッ ト 、 9 番目のク ロ ッ ク、 STOP ビ ッ ト で構成さ れる標準 の I2C バス プ ロ ト コ ル を ベース に し て います。 コ マ ン ド ビ ッ ト は書き 込みのみで、 9 番目 のク ロ ッ クのデー タ ビ ッ ト は HIGH と な り ま す。 ま た このバスは片方向通信のため ACK サ イ クルは無視 さ れます。 UFm シ リ アルク ロ ッ ク (USCL) と シ リ アルデー タ (USDA) の 2 本のワ イヤはプ ッ シ ュ プル駆動さ れます。 スレーブデバ イ スには固有のア ド レ ス (マ イ ク ロ コ ン ト ロー ラ、 LCD ド ラ イバ、 LED コ ン ト ロー ラ、 GPO 等に関係な く ) が与え られ、 レ シーバと し てのみ機能し ます。 常に レ シーバ と し てだけ動作すればよい、 た と えば LED ド ラ イ バは UFm で対応でき る一方、 デー タ の送受信が必要な メ モ リ などは UFm がサポー ト し ないデバイ ス と な り ます。 UFm I2C バスはプ ッ シ ュ プル駆動 さ れるので、 Sm、 Fm、 Fm+ I2C バスのよ う なワ イヤー ド AND オープ ン ド レ イ ン を使っ たマルチマス タ機能はあ り ません。 UFm においてデー タ 転送を開始 し 、 転送許可の ク ロ ッ ク信号を生成するデバイ スは 1 個のマス タ だけです。 ア ド レ ス指定 さ れる他のすべてのデバ イ スはスレーブ です。 UFm I2C バス に接続 さ れてい る、1 個のマ ス タ と 複数のス レ ーブ間におけ るデー タ 転送例 を説明し ます (図 21)。 表 5. UFm I2C バス - 用語解説 用語 説明 ト ラ ン ス ミ ッ タ バスにデー タ を送信するデバイ ス レ シーバ バスか らのデー タ を受信するデバイ ス マス タ 転送を開始 し 、 ク ロ ッ ク信号を生成 し て転送を終了するデバイ ス スレーブ マス タ に ア ド レ ス指定 さ れるデバイ ス 図 21. UFm I2C バス構成の例 002aag654 USDA USCLMaster ASIC LED
controller 3 LCD DRIVER LED controller 1 LED controller 2 GPO
次の例で、 UFm I2C バス上のマ ス タ ト ラ ンス ミ ッ タ と ス レ ーブ レ シ ーバの関係 を 示 し ま
す。 デー タの転送は一方向のみなので、 こ れ らの関係は永続的です。 デー タ 転送は次の手 順で行われます。
マス タ ASIC から LED コ ン ト ローラ 2 への情報送信の例