JP6055668B2 - 無線通信システム - Google Patents

無線通信システム Download PDF

Info

Publication number
JP6055668B2
JP6055668B2 JP2012269936A JP2012269936A JP6055668B2 JP 6055668 B2 JP6055668 B2 JP 6055668B2 JP 2012269936 A JP2012269936 A JP 2012269936A JP 2012269936 A JP2012269936 A JP 2012269936A JP 6055668 B2 JP6055668 B2 JP 6055668B2
Authority
JP
Japan
Prior art keywords
time
clock
master device
slave device
slave
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.)
Active
Application number
JP2012269936A
Other languages
English (en)
Other versions
JP2014116811A (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.)
Hioki EE Corp
Original Assignee
Hioki EE 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 Hioki EE Corp filed Critical Hioki EE Corp
Priority to JP2012269936A priority Critical patent/JP6055668B2/ja
Publication of JP2014116811A publication Critical patent/JP2014116811A/ja
Application granted granted Critical
Publication of JP6055668B2 publication Critical patent/JP6055668B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、1台のマスタ機器と複数台のスレーブ機器とを無線ネットワークで接続してなる無線通信システムに関し、さらに詳しく言えば、そのネットワーク内機器間の同期をとる技術に関するものである。
図17に模式的に示すように、1台のマスタ機器1と複数台のスレーブ機器2(2a〜2n)とを無線ネットワークで接続し、マスタ機器1からの指令に基づいて各スレーブ機器2を同じタイミングで一斉に動作させるような場合、それら機器間の同期をとるため、マスタ機器1に内部時計T1を搭載するとともに、各スレーブ機器2にも内部時計T2を搭載するようにしている(例えば、特許文献1参照)。
この種の同期システムにおいては、マスタ機器1が各スレーブ機器2の動作実行時刻を一元的に集中制御する。その動作実行時刻は、マスタ機器1の内部時計T1により計時される時刻を基準として設定され、マスタ機器1から各スレーブ機器2に他の情報とともにコマンドを用いて送信される。その際、コマンドの送信は、所定のタイムスロットに基づいて各スレーブ機器2ごとに時間差をおいて行われる。
各スレーブ機器2は内部時計T2を監視し、マスタ機器1により指定された動作実行時刻になると、あらかじめ設定されているプログラムにしたがって動作し、その実行結果を各スレーブ機器2ごとに割り当てられた時刻にマスタ機器1に送信する。その際、実行結果には内部時計T2の時計情報が付随して送信される。
このように、マスタ機器1がすべてのスレーブ機器2に対して同一の動作実行時刻を送信することにより、各スレーブ機器2に異なったタイミングで動作実行時刻が送信されたとしても、その動作実行時刻が、マスタ機器1からの送信時刻よりも後に設定されていれば、すべてのスレーブ機器2に指定された動作実行時刻で各スレーブ機器2を動作させることができる。
特開平11−289587号公報
しかしながら、上記従来技術によると、各スレーブ機器2にも内部時計T2を搭載する必要があり、コスト的に好ましくない。特に、スレーブ機器2の台数が多い場合には、その台数分のコストがかかる。
また、定期的にマスタ機器1の内部時計T1と、各スレーブ機器2の内部時計T2との時間合わせを行う必要がある。その時間合わせは、コマンドを介して行うことから、厳密にマスタ機器1と各スレーブ機器2の時刻合わせを行うことが難しい。
したがって、本発明の課題は、1台のマスタ機器と複数台のスレーブ機器とを無線ネットワークで接続してなる無線通信システムにおいて、マスタ機器よりスレーブ機器に対して、各種動作実行時刻をネットワーククロック値で送信することにより、マスタ機器と各スレーブ機器との同期、また、各スレーブ機器相互間の同期を確実にとることができる安価な無線通信システムを提供することにある。
上記課題を解決するため、本発明は、1台のマスタ機器と複数台のスレーブ機器とにより無線ネットワークが構築され、上記マスタ機器より上記各スレーブ機器に対して動作開始時刻が送信され、上記各スレーブ機器は上記動作開始時刻が到来した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信する無線通信システムにおいて、上記マスタ機器および上記各スレーブ機器は、それぞれ制御系CPUとネットワーククロックカウンタとを含み、上記マスタ機器と上記各スレーブ機器との同期ソースとして上記無線ネットワークのネットワーククロックを共有し、上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して上記動作開始時刻を上記ネットワーククロックで換算された動作開始計数値として送信し、上記各スレーブ機器の制御系CPUは、上記動作開始計数値を受信した際、自機のネットワーククロックカウンタから、その受信時点のネットワーククロック値を取得し、上記動作開始計数値と上記受信時点のネットワーククロック値との差分クロックを算出するとともに、自機の制御系CPUの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信することを特徴としている。
また、本発明は、上記マスタ機器のみに実時間を計時する内部時計を備え、上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して上記動作開始計数値を送信するにあたって、上記動作開始計数値と上記内部時計による実時間とを関連付けて、その相関を記憶することを特徴としている。
また、本発明の好ましい態様によると、上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して、上記動作開始計数値を同一時刻として送信するとともに、動作開始後において同一の時間間隔で動作を実行させる動作実行間隔を併せて送信し、上記各スレーブ機器は、上記動作開始計数値に基づいて一斉に動作を開始し、その後上記動作実行間隔ごとに動作を実行する。
また、本発明の好ましい態様によると、上記動作実行間隔は、上記ネットワーククロックのクロック値として上記マスタ機器から上記各スレーブ機器に送信され、上記各スレーブ機器の制御系CPUは、上記動作実行間隔を内部クロックのクロック数に換算し、動作開始後は上記内部クロックの計数値に基づいて動作を繰り返し実行する。
また、本発明の別の態様においては、上記マスタ機器の制御系CPUは、上記各スレーブ機器の動作開始後に、上記各スレーブ機器に対して、現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、上記各スレーブ機器の動作に同期をかけることを特徴としている。
このように同期をとるにあたって、上記マスタ機器の制御系CPUは、上記同期時刻をネットワーククロック値として上記各スレーブ機器に送信し、上記各スレーブ機器の制御系CPUは、上記同期時刻受信時点のネットワーククロック値と上記同期時刻との差分クロックを算出するとともに、上記制御系CPUの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で同期のための動作を実行する。
また、本発明の好ましい態様によると、上記マスタ機器の制御系CPUは、GPSの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスを受信するインターフェイスを有し、上記基準パルスにより上記内部時計を定期的に校正する。
また、本発明には、同期をとる別の態様として、上記マスタ機器の制御系CPUは、上記基準パルスの受信時点を基準として、上記各スレーブ機器に動作を実行させる態様も含まれる。
本発明は、データロガーと呼ばれるデータ収集機器を含む測定装置に好ましく適用される。この種の測定装置において、上記各スレーブ機器が所定の物理量を測定するセンサを有する測定ユニットであり、上記マスタ機器が上記各測定ユニットにて測定された測定データを収集して所定に処理する測定器本体である。
本発明において、上記無線ネットワークは、好ましくはブルートゥース(Bluetooth:登録商標)により構築される。
本発明によれば、マスタ機器と各スレーブ機器との同期ソースとして無線ネットワークのネットワーククロックを共有し、マスタ機器側から各スレーブ機器に対して動作開始時刻をネットワーククロックで換算された動作開始計数値として送信し、各スレーブ機器側では、動作開始計数値を受信した際、自機のネットワーククロックカウンタから、その受信時点のネットワーククロック値を取得し、上記動作開始計数値と上記受信時点のネットワーククロック値との差分クロックを算出するとともに、スレーブ機器の制御系CPUの内部クロックの計数を開始し、その内部クロック計数値が差分クロックに相当する時間に達した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信するようにしたことにより、特に各スレーブ機器は内部時計を備える必要がないことから、安価な構成でありながら、マスタ機器と各スレーブ機器とを確実に同期させることができる。
また、マスタ機器より、各スレーブ機器の動作開始後に、スレーブ機器に対して現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、各スレーブ機器の動作に同期をかけるようにしたことにより、各スレーブ機器相互間においても同期をとることができる。
また、本発明の好ましい態様によれば、マスタ機器のみに実時間を知るうえで内部時計が設けられるが、その内部時計をGPSの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスにて定期的に校正することにより、内部時計による実時間とネットワーククロックとを正確に関連付けることができる。
また、上記基準パルスを受信した時点におけるネットワーククロックに基づいて、各スレーブ機器に動作を実行させることにより、マスタ機器と各スレーブ機器間、また、各スレーブ機器相互間の同期を確実にとることができる。
また、無線通信手段として、ブルートゥース(Bluetooth)を用いることにより、安価かつ低消費電力で無線ネットワークを構築することができる。
本発明による無線通信システムの構築例を示す模式図。 ブルートゥースで実行される周波数ホッピングを示すタイミングチャート。 本発明の第1実施形態において、マスタ機器で実行される動作説明用のフローチャート。 上記第1実施形態において、マスタ機器が備える内部時計の校正手順を示すフローチャート。 上記第1実施形態において、マスタ機器で実行される別の動作説明用のフローチャート。 上記第1実施形態において、スレーブ機器で実行される動作説明用のフローチャート。 上記第1実施形態において、スレーブ機器で実行される別の動作説明用のフローチャート。 本発明の第2実施形態において、マスタ機器で実行される動作説明用のフローチャート。 上記第2実施形態において、マスタ機器で実行される別の動作説明用のフローチャート。 上記第2実施形態において、スレーブ機器で実行されるコマンド処理を示すフローチャート。 上記第2実施形態において、スレーブ機器で実行される測定開始処理を示すフローチャート。 上記第2実施形態において、スレーブ機器で実行される別の測定開始処理を示すフローチャート。 上記第2実施形態において、スレーブ機器で実行されるデータサンプリング処理を示すフローチャート。 上記第2実施形態において、スレーブ機器で実行されるデータ送信処理を示すフローチャート。 上記第2実施形態において、スレーブ機器で実行される通常のデータサンプリング状態を示すタイミングチャート。 上記第2実施形態において、スレーブ機器で実行されるサンプリング同期補正時のデータサンプリング状態を示すタイミングチャート。 無線通信システムの従来技術を示す模式図。
次に、図1ないし図16により、本発明のいくつかの実施形態について説明するが、本発明はこれに限定されるものではない。
まず、図1に示すように、この実施形態に係る無線通信システムは、基本的に、1台のマスター機器10と、複数台のスレーブ機器20(20A,20B,…,20N)とにより構築される。
この実施形態において、スレーブ機器20は、所定の物理量を検出するデータロガー等と呼ばれる測定ユニット(子機)であり、マスター機器10は、各スレーブ機器20にて測定された測定データ(物理量)を収集して所定に処理する測定器本体(親機)である。
マスター機器10および各スレーブ機器20はともに無線通信モジュールを有し、双方向通信可能である。例えば、店舗やオフィス等として提供される室内の空調設計を行う場合、各スレーブ機器20は、温度測定用ユニットとして室内の天井,壁面および床面等に配置されるため、マスター機器10との通信はたかだか数メートル〜数百メートルの短距離無線でよい。
このような短距離無線通信には、2.4GHz帯の電波を利用した短距離無線通信手段として、例えばブルートゥース(Bluetooth:登録商標)とジグビー(Zigbee:登録商標)とがあるが、この実施形態ではブルートゥースを採用している。なお、ブルートゥースの場合、マスター機器10に対して同時に接続できるスレーブ機器20の台数に制約があり最大7台である。
マスター機器10は制御部として、各種の処理を行うメインの制御系CPU11と、無線通信モジュールを制御するモジュール内CPU12の2つのCPU(Central Processing Unit)を備え、両CPU11,12は双方向接続で、相互にデータ等の遣り取りが行われる。
また、マスタ機器10は、実時間を計時する内部時計111,外部インタフェース112,無線通信送受信部121およびネットワーククロックカウンタ122を備え、このうち、内部時計111と外部インタフェース112は制御系CPU11に属し、無線通信送受信部121とネットワーククロックカウンタ122はモジュール内CPU12に属している。
また、制御系CPU11は、スレーブ機器20から取得する測定データのデータ番号を計数するデータ番号カウンタ11aと、スレーブ機器20から取得する測定データ数を計数するデータ受信カウンタ11bとを備えている。
外部インタフェース112は、マスター機器10と、GPSの基準時刻系もしくは標準電波時計系等の絶対時刻発生手段である外部クロック校正手段30とを接続するインタフェースで、その接続は無線,有線の別を問わないが、その接続タイミング等は制御系CPU11により制御される。
各スレーブ機器20は同一構成で、マスター機器10と同じく制御部として、制御系CPU21と、無線通信モジュール制御用のモジュール内CPU22の2つのCPUを備えており、両CPU21,22は双方向接続で、相互にデータ等の遣り取りが行われる。
各スレーブ機器20は、測定系として、図示しないセンサからの測定データが入力される入力チャネルCH1〜CHnを択一的に選択するマルチプレクサ(切替スイッチ)211と、マルチプレクサ211にて選択された入力チャネルの測定データを所定に増幅する増幅器212と、増幅された測定データをデジタル値に変換するA/D変換器213とを備え、A/D変換された測定データが制御系CPU21に与えられる。測定データは、制御系CPU21のメモリに一時的に保存される。
また、制御系CPU21には、測定データのアドレスを計数するアドレスカウンタ21aと、制御系CPU21の基準クロックパルスを計数する計数カウンタ21bとが含まれている。
なお、上記センサには、測定対象に応じて電流センサ,電圧センサ,温度センサ等が適宜用いられる。また、センサは一つであってもよく、その場合、マルチプレクサ211は不要である。
また、各スレーブ機器20は、マスター機器10と同じく、無線通信送受信部221およびネットワーククロックカウンタ222を備え、これらはモジュール内CPU22に属している。
制御系CPU21のメモリに保存された測定データは、制御系CPU21からモジュール内CPU22を介して無線通信送受信部221に送られ、無線通信送受信部221よりマスタ機器10に向けて送信される。
図1に示すように、本発明においては、マスター機器10にのみ内部時計111が搭載され、各スレーブ20には内部時計が搭載されないが、無線ネットワークのネットワーククロックを同期ソースとして、マスタ機器10と各スレーブ機器20の同期をとるようにしている。
この実施形態では、上記したようにブルートゥースを採用していることから、同期ソースとして用いられるブルートゥースでのネットワーククロックについて、図2のタイミングチャートを参照して説明する。
ブルートゥースでは、2402〜2480MHzの周波数帯を1MHzずつ79の周波数帯に区分けし、図2に示すように、使用する周波数帯を625μsごとに疑似的にランダムに変化させながら通信を行う。これを周波数ホッピングと呼び、通信周波数f(k)は次式により表される。
通信周波数f(k)=2402+k(MHz)、但しk=0,1,2…78
ブルートゥースの規格によれば、1台のマスター機器10に接続できるスレーブ機器20の台数が最大7台として制限されており、ブルートゥースによる無線ネットワークは「ピコネット」と呼ばれている。
マスター機器10は、ピコネット内において同じ時間内に同じ周波数帯で通信できるようにピコネットを制御し、各スレーブ機器20は、マスター機器10の制御のもとで、マスター機器10に同期して通信する。
また、ブルートゥースでは、スロットと呼ばれる時間単位で通信が行われる。スロットとは、同じ周波数帯で通信する時間であり、その時間間隔は625μsである。一つのスロットの通信が終了すれば、スロット番号が逐次加算され、次の周波数帯にホッピングすることになる。
このスロット番号は、ブルートゥースクロックと呼ばれ、28ビットの値をとり、同一のピコネット内で共有される。ブルートゥースクロックが偶数のとき、マスター機器10からスレーブ機器20に対して通信が行われ、マスター機器10は、スレーブ機器20を指定して通信を開始する。
マスター機器10は、通信開始時に同期信号を送り、スレーブ機器20は、その同期信号に基づいてマスター機器10との同期をとる。マスター機器10は、同期信号の後にデータの内容を送信する。ブルートゥースクロックが奇数のとき、スレーブ機器20からマスター機器10に対して通信が行われ、スロットで指定されたスレーブ機器20がマスター機器10に対して通信する。
次に、ピコネット内同期について説明する。同一のピコネット内に存在するスレーブ機器20は、マスター機器10の周波数ホッピングパターンとブルートゥースクロックを共有することにより通信が可能になる。
周波数ホッピングパターンは、マスター機器10のブルートゥースデバイスアドレスとブルートゥースクロックとから一意に算出され、ピコネット構築の際に、マスター機器10から接続相手のスレーブ機器20にブルートゥースデバイスアドレスとブルートゥースクロックを与える。なお、ブルートゥースデバイスアドレスとは、スレーブ機器20を識別するために一意に与えられる48ビットのアドレスである。
スレーブ機器20では、与えられたアドレスとクロック値に基づいてホッピングパターンを算出し、そのホッピングパターンにてマスター機器10と通信可能となった時点でピコネットが形成される。このように、ピコネット内でマスター機器10を基準として周波数ホッピングパターンとブルートゥースクロックが共有されている状態をピコネット内同期という。
本発明において、マスター機器10と各スレーブ機器20は、概略次のような手順で交信が行われる。前提として、マスター機器10が各スレーブ機器20に対する動作実行時刻(この実施形態では測定開始時刻)を集中制御する。
マスター機器10は、無線ネットワーク(この実施形態ではブルートゥース)を介して複数台のスレーブ機器20と通信を行うにあたって、まず最初に、通信可能なスレーブ機器20を検索する。
検索が完了したら、所望のスレーブ機器20と通信の確立をはかる。そして、通信が確立すると、マスター機器10のネットワーククロック(ブルートゥースの場合、ピコネットクロック)のカウント値を各スレーブ機器20に与える。
以後、定期的(ブルートゥースの場合、625μsごと)に通信が行われ、その都度、マスター機器10から各スレーブ機器20に対してネットワーククロックのカウント値が送信され、マスター機器10と各スレーブ機器20との同期がとられる。
そして、各スレーブ機器20に同一時刻で一斉に測定を開始させる場合、マスター機器10は、その同期させたいタイミングのネットワーククロックのカウント値Xを各スレーブ機器20に対して送信するとともに、上記カウント値Xと内部時計111による実時間との相関を記憶する。
なお、各スレーブ機器20に対してブルートゥースの場合には625μsの時間間隔をもって順次送信されることから、上記カウント値Xは、その各スレーブ機器20に対する送信が一巡されるまでの時間を考慮して決められる。
各スレーブ機器20においては、常に自機のネットワーククロックのカウント値を監視し、自機のネットワーククロックのカウント値が上記カウント値Xに一致した時点で、指定された動作、すなわち図示しない被測定物の物理量の測定を開始する。
各スレーブ機器20は、上記被測定物の物理量の測定を完了したら、マスター機器10に測定完了を通知し、マスター機器10に測定データを送信する。
その際、通信トラフィックが重ならないように、各スレーブ機器20からマスター機器10への測定データの送信は、好ましくはマスター機器10からあらかじめ指定されたタイムスロットにしたがって行われる。
〔第1実施形態〕
次に、図3〜図7を参照して、本発明の第1実施形態の動作について説明する。まず、マスタ機器10の具体的な動作例を図3のフローチャートに沿って説明する。なお、マスタ機器10と各スレーブ機器20は、すでにブルートゥースにより通信が確立しているものとする。
初期のステップST100として、各スレーブ機器20に測定を開始させるかどうかの判断ステップがあり、測定を開始させると判断された場合、まず、次のステップST101で、内部時計111より実時間(M_Time)を読み出すとともに、ステップST102で、ネットワーククロックカウンタ122からそのクロックカウンタ値(M_NetCk)を取得する。
そして、ステップST103で、実時間(M_Time)とネットワーククロックカウンタ値(M_NetCk)との関連付けを行う。すなわち、ネットワーククロックカウンタ値(M_NetCk)から実時間(M_Time)が分かるように関連付ける。
その後、ステップST104で、測定開始時刻(M_TimeStt)に対応したネットワーククロック値(NetCkStt)を決める。測定開始時刻(M_TimeStt)は、スレーブ機器20で測定データの取り込みを開始させる時刻で、各スレーブ機器20に対して共通に割り当てられる。なお、測定開始時刻(M_TimeStt)は、各スレーブ機器20に測定開始の指示が行き渡った後の時刻とする。
また、ステップST105で、データ取得時刻(DtStgTime)に対応したネットワーククロック値(NetCkDtStg)を決める。このデータ取得時刻(DtStgTime)は、スレーブ機器20からマスタ機器10へ測定データを転送する時刻、すなわちマスタ機器10がスレーブ機器20から測定データを取得する時刻である。
そして、ステップST106で、まず測定開始時刻(M_TimeStt)を各スレーブ機器20に送信し、続いてデータ取得時刻(DtStgTime)を各スレーブ機器20に送信したのちに、ステップST107で、通信待機状態(スレーブ機器20からの送信(返信)待ち状態)に入る。
ステップST107の通信待機状態で、スレーブ機器20からの送信を受信すると、ステップST108で、その受信内容からスレーブ機器20側で送信準備ができているかどうかを判断し、送信準備OKであれば、ステップST109で、スレーブ機器20から送信される測定データを受信する。
なお、スレーブ機器20に対するデータ取得時刻(DtStgTime)は、通信トラフィックが重ならないように、データ送信時刻を各スレーブ機器20ごとに異ならせることが好ましい。
そして、ステップST110で、データ受信完了かどうかを判断し、受信完了であれば、ステップST111で、スレーブ機器20に測定を終了させるかどうかを判断し、測定を終了させない場合には、ステップST107に戻る。
測定を終了させる場合には、スレーブ機器20に測定停止のコマンド(Stop)を送信して、スレーブ機器20との通信を終了し、制御系CPU11は、各スレーブ機器20から収集された測定データを所定に処理し、その結果を図示しない表示器に表示したり、マスタ機器10に接続されている外部のパソコン等に送信する。
先に説明したように、マスタ機器10は、外部インタフェース112を介して外部クロック校正手段30と接続されており、内部時計111が外部クロック校正手段30からの基準パルスにより定期的もしくは不定期的に校正される。
すなわち、図4のフローチャートに示すように、制御系CPU11は、まずステップST301で、内部時計111を校正するかどうかを判断する。外部クロック校正手段30から例えば1秒間隔で基準パルスが送信されるとすると、制御系CPU11は、それに合わせて1秒間隔でステップST301を実行することが好ましいが、例えば2秒間隔等もしくは不定期的としてもよい。
内部時計111を校正する場合には、ステップST302で、外部クロック校正手段30から校正値としての基準パルス(Ext_Ck)を取得し、ステップST303で、その基準パルス(Ext_Ck)に基づいて内部時計111の実時間(M_Time)を校正する。
次に、マスタ機器10の別の動作例を図5のフローチャートに沿って説明する。この別の動作例では、外部クロック校正手段30からの基準パルスを受信した時点のネットワーククロック値により、データ取得時刻(DtStgTime)に対応したネットワーククロック値(NetCkDtStg)を決めるようにしている点で、先に説明した図3のフローチャートと異なっている。
図5のフローチャートにおいて、ステップST100〜ST104までは図3のフローチャートと同じであるが、この別の動作例では、ステップST104に続くステップST105aで、ステップST104で決定した測定開始時刻(M_TimeStt)に対応したネットワーククロック値(NetCkStt)を先にスレーブ機器20に送信する。
次にステップST105bで、外部クロック校正手段30からの基準パルスを受信したかどうかを判断し、基準パルスを受信すると、ステップST105cで、再度ネットワーククロックカウンタ122からそのクロックカウンタ値(M_NetCk)を取得する。
そして、このネットワーククロックカウンタ値(M_NetCk)をもとに、ステップST105dで、データ取得時刻(DtStgTime)に対応したネットワーククロック値(NetCkDtStg)を決め、ステップST106aで、データ取得時刻(DtStgTime)をスレーブ機器20に送信する。以後は、図3のフローチャートと同じく、ステップST107〜ST111を実行する。
この別の動作例によれば、基準パルスを受信した時点のネットワーククロックカウンタ値(M_NetCk)をもとにデータ取得時刻(DtStgTime)に対応したネットワーククロック値(NetCkDtStg)を決めるようにしたことにより、基準パルスにより校正された内部時計111の時間とデータ取得時刻とを一致させることができる。
次に、スレーブ機器20の動作例について、図6のフローチャートを参照しながら説明する。なお、マスタ機器10と各スレーブ機器20は、すでにブルートゥースにより通信が確立しているものとする。
まず、ステップST200の通信待機状態において、マスタ機器10からの送信を受信すると、ステップST201で、マスタ機器10からの送信が測定開始であるかどうかを判断し、測定開始でなければ当該ルーチンを終了する。
測定開始であれば、ステップST202で、マスタ機器10側のステップST104で決められた測定開始時刻(M_TimeStt)に対応したネットワーククロック値(NetCkStt)を自機の例えばモジュール内CPU22に設定したのち、ステップST203で、自機のネットワーククロックカウンタ222からネットワーククロックカウンタ値(S_NetCk)を取得する。
そして、ステップST204で、S_NetCk=NetCkSttであるかどうかを判断する。すなわち、マスタ機器10より指定された測定開始時刻(M_TimeStt)になったかどうかを判断する。
ステップST204での判断がYESで、マスタ機器10より指定された測定開始時刻(M_TimeStt)になると、ステップST205で、モジュール内CPU22から制御系CPU21に測定開始の指示が出され、制御系CPU21は、図示しないセンサにて測定された被測定対象の測定データの取り込みを開始しメモリに保存する。
次に、ステップST206で、マスタ機器10側のステップST105(もしくはステップST105d)で決められたデータ取得時刻(DtStgTime)に対応したネットワーククロック値(NetCkDtStg)を自機の例えばモジュール内CPU22に設定したのち、ステップST207で、自機のネットワーククロックカウンタ222から再度ネットワーククロックカウンタ値(S_NetCk)を取得する。
そして、ステップST208で、S_NetCk=NetCkDtStgであるかどうかを判断する。すなわち、マスタ機器10より指定されたデータ取得時刻(DtStgTime)になったかどうかを判断する。
ステップST208での判断がYESで、マスタ機器10より指定されたデータ取得時刻(DtStgTime)になると、ステップ209で測定データを取得し、マスタ機器10に対する測定データの送信を用意する。
続くステップST210で、送信データの用意が完了したかどうかを判断する。送信データの用意が完了していなければ、その用意が完了するまで待つが、送信データの用意が完了していれば、ステップST211で、測定データをマスタ機器10に送信する。
そして、ステップST212で、マスタ機器10へのデータ送信が完了したかどうかを判断し、データ送信が完了したならば、ステップST213で、測定終了かどうかを判断し、YESであれば当該ルーチンを終了し、NOであればステップST206に戻る。
次に、スレーブ機器20の別の動作例について、図7のフローチャートを参照しながら説明する。この別の動作例では、測定開始時刻と現在時刻との時間差を算出し、その時間差が経過した時点で、測定を開始するようにしている点で、先に説明した図6のフローチャートと異なっている。
図7のフローチャートにおいて、ステップST200〜ST203までは、図6のフローチャートと同じであるが、この別の動作例によると、ステップST203で、自機のネットワーククロックカウンタ222からネットワーククロックカウンタ値(S_NetCk)を取得したのちのステップST204aにおいて、次の動作を実行する。
すなわち、ステップST204aでは、ステップST202で設定された測定開始時刻(M_TimeStt)に対応したネットワーククロック値(NetCkStt)と、ステップST203で取得したネットワーククロックカウンタ値(S_NetCk)との時間差(Diff Time)を算出する。すなわち、Diff TimeをNetCkStt−S_NetCkにより算出する。
このようにして、時間差(Diff Time)を算出したのち、ステップST204bにおいて、時間差(Diff Time)を制御系CPU21が備えている内部クロック計数手段のカウント値(Int Cnt)に変換する。
そして、次段のステップST204cで、制御系CPU21の計数手段のカウントを開始し、続くステップST204dで、そのカウント値(Int Cnt)=時間差(Diff Time)となったかどうかを判断する。すなわち、測定開始時刻(M_TimeStt)になったかどうかを判断する。
その結果がYESで、測定開始時刻(M_TimeStt)になると、先に説明した図6のフローチャートと同じく、ステップST205〜ST213までが実行され、スレーブ機器20にて測定された測定データがマスタ機器10に向けて送信される。
〔第2実施形態〕
次に、図8〜図16を参照して、本発明の第2実施形態の動作について説明する。この第2実施形態においても、図1に示したマスタ機器10およびスレーブ機器20が用いられるが、この第2実施形態では、上記第1実施形態に対してマスタ機器10から各スレーブ機器20に対してサンプリングクロックの補正をかける点が加味され、また、マスタ機器10およびスレーブ機器20の動作についても改良が加えられている。
サンプリングクロックの補正の必要性について説明すると、測定を開始させるにあたって、マスタ機器10から各スレーブ機器20にネットワーククロックを基準としたサンプリング間隔が指定されるが、各スレーブ機器20側では、制御系CPU21とネットワーククロックカウンタ222との間でネットワーククロックを遣り取りするのに時間がかかる。
そこで、各スレーブ機器20側では、サンプリング間隔を制御系CPU21の内部クロック基準に換算して、その内部クロックのカウント値でサンプリングを行うようにしているが、経時的にマスタ機器10から指定されたサンプリング間隔とずれが生じ、また、スレーブ機器20の相互間でも、それらの内部クロックにずれがあるため、同一時刻で測定データをサンプリングするように、適宜サンプリングクロックを補正する必要がある。
まず、第2実施形態におけるマスタ機器10の具体的な動作例を図8のフローチャートに沿って説明する。なお、マスタ機器10と各スレーブ機器20は、すでにブルートゥースにより通信が確立しているものとする。
マスタ機器10から各スレーブ機器20に測定開始の指示を与えるあたって、まず、ステップST301で、内部時計111より実時間(M_Time)を読み出したのち、ステップST302で、ネットワーククロックカウンタ122から、現在のネットワーククロックカウンタ値(M_NetCk)を取得する。
そして、ステップST303で、実時間(M_Time)とネットワーククロックカウンタ値(M_NetCk)との関連付けを行う。すなわち、ネットワーククロックカウンタ値(M_NetCk)から実時間(M_Time)が分かるように関連付ける。
そして、次のステップST304で、測定開始時刻に対応したネットワーククロック値(Tstt)と、サンプリング間隔に対応したネットワーククロック基準の値(Tsamp)と、測定開始データ番号(SNstt)とを決定する。
測定開始時刻(Tstt)は、ネットワーククロックカウンタ122から現在のネットワーククロック値(Tnow)を取得し、各種処理時間や通信時間等を考慮した余裕時間(Tadd1)を算出して、(Tstt)=(Tnow+Tadd1)として決められる。
サンプリング間隔に対応したネットワーククロック基準の値(Tsamp)は、サンプリング間隔がネットワーククロック値の何カウント分に相当するかの値であり、以下の説明において、サンプリング間隔を(Tsamp)と言うことがある。
また、測定開始データ番号(SNstt)は、通常は「0」であるが、例えばマスタ機器10とスレーブ機器20との間の通信が一時的に途絶え、再開されたときに、改めて測定開始データ番号が指定されること等を考慮して、拡張性を持たせるために自由度の高い選択肢を持たせている。
そして、次のステップST305で、データ番号カウンタ11aのデータ番号(SNdt)に測定開始データ番号(SNstt)をセット(SNdt=SNstt)したのち、ステップST306で、各スレーブ機器20に対して測定開始コマンド(Start)が送信される。この測定開始コマンド(Start)には、測定開始時刻(Tstt)と測定開始データ番号(SNstt)とサンプリング間隔(Tsamp)とが含まれる。
続くステップST307で、サンプリング間隔(Tsamp)を補正するかどうかの判定がなされる。その結果がYESで補正する必要がある場合には、ステップST308aに移行し、まず、そのときのネットワーククロックカウンタ値(M_NetCk)を取得する。
そして、次段のステップST308bで、サンプリングクロックの補正をかけるネットワーククロック値(Tsync)および補正をかけるデータ番号(SNsync)を決定する。
そして、ステップST308cで、ネットワーククロック値(Tsync)とデータ番号(SNsync)とを含む同期コマンド(Sync)を各スレーブ機器20に送信したのち、ステップST307に戻る。
このステップST308bで、補正をかける時刻(ネットワーククロック値(Tsync))を決めるには、ネットワーククロックカウンタ122から現在のネットワーククロック値(Tnow)を取得するとともに、各種処理時間を考慮したN秒分のネットワーククロック値(Tadd2)を算出し、補正時刻に相当するネットワーククロック値(Tsync)を、(Tsync)=(Tnow)+(Tadd2)より得る。
また、補正をかけるデータ番号(SNsync)を決めるには、データ番号カウンタ11aから現在の最新データ番号(SNnow)を取得し、補正をかける時刻で算出したN秒分のネットワーククロック値(Tadd2)をサンプリング間隔(Tsamp)で除算し、その値を最新データ番号(SNnow)に加算して、N秒後に補正をかけるデータ番号(SNsync)を得る。
上記ステップST307での結果がNOで、サンプリング間隔(Tsamp)を補正しない場合には、ステップST309で、スレーブ機器20に対して測定データの受信を要求するかどうかの判断が行われる。
その結果が、NOで測定データの受信を要求しない場合には、ステップST307に戻るが、要求するYESの場合には、ステップST310で、データ受信カウンタ11bをクリア(DTnum=0)したうえで、次段のステップST311で、データ取得コマンド(GetData)をスレーブ機器20に送信する。
このデータ取得コマンド(GetData)には、取得する先頭データ番号(SNtrsst)と最終データ番号(SNtrstop)とが含まれ、取得する測定データが1つだけの場合は(SNtrsst)=(SNtrstop)になる。
データ取得コマンド(GetData)の送信後にスレーブ機器20からマスタ機器10に測定データが送信されるが、ステップST312で、測定データの受信が完了したかが判断され、受信中であれば、ステップST312aで、受信した測定データの数に応じてデータ受信カウンタ11bをカウントアップ(DTnum=DTnum+1)する。
測定データの受信が完了すると、ステップST313で、データ番号カウンタ11aのデータ番号(SNdt)を更新(SNdt=SNdt+DTnum)したのち、ステップST314で、測定終了かが判断される。その結果がNOで測定を終了しない場合には、ステップST307に戻り、YESで測定を終了する場合には、ステップST315で、スレーブ機器20に測定停止コマンド(Stop)を送信する。
次に、この第2実施形態におけるマスタ機器10の別の動作例を図9のフローチャートに沿って説明する。この別の動作例は、上記第1実施形態で説明した図5の動作例(外部基準パルスによるサンプリングの同期)に対応している。
このマスタ機器10の別の動作例では、まず第1ステップST300で、外部クロック校正手段30からの基準パルスを受信したかどうか判断され、基準パルスを受信すると、その基準パルスの受信時点ごとに、スレーブ機器20に対して測定開始の指示が出されることから、サンプリング間隔(サンプリングクロック(Tsamp))の補正は不要である。
したがって、このマスタ機器10の別の動作例に係る図9のフローチャートでは、先に説明した図8のフローチャートから、サンプリングクロックを補正するかどうかのステップST307と、YES(補正する)の場合に実行されるステップST308a〜ST308cまでが削除されている。
すなわち、このマスタ機器10の別の動作例では、図9のフローチャートに示すように、まず最初の第1ステップST300で、外部クロック校正手段30からの基準パルスが受信されると、ステップST301(内部時計111より実時間(M_Time)の読み出し)〜ステップST306(測定開始コマンド(Start)の送信)までが実行され、その後において、ステップST309(測定データの受信要求)〜ステップST315(測定停止コマンド(Stop)の送信)までが実行される。
なお、このマスタ機器10の別の動作例の場合、ステップST304では、測定開始時刻に対応したネットワーククロック値(Tstt)と、測定開始データ番号(SNstt)とが決定されればよく、サンプリング間隔に対応したネットワーククロック基準の値(Tsamp)については決定する必要がない。
次に、図10〜16により、第2実施形態におけるスレーブ機器20の動作について説明する。
まず、図10を参照して、スレーブ機器20の基本的な動作であるコマンド処理フローについて説明する。ステップST401でのマスタ機器10との通信待機状態で、受信有りの場合には、ステップST402で、その受信内に、測定開始コマンド(図8,図9のステップST306より送信される測定開始時刻(Tstt),測定開始データ番号(SNstt),サンプリング間隔(Tsamp)を含むコマンド)があるかどうかが判断され、YESで測定開始コマンドがある場合には、ステップST402aで「測定開始フラグ」をセットしたのち、ステップST401に戻る。
なお、この実施形態において、フラグがセットされていない場合、フラグ領域には「0」が書き込まれるが、フラグがセットされると、フラグ領域は「1」となる。
ステップST402での判断がNOで、測定開始コマンドがない場合には、次段のステップST403に進み、受信内にサンプリング同期補正コマンド(図8のステップST308cより送信される補正をかけるネットワーククロック値(Tsync)とデータ番号(SNsync)を含むコマンド)があるかどうかが判断され、YESでサンプリング同期補正コマンドがある場合には、ステップST403aで「サンプリング同期フラグ」をセットしたのち、ステップST401に戻る。
ステップST403での判断がNOで、サンプリング同期補正コマンドがない場合には、次のステップST404に進み、受信内にデータ送信要求コマンド(図8,図9のステップST311より送信される取得する先頭データ番号(SNtrsst)と最終データ番号(SNtrstop)含むコマンド)があるかどうかが判断され、YESでデータ送信要求コマンドがある場合には、ステップST404aで「データ送信開始フラグ」をセットしたのち、ステップST401に戻る。
ステップST404での判断がNOで、データ送信要求コマンドがない場合には、次のステップST405に進み、受信内に測定停止コマンド(図8,図9のステップST315より送信される測定停止コマンド(Stop))があるかどうかが判断され、YESで測定停止コマンドがある場合には、ステップST405aで「測定終了フラグ」をセットしたのち、ステップST401に戻る。
上記各ステップST402〜ST405で、その判断がいずれもNOである場合には、ステップST406に移行し、他のコマンド処理があれば、その処理を行ってステップST401に戻る。
なお、上記各ステップST402a〜ST405aでフラグをセットしたのち、ステップST401に戻しているのは、マスタ機器10から上記各コマンドが一辺に続けて送信されることがないためである。
次に、図11と図12を参照して、この第2実施形態におけるスレーブ機器20の測定開始処理フローの2例について説明する。
図11は、制御系CPU21でネットワーククロックカウンタ222のカウント値(S_NetCk)を定期的に読み出し、そのカウント値(S_NetCk)がマスタ機器10から送信された測定開始時刻(Tstt)と一致した場合に、測定を開始させる処理フローである。
まず、ステップST410で、「測定開始フラグ」が「1」にセットされたことを検知すると、次のステップST411で、次の測定開始処理に備えて「測定開始フラグ」をクリア「0」としたうえで、ステップST412で、ネットワーククロックカウンタ222から現在のネットワーククロックのカウント値(S_NetCk)を取得する。
そして、ステップST413で、ネットワーククロックのカウント値(S_NetCk)が、マスタ機器10から送信された測定開始時刻(Tstt)と一致(S_NetCk=Tstt)したかどうかを判断し、一致していない場合には、ステップST412を繰り返し実行して、ネットワーククロックのカウント値(S_NetCk)を取得する。
ネットワーククロックのカウント値(S_NetCk)と測定開始時刻(Tstt)とが一致すると、ステップST414で、「データサンプリング開始フラグ」を1にセットして、この測定開始処理を終了する。
図12は、測定開始時刻(Tstt)とネットワーククロックのカウント値(S_NetCk)との差分(Tsttdiff)を算出し、この差分(Tsttdiff)を制御系CPU21の内部クロック基準で計時して、測定を開始させる処理フローである。
図11のステップST410〜ST412と同じく、ステップST420で、「測定開始フラグ」が「1」にセットされたことを検知すると、次のステップST421で、次の測定開始処理に備えて「測定開始フラグ」をクリア「0」としたうえで、ステップST422で、ネットワーククロックカウンタ222から現在のネットワーククロックのカウント値(S_NetCk)を取得する。
そして、ステップST423で、測定開始時刻(Tstt)とネットワーククロックのカウント値(S_NetCk)との差分(Tsttdiff)を算出し、この差分(Tsttdiff)から制御系CPU21の内部クロック基準の時間差(CNTsttdiff)を計算する。この時間差(CNTsttdiff)は、差分(Tsttdiff)に相当する制御系CPU21の内部クロックの計数値である。
続くステップST424で、計数カウンタ21bにて制御系CPU21の内部クロックのカウントを開始させる。なお、ここで用いる内部クロックは、制御系CPU21のシステムクロックを所定の分周したクロックであってもよい。
そのカウント値の変数を(IntCnt)として、ステップST425で、カウント値(IntCnt)が差分(Tsttdiff)になるまで待ち、(IntCnt)=(Tsttdiff)になった時点、すなわち測定開始時刻(Tstt)になった時点で、ステップST426で、「データサンプリング開始フラグ」を1にセットし、計数カウンタ21bのカウント値(IntCnt)をクリア(IntCnt=0)して、この測定開始処理を終了する。
次に、図13を参照して、この第2実施形態におけるスレーブ機器20のデータサンプリング処理フローについて説明する。このデータサンプリング処理は、図11もしくは図12の測定開始処理後に実行される。
まず、ステップST501で、「データサンプリング開始フラグ」が「1」にセットされたことを検知すると、次のステップST502で、次のデータサンプリング処理に備えて「データサンプリング開始フラグ」をクリア「0」としたうえで、ステップST503で、アドレスカウンタ21aに書き込まれる測定データのアドレス番号(ADRcnt)に、マスタ機器10から送信された測定開始データ番号(SNstt)をセットして、(ADRcnt)=(SNstt)とする。通常は、(SNstt)=0であるから、(ADRcnt)にも「0」が書き込まれる。
そして、ステップST504で、計数カウンタ21bのカウント値(IntCnt)をクリア(IntCnt=0)したのち、ステップST505で、「サンプリング同期フラグ」が「1」にセットされているかどうかの判断が行われる。
まず、ステップST505での判断がNOで、「サンプリング同期フラグ」がセットされていない場合について説明する。この場合には、ステップST506aで、サンプリング間隔(Tsamp)を、制御系CPU21の内部クロック基準の時間差(CNTsampintv)として計算する。換言すれば、サンプリング間隔(Tsamp)が、制御系CPU21の内部クロックのカウント値で何カウントに相当するかを計算する。
そして、ステップST506bで、時間差(CNTsampintv)をカウント変数値(CNTintdiff)に置き換えて、ステップST508に移行して、計数カウンタ21bで内部クロックのカウントを開始させる。
カウント開始に伴い、ステップST509で、第1回目の測定データをサンプリングし、ステップST510で、その測定データを書込アドレスADRwr=ADRcntとして制御系CPU21の内部メモリに書き込み、ステップST511で、アドレスカウンタ21aのアドレス番号(ADRcnt)をカウントアップ(ADRcnt=ADRcnt+1)する。
そして、ステップST512で、先のステップST508でカウントを開始させた計数カウンタ21bのカウント値(IntCnt)が、時間差(CNTsampintv)に相当するカウント変数値(CNTintdiff)になるまで待ち、(IntCnt)=(CNTintdiff)になった時点で、ステップST513で、「測定終了フラグ」が「1」にセットされているかどうかを判断する。
その結果がNOで「測定終了フラグ」が「1」にセットされていなければ、データサンプリング続行として、ステップST504に戻り、ステップST505を経てステップST506に至り、「サンプリング同期フラグ」がセットされていなければ、上記と同様に、ステップST506a→ST506b→ST508〜ST512の手順を実行し、ステップST509で第2回目の測定データをサンプリングする。これを「測定終了フラグ」が「1」にセットされるまで繰り返す。
これに対して、ステップST505での判断がYESで、「サンプリング同期フラグ」がセットされている場合には、ステップST507aに移行し、ネットワーククロックカウンタ222から現在のネットワーククロックのカウント値(S_NetCk)を取得する。
そして、次段のステップST507bで、マスタ機器10から送信された補正をかける時刻(ネットワーククロック値(Tsync))と、現在のネットワーククロックのカウント値(S_NetCk)との差分(Tsyncdiff)を算出し、この差分(Tsyncdiff)から制御系CPU21の内部クロック基準の時間差(CNTsyncdiff)を求める。すなわち、現在時点から何秒後に、サンプリング補正としての同期をかけるかの時間を算出する。
次に、ステップST507cで、時間差(CNTsyncdiff)を、上記ステップST506bと同じく、カウント変数値(CNTintdiff)に置き換えたのち、上記ステップST508以降を実行する。
その過程の中で、ステップST509で、測定データをサンプリングし、ステップST512で、(IntCnt)=(CNTintdiff)になった時点(Tsync時点)で、次のデータサンプリングを行うため、ステップST513経て、ステップST504に戻り(IntCnt=0)としたうえで、ステップST508で、(IntCnt)のカウントが開始される。このようにして、サンプリング同期補正が行われる。
なお、ステップST513で、「測定終了フラグ」が「1」にセットされたと判断すると、ステップST514で、次のデータサンプリング処理に備えて、測定終了フラグをクリア「0」にして、当該データサンプリング処理を終了する。
ここで、スレーブ機器20A,20Bの2台を例にして、サンプリング同期を行わない場合と、サンプリング同期を行う場合とについて、図15,図16のタイミングチャートにより説明する。なお、スレーブ機器20Aの制御系CPU21の内部クロックをC1,スレーブ機器20Bの制御系CPU21の内部クロックをC2とする。
図15は、上記ステップST504で、「サンプリング同期フラグ」がセットされてなく、ステップST506a,ST506bを辿る場合のタイミングチャートである。
スレーブ機器20Aでは、上記ステップST506aで説明したように、サンプリング間隔(Tsamp)と内部クロックC1の時間差(CNTsampintv)として、サンプリング間隔(Tsamp)を内部クロックC1基準のカウント値(CNTintdiff)に変換する。
同様に、スレーブ機器20Bにおいても、サンプリング間隔(Tsamp)と内部クロックC2の時間差(CNTsampintv)として、サンプリング間隔(Tsamp)を内部クロックC2基準のカウント値(CNTintdiff)に変換する。
そして、スレーブ機器20A,20Bともに、内部クロックC1,C2をカウントし、そのカウント値(IntCnt)が、サンプリング間隔(Tsamp)相当時間であるカウント値(CNTintdiff)に達したときに、測定データのサンプリングを行う。
しかしながら、内部クロックC1,C2相互間のずれにより、この例では、スレーブ機器20A側では、マスタ機器10より指定されたサンプリング間隔(Tsamp)よりも長い間隔で(遅れて)測定データをサンプリングし、これに対して、スレーブ機器20B側では、サンプリング間隔(Tsamp)よりも短い間隔で(速く)測定データをサンプリングしている。
最初のサンプリング開始は同時に行われるが、2回目のサンプリング時におけるスレーブ機器20A側の誤差を(+tdiff1),スレーブ機器20B側の誤差を(−tdiff2)とすると、スレーブ機器20A,20Bの相対誤差は(tdiff1+tdiff2)で、この誤差はサンプリング回数が回を重ねるに連れて累積的に増加する。
そこで、マスタ機器10から、相対誤差(tdiff1+tdiff2)が無視し得なくなる前に、スレーブ機器20A,20Bに対して、同期コマンド(Sync)を送信する。これにより、スレーブ機器20A,20B側に「サンプリング同期フラグ」がセットされ、上記ステップST507a〜ST507cまでが実行される。
図16は、このときのタイミングチャートであり、この例では、スレーブ機器20A,20Bは、ともにn回目のサンプリングを行っており、次のn+1回目のサンプリング時点で同期させることを意図して、マスタ機器10は、n+1回目のサンプリング時点の時刻を補正をかける時刻(Tsync)として、スレーブ機器20A,20Bに送信する。
すると、スレーブ機器20A,20Bは、それぞれ、ネットワーククロックカウンタ222から現在のネットワーククロックのカウント値(S_NetCk)を取得する。
そして、スレーブ機器20A,20Bは、(Tsync)と(S_NetCk)の差分(Tsyncdiff)を算出し、その差分(Tsyncdiff)をスレーブ機器20Aでは内部クロックC1でカウントし、スレーブ機器20Bでは内部クロックC2でカウントする。
スレーブ機器20Aで取得する現在のネットワーククロックのカウント値(S_NetCk)と、スレーブ機器20Bで取得する現在のネットワーククロックのカウント値(S_NetCk)は異なるため、(Tsync)に至るまでの時間もそれぞれ異なり、この例では、(Tsync)に到達する時間がスレーブ機器20Bの方がスレーブ機器20Aよりも長いが、その分、スレーブ機器20Bの方が時間的に早く内部クロックのカウントを開始する。
したがって、スレーブ機器20A,20Bの各カウント値(IntCnt)は、ほぼ同時に差分(Tsyncdiff)に達することから、(Tsync)で指定されたn+1回目のサンプリングをほぼ同時に行うことになる。このようにして、スレーブ機器20A,20Bのサンプリング同期がとられる。
次に、図14を参照して、この第2実施形態でのデータ送信処理フローについて説明する。
まず、ステップST601で、「データ送信開始フラグ」が「1」にセットされていることを検知すると、ステップST602で、次のデータ送信処理に備えて「データ送信開始フラグ」をクリア「0」にしたうえで、ステップST603で、アドレスカウンタ21aに読み出しアドレスを設定する。
すなわち、マスタ機器10からデータ取得コマンド(Getdata)として、取得する先頭データ番号(SNtrstt)と最終データ番号(SNtrstop)とが送信されてくるが、ステップST603では、アドレスカウンタ21aのアドレス番号(ADRcnt)に、取得する先頭データ番号(SNtrstt)をセットして、(ADRcnt)=(SNtrstt)とする。
そして、次段のステップST604で、制御系CPUの内部メモリに保存されている測定データを、アドレス番号(ADRcnt)にしたがって順次読み出し、ステップST605で、マスタ機器10に送信し、その都度、ステップST606で、(ADRcnt)=(SNtrstop)かどうかが判断される。
その結果がNOで最終データに至っていなければ、ステップST606aで、アドレスをカウントアップ(ADRcnt=ADRcnt+1)したうえで、ステップST604→ST605→ST606→ST606a→ステップST604を繰り返し実行する。
そして、ステップST606で、(ADRcnt)=(SNtrstop)になったと判断すると、当該データ送信処理を終了する。
以上説明したように、本発明によれば、1台のマスタ機器10と複数台のスレーブ機器20とを無線ネットワークで接続してなる無線通信システムにおいて、マスタ機器10にのみ内部時計を備える安価な構成でありながら、マスタ機器10と各スレーブ機器20との同期、また、各スレーブ機器20相互間の同期を確実にとることができる。
10 マスタ機器
11 制御系CPU
11a データ番号カウンタ
11b データ受信カウンタ
111 内部時計
112 外部インタフェース部
12 モジュール内CPU
121 無線通信送受信部
122 ネットワーククロックカウンタ
20 スレーブ機器
21 制御系CPU
21a アドレスカウンタ
21b 計数カウンタ
211 マルチプレクサ
212 増幅器
213 A/D変換器
22 モジュール内CPU
221 無線通信送受信部
222 ネットワーククロックカウンタ

