[go: up one dir, main page]

JP5804086B2 - ノード装置および時刻同期方法 - Google Patents

ノード装置および時刻同期方法 Download PDF

Info

Publication number
JP5804086B2
JP5804086B2 JP2013551158A JP2013551158A JP5804086B2 JP 5804086 B2 JP5804086 B2 JP 5804086B2 JP 2013551158 A JP2013551158 A JP 2013551158A JP 2013551158 A JP2013551158 A JP 2013551158A JP 5804086 B2 JP5804086 B2 JP 5804086B2
Authority
JP
Japan
Prior art keywords
time
time information
unit
frame
information frame
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
JP2013551158A
Other languages
English (en)
Other versions
JPWO2013099026A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013099026A1 publication Critical patent/JPWO2013099026A1/ja
Application granted granted Critical
Publication of JP5804086B2 publication Critical patent/JP5804086B2/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
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • 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/0685Clock or time synchronisation in a node; Intranode synchronisation
    • H04J3/0697Synchronisation in a packet node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0037Delay of clock signal
    • 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/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ノード装置と、複数のノード装置の間で行われる時刻の同期方法に関する。
近年、ビルや橋梁などの建造物に複数のセンサーを設置し、得られた測定値をセンタサーバで収集して構造物で発生した変位を観測するシステム(構造物ヘルスモニタリング)が考案されている。この場合、各センサーは、得られた測定値をセンタサーバに送信することになる。そこで、このようなセンサーネットワークに、有線および無線のアドホックネットワークが適用されることがある。
センサーネットワークで計測される物理量によっては、計測に時刻データが用いられることがある。例えば、構造物のたわみの大きさの計測や地震のゆれの計測などを行うために加速度センサーが用いられる場合、加速度の計算に時刻情報が使用される。同一のセンサーネットワークに含まれるセンサー間で許容される時刻の差は、サンプリング間隔と許容される誤差の大きさによって変動する。例えば、サンプリング間隔が5msで許容される誤差が5%である場合、センサー間の時刻の差を250μs以下に保つことが求められる。しかし、センサー間で時刻を同期させた後でも、センサーが動作している周波数の偏差などによって、センサー間で時刻の差が発生してしまう。このため、同じセンサーネットワークに含まれるセンサー間で、定期的に時刻同期が行われる。複数のセンサー間で時刻を同期させるための手法として、個々のセンサーが電波時計、GPS(Global Positioning System)、NTP(Network Time Protocol)などを用いて時刻調整をする方法がある。さらに、Media Access Control(MAC)層での制御を伴う方法として、RBS(Reference Broadcast Synchronization)、TPSN(Timing-sync Protocol for Sensor Networks)、FTSP(Flooding Time Synchronization Protocol)などが知られている。
関連する技術として、第1の装置が時刻情報を含むトークンを第2の装置に送信し、第2の装置が、トークンを用いた時刻補正後、処理時間を加算した時刻情報を含むトークンを第3の装置に送信する方法が知られている。さらに、受信装置から時刻データ送信要求を受信すると、2進化によってゼロ挿入されないようなコードに変換した時刻データと送信遅延時間を含む固定長のフレームを受信装置に送信する送信装置も知られている。
アドホックネットワークに関連する技術としては、送信対象フレームの識別情報に、送信先の隣接ノード装置、その送信対象フレームを最初に転送してきた転送元を対応付けて記憶するノード装置が提案されている。このノード装置は、フレームを受信すると、受信フレームの識別番号と送信対象フレームの識別番号を比較することにより、フレームの送信経路にループがあるかを確認する。
特開平9−83608号公報 特開2006−93967号公報 国際公開第2011/013165号
電波時計やNTPを用いて個々のノード装置が時刻を補正することによりノード装置間の時刻を調整する場合、ノード装置間で発生する誤差の大きさは、物理量の計測に用いられるセンサーシステムで許容される誤差よりも大きい。従って、個々のノード装置が電波時計やNTPによって時刻を調整しても、センサーシステムで求められる精度で時刻同期できない。個々のノード装置がGPSを用いて時刻を同期させる場合、ノード装置間の同期の精度は高いが、各ノード装置の消費電力が大きくなるので、センサーネットワークに用いるノード装置には適さない。また、RBS、TPSN、FTSPなどの時刻同期方法では、独自の処理が行われるため、ハードウェアがカスタマイズされている場合がある。ハードウェアがカスタマイズされていると、ノード装置に含まれるチップの互換性がなくなるという問題がある。また、RBS、TPSN、FTSPなどの時刻同期方法では、時刻同期処理での使用電力が大きくなる、時刻を同期できるノード装置の数が少ないなどの問題もあるため、センサーネットワークで使用するノード装置への適用は困難である。
時刻情報を含む固定長のフレームを送受信する方法は、送受信するフレームを固定長にすることが求められるため、センサーネットワークに適用しにくい場合がある。さらに、ネットワーク中の1つの装置がトークンを用いて時刻を調整する方法では、アドホックネットワークに含まれるノード装置の数が多い場合は適用できない。
本発明は、ネットワークに含まれるノード装置の時刻同期を簡便に精度良く行うことを目的とする。
実施形態にかかるノード装置は、時刻計測部、受信部、記憶部、タイマー、時刻補正部を備える。時刻計測部は時刻を計測する。受信部は、前記時刻の補正に使用する時刻情報を含むフレームである時刻情報フレームを受信する。記憶部は、前記時刻情報フレームの送信元ノード装置が前記時刻情報を取得する時刻から前記時刻情報フレームを送信する時刻までの時間である送信処理時間を固定値として記憶している。タイマーは、前記時刻情報フレームを受信する時刻から、前記時刻情報を前記時刻情報フレームから取得する時刻までの時間である受信処理時間を計測する。時刻補正部は、前記時刻情報に、前記固定値と前記受信処理時間を加えた値を、前記時刻計測部に設定することにより前記時刻計測部で計測される時刻を補正する。
ネットワークに含まれるノード装置の時刻同期が簡便に、高精度で行われる。
実施形態に係る時刻の同期方法の例を示す図である。 実施形態に係るノード装置が用いられるネットワークの例を示す図である。 ノード装置の構成の例を示す図である。 ゲートウェイの構成の例を示す図である。 ノード装置で行われる時刻情報フレームの送受信に関するブロック図である。 ゲートウェイからの時刻情報フレームの送信に関するブロック図である。 時刻情報フレームのフォーマットの例を示す図である。 時刻情報フレームの送信の例を示す図である。 時刻同期の手順の例を説明する図である。 CPU71の動作の例を説明するフローチャートである。 CPU80の動作の例を説明するフローチャートである。 時刻情報フレームを受信したノード装置の動作の例を説明するフローチャートである。 時刻情報フレームを送信する際のノード装置の動作の例を説明するフローチャートである。 ノード装置の構成の例を示す図である。
図1は、実施形態に係る時刻の同期方法の例を示す。送信側のノード装置は、時刻情報を含む時刻情報フレームを、受信側のノード装置に送信する。ここで、送信側のノード装置と受信側のノード装置は、予め、送信側のノード装置が時刻情報を取得してから、時刻情報フレームの送信までにかかる時間を固定値として記憶しているものとする。以下、ノード装置が時刻情報を取得してから、時刻情報を含むフレームを送信するまでにかかる時間のことを、「送信処理時間」と記載することがある。図1では、送信処理時間をβで表している。
まず、送信側のノード装置は、時刻同期を行うために、時刻情報が未設定の時刻情報フレームを生成する。さらに、送信側のノード装置は時刻情報を取得する。図1の例では、送信側のノード装置が時刻αを表す時刻情報を取得した場合を表している。送信側のノード装置は、取得した時刻情報を時刻情報フレーム中に設定し、時刻情報の設定が終わると時刻情報フレームを送信する。ここで、送信ノード装置は、予め記憶している送信処理時間(β)により表される時間で、時刻情報の取得から送信の開始までの処理を行うものとする。
一方、受信側のノード装置は、時刻情報フレームを受信すると、時刻情報フレームに含まれている時刻情報を抽出する。ここで、受信側のノード装置は、時刻情報フレームの受信の開始の際に、受信処理時間の計測を開始している。「受信処理時間」は、ノード装置が時刻情報フレームの受信を開始した時刻から、ノード装置が時刻の更新に使用できる時刻情報である更新時刻情報を取得した時刻までの時間とすることができる。また、受信側のノード装置が、時刻情報フレームの受信を開始した時刻から、時刻情報フレームに含まれている時刻情報(時刻α)に送信処理時間βを加えた値を求めた時刻までの時間を受信処理時間とすることもできる。受信処理時間を図1のγで示す。受信側のノード装置は、時刻情報フレームに含まれていた時刻情報に、送信処理時間と受信処理時間を加えた値を用いて時刻を調整する。すなわち、図1の例では、時刻α+β+γが時刻の補正値として用いられる。
時刻の補正が終了したノード装置は、他のノード装置に、時刻情報フレームを送信することにより、時刻情報を通知する。このときも、時刻情報フレームは、時刻情報が取得された時刻から送信処理時間が経過した時刻に送信される。時刻情報フレームを受信したノード装置も同様の処理を行うことにより、時刻を補正し、時刻情報フレームの送信元のノード装置との間で時刻を同期させる。なお、時刻同期の間隔は、求められる同期精度を満たす任意の間隔とされる。
このように、送信処理時間を固定値に設定し、予め送信側のノード装置と受信側のノード装置に記憶させておくことで、送信元のノード装置が時刻情報を取得してから時刻情報を送信するまでに経過した時間を、受信側のノード装置が補正することができる。さらに、受信側のノード装置は、時刻情報フレームの処理にかかる時間を計測した値を用いた補正も行う。従って、送信側のノード装置と受信側のノード装置を、高精度で時刻同期させることができる。
<ネットワークの例と装置構成>
図2は、実施形態に係るノード装置が用いられるネットワークの例を示す。図2の例では、ネットワークには、センタサーバ1、ネットワーク2、NTPサーバ3、ゲートウェイ70、ノード装置10a〜10dが含まれる。ノード装置10a〜10dは、センサーを備えており、センサーから得られた物理量を、アドホックネットワークによってゲートウェイ70に送信する。一方、ゲートウェイ70は、アドホックネットワークから得られたデータを、ネットワーク2を介して、センタサーバ1に送信する。センタサーバ1は、個々のノード装置10で測定されたデータを解析する。
ここで、ゲートウェイ70とノード装置10a〜10dは、アドホックネットワークを形成しており、一定時間間隔ごとに時刻同期しているものとする。以下の説明では、図2の例に示すように、ゲートウェイ70は、NTPサーバ3と通信することにより最新の時刻情報を取得するものとする。なお、時刻情報は、ある特定の時刻を一意に表すことができる任意の形式とすることができる。例えば、時刻情報は、2011年12月7日1時2分3秒などの特定の時刻を表す情報(絶対時刻)であってもよく、また、特定のタイミングまでの時間を表すカウンタ値であっても良い。さらに、時刻情報は、年月日時分秒などの単位で表されていても、unix時間の形式で表されていても良いものとする。また、図2に示すゲートウェイ70が時刻情報を取得する方法は一例であり、ゲートウェイ70は、例えば、電波時計やGPSから最新の時刻情報を取得することもできる。
図2の例では、アドホックネットワーク中の隣接ノード同士を双方向の矢印で結んでいる。以下の説明では、あるノード装置から送信されたフレームを受信できる範囲に位置するノード装置のことを、そのノード装置の「隣接ノード」と記載することがある。また、複数のノード装置が互いにフレームを送受信できる距離に位置することを「隣接する」と記載する。従って、図2の例では、ゲートウェイ70とノード装置10aの間ではフレームの送受信が可能であるが、ゲートウェイ70は、ノード装置10b〜10dと直接フレームを送受信することができない。
図3は、ノード装置10の構成の例を示す図である。ノード装置10は、アンテナ14(14a、14b)、無線RF(Radio Frequency)回路40、44、Central Processing Unit(CPU)50、60を備える。以下の例では、ノード装置10は、時刻同期に関する処理を、CPU50、無線RF回路40、アンテナ14aを用いて行うものとする。一方、センサー(図示せず)によって得られた測定値の処理やデータの送受信など、時刻同期以外の処理は、CPU60、無線RF回路44、アンテナ14bによって行われるものとする。なお、センサーは、CPU60に接続されているものとする。以下の説明では、時刻情報フレームはアンテナ14aを介して送受信され、時刻情報フレーム以外のフレームはアンテナ14bから送受信されるものとする。なお、アンテナ14aとアンテナ14bの間で送受信可能なフレームの種類が異なるようにする方法は、任意の方法を用いることができるものとする。例えば、アンテナ14aとアンテナ14bの間で送受信する周波数を互いに異なるものとすることができ、また、アンテナ14aとアンテナ14bで通信に用いられるチャネルを異なるチャネルとすることもできる。
アンテナ14aは受信した信号を無線RF回路40に出力する。無線RF回路40は、RFインタフェース41aとベースバンド処理回路42aを備えている。RFインタフェース41aは、アンテナ14aから受信した信号をベースバンド信号に変換する。ベースバンド処理回路42aは、RFインタフェース41aから入力されたベースバンド信号を処理し、CPU50に出力する。また、時刻情報フレームの送信の際には、ベースバンド処理回路42aは、CPU50で生成された時刻情報フレームをベースバンド信号に変換してRFインタフェース41aに出力する。RFインタフェース41aは、入力されたベースバンド信号を搬送波によって変換した信号をアンテナ14aに出力する。CPU50は、μSカウンタ51を有し、さらに、高精度クロック52、read only memory(ROM)53、random access memory(RAM)54を用いて時刻情報フレームの解析、時刻同期、他のノード装置10へ送信する時刻情報フレームの生成などの処理を行う。これらの処理については後述する。
アンテナ14bは受信した信号を無線RF回路44に出力する。無線RF回路44は、RFインタフェース41b、ベースバンド処理回路42b、MAC処理部43を備えている。RFインタフェース41bは、アンテナ14bを介して受信した信号をベースバンド信号に変換する。また、RFインタフェース41は、ベースバンド処理回路42bから入力された信号を、搬送波を用いて処理する。ベースバンド処理回路42bは、得られたベースバンド信号を処理する。さらに、ベースバンド処理回路42bは、RFインタフェース41bおよびMAC処理部43との間でデータを入出力する。MAC処理部43は、Carrier Sense Media Access(CSMA)などの無線メディアアクセス制御を行う。CPU60は、ROM61、RAM62、高精度クロック63、タイマーIC64を用いて、センサーでの測定結果などのデータの処理を行う。
図4は、ゲートウェイ70の構成の例を示す図である。ゲートウェイ70は、ノード装置10と同様に、アンテナ14(14a、14b)、無線RF回路40、44、高精度クロック52、63、ROM53、61、RAM54、62、タイマーIC64を備えている。これらの動作は、ノード装置10と同様である。ゲートウェイ70は、さらに、CPU71、CPU80、有線MAC処理回路65、有線PHY(physical layer)チップ66を備える。CPU71は時刻情報フレームの送信のタイミングを計測して、CPU80に割り込み処理として時刻情報フレームの送信を指示する。また、CPU71は、NTPサーバ3から取得した時刻情報をCPU80に出力する。CPU80は、時刻情報が取得されてから送信処理時間として予め記憶している時間で時刻情報フレームを送信する。ここで、ゲートウェイ70は、有線MAC処理回路65および有線PHYチップ66を介して、ネットワーク2に含まれている装置や、NTPサーバ3、センタサーバ1などと通信するものとする。ゲートウェイ70は、ノード装置10から送信された時刻情報フレームを受信するが、受信した時刻情報フレームは時刻の補正には用いずに破棄する。ゲートウェイ70の動作については、後で詳しく説明する。
図5は、ノード装置10で行われる時刻情報フレームの送受信に関するブロック図である。図5は、無線RF回路40、CPU50、RAM54などにより実現される処理を機能ブロックとして表している。受信部11、データ受信部12、送信部13は、無線RF回路40により実現される。補正タイマー起動部21、データ解析部22、時刻補正部24、時刻計測部30、時刻ずれ検出部25、時刻取得部26、フレーム生成部27は、CPU50により実現される。また、μSカウンタ51は、補正タイマー23として動作する。RAM54は、記憶部28として動作する。
受信部11、データ受信部12、補正タイマー起動部21、データ解析部22、補正タイマー23、時刻補正部24、記憶部28、時刻計測部30は、ノード装置10が時刻情報フレームを受信したときに動作する。受信部11は、フレームを受信すると、補正タイマー起動部21に補正タイマー23の起動を要求する。受信部11は、さらに、受信したフレームをデータ受信部12に出力する。ここで、受信部11は、フレームを受信すると、受信したフレームが時刻情報フレームであるとみなしてこれらの処理を行う。なお、受信したフレームが時刻情報フレームではないとデータ解析部22で判定された場合は、時刻同期は行われない。
データ受信部12は、Cyclic Redundancy Check(CRC)などにより、入力された時刻情報フレームにエラーがあるかを確認する。データ受信部12は、エラーが検出されなかったフレームをデータ解析部22に出力し、エラーが検出されたフレームは廃棄する。データ解析部22は入力されたフレームが時刻情報フレームであるかを確認する。さらに、データ解析部22は、時刻情報フレームを解析することにより、時刻情報を取得し、時刻補正部24に出力する。データ解析部22の動作は後で詳しく説明する。
一方、補正タイマー起動部21は、受信部11からの要求に応じて、補正タイマー23を起動させる。補正タイマー23は、時刻情報フレームを受信してから時刻情報が時刻補正部24に出力されるまでの時間を計測する。記憶部28は、予め、送信処理時間を記憶しているものとする。なお、以下の説明では、「送信処理時間」は、送信側のノード装置10もしくはゲートウェイ70で時刻情報フレームに設定される時刻情報が取得されてから、その時刻情報を含む時刻情報フレームが送信されるまでの時間であるものとする。時刻補正部24は、データ解析部22から時刻情報が入力されると、時刻情報、補正タイマー23の計測結果、記憶部28が記憶している送信処理時間を用いて、時刻計測部30で計測されている時刻を補正する。以下、補正タイマー23の計測結果を「受信処理時間」と記載することがある。
時刻計測部30は、RTC(Real Time Clock)時刻情報部31と時刻カウンタ情報部32を備える。RTC時刻情報部31は、絶対時刻を計時する。時刻カウンタ情報部32は、時刻をカウンタ値として計時する。時刻補正部24は、時刻情報、受信処理時間、送信処理時間の合計値を用いて、RTC時刻情報部31と時刻カウンタ情報部32の値を補正する。なお、RTC時刻情報部31の補正を行う際の時刻情報は、絶対時刻であり、時刻カウンタ情報部32の補正に用いられる時刻情報はカウンタ値であるものとする。
時刻ずれ検出部25、時刻取得部26、フレーム生成部27は、ノード装置10で時刻情報フレームを送信する際に動作する。時刻取得部26は、時刻計測部30から時刻情報を取得してフレーム生成部27に出力することにより、時刻情報フレームの生成を要求する。時刻ずれ検出部25は、時刻情報フレームの受信間隔が長すぎるなどの原因により、時刻計測部30で計測している時刻と実際の時刻のずれが許容範囲を超えている恐れがあるかを検出する。時刻ずれ検出部25は、時刻のずれが許容範囲を超えている恐れがあることを検出すると、時刻計測部30で計測されている時刻情報を他のノード装置10に通知しないことが望ましいため、フレーム生成部27に時刻情報フレームの生成の停止を要求する。フレーム生成部27は、時刻取得部26から時刻情報が入力されると、時刻ずれ検出部25から時刻情報フレームの生成の停止要求を受けていない場合は、時刻情報フレームを生成する。このとき、フレーム生成部27は、時刻情報の取得から時刻情報フレームの送信までの時間が送信処理時間となるようにする。フレーム生成部27は、時刻情報フレームを送信部13に出力する。送信部13は時刻情報フレームを、宛先のノード装置10に送信する。なお、時刻情報フレームの宛先として、全ての隣接ノードが指定されるものとする。
一方、時刻ずれ検出部25から時刻情報フレームの生成の停止を要求されている場合、フレーム生成部27は、時刻取得部26から入力された時刻情報を破棄し、時刻情報フレームを生成しない。
図6は、ゲートウェイ70からの時刻情報フレームの送信に関するブロック図である。時刻取得部92、フレーム生成部94は、CPU80により実現される。RAM54は、記憶部98として動作する。無線送信部95は、RFインタフェース41aにより実現される。時刻計測部93は、CPU71により実現される。なお、時刻計測部93は、RTC時刻情報部96と時刻カウンタ情報部97を有するものとする。
時刻取得部92は、CPU71から時刻情報を取得する。ここで、時刻情報が取得される前に、CPU71は、有線MAC処理回路65および有線PHYチップ66を介して、NTPサーバ3から現在の時刻を表す時刻情報を取得しているものとする。RTC時刻情報部96は、NTPサーバ3から取得された時刻情報により調整される。また、時刻カウンタ情報部97においても、NTPサーバ3から取得した時刻情報に合わせてカウンタ値が変更される。時刻取得部92は、取得した時刻情報をフレーム生成部94に出力する。
フレーム生成部94は、時刻取得部92から時刻情報が入力されると、時刻情報を含む時刻情報フレームを生成し、無線送信部95に時刻情報フレームを出力する。無線送信部95は、時刻情報フレームを全ての隣接するノード装置10に送信する。このとき、フレーム生成部94は、時刻取得部92が時刻情報を取得した時刻から、時刻情報フレームが送信されるまでの時間が送信処理時間となるように処理を行う。送信処理時間は、記憶部98に記憶されている。
<実施形態>
図7は、時刻情報フレームのフォーマットの例を示す。図7に示すように、時刻情報フレームは、ヘッダと時刻情報データを含む。ヘッダは、ローカル宛先(Local Destination、LD)フィールド、ローカル送信元(Local Source、LS)フィールド、グローバル宛先(Global Destination、GD)フィールド、グローバル送信元(Global Source、GS)フィールドを含む。さらに、フレームタイプフィールド、チャネル(CH)番号フィールド、フレームサイズフィールドもヘッダに含まれる。以下の説明で、「グローバル宛先」は、フレームの最終的な宛先のノード装置10を示すものとする。一方、「ローカル宛先」は、フレームをグローバル宛先に送信するために行われる1ホップの転送の際に、宛先として指定されるノード装置10を示す。「ローカル送信元」は、フレームが1ホップ転送される場合の転送元のノード装置10を指す。「グローバル送信元」は、フレームを生成したノード装置10もしくはゲートウェイ70を示す。時刻情報フレームは、送信元のノード装置10の隣接ノード装置にブロードキャストされるので、GDとLDは、全ての隣接ノードを表すブロードキャストアドレスである。また、GSとLSは時刻情報フレームを生成したノード装置10、もしくは、ゲートウェイ70のアドレスである。
フレームタイプフィールドは、ペイロードに含まれるデータの種類を示す情報を記録する。時刻情報フレームの場合、フレームタイプフィールドの値は時刻情報フレームを特定する値に設定される。データ解析部22は、フレームタイプフィールドの値を用いて時刻情報フレームを識別する。チャネル番号フィールドには、時刻情報フレームの送受信に用いられるチャネルを識別する値が記録される。チャネル番号によって時刻情報フレームとその他のフレームが区別される場合、受信部11は、チャネル番号フィールドの値に応じて、時刻情報フレームを受信したかを判断する。フレームサイズフィールドは、時刻情報フレームの大きさを記録する。
時刻情報データは、時刻情報とパディングを含む。なお、パディングはオプションである。時刻情報フィールドは、時刻フィールド、カウンタフィールド、シーケンス番号フィールド、ホップカウンタフィールドを備える。時刻フィールドは、時刻情報フレームを生成するノード装置10中の時刻取得部26が、時刻情報フレームに含めるためにRTC時刻情報部31から取得した時刻を記録する。ゲートウェイ70で生成された時刻情報フレームの場合、ゲートウェイ70がNTPサーバ3から取得した時刻が時刻フィールドに記録される。カウンタフィールドには、時刻取得部26が時刻カウンタ情報部32から取得したカウンタ値を記録する。ゲートウェイ70で生成された時刻情報フレームの場合、ゲートウェイ70がNTPサーバ3から取得した時刻に対応付けられたカウント値がカウンタフィールドに記録される。シーケンス番号フィールドは、何回目の時刻同期のために送受信されているかを識別する情報が格納される。シーケンス番号フィールドの値は、ゲートウェイ70のフレーム生成部94で設定される。ノード装置10は、シーケンス番号フィールドの値を変更せず、受信した時刻情報フレームに含まれている値を用いる。ホップカウンタフィールドは、ゲートウェイからのホップ数を格納する。シーケンス番号フィールドやホップカウンタフィールドの値を確認することにより、ノード装置10は、ゲートウェイ70から最短経路以外の経路で受信した時刻情報フレームを廃棄する。この場合、ノード装置10は、時刻を補正しない。動作の具体例は後述する。なお、図7は時刻情報フレームのフォーマットの一例であり、例えば、時刻情報フレームにCRCフィールドを追加するなどの変更を加えてもよい。
図8は、時刻情報フレームの送信の例を示す。図8に示すように、時刻情報フレームは、送信周期Tごとにゲートウェイ70からゲートウェイ70に隣接するノード装置10に送信されている。時刻情報フレームを受信したノード装置10は、時刻を補正した後で、隣接するノード装置10に時刻情報フレームを送信する。このようにして、周期Tごとに、アドホックネットワークに含まれるゲートウェイ70とノード装置10の全体で時刻の同期が行われる。
図9は、時刻同期の手順の例を説明する図である。以下、図9を参照しながら、図2に示すネットワークで、ゲートウェイ70から送信された第1の時刻情報フレームをノード装置10aが受信して時刻を補正し、ノード装置10aが第2の時刻情報フレームを送信する場合の例を説明する。ノード装置10bは第2の時刻情報フレームを用いて時刻を補正した後、第3の時刻情報フレームを送信するものとする。なお、図9中の括弧中の数字は、以下の手順の番号を示すものとする。
(1)ゲートウェイ70のCPU71は、NTPサーバ3にアクセスしてRTC時刻情報部96と時刻カウンタ情報部97の値を補正する。
(2)CPU71は、時刻同期の周期Tを算出する。時刻同期の周期Tは、アドホックネットワークに含まれている全てのノード装置10およびゲートウェイ70の間で、時刻のずれを許容範囲以下に抑えることができる周期である。ノード装置10間での時刻データの差は、ノード装置10が動作している周波数の偏差や、ノード装置10に搭載されているCPUで処理されるタスクの影響によって発生してしまう。しかし、時刻の同期に関する処理は、ノード装置10ではCPU50によって行われ、ゲートウェイ70ではCPU80によって行われるので、タスクの影響による時刻のずれは無視できる。そこで、CPU71は、各ノード装置10が動作する周波数の偏差によって発生する時刻のずれの大きさが許容範囲を超えないように、時刻同期の周期を決定する。例えば、発振周波数が20MHz±0.5ppm(parts per million)のクロックを用いた場合、1秒間で0.05μ秒の差が出てくる可能性がある。仮に、1秒間に0.05μ秒の差が出るとすると、差が250μ秒となるには、
250(μS)/0.05(μS/S)=5000
より、5000秒かかる。従って、発振周波数が20MHz±0.5ppmである場合に誤差範囲を250μ秒以下にするためには、5000秒に1回以上の頻度で時刻を同期すればよい。ここで、ノード装置10やゲートウェイ70では、時刻情報フレームの送信の際にメディアアドレス制御が行われないため、コリジョンが発生した場合でも時刻のずれが許容範囲を超えないように設定されることが望ましい。そこで、CPU71は、以下の式によって周期Tを求めることができる。
T=E/(e×N)
ここで、Tは時刻同期を行う周期、Eは時刻の誤差の許容範囲、eは1秒に発生する可能性がある誤差の大きさ、Nは時刻の誤差が許容範囲であると見込まれる時間以内に行う時刻同期の回数を表す。
(3)CPU71は、手順(2)で求めた周期TをタイマーIC64にセットする。CPU71は、タイマーIC64から周期Tが経過したことを通知されると、CPU80中の時刻取得部92に時刻情報の取得を要求する。
CPU71からの要求を受けると、時刻同期が行われることを予測して、CPU80は、割り込み処理を行わないために、割り込みマスクを設定する。さらに、フレーム生成部94において、ホップ数とシーケンス番号を格納しているが、時刻情報やアドレスなどの情報を含まない時刻情報フレームを生成しておく。ここで、ホップ数はゲートウェイ70を基点とするために、1が設定される。シーケンス番号は、時刻情報フレームの生成順の通し番号とする。例えば、第1の時刻情報フレームは、CPU80が初期化された後に生成する2番目の時刻情報フレームである場合、シーケンス番号は2となる。
(4)時刻取得部92は、RTC時刻情報部96と時刻カウンタ情報部97から時刻情報を取得する。時刻取得部92は、取得した時刻情報をフレーム生成部94に出力する。フレーム生成部94は、送信処理時間を記憶部98から読み出し、時刻情報が取得されてから送信処理時間が経過した時刻に第1の時刻情報フレームが送信されるように、第1の時刻情報フレームを生成して、無線送信部95に出力する。図9の例では、送信処理時間が10703カウントであるものとする。フレーム生成部94は、送信処理時間の間に、宛先アドレス(GD、LD)、送信元アドレス(GS、LS)を設定する処理、時刻情報を時刻情報データに設定する処理などを行う。
(5)無線送信部95は、第1の時刻情報フレームを、隣接するノード装置10に送信する。また、CPU80の割り込みマスクを解除して、割り込み処理を可能な状態に変更する。
(6)ノード装置10aの受信部11は、第1の時刻情報フレームを受信する。
(7)受信部11は、補正タイマー起動部21に時刻情報フレームの受信を通知する。また、受信部11は、第1の時刻情報フレームをデータ受信部12に出力する。補正タイマー起動部21は補正タイマー23を起動し、補正タイマー23は第1の時刻情報フレームの受信開始時刻からの経過時刻の計測を開始する。補正タイマー23は、μSカウンタ51を用いて経過時刻をカウントする。なお、補正タイマー23が起動される前に、既にノード装置10aが時刻情報フレームを受信していた場合、μSカウンタ51でカウントが開始されている。この場合、補正タイマー23は、μSカウンタ51のカウンタ値をRAM54に退避させる。図9の例では、既にノード装置10aが時刻情報フレームを受信しており、μSカウンタ51の値が089306572となっている。そこで、補正タイマー23は、カウンタ値089306572をRAM54に記録する。データの退避後、補正タイマー23は、μSカウンタ51のカウンタ値を0に再設定して、受信処理時間の計測を開始する。
(8)データ受信部12は、入力されたフレームにエラーがあるかを確認し、エラーが検出されなかったフレームをデータ解析部22に出力する。ここでは、第1の時刻情報フレームがデータ解析部22に出力されたものとする。
(9)データ解析部22は、フレームタイプフィールドの値が時刻情報フレームを表す値であるかを確認する。フレームタイプフィールドの値によって入力されたフレームが時刻情報フレームであることを確認すると、データ解析部22は、時刻情報フレームを用いて時刻同期を行ってもよいかを判定する。データ解析部22は、これまでに処理した時刻情報フレームのシーケンス番号のうちの最大値を記憶しており、最大値よりもシーケンス番号が大きな時刻情報フレームについては、時刻同期に用いても良いと判断する。例えば、シーケンス番号の最大値が1である場合にシーケンス番号が2の時刻情報フレームが入力されると、データ解析部22は、前回処理した時刻情報フレームよりも後に生成された時刻情報フレームを受信したと判定して、時刻同期に用いる。一方、シーケンス番号の最大値が1である場合にシーケンス番号が1の時刻情報フレームが入力されてきた場合、既に処理済の時刻情報フレームに基づくフレームを受信したと判断して廃棄する。データ解析部22は、さらに、ホップ数を用いてフレームを廃棄するかを判定することもできる。この場合、データ解析部22は予めホップ数の上限値を記憶しており、上限値を超えた時刻情報フレームを破棄する。
入力された時刻情報フレームが時刻同期に用いることができないフレームである場合、データ解析部22は時刻情報を抽出せずに、時刻同期に用いることができないフレームを受信したことを時刻補正部24に通知する。すると、時刻補正部24は、RAM54に退避させたカウント値に、補正タイマー23のカウント値を加えた値を時刻カウンタ情報部32に入力する。すなわち、時刻補正部24は、時刻補正を行わない。
入力された時刻情報フレームが時刻同期に用いることができるフレームである場合、データ解析部22は、時刻情報を取得し、時刻補正部24に出力する。図9の例では、時刻情報として、カウンタフィールドの値(00001235)を取得している。
(10)時刻補正部24は、データ解析部22から時刻情報が入力されると補正タイマー23から、受信処理時間を取得する。図9の例では、第1の時刻情報フレームが受信された時刻から、時刻情報が時刻補正部24に出力された時刻までの補正タイマー23のカウント値(012002218)が受信処理時間として取得される。また、送信処理時間は10703カウントであることを、記憶部28は記憶している。そこで、時刻補正部24は、次式から、時刻カウンタ情報部32に設定する値を求める。
α+β+γ=
(00001235)+(012002218)+(10703)
=012014156
ここで、αは時刻情報、βは送信処理時間、γは受信処理時間である。時刻補正部24は、時刻カウンタ情報部32のカウンタ値を、得られた値に変更する。また、時刻補正部24は、時刻カウンタ情報部32の変更に合わせてRTC時刻情報部31の値を変更することもできる。
(11)ノード装置10aの時刻カウンタ情報部32の値が設定されると、ノード装置10aは第2の時刻情報フレームの生成を開始する。フレーム生成部27は、ホップ数とシーケンス番号を含むが時刻情報やアドレス情報が含まれていない時刻情報フレームを生成する。ここで、ホップ数はゲートウェイ70を基点とするために、第1の時刻情報フレームのホップ数を1つインクリメントした値が設定される。シーケンス番号は、第1の時刻情報フレームのシーケンス番号が設定される。従って、ここでは、ノード装置10aのフレーム生成部27により、ホップ数=2、シーケンス番号=2が設定される。時刻取得部26は、ランダムに決定した待ち時間が経過した後、時刻カウンタ情報部32のカウンタ値を取得する。時刻取得部26は、さらに、RTC時刻情報部31の時刻情報フレームも取得する。ここでは、時刻取得部26が取得したカウンタ値は、012015156であるものとする。
(12)時刻取得部26は、取得した時刻情報をフレーム生成部27に出力する。フレーム生成部27は、時刻取得部26から入力された時刻情報やアドレス情報を設定することにより、第2の時刻情報フレームを完成させる。なお、フレーム生成部27は、時刻情報が時刻取得部26で取得された時刻から送信処理時間が経過した時刻に、第2の時刻情報フレームが送信されるように、処理を行う。
(13)時刻ずれ検出部25は、時刻補正部24で時刻情報フレームを用いて補正が行われたかを監視している。さらに、時刻ずれ検出部25は、時刻カウンタ情報部32の値が最後に補正されたときから経過した時間をカウントしている。時刻ずれ検出部25は、予め上限値を記憶しており、カウントされた値が上限値を超えると、フレーム生成部27に時刻情報フレームの生成の停止を要求する。なお、図9の例では、時刻カウンタ情報部32の値が手順(10)で補正されているので、時刻情報フレームの生成は停止されないものとする。
(14)ノード装置10aから第2の時刻情報フレームがブロードキャスト送信される。ノード装置10bは第2の時刻情報フレームを用いて時刻を補正した後、第3の時刻情報フレームを送信するものとする。
図9の例では、時刻T1にノード装置10aの時刻カウンタ情報部32のカウント値が012014156に補正されているのに対し、時刻T1でのゲートウェイ70中の時刻カウンタ情報部97のカウント値は012014155である。従って、ゲートウェイ70からブロードキャストされた第1の時刻情報フレームにより、ノード装置10aが高精度にゲートウェイ70と時刻同期されているといえる。また、ノード装置10aがブロードキャストした第2の時刻情報フレームがノード装置10bでノード装置10aの時刻情報フレームの受信処理と同様に処理されるため、ノード装置10aとノード装置10bの間でも、高精度で時刻同期される。同様に、アドホックネットワークに含まれるノード装置10の間で時刻情報フレームを送受信し、送信処理時間、受信処理時間、時刻情報の3つを用いた時刻同期が行われる。従って、本実施形態では、受信側のノード装置10で計測した受信処理時間と、固定値となっている送信処理時間が、時刻情報と共に時刻補正に用いられることにより、アドホックネットワークに含まれるノード装置10間の時刻が高精度で同期される。
図10は、CPU71の動作の例を説明するフローチャートである。ゲートウェイ70が起動されると、CPU71が初期化される(ステップS1)。CPU71は、タイマーIC64から現在時刻を取得する(ステップS2)。例えば、タイマーIC64から得られた時刻が2011/10/28 19:00:10であるとする。次に、CPU71は、NTPを用いてNTPサーバ3と同期し、取得した時刻を最新時刻とする(ステップS3)。例えば、取得された時刻が2011/10/28 19:01:10:123であれば、CPU71は、現在時刻を2011/10/28 19:00:10から2011/10/28 19:01:10:123に変更する。CPU71は、時刻同期精度Aを計算する(ステップS4)。ここで、A=E/eであり、Eは時刻の誤差の許容範囲、eは1秒に発生する可能性がある誤差の大きさであるものとする。CPU71は、時刻同期精度Aを、時刻の誤差が許容範囲であると見込まれる時間以内に行う時刻同期の回数で割ることにより、タイマー周期を求める(ステップS5)。CPU71は、時刻同期フレームを送信する周期として、タイマーに周期Tを設定する(ステップS6)。CPU71は、周期Tで発生するタイマー割り込みを待つ(ステップS6)。割り込みが発生すると、CPU71は、CPU80に時刻情報フレームの生成を要求する(ステップS7)。時刻情報フレームの生成を要求した後は、ステップS6〜S9の処理を繰り返す。
図11は、CPU80の動作の例を説明するフローチャートである。なお、図11は動作の一例であり、実装に応じて、ステップS22とステップS23の順序を変更するなどの変更が加えられる場合がある。
CPU80は、カウンタ値を初期化することにより、シーケンス番号(n)=1、マイクロカウンタのカウンタ値=0に設定する(ステップS11)。CPU80はCPU71からの割り込み処理を待つ(ステップS12)。CPU80は、割り込み処理の要求があると、CPU71から時刻情報フレームの生成を要求されたかを確認する(ステップS13)。時刻情報フレームの生成以外の割り込み処理である場合、CPU80は、要求された割り込み処理を行った後、ステップS12に戻る(ステップS13でNo、ステップS14)。時刻情報フレームの生成が要求されると、CPU80は、他の割り込み処理を受け付けないように、割り込みマスク設定する(ステップS13でYes、ステップS15)。CPU80は、補正カウンタにより、CPU71からの時刻情報フレームの生成が要求される間隔を計測している。補正カウンタのカウンタ値が時刻同期精度Aより大きいと、CPU80は、誤動作と判断し、割り込みマスクを解除した上でステップS12に戻る(ステップS16でNo、ステップS17)。一方、補正カウンタのカウンタ値が時刻同期精度A以下であると、CPU80は、時刻同期に使用する無線RF回路40の初期化と設定を行う(ステップS18)。CPU80は、時刻同期フレームフォーマットを作成する(ステップS19)。フレーム生成部94は、時刻同期フレームのホップカウンタフィールドにHopカウンタ値=1、シーケンス番号nをセットする(ステップS20)。時刻取得部92は、CPU71がステップS3で取得した時刻を取得する(ステップS21)。フレーム生成部94は、時刻取得部92が取得した時刻を時刻情報フレームの時刻フィールドに4バイトで年月日、時分秒をミリ秒単位までセットする(ステップS22)。フレーム生成部94は、時刻情報フレームのカウンタフィールドにμSカウンタの値をセットする(ステップS23)。フレーム生成部94は、ゲートウェイ70に割り当てられたアドレスをGSフィールドとLSフィールドにセットし、GDフィールドとLDフィールドにブロードキャストアドレス(0xFFFFFFFFFFFF)をセットする。フレーム生成部94は、さらに、フレームサイズなどをセットして時刻同期フレームを完成させる(ステップS24)。フレーム生成部94は、ステップS24で生成したフレームを無線RF回路40に出力し、割り込みマスクを解除する(ステップS25、S26)。さらに、フレーム生成部94は、シーケンス番号nを1つインクリメントしてステップS12に戻る(ステップS27)。
図12は、時刻情報フレームを受信したノード装置10の動作の例を説明するフローチャートである。なお、図12の例では、図9を参照しながら説明した場合と異なり、データ解析部22でCRCのチェックを行う場合について説明しているが、CRCのチェックなどはデータ受信部12で行われても良い。また、ステップS40、S42の判断の順序は変更されることがある。さらに、実装の形態やノード装置10の処理能力に応じて、ステップS42が削除される場合もある。ステップS43、S45、S46の判断の順序も実装に応じて変更される場合がある。
ノード装置10の起動の際に、CPU50が初期化される(ステップS31)。このとき、データ解析部22は、受信した時刻情報フレームに含まれるシーケンス番号の最大値を0に設定し、ホップ数の履歴に関するデータも0に初期化する。また、データ解析部22は、ホップ数の上限値や時刻同期精度Aの設定、計算等を行う。以下の説明では、ホップ数の上限は、データ解析部22が、初期化の際にROM53から読み出しているものとし、ホップ数=20とする。次に、ノード装置10は、無線RF回路40を初期化する(ステップS32)。補正タイマー起動部21とデータ解析部22は、受信部11でのフレームの受信をトリガとする割り込みを設定する(ステップS33)。ノード装置10は、無線RF回路40でフレームを受信するまで待機する(ステップS34)。受信部11でフレームが受信されると、補正タイマー起動部21は、補正タイマー23を起動する。補正タイマー23は、カウンタ値(μSカウンタ51のカウンタ値)を退避させ、リセットする(ステップS35〜S37)。補正タイマー23は、リセット後にカウントを再開することにより受信処理時間の計測を開始する。データ解析部22は、受信したフレームをメモリに展開し、解析を行う(ステップS38、S39)。データ解析部22は、CRCをチェックし、異常が発見されるとフレームを破棄してステップS33へ戻る(ステップS40でNo、ステップS41)。CRCのチェック結果が正常である場合、データ解析部22は、データ解析部22は、フレームの宛先アドレスをチェックし、フレームが自ノード宛のフレーム、または、ブロードキャストフレームであるかを確認する(ステップS42)。フレームが自ノード宛のフレームではなく、ブロードキャストフレームでもなければ、データ解析部22はフレームを破棄してステップS33に戻る(ステップS42でNo、S41)。一方、フレームが自ノード宛のフレーム、または、ブロードキャストフレームのいずれかである場合、データ解析部22は、フレームタイプフィールドの値をチェックする(ステップS43)。フレームタイプフィールドの値から時刻情報フレームであることを確認すると、データ解析部22は、ホップ数が上限値以下であるかを確認する(ステップS43でYes、ステップS44)。ホップ数が上限値以下である場合、データ解析部22は、シーケンス番号フィールドの値を読み出し、これまでに処理した時刻情報フレームのシーケンス番号の最大値と比較する(ステップS45)。ここで、
(読み出したシーケンス番号)>(処理済のフレームのシーケンス番号の最大値)
であれば、データ解析部22は、解析中の時刻情報フレームを時刻補正に用いても良いと判断し、シーケンス番号とホップカウンタ値をRAM54に格納する(ステップS46でYes、ステップS47)。さらに、データ解析部22は、時刻情報を時刻情報フレームから抽出して時刻補正部24に出力する。時刻補正部24は、補正タイマー23の現在値を読み出すことにより、受信処理時間を求める(ステップS48)。時刻補正部24は、時刻情報フレームから得られた時刻情報に、受信処理時間と固定値として記憶している送信処理時間を加えた値を補正値とする。時刻情報がカウンタ値である場合、送信処理時間に相当するカウンタ数、補正タイマー23のカウント値、時刻情報フレームのカウンタフィールドの値の合計値を計算する(ステップS49)。時刻補正部24は、時刻カウンタ情報部32に得られたカウンタ値を設定することにより時刻情報フレームを設定する(ステップS50)。また、時刻補正部24は、時刻カウンタ情報部32の変更量に合わせて、RTC時刻情報部31も補正する。一方、ステップS43、S44、S46のいずれかでNoと判定された場合、ステップS36で退避したカウンタ値に補正タイマー23の現在の値を加算した値をμSカウンタ51に設定する(ステップS51、S50)。
図13は、時刻情報フレームを送信する際のノード装置10の動作の例を説明するフローチャートである。なお、ステップS64はオプションとすることができる。時刻情報フレームの生成の開始に際して、時刻取得部26は、他の処理による不測の遅延を避けるため、CPU50の割り込みマスクを設定する(ステップS61)。フレーム生成部27は、各フィールドの情報が含まれていない時刻情報フレームを作成する(ステップS62)。フレーム生成部27は、RAM54に格納されているホップ数を1つインクリメントした値をホップカウンタフィールドの値とし、RAM54に格納されているシーケンス番号をシーケンス番号フィールドに設定する(ステップS63)。なお、ステップS63で使用しているホップ数とシーケンス番号の値は、図12のステップS47で格納された値である。ノード装置10は、他のノード装置10と同時に時刻情報フレームを受信した場合に、同じタイミングで時刻情報フレームを送信してしまうことを避けるため、時刻の取得をランダム時間待つ。例えば、時刻取得部26は、0〜1000の間でランダム値を発生させ、得られたランダム値に対応する時間の間、待機する(ステップS64)。
待機時間が経過すると、時刻取得部26は、RTC時刻情報部31から現在時刻を年月日時分秒ミリ秒まで読み出し、さらに、時刻カウンタ情報部32のカウンタ値も読み出す(ステップS65〜S67)。時刻取得部26は、得られた時刻情報をフレーム生成部27に出力し、フレーム生成部27は、入力された時刻情報を、時刻情報フレームの時刻フィールドとカウンタフィールドに記録する(ステップS68)。フレーム生成部27は、アドレス情報、フレームサイズなどの値を設定して、時刻情報フレームを完成させる(ステップS69)。時刻ずれ検出部25は、RTC時刻情報部31および時刻カウンタ情報部32が最後に補正された時刻から経過した時間を計測しており、経過時間が時刻同期精度Aを超えると、フレーム生成部27に対して時刻情報フレームの生成の停止を要求する。フレーム生成部27は、生成したフレームを送信部13に出力する前に、時刻ずれ検出部25から時刻情報フレームの生成の停止が要求されているかを確認する(ステップS70)。時刻情報フレームの生成の停止が要求されていない場合、フレーム生成部27は、送信部13を介して時刻情報フレームを送信する(ステップS70でYes、ステップS71)。フレーム生成部27は、CPU50への割り込みマスクを解除する(ステップS72)。一方、ステップS70で時刻情報フレームの生成の停止が要求されていることが確認されると、フレーム生成部27は、時刻情報フレームを廃棄して、CPU50への割り込みマスクを解除する(ステップS70でNo、ステップS72)。なお、ステップS65〜S71の処理は、予め決められている送信処理時間で行われる。
時刻同期の誤差要因として、(a)伝搬遅延によるゆらぎ、(b)受信信号の歪みによって生じる誤差、(c)計算処理によって生じる誤差、(d)無線のメディアアクセス制御による遅延のゆらぎが挙げられる。ノード装置10とゲートウェイ70では、時刻情報フレームの生成を行うCPU50、80を、他の処理を行うCPU60、71と別にし、さらに、時刻情報フレームの送信処理の間は、CPU50、80での割り込み処理をマスクしている。そのため、時刻情報が取得されてから時刻情報フレームが送信されるまでの処理での計算処理によって生じる誤差を解消し、総マシンサイクルを固定値(送信処理時間)に設定することができる。さらに、図1にも示すように、時刻情報フレームを受信したノード装置10は、フレームの受信開始から、時刻情報フレーム中の時刻情報を取得するまでの時間を、受信処理時間として計測している。ノード装置10は時刻情報に送信処理時間と受信処理時間を加えた値を用いて、時刻を補正するため、時刻情報フレームの送信元と受信先のノード装置10の間では、計算処理による誤差は発生しない。
さらに、ゲートウェイ70とノード装置10は、いずれも、CSMAなどの無線メディアアクセス制御を行わない。従って、複数の時刻情報フレームが同時に送信された場合にコリジョンを避けるための待ち時間など、CPU50やCPU80で把握することができない待ち時間は発生しない。このため、ノード装置10とゲートウェイ70を用いたネットワークでは、無線のメディアアクセス制御による遅延のゆらぎも解消されている。
ノード装置10とゲートウェイ70を用いたネットワークでも、伝搬遅延によるゆらぎと受信信号の歪みによって生じる誤差については、予測ができない。しかし、伝搬遅延によるゆらぎや受信信号の歪みによって生じる誤差は、他の要因によって発生する時刻の誤差の大きさに比べて非常に小さく、無視することができる。このため、ノード装置10とゲートウェイ70を用いたネットワークでは、高い精度で時刻同期をすることができる。
また、図3、図4などに示したように、ノード装置10とゲートウェイ70のいずれも、汎用の部品を組み立てて製造することができる。このため、ノード装置10やゲートウェイ70は、カスタマイズされたハードウェアを用いている装置に比べて、他の装置との間の互換性が高い。さらに、汎用部品を使用できるため、製造コストを低く抑えることができ、ハードウェアのカスタマイズを行わない分の時間だけ早く製造することができる。
さらに、ノード装置10とゲートウェイ70を用いたネットワークで行われる時刻同期の方法は、RBSなどの計算方法と異なり、アドホックネットワークに含まれるノード装置10の数が演算等に影響しない。このため、ノード装置10とゲートウェイ70は、大規模なアドホックネットワークの形成に用いることも可能である。また、時刻同期のために時刻情報フレーム以外のフレームを送受信しないため、ノード装置10とゲートウェイ70のいずれでも、GPSやTPSNにより時刻同期をする装置に比べて、時刻同期のための消費電力を抑えることができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図14に、ノード装置10のハードウェア構成の変形例を示す。図14の例では、ノード装置10は、アンテナ14を1つ備えており、時刻情報フレームとその他のデータのいずれも同じアンテナ14から送信される。この場合、時刻情報フレームの生成から時刻情報フレームの送信が終了するまでの間、CPU50は割り込みを禁止するため、時刻情報フレーム以外のフレームは送信されない。従って、図3に示すノード装置10が用いられるシステムに比べて、ノード装置10からのセンタサーバ1へのデータの送信が遅れる可能性がある。しかし、ノード装置10が複数のアンテナ14や無線RF回路44を備えなくても良いため、ノード装置10を小型化でき、ノード装置10の製造コストを下げることができる。
図7に示した時刻情報フレームのフレームフォーマットは一例であり、実装に応じて、時刻情報フレームに含まれる情報要素は変更される場合がある。例えば、時刻フィールドとカウンタフィールドの両方が時刻情報データに含まれている場合を例として実施形態を説明したが、時刻情報フレームは、時刻フィールドとカウンタフィールドのいずれか一方を備えるように変形されても良い。この場合、絶対時間とカウンタ値のいずれか一方を用いて時刻の補正値が計算される。
図3、図4は、ノード装置10およびゲートウェイ70のハードウェア構成の例であり、実装に応じて変更される場合がある。例えば、CPU50、CPU60、CPU71、CPU80のいずれか1つ以上に任意の数のフラッシュメモリが接続されていても良い。
ノード装置10のRTC時刻情報部31、時刻カウンタ情報部32はCPU50によって実現される場合を例として、以上の説明を行ったが、RTC時刻情報部31と時刻カウンタ情報部32はCPU60に含まれていても良い。この場合、時刻取得部26は、時刻を取得する際に、CPU60にアクセスすることにより、RTC時刻情報部31、時刻カウンタ情報部32から時刻情報を取得する。同様に、RTC時刻情報部96と時刻カウンタ情報部97も、CPU80に含まれても良く、また、CPU71に含まれても良い。
1 センタサーバ
2 ネットワーク
3 NTPサーバ
10 ノード装置
11 受信部
12 データ受信部
13 送信部
14 アンテナ
21 補正タイマー起動部
22 データ解析部
23 補正タイマー
24 時刻補正部
25 時刻ずれ検出部
26、92 時刻取得部
27、94 フレーム生成部
28、98 記憶部
30、93 時刻計測部
31、96 RTC時刻情報部
32、97 時刻カウンタ情報部
40、44 無線RF回路
41 RFインタフェース
42 ベースバンド処理回路
43 MAC処理部
50、60、71、80 CPU
51 μSカウンタ
52、63 高精度クロック
53、61 ROM
54、62 RAM
64 タイマIC
65 有線MAC処理回路
66 有線PHYチップ
95 無線送信部

