JP4241343B2 - 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム - Google Patents

送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム Download PDF

Info

Publication number
JP4241343B2
JP4241343B2 JP2003395940A JP2003395940A JP4241343B2 JP 4241343 B2 JP4241343 B2 JP 4241343B2 JP 2003395940 A JP2003395940 A JP 2003395940A JP 2003395940 A JP2003395940 A JP 2003395940A JP 4241343 B2 JP4241343 B2 JP 4241343B2
Authority
JP
Japan
Prior art keywords
station
timer
time
master station
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003395940A
Other languages
English (en)
Other versions
JP2005159754A (ja
Inventor
文彦 安西
祐悟 須長
聡一 新井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2003395940A priority Critical patent/JP4241343B2/ja
Publication of JP2005159754A publication Critical patent/JP2005159754A/ja
Application granted granted Critical
Publication of JP4241343B2 publication Critical patent/JP4241343B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

本発明は、データ通信技術分野において、特に帯域を時分割して複数の局が相互にデータ交換を行う時分割多重アクセス方式を用いたネットワークシステムにおける送信タイミング決定方法、バス使用権の調停方法等に関する。
従来より、時分割多元接続(時分割多重アクセス方式)(TDMA(Time Division Multiple Access))が知られている。TDMAは、利用できる一定範囲の周波数帯を細かい時間帯に分割し、この分割した時間帯を一定の時間間隔で更に分割し、複数のタイムスロットを得る。そして、このタイムスロットを「1タイムスロット=1チャンネル」として通信を行う方式である。
TDMAでは、各通信端末に任意のタイムスロットが割り当てられ、各送信端末は自己に割り当てられたタイムスロットのタイミングで通信を行う。これは、例えば予め各通信装置毎に時間基準からの時間差が決められており(各々異なる値とする)、各通信装置毎にそれぞれ時間基準から上記時間差分経過したタイミングで通信を行う。これについての従来技術の一例を、図12を参照して説明する。
図12に示す例では、上記時間基準を、同期化フレーム受信時としている。
すなわち、各通信サイクル(TDMAフレーム)を同期化時間帯とデータ交換時間帯に時分割し、各通信サイクル毎に、まず、同期化時間帯において、マスタ局が同期化フレームを送信し、各スレーブ局は各々この同期化フレームを受信すると、この受信タイミングを時間基準に、自局が有するタイマを用いて、データ交換時間帯における自局の送信タイミングを求めている。
上記各局のタイマには、それぞれ予め、時間基準からの時間差が相互に異なるようにタイムアップ設定値が決められており、タイマのタイムアップがその局に割り当てられたタイムスロットのタイミングを示すものであり、各局はこのタイミングで通信を行なう。
上記時間基準からの時間差が相互に異なるようにタイマ設定することで、各局の送信タイミングが重複することなく、TDMA方式の通信を行える。これは、例えば、システム内でユニークな番号である局番(ノードアドレス)を一次パラメータとして、タイマ設定値を決定する。つまり、各局は、自局のタイマのタイムアップ設定値tをt=“自局の局番”×a(aは予め設定される所定の定数;1ms等)等とし、上記同期化フレームの受信タイミング(時間基準)でタイマを起動する。
上記のように、従来技術においては、各スレーブ局はマスタ局からの同期化フレーム受信をトリガとして起動するタイマをひとつずつ個々に管理して送信タイミングを決定している。これにより、各スレーブ局は間接的にではあるが、マスタ局のもつタイマ基準時間に同期して決められた時間領域(タイムスロット)に自局の送信データを送信している。
なお、時分割多重送受信方式、と言った場合、最近はリング型のネットワークにおける、一つの連続したフレーム内の自局送信領域、受信領域をマスタ局の同期化クロックをもとに割り出す、と言った技術が中心に議論されることが多いが、ここではより広義の意味で本用語を使用している。
例えばバス型のネットワークにおけるこのような送信タイミング管理方式の例として、DeveiceNetのCyclicプロトコルが公知である(タイマを使った定周期の送信をCyclic送信と呼んでいる;非特許文献1参照)。DeveiceNetプロトコルについては、例えば非特許文献2等に記載されている。
この非特許文献2における「第5章 Device Net Communication オブジェクトクラス」の「5-4.4コネクションタイミング」の「5-4.4.1Transmission Trigger Timer」の記載によれば、DeviceNetでは、送信を行う各局側が、Transmission Trigger Timerという一つのタイマを個々に管理して、他の局の送信タイミングと重ならないような送信タイミングを割り出している。ただし、このタイマは上記従来技術と異なり、マスタ局からの同期化フレームによって再起動するのではなく、各局が各々独自に自動的にリトリガしている。つまり、各局毎に自己のタイマがタイムアウトする毎にタイマを再起動している。
また、ネットワークに接続された複数の局(PLCにおけるCPUモジュール等のようにデータを自ら送信できるモジュール)間でデータ交換を行うためのネットワークシステムには様々なものがある。複数の局が同時にデータを送信しようとする場合に、通信路上で送信データが衝突しないように、バス使用権の調停を行う必要がある。
例えば、IEEE802.3のEthernet(登録商標)ではCSMA/CD(Carrier Sense Multiple Access with Collision Detection)で通信路が空いていること確認してから送信を行い、IEEE1394ではルートノードでの調停で勝ったノードが送信を行い、トークンリングやトークンパッシングではトークンを所有しているノードが送信を行う。
また、特許文献1記載の発明では、トークンに情報を付加することにより、トークン1周で送信できる局を1局に制限している。さらに、特許文献2記載の発明では、パラレルバスシステムではあるが、局毎に送信済みの情報を持つことにより、バス使用権を公平に分配できるようにしている。
特開平11−215167号公報 特開2001−075919号公報 (http://web.Kyoto-inet.or.jp/org/odva-j/top/top.html)のhttp://web.Kyoto-inet.or.jp/org/odva-j/overview/overview11.html 「デバイスネット仕様書VolumeI:Device Net通信モデルおよび通信プロトコルリリース2.0」
前述のようなTDMA方式を用いてデータ交換を行うネットワークシステムにおいて、上記各スレーブ局がマスタ局からの同期化フレーム受信によって自己のタイマを起動する従来技術では、各スレーブ局がマスタ局からの同期化フレームを受信するまでの時間(受信フレームがキャリアとして伝送路上に存在する時間及び受信処理に要する時間)が、伝送速度や処理能力上無視できない大きさである場合に問題がある。つまり、この場合は、マスタ局のタイミングとスレーブ局のタイミングに大きなずれが生じてしまうので、何らかの方法でこの遅延時間分を補償する必要が出てくる。
また、マスタ局からの同期化フレームが、何らかの事由(途中で消失等)で受信できなかった場合、スレーブ局では上記の通り同期化フレーム受信をトリガとしてタイマを起動する為、自局送信タイミングを求めることができないという問題が生じる。この場合は、そのサイクルにおける送信ができなくなってしまうので、たとえ同期化フレームを受信できないサイクルがあってもスレーブ局だけで自局送信タイミングを作り出せるようになることが望まれる。
一方、上記DeveiceNetのCyclicプロトコルの手法では、各局毎に独自に自己のタイマに基づく送信タイミングを求めているので、上記同期化フレームを用いる為に生じる問題は発生しない。しかしながら、この手法では、上記の通り、各局で独自にタイマを動作させているので、起動タイミングがバラバラだと、送信タイミングが重なる可能性がある。また、たとえ最初に全ての局のタイマの起動タイミングを合わせたとしても、タイマ動作の基準となるクロック(水晶発振器)の精度が通常はばらつく為、その後、長時間運用することで、各局相互でタイマの起動タイミングにずれが生じることになり、その結果、送信タイミングが重なる可能性がある。このような事態に対応して、DeveiceNetでは、送信タイミングが重なった場合には、その物理層であるCAN(Controller Area Network)でフレームの衝突の回避や衝突時のリトライを行っている。
しかしながら、このような対応を行う必要なく、クロック(水晶発振器)の精度の違いに影響されることもなく、送信タイミングの重なりそのものを防ぐことができる根本対策が望まれる。
さらに、従来より、マスタ局がダウンしたり脱落した場合に、スレーブ局がマスタ局の機能を引き継ぎ、新マスタ局としてシステムを継続するネットワークがある。このようなネットワークにおいては、マスタとなる局は唯一ではなく、全ての局がマスタとなりうる機能をもち、例えば最も早く初期化を完了してシステム上に立ち上がってきた局がマスタ局となる(初期化先着優先)場合や、マスタとなり得る局をユーザが選択、設定しておくなどの方法が取られることが多い。このようなシステムでは、マスタ局がダウンしたり脱落したりした場合に備えてマスタ局を他のスレーブ局が監視し、脱落などの場合にはマスタ調停やユーザ設定順位などをもとに後継となるスレーブ局がマスタ局の機能を引き継ぐ。 その際に、旧マスタ局が管理していた時間軸がリセットされ、新しいマスタ局によって時間基準が新たに定められることになる。
つまり、ある時刻を基準に周期性を持ってデータ交換が管理されていたシステムが、マスタ局の脱落などのシステムの状態変化により、それまでとは異なる時刻を基準時刻として動作し始めることになり、周期ずれが発生することになる。これはネットワークからの周期的なデータリフレッシュを前提とする機器や、定期的にデータをサンプルするサンプルトレースなどの機能を実現する上で問題となる。
また、ここで、FA(ファクトリ・オートメーション)やPLC(プログラマブルコントローラ)等の産業用分野のシステムにおいて、複数のCPUモジュール、複数のI/Oモジュールがネットワークに接続され、このネットワークを介して各モジュール間で相互にデータ交換を行うネットワークシステムが知られている。
ネットワークシステムにおけるデータ交換には、常時交換されるデータと、必要に応じて交換されるデータがあるが、上記産業用分野のネットワークシステムでは、前者に制御用のデータを、後者に状態監視の支援データ等を割り当てることが多い。制御用データは、それをもとに機械を動かしているので、定周期性が強く求められる。制御用データ交換のタイミングが一定でないと、機械の動きが滑らかでなくなり、最悪の場合に異常な動作を起こしかねないためである。尚、制御用データはCPUモジュール−I/Oモジュール間、支援データ等はCPUモジュール間で交換されるデータである。
このため、上記産業用分野のネットワークシステムにおけるデータ交換では、通信サイクルを、制御用データ交換用の時間帯と支援データ交換用の時間帯とに固定的に分けて、制御用データの定周期性を確保する必要がある。ここで、支援データ交換処理は、制御用データ交換処理とは異なり、支援データの量や該支援データによって要求される処理の内容次第で、支援データ交換処理時間が変わり、非常に時間が掛かる場合もある。この為、支援データ交換用時間帯において支援データ交換を行う局数が多いと、支援データ交換用時間帯内で支援データの交換を終了させることができず、支援データ交換用時間帯をはみ出してしまい、制御用データ交換用時間帯に影響を与え、定周期性を崩してしまう可能性がある。それ故、何らかの方法でデータ交換用時間帯内で送信する局数を制限する(例えば1局のみとする)必要がある。
しかし、前述のEthernet(登録商標)では時間によって区分するという概念が無いのでそもそも局数を制限する機構は無く、トークンリングやトークンパッシングや上記特許文献2の発明の調停方法も同様である。このため、支援データの交換が一時的に集中した場合に、制御データの交換の周期が乱れてしまう。さらに、Ethernet(登録商標)やIEEE1394ではバス使用権を公平に分配する仕組みは無い。このため、複数の支援ツールをネットワークにつなげたときに、特定の機器が高い優先でのデータ交換をし、他の機器のデータ交換を妨げてしまうことがある。トークンリングやトークンパッシングでは公平に分配することはできるが、定周期性を守ることができない。
一方、特許文献1記載の発明では、時間帯内での送信局数の制限をすることはできるが、送信局数の制限を集中的に行う専用局が必要で、この専用局との間でトークンを毎回交換する必要がある。
また、特許文献2の発明の調停方法は、適用対象システムがパラレルバスに限定されてしまい、取り扱いが簡単で安価なシリアルバスに適用することができない。すなわち、まず、特許文献2の発明は、概略的には、ベースボード上の32bitパラレルバスを、コネクタ削減の為に8bitパラレル化し、それに「送信機会を均等に分配」の機能をつけたものである。特許文献2の発明では、バス使用権要求は常時(ベースボード上のモジュールが勝手に)行っており、そのバス使用権要求の取り込みをパラレルで行っている。その為に、特許文献2の発明では、各ノードと共通バス(データ線)以外に、調停ノードと調停バスと調停信号線が設けられている。上記特許文献2の発明をシリアルネットワークに適用しようとした場合、パラレルでは使えた“データ線以外の制御線”(調停バスと調停信号線)は使えないので、特許文献2の手法を単純にシリアルバスに適用することはできない。また、上記のように制御データ交換の定周期性を守らなければならない。
上述したように、上記制御データ交換の定周期性を守る必要があるシステムであってシリアルバスを用いたシステムにおいて、支援データ交換用時間帯内での送信局数の制限を、専用局を必要とせずに実現し、更にこの送信局数の制限の仕方において、バス使用権が公平に分配されるようにすることが望まれている。
本発明の課題は、時分割多重アクセス方式のネットワークシステムにおいて、各ノード(局)の送信タイミングが重ならないようにすることに係わり、特に同期化フレームの消失やマスタ局の脱落等があっても問題なく動作でき、あるいはマスタ局の交代があってもシステムの時間基準を引き継ぐことができるネットワークシステム等を提供することである。
本発明のネットワークシステムは、一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおいて、前記マスタ局と各スレーブ局は、各々、通信サイクルを管理するための第1のタイマを有し、前記マスタ局は、自局の前記第1のタイマに基づく通信サイクルの切れ目に同期化フレームを送信する第1の同期化手段を有し、各スレーブ局は、前記同期化フレームを受信すると、自局の前記第1のタイマを停止し、前記通信サイクルの周期から前記同期化フレームの遅延分を引いた値を自局の前記第1のタイマに再設定して再起動することで、前記同期化フレームの遅延を補償して自局の前記第1のタイマをマスタ局の前記第1のタイマと同期化させる第2の同期化手段を有し、前記各局は、各々、その設定値が各局で相互に異なる値となっている第2のタイマを更に有し、前記自局の第1のタイマのタイムアップで該第2のタイマを起動して、該第2のタイマのタイムアップ時点を自局のデータ送信タイミングとして決定する送信タイミング決定手段を有する。
上記のように、各局は、各々、マスタ局の第1のタイマと同期させた自局の第1のタイマに基づいて自局のデータ送信タイミングを決定するので、各局個別に送信タイミングを決定してもその基準がばらつくことなく、よって送信タイミングが重なることはなく、また同期化フレームの遅延、消失等があっても関係なくなる。
また、前記システムが、マスタ局がダウン/脱落した場合、任意のスレーブ局がマスタ局を引き継ぐシステムである場合、該引き継いだ新マスタ局が前記旧マスタの第1のタイマのタイミングを継続したままシステム全体の通信サイクルを管理することで、マスタ局の交代があってもシステムの時間基準を引き継ぐことができる。
本発明のネットワークシステム等によれば、時分割多重アクセス方式のネットワークシステムにおいて、各ノード(局)の送信タイミングが重ならないようにすることに係わり、特に同期化フレームの消失やマスタ局の脱落等があっても問題なく動作でき、あるいはマスタ局の交代があってもシステムの時間基準を引き継ぐことができる。
以下、図面を参照して、本発明の実施の形態について説明する。
図1に、本例によるネットワークシステム全体の概略構成図を示す。
図示のネットワークシステムは、上述してあるTDMA方式により各ノード間でデータ交換を行うシステムであり、特にPLC(プログラマブルコントローラ)等の産業用途制御システムである。
図示の例では、シリアルバス5に複数のノード1,2,3,4が接続されているネットワークシステムを示す。ここでは、ノード1がマスタ局、他のノード2,3,4はスレーブ局であるものとし、以下、マスタ局1、スレーブ局2,3,4と記すものとする。
尚、図示のネットワークは一例であり、本発明は、上記リング型のネットワークにもバス型のネットワークにも適用可能である。
図2は、上記各ノードのハードウェア構成図である。
図2に示すノード10は、CPU11、プログラムメモリ部12、メモリ部13、伝送制御部14、サイクルタイマ15、センドタイマ16等を有する。メモリ部13は、データメモリ部13a、送信バッファ13b、受信バッファ13c等の記憶領域を有する。
CPU11は、プログラムメモリ部12に格納されているプログラム、データメモリ部13aに格納されている各種データを用いて、後述するフローチャート図(図5、図6、図8〜図10等のフローチャート)に示す処理を実行する。すなわち、特に図示しないが、ノード10は、この様な処理実行により得られる各種機能部を有するものである。例えば、特に図示しないが、ノード10は、マスタ局の場合、自局のサイクルタイマ15に基づく通信サイクルの切れ目に同期化フレームを送信する第1の同期化部を有し、 スレーブ局の場合、受信した同期化フレームの遅延を補償して自局のサイクルタイマ15をマスタ局のサイクルタイマ15と同期化させる第2の同期化部を有し、更にマスタ/スレーブとも、自局のサイクルタイマ15に基づいて自局のデータ送信タイミングを決定する送信タイミング決定部を有する。
あるいは、特に図示しないが、ノード10は、予め登録される固定的な優先順位データを記憶する優先順位データ記憶部と、自ノードが共用時間帯におけるバス使用権を要求した場合、自ノードも含めてバス使用権を要求した各ノードの優先順位を優先順位データより求めて、自ノードが最も優先順位が高い場合には自ノードは調停に勝利したものと判定する調停部と、自ノードが調停に勝利して共用時間帯におけるデータ送信を行った場合には、所定の条件が満足されるまでの間バス使用権要求の送信を抑制するバス使用抑制部とを有する。
詳しくは以下に詳細に説明する。
尚、ノード10はコンピュータの一種であると定義できる。
尚、送信するデータは、一旦送信バッファ13bに格納された後、伝送制御部14によってシリアルバス5上に流される。また、伝送制御部14によって受信したデータは、一旦受信バッファ13cに格納された後、CPU11によって処理される。
そして、本例では、全てのノードが(マスタ局だけでなく各スレーブ局も)サイクルタイマ15とセンドタイマ16を有して、各々動作させている。従来では、スレーブ局はサイクルタイマ15を有しておらず(あるいは有していても動作させていない。もしマスタ局になったら動作させる)、同期化フレーム受信をトリガにしてセンドタイマを起動していた。
一方、本例の場合、全てのスレーブ局が各々サイクルタイマを保有し、これをマスタ局のサイクルタイマ15と同期させて動作させる。そして、各局毎に自局のサイクルタイマ15を元にセンドタイマを起動してデータ送信タイミングを求める。すなわち、自局のサイクルタイマ15のタイムアップをトリガとしてセンドタイマ16を起動する。センドタイマ16の設定値を各局毎に互いに重複しないように設定する点(例えば上記の通り局番に基づいて設定)は、従来と同じである。
上記構成のシステムに基づいて、以下、まず、第1の実施例について説明する。
第1の実施例は、上記同期化フレーム受信までの遅延による問題、同期化フレームの消失による問題、マスタノードのダウン/脱落等による問題を解決するものである。
上記のように、本例のシステムでは、センドタイマ16起動を、従来のように同期化フレーム受信をトリガにして行うのではなく、マスタ局のサイクルタイマ15と同期させて動作させている自局のサイクルタイマ15に基づいて行うので、同期化フレームの受信までに掛かる時間が長くても影響されず、また同期化フレームが途中で消失したサイクルにおいても従来のようにそのサイクルにおける送信ができなくなってしまうという問題が生じることはない。また、DeveiceNetプロトコルのように各局ばらばらでタイマを動作させるのではなく、マスタ局のサイクルタイマ15と同期させた自局のサイクルタイマ15により定められる通信サイクルに基づいてセンドタイマ16を動作させているので(センドタイマ16は上記の通り各局で相互に異なる値を設定している)、自局の送信タイミングが他局の送信タイミングと重なることはない。
また、マスタ局のダウンや脱落等により任意のスレーブ局が新たなマスタ局となった場合でも、このスレーブ局(新マスタ局)はマスタ機能の引継ぎの際には同期化されたサイクルタイマ15のタイミングを継続して通信サイクルも継続する。したがって、従来のように周期ずれが発生するという問題は生じることはない。
以下、まず、各スレーブ局のサイクルタイマ15を、マスタ局のサイクルタイマ15と同期させて動作させる方法について説明する。
まず、任意のサイクルにおいて、マスタ局のサイクルタイマ15とスレーブ局のサイクルタイマ15が同じタイミングでタイムアップするように調整する。
その為に、本例では、まず、スレーブ局においても周期Tをサイクルタイマ15の設定値として設定して起動する。この起動タイミングはマスタ局のサイクルタイマ15の起動タイミングからずれているかもしれないが、その後、スレーブ局は、同期化フレームを受信したら、“周期Tから遅延時間を引いた時間”(T−遅延)をサイクルタイマに再セットして再起動する。同時刻のマスタ局では、周期Tをセットしたサイクルタイマ15が遅延時間分経過して、タイムアップまでの残り時間が“周期から遅延時間を引いた時間”になっている。すると、スレーブ局のサイクルタイマ15はマスタ局のサイクルタイマ15とほぼ同時にタイムアップすることになる。このように、受信した同期化フレームの遅延を補償して自局のサイクルタイマをマスタ局のサイクルタイマと同期化させることができる。
このようにほぼ同時にタイムアップするので、全ての局のセンドタイマ16の起動もほぼ同時となり、各局は、正しい(各々異なる)時間領域(タイムスロット)に自局送信データを送信することができる。尚、当然、マスタ局も各スレーブ局も、自局のサイクルタイマ15がタイムアップしたら、直ちに周期Tをセットして起動する。
また、上記の通り各スレーブ局毎に各々自局のサイクルタイマ15を動作させており、これは上記の通りマスタ局のサイクルタイマ15と同期させている。よって、たとえ後に同期化フレームを受信できないサイクルがあっても、自局のサイクルタイマ15に基づいて、問題なくデータ送信を行える。
尚、上記「同期化フレームを受信したら“周期Tから遅延時間を引いた時間”(T−遅延)をサイクルタイマに再セットして再起動する」処理は、全てのサイクルで逐一行う必要はない(行ってもよいが)。但し、一度同期をとった後でも、各局毎にそのクロックの精度によるわずかな誤差は生じるので、ある程度時間が経過するとタイミングがずれてくるので、定期的に上記処理を行ったほうがよい。
上記サイクルタイマの同期をとる動作について図3に一例を示す。
図3にマスタ局、スレーブ局のサイクルタイマの動作例を示す。同図において、図上横軸は時間、縦軸はタイマのカウント値を示す。
同図においてマスタ局1の動作は、従来とほぼ同じである。すなわち、サイクルタイマ15を定周期(T)で動作させ、サイクルタイマ15がタイムアップする毎に同期化フレームを送信する。但し、従来と異なり、全てのサイクルで同期化フレームを送信する必要はない。
ここで、上述してあるように、同期化フレームの送信開始からスレーブ局で受信完了するまでには遅延がある。この遅延は、主に同期化フレームのビット長と伝送速度から求まる伝送遅延であり、ほぼ固定とみなせる。つまり、遅延の大きさは同期化フレームのビット長と伝送速度に依存する為、各システム毎に異なるが、逆に言えば各システム毎にそのシステムにおいては遅延時間はほぼ固定的となる。よって、システムによっては、同期化フレームのビット長が長い場合や、伝送速度が遅い場合もあるが、これによって遅延が大きくなってもそれがほぼ固定的であれば、そのシステム設計者等が予め遅延の大きさを予測(又は実測)することができるので、上述した再設定値(T−遅延)も予め求めて登録しておくことができる。
これより、スレーブ局は、自局のサイクルタイマ15のタイムアップ毎に周期Tをセットしてサイクルタイマを再起動し、その後、同期化フレームを受信すると、上記予め登録されている「T−遅延量」をサイクルタイマ15に再設定して再起動する。このようにすれば、自局のサイクルタイマ15のタイムアップのタイミングを、マスタ局のサイクルタイマ15のタイムアップとほぼ同時になるように補償できる。
そして、もし次のサイクルで同期化フレームが届かない場合(図3の図上右側)でも、途中のサイクルタイマ再設定処理が無くなるだけであり、各スレーブ局のサイクルタイマ15はマスタ局のサイクルタイマ15とほぼ同時にタイムアップする。これは前のサイクルでマスタ局とスレーブ局のタイミングが補償されている(サイクルタイマ15が同期化されている)からである。
このように、万一同期化フレームが途絶えても、マスタ局とスレーブ局のサイクルタイマは同期しており、各局毎に自局のサイクルタイマ15に基づいてセンドタイマ16を起動すれば、送信タイミングは正しいものとなる(他の局と送信タイミングが重なったりしない)。よって、従来のようにデータ送信が行えなくなることはない。
ここで、センドタイマ16の動作について説明する。
センドタイマ16の設定値の設定方法は、従来と同じであってよい(異なるのは起動のトリガである)。すなわち、上記の通り、システムでユニークである局番をもとにセンドタイマ16の設定値を決定しておくことで、各局は、センドタイマ16の起動タイミングを誤らない限り(全ての局でほぼ同時に起動できれば)、他局の送信するフレームとの衝突が起こらないタイミングでデータを送信できる。そして、本例では、従来のように同期化フレーム受信をトリガとしてセンドタイマ16を起動するのではなく、各局毎に自局のサイクルタイマ16のタイムアップをトリガとしてセンドタイマ16を起動する。
上記の通り、サイクルタイマを同期させているので、全ての局(マスタ局と各スレーブ局)のサイクルタイマのタイムアップのタイミングはほぼ同時であり、そこを基点にして各々異なる設定値のセンドタイマ16を起動することで、相互に異なる送信タイミングで送信するので、他の局の送信するフレームと衝突することはない。さらに、マスタ局からの同期化フレームをスレーブ局が受け損なってもサイクルタイマ15は同期したままなので、そのタイムアップを基点にして送信タイミングを求めているのであるから、問題なくデータ送信を行える。このように、本例では、同期化フレームの受信の有無にかかわらず、スレーブ局で自局のサイクルタイマをもとに独自に正しい送信タイミングを求めてデータを送信することができる。同期化フレームの受信の有無は、スレーブがデータを送信すること自体にはかかわり無いからである。
また、スレーブ局だけでなく、マスタ局もセンドタイマ16を有し、これをもとにデータを送信している。その様子を図4に示す。
図4に示す様に、マスタ局も各スレーブ局も各々自局のサイクルタイマ16のタイムアップ毎にセンドタイマ16を起動し、センドタイマ16のタイムアップにより自局のデータの送信を行っている。既に述べている通り、各センドタイマ16の設定値は、基点(起動タイミング)がほぼ同時であれば各々異なるタイミングでタイムアップするように設定されているので、他の局の送信するフレームと衝突することはない。
また、上述してあるように、従来より、マスタ局が脱落等した場合に、任意のスレーブ局が新たなマスタ局となるシステムがある。
このシステムに上記第1の実施例を適用した場合、マスタ局が脱落した後、任意のスレーブ局が新たなマスタ局となるまでの間、同期化フレームがしばらく来なくても、各スレーブ局で使用しているクロックの水晶精度を原因としたわずかな誤差が生じるだけであり、サイクルタイマはほぼ同期している状態のままである。
マスタ局は自局のサイクルタイマ15を使ってシステム全体の通信サイクルを管理している。一方、前述の通りマスタ局とスレーブ局のサイクルタイマは同期させることができ、更にマスタ局がダウンや脱落をして任意のスレーブ局がマスタ局を引き継ぐ処理に多少の時間が掛かっても、上記の通り新マスタ局のサイクルタイマは旧マスタ局のサイクルタイマとほぼ同期している状態のままであるので、新マスタ局はこの旧マスタ局のサイクルタイマに同期しているサイクルタイマを使って引き続きシステム全体のサイクルを管理すれば、システム全体のタイミングも継続することができる。
上記第1の実施例において、マスタ局、各スレーブ局は、具体的には、例えば図5、図6に示す処理を行う(マスタ局とスレーブ局の処理の違いは、同期化フレームに係わる処理のみ)。
図5は、マスタ局の処理フローチャート図であり、図5(a)はサイクルタイマ割込処理、図5(b)はセンドタイマ割込処理、図5(c)はデータ受信割込処理を示す。
図5(a)は、マスタ局においてサイクルタイマ15のタイムアップによって生じる割り込み処理であるサイクルタイマ割込処理のフローチャート図である。
図5(a)において、マスタ局は、サイクルタイマ15がタイムアップすると、サイクルタイマの停止(ステップS11)、サイクルタイマに周期Tを設定して起動(ステップS12,S13)、同期化フレームを送信(ステップS14)、センドタイマ16に送信タイミングを設定して起動(ステップS15,S16)の処理を行う。尚、処理順序は必ずしもこの順番でなくてもよく、また並行して処理を行ってもよい。また、必ずしもサイクルタイマ15を逐一停止して周期Tを再設定する必要性はなく、上記処理は単なる一例を示しているに過ぎない。
図5(b)は、センドタイマ16のタイムアップによって生じる割り込み処理であるセンドタイマ割込処理のフローチャート図である。
図5(b)において、マスタ局は、上記ステップS16で起動したセンドタイマ16がタイムアップすると、センドタイマを停止し(ステップS21)、データの送信を行う(ステップS22)。
また、他の局からのデータを受信したら、図5(c)に示す通り、受信したデータの取り込みを行う(ステップS31)。
図6(a)は、スレーブ局においてサイクルタイマ15のタイムアップによって生じる割り込み処理であるサイクルタイマ割込処理のフローチャート図である。
図示のステップS41〜S45の処理は、上記ステップS11〜S16の処理とほぼ同じであるが、異なる点は、ステップS14の同期化フレーム送信処理は行わないことである。
図6(b)は、同期化フレーム受信によって生じる割り込み処理である同期化フレーム受信割込処理のフローチャート図である。
図6(b)において、スレーブ局は、同期化フレームを受信すると、サイクルタイマ15を停止し(ステップS51)、「予め設定される同期化フレーム受信までの想定時間(遅延時間)を周期Tから引いた時間(T−遅延)」をサイクルタイマ15に再設定して再起動する(ステップS52,S53)。
図6(c)のセンドタイマ割込処理、図6(d)のデータ受信割込処理は、上記図5(b)、図5(c)の処理と同じであり、説明は省略する。
上述した第1の実施例によるノード間の同期方法を用いることにより、下記の効果が得られる。
(1)従来の様に同期化フレームの受信を基準にスレーブ局のデータ送信タイミングを決めている場合、マスタ局とスレーブ局とでタイミングのずれが生じる。特に低速なネットワークで長い同期化フレームを使う場合にそのずれが大きい。
TDMA方式でこのずれが大きいと、ユニークな局番を元に重ならないように決めている送信タイミングが、重なってしまう場合が出てくる(マスタ局のものと任意のスレーブ局のものとがタイミングが重なる)。同期化フレームを送信するマスタ局の局番が0番であれば、マスタ局が最初にデータ送信を行うので、スレーブ局と送信タイミングが重なる可能性は低くなるが、可能性がなくなるわけではなく、また、マスタ局の局番を0番以外に設定できなくなる。
第1の実施例の送信タイミング決定方法を用いれば、同期化フレームのビット長が長い場合や、伝送速度が遅い場合でも、同期化フレームの受信を基準にしていないので関係なく、間接的にマスタ局と同期化させた自局のサイクルタイマに基づいて送信タイミングを決定するので、局同士の送信タイミングが重なることはなくなる。また、マスタ局に0番以外の局番を安全に割り当てることができ、システム設計の自由度を上げることができる。
(2)ネットワークである以上、ノイズ等で同期化フレームの消失は起こりうる。従来の様に同期化フレーム受信を基点にスレーブ局のデータ送信タイミングを決めると、同期化フレームが受信できないと当然データ送信タイミングが求まらず、データ送信を行えない。これでデータ送信を行えないのは、スレーブ局全てになる。
しかし、第1の実施例のように各スレーブ局で各々独自にデータ送信タイミングを作り出していれば、同期化フレームが受信できなくてもデータ送信を行える(しかも同期化させているので、DeveiceNetのような問題は生じない)。すると、ノイズが多くて同期化フレームが消失しやすい環境でも、スレーブ局は正しいタイミングでデータ送信を行える。ノイズが多い為に送信データのいくつかは消失するかもしれないが、全てのデータが消失しない限り、従来よりはデータ交換が多くできる。(従来はスレーブ全局のデータは送信されないのでデータ交換は0だが、本実施例1ならば消失から免れたデータ分のデータ交換はできる)。
また、マスタ局がダウンしたり脱落した場合に、スレーブ局がマスタ局の機能を引き継ぐまでの数サイクルも、従来ならば同期化フレームがないのでデータ送信できないが、本実施例1ならば途切れることなくデータ送信できる。つまり、マスタ局の交代といったシステム的に大きな変化があっても、途切れることのないデータ交換によってアプリケーションにそれを意識させずに済み、アプリケーション作成を容易にする。
(3)更に、マスタ局がダウンしたり脱落した場合にスレーブ局がマスタ局の機能を引き継ぐシステムでは、従来手法ではそれまでのマスタ局の基準時刻と同期さえしていなかったスレーブ局が新しいマスタ局となって新たに基準時刻を開始することになる。これではシステムとして基準時刻が全く異なることになり、各スレーブ局の送信タイミングもそれまでと異なることになり、周期ずれが生じてしまう。
しかし、本実施例1の様にマスタ局とスレーブ局のサイクルタイマが常に同期をとっていれば、スレーブ局がマスタ局になってもそのサイクルタイマはそれまでのマスタ局のサイクルタイマと同期しているので(水晶発振器の精度によるわずかな誤差は生じるかもしれないが)、システムとして時間基準を引き継いだことになる。
このように、マスタ局の交代といったシステム的に大きな変化があっても、システムの時間基準を引き継ぐことができ、データ送信が同じタイミングで継続されるので、システムの安定性や信頼性が増す。また、引継ぎも自動的に行われるので、従来では難しかった切換時のタイミング合わせが不要になり、二重化システムの設計が容易になる。
さらに、ネットワークからの周期的なデータリフレッシュを前提とする機器(たとえば受信したデータをそのまま出力するデジタル出力)や、定期的にデータをサンプルするサンプルトレースなどの機能を実現するのに、タイミング変化を起因とした問題がなくなる。
次に、以下、第2の実施例について説明する。
第2の実施例は、上記シリアルバスを用いるネットワークシステムで専用局を必要とせずに支援データ交換用の時間帯における送信局数を制限することにより制御データの定周期性を守るようにするという課題を解決するものである。尚、専用局とは上記マスタ局1のことではなく、上記特許文献1の“送信局数の制限を集中的に行う専用局”のことである。
第2の実施例においても、各ノード(マスタ局、スレーブ局)のハードウェア構成は、上記第1の実施例と同じであり、上記図2で説明した通りである。すなわち、各スレーブ局も各々サイクルタイマ15を有して、マスタ局のサイクルタイマ15と同期させて動作させている。これにより、マスタ局とスレーブ局のサイクルタイマはほぼ同時にタイムアップし、これに基づいて各局のセンドタイマ16を動作させることで、同期化フレームの受信完了までに掛かる時間に影響されず、同期化フレームがスレーブ局に届かない場合でも問題なく動作でき、マスタ局が脱落等した場合でも問題なく継続できるという特徴は第1の実施例と共通する。但し、ここでは、このように第1の実施例を前提にした例を説明するが、第2の実施例は必ずしも第1の実施例を前提にする必要はない。
第2の実施例では、例えば図7に示すように、概略的には、まず、周期Tの1サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分けている。そして、各ノードは、専用時間帯では自ノードに割り当てられる送信タイミング(タイムスロット)において、制御データを送信すると共にもし送信すべき支援データ(メッセージ)がある場合には他の全ての局に共用時間帯におけるバス使用権要求を出す。そして、もしバス使用権調停に勝利した場合には、共用時間帯においてメッセージを送信する。
図7において、専用時間帯における各ノード(マスタ局、各スレーブ局)の動作は、基本的には第1の実施例の手法を利用するが、異なる点は、データ送信を行うだけでなく必要に応じてバス使用権要求を送信する点と、センドタイマ16がタイムアップしたら直ちに各ノード毎に予め設定される設定値を再設定して再起動する点である。この設定値は、タイムアップ時点から共用時間帯の始めまでの時間である。つまり、センドタイマ16の2回目のタイムアップによって、共用時間帯になったことが分かる。専用時間帯の長さは予め決まっているので、各局毎にセンドタイマ16の1回目のタイムアップから共用時間帯の始め(専用時間帯の終わり)までの時間も、予めユーザ等が求めて設定することができる。
例えば周期Tが20msであり、これを前半の10msを専用時間帯、後半の10msを共用時間帯に割り当て、専用時間帯におい各局毎のデータ送信に割り当てる時間(TDMA幅;タイムスロット)が1msだとする。図1のシステムを例にし、スレーブ局2,3,4、マスタ局1の順にデータを送信する場合、0〜1msは同期化フレーム、1〜2msはスレーブ局2のデータ送信、2〜3msはスレーブ局3のデータ送信、3〜4msはスレーブ局4のデータ送信、4〜5msはマスタ局1のデータ送信の為に割り当てられる時間となる。例えばスレーブ局4を例にすると、自データの送信タイミングは3msからであるので、センドタイマ16の設定値は3msである。よって、センドタイマ16の1回目のタイムアップ時に再設定する値は、7msとなる(専用時間帯の10msから3msを引けば、7msとなる)。
尚、別途3つ目のタイマを用意し、このタイマに専用時間帯の長さ(上記の例では10ms)を設定して、サイクルタイマ15のタイムアップ毎に起動するようにしてもよいが、この場合、タイマが1つ余分に必要になるので、ここではセンドタイマ16を利用している。
また、上記バス使用権要求はブロードキャストで行い、全局でその要求を受信して要求があったことを認識する。どの局からの要求であるのかを判断するには、要求フレームに要求元の局番を付加しても良いし、受信時のセンドタイマ16の値から逆算(TDMAなので送信タイミングと局番は1対1)しても良い。
そして、センドタイマ16が2回目のタイムアップをしたらそこが共用時間帯の始めなので、全ての局でそれぞれ、そのサイクルの専用時間帯において受信した「自局を含む各局のバス使用権要求」に基づいて優先判定を行い、もし自局が最優先ならば調停に勝利したものとして(共用時間帯でのバス使用権を得たものとして)メッセージを送信する。この判定は基本的には固定優先で行う。つまり、予めユーザ等が各局の優先順位を決めて、全ての局がこの優先順位データを格納している。例えば、図1のシステム例において、優先順位が、マスタ局1>スレーブ局2>スレーブ局3>スレーブ局4(マスタ局1が最も優先順位が高い)となっているものとする。このように全ての局で予め決められた固定的な優先順位データを持っていることで、専用時間帯において受信した「自局を含む各局のバス使用権要求」に基づいて、各局で独自に自局がバス使用権を得ることができるか否かを判定でき(各局毎に独自に調停を行う(分散調停を行う);つまりバス使用権調停(局数の制限)の為の専用局を必要としない)、他局やマスタ局との間で信号のやりとりを別途行う必要無い。
ただし、このままでは、バス使用権の要求局が多いときは低位優先の局のバス使用権の割り当てが少なくなり、公平な分配を期待できない。例えば上記例では、マスタ局1がバス使用権要求を出し続けると、マスタ局1ばかりがバス使用権を獲得し続け、他の局は獲得できず、なかなかメッセージを送信できないことになる。
そこで、ここではバス使用権の要求の送信を抑制する手法を導入する。
上記の通り、一旦バス使用権要求を出されたら、後は各局で固定的な優先順位に基づいて判定されてしまう。したがって、バス使用権要求の送信自体を抑制すれば良い。抑制の方針としては、一度バス使用権を得てメッセージを送信した局は、その後は他に要求を出している局が無くなるまで要求の送信を抑制し、無くなれば抑制を止める。
その具体的な手法としては、各局内のメモリに送信済みフラグを設け、メッセージ送信したら送信済みフラグをセットする。そしてバス使用権要求を送信する際に送信済みフラグをチェックし、セットされていればそのサイクルでのバス使用権要求の送信を止める。バス使用権要求を送信しなければ調停で勝てないので、その局はメッセージを送信できない。尚、当然、送信済みフラグがセットされていなければそのサイクルでバス使用権要求の送信を行う。
送信済みフラグのリセットは、他に要求を出している局が無くなるのを検出して行う。具体的には、調停の際に自局も含めてバス使用権の要求を送信している局の数を計数して、それが0もしくは1の時に送信済みフラグをリセットする。要求局数が0ならば誰も要求していないことは明らかである。但し、リセット条件を0だけにすると、要求局数が0のサイクルは当然どの局もメッセージを送信しないので、もしメッセージがあるが送信済みフラグがセットされている為に要求を出さなかった局があった場合、1サイクル分無駄が生じることになる。この為、ここでは要求局数が1の場合もリセット条件に加えている。尚、要求局数が1の場合とは、例えば2以上の局がバス使用権を要求し、優先順位が高い局から順にメッセージを送信し(その間、残りの局は順番待ちをしていることになる)、順番待ちをしていた局が順次少なくなっていき最後の局になった場合等が考えられ、この場合、次のサイクルでは要求局数が0になる可能性が高いので、もしメッセージがあるが送信済みフラグがセットされている為に要求を出さなかった局の場合、現サイクルでフラグをリセットすることで、次のサイクルでメッセージを送信できるので、無駄が生じない。
尚、ここでは要求局数が2以上ならば送信済みフラグのリセットは行わないが、この例に限らない。
上記第2の実施例において、マスタ局、各スレーブ局は、具体的には、例えば図8〜図10に示す処理を行う(マスタ局とスレーブ局の処理の違いは、同期化フレームに係わる処理のみ)。
図8は、マスタ局の処理フローチャート図であり、図8(a)はサイクルタイマ割込処理、図8(b)はデータ受信割込処理を示す。
図8(a)のステップS81〜S86の処理は、図5(a)のステップS11〜S16の処理と同じあるので、説明は省略する。
図8(b)の処理は、受信データの取り込みだけでなく(ステップS91)、もしバス使用権要求があった場合にはこれを取り込む処理(ステップS92)が行われる点が、図5(c)の処理と異なる。
図9は、スレーブ局の処理であり、図9(a)はサイクルタイマ割込処理、図9(b)は同期化フレーム受信割込処理、図9(c)はデータ受信割込処理である。
図9(a)のステップS101〜S105の処理、図9(b)のステップS111〜S113の処理は、それぞれ、図6(a)のステップS41〜S45の処理、図6(b)のステップS51〜S53の処理と同じであるので、ここでの説明は省略する。
図9(c)の処理は、受信データの取り込みだけでなく(ステップS121)、もしバス使用権要求があった場合にはこれを取り込む処理(ステップS122)が行われる点が、図6(d)の処理と異なる。
図10は、センドタイマ16のタイムアップによる割込み処理のフローチャート図であり、これはマスタ局もスレーブ局も同じ処理となる。
図10において、各ノード(マスタ局、各スレーブ局)は、それぞれ、自局のセンドタイマ16がタイムアップすると、まず、第2の実施例では上記の通り、1サイクル内にセンドタイマ16は2回タイムアップするので、これが1回目か2回目かを判定する(ステップS131)。判定方法としては、例えばセンドタイマ16のタイムアップ時に当該図10の処理後にセットされ、サイクルタイマ15のタイムアップでリセットされるフラグを用意して、これを参照すればよい。これによって、1回目のタイムアップ時にはフラグはリセットされており、2回目はセットされているので、これによりステップS131の判定が行える。
上記ステップS131の判定により、もし1回目であればステップS132〜S138の処理を実行し、もし2回目であればステップS139〜S145の処理を実行する。
センドタイマ16の1回目のタイムアップの際には、センドタイマを停止し(ステップS132)、そこから共用時間帯の始まりまでの時間(上記の通り予め各局毎に求められて記憶されている)をセンドタイマ16に再設定して再起動し(ステップS133,S134)、制御データを送信する(ステップS135)。また、他局に送信すべき支援データ(メッセージ)がある為に共用時間帯においてバスを使用したい場合には(ステップS136、YES)、送信済みフラグを参照して、もし送信済みフラグがクリアされていれば(ステップS137,YES)、バス使用権要求も送信する(ステップS138)。一方、もし送信済みフラグがセットされていれば(ステップS137,NO)、バス使用権要求の送信は行わない。
上述したようにバス使用権要求はブロードキャストで行う。よって、全ての局(自局も含めて)に要求が届く。当然、他の局がバス使用権要求を出した場合にも、このバス使用権要求を受信するので、図8(b)のステップS92または図9(c)のステップS122のバス使用権要求取り込み処理を行うが、その際、例えば各バス使用権要求に含まれる要求送信元の局番号を取り出して記憶しておく。
次に、センドタイマ16の2回目のタイムアップの際、すなわち共用時間帯の開始時点では、まず、上記記憶しておいた要求送信元の局番号を参照して、調停を行う(ステップS139)。すなわち、各局は予め上記優先順位データを記憶しているので、上記各要求送信元の局番号により要求のあった各局の優先順位を求めることができる。そして、要求があった局のなかで最も優先順位が高い局が自局であった場合には(ステップS140,YES)、バス使用権を獲得できる(調停に勝利する)。よって、送信済みフラグをセットして(ステップS141)、メッセージを送信する(ステップS142)。
一方、要求があった局のなかで最も優先順位が高い局が自局ではなかった場合には(当然、そもそも自局は要求しなかった場合も含まれる)(ステップS140,NO)、メッセージを送信できないので、そのまま次の処理に移行する。
続いて、送信済みフラグのリセット条件が成立したか否かを判定する(ステップS143)。判定方法は、上述してある通り、バス使用権要求を行った局(自局も含む)の数が、0又は1の場合には、リセット条件が成立したものとし(ステップS143,YES)、送信済みフラグをリセットする(ステップS144)。
最後に、今回取り込んだバス使用権要求を消去して、本処理は終了する。
尚、自局がバス使用権要求を送信しないサイクルでは、ステップS139〜S142の処理を省略してもよい。
以上の様にバス使用権要求の送信に抑制を加えることにより、バス使用権を公平に分配することが可能となる。公平に分配される様子を図11に示す。
図11は、図1のマスタ局1、スレーブ局2、スレーブ局3が(スレーブ局4は省略)、共用時間帯において次々にメッセージ(MSG)送信を行う例を示す(共用時間帯での動作のみ示す)。尚、ここでは、マスタ局1の局番は1、スレーブ局2の局番は2、スレーブ局3の局番は3であるものとし、優先順位はマスタ局1>スレーブ局2>スレーブ局3(マスタ局1が最優先)であるものとする(実際に各局が記憶している優先順位データは、局番を用いて、局番1>局番2>局番3となっている)。
また、ここでは、1サイクルで全ての局でメッセージ送信要求が発生しており且つ送信済みフラグはリセットされた状態であるものとする。更に各局とも自己のメッセージ送信し終わるとすぐに次のメッセージ送信要求が発生するものとする。また、図11において、図示のメッセージ送信要求フラグは、メッセージ送信要求が発生しているときにはH(High)となり、メッセージ送信するとL(Low)となる。図示の送信済みフラグについては、Hは上記セット、Lは上記リセットされていることを意味する。
まず、1サイクル目では、上記の通り全ての局でメッセージ送信要求が発生しているので、図示のメッセージ送信要求フラグはHとなっており、また上記の通り全ての局で送信済みフラグはリセット(L)されている。よって、1サイクル目では、専用時間帯において全ての局1,2,3がバス使用権要求を送信し、共用時間帯に入ると各局の調停部(不図示)がそれぞれ独立に調停を行うが、この場合マスタ局1(局番1)が最優先となる。よって、マスタ局1の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージ送信する。マスタ局1では、メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記の通りすぐに次のメッセージ送信要求が発生するので再びHighになる。また、送信済みフラグのリセット条件が不成立なので送信済みフラグはHighのままである。一方、スレーブ局2、スレーブ局3の調停部では上記最優先局番(局番1)が自局番ではないので、調停に敗北する。
次に、2サイクル目では、専用時間帯では、マスタ局1はメッセージ送信要求フラグはHighであるが送信済みフラグはHighのままなので、バス使用権要求は送信しない。スレーブ局2,3は、バス使用権要求を送信する。よって、共用時間帯における調停では、局番2が最優先となる。スレーブ2の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージを送信する。メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記マスタ局1と同様すぐに次の要求でHighになる。また、送信済みフラグのリセット条件が不成立なので送信済みフラグはHighのままである。マスタ局1とスレーブ局3の調停部では最優先局番が自局番ではないので調停に敗北する。
次に、3サイクル目では、専用時間帯では、マスタ局1、スレーブ局2はメッセージ送信要求フラグはHighであるが送信済みフラグはHighのままなので、バス使用権要求は送信しない。スレーブ局3は、バス使用権要求を送信する。よって、共用時間帯における調停では、局番3が最優先となる。スレーブ3の調停部ではそれが自局番なので調停に勝利して送信済みフラグをセットしてメッセージを送信する。メッセージ送信したのでメッセージ送信要求フラグは一旦Lowになるが上記マスタ局1と同様すぐに次の要求でHighになる。マスタ局1とスレーブ局3の調停部では最優先局番が自局番ではないので調停に敗北する。
ここで送信済みフラグのリセット条件が成立する(バス使用権送信局数=1)ので、送信済みフラグは全局ともリセット(初期化)される。
最後の4サイクル目は1サイクル目と同じになる。
上記第2の実施例によれば、シリアルバスシステムにおいて、専用局を必要とせず、各ノードと共通バス以外の構成も必要とせず、制御データ交換の定周期性を守りながら支援データ等のメッセージ交換を行うことができる。つまり、局間で定周期に行う定量のデータ交換の他に不定量のメッセージを交換する場合に、複数の(多くの)ノードがメッセージを送信したい場合でも、各サイクル毎の送信局数を制限する(上記の例では1局のみ)ことで、定周期性を守ることができる。
例えば、局の軽い異常発生時に状態データをメッセージで送信しても、制御データ交換の定周期性が守られるので安全である。従来はこのメッセージ送信する局の数が増えると制御データ交換の定周期性を阻害して危険だが、本実施例2を適用すれば異常発生していない局同士のデータ交換の定周期性も守られるので安全である。
また、そのメッセージの送信も特定の局が送信し続けることは無く、送信機会を均等に分配することができる。これは、ある局に接続された支援ツールから他の局にネットワークを経由して支援を行うときの、支援ツールの接続台数の制限の緩和の効果がある。すなわち、支援ツールからのメッセージ送信の要求が非常に多いときに、特定の局が優先的にメッセージ送信を行って、他の局に接続された支援ツールからの支援が行えなくなる、という問題が発生しなくなる。また、局同士で高頻度でメッセージを交換するときに、高位優先の局のメッセージが常に優先され、低位優先の局のメッセージが送られなく、という問題も発生しなくなる。また、高負荷時でも均等に支援データ等のメッセージ交換を可能とする。
さらに、上記の通り専用局(集中型調停をする局)が必要無いので、もし専用局が故障しても、メッセージ送信不可になることはない。また、上記実施例2の例では実施例1の特徴も有するので、同期化フレームが消失しても問題なく動作でき、またもしマスタ局が脱落等しても、それまでのタイミングを維持しつつメッセージを送信することができる。また、マスタ局脱落等を検出したスレーブ局同士のメッセージ交換で新たなマスタ局となるスレーブ局を選定することも可能である。
また、通信路の断線や結合に際しても、断線されて分割された単位でのメッセージ交換や、結合によって2つあった調停を1つに統合してのメッセージ交換など、通信路の状態変換に柔軟に対応できる。
本例によるネットワークシステム全体の概略構成図を示す。 図1の各ノードのハードウェア構成図である 第1の実施例におけるスレーブ局のサイクルタイマの同期化方法を説明する為の図である。 第1の実施例において同期化フレーム、サイクルタイマ、センドタイマを用いた送信タイミング決定の動作例を示す図である。 第1の実施例におけるマスタ局の処理フローチャート図であり、(a)はサイクルタイマ割込処理、(b)はセンドタイマ割込処理、(c)はデータ受信割込処理を示す。 第1の実施例におけるスレーブ局の処理フローチャート図であり、(a)はサイクルタイマ割込処理、(b)は同期化フレーム受信割込処理、(c)はセンドタイマ割込処理、(d)はデータ受信割込処理を示す。 第2の実施例における各局の動作を示す図である。 第2の実施例におけるマスタ局の処理フローチャート図であり、(a)はサイクルタイマ割込処理、(b)はデータ受信割込処理を示す。 第2の実施例におけるスレーブ局の処理であり、(a)はサイクルタイマ割込処理、(b)は同期化フレーム受信割込処理、(c)はデータ受信割込処理である。 第2の実施例におけるセンドタイマのタイムアップによる割込み処理のフローチャート図である。 バス使用権が公平に分配される様子を示す図である。 従来技術を説明する為の図である。
符号の説明
1 ノード(マスタ局)
2、3,4 ノード(スレーブ局)
5 シリアルバス
10 ノード
11 CPU
12 プログラムメモリ部
13 メモリ部
13a データメモリ部
13b 送信バッファ
13c 受信バッファ
14 伝送制御部
15 サイクルタイマ
16 センドタイマ

Claims (3)

  1. 一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおいて、
    前記マスタ局と各スレーブ局は、各々、通信サイクルを管理するための第1のタイマを有し、
    前記マスタ局は、自局の前記第1のタイマに基づく通信サイクルの切れ目に同期化フレームを送信する第1の同期化手段を有し、
    各スレーブ局は、前記同期化フレームを受信すると、自局の前記第1のタイマを停止し、前記通信サイクルの周期から前記同期化フレームの遅延分を引いた値を自局の前記第1のタイマに再設定して再起動することで、前記同期化フレームの遅延を補償して自局の前記第1のタイマをマスタ局の前記第1のタイマと同期化させる第2の同期化手段を有し、
    前記各局は、各々、その設定値が各局で相互に異なる値となっている第2のタイマを更に有し、前記自局の第1のタイマのタイムアップで該第2のタイマを起動して、該第2のタイマのタイムアップ時点を自局のデータ送信タイミングとして決定する送信タイミング決定手段を有することを特徴とするネットワークシステム。
  2. 前記ネットワークシステムは、マスタ局がダウン/脱落した場合、任意のスレーブ局がマスタ局を引き継ぐシステムであり、該引き継いだ新マスタ局が前記旧マスタの第1のタイマのタイミングを継続したままシステム全体の通信サイクルを管理することを特徴とする請求項1記載のネットワークシステム
  3. 一台のマスタ局と、複数のスレーブ局がネットワークに接続され、時分割多重アクセス方式を用いて前記各局間で相互にデータ交換を行うネットワークシステムにおける前記各スレーブ局のコンピュータに、
    前記マスタ局から送られてくる同期化フレームを受信すると、自局の第1のタイマを停止し、通信サイクルの周期から前記同期化フレームの遅延分を引いた値を前記自局の第1のタイマに再設定して再起動することで、前記同期化フレームの遅延を補償して前記自局の第1のタイマをマスタ局の第1のタイマと同期化させる機能と、
    その設定値が各局で相互に異なる値となっている第2のタイマを用いて、前記自局の第1のタイマのタイムアップで該第2のタイマを起動して、該第2のタイマのタイムアップ時点を自局のデータ送信タイミングとして決定する機能と、
    を実現させる為のプログラム。
JP2003395940A 2003-11-26 2003-11-26 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム Expired - Lifetime JP4241343B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003395940A JP4241343B2 (ja) 2003-11-26 2003-11-26 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003395940A JP4241343B2 (ja) 2003-11-26 2003-11-26 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム

Publications (2)

Publication Number Publication Date
JP2005159754A JP2005159754A (ja) 2005-06-16
JP4241343B2 true JP4241343B2 (ja) 2009-03-18

Family

ID=34721566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003395940A Expired - Lifetime JP4241343B2 (ja) 2003-11-26 2003-11-26 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム

Country Status (1)

Country Link
JP (1) JP4241343B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007195082A (ja) * 2006-01-23 2007-08-02 Yokogawa Electric Corp 通信機能診断システムおよび通信機能診断方法
DE602006007369D1 (de) * 2006-12-20 2009-07-30 Ntt Docomo Inc Vorrichtung zum Synchronisieren eines ersten Sende- und Empfangsgeräts mit einem zweiten Sende- und Empfangsgerät
JP4961589B2 (ja) * 2007-01-26 2012-06-27 株式会社安川電機 ネットワークシステムおよびスレーブ同期方法
JP4999006B2 (ja) * 2008-04-21 2012-08-15 独立行政法人産業技術総合研究所 シリアルバス伝送システム
KR101016813B1 (ko) * 2009-05-19 2011-02-21 에스비리모티브 주식회사 배터리 관리 시스템 및 그 구동 방법
JP5398380B2 (ja) * 2009-06-26 2014-01-29 三菱電機株式会社 Pwm半導体電力変換装置システムおよびpwm半導体電力変換装置
CN104115450B (zh) 2012-05-01 2017-02-22 富士电机株式会社 同步系统、多处理器及节点同步系统
CN104838615B (zh) * 2012-12-13 2017-08-18 富士电机株式会社 信号同步系统、节点同步系统、信号同步方法以及节点同步方法
JP6265058B2 (ja) * 2014-06-19 2018-01-24 富士電機株式会社 ネットワーク伝送システム、そのマスタノード、スレーブノード
JP6287621B2 (ja) * 2014-06-23 2018-03-07 富士電機株式会社 ネットワーク通信システム、そのマスタノード
JP6252382B2 (ja) * 2014-06-27 2017-12-27 富士電機株式会社 ネットワーク通信システム、そのマスタノード
JP6275320B2 (ja) * 2015-02-20 2018-02-07 三菱電機株式会社 通信装置、通信方法及びプログラム
JP6443227B2 (ja) * 2015-06-08 2018-12-26 株式会社デンソー 通信システム
EP3328003B1 (en) 2016-02-22 2019-05-15 Fuji Electric Co., Ltd. Control network system and node device therein
CN108605006B (zh) 2016-08-05 2021-03-12 富士电机株式会社 控制网络系统及其节点装置
US10812251B2 (en) 2018-12-18 2020-10-20 Simmonds Precision Products, Inc. Distributed time synchronization protocol for an asynchronous communication system
US10671558B1 (en) 2018-12-18 2020-06-02 Simmonds Precision Products, Inc. Distributed time synchronization protocol for an asynchronous communication system
CN113867228B (zh) * 2021-10-19 2023-10-24 傲拓科技股份有限公司 一种canopen主站与cpu的数据实时同步方法

Also Published As

Publication number Publication date
JP2005159754A (ja) 2005-06-16

Similar Documents

Publication Publication Date Title
JP4241343B2 (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
JP4571668B2 (ja) 時間制御される通信システム内にグローバルなタイムベースを確立する方法および通信システム
US7343437B2 (en) Synchronization method and control system for the time synchronization of slave units and a synchronizable slave unit
JP5080448B2 (ja) 2つのバスシステムを同期する方法および装置、並びに2つのバスシステムから成る構成
US10187195B2 (en) Controller area network synchronization
JP5539593B2 (ja) 事象制御型バス通信においてグローバル時間情報を提供するための方法及び装置
JP5107704B2 (ja) バスシステムの制御方法、バスシステムの装置およびバスシステム
WO2013121568A1 (ja) ノード同期方法、ネットワーク伝送システム、及びノード装置
JP2001223720A (ja) データ交換方法及びその装置
JP5712783B2 (ja) 電子制御ユニット、車載ネットワーク、データ送信方法
JP4594124B2 (ja) 通信システム及び通信方法
KR101558084B1 (ko) 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법
JP2008306648A (ja) データ中継装置及びデータ中継方法並びに通信ネットワークシステム
WO2020021597A1 (ja) 通信装置、通信システムおよび同期制御方法
JP4596448B2 (ja) バスシステムの加入者におけるプログラム中断を発生させる方法,その装置及びバスシステム
WO2012051564A1 (en) Reducing continuity check message (ccm) bursts in connectivity fault management (cfm) maintenance association (ma)
JP5626589B2 (ja) ネットワーク機器、および同機器における時刻同期方法
JP2011227795A (ja) データ収集装置
KR101435181B1 (ko) 배전 지능화 시스템의 마스터와 슬레이브 간 시각동기 및 전송 지연시간 보정 방법
JP2008187235A (ja) ネットワークシステムおよびスレーブ同期方法
JP2013055534A (ja) 通信方法
TWI735401B (zh) 通信裝置、通信系統、通信方法及程式
JP5734802B2 (ja) 通信装置及び通信方法
KR101498561B1 (ko) 글로벌 동기화를 위한 tdma 기반의 can 통신시스템 및 방법
JP2007243747A (ja) 車載lanにおける送信タイミング設定方法および電子制御ユニット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080919

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080919

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4241343

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term