JP2006148815A - シリアルバス使用権の分散調停方法、ノード、プログラム - Google Patents

シリアルバス使用権の分散調停方法、ノード、プログラム Download PDF

Info

Publication number
JP2006148815A
JP2006148815A JP2004339560A JP2004339560A JP2006148815A JP 2006148815 A JP2006148815 A JP 2006148815A JP 2004339560 A JP2004339560 A JP 2004339560A JP 2004339560 A JP2004339560 A JP 2004339560A JP 2006148815 A JP2006148815 A JP 2006148815A
Authority
JP
Japan
Prior art keywords
data
station
node
time zone
bus
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.)
Pending
Application number
JP2004339560A
Other languages
English (en)
Inventor
Fumihiko Anzai
文彦 安西
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 FA Components and Systems Co Ltd
Original Assignee
Fuji Electric FA Components and 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 FA Components and Systems Co Ltd filed Critical Fuji Electric FA Components and Systems Co Ltd
Priority to JP2004339560A priority Critical patent/JP2006148815A/ja
Publication of JP2006148815A publication Critical patent/JP2006148815A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 共用時間帯内でメッセージ送信が許される局を、システム全体においてメッセージを偏り無く消化することが出来るようにして決定する。
【解決手段】 バス使用権要求部21は、自局の現在の状況(未送信メッセージ数等)に基づいて自局の優先順位データを動的に作成し、この動的優先順位データを付加したバス使用権要求をブロードキャストで送信する。優先順位データ格納部22は、自局及びバス使用権要求を送信した全ての他局の優先順位データを記憶する。調停部23は、優先順位データ格納部22に記憶した優先順位データに基づいてバス使用権の調停を行う。例えば、全ての優先順位データの中で自局の優先順位データが最も優先順位が高い場合、調停勝利と判定し、バス使用権を獲得する。
【選択図】図3

Description

