(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載したネットワークに関し、以下の問題が生じることを見いだした。
図25に無線ネットワークの一例を示す。図25において、無線ネットワークは、無線装置である無線制御装置と複数の無線端末装置とから構成される。符号1001で示される無線装置は無線制御装置(以下、制御装置)であり、符号1002、符号1003、及び符号1004で示される無線装置は無線端末装置(以下、端末装置)である。
制御装置1001は、端末装置1002〜1004に対して、制御情報をビーコンフレームに含めて周期的にブロードキャストする。端末装置1002〜1004はこの制御情報に基づいて制御装置1001と通信する。制御装置及び端末装置のアクセス制御方式には様々なものを用いることができ、例えば、CSMA(Carrier Sense Multiple Access/Collision Detection)、TDMA(Time Division Multiple Access)、FDMA(Frequency Division Multiple Access)などを用いることができる。
これらの無線ネットワークで用いられる無線装置(制御装置及び端末装置)は低消費電力性能に特徴がある。例えば、無線装置の消費電力を低減させるために、無線ネットワーク内の通信期間の種別として、通信を行うアクティブ期間と、通信を行わずにスリープ状態に入る(通信機能をOFFにする)ことができる非アクティブ期間とを設けた構成になっている。非アクティブ期間を長くすれば、スリープ状態を長くできるので、消費電力を低減することができる。
端末装置1002〜1004は、制御装置1001から送信されるビーコンフレームに含まれる制御情報によって、アクティブ期間及び非アクティブ期間各々の開始及び終了時刻等を知り、これらの情報に応じてスリープ処理(すなわち、通信機能のON/OFF)を行う。
しかし、図25に示す無線ネットワークでは、宅内及びオフィス等の設置環境、並びに障害物の有無等が原因で、無線制御装置と無線端末装置が直接通信できない場合が存在する。これを解決する方法として、フレームを中継転送する方法がある。例えば、中継接続先のルーティング設定を自動的に行う技術として、IETF(Internet Engineering Task Force)のMANET(Mobile Ad−hoc Network)等の標準規格があるが、いずれも複雑なルーティング技術を用いており、コストが高く、一般の家庭では安易の導入することはできない。 そこで、複雑なルーティングを行うことなく、自動的に無線中継を行う方法としては特許文献1に記載されているものがある。
図26を参照して、特許文献1に記載の無線ネットワークの構成を説明する。
図26に示される無線ネットワークにおいて、送信装置1012と中継装置1011とは直接通信が可能であり、中継装置1011と受信装置1014とは直接通信が可能であるとする。また、送信装置1012と受信装置1014とは、離れた位置にあり、互いに直接通信は不可能な位置にあるものとする。
この時、送信装置1012が受信装置1014へ宛ててデータフレームを送信する場合の動作について、図27を用いて説明する。
図27は、関連技術における無線フレームの中継処理の流れを説明するシーケンス図である。図27において、送信装置1012、中継装置1011及び受信装置1014がフレームを送信するタイミングを縦軸方向に時系列に示している。
送信装置1012が、受信装置1014宛へデータフレーム1050を送信した場合、受信装置1014はデータフレーム1050を受信することができない(S1210)。なぜなら、前述のように送信装置1012と受信装置1014とは互いに直接通信が可能な範囲内にないからである。よって、データフレーム1050に対応する確認応答(ACK)フレームは、受信装置1014から送信されない。
一方、中継装置1011は送信装置1012から直接通信が可能な範囲内にあるので、データフレーム1050を受信できる。中継装置1011は、受信したデータフレーム1050を解析して、宛先アドレスが自アドレス宛であるか否かを判定する。その結果、データフレーム1050が受信装置1014宛であるので、中継装置1011は、データフレーム1050を一旦内部のバッファに蓄積する。
次に、中継装置1011は、送信装置1012が送信したデータフレーム1050に対する受信装置1014から送信装置1012への確認応答(ACK)フレームを、待ち時間T11だけ待ち受ける。中継装置1011は、時間T11以内に受信装置1014からデータフレーム1050に対応するACKフレームを受信できなかった場合は、データフレーム1050が受信装置1014に届かなかったものと判定する。中継装置1011は、送信装置1012に対して、データフレーム1050に対する代理ACKフレーム(以後、代理ACKともいう)1051を受信装置1014に代わって送信する(S1212)。
この時、代理ACKフレーム1051の送信元アドレスには受信装置1014のアドレスが設定される。送信装置1012は、代理ACKフレーム1051を受信装置1014から送信されたものと判断し、データフレーム1050の送信処理を完了する。
次に、中継装置1011は、内部のバッファに蓄積しておいたデータフレーム1050を、代理データフレーム(以後、代理データともいう)1052として受信装置1014へ送信することにより、データフレームの中継を行う(S1216)。受信装置1014は、代理データフレーム1052を受信すると、代理データACK1053を返送する(S1218)。送信装置1012は、受信装置1014から直接通信が可能な範囲内にないので、代理データACK1053を受信しない。
以上の動作により、中継装置1011が、送信装置1012から受信装置1014へ宛てて送信されるデータフレームを中継することにより、直接通信が不可能な送信装置1012と受信装置1014との間で通信が可能となる。
しかしながら、特許文献1では、図2に示すような、アクティブ期間1007と非アクティブ期間1008とが存在する無線通信システムを想定していない。そのため、アクティブ期間1007と非アクティブ期間1008とが存在する無線通信システムで特許文献1に係る中継装置等が動作する場合、フレーム中継において、遅延が発生するという課題を有している。これは非アクティブ期間1008に入ると、中継装置1011、送信装置1012、及び受信装置1014を含めた無線システム全体がスリープ状態に入るためである。特に、中継装置1011から送信装置1012へ代理ACKが送信された後であって、かつ、中継装置1011から受信装置1014への代理データの送信が完了する前にスリープ状態に入ると、送信装置1012は、実際には受信装置1014へのデータフレームに送信に遅延が生じているにも関わらず、遅延なく送信が完了したことを前提として内部処理を進める事態が生じうる。その結果、送信装置1012と、受信装置1014との間で処理の不整合が生じるおそれがある。
以上のように、アクティブ期間中には無線通信を行い、非アクティブ期間中には無線通信を中断する無線通信システムにおいてフレーム中継をするには、中継処理の途中で非アクティブ期間となった場合には、多大な遅延が発生する可能性がある。この遅延はアプリケーションに悪影響を与える可能性を有する。
このような問題を解決するため、本発明のある局面に係る中継装置は、送信装置と受信装置との間で、アクティブ期間中には無線通信を行い、非アクティブ期間中には前記無線通信を中断する無線通信システムにおいて、前記送信装置から前記受信装置へと送信された第1フレームを中継する中継装置であって、フレームを受信する受信部と、フレームを送信する送信部と、受信された前記フレームが、前記第1フレームであると判定した場合には当該第1フレームを記憶するフレーム判定部と、前記第1フレームの受信確認応答として前記受信装置から送信されるべきフレームである第2フレームの代理フレームである第3フレームを生成する代理ACK生成部と、前記受信部において前記第1フレームが受信された後、事前に定められた期間内に前記第2フレームが受信されない場合には、前記第3フレームを前記送信部から送信させ、前記アクティブ期間の終了後においても継続して通信できる期間である拡張アクティブ期間を、当該アクティブ期間に続く非アクティブ期間内に設定し、当該拡張アクティブ期間内に、前記フレーム判定部が記憶している前記第1フレームである第4フレームを前記送信部から前記受信装置へ送信させる通信制御部とを備える。
本構成によると、中継装置は、中継途中のフレームの送信が完了するまでは、非アクティブ期間において自分自身は通信可能な期間である拡張アクティブ期間を設定する。その結果、中継するフレームを送信中に中継装置がスリープ状態に入ることを防止できる。よって、中継装置は、アクティブ期間中には無線通信を行い、非アクティブ期間中には無線通信を中断する無線通信システムにおいて、フレームの低遅延中継が可能な中継装置を実現できる。
具体的には、前記通信制御部は、前記受信部において前記第1フレームが受信された後、前記事前に定められた期間内に前記第2フレームが受信されない場合には、前記第3フレームを前記送信部から前記送信装置と前記受信装置とへ送信させ、前記第4フレームの送信が前記アクティブ期間内に完了するように、前記拡張アクティブ期間を設定し、前記第4フレームを前記送信部から前記受信装置へ送信させるとしてもよい。
また、前記受信装置が前記第4フレームの受信確認応答として前記送信装置へ送信する第5フレームを検出する代理データACK検出部をさらに備え、前記代理データACK検出部は、前記第4フレームが送信されてから事前に定められた期間内に前記第5フレームを検出できたか否かを示す確認結果を、当該受信装置に固有の識別子と対応付けて記憶し、前記通信制御部は、事前に定められた期間内に前記受信装置から前記第2フレームを受信できず、かつ、当該受信装置の前記識別子に対応する前記確認結果が、前記第5フレームが検出できなかったことを示さない場合には、前記第3フレームを前記送信部から前記受信装置へ送信させ、前記第4フレームの送信が前記アクティブ期間内に完了するように、前記拡張アクティブ期間を設定し、前記第4フレームを前記送信部から前記受信装置へ送信させるとしてもよい。
この構成によると、中継装置は以前に代理データを送信した結果、対応する確認応答を受信できなかった受信装置に対しては、フレームを中継しない。その結果、中継装置による無駄なフレーム転送を抑制し、無線リソースの向上、フレーム衝突の低減につながる。
本発明のある局面に係る受信装置は、送信装置と受信装置との間で、アクティブ期間中には無線通信を行い、非アクティブ期間中には前記無線通信を中断する無線通信システムにおいて、前記送信装置から送信された後に、中継装置によって中継された第1フレームを受信する受信装置であって、シーケンス番号を含むフレームを受信する受信部と、受信したフレームに含まれる前記シーケンス番号に基づいて、当該フレームが前記中継装置から送信されたフレームであるか否かを判定する中継判定部と、前記受信したフレームが前記中継装置から送信されたフレームであると判定された場合には、前記中継装置によって中継される前記第1フレームの受信を当該アクティブ期間内で完了できるように、前記受信装置の前記アクティブ期間の終了後においても継続して通信できる期間である拡張アクティブ期間を、当該アクティブ期間に続く非アクティブ期間内に設定する通信制御部とを備える。
本構成によると、受信装置はフレームのシーケンス番号から、受信したフレームが中継装置によって送信されたものであると判定した場合、その後に中継装置から送信されるすべてのフレームを受信できるように、拡張アクティブ期間を設定する。その結果、フレームの低遅延転送が可能となる。
具体的には、前記受信装置に固有の識別子と、前記送信装置が前記受信装置へ割り当てうるシーケンス番号とを対応付けて記憶しているSN記憶部をさらに備え、前記中継判定部は、前記受信部により受信されたフレームの種別を判定するフレーム判定部と、SN判定部とを有し、前記フレームは、前記送信装置によって割り当てられたシーケンス番号と、当該フレームの種別を示す種別情報とを含んでおり、前記フレーム判定部は、当該フレームに含まれる前記種別情報を参照し、当該フレームの種別が、前記第1フレームの受信確認応答として送信されるフレームの種別と一致するか否かを判定し、前記SN判定部は、前記フレームに含まれる前記シーケンス番号が、当該受信装置の識別子に対応付けられているシーケンス番号と一致するか否かを判定し、前記中継判定部は、前記フレーム判定部が一致すると判定し、前記SN判定部が一致すると判定した場合、前記フレームは前記中継装置によって送信されたと判定するとしてもよい。
この構成によると、シーケンス番号は、(1)フレームの識別子としての役割、(2)データフレーム(すなわち、第1フレーム)とACKフレーム(すなわち、第1フレームの受信確認応答)とを対応付ける役割、という役割に加えて、(3)どの受信装置へ宛てて送信されたデータフレーム、又はこれに対応するACKフレームであるかを示す役割を果たす。したがって、受信装置は、フレームが含む種別情報から、当該フレームの種別がACKフレームであるか否かを判定し、当該フレームがACKフレームであった場合には、誰に宛てて送信されたデータフレームに対応するACKフレームであるかを知ることができる。ここで、受信装置が、自分宛に送信されたデータフレームに対応するACKフレームを受信することは、通常ではありえない。なぜなら、自分宛に送信されたデータフレームに対応するACKフレームは、受信装置自身が送信すべきフレームであるためである。よって、中継判定部は、自分宛のデータフレームに対応するACKフレームを受信した場合には、当該受信フレームは、自分以外の無線装置、すなわち中継装置が、自分を代理して送信した代理データであると判定することができる。
本発明のある局面に係る送信装置は、送信装置と受信装置との間で、アクティブ期間中には無線通信を行い、非アクティブ期間中には前記無線通信を中断する無線通信システムにおいて、中継装置を介して前記受信装置へと第1フレームを送信する前記送信装置であって、前記受信装置に固有の識別子と、当該識別子と対応付けられたシーケンス番号とを記憶しているSN記憶部と、前記第1フレームに割り当てられるシーケンス番号として、前記受信装置の前記識別子に対応するシーケンス番号を選択する選択部と、選択された前記シーケンス番号を含む前記第1フレームを生成するフレーム生成部と、生成された前記第1フレームを送信する送信部とを備える。
本構成によると、送信装置は、シーケンス番号に宛先が対応付けられたACKフレームを生成し、受信装置へ送信する。その結果、IEEE802.15.4のようにフレームの宛先を示すAddressingフィールドの無いACKフレーム(すなわち、フレームの受信確認応答として送信されるフレーム)であっても、受信装置は、受信したACKフレームが、どの受信装置を宛先として送信されたフレームに対する受信確認応答であるかを判断することで、受信したフレームが中継装置によって送信されたものか否かを判定することができる。その結果、中継されたものであると判定した場合には、少なくとも自分自身は通信可能な期間である拡張アクティブ期間を設定することによって、送信フレームの低遅延転送が可能となる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下本発明の実施の形態について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図1は、本発明の実施の形態1における無線通信システム110の一例を示した図である。無線通信システム110は、代表的には無線アドホックネットワークである。図1において、送信装置10は、受信装置20a及び中継装置30と無線接続されている。また受信装置20bは、送信装置10と直接通信できない位置におり、中継装置30を介して、接続されている。ここで、無線接続とは、例えば、IEEE802.15.4規格、IEEE802.11規格、ARIB(Association of Radio Industries and Businesses)準拠の特定小電力無線に準じた接続がある。
なお、以後、受信装置20a及び受信装置20bを総称して、受信装置20という。
送信装置10、受信装置20、及び中継装置30の各々は、例えば図25に示される、アクティブ期間中には無線通信を行い、非アクティブ期間中には無線通信を中断する無線通信システムにおける、制御装置及び端末装置のいずれかの無線装置である。以後、データフレーム(以後、第1フレームともいう)を送信する無線装置を送信装置と呼ぶ。そして、送信装置から送信されたデータフレームの宛先である無線装置を受信装置と呼ぶ。さらに、送信装置と受信装置との間で、データフレームを中継する無線装置を中継装置と呼ぶ。
送信装置10、受信装置20a、受信装置20b、及び中継装置30の各々は、制御装置から送信されるビーコンフレームに含まれる制御情報から、アクティブ期間及び非アクティブ期間を取得する。
ここで、アクティブ期間とは、無線装置ごと(例えば、送信装置10、受信装置20a、受信装置20b、及び中継装置30の各々)に定められる期間であって、各無線装置が通信機能をONにし、他の無線装置と通信を行う期間である。また、非アクティブ期間とは、無線装置ごとに定められる期間であって、各無線装置が通信機能をOFFにし、他の無線装置と通信を行わない期間である。
無線通信システム110に含まれるすべての無線装置は、ビーコンフレームによりアクティブ期間及び非アクティブ期間の同期をとるため、原則としてすべての無線装置が使用するアクティブ期間及び非アクティブ期間は一致する。例えば、送信装置10が送信するビーコンフレームは、中継装置30によってすぐに中継転送され、受信装置20bに到達する。これにより、すべての無線装置のアクティブ期間及び非アクティブ期間は一致する。あるいは、送信装置10が、ビーコンフレーム送信時に送信電力を上げることで、受信装置20bに直接ビーコンフレームを到達させ、同期をとることなども可能である。
図2は、ビーコン期間1006、アクティブ期間1007、及び非アクティブ期間1008の関係を示す図である。図2において、ビーコン期間は、アクティブ期間1007と非アクティブ期間1008とから構成される。アクティブ期間1007は制御装置1001と端末装置1002〜1004とが通信を行う期間である。非アクティブ期間1008は通信を行わない期間である。制御装置及び端末装置は、非アクティブ期間1008にはスリープ状態に入ることで消費電力を低減することができる。またアクティブ期間1007であっても、通信を行わない端末装置はスリープ状態に入ることで消費電力を低減することができる。
制御装置1001及び端末装置1002〜1004はアクティブ期間を共用で使用する。アクティブ期間の最初は制御装置1001が使用し、ビーコンフレームをブロードキャストする。すなわち、ビーコン期間1006は、アクティブ期間1007と非アクティブ期間1008との和となる。また制御装置1001がビーコンフレームをブロードキャストした後のアクティブ期間は、制御装置1001と端末装置1002〜1004との間の通信に使用される。
無線通信の方式には、例えば、CSMAなどを用いることができる。また、アクティブ期間を複数の時間スロットに分割し、スロットCSMA又はTDMAでスロットを共用して使用することも可能である。例えば、IEEE802.15.4規格では前半の時間スロットをCSMAによる競合アクセス用に用い、後半の時間スロットごとに使用する無線装置を割り当てて通信を行っている。ビーコンフレームにはこれらの時間スロット数及びその割り当て、アクティブ期間の長さ、非アクティブ期間の長さ、次のビーコンフレーム送信までの時間などフレームに関する制御情報が含まれる。
次に、アクティブ期間中には無線通信を行い、非アクティブ期間中には前記無線通信を中断する無線通信システム110に、従来技術を適用した場合に生じる課題について、図3を参照して詳細に説明する。
図3は従来技術における課題を説明するためのシーケンス図である。
ここで、端末装置1002及び端末装置1004のそれぞれは、制御装置1001と通信可能な位置にある。また端末装置1002と端末装置1004とは、離れた位置にあるため、互いに直接通信は不可能な位置にあるとする。無線通信における役割について、例えば図1に示した無線通信システム110との対応関係を示せば、端末装置1002が送信装置10に相当し、制御装置1001が中継装置30に相当し、端末装置1004が受信装置20bに相当する。
アクティブ期間1007において、端末装置1002が端末装置1004宛へデータフレーム1060を送信する。前述のように端末装置1002と端末装置1004とは互いに直接通信が可能な範囲内にないので、端末装置1004はデータフレーム1060を受信することができない(S1220)。よって、データフレーム1060に対応する確認応答(ACK)フレームは、端末装置1004から送信されない。
一方、制御装置1001は、端末装置1002から直接通信が可能な範囲内にあるので、データフレーム1060を受信する。その後、制御装置1001は、受信したデータフレーム1060を解析して、宛先アドレスが自アドレス宛であるか否かを判定する。その結果、宛先が端末装置1004であるので、データフレーム1060を一旦内部のバッファに蓄積する。
次に、制御装置1001は、端末装置1002が送信したデータフレーム1060に対する確認応答(ACK)フレームを待ち時間T11だけ待ち受ける。制御装置1001は、時間T11以内に端末装置1004からACKフレームを受信できなかった場合は、データフレーム1060が端末装置1004に届かなかったものと判定する。制御装置1001は、端末装置1002へ、データフレーム1060に対応する代理の確認応答である代理ACKフレーム1061を、端末装置1004に代わって送信する(S1222)。
代理ACKフレーム1061を受信した端末装置1002は、データフレーム1060が端末装置1004から送信されたものと判断してデータフレーム1060の送信処理を完了する。
次に、制御装置1001は、内部のバッファに蓄積しておいたデータフレーム1060を、代理データ1062として端末装置1004へ送信することにより、データフレームの中継を行う。ここで送信前又は送信中に時刻が非アクティブ期間1008に入ると、制御装置1001、端末装置1002、及び端末装置1004がスリープ状態となる。よって、次のアクティブ期間までの間(図3に示されるT12の間)、制御装置1001はフレームを中継することができず、遅延が発生する。
また、端末装置1002は、ステップS1222において、データフレーム1060の端末装置1004への送信が既に完了していると判断しており、次のアプリケーション処理を始める可能性がある。すなわち、無線通信システム全体として、内部状態の不整合による不具合が起こる可能性がある。
以後、上記の遅延が発生しないフレーム中継を実現できる本発明の実施の形態1に係る送信装置10、受信装置20、及び中継装置30について説明する。
図4は、本実施の形態における送信装置10の機能ブロックの一例を示した図である。ここで送信装置10は、無線通信システム110における送信装置である。無線通信システム110では、送信装置10から受信装置20へと送信された第1フレームを中継装置30が中継する。
図4に示されるように、送信装置10は、送信部112Aと、受信部112Bと、フレーム生成部113と、実行部114と、選択部115と、SN記憶部116とを備える。
送信部112Aは、フレーム生成部113で生成されたフレームを、無線通信を行うための空中線であるアンテナ111より送信する。なお、より詳細には、フレーム信号の変調や復調、CSMAなどのメディアアクセス制御の機能を有する。
受信部112Bは、アンテナ111より、ACKフレーム等を受信する。
フレーム生成部113は、データフレーム、ACKフレーム、ビーコンフレーム、マネジメントフレーム等、各種のフレームを生成、解析する機能を有する。例えば、選択部115で選択されたシーケンス番号を含むデータフレーム(第1フレーム)を生成する。
実行部114は、無線通信システム110を利用したサービスの制御部である。例えば、ホームネットワークにおける家電のリモート制御、家電同士の省エネ連携制御等の処理を実行する。
SN記憶部116は、受信装置に固有の識別子と、当該識別子に対応付けられたシーケンス番号(SN;Sequence Number)とを記憶している。例えば、SNと無線装置のアドレス(例えばMACアドレス;Media Access Controlアドレス)とを関連付けて記憶する。なお、SN記憶部116は、受信装置以外に、中継装置等に固有の識別子とシーケンス番号とを対応付けて記憶してもよい。このSN記憶部116の詳細は、図6にて後述する。
選択部115は、第1フレームに割り当てられるシーケンス番号として、受信装置の識別子に対応するシーケンス番号を選択する。なお、選択部115は、中継装置の識別子に対応するシーケンス番号を選択してもよい。
図6A及び図6Bは、図4に示すSN記憶部116の2つの例であるSN記憶部116a及びSN記憶部116bそれぞれのデータ構造を示した図である。SN記憶部116には、「SN(シーケンス番号)」と、無線装置の識別子である「機器アドレス」とが対応付けて記憶されている。なお、SN記憶部116は、これ以外の情報を記憶してもよい。
図6Aに示されるSN記憶部116aと、図6Bに示されるSN記憶部116bとの違いは、シーケンス番号の使い方である。すなわち、SN記憶部116aでは、1つのシーケンス番号のグループに、複数の機器アドレス86が対応付けられている。一方、SN記憶部116bでは、1つのシーケンス番号のグループに、1つの機器アドレス88が対応付けられている。SN記憶部116のデータ構造としては、どちらを使用してもよい。
なお、機器アドレスとは、無線装置に固有の識別アドレスである。例えば、48ビットのMACアドレス、IEEE802.15.4のショートアドレス、EUI(Extended Unique Identifier)64アドレスなどがある。
また、シーケンス番号とは、802.15.4規格のフレーム構成を示す図である図5に示すように、データフレームやACKフレームなどのフレームに振られる番号である。送信装置から受信装置へ送信されるデータフレームと、そのデータフレームに対する確認応答として受信装置から送信装置へ送信されるACKフレームとは、共通のシーケンス番号を含む。このシーケンス番号の同一性より、無線装置はデータフレームとACKフレームとの対応付けが可能となる。
図5Aは、IEEE802.15.4規格におけるデータフレーム70の構成を示す。FrameControlには、フレームの種別がデータフレームであることを示す情報が設定される。SequenceNumber72には、シーケンス番号が設定される。AddressingFields74には、送信元及び宛先となる無線装置の識別子等が設定される。
図5Bは、IEEE802.15.4規格におけるACKフレーム80の構成を示す。FrameControl81には、フレームの種別がACKフレームであることを示す情報が設定される。SequenceNumber82には、対応するデータフレームに設定されていたシーケンス番号と同じシーケンス番号が設定される。802.15.4規格では、ACKフレームにAddressing Fieldはなく、データフレームと同じシーケンス番号を使ってACKフレームが生成される。無線装置は、ACKフレームのシーケンス番号から、どのデータフレームに対するACKフレームであるかを判別できる。
図6Aに示されるSN記憶部116aは、1〜63のように一組のシーケンス番号に複数台の無線装置を関連付けている。それに対して、図6Bに示されるSN記憶部116bは、一組のシーケンス番号に1台のみの無線装置を関連付けている。シーケンス番号は、送信装置10がフレームを送信する度にインクリメントされる。SN記憶部116は、図6A及び6Bに示されるように、上限値と下限値とが指定された連続するシーケンス番号で構成される組と、機器アドレスとを対応付けて記憶する。シーケンス番号は、各組の中でインクリメントされ、上限値に達すると再度、下限値に戻って使用される。
なお、本実施の形態に係る送信装置10は、実行部114を備えていなくても同様の発明の効果を奏する。具体的には、送信装置10の外部に、実行部114を備えた実行装置が存在する場合であれば、この実行装置へ受信したデータフレームを送信し、必要に応じて処理結果を取得することができる。
なお、本実施の形態に係る送信装置10は、受信部112Bを備えていなくても同様の発明の効果を奏する。すなわち、送信装置10は、フレームの宛先に対応したシーケンス番号を含む第1フレーム生成する際には他の無線装置からフレームを受信する必要はない。
図7は、本発明の実施の形態1における受信装置20の機能ブロックの一例を示した図である。ここで、受信装置20は、無線通信システム110における受信装置である。無線通信システム110では、送信装置10から受信装置20へと送信された第1フレームを中継装置30が中継する。なお、図7において、図4と同じ構成要素については同じ符号を用い、説明を省略する。
図7に示されるように、受信装置20は、送信部212Aと、受信部212Bと、中継判定部221と、通信制御部222と、SN記憶部116と、実行部214とを備える。
送信部212Aは、送信装置10から送信された第1フレームに対する確認応答としてACKフレーム(以後、第2フレームともいう)を送信装置10へ宛てて送信する通信インタフェースである。本実施の形態では、ACK生成部(図示なし)が第2フレームを生成する。なお、送信部212Aが有する通信機能は、例えば送信部112Aと同様である。
受信部212Bは、送信装置10から送信されたフレームを受信する通信インタフェースである。受信部212Bが有する通信機能は、例えば受信部112Bと同様である。
中継判定部221は、受信したフレームに含まれるシーケンス番号に基づいて、当該フレームが中継装置30から送信されたフレームであるか否かを判定する。その詳細は後述する。
SN記憶部116は、送信装置10が備えるSN記憶部116と同じ情報を含む記憶部である。すなわち、SN記憶部116は、受信装置20に固有の識別子と、送信装置10が受信装置20へ割り当てうるシーケンス番号とを対応付けて記憶している。
通信制御部222は、受信したフレームが中継装置30から送信されたフレームであると判定された場合には、受信装置20の現在のアクティブ期間の終了後においても継続して、自分自身は通信できる期間である拡張アクティブ期間を、当該アクティブ期間に続く非アクティブ期間内に設定する。これは、アクティブ期間の終了後であっても、拡張アクティブ期間内で受信を継続することにより、中継装置30によって中継される第1フレームの受信を完了できるようにするためである。なお、無線通信システム110は、制御装置からブロードキャストされるビーコンフレームによる指示によってアクティブ期間を定めることは前述のとおりである。
実行部214は、実行部114と同様に、ホームネットワークにおける家電のリモート制御、家電同士の省エネ連携制御等の、無線通信システム110を利用したサービスの制御を行う。
なお、本実施の形態に係る受信装置20は、実行部214を備えていなくても同様の発明の効果を奏する。具体的には、受信装置20の外部に、実行部214を備えた実行装置が存在する場合であれば、この実行装置へ受信したデータフレームを送信し、必要に応じて処理結果を取得することができる。
また、本実施の形態に係る受信装置20は、SN記憶部116を備えていなくても同様の発明の効果を奏する。具体的には、例えばSDカード等の外部記憶媒体、又は、ネットワークを介してSN記憶部116に記憶されるデータと同一のデータを取得することが可能である。
また、本実施の形態に係る受信装置20は、送信部212Aを備えていなくても同様の発明の効果を奏する。すなわち、受信装置20は拡張アクティブ期間を設定すべきか否かを判定する際には他の無線装置へフレームを送信する必要がない。
なお、本実施の形態に係る受信装置20は、他の構成によっても実現できる。図8に、本実施の形態の変形例に係る受信装置1020の構成を示す。
図8に示されるように、受信装置1020は、送受信部212と、中継判定部221と、SN記憶部216と、通信制御部222と、実行部214とを備える。なお、図7と同じ構成要素については、同じ符号をつけ、詳細な説明は省略する。
本変形例では、送信部212Aと受信部212Bとは、送受信部212としてまとめられる。送受信部212の機能は、送信部212A及び受信部212Bと同一である。
また、中継判定部221は、フレーム判定部213と、SN判定部217とを有する。
フレーム判定部213は、データフレーム、ACKフレーム、ビーコンフレーム、マネジメントフレーム等、各種のフレームを生成したり解析したりする。本変形例では、フレーム判定部213は、ACKフレームを生成し、送受信部212から送信装置10へ送信させる。また、送受信部212により受信されたフレームが、第2フレームであるか否かを判定する。なお前述のとおり、フレームは、送信装置10が当該フレームに割り当てたシーケンス番号と、当該フレームの種別を示す種別情報とを含んでいる。
具体的には、フレーム判定部213は、当該フレームに含まれる種別情報を参照し、当該フレームの種別が、第1フレームの受信確認応答として送信されるフレームの種別と一致するか否かを判定する。例えば、図5を参照してIEEE802.15.4規格で説明すると、フレーム判定部213は、フレーム内のFrameControlを参照することで、当該フレームの種別を知ることができる。よって、フレーム判定部213は、フレームのFrameControlがACKフレーム80のFrameControl81と一致しているか否かを判定する。ここで、一致した場合には、当該フレームは第2フレームであるか、又は、後述する中継装置によって第2フレームの代理として送信された第3フレームのいずれかの可能性が考えられる。
SN判定部217は、受信したフレームに含まれるシーケンス番号が、受信装置20の識別子に対応付けられているシーケンス番号と一致するか否かを判定する。
ここで、中継判定部221は、フレーム判定部213が一致すると判定し、SN判定部217が一致すると判定した場合、当該フレームは中継装置30によって送信されたと判定する。
すなわち、本発明において、シーケンス番号は、(1)各フレームの識別子としての役割と、(2)データフレーム(すなわち、第1フレーム)とACKフレーム(すなわち、第1フレームの受信確認応答)とを対応付ける役割とに加えて、(3)どの受信装置へ宛てて送信されたデータフレーム、又はこれに対応するACKフレームであるかを示す役割を果たす。したがって、受信装置20は、フレームに含まれる種別情報から、当該フレームの種別がACKフレームであるか否かを判定する。受信装置20は、当該フレームがACKフレームであった場合には、誰に宛てて送信されたデータフレームに対応するACKフレームであるかを知ることができる。ここで、受信装置20が、自分宛に送信されたデータフレームに対応するACKフレームを受信することは、通常考えられない。なぜなら、自分宛に送信されたデータフレームに対応するACKフレームは、受信装置自身が送信すべきフレームであるためである。よって、中継判定部221は、自分宛のデータフレームに対応するACKフレームを受信した場合には、当該受信フレームは、自分以外の無線装置、すなわち中継装置30が、自分を代理して送信した代理データであると判定することができる。
次に、図9は、本発明の実施の形態1における中継装置30の機能ブロックの一例を示した図である。中継装置30は、無線通信システム110における中継装置であって、送信装置10から受信装置20へと送信された第1フレームを中継装置30が中継する。なお、図9において、図4と同じ構成要素については同じ符号を用い、説明を省略する。
図9に示されるように、中継装置30は、送信部333Aと、受信部333Bと、フレーム判定部334と、代理ACK生成部332と、通信制御部340とを備える。
送信部333Aは、フレームを送信する通信インタフェースである。
受信部333Bは、送信装置10及び受信装置20の一方から他方へと送信されたフレームを受信する。送信部333A及び受信部333Bそれぞれは、例えば送信部112A及び受信部112Bと同一の構成とすることができる。
フレーム判定部334は、受信部333Bによって受信されたフレームが、第1フレーム、及び受信装置20が第1フレームの受信確認応答として送信する第2フレームのいずれかであるかを判定する。フレーム判定部334は、第1フレームであると判定した場合には当該第1フレームを、自身が有する記憶部341に記憶する。
代理ACK生成部332は、受信部333Bにおいて、第1フレームが受信され、かつ、第1フレームを受信してから事前に定められた期間内に第1フレームに対応する第2フレームが受信されない場合には、第2フレームが含むべき情報と同一の情報を含むフレームであって、第2フレームの代理である第3フレームを生成する。すなわち、図5Bを参照して、第3フレームのFrameControl81にはACKフレームを示す種別情報が指定され、SequenceNuber82には記憶部341に記憶されている第1フレームのシーケンス番号が指定される。
なお、代理ACK生成部332は、第1フレームを受信し、第1フレームの受信時刻に依存しない事前に定められた期間内に第2フレームを受信できない場合には、第3フレームを生成すると判断してもよい。
通信制御部340は、受信部333Bにおいて、第1フレームが受信された後、事前に定められた期間内に第1フレームに対応する第2フレームが受信されない場合には、第3フレームを送信部333Aから、送信装置10と受信装置20とへ送信させる。また、通信制御部340は、アクティブ期間の終了後においても継続して通信できる期間である拡張アクティブ期間を、当該アクティブ期間に続く非アクティブ期間内に設定し、当該拡張アクティブ期間内に、フレーム判定部334が記憶している第1フレームを第4フレームとして、送信部333Aから受信装置20へ送信させる。
より詳細には、通信制御部340は、受信部333Bにおいて第1フレームが受信された後、事前に定められた期間内に第2フレームが受信されない場合には、第3フレームを送信部333Aから送信装置10と受信装置20とへ送信させ、第4フレームの送信がアクティブ期間内に完了するように拡張アクティブ期間を設定し、第4フレームを送信部333Aから受信装置20へ送信させる。
なお、事前に定められた期間は、図27を参照して、T11に相当する。すなわち、中継装置30が受信装置20へ第1フレームを送信してから、中継装置30が第2フレームを受信するまでに必要な期間として事前に定められている期間となる。
なお、通信制御部340は、第1フレームを受信してから事前に定められた期間内に、第1フレームの受信時刻に依存しない事前に定められた期間内に第2フレームを受信できない場合には、前述したように、(1)第3フレームを送信し、(2)第4フレームを送信し、及び(3)拡張アクティブ期間を設定してもよい。
なお、本実施の形態に係る中継装置30は、記憶部341を備えていなくても同様の発明の効果を奏する。具体的には、中継装置30の外部の記録媒体に第1データを記録させることができる。
図10は、本実施の形態に係る中継装置の変形例を示すブロック図である。なお、図9と同一の構成要素については同一の符号をつけ、詳細な説明は省略する。
本変形例に係る中継装置1030は、送受信部333と、代理ACK生成部332と、ACK検出部331と、データフレーム抽出部355と、スリープ制御部335と、記憶部341とを備える。
ACK検出部331は、図27を参照して、ACKフレームの待ち時間であるT11以内にACKフレームを受信したか否かを判定する機能を有する。
代理ACK生成部332は、ACKフレームの待ち時間であるT11以内にACKフレームが受信できない場合に、宛先無線装置に代わって代理ACKフレームとして、ACKフレームを生成する機能を有する。
ACK検出部331が、ACKフレームの待ち時間T11以内にACKが受信できないと判断し、代理ACKフレーム送信した後、データフレーム抽出部355は、記憶部341に記憶されているデータフレームを取り出して、宛先無線装置にアンテナ311からデータフレームを中継転送する機能を有する。
スリープ制御部335は、中継装置30に拡張アクティブ期間を設定することにより、事前に予定されていた非アクティブ期間に入っても、スリープせずに、フレームの送受信を一定期間継続させる。
次に、送信装置10から受信装置20bへと送信された第1フレームを中継装置30が中継する場合の動作について、図11〜図17を用いて説明する。なお、再度図1を参照して、送信装置10と受信装置20bとは離れた位置にあり、互いに直接通信は不可能な位置にあるものとする。また、中継装置30は、送信装置10と受信装置20bとのどちらとも通信可能な位置になるものとする。
図11は、実施の形態1における送信装置10、受信装置20b、及び中継装置30の動作を示すシーケンス図である。図11は縦軸方向に無線通信システム110の通信時間を時系列で示す。前述のとおり、無線通信システム110においては、アクティブ期間1007と非アクティブ期間1008とが繰り返される。
ここで、前述のとおり、受信装置20bは、送信装置10から受信装置20bへ宛てて送信されたデータフレーム50を直接受信できない(S210)。よって、中継装置30は、ACKフレームの待ち時間T11だけ受信装置20bからのACKフレームを待ち受けた後、ACKフレームを受信できなかった場合は代理ACKフレーム51を送信する。この代理ACKフレーム51は、送信装置10及び受信装置20bが受信する(それぞれ、S212及びS214)。
次に、中継装置30及び受信装置20bは、現在のアクティブ期間1007の終了後に続く非アクティブ期間1008内に、自分自身が通信可能な期間である拡張アクティブ期間1100を設定する。具体的には、中継装置30は、少なくとも、代理データフレーム52(以後、代理データ、又は第4フレームともいう)の送信が完了するまでは通信可能な期間が継続するように、拡張アクティブ期間1100を設定する。また、受信装置20bは、少なくとも、代理データフレーム52の受信が完了するまでは通信可能な期間が継続するように、拡張アクティブ期間1100を設定する。こうして、受信装置20bは代理データ52の受信を完了することができる(S216)。
その後、受信装置20bは中継装置30へ代理データに対する確認応答である代理データACKフレーム53(以後、代理データACK、又は第5フレームともいう)を送信する。
なお、図11において、中継装置30が代理ACK51を送信してから、次に代理データ52を送信するまでの期間T13は、およそ数ミリ秒である。T13の長さは、電波法上の制約、及び、受信装置が備えるマイクロコンピュータの処理速度等によって決まる。また、図11において、中継装置30が代理データ52を送信してから、受信装置20bが代理データACK53を送信するまでの期間T14は、規格上定まる。また、非アクティブ期間とアクティブ期間とが切り替わるタイミングでは、規格上すべての無線装置は、必ずビーコンを受信する必要があるため、他のデータを送受信することができない。
したがって、中継装置30及び受信装置20bは、例えば、代理ACK51が送受信された後の非アクティブ期間1008が終了するまでに、T13+T14より長い期間の拡張アクティブ期間を設定できない場合には、拡張アクティブ期間を設定しないと判断してもよい。この場合、中継装置30及び受信装置20bは、代理データ52の送受信を次のアクティブ期間まで待って開始してもよい。
以上述べたように、本実施の形態において、中継装置30は代理ACKフレーム51の送信が完了するまで、また、受信装置20bは代理ACKフレーム51の受信が完了するまで、それぞれが通信可能な期間を設定することで、遅延を発生させずにフレーム中継を実現することができる。
次に図12を参照して、送信装置10が行う処理の流れについて説明する。
図12は、本実施の形態に係る送信装置10の処理の流れを示すフローチャートである。
まず、選択部115は、SN記憶部116を参照し、宛先である受信装置20bに対応するSNを選択する(S71)。
ここで受信装置20bの機器アドレスが0x0011とする。選択部115は図6AのSN記憶部116aを参照して、例えば、シーケンス番号1を選択(S71)する。
次に、フレーム生成部113が、図5Aを参照して、SequenceNumber72に1を指定し、AddressingFields74に0x0011を指定したデータフレームを生成する(S72)。
その後、送信装置10は送信部112Aからデータフレームを送信する(S73)。
なお、送信装置10は、図13に示されるように、ステップS73の後に、規定時間以内に受信装置20bからACKが受信できたか否かを判定し(S74)、受信できない場合には(S74でNo)、事前に定められた再送回数の最大値未満の間は(S75でNo)、データフレーム50の再送を繰り返してもよい(S73)。
次に、図14を参照して、受信装置20bの処理の流れについて説明する。
受信部212Bがフレームを受信すると(S81)、中継判定部221は、フレームを解析してシーケンス番号を取得する。また、中継判定部221は、取得したシーケンス番号に対応する機器アドレスをSN記憶部116bへ照合して、自局宛のACKフレームか否かを判断する(S82)。ここではACKフレームが自局宛であるため、受信装置20bは中継局の存在を認識し、続いて代理データフレームが中継局から中継転送されることを認識する。よって、通信制御部222は、代理データフレームの受信が完了するまで、通信を継続できるように、拡張アクティブ期間を設定する(S84)。
なお、通信制御部222は、次のデータフレーム転送を完了するまでに非アクティブ期間1008に入るか判断し、もし非アクティブ期間に入る場合にだけ、一定期間スリープしないように、拡張アクティブ期間を設定してもよい。
例えば、通信制御部222は、代理データ52のデータサイズを、中継装置30から取得し、このデータサイズを受信装置20bと中継装置30との間の通信速度で割ることで、代理データ52の転送に必要な時間を算出できる。また、通信制御部222は定期的に受信するビーコンフレームより、現在のアクティブ期間の終了時刻を知ることができる。よって、通信制御部222は、代理ACK51の受信を開始した時刻から、代理データ52の受信が完了するまでに必要な時間が経過した時刻T1が、アクティブ期間の終了時刻T2以後であれば、少なくともT1とT2との差分だけ拡張アクティブ期間を設定してもよい。
なお、図15に示されるように、受信装置20は、拡張アクティブ期間を設定した(S84)後に、代理データ52の受信が完了した場合(S85)には、代理データ52に対してFCS(Frame Check Sequence)チェックを行ってもよい(S86)。この場合、受信装置20は、代理データ52を誤りなく受信できた場合(S86でYes)にのみ、代理データACKを中継装置30へ送信してもよい(S87)。
次に、図16を参照して、中継装置30の処理の流れについて説明する。
前述のとおり、送信装置10と受信装置20bとは互いに通信可能な範囲内にないので、受信装置20bはデータフレーム50を受信することができない。一方、中継装置30は送信装置10の通信可能範囲内にあるので、中継装置30はデータフレーム50を受信する(S310)。
フレーム判定部334は、受信したフレームを解析し、データフレームであるか否かを判定する(S312)。データフレーム50を受信した場合(S312でYes)、フレーム判定部334は受信したデータフレーム50を代理データとして記憶部341に記憶する。なお、フレーム判定部334は、データフレーム50の宛先アドレスが、自アドレス宛であるか否かを判定し、自アドレス宛以外である場合にのみ、ステップS314以降の処理を行うとしてもよい。その場合も、ここではデータフレーム50は受信装置20b宛であるので、中継装置30が備えるフレーム判定部334は、データフレーム50を一旦記憶部341に記憶する(S314)。
次に、中継装置30は、送信装置10が送信したデータフレーム50に対するACKフレームの待ち時間T11が経過するまでACKフレームが受信できないか否かを判定する(S316)。ここで、待ち時間T11が経過するまでにACKフレームが受信できないことを確認した場合にのみ(S316でNO)、送信装置10に対して、データフレーム50に対するACKフレームの代理である代理ACKフレーム51を送信する(S318)。
この時、送信装置10は、送信元アドレスとして受信装置20bのアドレスが設定された代理ACKフレーム51を、受信装置20bから送信されたものとして送信する(S318)。
次に通信制御部340は、中継装置30の拡張アクティブ期間を設定する(S324)。
続いて、通信制御部340は、記憶部341に記憶しているデータフレーム50を、代理データフレーム52として受信装置20bへ送信する(S326)。
なお、通信制御部340は、図17に示されるように、代理データフレーム52の送信を開始してから、その送信が完了するまでにアクティブ期間が終了するか否かを、ステップS326の前に判定し(S322)、アクティブ期間が終了する場合にのみ(S322でYes)、拡張アクティブ期間を設定(S324)してもよい。さらにまた、通信制御部340は、代理データフレーム52に対する確認応答である代理データACKフレーム53を受信するまでにアクティブ期間が終了するか否かを、ステップS326の前に判定してもよい。
例えば、通信制御部340は、代理データ52のデータサイズを取得し、このデータサイズを中継装置30と受信装置20bとの間の通信速度で割ることで、代理データ52の受信完了までに必要な時間を算出できる。また、通信制御部340は定期的に受信するビーコンフレームより、現在のアクティブ期間の終了時刻を知ることができる。よって、通信制御部340は、代理ACKフレーム51の送信を開始した時刻から、代理データフレーム52の送信完了までに必要な時間が経過した時刻T3が、アクティブ期間の終了時刻T4以後であれば、少なくともT3とT4との差分だけ拡張アクティブ期間を設定してもよい。
通信制御部340は、代理データフレーム52の送信が完了するまでにアクティブ期間が終了すると判定した場合(SS322でYes)、拡張アクティブ期間を設定し(S324)、代理データフレーム52を送信する(S326)。
なお、中継装置30は、図17に示されるように、ステップS326の後に、規定時間以内に受信装置20bから代理データフレーム52が受信できたか否かを判定し(S328)、受信できない場合には(S328でNo)、事前に定められた再送回数の最大値未満の間は(S330でNo)、代理データフレーム52の再送を繰り返してもよい(S326)。
以上の動作により、アクティブ期間1007と非アクティブ期間1008が混在する無線ネットワークシステムにおいても、データフレームの中継途中に非アクティブ期間に入ってスリープすることなく、通信を継続することが可能となる。その結果、遅延時間が図11においてT13で示される待ち時間だけとなるよう、短縮することが可能となる。これにより、伝送遅延によるアプリケーションへの影響を軽減することが可能となる。
すなわち、本実施の形態に係る送信装置10は、シーケンス番号に宛先が対応付けられたACKフレームを生成し、受信装置へ送信する。その結果、IEEE802.15.4のようにフレームの宛先を示すAddressingフィールドの無いACKフレーム(すなわち、フレームの受信確認応答として送信されるフレーム)であっても、受信装置は、受信したACKフレームが、どの受信装置を宛先として送信されたフレームに対する受信確認応答であるかを判断することができる。これにより、受信装置は、受信したフレームが中継装置によって送信されたものか否かを判定することができる。その結果、中継装置から送信されたものであると判定した場合には、拡張アクティブ期間を設定することによって、送信フレームの低遅延中継が可能となる。
また、本実施の形態に係る受信装置20は、受信したフレームが中継装置によって送信されたものであると判定した場合、その後に中継装置から送信されるすべてのフレームを、次のビーコンが送信されるまでの期間内で受信できるように、拡張アクティブ期間を設定する。その結果、フレームの低遅延中継が可能となる。
また、本実施の形態に係る中継装置30は、中継途中のフレームの送信が完了するまでは、少なくとも自分自身は通信可能な期間である拡張アクティブ期間を、無線通信システムによって定められた非アクティブ期間内に設定する。その結果、中継するフレームを送信中に中継装置がスリープ状態に入ることを防止できる。よって、中継装置は、アクティブ期間中には無線通信を行い、非アクティブ期間中には無線通信を中断する無線通信システムにおいて、フレームの低遅延中継が可能となる。
(実施の形態2)
次に、本発明の第2の実施の形態に係る中継装置30について説明する。
図18は、実施の形態2に係る中継装置1030aの機能構成を示すブロック図である。なお、図9に示される中継装置30と同一の構成要素には同一の符号をつけ、詳細な説明は省略する。
本実施の形態に係る中継装置1030aは、図9に示される実施の形態1に係る中継装置30と比較して、代理データACK検出部360をさらに備える点が異なる。
代理データACK検出部360は、受信装置20が第4フレーム(すなわち、代理データフレーム52)の受信確認応答として送信装置10へ送信する第5フレーム(すなわち、代理データACKフレーム53)を検出する。
また、代理データACK検出部360は、第4フレームが送信されてから事前に定められた期間内に、第4フレームに対応する第5フレームを検出できたか否かを示す確認結果を、受信装置20に固有の識別子と対応付けて、自身が有する確認テーブル362へ記憶する。
通信制御部340aは、第1フレームを受信してから事前に定められた期間内に、第1フレームの宛先である受信装置20から第1フレームに対応する第2フレームを受信できず、かつ、確認テーブル362に記憶されている当該受信装置の識別子に対応する確認結果が、以前に第5フレームが検出できなかったことを示さない場合に限り、(A)送信部333Aに、送信装置10と受信装置20とへ第3フレームを送信させ、(B)第4フレームの送信がアクティブ期間内に完了するように、拡張アクティブ期間を設定し、(C)送信部333Aに、フレーム判定部334が記憶している第1フレームを第4フレームとして受信装置20へ送信させる。
なお、図19に示される中継装置1030bのように、実施の形態1の変形例に係る中継装置1030に、確認テーブル362と代理データACK検出部360とを追加することでも、同様の効果を奏する。
図20は、確認テーブル362のデータ構造の一例を示す図である。
図20に示されるように、確認テーブル362は、受信装置20に固有の識別子である端末アドレスと、当該端末アドレスで示される受信装置20から第5フレームが届いたか否かを示す確認結果とが対応づけて記憶されている。
例えば、0x0011の端末アドレスに対応する確認結果は「可」である。これは、以前に、識別子が0x0011である受信装置20へ第4フレームを送信した際は、所定の時間内に代理データACK検出部360が第5フレームを検出できたことを示す。よって、通信制御部340aは、端末アドレスが0x0011で特定される受信装置20へ宛てられたデータフレームを中継するための処理(上記(A)〜(C))を行う。
また、0x0013の端末アドレスに対応する確認結果は「不可」である。これは、以前に、識別子が0x0013である受信装置20へ第4フレームを送信した際は、所定の時間内に代理データACK検出部360が第5フレームを検出できなかったことを示す。よって、通信制御部340aは、端末アドレスが0x0013で特定される受信装置20へ宛てられたデータフレームを中継しない。
また、通信制御部340aは、例えば端末アドレスが0xffffで特定される受信装置20へ宛てられたデータフレームを受信し、0xffffが確認テーブル362の端末アドレスに含まれていない場合には、このデータフレームを端末アドレスが0xffffで特定される受信装置20へ中継する。中継した後、代理データACK検出部360が所定の時間内に、端末アドレスが0xffffである受信装置20から送信された第5フレームを検出できた場合には、代理データACK検出部360は端末アドレス0xffffと、その確認結果である「可」を対応付けて、確認テーブル362へ記憶する。
一方、中継した後、代理データACK検出部360が所定の時間内に、端末アドレスが0xffffである受信装置20から送信された第5フレームを検出できなかった場合には、代理データACK検出部360は端末アドレス0xffffと、その確認結果である「不可」を対応付けて、確認テーブル362へ記憶する。
なお、本実施の形態では、確認テーブル362が記憶している確認結果を、「可」「不可」と表しているが、それぞれ「受信可」「受信不可」、「OK」「NG」、「1」「0」など2つの状態を表す任意の形式で確認結果を記憶できる。また、確認テーブル362は「可」「不可」の2状態に加え、第5データフレームが受信できるか否かが不明であることを示す情報として、例えば「不明」又は「2」などを加えた、合計3状態のいずれかとして確認結果を記憶してもよい。
図21は、本実施の形態に係る中継装置1030aを備えた無線通信システムのシーケンスを示す図である。
送信装置10が直接に通信できない距離にいる受信装置20bへ宛てて送信したデータフレーム50を中継装置1030aが受信すると(S210)、通信制御部340aは確認テーブル362を参照して、以前に受信装置20bから第5フレームを受信できたか否かを確認する。ここで、第5フレームが検出できなかったという確認結果が確認テーブル362に記憶されていない場合には、通信制御部340aは代理ACK51を送信し、続いて代理データ52を受信装置20bへ送信する(S216)。その後は所定の時間(例えばT11)だけ、代理データ52に対する受信装置20bからの受信応答である第5フレームを待ち受ける。
なお、第5フレームが検出できなかったという確認結果が確認テーブル362に記憶されていない場合とは、例えば、受信装置20bから第5フレームを受信できたことを示す確認結果が確認テーブル362に記憶されている場合、又は、受信装置20bに対応する確認結果が確認テーブル362に記憶されていない場合などである。
ここで、受信装置20bが中継装置1030aとも直接に通信できない距離にいる場合、中継装置1030aは第5フレームを受信できない。よって、中継装置1030aが備える代理データACK検出部360は、受信装置20bから第5フレームを受信できなかったことを示す確認結果を確認テーブル362へ記憶する。
図22は、本実施の形態に係る中継装置1030aの処理の流れを示すフローチャートである。
受信部333Bが無線フレームを受信し(S402)、受信したフレームはデータフレームであるとフレーム判定部334が判定すると(S404でYes)、フレーム判定部334は当該フレームを記憶部341に記憶する(S406)。
その後、通信制御部340aは、受信したデータフレームに対応するACKフレームを規定時間以内に受信した場合は(S408でYes)処理を終了する。一方、規定時間以内にACKフレームを受信しなかった場合、通信制御部340aは当該データフレームの中継が必要であると判断し、拡張アクティブ期間を設定する(S410)。
次に通信制御部340aは、中継するデータフレームの送信先が確認テーブル362に存在するか否かを判定する(S412)。判定の結果、存在する場合には(S412でYes)、対応する代理データACKの確認結果を参照する(S414)。ここで、代理データACKが受信できなかったことを確認結果が示す場合には(S414でNo)、通信制御部340aは処理を終了する。
一方、中継するデータフレームの送信先が確認テーブル362に存在しない場合(S412でNo)、又は、中継するデータフレームの送信先から代理データを受信したことを示す確認結果が確認テーブル362に記憶されている場合(S414でYes)には、通信制御部340aは、代理ACK生成部332で生成された代理ACKを送信する(S416)。
次に、通信制御部340aは、記憶部341に記憶されているデータフレームを代理データとして、当該データフレームの送信先へ送信する(S418)。
次に、代理データACK検出部360は、送信された代理データに対応する代理データACKが規定時間以内に受信できたか否かを判定する(S420)。その結果、受信できなかった場合には、代理データACK検出部360は、確認テーブル362に代理データACKが受信できなかったことを示す情報(「不可」)を記憶する(S424)。一方、代理データACKを受信できた場合には、代理データACK検出部360は確認テーブル362に、代理データACKが受信できたことを示す情報(「可」)を記憶する(S422)。
なお、ステップS420において、代理データACK検出部が代理データACKを受信できなかった場合には、事前に定められた回数以内で代理データの再送を行ってもよい。
例えば、図23を参照して、代理データACK検出部が規定時間以内に代理データACKを受信できなかった場合(S420でNo)には、再送回数が許可された最大値未満である場合に限り(S426でNo)、通信制御部は代理データを再送する(S418)。この場合、再送回数が許可された最大の回数に達した場合(S426でYes)、代理データACK検出部360は確認テーブル362に代理データACKが受信できなかったことを示す情報(「不可」)を記憶する(S424)。
なお、通信制御部340aは、ステップS410で拡張アクティブ期間を設定する前に、当該データフレームの送信を完了する前までにアクティブ期間が終了するか否かを判定してもよい。この場合、通信制御部340aは、アクティブ期間が終了すると判定した場合にのみ、ステップS410で拡張アクティブ期間を設定してもよい。
なお、本発明の実施の形態1及び2、並びにそれらの変形例における接続構成は、無線通信だけに限られない。例えば、電灯線(電力線)、電話線、同軸ケーブル、光ケーブル、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(High−Definition Multimedia Interface;登録商標)、及びIEEE1394などの有線通信でも構わない。これらにより本発明の無線ネットワークシステムは各種伝送メディアで通信することができる。
なお、本発明の実施の形態1及び2、並びにそれらの変形例における構成では、送信装置から中継装置を介して受信装置へ転送されるダウンリンクでのデータフレームの転送を例に記載した。しかし、これに限定されずに、受信装置から中継装置を介して送信装置へ転送されるアップリンクでのデータフレームの転送でも構わない。これら構成も、上記実施の形態の組み合わせにより容易に想定できる。すなわち、本発明の無線通信システムはデータフレーム中継を、ダウンリンクだけでなく、アップリンクでも適用できる。
なお、本発明の実施の形態1及び2、並びにそれらの変形例における構成では、送信装置、中継装置、及び受信装置の各役割機能を明確に分離した。しかし、これに限定されずに、全役割機能を1つの装置に搭載した無線伝送装置とすることも可能である。これらにより、P2P(Peer to Peer)のメッシュネットワークへの対応も可能となる。
なお、本願の実施の形態の構成は、CPUやMPUで動作するコンピュータに実行させるためのプログラムとして実現することもできる。
すなわち、このプログラムは、コンピュータに、フレームを受信する受信ステップと、受信された前記フレームが、前記第1フレームであると判定した場合には当該第1フレームを記憶するフレーム判定ステップと、前記受信ステップにおいて前記第1フレームが受信された後、事前に定められた期間内に前記第2フレームが受信されない場合には、前記第2フレームの代理フレームである第3フレームを送信し、前記アクティブ期間の終了後においても継続して通信できる期間である拡張アクティブ期間を当該アクティブ期間に続く非アクティブ期間内に設定し、当該拡張アクティブ期間内に、前記フレーム判定ステップにおいて記憶された前記第1フレームである第4フレームを前記受信装置へ送信する通信制御ステップとを含む中継方法を実行させる。
またこのプログラムはROM(Read Only Memory)やRAM(Random Access Memory)などの記憶媒体に記憶することもできる、あるいはインターネットなどの伝送媒体を介して配信することもできる。
なお、本発明の実施の形態1及び2、並びにそれらの変形例に係る無線装置の構成は、CPUやMPUで動作するソフトウェア構成に限定されずに、典型的には集積回路であるLSI(Large Scale Integration)などのハードウェアで実現されているものとしてもよい。これらは、個別に1チップ化されていてもよいし、すべての構成又は一部の構成を含むように1チップ化されてもよい。集積回路は、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSI等と呼称されることもある。また、集積回路の手法は、LSIに限定されるものではなく、専用回路又は汎用プロセッサを用いて実現してもよい。さらに、FPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成することができるリコンフィギュアラブル・プロセッサを利用してもよい。さらに半導体技術の進歩により、又は派生する別技術により現在の半導体技術に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の応用等が考えられる。
より具体的には、図24は、実施の形態1及び2、並びにそれらの変形例に係る無線装置である、送信装置10、受信装置20、中継装置30、及び中継装置1030a等を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
これらの無線装置は、コンピュータ734と、コンピュータ734に指示を与えるためのキーボード736及びマウス738と、コンピュータ734の演算結果等の情報を提示するためのディスプレイ732と、コンピュータ734で実行されるプログラムを読み取るためのCD−ROM(Compact Disc−Read Only Memory)装置740及び通信モデム752とを含む。
これらの無線装置が行う処理であるプログラムは、コンピュータで読取可能な媒体であるCD−ROM742に記憶され、CD−ROM装置740で読み取られる。又は、コンピュータネットワークを通じて通信モデム752で読み取られる。
コンピュータ734は、CPU(Central Processing Unit)744と、ROM(Read Only Memory)746と、RAM(Random Access Memory)748と、ハードディスク750と、通信モデム752と、バス754とを含む。
CPU744は、CD−ROM装置740又は通信モデム752を介して読み取られたプログラムを実行する。ROM746は、コンピュータ734の動作に必要なプログラムやデータを記憶する。RAM748は、プログラム実行時のパラメータなどのデータを記憶する。ハードディスク750は、プログラムやデータなどを記憶する。通信モデム752は、コンピュータネットワークを介して他のコンピュータとの通信を行う。バス754は、CPU744、ROM746、RAM748、ハードディスク750、通信モデム752、ディスプレイ732、キーボード736、マウス738及びCD−ROM装置740を相互に接続する。
さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
また、本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
さらに、本発明は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc(登録商標))、USBメモリ、SDカードなどのメモリカード、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
また、本発明は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
また、上記プログラム又は上記デジタル信号を上記記録媒体に記録して移送することにより、又は上記プログラム又は上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
さらに、上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。