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