(57)【要約】【課題】ＣＲＣ誤判定を検出する。【解決手段】記憶部１２は直前の送信データのＣＲＣコードを順次に記憶する。コード付加部１３は当該送信データのＣＲＣコードを記憶されたＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信する。記憶部１５は直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを記憶する。誤り検査部１４は、記憶されているデータで当該受信パケットについてＣＲＣ誤り検査を行う。ＣＲＣ誤りが検出されると、サーチ部１６は、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を繰り返し、ＯＫになると直前の受信パケットについてのＣＲＣ誤り検査は誤判定とする。【選択図】図１
2010124260.tif 000002
【特許請求の範囲】
【請求項１】
送信側では、送信データのＣＲＣコードを直前の送信データのＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信し、
受信側では、直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを本来のＣＲＣ位置へ移してＣＲＣ誤り検査を行い、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を行い、そのうちＣＲＣ誤りを検出しない場合には直前の受信パケットについて、ロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査の結果は誤判定とし、順次にＣＲＣ誤り検査を行ってもＣＲＣ誤りを検出する場合には当該受信パケットについてＣＲＣ誤りとすることを特徴とするＣＲＣ誤判定検出方法。
【請求項２】
送信側は、
送信データに対するＣＲＣコードを生成する手順と、
少なくとも直前の送信データに対して生成したＣＲＣコードを順次に記憶する手順と、
当該送信データのＣＲＣコードを前記記憶した直前の送信データに対して生成したＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信する手順を有し、
受信側は、
少なくとも直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを記憶する手順と、
前記記憶したデータを本来のＣＲＣ位置へ移して当該受信パケットについてＣＲＣ誤り検査を行う手順と、
前記ＣＲＣ誤り検査の結果、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次に前記ＣＲＣ誤り検査を繰り返す手順と、
前記ＣＲＣ誤り検査を繰り返すうちにＣＲＣ誤りを検出しない場合には、直前の受信パケットについて、ロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査は誤判定とする手順と、
前記ＣＲＣ誤り検査を繰り返してもＣＲＣ誤りを検出する場合には、当該受信パケットについてＣＲＣ誤りとする手順を有することを特徴とするＣＲＣ誤判定検出方法。
【請求項３】
前記パケット内位置はＣＲＣコードの下位ｎビットで定められることを特徴とする請求項１〜２に記載のＣＲＣ誤判定検出方法。
【請求項４】
前記本来のＣＲＣ位置はパケット内の末尾とすることを特徴とする請求項１〜３に記載のＣＲＣ誤判定検出方法。
【請求項５】
送信側は、
送信データに対するＣＲＣコードを生成するＣＲＣコード生成部と、
少なくとも直前の送信データに対して生成したＣＲＣコードを順次に記憶するＣＲＣコード記憶部と、
当該送信データのＣＲＣコードを前記記憶した直前の送信データに対して生成したＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信するＣＲＣコード付加部を有し、
受信側は、
少なくとも直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを記憶するＣＲＣコード記憶部と、
前記記憶したデータを本来のＣＲＣ位置へ移して当該受信パケットについてＣＲＣ誤り検査を行うＣＲＣコード誤り検査部と、
前記ＣＲＣ誤り検査の結果、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次に前記ＣＲＣ誤り検査を繰り返し、そのうちにＣＲＣ誤りを検出しない場合には直前の受信パケットについて、パケットロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査は誤判定とし、ＣＲＣ誤りを検出する場合には当該受信パケットについてＣＲＣ誤りとするＣＲＣコード位置サーチ部を有することを特徴とするＣＲＣ誤判定検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＲＣ（Cyclic Redundancy Check）誤判定検出方法およびＣＲＣ誤判定検出装置に関する。
【背景技術】
【０００２】
従来、伝送データの誤り検査は、図９に示すように、送信側では、ＣＲＣコード生成部９１にて送信データを所定の生成多項式で割り算を行い、ＣＲＣコード付加部９２にてその剰余（ＣＲＣコード）を送信データに付加して送信し、一方、受信側では、ＣＲＣ誤り検査部９３にて送信側と同じ生成多項式を用いて割り算を行い、余りがなければデータは正しい、余りがあればデータの伝送誤りがあったと判定する。なお、ＣＲＣコードは、図１０に示すように、一般的に全てのパケットデータの最後尾に付加される（文献公知発明に係るものではない）。
【０００３】
また、１つのフレームに前回のシリアルデータ列と現在（前々回と前回でも可）のシリアルデータ列を多重すると共に、１フレーム毎にＣＲＣ符号を付加する方式が提案されている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開平１０−８４３３４（第２頁−第３頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した従来の誤り検査方式では、データ送信が冗長であるため伝送効率が極めて低いのは当然として、あるフレームのＣＲＣチェックがＮＧの場合、冗長で送信した別のフレームを適用することにより伝送データ誤りを救済できるが、ＣＲＣ誤判定となった場合は、誤ったシリアルデータを適用する可能性がある。即ち、伝送路上で、データとＣＲＣコードの両方に誤りが生じ、且つ受信側における生成多項式での割り算結果が余り０となるような場合、誤り検出ができず、データおよびＣＲＣコードが正しく伝送されたと誤判定してしまう。
【０００６】
更に、誤判定したことを検出する手段はないため、サイレントアラームとなってしまう。データとＣＲＣコードの両方に誤りが生じた際に誤判定となる確率は、ＣＲＣコードのビット長に依存する。例えば、ＣＲＣコードが８ビットの場合、その確率は２の（−８）べき乗＝約４／１０００である。この確率は、一見、低いようであるが、膨大なバーストデータの場合は、その誤りが実感されるものである。
【０００７】
そこで、本発明は上記の問題点を解消し、伝送路上で誤ったデータおよびＣＲＣに対する生成多項式での割り算結果が余り０となった場合のＣＲＣ誤判定を検出できるＣＲＣ誤判定検出方法およびＣＲＣ誤判定検出装置を提供し、伝送路における誤り検出精度の向上を目的とする。
【課題を解決するための手段】
【０００８】
請求項１に記載のＣＲＣ誤判定検出方法は、送信側では、送信データのＣＲＣコードを直前の送信データのＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信し、受信側では、直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを本来のＣＲＣ位置へ移してＣＲＣ誤り検査を行い、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を行い、そのうちＣＲＣエラーを検出しない場合には直前の受信パケットについて、ロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査の結果は誤判定とし、順次にＣＲＣ誤り検査を行ってもＣＲＣ誤りを検出する場合には当該受信パケットについてＣＲＣ誤りとすることを特徴とする。
【０００９】
請求項２に記載のＣＲＣ誤判定検出方法は、送信側は、送信データに対するＣＲＣコードを生成する手順と、少なくとも直前の送信データに対して生成したＣＲＣコードを順次に記憶する手順と、当該送信データのＣＲＣコードを記憶した直前の送信データに対して生成したＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信する手順を有する。
【００１０】
一方、受信側は、少なくとも直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを記憶する手順と、記憶したデータを本来のＣＲＣ位置へ移して当該受信パケットについてＣＲＣ誤り検査を行う手順と、ＣＲＣ誤り検査の結果、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を繰り返す手順と、ＣＲＣ誤り検査を繰り返すうちにＣＲＣ誤りを検出しない場合には、直前の受信パケットについて、ロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査は誤判定とする手順と、ＣＲＣ誤り検査を繰り返してもＣＲＣ誤りを検出する場合には、当該受信パケットについてＣＲＣ誤りとする手順を有することを特徴とする。
【００１１】
請求項３に記載のＣＲＣ誤判定検出方法は、請求項１〜２に記載のＣＲＣ誤判定検出方法において、パケット内位置はＣＲＣコードの下位ｎビットで定められることを特徴とする。
【００１２】
請求項４に記載のＣＲＣ誤判定検出方法は、請求項１〜３に記載のＣＲＣ誤判定検出方法において、本来のＣＲＣ位置はパケット内の末尾とすることを特徴とする。
【００１３】
請求項５に記載のＣＲＣ誤判定検出装置は、送信側は、送信データに対するＣＲＣコードを生成するＣＲＣコード生成部と、少なくとも直前の送信データに対して生成したＣＲＣコードを順次に記憶するＣＲＣコード記憶部と、当該送信データのＣＲＣコードを記憶した直前の送信データに対して生成したＣＲＣコードの値で定まるパケット内位置に付加した送信パケットを送信するＣＲＣコード付加部を有する。
【００１４】
一方、受信側は、少なくとも直前の受信パケットのＣＲＣコードの値で定まるパケット内位置におけるデータを記憶するＣＲＣコード記憶部と、記憶したデータを本来のＣＲＣ位置へ移して当該受信パケットについてＣＲＣ誤り検査を行うＣＲＣコード誤り検査部と、ＣＲＣ誤り検査の結果、ＣＲＣ誤りを検出すると、当該受信パケットにおける予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を繰り返し、そのうちにＣＲＣ誤りを検出しない場合には直前の受信パケットについて、パケットロスが無く且つＣＲＣエラーが無ければＣＲＣ誤り検査は誤判定とし、ＣＲＣ誤りを検出する場合には当該受信パケットについてＣＲＣ誤りとするＣＲＣコード位置サーチ部を有することを特徴とする。
【００１５】
［作用］
本発明の誤り検出方式では、送信側におけるＣＲＣコード生成部は、送信データを所定の生成多項式で割り算を行い、その剰余（ＣＲＣコード）をＣＲＣコード記憶部およびＣＲＣコード付加部へ送信する。ＣＲＣコード記憶部は、ＣＲＣコード生成部より受信したＣＲＣコードを保持し、前パケットのＣＲＣコードをＣＲＣコード付加部へ送信する。ＣＲＣコード付加部は、ＣＲＣコード記憶部より受信した前パケットのＣＲＣコードに対応したパケット内の指定位置に当該データのＣＲＣコードを付加しパケット送信する。
【００１６】
受信側において、ＣＲＣ誤り検査部は、ＣＲＣコード記憶部から与えられる前パケットのＣＲＣコードにより、当該パケットにおけるＣＲＣコードの付加位置を認識し、誤り検出を行う。ＣＲＣコード記憶部は、受信パケットもしくはＣＲＣコード位置サーチ部より受信したＣＲＣコードを保持し、前パケットのＣＲＣコードをＣＲＣ誤り検査部へ送信する。ＣＲＣコード位置サーチ部は、ＣＲＣ誤り検査部より与えられるＣＲＣ判定結果がＮＧの場合、当該パケットのＣＲＣコード付加位置をサーチし、ＮＧ要因が「前パケットのＣＲＣ誤判定」、もしくは「当該パケットのＣＲＣエラー」いずれであるかの判定を行う。
【００１７】
これにより、伝送路上で、データとＣＲＣコードの両方に誤りが生じ、且つ受信側における生成多項式での割り算結果が余り０となった場合のＣＲＣ誤判定を検出することができる。以下、パケットＡ，パケットＢ、パケットＣがこの順序に送受信されるとして具体的に説明する。
【００１８】
当該送信パケットＢについては、ＣＲＣコードの送信パケットＢ内での付加位置を直前の送信パケットＡのＣＲＣコードにより指定する。この送信パケットＢにつき、通信の途上で送信データに誤りが発生すると共に、ＣＲＣコードにも誤りが発生し、しかも、これらの誤りが受信パケットＢにおけるＣＲＣ誤り検査で検出されず、ＣＲＣ誤判定になったとする。
【００１９】
続く送信パケットＣは、送信パケットＢのＣＲＣコードで指定される送信パケットＣ内の指定位置に送信パケットＣのＣＲＣコードが付加される。一方、受信パケットＣでは、受信パケットＢにおける誤ったＣＲＣコードによる受信パケットＣ内での指定位置に、送信パケットＣのＣＲＣコードが付加されているものと解釈する。これは、送信側と受信側とで別個に送信履歴と受信履歴の管理をしているために起こる齟齬である。受信側は、誤解釈したＣＲＣコードを使用してＣＲＣ誤り検査を行なうため、当然にＣＲＣ誤りが検出される。
【００２０】
しかし、受信パケットＣが送信パケットＣを正しく受信したものであるならば、本来の正しい位置には送信パケットＣのＣＲＣコードが付加されている筈である。そこで、受信側では、予め定められた複数のパケット内位置におけるデータをＣＲＣコードとして順次にＣＲＣ誤り検査を試みる。その結果、ＣＲＣ誤りが検出されない場合があれば、受信パケットＢにおけるＣＲＣ誤り検査の結果はＣＲＣ誤判定だったとするものである。但し、受信パケットＢにパケットロスがある場合は除かれる。
【００２１】
なお、上記のように順次にＣＲＣ誤り検査を試みてみても受信パケットＣのＣＲＣ誤りが解消しない場合には、受信パケットＣのＣＲＣ誤りとする。
【発明の効果】
【００２２】
本発明によれば、ＣＲＣコードを用いた伝送データの誤り検出において、送信側にて前パケットのＣＲＣコードの値に応じて、次パケットのＣＲＣ付加位置を決定し、受信側にて前パケットのＣＲＣコードの値に応じてＣＲＣコードの付加位置を認識してＣＲＣ誤り検出処理を行うことにより、伝送路上で、データとＣＲＣコードの両方に誤りが生じ、受信側における生成多項式での割り算結果が余り０となった場合のＣＲＣ誤判定を検出できるという効果がある。
【発明を実施するための最良の形態】
【００２３】
［構成の説明］
次に、本発明の実施例について図面を参照して詳細に説明する。図１は本発明の一実施例によるＣＲＣ誤判定検出装置の主要部の構成を示すブロック図である。図１において、送信側は、ＣＲＣコード生成部１１、ＣＲＣコード記憶部１２およびＣＲＣコード付加部１３とから構成される。受信側は、ＣＲＣ誤り検査部１４、ＣＲＣコード記憶部１５およびＣＲＣコード位置サーチ部１６から構成される。
【００２４】
送信側のＣＲＣコード生成部１１は、送信データを所定の生成多項式で割り算を行い、その剰余（ＣＲＣコード）を生成する。ＣＲＣコード記憶部１２は、ＣＲＣコード生成部１１より受信したＣＲＣコードの所定の一部、例えば下位３ビットを保持しておき、前パケットのＣＲＣコードをＣＲＣコード付加部１３へ送信する。ＣＲＣコード付加部１３は、ＣＲＣコード記憶部１２より受信した前パケットのＣＲＣコードに対応したパケット内の指定位置に当該送信データのＣＲＣコードを付加し、パケット送信する。
【００２５】
受信側のＣＲＣコード記憶部１５は、受信パケットもしくはＣＲＣコード位置サーチ部１６より受信したＣＲＣコードを保持しておき、前パケットのＣＲＣコードをＣＲＣ誤り検査部１４へ送信する。ＣＲＣ誤り検査部１４は、ＣＲＣコード記憶部１５から与えられる前パケットのＣＲＣコードにより、当該パケットにおけるＣＲＣコードの付加位置を認識し、ＣＲＣコードを元の位置、例えば下位３ビットであればパケットデータの最後尾に並び替える。そして、送信側と同じ生成多項式を用いて割り算を行い、余りがなければデータは正しい、余りがあればデータの伝送誤りがあったと判定する。
【００２６】
ＣＲＣコード位置サーチ部１６は、ＣＲＣ誤り検査部１４より与えられるＣＲＣ判定結果がＮＧの場合、当該パケットのＣＲＣコード付加位置をサーチし、ＮＧ要因が「前パケットのＣＲＣ誤判定」、もしくは「当該パケットのＣＲＣエラー」のいずれであるかの判定を行う。ＣＲＣコード付加位置のサーチは、ＣＲＣコードの付加位置を順次にシフト巡回し、ＣＲＣ誤り検出処理を行うことにより実現する。ＣＲＣ誤り検出処理はＣＲＣ誤り検査部１４に委ねる。
【００２７】
図２は本発明の一実施例によるＣＲＣ誤判定検出方式のＣＲＣコード付加位置を示すパケット構成図である。図２において、ａはＣＲＣコードの下位ｎビットの値を示し、本例ではｎ＝３ビットとし、ａは０〜７までの値をとる。ｂはａに基づき決定されるＣＲＣコードの付加位置を示し、本例においてｂは０〜７までの値をとる。
【００２８】
先ず、パケット＃１におけるＣＲＣコード（ａ＝３）が、ｂ＝０の位置に付加されていたとする。その場合、次に送信するパケット＃２については、前パケット（パケット＃１）のＣＲＣコードの下位３ビットの値ａが３であることから、パケット＃２のＣＲＣコード（ａ＝７）をｂ＝３の位置に付加する。同様に、パケット＃３、＃４においても、当該パケットのＣＲＣコードを、前パケットのＣＲＣ下位３ビットの値ａに対応したｂの位置に付加する。
【００２９】
なお、ｎは送信側と受信側を同じ値とすれば、装置システムにおいて任意に設定できるパラメータである。ｎは大きいほどＣＲＣ誤判定の検出精度は高くなるが、装置システムにおけるパケット長の範囲（特に最小値）や、誤り検出に要する遅延の許容時間を考慮に入れて決定すべきパラメータである。また、ｂは、装置システムにおいて送信側と受信側とで予め取り決めておくべき任意のパラメータである。本例の図２ではパケットの末尾をｂ＝０〜７としているが、パケット内であれば末尾以外でも差し障りなく、または分散していてもよい。ただし、生成多項式での割り算はパケットの先頭ビットから順次行われるのが一般的であることから、ＣＲＣコードの付加位置は図２のようにパケット末尾にまとめて配置した方が、ＣＲＣコード付加位置のサーチ時間は短く済む。
【００３０】
［動作の説明］
次に、図１および図２に示す本実施例の動作について、図３と図４のフローチャートを参照しながら説明する。図３は送信側のフローチャートを、図４は受信側のフローチャートを示す。
【００３１】
図３の送信側フローチャートにおいて、送信側のＣＲＣコード生成部１１は、先ず送信データの有無を判定する（図３のステップＳ１）。送信データなしの場合は現状を保持し、送信データありの場合は送信データを所定の生成多項式で割り算を行い、その剰余（ＣＲＣコード）を生成する（ステップＳ２）。生成したＣＲＣコードはＣＲＣコード付加部１３に出力すると共に、その所定の一部（以下、下位３ビットとして説明する）をＣＲＣコード記憶部１２に記憶する（ステップＳ２）。
【００３２】
次に、ＣＲＣコード付加部１３は、パケット送信履歴の有無を判定し（ステップＳ３）、装置立ち上げ直後等、パケット送信履歴がない場合は、前パケットのＣＲＣコードの下位３ビット値ａが未確定のため、ａ＝０をセットし（ステップＳ４）、図２のパケット＃１のように、当該パケットのｂ＝０の位置にＣＲＣコードを付加する（ステップＳ６）。
【００３３】
パケット送信履歴ありの場合は、ａに前パケットのＣＲＣコードの下位３ビット値を代入する（ステップＳ５）。前パケットのＣＲＣコードはＣＲＣコード記憶部１２から読み出す。図２のパケット＃２を用いて説明すると、前パケット（パケット＃１）のＣＲＣコードの下位３ビット値ａが３であるので、パケット＃２のｂ＝３の位置にパケット＃２の当該データのＣＲＣコードを付加する（ステップＳ６）。以降、パケット送信に際し、ＣＲＣコードの付加位置は、前パケットのＣＲＣコード下位３ビット値ａに応じて決定される。ＣＲＣコードが付加されたパケットは受信側へ向けて送信される（ステップＳ７）。
【００３４】
一方、図４の受信側フローチャートにおいて、受信側のＣＲＣ誤り検査部１４は、先ず受信パケットの有無を判定する（図４のステップＴ１）。受信パケットなしの場合は現状保持し、受信パケットありの場合、ＣＲＣ誤り検査部１４はパケット受信履歴の有無を判定する（ステップＴ２）。
【００３５】
装置立ち上げ直後等、パケット受信履歴がない場合は、前パケットのＣＲＣコードの下位３ビット値ａが未確定のため、ａ＝０をセットし（ステップＴ３）、図２のパケット＃１のように、ｂ＝０の位置に当該パケットのＣＲＣコードが付加されていると認識し、そのＣＲＣコードを最後尾へ移動してＣＲＣ誤り検出処理を行う（ステップＴ４）。
【００３６】
パケット受信履歴ありの場合は、ＣＲＣコード記憶部１５から前パケットのＣＲＣコードを読み出して、その下位３ビット値ａを適用する。図２のパケット＃２を用いて説明すると、前パケット（パケット＃１）のＣＲＣコードの下位３ビット値ａが３であるので、ｂ＝３の位置にパケット＃２のＣＲＣコードが付加されていると認識して、ＣＲＣ誤り検出処理を行う（ステップＴ４）。ＣＲＣ誤り検出処理の結果、ＣＲＣ判定がＯＫの場合は（ステップＴ５）、ａに当該パケットのＣＲＣコードの下位３ビットの値をセットし（ステップＴ６）、パケット受信判定シーケンスに戻る。
【００３７】
一方、ＣＲＣ判定がＮＧの場合、ＣＲＣコード位置サーチ部１６はパケット＃２のＣＲＣコードがｂ＝０〜７のどの位置に付加されているかサーチする（ステップＴ７）。サーチは、ｂ＝０〜７のそれぞれからａを順次に読み出して、ＣＲＣ判定を行なうことにより実行する。サーチの結果、ＣＲＣ判定がＯＫとなった場合は（ステップＴ８）、そのｂの位置に当該パケットのＣＲＣコードの下位３ビットの値をセットし（ステップＴ９）、パケット受信判定シーケンスに戻るとともに、前パケットでのパケットロス有無を判定する（ステップＴ１０）。
【００３８】
ここでのパケットロス検出手段は、本発明に依らず、例えば、ＩＰヘッダのフラグメントオフセット等、連続するパケットに対してシーケンシャルに割り振られた番号の連続性チェックにより行われ、パケットロス検出時はパケットロスＡＬＭが発出されるものとする（ステップＴ１１）。前パケットのパケットロス判定の結果、パケットロスなしの場合であって、且つ前パケットのＣＲＣ誤りが無い場合（ステップＴ１２）は、前パケットでＣＲＣ誤判定があったと判断し、前パケットＣＲＣ誤判定ＡＬＭを発出する（ステップＴ１３）。なお、前パケットのＣＲＣ誤りがある場合（ステップＴ１２）は、ＡＬＭ非発出とする（ステップＴ１４）。
【００３９】
また、ＣＲＣコード位置のサーチ（ステップＴ７）後、ＣＲＣ判定がＮＧとなった場合は（ステップＴ８）、ａ＝０をセットし（ステップＴ１５）、パケット受信判定シーケンスに戻るとともに、当該パケットＣＲＣエラーを発出する（ステップＴ１６）。
【００４０】
次に、以上に説明した本実施例の動作について、図５、図６、図７および図８のタイムチャートにより更に詳しく説明する。図５は送信側のタイムチャートを、図６は受信側のタイムチャート（ＯＫ時）を、図７は受信側のタイムチャート（ＣＲＣ誤判定検出時）を、図８は受信側のタイムチャート（パケットロス時）を示す。
【００４１】
図５の送信側タイムチャートを参照しながら、送信データが＃１から＃４までの４データである場合の動作を説明する。データ＃１は、装置立ち上げ直後等、パケット送信履歴がない場合の先頭データを示す。
【００４２】
はじめに、送信データ＃１について所定の生成多項式での割り算を行い、ＣＲＣコード（ａ＝３）を生成する。生成したＣＲＣコード（ａ＝３）をデータ＃１に付加する際、前パケットのＣＲＣコード下位３ビット値aを参照する。しかし、この時点では送信履歴がないため初期値０を適用し、ＣＲＣコード付加位置ｂ＝０の位置にＣＲＣコードａ＝３を付加する。こうして送信データ＃１のｂ＝０の位置にＣＲＣコードａ＝３を付加した信号が、送信パケット＃１として送信される。
【００４３】
送信データ＃２についても所定の生成多項式での割り算を行い、ＣＲＣコードａ＝７を生成する。生成したＣＲＣコードａ＝７をデータ＃２に付加する際、前パケットパケット＃１のＣＲＣコード下位３ビット値a＝３を参照し、ＣＲＣコード付加位置ｂ＝３の位置にＣＲＣコードａ＝７を付加する。こうして送信データ＃２のｂ＝３の位置にＣＲＣコードａ＝７を付加した信号が、送信パケット＃２として送信される。
【００４４】
同様に、送信データ＃３については生成したＣＲＣコードａ＝２をｂ＝７の位置に付加し、送信データ＃４については生成したＣＲＣコードａ＝５をｂ＝２の位置に付加し、パケット送信する。
【００４５】
次に、図６の受信側タイムチャート（ＯＫ時）を参照しながら、受信パケットが＃１から＃４までの４パケットで、ＣＲＣ判定がいずれもＯＫの場合の動作を説明する。受信パケット＃１は、装置立ち上げ直後等、パケット受信履歴がない場合の先頭パケットを示す。
【００４６】
はじめに、受信パケット＃１のＣＲＣ誤り検出を行う際、ＣＲＣコードの位置を知るために前パケットのＣＲＣコード下位３ビット値aを参照する。しかし、この時点では受信履歴がないため初期値０を適用し、ＣＲＣコード付加位置ｂ＝０の位置にＣＲＣコードａ＝３が付加されているものと認識する。そしてｂ＝０の位置にあるＣＲＣコードａ＝３を、データの最後尾へ移動し、データの先頭から所定の生成多項式で割り算を行い、割り算結果の余りがなければデータは正しい、余りがあればデータの伝送誤りがあったと判定する。
【００４７】
受信パケット＃２についてもＣＲＣ誤り検出を行う際、ＣＲＣコードの位置を知るために前パケットのＣＲＣコード下位３ビット値a＝３を参照し、ＣＲＣコード付加位置ｂ＝３の位置にＣＲＣコードａ＝７が付加されているものと認識する。そしてｂ＝３の位置にあるＣＲＣコードａ＝７を、データの最後尾へ移動し、データの先頭から所定の生成多項式で割り算を行い、割り算結果の余りがなければデータは正しい、余りがあればデータの伝送誤りがあったと判定する。
【００４８】
同様に、受信パケット＃３についてはｂ＝７の位置にＣＲＣコードａ＝２が付加されているものと認識して誤り検出を行い、受信パケット＃４についてはｂ＝２の位置にＣＲＣコードａ＝５が付加されているものと認識して誤り検出を行う。
【００４９】
さて、次に、図７の受信側タイムチャートを参照しながら、受信パケットが＃１から＃４までの４パケット中、＃２のパケットでＣＲＣ誤判定が発生した場合の動作を説明する。受信パケット＃１は、装置立ち上げ直後等、パケット受信履歴がない場合の先頭パケットを示し、受信処理の動作は図６で説明した通りである。
【００５０】
受信パケット＃２は、伝送路上でデータとＣＲＣの両方で誤りが発生し、送信側にてｂ＝３の位置に付加されていた正しいＣＲＣコードａ＝７が誤ったＣＲＣコードａ＝４となってしまったにもかかわらず、所定の生成多項式での割り算結果が余り０となってしまう場合を仮定する。
【００５１】
受信パケット＃２については、ＣＲＣ誤り検出を行う際、ＣＲＣコードの位置を知るために前パケットのＣＲＣコード下位３ビット値a＝３を参照し、ＣＲＣコード付加位置ｂ＝３の位置にＣＲＣコードが付加されているものと認識する。ここで、本来の正しいＣＲＣコードの下位３ビット値はａ＝７であるが伝送路誤りによりａ＝４と誤認識してしまう。
【００５２】
そして、ｂ＝３の位置にある誤ったＣＲＣコードａ＝４)を、データの最後尾へ移動し、データの先頭から所定の生成多項式で割り算を行う。通常はここで割り算結果の余りが発生しＣＲＣ判定ＮＧとなるが、伝送路上で、偶然割り算の結果が余り０となるような誤り方をした場合、誤り検出ができずにＣＲＣ判定はＯＫであると、誤判定してしまう。
【００５３】
この時点では、誤判定したまま受信パケット＃３の処理に移る。受信パケット＃３のＣＲＣ誤り検出を行う際、ＣＲＣコードの位置を知るために前パケットのＣＲＣコード下位３ビット値a＝４を参照し、ＣＲＣコードはｂ＝４の位置に付加されているものと認識する。ここで、本来の正しいＣＲＣコード付加位置はｂ＝７であるが、前パケットのＣＲＣコードが誤っていたため、ｂ＝４の位置のデータをＣＲＣコードとして誤認識することになる。
【００５４】
そして、ｂ＝４の位置にあるデータを、データの最後尾へ移動し、データの先頭から所定の生成多項式で割り算を行う。この結果、当然ながら余りは０とならずにＣＲＣ判定はＮＧとなる。そこで、ＣＲＣコード位置サーチのシーケンスに移り、パケット＃３のｂ＝０〜７のいずれかがＣＲＣコードであると仮定して、それぞれをデータ最後尾に移動して所定の生成多項式で割り算を行い、ＣＲＣコードの位置をサーチする。
【００５５】
その結果、送信側でＣＲＣコードを付加したｂ＝７の位置のデータをＣＲＣコードと仮定して割り算した結果が余り０となり、ｂ＝７が正しいＣＲＣコードの付加位置であることが判明する。更に、前パケットのパケットロスがなければ、前パケットのＣＲＣ判定が誤判定であったと判断できる。このようにして、前パケットでＣＲＣ誤判定となった場合でも、次のパケットでＣＲＣ誤判定が発生していたことを検出することができる。
【００５６】
なお、ＣＲＣコード位置サーチでは、正しいＣＲＣコードの下位３ビット値が２であることが判明したので、前パケットのＣＲＣコード下位３ビット値として、ａ＝２を保持する。こうすることにより、受信パケット＃４については、正しくｂ＝２の位置にＣＲＣコードａ＝５が付加されているものと認識して、誤り検出処理を行うことが可能となる。
【００５７】
次に、図８の受信側タイムチャート（パケットロス時）を参照しながら、受信パケットが＃１から＃４までの４パケット中、＃２のパケットでパケットロスが発生した場合の動作を説明する。受信パケット＃１は、装置立ち上げ直後等、パケット受信履歴がない場合の先頭パケットを示し、受信処理の動作は図６で説明した通りである。受信パケット＃２は、伝送路上でパケットロスしたため、受信側ではパケット＃１の次にパケット＃３を受信することとなる。
【００５８】
受信パケット＃３のＣＲＣ誤り検出を行う際、ＣＲＣコードの位置を知るために前パケットのＣＲＣコード下位３ビット値a＝３を参照し、ＣＲＣコードはｂ＝３の位置に付加されているものと認識する。ここで、本来の正しいＣＲＣコード付加位置はｂ＝７であるが、パケット＃２がロスしていたため、前パケットのＣＲＣコード下位３ビットの値aが正しく更新されず、パケット＃１の値a＝３のままとなっているため、ｂ＝３の位置のデータをＣＲＣコードとして誤認識することになる。
【００５９】
そして、ｂ＝３の位置にあるデータを、データの最後尾へ移動し、データの先頭から所定の生成多項式で割り算を行う。この結果、当然ながら余りは０とならずにＣＲＣ判定はＮＧとなる。そこで、ＣＲＣコード位置サーチのシーケンスに移り、パケット＃３のｂ＝０〜７のいずれかがＣＲＣコードであると仮定して、それぞれをデータ最後尾に移動して所定の生成多項式で割り算を行い、ＣＲＣコードの位置をサーチする。
【００６０】
その結果、送信側でＣＲＣコードを付加したｂ＝７の位置のデータをＣＲＣコードと仮定して割り算した結果が余り０となり、ｂ＝７が正しいＣＲＣコードの付加位置であることが判明する。ここで、前パケットのロスが判明した場合、前パケットのパケットロスＡＬＭが発出され、ＣＲＣ誤判定ではないとされる。ここでのパケットロス検出手段は、本発明に依らず、ＩＰヘッダのフラグメントオフセット等、連続するパケットに対してシーケンシャルに割り振られた番号の連続性チェックにより行われるものとする。
【００６１】
なお、ＣＲＣコード位置サーチでは、正しいＣＲＣコードの下位３ビット値が２であることが判明したので、前パケットのＣＲＣコード下位３ビット値として、ａ＝２を保持する。こうすることにより、受信パケット＃４については、正しくｂ＝２の位置にＣＲＣコードａ＝５が付加されているものと認識して、誤り検出処理を行うことが可能となる。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施例によるＣＲＣ誤判定検出装置の主要部の構成を示すブロック図
【図２】本発明の一実施例におけるＣＲＣコード付加位置を示すパケット構成図
【図３】本発明の一実施例による送信側の動作を示すフローチャート
【図４】本発明の一実施例による受信側の動作を示すフローチャート
【図５】本発明の一実施例による送信側の動作を示すタイムチャート
【図６】本発明の一実施例による受信側の動作（ＯＫ時）を示すタイムチャート
【図７】本発明の一実施例による受信側の動作（ＣＲＣ誤判定検出時）を示すタイムチャート
【図８】本発明の一実施例による受信側の動作（パケットロス時）を示すタイムチャート
【図９】従来のＣＲＣコードを用いた誤り検出方式の構成を示すブロック図
【図１０】従来のＣＲＣコード付加位置を示すパケット構成図
【符号の説明】
【００６３】
１１  ＣＲＣコード生成部
１２  ＣＲＣコード記憶部
１３  ＣＲＣコード付加部
１４  ＣＲＣ誤り検査部
１５  ＣＲＣコード記憶部
１６  ＣＲＣコード位置サーチ部
９１  ＣＲＣコード生成部
９２  ＣＲＣコード付加部
９３  ＣＲＣ誤り検査部
【図１】
2010124260.tif 000003
【図２】
2010124260.tif 000004
【図３】
2010124260.tif 000005
【図４】
2010124260.tif 000006
【図５】
2010124260.tif 000007
【図６】
2010124260.tif 000008
【図７】
2010124260.tif 000009
【図８】
2010124260.tif 000010
【図９】
2010124260.tif 000011
【図１０】
2010124260.tif 000012