(57)【要約】【課題】通信装置が他の通信装置にパケット誤りを通知するための回線を不要にする。【解決手段】ＣＲＣ検査回路１１０は受信開始と共に受信パケット１０１のＣＲＣ検査を開始し、受信パケット１０１の受信終了と共に検査結果信号１１９を所定のビット数ｒに応じたクロック数の間出力する。また、パケット書き換え回路１２０は受信パケット１０１を書き換え、遅延回路１３０は書き換え後パケット１２９を遅延クロック数情報１９３に応じて遅延させて出力し、ＣＲＣ更新回路１４０は書き換え後パケット１２９のＣＲＣを更新する。検査結果信号１１９がエラー無し「０」を示す場合、ＸＯＲ論理回路１５０はＣＲＣ更新後パケット１４９を送信パケット１０２として出力する。また、検査結果信号１１９がエラー有り「１」を示す場合、ＸＯＲ論理回路１５０はＣＲＣ更新後パケット１４９のＣＲＣをｒビット反転させて反転送信パケット１０３を出力する。【選択図】図１
2010193217.tif 000002
【特許請求の範囲】
【請求項１】
パケットデータを受信し、受信したパケットデータに含まれる誤り検出符号を検査し、検査結果に基づいて前記パケットデータが誤っているか判定する誤り検出符号検査部と、
前記誤り検出符号検査部により受信されたパケットデータと同じパケットデータを受信し、受信したパケットデータに含まれるユーザデータの少なくとも一部を書き換えるパケット書き換え部と、
前記パケット書き換え部により受信されたパケットデータに含まれる誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応する誤り検出符号に変更する誤り検出符号変更部と、
前記誤り検出符号検査部により前記パケットデータが誤っていないと判定された場合、前記誤り検出符号変更部により誤り検出符号を変更されたパケットデータを送信し、前記誤り検出符号検査部により前記パケットデータが誤っていると判定された場合、前記誤り検出符号変更部により変更された誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応しない誤り検出符号に変更し、誤り検出符号を変更したパケットデータを送信する誤り検出符号検査変更部と
を備えたことを特徴とする中継装置。
【請求項２】
前記誤り検出符号検査変更部は、前記誤り検出符号検査部により前記パケットデータが誤っていると判定された場合、前記誤り検出符号変更部により変更された誤り検出符号を構成する複数ビットのうち前記誤り検出符号により誤りを検出できるビット数の半数のビットを反転して前記誤り検出符号を変更する
ことを特徴とする請求項１記載の中継装置。
【請求項３】
前記中継装置は、さらに、
前記誤り検出符号検査変更部へのパケットデータの出力を所定の時間遅延させる遅延部を備えた
ことを特徴とする請求項１〜請求項２いずれかに記載の中継装置。
【請求項４】
前記誤り検出符号検査部は、パケットデータが誤っていることを示す判定結果を所定のビット数に応じた時間出力し、
前記遅延部は、前記誤り検出符号検査変更部へのパケットデータの出力を前記所定のビット数に応じた時間遅延させ、
前記誤り検出符号検査変更部は、前記誤り検出符号検査部により前記パケットデータが誤っていることを示す判定結果が出力されているときに入力したパケットデータのビットを反転して前記誤り検出符号を前記所定のビット数変更する
ことを特徴とする請求項３記載の中継装置。
【請求項５】
前記中継装置は、さらに、
パケットデータに予め設定される情報であってユーザデータ内の書き換える領域を示す情報に基づいて当該ユーザデータ内の書き換える領域を特定する書き換え領域特定部を備え、
前記パケット書き換え部は、前記書き換え領域特定部により特定された領域のユーザデータを書き換える
ことを特徴とする請求項１〜請求項４いずれかに記載の中継装置。
【請求項６】
誤り検出符号検査部とパケット書き換え部と誤り検出符号変更部と誤り検出符号検査変更部とを備える中継装置の中継方法であり、
誤り検出符号検査部が、パケットデータを受信し、受信したパケットデータに含まれる誤り検出符号を検査し、検査結果に基づいて前記パケットデータが誤っているか判定し、
パケット書き換え部が、前記誤り検出符号検査部により受信されたパケットデータと同じパケットデータを受信し、受信したパケットデータに含まれるユーザデータの少なくとも一部を書き換え、
誤り検出符号変更部が、前記パケット書き換え部により受信されたパケットデータに含まれる誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応する誤り検出符号に変更し、
誤り検出符号検査変更部が、前記誤り検出符号検査部により前記パケットデータが誤っていないと判定された場合、前記誤り検出符号変更部により誤り検出符号を変更されたパケットデータを送信し、前記誤り検出符号検査部により前記パケットデータが誤っていると判定された場合、前記誤り検出符号変更部により変更された誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応しない誤り検出符号に変更し、誤り検出符号を変更したパケットデータを送信する
ことを特徴とする中継装置の中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、誤り検出符号を含んだパケットが通信されるネットワークで用いられる中継装置および中継装置の中継方法に関するものである。
【背景技術】
【０００２】
ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）分野では、ＦＡ機器の通信装置間でリアルタイムに制御情報を送受信するＦＡネットワークが用いられる。ＦＡネットワークでは、送受信のリアルタイム性を実現するための中継方式として、通信装置がパケットを別の通信装置に中継する際、パケットの受信完了を待たずに、そのパケットの送信を開始し、中継の遅延を短縮するオンザフライ中継方式が用いられる。また、オンザフライ中継方式では、通信装置がパケットの中継と並行して、受信したパケットの一部を送信したいデータに書き換える。さらに、パケットが誤り検出符号を備える場合は、パケットの書き換えに応じて誤り検出符号の更新が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５４０４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、通信装置がパケットの誤り検査において誤りを検出した場合に、その誤りをどのように他の通信装置に通知するかが課題となる。
もし、受信したパケットに誤りがあった場合、そのまま誤り検出符号の更新を行って送信すると、中継先の通信装置は誤りを検出できない。なぜなら、誤り検出符号の生成元のデータに既に誤りがあった場合、書き換え後のデータから生成された誤り検出符号からは、元々あった誤りを検出できないためである。したがって、中継先の通信装置と接続しているＦＡ機器は、誤ったパケット中の誤った制御情報を正しいと認識してしまい、誤動作を起こすことになる。
【０００５】
オンザフライ中継におけるパケット誤りの通知方式として、通信装置が受信時の誤りの有無に関わらず誤り検出符号を更新してパケットを送信すると共に、パケット誤りを通知する情報を別個に送信する方式が知られている。例えば、特許文献１では、誤り検出符号を備えたパケットを送受信するネットワークにおいて、通信装置がパケット誤りを検出した際、パケットを送受信するための回線とは別の回線を用いて、他の通信装置にパケット誤りを通知する方式が開示されている。
【０００６】
しかしながら、特許文献１には、ある通信装置が検出したパケットエラーを他の通信機器に通知するために、パケットを送受信するための回線とは別の回線が必要となる、という課題がある。
【０００７】
本発明は、例えば、通信装置が他の通信装置にパケット誤りを通知するための回線を不要とすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の中継装置は、パケットデータを受信し、受信したパケットデータに含まれる誤り検出符号を検査し、検査結果に基づいて前記パケットデータが誤っているか判定する誤り検出符号検査部と、前記誤り検出符号検査部により受信されたパケットデータと同じパケットデータを受信し、受信したパケットデータに含まれるユーザデータの少なくとも一部を書き換えるパケット書き換え部と、前記パケット書き換え部により受信されたパケットデータに含まれる誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応する誤り検出符号に変更する誤り検出符号変更部と、前記誤り検出符号検査部により前記パケットデータが誤っていないと判定された場合、前記誤り検出符号変更部により誤り検出符号を変更されたパケットデータを送信し、前記誤り検出符号検査部により前記パケットデータが誤っていると判定された場合、前記誤り検出符号変更部により変更された誤り検出符号を前記パケット書き換え部により書き換えられたユーザデータに対応しない誤り検出符号に変更し、誤り検出符号を変更したパケットデータを送信する誤り検出符号検査変更部とを備える。
【発明の効果】
【０００９】
本発明によれば、例えば、通信装置が他の通信装置にパケット誤りを通知するための回線を不要である。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１におけるエラー情報付加中継装置１００の構成図。
【図２】実施の形態１におけるパケットデータの構成図。
【図３】実施の形態１におけるエラー情報付加中継方法を示すフローチャート。
【図４】実施の形態１におけるエラー情報付加中継方法のタイミングチャート。
【図５】実施の形態１におけるエラービットを含んだ受信パケット１０１を示す図。
【図６】実施の形態２におけるエラー情報付加中継装置１００の構成図。
【発明を実施するための形態】
【００１１】
実施の形態１．
特定の通信装置（例えば、ＦＡ機器）へ送信されたパケットデータであってユーザデータと誤り検出符号とを含んだパケットデータを受信し、受信したパケットデータに含まれるユーザデータの一部を書き換え、書き換えたパケットデータを送信する中継装置について説明する。
【００１２】
図１は、実施の形態１におけるエラー情報付加中継装置１００の構成図である。
実施の形態１におけるエラー情報付加中継装置１００の構成について、図１に基づいて以下に説明する。
【００１３】
エラー情報付加中継装置１００は、ＣＲＣ検査回路１１０（誤り検出符号検査部の一例）、パケット書き換え回路１２０（パケット書き換え部の一例）、遅延回路１３０（遅延部の一例）、ＣＲＣ更新回路１４０（誤り検出符号変更部の一例）、ＸＯＲ論理回路１５０（誤り検出符号検査変更部の一例）および記憶回路１９０を備える。
【００１４】
ＣＲＣ検査回路１１０は、パケットデータを受信し、受信したパケットデータに含まれるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）（誤り検出符号の一例）を検査し、検査結果に基づいて前記パケットデータが誤っているか判定する。
そして、ＣＲＣ検査回路１１０は、パケットデータが誤っていると判定した場合、パケットデータが誤っていることを示す判定結果を所定のビット数に応じた時間出力する。
以下、ＣＲＣ検査回路１１０により受信されたパケットデータを「受信パケット１０１」という。
また、ＣＲＣ検査回路１１０の判定結果を示す信号を「検査結果信号１１９」という。
【００１５】
パケット書き換え回路１２０は、受信パケット１０１を受信し、受信パケット１０１に含まれるユーザデータの少なくとも一部を書き換える。
以下、パケット書き換え回路１２０により書き換えられたパケットデータを「書き換え後パケット１２９」という。
【００１６】
ＣＲＣ更新回路１４０は、書き換え後パケット１２９に含まれるＣＲＣを書き換え後パケット１２９のユーザデータに対応するＣＲＣに変更する。
以下、ＣＲＣ更新回路１４０によりＣＲＣを変更されたパケットデータを「ＣＲＣ更新後パケット１４９」という。
【００１７】
遅延回路１３０は、ＸＯＲ論理回路１５０へのＣＲＣ更新後パケット１４９の出力を所定の時間遅延させる。
例えば、遅延回路１３０は、ＸＯＲ論理回路１５０へのＣＲＣ更新後パケット１４９の出力を所定のビット数に応じた時間遅延させる。
【００１８】
ＸＯＲ論理回路１５０は、受信パケット１０１が誤っていないことを検査結果信号１１９が示す場合、ＣＲＣ更新後パケット１４９を「送信パケット１０２」として送信する。
また、ＸＯＲ論理回路１５０は、受信パケット１０１が誤っていることを検査結果信号１１９が示す場合、ＣＲＣ更新後パケット１４９のＣＲＣをＣＲＣ更新後パケット１４９のユーザデータに対応しないＣＲＣに変更し、ＣＲＣを変更したパケットデータを「反転送信パケット１０３」として送信する。
例えば、ＸＯＲ論理回路１５０は、受信パケット１０１が誤っていることを検査結果信号１１９が示す場合、ＣＲＣ更新後パケット１４９のＣＲＣを構成する複数ビットのうちＣＲＣにより誤りを検出できるビット数の半数のビットを反転してＣＲＣを変更する。
また例えば、ＸＯＲ論理回路１５０は、受信パケット１０１が誤っていることを示す検査結果信号１１９が出力されているときにＣＲＣ更新回路１４０により出力されたビットを反転してＣＲＣを所定のビット数変更する。
【００１９】
記憶回路１９０には、所定の書き換え領域アドレス１９１、書き換えデータ１９２および遅延クロック数情報１９３が予め記憶されているものとする。
書き換え領域アドレス１９１はパケット書き換え回路１２０に書き換えさせる受信パケット１０１の領域を示し、書き換えデータ１９２は受信パケット１０１を書き換えるデータを示し、遅延クロック数情報１９３は遅延回路１３０に遅延させる時間（以下、「遅延クロック数Ｔｄ」という）を示す。
書き換え領域アドレス１９１、書き換えデータ１９２および遅延クロック数情報１９３は、外部装置により書き換えられる。
【００２０】
各「〜回路」は、電気回路や電子回路を意味する。各「〜回路」は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えてもよい。
【００２１】
図２は、実施の形態１におけるパケットデータの構成図である。
図２に示すように、受信パケット１０１、送信パケット１０２、反転送信パケット１０３、書き換え後パケット１２９およびＣＲＣ更新後パケット１４９は、「ヘッダ」「ユーザデータ」「ＣＲＣ」を含む。
「ヘッダ」には、送信元の通信機器を示すアドレス、送信先の通信機器を示すアドレス、パケット長などの情報が設定される。
「ユーザデータ」は、送信先の通信機器に送信したいデータである。例えば、送信先のＦＡ機器を制御する制御情報がユーザデータとしてパケットデータに設定される。
「ＣＲＣ」は、「ヘッダ＋ユーザデータ」を所定の除数で割った余りである。
【００２２】
送信元の通信装置、エラー情報付加中継装置１００および送信先の通信装置を有するパケット中継システムにおいて、特定のＣＲＣ方式（ＣＲＣのサイズ、除数など）が決められているものとする。
【００２３】
図３は、実施の形態１におけるエラー情報付加中継方法を示すフローチャートである。
実施の形態１におけるエラー情報付加中継方法（中継装置の中継方法の一例）について、図３に基づいて以下に説明する。
【００２４】
ＣＲＣ検査回路１１０は受信開始と共に受信パケット１０１のＣＲＣ検査を開始し（Ｓ１１０）、受信パケット１０１の受信終了と共に検査結果信号１１９を所定のビット数ｒ（以下、「ＣＲＣ反転ビット数ｒ」という）に応じたクロック数の間出力する（Ｓ１１１）。
また、パケット書き換え回路１２０は受信パケット１０１を書き換え（Ｓ１２０）、遅延回路１３０は書き換え後パケット１２９を遅延クロック数情報１９３に応じて遅延させて出力し（Ｓ１３０）、ＣＲＣ更新回路１４０は書き換え後パケット１２９のＣＲＣを更新する（Ｓ１４０）。
検査結果信号１１９がエラー無し「０」を示す場合（Ｓ１５０）、ＸＯＲ論理回路１５０はＣＲＣ更新後パケット１４９を送信パケット１０２として出力する（Ｓ１５１）。
また、検査結果信号１１９がエラー有り「１」を示す場合（Ｓ１５０）、ＸＯＲ論理回路１５０はＣＲＣ更新後パケット１４９のＣＲＣをｒビット反転させて反転送信パケット１０３を出力する（Ｓ１５２）。
【００２５】
図４は、実施の形態１におけるエラー情報付加中継方法のタイミングチャートである。
図５は、実施の形態１におけるエラービットを含んだ受信パケット１０１を示す図である。
エラービットを含んだ受信パケット１０１（図５参照）を受信した場合のエラー情報付加中継方法（図３参照）の処理（Ｓ１１０〜Ｓ１５２）について、図４に基づいて以下に説明する。
エラービットとは、通信中に反転したビットのことである。
また、図４においてＣＲＣ反転ビット数ｒを「３」とする。
【００２６】
＜Ｓ１１０＞
ＣＲＣ検査回路１１０は、ヘッダ、ユーザデータ、ＣＲＣの順に設定されている受信パケット１０１の受信開始（ｔ０）と共に、受信パケット１０１を先頭からビット単位で入力する。
ＣＲＣ検査回路１１０は、ヘッダ＋ユーザデータの入力を終了（ｔ２）するまで、入力した各ビットを所定の除数を表すビット列（以下、「除数ビット列」という）と順次比較する。
そして、ＣＲＣ検査回路１１０は、ヘッダ＋ユーザデータの入力終了時（ｔ２）に、ヘッダ＋ユーザデータを所定の除数で割った余りを示す余りビット列を得る。
例えば、ＣＲＣ検査回路１１０は、入力したビットの総数とヘッダ＋ユーザデータのビット数とが一致する時点をヘッダ＋ユーザデータの入力終了時（ｔ２）と判断する。ヘッダ＋ユーザデータのビット数は、ヘッダの所定の位置に設定されるパケット長からＣＲＣのビット数を減算した値として求まる。
Ｓ１１０の後、処理はＳ１１１に進む。
【００２７】
＜Ｓ１１１＞
ＣＲＣ検査回路１１０は、ヘッダ＋ユーザデータの入力終了時（ｔ２）に得られた余りビット列とその後に入力したＣＲＣのビット列とを比較する。
ＣＲＣ検査回路１１０は、余りビット列とＣＲＣのビット列とが一致しない場合、受信パケット１０１にエラービットが含まれることを示す「１（エラー有り）」を検査結果信号１１９のビット値とする。
また、ＣＲＣ検査回路１１０は、余りビット列とＣＲＣのビット列とが一致する場合、受信パケット１０１にエラービットが含まれないことを示す「０（エラー無し）」を検査結果信号１１９のビット値とする。
【００２８】
図４において、検査結果信号１１９のビット値は、受信パケット１０１にエラービットが含まれるため、「１」である。
【００２９】
ＣＲＣ検査回路１１０は、受信パケット１０１の受信終了（ＣＲＣのビット列の入力終了）（ｔ４）と共にＸＯＲ論理回路１５０への検査結果信号１１９の出力を開始し、ＣＲＣ反転ビット数ｒに応じたクロック数Ｔｒを経過した時（ｔ５）にＸＯＲ論理回路１５０への検査結果信号１１９の出力を終了する。
【００３０】
例えば、各「〜回路」が１クロックに１ビットを入出力する場合、ＣＲＣ検査回路１１０はｒクロックの間、検査結果信号１１９を出力する。ＣＲＣ検査回路１１０は検査結果信号１１９をｒビット出力する。
また、ＣＲＣ検査回路１１０は、入力したビットの総数と受信パケット１０１のパケット長（ビット数）とが一致する時点を受信パケット１０１の受信終了時（ｔ４）と判断する。
【００３１】
Ｓ１１０〜Ｓ１１１と並行して、Ｓ１２０〜Ｓ１４０が実行される。
【００３２】
＜Ｓ１２０＞
パケット書き換え回路１２０は、受信パケット１０１の受信開始（ｔ０）と共に、受信パケット１０１を先頭からビット単位で入力する。
そして、パケット書き換え回路１２０は、入力したビットが書き換え領域アドレス１９１で示される書き換え領域に位置するビットでなければ、入力したビットをそのまま遅延回路１３０に出力する。
また、パケット書き換え回路１２０は、入力したビットが書き換え領域アドレス１９１で示される書き換え領域に位置するビットであれば、入力したビットを書き換えデータ１９２の当該ビットに書き換え、書き換えたビットを遅延回路１３０に出力する。
【００３３】
例えば、パケット書き換え回路１２０は、書き換え領域アドレス１９１が３０バイト目を示し、書き換えデータ１９２が４バイトのビット列「１１１１００００・・・」を示す場合、入力した１ビット目から２９バイトの各ビットをそのまま遅延回路１３０に出力し、入力した２３１（＝２９×８＋１）ビット目から４バイトの各ビットを「１１１１００００・・・」に順に書き換える。
【００３４】
パケット書き換え回路１２０は、受信パケット１０１の受信開始（ｔ０）と共に遅延回路１３０への書き換え後パケット１２９の出力を開始し、受信パケット１０１の受信終了（ｔ４）と共に、遅延回路１３０への書き換え後パケット１２９の出力を終了する。
Ｓ１２０と並行して、Ｓ１３０が実行される。
【００３５】
＜Ｓ１３０＞
遅延回路１３０は、Ｓ１２０において受信パケット１０１の受信開始時（ｔ０）から出力される書き換え後パケット１２９の各ビットを順次入力する。
そして、遅延回路１３０は、入力した各ビットを遅延クロック数情報１９３に示される遅延クロック数Ｔｄの間蓄積し、蓄積した各ビットを蓄積時間が遅延クロック数Ｔｄに達したビットから順にＣＲＣ更新回路１４０に出力する。
【００３６】
遅延回路１３０は、受信パケット１０１の受信が開始（ｔ０）されて遅延クロック数Ｔｄを経過した時（ｔ１）からＣＲＣ更新回路１４０への書き換え後パケット１２９の出力を開始し、受信パケット１０１の受信が終了（ｔ４）して遅延クロック数Ｔｄを経過した時（ｔ５）にＣＲＣ更新回路１４０への書き換え後パケット１２９の出力を終了する。
つまり、遅延回路１３０は、書き換え後パケット１２９の各ビットを遅延クロック数Ｔｄだけ遅延させてＣＲＣ更新回路１４０に出力する。
Ｓ１３０と並行して、Ｓ１４０が実行される。
【００３７】
＜Ｓ１４０＞
ＣＲＣ更新回路１４０は、Ｓ１３０において遅延クロック数Ｔｄだけ遅延されて出力される書き換え後パケット１２９の各ビットを順次入力する。
ＣＲＣ更新回路１４０は、ヘッダ＋ユーザデータの入力を終了（ｔ３）するまで、入力した各ビットを除数ビット列（Ｓ１１０と同じビット列）と順次比較すると共に、入力した各ビットをＸＯＲ論理回路１５０に出力する。
ＣＲＣ更新回路１４０は、ヘッダ＋ユーザデータの入力終了時（ｔ３）に、ヘッダ＋ユーザデータを所定の除数で割った余りを示す余りビット列を得る。
ＣＲＣ更新回路１４０は、その後に入力するＣＲＣのビット列の代わりに、余りビット列（図４では、ビット列「１０・・・１０１」）の各ビットをヘッダ＋ユーザデータの入力終了時（ｔ３）から順にＸＯＲ論理回路１５０に出力する。
【００３８】
ＣＲＣ更新回路１４０は、受信パケット１０１の受信が開始（ｔ０）されて遅延クロック数Ｔｄを経過した時（ｔ１）からＸＯＲ論理回路１５０へのＣＲＣ更新後パケット１４９の出力を開始し、受信パケット１０１の受信が終了（ｔ４）して遅延クロック数Ｔｄを経過した時（ｔ５）にＸＯＲ論理回路１５０へのＣＲＣ更新後パケット１４９の出力を終了する。
つまり、ＣＲＣ更新回路１４０は、ＣＲＣ更新後パケット１４９の各ビットを受信パケット１０１の受信開始時より遅延クロック数Ｔｄだけ遅延させてＸＯＲ論理回路１５０に出力する。
Ｓ１１１およびＳ１４０と並行して、Ｓ１５０〜Ｓ１５２が実行される。
【００３９】
＜Ｓ１５０〜Ｓ１５２＞
ＸＯＲ論理回路１５０は、Ｓ１１１において受信パケット１０１の受信終了時（ｔ４）からＣＲＣ反転ビット数ｒに応じたクロック数Ｔｒを経過する時（ｔ５）まで出力される検査結果信号１１９を入力する。
さらに、ＸＯＲ論理回路１５０は、Ｓ１４０において受信パケット１０１の受信が開始（ｔ０）されて遅延クロック数Ｔｄを経過した時（ｔ１）から受信パケット１０１の受信が終了（ｔ４）して遅延クロック数Ｔｄを経過する時（ｔ５）まで出力されるＣＲＣ更新後パケット１４９の各ビットを順次入力する。
【００４０】
遅延クロック数Ｔｄは、ＣＲＣ反転ビット数ｒに応じたクロック数Ｔｒと等しい。
以下、ＣＲＣ更新後パケット１４９の末尾（ＣＲＣの末尾）から数えてｒビットのビット列を「ＣＲＣ反転ビット列」とする。図４においてＣＲＣ反転ビット列は、ＣＲＣ更新後パケット１４９の末尾のビット列「１０１」である。
【００４１】
したがって、ＸＯＲ論理回路１５０は、受信パケット１０１の受信が開始（ｔ０）されて遅延クロック数Ｔｄを経過した時（ｔ１）から受信パケット１０１の受信終了時（ｔ４）まで、ＣＲＣ更新後パケット１４９の各ビット（ＣＲＣ反転ビット列を除く）を順次入力する。さらに、ＸＯＲ論理回路１５０は、受信パケット１０１の受信終了時（ｔ４）からＣＲＣ反転ビット数ｒに応じたクロック数Ｔｒ（遅延クロック数Ｔｄ）を経過する時（ｔ５）まで、検査結果信号１１９を入力すると共にＣＲＣ更新後パケット１４９のＣＲＣ反転ビット列の各ビットを順次入力する。
【００４２】
ＸＯＲ論理回路１５０は、受信パケット１０１の受信が開始（ｔ０）されて遅延クロック数Ｔｄを経過した時（ｔ１）から受信パケット１０１の受信終了時（ｔ４）まで、入力したＣＲＣ更新後パケット１４９の各ビット（ＣＲＣ反転ビット列を除く）を順次出力（送信）する。
さらに、ＸＯＲ論理回路１５０は、受信パケット１０１の受信終了時（ｔ４）からＣＲＣ反転ビット数ｒに応じたクロック数Ｔｒ（遅延クロック数Ｔｄ）を経過する時（ｔ５）まで、入力した検査結果信号１１９の値と入力したＣＲＣ更新後パケット１４９のＣＲＣ反転ビット列の各ビットとで排他的論理和（ＸＯＲ）を取ったビットを順次出力する。
【００４３】
図４において、検査結果信号１１９の値は「１（エラー有り）」であるため、ＣＲＣ更新後パケット１４９のＣＲＣ反転ビット列「受信パケット１０１」は排他的論理和（ＸＯＲ）により反転して「０１０」となり出力される（Ｓ１５２）。
検査結果信号１１９の値が「０（エラー無し）」である場合、ＣＲＣ更新後パケット１４９のＣＲＣ反転ビット列「１０１」は排他的論理和（ＸＯＲ）により反転せず「１０１」のまま出力される（Ｓ１５１）。
【００４４】
ＸＯＲ論理回路１５０により出力された各ビットは、送信パケット１０２（ＣＲＣ更新後パケット１４９）または反転送信パケット１０３（ＣＲＣ反転ビット列を反転させたＣＲＣ更新後パケット１４９）としてネットワークを介して送信される。
送信パケット１０２はエラービットを含まないパケットであり、反転送信パケット１０３はエラービットを含んだパケットである。
【００４５】
エラー情報付加中継装置１００から送信された送信パケット１０２は、中継先の通信装置（目的の通信装置または他のエラー情報付加中継装置１００）に到達する。通信装置は、到達した送信パケット１０２を受信し、受信した送信パケット１０２のＣＲＣをＣＲＣ検査回路１１０と同様に検査する。送信パケット１０２のＣＲＣはＣＲＣ更新回路１４０により正しく更新されているため、検査結果は「エラー無し」となり、通信装置は送信パケット１０２がエラービットを含まないパケットであると判断することができる。
また、エラー情報付加中継装置１００から送信された反転送信パケット１０３は、中継先の通信装置に到達する。通信装置は、到達した反転送信パケット１０３を受信し、受信した反転送信パケット１０３のＣＲＣをＣＲＣ検査回路１１０と同様に検査する。反転送信パケット１０３のＣＲＣはＸＯＲ論理回路１５０によりＣＲＣ反転ビット列を反転されて正しくないため、検査結果は「エラー有り」となり、通信装置は反転送信パケット１０３がエラービットを含んだパケットであると判断することができる。
【００４６】
ＣＲＣ反転ビット数ｒは、ＣＲＣにより検出できるエラービットの最大数（以下、「誤り検出限界ｎ」とする）の半分（小数点以下切り上げ）であるのが望ましい。
ＣＲＣ反転ビット数ｒは、誤り検出限界ｎを用いて（式１）で表すことができる。
【００４７】
【数１】
2010193217.tif 000003
【００４８】
例えば、ＣＲＣの方式が「ＣＲＣ３２」と呼ばれる方式である場合、ＣＲＣ３２は任意の５ビットまでのパケット誤りを検出できるため、ＣＲＣ反転ビット数ｒは「３ビット（＝５÷２）（小数点以下切り上げ）」となる。
【００４９】
ＣＲＣ反転ビット数ｒを誤り検出限界ｎの半分とする理由は、通信中の反転送信パケット１０３にさらにエラービットが発生した場合に、中継先の通信装置が反転送信パケット１０３をエラービットを含まない正しいパケットであると認識してしまう危険性を最小限にするためである。
【００５０】
例えば、ＣＲＣ反転ビット数ｒが「１ビット」である場合、反転させた１ビットが中継中に反転してしまうとＣＲＣが正しいＣＲＣに戻ってしまう（以下、「反転ビットの再反転」という）。
また例えば、ＣＲＣ反転ビット数ｒが「ｎビット（誤り検出限界）」である場合、ＣＲＣ反転ビット（末尾ｎビット）以外のビットが中継中に１ビットでも反転してしまうと、反転したビットの数は誤り検出限界ｎを超えてしまう（以下、「追加エラーの発生」という）。
「反転ビットの再反転」と「追加エラーの発生」とのいずれの場合も、中継先の通信装置は、反転送信パケット１０３をエラービットを含んだ正しくないパケットであると認識することができない。
【００５１】
一方、ＣＲＣ反転ビット数ｒを誤り検出限界ｎの半分にすると「反転ビットの再反転」と「追加エラーの発生」との両方の危険性に対して等しく対応できる。
例えば、ＣＲＣ反転ビット数ｒを誤り検出限界ｎ（５ビット）の半分（小数点以下切り上げ）である「３ビット」とした場合、反転させた３ビット全てが反転しなければＣＲＣが正しいＣＲＣに戻らず、ＣＲＣ反転ビット以外の３ビットが反転しなければ誤り検出限界ｎを超えない。
【００５２】
実施の形態１において、以下のようなエラー情報付加中継装置１００について説明した。
パケットが誤り検出符合を備えるネットワークにおいて、エラー情報付加中継装置１００は、誤り検査回路（１１０）、パケット書き換え回路１２０、遅延回路１３０、誤り検査符号更新回路（１４０）およびＸＯＲ論理回路１５０を備える。
誤り検査回路は、パケットの誤り検査を行い、検査結果を検査結果信号１１９として出力する。
パケット書き換え回路１２０は、パケットの書き換えを行う。
遅延回路１３０は、パケットに遅延を発生させる。
誤り検査符号更新回路は、パケットから誤り検査符号を生成し、パケットの誤り検査符号部を生成した誤り検査符号で書き換えることにより、パケットの誤り検査符号の更新を行う。
ＸＯＲ論理回路１５０は、検査結果信号１１９とパケットの誤り検査符号とを入力し、ＸＯＲ論理値を出力する。
【００５３】
エラー情報付加中継装置１００は、上記の構成により、パケットに誤りが発生していることをそのパケットに情報を付加して通知する。具体的には、パケット書き換え回路１２０により受信パケットを書き換え、誤り検査符号更新回路により誤り検出符号の更新を行った後、ＸＯＲ論理回路１５０により誤り検出符号の末尾をビット反転してパケットを送信する。
これにより、中継先の通信装置では受信したパケットの誤り検査の結果が常に誤りとなる。つまり、中継元で検出された誤りを中継先に通知することができる。
【００５４】
エラー情報付加中継装置１００により、パケットエラーを他の通信装置に通知するための回線が不要となり、コストを削減できる。
また、エラー情報付加中継装置１００がパケットを中継するのに要する時間は、ＣＲＣが検出可能な誤りビット数ｎの半数をビット反転させるのにかかる処理時間である。このため、エラー情報付加中継装置１００は、エラー通知を高速に行うことができる。
【００５５】
実施の形態１において、ＣＲＣは誤り検出符号の一例であり、パリティ符号やチェックサムをＣＲＣの代わりに誤り検出符号として用いても構わない。
また、遅延回路１３０は、書き換え後パケット１２９を遅延させてＣＲＣ更新回路１４０に出力する代わりに、ＣＲＣ更新後パケット１４９を遅延させてＸＯＲ論理回路１５０に出力しても構わない。
また、反転ビット数ｒは、「ｎ（誤り検出限界）÷２」の商を小数点以下切り捨てた値であっても構わない。さらに、反転ビット数ｒは、２以上ｎ未満の整数であっても構わない。
【００５６】
実施の形態１において、「〜回路」として説明したものは、ソフトウェアの「〜部（モジュール）」、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜回路」として説明したものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
「〜回路」がソフトウェアである場合、エラー情報付加中継装置１００は、「〜回路」の手順や方法をコンピュータに実行させるプログラムを記憶した記憶装置（ＲＯＭ、ＲＡＭ、磁気ディスク装置など）とプログラムを読み出して実行するＣＰＵとを備える。
【００５７】
実施の形態２．
受信パケットに応じて書き換え領域を変更する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【００５８】
図６は、実施の形態２におけるエラー情報付加中継装置１００の構成図である。
実施の形態２におけるエラー情報付加中継装置１００の構成について、図６に基づいて以下に説明する。
【００５９】
エラー情報付加中継装置１００は、実施の形態１の構成（図１参照）に加えて書き換え領域通知回路１６０（書き換え領域特定部の一例）を備える。
また、記憶回路１９０に書き換え領域アドレス１９１が記憶されていなくてもよい。
また、受信パケット１０１のヘッダには、書き換える領域を示す情報（書き換え領域アドレス１９１に相当する情報）がヘッダ内の所定の領域に予め設定されているものとする。
【００６０】
エラー情報付加中継方法（図３）のＳ１２０において、書き換え領域通知回路１６０は、受信パケット１０１に予め設定される情報であってユーザデータ内の書き換える領域を示す情報を読み出し、当該ユーザデータ内の書き換える領域を特定する。書き換え領域通知回路１６０は特定した領域をパケット書き換え回路１２０に通知する。
パケット書き換え回路１２０は、書き換え領域通知回路１６０により通知された領域のユーザデータを書き換えデータ１９２に書き換える。
例えば、書き換え領域通知回路１６０は特定した領域を示す情報を書き換え領域アドレス１９１としてパケット書き換え回路１２０に出力し、パケット書き換え回路１２０は書き換え領域アドレス１９１により示される領域に位置するビットを入力した時に入力ビットの書き換えを行う。
また例えば、書き換え領域通知回路１６０は、特定した領域に位置するビットの入力時にパケット書き換え回路１２０へ信号を出力し、パケット書き換え回路１２０は書き換え領域通知回路１６０からの信号を入力した時に入力ビットの書き換えを行う。
【００６１】
その他の構成および処理は、実施の形態１と同じである。
【符号の説明】
【００６２】
１００  エラー情報付加中継装置、１０１  受信パケット、１０２  送信パケット、１０３  反転送信パケット、１１０  ＣＲＣ検査回路、１１９  検査結果信号、１２０  パケット書き換え回路、１２９  書き換え後パケット、１３０  遅延回路、１４０  ＣＲＣ更新回路、１４９  ＣＲＣ更新後パケット、１５０  ＸＯＲ論理回路、１６０  書き換え領域通知回路、１９０  記憶回路、１９１  書き換え領域アドレス、１９２  書き換えデータ、１９３  遅延クロック数情報。
【図１】
2010193217.tif 000004
【図２】
2010193217.tif 000005
【図３】
2010193217.tif 000006
【図４】
2010193217.tif 000007
【図５】
2010193217.tif 000008
【図６】
2010193217.tif 000009