Claims (4)

  1. 時刻を計測する時刻計測部と、
    前記時刻の補正に使用する時刻情報を含むフレームである時刻情報フレームを受信する受信部と、
    前記時刻情報フレームの送信元ノード装置が前記時刻情報を取得する時刻から前記時刻情報フレームを送信する時刻までの時間である送信処理時間を固定値として記憶している記憶部と、
    前記時刻情報フレームを受信する時刻から、前記時刻情報を前記時刻情報フレームから取得する時刻までの時間である受信処理時間を計測するタイマーと、
    前記時刻情報に、前記固定値と前記受信処理時間を加えた値を、前記時刻計測部に設定することにより前記時刻計測部で計測される時刻を補正する時刻補正部と、
    前記受信部で受信された時刻情報フレームに含まれている時刻情報を用いて前記時刻が補正された後に、前記時刻計測部で計測された時刻を表す他の時刻情報を取得する時刻取得部と、
    前記時刻取得部が取得した他の時刻情報を含む時刻情報フレームを、前記時刻取得部が時刻情報を取得した時刻から前記固定値で表される時間が経過した時刻に送信されるように生成するフレーム生成部と、
    前記他の時刻情報を含む時刻情報フレームを送信する送信部と、
    前記時刻が補正されてから経過した時間である経過時間を計測し、前記経過時間がネットワーク中で許容される誤差の大きさの関数として決定された閾値を超えたことを検出すると、前記フレーム生成部に、前記他の時刻情報を含む時刻情報フレームの生成の停止を要求する時刻ずれ検出部
    を備えることを特徴とするノード装置。
  2. 物理量を測定するセンサーと、
    前記送信部と前記受信部とは異なる送信部と受信部を有する無線処理部と、
    前記時刻計測部、前記タイマー、前記時刻補正部、前記時刻取得部、および、前記フレーム生成部を構成する第1の処理回路と異なる第2の処理回路をさらに備え、
    前記第2の処理回路は、前記センサーで測定された物理量を処理し、
    前記無線処理部は、前記第2の処理回路で処理されたデータを送受信する
    ことを特徴とする請求項に記載のノード装置。
  3. 複数のノード装置が含まれるネットワーク中のノード装置における時刻同期方法であって、
    時刻を計測し、
    前記時刻の補正に使用する時刻情報を含むフレームである時刻情報フレームを送信元のノード装置から受信し、
    前記送信元のノード装置が前記時刻情報を取得する時刻から前記時刻情報フレームを送信する時刻までの時間である送信処理時間を、固定値として記憶し、
    前記時刻情報フレームを受信する時刻から、前記時刻情報を前記時刻情報フレームから取得する時刻までの時間である受信処理時間を計測し、
    前記時刻情報に、前記固定値と前記受信処理時間を加えた値を、計測される時刻に設定することにより、前記複数のノード装置の時刻を同期させ
    受信した時刻情報フレームに含まれている時刻情報を用いて前記時刻が同期された後に、計測している時刻を表す他の時刻情報を取得し、
    前記他の時刻情報を含む時刻情報フレームを、前記他の時刻情報を取得した時刻から前記固定値で表される時間が経過した時刻に送信されるように生成し、
    前記他の時刻情報を含む時刻情報フレームを送信し、
    前記時刻が補正されてから経過した時間である経過時間を計測し、前記経過時間がネットワーク中で許容される誤差の大きさの関数として決定された閾値を超えたことを検出すると、前記他の時刻情報を含む時刻情報フレームの生成を停止する
    ことを特徴とする時刻同期方法。
  4. 前記複数のノード装置は、
    物理量を測定するセンサーと、
    前記送信元のノード装置から送信された時刻情報フレームを受信する受信部および前記他の時刻情報を含む時刻情報フレームを送信する送信部とは異なる送信部と受信部を有する無線処理部と、
    前記時刻の計測、前記受信処理時間の計測、前記時刻の同期、前記他の時刻情報の取得、および、前記他の時刻情報を含む時刻情報フレームの生成を行う第1の処理回路と異なる第2の処理回路をさらに備えており、
    前記時刻同期方法は、
    前記第2の処理回路が、前記センサーで測定された物理量を処理し、
    前記無線処理部が、前記第2の処理回路で処理されたデータを送受信する
    ことを特徴とする請求項に記載の時刻同期方法。
