(57)【要約】【課題】バスにスイッチを挿入せずとも、それぞれがＩＤを適切に設定できる通信用スレーブを提供する。【解決手段】スレーブ２を経由する通信バス３Ｈにおいて、制御回路１０が接続されている点よりも下流側にシャント抵抗１１を挿入し、制御回路１０は、Ａ／Ｄ変換回路１２により検出される通信バス３Ｈ，３Ｌ間の電位差レベルに応じて、マスタ１と通信を行うためのＩＤを設定する。【選択図】図１
2011155356.tif 000002
【特許請求の範囲】
【請求項１】
１つのマスタと複数のスレーブとを、高電位側，低電位側の一対のバスでデイジーチェーン接続して構成される通信ネットワークに使用される前記スレーブにおいて、
前記マスタとの通信を制御する制御回路と、
前記高電位側バスに、前記制御回路が接続されている点よりも下流側に挿入される抵抗素子と、
この抵抗素子の上流側端子と、前記低電位側バスとの電位差を検出する電位差検出手段とを備え、
前記制御回路は、前記電位差検出手段により検出される電位差のレベルに応じて、前記マスタと通信を行うためのＩＤを設定することを特徴とする通信用スレーブ。
【請求項２】
前記一対のバスにおいて、前記電位差検出手段が接続されている点よりも下流側に接続され、電流の消費状態を変化可能に構成される電流消費回路を備えることを特徴とする請求項１記載の通信用スレーブ。
【請求項３】
前記電流消費回路は、前記マスタと通信を行うためのドライバで構成されることを特徴とする請求項２記載の通信用スレーブ。
【請求項４】
前記電流消費回路は、スイッチと抵抗素子との直列回路で構成されることを特徴とする請求項２記載の通信用スレーブ。
【請求項５】
前記制御回路は、電源が投入されると、前記ＩＤの設定を行うことを特徴とする請求項１ないし４の何れかに記載の通信用スレーブ。
【請求項６】
前記制御回路は、前記マスタより送信されるＩＤ設定を指示するコマンドを受信すると、前記ＩＤの設定を行うことを特徴とする請求項１ないし５の何れかに記載の通信用スレーブ。
【請求項７】
前記制御回路は、前記電位差の低下度合いに応じて、前記ＩＤ値を昇順若しくは降順に設定することを特徴とする請求項１ないし６の何れかに記載の通信用スレーブ。
【請求項８】
１つのマスタと複数のスレーブとを、高電位側，低電位側の一対のバスでデイジーチェーン接続して構成される通信ネットワークシステムにおいて、
前記スレーブは、
前記マスタとの通信を制御する制御回路と、
前記高電位側バスに、前記制御回路が接続されている点よりも下流側に挿入される抵抗素子と、
この抵抗素子の上流側端子と下流側端子との電位差を検出する電位差検出手段と、
前記抵抗素子の上流側端子と前記低電位側バスとの間に接続され、バスに流す電流の状態を変化させて前記マスタに信号を送信するためのドライバとを備え、
前記制御回路は、
前記マスタよりトリガ信号が送信されると前記ドライバをオンしてバスに電流を流し、その間に前記電位差検出手段により検出される電位差データを取得してから前記ドライバをオフさせ、
次に前記マスタよりトリガ信号が送信されると、他のスレーブによる送信処理との衝突を回避しながら前記電位差データに基づくＩＤ設定用データを前記マスタに送信し、
前記マスタは、各スレーブよりそれぞれ送信される前記ＩＤ設定用データを全て受信すると、それらのＩＤ設定用データに基づいて各マスタに設定するＩＤを決定し、決定したＩＤをＩＤ設定コマンドと共に順次スレーブに送信し、
前記スレーブの制御回路は、前記ＩＤ設定コマンドと共に送信されたＩＤデータが前記電位差データに一致した場合は、前記ＩＤデータを自身のＩＤ値として設定することを特徴とする通信ネットワークシステム。
【請求項９】
前記スレーブの制御回路は、前記マスタに送信するＩＤ設定用データに、前記電位差データのビット反転値を用いることを特徴とする請求項８記載の通信ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのマスタと複数のスレーブとを、高電位側，低電位側の一対のバスでデイジーチェーン接続して構成される通信ネットワークに使用される前記スレーブ，並びに前記通信ネットワークのシステムに関する。
【背景技術】
【０００２】
１つのマスタと複数のスレーブとを、一対のバスでデイジーチェーン接続して構成される通信ネットワークのプロトコルには、例えば車載ＬＡＮとして用いられるＤＳＩ（Distributed System Interface）やＳｂＷ（Safe by Wire）などがある。このような通信ネットワークでは、マスタが複数のスレーブとシリアル通信を行うため、各スレーブにＩＤを設定する必要がある。
例えば特許文献１には、複数のスレーブ装置の各々が、バスを構成する電源線にスイッチを挿入し、マスタ装置があらかじめ記憶したスレーブ装置の各接続順とＩＤに基づいて、バスを介してマスタ装置に近いスレーブ装置から順次ＩＤを設定し、ＩＤが設定されたスレーブ装置が順次スイッチをオンにして、次段のスレーブ装置をバス接続する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５２７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のように、バスにスイッチを挿入しようとすると、そのスイッチを構成するトランジスタ等の素子には、オン抵抗値を極力低下させることが要求される。すると、スイッチのサイズを大型にせざるを得ず、各スレーブのサイズ、ひいては通信システム全体のサイズが大型化することに繋がるという問題がある。
本発明は上記事情に鑑みてなされたものであり、その目的は、バスにスイッチを挿入せずとも、それぞれがＩＤを適切に設定できる通信用スレーブ並びに通信ネットワークシステムを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の通信用スレーブによれば、自身を経由する高電位側バスについて、制御回路が接続されている点よりも下流側に抵抗素子を挿入する。そして、この抵抗素子の上流側端子と、低電位側バスとの電位差を検出する電位差検出手段とを備え、制御回路は、電位差検出手段により検出される電位差のレベルに応じて、マスタと通信を行うためのＩＤを設定する。すなわち、抵抗素子は、同程度のオン抵抗を有するトランジスタよりも小さなサイズで構成できる。ここで「上流側」とはマスタに近付く側を言い、「下流側」とはマスタより遠ざかる側を言うものとする。
【０００６】
そして、各スレーブの制御回路も動作する際にある程度の電流を消費するので、一対のバスに接続される各スレーブは、マスタより下流側に接続されるものほど、検出されるバス間の電位差が低下することになる。したがって、各スレーブの制御回路が、検出されるバス間電位差のレベルに応じてＩＤを設定すれば、それぞれがＩＤを一意に設定できるので、バスに低オン抵抗のスイッチを挿入する必要がなくなる。これにより、通信用スレーブ，ひいては通信ネットワークシステムの全体を小型化することができる。
【０００７】
請求項２記載の通信用スレーブによれば、一対のバスにおいて、電位差検出手段が接続されている点よりも下流側に、電流消費状態を変化可能に構成される電流消費回路を接続する。斯様に構成すれば、制御回路の消費電流が少ない場合でも、各スレーブ毎に検出されるバス間電位差を明確に相違させることができ、高電位側バスに挿入する抵抗素子の抵抗値をより低く設定できる。
【０００８】
請求項３記載の通信用スレーブによれば、電流消費回路を、マスタと通信を行うためのドライバで構成する。すなわち、スレーブのドライバが、バスに流す電流量を変化させてバスをドライブすることでマスタに対して応答を返すように構成されている場合は、電位差検出手段は、自身よりも下流側に位置するスレーブのドライバが電流を消費させた際にバス間の電位差を検出することができる。
【０００９】
請求項４記載の通信用スレーブによれば、電流消費回路を、スイッチと抵抗素子との直列回路で構成するので、スイッチを閉じることで抵抗素子に電流を流し、電流の消費状態を変化させることができる。
【００１０】
請求項５記載の通信用スレーブによれば、制御回路は、電源が投入されるとＩＤの設定を行うので、初期状態では、マスタからの制御指令が与えられなくても、スレーブ側が自律的に自身のＩＤを設定できる。
【００１１】
請求項６記載の通信用スレーブによれば、制御回路は、マスタより送信されるＩＤ設定を指示するコマンドを受信するとＩＤの設定を行うので、マスタからコマンドが送信される任意のタイミングでＩＤを設定できる。
【００１２】
請求項７記載の通信用スレーブによれば、制御回路は、バス間電位差の低下度合いに応じてＩＤ値を昇順若しくは降順に設定するので、マスタから遠くに位置するスレーブほど、ＩＤ値が順次大きくなるか、若しくは順次小さくなるように設定できる。
【００１３】
請求項８記載の通信ネットワークシステムによれば、スレーブの制御回路は、マスタよりトリガ信号が送信されるとドライバをオンしてバスに電流を流し、その間に電位差検出手段により検出される電位差データを取得してからドライバをオフさせる。そして、次にマスタよりトリガ信号が送信されると、他のスレーブによる送信処理との衝突を回避しながら電位差データに基づくＩＤ設定用データをマスタに送信する。尚、上記「衝突」の回避は、以下のように行うことが可能である。各スレーブがトリガ信号に同期して送信を同時に開始すると（ドライバ：オン）、最も下流側に位置するスレーブの電位差検出手段だけがシャント抵抗の電位差を検出せず、その他の上流側に位置するスレーブでは全てシャント抵抗の電位差が検出される。したがって、電位差が検出されたスレーブが送信を停止すれば、下流側のスレーブを優先させて通信を行うことができる。
【００１４】
一方、マスタは、各スレーブよりそれぞれ送信されるＩＤ設定用データを全て受信すると、それらのＩＤ設定用データに基づいて各マスタに設定するＩＤを決定し、決定したＩＤをＩＤ設定コマンドと共に順次スレーブに送信する。すると、スレーブの制御回路は、ＩＤ設定コマンドと共に送信されたＩＤデータが電位差データに一致した場合は、そのＩＤデータを自身のＩＤ値として設定する。斯様に構成すれば、各スレーブのＩＤはマスタに全て把握されてから、マスタにより各スレーブに設定されるので、マスタとスレーブとの間で設定したＩＤの食い違いが生じることを回避できる。
【００１５】
請求項９記載の通信ネットワークシステムによれば、スレーブの制御回路は、マスタに送信するＩＤ設定用データに電位差データのビット反転値を用いる。すなわち、請求項８で述べたプロセスに従って各スレーブのＩＤを設定する際には、マスタから最も遠い位置にあるスレーブで検出される電位差データはゼロとなり、スレーブがマスタに近づくにつれて検出される電位差データは次第に大きくなる。その結果、検出された電位差データをそのままバス上に送信すると、マスタより遠いスレーブほど、送信するデータの上位ビット側に「０」が多くなる。
【００１６】
したがって、ドライバがオフの状態をデータ「０」に設定しているプロトコルの場合は、マスタより遠い下流側のスレーブがデータを送信している状態でも、その上流側に位置する他のスレーブが、非通信状態にあると判定する可能性が高くなり、スレーブ間で通信の衝突が発生し易くなる。そこで、スレーブが送信するＩＤ設定用データに電位差データのビット反転値を用いれば、下流側に位置するスレーブほどＭＳＢ側より（ＭＳＢファーストの場合）データ「１」が連続するようになるため、衝突の発生を回避して通信効率を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】第１実施例であり、通信ネットワークシステムの構成を示す図
【図２】スレーブが自身のＩＤを設定する処理を示すフローチャート
【図３】第２実施例を示す図２相当図
【図４】第３実施例を示す図１相当図
【図５】各スレーブで検出されるバス電圧の具体例を示す図
【図６】図２相当図
【図７】第４実施例を示す図６相当図
【図８】第５実施例を示す図１相当図
【図９】（ａ）はマスタが行う受信処理、（ｂ）はスレーブが行う電圧検出処理、（ｃ）はスレーブが行う送信処理のフローチャート
【図１０】図９の処理が行われる場合の各部の信号変化を示すタイミングチャート
【図１１】（ａ）はマスタが各スレーブにＩＤを送信する処理、（ｂ）はスレーブが送信されたＩＤを受信して設定する処理のフローチャート
【発明を実施するための形態】
【００１８】
（第１実施例）
以下、第１実施例について図１及び図２を参照して説明する。図１は、通信ネットワークシステムの構成を示す。通信ネットワークは、マスタ１と複数のスレーブ２ａ〜２ｄ（通信用スレーブ，通信ノード）とで構成され、複数のスレーブ２ａ〜２ｄは、通信バス３Ｈ（高電位側バス），３Ｌ（低電位側バス）を介してマスタ１にデイジーチェーン接続されている。通信バス３Ｈには、マスタ１内のスイッチ４を介して電源ＶＢが供給され、通信バス３Ｌにはグランド電位が付与される。尚、通信バス３Ｌについては一部のみを破線で示し、省略的に図示している。
【００１９】
マスタ１は、スレーブ２に通信バス３を介して信号を送信するドライバ５，スレーブ２が応答した信号を通信バス３を介して受信するレシーバ６，スイッチ４とドライバ５並びにレシーバ６を制御する制御回路７を備えている。制御回路７は、マイクロコンピュータにより構成され、ドライバ５を制御して通信バスの電位を変動させてマスタ２信号を送信する。また、マスタ２が応答した信号は、レシーバ６を介して制御回路７に与えられる。
【００２０】
スレーブ２は、マスタ１より送信された信号を受信するレシーバ８，マスタ１に信号を送信するドライバ９，レシーバ８並びにドライバ９を制御する制御回路１０を備えている。この制御回路１０も、マイクロコンピュータにより構成されている。ドライバ９は、通信バス３Ｈ，３Ｌ間に接続された電流源で構成されており、制御回路１０が前記電流原のオンオフを制御することで通信バス３に流れる電流を変動させてマスタ１に応答信号を送信する。
【００２１】
また、スレーブ２を経由する通信バス３Ｈにおいて、ドライバ９が通信バス３Ｈに接続されている点と、次段のスレーブ２との間には、シャント抵抗１１（抵抗素子）が挿入されている。このシャント抵抗１１の抵抗値は例えば数Ωから１０Ω程度である。尚、図示はしないが、通信バス３Ｈ，３Ｌのインピーダンスの平衡を維持するには、通信バス３Ｌ側にも同じ抵抗値のシャント抵抗を挿入することが好ましい。
【００２２】
そして、上記通信バス３Ｈにおいて、レシーバ８が接続されている点とドライバ９が接続されている点との間には、Ａ／Ｄ変換回路（電位差検出手段）１２が接続されている。Ａ／Ｄ変換回路１２は、通信バス３Ｈ，３Ｌ間の電位をＡ／Ｄ変換したデータを制御回路１０に出力する。また、各スレーブ２は、通信バス３を介して電源供給を受けて動作するようになっている（例えばＤＳＩのように、電源供給フェーズと通信フェーズとが交互に切り替えられる）。
【００２３】
次に、本実施例の作用について図２を参照して説明する。図２は、通信バス３に電源ＶＢが投入された場合に、スレーブ２が自身のＩＤを設定する処理を示すフローチャートである。マスタ１がスイッチ４をオンして通信バス３に電源ＶＢを投入すると（ステップＳ１：ＹＥＳ）、各スレーブ２はその電圧変動をレシーバ８を介して検出し、Ａ／Ｄ変換回路１２がＡ／Ｄ変換した通信バス３の電位データ；バス電圧を取得する。そして、ステップＳ２〜Ｓ５において、取得したバス電圧の大きさに応じて自身のＩＤを設定する（ステップＳ６〜Ｓ９）。
【００２４】
すなわち、各スレーブ２では、制御回路１０を中心とする回路によって電流が消費されるので、その消費電流によって上流側に位置するスレーブ２のシャント抵抗１１に電圧降下が生じる。したがって、マスタ１より遠い位置で通信バス３に接続されているスレーブ２ほど、Ａ／Ｄ変換回路１２により取得されるバス電圧は低下する。各バス電圧の具体数値は、電源ＶＢの電圧やシャント抵抗１１の抵抗値，通信バス３の長さやインピーダンスに応じて異なる。
【００２５】
本実施例では、例えば（ＶＢ＞Ｖａ＞Ｖｂ＞Ｖｃ＞Ｖｄ）となる閾値を設定し、（Ｖａ±α）Ｖか否か（ステップＳ２），（Ｖｂ±α）Ｖか否か（ステップＳ３），（Ｖｃ±α）Ｖか否か（ステップＳ４），（Ｖｄ±α）Ｖか否か（ステップＳ５）に応じて夫々ＩＤを設定することとする。尚、αは許容測定幅であり、例えば「０．１」程度に設定する。そして、ステップＳ２で「ＹＥＳ」と判断するとＩＤ＝１（ステップＳ６），ステップＳ３で「ＹＥＳ」と判断するとＩＤ＝２（ステップＳ７），ステップＳ４で「ＹＥＳ」と判断するとＩＤ＝３（ステップＳ８），ステップＳ５で「ＹＥＳ」と判断するとＩＤ＝４（ステップＳ９）に設定する。この場合、スレーブ２ａ〜２ｄが、順にＩＤ＝１〜４に設定されることになる。
【００２６】
以上のように本実施例によれば、スレーブ２を経由する通信バス３Ｈにおいて、制御回路１０が接続されている点よりも下流側にシャント抵抗１１を挿入し、制御回路１０は、Ａ／Ｄ変換回路１２により検出される通信バス３Ｈ，３Ｌ間の電位差レベルに応じて、マスタ１と通信を行うためのＩＤを設定するようにした。すなわち、シャント抵抗１１は、同程度のオン抵抗を有するトランジスタよりも小さなサイズで構成できる。一例を挙げると、５Ωのオン抵抗を有するトランジスタの素子サイズは約０．２６５ｍｍ2であるのに対し、５Ωの抵抗素子の素子サイズは約０．０１４６ｍｍ2であり、必要な面積が２０分の１程度になる。
【００２７】
そして、制御回路１０等も動作する際にある程度の電流を消費するので、マスタ１より下流側に接続されるスレーブ２ほど、通信バス３間について検出される電位差が低下するようになり、各スレーブ２がそれぞれ一意のＩＤを設定できる。したがって、通信バス３に低オン抵抗のスイッチ（トランジスタ）を挿入する必要がなくなり、スレーブ２，ひいては通信ネットワークシステムの全体を小型化することができる。
また、制御回路１０は、通信バス３を介して電源が投入されるとＩＤの設定を行うので、初期状態では、マスタ１からの制御指令が与えられなくても、スレーブ２側が自律的に自身のＩＤを設定できる。更に、制御回路１０は、検出されるバス電圧の低下度合いに応じてＩＤ値を昇順に設定するので、マスタ１から遠くに位置するスレーブ２ほど、ＩＤ値が順次大きくなるように設定できる。
【００２８】
（第２実施例）
図３は第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第２実施例の構成は第１実施例と同様であるが、図３に示すＩＤ設定処理において、各スレーブ２の制御回路１０は、ステップＳ１で「ＹＥＳ」と判断するとドライバ９（電流消費回路）をオンさせる（ステップＳ１０）。すなわち、電流原を動作させて定電流を流し、電流を消費させる。これにより、判断ステップＳ２’〜Ｓ５’においては、閾値Ｖａ〜Ｖｄに替わる閾値Ｖａ’〜Ｖｄ’を用いてバス電圧の判定を行い、判定結果に従い第１実施例と同様にＩＤを設定する。そして、ＩＤを設定した後、ドライバ９をオフさせて（ステップＳ１１）処理を終了する。
【００２９】
以上のように構成される第２実施例によれば、制御回路１０は、ＩＤを設定する際にドライバ９を動作させるので、制御回路１０の消費電流が少ない場合でも、各スレーブ２毎に検出されるバス電圧を明確に相違させることができ、通信バス３に挿入するシャント抵抗１１の抵抗値をより低く設定できる。そして、スレーブ２がマスタ１に対して応答を返すために備えているドライバ９を用いて電流の消費状態を変化させるので、電流消費回路を別途設ける必要が無い。
【００３０】
（第３実施例）
図４ないし図６は第３実施例を示すものであり、第１実施例と異なる部分について説明する。第３実施例のスレーブ２１は、第１実施例のスレーブ２に、電流消費回路２２を追加して構成されている。電流消費回路２２は、常開型のスイッチ２３及び負荷抵抗（抵抗素子）２４の直列回路で構成され、シャント抵抗１１の下流側端子とグランドとの間に接続されている。スイッチ２３は例えばトランジスタで構成され、スイッチ２３のオンオフ制御は制御回路２５によって行われる。すなわちスイッチ２３がオンすれば、通信バス３Ｈ，３Ｌ間に負荷抵抗２４が接続される。
【００３１】
ここで図５は、電源ＶＢの電圧を１０Ｖ，シャント抵抗１１の抵抗値を１０Ω，負荷抵抗２４の抵抗値を５００Ωとして、各スレーブ２１のスイッチ２３をオンした状態で、各スレーブ２１のＡ／Ｄ変換回路１２によって検出されるバス電圧の具体例を示すものである。スレーブ２１ｄ側より順次合成抵抗値を検出して行くと、スレーブ２１ｄでは５１０Ωと５００Ωとの並列値となり２５２．４７５２Ω（（ｃ）参照），スレーブ２１ｃでは２６２．４７５２Ωと５００Ωとの並列値となり１７２．１２０５Ω（（ｅ）参照），スレーブ２１ｂでは１８２．１２０５Ωと５００Ωとの並列値となり１３３．４９５８Ω（（ｇ）参照）となる。
【００３２】
スレーブ２１ａで検出されるバス電圧は１０Ｖであり、スレーブ２１ｂで検出されるバス電圧は、
１０×１３３．４９５８／（１０＋１３３．４９５８）≒９．３０３１（Ｖ）
であり、バス電圧検出点で流れる電流は、
９．３０３１／１３３．４９５８≒６９．６８８４（ｍＡ）
となる。以降、同様に計算すると、スレーブ２１ｃで検出されるバス電圧は約８．７９２３Ｖ，スレーブ２１ｄで検出されるバス電圧は約８．４５７３Ｖとなる。
【００３３】
次に、第３実施例の作用について図６を参照して説明する。各スレーブ２１の制御回路２５は、ステップＳ１で「ＹＥＳ」と判断すると電流消費回路２２のスイッチ２３をオンさせて（ステップＳ１２）、負荷抵抗２４を通信バス３Ｈ，３Ｌ間に接続する。これにより、判断ステップＳ１３〜Ｓ１６においては、閾値Ｖａ〜Ｖｄを、図５に示した各バス電圧に応じて具体的に設定する。
【００３４】
すなわち、ステップＳ１３ではバス電圧が（１０±０．１）Ｖか否か，ステップＳ１４では（９．３±０．１）Ｖか否か，ステップＳ１５では（８．８±０．１）Ｖか否か，ステップＳ１６では（８．４±０．１）Ｖか否かに応じて夫々ＩＤを設定する。そして、ステップＳ１３〜Ｓ１６の何れで「ＹＥＳ」と判断するかに応じて、ステップＳ６〜Ｓ９でＩＤ＝１〜４に設定する。この場合、スレーブ２１ａ〜２１ｄのＩＤが、順にＩＤ＝１〜４に設定されることになる。そして、ＩＤを設定した後は、スイッチ２３をオフさせて（ステップＳ１７）処理を終了する。
以上のように第３実施例によれば、電流消費回路２２を、スイッチ２３と負荷抵抗２４との直列回路で構成するので、スイッチ２３を閉じることで負荷抵抗２４に電流を流し、電流の消費状態を変化させることができる。
【００３５】
（第４実施例）
図７は第４実施例であり、第３実施例と異なる部分について説明する。第４実施例の構成は第３実施例と同様であるが、既に通信バス３Ｈに電源が投入されて第３実施例における処理が終了しており、各スレーブ２１にＩＤが設定されている状態にあるものとする。そして、図７に示すＩＤ設定処理では、各スレーブ２１は、マスタ１が送信する「ＩＤ確認コマンド」を受信すると（ステップＳ１８：ＹＥＳ）、電流消費回路２２のスイッチ２３をオンさせる（ステップＳ１２）。
【００３６】
それから、更にマスタ１が送信する「ＩＮＩ（イニシャル）コマンド」を受信するまで待機し（ステップＳ１９）、上記コマンドを受信すると（ＹＥＳ）、第３実施例と同様の処理を行う。
以上のように第４実施例によれば、制御回路２５は、マスタ１より送信されるＩＤ設定を指示するコマンド（ＩＤ確認コマンド，ＩＮＩコマンド）を受信するとＩＤの設定を行うので、各スレーブ２１は、マスタ１からコマンドが送信される任意のタイミングでＩＤを設定できる。
【００３７】
（第５実施例）
図８ないし図１１は第５実施例を示すものである。第５実施例の通信ネットワークシステムは、マスタ３１にスレーブ３２ａ〜３２ｄがデイジーチェーン接続されて構成されている。マスタ３１は、制御回路７に替わる制御回路３３を備え、スレーブ３２は、制御回路１０に替わる制御回路３４と、Ａ／Ｄ変換回路１２に替わるＡ／Ｄ変換回路３５（電位差検出手段）とを備えている。Ａ／Ｄ変換回路３５は、シャント抵抗１１の下流側端子の電位も検出するようになっており、シャント抵抗１１の上流側端子の電位と下流側端子の電位との差をとることで、シャント抵抗１１の端子間電圧を検出する。尚、上流側端子，下流側端子の電位差を得る処理は、制御回路３４が行っても良い。
【００３８】
次に、第５実施例の作用について図９乃至図１１を参照して説明する。図９（ａ）は、マスタ３１が通信バス３上に出力したトリガ信号に応答して、各スレーブ３２が送信したデータをマスタが受信する処理を示すフローチャートである。マスタ３１の制御回路３３は、通信バス３上の電圧レベルを変化させてトリガ信号を送信する（ステップＳ２１）。それから、スレーブ３２が信号を送信するために（その信号をマスタ３１が受信するために）使用する同期用信号を送信しながら（ステップＳ２２）、スレーブ３２が送信したデータを受信し（ステップＳ２３：ＹＥＳ）、受信したデータをメモリに記憶させるなどして保存する（ステップＳ２４）。そして、ステップＳ２２〜Ｓ２４の処理をスレーブ３２からのデータを受信しなくなるまで（ステップＳ２３：ＮＯ）継続する。
【００３９】
尚、上記の「同期用信号」は、マスタ３１が通信バス３上の電圧を変化させて送信する例えばデータ値「０」を連続させたもので、各スレーブ３２は、データ値「０」の電圧信号の例えば立下りエッジに同期して１ビットずつ送信を行う。そして、ステップＳ２３で「ＮＯ」と判断すると、ステップＳ２４で保存したデータをソートし（ステップＳ２５）、ソートした順に各スレーブ３２に与えるＩＤ値の割り付けを行う（ステップＳ２６）。
【００４０】
図９（ｂ）は、マスタ３１が図９（ａ）の処理を実行している間にスレーブ３２が行う電圧検出処理のフローチャートである。スレーブ３２の制御回路３４は、マスタ３１が送信したトリガ信号を受信すると（ステップＳ３１：ＹＥＳ）、ドライバ９をオンして通信バス３に電流を流す（ステップＳ３２）。そこから一定時間が経過すると（ステップＳ３３：ＹＥＳ）、シャント抵抗１１の端子間電圧をＡ／Ｄ変換回路３５を介して読み取る（ステップＳ３４，Ｓ３５）。そして、Ａ／Ｄ変換された電圧データ（電位差データ，例えば８ビットとする）をメモリに記憶させて保持し（ステップＳ３６）、ドライバ９をオフすると（ステップＳ３７）処理を終了する。
【００４１】
また、図９（ｃ）は、図９（ｂ）の処理に引き続きスレーブ３２が行う電圧データの送信処理を示すフローチャートである。スレーブ３２の制御回路３４は、マスタ３１がステップＳ２１の次に送信したトリガ信号を受信すると（ステップＳ４１：ＹＥＳ）、例えばその信号の立下りエッジに同期して、ステップＳ３４，Ｓ３５で測定した電圧データのシリアル送信を１ビット目から（例えばＭＳＢファーストで）開始する（ステップＳ４２）。尚、ここで送信する電圧データは、ステップＳ３５で読み込んで保持したＡ／Ｄ変換データの反転値を用いるが、その意義については後述する。
【００４２】
そして、１ビット目を送信した後にもシャント抵抗１１の端子間電圧を検出し、その電圧が０Ｖか否かを判断する（ステップＳ４３）。端子間電圧が０Ｖであれば（ＹＥＳ）、自身より下流側に位置するスレーブ３２は存在しないことになる。一方、端子間電圧が０Ｖでなければ（ＮＯ）、自身より下流側に位置するスレーブ３２が存在することになる。この場合はステップＳ４１に戻り、下流側のスレーブ３２に送信権を譲る。尚、下流側のスレーブ３２による消費電流の影響により、前記スレーブが通信バス３をドライブしていない状態での電圧が厳密に０Ｖにならない場合は、例えば１Ｖ未満の閾値を設定し、その閾値以下であればステップＳ４３で「ＮＯ」と判断すれば良い。
続くステップＳ４４〜Ｓ５７では、スレーブ３２が２ビット目以降のデータを１ビットずつ、シャント抵抗１１の端子間電圧が０Ｖであることを確認しながら送信する処理となる。そして、ステップＳ５７で「ＹＥＳ」と判断すると処理を終了する。
【００４３】
図１０は、図９の処理が行われる場合の各部の信号変化を示す。期間（Ａ）においてマスタ３１によりトリガ信号が送信された後、期間（Ｂ）で各スレーブ３２ａ〜３２ｄが同時にドライバ９をオンさせると、スレーブ３２ｄではシャント抵抗１１の端子間電圧は０Ｖである（図１０（ｅ）参照）。そこから上流側に位置するスレーブ３２ｃ，３２ｂ，３２ａに行くほど、シャント抵抗１１に流れる電流量が増加するので、検出されるシャント抵抗１１の端子間電圧は次第に上昇する。
【００４４】
期間（Ｃ）では（通信フェーズ）、冒頭で全てのスレーブ３２ａ〜３２ｄが１ビット目のデータを送信するが、その際にシャント抵抗１１の端子間電圧が０Ｖになるのはスレーブ３２ｄだけであるから、上述のようにスレーブ３２ｄが２ビット目以降を送信し続ける（図１０（ｅ）参照）。スレーブ３２ｄがデータ送信を終了すると、以降にマスタ３１よりトリガ信号が送信されても通信を開始しない。
【００４５】
マスタ３１による給電フェーズが実行された後、期間（Ｄ）の冒頭では、トリガ信号に応答してスレーブ３２ａ〜３２ｃが１ビット目のデータを送信するが、その際にシャント抵抗１１の端子間電圧が０Ｖになるのはスレーブ３２ｃだけであるから、ここではスレーブ３２ｃが２ビット目以降を送信し続ける（図１０（ｄ）参照）。以降は同様に、期間（Ｅ）ではスレーブ３２ｂがデータを送信し、期間（Ｆ）ではスレーブ３２ａがデータを送信する。そして、期間（Ｇ）ではデータ送信を開始するスレーブ３２が存在しないため（ステップＳ２３：ＮＯ）、マスタ３１は電圧データの受信処理を終了する。尚、図１０（ａ）の上段に記載されている「ＡＤ値」は、Ａ／Ｄ変換データの反転値を示す。
【００４６】
以上の処理において、期間（Ｂ）に各スレーブ３２ｄ〜３２ａが検出するシャント抵抗１１ｄ〜１１ａの端子間電圧のＡ／Ｄ変換データが、夫々００００００００Ｂ，０００００１００Ｂ，００１００００Ｂ，１００００００Ｂであったとする。通信バス３上でスレーブ３２が送信するデータは「１」がドライブ状態（ドミナント）で送信され、「０」が非ドライブ状態（レセッシブ）で送信される。そして、上述のように各スレーブ３２は、自身が１ビット目を送信した際に、シャント抵抗１１の端子間電圧が０Ｖ（非ドライブ状態）か否かで、自身よりも下流側に位置するスレーブ３２が送信を開始しているか否かを判断する。
【００４７】
したがって、下流側のスレーブ３２が送信を開始したＭＳＢのデータ値が「０」であると、上流側のスレーブ３２に上記送信の開始が認識されず、衝突が発生する可能性がある。そこで、期間（Ｂ）に検出されるシャント抵抗１１の端子間電圧がより低くなる下流側のスレーブ３２について、送信データのＭＳＢが「１」となるよう端子間電圧データの反転値を送信し、各スレーブ３２間の送信権の調停がスムーズに行われるようにしている。尚、各スレーブ３２にＩＤが設定された後は、マスタ３１が各スレーブ３２のＩＤを指定して通信を行うので、上記のような調停を行う必要はない。
【００４８】
図１１（ａ）はマスタ３１が図９（ａ）の電圧データ受信処理を行った後、各スレーブ３２ａ〜３２ｄにＩＤを送信する処理、図１１（ｂ）はスレーブ３２ａ〜３２ｄが夫々に送信されたＩＤを受信して設定する処理のフローチャートである。マスタ３１は、送信回数をカウントするためのカウンタＣＮＴをゼロクリアすると（ステップＳ６１）、ＩＤ設定コマンドと共に先ずスレーブ３２ａ（Ｓａ）のＩＤデータを送信する（ステップＳ６２）。ここで送信するＩＤデータは、スレーブ３２ａがマスタ３１に送信したデータの反転値、すなわちシャント抵抗１１ａの電圧データそのものとする。
【００４９】
それから、マスタ３１はステップＳ２２と同様にデータ受信用の同期信号を送信し（ステップＳ６２）、スレーブ３２ａからＩＤが設定されたことを示す応答信号（アクノリッジ）の返信を確認する（ステップＳ６４）。上記応答信号の返信があれば（ＹＥＳ）ステップＳ６７に移行する。ステップＳ６４において応答信号の返信が無かった場合は（ＮＯ）カウンタＣＮＴをインクリメントし（ステップＳ６５）、カウンタＣＮＴの値が「２」になったか否かを判断する（ステップＳ６６）。カウンタＣＮＴの値が「２」未満であれば（ＮＯ）ステップＳ６２に戻り、再度ＩＤデータを送信する。ステップＳ６５においてカウンタＣＮＴの値が「２」になれば（ＹＥＳ）エラー終了とする。
以降のステップＳ６７〜７２ではスレーブ３２ｂ（Ｓｂ）について上記と同様の処理を行い、ステップＳ７３〜７８ではスレーブ３２ｃ（Ｓｃ）について、ステップＳ７９〜８４ではスレーブ３２ｄ（Ｓｄ）について同様の処理を行う。
【００５０】
一方、図１１（ｂ）に示すスレーブ３２側では、マスタ３１より送信されたＩＤ設定コマンドを受信すると（ステップＳ９１：ＹＥＳ）、当該コマンドに続いて送信されたＩＤデータを受信し、そのデータ値がステップＳ３６で保持したＡ／Ｄ変換データに一致するか否かを判断する（ステップＳ９２）。両者が一致すれば（ＹＥＳ）受信したデータを自身のＩＤとして設定し（ステップＳ９３）、一致しなかった場合は（ＮＯ）ステップＳ９１に戻る。以上の処理を各スレーブ３２ａ〜３２ｄが行うことで、それぞれに固有のＩＤが設定される。
以降は上述したように、マスタ３１がＩＤを送信して通信対象とするスレーブ３２を指定したコマンドを送信すると、上記ＩＤに対応するスレーブ３２だけが、マスタ１に応答するようになる。
【００５１】
以上のように第５実施例の通信ネットワークによれば、スレーブ３２の制御回路３４は、マスタ３１よりトリガ信号が送信されるとドライバ９をオンして通信バス３に電流を流し、その間にＡ／Ｄ変換回路３５により検出されるシャント抵抗１１の端子間電圧のＡ／Ｄ変換データを取得してからドライバ９をオフさせる。そして、次にマスタ３１よりトリガ信号が送信されると、他のスレーブ３２による送信処理との衝突を回避しながらＡ／Ｄ変換データに基づくＩＤ設定用データをマスタ３１に送信する。
【００５２】
また、マスタ３１は、各スレーブ３２よりそれぞれ送信されるＩＤ設定用データを全て受信すると、それらのＩＤ設定用データに基づいて各マスタ３２に設定するＩＤを決定し、決定したＩＤをＩＤ設定コマンドと共に順次スレーブに送信する。すると、スレーブ３２の制御回路３４は、ＩＤ設定コマンドと共に送信されたＩＤデータがＡ／Ｄ変換データに一致すれば、そのＩＤデータを自身のＩＤ値として設定する。したがって、各スレーブ３２のＩＤはマスタ３１に全て把握されてから、マスタ３１により各スレーブ３２に設定されるので、マスタ３１とスレーブ３２との間で設定したＩＤの食い違いが生じることを回避できる。
更に、スレーブ３２の制御回路３４は、マスタ３１に送信するＩＤ設定用データに電位差データのビット反転値を用いるので、ドライバ９がオフの状態をデータ「０」に設定しているプロトコルの場合に、衝突の発生を回避して通信効率を向上させることができる。
【００５３】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
検出されるバス電圧が低下するのに応じて、各スレーブのＩＤが降順となるように設定しても良い。その場合、最初に設定するＩＤは、スペックで規定されているスレーブの最大接続数以上にすれば良い。また、必ずしもＩＤを昇順，降順で設定する必要はなく、各スレーブがそれぞれ特定可能なるようにＩＤを付与すれば良い。
シャント抵抗１１や負荷抵抗２４の抵抗値は、個別の設計に応じて適宜変更すれば良い。
電位差検出手段は、コンパレータを用いて構成しても良い。
【００５４】
各スレーブの低電位基準（例えばグランド）が低電位側バス３Ｌで接続されておらず、個別に電位基準点に接続されている場合は、シャント抵抗１１を低電位側に挿入する必要はない。
ドライバ９は電流駆動型に限らず、電圧駆動型であっても良い。
バスのドライブ状態，非ドライブ状態とデータ値「１，０」との対応を逆にしても良い。
ＤＳＩのような通信プロトコルに限ることなく、１つのマスタと複数のスレーブとがバスを介してデイジーチェーン状に接続され、各スレーブがＩＤをダイナミックに設定するものであれば適用が可能である。
【符号の説明】
【００５５】
図面中、１はマスタ、２はスレーブ（通信用スレーブ）、３Ｈは通信バス（高電位側バス）、３Ｌは通信バス（低電位側バス）、９はドライバ（電流消費回路）、１０は制御回路、１１はシャント抵抗（抵抗素子）、１２はＡ／Ｄ変換回路（電位差検出手段）、２１はスレーブ（通信用スレーブ）、２２は電流消費回路、２３はスイッチ、２４は負荷抵抗（抵抗素子）、２５は制御回路、３１はマスタ、３２はスレーブ、３４は制御回路、３５はＡ／Ｄ変換回路（電位差検出手段）を示す。
【図１】
2011155356.tif 000003
【図２】
2011155356.tif 000004
【図３】
2011155356.tif 000005
【図４】
2011155356.tif 000006
【図５】
2011155356.tif 000007
【図６】
2011155356.tif 000008
【図７】
2011155356.tif 000009
【図８】
2011155356.tif 000010
【図９】
2011155356.tif 000011
【図１０】
2011155356.tif 000012
【図１１】
2011155356.tif 000013