(58)【調査した分野】(Int.Cl.,DB名)
それぞれの前記パケットは、前記データ通信機に固有の機器IDと、前記データを取得した時刻を示すタイムスタンプと、前記データのデータ量を示すトータルレングスと、前記データの中における前記パケットデータの位置を示す分割IDと、誤り検出符号とがさらに付加され、
前記受信バッファ領域は、前記機器ID及び前記タイムスタンプにより前記データと1対1に関連付けられ、
前記パケットデータが格納される前記受信バッファ領域の前記データに対応する位置は、前記トータルレングス及び前記分割IDにより特定され、
前記正常送信判定は、前記誤り検出符号により誤りが検出されるか否かで判定される
ことを特徴とする請求項1記載のデータ通信方法。
少なくとも1つの前記通信規格における前記パケットの前記パケットデータのデータ量が、前記データのデータ量より大きく、前記少なくとも1つの前記通信規格における前記パケットの前記パケットデータが前記データと一致することを特徴とする請求項1記載のデータ通信方法。
【発明を実施するための形態】
【0011】
まず、本発明のデータ通信機及びデータ処理システムについて、
図1を参照しながら説明する。本発明のデータ処理システム100は、データ通信機110と、サーバ120とを備える。
【0012】
データ通信機110は1または複数の機器140と接続され、機器140から各種データを取得する。機器140は、工場の製造装置、移動体の各種システム等様々なものが用いられる。さらにデータ通信機110は、取得したデータをサーバ120に送信する。サーバ120は、受信したデータを解析したり、受信したデータに基づいて機器140の動作を制御するコマンドを生成し、データ通信機110にコマンドを送信したりする。なお、受信データの解析やコマンドの生成は、サーバ120に接続される他の装置(図示せず)で行うこともできる。
【0013】
ここで、本発明のデータ通信機110、データ通信方法及びデータ処理システム100では、取得した同一のデータを複数の通信規格を用いてデータ通信機110からサーバ120に送信する。また、それぞれの通信規格により送信されるデータは、通信規格に準拠する形式に変換される。さらに、それぞれの通信規格により送信されるデータは、通信規格のデータ量に応じて、1または複数の分割データであるパケットデータに変換して送信することもできる。送信されるパケットデータは通信規格に応じたパケットとして送信される。サーバ120は、データ通信機110から送信されるデータと1対1で関連付けられ、このデータのデータ量と一致する大きさの受信バッファ領域を備える。このような構成において、まず、データ通信機110は、同一のデータを通信規格ごとに別途サーバ120に送信する。つまり、データ通信機110は、同一のデータを用意された通信規格数だけ送信する。それぞれの通信規格に準拠したデータは、各通信規格に応じて1または複数のパケットに分割されて送信される。サーバ120は、パケットを受信するごとに受信したパケットが正常に送信されたかを確認し、正常に送信されている場合はそのパケットのパケットデータを受信バッファ領域のデータに対応する位置に格納する。そして、1または複数のパケット受信することにより受信バッファ領域の全領域にパケットデータが格納されると、サーバ120は、受信バッファ領域の全領域のパケットデータを送信されたデータとして取り出す。つまり、受信バッファ領域は、正常送信されたパケットデータを受信するごとに、その領域が埋められていく構成である。
【0014】
例えば、データ通信機110は、データ取得デバイス111と、複数の通信用ボード112a〜112cと、マイクロコンピュータ等からなる制御部113とを備える。データ取得デバイス111は、例えば、数値データを取得するセンサ、画像データや動画データを取得するカメラ等が考えられるが、これらのデバイスに限られず、データの取得が可能なものであればどのようなものであってもよい。また、単に機器140で計測されたデータを取得するデバイスであっても良い。データ取得デバイス111は、複数の機器140それぞれに対して1つずつ設けられても良いし、1または複数のデータ取得デバイス111がそれぞれ1または複数の機器140に接続されても良い。データ取得デバイス111で取得したデータは、制御部113に送られる。
【0015】
制御部113は、データ取得デバイス111及び複数の通信用ボード112a〜112cとそれぞれ接続される。以下、複数の通信用ボード112a〜112cは、通信用ボード112aと、通信用ボード112bと、通信用ボード112cの3個で構成される場合について説明するが、これに限られず、通信用ボードの個数は2個であってもよく、または4個以上であってもよい。通信用ボード112a〜112cは、データ通信機110に接続される拡張ボードでも良いが、データ通信機110の基板等に回路が構成される通信用回路であっても良い。ここで、複数の通信用ボード112a〜112cは、互いに異なる通信規格でデータを送信する送信機であり、それぞれの中継器114a〜114cを介してインターネット回線130と接続される。例えば、通信用ボードの通信規格が3Gである場合、それに対応する中継器は3G基地局であり、通信用ボードの通信規格がWi−Fiである場合、それに対応する中継器は、Wi−Fiアクセスポイントである。
【0016】
これにより、制御部113は、互いに異なる複数の通信規格によって、インターネット回線130を介して、データ取得デバイス111が取得したデータをパケットに変換してサーバ120に送信することができる。サーバ120は、マイクロコンピュータ等からなるサーバ制御部121とサーバ記憶領域122とを有する。サーバ120は、例えば、複数のデータ通信機110とインターネット回線130を介して接続されており、それぞれのデータ通信機110から送信されるパケットを、サーバ記憶領域122で一括して管理することが可能である。サーバ120とインターネット回線130との間の接続は、有線、無線のいずれでもよい。また、サーバ制御部121は、複数の通信規格によって、インターネット回線130を介して、データ通信機110へコマンドを送信可能であることが望ましい。この場合、サーバ121は、サーバ記憶領域122に形成される受信バッファ領域に保存されるデータに基づいて、データ通信機110を動作させることができる。
(実施の形態1)
次に、実施の形態1として、データ通信機、データ通信方法及びデータ処理システムの具体的な構成について、
図1〜
図10を参照しながら説明する。ここで、データ通信機及びデータ処理システムの基本構成は、
図1に示した構成である。
【0017】
まず、データ取得デバイス111がデータを取得する(
図2のステップ1)。その後、取得したデータは制御部113に送られ、制御部113は、通信ボード112a〜112cの通信規格に準拠するそれぞれ1または複数のパケットA、パケットB、パケットCにデータを変換する(
図2のステップ2)。
【0018】
パケットAは通信ボード112aの通信規格に準拠し、全てのパケットAの実データ部分であるパケットデータを合わせると取得したデータが構成される。ここで、受信したデータを通信規格に応じて分割したパケットデータを分割データと称す。
図3に示すようにパケットAは、取得したデータを分割して生成される分割データAと、データ通信機110に固有の機器IDと、通信用ボード112aの通信規格を特定する無線IDと、データ取得デバイス111がデータを取得したときの時刻を示すタイムスタンプと、データのデータ量を示すトータルレングスと、その分割データがデータの中の何番号のデータであるかを示す分割IDと、分割データのサイズを示すレングスと、誤り検出符号とを含む。
【0019】
パケットBは、通信ボード112bの通信規格に準拠し、全てのパケットBの実データ部分である分割データを合わせると取得したデータが構成される。
図4に示すようにパケットBは、分割データBと、機器IDと、通信用ボード112bの通信規格を特定する無線IDと、タイムスタンプと、トータルレングスと、分割IDと、レングスと、誤り検出符号とを含む。同様に、パケットCは、通信ボード112cの通信規格に準拠し、全てのパケットCの実データ部分である分割データを合わせると取得したデータが構成される。
図5に示すようにパケットCは、分割データCと、機器IDと、通信用ボード112cの通信規格を特定する無線IDと、タイムスタンプと、トータルレングスと、分割IDと、レングスと、誤り検出符号とを含む。そして、制御部113は、通信用ボード112aを介してパケットAを、通信用ボード112bを介してパケットBを、通信用ボード113cを介してパケットCを、それぞれインターネット回線130を介してサーバ120に送信する(
図2のステップ3)。なお、通信規格におけるパケットデータのデータ量の制限によっては、取得したデータ全てを1つのパケットで送信できる場合もある。そのため、パケットA、B、Cのいずれか1つまたは複数は、1つだけ生成される場合もある。
【0020】
ここで、パケットA、B、Cは、それぞれ対応する通信用ボード112a〜112cが異なるため、通信規格もそれぞれ異なり、通信速度もそれぞれ異なる。そのため、パケットA、B、Cはそれぞれ異なるサイズの分割データを含む。例えば、パケットCが送信される通信規格がWi−Fiであって、パケットAが送信される通信規格が3Gである場合、Wi−Fiは3Gと比較して通信速度が速く、一度に送信可能なデータのサイズも大きい。そのため、パケットCの分割データCのサイズは、パケットAの分割データAのサイズよりも大きくすることができる。以下、パケットC、パケットB、パケットAの順番に通信速度が大きく、この順番で分割データのサイズも大きくなるものとして説明する。
【0021】
次に、サーバ120はパケットA、B、Cを受信し、サーバ制御部121は、記憶装置であるサーバ記憶領域122内に受信バッファ領域123を作成する(
図2のステップ4)。受信バッファ領域123は、データ通信機110から送信されるパケットの機器ID、タイムスタンプ、及びトータルレングスの情報を基にして作成される。すなわち、受信バッファ領域123は、送信されたパケットが含む機器ID及びタイムスタンプを用いて取得したデータと1対1で関連付けられ、例えば、受信バッファ領域123は取得したデータと同一の機器ID及びタイムスタンプが付される。また、受信バッファ領域123は、データのデータ量と同じ大きさであり、各パケットに含まれるトータルレングスにより、その大きさが示される。
【0022】
受信バッファ領域123が作成された後、サーバ制御部121は、誤り検出符号を用いて受信したパケットが正常に送信されているかどうかを判定する。なお、ここでは誤り検出符号をパケットに付与し、誤り検出により正常に送信されているか否かを判定しているが、その他の方法で正常に送信しているか否かを判定しても良い(
図2のステップ5)。パケットが正常に送信されている場合、そのパケットに含まれる分割データを、そのパケットに含まれる機器ID及びタイムスタンプと同一の機器ID及びタイムスタンプが付された受信バッファ領域123に格納する。なお、取得したデータと受信バッファ領域123との関連付けは、機器ID及びタイムスタンプを用いて判別しても良いが、そのほかの方法で判別しても良い(
図2のステップ6)。このようにして、順次受信したパケットの正常送信の確認と分割データの格納を繰り返し、受信バッファ領域123が分割データで満たされることによって(
図2のステップ7)、サーバ記憶領域122で分割される前のデータが復元されて送信完了とする(
図2のステップ8)。
【0023】
ここで、サーバ120は、同一データから生成されたパケットA、B、Cを個別に受信する。受信バッファ領域123の各領域は、受信した正常に送信されたパケットを受け取つごとに、そのパケットの分割データが格納されて埋められていく。以下、受信バッファ領域123に分割データが格納されていく工程について、
図1,
図6〜
図10を用いて詳細に説明する。
【0024】
取得したデータが1または複数に分割され、各パケットAは分割されたデータの1つを分割データとして備える。各パケットAは、トータルレングスと分割ID等から分割された何番目のデータを備えるかを判別できる。そして、この順番で各パケットAの分割データを並べることにより、取得したデータが復元される。同様に、パケットB、Cもそれぞれ取得したデータの分割位置が分かる態様で、取得したデータを分割して保持する。そのため、受信バッファ領域123の各領域は、
図6に示すように、それぞれのパケットA、B、Cの分割データが格納される位置があらかじめ確定しており、そのパケットを正常受信した時にはその位置に分割データが格納される。
【0025】
例えば、パケットC、B、Aの順でサーバ120がパケットを受信し、分割データのデータ量もこの順で大きいとする。この場合、サーバ120は、最初に取得したデータの最初の位置の分割データが格納されたパケットCを受信する。サーバ120は、このパケットCを受信すると、正常に送信されているかどうか判定し、正常に送信されている場合は、
図6に示すように、取得したデータに対応する位置である受信バッファ領域123の最上位にこのパケットCの分割データCを格納する。その後、この分割データCが格納された後、正常にパケットA、Bを受信した時は、そのままその分割データを対応する位置に上書きしても良いし、すでに分割データが格納されているデータとしてパケットA、Bを破棄しても良い。次に、2番目のパケットCを受信し、このパケットCは正常に送信されていないと判断したとする。この場合は、2番目のパケットCは破棄され、この分割データCは受信バッファ領域123に格納されない。ここで、受信バッファ領域123のこの分割データCが格納されなかった領域は分割データCの欠損領域と定義されるとする。分割データCの欠損領域には、その後正常に送信されたと判断されるパケットA又はパケットCの分割データが格納される。以降この動作が繰り返され、最終的に受信バッファ領域123の全領域は、分割データA又は分割データB又は分割データCが格納される。
【0026】
以下、分割データCの欠損領域に分割データA、Bが格納される構成を例示する。
【0027】
サーバ120がパケットCを受信できなかった場合、又は受信した分割データCに誤りが検出された場合、
図6に示すように、分割データCが欠損する領域ができる。この場合、分割データCの欠損領域には、
図7に示すように、例えば、サーバ120がパケットCの次にパケットBを受信し、そのパケットBが正常に送信されている場合、分割データBが格納される。さらに、分割データCの欠損領域の残りの領域に対応するパケットBを次に正常に受信すると、その領域にも受信したパケットBの分割データBが格納される。
【0028】
そして、受信バッファ領域123のうち、分割データCが格納される部分及び分割データC欠損領域の部分は、パケットCに含まれるレングスと分割IDにより割り出すことができる。例えば、分割データCのサイズ、すなわちレングスが64、分割データBのレングスが32であって、
図6に示すように、分割データCの上から1番目、すなわち分割ID1を含むパケットCの分割データCは受信バッファ領域に格納されるが、分割ID2を含むパケットCの分割データCが欠損して、分割データCの欠損領域ができたとする。この場合、パケットCの分割ID1の部分は分割データCで満たされており、そのサイズは64である。このサイズは、レングスが32である分割データBの2個分に相当する。そして、分割ID1〜2を含むパケットBの部分には既に分割データCが格納されているため、サーバ制御部121は分割ID1〜2を含むパケットBの分割データBを受信バッファ領域に格納しない。そして、分割データCの欠損領域のサイズは64であるから、これは、パケットBの分割ID3〜4に対応する部分である。そのため、サーバ制御部121は、分割ID3〜4を含むパケットBの分割データBが正常に送信されると、そのパケットBの分割データBを受信バッファ領域123に格納する。
【0029】
また、分割データCの欠損領域において、サーバ120が分割データBを受信できなかった場合、又は受信した分割データBに誤りが検出された場合、それらの分割データB、Cが欠損する領域ができる。この場合は、
図7と同様に、その受信バッファ領域123において、サーバ120がパケットAを受信し、パケットAに誤りが検出されなければ、パケットAに含まれる分割データAを、
図8に示すように、分割データC及びBの両方が欠損する領域に格納する。分割データB及びCの両方が欠損する領域は、パケットB及びCに含まれるレングスと分割IDにより割り出される。例えば、パケットBのレングスが32、パケットAのレングスが16である場合、パケットBの分割ID3〜4に対応するパケットAの分割IDは、9〜16である。そして、
図8に示すように、分割ID3の分割データBが欠損したとする。この場合、分割データBの分割ID3の部分は、分割データAの分割ID9〜12に対応する。そのため、分割ID9〜12が付されたパケットAを正常に受信すると、分割データB及びCの両方が欠損する領域に分割ID9〜12が付されたパケットAの分割データAが格納される。
【0030】
ここで、分割データBのデータ量は、分割データAのデータ量の整数倍であることが好ましい。
図8に示すように、分割データBのサイズが分割データAのサイズの整数倍である場合、例えば、分割データBのサイズが32、分割データAのサイズが16である場合、分割データBが欠損する領域には、丁度2個の分割データAが格納される。そのため、受信バッファ領域123において、格納された分割データAは分割データBの格納領域をはみ出て格納されることはない。これに対して、
図9に示すように、分割データBのデータ量が分割データAのデータ量の整数倍でない場合、例えば、分割データBのレングスが16、分割データAのレングスが6である場合、分割データBが欠損する領域に分割データAを3個分格納する必要がある。しかし、3個分の分割データAを格納すれば、分割データBが欠損する領域から3つ目の分割データAははみ出す。はみ出す部分を廃棄するためには、廃棄するための制御が複雑となる。廃棄する場合、はみ出す部分は、上記の例のようにパケットA及びBのレングス及び分割IDから割り出され、廃棄される。ただし、はみ出す部分が生じたとしても、正常に送信されたパケットを受信するたびに上書きする構成としていれば、はみ出す部分を割り出し、廃棄する必要はない。
【0031】
以上より、実施の形態1に係るデータ通信方法によれば、1つの通信規格でパケットを送信して分割データが欠損したとしても、その領域は他の通信規格によるパケットの分割データで補われる。このため、分割データが欠損する領域においてパケットの再送処理を行う必要がなくなり、データ品質を維持しながら、再送処理を行う場合と比較して通信速度を向上させることができる。特に、容量が大きいデータを取り扱う場合や、データ通信の頻度が高い場合は、再送処理を行う間に次のデータを送信しなければならないという事態が起こり、リアルタイムでのデータ通信ができなくなるが、本実施の形態では、再送処理を行わない態様であるため、リアルタイムでのデータ通信が可能となる。さらに、2つの通信規格でパケットを送信して、その両方の分割データが欠損したとしても、その領域はさらに他の通信規格による分割データで補われる。このため、再送処理を行う場合と比較して、通信速度をさらに向上させることができる。
【0032】
また、
図10に示すように、分割データCと、分割データBと、分割データAのいずれもが欠損する場合も考えられる。このような結果になった場合に限り、再送処理を行う。
【0033】
また、最終欠損領域についての再送処理としては、最終欠損領域のみの再送処理を行う態様と、受信バッファ領域123全体の再送処理を行う態様とが考えられる。最終欠損領域のみの再送処理を行う場合は、受信バッファ領域123全体の再送処理を行う態様と比較して、通信に必要なデータが少ないため処理速度が高いが、最終欠損領域の部分を特定する必要がある。最終欠損領域の部分は、例えば、欠損した領域に対応する各パケットに含まれるレングスと分割IDから割り出される。一方、受信バッファ領域123全体の再送処理を行う場合、最終欠損領域のみの再送処理を行う場合と比較して、処理速度は低くなるが、最終欠損領域の部分を割り出す必要がないため制御を単純化できる。いずれの場合も、従来において、1つの通信規格で欠損領域が生じて再送処理を行う場合と比較すれば、データ品質を維持しながら結果的に通信速度が速くなる。
【0034】
また、本実施の形態は、互いに異なる複数の通信規格を使用する態様であるため、それぞれの通信に使用される周波数が異なり、通信可能なエリアもそれぞれ異なる。例えば、Wi−Fiによる通信状況は悪いが3Gによる通信状況は良好であるエリアにおいては、Wi−Fiによる無線通信だけでは欠損の頻度が高く、データ転送の確度が著しく低下してしまう。これに対して、本実施の形態のように、例えばWi−Fiによる無線通信と、3Gによる無線通信とを両方とも使用すれば、Wi−Fi又は3Gの少なくともいずれかの通信状況が良好なエリアにおいて欠損の頻度を低下させることができるため、通信可能なエリアを拡張することができる。
【0035】
なお、本実施の形態では、3つの通信規格を使用しているが、これを4つ以上の通信規格を使用する態様とすることで、さらに最終欠損領域が生じる確率は低下する。これにより、通信速度及びデータ品質をさらに向上させ、通信可能なエリアをさらに拡張することができる。2つの通信規格を使用する態様では、1つの通信規格を使用する態様と比較して最終欠損領域が生じる確率が下がり、3つの通信規格を使用する態様と比較して、最終欠損領域が生じる確率が上がるが、制御を単純化することができる。
【0036】
また、受信バッファ領域123が分割データで満たされてデータ送信が完了したときに、その受信バッファ領域123の機器ID及びタイムスタンプと同一の機器ID及びタイムスタンプを含むパケットであって、サーバ120へ送信される予定のパケットの送信を中止する態様としてもよい。例えば、受信バッファ領域123が分割データCで満たされてデータ送信が完了すれば、パケットB及びパケットAをさらに送信しても、受信バッファ領域に格納する必要はない。そのため、そのようなパケットB及びパケットAの送信を中止することで、無駄なデータ通信を抑制することができる。
【0037】
なお、分割データC、分割データB、分割データAの順番に、対応する通信規格の通信速度が高いこととして、この順番に受信バッファ領域に格納されることを説明したが、この順番に限られない。
(実施の形態2)
次に本発明の実施の形態2に係るデータ通信について、
図1、
図11を参照しながら説明する。以下の説明において、データ処理システムの各構成には、
図1に示される参照符号と同じ参照符号が用いられる。実施の形態1では、制御部113はデータをパケットAと、パケットBと、パケットCとに変換することを述べたが、実施の形態2では、制御部113はデータをパケットAと、パケットBとに変換するが、パケットCに変換せず、代わりにパケットC’に変換する。
【0038】
パケットC’は、
図11に示すように、データ取得デバイス111が取得したデータを、分割されることなくそのまま含む。そのため、パケットC’はデータの中の分割データの番号を特定する分割IDや、分割データのデータ量を特定するレングスを含まない。
【0039】
サーバ120がパケットC’を受信できなかった場合、又は受信したパケットC’に誤りが検出された場合等のパケットC’が正常に送信されなかった場合、パケットC’のデータが欠損する。そして、このデータの欠損の領域は、パケットBの分割データB又はパケットAの分割データAで補われることとなる。このようにして、受信バッファ領域123が分割データB又は分割データAで満たされることによって、データの送信が完了する。そして、分割データAが欠損した場合、再送処理を行い、詳細については実施の形態1と同様であるため省略する。
【0040】
実施の形態2に係るデータ通信においても、実施の形態1に係るデータ通信と同様に、3つの通信規格によってパケットの送信を行うため、通信速度及びデータ品質を向上させ、通信可能なエリアを拡張できる。詳細については、実施の形態1で述べた効果と同様であるため省略する。
【0041】
なお、サーバ制御部121はサーバ記憶領域122で記憶領域を作成し、パケットC’はトータルレングスを含まなくともよい場合がある。トータルレングスは、実施の形態1で説明したように、受信バッファ領域のサイズを決めるために用いられるが、パケットC’は分割されることなくそのままデータを含むため、サーバ120がパケットC’を最も早く受信する場合、パケットC’に含まれるデータをそのままサーバ記憶領域122に保存すればよい。この場合、分割データを一時的に格納するための受信バッファ領域123を作成する必要はなく、パケットC’はトータルレングスを含む必要もない。
【0042】
なお、実施の形態1及び2において、サーバ制御部121は、受信バッファ領域123を作成することを述べたが、例えば、データ取得デバイス111が取得するデータのサイズが小さい場合や、データ通信の頻度が低い場合等、各パケットA、B、Cがそれぞれデータを分割されることなくそのまま含む場合は、分割データを一時的に格納するための受信バッファ領域123を作成する必要はない。この場合、各パケットA、B、Cは受信バッファ領域を作成するためのトータルレングスを含む必要はない。
【0043】
また、分割データを含むパケットは、その分割データのデータ量を特定するレングスを含むことを述べたが、これに限られない。例えば、パケットCの分割データCのサイズを64、パケットBの分割データBのサイズを16、パケットAの分割データAのサイズを4とするなど、予めパケットに含まれる分割データのサイズを決めておけば、各パケットはレングスを含まなくともよい。
【0044】
また、各パケットA、B、Cは無線IDを含むことを述べたが、各分割データがどの通信規格で送信されたかを特定する必要がない場合、各パケットA、B、Cは無線IDを含まなくともよい。
【0045】
また、データ通信機110からサーバ120へデータを送信することを述べたが、サーバ120からデータ通信機110へコマンド等を送信可能としてもよい。例えば、データ通信機110から送信されたデータをサーバ記憶領域122で確認した後に、そのデータに応じて機器140を制御するコマンドをデータ通信機110に送信して機器140を動作させることができる。
【0046】
なお、データ処理システム100のデータ通信機110及びサーバ120は、インターネット回線130を介して接続される場合を述べたが、これに限られず、直接通信を行ってもよい。直接通信を行う場合は、データ通信機110とサーバ120との間の距離が制限されるが、インターネット回線130を介して接続する場合は、距離が制限されず広域通信が可能となる。
【0047】
通信規格として、3G及びWi−Fiを例として述べたが、他には2G、LTE、4G、5G、400MHz帯、900MHz帯、DECT、Bluetooth(登録商標)、ZigBee(登録商標)、ミリ波通信等が考えられる。さらに、Wi−Fiとしては、Wi−Fi(2.4G)やWi−Fi(5G)等が考えられる。また、有線規格を用いてもよい。