JP5040792B2 - マスタ・スレーブ同期通信方法および同期通信システム。 - Google Patents

マスタ・スレーブ同期通信方法および同期通信システム。 Download PDF

Info

Publication number
JP5040792B2
JP5040792B2 JP2008113579A JP2008113579A JP5040792B2 JP 5040792 B2 JP5040792 B2 JP 5040792B2 JP 2008113579 A JP2008113579 A JP 2008113579A JP 2008113579 A JP2008113579 A JP 2008113579A JP 5040792 B2 JP5040792 B2 JP 5040792B2
Authority
JP
Japan
Prior art keywords
isochronous
slave
master
communication
connection information
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 - Fee Related
Application number
JP2008113579A
Other languages
English (en)
Other versions
JP2009267674A (ja
JP2009267674A5 (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.)
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 JP2008113579A priority Critical patent/JP5040792B2/ja
Publication of JP2009267674A publication Critical patent/JP2009267674A/ja
Publication of JP2009267674A5 publication Critical patent/JP2009267674A5/ja
Application granted granted Critical
Publication of JP5040792B2 publication Critical patent/JP5040792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、ネットワークのアイソクロナス通信を使用したマスタ・スレーブ同期通信方法および同期通信システムに関する。
一般に製造装置では、PLCやパソコンなどの制御機器をマスタ機器として、複数台のセンサ、リレー、モータなどのスレーブ機器が周期的にマスタ機器と制御データの交換を行う。制御データの交換は定周期で行われるため、帯域が保証された通信手段が採用される。中でも、工作機械やマウンタなどのモーション制御システムでは、マスタ機器であるモーションコントローラが、通信を介してスレーブ機器と制御ループを組むため、揺らぎのない通信周期での制御データの交換が実現可能な同期通信手段が要求される。
帯域保証のある、高速な汎用ネットワークの一つに、パソコンやAV機器などで一般的なIEEE1394がある。IEEE1394には、アイソクロナス・リソース・マネージャ(以降、IRM)により、帯域およびチャネル(以下、両方を合わせて、アイソクロナス・リソースと呼ぶ)が管理されるアイソクロナス通信があり、125μsのアイソクロナスサイクル毎にアイソクロナス・パケットの送信を行うことができる。
IEEE1394のアイソクロナス通信を応用して同期通信を行う例としてアイソクロナスサイクルの整数倍を制御周期として、制御周期毎に、マスタ機器が制御対象のスレーブ機器と順に制御データの授受を行うことで、マスタ機器とスレーブ機器の同期通信システムが構築できるようにする技術が開示されている(特許文献1参照)。
ところで、IEEE1394には接続された機器を動作中のまま抜き差しできるホットプラグ機能がある。機器の抜き差しがあるとバスリセットと呼ばれるIEEE1394ネットワークの初期化処理が実行されるが、この処理はネットワーク構成確定後のアイソクロナス通信中でも、機器の抜き差しがあると例外なく実行される。この処理が起動されるとアイソクロナス通信は停止する。
製造装置の場合、稼動中に機器構成は変更しないため、バスリセットを伴うホットプラグ機能は必要ないが、振動によるコネクタの接触不良でネットワーク構成が変化したと判断されバスリセットが発生してしまう場合がある。バスリセットが発生すると前述通り通信停止するだけでなく復旧にはアイソクロナス・リソースを取得し直す必要があり、アイソクロナス通信が復旧するまでの間、マスタ機器はスレーブ機器を制御不能となり、製造装置としては致命的な問題となりえる。
以下に、アイソクロナス通信前のアイソクロナス・リソース取得処理について説明する。この処理はバスリセット後のアイソクロナス通信復旧時にも同じ手順が必要である。
アイソクロナス通信に関する資源(アイソクロナス・リソース)の管理は、IRMが行っており、アイソクロナス通信の資源であるチャンネルと帯域の管理を行っている。
IEEE1394規格(非特許文献1参照)によれば、アイソクロナス通信対応ノードはIRMに対して帯域幅とチャンネル(channel)の割当てを要求して獲得し、データ送信時に調停(アービトレーション)を行い、バス使用の権利を獲得したノードがアイソクロナスパケットを送信するようになっている。
図16に従来の方法を実施するIEEE1394機器の構成を示す。図16において、1は機器(IRM)、2は機器、3はIEEE1394ケーブル、11は21はCPU、12,22はIEEE1394のLinkチップ、13,23はPhyチップ、14はBANDWIDTH_AVAILABLEレジスタ、15はCHANNNELS_AVAILABLEレジスタ、24はアイソクロナス・リソース記憶部である。
機器1(IRM)には、チャンネルを管理するCHANNEL_AVAILABLEレジスタ14と、バスバンド幅を管理するBANDWIDTH_AVAILABLEレジスタ15がある(以下では、総称してアイソクロナス・リソース・レジスタと呼ぶ)。機器1(IRM)以外の機器は、アイソクロナス通信を行うに先立って、上記のアイソクロナス・リソース・レジスタにアクセスし、バス使用の権利を獲得する。
BANDWIDTH_AVAILABLEレジスタ14は、シリアルバス依存アドレス空間の始まりからオフセット220hにマップされ、CHANNEL_AVAILABLEレジスタ15はオフセット224hにマップされている。
図17−aに、BANDWIDTH_AVAILABLEレジスタ14のフォーマットを、図17−bにCHANNELS_AVAILABLEレジスタ15のフォーマットを示す。
BANDWIDTH_AVAILABLEレジスタのbw_remainingフィールドは、現在割当てに使うことのできるアイソクロナス通信の帯域幅の量を表している。この帯域幅の量は帯域割当て単位と呼ばれる時間によって表され、1単位はS1600(1600Mbps)のデータレートで1quadlet(=32ビット)のデータを送信するのに要する時間(約20ns)に相当する。初期値である4915は100μsになる。したがって、IEEE1394機器がIRMにアクセスして帯域を取得するたびに、最大4915から取得された帯域の分だけ減っていくことになる。
また、CHANNEL_AVAILABLEレジスタ(全64ビット)は、一つのビットが一つのチャンネル番号に対応しており、ch0〜ch63までを割当てることができる。初期状態では全てのビットが1になっており、IEEE1394機器がチャンネルを取得する度に、そのチャンネル番号に相当するビットがゼロになる。
機器1(IRM)以外のIEEE1394機器が機器1(IRM)のアイソクロナス・リソースを取得する際にはロックトランザクションと呼ばれる方式で行われる。
図18に従来のIEEE1394機器間の通信処理シーケンス図を示す。
はじめにステップ1801においてIEEE1394ネットワークでバスリセットが発生すると、IEEE1394ネットワークの初期化が行われ、ステップ1802において各機器は自己識別パケットを発行し、各ノードにノードIDが割当てられる。たとえば、機器1(IRM)のノードIDが1、機器2のノードIDが0に決定したとする(ステップ1803〜1804)。
まず機器2が帯域を取得する場合、ステップ1805において、機器1(IRM)のBANDWIDTH_AVAILABLEレジスタ14の値を読み出したあと、ロックトランザクションの一つであるLockRequstパケットのarg_valueに読み出した値をセットし、希望の帯域幅だけ減らした値をdata_valueにセットし、拡張トランザクションコードにcompare_swapを指定して機器1(IRM)に対して送信する(ステップ1806)。機器1(IRM)からのLock応答のrcodeがresp_completeであれば帯域幅の獲得に成功したことになる。帯域を獲得した機器2は、アイソクロナス・リソース記憶部24に帯域情報を格納し(ステップ1807)、アイソクロナス通信時にはこのアイソクロナス・リソース記憶部24を参照してアイソクロナスパケットを送信する。
ただし、あるノードがLockRequestを送る前に他のノードがLockRequestにより機器1(IRM)のアイソクロナス・リソース・レジスタの値を変えてしまった場合、あとから送信されたLockRequestのarg_valueと機器1(IRM)のレジスタ値が一致しなくなるため、機器1(IRM)からrcodeがresp_complete以外の応答が返る。この場合は、応答データにold_valueとしてレジスタの現在値が格納されているため、old_valueをarg_valueに設定しなおして再度LockRequstを実行する。以上のような手順をとるため、同じアイソクロナス・リソースを複数のノードが重複して獲得するようなことは起こらない。機器2がチャンネルを取得する場合も同様に行う(ステップ1808〜1810)。
以上のようにバスリセットが発生すると、上記の処理が発生するため、アイソクロナス通信の再開には時間がかかる。また、前述のとおり、アイソクロナス・リソースの取得には少なくともアイソクロナス・リソース・レジスタの値を読み出す処理と、そしてLockそして、LockRequestによりレジスタを書き換える処理の計2回の動作が必要となり、LockRequestが複数のノードから同時に行われた場合、先にIRMに受け付けられたノードの要求により現在値が更新されるため、後からIRMに受け付けられたノードの要求は失敗する。失敗したノードは再度同じ処理を繰り返す必要があり、その分処理時間は長くなる。
このような問題点を解決するために特許文献2ではBANDWIDTH_AVAILABLEレジスタとCHANNEL_AVAILABLEレジスタを読み出す処理を省略できるような手段を採っている。具体的には、初めにアイソクロナス・リソースのレジスタを読み出すことなく、arg_value予想値を指定したLockリクエストをIRMに送り、失敗した場合は、Lock応答に含まれるold_valueがレジスタの現在値となっていることから、その値をarg_valueとして再度Lockリクエストを行う、といった手順でアイソクロナス・リソースの取得を行っている。
また、アイソクロナス通信中にバスリセットが起こったとき、アイソクロナスパケットが帯域をオーバーしたり、同じチャンネルが重複するなどが発生し受信側の機器が想定外のパケットを受け取ってしまうことを防ぐ方法として特許文献3がある。
特許文献3では、バスリセット前と後での接続情報の比較やそのバスリセットの種類の判定を行い、アイソクロナス通信再開の可否を判断する。たとえば接続ノード数の変化量が大きい場合や、バスリセットがロングバスリセットの場合は直ちにアイソクロナス通信再開を停止し、上記のような異常な状態の発生を未然に防ぐといったことを行っている。
IEEE Standard for a High Performance Serial Bus(IEEE Std 1394-1995) 特開2005−229142号公報(図2、3) 特願2000−619176(特WO2000/70841) 特開2003−188890号公報(図1)
IEEE1394通信によりマスタ機器が多数のスレーブ動作を制御するような、転送帯域だけでなく指令パケットの送信タイミングの保証も必要なシステムの場合、特許文献2,3だけでは不十分な点が出てくる。
まず、特許文献2の発明では、レジスタの読み出し処理は省略できてもLockリクエストは全ノードそれぞれが必ず行う手順となっており、アイソクロナス・リソース取得の競合が起こるたびにLockリクエストのリトライが必要なため、接続軸数が増えれば増えるほどアイソクロナス・リソース取得処理に費やす時間は増大する。
このような状況でアイソクロナス通信中にバスリセットが発生した場合、アイソクロナス通信を再開するにはアイソクロナス・リソース取得処理を繰り返さなければならないが、再開できる状態になるまでマスタ機器はスレーブ機器を制御することができず、かつ、スレーブ機器の状態も知ることができなくなる。このような制御不能状態が長く続くとシステムに致命的な問題を発生させる可能性がある。また、上記IEEE1394ネットワークを適用した製造システムでは、各機器の接続構成は固定されていて、ノード数も変化しないため、バスリセットが行われるたびにアイソクロナス・リソースの割当てを変更する必要は無い。従って、製造システムでは、バスリセットの度に各ノードがアイソクロナス・リソースを取得する処理は無駄であり、このような処理を省くことのできるシステムが望ましい。
また、特許文献3では、バスリセット前と後での接続情報の比較結果やそのバスリセットの長さの判断材料としてアイソクロナス通信再開の可否を判断することにより、受信側の機器が、アイソクロナス・リソースが矛盾した想定外のパケットを受け取ってしまうことを防いでいるが、指令パケットの送信タイミングの保証も必要なシステムの場合、アイソクロナス・リソース情報は正しくてもバスリセットの影響でマスタ機器からの指令パケットを正しいタイミングで受信できず、誤動作してしまう問題がある。この問題を図19を用いて説明する。
図19は従来のIEEE1394アイソクロナス通信における通信タイミングを示す図である。1901はマスタ機器送信FIFO、1902は伝送路、1903はスレーブ機器、1904は指令パケットである。
図19の通信タイミング図に示すように、指令パケット1404のm+1番目のデータをマスタ機器送信FIFO1901から伝送路1902に出す際にバスリセットが起こると、m+1番目の指令パケット1904は伝送路1902に出せなくなりマスタ機器送信FIFO1901に残された指令パケットがバスリセットが治まったあとの制御周期で伝送路1902に出されてしまう場合がある。図19ではマスタ機器がバスリセットを検出して指令パケット作成(m+2番目、m+3番目)を一時中止した場合を示している。
マスタ機器が意図しないタイミングで指令パケット(m+1番目)がスレーブ機器1903に渡されてしまうため、スレーブ機器1903において誤動作が起こる可能性がある。
本発明は以上のような問題点に鑑みてなされたものであり、製造システムにおいて、バスリセットが発生しても速やかにスレーブ機器の制御を継続できるようにするために、アイソクロナス・リソース取得のための時間を短縮し、マスタ機器が意図した通りのタイミングで指令パケットを出力できるような方法を提供することを目的とする。
上記問題を解決するため、本発明は、次のようにしたのである。
請求項1に記載の発明は、1局のマスタ機器と1局以上のスレーブ機器がネットワーク上に接続され、一定時間の制御周期に同期して、前記マスタ機器と前記スレーブ機器がアイソクロナス通信を使用して通信データを授受するマスタ・スレーブ同期通信方法において、
前記アイソクロナス通信中にバスリセットが発生した場合、
前記マスタ機器と前記スレーブ機器のうち、いずれか1局が備えるアイソクロナス・リソース・マネージャは前記ネットワーク上に接続された機器の数よりなる接続情報が前記バスリセットが発生する前のものから変化していないことを確認したならば、前記接続情報に変化がない旨を他の機器にブロードキャストで通知し、
その後、前記接続情報に変化がない旨を通知された全ての機器は、前記バスリセットが発生する前に取得して自機器にそれぞれ記憶していたアイソクロナス・リソースに従って前記アイソクロナス通信を再開することを特徴としたものである。
請求項2に記載の発明は、請求項1に記載の発明において、前記アイソクロナス・リソース・マネージャは、前記他の機器に通知するとともに、記憶していた前記他の機器の各々のアイソクロナス・リソースを前記他の機器の各々に送信することを特徴としたものである。
請求項3に記載の発明は、請求項1〜2のいずれか1項に記載の発明において、前記スレーブ機器は、前記全ての機器が前記アイソクロナス通信を再開した後、前記マスタ機器から受信した前記アイソクロナス・パケットに含まれるインデックス番号が前回受信したインデックス番号と連続するまで該アイソクロナス・パケットを廃棄することを特徴としたものである。
請求項4に記載の発明は、請求項1〜3のいずれか1項に記載の発明において、前記接続情報が、前記ネットワーク上に接続された機器のノードIDと、少なくともポート情報とチップIDのいずれか1つであることを特徴としたものである。
請求項5に記載の発明は、1局のマスタ機器と1局以上のスレーブ機器がネットワーク上に接続され、一定時間の制御周期に同期して、前記マスタ機器と前記スレーブ機器がアイソクロナス通信を使用して通信データを授受するマスタ・スレーブ同期通信システムにおいて、
前記マスタ機器および前記スレーブ機器の内、アイソクロナス・リソース・マネージャとなる機器が、前記ネットワーク上に接続された機器の数からなる接続情報が格納される不揮発性の接続情報記憶部を備え、
前記マスタ機器および前記スレーブ機器が各々、前記アイソクロナス・リソース・マネージャから取得したアイソクロナス・リソースを格納する不揮発性のアイソクロナス・リソース記憶部を備え、
前記アイソクロナス通信中にバスリセットが発生した場合に、前記アイソクロナス・リソース・マネージャは新たに取得した接続情報が前記バスリセットが発生する前に前記接続情報記憶部に格納した接続情報から変化していないことを確認したならば、前記接続情報に変化がない旨を他の機器にブロードキャストで通知し、
その後、前記接続情報に変化がない旨を通知された全ての機器は、前記バスリセットが発生する前に取得して前記アイソクロナス・リソース記憶部に格納していたアイソクロナス・リソースに従って前記アイソクロナス通信を再開することを特徴としたものである。
請求項6に記載の発明は、請求項5に記載の発明において、前記アイソクロナス・リソース・マネージャは、全ての機器のアイソクロナス・リソースを格納する不揮発性の全機器アイソクロナス・リソース記憶部をも備え、
前記アイソクロナス・リソース・マネージャは、前記他の機器に通知するとともに、記憶していた前記他の機器の各々のアイソクロナス・リソースを前記他の機器の各々に与えることを特徴としたものである。
請求項7に記載の発明は、請求項5〜6のいずれか1項に記載の発明において、前記スレーブ機器は、前記全ての機器が前記アイソクロナス通信を再開した後、前記マスタ機器から受信したアイソクロナス・パケットに含まれるインデックス番号が前回受信したインデックス番号と連続するまで該アイソクロナス・パケットを廃棄することを特徴としたものである。
請求項8に記載の発明は、請求項5〜7のいずれか1項に記載の発明において、前記接続情報が、前記ネットワーク上に接続された機器のノードIDと、少なくともポート情報とチップIDのいずれか1つであることを特徴としたものである。
本発明に記載の請求項1、請求項、請求項、または請求項の発明によると、アイソクロナス通信中にノイズや振動によりバスリセットが発生しても、各機器は自身が持つアイソクロナス・リソース記憶部を参照すれば自身が使用するアイソクロナス・リソースを取得できるため、ロックトランザクションによるアイソクロナス・リソース取得処理を省くことができる。その結果、バスリセット後も直ちにアイソクロナス通信を再開することが可能となる。
請求項、請求項、請求項、または請求項に記載の発明によると、ネットワークシステムの接続構成を組んで電源投入したときに、各機器が使用するアイソクロナス・リソース情報を自動的に各機器のアイソクロナス・リソース記憶部に設定することができる。また、接続構成を変えない限り各機器が改めてアイソクロナス・リソース取得のためにロックトランザクションなどの処理を行う必要が無いため、電源投入後直ちにアイソクロナス通信を開始することができる。
請求項、請求項、請求項、または請求項に記載の発明によると、ネットワークシステムの接続構成を組んで電源投入したときに、各機器が使用するアイソクロナス・リソース情報を自動的に各機器のアイソクロナス・リソース記憶部に設定することができる。また、接続構成を変えない限り各機器が改めてアイソクロナス・リソース取得のためにロックトランザクションなどの処理を行う必要が無いため、電源投入後直ちにアイソクロナス通信を開始することができる。
以下、本発明の方法の具体的実施例について、図に基づいて説明する。本発明の適用範囲は、1局のマスタ機器と1局以上のスレーブ機器が接続された通信システムであるが、以下の説明においては、1局のマスタ機器と1局のスレーブ機器が接続された例とし、機器1をマスタ機器、機器2をスレーブ機器とする。
また、アイソクロナス通信には、アイソクロナス・リソース・マネージャ(IRM)が必要であり、IRMはネットワークに接続されたどの機器が対応しても良いが、以下の説明において、機器1をIRMとする。
図1は、本発明第1の実施例を示すIEEE1394機器の構成図である。図2において、1は機器(IRM)、2は機器、3はIEEE1394ケーブル、11、21はCPU、12,22はIEEE1394のLinkチップ、13,23はPhyチップ、14はBANDWIDTH_AVAILABLEレジスタ、15はCHANNNELS_AVAILABLEレジスタ、17は接続情報記憶部、18はアイソクロナス・リソース記憶部である。24はアイソクロナス・リソース記憶部である。
機器1(IRM)にある接続情報記憶部17とアイソクロナス・リソース記憶部18、IEEE1394機器2にあるアイソクロナス・リソース記憶部24は不揮発性メモリ上に設け、電源を落としても内容が消えないようにする。
図3は本発明第2の実施例におけるIEEE1394機器間の通信処理シーケンスを示した図である。図3は接続情報が前回電源起動時と異なる場合に、図1に示す機器1、機器2に注目したものである。
はじめにステップ301においてIEEE1394ネットワークに接続されている全ての機器の電源を入れる。電源投入によりバスリセットが発生すると、IEEE1394ネットワークの初期化が行われ、ステップ302において各機器は自己識別パケットを発行し、各ノードにノードIDが割当てられる。たとえば、機器1(IRM)のノードIDが1、機器2のノードIDが0に決定したとする(ステップ303〜304)。
そして、機器1(IRM)はステップ305において、接続情報が前回電源投入した際のものと変わっていないかのチェックを行う。
接続情報の比較には、IEEE1394機器の接続ノード数を使用する。IEEE1394では、バスリセット後の自己識別フェーズで、全ての接続機器が自己認識パケットを送出し、送出された自己識別パケットは全ての機器が受信する。
図11は自己識別パケットのフォーマットを示す図である(非特許文献1、付属書E.3.4参照)。このうち、PhyIDがノードIDに相当し、p0からp2が、それぞれポート0からポート2の状態(ポート情報)に相当する。機器が実装しているポート数が4以上の場合は、複数の自己識別パケットが送出されるが、その中に含まれるノードIDは同一であるので、自己識別パケットを参照すれば接続ノード数を算出できる。
但し、本発明では、接続機器の構成の変化を判定する目的であるので、単に自己識別パケットの数だけで比較可能なので、ここでは接続ノード数とは自己識別パケットの数とする。接続情報記憶部17には前回電源投入時の接続ノード数(自己識別パケットの数)が格納されており、図3のステップ305において、ステップ302で発行された自己識別パケットの数と接続情報記憶部17の値と比較を行う。
比較した結果が不一致(ステップ306)であった場合、機器1(IRM)は、他の機器2に対して、接続情報変化有りの情報の通知を行う(ステップ307)。
前記通知を受信した機器2は、機器1(IRM)に対してアイソクロナス・リソースの取得を開始する。この場合のアイソクロナス・リソースの取得方法は、従来と同様である(ステップ308〜309)。
機器2が取得した帯域情報は、機器2が持つアイソクロナス・リソース記憶部24に保存する(ステップ310)。
チャンネルの取得も帯域の場合と同様に取得(ステップ311〜312)し、機器2が持つアイソクロナス・リソース記憶部24に保存する(ステップ313)。
機器1(IRM)はステップ314において自身のアイソクロナス・リソースをアイソクロナス・リソース記憶部18に保存し、ステップ315において今回の接続情報(接続ノード数)を接続情報記憶部17に保存する(ステップ314)。
そしてステップ316、317において、機器それぞれがアイソクロナス通信を開始する。
次に、ステップ305において接続情報が前回電源投入したときと一致した場合について説明する。
図4は図3と同様に本発明第1の実施例におけるIEEE1394機器間の通信処理シーケンスを示した図であるが、図3と異なり接続情報が前回電源投入時と一致した場合を示す。
ステップ406において接続情報が一致していた場合、機器1(IRM)は他の機器2に対して接続情報変化無しをブロードキャストで通知する(ステップ407)。
前記通知を受信した機器2は、図3のステップ308〜313で行われたようなアイソクロナス・リソース取得処理は行わず、自身が持つアイソクロナス・リソース記憶部17に既に格納されているアイソクロナス・リソース情報を読み出す(ステップ408)。
そしてステップ409、410において、機器それぞれがアイソクロナス通信を開始する。
図2に、図3のステップ307および図4のステップ407で機器1(IRM)から機器2に送信される接続情報変化有無通知のフォーマット例を示す。接続情報変化有りの場合は、32bitの最上位ビットを1にして全ての機器2に対してブロードキャストで送信する。
図6は、本発明第1の実施例におけるIEEE1394の指令パケットのフォーマットを示す図である。602は制御指令データ、603はCRC、604はインデックス番号である。
マスタ機器は、図6に示すように、IEEE1394パケットにインデックス番号を付加して伝送路に指令パケットを送信する。インデックス番号は、指令パケットを送信するごとに毎回1ずつインクリメントするようにする。
なお、インデックス番号は毎回1ずつインクリメントされるものに限るわけではなく、毎回1ずつディクリメントされるもの等、そのインデックス番号の連続性を判断できるものであればよい。
次に、アイソクロナス通信中のスレーブ機器における指令パケットの受信処理について説明する。
図7は、本発明第1の実施例を示すスレーブ機器における受信処理フロー図を示す。
受信処理701は、スレーブ機器において制御周期先頭で毎回実行する。この受信処理では通信状態を示す通信ステータス変数によって処理内容を管理する。通信が正常な場合は通信ステータス変数を「通常状態」とし、バスリセットを検出した直後では通信ステータス変数を「バスリセット検出状態」、そして正常な通信に戻るまでは通信ステータス変数を「回復待ち状態」と設定する。そしてこの通信ステータス変数の設定値を参照することによりそれぞれの状態に応じた処理を行う。以下にその詳細を説明する。
まず、ステップ702においてバスリセットの有無を判別する。バスリセットの検出は、例えば、OHCI(Open Host Controller Interface)の割込み要因レジスタIntEventを参照することによって行う。
バスリセットが無い場合は、ステップ705に移行し、通信ステータス変数が「通常状態」であればステップ706において指令パケットから制御指令データを読み出す。
ステップ701においてバスリセットを検出した場合、ステップ703において指令パケットを廃棄し、ステップ704において通信ステータス変数を「バスリセット検出」に設定する。ステップ703において指令パケットを廃棄しているのは、バスリセットが発生した制御周期と同じ制御周期中にマスタ機器からの指令パケットがマスタ機器送信FIFOに残らずに伝送路に出た場合、バスリセットによって通信パケットが壊れている可能性があるためである。その後、ステップ707において指令パケットの有無をチェックするが、既にステップ703において指令パケットを廃棄しているため、ステップ708、ステップ709は通らずに受信処理を終了する。
次の制御周期で受信処理ステップ701が実行され、再びステップ707の指令パケット有無のチェックが行われ、指令パケットありとなった場合、ステップ708において、その指令パケットのインデックス番号だけを読み出し、制御指令データは使用しない。そしてステップ709において通信ステータス変数を「回復待ち状態」に設定する。
そして次の制御周期では通信ステータス変数が「回復待ち状態」になっているため、ステップ710で指令パケットの有無をチェックした後、ステップ711において指令パケットからインデックス番号を読み出し、ステップ712において前回のインデックス番号と比較を行う。インデックス番号が連続していない場合は、受信処理を終了し、インデックス番号が連続したものになるまでステップ710〜712を繰り返す。
ステップ712においてインデックス番号が前回のインデックス番号に1足したものと等しくなったとき、インデックス番号が連続しているとみなして、ステップ713において指令パケットから制御指令データの読み出しを行い、ステップ714において通信ステータス変数を「通常状態」に設定し、以後は通常の動作を続けるようにする。
次に、アイソクロナス通信中にバスリセットが発生したときの動作を説明する。
図5は、本発明第1の実施例を示すIEEE1394アイソクロナス通信における通信タイミング図である。501はマスタ機器送信FIFO、502は伝送路、503はスレーブ機器、504は指令パケットである。図5は、マスタ機器が、インデックス番号m+1番の指令パケット504を、マスタ機器送信FIFO501から伝送路502に出す際にバスリセットが発生した例である。
バスリセットが発生したとき、接続情報が一致していれば、図4のステップ408と同じ手段でそれぞれが持つアイソクロナス・リソース記憶部にある情報を読み出す。スレーブ機器がアイソクロナス・リソースを取得するため通信処理を一切行わないため、直ちにアイソクロナス通信を再開できる状態になり、マスタ機器は指令パケット504の送信を直ちに再開できる。
ただし、マスタ機器送信FIFOにバスリセットによって正しいタイミングで伝送路に出ることができなかった指令パケット(m+1番)が残ってしまい、マスタ機器が指令パケットの送信を再開したときに本来とは遅れたタイミングで伝送路に出される場合がある。図5ではマスタ機器がバスリセットを検出して指令パケット作成(m+2番目、m+3番目)を一時中止した場合を示している。
スレーブ機器は、バスリセット検出後、最初に受信した指令パケット、つまりm+1番の指令パケットを受信するが、図7のステップ702においてバスリセットが検出されているため廃棄される(ステップ703)。そして制御ステータス変数は「バスリセット検出」となる。
次の制御周期で、m+4番の指令パケットを受信すると、ステップ707のパスを通りステップ708でインデックスm+4を読み出したあと通信ステータスを「回復待ち」に変更する(ステップ709)。
さらに次の周期で、m+5番の指令パケットを受信すると、ステップ710のパスを通り、ステップ711でインデックスm+5を読み出したあとステップ712において前回のインデックスと比較を行う。前回のインデックスm+4から連続した値であるため、ステップ713において指令パケット中の制御指令データを読み出し、通信ステータスを通常状態に戻す(ステップ714)。
以上のような操作を行うことにより、バスリセットによってマスタ機器が意図しないタイミングで伝送路に出された指令パケット中の制御指令データを使用することなく、指令パケットの連続性を確認した上で制御指令データを読み出すようになる。
以上、マスタ機器がスレーブ機器に送信する指令パケットについて説明したが、逆にスレーブ機器がマスタ機器に応答パケットを送信する場合も同様である(説明省略)。
図8は、本発明第2の実施例を示すIEEE1394機器の構成図である。図8において、1は機器(IRM)、2は機器、3はIEEE1394ケーブル、11と21はCPU、12と22はIEEE1394のLinkチップ、13と23はPhyチップ、14はBANDWIDTH_AVAILABLEレジスタ、15はCHANNNELS_AVAILABLEレジスタ、16は全機器アイソクロナス・リソース記憶部、17は接続情報記憶部、24はアイソクロナス・リソース記憶部である。
実施例1と異なるのは、機器2のアイソクロナス・リソース記憶部24が揮発性メモリ上にあり、また、機器1(IRM)の不揮発性メモリ上に全機器アイソクロナス・リソース記憶部16を設けていることである。
図12は、本発明第2の実施例におけるIEEE1394機器間の通信処理シーケンスを示した図である。図12は接続情報が前回電源起動時と異なる場合に、図8に示す機器1、機器2に注目したものである。
図12のステップ1201〜1209までの処理は、実施例1(ステップ301〜309)と同様である。
ステップ1210において、機器2によって帯域情報を取得された機器1(IRM)は、帯域の獲得を要求してきた機器2のノードIDと、獲得された帯域幅の値を対応付けて全機器アイソクロナス・リソース記憶部16に保存する。
また、機器2は、取得した帯域情報をアイソクロナス・リソース記憶部24に保存する(ステップ1211)。
チャンネルの取得も帯域の場合と同様である。ステップ1212〜1213でチャンネル情報を取得されたあと、ステップ1214において、機器1(IRM)はチャンネルの獲得を要求してきた機器2のノードIDと、獲得されたチャンネルの値を対応付けて全機器アイソクロナス・リソース記憶部16に保存する。
また、機器2は、取得したチャンネル番号をアイソクロナス・リソース記憶部24に保存する(ステップ1215)。
その他の機器においても、接続情報変化有りの通知を受信したあとステップ1208〜1215と同様の処理を実行し、全ての機器がアイソクロナス・リソース取得を完了したあと、機器1(IRM)は今回の接続情報(接続ノード数)を接続情報記憶部17に保存する(ステップ1216)。
そしてステップ1218、1219において、機器それぞれがアイソクロナス通信を開始する。
次に、ステップ1205において接続情報が前回電源投入したときと一致した場合について説明する図13を用いて説明する。
ステップ1306において、接続情報が一致していた場合、機器1(IRM)は他の機器2に対して接続情報変化無しをブロードキャストで通知する(ステップ407)と、機器2は実施例1の場合と同様にアイソクロナス・リソースの取得処理(ステップ308〜313)を行わない。
ただし、実施例1と異なり各機器のアイソクロナス・リソースは機器2ではなく機器1(IRM)の全機器アイソクロナス・リソース記憶部16に保存されているため、機器1(IRM)は全機器アイソクロナス・リソース記憶部16にある情報を元に各機器に帯域とチャンネルをWriteRequestによって送信する(ステップ1308、1310)。
WriteRequestによって帯域とチャンネルを受信した機器2は、自身のアイソクロナス・リソース記憶部24に保存する(ステップ1309、1311)。そしてアイソクロナス・リソース記憶部24に保存された情報を読み出す(ステップ1312)。
そしてステップ1313、1314において、機器それぞれがアイソクロナス通信を開始する。
図9は、全機器アイソクロナス・リソース記憶部16の内容を示す図である。161はアイソクロナス・リソース・テーブルである。図9では、たとえばノードID=0の機器2によって帯域600、チャンネル0番を取得されたことを示す。
アイソクロナス通信中にバスリセットが発生した場合の動作は実施例1と同様である。
図10は、本発明第3の実施例を示す接続情報記憶部の構成を示す図である。
実施例1、2では、接続情報として接続ノード数を使用したが、その代わりに全機器のノードIDとポート情報を使用する。
図10において、ポート情報のp0からp2は、物理ポート0から2に対応し、その内容は自己識別パケットと同じである。たとえばノードIDがゼロの機器のポート0番とポート1番は非接続ポートであり、他の機器は接続されていないことを示し、ポート2番に親ノード(自身のノードIDよりも大きいノードIDを持つノード)が接続されていることを示す。
IRMは、このノードIDとポート情報の対応情報を接続情報記憶部17に保存しておき、電源投入時に接続情報記憶部17の内容と今回電源投入時のノードIDとポート情報の比較を行う。
なお、ノードIDとポート情報は、実施例1にて説明した通り、電源投入時に各機器が発行する自己識別パケットから得ることができる。
実施例3において、電源投入後からアイソクロナス通信開始までの動作や、アイソクロナス通信中にバスリセットが発生した際の動作など、動作については実施例1、2と同様であるため説明を省略する。
図14は、本発明第4の実施例を示す接続情報記憶部の内容を示す図である。
実施例1,2では、接続情報として接続ノード数を使用したが、その代わりに全機器のノードIDとチップIDを使用する。
チップIDとはIEEE1394機器ごとにユニークに割当てられる5バイトのIDであり、全てのIEEE1394機器に実装が必須のものである
図14において、たとえばノードIDが2の機器のチップIDは16進数で04B4000002hとなる。
図15は本発明第4の実施例におけるIEEE1394機器間の接続情報比較までの通信処理シーケンスを示した図である。
ステップ1501〜1503によって各機器のノードIDが確定したあと、機器1(IRM)からチップIDの読み出しをReqdRequestによって行う。
チップIDはシリアルバス依存アドレス空間の始まりからオフセット40Chと410hにマップされている。
ステップ1506において、読み出したチップIDと接続情報記憶部に格納されている情報と比較を行う。
実施例3において、電源投入後からアイソクロナス通信開始までの動作や、アイソクロナス通信中にバスリセットが発生した際の動作など、動作については実施例1、2と同様であるため説明を省略する。
IEEE1394ネットワークを使用したマスタ・スレーブ同期通信システムであって、バスリセットが発生しても速やかにアイソクロナス通信を再開してその制御を継続することが必要な、たとえば、モーション・コントロール・システム等に利用可能である。
本発明第1の実施例を示すIEEE1394機器の構成図 本発明第1の実施例を示す接続情報記憶部の内容を示す図 本発明第1の実施例を示すIEEE1394機器間のアイソクロナス・リソース取得処理シーケンス図 本発明第1の実施例を示すIEEE1394機器間のアイソクロナス・リソース取得処理シーケンス図 本発明第1の実施例を示すIEEE1394アイソクロナス通信における通信タイミングを示す図 本発明第1の実施例を示すIEEE1394指令パケット図 本発明第1の実施例を示すスレーブ機器における受信処理フロー図 本発明第2の実施例を示すIEEE1394機器の構成図 本発明第2の実施例を示す全機器アイソクロナス・リソース記憶部の構成図 本発明第3の実施例を示す接続情報記憶部の構成図 自己識別パケットのフォーマットを示す図 本発明第2の実施例におけるIEEE1394機器間の通信処理シーケンス図 本発明第2の実施例におけるIEEE1394機器間の通信処理シーケンス図 本発明第4の実施例を示す接続情報記憶部の構成図 本発明第4の実施例を示すIEEE1394機器間の接続情報比較までの通信処理シーケンス図 従来の方法を実施するIEEE1394機器の構成図 アイソクロナス・リソース・レジスタのフォーマット図 従来のIEEE1394機器間のアイソクロナス・リソース取得処理シーケンス図 従来のIEEE1394アイソクロナス通信における通信タイミングを示す図
符号の説明
1 IRM(アイソクロナス・リソース・マネージャ)
11 CPU
12 Linkチップ
13 Phyチップ
14 BANDWIDTH_AVAILABLEレジスタ
15 CHANNNELS_AVAILABLEレジスタ
16 全機器アイソクロナス・リソース記憶部
161 アイソクロナス・リソース・テーブル
17 接続情報記憶部
18 アイソクロナス・リソース記憶部
2 IEEE1394機器
21 CPU
22 Linkチップ
23 Phyチップ
24 アイソクロナス・リソース記憶部
3 IEEE1394ケーブル
501 マスタ機器送信FIFO
502 伝送路
503 スレーブ機器
504 指令パケット
1901 マスタ機器送信FIFO
1902 伝送路
1903 スレーブ機器
1904 指令パケット
601 IEEE1394ヘッダ
602 制御指令データ部
603 CRC
604 インデックス番号

Claims (8)

  1. 1局のマスタ機器と1局以上のスレーブ機器がネットワーク上に接続され、一定時間の制御周期に同期して、前記マスタ機器と前記スレーブ機器がアイソクロナス通信を使用して通信データを授受するマスタ・スレーブ同期通信方法において、
    前記アイソクロナス通信中にバスリセットが発生した場合、
    前記マスタ機器と前記スレーブ機器のうち、いずれか1局が備えるアイソクロナス・リソース・マネージャは前記ネットワーク上に接続された機器の数よりなる接続情報が前記バスリセットが発生する前のものから変化していないことを確認したならば、前記接続情報に変化がない旨を他の機器にブロードキャストで通知し、
    その後、前記接続情報に変化がない旨を通知された全ての機器は、前記バスリセットが発生する前に取得して自機器にそれぞれ記憶していたアイソクロナス・リソースに従って前記アイソクロナス通信を再開することを特徴とするマスタ・スレーブ同期通信方法。
  2. 前記アイソクロナス・リソース・マネージャは、前記他の機器に通知するとともに、記憶していた前記他の機器の各々のアイソクロナス・リソースを前記他の機器の各々に送信することを特徴とする請求項1記載のマスタ・スレーブ同期通信方法。
  3. 前記スレーブ機器は、前記全ての機器が前記アイソクロナス通信を再開した後、前記マスタ機器から受信した前記アイソクロナス・パケットに含まれるインデックス番号が前回受信したインデックス番号と連続するまで該アイソクロナス・パケットを廃棄することを特徴とする請求項1〜2のいずれか1項に記載のマスタ・スレーブ同期通信方法。
  4. 前記接続情報が、前記ネットワーク上に接続された機器のノードIDと、少なくともポート情報とチップIDのいずれか1つであることを特徴とする請求項1〜3のいずれか1項に記載のマスタ・スレーブ同期通信方法。
  5. 1局のマスタ機器と1局以上のスレーブ機器がネットワーク上に接続され、一定時間の制御周期に同期して、前記マスタ機器と前記スレーブ機器がアイソクロナス通信を使用して通信データを授受するマスタ・スレーブ同期通信システムにおいて、
    前記マスタ機器および前記スレーブ機器の内、アイソクロナス・リソース・マネージャとなる機器が、前記ネットワーク上に接続された機器の数からなる接続情報が格納される不揮発性の接続情報記憶部を備え、
    前記マスタ機器および前記スレーブ機器が各々、前記アイソクロナス・リソース・マネージャから取得したアイソクロナス・リソースを格納する不揮発性のアイソクロナス・リソース記憶部を備え、
    前記アイソクロナス通信中にバスリセットが発生した場合に、前記アイソクロナス・リソース・マネージャは新たに取得した接続情報が前記バスリセットが発生する前に前記接続情報記憶部に格納した接続情報から変化していないことを確認したならば、前記接続情報に変化がない旨を他の機器にブロードキャストで通知し、
    その後、前記接続情報に変化がない旨を通知された全ての機器は、前記バスリセットが発生する前に取得して前記アイソクロナス・リソース記憶部に格納していたアイソクロナス・リソースに従って前記アイソクロナス通信を再開することを特徴とするマスタ・スレーブ同期通信システム。
  6. 前記アイソクロナス・リソース・マネージャは、全ての機器のアイソクロナス・リソースを格納する不揮発性の全機器アイソクロナス・リソース記憶部をも備え、
    前記アイソクロナス・リソース・マネージャは、前記他の機器に通知するとともに、記憶していた前記他の機器の各々のアイソクロナス・リソースを前記他の機器の各々に与えることを特徴とする請求項5に記載のマスタ・スレーブ同期通信システム。
  7. 前記スレーブ機器は、前記全ての機器が前記アイソクロナス通信を再開した後、前記マスタ機器から受信したアイソクロナス・パケットに含まれるインデックス番号が前回受信したインデックス番号と連続するまで該アイソクロナス・パケットを廃棄することを特徴とする請求項5〜6のいずれか1項に記載のマスタ・スレーブ同期通信システム。
  8. 前記接続情報が、前記ネットワーク上に接続された機器のノードIDと、少なくともポート情報とチップIDのいずれか1つであることを特徴とする請求項5〜7のいずれか1項に記載のマスタ・スレーブ同期通信システム。
JP2008113579A 2008-04-24 2008-04-24 マスタ・スレーブ同期通信方法および同期通信システム。 Expired - Fee Related JP5040792B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008113579A JP5040792B2 (ja) 2008-04-24 2008-04-24 マスタ・スレーブ同期通信方法および同期通信システム。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008113579A JP5040792B2 (ja) 2008-04-24 2008-04-24 マスタ・スレーブ同期通信方法および同期通信システム。

Publications (3)

Publication Number Publication Date
JP2009267674A JP2009267674A (ja) 2009-11-12
JP2009267674A5 JP2009267674A5 (ja) 2012-02-16
JP5040792B2 true JP5040792B2 (ja) 2012-10-03

Family

ID=41392982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008113579A Expired - Fee Related JP5040792B2 (ja) 2008-04-24 2008-04-24 マスタ・スレーブ同期通信方法および同期通信システム。

Country Status (1)

Country Link
JP (1) JP5040792B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306189B (zh) * 2011-08-31 2013-06-05 北京金山软件有限公司 客户端展示网盘文件状态的方法和客户端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3916455B2 (ja) * 2001-12-20 2007-05-16 シャープ株式会社 ディジタルインターフェース装置及びそれを用いて行う情報処理装置間のバスの制御方法
JP2003244154A (ja) * 2002-02-21 2003-08-29 Mitsubishi Electric Corp データ通信機器およびデータ通信機器間の再リンク方法

Also Published As

Publication number Publication date
JP2009267674A (ja) 2009-11-12

Similar Documents

Publication Publication Date Title
US7701855B2 (en) Communication device, communication system, communication method, communication program and recording medium storing the communication program
US20030043771A1 (en) Connection establishment method, communication method, state change transmission method, state changing method wireless apparatus, wireless device, and computer
JPH1070561A (ja) 電子機器及びその動作モード制御方法
CN107528747B (zh) 主从站通信状态的诊断方法和装置及计算机可读存储介质
US6895003B1 (en) Communication system, apparatus, and method in which data transmission is interrupted for a bus reset
JP3599048B2 (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
JP3630971B2 (ja) データ通信方法、装置、システム、及び記憶媒体
JP2000253023A (ja) パケット通信装置
JP5040792B2 (ja) マスタ・スレーブ同期通信方法および同期通信システム。
US6732262B1 (en) Method and system for controlling reset of IEEE 1394 network
JP4040654B2 (ja) 通信制御回路および通信制御方法
TW202141294A (zh) 相容於時效性網路的終端控制器以及具備此者之網絡系統
JP2008245271A (ja) Ieee1394同期通信システムおよび同期通信方法
KR100985745B1 (ko) 직렬 통신 버스용 데이터 링크 레이어 디바이스
JP4683120B2 (ja) 電子機器および通信方法
JP3495878B2 (ja) データ処理方法、データ処理装置及びプリンタ
JP5618805B2 (ja) 通信装置、ネットワークシステム及び通信方法
JPH11215132A (ja) 情報処理装置および方法、並びに提供媒体
JP3977240B2 (ja) 電子機器
JP4502653B2 (ja) パケット送受信装置及びそれに用いるパケット識別方法
JP4244474B2 (ja) 情報処理装置及び方法
JPH10164168A (ja) 識別情報の送信方法及び識別情報の送信装置
JP2009027349A (ja) ネットワーク機器
EP2260622A1 (en) Network device performing connection check, network system, and frame transfer method
JP2004289857A (ja) プリント方法、通信方法、プリント制御装置、及び通信制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111228

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120517

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: 20120612

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: 20120625

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees