(57)【特許請求の範囲】
【請求項１】
第１および第２シリアルバスと、
前記第１および第２シリアルバスにそれぞれ結合される第１および第２シリアルインタフェースを含み、アドレスを含んだ第１命令を前記第１シリアルバスへ送信する制御ユニットと、
それぞれ、前記第１および第２シリアルバスに着脱可能であり、前記第１および第２シリアルバスに接続された状態で自身のアドレスを含んだ前記第１命令を前記第１シリアルバスから受信した場合に、肯定応答を前記第１シリアルバスへ送信する複数の電子装置と、
を備え、
前記複数の電子装置のそれぞれは、
前記第１および第２シリアルバスに接続された際に、第１信号を前記第２シリアルバスへ送信する第１処理と、
前記第１信号を送信したのち、予め定めた演算規則に基づき候補となるアドレスを順次変更しながら、前記候補となるアドレスを含んだ前記第１命令を前記第１シリアルバスへ順次送信することで、当該第１命令に対する前記肯定応答を受信しないアドレスを探索する第２処理と、
前記第２処理の探索結果となるアドレスを前記第２シリアルバスへ送信する第３処理と、を実行し、
前記制御ユニットは、前記第１信号を受信した際に、前記第１シリアルインタフェースを前記第１シリアルバスとの間の通信を停止するスリープ状態に遷移させ、前記探索結果となるアドレスを前記第２シリアルバスから受信する、
シリアル通信システム。
【請求項２】
請求項１記載のシリアル通信システムにおいて、
前記複数の電子装置のそれぞれは、
前記第１命令を前記第１シリアルバスへ送信する命令送信部と、
前記第１命令を前記第１シリアルバスから受信する命令受信部と、
を備え、
前記制御ユニットは、前記第１命令を前記第１シリアルバスへ送信する命令送信部を備え、前記第１命令を前記第１シリアルバスから受信する命令受信部を備えない、
シリアル通信システム。
【請求項３】
請求項２記載のシリアル通信システムにおいて、
前記第１シリアルバスは、Ｉ２Ｃ規格に基づくＩ２Ｃバスであり、
前記複数の電子装置のそれぞれは、前記Ｉ２Ｃ規格上のマスタ状態とスレーブ状態の両方で動作可能であり、
前記制御ユニットは、前記Ｉ２Ｃ規格上のマスタ状態のみで動作可能である、
シリアル通信システム。
【請求項４】
請求項３記載のシリアル通信システムにおいて、
前記複数の電子装置のそれぞれは、前記第２処理において、前記第１信号を前記第２シリアルバスへ送信したのち、前記マスタ状態で動作するためのスタートコンディションを前記第１シリアルバスへ送信し、自身が前記マスタ状態となった場合に前記アドレスの探索を行い、
前記制御ユニットは、前記第１信号を受信した場合には、前記第１シリアルインタフェースを前記スリープ状態に遷移させ、前記探索結果となるアドレスの受信を完了した場合には、前記スリープ状態から復帰させ、前記スタートコンディションを前記第１シリアルバスへ送信する、
シリアル通信システム。
【請求項５】
請求項３記載のシリアル通信システムにおいて、
前記複数の電子装置のそれぞれは、前記第３処理において、前記探索結果となるアドレスを前記第２シリアルバスへ送信すると共に、当該アドレスの送信タイミングと同期して、前記第１シリアルバスに含まれるクロック配線にクロック信号を送信し、
前記制御ユニットは、前記クロック配線から受信した前記クロック信号に同期して、前記探索結果となるアドレスを前記第２シリアルバスから１ビットずつ受信する、
シリアル通信システム。
【請求項６】
請求項１記載のシリアル通信システムにおいて、
前記シリアル通信システムは、さらに、前記第１および第２シリアルバスを複数備え、
前記制御ユニットは、
前記複数の第１シリアルバスにそれぞれ結合される複数の前記第１シリアルインタフェースと、
前記複数の第２シリアルバスにそれぞれ結合される複数の前記第２シリアルインタフェースと、
を備え、
前記複数の第１シリアルインタフェースの少なくとも一部は、前記第１命令を前記第１シリアルバスへ送信する命令送信部を備え、前記第１命令を前記第１シリアルバスから受信する命令受信部を備えない、
シリアル通信システム。
【請求項７】
請求項６記載のシリアル通信システムにおいて、
前記制御ユニットは、
前記複数の電子装置のそれぞれに対して、前記複数の電子装置をそれぞれ識別する装置識別子を含んだ第２命令を発行するホスト制御装置と、
前記ホスト制御装置との間で通信を行うホストインタフェースと、前記複数の第１および第２シリアルインタフェースと、アドレス管理用メモリと、を備える通信制御装置と、
を有し、
前記アドレス管理用メモリは、前記装置識別子と、前記複数の第１シリアルバスをそれぞれ識別するバス識別子と、当該バス識別子で識別される前記第１シリアルバス内でのアドレスと、の対応関係を保持し、
前記通信制御装置は、前記ホスト制御装置から前記第２命令を受信した際に、前記アドレス管理用メモリの対応関係に基づいて、所定のアドレスを含んだ前記第１命令を所定の前記第１シリアルバスへ送信し、前記探索結果となるアドレスを前記第２シリアルバスから受信した際に、当該アドレスを前記アドレス管理用メモリに登録する、
シリアル通信システム。
【請求項８】
請求項１記載のシリアル通信システムにおいて、
前記第２シリアルバスは、１本のＧＰＩＯバスである、
シリアル通信システム。
【請求項９】
請求項１記載のシリアル通信システムにおいて、
前記第２シリアルバスは、差動データを伝送する差動バスである、
シリアル通信システム。
【請求項１０】
第１および第２シリアルバスに着脱が可能な複数の電子装置を前記第１シリアルバスを介して制御する通信制御装置であって、
前記第１シリアルバスに前記複数の電子装置が接続された状態で、前記複数の電子装置のいずれかのアドレスを含んだ第１命令を前記第１シリアルバスへ送信することで当該電子装置を制御する第１シリアルインタフェースと、
前記第２シリアルバスに前記複数の電子装置が接続された状態で、前記複数の電子装置のいずれかからの信号を受信する第２シリアルインタフェースと、
前記第１および第２シリアルインタフェースを制御する制御部と、
を有し、
前記複数の電子装置のそれぞれは、前記第１および第２シリアルバスに接続された際に、第１信号を前記第２シリアルバスへ送信したのち、前記第１シリアルバスを用いて自身で使用可能なアドレスを探索し、当該探索結果となるアドレスを前記第２シリアルバスへ送信し、
前記通信制御装置は、前記第１信号を受信した際に、前記第１シリアルインタフェースを前記第１シリアルバスとの間の通信を停止するスリープ状態に遷移させ、前記探索結果となるアドレスを前記第２シリアルバスから受信する、
通信制御装置。
【請求項１１】
請求項１０記載の通信制御装置において、
前記第１シリアルインタフェースは、前記第１命令を前記第１シリアルバスへ送信する命令送信部を備え、前記第１命令を前記第１シリアルバスから受信する命令受信部を備えない、
通信制御装置。
【請求項１２】
請求項１１記載の通信制御装置において、
前記第１シリアルバスは、Ｉ２Ｃ規格に基づくＩ２Ｃバスであり、
前記第１シリアルインタフェースは、前記Ｉ２Ｃ規格上のマスタ状態のみで動作可能であり、
前記制御部は、前記第２シリアルインタフェースで前記第１信号を受信した場合には、前記第１シリアルインタフェースを前記スリープ状態に遷移させ、前記第２シリアルインタフェースで前記探索結果となるアドレスの受信を完了した場合には、前記スリープ状態から復帰させ、前記マスタ状態で動作するためのスタートコンディションを前記第１シリアルインタフェースを介して前記第１シリアルバスへ送信する、
通信制御装置。
【請求項１３】
請求項１１記載の通信制御装置において、
前記第１および第２シリアルインタフェースは、それぞれ、複数の前記第１および第２シリアルバスにそれぞれ対応して複数設けられ、
前記複数の第１シリアルインタフェースの少なくとも一部は、前記命令送信部を備え、前記命令受信部を備えない、
通信制御装置。
【請求項１４】
請求項１３記載の通信制御装置において、
前記通信制御装置は、さらに、
ホスト制御装置との間で通信を行うホストインタフェースと、
アドレス管理用メモリと、
を備え、
前記ホスト制御装置は、前記複数の電子装置のそれぞれに対して、前記複数の電子装置をそれぞれ識別する装置識別子を含んだ第２命令を発行し、
前記アドレス管理用メモリは、前記装置識別子と、前記複数の第１シリアルバスをそれぞれ識別するバス識別子と、当該バス識別子で識別される前記第１シリアルバス内でのアドレスと、の対応関係を保持し、
前記制御部は、前記ホスト制御装置から前記第２命令を受信した際に、前記アドレス管理用メモリの対応関係に基づいて、所定のアドレスを含んだ前記第１命令を所定の前記第１シリアルインタフェースを介して前記第１シリアルバスへ送信し、前記探索結果となるアドレスを前記第２シリアルバスから受信した際に、当該アドレスを前記アドレス管理用メモリに登録する、
通信制御装置。
【請求項１５】
請求項１０記載の通信制御装置において、
前記第２シリアルバスは、１本のＧＰＩＯバスである、
通信制御装置。
【請求項１６】
第１および第２シリアルバスに着脱が可能な電子装置であって、
前記第１シリアルバスに接続された状態で、アドレスを含んだ第１命令を前記第１シリアルバスから受信し、当該アドレスが自身のアドレスの場合に、肯定応答を前記第１シリアルバスへ送信する第１シリアルインタフェースと、
前記第２シリアルバスへ信号を送信する第２シリアルインタフェースと、
前記第１および第２シリアルインタフェースを制御する制御部と、
を備え、
前記制御部は、
前記第１および第２シリアルバスに接続された際に、第１信号を前記第２シリアルインタフェースを介して前記第２シリアルバスへ送信する第１処理と、
前記第１信号を送信したのち、予め定めた演算規則に基づき候補となるアドレスを順次変更しながら、前記候補となるアドレスを含んだ前記第１命令を、前記第１シリアルインタフェースを介して前記第１シリアルバスへ順次送信することで、当該第１命令に対する前記肯定応答を受信しないアドレスを探索する第２処理と、
前記第２処理の探索結果となるアドレスを前記第２シリアルインタフェースを介して前記第２シリアルバスへ送信する第３処理と、を実行する、
電子装置。
【請求項１７】
請求項１６記載の電子装置において、
前記第１シリアルインタフェースは、
前記第１命令を前記第１シリアルバスへ送信する命令送信部と、
前記第１命令を前記第１シリアルバスから受信する命令受信部と、
を備える、
電子装置。
【請求項１８】
請求項１７記載の電子装置において、
前記第１シリアルバスは、Ｉ２Ｃ規格に基づくＩ２Ｃバスであり、
前記第１シリアルインタフェースは、前記Ｉ２Ｃ規格上のマスタ状態とスレーブ状態の両方で動作可能であり、
前記制御部は、前記第２処理において、前記第１信号を前記第２シリアルバスへ送信したのち、前記マスタ状態で動作するためのスタートコンディションを前記第１シリアルインタフェースを介して前記第１シリアルバスへ送信し、自身が前記マスタ状態となった場合に前記アドレスの探索を行う、
電子装置。
【請求項１９】
請求項１８記載の電子装置において、
前記制御部は、前記第３処理において、前記探索結果となるアドレスを前記第２シリアルバスへ送信すると共に、当該アドレスの送信タイミングと同期して、前記第１シリアルインタフェースを介して前記第１シリアルバスに含まれるクロック配線にクロック信号を送信する、
電子装置。
【請求項２０】
請求項１６記載の電子装置において、
前記第１および第２シリアルインタフェースと、前記制御部とは、同一の半導体チップ上に形成され、
前記電子装置は、
前記半導体チップが実装される配線基板と、
前記配線基板に実装され、一端に前記第２シリアルバスが結合され、他端に固定電圧が供給される外部スイッチと、
を備え、
前記第２シリアルインタフェースは、前記外部スイッチのオン・オフを制御することで、前記第１信号の送信と前記探索結果となるアドレスの送信を行う、
電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信システム、通信制御装置および電子装置に関し、例えば、シリアルバスにおけるプラグアンドプレイの方式に関する。
【背景技術】
【０００２】
特許文献１には、取り外し可能なスレーブユニットの中のどのスレーブユニットがＩ２Ｃ（Inter-Integrated Circuit）バスに接続されているかを動的に決定する方式が示されている。具体的には、マイクロ制御装置は、スレーブユニットの各型式と、その各アドレスとの関係を表すテーブルを予め保持している。マイクロ制御装置は、当該テーブルに基づいて各アドレスを含んだ命令を、順次、Ｉ２Ｃバスに送信し、スレーブユニットからの応答の有無に応じて、スレーブユニットの存在有無を認識する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００２−５３４７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ロボット等の制御を担う制御システムは、通常、モータモジュールやセンサモジュール等といった各種被制御モジュール（電子装置）を多数用いて構成される。具体的な構成として、例えば、マイクロコンピュータ等の制御ユニットと各種被制御モジュールとをシリアルバスで接続し、制御ユニットがシリアルバスを介して各種被制御モジュールを制御するような方式が挙げられる。シリアルバスには、例えば、広く普及しているＩ２Ｃバス等を用いることができる。
【０００５】
このような制御システムでは、例えば、開発段階において、シリアルバスに接続する各種被制御モジュールの組合せを変更したり、あるいは、開発後において、シリアルバスに接続する被制御モジュールを新規に追加して機能拡張を図ったり、といったように、システム構成を柔軟に変更可能であることが望まれる。加えて、システム構成を容易に変更可能であることも望まれる。例えば、被制御モジュールをシリアルバスに接続する度に、ユーザに複雑な設定作業等を要求するような方式では、システム構成を容易に変更することが困難となる。
【０００６】
システム構成を容易に変更可能にするためには、プラグアンドプレイ機能を用いることが有益となる。Ｉ２Ｃバスでプラグアンドプレイ機能を実現する場合、例えば、特許文献１のような方式を用いることが考えられる。ただし、特許文献１の方式は、接続が想定される被制御モジュールの型式やアドレスを予めテーブルに保持しておき、このテーブルに定めた範囲内において、被制御モジュールの着脱を可能にする技術である。このように、着脱可能な被制御モジュールに制限が加わると、プラグアンドプレイ機能が不十分となり、システム構成の変更に際し、柔軟性が低下する恐れがある。
【０００７】
また、Ｉ２Ｃバスには、アドレス空間（例えば７ビット）等で定まる数の被制御モジュールを接続できるが、実際上は、各被制御モジュールを所定の制御周期内に制御する必要があるため、接続可能な被制御モジュール数に制約が生じる。このように、実際上の被制御モジュール数に制約が生じることでも、システム構成の変更に際し、柔軟性が低下する。
【０００８】
後述する実施の形態は、このようなことを鑑みてなされたものであり、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によるシリアル通信システムは、第１および第２シリアルバスと、制御ユニットと、複数の電子装置と、を備える。制御ユニットは、第１および第２シリアルバスに結合され、アドレスを含んだ第１命令を第１シリアルバスへ送信する。複数の電子装置は、それぞれ、第１および第２シリアルバスに着脱可能であり、第１および第２シリアルバスに接続された状態で自身のアドレスを含んだ第１命令を第１シリアルバスから受信した場合に、肯定応答を第１シリアルバスへ送信する。ここで、複数の電子装置のそれぞれは、第１〜第３処理を実行する。当該電子装置は、第１処理において、第１および第２シリアルバスに接続された際に、第１信号を第２シリアルバスへ送信する。当該電子装置は、第２処理において、第１信号を送信したのち、候補となるアドレスを含んだ第１命令を第１シリアルバスへ送信しながら、当該第１命令に対する肯定応答を受信しないアドレスを探索する。当該電子装置は、第３処理において、第２処理の探索結果となるアドレスを第２シリアルバスへ送信する。一方、制御ユニットは、第１信号を受信した際に、第１シリアルバスとの間の通信を停止するスリープ状態に遷移し、探索結果となるアドレスを第２シリアルバスから受信する。
【発明の効果】
【００１０】
前記一実施の形態によれば、シリアル通信システムにおいて、システム構成を柔軟または容易に変更可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１よるシリアル通信システムにおいて、その概略構成例を示す回路ブロック図である。
【図２】Ｉ２Ｃバスでのデータフォーマットの一例を示す概略図である。
【図３】図１のシリアル通信システムにおいて、プラグアンドプレイの動作方法の一例を示す説明図である。
【図４】図３に続く動作方法の一例を示す説明図である。
【図５】図４に続く動作方法の一例を示す説明図である。
【図６】図１のシリアル通信システムにおいて、プラグアンドプレイの動作方法の他の一例を示す説明図である。
【図７】図６に続く動作方法の一例を示す説明図である。
【図８】図７に続く動作方法の一例を示す説明図である。
【図９】図１のシリアル通信システムを適用した車両型ロボットの模式的な構成例を示す外形図である。
【図１０】本発明の実施の形態２による通信制御装置において、その主要部の構成例を示すブロック図である。
【図１１】本発明の実施の形態２による電子装置において、その主要部の構成例を示すブロック図である。
【図１２】図１１の電子装置において、フルＩ２Ｃインタフェース周りの主要部の構成例を示すブロック図である。
【図１３】図１０の通信制御装置において、簡易Ｉ２Ｃインタフェース周りの主要部の構成例を示すブロック図である。
【図１４】図１０および図１３の通信制御装置において、アドレス管理部の処理内容の一例を示すフロー図である。
【図１５】図１１および図１２の電子装置において、アドレス探索部の処理内容の一例を示すフロー図である。
【図１６】本発明の実施の形態３によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。
【図１７】図１６の比較例として検討したシリアル通信システムにおいて、その主要部の構成例を示す概略図である。
【図１８】本発明の実施の形態４によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。
【図１９】本発明の実施の形態５によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。
【発明を実施するための形態】
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１３】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１４】
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
（実施の形態１）
《シリアル通信システムの構成》
図１は、本発明の実施の形態１よるシリアル通信システムにおいて、その概略構成例を示す回路ブロック図である。図１に示すシリアル通信システムは、制御ユニットＣＴＬＵと、複数（ここでは４個）のバスシステムＢＳＹＳ［１］〜ＢＳＹＳ［４］と、を備える。バスシステムＢＳＹＳ［１］は、Ｉ２Ｃバス（第１シリアルバス）ＢＳ１［１］およびＧＰＩＯ（General Purpose Input/Output）バス（第２シリアルバス）ＢＳ２［１］と、複数の被制御モジュール（電子装置）と、を備える。同様に、バスシステムＢＳＹＳ［２］〜ＢＳＹＳ［４］も、それぞれ、Ｉ２ＣバスＢＳ１［２］〜ＢＳ１［４］およびＧＰＩＯバスＢＳ２［２］〜ＢＳ２［４］と、複数の被制御モジュールと、を備える。
【００１７】
本明細書では、複数のＩ２ＣバスＢＳ１［１］〜ＢＳ１［４］のそれぞれを代表して、Ｉ２Ｃバス（第１シリアルバス）ＢＳ１と称し、複数のＧＰＩＯバスＢＳ２［１］〜ＢＳ２［４］のそれぞれを代表して、ＧＰＩＯバス（第２シリアルバス）ＢＳ２と称する。また、複数のバスシステムＢＳＹＳ［１］〜ＢＳＹＳ［４］のそれぞれを代表して、バスシステムＢＳＹＳと称する。複数の被制御モジュール（電子装置）のそれぞれは、対応するＩ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２にコネクタ等を介して着脱可能となっている。
【００１８】
図１では、Ｉ２ＣバスＢＳ１［１］およびＧＰＩＯバスＢＳ２［１］に、複数（ここではｍ個）のセンサモジュールＭＤＬｓ［１］〜ＭＤＬｓ［ｍ］と、複数（ここではｎ個）のモータモジュールＭＤＬｍ［１］〜ＭＤＬｍ［ｎ］と、が接続された例が示されている。図示は省略しているが、バスシステムＢＳＹＳ［２］〜ＢＳＹＳ［４］にも、それぞれ、複数の被制御モジュール（電子装置）が適宜接続されている。
【００１９】
制御ユニットＣＴＬＵは、ホストコントローラ（ホスト制御装置）ＨＣＴＬと、通信ＩＦモジュール（通信制御装置）ＭＤＬｉｆと、を備える。通信ＩＦモジュールＭＤＬｉｆは、マイクロコントローラ等を代表とする制御デバイスＭＣＵｃを備える。制御デバイスＭＣＵｃは、複数のＩ２ＣバスＢＳ１［１］〜ＢＳ１［４］にそれぞれ結合される複数のＩ２Ｃインタフェース（第１シリアルインタフェース）と、複数のＧＰＩＯバスＢＳ２［１］〜ＢＳ２［４］にそれぞれ結合される複数のＧＰＩＯインタフェース（第２シリアルインタフェース）ＧＩＦ［１］〜ＧＩＦ［４］と、を備える。
【００２０】
図１の例では、複数のＩ２Ｃインタフェースは、３本のＩ２ＣバスＢＳ１［１］〜ＢＳ１［３］にそれぞれ結合される３個の簡易Ｉ２ＣインタフェースＩＩＦｓ［１］〜ＩＩＦｓ［３］と、Ｉ２ＣバスＢＳ１［４］に結合される１個のフルＩ２ＣインタフェースＩＩＦｆと、で構成される。本明細書では、簡易Ｉ２ＣインタフェースＩＩＦｓ［１］〜ＩＩＦｓ［３］のそれぞれを代表して、簡易Ｉ２ＣインタフェースＩＩＦｓと称し、簡易Ｉ２ＣインタフェースＩＩＦｓおよびフルＩ２ＣインタフェースＩＩＦｆを総称して、Ｉ２ＣインタフェースＩＩＦと称する。また、ＧＰＩＯインタフェースＧＩＦ［１］〜ＧＩＦ［４］のそれぞれを代表して、ＧＰＩＯインタフェースＧＩＦと称する。
【００２１】
ここで、フルＩ２Ｃインタフェースとは、Ｉ２Ｃ規格上のマスタ状態とスレーブ状態の両方で動作可能なインタフェースを表す。一方、簡易Ｉ２Ｃインタフェースとは、マスタ状態のみで動作可能であり、スレーブ状態では動作できないインタフェースを表す。図２は、Ｉ２Ｃバスでのデータフォーマットの一例を示す概略図である。Ｉ２ＣバスＢＳ１は、クロック信号ＳＣＬを伝送するクロック配線と、データ信号ＳＤＡを伝送するデータ配線と、を備える。
【００２２】
Ｉ２Ｃ規格では、命令を送信したいＩ２ＣインタフェースＩＩＦは、図２に示すように、クロック信号ＳＣＬが‘Ｈ’レベルの期間でデータ信号ＳＤＡを‘Ｈ’レベルから‘Ｌ’レベルに遷移させることで、Ｉ２ＣバスＢＳ１へスタートコンディションＳＴＣを送信する。当該Ｉ２ＣインタフェースＩＩＦは、Ｉ２Ｃ規格の調停機能を経て、自身が送信したスタートコンディションＳＴＣが有効であることを確認できた場合に、マスタ状態で動作する。一方、Ｉ２ＣバスＢＳ１からスタートコンディションＳＴＣを受信したＩ２ＣインタフェースＩＩＦは、スレーブ状態で動作する。
【００２３】
マスタ状態のＩ２ＣインタフェースＩＩＦは、スレーブ状態のＩ２ＣインタフェースＩＩＦに向けて、スレーブアドレスＡＤＤを含んだ命令（第１命令）を送信することができる。具体的には、当該命令（第１命令）は、図２に示すように、７ビット等のスレーブアドレスＡＤＤと、それに続く１ビットの読み書き選択信号（Ｒ／Ｗ）と、当該選択信号で書き込み命令を選択した場合のデータＤＴと、を含んでいる。
【００２４】
一方、スレーブ状態のＩ２ＣインタフェースＩＩＦは、自身のスレーブアドレスＡＤＤを含んだ命令（第１命令）を受信した場合に、肯定応答ＡＣＫをＩ２ＣバスＢＳ１へ送信する。具体的には、図２に示すように、スレーブ状態のＩ２ＣインタフェースＩＩＦは、読み書き選択信号（Ｒ／Ｗ）を受信したのち、肯定応答ＡＣＫを送信し、マスタ状態のＩ２ＣインタフェースＩＩＦは、それを受信する。なお、データ信号ＳＤＡのデータ配線は、ワイヤードアンド接続で構成されており、マスタ状態のＩ２ＣインタフェースＩＩＦは、肯定応答ＡＣＫ（‘Ｌ’レベル）を受信できない場合、否定応答（ＮＡＫ（‘Ｈ’レベル））を受信する。
【００２５】
マスタ状態のＩ２ＣインタフェースＩＩＦは、書き込み命令を選択した場合で、スレーブ状態のＩ２ＣインタフェースＩＩＦから肯定応答ＡＣＫ（‘Ｌ’レベル）を受信した場合、８ビット等のデータＤＴを送信する。スレーブ状態のＩ２ＣインタフェースＩＩＦは、当該データＤＴを受信した場合、肯定応答ＡＣＫを送信する。一方、マスタ状態のＩ２ＣインタフェースＩＩＦが読み出し命令を選択した場合、スレーブ状態のＩ２ＣインタフェースＩＩＦは、肯定応答ＡＣＫ（‘Ｌ’レベル）に続いて、８ビット等のデータＤＴを送信する。マスタ状態のＩ２ＣインタフェースＩＩＦは、当該データＤＴを受信した場合、肯定応答ＡＣＫを送信する。
【００２６】
そして、マスタ状態のＩ２ＣインタフェースＩＩＦは、マスタ状態を終了する際には、クロック信号ＳＣＬが‘Ｈ’レベルの期間でデータ信号ＳＤＡを‘Ｌ’レベルから‘Ｈ’レベルに遷移させることで、Ｉ２ＣバスＢＳ１へストップコンディションＳＰＣを送信する。これによって、Ｉ２ＣバスＢＳ１は、開放される。
【００２７】
このように、Ｉ２Ｃ規格では、マスタ状態のＩ２ＣインタフェースＩＩＦのみが命令（第１命令）をＩ２ＣバスＢＳ１へ送信し、スレーブ状態のＩ２ＣインタフェースＩＩＦは、当該命令をＩ２ＣバスＢＳ１から受信する。したがって、前述したフルＩ２ＣインタフェースＩＩＦｆは、命令（第１命令）を送信する命令送信部と、命令（第１命令）を受信する命令受信部と、を備えるに対して、簡易Ｉ２ＣインタフェースＩＩＦｓは、命令送信部のみを備えることになる。
【００２８】
センサモジュールＭＤＬｓ［１］〜ＭＤＬｓ［ｍ］のそれぞれは、マイクロコントローラ等を代表とする制御デバイスＭＣＵｍと、センサＳＥＮと、を備える。同様に、モータモジュールＭＤＬｍ［１］〜ＭＤＬｍ［ｎ］のそれぞれは、制御デバイスＭＣＵｍとモータＭＴとを備える。制御デバイスＭＣＵｍは、図示は省略されているが、フルＩ２Ｃインタフェース（第１シリアルインタフェース）とＧＰＩＯインタフェース（第２シリアルインタフェース）とを備える。これらの被制御モジュールがＩ２ＣバスＢＳ１［１］およびＧＰＩＯバスＢＳ２［１］に接続された場合、当該フルＩ２ＣインタフェースおよびＧＰＩＯインタフェースは、それぞれ、Ｉ２ＣバスＢＳ１［１］およびＧＰＩＯバスＢＳ２［１］に結合される。
【００２９】
ホストコントローラ（ホスト制御装置）ＨＣＴＬは、図示は省略するが、マイクロコントローラ等を代表とする制御デバイスを備える。ホストコントローラＨＣＴＬは、所定の制御プログラム等に基づいて、複数の被制御モジュールを制御するための制御命令（第２命令）を発行する。当該制御命令（第２命令）には、例えば、複数の被制御モジュールをそれぞれ識別する装置識別子や、データの書き込み／読み出しの種別等が含まれる。ホストコントローラ（ホスト制御装置）ＨＣＴＬは、特に限定はされないが、ＳＰＩ（Serial Peripheral Interface）バス等を介して通信ＩＦモジュールＭＤＬｉｆに結合される。
【００３０】
通信ＩＦモジュールＭＤＬｉｆは、ホストコントローラＨＣＴＬからの制御命令（第２命令）を、Ｉ２ＣバスＢＳ１への命令（第１命令）に変換しながら、ホストコントローラＨＣＴＬと、バスシステムＢＳＹＳ（すなわち複数の被制御モジュール）との間の通信を仲介する。この際に、通信ＩＦモジュールＭＤＬｉｆの制御デバイスＭＣＵｃ内の各Ｉ２ＣインタフェースＩＩＦは、マスタ状態で動作し、複数の被制御モジュールの制御デバイスＭＣＵｍ内のＩ２Ｃインタフェースは、スレーブ状態で動作する。
【００３１】
そして、通信ＩＦモジュールＭＤＬｉｆは、ホストコントローラＨＣＴＬからＳＰＩバス等を介して受信した制御命令（第２命令）を、その装置識別子に応じて、ＳＰＩバスよりも低速なバスであるＩ２ＣバスＢＳ１に振り分け、当該Ｉ２ＣバスＢＳ１へ命令（第１命令）を送信する。また、通信ＩＦモジュールＭＤＬｉｆは、Ｉ２ＣバスＢＳ１へ読み出し命令を送信した場合、これに応じて複数の被制御モジュールから送信されたデータＤＴを受信し、それをＳＰＩバス等を介してホストコントローラＨＣＴＬに送信する。
【００３２】
このようなシリアル通信システムにおいて、制御デバイスＭＣＵｃ，ＭＣＵｍを構成するマイクロコントローラ等は、汎用品である場合、通常、フルＩ２ＣインタフェースＩＩＦｆを１個または２個程度しか搭載していない。これは、Ｉ２Ｃバスの思想が、基本的に、１個のＩ２Ｃバスに制御対象となる全ての被制御モジュールを結合することを想定しているためである。また、マイクロコントローラ等にフルＩ２ＣインタフェースＩＩＦｆを多く搭載すると、回路規模やコストの著しい増大を招くためである。
【００３３】
ただし、少数のフルＩ２ＣインタフェースＩＩＦｆでは、ロボット等を代表とする、多数の被制御モジュール（モータ／センサモジュール等）の制御を行うシステムに、十分に対応できない恐れがある。例えば、多関節マニピュレータを想定すると、十分に滑らかな動きを実現するためには、制御ユニットＣＴＬＵが１０ｍｓ以下の制御周期で各被制御モジュールを制御する必要がある。Ｉ２Ｃバスの通信速度を１００ｋｂｐｓとして当該制御周期を実現する場合、１本のＩ２Ｃバスに結合可能な被制御モジュール数は、１０個程度となる。一方、多関節マニピュレータでは、数十個を超える数の被制御モジュールが必要とされる場合がある。
【００３４】
このように多数の被制御モジュールを制御する場合、例えば、それぞれ１個または２個のフルＩ２ＣインタフェースＩＩＦｆを搭載した制御デバイスを複数設け、複数の制御デバイスで並列制御を行う方式を用いることが考えられる。ただし、この場合、複数の制御デバイスを設けることによるコスト等の増大や、複数の制御デバイス間での同期制御に伴う制御の複雑化等が懸念される。
【００３５】
そこで、図１に示したように、簡易Ｉ２ＣインタフェースＩＩＦｓを搭載することが有益となる。例えば、１個の簡易Ｉ２ＣインタフェースＩＩＦｓは、１個のフルＩ２ＣインタフェースＩＩＦｆと比較して、半分またはそれ以下の回路規模で構成される。また、マイクロコントローラは、本質的に、制御される側（スレーブ側）ではなく制御する側（マスタ側）である。したがって、実用上の観点から、簡易Ｉ２ＣインタフェースＩＩＦｓを、マスタ状態のみで動作するインタフェースとすることが有益となる。
【００３６】
また、図１のようなシリアル通信システムでは、システム構成を柔軟または容易に変更可能であることが求められる場合がある。例えば、ロボット等の制御システムを開発する場合を想定する。この場合、開発者は、図１に示すように、開発用の端末ＰＣを用いてホストコントローラＨＣＴＬに格納される制御プログラムを適宜変更しながらシステム開発を進めていく。その過程では、バスシステムＢＳＹＳにおいて、各種被制御モジュールの着脱が頻繁に生じる場合がある。
【００３７】
ここで、被制御モジュールをバスシステムＢＳＹＳに接続した際には、通常、当該被制御モジュールのアドレス割り付けや初期パラメータの設定等といったように、当該被制御モジュールを制御可能な状態にするための設定作業が必要とされる。被制御モジュールをバスシステムＢＳＹＳに接続する毎に、このような複雑な設定作業が要求されると、開発者の利便性が図り難い。また、開発段階に限らず、完成後でも、バスシステムＢＳＹＳに新たな被制御モジュールを加えて機能拡張を図りたいような場合がある。このような場合も同様に、ユーザに対して複雑な設定作業を要求しないことが望まれる。そこで、Ｉ２ＣバスＢＳ１でプラグアンドプレイ機能を実現することが有益となる。
【００３８】
《シリアル通信システムのプラグアンドプレイ動作［１］》
図３、図４および図５は、図１のシリアル通信システムにおいて、プラグアンドプレイの動作方法の一例を示す説明図である。図３の例では、まず、Ｉ２ＣバスＢＳ１［１］およびＧＰＩＯバスＢＳ２［１］にモータモジュールＭＤＬｍ［２］が新規に接続される（ステップＳ１０１）。新規に接続されたモータモジュールＭＤＬｍ［２］には、別途設けた電源配線等から電源電圧が供給される。
【００３９】
電源電圧の供給に伴い、モータモジュール（電子装置）ＭＤＬｍ［２］の制御デバイスＭＣＵｍは、初期化シーケンスを実行する。制御デバイスＭＣＵｍは、この初期化シーケンスの中で、フルＩ２ＣインタフェースＩＩＦｆをスレーブ状態に制御し、ＧＰＩＯインタフェースＧＩＦを出力状態に制御する。この際に、既にバスに接続済みの被制御モジュール（例えばモータモジュールＭＤＬｍ［１］等）および通信ＩＦモジュール（通信制御装置）ＭＤＬｉｆは、ＧＰＩＯインタフェースＧＩＦ，ＧＩＦ［１］を入力状態に設定している。
【００４０】
また、ＧＰＩＯバスＢＳ２［１］の電位は、ここでは、プルダウン抵抗により接地電位ＧＮＤ（‘Ｌ’レベル）に設定されている。ただし、ＧＰＩＯバスＢＳ２［１］の電位は、プルアップ抵抗により電源電位（‘Ｈ’レベル）に設定されてもよい。ＧＰＩＯインタフェースは、通常、このようなプルダウン抵抗／プルアップ抵抗を予め設定する機能を備えている。これにより、ＧＰＩＯバスＢＳ２［１］では、ワイヤードロジック（図３の例では、ワイヤードオア）が構築される。
【００４１】
続いて、図４に示すように、新規に接続されたモータモジュールＭＤＬｍ［２］は、初めに、ＧＰＩＯインタフェースＧＩＦを介してＧＰＩＯバスＢＳ２［１］に‘Ｈ’レベルを送信する（ステップＳ１０２）。通信ＩＦモジュールＭＤＬｉｆは、ＧＰＩＯインタフェースＧＩＦ［１］を介してＧＰＩＯバスＢＳ２［１］の電位を監視しており、‘Ｈ’レベルを検出することで、被制御モジュールが新規に接続されたことを認識する（ステップＳ１０３）。
【００４２】
通信ＩＦインタフェースＭＤＬｉｆは、ＧＰＩＯバスＢＳ２［１］の電位が‘Ｈ’レベルに変化したことを検出すると、当該ＧＰＩＯバスに対応するＩ２ＣバスＢＳ１［１］の簡易Ｉ２ＣインタフェースＩＩＦｓ［１］を、スリープ状態に遷移させる（ステップＳ１０４）。スリープ状態の簡易Ｉ２ＣインタフェースＩＩＦｓ［１］は、Ｉ２ＣバスＢＳ１［１］との間の通信を停止する。特に限定はされないが、制御デバイスＭＣＵｃは、スリープ状態の有効／無効を制御するレジスタにフラグを立て、これに応じて、簡易Ｉ２ＣインタフェースＩＩＦｓ［１］は、自身の動作を無効に制御する。
【００４３】
次に、モータモジュールＭＤＬｍ［２］は、接続したＩ２ＣバスＢＳ１［１］に対し、自身がマスタ状態で動作するためのマスタ宣言信号（すなわち図２のスタートコンディションＳＴＣ）を、フルＩ２ＣインタフェースＩＩＦｆを介して送信する（ステップＳ１０５−１）。この時点で、通信ＩＦモジュールＭＤＬｉｆの簡易Ｉ２ＣインタフェースＩＩＦｓ［１］はスリープ状態であるため、当該マスタ宣言信号を無視する。他の被制御モジュール（モータモジュールＭＤＬｍ［１］等）のフルＩ２ＣインタフェースＩＩＦｆは、このマスタ宣言信号を受信し、マスタ状態のＩ２Ｃインタフェースが新たに設定されたことを認識する。
【００４４】
続いて、図５に示すように、モータモジュールＭＤＬｍ［２］は、候補となるアドレスを含んだ命令（第１命令）を、フルＩ２ＣインタフェースＩＩＦｆを介してＩ２ＣバスＢＳ１［１］へ送信しながら、当該命令に対する肯定応答ＡＣＫを受信しないアドレスを探索する（ステップＳ１０６−１）。具体的には、モータモジュールＭＤＬｍ［２］は、まず、予め定められた初期値のアドレスを含んだ命令をＩ２ＣバスＢＳ１［１］へ送信し、肯定応答ＡＣＫを受信した場合には、アドレスの変更（例えばインクリメント等）を行い、当該アドレスを含んだ命令を再度送信する。モータモジュールＭＤＬｍ［２］は、このような探索処理を行った結果、Ｉ２ＣバスＢＳ１［１］で重複しないアドレスを決定することができる。
【００４５】
次に、モータモジュールＭＤＬｍ［２］は、この決定したアドレスを、ＧＰＩＯインタフェースＧＩＦを介してＧＰＩＯバスＢＳ２［１］へ送信する（ステップＳ１０７）。そして、通信ＩＦモジュールＭＤＬｉｆのＧＰＩＯインタフェースＧＩＦ［１］は、この決定したアドレスを受信する（ステップＳ１０８）。具体的には、例えば、通信ＩＦモジュールＭＤＬｉｆと被制御モジュールとの間で、予め通信速度やプリアンブル等といったＧＰＩＯインタフェースの通信規則をプログラム等で定めておき、この通信規則に基づいてアドレスを通知することができる。
【００４６】
なお、他の被制御モジュール（モータモジュールＭＤＬｍ［１］等）は、プログラム等により、この通知されたアドレスを無視するように構成されている。ただし、他の被制御モジュールが新規に接続された被制御モジュールのアドレスを知る必要がある場合には、通信ＩＦモジュールＭＤＬｉｆの場合と同様にして、通知されたアドレスを受信するように構成することも可能である。
【００４７】
通信ＩＦモジュールＭＤＬｉｆは、モータモジュールＭＤＬｍ［２］から通知されたアドレスの受信を完了すると、スリープ状態から復帰し、Ｉ２ＣバスＢＳ１［１］へマスタ宣言信号を送信する（ステップＳ１０９）。モータモジュールＭＤＬｍ［２］は、当該マスタ宣言信号を受信し、スレーブ状態に遷移する（ステップＳ１１０）。これによって、制御ユニットＣＴＬＵは、新規に接続されたモータモジュールＭＤＬｍ［２］を含めて、全ての被制御モジュールにＩ２ＣバスＢＳ１［１］を介して通信を行うことができる。
【００４８】
このようにして通信が可能になると、制御ユニットＣＴＬＵは、モータモジュールＭＤＬｍ［２］内に予め保持されている各種情報をＩ２ＣバスＢＳ１［１］を介して取得することができる。当該各種情報の中には、例えば、モータモジュールかセンサモジュールかといった種別情報や、ホストコントローラＨＣＴＬの制御プログラムがどのような関数や変数を用いて制御命令（第２命令）を与えることが可能であるか、といった命令情報等が含まれる。命令情報は、モータモジュールであれば、モータを回転されるための関数や、当該関数で用いる固定パラメータの値や、当該関数で用いる変動パラメータ（例えば回転速度等）の設定可能範囲等が挙げられる。
【００４９】
例えば、図１に示したようなシステムの開発段階において、制御ユニットＣＴＬＵは、新規に接続された被制御モジュールから取得した各種情報を、開発用の端末ＰＣに反映させる。具体的には、制御ユニットＣＴＬＵは、例えば、取得した各種情報を、被制御モジュールの装置識別子に関連付けて、開発用の端末ＰＣの画面上に表示させる。これによって、開発者にとって利便性が高い開発環境を構築できる。
【００５０】
《シリアル通信システムの主要な効果等》
以上、図１のシリアル通信システムで図３〜図５に示したようなプラグアンドプレイ動作を行うことで、代表的には、システム構成を柔軟または容易に変更することが可能になる。例えば、ユーザは、被制御モジュール（電子装置）をＩ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２に接続した際に、アドレス割り付けを代表とする設定作業を行う必要がない。その結果、システム構成を容易に変更することが可能になる。また、Ｉ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２に接続可能な被制御モジュールの種類や個数も特に制限されることがない。その結果、システム構成を柔軟に変更することが可能になる。
【００５１】
ここで、比較例として、例えば、特許文献１の方式を用いることが考えられる。当該方式では、まず、制御ユニットは、新たに被制御モジュールが接続されたことを何らかの方法で認識する。そして、制御ユニットは、予め定めたテーブルに保持されている全てのアドレス（図２のスレーブアドレスＡＤＤ）を順にバスシステムＢＳＹＳに送信しながら、被制御モジュールの存在有無を認識する。
【００５２】
ただし、当該方式では、基本的に１本のＩ２Ｃバスを使用することを想定しており、さらに、新規に接続可能な被制御モジュールがテーブルによって制限されるため、システム構成の変更に際しての柔軟性が低下する恐れがある。また、新規に被制御モジュールが接続されたことを、どのように制御ユニットに認識されるかに関して、工夫が必要とされる。さらに、制御ユニットは、新規に接続された被制御モジュールのアドレスを認識する際に、テーブル内の全てのアドレスをバスシステムＢＳＹＳに送信する必要がある。この場合、特に被制御モジュールの数が増加すると、多くの所要時間が必要となるため、ユーザの利便性が低下し、システム構成の変更に際しての容易性が低下する恐れがある。
【００５３】
一方、本実施の形態１の方式では、被制御モジュールは、制御ユニット（制御デバイスＭＣＵｃ）に対して、ＧＰＩＯバスＢＳ２を用いて、自身が新規に接続されたことに加えて、自身で定めたアドレスを通知する。具体的には、制御ユニットではなく被制御モジュールが、Ｉ２ＣバスＢＳ１を用いて自身で使用可能なアドレスを探索し、その探索結果を制御ユニットに通知する。これによって、特許文献１のように、全てのアドレスを探索する必要がないため、アドレスの探索時間を短縮することができる。
【００５４】
ただし、この際に、特に、多数の被制御モジュールに対応するために設けられた制御ユニット内の簡易Ｉ２ＣインタフェースＩＩＦｓは、スレーブ状態で動作することができない。そこで、簡易Ｉ２ＣインタフェースＩＩＦｓは、Ｉ２ＣバスＢＳ１との間の通信を停止するため、スリープ状態に遷移し、この状態で、探索結果となるアドレスをＧＰＩＯバスＢＳ２を利用して受信する。このような方式を用いることで、前述した特許文献１の問題を解決でき、システム構成を柔軟または容易に変更することが可能になる。
【００５５】
なお、図１の例では、ホストコントローラ（ホスト制御装置）ＨＣＴＬおよび通信ＩＦモジュール（通信制御装置）ＭＤＬｉｆは、それぞれ異なる制御デバイス（２個のマイクロコントローラ等の半導体チップ）を用いて構成されたが、共通の制御デバイスで構成されてもよい。ただし、それぞれ異なる制御デバイスで構成することで、ユーザの利便性をより高められる場合がある。すなわち、ホストコントローラＨＣＴＬは、例えば、Ａｒｄｕｉｎｏ（登録商標）基板やＲａｓｐｂｅｒｒｙ  Ｐｉ（登録商標）基板等を代表とする広く普及している装置で構成することができる。この場合、ユーザは、慣れ親しんだ開発環境を用いて所望の制御システムの開発等を行うことが可能になる。
【００５６】
また、ここでは、第２シリアルバスとして、ＧＰＩＯバスＢＳ２を用いたが、必ずしも、これに限定されるものではなく、通信に際して、特にアドレス等の指定が不要なシリアルバスであればよい。ただし、ＧＰＩＯバスＢＳ２は、１本の配線で構成でき、かつ、ワイヤードロジックも使用可能であるため、第２シリアルバスに適用して特に有益となる。なお、ＧＰＩＯバスＢＳ２は、このようにプラグアンドプレイ機能で使用されるほかに、例えば、接続完了後の通常動作時に、被制御モジュールが割り込み信号を送信する際に使用されてもよい。
【００５７】
さらに、ここでは、簡易Ｉ２ＣインタフェースＩＩＦｓでプラグアンドプレイ機能を実現する場合の動作例を示したが、フルＩ２ＣインタフェースＩＩＦｆでプラグアンドプレイ機能を実現する場合も、同様の方式を用いることができる。この際に、フルＩ２ＣインタフェースＩＩＦｆは、スレーブ状態で動作可能であるため、場合によっては、ステップＳ１０７におけるアドレスの送信をＩ２ＣバスＢＳ１［１］を介して行うこともできる。ただし、簡易Ｉ２ＣインタフェースＩＩＦｓとの間で処理の統一化を図る観点では、図３〜図５の処理を用いる方が望ましい。
【００５８】
《シリアル通信システムのプラグアンドプレイ動作［２］》
図６、図７および図８は、図１のシリアル通信システムにおいて、プラグアンドプレイの動作方法の他の一例を示す説明図である。前述した図３、図４および図５では、ある時点で１個の被制御モジュールが新規に接続される場合を想定したが、ある時点で複数の被制御モジュールが新規に接続される場合も生じ得る。具体的には、例えば、既に複数の被制御モジュールが搭載されているユニットを、コネクタ等を介してバスに接続するような場合が挙げられる。このような場合であっても、概略的には、図３、図４および図５の方式を用いることが可能である。
【００５９】
具体的には、まず、図６に示すように、モータモジュールＭＤＬｍ［２］およびセンサモジュールＭＤＬｓ［２］が新規に接続された場合を想定する（ステップＳ１０１）。図４の場合と同様に、モータモジュールＭＤＬｍ［２］およびセンサモジュールＭＤＬｓ［２］は、共に、ＧＰＩＯインタフェースＧＩＦを介して‘Ｈ’レベルを送信する（ステップＳ１０２）。そして、図４の場合と同様に、通信ＩＦモジュールＭＤＬｉｆは、ＧＰＩＯインタフェースＧＩＦ［１］を介して‘Ｈ’レベルを検出し（ステップＳ１０３）、簡易Ｉ２ＣインタフェースＩＩＦｓ［１］をスリープ状態に遷移させる（ステップＳ１０４）。
【００６０】
ここで、モータモジュールＭＤＬｍ［２］およびセンサモジュールＭＤＬｓ［２］は、図４の場合と異なり、Ｉ２Ｃ規格の調停機能に基づき、いずれか一方のみがマスタ状態に遷移し、他方はスレーブ状態に遷移する（ステップＳ１０５−２Ａ，Ｓ１０５−２Ｂ）。図６の例では、モータモジュールＭＤＬｍ［２］の方がマスタ状態に遷移している。この状態で、マスタ状態で動作するモータモジュールＭＤＬｍ［２］は、図５の場合と同様に、アドレスの探索処理を行い、その結果、Ｉ２ＣバスＢＳ１［１］で重複しないアドレスを決定する（ステップＳ１０６−１）。
【００６１】
次いで、図７に示すように、モータモジュールＭＤＬｍ［２］は、図５の場合と同様に、決定したアドレスをＧＰＩＯバスＢＳ２［１］を介して送信し（ステップＳ１０７）、通信ＩＦモジュールＭＤＬｉｆは、当該アドレスを受信する（ステップＳ１０８）。アドレスの受信が完了すると、通信ＩＦモジュールＭＤＬｉｆは、図５の場合と同様に、Ｉ２ＣバスＢＳ１［１］にマスタ宣言信号（スタートコンディションＳＴＣ）を送信し、スリープ状態から復帰して、マスタ状態に遷移する（ステップＳ１０９）。
【００６２】
一方、ステップＳ１０７の動作が行われる前に、センサモジュールＭＤＬｓ［２］は、ＧＰＩＯバスＢＳ２［１］が競合しないように、ＧＰＩＯインタフェースＧＩＦからの‘Ｈ’レベルの送信を停止し、ハイインピーダンスの出力等を行う（ステップＳ１０６−２）。センサモジュールＭＤＬｓ［２］は、例えば、スレーブ状態に遷移した際（ステップＳ１０５−２Ｂ）に、当該‘Ｈ’レベルの送信を停止すればよい。
【００６３】
また、通信ＩＦモジュールＭＤＬｉｆからマスタ宣言信号が送信されると（ステップＳ１０９）、モータモジュールＭＤＬｍ［２］は、図５の場合と同様に、スレーブ状態に遷移する（ステップＳ１１０）。さらに、ここでは、モータモジュールＭＤＬｍ［２］を含めた各被制御モジュールは、フルＩ２ＣインタフェースＩＩＦｆ内のレジスタに、バス接続完了フラグ等を備えている。バス接続完了フラグは、自身のアドレスを通信ＩＦモジュールＭＤＬｉｆに認識させたか否か（すなわち、バス接続が完了したか否か）を表す。モータモジュールＭＤＬｍ［２］は、例えば、ステップＳ１１０でスレーブ状態に遷移する際に、当該バス接続完了フラグにフラグを立てる。
【００６４】
次いで、図８に示すように、モータモジュールＭＤＬｍ［２］は、ステップＳ１１０でスレーブ状態に遷移すると共に、ＧＰＩＯインタフェースＧＩＦを入力状態に設定する（ステップＳ１１１）。一方、スレーブ状態で動作しているセンサモジュールＭＤＬｓ［２］は、ステップＳ１０９において、バス接続完了フラグが立っていない状態で、通信ＩＦモジュールＭＤＬｉｆからのマスタ宣言信号（スタートコンディションＳＴＣ）を受信する。これに応じて、センサモジュールＭＤＬｓ［２］は、ＧＰＩＯインタフェースＧＩＦを介して‘Ｈ’レベルを送信する（ステップＳ１１２）。
【００６５】
その後は、図３、図４および図５のモータモジュールＭＤＬｍ［２］の場合と同様の動作が行われ、センサモジュールＭＤＬｓ［２］のバス接続も完了する。センサモジュールＭＤＬｓ［２］は、バス接続が完了した際には、図７のステップＳ１１０で述べたように、バス接続完了フラグにフラグを立て、ステップＳ１１１で述べたように、ＧＰＩＯインタフェースＧＩＦを入力状態に設定する。
【００６６】
《シリアル通信システムの適用例》
図９は、図１のシリアル通信システムを適用した車両型ロボットの模式的な構成例を示す外形図である。図９に示す車両型ロボットでは、４個のタイヤが取り付けられたシャーシ基板ＣＢ上に、制御ユニットＣＴＬＵと、センサモジュールＭＤＬｓと、モータモジュールＭＤＬｍと、が搭載されている。センサモジュールＭＤＬｓやモータモジュールＭＤＬｍは、コネクタ等を介してシャーシ基板ＣＢに着脱可能となっている。
【００６７】
シャーシ基板ＣＢは、Ｉ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２を備える。制御ユニットＣＴＬＵ、センサモジュールＭＤＬｓおよびモータモジュールＭＤＬｍは、このＩ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２を介して互いに接続される。特に限定はされないが、モータモジュールＭＤＬｍは、タイヤの回転速度や、タイヤの舵角等を制御し、センサモジュールＭＤＬｓは、障害物の有無等を検出する。制御ユニットＣＴＬＵは、センサモジュールＭＤＬｓの検出結果に応じて、モータモジュールＭＤＬｍを制御することで、車両型ロボットの移動を制御する。
【００６８】
なお、ここでは、車両型ロボットに含まれる代表的な被制御モジュールの例を示したが、実際には、当該車両型ロボットの用途（例えば、搬送用ロボットや掃除用ロボット等）に応じて、さらに、数多くの被制御モジュールが搭載される場合がある。そして、制御ユニットＣＴＬＵは、このような多くの被制御モジュールを所定の制御周期内に制御する必要がある。例えば、このようなロボットの開発段階や開発後の機能拡張段階等において、本実施の形態１のプラグアンドプレイ機能を用いることで、ユーザの利便性を向上させること等が可能になる。
【００６９】
以上、本実施の形態１のシリアル通信システム、通信制御装置および電子装置を用いることで、代表的には、システム構成を柔軟または容易に変更することが可能になる。
【００７０】
（実施の形態２）
本実施の形態２では、実施の形態１で述べた通信ＩＦモジュール（通信制御装置）および被制御モジュール（電子装置）の詳細について説明する。
【００７１】
《通信ＩＦモジュール（通信制御装置）の構成および動作》
図１０は、本発明の実施の形態２による通信制御装置において、その主要部の構成例を示すブロック図である。図１０に示す通信ＩＦモジュール（通信制御装置）ＭＤＬｉｆは、例えば、配線基板ＰＣＢ１上に、マイクロコントローラ等の制御デバイス（半導体チップ）ＭＣＵｃが実装された構成となっている。また、配線基板ＰＣＢ１には、図示は省略しているが、ホストコントローラＨＣＴＬに接続するためのコネクタや、バスシステムＢＳＹＳ［１］〜ＢＳＹＳ［４］に接続するためのコネクタ等も実装されている。
【００７２】
制御デバイスＭＣＵｃは、図１に示したように、第１シリアルインタフェースとなる簡易Ｉ２ＣインタフェースＩＩＦｓ［１］〜ＩＩＦｓ［３］（ＩＩＦｓ［３］の図示は省略）およびフルＩ２ＣインタフェースＩＩＦｆと、第２シリアルインタフェースとなるＧＰＩＯインタフェースＧＩＦ［１］〜ＧＩＦ［４］と、を備える。これに加えて、制御デバイスＭＣＵｃは、ＳＰＩインタフェース（ホストインタフェース）ＳＩＦと、データ格納用レジスタＲＥＧｄと、制御部ＣＴＬｃと、セレクタＳＥＬと、アドレス管理用メモリＭＥＭと、を備える。
【００７３】
前述したように、各Ｉ２Ｃインタフェース（第１シリアルインタフェース）ＩＩＦは、概略的には、バスシステムＢＳＹＳ内の複数の被制御モジュール（電子装置）のいずれかのアドレスを含んだ命令（第１命令）をＩ２Ｃバス（第１シリアルバス）ＢＳ１へ送信することで当該被制御モジュールを制御する。また、各ＧＰＩＯインタフェース（第２シリアルインタフェース）ＧＩＦは、概略的には、複数の被制御モジュールのいずれかからの信号を受信する。
【００７４】
ＳＰＩインタフェース（ホストインタフェース）ＳＩＦは、ホストコントローラ（ホスト制御装置）ＨＣＴＬとの間で、ＳＰＩバスＢＳ３を介してシリアル通信を行う。ホストコントローラＨＣＴＬは、前述したように、バスシステムＢＳＹＳ内の複数の被制御モジュールのそれぞれに対して、複数の被制御モジュールをそれぞれ識別する装置識別子を含んだ制御命令（第２命令）を発行する。ＳＰＩインタフェースＳＩＦは、当該制御命令を受信し、データ格納用レジスタＲＥＧｄに保持する。
【００７５】
制御部ＣＴＬｃは、データ分配部ＤＤＳとアドレス管理部ＡＤＭを備え、各Ｉ２ＣインタフェースＩＩＦおよび各ＧＰＩＯインタフェースＧＩＦの制御を含めて、制御デバイスＭＣＵｃ全体の動作を制御する。制御部ＣＴＬｃは、主に、プロセッサによるプログラム処理等によって構成される。
【００７６】
アドレス管理部ＡＤＭは、アドレス管理用メモリＭＥＭを用いて、バスシステムＢＳＹＳ内の複数の被制御モジュールのアドレスを管理する。具体的には、アドレス管理用メモリＭＥＭは、制御命令（第２命令）に含まれる装置識別子と、各Ｉ２ＣバスＢＳ１（各Ｉ２ＣインタフェースＩＩＦ）をそれぞれ識別するバス識別子と、当該バス識別子で識別されるＩ２ＣバスＢＳ１内でのスレーブアドレスＡＤＤと、の対応関係を保持する。
【００７７】
アドレス管理部ＡＤＭは、図５のステップＳ１０７等に示したように、被制御モジュールからＧＰＩＯバス（例えばＢＳ２［１］）を介して、決定したスレーブアドレスＡＤＤを受信した際に、当該スレーブアドレスＡＤＤと、当該ＧＰＩＯバスに対応するＩ２Ｃバス（ＢＳ１［１］）のバス識別子と、の対応関係をアドレス管理用メモリＭＥＭに登録する。この際に、アドレス管理部ＡＤＭは、アドレス管理用メモリＭＥＭ上で、当該被制御モジュールのアドレス情報を所定の装置識別子に対応付けると共に、当該装置識別子をＳＰＩインタフェースＳＩＦを介してホストコントローラＨＣＴＬに通知する。
【００７８】
データ分配部ＤＤＳは、ホストコントローラＨＣＴＬから制御命令を受信した際に、アドレス管理用メモリＭＥＭの対応関係に基づいて、所定のスレーブアドレスＡＤＤを含んだ命令（第１命令）を所定のＩ２ＣインタフェースＩＩＦを介してＩ２ＣバスＢＳ１へ送信する。具体的には、データ分配部ＤＤＳは、データ格納用レジスタＲＥＧｄに保持された制御命令（第２命令）の装置識別子を認識し、アドレス管理用メモリＭＥＭの対応関係に基づいてセレクタＳＥＬを制御し、当該制御命令を複数のＩ２ＣインタフェースＩＩＦのいずれかに送信する。この際に、データ分配部ＤＤＳは、装置識別子をスレーブアドレスＡＤＤに変換する処理も行う。
【００７９】
また、制御部ＣＴＬｃは、Ｉ２ＣバスＢＳ１での読み出し命令に応じた各被制御モジュールからのデータＤＴをＩ２ＣインタフェースＩＩＦで受信した際に、当該データＤＴを、ＳＰＩインタフェースＳＩＦを介してホストコントローラＨＣＴＬに送信する。
【００８０】
《モータモジュール（電子装置）の構成および動作》
図１１は、本発明の実施の形態２による電子装置において、その主要部の構成例を示すブロック図である。ここでは、被制御モジュール（電子装置）がモータモジュールＭＤＬｍである場合を例とする。図１１に示すモータモジュールＭＤＬｍは、例えば、配線基板ＰＣＢ２上に、マイクロコントローラ等の制御デバイス（半導体チップ）ＭＣＵｍと、モータＭＴと、が実装された構成となっている。また、配線基板ＰＣＢ２には、図示は省略しているが、Ｉ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２に接続するためのコネクタや、、モータＭＴを駆動するためのモータドライバ等も実装されている。
【００８１】
制御デバイスＭＣＵｍは、図１に示したように、第１シリアルインタフェースとなるフルＩ２ＣインタフェースＩＩＦｆと、第２シリアルインタフェースとなるＧＰＩＯインタフェースＧＩＦと、を備える。これに加えて、制御デバイスＭＣＵｍは、制御部ＣＴＬｍを備える。前述したように、フルＩ２ＣインタフェースＩＩＦｆは、概略的には、アドレスを含んだ命令（第１命令）をＩ２Ｃバス（第１シリアルバス）ＢＳ１から受信し、当該アドレスが自身のアドレスの場合に、肯定応答ＡＣＫをＩ２ＣバスＢＳ１へ送信する。また、ＧＰＩＯインタフェースＧＩＦは、概略的には、ＧＰＩＯバスＢＳ２へ信号を送信する。
【００８２】
制御部ＣＴＬｍは、モータ制御部ＭＣＴＬおよびアドレス探索部ＡＤＳを備え、フルＩ２ＣインタフェースＩＩＦｆおよびＧＰＩＯインタフェースＧＩＦの制御を含めて、制御デバイスＭＣＵｍ全体の動作を制御する。制御部ＣＴＬｍは、主に、プロセッサによるプログラム処理等によって構成される。モータ制御部ＭＣＴＬは、フルＩ２ＣインタフェースＩＩＦｆで受信した命令（第１命令）に応じて、モータドライバ等を介してモータＭＴを制御する。アドレス探索部ＡＤＳは、実施の形態１で述べたように、アドレス探索処理を代表に、プラグアンドプレイに伴う各種処理を行う。
【００８３】
《フルＩ２Ｃインタフェースの構成および動作》
図１２は、図１１の電子装置において、フルＩ２Ｃインタフェース周りの主要部の構成例を示すブロック図である。ここでは、被制御モジュール（電子装置）のフルＩ２Ｃインタフェースを例に説明するが、通信ＩＦモジュールＭＤＬｉｆのフルＩ２Ｃインタフェースも同様の構成および動作となる。
【００８４】
図１２に示すフルＩ２ＣインタフェースＩＩＦｆは、スレーブアドレスレジスタＲＥＧａ、比較部ＣＭＰ、送受信データ用シフトレジスタＳＲＥＧ、ＡＣＫ検出回路ＡＣＤＴ、スタートコンディション検出回路ＳＴＤＴ、ストップコンディション検出回路ＳＰＤＴ、バス状態検出回路ＢＳＤＴ、および通信制御回路ＣＣＴＬｆを備える。さらに、フルＩ２ＣインタフェースＩＩＦｆは、データ用送信バッファＢＦＤｏおよびデータ用受信バッファＢＦＤｉと、クロック用送信バッファＢＦＣｏおよびクロック用受信バッファＢＦＣｉと、を備える。
【００８５】
データ用送信バッファＢＦＤｏおよびデータ用受信バッファＢＦＤｉは、制御デバイスＭＣＵｍの外部端子ＰＮｓｄに結合され、クロック用送信バッファＢＦＣｏおよびクロック用受信バッファＢＦＣｉは、制御デバイスＭＣＵｍの外部端子ＰＮｓｃに結合される。外部端子ＰＮｓｄは、Ｉ２ＣバスＢＳ１のデータ配線（ＳＤＡ）に結合され、外部端子ＰＮｓｃは、Ｉ２ＣバスＢＳ１のクロック配線（ＳＣＬ）に結合される。マスタ状態で動作する場合、フルＩ２ＣインタフェースＩＩＦｆは、クロック用送信バッファＢＦＣｏを介して、Ｉ２ＣバスＢＳ１のクロック配線（ＳＣＬ）に所定のクロック信号（ｆＣＬＫ）を送信する。クロック用受信バッファＢＦＣｉは、Ｉ２ＣバスＢＳ１のクロック配線上のクロック信号ＳＣＬを受信する。
【００８６】
スレーブアドレスレジスタＲＥＧａは、スレーブ状態で動作する際の自身のスレーブアドレスＡＤＤを保持する。送受信データ用シフトレジスタＳＲＥＧは、クロック用受信バッファＢＦＣｉで受信したクロック信号ＳＣＬに同期してシフト動作を行うことで、パラレルデータとシリアルデータとの間の変換を行う。送受信データ用シフトレジスタＳＲＥＧは、データ送信時には、保持しているパラレルデータを１ビットずつデータ用送信バッファＢＦＤｏへ送信し、データ受信時には、データ用受信バッファＢＦＤｉで受信したシリアルデータ（データ信号ＳＤＡ）を１ビットずつ取り込む。
【００８７】
比較部ＣＭＰは、スレーブ状態で動作する際に、送受信データ用シフトレジスタＳＲＥＧに取り込んだデータ信号ＳＤＡと、スレーブアドレスレジスタＲＥＧａに保持されたスレーブアドレスＡＤＤと、を比較し、命令（第１命令）が自身宛てか否かを判別する。ＡＣＫ検出回路ＡＣＤＴは、データ用受信バッファＢＦＤｉで受信したデータ信号ＳＤＡの中から、図２の肯定信号ＡＣＫ（または否定信号（ＮＡＫ））を検出する。
【００８８】
スタートコンディション検出回路ＳＴＤＴおよびストップコンディション検出回路ＳＰＤＴは、データ用受信バッファＢＦＤｉで受信したデータ信号ＳＤＡおよびクロック用受信バッファＢＦＣｉで受信したクロック信号ＳＣＬを監視し、それぞれ、図２のスタートコンディションＳＴＣおよびストップコンディションＳＰＣを検出する。バス状態検出回路ＢＳＤＴは、スタートコンディション検出回路ＳＴＤＴおよびストップコンディション検出回路ＳＰＤＴの検出結果に基づき、Ｉ２ＣバスＢＳ１の開放有無の判別や、スタートコンディションＳＴＣが競合した際の調停（自身がマスタ状態になれたか否かの判別）等を行う。
【００８９】
通信制御回路ＣＣＴＬｆは、制御レジスタ群ＲＥＧＢＫを備え、当該制御レジスタ群ＲＥＧＢＫに含まれる各種制御レジスタの設定値に基づいて、フルＩ２ＣインタフェースＩＩＦｆ全体を制御する。制御レジスタ群ＲＥＧＢＫには、マスタ状態であるかスレーブ状態であるかを識別するフラグＦＬＧ１と、インタフェースの有効／無効を制御するフラグＦＬＧ２と、スタートコンディションＳＴＣを送信する際のフラグＦＬＧ３と、バス接続完了フラグＦＬＧ４と、が含まれる。
【００９０】
フラグＦＬＧ１は、バス状態検出回路ＢＳＤＴの検出結果に基づき制御される。フラグＦＬＧ２は、図４のステップＳ１０４等に示したように、スリープ状態に遷移させる際に使用される。フラグＦＬＧ３は、図５のステップＳ１０９等に示したように、スタートコンディションＳＴＣを送信する際に使用される。バス接続完了フラグＦＬＧ４は、図７のステップＳ１１０等に示したように、バス接続の完了有無を判別する際に使用される。
【００９１】
また、フルＩ２ＣインタフェースＩＩＦｆは、制御デバイスＭＣＵｍ内の内部バスＩＢＳを介して、ＧＰＩＯインタフェースＧＩＦやアドレス探索部ＡＤＳ等に結合される。ＧＰＩＯインタフェースＧＩＦは、制御デバイスＭＣＵｍの外部端子ＰＮｉｏを介して、ＧＰＩＯバスＢＳ２に結合される。
【００９２】
《簡易Ｉ２Ｃインタフェースの構成および動作》
図１３は、図１０の通信制御装置において、簡易Ｉ２Ｃインタフェース周りの主要部の構成例を示すブロック図である。図１３に示す簡易Ｉ２ＣインタフェースＩＩＦｓは、送受信データ用シフトレジスタＳＲＥＧと、ＡＣＫ検出回路ＡＣＤＴと、通信制御回路ＣＣＴＬｓと、データ用送信バッファＢＦＤｏおよびデータ用受信バッファＢＦＤｉと、クロック用送信バッファＢＦＣｏおよびクロック用受信バッファＢＦＣｉと、を備える。すなわち、図１３の簡易Ｉ２ＣインタフェースＩＩＦｓは、図１２のフルＩ２ＣインタフェースＩＩＦｆと比較して、スレーブ状態の動作のみで使用される各回路部を備えない構成となっている。
【００９３】
通信制御回路ＣＣＴＬｓは、図１２の場合と同様に、制御レジスタ群ＲＥＧＢＫを備える。ただし、制御レジスタ群ＲＥＧＢＫは、図１２の場合と比較して、マスタ状態であるかスレーブ状態であるかを識別するフラグＦＬＧ１を備えない。なお、前述した図１２の制御レジスタ群ＲＥＧＢＫは、実際には、更に多くのレジスタ（フラグ）を備え、その中には、スレーブ状態のみで使用されるレジスタ（フラグ）も多く含まれる。図１３の制御レジスタ群ＲＥＧＢＫでは、このスレーブ状態のみで使用されるレジスタ（フラグ）が削除されている。これに応じて、図１３の通信制御回路ＣＣＴＬｓでは、図１２の通信制御回路ＣＣＴＬｆと比較して、当該削除されたレジスタ（フラグ）に基づく処理を行う各回路部が削除されている。
【００９４】
また、簡易Ｉ２ＣインタフェースＩＩＦｓは、制御デバイスＭＣＵｃ内の内部バスＩＢＳを介して、ＧＰＩＯインタフェースＧＩＦやアドレス管理部ＡＤＭ等に結合される。アドレス管理部ＡＤＭは、アドレス管理用メモリＭＥＭにアクセス可能となっている。ＧＰＩＯインタフェースＧＩＦは、制御デバイスＭＣＵｃの外部端子ＰＮｉｏを介して、ＧＰＩＯバスＢＳ２に結合される。
【００９５】
《通信ＩＦモジュール（通信制御装置）のアドレス管理処理》
図１４は、図１０および図１３の通信制御装置において、アドレス管理部の処理内容の一例を示すフロー図である。アドレス管理部ＡＤＭは、まず、ステップＳ２０１において、各ＧＰＩＯインタフェースＧＩＦを監視し、いずれかのＧＰＩＯインタフェースＧＩＦで‘Ｈ’レベル（第１信号）を受信した際に、ステップＳ２０２に移行する。アドレス管理部ＡＤＭは、ステップＳ２０２において、新規に接続された被制御モジュールが存在することを認識する。
【００９６】
次いで、アドレス管理部ＡＤＭは、‘Ｈ’レベルを受信したＧＰＩＯインタフェースＧＩＦに対応するＩ２ＣインタフェースＩＩＦをスリープ状態に遷移させる（ステップＳ２０３）。具体的には、アドレス管理部ＡＤＭは、図１３のフラグＦＬＧ２を立てる。これにより、当該Ｉ２ＣインタフェースＩＩＦは、Ｉ２ＣバスＢＳ１との間の通信を停止し、待機する。そして、アドレス管理部ＡＤＭは、当該ＧＰＩＯインタフェースＧＩＦでデータ（すなわちスレーブアドレスＡＤＤ）を受信するまで、ステップＳ２０３の待機を継続する（ステップＳ２０４）。
【００９７】
アドレス管理部ＡＤＭは、対象のＧＰＩＯインタフェースＧＩＦでデータ（スレーブアドレスＡＤＤ）を受信すると、当該受信データを新規に接続された被制御モジュールのスレーブアドレスＡＤＤとして認識し、アドレス管理用メモリＭＥＭに登録する（ステップＳ２０５）。その後、アドレス管理部ＡＤＭは、スリープ状態から復帰し、Ｉ２ＣインタフェースＩＩＦを介して対象のＩ２ＣバスＢＳ１にマスタ宣言信号（すなわちスタートコンディションＳＴＣ）を送信し、マスタ状態に戻る（ステップＳ２０６）。具体的には、アドレス管理部ＡＤＭは、図１３のフラグＦＬＧ２を消去し、フラグＦＬＧ３を立てる。
【００９８】
《被制御モジュール（電子装置）のアドレス探索処理》
図１５は、図１１および図１２の電子装置において、アドレス探索部の処理内容の一例を示すフロー図である。アドレス探索部ＡＤＳは、Ｉ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２に接続された際に、まず、‘Ｈ’レベル（第１信号）をＧＰＩＯインタフェースＧＩＦを介してＧＰＩＯバスＢＳ２へ送信する（ステップＳ３０１（第１処理））。次いで、アドレス探索部ＡＤＳは、フルＩ２ＣインタフェースＩＩＦｆを介してＩ２ＣバスＢＳ１へマスタ宣言信号を送信する（ステップＳ３０２）。
【００９９】
続いて、アドレス探索部ＡＤＳは、自身がマスタ状態であるか否かを判別する（ステップＳ３０３）。具体的には、アドレス探索部ＡＤＳは、図１２のバス状態検出回路ＢＳＤＴの検出結果に基づき判別を行う。マスタ状態である場合、アドレス探索部ＡＤＳは、候補となる自身のスレーブアドレスＡＤＤを含んだ命令（第１命令）を、フルＩ２ＣインタフェースＩＩＦｆを介してＩ２ＣバスＢＳ１へ送信する（ステップＳ３０４）。具体的には、アドレス探索部ＡＤＳは、例えば、図２に示した、スレーブアドレスＡＤＤおよび読み書き選択信号（Ｒ／Ｗ）（例えば書き込み命令）を送信する。
【０１００】
アドレス探索部ＡＤＳは、当該命令（第１命令）に応じて、肯定応答ＡＣＫを受信した場合（ステップＳ３０５）には、候補とするスレーブアドレスＡＤＤを適宜変更し（例えば１だけインクリメントし）、ステップＳ３０４の処理に戻る（ステップＳ３１０）。アドレス探索部ＡＤＳは、このステップＳ３０４，Ｓ３０５，Ｓ３１０の処理（第２処理）によって、命令（第１命令）に対する肯定応答ＡＣＫを受信しないスレーブアドレス（すなわち重複しないスレーブアドレス）ＡＤＤを探索する。
【０１０１】
ステップＳ３０４で肯定応答ＡＣＫを受信しない場合、アドレス探索部ＡＤＳは、現在のスレーブアドレスＡＤＤ（すなわち探索結果となるスレーブアドレス）を、ＧＰＩＯインタフェースＧＩＦを介してＧＰＩＯバスＢＳ２へ送信する（Ｓ３０６（第３処理））。その後、アドレス探索部ＡＤＳは、ＧＰＩＯインタフェースＧＩＦを出力状態から入力状態へ変更する（ステップＳ３０７）。また、アドレス探索部ＡＤＳは、通信ＩＦモジュールＭＤＬｉｆからのマスタ宣言信号を受信し、バス接続完了フラグ（図１２のＦＬＧ４）を立て、スレーブ状態に戻る。
【０１０２】
一方、アドレス探索部ＡＤＳは、ステップＳ３０３において、マスタ状態でない場合には、ＧＰＩＯバスＢＳ２への‘Ｈ’レベルの送信を停止し、通信ＩＦモジュールＭＤＬｉｆからのマスタ宣言信号を受信するまでスレーブ状態で待機する（ステップＳ３０９）。そして、アドレス探索部ＡＤＳは、通信ＩＦモジュールＭＤＬｉｆからのマスタ宣言信号を受信した場合には、再度、ステップＳ３０１の処理から実行する。
【０１０３】
以上、本実施の形態２の通信制御装置および電子装置を用いることで、実施の形態１で述べた各種効果と同様の効果が得られる。その中でも、特に、図１２および図１３に示したように、簡易Ｉ２ＣインタフェースＩＩＦｓを用いることによる回路面積およびコストの低減効果や、図１０に示したように、ホストコントローラＨＣＴＬと通信ＩＦモジュールＭＤＬｉｆとを分離することによる効果が得られる。すなわち、ホストコントローラＨＣＴＬからの制御命令（第２命令）を通信ＩＦモジュールＭＤＬｉｆで自動的に分配する構成によって、ユーザは、ホストコントローラＨＣＴＬの開発環境のみを用いて、所望の制御システムを開発でき、ユーザの利便性（言い換えれば開発の容易性）が向上する。
【０１０４】
（実施の形態３）
《シリアル通信システムの構成（変形例［１］）》
図１６は、本発明の実施の形態３によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図１７は、図１６の比較例として検討したシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図１６および図１７では、通信ＩＦモジュールＭＤＬｉｆと、複数の被制御モジュール（ここではモータモジュールＭＤＬｍ［１］，ＭＤＬｍ［２］，…）とが、ＧＰＩＯバスＢＳ２を介して接続された構成例が示されている。
【０１０５】
各ＧＰＩＯインタフェースＧＩＦは、図１７に示すように、通常、インタフェース内で、初期設定によりプルアップ抵抗／プルダウン抵抗（ここではプルダウン抵抗Ｒｉ）を接続することができる。ここで、例えば、モータモジュールＭＤＬｍ［１］内のＧＰＩＯインタフェースＧＩＦが、送信バッファＢＦＧｏを介して‘Ｈ’レベルを送信した場合を想定する。この場合、当該送信バッファＢＦＧｏから各モジュール（ＭＤＬｉｆ，ＭＤＬｍ［１］，ＭＤＬｍ［２］，…）内のプルダウン抵抗Ｒｉに電流が流れるため、特に、被制御モジュールの数が多くなると、消費電力や送信バッファＢＦＧｏの駆動能力等が問題となる恐れがある。
【０１０６】
そこで、図１６では、被制御モジュール（モータモジュールＭＤＬｍ［１］，ＭＤＬｍ［２］，…）の配線基板ＰＣＢ２上に、外部スイッチＳＷと外部抵抗Ｒｅとが実装されている。外部抵抗Ｒｅは、場合によって省くことも可能である。外部スイッチＳＷは、一端にＧＰＩＯバスＢＳ２が結合され、他端に外部抵抗Ｒｅを介して電源電圧（固定電圧）ＶＤＤが供給される。そして、各被制御モジュール内のＧＰＩＯインタフェースＧＩＦは、送信バッファＢＦＧｏを介して外部スイッチＳＷのオン・オフを制御することで、ＧＰＩＯバスＢＳ２における通信を行う。
【０１０７】
これにより、例えば、モータモジュールＭＤＬｍ［１］内のＧＰＩＯインタフェースＧＩＦが、送信バッファＢＦＧｏを介して‘Ｈ’レベルを送信した場合、図１７の場合と異なり、通信ＩＦモジュールＭＤＬｉｆ内のプルダウン抵抗Ｒｉのみに電流が流れる。その結果、消費電力を低減でき、送信バッファＢＦＧｏの駆動能力の問題も特に生じない。
【０１０８】
（実施の形態４）
《シリアル通信システムの構成（変形例［２］）》
図１８は、本発明の実施の形態４によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図１８では、通信ＩＦモジュールＭＤＬｉｆと、被制御モジュール（ここではモータモジュールＭＤＬｍ）とが、Ｉ２ＣバスＢＳ１およびＧＰＩＯバスＢＳ２を介して接続された構成例が示されている。通信ＩＦモジュールＭＤＬｉｆ内の制御デバイスＭＣＵｃは、Ｉ２ＣバスＢＳ１のデータ配線（ＳＤＡ）およびクロック配線（ＳＣＬ）にそれぞれ結合される外部端子ＰＮｓｄおよび外部端子ＰＮｓｃと、ＧＰＩＯバスＢＳ２に結合される外部端子ＰＮｉｏ１と、に加えて、外部端子ＰＮｉｏ２を備える。
【０１０９】
外部端子ＰＮｉｏ２は、通信ＩＦモジュールＭＤＬｉｆの配線基板ＰＣＢ１を介して外部端子ＰＮｓｃに接続される。また、通信ＩＦモジュールＭＤＬｉｆの制御デバイスＭＣＵｃは、ハードウェア、あるいはハードウェアとソフトウェアの組合せによって構成されるシフトレジスタＳＲＥＧ２を備える。シフトレジスタＳＲＥＧ２は、ＧＰＩＯバスＢＳ２からＧＰＩＯインタフェースＧＩＦを介して受信したシリアルデータを、外部端子ＰＮｉｏ２で受信したクロック信号ＳＣＬに同期して取り込む。
【０１１０】
一方、被制御モジュール（モータモジュールＭＤＬｍ）の制御デバイスＭＣＵｍにおいて、図１１の制御部ＣＴＬｍ内のアドレス探索部ＡＤＳは、例えば、次のような処理を行う。すなわち、アドレス探索部ＡＤＳは、図１５のステップＳ３０６等で探索結果となるスレーブアドレスＡＤＤをＧＰＩＯバスＢＳ２へ送信すると共に、その送信タイミングと同期して、フルＩ２ＣインタフェースＩＩＦｆを介してＩ２ＣバスＢＳ１に含まれるクロック配線にクロック信号ＳＣＬを送信する。これにより、通信ＩＦモジュールＭＤＬｉｆは、当該スレーブアドレスＡＤＤをシフトレジスタＳＲＥＧ２に取り込むことができる。
【０１１１】
このような方式を用いることで、シリアル通信システムにおける配線数を特に増大させることなく、１本のＧＰＩＯバスＢＳ２を用いて等価的に同期通信を行うことが可能になる。その結果、シリアル通信システムの小型化または低コスト化が図れる。また、同期通信であるため、ＧＰＩＯバスＢＳ２を用いた通信の信頼性をより高められる場合がある。
【０１１２】
（実施の形態５）
《シリアル通信システムの構成（変形例［３］）》
図１９は、本発明の実施の形態５によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図１９では、通信ＩＦモジュールＭＤＬ２ｉｆと、バスシステムＢＳＹＳ［１］〜ＢＳＹＳ［４］内の被制御モジュールとが、Ｉ２ＣバスＢＳ１［１］〜ＢＳ１［４］および差動バスＢＳ４［１］〜ＢＳ４［４］を介して接続された構成例が示されている。ここでは、被制御モジュールの構成を、バスシステムＢＳＹＳ［１］内のモータモジュールＭＤＬ２ｍ［１］を代表例に説明する。
【０１１３】
通信ＩＦモジュールＭＤＬ２ｉｆの配線基板ＰＣＢ１上には、４個の差動バスドライバＤＦＶ［１］〜ＤＦＶ［４］が実装される。４個の差動バスドライバＤＦＶ［１］〜ＤＦＶ［４］は、それぞれ、制御デバイスＭＣＵｃのＧＰＩＯインタフェースＧＩＦ［１］〜ＧＩＦ［４］から送信されたシングルデータを差動データに変換して差動バスＢＳ４［１］〜ＢＳ４［４］へ送信する。また、その逆に、４個の差動バスドライバＤＦＶ［１］〜ＤＦＶ［４］は、それぞれ、差動バスＢＳ４［１］〜ＢＳ４［４］から受信した差動データを、シングルデータに変換してＧＰＩＯインタフェースＧＩＦ［１］〜ＧＩＦ［４］へ送信する。
【０１１４】
同様に、モータモジュールＭＤＬ２ｍ［１］の配線基板ＰＣＢ２上には、差動バスドライバＤＦＶが実装される。差動バスドライバＤＦＶは、制御デバイスＭＣＵｍのＧＰＩＯインタフェースＧＩＦ（図示は省略）から送信されたシングルデータを差動データに変換して差動バスＢＳ４［１］へ送信する。また、その逆に、当該差動バスドライバＤＦＶは、差動バスＢＳ４［１］から受信した差動データを、シングルデータに変換してＧＰＩＯインタフェースＧＩＦ（図示は省略）へ送信する。なお、差動バスドライバＤＦＶは、代表的には、ＲＳ４８５規格に基づく構成が挙げられる。
【０１１５】
前述したように、ロボット等の制御システムでは、多数の被制御モジュールがバスに接続されるため、バスの配線長が長くなり得ることに加えて、モータＭＴ等が発生するノイズがバスに重畳する恐れもある。そこで、このような場合であっても、ＧＰＩＯインタフェースＧＩＦを用いた通信を高い信頼性で行うため、図１９に示したような差動バスＢＳ［１］〜ＢＳ［４］を用いることが有益となる。
【０１１６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１１７】
例えば、ここでは、第１シリアルバスとしてＩ２ＣバスＢＳ１を用いたが、必ずしもＩ２ＣバスＢＳ１に限定されるものではない。すなわち、Ｉ２ＣバスＢＳ１の場合と同様に、マスタ状態かスレーブ状態かで動作し、アドレスを指定してシリアル通信を行うバスであれば同様に適用可能である。
【０１１８】
（付記）
本実施の形態によるシリアル通信システムのプラグアンドプレイ方法は、第１および第２シリアルバスと、制御ユニットと、複数の電子装置と、を用いる。制御ユニットは、第１および第２シリアルバスに結合され、アドレスを含んだ第１命令を第１シリアルバスへ送信する。複数の電子装置は、それぞれ、第１および第２シリアルバスに着脱可能であり、第１および第２シリアルバスに接続された状態で自身のアドレスを含んだ第１命令を第１シリアルバスから受信した場合に、肯定応答を第１シリアルバスへ送信する。ここで、複数の電子装置のそれぞれは、第１および第２シリアルバスに接続された際に、第１信号を第２シリアルバスへ送信する。制御ユニットは、第１信号を受信した際に、第１シリアルバスとの間の通信を停止する。複数の電子装置のそれぞれは、候補となるアドレスを含んだ第１命令を第１シリアルバスへ送信しながら、当該第１命令に対する肯定応答を受信しないアドレスを探索し、当該探索結果となるアドレスを第２シリアルバスへ送信する。制御ユニットは、当該探索結果となるアドレスを第２シリアルバスから受信する。
【符号の説明】
【０１１９】
ＢＳ１  Ｉ２Ｃバス
ＢＳ２  ＧＰＩＯバス
ＢＳＹＳ  バスシステム
ＣＴＬＵ  制御ユニット
ＧＩＦ  ＧＰＩＯインタフェース
ＨＣＴＬ  ホストコントローラ
ＩＩＦｆ  フルＩ２Ｃインタフェース
ＩＩＦｓ  簡易Ｉ２Ｃインタフェース
ＭＣＵ  制御デバイス
ＭＤＬｉｆ  通信ＩＦモジュール
ＭＤＬｍ  モータモジュール
ＭＤＬｓ  センサモジュール
ＭＴ  モータ
ＳＥＮ  センサ
【図１】
0006359955.tif 000002
【図２】
0006359955.tif 000003
【図３】
0006359955.tif 000004
【図４】
0006359955.tif 000005
【図５】
0006359955.tif 000006
【図６】
0006359955.tif 000007
【図７】
0006359955.tif 000008
【図８】
0006359955.tif 000009
【図９】
0006359955.tif 000010
【図１０】
0006359955.tif 000011
【図１１】
0006359955.tif 000012
【図１２】
0006359955.tif 000013
【図１３】
0006359955.tif 000014
【図１４】
0006359955.tif 000015
【図１５】
0006359955.tif 000016
【図１６】
0006359955.tif 000017
【図１７】
0006359955.tif 000018
【図１８】
0006359955.tif 000019
【図１９】
0006359955.tif 000020