本発明は、シリアルバスに複数の局が接続されてなるネットワークシステムにおいて、当該シリアルバス使用権の調停方法に関する。
従来より、ネットワークに接続された複数の局(ノード)間でデータ交換を行うためのネットワークシステムには様々なものがある。複数の局が同時にデータを送信しようとする場合に、通信路上で送信データが衝突しないように、バス使用権の調停を行う必要がある。
例えば、IEEE802.3のEthernet(登録商標)ではCSMA/CD(Carrier Sense Multiple Access with Collision Detection)で通信路が空いていることを確認してから送信を行い、IEEE1394ではルートノードでの調停で勝ったノードが送信を行い、トークンリングやトークンパッシングではトークンを所有しているノードが送信を行う。
また、特許文献1記載の発明では、トークンに情報を付加することにより、トークン1周で送信できる局を1局に制限している。さらに、特許文献2記載の発明では、パラレルバスシステムではあるが、局毎に送信済みの情報を持つことにより、バス使用権を公平に分配できるようにしている。
特開平11-215167号公報 特開2001-075919号公報
ここで、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に、本例によるネットワークシステム全体の概略構成図を示す。
図示のネットワークシステムは、基本的にはTDMA方式により各ノード間でデータ交換を行うシステムであり、特にPLC(プログラマブルコントローラ)等の産業用途制御システムである。
図示の例では、シリアルバス5に複数のノード1,2,3,4が接続されているネットワークシステムを示す。ここでは、ノード1がマスタ局、他のノード2,3,4はスレーブ局であるものとし、以下、マスタ局1、スレーブ局2,3,4と記すものとする。
上記ネットワークシステムの通信サイクルは、各ノード毎にデータ送信タイミングを割り当てられる専用時間帯と、任意の1又は少数のノードがデータ送信する共用時間帯に分けられている。この専用時間帯に各ノードが送信するデータは、例えば制御用データ等のように定周期性が強く求められるものである。一方、共用時間帯に送信されるデータは、例えば状態監視の支援データ(メッセージ)等である。上述してあるように、支援データ等を送信するノード数が多いと、共用時間帯をはみ出してしまい、専用時間帯に影響を与え、定周期性を崩してしまう可能性があるので、上記の通り、共用時間帯にデータ(メッセージ)送信するノード数を、1又は少数に制限している。以下の説明では、共用時間帯にデータ(メッセージ)送信できるノード数は1つとするが、この例に限らず、複数(少数)としてもよい。
本発明の基本的な特徴は、この共用時間帯にデータ送信できるノードの決定方法にあり、各ノードが各々独立してバス使用権の調停を行う分散型調停方法を用いることで、上記特許文献1のような専用局が必要なくなると共に、更に自局の現在の状況(溜まっている未送信メッセージ数等)に基づいて自局の優先順位データを動的に作成してこれを他局に通知することで、上記分散型調停において、例えば未送信メッセージ数が多い局が調停に勝利し易くなるので、システム全体として、溜まったメッセージ数の偏りを無くすことが出来る。これより、システムとしてのバランスも良くなり、特定のノードの処理が滞って、その影響が全体に波及することもなくなる。
図2は、上記各ノードのハードウェア構成図である。
図2に示すノード10は、CPU11、プログラムメモリ部12、メモリ部13、伝送制御部14、サイクルタイマ15、センドタイマ16等を有する。メモリ部13は、データメモリ部13a、送信バッファ13b、受信バッファ13c等の記憶領域を有する。
CPU11は、プログラムメモリ部12に格納されているプログラム、データメモリ部13aに格納されている各種データを用いて、後述するフローチャート図(図5、図6、図7等のフローチャート)に示す処理を実行する。
図3は、この様なフローチャートに示す処理に係わる各種機能を示す機能ブロック図である。図3には、上記基本的な特徴に係わる機能部のみを示す。
図3において、バス使用権要求部21は、上記専用時間帯において自ノードに割り当てられた送信タイミングにおいて、上記共用時間帯に送信すべき種類のデータ(状態監視の支援データ(メッセージ)等)に関して未送信データがある場合には、自局の現在の状況(未送信メッセージ数等)に基づいて自局の優先順位データを動的に作成し、この動的優先順位データを付加したバス使用権要求をブロードキャストで送信する。
優先順位データ格納部22は、上記専用時間帯において、各局が送信したバス使用権要求を受信する毎に、このバス使用権要求に付加されている優先順位データを記憶する。尚、バス使用権要求はブロードキャストで送信することから、自局が送信したバス使用権要求も受信して、その優先順位データを記憶する。優先順位データは、例えばそのバス使用権要求の送信元のノードの局番等と対応付けて記憶する。
その後、上記共用時間帯に入ると、調停部23は、優先順位データ格納部22に記憶した優先順位データに基づいてバス使用権の調停を行い、調停勝利又は敗北を決定する。すなわち、例えば、自局の優先順位データを、全ての他局の優先順位データと比較して、自局の優先順位データの値が最も大きい場合には調停勝利と判定し、それ以外は調停敗北と判定する。
自局の調停部23が調停勝利と判定したノードのみが、共用時間帯においてデータ(未送信メッセージ等)を送信できる。
また、図3には、上記バス使用権要求部21において優先順位データを作成する為の構成の一例を示してある。すなわち、バス使用権要求部21は、例えば、自ノード内に溜まっている未送信メッセージの数を計数する計数部21aと、この計数部21aで計数した未送信メッセージ数と自局番とを組み合わせて優先順位データを作成する優先順位データ作成部21bとを有する。
上記構成により、本例のネットワークシステムでは、専用局を必要とせずに支援データ交換用の時間帯における送信局数を制限することが出来ると共に、この送信局数の制限は、優先順位データをシステムの状態に応じて動的に決定するものであって、特に各局の未送信メッセージ数に基づいて決定することで、未送信メッセージ数が多い局ほど優先的にメッセージ送信できるので、ネットワークシステム全体としてメッセージを偏り無く消化することが出来るようになる。
尚、専用局とは上記マスタ局1のことではなく、上記特許文献1の“送信局数の制限を集中的に行う専用局”のことである。
また、本例のノードは、上記図3に示す特徴だけでなく、更に以下に述べる特徴を有していても良い。尚、以下に述べる特徴については、既に、本出願人が、特願2003-395940号(以下、先願という)において提案している。
すなわち、特に図示しないが、ノード10は、マスタ局である場合には、自局のサイクルタイマ15に基づく通信サイクルの切れ目に同期化フレームを送信する第1の同期化部を有し、スレーブ局である場合には、受信した同期化フレームの遅延を補償して自局のサイクルタイマ15をマスタ局のサイクルタイマ15と同期化させる第2の同期化部を有する。更に、マスタ局/スレーブ局とも、自局のサイクルタイマ15とセンドタイマ16とに基づいて自局のデータ送信タイミングを決定する送信タイミング決定部を有する。更に詳しくは、全てのスレーブ局が各々サイクルタイマ15を保有し、これをマスタ局のサイクルタイマ15と同期させて動作させる。例えば、当該ネットワークシステムの通信サイクルが周期Tであるものとし、同期化フレームの受信遅延時間をt(予め求めて登録しておく)とすると、同期化フレームを受信したら、“T−t”をサイクルタイマ15に再設定して再起動する。
そして、各局毎に自局のサイクルタイマ15を元にセンドタイマ16を起動して、センドタイマ16のタイムアップ時点を自局のデータ送信タイミングとする。すなわち、自局のサイクルタイマ15のタイムアップをトリガとしてセンドタイマ16を起動する。尚、センドタイマ16の設定値は、各局毎に互いに重複しないように設定する(例えば局番に基づいて設定する)。
上記の構成により、同期化フレームの受信までに掛かる時間が長くても影響されず、自局の送信タイミングが他局の送信タイミングと重なることはない。また同期化フレームが途中で消失したサイクルにおいても従来のようにそのサイクルにおける送信ができなくなってしまうという問題が生じることはない。また、マスタ局のダウンや脱落等により任意のスレーブ局が新たなマスタ局となった場合でも、このスレーブ局(新マスタ局)はマスタ機能の引継ぎの際には同期化されたサイクルタイマ15のタイミングを継続して通信サイクルも継続する。したがって、従来のように周期ずれが発生するという問題は生じることはない。
各局は、この様に決定されたデータ送信タイミングで、自局の制御用データ等を送信すると共に、上記バス使用権要求を送信する。
尚、上記センドタイマ16がタイムアップしたら、第2の設定値(当該タイムアップ時点から専用時間帯の終わりまでの時間であり、予めユーザが求めて登録しておくことができる)を、センドタイマ16に設定して再起動し、これにより再びセンドタイマ16がタイムアップしたら、上記調停部23による調停処理が行われる。
尚、ノード10はコンピュータの一種であると定義できる。
尚、送信するデータは、一旦送信バッファ13bに格納された後、伝送制御部14によってシリアルバス5上に流される。また、伝送制御部14によって受信したデータは、一旦受信バッファ13cに格納された後、CPU11によって処理される。
以下、上記ネットワークシステムの各ノードの処理動作について、図4〜図7を参照して、より詳細に説明するが、図4〜図7に示す一例は、上記先願による送信タイミング決定方法を用いるものとして説明するが、これは一例であり、この例に限らず、従来の他の送信タイミング決定方法を用いてもよい。但し、上記先願による送信タイミング決定方法を用いる場合には、上述した効果も併せて得られることになる。
図4に、図1のネットワークシステムにおける各局の動作タイミングを示す。ここでは、簡単に説明する為、マスタ局1とスレーブ局2,3のみを示すが、勿論、スレーブ局数は3以上であってよい。
図4に示すように、図1のネットワークシステムでは、概略的には、周期Tの1サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分けている。そして、各ノードは、専用時間帯では自ノードに割り当てられる送信タイミング(タイムスロット)において、制御データを送信すると共に、もし送信すべき支援データ(メッセージ等)がある場合には、他の全ての局に対して(例えばブロードキャストで)、共用時間帯におけるバス使用権要求を出す。そして、もしバス使用権調停に勝利した場合には、共用時間帯においてメッセージを送信する。
図4に示す概略的な動作に対応するマスタ局、スレーブ局の処理フローチャートを、それぞれ、図5(a)、(b)、図6(a)〜(c)に示す。
ここで、図4、図5(a)、(b)、図6(a)〜(c)に示す概略的な動作自体は、本出願人が既に出願している特願2003−395940号(以下、先願と記す)における図7、図8(a)、(b)、図9(a)〜(c)と略同様であってよい。本手法が先願と異なる点は、図7の処理にある(先願の図10や図11とは異なる)。すなわち、先願ではバス使用権を各局に公平に分配することを目的としていたのに対して、本手法では、メッセージを偏り無く消化することが出来るようにすることを目的としている点で異なる。
但し、以下、図5(a)、(b)、図6(a)〜(c)に示す処理についても、図4を参照しつつ説明する。
図5は、マスタ局の処理フローチャート図であり、図5(a)はサイクルタイマ割込処理、図5(b)はデータ受信割込処理を示す。
図5(a)に示す処理は、マスタ局において自己のサイクルタイマ15がタイムアップする毎に割込処理として実行される。すなわち、マスタ局は、サイクルタイマ15がタイムアップすると、サイクルタイマの停止(ステップS11)、サイクルタイマに周期Tを設定して起動(ステップS12,S13)、同期化フレームを送信(ステップS14)、センドタイマ16に送信タイミングを設定して起動(ステップS15,S16)、という各処理を実行する。尚、処理順序は必ずしもこの順番でなくてもよく、また並行して処理を行ってもよい。また、必ずしもサイクルタイマ15を逐一停止して周期Tを再設定する必要性はなく、上記処理は単なる一例を示しているに過ぎない。
図5(b)に示す処理は、データ/要求受信毎に実行される割込処理であり、受信データの取り込みを実行し(ステップS21)、バス使用権要求があった場合にはこれを取り込む処理(ステップS22)が行われる。
図6は、スレーブ局の処理であり、図6(a)はサイクルタイマ割込処理、図6(b)は同期化フレーム受信割込処理、図6(c)はデータ受信割込処理である。
図6(a)に示すステップS31〜S35の処理は、上記ステップS11〜S16の処理とほぼ同じであるが、異なる点は、ステップS14の同期化フレーム送信処理は行わないことである。
図6(b)は、同期化フレーム受信によって生じる割り込み処理である同期化フレーム受信割込処理のフローチャート図である。
図6(b)において、スレーブ局は、同期化フレームを受信すると、サイクルタイマ15を停止し(ステップS51)、「予め設定される同期化フレーム受信までの想定時間(遅延時間)を周期Tから引いた時間(T−遅延)」をサイクルタイマ15に再設定して再起動する(ステップS42,S43)。
図6(c)のステップS51,S52の処理は、図5(b)の処理と同じであるので、説明は省略する。
図7は、センドタイマ16のタイムアップによる割込み処理のフローチャート図であり、これはマスタ局もスレーブ局も同じ処理となる。
まず、図7のステップS63,S64の処理によって、図4に示すように、1サイクル内にセンドタイマ16は2回タイムアップするので、各ノード(マスタ局、各スレーブ局)は、それぞれ、自局のセンドタイマ16がタイムアップすると、まず、これが1回目か2回目かを判定する(ステップS61)。判定方法としては、例えばセンドタイマ16のタイムアップ時に当該図7の処理後にセットされサイクルタイマ15のタイムアップでリセットされるフラグを用意して、これを参照すればよい。これによって、1回目のタイムアップ時にはフラグはリセットされており、2回目はセットされているので、これによりステップS61の判定が行える。
上記ステップS61の判定により、もし1回目であればステップS62〜S68の処理を実行し、もし2回目であればステップS69〜S72の処理を実行する。
センドタイマ16の1回目のタイムアップの際には、センドタイマを停止し(ステップS62)、当該タイムアップ時点から共用時間帯の始まりまでの時間(予め各局毎に求められて記憶されている)をセンドタイマ16に再設定して再起動し(ステップS63,S64)、制御データを送信する(ステップS65)。また、他局に送信すべき支援データ(メッセージ)がある為に共用時間帯においてバスを使用したい場合には(ステップS66、YES)、自局の現在の状況(未送信メッセージ数等)に基づいて動的に優先順位データを作成し(ステップS67)、この優先順位データを付加したバス使用権要求を送信する(ステップS68)。このバス使用権要求送信は、ブロードキャストで行い、全局でその要求を受信して要求があったことを認識する。どの局からの要求であるのかを判断するには、要求フレームに要求元の局番を付加しても良いし、受信時のセンドタイマ16の値から逆算(TDMAなので送信タイミングと局番は1対1)しても良い。
上述したようにバス使用権要求はブロードキャストで行うので、自局が送信した要求も受信する。当然、他の局がバス使用権要求を出した場合には、このバス使用権要求を受信するので、図5(b)のステップS22または図6(c)のステップS52のバス使用権要求取り込み処理を行うが、その際、例えば各バス使用権要求に含まれる要求送信元の局番号と上記優先順位データとを取り出して記憶しておく。
次に、センドタイマ16の2回目のタイムアップの際、すなわち共用時間帯の開始時点では、まず、バス使用権要求の調停処理を実行する(ステップS69)。これは、上記記憶しておいた全ての優先順位データ同士を比較して、最も優先順位が高い(例えば、後述する例では、優先順位データの値が最も大きい)優先順位データを求めるものである。そして、この最上位の優先順位データの送信元の局番号が、自局の局番号であった場合には(ステップS70,YES)、自局のメッセージを送信できる(ステップS71)。勿論、最上位の優先順位データの送信元の局番号が、自局の局番号では無い場合には(ステップS70,NO)、自局のメッセージは送信できない。メッセージを送信出来た場合も出来なかった場合も、最後に、今回取り込んだバス使用権要求を消去して、本処理は終了する。
尚、自局がバス使用権要求を送信しないサイクルでは、ステップS69〜S72の処理を省略してもよい。
尚、ここで、上記ステップS63のセンドタイマ16の再設定について、一例を用いて説明するならば、例えば周期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を利用している。
上記ステップS67の処理、すなわち自局の現在の状況(未送信メッセージ数等)に基づいて動的に優先順位データを作成する処理について、以下、詳細に説明する。
当該優先順位データ作成方法は、基本的には未送信メッセージの数で優先順位を上下できるように優先順位データを作成すれば良いが、優先順位がネットワークシステム全体において一意(ユニーク)であることが望ましい。つまり、ある通信サイクルにおいて、複数の局が同じ値の優先順位データを作成することが無いようにすることが望ましい。そこで未送信メッセージ数と自局番と組み合わせれば、複数ノードで未送信メッセージ数が一致しても局番は異なるので、優先順位は一意と成る。未送信メッセージ数と自局番とを組み合わせた優先順位データの算出方法は、例えば優先順位=「未送信メッセージ数×局数+自局番」とすることが良い。勿論、この例に限らず、各局が個別に算出する優先順位が、ネットワークシステム全体において一意となるような算出方法であれば何でも良い。あるいは、必ずしも一意なものとならなくてもよい。
ここでは、上記の式を用いるものとし、例えば一例として局番が0〜15までの16個の局がネットワークに接続されている場合では、優先順位=「未送信メッセージ数×16+自局番」となる。
以上の様に動的に優先順位データを作成して、これを用いて上記調停を行うことにより、未送信メッセージの溜まったノードが優先してバスを使用することが可能になる。
一例として、局番0〜15までの16の局がネットワークに接続されたシステムにおいて、あるとき、局番0,1、2の3局がそれぞれ3,2、1個の未送信メッセージを溜めている場合を例にして以下に具体例を説明する。ここでは、上記“優先順位=「未送信メッセージ数×局数+自局番」”の式を用いるものとするので、優先順位データの値が最も大きい局が、調停に勝利することになる。尚、以下の説明では、局番0の局は局0、局番1の局は局1、局番2の局は局2と記すものとする。また、尚、以下の処理中に新たな未メッセージは発生しないものとする。
上記一例においては、最初のバス使用権要求の際には、局0は優先順位データ48(3×16+0)を、局1は33(2×16+1)を、局2は18(1×16+2)を、それぞれ送信する。優先順は大きい順なので局0が最優先となり調停に勝利するので、局0がバスを使用して自局のメッセージを送信する。局0がバスを使用して未送信メッセージを1つ消化すると、局0の溜めている未送信メッセージは2個になる。
次のバス使用権要求の際には、局0は優先順位データ32(2×16+0)を、局1は33(2×16+1)を、局2は18(1×16+2)を、それぞれ送信する。優先順は大きい順なので局1が最優先となりバスを使用する。局1がバスを使用して未送信メッセージを1つ消化すると、局1の溜めている未送信メッセージは1個になる。
次のバス使用権要求の際には、局0は優先順位データ32(2×16+0)を、局1は17(1×16+1)を、局2は18(1×16+2)を、それぞれ送信する。優先順は大きい順なので局0が最優先となりバスを使用する。局0がバスを使用して未送信メッセージを1つ消化すると、局0の溜めている未送信メッセージは1個になる。
次のバス使用権要求の際には、局0は優先順位データ16(1×16+0)を、局1は17(1×16+1)を、局2は18(1×16+2)を、それぞれ送信する。優先順は大きい順なので局2が最優先となりバスを使用する。局2がバスを使用して未送信メッセージを1つ消化すると、局2の溜めている未送信メッセージは0個になる。
よって、次のバス使用権要求の際には、局2はバス使用権要求を行わないので、局0は優先順位データ16(1×16+0)を、局1は17(1×16+1)を、それぞれ送信する。優先順は大きい順なので局1が最優先となりバスを使用する。局1がバスを使用して未送信メッセージを1つ消化すると、局1の溜めている未送信メッセージは0個になる。
よって、次のバス使用権要求の際には、局0のみが優先順位データ16(1×16+0)を送信する。他にバス使用権要求はないので局0がバスを使用する。局0がバスを使用して未送信メッセージを1つ消化すると、局0の溜めている未送信メッセージは0個になる。
尚、未送信メッセージの“数”ではなく、全未送信メッセージのデータ量の総和を用いるようにしてもよい。
以上の様に、溜めている未送信メッセージ数が同数ならば局番の大きい順にバス使用権を獲得できるが、未送信メッセージ数が異なれば未送信メッセージ数の大きい順にバス使用権を獲得でき、システム全体として、溜まったメッセージ数の偏りを無くすことが出来る。
これにより、例えば、特定のノードが非常に多くのメッセージを送信したい場合、この特定ノードが優先的に(未送信メッセージ数がある程度減少するまでは何度も連続して)バス使用権を獲得できるので、この特定のノードでのメッセージ溢れの発生を防止することが出来る。また、特定のノードの処理が滞って、その影響がシステム全体に波及することもなくなる。また、この様に未送信メッセージ数が多いノードが優先的にメッセージ送信できることで未送信メッセージ数を減らしていけば、各ノードに溜まる未送信メッセージ数がほぼ同じとなり、システムとしてのバランスも良くなる。また、上記特定のノードが非常に多くの未送信メッセージを溜めることになる状況としては、例えば、システムの支援ツールを1つのノードに複数台繋げてメッセージを大量に発行する場合が考えられるが、この様な状況でも、本手法ではメッセージ量に応じてバス使用権が分配されるので、安心して使うことができる。あるいは上記支援ツールの代わりに高速なネットワークとのゲートウェイを繋げる場合も考えられるが、高速ネットワークから来る大量のメッセージ量に応じてバス使用権が分配されるので、メッセージが溢れることが無くなる。
本例によるネットワークシステム全体の概略構成図である。 図1に示す各ノードのハードウェア構成図である。 各ノードの機能ブロック図である。 図1のネットワークシステムにおける各局の動作タイミングを示す図である。 マスタ局の処理フローチャート図であり、(a)はサイクルタイマ割込処理、(b)はデータ受信割込処理を示す。 スレーブ局の処理フローチャート図であり、(a)はサイクルタイマ割込処理、(b)は同期化フレーム受信割込処理、(c)はデータ受信割込処理である。 センドタイマのタイムアップによる割込み処理のフローチャート図である。
符号の説明
1 マスタ局
2,3,4 スレーブ局
5 シリアルバス
10 ノード
11 CPU
12 プログラムメモリ部
13 メモリ部
13a データメモリ部
13b 送信バッファ
13c 受信バッファ
14 伝送制御部
15 サイクルタイマ
16 センドタイマ
21 バス使用権要求部
21a 計数部
21b 優先順位データ作成部
22 優先順位データ格納部
23 調停部

