(57)【要約】【課題】  各ノード（局）の送信タイミングが重ならないようにすることに係わり、特に同期化フレームの消失やマスタ局の脱落等があっても問題なく動作できるようにする。【解決手段】  マスタ局は、自局のサイクルタイマによって生成される通信サイクル（周期Ｔ）の始まり毎に全スレーブ局に同期化フレームを送信する。たとえこの同期化フレーム受信までに大きな遅延があっても、各スレーブ局では、同期化フレーム受信時に自局のサイクルタイマを再設定（Ｔ−遅延）して再起動することで、全ての局のサイクルタイマがほぼ同時にタイムアップする。つまり、各スレーブ局のサイクルタイマをマスタ局のそれと同期化させることができる。その後は、各局毎に独立して自局のサイクルタイマに基づいて送信タイミングを決定すればよい。【選択図】図３
2005159754.tif 000002
【特許請求の範囲】
【請求項１】
一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおける送信タイミング決定方法であって、
前記マスタ局と各スレーブ局は、各々、通信サイクルを管理するための第１のタイマを有し、
前記マスタ局は自局の第１のタイマに基づく通信サイクルの切れ目に同期化フレームを送信し、
前記各スレーブ局は、受信した前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させ、
前記各局は、各々、自局の第１のタイマに基づいて自局のデータ送信タイミングを決定することを特徴とする送信タイミング決定方法。
【請求項２】
前記各スレーブ局は、前記同期化フレームを受信すると、前記自局の第１のタイマを停止し、前記通信サイクルの周期から前記同期化フレームの遅延分を引いた値を該第１のタイマに再設定して再起動することで、前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させることを実現し、
各局は各々第２のタイマを有し、該第２のタイマの設定値は相互に異なる値とし、前記自局の第１のタイマのタイムアップで該第２のタイマを起動して、該第２のタイマのタイムアップ時点を前記自局のデータ送信タイミングとすることを特徴とする請求項１記載の送信タイミング決定方法。
【請求項３】
前記ネットワークシステムは、マスタ局がダウン／脱落した場合、任意のスレーブ局がマスタ局を引き継ぐシステムであり、該引き継いだ新マスタ局が前記旧マスタの第１のタイマのタイミングを継続したままシステム全体の通信サイクルを管理することを特徴とする請求項１又は２記載の送信タイミング決定方法。
【請求項４】
一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおいて、
前記マスタ局は、通信サイクルを管理するための第１のタイマを有し、自局の第１のタイマに基づく通信サイクルの切れ目に同期化フレームを送信する第１の同期化手段を有し、
各スレーブ局は、各々第１のタイマを有し、受信した前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させる第２の同期化手段を有し、
前記各局は、各々、自局の第１のタイマに基づいて自局のデータ送信タイミングを決定する送信タイミング決定手段を有することを特徴とするネットワークシステム。
【請求項５】
一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおける前記各スレーブ局のコンピュータに、
前記マスタ局から送られてくる同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させる機能と、
自局の第１のタイマに基づいて自局のデータ送信タイミングを決定する機能と、
を実現させる為のプログラム。
【請求項６】
共通シリアルバスを使って複数のノードが通信を行うネットワークシステムの通信サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分け、
前記共用時間帯におけるデータ送信を必要とするノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングでバス使用権の要求をブロードキャストで送信し、
各ノードは各々前記バス使用権の要求を受信し、共用時間帯において各ノードは受信したバス使用権要求と予め記憶されている固定的な優先順位データに基づいて各々独立してバス使用権の調停を行い、
調停に勝ったノードが、前記共用時間帯においてデータ送信することを特徴とするシリアルバス使用権の分散調停方法。
【請求項７】
前記ネットワークシステムは、産業用途のネットワークシステムであり、
前記各ノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングで制御データ交換を行い、該制御データ交換の定周期性が求められるシステムであることを特徴とする請求項６記載のシリアルバス使用権の分散調停方法。
【請求項８】
前記各ノードは、自ノードが前記バス使用権を要求した場合、自ノードも含めて前記バス使用権を要求した各ノードの優先順位を、前記固定的な優先順位データに基づいて求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定し、自ノードが前記共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間前記バス使用権要求の送信を抑制することを特徴とする請求項６又は７記載のシリアルバス使用権の分散調停方法。
【請求項９】
前記所定の条件は、前記バス使用権要求を行ったノードの個数が"0"または"1"の状態であることを特徴とする請求項８記載のシリアルバス使用権の分散調停方法。
【請求項１０】
共通シリアルバスを使って複数のノードが通信を行うネットワークシステムにおいて、
前記ネットワークシステムの通信サイクルは、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分けられており、
前記各ノードは、予め登録される固定的な優先順位データを記憶する優先順位データ記憶手段と、自ノードが前記共用時間帯におけるバス使用権を要求した場合、自ノードも含めて前記バス使用権を要求した各ノードの優先順位を前記優先順位データより求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定する調停手段と、自ノードが調停に勝利して前記共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間前記バス使用権要求の送信を抑制するバス使用抑制手段と
を有することを特徴とするネットワークシステム。
【請求項１１】
共通バスを使って複数のノードが通信を行い、その通信サイクルが各ノード毎に送信タイミングを割り当てられる専用時間帯と各ノード間の調停で選ばれたノードが送信する共用時間帯に分けられているネットワークシステムにおける前記各ノードのコンピュータにおいて、
予め登録される固定的な優先順位データを記憶する機能と、
自ノードが前記共用時間帯におけるバス使用権を要求した場合、自ノードも含めて前記バス使用権を要求した各ノードの優先順位を前記優先順位データより求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定する機能と、
自ノードが調停に勝利して前記共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間前記バス使用権要求の送信を抑制する機能と、
を実現させる為のプログラム。
【請求項１２】
一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおいて、
前記マスタ局は、通信サイクルを管理するための第１のタイマを有し、自局の第１のタイマに基づく通信サイクルの切れ目に同期化フレームを送信する第１の同期化手段を有し、
各スレーブ局は、各々第１のタイマを有し、受信した前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させる第２の同期化手段を有し、
前記ネットワークシステムの通信サイクルは、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分けられており、
前記各局は、各々、自局の第１のタイマに基づいて前記専用時間帯における自局のデータ送信タイミングを決定する送信タイミング決定手段と、前記共用時間帯におけるデータ送信を必要とする場合には該送信タイミング決定手段で決定された送信タイミングにおいてバス使用権の要求をブロードキャストで送信するバス使用権要求手段と、予め登録される固定的な優先順位データを記憶する優先順位データ記憶手段と、自ノードが前記共用時間帯におけるバス使用権を要求した場合、自ノードも含めて前記バス使用権を要求した各ノードの優先順位を前記優先順位データより求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定する調停手段と、自ノードが調停に勝利して前記共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間前記バス使用権要求の送信を抑制するバス使用抑制手段と、
を有することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術分野において、特に帯域を時分割して複数の局が相互にデータ交換を行う時分割多重アクセス方式を用いたネットワークシステムにおける送信タイミング決定方法、バス使用権の調停方法等に関する。
【背景技術】
【０００２】
従来より、時分割多元接続（時分割多重アクセス方式）（ＴＤＭＡ（Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Multiple  Access））が知られている。ＴＤＭＡは、利用できる一定範囲の周波数帯を細かい時間帯に分割し、この分割した時間帯を一定の時間間隔で更に分割し、複数のタイムスロットを得る。そして、このタイムスロットを「１タイムスロット＝１チャンネル」として通信を行う方式である。
【０００３】
ＴＤＭＡでは、各通信端末に任意のタイムスロットが割り当てられ、各送信端末は自己に割り当てられたタイムスロットのタイミングで通信を行う。これは、例えば予め各通信装置毎に時間基準からの時間差が決められており（各々異なる値とする）、各通信装置毎にそれぞれ時間基準から上記時間差分経過したタイミングで通信を行う。これについての従来技術の一例を、図１２を参照して説明する。
【０００４】
図１２に示す例では、上記時間基準を、同期化フレーム受信時としている。
すなわち、各通信サイクル（ＴＤＭＡフレーム）を同期化時間帯とデータ交換時間帯に時分割し、各通信サイクル毎に、まず、同期化時間帯において、マスタ局が同期化フレームを送信し、各スレーブ局は各々この同期化フレームを受信すると、この受信タイミングを時間基準に、自局が有するタイマを用いて、データ交換時間帯における自局の送信タイミングを求めている。
【０００５】
上記各局のタイマには、それぞれ予め、時間基準からの時間差が相互に異なるようにタイムアップ設定値が決められており、タイマのタイムアップがその局に割り当てられたタイムスロットのタイミングを示すものであり、各局はこのタイミングで通信を行なう。
【０００６】
上記時間基準からの時間差が相互に異なるようにタイマ設定することで、各局の送信タイミングが重複することなく、ＴＤＭＡ方式の通信を行える。これは、例えば、システム内でユニークな番号である局番（ノードアドレス）を一次パラメータとして、タイマ設定値を決定する。つまり、各局は、自局のタイマのタイムアップ設定値ｔをｔ＝“自局の局番”×ａ（ａは予め設定される所定の定数；１ｍｓ等）等とし、上記同期化フレームの受信タイミング（時間基準）でタイマを起動する。
【０００７】
上記のように、従来技術においては、各スレーブ局はマスタ局からの同期化フレーム受信をトリガとして起動するタイマをひとつずつ個々に管理して送信タイミングを決定している。これにより、各スレーブ局は間接的にではあるが、マスタ局のもつタイマ基準時間に同期して決められた時間領域（タイムスロット）に自局の送信データを送信している。
【０００８】
なお、時分割多重送受信方式、と言った場合、最近はリング型のネットワークにおける、一つの連続したフレーム内の自局送信領域、受信領域をマスタ局の同期化クロックをもとに割り出す、と言った技術が中心に議論されることが多いが、ここではより広義の意味で本用語を使用している。
【０００９】
例えばバス型のネットワークにおけるこのような送信タイミング管理方式の例として、ＤｅｖｅｉｃｅＮｅｔのCyclicプロトコルが公知である（タイマを使った定周期の送信をCyclic送信と呼んでいる；非特許文献１参照）。ＤｅｖｅｉｃｅＮｅｔプロトコルについては、例えば非特許文献２等に記載されている。
【００１０】
この非特許文献２における「第５章  Device Net Communication オブジェクトクラス」の「5-4.4コネクションタイミング」の「5-4.4.1Transmission Trigger Timer」の記載によれば、ＤｅｖｉｃｅＮｅｔでは、送信を行う各局側が、Transmission Trigger Timerという一つのタイマを個々に管理して、他の局の送信タイミングと重ならないような送信タイミングを割り出している。ただし、このタイマは上記従来技術と異なり、マスタ局からの同期化フレームによって再起動するのではなく、各局が各々独自に自動的にリトリガしている。つまり、各局毎に自己のタイマがタイムアウトする毎にタイマを再起動している。
【００１１】
また、ネットワークに接続された複数の局（ＰＬＣにおけるＣＰＵモジュール等のようにデータを自ら送信できるモジュール）間でデータ交換を行うためのネットワークシステムには様々なものがある。複数の局が同時にデータを送信しようとする場合に、通信路上で送信データが衝突しないように、バス使用権の調停を行う必要がある。
【００１２】
例えば、IEEE802.3のEthernet（登録商標）ではCSMA/CD(Carrier Sense Multiple Access with Collision Detection)で通信路が空いていること確認してから送信を行い、IEEE1394ではルートノードでの調停で勝ったノードが送信を行い、トークンリングやトークンパッシングではトークンを所有しているノードが送信を行う。
【００１３】
また、特許文献１記載の発明では、トークンに情報を付加することにより、トークン１周で送信できる局を１局に制限している。さらに、特許文献２記載の発明では、パラレルバスシステムではあるが、局毎に送信済みの情報を持つことにより、バス使用権を公平に分配できるようにしている。
【特許文献１】特開平１１−２１５１６７号公報
【特許文献２】特開２００１−０７５９１９号公報
【非特許文献１】（http://web.Kyoto-inet.or.jp/org/odva-j/top/top.html）のhttp://web.Kyoto-inet.or.jp/org/odva-j/overview/overview11.html
【非特許文献２】「デバイスネット仕様書VolumeＩ：Device Net通信モデルおよび通信プロトコルリリース２．０」
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述のようなＴＤＭＡ方式を用いてデータ交換を行うネットワークシステムにおいて、上記各スレーブ局がマスタ局からの同期化フレーム受信によって自己のタイマを起動する従来技術では、各スレーブ局がマスタ局からの同期化フレームを受信するまでの時間（受信フレームがキャリアとして伝送路上に存在する時間及び受信処理に要する時間）が、伝送速度や処理能力上無視できない大きさである場合に問題がある。つまり、この場合は、マスタ局のタイミングとスレーブ局のタイミングに大きなずれが生じてしまうので、何らかの方法でこの遅延時間分を補償する必要が出てくる。
【００１５】
また、マスタ局からの同期化フレームが、何らかの事由（途中で消失等）で受信できなかった場合、スレーブ局では上記の通り同期化フレーム受信をトリガとしてタイマを起動する為、自局送信タイミングを求めることができないという問題が生じる。この場合は、そのサイクルにおける送信ができなくなってしまうので、たとえ同期化フレームを受信できないサイクルがあってもスレーブ局だけで自局送信タイミングを作り出せるようになることが望まれる。
【００１６】
一方、上記ＤｅｖｅｉｃｅＮｅｔのCyclicプロトコルの手法では、各局毎に独自に自己のタイマに基づく送信タイミングを求めているので、上記同期化フレームを用いる為に生じる問題は発生しない。しかしながら、この手法では、上記の通り、各局で独自にタイマを動作させているので、起動タイミングがバラバラだと、送信タイミングが重なる可能性がある。また、たとえ最初に全ての局のタイマの起動タイミングを合わせたとしても、タイマ動作の基準となるクロック（水晶発振器）の精度が通常はばらつく為、その後、長時間運用することで、各局相互でタイマの起動タイミングにずれが生じることになり、その結果、送信タイミングが重なる可能性がある。このような事態に対応して、ＤｅｖｅｉｃｅＮｅｔでは、送信タイミングが重なった場合には、その物理層であるＣＡＮ(Controller Area Network)でフレームの衝突の回避や衝突時のリトライを行っている。
【００１７】
しかしながら、このような対応を行う必要なく、クロック（水晶発振器）の精度の違いに影響されることもなく、送信タイミングの重なりそのものを防ぐことができる根本対策が望まれる。
【００１８】
さらに、従来より、マスタ局がダウンしたり脱落した場合に、スレーブ局がマスタ局の機能を引き継ぎ、新マスタ局としてシステムを継続するネットワークがある。このようなネットワークにおいては、マスタとなる局は唯一ではなく、全ての局がマスタとなりうる機能をもち、例えば最も早く初期化を完了してシステム上に立ち上がってきた局がマスタ局となる（初期化先着優先）場合や、マスタとなり得る局をユーザが選択、設定しておくなどの方法が取られることが多い。このようなシステムでは、マスタ局がダウンしたり脱落したりした場合に備えてマスタ局を他のスレーブ局が監視し、脱落などの場合にはマスタ調停やユーザ設定順位などをもとに後継となるスレーブ局がマスタ局の機能を引き継ぐ。      その際に、旧マスタ局が管理していた時間軸がリセットされ、新しいマスタ局によって時間基準が新たに定められることになる。
【００１９】
つまり、ある時刻を基準に周期性を持ってデータ交換が管理されていたシステムが、マスタ局の脱落などのシステムの状態変化により、それまでとは異なる時刻を基準時刻として動作し始めることになり、周期ずれが発生することになる。これはネットワークからの周期的なデータリフレッシュを前提とする機器や、定期的にデータをサンプルするサンプルトレースなどの機能を実現する上で問題となる。
【００２０】
また、ここで、ＦＡ（ファクトリ・オートメーション）やＰＬＣ（プログラマブルコントローラ）等の産業用分野のシステムにおいて、複数のＣＰＵモジュール、複数のＩ／Ｏモジュールがネットワークに接続され、このネットワークを介して各モジュール間で相互にデータ交換を行うネットワークシステムが知られている。
【００２１】
ネットワークシステムにおけるデータ交換には、常時交換されるデータと、必要に応じて交換されるデータがあるが、上記産業用分野のネットワークシステムでは、前者に制御用のデータを、後者に状態監視の支援データ等を割り当てることが多い。制御用データは、それをもとに機械を動かしているので、定周期性が強く求められる。制御用データ交換のタイミングが一定でないと、機械の動きが滑らかでなくなり、最悪の場合に異常な動作を起こしかねないためである。尚、制御用データはＣＰＵモジュール−Ｉ／Ｏモジュール間、支援データ等はＣＰＵモジュール間で交換されるデータである。
【００２２】
このため、上記産業用分野のネットワークシステムにおけるデータ交換では、通信サイクルを、制御用データ交換用の時間帯と支援データ交換用の時間帯とに固定的に分けて、制御用データの定周期性を確保する必要がある。ここで、支援データ交換処理は、制御用データ交換処理とは異なり、支援データの量や該支援データによって要求される処理の内容次第で、支援データ交換処理時間が変わり、非常に時間が掛かる場合もある。この為、支援データ交換用時間帯において支援データ交換を行う局数が多いと、支援データ交換用時間帯内で支援データの交換を終了させることができず、支援データ交換用時間帯をはみ出してしまい、制御用データ交換用時間帯に影響を与え、定周期性を崩してしまう可能性がある。それ故、何らかの方法でデータ交換用時間帯内で送信する局数を制限する（例えば１局のみとする）必要がある。
【００２３】
しかし、前述のEthernet（登録商標）では時間によって区分するという概念が無いのでそもそも局数を制限する機構は無く、トークンリングやトークンパッシングや上記特許文献２の発明の調停方法も同様である。このため、支援データの交換が一時的に集中した場合に、制御データの交換の周期が乱れてしまう。さらに、Ethernet（登録商標）やIEEE1394ではバス使用権を公平に分配する仕組みは無い。このため、複数の支援ツールをネットワークにつなげたときに、特定の機器が高い優先でのデータ交換をし、他の機器のデータ交換を妨げてしまうことがある。トークンリングやトークンパッシングでは公平に分配することはできるが、定周期性を守ることができない。
【００２４】
一方、特許文献１記載の発明では、時間帯内での送信局数の制限をすることはできるが、送信局数の制限を集中的に行う専用局が必要で、この専用局との間でトークンを毎回交換する必要がある。
【００２５】
また、特許文献２の発明の調停方法は、適用対象システムがパラレルバスに限定されてしまい、取り扱いが簡単で安価なシリアルバスに適用することができない。すなわち、まず、特許文献２の発明は、概略的には、ベースボード上の32bitパラレルバスを、コネクタ削減の為に8bitパラレル化し、それに「送信機会を均等に分配」の機能をつけたものである。特許文献２の発明では、バス使用権要求は常時(ベースボード上のモジュールが勝手に)行っており、そのバス使用権要求の取り込みをパラレルで行っている。その為に、特許文献２の発明では、各ノードと共通バス（データ線）以外に、調停ノードと調停バスと調停信号線が設けられている。上記特許文献２の発明をシリアルネットワークに適用しようとした場合、パラレルでは使えた“データ線以外の制御線”（調停バスと調停信号線）は使えないので、特許文献２の手法を単純にシリアルバスに適用することはできない。また、上記のように制御データ交換の定周期性を守らなければならない。
【００２６】
上述したように、上記制御データ交換の定周期性を守る必要があるシステムであってシリアルバスを用いたシステムにおいて、支援データ交換用時間帯内での送信局数の制限を、専用局を必要とせずに実現し、更にこの送信局数の制限の仕方において、バス使用権が公平に分配されるようにすることが望まれている。
【００２７】
本発明の課題は、時分割多重アクセス方式のネットワークシステムにおいて、各ノード（局）の送信タイミングが重ならないようにすることに係わり、特に同期化フレームの消失やマスタ局の脱落等があっても問題なく動作でき、あるいはマスタ局の交代があってもシステムの時間基準を引き継ぐことができる送信タイミング決定方法等を提供し、また制御データ交換の定周期性を守る必要があるシステムにおいて、支援データ交換用時間帯内での送信局数の制限を、シリアルバスで専用局を必要とせずに実現し、更にこの送信局数の制限の仕方において、バス使用権が公平に分配されるようにできるバス使用権調停方法等を提供することである。
【課題を解決するための手段】
【００２８】
本発明の送信タイミング決定方法は、一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うシステムにおける送信タイミング決定方法であって、前記マスタ局と各スレーブ局は、各々、通信サイクルを管理するための第１のタイマを有し、前記マスタ局は自局の第１のタイマに基づくサイクルの切れ目に同期化フレームを送信し、前記各スレーブ局は、受信した前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させ、前記各局は、各々、自局の第１のタイマに基づいて自局のデータ送信タイミングを決定する。
【００２９】
上記のように、各局は、各々、マスタ局の第１のタイマと同期させた自局の第１のタイマに基づいて自局のデータ送信タイミングを決定するので、各局個別に送信タイミングを決定してもその基準がばらつくことなく、よって送信タイミングが重なることはなく、また同期化フレームの遅延、消失等があっても関係なくなる。
【００３０】
上記送信タイミング決定方法において、例えば、前記各スレーブ局は、前記同期化フレームを受信すると、前記自局の第１のタイマを停止し、前記サイクルの周期から前記同期化フレームの遅延分を引いた値を該第１のタイマに再設定して再起動することで、前記同期化フレームの遅延を補償して自局の第１のタイマをマスタ局の第１のタイマと同期化させることを実現し、各局は各々第２のタイマを有し、該第２のタイマの設定値は相互に異なる値とし、前記自局の第１のタイマのタイムアップで該第２のタイマを起動して、該第２のタイマのタイムアップ時点を前記自局のデータ送信タイミングとするようにしてもよい。
【００３１】
また、前記システムが、マスタ局がダウン／脱落した場合、任意のスレーブ局がマスタ局を引き継ぐシステムである場合、該引き継いだ新マスタ局が前記旧マスタの第１のタイマのタイミングを継続したままシステム全体の通信サイクルを管理することで、マスタ局の交代があってもシステムの時間基準を引き継ぐことができる。
【００３２】
また、本発明のシリアルバス使用権の分散調停方法は、共通シリアルバスを使って複数のノードが通信を行うネットワークシステムの通信サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分け、前記共用時間帯におけるデータ送信を必要とするノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングでバス使用権の要求をブロードキャストで送信し、各ノードは各々前記バス使用権の要求を受信し、共用時間帯において各ノードは受信したバス使用権要求と予め記憶されている固定的な優先順位データに基づいて各々独立してバス使用権の調停を行い、調停に勝ったノードが、前記共用時間帯においてデータ送信する。
【００３３】
前記ネットワークシステムは、例えば、産業用途のネットワークシステムであり、  前記各ノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングで制御データ交換を行い、該制御データ交換の定周期性が求められるシステムである。
【００３４】
上述したように従来技術のパラレルバスシステムにおけるバス使用権調整を単純にシリアルバスに適用することはできないし、また従来では送信局数制限の為に専用局を必要としていたが、上記本手法では、専用時間帯において自ノードに割り当てられた送信タイミングでバス使用権の要求をブロードキャストで送信し、これより各局毎にバス使用権調停を行うので、シリアルバスシステムで専用局を必要とせずにバス使用権調停（共用時間帯における送信局数制限）を行うことができる。特に、産業用途のネットワークシステムの場合、専用時間帯における制御データ交換の定周期性が強く求められるので、共用時間帯における送信局数を制限することで、この定周期性を維持することができる。
【００３５】
また、上記シリアルバス使用権の分散調停方法において、例えば、前記各ノードは、自ノードが前記バス使用権を要求した場合、自ノードも含めて前記バス使用権を要求した各ノードの優先順位を、前記固定的な優先順位データに基づいて求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定し、自ノードが前記共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間前記バス使用権要求の送信を抑制するようにしてもよい。
【００３６】
これによって、バス使用権が公平に分配される。
また、上記送信タイミング決定方法に上記シリアルバス使用権の分散調停方法を適用させてもよい。この場合、制御データ交換タイミングが重なることなく、同期化フレームが消失等しても問題なく動作できるので、特にノイズ等が多い環境で使用されることが多い産業用途のネットワークシステムにおいて顕著な効果を奏する。
【発明の効果】
【００３７】
時分割多重アクセス方式のネットワークシステムにおいて、各ノード（局）の送信タイミングが重ならないようにすることに係わり、特に同期化フレームの消失やマスタ局の脱落等があっても問題なく動作でき、あるいはマスタ局の交代があってもシステムの時間基準を引き継ぐことができる送信タイミング決定方法等を提供し、また制御データ交換の定周期性を守る必要があるシステムにおいて、支援データ交換用時間帯内での送信局数の制限を、シリアルバスで専用局を必要とせずに実現し、更にこの送信局数の制限の仕方において、バス使用権が公平に分配されるようにできる。
【発明を実施するための最良の形態】
【００３８】
以下、図面を参照して、本発明の実施の形態について説明する。
図１に、本例によるネットワークシステム全体の概略構成図を示す。
図示のネットワークシステムは、上述してあるＴＤＭＡ方式により各ノード間でデータ交換を行うシステムであり、特にＰＬＣ（プログラマブルコントローラ）等の産業用途制御システムである。
【００３９】
図示の例では、シリアルバス５に複数のノード１，２，３，４が接続されているネットワークシステムを示す。ここでは、ノード１がマスタ局、他のノード２，３，４はスレーブ局であるものとし、以下、マスタ局１、スレーブ局２，３，４と記すものとする。
【００４０】
尚、図示のネットワークは一例であり、本発明は、上記リング型のネットワークにもバス型のネットワークにも適用可能である。
図２は、上記各ノードのハードウェア構成図である。
【００４１】
図２に示すノード１０は、ＣＰＵ１１、プログラムメモリ部１２、メモリ部１３、伝送制御部１４、サイクルタイマ１５、センドタイマ１６等を有する。メモリ部１３は、データメモリ部１３ａ、送信バッファ１３ｂ、受信バッファ１３ｃ等の記憶領域を有する。
【００４２】
ＣＰＵ１１は、プログラムメモリ部１２に格納されているプログラム、データメモリ部１３ａに格納されている各種データを用いて、後述するフローチャート図（図５、図６、図８〜図１０等のフローチャート）に示す処理を実行する。すなわち、特に図示しないが、ノード１０は、この様な処理実行により得られる各種機能部を有するものである。例えば、特に図示しないが、ノード１０は、マスタ局の場合、自局のサイクルタイマ１５に基づく通信サイクルの切れ目に同期化フレームを送信する第１の同期化部を有し、  スレーブ局の場合、受信した同期化フレームの遅延を補償して自局のサイクルタイマ１５をマスタ局のサイクルタイマ１５と同期化させる第２の同期化部を有し、更にマスタ／スレーブとも、自局のサイクルタイマ１５に基づいて自局のデータ送信タイミングを決定する送信タイミング決定部を有する。
【００４３】
あるいは、特に図示しないが、ノード１０は、予め登録される固定的な優先順位データを記憶する優先順位データ記憶部と、自ノードが共用時間帯におけるバス使用権を要求した場合、自ノードも含めてバス使用権を要求した各ノードの優先順位を優先順位データより求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定する調停部と、自ノードが調停に勝利して共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間バス使用権要求の送信を抑制するバス使用抑制部とを有する。
【００４４】
詳しくは以下に詳細に説明する。
尚、ノード１０はコンピュータの一種であると定義できる。
尚、送信するデータは、一旦送信バッファ１３ｂに格納された後、伝送制御部１４によってシリアルバス５上に流される。また、伝送制御部１４によって受信したデータは、一旦受信バッファ１３ｃに格納された後、ＣＰＵ１１によって処理される。
【００４５】
そして、本例では、全てのノードが（マスタ局だけでなく各スレーブ局も）サイクルタイマ１５とセンドタイマ１６を有して、各々動作させている。従来では、スレーブ局はサイクルタイマ１５を有しておらず（あるいは有していても動作させていない。もしマスタ局になったら動作させる）、同期化フレーム受信をトリガにしてセンドタイマを起動していた。
【００４６】
一方、本例の場合、全てのスレーブ局が各々サイクルタイマを保有し、これをマスタ局のサイクルタイマ１５と同期させて動作させる。そして、各局毎に自局のサイクルタイマ１５を元にセンドタイマを起動してデータ送信タイミングを求める。すなわち、自局のサイクルタイマ１５のタイムアップをトリガとしてセンドタイマ１６を起動する。センドタイマ１６の設定値を各局毎に互いに重複しないように設定する点（例えば上記の通り局番に基づいて設定）は、従来と同じである。
【００４７】
上記構成のシステムに基づいて、以下、まず、第１の実施例について説明する。
第１の実施例は、上記同期化フレーム受信までの遅延による問題、同期化フレームの消失による問題、マスタノードのダウン／脱落等による問題を解決するものである。
【００４８】
上記のように、本例のシステムでは、センドタイマ１６起動を、従来のように同期化フレーム受信をトリガにして行うのではなく、マスタ局のサイクルタイマ１５と同期させて動作させている自局のサイクルタイマ１５に基づいて行うので、同期化フレームの受信までに掛かる時間が長くても影響されず、また同期化フレームが途中で消失したサイクルにおいても従来のようにそのサイクルにおける送信ができなくなってしまうという問題が生じることはない。また、ＤｅｖｅｉｃｅＮｅｔプロトコルのように各局ばらばらでタイマを動作させるのではなく、マスタ局のサイクルタイマ１５と同期させた自局のサイクルタイマ１５により定められる通信サイクルに基づいてセンドタイマ１６を動作させているので（センドタイマ１６は上記の通り各局で相互に異なる値を設定している）、自局の送信タイミングが他局の送信タイミングと重なることはない。
【００４９】
また、マスタ局のダウンや脱落等により任意のスレーブ局が新たなマスタ局となった場合でも、このスレーブ局（新マスタ局）はマスタ機能の引継ぎの際には同期化されたサイクルタイマ１５のタイミングを継続して通信サイクルも継続する。したがって、従来のように周期ずれが発生するという問題は生じることはない。
【００５０】
以下、まず、各スレーブ局のサイクルタイマ１５を、マスタ局のサイクルタイマ１５と同期させて動作させる方法について説明する。
まず、任意のサイクルにおいて、マスタ局のサイクルタイマ１５とスレーブ局のサイクルタイマ１５が同じタイミングでタイムアップするように調整する。
【００５１】
その為に、本例では、まず、スレーブ局においても周期Ｔをサイクルタイマ１５の設定値として設定して起動する。この起動タイミングはマスタ局のサイクルタイマ１５の起動タイミングからずれているかもしれないが、その後、スレーブ局は、同期化フレームを受信したら、“周期Ｔから遅延時間を引いた時間”（Ｔ−遅延）をサイクルタイマに再セットして再起動する。同時刻のマスタ局では、周期Ｔをセットしたサイクルタイマ１５が遅延時間分経過して、タイムアップまでの残り時間が“周期から遅延時間を引いた時間”になっている。すると、スレーブ局のサイクルタイマ１５はマスタ局のサイクルタイマ１５とほぼ同時にタイムアップすることになる。このように、受信した同期化フレームの遅延を補償して自局のサイクルタイマをマスタ局のサイクルタイマと同期化させることができる。
【００５２】
このようにほぼ同時にタイムアップするので、全ての局のセンドタイマ１６の起動もほぼ同時となり、各局は、正しい（各々異なる）時間領域（タイムスロット）に自局送信データを送信することができる。尚、当然、マスタ局も各スレーブ局も、自局のサイクルタイマ１５がタイムアップしたら、直ちに周期Ｔをセットして起動する。
【００５３】
また、上記の通り各スレーブ局毎に各々自局のサイクルタイマ１５を動作させており、これは上記の通りマスタ局のサイクルタイマ１５と同期させている。よって、たとえ後に同期化フレームを受信できないサイクルがあっても、自局のサイクルタイマ１５に基づいて、問題なくデータ送信を行える。
【００５４】
尚、上記「同期化フレームを受信したら“周期Ｔから遅延時間を引いた時間”（Ｔ−遅延）をサイクルタイマに再セットして再起動する」処理は、全てのサイクルで逐一行う必要はない（行ってもよいが）。但し、一度同期をとった後でも、各局毎にそのクロックの精度によるわずかな誤差は生じるので、ある程度時間が経過するとタイミングがずれてくるので、定期的に上記処理を行ったほうがよい。
【００５５】
上記サイクルタイマの同期をとる動作について図３に一例を示す。
図３にマスタ局、スレーブ局のサイクルタイマの動作例を示す。同図において、図上横軸は時間、縦軸はタイマのカウント値を示す。
【００５６】
同図においてマスタ局１の動作は、従来とほぼ同じである。すなわち、サイクルタイマ１５を定周期（Ｔ）で動作させ、サイクルタイマ１５がタイムアップする毎に同期化フレームを送信する。但し、従来と異なり、全てのサイクルで同期化フレームを送信する必要はない。
【００５７】
ここで、上述してあるように、同期化フレームの送信開始からスレーブ局で受信完了するまでには遅延がある。この遅延は、主に同期化フレームのビット長と伝送速度から求まる伝送遅延であり、ほぼ固定とみなせる。つまり、遅延の大きさは同期化フレームのビット長と伝送速度に依存する為、各システム毎に異なるが、逆に言えば各システム毎にそのシステムにおいては遅延時間はほぼ固定的となる。よって、システムによっては、同期化フレームのビット長が長い場合や、伝送速度が遅い場合もあるが、これによって遅延が大きくなってもそれがほぼ固定的であれば、そのシステム設計者等が予め遅延の大きさを予測（又は実測）することができるので、上述した再設定値（Ｔ−遅延）も予め求めて登録しておくことができる。
【００５８】
これより、スレーブ局は、自局のサイクルタイマ１５のタイムアップ毎に周期Ｔをセットしてサイクルタイマを再起動し、その後、同期化フレームを受信すると、上記予め登録されている「Ｔ−遅延量」をサイクルタイマ１５に再設定して再起動する。このようにすれば、自局のサイクルタイマ１５のタイムアップのタイミングを、マスタ局のサイクルタイマ１５のタイムアップとほぼ同時になるように補償できる。
【００５９】
そして、もし次のサイクルで同期化フレームが届かない場合（図３の図上右側）でも、途中のサイクルタイマ再設定処理が無くなるだけであり、各スレーブ局のサイクルタイマ１５はマスタ局のサイクルタイマ１５とほぼ同時にタイムアップする。これは前のサイクルでマスタ局とスレーブ局のタイミングが補償されている（サイクルタイマ１５が同期化されている）からである。
【００６０】
このように、万一同期化フレームが途絶えても、マスタ局とスレーブ局のサイクルタイマは同期しており、各局毎に自局のサイクルタイマ１５に基づいてセンドタイマ１６を起動すれば、送信タイミングは正しいものとなる（他の局と送信タイミングが重なったりしない）。よって、従来のようにデータ送信が行えなくなることはない。
【００６１】
ここで、センドタイマ１６の動作について説明する。
センドタイマ１６の設定値の設定方法は、従来と同じであってよい（異なるのは起動のトリガである）。すなわち、上記の通り、システムでユニークである局番をもとにセンドタイマ１６の設定値を決定しておくことで、各局は、センドタイマ１６の起動タイミングを誤らない限り（全ての局でほぼ同時に起動できれば）、他局の送信するフレームとの衝突が起こらないタイミングでデータを送信できる。そして、本例では、従来のように同期化フレーム受信をトリガとしてセンドタイマ１６を起動するのではなく、各局毎に自局のサイクルタイマ１６のタイムアップをトリガとしてセンドタイマ１６を起動する。
【００６２】
上記の通り、サイクルタイマを同期させているので、全ての局（マスタ局と各スレーブ局）のサイクルタイマのタイムアップのタイミングはほぼ同時であり、そこを基点にして各々異なる設定値のセンドタイマ１６を起動することで、相互に異なる送信タイミングで送信するので、他の局の送信するフレームと衝突することはない。さらに、マスタ局からの同期化フレームをスレーブ局が受け損なってもサイクルタイマ１５は同期したままなので、そのタイムアップを基点にして送信タイミングを求めているのであるから、問題なくデータ送信を行える。このように、本例では、同期化フレームの受信の有無にかかわらず、スレーブ局で自局のサイクルタイマをもとに独自に正しい送信タイミングを求めてデータを送信することができる。同期化フレームの受信の有無は、スレーブがデータを送信すること自体にはかかわり無いからである。
【００６３】
また、スレーブ局だけでなく、マスタ局もセンドタイマ１６を有し、これをもとにデータを送信している。その様子を図４に示す。
図４に示す様に、マスタ局も各スレーブ局も各々自局のサイクルタイマ１６のタイムアップ毎にセンドタイマ１６を起動し、センドタイマ１６のタイムアップにより自局のデータの送信を行っている。既に述べている通り、各センドタイマ１６の設定値は、基点（起動タイミング）がほぼ同時であれば各々異なるタイミングでタイムアップするように設定されているので、他の局の送信するフレームと衝突することはない。
【００６４】
また、上述してあるように、従来より、マスタ局が脱落等した場合に、任意のスレーブ局が新たなマスタ局となるシステムがある。
このシステムに上記第１の実施例を適用した場合、マスタ局が脱落した後、任意のスレーブ局が新たなマスタ局となるまでの間、同期化フレームがしばらく来なくても、各スレーブ局で使用しているクロックの水晶精度を原因としたわずかな誤差が生じるだけであり、サイクルタイマはほぼ同期している状態のままである。
【００６５】
マスタ局は自局のサイクルタイマ１５を使ってシステム全体の通信サイクルを管理している。一方、前述の通りマスタ局とスレーブ局のサイクルタイマは同期させることができ、更にマスタ局がダウンや脱落をして任意のスレーブ局がマスタ局を引き継ぐ処理に多少の時間が掛かっても、上記の通り新マスタ局のサイクルタイマは旧マスタ局のサイクルタイマとほぼ同期している状態のままであるので、新マスタ局はこの旧マスタ局のサイクルタイマに同期しているサイクルタイマを使って引き続きシステム全体のサイクルを管理すれば、システム全体のタイミングも継続することができる。
【００６６】
上記第１の実施例において、マスタ局、各スレーブ局は、具体的には、例えば図５、図６に示す処理を行う(マスタ局とスレーブ局の処理の違いは、同期化フレームに係わる処理のみ)。
【００６７】
図５は、マスタ局の処理フローチャート図であり、図５（ａ）はサイクルタイマ割込処理、図５（ｂ）はセンドタイマ割込処理、図５（ｃ）はデータ受信割込処理を示す。
図５（ａ）は、マスタ局においてサイクルタイマ１５のタイムアップによって生じる割り込み処理であるサイクルタイマ割込処理のフローチャート図である。
【００６８】
図５（ａ）において、マスタ局は、サイクルタイマ１５がタイムアップすると、サイクルタイマの停止（ステップＳ１１）、サイクルタイマに周期Ｔを設定して起動（ステップＳ１２，Ｓ１３）、同期化フレームを送信（ステップＳ１４）、センドタイマ１６に送信タイミングを設定して起動（ステップＳ１５，Ｓ１６）の処理を行う。尚、処理順序は必ずしもこの順番でなくてもよく、また並行して処理を行ってもよい。また、必ずしもサイクルタイマ１５を逐一停止して周期Ｔを再設定する必要性はなく、上記処理は単なる一例を示しているに過ぎない。
【００６９】
図５（ｂ）は、センドタイマ１６のタイムアップによって生じる割り込み処理であるセンドタイマ割込処理のフローチャート図である。
図５（ｂ）において、マスタ局は、上記ステップＳ１６で起動したセンドタイマ１６がタイムアップすると、センドタイマを停止し（ステップＳ２１）、データの送信を行う（ステップＳ２２）。
【００７０】
また、他の局からのデータを受信したら、図５（ｃ）に示す通り、受信したデータの取り込みを行う（ステップＳ３１）。
図６（ａ）は、スレーブ局においてサイクルタイマ１５のタイムアップによって生じる割り込み処理であるサイクルタイマ割込処理のフローチャート図である。
【００７１】
図示のステップＳ４１〜Ｓ４５の処理は、上記ステップＳ１１〜Ｓ１６の処理とほぼ同じであるが、異なる点は、ステップＳ１４の同期化フレーム送信処理は行わないことである。
【００７２】
図６（ｂ）は、同期化フレーム受信によって生じる割り込み処理である同期化フレーム受信割込処理のフローチャート図である。
図６（ｂ）において、スレーブ局は、同期化フレームを受信すると、サイクルタイマ１５を停止し（ステップＳ５１）、「予め設定される同期化フレーム受信までの想定時間（遅延時間）を周期Ｔから引いた時間（Ｔ−遅延）」をサイクルタイマ１５に再設定して再起動する（ステップＳ５２，Ｓ５３）。
【００７３】
図６（ｃ）のセンドタイマ割込処理、図６（ｄ）のデータ受信割込処理は、上記図５（ｂ）、図５（ｃ）の処理と同じであり、説明は省略する。
上述した第１の実施例によるノード間の同期方法を用いることにより、下記の効果が得られる。
（１）従来の様に同期化フレームの受信を基準にスレーブ局のデータ送信タイミングを決めている場合、マスタ局とスレーブ局とでタイミングのずれが生じる。特に低速なネットワークで長い同期化フレームを使う場合にそのずれが大きい。
【００７４】
ＴＤＭＡ方式でこのずれが大きいと、ユニークな局番を元に重ならないように決めている送信タイミングが、重なってしまう場合が出てくる(マスタ局のものと任意のスレーブ局のものとがタイミングが重なる)。同期化フレームを送信するマスタ局の局番が０番であれば、マスタ局が最初にデータ送信を行うので、スレーブ局と送信タイミングが重なる可能性は低くなるが、可能性がなくなるわけではなく、また、マスタ局の局番を０番以外に設定できなくなる。
【００７５】
第１の実施例の送信タイミング決定方法を用いれば、同期化フレームのビット長が長い場合や、伝送速度が遅い場合でも、同期化フレームの受信を基準にしていないので関係なく、間接的にマスタ局と同期化させた自局のサイクルタイマに基づいて送信タイミングを決定するので、局同士の送信タイミングが重なることはなくなる。また、マスタ局に０番以外の局番を安全に割り当てることができ、システム設計の自由度を上げることができる。
（２）ネットワークである以上、ノイズ等で同期化フレームの消失は起こりうる。従来の様に同期化フレーム受信を基点にスレーブ局のデータ送信タイミングを決めると、同期化フレームが受信できないと当然データ送信タイミングが求まらず、データ送信を行えない。これでデータ送信を行えないのは、スレーブ局全てになる。
【００７６】
しかし、第１の実施例のように各スレーブ局で各々独自にデータ送信タイミングを作り出していれば、同期化フレームが受信できなくてもデータ送信を行える（しかも同期化させているので、ＤｅｖｅｉｃｅＮｅｔのような問題は生じない）。すると、ノイズが多くて同期化フレームが消失しやすい環境でも、スレーブ局は正しいタイミングでデータ送信を行える。ノイズが多い為に送信データのいくつかは消失するかもしれないが、全てのデータが消失しない限り、従来よりはデータ交換が多くできる。（従来はスレーブ全局のデータは送信されないのでデータ交換は０だが、本実施例１ならば消失から免れたデータ分のデータ交換はできる）。
【００７７】
また、マスタ局がダウンしたり脱落した場合に、スレーブ局がマスタ局の機能を引き継ぐまでの数サイクルも、従来ならば同期化フレームがないのでデータ送信できないが、本実施例１ならば途切れることなくデータ送信できる。つまり、マスタ局の交代といったシステム的に大きな変化があっても、途切れることのないデータ交換によってアプリケーションにそれを意識させずに済み、アプリケーション作成を容易にする。
（３）更に、マスタ局がダウンしたり脱落した場合にスレーブ局がマスタ局の機能を引き継ぐシステムでは、従来手法ではそれまでのマスタ局の基準時刻と同期さえしていなかったスレーブ局が新しいマスタ局となって新たに基準時刻を開始することになる。これではシステムとして基準時刻が全く異なることになり、各スレーブ局の送信タイミングもそれまでと異なることになり、周期ずれが生じてしまう。
【００７８】
しかし、本実施例１の様にマスタ局とスレーブ局のサイクルタイマが常に同期をとっていれば、スレーブ局がマスタ局になってもそのサイクルタイマはそれまでのマスタ局のサイクルタイマと同期しているので（水晶発振器の精度によるわずかな誤差は生じるかもしれないが）、システムとして時間基準を引き継いだことになる。
【００７９】
このように、マスタ局の交代といったシステム的に大きな変化があっても、システムの時間基準を引き継ぐことができ、データ送信が同じタイミングで継続されるので、システムの安定性や信頼性が増す。また、引継ぎも自動的に行われるので、従来では難しかった切換時のタイミング合わせが不要になり、二重化システムの設計が容易になる。
【００８０】
さらに、ネットワークからの周期的なデータリフレッシュを前提とする機器(たとえば受信したデータをそのまま出力するデジタル出力)や、定期的にデータをサンプルするサンプルトレースなどの機能を実現するのに、タイミング変化を起因とした問題がなくなる。
【００８１】
次に、以下、第２の実施例について説明する。
第２の実施例は、上記シリアルバスを用いるネットワークシステムで専用局を必要とせずに支援データ交換用の時間帯における送信局数を制限することにより制御データの定周期性を守るようにするという課題を解決するものである。尚、専用局とは上記マスタ局１のことではなく、上記特許文献１の“送信局数の制限を集中的に行う専用局”のことである。
【００８２】
第２の実施例においても、各ノード（マスタ局、スレーブ局）のハードウェア構成は、上記第１の実施例と同じであり、上記図２で説明した通りである。すなわち、各スレーブ局も各々サイクルタイマ１５を有して、マスタ局のサイクルタイマ１５と同期させて動作させている。これにより、マスタ局とスレーブ局のサイクルタイマはほぼ同時にタイムアップし、これに基づいて各局のセンドタイマ１６を動作させることで、同期化フレームの受信完了までに掛かる時間に影響されず、同期化フレームがスレーブ局に届かない場合でも問題なく動作でき、マスタ局が脱落等した場合でも問題なく継続できるという特徴は第１の実施例と共通する。但し、ここでは、このように第１の実施例を前提にした例を説明するが、第２の実施例は必ずしも第１の実施例を前提にする必要はない。
【００８３】
第２の実施例では、例えば図７に示すように、概略的には、まず、周期Ｔの１サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分けている。そして、各ノードは、専用時間帯では自ノードに割り当てられる送信タイミング（タイムスロット）において、制御データを送信すると共にもし送信すべき支援データ（メッセージ）がある場合には他の全ての局に共用時間帯におけるバス使用権要求を出す。そして、もしバス使用権調停に勝利した場合には、共用時間帯においてメッセージを送信する。
【００８４】
図７において、専用時間帯における各ノード（マスタ局、各スレーブ局）の動作は、基本的には第１の実施例の手法を利用するが、異なる点は、データ送信を行うだけでなく必要に応じてバス使用権要求を送信する点と、センドタイマ１６がタイムアップしたら直ちに各ノード毎に予め設定される設定値を再設定して再起動する点である。この設定値は、タイムアップ時点から共用時間帯の始めまでの時間である。つまり、センドタイマ１６の２回目のタイムアップによって、共用時間帯になったことが分かる。専用時間帯の長さは予め決まっているので、各局毎にセンドタイマ１６の１回目のタイムアップから共用時間帯の始め（専用時間帯の終わり）までの時間も、予めユーザ等が求めて設定することができる。
【００８５】
例えば周期Ｔが20msであり、これを前半の10msを専用時間帯、後半の10msを共用時間帯に割り当て、専用時間帯におい各局毎のデータ送信に割り当てる時間（TDMA幅；タイムスロット）が1msだとする。図１のシステムを例にし、スレーブ局２，３，４、マスタ局１の順にデータを送信する場合、0〜1msは同期化フレーム、1〜2msはスレーブ局２のデータ送信、2〜3msはスレーブ局３のデータ送信、3〜4msはスレーブ局４のデータ送信、4〜5msはマスタ局１のデータ送信の為に割り当てられる時間となる。例えばスレーブ局４を例にすると、自データの送信タイミングは3msからであるので、センドタイマ１６の設定値は3msである。よって、センドタイマ１６の１回目のタイムアップ時に再設定する値は、7msとなる（専用時間帯の10msから3msを引けば、7msとなる）。
【００８６】
尚、別途３つ目のタイマを用意し、このタイマに専用時間帯の長さ（上記の例では10ms）を設定して、サイクルタイマ１５のタイムアップ毎に起動するようにしてもよいが、この場合、タイマが１つ余分に必要になるので、ここではセンドタイマ１６を利用している。
【００８７】
また、上記バス使用権要求はブロードキャストで行い、全局でその要求を受信して要求があったことを認識する。どの局からの要求であるのかを判断するには、要求フレームに要求元の局番を付加しても良いし、受信時のセンドタイマ１６の値から逆算(ＴＤＭＡなので送信タイミングと局番は１対１)しても良い。
【００８８】
そして、センドタイマ１６が２回目のタイムアップをしたらそこが共用時間帯の始めなので、全ての局でそれぞれ、そのサイクルの専用時間帯において受信した「自局を含む各局のバス使用権要求」に基づいて優先判定を行い、もし自局が最優先ならば調停に勝利したものとして（共用時間帯でのバス使用権を得たものとして）メッセージを送信する。この判定は基本的には固定優先で行う。つまり、予めユーザ等が各局の優先順位を決めて、全ての局がこの優先順位データを格納している。例えば、図１のシステム例において、優先順位が、マスタ局１＞スレーブ局２＞スレーブ局３＞スレーブ局４（マスタ局１が最も優先順位が高い）となっているものとする。このように全ての局で予め決められた固定的な優先順位データを持っていることで、専用時間帯において受信した「自局を含む各局のバス使用権要求」に基づいて、各局で独自に自局がバス使用権を得ることができるか否かを判定でき（各局毎に独自に調停を行う（分散調停を行う）；つまりバス使用権調停（局数の制限）の為の専用局を必要としない）、他局やマスタ局との間で信号のやりとりを別途行う必要無い。
【００８９】
ただし、このままでは、バス使用権の要求局が多いときは低位優先の局のバス使用権の割り当てが少なくなり、公平な分配を期待できない。例えば上記例では、マスタ局１がバス使用権要求を出し続けると、マスタ局１ばかりがバス使用権を獲得し続け、他の局は獲得できず、なかなかメッセージを送信できないことになる。
【００９０】
そこで、ここではバス使用権の要求の送信を抑制する手法を導入する。
上記の通り、一旦バス使用権要求を出されたら、後は各局で固定的な優先順位に基づいて判定されてしまう。したがって、バス使用権要求の送信自体を抑制すれば良い。抑制の方針としては、一度バス使用権を得てメッセージを送信した局は、その後は他に要求を出している局が無くなるまで要求の送信を抑制し、無くなれば抑制を止める。
【００９１】
その具体的な手法としては、各局内のメモリに送信済みフラグを設け、メッセージ送信したら送信済みフラグをセットする。そしてバス使用権要求を送信する際に送信済みフラグをチェックし、セットされていればそのサイクルでのバス使用権要求の送信を止める。バス使用権要求を送信しなければ調停で勝てないので、その局はメッセージを送信できない。尚、当然、送信済みフラグがセットされていなければそのサイクルでバス使用権要求の送信を行う。
【００９２】
送信済みフラグのリセットは、他に要求を出している局が無くなるのを検出して行う。具体的には、調停の際に自局も含めてバス使用権の要求を送信している局の数を計数して、それが０もしくは１の時に送信済みフラグをリセットする。要求局数が０ならば誰も要求していないことは明らかである。但し、リセット条件を０だけにすると、要求局数が０のサイクルは当然どの局もメッセージを送信しないので、もしメッセージがあるが送信済みフラグがセットされている為に要求を出さなかった局があった場合、１サイクル分無駄が生じることになる。この為、ここでは要求局数が１の場合もリセット条件に加えている。尚、要求局数が１の場合とは、例えば２以上の局がバス使用権を要求し、優先順位が高い局から順にメッセージを送信し（その間、残りの局は順番待ちをしていることになる）、順番待ちをしていた局が順次少なくなっていき最後の局になった場合等が考えられ、この場合、次のサイクルでは要求局数が０になる可能性が高いので、もしメッセージがあるが送信済みフラグがセットされている為に要求を出さなかった局の場合、現サイクルでフラグをリセットすることで、次のサイクルでメッセージを送信できるので、無駄が生じない。
【００９３】
尚、ここでは要求局数が２以上ならば送信済みフラグのリセットは行わないが、この例に限らない。
上記第２の実施例において、マスタ局、各スレーブ局は、具体的には、例えば図８〜図１０に示す処理を行う(マスタ局とスレーブ局の処理の違いは、同期化フレームに係わる処理のみ)。
【００９４】
図８は、マスタ局の処理フローチャート図であり、図８（ａ）はサイクルタイマ割込処理、図８（ｂ）はデータ受信割込処理を示す。
図８（ａ）のステップＳ８１〜Ｓ８６の処理は、図５（ａ）のステップＳ１１〜Ｓ１６の処理と同じあるので、説明は省略する。
【００９５】
図８（ｂ）の処理は、受信データの取り込みだけでなく（ステップＳ９１）、もしバス使用権要求があった場合にはこれを取り込む処理（ステップＳ９２）が行われる点が、図５（ｃ）の処理と異なる。
【００９６】
図９は、スレーブ局の処理であり、図９（ａ）はサイクルタイマ割込処理、図９（ｂ）は同期化フレーム受信割込処理、図９（ｃ）はデータ受信割込処理である。
図９（ａ）のステップＳ１０１〜Ｓ１０５の処理、図９（ｂ）のステップＳ１１１〜Ｓ１１３の処理は、それぞれ、図６（ａ）のステップＳ４１〜Ｓ４５の処理、図６（ｂ）のステップＳ５１〜Ｓ５３の処理と同じであるので、ここでの説明は省略する。
【００９７】
図９（ｃ）の処理は、受信データの取り込みだけでなく（ステップＳ１２１）、もしバス使用権要求があった場合にはこれを取り込む処理（ステップＳ１２２）が行われる点が、図６（ｄ）の処理と異なる。
【００９８】
図１０は、センドタイマ１６のタイムアップによる割込み処理のフローチャート図であり、これはマスタ局もスレーブ局も同じ処理となる。
図１０において、各ノード（マスタ局、各スレーブ局）は、それぞれ、自局のセンドタイマ１６がタイムアップすると、まず、第２の実施例では上記の通り、１サイクル内にセンドタイマ１６は２回タイムアップするので、これが１回目か２回目かを判定する（ステップＳ１３１）。判定方法としては、例えばセンドタイマ１６のタイムアップ時に当該図１０の処理後にセットされ、サイクルタイマ１５のタイムアップでリセットされるフラグを用意して、これを参照すればよい。これによって、１回目のタイムアップ時にはフラグはリセットされており、２回目はセットされているので、これによりステップＳ１３１の判定が行える。
【００９９】
上記ステップＳ１３１の判定により、もし１回目であればステップＳ１３２〜Ｓ１３８の処理を実行し、もし２回目であればステップＳ１３９〜Ｓ１４５の処理を実行する。
センドタイマ１６の１回目のタイムアップの際には、センドタイマを停止し（ステップＳ１３２）、そこから共用時間帯の始まりまでの時間（上記の通り予め各局毎に求められて記憶されている）をセンドタイマ１６に再設定して再起動し（ステップＳ１３３，Ｓ１３４）、制御データを送信する（ステップＳ１３５）。また、他局に送信すべき支援データ（メッセージ）がある為に共用時間帯においてバスを使用したい場合には（ステップＳ１３６、ＹＥＳ）、送信済みフラグを参照して、もし送信済みフラグがクリアされていれば（ステップＳ１３７，ＹＥＳ）、バス使用権要求も送信する（ステップＳ１３８）。一方、もし送信済みフラグがセットされていれば（ステップＳ１３７，ＮＯ）、バス使用権要求の送信は行わない。
【０１００】
上述したようにバス使用権要求はブロードキャストで行う。よって、全ての局（自局も含めて）に要求が届く。当然、他の局がバス使用権要求を出した場合にも、このバス使用権要求を受信するので、図８（ｂ）のステップＳ９２または図９（ｃ）のステップＳ１２２のバス使用権要求取り込み処理を行うが、その際、例えば各バス使用権要求に含まれる要求送信元の局番号を取り出して記憶しておく。
【０１０１】
次に、センドタイマ１６の２回目のタイムアップの際、すなわち共用時間帯の開始時点では、まず、上記記憶しておいた要求送信元の局番号を参照して、調停を行う（ステップＳ１３９）。すなわち、各局は予め上記優先順位データを記憶しているので、上記各要求送信元の局番号により要求のあった各局の優先順位を求めることができる。そして、要求があった局のなかで最も優先順位が高い局が自局であった場合には（ステップＳ１４０，ＹＥＳ）、バス使用権を獲得できる（調停に勝利する）。よって、送信済みフラグをセットして（ステップＳ１４１）、メッセージを送信する（ステップＳ１４２）。
【０１０２】
一方、要求があった局のなかで最も優先順位が高い局が自局ではなかった場合には（当然、そもそも自局は要求しなかった場合も含まれる）（ステップＳ１４０，ＮＯ）、メッセージを送信できないので、そのまま次の処理に移行する。
【０１０３】
続いて、送信済みフラグのリセット条件が成立したか否かを判定する（ステップＳ１４３）。判定方法は、上述してある通り、バス使用権要求を行った局（自局も含む）の数が、０又は１の場合には、リセット条件が成立したものとし（ステップＳ１４３，ＹＥＳ）、送信済みフラグをリセットする（ステップＳ１４４）。
【０１０４】
最後に、今回取り込んだバス使用権要求を消去して、本処理は終了する。
尚、自局がバス使用権要求を送信しないサイクルでは、ステップＳ１３９〜Ｓ１４２の処理を省略してもよい。
【０１０５】
以上の様にバス使用権要求の送信に抑制を加えることにより、バス使用権を公平に分配することが可能となる。公平に分配される様子を図１１に示す。
図１１は、図１のマスタ局１、スレーブ局２、スレーブ局３が（スレーブ局４は省略）、共用時間帯において次々にメッセージ(MSG)送信を行う例を示す（共用時間帯での動作のみ示す）。尚、ここでは、マスタ局１の局番は１、スレーブ局２の局番は２、スレーブ局３の局番は３であるものとし、優先順位はマスタ局１＞スレーブ局２＞スレーブ局３（マスタ局１が最優先）であるものとする（実際に各局が記憶している優先順位データは、局番を用いて、局番１＞局番２＞局番３となっている）。
【０１０６】
また、ここでは、１サイクルで全ての局でメッセージ送信要求が発生しており且つ送信済みフラグはリセットされた状態であるものとする。更に各局とも自己のメッセージ送信し終わるとすぐに次のメッセージ送信要求が発生するものとする。また、図１１において、図示のメッセージ送信要求フラグは、メッセージ送信要求が発生しているときにはＨ（High）となり、メッセージ送信するとＬ（Low）となる。図示の送信済みフラグについては、Ｈは上記セット、Ｌは上記リセットされていることを意味する。
【０１０７】
まず、１サイクル目では、上記の通り全ての局でメッセージ送信要求が発生しているので、図示のメッセージ送信要求フラグはＨとなっており、また上記の通り全ての局で送信済みフラグはリセット（Ｌ）されている。よって、１サイクル目では、専用時間帯において全ての局１，２，３がバス使用権要求を送信し、共用時間帯に入ると各局の調停部（不図示）がそれぞれ独立に調停を行うが、この場合マスタ局１（局番１）が最優先となる。よって、マスタ局１の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージ送信する。マスタ局１では、メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記の通りすぐに次のメッセージ送信要求が発生するので再びHighになる。また、送信済みフラグのリセット条件が不成立なので送信済みフラグはHighのままである。一方、スレーブ局２、スレーブ局３の調停部では上記最優先局番（局番１）が自局番ではないので、調停に敗北する。
【０１０８】
次に、２サイクル目では、専用時間帯では、マスタ局１はメッセージ送信要求フラグはHighであるが送信済みフラグはHighのままなので、バス使用権要求は送信しない。スレーブ局２，３は、バス使用権要求を送信する。よって、共用時間帯における調停では、局番２が最優先となる。スレーブ２の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージを送信する。メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記マスタ局１と同様すぐに次の要求でHighになる。また、送信済みフラグのリセット条件が不成立なので送信済みフラグはHighのままである。マスタ局１とスレーブ局３の調停部では最優先局番が自局番ではないので調停に敗北する。
【０１０９】
次に、３サイクル目では、専用時間帯では、マスタ局１、スレーブ局２はメッセージ送信要求フラグはHighであるが送信済みフラグはHighのままなので、バス使用権要求は送信しない。スレーブ局３は、バス使用権要求を送信する。よって、共用時間帯における調停では、局番３が最優先となる。スレーブ３の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージを送信する。メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記マスタ局１と同様すぐに次の要求でHighになる。マスタ局１とスレーブ局３の調停部では最優先局番が自局番ではないので調停に敗北する。
【０１１０】
ここで送信済みフラグのリセット条件が成立する(バス使用権送信局数＝１)ので、送信済みフラグは全局ともリセット(初期化)される。
最後の４サイクル目は１サイクル目と同じになる。
【０１１１】
上記第２の実施例によれば、シリアルバスシステムにおいて、専用局を必要とせず、各ノードと共通バス以外の構成も必要とせず、制御データ交換の定周期性を守りながら支援データ等のメッセージ交換を行うことができる。つまり、局間で定周期に行う定量のデータ交換の他に不定量のメッセージを交換する場合に、複数の（多くの）ノードがメッセージを送信したい場合でも、各サイクル毎の送信局数を制限する（上記の例では１局のみ）ことで、定周期性を守ることができる。
【０１１２】
例えば、局の軽い異常発生時に状態データをメッセージで送信しても、制御データ交換の定周期性が守られるので安全である。従来はこのメッセージ送信する局の数が増えると制御データ交換の定周期性を阻害して危険だが、本実施例２を適用すれば異常発生していない局同士のデータ交換の定周期性も守られるので安全である。
【０１１３】
また、そのメッセージの送信も特定の局が送信し続けることは無く、送信機会を均等に分配することができる。これは、ある局に接続された支援ツールから他の局にネットワークを経由して支援を行うときの、支援ツールの接続台数の制限の緩和の効果がある。すなわち、支援ツールからのメッセージ送信の要求が非常に多いときに、特定の局が優先的にメッセージ送信を行って、他の局に接続された支援ツールからの支援が行えなくなる、という問題が発生しなくなる。また、局同士で高頻度でメッセージを交換するときに、高位優先の局のメッセージが常に優先され、低位優先の局のメッセージが送られなく、という問題も発生しなくなる。また、高負荷時でも均等に支援データ等のメッセージ交換を可能とする。
【０１１４】
さらに、上記の通り専用局（集中型調停をする局）が必要無いので、もし専用局が故障しても、メッセージ送信不可になることはない。また、上記実施例２の例では実施例１の特徴も有するので、同期化フレームが消失しても問題なく動作でき、またもしマスタ局が脱落等しても、それまでのタイミングを維持しつつメッセージを送信することができる。また、マスタ局脱落等を検出したスレーブ局同士のメッセージ交換で新たなマスタ局となるスレーブ局を選定することも可能である。
【０１１５】
また、通信路の断線や結合に際しても、断線されて分割された単位でのメッセージ交換や、結合によって２つあった調停を１つに統合してのメッセージ交換など、通信路の状態変換に柔軟に対応できる。
【図面の簡単な説明】
【０１１６】
【図１】本例によるネットワークシステム全体の概略構成図を示す。
【図２】図１の各ノードのハードウェア構成図である
【図３】第１の実施例におけるスレーブ局のサイクルタイマの同期化方法を説明する為の図である。
【図４】第１の実施例において同期化フレーム、サイクルタイマ、センドタイマを用いた送信タイミング決定の動作例を示す図である。
【図５】第１の実施例におけるマスタ局の処理フローチャート図であり、（ａ）はサイクルタイマ割込処理、（ｂ）はセンドタイマ割込処理、（ｃ）はデータ受信割込処理を示す。
【図６】第１の実施例におけるスレーブ局の処理フローチャート図であり、（ａ）はサイクルタイマ割込処理、（ｂ）は同期化フレーム受信割込処理、（ｃ）はセンドタイマ割込処理、（ｄ）はデータ受信割込処理を示す。
【図７】第２の実施例における各局の動作を示す図である。
【図８】第２の実施例におけるマスタ局の処理フローチャート図であり、（ａ）はサイクルタイマ割込処理、（ｂ）はデータ受信割込処理を示す。
【図９】第２の実施例におけるスレーブ局の処理であり、（ａ）はサイクルタイマ割込処理、（ｂ）は同期化フレーム受信割込処理、（ｃ）はデータ受信割込処理である。
【図１０】第２の実施例におけるセンドタイマのタイムアップによる割込み処理のフローチャート図である。
【図１１】バス使用権が公平に分配される様子を示す図である。
【図１２】従来技術を説明する為の図である。
【符号の説明】
【０１１７】
１  ノード（マスタ局）
２、３，４  ノード（スレーブ局）
５  シリアルバス
１０  ノード
１１  ＣＰＵ
１２  プログラムメモリ部
１３  メモリ部
１３ａ  データメモリ部
１３ｂ  送信バッファ
１３ｃ  受信バッファ
１４  伝送制御部
１５  サイクルタイマ
１６  センドタイマ
【図１】
2005159754.tif 000003
【図２】
2005159754.tif 000004
【図３】
2005159754.tif 000005
【図４】
2005159754.tif 000006
【図５】
2005159754.tif 000007
【図６】
2005159754.tif 000008
【図７】
2005159754.tif 000009
【図８】
2005159754.tif 000010
【図９】
2005159754.tif 000011
【図１０】
2005159754.tif 000012
【図１１】
2005159754.tif 000013
【図１２】
2005159754.tif 000014