(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0015】
図1は、通信システム10の全体構成図である。通信システム10は、複数の通信装置12を備える。
図1に示す例では、通信システム10は、2個の通信装置12を備える。通信装置12は、送信装置14と、受信装置16と、記憶部18とを有する。
【0016】
通信装置12では、送信装置14が、有線の送信側イーサネットから入力された連続データSDから空データIFSの少なくとも一部を削除したパケットWPを無線搬送波により変調して送信する。ここで、送信装置14は、パケットWPを無線送信しない期間の少なくとも一部において、無線搬送波の振幅を0にして、無線搬送波の送信を停止する。これにより、通信装置12は、消費電力の低減を実現する。また、受信装置16は、受信したパケットWPから連続データを生成して、当該連続データに空データを追加または削除して、有線の受信側イーサネットに送信する。イーサネットは、ネットワークの一例である。イーサネットの通信速度は、一例として、10Mbit、100Mbit、1Gbit、10Gbitである。イーサネットは、一例として、全2重通信であるが、他の通信方式でもよい。更に、イーサネットは、将来の規格に対応するものであってもよい。
【0017】
送信装置14は、データ受信部20と、パケット化部22と、制御部24と、送信部26とを有する。
【0018】
データ受信部20は、有線の送信側イーサネットと接続されている。データ受信部20は、画像、文字等の情報を含む実データPCおよび空データIFSを含む連続データSDを送信側イーサネット上の他の機器から受信する。データ受信部20は、一例として、イーサネットで規定されているMII(Media Independent Interface)規格に準じた回路である。尚、MIIは、GMII、XMII、RGMIIを含む。
【0019】
パケット化部22は、データ受信部20と接続されている。パケット化部22は、データ受信部20から実データPC及び空データIFSを含む連続データSDを取得する。パケット化部22は、空データIFSの少なくとも一部を削除する。例えば、パケット化部22は、予め定められた長さ以上の空データIFSが連続した場合、当該長さ以上の空データIFSを削除する。ここでいう、予め定められた長さは、イーサネットで定められている実データPC間の空データIFSの最小の長さである96ビットである。パケット化部22は、無線搬送波によって送信するパケットWPを生成して、送信部26に出力する。例えば、パケット化部22は、データ量が予め定められた固定長のパケットWPを、空データIFSを削除することにより生成する。また、パケット化部22は、データ量がそれぞれ異なる可変長のパケットWPを、空データIFSを削除することにより生成してもよい。
【0020】
送信部26は、パケット化部22と接続されている。送信部26は、パケット化部22からパケットWPを取得する。送信部26は、連続データSDから空データIFSの少なくとも一部が削除されたパケットWPを無線搬送波により変調して無線送信する。
【0021】
制御部24は、データ受信部20、パケット化部22及び送信部26と接続され、データ受信部20及び送信部26を制御する。例えば、制御部24は、送信すべきパケットWPの有無の情報をパケット化部22から取得して、パケットWPを無線送信しない期間の少なくとも一部において送信部26による無線搬送波の送信を停止させる。尚、制御部24は、パケット化部22とは独立して、送信部26に無線搬送波の送信を停止させてもよい。例えば、制御部24は、データ受信部20から受信した実データPCがない旨の情報を取得して、送信部26に無線搬送波の送信を停止させてもよい。また、制御部24は、空データIFSを無線送信する期間が予め定められた期間以上連続すると、無線搬送波の送信を停止する。
【0022】
受信装置16は、受信部30と、データ生成部32と、データ送信部34とを有する。
【0023】
受信部30は、送信側において、送信側イーサネットから受信した実データPC及び空データIFSを含む連続データSDから空データIFSの少なくとも一部が削除されて無線送信された無線搬送波を復調して、パケットWPを受信する。受信部30は、パケットWPをデータ生成部32に出力する。
【0024】
データ生成部32は、受信部30と接続されている。データ生成部32は、受信部30からパケットWPを取得する。データ生成部32は、パケットWPに空データIFSを追加または削除して、連続データSDを生成する。例えば、データ生成部32は、送信側により空データIFSが削除されることによって、実データPC間の間隔が予め定められた間隔未満の場合、空データIFSを追加することによって、実データPC間の間隔を予め定められた間隔以上とする。ここでいう予め定められた間隔は、一例として、イーサネットによって定められている96ビットである。また、データ生成部32は、無線搬送波を受信していない期間、空データIFSを連続データSDに追加する。ここで、データ生成部32は、送信側から送られてきたパケットWPの未処理量に応じて、空データIFSを追加、削除することが好ましい。これにより、受信側の受信装置16の処理能力が、送信側の送信装置14の処理能力に対して差分があった場合においても、受信装置16は対応することができる。
【0025】
データ送信部34は、データ生成部32と接続されている。データ送信部34は、データ生成部32から連続データSDを取得する。データ送信部34は、有線の受信側イーサネットに接続されている。データ送信部34は、実データPCおよび空データIFSを含む連続データSDを受信側イーサネット上の他の機器へ送信する。データ送信部34は、一例として、イーサネットで規定されているMIIに準じた回路である。
【0026】
記憶部18は、送信装置14及び受信装置16と接続されている。記憶部18は、送信装置14における送信前のパケットWP、及び、受信装置16が受信したパケットWPを一時的にバッファリングする。具体的には、記憶部18は、パケット化部22から入力される送信前のパケットWPを記憶する。記憶部18は、送信前の記憶したパケットWPをパケット化部22へ出力する。記憶部18は、データ生成部32から入力される受信したパケットWP等を記憶する。記憶部18は、受信して記憶したパケットWPをデータ生成部32へ出力する。記憶部18は、一例として、FIFO(First In, First Out)である。
【0027】
図2は、送信側イーサネットから受信側イーサネットまでのデータの変化を説明する図である。
図2は、全ての空データIFSが削除されたパケットWPを送受信する形態である。
図2において、横軸は、時間を示す。
【0028】
送信装置14側では、まず、送信側イーサネットが、
図2の最上段に示す連続データSDをデータ受信部20に入力する。連続データSDは、実データPCと、実データPC間を埋める空データIFSとを含む。
【0029】
図2の2段目及び3段目に示すように、データ受信部20は、10ビットのMIIコードとして転送された連続データSDからイーサネットの実データPCをパケット化部22へと出力する。
【0030】
パケット化部22は、データ受信部20から入力された連続データSDから10ビットのMIIコードのうち、2ビットのコントロール信号を用いて、MIIのデータ信号をデコードすることなく、実データPCを抽出するとともに、転送不要の空データIFSを全て削除したデータをパケットWPとして記憶部18に一時的に記憶させる。ここで、パケット化部22は、データ受信部20を介して送信側イーサネットから送信された連続データSDを予め定められた最小データ量ML以上処理して記憶部18に記憶させた後、送信部26にパケットWPを送信させることが好ましい。これにより、送信部26は、連続データSDが予め定められた最小データ量ML以上処理されて記憶部18に記憶された後、送信を開始する。尚、最小データ量MLは、次式を満たし、且つ、無線搬送波を停止する時間を考慮して決定することが好ましい。最小データ量MLを大きくするほど、無線搬送波の出力時間が減少して、レイテンシが増大する。更に、パケット化部22は、MIIコードを最小データ量ML処理した後であって、処理中のイーサネットの実データPCの末尾まで処理した時に、送信部26にパケットWPを送信させることがより好ましい。
【数1】
【0031】
図2の4段目に示すように、パケット化部22は、空データIFSを削除して、記憶部18に記憶させたパケットWPを送信部26に無線搬送波に変調させて送信させる。ここで、制御部24は、空データIFSが削除されることによって生じるパケットWPとパケットWPとの間の時間、即ち、イーサネットの実データPCを送信しない期間は無線搬送波を停止させる。
【0032】
受信側では、受信部30が、
図2の4段目に示す無線搬送波を受信する。受信部30は、受信したパケットWPをデータ生成部32へと出力する。
図2の5段目及び6段目に示すように、データ生成部32は、空データIFSを追加することにより受信したパケットWPからMIIコードの連続データSDを再構築する。例えば、データ生成部32は、イーサネットの実データPC間の間隔がイーサネットの規格である96ビットとなるように、空データIFSを追加する。また、データ生成部32は、無線搬送波を送信した送信装置14のクロックと自己のクロックとの誤差及び規格の違い(例えば、TXとRX)に起因する非同期を吸収するように空データIFSを追加または削除してもよい。尚、データ生成部32は、必要に応じてCSMA/CD (Carrier sense multiple access/Collision detection)などのイーサネットの規格に応じてフローコントロール、Carrier extendの挿入などの操作を行ってもよい。データ生成部32は、
図2の7段目に示す実データPC及び空データIFSを含む連続データSDを再構築しつつ、記憶部18に一時的に記憶させる。データ送信部34は、記憶部18から連続データSDを読み出して、受信側イーサネットへ出力する。
【0033】
図3は、送信側イーサネットから受信側イーサネットまでのデータの変化を説明する図である。
図3は、少なくとも一部の空データIFSを削除して固定長のパケットWPを送受信する形態である。
図3において、横軸は、時間を示す。
【0034】
送信側では、送信側イーサネットが、
図3の最上段に示す連続データSDをデータ受信部20に入力する。データ受信部20は、連続データSDをパケット化部22へと出力する。
【0035】
図3の4段目に示すように、パケット化部22は、データ受信部20から入力された連続データSDから実データPCを抽出するとともに、空データIFSの少なくとも一部を削除したデータをパケットWPとして生成しつつ、記憶部18に記憶させる。ここで、パケット化部22は、パケットWPの先頭が空データIFSとならないように、空データIFSを削除することが好ましい。これにより、送信部26が、無線搬送波を停止できる時間を長くすることができ、更なる消費電力の低下を実現できる。
【0036】
また、パケット化部22は、空データIFSの一部を削除し、パケットWPを予め定められた固定長となるようにする。更に、パケット化部22は、固定長のパケットWPを生成する場合、1個のパケットWPに含まれるイーサネットの実データPC間の空データIFSを削除することなく、イーサネットの実データPC間の時間関係を維持したパケットWPを生成することが好ましい。
【0037】
パケット化部22は、記憶部18に記憶させたパケットWPを読み出しつつ、無線搬送波に変調させて送信部26に送信させる。ここで、送信部26は、固定長のパケットWPをMIIコードのタイミングであるイーサネットのタイミングを維持して送信する。尚、送信側において、データ受信部20が連続データSDの実データPCの受信を開始してから送信部26がパケットWPの先頭のデータを送信開始するまでのレイテンシは、全てのパケットWPにおいてほぼ同じである。ここで、無線によるデータ転送は、有線によるデータ転送よりも速い。これにより、制御部24は、前述の無線クロックと有線クロックとの周波数の差と、空データIFSが削除されることによって生じる先のパケットWPと次のパケットWPとの間の時間、無線搬送波の送信を送信部26に停止させることができる。また、制御部24は、空データIFSが予め定められた時間以上連続して、パケットWPが固定長以上の長さになる場合、空データIFSを送信しないことにより、無線搬送波の送信を送信部26に停止させる。ここで、イーサネットの実データPC間の時間関係を維持したパケットWPの場合、送信部26は、連続データSDのMIIのデータタイミングを維持して、無線送信することができる。これにより、受信装置16のデータ生成部32が送信側とほぼ同じタイミングで連続データSDを再構築することができるので、パケットWPの受信時間の不確定性を減少させて、低レイテンシでの送信を可能することができる。従って、送信側において、先のパケットWPの最後のデータの有線イーサネットへの送信時刻と、受信側における次のパケットWPの受信時刻との前後関係を保障することができる。これにより、受信側では、データ送信部34が先のパケットWPの最後のデータを有線イーサネットへ送信する時刻が、受信部30が次のパケットWPを受信する時刻よりも後にすることができ、データショートをなくすことができる。
【0038】
受信装置16側では、受信部30が、
図3の4段目に示す無線搬送波を受信する。尚、受信側では、受信部30が全てのパケットWPの先頭データを受信した後、データを保持することなく、すぐに有線イーサネットへと送信する。受信側において、パケットWPの先頭データの受信から有線イーサネットへの転送までのレイテンシは、全てのパケットWPにおいてほぼ同じである。即ち、受信側では、パケットWPのペイロードが到着すると、すぐに、有線イーサネットへと送信する。受信部30は、受信した無線搬送波から復調したパケットWPをデータ生成部32へと出力する。
図3の5段目及び6段目に示すように、データ生成部32は、送信側と異なる受信側のイーサネットクロックに基づいて、空データIFSを追加することにより、受信したパケットWPからイーサネットの実データPCを含む連続データSDを再構築しつつ、記憶部18に一時的に記憶させる。これにより、データ生成部32は、再構築したイーサネットの実データPC間のデータをイーサネットの規格に適合させる。ここで、送信装置14においてイーサネットの実データPCが長時間連続して空データIFSを削除できない状態が長く続く場合、データ生成部32は、送信側と受信側とのイーサネットのクロックの非同期を吸収するため、再構築された連続データSDの空データIFSの一部を削除、または、連続データSDに空データIFSを追加してクロックとのタイミング調整を行うことが好ましい。また、データ生成部32は、無線搬送波を受信しない期間、空データIFSを追加する。データ生成部32は、再構築した連続データSDを記憶部18から読み出して、データ送信部34に出力する。データ送信部34は、
図3の7段目に示す実データPC及び空データIFSを含む連続データSDを受信側イーサネットへ出力する。ここで、送信側において、連続データSDの実データPCが分割されて、2個のパケットWPに分割された場合、データ送信部34が先に受信したパケットWPの末尾部分を有線イーサネットに送信するときに、受信部30が次のパケットWPのペイロードの先頭データを受信する。これにより、受信側では、データ生成部32は、先のパケットWPと、次のパケットWPに分割された連続データSDの実データPCを容易に再構築できる。
【0039】
図4は、パケットWPのデータ構造を説明する図である。
図4に示すパケットWPは、一例として、空データIFSが全て削除された可変長のパケットである。
図4に示すパケットWPは、パケット長W_Lengthと、パケット長E_Lengthと、イーサネットの実データPCとを含む。パケット長W_Lengthは、パケットWPの全体の長さを示す情報である。パケット長E_Lengthは、パケットWPに含まれるイーサネットの連続データSDの実データPCの長さを示す情報である。尚、パケット長は、MIIコードをカウントすることにより算出される。このように、送信側の送信装置14のパケット化部22が、連続データSDの空データIFSを全て削除した場合でも、パケット長E_LengthはパケットWPに含まれる。これにより、受信側の受信装置16は、受信したパケットWPに含まれる複数のイーサネットの実データPCを、パケット長E_Lengthに基づいて分割して元の状態に再構築することができる。
図4に示す例では、イーサネットの実データPCは、途中で分割されることなく、1個のパケットWPに含まれる。尚、パケットWPは、パケットWPの長さを調整するために追加された空データIFSの長さを示すPadding Lengthを含んでもよい。
【0040】
図5は、パケットWPのデータ構造の別の形態を説明する図である。
図5に示すパケットWPは、一例として、空データIFSの一部が削除された可変長のパケットである。
図5に示すパケットWPは、パケットWPのパケット長W_Lengthと、複数のノーマルデータとを含む。ノーマルデータは、例えば、8ビットのデータDataと、1ビットまたは2ビットの制御信号CSとを含む。例えば、制御信号CSが「N」であれば、8ビットのデータDataが連続データSDに含まれる実データPCを示し、制御信号CSが「I」であれば、8ビットのデータDataが連続データSDに含まれる空データIFSであることを示す。このように、送信側の送信装置14のパケット化部22が、連続データSDの空データIFSの一部を残している。これにより、受信側の受信装置16は、連続データSDの実データPC間の境界として、受信したパケットWPに含まれる当該空データIFSを検出して、複数のイーサネットの実データPCを分割して元の状態に再構築することができる。
図5に示す例では、イーサネットの実データPCは、分割されて、2個のパケットWPにまたがってもよい。
【0041】
図6は、送信装置14のパケット化部22による記憶部18への固定長のパケットWPの書き込み処理のフローチャートである。
【0042】
図6に示すように、送信装置14での書き込み処理では、パケット化部22は、送信側イーサネットから連続データSDが入力されると、MIIのコードに基づいて、イーサネットの連続データSDの実データPCか、空データIFSかを判定する(S100)。パケット化部22は、入力された連続データSDが実データPCと判定すると(S100:Yes)、記憶部18に書き込まれたデータのカウントを示す書込カウントWCが0か否かを判定する(S102)。
【0043】
パケット化部22は、書込カウントWCが0であると判定すると(S102:Yes)、これは次のパケットWPに何も書き込まれていない状態を示すので、当該パケットWPの先頭に固定長のパケットWPのヘッダを書き込む(S106)。一方、パケット化部22は、書込カウントWCが0でないと判定すると(S102:No)、パケットWPの一部にヘッダ及び実データPCが既に書き込まれているので、ヘッダを書き込まない。この後、パケット化部22は、取得したイーサネットの実データPCをデータとして記憶部18に書き込み、パケットWPに追加する(S108)。
【0044】
次に、パケット化部22は、書込カウントWCが固定長のパケットWPの長さを示すパケット長WLか否かを判定する(S110)。パケット化部22は、書込カウントWCがパケット長WLであると判定すると(S110:Yes)、これは1個のパケットWPが完成したことを意味するので、データフラグ及び書込カウントWCを初期化する(S112)。一方、パケット化部22は、書込カウントWCがパケット長WLでないと判定すると(S110:No)、これはパケットWPの生成途中を意味するので、初期化をしない。この後、パケット化部22は、ステップS100以降を繰り返す。
【0045】
ステップS100において、パケット化部22は、入力された連続データSDが空データIFSと判定した場合(S100:No)、直前の連続データSDを実データPCと判定すると(S114:Yes)、ステップS102以降を実行する。この場合、ステップS108では、パケット化部22は、データとして空データIFSを記憶部18に書き込む。これにより、固定長のパケットWPの末尾が、イーサネットの実データPCの末尾と一致した場合、パケット化部22は、当該パケットWPの末尾の後に空データIFSを追加する。この結果、先のパケットWPの末尾が、空データIFSではなく、イーサネットの実データPCの末尾で終了していても、先のパケットWPの送信に続いて、次のパケットWPで空データIFSが送信される。この結果、受信装置16は、先のパケットWPがイーサネットの実データPCの末尾で終了したことを判定することができる。
【0046】
一方、パケット化部22は、直前のデータを実データPCでない、即ち、空データIFSと判定すると(S114:No)、パケットWPとして書き込まれているデータにイーサネットの送信すべきデータがあるか否か、換言すれば、記憶部18に書き込まれているデータが削除可能な空データIFSのみか否かを判定する(S116)。パケット化部22は、例えば、実データPCの有無を示すフラグによって、実データPCの有無を判定してもよい。パケット化部22は、パケットWPに実データPCがあると判定すると(S116:Yes)、入力された空データIFSを記憶部18に書き込んだ後(S118)、ステップS110以降を実行する。一方、パケット化部22は、パケットWPに実データPCがないと判定すると(S116:No)、入力された空データIFSを書き込むことなく削除して(S120)、ステップS100以降を実行する。換言すれば、パケット化部22は、ステップS116において、パケットWPが空データIFSのみか否かによって、受信した空データIFSを間引くか、書き込むかを判定している。このとき、前述の固定長のパケットWPの末尾が、イーサネットの実データPCの末尾と一致した場合に追加する空データIFSはイーサネットの実データPCと同等として扱う。
【0047】
図7は、送信装置14のパケット化部22による記憶部18から固定長のパケットWPの読み出し処理のフローチャートである。
【0048】
図7に示すように、送信装置14での読み出し処理では、パケット化部22は、記憶部18に記憶されているデータ数#1が、閾値Thより大きいか否かを判定する(S200)。データ数#1は、書き込み処理、読み出し処理で適時増減する値である。また、閾値Thは、無線送信のスケジュール管理用の値であって、パケットWPの固定長WLから設定される値である。パケット化部22は、閾値Thより大きいと判定するまで、ステップS200を繰り返す(S200:No)。
【0049】
パケット化部22は、データ数が閾値Thより大きいと判定すると(S200:Yes)、データ数#1が0か否かを判定する(S202)。尚、ステップS200の処理後のステップS202では、データ数#1は0でない。パケット化部22は、データ数#1が0でないと判定すると(S202:No)、パケットWPを記憶部18から読み出す(S204)とともに、読出カウントRCを+1インクリメントして、パケットWPを送信部26へと出力する。読出カウントRCは、1個のパケットWPにおいて、記憶部18から読み出した回数である。パケット化部22は、読出カウントRCがパケットWPの固定長WLか否かを判定する(S206)。パケット化部22は、読出カウントRCが固定長WLとなるまで(S206:No)、ステップS202からS206を繰り返す。尚、ステップS206の処理後のステップS202では、データ数#1が0の場合も含む。
【0050】
パケット化部22は、読出カウントRCが固定長WLになったと判定すると(S206:Yes)、データ数#1が判定用個数Nよりも大きいか否かを判定する(S208)。判定用個数Nは、レイテンシを最適化する値であって、小さいほど好ましく、0が理想値である。尚、判定用個数Nが0の場合、記憶部18からパケットWPが読み出された状態で、記憶部18に残るデータが0となる。
【0051】
パケット化部22は、データ数#1が判定用個数Nよりも大きいと判定すると(S208:Yes)、閾値Thを「Th−(#1−N)」に再設定する(S210)。これにより、パケット化部22は、閾値Thを小さくする。一方、パケット化部22は、データ数#1が判定用個数N以下と判定すると(S208:No)、閾値Thを再設定しない。この後、パケット化部22は、読出カウントRCを初期化した後(S212)、ステップS200以降を繰り返す。
【0052】
パケット化部22は、ステップS202において、データ数#1が0と判定すると(S202:Yes)、これは記憶部18にデータが残っていない、即ち、データがショートしたエラー状態を示すので、データのショートを低減するために閾値Thを「Th+(WL−RC)」に再設定する(S218)。換言すれば、パケット化部22は、閾値Thを、記憶部18から読み出したデータ量を示す読出カウントRCに基づいて調整する。これにより、パケット化部22は、小さすぎる閾値Thを少し増加させることになるので、記憶部18に記憶されたデータがショートすることを抑制できる。この後、パケット化部22は、読出カウントRCをインクリメントしながら、記憶部18のデータを読み出すことなく、パケットWPに空データIFSを追加する(S220)。この後、パケット化部22は、読出カウントRCが固定長WLとなるまで(S222:No)、ステップS220を繰り返す。パケット化部22は、読出カウントRCが固定長WLとなったと判定すると(S222:Yes)、記憶部18の当該パケット分の領域をリセットした後(S226)、ステップS200以降を繰り返す。
【0053】
図8は、受信装置16のデータ生成部32による受信した固定長のパケットWPの記憶部18への書き込み処理のフローチャートである。
【0054】
図8に示すように、受信装置16での書き込み処理では、データ生成部32は、無線搬送波のデータを受信したか否かを判定する(S300)。データ生成部32は、無線搬送波のデータを受信したと判定するまで、ステップS300を繰り返す(S300:No)。データ生成部32は、無線搬送波のデータを受信したと判定すると(S300:Yes)、受信したデータがパケットWPの先頭か否かを判定する(S302)。データ生成部32は、パケットWPの先頭でないと判定すると(S302:No)、受信データが空データIFSか否かを判定する(S304)。データ生成部32は、受信データが空データIFSでないと判定すると(S304:No)、即ち、受信データが実データPCである場合、実データPCである当該データを記憶部18に書き込んだ後(S306)、ステップS300以降を繰り返す。
【0055】
一方、データ生成部32は、受信データが空データIFSであると判定すると(S304:Yes)、削除カウントRVが0より大きいか否かを判定する(S308)。削除カウントRVは、空データIFSを削除するか否かの判定用の値であって、空データIFSが削除されるごとに、1ずつデクリメントされる。データ生成部32は、削除カウントRVが0よりも大きいと判定すると(S308:Yes)、実データPC後の空データIFSが連続している時間に対応する空データ量ITが、空データ量ITの最小値である最小量MinITよりも大きいか否かを判定する(S310)。MinITは、例えば、96ビットである。データ生成部32は、空データ量ITが最小量MinITよりも大きいと判定すると(S310:Yes)、削除カウントRVを1デクリメントするとともに、受信した空データIFSを削除する(S312)。これにより、データ生成部32は、イーサネットの規格に適合するように、空データIFSを削除して、クロックのタイミングを調整できる。この後、データ生成部32は、ステップS300以降を繰り返す。
【0056】
一方、データ生成部32は、削除カウントRVが0以下(S308:No)、または、空データ量ITが最小量MinIT未満(S310:No)と判定すると、受信した空データIFSをデータとして記憶部18に書き込む(S306)。
【0057】
データ生成部32は、ステップS302において、受信した無線搬送波のデータがパケットWPの先頭と判定すると(S302:Yes)、記憶部18に残っているデータ数であるデータ数#2が閾値Thaよりも大きいか否かを判定する(S320)。閾値Thaは、予め定められた値であって、新たに受信した空データIFSを記憶部18に書き込むか、削除するかを判定する値である。換言すれば、閾値Thaは、新たなパケットWPを受信したときに、記憶部18に残されている前のパケットWPの理想的なデータ数である。理想的な閾値Thaは、レイテンシを向上させつつ、データのショートをなくすことのできる値である。閾値Thaは、一例として、2から4個である。
【0058】
データ生成部32は、データ数#2が閾値Thaより大きいと判定すると(S320:Yes)、これは記憶部18に残っているデータ数#2が多すぎることを意味するので、パケットWPの先頭の到着時に残存するデータ数#2が小さくなるように、且つ、データのショートが生じないように、削除カウントRVを「#2−Tha」に再設定した後(S322)、ステップS312において、空データIFSを削除する。このように、データ生成部32は、削除カウントRVが0になるまで、空データIFSを削除することで、新たなパケットWPを受信したときのデータ数#2を低減させて、レイテンシを向上させることができる。例えば、送信側のイーサネットのクロックが、受信側のイーサネットのクロックよりも速い場合、記憶部18に残っているデータ数#2が多すぎる状態が生じる。一方、データ生成部32は、データ数#2が閾値Tha以下と判定すると(S320:No)、これは残っているデータ数#2が適切であることを意味するので、削除カウントRVを再設定しない。この後、データ生成部32は、ステップS304以降を実行する。これにより、データ生成部32は、パケットWPの先頭を受信したときの記憶部18のデータ数#2、即ち、データ残量から、受信装置16でのサイクル調整を行うことができる。
【0059】
図9は、受信装置16のデータ生成部32によって記憶部18に書き込まれた固定長のパケットWPの読み出し処理のフローチャートである。
【0060】
図9に示すように、受信装置16での読み出し処理では、データ生成部32は、記憶部18のデータ数#2が0か否かを判定する(S400)。データ生成部32は、データ数#2が0でないと判定すると(S400:No)、データ数#2が閾値Thbより大きいか否かを判定する(S402)。閾値Thbは、空データIFSを追加するか否かを判定する値である。データ生成部32は、データ数#2が閾値Thbより大きいと判定すると(S402:Yes)、記憶部18に記憶されているイーサネットの実データPC及び空データIFSを含む連続データSDを読み出して(S404)、データ送信部34へと出力する。
【0061】
データ生成部32は、ステップS402において、データ数#2が閾値Thb以下と判定すると(S402:No)、直前のデータが実データPCか否かを判定する(S406)。データ生成部32は、直前のデータが実データPCであると判定すると(S406:Yes)、ステップS404を実行する。一方、データ生成部32は、直前のデータが実データPCでないと判定すると(S406:No)、即ち、直前のデータが空データIFSの場合、空データIFSを追加した後(S408)、記憶部18の連続データSDを読み出すことなく、ステップS400以降を繰り返す。これにより、データ生成部32は、データ数#2が閾値Thbより少ない場合であっても、前の空データIFSに連続させて空データIFSを追加することによって、受信時間の不確定性を吸収するデータ数を記憶部18に確保して、記憶部18に記憶されているデータがショートすることを抑制できる。
【0062】
データ生成部32は、ステップS400において、データ数#2が0と判定すると(S400:Yes)、即ち、記憶部18にデータが残っていない場合、直前のデータが実データPCか否かを判定する(S410)。データ生成部32は、直前のデータが実データPCでないと判定すると(S410:No)、ステップS408以降を実行する。一方、データ生成部32は、直前のデータが実データPCであると判定すると(S410:Yes)、エラー処理として、空データIFSを追加する(S412)。この後、データ生成部32は、閾値Thbを「Thb+1」に再設定した後(S414)、ステップS400以降を繰り返す。
【0063】
上述したように、通信システム10では、送信装置14の制御部24は、送信部26が送信する無線搬送波を低減するので、稼働コストを削減しつつ、消費電力を低減することができる。また、通信システム10では、無線搬送波の送信を低減するので、通信装置12の個数が増加しても、通信装置12が送信する無線搬送波の干渉及び混信を低減することができる。これにより、通信装置12は、例えば、4チャネルしかない60GHz帯においても、無線チャネルの空間多重化を実現することができる。
【0064】
また、通信システム10では、パケット化部22が、空データIFSの少なくとも一部を削除するので、実データPC間の時間間隔を低減することができる。これにより、通信システム10では、レイテンシを向上させることができる。
【0065】
次に、上述した効果を証明するシミュレーションについて説明する。
【0066】
図10は、空データIFSの割合と、出力減少割合との関係を示すグラフである。出力減少の割合は、3つの異なる無線通信速度について調べた。パケットWPのサイズは、4096Byteとした。
図10のシミュレーション条件は、次の通りである。
(条件1)イーサネットの通信速度 1[Gbps]
(条件2)送信部26及び受信部30の動作電力(無線搬送波送受信用の電力):送信部26及び受信部30以外の通信装置12の常時動作している回路の消費電力=1:1
(条件3)送信部26及び受信部30のスタンバイ電力:送信部26及び受信部30の動作電力(無線搬送波送受信用の電力)=1:2
【0067】
図10に示すように、空データIFSの割合が大きいほど、出力の減少する割合が大きくなることがわかる。また、通信速度が速くなるほど、同じ空データIFSの割合でも、出力減少の割合が大きくなることがわかる。これにより、上述した通信システム10は、通信速度が速く、空データIFSの割合が大きい場合、特に、消費電力を低減できることがわかる。例えば、上述の条件では、通信システム10は、消費電力を15%から30%程度削減できる。
【0068】
図11は、パケットWPのサイズと、出力減少の割合との関係を示すグラフである。出力減少の割合は、3つの異なる無線通信速度について調べた。空データIFSの比率は、80%である。
図11のシミュレーション条件は、
図10の条件1から条件3と同様である。
【0069】
図11に示すように、パケットWPのサイズが大きくなるほど、出力減少の割合が大きくなることがわかる。また、通信速度が速いほど、同じパケットWPのサイズでも出力減少の割合が大きいことがわかる。更に、通信速度が速い場合、パケットWPのサイズの増加に伴う、出力の減少が顕著に表れることがわかる。
【0070】
図12は、パケットWPのサイズと、レイテンシとの関係を示すグラフである。レイテンシは、可変長のパケットWPと、固定長のパケットWPの3つの異なる通信速度とについて調べた。
図12は、イーサネットの通信速度を1Gbpsとした。
【0071】
図12に示すように、パケットWPのサイズを小さくするほど、レイテンシが向上することがわかる。また、イーサネットの実データPCを分割して生成される固定長のパケットWPを送受信する場合の方が、イーサネットの実データPC単位で生成される可変長のパケットWPを送受信する場合よりも、レイテンシが向上することがわかる。例えば、無線の通信速度と、パケットWPのサイズによっては、固定長の場合のレイテンシは、可変長の場合のレイテンシに比べて1/8程度にできることがわかる。
【0072】
上述した実施形態の各構成の配置、接続関係、個数及びビット数等の数値は適宜変更してよい。また、上述の実施形態を組み合わせてもよい。
【0073】
例えば、上述の実施形態では、可変長のパケットWPを送信する形態と、固定長のパケットWPを送信する形態とを別々に説明したが、送信部26は、データ量が予め定められた固定長のパケットWPと、データ量がそれぞれ異なる可変長のパケットWPとを切り替えて、送信してもよい。この場合、送信部26は、イーサネットの実データPC間の間隔が間隔用の閾値未満の場合、固定長のパケットWPを送信することが好ましい。また、送信部26は、イーサネットの実データPC間の間隔が間隔用の閾値以上の場合、可変長のパケットWPを送信することが好ましい。更に、パケット化部22は、イーサネットの実データPC間の間隔が間隔用の閾値以上の場合、空データIFSをすべて削除して、可変長のパケットWPを生成することが好ましい。
【0074】
また、上述の実施形態の各構成は、コンピュータが送信用のプログラムまたは受信用のプログラムを読み込むことによって機能するように構成してもよい。
【0075】
図13は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、情報処理部の一例である。コンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、及び、RAM2020を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、及び、ハードディスクドライブ2040を有する入出力部と、入出力コントローラ2084に接続されるROM2010、メモリドライブ2050及び入出力チップ2070を有するレガシー入出力部とを備える。
【0076】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。
【0077】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用する表示プログラム等のプログラム及びデータを格納する。
【0078】
また、入出力コントローラ2084には、ROM2010と、メモリドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。メモリドライブ2050は、メモリカード2090から例えば表示プログラム等のプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、メモリドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0079】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、メモリカード2090、又はICカード等の記録媒体に格納されて利用者によって提供される。表示プログラム等のプログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0080】
コンピュータ1900にインストールされ、コンピュータ1900を通信装置12として機能させる送信用のプログラムは、データ受信モジュール、パケット化モジュール、制御モジュール、及び、送信モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、データ受信モジュール、パケット化モジュール、制御モジュール、及び、送信モジュールとしてそれぞれ機能させる。
【0081】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるデータ受信モジュール、パケット化モジュール、制御モジュール、及び、送信モジュールとして機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の通信装置12が構築される。
【0082】
コンピュータ1900にインストールされ、コンピュータ1900を通信装置12として機能させるプログラムは、受信モジュール、データ生成モジュール、及び、データ送信モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、受信モジュール、データ生成モジュール、及び、データ送信モジュールとしてそれぞれ機能させる。
【0083】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である受信モジュール、データ生成モジュール、及び、データ送信モジュールとして機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の通信装置12が構築される。
【0084】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、又はメモリカード2090等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0085】
また、CPU2000は、ハードディスクドライブ2040、メモリドライブ2050(メモリカード2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0086】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。
【0087】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、メモリカード2090の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0088】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0089】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。