JP2008048395A - マスタ・スレーブ同期通信システム - Google Patents

マスタ・スレーブ同期通信システム Download PDF

Info

Publication number
JP2008048395A
JP2008048395A JP2007189059A JP2007189059A JP2008048395A JP 2008048395 A JP2008048395 A JP 2008048395A JP 2007189059 A JP2007189059 A JP 2007189059A JP 2007189059 A JP2007189059 A JP 2007189059A JP 2008048395 A JP2008048395 A JP 2008048395A
Authority
JP
Japan
Prior art keywords
slave
master
synchronous communication
cycle
timing
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
JP2007189059A
Other languages
English (en)
Inventor
Toshiyuki Miyamatsu
利行 宮松
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.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
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 Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2007189059A priority Critical patent/JP2008048395A/ja
Publication of JP2008048395A publication Critical patent/JP2008048395A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 IEEE1394ネットワーク上に接続されたマスタと全スレーブが制御周期内に制御データの授受を行う同期通信システムにおいて、制御周期によらず、通信遅延を一定にする。
【解決手段】 マスタは、同期単位、制御周期、スレーブ数に基いて、マスタの制御データの送受信のタイミングや制御処理のタイミングが設定された同期通信管理テーブルを作成する。また、その同期通信管理テーブルに基いてスレーブの制御データの送受信のタイミングや指令実行や応答作成のタイミングが設定された同期通信情報データテーブルを作成しスレーブに通知する。マスタとスレーブは、それらの同期通信管理テーブルおよび同期通信情報データテーブルに従って通信する。
また、制御周期が複数ある場合は、タイミングを同期単位だけずらした同期通信管理テーブルおよび同期通信情報データテーブルを作成する。
【選択図】図1

Description

