JP6192995B2 - 通信装置、通信システム、通信方法およびコンピュータプログラム - Google Patents

通信装置、通信システム、通信方法およびコンピュータプログラム Download PDF

Info

Publication number
JP6192995B2
JP6192995B2 JP2013118230A JP2013118230A JP6192995B2 JP 6192995 B2 JP6192995 B2 JP 6192995B2 JP 2013118230 A JP2013118230 A JP 2013118230A JP 2013118230 A JP2013118230 A JP 2013118230A JP 6192995 B2 JP6192995 B2 JP 6192995B2
Authority
JP
Japan
Prior art keywords
time
event
master
slave
master device
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
JP2013118230A
Other languages
English (en)
Other versions
JP2014236443A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013118230A priority Critical patent/JP6192995B2/ja
Priority to EP20140170581 priority patent/EP2811672A1/en
Priority to US14/293,207 priority patent/US9374214B2/en
Publication of JP2014236443A publication Critical patent/JP2014236443A/ja
Application granted granted Critical
Publication of JP6192995B2 publication Critical patent/JP6192995B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • 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/0647Synchronisation among TDM nodes
    • H04J3/065Synchronisation among TDM nodes using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Description

本発明の実施形態とは、通信装置、通信システムおよび通信方法に関する。
従来の時刻同期システムには、スレーブとマスタの時刻の差を高確度に推定し、時刻の差がなくなるように、スレーブの時刻を調整するものがあった。しかし、このシステムは、スレーブとマスタのそれぞれの定期的なイベントの発生タイミングを同期する目的に対して適用した場合、補正する時刻の差が、イベントの間隔より大きいと、同期完了までに過度な時間を要することがある。
また、マスタにおけるインベント発生タイミングから、マスタからの同期フレーム受信までの時間を利用し、スレーブのイベント発生タイミングを、基準となるマスタに合わせるものがあった。しかし、スレーブとマスタのイベント発生タイミングを高確度に合わせることはできなかった。
このように、従来では、スレーブとマスタのイベント発生タイミングを短時間かつ高確度に合わせることはできないという問題があった。
特開2009‐182659号公報 特表2011‐525308号公報
本発明の実施形態は、マスタ装置に対しイベント発生タイミングを高確度に合わせることを目的とする。
本発明の一態様としての通信装置は、一定時間間隔でイベントを発生させるマスタ装置と、ネットワークを介して通信する通信装置であって、計時手段と、イベント発生部と、記憶部と、受信部と、イベント間隔補正部とを備える。
前記計時手段は時刻を計時する。
前記イベント発生部は、前記計時手段に基づき、イベントの発生時間間隔を指定したイベント間隔情報に従って、イベントを発生させる。
前記記憶部は、前記イベント発生部でイベントが発生した時刻を表す第1タイムスタンプを記憶する。
前記受信部は、前記マスタ装置から、前記マスタ装置で発生したイベントの時刻を表した第2タイムスタンプを記載したフレームを受信する。
前記イベント間隔補正部は、前記第1タイムスタンプと、前記第2タイムスタンプと、あらかじめ取得した前記計時手段と前記マスタ装置との時刻差に基づき、前記イベント発生部のイベントの発生タイミングを前記マスタ装置に近づけるように、前記イベント間隔情報を補正する。
第1の実施形態に係わるネットワーク構成図。 第1の実施形態に係るスレーブの構成を示すブロック図。 第1の実施形態に係るマスタの構成を示すブロック図。 第1の実施形態に係るスレーブの同期フレーム送信処理のフローチャート。 第1の実施形態に係るスレーブの同期フレーム受信処理のフローチャート。 第1の実施形態に係るスレーブとマスタのイベント生成のフローチャート。 第1の実施形態に係るマスタの同期フレーム受信処理のフローチャート。 第1の実施形態に係る同期フレームのシーケンス。 第1の実施形態に係る時刻差とイベントタイミング差の関係を示す図。 第1の実施形態に係る近接するスレーブとマスタのイベントの関係を示す図。 第1の実施形態に係る近接するスレーブとマスタのイベントタイミング差の推定処理のフローチャート。 第2の実施形態に係るスレーブの構成を示すブロック図。 第2の実施形態に係るスレーブの同期フレーム受信処理のフローチャート。 第2の実施形態に係る同期フレームのシーケンス図。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に係わる通信システムの全体構成の一例を示す。
この通信システムは、複数のスレーブ装置(以下、スレーブと呼ぶ)11と、マスタ装置(以下、マスタと呼ぶ)13とを具備する同期システムである。スレーブ11およびマスタ13は、通信ネットワーク12を介して接続され、相互間でフレームを送受信可能な通信装置である。
スレーブ11およびマスタ13では、それぞれイベントが発生し、相互にイベントに係る情報を通知し合う。マスタ13は、一定の時間間隔でイベントを発生させる。スレーブ11は、イベントの発生時間間隔を指定したイベント間隔情報に従って、イベントを発生させる。スレーブ11は、マスタ13とイベントの発生タイミングを高確度に同期させるように、マスタ13と同期処理を行って、イベント間隔情報を適宜補正する機能を有する。
本同期システムは、例えば保護リレーシステムに適用される同期システムである。この場合、イベントは、電気量(電流・電圧値)を計測し、保護リレー(スレーブ、マスタ)同士で通知し合うことを指す。ただし、本実施形態は、保護リレーシステムに限定されるものではない。本実施形態は、発生させるイベントのタイミングが複数の装置で同期している必要があるシステム全般に適用可能である。
また、スレーブの台数は1台の場合から複数台の場合がある。マスタの台数も1台とは限らず、バックアップのために2台以上接続されている場合もある。
通信ネットワーク12は、無線ネットワークまたは有線ネットワークであることを問わない。また、通信ネットワーク12で使用する物理層やリンク層のプロトコルは、特定のものに限定されない。
図2は、第1の実施形態に関わるスレーブのブロック図である。
このスレーブは、ネットワーク処理部101と、プロトコル処理部102と、時刻差計算部103と、タイミング差計算部104と、イベント間隔補正部105と、タイマー106、イベント生成部107、イベント間隔記憶部108と、タイムスタンプ記憶部109とを備えている。
ネットワーク処理部101は、通信ネットワークに対してフレームの送受信を行うインタフェースである。フレームには、イベントの内容(たとえば電気量の値)を通知するイベント用フレームや、同期フレームがある。その他の種類のフレームがあってもよい。
タイマー106は、水晶発振器を有し、水晶発振器の出力信号の周期をカウントすることで、時刻を計時する計時手段を含む。1カウント毎に、時刻が1進むとする。
ネットワーク処理部101は、同期フレームの送信時の時刻を表すタイムスタンプ、同期フレームの受信時の時刻を表すタイムスタンプを記録する機能を備える。タイムスタンプは、その時の計時手段が示す時刻を表す。
プロトコル処理部102は、同期システムを構成する装置が互いに送受信する共通の情報の形式、および送受信の手順を処理する。また、プロトコル処理部102は、マスタから受信した同期フレームに記載されているタイムスタンプ(後述)を、時刻差計算部103に渡す機能を持つ。
イベント間隔記憶部108は、イベントの発生時間間隔を表すイベント間隔情報を記憶する。デフォルト値として、たとえばマスタと同じイベント間隔の値が記憶されている。
タイマー106は、あらかじめ設定された時間が経過すると、イベントの発生タイミングを通知するシグナルを発生させ、シグナルをイベント生成部107に伝える。シグナルを発生すると、そのときのイベント間隔記憶部108に記憶されているイベント間隔情報の値が次のイベント発生までの時間として設定され、その設定された時間が経過すると、シグナルを発生させる。タイマー106への設定は、イベント生成部107がタイマー106からシグナルを受けた時点で、イベント間隔記憶部108の値を読み込んで次のイベント発生までの時間として設定してもよいし、タイマー106自身がシグナルを出力後に、イベント間隔記憶部108から値を読み込んで自律的に設定を行ってもよい。なお、マスタとスレーブは、それぞれの水晶発振器間に誤差があるため、それぞれの時刻の進みの速度は異なる。
イベント生成部107は、タイマー106からシグナルを受信すると、イベントを発生させる。保護リレーシステムの場合、図示しない測定手段により測定した電気量の値をイベント用フレームに記載し、ネットワーク処理部101に当該イベント用フレームを渡す。
また、タイマー106は、同期フレームの送信タイミングを通知するシグナルを発生させ、当該シグナルをプロトコル処理部102に送る。タイマー106は、たとえばプロトコル処理部102から、シグナルを発生させるまでの時間を設定され、設定からその時間が経過したら、プロトコル処理部102にシグナルを出力する。
同期フレームの送信タイミングは、任意の方法で定めることができる。たとえばイベント発生タイミングのシグナルを発生させた後、一定時間後に同期フレームの送信タイミングのシグナルを発生させるようにしてもよい。または、マスタからの送信指示を受けることにより、同期フレームの送信タイミングのシグナルを発生させるようにしてもよい。または、あらかじめ定めた一定の時間間隔で、同期フレームの送信タイミングのシグナルを発生させるようにしてもよい。
プロトコル処理部102は、タイマー106からシグナルを受けると、同期フレームを生成して、ネットワーク処理部101を介してマスタに同期フレームを送信する。同期フレームを送信した時刻(カウント値)を表すタイムスタンプ(以下、スレーブ送信タイムスタンプ)を、当該同期フレームに追加してもよい。また、スレーブにおいてイベントが発生した時刻を表すタイムスタンプ(以下、スレーブイベント発生タイムスタンプ)を当該同期フレームに含めてもよい。この場合のイベント発生時刻は、たとえば同期フレームを送信する前の最新のイベントが発生した時刻でもよい。
タイムスタンプ記憶部109は、スレーブイベント発生タイムスタンプ、スレーブ送信タイムスタンプ、マスタから同期フレームを受信した時刻を表すタイムスタンプ(スレーブ受信タイムスタンプ)を記憶する。また、マスタがスレーブから同期フレームを受信した時刻を表すタイムスタンプ(マスタ受信タイムスタンプ)、マスタがスレーブに同期フレームを送信した時刻を表すタイムスタンプ(マスタ送信タイムスタンプ)を記憶してもよく、これらのタイムスタンプの取得方法は後述する。
スレーブイベント発生タイムスタンプは、イベント生成部107によって電気量の値が記載されたイベント用フレームをネットワーク処理部101が送信する時刻を表すものとする。ただし、別の方法として、イベント生成部107でイベントのシグナルを受けたタイミングの時刻、または電気量の値をイベント用フレームに記載するタイミングの時刻でもよい。その場合、イベント生成部107が、当該タイムスタンプを生成する。
また、スレーブ送信タイムスタンプ、およびスレーブ受信タイムスタンプは、ネットワーク処理部101が同期フレームを送信する直前の時刻、および同期フレームを受信した直後の時刻を表し、ネットワーク処理部101がこれらのタイムスタンプを取得するものとする。または、スレーブ送信タイムスタンプ、およびスレーブ受信タイムスタンプは、プロトコル処理部102で、送信フレーム(同期フレーム)および受信フレーム(同期フレーム)を処理する時刻でもよく、この場合、プロトコル処理部102が当該タイムスタンプを取得する。
後述するように、マスタから受信した同期フレームには、マスタが本スレーブからの同期フレームを受信した時刻を表すタイムスタンプ(マスタ受信タイムスタンプ)、マスタでイベントが発生した時刻を表すタイムスタンプ(マスタイベント発生タイムスタンプ)、マスタから同期フレームを本スレーブに送信する時刻を表すタイムスタンプ(マスタ送信タイムスタンプ)を含む。マスタがスレーブから受信した同期フレームに、スレーブ送信タイムスタンプや、スレーブイベント発生タイムスタンプが含まれる場合は、当該タイムスタンプを、マスタがスレーブに送信する同期フレームに転記する。
時刻差計算部103は、プロトコル処理部102から渡されるタイムスタンプ(マスタ受信タイムスタンプ、マスタ送信タイムスタンプ)と、タイムスタンプ記憶部のタイムスタンプ(スレーブ送信タイムスタンプ、スレーブ受信タイムスタンプ)を利用して、スレーブとマスタの時刻差を計算する。時刻差計算部103は、スレーブとマスタの時刻差を、タイミング差計算部104に渡す。なお、スレーブ送信タイムスタンプは、プロトコル処理部102から受け取る構成もあり得る。スレーブ受信タイムスタンプも同様、プロトコル処理部102から受け取る構成もあり得る(詳細は後述)。
タイミング差計算部104は、時刻差計算部103から受けたスレーブとマスタのタイマーの時刻差と、マスタイベント発生タイムスタンプ(マスタからの同期フレームに記載されている)と、スレーブイベント発生タイムスタンプを利用して、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントの発生のタイミング差)を計算する。
スレーブイベント発生タイムスタンプおよび、スレーブ送信タイムスタンプ、およびスレーブ受信タイムスタンプは、スレーブのタイムスタンプ記憶部109に記憶したものを利用すればよい。
ただし、スレーブ送信タイムスタンプ、またはスレーブイベント発生タイムスタンプについて、スレーブがマスタに対して送信する同期フレームに当該タイムスタンプを記載した場合は、マスタから受信した同期フレームから当該タイムスタンプを読み出してもよい。これは、マスタがスレーブに送信する同期フレームに当該タイムスタンプを転記するためである。また、スレーブ受信タイムスタンプは、マスタから同期フレームを受信した時に、当該同期フレームの所定フィールドに追加されてプロトコル処理部102から渡される構成も可能であり、この場合も、タイムスタンプ記憶部からの読み出しは不要である。
イベント間隔補正部105は、タイミング差計算部106から受けたスレーブとマスタのイベントタイミング差を0に、あるいは小さくするように、イベント間隔情報を補正する。補正後のイベント間隔情報で、イベント間隔記憶部108の値を更新する。
タイマー106のタイムアウトによりタイマー106からイベントシグナルが出力されると、イベント間隔記憶部108内の更新された値の時間がタイマー106に新たに設定される。この新たに設定された時間が経過するとタイマー106からイベントシグナルが出力され、イベント発生部107でイベントが発生する。よって、マスタと高確度でイベント発生を同期させることができる。更新された時間がタイマー106に設定された時点で、イベント間隔記憶部内の値をデフォルトのイベント間隔値(マスタと同じイベント間隔値)に戻してもよい。これにより、同期処理の頻度が少ない場合でも、高確度でマスタと同期し続けることが可能となる。また、イベント間隔情報を補正する際は、一度に補正する他、複数回のイベントに分けて段階的に細かく補正することも可能である。すなわち、算出したイベント間隔の値にイベント間隔情報の値がイベント発生ごとに徐々に近づくように、イベント間隔情報をイベント発生ごとに補正することも可能である。
図3は第1の実施形態に関わるマスタのブロック図である。
このマスタは、ネットワーク処理部201と、プロトコル処理部202と、タイマー203と、イベント生成部204と、タイムスタンプ記憶部205とを備えている。
ネットワーク処理部201は、通信ネットワーク12に対してフレームの送受信を行うインタフェースである。フレームの種類には、同期フレームおよび、イベント用フレームがある。その他の種類のフレームがあってもよい。
プロトコル処理部202は、同期システムを構成する装置が互いに送受信する共通の情報の形式、および送受信の手順を処理する。
タイマー203は、一定時間が経過するごとに、イベントの発生タイミングを通知するシグナルを発生させ、シグナルをイベント生成部204に伝える。なお、タイマー203は、水晶発振器と、水晶発振器の出力信号の周期をカウントすることにより時刻を計時する計時手段を含んでいる。本実施形態では、カウント値が時刻を表すとして説明を行う。
イベント生成部204は、タイマー203からシグナルを受信して、イベントを発生させる。保護リレーシステムの場合、図示しない測定手段により測定された電気量の値をフレーム(イベント用フレーム)に記載し、ネットワーク処理部201にフレームを渡す。ネットワーク処理部201は、当該フレームを、予め指定された他の保護リレー装置に送信する。
タイムスタンプ記憶部205は、スレーブからの同期フレームを受信した時刻を表すタイムスタンプ(マスタ受信タイムスタンプ)、同期フレームをスレーブに送信した時刻を表すタイムスタンプ(マスタ送信タイムスタンプ)、および、イベント生成部204でイベントが発生した時刻を表すタイムスタンプ(マスタイベント発生タイムスタンプ)を記憶する。
マスタイベント発生タイムスタンプは、イベント生成部204によって電気量の値が記載されたイベント用フレームをネットワーク処理部201が送信する直前の時刻を表す。この場合、ネットワーク処理部201が当該タイムスタンプを取得する。別の方法として、マスタイベント発生タイムスタンプは、イベント生成部204でイベントのシグナルを受けたタイミング、または電気量の値をイベント用フレームに記載するタイミングの時刻でもよく、この場合、イベント生成部204が当該タイムスタンプを取得する。
また、マスタ受信タイムスタンプ、マスタ送信タイムスタンプは、ネットワーク処理部204による同期フレームを受信直後または送信直前の時刻を表すとし、この場合、ネットワーク処理部204が当該タイムスタンプを取得する。または、マスタ受信タイムスタンプ、マスタ送信タイムスタンプは、プロトコル処理部202で、受信フレーム(同期フレーム)または送信フレーム(同期フレーム)を処理した時刻もよく、この場合、プロトコル処理部202が、当該タイムスタンプを取得する。
プロトコル処理部202は、スレーブから同期フレームを受信すると、当該スレーブへ返信する同期フレームを生成する。スレーブへ送信する同期フレームには、マスタイベント発生タイムスタンプ(たとえば最新のイベント発生時刻のタイムスタンプ)、マスタ受信タイムスタンプ、マスタ送信タイムスタンプを記載する。スレーブから受信した同期フレームに、スレーブ送信タイムスタンプ、またはスレーブイベント発生タイムスタンプ等が記述されているとき、これらのタイムスタンプを、スレーブに送信する同期フレームに転記する。プロトコル処理部202は、このように生成した同期フレームをスレーブに送信する。
図8を用いて、スレーブとマスタの間での同期フレームのやりとりのシーケンスを説明する。
t1は、スレーブ送信タイムスタンプ、t2はマスタ受信タイムスタンプ、t3はマスタ送信タイムスタンプ、t4はスレーブ受信タイムスタンプを表す。これらのタイムスタンプを、同期フレームを介して、スレーブとマスタがやりとりする。
タイムスタンプt1は、前述したように、スレーブが送信する同期フレームに記載されて送信されて、マスタの送信する同期フレームに転記され、スレーブに再度届けられてもよい。あるいは、マスタへ送信する同期フレームに記載することなく、スレーブのタイムスタンプ記憶部109に記憶させてもよい。
タイムスタンプt2とt3については、t2とt3がマスタの送信する同期フレームに記載される。別の方法として、t3-t2が、同期フレームに記載される方法もある。なお、「-」は減算を表す。
図示のシーケンスは、スレーブが先に同期フレームを送信し、その同期フレームにマスタが応答して、同期フレームを送信するというシーケンスである。ただし、本実施形態はこれに限定されず、別のシーケンスも可能である。例えば、マスタがスレーブに同期フレームの送信を促すフレームを送り、その後、図8に示すシーケンスが開始される方法でもよい。または、スレーブとマスタがそれぞれ独立したタイミングに従って、同期フレームを送り合う方法もある。
同期フレームのシーケンスは1回のみに限らず、定期的、もしくは不定期に複数回繰り替えされる。
以下、図2に示したスレーブの動作について詳細に説明する。
図4は、スレーブによる同期フレームの送信時の動作を示すフローチャートである。
まず、プロトコル処理部102は、同期フレームの送信周期が到来したことを知らせるシグナルを、タイマー106から受信するまで待機する(ステップS101)。
次に、プロトコル処理部102は、タイマー106からシグナルを受信すると、マスタ宛ての同期フレームを生成して、ネットワーク処理部101に同期フレームを渡す(ステップS102)。このとき、プロトコル処理部102は、次の同期フレーム生成のための時間をタイマー106に設定してもよい。
次に、ネットワーク処理部101は、同期フレームを送信する時刻を表すタイムスタンプ(スレーブ送信タイムスタンプ)t1を、タイムスタンプ記憶部109に記録する(ステップS103)。または、タイムスタンプ記憶部109に記録するのではなく、送信する同期フレームに、当該タイムスタンプt1を記載してもよい。タイムスタンプの生成は、プロトコル処理部102が、同期フレームの生成時に行ってもよい。スレーブイベント発生タイムスタンプを同期フレームに記載してもよい。
次に、ネットワーク処理部101は、同期フレームをマスタに送信する(ステップS104)。
図5は、スレーブによる同期フレームの受信時の動作を示すフローチャートである。
まず、ネットワーク処理部101は、フレームを受信し、受信したフレームをプロトコル処理部102に渡す。このとき、フレームを受信した時刻を表すタイムスタンプ(スレーブ受信タイムスタンプ)t4を、タイムスタンプ記憶部109に記録する(ステップS201)。当該タイムスタンプt4を、タイムスタンプ記憶部109に記録するのではなく、受信したフレームの所定フィールドに追記する構成も可能である。
次に、プロトコル処理部102は、受信したフレームが同期フレームであるか否かを判断する(ステップS202)。同期フレームでなければ、そのフレームの種類に応じた処理を行い、再度、フレーム受信の待機に戻る。この場合、タイムスタンプ記憶部109に記録したタイムスタンプt4を消去してもよい。フレームにタイムスタンプt4を追記した場合は、当該フレームの処理では、タイムスタンプt4は無視すればよい。
マスタから受信したフレームが同期フレームであれば、同期フレームに記載されている複数のタイムスタンプを読み出して、時刻差計算部103に渡す。また、これらのタイムスタンプを、タイムスタンプ記憶部109に記憶してもよい。
マスタから受信した同期フレームに記載されているタイムスタンプは、マスタ受信タイムスタンプt2と、マスタ送信タイムスタンプt3と、マスタイベント発生タイムスタンプを含む。タイムスタンプt2,t3の代わりに、タイムスタンプの差t3-t2が記載されている場合は、タイムスタンプt2,t3の代わりに、t3-t2の値を、時刻差計算部103に渡す。t3-t2の値をタイムスタンプ記憶部109に記憶してもよい。また、マスタから受信した同期フレームに、スレーブ送信タイムスタンプt1やスレーブイベント発生タイムスタンプが含まれる場合は、当該タイムスタンプも時刻差計算部103に渡す。
次に、時刻差計算部103は、タイムスタンプt1,t2,t3,t4を利用して、スレーブとマスタの時刻差を計算する(ステップS203)。タイムスタンプt1,t4は、プロトコル処理部102から受けない場合は、タイムスタンプ記憶部109から読み出すことにより取得する。スレーブとマスタの時刻差の計算方法は後述する。
時刻差計算部103は、計算した時刻差と、プロトコル処理部102から渡されたマスタイベント発生タイムスタンプを、タイミング差計算部104に渡す。
なお、時刻差計算部103は、タイムスタンプt3-t2の結果を渡される場合、タイムスタンプt1,t4の代わりに、t4-t1の結果をプロトコル処理部102から受け取って、これを利用して時刻差を計算することも可能である。プロトコル処理部102ではなく、タイムスタンプ記憶部109にアクセス可能な任意の処理部から、t4-t1の結果を受け取る形態も可能である。
ここで、ステップS203における、スレーブとマスタの時刻差の計算方法について詳細に説明する。
まず、マスタおよびスレーブ間の通信遅延を計算し、その通信遅延とタイムスタンプt3を用いて、マスタの現在時刻(スレーブの時刻がt4のときのマスタの時刻)を計算する。さらに、スレーブの現在時刻(タイムスタンプt4)から、計算したマスタの現在時刻を差し引いた値を、スレーブとマスタの時刻差とする。例えば、以下のような計算を行う。
Figure 0006192995
上述した通信遅延の計算例は、差(t2-t1)と差(t4-t3)を足すことで、往復時間を求め、それを半分にすることで、片道の通信遅延とした例である。タイムスタンプt1,t2,t3,t4の意味は、図8を用いて前述した通りである。t1,t2,t3,t4を利用した方法であれば、計算方法は問わない。
さらに正確性の高い通信遅延、およびスレーブとマスタの時刻差を計算する方法を示す。例えば、過去N回の同期フレームのやりとりのシーケンスに基づき、以下のように計算できる。
Figure 0006192995
min(t2j-t1j)(jは1〜Nのいずれか)は、過去N回スレーブからマスタへ送信した同期フレームのt2-t1を比較し、最も値の小さいものである。min(t4i-t3i)(iは1〜Nのいずれか)は、過去N回のマスタからスレーブへ送信した同期フレームのt4-t3を比較し、最も値の小さいものである。
それぞれ最小の値を選択することで、スレーブからマスタ、マスタからスレーブの両方向の同期フレームのそれぞれの中で、最も通信遅延の小さいものを選択することになる。
両方向とも通信遅延が低いことは、すなわち両方向の通信遅延が同じまたは非常に近い可能性が高いということである。
できるだけ等しい通信遅延を持つ同期フレームの往復遅延の半分を求めることで、計算した片道の通信遅延を、マスタおよびスレーブ間の真実の通信遅延に近づけることができる。
そして、スレーブとマスタの時刻差は、t4-t3が最小値を与えるときのt3argmin(t4i-t3i)と、t4-t3が最小値を与えるときのt4argmin(t4i-t3i)用いて、上記のように計算できる。
なお、通信遅延の計算結果の正確性の許容度によっては、過去N回の最も小さい値ではなく、例えば、2番目に小さい値まで選択可能とするなど、許容される範囲で選択する余地を与えてもよい。
次に、図5のステップS204において、タイミング差計算部104は、時刻差計算部103から渡されたスレーブとマスタの時刻差と、マスタイベント発生タイムスタンプと、タイムスタンプ記憶部109に記憶されているスレーブイベント発生タイムスタンプと、を用いて、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントの発生のタイミング差)を計算する。なお、スレーブイベント発生タイムスタンプはプロトコル処理部102から時刻差計算部103を介して受け取る構成も可能である。タイミング差計算部104は、計算したスレーブとマスタのイベントタイミング差を、イベント間隔補正部105へ渡す。
以下、スレーブとマスタのイベントタイミング差の計算方法を説明する。図9は、スレーブとマスタの時刻差と、スレーブとマスタのイベントタイミング差の違いを説明する図である。
tはマスタ基準時での任意の時刻を表す。st(t)は、マスタ基準時での時刻tのときのスレーブ基準時での時刻を表す。×はイベント発生を表す。
temは、マスタ基準時でのマスタのイベント発生時刻を表す。
tesは、マスタ基準時でのスレーブのイベント発生時刻を表す。
st(tes)は、スレーブ基準時でのスレーブのイベント発生時刻を表す。
この時、マスタイベント発生タイムスタンプはtem、スレーブイベント発生タイムスタンプはst(tes)に該当する。また、マスタ基準時での時刻がtesの時のスレーブとマスタの時刻差は、tes-st(tes)となる。この時刻差が、時刻差計算部103から受け取る値に該当する。
次に、マスタ基準時に基づく、スレーブとマスタのイベントのタイミング差はtes-temである。ただし、tesは、マスタ基準時でのスレーブのイベント発生時の時刻であるため、実測できない値である。そこで、前述したスレーブとマスタの時刻差(=tes-st(tes))の値を用いて、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントのタイミング差)は、以下のように表せる。
スレーブのイベント発生からマスタのイベント発生までの時間= st(tes)−tem−(スレーブとマスタの時刻差)
以上がスレーブとマスタのイベントタイミング差の計算方法である。
次に、ステップS205において、イベント間隔補正部105は、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントのタイミング差)から、イベント間隔の補正を行う。
イベント間隔の補正は、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントのタイミング差)を小さくするように、たとえば0にするように、イベント間隔記憶部108に現在設定されているイベント間隔の値を補正する。たとえば、スレーブとマスタのイベントのタイミング差がx(もしくは-x)であれば、イベント間隔をx縮める(もしくは伸ばす)。または、数回のイベント発生を経てイベント間隔が合計でx縮まる(伸びる)ように、複数回に分けてイベント間隔を縮めて(伸ばして)もよい。
次に、イベント間隔補正部105は、補正したイベント間隔をイベント間隔記憶部108に保存する(ステップS206)。タイマー106は、現在自身に設定されている値でタイムアウトしたら、次にイベント間隔記憶部108における補正後のイベント間隔の値が設定される。当該補正後の値が設定された後、イベント間隔記憶部108の値を、デフォルトのイベント間隔の値(マスタに設定されているのと同じイベント間隔の値)に設定してもよい。これにより、同期処理の頻度が少ない場合も、マスタと高い確度で同期させ続けることができる。
ここで、上述したステップS204において計算するスレーブとマスタのイベントのタイミング差は、スレーブのイベントに対して、最も時間的に近接するマスタのイベントとの時間であることが望ましい。ここで言うスレーブのイベントは、たとえばマスタに同期フレームを送信する前に発生した直前のイベント、あるいは、マスタからの同期フレームを受信する直前に発生した最新イベントなど、任意のイベントを用いることができる。スレーブのイベントに近接するマスタのイベントは、発生済みのイベントではなく、将来に発生するマスタのイベントの場合もありうる。
同期フレームから得られたマスタイベント発生タイムスタンプtem(図9参照)は、スレーブのイベントに対して最近接するマスタのイベント発生時刻を示していない可能性もある。そこで、以下、スレーブのイベントに対して最近接するマスタのイベントとの間の時間(タイミング差)の求め方を示す。
まず、図10を使って、スレーブのイベントに対して最近接するマスタのイベントについて説明する。
スレーブのイベント1に対して、マスタの先発のイベントAと、後発のイベントBがある。マスタにおける先発のイベントAは、後発のイベントBよりもイベント1との時刻差が短く、先発のイベントAを、スレーブのイベント1に対して最近接するマスタのイベントとする。
逆に、マスタにおける後発のイベントBの方が、イベント1との時刻差が短い場合は、後発のイベントが、イベント1に対して最近接するマスタのイベントとなる。
当然ながら、マスタにおける先発のイベントAの前に発生したイベントと、後発のイベントBの後に発生したイベントも、スレーブのイベント1に対して最近接するマスタのイベントとはならない。
ここで、同期フレームから得られたタイムスタンプtem(図9参照)のマスタのイベントは、スレーブのイベントに対して最近接のイベントの時刻を示さない可能性がある。これは、同期フレームにマスタイベント発生タイムスタンプが記載されてから、スレーブが同期フレームを受信するまでに時間が経過するためである。従って、同期フレームに記載されたマスタイベント発生タイムスタンプは、スレーブにおけるどのイベントと最近接するのかわからない。ステップS204の説明で示した計算方法で得られるイベントタイミング差は、スレーブのイベント発生から、マスタで複数のイベントを隔てた時間となる可能性がある。
図11を用いて、スレーブのイベントに対して最近接するマスタのイベントとのイベントのタイミング差の推定方法を説明する。この処理を、図5のステップS204の処理の中で適用することができる。
まず、上述したステップS204の説明で示した計算方法で得られたスレーブとマスタのイベントのタイミング差をパラメータZに与え(ステップS500)、パラメータZと、デフォルトのイベント間隔(マスタと同じ値)を比較する(ステップS501)。
次に、パラメータZが、当該イベント間隔より大きい場合は、パラメータZを、当該イベント間隔で割った余りを求め、求めた余りをパラメータZに入力する(ステップS502)。
ステップS501でパラメータZが当該イベント間隔以下である場合、またはステップS502を経過した後、パラメータZを、イベント間隔の2分の1の値と比較する(ステップS503)。
パラメータZの方が、イベント間隔の2分の1よりも大きい場合は、パラメータZから当該イベント間隔を減算し、減算後の値をパラメータZに入力する(ステップS504)。
ステップS503でパラメータZがイベント間隔の2分の1以下であると判断された場合、またはステップS504を経由した後、パラメータZの値を、スレーブのイベントに対して最近接するマスタのイベントとのイベントのタイミング差として決定する(ステップS505)。
以上の処理を行うことで、スレーブのイベントに対して最近接するマスタのイベントとの間で、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントのタイミング差)を推定できる。
図6は、図2に示したスレーブ、および図3に示したマスタのイベント生成時の動作を示すフローチャートである。
まず、イベント生成部107、204は、タイマー106、203からのシグナルを受信するまで待機する(ステップS301)。
次に、イベント生成部107、204は、タイマー106、203からのシグナルを受信すると、イベント処理を実施する(ステップS302)。本実施形態で想定する保護リレーの場合、イベント処理は、電気量(電流・電圧値)の値を取得し、イベント用フレームに記載する。なお、イベント生成部107、204は、タイマー106、203からのシグナルを受けたら、次のイベントまでの時間をタイマー106、203に設定してもよい。スレーブは、イベント間隔記憶部106に記憶されている値を設定し、マスタは所定のイベント間隔値を設定する。
次に、ネットワーク処理部101、201は、イベント発生時のタイムスタンプ(スレーブイベント発生タイムスタンプ、マスタイベント発生タイムスタンプ)を生成し、当該タイムスタンプをイベント用フレームに記載する(ステップS303)。そして、イベント用フレームをネットワーク処理部101、201に渡す。
次に、ネットワーク処理部101、201は、イベント用フレームを通信ネットワーク102に送信する(ステップS304)。イベント用フレームに記載する宛先は事前に与えられており、イベント生成部またはネットワーク処理部でイベント用フレームに追加する。
図7は、図3に示したマスタの同期フレーム受信時の動作を示すフローチャートである。
まず、ネットワーク処理部201は、通信ネットワーク102からフレームを受信し、受信したフレームをプロトコル処理部202に渡す。このとき、フレーム受信時のタイムスタンプ(マスタ受信タイムスタンプ)t2をタイムスタンプ記憶部205に記録する。または、マスタ受信タイムスタンプをフレームの所定フィールドに追記してもよい(ステップS401)。
次に、プロトコル処理部202は、受信したフレームが、同期フレームであるか否かを判断する(ステップS402)。
同期フレームでなければ、そのフレームの種類に応じた処理を行い、再度、フレーム受信の待機に戻る。この場合、タイムスタンプ記憶部205に記録したタイムスタンプt2を消去してもよい。フレームにタイムスタンプt2を追記した場合は、当該フレームの処理では、タイムスタンプt2は無視すればよい。
プロトコル処理部202は、受信したフレームが同期フレームであれば、スレーブ宛てに送信する同期フレームを生成する(ステップS403)。宛先のスレーブは、同期フレームの送信元アドレスを参照して特定すればよい。
次に、プロトコル処理部202は、タイムスタンプ記憶部205から、マスタイベント発生タイムスタンプを取得し、当該タイムスタンプを同期フレームに追記する(ステップS404)。タイムスタンプを生成するイベントは、マスタで発生した最新のイベントであるとするが、これに限定されず、それより前のイベントであってもよい。
次に、プロトコル処理部202は、マスタイベント発生タイムスタンプ、マスタ受信タイムスタンプt2、マスタ送信タイムスタンプt3を、スレーブ宛てに送信する同期フレームに記載する(ステップS404、S405)。タイムスタンプt3,t2の代わりに、上記2つのタイムスタンプの差t3-t2が記載されていてもよい。タイムスタンプt3は、ネットワーク処理部201が送信直前の時刻であることが望ましいが、プロトコル処理部204が、同期フレームを生成した時の時刻でもよい。
また、マスタがスレーブから受信した同期フレームに、スレーブ送信タイムスタンプt1やスレーブイベント発生タイムスタンプが含まれる場合があり、この場合、当該タイムスタンプも、スレーブ宛の同期フレームに記載する。
次に、ネットワーク処理部201は、スレーブ宛の同期フレームを送信する(ステップS406)。
以上、第1の実施形態によれば、スレーブとマスタの時刻差に基づきスレーブとマスタのイベントの発生のタイミング差を求め、当該タイミング差を小さくするように、スレーブのイベント間隔情報を補正することにより、マスタに対しイベント発生のタイミングを高確度で同期させることが可能となる。特に、スレーブのイベントに対して時間的に最近接するマスタのイベントとのイベントのタイミング差を求めることで、短時間かつ高確度で、マスタに対しイベント発生を同期させることが可能となる。
(第2の実施形態)
第1の実施形態では、スレーブとマスタの時刻差からスレーブとマスタのイベントのタイミング差を求め、当該イベントのタイミング差からイベント間隔を補正したが、第2の実施形態では、スレーブとマスタのイベントのタイミング差からスレーブとマスタの時刻差を求め、当該時刻差から、時刻パラメータを決定し、さらにイベント間隔を決定することを特徴とする。
図12は、第2の実施形態に係わるスレーブのブロック図である。
このスレーブは、ネットワーク処理部101と、プロトコル処理部102と、タイミング差計算部111と、時刻差計算部112と、タイムスタンプ記憶部109と、タイマー106と、イベント生成部107と、時刻パラメータ記憶部114と、時間計算部(イベント間隔計算部)115を備えている。第1の実施形態との主な差異は、第1の実施形態に係る時刻差計算部103、タイミング差計算部104、イベント間隔補正部105、イベント間隔記憶部108が除去され、タイミング差計算部111と、時刻差計算部112と、時刻パラメータ記憶部114と、時間計算部115が追加された点である。以下、第1の実施形態と重複する処理については、変更または拡張された処理を除き、重複する説明を省略する。
タイミング差計算部111は、プロトコル処理部102から渡されるタイムスタンプ(マスタイベント発生タイムスタンプ、マスタ受信タイムスタンプ)と、タイムスタンプ記憶部109のタイムスタンプ(スレーブ受信タイムスタンプ、スレーブイベント発生タイムスタンプ)を利用して、スレーブのイベント発生からマスタのイベント発生までの時間(スレーブとマスタのイベントのタイミング差)を計算する。第1の実施形態と同様、タイムスタンプ記憶部109のタイムスタンプは、プロトコル処理部102から取得する構成もあり得る。タイミング差計算部111は、計算したイベントタイミング差を、時刻差計算部112に渡す。
時刻差計算部112は、タイミング差計算部111から受けたスレーブとマスタのイベントのタイミング差と、マスタイベント発生タイムスタンプと、タイムスタンプ記憶部109に記憶されているスレーブイベント発生タイムスタンプとを利用して、スレーブとマスタの時刻差を計算する。
また、スレーブイベント発生タイムスタンプおよび、スレーブ送信タイムスタンプは、スレーブのタイムスタンプ記憶部109に記録したものを利用してもよいが、スレーブがマスタに対して送信する同期フレームに前記2つのタイムスタンプを記載し、マスタがスレーブに同期フレームを送信する際に、前記2つのタイムスタンプを転記し、スレーブが受信したものを利用してもよい。
時刻差計算部112は、スレーブとマスタの時刻差を、クロックオフセットとして得る。また、必要に応じて、スレーブの時刻に対するマスタの時刻の進みの速さの比率を表すクロックレートを計算する。クロックオフセットとクロックレートを総称して時刻パラメータと呼ぶ。クロックレートを計算しない構成も可能で有り、この場合は、クロックレートの値を1として以降の処理を行えばよい。
クロックレートは、スレーブとマスタとで水晶発振器間の発振周波数の違いから生じる。クロックレートは、同期処理(図8参照)をたとえば2回行って、スレーブの時刻t4(1)、t4(2)と、そのときのマスタの時刻t4’(1)、t4’(2)を取得する。t4’(1)、t4’(2)は、同期処理で時刻差計算部112により求めた時刻差(1)、(2)をそれぞれスレーブの時刻t4(1)、t4(2)から減算することで得られる。そして、{t4’(1)−t4’(2)}/{t4(1)−t4(2)}によりクロックレートを計算できる。なお、上記のクロックオフセットは、これら2回の同期処理の2回目の方を用いて取得してもよいし、1回目の方を用いて取得してもよいし、当該2回の同期処理より後の同期処理で取得してもよい。
時間計算部115は、時刻パラメータ記憶部114に記憶された時刻パラメータ(クロックオフセット、クロックレート)に基づき、タイマー106に設定するための時間(イベント間隔)を、以下の式で計算する。
タイマーへ設定する時間(イベント間隔)=デフォルトのイベント間隔×クロックレート+クロックオフセット
クロックレートを算出しない場合は、クロックレートを1として、デフォルトのイベント間隔+クロックオフセットにより、イベント間隔を計算すればよい。
タイマー106が、タイムアウトによりイベント生成部107にシグナルを出力すると、時間計算部115が上記式によりイベント間隔を計算し、計算した値を、次のイベント発生までの時間として、タイマー106に設定する。タイマー106は、設定された時間が経過すると、タイムアウトし、イベント生成部107にシグナルを出力する。この後、時刻パラメータ記憶部114が更新されない間は、時刻パラメータ記憶部114に記憶されている値が、次のタイマー処理でも、適用される。以降、同期処理を複数回繰り返し行って、時刻パラメータの値を逐次更新していくことで、マスタに対しイベント発生のタイミングをより近づけ、高確度でイベント発生を同期させることができる。
図14は、第2の実施形態に係わる同期フレームの送受信シーケンスである。スレーブはイベントの発生をトリガとして同期フレームを送信し、マスタもイベントの発生をトリガとして同期フレームを送信する。同期フレームのやり取りの間に、それぞれイベントが2回発生している。
rmはマスタにおける同期フレームの受信時の時刻を表すタイムスタンプ(マスタ受信タイムスタンプ)、rsはスレーブにおける同期フレームの受信時の時刻を表すタイムスタンプ(スレーブ受信タイムスタンプ)である。タイムスタンプrmとマスタにおいてrmの直前に発生したイベントのタイムスタンプ(またはこれらのタイムスタンプの差分)は、rmの後にマスタで発生したイベントに応じてマスタから送信される同期フレームに記載されて、スレーブに送信される。
なお遅延時間dはスレーブからマスタへの同期フレーム送信、マスタからスレーブへの同期フレーム送信で同じである場合をここでは示している。なお、dは現実では、必ず同じになるとはいえず、その差は、算出するΔtと現実のΔtとの誤差となる。またΔtは、スレーブのイベント発生からマスタのイベント発生までの時間を表し、2つとも同じ大きさである場合をここでは示している。なお、Δtも現実では必ず同じになるとはいえず、その差は、算出するΔtと現実のΔtとの誤差となる。tmはマスタイベント発生タイムスタンプと、マスタ受信タイムスタンプrmの差を、tsはスレーブ受信タイムスタンプrsとスレーブイベント発生タイムスタンプの差を表している。詳細は後述する。
図13は、第2の実施形態に係わるスレーブの同期フレーム受信時の動作を示すフローチャートである。
まず、ネットワーク処理部101は、マスタからのフレームを受信し、プロトコル処理部102に渡す。このとき、フレームを受信した時刻を表すタイムスタンプ(スレーブ受信タイムスタンプ)rsをタイムスタンプ記憶部109に記録する。または、当該スレーブ受信タイムスタンプを同期フレームに追記してもよい(ステップS601)。
次に、プロトコル処理部102は、受信したフレームが同期フレームであるか否かを判断する(ステップS602)。同期フレームである場合は、同期フレームに記載されたマスタ受信タイムスタンプrmと、マスタイベント発生タイムスタンプをタイミング差計算部111に渡す。
次に、タイミング差計算部111は、プロトコル処理部102から受けたタイムスタンプと、スレーブ受信タイムスタンプと、スレーブイベント発生タイムスタンプを利用して、スレーブとマスタのイベントのタイミング差を計算する(ステップS604)。計算したイベントのタイミング差と、マスタイベント発生タイムスタンプを時刻差計算部112に渡す。
ここで、スレーブとマスタのイベントのタイミング差は、図14に示したように、マスタイベント発生タイムスタンプと、マスタ受信タイムスタンプrmの差をtm、スレーブ受信タイムスタンプrsとスレーブイベント発生タイムスタンプの差をtsとしたとき、以下のような計算式で求められる。
Figure 0006192995
ここで、タイミング差は近接するスレーブとマスタのイベントのタイミング差ではない場合がある。そこで、第1の実施形態にて図10で示したのと同様の変換処理を、上記式で計算されたタイミング差について行うことで、近接するスレーブとマスタのイベントのタイミング差を推定することができる。
次に、時刻差計算部112は、タイミング差計算部111から渡されたタイミング差と、マスタイベント発生タイムスタンプと、タイムスタンプ記憶部109から渡されたスレーブイベント発生タイムスタンプ、を用いて、スレーブとマスタの時刻差を計算する。そして、時刻差をクロックオフセットとして、時刻パラメータ記憶部114に格納する(ステップS604)。また必要に応じて、クロックレートを算出し、時刻パラメータ記憶部114に格納する。クロックレートの算出方法は前述した通りである。
スレーブとマスタの時刻差の計算を、図9を用いて説明する。図9はスレーブとマスタの時刻差と、タイミング差を説明する図である。図に示される各変数の定義は、前述した通りである。
図9において、マスタイベント発生タイムスタンプはtem、スレーブイベント発生タイムスタンプはst(tes)に該当する。タイミング差計算部111から受け取るイベントタイミング差はtes-temの値に相当する。スレーブとマスタの時刻差がイベント周期の2分の1以内に収まるという前提を置くと、st(tes)のときのスレーブとマスタの時刻差はtes-st(tes)である。ただし、tesはスレーブでイベントが発生した時のマスタ基準時での時刻に相当するため、実測できない。そこで、前述のイベントタイミング差=tes-temを用いると、スレーブとマスタ時刻差は、以下のように表せる。
スレーブとマスタの時刻差 = tem − st(tes) + タイミング差
以上がスレーブとマスタの時刻差の計算方法である。
時間計算部115は、時刻パラメータ記憶部114内の時刻パラメータに基づき、タイマー106に設定する時間(イベント間隔)を計算し、計算した値をタイマー106に設定する(ステップS605)。イベント間隔の計算のタイミングは、タイマー106が直前にタイムアウトした時点でもよいし、それより前に計算して内部のバッファまたは別途の記憶部に記憶しておき、タイマー106がタイムアウトしたら、バッファしておいた値を読み出してタイマー106に設定してもよい。タイマー106は、当該設定されたイベント間隔が経過したら、シグナルを発生させる。
このように、第2の実施形態によれば、スレーブとマスタのイベントのタイミング差から、スレーブとマスタの時刻差を求め、当該時刻差から時刻パラメータ(クロックオフセット(時刻差そのものに一致)、クロックレート)を求め、当該パラメータに基づき、次のイベント間隔を決定する。このような処理を繰り返し行うことで、マスタのイベントタイミングに徐々に近づけることができ、よって高確度にマスタとイベント発生を同期させることができる
さらに、イベントのタイミング差から時刻差を算出することで、イベント同期だけでなく、通信遅延測定や同期すべき他のアプリケーションなどへの当該時刻差の情報の転用も可能になる。
また、第1の実施形態で述べた種々のバリエーションは、第2の実施形態に組み合わせることも可能である。たとえば第1の実施形態ではイベント間隔を複数のイベントを経て段階的に調整する例を示したが、第2の実施形態においてもイベント間隔を複数のイベントを経て段階的に小さくするようにしてもよい。時間計算部は、計算したイベント間隔情報の値へ向けてイベント発生ごとに段階的にイベント間隔情報の値が近づくように、イベント間隔情報の値をイベント発生ごとに変更してもよい。
このように種々のバリエーションを適用することで、ネットワーク環境に合わせた様々な同期方式を提供することができる。
なお、上述した各実施形態に係るスレーブまたはマスタは、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、スレーブおよびマスタが備える各処理部は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、スレーブおよびマスタは、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、スレーブまたはマスタが備える記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1. 一定時間間隔でイベントを発生させるマスタ装置と、ネットワークを介して通信する通信装置であって、
    時刻を計時する計時手段と、
    前記計時手段に基づき、イベントの発生時間間隔を指定したイベント間隔情報に従ってイベントを発生させるイベント発生部と、
    前記イベント発生部でイベントが発生した時刻を表す第1タイムスタンプを記憶する記憶部と、
    前記マスタ装置から、前記マスタ装置でイベントが発生した時刻を表す第2タイムスタンプを記載したフレームを受信する受信部と、
    複数の第1タイムスタンプと、複数の第2タイムスタンプと、あらかじめ取得した前記イベント発生部と前記マスタ装置のイベントの発生のタイミング差とに基づき、前記マスタ装置が計時する時刻と前記計時手段が計時する時刻との進みの速さの比率を計算する時刻差計算部と、
    前記比率に基づき、前記イベント間隔情報を計算する時間計算部と
    を備えた通信装置。
  2. 前記時刻差計算部は、前記計時手段が計時する時刻と前記マスタ装置が計時する時刻との時刻差を複数計算し、計算した複数の時刻差を用いて、前記比率を計算する
    請求項に記載の通信装置。
  3. 前記イベント発生部でイベントが発生すると、第1フレームを前記マスタ装置に送信する送信部と、
    タイミング差計算部をさらに、備え、
    前記受信部は、前記マスタ装置で前記第1フレームが受信された後に前記マスタ装置から送信される第2フレームを受信し、
    前記第2フレームは、前記マスタ装置で前記第1フレームを受信した時刻と、前記第1フレームの受信前に前記マスタ装置で発生したイベントの時刻との差分を特定するための情報を含み、
    前記タイミング差計算部は、前記第2フレームを受信した時刻と前記第2フレームの受信前に前記イベント発生部で発生したイベントの時刻との差分と、前記第2フレームに記載された前記情報とに基づき、前記イベント発生部と前記マスタ装置のイベント発生のタイミング差を計算する、
    請求項1または2に記載の通信装置。
  4. 前記タイミング差計算部は、前記計算したタイミング差と前記一定時間間隔の値に基づき、前記イベント発生部で発生したイベントに対して前記マスタ装置で最も時間的に近く発生したまたは発生する予定のイベントと前記イベント発生部で発生したイベントとのタイミング差を求める
    請求項に記載の通信装置。
  5. 前記時間計算手段は、前記イベント発生部と前記マスタ装置のイベントの発生のタイミング差を0または0へ向けて小さくするイベント間隔情報の値を決定し、決定した値に前記イベント間隔情報の値イベント発生ごとに段階的に近づくように、前記イベント間隔情報の値をイベント発生ごとに変更する、
    請求項1ないし4のいずれか一項に記載の通信装置。
  6. 請求項1ないしのいずれか一項に記載の通信装置と、
    前記マスタ装置と
    を備えた通信システム。
  7. 前記通信システムは保護リレーシステムである
    請求項に記載の通信システム。
  8. 一定時間間隔でイベントを発生させるマスタ装置と、ネットワークを介して通信する通信方法であって、
    時刻を計時する計時手段に基づき、イベントの発生時間間隔を指定したイベント間隔情報に従ってイベントを発生させるイベント発生ステップと、
    前記イベント発生ステップでイベントが発生した時刻を表す第1タイムスタンプを記憶装置に記憶するステップと、
    前記マスタ装置から、前記マスタ装置でイベントが発生した時刻を表す第2タイムスタンプを記載したフレームを受信する受信ステップと、
    複数の第1タイムスタンプと、複数の第2タイムスタンプと、あらかじめ取得した前記イベント発生ステップと前記マスタ装置のイベントの発生のタイミング差を表す情報とに基づき、前記マスタ装置が計時する時刻と前記計時手段が計時する時刻との進みの速さの比率を計算する時刻差計算ステップと、
    前記比率に基づき、前記イベント間隔情報を計算する時間計算ステップ
    を備えた通信方法。
  9. 一定時間間隔でイベントを発生させるマスタ装置と、ネットワークを介して通信するコンピュータに実行させるためのコンピュータプログラムであって、
    時刻を計時する計時手段に基づき、イベントの発生時間間隔を指定したイベント間隔情報に従ってイベントを発生させるイベント発生ステップと、
    前記イベント発生ステップでイベントが発生した時刻を表す第1タイムスタンプを記憶装置に記憶するステップと、
    前記マスタ装置から、前記マスタ装置でイベントが発生した時刻を表す第2タイムスタンプを記載したフレームを受信する受信ステップと、
    複数の第1タイムスタンプと、複数の第2タイムスタンプと、あらかじめ取得した前記イベント発生ステップと前記マスタ装置のイベントの発生のタイミング差を表す情報とに基づき、前記マスタ装置が計時する時刻と前記計時手段が計時する時刻との進みの速さの比率を計算する時刻差計算ステップと、
    前記比率に基づき、前記イベント間隔情報を計算する時間計算ステップ
    を前記コンピュータに実行させるためのコンピュータプログラム。
