Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4097891B2 - Ieee1394を用いた同期システム - Google Patents
[go: Go Back, main page]

JP4097891B2 - Ieee1394を用いた同期システム - Google Patents

Ieee1394を用いた同期システム Download PDF

Info

Publication number
JP4097891B2
JP4097891B2 JP2000360279A JP2000360279A JP4097891B2 JP 4097891 B2 JP4097891 B2 JP 4097891B2 JP 2000360279 A JP2000360279 A JP 2000360279A JP 2000360279 A JP2000360279 A JP 2000360279A JP 4097891 B2 JP4097891 B2 JP 4097891B2
Authority
JP
Japan
Prior art keywords
delay
cycle
node
cycle timer
timer
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
JP2000360279A
Other languages
English (en)
Other versions
JP2002164903A (ja
JP2002164903A5 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000360279A priority Critical patent/JP4097891B2/ja
Priority to US09/858,555 priority patent/US6959017B2/en
Priority to DE10134166A priority patent/DE10134166B4/de
Publication of JP2002164903A publication Critical patent/JP2002164903A/ja
Publication of JP2002164903A5 publication Critical patent/JP2002164903A5/ja
Application granted granted Critical
Publication of JP4097891B2 publication Critical patent/JP4097891B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0652Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP]
    • H04J3/0655Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP] using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、IEEE1394をネットワークのデータ伝送手段として使用しているシステムにおける各ノード間のサイクルタイマ遅延を測定し補償することができるIEEE1394を用いた同期システムに関し、特に、1つ以上のコントローラと、センサやサーボドライブなどの1つ以上の被制御対象機器とによって構成される制御システムにおいて、IEEE1394をネットワークのデータ伝送手段として使用している場合におけるコントローラと被制御対象機器との間のサイクルタイマ遅延を測定し補償することができるIEEE1394を用いた同期システムに関するものである。