Claims (10)

  1. 1台のマスタ機器と複数台のスレーブ機器とにより無線ネットワークが構築され、上記マスタ機器より上記各スレーブ機器に対して動作開始時刻が送信され、上記各スレーブ機器は上記動作開始時刻が到来した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信する無線通信システムにおいて、
    上記マスタ機器および上記各スレーブ機器は、それぞれ制御系CPUとネットワーククロックカウンタとを含み、上記マスタ機器と上記各スレーブ機器との同期ソースとして上記無線ネットワークのネットワーククロックを共有し、
    上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して上記動作開始時刻を上記ネットワーククロックで換算された動作開始計数値として送信し、
    上記各スレーブ機器の制御系CPUは、上記動作開始計数値を受信した際、自機のネットワーククロックカウンタから、その受信時点のネットワーククロック値を取得し、上記動作開始計数値と上記受信時点のネットワーククロック値との差分クロックを算出するとともに、自機の制御系CPUの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で所定の動作を実行し、その実行結果を所定のタイミングで上記マスタ機器に送信することを特徴とする無線通信システム。
  2. 上記マスタ機器のみに実時間を計時する内部時計を備え、上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して上記動作開始計数値を送信するにあたって、上記動作開始計数値と上記内部時計による実時間とを関連付けて、その相関を記憶することを特徴とする 請求項1に記載の無線通信システム。
  3. 上記マスタ機器の制御系CPUは、上記各スレーブ機器に対して、上記動作開始計数値を同一時刻として送信するとともに、動作開始後において同一の時間間隔で動作を実行させる動作実行間隔を併せて送信し、上記各スレーブ機器は、上記動作開始計数値に基づいて一斉に動作を開始し、その後上記動作実行間隔ごとに動作を実行することを特徴とする請求項1または2に記載の無線通信システム。
  4. 上記動作実行間隔は、上記ネットワーククロックのクロック値として上記マスタ機器から上記各スレーブ機器に送信され、上記各スレーブ機器の制御系CPUは、上記動作実行間隔を内部クロックのクロック数に換算し、動作開始後は上記内部クロックの計数値に基づいて動作を繰り返し実行することを特徴とする請求項に記載の無線通信システム。
  5. 上記マスタ機器の制御系CPUは、上記各スレーブ機器の動作開始後に、上記各スレーブ機器に対して、現在時点から所定時間経過後に一斉に動作を実行させる同期時刻を所定時間ごとに送信して、上記各スレーブ機器の動作に同期をかけることを特徴とする請求項またはに記載の無線通信システム。
  6. 上記マスタ機器の制御系CPUは、上記同期時刻をネットワーククロック値として上記各スレーブ機器に送信し、上記各スレーブ機器の制御系CPUは、上記同期時刻受信時点のネットワーククロック値と上記同期時刻との差分クロックを算出するとともに、上記スレーブ機器の制御系CPUの内部クロックの計数を開始し、その内部クロック計数値が上記差分クロックに相当する時間に達した時点で同期のための動作を実行することを特徴とする請求項項に記載の無線通信システム。
  7. 上記マスタ機器の制御系CPUは、GPSの基準時刻系もしくは標準電波時計系等の外部クロック校正手段から送信される基準パルスを受信するインターフェイスを有し、上記基準パルスにより上記内部時計を定期的に校正することを特徴とする請求項ないしのいずれか1項に記載の無線通信システム。
  8. 上記マスタ機器の制御系CPUは、上記基準パルスの受信時点を基準として、上記各スレーブ機器に動作を実行させることを特徴とする請求項に記載の無線通信システム。
  9. 上記各スレーブ機器が所定の物理量を測定するセンサを有する測定ユニットであり、上記マスタ機器が上記各測定ユニットにて測定された測定データを収集して所定に処理する測定器本体であることを特徴とする請求項1ないしのいずれか1項に記載の無線通信システム。
  10. 上記無線ネットワークが、ブルートゥース(Bluetooth;登録商標)により構築されることを特徴とする請求項1ないしのいずれか1項に記載の無線通信システム。