JP2013118230A 2013-06-04 2013-06-04 通信装置、通信システム、通信方法およびコンピュータプログラム Expired - Fee Related JP6192995B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013118230A JP6192995B2 (ja) 2013-06-04 2013-06-04 通信装置、通信システム、通信方法およびコンピュータプログラム
EP20140170581 EP2811672A1 (en) 2013-06-04 2014-05-30 Communication apparatus, communication system, and communication method for time synchronization
US14/293,207 US9374214B2 (en) 2013-06-04 2014-06-02 Communication apparatus, communication system, and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013118230A JP6192995B2 (ja) 2013-06-04 2013-06-04 通信装置、通信システム、通信方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2014236443A JP2014236443A (ja) 2014-12-15
JP6192995B2 true JP6192995B2 (ja) 2017-09-06

Family

ID=50841641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013118230A Expired - Fee Related JP6192995B2 (ja) 2013-06-04 2013-06-04 通信装置、通信システム、通信方法およびコンピュータプログラム

Country Status (3)

Country Link
US (1) US9374214B2 (ja)
EP (1) EP2811672A1 (ja)
JP (1) JP6192995B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6615470B2 (ja) * 2015-03-16 2019-12-04 株式会社東芝 同期制御装置、同期システム及び同期制御方法
US9853985B2 (en) * 2015-10-13 2017-12-26 International Business Machines Corporation Device time accumulation
JP6880611B2 (ja) * 2016-09-14 2021-06-02 富士電機株式会社 処理装置、システム、処理方法および処理プログラム
US9979998B1 (en) * 2017-05-02 2018-05-22 Amazon Technologies, Inc. System for time synchronization of audio devices
US10200724B1 (en) * 2017-09-12 2019-02-05 Amazon Technologies, Inc. System for optimizing distribution of audio data
US10727965B2 (en) * 2017-11-21 2020-07-28 Western Digital Technologies, Inc. System and method for time stamp synchronization
US10719100B2 (en) 2017-11-21 2020-07-21 Western Digital Technologies, Inc. System and method for time stamp synchronization
DE112019006851B4 (de) * 2019-03-11 2022-10-20 Mitsubishi Electric Corporation Slave-Ausrüstung, Zeitsynchronisationsprogramm, eingebettetes System und Zeitsynchronisationsverfahren
CN111819891B (zh) * 2020-04-01 2022-11-11 深圳市汇顶科技股份有限公司 时间同步及广播设定方法、芯片、电子设备及存储介质
CN113556366B (zh) * 2020-04-07 2023-09-26 舜宇光学(浙江)研究院有限公司 多传感器数据同步方法及其系统和电子设备
EP3902166B1 (de) * 2020-04-21 2022-03-23 TTTech Computertechnik Aktiengesellschaft Fehlertoleranter zeitserver für ein echtzeitcomputersystem
JP7161505B2 (ja) * 2020-05-29 2022-10-26 株式会社タムラ製作所 情報通信システム及び情報通信装置
CN117908354A (zh) * 2022-10-11 2024-04-19 比亚迪股份有限公司 时间同步系统、域控制器和车辆

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0697774A1 (en) * 1994-08-15 1996-02-21 Hewlett-Packard Company Clock offset estimation
GB2394628B (en) * 2002-10-25 2005-10-19 Siemens Plc A method of determining a timing offset between a first clock and a second clock in a communications network
KR101197280B1 (ko) * 2005-07-15 2012-11-05 삼성전자주식회사 타임 스탬프를 이용한 타임 동기 방법 및 장치
JP4837389B2 (ja) * 2006-01-31 2011-12-14 鹿島建設株式会社 複数点計測装置および複数点計測方法
JP5127482B2 (ja) 2008-01-30 2013-01-23 株式会社東芝 タイミング同期方法、同期装置、同期システム及び同期プログラム
US8473638B2 (en) 2008-05-02 2013-06-25 James Aweya Method and apparatus for time and frequency transfer in communication networks
US8700805B2 (en) * 2008-09-02 2014-04-15 Unify Gmbh & Co. Kg Method for synchronizing clocks in a communication network
JP5332421B2 (ja) * 2008-09-05 2013-11-06 横河電機株式会社 計測レコーダ・システム
CN102652409B (zh) * 2009-12-31 2015-11-25 Abb研究有限公司 用于检测信道延迟非对称性的方法
JP5259663B2 (ja) * 2010-09-15 2013-08-07 株式会社東芝 計測装置およびプログラム
JP5849413B2 (ja) * 2011-03-18 2016-01-27 セイコーエプソン株式会社 情報通信端末、生体情報測定機器及び情報通信システム
US8959381B2 (en) * 2012-09-05 2015-02-17 Khalifa University of Science, Technology, and Research Method and system for clock offset and skew estimation
JP6183639B2 (ja) * 2013-04-24 2017-08-23 株式会社チノー センシングシステム