本発明は、IEEE1394ネットワークを使用したマスタとスレーブの同期通信システムおよび同期通信方式に関する。
従来のIEEE1394通信システムのアイソクロナス転送は、アイソクロナス転送をする機器は、予め、Isochronous Resource Manager(以下、IRMとする)から帯域幅とチャネルを獲得し、サイクル開始パケットを受けると、バスの使用権を獲得した機器がデータを送信する。各通信機器はアイソクロナス転送期間にバスの使用権を順に獲得してデータを送信するようになっている(例えば非特許文献1参照)。
通常、アイソクロナス転送期間で、すべての通信機器はデータを転送する仕組みになっているので、新たな機器を追加したいが残っている帯域が獲得したい帯域より少ない場合には、一つの機器に対するデータが減ってしまうか、新たな機器の追加ができないことになる。
このような問題に対して、アイソクロナスサイクルの整数倍を制御周期として、マスタが制御対象のスレーブを制御周期分のアイソクロナスサイクルに送信可能な数だけ割り付け、その割り付けに従って、順にスレーブと制御データの授受を行うことで、汎用な高速通信ネットワークであるIEEE1394を使用したマスタとスレーブの同期通信システムか構築できるようにする技術が開示されている。これを図18、図19を用いて説明する。
図18は、1局のマスタと8局のスレーブが500μsの制御周期で同期通信するための通信タイミング管理テーブルであり、1アイソクロナスサイクルに4局分割り付けられ、500μs分に相当する4アイソクロナスサイクルのうち先頭の2アイソクロナスサイクルを使用して通信を行うよう設定されている。図19は図18の通信タイミング管理テーブルに従い通信をしたタイミングチャートであり、500μsの最初の125μsでマスタがスレーブ1〜4までへの指令データC1〜C4を送信し、スレーブ1〜4はマスタへの応答データR1〜R4を送信している。さらに2番目のアイソクロナスサイクルである125μs〜250μsの間にマスタがスレーブ5〜8までへの指令データC5〜C8を送信し、スレーブ5〜8はマスタへの応答データR5〜R8を送信している。(特許文献1参照)
特開2005−229142号公報(図2、3) IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus
しかしながら、特許文献1に記載されている同期通信システムでは、図20に示すように、マスタの制御部と通信部、スレーブの制御部と通信部は、制御周期(アイソクロナスサイクルの整数倍)で同期してデータの送受信を行っている。
すなわち、ある制御周期Nに注目すると、2周期前の制御周期N−2のサイクルカウンタが#3のアイソクロナスサイクルで全スレーブの制御部が一斉に応答データを作成し、スレーブ通信部へ渡す。スレーブ通信部は制御周期N−1の決められたアイソクロナスサイクルで応答データを送信する。
マスタ通信部は、制御周期N−1のサイクル毎に応答データを受信し、次の制御周期Nのサイクルカウンタが#0のサイクルで全スレーブの応答データをマスタ制御部に渡し、マスタ制御部はその制御周期内で応答データを基に指令データを作成し、マスタ通信部へ指令データを渡す。
マスタ通信部は制御周期N+1で順に各スレーブに指令データを送信する。
そして、スレーブ通信部は制御周期分経過後の制御周期N+2のサイクルカウンタ#0で一斉に指令データをスレーブ制御部に渡している。
すなわち、スレーブからマスタへの応答データの送信、その応答データに基く次の指令データの作成、その指令データのスレーブへの送信、その指令データのスレーブでの処理の実行が、制御周期に同期して実行されていた。
従って、応答データの受信・指令データの送信のそれぞれで通信にかかる遅れ(以降、通信遅延と呼ぶ)に制御周期が含まれており、図19のサイクル#2、#3ように通信が行われないアイソクロナスサイクルが有っても、通信遅延は制御周期より短くならず、制御性能の向上の妨げになるという問題があった。
また、制御処理に時間がかかるために制御周期が長くなるシステムでは、通信遅延が長くなり、制御性能の向上の妨げになるという問題があった。
本発明は、このような問題点に鑑みてなされたものであり、マスタがスレーブからの応答データを受信し、スレーブへの指令データを作成し、それをスレーブへ送信するタイミング、および、スレーブがマスタから指令データを受信し、その指令データを実行し、マスタへの応答データを作成し、マスタへ送信するタイミングを定めたテーブルを自動的に生成し、該テーブルをマスタとスレーブに備え、通信遅延を確実に制御周期以下の一定値に抑制したマスタ・スレーブ同期通信システムを提供するものである。
上記問題を解決するため、本発明は、次のようにするものである。
請求項1に記載の発明は、1局のマスタと1局以上のスレーブがIEEE1394ネットワーク上に接続され、アイソクロナスサイクルの整数倍の制御周期に同期して、前記マスタと前記スレーブが通信するマスタ・スレーブ同期通信システムにおいて、
前記マスタが、全ての前記スレーブとの通信に必要なアイソクロナスサイクル単位での時間を意味する同期単位を、前記スレーブからの受信の場合には前記制御周期の最後から設定し、前記スレーブへの送信の場合には前記同期単位を前記制御周期の最初から設定した同期通信管理テーブルを備え、
前記スレーブが、前記マスタへの送信の場合には前記同期単位を前記制御周期の最後から設定し、前期マスタからの受信の場合には前記同期単位を前記制御周期の最初から設定した同期通信情報データテーブルを備えたことを特徴とするものである。
また、請求項2に記載の発明は、請求項1に記載の発明において、前記マスタが備える前記同期通信管理テーブルが、前記マスタが前記スレーブへの指令データを作成する制御処理を起動するタイミングと、前記マスタが送信する前記スレーブの数と前記スレーブ番号および前記マスタが受信する前記スレーブの数と前記スレーブ番号とを前記タイミング毎に保持し、
前記スレーブが備える前記同期通信情報データテーブルが、前記スレーブが、前記マスタから指令データを受信する前記タイミングと、前記指令データを実行する前記タイミングと、前記マスタへの応答データを作成する前記タイミングと、前記マスタへ応答データを送信する前記タイミングとを保持することを特徴とするものである。
また、請求項3に記載の発明は、請求項1に記載の発明において、前記マスタに備えられたスレーブ割付部が、あらかじめ設定された前記同期単位と前記制御周期と、前記同期単位内において通信する前記スレーブ数と、前記スレーブをユニークに指定するスレーブ番号の配列とから構成される制御周期データをもとに前記同期通信管理テーブルを作成し、該同期通信管理テーブルに基づいて前記同期通信情報データテーブルを作成することを特徴とするものである。
また、請求項4に記載の発明は、請求項1に記載の発明において、前記マスタが、前記同期通信管理テーブルに従い、前記制御処理を起動するタイミングを検出すると前記制御処理を実行し、前記スレーブからの受信タイミングを検出すると受信を実行し、前記スレーブへの送信タイミングを検出すると送信を実行し、
前記スレーブが、前記同期通信情報データテーブルに従い、前記指令データを受信するタイミングを検出すると前記マスタからの指令データを受信し、前記指令データを実行するタイミングを検出すると前記指令データの処理を実行し、前記応答データを作成するタイミングを検出すると前記応答データを作成し、前記応答データを送信するタイミングを検出すると前記マスタへ前記応答データを送信することを特徴とするものである。
また、請求項5に記載の発明は、請求項1〜請求項4の何れかに記載の発明において、前記マスタと前記スレーブが通信する前記制御周期が複数存在し、前記スレーブは前記制御周期毎にグループ化され、前記グループ毎に前記同期単位ずつ前記制御周期をずらして前記同期通信管理テーブルと前記同期通信情報データテーブルを作成することを特徴とするものである。
また、請求項6に記載の発明は、請求項1〜5の何れかに記載の発明において、前記スレーブ割付部が前期制御周期データをもとに同期通信管理テーブルを作成する際に、前期同期単位内に通信を行わないアイソクロナスサイクルを検出すると、前記同期単位を最適値に短縮することを特徴とするものである。
また、請求項7に記載の発明は、請求項1〜5の何れかに記載の発明において、前期スレーブ割付部が前期制御周期データをもとに同期通信管理テーブルを作成する際に、通信にかかる時間が前期同期単位を超えることを検出すると、前記同期単位を最適値に延長することを特徴とするものである。
また、請求項8に記載の発明は、請求項1〜7の何れかに記載の発明において、前期マスタもしくは前期スレーブもしくは前期マスタおよび前期スレーブは最適化された前記同期単位をユーザーに通知することを特徴とするものである。
請求項1〜請求項4に記載の発明によれば、マスタとスレーブは、マスタに備えられた同期通信管理テーブルと、スレーブに備えられた同期通信情報データテーブルに基いて、
制御周期以下の同期単位で通信を行うので、通信遅延は同期単位のまま一定となり、制御性能の向上を図ることができる。
また、マスタでの制御処理に時間がかかり制御周期が長くなっても通信遅延は同期単位のまま一定となり、制御性能の向上を図ることができる。
請求項5に記載の発明によれば、制御周期が異なるグループ毎に通信タイミングを同期単位だけずらしながら、制御周期以下の同期単位で通信データの授受を行うので、各グループの通信遅延は同期単位のまま一定となり、制御性能の向上を図ることができる。
また、マスタでの制御処理に時間がかかり制御周期が長くなっても、通信遅延は同期単位のまま一定となり、制御性能の向上を図ることができる。
また、スレーブをグループ化して制御することで、一つの制御周期で複数の機能の指令データを作成する必要が無くなる。
例えば2足歩行ロボットの下半身と上半身のようにグループを分け、ロボットが転倒しないように、より応答性能が求められる下半身は制御周期も短く設定し、逆にマスタの負荷を軽減させるため、上半身の制御周期を長く設定しても、通信遅延は一定となり、制御性能を確保することが出来る。
例えば同じ制御周期でも双腕ロボットの右腕と左腕をそれぞれ別のグループにすることで、1つのグループ内のスレーブ数が減り、グループ毎にスレーブと制御データの授受にかかるアイソクロナスサイクルが短くなるため、右腕と左腕との間の動作は、制御に影響のない程度で同期を確保しつつ、それぞれの通信遅延は短くなり、片腕としての性能を向上させることが出来る。
請求項6〜7に記載の発明によれば、自動的に最適な同期単位で動作することが可能となり、通信速度や、ハードウェアの制約等により、1アイソクロナスサイクル内に通信可能なスレーブ数が変わる度に、設定を変更する必要がなくなる。
請求項8に記載の発明によれば、請求項6〜7で最適化された同期単位を認識することが可能となり、通信遅延を考慮したアプリケーションプログラムを作成することができる。
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
まず、以下の説明の中で出てくる、IEEE1394規格にて規定された機能名、信号名について説明しておく
図14はIEEE1394機器が持つコンフィグレーションROMの最小形式のフォーマットを表す図であり、ベンダーIDと言う、ベンダー固有の情報を表す、24ビットのvendor_idが含まれる。
図15はIEEE1394機器が持つコンフィグレーションROMの一般形式のフォーマットを表す図であり、図16は図15に含まれるbus_info_blockのフォーマットを表す図である。図14と同様のベンダーID(node_vendor_id)や、ベンダー内で機器を固有にする、8ビットのchip_id_hiと32ビットのchip_id_loを連結した40ビットのチップIDが含まれる。ベンダーIDとチップIDをあわせた64ビットの情報はEUI−64(Extended Unique Identifer、拡張固有識別子、64ビット)と呼ばれ全てのIEEE1394機器の中で、ユニークに識別できる情報である。
図17はIEEE1394機器が持つCYCLE_TIMEレジスタのフォーマットを表す図であり、secound_countや、cycle_count、cycle_offsetが含まれる。secound_countはcycle_countからの桁上がりが発生するたびに増加し、値が127のときに増加すると循環して0に戻る。cycle_countはcycle_offsetからの桁上がりが発生するたびに増加し、値が7999のときに増加すると循環して0に戻り、secound_countに桁上がりする。cycle_countの単位は125μsである。cycle_offsetは24.576MHzのローカルクロックの1ティックごとに増加し、値が3071のときに増加すると、循環して0に戻り、cycle_countに桁上がりする。
サイクル開始パケットとは、IEEE1394規格にて規定されているアイソクロナスサイクルの開始を示すパケットのことで固有周期の125μs毎にサイクルマスタとなった機器が送信する。
図1は、本発明の実施例を示すマスタ・スレーブ同期通信システムの構成図である。図において1はマスタ、2i(i=1、2、・・・n)はスレーブ、3はIEEE1394ネットワークである。
マスタ1は、制御周期データ11と、スレーブ検出部12と、スレーブ検出部12により検出された接続スレーブ情報121と、通信タイミング等の割付を行うスレーブ割付部13と、割り付けられた同期通信用の情報を格納する同期通信管理テーブル14と、処理タイミングを算出するサイクル開始パケット受信処理部15と、指令データ送信部16と送信する指令データ161と、応答データ受信部17と受信した応答データ171と、応答データ171を読み込み、指令データ161を作成する制御処理部18とで構成される。
但し、請求項1〜2および4に記載のシステムでは、同期通信管理テーブル14は予めプログラムとして作成されていてもよいし、他の機器から設定させるなど、別の手段でマスタ1へ通知してもよく、制御周期データ11、スレーブ検出部12、接続スレーブ情報121、スレーブ割付部13は省くことも出来る。
一方、スレーブ2iは、指令データ受信部2i1と受信した指令データ2i11と、応答データ2i2と送信する応答データ2i21と、送受信処理を行う同期通信処理部2i3と、各処理タイミングが格納された同期通信情報データテーブル2i31と、各処理タイミングを算出するサイクル開始パケット受信処理2i4と、応答データを作成する応答作成部2i5と、指令データを実行する指令処理部2i6とで構成される。
図2は、本発明の第1の実施例となる制御周期データの詳細図で、図1の制御周期データ11の詳細図であり、同期単位、スレーブを分けたグループ数、制御周期、制御スレーブ数と制御スレーブ番号で構成される。本実施例では、同期単位を250μsとし、制御周期を500μs、制御スレーブ数を4局、制御スレーブ番号をS1,S2,S3,S4とした1つのグループの例を示している。
なお、同期単位とは、マスタが全てのスレーブと通信(受信または送信)を行うために必要な連続したアイソクロナスサイクル数分の時間であってアイソクロナスサイクル時間である125μsを単位とした時間である。
図3は、本発明の第1の実施例となる、図1の同期通信管理テーブル14の詳細図である。同期通信管理テーブル14は制御周期に相当するアイソクロナスサイクルのサイクル数が格納される全サイクル数と、マスタの制御処理起動タイミングと、各サイクルにおいて指令データを送信するスレーブ数を表す送信スレーブ数、送信先のスレーブを表す送信スレーブ番号、応答データを受信するスレーブ数を表す応答スレーブ数、送信元のスレーブを表す受信スレーブ番号から構成される。本発明の実施例として図2の制御周期データと同じ設定の制御周期500μsでスレーブ4局の設定で、1サイクルで通信できるスレーブ数が2局の場合のデータを示している。
ここで、サイクル#はサイクル開始パケット受信時のCYCLE_TIMEのcycle_count値を制御周期に相当するアイソクロナスサイクル数で割った時の余り(剰余)の値とする。つまり、0〜アイソクロナスサイクル数−1の値を循環して増加する値となり、各タイミングの値はサイクル#が設定値となったタイミングを意味する。
図4は、本発明の第1の実施例となる、図1の同期通信情報データテーブル2i31(i=1〜4)の詳細図である。同期通信情報データテーブル2i31は制御周期に相当するアイソクロナスサイクル数と、指令データを受信するタイミングと、指令データを実行するタイミングと、応答データを作成するタイミングと、応答データを送信するタイミングから構成される。本発明の第1および第2の実施例として図3の同期通信管理テーブルに対応するスレーブ2i(i=1〜4)のデータを示している。
図5は本発明の第1の実施例となる通信タイミングチャートである。マスタは、図3の同期通信管理テーブル、各スレーブは図4の同期通信情報データテーブルに従って動作した時のもので、ある制御周期Nのマスタ制御処理に注目し、制御周期N−1の各スレーブの応答データを基に指令データを作成し、制御周期N+1で各スレーブに指令データを送信し、各スレーブが指令データを取り込んで実行している様子を表した図である。実際には、制御周期毎に同じ処理が実行されているが、ここでは、図に現れる処理について、制御周期N−1のスレーブの応答から制御周期N+1のマスタの指令の順に説明していく。
まず、制御周期N−1、サイクル#1のタイミングでは、スレーブ2i(i=1〜4)は、同じタイミングで応答データを作成する。
更に、制御周期N−1、サイクル#2のタイミングで、スレーブ2i(i=1、2)は、応答データRi(i=1、2)を送信し、制御周期N−1、サイクル#3のタイミングで、スレーブ2i(i=3、4)は、応答データRi(i=3、4)を送信する。
次に、制御周期N、サイクル#0のタイミングでは、マスタ1が制御処理を起動して、受信した応答データRi(i=1〜4)を基に指令データCi(i=1〜4)を作成する。この制御処理は通信処理を妨げない高速な処理、または低優先度の処理として実行される。
そして、制御周期N+1、サイクル#0のタイミングでマスタ1は指令データCi(i=1、2)を送信、スレーブ2i(i=1、2)が受信し、制御周期N+1、サイクル#1のタイミングでマスタ1は指令データCi(i=3、4)を送信、スレーブ2i(i=3、4)が受信する。
最後に、制御周期N+1、サイクル#2のタイミングでスレーブ2i(i=1〜4)は、一斉に指令を実行する。スレーブの指令実行処理もスレーブの通信処理を妨げない高速な処理、または低優先度の処理として実行される。
よって、応答データに関しては、同期単位前、つまり250μs前(125〜250μsのタイミング)に全スレーブが一斉に応答データを作成し、250〜375μsの間にマスタ1とスレーブ2i(i=1、2)が、375〜500μsの間にマスタ1とスレーブ2i(i=3、4)が応答データを授受することができ、制御周期前のデータではなく、一定の通信遅延前、つまり設定された同期単位前の同じタイミングのスレーブの情報を応答データとして、マスタが取得することができる。
また、指令データに関しては、最初の125μsにてマスタ1とスレーブ2i(i=1、2)が、125〜250μsの間にマスタ1とスレーブ2i(i=3、4)が、指令データの授受を行い、全スレーブに対しての指令データの授受が終った、同期単位後の250μs(250〜375μsのタイミング)に、全スレーブが一斉に指令実行を開始することができ、設定された同期単位後にスレーブが同期して指令データを実行することができる。
実際には、サイクル#で処理が定義され、制御周期毎に同じ処理が実行され、制御周期は500μsなので、サイクル#は0〜3の繰返しとなる。
以上により、制御周期500μs内にマスタ1が全スレーブ2i(i=1〜4)と通信データの授受することができ、かつ制御周期後まで待つことなく、一定の通信遅延後、つまり設定された同期単位後にスレーブが同期して指令データを実行し、また、制御周期前のデータではなく、一定の通信遅延前、つまり設定された同期単位前の同じタイミングのスレーブの情報を応答データとして、マスタが取得することができる。
図6は、本発明の第1のマスタ・スレーブ同期通信システムにおける、同期通信方式の通信初期化処理手順を示すフローチャートである。この図を用いて、制御周期データからマスタのスレーブ割付部13が同期通信で使用する同期通信管理テーブルと、スレーブが同期通信で使用する同期通信情報データテーブルを作成する手順を順を追って説明する。
はじめにS010で制御周期やスレーブ数、スレーブ番号等があらかじめ設定された制御周期データ11を取り出す。
次にS020で制御周期データ11に設定されているスレーブとネットワーク上に接続されている機器を対応付ける。これは、非特許文献1記載のIEEE1394規格の機能を利用してネットワーク上に接続されている全てのスレーブ情報121と、該スレーブとマスタが通信するための通信スレーブ番号を検出する。ここで、スレーブ情報121とは、図14のベンダーID、もしくは図16のEUI−64の情報を指し、スレーブとなる機器の判別にスレーブ情報121を使用する。またスレーブ番号は、スレーブ局に登録されている情報でもよいし、IEEE1394の規格の機能としてネットワーク上に接続されているIEEE1394機器に割り付けられるノードIDを利用してもよい。
S030でサイクル内通信可能スレーブ数として1アイソクロナスサイクルで同期通信することが可能なスレーブの数を算出する。ここでサイクル内通信可能スレーブ数はOHCI準拠のIEEE1394インターフェースを使用している場合はDMAコンテキスト数のハードウェアの制約となり、ハードウェアの制約がない場合は、指令データの帯域、応答データの帯域、機器の通信速度により、式(1)で求められる。(本実施例ではサイクル内通信可能スレーブ数を2としている)

