JP2007028122A - 通信システム - Google Patents
通信システム Download PDFInfo
- Publication number
- JP2007028122A JP2007028122A JP2005206351A JP2005206351A JP2007028122A JP 2007028122 A JP2007028122 A JP 2007028122A JP 2005206351 A JP2005206351 A JP 2005206351A JP 2005206351 A JP2005206351 A JP 2005206351A JP 2007028122 A JP2007028122 A JP 2007028122A
- Authority
- JP
- Japan
- Prior art keywords
- data
- frame
- communication
- unit
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 123
- 238000004891 communication Methods 0.000 title claims abstract description 123
- 238000012790 confirmation Methods 0.000 claims description 67
- 230000007175 bidirectional communication Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 136
- 230000006641 stabilisation Effects 0.000 abstract description 2
- 238000011105 stabilization Methods 0.000 abstract description 2
- 238000000926 separation method Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
【課題】通信の安定化を確保しながら、可及的に通信速度を向上させる。
【解決手段】送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を構成する通信システムにおいて、前記単位データ群のデータサイズが固定的に設定され、通信の相手先に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その単位データ群を特定するための識別情報と、その時点で通信の相手先から受信している最新の前記単位データ群を特定するための識別情報から生成した受信確認情報とを含めるように構成されると共に、前記単位データ群を送信後、前記受信確認情報を、設定個数の前記単位データ群を送信又は受信する前に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信する。
【選択図】図2
【解決手段】送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を構成する通信システムにおいて、前記単位データ群のデータサイズが固定的に設定され、通信の相手先に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その単位データ群を特定するための識別情報と、その時点で通信の相手先から受信している最新の前記単位データ群を特定するための識別情報から生成した受信確認情報とを含めるように構成されると共に、前記単位データ群を送信後、前記受信確認情報を、設定個数の前記単位データ群を送信又は受信する前に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信する。
【選択図】図2
Description
本発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を構成する通信システムに関する。
かかる通信システムは、例えば下記特許文献1にも記載のような、送信対象のデータを複数群のデータに分割し、分割した各群のデータ夫々と通信制御用のデータとを組合わせて構成したものを夫々ひとまとまりで送受信する、いわゆるパケット通信に類する通信方式を構成するものである。
このような通信システムでは、送信側から受信側へ単にデータを送りっぱなしにするのではなく、受信側から送信側へ適正にデータの受信が完了したことを示す受信確認信号を通知して、データの安定的な送受信を行えるようにする場合が多い。
上記のような受信確認信号を利用する場合の基本的な取扱いとしては、送信側は、ひとまとまりのデータ(単位データ群)を受信側へ送信した後、受信側から前記受信確認信号が返ってくるのを待機し、受信側から前記受信確認信号を受け取って適正に送信できたことを確認すると、次の単位データ群を送信する、という取扱いである。
特開平6−37739号公報
このような通信システムでは、送信側から受信側へ単にデータを送りっぱなしにするのではなく、受信側から送信側へ適正にデータの受信が完了したことを示す受信確認信号を通知して、データの安定的な送受信を行えるようにする場合が多い。
上記のような受信確認信号を利用する場合の基本的な取扱いとしては、送信側は、ひとまとまりのデータ(単位データ群)を受信側へ送信した後、受信側から前記受信確認信号が返ってくるのを待機し、受信側から前記受信確認信号を受け取って適正に送信できたことを確認すると、次の単位データ群を送信する、という取扱いである。
従って、送信側では、1回送信した後に次に送信するまでの期間は待機している必要があり、その待機の時間の分だけ通信速度が低下してしまうことになる。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、通信の安定化を確保しながら、可及的に通信速度を向上させる点にある。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、通信の安定化を確保しながら、可及的に通信速度を向上させる点にある。
本出願の第1の発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を構成する通信システムにおいて、前記単位データ群のデータサイズが固定的に設定され、前記単位データ群による通信を制御する通信制御手段が備えられ、前記通信制御手段は、通信の相手先に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その単位データ群を特定するための識別情報と、その時点で通信の相手先から受信している最新の前記単位データ群を特定するための識別情報から生成した受信確認情報とを含めるように構成されると共に、前記単位データ群を送信後、その送信した前記単位データ群に含まれる前記識別情報から生成された前記受信確認情報を、設定個数の前記単位データ群を送信又は受信する前に受け取ることができなかったことによって、適正にデータを送信できなかったと判断したときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信するように構成されている。
すなわち、通信当事者を「P」と「Q」として、「P」と「Q」とは相互に同一構成の前記単位データ群を送信しており、「P」から「Q」に向けてひとまとまりのデータ(前記単位データ群)を送信するときに、その単位データ群の構成要素である通信制御用のデータに、その単位データ群を特定するための識別情報を含めると共に、更に、その単位データ群の送信時点で、「Q」から「P」に送られた前記単位データ群のうちの最新のものの前記識別情報から生成した受信確認情報をも含めて送信するのである。
このように受信確認情報を本来の送信対象のデータと抱き合わせで「P」から「Q」に送信することで、その単位データ群を受け取った「Q」では、受け取った単位データ群に含まれる受信確認情報から、その受信確認情報に対応する識別情報の単位データ群のデータについて適正に送信が完了したことを確認することができる。
このように受信確認情報を本来の送信対象のデータと抱き合わせで「P」から「Q」に送信することで、その単位データ群を受け取った「Q」では、受け取った単位データ群に含まれる受信確認情報から、その受信確認情報に対応する識別情報の単位データ群のデータについて適正に送信が完了したことを確認することができる。
このような構成の前記単位データ群を相互にやり取りすることで、通信当事者間相互で、適正にデータ送信が完了したことを確認でき、逆に、適正にデータの送信が完了したことを確認できなかったときには、送信が失敗したと考えられるデータについて再送信を行うのである。
このように、前記単位データ群の識別情報(換言すると、その単位データ群に含まれる本来の送信対象である一群のデータの識別情報)をベースにして受信確認情報をやり取りすることで、送信した前記単位データ群についての受信確認情報を受け取る前に、後続のデータを含む単位データ群を順次に送信しても、各単位データ群について適正に送信できたか否かを確認できる。
このように、前記単位データ群の識別情報(換言すると、その単位データ群に含まれる本来の送信対象である一群のデータの識別情報)をベースにして受信確認情報をやり取りすることで、送信した前記単位データ群についての受信確認情報を受け取る前に、後続のデータを含む単位データ群を順次に送信しても、各単位データ群について適正に送信できたか否かを確認できる。
又、本出願の第2の発明は、上記第1の発明の構成に加えて、前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている。
すなわち、前記単位データ群は、本来の送信対象となるデータが発生した時にのみ生成されて送信されるのではなく、送信したいデータが発生したか否かに拘わらず、送信対象のデータの入れ物である前記単位データ群が常時且つ連続的に通信当事者間で相互に送信されている。
送信対象のデータが発生したときは、その送信対象のデータを前記単位データ群という入れ物に載せるという取扱いになる。
これによって、通信当事者間の通信制御が簡素化できると共に、データ送信後、その単位データ群についての前記受信確認情報を受け取るまでの期間が極めて安定することになる。
すなわち、前記単位データ群は、本来の送信対象となるデータが発生した時にのみ生成されて送信されるのではなく、送信したいデータが発生したか否かに拘わらず、送信対象のデータの入れ物である前記単位データ群が常時且つ連続的に通信当事者間で相互に送信されている。
送信対象のデータが発生したときは、その送信対象のデータを前記単位データ群という入れ物に載せるという取扱いになる。
これによって、通信当事者間の通信制御が簡素化できると共に、データ送信後、その単位データ群についての前記受信確認情報を受け取るまでの期間が極めて安定することになる。
又、本出願の第3の発明は、上記第1又は第2の発明の構成に加えて、前記受信確認情報として、受信した前記単位データ群を特定するための前記識別情報をそのまま使用するように構成されている。
すなわち、受け取った前記単位データ群の識別情報から前記受信確認情報を生成するについては、通信の当事者間で受信確認情報の生成ルールが把握されており、受信確認情報を受け取った側(データの送信元)で受け取った受信確認情報と基の識別情報との対比が可能でさえあれば、任意の受信確認情報の生成ルールを適用可能であるが、前記単位データ群の識別情報をそのまま受信確認情報として利用することで、処理の簡素化を図れる。
すなわち、受け取った前記単位データ群の識別情報から前記受信確認情報を生成するについては、通信の当事者間で受信確認情報の生成ルールが把握されており、受信確認情報を受け取った側(データの送信元)で受け取った受信確認情報と基の識別情報との対比が可能でさえあれば、任意の受信確認情報の生成ルールを適用可能であるが、前記単位データ群の識別情報をそのまま受信確認情報として利用することで、処理の簡素化を図れる。
又、本出願の第4の発明は、上記第1〜第3のいずれかの発明の構成に加えて、前記識別情報は、連続番号として設定される。
すなわち、前記単位データ群を特定するための識別情報の生成については、ある程度の期間において他の単位データ群との区別が可能でさえあれば、任意に識別番号を設定できるものであるが、単純な連続番号として設定することで、識別情報を生成するための手段を簡素化できると共に、前記単位データ群が複数個存在する場合において、それらの単位データ群に含まれる本来の送信対象のデータの並び順を把握して、データを送り出す順序を設定することができる。
すなわち、前記単位データ群を特定するための識別情報の生成については、ある程度の期間において他の単位データ群との区別が可能でさえあれば、任意に識別番号を設定できるものであるが、単純な連続番号として設定することで、識別情報を生成するための手段を簡素化できると共に、前記単位データ群が複数個存在する場合において、それらの単位データ群に含まれる本来の送信対象のデータの並び順を把握して、データを送り出す順序を設定することができる。
上記第1の発明によれば、通信当事者間相互で、適正にデータ送信が完了したことを確認でき、逆に、適正にデータの送信が完了したことを確認できなかったときには、送信が失敗したと考えられるデータについて再送信を行うことができるものとしながら、各単位データ群について受信確認情報の到着を待機するようなことがなく、次から次へと前記単位データ群を送信することができる。
もって、通信の安定化を確保しながら、可及的に通信速度を向上できるものとなった。
もって、通信の安定化を確保しながら、可及的に通信速度を向上できるものとなった。
又、上記第2の発明によれば、通信当事者間の通信制御が簡素化できると共に、データ送信後、その単位データ群についての前記受信確認情報を受け取るまでの期間が極めて安定することになり、通信制御構成の簡素化を図ることができる。
又、上記第3の発明によれば、前記単位データ群の識別情報をそのまま受信確認情報として利用することで、通信制御構成の一層の簡素化を図れる。
又、上記第4の発明によれば、前記識別番号を単純な連続番号として設定することで、識別情報を生成するための手段を簡素化できると共に、前記単位データ群が複数個存在する場合において、それらの単位データ群に含まれる本来の送信対象のデータの並び順を把握して、データを送り出す順序を設定することができるので、通信制御構成を更に簡素化することができる。
又、上記第3の発明によれば、前記単位データ群の識別情報をそのまま受信確認情報として利用することで、通信制御構成の一層の簡素化を図れる。
又、上記第4の発明によれば、前記識別番号を単純な連続番号として設定することで、識別情報を生成するための手段を簡素化できると共に、前記単位データ群が複数個存在する場合において、それらの単位データ群に含まれる本来の送信対象のデータの並び順を把握して、データを送り出す順序を設定することができるので、通信制御構成を更に簡素化することができる。
以下、本発明の通信システムの実施の形態を図面に基づいて説明する。
本実施の形態では、通信システムによる通信当事者として装置Aと装置Bとを例示して説明する。
装置A,Bは、例えば複雑な画像処理の処理部分を分担して担当するものであり、多量の画像データを相互に通信する。
装置A,Bの概略的なブロック図を示す図1のように、各装置A,Bには、通信回路1と通信回路1からデータを受け取って(読出して)処理するデータ処理部2を備えている。
データ処理部2は、装置A,B間で、担当する処理部分が異なることに応じて異なる回路構成となっているが、通信回路1の構成は共通である。
本実施の形態では、通信システムによる通信当事者として装置Aと装置Bとを例示して説明する。
装置A,Bは、例えば複雑な画像処理の処理部分を分担して担当するものであり、多量の画像データを相互に通信する。
装置A,Bの概略的なブロック図を示す図1のように、各装置A,Bには、通信回路1と通信回路1からデータを受け取って(読出して)処理するデータ処理部2を備えている。
データ処理部2は、装置A,B間で、担当する処理部分が異なることに応じて異なる回路構成となっているが、通信回路1の構成は共通である。
〔通信回路1の概略構成〕
通信回路1には、データ送信部11とデータ受信部12とが備えられ、装置Aのデータ送信部11は装置Bのデータ受信部12へと接続され、装置Bのデータ送信部11は装置Aのデータ受信部12へと接続されて、装置Aの通信回路1と装置Bの通信回路1との間で1対1全二重双方向通信が構成されている。
データ受信部12には受信したデータを一時的に記憶保持する受信バッファメモリ22が備えられ、データ送信部11にはデータ処理部2にて処理されたデータを通信の相手先へ送信出力するために一時的に記憶保持する送信バッファメモリ21が備えられている。
通信回路1には、データ送信部11とデータ受信部12とが備えられ、装置Aのデータ送信部11は装置Bのデータ受信部12へと接続され、装置Bのデータ送信部11は装置Aのデータ受信部12へと接続されて、装置Aの通信回路1と装置Bの通信回路1との間で1対1全二重双方向通信が構成されている。
データ受信部12には受信したデータを一時的に記憶保持する受信バッファメモリ22が備えられ、データ送信部11にはデータ処理部2にて処理されたデータを通信の相手先へ送信出力するために一時的に記憶保持する送信バッファメモリ21が備えられている。
〔通信回路1によるデータ通信の概略〕
次に、通信回路1のデータ通信の概略について図3に基づいて説明する。
通信回路1間のデータ通信は、図3(a)に示すように、本来の送信対象のデータに複数種類の通信制御用データを付加した「フレーム」を単位として行う。
各フレームは、図3(a)に示すように、先頭にフレームの先頭部分であることを示す「フレーム検出コード」ブロック100が位置し、その後に、送信するデータに関する情報により構成される「フレームステータス」ブロック101が位置し、更に本来の送信対象のデータを配置する「データ」ブロック102が続く。この「データ」ブロック102には複数データが含まれ、各データ処理部2にて処理対象となるデータの他、各データ処理部2の動作を規定する制御用のデータを含めることもできる。
次に、通信回路1のデータ通信の概略について図3に基づいて説明する。
通信回路1間のデータ通信は、図3(a)に示すように、本来の送信対象のデータに複数種類の通信制御用データを付加した「フレーム」を単位として行う。
各フレームは、図3(a)に示すように、先頭にフレームの先頭部分であることを示す「フレーム検出コード」ブロック100が位置し、その後に、送信するデータに関する情報により構成される「フレームステータス」ブロック101が位置し、更に本来の送信対象のデータを配置する「データ」ブロック102が続く。この「データ」ブロック102には複数データが含まれ、各データ処理部2にて処理対象となるデータの他、各データ処理部2の動作を規定する制御用のデータを含めることもできる。
「データ」ブロック102の後のフレームの後端には、データが適正に転送されたか否かをCRC等により検証するためのデータを含める「フレームチェックコード」ブロック103が位置する。
上記のフレームを単位として送受信することで、「データ」ブロック102に含まれる一群のデータがひとまとまりで送信されることになる。
すなわち、フレームは、送信対象とする一群のデータ(「データ」ブロック102のデータ)と通信制御用のデータ(「データ」ブロック102以外のデータ)とにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群である。
尚、通信回路1は、高速シリアル通信を行うように構成されており、「フレーム検出コード」ブロック100の前端側には信号の伝送状態を安定化させるためのコードが組み込まれている。
フレームの各ブロック100,101,102,103のデータサイズは固定的に設定されており、従って、フレーム全体のデータサイズも固定的に設定されている。
上記のフレームを単位として送受信することで、「データ」ブロック102に含まれる一群のデータがひとまとまりで送信されることになる。
すなわち、フレームは、送信対象とする一群のデータ(「データ」ブロック102のデータ)と通信制御用のデータ(「データ」ブロック102以外のデータ)とにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群である。
尚、通信回路1は、高速シリアル通信を行うように構成されており、「フレーム検出コード」ブロック100の前端側には信号の伝送状態を安定化させるためのコードが組み込まれている。
フレームの各ブロック100,101,102,103のデータサイズは固定的に設定されており、従って、フレーム全体のデータサイズも固定的に設定されている。
各フレーム(より厳密には、各フレームに含まれる前記一群のデータ)には、各フレームを特定するための識別情報が付されている。
装置Aと装置Bとの間の通信を模式的に示す図3(b)において「フレーム#1」,「フレーム#2」,……と示すように、前記識別情報は連続番号として設定され、識別情報が付された各フレームが常時且つ連続的に相互に送受信される。
これは、フレームは、本来の送信対象のデータすなわち「データ」ブロック102に含めるべきデータの有無に拘わらず送信されることを意味しており、送信対象のデータが存在しない場合の「データ」ブロック102には、任意に設定したデータが割り付けられる。
尚、装置Aから装置Bへの送信とその逆方向の送信とは、原則として互いに依存することなく独立した送信タイミングとなっている。
装置Aと装置Bとの間の通信を模式的に示す図3(b)において「フレーム#1」,「フレーム#2」,……と示すように、前記識別情報は連続番号として設定され、識別情報が付された各フレームが常時且つ連続的に相互に送受信される。
これは、フレームは、本来の送信対象のデータすなわち「データ」ブロック102に含めるべきデータの有無に拘わらず送信されることを意味しており、送信対象のデータが存在しない場合の「データ」ブロック102には、任意に設定したデータが割り付けられる。
尚、装置Aから装置Bへの送信とその逆方向の送信とは、原則として互いに依存することなく独立した送信タイミングとなっている。
各フレームの識別情報は、例えば「1」〜「10」のように、若い番号から順に連続番号が付され、「10」の次は再び「1」に戻る。
以下、説明の都合上、前記識別情報を「識別番号」と表記する。
各フレームの「フレームステータス」ブロック101の情報はこの識別番号により構成され、具体的には、そのフレームの識別番号(以下において、「送信フレーム識別番号」と称する)と通信の相手先に送り返すための受信確認情報とを合わせたものである。
この受信確認情報とは、そのフレームの送信開始時点において、通信の相手先から受信している最新のフレームの識別番号から生成したものであり、具体的には、通信の相手先から受信している最新のフレームの識別番号をそのまま使用している。以下において、この受信確認情報を「受信確認識別番号」と称する。
このように、受信確認識別番号をフレームの送信元へ送り返すことで、その送信元はどのフレームまで適正に送信できたかを識別する受信確認情報として利用することができる。
以下において、この「フレームステータス」ブロック101に記述される送信フレーム識別番号と受信確認識別番号とを合わせた制御用のデータを「フレームステータス」と称する。
以下、説明の都合上、前記識別情報を「識別番号」と表記する。
各フレームの「フレームステータス」ブロック101の情報はこの識別番号により構成され、具体的には、そのフレームの識別番号(以下において、「送信フレーム識別番号」と称する)と通信の相手先に送り返すための受信確認情報とを合わせたものである。
この受信確認情報とは、そのフレームの送信開始時点において、通信の相手先から受信している最新のフレームの識別番号から生成したものであり、具体的には、通信の相手先から受信している最新のフレームの識別番号をそのまま使用している。以下において、この受信確認情報を「受信確認識別番号」と称する。
このように、受信確認識別番号をフレームの送信元へ送り返すことで、その送信元はどのフレームまで適正に送信できたかを識別する受信確認情報として利用することができる。
以下において、この「フレームステータス」ブロック101に記述される送信フレーム識別番号と受信確認識別番号とを合わせた制御用のデータを「フレームステータス」と称する。
次ぎに、通信回路1の具体構成及び動作を、データ送信部11及びデータ受信部12の内部構成を詳細に示す図2に基づいて説明する。尚、図2は、装置A側の通信回路1について示しているが、上述のように、装置Bの通信回路1も全く同一の構成で同一の動作をする。
〔データ受信部12の構成〕
データ受信部12には、受信した図3(a)に示す構成のフレームから本来の送信対象のデータ(「データ」ブロック102のデータ)とそれ以外の通信制御用のデータとを分離する受信フレーム分離回路31と、受信フレーム分離回路31から送られてくるフレームステータスの情報(「フレームステータス」ブロック101の情報)等から受信したフレームのデータを受入れるか否かを判別するフィルタ回路32と、上記の受信バッファメモリ22と、受信バッファメモリ22を管理するためのレジスタ群であるメモリセル制御レジスタ33と、受信バッファメモリ22から読出すデータを特定するためのリードオーダカウンタ34と、受信側において通信動作を制御する受信側通信プロトコル制御部37とが備えられている。これら各回路はFPGA上に論理回路として構成されている。
データ受信部12には、受信した図3(a)に示す構成のフレームから本来の送信対象のデータ(「データ」ブロック102のデータ)とそれ以外の通信制御用のデータとを分離する受信フレーム分離回路31と、受信フレーム分離回路31から送られてくるフレームステータスの情報(「フレームステータス」ブロック101の情報)等から受信したフレームのデータを受入れるか否かを判別するフィルタ回路32と、上記の受信バッファメモリ22と、受信バッファメモリ22を管理するためのレジスタ群であるメモリセル制御レジスタ33と、受信バッファメモリ22から読出すデータを特定するためのリードオーダカウンタ34と、受信側において通信動作を制御する受信側通信プロトコル制御部37とが備えられている。これら各回路はFPGA上に論理回路として構成されている。
受信バッファメモリ22は、図2において「メモリセル#1」〜「メモリセル#4」として示すように、4つのメモリセルから構成され、各メモリセルの夫々が1つのフレームに載せてひとまとまりで送られてくる一群のデータを記憶保持する。従って、受信バッファメモリ22は合計で4群のデータを記憶保持できる。
メモリセル制御レジスタ33は、受信バッファメモリ22が4つのメモリセルを備えているのに対応して、各メモリセルの夫々に対応したレジスタを備えている。
メモリセル制御レジスタ33の各レジスタは、図4に示すように、各レジスタが対応するメモリセルの番号(「1」〜「4」)を記録してある「メモリID」部201と、メモリセルに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリセルステータスレジスタ202と、メモリセルに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ203とから構成されている。
更に、受信バッファメモリ22のデータ入力側には、入力されてきたデータを4つのメモリセルのうちの何れか1つへ出力するように切換える入力側切換え回路35が備えられ、受信バッファメモリ22の出力側には、4つのメモリセルのうちの何れか1つを選択してデータを出力するための出力側切換え回路36が備えられている。
メモリセル制御レジスタ33は、受信バッファメモリ22が4つのメモリセルを備えているのに対応して、各メモリセルの夫々に対応したレジスタを備えている。
メモリセル制御レジスタ33の各レジスタは、図4に示すように、各レジスタが対応するメモリセルの番号(「1」〜「4」)を記録してある「メモリID」部201と、メモリセルに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリセルステータスレジスタ202と、メモリセルに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ203とから構成されている。
更に、受信バッファメモリ22のデータ入力側には、入力されてきたデータを4つのメモリセルのうちの何れか1つへ出力するように切換える入力側切換え回路35が備えられ、受信バッファメモリ22の出力側には、4つのメモリセルのうちの何れか1つを選択してデータを出力するための出力側切換え回路36が備えられている。
〔データ送信部11の構成〕
データ送信部11には、データ処理部2から受け取った1フレーム分のデータに識別番号(これがフレームの識別番号となる)を付けるライトオーダカウンタ41と、上記の送信バッファメモリ21と、送信バッファメモリ21を管理するためのレジスタ群であるメモリセル制御レジスタ42と、送信バッファメモリ21から読出すデータを特定するためのリードオーダカウンタ43と、送信バッファメモリ21から受け取ったデータによって図3(a)の構成のフレームを編成して出力する送信フレーム生成回路44と、送信側において通信動作を制御する送信側通信プロトコル制御部49とが備えられている。これら送信側の各回路もFPGA上に論理回路として構成されている。
データ送信部11には、データ処理部2から受け取った1フレーム分のデータに識別番号(これがフレームの識別番号となる)を付けるライトオーダカウンタ41と、上記の送信バッファメモリ21と、送信バッファメモリ21を管理するためのレジスタ群であるメモリセル制御レジスタ42と、送信バッファメモリ21から読出すデータを特定するためのリードオーダカウンタ43と、送信バッファメモリ21から受け取ったデータによって図3(a)の構成のフレームを編成して出力する送信フレーム生成回路44と、送信側において通信動作を制御する送信側通信プロトコル制御部49とが備えられている。これら送信側の各回路もFPGA上に論理回路として構成されている。
送信バッファメモリ21は、図2において「メモリセル#1」〜「メモリセル#4」として示すように、受信バッファメモリ22と同様に、4つのメモリセルから構成され、各メモリセルの夫々が1つのフレームに載せてひとまとまりで送信する一群のデータを記憶保持する。従って、送信バッファメモリ21も、4群のデータを記憶保持できる。
メモリセル制御レジスタ42は、送信バッファメモリ21が4つのメモリセルを備えているのに対応して、各メモリセルの夫々に対応したレジスタを備えている。
メモリセル制御レジスタ42の各レジスタは、メモリセル制御レジスタ33の各レジスタと基本構成は共通であり、図4に示すように、各レジスタが対応するメモリセルの番号(「1」〜「4」)を記録してある「メモリID」部201と、メモリセルに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリセルステータスレジスタ202と、メモリセルに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ203とから構成されている。
更に具体的には、メモリセルステータスレジスタ202に記憶保持されるステータス情報は、メモリセル制御レジスタ33では、対応するメモリセルに有効な前記一群のデータが記憶保持されているか否か(「データ有り」か「データ無し」か)を示す情報であり、メモリセル制御レジスタ42では、対応するメモリセルに前記一群のデータが記憶されているか否かを示す情報に加えて、対応するメモリセルに記憶されているデータが、「送信待ち」の状態、「送信完了後で受信確認待ち」の状態、あるいは、適正にデータ送信を行えなかったことに伴う「再送信待ち」の3状態のうちの何れの状態であるかを示す情報を記憶保持する。
更に、送信バッファメモリ21のデータ入力側には、入力されてきたデータを4つのメモリセルのうちの何れか1つへ出力するように切換える入力側切換え回路45が備えられ、送信バッファメモリ21の出力側には、4つのメモリセルのうちの何れか1つを選択してデータを出力するための出力側切換え回路46が備えられている。これらについても、受信側と同様の構成となっている。
データ送信部11のライトオーダカウンタ41,メモリセル制御レジスタ42,リードオーダカウンタ43,及び,送信側通信プロトコル制御部49、更には、データ受信部12のフィルタ回路32,メモリセル制御レジスタ33,リードオーダカウンタ34,及び,受信側通信プロトコル制御部37等によって通信制御手段CCが構成されている。
メモリセル制御レジスタ42は、送信バッファメモリ21が4つのメモリセルを備えているのに対応して、各メモリセルの夫々に対応したレジスタを備えている。
メモリセル制御レジスタ42の各レジスタは、メモリセル制御レジスタ33の各レジスタと基本構成は共通であり、図4に示すように、各レジスタが対応するメモリセルの番号(「1」〜「4」)を記録してある「メモリID」部201と、メモリセルに記憶保持されているデータの属性を示すステータス情報を記憶保持するメモリセルステータスレジスタ202と、メモリセルに記憶保持されているデータの識別番号を記憶保持する識別番号レジスタ203とから構成されている。
更に具体的には、メモリセルステータスレジスタ202に記憶保持されるステータス情報は、メモリセル制御レジスタ33では、対応するメモリセルに有効な前記一群のデータが記憶保持されているか否か(「データ有り」か「データ無し」か)を示す情報であり、メモリセル制御レジスタ42では、対応するメモリセルに前記一群のデータが記憶されているか否かを示す情報に加えて、対応するメモリセルに記憶されているデータが、「送信待ち」の状態、「送信完了後で受信確認待ち」の状態、あるいは、適正にデータ送信を行えなかったことに伴う「再送信待ち」の3状態のうちの何れの状態であるかを示す情報を記憶保持する。
更に、送信バッファメモリ21のデータ入力側には、入力されてきたデータを4つのメモリセルのうちの何れか1つへ出力するように切換える入力側切換え回路45が備えられ、送信バッファメモリ21の出力側には、4つのメモリセルのうちの何れか1つを選択してデータを出力するための出力側切換え回路46が備えられている。これらについても、受信側と同様の構成となっている。
データ送信部11のライトオーダカウンタ41,メモリセル制御レジスタ42,リードオーダカウンタ43,及び,送信側通信プロトコル制御部49、更には、データ受信部12のフィルタ回路32,メモリセル制御レジスタ33,リードオーダカウンタ34,及び,受信側通信プロトコル制御部37等によって通信制御手段CCが構成されている。
〔データ受信部12の動作〕
次に、データ受信部12の動作を説明する。
受信フレーム分離回路31が、フレーム(図3(a)を参照)の先頭の「フレーム検出コード」ブロック100のデータによってフレームデータの受取り開始を検知して、1つのフレームのデータを受け取ると、そのフレームの「フレームステータス」ブロック101のデータであるフレームステータスと本来の送信対象のデータである「データ」ブロック102のデータとを分離して、フレームステータスのデータをフィルタ回路32へ送り、「データ」ブロック102のデータ及び「フレームチェックコード」ブロック103のデータを入力側切換え回路35へ出力する。
次に、データ受信部12の動作を説明する。
受信フレーム分離回路31が、フレーム(図3(a)を参照)の先頭の「フレーム検出コード」ブロック100のデータによってフレームデータの受取り開始を検知して、1つのフレームのデータを受け取ると、そのフレームの「フレームステータス」ブロック101のデータであるフレームステータスと本来の送信対象のデータである「データ」ブロック102のデータとを分離して、フレームステータスのデータをフィルタ回路32へ送り、「データ」ブロック102のデータ及び「フレームチェックコード」ブロック103のデータを入力側切換え回路35へ出力する。
フィルタ回路32は、受信フレーム分離回路31から受信したフレームステータスの中の前記送信フレーム識別番号をメモリセル制御レジスタ33へ送る。
送信フレーム識別番号を受け取ったメモリセル制御レジスタ33は、受信バッファメモリ22の4つのメモリセルに対応する4つのレジスタのうちの空きのもの(メモリセルステータスレジスタ202の情報が「データ無し」になっているもの)に受け取った送信フレーム識別番号を書込み、その送信フレーム識別番号を書込んだレジスタに対応するメモリセルに受信フレーム分離回路31から送られてくるデータを書込むように入力側切換え回路35の接続状態を設定する。但し、この時点では、メモリセルステータスレジスタ202の情報は「データ無し」の状態を維持させる。
送信フレーム識別番号を受け取ったメモリセル制御レジスタ33は、受信バッファメモリ22の4つのメモリセルに対応する4つのレジスタのうちの空きのもの(メモリセルステータスレジスタ202の情報が「データ無し」になっているもの)に受け取った送信フレーム識別番号を書込み、その送信フレーム識別番号を書込んだレジスタに対応するメモリセルに受信フレーム分離回路31から送られてくるデータを書込むように入力側切換え回路35の接続状態を設定する。但し、この時点では、メモリセルステータスレジスタ202の情報は「データ無し」の状態を維持させる。
フィルタ回路32は、受信フレーム分離回路31から新規に受け取ったフレームに含まれる前記一群のデータの受信バッファメモリ22への書込みが完了する毎に実質的に図8のフローチャートの処理に相当する処理を実行しており、受信バッファメモリ22のデータを参照して、受信の完了した「データ」ブロック102のデータと「フレームチェックコード」ブロック103のデータとを対比することで、通信エラーを発生することなく受信できたか否かを判断し(ステップ#1)、適正に受信が完了しており(ステップ#1)、且つ、受信したフレームの送信フレーム識別番号がメモリセル制御レジスタ33のいずれかのレジスタに記憶されている識別番号のいずれとも一致せず(ステップ#3)、且つ、受信したフレームの送信フレーム識別番号が所定の識別番号の範囲内にあるとき(ステップ#4)、メモリセル制御レジスタ33に対して、受信したフレームについてのメモリセルステータスレジスタ202の情報を「データ有り」に書き換えるように指示する(ステップ#7)。メモリセルステータスレジスタ202の情報を「データ有り」と書き換えることによって、初めて正式なデータの受信として確定する。
ここで、ステップ#3における「所定の識別番号の範囲内」とは、識別番号の順序で受信バッファメモリ22から次ぎに出力すべき識別番号の値からそれに3を加えた値までの範囲内である。
この後、更に、フレームステータスの送信フレーム識別番号及び受信確認識別番号の双方を受信側通信プロトコル制御部37へ送る(ステップ#8)。
ここで、ステップ#3における「所定の識別番号の範囲内」とは、識別番号の順序で受信バッファメモリ22から次ぎに出力すべき識別番号の値からそれに3を加えた値までの範囲内である。
この後、更に、フレームステータスの送信フレーム識別番号及び受信確認識別番号の双方を受信側通信プロトコル制御部37へ送る(ステップ#8)。
受信エラーが発生したとき(ステップ#1)、受信したフレームの識別番号(送信フレーム識別番号)が既存のデータの識別番号と重複したとき(ステップ#3)、あるいは、受信したフレームの送信フレーム識別番号が前記所定の範囲内にないとき(ステップ#4)でも、送信フレーム識別番号及び受信確認識別番号の双方を受信側通信プロトコル制御部37へ送る(ステップ#8)のであるが、その際、受信エラーが発生したときは(ステップ#1)、受信側通信プロトコル制御部37へ送る送信フレーム識別番号及び受信確認識別番号は何れも「0」に設定される(ステップ#2)。
又、受信したフレームの送信フレーム識別番号が前記所定の範囲内にないとき(ステップ#4)は、送信フレーム識別番号が、メモリセル制御レジスタ33に記憶されている識別番号のうちの最も増大側の識別番号に近い値であるときは(ステップ#5)、送信フレーム識別番号を「0」に設定する(ステップ#6)。
又、受信したフレームの送信フレーム識別番号が前記所定の範囲内にないとき(ステップ#4)は、送信フレーム識別番号が、メモリセル制御レジスタ33に記憶されている識別番号のうちの最も増大側の識別番号に近い値であるときは(ステップ#5)、送信フレーム識別番号を「0」に設定する(ステップ#6)。
一方、送信フレーム識別番号及び受信確認識別番号をフィルタ回路32から受け取った受信側通信プロトコル制御部37は、その受け取った送信フレーム識別番号及び受信確認識別番号を送信側通信プロトコル制御部49へ送る。
送信側通信プロトコル制御部49へ送られた送信フレーム識別番号は、受信確認識別番号として、その送信フレーム識別番号を生成した通信の相手先の通信回路1のデータ受信部12へ送り返すのに利用され、又、送信側通信プロトコル制御部49へ送られた受信確認識別番号は、送信側通信プロトコル制御部49において、1つのフレームのデータが適正に受信されたことを確認するのに利用される。
送信側通信プロトコル制御部49へ送られた送信フレーム識別番号は、受信確認識別番号として、その送信フレーム識別番号を生成した通信の相手先の通信回路1のデータ受信部12へ送り返すのに利用され、又、送信側通信プロトコル制御部49へ送られた受信確認識別番号は、送信側通信プロトコル制御部49において、1つのフレームのデータが適正に受信されたことを確認するのに利用される。
受信フレーム分離回路31が受信する後続のフレームについても上記の処理が繰り返され、受信フレーム分離回路31が受け取ったフレームに含まれる送信対象のデータが受信バッファメモリ22に順次に書込まれていくと、それと並行して、受信バッファメモリ22のデータが読出されて、データ処理部2へ出力される。
受信バッファメモリ22からのデータの読出しは、リードオーダカウンタ34が管理する。
上述のようにフレームの識別番号が「1」〜「10」の範囲で付されるときは、リードオーダカウンタ34はその範囲でカウントを実行する。
リードオーダカウンタ34は、メモリセル制御レジスタ33を参照して、カウント値と一致する識別番号のデータがいずれかのメモリセルに存在していれば、そのメモリセルのデータを出力するように出力側切換え回路36の接続を切換え、メモリセルからのデータの送出が完了するとカウント値をインクリメント(+1)してカウントアップし、「10」の次は「1」に戻る。
一方、メモリセル制御レジスタ33にカウント値と一致する識別番号が記憶されていなければ、その識別番号のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
受信バッファメモリ22からのデータの読出しは、リードオーダカウンタ34が管理する。
上述のようにフレームの識別番号が「1」〜「10」の範囲で付されるときは、リードオーダカウンタ34はその範囲でカウントを実行する。
リードオーダカウンタ34は、メモリセル制御レジスタ33を参照して、カウント値と一致する識別番号のデータがいずれかのメモリセルに存在していれば、そのメモリセルのデータを出力するように出力側切換え回路36の接続を切換え、メモリセルからのデータの送出が完了するとカウント値をインクリメント(+1)してカウントアップし、「10」の次は「1」に戻る。
一方、メモリセル制御レジスタ33にカウント値と一致する識別番号が記憶されていなければ、その識別番号のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
以上のデータの受信の過程を、図7に示す受信事例によって説明する。
図7の「受信範囲」として示す最上段は、図8のフローチャートのステップ#4の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部12へ入力されるフレームの入力タイミングと各フレームの識別番号(送信フレーム識別番号)とを示しており、更に次段の「受信バッファメモリ」は、(1)〜(4)で示す各メモリセルの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部12からデータ処理部2へ出力されるデータの出力タイミングと識別番号とを示している。
尚、図7中、例えば「Data[#1]」とは、識別番号が「1」のフレームのデータ(本来の送信対象のデータ)という意味である。
図7の「受信範囲」として示す最上段は、図8のフローチャートのステップ#4の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部12へ入力されるフレームの入力タイミングと各フレームの識別番号(送信フレーム識別番号)とを示しており、更に次段の「受信バッファメモリ」は、(1)〜(4)で示す各メモリセルの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部12からデータ処理部2へ出力されるデータの出力タイミングと識別番号とを示している。
尚、図7中、例えば「Data[#1]」とは、識別番号が「1」のフレームのデータ(本来の送信対象のデータ)という意味である。
図7の事例では、「受信フレーム」の段に示すように、フレームの受信順序が各種のエラーの発生により、「3」,「1」,「4」,「3」,「2」,「受信エラー」,「受信エラー」,「2」,……となった場合を例示しており、この「受信エラー」とは図8のフローチャートのステップ#1の処理での受信エラーを示しており、識別番号の周囲を右下がりの斜線で囲んでいるもの(2回目の「3」及び「2」のフレーム)は、図8のフローチャートのステップ#3あるいはステップ#4の処理で、フィルタ回路32がデータの受取りを拒否した場合を示している。
順を追って説明していくと、受信バッファメモリ22から未だデータを出力していない状態では受信範囲は「1」〜「4」であり、送信フレーム番号が「3」,「1」,「4」のフレームが順次に入力されてくると、それらのフレームのデータが順次に受信バッファメモリ22へ書込まれて行く。
この状態では、リードオーダカウンタ34のカウント値は「1」であるので、識別番号が「1」のフレームのデータの書込みが完了した後に、識別番号が「4」のフレームのデータが受信バッファメモリ22へ書込まれている間に、そのカウント値と一致する「1」のデータがデータ処理部2へ出力される。
識別番号が「1」のデータを出力するにともなって、「受信範囲」は「2」〜「5」に変化し、又、識別番号が「4」のフレームのデータの次ぎに入力される識別番号が「3」のフレームのデータについては、既に受信バッファメモリ22に識別番号が「3」のデータが記憶されているので、フィルタ回路32によって受取りが拒否される。
この後、識別番号が「2」のフレームのデータが入力されると、その書込みが完了した後にデータ処理部2へ出力され、更に「3」、「4」と続いて出力される。
この間、データ処理部2へのデータの出力に伴って「受信範囲」も変化し、2度の「受信エラー」の後に入力された識別番号が「2」のフレームのデータは、フィルタ回路32によって受取りが拒否される。
この状態では、リードオーダカウンタ34のカウント値は「1」であるので、識別番号が「1」のフレームのデータの書込みが完了した後に、識別番号が「4」のフレームのデータが受信バッファメモリ22へ書込まれている間に、そのカウント値と一致する「1」のデータがデータ処理部2へ出力される。
識別番号が「1」のデータを出力するにともなって、「受信範囲」は「2」〜「5」に変化し、又、識別番号が「4」のフレームのデータの次ぎに入力される識別番号が「3」のフレームのデータについては、既に受信バッファメモリ22に識別番号が「3」のデータが記憶されているので、フィルタ回路32によって受取りが拒否される。
この後、識別番号が「2」のフレームのデータが入力されると、その書込みが完了した後にデータ処理部2へ出力され、更に「3」、「4」と続いて出力される。
この間、データ処理部2へのデータの出力に伴って「受信範囲」も変化し、2度の「受信エラー」の後に入力された識別番号が「2」のフレームのデータは、フィルタ回路32によって受取りが拒否される。
〔データ送信部11の基本動作〕
次に、データ送信部11の動作を説明する。
データ処理部2は、上記フレームの「データ」ブロック102のデータ量を単位として繰り返しデータを出力し、ライトオーダカウンタ41は、データ処理部2が1フレーム分のデータを出力するたびにそれを検出してカウント値をインクリメント(+1)してカウントアップして行く。
次に、データ送信部11の動作を説明する。
データ処理部2は、上記フレームの「データ」ブロック102のデータ量を単位として繰り返しデータを出力し、ライトオーダカウンタ41は、データ処理部2が1フレーム分のデータを出力するたびにそれを検出してカウント値をインクリメント(+1)してカウントアップして行く。
ライトオーダカウンタ41のカウント値の範囲は、フレームの識別番号の範囲に一致させてあり、上述の場合では「1」〜「10」の範囲で、「10」の次は「1」に戻ってカウントアップする。
ライトオーダカウンタ41のカウント値はメモリセル制御レジスタ42へ入力され、そのカウント値を受け取ったメモリセル制御レジスタ42は、送信バッファメモリ21の4つのメモリセルに対応する4つのレジスタのうちの空きのものに受け取ったカウント値を書込み、そのカウント値を書込んだレジスタに対応するメモリセルにデータ処理部2から送られてくるデータを書込むように入力側切換え回路45の接続状態を設定する。
これによってデータ処理部2から送られてくるデータが、順次に送信バッファメモリ21のメモリセルへ書込まれて行き、メモリセル制御レジスタ42へ書込まれるライトオーダカウンタ41のカウント値は、1フレームとしてひとまとまりで送信される一群のデータの識別情報(具体的には、識別番号)となる。
ライトオーダカウンタ41のカウント値はメモリセル制御レジスタ42へ入力され、そのカウント値を受け取ったメモリセル制御レジスタ42は、送信バッファメモリ21の4つのメモリセルに対応する4つのレジスタのうちの空きのものに受け取ったカウント値を書込み、そのカウント値を書込んだレジスタに対応するメモリセルにデータ処理部2から送られてくるデータを書込むように入力側切換え回路45の接続状態を設定する。
これによってデータ処理部2から送られてくるデータが、順次に送信バッファメモリ21のメモリセルへ書込まれて行き、メモリセル制御レジスタ42へ書込まれるライトオーダカウンタ41のカウント値は、1フレームとしてひとまとまりで送信される一群のデータの識別情報(具体的には、識別番号)となる。
送信バッファメモリ21からのデータの読出しは、リードオーダカウンタ43が管理する。
ライトオーダカウンタ41により「1」〜「10」のカウント値が出力されるときは、リードオーダカウンタ43はその範囲でカウントを実行する。
リードオーダカウンタ43は、送信側通信プロトコル制御部49からのデータ出力指示を受け取ると、メモリセル制御レジスタ42を参照して、カウント値と一致する識別番号のデータがいずれかのメモリセルに存在していれば、そのメモリセルのデータを出力するように出力側切換え回路46の接続を切換え、メモリセルからのデータの出力が完了するとカウント値をインクリメント(+1)してカウントアップする。
リードオーダカウンタ43は、このようにカウント値をデータ送出タイミング毎に順次にカウントアップしてデータを送り出していくというのが基本的な動作であるが、データを適正に送信できなかったときに送信済みのフレームを再送信するという動作にも対応している。
リードオーダカウンタ43には、再送信を要するフレームの識別番号を記憶保持するためのレジスタであるリトライオーダレジスタ43aが備えられており、このリトライオーダレジスタ43aに識別番号が書込まれているとき、上述のカウント値によるデータ出力に優先して、リトライオーダレジスタ43aに書込まれている識別番号のデータを記憶したメモリセルからのデータ出力を実行する。再送信後、リトライオーダレジスタ43aはクリアされる。
ライトオーダカウンタ41により「1」〜「10」のカウント値が出力されるときは、リードオーダカウンタ43はその範囲でカウントを実行する。
リードオーダカウンタ43は、送信側通信プロトコル制御部49からのデータ出力指示を受け取ると、メモリセル制御レジスタ42を参照して、カウント値と一致する識別番号のデータがいずれかのメモリセルに存在していれば、そのメモリセルのデータを出力するように出力側切換え回路46の接続を切換え、メモリセルからのデータの出力が完了するとカウント値をインクリメント(+1)してカウントアップする。
リードオーダカウンタ43は、このようにカウント値をデータ送出タイミング毎に順次にカウントアップしてデータを送り出していくというのが基本的な動作であるが、データを適正に送信できなかったときに送信済みのフレームを再送信するという動作にも対応している。
リードオーダカウンタ43には、再送信を要するフレームの識別番号を記憶保持するためのレジスタであるリトライオーダレジスタ43aが備えられており、このリトライオーダレジスタ43aに識別番号が書込まれているとき、上述のカウント値によるデータ出力に優先して、リトライオーダレジスタ43aに書込まれている識別番号のデータを記憶したメモリセルからのデータ出力を実行する。再送信後、リトライオーダレジスタ43aはクリアされる。
リトライオーダレジスタ43aへの識別番号の書込みは、送信側通信プロトコル制御部49が担当しており、このために、送信側通信プロトコル制御部49は実質的に図9のフローチャートに示す処理を実行している。
図9の処理は、所定のデータ送出タイミング毎に実行され、先ず送信済みのフレームについて受信側通信プロトコル制御部37から受信確認情報(受信確認識別番号)が送られてきているか否かによって、その送信済みのフレームの送信が適正に完了したか否かを確認する(ステップ#11)。
後述する識別番号のやり取りの事例によって説明するが、受信確認識別番号は、データの送信後、設定個数のフレーム(具体的には、2フレーム)以内に戻って来る関係になっており、フレームの送信後、その送信したフレームに含まれる送信フレーム識別番号から生成された受信確認識別番号を、設定個数(具体的には2個)のフレームを送信(又は受信)する前に受け取ったときは適正にデータの送信が完了したと判断し、受け取らなかったときは適正にデータの送信が完了しなかったものと判断する。
このような判断のために、送信側通信プロトコル制御部49は、送信の完了したフレームの識別番号(ライトオーダカウンタ41によって設定された送信フレーム識別番号)の履歴情報を管理している。
図9の処理は、所定のデータ送出タイミング毎に実行され、先ず送信済みのフレームについて受信側通信プロトコル制御部37から受信確認情報(受信確認識別番号)が送られてきているか否かによって、その送信済みのフレームの送信が適正に完了したか否かを確認する(ステップ#11)。
後述する識別番号のやり取りの事例によって説明するが、受信確認識別番号は、データの送信後、設定個数のフレーム(具体的には、2フレーム)以内に戻って来る関係になっており、フレームの送信後、その送信したフレームに含まれる送信フレーム識別番号から生成された受信確認識別番号を、設定個数(具体的には2個)のフレームを送信(又は受信)する前に受け取ったときは適正にデータの送信が完了したと判断し、受け取らなかったときは適正にデータの送信が完了しなかったものと判断する。
このような判断のために、送信側通信プロトコル制御部49は、送信の完了したフレームの識別番号(ライトオーダカウンタ41によって設定された送信フレーム識別番号)の履歴情報を管理している。
適正にデータの送信が完了したと判断したときは(ステップ#11)、受信確認識別番号と同一の識別番号を保持しているメモリセル制御レジスタ42のメモリセルステータスレジスタ202の情報を「データ無し」に書き換えて、そのレジスタに対応している送信バッファメモリ21のメモリセルに後続のデータを書込み可能な状態とする(ステップ#12)。すなわち、この時点まで、送信済みのフレームのデータは、送信バッファメモリ21に保持されている。対応するメモリセル制御レジスタ42の記憶内容についても同様である。
逆に、これから送信しようとするフレームよりも3フレーム以上前の送信済みフレームについて、受信側通信プロトコル制御部37から受信確認識別番号を受け取れず、適正にデータの送信が完了しなかったと判断したときは(ステップ#11)、そのフレームの識別番号をリードオーダカウンタ43に備えられているリトライオーダレジスタ43aに書込む(ステップ#13)。
逆に、これから送信しようとするフレームよりも3フレーム以上前の送信済みフレームについて、受信側通信プロトコル制御部37から受信確認識別番号を受け取れず、適正にデータの送信が完了しなかったと判断したときは(ステップ#11)、そのフレームの識別番号をリードオーダカウンタ43に備えられているリトライオーダレジスタ43aに書込む(ステップ#13)。
この後、送信側通信プロトコル制御部49は、受信側通信プロトコル制御部37から受け取った送信フレーム識別番号をそのまま受信確認識別番号として使用して、送信フレーム生成回路44へ送り(ステップ#14)、更に、リードオーダカウンタ43に対してデータ出力指示を送出する(ステップ#15)。
リードオーダカウンタ43は、この送信側通信プロトコル制御部49からのデータ送出指示によって、上述のように出力側切換え回路46を切換え操作し、送信バッファメモリ21からデータを出力させ、併せて、その一群のデータの識別番号(すなわち、その1群のデータにより構成されるフレームの送信フレーム番号)を送信フレーム生成回路44へ送る。
送信フレーム生成回路44は、送信バッファメモリ21から受け取ったデータによって「フレームチェックコード」ブロック103に記述するデータを生成して、その生成したデータと、送信対象のデータと、リードオーダカウンタ43から受け取った送信フレーム識別番号と、送信側通信プロトコル制御部49から受け取った受信確認識別番号とを合わせて、図3(a)に示す構成のフレームを生成する。
このようにフレームを生成すると、通信の相手先の通信回路1へ生成したフレームを送出する。
リードオーダカウンタ43は、この送信側通信プロトコル制御部49からのデータ送出指示によって、上述のように出力側切換え回路46を切換え操作し、送信バッファメモリ21からデータを出力させ、併せて、その一群のデータの識別番号(すなわち、その1群のデータにより構成されるフレームの送信フレーム番号)を送信フレーム生成回路44へ送る。
送信フレーム生成回路44は、送信バッファメモリ21から受け取ったデータによって「フレームチェックコード」ブロック103に記述するデータを生成して、その生成したデータと、送信対象のデータと、リードオーダカウンタ43から受け取った送信フレーム識別番号と、送信側通信プロトコル制御部49から受け取った受信確認識別番号とを合わせて、図3(a)に示す構成のフレームを生成する。
このようにフレームを生成すると、通信の相手先の通信回路1へ生成したフレームを送出する。
上述のデータ受信部12及びデータ送信部11の動作におけるフレームステータスの取扱いをまとめると、図3(c)に示すように、受信したフレームのフレームステータスから送信フレーム識別番号を抜き出して、その送信フレーム識別番号をそのまま受信確認識別番号として使用してフレームを構成し、そのフレームによるデータ送信に便乗して受信確認識別番号を通信の相手側に送り返している。
この操作を通信当事者間で相互に行うことで、適正にデータが送信されたか否かを相互に確認できる。
このやり取りを実際のデータの送受信のタイミングによって示すと、図5に示すような関係となる。
図5では、上段がデータ送信部11からの送信出力を示しており、下段がデータ受信部12への受信を示しており、各フレームについての送信フレーム識別番号と受信確認識別番号とを「送信フレーム識別番号」−「受信確認識別番号」と対にして表示している。
たとえば、「フレーム#2−#1」は、そのフレームの送信フレーム識別番号が「2」であり、そのフレームを利用して送信する受信確認識別番号が「1」であることを示している。
図5(a)は送信したフレームの受信確認番号が比較的早いタイミングで戻ってくる場合を示しており、図5(b)は比較的遅いタイミングで戻ってくる場合を示している。
いずれも、矢印の基端位置で送信の完了したフレームについて、矢印の先端位置で示すフレームによって受信確認識別番号が返ってくることを示しており、破線Rの位置で送信の完了したフレームについて、2点鎖線Sの位置で受信確認識別番号の受信が完了している。
図5からも読み取れるように、ワーストケースでも送信が完了してから2フレーム以内で受信確認識別番号を受け取ることができるように構成されている。
この操作を通信当事者間で相互に行うことで、適正にデータが送信されたか否かを相互に確認できる。
このやり取りを実際のデータの送受信のタイミングによって示すと、図5に示すような関係となる。
図5では、上段がデータ送信部11からの送信出力を示しており、下段がデータ受信部12への受信を示しており、各フレームについての送信フレーム識別番号と受信確認識別番号とを「送信フレーム識別番号」−「受信確認識別番号」と対にして表示している。
たとえば、「フレーム#2−#1」は、そのフレームの送信フレーム識別番号が「2」であり、そのフレームを利用して送信する受信確認識別番号が「1」であることを示している。
図5(a)は送信したフレームの受信確認番号が比較的早いタイミングで戻ってくる場合を示しており、図5(b)は比較的遅いタイミングで戻ってくる場合を示している。
いずれも、矢印の基端位置で送信の完了したフレームについて、矢印の先端位置で示すフレームによって受信確認識別番号が返ってくることを示しており、破線Rの位置で送信の完了したフレームについて、2点鎖線Sの位置で受信確認識別番号の受信が完了している。
図5からも読み取れるように、ワーストケースでも送信が完了してから2フレーム以内で受信確認識別番号を受け取ることができるように構成されている。
次ぎに、送受信の過程でエラーが発生した場合の事例について、図6に基づいて説明する。
図6の各部の表示態様は図5のものと共通としてある。
図6(a)は、送信したフレームを通信の相手先が受信したときにエラーが発生して、通信の相手先において適正にデータを受け取ることができなかった場合を示しており、図6(b)は、送信したフレームは通信の相手先に到達し、通信の相手先が受信確認識別番号を送り返してきたが、その受信確認識別番号を送り返してきたフレームを適正に受信できなかった場合を示している。
図6(a)では、フレームF1で送信したデータについて、フレームF2で受信確認識別番号が返ってくるはずのところが、フレームF2の受信確認識別番号は「0」となっており、フレームF3の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF3においてフレームF1を同じ識別番号で再送信している。
又、図6(b)では、フレームF4で送信したデータについて、フレームF5で受信確認識別番号が返ってくるはずのところが、フレームF5の受信に失敗し、フレームF6の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF6においてフレームF4を同じ識別番号で再送信している。フレームF5の受信を失敗したために、フレームF6の受信確認識別番号は「0」となっている。このフレームF6で送信するデータについては、フレームF4で送信済みのデータが通信の相手先の受信バッファメモリ22に記憶されているので、フィルタ回路32によって受取りが拒否されることになる。
図6の各部の表示態様は図5のものと共通としてある。
図6(a)は、送信したフレームを通信の相手先が受信したときにエラーが発生して、通信の相手先において適正にデータを受け取ることができなかった場合を示しており、図6(b)は、送信したフレームは通信の相手先に到達し、通信の相手先が受信確認識別番号を送り返してきたが、その受信確認識別番号を送り返してきたフレームを適正に受信できなかった場合を示している。
図6(a)では、フレームF1で送信したデータについて、フレームF2で受信確認識別番号が返ってくるはずのところが、フレームF2の受信確認識別番号は「0」となっており、フレームF3の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF3においてフレームF1を同じ識別番号で再送信している。
又、図6(b)では、フレームF4で送信したデータについて、フレームF5で受信確認識別番号が返ってくるはずのところが、フレームF5の受信に失敗し、フレームF6の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF6においてフレームF4を同じ識別番号で再送信している。フレームF5の受信を失敗したために、フレームF6の受信確認識別番号は「0」となっている。このフレームF6で送信するデータについては、フレームF4で送信済みのデータが通信の相手先の受信バッファメモリ22に記憶されているので、フィルタ回路32によって受取りが拒否されることになる。
〔別実施形態〕
以下、本発明の別実施形態を列記する。
(1)上記実施の形態では、データ受信部12で受け取ったフレームの送信フレーム識別番号を、データ送信部11においてそのまま受信確認識別番号として送信出力しているが、送信フレーム識別番号から受信確認識別番号を生成する規則は、受信確認識別番号からもとの送信フレーム識別番号が認識可能なものであれば任意の規則を用いることができる。
(2)上記実施の形態では、フレームを特定するための識別情報として、連続番号を用いる場合を例示しているが、各フレームを他のフレームと区別できるものであれば、任意の識別用のデータを用いることができる。
(3)上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
(4)上記実施の形態では、データ送信部11及びデータ受信部12をFPGA上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にDSP等を利用してソフトウェアによる処理に置き換えても良い。
以下、本発明の別実施形態を列記する。
(1)上記実施の形態では、データ受信部12で受け取ったフレームの送信フレーム識別番号を、データ送信部11においてそのまま受信確認識別番号として送信出力しているが、送信フレーム識別番号から受信確認識別番号を生成する規則は、受信確認識別番号からもとの送信フレーム識別番号が認識可能なものであれば任意の規則を用いることができる。
(2)上記実施の形態では、フレームを特定するための識別情報として、連続番号を用いる場合を例示しているが、各フレームを他のフレームと区別できるものであれば、任意の識別用のデータを用いることができる。
(3)上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
(4)上記実施の形態では、データ送信部11及びデータ受信部12をFPGA上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にDSP等を利用してソフトウェアによる処理に置き換えても良い。
CC 通信制御手段
11 データ送信部
12 データ受信部
11 データ送信部
12 データ受信部
Claims (4)
- 送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を構成する通信システムであって、
前記単位データ群のデータサイズが固定的に設定され、
前記単位データ群による通信を制御する通信制御手段が備えられ、
前記通信制御手段は、通信の相手先に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その単位データ群を特定するための識別情報と、その時点で通信の相手先から受信している最新の前記単位データ群を特定するための識別情報から生成した受信確認情報とを含めるように構成されると共に、
前記単位データ群を送信後、その送信した前記単位データ群に含まれる前記識別情報から生成された前記受信確認情報を、設定個数の前記単位データ群を送信又は受信する前に受け取ることができなかったことによって、適正にデータを送信できなかったと判断したときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信するように構成されている通信システム。 - 前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている請求項1記載の通信システム。
- 前記受信確認情報として、受信した前記単位データ群を特定するための前記識別情報をそのまま使用するように構成されている請求項1又は2記載の通信システム。
- 前記識別情報は、連続番号として設定される請求項1〜3のいずれか1項に記載の通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005206351A JP2007028122A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005206351A JP2007028122A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007028122A true JP2007028122A (ja) | 2007-02-01 |
Family
ID=37788302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005206351A Pending JP2007028122A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007028122A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07131482A (ja) * | 1993-11-05 | 1995-05-19 | Hitachi Ltd | 網内通信制御処理方式 |
JPH09191384A (ja) * | 1996-01-10 | 1997-07-22 | Nec Corp | 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式 |
JPH1155314A (ja) * | 1997-07-30 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | データ転送制御方法 |
JP2001211145A (ja) * | 2000-01-25 | 2001-08-03 | Mitsubishi Electric Corp | 伝送システム及び伝送方法 |
JP2003528513A (ja) * | 2000-03-23 | 2003-09-24 | モトローラ・インコーポレイテッド | 分散構成デジタル無線通信システムを提供するための方法及び装置 |
-
2005
- 2005-07-15 JP JP2005206351A patent/JP2007028122A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07131482A (ja) * | 1993-11-05 | 1995-05-19 | Hitachi Ltd | 網内通信制御処理方式 |
JPH09191384A (ja) * | 1996-01-10 | 1997-07-22 | Nec Corp | 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式 |
JPH1155314A (ja) * | 1997-07-30 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | データ転送制御方法 |
JP2001211145A (ja) * | 2000-01-25 | 2001-08-03 | Mitsubishi Electric Corp | 伝送システム及び伝送方法 |
JP2003528513A (ja) * | 2000-03-23 | 2003-09-24 | モトローラ・インコーポレイテッド | 分散構成デジタル無線通信システムを提供するための方法及び装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2503086B2 (ja) | デ―タ・リンク制御方法 | |
CN101432629B (zh) | 同步数据通信 | |
US5777987A (en) | Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver | |
CN101645766B (zh) | 实现数据包重发的方法、装置及系统 | |
EP1198105A2 (en) | High speed transmission line interface | |
US9596193B2 (en) | Messaging with flexible transmit ordering | |
JP2778373B2 (ja) | 再送機能付きバッファ装置 | |
US20090225775A1 (en) | Serial Buffer To Support Reliable Connection Between Rapid I/O End-Point And FPGA Lite-Weight Protocols | |
US20240146806A1 (en) | Intermediate apparatus, communication method, and program | |
JPH0320094B2 (ja) | ||
JP2007028122A (ja) | 通信システム | |
KR100859499B1 (ko) | 데이터 송수신 방법 및 그에 따른 통신 시스템 | |
KR20120042745A (ko) | 비접속 환경에서 신뢰적인 통신을 수립하기 위한 방법 및 시스템 | |
JP2007028132A (ja) | 通信システム | |
CN109698843A (zh) | 一种实现数据传输的方法及装置 | |
JP2007028491A (ja) | 通信システム | |
JP6330541B2 (ja) | データ送受信システム、データ送信装置、データ送受信システムの制御方法 | |
JP2000244530A (ja) | データ通信装置 | |
JP2007028113A (ja) | データ処理ユニット | |
CN104620224A (zh) | 从先进先出传送机构的随机存取消息检索的方法 | |
JPH02190059A (ja) | バッファ制御装置 | |
JP2004349783A (ja) | 移動体通信方法及びシステム | |
JP4574223B2 (ja) | パケット処理装置 | |
JPH06252895A (ja) | データ伝送方式 | |
JP6571628B2 (ja) | サイクリック通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100803 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101207 |