(57)【要約】  【課題】ネットワークシステムにおけるノード同士による通信の遅延を従来よりも小さくする。  【解決手段】未参加ノードであるときは、参加ノードに設けられた参加スロットの到来を待ってトークンリングに参加すべく処理を行う一方（ｓ２６０〜ｓ２９０）、この処理を経て参加ノードとなった以降は、トークンの受け渡しに際して参加スロットを設けて（ｓ３４０）未参加ノードの参加を受け入れる。参加スロットは、トークンの受け渡しを行うスロットとは異なるスロットとして設けられるため、このスロットにてバス上に送信されたデータがトークンリングを破壊することはなく、それによりトークンリングを再構築する必要もない。その結果、ネットワークシステムの全ノードがトークンリングに参加する前でも、トークンリングの破壊，再構築が行われることがなく、その段階にて参加ノード同士で正常に通信を行えるため、その通信の遅延を最小にできる。【選択図】図２
2008271405.tif 000002
【特許請求の範囲】
【請求項１】
それぞれバスを介して通信可能に接続された複数のノードが順番にトークンの受け渡しを行うことにより論理的なトークンリングを形成し、そのトークンリングに参加する参加ノードのうち、トークンを取得した参加ノードのみがデータの送信を許可される、ように構成されたネットワークシステム，におけるノードとして機能する電子機器であって、
当該電子機器が前記参加ノードとなっている状態で、トークンを次の参加ノードへと渡す際に、前記トークンリングへの参加を受け入れるための参加スロットを設けるスロット設定手段と、
当該電子機器が前記トークンリングに参加していない未参加ノードとなっている状態で、バスを介して受け渡されるトークンに基づいて、前記参加スロットが到来したか否かを判定するスロット判定手段と、
該スロット判定手段により前記参加スロットが到来したと判定された場合に、前記トークンリングに参加するための参加処理を実施することにより、当該電子機器を前記参加ノードとする参加処理実施手段と、
を備えていることを特徴とする電子機器。
【請求項２】
前記参加処理実施手段は、前記参加処理において、バス上を流通するデータに基づいて当該電子機器以外の未参加ノードにより前記参加処理が実施されているか否かを判定し、該参加処理が実施されていないと判定した場合に、前記参加処理を継続する一方、前記参加処理が実施されていると判定した場合に、前記参加処理を中断した後で実施し直す
ように構成されていることを特徴とする請求項１に記載の電子機器。
【請求項３】
前記参加処理実施手段は、
前記参加処理において当該電子機器特有のビットパターンをビット毎に送信し、そのビットパターンを送信する過程で、送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致しないことをもって、前記参加処理が実施されていると判定し、前記ビットパターンの送信を中断する一方、
前記ビットパターンを送信する過程で、全てのビットについて、そのビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致したことをもって、前記参加処理が実施されていないと判定し、前記参加処理を継続する、
ように構成されていることを特徴とする請求項２に記載の電子機器。
【請求項４】
当該電子機器が前記参加ノードとなった以降の経過時間をカウントする経過時間カウント手段と、
該経過時間カウント手段によりカウントされた経過時間が所定のしきい値時間を超えた以降に、バスを介して受け渡されるトークンに基づいて、前記複数のノード間によるトークンの受け渡しが順番に行われたサイクル数を、所定値を上限として繰り返しカウントするサイクルカウント手段と、を備え、
前記スロット設定手段は、前記経過時間カウント手段によりカウントされた経過時間が所定のしきい値時間を超えるまでの間、トークンを次の前記参加ノードへと渡す毎に前記参加スロットを設けるのに対し、所定のしきい値時間を超えた以降、前記サイクルカウント手段によりカウントされたサイクル数が上限となったときにのみ、そのサイクルにおいてトークンを次の前記参加ノードへと渡す際に前記参加スロットを設ける、
ように構成されていることを特徴とする請求項１から３のいずれかに記載の電子機器。
【請求項５】
当該電子機器が前記参加ノードとなっている状態で、バスを介して受け渡されるトークンに基づいて、前記スロット設定手段により設定する前記参加スロットにて前記トークンリングへの参加を受け入れるべき全てのノードが、前記参加ノードとして前記トークンリングに参加しているか否かを判定する参加判定手段，を備えており、
前記スロット設定手段は、前記参加判定手段により、該当する全てのノードが前記参加ノードとして前記トークンリングに参加していると判定された場合、トークンを次の参加ノードへと渡す際に前記参加スロットを設けない一方、該当するノードの中に前記参加ノードとして前記トークンリングに参加していないノードが存在していると判定された場合にのみ、トークンを次の参加ノードへと渡す際に前記参加スロットを設ける、
ように構成されていることを特徴とする請求項１から４のいずれかに記載の電子機器。
【請求項６】
それぞれバスを介して通信可能に接続された複数のノードが順番にトークンの受け渡しを行うことにより論理的なトークンリングを形成し、そのトークンリングに参加する参加ノードのうち、トークンを取得した参加ノードのみがデータの送信を許可される、ように構成され、前記ノードそれぞれが、請求項１から５のいずれかに記載の電子機器により構成されている
ことを特徴とするネットワークシステム。
【請求項７】
請求項１から５のいずれかに記載の全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムにおけるノードとして機能する電子機器に関する。
【背景技術】
【０００２】
近年、それぞれバスを介して通信可能に接続された複数のノードが順番にトークンの受け渡しを行うことにより論理的なトークンリングを形成し、そのトークンリングに参加する参加ノードのうち、トークンを取得した参加ノードのみがデータの通信を行う、といったシステムによりノード間の通信を実現することが行われている（特許文献１参照）。
【特許文献１】特開平１１−２２０４８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したようなシステムにおいては、トークンリングに参加していない未参加ノードのそのトークンリングへの参加を次のような手順により実現することが一般的である。それは、未参加ノードが、所定のデータをバス上に送信することにより一旦トークンリングを破壊し、その未参加ノードを含めた全てのノード間での通信を経てトークンリングを再構築する、といった手順である。
【０００４】
ただ、このような手順では、未参加ノードがトークンリングに参加しようとする毎にトークンリングの破壊および再構築といった手順が繰り返されることになるため、ネットワークシステムにおける全てのノードがトークンリングに参加するまでノード同士の通信が正常に行えず、その通信の遅延が大きくなってしまうという問題があった。
【０００５】
本発明は、このような課題を解決するためになされたものであり、その目的は、ネットワークシステムにおけるノード同士による通信の遅延を従来よりも小さくするための技術を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するための電子機器は、それぞれバスを介して通信可能に接続された複数のノードが順番にトークンの受け渡しを行うことにより論理的なトークンリングを形成し、そのトークンリングに参加する参加ノードのうち、トークンを取得した参加ノードのみがデータの送信を許可される、ように構成されたネットワークシステム，におけるノードとして機能するものであって、以下に示すように、スロット設定手段，スロット判定手段，参加処理実施手段を備えた第１の構成（請求項１）とするとよい。
【０００７】
この構成において、スロット設定手段は、当該電子機器が前記参加ノードとなっている状態で、トークンを次の参加ノードへと渡す際に、前記トークンリングへの参加を受け入れるための参加スロットを設ける。また、スロット判定手段は、当該電子機器が前記トークンリングに参加していない未参加ノードとなっている状態で、バスを介して受け渡されるトークンに基づいて、前記参加スロットが到来したか否かを判定する。そして、参加処理実施手段は、スロット判定手段により前記参加スロットが到来したと判定された場合に、前記トークンリングに参加するための参加処理を実施することにより、当該電子機器を前記参加ノードとする。
【０００８】
このように構成された電子機器によれば、未参加ノードであるときには、参加ノードにより設けられた参加スロットの到来を待ってトークンリングに参加するための参加処理を行い、この参加処理を経て参加ノードとなった以降は、トークンの受け渡しに際して参加スロットを設けることで、未参加ノードのトークンリングへの参加を受け入れることができる。
【０００９】
この参加スロットは、トークンリングの参加を受け入れるべく設けられたものであって、トークンの受け渡しが行われるスロットとは異なる独立したスロットとして設けられるため、その参加スロットにおいてバス上にデータが送信されたとしてもトークンリングが破壊されることはなく、それによりトークンリングを再構築する必要もない。
【００１０】
その結果、ネットワークシステムにおける全てのノードがトークンリングに参加する前の段階であっても、トークンリングの破壊および再構築が行われることがないため、その段階においてトークンリングに参加しているノード同士で正常に通信を行うことができ、これにより、その通信の遅延を最小限にすることができる。
【００１１】
この構成において、上記スロット設定手段は、トークンを次の参加ノードへと渡す際に参加スロットを設けるための手段であり、その参加スロットを設けるための具体的な構成については特に限定されない。例えば、トークンを次の参加ノードへと渡すのに先立って、参加スロットに相当する時間だけ待機するように構成することが考えられる。
【００１２】
また、このスロット設定手段は、当該電子機器が参加ノードとなっている状態で、参加スロットを設けることとなるが、この「参加ノードとなっている状態」であることは、例えば、参加処理が正常に終了したこと，または，ノード自身がトークンリングを構築したこと，をもって判断するように構成すればよい。
【００１３】
また、上記スロット判定手段は、参加スロットが到来したか否かを判定するための手段であり、その参加スロットが到来したことを判定するための具体的な構成については特に限定されない。
【００１４】
例えば、参加ノードが、トークンの受け渡しに先立って参加スロットに相当する時間だけ待機するように構成された場合であれば、そのトークンの受け渡しが行われるよりも上記待機時間だけ前のタイミングをもって、参加スロットが到来したと判定するように構成することが考えられる。さらに、上述したトークンの受け渡しは、複数のノード間で順番に行われるものであることから、電子機器自身よりも前のノードから電子機器自身よりも後のノードへと渡されるトークンがバス上に流通している場合に、その後者のノードにより設けられる参加スロットの到来をもって、電子機器自身のための参加スロットが到来したと判定するように構成するとよい。
【００１５】
また、このスロット判定手段は、当該電子機器が未参加ノードとなっている状態で、参加スロットの到来を判定することとなるが、この「未参加ノードとなっている状態」であることは、例えば、当該電子機器が起動した直後であることをもって判断するように構成すればよい。
【００１６】
また、上記ネットワークシステムにおいて、各未参加ノードは、参加スロットにおいて参加処理を実施することとなるが、その時点で他の未参加ノードが同時に参加処理を実施している可能性もあり、このような場合、各未参加ノードにより送信されるデータが衝突し、トークンリングへの正常な参加が実現できなくなる恐れがある。
【００１７】
このような衝突による不具合を防止するためには、そのような衝突を回避しつつ参加処理を実施できるようにすることが望ましい。このためには、上記第１の構成における参加処理実施手段を次に示すようにした第２の構成（請求項２）とすることが考えられる。
【００１８】
この構成において、前記参加処理実施手段は、前記参加処理において、バス上を流通するデータに基づいて当該電子機器以外の未参加ノードにより前記参加処理が実施されているか否かを判定し、該参加処理が実施されていないと判定した場合に、前記参加処理を継続する一方、前記参加処理が実施されていると判定した場合に、前記参加処理を中断した後で実施し直す。
【００１９】
この構成であれば、未参加ノードである電子機器は、他の未参加ノードにより参加処理が実施されておらず、データの衝突が発生しない状況であれば、そのまま参加処理を継続してトークンリングに参加することができる。
【００２０】
それに対し、他の未参加ノードにより参加処理が実施されていて、データの衝突が発生している状況であれば、自身が実施している参加処理を中断し、その他の未参加ノードを先にトークンリングに参加させたうえで、自身による参加処理を実施し直してトークンリングに参加することができる。
【００２１】
このように、他の未参加ノードにより参加処理が実施されており、データの衝突が発生している場合には、参加処理を中断した後で実施し直すことにより、データの衝突を回避しつつ参加処理を実施することができる。
【００２２】
また、この構成において、他の未参加ノードにより参加処理が実施されているか否かを判定するための具体的な構成については特に限定されないが、例えば、参加スロットにおいて、バス上を何らかのデータが流通しているか否かにより判定することが考えられる。
【００２３】
このように参加スロットにおいてデータを送信するのは、未参加ノードであるため、その参加スロットにおいてバス上にデータが流通しており、そのデータが当該電子機器によるものでないのであれば、それは、他の未参加ノードが参加処理を実施することで送信したものといえる。そのため、参加スロットにおいて、当該電子機器によるもの以外のデータがバス上に流通していることをもって、当該電子機器以外の未参加ノードにより参加処理が実施されていると判定することができる。
【００２４】
また、他の未参加ノードにより参加処理が実施されているか否かを判定するための具体的な構成としては、電子機器固有のビットパターンを送信し、その過程において送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルと、の一致，不一致により判定することも考えられる。
【００２５】
この場合、ビットパターンが未参加ノードである電子機器固有のものであることから、複数の未参加ノードが同時にビットパターンを送信していると、必ず、それぞれにより送信される信号の信号レベルが一致しないタイミングが到来することになる。
【００２６】
ここで、ある未参加ノードがＬレベルの信号を送信していたとしても、他の未参加ノードがＨレベルの信号を送信していれば、そのタイミングにおけるバス上の信号レベルはＨレベルに固定されてしまう。これを、Ｌレベルの信号を送信していた未参加ノード側からみた場合、送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致しないということになる。
【００２７】
このように信号レベルが一致しないのは、Ｈレベルの信号を送信している他の未参加ノードが存在しているからであるため、そのように信号レベルが一致しないことをもって、他の未参加ノードにより参加処理が実施されていると判定することができる。
【００２８】
このように、信号レベルの一致，不一致により参加処理が実施されているか否かを判定するためには、上記第２の構成における電子機器を、次に示す第３の構成（請求項３）の電子機器のようにすることが考えられる。
【００２９】
この構成において、前記参加処理実施手段は、前記参加処理において当該電子機器特有のビットパターンをビット毎に送信し、そのビットパターンを送信する過程で、送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致しないことをもって、前記参加処理が実施されていると判定し、前記ビットパターンの送信を中断する一方、前記ビットパターンを送信する過程で、全てのビットについて、そのビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致したことをもって、前記参加処理が実施されていないと判定し、前記参加処理を継続する。
【００３０】
このように構成すれば、ビットパターンを送信する過程で、送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致しないことをもって参加処理が実施されていると判定し、参加処理を中断することができる。
【００３１】
また、上記各構成においては、電子機器の動作状態に拘わらず、常にスロット設定手段により参加スロットを設けるように構成すればよいが、その動作状態に応じて参加スロットを設けるようにしたり、設けないようにしたりしてもよい。
【００３２】
例えば、上記各構成における電子機器を、次に示すような構成とすることが考えられる。この構成は、前記参加処理の実施を経て当該電子機器が前記参加ノードとなった以降の経過時間をカウントする経過時間カウント手段，を備え、スロット設定手段が、前記経過時間カウント手段によりカウントされた経過時間が所定のしきい値時間を超えるまでの間だけ、トークンを次の参加ノードへと渡す毎に前記参加スロットを設けて、所定のしきい値時間を超えた以降、前記参加スロットを設けない、といったものである。
【００３３】
同様に、上記各構成における電子機器を、次に示す第４の構成（請求項４）のようにすることが考えられる。この構成は、当該電子機器が前記参加ノードとなった以降の経過時間をカウントする経過時間カウント手段と、該経過時間カウント手段によりカウントされた経過時間が所定のしきい値時間を超えた以降に、バスを介して受け渡されるトークンに基づいて、前記複数のノード間によるトークンの受け渡しが順番に行われたサイクル数を、所定値を上限として繰り返しカウントするサイクルカウント手段と、を備えている。
【００３４】
そして、前記スロット設定手段は、前記経過時間カウント手段によりカウントされた経過時間が所定のしきい値時間を超えるまでの間、トークンを次の前記参加ノードへと渡す毎に前記参加スロットを設けるのに対し、所定のしきい値時間を超えた以降、前記サイクルカウント手段によりカウントされたサイクル数が上限となったときにのみ、そのサイクルにおいてトークンを次の前記参加ノードへと渡す際に前記参加スロットを設ける。
【００３５】
これらのように構成すれば、電子機器が参加ノードとなってから所定のしきい値時間が経過した以降、参加スロットが設けられる頻度が低くなる。電子機器が参加ノードとなってからある程度の時間が経過すれば、ネットワークシステムとしてもその動作が安定していることが予想され、それ以上の未参加ノードがトークンリングに参加する可能性が低くなるため、参加スロットを設ける必要性も低くなる。
【００３６】
そのため、このように必要性の低い参加スロットが設けられる頻度を低くすることによって、複数のノード間によるトークンの受け渡しが順番に行われるまでの１サイクルの時間を短縮することができる。
【００３７】
また、上記各構成においては、ネットワークシステムの状態に拘わらず、常にスロット設定手段により参加スロットを設けるように構成すればよいが、その状態に応じて参加スロットを設けるようにしたり、設けないようにしたりしてもよい。
【００３８】
例えば、上記各構成における電子機器を、次に示す第５の構成（請求項５）のようにすることが考えられる。
この構成は、当該電子機器が前記参加ノードとなっている状態で、バスを介して受け渡されるトークンに基づいて、前記スロット設定手段により設定する前記参加スロットにて前記トークンリングへの参加を受け入れるべき全てのノードが、前記参加ノードとして前記トークンリングに参加しているか否かを判定する参加判定手段，を備えている。
【００３９】
そして、前記スロット設定手段は、前記参加判定手段により、該当する全てのノードが前記参加ノードとして前記トークンリングに参加していると判定された場合、トークンを次の参加ノードへと渡す際に前記参加スロットを設けない一方、該当するノードの中に前記参加ノードとして前記トークンリングに参加していないノードが存在していると判定された場合にのみ、トークンを次の参加ノードへと渡す際に前記参加スロットを設ける。
【００４０】
このように構成すれば、スロット設定手段により設定する参加スロットにてトークンリングへの参加を受け入れるべき全てのノードが、参加ノードとしてトークンリングに参加していると判定された場合には、参加スロットが設けられなくなる。
【００４１】
このように、該当する全てのノードが参加ノードとしてトークンリングに参加しているということは、それ以降に上記参加スロットを設けても、この参加スロットによりトークンリングへの参加を行うべき未参加ノードが他に存在していないということを意味している。
【００４２】
つまり、該当する全てのノードが参加ノードとしてトークンリングに参加している場合には、それ以降に上記参加スロットを設ける必要がないといえる。そのため、上記構成のように不必要な参加スロットを設けないようにすることによって、複数のノード間によるトークンの受け渡しが順番に行われるまでの１サイクルの時間を短縮することができる。
【００４３】
また、上記課題を解決するための構成としては、次に示すネットワークシステムやプログラムとしてもよい。
ネットワークシステムとしては、それぞれバスを介して通信可能に接続された複数のノードが順番にトークンの受け渡しを行うことにより論理的なトークンリングを形成し、そのトークンリングに参加する参加ノードのうち、トークンを取得した参加ノードのみがデータの送信を許可され、ノードそれぞれが、上記第１から第５いずれかの構成の電子機器により構成されたものが考えられる。また、プログラムとしては、上記第１から第５いずれかの構成が備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのものが考えられる。
【００４４】
上記ネットワークシステムであれば、上記第１から第５の構成により得られるのと同様の作用，効果を得ることができ、上記プログラムにより制御されるコンピュータシステムであれば、上記第１から第５の構成における電子機器の一部を構成することができる。
【００４５】
なお、上述したプログラムは、コンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、各種記録媒体や通信回線を介して電子機器や、これを利用するユーザに提供されるものである。
【発明を実施するための最良の形態】
【００４６】
以下に本発明の実施形態を図面と共に説明する。
（１）全体構成
ネットワークシステム１は、図１に示すように、それぞれに固有の識別番号が割り当てられた複数の電子機器をノード１０とし、これらノード１０がバス２０を介して通信可能に接続されてなるものである。
【００４７】
各ノード１０は、ノード１０全体の動作を制御するマイコン１２，マイコン１２をバス２０に接続するためのトランシーバ１４，各種センサ４０やアクチュエータ５０との間で信号を入出力する入出力回路１６，ノード１０全体に電源を供給するための電源回路１８などからなる。
【００４８】
これらのうち、マイコン１２は、内蔵メモリに記憶されたプログラムに従い、各種センサ４０から入力される信号で示される検出値に応じたアクチュエータ５０の制御量を算出すると共に、その制御量にて制御するための制御信号をアクチュエータ５０へと出力する、といった処理を行う。また、この処理の過程において、バス２０を介して他のノード１０に対してデータを送信したり、他のノード１０からのデータを受信したりする。
【００４９】
本実施形態において、このような他のノード１０との間でのデータの送受信は、トークンバッシングバス方式により実現されるように構成されている。
具体的にいうと、各ノード１０は、自身に割り当てられた識別番号が設定されたトークンをバス２０から取得したときにのみ、データの送信が許可される。そして、トークンを取得した際には、送信すべきデータと共に、自身に割り当てられた識別番号の次の識別番号が設定されたトークン（送信すべきデータがなければトークンのみ）をバス２０上に送信する。このトークンは、全てのノード１０に受信されるが、そのトークンにおいて設定された識別番号の割り当てられたノード１０のみがこれを取得することとなる。こうして、トークンを取得したノード１０によるデータの送信が識別番号の順に行われるようになる。このように、識別番号の順にノード１０間でトークンが受け渡されることにより、バス２０上に論理的なトークンリングが形成される。
【００５０】
また、上記ノード１０は、本ネットワークシステム１が搭載された装置（例えば、車両）の起動（例えば、車両におけるイグニッションスイッチのオン）に伴って電源回路１８への通電が開始されることで起動し、それぞれがトークンリングの構築またはそのトークンリングへの参加を行うことによって、ノード１０間でのデータの送受信が行われる状態となる。
（２）ノード１０による処理
以下に、ノード１０のマイコン１２により実行される各種処理について説明する。
（２−１）トークンリング形成処理
はじめに、ノード１０が起動された以降、ノード１０のマイコン１２が、内蔵メモリに記憶されたプログラムに従って繰り返し実行するトークンリング形成処理の処理手順を図２に基づいて説明する。
【００５１】
このトークンリング形成処理が起動されると、まず、ノード１０全体の初期化が行われた後（ｓ１１０）、タイマＴ１がリスタート（リセットおよびスタート）する（ｓ１２０）。
【００５２】
次に、バス２０上にいずれかのノード１０により送信されたデータが流通しているか否かがチェックされる（ｓ１３０）。なお、バス２０上に流通しているデータは、そのデータを送信した送信元ノード１０の識別番号と、そのデータの宛先となる宛先ノード１０の識別番号と、が特定可能な状態で送信されるものである。
【００５３】
このｓ１３０で、データが流通していないと判定された場合（ｓ１３０：ＮＯ）、この時点におけるタイマＴ１のカウント値が所定のアイドル時間Ｔ＿Ｉｄｌｅより大きくなっている（Ｔ１＞Ｔ＿Ｉｄｌｅ）か否かがチェックされる（ｓ１４０）。このアイドル時間Ｔ＿Ｉｄｌｅとは、本ネットワークシステム１の搭載された装置の起動後、少なくともいずれかのノード１０によるデータの送信が行われるようになるまでに要する想定時間として定められたものである。
【００５４】
このｓ１４０で、タイマＴ１のカウント値がアイドル時間Ｔ＿Ｉｄｌｅより大きくなっていないと判定された場合（ｓ１４０：ＮＯ）、プロセスがｓ１３０へと戻る。
一方、上記ｓ１４０で、タイマＴ１のカウント値がアイドル時間Ｔ＿Ｉｄｌｅより大きくなっていると判定された場合（ｓ１４０：ＹＥＳ）、上述したタイマＴ１がストップした後で（ｓ１５０）、調停シーケンスが実施される（ｓ１７０）。
【００５５】
この調停シーケンスは、複数のノード１０が同じタイミングでトークンリングを構築しようとしている場合に、そのいずれかによるトークンリングの構築のみを有効なものとし、他のノード１０によるトークンリングの構築を排除すべく、各ノード１０にて実施される。
【００５６】
具体的には、図３に示すように、ノード１０自身に割り当てられた識別番号を１ビットの情報単位で順にバス２０上に送信し（ｓ１７１）、その送信した情報と、その時点でバス２０から受信された情報とが一致していることを確認する（ｓ１７３）、といった処理を、識別番号を構成する全ての情報について終了するまで（ｓ１７５：ＮＯ）順番に行う。そして、この繰り返し周期の中で、送信した情報と、バス２０から受信された情報とが不一致となった時点で（ｓ１７３：ＮＯ）、他の未参加ノードによりトークンリングの構築が行われている旨を示す「失敗」が戻り値となる（ｓ１７７）一方、両情報が一致することが全ての情報について確認できた場合に（ｓ１７５：ＹＥＳ）、他の未参加ノードによるトークンリングの構築が行われていない旨を示す「成功」が戻り値となる（ｓ１７９）。
【００５７】
この調停シーケンスでは、送信した情報と、バス２０から受信された情報とが不一致となったことを、他の未参加ノードによりトークンリングの構築が行われていることと判断して「失敗」を戻り値としているが、これは、次の理由による。
【００５８】
まず、図４に示すように、ノード１０から送信される１ビットの情報は、その内容に応じたドミナント（Ｈレベル）またはレセッシブ（Ｌレベル）の信号としてバス２０上に送信される。そして、ノード１０から送信される識別番号を示すビットパターンがそのノード１０固有のものであることから、複数の未参加ノードが同時にビットパターンを送信していると、必ず、それぞれにより送信される信号の信号レベルが一致しないタイミングが到来することになる。
【００５９】
ここで、ある未参加ノードがレセッシブの信号を送信していたとしても、他の未参加ノードがドミナントの信号を送信していれば、そのタイミングにおけるバス上の信号レベルはドミナントに固定されてしまう。これを、レセッシブの信号を送信していた未参加ノード側からみた場合、送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルとが一致しないということになる。
【００６０】
このように信号レベルが一致しないのは、ドミナントの信号を送信している他の未参加ノードが存在しているからであるため、レセッシブの信号を送信していた未参加ノードは、そのように信号レベルが一致しないことをもって、他の未参加ノードによりトークンリングの構築が行われていると判断することができる。なお、ノード１０は、他の未参加ノードによりトークンリングの構築が行われていることと判断した場合に、ビットパターンの送信を中断するため、複数のノード１０が同時に情報を送信していたとしても、２以上のノード１０による情報の送信が最後まで行われることはない（図４参照）。
【００６１】
こうして調停シーケンスが行われた後、調停シーケンスによる戻り値が、他の未参加ノードによりトークンリングの構築が行われていない旨を示す「成功」であるか否かがチェックされる（ｓ１８０）。
【００６２】
このｓ１８０で、調停シーケンスによる戻り値が「成功」であると判定された場合（ｓ１８０：ＹＥＳ）、ノード１０自身によりトークンリングを構築するための処理が行われた後（ｓ１９０）、次の処理（ｓ３１０）へと移行する。
【００６３】
また、上述したｓ１３０で、データが流通していると判定された場合（ｓ１３０：ＹＥＳ）、上述したタイマＴ１がストップする（ｓ２５０）。
こうして、タイマＴ１がストップした後、または、上述したｓ１８０で調停シーケンスによる戻り値が、他の未参加ノードによりトークンリングの構築が行われている旨を示す「失敗」であると判定された場合（ｓ１８０：ＮＯ）、ノード１０自身がトークンリングに参加すべき参加スロットが特定される（ｓ２６０）。
【００６４】
ここでは、まず、上記ｓ１３０で流通していると判定されたデータを含め、バス２０上を流通する所定数のデータが一定時間にわたって収集され、それらデータから特定される識別番号の中から、ノード１０自身に割り当てられた識別番号の直前となる識別番号が特定される。そして、そのように特定した識別番号のノード１０がトークンを送信した直後の所定時間（参加スロットに相当する時間）が、ノード１０自身がトークンリングに参加すべき参加スロットとして特定される。なお、このバス２０上を流通するデータを収集する「一定時間」とは、ネットワークシステム１を構成する全てのノード１０それぞれによるデータの送信が一通り終了するのに要する時間として定められた時間である。
【００６５】
ここで、本ネットワークシステム１が、ノード１０（ｉ）〜（ｉｖ）により構成されている場合を例示すると、未参加ノード１０（ｉｉ）は、ノード１０（ｉ）の識別番号（ノード１０（ｉ）がその時点でトークンリングに参加していなければ、その更に直前の識別番号）を特定し、このノード１０（ｉ）がトークンを送信した以降の所定時間を該当する参加スロットとして特定する（図５（ａ）参照）。
【００６６】
次に、上記ｓ２６０にて特定された参加スロットが到来するまで待機状態となった後、その参加スロットにおいて上記ｓ１７０と同様の調停シーケンスが実施される（ｓ２７０）。この調停シーケンスは、トークンリングに参加するための参加処理の一部として実施されるものであって、複数のノード１０が同じタイミングでトークンリングに参加しようとしている場合に、そのいずれかのみの参加を認め、それ以外のノード１０による参加を拒否すべく、各ノード１０にて実施されるものである。
【００６７】
例えば、本ネットワークシステム１を構成するノード１０（ｉ）〜（ｉｖ）のうち、ノード１０（ｉ），（ｉｖ）のみがトークンリングに参加している場合には、ノード１０（ｉｉ）および（ｉｉｉ）の両方ともが、ノード１０（ｉ）がデータを送信した以降の所定時間を参加スロットとして特定するため（図５（ｂ）参照）、この場合には、複数のノード１０が同じタイミングでトークンリングに参加すべく調停シーケンスを実施することとなる。
【００６８】
こうして調停シーケンスが行われた後、調停シーケンスによる戻り値が、他の未参加ノードにより調停シーケンスが行われていない旨を示す「成功」であるか否かがチェックされる（ｓ２８０）。
【００６９】
このｓ２８０で、調停シーケンスによる戻り値が、他の未参加ノードにより調停シーケンスが実施されている旨を示す「失敗」であると判定された場合（ｓ２８０：ＮＯ）、プロセスがｓ２６０へ戻る。こうして、調停シーケンスによる戻り値が「失敗」となっている間は、ｓ２６０〜ｓ２８０が繰り返されることにより、上記参加処理の継続が中断される。
【００７０】
一方、上記ｓ２８０で、調停シーケンスによる戻り値が「成功」であると判定された場合（ｓ２８０：ＹＥＳ）、上記参加処理の一部として、ノード１０自身がトークンリングに参加するための処理（他のノード１０との情報のやりとりなど）を継続して実施した後（ｓ２９０）、次の処理（ｓ３１０）へと移行する。
【００７１】
ここまでの処理によって、ノード１０は、バス２０上に形成される論理的なトークンリングを介したデータの送受信が可能になる。
こうして、ｓ１９０またはｓ１９０を終えた後、バス２０上にいずれかのノード１０により送信されたトークンが流通しているか否かがチェックされる（ｓ３１０）。
【００７２】
このｓ３１０で、トークンが流通していないと判定された場合（ｓ３１０：ＯＮ）、プロセスがｓ１２０へと戻る。
一方、上記ｓ３１０で、トークンが流通していると判定された場合（ｓ３１０：ＹＥＳ）、その流通していると判定されたトークンにおいて設定された識別番号が、ノード１０自身に割り当てられた識別番号であるか否か，つまりそのトークンがノード１０自身宛であるか否かがチェックされる（ｓ３２０）。
【００７３】
このｓ３２０で、トークンがノード１０自身宛でないと判定された場合（ｓ３２０：ＮＯ）、プロセスがｓ３１０へと戻る。
一方、上記ｓ３２０で、トークンがノード１０自身宛であると判定された場合（ｓ３２０：ＹＥＳ）、そのトークンが取得されたうえで、ノード１０自身が他のノード１０をトークンリングに参加させるべき参加許可状態になっているか否かがチェックされる（ｓ３３０）。
【００７４】
ここでは、参加スロットを設けるべきスロット条件が満たされており、かつ、ノード１０自身が参加スロットを設けるべき設定になっている場合に、参加許可状態になっていると判定される。この「スロット条件」が満たされていることは、後述するスロット条件フラグに「１」がセットされている場合に判定され、「参加スロットを設けるべき設定」になっていることは、後述するスロット設定フラグに「１」がセットされている場合に判定される。なお、これらスロット条件フラグおよびスロット設定フラグは、後述する処理においてその値が変更されるものである。
【００７５】
このｓ３３０で参加許可状態になっていると判定された場合（ｓ３３０：ＹＥＳ）、参加スロットを設けるべく一定時間の待機状態となった後（ｓ３４０）、データおよびトークンの送信が行われ（ｓ３５０）、プロセスがｓ３１０へと戻る。なお、このｓ３４０において、送信すべきデータが存在しない場合には、トークンの送信のみが行われる。
【００７６】
また、上記ｓ３３０で被参加状態になっていないと判定された場合（ｓ３３０：ＮＯ）、ｓ３４０が行われることなく、プロセスがｓ３５０へと移行する。
このように、ｓ３１０〜ｓ３５０では、データおよびトークンを送信する時点において参加許可状態になっていれば、その送信に先立って参加スロットを設けることにより、その参加スロットでの他のノード１０の参加を受付可能な状態とする。その一方、参加許可状態になっていなければ、その送信に先立って参加スロットを設けることなく、データおよびトークンを送信し、これにより他のノード１０の参加を受け付けない状態とする（図５（ｃ）参照）。
（２−２）スロット条件判定処理
続いて、ノード１０が起動した以降、繰り返し実行されるスロット条件判定処理の処理手順を図６に基づいて説明する。
【００７７】
このスロット条件判定処理が起動されると、まず、スロット条件フラグが初期化（「１」のセット）された後（ｓ４１０）、バス２０上を流通しているトークンから特定される宛先ノード１０の識別番号が、ノード１０自身に割り当てられた識別番号であるか否か，つまり参加ノードとなっているノード１０自身宛のトークンが受信されるまで待機状態となる（ｓ４２０：ＮＯ）。
【００７８】
その後、ノード１０自身宛のトークンが受信されたら（ｓ４２０：ＹＥＳ）、そのトークンが取得されたうえで、ノード１０自身に割り当てられた識別番号ｎｓと、その取得したトークンから特定される送信元ノード１０に割り当てられた識別番号ｎａとの差を示す値Ｘ（＝ｎｓ−ｎａ）が算出される（ｓ４３０）。
【００７９】
次に、上記ｓ４３０にて算出された識別番号の差を示す値Ｘが「１」であるか否かがチェックされる（ｓ４４０）。
上述のように、トークンは識別番号の順番に受け渡されるものであるため、ノード１０自身に割り当てられた識別番号ｎｓと送信元ノード１０の識別番号ｎａとの差を示す値Ｘが「１」である（つまり「ｎａ−ｎｓ＝１」）ということは、送信元ノード１０の識別番号ｎａがノード１０自身に割り当てられた識別番号ｎｓ直前の識別番号であって、その識別番号ｎａの割り当てられたノード１０がトークンリングに参加済みであるということを示している。このことは、ノード１０自身が参加スロットによりトークンリングに参加させることのできる全てのノード１０が既にトークンリングに参加していることを意味する。
【００８０】
そのため、そのような場合において、ノード１０自身によるトークンの送信に先立って参加スロットを設けたとしても、その参加スロットにおいてトークンリングに参加できる他のノード１０が存在していないということになる。
【００８１】
つまり、このｓ４４０では、上述のように識別番号ｎｓ，ｎａの差を示す値Ｘが「１」であるか否かをチェックすることにより、ノード１０自身が参加スロットによりトークンリングに参加させることのできる全てのノード１０が既にトークンリングに参加済みであるか否かをチェックしていることになる。
【００８２】
このｓ４４０で、識別番号の差を示す値Ｘが「１」でないと判定された場合（ｓ４４０：ＮＯ）、プロセスがｓ４２０へと戻る。
一方、上記ｓ４４０で、識別番号の差を示す値Ｘが「１」であると判定された場合（ｓ４４０：ＹＥＳ）、スロット条件フラグに「０」がセットされる（ｓ４５０）。
【００８３】
次に、バス２０上にいずれかのノード１０により送信されたトークンが流通していて、トークンリングが正常に形成された状態で維持されていると判定されている間、待機状態となる（ｓ４６０：ＹＥＳ）。
【００８４】
そして、バス２０上にいずれかのノード１０により送信されたトークンが流通しなくなり、トークンリングが正常に形成された状態で維持されなくなったと判定された場合（ｓ４６０：ＮＯ）、プロセスがｓ４１０へ戻る。
【００８５】
このように、本スロット条件判定処理では、トークンリングに参加させることのできる他のノード１０が存在しない場合にスロット条件フラグに「０」をセットし、スロット条件が満たされていないこととすることにより、参加スロットが設けられないようにしている（図２のｓ３３０「ＮＯ」，図５（ｃ）参照）。
（２−３）スロット設定切替処理
続いて、ノード１０が起動された以降、繰り返し実行されるスロット設定切替処理の処理手順を図７に基づいて説明する。なお、このスロット設定切替処理は、電源回路からマイコン１２に供給される電源の状態が変化したときに再起動される。
【００８６】
このスロット設定切替処理が起動されると、まず、タイマＴ２がリスタート（リセットおよびスタート）する（ｓ５１０）。
次に、スロット設定フラグに「１」がセットされた後（ｓ５２０）、この時点でスロット条件フラグに「１」がセットされているか否かがチェックされる（ｓ５３０）。
【００８７】
このｓ５３０でスロット条件フラグに「１」がセットされていると判定された場合（ｓ５３０：ＹＥＳ）、この時点におけるタイマＴ２のカウント値が所定の安定化時間Ｔ＿ＩＮＩＴより大きくなっている（Ｔ２＞Ｔ＿ＩＮＩＴ）か否かがチェックされる（ｓ５４０）。この安定化時間Ｔ＿ＩＮＩＴとは、本ネットワークシステム１の搭載された装置の起動後、各ノード１０が安定してデータの送信を行うようになるまでに要する想定時間として定められたものである。
【００８８】
このｓ５４０で、タイマＴ２のカウント値が所定の安定化時間Ｔ＿ＩＮＩＴより大きくなっていないと判定された場合（ｓ５４０：ＮＯ）、プロセスがｓ５３０へ戻り、再度、スロット条件フラグに「１」がセットされているか否かのチェックが行われる。つまり、このｓ５４０では、スロット条件フラグに「１」がセットされていてトークンリングに参加させることのできる他のノード１０が存在している状態，換言すればノード１０自身が参加ノードとなっている状態が、安定化時間Ｔ＿ＩＮＩＴだけ継続しているか否かをチェックしていることになる。
【００８９】
一方、上記ｓ５４０で、タイマＴ２のカウント値が所定の安定化時間Ｔ＿ＩＮＩＴより大きくなっていると判定された場合（ｓ５４０：ＹＥＳ）、スロット設定フラグに「０」がセットされた後（ｓ５５０）、上述したタイマＴ２がストップする（ｓ５６０）。このように、安定化時間Ｔ＿ＩＮＩＴの経過後に、ｓ５５０でスロット設定フラグに「０」をセットすることによって、参加スロットが設けられないようにしている（図２のｓ３３０「ＮＯ」，図５（ｃ）参照）。
【００９０】
次に、カウンタＣがリセット（カウント値を「０」に戻す；以下同様）された後（ｓ５７０）、上記ｓ５３０と同様、この時点でスロット条件フラグに「１」がセットされているか否かがチェックされる（ｓ５８０）。
【００９１】
このｓ５８０でスロット条件フラグに「１」がセットされていると判定された場合（ｓ５８０：ＹＥＳ）、バス２０上を流通しているトークンから特定される宛先ノード１０の識別番号が、ノード１０自身に割り当てられた識別番号であるか否か，つまりノード１０自身宛のトークンが受信されたか否かがチェックされる（ｓ５９０）。
【００９２】
このｓ５９０で、ノード１０自身宛のトークンが受信されていないと判定された場合（ｓ５９０：ＮＯ）、プロセスがｓ５８０へと戻る。
一方、上記ｓ５９０で、ノード１０自身宛のトークンが受信されていると判定された場合（ｓ５９０：ＹＥＳ）、スロット設定フラグに「０」がセットされた後（ｓ６００）、上述したカウンタＣがインクリメント（Ｃ＋１→Ｃ）される（ｓ６１０）。
【００９３】
次に、この時点におけるカウンタＣのカウント値が所定値Ｎより大きくなっている（Ｃ＞Ｎ）か否かがチェックされる（ｓ６２０）。
このｓ６２０で、カウンタＣのカウント値が所定値Ｎより大きくなっていないと判定された場合（ｓ６２０：ＮＯ）、プロセスがｓ５８０へと戻る。
【００９４】
上記ｓ５９０ではノード１０自身宛のトークンを受信する毎にカウンタＣがインクリメントされるところ、トークンが識別番号の順番に受け渡されるものであることからすると、このカウンタＣのカウント値は、全てのノード１０によるトークンの送信が行われたサイクルの繰り返し回数がセットされることとなる。
【００９５】
つまり、このｓ６２０では、ノード１０自身が参加スロットによりトークンリングに参加させることのできるノード１０が存在している状態で、全てのノード１０によるトークンの送信が行われたサイクルの繰り返し回数が、所定値Ｎに相当する回数を超えたか否かをチェックしていることになる。そして、この繰り返しサイクルの中ではｓ６００にてスロット設定フラグに「０」がセットされるため、そのような繰り返しサイクルが所定値Ｎに相当する回数を超えるまでの間、参加スロットが設けられないようにしている。
【００９６】
また、上記ｓ６２０で、カウンタＣのカウント値が所定値Ｎより大きくなっていると判定された場合（ｓ６２０：ＹＥＳ）、スロット設定フラグに「１」がセットされ（ｓ６３０）、カウンタＣがリセットされた後（ｓ６４０）、プロセスがｓ５８０へ戻る。
【００９７】
また、上記ｓ５３０またはｓ５８０で、スロット条件フラグに「０」がセットされていると判定された場合（ｓ５３０：ＮＯ，ｓ５８０：ＮＯ）、スロット設定フラグに「０」がセットされた後（ｓ６５０）、バス２０上にいずれかのノード１０により送信されたトークンが流通していて、トークンリングが正常に形成された状態で維持されていると判定されている間、待機状態となる（ｓ６６０：ＹＥＳ）。
【００９８】
そして、バス２０上にいずれかのノード１０により送信されたトークンが流通しなくなり、トークンリングが正常に形成された状態で維持されなくなったと判定された場合（ｓ６６０：ＮＯ）、プロセスがｓ５１０へ戻る。
【００９９】
このように、本スロット設定切替処理では、まず、トークンリングに参加させることのできる他のノード１０が存在している状態が、安定化時間Ｔ＿ＩＮＩＴだけ継続するまで、スロット設定フラグを「１」としておくことにより（ｓ５２０〜ｓ５４０）、参加スロットが設けられるようになる（図２のｓ３３０「ＹＥＳ」）。
【０１００】
そして、その状態が、安定化時間Ｔ＿ＩＮＩＴだけ継続した以降は、全てのノード１０によるトークンの送信が所定値Ｎだけ繰り返されたときにのみ、一時的にスロット設定フラグを「１」とすることにより（ｓ５８０〜ｓ６４０）、参加スロットが設けられるようにしている（図２のｓ３３０「ＮＯ」）。
（３）作用，効果
このネットワークシステム１を構成するノード１０によれば、トークンリングに参加していない未参加ノードであるときには、先にトークンリングに参加している参加ノードにより設けられた参加スロットの到来を待ってトークンリングに参加するための参加処理を行うことができる（図２のｓ２６０〜２９０）。そして、この参加処理を経て参加ノードとなった以降は、トークンの受け渡しに際して参加スロットを設けることで（同図ｓ３４０）、未参加ノードのトークンリングへの参加を受け入れることができる。
【０１０１】
この参加スロットは、トークンリングの参加を受け入れるべく設けられたものであって、トークンの受け渡しが行われるスロットとは異なる独立したスロットとして設けられるため（図５参照）、その参加スロットにおいてデータがバス上に送信されたとしてもトークンリングが破壊されることはなく、それによりトークンリングを再構築する必要もない。
【０１０２】
その結果、ネットワークシステム１における全てのノード１０がトークンリングに参加する前の段階であっても、トークンリングの破壊および再構築が行われることがなく、その段階においてトークンリングに参加しているノード１０同士で正常に通信を行うことができるため、その通信の遅延を最小限にすることができる。
【０１０３】
また、上記実施形態では、トークンリングに参加するにあたり、バス２０上を流通するデータに基づいて、ノード１０自身以外の未参加ノードにより参加処理が実施されているか否かを判定し（図２のｓ２７０）、参加処理が実施されていないと判定した場合に、自身による参加処理を継続する一方、参加処理が実施されていると判定した場合に、自身による参加処理を中断した後で実施し直す（同図ｓ２８０「ＮＯ」）。
【０１０４】
そのため、ノード１０は、未参加ノードである場合に、他の未参加ノードにより参加処理が実施されておらずデータの衝突が発生しない状況であれば、そのまま参加処理を継続してトークンリングに参加することができる。それに対し、他の未参加ノードにより参加処理が実施されておりデータの衝突が発生している状況であれば、自身が実施している参加処理を中断して、その他の未参加ノードを先にトークンリングに参加させたうえで、その参加処理を実施し直すことができる。
【０１０５】
このように、データの衝突が発生している場合に、参加処理を中断した後で実施し直すことにより、データの衝突を回避しつつ参加処理を実施することができる。
また、上記実施形態では、調停シーケンスにおいてノード１０固有のビットパターンを送信し、その過程において送信したビットを示す信号レベルと、そのビットを送信した時点におけるバス上の信号レベルと、の一致，不一致により、他の未参加ノードにより調停シーケンスが実施されているか否かを判定している（図３）。
【０１０６】
ここで、信号レベルが一致しないのは、ドミナントの信号を送信している他の未参加ノードが存在しているからであるため、上記実施形態では、このことに基づいて、そのように信号レベルが一致しないことをもって、他の未参加ノードにより参加処理が実施されていると判定し（図２のｓ２８０「ＮＯ」）、参加処理を中断することができる。
【０１０７】
また、上記実施形態においては、ノード１０自身が参加ノードとなっている時間が、安定化時間Ｔ＿ＩＮＩＴを超えるまでの間、スロット設定フラグを「１」のままで維持することにより（図７のｓ５２０→ｓ５４０「ＮＯ」）、トークンを次の参加ノードへと渡す毎に参加スロットが設けられるようにしている（図２のｓ３３０「ＹＥＳ」）。
【０１０８】
その一方、安定化時間Ｔ＿ＩＮＩＴを超えた以降は、スロット設定フラグを「０」とすることにより（図７のｓ５５０）、原則、参加スロットが設けられないようにしている（図２のｓ３３０「ＮＯ」）。
【０１０９】
そして、安定化時間Ｔ＿ＩＮＩＴを超えた以降であっても、複数のノード１０間によるトークンの受け渡しが順番に行われたサイクル数が所定値Ｎに到達したときのみ（図７のｓ６２０「ＹＥＳ」）、スロット設定フラグを「１」とすることにより、そのサイクルにおいてトークンを次の参加ノードへと渡す際に参加スロットを設けるようにしている（図２のｓ３３０「ＹＥＳ」）。
【０１１０】
このように構成されているため、ノード１０が参加ノードとなってから安定化時間Ｔ＿ＩＮＩＴが経過した以降、参加スロットが設けられる頻度が低くなる。ノード１０が参加ノードとなってからある程度の時間が経過すれば、ネットワークシステム１としてもその動作が安定していることが予想され、それ以上の未参加ノードがトークンリングに参加する可能性が低くなるため、参加スロットを設ける必要性も低くなる。
【０１１１】
そのため、上記構成のように、そのように必要性の低い参加スロットが設けられる頻度を低くすることによって、複数のノード１０間によるトークンの受け渡しが順番に行われるまでの１サイクルの時間を短縮することができる。
【０１１２】
また、上記実施形態において、各ノード１０は、自身が参加ノードとなっている状態で、バス２０を介して受け渡されるトークンに基づいて、ノード１０自身が参加スロットによりトークンリングに参加させることのできる全てのノード１０が既にトークンリングに参加済みであるか否かをチェックしている（図６のｓ４２０〜ｓ４４０）。そして、ここで、該当する全てのノード１０が参加済みであると判定された場合には、スロット条件フラグを「０」とすることにより、トークンを次の参加ノードへと渡す際に参加スロットを設けないようにしている（図２のｓ３３０「ＮＯ」）。
【０１１３】
このように、ノード１０自身が参加スロットによりトークンリングに参加させることのできる全てのノード１０が既にトークンリングに参加済みである，ということは、それ以降に参加スロットを設けたとしても、この参加スロットによりトークンリングへの参加を行うべき未参加ノードが存在していないということを意味している。
【０１１４】
つまり、該当する全てのノード１０が参加ノードとしてトークンリングに参加している場合には、それ以降に参加スロットを設ける必要がない。そのため、上記構成では、そのように不必要な参加スロットを設けないようにすることによって、複数のノード１０間によるトークンの受け渡しが順番に行われるまでの１サイクルの時間を短縮することができる。
（４）変形例
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【０１１５】
例えば、上記実施形態においては、ノード１０が参加ノードとなってから安定化時間Ｔ＿ＩＮＩＴが経過した以降、トークンの受け渡しが順番に行われたサイクル数が所定値Ｎに到達したときにのみ、参加スロットが設けられるように構成されたものを例示した。しかし、安定化時間Ｔ＿ＩＮＩＴが経過した以降に参加スロットが設けられる頻度を低くすることができればよく、そのための構成は、上記以外のものであってもよい。
【０１１６】
例えば、ノード１０が参加ノードとなってから安定化時間Ｔ＿ＩＮＩＴが経過した以降に、参加スロットが設けられないようにすることが考えられる。このためには、図７のｓ５５０が行われた後で同図ｓ６６０へと移行するように構成すればよい。
【０１１７】
また、上記実施形態においては、調停シーケンスを実施することにより、他の未参加ノードが参加処理を実施しているか否かを判断するように構成されたものを例示した。しかし、他の未参加ノードが参加処理を実施しているか否かを判断するためには、上記調停シーケンスによる方法以外の方法により実現してもよい。
【０１１８】
例えば、参加スロットにおいて、バス上を何らかのデータが流通しているか否かによりその旨を判定することが考えられる。このためには、図２のｓ２７０，ｓ２８０でバス上にデータが流通しているか否かを判定し、流通していれば、ｓ２６０へ戻り、流通していなければ、ｓ２９０へと移行するように構成すればよい。
【０１１９】
このように参加スロットにおいてデータを送信するのは、未参加ノードであるため、その参加スロットにおいてバス上にデータが流通しており、そのデータがノード１０自身によるものでないのであれば、それは、他の未参加ノードが参加処理を実施することで送信したものといえる。そのため、参加スロットにおいて、ノード１０自身によるもの以外のデータがバス上に流通していることをもって、他の未参加ノードにより参加処理が実施されていると判定することができる。
（５）本発明との対応関係
以上説明した実施形態において、図２のｓ３４０が本発明におけるスロット設定手段であり、同図ｓ２６０，ｓ２７０が本発明におけるスロット判定手段であり、同図ｓ２６０〜ｓ２９０が本発明における参加処理実施手段であり、図７のｓ６１０〜ｓ６４０が本発明におけるサイクルカウント手段であり、図６のｓ４２０〜ｓ４４０が本発明における参加判定手段である。
【図面の簡単な説明】
【０１２０】
【図１】ネットワークシステムの全体構成を示す図
【図２】トークンリング形成処理を示すフローチャート
【図３】調停シーケンスを示すフローチャート
【図４】調停シーケンスによる判断の理由を説明するための図
【図５】各ノードによるデータの送信状態を時系列で示した図
【図６】スロット条件判定処理を示すフローチャート
【図７】スロット設定切替処理を示すフローチャート
【符号の説明】
【０１２１】
１…ネットワークシステム、１０…ノード、１２…マイコン、１４…トランシーバ、１６…入出力回路、１８…電源回路、２０…バス、５０…アクチュエータ。
【図１】
2008271405.tif 000003
【図２】
2008271405.tif 000004
【図３】
2008271405.tif 000005
【図５】
2008271405.tif 000006
【図６】
2008271405.tif 000007
【図７】
2008271405.tif 000008
【図４】
2008271405.tif 000009