Claims (7)

  1. 共通シリアルバスを介して複数のノードが通信を行うネットワークシステムの通信サイクルを、各ノード毎に送信タイミングを割り当てられる専用時間帯と、各ノード間の調停で選ばれたノードが送信する共用時間帯に分け、
    各ノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングにおいて、前記共用時間帯に送信すべき種類のデータに関して未送信データがある場合には、自局の現在の状況に基づいて自局の優先順位データを動的に作成し、該動的優先順位データを付加したバス使用権要求をブロードキャストで送信し、
    各ノードは、前記送信されたバス使用権要求を受信する毎に、該バス使用権要求に付加されている前記動的優先順位データを記憶し、
    その後、前記専用時間帯においてバス使用権要求を送信した各ノードは、前記記憶した全ての動的優先順位データに基づいて各々独立してバス使用権の調停を行い、
    調停に勝ったノードが、前記共用時間帯においてデータ送信することを特徴とするシリアルバス使用権の分散調停方法。
  2. 前記動的優先順位データは、少なくとも自局の前記未送信データの数に基づいて作成されることを特徴とする請求項1記載のシリアルバス使用権の分散調停方法。
  3. 前記動的優先順位データは、前記ネットワークに接続されるノード数を前記未送信データ数に乗じて、該乗算結果に自局の局番を加算することで求めることを特徴とする請求項2記載のシリアルバス使用権の分散調停方法。
  4. 前記ネットワークシステムは、産業用途のネットワークシステムであり、
    前記各ノードは、前記専用時間帯において自ノードに割り当てられた送信タイミングで制御データ交換も行い、該制御データ交換の定周期性が求められるシステムであることを特徴とする請求項1〜3の何れかに記載のシリアルバス使用権の分散調停方法。
  5. 共通シリアルバスを使って複数のノードが通信を行い、その通信サイクルは、各ノード毎に送信タイミングを割り当てられる専用時間帯と、1又は少数のノードがデータ送信する共用時間帯に分けられているネットワークシステムにおける前記ノードであって、
    前記専用時間帯において自ノードに割り当てられた送信タイミングにおいて、前記共用時間帯に送信すべき種類のデータに関して未送信データがある場合には、自局の現在の状況に基づいて自局の優先順位データを動的に作成し、該動的優先順位データを付加したバス使用権要求をブロードキャストで送信するバス使用権要求手段と、
    前記専用時間帯において送信されたバス使用権要求を受信する毎に、該バス使用権要求に付加されている前記動的優先順位データを記憶する優先順位データ記憶手段と、
    該記憶した全ての前記動的優先順位データに基づいてバス使用権の調停を行う調停手段とを有し、
    該調停に勝った場合、前記共用時間帯においてデータ送信することを特徴とするノード。
  6. 前記バス使用権要求手段は、自ノード内に溜まっている未送信データ数を計数する計数手段と、該計数手段で計数した未送信データ数と自局番とを組み合わせて前記優先順位データを作成する優先順位データ作成手段とを有することを特徴とする請求項5記載のノード。
  7. 共通シリアルバスを使って複数のノードが通信を行い、その通信サイクルは、各ノード毎に送信タイミングを割り当てられる専用時間帯と、1又は少数のノードがデータ送信する共用時間帯に分けられているネットワークシステムにおける前記ノードにおけるコンピュータに、
    前記専用時間帯において自ノードに割り当てられた送信タイミングにおいて、前記共用時間帯に送信すべき種類のデータに関して未送信データがある場合には、自局の現在の状況に基づいて自局の優先順位データを動的に作成し、該動的優先順位データを付加したバス使用権要求をブロードキャストで送信する機能と、
    前記専用時間帯において送信されたバス使用権要求を受信する毎に、該バス使用権要求に付加されている前記動的優先順位データを記憶する機能と、
    該記憶した全ての前記動的優先順位データに基づいてバス使用権の調停を行う機能と、
    該調停に勝った場合、前記共用時間帯においてデータ送信する機能と、
    を実現させる為のプログラム。
