(57)【要約】【課題】  簡単な回路構成でバスの使用状態を把握することのできるバス共有システムを提供する。【解決手段】  本発明のバス共有システムは、シリアルケーブル１０３を排他的に共有する２つのバスマスタであるモジュール１０１とモジュール１０２からなる。上記モジュール１０１は、モジュール１０２に接続され、且つ所定の電圧が印加された信号線１０４に、抵抗素子Ｒ２を介して接続されたＮ−ｃｈオープンドレイン１２と、上記抵抗素子Ｒ２の信号線１０４側の電位差Ｖａｄを測定するＡ／Ｄコンバータ１３と、このＡ／Ｄコンバータ１３によって測定された電位差Ｖａｄに基づいてバス使用状態を判断する送受信制御部１４とを備えている。これにより、簡単な構成でバスの使用状態を把握できる。【選択図】  図１
2006099288.tif 000002
【特許請求の範囲】
【請求項１】
バスを排他的に共有する複数のバスマスタからなるバス共有システムにおいて、
上記バスマスタは、
他のバスマスタに接続され、且つ所定の電圧が印加された信号線に、抵抗素子を介してバスの使用要求の有無を示すハイレベルあるいはローレベルを出力する出力回路と、
上記抵抗素子の信号線側の電位差を測定する電位差測定回路と、
上記電位差測定回路によって測定された電位差に基づいて、バスの使用状態を判断するバス使用状態判断回路とを備えていることを特徴とするバス共有システム。
【請求項２】
上記各抵抗素子のうち、一つの抵抗素子の抵抗値を他の抵抗素子の抵抗値と異ならせたことを特徴とする請求項１に記載のバス共有システム。
【請求項３】
上記出力回路は、オープンドレインからなると共に、上記電位差測定回路は、アナログ／デジタル変換器からなり、
上記信号線には、プルアップ用の抵抗素子が接続されていることを特徴とする請求項１に記載のバス共有システム。
【請求項４】
バスを排他的に共有する複数のバスマスタからなるバス共有システムにおいて、
上記バスマスタは、
他のバスマスタに接続され且つプルアップ用抵抗素子が接続された信号線に、抵抗素子を介して接続されたオープンドレインと、
上記抵抗素子の信号線側に接続され、該信号線の電位差を測定するアナログ／デジタル変換器と、
上記アナログ／デジタル変換器によって測定された電位差に基づいて、バスの使用状態を判断するバス使用状態判断回路とを備えていることを特徴とするバス共有システム。
【請求項５】
上記各抵抗素子のうち、一つの抵抗素子の抵抗値を他の抵抗素子の抵抗値と異ならせたことを特徴とする請求項５に記載のバス共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを排他的に共有する複数のバスマスタからなるバス共有システムに関するものである。
【背景技術】
【０００２】
従来、バスを排他的に共有する複数のバスマスタからなるバス共有システムにおいて、各バスマスタはバスの使用要求を行ってからバスを使用するようにしているが、この場合に他のバスマスタと競合する事態になれば、バスを使用する権利（以下、バス権と称する）の調停が必要となる。
【０００３】
このバス権の調停方式として、複数のＣＰＵ間のバス調停でよく用いられる方式（以下、ＣＰＵ方式と称する）や、Ｉ２Ｃで用いられる方式（以下、Ｉ２Ｃ方式と称する）等がある。
【０００４】
例えば、ＣＰＵ方式では、各バスマスタがスーパーマスタにバス権を要求することで、該スーパーマスタが調停を行ってバス権を与えるようにしている。
【０００５】
また、Ｉ２Ｃ方式では、各スレーブのスレーブアドレス割当時に優先順位を付与して、優先順位の高いスレーブにアクセスするバスマスタにバス権を与えるようにしている。
【０００６】
ところが、ＣＰＵ方式では、各バスマスタのほかにバス権を調停するためのスーパーマスタを設ける必要があり、回路構成が非常に複雑になるという問題が生じる。
【０００７】
また、Ｉ２Ｃ方式では、各バスマスタにスレーブアドレスを割り当てる必要があり、そのときの通信プロトコルが非常に複雑になるという問題が生じる。
【０００８】
そこで、特許文献１には、接続要求を出力する回路にオープンコレクタを備えたバスマスタ同士が一本の信号線により接続され、この信号線に流れる信号によりバス使用状態を監視し、バス権の調停を行う技術が開示されている。
【０００９】
このように、一本の信号線に流れる信号によって、バス権の調停を行うようにすれば、ＣＰＵ方式のように、各バスマスタのほかにバス権を調停するためのスーパーマスタを設ける必要がないので、回路構成が簡単になる。また、Ｉ２Ｃ方式のように、各バスマスタにスレーブアドレスを割り当てる必要がないので、複雑な通信プロトコルも必要としない。
【特許文献１】特開平２−１６５３６２（１９９０年６月２６日公開）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された技術では、バスの使用状態を把握するために複雑な回路（第２図に示すような調停回路）が必要になる。
【００１１】
従って、バス共有システムが複雑な回路構成とならざるを得ない。
【００１２】
本発明は、上記の問題点に鑑みなされたものであり、その目的は、簡単な回路構成でバスの使用状態を把握することのできるバス共有システムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係るバス共有システムは、上記課題を解決するために、バスを排他的に共有する複数のバスマスタからなるバス共有システムにおいて、上記バスマスタは、他のバスマスタに接続され、且つ所定の電圧が印加された信号線に、抵抗素子を介してバスの使用要求の有無を示すハイレベルあるいはローレベルを出力する出力回路と、上記抵抗素子の信号線側の電位差を測定する電位差測定回路と、上記電位差測定回路によって測定された電位差に基づいて、バスの使用状態を判断するバス使用状態判断回路とを備えていることを特徴としている。
【００１４】
上記信号線に印加された電圧は、各バスマスタの出力回路から出力されるレベルによって変化する。つまり、各バスマスタの出力回路からの出力がハイレベルであるか、あるいはローレベルであるかによって、信号線の電位が変化する。この特性を利用して、信号線の電位差を各バスマスタで測定することで、各バスマスタのバス使用要求の有無を判断することが可能となる。
【００１５】
従って、上記構成のように、各バスマスタが、それぞれに備えられた電位差測定回路によって、バスマスタ同士を接続している信号線の電位差を測定し、バス使用状態判断回路によって、測定した電位差に基づいてバスの使用状態を判断することができる。
【００１６】
このように、バスマスタ同士を接続している信号線の電位差を測定するだけという簡単な回路構成でバスマスタ自身がバスの使用状態を把握することができるので、バス権調停のためのスーパーマスタを別途設ける必要がない。このため、スーパーマスタを設けてバス調停を行う場合のように、配線を複数本設ける必要がなく、一本の信号線のみの簡単な回路構成でバス権の調停を行うことができる。
【００１７】
以上のことから、本願発明は、特に、信号線が必要以上に増やせないような回路に好適に用いられる。
【００１８】
さらに、上記各抵抗素子のうち、一つの抵抗素子の抵抗値を他の抵抗素子の抵抗値と異ならせた構成であってもよい。
【００１９】
この場合、抵抗素子の抵抗値が異なれば、各バスマスタが同じバス使用状態であっても信号線の電位差が異なるので、この異なる電位差に応じてバスマスタのバス権獲得の優先順位を設定することができる。これにより、従来のように、バスマスタに優先順位を設定するために、各バスマスタにスレーブアドレスを割り当てる必要がないので、通信のための複雑なプロトコルも必要としない。
【００２０】
また、上記出力回路を、オープンドレインで構成し、さらに、上記信号線にプルアップ用抵抗素子を設け、上記電位差測定回路を、アナログ／デジタル変換器（Ａ／Ｄ変換器）で構成してもよい。
【００２１】
この場合、オープンドレイン同士を接続する一本の信号線を設けるだけで、バス権の調停を行うことが可能となるので、回路構成を簡単にすることができる。しかも、Ａ／Ｄ変換機は、信号線の電位差を検出するだけなので、高精度のものを必要とせず、消費電力の低い比較的精度の低い安価なＡ／Ｄ変換器を使用することができる。
【００２２】
上記各抵抗素子のうち、一つの抵抗素子の抵抗値を他の抵抗素子の抵抗値と異ならせた構成であってもよい。
【００２３】
このように、抵抗素子の抵抗値を異ならせるだけで、各バスマスタの優先順位を簡単に割り当てることが可能となる。
【発明の効果】
【００２４】
本発明に係るバス共有システムは、以上のように、バスマスタは、他のバスマスタに接続され、且つ所定の電圧が印加された信号線に、抵抗素子を介してバスの使用要求の有無を示すハイレベルあるいはローレベルを出力する出力回路と、上記抵抗素子の信号線側の電位差を測定する電位差測定回路と、上記電位差測定回路によって測定された電位差に基づいて、バスの使用状態を判断するバス使用状態判断回路とを備えていることで、バスマスタ同士を接続している信号線の電位差を測定するだけという簡単な回路構成でバスマスタ自身がバスの使用状態を把握することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
本発明の実施の形態について説明すれば、以下の通りである。
【００２６】
本実施の形態に係るバス共有システムは、図１に示すように、２つのバスマスタとしてのモジュール１０１・１０２が、バスとしてのシリアルケーブル１０３にて接続されると共に、バスの使用状態を把握するのに使用される信号線１０４にて接続された構成となっている。
【００２７】
上記モジュール１０１は、上記モジュール１０２との間でクロックやデータの送受信を行うデータ送受信部１１と、Ｎ−ｃｈオープンドレイン１２（出力回路）及びＡ／Ｄコンバータ１３（電位差測定回路）と、これら回路における信号の送受信を制御するための送受信制御部１４（バス使用状態判断回路）とを備えた構成となっている。
【００２８】
上記データ送受信部１１は、シリアルケーブル１０３を介してクロック信号及びデータ信号を送受信するものである。
【００２９】
上記Ｎ−ｃｈオープンドレイン１２は、バスの使用要求の有無に応じて、出力端子がハイインピーダンス状態あるいはローレベルとなり、この出力端子は抵抗素子Ｒ２を介して電位差Ｖａｄの信号線１０４に接続されている。
【００３０】
上記信号線１０４には、電源電圧Ｖｄｄに接続され、上記Ｎ−ｃｈオープンドレイン１２がハイインピーダンス状態になったときの電位を保持させるためのプルアップ用の抵抗素子Ｒ１が接続されている。
【００３１】
これにより、Ｎ−ｃｈオープンドレイン１２の出力端子では、ローレベルの他に、ハイインピーダンス状態において、プルアップによるハイレベルが維持される。すなわち、Ｎ−ｃｈオープンドレイン１２は、ローレベルあるいはハイレベルの出力を行う出力回路としての機能を果たす。
【００３２】
上記Ａ／Ｄコンバータ１３は、上記抵抗素子Ｒ２のＮ−ｃｈオープンドレイン１２の接続側とは反対側に接続されており、上記信号線１０４上の電位差Ｖａｄを測定する電位差測定回路としての機能を有している。
【００３３】
上記送受信制御部１４は、上記Ａ／Ｄコンバータ１３によって測定された電位差に基づいてバス使用状態を判断し、バス権の調停を行うバス権調停手段としての機能を有している。
【００３４】
具体的には、図１に示すバス共有システムにおいて、信号線１０４上に電源電圧Ｖｄｄが抵抗素子Ｒ１を介して接続されており、この接続点の電位差ＶａｄをＡ／Ｄコンバータ１３によって測定する。そして、送受信制御部１４は、測定された電位差Ｖａｄに基づいて、バス権決定処理を実行する。
【００３５】
上記モジュール１０２は、上記モジュール１０１と同じ構成であるので、その説明は省略する。但し、モジュール１０２のＮ−ｃｈオープンドレイン１２に接続されているのは、抵抗素子Ｒ３である。
【００３６】
図１に示すバス共有システムにおいて、モジュール１０１側の抵抗素子Ｒ２と、モジュール１０２側の抵抗素子Ｒ３との抵抗値を異ならせることにより、モジュール１０１とモジュール１０２との間で優先順位（バス権の優先順位）を付与することが可能となる。逆に、抵抗素子Ｒ２とＲ３の抵抗値を同じにすれば、モジュール１０１とモジュール１０２との間では優先順位が無いようにすることができる。
【００３７】
上記構成のバス共有システムによるバス権決定の処理の流れについて以下に説明する。
【００３８】
まず、モジュール１０１とモジュール１０２との間に優先順位の無い場合のバス権決定の処理について説明する。ここで、電源電位Ｖｄｄ＝３．０Ｖ、抵抗素子Ｒ１の抵抗値＝５０ｋΩ、抵抗素子Ｒ２の抵抗値＝抵抗素子Ｒ３の抵抗値＝１００ｋΩとする。この条件での、モジュール１０１とモジュール１０２のＮ−ｃｈオープンドレイン１２の端子状態により、電位差Ｖａｄが下記の表１に示すように変化する。つまり、この電位差Ｖａｄによってお互いのモジュールの状態が分かり、バス権がどちらにあるのかも分かる。
【００３９】
【表１】
2006099288.tif 000003
【００４０】
表１において、ｍｏｄ１はモジュール１０１のＮ−ｃｈオープンドレイン１２の端子状態を示し、ｍｏｄ２はモジュール１０２のＮ−ｃｈオープンドレイン１２の端子状態を示している。
【００４１】
例えば、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであれば、モジュール１０１、モジュール１０２ともに、Ｎ−ｃｈオープンドレイン１２の端子がハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かり、お互いにバス権を主張していない状態示す。
【００４２】
Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが２．０Ｖであれば、モジュール１０１かモジュール１０２の何れかのＮ−ｃｈオープンドレイン１２の端子がローレベル（Ｌｏｗ）であることが分かる。この場合、Ｎ−ｃｈオープンドレイン１２の端子がローレベルであるモジュールにバス権があることになる。
【００４３】
さらに、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが１．５Ｖであれば、モジュール１０１、モジュール１０２の何れもバス権を主張している状態であることが分かる。この場合、バスが競合しているという状態なので、どちらからのモジュールがバス権を諦めることになる。
【００４４】
以上のことを考慮して、優先順位の無い場合のバス権決定処理の流れについて図２に示すフローチャートを参照しながら以下に説明する。ここでは、モジュール１０１側の動作として説明する。
【００４５】
まず、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ１）。ここで、Ｖａｄ＝３．０Ｖであると判断された場合、自身のＮ−ｃｈオープンドレイン１２の端子及び通信相手であるモジュール１０２のＮ−ｃｈオープンドレイン１２の端子がともにハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かる。従って、ステップＳ２に移行して、送受信制御部１４からのデータの送信要求があるか否かを判断する。
【００４６】
一方、ステップＳ１において、Ｖａｄ＝３．０Ｖでないと判断された場合、相手側であるモジュール１０２のＮ−ｃｈオープンドレイン１２の端子がＬｏｗであること、すなわちバス権を主張している状態であることが分かるので、ステップＳ３に移行して該モジュール１０２からのデータを受信するための受信処理を行う。
【００４７】
また、ステップＳ２において、送受信制御部１４からの送信要求があれば、Ｎ−ｃｈオープンドレイン１２の端子、すなわちオープンドレインバッファをＬｏｗにする（ステップＳ４）。一方、ステップＳ２において、送受信制御部１４からの送信要求がなければ、ステップＳ１に移行して、再びＡ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する。
【００４８】
そして、電位差Ｖａｄが２．０Ｖであるか否かを判断する（ステップＳ５）。ここで、Ｖａｄ＝２．０Ｖであると判断されれば、バス権を確保したことになり、データの送信処理を行う（ステップＳ６）。
【００４９】
次に、送信処理が完了すれば、再びＮ−ｃｈオープンドレイン１２の端子をＨｉ−Ｚにし、ステップＳ１に移行する。
【００５０】
一方、ステップＳ５において、Ｖａｄ＝２．０Ｖでないと判断された場合、バス権が確保されていないので、予め定められた時間待機する（ステップＳ８）そして、再び、Ｖａｄ＝２．０であるか否かを判断する（ステップＳ９）。ここで、Ｖａｄ＝２．０であると判断されれば、バス権を確保できたことになるので、ステップＳ６に移行してデータの送信処理を行う。
【００５１】
一方、ステップＳ９において、Ｖａｄ＝２．０Ｖでないと判断されれば、ステップＳ１０に移行して、Ｎ−ｃｈオープンドレイン１２の端子であるオープンドレインバッファをＨｉ−Ｚにする。
【００５２】
そして、再び、予め定められた時間待機する（ステップＳ１１）。
【００５３】
続いて、電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ１２）。ここで、Ｖａｄ＝３．０Ｖであれれば、ステップＳ４に移行し、Ｎ−ｃｈオープンドレイン１２の端子をＬｏｗにする。
【００５４】
一方、ステップＳ１２において、Ｖａｄ＝３．０Ｖでないと判断されれば、相手側であるモジュール１０２がバス権を主張しているので、ステップＳ３に移行してデータの受信処理を行う。
【００５５】
以上のように、上記構成のバス共有システムは、バスマスタであるモジュール１０１、１０２が、それぞれに備えられたＡ／Ｄコンバータ１３によって、モジュール同士を接続している信号線１０４の電位差Ｖａｄを測定することで、測定した電位差Ｖａｄからバスとなるシリアルケーブル１０３の使用状態を把握することができる。
【００５６】
このように、モジュール同士を接続している信号線１０４の電位差Ｖａｄを測定するだけという簡単な回路構成で、モジュール自身がバスであるシリアルケーブル１０３の使用状態を把握することができる。
【００５７】
また、Ｎ−ｃｈオープンドレイン１２の信号出力端子と、上記信号線１０４との間に抵抗素子Ｒ２（Ｒ３）が設けられており、Ａ／Ｄコンバータ１３は、上記抵抗素子Ｒ２（Ｒ３）の信号線１０４側の端子部分の電位差Ｖａｄを測定するようになっているので、信号線１０４の電位差Ｖａｄの変化を大きくすることが可能となる。
【００５８】
これにより、Ａ／Ｄコンバータ１３としては、数ｂｉｔ程度の消費電力が低く、且つ精度のあまり高くない安価なＡ／Ｄコンバータを使用することができるので、バス共有システムを安価に作成することができる。
【００５９】
さらに、各モジュールに接続された抵抗素子Ｒ２（Ｒ３）の少なくとも一つの抵抗素子の抵抗値を、他の抵抗素子の抵抗値と異ならせるようにすることで、バス権獲得の優先順位を設定することができる。つまり、抵抗素子の抵抗値が異なれば、バス使用状態での信号線１０４の電位差Ｖａｄが異なるので、この異なる電位差Ｖａｄに応じてモジュールのバス使用の優先順位を割り当てることができる。
【００６０】
次に、モジュール１０１とモジュール１０２との間に優先順位のある場合のバス権決定の処理について説明する。ここで、電源電位Ｖｄｄ＝３．０Ｖ、抵抗素子Ｒ１の抵抗値＝抵抗素子Ｒ２の抵抗値＝５０ｋΩ、抵抗素子Ｒ３の抵抗値＝１００ｋΩとする。この条件では、モジュール１０１は、モジュール１０２よりも優先順位が高いことになる。
【００６１】
この場合も、モジュール１０１とモジュール１０２のＮ−ｃｈオープンドレイン１２の端子状態により、電位差Ｖａｄが下記の表２に示すように変化するので、この電位差Ｖａｄによってお互いのモジュールの状態が分かり、バス権がどちらにあるのかも分かる。
【００６２】
【表２】
2006099288.tif 000004
【００６３】
表２において、ｍｏｄ１はモジュール１０１のＮ−ｃｈオープンドレイン１２の端子状態を示し、ｍｏｄ２はモジュール１０２のＮ−ｃｈオープンドレイン１２の端子状態を示している。
【００６４】
例えば、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであれば、モジュール１０１、モジュール１０２ともに、Ｎ−ｃｈオープンドレイン１２の端子がハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かり、お互いにバス権を主張していない状態示す。
【００６５】
Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが１．５Ｖであれば、モジュール１０１のＮ−ｃｈオープンドレイン１２の端子がローレベル（Ｌｏｗ）であることが分かる。この場合、Ｎ−ｃｈオープンドレイン１２の端子がローレベルであるモジュール１０１にバス権があることになる。
【００６６】
また、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが２．０Ｖであれば、モジュール１０２のＮ−ｃｈオープンドレイン１２の端子がローレベル（Ｌｏｗ）であることが分かる。この場合、Ｎ−ｃｈオープンドレイン１２の端子がローレベルであるモジュール１０２にバス権があることになる。
【００６７】
さらに、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが１．２Ｖであれば、モジュール１０１、モジュール１０２の何れもバス権を主張している状態であることが分かる。この場合、バスが競合している状態であるので、優先順位の高いバスマスタは相手がバス権を諦めるのを待ち、優先順位の低いバスマスタはバス権を諦める。
【００６８】
以上のことを考慮して、優先順位のある場合のバス権決定処理の流れについて図３及び図４に示すフローチャートを参照しながら以下に説明する。ここでは、モジュール１０１のバス権獲得のための優先順位をモジュール１０２よりも高いものとして説明する。なお、図３は、モジュール１０１側の動作としての処理の流れを示し、図４は、モジュール１０２側の動作としての処理の流れを示す。
【００６９】
始めに、優先順位の高い側（モジュール１０１側）の処理の流れについて図３を参照しながら以下に説明する。
【００７０】
まず、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ２１）。ここで、Ｖａｄ＝３．０Ｖであると判断された場合、自身のＮ−ｃｈオープンドレイン１２の端子及び通信相手であるモジュール１０２のＮ−ｃｈオープンドレイン１２の端子がともにハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かる。従って、ステップＳ２に移行して、送受信制御部１４からのデータの送信要求があるか否かを判断する。
【００７１】
一方、ステップＳ２１において、Ｖａｄ＝３．０Ｖでないと判断された場合、相手側であるモジュール１０２のＮ−ｃｈオープンドレイン１２の端子がＬｏｗであること、すなわちバス権を主張している状態であることが分かるので、ステップＳ２３に移行して該モジュール１０２からのデータを受信するための受信処理を行う。
【００７２】
また、ステップＳ２２において、送受信制御部１４からの送信要求があれば、Ｎ−ｃｈオープンドレイン１２の端子、すなわちオープンドレインバッファをＬｏｗにする（ステップＳ２４）。一方、ステップＳ２２において、送受信制御部１４からの送信要求がなければ、ステップＳ２１に移行して、再びＡ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する。
【００７３】
そして、電位差Ｖａｄが１．５Ｖであるか否かを判断する（ステップＳ２５）。ここで、Ｖａｄ＝１．５Ｖであると判断されれば、バス権を確保し、データの送信処理を行う（ステップＳ２６）。
【００７４】
次に、送信処理が完了すれば、Ｎ−ｃｈオープンドレイン１２の端子であるオープンドレインバッファをＨｉ−Ｚにし（ステップＳ２７）、ステップＳ２１に移行する。
【００７５】
続いて、優先順位の低い側（モジュール１０２側）の処理の流れについて図４を参照しながら以下に説明する。
【００７６】
まず、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ３１）。ここで、Ｖａｄ＝３．０Ｖであると判断された場合、自身のＮ−ｃｈオープンドレイン１２の端子及び通信相手であるモジュール１０１のＮ−ｃｈオープンドレイン１２の端子がともにハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かる。従って、ステップＳ３２に移行して、送受信制御部１４からのデータの送信要求があるか否かを判断する。
【００７７】
一方、ステップＳ３１において、Ｖａｄ＝３．０Ｖでないと判断された場合、相手側であるモジュール１０１のＮ−ｃｈオープンドレイン１２の端子がＬｏｗであること、すなわちバス権を主張している状態であることが分かるので、ステップＳ３３に移行して該モジュール１０１からのデータを受信するための受信処理を行う。
【００７８】
また、ステップＳ３２において、送受信制御部１４からの送信要求があれば、Ｎ−ｃｈオープンドレイン１２の端子、すなわちオープンドレインバッファをＬｏｗにする（ステップＳ３４）。一方、ステップＳ３２において、送受信制御部１４からの送信要求がなければ、ステップＳ３１に移行して、再びＡ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する。
【００７９】
そして、電位差Ｖａｄが２．０Ｖであるか否かを判断する（ステップＳ３５）。ここで、Ｖａｄ＝２．０Ｖであると判断されれば、バス権を確保したことになり、データの送信処理を行う（ステップＳ３６）。
【００８０】
次に、送信処理が完了すれば、Ｎ−ｃｈオープンドレイン１２の端子であるオープンドレインバッファをＨｉ−Ｚにし（ステップＳ３７）．ステップＳ３１に移行する。
【００８１】
一方、ステップＳ３５において、Ｖａｄ＝２．０でないと判断されれば、相手側であるモジュール１０１がバス権を要求しているものと思われるので、オープンドレインバッファをＨｉ−Ｚにし（ステップＳ３８）、ステップＳ３３に移行してモジュール１０１側からのデータの受信処理を行う。
【００８２】
以上のように、モジュールに接続されている抵抗素子の抵抗値を異ならせるだけで、簡単にバス権獲得のための優先順位が割り当てられるので、バス権調停のために特別な調停回路を設ける必要が無い。これにより、各モジュールに優先順位を割り当てた場合であっても、Ｉ２Ｃ方式のように複雑な通信プロトコルを使用しないで、バス権決定の処理を行うことができる。
【００８３】
また、本実施の形態では、追加する信号線が１本であるので、特に、信号線の増やせない機器、例えば携帯電話等の分野において有効に適用できる。
【００８４】
なお、本実施の形態では、２つのバスマスタ（モジュール１０１、１０２）が１つのバス（シリアルケーブル１０３）を共有した場合について説明したが、これに限定されるものではなく、３つ以上のバスマスタが１つのバスを共有している場合においても適用することができる。
【００８５】
以下に１つのバスを共有するバスマスタが３つの例について、図５及び図６を参照しながら以下に説明する。
【００８６】
図５に示すバス共有システムは、図１に示すバス共有システムにおいて、モジュール２０１を追加されたものとなっている。
【００８７】
ここで、３つのモジュールが対応の関係になるようにシリアルケーブル１０３及び信号線１０４に接続されている。すなわち、モジュール２０１において、信号線１０４に対しては抵抗素子Ｒ４を介してＮ−ｃｈオープンドレイン１２に接続されている。
【００８８】
また、Ａ／Ｄコンバータ１３は、上記抵抗素子Ｒ４のＮ−ｃｈオープンドレイン１２の接続側とは反対側に接続されており、上記信号線１０４上の電位差Ｖａｄを測定する電位差測定回路としての機能を有している。
【００８９】
つまり、上記モジュール２０１は、前述したモジュール１０２と同じ機能を有する各部を備えているので、各部の機能についての説明は省略する。
【００９０】
上記構成のバス共有システムによるバス権決定の処理の流れについて以下に説明する。
【００９１】
ここでは、モジュール１０１、モジュール１０２、モジュール２０１の間に優先順位の無い場合のバス権決定の処理について説明する。ここで、電源電位Ｖｄｄ＝３．０Ｖ、抵抗素子Ｒ１の抵抗値＝３０ｋΩ、抵抗素子Ｒ２の抵抗値＝抵抗素子Ｒ３の抵抗値＝抵抗素子Ｒ４の抵抗値＝３０ｋΩとする。この条件での、モジュール１０１、モジュール１０２、モジュール２０１のＮ−ｃｈオープンドレイン１２の端子状態により、電位差Ｖａｄが下記の表３に示すように変化する。つまり、この電位差Ｖａｄによってお互いのモジュールの状態が分かり、バス権がどのモジュールにあるのかも分かる。
【００９２】
【表３】
2006099288.tif 000005
【００９３】
表３において、ｍｏｄ１はモジュール１０１のＮ−ｃｈオープンドレイン１２の端子状態を示し、ｍｏｄ２はモジュール１０２のＮ−ｃｈオープンドレイン１２の端子状態を示し、ｍｏｄ３はモジュール２０１のＮ−ｃｈオープンドレイン１２の端子状態を示している。
【００９４】
例えば、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであれば、モジュール１０１、モジュール１０２、モジュール２０１全てが、Ｎ−ｃｈオープンドレイン１２の端子がハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かり、お互いにバス権を主張していない状態示す。
【００９５】
Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが１．５Ｖであれば、モジュール１０１、モジュール１０２、モジュール２０１の何れかのＮ−ｃｈオープンドレイン１２の端子がローレベル（Ｌｏｗ）であることが分かる。この場合、Ｎ−ｃｈオープンドレイン１２の端子がローレベルであるモジュールにバス権があることになる。
【００９６】
さらに、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが１．０Ｖであれば、モジュール１０１、モジュール１０２、モジュール２０１のうち２つのモジュールがバス権を主張している状態であることが分かる。この場合、バスが競合しているという状態なので、どちらからのモジュールがバス権を諦めることになる。
【００９７】
また、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが０．７５Ｖであれば、モジュール１０１、モジュール１０２、モジュール２０１の何れもがバス権を主張している状態であることが分かる。この場合、バスが競合しているという状態なので、何れか２つのモジュールがバス権を諦めることになる。
【００９８】
以上のことを考慮して、優先順位の無い場合のバス権決定処理の流れについて図６に示すフローチャートを参照しながら以下に説明する。ここでは、モジュール１０１側の動作として説明する。
【００９９】
まず、Ａ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ４１）。ここで、Ｖａｄ＝３．０Ｖであると判断された場合、自身のＮ−ｃｈオープンドレイン１２の端子及び通信相手であるモジュール１０２と２０１のＮ−ｃｈオープンドレイン１２の端子がともにハイインピーダンス状態（Ｈｉ−Ｚ）であることが分かる。従って、ステップＳ４２に移行して、送受信制御部１４からのデータの送信要求があるか否かを判断する。
【０１００】
一方、ステップＳ４１において、Ｖａｄ＝３．０Ｖでないと判断された場合、相手側であるモジュール１０２、モジュール２０１の少なくとも一方のモジュールのＮ−ｃｈオープンドレイン１２の端子がＬｏｗであること、すなわちバス権を主張している状態であることが分かるので、ステップＳ４３に移行して該モジュール１０２、モジュール２０１の少なくとも一方からのデータを受信するための受信処理を行う。
【０１０１】
また、ステップＳ４２において、送受信制御部１４からの送信要求があれば、Ｎ−ｃｈオープンドレイン１２の端子、すなわちオープンドレインバッファをＬｏｗにする（ステップＳ４４）。一方、ステップＳ４２において、送受信制御部１４からの送信要求がなければ、ステップＳ１に移行して、再びＡ／Ｄコンバータ１３によって検出された電位差Ｖａｄが３．０Ｖであるか否かを判断する。
【０１０２】
そして、電位差Ｖａｄが１．５Ｖであるか否かを判断する（ステップＳ４５）。ここで、Ｖａｄ＝１．５Ｖであると判断されれば、バス権を確保したことになり、データの送信処理を行う（ステップＳ４６）。
【０１０３】
次に、送信処理が完了すれば、再びＮ−ｃｈオープンドレイン１２の端子をＨｉ−Ｚにし、ステップＳ４１に移行する。
【０１０４】
一方、ステップＳ４５において、Ｖａｄ＝１．５Ｖでないと判断された場合、バス権が確保されていないので、予め定められた時間待機する（ステップＳ４８）そして、再び、Ｖａｄ＝１．５Ｖであるか否かを判断する（ステップＳ４９）。ここで、Ｖａｄ＝１．５Ｖであると判断されれば、バス権を確保できたことになるので、ステップＳ４６に移行してデータの送信処理を行う。
【０１０５】
一方、ステップＳ４９において、Ｖａｄ＝１．５Ｖでないと判断されれば、ステップＳ５０に移行して、Ｎ−ｃｈオープンドレイン１２の端子であるオープンドレインバッファをＨｉ−Ｚにする。
【０１０６】
そして、再び、予め定められた時間待機する（ステップＳ５１）。
【０１０７】
続いて、電位差Ｖａｄが３．０Ｖであるか否かを判断する（ステップＳ５２）。ここで、Ｖａｄ＝３．０Ｖであれれば、ステップＳ４４に移行し、Ｎ−ｃｈオープンドレイン１２の端子をＬｏｗにする。
【０１０８】
一方、ステップＳ５２において、Ｖａｄ＝３．０Ｖでないと判断されれば、相手側であるモジュール１０２、モジュール２０１の少なくとも一方がバス権を主張しているので、ステップＳ４３に移行してデータの受信処理を行う。
【０１０９】
このように３つのモジュールの場合、すなわちバスマスタが３つの場合であっても、バスマスタが２つの場合とほぼ同じ処理を行うことができるので、同様の効果を奏する。したがって、バスマスタが４つ以上であっても、バスマスタが２つの場合とほぼ同じ処理を行うことができる。
【０１１０】
また、図６の処理の説明では、各バスマスタに接続されている抵抗素子Ｒ２、Ｒ３、Ｒ４の抵抗値がそれぞれ同じである場合について説明したが、各抵抗素子の抵抗値を異ならせてバスマスタに優先順位を付けるようにしてもよい。この場合の処理は、図３及び図４に示す処理とほぼ同じとなるので、ここでは省略する。
【０１１１】
また、本実施の形態では、各モジュールに備えられた出力回路として、Ｎ−ｃｈオープンドレイン１２を用いた例を示したが、これに限定されるものではなく、例えば、オープンコレクタを用いてもよい。また、Ｐ−ｃｈオープンドレインを用い、信号線１０４をプルダウンすることでも実現可能となる。この場合、Ｎ−ｃｈオープンドレインの場合とは電位が逆になるが同様な制御でバス権の調停を行うことが可能となる。
【０１１２】
さらに、Ｎ−ｃｈオープンドレイン１２の代わりに、トライステートバッファを用いても本発明を適用することが可能となる。
【０１１３】
さらに、本実施の形態では、各モジュールに備えられた電位差測定回路として、Ａ／Ｄコンバータ１３を用いた例を示したが、これに限定されるものではなく、電位差数レベルの判別を行えば良いので、例えば、コンパレータやディテクター等を用いてもよい。
【０１１４】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０１１５】
すなわち、本発明は、実施の形態で示したバスとして、シリアルケーブル１０３を用いた場合に限定されず、パラレルバス方式のバス等、様々なバスに適用することができる。
【０１１６】
なお、上記実施形態のバス共有システムの各モジュールや各処理ステップは、ＣＰＵなどの演算手段が、ＲＯＭやＲＡＭなどの記憶手段に記憶されたプログラムを実行し、キーボードなどの入力手段、ディスプレイなどの出力手段、あるいは、インターフェース回路などの通信手段を制御することにより実現することができる。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体を読取り、当該プログラムを実行するだけで、本実施形態のバス共有システムの各種機能および各種処理を実現することができる。
【０１１７】
この記録媒体としては、マイクロコンピュータで処理を行うために図示しないメモリ、例えばＲＯＭのようなものがプログラムメディアであっても良いし、また、図示していないが外部記憶装置としてプログラム読取り装置が設けられ、そこに記録媒体を挿入することにより読取り可能なプログラムメディアであっても良い。
【０１１８】
また、何れの場合でも、格納されているプログラムは、マイクロプロセッサがアクセスして実行される構成であることが好ましい。さらに、プログラムを読み出し、読み出されたプログラムは、マイクロコンピュータのプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であることが好ましい。なお、このダウンロード用のプログラムは予め本体装置に格納されているものとする。
【０１１９】
また、上記プログラムメディアとしては、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやＣＤ／ＭＯ／ＭＤ／ＤＶＤ等のディスクのディスク系、ＩＣカード（メモリカードを含む）等のカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する記録媒体等がある。
【０１２０】
また、インターネットを含む通信ネットワークを接続可能なシステム構成であれば、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する記録媒体であることが好ましい。
【０１２１】
さらに、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであることが好ましい。
【産業上の利用可能性】
【０１２２】
本発明のバス共有システムは、バスを排他的に共有するバスマスタとなるデバイスであればどのようなシステムにも適用でき、特に、信号線の増やせない機器、例えば携帯電話等の分野において有効に適用できる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施形態を示すものであり、バス共有システムの要部構成を示すブロック図である。
【図２】図１に示すバス共有システムにおいて、バスマスタ同士で優先順位が設定されていない場合のバス使用状態を把握するための処理の流れを示すフローチャートである。
【図３】図１に示すバス共有システムにおいて、バスマスタ同士で優先順位が設定されている場合であって、優先順位の高い側のバスマスタにおけるバス使用状態を把握するための処理の流れを示すフローチャートである。
【図４】図１に示すバス共有システムにおいて、バスマスタ同士で優先順位が設定されている場合であって、優先順位の低い側のバスマスタにおけるバス使用状態を把握するための処理の流れを示すフローチャートである。
【図５】本発明の他の実施形態を示すものであり、バス共有システムの要部構成を示すブロック図である。
【図６】図５に示すバス共有システムにおいて、バスマスタ同士で優先順位が設定されていない場合のバス使用状態を把握するための処理の流れを示すフローチャートである。
【符号の説明】
【０１２４】
１１  データ送受信部
１２  Ｎ−ｃｈオープンドレイン（出力回路）
１３  Ａ／Ｄコンバータ（電位差測定回路）
１４  送受信制御部（バス使用状態判断回路）
１０１  モジュール（バスマスタ）
１０２  モジュール（バスマスタ）
１０３  シリアルケーブル（バス）
１０４  信号線
２０１  モジュール（バスマスタ）
Ｒ１  抵抗素子
Ｒ２  抵抗素子
Ｒ３  抵抗素子
Ｒ４  抵抗素子
Ｖｄｄ  電源電位
【図１】
2006099288.tif 000006
【図２】
2006099288.tif 000007
【図３】
2006099288.tif 000008
【図４】
2006099288.tif 000009
【図５】
2006099288.tif 000010
【図６】
2006099288.tif 000011