【0002】
【従来の技術】
従来から、コントローラとサーボドライバとの間の通信方式は、各メーカ独自が方式で行われていた。一方、近年、このようなFA用コントローラの分野においても、オープン化に対応した製品への要求が高まっている。オープン化コントローラの普及によって、ユーザ独自仕様の組み込み、汎用パソコン資産の利用が可能になり、メーカの異なる製品間の接続も容易になるなど、ユーザの使いやすさの向上が実現される。
【0003】
このようなコントローラとサーボドライバとの間のオープンなインタフェースとして、IEEE1394やUSBを利用することが検討され始めている。特に、ホームオートメーション用のネットワーク規格IEEE1394をFA用途に利用しようとする動きが本格化してきている。IEEE1394は、
(1) 100Mバイト/秒以上の高速のデータ転送が可能
(2) アイソクロナス転送方式が可能で速い通信周期の同期通信が可能
(3) 電源を切ることなく接続や切り離しが可能(活線挿抜)
(4) 63台までの機器が接続できる
といった特徴を持つ。さらに量産効果によってインタフェース部分を低コストに製造できる可能性がある。また、インタフェース基板は、イーサネット(Ethernet)に比較して小型なので、各種の機器に組み込みやすい。
【0004】
図23は、IEEE1394の通信レイヤの構成を示す図である。図23において、IEEE1394の通信レイヤは、物理層(Phyレイヤ)101、リンク層(Linkレイヤ)102、トランザクション層(Transactionレイヤ)103の3層と、シリアルバスマネージメント104とから構成される。
【0005】
Phyレイヤ101は、送受信する電気信号とLinkレイヤとの間で信号処理を行うレイヤである。Phyレイヤ101は、コネクタ、ケーブルなどの機械的インターフェースの規定、Linkレイヤ102が使用する論理信号のアナログディジタル変換を行うエンコードおよびデコード、通信信号の電気レベルを決めるシグナルレベルなどの電気的インターフェースの規定、通信ノード決定のためのアービトレーション、通信ロックの再同期、バスの初期化検出などを行っている。
【0006】
Linkレイヤ102は、Phyレイヤ101とTransactionレイヤ103との間で信号処理を行うレイヤである。Linkレイヤ102は、アドレス割当、データのチェック、データのフレーム分けを行うパケット送受信、サイクルのコントロールを行っている。なお、Isochronousデータは、Transactionレイヤを経由せずに、データが処理される。
【0007】
Transactionレイヤ103は、上位アプリケーションとLinkレイヤ102との間で信号処理を行うレイヤである。Transactionレイヤ103は、データの読み出し、書き込みなどの処理を行う。すなわち、Transactionレイヤ103は、Linkレイヤ102の処理を利用して、リクエストパケットの送信とレスポンスパケットの受信を行うことによって、指定されたノードとアドレスに対する1つの通信処理を行っている。また、逆に、リクエストパケットの受信とレスポンスパケットの送信という、他のノードから自ノードへの通信処理を行っている。
【0008】
シリアルバスマネージメント104は、3つのレイヤ全体の制御を行っている。なお、典型的な通信レイヤの実装としては、Phyレイヤ101とLinkレイヤ102とをハードウェアで構成し、Transactionレイヤ103とシリアルバスマネージメント104をファームウェアで構成する。
【0009】
IEEE1394のAsynchronous通信は、非同期に、データの通信を行う際に用いられる。Asynchronous通信では、相手ノードに確実にパケットを送信することを保証し、送信の遅延時間は保証しない。送信ノードは、ヘッダ情報と実データとを指定先のノードに送信し、受信ノードは、Acknowledgeパケットを返信することで、パケットを受け取ったことを知らせる。
【0010】
IEEE1394のIsochronous通信は、一種の同期通信であり、動画や音声などの伝送に適している。Isochronous通信では、125μsec毎にデータ転送が完了することを保証する。Isochronousパケットの送信ノードは、特定のノードに送信するのではなく、0〜63までのチャネル番号を使用してバス全体に送信し、受信ノードは、Acknowledgeパケットを返信しない。Isochronousパケットのヘッダは、6ビットのチャネル番号を使用することで、パケットを識別できるため、Asynchronousパケットのヘッダのように、64ビットのアドレス空間を使うのに比べて単純化されており、ヘッダ情報を少なくすることができる。受信ノードは、自ノードが受信したいチャネル番号のIsochronousパケットを選択して取り込む。送信ノードと受信ノードとが同じチャネル番号を使ってデータの送受信を行うことで、Isochronous通信が確立できる。
【0011】
図24に示すように、Isochronous通信とAsynchronous通信とは混在できる。1サイクル125μsecのうち、最大で100μsecをIsochronous通信に使用し、残りをAsynchronous通信に使用する。なお、パケット転送速度によって、Asynchronousパケットのデータペイロードの最大値が決定されているのは、Asynchronousデータの伝送時間が長すぎて、Isochronous通信を保証できなくなるのを回避するためである。
【0012】
Isochronous転送時間帯は、Isochronous通信を行う帯域であり、Asynchronous転送時間帯は、Asynchronous通信を行う帯域である。図24に示すように、Isochronous通信が常にAsynchronous通信よりも先に開始され、Isochronous通信を保証することができる。1サイクルでは、サイクルスタートパケットDSが送信された後に、図24では、Isochronous転送時間帯において、チャネルCH1のデータパケットD1およびチャネルCH3のデータパケットD2が伝送される。その後、Asynchronous転送時間帯において、データパケットD3,D4が伝送されるが、各データパケットD3,D4には、AcknowledgeパケットDAが返送される。
【0013】
IEEE1394の各ノードのうち、アイソクロナス(Isochronous)能力のあるノードが搭載するLinkレイヤは、バスとクロック同期するためのCYCLE_TIMEレジスタを実装し、このCYCLE_TIMEレジスタの内容を最新にするためのタイマを有している。このタイマをサイクルタイマと呼ぶ。このサイクルタイマの時刻は、サイクルスタート(Cycle Start)パケットによって設定される。また、IEEE1394では、このサイクルスタートパケットを発信するノードのことを、サイクルマスタと呼び、このサイクルマスタ以外のノードは、サイクルスレーブと呼ばれる。
【0014】
すなわち、図25および図26に示すように、サイクルマスタ111,131が有するサイクルタイマ112,132の時刻をサイクルスタートパケット「CycleStart」に乗せて各ノード(サイクルスレーブ)121,141,151に伝えることによって、各ノード121,141,151が有するサイクルタイマ122,142,152の時刻がサイクルマスタ111,131が有するサイクルタイマ112,132と同じ時刻に設定される。
【0015】
IEEE1394を利用したリアルタイムデータ転送は、Isochronousパケットによって伝送されるが、サイクルタイマを基準にして、送信側と受信側でデータの同期を取っている。同期の方法としてIsochronousパケットにタイムスタンプを入れたりする。
【0016】
【発明が解決しようとする課題】
しかしながら、実際には伝送遅延があるため、送信側のノードと受信側のノードのサイクルタイマは厳密に同じ時刻にはならない。すなわち、応答ノードがサイクルスタートパケットを受信してサイクルタイマの時刻を設定した瞬間には、要求ノードのサイクルタイマの時刻はその分だけ既に進んでおり、伝送遅延によって、送信側のノードと受信側のノードとの間の同期が精度良くとれないことになる。
【0017】
特に、IEEE1394によって接続されたネットワークを用いた制御システムを考えた場合、コントローラとサーボドライブとは、これらサイクルタイマを基準として同期制御を実現することになる。しかしながら、この制御システムに対しては、高速高精度、特に同期制御の高速高精度が要求されており、そのようなコントローラとサーボドライブとの間のタイマ遅延が、制御の高速高精度、特に同期制御の高速高精度に大きな影響を与えてしまうという問題点があった。
【0018】
この発明は上記に鑑みてなされたもので、送信側のノードと受信側のノードとが有するサイクルタイマのタイマ遅延を補償し、特にIEEE1394をコントローラとサーボドライバとの間のオープンなインタフェースとして使用した場合でも、高速高精度な制御、特に同期制御の高速高精度を実現することができるIEEE1394を用いた同期システムを得ることを目的とする。
【0019】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるIEEE1394を用いた同期システムは、IEEE1394を用いて接続されたネットワーク内の各ノード間の同期をとるIEEE1394を用いた同期システムにおいて、前記各ノードが有する各サイクルタイマ同士の遅延ずれ量を計測するサイクルタイマ遅延計測手段と、前記サイクルタイマ遅延計測手段が計測した遅延ずれ量をもとに前記各サイクルタイマ同士の遅延ずれを補正するサイクルタイマ遅延補正手段とを備え、前記サイクルタイマ遅延計測手段は、要求ノードから応答ノードに対して Read パケットを送信し、該応答ノードのサイクルタイマ値を読み取り、この読み取ったサイクルタイマ値を含む ReadResponse パケットを前記要求ノードが受信し、この受信したサイクルタイマ値と要求ノードのサイクルタイマ値との差をもとに前記遅延ずれ量を算出することを特徴とする。
【0020】
この発明によれば、IEEE1394を用いて接続されたネットワーク内の各ノード間の同期をとる際、サイクルタイマ遅延計測手段が、前記各ノードが有する各サイクルタイマ同士の遅延ずれ量を計測し、要求ノードから応答ノードに対して Read パケットを送信し、該応答ノードのサイクルタイマ値を読み取り、この読み取ったサイクルタイマ値を含む ReadResponse パケットを前記要求ノードが受信し、この受信したサイクルタイマ値と要求ノードのサイクルタイマ値との差をもとに前記遅延ずれ量を算出するようにしていると共に、サイクルタイマ遅延補正手段が、前記サイクルタイマ遅延計測手段が計測した遅延ずれ量をもとに前記各サイクルタイマ同士の遅延ずれを補正するようにしている。
【0031】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記要求ノードは、前記Readパケットを送信し、前記ReadResponseパケットが返送される一連のシーケンスが、同一のアシンクロナス転送が行われている時間帯である同一のAsynchronous転送時間帯で完了するか否かを判定する判定手段を備え、前記判定手段が、一連のシーケンスが同一のAsynchronous転送時間帯で完了すると判定した場合に、Readパケットを前記応答ノードに送出することを特徴とする。
【0032】
この発明によれば、前記要求ノードの判定手段が、前記Readパケットを送信し、前記ReadResponseパケットが返送される一連のシーケンスが、同一のアシンクロナス転送が行われている時間帯である同一のAsynchronous転送時間帯で完了するか否かを判定し、前記要求ノードが、前記判定手段が同一のAsynchronous転送時間帯で完了すると判定した場合に、Readパケットを前記応答ノードに送出するようにし、ReadResponseパケットが同一のAsynchronous転送時間帯内で返送されるようにしている。
【0033】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記応答ノードの上位層は、アシンクロナス転送が行われている時間帯であるAsynchronous転送時間帯であるか否かを判定する判定手段を備え、前記判定手段がAsynchronous転送時間帯であると判定した場合に、前記上位層が前記ReadResponseパケットを送信バッファに蓄えることを特徴とする。
【0034】
この発明によれば、前記応答ノードの上位層の判定手段が、アシンクロナス転送が行われている時間帯であるAsynchronous転送時間帯であるか否かを判定し、前記判定手段がAsynchronous転送時間帯であると判定した場合に、前記上位層は前記ReadResponseパケットを送信バッファ(TX_FIFO)に蓄えることで、前記ReadResponseパケットは、送信バッファ長くとどまることなく、直ちに要求ノードに返送されるようにしている。
【0035】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記応答ノードのリンク層は、パケットの送出直前に該パケットにデータを書き込む書込手段を備え、前記ReadResponseパケットがリンク層バッファから送出される直前に前記書込手段によって該ReadResponseパケットに当該応答ノードのサイクルタイマ値を書き込むことを特徴とする。
【0036】
この発明によれば、前記応答ノードのリンク層の書込手段が、前記ReadResponseパケットがリンク層バッファから送出される直前に該ReadResponseパケットに当該応答ノードのサイクルタイマ値を書き込むようにしている。
【0037】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、各ノードは、前記遅延ずれ量を記憶するサイクルタイマ遅延記憶手段を備えたことを特徴とする。
【0038】
この発明によれば、各ノードのサイクルタイマ遅延記憶手段が、前記遅延ずれ量を記憶し、少なくとも他のノードからのアクセスによって遅延ずれ量を獲得できるようにしている。
【0039】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延記憶手段は、全てのノード間の遅延ずれ量をデータテーブル形式で記憶することを特徴とする。
【0040】
この発明によれば、前記サイクルタイマ遅延記憶手段が、全てのノード間の遅延ずれ量をデータテーブル形式で記憶するようにしている。
【0041】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延記憶手段は、サイクルマスタとしてのノードに設けられたことを特徴とする。
【0042】
この発明によれば、前記サイクルタイマ遅延記憶手段を、サイクルマスタとしてのノードに設けるようにしている。
【0043】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記ネットワークの構成の変化を判別するネットワーク構成変化判別手段をさらに備え、前記ネットワーク構成変化判別手段がネットワークの構成に変化があったと判別した場合、該ネットワークの再構成後、前記サイクルタイマ遅延計測手段がサイクルタイマ同士の遅延ずれ量を計測し、前記サイクルタイマ遅延補正手段が該遅延ずれ量をもとにサイクルタイマ同士の遅延ずれを補正する処理を一回行うことを特徴とする。
【0044】
この発明によれば、ネットワーク構成変化判別手段が、前記ネットワークの構成の変化を判別し、前記ネットワーク構成変化判別手段がネットワークの構成に変化があったと判別した場合、該ネットワークの再構成後、前記サイクルタイマ遅延計測手段がサイクルタイマ同士の遅延ずれ量を計測し、前記サイクルタイマ遅延補正手段が該遅延ずれ量をもとにサイクルタイマ同士の遅延ずれを補正する処理を一回行うようにしている。
【0045】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記ネットワーク構成変化判別手段は、サイクルマスタとしてのノードに設けられたことを特徴とする。
【0046】
この発明によれば、前記ネットワーク構成変化判別手段を、サイクルマスタとしてのノードに設けるようにしている。
【0047】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段は、ノード間の同期を用いる所定のノードに設けられたことを特徴とする。
【0048】
この発明によれば、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段を、ノード間の同期を用いる所定のノードに設けるようにしている。
【0049】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記遅延ずれ量を伝送するサイクルタイマ遅延伝送手段をさらに備え、同期の基準となるサイクルタイマを有するサイクルマスタのノードは、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延伝送手段を有し、前記サイクルマスタのノード以外の所定のノードは、前記サイクルタイマ遅延補正手段を有し、前記サイクルマスタのノードが、該ノードが計測した遅延ずれ量を前記所定のノードに伝送し、あるいは該ノードが計測した遅延ずれ量をデータテーブルに記憶し、前記所定のノードが前記サイクルマスタのノードから該遅延ずれ量を取得し、その後所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに該ノードのサイクルタイマの遅延ずれを補正することを特徴とする。
【0050】
この発明によれば、同期の基準となるサイクルタイマを有するサイクルマスタのノードが、該ノードが計測した遅延ずれ量を前記サイクルタイマ遅延伝送手段によって前記所定のノードに伝送し、あるいは該ノードが計測した遅延ずれ量をデータテーブルに記憶し、前記所定のノードが前記サイクルマスタのノードから該遅延ずれ量を取得し、その後所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに該ノードのサイクルタイマの遅延ずれを補正するようにしている。
【0051】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延補正手段は、サイクルスタートパケットを受信した際に、遅延ずれ量をもとにサイクルタイマ値を設定することを特徴とする。
【0052】
この発明によれば、前記サイクルタイマ遅延補正手段が、サイクルスタートパケットを受信した際に、遅延ずれ量をもとにサイクルタイマ値を設定するようにしている。
【0053】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延補正手段は、上位層がサイクルタイマ値の使用時に、前記遅延ずれ量を用いて遅延ずれを補正することを特徴とする。
【0054】
この発明によれば、前記サイクルタイマ遅延補正手段が、上位層がサイクルタイマ値の使用時に、前記遅延ずれ量を用いて遅延ずれを補正するようにしている。
【0055】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記所定のノードは、第2のサイクルタイマをさらに備え、前記サイクルタイマ遅延補正手段は、任意のタイミングで遅延ずれ量を用いて前記遅延ずれを補正したサイクルタイマ値を前記第2のサイクルタイマに設定することを特徴とする。
【0056】
この発明によれば、所定のノードの前記サイクルタイマ遅延補正手段が、任意のタイミングで遅延ずれ量を用いて前記遅延ずれを補正したサイクルタイマ値を第2のサイクルタイマに設定するようにしている。
【0057】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルマスタのノードは、タイムスタンプを生成するタイムスタンプ生成手段を備え、前記所定のノードは、タイムスタンプが示す時刻を監視するタイムスタンプ時刻監視手段を備え、前記サイクルタイマ遅延補正手段は、前記遅延ずれ量をもとに、前記サイクルマスタのノードから送られた前記タイムスタンプのタイムスタンプ値を更新し、前記タイムスタンプ時刻監視手段は、前記更新されたタイムスタンプ値が示す時刻を監視することを特徴とする。
【0058】
この発明によれば、前記サイクルタイマ遅延補正手段が、前記遅延ずれ量をもとに、前記サイクルマスタのノードから送られた前記タイムスタンプのタイムスタンプ値を更新し、前記タイムスタンプ時刻監視手段が、前記更新されたタイムスタンプ値が示す時刻を監視するようにしている。
【0059】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段は、サイクルマスタとしてのノードに設けられたことを特徴とする。
【0060】
この発明によれば、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段を、サイクルマスタとしてのノードに設けるようにしている。
【0061】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記遅延ずれ量を転送するサイクルタイマ遅延伝送手段をさらに備え、サイクルマスタのノードは、前記サイクルタイマ遅延補正手段を有し、前記サイクルマスタのノード以外の所定のノードは、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延伝送手段を有し、前記所定のノードが、該所定のノードで計測した遅延ずれ量を前記サイクルマスタのノードに伝送し、あるいは前記所定のノードから遅延ずれ量を取得し、その後該所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに前記サイクルマスタのノードのサイクルマスタの遅延ずれを補正することを特徴とする。
【0062】
この発明によれば、前記所定のノードが、該所定のノードで計測した遅延ずれ量を前記サイクルマスタのノードに伝送し、あるいは前記所定のノードから遅延ずれ量を取得し、その後該所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに前記サイクルマスタのノードのサイクルマスタの遅延ずれを補正するようにしている。
【0063】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記サイクルマスタのノードは、タイムスタンプを生成するタイムスタンプ生成手段を備え、前記所定のノードは、タイムスタンプが示す時刻を監視するタイムスタンプ時刻監視手段を備え、前記サイクルタイマ遅延補正手段は、前記遅延ずれ量をもとに、前記タイムスタンプ生成手段が生成したタイムスタンプのタイムスタンプ値を更新することを特徴とする。
【0064】
この発明によれば、前記サイクルタイマ遅延補正手段が、前記遅延ずれ量をもとに、自サイクルマスタのノードの前記タイムスタンプ生成手段が生成したタイムスタンプのタイムスタンプ値を更新し、この更新したタイムスタンプ値を含むデータを所定のノードに伝送するようにしている。
【0065】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、請求項1〜23のいずれか一つに記載したIEEE1394を用いた同期システムは、サーボドライブ装置とこれを制御するコントローラとからなる制御システムであることを特徴とする
【0066】
この発明によれば、請求項1〜23のいずれか一つに記載したIEEE1394を用いた同期システムを、サーボドライブ装置とこれを制御するコントローラとからなる制御システムに適用している。
【0067】
つぎの発明にかかるIEEE1394を用いた同期システムは、上記の発明において、前記コントローラは、サイクルマスタであることを特徴とする。
【0068】
この発明によれば、前記コントローラを、サイクルマスタとし、効率的な遅延ずれ量の計測および補正ができるようにしている。
【0069】
【発明の実施の形態】
以下、添付図面を参照して、この発明にかかるIEEE1394を用いた同期システムの好適な実施の形態について説明する。
【0070】
実施の形態1.
まず、この発明の実施の形態1について説明する。この実施の形態1では、ピングパケットを利用してサイクルタイマ遅延を推定し補償するようにしている。P1394aでは、最適なGap_Count値を計算し設定するために、ピング(Ping)パケットが定義されている。Gap(ギャップ)とは、例えば図24に示したデータパケットD2,D3間などの時間であり、バスがアイドル状態となっている時間をいい、このギャップが長くなれば、バスがアイドルとなっている時間が長くなり、実際にパケットが流れる時間が制限され、一方、キャップを極端に短くすると、トポロジの構成で、物理層のホップ数が多い場合や接続されるノードが多い場合には通信が行えなくなってしまうため、ギャップは最適化される。
【0071】
P1394aでは、あるノード(バスマネージャ)から他のノードにこのピングパケット送信すると、このピングパケットを受信した送り先のノードの物理層(Phyレイヤ)は、Self_IDパケットを送り返す仕様になっており、ピングパケットが送出されてから、Self_IDパケットが返送されて戻ってくるまでの時間を測ることによって、2つのノード間の遅延時間がわかるようになっている。そして、上述したように、P1394aでは、この遅延時間をもとに、最適なGap_Count値を計算し設定することができるようになった。ルート以外は、すべてリンク層(Linkレイヤ)がなくても、このPingパケットに応答できるため、物理層だけで構成されるリピータでも遅延時間を知ることができ、トポロジが変わっても最適なGap_Count値を計算することができる。なお、このPingパケットは、IEEE1394−1995規格にはないが、P1394a規格で検討中である。
【0072】
さて、この実施の形態1では、Pingパケットを利用してサイクルタイマ遅延を推定し、補償する。IEEE1394の物理層のパケットリピート回路は、対称なため、図1に示すように、要求ノードN1の物理層から送られたPingパケットが応答ノードN2の物理層に到達するまでの伝送遅延t1は、応答ノードN2の物理層から返送されたSelf_IDパケットが要求ノードN1の物理層に到達するまでの伝送遅延t2とほぼ等しい。すなわち、
伝送遅延t1≒伝送遅延t2
とみなすことができる。この結果、図1に示すように、要求ノードN1の物理層がPingパケットを送出してからSelf_IDパケットを受信するまでの時間を所要時間tとすると、伝送遅延t1は、
t1(伝送遅延)≒(t(所要時間)−RESPONSE_TIME)/2
として求めることができる。この伝送遅延t1がそのまま、要求ノードN1が保持するサイクルタイマと応答ノードN2が保有するサイクルタイマとの間の遅延として考えることができる。なお、「RESPONSE_TIME」に実際どのぐらいの時間がかかったのかは、この手法では分からないが、「RESPONSE_TIME」の最小値および最大値は、パラメータで指定されており(Cable interface timing constants)、既知である。したがって、たとえば、
RESPONSE_TIME≒(最大値+最小値)/2
として「RESPONSE_TIME」を求めてもよい。実験的に、「RESPONSE_TIME」に実際どのぐらいの時間がかかっているのかがわかっていれば、最大値と最小値の平均の代わりに適当な重み付き平均、たとえば、係数wを用いて
RESPONSE_TIME≒(w×最大値+(1−w)×最小値)/2
とし、これによって一層精度の良い「RESPONSE_TIME」を求めることができる。
【0073】
また、Pingパケットを送信し、Self_IDパケットが返ってくるまでの所要時間tを計測する代わりに、RemoteAccessパケットを送信し、RemoteReplyパケットが返ってくるまでの時間を計測し、この時間を所要時間tとしてもよい。また、RemoteCommandパケットを送信し、RemoteConfirmationパケットが返ってくるまでの時間を計測し、この時間を所要時間tとしてもよい。これらパケットは、ほぼ同じ振る舞い、すなわち物理層が返送するので、これらのどのパケットを用いても良い。これらのパケットは、サイクルマスタ、サイクルスレーブに関わらず、全てのノードが任意にノードに対して送信することができるので、任意のノード間の遅延を任意のノードが必要に応じて計測することができる。
【0074】
このノード間の遅延(タイマ遅延)は各ノード間で各々異なるので、各ノード間の全ての場合についてタイマ遅延の補償を行うのが望ましい。しかしながら、タイマ遅延計測を頻繁に行えば、タイマ遅延計測のためのパケットが増えることになり、その分だけネットワークのトラフィックが増えることになり、重要なパケットの伝送の妨げになりかねない。
【0075】
タイマ遅延は、ネットワークの構成(トポロジ)が変わらない限り同じであるから、タイマ遅延補償は、基本的にネットワークの構成(再構成)が行われた後の最初の1回だけ行えば良いので、バスリセットなどのネットワークの再構成を含むネットワークの構成が行われたことを検出し、かつサイクルスタートパケットによるサイクルタイマ設定が行われた後に、最初に1回だけタイマ遅延計測のためのパケットを流してタイマ遅延補償を行う。
【0076】
このため、ネットワーク上のある1つノード、たとえばサイクルマスタ、制御システムの場合はコントローラが、ネットワーク構成変化判別手段を保有する必要がある。ネットワーク構成変化判別手段は、ネットワークが再構成を判別した場合、タイマ遅延補償を行う指令を他のノードへ伝える。あるいは、ネットワーク構成変化判別手段を、必ずサイクルマスタ(制御システムの場合はコントローラ)が保有するようにし、サイクルマスタ自体が保有するデータテーブルにタイマ遅延を記憶するなどの一連のタイマ遅延に関する作業をすべてサイクルマスタによって管理するようにしても良い。
【0077】
この実施の形態1によれば、IEEE1394の仕様(P1394a既存の仕様)の範囲内で、各ノードが有するサイクルタイマのタイマ遅延を補償することで、IEEE1394を任意の用途に利用する場合でも、高精度な同期を実現することが可能となる。さらには、IEEE1394をコントローラとサーボドライバと間のオープンなインタフェースとして使用した場合でも、コントローラとサーボドライブとの間、あるいはサーボドライブ間同士のタイマ遅延を補償することが可能となり、高速高精度な制御を実現することができる。また、タイマ遅延計測に使用されるパケットは、サイクルマスタのみが使用できるものではなく、全てのノードが等しく使用できるため、任意のノード間のタイマ遅延を計測することが可能である。
【0078】
実施の形態2.
つぎに、この発明の実施の形態2について説明する。上述した実施の形態1では、RESPONSE_TIMEに、実際どのぐらいの時間がかかったのかが分からないため、おおよそのタイマ遅延を推定するようにしていたが、この実施の形態2では、真に正確なタイマ遅延を測定できるようにし、特にタイマ遅延の誤差が大きな影響を及ぼす、コントローラとサーボドライブとを有する制御システムにIEEE1394を用いる場合であっても、支障のないようにしている。
【0079】
IEEE1394では、リード(Read)パケットを使って、応答ノードが有するサイクルタイマのサイクルタイマ値を読み込むことができる。この読み込みによって取得されたサイクルタイマ値と要求ノードが有するサイクルタイマのサイクルタイマ値との差から、タイマ遅延を計測すれば、実際のタイマ遅延を測定することが可能であるように思われる。
【0080】
しかし、実際には、Readパケットに対するレスポンス(ReadResponse)パケットは、応答ノードの上位層(トランザクション層およびそれより上位の層)がReadResponseパケットを送信バッファ(TX_FIFO)に蓄える際、ReadResponseパケットにサイクルタイマ値を書き込むため、その後、実際に応答ノードのリンク層から送信されるまでの時間は一定値ではなく、Readパケットとこれに対するReadResponseパケットとを用いても、正確なタイマ遅延を測定することはできない。
【0081】
送信バッファに蓄えられる時間が長くなる理由は、このリード処理が非同期(ASYNC)処理であり、ReadパケットおよびReadResponseパケットが非同期(ASYNC)パケットであるから、Asynchronous転送時間帯でしか送信することができないために、ReadResponseパケットが送信バッファに蓄える時がAsynchronous転送時間帯であれば、図2に示すように、送信バッファに滞留する時間は一瞬であって、直ちに送信されるのに対し、図3に示すように、ReadResponseパケットが送信バッファに送られた時がIsochronous転送時間帯であれば、Isochronous転送時間帯が終了してAsynchronous転送時間帯になって送信可能となるまで、ReadResponseパケットが送信バッファに滞留するからである。
【0082】
この送信バッファに滞留する時間の差異を解消するには、いくつかの方策がある。その第1の方策は、応答ノードN2がReadパケットを受け付けてReadResponseパケットを送出するまでの一連の動作が、常に図2に示すように、同一のAsynchronous転送時間帯中に行われればよいのであるから、要求ノードN1が予め、Readパケットを送信してReadResponseパケットが返送されるまでの一連の動作が、同一のAsynchronous転送時間帯中に行われるかどうかを判定部1が判定し、同一のAsynchronous転送時間帯中に行われると判断した場合に、要求ノードがReadパケットを応答ノードに送信すればよい。
【0083】
基本的に、タイマ遅延計測のためのパケットは、ネットワーク構築後の初期の段階で行われるので、ネットワーク構築後の初期の段階においては、制御システムが制御するためのデータ転送はなく、すなわちトラフィックは少なく、また、応答ノードN2の上位層でも特別なアプリケーションが作動していないので、タイマ遅延計測のためのパケットの要求に対してすばやく応答するであろう。
【0084】
したがって、同一のAsynchronous転送時間帯中に上述した一連の動作が行われるネットワーク構築後の初期の段階などに、タイマ遅延計測のためのパケットを要求ノードN1が応答ノードN2に送出すれば、Readパケットを受け付けてからReadResponseパケットを送出するまでの処理時間は、容易に推定することができる。この場合、上位層における処理時間の推定は、上述した実施の形態1による遅延計測を用いることができる。また、この場合、上述した一連の動作が他のトラフィックに邪魔される可能性は少ないため、信頼度の高い測定が可能となる。
【0085】
この第1の方策によれば、既存のプロトコルをそのまま使用し、送信側である要求ノードN1の上位層に、Readパケットを送信してReadResponseパケットが返送されるまでの一連の動作が同一のAsynchronous転送時間帯中に行われるかどうかを判定する判定部1を設けるのみで、この一連の動作が同一のAsynchronous転送時間帯内で行われるので、正確なタイマ遅延補償が可能となる。
【0086】
第2の方策としては、図4に示すように、応答ノードN1の上位層が、ReadResponseパケットを送信バッファに蓄えるタイミングをAsynchronous転送時間帯の間に行えば良い。すなわち、応答ノードN2の上位層が、Asynchronous転送時間帯となるまで待って、ReadResponseパケットをリンク層に送出するようにする。なお、上位層は、下位のリンク層からの割り込み信号によって現在の通信伝送路の状態がIsochronous転送時間帯であるかAsynchronous転送時間帯であるかを知ることができる。これによって、Asynchronous転送時間帯待ちの既知の時間を上位層の処理時間に加えるのであるので、要求ノードN1と応答ノードN2との間のタイマ遅延を確実に測定することができる。
【0087】
第2の方策によれば、既存のプロトコルをそのまま使用し、受信側ノードである応答ノードN2の上位層に、現在の通信伝送路の状態がIsochronous転送時間帯であるかAsynchronous転送時間帯であるかを判定する判定部を設けるだけで、ReadパケットとReadResponseパケットとが同一のAsynchronous転送時間帯内であろうとなかろうとに関わらず、正確なタイマ遅延補償を行うことができる。
【0088】
第3の方策としては、図5に示すように、ReadResponseパケットをリンク層から送出する時に、書込部3がこのReadResponseパケットにサイクルタイマ値を書き込むようにする。すなわち、上位層からリンク層にReadResponseパケットが送られたときにサイクルタイマ値を書き込むのではなく、ReadResponseパケットがリンク層から送出される瞬間に、このReadResponseパケットにサイクルタイマ値を書き込むようにする。
【0089】
IEEE1394において、サイクルスタートパケットによるサイクルタイマ設定では、サイクルマスタから送られてくるサイクルスタートパケットを応答ノードN2がリンク層で受け取った瞬間に、該サイクルスタートパケットに記述されているサイクルタイマ値を自ノードのサイクルタイマ値として設定する機構を既に備えている。
【0090】
しかしながら、この機構は、サイクルスタートパケットに固有の機構であって、第3の方策を行う機構は、IEEE1394には定義されておらず、新規にこの機構を追加するものである。なお、第1の方策あるいは第2の方策のように、送信バッファに蓄えられてから直ちに送信されると言っても若干の時間はかかるものであるが、この第3の方策によれば、この若干の時間の誤差すら発生せず、一層、正確な遅延測定が可能になる。
【0091】
第3の方策によれば、既存のプロトコルをそのまま使用し、受信側ノードである応答ノードのリンク層に、ReadResponseパケットがリンク層から送出される瞬間にこのReadResponseパケットにサイクルタイマ値を書き込む書込部3を設けるだけで、ReadパケットとReadResponseパケットとが同一のAsynchronous転送時間帯内であろうとなかろうとに関わらず、正確なタイマ遅延補償が可能となる。
【0092】
この実施の形態2によれば、IEEE1394の仕様(IEEE1394−1995既存の仕様)の範囲内で、各ノードが有するサイクルタイマのタイマ遅延を補償することで、IEEE1394を任意の用途に利用する場合でも、高精度な同期を実現することが可能である。さらには、IEEE1394をコントローラとサーボドライバとの間のオープンなインタフェースとして使用した場合でも、コントローラとサーボドライブとの間あるいはサーボドライブ間同士のタイマ遅延を補償することが可能となり、高速高精度な制御を実現できる。また、タイマ遅延計測に使用されるパケットは、サイクルマスタのみが使用できるものではなく、全てのノードが等しく使用できるため、任意のノード間のタイマ遅延を計測することが可能である。
【0093】
実施の形態3.
つぎに、この発明の実施の形態3について説明する。この実施の形態3では、上述した実施の形態1または実施の形態2によって測定されたタイマ遅延をもとに、タイマ遅延の補償を行うものである。なお、この実施の形態3では、サイクルスレーブ側がサイクルスタートパケット受信時にタイマ遅延を補償する場合について説明する。
【0094】
まず、サイクルスレーブは、サイクルスレーブ自身が有するサイクルタイマ値と、サイクルマスタが有するサイクルタイマ値との遅延ずれを知っている必要がある。この遅延ずれを取得するためのいくつかの態様としては、たとえば、つぎの9つの遅延ずれ取得態様がある。
【0095】
第1の遅延ずれ取得態様は、図6に示すように、サイクルマスタNMが任意のサイクルスレーブNSとの間の遅延ずれを測定し(S11)、この遅延ずれを当該サイクルスレーブNSに伝える(S12)ことによって当該サイクルスレーブNSが遅延ずれを取得する態様である。
【0096】
第2の遅延ずれ取得態様は、図7に示すように、サイクルマスタNMが任意のサイクルスレーブNSとの間の遅延ずれを測定し(S21)、この遅延ずれをサイクルマスタNMが有する遅延記憶手段に記憶し(S22)、任意のサイクルスレーブNSがサイクルマスタNMに対してこの遅延記憶手段をアクセスし、遅延ずれを読み取り(S23)、当該サイクルスレーブNSが遅延ずれを取得する態様である。
【0097】
第3の遅延ずれ取得態様は、図8に示すように、任意のサイクルスレーブNSがサイクルマスタNMとの間の遅延ずれを測定し(S31)、これによって遅延ずれを取得する態様である。
【0098】
この第1〜第3の遅延ずれ取得態様によれば、サイクルスレーブNSは、サイクルマスタNMのタイマ値に厳密に一致するように補償することができる。
【0099】
第4の遅延ずれ取得態様は、図9に示すように、ある特定のサイクルスレーブNS1が、他の任意のサイクルスレーブNS2との間の遅延ずれを測定し(S41)、かつ、サイクルマスタNMとの間の遅延ずれを測定し(S42)、サイクルマスタNMと任意のサイクルスレーブNS2との間の遅延を算出し(S43)、この遅延を任意のサイクルスレーブNS2に伝える(S44)ことによって、当該任意のサイクルスレーブNS2が遅延ずれを取得する態様である。
【0100】
第5の遅延ずれ取得態様は、図10に示すように、ある特定のサイクルスレーブNS1が、他の任意のサイクルスレーブNS2との間の遅延ずれを測定し(S51)、かつ、サイクルマスタNMとの間の遅延ずれを測定し(S52)、サイクルマスタNMと任意のサイクルスレーブNS2との間の遅延を算出し(S53)、この算出した遅延を、特定のサイクルスレーブ自身が有する遅延記憶手段に記憶し(S54)、任意のサイクルスレーブNS2がこの遅延記憶手段をアクセスしてこの遅延を読み取り(S55)、これによって任意のサイクルスレーブNS2が遅延ずれを取得する態様である。
【0101】
第6の遅延ずれ取得態様は、図11に示すように、ある特定のサイクルスレーブNS1が、他の任意のサイクルスレーブNS2との間の遅延ずれを測定し(S61)、かつ、サイクルマスタNMとの間の各遅延ずれを測定し(S62)、これらの各遅延を特定のサイクルスレーブNS1自身が有する遅延記憶手段に記憶し(S63)、任意のサイクルスレーブNS2が特定のサイクルスレーブNS1をアクセスしてこれらの遅延を読み取り(S64)、その後サイクルマスタNMとの間の遅延を算出する(S65)態様である。
【0102】
上述した第4〜第6の遅延ずれ取得態様は、第1〜第3の遅延ずれ取得態様と同じ作用効果を有するが、やや複雑な取得態様となっている。
【0103】
第7の遅延ずれ取得態様は、図12に示すように、ある特定のサイクルスレーブNS1が他の任意のサイクルスレーブNS2との間の遅延ずれを測定し(S71)、この遅延ずれを当該任意のサイクルスレーブNS2に伝送し(S72)、任意のサイクルスレーブNS2が遅延ずれを取得する態様である。
【0104】
第8の遅延ずれ取得態様は、図13に示すように、ある特定のサイクルスレーブNS1が他の任意のサイクルスレーブNS2との間の遅延ずれを測定し(S81)、この遅延ずれを特定のサイクルスレーブNS1自身が有する遅延記憶手段に記憶し(S82)、任意のサイクルスレーブNS2がこの遅延記憶手段にアクセスして遅延ずれを読み取る(S83)ことによって、任意のサイクルスレーブが遅延ずれを取得する態様である。
【0105】
第9の遅延ずれ取得態様は、図14に示すように、任意のサイクルスレーブNS2が、ある特定のサイクルスレーブNS1との間の遅延ずれを測定し(S91)、これによって任意のサイクルスレーブNS2が遅延ずれを取得する態様である。
【0106】
上述した第7〜第9の遅延ずれ取得態様によれば、ある特定のサイクルスレーブのタイマ値に厳密に一致するように他の任意のサイクルスレーブのタイマ値を補償することが可能となる。この場合、同じタイマ値を有していないのはネットワーク上ではサイクルマスタのみとなる。
【0107】
サイクルスレーブが自信の有するサイクルタイマ値と、基準となるノード(サイクルマスタの場合もあればサイクルスレーブの場合もある)が有するサイクルタイマ値の遅延ずれを、サイクルスレーブ自身で知ることができたならば、サイクルスレーブ側自身でタイマ遅延を補償することができる。このタイマ遅延補償態様には、つぎの3つの態様がある。以下に説明する3つの態様では、基準となるノードがサイクルマスタの場合について説明しているが、基準となるノードがサイクルスレーブの場合でも同様に実施できる。
【0108】
第1のタイマ遅延補償態様は、図15に示されるように、タイマ遅延量Δt11を考慮してサイクルタイマTM1のサイクルタイマ値を設定するものである。サイクルマスタNMが、サイクルスレーブNSに対し、サイクルスタートパケットによってサイクルマスタNMが有するサイクルタイマ値t10を伝送した際に、サイクルスレーブNS側がこのサイクルスタートパケットを受け取った時にサイクルタイマ値t10をそのままサイクルスレーブNS自身が有するサイクルタイマTM1のサイクルタイマ値t10と設定せずに、遅延ずれ量Δt11を考慮してサイクルタイマ値t12を設定する。すなわち、
t12(設定すべきサイクルタイマ値)
=t10(受け取ったサイクルタイマ値)+Δt11(タイマ遅延量)
となる。
【0109】
第2のタイマ遅延補償態様は、図16に示すように、サイクルスレーブNS側がサイクルスタートパケットを受け取った時にサイクルタイマ値t10をそのまま自サイクルスレーブNSが有するサイクルタイマ値t10として設定する点は、従来のタイマ設定と同じであるが、サイクルスレーブNS側の上位層(サイクルスレーブ側のアプリケーション)がサイクルタイマ値を使用する、すなわち読みにきた際におけるサイクルタイマ値t13に、遅延ずれ量を補正し、この補正したサイクルタイマ値t14を上位層が用いるようにする。この場合、遅延ずれ量が予め知っていれば、基本的にいつでもサイクルタイマ値を補償でき、この補償したサイクルタイマ値を用いることができる。すなわち、
t14(使用すべきサイクルタイマ値)
=t13(リンク層のサイクルタイマ値)+Δt11(タイマ遅延量)
となる。
【0110】
第3のタイマ遅延補償態様は、図17に示すように、サイクルスレーブNSは、サイクルタイマTM1とは別個に第2のサイクルタイマTM2を有する。サイクルタイマTM1には、受け付けたサイクルタイマ値をそのまま設定し、第2のサイクルタイマTM2には、任意のタイミング、たとえば時間的にクリティカルでないときに、タイマ遅延量Δt11を加味したタイマ遅延補償されたサイクルタイマ値が設定され、上位層は、このサイクルタイマ値を用いるようにしている。
【0111】
この実施の形態3によれば、IEEE1394の仕様(IEEE1394−1995既存の仕様)の範囲内で、各ノードが有するサイクルタイマのタイマ遅延を補償することで、IEEE1394を任意の用途に利用する場合でも、高精度な同期を実現することが可能である。また、すべてのノードがタイマ補償を必要としている訳ではないので、必要なノードだけが必要に応じて遅延計測補償を行えば良い。さらには、IEEE1394をコントローラとサーボドライバとの間のオープンなインタフェースとして使用した場合でも、コントローラとサーボドライブとの間、あるいはサーボドライブ間同士のタイマ遅延を補償することが可能となり、高速高精度な制御を実現できる。また、タイマ遅延補償はサーボ側で行うので、コントローラ部分に何の変更も必要ない。さらには、すべての被制御機器がタイマ補償を必要としている訳ではないので、必要なサーボノードだけが必要に応じて遅延計測補償を行えば良い。
【0112】
ところで、上述した第1のタイマ遅延補償態様は、単純であり、また、タイマを用いた割込は遅延を補償した時刻における割込となることから、正確である。しかし、IEEE1394の基幹に関わる部分であるリンク層を変更しなければならない。さらに、IEEE1394ではサイクルスタートパケットを受け取ってタイマ値を更新する際にタイマ値を戻してはならない、という規約がある。この実施の形態で、サイクルスレーブのサイクルタイマを基準としたならば、遅延ずれが負の値を持ち、タイマ遅延補償をする際にタイマ値を戻すノードが存在することがあるので、このような場合には、IEEE1394のこの規約を無視するか、あるいは、「基準となるサイクルスレーブのサイクルタイマ値+一定時間」をネットワーク上での基準時間とすることで、タイマ遅延補償をする際にタイマ値を戻すノードがないようにして、IEEE1394のこの規約を守るようにする、などの処置を行う必要がある。また、タイマ遅延補償を行うサイクルスレーブの上位層からみて、タイマがいつ更新されるかがわからない、すなわちサイクルスタートパケットがいつ送られてくるのかわからないため、タイマ遅延補償を行うサイクルスレーブの上位層において、時間を計測している最中など、時間に対してクリティカルな最中にタイマの更新が行われる可能性があり、クリティカルな最中にタイマの更新が行われた場合とそうでない場合とで誤差が生じてしまう。
【0113】
もともと、サイクルマスタが有するサイクルタイマとサイクルスレーブが有するサイクルタイマとは完全に特性が一致するとは限らないので、お互いのサイクルタイマの間に精度の差が存在し、サイクルスタートパケットによってサイクルスレーブのサイクルタイマを、サイクルマスタのサイクルタイマ値に合わせるのは、このサイクルタイマ間の精度差をなくすためである。しかしながら、たとえば、タイマ遅延補償を行うサイクルスレーブの上位層(の任意のアプリケーション)が、何か別の目的で時間計測などを、自身のサイクルタイマを使って行う場合、サイクルタイマの更新が起こらなければ、自身のサイクルタイマの精度の範囲内で、その時間計測の精度は保証されるが、その時間計測の途中でサイクルタイマの更新が起こってしまったら、その時間計測の精度は全く保証されないものになってしまう。もちろん、この誤差が問題のない範囲でシステムにIEEE1394を用いるのであれば、この第1のタイマ遅延補償態様はこのシステムに十分である。
【0114】
一方、第2のタイマ遅延補償態様では、IEEE1394に関わる変更は全くなく、上位層(アプリケーション)のみ変更すれば良いので、容易に実現が可能である。しかしながら、このタイマを使った割込は、遅延を補償したタイマが発生する割込とはならない。この代替手段としてアプリケーションからタイマをポーリングして正確な時刻の割込を実現することも可能である。ただし、ポーリングによる負荷が生じることになる。さらに、第1のタイマ遅延補償態様と同様に、サイクルタイマ値の更新がいつ起こるか判らないことによる、タイマの精度の保証の問題が残る。ポーリングによる負荷や、タイマ更新に関わる誤差が問題ない範囲で用いるシステムに適用するのであれば、この第2のタイマ遅延補償態様は、十分用いることができる。
【0115】
また、第3のタイマ遅延補償態様では、第1および第2のタイマ遅延補償態様で問題となっていたタイマ更新に関わる誤差の保証問題を解決することができる。この第3のタイマ遅延保証態様では、サイクルタイマ値にタイマ遅延量を考慮したサイクルタイマ値を、第2のサイクルタイマに第2のサイクルタイマ値として設定するタイミングを任意とすることができるため、タイマ遅延量Δtを計測している最中など、時間にクリティカルな時間帯を避けたタイミングでタイマ値を設定することができる。また、このタイマを使った割込は、遅延を補償した時刻における割込であるから、正確である。したがって、この第3のタイマ遅延補償態様によるタイマ遅延補償が最も好ましいといえる。
【0116】
実施の形態4.
つぎに、この発明の実施の形態4について説明する。この実施の形態4では、上述した実施の形態1,2に示したタイマ遅延の測定などを用いてタイマ遅延を測定しておき、このタイマ遅延およびタイムスタンプを用いてタイマ遅延補償を行うようにしている。
【0117】
図18は、タイムスタンプを用いて制御を行う同期システムの概要を示す図である。図18において、要求ノードN1と応答ノードN2とによる同期をとる場合、たとえばコントローラと各サーボドライバとによる同期制御を行う場合、ある時刻において同期を取る、すなわち同期制御を行う必要があるが、このような場合には、コマンド内容(制御内容)とともに、このコマンド内容(制御内容)が行われるべき時刻をタイムスタンプとして、要求ノードN1から応答ノードN2に対して送られる。要求ノードN1がコントローラであり、応答ノードN2が各サーボドライバである場合には、コントローラから各サーボドライバ対してタイムスタンプが送られる。応答ノードN2は、受け取った時刻、すなわちタイムスタンプの時刻(タイムスタンプ値)t20になると、受け取ったコマンド内容(制御内容)を実行する。
【0118】
しかしながら、応答ノードN2の時刻は、応答ノードN2自身が有するサイクルタイマによるものであるから、応答ノードN2と要求ノードN1との間に遅延が存在する。応答ノードN2が要求ノードN1からタイムスタンプ値を受け付けると、応答ノードN2は、遅延ずれを補償する。なお、この場合、各応答ノードN2は、各応答ノードN2が有するサイクルタイマ値と、要求ノードN1が有するサイクルタイマ値との遅延ずれを予め知っている必要がある。この遅延ずれを、タイムスタンプを用いて補償する態様には、つぎの2つの態様がある。
【0119】
第1のタイムスタンプによるタイマ遅延補償態様は、まず要求ノードN1が、任意の応答ノードN2との間の遅延ずれを測定し、この遅延を任意の応答ノードN2に伝達する。応答ノードN2が遅延ずれ量を予め取得する態様には、つぎの3つの態様がある。
【0120】
第1の取得態様は、図6に示した第1の遅延ずれ取得態様と同様に、要求ノードN1が任意の応答ノードN2との間の遅延ずれを測定し、この遅延ずれを当該任意の応答ノードN2に伝える態様である。
【0121】
第2の取得態様は、図7に示した第2の遅延ずれ取得態様と同様に、要求ノードN1が任意の応答ノードN2との間の遅延ずれを測定し、要求ノードN1自身が有する遅延記憶手段に記憶し、任意の応答ノードN2が要求ノードN1の遅延記憶手段にアクセスし、この遅延ずれを読み取り、当該任意の応答ノードN2が遅延ずれを取得する態様である。
【0122】
第3の取得態様は、図8に示した第3の遅延ずれ取得態様と同様に、任意の応答ノードN2が要求ノードN1との間の遅延ずれを測定し、これによって、遅延ずれを取得する態様である。
【0123】
その後、図19に示すように、要求ノードN1から応答ノードN2に対して、コマンド内容(制御内容)とともに、このコマンド内容(制御内容)が行われるべき時刻であるタイムスタンプ値t20が応答ノードに送られてくると、応答ノードN2は、受け取った時刻、すなわちタイムスタンプ値t20に対して遅延ずれ量ΔT21を補償し、この補償したタイムスタンプ値t22が示す時刻になると、受け取ったコマンド内容(制御内容)を実行する。
【0124】
一方、第2のタイムスタンプによるタイマ遅延補償態様では、要求ノードN1が各応答ノードN2の遅延ずれ量Δt21をそれぞれ考慮したタイムスタンプを発行する。この場合は、要求ノードN1は、要求ノードN1自身が有するサイクルタイマ値と各応答ノードが有するサイクルタイマ値との遅延ずれ量Δt21を予め知っている必要がある。この遅延ずれ量を取得する態様としては、つぎの3つの態様がある。
【0125】
その第1の取得態様は、要求ノードN1が各応答ノードN2との間の遅延を測定し、要求ノードN1自身が有するデータテーブル形式の遅延量記憶手段に記憶しておく。
【0126】
第2の取得態様は、各応答ノードN2が、要求ノードN1との間の遅延ずれ量Δt21を測定し、この遅延ずれ量Δt21を応答ノードN2自身の遅延量記憶手段に記憶しておき、要求ノードN1が、応答ノードN2の遅延量記憶手段に記憶された遅延ずれ量を読み取る。
【0127】
第3の取得態様は、各応答ノードN2が、要求ノードN1との間の遅延ずれ量を測定し、この遅延ずれ量を要求ノードN1に伝える。
【0128】
その後、図20に示すように、要求ノードN1は、制御内容とともに、この制御内容が行われるべき時刻であるタイムスタンプ値t20を、各応答ノードN2の遅延ずれ量を考慮して、遅延ずれ量Δt21分だけ時刻を戻して設定し、要求ノードN1から各応答ノードN2に対して送る。これに対し、応答ノードN2側は、受け取ったタイムスタンプ値t22が示す時刻になると、受け取った制御内容を実行する。この場合、受け取ったタイムスタンプ値t22は、既に遅延ずれ量を考慮した値となっているので、そのまま制御内容を実行すればよい。
【0129】
この実施の形態4によれば、IEEE1394の仕様(IEEE1394−1995既存の仕様)の範囲内で、各ノードが有するサイクルタイマのタイマ遅延を補償することで、IEEE1394を任意の用途に利用する場合でも、高精度な同期を実現することが可能である。また、すべてのノードがタイマ補償を必要としている訳ではないので、必要なノードだけが必要に応じて遅延計測補償を行えば良い。さらには、IEEE1394をコントローラとサーボドライバとの間のオープンなインタフェースとして使用した場合でも、コントローラとサーボドライブとの間、あるいはサーボドライブ間同士のタイマ遅延を補償することが可能となり、高速高精度な制御を実現できる。また、タイマ遅延補償はサーボ側で行うので、コントローラ部分に何の変更も必要ない。さらには、すべての被制御機器がタイマ補償を必要としている訳ではないので、必要なサーボノードだけが必要に応じて遅延計測補償を行えば良い。
【0130】
実施の形態5.
つぎに、この発明の実施の形態5について説明する。この実施の形態5では、上述した実施の形態1〜4で示したIEEE1394を、コントローラとサーボドライバとの間のオープンなインタフェースとして使用した場合について説明する。
【0131】
ここで、コントローラをサイクルスレーブとし、被制御対象機器であるサーボドライバをサイクルスレーブとし、被制御対象機器のサーボドライバの1つを、サイクルマスタとしてもよいが、コントローラをサイクルマスタとし、被制御対象機器のサーボドライバの全てをサイクルスレーブとすることが好ましい。
【0132】
コントローラは、サーボドライバに対してIsochronousパケットによるサーボデータなどのデータを送出し、サーボドライバは、コントローラに対してIsochronousパケットによるフィードバックデータなどを返送する。この場合、コントローラがサイクルマスタであれば、Isochronous転送時間帯の中で、コントローラの制御パケットを先に優先し、すなわちIsochronousパケットの先頭に位置させて送出することができる。
【0133】
上述した実施の形態1〜4を適宜組み合わせ、コントローラとサーボドライバとのタイマ遅延計測補償を行ってもよいが、ここでは、タイマ遅延の計測に関する一連の動作をコントローラが管理し、タイマ遅延の補償をサーボドライバ側が行う場合のタイマ遅延補償処理シーケンスについて説明する。
【0134】
図21は、タイマ遅延の補償をサーボドライバ側が行う場合におけるタイマ遅延補償処理手順を示すフローチャートである。図21において、まず、サーボドライバをコントローラに接続する(ステップS101)。その後、コントローラが有するネットワーク構成変化判別手段が、ネットワークの構成が変化したことを検出し、ネットワーク再構成後に1回だけ、コントローラが各サーボドライバとの間のタイマ遅延を計測し、このタイマ遅延量を、コントローラ自身が有するデータテーブルに記憶する(ステップS102)。
【0135】
その後、コントローラは、各サーボドライバにタイマ遅延量を伝達し(ステップS103)、このタイマ遅延量を受けたサーボドライバは、このタイマ遅延量をもとにタイマ遅延を補償し(ステップS104)、本処理を終了する。
【0136】
つぎに、コントローラが遅延補償したタイムスタンプを生成する場合のタイマ遅延補償処理シーケンスについて説明する。図22は、コントローラが遅延補償したタイムスタンプを生成する場合の遅延補償処理手順を示すフローチャートである。図22において、まず、ステップS101と同様に、サーボドライバをコントローラに接続する(ステップS201)。その後、コントローラが有するネットワーク構成変化判別手段が、ネットワークの構成が変化したことを検出し、ネットワーク再構成後に1回だけ、コントローラが各サーボドライバとの間のタイマ遅延を計測し、このタイマ遅延量を、コントローラ自身が有するデータテーブルに記憶する(ステップS202)。その後、コントローラは、タイマ遅延量を補償したタイムスタンプを生成してサーボドライブ側に伝達し(ステップS203)、本処理を終了する。
【0137】
この実施の形態5では、コントローラとサーボドライブとからなる制御システムのように、高速高精度の同期を必要とするシステムであっても、コントローラとサーボドライブとの間にオープンなインタフェースであるIEEE1394を使用して、コントローラとサーボドライブとの間のタイマ遅延補償を確実かつ精度良く行うことができる。
【0138】
【発明の効果】
以上説明したように、この発明によれば、IEEE1394を用いて接続されたネットワーク内の各ノード間の同期をとる際、サイクルタイマ遅延計測手段が、前記各ノードが有する各サイクルタイマ同士の遅延ずれ量を計測し、サイクルタイマ遅延補正手段が、前記サイクルタイマ遅延計測手段が計測した遅延ずれ量をもとに前記各サイクルタイマ同士の遅延ずれを補正するようにしているので、IEEE1394の仕様の範囲内で、各ノードが有するサイクルタイマのサイクルタイマ同士のタイマ遅延が補償され、高速高精度な同期制御が可能なシステムを実現することができるという効果を奏する。また、前記サイクルタイマ遅延計測手段が、要求ノードから応答ノードに対して Read パケットを送信し、該応答ノードのサイクルタイマ値を読み取り、この読み取ったサイクルタイマ値を含む ReadResponse パケットを前記要求ノードが受信し、この受信したサイクルタイマ値と要求ノードのサイクルタイマ値との差をもとに前記遅延ずれ量を算出するようにしているので、サイクルタイマ値を読み取ることによって容易にサイクルタイマ同士の遅延ずれ量を得ることができるという効果を奏する。
【0144】
つぎの発明にによれば、前記要求ノードの判定手段が、前記Readパケットを送信し、前記ReadResponseパケットが返送される一連のシーケンスが、同一のアシンクロナス転送が行われている時間帯である同一のAsynchronous転送時間帯で完了するか否かを判定し、前記要求ノードが、前記判定手段が同一のAsynchronous転送時間帯で完了すると判定した場合に、Readパケットを前記応答ノードに送出するようにし、ReadResponseパケットが同一のAsynchronous転送時間帯内で返送されるようにしているので、信頼度の高い遅延ずれ量を計測することができるという効果を奏する。
【0145】
つぎの発明によれば、前記応答ノードの上位層の判定手段が、アシンクロナス転送が行われている時間帯であるAsynchronous転送時間帯であるか否かを判定し、前記判定手段がAsynchronous転送時間帯であると判定した場合に、前記上位層は前記ReadResponseパケットを送信バッファ(TX_FIFO)に蓄えることで、前記ReadResponseパケットは、送信バッファ長くとどまることなく、直ちに要求ノードに返送されるようにしているので、信頼度の高い遅延ずれ量を計測することができるという効果を奏する。
【0146】
つぎの発明によれば、前記応答ノードのリンク層の書込手段が、前記ReadResponseパケットがリンク層バッファから送出される直前に該ReadResponseパケットに当該応答ノードのサイクルタイマ値を書き込むようにしているので、信頼度の高い遅延ずれ量を計測することができるという効果を奏する。
【0147】
つぎの発明によれば、各ノードのサイクルタイマ遅延記憶手段が、前記遅延ずれ量を記憶し、少なくとも他のノードからのアクセスによって遅延ずれ量を獲得できるようにしているので、効率的な遅延ずれ量の取得を可能にするという効果を奏する。
【0148】
つぎの発明によれば、前記サイクルタイマ遅延記憶手段が、全てのノード間の遅延ずれ量をデータテーブル形式で記憶するようにしているので、遅延ずれ量の取得を迅速に行うことができるという効果を奏する。
【0149】
つぎの発明によれば、前記サイクルタイマ遅延記憶手段を、サイクルマスタとしてのノードに設けるようにしているので、効率的な遅延ずれ量の管理を行うことができるという効果を奏する。
【0150】
つぎの発明によれば、ネットワーク構成変化判別手段が、前記ネットワークの構成の変化を判別し、前記ネットワーク構成変化判別手段がネットワークの構成に変化があったと判別した場合、該ネットワークの再構成後、前記サイクルタイマ遅延計測手段がサイクルタイマ同士の遅延ずれ量を計測し、前記サイクルタイマ遅延補正手段が該遅延ずれ量をもとにサイクルタイマ同士の遅延ずれを補正する処理を一回行うようにしているので、ネットワークのトラヒックに影響を与えず、しかも正確かつ確実な遅延ずれ量の計測および補正を行うことができるという効果を奏する。
【0151】
つぎの発明によれば、前記ネットワーク構成変化判別手段を、サイクルマスタとしてのノードに設けるようにしているので、迅速かつ効率的な遅延ずれの計測および補正を行うことができるという効果を奏する。
【0152】
つぎの発明によれば、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段を、ノード間の同期を用いる所定のノードに設けるようにしているので、ノード間の同期を必要とするノードが確実に遅延ずれ量を計測し、補正することができるという効果を奏する。
【0153】
つぎの発明によれば、同期の基準となるサイクルタイマを有するサイクルマスタのノードが、該ノードが計測した遅延ずれ量を前記サイクルタイマ遅延伝送手段によって前記所定のノードに伝送し、あるいは該ノードが計測した遅延ずれ量をデータテーブルに記憶し、前記所定のノードが前記サイクルマスタのノードから該遅延ずれ量を取得し、その後所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに該ノードのサイクルタイマの遅延ずれを補正するようにしているので、遅延ずれ量およびその補正を確実に行うことができるという効果を奏する。
【0154】
つぎの発明によれば、前記サイクルタイマ遅延補正手段が、サイクルスタートパケットを受信した際に、遅延ずれ量をもとにサイクルタイマ値を設定するようにしているので、同期がとれた制御処理を確実に行うことができるという効果を奏する。
【0155】
つぎの発明によれば、前記サイクルタイマ遅延補正手段が、上位層がサイクルタイマ値の使用時に、前記遅延ずれ量を用いて遅延ずれを補正するようにしているので、適時に、遅延ずれ量が補正された時刻を用いて制御処理を行うことができ、遅延ずれ量の補正時期の不一致による不具合を解消することができるという効果を奏する。
【0156】
つぎの発明によれば、所定のノードの前記サイクルタイマ遅延補正手段が、任意のタイミングで遅延ずれ量を用いて前記遅延ずれを補正したサイクルタイマ値を第2のサイクルタイマに設定するようにしているので、適時に、遅延ずれ量が補正された時刻を用いて制御処理を行うことができ、遅延ずれ量の補正時期の不一致による不具合を解消することができるという効果を奏する。
【0157】
つぎの発明によれば、前記サイクルタイマ遅延補正手段が、前記遅延ずれ量をもとに、前記サイクルマスタのノードから送られた前記タイムスタンプのタイムスタンプ値を更新し、前記タイムスタンプ時刻監視手段が、前記更新されたタイムスタンプ値が示す時刻を監視するようにしているので、タイムスタンプを用いた遅延ずれ量の補正を確実に行うことができるという効果を奏する。
【0158】
つぎの発明によれば、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段を、サイクルマスタとしてのノードに設けるようにしているので、効率的なサイクルタイマ同士の遅延ずれ量の計測および補正を行うことができるという効果を奏する。
【0159】
つぎの発明によれば、前記所定のノードが、該所定のノードで計測した遅延ずれ量を前記サイクルマスタのノードに伝送し、あるいは前記所定のノードから遅延ずれ量を取得し、その後該所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに前記サイクルマスタのノードのサイクルマスタの遅延ずれを補正するようにしているので、遅延ずれ量およびその補正を確実に行うことができるという効果を奏する。
【0160】
つぎの発明によれば、前記サイクルタイマ遅延補正手段が、前記遅延ずれ量をもとに、自サイクルマスタのノードの前記タイムスタンプ生成手段が生成したタイムスタンプのタイムスタンプ値を更新し、この更新したタイムスタンプ値を含むデータを所定のノードに伝送するようにしているので、タイムスタンプを用いた遅延ずれ量の計測および補正を効率的かつ確実に行うことができるという効果を奏する。
【0161】
つぎの発明によれば、請求項1〜23のいずれか一つに記載したIEEE1394を用いた同期システムを、サーボドライブ装置とこれを制御するコントローラとからなる制御システムに適用しているので、高速高精度の同期制御を確実に行うことができるという効果を奏する。
【0162】
つぎの発明によれば、前記コントローラを、サイクルマスタとし、効率的な遅延ずれ量の計測および補正ができるようにしているので、高速高精度の同期制御が可能な制御システムを実現することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1であるIEEE1394を用いた同期システムにおける伝送遅延測定の処理シーケンスを示す図である。
【図2】 IEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの概要を示す図である。
【図3】 この発明の実施の形態2であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図4】 この発明の実施の形態2であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図5】 この発明の実施の形態2であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図6】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図7】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図8】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図9】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図10】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図11】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図12】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図13】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図14】 遅延ずれの取得処理シーケンスの一例を示す図である。
【図15】 この発明の実施の形態3であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図16】 この発明の実施の形態3であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図17】 この発明の実施の形態3であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図18】 この発明の実施の形態4であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図19】 この発明の実施の形態4であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図20】 この発明の実施の形態4であるIEEE1394を用いた同期システムにおけるタイマ遅延補償の処理シーケンスの一例を示す図である。
【図21】 この発明の実施の形態5であるIEEE1394を用いた同期システムを、コントローラと1以上のサーボドライブとからなる制御システムに適用した場合における遅延ずれ補正処理手順の一例を示すフローチャートである。
【図22】 この発明の実施の形態5であるIEEE1394を用いた同期システムを、コントローラと1以上のサーボドライブとからなる制御システムに適用した場合における遅延ずれ補正処理手順の一例を示すフローチャートである。
【図23】 IEEE1394の通信レイヤの構成を示す図である。
【図24】 Isochronous通信とAsynchronous通信とが混在する場合を示す図である。
【図25】 サイクルスタートパケットを用いたサイクルマスタとサイクルスレーブとの間におけるタイマ同期処理を示すシーケンス図である。
【図26】 サイクルスタートパケットを用いたサイクルスレーブ間のタイマ同期処理を示すシーケンス図である。
【符号の説明】
1,2 判定部、3 書込部、N1 要求ノード、N2 応答ノード、NM サイクルマスタ、NS,NS1,NS2 サイクルスレーブ、TM2 第2のサイクルタイマ。