JP2013551158A 2011-12-28 2011-12-28 ノード装置および時刻同期方法 Expired - Fee Related JP5804086B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/080516 WO2013099026A1 (ja) 2011-12-28 2011-12-28 ノード装置および時刻同期方法

Publications (2)

Publication Number Publication Date
JPWO2013099026A1 JPWO2013099026A1 (ja) 2015-04-30
JP5804086B2 true JP5804086B2 (ja) 2015-11-04

Family

ID=48696584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013551158A Expired - Fee Related JP5804086B2 (ja) 2011-12-28 2011-12-28 ノード装置および時刻同期方法

Country Status (3)

Country Link
US (1) US8891716B2 (ja)
JP (1) JP5804086B2 (ja)
WO (1) WO2013099026A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9693325B1 (en) * 2014-10-21 2017-06-27 The United States Of America, As Represented By The Secretary Of The Navy Method and apparatus for hybrid time synchronization based on broadcast sequencing for wireless ad hoc networks
US9651984B2 (en) * 2014-12-15 2017-05-16 Cisco Technology, Inc. Feed-forward time transfer mechanism for time synchronization
US9395748B1 (en) * 2015-03-06 2016-07-19 Arista Networks, Inc. Method and system for time synchronization in a network device
US9759636B2 (en) * 2015-03-27 2017-09-12 Aktiebolaget Skf Synchronized measurements for a portable multi-channel wireless sensor system
JP6612526B2 (ja) * 2015-05-14 2019-11-27 日本電気通信システム株式会社 時刻同期制御装置、時刻同期制御システム、時刻同期制御方法、及び、時刻同期制御プログラム
US10317511B2 (en) * 2016-11-15 2019-06-11 Veoneer Us, Inc. Systems and methods for synchronizing processor operations over a communications network
JP7073920B2 (ja) * 2018-06-04 2022-05-24 日本電信電話株式会社 時刻付与方法、時刻付与装置及びプログラム
JP6843308B2 (ja) * 2018-09-20 2021-03-17 株式会社日立国際電気 無線通信システム及び無線通信装置
JP2020072334A (ja) * 2018-10-30 2020-05-07 セイコーエプソン株式会社 センサーデータ処理システム及びセンサーデータ同期システム
US11392167B2 (en) 2019-03-11 2022-07-19 Hewlett Packard Enterprise Development Lp Device clock setting while booting a device
US12073254B2 (en) 2020-02-20 2024-08-27 Analog Devices International Unlimited Company Real time sense and control using embedded instruction timing
JP7280849B2 (ja) * 2020-03-19 2023-05-24 株式会社日立製作所 ログ統合装置、ログ統合システムおよびログ統合方法
CN115776709A (zh) * 2021-09-07 2023-03-10 本田技研工业株式会社 无线通信系统、装置及其控制方法、车辆、存储介质
US11849416B1 (en) * 2021-11-30 2023-12-19 Synapse Wireless, Inc. Methods and systems for coordinating nodes in a mesh network
US12185144B1 (en) 2024-07-02 2024-12-31 Xtremis, Inc. Trigger based distributed wireless signal capture

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0983608A (ja) * 1995-09-20 1997-03-28 Toshiba Corp 時刻同期装置
US6661811B1 (en) * 1999-02-12 2003-12-09 Koninklijke Philips Electronics N.V. Method of and apparatus for communicating isochronous data
JP2006093967A (ja) * 2004-09-22 2006-04-06 Matsushita Electric Ind Co Ltd ネットワークシステム
US7860125B2 (en) * 2008-01-28 2010-12-28 Cisco Techology, Inc. Flexible time stamping
CN102388375B (zh) 2009-04-10 2015-09-09 欧姆龙株式会社 网络终端、网络系统、以及时刻同步方法
CN102415057B (zh) 2009-07-27 2014-12-31 富士通株式会社 节点装置及帧发送方法