サイクル内通信可能スレーブ数
= アイソクロナス転送の帯域 ÷ 1スレーブ分の送受信の帯域 ・・・(1)
1スレーブ分の送受信の帯域
={(ヘッダ+指令データ分の帯域)+ 指令データ送信時のギャップ
+(ヘッダ+応答データ分の帯域)+ 応答データ送信時のギャップ}

なお、ヘッダ、指令データ送信時のギャップ、応答データ送信時のギャップはIEEE1394規格において規定された帯域である。
次にS040で通信タイミング割付け可能かどうかを式(2)にて判断するが、式(2)が成り立てば050に進み、不成立の場合はS041でエラー処理を行い終了となる。

全スレーブ数 ÷ サイクル内通信可能スレーブ数 ≦ 全サイクル数・・・(2)
全サイクル数 = 制御周期[μs] ÷ 125[μs]・・・(3)
125μs:IEEE1394規格で規定されているアイソクロナスサイクル時間
次にS050で制御周期データ11、サイクル内通信可能スレーブ数から、制御周期を構成するアイソクロナスサイクル数分の同期通信管理テーブル14の送信データ部である、送信スレーブ数と送信スレーブ番号で構成される送信タイミングテーブルを作成し、設定されたスレーブを前詰めに順に割りつける。
次にS060で式(3)により算出された全サイクル数分の同期通信管理テーブル14の領域を確保、0クリアし、全サイクル数を設定、送信データ部は送信タイミングテーブルに従いデータを格納する。
S120で最初に送信するスレーブが割り付けられたサイクルをマスタの制御処理起動タイミングとして設定する。
S130で受信スレーブ番号の割り付けを開始するサイクル#として、受信割付開始サイクル#を式(4)で算出する。