JP2012269936A 2012-12-11 2012-12-11 無線通信システム Active JP6055668B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012269936A JP6055668B2 (ja) 2012-12-11 2012-12-11 無線通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012269936A JP6055668B2 (ja) 2012-12-11 2012-12-11 無線通信システム

Publications (2)

Publication Number Publication Date
JP2014116811A JP2014116811A (ja) 2014-06-26
JP6055668B2 true JP6055668B2 (ja) 2016-12-27

Family

ID=51172387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012269936A Active JP6055668B2 (ja) 2012-12-11 2012-12-11 無線通信システム

Country Status (1)

Country Link
JP (1) JP6055668B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6524720B2 (ja) 2015-03-06 2019-06-05 オムロン株式会社 無線機
JP2016167650A (ja) 2015-03-09 2016-09-15 オムロン株式会社 無線機、およびスレーブ制御装置
CN106293673A (zh) * 2015-06-08 2017-01-04 中兴通讯股份有限公司 操作指令处理方法及装置
JP6508538B2 (ja) * 2016-04-04 2019-05-08 Smc株式会社 産業用無線通信システム
JP2018107758A (ja) * 2016-12-28 2018-07-05 株式会社村田製作所 無線通信システム、及び、生体データ計測システム
JP2019062939A (ja) * 2017-09-28 2019-04-25 株式会社トプコン 眼科装置
JP7200347B2 (ja) * 2017-09-28 2023-01-06 株式会社トプコン 眼科装置
JP7389324B2 (ja) 2019-08-29 2023-11-30 ミツミ電機株式会社 通信方法および通信システム
US20210136711A1 (en) * 2019-11-05 2021-05-06 Realtek Semiconductor Corp. Multi-member bluetooth device capable of reducing complexity of updating internal clock of bluetooth circuit
CN113613124A (zh) * 2021-04-26 2021-11-05 珠海市杰理科技股份有限公司 Tws主、从设备及音频设备、系统
JP7370419B1 (ja) 2022-04-28 2023-10-27 フジテコム株式会社 データ収集装置、信号発生位置特定システム、データ収集方法、信号発生位置特定方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4811224B2 (ja) * 2006-09-29 2011-11-09 株式会社日立プラントテクノロジー データ送受信システム
US20090298420A1 (en) * 2008-05-27 2009-12-03 Sony Ericsson Mobile Communications Ab Apparatus and methods for time synchronization of wireless audio data streams
JP2011061690A (ja) * 2009-09-14 2011-03-24 Sharp Corp 無線テレメータシステムおよびデータ収集方法
CN102098194B (zh) * 2009-12-10 2014-02-05 中兴通讯股份有限公司 一种在局域网络中实现时间同步的方法及系统
JP2011176593A (ja) * 2010-02-24 2011-09-08 Kyocera Corp マスター通信装置、スレーブ通信装置、通信システムおよび通信方法

Also Published As

Publication number Publication date
JP2014116811A (ja) 2014-06-26

Similar Documents

Publication Publication Date Title
JP6055668B2 (ja) 無線通信システム
JP6409247B2 (ja) WiFiレンジングのための周波数オフセット補償
US8335173B2 (en) Inserting time of departure information in frames to support multi-channel location techniques
JP4639225B2 (ja) メッセージの傍受によるマスタ/スレーブ及びアドホックネットワークにおける移動時間の測定
US8837316B2 (en) RTT based ranging system and method
JP2016507193A5 (ja)
RU2012153169A (ru) Способы и устройства для поддержки межчастотных измерений
CN109714700B (zh) 一种同步方法、定位方法、主基站及定位系统
US9781561B2 (en) Method and apparatus for calculating location of electronic device
JP2013513786A (ja) 非同期ネットワーク局のクロックのずれを補正するための補正因子の計算を用いたtdoaに基づく位置測定方法
EP3073644A1 (en) Method and terminal device for searching for device
WO2014183691A1 (zh) 一种带内伪卫星无线定位方法、系统及装置
KR20060091723A (ko) 측위 시스템 및 무선 기지국
KR101114983B1 (ko) 거리 및 위치 측정 시스템
JP2016005172A (ja) メッシュ無線通信システム、無線通信方法、および、無線機
JP6009297B2 (ja) 測定装置
JP2016057169A (ja) 時計の時刻比較方法および時計の時刻補正方法
KR20100082068A (ko) 광대역 무선접속 시스템에서 기지국과 원격 무선 주파수 유닛 간 지연 시간 측정 및 지연 보상을 위한 장치 및 방법
JP5998909B2 (ja) メッシュ無線通信ネットワークシステム、無線通信方法、および、無線端末
JP2021136605A (ja) ゲートウェイ装置及び通信制御プログラム
JP6583438B2 (ja) 時刻差計測装置、システム、方法
JP2014026639A (ja) 測定装置
JP2008244741A (ja) 無線ネットワークシステム
EP2866461A2 (en) Signal collecting apparatus, periodic signal transmitting apparatus and signal collecting system
JP7380905B2 (ja) 通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160909

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R150 Certificate of patent or registration of utility model

Ref document number: 6055668

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250