Claims (20)

  1. IEEE1394を用いて接続されたネットワーク内の各ノード間の同期をとるIEEE1394を用いた同期システムにおいて、
    前記各ノードが有する各サイクルタイマ同士の遅延ずれ量を計測するサイクルタイマ遅延計測手段と、
    前記サイクルタイマ遅延計測手段が計測した遅延ずれ量をもとに前記各サイクルタイマ同士の遅延ずれを補正するサイクルタイマ遅延補正手段と、
    を備え、
    前記サイクルタイマ遅延計測手段は、要求ノードから応答ノードに対して Read パケットを送信し、該応答ノードのサイクルタイマ値を読み取り、この読み取ったサイクルタイマ値を含む ReadResponse パケットを前記要求ノードが受信し、この受信したサイクルタイマ値と要求ノードのサイクルタイマ値との差をもとに前記遅延ずれ量を算出する、
    ことを特徴とするIEEE1394を用いた同期システム。
  2. 前記要求ノードは、
    前記 Read パケットを送信し、前記 ReadResponse パケットが返送される一連のシーケンスが、同一のアシンクロナス転送が行われている時間帯である同一の Asynchronous 転送時間帯で完了するか否かを判定する判定手段を備え、
    前記判定手段が、同一の Asynchronous 転送時間帯で完了すると判定した場合に、 Read パケットを前記応答ノードに送出することを特徴とする請求項1に記載のIEEE1394を用いた同期システム。
  3. 前記応答ノードの上位層は、
    アシンクロナス転送が行われている時間帯である Asynchronous 転送時間帯であるか否かを判定する判定手段を備え、
    前記判定手段が Asynchronous 転送時間帯であると判定した場合に、前記上位層が前記 ReadResponse パケットを送信バッファに蓄えることを特徴とする請求項1に記載のIEEE1394を用いた同期システム。
  4. 前記応答ノードのリンク層は、
    パケットの送出直前に該パケットにデータを書き込む書込手段を備え、
    前記 ReadResponse パケットがリンク層バッファから送出される直前に前記書込手段によって該 ReadResponse パケットに当該応答ノードのサイクルタイマ値を書き込むことを特徴とする請求項1に記載のIEEE1394を用いた同期システム。
  5. 各ノードは、前記遅延ずれ量を記憶するサイクルタイマ遅延記憶手段を備えたことを特徴とする請求項1〜4のいずれか一つに記載のIEEE1394を用いた同期システム。
  6. 前記サイクルタイマ遅延記憶手段は、全てのノード間の遅延ずれ量をデータテーブル形式で記憶することを特徴とする請求項5に記載のIEEE1394を用いた同期システム。
  7. 前記サイクルタイマ遅延記憶手段は、サイクルマスタとしてのノードに設けられたことを特徴とする請求項6に記載のIEEE1394を用いた同期システム。
  8. 前記ネットワークの構成の変化を判別するネットワーク構成変化判別手段をさらに備え、
    前記ネットワーク構成変化判別手段がネットワークの構成に変化があったと判別した場合、該ネットワークの再構成後、前記サイクルタイマ遅延計測手段がサイクルタイマ同士の遅延ずれ量を計測し、前記サイクルタイマ遅延補正手段が該遅延ずれ量をもとにサイクルタイマ同士の遅延ずれを補正する処理を一回行うことを特徴とする請求項1〜7のいずれか一つに記載のIEEE1394を用いた同期システム。
  9. 前記ネットワーク構成変化判別手段は、サイクルマスタとしてのノードに設けられたことを特徴とする請求項8に記載のIEEE1394を用いた同期システム。
  10. 前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段は、ノード間の同期を用いる所定のノードに設けられたことを特徴とする請求項1〜9のいずれか一つに記載のIEEE1394を用いた同期システム。
  11. 前記遅延ずれ量を伝送するサイクルタイマ遅延伝送手段をさらに備え、
    同期の基準となるサイクルタイマを有するサイクルマスタのノードは、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延伝送手段を有し、
    前記サイクルマスタのノード以外の所定のノードは、前記サイクルタイマ遅延補正手段を有し、
    前記サイクルマスタのノードが、該ノードが計測した遅延ずれ量を前記所定のノードに伝送し、あるいは該ノードが計測した遅延ずれ量をデータテーブルに記憶し、前記所定のノードが前記サイクルマスタのノードから該遅延ずれ量を取得し、その後所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに該ノードのサイクルタイマの遅延ずれを補正することを特徴とする請求項1〜9のいずれか一つに記載のIEEE1394を用いた同期システム。
  12. 前記サイクルタイマ遅延補正手段は、サイクルスタートパケットを受信した際に、遅延ずれ量をもとにサイクルタイマ値を設定することを特徴とする請求項10または11に記載のIEEE1394を用いた同期システム。
  13. 前記サイクルタイマ遅延補正手段は、上位層がサイクルタイマ値の使用時に、前記遅延ずれ量を用いて遅延ずれを補正することを特徴とする請求項10または11に記載のIEEE1394を用いた同期システム。
  14. 前記所定のノードは、第2のサイクルタイマをさらに備え、
    前記サイクルタイマ遅延補正手段は、任意のタイミングで遅延ずれ量を用いて前記遅延ずれを補正したサイクルタイマ値を前記第2のサイクルタイマに設定することを特徴とする請求項10または11に記載のIEEE1394を用いた同期システム。
  15. 前記サイクルマスタのノードは、タイムスタンプを生成するタイムスタンプ生成手段を備え、
    前記所定のノードは、タイムスタンプが示す時刻を監視するタイムスタンプ時刻監視手段を備え、
    前記サイクルタイマ遅延補正手段は、前記遅延ずれ量をもとに、前記サイクルマスタのノードから送られた前記タイムスタンプのタイムスタンプ値を更新し、
    前記タイムスタンプ時刻監視手段は、前記更新されたタイムスタンプ値が示す時刻を監視することを特徴とする請求項10または11に記載のIEEE1394を用いた同期システム。
  16. 前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延補正手段は、サイクルマスタとしてのノードに設けられたことを特徴とする請求項1〜9のいずれか一つに記載のIEEE1394を用いた同期システム。
  17. 前記遅延ずれ量を伝送するサイクルタイマ遅延伝送手段をさらに備え、
    サイクルマスタのノードは、前記サイクルタイマ遅延補正手段を有し、
    前記サイクルマスタのノード以外の所定のノードは、前記サイクルタイマ遅延計測手段および前記サイクルタイマ遅延伝送手段を有し、
    前記所定のノードが、該所定のノードで計測した遅延ずれ量を前記サイクルマスタのノードに伝送し、あるいは前記所定のノードから遅延ずれ量を取得し、その後該所定のノードに伝送された遅延ずれ量あるいは取得した遅延ずれ量をもとに前記サイクルマスタのノードのサイクルマスタの遅延ずれを補正することを特徴とする請求項1〜9のいずれか一つに記載のIEEE1394を用いた同期システム。
  18. 前記サイクルマスタのノードは、タイムスタンプを生成するタイムスタンプ生成手段を備え、
    前記所定のノードは、タイムスタンプが示す時刻を監視するタイムスタンプ時刻監視手 段を備え、
    前記サイクルタイマ遅延補正手段は、前記遅延ずれ量をもとに、前記タイムスタンプ生成手段が生成したタイムスタンプのタイムスタンプ値を更新することを特徴とする請求項16または17に記載のIEEE1394を用いた同期システム。
  19. 請求項1〜18のいずれか一つに記載したIEEE1394を用いた同期システムは、サーボドライブ装置とこれを制御するコントローラとからなる制御システムであることを特徴とするIEEE1394を用いた同期システム。
  20. 前記コントローラは、サイクルマスタであることを特徴とする請求項19に記載のIEEE1394を用いた同期システム。