Also Published As

Publication number Publication date
JPWO2013099026A1 (ja) 2015-04-30
WO2013099026A1 (ja) 2013-07-04
US20140301513A1 (en) 2014-10-09
US8891716B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
JP5804086B2 (ja) ノード装置および時刻同期方法
JP3993508B2 (ja) 無線アクセスネットワークシステム、無線通信方法、同期サーバ及びノード装置
US7191354B2 (en) Method for synchronizing a first clock to a second clock, processing unit and synchronization system
JP5358813B2 (ja) ネットワークノード、時刻同期方法及びネットワークシステム
JP5458719B2 (ja) クロック同期システムと通信装置と方法とプログラム
JP6649475B2 (ja) 無線通信システム、無線端末及び時刻同期方法
JP6527289B2 (ja) 時刻同期方法、センサ収容端末、およびセンサネットワークシステム
JP2010541298A (ja) センサネットワークにおける時間同期に関する方法及びシステム
CN105610652B (zh) 数据传输延时的获取方法和装置
JPWO2018123857A1 (ja) センシングシステム及び時刻同期方法
JP6058713B2 (ja) 時刻同期方法および時刻同期装置
JP7107393B2 (ja) モニタリングシステム、および同期方法
EP3541123A1 (en) Wireless device, wireless device processing method, and program
JP2016116143A (ja) 時刻同期監視方法、通信システム、及びマスタ装置
EP2451100B1 (en) Apparatus and method for synchronizing wireless devices
JP6254028B2 (ja) スレーブノード及び時刻同期方法
US11445341B2 (en) Dynamic weighing device
JP5605096B2 (ja) ノード装置、時間同期システムおよび時間同期方法
WO2013069176A1 (ja) 送信装置、送信方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP6385849B2 (ja) 時刻同期方法および時刻同期装置
WO2015033532A1 (ja) 時刻同期システム
JP2014116672A (ja) 中継装置および中継方法
US10374735B2 (en) Communication system, communication system control method, transmission device, and reception device
JP6834791B2 (ja) 無線通信装置、無線情報収集システム、及び無線通信方法
US20160128012A1 (en) Communication system, communication system control method, transmission device, and reception device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150518

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150817

R150 Certificate of patent or registration of utility model

Ref document number: 5804086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees