JP6465787B2 - データ処理装置、デバイス、データ処理方法及びデータ処理プログラム - Google Patents
データ処理装置、デバイス、データ処理方法及びデータ処理プログラム Download PDFInfo
- Publication number
- JP6465787B2 JP6465787B2 JP2015234943A JP2015234943A JP6465787B2 JP 6465787 B2 JP6465787 B2 JP 6465787B2 JP 2015234943 A JP2015234943 A JP 2015234943A JP 2015234943 A JP2015234943 A JP 2015234943A JP 6465787 B2 JP6465787 B2 JP 6465787B2
- Authority
- JP
- Japan
- Prior art keywords
- counter
- data
- time
- value
- acquisition
- 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
Links
Images
Landscapes
- Electric Clocks (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Description
デバイスは、低コスト化や設置される環境によりRTC(real−time clock)などのGPS(Global Positioning System)やNTP(Network Time Protocol)などの時刻同期機能を有さないものを想定する必要がある。
車両の監視や自動制御を行うシステムでは、加速度、位置などの車両自身のデータや、信号機の状態や地面の状態などの周囲環境のデータを収集する。
また、複数の計測データを取得した時刻で紐付する必要があるが、発生した事象を正しく認識するためには、計測データの時刻同士の誤差精度は10[ms]程度とする必要がある。
計測データの取得時刻に誤差が発生する契機として、デバイス−センタ間の通信による誤差、デバイスの発振器の周囲の温度や個体差による周波数のずれ(ドリフト誤差と呼ぶ)、デバイスの起動タイミングによる計測データ取得タイミングのずれ(オフセット誤差と呼ぶ)が考えられる。
また、特許文献2に、計測データの送信側(デバイス)がセンタ側に時刻情報を要求し、センタから時刻情報を受け取るまでの時刻とデータに含まれている時刻情報から、伝送遅延を推定し、デバイス側で時刻を補正する技術が開示されている。
さらに、特許文献3に、センタは、デバイスに対して時刻同期情報を発行せず、デバイスより受信したデータへのACKに時刻情報を含めることで、デバイスの時刻を同期する技術が開示されている。
本発明は、このような課題を解決することを主な目的としており、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻を算出できるようにすることを主な目的とする。
カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信部と、
前記デバイスに制御情報を送信する送信部と、
前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値と、前記カウンタの周波数値と、前記受信部により前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出する時刻算出部とを有する。
***構成の説明***
図1は、本実施の形態に係るデータ収集システムのシステム構成例とハードウェア構成例を示す。
センタ10には、データ処理装置100とデータ分析装置500とストレージ600が配置されている。
各デバイス200にはセンサが接続されており、各デバイス200はセンサからセンサで計測された計測データを取得し、取得した計測データをセンタ10に対して送信する。
センタ10内のデータ処理装置100は各デバイス200から送信された計測データを受信し、受信した計測データをストレージ600に格納する。
また、データ処理装置100は各デバイス200で計測データが取得された時刻を算出する。
また、データ処理装置100はドリフト誤差及びオフセット誤差の検出及び補正を行う。
データ分析装置500は、ストレージ600に格納されている計測データを用いた分析を行う。
ストレージ600は、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。
デバイス200、データ処理装置100、データ分析装置500はそれぞれコンピュータである。
以下では、主にデバイス200とデータ処理装置100について説明する。
CPU2100は、後述するプログラムを実行する。
RAM2200には、CPU2100が実行するプログラムがロードされる。また、RAM2200には、センサからの計測データが格納される。
ROM2300には、CPU2100が実行するプログラムが記憶されている。
通信I/F2400は、データ処理装置100と通信するための通信ネットワークとのインタフェースである。通信ネットワークは有線ネットワーク、無線ネットワークのいずれでもよい。
通信I/F2400は、通信チップ又はNIC(Network Interface Card)である。
センサI/F2500は、センサとのインタフェースである。
CPU1110は、後述するプログラムを実行する。
RAM1120には、CPU1110が実行するプログラムがロードされる。
ROM1160には、CPU1110が実行するプログラムが記憶されている。
ストレージI/F1130は、ストレージ600とのインタフェースである。
通信I/F(LAN)1140は、センタ10内のLAN(Local Area Network)とのインタフェースである。
通信I/F(デバイス)1150は、デバイス200と通信するための通信ネットワークとのインタフェースである。前述したように、通信ネットワークは有線ネットワーク、無線ネットワークのいずれでもよい。
通信I/F(LAN)1140及び通信I/F(デバイス)1150は、通信チップ又はNICである。
前述したように、デバイス200は、センサで取得された計測データをデータ処理装置100に送信する。計測データに、計測データの取得時刻を付与する必要があるが、デバイス200は、安価なデバイスとするため、RTCなどの時刻を保持する機能はない。
このため、デバイス200は、計測データにカウンタ250の値を付与する。
また、計測データの取得周期は、取得周期管理部240で管理しており、外部からの変更が可能である。
データ処理装置100は、デバイス200がセンサから取得する計測データを周期的に取得し、計測時刻を補正してストレージ600に格納する。
データ処理装置100は、計測データに付与するべき時刻(計測データの取得時刻)を算出するために計測データ時刻算出部150を備えている。
また、データ処理装置100は、デバイス200の収集周期を補正するためのデバイス側取得タイミング補正部140も備えている。
受信部210で行われる処理は受信ステップに相当する。
送信部280で行われる処理は送信ステップに相当する。
また、取得周期管理部240は、計測データの取得タイミングとしてカウンタ値上限値を保持しており、カウンタ250でカウントするカウンタ値がカウンタ値上限値となった場合に計測データ取得部270に計測データ取得指示を与える。
その後、カウンタ250は初期値から再度カウントを行う。
また、取得周期管理部240は、後述するように、受信部210がデータ処理装置100から補正量を受信した場合に、補正量をカウンタ250に適用する。
取得周期管理部240は、補正適用部の例に相当する。
計測データの取得は、取得周期管理部240より計測データ取得指示を受けたタイミングで実施する。
計測データ取得部270は、計測データ取得指示を受けた際に、センサI/F2500を介して、計測データ取得要求をセンサに出力し、センサから計測データを取得する。
計測データ取得部270はデータ取得部の例に相当する。
また、計測データ取得部270で行われる処理はデータ取得ステップに相当する。
つまり、CPU2100が、これら受信部210、電文処理部220、ID管理部230、取得周期管理部240、カウンタ250、計測データ取得部270の機能を実現するプログラムを実行して、後述する受信部210、電文処理部220、ID管理部230、取得周期管理部240、カウンタ250、計測データ取得部270の動作を行う。
また、計測データ記憶部260は、RAM2200により実現される。
受信部110で行われる処理は受信ステップに相当する。
送信部170で行われる処理は送信ステップに相当する。
また、電文処理部120は、後述のデバイス側取得タイミング補正部140で算出された補正量をカウンタ250に適用するようデバイス200に指示する。
電文処理部120は、補正指示部の例に相当する。
なお、電文処理部120で行われる処理は補正指示ステップに相当する。
また、デバイス側取得タイミング補正部140は、デバイス200の取得周期管理部240で管理している計測データの取得周期の補正量を算出する。
デバイス側取得タイミング補正部140は、補正量算出部の例に相当する。
なお、デバイス側取得タイミング補正部140で行われる処理は補正量算出ステップに相当する。
計測データ時刻算出部150は、時刻算出部の例に相当する。
なお、計測データ時刻算出部150で行われる処理は時刻算出ステップに相当する。
つまり、CPU1110が、これら受信部110、電文処理部120、ID管理部130、デバイス側取得タイミング補正部140、計測データ時刻算出部150、送信部170の機能を実現するプログラムを実行して、後述する受信部110、電文処理部120、ID管理部130、デバイス側取得タイミング補正部140、計測データ時刻算出部150、送信部170の動作を行う。
(通信シーケンスについて)
図4は、本実施の形態に係るデバイス200とデータ処理装置100との間で行われる通信シーケンスの例を示す。
図4を参照して、デバイス200とデータ処理装置100の動作例を説明する。
なお、図4において、「C」はデバイス200のカウンタ250のカウンタ値を表す。
「T」は、データ処理装置100で得られるタイムスタンプ(時刻)を表す。
「R」は、デバイス200とデータ処理装置100との間の通信路の片道の伝送遅延を表す。
なお、「R」の値は、上り方向(デバイス200からデータ処理装置100の方向)の通信でも下り方向(データ処理装置100からデバイス200の方向)の通信でも同じであるものとする。
「f」は、デバイス200のカウンタ250の周波数を表す。
「Data」は、デバイス200がセンサから取得する計測データである。
「Tx」は、デバイス200が計測データを取得した時点のデータ処理装置100での時刻を表す。
データ処理装置100は、Data1を受信するとともに、デバイス200がData1を取得した時点でのデータ処理装置100での時刻Txを求める。
動作を以下に説明する。
(1)デバイス200はData1をセンサから取得するとともに、同時にカウンタ値C1も取得する。
(2)次に、デバイス200は、データ処理装置100にData1を送信する際にカウンタ値C2を取得し、Data1、C1及びC2を同時にデータ処理装置100に送信する。
(3)次に、データ処理装置100は、デバイス200より送信されたData1、C1及びC2を受信する。また、データ処理装置100は、Data1、C1及びC2の受信時にタイムスタンプT1を取得する。更に、データ処理装置100は、ID1を生成し、デバイス200にカウンタ値の再取得要求を送信する。なお、カウンタ値の再取得要求にはID1が含まれる。ID1は制御情報である。
(4)デバイス200は、カウンタ値の再取得要求を受信する。また、デバイス200は、カウンタ値の再取得要求とともにカウンタ値C3を取得する。そして、デバイス200は、カウンタ値の再取得要求に含まれるID1と、デバイス200のカウンタ周波数f(公称)と、カウンタ値C3を、ID1の送信元であるデータ処理装置100に送信する。
(5)データ処理装置100は、ID1とカウンタ値C3とデバイス200のカウンタ周波数fを受信し、受信した時刻のタイムスタンプT2を取得する。
データ処理装置100は、これらの情報を用いて、デバイス200がセンサから計測データData1を取得した時刻Txを算出する。また、データ処理装置100は、計測データData1を時刻Txとともにストレージ600に格納する。
データ処理装置100は、伝送遅延(片道分)Rとデバイス側でData1を取得してからデータの送信開始までに要した時間(C2−C1)の合計をカウンタ周波数fで除算し、時刻T1から除算値を減算する。
このため、データ処理装置100は、Txを、
Tx=T1−((R+(C2−C1))/f)
(R=(C3−C2)/2)で近似する)
で求める。
本実施の形態では、上記の通り、デバイス200のカウンタ値をデータ処理装置100の時刻に置き換えるが、デバイス200のクロック周波数は、個体や温度によって誤差が発生する。このような誤差をドリフト誤差と呼ぶこととする。
図5にドリフト誤差の発生例を示す。
図5は、デバイス1及びデバイス2の取得周期管理部240が持つカウンタの値を示しており、カウンタ値が「9999」になった際に計測データ取得指示が発生するものとしている。
デバイス2のクロックは、ドリフト誤差により、1カウントあたり0.0001[μs]の遅れが生じているものとすると、10[s]ごとに1msの誤差が生じることとなる。
このようなドリフト誤差を抑制する方法を図6に示す。
データ処理装置100は、デバイス200の取得周期管理部240が持つカウンタの上限値を変更することにより、ドリフト誤差を低減させる。
図7にドリフト誤差の検出方法及び補正方法を示す。
以下で説明するドリフト誤差の検出及び補正は、デバイス側取得タイミング補正部140により行われる。
デバイス側取得タイミング補正部140は、図7に示すように、「一元管理時刻」と「計測時刻」と「誤差」と「前回誤差との差分」を管理している。
「一元管理時刻」は、デバイス200がセンサから計測データを取得すべき時刻である。
つまり、「一元管理時刻」は、計測データの取得周期により定義されるデータ取得時刻であり、定義データ取得時刻に相当する。
「計測時刻」は、図3のシーケンスによりデバイス200のカウンタ値から算出した、デバイス200がセンサから計測データを取得した時刻である。
つまり、「計測時刻」は、デバイス200で計測データが取得される度にカウンタ250で計数された計測データ取得の際のカウンタ値を用いて算出された時刻であり、算出データ取得時刻に相当する。
「誤差」は、「一元管理時刻」と「計測時刻」との差である。
「前回誤差の差分」は、前回の誤差と今回の誤差との差分である。
ドリフト誤差の検出については、デバイス200においてドリフト誤差が発生している場合は、「前回誤差との差分」が周期的に変化するため、デバイス側取得タイミング補正部140は、「前回誤差との差分」をフーリエ変換することでドリフト誤差を検出することができる。
ここでフーリエ変換を実施する時間範囲は、任意である。時間範囲を広くとれば低周波数(ドリフト誤差が小さい)の誤差が検出可能であるが、デバイス側取得タイミング補正部140の処理量が増加する。一方、時間範囲を狭くとれば、高周波(ドリフト誤差が大きい)の誤差が検出可能である。
ドリフト誤差の補正については、デバイス側取得タイミング補正部140は、ドリフト誤差の検出時に取得した周期性から補正量を判断する。フーリエ変換を実施して得られたスペクトルが最も大きい周波数の周期とデバイスのカウンタ値の上限を用いて補正を行う。
センタ側で管理しているデータ取得周期をT_get、ドリフト誤差の周期をT_derr、デバイス200の取得周期管理部240のカウンタ値の補正前の上限をC_oldとすると、取得周期管理部240のカウンタ値の補正後の上限をC_newは以下の通りとなる。
C_new=C_old*T_get/(T_get+T_derr)
そして、電文処理部120が、デバイス側取得タイミング補正部140により算出されたドリフト誤差の補正量をカウンタ250に継続して適用するようデバイス200に指示する電文を生成し、送信部170が当該電文をデバイス200に送信する。
本実施の形態では、上記の通り、デバイス200のカウンタ値をデータ処理装置100の時刻に置き換えるが、デバイス200のクロックの周波数が低い場合、デバイス200の起動タイミングにより、データ処理装置100で管理する一元管理時刻の許容誤差を超える。このような誤差をオフセット誤差と呼ぶこととする。
図8にドリフト誤差の発生例を示す。
図8は、デバイス1及びデバイス2の取得周期管理部240が持つカウンタの値を示しており、カウンタ値が「9999」になった際に計測データ取得指示が発生するものとしている。
デバイス2のクロックは、オフセット誤差により、計測データ取得指示の発生が、毎回一定のカウント分の誤差が生じることが確認できる。
デバイス200のカウンタ250の周波数が低い場合は、誤差は大きくなり、データ処理装置100が管理する一元管理時刻の許容誤差を超えることがわかる。
このようなオフセット誤差を抑制する方法を図9に示す。
データ処理装置100は、デバイス200の取得周期管理部240が持つカウンタの上限値を1度だけ変更することにより、オフセット誤差を低減させる。
図10にオフセット誤差の検出方法及び補正方法を示す。
以下で説明するオフセット誤差の検出及び補正は、デバイス側取得タイミング補正部140により行われる。
図10は、図7と同様に、デバイス側取得タイミング補正部140が「一元管理時刻」と「計測時刻」と「誤差」と「前回誤差との差分」を管理していることを示している。
図10の「一元管理時刻」、「計測時刻」、「誤差」、「前回誤差との差分」の意味は、図7で説明した通りである。
オフセット誤差の検出について、オフセット誤差が発生している場合は、「誤差」が常に一定量発生しているとともに「前回誤差との差分」の変化が発生しない。
このため、デバイス側取得タイミング補正部140は、「前回誤差との差分」をフーリエ変換し、周期性が確認できないにも関わらず、「誤差」が発生している場合は、オフセット誤差であると検出することができる。
オフセット誤差の補正については、デバイス側取得タイミング補正部140は、オフセット誤差の誤差量から補正量を判断する。
オフセット誤差の量をT_oerr、デバイス200のカウンタ250の周期をT、デバイス200の取得周期管理部240のカウンタ値の補正前の上限をC_oldとすると、取得周期管理部240のカウンタ値の補正後の上限を1度だけ変更する値C_onceは以下の通りとなる。なお、T_oerrに関しては、進みを+、遅れを−として表現する。
C_once=C_old+(T/T_err)
そして、電文処理部120が、デバイス側取得タイミング補正部140により算出されたオフセット誤差の補正量を期間を限定してカウンタに適用するようデバイス200に指示する電文を生成し、送信部170が当該電文をデバイス200に送信する。
図11及び図12は、デバイス200の処理シーケンスを示している。
デバイス200の処理には、計測データを収集するメインの処理と、データ処理装置100からの電文受信時の割込み処理の2種類がある。
なお、図11及び図12に示される動作手順は、デバイス200でのデータ処理方法及びデータ処理プログラムの例に相当する。
まず、取得周期管理部240が、計測データ取得タイミングであるかを確認する(DM1)。
カウンタ250のカウンタ値がカウンタ値上限値であれば、計測データ取得部270は、計測データ取得タイミングであると判断する。
計測データの取得タイミングであれば(DM1でYES)、取得周期管理部240は、計測データ取得部270に計測データ取得指示を発行する。
計測データ取得部270は、センサI/F2500を介してセンサに計測データ取得要求を発行する。また、計測データ取得部270はその直後にカウンタ250よりカウンタ値C1を取得する。
センサは計測データ取得要求に応答して、計測データ取得部270に計測データDataを送信する。
計測データ取得部270は計測データDataを受信し、受信した計測データDataとカウンタ値C1を計測データ記憶部260を介して電文処理部220に送信する。
なお、カウンタ値C1は、計測データ取得部270により計測データが取得された際のカウンタ250の値であり、取得カウンタ値に相当する。
電文処理部220は、カウンタ値C1と計測データDataを取得すると、カウンタ250よりカウンタ値C2を取得する。
その後、電文処理部220は、送信部280を用いて、計測データDataとカウンタ値C1及びC2の送信を行う(DM4)。
電文処理部220は、計測データDataとカウンタ値C1及びC2を含む電文を生成し、送信部280と通信I/F2400を介して電文をデータ処理装置100に送信する。
なお、カウンタ値C2は、計測データを送信する際のカウンタ250の値であり、送信カウンタ値に相当する。
つまり、取得周期管理部240は、DM4の電文の送信後、データ取得周期のオフセットフラグを確認し、1であれば、オフセットフラグ値を0とし、カウンタ値上限値を前回の値に戻す。
割込み処理は、データ処理装置100から電文を受信した場合に発生する。
まず、電文処理部220が、データ処理装置100から受信した電文の内容を確認する(DI1,DI2)。
受信部210が受信した電文は、受信部210を介して電文処理部220に渡される。
電文処理部220は、データ処理装置100に送信した計測データに対する応答であるか、計測データの取得周期を補正する命令であるかを判断する。
その直後に、電文処理部220は、カウンタ250よりカウンタ値C3を取得する。
また、電文処理部220は、ID管理部230より、IDを受け取る。
そして、電文処理部220は、IDと、カウンタ値C3と、デバイス200に予め設定されているカウンタ250の周波数fを含む電文を生成し、送信部280と通信I/F2400を介して電文をデータ処理装置100に送信する。
なお、カウンタ値C3は、受信部210が制御情報であるIDを受信した際のカウンタ250の値であり、受信カウンタ値に相当する。
具体的には、電文処理部220は、電文に記載されている補正量を、取得周期管理部240が保持しているデータ取得周期のカウンタ値上限値に設定する。また、オフセットフラグを1に設定し、前回のカウンタ値上限値を保管しておく。
具体的には、電文処理部220は、電文に記載されている補正量を、取得周期管理部240が保持しているデータ取得周期のカウンタ値上限値に設定する。
図13、図14及び図15は、データ処理装置100の処理シーケンスを示している。
データ処理装置100は、3つの処理を並列で実施している。
1つ目の処理(コア処理1)は、計測データを受信し、IDを返送する処理であり、図13に示されている。
2つ目の処理(コア処理2)は、IDに対する応答を受信した後の処理であり、計測時刻を算出する処理であり、図14に示されている。
3つ目の処理(コア処理3)は、デバイス200の計測データ収集周期を補正するための処理であり、図15に示されている。
なお、図13〜図15に示される動作手順は、データ処理装置100でのデータ処理方法及びデータ処理プログラムの例に相当する。
受信部110が、デバイス200から送信された計測データDataとカウンタ値C1及びC2を受信した場合(Cp1でYES)は、電文処理部120がセンタ側の時刻T1を取得する(Cp2)。
時刻T1は、受信部110が計測データDataとカウンタ値C1及びC2を受信した時刻である。
受信部110が、デバイス200から送信されたカウンタ周波数f、カウンタ値C3、IDを受信した場合(Cp5でYES)は、電文処理部120がセンタ側の時刻T2を取得する(Cp6)。
時刻T2は、受信部110がカウンタ周波数f、カウンタ値C3、IDを受信した時刻である。
そして、電文処理部120は、計測データ時刻算出部150に通知を行う。
また、計測データ時刻算出部150は、時刻の補正の実施、すなわち、デバイス200で計測データを取得した時点でのセンタ側の時刻Txを算出する(Cp8)。
時刻Txの算出方法は前述した通りである。
デバイス側取得タイミング補正部140は、一定周期で各デバイス200の計測データ取得タイミングの補正が必要であるかを確認する(Cp10)。
ドリフト誤差又はオフセット誤差を補正する必要があれば(Cp10で要)、デバイス側取得タイミング補正部140が補正量を算出し、電文処理部120がデバイス側取得タイミング補正部140が算出した補正量を通知する電文を生成し、送信部170が通信I/F(デバイス)1150を介して電文をデバイス200に送信する(Cp11)。
なお、Cp10の補正の要否の確認方法及びCp11の補正量の算出方法は、前述の(ドリフト誤差の検出方法及び補正方法について)及び(オフセット誤差の検出方法及び補正方法について)に記載した通りである。
本実施の形態によれば、取得カウンタ値(c1)と送信カウンタ値(c2)と受信カウンタ値(c3)とカウンタ周波数値(f)とデータ受信された時刻(T1)とに基づき、デバイスでデータが取得された時刻(Tx)を算出できる。このため、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻(Tx)を算出することができる。
つまり、本実施の形態では、NTP、RTCなどの時刻機能が実装されていないデバイスのデータ取得時刻をセンタ側で補正して正確に得ることができる。
このため、本実施の形態によれば、NTP、RTCなどの時刻機能が実装されていないデバイスで発生する計測タイミングのずれ(オフセット誤差及びドリフト誤差)を補正することができる。
実施の形態1ではデバイスが自律的に計測データをデータ処理装置に送信する仕組みであったが、本実施の形態では、データ処理装置がデバイスに計測データの送信を指示する例を説明する。
なお、以下では、実施の形態1との差異を中心に説明を行う。
以下で説明していない事項は、実施の形態1と同じである。
本実施の形態でも、データ収集システムのシステム構成例及びハードウェア構成例は図1に示す通りである。
また、データ処理装置100の機能構成も図3に示す通りである。
図16は、本実施の形態に係るデバイス200の機能構成を示す。
図16において、図2との違いは、取得周期管理部240が削除されている点である。
図16に示す各要素は、図2に示したものと同様であるため、説明を省略する。
(通信シーケンスについて)
図17は、本実施の形態に係るデバイス200とデータ処理装置100との間で行われる通信シーケンスの例を示す。
図17を参照して、本実施の形態に係るデバイス200とデータ処理装置100の動作例を説明する。
(2)デバイス200は、計測データ取得命令を受信すると、即座にカウンタ値C1を取得し、Data1を取得する。
(3)また、デバイス200は、Data1を取得する際にカウンタ値C2を同時に取得しておく。
(4)更に、デバイス200は、Data1をデータ処理装置100に送信する際にもカウンタ値C3を取得し、受信したID1と併せてカウンタ周波数f、Data1、カウンタ値C1、C2及びC3をID1の送信元であるデータ処理装置100に送信(応答)する。
(5)データ処理装置100は、Data1等を受信した時刻のタイムスタンプT2を取得する。
データ処理装置100は、これらの情報を用いて、デバイス200がセンサから計測データData1を取得した時刻Txを算出する。
データ処理装置100は、伝送遅延(片道分)Rとデバイス側でData1を取得してからデータの送信開始までに要した時間(C3−C2)の合計をカウンタ周波数fで除算し、時刻T2から除算値を減算する。
このため、データ処理装置100は、Txを、
Tx=T2−((R+(C3−C2))/f)
(R=((T2−T1)−(C3−C1))/2)で近似する)
で求める。
図18は、デバイス200の処理シーケンスを示している。
本実施の形態では、デバイス200の処理は、センタからの要求に応じて計測データを収集するメイン処理の1種類である。
なお、図18に示される動作手順は、デバイス200でのデータ処理方法及びデータ処理プログラムの例に相当する。
まず、受信部210でデータ処理装置100から受信した電文を電文処理部220で解釈し、計測データ取得の命令であるか否かを確認する(DR1)。
計測データ取得の命令であれば(DR1でYES)、電文処理部220は、カウンタ250よりカウンタ値C1を取得する(DR2)。また、同時に、電文処理部220は、計測データ取得部270に計測データ取得指示を発行し、受信した電文に含まれるIDをID管理部230に送信する。
なお、本実施の形態では、カウンタ値C1は受信カウンタ値に相当する。
センサは計測データ取得要求に応答して、計測データ取得部270に計測データDataを送信する。
計測データ取得部270は計測データDataを受信し、受信した計測データDataとカウンタ値C2を計測データ記憶部260を介して電文処理部220に送信する(DR3)。
なお、本実施の形態では、カウンタ値C2は取得カウンタ値に相当する。
なお、本実施の形態では、カウンタ値C3は送信カウンタ値に相当する。
図19、図20及び図21は、データ処理装置100の処理シーケンスを示している。
データ処理装置100は、3つの処理を並列で実施している。
1つ目の処理(コア処理1)は、計測データ取得命令をデバイス200に発行する処理であり、図19に示されている。
2つ目の処理(コア処理2)は、IDに対する応答を受信した後の処理であり、計測時刻を算出する処理であり、図20に示されている。
3つ目の処理(コア処理3)は、計測データ取得命令の発行周期を補正するための処理であり、図21に示されている。
なお、図19〜図21に示される動作手順は、データ処理装置100でのデータ処理方法及びデータ処理プログラムの例に相当する。
計測データ取得命令の発行タイミングであれば(Cr1でYES)、電文処理部120は、時刻T1を取得する(Cr2)。
そして、電文処理部120は、ID管理部130からIDを取得し、IDを含む電文を生成し、送信部170が通信I/F(デバイス)1150を介して、電文を計測データ取得命令としてデバイス200に送信する(Cr3)
その後、データ格納部160が、時刻T1、IDをストレージ600に保管する。
時刻T1は、送信部170が制御情報たるIDを送信した時刻である。
受信部110が、デバイス200から送信された計測データData、カウンタ値C1、C2及びC3、カウンタ周波数f、IDを受信した場合(Cr5でYES)は、電文処理部120がセンタ側の時刻T2を取得する(Cr6)。
時刻T2は、受信部110が計測データData、カウンタ値C1、C2及びC3、カウンタ周波数f、IDを受信した時刻である。
その後、電文処理部120は、計測データData、カウンタ値C1、C2及びC3、カウンタ周波数f、IDを計測データ時刻算出部150に送信する。
計測データ時刻算出部150は、ストレージ600よりIDをキーに時刻T1を読み出し(Cr7)、時刻の補正の実施、すなわち、デバイス200で計測データを取得した時点でのセンタ側の時刻Txを算出する(Cr8)。
時刻Txの算出方法は前述した通りである。
最後に、データ格納部160が、計測データData、カウンタ値C1、C2及びC3、カウンタ周波数f、時刻T1及びT2、ID、時刻Txを、IDをキーとしてストレージ600に格納する(Cr9)。
デバイス側取得タイミング補正部140は、一定周期で各デバイス200への計測データ取得命令の発行タイミングの補正が必要であるかを確認する(Cr10)。
デバイス側取得タイミング補正部140は、オフセット誤差を補正する必要があれば(Cr10でYES)、計測データ取得命令の発行タイミングの補正を行う(Cr11)。
なお、Cr10の補正の要否の確認方法及びCr11の補正量の算出方法は、前述の(ドリフト誤差の検出方法及び補正方法について)及び(オフセット誤差の検出方法及び補正方法について)に記載した通りである。
本実施の形態によれば、データ処理装置が計測データの収集を要求する場合でも、取得カウンタ値(c2)と送信カウンタ値(c3)と受信カウンタ値(c1)とカウンタ周波数値(f)と制御情報(ID)が送信された時刻(T1)とデータが受信された時刻(T2)とに基づき、デバイスでデータが取得された時刻(Tx)を算出できる。このため、時刻情報を管理する機能がデバイスに実装されていなくても、デバイスでデータが取得された時刻(Tx)を算出することができる。
つまり、本実施の形態では、NTP、RTCなどの時刻機能が実装されていないデバイスのデータ取得時刻をセンタ側で補正して正確に得ることができる。
最後に、データ処理装置100及びデバイス200のハードウェア構成の補足説明を行う。
図1に示すCPU1110及びCPU2100は、プロセッシングを行うIC(Integrated Circuit)である。
CPU1110及びCPU2100は、DSP(Digital Signal Processor)等のプロセッサであってもよい。
また、ROM1160及びROM2300には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がCPU1110及びCPU2100により実行される。
CPU1110はOSの少なくとも一部を実行しながら、受信部110、電文処理部120、ID管理部130、デバイス側取得タイミング補正部140、計測データ時刻算出部150、データ格納部160、送信部170の機能を実現するプログラムを実行する。
また、CPU2100は、OSの少なくとも一部を実行しながら、受信部210、電文処理部220、ID管理部230、取得周期管理部240、カウンタ250、計測データ取得部270、送信部280の機能を実現するプログラムを実行する。
図1では、データ処理装置100及びデバイス200ともに、1つのCPUが図示されているが、複数のCPUが配置されていてもよい。
また、データ処理装置100では、受信部110、電文処理部120、ID管理部130、デバイス側取得タイミング補正部140、計測データ時刻算出部150、データ格納部160、送信部170の処理の結果を示す情報やデータや信号値や変数値が、RAM1120、又は、CPU1110内のレジスタ又はキャッシュメモリに記憶される。
また、デバイス200では、受信部210、電文処理部220、ID管理部230、取得周期管理部240、カウンタ250、計測データ取得部270、送信部280の処理の結果を示す情報やデータや信号値や変数値が、RAM2200、又は、CPU2100内のレジスタ又はキャッシュメモリに記憶される。
また、データ処理装置100の上記の要素及びデバイス200の上記の要素の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、データ処理装置100及びデバイス200は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった電子回路により実現されてもよい。
この場合は、データ処理装置100の上記の要素及びデバイス200の上記の要素は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
なお、実施の形態1及び実施の形態2では、センサで計測された計測データを取得、収集する例を説明したが、対象とするデータは計測データに限定されない。
また、実施の形態1及び実施の形態2では、データ処理装置が、デバイスが計測データを取得した時刻を算出するが、センサからデータを取得するのではなくデバイス自身がデータを生成する場合は、データ処理装置は、デバイスがデータを生成した時刻を算出する。
すなわち、実施の形態1及び実施の形態2で説明したデータの「取得」には、データの「生成」も含まれる。
Claims (9)
- カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信部と、
前記デバイスに制御情報を送信する送信部と、
前記デバイスで前記データが取得された時刻を算出する時刻算出部とを有し、
前記受信部は、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信し、
前記送信部は、
前記受信部により前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信し、
前記受信部は、
前記送信部により前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信し、
前記時刻算出部は、
前記受信部により受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信部により前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出するデータ処理装置。 - カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出部と、
前記補正量算出部により算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示部とを有し、
前記補正量算出部は、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較し、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出し、
前記補正指示部は、
前記補正量算出部により算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示するデータ処理装置。 - カウンタを有するデバイスであって、
制御情報を受信する受信部と、
データを取得するデータ取得部と、
前記データと、前記データ取得部によりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信部とを有し、
前記受信部は、
前記送信部により前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信し、
前記送信部は、
前記受信部により前記制御情報が受信された後に、前記受信部により前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信するデバイス。 - コンピュータが、カウンタを有するデバイスから、前記デバイスで取得されたデータを受信ステップと、
前記コンピュータが、前記デバイスに制御情報を送信する送信ステップと、
前記コンピュータが、前記デバイスで前記データが取得された時刻を算出する時刻算出ステップとを有し、
前記受信ステップにおいて、
前記コンピュータが、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信し、
前記送信ステップにおいて、
前記コンピュータが、
前記受信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信し、
前記受信ステップにおいて、
前記コンピュータが、
前記送信ステップにより前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信し、
前記時刻算出ステップにおいて、
前記コンピュータが、
前記受信ステップにより受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信ステップにより前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出するデータ処理方法。 - コンピュータが、カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出ステップと、
前記コンピュータが、前記補正量算出ステップにより算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示ステップとを有し、
前記補正量算出ステップにおいて、
前記コンピュータが、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較し、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出し、
前記補正指示ステップにおいて、
前記コンピュータが、
前記補正量算出ステップにより算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示するデータ処理方法。 - カウンタを有するコンピュータが、
制御情報を受信する受信ステップと、
データを取得するデータ取得ステップと、
前記データと、前記データ取得ステップによりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信ステップとを有し、
前記受信ステップにおいて、
前記コンピュータが、
前記送信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信し、
前記送信ステップにおいて、
前記コンピュータが、
前記受信ステップにより前記制御情報が受信された後に、前記受信ステップにより前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信するデータ処理方法。 - カウンタを有するデバイスから、前記デバイスで取得されたデータを受信する受信ステップと、
前記デバイスに制御情報を送信する送信ステップと、
前記デバイスで前記データが取得された時刻を算出する時刻算出ステップとをコンピュータに実行させるデータ処理プログラムであって、
前記受信ステップにおいて、
前記コンピュータに、
前記デバイスから、前記データと、前記デバイスでデータが取得された際の前記カウンタの値である取得カウンタ値と、前記デバイスから前記データが送信された際の前記カウンタの値である送信カウンタ値とを受信させ、
前記送信ステップにおいて、
前記コンピュータに、
前記受信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが受信された後に、前記制御情報を前記デバイスに送信させ、
前記受信ステップにおいて、
前記コンピュータに、
前記送信ステップにより前記制御情報が送信された後に、前記デバイスから、前記デバイスで前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを受信させ、
前記時刻算出ステップにおいて、
前記コンピュータに、
前記受信ステップにより受信された前記受信カウンタ値と前記取得カウンタ値と前記送信カウンタ値と前記カウンタの周波数値と、前記受信ステップにより前記データが受信された時刻とに基づき、前記デバイスで前記データが取得された時刻を算出させるデータ処理プログラム。 - カウンタを有し既定の周期でデータを取得するデバイスでデータが取得される度に前記カウンタで計数されたデータ取得の際のカウンタ値を用いて算出された時刻である算出データ取得時刻と、前記周期で定義されるデータ取得時刻である定義データ取得時刻とを比較し、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差を解析し、誤差を補正するための前記カウンタに対する補正量を算出する補正量算出ステップと、
前記補正量算出ステップにより算出された補正量を前記カウンタに適用するよう前記デバイスに指示する補正指示ステップとをコンピュータに実行させるデータ処理プログラムであって
前記補正量算出ステップにおいて、
前記コンピュータに、
複数の算出データ取得時刻と複数の定義データ取得時刻とを時系列に比較させ、誤差を解析した結果、前記算出データ取得時刻の前記定義データ取得時刻に対する誤差が周期的に発生していることが判明した場合に、前記カウンタに継続して適用する補正量を算出させ、
前記補正指示ステップにおいて、
前記コンピュータに、
前記補正量算出ステップにより算出された補正量を前記カウンタに継続して適用するよう前記デバイスに指示させるデータ処理プログラム。 - カウンタを有するコンピュータに、
制御情報を受信する受信ステップと、
データを取得するデータ取得ステップと、
前記データと、前記データ取得ステップによりデータが取得された際の前記カウンタの値である取得カウンタ値と、前記データを送信する際の前記カウンタの値である送信カウンタ値とを前記制御情報の送信元に送信する送信ステップとを実行させるデータ処理プログラムであって、
前記受信ステップにおいて、
前記コンピュータに、
前記送信ステップにより前記データと前記取得カウンタ値と前記送信カウンタ値とが送信された後に、前記制御情報を受信させ、
前記送信ステップにおいて、
前記コンピュータに、
前記受信ステップにより前記制御情報が受信された後に、前記受信ステップにより前記制御情報が受信された際の前記カウンタの値である受信カウンタ値と、前記カウンタの周波数値とを前記制御情報の送信元に送信させるデータ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234943A JP6465787B2 (ja) | 2015-12-01 | 2015-12-01 | データ処理装置、デバイス、データ処理方法及びデータ処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015234943A JP6465787B2 (ja) | 2015-12-01 | 2015-12-01 | データ処理装置、デバイス、データ処理方法及びデータ処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017102658A JP2017102658A (ja) | 2017-06-08 |
JP6465787B2 true JP6465787B2 (ja) | 2019-02-06 |
Family
ID=59015446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015234943A Expired - Fee Related JP6465787B2 (ja) | 2015-12-01 | 2015-12-01 | データ処理装置、デバイス、データ処理方法及びデータ処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6465787B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6915808B2 (ja) * | 2018-03-23 | 2021-08-04 | 長崎県 | 多点同時計測システム |
JP7146462B2 (ja) * | 2018-06-07 | 2022-10-04 | 日置電機株式会社 | 測定装置および測定システム |
JP7070290B2 (ja) * | 2018-09-27 | 2022-05-18 | 沖電気工業株式会社 | 通信装置、集約装置、通信システムおよび制御プログラム |
WO2020149103A1 (ja) * | 2019-01-16 | 2020-07-23 | 日本電気株式会社 | モニタリングシステム、および同期方法 |
JP7314314B2 (ja) * | 2020-01-10 | 2023-07-25 | 日立Astemo株式会社 | 車載システム、および、センシングデータの受信方法、送信方法 |
JP7350665B2 (ja) * | 2020-02-04 | 2023-09-26 | 株式会社東芝 | 無線装置、無線システムおよびデータ送信方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4051840B2 (ja) * | 1999-05-28 | 2008-02-27 | 富士電機システムズ株式会社 | 分散されているシステム機器の同期装置 |
JP2013168850A (ja) * | 2012-02-16 | 2013-08-29 | Toshiba Corp | 分散型制御システム |
-
2015
- 2015-12-01 JP JP2015234943A patent/JP6465787B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2017102658A (ja) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6465787B2 (ja) | データ処理装置、デバイス、データ処理方法及びデータ処理プログラム | |
US9519306B2 (en) | Distribution device, distribution system, and distribution method | |
KR101109897B1 (ko) | 메시지 교환 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
JP6025700B2 (ja) | 時刻同期システム、スレーブ装置、及び時刻同期方法 | |
US7990880B2 (en) | Detector and method for detecting abnormality in time synchronization | |
WO2021035645A1 (zh) | 传感系统、传感设备及其控制方法、可移动平台和存储介质 | |
EP4044466B1 (en) | Synchronization method and device | |
JP7119437B2 (ja) | 車両用マスタ電子制御装置、車両用スレーブ電子制御装置、車両用ログ収集システム及び車両用ログ収集プログラム | |
US8793402B2 (en) | Synchronizing time across a plurality of devices connected to a network | |
JP2005157946A (ja) | 同期方法、コンピュータシステム及びプログラム | |
JP2015039131A (ja) | 計測装置および方法 | |
JP5813489B2 (ja) | 異常発生推定方法及び異常発生推定装置 | |
WO2008114214A3 (en) | Techniques for improved error detection in a wireless communication system | |
CN115761935A (zh) | 用于启用持久性车辆软件接口的系统和方法 | |
TWI618432B (zh) | 頻率校正裝置及方法 | |
JP2012150665A (ja) | 端局装置 | |
JP2015004649A (ja) | スレーブ装置、マスタ・スレーブシステム、および時刻同期方法 | |
CN109451521B (zh) | 一种基站密集性分布式组网的gps同步方法 | |
JP2017096651A (ja) | 時刻同期方法、振動センサー、振動検知装置、プログラム及び記録媒体 | |
JP5409165B2 (ja) | クロック補正周期補正方法および無線基地局装置 | |
JP6572136B2 (ja) | 通信システム、通信装置、第二装置、通信方法及びコンピュータプログラム | |
JP2014500691A (ja) | ワイヤレス基地局においてシステム・タイミングを導き出す方法および装置 | |
CN104602291B (zh) | 一种无线传感网络中时间测量的方法 | |
KR101529444B1 (ko) | 통신 장치 | |
JP2012076482A (ja) | 位置検知システムおよびその処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180724 |
|
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: 20181211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6465787 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |