(57)【要約】【課題】課題は、Ｉ２Ｃ通信プロトコル自体に改変が不要な上、アドレスが割当てられているスレーブ装置と、アドレスが割当てられていないスレーブ装置とが混在する場合、後者のスレーブ装置にアドレスを容易に割当てることができる技術を提供することである。【解決手段】通信システム（１）は、マスタ装置（３）と、第１アドレスが割当てられている第１スレーブ装置（４１）と、アドレスが割当てられていない第２スレーブ装置（４２）と、Ｉ２Ｃバス（２）とを備える。マスタ装置は、割当てデータ（３１１）を参照して、第１アドレス以外のアドレスを生成し、生成された第２アドレスをＩ２Ｃバスに送信する。そして、第２スレーブ装置は、Ｉ２Ｃバス上の第２アドレスを受信する。第２スレーブ装置は、Ｉ２Ｃバスを監視しており、Ｉ２Ｃバスの信号レベルに変化がない場合に、受信された第２アドレスを第２スレーブ装置のアドレスとして記憶する。【選択図】図１
2014016907.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置と、
第１アドレスが割当てられている第１スレーブ装置と、
アドレスが割当てられていない第２スレーブ装置と、
前記マスタ装置、前記第１スレーブ装置および前記第２スレーブ装置が共通に接続されているＩ２Ｃ（Inter  Integrated  Circuit）バスと
を備え、
前記マスタ装置は、
前記第１アドレスと前記第１スレーブ装置との関係を示す割当てデータを記憶しているマスタ装置記憶部と、
前記マスタ装置記憶部の前記割当てデータを参照して、前記第１スレーブ装置に使用されている前記第１アドレス以外のアドレスを生成するアドレス生成部と、
前記アドレス生成部によって生成された第２アドレスを前記Ｉ２Ｃバスに送信する送信部と
を備え、
前記第２スレーブ装置は、
前記Ｉ２Ｃバス上の前記第２アドレスを受信する受信部と、
前記Ｉ２Ｃバスの信号レベルを監視する監視部と、
前記監視部による監視の結果、前記信号レベルに変化が無い場合、前記受信部によって受信された前記第２アドレスを前記第２スレーブ装置のアドレスとして記憶する記憶部と
を備える
通信システム。
【請求項２】
前記マスタ装置では、
前記送信部が前記第２アドレスを２回送信し、
前記第２スレーブ装置では、
前記受信部が前記第２アドレスを２回受信し、
２回目に受信された前記第２アドレスを前記記憶部が前記第２スレーブ装置のアドレスとして記憶する
請求項１に記載の通信システム。
【請求項３】
アドレスが割当てられていない第３スレーブ装置を更に備え、
前記Ｉ２Ｃバスは、
クロック信号線を備え、
前記第３スレーブ装置は、
前記第２スレーブ装置に前記第２アドレスが割当てられるまで、前記クロック信号線から解放されており、前記第２スレーブ装置に前記第２アドレスが割当てられた後に、前記クロック信号線に接続される
請求項１または２に記載の通信システム。
【請求項４】
前記第２スレーブ装置は、
前記クロック信号線に接続されており、前記クロック信号線からクロックを受信し、受信したクロックを前記第３スレーブ装置に転送可能であり、
前記第３スレーブ装置は、
前記第２スレーブ装置に前記第２アドレスが割当てられた後に、前記第２スレーブ装置を介して前記クロック信号線から前記クロックを受信することができるように、前記第２スレーブ装置に接続される
請求項３に記載の通信システム。
【請求項５】
前記第３スレーブ装置は、
前記第２スレーブ装置からのクロックが供給される信号線で前記第２スレーブ装置に接続されており、
前記第２スレーブ装置は、
前記信号線を断続するスイッチを更に備え、
前記監視部による監視の結果、前記信号レベルに変化が無い場合、前記スイッチを操作して、前記第２スレーブ装置のアドレスが確定するまで前記信号線を遮断する
請求項４に記載の通信システム。
【請求項６】
アドレスが割当てられていない第３スレーブ装置を更に備え、
前記マスタ装置は、
前記第３スレーブ装置を非アクティブに設定した上で、前記第２スレーブ装置にアドレスを割当てる
請求項１または２に記載の通信システム。
【請求項７】
前記アドレス生成部は、
前記割当てデータを参照して、アドレスが割当てられていない未割当てスレーブ装置の個数を取得し、前記個数分の未割当てスレーブ装置の各々に対して重複しないアドレスを前記個数分生成する
請求項３から６のいずれか一に記載の通信システム。
【請求項８】
マスタ装置と、第１アドレスが割当てられている第１スレーブ装置と、アドレスが割当てられていない第２スレーブ装置とがＩ２Ｃバスに共通に接続されている通信システムで、前記マスタ装置が前記第２スレーブ装置にアドレスを割当てる割当てステップを備え、
前記割当てステップは、
前記第１アドレスと前記第１スレーブ装置との関係を示す割当てデータを前記マスタ装置が記憶するマスタ装置の記憶ステップと、
前記割当てデータを参照して、前記第１スレーブ装置に対応する前記第１アドレス以外のアドレスを前記マスタ装置が生成するアドレス生成ステップと、
前記アドレス生成ステップで生成された第２アドレスを前記マスタ装置が前記Ｉ２Ｃバスに送信する送信ステップと、
前記第２アドレスを前記第２スレーブ装置が受信する受信ステップと、
前記Ｉ２Ｃバスの信号レベルを監視する監視ステップと、
前記監視ステップで、前記信号レベルに変化が無い場合、前記受信ステップで受信された前記第２アドレスを前記第２スレーブ装置のアドレスとして前記第２スレーブ装置が記憶する記憶ステップと
を備える
アドレス割当て方法。
【請求項９】
前記送信ステップでは、
前記マスタ装置が前記第２アドレスを２回送信し、
前記受信ステップでは、
前記第２スレーブ装置が前記第２アドレスを２回受信し、
２回目に受信された前記第２アドレスを前記第２スレーブ装置が前記第２スレーブ装置のアドレスとして記憶する
請求項８に記載のアドレス割当て方法。
【請求項１０】
前記通信システムは、
アドレスが割当てられていない第３スレーブ装置を更に備え、
前記Ｉ２Ｃバスは、
クロック信号線を備え、
前記第３スレーブ装置は、
前記第２スレーブ装置に前記第２アドレスが割当てられるまで、前記クロック信号線から解放され、
前記第２スレーブ装置に前記第２アドレスが割当てられた後に、前記クロック信号線に接続される
請求項８または９に記載のアドレス割当て方法。
【請求項１１】
前記第２スレーブ装置は、
前記クロック信号線に接続されており、前記クロック信号線からクロックを受信し、
前記第３スレーブ装置は、
前記第２スレーブ装置に前記第２アドレスが割当てられた後に、前記第２スレーブ装置から前記クロックを受信することができるように、前記第２スレーブ装置に接続される
請求項１０に記載のアドレス割当て方法。
【請求項１２】
前記第３スレーブ装置は、
前記第２スレーブ装置からのクロックが供給される信号線で前記第２スレーブ装置に接続されており、
前記第２スレーブ装置は、
前記信号線を断続するスイッチを更に備え、
前記監視ステップで、前記信号レベルに変化が無い場合、前記スイッチを操作して、前記第２スレーブ装置のアドレスが確定するまで前記信号線を遮断する
請求項１１に記載のアドレス割当て方法。
【請求項１３】
前記通信システムは、
アドレスが割当てられていない第３スレーブ装置を更に備え、
前記マスタ装置は、
前記第３スレーブ装置を非アクティブに設定し、前記第２スレーブ装置にアドレスを割当てる
請求項８または９に記載のアドレス割当て方法。
【請求項１４】
前記アドレス生成ステップでマスタ装置は、
前記割当てデータを参照して、アドレスが割当てられていない未割当てスレーブ装置の未割付け数を取得し、前記未割付け数分の未割当てスレーブ装置に対して未使用のアドレスを前記未割付け数分生成する
請求項８から１２のいずれか一に記載のアドレス割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムおよびアドレス割当て方法に関し、例えばＩ２Ｃ（Inter  Integrated  Circuit）通信技術に関する。
【背景技術】
【０００２】
複数の装置間でシリアル通信を行うためのＩ２Ｃ通信が知られている。Ｉ２Ｃ通信には、２本の信号線を備えるＩ２Ｃバスが使用される。必要な信号線の数が２本であるため、Ｉ２Ｃバスは、小型化が要求される電子機器等に好適である。この他、システム設計が容易であるという利点もある。
【０００３】
Ｉ２Ｃバスには、マスタ装置に加え、少なくとも１つのスレーブ装置が接続される。マスタ装置は、Ｉ２Ｃバスに接続されている全てのスレーブ装置を制御する役割を持つ。多くの場合、複数のスレーブ装置がＩ２Ｃバスに接続される。したがって、複数のスレーブ装置の各々は、重複しないアドレスを持つ必要がある。そのため、Ｉ２Ｃ通信の確立に先だって、マスタ装置は、複数のスレーブ装置の各々に異なるアドレスを割当てる。
【０００４】
しかしながら、２つまたはそれ以上のスレーブ装置に同一のアドレスが割当てられることがある。このことは、アドレスの競合をもたらす。その発生原因の一つには、Ｉ２Ｃバスに追加されたスレーブ装置が既存のスレーブ装置と同一の機種であった場合が挙げられる。その結果、同一のアドレスに設定されたスレーブ装置は、正常に動作しない。そこで、アドレスの競合を防止するための種々の技術が提案されてきた（特許文献１、２）。
【０００５】
特許文献１は、通信制御装置を備えるデ−タ通信システムを開示している。この通信制御装置は、マスタ装置および複数のスレーブ装置に接続されており、マスタ装置および複数のスレーブ装置間のデ−タ通信を制御する。特許文献２は、対象スレーブ装置のアドレスをプログラミングにより変更する技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１０５７３１号公報
【特許文献２】特表２００４−５１０２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１によれば、対象のスレーブ装置を選択するための特別なコマンド等が必要である。そのため、Ｉ２Ｃ通信プロトコル自体に改変が必要である。一方、特許文献２の技術では、アドレスが割当てられているスレーブ装置と、アドレスが割当てられていないスレーブ装置とが混在する場合、後者のスレーブ装置にアドレスを割当てることが難しい。
【課題を解決するための手段】
【０００８】
通信システムは、マスタ装置と、第１スレーブ装置と、第２スレーブ装置と、Ｉ２Ｃバスとを備える。第１スレーブ装置には、第１アドレスが割当てられている。一方、第２スレーブ装置には、アドレスが割当てられていない。
【０００９】
マスタ装置は、第２スレーブ装置にアドレスを割当てるとき、次の処理を実行する。マスタ装置は、第１アドレスが第１スレーブ装置に関連付けられた割当てデータを記憶しているマスタ装置記憶部を備える。マスタ装置は、割当てデータを参照して、第１スレーブ装置に使用されている第１アドレス以外の第２アドレスを生成し、第２アドレスをＩ２Ｃバスに送信する。
【００１０】
第２スレーブ装置は、第２アドレスを受信すると、次の処理を実行する。第２スレーブ装置は、Ｉ２Ｃバスを監視している。第２スレーブ装置は、第１スレーブ装置からの応答がないことを検出した場合、受信した第２アドレスを第２スレーブ装置のアドレスとして使用する。
【００１１】
その他の課題と新たな特徴は、本明細書の記述と添付図面から明らかになるであろう。
【発明の効果】
【００１２】
Ｉ２Ｃ通信プロトコルの改変が不要である。その上、アドレスが割当てられているスレーブ装置と、アドレスが割当てられていないスレーブ装置とが混在する場合、後者のスレーブ装置にアドレスを容易に割当てることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施の形態に係る通信システムの構成を例示するブロック図である。
【図２】図２は、第１の実施の形態に係るアドレス割当て方法のシーケンス図である。
【図３】図３は、マスタ装置３の動作例を示す詳細なフローチャートである。
【図４】図４は、第２スレーブ装置４２の動作例を示す詳細なフローチャートである。
【図５】図５は、第２の実施の形態に係る通信システムの構成を例示するブロック図である。
【図６】図６は、Ｉ２Ｃ通信プロトコルを説明するためのブロック図である。
【図７】図７（Ａ）−（Ｂ）は、Ｉ２Ｃ通信プロトコルのタイミングチャートである。
【図８】図８は、第２の実施の形態に係る通信システムの構成例を示すブロック図である。
【図９】図９は、第２の実施の形態に係るマスタ装置およびスレーブ装置の詳細なブロック図である。
【図１０】図１０は、初期段階での割当てデータを例示する図である。
【図１１】図１１は、第１から第３スレーブ装置４１−４３の各々のアドレスが確定された場合の割当てデータを例示する図である。
【図１２】図１２（Ａ）−（Ｈ）は、第２の実施の形態に係る通信システムの動作例を示すタイミングチャ−トである。
【図１３】図１３は、第３の実施の形態に係る通信システムの構成を例示するブロック図である。
【図１４】図１４（Ａ）−（Ｉ）は、第３の実施の形態に係る通信システムの動作例を示すタイミングチャ−トである。
【発明を実施するための形態】
【００１４】
以下、実施の形態を図面に関連づけて説明する。全ての実施の形態において、同一の要素には原則として同一の符号が付されている。
【００１５】
１．第１の実施の形態
第１の実施の形態について説明する。
【００１６】
１．１．概要
１．１．１．通信システムの構成
図１は、第１の実施の形態に係る通信システムの構成を例示するブロック図である。通信システム１は、Ｉ２Ｃバス２と、マスタ装置３と、第１スレーブ装置４１と、第２スレーブ装置４２とを備える。Ｉ２Ｃバス２には、マスタ装置３と、第１スレーブ装置４１と、第２スレーブ装置４２とが共通に接続されている。
【００１７】
通信システム１は、Ｉ２Ｃ通信プロトコルにより、マスタ装置３が第１および第２スレーブ装置４１，４２の双方とシリアル通信するシステムである。この他、通信システム１は、以下のアドレス割当て機能を持つ。
【００１８】
例えば、第１および第２スレーブ装置４１，４２が互いに同一の機種である場合、両者は、同一のアドレスを持つことが多い。同一のアドレスを持つ両者がＩ２Ｃバス２に共通に接続された場合、アドレスの競合が起こる。そのため、例えば、通信システム１の起動時に、互いに異なるアドレスを第１および第２スレーブ装置４１，４２にそれぞれ割当てる必要がある。この他、第１および第２スレーブ装置４１，４２が始めから異なるアドレスを持っていても、両者に既に割当てられているアドレスをマスタ装置３が書き換えたい場合がある。
【００１９】
通信システム１は、このような場合に対処できるように、第１および第２スレーブ装置４１，４２のアドレスを任意に設定できる。以下の説明では、このアドレス割当て機能に焦点を当てる。
【００２０】
マスタ装置３は、コントロ−ラとして、第１および第２スレーブ装置４１，４２をそれぞれ制御する役割を持つ。マスタ装置３は、互いに異なるアドレスを第１および第２スレーブ装置４１，４２にそれぞれ割当てる。アドレスの割当ては、典型的には、通信システム１の起動時に実行される。
【００２１】
第１および第２スレーブ装置４１，４２は、所定の機能を持つ。この機能は、例えば、センサ、画像処理、音声処理等であって、任意である。第１および第２スレーブ装置４１，４２は、互いに同一の構成をとっていてもよい。逆に、第１および第２スレーブ装置４１，４２が互いに異なる構成をとっていてもよい。第１および第２スレーブ装置４１，４２は、Ｉ２Ｃバス２を介してマスタ装置３と通信する。
【００２２】
本実施の形態では、説明を明確にするため、次の初期条件を仮定する。具体的には、第１スレーブ装置４１には、第１アドレスＡＤ１が既に割当てられている。これは、第１スレーブ装置４１のアドレスが第１アドレスＡＤ１に確定されていることを意味する。これに対し、第２スレーブ装置４２には、アドレスが割当てられていない。これは、第２スレーブ装置４２のアドレスが未確定であることを意味する。ただし、通信システム１の安定を図るため、第２スレーブ装置４２は、任意の初期アドレスを持つ。
【００２３】
以下適宜、アドレスが割当てられているスレーブ装置を「割当て済みのスレーブ装置」と呼ぶ。これに対し、アドレスが割当てられていないスレーブ装置を「未割当てのスレーブ装置」と呼ぶ。
【００２４】
１．１．２．マスタ装置の構成
マスタ装置３は、記憶部３１と、アドレス生成部３２と、送信部３３とを備える。記憶部３１は、「マスタ装置記憶部」とも呼ばれる。
【００２５】
記憶部３１は、通信システム１のシステム構成データを記憶している。システム構成データは、割当てデータ３１１を含んでいる。割当てデータ３１１は、アドレスが割当てられている全てのスレーブ装置と、これら各々のアドレスとの対応関係を示すデータである。初期段階では、第１アドレスＡＤ１が第１スレーブ装置４１に関連付けられている。
【００２６】
アドレス生成部３２は、記憶部３１の割当てデータ３１１を参照して、未使用の第２アドレスＡＤ２を生成する。第２アドレスＡＤ２は、第１スレーブ装置４１で使用されている第１アドレスＡＤ１以外のアドレスである。
【００２７】
送信部３３は、アドレス生成部３２によって生成された第２アドレスＡＤ２をＩ２Ｃバス２に送信する。このことにより、Ｉ２Ｃバス２に第２アドレスＡＤ２が供給される。
【００２８】
１．１．３．第１スレーブ装置
第１スレーブ装置４１は、確定された第１アドレスＡＤ１を持っている。マスタ装置３が第２アドレスＡＤ２をＩ２Ｃバス２に送信したとき、第１スレーブ装置４１は、Ｉ２Ｃバス２上の第２アドレスＡＤ２を受信する。そして、第１スレーブ装置４１は、受信した第２アドレスＡＤ２を自身の第１アドレスＡＤ１と比較する。この場合、両者のアドレスが互いに異なる。そのため、第１スレーブ装置４１は、ＡＣＫ（ACKnowledgement）信号＝“Ｈ（ハイレベル）”をＩ２Ｃバス２に送信する。ＡＣＫ信号＝“Ｈ”は、第１スレーブ装置４１がマスタ装置３の送信に対して応答しないことを意味する。ＡＣＫ信号の詳細については後述する。
【００２９】
もし、マスタ装置３が第１アドレスＡＤ１をＩ２Ｃバス２に送信した場合、第１スレーブ装置４１は、受信した第１アドレスＡＤ１を自身の第１アドレスＡＤ１と比較する。この場合、両者のアドレスが互いに一致する。そこで、第１スレーブ装置４１は、ＡＣＫ信号＝“Ｌ（ローレベル）”をＩ２Ｃバス２に送信する。しかしながら、上述したように、マスタ装置３が第１アドレスＡＤ１以外の第２アドレスＡＤ２をＩ２Ｃバス２に送信している。したがって、第１スレーブ装置４１がマスタ装置３の送信に対して応答することはない。
【００３０】
１．１．４．第２スレーブ装置の構成
第２スレーブ装置４２は、受信部４１２と、監視部４２２と、記憶部４３２とを備える。受信部４１２は、マスタ装置３が第２アドレスＡＤ２を送信した場合、Ｉ２Ｃバス２上の第２アドレスＡＤ２を受信する。
【００３１】
監視部４２２は、Ｉ２Ｃバス２の信号レベルを監視している。この信号レベルは、ＡＣＫ信号の“Ｈ”または＝“Ｌ”を指す。マスタ装置３が第２アドレスＡＤ２を送信した場合、第１スレーブ装置４１は、ＡＣＫ信号＝“Ｈ”をＩ２Ｃバス２に送信する。この場合、監視部４２２は、ＡＣＫ信号＝“Ｈ”を検出する。
【００３２】
記憶部４３２は、監視部４２２による監視の結果、ＡＣＫ信号＝“Ｈ”が検出された場合、監視部４２２の制御に従って、受信部４１２によって受信された第２アドレスＡＤ２を第２スレーブ装置４２のアドレスとして記憶する。この第２アドレスＡＤ２は、第２スレーブ装置４２のアドレスとして使用される。このことにより、第２スレーブ装置４２のアドレスが第２アドレスＡＤ２に確定する。
【００３３】
１．１．５．アドレス割当て方法
図２は、第１の実施の形態に係るアドレス割当て方法のシーケンス図である。本アドレス割当て方法は、マスタ装置３が第２スレーブ装置４２にアドレスを割当てる割当てステップを備える。割当てステップの詳細は、以下の通りである。
【００３４】
先ず、マスタ装置３は、以下の処理を行う。初期段階で、記憶部３１は、割当てデータ３１１を記憶している（ステップＳ１）。そして、アドレス生成部３２は、割当てデータ３１１を参照して、未使用の第２アドレスＡＤ２を生成する（ステップＳ２）。そして、送信部３３は、アドレス生成部３２によって生成された第２アドレスＡＤ２をＩ２Ｃバス２に送信する（ステップＳ３）。
【００３５】
ステップＳ３の後、第１スレーブ装置４１は、Ｉ２Ｃバス２上の第２アドレスＡＤ２を受信する（ステップＳ４）。そして、第１スレーブ装置４１は、受信した第２アドレスＡＤ２を自身の第１アドレスＡＤ１と比較する（ステップＳ５）。両者のアドレスが互いに異なるため、第１スレーブ装置４１は、ＡＣＫ信号＝“Ｈ”をＩ２Ｃバス２に送信する（ステップＳ６）。
【００３６】
ステップＳ６の後、第２スレーブ装置４２は、以下の処理を行う。受信部４１２は、Ｉ２Ｃバス２上の第２アドレスＡＤ２を受信する（ステップＳ７）。一方、監視部４２２は、Ｉ２Ｃバス２の信号レベルを監視している。ステップＳ６で、ＡＣＫ信号は、“Ｈ”である。監視部４２２がＡＣＫ信号＝“Ｈ”を検出すると（ステップＳ８）、記憶部４３２は、第２アドレスＡＤ２を第２スレーブ装置４２のアドレスとして記憶する（ステップＳ９）。ステップＳ９により、第２スレーブ装置４２のアドレスが第２アドレスＡＤ２に確定する。
【００３７】
上述のように、マスタ装置３が第１スレーブ装置４１に使用されているアドレス以外のアドレスを生成する。そのため、アドレスが割当てられているスレーブ装置と、アドレスが割当てられていないスレーブ装置とが混在していても、後者のスレーブ装置にアドレスをより確実に割当てることができる。ひいては、Ｉ２Ｃ通信におけるアドレスの競合をより確実に防止することができる。
【００３８】
その上、監視部４２２が未割当ての第２スレーブ装置４２に設けられている。そのため、監視部４２２による監視の結果、第１スレーブ装置４１の応答がない場合、第２スレーブ装置４２が自主的に第２アドレスＡＤ２を取り込むことができる。もし、監視部４２２がマスタ装置３に設けられている場合、第２スレーブ装置４２にアドレスを割当てるために、特別な通信プロトコル（例えばコマンド）が必要となる。これに対し、本実施の形態によれば、Ｉ２Ｃ通信プロトコルの改変が不要である。
【００３９】
１．２．アドレス割当て方法の詳細
１．２．１．マスタ装置３の動作
第１の実施の形態に係るアドレス割当て方法をより詳細に説明する。図３は、マスタ装置３の動作例を示す詳細なフローチャートである。ここでも、上述の初期条件が置かれている。
【００４０】
記憶部３１のシステム構成データは、割当てデータ３１１に加え、通信システム１における全てのスレーブ装置の個数Ｍを示すデータを含んでいる。本実施の形態では、スレーブ装置の個数Ｍは、Ｍ＝２である。
【００４１】
一方、割当てデータ３１１は、初期段階で、第１アドレスＡＤ１と第１スレーブ装置４１との関係を示している。つまり、割当てデータ３１１は、初期段階で、第１アドレスＡＤ１に対する第１スレーブ装置４１の組を一組備える。この組の数から、アドレスが割当てられている割当済みスレーブ装置の個数Ｌが分かる。このことにより、現段階でマスタ装置３がアドレスを割当てるべきスレーブ装置の個数Ｎを求めることができる。この個数Ｎを「未割付け数」と言う。
【００４２】
先ず、アドレス生成部３２は、システム構成データを記憶部３１から読み出す（ステップＳ１１）。このことにより、アドレス生成部３２は、全てのスレーブ装置の個数Ｍをシステム構成データから取得する。これに加え、アドレス生成部３２は、システム構成データに含まれる割当てデータ３１１を読み出して、第１スレーブ装置４１が第１アドレスＡＤ１を持つことを取得する。そして、アドレス生成部３２は、全てのスレーブ装置の個数Ｍから割当済みスレーブ装置の個数Ｌを減算することにより、未割付け数Ｎ（＝Ｍ−Ｌ）を算出する（ステップＳ１２）。
【００４３】
ステップＳ１２の段階で、未割付け数Ｎは、Ｎ（＝２−１）＝１個である。未割付け数ＮがＮ＞０を満たす場合（ステップＳ１３；ＹＥＳ）、アドレス生成部３２は、上述したように、割当てデータ３１１を参照して、未使用の第２アドレスＡＤ２を生成する（ステップＳ１４）。そして、送信部３３は、第２アドレスＡＤ２をＩ２Ｃバス２に送信する（ステップＳ１５）。
【００４４】
ステップＳ１５により、第２スレーブ装置４２がＩ２Ｃバス２上の第２アドレスＡＤ２を受信する。この段階では、第２スレーブ装置４２には、まだアドレスが割当てられていない。したがって、割当済みの第１スレーブ装置４１のみが応答を返すことができる。
【００４５】
割当て済みの第１スレーブ装置４１から応答が無い場合（ステップＳ１６；ＮＯ）、これは、第１スレーブ装置４１が第１アドレスＡＤ１をＩ２Ｃバス２上の第２アドレスＡＤ２と比較した結果、両者が互いに一致しなかったことを意味する。詳細については後述するが、この段階では、第２スレーブ装置４２のアドレスは未確定である。この場合、送信部３３は、同じ第２アドレスＡＤ２を再度Ｉ２Ｃバス２に送信する（ステップＳ１７）。
【００４６】
再び、割当て済みの第１スレーブ装置４１から応答が無い場合（ステップＳ１８；ＮＯ）、この段階で第２スレーブ装置４２のアドレスは、確定している。そこで、アドレス生成部３２は、割当てデータ３１１を更新する（ステップＳ１９）。更新にあたって、アドレス生成部３２は、第２アドレスＡＤ２に対する第２スレーブ装置４２の組を関連付けとして割当てデータ３１１に追記する。
【００４７】
ステップＳ１９の後、未割付け数Ｎは、Ｎ＝Ｎ−１（個）である（ステップＳ１１０）。マスタ装置３は、未割付け数ＮがＮ＝０になるまで（ステップＳ１３；ＮＯ）、ステップＳ１４−Ｓ１９を繰り返す。本実施の形態では、初期段階での未割付け数ＮがＮ＝１個である。そのため、第２スレーブ装置４２のアドレスが確定された段階で、アドレスの割当てが終了する。このように、アドレス生成部３２は、割当てデータ３１１を参照して、現段階での未割付け数Ｎを取得する。そして、アドレス生成部３２は、未割付け数分の未割当てスレーブ装置の各々に対して重複しない未使用のアドレスを未割当て数分生成する。
【００４８】
上述したように、マスタ装置３は、第２アドレスＡＤ２を２回送信している。これは、以下の理由による。１回目の送信は（ステップＳ１５参照）、割当済みの第１スレーブ装置４１が正常に動作するかと言うことをマスタ装置３が調べるためにある。ステップＳ１５で、マスタ装置３は、未使用の第２アドレスＡＤ２を送信している。したがって、原則的に、第１スレーブ装置４１から応答は無い。しかしながら、何らかの原因で、第１スレーブ装置４が正常に動作せず、第１スレーブ装置４１から応答がある場合がある。その場合（ステップＳ１６；ＹＥＳ）、通信システム１は、異常終了する。早期に異常終了することで、通信システム１の安定した動作が確保される。ステップＳ１８も、基本的にはステップＳ１６と同様である。
【００４９】
１．２．２．第２スレーブ装置の動作
図４は、第２スレーブ装置４２の動作例を示す詳細なフローチャートである。マスタ装置３が未使用の第２アドレスＡＤ２を送信した後（ステップＳ１５参照）、割当て済みの第１スレーブ装置４１は、ＡＣＫ信号＝“Ｈ”をＩ２Ｃバス２に送信する。その後、未割当ての第２スレーブ装置４２は、以下の書き換え処理を行う。
【００５０】
先ず、受信部４１２は、Ｉ２Ｃバス２上の第２アドレスＡＤ２を受信する（ステップＳ２１）。そして、監視部４２２は、Ｉ２Ｃバス２上のＡＣＫ信号＝“Ｈ”を検出する。なお、この段階で、監視部４２２は、ＡＣＫ信号＝“Ｈ”を検出するのみである。また、この段階では、記憶部４３２が第２アドレスＡＤ２を記憶する必要はない。もし、この段階で記憶部４３２が第２アドレスＡＤ２を記憶する場合、後述のステップＳ２５で、記憶部４３２が第２アドレスＡＤ２を再度記憶すればよい。
【００５１】
その後、ステップＳ１５で述べたように、マスタ装置３が未使用の第２アドレスＡＤ２をＩ２Ｃバス２に再度送信する。そのため、受信部４１２は、第２アドレスＡＤ２をＩ２Ｃバス２を介して再度受信する（ステップＳ２３）。
【００５２】
そして、割当て済みの第１スレーブ装置４１から応答がない場合（ステップＳ２４；ＮＯ）、監視部４２２は、Ｉ２Ｃバス２上のＡＣＫ信号＝“Ｈ”を検出する。この場合、記憶部４３２は、第２アドレスＡＤ２を第２スレーブ装置４２のアドレスとして記憶する（ステップＳ２５）。
【００５３】
以上述べたように、マスタ装置３では、送信部３３が第２アドレスＡＤを２回送信する。そして、記憶部４３２が２回目に送信された第２アドレスＡＤ２を記憶する。アドレスの割当て対象の第２スレーブ装置４２が２回目に送信された第２アドレスＡＤ２を使用することで、通信の安定性を図ることができる。
【００５４】
なお、上述のアドレス割当て方法は、プログラムを用いてソフトウェア的に実行することも、ハードウェア的に実行するもできる。
【００５５】
２．第２の実施の形態
第２の実施の形態について説明する。第１の実施の形態では、初期段階で未割当てのスレーブ装置が１個ある場合を例に挙げた。本実施の形態では、初期段階で未割当てのスレーブ装置が複数個ある場合について説明する。
【００５６】
２．１．概要
図５は、第２の実施の形態に係る通信システムの構成を例示するブロック図である。通信システム１Ａは、Ｉ２Ｃバス２およびマスタ装置３に加え、Ｍ個（≧２）のスレーブ装置４１−４Ｍを備える。以下適宜、Ｍ個のスレーブ装置４１−４Ｍのうち、Ｍ番目のスレーブ装置４Ｍを「第Ｍスレーブ装置４Ｍ」と呼ぶ。
【００５７】
以下、通信システム１Ａを次の初期条件の下で説明する。第１に、第１スレーブ装置４１には、第１アドレスＡＤ１が既に割当てられている。第２に、第２から第Ｍスレーブ装置４２−４Ｍの各々には、アドレスが割当てられていない。
【００５８】
マスタ装置３は、第２から第Ｍスレーブ装置４２−４Ｍの各々にアドレスを順番に割当てていく。ここでは、アドレスの割当て対象が第２スレーブ装置４２である場合について説明する。
【００５９】
第２スレーブ装置４２のアドレスの割当てに先立って、未割当ての第２から第Ｍスレーブ装置４２−４Ｍのうちで第２スレーブ装置４２のみがＩ２Ｃバス２（詳細には、後述のクロック信号線２１）に接続される。このことにより、未割当ての第２から第Ｍスレーブ装置４２−４Ｍのうち、第２スレーブ装置４２のみが通信可能な状態にある。これに対し、第３から第Ｍスレーブ装置４３−４Ｍは、Ｉ２Ｃバス２から実質的に解放されている。そのため、第３から第Ｍスレーブ装置４３−４Ｍは、それぞれ通信不能な状態にある。図５の破線矢印は、第３から第Ｍスレーブ装置４３−４Ｍが通信不能な状態であることを表している。マスタ装置３は、この状態で第２スレーブ装置４２に第１スレーブ装置４１以外のアドレスを割当てる。
【００６０】
もし、全てのスレーブ装置４１−４ＭがＩ２Ｃバス２に接続されている状態でマスタ装置３が第２スレーブ装置４２にアドレスを割当てる場合、そのアドレスが他のスレーブ装置４３−４Ｍのいずれかのアドレスと競合する恐れがある。それは、マスタ装置３が他のスレーブ装置４３−４Ｍの各々のアドレスを把握しているとは限らないからである。そこで、マスタ装置３は、上述した状態で第２スレーブ装置４２にアドレスを割当てる。なお、割当済みの第１スレーブ装置４１は、通信不能であっても差し支えはない。それは、マスタ装置３が初期段階で第１スレーブ装置４１の第１アドレスＡＤ１を取得しており、予め第１アドレスＡＤ１以外のアドレスを第２スレーブ装置４２に割当てるからである。
【００６１】
２．２．Ｉ２Ｃ通信プロトコル
通信システム１Ａで使用されるＩ２Ｃ通信プロトコルについて説明する。図６は、Ｉ２Ｃ通信プロトコルを説明するためのブロック図である。ここでは、説明を簡単にするため、一般的なマスタ装置ＭＡおよび一般的なスレーブ装置ＳＬを例に挙げる。
【００６２】
Ｉ２Ｃバス２は、クロック信号線２１と、デ−タ信号線２２とを備える。クロック信号線２１は、クロックＳＣＬを供給するための信号線である。クロック信号線２１の一端は、プルアップ抵抗Ｒ１に接続されている。他方、デ−タ信号線２２は、アドレスを始めとする各種デ−タＳＤＡを供給するための信号線である。デ−タ信号線２２の一端は、プルアップ抵抗Ｒ２に接続されている。
【００６３】
マスタ装置ＭＡは、クロック信号線２１と、デ−タ信号線２２とに接続されている。一般的なスレーブ装置ＳＬも、クロック信号線２１と、デ−タ信号線２２とに接続されている。Ｉ２Ｃ通信プロトコルが用いられる通信システムは、基本的に、図６に示す構成をとる。
【００６４】
マスタ装置Ａは、以下のように、一般的なスレーブ装置ＳＬにアドレスＡＤｎを割当てる。なお、一般的なスレーブ装置ＳＬは、初期アドレスＡＤｘを持っている。アドレスの割当てに先立って、マスタ装置ＭＡは、クロックＳＣＬをクロック信号線２１に送信（供給）している。マスタ装置ＭＡは、そのクロックＳＣＬに同期して、アドレスＡＤｎをデ−タ信号線２２に送信する。
【００６５】
一方、一般的なスレーブ装置ＳＬは、以下のように動作する。一般的なスレーブ装置ＳＬは、クロック信号線２１に供給されたクロックＳＣＬを受信する。これと共に、一般的なスレーブ装置ＳＬは、クロックＳＣＬに同期して、デ−タ信号線２２上のアドレスＡＤｎを受信する。そして、一般的なスレーブ装置ＳＬは、初期アドレスＡＤｘが受信したアドレスＡＤｎと一致するかを検出する。両者が互いに一致する場合、一般的なスレーブ装置ＳＬは、アドレスＡＤｎを使用する。このことにより、一般的なスレーブ装置ＳＬのアドレスが確定する。
【００６６】
図７（Ａ）および（Ｂ）は、Ｉ２Ｃ通信プロトコルのタイミングチャートである。図７（Ａ）は、クロックＳＣＬを示す。図７（Ｂ）は、デ−タＳＤＡ（具体的には、アドレス）を示す。
【００６７】
Ｉ２Ｃ通信プロトコルにおいて、デ−タＳＤＡは、８ビット単位で処理される。８ビットのデ−タのうち、最上位ビット（ＭＳＢ）から２ビット目までは、７ビットのデータ（Ａ０−Ａ６で構成されている）を示す。ここで、７ビットのデータは、アドレスＡＤｎであるとする。最下位ビット（ＬＳＢ）は、処理内容が読み出し（Read）または書き込み（/Write）のいずれかであることを示す。
【００６８】
（スタ−トコンディションＳＣ）
Ｉ２Ｃ通信プロトコルによれば、アドレスの割当ては、スタ−トコンディション（ＳＣ）により開始される。スタ−トコンディション以前、マスタ装置ＭＡは、クロックＳＣＬの送信を停止している。そのため、クロック信号線２１は、プルアップ抵抗Ｒ１によって、”Ｈ”に保持されている。スタ−トコンディションの実行にあたって、マスタ装置ＭＡは、クロックＳＣＬの供給を開始する。クロックＳＣＬ（０）が”Ｈ”のとき、マスタ装置ＭＡは、”Ｌ”の信号をデ−タ信号線２２に供給することで、デ−タ信号線２２を”Ｈ”から”Ｌ”に切替える。
【００６９】
（アドレス転送）
続いて、マスタ装置ＭＡは、クロックＳＣＬ（０）が”Ｈ”から”Ｌ”に切り替わったとき、７ビットのアドレスＡＤｎ（Ａ６−Ａ０）を含む８ビットのデ−タを最上位ビットから順にデ−タ信号線２２に送信する。一般的なスレーブ装置ＳＬは、クロックＳＣＬ（１−８）に同期して、デ−タ信号線２２上の８ビットのデータを最上位ビットから順に受信する。
【００７０】
（ＡＣＫ）
一般的なスレーブ装置ＳＬは、受信したアドレスＡＤｎ（Ａ６−Ａ０）を初期アドレスＡＤｘと比較する。両者が互いに一致する場合、一般的なスレーブ装置ＳＬは、その旨の応答をする。その際に、一般的なスレーブ装置ＳＬは、クロックＳＣＬ（９）に同期して、ＡＣＫ信号＝”Ｌ”をデ−タ信号線２２に送信する。その送信の前には、データ信号線２２が“Ｈ”に保持されている。したがって、デ−タ信号線２２の信号レベルが“Ｌ”から“Ｈ”に変化する。この変化は、マスタ装置ＭＡの送信に対して一般的なスレーブ装置ＳＬの応答があったことを意味する。一方、両者が互いに一致しない場合、一般的なスレーブ装置ＳＬは、クロックＳＣＬ（９）に同期して、ＡＣＫ信号＝”Ｈ”をデ−タ信号線２２に送信する。したがって、デ−タ信号線２２の信号レベルは、変化しない。このことは、上述したように、マスタ装置ＭＡの送信に対して一般的なスレーブ装置ＳＬの応答が無いことを意味する。図７（Ａ）は、一般的なスレーブ装置ＳＬから応答がある場合を示している。なお、両者が互いに一致しない場合、デ−タ信号線２２が“Ｈ”に保持されていれば差し支えない。このように、デ−タ信号線２２の信号レベルの変化を調べることにより、応答の有無が分かる。
【００７１】
２．３．通信システム１Ａの構成
上述のＩ２Ｃ通信プロトコルを踏まえて、通信システム１Ａを説明する。図８は、第２の実施の形態に係る通信システムの構成例を示すブロック図である。通信システム１Ａは、一般的なスレーブ装置ＳＬと、マスタ装置３と、第１から第３スレーブ装置４１−４３とを備える。全てのスレーブ装置の個数Ｍ＝４は、一例である。なお、マスタ装置３の内部の図示が省略されている。更に、第１から第３スレーブ装置４１−４３の主要部のみが図示されている。
【００７２】
一般的なスレーブ装置ＳＬは、Ｉ２Ｃバス２に既存のスレーブ装置が接続されていても、本実施の形態を適用することができることを示すために設けられている。説明を明確にするため、以下の初期条件をおく。第１に、一般的なスレーブ装置ＳＬには、アドレスＡＤ０が既に割当てられている。第２に、第１から第３スレーブ装置４１−４３の各々には、アドレスが割当てられていない。
【００７３】
（接続構成）
通信システム１Ａの接続構成について説明する。一般的なスレーブ装置ＳＬは、デ−タ入出力端子Ｃ１と、クロック入力端子Ｃ２とを備える。デ−タ入出力端子Ｃ１は、デ−タ信号線２２に接続されている。クロック入力端子Ｃ２は、クロック信号線２１に接続されている。
【００７４】
マスタ装置３は、デ−タ入出力端子Ｃ１と、クロック入力端子Ｃ２とを備える。デ−タ入出力端子Ｃ１は、デ−タ信号線２２に接続されている。クロック入力端子Ｃ２は、クロック信号線２１に接続されている。
【００７５】
第１から第３スレーブ装置４１−４３の各々は、デ−タ入出力端子Ｃ１と、クロック入力端子Ｃ２とを備える。この点については、一般的なスレーブ装置ＳＬと同じである。ただし、第１から第３スレーブ装置４１−４３の各々は、以下の点で、一般的なスレーブ装置ＳＬと異なる。
【００７６】
１つ目は、端子の個数である。２つ目は、第１から第３スレーブ装置４１−４３の各々がクロック信号線２１に共通に接続されていないことである。第１から第３スレーブ装置４１−４３は、クロック信号線２１に関して、実質的に直列に接続されている。３つ目は、２つのスイッチに関する。２つのスイッチが第１から第３スレーブ装置４１−４３の各々に設けられている。２つのスイッチは、互いに相補的にオン／オフする。
【００７７】
第１スレーブ装置４１に着目する。第１スレーブ装置４１は、デ−タ入出力端子Ｃ１１と、クロック入力端子Ｃ２１と、中継端子Ｃ３１と、第１スイッチＳＷ１１と，第２スイッチＳＷ２１とを更に備える。第１スレーブ装置４１は、クロック信号線２１に接続されている。第１スレーブ装置４１は、クロック信号線２１からクロックを直接受信し、受信したクロックを後段の第２スレーブ装置４２に転送可能である。その詳細は、以下の通りである。
【００７８】
デ−タ入出力端子Ｃ１１は、デ−タ信号線２２に接続されている。クロック入力端子Ｃ２１は、クロック信号線２１に直接接続されている。また、クロック入力端子Ｃ２１は、第１スレーブ装置４１の内部でノ−ドＮＤ１１に接続されている。中継端子Ｃ３１は、後段の第２スレーブ装置４２のクロック入力端子Ｃ２２にクロック信号線２１Ａで接続されている。
【００７９】
第１スイッチＳＷ１１について述べる。第１スイッチＳＷ１１は、例えば、ＮＭＯＳトランジスタである。他のスレーブ装置の第１スイッチＳＷ１２，ＳＷ１３も、これと同様である。第１スイッチＳＷ１１の一端は、ノ−ドＮＤ１１を介してクロック入力端子Ｃ２１に接続されている。第１スイッチＳＷ１１の他端は、ノ−ドＮＤ２１を介して中継端子Ｃ３１に接続されている。第１スイッチＳＷ１１は、経路Ｐ１を断続する。ここで、経路Ｐ１は、クロック入力端子Ｃ２１から第１スイッチＳＷ１１を経由した中継端子Ｃ３１までの電気的な経路である。第１スレーブ装置４１にアドレスが割当てられていない段階では、第１スイッチＳＷ１１は、オフに保持されている。このとき、経路Ｐ１は電気的に遮断されている。第１スレーブ装置４１のアドレスが確定した段階で、第１スイッチＳＷ１１は、オフからオンに切り替わる。このとき、遮断されていた経路Ｐ１が復帰する。大局的には、第１スイッチＳＷ１１は、クロック信号線２１Ａを断続するとも言える。
【００８０】
第２スイッチＳＷ２１について述べる。第２スイッチＳＷ２１は、例えば、ＰＭＯＳトランジスタである。他のスレーブ装置の第２スイッチＳＷ２２，ＳＷ２３も、これと同様である。第２スイッチＳＷ２１の一端は、ノ−ドＮＤ２１に接続されている。第２スイッチＳＷ２１の他端は、グラウンド線（ＧＮＤ）に接続されている。第２スイッチＳＷ２１は、第１スイッチＳＷ１１に対して相補的にオン／オフする。したがって、第１スイッチＳＷ１１がオフのとき、第２スイッチＳＷ２１は、オンである。逆に、第１スイッチＳＷ１１がオンのとき、第２スイッチＳＷ２１は、オフである。第２スイッチＳＷ２１は、第１スイッチＳＷ１１がオフのとき、クロック信号線２１Ａを“Ｌ”（グラウンド電位）に保持するためにある。
【００８１】
第２スレーブ装置４２に着目する。第２スレーブ装置４２は、デ−タ入出力端子Ｃ１２と、クロック入力端子Ｃ２２と、中継端子Ｃ３２と、第１スイッチＳＷ１２と、第２スイッチＳＷ２２とを更に備える。
【００８２】
第２スレーブ装置４２は、第１スレーブ装置４２と同様の構成をとる。以下、両者の相違点を主に述べる。デ−タ入出力端子Ｃ１２は、デ−タ信号線２２に接続されている。クロック入力端子Ｃ２２は、クロック信号線２１Ａで第１スレーブ装置４１の中継端子Ｃ３１に接続されている。中継端子Ｃ３２は、後段の第３スレーブ装置４３のクロック入力端子Ｃ２２３にクロック信号線２１Ｂで接続されている。第２スレーブ装置４２は、クロック信号線２１からクロックを間接的に受信し、受信したクロックを後段の第３スレーブ装置４２に転送可能である。その詳細は、以下の通りである。
【００８３】
第１スイッチＳＷ１２は、経路Ｐ２を断続する。ここで、経路Ｐ２は、クロック入力端子Ｃ２２から第１スイッチＳＷ１２を経由して中継端子Ｃ３２までの電気的な経路である。第２スレーブ装置４２にアドレスが割当てられていない段階では、第１スイッチＳＷ１２は、オフに保持されている。第２スレーブ装置４２のアドレスが確定した段階で、第１スイッチＳＷ１２は、オフからオンに切り替わる。第１スイッチＳＷ１２は、クロック信号線２１に供給されたクロックＳＣＬを第２スレーブ装置４２から後段の第３スレーブ装置４３まで転送するための経路を断続するとも言える。なお、この経路は、経路Ｐ２とクロック信号線２１Ｂの経路とを指す。大局的には、第１スイッチＳＷ１２は、クロック信号線２１Ｂを断続するとも言える。
【００８４】
第３スレーブ装置４３に着目する。第３スレーブ装置４３は、デ−タ入出力端子Ｃ１３と、クロック入力端子Ｃ２３と、中継端子Ｃ３３と、第１スイッチＳＷ１３と、第２スイッチＳＷ２３とを更に備える。
【００８５】
第３スレーブ装置４３も、第１および第２スレーブ装置４１,４２と同様の構成をとる。以下、第３スレーブ装置４３と上述の各スレーブ装置との相違点を主に述べる。デ−タ入出力端子Ｃ１３は、デ−タ信号線２２に接続されている。クロック入力端子Ｃ２３は、クロック信号線２１Ｂで第２スレーブ装置４２の中継端子Ｃ３２に接続されている。第３スレーブ装置４３は、最終段である。そのため、中継端子Ｃ３２は、いずれのスレーブ装置にも接続されていない。
【００８６】
第１スイッチＳＷ１３は、経路Ｐ３を断続する。ここで、経路Ｐ３は、クロック入力端子Ｃ２３から第１スイッチＳＷ１３を経由した中継端子Ｃ３２までの経路である。ただし、第３スレーブ装置４３は、最終段である。そのため、第１スイッチＳＷ１３のオン／オフは、問われない。本実施の形態では、初期段階でオフに保持されている。
【００８７】
（Ｉ２Ｃバスへの接続）
第１から第３スレーブ装置４１−４３の各々のアドレスは、その順に確定される。先ず、第１スレーブ装置４１がアドレスの割当て対象である場合について述べる。この場合、第１スレーブ装置４１のアドレスが確定されるまで、第１から第３スイッチＳＷ１１，ＳＷ１２，ＳＷ１３の各々は、オフに保持される。第１スレーブ装置４１にアドレスが割当てられるとき、第１から第３スレーブ装置４１−４３の中では、第１スレーブ装置４１のみがクロック信号線２１に接続されている。一方、第２および第３スレーブ装置４２，４３の双方は、クロック信号線２１から切り離されている。したがって、第２および第３スレーブ装置４２，４３の双方は、クロックＳＣＬを受信することができない。そのため、第２および第３スレーブ装置４２，４３の各々は、正常に動作しない。つまり、第２および第３スレーブ装置４２，４３の双方は、実質的にＩ２Ｃバス２から解放されている。
【００８８】
次に、第２スレーブ装置４２がアドレスの割当て対象である場合について述べる。この場合、第２スレーブ装置４２のアドレスが確定されるまで、第２および第３スイッチＳＷ１２，ＳＷ１３の双方は、オフに保持される。一方、第１スイッチＳＷ１２は、オンに保持される。そのため、第２スレーブ装置４２にアドレスが割当てられるとき、第１および第２スレーブ装置４１，４２は、クロック信号線２１に接続されている。一方、第３スレーブ装置４３は、クロック信号線２１から切り離されている。したがって、第３スレーブ装置４３は、クロックＳＣＬを受信することができない。つまり、第３スレーブ装置４３は、実質的にＩ２Ｃバス２から解放されている。
【００８９】
最後に、第３スレーブ装置４３がアドレスの割当て対象である場合について述べる。この場合、第２および第３スイッチＳＷ１２，ＳＷ１３の各々は、オンに保持される。マスタ装置３は、一般的なスレーブ装置ＳＬに加え、第１および第２スレーブ装置４１，４３の双方のアドレスを取得している。したがって、この段階で、マスタ装置３は、他のスレーブ装置のアドレスと重複することなく、第３スレーブ装置４３にアドレスを割当てることができる。
【００９０】
以上述べたように、第２スレーブ装置４２は、第１スレーブ装置４１にアドレスが割当てられた後に、第１スレーブ装置４１を介してクロック信号線２１からクロックを受信することができるように、第１スレーブ装置４１に接続される。言うまでもなく、第２スレーブ装置４２と同様に、第３スレーブ装置４３が、第２スレーブ装置４２にアドレスが割当てられた後に、第１および第２スレーブ装置４１，４２を介してクロック信号線２１からクロックを受信することができるように、第２スレーブ装置４２に接続されてもよい。
【００９１】
（監視部４２１−４２３）
監視部４２１−４２３について述べる。監視部４２１−４２３は、デ−タ入出力端子Ｃ１１，Ｃ１２，Ｃ１３にそれぞれ接続されている。更に、監視部４２１−４２３は、クロック入力端子Ｃ２１，Ｃ２２，Ｃ２３にそれぞれ接続されている。
【００９２】
監視部４２１−４２３は、制御信号ＣＮＴＬ１−３を第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３にそれぞれ出力することで、第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３の各々のオン／オフを操作する。これと共に、監視部４２１−４２３は、制御信号ＣＮＴＬ１−３を第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３にそれぞれ出力することで、第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３の各々のオン／オフを操作する。
【００９３】
なお、第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３は、制御信号ＣＮＴＬ１−３の各々が“Ｈ（Ｌ）”の期間、オン（オフ）である。これとは逆に、第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３は、制御信号ＣＮＴＬ１−３の各々が“Ｈ（Ｌ）”の期間、オフ（オン）である。
【００９４】
監視部４２１−４２３は、上述のスイッチの操作にあたって、割当て済みのスレーブ装置（例えば、“ＳＬ”）からの応答をデ−タ信号線２２を介して監視している。監視部４２１−４２３は、その応答を検出することができなかった場合、制御信号ＣＮＴＬ１−３＝“Ｌ”を第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３にそれぞれ出力して、第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３の各々をオフに保持する。これと共に、監視部４２１−４２３は、制御信号ＣＮＴＬ１−３＝“Ｌ”を第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３にそれぞれ出力して、第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３の各々をオンに保持する。
【００９５】
２．４．マスタ装置およびスレーブ装置の詳細
図９は、第２の実施の形態に係るマスタ装置およびスレーブ装置の詳細なブロック図である。マスタ装置３は、ハードウェアで構成されている。第１から第３スレーブ装置４１−４３は、それぞれ同一のハードウェア構成をとる。ここでは、説明を簡単にするため、マスタ装置３および第１スレーブ装置４１を取り上げる。なお、図９は、構成要素の一部の図示を省略している。
【００９６】
２．４．１．マスタ装置３
マスタ装置３は、記憶部３１と、マイクロコンピュ−タ３２Ａと、通信部３３Ａとを備える。以下、マスタ装置３の構成について順を追って説明する。
【００９７】
記憶部３１は、例えば、フラッシュメモリで構成されている。初期段階で、記憶部３１は、図１０に示す割当てデータ３３１を記憶する。本実施の形態の場合、初期段階で、一般的なスレーブ装置ＳＬにアドレスＡＤ０が割当てられている。そのため、アドレスＡＤ０が一般的なスレーブ装置ＳＬに関連付けられている。他の第１から第３スレーブ装置４１−４３の各々には、アドレスが割当てられていない。そのため、第１から第３スレーブ装置４１−４３は、いずれのアドレスにも関連付けられていない。最終的に、記憶部３１は、図１１に示す割当てデータ３３１を記憶する。第１から第３スレーブ装置４１−４３が、例えばアドレスＡＤ１−ＡＤ３にそれぞれ関連付けられる。
【００９８】
マイクロコンピュ−タ３２Ａは、「アドレス生成部」とも呼ばれ、アドレス生成部３２の機能を持つ。マイクロコンピュ−タ３２Ａは、マスタ装置３全体を制御する。更に、マイクロコンピュ−タ３２Ａは、記憶部３１および通信部３３Ａと協働して、各々のスレーブ装置を制御する。その際に、マイクロコンピュ−タ３２Ａは、ステップＳ１１−Ｓ１１０（図３参照）に示すように動作する。
【００９９】
通信部３３Ａは、「送信部」とも呼ばれ、送信部３３の機能を持つ。通信部３３Ａは、マイクロコンピュ−タ３２Ａおよび第１スレーブ装置４１間の通信を制御する。例えば、通信部３３Ａは、マイクロコンピュ−タ３２Ａから出力されたデジタルデ−タをアナログデ−タに変換し、これをデ−タ信号線２２に出力する。これとは逆に、通信部３３Ａは、マスタ装置３からデ−タ信号線２２に出力されたアナログデ−タをデジタルデ−タに変換し、これをマイクロコンピュ−タ３２Ａに出力する。
【０１００】
２．４．２．スレーブ装置
第１スレーブ装置４１は、受信部４１１、監視部４２１および記憶部４３１に加え、処理部４４１を備える。なお、これらの添え字「１」は、対応する構成要素が第１スレーブ装置４１の構成要素であることを示す。以下、第１スレーブ装置４１の構成について順を追って説明する。
【０１０１】
処理部４４１は、デ−タ入出力端子Ｃ１１に接続されている。処理部４４１は、センサ、画像処理、音声処理等、所定の処理を実行する。また、処理部４４１は、記憶部４３１（具体的には、第３バッファ４３３）に格納されているアドレスを第１スレーブ装置４１のアドレスとして使用する。この際に、処理部４４１は、そのアドレスを処理部４４１自身に書き込む。その結果、マスタ装置３は、そのアドレスを第１スレーブ装置４１のアドレスとして認識する。この他、処理部４４１は、一般的なスレーブ装置ＳＬと同様の処理を実行して、ＡＣＫ信号をデータ信号線２２に出力する。
【０１０２】
監視部４２１は、以下の構成をとる。監視部４２１は、応答監視部４２１と、検出部４２２とを備える。応答監視部４２１は、データ信号線２２の信号レベルを監視している。言い換えれば、応答監視部４２１は、他のスレーブ装置、具体的には、割当て済みのスレーブ装置（例えば、“ＳＬ”）からの応答を監視している。応答監視部４２１は、いずれかの割当て済みのスレーブ装置からの応答に応じて、以下の処理を行う。
【０１０３】
いずれかの割当て済みのスレーブ装置から応答があった場合、デ−タ信号線２２にＡＣＫ信号＝”Ｌ”が供給される。この場合、応答監視部４２１は、ＡＣＫ信号＝”Ｌ”を検出する。そして、応答監視部４２１は、制御信号ＣＮＴＬ＝“ＣＬＥＡＲ”を記憶部４３１に出力する。一方、いずれの割当て済みのスレーブ装置からも応答がなかった場合、デ−タ信号線２２にＡＣＫ信号＝”Ｈ”が供給される。この場合、応答監視部４２１は、ＡＣＫ信号＝”Ｈ”を検出する。そして、応答監視部４２１は、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３１に出力する。
【０１０４】
記憶部４３１は、第１バッファ４３１と、第２バッファ４３２と、第３バッファ４３３とを備える。初期段階では、全てのバッファが初期アドレスを格納している。初期アドレスは、任意である。なお、記憶部４３１が単体のハードウェア（例えば、フラッシュメモリ）で構成された場合、第１から第３バッファ４３１−４３３の各々が記憶部４３１の一記憶領域で構成されていても差し支えはない。
【０１０５】
記憶部４３１は、応答監視部４２１から制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を受けた場合、以下のシフト動作を実行する。詳細には、記憶部４３１は、第２バッファ４３２に格納されているアドレスを第３バッファ４３３にシフトさせる。その上で、記憶部４３１は、第１バッファ４３１に格納されているアドレスを第２バッファ４３１にシフトさせる。一方、記憶部４３１は、応答監視部４２１から制御信号ＣＮＴＬ＝“ＣＬＥＡＲ”を受けた場合、第１および第２バッファ４３１，４３２の双方の記憶内容を初期アドレスにリセットする。なお、この場合、第１バッファ４３１のみがリセットされてもよい。
【０１０６】
以下、第１から第３バッファ４３１−４３３について個別に説明する。第１バッファ４３１は、受信部４１１からのアドレスを格納する。更に、第１バッファ４３１は、シフト動作により、現在格納しているアドレスを第２バッファ４３２に出力する。
【０１０７】
第２バッファ４３２は、シフト動作により、現在格納しているアドレスを第３バッファ４３３に出力する。その上で、第２バッファ４３１は、第１バッファ４３１からのアドレスを格納する。
【０１０８】
第３バッファ４３３は、シフト動作により、第２バッファ４３１からのアドレスを格納する。
【０１０９】
検出部４２２は、第２バッファ４３２に格納されているアドレスが第３バッファ４３３に格納されているアドレスと一致するかを検出する。
【０１１０】
先ず、両者が互いに一致する場合について述べる。この場合、検出部４２２は、その旨の検出信号ＤＥＴ＝“Ｔ”を処理部４４１に出力する。処理部４４１は、検出信号ＤＥＴ＝“Ｔ”を受けて、次の動作を実行する。第１に、処理部４４１は、第３バッファ４３３に格納されているアドレスを処理部４４１自身に書き込む。第２に、処理部４４１は、制御信号ＣＮＴＬ＝“ＳＴＯＰ”を記憶部４３１に出力する。制御信号ＣＮＴＬ＝“ＳＴＯＰ”は、記憶部４３１の「読み出し」または「書き込み」を停止させるための制御信号である。第３に、処理部４４１は、制御信号ＣＮＴＬ１＝“Ｈ”を第１および第２スイッチＳＷ１１，ＳＷ２１に出力する。
【０１１１】
次に、両者が互いに一致しなかった場合について述べる。この場合、検出部４２２は、その旨の検出信号ＤＥＴ＝“Ｆ”を処理部４４１に出力する。処理部４４１は、検出信号ＤＥＴ＝“Ｆ”を受けて、何もしない。
【０１１２】
以下、具体例を挙げて第１スレーブ装置４１の書き換え処理ついて説明する。本実施の形態では、初期段階で第１スレーブ装置４１には、アドレスが割当てられていない。第１スレーブ装置４１がアドレスの割当て対象である場合、第１から第３スレーブ装置４１−４３の各々の第１スイッチＳＷ１１は、制御信号ＣＮＴＬ１＝“Ｌ”を受けてオフに保持されている。したがって、第２および第３スレーブ装置４２，４３は、クロック信号線２１から切り離されている。その状態で、マスタ装置３は、未使用の第１アドレスＡＤ１をデ−タ信号線２２に２回送信する。
【０１１３】
先ず、１回目の送信時について述べる。一般的なスレーブ装置ＳＬは、確定されたアドレスＡＤ０を持っている。一般的なスレーブ装置ＳＬは、アドレスＡＤ０が第１アドレスＡＤ１に一致しないため、ＡＣＫ信号＝“Ｈ”をデ−タ信号線２２に送信する。上述したように、ＡＣＫ信号＝“Ｈ”は、第１アドレスＡＤ１の後に続く（図７参照）。したがって、受信部４１１が第１アドレスＡＤ１を受信した後、応答監視部４２１がＡＣＫ信号＝“Ｈ”を検出する。
【０１１４】
第１スレーブ装置４１は、以下に述べる１回目の書き換え処理を実行する。始め、全てのバッファ４３１−４３３は、初期アドレスＡＤｘを格納している。受信部４１１は、第１アドレスＡＤ１を受信すると、これを第１バッファ４３１に格納する。また、第２および第３バッファ４３２，４３３は、初期アドレスＡＤｘを格納している。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３１に出力する。これにより、記憶部４３１は、シフト動作を実行する。そのため、第１バッファ４３１に格納されている第１アドレスＡＤ１が第２バッファ４３２にシフトされる。この段階で、第２バッファ４３２は、第１アドレスＡＤ１を格納している。一方、第３バッファ４３３は、引き続き初期アドレスＡＤｘを格納している。
【０１１５】
検出部４２２は、第２バッファ４３２の第１アドレスＡＤ１を第３バッファ４３３の初期アドレスＡＤｘと比較する。両者が互いに一致しないので、検出部４２２は、検出信号ＤＥＴ＝“Ｆ”を処理部４４１に出力する。この場合、処理部４４１は、何もしない。
【０１１６】
次に、２回目の送信時について述べる。１回目の送信時と同様に、受信部４１１が第１アドレスＡＤ１を受信した後、応答監視部４２１がＡＣＫ信号＝“Ｈ”を検出する。
【０１１７】
そして、第１スレーブ装置４１は、以下に述べる２回目の書き換え処理を実行する。受信部４１１は、受信した第１アドレスＡＤ１を第１バッファ４３１に再度格納する。また、第２バッファ４３２は、引き続き第１アドレスＡＤ１を格納している。一方、第３バッファ４３３は、初期アドレスＡＤｘを格納している。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３１に出力する。これにより、記憶部４３１は、シフト動作を実行する。そのため、第２バッファ４３２に格納されている第１アドレスＡＤ１が第３バッファ４３３にシフトされる。この段階で、第３バッファ４３３は、第１アドレスＡＤ１を格納している。
【０１１８】
検出部４２２は、第２バッファ４３２の第１アドレスＡＤ１を第３バッファ４３３の第１アドレスＡＤ１と比較する。両者が互いに一致するので、検出部４２２は、検出信号ＤＥＴ＝“Ｔ”を処理部４４１に出力する。この場合、処理部４４１は、第３バッファ４３３に格納されている第１アドレスＡＤ１を処理部４４１自身に書き込む。このことにより、第１スレーブ装置４１のアドレスが確定する。そして、処理部４４１は、制御信号ＣＮＴＬ＝“ＳＴＯＰ”を記憶部４３１に出力する。これと共に、処理部４４１は、制御信号ＣＮＴＬ１＝“Ｈ”を第１および第２スイッチＳＷ１１，ＳＷ２１に出力する。このことにより、第２スレーブ装置４２が第１スレーブ装置４１を介してデ−タ信号線２２に接続される。
【０１１９】
２．５．通信システムの動作
図１２を参照しながら、通信システム１Ａの動作を説明する。図１２（Ａ）−（Ｈ）は、第２の実施の形態に係る通信システムの動作例を示すタイミングチャ−トである。図１２（Ａ）は、通信システム１Ａの起動信号ＳＴＡＲＴを示す。図１２（Ｂ）は、デ−タ信号線２２に供給されるデ−タＳＤＡを示す。デ−タＳＤＡは、具体的には、アドレスである。図１２（Ｃ）、（Ｅ）および（Ｇ）は、第１から第３スレーブ装置４１−４３に供給されるクロックＳＣＬをそれぞれ示す。図１２（Ｄ）、（Ｆ）および（Ｈ）は、第１から第３スレーブ装置４１−４３のアドレスをそれぞれ示す。
【０１２０】
（ｔ＝０：初期条件）
初期条件について説明する。第１に、一般的なスレーブ装置ＳＬは、確定されたアドレスＡＤ０を持っている。第２に、第１から第３スレーブ装置４１−４３の各々には、アドレスが割当てられていない。したがって、マスタ装置３の記憶部３１は、図１０に示す割当てデータ３１１を記憶している。第３に、第１から第３スレーブ装置４１−４３の第１から第３バッファ４３１−４３３は、初期アドレスＡＤｘをそれぞれ格納している。
【０１２１】
（ｔ＝１からｔ＝２：未割付け数Ｎの算出）
時刻ｔ＝１からｔ＝２の期間は、マスタ装置３の動作に関する。その主な動作は、以下の通りである。１つ目は、マスタ装置３の起動である。時刻ｔ＝１にて、マスタ装置３は、外部から起動信号ＳＴＡＲＴ＝“Ｈ”を受ける。マスタ装置３は、起動信号ＳＴＡＲＴ＝“Ｈ”の期間に、第１から第３スレーブ装置４１−４３の各々にアドレスを順に割当てる。２つ目は、クロックＳＣＬの供給である。マスタ装置３は、クロック信号線２１にクロックＳＣＬの供給を開始する。３つ目は、未割付け数Ｎを算出である。マスタ装置３は、未割付け数Ｎを算出することにより、アドレスを割当てるべきスレーブ装置の個数Ｎを求める。
【０１２２】
その際に、マイクロコンピュータ３２Ａは、記憶部３１からシステム構成データを読み出して、全てのスレーブ装置の個数Ｍ＝４を取得する。更に、マイクロコンピュータ３２Ａは、システム構成データに含まれる割当てデータ３１１を参照して、一般的なスレーブ装置ＳＬがアドレスＡＤ０を持つことを取得する。全てのスレーブ装置の個数Ｍ＝４から割当済みのスレーブ装置の個数Ｌ＝１を減算することにより、未割付け数Ｎ＝Ｍ−Ｌ＝３を算出する。このことにより、マイクロコンピュータ３２Ａは、現段階で生成すべきアドレスの個数が３個であることを把握する。
【０１２３】
一方、第１から第３スレーブ装置４１−４３の各々は、Ｉ２Ｃバスとの接続を実行する。具体的には、第１スレーブ装置４１のアドレスが確定されるまで（時刻ｔ＝４）、監視部４２１−４２３の各々は、制御信号ＣＮＴＬ１−３＝“Ｌ”を第１から第３スイッチＳＷ１１，ＳＷ１２，ＳＷ１３にそれぞれ出力する。これにより第１から第３スイッチＳＷ１１，ＳＷ１２，ＳＷ１３の各々は、オフに保持される。したがって、第２および第３スレーブ装置４２，４３は、クロック信号線２１から切り離されている。
【０１２４】
（ｔ＝２からｔ＝３：第１アドレスＡＤ１の１回目の送信）
時刻ｔ＝２からｔ＝３の期間は、第１スレーブ装置４１へのアドレスの割当てに関する。マスタ装置３は、この期間に、第１アドレスＡＤ１の１回目の送信を行う。
【０１２５】
時刻ｔ＝２にて、マイクロコンピュータ３２Ａは、割当てデータ３１１を参照して、未使用の第１アドレスＡＤ１を生成する。そして、通信部３３Ａは、第１アドレスＡＤ１をデ−タ信号線２２に送信する（図１２（Ｂ）参照）。
【０１２６】
一般的なスレーブ装置ＳＬは、第１アドレスＡＤ１を現在割当てられているアドレスＡＤ０と比較する。両者が互いに異なるので、一般的なスレーブ装置ＳＬは、ＡＣＫ信号＝“Ｈ”をデ−タ信号線２２に送信する。そのため、未割当ての第１スレーブ装置４１は、一般的なスレーブ装置ＳＬから応答を受けない。
【０１２７】
一方、第１スレーブ装置４１は、直接クロック信号線２１に接続されている。そのため、第１スレーブ装置４１は、クロック信号線２１上のクロックＳＣＬを受信し始める（図１２（Ｃ）参照）。これに対し、第２および第３スレーブ装置４２，４３双方は、クロック信号線２１から切り離されている。そのため、第２および第３スレーブ装置４２，４３の双方は、クロックＳＣＬを受信できない（図１２（Ｅ）、（Ｇ）参照）。
【０１２８】
第１スレーブ装置４１は、以下に述べる１回目の書き換え処理を実行する。受信部４１１は、通信部３３Ａによって送信された第１アドレスＡＤ１を受信し、これを第１バッファ４３１に格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３１に出力する。これにより、記憶部４３１は、シフト動作を実行する。この段階で、第２バッファ４３２は、第１アドレスＡＤ１を格納している。一方、第３バッファ４３３は、引き続き初期アドレスＡＤｘを格納している。
【０１２９】
検出部４２２は、第２バッファ４３２の第１アドレスＡＤ１を第３バッファ４３３の初期アドレスＡＤｘと比較する。両者が互いに一致しないので、検出部４２２は、検出信号ＤＥＴ＝“Ｆ”を処理部４４１に出力する。この場合、処理部４４１は、何もしない。
【０１３０】
（ｔ＝３からｔ＝４：第１アドレスＡＤ１の２回目の送信）
時刻ｔ＝３からｔ＝４の期間も、第１スレーブ装置４１へのアドレスの割当てに関する。マスタ装置３は、この期間に、第１アドレスＡＤ１の２回目の送信を行う。
【０１３１】
時刻ｔ＝３にて、マイクロコンピュータ３２Ａは、同じ第１アドレスＡＤ１を生成する。そして、通信部３３Ａは、第１アドレスＡＤ１をデ−タ信号線２２に送信する（図１２（Ｂ）参照）。
【０１３２】
時刻ｔ＝２からｔ＝３の場合と同様に、第１スレーブ装置４１は、以下に述べる２回目の書き換え処理を実行する。受信部４１１は、通信部３３Ａによって送信された第１アドレスＡＤ１を受信し、これを第１バッファ４３１に再度格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３１に出力する。これにより、記憶部４３１は、シフト動作を実行する。この段階で、第２バッファおよび第３バッファ４３２，４３３は、第１アドレスＡＤ１を格納している。
【０１３３】
検出部４２２は、第２バッファ４３２の第１アドレスＡＤ１を第３バッファ４３３の第１アドレスＡＤ１と比較する。両者が互いに一致するので、検出部４２２は、検出信号ＤＥＴ＝“Ｔ”を処理部４４１に出力する。この場合、この場合、処理部４４１は、第３バッファ４３３に格納されている第１アドレスＡＤ１を処理部４４１自身に書き込む。このことにより、時刻ｔ＝４にて、第１スレーブ装置４１のアドレスが第１アドレスＡＤ１に確定する（図１２（Ｄ）参照）。
【０１３４】
そして、処理部４４１は、制御信号ＣＮＴＬ＝“ＳＴＯＰ”を記憶部４３１に出力する。これと共に、処理部４４１は、制御信号ＣＮＴＬ１＝“Ｈ”を第１スイッチＳＷ１１に出力する。このことにより、第１スイッチＳＷ１１は、オフからオンに切り替わる。一方、第２スイッチＳＷ２１は、オンからオフに切り替わる。したがって、第２スレーブ装置４２が第１スレーブ装置４１を介してクロック信号線２１に接続される。
【０１３５】
第１スレーブ装置４１のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。その際に、マイクロコンピュータ３２Ａは、第１スレーブ装置４１に対する第１アドレスＡＤ１の組を割当てデータ３１１に追記する。
【０１３６】
（ｔ＝５からｔ＝６：第２アドレスＡＤ２の１回目の送信）
時刻ｔ＝５からｔ＝６の期間は、第２スレーブ装置４２へのアドレスの割当てに関する。マスタ装置３は、この期間に、第２アドレスＡＤ２の１回目の送信を行う。
【０１３７】
時刻ｔ＝５にて、マイクロコンピュータ３２Ａは、更新された割当てデータ３１１を参照して、第１スレーブ装置４１が第１アドレスＡＤ１を持つことを更に取得する。全てのスレーブ装置の個数Ｍ＝４から割当済みのスレーブ装置の個数Ｌ＝２を減算することにより、未割付け数Ｎ＝Ｍ−Ｌ＝２を算出する。このことにより、マイクロコンピュータ３２Ａは、現段階で生成すべきアドレスの個数が２個であることを把握する。
【０１３８】
そして、マイクロコンピュータ３２Ａは、割当てデータ３１１を参照して、未使用の第２アドレスＡＤ２を生成する。第２アドレスＡＤ２は、一般的なスレーブ装置ＳＬおよび第１スレーブ装置４１の双方で使用されているアドレス以外のアドレスである。通信部３３Ａは、第２アドレスＡＤ２をデ−タ信号線２２に送信する（図１４（Ｂ）参照）。
【０１３９】
先の第１スレーブ装置４１は、自己の第１アドレスＡＤ１が受信した第２アドレスＡＤ２と異なるので、ＡＣＫ信号＝“Ｌ”をデ−タ信号線２２に送信する。一般的なスレーブ装置ＳＬも、ＡＣＫ信号＝“Ｌ”をデ−タ信号線２２に送信する。したがって、未割当ての第２スレーブ装置４２は、一般的なスレーブ装置ＳＬに加え、割当て済みの第１スレーブ装置４１から応答を受けない。
【０１４０】
一方、第２スレーブ装置４２は、経路Ｐ１を介してクロック信号線２１上のクロックＳＣＬを受信し始める（図１２（Ｅ）参照）。これに対し、第３スレーブ装置４３は、クロック信号線２１から切り離されている。そのため、第３スレーブ装置４３は、クロックＳＣＬを受信できない（図１２（Ｇ）参照）。
【０１４１】
第２スレーブ装置４２は、以下に述べる２回目の書き換え処理を実行する。受信部４１２は、通信部３３Ａによって送信された第２アドレスＡＤ２を受信し、これを第１バッファ４３１に格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３２に出力する。これにより、記憶部４３２は、シフト動作を実行する。この段階で、第２バッファ４３２は、第２アドレスＡＤ２を格納している。一方、第３バッファ４３３は、引き続き初期アドレスＡＤｘを格納している。
【０１４２】
検出部４２２は、第２バッファ４３２の第２アドレスＡＤ２を第３バッファ４３３の初期アドレスＡＤｘと比較する。両者が互いに一致しないので、検出部４２２は、検出信号ＤＥＴ＝“Ｆ”を処理部４４２に出力する。この場合、処理部４４２は、何もしない。
【０１４３】
（ｔ＝６からｔ＝７：第２アドレスＡＤ２の２回目の送信）
時刻ｔ＝６からｔ＝７の期間も、第２スレーブ装置４２へのアドレスの割当てに関する。マスタ装置３は、この期間に、第２アドレスＡＤ２の２回目の送信を行う。
【０１４４】
時刻ｔ＝６にて、マイクロコンピュータ３２Ａは、同じ第２アドレスＡＤ２を生成する。そして、通信部３３Ａは、第２アドレスＡＤ２をデ−タ信号線２２に送信する（図１２（Ｂ）参照）。
【０１４５】
時刻ｔ＝３からｔ＝４の場合と同様に、第２スレーブ装置４２は、以下に述べる２回目の書き換え処理を実行する。受信部４１２は、通信部３３Ａによって送信された第２アドレスＡＤ２を受信し、これを第１バッファ４３１に再度格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３２に出力する。これにより、記憶部４３２は、シフト動作を実行する。この段階で、第２バッファおよび第３バッファ４３２，４３３は、第２アドレスＡＤ２を格納している。
【０１４６】
検出部４２２は、第２バッファ４３２の第２アドレスＡＤ２を第３バッファ４３３の第２アドレスＡＤ２と比較する。両者が互いに一致するので、検出部４２２は、検出信号ＤＥＴ＝“Ｔ”を処理部４４２に出力する。この場合、処理部４４２は、第３バッファ４３３に格納されている第２アドレスＡＤ２を処理部４４２自身に書き込む。このことにより、時刻ｔ＝７にて、第２スレーブ装置４２のアドレスが第２アドレスＡＤ２に確定する（図１２（Ｆ）参照）。
【０１４７】
そして、処理部４４２は、制御信号ＣＮＴＬ＝“ＳＴＯＰ”を記憶部４３２に出力する。これと共に、処理部４４２は、制御信号ＣＮＴＬ２＝“Ｈ”を第１および第２スイッチＳＷ１２，ＳＷ２２の双方に出力する。このことにより、第１スイッチＳＷ１２は、オフからオンに切り替わる。一方、第２スイッチＳＷ２２は、オンからオフに切り替わる。したがって、第３スレーブ装置４３が第１および第２スレーブ装置４１，４２を介してクロック信号線２１に接続される。
【０１４８】
第２スレーブ装置４２のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。その際に、マイクロコンピュータ３２Ａは、第２スレーブ装置４２に対する第２アドレスＡＤ２の組を割当てデータ３１１に追記する。
【０１４９】
（ｔ＝８からｔ＝９：第３アドレスＡＤ３の１回目の送信）
時刻ｔ＝８からｔ＝９の期間は、第３スレーブ装置４３へのアドレスの割当てに関する。マスタ装置３は、この期間に、第３アドレスＡＤ３の１回目の送信を行う。
【０１５０】
時刻ｔ＝８にて、マイクロコンピュータ３２Ａは、更新された割当てデータ３１１を参照して、第２スレーブ装置４２が第２アドレスＡＤ２を持つことを更に取得する。全てのスレーブ装置の個数Ｍ＝４から割当済みのスレーブ装置の個数Ｌ＝３を減算することにより、未割付け数Ｎ＝Ｍ−Ｌ＝１を算出する。このことにより、マイクロコンピュータ３２Ａは、現段階で生成すべきアドレスの個数が１個であることを把握する。
【０１５１】
そして、マイクロコンピュータ３２Ａは、割当てデータ３１１を参照して、未使用の第３アドレスＡＤ３を生成する。第３アドレスＡＤ３は、他のスレーブ装置ＳＬ，４１，４２の各々で使用されているアドレス以外のアドレスである。通信部３３Ａは、第３アドレスＡＤ３をデ−タ信号線２２に送信する（図１４（Ｂ）参照）。
【０１５２】
先の第２スレーブ装置４２は、自己の第２アドレスＡＤ２が受信した第３アドレスＡＤ３と異なるので、ＡＣＫ信号＝“Ｌ”をデ−タ信号線２２に送信する。他のスレーブ装置も、ＡＣＫ信号＝“Ｌ”をデ−タ信号線２２に送信する。したがって、未割当ての第３スレーブ装置４３は、他のスレーブ装置から応答を受けない。
【０１５３】
一方、第３スレーブ装置４３は、経路Ｐ１およびＰ２を介してクロック信号線２１上のクロックＳＣＬを受信し始める（図１２（Ｇ）参照）。そして、第３スレーブ装置４３は、以下に述べる１回目の書き換え処理を実行する。受信部４１３は、通信部３３Ａによって送信された第３アドレスＡＤ３を受信し、これを第１バッファ４３１に格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３３に出力する。これにより、記憶部４３３は、シフト動作を実行する。この段階で、第２バッファ４３２は、第３アドレスＡＤ３を格納している。一方、第３バッファ４３３は、引き続き初期アドレスＡＤｘを格納している。
【０１５４】
検出部４２２は、第２バッファ４３２の第３アドレスＡＤ３を第３バッファ４３３の初期アドレスＡＤｘと比較する。両者が互いに一致しないので、検出部４２２は、検出信号ＤＥＴ＝“Ｆ”を処理部４４３に出力する。この場合、処理部４４３は、何もしない。
【０１５５】
（ｔ＝９からｔ＝１０：第３アドレスＡＤ３の２回目の送信）
時刻ｔ＝９からｔ＝１０の期間も、第３スレーブ装置４３へのアドレスの割当てに関する。マスタ装置３は、この期間に、第３アドレスＡＤ３の２回目の送信を行う。
【０１５６】
時刻ｔ＝９にて、マイクロコンピュータ３２Ａは、同じ第３アドレスＡＤ３を生成する。そして、通信部３３Ａは、第３アドレスＡＤ３をデ−タ信号線２２に送信する（図１２（Ｂ）参照）。
【０１５７】
時刻ｔ＝３からｔ＝４の場合と同様に、第３スレーブ装置４３は、以下に述べる２回目の書き換え処理を実行する。受信部４１３は、通信部３３Ａによって送信された第３アドレスＡＤ３を受信し、これを第１バッファ４３１に再度格納する。応答監視部４２１は、ＡＣＫ信号＝“Ｈ”の検出後、制御信号ＣＮＴＬ＝“ＳＨＩＦＴ”を記憶部４３３に出力する。これにより、記憶部４３３は、シフト動作を実行する。この段階で、第２バッファおよび第３バッファ４３２，４３３は、第３アドレスＡＤ３を格納している。
【０１５８】
検出部４２２は、第２バッファ４３２の第３アドレスＡＤ３を第３バッファ４３３の第３アドレスＡＤ３と比較する。両者が互いに一致するので、検出部４２２は、検出信号ＤＥＴ＝“Ｔ”を処理部４４３に出力する。この場合、処理部４４３は、第３バッファ４３３に格納されている第３アドレスＡＤ３を処理部４４３自身に書き込む。このことにより、時刻ｔ＝１０にて、第３スレーブ装置４３のアドレスが第３アドレスＡＤ３に確定する（図１２（Ｈ）参照）。
【０１５９】
そして、処理部４４３は、制御信号ＣＮＴＬ＝“ＳＴＯＰ”を記憶部４３３に出力する。なお、第３スレーブ装置４３は、最終段目である。そのため、第３スレーブ装置４３の監視部４２３は、第１スイッチＳＷ１３および第２スイッチＳＷ２３を操作する必要はない。
【０１６０】
第３スレーブ装置４３のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。その際に、マイクロコンピュータ３２Ａは、第３スレーブ装置４３に対する第３アドレスＡＤ３の組を割当てデータ３１１に追記する。
【０１６１】
その後、マイクロコンピュータ３２Ａは、更新された割当てデータ３１１を参照して、第３スレーブ装置４３が第３アドレスＡＤ３を持つことを更に取得する。全てのスレーブ装置の個数Ｍ＝４から割当済みのスレーブ装置の個数Ｌ＝４を減算することにより、未割付け数Ｎ＝Ｍ−Ｌ＝０を算出する。未割付け数ＮがＮ＝０であるので、マイクロコンピュータ３２Ａは、全てのスレーブ装置の各々にアドレスが割当てられていることを把握する。そのため、マスタ装置３は、アドレスの割当てを終了する。
【０１６２】
本実施の形態によれば、未割当ての第１から第３スレーブ装置４１−４３のうち、アドレスの割当て対象のスレーブ装置のみが通信可能な状態で、その対象のスレーブ装置にアドレスをより確実に割当てることができる。そのため、通信システム１Ａが複数のスレーブ装置を備えていても、第１の実施の形態と同様の効果を得ることができる。更に、一般的なスレーブ装置ＳＬがＩ２Ｃバス２に接続されていても、一般的なスレーブ装置ＳＬの構成に左右されないという、顕著な効果も得ることができる。
【０１６３】
３．第３の実施の形態
第３の実施の形態について説明する。本実施の形態は、対象のスレーブ装置のみが通信可能な状態となる他の具体例である。以下、第２の実施の形態と異なる点について説明する。
【０１６４】
３．１．概要
本実施の形態の概要は、以下の通りである。マスタ装置３は、対象の未割当てスレーブ装置以外のスレーブ装置を非アクティブに設定した上で、対象の未割当てのスレーブ装置にアドレスを割当てる。ここで言う「非アクティブ」とは、対象の未割当てのスレーブ装置の電源がオフである状態を指している。このことにより、未割当ての複数のスレーブ装置のうち、対象の未割当てスレーブ装置のみが通信可能な状態を作ることができる。
【０１６５】
３．２．通信システムの構成
図１３は、第３の実施の形態に係る通信システムの構成を例示するブロック図である。通信システム１Ｂは、一般的なスレーブ装置ＳＬと、第１から第３スレーブ装置４１−４３とを備える。スレーブ装置の個数Ｍ＝４は、一例である。なお、図１３は、通信部３３Ａを始め、各スイッチＳＷ等の図示を省略している。
【０１６６】
本実施の形態は、以下の点で第２の実施の形態と異なる。第１に、第１から第３スレーブ装置４１−４３が初期段階からクロック信号線２１に共通に接続されている。そのため、第１から第３スレーブ装置４１−４３の各々は、初期段階からクロックＳＣＬを受信する。なお、中継端子Ｃ３１−Ｃ３３は、解放されている。第１スイッチＳＷ１１，ＳＷ１２，ＳＷ１３は、常時オフに保持されている。これに対し、第２スイッチＳＷ２１，ＳＷ２２，ＳＷ２３は、常時オンに保持されている。
【０１６７】
第２に、第１から第３スレーブ装置４１−４３は、更に、電源部４５１−４５３をそれぞれ備える。第３に、マイクロコンピュータ３２Ａは、イネ−ブル信号ＥＮ１−ＥＮ３を電源部４５１−４５３にそれぞれ出力して、第１から第３スレーブ装置４１−４３のオン／オフをそれぞれ制御する。具体的には、マイクロコンピュータ３２Ａは、第１から第３スレーブ装置４１−４３に対して電源をこの順に投入する。
【０１６８】
電源部４５１−４５３は、マイクロコンピュータ３２Ａからイネ−ブル信号ＥＮ１−ＥＮ３＝“Ｈ”をそれぞれ受けたとき、対応するスレーブ装置への電力の供給を開始する。以後、電源部４５１−４５３は、イネ−ブル信号ＥＮ１−ＥＮ３＝“Ｌ”をそれぞれ受けるまで、電力の供給を続ける。第１から第３スレーブ装置４１−４３は、電源部４５１−４５３から電力の供給をそれぞれ受けている期間に、オン、つまり、アクティブである。このことは、第１から第３スレーブ装置４１−４３の各々に電源が投入されたことを意味する。
【０１６９】
３．３．通信システムの動作
図１４を参照しながら、通信システム１Ｂの動作を説明する。図１４（Ａ）−（Ｊ）は、第３の実施の形態に係る通信システムの動作例を示すタイミングチャ−トである。図１４（Ａ）は、通信システム１Ｂの起動信号ＳＴＡＲＴを示す。図１４（Ｂ）は、デ−タ信号線２２に供給されるデ−タＳＤＡを示す。デ−タＳＤＡは、具体的には、アドレスである。図１４（Ｃ）は、第１から第３スレーブ装置４１−４３の各々に供給されるクロックＳＣＬを示す。図１４（Ｄ）、（Ｆ）および（Ｈ）は、イネ−ブル信号ＥＮ１−ＥＮ３をそれぞれ示す。図１４（Ｅ）、（Ｇ）および（Ｉ）は、第１から第３スレーブ装置４１−４３のアドレスをそれぞれ示す
（ｔ＝０：初期条件）
説明を明確にするため、第２の実施の形態と同様の初期条件（ｔ＝０）をおく。ただし、第１から第３スレーブ装置４１−４３の各々は、初期段階からクロックＳＣＬを受信する（図１４（Ｃ）参照）。更に、初期段階で、第１から第３スレーブ装置４１−４３の各々は、オフ、つまり非アクティブである。
【０１７０】
（ｔ＝１からｔ＝２：未割付け数Ｎの算出）
時刻ｔ＝１からｔ＝２の期間は、第２の実施の形態と同様である。この段階では、第１スレーブ装置４１がアドレスの割当て対象である。
【０１７１】
（ｔ＝２からｔ＝３：第１アドレスＡＤ１の１回目の送信）
時刻ｔ＝２からｔ＝３の期間は、第１スレーブ装置４１へのアドレスの割当てに関する。マスタ装置３は、この期間に、第１アドレスＡＤ１の１回目の送信を行う。
【０１７２】
時刻ｔ＝２にて、マイクロコンピュータ３２Ａは、イネ−ブル信号ＥＮ１＝“Ｈ”を未割当ての第１スレーブ装置４１の電源部４５１に出力する。電源部４５１は、マスタ装置３からイネ−ブル信号ＥＮ１＝“Ｈ”を受けて、第１スレーブ装置４１への電力の供給を開始する。これにより、第１スレーブ装置４１は、オフからオンに切り替わる。これに対し、第１および第２スレーブ装置４２，４３の各々は、オフである。つまり、未割当ての第１から第３スレーブ装置４１−４３のうちで第１スレーブ装置４１のみが通信可能な状態である。
【０１７３】
この状態で、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を参照して、未使用の第１アドレスＡＤ１を生成する。そして、通信部３３Ａは、第１アドレスＡＤ１をデ−タ信号線２２に送信する（図１４（Ｂ）参照）。そして、第１スレーブ装置４１は、１回目の書き換え処理を実行する。
【０１７４】
（ｔ＝３からｔ＝４：第１アドレスＡＤ１の２回目の送信）
時刻ｔ＝３からｔ＝４の期間も、第１スレーブ装置４１へのアドレスの割当てに関する。マスタ装置３は、この期間に、第１アドレスＡＤ１の２回目の送信を行う。そして、第１スレーブ装置４１は、２回目の書き換え処理を実行する。第１スレーブ装置４１のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。
【０１７５】
（ｔ＝５からｔ＝６：第２アドレスＡＤ２の１回目の送信）
時刻ｔ＝５にて、マイクロコンピュータ３２Ａは、イネ−ブル信号ＥＮ２＝“Ｈ”を未割当ての第２スレーブ装置４２の電源部４５２に出力する。電源部４５２は、マスタ装置３からイネ−ブル信号ＥＮ２＝“Ｈ”を受けて、第２スレーブ装置４２への電力の供給を開始する。これにより、第２スレーブ装置４２は、オフからオンに切り替わる。これに対し、第３スレーブ装置４３は、オフである。つまり、未割当ての第２および第３スレーブ装置４２−４３のうち、第２スレーブ装置４２のみが通信可能な状態である。
【０１７６】
この状態で、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を参照して、未使用の第２アドレスＡＤ２を生成する。そして、通信部３３Ａは、第２アドレスＡＤ２をデ−タ信号線２２に送信する（図１４（Ｂ）参照）。そして、第２スレーブ装置４２は、１回目の書き換え処理を実行する。
【０１７７】
（ｔ＝６からｔ＝７：第２アドレスＡＤ２の２回目の送信）
時刻ｔ＝６からｔ＝７の期間も、第２スレーブ装置４２へのアドレスの割当てに関する。マスタ装置３は、この期間に、第２アドレスＡＤ２の２回目の送信を行う。そして、第２スレーブ装置４２は、２回目の書き換え処理を実行する。第２スレーブ装置４２のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。
【０１７８】
（ｔ＝８からｔ＝９：第３アドレスＡＤ３の１回目の送信）
時刻ｔ＝８にて、マイクロコンピュータ３２Ａは、イネ−ブル信号ＥＮ３＝“Ｈ”を未割当ての第３スレーブ装置４３の電源部４５３に出力する。電源部４５３は、マスタ装置３からイネ−ブル信号ＥＮ３＝“Ｈ”を受けて、第３スレーブ装置４３への電力の供給を開始する。これにより、第３スレーブ装置４３は、オフからオンに切り替わる。
【０１７９】
（ｔ＝９からｔ＝１０：第３アドレスＡＤ３の２回目の送信）
時刻ｔ＝９からｔ＝１０の期間も、第３スレーブ装置４３へのアドレスの割当てに関する。マスタ装置３は、この期間に、第３アドレスＡＤ３の２回目の送信を行う。そして、第３スレーブ装置４３は、２回目の書き換え処理を実行する。第３スレーブ装置４３のアドレスの確定後、マイクロコンピュータ３２Ａは、記憶部３１の割当てデータ３１１を更新する。
【０１８０】
以上の説明では、マイクロコンピュータ３２Ａが第１から第３スレーブ装置４１−４３に電源を順に投入した。この点において、第１から第３スレーブ装置４１−４３への電源の投入の順番は、ランダムであってもよい。この他、本実施の形態は、以下のような改変が可能である。例えば、マイクロコンピュータ３２Ａが第１から第３スレーブ装置４１−４３の各々の処理部４４１−４４３に制御信号を送信することで、各々の処理部４４１−４４３のオン／オフ、つまりアクティブ／非アクティブを制御してもよい。
【０１８１】
本実施の形態では、中継端子Ｃ３１―Ｃ３２が使用されていない。そのため、第１および第２の実施の形態と同様の効果に加え、中継端子Ｃ３１―Ｃ３２に他の機能を割当てることができるという、顕著な効果を得ることができる。
【０１８２】
本発明は、その要旨を逸脱しない範囲で好適に改変することができる。
【０１８３】
以下に、改変の一例を示す。例えば、時刻ｔ＝１にて、マスタ装置３が制御信号ＣＮＴＬ＝“ＣＬＥＡＲ”を消去コマンドとして第１から第３スレーブ装置４１−４Ｍの記憶部４３１−４３３に送信する。このことが選択的または定期的に実行されることにより、第１から第３スレーブ装置４１−４Ｍの各々のアドレスが一時的または定期的に変化する。この各々のアドレスの変化は、第三者による通信の傍受の防止に役立つ。この他、第１から第３スレーブ装置４１−４Ｍの各々のアドレス自体を暗号化することもできる。
【符号の説明】
【０１８４】
１，１Ａ，１Ｂ：通信システム
２：Ｉ２Ｃバス
２１：クロック信号線
２２：デ−タ信号線
３：マスタ装置
３１：マスタ装置３の記憶部
３１１：割当てデータ
３２：送信部
３２Ａ：マイクロコンピュータ
３３：送信部
３３Ａ：通信部
４１−４Ｍ：スレーブ装置
４１１，４１２，４１３：受信部
４２１，４２２，４２３：監視部
４３１，４３２，４３３：記憶部
４４１，４４２，４４３：処理部
４５１，４５２，４５３：電源部
４２１：応答監視部
４２２：検出部
【図１】
2014016907.tif 000003
【図２】
2014016907.tif 000004
【図３】
2014016907.tif 000005
【図４】
2014016907.tif 000006
【図５】
2014016907.tif 000007
【図６】
2014016907.tif 000008
【図７】
2014016907.tif 000009
【図８】
2014016907.tif 000010
【図９】
2014016907.tif 000011
【図１０】
2014016907.tif 000012
【図１１】
2014016907.tif 000013
【図１２】
2014016907.tif 000014
【図１３】
2014016907.tif 000015
【図１４】
2014016907.tif 000016