JP2000360279A 2000-11-27 2000-11-27 Ieee1394を用いた同期システム Expired - Lifetime JP4097891B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000360279A JP4097891B2 (ja) 2000-11-27 2000-11-27 Ieee1394を用いた同期システム
US09/858,555 US6959017B2 (en) 2000-11-27 2001-05-17 Synchronizing system using IEEE 1394 serial bus standard
DE10134166A DE10134166B4 (de) 2000-11-27 2001-07-13 Synchronisierungssystem unter Verwendung von IEEE1394

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000360279A JP4097891B2 (ja) 2000-11-27 2000-11-27 Ieee1394を用いた同期システム

Publications (3)

Publication Number Publication Date
JP2002164903A JP2002164903A (ja) 2002-06-07
JP2002164903A5 JP2002164903A5 (ja) 2005-12-08
JP4097891B2 true JP4097891B2 (ja) 2008-06-11

Family

ID=18831905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000360279A Expired - Lifetime JP4097891B2 (ja) 2000-11-27 2000-11-27 Ieee1394を用いた同期システム

Country Status (3)

Country Link
US (1) US6959017B2 (ja)
JP (1) JP4097891B2 (ja)
DE (1) DE10134166B4 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011151530A (ja) * 2010-01-20 2011-08-04 Fuji Electric Co Ltd 通信システムの同期方法、通信システム、マスタ局

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002009796A (ja) * 2000-06-26 2002-01-11 Sony Corp データ転送システム及びデータ転送管理装置並びにデータ転送方法
DE10131307B4 (de) * 2001-06-28 2006-06-14 Infineon Technologies Ag Verfahren und Bussystem zum Synchronisieren eines Datenaustausches zwischen einer Datenquelle und einer Steuereinrichtung
US7225286B2 (en) * 2002-06-24 2007-05-29 Koninklijke Philips Electronics N.V. Method to measure transmission delay between 1394 bridges
JP3900522B2 (ja) * 2002-08-29 2007-04-04 ヤマハ株式会社 コマンド同期確立システムおよび方法
DE10241429B4 (de) * 2002-09-06 2007-10-25 Siemens Ag Verfahren zur Synchronisation von Netzwerkknoten eines Teilnetzwerks
WO2004093476A1 (ja) * 2003-04-16 2004-10-28 Nec Corporation 移動通信システム、基地局、移動局、及びそれらに用いる無線通信方法
DE10321652A1 (de) * 2003-05-13 2004-12-02 Tentaclion Gmbh Modulares Datenerfassungs-und Übertragungssystem sowie Übertragungseinrichtung dafür
DE10322950A1 (de) * 2003-05-22 2004-12-16 Deutsche Thomson-Brandt Gmbh Verfahren zur Einstellung konsistenter Werte für einen Parameter in einem Netzwerk verteilter Stationen sowie Netzwerkteilnehmerstation für die Durchführung des Verfahrens
JP4302483B2 (ja) * 2003-10-28 2009-07-29 パナソニック株式会社 データ伝送方法およびデータ伝送装置
US20060168379A1 (en) * 2004-12-13 2006-07-27 Tim Frodsham Method, system, and apparatus for link latency management
DE102005024759A1 (de) * 2005-05-31 2006-12-07 Bosch Rexroth Ag Verfahren zur Laufzeitkorrektur in einer Kommunikationsstruktur
US7536489B2 (en) * 2005-08-30 2009-05-19 Ricoh Company Limited Information processing system for determining payload size based on packet-to-payload size ratio
JP4650248B2 (ja) * 2005-12-09 2011-03-16 株式会社デンソー 車両用ネットワークシステム及びネットワークノード
US8539098B2 (en) * 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
EP2499741B1 (en) * 2009-11-13 2016-08-31 ST-Ericsson SA Time-to-digital converter with successive measurements
JP5576747B2 (ja) * 2010-09-06 2014-08-20 株式会社日立製作所 通信システム及び時刻同期方法
JP5649505B2 (ja) * 2011-04-19 2015-01-07 株式会社東芝 同期制御システム
CN102510345B (zh) * 2011-11-03 2014-07-16 大唐联仪科技有限公司 一种基于一致性测试的时延补偿方法和设备
US9244753B2 (en) * 2013-03-15 2016-01-26 Siemens Schweiz Ag Redundant bus fault detection
JP6488830B2 (ja) * 2015-03-31 2019-03-27 オムロン株式会社 制御装置
US10637597B2 (en) 2017-04-07 2020-04-28 Luminous Cyber Corporation Time determination of distributed events without distribution of reference time, phase, or frequency
DE102017012250B4 (de) * 2017-05-24 2020-10-15 Wago Verwaltungsgesellschaft Mbh Übertragen von Daten auf einem Lokalbus
JP6969455B2 (ja) * 2018-03-13 2021-11-24 オムロン株式会社 制御装置、制御システム、制御方法、および、制御プログラム
US10698857B2 (en) * 2018-09-28 2020-06-30 Bristol, Inc Systems, methods, and apparatus to synchronize data bus access
CN109189049B (zh) * 2018-10-15 2020-05-26 浙江工业大学 一种适用于网络化控制系统的主动时延补偿方法
JP6627958B1 (ja) * 2018-12-26 2020-01-08 富士電機株式会社 通信システム
EP3937432A1 (de) * 2020-07-06 2022-01-12 Siemens Aktiengesellschaft Verfahren zur datenkommunikation
CN112600641A (zh) * 2020-12-31 2021-04-02 深圳市英特瑞半导体科技有限公司 一种网络设备时间同步方法、装置、设备及存储介质
JP2023177961A (ja) * 2022-06-03 2023-12-14 日本電気株式会社 情報処理装置、情報処理方法、プログラム
US20250211354A1 (en) * 2023-12-20 2025-06-26 Clockwork Systems, Inc. Clock synchronization across global and local references

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630173A (en) * 1992-12-21 1997-05-13 Apple Computer, Inc. Methods and apparatus for bus access arbitration of nodes organized into acyclic directed graph by cyclic token passing and alternatively propagating request to root node and grant signal to the child node
US5394556A (en) * 1992-12-21 1995-02-28 Apple Computer, Inc. Method and apparatus for unique address assignment, node self-identification and topology mapping for a directed acyclic graph
EP0804033A3 (en) * 1996-04-26 2003-12-10 Texas Instruments Incorporated Improvements in or relating to electronic devices
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
EP0895378B1 (en) * 1996-05-07 2006-03-08 Yamaha Corporation Method and system for transmitting audio data with time stamp
KR100238287B1 (ko) * 1997-06-03 2000-01-15 윤종용 프레임 동기 장치 및 그 방법
JP3837857B2 (ja) * 1997-08-14 2006-10-25 ソニー株式会社 信号処理回路
US6041286A (en) * 1997-10-21 2000-03-21 Sony Corporation Apparatus for and method of accurately obtaining the cycle time of completion of transmission of video frames within an isochronous stream of data transmitted over an IEEE 1394 serial bus network
US6032261A (en) * 1997-12-30 2000-02-29 Philips Electronics North America Corp. Bus bridge with distribution of a common cycle clock to all bridge portals to provide synchronization of local buses, and method of operation thereof
US6128318A (en) * 1998-01-23 2000-10-03 Philips Electronics North America Corporation Method for synchronizing a cycle master node to a cycle slave node using synchronization information from an external network or sub-network which is supplied to the cycle slave node
US6418150B1 (en) * 1998-02-20 2002-07-09 Apple Computer, Inc. Method and apparatus for calibrating an IEEE-1394 cycle master
JP3228708B2 (ja) * 1998-04-03 2001-11-12 パイオニア株式会社 伝送システムにおける受信インターフェース装置
DE19818325A1 (de) 1998-04-23 1999-10-28 Siemens Ag Verfahren zum Betreiben eines Funk-Kommunikationssystems
JPH11317748A (ja) * 1998-05-07 1999-11-16 Pioneer Electron Corp 伝送システムにおける送信インターフェース装置
US6212171B1 (en) * 1998-06-22 2001-04-03 Intel Corporation Method and apparatus for gap count determination
JP2000032030A (ja) * 1998-07-14 2000-01-28 Sony Corp バスネットワークの同期通信設定方法およびそれを利用するバスネットワーク、並びに情報提供媒体
JP3815063B2 (ja) * 1998-07-14 2006-08-30 ソニー株式会社 バスネットワークの同期通信設定の解除方法およびそれを利用するバスネットワーク、並びに情報提供媒体
JP4035235B2 (ja) * 1998-08-24 2008-01-16 キヤノン株式会社 電子機器
US6505255B1 (en) * 1999-04-29 2003-01-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method for formatting and routing data between an external network and an internal network
JP2000216800A (ja) * 1999-01-27 2000-08-04 Sony Corp デ―タ中継装置および方法、並びに提供媒体
US6389547B1 (en) * 1999-03-19 2002-05-14 Sony Corporation Method and apparatus to synchronize a bus bridge to a master clock
US6751228B1 (en) * 1999-03-23 2004-06-15 Yamaha Corporation Packet handler of audio data by isochronous mode
JP3353824B2 (ja) 1999-04-22 2002-12-03 日本電気株式会社 ネットワーク同期システム及びネットワーク同期方法
JP3424620B2 (ja) * 1999-09-24 2003-07-07 日本電気株式会社 アイソクロナスパケット転送方法,該転送用制御プログラムの記録媒体,ブリッジ及びパケット転送制御lsi
JP3780776B2 (ja) * 1999-10-15 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP2001119410A (ja) * 1999-10-21 2001-04-27 Sony Corp 自己識別フェーズにおける処理方法
KR100457508B1 (ko) * 1999-10-29 2004-11-17 삼성전자주식회사 타임 스탬프 옵셋 설정 장치 및 그 방법
US6633989B1 (en) * 1999-11-30 2003-10-14 Lsi Logic Corporation Method and mechanism for synchronizing a slave's timer to a master's timer
US6763402B2 (en) * 2000-05-25 2004-07-13 Bnl Technologies, Inc. Data storage subsystem
JP2002009796A (ja) * 2000-06-26 2002-01-11 Sony Corp データ転送システム及びデータ転送管理装置並びにデータ転送方法
EP1198085B1 (en) * 2000-10-10 2011-06-08 Sony Deutschland GmbH Cycle synchronization between interconnected sub-networks
US7346714B2 (en) * 2002-09-05 2008-03-18 Canon Kabushiki Kaisha Notification of completion of communication with a plurality of data storage areas

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011151530A (ja) * 2010-01-20 2011-08-04 Fuji Electric Co Ltd 通信システムの同期方法、通信システム、マスタ局