JP2004339560A 2004-11-24 2004-11-24 シリアルバス使用権の分散調停方法、ノード、プログラム Pending JP2006148815A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004339560A JP2006148815A (ja) 2004-11-24 2004-11-24 シリアルバス使用権の分散調停方法、ノード、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004339560A JP2006148815A (ja) 2004-11-24 2004-11-24 シリアルバス使用権の分散調停方法、ノード、プログラム

Publications (1)

Publication Number Publication Date
JP2006148815A true JP2006148815A (ja) 2006-06-08

Family

ID=36627951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004339560A Pending JP2006148815A (ja) 2004-11-24 2004-11-24 シリアルバス使用権の分散調停方法、ノード、プログラム

Country Status (1)

Country Link
JP (1) JP2006148815A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012881A (zh) * 2010-11-29 2011-04-13 杭州中天微系统有限公司 基于总线监控器的系统芯片总线优先级动态配置装置
CN111400239A (zh) * 2020-04-15 2020-07-10 联合华芯电子有限公司 片内分布式互联总线系统及多核处理器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04256246A (ja) * 1991-02-07 1992-09-10 Mitsubishi Electric Corp バス優先占有方式およびその方式を使用した通信ネットワーク接続装置
JPH05327727A (ja) * 1991-06-13 1993-12-10 Sumitomo Metal Ind Ltd 多重伝送方式
JPH08316972A (ja) * 1995-05-16 1996-11-29 Nec Corp 回線使用優先順位調整方法とそのシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04256246A (ja) * 1991-02-07 1992-09-10 Mitsubishi Electric Corp バス優先占有方式およびその方式を使用した通信ネットワーク接続装置
JPH05327727A (ja) * 1991-06-13 1993-12-10 Sumitomo Metal Ind Ltd 多重伝送方式
JPH08316972A (ja) * 1995-05-16 1996-11-29 Nec Corp 回線使用優先順位調整方法とそのシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012881A (zh) * 2010-11-29 2011-04-13 杭州中天微系统有限公司 基于总线监控器的系统芯片总线优先级动态配置装置
CN111400239A (zh) * 2020-04-15 2020-07-10 联合华芯电子有限公司 片内分布式互联总线系统及多核处理器