Also Published As

Publication number Publication date
EP2811672A1 (en) 2014-12-10
US9374214B2 (en) 2016-06-21
JP2014236443A (ja) 2014-12-15
US20140355629A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
JP6192995B2 (ja) 通信装置、通信システム、通信方法およびコンピュータプログラム
US9634782B2 (en) Clock synchronization system, clock synchronization method, and storage medium whereupon clock synchronization program is stored
JP5911584B2 (ja) 補正パラメータ算出装置及びシステム及び補正パラメータ算出方法及びコンピュータプログラム
EP3284217B1 (en) Methods, systems, and computer readable medium for synchronizing timing among network interface cards (nics) in a network equipment test device
JP5080202B2 (ja) 時刻同期処理システム、時刻情報配信装置、時刻同期処理装置、時刻情報配信プログラム、および時刻同期処理プログラム
EP3282340A1 (en) System for maintaining accurate ideal clock time
JP6240048B2 (ja) 通信装置及び通信システム
JP2010527193A (ja) ネットワークコンポーネントのクロックを別のネットワークコンポーネントのクロックに同期させる方法及びネットワークコンポーネント
JP6036179B2 (ja) 通信装置及び同期方法
JP6452427B2 (ja) 時刻同期監視方法、通信システム、及びマスタ装置
JP6254028B2 (ja) スレーブノード及び時刻同期方法
JP6010802B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
JP2013251878A (ja) 通信装置、制御装置及びプログラム
JP2012195840A (ja) 通信装置、通信制御方法
US20170117980A1 (en) Time synchronization for network device
CN103986601A (zh) 一种报文传输时延获取方法及装置
JP2008187235A (ja) ネットワークシステムおよびスレーブ同期方法
JP2017068353A (ja) ユニット間での同期制御機能を有する数値制御システム
JP6310758B2 (ja) 時刻同期装置および方法
CN103441832A (zh) 基于ptp的时钟同步方法、系统和设备
JP6085864B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
TW202144952A (zh) 時間校正裝置、時間校正方法及時間校正程式產品
WO2017033416A1 (ja) 中継装置、通信システム、及び障害検出方法
JPWO2020095413A1 (ja) 通信システム、通信装置、及びプログラム
JP6627958B1 (ja) 通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170620

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170809

R151 Written notification of patent or utility model registration

Ref document number: 6192995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees