以下、実施形態に係る情報通信システムについて、図1〜図11を用いて説明する。
[1.第1実施形態]
[1−1.構成]
図1は、第1実施形態に係る情報通信システムの模式図である。図2は、第1実施形態に係る情報通信システムを構成する情報通信装置の機能ブロック図である。
本実施形態に係る情報通信システム100は、複数の情報通信装置1からなり、各装置が情報通信により同期を図る。マスター装置となる情報通信装置1に対し、スレーブ装置となる情報通信装置1が同期する。マスター装置とは、情報通信システム100において他の情報通信装置1と同期される対象となる情報通信装置1である。スレーブ装置とは、情報通信システム100においてマスター装置である他の情報通信装置1に対して同期する情報通信装置1である。マスター装置からスレーブ装置への同期を図るための同期情報の送受信を介してスレーブ装置がマスター装置に同期する。
以下では、マスター装置となる情報通信装置1をマスター装置1aとし、スレーブ装置となる情報通信装置1をスレーブ装置1bとする。
マスター装置1aとスレーブ装置1bは、有線又は無線で情報を通信する。無線の通信としては、無線LAN、Bluetooth(登録商標)を用いることができる。ここでは、情報通信装置1は、無線で情報を送信及び受信することで同期を図る例を説明する。
また、以下では、マスター装置1aとスレーブ装置1bは、共通の構成を有するとして説明するが、例えば、マスター装置1aからスレーブ装置1bへの一方向の通信のみを行う場合、送信を行うマスター装置1aは、受信を行うための後述する受信器12、受信タイミング検出部14は必ずしも必要ではなく、受信を行うスレーブ装置1bは、送信を行うための後述する送信器11、送信タイミング検出部13は必ずしも必要ではない。
(情報通信装置)
情報通信装置1は、コンピュータを含み構成されており、プログラムをHDDやSSD等に記憶しており、CPUで処理することにより、後述する制御部において必要な演算を行う。
具体的には、情報通信装置1は、通信部10、クロック20、時計30、記憶部40、制御部50、外部インターフェイス70を有する。例えば、通信部10、クロック20、時計30、記憶部40、制御部50及び外部インターフェイス70は、ハードウェアとして構成される。制御部50はソフトウェアとして構成しても良い。制御部50のどの部分をソフトウェアとして構成するかは適宜設計変更可能である。
通信部10は、他の装置1との間で情報を送受信する。通信部10は、送信器11、受信器12、送信タイミング検出部13、受信タイミング検出部14を有する。
送信器11は、入力された情報を送信する機器である。具体的には、送信器11は、情報を最小構成要素に時系列に分解の上、当該情報を外部へ送信する。情報のパケット長(通信情報量)は任意であり、通信毎に異なっていても良い。
受信器12は、外部から情報を受信する機器である。具体的には、受信器12は、装置1外部から受信した、最小構成要素に時系列に分解された情報を再構成し、装置1内の他の構成へ出力する。
なお、図2に示すように、送信器11及び受信器12にそれぞれアンテナを設けても良いし、1本のアンテナを、切り替えスイッチを介して設けても良い。送信器11と受信器12は、何れか一方が動作している間は他方は動作させないようにしても良いし、双方を同時に動作させても良い。
送信タイミング検出部13は、送信器11により送信される情報の所定情報要素位置の送信タイミングを検出する。この送信タイミングは、後述のクロック20のクロック周期をベースとして検出される。つまり、送信タイミングは、クロック周期の整数倍として表現される。
また、送信タイミング検出部13は、その検出結果を装置1内の他の構成へ出力する。ここにいう情報とは、例えばパケットであり、この場合、所定情報要素位置とは、ビット位置である。例えば、送信タイミング検出部13は、情報が8個の最小構成要素に時系列に分解される場合、3番目の情報要素位置(ビット位置)が送信されるタイミングを検出し、3番目の情報要素位置(ビット位置)が送信されたタイミングを外部へ出力する。
受信タイミング検出部14は、受信器12により受信される情報の所定情報要素位置の受信タイミングを検出する。この受信タイミングは、後述のクロック20のクロック周期をベースとして検出される。つまり、受信タイミングは、クロック周期の整数倍として表現される。
また、受信タイミング検出部14は、その検出結果を装置1内の他の構成へ出力する。例えば、受信タイミング検出部14は、情報が8個の最小構成要素に時系列に分解される場合、3番目の情報要素位置(ビット位置)が受信されるタイミングを検出し、3番目の情報要素位置(ビット位置)が受信されたタイミングを外部へ出力する。
なお、上記の送信タイミング及び受信タイミングの例では、何れも同じ最小構成要素の位置を検出することとしたが、例えば、送信機となる情報通信装置1の送信タイミング検出部13は5番目の要素を検出し、受信機となる情報通信装置1の受信タイミング検出部14は8番目の要素を検出するなど、送受信する装置1間において各タイミング検出で所定関係(例えば間隔(ここでは3つ))を保つのであれば、必ずしも同じ位置を検出しなくても良い。
クロック20は、所定の周波数を発振し、装置1各部の動作タイミングを与えるための信号を出力する。これにより、装置1内の各部は、クロック20に同期して動作する。このクロック20は、固有の有限な発振周波数許容偏差を有する。つまり、クロック20は、所定の発振周波数(例えば10MHz)に対する誤差(例えば20ppm)を有する。クロック20としては、例えば、水晶振動子などの周波数固定の発振器を用いることができる。
クロック20は、マスター装置1aとスレーブ装置1bとで公称周波数が同じでも、実際には個体差が存在する。すなわち、マスター装置1aとスレーブ装置1bのクロック20の周波数間には周波数偏差が存在する。
時計30は、クロック20の出力信号を源振として刻時し、相対的な時刻を出力する。時計30の相対的な時刻の出力は、例えば外部からの要求に応じて行う。
記憶部40は、HDD、SDD、メモリ、レジスタなどの記録媒体である。記憶部40は、制御部50で演算を行うのに必要な情報が記憶され又は記憶する。後述の受信タイミング又は受信タイミングに対応する時計30の時刻は、CPU又はソフトウェアを介さず、ハードウェアのみのアクセスで保持できる記録媒体に保持すると良い。ソフトウェアに起因するジッターを排除できるからである。なお、送受信タイミングと時刻との対応付けにおいてソフトウェアのジッターを受けないことが重要であり、送受信タイミングと時刻とが対応付けられた後は、低速なアクセス領域に記憶されても良い。ここでは、記憶部40としてのメモリは、任意の情報を入出力し、当該情報を指定された記憶領域へ記憶する。情報の記憶は、外部からの記憶要求により行われるが、その際に記憶する情報と記憶領域が入力される。情報の参照は、外部からの参照要求により行われるが、その際に参照情報の記憶領域が入力され、その入力により指定された記憶領域の情報を出力する。情報の記憶の保持は、本装置の動作中のみであっても、動作停止時も含めて永続的であっても良い。
スレーブ装置1bの記憶部40は、マスター装置1aと直前に同期した同期タイミングを記憶する。すなわち、この記憶部40は、後述の時刻記録部54が時計30を参照し、当該同期タイミングに対応する時計30の時刻を記憶する。
外部インターフェイス70(以下、外部I/F70ともいう。)は、本装置1内部と外部を接続し、任意の情報を入出力する。情報としては、例えば送受信データや時計30の時刻である。外部I/F70は、例えば、記憶部40に記憶させる情報を外部から取得する。また、外部I/F70は、受信タイミング検出部14により検出した受信タイミングから送信タイミング検出部13が検出する送信タイミングまでの時間を外部から取得し、当該時間を後述するスケジューラ55で用いてもよい。
図3は、制御部50の機能ブロック図である。制御部50は、本装置1各部の動作全般を制御する。制御部50は、マスター装置1aとスレーブ装置1bとで共通する構成と異なる構成がある。マスター装置1aにはスレーブ装置1b特有の構成は不要であり、また、スレーブ装置1bには、マスター装置1a特有の構成は不要である。但し、1つの情報通信装置1でマスター装置1aとしての機能とスレーブ装置1bとしての機能の両方を有していても良い。例えば、2つの情報通信装置1間でマスター装置1aとしての立場、スレーブ装置1bとしての立場が逆転しても良い。また、1つの情報通信装置1が他の情報通信装置1との関係ではマスター装置1aとして機能し、別の情報通信装置1(マスター装置1a)との関係ではスレーブ装置1bとして機能しても良い。
(マスター装置の制御部)
マスター装置1aの制御部50は、主制御部51、送受信データI/F52、通信制御部53、時刻記録部54、スケジューラ55を有する。
主制御部51は、制御部50内の各部と連携されており、制御部50内の各部の動作を統制する。送受信データI/F52は、記憶部40や外部I/F70の情報を装置1外部へ送受信可能な形式にする。また、送受信データI/F52は、装置1外部から受信した情報を制御部50及び記憶部40に適した形式にする。
通信制御部53は、通信部10の動作を統制する。通信制御部53は、通信部10と制御部50との間で送受信情報の入出力をする。
時刻記録部54は、受信タイミング検出部14により受信された情報の所定情報要素位置の受信タイミングと、当該受信タイミングにおける時計30の時刻とを対応付けて、メモリに記憶させる。この対応付けは、例えば、時刻記録部54が、受信タイミング検出部14から、受信された情報の所定情報要素位置の受信タイミングが検出された旨の信号を受けて、時計30の時刻を参照し、当該時刻と受信タイミングとを対応付ける。また、時刻記録部54は、受信タイミングに対応する時刻を、当該受信する情報に載せる時刻付加部でもある。時刻記録部54は、受信と同様に、送信タイミング検出部13により送信された情報の所定要素位置の送信タイミングと、当該送信タイミングにおける時計30の時刻とを対応付けて、メモリに記憶させる。
このように、本実施形態において、「時刻」は、情報の所定情報要素位置の検出された送信タイミング又は受信タイミングに対応する時計30の時刻をいい、「時間」は、当該時刻の差分をいう。
スケジューラ55は、予め設定されたスケジュールで送信器11に情報を送信させる。例えば、スケジューラ55は、一定間隔で同期情報を送信器11に送信させる。スケジューラ55は、情報を受信してから送信するまでのスケジュールを管理する。すなわち、スケジューラ55は、予め設定された受送信間隔で情報を送信する。スケジューラ55は、外部I/F70を介して、情報の送信間隔又は受送信間隔を変更しても良い。
(スレーブ装置の制御部)
スレーブ装置1bの制御部50は、主制御部51、送受信データI/F52、通信制御部53、時刻記録部54、受信間隔演算部56、同期タイミング推定部60を有する。各部51〜54については、マスター装置1aの各部51〜54と同じ構成であるので、説明は省略する。
受信間隔演算部56は、マスター装置1aから受信された同期情報の受信タイミングの間隔である受信間隔を求める。この受信タイミングは、受信タイミング検出部14により検出されたタイミングであり、時刻記録部54により時刻として記憶部40に記憶されている。すなわち、受信間隔演算部56は、時系列で隣接する受信タイミングの時刻を記憶部40から読み出し、各時刻の差分を演算することで受信間隔を求める。マスター装置1aからは同期情報が一定間隔で受信されており、受信間隔演算部56は、隣接する同期情報の受信タイミングから、複数の受信間隔を求める。求めた受信間隔は記憶部40で記憶される。
この受信間隔演算部56は、受信間隔をクロック20のクロック周期数として求める。つまり、受信間隔演算部56は、クロック20のクロック周期を最小単位としてクロック周期の整数倍として受信間隔を求める。受信間隔演算部56は、時系列で隣接する受信タイミングの時刻の差分が実数であったとしても、その実数の整数部を受信間隔とする。換言すれば、当該差分の実数の小数部は切り捨てる。例えば、当該差分がクロック周期の10.5個分であったとして、受信間隔はクロック周期の10個分とする。
同期タイミング推定部60は、直前に同期した同期タイミングの次に同期する次回の同期タイミングを推定する。
この同期タイミング推定部60は、直線演算部60a、受信間隔推定部60b、受信間隔補正部60c、及び同期タイミング算出部60dを有する。直線演算部60aは、縦軸を受信間隔とし、横軸を受信間隔のサンプル数としたとき、直前の受信間隔から変化のあった複数の受信間隔のうちの少なくとも二点を通る傾きが最大となる直線式を求める。具体的に図4を用いて説明する。
図4は、縦軸を受信間隔とし、横軸を受信間隔のサンプル数とした受信間隔のグラフである。格子点上の黒丸は、受信間隔演算部56により求めた受信間隔をグラフ上にプロットしたものである。グラフの格子点は横軸の値も縦軸の値も整数である。「直前の受信間隔から変化のあった受信間隔」(単に「変化受信間隔」という。)とは、対象の受信間隔とその1つ前のサンプルの受信間隔との差分がゼロでない受信間隔である。図4では、変化受信間隔は、階段状にプロットされた受信間隔のうち、傾きが正の場合は、一段上がった点線で囲まれる点であり、傾きが負の場合は一段下がる前の点線で囲まれる点である。
直線演算部60aは、複数の変化受信間隔のうちの二点を通る傾きd/pの直線のうち、pが最大となる傾きd/pを求め、当該二点を通る当該傾きd/pの直線式を求める。pは当該二点間の横軸の間隔であり、dは当該二点間の縦軸の間隔である。この直線式で表される直線は、図4に示すように、少なくとも二点の受信間隔が当該直線上に位置し、他の大部分の受信間隔が当該直線上の位置かそれより下側に位置する直線である。このように求めた直線式で表される直線は、理想的には、少なくとも二点の受信間隔が当該直線上に位置し、他の全ての受信間隔が当該直線上の位置かそれより下側に位置する直線である。
直線演算部60aは、直線式を求めるための複数の変化受信間隔を、所定の期間で得られた受信間隔から抽出する。例えば、受信間隔が単調増加する期間や、受信間隔が単調減少する期間から抽出する。図4に示すように、受信間隔が単調増加する期間から複数の変化受信間隔を抽出して直線演算部60aが直線式の傾きが正の直線式を求めた後、受信間隔が単調減少する場合には、それまでの受信間隔をリセットし、受信間隔が単調減少する期間から複数の変化受信間隔を抽出し、傾きが負の直線式を求める。
受信間隔推定部60bは、直線演算部60aで求めた直線式上における次回の受信間隔を求める。この次回の受信間隔は、時系列上の最後に求めた受信間隔の次の受信間隔であり、受信間隔の推定値である。言い換えると、次回の受信間隔は、次に受信するであろう同期情報の受信タイミングと、その直前に検出された受信タイミングとの間隔である。この次回の受信間隔は、例えば、直線式を求めるための受信間隔のサンプル数が10である場合、11個目の受信間隔である。次回の受信間隔は実数である。
受信間隔補正部60cは、受信間隔推定部60bで求めた推定値である次回の受信間隔の小数部を四捨五入することにより補正し、この補正した受信間隔を次回の受信間隔とする。推定値である次回の受信間隔は、実数であり、例えば10.5の場合は、次回の受信間隔を11とし、10.3の場合は、次回の受信間隔を10とする。
同期タイミング算出部60dは、次回の同期タイミングを求める。具体的には、同期タイミング算出部60dは、記憶部40を参照して、直前に同期したタイミングを読み出し、受信間隔補正部60cにより求めた次回の受信間隔とから、次回の同期タイミングを求める。より詳細には、直前に同期したタイミングに、受信間隔補正部60cにより求めた次回の受信間隔を加算することにより次回の同期タイミングを算出する。
[1−2.作用]
本実施形態の情報通信システム100の作用について説明する。マスター装置1aのクロック20とスレーブ装置1bのクロック20は、公称周波数が同じでも、個体差により実際には周波数偏差が存在する。また、同期情報の送受信タイミングは、各装置1a、1bのクロック周期の数をベースにサンプリングされる。すなわち、送信タイミングの間隔、受信タイミングの間隔、同期タイミングの間隔は、クロック周期の整数倍で表現される。
そのため、クロック周期数が同じ期間であっても、進みや遅れによって、その期間の長さは両装置1a、1bで異なる。例えば、マスター装置1aの同期情報の送信間隔を当該装置1aのクロック20のクロック周期10個分としても、スレーブ装置1bの同期情報の受信間隔は、周波数偏差により、当該装置1bのクロック20のクロック周期9個分となったり、11個分となったりし得る。そのため、マスター装置1aの同期情報の送信間隔とスレーブ装置1bの同期情報の受信間隔が不一致となり、同期タイミングにズレが発生する。
本実施形態では、マスター装置1aは、同期情報を一定間隔(つまり、装置1aのクロック20で一定のクロック周期数)でスレーブ装置1bに送信し、スレーブ装置1bは、その同期情報の受信間隔を、装置1bのクロック20のクロック周期数として求める。しかし、この受信間隔は、クロック周期を最小単位として求められたものであり、クロック周期の整数倍でしか表現されない。すなわち、受信間隔に含まれていたであろう小数部が切り捨てられて、受信間隔がクロック周期の整数倍で表現される。
そのため、真の受信間隔(言い換えると、マスター装置1aの同期情報の送信間隔とも言える)は、受信間隔演算部56で求めた各受信間隔以上の値であると推定される。例えば、図4のグラフで言えば、真の受信間隔(送信間隔)は、所定期間内で受信間隔演算部56により求めた黒丸で示す各受信間隔と同じ位置か、各受信間隔よりも上側に存在すると推定される。
そのため、本実施形態では、直線演算部60aにより、真の受信間隔(送信間隔)を示す直線式を推定している。このような直線式を求めるために、直線演算部60aは、変化受信間隔を複数ピックアップし、その中から二点を通る傾きd/pの直線のうち、pが最大となる傾きd/pを求め、当該二点を通る当該傾きd/pの直線式を求めている。この直線式によれば、所定期間内で受信間隔演算部56により求めた全て受信間隔は、理想的には、この直線式で表される直線上に存在するか、当該直線よりも下側に存在する。但し、一部の受信間隔が当該直線より上側に位置していても良く、求めた直線式により真の直線式を精度良く推定できる。このように精度良く推定できる理由は、次の通りである。すなわち、所定期間で得られる傾きd/pの最大値と最小値の間に真の直線の傾きが存在するが、その真の直線の傾きを知らない以上、誤差が最小となる傾きd/pを特定することは難しい。そこで、本実施形態では、真の直線の傾きを推定する方法として、変化受信間隔の二点を通る直線のうち、pが最大(つまり、所定期間の中の両端の変化受信間隔)となる傾きを求め、当該二点を通る直線式を求めている。傾きd/pは有理数であり、有理数は分母が大きければ分解能も大きくなり、pを大きくすることで値の精度を向上できるからである。
また、受信間隔推定部60bにより、直線式から真の次回の受信間隔と推定される間隔を求める。この間隔は実数である。その一方、タイミングがクロック周期を最小単位として決めらえる。そのため、求めた間隔の小数部を受信間隔補正部60cにより四捨五入して補正することにより次回の受信間隔を求めている。つまり、この次回の受信間隔は、受信間隔推定部60bで求めた間隔の整数部である。
そして、同期タイミング算出部60dにより、直線に同期した同期タイミングに、受信間隔補正部60cにより求めた次回の受信間隔を加算して次回の同期タイミングを求めている。
送信タイミングや受信タイミングを、クロック20のクロック周期を基準として検出すると、スレーブ装置1bがマスター装置1aに一時的に同期したとしても、その後の装置1a、1bの周波数偏差の積み重ねにより、送信間隔と受信間隔にクロック周期数に違いが生じてくる。しかも、その違いは、受信タイミングがクロック周期を基準として検出され、受信間隔がクロック周期の整数倍でしか表現できない以上、クロック周期以上にならないと受信間隔に現れない。換言すれば、クロック周期程度の同期誤差が発生してしまう。
これに対し、本実施形態では、直線演算部60a、受信間隔推定部60bにより、真の次回の受信間隔を推定し、当該推定値の小数部が0.5以上であれば、受信間隔補正部60cにより装置1bのクロック20のクロック周期1つ分繰り上げて、次回の受信間隔としている。また,当該推定値の小数部が0.5未満であれば、小数部を切り捨て、当該推定値の整数部を次回の受信間隔としている。このように補正された受信間隔は、マスター装置1aの同期情報の送信間隔と推定されることから、同期タイミング算出部60dにより直前に同期した同期タイミングにこの受信間隔を加算することで、次回の同期タイミングを精度良く求めることができる。
すなわち、受信間隔補正部60cでは、推定した真の次回の受信間隔に最も近い整数の受信間隔に補正しているので、同期誤差がクロック周期の半分以下に抑えることができる。例えば、真の次回の受信間隔がクロック周期10.9個分であっても、従来では、クロック周期10個分となり、同期誤差がクロック周期程度発生してしまうが、本実施形態ではクロック11個分と補正するので、同期誤差がクロック周期の半分以下となる。
また、同期周期をTとしたとき、スレーブ装置1bの同期タイミングが、マスター装置1bの同期タイミングを中心とした±T/2区間に一様分布するとすれば、その同期精度は同期誤差の標準偏差であるため、約0.3Tと求めることができる。
以上のように、本実施形態によれば、最小二乗法などの統計的な手法よりも、少ないサンプル数で同期精度を高精度化することができる。
また、直線演算部60aは、2つの変化受信間隔から直線式を求めるようにしても良い。これにより、より少ないサンプル数で簡易的に同期精度を高めることができる。装置1a、1b間のクロック周波数の違いがわずかであれば、直線式の傾きが変動することも考えられにくいからである。
[1−3.効果]
本実施形態の情報通信システム100は、情報通信によりマスター装置1aに対してスレーブ装置1bが同期を図る情報通信システムであって、マスター装置1aは、スレーブ装置1bとの同期を図るための同期情報を一定間隔で送信し、スレーブ装置1bは、情報を受信する受信器12と、受信器12により受信されるマスター装置1aから送信された同期情報の受信タイミングを検出する受信タイミング検出部14と、所定の周波数により発振し、装置内の各部の動作タイミングを与えるクロック20と、同期情報の受信タイミングの間隔である受信間隔を、クロック20のクロック周期数として求める受信間隔演算部56と、マスター装置1aと直前に同期した同期タイミングを記憶した記憶部40と、直前に同期した同期タイミングの次に同期する次回の同期タイミングを推定する同期タイミング推定部60と、を有するようにした。
そして、同期タイミング推定部60は、縦軸を受信間隔とし、横軸を受信間隔のサンプル数としたとき、直前の受信間隔から変化のあった複数の受信間隔のうち二点を通る傾きd/pの直線のうち、前記pが最大となる傾きd/pを求め、当該二点を通る当該傾きd/pの直線式を求める直線演算部60aと、直線式上における実数で表される次回の受信間隔を求める受信間隔推定部60bと、受信間隔推定部60bで求めた受信間隔の小数部を四捨五入して次回の受信間隔とする受信間隔補正部60cと、直前に同期した同期タイミングと、受信間隔補正部60cにより求めた次回の受信間隔とから、次回の同期タイミングを求める同期タイミング算出部60dと、を有するようにした。
これにより、マスター装置1aとスレーブ装置1bを高精度に同期することができる。
[2.第2実施形態]
[2−1.構成]
第2実施形態について、図5及び図6を用いて説明する。第2実施形態は、第1実施形態と基本構成は同じである。よって、第1実施形態と異なる点を説明し、第1実施形態と同じ部分については詳細な説明は省略する。
図5は、第2実施形態に係る制御部50の機能ブロック図である。第2実施形態のスレーブ装置1bの制御部50は、平均演算部57、サンプル数決定部58、同期タイミング推定部59を有する。
平均演算部57は、受信間隔演算部56により演算された複数の受信間隔から平均の受信間隔(以下、「平均受信間隔」という。)を求める。平均演算部57は、受信間隔が求められる度に、平均受信間隔を求める。すなわち、平均受信間隔は、受信間隔の移動平均である。サンプル数決定部58は、平均演算部57が平均受信間隔を求める際の受信間隔のサンプル数を決定する。サンプル数決定部58の詳細は後述する。
同期タイミング推定部59は、今回の同期タイミングを求める。同期タイミングとは、スレーブ装置1bがマスター装置1aに同期するタイミングであり、今回の同期タイミングとは、スレーブ装置1bが直前に同期した同期タイミングの次にマスター装置1aに同期する同期タイミングをいう。
同期タイミング推定部59は、具体的には、平均受信間隔とサンプル数と受信タイミングとに基づいて、同期誤差が最小となるように今回の同期タイミングを求める。同期誤差は、受信タイミング検出部14で検出した過去の受信タイミングと、当該タイミングに対応する同期タイミングとの誤差である。同期タイミング推定部59は、この同期誤差の二乗和が最小となる今回の同期タイミングを求める。同期タイミング推定部59の詳細は後述する。
また、同期タイミング推定部59は、求めた今回の同期タイミングと、平均演算部57で求めた平均受信間隔とから、次回の同期タイミングを推定する。次回の同期タイミングとは、今回の同期タイミングの後にスレーブ装置1bがマスター装置1aに同期すべきタイミングをいう。
[2−2.作用]
上記の構成を有する情報通信システム100の作用について、図6を用いて説明する。図6に示すように、マスター装置1aは、スレーブ装置1bに同期情報を一定間隔で受信し、スレーブ装置1bは、各同期情報を受信器12により受信し、その受信タイミングを受信タイミング検出部14により検出する。各受信タイミングは、時刻記録部54により時計30の対応する時刻と対応付けられて、時系列順で記憶部40に記憶される。
スレーブ装置1bにおいて、受信間隔演算部56は、記憶部40から隣接する受信タイミングを読み出し、受信間隔T
r[n]を求める。スレーブ装置1bでn回目に受信した同期情報の受信タイミングをt
r[n]とすると、受信間隔T
r[n]は、式(1)で求められる。nは自然数である。
求めた各受信間隔T
r[n]は、順次記憶部40に記憶される。平均演算部57は、受信間隔T
r[n]が求められる度に、式(2)に基づいて、最新のN個の受信間隔T
r[n]、T
r[n−1]、…、T
r[n−(N−1)]から平均受信間隔T[n]を求める。Nは自然数である。
この際、サンプル数決定部58は、平均受信間隔を求めるための受信間隔のサンプル数を求める。すなわち、受信間隔T
r[n]の不偏分散がs
2であるとき、平均受信間隔T[n]の標準誤差s/√Nが情報通信システム100の要求精度pを満足できるサンプル数Nを決定する。具体的には、サンプル数決定部58は、式(3)を満たす最小のNを求める。なお、s
2={1/(N−1)}×Σ
k(Tr[n−k]−T[n])
2 (k=0,1,…,N−1)である。
このように式(3)を満たすように平均受信間隔T[n]を求めることにより、平均受信間隔T[n]は、受信間隔Tr[n]の標準誤差を所望の精度へ低減することができる。
同期タイミング推定部59は、過去の受信タイミングt
r[n−k]と当該タイミングに対応する過去の同期タイミングt[n−k]との誤差である同期誤差e
k[n]が最小となるように、今回の同期タイミングt[n]を求める。ここで、最新のN個の受信間隔T
r[n]、T
r[n−1]、…、T
r[n−(N−1)]にそれぞれバラツキがあったとしても、平均受信間隔T[n]は、平滑化されているので、受信間隔の基準尺度とすることができる。そして、この平均受信間隔T[n]は同期間隔とみなせる。各装置1a、1bで動作するクロック20の安定度(精度)は、同期情報の送受信タイミングを検出する精度よりも一般的に十分高いため、受信間隔を平均化することにより、対応する送信間隔すなわち同期間隔に漸近させることができるからである。したがって、過去の同期タイミングt[n−k]は、今回の同期タイミングt[n]からkT[n]分の時間を遡ったタイミングとして規定できる。したがって、同期誤差e
k[n]は、式(4)のように表すことができる。
同期タイミング推定部59は、この同期誤差e
k[n]の二乗和が最小となるt[n]を求める。すなわち、式(5)に基づいて、今回の同期タイミングt[n]を求める。
そして、平均受信間隔T[n]が同期間隔とみなせるので、同期タイミング推定部59は、式(6)に基づいて、求めた今回の同期タイミングt[n]と平均受信間隔T[n]とを加算して次回の同期タイミングt[n+1]を推定する。
以上のように、同期誤差ek[n]が最小となる今回の同期タイミングt[n]と、受信間隔の標準誤差が低減された平均受信間隔T[n]とから次回の同期タイミングを求めているので、精度良く次回の同期タイミングを推定することができる。
(変形例)
受信間隔演算部56は、求めた受信間隔が、予め記憶部40に記憶された閾値を超える場合、この受信間隔を記憶部40に記憶させないようにしても良い。スレーブ装置1bが何らかの要因により同期情報の受信に失敗したと考えられるためである。すなわち、スレーブ装置1bが何らかの要因により同期情報の受信に失敗すると、求めた受信間隔が通常時の2倍程度となり、平均受信間隔T[n]の精度が低下してしまうのを防止するためである。閾値は、例えば、マスター装置1aの同期情報の送信間隔の1.5倍とする。
[2−3.効果]
(1)本実施形態では、スレーブ装置1bは、複数の受信間隔から平均受信間隔を求める平均演算部57と、平均受信間隔を求める際の受信間隔のサンプル数を決定するサンプル数決定部58と、平均受信間隔とサンプル数と受信タイミングとに基づいて、受信タイミング検出部14で検出した過去の受信タイミングと当該タイミングに対応する過去の同期タイミングとの誤差である同期誤差が最小となるように、直前に同期した同期タイミングの次に同期する次周期の同期タイミングを求める同期タイミング推定部59と、を有するようにした。具体的には、同期タイミング推定部59は、同期誤差の二乗和が最小となる次周期の同期タイミングを上記の式(5)から求めるようにした。これにより、マスター装置1aとスレーブ装置1bを高精度に同期することができる。
(2)受信間隔演算部56で求めた前記受信間隔の不偏分散をs 2 とし、前記サンプル数をNとしたとき、サンプル数決定部58は、平均受信間隔の標準誤差である(s/√N)が情報通信システムの要求精度以下となる最小の自然数Nを求めるようにした。これにより、マスター装置1aとスレーブ装置1bを高精度に同期することができる。
(3)同期タイミング推定部59は、次周期の同期タイミングと平均受信間隔とから、次周期の同期タイミングより後の同期タイミングを推定するようにした。これにより、精度の高い次周期の同期タイミングと、標準誤差が低減された平均受信間隔とを用いて将来の同期タイミングを求めるため、将来の同期タイミングを精度良く推定することができる。
[3.第3実施形態]
[3−1.構成]
第3実施形態について、図7及び図8を用いて説明する。第3実施形態は、第1実施形態と基本構成は同じである。よって、第1実施形態と異なる点を説明し、第1実施形態と同じ部分については詳細な説明は省略する。
第1実施形態では、マスター装置1aからスレーブ装置1bへの一方向の同期情報の通信で足りるが、第3実施形態では、マスター装置1aとスレーブ装置1bが双方向に同期情報を通信する。すなわち、本実施形態では、図7に示すように、マスター装置1aが同期情報をスレーブ装置1bに送信して当該同期情報をスレーブ装置1bが受信し、スレーブ装置1bが別の同期情報をマスター装置1aに送信し、当該別の同期情報をマスター装置1aが受信する。
また、マスター装置1aの送信器11は、同期情報の送信タイミングtt,m及びスレーブ装置1bからの別の同期情報の受信タイミングtr,mと、マスター装置1aによる同期情報の送信間隔でのクロック20のクロック周波数pmを含む情報とを、スレーブ装置1bに送信する。各タイミングtt,m、tr,m、クロック周波数pmを含む情報は、同期情報に乗せて送信しても良いし、同期情報とは別に送信しても良い。なお、クロック周波数pmは、記憶部40に予め記憶させておく。制御部50が記憶部40からクロック周波数pmを読み出して同期情報又は別の情報に重畳させ、重畳された情報を送信器11に送信させる。
図8は、第3実施形態に係る制御部50の機能ブロック図である。図8に示すように、スレーブ装置1bの制御部50は、到達時間算出部61、同期タイミング補正部62を有する。到達時間算出部61は、マスター装置1aから送信され、自身で受信するまでの同期情報の到達時間を算出する。
具体的には、到達時間算出部61は、マスター装置1aから受信した同期情報の受信タイミングtr,s及び、スレーブ装置1bから送信した別の同期情報の送信タイミングtt,sを、記憶部40から読み出す。
また、到達時間算出部61は、受信した各同期情報又は別に送信された情報から、マスター装置1aによる同期情報の送信タイミングtt,m及び、スレーブ装置1bからの別の同期情報の受信タイミングtr,mを取得する。
更に、到達時間算出部61は、受信間隔演算部56からマスター装置1aから送信される同期情報の受信間隔を取得する。この受信間隔は、スレーブ装置1bのクロック20のクロック周波数psそのものである。すなわち、到達時間算出部61は、同期情報の受信間隔でのクロック周波数psを取得する。
そして、到達時間算出部61は、各タイミングt
r,m、t
t,m、t
r,s、t
t,s及びクロック周波数pm、psから、式(7)に基づいて、マスター装置1aが送信してからスレーブ装置1bが受信するまでの同期情報の到達時間t
d,sを算出する。
同期タイミング補正部62は、到達時間算出部61で求めた到達時間の分、マスター装置1aとの同期タイミングを補正する。例えば、同期タイミング推定部60で求めた今回の同期タイミングより到達時間分早めたタイミングを同期タイミングとする。
[3−2.作用]
本実施形態に係る情報通信システム100の作用について、図7を用いて説明する。
マスター装置1aとスレーブ装置1bの同期情報の通信において、同期情報の到達時間が有限である。装置1a、1bが同期する上で、装置1a、1b間の距離又は伝送路長によっては、到達時間を無視できない状況もある。また、各装置1a、1bのクロック20は独立であり、各位相も揃っていない状況もある。
図7に示すように、マスター装置1aからスレーブ装置1bへの同期情報を通信する際の、マスター装置1aの送信タイミングをtt,mとし、スレーブ装置1bの受信タイミングをtr,sとする。
また、スレーブ装置1bからマスター装置1aへの別の同期情報を通信する際の、スレーブ装置1bの送信タイミングをtt,sとし、マスター装置1aの受信タイミングをtr,mとする。
これら2つの同期情報の伝送条件が等しく、両情報の到達時間が同一であるとし、従来の情報通信システムのように、両装置1a、1bのクロック20間の周波数偏差が送受信間隔を求めるのに影響がない程度に小さいとすると、マスター装置1aの送受信間隔(t
r,m−t
t,m)と、スレーブ装置1bの送受信間隔(t
t,s−t
r,s)との差分は、2つの同期情報の到達時間の和となる。そのため、同期情報の到達時間tdは、式(8)の通り求めることができる。
しかし、クロック20間の周波数偏差が到達時間を求めるのに影響がない程度に小さいとする条件は妥当とは言い難い。例えば、特性が公称周波数10MHz、許容偏差±10ppmのクロック20を搭載する装置1a、1b同士が、送受信タイミングを検出する場合において、送受信間隔が5ms以上であればクロック20間の周波数偏差がタイミング検出結果に表れ、検出値に誤差が生じてしまう。したがって、式(8)で求めた到達時間tdには無視できない誤差が含まれてしまう。
そこで、本実施形態では、両装置1a、1bのクロック20間の周波数偏差による影響をキャンセルするため、マスター装置1aは同期情報の送信間隔を自身のクロック周期数pmとして同期情報を送信するとともに、各タイミングtt,m、tr,m及びクロック周期数pmをスレーブ装置1bに送信している。なお、クロック周期数pm、すなわち送信間隔は、周波数偏差の影響が十分に現れるほど長い期間が望ましい。
そして、スレーブ装置1bでは、マスター装置1aのクロック20を元に計られた送受信間隔(tr,m−tt,m)に、クロック周期数の比ps/pmを乗算することで、マスター装置1aでの送受信間隔をスレーブ装置1bの時間に変換している。すなわち、式(8)の(tr,m−tt,m)を、(tr,m−tt,m)×(ps/pm)に置き換えると、式(7)が得られる。
言い換えると、マスター装置1aでの送受信間隔をスレーブ装置1bの時間に変換するには、マスター装置1aのクロック20のクロック周波数fmとスレーブ装置1bのクロックのクロック周波数fsとの比(fs/fm)を送受信間隔(tr,m−tt,m)に掛ければ良いが、実際にはクロック周波数fm、fsは、公称周波数からバラツキがあるため実際の値が不明である。
そこで、本実施形態では、マスター装置1aの同期情報の送信間隔をクロック周期数pmと規定し、スレーブ装置1bに送信する。そして、この送信間隔と対応する受信間隔は、スレーブ装置1bにおいて、受信タイミング検出部14、受信間隔演算部56等によりクロック周期数psとして検出可能であるので、スレーブ装置1bが入手可能な情報からマスター装置1aの送受信間隔をスレーブ装置1bの時間に変換することができる。
以上のように、本実施形態によれば、より正確な到達時間を得ることができ、その到達時間分同期タイミングのズレを補正するので、周波数偏差の影響を受けずに高精度の同期することができる。
(変形例)
本実施形態では、マスター装置1aの送信器11が、各タイミングtt,m、tr,mを送信したが、マスター装置1aが予め送受信間隔(tr,m−tt,m)を演算し、その結果をスレーブ装置1bに送信するようにしても良い。
[3−3.効果]
本実施形態では、マスター装置1aは、情報を送信する送信器11と、情報を受信する受信器12と、送信器11により送信される情報の送信タイミングを検出する送信タイミング検出部13と、受信器12により受信される情報の受信タイミングを検出する受信タイミング検出部14と、所定の周波数により発振し、装置1a内の各部の動作タイミングを与えるクロック20と、を有するようにした。
スレーブ装置1bは、情報を送信する送信器11と、送信器11により送信される情報の送信タイミングを検出する送信タイミング検出部13と、マスター装置1aから送信され、自身で受信するまでの同期情報の到達時間を算出する到達時間算出部61と、到達時間の分、マスター装置1aとの同期タイミングを補正する同期タイミング補正部62と、を更に有するようにした。
そして、マスター装置1aからスレーブ装置1bへの同期情報を通信する際の、マスター装置1aの送信タイミングをtt,mとし、スレーブ装置1bの受信タイミングをtr,sとし、スレーブ装置1bからマスター装置1aへの別の同期情報を通信する際の、スレーブ装置1bの送信タイミングをtt,sとし、マスター装置1aの受信タイミングをtr,mとすると、マスター装置1aの送信器11は、同期情報の送信タイミングtt,m及びスレーブ装置1bからの別の同期情報の受信タイミングtr,m、又は、送受信間隔(tr,m−tt,m)と、同期情報の送信間隔でのクロック20のクロック周期数pmを含む情報と、をスレーブ装置1bに送信し、到達時間算出部61は、同期情報の受信間隔でのスレーブ装置1bのクロック20のクロック周期数をpsとすると、上記の式(7)に基づいて同期情報のマスター装置1aからスレーブ装置1bへの到達時間td,sを算出するようにした。
これにより、装置1a、1b間の周波数の違いが考慮された到達時間を元に同期タイミングを補正しているので、高精度に同期することができる。
[4.第4実施形態]
[4−1.構成]
第4実施形態について、図9〜図11を用いて説明する。第4実施形態は、第1実施形態と基本構成は同じである。よって、第1実施形態と異なる点を説明し、第1実施形態と同じ部分については詳細な説明は省略する。
図9に示すように、マスター装置1aは、同期情報及びその送信タイミングを複数回連続してスレーブ装置1bにバースト送信し、スレーブ装置1bは、複数回の同期情報を連続して受信する。同期情報の送信タイミングは、当該同期情報に乗せられる。同期情報の送信間隔は任意であり、適宜設計変更可能である。但し、早期同期の観点からは、送信間隔はできるだけ短い方が良い。
図10は、スレーブ装置1bの制御部50の機能ブロック図である。この制御部50は、リスト作成部63、近似部64、同期タイミング推定部65を有する。リスト作成部63は、同期情報の送信タイミングとこの送信タイミングに対応する受信タイミングとを紐付けたリストを作成する。
近似部64は、リスト作成部63で作成されたリストから、同期情報の送信タイミングと受信タイミングの対応関係を直線近似により近似する。例えば、図11に示すように、横軸を受信タイミング、縦軸を送信タイミングとして、リストの各要素を用いて最小二乗法により、対応関係を直線近似する。
同期タイミング推定部65は、直線近似した対応関係に基づいて、同期タイミングを推定する。具体的には、直線近似した対応関係から、所定時間(例えば、任意の時刻を原点とした1秒)後に対応する送信タイミングを求める。この送信タイミングを次回の同期タイミングと推定する。
また、同期タイミング推定部65は、求めた送信タイミングの情報を送信器11にマスター装置1aに送信させる。マスター装置1aは、受信した送信タイミングで同期情報を送信するようにスケジューラ55を設定する。すなわち、同期タイミング推定部65は、当該送信タイミングで同期するための送信予約をする。
或いは、マスター装置1aが一定間隔で同期情報を複数連続して送信するものとすると、スレーブ装置1bの受信間隔も一定間隔と推定される。スレーブ装置1bは、マスター装置1aとこの同期情報の一定の送信間隔を予め共有しておき、同期タイミング推定部65は、直線近似した対応関係から、次に受信する受信タイミングを推定し、当該受信タイイングを次回の同期タイミングと推定しても良い。
[4−2.作用・効果]
本実施形態の情報通信システム100は、マスター装置1aが、同期情報及びその送信タイミングを複数回連続してスレーブ装置1bに送信する。スレーブ装置1bは、複数回の同期情報を連続して受信し、同期情報の送信タイミングと受信タイミングのリストから、送信タイミングと受信タイミングの対応関係を直線近似により近似する近似部64と、直線近似した対応関係に基づいて、同期タイミングを推定する同期タイミング推定部65と、を有するようにした。
これにより、将来の送信タイミングと受信タイミングの対応関係を予測することができ、次回の同期タイミングを精度良く推定することができる。
[5.他の実施形態]
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
例えば、上記第2〜第4実施形態は、第1実施形態に従属する形で記載したが、各実施形態は、独立していても良い。具体的には、第2〜第4実施形態で同期タイミング推定部60を有していなくても良い。