Similar Documents

Publication Publication Date Title
JP5080448B2 (ja) 2つのバスシステムを同期する方法および装置、並びに2つのバスシステムから成る構成
US9380577B2 (en) Method and device for collaborative data communication in a radio network
EP0833479B1 (en) Contention resolution process for data networks
JP4790289B2 (ja) 非同期ネットワークでパケット送達時間を保証する方法、装置、およびシステム
JPH0411057B2 (ja)
JP2008113457A (ja) 多数のバスのサイクルタイムを同期させる方法と装置及び対応するバスシステム
JP2006094553A (ja) 高効率なポーリング手順によるデータ通信発明の分野
JP5107704B2 (ja) バスシステムの制御方法、バスシステムの装置およびバスシステム
JP2005159754A (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
JP6265058B2 (ja) ネットワーク伝送システム、そのマスタノード、スレーブノード
CN113347048B (zh) 自适应调整网络组态的方法、节点设备和存储介质
GB2490963A (en) Terminals in CSMA-CA group share seeds for pseudo-random back-off generation and maintain table of all group members' waiting times
JP4594124B2 (ja) 通信システム及び通信方法
CN113315668B (zh) 自适应调整网络组态的方法、节点设备和存储介质
JP6055019B2 (ja) 複数のcpuモジュールを備えるplcシステム及び制御方法
US5535212A (en) Implicit token media access protocol without collision detection
US5706430A (en) Method and system for sequentially broadcasting data according to pre-assigned time slots with and without the reception of a synchronization packet
JP2006148815A (ja) シリアルバス使用権の分散調停方法、ノード、プログラム
US5450404A (en) Explicit and implicit token media access protocol with multi-level bus arbitration
US5436901A (en) Synchronous time division multiplexing using jam-based frame synchronization
JP2003333048A (ja) 車載通信制御システム
WO2015185526A1 (en) Method of contending for access to a communication channel and associated communication device
CN114938542B (zh) Ble协议栈多链路管理方法、芯片和系统
JP2001144789A (ja) 送信衝突制御装置、通信装置及び伝送システム並びにプログラムを記録したコンピュータ読み取り可能な記録媒体
GB2274046A (en) Media access protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071016

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405