JP2007028132A - 通信システム - Google Patents
通信システム Download PDFInfo
- Publication number
- JP2007028132A JP2007028132A JP2005206453A JP2005206453A JP2007028132A JP 2007028132 A JP2007028132 A JP 2007028132A JP 2005206453 A JP2005206453 A JP 2005206453A JP 2005206453 A JP2005206453 A JP 2005206453A JP 2007028132 A JP2007028132 A JP 2007028132A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- transmission
- frame
- group
- 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 141
- 238000004891 communication Methods 0.000 title claims abstract description 141
- 230000015654 memory Effects 0.000 claims abstract description 259
- 230000005540 biological transmission Effects 0.000 claims abstract description 202
- 238000012790 confirmation Methods 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000007175 bidirectional communication Effects 0.000 claims description 4
- 230000006641 stabilisation Effects 0.000 abstract description 2
- 238000011105 stabilization Methods 0.000 abstract description 2
- 238000000926 separation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000002360 preparation method Methods 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全二重双方向通信を行う一対の機器A,Bの双方に、送信バッファメモリ21と、受信バッファメモリ22とが備えられた通信システムにおいて、送信バッファメモリ21におけるメモリユニットの個数は、受信確認情報を待機する設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定され、受信バッファメモリ22におけるメモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群の数に1を加えた受信側最低メモリ個数以上の個数に設定されている。
【選択図】図1
【解決手段】通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器A,Bの双方に、送信バッファメモリ21と、受信バッファメモリ22とが備えられた通信システムにおいて、送信バッファメモリ21におけるメモリユニットの個数は、受信確認情報を待機する設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定され、受信バッファメモリ22におけるメモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群の数に1を加えた受信側最低メモリ個数以上の個数に設定されている。
【選択図】図1
Description
本発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムに関する。
通信システムでは、一般的に、下記特許文献1にも記載のように、受信したデータを一時的に保持する受信バッファメモリと、送信出力するためのデータを一時的に保持する送信バッファメモリとを備える構成とする場合が多い。
これは、下記特許文献1とは通信形態が異なるが、いわゆる1対1全二重双方向通信を構成する場合においても同様である。
この受信バッファメモリや送信バッファメモリの構成としては、従来、下記特許文献1に記載のような単一のFIFO構成のメモリや、データの書込みと読出しとを交互に切換える一対のバッファメモリから構成されるいわゆるピンポンバッファ構成のメモリとする場合が多い。
特開平6−276205号公報
これは、下記特許文献1とは通信形態が異なるが、いわゆる1対1全二重双方向通信を構成する場合においても同様である。
この受信バッファメモリや送信バッファメモリの構成としては、従来、下記特許文献1に記載のような単一のFIFO構成のメモリや、データの書込みと読出しとを交互に切換える一対のバッファメモリから構成されるいわゆるピンポンバッファ構成のメモリとする場合が多い。
しかしながら、上記従来構成では、近年の通信速度の高速化の要請に十分に応えるのが困難なものとなってきた。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、安定的な通信を確保しながら、通信速度を可及的に向上させる点にある。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、安定的な通信を確保しながら、通信速度を可及的に向上させる点にある。
本出願の第1の発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムにおいて、前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群を受信したことを示す受信確認情報を前記単位データ群の送信元へ送信するように構成され、前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記1群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示す情報が含まれ、前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信させる送信側通信制御手段が備えられ、前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記順序関係を示す情報に基づいて読出す読出し制御手段が備えられ、前記送信バッファメモリ及び前記受信バッファメモリは、1つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成され、前記送信バッファメモリにおける前記メモリユニットの個数は、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定され、前記受信バッファメモリにおける前記メモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群の数に1を加えた受信側最低メモリ個数以上の個数に設定されている。
すなわち、データ送信部の送信バッファメモリ及びデータ受信部の受信バッファメモリは、何れも、ひとまとまりで送信される前記単位データ群に含まれる一群のデータを1つ分だけ(1群だけ)記憶保持するメモリユニットを複数個備える構成とする。
このメモリユニットの個数は、送信側においては、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定される。
つまり、少なくとも前記送信側最低メモリ個数のメモリユニットを確保すれば、送信した前記単位データ群と、その単位データ群についての前記受信確認情報を待機している期間に送信される単位データ群とを送信バッファメモリに記憶保持させることが可能であり、それによって、データ送信部が送信出力するデータを供給する供給元の段階ではなく、データ送信部の送信バッファメモリの段階でデータの再送信機能を備えてデータ通信の安定化を図ると共に、1つの前記単位データ群の送信後、その単位データ群について適正に送信が完了したか否かの確認とは無関係に後続の単位データ群を送信してデータ通信の高速化を図れる。
このメモリユニットの個数は、送信側においては、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定される。
つまり、少なくとも前記送信側最低メモリ個数のメモリユニットを確保すれば、送信した前記単位データ群と、その単位データ群についての前記受信確認情報を待機している期間に送信される単位データ群とを送信バッファメモリに記憶保持させることが可能であり、それによって、データ送信部が送信出力するデータを供給する供給元の段階ではなく、データ送信部の送信バッファメモリの段階でデータの再送信機能を備えてデータ通信の安定化を図ると共に、1つの前記単位データ群の送信後、その単位データ群について適正に送信が完了したか否かの確認とは無関係に後続の単位データ群を送信してデータ通信の高速化を図れる。
一方、データの受信側においては、メモリユニットの個数が、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群の数に1を加えた受信側最低メモリ個数以上の個数に設定される。
つまり、受信バッファメモリからは、データの送信側で指定されている並び順で各メモリユニットのデータが出力されて行くので、ある単位データ群の受信に失敗すると、受信バッファメモリから出力する並び順が受信に失敗した単位データ群よりも後続の単位データ群については、受信に失敗した単位データ群のデータよりも先行して受信バッファメモリから後段に出力することができない。
そこで、少なくとも前記受信側最低メモリ個数のメモリユニットを確保すれば、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群と、再送信されてきた単位データ群とを受信バッファメモリに記憶保持させることが可能であり、それによって、単位データ群の受信に失敗したときでも、後続の単位データ群の受信を全て廃棄してしまうような事態を回避して、受信した単位データ群のデータを有効に活用することでデータ通信の高速化を図れる。
つまり、受信バッファメモリからは、データの送信側で指定されている並び順で各メモリユニットのデータが出力されて行くので、ある単位データ群の受信に失敗すると、受信バッファメモリから出力する並び順が受信に失敗した単位データ群よりも後続の単位データ群については、受信に失敗した単位データ群のデータよりも先行して受信バッファメモリから後段に出力することができない。
そこで、少なくとも前記受信側最低メモリ個数のメモリユニットを確保すれば、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群と、再送信されてきた単位データ群とを受信バッファメモリに記憶保持させることが可能であり、それによって、単位データ群の受信に失敗したときでも、後続の単位データ群の受信を全て廃棄してしまうような事態を回避して、受信した単位データ群のデータを有効に活用することでデータ通信の高速化を図れる。
又、本出願の第2の発明は、上記第1の発明の構成に加えて、前記送信バッファメモリにおける前記メモリユニットの個数は、前記送信側最低メモリ個数に1を加えた個数に設定され、前記受信バッファメモリにおける前記メモリユニットの個数は、前記受信側最低メモリ個数に1を加えた個数に設定されている。
すなわち、送信バッファメモリのメモリユニットの個数を前記送信側最低メモリ個数に更に1を加えた個数とし、受信バッファメモリにおいても、メモリユニットの個数を前記受信側最低メモリ個数に更に1を加えた個数とすることで、送信バッファメモリにおいては、データを再送信している間も、データの供給元から新たに書込まれる1群のデータのためにメモリユニットを確保することができ、又、受信バッファメモリにおいては、再送信されてきたデータを後段に出力している間も、後続のフレームのデータを受け取ることができ、送信バッファメモリ及び受信バッファメモリの双方においてデータの読み書きを並行して行えるいわゆるピンポンバッファの機能を更に付加することができる。
すなわち、送信バッファメモリのメモリユニットの個数を前記送信側最低メモリ個数に更に1を加えた個数とし、受信バッファメモリにおいても、メモリユニットの個数を前記受信側最低メモリ個数に更に1を加えた個数とすることで、送信バッファメモリにおいては、データを再送信している間も、データの供給元から新たに書込まれる1群のデータのためにメモリユニットを確保することができ、又、受信バッファメモリにおいては、再送信されてきたデータを後段に出力している間も、後続のフレームのデータを受け取ることができ、送信バッファメモリ及び受信バッファメモリの双方においてデータの読み書きを並行して行えるいわゆるピンポンバッファの機能を更に付加することができる。
又、本出願の第3の発明は、上記第1又は第2の発明の構成に加えて、前記単位データ群のデータサイズが固定的に設定されている。
従って、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなる。
従って、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなる。
又、本出願の第4の発明は、上記第3の発明の構成に加えて、前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている。
すなわち、固定データサイズの前記単位データ群が間断なく送受信されるので、前記受信確認情報の受取るタイミング等を正確に把握することが可能となる。
すなわち、固定データサイズの前記単位データ群が間断なく送受信されるので、前記受信確認情報の受取るタイミング等を正確に把握することが可能となる。
又、本出願の第5の発明は、上記第1〜第4のいずれかの発明の構成に加えて、前記送信側通信制御手段は、通信の相手先の機器に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その時点で通信の相手先の機器から受信している最新の前記単位データ群についての前記受信確認情報を含めるように構成されている。
すなわち、受信確認情報のやり取りのために特別の信号線や授受タイミングを設定するのではなく、受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうのである。
すなわち、受信確認情報のやり取りのために特別の信号線や授受タイミングを設定するのではなく、受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうのである。
又、本出願の第6の発明は、上記第1〜第5のいずれかの発明の構成に加えて、前記機器において、大容量データのうちの部分データの処理とその処理の完了した部分データを前記送信バッファメモリの前記メモリユニットへ書込む処理とを繰り返して、前記大容量データを処理していくように構成されている。
すなわち、例えば画像ファイルのような大容量のデータの部分部分を順次に処理して、処理の完了した箇所のデータ部分を直ちに他の機器に送信してリアルタイム的に処理して行く場合では、処理の完了した大容量のデータ全体を一旦送信バッファメモリに書込んで、その送信バッファメモリから順次に送信出力するという構成ではメモリの使用効率やデータの処理効率の観点からは極めて非効率となってしまう。
そこで、処理の完了した部分データを比較的小さいデータ量のデータ群に区分して順次に送信バッファメモリのメモリユニットへ書込んで送信出力するという構成として、大容量の送信バッファメモリを不要とすると共に、処理の完了したデータを迅速に送信出力できる。
すなわち、例えば画像ファイルのような大容量のデータの部分部分を順次に処理して、処理の完了した箇所のデータ部分を直ちに他の機器に送信してリアルタイム的に処理して行く場合では、処理の完了した大容量のデータ全体を一旦送信バッファメモリに書込んで、その送信バッファメモリから順次に送信出力するという構成ではメモリの使用効率やデータの処理効率の観点からは極めて非効率となってしまう。
そこで、処理の完了した部分データを比較的小さいデータ量のデータ群に区分して順次に送信バッファメモリのメモリユニットへ書込んで送信出力するという構成として、大容量の送信バッファメモリを不要とすると共に、処理の完了したデータを迅速に送信出力できる。
上記第1の発明によれば、機器間で送信したデータに送信エラーが発生して、適正にデータの送信が完了しなかった場合、再送信することによって通信の安定性を確保すると共に、そのような再送信の機能を備えながらも、後続の前記単位データ群を次々と送信することができ、又、受信側においてデータ受信にエラーが発生した場合でも、そのように次々と送られてくる前記単位データ群に含まれるデータを無駄にすることなく受け取ることができる。
もって、安定的な通信を確保しながら、通信速度を可及的に向上できるに至った。
もって、安定的な通信を確保しながら、通信速度を可及的に向上できるに至った。
又、上記第2の発明によれば、いわゆるピンポンバッファの機能を更に付加することで、送信バッファメモリ及び受信バッファメモリの記憶容量の増大を可及的抑制しながら、送信バッファメモリ及び受信バッファメモリにおけるデータの読み書きの並行処理が行え、更には、データ送信のエラー発生を考慮しながらも滞りなくデータを送り続けることが可能となった。
又、上記第3の発明によれば、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなるので、データの送受信のための制御構成等を簡素化することができる。
又、上記第4の発明によれば、前記受信確認情報の受取るタイミング等を正確に把握することが可能となるので、制御構成等を更に簡素化することができる。
又、上記第5の発明によれば、前記受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうので、回路構成の簡素化を図れると共に、データ通信の高速化にも寄与する。
又、上記第6の発明によれば、リアルタイム的なデータの処理と処理したデータの通信とを効率良く行うことができる。
又、上記第3の発明によれば、メモリユニットの記憶容量を過不足なく効率的に設定できると共に、送信側においては、前記受信確認情報を受け取れるタイミングを特定し易くなるので、データの送受信のための制御構成等を簡素化することができる。
又、上記第4の発明によれば、前記受信確認情報の受取るタイミング等を正確に把握することが可能となるので、制御構成等を更に簡素化することができる。
又、上記第5の発明によれば、前記受信確認情報のやり取りも前記単位データ群のやり取りに含めてしまうので、回路構成の簡素化を図れると共に、データ通信の高速化にも寄与する。
又、上記第6の発明によれば、リアルタイム的なデータの処理と処理したデータの通信とを効率良く行うことができる。
以下、本発明の通信システムの実施の形態を図面に基づいて説明する。
本実施の形態では、通信システムによる通信当事者として機器Aと機器Bとを例示して説明する。
機器A,Bは、複雑な画像処理の処理部分を分担して担当するものであり、処理の完了した画像データを機器Aから機器Bへ、あるいは、その逆方向に伝送する。
機器A,Bの概略的なブロック図を示す図1のように、各機器A,Bには、通信回路1と通信回路1からデータを受け取って(読出して)処理するデータ処理部2を備えている。
データ処理部2は、機器A,B間で、担当する処理部分が異なることに応じて異なる回路構成となっているが、通信回路1の構成は共通である。
データ処理部2で実行される処理は上述のように画像処理であることから、機器A,Bのうちの一方のデータ処理部2において、1つの画像の画像データの部分データに対して処理作用し、その部分データの処理結果のデータを通信回路1へ送って、他方のデータ処理部2を送信させる。この部分データの処理と処理の完了した部分データを通信回路1へ送る処理(より具体的には、後述する送信バッファメモリ21のメモリユニットへ書込む処理)とを繰り返して、大容量データである1つの画像の画像データについて処理をしていく。すなわち、機器A,Bの一方で、1つの画像の画像データ全てについて処理が完了するとその処理の完了した1つの画像の画像データを他方に送る、というデータの伝送形態ではなく、機器A,Bの一方から他方へ、通信回路1を経てリアルタイム的に画像処理の完了した部分データを送っている。
本実施の形態では、通信システムによる通信当事者として機器Aと機器Bとを例示して説明する。
機器A,Bは、複雑な画像処理の処理部分を分担して担当するものであり、処理の完了した画像データを機器Aから機器Bへ、あるいは、その逆方向に伝送する。
機器A,Bの概略的なブロック図を示す図1のように、各機器A,Bには、通信回路1と通信回路1からデータを受け取って(読出して)処理するデータ処理部2を備えている。
データ処理部2は、機器A,B間で、担当する処理部分が異なることに応じて異なる回路構成となっているが、通信回路1の構成は共通である。
データ処理部2で実行される処理は上述のように画像処理であることから、機器A,Bのうちの一方のデータ処理部2において、1つの画像の画像データの部分データに対して処理作用し、その部分データの処理結果のデータを通信回路1へ送って、他方のデータ処理部2を送信させる。この部分データの処理と処理の完了した部分データを通信回路1へ送る処理(より具体的には、後述する送信バッファメモリ21のメモリユニットへ書込む処理)とを繰り返して、大容量データである1つの画像の画像データについて処理をしていく。すなわち、機器A,Bの一方で、1つの画像の画像データ全てについて処理が完了するとその処理の完了した1つの画像の画像データを他方に送る、というデータの伝送形態ではなく、機器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の動作を規定する制御用のデータも、「データ」ブロック102に含めて送信することもできる。
次に、通信回路1のデータ通信の概略について図3に基づいて説明する。
通信回路1間のデータ通信は、図3(a)に示すように、本来の送信対象のデータ(本実施の形態では画像処理されたデータ)に複数種類の通信制御用データを付加した「フレーム」を単位として行う。
各フレームは、図3(a)に示すように、先頭にフレームの先頭部分であることを示す「フレーム検出コード」ブロック100が位置し、その後に、送信するデータに関する情報により構成される「フレームステータス」ブロック101が位置し、更に本来の送信対象のデータを配置する「データ」ブロック102が続く。この「データ」ブロック102には複数データが含まれ、各データ処理部2にて処理対象となる。
但し、各データ処理部2の動作を規定する制御用のデータも、「データ」ブロック102に含めて送信することもできる。
「データ」ブロック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が備えられている。
受信バッファメモリ22が4つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器A,B間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記1群のデータについて再送信する機能を有していることと、受信バッファメモリ22からのデータの出力は、上記の識別番号の順序に従って出力する必要があることとによる。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生した場合でも後続のフレームを送信し続けるようになっており、受信側では、その後続のフレームを受け取っても、先行のフレームのデータの受取りに失敗しているので、識別番号の順序を無視して、後続のフレームのデータを先行して受信バッファメモリ22から出力してしまうことはできない。又、後続のフレームの受取りを拒否してしまうと、せっかく送受信に成功したフレームのデータを再度送信しなくてはならなくなり、通信効率を低下させてしまうことになる。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生した場合でも後続のフレームを送信し続けるようになっており、受信側では、その後続のフレームを受け取っても、先行のフレームのデータの受取りに失敗しているので、識別番号の順序を無視して、後続のフレームのデータを先行して受信バッファメモリ22から出力してしまうことはできない。又、後続のフレームの受取りを拒否してしまうと、せっかく送受信に成功したフレームのデータを再度送信しなくてはならなくなり、通信効率を低下させてしまうことになる。
そこで、受信バッファメモリ22のメモリユニットの個数を、フレームの受信に失敗した後、そのフレームの前記1群のデータについて再送信されてくるまでに受信するフレームの数に1を加えた受信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、フレームの受信に失敗した後、そのフレームの前記1群のデータについて再送信されてくるまでに受信するフレームの数は「2」であり、更に再送信されてくるフレームのデータを受け取るための1個を加えた「3」が上記の受信側最低メモリ個数である。
最低限3個のメモリユニットがあれば、フレームの受信に失敗した後に送られてくる2フレームのデータと、それに引き続いて送られてくる再送信のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記受信側最低メモリ個数に更に「1」を加えた4個としている。
これによって、上記の再送信されてきたフレームのデータを受信バッファメモリ22から後段へ送出するのと並行して、送信側から後続のフレームのデータを受け取ることが可能であり、極めて効率よくデータを伝送することができる。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、フレームの受信に失敗した後、そのフレームの前記1群のデータについて再送信されてくるまでに受信するフレームの数は「2」であり、更に再送信されてくるフレームのデータを受け取るための1個を加えた「3」が上記の受信側最低メモリ個数である。
最低限3個のメモリユニットがあれば、フレームの受信に失敗した後に送られてくる2フレームのデータと、それに引き続いて送られてくる再送信のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記受信側最低メモリ個数に更に「1」を加えた4個としている。
これによって、上記の再送信されてきたフレームのデータを受信バッファメモリ22から後段へ送出するのと並行して、送信側から後続のフレームのデータを受け取ることが可能であり、極めて効率よくデータを伝送することができる。
〔データ送信部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状態のうちの何れの状態であるかを示す情報を記憶保持する。
メモリユニット制御レジスタ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によって送信側通信制御手段CCが構成されている。
データ送信部11のライトオーダカウンタ41,メモリユニット制御レジスタ42,リードオーダカウンタ43,及び,送信側通信プロトコル制御部49によって送信側通信制御手段CCが構成されている。
送信バッファメモリ21が4つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器A,B間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記1群のデータについて再送信する機能を有していることによる。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生せずに適正にデータの送信が完了したことを、上記の受信確認識別番号を受け取ったことにより確認するのであるが、この受信確認識別番号を受け取るまで、送信済みのデータを送信バッファメモリ21のメモリユニットに保持させておく必要があり、その受信確認識別番号を待つ間も、後続のフレームを送信して通信速度の高速化を図る必要がある。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生せずに適正にデータの送信が完了したことを、上記の受信確認識別番号を受け取ったことにより確認するのであるが、この受信確認識別番号を受け取るまで、送信済みのデータを送信バッファメモリ21のメモリユニットに保持させておく必要があり、その受信確認識別番号を待つ間も、後続のフレームを送信して通信速度の高速化を図る必要がある。
そこで、送信バッファメモリ21のメモリユニットの個数を、前記受信確認識別番号を待機する設定期間に送信するフレームの個数に1を加えた送信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、前記受信確認識別番号を待機する設定期間に送信するフレームの個数は「2」であり、更に再送信されるフレームのデータを記憶保持するための1個を加えた「3」が上記の送信側最低メモリ個数である。
最低限3個のメモリユニットがあれば、再送信のためのフレームのデータと、前記受信確認識別番号を待つ間に送信する2個のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記送信側最低メモリ個数に更に「1」を加えた4個としている。
これによって、送信バッファメモリ21におけるデータの入出力を示す図7(a)のように、前記受信確認識別番号を待つ間に送信する2個のフレームのデータを記憶保持すると共に(「メモリユニット#1」と「メモリユニット#2」)、上記の再送信するフレームのデータを送信バッファメモリ21から読出す(「メモリユニット#3」)のと並行して、送信対象データの供給元であるデータ処理部2から後続のフレームのデータを受け取る(「メモリユニット#4」)ことが可能であり、極めて効率よくデータを伝送することができる。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、前記受信確認識別番号を待機する設定期間に送信するフレームの個数は「2」であり、更に再送信されるフレームのデータを記憶保持するための1個を加えた「3」が上記の送信側最低メモリ個数である。
最低限3個のメモリユニットがあれば、再送信のためのフレームのデータと、前記受信確認識別番号を待つ間に送信する2個のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記送信側最低メモリ個数に更に「1」を加えた4個としている。
これによって、送信バッファメモリ21におけるデータの入出力を示す図7(a)のように、前記受信確認識別番号を待つ間に送信する2個のフレームのデータを記憶保持すると共に(「メモリユニット#1」と「メモリユニット#2」)、上記の再送信するフレームのデータを送信バッファメモリ21から読出す(「メモリユニット#3」)のと並行して、送信対象データの供給元であるデータ処理部2から後続のフレームのデータを受け取る(「メモリユニット#4」)ことが可能であり、極めて効率よくデータを伝送することができる。
これに対して、データ処理部2から送信バッファメモリ21へのデータの供給速度が遅い場合には、前記受信確認識別番号を待つ間の2個のフレーム送信期間内に送信バッファメモリ21への書込みデータ量が少なくなって、図7(b)に示すように、書込みが行われているメモリユニットと読出しが行われているメモリユニット以外では、一群のデータの保持のために1つのメモリユニットだけが使用される状態となり、更にデータの供給速度が遅くなると、図7(c)に示すように、書込みのためと読出しのためとだけにメモリユニットが使用される状態となる。
このように、通信回路1のデータ転送能力を最大限に生かした最高のデータ転送効率の条件下でメモリユニットの個数を設定しておけば、送信バッファメモリ21へのデータ供給速度が低下した場合にも柔軟に対応できる。
このように、通信回路1のデータ転送能力を最大限に生かした最高のデータ転送効率の条件下でメモリユニットの個数を設定しておけば、送信バッファメモリ21へのデータ供給速度が低下した場合にも柔軟に対応できる。
〔データ受信部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への書込みが完了する毎に実質的に図10のフローチャートの処理に相当する処理を実行しており、受信バッファメモリ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にカウント値と一致する識別番号が記憶されていなければ、その識別番号のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
これによって、メモリユニット制御レジスタ33及びリードオーダカウンタ34は、受信バッファメモリ22に書込まれた一群のデータを前記識別番号に基づいて読出す読出し制御手段RCとして機能する。
受信バッファメモリ22からのデータの読出しは、リードオーダカウンタ34が管理する。
上述のようにフレームの識別番号が「1」〜「10」の範囲で付されるときは、リードオーダカウンタ34はその範囲でカウントを実行する。
リードオーダカウンタ34は、メモリユニット制御レジスタ33を参照して、カウント値と一致する識別番号のデータがいずれかのメモリユニットに存在していれば、そのメモリユニットのデータを出力するように出力側切換え回路36の接続を切換え、メモリユニットからのデータの送出が完了するとカウント値をインクリメント(+1)してカウントアップし、「10」の次は「1」に戻る。
一方、メモリユニット制御レジスタ33にカウント値と一致する識別番号が記憶されていなければ、その識別番号のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
これによって、メモリユニット制御レジスタ33及びリードオーダカウンタ34は、受信バッファメモリ22に書込まれた一群のデータを前記識別番号に基づいて読出す読出し制御手段RCとして機能する。
以上のデータの受信の過程を、図8及び図9に示す受信事例によって説明する。
図8と図9とは、通信エラーの発生タイミングが異なるものと示している。
図8の「受信範囲」として示す最上段は、図10のフローチャートのステップ#4の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部12へ入力されるフレームの入力タイミングと各フレームの識別番号(送信フレーム識別番号)とを示しており、更に次段の「受信バッファメモリ」は、(1)〜(4)で示す各メモリユニットの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部12からデータ処理部2へ出力されるデータの出力タイミングと識別番号とを示している。
尚、図8中、例えば「Data[#1]」とは、識別番号が「1」のフレームのデータ(本来の送信対象のデータ)という意味である。
図8と図9とは、通信エラーの発生タイミングが異なるものと示している。
図8の「受信範囲」として示す最上段は、図10のフローチャートのステップ#4の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部12へ入力されるフレームの入力タイミングと各フレームの識別番号(送信フレーム識別番号)とを示しており、更に次段の「受信バッファメモリ」は、(1)〜(4)で示す各メモリユニットの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部12からデータ処理部2へ出力されるデータの出力タイミングと識別番号とを示している。
尚、図8中、例えば「Data[#1]」とは、識別番号が「1」のフレームのデータ(本来の送信対象のデータ)という意味である。
図8の事例では、「受信フレーム」の段において識別番号の周囲を右下がりの斜線で囲んだものの送信で通信エラーが発生したことを示しており、1回目の識別番号「1」のフレームで通信エラーが発生した場合を例示している。
順を追って説明していくと、受信バッファメモリ22から未だデータを出力していない状態では受信範囲は「1」〜「4」であり、最初の送信フレーム識別番号が「1」のフレームで通信エラーが発生して、そのフレームのデータが入力されてくる間は受信バッファメモリ22へ何も書込まれず、識別番号が「2」,「3」の後続のフレームを受信して、それらのフレームのデータが順次に受信バッファメモリ22へ書込まれる。
リードオーダカウンタ34等の制御によって、これら識別番号が「2」,「3」のデータが、識別番号が「1」のデータに先行して受信バッファメモリ22から読出し出力されることはない。
送信側では、識別番号が「3」のフレームの送信完了時点で、識別番号が「1」のフレームについて前記受信確認識別番号を受け取っていないことことから、識別番号が「1」のフレームのデータを再送信している。
受信側では、この再送信された識別番号が「1」のフレームを受信してデータを受信バッファメモリ22のメモリユニットに書込んだ後、更に後続の識別番号が「4」,「5」,「6」,「7」,……のフレームを受け取って受信バッファメモリ22へ書込んで行く。
仮に1回目の識別番号が「1」のフレームで通信エラーが発生しなければ、識別番号が「1」のデータは、図8の「受信データ出力」において破線Pで示す期間で受信バッファメモリ22から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す3フレーム後に識別番号が「1」のデータが出力される。
この識別番号が「1」のデータを受信バッファメモリ22から出力している期間では、再送信されてきた識別番号が「1」のフレームに先行して受け取った識別番号が「2」及び「3」のフレームのデータを記憶保持しながら、識別番号が「1」のデータの受信バッファメモリ22からの読出し出力と、後続のデータ(識別番号が「4」のフレームのデータ)の受信バッファメモリ22への書込みとを並行して行っており、通信エラーのリカバリを確保しながら、効率良くデータの伝送が行えていることを示している。
順を追って説明していくと、受信バッファメモリ22から未だデータを出力していない状態では受信範囲は「1」〜「4」であり、最初の送信フレーム識別番号が「1」のフレームで通信エラーが発生して、そのフレームのデータが入力されてくる間は受信バッファメモリ22へ何も書込まれず、識別番号が「2」,「3」の後続のフレームを受信して、それらのフレームのデータが順次に受信バッファメモリ22へ書込まれる。
リードオーダカウンタ34等の制御によって、これら識別番号が「2」,「3」のデータが、識別番号が「1」のデータに先行して受信バッファメモリ22から読出し出力されることはない。
送信側では、識別番号が「3」のフレームの送信完了時点で、識別番号が「1」のフレームについて前記受信確認識別番号を受け取っていないことことから、識別番号が「1」のフレームのデータを再送信している。
受信側では、この再送信された識別番号が「1」のフレームを受信してデータを受信バッファメモリ22のメモリユニットに書込んだ後、更に後続の識別番号が「4」,「5」,「6」,「7」,……のフレームを受け取って受信バッファメモリ22へ書込んで行く。
仮に1回目の識別番号が「1」のフレームで通信エラーが発生しなければ、識別番号が「1」のデータは、図8の「受信データ出力」において破線Pで示す期間で受信バッファメモリ22から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す3フレーム後に識別番号が「1」のデータが出力される。
この識別番号が「1」のデータを受信バッファメモリ22から出力している期間では、再送信されてきた識別番号が「1」のフレームに先行して受け取った識別番号が「2」及び「3」のフレームのデータを記憶保持しながら、識別番号が「1」のデータの受信バッファメモリ22からの読出し出力と、後続のデータ(識別番号が「4」のフレームのデータ)の受信バッファメモリ22への書込みとを並行して行っており、通信エラーのリカバリを確保しながら、効率良くデータの伝送が行えていることを示している。
更に、図9の事例について説明する。
図9の表示形態は図8と同様であり、図9では、識別番号が「4」のフレームで通信エラーが発生したことを示している。
仮に1回目の識別番号が「4」のフレームで通信エラーが発生しなければ、識別番号が「4」のデータは、図9の「受信データ出力」において破線Qで示す期間で受信バッファメモリ22から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す3フレーム後に識別番号が「4」のデータが出力される。
図9の表示形態は図8と同様であり、図9では、識別番号が「4」のフレームで通信エラーが発生したことを示している。
仮に1回目の識別番号が「4」のフレームで通信エラーが発生しなければ、識別番号が「4」のデータは、図9の「受信データ出力」において破線Qで示す期間で受信バッファメモリ22から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す3フレーム後に識別番号が「4」のデータが出力される。
〔データ送信部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は実質的に図11のフローチャートに示す処理を実行している。
図11の処理は、所定のデータ送出タイミング毎に実行され、先ず送信済みのフレームについて受信側通信プロトコル制御部37から受信確認情報(受信確認識別番号)が送られてきているか否かによって、その送信済みのフレームの送信が適正に完了したか否かを確認する(ステップ#11)。
後述する識別番号のやり取りの事例によって説明するが、受信確認識別番号は、データの送信後、設定個数のフレーム(具体的には、2フレーム)以内に戻って来る関係になっており、フレームの送信後、その送信したフレームに含まれる送信フレーム識別番号から生成された受信確認識別番号を、設定期間内(具体的には2個のフレームを送信する期間内)に受け取ったときは適正にデータの送信が完了したと判断し、受け取らなかったときは適正にデータの送信が完了しなかったものと判断する。
このような判断のために、送信側通信プロトコル制御部49は、送信の完了したフレームの識別番号(ライトオーダカウンタ41によって設定された送信フレーム識別番号)の履歴情報を管理している。
図11の処理は、所定のデータ送出タイミング毎に実行され、先ず送信済みのフレームについて受信側通信プロトコル制御部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)。ここで送信フレーム生成回路44へ送る受信確認識別番号は、この時点で通信の相手先の機器A,Bから受信している最新のフレームについての受信確認情報となっている。
リードオーダカウンタ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フレーム以内で受信確認識別番号を受け取ることができるように構成されている。
従って、受信確認識別番号を待機する設定期間を2フレームの期間と設定している。
この操作を通信当事者間で相互に行うことで、適正にデータが送信されたか否かを相互に確認できる。
このやり取りを実際のデータの送受信のタイミングによって示すと、図5に示すような関係となる。
図5では、上段がデータ送信部11からの送信出力を示しており、下段がデータ受信部12への受信を示しており、各フレームについての送信フレーム識別番号と受信確認識別番号とを「送信フレーム識別番号」−「受信確認識別番号」と対にして表示している。
たとえば、「フレーム#2−#1」は、そのフレームの送信フレーム識別番号が「2」であり、そのフレームを利用して送信する受信確認識別番号が「1」であることを示している。
図5(a)は送信したフレームの受信確認識別番号が比較的早いタイミングで戻ってくる場合を示しており、図5(b)は比較的遅いタイミングで戻ってくる場合を示している。
いずれも、矢印の基端位置で送信の完了したフレームについて、矢印の先端位置で示すフレームによって受信確認識別番号が返ってくることを示しており、破線Rの位置で送信の完了したフレームについて、2点鎖線Sの位置で受信確認識別番号の受信が完了している。
図5からも読み取れるように、ワーストケースでも送信が完了してから2フレーム以内で受信確認識別番号を受け取ることができるように構成されている。
従って、受信確認識別番号を待機する設定期間を2フレームの期間と設定している。
次ぎに、送受信の過程でエラーが発生した場合の事例について、図6に基づいて説明する。
図6の各部の表示態様は図5のものと共通としてある。
図6(a)は、送信したフレームを通信の相手先が受信したときにエラーが発生して、通信の相手先において適正にデータを受け取ることができなかった場合を示しており、図6(b)は、送信したフレームは通信の相手先に到達し、通信の相手先が受信確認識別番号を送り返してきたが、その受信確認識別番号を送り返してきたフレームを適正に受信できなかった場合を示している。
図6(a)では、フレームF1で送信したデータについて、フレームF2で受信確認識別番号が返ってくるはずのところが、フレームF2の受信確認識別番号は「0」となっており、フレームF3の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF3においてフレームF1を同じ識別番号で再送信している。すなわち、通信エラーの発生したフレームから3フレーム目で必ずそのエラーの発生したフレームが再送信される関係になっている。
又、図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を同じ識別番号で再送信している。すなわち、通信エラーの発生したフレームから3フレーム目で必ずそのエラーの発生したフレームが再送信される関係になっている。
又、図6(b)では、フレームF4で送信したデータについて、フレームF5で受信確認識別番号が返ってくるはずのところが、フレームF5の受信に失敗し、フレームF6の送信開始時点で、3フレーム以上前の送信フレームであるフレームF1のデータを適正に送信できなかったと確認して、フレームF6においてフレームF4を同じ識別番号で再送信している。フレームF5の受信を失敗したために、フレームF6の受信確認識別番号は「0」となっている。このフレームF6で送信するデータについては、フレームF4で送信済みのデータが通信の相手先の受信バッファメモリ22に記憶されているので、フィルタ回路32によって受取りが拒否されることになる。
〔別実施形態〕
以下、本発明の別実施形態を列記する。
(1)上記実施の形態では、データ受信部12で受け取ったフレームの送信フレーム識別番号を、データ送信部11においてそのまま受信確認識別番号として送信出力しているが、送信フレーム識別番号から受信確認識別番号を生成する規則は、受信確認識別番号からもとの送信フレーム識別番号が認識可能なものであれば任意の規則を用いることができる。
(2)上記実施の形態では、機器A,Bで画像処理の処理部分を分担し、処理過程にある画像データをリアルタイム的に授受する場合を例示しているが、複数の機器が連係して動作するようなシステムにおいて、各機器の制御データを授受するような場合にも本発明を適用できる。
(3)上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
(4)上記実施の形態では、データ送信部11及びデータ受信部12をFPGA上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にDSP等を利用してソフトウェアによる処理に置き換えても良い。
以下、本発明の別実施形態を列記する。
(1)上記実施の形態では、データ受信部12で受け取ったフレームの送信フレーム識別番号を、データ送信部11においてそのまま受信確認識別番号として送信出力しているが、送信フレーム識別番号から受信確認識別番号を生成する規則は、受信確認識別番号からもとの送信フレーム識別番号が認識可能なものであれば任意の規則を用いることができる。
(2)上記実施の形態では、機器A,Bで画像処理の処理部分を分担し、処理過程にある画像データをリアルタイム的に授受する場合を例示しているが、複数の機器が連係して動作するようなシステムにおいて、各機器の制御データを授受するような場合にも本発明を適用できる。
(3)上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
(4)上記実施の形態では、データ送信部11及びデータ受信部12をFPGA上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にDSP等を利用してソフトウェアによる処理に置き換えても良い。
A,B 機器
CC 送信側通信制御手段
RC 読出し制御手段
11 データ送信部
12 データ受信部
21 送信バッファメモリ
22 受信バッファメモリ
CC 送信側通信制御手段
RC 読出し制御手段
11 データ送信部
12 データ受信部
21 送信バッファメモリ
22 受信バッファメモリ
Claims (6)
- 送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムであって、
前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群を受信したことを示す受信確認情報を前記単位データ群の送信元へ送信するように構成され、
前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記1群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示す情報が含まれ、
前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを再送信させる送信側通信制御手段が備えられ、
前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記順序関係を示す情報に基づいて読出す読出し制御手段が備えられ、
前記送信バッファメモリ及び前記受信バッファメモリは、1つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成され、
前記送信バッファメモリにおける前記メモリユニットの個数は、前記受信確認情報を待機する前記設定期間に送信する前記単位データ群の個数に1を加えた送信側最低メモリ個数以上の個数に設定され、
前記受信バッファメモリにおける前記メモリユニットの個数は、前記単位データ群の受信に失敗した後、その単位データ群の前記1群のデータについて再送信されてくるまでに受信する前記単位データ群の数に1を加えた受信側最低メモリ個数以上の個数に設定されている通信システム。 - 前記送信バッファメモリにおける前記メモリユニットの個数は、前記送信側最低メモリ個数に1を加えた個数に設定され、
前記受信バッファメモリにおける前記メモリユニットの個数は、前記受信側最低メモリ個数に1を加えた個数に設定されている請求項1記載の通信システム。 - 前記単位データ群のデータサイズが固定的に設定されている請求項1又は2記載の通信システム。
- 前記単位データ群は、送信対象とする一群のデータの有無に拘わらず、常時且つ連続的に相互に送信されるように構成されている請求項3記載の通信システム。
- 前記送信側通信制御手段は、通信の相手先の機器に向けて前記単位データ群を送信するときに、前記通信制御用のデータに、その時点で通信の相手先の機器から受信している最新の前記単位データ群についての前記受信確認情報を含めるように構成されている請求項1〜4のいずれか1項に記載の通信システム。
- 前記機器において、大容量データのうちの部分データの処理とその処理の完了した部分データを前記送信バッファメモリの前記メモリユニットへ書込む処理とを繰り返して、前記大容量データを処理していくように構成されている請求項1〜5のいずれか1項に記載の通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005206453A JP2007028132A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005206453A JP2007028132A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007028132A true JP2007028132A (ja) | 2007-02-01 |
Family
ID=37788311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005206453A Pending JP2007028132A (ja) | 2005-07-15 | 2005-07-15 | 通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007028132A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2639701A3 (en) * | 2012-02-02 | 2017-04-26 | Tata Consultancy Services Limited | Real time performance monitoring |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6429146A (en) * | 1987-07-24 | 1989-01-31 | Nec Corp | Transmission control method |
JPH02149157A (ja) * | 1988-11-30 | 1990-06-07 | Nec Corp | 伝送制御方法 |
JPH02186730A (ja) * | 1989-01-13 | 1990-07-23 | Nec Corp | データ通信システム |
JPH03289834A (ja) * | 1990-04-06 | 1991-12-19 | Nippon Telegr & Teleph Corp <Ntt> | 誤り再送伝送方式 |
JPH0496534A (ja) * | 1990-08-14 | 1992-03-27 | Oki Electric Ind Co Ltd | Hdlcにおける選択再送方式 |
JPH07131482A (ja) * | 1993-11-05 | 1995-05-19 | Hitachi Ltd | 網内通信制御処理方式 |
JPH0879304A (ja) * | 1994-09-09 | 1996-03-22 | Hitachi Ltd | フレームリレーネットワーク内通信制御方法 |
JPH08181715A (ja) * | 1994-12-27 | 1996-07-12 | Matsushita Electric Works Ltd | 送受信装置 |
JPH0955719A (ja) * | 1995-08-11 | 1997-02-25 | Nippon Telegr & Teleph Corp <Ntt> | データ通信用インタフェース装置 |
JPH09191384A (ja) * | 1996-01-10 | 1997-07-22 | Nec Corp | 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式 |
JPH1084336A (ja) * | 1996-07-18 | 1998-03-31 | Matsushita Electric Ind Co Ltd | 再送制御方法 |
JPH10242948A (ja) * | 1997-02-27 | 1998-09-11 | Sony 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 | モトローラ・インコーポレイテッド | 分散構成デジタル無線通信システムを提供するための方法及び装置 |
WO2003085934A1 (fr) * | 2002-04-08 | 2003-10-16 | Mitsubishi Denki Kabushiki Kaisha | Appareil et procede de transmission de donnees |
-
2005
- 2005-07-15 JP JP2005206453A patent/JP2007028132A/ja active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6429146A (en) * | 1987-07-24 | 1989-01-31 | Nec Corp | Transmission control method |
JPH02149157A (ja) * | 1988-11-30 | 1990-06-07 | Nec Corp | 伝送制御方法 |
JPH02186730A (ja) * | 1989-01-13 | 1990-07-23 | Nec Corp | データ通信システム |
JPH03289834A (ja) * | 1990-04-06 | 1991-12-19 | Nippon Telegr & Teleph Corp <Ntt> | 誤り再送伝送方式 |
JPH0496534A (ja) * | 1990-08-14 | 1992-03-27 | Oki Electric Ind Co Ltd | Hdlcにおける選択再送方式 |
JPH07131482A (ja) * | 1993-11-05 | 1995-05-19 | Hitachi Ltd | 網内通信制御処理方式 |
JPH0879304A (ja) * | 1994-09-09 | 1996-03-22 | Hitachi Ltd | フレームリレーネットワーク内通信制御方法 |
JPH08181715A (ja) * | 1994-12-27 | 1996-07-12 | Matsushita Electric Works Ltd | 送受信装置 |
JPH0955719A (ja) * | 1995-08-11 | 1997-02-25 | Nippon Telegr & Teleph Corp <Ntt> | データ通信用インタフェース装置 |
JPH09191384A (ja) * | 1996-01-10 | 1997-07-22 | Nec Corp | 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式 |
JPH1084336A (ja) * | 1996-07-18 | 1998-03-31 | Matsushita Electric Ind Co Ltd | 再送制御方法 |
JPH10242948A (ja) * | 1997-02-27 | 1998-09-11 | Sony 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 | モトローラ・インコーポレイテッド | 分散構成デジタル無線通信システムを提供するための方法及び装置 |
WO2003085934A1 (fr) * | 2002-04-08 | 2003-10-16 | Mitsubishi Denki Kabushiki Kaisha | Appareil et procede de transmission de donnees |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2639701A3 (en) * | 2012-02-02 | 2017-04-26 | Tata Consultancy Services Limited | Real time performance monitoring |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2503086B2 (ja) | デ―タ・リンク制御方法 | |
CN103098428B (zh) | 一种实现pcie交换网络的报文传输方法、设备和系统 | |
CN111130710B (zh) | 一种基于spi的双工通信方法 | |
EP1198105A2 (en) | High speed transmission line interface | |
KR20110066602A (ko) | Pci 익스프레스 프로토콜 처리 장치 | |
US8054845B2 (en) | Decoupled connections | |
US9197373B2 (en) | Method, apparatus, and system for retransmitting data packet in quick path interconnect system | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
JP2778373B2 (ja) | 再送機能付きバッファ装置 | |
JPH0756976B2 (ja) | 情報分配方式とその送信局および端末装置 | |
JP2007028132A (ja) | 通信システム | |
CN104298630B (zh) | 基于串行外设接口的通信方法、装置和设备 | |
JP2017224896A (ja) | 画像形成システム、画像データ送信部および画像データ伝送方法 | |
KR20080067044A (ko) | 데이터 송수신 방법 및 그에 따른 통신 시스템 | |
JP2007028122A (ja) | 通信システム | |
CN104484307B (zh) | 一种基于节点控制器fpga原型验证中的降频方法 | |
EP2257025A1 (en) | System and method for establishing reliable communication in a connection-less environment | |
JP2007028491A (ja) | 通信システム | |
CN112187408A (zh) | 数据处理方法、系统、装置、存储介质和处理器 | |
CN102684834B (zh) | 一种通用成帧规程设备及其管理信息通信方法 | |
JP3148733B2 (ja) | 信号処理装置及び信号処理システム | |
CN113747206B (zh) | 数据回传控制方法和系统、显示屏控制器及显示控制卡 | |
JP2007028113A (ja) | データ処理ユニット | |
JP2000244530A (ja) | データ通信装置 | |
JPS61187445A (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 |