(57)【要約】【課題】送信効率の低下を抑制し、確実にデータ通信を行う。【解決手段】実施形態のデータ通信装置は、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側のデータ通信装置に送信する復元用データ生成送信部と、他のデータ通信装置から送信された複数のデータフレームのうち受信できなかったデータフレームが一つである場合に、生成用データフレームに基づいて、受信できなかったデータフレームを復元するデータ復元部と、を備える。【選択図】図２
2020061690.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、
前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側の前記データ通信装置に送信する復元用データ生成送信部と、
前記他のデータ通信装置から送信された前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記生成用データフレームに基づいて、前記受信できなかったデータフレームを復元するデータ復元部と、
を備えたデータ通信装置。
【請求項２】
前記復元用データ生成送信部は、前記データフレームのそれぞれに対し、行列で表される係数を乗じた値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である第２の生成用データフレームを生成し、受信側の前記データ通信装置に送信し、
前記データ復元部は、前記複数のデータフレームのうち受信できなかった前記データフレームが二つ以下である場合に、前記第２の生成用データフレームに基づいて、前記受信できなかったデータフレームを復元する、
請求項１記載のデータ通信装置。
【請求項３】
前記復元用データ生成送信部は、前記複数のデータフレームの送信後であって、前記複数のデータフレームに対応する前記受信側のデータ通信装置からの応答フレームの受信前に前記生成用データフレームを前記受信側のデータ通信装置に送信する、
請求項１または請求項２記載のデータ通信装置。
【請求項４】
前記送信側のデータ通信装置は、前記受信側のデータ装置からの応答フレームの受信前に同時に送信する前記データフレームの数に対応する正常時伝送時間及びリトライ発生による遅延時間を計算し、想定される実際の伝送時間に基づいて前記同時に送信する前記データフレームの数を設定する同時伝送数設定部を備える、
請求個１乃至請求項３のいずれかに記載のデータ通信装置。
【請求項５】
複数のデータ通信装置を備え、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、前記複数のデータ通信装置間で前記データフレームの送受信を行うデータ通信システムであって、
送信側の前記データ通信装置は、前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側の前記データ通信装置に送信する復元用データ生成送信部を備え、
受信側の前記データ通信装置は、前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記生成用データフレームに基づいて、前記受信できなかったデータフレームを復元するデータ復元部を備える、
データ通信システム。
【請求項６】
通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置で実行される方法であって、
前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成する過程と、
前記生成用データフレームを前記受信側の前記データ通信装置に送信する過程と、
を備えた方法。
【請求項７】
通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置で実行される方法であって、
前記他のデータ通信装置から送信された前記複数のデータフレームを受信する過程と、
前記他のデータ通信装置から送信された前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記他のデータ通信装置が送信した前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームに基づいて、前記受信できなかったデータフレームを復元する過程と、
を備えた方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ通信装置、データ通信システム及び方法に関する。
【背景技術】
【０００２】
従来、複数の機器（データ通信装置）が通信ネットワークを介して接続され、データ通信を行うことが可能とされたデータ通信システムが知られている。
このようなデータ通信システムにおいては、通信ネットワークにおけるノイズ等の影響により、送信元のデータ通信装置から送信された複数のデータフレームで構成される送信データが送信先のデータ通信装置に正確に届かない送信失敗が生じる場合がある。
【０００３】
このような状況となった場合には、送信データ（あるいは、送信データを構成するデータフレーム）の再送を行うリトライが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７７５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リトライにおいては、送信元のデータ通信装置は、送信先のデータ通信装置に対し、送信データに対応する到着確認の要求フレームを送信する。
【０００６】
要求フレームを受信した送信先のデータ通信装置は、送信元のデータ通信装置に対し、受信状況について応答するための応答フレームを送信する。この応答フレームには、到着確認の要求フレームを正しく受信できたか否かの情報、複数のデータフレームで構成される送信データのうち受信できたデータフレームについての情報等が含まれる。
【０００７】
この結果、送信元のデータ通信装置は、応答フレームを受信し、送信先のデータ通信装置が送信データを正しく受信できていない場合には、送信済みであった送信データを再送する。
同様に送信元のデータ通信装置は、要求フレームを送信してから所定時間が経過した場合には、正常に受信がなされなかったものとして同様に送信済みであった送信データを再送する。
【０００８】
このため、Ｘ個の送信データの送信に失敗した場合には、Ｘ回のリトライを行う必要があり、送信効率が低下し、結果として送信遅延が増大するという虞があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、送信効率の低下を抑制し、確実にデータ通信を行うことが可能なデータ通信装置、データ通信システム及び方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
実施形態のデータ通信装置は、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側のデータ通信装置に送信する復元用データ生成送信部と、他のデータ通信装置から送信された複数のデータフレームのうち受信できなかったデータフレームが一つである場合に、生成用データフレームに基づいて、受信できなかったデータフレームを復元するデータ復元部と、を備える。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態のデータ通信システムの概要構成ブロック図である。
【図２】図２は、データ通信装置の概要構成ブロック図である。
【図３】図３は、データフレームのデータフォーマットの説明図である。
【図４】図４は、従来の正常通信時の通信手順の説明図である。
【図５】図５は、従来の異常通信時の通信手順の説明図である。
【図６】図６は、送信元データ通信装置の処理フローチャートである。
【図７】図７は、送信元データ通信装置におけるデータ受信フラグテーブルの説明図である。
【図８】図８は、Ａｃｋ受信フラグテーブルの説明図である。
【図９】図９は、送信先データ通信装置の処理フローチャートである。
【図１０】図１０は、送信先データ通信装置におけるデータ受信フラグテーブルの説明図である。
【図１１】図１１は、応答フレームＡｃｋの説明図である。
【図１２】図１２は、第１実施形態の異常通信時の通信手順の説明図である。
【図１３】図１３は、係数Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａ、Ｋｑｂ、Ｋｑｃ、Ｋｑｄの一例の説明図である。
【図１４】図１４は、逆行列Ｋｑｂ−１、Ｋｑｃ−１、Ｋｑｄ−１の一例の説明図である。
【図１５】図１５は、（Ｅ＋Ｋｑｂ）−１、（Ｅ＋Ｋｑｃ）−１、（Ｅ＋Ｋｑｄ）−１、（Ｋｑｂ＋Ｋｑｃ）−１、（Ｋｑｂ＋Ｋｑｄ）−１、（Ｋｑｃ＋Ｋｑｄ）−１の一例の説明図である。
【図１６】図１６は、送信データに対応する複数のデータフレーム及び生成用データフレームＰ及び生成用データフレームＱの受信状態に対応する未受信のデータ生成方法の説明図である。
【図１７】図１７は、第２実施形態の異常通信時の通信手順の説明図である。
【図１８】図１８は、第３実施形態の動作説明図である。
【図１９】図１９は、第４実施形態の送信例の説明図である。
【発明を実施するための形態】
【００１２】
以下図面を参照して、実施形態について詳細に説明する。
［１］第１実施形態
図１は、実施形態のデータ通信システムの概要構成ブロック図である。
データ通信システム１０は、複数のデータ通信装置１１−１、１１−２、…、１１−ｎと、データ通信装置１１−１、１１−２、…、１１−ｎ同士をデータ通信可能に接続する通信ネットワーク１２と、を備えている。
上記構成において、データ通信装置１１−１、１１−２、…、１１−ｎは、同様の構成を有しているので、データ通信装置１１−を例として説明する。
【００１３】
図２は、データ通信装置の概要構成ブロック図である。
データ通信装置１１−１は、当該データ通信装置全体を制御するＭＰＵ２１と、各種データの記憶を行うメモリ部２２と、ディスプレイ、プリンタ、キーボード、マウス等の各種入出力装置との間のインタフェース動作を行うＩ／Ｏ部２３と、通信ネットワーク１２を介した通信インタフェース動作を行う通信部２４と、各部へ電力を供給する電源２５と、を備えている。
上記構成において、メモリ部２２には、後に詳述する当該データ通信装置１１−１が送信元データ通信装置として機能する場合のデータ受信フラグテーブルＴＢ１と、Ａｃｋ確認テーブルＴＢ２と、当該データ通信装置１１−１が送信先データ通信装置として機能する場合のデータ受信フラグテーブルＴＢ３と、を格納している。
【００１４】
次に、実施形態の詳細な動作説明に先立ち、従来の問題点を説明する。
以下の説明においては、理解の容易のため、通信ネットワーク１２に接続されているデータ通信装置が、データ通信装置１１−１、１１−２、１１−３、１１−４の４台であり、このうちのデータ通信装置１１−１が送信元データ通信装置であり、データ通信装置１１−２〜１１−４が送信先データ通信装置であるものとする。
【００１５】
まず、正常時の通信手順について説明する。
以下の説明においては、送信データは、データフレームＡ〜データフレームＤの四つのデータに分割して送信されるものとする。
【００１６】
最初にデータフレームのデータフォーマットの一例について説明する。
図３は、データフレームのデータフォーマットの説明図である。
データフレームＤＦは、当該データフレームＤＦの制御を行うためのフレーム制御データを格納したフレーム制御データ部３１と、宛先アドレスを格納した宛先アドレス部３２と、データ種類（例えば、データフレームＡ〜Ｄ、Ｐ）を示すデータ種類部３３と、応答を要求する際に立てられるＡｃｋ要求フラグが格納されるＡｃｋフラグ部３４と、データを格納したデータ部３５と、フレームチェックシーケンス（ＦＣＳ）を格納したフレームチェックシーケンス部３６と、を備えている。
【００１７】
図４は、従来の正常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置１１−１は、時刻ｔ１において、送信先データ通信装置であるデータ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＡを送信する。
【００１８】
続いて、データ通信装置１１−１は、時刻ｔ２において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＢを送信し、時刻ｔ３において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＣを送信し、時刻ｔ４において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＤを送信する。
【００１９】
これらの結果、送信先データ通信装置であるデータ通信装置１１−２〜１１−４は、時刻ｔ５において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）をそれぞれ送信することとなる。
【００２０】
次に、従来の（通信）異常時の通信手順について説明する。
図５は、従来の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置１１−１は、時刻ｔ１において、送信先データ通信装置であるデータ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＡを送信する。
【００２１】
この場合において、送信先データ通信装置であるデータ通信装置１１−２は、データフレームＡを受信できず、データ通信装置１１−３及びデータ通信装置１１−４は、データフレームを正常に受信できたものとする。
【００２２】
続いて、データ通信装置１１−１は、時刻ｔ２において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＢを送信し、データ通信装置１１−２〜１１−４は、データフレームＢを正常に受信できたものとする。
【００２３】
さらに、データ通信装置１１−１は、時刻ｔ３において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＣを送信する。
【００２４】
この場合においては、データ通信装置１１−３は、データフレームＣを受信できず、データ通信装置１１−２及びデータ通信装置１１−４は、データフレームＣを正常に受信できたものとする。
【００２５】
続いて、データ通信装置１１−１は、時刻ｔ４において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＤを送信し、データ通信装置１１−２〜１１−４は、データフレームＤを正常に受信できたものとする。
【００２６】
以上の結果、時刻ｔ５において、データ通信装置１１−２は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＢ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ｂ＆Ｃ＆Ｄ）を送信する。
【００２７】
同様に、データ通信装置１１−３は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ、Ｂ、Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｄ）を送信する。
【００２８】
一方、データ通信装置１１−４は、時刻ｔ５において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）を送信することとなる。
【００２９】
これらの結果、送信元データ通信装置であるデータ通信装置１１−１は、受信した応答フレームＡｃｋ（Ｂ＆Ｃ＆Ｄ）、応答フレームＡｃｋ（Ａ＆Ｂ＆Ｄ）及び応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）に基づいて、データフレームＡを受信できなかったデータ通信装置及びデータフレームＣを受信できなかったデータ通信装置が存在することを把握する。
【００３０】
続いて、データ通信装置１１−１は、時刻ｔ６において、データ通信装置１１−２〜１１−４に対し、再度データフレームＡを送信し、時刻ｔ７において、データ通信装置１１−２〜１１−４に対し、再度データフレームＣを送信する。
【００３１】
この結果、送信先データ通信装置であるデータ通信装置１１−２〜１１−４は、時刻ｔ８において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）をそれぞれ送信することとなる。
【００３２】
以上の説明のように、いずれかの送信先データ通信装置において、受信できなかったデータフレームがあった場合には、再度同一のデータフレームを送信する必要があり、送信先データ通信装置の数が増加した場合には、再送するデータフレームの数が増加し、データ通信効率が低下する可能性が高かった。
【００３３】
そこで、本実施形態においては、送信先データ通信装置において、異常が発生した場合でも送信元データ通信装置が再度送信するデータ量を削減して、実効的なデータ通信効率を向上している。
【００３４】
このため、本第１実施形態においては、送信データを複数のデータフレームに分割して送信する場合に、送信先データ通信装置において受信した複数のデータフレームのうちいずれか一つのデータフレームが異常であった場合には、送信元データ通信装置は、新たに生成用データフレームＰを送信し、各送信先データ通信装置は、この生成用データフレームＰ及び既に受信している正常に受信したフレームデータ（例えば、上述の例の場合、データフレームＢが受信できなかった場合には、生成用データフレームＰ及びデータフレームＡ、Ｃ、Ｄ）を用いてデータフレームＢを生成するのである。
【００３５】
次に生成用データフレームＰの生成方法について説明する。
本説明においても、送信データは、データフレームＡ〜データフレームＤの四つのデータフレームに分割して送信されるものとする。
また、データフレームＡ〜データフレームＤ及び生成用データフレームＰは、同一バイト数であるものとする。
【００３６】
また、以下の説明において、Ａ［Ｘ］［Ｙ］は、データフレームＡのＸバイト目のＹビット目を表すものとする。
すなわち、データフレームＡが１０２４バイトのデータである場合には、Ｘ＝０〜１０２３の値をとり、Ｙ＝０〜７の値をとる。
【００３７】
具体的には、Ａ［５］［３］は、データフレームＡの５バイト目の３ビット目のデータを意味するものとする。データフレームＢ〜Ｄ及び生成用データフレームＰも同様である。
【００３８】
以下の説明において、符号＋は、排他的論理和（ＥＸＯＲ）を意味し、例えば、ｐ＋ｑは、ｐとｑの排他的論理和を表すものとする。
そして生成用データフレームＰを構成するビットは、次式により生成される。
Ｐ［Ｘ］［Ｙ］＝Ａ［Ｘ］［Ｙ］＋Ｂ［Ｘ］［Ｙ］＋Ｃ［Ｘ］［Ｙ］＋Ｄ［Ｘ］［Ｙ］
【００３９】
以下の説明においては、理解の容易のため、上記式を、
Ｐ＝Ａ＋Ｂ＋Ｃ＋Ｄ          …（１）
と表すものとする。
【００４０】
排他的論理和の性質を用いると、（１）式より以下の（２）式〜（５）式が算出される。
Ａ＝Ｐ＋Ｂ＋Ｃ＋Ｄ          …（２）
Ｂ＝Ｐ＋Ａ＋Ｃ＋Ｄ          …（３）
Ｃ＝Ｐ＋Ａ＋Ｂ＋Ｄ          …（４）
Ｄ＝Ｐ＋Ａ＋Ｂ＋Ｃ          …（５）
【００４１】
したがって、送信先のデータ通信装置１１−２〜１１−４のいずれかにおいて、送信データを構成するデータフレームＡ〜Ｄのうち、いずれか一つを正しく受信できなかった場合でも、生成用データフレームＰが受信できていれば、正しく受信できなかったデータフレームを復元できることが分かる。
【００４２】
次に具体的なデータ通信処理について説明する。
図６は、送信元データ通信装置の処理フローチャートである。
図７は、送信元データ通信装置におけるデータ受信フラグテーブルの説明図である。
【００４３】
まず、送信元データ通信装置であるデータ通信装置１１−１のＭＰＵ２１は、システム初期化を行う（ステップＳ１１）。
続いて、データ通信装置１１−１のＭＰＵ２１は、送信先データ通信装置であるデータ通信装置１１−２〜１１−４に対し、データフレーム送信の開始を通知する（ステップＳ１２）。
次に、データ通信装置１１−１のＭＰＵ２１は、送信対象のデータフレームであるデータフレームＡ、Ｂ、Ｃ、Ｄに基づいてデータ生成用データフレームＰを生成する（ステップＳ１３）。
続いて、データ通信装置１１−１のＭＰＵ２１は、データ受信フラグテーブルＴＢ１において、データ受信フラグをリセットする（ステップＳ１４）。
【００４４】
ここで、送信元データ通信装置におけるデータ受信フラグテーブルＴＢ１について詳細に説明する。
データ受信フラグデータ受信フラグテーブルＴＢ１は、送信先データ通信装置の数、及び、送信データをいくつのデータフレームに分割するかにより異なっており、｛（分割数＋１）×送信先データ通信装置の数｝個のデータ受信フラグが格納される。
【００４５】
すなわち、本実施形態では、送信データを四つのデータフレームＡ、Ｂ、Ｃ、Ｄに分割し、さらに生成用データフレームＰが一つ必要であり、送信先データ通信装置の数＝３個であるので、データ受信フラグテーブルＴＢ１には、図７に示すように、（４＋１）×３＝１５個のデータ受信フラグが格納される。
【００４６】
そして、データ受信フラグとしては、対応する送信先データ通信装置が対応するデータフレームを受信したことが確認された場合には、例えば、“１”が格納され、受信したことが未だ確認されていない場合には、例えば、“０”が格納される。すなわち、いずれの送信先データ通信装置もデータフレームを受信していない初期状態においては、全てのデータ受信フラグには、“０”が格納されていることとなる。
【００４７】
データ通信装置１１−１のＭＰＵ２１は、データ送信のリトライ処理を制御するためのリトライカウンタをクリアする（ステップＳ１５）。
そして、データ通信装置１１−１のＭＰＵ２１は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする（ステップＳ１６）。この場合には、未だデータフレームを送信していないので、いずれの送信作データ通信装置もデータフレームＡ〜データフレームＤの４個である。
【００４８】
続いて、データ通信装置１１−１のＭＰＵ２１は、各送信先データ通信装置において正常に受信できていないデータフレームの数は１個以下であるか否かを判別する（ステップＳ１７）。
【００４９】
ここで、送信先データ通信装置毎に受信できていないデータフレームは同じである必要はなく、異なるデータフレーム、例えば、データ通信装置１１−２で受信できていないデータフレームはデータフレームＡ、データ通信装置１１−３で受信できていないデータフレームはデータフレームＤであってもよい。
【００５０】
この場合には、ステップＳ１７の判別において、全ての送信先データ通信装置において正常に受信できていないデータフレームの数は１個を超えているので（ステップＳ１７；Ｎｏ）、データ通信装置１１−１のＭＰＵ２１は、データ受信フラグのビットをデータフレームＡ、Ｂ、Ｃ、Ｄ毎に論理積演算を行い、論理積演算の結果のビット反転値を送信要求フラグとする（ステップＳ３２）。
【００５１】
具体的には、いずれかの送信先データ通信装置のデータ受信フラグが“０”である場合には、論理積演算の結果は、“０”となるので、送信要求フラグは、そのビット反転値である“１”となる。したがって、初期状態においては、データフレームＡ、Ｂ、Ｃ、Ｄの全てについて、送信要求フラグは、“１”となり、データフレームＡ、Ｂ、Ｃ、Ｄの全てが送信対象のデータフレームとなる。
【００５２】
続いてデータ通信装置１１−１のＭＰＵ２１は、送信要求フラグの内容にしたがって、送信データを作成する（ステップＳ１９）。
さらにデータ通信装置１１−１のＭＰＵ２１は、送信データを構成している最後に送信するデータフレームにおいて、Ａｃｋ要求フラグをセットする（ステップＳ２０）。
【００５３】
次にデータ通信装置１１−１のＭＰＵ２１は、Ａｃｋ受信フラグをクリアする（ステップＳ２１）。
そして、データ通信装置１１−１のＭＰＵ２１は、ステップＳ１９で作成した送信データを送信先データ通信装置であるデータ通信装置１１−２〜１１-４に送信する（ステップＳ２２）。
【００５４】
さらにデータ通信装置１１−１のＭＰＵ２１は、受信診断タイマをスタートさせる（ステップＳ２３）。
次にデータ通信装置１１−１のＭＰＵ２１は、送信先データ通信装置であるデータ通信装置１１−２〜１１-４のいずれかから応答データフレームＡｃｋを受信した場合には、対応するＡｃｋ受信フラグをセットする（ステップＳ２４）。
【００５５】
ここで、Ａｃｋ受信フラグテーブルについて説明する。
図８は、Ａｃｋ受信フラグテーブルの説明図である。
Ａｃｋ受信フラグテーブルＴＢ２において、送信先データ通信装置毎に設けられたＡｃｋ受信フラグは、対応する送信先データ通信装置から応答データフレームＡｃｋを受信した場合にセット状態（本実施形態では、“１”）とされ、応答データフレームＡｃｋを未受信の場合にリセット状態（本実施形態では、“０”）とされる。
【００５６】
続いて、データ通信装置１１−１のＭＰＵ２１は、受信した応答データフレームＡｃｋから正常に受信されているデータフレームを調べ、データ受信フラグテーブルＴＢ１の対応するデータ受信フラグをセットする（ステップＳ２５）。
【００５７】
次にデータ通信装置１１−１のＭＰＵ２１は、Ａｃｋ受信フラグの全てがセット状態、あるいは、受信診断タイマがタイムアウトしたか否かを判別する（ステップＳ２６）。
ステップＳ２６の判別において、Ａｃｋ受信フラグの全てがセット状態でもなく、かつ、受信診断タイマがタイムアウトしてもいない場合には（ステップＳ２６；Ｎｏ）、処理を再びステップＳ２４に移行し、上述した処理を繰り返す。
【００５８】
ステップＳ２６の判別において、Ａｃｋ受信フラグの全てがセット状態、あるいは、受信診断タイマがタイムアウトした場合には（ステップＳ２６；Ｙｅｓ）、データ通信装置１１−１のＭＰＵ２１は、リトライカウンタをインクリメントする（ステップＳ２７）。
【００５９】
次にデータ通信装置１１−１のＭＰＵ２１は、データ受信フラグの全てがセット状態、あるいは、リトライ制限回数に到達したか否かを判別する（ステップＳ２８）。
ステップＳ２８の判別において、データ受信フラグの全てがセット状態、あるいは、リトライ制限回数に到達した場合には（ステップＳ；Ｙｅｓ）、データ受信フラグが全てセットされているか否かを判別する（ステップＳ２９）。
【００６０】
ステップＳ２９の判別において、データ受信フラグが全てセットされている場合には（ステップＳ２９；Ｙｅｓ）、通信成功として処理を終了する。
ステップＳ２９の判別において、データ受信フラグのうちいずれか一つでもセットされていない場合には（ステップＳ２９；Ｎｏ）、通信失敗として処理を終了する。
【００６１】
一方、ステップＳ２８の判別において、データ受信フラグの全てがセット状態でもなく、かつ、リトライ制限回数に到達してもいない場合には（ステップＳ２８；Ｎｏ）、処理を再びステップＳ１６に移行する。
ここで、送信先データ通信装置であるデータ通信装置１１−２のデータフレームＣ及びデータ通信装置１１−３のデータフレームＢに対応するデータ受信フラグのみがリセット状態であった場合を例として説明する。
そして、データ通信装置１１−１のＭＰＵ２１は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする（ステップＳ１６）。この場合には、データ通信装置１１−２のデータフレームＣ及びデータ通信装置１１−３のデータフレームＢに対応するデータ受信フラグがリセット状態であるので、各送信先データ通信装置において正常に受信できていないデータフレームの数は１個以下であるので（ステップＳ１７；Ｙｅｓ）、データ通信装置１１−１のＭＰＵ２１は、データ生成用データフレームＰに対応する送信要求フラグのみをセットする（ステップＳ１８）。
【００６２】
続いてデータ通信装置１１−１のＭＰＵ２１は、送信要求フラグの内容にしたがって、送信データを作成する（ステップＳ１９）。すなわち、データ生成用データフレームＰに対応する送信データのみを作成する。
さらに送信データは、データ生成用データフレームＰに対応するもののみであるので、データ通信装置１１−１のＭＰＵ２１は、データ生成用データフレームＰにおいて、Ａｃｋ要求フラグをセットする（ステップＳ２０）。
【００６３】
次にデータ通信装置１１−１のＭＰＵ２１は、データ生成用データフレームＰに対応するＡｃｋ受信フラグをクリアする（ステップＳ２１）。
そして、データ通信装置１１−１のＭＰＵ２１は、ステップＳ１９で作成した送信データを送信先データ通信装置であるデータ通信装置１１−２〜１１-４に送信し（ステップＳ２２）、以下、同様の手順で処理を行う（ステップＳ２３〜ステップＳ３１）。
以上の説明のように、送信元データ通信装置であるデータ通信装置１１−１においては、全てのデータフレームを確実に送信することができる。
【００６４】
次に送信先データ通信装置の処理（受信時処理）について説明する。
以下の説明においては、データ通信装置１１−２を例として、送信先データ通信装置の処理を説明する。
【００６５】
図９は、送信先データ通信装置の処理フローチャートである。
図１０は、送信先データ通信装置におけるデータ受信フラグテーブルの説明図である。
まず、送信先データ通信装置であるデータ通信装置１１−２のＭＰＵ２１は、システム初期化を行う（ステップＳ４１）。
【００６６】
データ通信装置１１−２のＭＰＵ２１は、データ受信フラグをクリアする（ステップＳ４２）。
続いてデータ通信装置１１−２のＭＰＵ２１は、送信元データ通信装置からのデータフレーム送信開始通知待ち状態に移行する（ステップＳ４３）。
次にデータ通信装置１１−２のＭＰＵ２１は、受信診断タイマをスタートし（ステップＳ４４）、Ａｃｋ診断タイマをストップする（ステップＳ４５）。
【００６７】
次にデータ通信装置１１−２のＭＰＵ２１は、通信元データ通信装置からの受信、受信診断タイマのタイムアップあるいはＡｃｋ診断タイマのタイムアップまで待機状態となる（ステップＳ４６）。
続いて、データ通信装置１１−２のＭＰＵ２１は、送信元データ通信装置から受信したか否かを判別する（ステップＳ４７）。
ステップＳ４７の判別において、送信元データ通信装置から受信をした場合には（ステップＳ４７；Ｙｅｓ）、データ通信装置１１−２のＭＰＵ２１は、受信診断タイマをリスタートする（ステップＳ４８）。
次にデータ通信装置１１−２のＭＰＵ２１は、メモリ部２２に受信データを保存し、データ受信フラグテーブルＴＢ３の受信したデータフレームに対応するデータ受信フラグをセットする（ステップＳ４９）。
【００６８】
ここで、送信先データ通信装置におけるデータ受信フラグテーブルＴＢ３について詳細に説明する。
データ受信フラグテーブルＴＢ３は、送信データをいくつのデータフレームに分割するかにより異なっており、（分割数＋１）個のデータ受信フラグが格納される。
【００６９】
すなわち、本実施形態では、送信データを四つのデータフレームＡ、Ｂ、Ｃ、Ｄに分割し、さらに生成用データフレームＰが一つ必要であるので、データ受信フラグテーブルＴＢ１には、図１０に示すように、（４＋１）＝５個のデータ受信フラグが格納される。
【００７０】
そして、データ受信フラグとしては、当該送信先データ通信装置が対応するデータフレームを受信した場合には、例えば、“１”が格納され、いまだ対応するデータフレームを受信していない場合には、例えば、“０”が格納される。すなわち、当該送信先データ通信装置がデータフレームを受信していない初期状態においては、全てのデータ受信フラグには、“０”が格納されており、この状態がデータ未受信状態を表すこととなる。
【００７１】
続いてデータ通信装置１１−２のＭＰＵ２１は、データ生成用データフレームＰを受信しており、かつ、データフレームＡ、Ｂ、Ｃ、Ｄのうちいずれか一つのみが未受信か否かを判別する（ステップＳ５０）。これは、データ生成用データフレームＰを用いれば、データフレームＡ、Ｂ、Ｃ、Ｄのうちいずれか一つのみが未受信で他の３つのデータが受信されていれば、これらをもちいて未受信のデータフレームを得ることができるからである。
ステップＳ５０の判別において、データ生成用データフレームＰを受信していないか、あるいは、データフレームＡ、Ｂ、Ｃ、Ｄのうち二つ以上のデータフレームが未受信である場合には（ステップＳ５０；Ｎｏ）、データ通信装置１１−２のＭＰＵ２１は、処理をステップＳ５３に移行する。
ステップＳ５０の判別において、データ生成用データフレームＰを受信しており、かつ、データフレームＡ、Ｂ、Ｃ、Ｄのうちいずれか一つのみが未受信である場合には（ステップＳ４９；Ｙｅｓ）、データ通信装置１１−２のＭＰＵ２１は、受信済みデータフレームから一つの未受信データフレームを算出する（ステップＳ５１）。
具体的には、未受信データフレームがデータフレームＣであった場合には、受信済みのデータフレームであるデータフレームＡ、Ｂ、Ｄ、ＰからデータフレームＣを算出することとなる。
これにより、データ通信装置１１−２のＭＰＵ２１は、全てのデータフレームを受信したことと等価となるため、データ受信フラグを全データフレームに対してセットする（ステップＳ５２）。
続いて、データ通信装置１１−２のＭＰＵ２１は、Ａｃｋ要求フラグがあるか否かを判別する（ステップＳ５３）。
ステップＳ５３の判別において、Ａｃｋ要求フラグがある場合には（ステップＳ５３；Ｙｅｓ）、データ通信装置１１−２のＭＰＵ２１は、Ａｃｋ診断タイマをストップし（ステップＳ５４）、データ受信フラグの状態（＝既に受信しているデータフレームの情報）を付加した応答データフレームＡｃｋを送信し（ステップＳ５５）、処理を再びステップＳ４６に移行して、以下、上述した処理を繰り返す。
【００７２】
ステップＳ５３の判別において、Ａｃｋ要求フラグがない場合には（ステップＳ５３；Ｎｏ）、Ａｃｋ診断タイマをリスタートし（ステップＳ５６）、処理を再びステップＳ４６に移行して、以下、上述した処理を繰り返す。
【００７３】
一方、ステップＳ４７の判別において、送信元データ通信装置から受信をしていない場合には（ステップＳ４７；Ｎｏ）、データ通信装置１１−２のＭＰＵ２１は、Ａｃｋ診断タイマがタイムアップしたか否かを判別する（ステップＳ５７）。
ステップＳ５７の判別においてＡｃｋ診断タイマがタイムアップした場合には（ステップＳ５７；Ｙｅｓ）、送信元データ通信装置であるデータ通信装置１１−１に応答データフレームＡｃｋを送信するのが必要なタイミングであるので、データ受信フラグの状態（＝既に受信しているデータフレームの情報）を付加した応答データフレームＡｃｋを送信し（ステップＳ５８）、処理を再びステップＳ４６に移行し、以下、上述した処理と同様な処理を行う。
ステップＳ５７の判別においてＡｃｋ診断タイマがタイムアップしていない場合には、（ステップＳ５７；Ｎｏ）、受信診断タイマがタイムアップしたか否かを判別する（ステップＳ５９）。
ステップＳ５９の判別において、未だ受信診断タイマがタイムアップしていない場合には（ステップＳ５９；Ｎｏ）、処理を再びステップＳ４６に移行し、以下、上述した処理と同様な処理を行う。
ステップＳ５９の判別において、受信診断タイマがタイムアップした場合には（ステップＳ５９；Ｙｅｓ）、データ受信フラグが全てセットされているか否かを判別する（ステップＳ６０）。
【００７４】
ステップＳ６０の判別において、データ受信フラグのうちいずれか一つでもセットされていない場合には（ステップＳ６０；Ｎｏ）、通信失敗として処理を終了する（ステップＳ６１）。
ステップＳ６０の判別において、データ受信フラグが全てセットされている場合には（ステップＳ６０；Ｙｅｓ）、通信成功として処理を終了する（ステップＳ６２）。
【００７５】
次に第１実施形態の異常通信時の具体的通信手順について説明する。
図１２は、第１実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置１１−１は、時刻ｔ１において、送信先データ通信装置であるデータ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＡを送信する。
【００７６】
この場合において、送信先データ通信装置であるデータ通信装置１１−２は、データフレームＡを受信できず、データ通信装置１１−３及びデータ通信装置１１−４は、データフレームを正常に受信できたものとする。
【００７７】
続いて、データ通信装置１１−１は、時刻ｔ２において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＢを送信し、データ通信装置１１−２〜１１−４は、データフレームＢを正常に受信できたものとする。
【００７８】
さらに、データ通信装置１１−１は、時刻ｔ３において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＣを送信する。
【００７９】
この場合においては、データ通信装置１１−３は、データフレームＣを受信できず、データ通信装置１１−２及びデータ通信装置１１−４は、データフレームＣを正常に受信できたものとする。
【００８０】
続いて、データ通信装置１１−１は、時刻ｔ４において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＤを送信し、データ通信装置１１−２〜１１−４は、データフレームＤを正常に受信できたものとする。
【００８１】
以上の結果、時刻ｔ５において、データ通信装置１１−２は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＢ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ｂ＆Ｃ＆Ｄ）を送信する。
【００８２】
同様に、データ通信装置１１−３は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ、Ｂ、Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｄ）を送信する。
【００８３】
一方、データ通信装置１１−４は、時刻ｔ５において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）を送信することとなる。
【００８４】
これらの結果、送信元データ通信装置であるデータ通信装置１１−１は、受信した応答フレームＡｃｋ（Ｂ＆Ｃ＆Ｄ）、応答フレームＡｃｋ（Ａ＆Ｂ＆Ｄ）及び応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）に基づいて、データフレームＡを受信できなかったデータ通信装置及びデータフレームＣを受信できなかったデータ通信装置が存在することを把握する。
【００８５】
続いて、データ通信装置１１−１は、時刻ｔ６において、データ通信装置１１−２〜１１−４に対し、生成用データフレームＰを送信する。
【００８６】
この結果、送信先データ通信装置であるデータ通信装置１１−２は、生成用データフレームＰを用いて受信できなかったデータフレームＡを生成し、送信先データ通信装置１１−３は、成用データフレームＰを用いて受信できなかったデータフレームＣを生成する。
【００８７】
そして、送信先データ通信装置であるデータ通信装置１１−２〜１１−４は、時刻ｔ７において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）をそれぞれ送信することとなる。
【００８８】
以上の説明のように、上記構成によれば、送信先データ通信装置１１−２〜１１−４は、受信すべき送信データを構成しているデータフレームＡ〜Ｄあるいは生成用データフレームＰを受信するまでは、データ受信フラグテーブルＴＢ３を参照して未だ受信していないデータフレームＡ〜Ｄあるいは生成用データフレームＰを把握して、処理を継続するので、確実に所望のデータフレームを受信することが可能となる。
【００８９】
従って、送信元データ通信装置１１−１及び送信先データ通信装置１１−２〜１１−４間のデータ通信効率を必要以上に低下させることなく、確実にデータ通信を行うことができる。
【００９０】
［２］第２実施形態
次に第２実施形態について説明する。
上記第１実施形態においては、送信先データ通信装置において、送信データを構成している複数のデータフレームのうち、いずれか一つのデータフレームの受信が正しく行えなかった場合については、データ通信効率を必要以上に低下させることなくデータ通信を行うことができたが、二つのデータフレームの受信が行えなかった場合には、データフレームを生成することはできず、受信できなかった二つのデータフレームを再送する必要があった。より具体的には、送信データを四つのデータフレームに分割して送信する場合に、異なる送信先データ通信装置において、互いに異なる二つのデータフレームが受信できなかった場合、結局全てのデータフレームを再送する必要があった。
【００９１】
そこで、本第２実施形態は、送信先データ通信装置において、二つのデータフレームが受信できなかった場合でも、受信できなかったデータフレームをデータ通信効率を必要以上に低下させることなく、生成することが可能とする実施形態である。
【００９２】
このため、本第２実施形態においては、第１実施形態における生成用データフレームＰに加えて、第２の生成用データフレームＱを送信先データ通信装置に送信して送信先データ通信装置において、受信できなかったデータフレームを生成するようにして、リトライ時の送信データ容量を削減している。
【００９３】
以下、送信データを第１実施形態と同様に四つのデータフレームＡ〜Ｄに分割して送信する場合を例として具体的に説明する。
生成用データフレームＰ及び生成用データフレームＱを求める一般式は、データフレームＡ〜Ｄを用いて以下の様に表される。
【００９４】
Ｐ＝Ｋｐａ×Ａ＋Ｋｐｂ×Ｂ＋Ｋｐｃ×Ｃ＋Ｋｐｄ×Ｄ
Ｑ＝Ｋｑａ×Ａ＋Ｋｑｂ×Ｂ＋Ｋｑｃ×Ｃ＋Ｋｑｄ×Ｄ
【００９５】
上記式において、Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａ、Ｋｑｂ、Ｋｑｃ、Ｋｑｄは、要素が“１”及び“０”で構成される８×８の行列で表される係数である。すなわち、Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａ、Ｋｑｂ、Ｋｑｃ、Ｋｑｄは、要素が全て０である零行列ではない。ここで、８×８の行列を用いている理由は、送信しようとするデータフレームＡ〜Ｄを構成している実効的なデータ長が８ビットだからである。すなわち、一般的には、データ長がｎビットである場合には、係数として用いる行列は、ｎ×ｎの行列となる。
【００９６】
ここでは、式の簡略化を図るため、係数Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａとして、８×８の単位行列を用いた場合を説明する。
【００９７】
図１３は、係数Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａ、Ｋｑｂ、Ｋｑｃ、Ｋｑｄの一例の説明図である。
図１４は、逆行列Ｋｑｂ−１、Ｋｑｃ−１、Ｋｑｄ−１の一例の説明図である。
図１５は、（Ｅ＋Ｋｑｂ）−１、（Ｅ＋Ｋｑｃ）−１、（Ｅ＋Ｋｑｄ）−１、（Ｋｑｂ＋Ｋｑｃ）−１、（Ｋｑｂ＋Ｋｑｄ）−１、（Ｋｑｃ＋Ｋｑｄ）−１の一例の説明図である。
【００９８】
図１３に示すように、係数Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａは、８次の正方行列であって、主対角線上の要素のみが“１”であり、他の要素が全て“０”である単位行列である。以下の説明においては、単位行列をＥで表す。
【００９９】
また、係数Ｋｑｂ、Ｋｑｃ、Ｋｑｄは、図１４及び図１５に一例を示すように、以下の逆行列、
Ｋｑｂ−１
Ｋｑｃ−１
Ｋｑｄ−１
（Ｅ＋Ｋｑｂ）−１
（Ｅ＋Ｋｑｃ）−１
（Ｅ＋Ｋｑｄ）−１
（Ｋｑｂ＋Ｋｑｃ）−１
（Ｋｑｂ＋Ｋｑｄ）−１
（Ｋｑｃ＋Ｋｑｄ）−１
が存在する８次の正方行列であって、
Ｋｑｂ≠Ｋｑｃ≠Ｋｑｄ
である。
【０１００】
この結果、上記二式は、以下の様に書き換えられる。以下の説明において、記号＊は、行列の積を表す。
Ｐ＝Ａ＋Ｂ＋Ｃ＋Ｄ
Ｑ＝Ａ＋Ｋｑｂ＊Ｂ＋Ｋｑｃ＊Ｃ＋Ｋｑｄ＊Ｄ
【０１０１】
したがって、これら二つの式を連立方程式として用いることにより、未受信のデータフレームが二つの場合に、連立方程式を解くことにより未受信のデータフレームを算出（生成）することができるのである。
【０１０２】
以下、具体的な未受信のデータフレームの生成方法について説明する。
図１６は、送信データに対応する複数のデータフレーム及び生成用データフレームＰ及び生成用データフレームＱの受信状態に対応する未受信のデータフレーム生成方法の説明図である。
【０１０３】
図１６において、記号○は、対応するフレームデータを受信できた場合、記号？は、受信の可否が問題とならない場合、記号×は、対応するフレームデータを受信できなかった場合を表している。
【０１０４】
実際の受信状態としては、図１６に示すように１６通りの状態が考えられる。
具体的には、以下の通りである。
状態１：データフレームＡ〜Ｄを全て受信できた場合。
状態２〜５：データフレームＡ〜Ｄのいずれか一つを受信できず、生成用データフレームＰを受信できた場合。
【０１０５】
状態６〜９：データフレームＡ〜Ｄのいずれか一つ及び生成用データフレームＰを受信できず、生成用データフレームＱを受信できた場合。
状態１０〜１５：データフレームＡ〜Ｄのいずれか二つを受信できず、生成用データフレームＰ及び生成用データフレームＱを受信できた場合。
状態１６：データフレームＡ〜Ｄ、生成用データフレームＰ及び生成用データフレームＱのうち、いずれか三つ以上を受信できなかった場合。
【０１０６】
これらのうち、状態１は、正しく受信できた場合であり、データフレームの生成のための計算は不要である。
また、状態２〜５は、生成用データフレームＰを用いて第１実施形態と同様の計算で受信できなかったデータフレームを計算できる。
【０１０７】
また、状態６〜９の場合は、生成用データフレームＱを用いて第１実施形態に準じた計算で受信できなかったデータフレームを計算できる。
より具体的には、データフレームＢを受信できなかった場合には（状態８）、次式によりデータフレームＢを生成できる。
Ｂ＝Ｋｑｂ−１＊（Ｑ＋Ａ＋Ｋｑｃ＊Ｃ＋Ｋｑｄ＊Ｄ）
【０１０８】
データフレームＣを受信できなかった場合（状態７）及びデータフレームＤを受信できなかった場合（状態６）も同様である。
データフレームＡを受信できなかった場合には（状態９）、次式によりデータフレームＢを生成できる。
Ａ＝Ｑ＋Ｋｑｂ＊Ｂ＋Ｋｑｃ＊Ｃ＋Ｋｑｄ＊Ｄ
【０１０９】
また状態１０〜１５の場合は、生成用データフレームＰ及び生成用データフレームＱを用いた計算で受信できなかった二つのデータフレームを生成できる。
データフレームＡを受信でき、データフレームＣ及びデータフレームＤを受信できなかった場合には（状態１０）、次式によりデータフレームＤを生成し、さらに生成したデータフレームＤを用いてデータフレームＣを生成できる。
Ｄ＝（Ｋｑｃ＋Ｋｑｄ）−１＊｛Ｑ＋Ａ＋Ｋｑｂ*Ｂ＋Ｋｑｃ＊（Ｐ＋Ａ＋Ｂ）｝
Ｃ＝Ｐ＋Ａ＋Ｂ＋Ｄ
【０１１０】
同様にデータフレームＡを受信でき、データフレームＢ及びデータフレームＤを受信できなかった場合（状態１１）、あるいは、データフレームＡを受信でき、データフレームＢ及びデータフレームＣを受信できなかった場合（状態１２）も、生成用データフレームＰ及び生成用データフレームＱを用いた計算で受信できなかった二つのデータフレームを生成（復元）できる。
【０１１１】
また、データフレームＡ及びデータフレームＤを受信できなかった場合には（状態１３）、次式によりデータフレームＤを生成し、さらに生成したデータフレームＤを用いてデータフレームＡを生成できる。
Ｄ＝（Ｅ＋Ｋｑｄ）−１＊（Ｑ＋Ｋｑｂ*Ｂ＋Ｋｑｃ＊Ｃ＋Ｐ＋Ｂ＋Ｃ）
Ａ＝Ｐ＋Ｂ＋Ｃ＋Ｄ
【０１１２】
同様にデータフレームＡ及びデータフレームＣを受信できなかった場合（状態１４）、あるいは、データフレームＡ及びデータフレームＢを受信できなかった場合（状態１５）も、生成用データフレームＰ及び生成用データフレームＱを用いた計算で受信できなかった二つのデータフレームを生成できる。
【０１１３】
次に、第２実施形態の（通信）異常時の通信手順について説明する。
図１７は、第２実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置１１−１は、時刻ｔ１において、送信先データ通信装置であるデータ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＡを送信する。
【０１１４】
この場合において、送信先データ通信装置であるデータ通信装置１１−２は、データフレームＡを受信できず、データ通信装置１１−３及びデータ通信装置１１−４は、データフレームを正常に受信できたものとする。
続いて、データ通信装置１１−１は、時刻ｔ２において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＢを送信する。
【０１１５】
この場合において、送信先データ通信装置であるデータ通信装置１１−２は、データフレームＢを受信できず、データ通信装置１１−３及びデータ通信装置１１−４は、データフレームを正常に受信できたものとする。
【０１１６】
さらに、データ通信装置１１−１は、時刻ｔ３において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＣを送信する。
この場合においては、データ通信装置１１−３は、データフレームＣを受信できず、データ通信装置１１−２及びデータ通信装置１１−４は、データフレームＣを正常に受信できたものとする。
【０１１７】
続いて、データ通信装置１１−１は、時刻ｔ４において、データ通信装置１１−２〜１１−４に対し、送信データの一部を構成するデータフレームＤを送信する。
この場合においては、データ通信装置１１−３は、データフレームＤを受信できず、データ通信装置１１−２及びデータ通信装置１１−４は、データフレームＤを正常に受信できたものとする。
【０１１８】
以上の結果、時刻ｔ５において、データ通信装置１１−２は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＣ、Ｄを受信したことを示す応答フレームＡｃｋ（Ｃ＆Ｄ）を送信する。
同様に、データ通信装置１１−３は、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ、Ｂを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ）を送信する。
【０１１９】
一方、データ通信装置１１−４は、時刻ｔ５において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）を送信することとなる。
【０１２０】
これらの結果、送信元データ通信装置であるデータ通信装置１１−１は、受信した応答フレームＡｃｋ（Ｃ＆Ｄ）、応答フレームＡｃｋ（Ａ＆Ｂ）及び応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）に基づいて、データフレームＡ、Ｂを受信できなかったデータ通信装置及びデータフレームＣ、Ｄを受信できなかったデータ通信装置が存在することを把握する。
【０１２１】
続いて、データ通信装置１１−１は、時刻ｔ６において、データ通信装置１１−２〜１１−４に対し、生成用データフレームＰを送信し、時刻ｔ７において、データ通信装置１１−２〜１１−４に対し、生成用データフレームＱを送信する。
【０１２２】
この結果、送信先データ通信装置であるデータ通信装置１１−２は、生成用データフレームＰ及び生成用データフレームＱを用いて受信できなかったデータフレームＡ、Ｂを生成し、送信先データ通信装置１１−３は、成用データフレームＰ及び生成用データフレームＱを用いて受信できなかったデータフレームＣ、Ｄを生成する。
【０１２３】
さらに、送信先データ通信装置であるデータ通信装置１１−２〜１１−４は、時刻ｔ８において、送信元データ通信装置であるデータ通信装置１１−１に対し、データフレームＡ〜Ｄを受信したことを示す応答フレームＡｃｋ（Ａ＆Ｂ＆Ｃ＆Ｄ）をそれぞれ送信することとなる。
【０１２４】
以上の説明のように、本第２実施形態によれば、第１実施形態の効果に加えて、送信データをデータフレームＡ〜Ｄの四つに分割して送信する場合に、生成用データフレームＰ及び生成用データフレームＱを用いてデータフレームＡ〜Ｄのうち、いずれか二つのデータフレームが正常に受信できなかった場合でもデータ通信効率を大きく低下させることなく当該正常に受信できなかった二つのデータフレームを生成して、データ通信を継続することができる。
【０１２５】
［３］第３実施形態
上記第１実施形態及び第２実施形態においては、送信元データ通信装置１１−１は、いずれかのデータフレームが送信先データ通信装置１１−２〜１１−４において、受信できなかった場合に、生成用データフレームＰを送信していたが、本第３実施形態は、送信データを分割してデータフレームＡ〜Ｄの送信後であって、送信先データ通信装置１１−２〜１１−４から応答フレームＡｃｋを受信する前に生成用データフレームＰを送信するものである。
【０１２６】
図１８は、第３実施形態の動作説明図である。
図１８に示すように、送信先データ通信装置１１−２〜１１−４は、送信元データ通信装置１１−１の最初の送信（時刻ｔ１〜ｔ５の期間）でデータフレームＡ〜Ｄを全て正常に受信できた場合には、時刻ｔ６において応答フレームＡｃｋを送信するので、例えば、第１実施形態の場合と比較して早期に応答フレームＡｃｋを送信して、通信を完了することが可能となる。
【０１２７】
また、送信元データ通信装置１１−１の最初の送信でデータフレームＡ〜Ｄのうち、いずれか一つを除き、正常に受信できた場合には、生成用データフレームＰを用いて受信できなかったいずれか一つのデータフレームを生成した後の時刻ｔ６‘において応答フレームＡｃｋを送信するので、この場合においても、第１実施形態の場合と比較して早期に応答フレームＡｃｋを送信して、通信を完了することが可能となる。
【０１２８】
［４］第４実施形態
次に第４実施形態について説明する。
生成用データフレームＰの送信は、伝送エラーが少ない場合には、データ通信システム１０においては負荷となる。
【０１２９】
一方、伝送エラーが多い場合には、例えば、上述したように送信データの送信において、データフレームＡ〜Ｄのうち二つ以上の欠落が発生する確率が高くなり、生成用データフレームＰの送信だけでは足りずに、リトライが頻発するようになる。
【０１３０】
図１９は、第４実施形態の送信例の説明図である。
そこで、通常時は、第３実施形態で図１６に示した場合のように、データフレームＡ〜Ｄ及び生成用データフレームＰを連続して送信する。
【０１３１】
そして、伝送エラーが多いと検出した場合には、図１９に示すように、一度に送信するデータフレーム数を減らす（図１９では、データフレームＡ及びデータフレームＢを送信）する。これによりリトライ発生回数が減少することとなる。
【０１３２】
より詳細には、一つのフレームデータを送信する場合のエラー（発生）率をＸとし、同時送信データフレーム数をＳとし、リトライ時に送信を失敗する確率は低いものとして無視するものとすると、１回のリトライが発生する確率ＲＲＳは、次式で表される。
ＲＲＳ＝１−（１−Ｘ）（Ｓ−１）＊（１＋（Ｓ−１）＊Ｘ）
【０１３３】
また、同時送信データフレーム数Ｓの場合の、正常時の伝送時間をＴＮＳ、リトライの時間をＴＲＳとすると、データ１個分に換算した伝送時間ＴＴＳは、次式で表される。
ＴＴＳ＝（ＴＮＳ＋ＴＲＳ＊ＲＲＳ）／ｓ
【０１３４】
この式の中で変動する数値はエラー率Ｘのみである。
すなわち、１回に送信する同時送信データフレーム数Ｓが大きいほど、１回のリトライが発生する確率ＲＲＳは増えるが、効率が良くなり、正常時の伝送時間は減ることとなる。
【０１３５】
したがって、例えば、選択し得る同時送信データフレーム数Ｓが、Ｓ１及びＳ２の二つあった場合には、対応する伝送時間ＴＴＳ１とＴＴＳ２を比較し、最適な同時送信データフレーム数Ｓを選択することにより、効率の良い伝送ができる。
選択し得る同時送信データフレーム数Ｓが三つ以上の場合も同様である。
【０１３６】
［５］実施形態の変形例
以上の説明においては、データ通信装置１１−１〜１１−４は、ＭＰＵ等を有するコンピュータとして構成し、これらの機能をプログラム及び各種インタフェースを介して実行するように構成していたが、コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢメモリなどの半導体記録装置等のコンピュータで読み取り可能な記録媒体に記録されて提供されるようにしてもよい。
【０１３７】
また、コンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、制御部５２で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１３８】
また、コンピュータで実行されるプログラムをＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４０】
１０    データ通信システム
１１−１  データ通信装置（送信元データ通信装置）
１１−２〜１１−４  データ通信装置（送信先データ通信装置）
２１    ＭＰＵ（復元用データ生成送信部、データ復元部）
２２    メモリ部
２３    Ｉ／Ｏ部
２４    通信部（復元用データ生成送信部）
２５    電源
Ａ〜Ｄ  データフレーム
Ｋｐａ、Ｋｐｂ、Ｋｐｃ、Ｋｐｄ、Ｋｑａ、Ｋｑｂ、Ｋｑｃ、Ｋｑｄ    係数
Ｐ    生成用データフレーム
Ｑ    （第２の）生成用データフレーム
【図１】
2020061690.tif 000003
【図２】
2020061690.tif 000004
【図３】
2020061690.tif 000005
【図４】
2020061690.tif 000006
【図５】
2020061690.tif 000007
【図６】
2020061690.tif 000008
【図７】
2020061690.tif 000009
【図８】
2020061690.tif 000010
【図９】
2020061690.tif 000011
【図１０】
2020061690.tif 000012
【図１１】
2020061690.tif 000013
【図１２】
2020061690.tif 000014
【図１３】
2020061690.tif 000015
【図１４】
2020061690.tif 000016
【図１５】
2020061690.tif 000017
【図１６】
2020061690.tif 000018
【図１７】
2020061690.tif 000019
【図１８】
2020061690.tif 000020
【図１９】
2020061690.tif 000021