Also Published As

Publication number Publication date
US20020064185A1 (en) 2002-05-30
JP2002164903A (ja) 2002-06-07
DE10134166B4 (de) 2009-07-16
DE10134166A1 (de) 2002-06-13
US6959017B2 (en) 2005-10-25

Similar Documents

Publication Publication Date Title
JP4097891B2 (ja) Ieee1394を用いた同期システム
US8259758B2 (en) Network slave node and time synchronization method in network applying the same
US7260653B2 (en) Method and device for the synchronization between two networks
JP3698074B2 (ja) ネットワーク同期方法、lsi、バスブリッジ、ネットワーク機器、およびプログラム
CN101578806A (zh) 通信装置、同步通信系统及同步通信方法
JP2005057800A5 (ja)
CN104272664A (zh) 用于车辆的网关、节点和方法
JPH0373636A (ja) データ同期伝送方式
CN102421187A (zh) 一种无线传感器网络的高精度时钟同步方法
US6754184B2 (en) Information processing apparatus and method, and distribution medium
JP2020184710A (ja) 通信制御装置および通信制御方法
CN115580369B (zh) 一种EtherCAT与TSN融合组网时间同步方法
US8392742B2 (en) Cyclemaster synchronization in a distributed bridge
CN114258126B (zh) 数据处理方法及其装置
KR102241999B1 (ko) 차량용 이더넷 적용을 위한 게이트웨이와 이를 이용한 센서 및 노드의 동기화를 위한 장치 및 방법
WO2026065832A1 (zh) 时钟同步方法、终端站、管理站、存储介质和程序产品
US20240372694A1 (en) Vehicle-mounted device, vehicle-mounted communication system, and time synchronization method
KR100609493B1 (ko) 복수의 센서 데이터를 하나의 캔 메시지로 전송하는 방법
WO2024018787A1 (ja) 車載装置、時刻同期方法および時刻同期プログラム
CN109391250A (zh) 一种模块化多电平脉宽调制的同步系统和同步方法
KR100597436B1 (ko) 무선 1394 시스템의 사이클 타임 동기화 장치 및 그 방법
US20250317375A1 (en) Mitigating asymmetric latency of a communication link
JP2021136520A (ja) Tsnネットワーク接続方式、tsnネットワーク接続方法
US20260052085A1 (en) Use of propagation delay from topology discovery to update a clock
CN118199778A (zh) 工业网络时延误差补偿方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051021

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051021

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080312

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5