(57)【要約】【課題】線形符号からなる検査符号を持つフレーム、パケット等のデータの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなデータについての検査符号を生成することを可能とする検査符号生成装置及び検査符号生成方法を提供すること。【解決手段】線形符号からなる検査符号を生成する検査符号生成装置であって、第１のデータと、第１のデータの一部が書き換えられた第２のデータとの排他的論理和についての検査符号である第１検査符号を生成する検査符号演算手段１４と、検査符号演算手段１４が生成した第１検査符号と、第１のデータに付加された検査符号である第２検査符号との排他的論理和を計算する排他的論理和演算手段１８と、を有する。【選択図】      図１
2010010766.tif 000002
【特許請求の範囲】
【請求項１】
線形符号からなる検査符号を生成する検査符号生成装置であって、
第１のデータと、前記第１のデータの一部が書き換えられた第２のデータとの排他的論理和についての検査符号である第１検査符号を生成する検査符号演算手段と、
前記検査符号演算手段が生成した前記第１検査符号と、前記第１のデータに付加された検査符号である第２検査符号との排他的論理和を計算する排他的論理和演算手段と、を有することを特徴とする検査符号生成装置。
【請求項２】
線形符号からなる検査符号を生成する検査符号生成方法であって、
第１のデータと、前記第１のデータの一部が書き換えられた第２のデータとの排他的論理和についての検査符号である第１検査符号を生成する第１の工程と、
前記第１の工程において生成された前記第１検査符号と、前記第１のデータに付加された検査符号である第２検査符号との排他的論理和を計算する第２の工程と、を含むことを特徴とする検査符号生成方法。
【請求項３】
前記第１の工程において生成された前記第１検査符号を含めて構成されたテーブルを保持し、前記第２のデータを生成する際に、前記第２の工程において前記テーブルを参照することを特徴とする請求項２に記載の検査符号生成方法。
【請求項４】
前記テーブルは、前記第１のデータ及び前記第２のデータのうち互いに異なる部分同士の排他的論理和と、前記第１検査符号とを対応付けて保持することを特徴とする請求項３に記載の検査符号生成方法。
【請求項５】
前記第１のデータを送出する際に、前記第１の工程における演算により前記第１検査符号を生成し、前記第２のデータを送出する際に、前記第２の工程において前記第１検査符号と前記第２検査符号との排他的論理和を計算することを特徴とする請求項２に記載の検査符号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査符号生成装置及び検査符号生成方法、特に、線形符号を利用した誤り検出訂正符号を生成するための検査符号生成方法に関する。
【背景技術】
【０００２】
通信用のフレームやパケットの誤りを検出するための符号として、例えばＣＲＣ（Cyclic  Redundancy  Check；巡回冗長検査）符号がある。例えば、ＩＥＥＥ８０２．１１無線フレームでは末尾にＦＣＳ（Frame  Check  Sequence）と呼ばれる３２ビットのＣＲＣ検査符号を付加することが規定されている。フレームやパケットを送信する場合、先に送信したフレームやパケットの一部を書き換えて再送若しくは転送することがある。例えば、無線通信において、フレームを送信した後、フレームを受信した受信側から肯定的応答として送られるＡｃｋ（Acknowledge）フレームを何らかの理由（送信したフレームが受信側に届かなかった、受信側から送信したＡｃｋフレームが送信側へ届かなかった等）により送信側が受信できなかったとする。この場合、送信側からフレームを再送することとなる。このとき、再送であることを示すリトライフラグを書き換えた再送フレームを送信する。従来の技術では、先に送信したフレームに対して、再送フレームは、リトライフラグ部分の１ビットが異なる以外は全く同じフレーム本体を持つにもかかわらず、ＣＲＣ検査符号については全て計算をやり直すことになる。例えば特許文献１には、ＡＴＭ（Asynchronous  Transfer  Mode）ヘッダを書き換える際に、書き換えた部分のＣＲＣ検査符号をハードウェアにより計算し、計算結果を用いて新たなＣＲＣ検査符号を求める技術が提案されている。
【０００３】
【特許文献１】特開平１１−６８５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述に鑑みてなされたものであり、線形符号からなる検査符号を持つフレーム、パケット等のデータの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなデータについての検査符号を生成することを可能とする検査符号生成装置及び検査符号生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本願発明の一態様によれば、線形符号からなる検査符号を生成する検査符号生成装置であって、第１のデータと、第１のデータの一部が書き換えられた第２のデータとの排他的論理和についての検査符号である第１検査符号を生成する検査符号演算手段と、検査符号演算手段が生成した第１検査符号と、第１のデータに付加された検査符号である第２検査符号との排他的論理和を計算する排他的論理和演算手段と、を有することを特徴とする検査符号生成装置が提供される。
【０００６】
また、本願発明の一態様によれば、線形符号からなる検査符号を生成する検査符号生成方法であって、第１のデータと、第１のデータの一部が書き換えられた第２のデータとの排他的論理和についての検査符号である第１検査符号を生成する第１の工程と、第１の工程において生成された第１検査符号と、第１のデータに付加された検査符号である第２検査符号との排他的論理和を計算する第２の工程と、を含むことを特徴とする検査符号生成方法が提供される。
【発明の効果】
【０００７】
本発明によれば、簡易な演算により、新たなデータについての検査符号を生成することができる。
【発明を実施するための最良の形態】
【０００８】
以下に添付図面を参照して、本発明に係る検査符号生成装置及び検査符号生成方法の最良な実施の形態を詳細に説明する。
【０００９】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る検査符号生成方法によりＣＲＣ検査符号を生成するための無線通信装置のブロック構成を示す。本実施の形態に係る検査符号生成方法は、第１の工程における演算により第１検査符号を予め生成しておき、第２のデータを生成する際に、第２の工程において第１検査符号と第２検査符号との排他的論理和を計算することにより検査符号を生成することを特徴とする。
【００１０】
第１フレーム送出手段１１は、図２に示すフレーム１０１（第１のデータ）を送出する部分であって、ＭＡＣ処理等を行う。フレーム１０１は、ＩＥＥＥ８０２．１１無線フレームであって、末尾に３２ビットのＣＲＣ検査符号１０２が付加されている。第１ＣＲＣ演算手段１３は、フレーム１０１に付加するＣＲＣ検査符号１０２を演算する。
【００１１】
送出データ選択手段１５は、物理層１６へ入力するデータを選択する。送出データ選択手段１５は、第１フレーム送出手段１１からのフレーム１０１本体が出力されている間は第１フレーム送出手段１１からの出力を選択し、物理層１６へ送出する。また、第１フレーム送出手段１１が出力を終えたとき、送出データ選択手段１５は、第１ＣＲＣ演算手段１３からの出力を選択し、物理層１６へ送出する。
【００１２】
なお、フレーム１０１は、第１フレーム送出手段１１から直接送出データ選択手段１５へ送る他、第１フレーム送出手段１１から第１ＣＲＣ演算手段１３を経て、送出データ選択手段１５へ送ることとしても良い。この場合、第１ＣＲＣ演算手段１３は、第１フレーム送出手段１１がフレーム１０１を出力する間はフレーム１０１を素通しさせ、第１フレーム送出手段１１が出力を終えたとき、送出データ選択手段１５へＣＲＣ検査符号１０２を送る。データは物理層１６においてアナログ信号に変換され、電波に乗せてアンテナ１７から不図示の受信側へ送信される。
【００１３】
リトライフラグ１０４は、無線ＬＡＮフレーム内ではＭＡＣヘッダの先頭から１２ビット目に存在するフラグであって、初回に送信するフレーム１０１では「０」とされる。フレーム１０１に対して、再送フレーム１０３は、リトライフラグ１０４が「０」から「１」へ書き換えられる以外は同じフレーム本体を持つ。フレーム１０１を第１のデータとすると、再送フレーム１０３は、第１のデータの一部が書き換えられた第２のデータである。フレーム１０１に付加されたＣＲＣ検査符号１０２、再送フレーム１０３に付加されたＣＲＣ検査符号１０５は、線形符号からなる検査符号である。
【００１４】
フレーム１０１を送信した後、何らかの理由により送信側がＡｃｋフレームを受信できなかった場合、第１フレーム送出手段１１は、初回に送ったフレーム１０１からリトライフラグ１０４を「１」に変更した再送フレーム１０３を送出する。第１フレーム送出手段１１から再送フレーム１０３の本体が出力されている間、送出データ選択手段１５は、第１フレーム送出手段１１からの出力を選択し、物理層１６へ送出する。
【００１５】
第２フレーム送出手段１２は、図３に示すフレーム２０１を送出する。フレーム２０１は、フレーム１０１と同じ長さで、かつ、リトライフラグ１０４に相当する部分２０３のみが「１」、当該部分２０３以外の部分が「０」であるフレーム本体を持つ。第２ＣＲＣ演算手段１４は、フレーム２０１に付加するＣＲＣ検査符号２０２を演算する検査符号演算手段として機能する。ＣＲＣ検査符号２０２は、第１のデータであるフレーム１０１と、第２のデータである再送フレーム１０３との排他的論理和であるフレーム２０１についての検査符号（第１検査符号）である。
【００１６】
演算回路１８は、第２ＣＲＣ演算手段１４が生成したＣＲＣ検査符号２０２と、第１ＣＲＣ演算手段１３が生成したＣＲＣ検査符号１０２（第２検査符号）との排他的論理和を計算する排他的論理和演算手段として機能する。第２ＣＲＣ演算手段１４及び演算回路１８は、再送フレーム１０３に付加するＣＲＣ検査符号１０５を生成する検査符号生成装置として機能する。
【００１７】
図４は、再送フレーム１０３に付加されるＣＲＣ検査符号１０５を生成する手順を説明するものである。図３を用いて説明したＣＲＣ検査符号２０２は、第１の工程における演算により第２ＣＲＣ演算手段１４において予め生成され、保存される。再送フレーム１０３を生成する際に、第２の工程において、演算回路１８は、ＣＲＣ検査符号２０２と、フレーム１０１に付加されたＣＲＣ検査符号１０２との排他的論理和（図中、「ＥＸＯＲ」と表す）を計算する。ＣＲＣ検査符号２０２及びＣＲＣ検査符号１０２の排他的論理和を計算することにより、再送フレーム１０３に付加するＣＲＣ検査符号１０５を生成する。
【００１８】
第１フレーム送出手段１１による再送フレーム１０３本体の送出が完了することにより、送出データ選択手段１５は、演算回路１８による排他的論理和出力を選択する。このようにして、再送フレーム１０３に付加されるＣＲＣ検査符号１０５が物理層１６へ入力される。本発明によると、線形符号からなる検査符号を持つフレームの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなフレームについての検査符号を生成することが可能となる。
【００１９】
なお、本実施の形態において、フレーム２０１のＣＲＣ検査符号２０２のみを保存し、計算に用いる他、ＣＲＣ検査符号２０２を含むフレーム２０１全体を保存することとしても良い。この場合、フレーム２０１全体と、初回に送信するフレーム１０１全体との排他的論理和を計算することにより、再送フレーム１０３を生成することとしても良い。
【００２０】
第２フレーム送出手段１２は、第１フレーム送出手段１１で生成されたフレーム１０１に基づいて比較的容易な計算によりフレーム２０１を生成可能であるため、第１フレーム送出手段１１より簡易な構成にできる。なお、無線通信装置は、互いに独立した第１フレーム送出手段１１及び第２フレーム送出手段１２を有する構成とする他、一つの構成要素を第１フレーム送出手段１１及び第２フレーム送出手段１２として機能させる構成としても良い。無線通信装置は、物理層１６についても線形符号を利用した誤り検出訂正符号を付加することとしても良い。本発明は、物理層１６における誤り検出訂正符号の生成に適用することとしても良い。
【００２１】
本発明は、本実施の形態で説明したＩＥＥＥ８０２．１１無線フレームについて適用する場合に限られない。本発明は、線形符号からなる検査符号を持つフレーム、パケット等のデータについて広く適用可能である。また、本発明の適用は、フレーム、パケット等のデータを再送若しくは転送する場合に限られず、いずれの場合としても良い。本発明は、ＣＲＣ符号の生成に限られず、ＣＲＣ符号以外の線形符号、例えばリードソロモン（Read  Solomon；ＲＳ）符号等の生成に用いることとしても良い。
【００２２】
本発明に係る検査符号生成方法は、ハードウェア構成による処理を利用するもの、ソフトウェア構成による処理を利用するもののいずれとしても良い。ハードウェア構成による処理を利用する場合、送出データ選択手段１５として、例えばマルチプレクサを用いることとしても良い。ソフトウェアによる処理の場合は計算量の増大が問題になる場合が多いため、本発明が有用である。
【００２３】
（第２の実施の形態）
図５は、本発明の第２の実施の形態に係る検査符号生成方法により生成された線形符号について説明するものであって、ＩＰ（Internet  Protocol）ヘッダ４０１の構成を示す。ＩＰヘッダ４０１のうち、Time  to  Live（ＴＴＬ）フィールド４０２は、パケットの生存時間として、パケットが通過できるルータの数を示す。ルータが別ノードにパケットを転送するごとにＴＴＬフィールド４０２の値は１ずつ減じられる。ＴＴＬフィールド４０２の値が「１」であるパケットはルータによる転送がなされず、ルータにて廃棄される。ヘッダチェックサム（Header  Checksum）４０３は、パケット全体のチェックサムである。
【００２４】
この他、ＩＰヘッダ４０１は、バージョン（Version）、ヘッド長さ（ＩＨＬ；Internet  Header  Length）、サービスタイプ（Type  of  Service）、全長（Total  Length）、識別子（Identification）、フラグ（Flags）、フラグメントオフセット（Fragment  Offset）、プロトコル（Protocol）、送信元アドレス（Source  Address）、宛先アドレス（Destination  Address）の各フィールドを有する。ここでは、ＩＰヘッダ４０１のうちＴＴＬフィールド４０２、ヘッダチェックサム４０３以外の部分についての詳細な説明を省略する。
【００２５】
一般に用いられているＩＰヘッダ４０１のヘッダチェックサム４０３は線形符号ではないが、ＩＥＴＦ（Internet  Engineering  Task  Force）は、ＲＦＣ７９１において、チェックサムの代わりとして線形符号であるＣＲＣ符号を利用することに言及している（例えば、http://tools.ietf.org/html/rfc791参照）。本実施の形態では、チェックサムに代えてＣＲＣ符号を用いるものとして説明する。
【００２６】
図６は、本実施の形態によりＣＲＣ検査符号５２３を生成する手順を説明するものである。受信パケット５０１を受信したルータは、ＴＴＬフィールド５０２の値を１減じて次のノードへ転送する。受信パケット５０１に付加されたＣＲＣ検査符号５０３、転送パケット５２１に付加されたＣＲＣ検査符号５２３は、線形符号からなる検査符号である。受信パケット５０１のうちＩＰヘッダ以外の部分５０４、転送パケット５２１のうちＩＰヘッダ以外の部分５２４は、例えば、ＴＣＰフレーム等である。
【００２７】
転送パケット５２１のＴＴＬフィールド５２２は、受信パケット５０１のＴＴＬフィールド５０２の値を１減じた値へ更新されている。転送パケット５２１に付加されるＣＲＣ検査符号５２３は、ＴＴＬフィールド５２２の値の更新に伴い新たに生成する必要がある。本実施の形態では、転送パケット５２１のＣＲＣ検査符号５２３を生成するに先立ち、予め図６に示すパケット５１１についてのＣＲＣ検査符号５１３を生成する。パケット５１１は、ＩＰヘッダに相当する部分のみのパケットである。パケット５１１は、ＴＴＬ差分５１２と、ＴＴＬ差分５１２以外が全て「０」であるＩＰヘッダについての検査符号であるＣＲＣ検査符号５１３とからなる。ＴＴＬ差分５１２は、受信パケット５０１のＩＰヘッダ（第１のデータ）及び転送パケット５２１のＩＰヘッダ（第２のデータ）のうち互いに異なる部分であるＴＴＬフィールド５０２の値とＴＴＬフィールド５２２の値との排他的論理和である。ＣＲＣ検査符号５１３は、受信パケット５０１のＩＰヘッダと、転送パケット５２１のＩＰヘッダとの排他的論理和であるパケット５１１についての検査符号（第１検査符号）である。
【００２８】
図７は、受信パケット５０１のＴＴＬフィールド５０２の値と、ＣＲＣ検査符号５１３とを対応付けるテーブルの構成を説明するものである。ＴＴＬフィールド５０２の値は、例えば８ビットであるとする。上記第１の実施の形態の場合、フレーム１０１（図４参照）に対して、再送フレーム１０３に付加されるＣＲＣ検査符号１０５は一意に定まる。これに対して、本実施の形態では、ＴＴＬフィールド５０２の値に応じてＴＴＬ差分５１２が複数の値を採るため、ＴＴＬ差分５１２を含むパケット５１１についてのＣＲＣ検査符号５１３が一意に定まらないこととなる。
【００２９】
テーブルを作成する際、ＴＴＬフィールド５０２が取り得る値のうち「１」及び「０」を除く各値について、ＴＴＬフィールド５０２の値と、その値から１減じた値との排他的論理和であるＴＴＬ差分５１２を求める。当該ＴＴＬ差分５１２を用いて、ＴＴＬ差分５１２以外の値が「０」であるＩＰヘッダについてＣＲＣ検査符号５１３を計算する。なお、ＴＴＬフィールド５０２の値が「１」、「０」である場合については転送パケット５２１を生成することが無いため、テーブルから除外しても良い。本実施の形態では、受信パケット５０１のうちＴＴＬフィールド５０２の値と、第１の工程において生成されたＣＲＣ検査符号５１３とを対応付けるテーブルを保持し、テーブルを参照することにより得たＣＲＣ検査符号５１３を用いて、転送パケット５２１のＣＲＣ検査符号５２３を生成する。
【００３０】
テーブルは、ＴＴＬフィールド５０２が取り得る８ビットのうち０ｘ０１、０ｘ００を除く２５４個の値０ｘＦＦ〜０ｘ０２と、ＣＲＣ検査符号５１３とを対応付けて保持する。ＴＴＬフィールド５０２が取り得る値のうち「１」及び「０」を除く各値についてＣＲＣ検査符号５１３を計算しておくことで、簡単にテーブルを作成することが可能である。テーブルは、通信装置が予め、例えば通信装置の製造時点から保持することとしても良く、通信装置の電源投入時の初期設定中において演算を行うことにより、通信装置の電源を投入するごとに作成することとしても良い。
【００３１】
図８は、図７で説明したテーブルを用いて、受信パケット５０１から転送パケット５２１のＣＲＣ検査符号５２３を生成する手順を説明するものである。本実施の形態に係る検査符号生成方法は、ソフトウェアによる処理を利用することによりＣＲＣ検査符号５２３を生成する。まず、受信パケット５０１のＴＴＬフィールド５０２を参照し、参照したＴＴＬフィールド５０２の値から１減じた値を求めて転送パケット５２１のＴＴＬフィールド５２２に書き込む。このとき、ＴＴＬフィールド５０２の値が「１」であった場合、以下に説明する処理は行われず、受信パケット５０１はルータにて廃棄される。
【００３２】
また、図７で説明したテーブルを参照することにより、ＴＴＬフィールド５０２の値に対応するＣＲＣ検査符号５１３を求め、ルータに保存する。次に、保存したＣＲＣ検査符号５１３（第１検査符号）と、受信パケット５０１のＣＲＣ検査符号５０３（第２検査符号）との排他的論理和を計算することにより、転送パケット５２１のＣＲＣ検査符号５２３を生成する。転送パケット５２１のうちＴＴＬフィールド５２２及びＣＲＣ検査符号５２３以外の部分には、受信パケット５０１と同様の値が書き込まれる。このようにして、転送パケット５２１が生成される。
【００３３】
なお、転送パケット５２１は、受信パケット５０１に対して別のメモリ領域に生成することとする他、受信パケット５０１のＴＴＬフィールド５０２、ＣＲＣ検査符号５１３をメモリ領域上で直接書き換えることにより生成することとしても良い。この場合、受信パケット５０１のうちＴＴＬフィールド５０２及びＣＲＣ検査符号５０３以外の部分、即ち転送の際に書き換えが不要な部分についてのメモリ上でのコピーを省略できる。
【００３４】
このように、本実施の形態では、第２のデータを含む転送パケット５２１を生成する際に、第２の工程においてテーブルを参照する。これにより、線形符号からなる検査符号を持つパケットの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなパケットについての検査符号を生成することが可能となる。
【００３５】
なお、ＴＴＬフィールド５０２の値を１減じた値を求める処理は、転送パケット５２１のＣＲＣ検査符号５２３を生成する処理より前である場合に限られず、これらの処理はいずれの順序としても良い。また、ＣＲＣ検査符号５２３を生成する際に参照するテーブルは、受信パケット５０１のＴＴＬフィールド５０２の値を含む構成である場合に限られない。テーブルは、例えば、受信パケット５０１のＴＴＬフィールド５０２の値を１減じて得たＴＴＬフィールド５２２の値を含む構成であっても良い。本実施の形態は、チェックサムに代えてＣＲＣ検査符号を用いるＩＰパケットについて適用する場合に限られず、線形符号からなる検査符号を持つフレーム、パケット等のデータについて広く適用可能である。
【００３６】
（第３の実施の形態）
図９は、本発明の第３の実施の形態に係る検査符号生成方法において参照するテーブルの構成を説明するものである。本実施の形態は、パケット５１１のＴＴＬ差分５１２（図６参照）の値と、ＣＲＣ検査符号５１３とを対応付けて保持するテーブルを用いることを特徴とする。ＴＴＬ差分５１２は、第１のデータ及び第２のデータのうち互いに異なる部分であるＴＴＬフィールド５０２の値とＴＴＬフィールド５２２の値との排他的論理和である。
【００３７】
ＴＴＬフィールド５０２の値が８ビットである場合、８ビットの値と、その値から１減じた値との排他的論理和であるＴＴＬ差分５１２は、図９に示すように０ｘ７Ｆ〜０ｘ０１の７個の値のいずれかとなる。本実施の形態で使用するテーブルは７個のエントリのみで構成される。このため、本実施の形態は、テーブルの規模を小さく圧縮できる利点がある。本実施の形態も、上記第２の実施の形態と同様に、テーブルは、通信装置が予め保持することとしても良く、通信装置の電源投入時の初期設定中において演算を行うことにより、通信装置の電源を投入するごとに作成することとしても良い。
【００３８】
図１０は、図９で説明したテーブルを用いて、受信パケット５０１から転送パケット５２１のＣＲＣ検査符号５２３を生成する手順を説明するものである。まず、受信パケット５０１のＴＴＬフィールド５０２を参照し、参照した値から１減じた値を求めて転送パケット５２１のＴＴＬフィールド５２２に書き込む。このとき、ＴＴＬフィールド５０２の値が「１」であった場合、以下に説明する処理は行われず、受信パケット５０１はルータにて廃棄される。
【００３９】
次に、受信パケット５０１のＴＴＬフィールド５０２の値と、その値から１減じた値との排他的論理和を計算することにより、ＴＴＬ差分５１２を生成する。ＴＴＬ差分５１２を生成した後、図９で説明したテーブルを参照することにより、ＴＴＬ差分５１２の値に対応するＣＲＣ検査符号５１３を求める。次に、テーブルを参照することにより求めたＣＲＣ検査符号５１３（第１検査符号）と、受信パケット５０１のＣＲＣ検査符号５０３（第２検査符号）との排他的論理和を計算することにより、転送パケット５２１のＣＲＣ検査符号５２３を生成する。
【００４０】
転送パケット５２１のうちＴＴＬフィールド５２２及びＣＲＣ検査符号５２３以外の部分には、受信パケット５０１と同様の値が書き込まれる。このようにして、転送パケット５２１が生成される。本実施の形態においても、上記第２の実施の形態の場合と同様に、転送パケット５２１は、受信パケット５０１に対して別のメモリ領域に生成することとする他、受信パケット５０１のＴＴＬフィールド５０２、ＣＲＣ検査符号５１３をメモリ領域上で直接書き換えることにより生成することとしても良い。
【００４１】
なお、ＴＴＬ差分５１２は、随時計算により生成する他、受信パケット５０１のＴＴＬフィールド５０２の値、若しくは転送パケット５２１のＴＴＬフィールド５２２の値と、ＴＴＬ差分５１２とを対応付けて保持するテーブルを別途用意しておき、当該テーブルを参照することで求めることとしても良い。
【００４２】
（第４の実施の形態）
図１１は、本発明の第４の実施の形態に係る検査符号生成方法によりＣＲＣ検査符号を生成するための無線通信装置のブロック構成を示す。本実施の形態は、上記の第１の実施の形態で説明したＣＲＣ検査符号１０５（図２参照）を生成するものとして説明する。上記の第１の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。上記の第１の実施の形態では、フレーム２０１のＣＲＣ検査符号２０２（図３参照）を予め生成している。これに対して、本実施の形態では、第１のデータであるフレーム１０１を送出する際に、フレーム１０１のＣＲＣ検査符号１０２の生成に平行して、第１の工程における演算によりフレーム２０１のＣＲＣ検査符号２０２（第１検査符号）を生成する。
【００４３】
第２フレーム送出手段１２によるフレーム２０１の送出、第２ＣＲＣ演算手段１４によるＣＲＣ検査符号２０２の演算は、第１フレーム送出手段１１によるフレーム１０１の送出、第１ＣＲＣ演算手段１３によるＣＲＣ検査符号１０２の演算と平行して行われる。第２ＣＲＣ演算手段１４により演算されたＣＲＣ検査符号２０２は、初回のフレーム１０１を送信する際は利用されず、第２ＣＲＣ演算手段１４に保存される。受信側からのＡｃｋフレームを送信側が受信した場合、第２ＣＲＣ演算手段１４に保存されたＣＲＣ検査符号２０２は不要であるため、消去される。
【００４４】
フレーム１０１を送信した後、何らかの理由により送信側がＡｃｋフレームを受信できなかった場合、第１フレーム送出手段１１は、初回に送ったフレーム１０１からリトライフラグ１０４を「１」に変更した再送フレーム１０３を送出する。第１フレーム送出手段１１から再送フレーム１０３の本体が出力されている間、送出データ選択手段１５は、第１フレーム送出手段１１からの出力を選択し、物理層１６へ送出する。送出データ選択手段１５により第１フレーム送出手段１１からの出力が選択されている間、第１ＣＲＣ演算手段１３、第２ＣＲＣ演算手段１４による演算は停止される。
【００４５】
本実施の形態では、第２のデータである再送フレーム１０３を送出する際に、第２の工程において、演算回路１８は、ＣＲＣ検査符号２０２（第１検査符号）とＣＲＣ検査符号１０２（第２検査符号）との排他的論理和を計算する。第１フレーム送出手段１１による再送フレーム１０３本体の送出が完了することにより、送出データ選択手段１５は、演算回路１８による排他的論理和出力を選択する。このようにして、再送フレーム１０３に付加されるＣＲＣ検査符号１０５が物理層１６へ入力される。
【００４６】
このように、第１フレーム送出手段１１によるフレーム１０１の送出、第１ＣＲＣ演算手段１３によるＣＲＣ検査符号１０２の生成に平行して、ＣＲＣ検査符号２０２を生成する。これにより、フレーム１０１の長さが一定でないような場合であっても、その都度、各フレーム１０１に対応するＣＲＣ検査符号２０２を生成することが可能となる。また、ＣＲＣ検査符号１０２の生成に平行して、ＣＲＣ検査符号２０２を生成することで、事前にＣＲＣ検査符号２０２を計算すること無く、再送フレーム１０３の送信時におけるＣＲＣ符号の演算を省略することが可能となる。
【００４７】
監視手段６０１は、再送回数をカウントし、再送回数から電波状況を監視する。例えば、一定期間、或いは一定の送信回数における再送回数の閾値を決定しておき、過去の統計から再送回数が閾値以下であるか否かにより、電波状況が良好であるか否かを判断する。再送回数が閾値以下である場合、監視手段６０１は、第２フレーム送出手段１２及び第２ＣＲＣ演算手段１４の稼動を停止させる。再送フレーム１０３を送信する場合、再送時における第１ＣＲＣ演算手段１３による演算により、ＣＲＣ検査符号２０２を生成する。また、送出データ選択手段１５は、電波状況が良好である旨の監視手段６０１の判断により、第１フレーム送出手段１１からの出力と第１ＣＲＣ演算手段１３からの出力とのいずれか一方を選択する。
【００４８】
また、再送回数が所定の閾値より大きく電波状況が悪いと判断した場合、監視手段６０１は、第２フレーム送出手段１２及び第２ＣＲＣ演算手段１４を稼動させる。送出データ選択手段１５は、電波状況が悪い旨の監視手段６０１の判断により、第１フレーム送出手段１１からの出力と、第１ＣＲＣ演算手段１３からの出力と、演算回路１８による排他的論理和出力と、のうちいずれか一つを選択する。これにより、再送の頻度が低い状況では第２フレーム送出手段１２及び第２ＣＲＣ演算手段１４の演算を停止させ、再送フレーム１０３の送信がなされないことにより無駄となる演算やメモリ容量を低減させることが可能となる。監視手段６０１による通信状況の判断は、過去の統計から決定された再送回数の閾値を用いて判断する手法に限られず、いずれの判断手法を利用しても良い。
【図面の簡単な説明】
【００４９】
【図１】第１の実施の形態に係る検査符号生成方法によりＣＲＣ検査符号を生成するための無線通信装置のブロック構成を示す図。
【図２】フレーム及びＣＲＣ検査符号について説明する図。
【図３】第１検査符号であるＣＲＣ検査符号について説明する図。
【図４】再送フレームに付加されるＣＲＣ検査符号を生成する手順を説明する図。
【図５】第２の実施の形態に係る検査符号生成方法により生成された線形符号について説明する図。
【図６】第２の実施の形態によりＣＲＣ検査符号を生成する手順を説明する図。
【図７】受信パケットのＴＴＬフィールドの値と、ＣＲＣ検査符号とを対応付けるテーブルの構成を説明する図。
【図８】テーブルを用いて受信パケットから転送パケットのＣＲＣ検査符号を生成する手順を説明する図。
【図９】第３の実施の形態に係る検査符号生成方法において参照するテーブルの構成を説明する図。
【図１０】テーブルを用いて受信パケットから転送パケットのＣＲＣ検査符号を生成する手順を説明する図。
【図１１】第４の実施の形態に係る検査符号生成方法によりＣＲＣ検査符号を生成するための無線通信装置のブロック構成を示す図。
【符号の説明】
【００５０】
１０１、２０１  フレーム、１０２、１０５、２０２  ＣＲＣ検査符号、１０３  再送フレーム、５０１  受信パケット、５０３、５１３、５２３  ＣＲＣ検査符号、５２１  転送パケット。
【図１】
2010010766.tif 000003
【図２】
2010010766.tif 000004
【図３】
2010010766.tif 000005
【図４】
2010010766.tif 000006
【図５】
2010010766.tif 000007
【図６】
2010010766.tif 000008
【図７】
2010010766.tif 000009
【図８】
2010010766.tif 000010
【図９】
2010010766.tif 000011
【図１０】
2010010766.tif 000012
【図１１】
2010010766.tif 000013