以下、図面を参照し本発明の実施の形態を説明する。なお、以下の実施例中では、同一の番号を付した部分については同様の動作を行うものとし、重ねての説明を省略する。
まず、図1を用いて本発明の無線システムの概要を説明する。図1の無線システムは、第1〜3無線機器1〜3を備える。本発明の無線システムでは無線機器の通信範囲を広くて数10cm程度と仮定している。このように無線機器の通信範囲が数10cmの近距離通信の場合、無線機器1台に接続する無線機器は多くて数台となる。図1の例では、無線システムが備える無線機器の台数を3台としているが、これに限られず2〜5台程度であってもよい。図1の例では、第1無線機器1と第2無線機器2とが無線通信を行っている。また第1無線機器1と第3無線機器3が無線通信を行っている。以下の説明では、第1無線機器1と第2無線機器2との無線通信について説明するが、第1,3無線機器1,3との間の無線通信であっても第2,3無線機器2,3との間の無線通信であってもよいことは言うまでもない。
1つの無線機器がアクセスポイントとしてブロードキャスト信号(例えばBeacon信号)を送信し、各無線機器が送信する度にランダムバックオフ制御を行う手法よりも接続を簡易化しかつ効率化するために、無線通信システムは、次のように通信を行う。
まず、第1無線機器1は、第2無線機器2に送信したいデータが発生すると、第2無線機器に接続要求信号を例えばランダムバックオフ制御を用いて送信する。第2無線機器2が接続要求信号を受信し、第1無線機器1に接続許可信号を送信することで第1,2無線機器1,2は接続を確立する。
接続確立後、第1無線機器1は、送信したいデータを複数に分割し、複数の分割データを生成する。第1無線機器1は、分割データからデータ信号を生成して第2無線機器2に送信する。このデータ信号には、応答信号の種類を示す応答要求(応答信号タイプ)が含まれている。第2無線機器2は、データ信号を受信すると、応答要求とデータ信号の受信結果に応じて応答信号を送信する。
(通信例1)
図2を用いて、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後の、第1,2無線機器1,2の間の通信を説明する。第1,2無線機器1,2は、互いに十分なサイズの受信バッファをそれぞれ有しているものとする。また、第1無線機器1は第2無線機器2が有する受信バッファのサイズを把握しているものとする。以下、図の実線の信号は送信信号を、点線の信号は受信信号を示すものとする。
第1無線機器1は、接続確立後、データ信号D101を送信する。データ信号D101は、図示しないがヘッダフィールドとデータフィールドとを有している。ヘッダフィールドにはどのタイプの応答信号を用いるか示す情報(応答要求)及び送信するデータ信号が何番目に送信された信号かを示す情報(SN: Sequence Number)が含まれている。データフィールドには、送信したいデータを分割した分割データが含まれている。データ信号D101を送信する場合、第1無線機器1は、応答としてACK信号を要求する。従ってデータ信号D101のヘッダフィールドにはACK信号を要求する情報(ACK要求)とSN=1という情報が記載される。
第2無線機器2は、データ信号D101を受信するとヘッダフィールド及びデータフィールドが正しく復調できたか否かを判断する。なお、第2無線機器2が、データ信号D101を受信でき、かつヘッダフィールド/データフィールドを正しく復調できた場合に、ヘッダフィールド/データフィールドの受信に成功したとする。第2無線機器2がデータ信号D101を受信できたとしても、ヘッダフィールド/データフィールドを正しく復調できなかった場合は、ヘッダフィールド/データフィールドの受信に失敗したとする。
ヘッダフィールド及びデータフィールドが正しく受信できている場合は、第2無線機器2は、データフィールドに含まれる分割データData1を受信バッファB2に格納する。第2無線機器2は、分割データData1を受信バッファB2から上位レイヤ(Upper)に送る。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A101を第1無線機器1に返信する。また、第2無線機器2はデータ信号D101のSN(=1)を記憶する。
第1無線機器1は、ACK信号A101を受信すると、SN=2のデータ信号D102を送信する。第1無線機器1は、データ信号D102の応答要求として否定応答を設定する(NACK要求)ものとする。第1無線機器1は、例えばデータ信号D101が第2無線機器2に正しく送信されているので伝搬環境が良いと判断し、ACK要求からNACK要求へ切り替える。また第1無線機器1は、ACK信号A101の受信結果から伝搬環境の良し悪しを判断し、ACK要求からNACK要求への切り替えを判断してもよい。
第2無線機器2は、データ信号D102を受信するが、伝搬環境の悪化により、ヘッダフィールド及びデータフィールドの受信に失敗したとする。第2無線機器2は、データフィールドの受信に失敗しているので受信バッファB2に何も格納しない。第2無線機器2は、ヘッダフィールドの受信に失敗しているので、応答要求を判断できない。従って、第2無線機器2は、ACK信号、NACK信号のどちらも返信しない。
第1無線機器1は、データ信号D102を送信後一定期間たってもNACK信号が返信されないので、データ信号D102の送信に成功したと判断する。第1無線機器1は、次のデータ信号D103を送信する。データ信号D103も応答信号タイプとして否定応答が設定されている。
第2無線機器2は、データ信号D103を受信する。第2無線機器2はヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。第2無線機器2はヘッダフィールドに含まれる応答要求から応答信号を送信するか否かを決定する。この場合、応答信号タイプはNACK信号であり、データ信号D103の受信に成功しているため、第2無線機器2は応答信号を返信しない。
第2無線機器2は、データフィールドに含まれる分割データDATA3を受信バッファB2に格納する。このとき、第2無線機器2はヘッダフィールドの受信結果からデータ信号D103のSNが3であり、前回受信したデータ信号D101のSN(=1)と連続していないと判断する。つまり、前回受信したデータ信号D101と、今回受信したデータ信号D103との間に受信していないデータ信号D102があると判断し、第2無線機器2は、データ信号D102に含まれる分割データを格納できる領域を空けて分割データDATA3を受信バッファB2に格納する。また、第2無線機器2は、今回受信したデータD103のSN(=3)及び受信していないデータ信号D102のSN(=2)を記憶しておく。
第1無線機器1はデータ信号D103を送信後、一定期間たってもNACK信号が返信されないので、データ信号D103の送信に成功したものと判断する。第1,2無線機器1,2は、同様にデータ信号D104,D105の送受信を行う。
第1無線機器1は、応答信号タイプとしてNACK要求を設定して送信した分割データDATA2,3,4,5、今回送信する予定の分割データDATA6、及び次回送信する予定の分割データDATA7の合計が、第2無線機器2が有する受信バッファB2のサイズより大きくなる、つまり図2に示すように分割データDATA6が受信バッファB2に格納されると、分割データDATA2を除き他のデータが格納できなくなる場合、第1無線機器1は、分割データDATA6を含むデータ信号D106を、応答要求としてACK要求を設定して送信する。
第2無線機器2は、データ信号D106を受信すると、ヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData6を受信バッファB2に格納する。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A106を第1無線機器1に返信する。このとき、第2無線機器2は、受信していないSN(図2の場合、SN=2)をACK信号A106に含める。
第1無線機器1は、ACK信号A106を受信すると、受信していないSNに対応するデータ信号を再送する。図2の場合は、第1無線機器1は、データ信号D102を再送する。このとき、第1無線機器1は、データ信号D102の応答要求をACK要求に設定する。
第2無線機器2は、データ信号D102を受信するとヘッダフィールド及びデータフィールドが正しく受信できたか否かを判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData2を受信バッファB2の開いている領域に格納する。このように受信バッファB2に格納される分割データをSN順に並べ替えることを(受信)バッファのリオーダリングと呼ぶ。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A’102を第1無線機器1に返信する。第2無線機器2は、分割データData2〜DATA6を受信バッファB2から上位レイヤ(Upper)に送る。
上述したように、第1,2無線機器1,2が十分な大きさの受信バッファを有しており、第1無線機器1が第2無線機器2の受信バッファB2のサイズを知っている場合、第1無線機器1が第2無線機器2の受信バッファB2のサイズに応じてデータ信号の応答信要求をACK要求に設定する。つまり第1無線機器1は、NACK要求を設定して送信した分割データの総量が、第2無線機器2の受信バッファB2のサイズより大きくなった場合、次に送信する送信データはACK要求を設定して送信する。これにより第2無線機器2がデータ信号D102の受信に失敗しても、第1無線機器1はデータ信号D102を確実に再送できるようになる。
(通信例2)
図3を用いて、第1,2無線機器1,2の別の通信例を説明する。図3に示す例では、第2無線機器2が一度データ信号の受信に失敗すると、その後はデータ信号の受信に成功しても分割データは受信バッファに格納せず、応答要求に従って応答信号を送信する。具体的に、図3を用いて説明する。なお第1無線機器1がデータ信号D103を送信するまでは図2と同じなので説明を省略する。
第2無線機器2は、データ信号D103を受信すると、ヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合、通信例1ではデータフィールドに含まれる分割データData3を受信バッファB2に格納しているが、本例では一度データ信号D102の受信に失敗しているので、第2無線機器2は、分割データData3を受信バッファB2に格納しない。ただし、第2無線機器2は、ヘッダフィールドの受信に成功しているので、応答要求に従って応答信号を第1無線機器1に返信する。この場合、応答要求はNACK要求であり、データフィールドの受信に成功しているので、第2無線機器2は応答信号を返信しない。
第1無線機器1はデータ信号D103を送信後、一定期間たってもNACK信号が返信されないので、データ信号D103の送信に成功したものと判断する。第1,2無線機器1,2は、同様にデータ信号D104の送受信を行う。
第1無線機器1は、応答要求としてNACK要求を設定して複数のデータ信号を送信している場合でも、定期的にACK要求を設定してデータ信号を送信する。図3の例では、第2無線機器2は、応答要求としてACK要求を設定してデータ信号D105を送信する。
第2無線機器2は、データ信号D105を受信すると、ヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。ヘッダフィールド及びデータフィールドが正しく受信できているが、データフィールドに含まれる分割データData5を受信バッファB2には格納しない。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A105を第1無線機器1に返信する。このとき、第2無線機器2は、最後に受信バッファB2に格納した分割データDATA1に対応するSN(=1)をACK信号A105に含めて返信する。
第1無線機器1は、ACK信号A105を受信すると、ACK信号A105に含まれるSN=1の次のSN(=2)に対応するデータ信号D102を再送する。このとき、第1無線機器1は、データ信号D102の応答要求をACK要求に設定する。
第2無線機器2は、データ信号D102を受信するとヘッダフィールド及びデータフィールドが正しく受信できたか否かを判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData2を受信バッファB2に格納する。第2無線機器2は、分割データData2を受信バッファB2から上位レイヤ(Upper)に送る。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A’102を第1無線機器1に返信する。
第1無線機器1はACK信号A’102を受信すると、データ信号D103を再送する。データ信号D103の応答要求はACK要求でもNACK要求でもよい。図3の例ではNACK要求を設定した場合を示している。
第2無線機器2はデータ信号D103を受信するとヘッダフィールド及びデータフィールドが正しく受信できたか否かを判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData3を受信バッファB2に格納する。第2無線機器2は、分割データData3を受信バッファB2から上位レイヤ(Upper)に送る。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がNACK信号を要求していると判断し、応答信号を第1無線機器1に返信しない。
同様にして第1無線機器1はデータ信号D104以降を送信する。
上述したように、一度受信に失敗した場合、次に応答信号を送信するまでデータ信号の受信に成功しても第2無線機器2は、受信した分割データを受信バッファB2に格納せず、応答信号に最後に受信バッファB2に格納した分割データに対応するSNを含めて返信する。第1無線機器1は、応答信号に最後に送信したデータ信号のSN以外のSNが含まれている場合は、応答信号に含まれるSNの次の番号に対応するデータ信号から最後に送信したデータ信号まで順次再送を行う。これにより、第1無線機器1が第2無線機器2の受信バッファサイズを知らなくても、第1無線機器1は受信誤りの未検出を削減でき、確実にデータ信号の再送を行うことができる。
(通信例3)
図4に、第1,2無線機器1,2の別の通信例を説明する。図4に示す例では、図3に示す例と異なり、一度受信に失敗した後であっても、その後受信したデータ信号の受信に成功したら分割データを受信バッファに格納する。図4を用いて詳細を説明する。なお、第1無線機器1がデータ信号D103を送信するまでは図2,3と同じなので説明を省略する。
第2無線機器2は、データ信号D103を受信すると、ヘッダフィールド及びデータフィールドを復調する。第2無線機器2は、ヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。図4の例では、第2無線機器2はデータ信号D103のヘッダフィールド及びデータフィールドが正しく受信できているのでデータフィールドに含まれる分割データData3を受信バッファB2に格納する。ただし、一つ前のデータ信号D102の受信に失敗しているため、分割データData3を受信バッファB2から上位レイヤ(Upper)には送らない。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がNACK信号を要求していると判断し、応答信号を第1無線機器1に返信しない。
第1無線機器1はデータ信号D103を送信後、一定期間たってもNACK信号が返信されないので、データ信号D103の送信に成功したものと判断する。第1,2無線機器1,2は、同様にデータ信号D104の送受信を行う。
第1無線機器1は、応答信号タイプとしてNACK要求を設定して複数のデータ信号を送信している場合でも、定期的にACK要求を設定してデータ信号を送信する。図4の例では、第2無線機器2は、応答信号ポリシーとしてACK要求を設定してデータ信号D105を送信する。
第2無線機器2は、データ信号D105を受信すると、ヘッダフィールド及びデータフィールドを復調する。第2無線機器2は、ヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。ここで、第2無線機器2の受信バッファB2のサイズが小さく分割データData5が受信バッファB2に格納できないとする。この場合、データフィールドの受信に成功していても、第2無線機器2は分割データData5を受信バッファB2に格納しない。
第2無線機器2は、データ信号D105のヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A105を第1無線機器1に返信する。このとき、第2無線機器2は、最後に受信バッファB2に格納できなかったデータ信号のSN(図4の例では、SN=2とSN=5)をACK信号A105に含めて返信する。もしくは、ACK信号A105にて通知するSNが1つの場合、ACK信号A105にSN=2を含めて返信し、SN=2のデータ信号D’102を受信した後に、データ信号D’102の応答信号であるACK信号A’102にSN=5を含めて返信してもよい。
第1無線機器1は、ACK信号A105を受信すると、ACK信号A105に含まれるSN=2,5のうちSNが小さい方(SN=2)に対応するデータ信号D102を再送する。このとき、第1無線機器1は、データ信号D102の応答信号ポリシーをACK要求に設定する。
第2無線機器2は、データ信号D102を受信すると、ヘッダフィールド及びデータフィールドを復調する。第2無線機器2は、ヘッダフィールド及びデータフィールドが正しく受信できたか否かを判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData2を受信バッファB2に格納する。第2無線機器2は、受信バッファB2のリオーダリングを行い、受信バッファB2に格納されている分割データData2〜Data4をUpperに送る。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A’102を第1無線機器1に返信する。
第1無線機器1は、ACK信号A’102を受信すると、SN=5に対応するデータ信号D105を再送する。データ信号D105の応答要求はACK要求でもNACK要求でもよいが、図4ではNACK要求に設定するものとする。
第2無線機器2はデータ信号D105を受信すると、ヘッダフィールド及びデータフィールドを復調する。第2無線機器2は、ヘッダフィールド及びデータフィールドが正しく受信できたか否かを判断する。ヘッダフィールド及びデータフィールドが正しく受信できている場合は、データフィールドに含まれる分割データData5を受信バッファB2に格納する。第2無線機器2は、分割データData5を受信バッファB2から上位レイヤ(Upper)に送る。また、第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がNACK信号を要求していると判断し、応答信号を第1無線機器1に返信しない。
上述したように、一度受信に失敗した場合でも、その後のデータ信号の受信に成功すると、第2無線機器2は成功したデータ信号に含まれる分割データを受信バッファB2に格納する。第2無線機器2は、ACK信号を返信するときに、受信に失敗したデータ信号のSN又は受信バッファB2があふれて格納できなかったデータ信号のSNをACK信号に含めて返信する。第1無線機器1は、ACK信号に含まれるSNに対応するデータ信号を再送すればよく、図3の場合に比べて再送回数を削減できる。
本発明の実施例1を説明する。実施例1に係る無線システムは、第2無線機器2が返信するACK信号又はNACK信号の構成及び、第1,2無線機器1,2間の通信シーケンスが異なるが、図1に示す無線システムと同じ構成であるため同一符号を用いて説明する。なお、第1〜第3無線機器1〜3の構成は後述する。
図5を用いて、第1〜第3無線機器1〜3が送受信するデータ信号のパケット構成を説明する。データ信号は、ヘッダフィールド(MAC headerとも呼ぶ)とデータフィールド(Frame bodyとも呼ぶ)とを有している。データフィールドには、ペイロード部(payload)と誤り制御情報(FCS:Frame Check Sequence)とが含まれる。ペイロード部(payload)には、送信したいデータを分割した分割データが含まれている。
ヘッダフィールドには、Req ACK Type field及びSN fieldが含まれる。本実施例に係る無線システムは、受信結果をACK信号のみで通知するACKモード、NACK信号のみで通知するNACKモード、及びACK信号又はNACK信号のどちらかで通知する混在モードのいずれかで通信を行う。Req ACK Type fieldには、データ信号を受信した場合に受信結果を通知する信号の種別が記載されている。Req ACK Type fieldには、どのタイプの応答信号を用いるか示す情報(応答要求)が含まれている。無線機器がデータ信号を受信後ACK信号の返信を要求する場合は、Req ACK Type fieldには、ACK要求が記載される。無線機器がデータ信号を受信後NACK信号の返信を要求する場合は、Req ACK Type fieldには、NACK要求が記載される。SN fieldには送信するデータ信号が何番目に送信された信号かを示す情報(SN: Sequence Number)が含まれている。ヘッダフィールドには、上述したfield以外に、宛先アドレス情報や送信元アドレス情報などを含んでいてもよい。また、ヘッダフィールドはcommon headerとsub headerといった内部フィールドに分かれていてもよい。この場合それぞれのheaderの最後に誤り検出用のCRCビットがつく。さらに、この場合、一般に宛先アドレス情報や送信元アドレス情報などはcommon headerに含まれ、Req ACK Typeなどはsub headerに含まれる。この場合、common headerが誤りなく、sub headerに誤りがある場合に、NACKを送信する。
次に、図6を用いて、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後に、第1,2無線機器1,2の間の通信を説明する。第1無線機器1がデータ信号D102を送信するまでは図2と同じであるため説明を省略する。
第2無線機器2は、データ信号D102を受信するが、伝搬環境の悪化により、ヘッダフィールド及びデータフィールドの復調に失敗したとする。第2無線機器2は、データフィールドの受信に失敗しているので受信バッファB2に何も格納しない。第2無線機器2はヘッダフィールドの受信にも失敗している。ここで図2〜図4に示す例では、第2無線機器2は、ヘッダフィールドの受信に失敗すると、応答要求を判断できずACK信号、NACK信号のどちらも返信しないが、図6に示す例では、第2無線機器2は、ヘッダフィールドの受信に失敗すると、NACK信号A602を返信する。この場合、第1無線機器1がReq ACK Type fieldにACK要求を記載していてもNACK信号を送信する。
第1無線機器1は、NACK信号A602を受信すると、データ信号D102を再送する。図6では、第1無線機器1は、前回送信したデータ信号D102と同じ信号を再送しているが、例えば、伝送方式を誤り率の低い方式に変更したり、Req ACK Type fieldにACK要求を記載したりするなど、伝搬環境が悪化しても受信できる可能性が高い送信方式で再送してもよい。
第2無線機器2は、データ信号D102の受信に成功する。第2無線機器2はヘッダフィールドに含まれる応答要求から応答信号を送信するか否かを決定する。この場合、応答要求はNACK信号であり、データ信号D102の受信に成功しているため、第2無線機器2は応答信号を返信しない。また第2無線機器2は、データフィールドに含まれる分割データDATA2を受信バッファB2に格納する。
第1無線機器1は、データ信号D102を送信後、一定期間たってもNACK信号が返信されないので、データ信号D102の送信に成功したものと判断する。第1無線機器1は、データ信号D103を送信する。
第2無線機器2は、データ信号D103を受信する。第2無線機器2はヘッダフィールド及びデータフィールドの受信に成功したか否かを決定する。図6の場合、データ信号D103のヘッダフィールドの受信に成功しているがデータフィールドの受信には失敗している。第2無線機器2は、ヘッダフィールドの受信結果から、第1無線機器1にNACK信号を返信する。
第1無線機器1は、NACK信号を第2無線機器2から受信すると、データ信号D103を再送する。第2無線機器2は、データ信号D103を受信する。今回は、データ信号D103の受信に成功しているため、第2無線機器2は、分割データDATA3を受信バッファB2に格納し、応答信号を返信しない。
第1無線機器1は、データ信号D103を再送後、一定期間たってもNACK信号が返信されないので、データ信号D103の送信に成功したものと判断する。第1無線機器1は、データ信号D104を送信する。第1無線機器1は、混在モードの場合に、NACK要求を含むデータ信号を送信している場合でも一定期間(又は一定回数)毎にACK要求を含むデータ信号を送信する。図6では、第1無線機器1は、データ信号D104にACK要求を含めて送信する。
第2無線機器2はデータ信号D104を受信する。第2無線機器2は、データフィールドに含まれる分割データDATA3を受信バッファB2に格納する。第2無線機器2は、ヘッダフィールドを復調することで、第1無線機器1がACK信号を要求していると判断し、ACK信号A604を返信する。第2無線機器2は、分割データDATA2〜DATA4をUpperに送る。なお、分割データは、連続したSNのデータ信号を受信した場合にUpperに送ってもよく、またACK要求を含めたデータ信号を受信した場合、受信バッファB2がいっぱいになった場合など一定条件をトリガとしてUpperに送ってもよい。
以上のように、第2無線機器2は、ヘッダフィールドの受信に失敗した場合は、応答要求の種別にかかわらず、NACK信号を返信する。なお、前述のように、ヘッダフィールドにcommon headerとsub headerがある場合では、少なくとも応答要求の種別が記載されたheaderが誤った場合にNACK信号を送信する。
次に、図7を用いて、本実施例に係る無線機器の構成例を説明する。図7では、第1無線機器1の構成を示すが、第2,3無線機器2,3も同様の構成とする。
第1無線機器1は、アンテナ10、無線部20、変復調部30及びMAC処理部40と、を備える。変復調部30は変調部31と復調部32を含み、MAC処理部40は、送信部41、受信部42、応答信号制御部43、応答モード管理部44、及び受信バッファ45(受信バッファB2)を含む。
まず、信号送信時の第1無線機器1の動作を説明する。信号送信時、図示しない上位層処理部から出力されたデータは、送信部41に入力される。送信部41は、ヘッダフィールド付加等の処理を行い、データ信号を生成する。このとき、応答信号制御部44の指示に従い、Req ACK Type fieldに応答要求(ACK要求/NACK要求)を示す情報を記載する。
生成した送信信号は変調部31に出力される。変調部31は、データ信号に対して符号化処理、変調処理や、物理ヘッダの追加等の処理を行い、物理データ信号を生成する。無線部20は、物理データ信号に対してD/A変換処理、アップコンバート等の処理を行い、送信信号を生成し、アンテナ10を介して送信する。なお、図7では、ヘッダフィールド付加等の処理を行い、データ信号を生成するブロックを送信部と称しているが、図7の送信部41、変調部31及び無線部20の送信機能を有する部分をまとめて送信部又は送信手段と称してもよい。
次に信号受信時の第1無線機器1の動作を説明する。アンテナ10を介して受信された受信信号は、無線部20にてダウンコンバート、A/D変換等の処理を施され物理データ信号に変換される。復調部32は、物理データ信号に対して復調処理や物理ヘッダの解析等の処理を行い、データ信号を生成する。受信部42は、データ信号のヘッダフィールドの解析等の処理を行い、分割データを生成する。
上述した例では、ヘッダフィールド解析等の処理を行い、分割データを生成するブロックを受信部42と称しているが、図7の受信部42、復調部32及び無線部20の受信機能を有する部分をまとめて受信部又は受信手段と称してもよい。受信部(受信手段)は、肯定応答又は否定応答のいずれかを指定する応答情報を含むヘッダフィールド及び分割データを含むデータフィールドを有するデータ信号を受信する。
応答信号制御部44は、受信部42からヘッダフィールド及びデータフィールドを受け取り、ヘッダフィールド及びデータフィールドの受信に成功したか否かを決定する。つまり、応答信号制御部44は、ヘッダフィールド及びデータフィールドの受信に成功したか否かを示す受信結果を決定する決定手段として動作する。
ヘッダフィールドの受信に失敗していた場合、応答信号制御部44は、送信部41にNACK信号を返信するよう指示する。送信部41はNACK信号を通信相手に返信する。データフィールドの受信に成功しているか否かにかかわらず、分割データは受信バッファ45には格納されない。
ヘッダフィールドの受信に成功し、データフィールドの受信に失敗した場合、応答信号制御部44は、Req ACK Type fieldに記載されている応答要求に従って、応答信号を返信するよう送信部41に指示する。応答信号制御部44は、Req ACK Type fieldにNACK要求が記載されている場合はNACK信号を返信するよう送信部41に指示する。Req ACK Type fieldにACK要求が記載されている場合は、応答信号制御部44は、応答信号の返信を送信部41に指示しない。また、データフィールドの受信に失敗しているため、分割データは受信バッファ45には格納されない。
ヘッダフィールド及びデータフィールドの受信に成功した場合、応答信号制御部44は、Req ACK Type fieldに記載されている応答要求に従って、応答信号を返信するよう送信部41に指示する。応答信号制御部44は、Req ACK Type fieldにACK要求が記載されている場合はACK信号を返信するよう送信部41に指示する。Req ACK Type fieldにNACK要求が記載されている場合は、応答信号制御部44は、応答信号の返信を送信部41に指示しない。受信部42は、分割データを受信バッファ45に格納する。受信バッファは、データが入力された場合又は一定の条件を満たした場合に格納されている分割データをUpper(図示しない)へ送る。一定の条件とは、例えば、前回Upperへ送った分割データのSNと連続したSNを有する分割データが入力された場合、あるいは受信バッファがいっぱいになった場合などがある。
なお、応答信号制御部44の代わりに受信部42がヘッダフィールド及びデータフィールドの受信に成功したか否かを示す受信結果を決定する決定手段として動作するようにしてもよい。この場合、受信部42は、ヘッダフィールド及びデータフィールドの受信結果と、ヘッダフィールドのReq ACK Type fieldに記載されている応答要求を応答信号制御部44に渡す。応答信号制御部44は、ヘッダフィールド及びデータフィールドの受信結果と、ヘッダフィールドのReq ACK Type fieldに記載されている応答要求に基づき、応答信号を第1無線機器1に返信するよう送信部41に指示する。
送信部41は、応答信号制御部44の指示に基づき、応答信号を送信する。送信部41は、ヘッダフィールドの受信に成功した場合は、応答要求及びデータフィールドの受信結果に応じてACK信号又はNACK信号を送信し、ヘッダフィールドの受信に失敗した場合は、NACK信号を送信する。具体的な応答信号の返信方法は、データ信号が応答信号に代わった以外、データ信号の送信方法と同じであるため、説明を省略する。
以上のように、実施例1に係る無線システムでは、ヘッダフィールドの受信に失敗した場合には、応答要求の種別にかかわらずNACK信号を返信する。これにより、伝搬環境が悪化して、ヘッダフィールドの受信に失敗しても受信誤りの未検出を削減でき、データ信号の再送を確実に行うことができる。
(変形例1)
実施例1の変形例1を説明する。変形例1では、応答モード切り替えを確実に行うための方法について説明する。
図8に、変形例1の第1〜第3無線機器1〜3が送受信するデータ信号のパケット構成を説明する。図8のデータ信号は、図5のデータ信号のパケット構成に加え、ヘッダフィールドにreply mode filedを有している。実施例2に係る無線システムは、実施例1と同様、受信結果をACK信号のみで通知するACK(肯定応答)モード、NACK信号のみで通知するNACK(否定応答)モード、及びACK信号又はNACK信号のいずれかを用いて通知する混在モードのいずれかで通信を行う。reply mode filedには、応答モードのいずれかで通信を行うか示す情報が格納される。
次に、図9を用いて、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後に、第1,2無線機器1,2の間の通信を説明する。ここでは、第1,第2無線機器1,2はACKモードで通信を行っており、第1無線機器1からの通知に基づき混在モードで通信を行う場合について説明する。
第1無線機器1は、ヘッダフィールドのreply mode filedにACKモードを、Req ACK Type fieldにACK要求を示す情報を記載したデータ信号D901を送信する。
第2無線機器2はデータ信号D901を受信する。図9では、ヘッダフィールド及びデータフィールドの受信に成功しているため、第2無線機器2は、ACK信号A901を第1無線機器1へ返信する。ここで、第2無線機器2は、ヘッダフィールドを解析すると、reply mode filedに記載されているACKモードを応答モード管理部43に通知する。
第1無線機器1は、ACK信号A901を受信すると、次にデータ信号D902を送信する。ここで、第1無線機器1は、応答モードをACKモードからNACKモードへと切り替える。第1無線機器1は、ヘッダフィールドのreply mode filedにNACKモードを、Req ACK Type fieldにNACK要求を示す情報を記載したデータ信号D902を送信する。
ここで、第2無線機器2が、データ信号D902のヘッダフィールド及びデータフィールドの受信に失敗したとする。第2無線機器2は、ヘッダフィールドの受信に失敗しているため、第1無線機器1にNACK信号A902を返信する。
第1無線機器1は、NACK信号A902を受信すると、データ信号D902 を再送する。
単純に第2無線機器2が応答モード管理部43に記憶される応答モードに従って応答信号を返信するとする。図9のように、第1無線機器1がACKモードからNACKモードに切り替えて送信した送信データを第2無線機器が受信に失敗した場合、第2無線機器2はACKモードが継続されていると判断し、第2無線機器2はACK信号を返信しない。このため、第1無線機器1は、第2無線機器2がデータ信号D902の受信に失敗したことに気づかない。一方、本変形例に示すように、第2無線機器2がヘッダフィールドの受信に失敗した場合にNACK信号を返信するようにすることで、第2無線機器2がデータ信号の受信に失敗したことを、第1無線機器1が検出できるようになる。
なお、ここでは、データ信号を送信する度に第1無線機器1が応答モードを通知する場合について説明したが、第1無線機器1が応答モードを切り替える場合にのみ応答モードを通知するようにしてもよい。また、応答モードはACKモード、NACKモード、混在モードの3種類に限定されず、3種類のいずれか2つを切り替えて通信を行うようにしてもよい。
次に、本発明に係る実施例2を説明する。本実施例に係る無線システムは、複数のフレームを1つのパケットにアグリゲートして送信する点が実施例1と異なる。
図10に、実施例2に係るデータ信号のパケット構成例を示す。データ信号は、MAC common headerと、MAC sub header 及び Frame bodyを有する複数のsub frameと、を有している。以下、図10に示すように複数のsub frameを有するデータ信号をマルチデータ信号と称する。MAC sub header には、frame bodyの受信結果を変死する応答信号のタイプを示すReq ACK Type fieldが含まれている。また、MAC sub headerには、frame bodyの長さ(又はsub frameの長さ)を示すframe length fieldが含まれている。第2無線機器2は、データ信号を受信し、MAC sub headerのframe length fieldを解析することで、次のMAC sub headerの位置を把握する。
次に、図11を用いて、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後に、第1,2無線機器1,2の間の通信を説明する。ここでは、第2無線機器2はBlock ACK(BA)又はNegative Block ACK(NBA)を用いて応答信号を返信するものとする。
Block ACKは、1つでも正しく受信できたデータフィールドが存在する場合に返信する応答信号であり、Negative Block ACKは、1つでも受信に失敗したデータフィールドが存在する場合に返信する応答信号である。どちらもビットマップで構成される。
第1無線機器1は、マルチデータ信号D111を送信する。マルチデータ信号の各MAC sub headerのACK Type fieldにはBA要求を示す情報が記されている。
第2無線機器2は、マルチデータ信号D111を受信すると、先頭のMAC common headerから順に解析する。図10の例では、マルチデータ信号D111のヘッダ(MAC common header 及びMAC sub header)及びデータ(複数のframe body)全ての受信に成功しているため、第2無線機器2は、全てのframe bodyの受信に成功した旨のBA信号A111を返信する。
第1無線機器1はBA信号A111を受信すると、マルチデータ信号D112を送信する。マルチデータ信号の各MAC sub headerのACK Type fieldにはNBA要求を示す情報が記されている。
第2無線機器2は、マルチデータ信号D112を受信すると、先頭のMAC common headerから順に解析する。上述したように、第2無線機器2は、マルチデータ信号D112の1番目に配置されるMAC sub headerを解析することで、2番目に配置されるMAC sub headerの位置を知る。第2無線機器2は、マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗した場合に、次のSub frameを検出する手法として、例えば次のMAC sub headerの先頭を、1つずつずらしてCRCがOKとなる個所を探す手法が知られている。一般的に、マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗すると、以降のMAC sub headerの受信に失敗する可能性が高い。そこで、本実施例の第2無線機器2は、マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗すると、以降のMAC sub headerを探す処理を省略し、第1無線機器1が要求している応答信号にかかわらずNACK信号を返信する。第2無線機器2は、マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗すると応答信号としてNBA信号A112を返信する。
以上のように、本実施例に係る無線システムの第2無線機器2、マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗するとACK Type fieldに記載されている情報にかかわらずNBA信号を返信する。マルチデータ信号D112の1番目に配置されるMAC sub headerの受信に失敗すると、その後のMAC sub headerの受信に失敗する可能性が高いため、第2無線機器2がマルチデータ信号の受信に失敗してしまった場合に、第1無線機器1が、第2無線機器2がマルチデータ信号の受信に成功したと誤って判断する受信誤りの未検出を削減することができるとともに、第2無線機器2は、マルチデータ信号D112に含まれる全てのMAC sub headerを検出する場合に比べて検出処理を削減することができる。
なお、本実施例に係る第1,2無線機器1,2の構成は、送信部41がマルチデータ信号を送信する点、及び受信部42がマルチデータを受信する点を除き、図7に示す無線機器の構成と同じであるため説明を省略する。
また、図10のMAC sub headerが図5のMAC headerに相当し、図10のFrame bodyが図5のFrame bodyに相当する。即ち、本実施例の第1無線機器1は、図5に示すデータ信号を複数アグリゲートし、MAC common headerを付して生成したマルチデータ信号を送信する。
図12を用いて、本発明に係る実施例3を説明する。実施例3の無線システムは、NACK信号にヘッダフィールドの受信に失敗したのか、データフィールドの受信に失敗したのかを示す情報を含む点で実施例1,2と異なる。
図12を用いて、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後に、第1,2無線機器1,2の間の通信を説明する。第1無線機器1がデータ信号D102を送信するまでは図2と同じであるため説明を省略する。
第2無線機器2は、データ信号D102を受信するが伝搬環境の悪化により、ヘッダフィールド及びデータフィールドの復調に失敗したとする。ヘッダフィールドの復調に失敗しているので、応答信号タイプを判断できないが、第2無線機器2は、NACK信号A122を返信する。このNACK信号A122にはヘッダフィールドの受信に失敗した旨を示すHeader誤り情報が含まれている。このHeader誤り情報は、NACK信号A122に1ビットのフラグをたてることによって表現すればよい。
第1無線機器1は、NACK信号A122を受信する。第1無線機器1は、NACK信号A122にHeader誤り情報が含まれているため、データ信号D102を再送する場合に、Req ACK Type fieldにACK要求を記載して送信する。
それ以外の構成及び動作は、実施例1の無線システムと同じであるため説明を省略する。
以上のように、本実施例の第2無線機器2は、NACK信号A122にヘッダフィールドの受信に失敗したか否かを示す情報を含める。一般的にヘッダフィールドはデータフィールドに比べ誤り耐性が強い方式で送信される。従って、ヘッダフィールドの受信に失敗した場合は、伝搬環境が非常に悪い可能性が高い。そこで、本実施例に係る無線システムでは、ヘッダフィールドの受信にも失敗するほど伝搬環境が悪い場合には、ACK信号を用いたACKモードで通信を行い、データフィールドの受信に失敗する程度であれば、NACK信号を用いたNACKモード又は混在モードで通信を行うことで、受信誤りの未検出を削減しつつ伝送効率を向上させることができる。
なお、第1,2無線機器1,2がsub frameをアグリゲートしたマルチデータ信号の送受信を行う場合、1つでもMAC sub headerの受信に失敗した場合は、その旨を示す情報を含めてBA信号又はNBA信号を送信する。MAC sub headerの受信に失敗した旨を示す情報を含むBA信号又はNBA信号を受信した第1無線機器1は、応答モードをACKモードに切り替えて通信を行う。これにより、第1無線機器1は、マルチデータ信号を受信している間に伝搬環境が悪化した場合にでも、すばやくACKモードに切り替えることができる。
図13を用いて本発明に係る実施例4を説明する。本実施例の無線システムがやり取りするデータ信号のパケット構成は、図5に示すものと同じである。また、本実施例の第1,2無線機器1,2は各部の動作を除き、構成は、図7と同じである。
図13は、第1無線機器1が送信機、第2無線機器2が受信機として接続確立した後の、第1,2無線機器1,2の間の通信を示す図である。第1無線機器1がデータ信号D103を送信するまでは図2と同じであるため説明を省略する。
第2無線機器2は、データ信号D103を受信する。第2無線機器2はヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。図13の例では、ヘッダフィールド及びデータフィールドの受信に成功している。第2無線機器2は、データフィールドに含まれる分割データDATA3を受信バッファB2に格納する。このとき、第2無線機器2はヘッダフィールドの受信結果からデータ信号D103のSNが3であり、前回受信したデータ信号D101のSN(=1)と連続していないと判断する。つまり、前回受信したデータ信号D101と、今回受信したデータ信号D103との間に受信していないデータ信号D102があると判断する。第2無線機器2は、受信していないデータがあると判断すると、第1無線機器1にその旨を通知する。図13では、データ信号D102を受信していないため、、第2無線機器2は、データ信号D102のSN=2を示す情報を含むNACK信号A132を、第1無線機器1に返信する。
第1無線機器1は、NACK信号A132を受信する。NACK信号A132には、SN=2を示す情報が含まれているため、第1無線機器1は、SN=2であるデータ信号D102を再送する。また、NACK信号A132には、SN=3が含まれていないため、第1無線機器1は、第2無線機器2がデータ信号D103の受信に成功したと判断する。図13では、第1無線機器1はNACK要求を含めてデータ信号D102を再送する。
第2無線機器2は、データ信号D102を受信する。第2無線機器2はヘッダフィールド及びデータフィールドの受信に成功したか否か判断する。図13の例では、ヘッダフィールド及びデータフィールドの受信に成功している。第2無線機器2は、データフィールドに含まれる分割データDATA2を受信バッファB2に格納する。また、第2無線機器2は、ヘッダフィールドを解析し、第1無線機器1がNACK信号を要求していると判断する。データ信号D102の受信に成功しているため、第2無線機器2は、応答信号を返信しない。
第1無線機器1は、データ信号D102を再送後、一定期間応答信号を受信しなかった場合、一定期間たってもNACK信号が返信されないので、データ信号D102の送信に成功したものと判断する。第1無線機器1はデータ信号D134を送信する。
以上のように、本実施例の第2無線機器2は、受信に成功したデータ信号のSNと、そのひとつ前に受信に成功したデータ信号のSNとが連続しているか否かを比較する。比較したSNが連続しておらず、受信に成功したデータ信号のSNとそのひとつ前に受信に成功したデータ信号のSNとの間に受信に失敗したデータ信号が存在する場合は、第2無線機器2は、受信に失敗したデータ信号のSNをNACK信号に含めて第1無線機器1に返信する。なお、第2無線機器2は、受信に失敗したデータ信号のSNの代わりに、最後に受信に成功したデータ信号のSN、つまり上述した「そのひとつ前に受信に成功したデータ信号のSN」(図13でjは、SN=1)をNACK信号含めて送信しても良い。これにより、伝搬環境が悪化して、ヘッダフィールドの受信に失敗しても受信誤りの未検出を削減でき、データ信号の再送を確実に行うことができる。特に、第2無線機器2がデータ信号D102そのものを受信できず、データ信号D102が存在するかすらわからない場合でも、第1無線機器1は、受信誤りの未検出を削減することができる。
(変形例3)
実施例4では、受信に失敗したデータ信号D102が存在する場合に、第2無線機器2が送信するデータ信号D103の応答信号は、NACK信号としている。本変形例では、第2無線機器2がデータ信号D103の再送を希望するか否かで、応答信号の種類を決定する。それ以外は実施例4と同じである。
まず、第2無線機器2が、ヘッダフィールドの受信には成功したが、データフィールドの受信に失敗した場合について説明する。この場合、データ信号D103の再送が必要であるため、第2無線機器2は、ヘッダフィールドに記載されている応答要求の種類にかかわらず、NACK信号を送信する。NACK信号には、実施例4と同様に、受信していないデータ信号D102のSN(=2)が含まれている。
第1無線機器1は、SN=2が含まれるNACK信号を受信すると、データ信号D102を再送するとともに、データ信号D102の再送に成功した場合は、データ信号D103を再送する。
次に、第2無線機器2が、ヘッダフィールド及びデータフィールドの受信に成功した場合について説明する。この場合、データ信号D103の再送は不要であるため、第2無線機器2は、ヘッダフィールドに記載されている応答要求の種類にかかわらず、ACK信号を送信する。ACK信号には、受信していないデータ信号D102のSN(=2)が含まれている。
第1無線機器1は、SN=2が含まれるNACK信号を受信すると、データ信号D102を再送するが、データ信号D102は再送せず、次のデータ信号であるデータ信号D134を送信する。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。