(57)【要約】【課題】通信システムにおいて、安定的な通信を確保しながら、通信速度を可及的に向上させる。【解決手段】通信の１単位としてひとまとまりで送受信される単位データ群を相互に送信して１対１全二重双方向通信を行う一対の機器Ａ，Ｂの双方に、送信バッファメモリ２１と、受信バッファメモリ２２とが備えられた通信システムにおいて、送信バッファメモリ２１におけるメモリユニットの個数は、受信確認情報を待機する設定期間に送信する前記単位データ群の個数に１を加えた送信側最低メモリ個数以上の個数に設定され、受信バッファメモリ２２におけるメモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記１群のデータについて再送信されてくるまでに受信する前記単位データ群の数に１を加えた受信側最低メモリ個数以上の個数に設定されている。【選択図】図１
2007028132.tif 000002
【特許請求の範囲】
【請求項１】
送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の１単位としてひとまとまりで送受信される単位データ群を相互に送信して１対１全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムであって、
前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群を受信したことを示す受信確認情報を前記単位データ群の送信元へ送信するように構成され、
前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記１群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示す情報が含まれ、
前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信させる送信側通信制御手段が備えられ、
前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記順序関係を示す情報に基づいて読出す読出し制御手段が備えられ、
前記送信バッファメモリ及び前記受信バッファメモリは、１つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成され、
前記送信バッファメモリにおける前記メモリユニットの個数は、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に１を加えた送信側最低メモリ個数以上の個数に設定され、
前記受信バッファメモリにおける前記メモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記１群のデータについて再送信されてくるまでに受信する前記単位データ群の数に１を加えた受信側最低メモリ個数以上の個数に設定されている通信システム。
【請求項２】
前記送信バッファメモリにおける前記メモリユニットの個数は、前記送信側最低メモリ個数に１を加えた個数に設定され、
前記受信バッファメモリにおける前記メモリユニットの個数は、前記受信側最低メモリ個数に１を加えた個数に設定されている請求項１記載の通信システム。
【請求項３】
前記単位データ群のデータサイズが固定的に設定されている請求項１又は２記載の通信システム。
【請求項４】
前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている請求項３記載の通信システム。
【請求項５】
前記送信側通信制御手段は、通信の相手先の機器に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その時点で通信の相手先の機器から受信している最新の前記単位データ群についての前記受信確認情報を含めるように構成されている請求項１〜４のいずれか１項に記載の通信システム。
【請求項６】
前記機器において、大容量データのうちの部分データの処理とその処理の完了した部分データを前記送信バッファメモリの前記メモリユニットへ書込む処理とを繰り返して、前記大容量データを処理していくように構成されている請求項１〜５のいずれか１項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の１単位としてひとまとまりで送受信される単位データ群を相互に送信して１対１全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムに関する。
【背景技術】
【０００２】
通信システムでは、一般的に、下記特許文献１にも記載のように、受信したデータを一時的に保持する受信バッファメモリと、送信出力するためのデータを一時的に保持する送信バッファメモリとを備える構成とする場合が多い。
これは、下記特許文献１とは通信形態が異なるが、いわゆる１対１全二重双方向通信を構成する場合においても同様である。
この受信バッファメモリや送信バッファメモリの構成としては、従来、下記特許文献１に記載のような単一のＦＩＦＯ構成のメモリや、データの書込みと読出しとを交互に切換える一対のバッファメモリから構成されるいわゆるピンポンバッファ構成のメモリとする場合が多い。
【特許文献１】特開平６−２７６２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来構成では、近年の通信速度の高速化の要請に十分に応えるのが困難なものとなってきた。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、安定的な通信を確保しながら、通信速度を可及的に向上させる点にある。
【課題を解決するための手段】
【０００４】
本出願の第１の発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の１単位としてひとまとまりで送受信される単位データ群を相互に送信して１対１全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムにおいて、前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群を受信したことを示す受信確認情報を前記単位データ群の送信元へ送信するように構成され、前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記１群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示す情報が含まれ、前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信させる送信側通信制御手段が備えられ、前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記順序関係を示す情報に基づいて読出す読出し制御手段が備えられ、前記送信バッファメモリ及び前記受信バッファメモリは、１つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成され、前記送信バッファメモリにおける前記メモリユニットの個数は、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に１を加えた送信側最低メモリ個数以上の個数に設定され、前記受信バッファメモリにおける前記メモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記１群のデータについて再送信されてくるまでに受信する前記単位データ群の数に１を加えた受信側最低メモリ個数以上の個数に設定されている。
【０００５】
すなわち、データ送信部の送信バッファメモリ及びデータ受信部の受信バッファメモリは、何れも、ひとまとまりで送信される前記単位データ群に含まれる一群のデータを１つ分だけ（１群だけ）記憶保持するメモリユニットを複数個備える構成とする。
このメモリユニットの個数は、送信側においては、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に１を加えた送信側最低メモリ個数以上の個数に設定される。
つまり、少なくとも前記送信側最低メモリ個数のメモリユニットを確保すれば、送信した前記単位データ群と、その単位データ群についての前記受信確認情報を待機している期間に送信される単位データ群とを送信バッファメモリに記憶保持させることが可能であり、それによって、データ送信部が送信出力するデータを供給する供給元の段階ではなく、データ送信部の送信バッファメモリの段階でデータの再送信機能を備えてデータ通信の安定化を図ると共に、１つの前記単位データ群の送信後、その単位データ群について適正に送信が完了したか否かの確認とは無関係に後続の単位データ群を送信してデータ通信の高速化を図れる。
【０００６】
一方、データの受信側においては、メモリユニットの個数が、前記単位データ群の受信に失敗した後、その単位データ群の前記１群のデータについて再送信されてくるまでに受信する前記単位データ群の数に１を加えた受信側最低メモリ個数以上の個数に設定される。
つまり、受信バッファメモリからは、データの送信側で指定されている並び順で各メモリユニットのデータが出力されて行くので、ある単位データ群の受信に失敗すると、受信バッファメモリから出力する並び順が受信に失敗した単位データ群よりも後続の単位データ群については、受信に失敗した単位データ群のデータよりも先行して受信バッファメモリから後段に出力することができない。
そこで、少なくとも前記受信側最低メモリ個数のメモリユニットを確保すれば、前記単位データ群の受信に失敗した後、その単位データ群の前記１群のデータについて再送信されてくるまでに受信する前記単位データ群と、再送信されてきた単位データ群とを受信バッファメモリに記憶保持させることが可能であり、それによって、単位データ群の受信に失敗したときでも、後続の単位データ群の受信を全て廃棄してしまうような事態を回避して、受信した単位データ群のデータを有効に活用することでデータ通信の高速化を図れる。
【０００７】
又、本出願の第２の発明は、上記第１の発明の構成に加えて、前記送信バッファメモリにおける前記メモリユニットの個数は、前記送信側最低メモリ個数に１を加えた個数に設定され、前記受信バッファメモリにおける前記メモリユニットの個数は、前記受信側最低メモリ個数に１を加えた個数に設定されている。
すなわち、送信バッファメモリのメモリユニットの個数を前記送信側最低メモリ個数に更に１を加えた個数とし、受信バッファメモリにおいても、メモリユニットの個数を前記受信側最低メモリ個数に更に１を加えた個数とすることで、送信バッファメモリにおいては、データを再送信している間も、データの供給元から新たに書込まれる１群のデータのためにメモリユニットを確保することができ、又、受信バッファメモリにおいては、再送信されてきたデータを後段に出力している間も、後続のフレームのデータを受け取ることができ、送信バッファメモリ及び受信バッファメモリの双方においてデータの読み書きを並行して行えるいわゆるピンポンバッファの機能を更に付加することができる。
【０００８】
又、本出願の第３の発明は、上記第１又は第２の発明の構成に加えて、前記単位データ群のデータサイズが固定的に設定されている。
従って、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなる。
【０００９】
又、本出願の第４の発明は、上記第３の発明の構成に加えて、前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている。
すなわち、固定データサイズの前記単位データ群が間断なく送受信されるので、前記受信確認情報の受取るタイミング等を正確に把握することが可能となる。
【００１０】
又、本出願の第５の発明は、上記第１〜第４のいずれかの発明の構成に加えて、前記送信側通信制御手段は、通信の相手先の機器に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その時点で通信の相手先の機器から受信している最新の前記単位データ群についての前記受信確認情報を含めるように構成されている。
すなわち、受信確認情報のやり取りのために特別の信号線や授受タイミングを設定するのではなく、受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうのである。
【００１１】
又、本出願の第６の発明は、上記第１〜第５のいずれかの発明の構成に加えて、前記機器において、大容量データのうちの部分データの処理とその処理の完了した部分データを前記送信バッファメモリの前記メモリユニットへ書込む処理とを繰り返して、前記大容量データを処理していくように構成されている。
すなわち、例えば画像ファイルのような大容量のデータの部分部分を順次に処理して、処理の完了した箇所のデータ部分を直ちに他の機器に送信してリアルタイム的に処理して行く場合では、処理の完了した大容量のデータ全体を一旦送信バッファメモリに書込んで、その送信バッファメモリから順次に送信出力するという構成ではメモリの使用効率やデータの処理効率の観点からは極めて非効率となってしまう。
そこで、処理の完了した部分データを比較的小さいデータ量のデータ群に区分して順次に送信バッファメモリのメモリユニットへ書込んで送信出力するという構成として、大容量の送信バッファメモリを不要とすると共に、処理の完了したデータを迅速に送信出力できる。
【発明の効果】
【００１２】
上記第１の発明によれば、機器間で送信したデータに送信エラーが発生して、適正にデータの送信が完了しなかった場合、再送信することによって通信の安定性を確保すると共に、そのような再送信の機能を備えながらも、後続の前記単位データ群を次々と送信することができ、又、受信側においてデータ受信にエラーが発生した場合でも、そのように次々と送られてくる前記単位データ群に含まれるデータを無駄にすることなく受け取ることができる。
もって、安定的な通信を確保しながら、通信速度を可及的に向上できるに至った。
【００１３】
又、上記第２の発明によれば、いわゆるピンポンバッファの機能を更に付加することで、送信バッファメモリ及び受信バッファメモリの記憶容量の増大を可及的抑制しながら、送信バッファメモリ及び受信バッファメモリにおけるデータの読み書きの並行処理が行え、更には、データ送信のエラー発生を考慮しながらも滞りなくデータを送り続けることが可能となった。
又、上記第３の発明によれば、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなるので、データの送受信のための制御構成等を簡素化することができる。
又、上記第４の発明によれば、前記受信確認情報の受取るタイミング等を正確に把握することが可能となるので、制御構成等を更に簡素化することができる。
又、上記第５の発明によれば、前記受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうので、回路構成の簡素化を図れると共に、データ通信の高速化にも寄与する。
又、上記第６の発明によれば、リアルタイム的なデータの処理と処理したデータの通信とを効率良く行うことができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の通信システムの実施の形態を図面に基づいて説明する。
本実施の形態では、通信システムによる通信当事者として機器Ａと機器Ｂとを例示して説明する。
機器Ａ，Ｂは、複雑な画像処理の処理部分を分担して担当するものであり、処理の完了した画像データを機器Ａから機器Ｂへ、あるいは、その逆方向に伝送する。
機器Ａ，Ｂの概略的なブロック図を示す図１のように、各機器Ａ，Ｂには、通信回路１と通信回路１からデータを受け取って（読出して）処理するデータ処理部２を備えている。
データ処理部２は、機器Ａ，Ｂ間で、担当する処理部分が異なることに応じて異なる回路構成となっているが、通信回路１の構成は共通である。
データ処理部２で実行される処理は上述のように画像処理であることから、機器Ａ，Ｂのうちの一方のデータ処理部２において、１つの画像の画像データの部分データに対して処理作用し、その部分データの処理結果のデータを通信回路１へ送って、他方のデータ処理部２を送信させる。この部分データの処理と処理の完了した部分データを通信回路１へ送る処理（より具体的には、後述する送信バッファメモリ２１のメモリユニットへ書込む処理）とを繰り返して、大容量データである１つの画像の画像データについて処理をしていく。すなわち、機器Ａ，Ｂの一方で、１つの画像の画像データ全てについて処理が完了するとその処理の完了した１つの画像の画像データを他方に送る、というデータの伝送形態ではなく、機器Ａ，Ｂの一方から他方へ、通信回路１を経てリアルタイム的に画像処理の完了した部分データを送っている。
【００１５】
〔通信回路１の概略構成〕
通信回路１には、データを送信するデータ送信部１１とデータを受信するデータ受信部１２とが備えられ、機器Ａのデータ送信部１１は機器Ｂのデータ受信部１２へと接続され、機器Ｂのデータ送信部１１は機器Ａのデータ受信部１２へと接続されて、機器Ａの通信回路１と機器Ｂの通信回路１との間で１対１全二重双方向通信が構成されている。
データ受信部１２には受信したデータを一時的に記憶保持する受信バッファメモリ２２が備えられ、データ送信部１１にはデータ処理部２にて処理されたデータを通信の相手先へ送信出力するために一時的に記憶保持する送信バッファメモリ２１が備えられている。
【００１６】
〔通信回路１によるデータ通信の概略〕
次に、通信回路１のデータ通信の概略について図３に基づいて説明する。
通信回路１間のデータ通信は、図３（ａ）に示すように、本来の送信対象のデータ（本実施の形態では画像処理されたデータ）に複数種類の通信制御用データを付加した「フレーム」を単位として行う。
各フレームは、図３（ａ）に示すように、先頭にフレームの先頭部分であることを示す「フレーム検出コード」ブロック１００が位置し、その後に、送信するデータに関する情報により構成される「フレームステータス」ブロック１０１が位置し、更に本来の送信対象のデータを配置する「データ」ブロック１０２が続く。この「データ」ブロック１０２には複数データが含まれ、各データ処理部２にて処理対象となる。
但し、各データ処理部２の動作を規定する制御用のデータも、「データ」ブロック１０２に含めて送信することもできる。
【００１７】
「データ」ブロック１０２の後のフレームの後端には、データが適正に転送されたか否かをＣＲＣ等により検証するためのデータを含める「フレームチェックコード」ブロック１０３が位置する。
上記のフレームを単位として送受信することで、「データ」ブロック１０２に含まれる一群のデータがひとまとまりで送信されることになる。
すなわち、フレームは、送信対象とする一群のデータ（「データ」ブロック１０２のデータ）と通信制御用のデータ（「データ」ブロック１０２以外のデータ）とにより構成されて通信の１単位としてひとまとまりで送受信される単位データ群である。
尚、通信回路１は、高速シリアル通信を行うように構成されており、「フレーム検出コード」ブロック１００の前端側には信号の伝送状態を安定化させるためのコードが組み込まれている。
フレームの各ブロック１００，１０１，１０２，１０３のデータサイズは固定的に設定されており、従って、フレーム全体のデータサイズも固定的に設定されている。
【００１８】
各フレーム（より厳密には、各フレームに含まれる前記一群のデータ）には、各フレームを特定するための識別情報が付されている。
機器Ａと機器Ｂとの間の通信を模式的に示す図３（ｂ）において「フレーム＃１」，「フレーム＃２」，……と示すように、前記識別情報は連続番号として設定され、識別情報が付された各フレームが常時且つ連続的に相互に送受信される。
これは、フレームは、本来の送信対象のデータすなわち「データ」ブロック１０２に含めるべきデータの有無に拘わらず送信されることを意味しており、送信対象のデータが存在しない場合の「データ」ブロック１０２には、任意に設定したデータが割り付けられる。
尚、機器Ａから機器Ｂへの送信とその逆方向の送信とは、原則として互いに依存することなく独立した送信タイミングとなっている。
【００１９】
各フレームの識別情報は、例えば「１」〜「１０」のように、若い番号から順に連続番号が付され、あるフレームに含まれる一群のデータと他のフレームに含まれる一群のデータとの順序関係を示す情報となっている。尚、「１０」の次は再び「１」に戻る。
以下、説明の都合上、前記識別情報を「識別番号」と表記する。
各フレームの「フレームステータス」ブロック１０１の情報はこの識別番号により構成され、具体的には、そのフレームの識別番号（以下において、「送信フレーム識別番号」と称する）と通信の相手先に送り返すための受信確認情報とを合わせたものである。
この受信確認情報とは、そのフレームの送信開始時点において、通信の相手先から受信している最新のフレームの識別番号から生成したものであり、具体的には、通信の相手先から受信している最新のフレームの識別番号をそのまま使用している。以下において、この受信確認情報を「受信確認識別番号」と称する。
このように、受信確認識別番号をフレームの送信元へ送り返すことで、その送信元はどのフレームまで適正に送信できたかを識別する受信確認情報として利用することができる。すなわち、フレームを受信したことを示す受信確認情報を、フレームの通信制御用のデータに含めて送信している。
以下において、この「フレームステータス」ブロック１０１に記述される送信フレーム識別番号と受信確認識別番号とを合わせた通信制御用のデータを「フレームステータス」と称する。
【００２０】
次ぎに、通信回路１の具体構成及び動作を、データ送信部１１及びデータ受信部１２の内部構成を詳細に示す図２に基づいて説明する。尚、図２は、機器Ａ側の通信回路１について示しているが、上述のように、機器Ｂの通信回路１も全く同一の構成で同一の動作をする。
【００２１】
〔データ受信部１２の構成〕
データ受信部１２には、受信した図３（ａ）に示す構成のフレームから本来の送信対象のデータ（「データ」ブロック１０２のデータ）とそれ以外の通信制御用のデータとを分離する受信フレーム分離回路３１と、受信フレーム分離回路３１から送られてくるフレームステータスの情報（「フレームステータス」ブロック１０１の情報）等から受信したフレームのデータを受入れるか否かを判別するフィルタ回路３２と、上記の受信バッファメモリ２２と、受信バッファメモリ２２を管理するためのレジスタ群であるメモリユニット制御レジスタ３３と、受信バッファメモリ２２から読出すデータを特定するためのリードオーダカウンタ３４と、受信側において通信動作を制御する受信側通信プロトコル制御部３７とが備えられている。これら各回路はＦＰＧＡ上に論理回路として構成されている。
【００２２】
受信バッファメモリ２２は、図２において「メモリユニット＃１」〜「メモリユニット＃４」として示すように、４つのメモリユニットから構成され、各メモリユニットの夫々が１つのフレームに載せてひとまとまりで送られてくる一群のデータを記憶保持する。従って、受信バッファメモリ２２は合計で４群のデータを記憶保持できる。
メモリユニット制御レジスタ３３は、受信バッファメモリ２２が４つのメモリユニットを備えているのに対応して、各メモリユニットの夫々に対応したレジスタを備えている。
メモリユニット制御レジスタ３３の各レジスタは、図４に示すように、各レジスタが対応するメモリユニットの番号（「１」〜「４」）を記録してある「メモリＩＤ」部２０１と、メモリユニットに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリユニットステータスレジスタ２０２と、メモリユニットに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ２０３とから構成されている。
更に、受信バッファメモリ２２のデータ入力側には、入力されてきたデータを４つのメモリユニットのうちの何れか１つへ出力するように切換える入力側切換え回路３５が備えられ、受信バッファメモリ２２の出力側には、４つのメモリユニットのうちの何れか１つを選択してデータを出力するための出力側切換え回路３６が備えられている。
【００２３】
受信バッファメモリ２２が４つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器Ａ，Ｂ間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記１群のデータについて再送信する機能を有していることと、受信バッファメモリ２２からのデータの出力は、上記の識別番号の順序に従って出力する必要があることとによる。
すなわち、フレームを送信した側の通信回路１では、上記のようなエラーが発生した場合でも後続のフレームを送信し続けるようになっており、受信側では、その後続のフレームを受け取っても、先行のフレームのデータの受取りに失敗しているので、識別番号の順序を無視して、後続のフレームのデータを先行して受信バッファメモリ２２から出力してしまうことはできない。又、後続のフレームの受取りを拒否してしまうと、せっかく送受信に成功したフレームのデータを再度送信しなくてはならなくなり、通信効率を低下させてしまうことになる。
【００２４】
そこで、受信バッファメモリ２２のメモリユニットの個数を、フレームの受信に失敗した後、そのフレームの前記１群のデータについて再送信されてくるまでに受信するフレームの数に１を加えた受信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、フレームの受信に失敗した後、そのフレームの前記１群のデータについて再送信されてくるまでに受信するフレームの数は「２」であり、更に再送信されてくるフレームのデータを受け取るための１個を加えた「３」が上記の受信側最低メモリ個数である。
最低限３個のメモリユニットがあれば、フレームの受信に失敗した後に送られてくる２フレームのデータと、それに引き続いて送られてくる再送信のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記受信側最低メモリ個数に更に「１」を加えた４個としている。
これによって、上記の再送信されてきたフレームのデータを受信バッファメモリ２２から後段へ送出するのと並行して、送信側から後続のフレームのデータを受け取ることが可能であり、極めて効率よくデータを伝送することができる。
【００２５】
〔データ送信部１１の構成〕
データ送信部１１には、データ処理部２から受け取った１フレーム分のデータに識別番号（これがフレームの識別番号となる）を付けるライトオーダカウンタ４１と、上記の送信バッファメモリ２１と、送信バッファメモリ２１を管理するためのレジスタ群であるメモリユニット制御レジスタ４２と、送信バッファメモリ２１から読出すデータを特定するためのリードオーダカウンタ４３と、送信バッファメモリ２１から受け取ったデータによって図３（ａ）の構成のフレームを編成して出力する送信フレーム生成回路４４と、送信側において通信動作を制御する送信側通信プロトコル制御部４９とが備えられている。これら送信側の各回路もＦＰＧＡ上に論理回路として構成されている。
【００２６】
送信バッファメモリ２１は、図２において「メモリユニット＃１」〜「メモリユニット＃４」として示すように、受信バッファメモリ２２と同様に、４つのメモリユニットから構成され、各メモリユニットの夫々が１つのフレームに載せてひとまとまりで送信する一群のデータを記憶保持する。従って、送信バッファメモリ２１も、４群のデータを記憶保持できる。
メモリユニット制御レジスタ４２は、送信バッファメモリ２１が４つのメモリユニットを備えているのに対応して、各メモリユニットの夫々に対応したレジスタを備えている。
メモリユニット制御レジスタ４２の各レジスタは、メモリユニット制御レジスタ３３の各レジスタと基本構成は共通であり、図４に示すように、各レジスタが対応するメモリユニットの番号（「１」〜「４」）を記録してある「メモリＩＤ」部２０１と、メモリユニットに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリユニットステータスレジスタ２０２と、メモリユニットに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ２０３とから構成されている。
更に具体的には、メモリユニットステータスレジスタ２０２に記憶保持されるステータス情報は、メモリユニット制御レジスタ３３では、対応するメモリユニットに有効な前記一群のデータが記憶保持されているか否か（「データ有り」か「データ無し」か）を示す情報であり、メモリユニット制御レジスタ４２では、対応するメモリユニットに前記一群のデータが記憶されているか否かを示す情報に加えて、対応するメモリユニットに記憶されているデータが、「送信待ち」の状態、「送信完了後で受信確認待ち」の状態、あるいは、適正にデータ送信を行えなかったことに伴う「再送信待ち」の３状態のうちの何れの状態であるかを示す情報を記憶保持する。
【００２７】
更に、送信バッファメモリ２１のデータ入力側には、入力されてきたデータを４つのメモリユニットのうちの何れか１つへ出力するように切換える入力側切換え回路４５が備えられ、送信バッファメモリ２１の出力側には、４つのメモリユニットのうちの何れか１つを選択してデータを出力するための出力側切換え回路４６が備えられている。これらについても、受信側と同様の構成となっている。
データ送信部１１のライトオーダカウンタ４１，メモリユニット制御レジスタ４２，リードオーダカウンタ４３，及び，送信側通信プロトコル制御部４９によって送信側通信制御手段ＣＣが構成されている。
【００２８】
送信バッファメモリ２１が４つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器Ａ，Ｂ間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記１群のデータについて再送信する機能を有していることによる。
すなわち、フレームを送信した側の通信回路１では、上記のようなエラーが発生せずに適正にデータの送信が完了したことを、上記の受信確認識別番号を受け取ったことにより確認するのであるが、この受信確認識別番号を受け取るまで、送信済みのデータを送信バッファメモリ２１のメモリユニットに保持させておく必要があり、その受信確認識別番号を待つ間も、後続のフレームを送信して通信速度の高速化を図る必要がある。
【００２９】
そこで、送信バッファメモリ２１のメモリユニットの個数を、前記受信確認識別番号を待機する設定期間に送信するフレームの個数に１を加えた送信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、前記受信確認識別番号を待機する設定期間に送信するフレームの個数は「２」であり、更に再送信されるフレームのデータを記憶保持するための１個を加えた「３」が上記の送信側最低メモリ個数である。
最低限３個のメモリユニットがあれば、再送信のためのフレームのデータと、前記受信確認識別番号を待つ間に送信する２個のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記送信側最低メモリ個数に更に「１」を加えた４個としている。
これによって、送信バッファメモリ２１におけるデータの入出力を示す図７（ａ）のように、前記受信確認識別番号を待つ間に送信する２個のフレームのデータを記憶保持すると共に（「メモリユニット＃１」と「メモリユニット＃２」）、上記の再送信するフレームのデータを送信バッファメモリ２１から読出す（「メモリユニット＃３」）のと並行して、送信対象データの供給元であるデータ処理部２から後続のフレームのデータを受け取る（「メモリユニット＃４」）ことが可能であり、極めて効率よくデータを伝送することができる。
【００３０】
これに対して、データ処理部２から送信バッファメモリ２１へのデータの供給速度が遅い場合には、前記受信確認識別番号を待つ間の２個のフレーム送信期間内に送信バッファメモリ２１への書込みデータ量が少なくなって、図７（ｂ）に示すように、書込みが行われているメモリユニットと読出しが行われているメモリユニット以外では、一群のデータの保持のために１つのメモリユニットだけが使用される状態となり、更にデータの供給速度が遅くなると、図７（ｃ）に示すように、書込みのためと読出しのためとだけにメモリユニットが使用される状態となる。
このように、通信回路１のデータ転送能力を最大限に生かした最高のデータ転送効率の条件下でメモリユニットの個数を設定しておけば、送信バッファメモリ２１へのデータ供給速度が低下した場合にも柔軟に対応できる。
【００３１】
〔データ受信部１２の動作〕
次に、データ受信部１２の動作を説明する。
受信フレーム分離回路３１が、フレーム（図３（ａ）を参照）の先頭の「フレーム検出コード」ブロック１００のデータによってフレームデータの受取り開始を検知して、１つのフレームのデータを受け取ると、そのフレームの「フレームステータス」ブロック１０１のデータであるフレームステータスと本来の送信対象のデータである「データ」ブロック１０２のデータとを分離して、フレームステータスのデータをフィルタ回路３２へ送り、「データ」ブロック１０２のデータ及び「フレームチェックコード」ブロック１０３のデータを入力側切換え回路３５へ出力する。
【００３２】
フィルタ回路３２は、受信フレーム分離回路３１から受信したフレームステータスの中の前記送信フレーム識別番号をメモリユニット制御レジスタ３３へ送る。
送信フレーム識別番号を受け取ったメモリユニット制御レジスタ３３は、受信バッファメモリ２２の４のメモリユニットに対応する４つのレジスタのうちの空きのもの（メモリユニットステータスレジスタ２０２の情報が「データ無し」になっているもの）に受け取った送信フレーム識別番号を書込み、その送信フレーム識別番号を書込んだレジスタに対応するメモリユニットに受信フレーム分離回路３１から送られてくるデータを書込むように入力側切換え回路３５の接続状態を設定する。但し、この時点では、メモリユニットステータスレジスタ２０２の情報は「データ無し」の状態を維持させる。
【００３３】
フィルタ回路３２は、受信フレーム分離回路３１から新規に受け取ったフレームに含まれる前記一群のデータの受信バッファメモリ２２への書込みが完了する毎に実質的に図１０のフローチャートの処理に相当する処理を実行しており、受信バッファメモリ２２のデータを参照して、受信の完了した「データ」ブロック１０２のデータと「フレームチェックコード」ブロック１０３のデータとを対比することで、通信エラーを発生することなく受信できたか否かを判断し（ステップ＃１）、適正に受信が完了しており（ステップ＃１）、且つ、受信したフレームの送信フレーム識別番号がメモリユニット制御レジスタ３３のいずれかのレジスタに記憶されている識別番号のいずれとも一致せず（ステップ＃３）、且つ、受信したフレームの送信フレーム識別番号が所定の識別番号の範囲内にあるとき（ステップ＃４）、メモリユニット制御レジスタ３３に対して、受信したフレームについてのメモリユニットステータスレジスタ２０２の情報を「データ有り」に書き換えるように指示する（ステップ＃７）。メモリユニットステータスレジスタ２０２の情報を「データ有り」に書き換えることによって、初めて正式な受信として確定する。
ここで、ステップ＃３における「所定の識別番号の範囲内」とは、識別番号の順序で受信バッファメモリ２２から次ぎに出力すべき識別番号の値からそれに３を加えた値までの範囲内である。
この後、更に、フレームステータスの送信フレーム識別番号及び受信確認識別番号
双方を受信側通信プロトコル制御部３７へ送る（ステップ＃８）。
【００３４】
通信エラーが発生したとき（ステップ＃１）、受信したフレームの識別番号（送信フレーム識別番号）が既存のデータの識別番号と重複したとき（ステップ＃３）、あるいは、受信したフレームの送信フレーム識別番号が前記所定の範囲内にないとき（ステップ＃４）でも、送信フレーム識別番号及び受信確認識別番号の双方を受信側通信プロトコル制御部３７へ送る（ステップ＃８）のであるが、その際、通信エラーが発生したときは（ステップ＃１）、受信側通信プロトコル制御部３７へ送る送信フレーム識別番号及び受信確認識別番号は何れも「０」に設定される（ステップ＃２）。
又、受信したフレームの送信フレーム識別番号が前記所定の範囲内にないとき（ステップ＃４）は、送信フレーム識別番号が、メモリユニット制御レジスタ３３に記憶されている識別番号のうちの最も増大側の識別番号に近い値であるときは（ステップ＃５）、送信フレーム識別番号を「０」に設定する（ステップ＃６）。
【００３５】
一方、送信フレーム識別番号及び受信確認識別番号をフィルタ回路３２から受け取った受信側通信プロトコル制御部３７は、その受け取った送信フレーム識別番号及び受信確認識別番号を送信側通信プロトコル制御部４９へ送る。
送信側通信プロトコル制御部４９へ送られた送信フレーム識別番号は、受信確認識別番号として、その送信フレーム識別番号を生成した通信の相手先の通信回路１のデータ受信部１２へ送り返すのに利用され、又、送信側通信プロトコル制御部４９へ送られた受信確認識別番号は、送信側通信プロトコル制御部４９において、１つのフレームのデータが適正に受信されたことを確認するのに利用される。
【００３６】
受信フレーム分離回路３１が受信する後続のフレームについても上記の処理が繰り返され、受信フレーム分離回路３１が受け取ったフレームに含まれる送信対象のデータが受信バッファメモリ２２に順次に書込まれていくと、それと並行して、受信バッファメモリ２２のデータが読出されて、データ処理部２へ出力される。
受信バッファメモリ２２からのデータの読出しは、リードオーダカウンタ３４が管理する。
上述のようにフレームの識別番号が「１」〜「１０」の範囲で付されるときは、リードオーダカウンタ３４はその範囲でカウントを実行する。
リードオーダカウンタ３４は、メモリユニット制御レジスタ３３を参照して、カウント値と一致する識別番号のデータがいずれかのメモリユニットに存在していれば、そのメモリユニットのデータを出力するように出力側切換え回路３６の接続を切換え、メモリユニットからのデータの送出が完了するとカウント値をインクリメント（＋１）してカウントアップし、「１０」の次は「１」に戻る。
一方、メモリユニット制御レジスタ３３にカウント値と一致する識別番号が記憶されていなければ、その識別番号のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
これによって、メモリユニット制御レジスタ３３及びリードオーダカウンタ３４は、受信バッファメモリ２２に書込まれた一群のデータを前記識別番号に基づいて読出す読出し制御手段ＲＣとして機能する。
【００３７】
以上のデータの受信の過程を、図８及び図９に示す受信事例によって説明する。
図８と図９とは、通信エラーの発生タイミングが異なるものと示している。
図８の「受信範囲」として示す最上段は、図１０のフローチャートのステップ＃４の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部１２へ入力されるフレームの入力タイミングと各フレームの識別番号（送信フレーム識別番号）とを示しており、更に次段の「受信バッファメモリ」は、（１）〜（４）で示す各メモリユニットの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部１２からデータ処理部２へ出力されるデータの出力タイミングと識別番号とを示している。
尚、図８中、例えば「Ｄａｔａ［＃１］」とは、識別番号が「１」のフレームのデータ（本来の送信対象のデータ）という意味である。
【００３８】
図８の事例では、「受信フレーム」の段において識別番号の周囲を右下がりの斜線で囲んだものの送信で通信エラーが発生したことを示しており、１回目の識別番号「１」のフレームで通信エラーが発生した場合を例示している。
順を追って説明していくと、受信バッファメモリ２２から未だデータを出力していない状態では受信範囲は「１」〜「４」であり、最初の送信フレーム識別番号が「１」のフレームで通信エラーが発生して、そのフレームのデータが入力されてくる間は受信バッファメモリ２２へ何も書込まれず、識別番号が「２」，「３」の後続のフレームを受信して、それらのフレームのデータが順次に受信バッファメモリ２２へ書込まれる。
リードオーダカウンタ３４等の制御によって、これら識別番号が「２」，「３」のデータが、識別番号が「１」のデータに先行して受信バッファメモリ２２から読出し出力されることはない。
送信側では、識別番号が「３」のフレームの送信完了時点で、識別番号が「１」のフレームについて前記受信確認識別番号を受け取っていないことことから、識別番号が「１」のフレームのデータを再送信している。
受信側では、この再送信された識別番号が「１」のフレームを受信してデータを受信バッファメモリ２２のメモリユニットに書込んだ後、更に後続の識別番号が「４」，「５」，「６」，「７」，……のフレームを受け取って受信バッファメモリ２２へ書込んで行く。
仮に１回目の識別番号が「１」のフレームで通信エラーが発生しなければ、識別番号が「１」のデータは、図８の「受信データ出力」において破線Ｐで示す期間で受信バッファメモリ２２から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す３フレーム後に識別番号が「１」のデータが出力される。
この識別番号が「１」のデータを受信バッファメモリ２２から出力している期間では、再送信されてきた識別番号が「１」のフレームに先行して受け取った識別番号が「２」及び「３」のフレームのデータを記憶保持しながら、識別番号が「１」のデータの受信バッファメモリ２２からの読出し出力と、後続のデータ（識別番号が「４」のフレームのデータ）の受信バッファメモリ２２への書込みとを並行して行っており、通信エラーのリカバリを確保しながら、効率良くデータの伝送が行えていることを示している。
【００３９】
更に、図９の事例について説明する。
図９の表示形態は図８と同様であり、図９では、識別番号が「４」のフレームで通信エラーが発生したことを示している。
仮に１回目の識別番号が「４」のフレームで通信エラーが発生しなければ、識別番号が「４」のデータは、図９の「受信データ出力」において破線Ｑで示す期間で受信バッファメモリ２２から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す３フレーム後に識別番号が「４」のデータが出力される。
【００４０】
〔データ送信部１１の基本動作〕
次に、データ送信部１１の動作を説明する。
データ処理部２は、上記フレームの「データ」ブロック１０２のデータ量を単位として繰り返しデータを出力し、ライトオーダカウンタ４１は、データ処理部２が１フレーム分のデータを出力するたびにそれを検出してカウント値をインクリメント（＋１）してカウントアップして行く。
【００４１】
ライトオーダカウンタ４１のカウント値の範囲は、フレームの識別番号の範囲に一致させてあり、上述の場合では「１」〜「１０」の範囲で、「１０」の次は「１」に戻ってカウントアップする。
ライトオーダカウンタ４１のカウント値はメモリユニット制御レジスタ４２へ入力され、そのカウント値を受け取ったメモリユニット制御レジスタ４２は、送信バッファメモリ２１の４つのメモリユニットに対応する４つのレジスタのうちの空きのものに受け取ったカウント値を書込み、そのカウント値を書込んだレジスタに対応するメモリユニットにデータ処理部２から送られてくるデータを書込むように入力側切換え回路４５の接続状態を設定する。
これによってデータ処理部２から送られてくるデータが、順次に送信バッファメモリ２１のメモリユニットへ書込まれて行き、メモリユニット制御レジスタ４２へ書込まれるライトオーダカウンタ４１のカウント値は、１フレームとしてひとまとまりで送信される一群のデータの識別情報（具体的には、識別番号）となる。
【００４２】
送信バッファメモリ２１からのデータの読出しは、リードオーダカウンタ４３が管理する。
ライトオーダカウンタ４１により「１」〜「１０」のカウント値が出力されるときは、リードオーダカウンタ４３はその範囲でカウントを実行する。
リードオーダカウンタ４３は、送信側通信プロトコル制御部４９からのデータ出力指示を受け取ると、メモリユニット制御レジスタ４２を参照して、カウント値と一致する識別番号のデータがいずれかのメモリユニットに存在していれば、そのメモリユニットのデータを出力するように出力側切換え回路４６の接続を切換え、メモリユニットからのデータの出力が完了するとカウント値をインクリメント（＋１）してカウントアップする。
リードオーダカウンタ４３は、このようにカウント値をデータ送出タイミング毎に順次にカウントアップしてデータを送り出していくというのが基本的な動作であるが、データを適正に送信できなかったときに送信済みのフレームを再送信するという動作にも対応している。
リードオーダカウンタ４３には、再送信を要するフレームの識別番号を記憶保持するためのレジスタであるリトライオーダレジスタ４３ａが備えられており、このリトライオーダレジスタ４３ａに識別番号が書込まれているとき、上述のカウント値によるデータ出力に優先して、リトライオーダレジスタ４３ａに書込まれている識別番号のデータを記憶したメモリユニットからのデータ出力を実行する。再送信後、リトライオーダレジスタ４３ａはクリアされる。
【００４３】
リトライオーダレジスタ４３ａへの識別番号の書込みは、送信側通信プロトコル制御部４９が担当しており、このために、送信側通信プロトコル制御部４９は実質的に図１１のフローチャートに示す処理を実行している。
図１１の処理は、所定のデータ送出タイミング毎に実行され、先ず送信済みのフレームについて受信側通信プロトコル制御部３７から受信確認情報（受信確認識別番号）が送られてきているか否かによって、その送信済みのフレームの送信が適正に完了したか否かを確認する（ステップ＃１１）。
後述する識別番号のやり取りの事例によって説明するが、受信確認識別番号は、データの送信後、設定個数のフレーム（具体的には、２フレーム）以内に戻って来る関係になっており、フレームの送信後、その送信したフレームに含まれる送信フレーム識別番号から生成された受信確認識別番号を、設定期間内（具体的には２個のフレームを送信する期間内）に受け取ったときは適正にデータの送信が完了したと判断し、受け取らなかったときは適正にデータの送信が完了しなかったものと判断する。
このような判断のために、送信側通信プロトコル制御部４９は、送信の完了したフレームの識別番号（ライトオーダカウンタ４１によって設定された送信フレーム識別番号）の履歴情報を管理している。
【００４４】
適正にデータの送信が完了したと判断したときは（ステップ＃１１）、受信確認識別番号と同一の識別番号を保持しているメモリユニット制御レジスタ４２のメモリユニットステータスレジスタ２０２の情報を「データ無し」に書き換えて、そのレジスタに対応している送信バッファメモリ２１のメモリユニットに後続のデータを書込み可能な状態とする（ステップ＃１２）。すなわち、この時点まで、送信済みのフレームのデータは、送信バッファメモリ２１に保持されている。対応するメモリユニット制御レジスタ４２の記憶内容についても同様である。
逆に、これから送信しようとするフレームよりも３フレーム以上前の送信済みフレームについて、受信側通信プロトコル制御部３７から受信確認識別番号を受け取れず、適正にデータの送信が完了しなかったと判断したときは（ステップ＃１１）、そのフレームの識別番号をリードオーダカウンタ４３に備えられているリトライオーダレジスタ４３ａに書込む（ステップ＃１３）。
【００４５】
この後、送信側通信プロトコル制御部４９は、受信側通信プロトコル制御部３７から受け取った送信フレーム識別番号をそのまま受信確認識別番号として使用して、送信フレーム生成回路４４へ送り（ステップ＃１４）、更に、リードオーダカウンタ４３に対してデータ出力指示を送出する（ステップ＃１５）。ここで送信フレーム生成回路４４へ送る受信確認識別番号は、この時点で通信の相手先の機器Ａ，Ｂから受信している最新のフレームについての受信確認情報となっている。
リードオーダカウンタ４３は、この送信側通信プロトコル制御部４９からのデータ送出指示によって、上述のように出力側切換え回路４６を切換え操作し、送信バッファメモリ２１からデータを出力させ、併せて、その一群のデータの識別番号（すなわち、その１群のデータにより構成されるフレームの送信フレーム識別番号）を送信フレーム生成回路４４へ送る。
送信フレーム生成回路４４は、送信バッファメモリ２１から受け取ったデータによって「フレームチェックコード」ブロック１０３に記述するデータを生成して、その生成したデータと、送信対象のデータと、リードオーダカウンタ４３から受け取った送信フレーム識別番号と、送信側通信プロトコル制御部４９から受け取った受信確認識別番号とを合わせて、図３（ａ）に示す構成のフレームを生成する。
このようにフレームを生成すると、通信の相手先の通信回路１へ生成したフレームを送出する。
【００４６】
上述のデータ受信部１２及びデータ送信部１１の動作におけるフレームステータスの取扱いをまとめると、図３（ｃ）に示すように、受信したフレームのフレームステータスから送信フレーム識別番号を抜き出して、その送信フレーム識別番号をそのまま受信確認識別番号として使用してフレームを構成し、そのフレームによるデータ送信に便乗して受信確認識別番号を通信の相手側に送り返している。
この操作を通信当事者間で相互に行うことで、適正にデータが送信されたか否かを相互に確認できる。
このやり取りを実際のデータの送受信のタイミングによって示すと、図５に示すような関係となる。
図５では、上段がデータ送信部１１からの送信出力を示しており、下段がデータ受信部１２への受信を示しており、各フレームについての送信フレーム識別番号と受信確認識別番号とを「送信フレーム識別番号」−「受信確認識別番号」と対にして表示している。
たとえば、「フレーム＃２−＃１」は、そのフレームの送信フレーム識別番号が「２」であり、そのフレームを利用して送信する受信確認識別番号が「１」であることを示している。
図５（ａ）は送信したフレームの受信確認識別番号が比較的早いタイミングで戻ってくる場合を示しており、図５（ｂ）は比較的遅いタイミングで戻ってくる場合を示している。
いずれも、矢印の基端位置で送信の完了したフレームについて、矢印の先端位置で示すフレームによって受信確認識別番号が返ってくることを示しており、破線Ｒの位置で送信の完了したフレームについて、２点鎖線Ｓの位置で受信確認識別番号の受信が完了している。
図５からも読み取れるように、ワーストケースでも送信が完了してから２フレーム以内で受信確認識別番号を受け取ることができるように構成されている。
従って、受信確認識別番号を待機する設定期間を２フレームの期間と設定している。
【００４７】
次ぎに、送受信の過程でエラーが発生した場合の事例について、図６に基づいて説明する。
図６の各部の表示態様は図５のものと共通としてある。
図６（ａ）は、送信したフレームを通信の相手先が受信したときにエラーが発生して、通信の相手先において適正にデータを受け取ることができなかった場合を示しており、図６（ｂ）は、送信したフレームは通信の相手先に到達し、通信の相手先が受信確認識別番号を送り返してきたが、その受信確認識別番号を送り返してきたフレームを適正に受信できなかった場合を示している。
図６（ａ）では、フレームＦ１で送信したデータについて、フレームＦ２で受信確認識別番号が返ってくるはずのところが、フレームＦ２の受信確認識別番号は「０」となっており、フレームＦ３の送信開始時点で、３フレーム以上前の送信フレームであるフレームＦ１のデータを適正に送信できなかったと確認して、フレームＦ３においてフレームＦ１を同じ識別番号で再送信している。すなわち、通信エラーの発生したフレームから３フレーム目で必ずそのエラーの発生したフレームが再送信される関係になっている。
又、図６（ｂ）では、フレームＦ４で送信したデータについて、フレームＦ５で受信確認識別番号が返ってくるはずのところが、フレームＦ５の受信に失敗し、フレームＦ６の送信開始時点で、３フレーム以上前の送信フレームであるフレームＦ１のデータを適正に送信できなかったと確認して、フレームＦ６においてフレームＦ４を同じ識別番号で再送信している。フレームＦ５の受信を失敗したために、フレームＦ６の受信確認識別番号は「０」となっている。このフレームＦ６で送信するデータについては、フレームＦ４で送信済みのデータが通信の相手先の受信バッファメモリ２２に記憶されているので、フィルタ回路３２によって受取りが拒否されることになる。
【００４８】
〔別実施形態〕
以下、本発明の別実施形態を列記する。
（１）上記実施の形態では、データ受信部１２で受け取ったフレームの送信フレーム識別番号を、データ送信部１１においてそのまま受信確認識別番号として送信出力しているが、送信フレーム識別番号から受信確認識別番号を生成する規則は、受信確認識別番号からもとの送信フレーム識別番号が認識可能なものであれば任意の規則を用いることができる。
（２）上記実施の形態では、機器Ａ，Ｂで画像処理の処理部分を分担し、処理過程にある画像データをリアルタイム的に授受する場合を例示しているが、複数の機器が連係して動作するようなシステムにおいて、各機器の制御データを授受するような場合にも本発明を適用できる。
（３）上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
（４）上記実施の形態では、データ送信部１１及びデータ受信部１２をＦＰＧＡ上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にＤＳＰ等を利用してソフトウェアによる処理に置き換えても良い。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の形態にかかる概略ブロック構成図
【図２】本発明の実施の形態にかかる要部ブロック構成図
【図３】本発明の実施の形態にかかるフレーム及びそれの送受信を説明する図
【図４】本発明の実施の形態にかかるメモリユニット制御レジスタの構成の説明図
【図５】本発明の実施の形態にかかる基本的なフレームの送受信タイミングの説明図
【図６】本発明の実施の形態にかかるエラー時におけるフレームの送受信タイミングの説明図
【図７】本発明の実施の形態にかかる送信バッファメモリの入出力を説明する図
【図８】本発明の実施の形態にかかるデータ受信部でのデータを受信とそれの出力を説明する図
【図９】本発明の実施の形態にかかるデータ受信部でのデータを受信とそれの出力を説明する図
【図１０】本発明の実施の形態にかかるフローチャート
【図１１】本発明の実施の形態にかかるフローチャート
【符号の説明】
【００５０】
Ａ，Ｂ  機器
ＣＣ    送信側通信制御手段
ＲＣ    読出し制御手段
１１    データ送信部
１２    データ受信部
２１    送信バッファメモリ
２２    受信バッファメモリ
【図１】
2007028132.tif 000003
【図２】
2007028132.tif 000004
【図３】
2007028132.tif 000005
【図４】
2007028132.tif 000006
【図５】
2007028132.tif 000007
【図６】
2007028132.tif 000008
【図７】
2007028132.tif 000009
【図８】
2007028132.tif 000010
【図９】
2007028132.tif 000011
【図１０】
2007028132.tif 000012
【図１１】
2007028132.tif 000013