受信割付開始サイクル# = 全サイクル数 − 同期単位サイクル数 ・・・(4)
同期単位サイクル数 = 同期単位[μs] ÷ 125[μs]
S140でサイクル#0の送信スレーブ数、送信スレーブ番号を、受信割付開始サイクル#の応答スレーブ数、受信スレーブ番号へコピーする。この処理を送信のサイクル#と受信のサイクル#を1サイクルずつずらしながら、全サイクル数分繰り返し、同期通信管理テーブルの受信データ部を作成する。
S150でスレーブの指令実行タイミングおよび応答作成タイミングをそれぞれ式(5)、(6)で算出する。

指令実行タイミング
= MOD((制御処理起動タイミング+同期単位サイクル数),
制御周期サイクル数) ・・・(5)
応答作成タイミング
= MOD((受信割付開始サイクル# + 制御周期サイクル数 − 1),
制御周期サイクル数)・・・(6)
MOD(A,B):AのBによる剰余
S160で上記までのステップにて作成された同期通信管理テーブル14からそれぞれのスレーブに対する指令受信タイミングと応答送信タイミングを抽出し、制御周期に相当するサイクル数と指令実行タイミングおよび応答作成タイミングのデータとあわせて同期通信情報データテーブルとして全スレーブへ通知する。
以上により、マスタ1に図3の同期通信管理テーブル14および、各スレーブ2iに図4の同期通信情報データテーブル2i31が作成される。
なお、同期通信管理テーブル14および、同期通信情報データテーブル2i31は、本マスタ・スレーブ同期通信システムの外部に存在するパソコン等に実装されるエンジニアリングツールで作成し、ネットワーク等を介して本システムのマスタやスレーブにダウンロードしても構わない。
図7は本発明のマスタ・スレーブ同期通信システムにおける、マスタの同期通信開始後のサイクル開始パケット受信時の処理手順を示すフローチャートである。この図でマスタがサイクル開始パケットを受信した時のイベント処理を順を追って説明する。
まず、S1000でサイクル#を算出する。
次に、S1010で同期通信管理テーブルから送信スレーブ数および、送信スレーブ番号、応答スレーブ数および、受信スレーブ番号について、サイクル#のタイミングのデータを抽出する。
S1020で抽出した応答スレーブ数が0でない場合は、受信スレーブ番号の応答データを受信する。
S1030で抽出した送信スレーブ数が0でない場合は、送信スレーブ番号の指令データを送信する。
S1040で制御処理起動タイミングがサイクル#と一致していれば、該当する制御処理を起動する。
S1000からS1040により、マスタのサイクル開始パケット受信時のイベント処理として同期通信処理が実行される。
図8は本発明のマスタ・スレーブ同期通信システムにおける、スレーブの同期通信開始後のサイクル開始パケット受信時の処理手順を示すフローチャートである。この図でスレーブがサイクル開始パケットを受信した時のイベント処理を順を追って説明する。
まず、S2000でサイクル#を算出する。
次に、S2010で同期通信情報データテーブルを読み出し、S2020で指令受信タイミングがサイクル#と等しい時はS2030で指令データを受信する。
S2040で指令実行タイミングがサイクル#と等しい時は、S2050で指令を実行する。もしくは指令処理を起動する。
S2060で応答作成タイミングがサイクル#と等しい時は、S2070で応答データを作成する。
S2080で応答送信タイミングがサイクル#と等しい時は、S2090で応答データを送信する。
S2000からS2080により、スレーブのサイクル開始パケット受信時のイベント処理として同期通信処理が実行される。
図6〜図8のフローチャートに従えば、図2の制御周期データから図3の同期通信管理テーブル、図4の同期通信情報データテーブルが作成され、マスタおよびスレーブが図5の通信タイミングチャートの通りに通信することができるので、制御周期内にマスタと全てのスレーブが制御データの授受を行うことができ、かつ、制御周期に依存しない制御周期以下の一定の通信遅延で同期通信が行えるのである。
図9は、本発明の第2の実施例となる図1の制御周期データ11の詳細図である。図2の制御周期データを複数のグループ分持たせた例で、本実施例では、同期単位を250μsとし、制御周期を500μs、制御スレーブ数を4局、制御スレーブ番号をS1,S2,S3,S4としたグループ1と制御周期を1ms=1000μs、制御スレーブ数を4局、制御スレーブ番号をS5,S6,S7,S8としたグループ2の2グループの例を示している。
図10は、本発明の第2の実施例となる、図1の同期通信管理テーブル14の詳細図である。構成は図3と同様で、制御周期が1msのグループ2があるため、全サイクル数が8となっている。本発明の実施例として図9の制御周期データの設定において、1アイソクロナスサイクルで通信できるスレーブ数は2局とした場合のデータを示している。
図11は、本発明の第2の実施例となる、図1の同期通信情報データテーブル2i31(i=1〜8)の詳細図である。同期通信情報データテーブル2i31(i=1〜8)は制御周期に相当するアイソクロナスサイクル数と、指令データを受信するタイミングと、指令データを実行するタイミングと、応答データを作成するタイミングと、応答データを送信するタイミングから構成される。本発明の第3および第4の実施例として図9の同期通信管理テーブルに対応するスレーブ2i(i=1〜8)のデータを示している。ここで、2i(i=1〜4)に関する同期通信情報データテーブル2i31(i=1〜4)は図4と同じである。
図12は、本発明の第2の実施例となる通信タイミングチャートである。マスタは、図10の同期通信管理テーブル、各スレーブは図11の同期通信情報データテーブルに従って動作した時のものである。2i(i=1〜4)に関するタイミングチャートは図5と同じであり、スレーブ2i(i=5〜8)についても基本的な動作は図5と同じため説明を省略する。
図12より、図5と同様に、グループ1は制御周期500μs内にマスタ1がグループに設定されている全スレーブ2i(i=1〜4)と通信データを授受することができ、かつ制御周期後まで待つことなく、一定の通信遅延後、つまり設定された同期単位後にスレーブが同期して指令データを実行し、また、制御周期前のデータではなく、一定の通信遅延前、つまり設定された同期単位前の同じタイミングのスレーブの情報を応答データとして、マスタが取得することが出来る。
グループ2に関しても、制御処理の起動タイミング、送受信のタイミング、指令実行タイミング、をグループ1から同期単位分だけずらすことで、制御周期1000μs内にマスタ1かグループに設定されている全スレーブ2i(i=5〜8)と通信データを授受することができ、制御周期に依存せず、マスタとスレーブの通信遅延は、同期単位の設定値で一定とすることが出来る。
図13は、本発明の第2のマスタ・スレーブ同期通信システムにおける、同期通信方式の通信初期化処理手順を示すフローチャートである。図6のフローチャートに対して複数のグループ化に対応した処理となっている。ここでは、図6のフローチャートと差異がある部分についてのみ説明する。
S010〜S030までは図6と同じである。
S040で、通信タイミング割付け可能かどうかの判断は式(2’)および(7)で行う。式(2’)、(7)いずれかの条件が成り立たない場合はS041でエラー処理となる。式(2’)、(7)のいずれも成り立つ場合のみ、通信タイミング割付け可能となり、S050に進む。

全スレーブ数 ÷ サイクル内通信可能スレーブ数 ≦ 全サイクル数・・・(2’)
グループスレーブ数j ÷ サイクル内通信可能スレーブ数
≦ 同期単位サイクル数 ・・・(7)

全スレーブ数:グループjで制御するスレーブ数の和
全サイクル数 = 制御周期jの最小公倍数[μs] ÷ 125[μs]・・・(3’)
125μs:IEEE1394規格で規定されているアイソクロナスサイクル時間
制御周期j:制御周期データ11のグループjの制御周期
通信スレーブ数j = 制御周期jの最小公倍数 ÷ 制御周期j
× グループスレーブ数j
グループスレーブ数j: グループjで制御するスレーブ数
同期単位サイクル数 = 同期単位[μs] ÷ 125[μs]
(j=1,2,…:グループ番号)
S050では、図6で作成した送信タイミングテーブルをグループ数分作成する。
次にS060で式(3’)により算出された全サイクル数分の同期通信管理テーブル14の領域を確保、0クリアし、全サイクル数を設定する。
S070で全サイクル数分のサイクル使用済みフラグを確保し、0クリアする。
S080でサイクル使用済みフラグを先頭から検索して、グループで使用する送信サイクル(式(7)の左辺の値)分、連続して未使用な領域があるかどうかを判断し、あればS090へ、なければS041でエラー処理をして終了する。
S090でグループ毎の送信タイミングテーブルからスレーブの割り付けられたタイミングを取り出し、未使用な連続領域の先頭サイクルを加算したサイクルに相当する、同期通信管理テーブル14のサイクルの送信スレーブ数に1を加え、送信先スレーブ番号にスレーブ番号を格納する。S090の処理をグループに設定された全スレーブ数分繰り返す。
S100で同期通信管理テーブルデータのグループ内の全スレーブの割付結果を全サイクル数分、制御周期で繰り返してコピーして、コピーしたサイクルのサイクル使用済みフラグを設定し、S110でグループ内のスレーブのうち、最初に送信するスレーブが割り付けられたサイクルから同期単位分のサイクル使用済みフラグを使用済みに設定する。
S120で式(8)のように、グループ内で最初に送信するスレーブが割り付けられたサイクルをマスタのグループj制御処理起動タイミングとして設定する。

グループj制御処理起動タイミング
= MIN(グループjで制御するスレーブの送信サイクル#) ・・・(8)
(j=1,2,…:グループ番号)
MIN(A,B,C,…):括弧内の値の最小値
S080からS120までの処理をグループ数分繰り返す。
S130、S140は全サイクル数の値が式(3’)となるだけで処理は同じである。
S150でグループ毎のスレーブの指令実行タイミングおよび応答作成タイミングをそれぞれ式(5’)、(6’)で算出する。

指令実行タイミング
= MOD((グループj制御処理起動タイミング+同期単位サイクル数),
制御周期jサイクル数) ・・・(5’)
応答作成タイミング
= MOD((受信割付開始サイクル# +制御周期jサイクル数 −1),
制御周期jサイクル数) ・・・(6’)
MOD(A,B):AのBによる剰余
(j=1,2,…:グループ番号)
S160で上記までのステップにて作成された同期通信管理テーブル14からそれぞれのスレーブに対する指令受信タイミングと応答送信タイミングを抽出し、制御周期に相当するサイクル数と指令実行タイミングおよび応答作成タイミングのデータとあわせて同期通信情報データテーブルとしてグループ内の全スレーブへ通知する。
S150からS160までの処理をグループ数分繰り返す。
以上により、マスタ1に図10の同期通信管理テーブル14および、各スレーブに図11の同期通信情報データテーブル2i31が作成される。
マスタ、スレーブの同期通信開始後のサイクル開始パケット受信時の処理手順を示すフローチャートは図7、図8とそれぞれ同じである。
図13および、図7、図8のフローチャートに従えば、図9の制御周期データから、図10の同期通信管理テーブル、図11の同期通信情報データテーブルが作成され、マスタおよびスレーブが図12の通信タイミングチャート通りに通信することが出来るので、制御するスレーブを複数のグループ分けても、それぞれの制御周期内にマスタと全てのスレーブが制御データの授受を行うことができ、かつ、制御周期に依存しない制御周期以下の一定の通信遅延で同期通信が行えるのである。
本発明の第3の発明として、同期単位時間の自動最適化についての実施例を、本発明の第1の実施例において、1アイソクロナスサイクルで通信できるスレーブ数が4局の場合として説明する。
図21は本発明の第3の実施例となる、同期通信管理テーブル14の詳細図である。図3の同期通信管理テーブルに対して、1アイソクロナスサイクルに割り付けられるスレーブ数が2局から4局に増えているため、送受信のスレーブ番号を格納するテーブルがそれぞれ4個となっており、スレーブS1〜S4がすべて1アイソクロナスサイクルに割り付けられている。
図22は本発明の第3の実施例となる、同期通信情報データテーブル2i31(i=1〜4)の詳細図である。図21の同期通信管理テーブルより、各スレーブの同期通信情報データテーブルはすべて同じタイミングとなるため、同じ値となっている。
図23は本発明の第3の実施例となる通信タイミングチャートである。マスタは、図21の同期通信管理テーブル、各スレーブは図22の同期通信情報データテーブルに従って動作した時のもので、図5の動作に対して、スレーブ4局との通信が1アイソクロナスで可能なため、制御周期N−1、サイクル#2のタイミングで全スレーブが応答データを作成、サイクル#3のタイミングで全スレーブが応答送信し、制御周期N+1、サイクル#0のタイミングでマスタは全スレーブの指令データを送信、各スレーブは指令データを受信し、サイクル#1のタイミングで全スレーブは一斉に指令を実行するように変更される。
制御周期データからマスタのスレーブ割付部13が同期通信で使用する同期通信管理テーブルと、スレーブが同期通信で使用する同期通信情報データテーブルを作成する手順を示す、同期通信方式の通信初期化処理手順を示すフローチャートは図6と同様で、差異となる、同期単位の最適化に関する部分について説明する。
S120までは図6と同じ処理を実行する。S130で、まず、式(4)で使用する同期単位サイクル数を、S050で作成された送信タイミングテーブルにおいて実際にスレーブが割り付けられたアイソクロナスサイクル数に置き換えることによって最適化する。また、同期単位をその置き換えられた同期単位サイクル数に相当する時間に変更する。
S140以降も同期単位サイクル数を最適化された同期単位サイクル数に置き換えた値を使用することで同様の処理となる。
よって、図2の同期単位があらかじめ設定された250μsに対し、最短の125μsに短縮して最適化することができ、より短い通信遅延で動作させることが可能となる。
同様に、S050で、実際にスレーブが割り付けられたアイソクロナスサイクル数が、あらかじめ設定された同期単位を超える場合も、S130であらかじめ設定された同期単位を延長して最適化することによって、適切な通信遅延で動作させることが可能となる。
ここで、S130にて同期単位サイクル数を最適化する際に、パラメータ等による設定もしくはエンジニアリングツールを介してのユーザーへの問い合わせにより、最適化処理の実行する/しないを切り替える処理にしてもよい。
また、最適化を実行する/しないにかかわらず、同期単位をアプリケーションプログラムやエンジニアリングツール等の機器で読み出せるデータとして保持することで、ユーザに同期単位を通知することができる。
以上により、1局のマスタと1局以上のスレーブがIEEE1394ネットワーク上に接続され、一定時間の制御周期に同期して、通信データを授受するマスタ・スレーブ同期通信システムにおいて、グループ毎に通信タイミングをずらしながら、制御周期以下の同期単位で通信データの授受を行うので、制御周期が長くなっても、通信遅延は影響を受けず、同期単位のまま一定となるので制御性能を向上させることが出来る。
制御周期の設定によらずマスタとスレーブの送受信データの通信に必要分の通信時間でマスタとスレーブが同期して通信できるので、マスタでキネマティクスを使ったような制御指令の作成に時間がかかるロボットコントロールシステムや、モーションコントロールシステムという用途にも適用できる。
本発明の実施例を示すマスタ・スレーブ同期通信システムの構成図 本発明の第1の実施例となる制御周期データの詳細図 本発明の第1の実施例となる同期通信管理テーブルの詳細図 本発明の第1の実施例となる同期通信情報データテーブルの詳細図 本発明の第1の実施例となる通信タイミングチャート 本発明の第1のマスタ・スレーブ同期通信システムにおける、同期通信方式の通信初期化処理手順を示すフローチャート 本発明のマスタ・スレーブ同期通信システムにおける、マスタの同期通信開始後のサイクル開始パケット受信時の処理手順を示すフローチャート 本発明のマスタ・スレーブ同期通信システムにおける、スレーブの同期通信開始後のサイクル開始パケット受信時の処理手順を示すフローチャート 本発明の第2の実施例となる制御周期データの詳細図 本発明の第2の実施例となる同期通信管理テーブルの詳細図 本発明の第2の実施例となる同期通信情報データテーブルの詳細図 本発明の第2の実施例となる通信タイミングチャート 本発明の第2のマスタ・スレーブ同期通信システムにおける、同期通信方式の通信初期化処理手順を示すフローチャート IEEE1394機器が持つコンフィグレーションROMの最小形式のフォーマットを表す図 IEEE1394機器が持つコンフィグレーションROMの一般形式のフォーマットを表す図 bus_info_blockのフォーマットを表す図 CYCLE_TIMEのフォーマットを表す図 従来の方法を適用した通信タイミング管理テーブルの詳細図 従来の方法を適用した通信タイミングチャート 従来の方法を適用した通信遅延 本発明の第3の実施例となる同期通信管理テーブルの詳細図 本発明の第3の実施例となる同期通信情報データテーブルの詳細図 本発明の第3の実施例となる通信タイミングチャート
符号の説明
1 マスタ
11 制御周期データ
12 スレーブ検出部
121 接続スレーブ情報
13 スレーブ割付部
14 同期通信管理テーブル
15 サイクル開始パケット受信処理部
16 指令データ送信部
161 指令データ
17 応答データ受信部
171 応答データ
18 制御処理部
2i スレーブ
2i1 指令データ受信部
2i11 指令データ
2i2 応答データ送信部
2i21 応答データ
2i3 同期通信処理部
2i31 同期通信情報データテーブル
2i4 サイクル開始パケット受信処理部
2i5 応答作成部
2i6 指令処理部
3 IEEE1394ネットワーク
Ci マスタ1からスレーブiへの指令データ
Ri スレーブiからマスタ1への応答データ

Claims (8)

  1. 1局のマスタと1局以上のスレーブがIEEE1394ネットワーク上に接続され、アイソクロナスサイクルの整数倍の制御周期に同期して、前記マスタと前記スレーブが通信するマスタ・スレーブ同期通信システムにおいて、
    前記マスタは、全ての前記スレーブとの通信に必要なアイソクロナスサイクル単位での時間を意味する同期単位を、前記スレーブからの受信の場合には前記制御周期の最後から設定し、前記スレーブへの送信の場合には前記同期単位を前記制御周期の最初から設定した同期通信管理テーブルを備え、
    前記スレーブは、前記マスタへの送信の場合には前記同期単位を前記制御周期の最後から設定し、前期マスタからの受信の場合には前記同期単位を前記制御周期の最初から設定した同期通信情報データテーブルを備えた
    ことを特徴とするマスタ・スレーブ同期通信システム。
  2. 前記マスタが備える前記同期通信管理テーブルは、前記マスタが前記スレーブへの指令データを作成する制御処理を起動するタイミングと、前記マスタが送信する前記スレーブの数と前記スレーブ番号および前記マスタが受信する前記スレーブの数と前記スレーブ番号とをアイソクロナスサイクル毎に保持し、
    前記スレーブが備える前記同期通信情報データテーブルは、前記スレーブが、前記マスタから指令データを受信する前記タイミングと、前記指令データを実行する前記タイミングと、前記マスタへの応答データを作成する前記タイミングと、前記マスタへ応答データを送信する前記タイミングとを保持する、
    ことを特徴とする請求項1に記載のマスタ・スレーブ同期通信システム。
  3. 前記マスタに備えられたスレーブ割付部が、あらかじめ設定された前記同期単位と前記制御周期と、前記同期単位内において通信する前記スレーブ数と、前記スレーブをユニークに指定するスレーブ番号の配列とから構成される制御周期データをもとに前記同期通信管理テーブルを作成し、該同期通信管理テーブルに基づいて前記同期通信情報データテーブルを作成する
    ことを特徴とする請求項1に記載のマスタ・スレーブ同期通信システム。
  4. 前記マスタは、前記同期通信管理テーブルに従い、前記制御処理を起動するタイミングを検出すると前記制御処理を実行し、前記スレーブからの受信タイミングを検出すると受信を実行し、前記スレーブへの送信タイミングを検出すると送信を実行し、
    前記スレーブは、前記同期通信情報データテーブルに従い、前記指令データを受信するタイミングを検出すると前記マスタからの指令データを受信し、前記指令データを実行するタイミングを検出すると前記指令データの処理を実行し、前記応答データを作成するタイミングを検出すると前記応答データを作成し、前記応答データを送信するタイミングを検出すると前記マスタへ前記応答データを送信する、
    ことを特徴とするマスタ・スレーブ同期通信システム。
  5. 前記マスタと前記スレーブが通信する前記制御周期が複数存在し、前記スレーブは前記制御周期毎にグループ化され、前記グループ毎に前記同期単位ずつ前記制御周期をずらして前記同期通信管理テーブルと前記同期通信情報データテーブルを作成することを特徴とする請求項1〜請求項4の何れかに記載のマスタ・スレーブ同期通信システム。
  6. 前記スレーブ割付部が前期制御周期データをもとに同期通信管理テーブルを作成する際に、前期同期単位内に通信を行わないアイソクロナスサイクルを検出すると、前記同期単位を最適値に短縮することを特徴とする請求項1〜5の何れかに記載のマスタ・スレーブ同期通信システム。
  7. 前期スレーブ割付部が前期制御周期データをもとに同期通信管理テーブルを作成する際に、通信にかかる時間が前期同期単位を超えることを検出すると、前記同期単位を最適値に延長することを特徴とする請求項1〜5の何れかに記載のマスタ・スレーブ同期通信システム。
  8. 前期マスタもしくは前期スレーブもしくは前期マスタおよび前期スレーブは最適化された前記同期単位をユーザーに通知することを特徴とする請求項1〜7の何れかに記載のマスタ・スレーブ同期通信システム。
JP2007189059A 2006-07-21 2007-07-20 マスタ・スレーブ同期通信システム Pending JP2008048395A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007189059A JP2008048395A (ja) 2006-07-21 2007-07-20 マスタ・スレーブ同期通信システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006199687 2006-07-21
JP2007189059A JP2008048395A (ja) 2006-07-21 2007-07-20 マスタ・スレーブ同期通信システム

Publications (1)

Publication Number Publication Date
JP2008048395A true JP2008048395A (ja) 2008-02-28

Family

ID=39181640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007189059A Pending JP2008048395A (ja) 2006-07-21 2007-07-20 マスタ・スレーブ同期通信システム

Country Status (1)

Country Link
JP (1) JP2008048395A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014053741A (ja) * 2012-09-06 2014-03-20 Denso Corp 通信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014053741A (ja) * 2012-09-06 2014-03-20 Denso Corp 通信システム
US9672175B2 (en) 2012-09-06 2017-06-06 Denso Corporation Communication system

Similar Documents

Publication Publication Date Title
JP7214891B2 (ja) 時間に敏感なネットワークのデータ伝送を実現する方法、関連装置及びコンピュータプログラム
JP4077833B2 (ja) 無線ネットワークの規格変化による適応的アドレス再設定方法
KR102326446B1 (ko) 통신 방법 및 디바이스, 및 저장 매체
JP2009507422A (ja) 媒体アクセス制御アーキテクチャ
JPS5818656B2 (ja) 分散式デ−タ処理システム
US10602530B2 (en) Access method with access slots and priority resolution
TW522688B (en) Efficient time-division multiplexed addressing protocol
JP2009524308A (ja) 動的リソース割当てのための方法及びシステム
JP2023509526A (ja) マルチリンク通信方法、装置、およびシステム
EP1193914A2 (en) Data transmission and reception
CN1346197A (zh) 以太网通信***中多用户实时通信方法及以太网通信***
JP2008048395A (ja) マスタ・スレーブ同期通信システム
JP2009049621A (ja) マスタ・スレーブ同期通信システム
WO2016185710A1 (ja) パケット送信方法及びパケット送信装置
JP5215894B2 (ja) 通信制御回路、通信ノード、通信システム、並びに通信制御方法及びプログラム
Peón et al. Towards a reliable and high-speed wireless complement to TTEthernet
JP2005318191A (ja) Ieee1394ネットワークを使用したマスタ/スレーブ同期通信システムおよび、同期通信資源の自動割当方法
US8605733B2 (en) Method of data transmission, data transmitting apparatus, and network system
JP2003078536A (ja) シリアル通信システム
WO2008068795A1 (ja) 通信システムおよび通信装置
JP6328324B2 (ja) 無線通信装置、無線通信方法及び無線通信プログラム
JP3759708B2 (ja) コンピュータネットワークにおけるスタベーションを回避する方法及び装置
JP5400577B2 (ja) 通信制御装置および通信制御方法
US20220278873A1 (en) Method, system, and gateway for linking time-sensitive fieldbuses
JPH0611140B2 (ja) マルチアクセス方法