JP2007028491A - 通信システム - Google Patents

通信システム Download PDF

Info

Publication number
JP2007028491A
JP2007028491A JP2005211163A JP2005211163A JP2007028491A JP 2007028491 A JP2007028491 A JP 2007028491A JP 2005211163 A JP2005211163 A JP 2005211163A JP 2005211163 A JP2005211163 A JP 2005211163A JP 2007028491 A JP2007028491 A JP 2007028491A
Authority
JP
Japan
Prior art keywords
data
unit
group
arrangement information
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
Application number
JP2005211163A
Other languages
English (en)
Inventor
Yuujun Asami
友順 浅見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Noritsu Koki Co Ltd
Original Assignee
Noritsu Koki Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Noritsu Koki Co Ltd filed Critical Noritsu Koki Co Ltd
Priority to JP2005211163A priority Critical patent/JP2007028491A/ja
Publication of JP2007028491A publication Critical patent/JP2007028491A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】送信するデータの並び順序の管理を小さなデータサイズの管理情報で簡単な制御で行えるようにする点にある。
【解決手段】送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器A,Bの双方に、送信バッファメモリ21と受信バッファメモリ22が備えられた通信システムにおいて、前記通信制御用のデータに、その単位データ群に含まれる前記一群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示すデータ並び情報が含まれ、前記データ並び情報は、設定個数のデータを循環的に繰り返して使用するように構成されている。
【選択図】図1

Description

本発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムに関する。
通信システムでは、一般的に、下記特許文献1にも記載のように、受信したデータを一時的に保持する受信バッファメモリと、送信出力するためのデータを一時的に保持する送信バッファメモリとを備える構成とする場合が多い。
これは、下記特許文献1とは通信形態が異なるが、いわゆる1対1全二重双方向通信を構成する場合においても同様である。
この受信バッファメモリや送信バッファメモリの構成としては、下記特許文献1に記載のような単一のFIFO構成のメモリや、データの書込みと読出しとを交互に切換える一対のバッファメモリから構成されるいわゆるピンポンバッファ構成のメモリとする場合が多い。
受信バッファメモリや送信バッファメモリに前記一群のデータを複数個記憶できるようにして高速にデータ通信を行う場合、受信バッファメモリあるいは送信バッファメモリに書込まれた一群のデータの並び順序を把握して、送信側と受信側とでデータの整合性を確保する必要がある。
このような場合、例えば、1つのデータファイル中における個々のデータの並び位置を把握し、各単位データ群毎に、その単位データ群に含まれる一群のデータが前記データファイル中の何番目から何番目までのデータであるかを示す情報を前記一群のデータと併せて送信し、受信側では、そのデータの並び位置についての情報によって元のデータファイルの並び順を再現するように受信バッファメモリからデータを読出していく。
特開平6−276205号公報
しかしながら、上記の1つのデータファイル中の個々のデータの並び位置を利用するような手法では、一群のデータの並び順序を把握するための情報のデータサイズが送信対象のデータファイルのデータサイズに依存することになり、システム側では、一群のデータの並び順序を把握するための情報のために十分大きなデータサイズを確保する必要があり、しかも、その並び順序の情報の範囲が送信するデータの量(ファイルサイズ)に依存して変化するため制御が複雑化してしまうことになる。
本発明は、かかる実情に鑑みてなされたものであって、その目的は、送信するデータの並び順序の管理を小さなデータサイズの管理情報で簡単な制御で行えるようにする点にある。
本出願の第1の発明は、送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムにおいて、前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記一群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示すデータ並び情報が含まれ、前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群に含まれる前記データ並び情報と設定関係を有する受信確認情報を前記通信制御用のデータの一部として前記単位データ群の送信元へ送信するように構成され、前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを初回の送信と同一の前記データ並び情報によって再送信させる送信側通信制御手段が備えられ、前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記データ並び情報によって特定される順序通りに読出す読出し制御手段が備えられ、前記送信バッファメモリ及び前記受信バッファメモリは、前記一群のデータを複数個記憶する記憶容量を有するように構成され、前記データ並び情報は、設定個数のデータを循環的に繰り返して使用するように構成されている。
すなわち、前記単位データ群の構成要素である前記通信制御用のデータの一部として、前記データ並び情報とそのデータ並び情報と設定関係を有する前記受信確認情報をと含めて相互に送受信することで、送信したデータの受信確認と適正に送信できなかったデータの再送信とを相互に行う。
このように送信されるデータの並び順序を管理するためのデータ並び情報は、前記単位データ群に含まれる一群のデータを1単位として、前記単位データ群毎に割り付けられ、その割り付け方として、設定個数のデータ並び情報を循環的に繰り返して使用する。
すなわち、受信側の機器の受信バッファメモリに書込まれた前記一群のデータは、前記データ並び情報に従って順次に読出されて行くため、読出された前記一群のデータのデータ並び情報を再利用するのである。
又、本出願の第2の発明は、上記第1の発明の構成に加えて、前記データ受信部に、前記読出し制御手段によって次ぎに読出される前記一群のデータの前記データ並び情報と、そのデータ並び情報よりも前記受信バッファメモリにおける前記一群のデータの記憶可能個数から1を引いた数だけ並び順が後の前記データ並び情報との範囲内に存在する前記データ並び情報を有する前記単位データ群の前記一群のデータを前記受信バッファメモリに読出し出力の対象として記憶保持させる受信側通信制御手段が備えられて構成されている。
すなわち、受信バッファメモリからは、前記データ並び情報によって特定される順序通りにデータが読出されるので、受信バッファメモリから次ぎに読出される前記一群のデータの前記データ並び情報と、そのデータ並び情報よりも前記受信バッファメモリにおける前記一群のデータの記憶可能個数から1を引いた数だけ並び順が後の前記データ並び情報との範囲内に存在しないデータ並び情報を有する単位データ群を受け取ってしまうと、送られてくる各単位データ群のデータ並び情報によっては、受信バッファメモリから正しい順序でデータを出力できなくなる場合がある。
例えば、受信バッファメモリが前記一群のデータを4群分記憶できるものとし、前記データ並び情報を「1」,「2」,「3」,……の自然数とし、その数値通り(昇順)に並び順が指定されているとすると、データ並び情報が「1」の単位データ群について通信エラーによってデータの送信に失敗したとき(次ぎに受信バッファメモリから読出される前記一群のデータのデータ並び情報は「1」の状態)、後続のデータ並び情報が「2」,「3」,「4」の単位データ群のデータを順次に受取り、更に上記の範囲内には存在しないデータ並び情報が「5」の単位データ群を受け取ってしまうと、受信バッファメモリは「2」〜「5」のデータ並び情報のデータで埋まってしまい、次ぎに出力すべきデータ並び情報が「1」の単位データ群を受け取れなくなり、送信処理が停止してしまう。
又、データ並び情報が「1」,「2」,「3」,……の単位データ群が順次に送信されて、受信バッファメモリから「1」,「2」,「3」,……とデータ読出される過程で、受信バッファメモリから読出し出力したはずのデータ並び情報が「1」の単位データ群が再送信されてきたような場合、それを受け取って受信バッファメモリに記憶保持させてしまうと、受信バッファメモリから正しく読出し順序を指定してデータを読み出せなくなってしまう。
そこで、上記のように、送信側から受け取る単位データ群のデータ並び情報の範囲に一定の制限を設けているのである。
又、本出願の第3の発明は、上記第2の発明の構成に加えて、前記送信側通信制御手段は、前記再送信の要否の判断対象の前記単位データ群について、通信の相手先の機器から前記受信確認情報を受け取る前に、前記再送信の要否の判断対象の単位データ群よりも、前記データ並び情報において、通信の相手先の機器の前記受信バッファメモリにおける前記一群のデータの記憶可能個数分だけ後の単位データ群あるいは更にそれよりも後の単位データ群についての前記受信確認情報を受け取ったとき、前記再送信の要否の判断対象の前記単位データ群の再送信を不要と判断するように構成されている。
すなわち、前記一群のデータの再送信が発生するケースとしては、単純に送信側から受信側へ前記単位データ群を送った際に通信エラーが発生して、受信側が適正にデータを受信できなかった場合の他に、送信側から受信側へ送った前記単位データ群は適正に受信されたものの、その単位データ群を受信したことを送信側へ報知するための前記受信確認情報を載せた単位データ群の通信において通信エラーが発生して、送信側が前記受信確認情報を受け取ることができなかった場合がある。
前者の場合には再送信は必須であり、後者の場合でも、再送信した前記一群のデータについての受信確認情報を受け取ることができれば、その一群のデータについての一連の送信処理を完結することができる。
しかしながら、受信側には適正に受信されたデータが存在して、本来的には再送信する必要がないにも拘わらず再送信してしまうのは、通信ラインを不要なデータで占拠して通信効率を低下させてしまうことになる。
そこで、受信側での処理手順を利用して、再送信の要否を判定できるようにする。
受信側は、上述のように、受け取る前記単位データ群のデータ並び情報の範囲を、次ぎに読出される前記一群のデータのデータ並び情報と、そのデータ並び情報よりも前記受信バッファメモリにおける前記一群のデータの記憶可能個数から1を引いた数だけ並び順が後のデータ並び情報との範囲内に制限しているので、もし送信側で、再送信の要否の判断対象の単位データ群よりも、前記データ並び情報において、通信の相手先の機器の受信バッファメモリにおける前記一群のデータの記憶可能個数分だけ後の単位データ群あるいは更にそれよりも後の単位データ群についての前記受信確認情報を受け取るということは、再送信の要否の判断対象の単位データ群に含まれる一群のデータが、既に受信バッファメモリから後段へ読出し出力されていることを意味し、再送信が必要ないことを送信側で把握できるのである。
具体的な事例によって説明すると、受信バッファメモリが前記一群のデータを4群分記憶できるものとし、前記データ並び情報を「1」,「2」,「3」,……の自然数とし、その数値通り(昇順)に並び順が指定されているとすると、再送信の要否の判断対象の単位データ群のデータ並び情報が「1」であるとして、受信バッファメモリからデータ並び情報が「1」のデータが未だ出力されていない状態(次ぎに受信バッファメモリから読出される前記一群のデータのデータ並び情報は「1」の状態)では、受信側に受け取ってもらえるデータ並び情報の範囲は「1」〜「4」の範囲であり、受信バッファメモリにおける前記一群のデータの記憶可能個数(4個)分だけ後に送信される単位データ群(データ並び情報が「5」の単位データ群)あるいはそれ以降に送信される単位データ群についての前記受信確認情報を受け取るということは、データ並び情報が「1」の単位データ群のデータは、既に受信バッファメモリから後段に出力されていることを意味するのである。
又、本出願の第4の発明は、上記第3の発明の構成に加えて、前記データ並び情報の個数をN、前記送信バッファメモリにおける前記一群のデータの記憶可能個数をNS、通信の相手先の機器の前記受信バッファメモリにおける前記一群のデータの記憶可能個数をNRとして、N≧2×NS+2×NR−3となるように設定されている。
すなわち、上述のようにして、受信確認情報を受け取れなかった前記単位データ群についても適正にデータを送信できたと判断するようにすると、通信エラーが頻発する極端な悪条件下では、前記データ並び情報の個数が少ないと、誤って再送信の必要がないものと判断してしまう場合があることを見出した。
以下、送信側の送信バッファメモリ及び受信側の受信バッファメモリの何れもが前記一群のデータを4群分記憶できるものとし、前記データ並び情報を「1」,「2」,「3」,……「12」の12個の自然数とし、その数値通り(昇順)に並び順が指定されているものとして説明する。
尚、以下の説明においては、説明の複雑化を避けるために、特に指定しない限り、通信エラーは、送信側から受信側への前記単位データ群のデータの送信は適正に実行され、その単位データ群についての受信確認情報を送信側へ送り返す単位データ群の通信で通信エラーが発生した場合のみを考える。
図10は、送信側の機器での送受信を示したものであり、上段側の各ブロックが送信される前記単位データ群を示し、下段側の各ブロックが受信される前記単位データ群を示している。
尚、図10中、時間「T」と「T’」とは同一時間であり、図面サイズの都合上、一連に続く送受信を分割して図示している。
上段側(送信)の各ブロックではその単位データ群のデータ並び情報を表記しており、下段側(受信)の各ブロックではその単位データ群が運んでくる受信確認情報を表記している。
例えば、上段側(送信)のブロックでは、データ並び情報が「1」であることを「#1」と表記し、下段側(受信)のブロックでは、データ並び情報が「1」の単位データ群について受信したことを示す受信確認情報を「R#1」と表記している。
下段側(受信)において1本の斜線を付しているブロックは、そのブロック内に表記する受信確認情報を受信側から送信側へ送り返す際の通信で通信エラーが発生し、送信側で受信確認情報を受信できなかったことを示しており、上段側(送信)においてデータ並び情報の周囲を右上がりの斜線で囲んだブロックは、再送信の前記単位データ群であることを示している。
始端から順を追って説明すると、送信側の機器からデータ並び情報が「1」,「2」,「3」の単位データ群を順次に送信され、それらのデータが受信側に受信されて受信確認情報が送信側に送り返される。
ところが、送信側では、このうち、データ並び情報が「1」及び「2」の単位データ群については受信確認情報を受信するのに失敗した。
送信側では、設定期間内に戻ってくるはずの受信確認情報を受信できなかったので、データ並び情報が「1」及び「2」の単位データ群について再送信している。
この後、データ並び情報が「2」の単位データ群については2度目の再送信で受信確認情報を受取って適正な送信の完了を確認できたが、データ並び情報が「1」の単位データ群については受信確認情報の受信に繰り返し失敗している。
このような状態で、図10中「B1」で示すデータ並び情報が「1」の再送信のブロックの次ぎに、データ並び情報が「7」のブロックB2を送信し、ブロックB1についての受信確認情報をブロックRB1で受け取ることができ、更に、ブロックB2のデータを通信エラーにより受信側で受信することができなかったというようなケースが発生したとする。
このようなケースでのデータ並び情報が「7」のデータに着目すると、データ並び情報が「7」の単位データ群については、データ並び情報が「7」の単位データ群についての受信確認情報を受信していない状態でも、データ並び情報が「11」,「12」,「1」の単位データ群についての受信確認情報を受信するに伴って、再送信の必要がないものと判断することになる。
従って、ブロックB2でデータ並び情報が「7」の単位データ群を送信した後、ブロックRB1でデータ並び情報が「1」の単位データ群についての受信確認情報を受け取ると、そのデータ並び情報が「7」の単位データ群については再送信の必要はないものと判断されてしまうことになる。
つまり、本来は、再送信の要否の判断対象の単位データ群よりもデータ並び情報が後の「1」についての受信確認情報によって再送信の必要がないと判断すべきところを、再送信の要否の判断対象の単位データ群よりもデータ並び情報が先の「1」についての受信確認情報によって再送信の必要がないと判断してしまうのである。
このような誤判断は、各種の情報の細かな場合分けによっても回避することは可能であるが、それでは制御が複雑化してしまうため、データ並び情報の個数をどのように設定するかによって解決する。
データ並び情報の個数や、受信バッファメモリ及び送信バッファメモリにおける前記一群のデータの記憶個数の条件を上述の通りとして、再送信の要否を後続の単位データ群の受信確認情報によって判断する判断条件をテーブル化したものを図11に示す。
図11では、左端の列が再送信の要否の判断対象となる前記単位データ群のデータ並び情報であり、左端のデータ並び情報に対して、右側の「エラー補正候補」として示すデータ並び情報についての受信確認情報を受け取ったときに再送信が必要ないものと判断できるという関係になっている。
図11において、例えば、データ並び情報が「1」の単位データ群については、その「1」に受信バッファメモリにおける前記一群のデータの記憶可能個数(=4個)分だけ後の単位データ群(すなわち、データ並び情報が「5」の単位データ群)あるいは更にそれよりも後の単位データ群(データ並び情報が「6」,「7」の単位データ群)についての受信確認情報を受け取ったときに、再送信の必要がないものと判断する。
ここで、図11の列数は、送信バッファメモリにおける前記一群のデータの記憶可能個数から1を引いた数となっているが、これは、例えばデータ並び情報が「1」の単位データ群について見ると、データ並び情報が「5」,「6」,「7」の単位データ群の何れについても受信確認情報を受け取らない状態で、データ並び情報が「8」の単位データ群についてのデータ並び情報を受け取ることはあり得ないからである。
つまり、データ並び情報が「5」,「6」,「7」の単位データ群の何れについても受信確認情報を受け取らないということは、それらの単位データ群のデータが送信バッファメモリに記憶保持されていることになり、それらに加えて再送信の要否の判断対象の単位データ群のデータを記憶保持して満杯状態の送信バッファメモリからデータ並び情報が「8」の単位データ群が送信されることは起こり得ないのである。
データ並び情報が「7」の単位データ群について発生したような誤判断を、図11によって検討すると、図11における再送信の要否の判断対象のデータ並び情報が「1」の行において、「5」,「6」,「7」のデータ並び情報は、データ並び情報が「1」のデータが送信バッファメモリに記憶保持されている状態で受け取る可能性のある受信確認情報のうち、「1」から見て最も後方側に離れている領域のデータ並び情報であり、逆に、「5」,「6」,「7」のデータ並び情報から見ると、これらのデータ並び情報のデータが送信バッファメモリに記憶保持されている状態で、これらよりも先行する「1」のデータ並び情報についての受信確認情報を受け取る可能性があることを示しているものでもある。
従って、これら「5」,「6」,「7」のデータ並び情報についての「エラー補正候補」の中に「1」のデータ並び情報が存在しなければ、先行する「1」のデータ並び情報についての受信確認情報を、後続の「1」のデータ並び情報についての受信確認情報であると誤認識してしまうのを回避できることなる。
図11でいうと、再送信の判断対象のデータ並び情報が「7」であるときに、「エラー補正候補」として「1」のデータ並び情報が含まれているために上述のような誤判断をしたのであり、図11の枠F1から「1」を追い出すように、データ並び情報の個数を増加させれば良いことになる。
そのような操作をした結果が図12に示すものであり、データ並び情報の個数を13個に増加させることで、再送信の判断対象のデータ並び情報が「7」であるときに、「1」のデータ並び情報の単位データ群についての受信確認情報を受信したとしても、それによって再送信が不要なものと判断してしまうことはない。
送信バッファメモリにおける前記一群のデータの記憶可能個数をNS、受信バッファメモリにおける前記一群のデータの記憶可能個数をNRとして、図11,図12を一般化すると図13に示すものとなり、図11等との対比から、図13の枠F2の値が、上述のような誤認識を回避するためのデータ並び情報の個数の最小値であり、データ並び情報の個数をNとして、N≧(NS−1+NR)+(NS−2)+NR=2×NS+2×NR−3 を満足する個数であれば良いことになる。
ちなみに、NS=5,NR=5の場合では、データ並び情報の個数の最小値は17であり、そのときのエラー補正候補のテーブルは図14に示すものとなり、又、NS=4,NR=5の場合では、データ並び情報の個数の最小値は15であり、そのときのエラー補正候補のテーブルは図15に示すものとなる。
又、本出願の第5の発明は、上記第1〜第4のいずれかの発明の構成に加えて、前記単位データ群のデータサイズが固定的に設定されている。
すなわち、前記データ並び情報の個数が固定的に設定されることで、データ並び情報を表現するデータのデータサイズを一定のサイズにすることができるので、そのようなデータ並び情報を含める前記単位データ群のデータサイズを固定的に設定する場合に特に好適である。
又、本出願の第6の発明は、上記第1〜第5のいずれかの発明の構成に加えて、前記送信バッファメモリ及び前記受信バッファメモリは、1つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成されている。
従って、前記単位データ群に前記一群のデータを載せて送受信する場合におけるメモリの管理を効率良く行うことができる。
上記第1の発明によれば、送信されるデータの並び順序を管理するためのデータ並び情報は、前記単位データ群に含まれる一群のデータを1単位として、前記単位データ群毎に割り付けられ、その割り付け方として、設定個数のデータ並び情報を循環的に繰り返して使用するので、送信するデータの並び順序の管理を小さなデータサイズの管理情報で簡単な制御で行えるものとなった。
又、上記第2の発明によれば、送信側から受け取る単位データ群のデータ並び情報の範囲に一定の制限を設けることで、不要なデータを重複して受け取ってしまうことや、後続のデータの受取りに支障をきたすようなデータを受け取ってしまうことを回避できる。
又、上記第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を経てリアルタイム的に画像処理の完了した部分データを送っている。
〔通信回路1の概略構成〕
通信回路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に含めて送信することもできる。
「データ」ブロック102の後のフレームの後端には、データが適正に転送されたか否かをCRC等により検証するためのデータを含める「フレームチェックコード」ブロック103が位置する。
上記のフレームを単位として送受信することで、「データ」ブロック102に含まれる一群のデータがひとまとまりで送信されることになる。
すなわち、フレームは、送信対象とする一群のデータ(「データ」ブロック102のデータ)と通信制御用のデータ(「データ」ブロック102以外のデータ)とにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群である。
尚、通信回路1は、高速シリアル通信を行うように構成されており、「フレーム検出コード」ブロック100の前端側には信号の伝送状態を安定化させるためのコードが組み込まれている。
フレームの各ブロック100,101,102,103のデータサイズは固定的に設定されており、従って、フレーム全体のデータサイズも固定的に設定されている。
前記通信制御用データには、そのフレームに含まれる前記一群のデータ(「データ」ブロック102)と他のフレームに含まれる前記一群のデータとの順序関係を示すデータ並び情報が含まれている。尚、以下において、フレームとそのフレームに含まれる前記一群のデータとは一体であるので、前記データ並び情報をフレームのデータ並び情報として表現する場合もある。
機器Aと機器Bとの間の通信を模式的に示す図3(b)において「フレーム#1」,「フレーム#2」,……と示すように、データ並び情報は連続番号として設定され、識別情報が付された各フレームが常時且つ連続的に相互に送受信される。
これは、フレームは、本来の送信対象のデータすなわち「データ」ブロック102に含めるべきデータの有無に拘わらず送信されることを意味しており、送信対象のデータが存在しない場合の「データ」ブロック102には、任意に設定したデータが割り付けられる。
尚、機器Aから機器Bへの送信とその逆方向の送信とは、原則として互いに依存することなく独立した送信タイミングとなっている。
本実施の形態では、前記データ並び情報は、「1」〜「13」の13個を、循環的に繰り返し使用するように設定されている。
すなわち、大きな画像ファイルを送信するとき、その画像ファイルのデータを上記の「データ」ブロック102のデータサイズに分割して前記一群のデータを生成し、前記一群のデータに「1」から順に昇順で連続番号を付し、「13」の次は再び「1」に戻る。
送信バッファメモリ21及び受信バッファメモリ22は、前記一群のデータを複数個記憶する記憶容量を有するように構成され、前記データ並び情報の個数は、送信バッファメモリ21及び受信バッファメモリ22における前記一群のデータの記憶可能個数に依存して設定している。
具体的には、データ並び情報の個数をN、送信バッファメモリ21における前記一群のデータの記憶可能個数をNS、通信の相手先の機器A,Bの受信バッファメモリ22における前記一群のデータの記憶可能個数をNRとして、N≧2×NS+2×NR−3となるように設定しており、本実施の形態では、後述のようにNS=NR=4としてあり、N≧13の条件を満たす個数のうちの最小値を用いている。
データ並び情報をこのような条件で設定する理由は、図10乃至図15によって説明した通りである。
尚、このデータ並び情報は、「フレームステータス」ブロック101のデータのうちの4ビットを使用する関係上、データ並び情報の個数を4ビット値で表現できる最大数である16個に設定しても良い。
換言すると、前記データ並び情報の個数Nを、N≧2×NS+2×NR−3の範囲を満たし、且つ、2のべき乗となる条件で設定し、更に具体的には、その条件を満たすNのうちの最小値を前記データ並び情報の個数として設定しても良い。
各フレームの「フレームステータス」ブロック101の情報は、そのフレームのデータ並び情報と通信の相手先に送り返すための受信確認情報とを合わせたものである。
この受信確認情報とは、そのフレームの送信開始時点において、通信の相手先から受信している最新のフレームのデータ並び情報から設定関係を有するように生成したものであり、具体的には、前記設定関係としては、通信の相手先から受信している最新のフレームのデータ並び情報をそのまま使用している。
このように、受信確認情報をフレームの送信元へ送り返すことで、その送信元はどのフレームまで適正に送信できたかを識別するのに利用することができる。すなわち、フレームを受信したことを示す受信確認情報を、フレームの通信制御用のデータに含めて送信している。
以下において、この「フレームステータス」ブロック101に記述されるデータ並び情報と受信確認情報とを合わせた通信制御用のデータを「フレームステータス」と称する。
次ぎに、通信回路1の具体構成及び動作を、データ送信部11及びデータ受信部12の内部構成を詳細に示す図2に基づいて説明する。尚、図2は、機器A側の通信回路1について示しているが、上述のように、機器Bの通信回路1も全く同一の構成で同一の動作をする。
〔データ受信部12の構成〕
データ受信部12には、受信した図3(a)に示す構成のフレームから本来の送信対象のデータ(「データ」ブロック102のデータ)及び「フレームチェックコード」ブロック103のデータとそれ以外の通信制御用のデータとを分離する受信フレーム分離回路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が備えられている。
受信バッファメモリ22が4つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器A,B間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記1群のデータについて再送信する機能を有していることと、受信バッファメモリ22からのデータの出力は、上記のデータ並び情報の順序に従って出力する必要があることとによる。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生した場合でも後続のフレームを送信し続けるようになっており、受信側では、その後続のフレームを受け取っても、先行のフレームのデータの受取りに失敗しているので、データ並び情報の順序を無視して、後続のフレームのデータを先行して受信バッファメモリ22から出力してしまうことはできない。又、後続のフレームの受取りを拒否してしまうと、せっかく送受信に成功したフレームのデータを再度送信しなくてはならなくなり、通信効率を低下させてしまうことになる。
そこで、受信バッファメモリ22のメモリユニットの個数を、フレームの受信に失敗した後、そのフレームの前記1群のデータについて再送信されてくるまでに受信するフレームの数に1を加えた受信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、フレームの受信に失敗した後、そのフレームの前記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上に論理回路として構成されている。
送信バッファメモリ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が備えられている。これらについても、受信側と同様の構成となっている。
送信バッファメモリ21が4つのメモリユニットを備える構成としているのは、詳しくは後述するが、機器A,B間でデータを送受信する際にエラーが発生して適正にデータの送信を完了することができなかったとき、エラーの発生したフレームに含まれていた前記1群のデータについて再送信する機能を有していることによる。
すなわち、フレームを送信した側の通信回路1では、上記のようなエラーが発生せずに適正にデータの送信が完了したことを、上記の受信確認情報を受け取ったことにより確認するのであるが、この受信確認情報を受け取るまで、送信済みのデータを送信バッファメモリ21のメモリユニットに保持させておく必要があり、その受信確認情報を待つ間も、後続のフレームを送信して通信速度の高速化を図る必要がある。
そこで、送信バッファメモリ21のメモリユニットの個数を、前記受信確認情報を待機する設定期間に送信するフレームの個数に1を加えた送信側最低メモリ個数以上の個数に設定している。
本実施の形態では、後述の送受信の事例による説明において明らかとなるが、前記受信確認情報を待機する設定期間に送信するフレームの個数は「2」であり、更に再送信されるフレームのデータを記憶保持するための1個を加えた「3」が上記の送信側最低メモリ個数である。
最低限3個のメモリユニットがあれば、再送信のためのフレームのデータと、前記受信確認情報を待つ間に送信する2個のフレームのデータとを夫々メモリユニットへ記憶保持させることができる。
本実施の形態では、メモリユニットの個数を前記送信側最低メモリ個数に更に「1」を加えた4個としている。
これによって、前記受信確認情報を待つ間に送信する2個のフレームのデータを記憶保持すると共に、上記の再送信するフレームのデータを送信バッファメモリ21から読出すのと並行して、送信対象データの供給元であるデータ処理部2から後続のフレームのデータを受け取ることが可能であり、極めて効率よくデータを伝送することができる。
〔データ受信部12の動作〕
次に、データ受信部12の動作を説明する。
受信フレーム分離回路31が、フレーム(図3(a)を参照)の先頭の「フレーム検出コード」ブロック100のデータによってフレームデータの受取り開始を検知して、1つのフレームのデータを受け取ると、そのフレームの「フレームステータス」ブロック101のデータであるフレームステータスと本来の送信対象のデータである「データ」ブロック102のデータ等とを分離して、フレームステータスのデータをフィルタ回路32へ送り、「データ」ブロック102及び「フレームチェックコード」ブロック103のデータを入力側切換え回路35へ出力する。
フィルタ回路32は、受信フレーム分離回路31から受信したフレームステータスの中の前記データ並び情報をメモリユニット制御レジスタ33へ送る。
データ並び情報を受け取ったメモリユニット制御レジスタ33は、受信バッファメモリ22の4つのメモリユニットに対応する4つのレジスタのうちの空きのもの(メモリユニットステータスレジスタ202の情報が「データ無し」になっているもの)に受け取ったデータ並び情報を書込み、そのデータ並び情報を書込んだレジスタに対応するメモリユニットに受信フレーム分離回路31から送られてくるデータを書込むように入力側切換え回路35の接続状態を設定する。但し、この時点では、メモリユニットステータスレジスタ202の情報は「データ無し」の状態を維持させる。
フィルタ回路32は、受信フレーム分離回路31から新規に受け取ったフレームに含まれる前記一群のデータの受信バッファメモリ22への書込みが完了する毎に実質的に図8のフローチャートの処理に相当する処理を実行しており、受信バッファメモリ22のデータを参照して、受信の完了した「データ」ブロック102のデータとフレームの「フレームチェックコード」ブロック103とを対比することで、通信エラーを発生することなく受信できたか否かを判断し(ステップ#1)、適正に受信が完了しており(ステップ#1)、且つ、受信したフレームのデータ並び情報がメモリユニット制御レジスタ33のレジスタに記憶されているデータ並び情報のいずれとも一致せず(ステップ#3)、且つ、受信したフレームのデータ並び情報が所定の範囲内にあるとき(ステップ#4)、メモリユニット制御レジスタ33に対して、受信したフレームについてのメモリユニットステータスレジスタ202の情報を「データ有り」に書き換えるように指示する(ステップ#7)。
メモリユニットステータスレジスタ202の情報を「データ有り」と書き換えることによって、初めて受信バッファメモリ22から後段へ(データ処理部2へ)読出し出力されるデータとして記憶保持されることになり、正式なデータの受信として確定する。
又、ステップ#4における「所定のデータ並び情報の範囲内」とは、データ並び情報の順序(昇順)で、受信バッファメモリ22から次ぎに出力すべき前記一群のデータのデータ並び情報と、そのデータ並び情報よりも受信バッファメモリ22における前記一群のデータの記憶可能個数(=4)から1を引いた数だけ並び順が後のデータ並び情報との範囲内である。例えば、次ぎに受信バッファメモリ22から出力するべきデータのデータ並び情報が「1」であるとき、「1」〜「4」のデータ並び情報の範囲内となる。このように、データ並び情報の範囲で受取り制限をかけることによって、受信バッファメモリ22に対するデータの読み書きに齟齬の生じる可能性のあるデータの受信を排除している。従って、フィルタ回路32は、データ並び情報の範囲によって受信バッファメモリ22に読出し対象として記憶保持させるか否かを制御する受信側通信制御手段RCとして機能する。
この後、更に、フレームステータスのデータ並び情報及び受信確認情報の双方を受信側通信プロトコル制御部37へ送る(ステップ#8)。
通信エラーが発生したとき(ステップ#1)、受信したフレームのデータ並び情報が既存のデータのデータ並び情報と重複したとき(ステップ#3)、あるいは、受信したフレームのデータ並び情報が前記所定の範囲内にないとき(ステップ#4)でも、データ並び情報及び受信確認情報の双方を受信側通信プロトコル制御部37へ送る(ステップ#8)のであるが、その際、通信エラーが発生したときは(ステップ#1)、受信側通信プロトコル制御部37へ送るデータ並び情報及び受信確認情報は何れも「0」に設定される(ステップ#2)。
又、受信したフレームのデータ並び情報が前記所定の範囲内にないとき(ステップ#4)は、データ並び情報が、メモリユニット制御レジスタ33に記憶されているデータ並び情報のうちの最も増大側のデータ並び情報に近い値であるときは(ステップ#5)、データ並び情報を「0」に設定する(ステップ#6)。
一方、データ並び情報及び受信確認情報をフィルタ回路32から受け取った受信側通信プロトコル制御部37は、その受け取ったデータ並び情報及び受信確認情報を送信側通信プロトコル制御部49へ送る。
送信側通信プロトコル制御部49へ送られたデータ並び情報は、そのまま受信確認情報として、そのデータ並び情報を生成した通信の相手先の通信回路1のデータ受信部12へ送り返すのに利用され、又、送信側通信プロトコル制御部49へ送られた受信確認情報は、送信側通信プロトコル制御部49において、1つのフレームのデータが適正に受信されたことを確認するのに利用される。
受信フレーム分離回路31が受信する後続のフレームについても上記の処理が繰り返され、受信フレーム分離回路31が受け取ったフレームに含まれる送信対象のデータが受信バッファメモリ22に順次に書込まれていくと、それと並行して、受信バッファメモリ22のデータが読出されて、データ処理部2へ出力される。
受信バッファメモリ22からのデータの読出しは、リードオーダカウンタ34が管理する。
上述のようにフレームのデータ並び情報が「1」〜「13」の範囲で付されるときは、リードオーダカウンタ34はその範囲でカウントを実行する。
リードオーダカウンタ34は、メモリユニット制御レジスタ33を参照して、カウント値と一致するデータ並び情報のデータがいずれかのメモリユニットに存在していれば、そのメモリユニットのデータを出力するように出力側切換え回路36の接続を切換え、メモリユニットからのデータの送出が完了するとカウント値をインクリメント(+1)してカウントアップし、「13」の次は「1」に戻る。
一方、メモリユニット制御レジスタ33にカウント値と一致するデータ並び情報が記憶されていなければ、そのデータ並び情報のデータが入力されてくるまで、その時点のカウント値を保持したまま待機する。
これによって、メモリユニット制御レジスタ33及びリードオーダカウンタ34は、受信バッファメモリ22に書込まれた一群のデータを前記データ並び情報によって特定される順序通りに読出す読出し制御手段OCとして機能する。
以上のデータの受信の過程を、図7に示す受信事例によって説明する。
図7の「受信範囲」として示す最上段は、図8のフローチャートのステップ#4の処理における「所定の範囲」の移り変わりを示しており、「受信フレーム」として示す次段は順次にデータ受信部12へ入力されるフレームの入力タイミングと各フレームのデータ並び情報とを示しており、更に次段の「受信バッファメモリ」は、(1)〜(4)で示す各メモリユニットの記憶内容を示しており、最下段の「受信データ出力」は、データ受信部12からデータ処理部2へ出力されるデータの出力タイミングとデータ並び情報とを示している。
尚、図7中、例えば「Data[#1]」とは、データ並び情報が「1」のフレームのデータ(本来の送信対象のデータ)という意味である。
図7の事例では、「受信フレーム」の段においてデータ並び情報の周囲を右下がりの斜線で囲んだものの送信で通信エラーが発生したことを示しており、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」のデータは、図7の「受信データ出力」において破線Pで示す期間で受信バッファメモリ22から読出し出力されるのであるが、通信エラーが発生したために「リカバリ期間」として示す3フレーム後にデータ並び情報が「1」のデータが出力される。
このデータ並び情報が「1」のデータを受信バッファメモリ22から出力している期間では、再送信されてきたデータ並び情報が「1」のフレームに先行して受け取ったデータ並び情報が「2」及び「3」のフレームのデータを記憶保持しながら、データ並び情報が「1」のデータの受信バッファメモリ22からの読出し出力と、後続のデータ(データ並び情報が「4」のフレームのデータ)の受信バッファメモリ22への書込みとを並行して行っており、通信エラーのリカバリを確保しながら、効率良くデータの伝送が行えていることを示している。
〔データ送信部11の基本動作〕
次に、データ送信部11の動作を説明する。
データ処理部2は、上記フレームの「データ」ブロック102のデータ量を単位として繰り返しデータを出力し、ライトオーダカウンタ41は、データ処理部2が1フレーム分のデータを出力するたびにそれを検出してカウント値をインクリメント(+1)してカウントアップして行く。
ライトオーダカウンタ41のカウント値の範囲は、フレームのデータ並び情報の範囲に一致させてあり、上述のように「1」〜「13」の範囲で、「13」の次は「1」に戻ってカウントアップする。
ライトオーダカウンタ41のカウント値はメモリユニット制御レジスタ42へ入力され、そのカウント値を受け取ったメモリユニット制御レジスタ42は、送信バッファメモリ21の4つのメモリユニットに対応する4つのレジスタのうちの空きのもの(メモリユニットステータスレジスタ202の情報が「データ無し」になっているもの)に受け取ったカウント値を書込み、そのカウント値を書込んだレジスタに対応するメモリユニットにデータ処理部2から送られてくるデータを書込むように入力側切換え回路45の接続状態を設定する。
これによってデータ処理部2から送られてくるデータが、順次に送信バッファメモリ21のメモリユニットへ書込まれて行き、メモリユニット制御レジスタ42へ書込まれるライトオーダカウンタ41のカウント値は、1フレームとしてひとまとまりで送信される一群のデータのデータ並び情報となる。
送信バッファメモリ21からのデータの読出しは、リードオーダカウンタ43が管理する。
ライトオーダカウンタ41により「1」〜「13」のカウント値が出力されるときは、リードオーダカウンタ43はその範囲でカウントを実行する。
リードオーダカウンタ43は、送信側通信プロトコル制御部49からのデータ出力指示を受け取ると、メモリユニット制御レジスタ42を参照して、カウント値と一致するデータ並び情報のデータがいずれかのメモリユニットに存在していれば、そのメモリユニットのデータを出力するように出力側切換え回路46の接続を切換え、メモリユニットからのデータの出力が完了するとカウント値をインクリメント(+1)してカウントアップする。
リードオーダカウンタ43は、このようにカウント値をデータ送出タイミング毎に順次にカウントアップしてデータを送り出していくというのが基本的な動作であるが、データを適正に送信できなかったときに送信済みのフレームを再送信するという動作にも対応している。
リードオーダカウンタ43には、再送信を要するフレームのデータ並び情報を記憶保持するためのレジスタであるリトライオーダレジスタ43aが備えられており、このリトライオーダレジスタ43aにデータ並び情報が書込まれているとき、上述のカウント値によるデータ出力に優先して、リトライオーダレジスタ43aに書込まれているデータ並び情報のデータを記憶したメモリユニットからのデータ出力を実行する。従って、再送信時のデータ並び情報は、初回の送信と同一のものである。
データ出力が完了するとリトライオーダレジスタ43aのデータはクリアされる。
リトライオーダレジスタ43aへのデータ並び情報の書込みは、送信側通信プロトコル制御部49が担当しており、このために、送信側通信プロトコル制御部49は実質的に図9のフローチャートに示す処理を実行している。
図9の処理は、所定のデータ送出タイミング毎に実行され、先ず受信側通信プロトコル制御部37から送られてきている最新の受信確認情報によって、図12に示すテーブルによる送信の要否の判断処理を行う(ステップ#11)。
これは、受信確認情報を送り返してきたフレームの受信に送信側が失敗したときに、実際にはデータが適正に受信されているにも拘わらず、再送信が必要なものとしてリトライオーダレジスタ43aに登録されてしまうのを極力回避するための処理である。
図12は、上述のように、左端の列に記載したデータ並び情報で特定される前記一群のデータを再送信の要否の判断対象とするときに、右側の3列のうちのいずれかのデータ並び情報についての受信確認情報を受け取ったときに、判断対象の前記一群のデータを再送信不要とする判断を行単位で行うものであり、図12の具体的な運用としては、例えば、上記の最新の受信確認情報が「11」のデータ並び情報についてのものであるとき、メモリユニット制御レジスタ42に「5」,「6」,「7」のデータ並び情報が存在するか否かを検索し、もし存在すれば(ステップ#11)、それに対応するメモリユニットステータスレジスタ202の情報を「データ無し」に書き換えて、そのデータ並び情報に対応する前記一群のデータを送信バッファメモリ21から実質的に削除する(ステップ#12)。
すなわち、上述した図12のテーブルの意義から、再送信の要否の判断対象のフレームについて、通信の相手先の機器A,Bから受信確認情報を受け取る前に、再送信の要否の判断対象のフレームよりも、データ並び情報において、通信の相手先の機器A,Bの受信バッファメモリ22における前記一群のデータの記憶可能個数分だけ後のフレームあるいは更にそれよりも後のフレームについての受信確認情報を受け取ったとき、再送信の要否の判断対象のフレームの再送信を不要と判断しているのである。
次ぎに、上記の最新の受信確認情報に一致するデータ並び情報がメモリユニット制御レジスタ42に存在するか否かによって、その送信済みのフレームの送信が適正に完了したか否かを確認する(ステップ#13)。
後述するデータ並び情報のやり取りの事例によって説明するが、受信確認情報は、データの送信後、設定個数のフレーム(具体的には、2フレーム)以内に戻って来る関係になっており、フレームの送信後、その送信したフレームに含まれるデータ並び情報から生成された受信確認情報を、設定期間内(具体的には2個のフレームを送信する期間内)に受け取ったときは適正にデータの送信が完了したと判断し、受け取らなかったときは適正にデータの送信が完了しなかったものと判断する。
適正にデータの送信が完了したと判断したときは(ステップ#13)、受信確認情報と同一のデータ並び情報を保持しているメモリユニット制御レジスタ42のメモリユニットステータスレジスタ202の情報を「データ無し」に書き換えて、そのデータ並び情報に対応している送信バッファメモリ21のメモリユニットに後続のデータを書込み可能な状態とする(ステップ#14)。すなわち、この時点まで、送信済みのフレームのデータは、送信バッファメモリ21に保持されている。対応するメモリユニット制御レジスタ42の記憶内容についても同様である。
逆に、これから送信しようとするフレームよりも3フレーム以上前の送信済みフレームについて、受信側通信プロトコル制御部37から受信確認情報を受け取れず、適正にデータの送信が完了しなかったと判断したときは(ステップ#13)、そのフレームのデータ並び情報をリードオーダカウンタ43に備えられているリトライオーダレジスタ43aに書込む(ステップ#15)。従って、送信側通信プロトコル制御部49は、フレームを送信後、通信の相手先の機器から受信確認情報を設定期間内に受け取ることができなかったときに、送信済みのフレームに含まれる前記一群のデータを再送信させる送信側通信制御手段CCとして機能する。
この後、送信側通信プロトコル制御部49は、受信側通信プロトコル制御部37から受け取ったデータ並び情報をそのまま受信確認情報として使用して、送信フレーム生成回路44へ送り(ステップ#16)、更に、リードオーダカウンタ43に対してデータ出力指示を送出する(ステップ#17)。ここで送信フレーム生成回路44へ送る受信確認情報は、この時点で通信の相手先の機器A,Bから受信している最新のフレームについての受信確認情報となっている。
リードオーダカウンタ43は、この送信側通信プロトコル制御部49からのデータ送出指示によって、上述のように出力側切換え回路46を切換え操作し、送信バッファメモリ21からデータを出力させ、併せて、その一群のデータのデータ並び情報を送信フレーム生成回路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フレームの期間と設定している。
次ぎに、送受信の過程でエラーが発生した場合の事例について、図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によって受取りが拒否されることになる。
〔別実施形態〕
以下、本発明の別実施形態を列記する。
(1)上記実施の形態では、データ並び情報の値の設定として、「1」から始まる連続番号とする場合を例示しているが、「0」から始まる連続番号として、N=13の場合は、「0」〜「12」、N=16の場合は、「0」〜「15」などと設定しても良い。
又、データ並び情報の値は、順序関係を把握できるものであれば、番号以外にも、例えばアルファベット等の各種の値を用いることができる。
(2)上記実施の形態では、データ受信部12で受け取ったフレームのデータ並び情報を、データ送信部11においてそのまま受信確認情報として送信出力しているが、データ並び情報から受信確認情報を生成する規則は、受信確認情報からもとのデータ並び情報が認識可能なものであれば任意の規則を用いることができる。
(3)上記実施の形態では、機器A,Bで画像処理の処理部分を分担し、処理過程にある画像データをリアルタイム的に授受する場合を例示しているが、複数の機器が連係して動作するようなシステムにおいて、各機器の制御データを授受するような場合にも本発明を適用できる。
(4)上記実施の形態では、本来の送信対象のデータが存在するか否かに拘わらず、通信当事者間で、フレームを常時且つ連続的に相互に送信する場合を例示しているが、通信当事者間の双方で送信すべきデータが無いときは、フレームの送信を停止しておき、どちらか一方に送信すべきデータが発生したときに、相互にフレームを送信する状態に切換えるように構成しても良い。
(5)上記実施の形態では、データ送信部11及びデータ受信部12をFPGA上で論理回路として構成し、全てハードウェア構成とする場合を例示しているが、適宜にDSP等を利用してソフトウェアによる処理に置き換えても良い。
(6)上記実施の形態では、送信バッファメモリ21及び受信バッファメモリ22の構成として、個別のメモリユニットを複数個備える場合を例示しているが、送信バッファメモリ21及び受信バッファメモリ22を、夫々単一のメモリ空間を有するメモリにて構成し、そのメモリ空間に前記一群のデータを夫々記憶するアドレスを設定するように構成しても良い。
本発明の実施の形態にかかる概略ブロック構成図 本発明の実施の形態にかかる要部ブロック構成図 本発明の実施の形態にかかるフレーム及びそれの送受信を説明する図 本発明の実施の形態にかかるメモリセル制御レジスタの構成の説明図 本発明の実施の形態にかかる基本的なフレームの送受信タイミングの説明図 本発明の実施の形態にかかるエラー時におけるフレームの送受信タイミングの説明図 本発明の実施の形態にかかるデータ受信部でのデータを受信とそれの出力を説明する図 本発明の実施の形態にかかるフローチャート 本発明の実施の形態にかかるフローチャート 本発明の作用を説明するためのデータ並び情報等の送受信を示す図 本発明の作用を説明するための補正テーブルの例示図 本発明の作用を説明するための補正テーブルの例示図 本発明の作用を説明するための補正テーブルを一般化した図 本発明の作用を説明するための補正テーブルの例示図 本発明の作用を説明するための補正テーブルの例示図
符号の説明
A,B 機器
CC 送信側通信制御手段
OC 読出し制御手段
RC 受信側通信制御手段
11 データ送信部
12 データ受信部
21 送信バッファメモリ
22 受信バッファメモリ

Claims (6)

  1. 送信対象とする一群のデータと通信制御用のデータとにより構成されて通信の1単位としてひとまとまりで送受信される単位データ群を相互に送信して1対1全二重双方向通信を行う一対の機器の双方に、データを送信するデータ送信部とデータを受信するデータ受信部とが設けられ、前記データ送信部に、送信出力するためのデータを一時的に記憶保持する送信バッファメモリが備えられ、前記データ受信部に、受信したデータを一時的に記憶保持する受信バッファメモリが備えられた通信システムであって、
    前記単位データ群の前記通信制御用のデータに、その単位データ群に含まれる前記一群のデータと他の単位データ群に含まれる前記一群のデータとの順序関係を示すデータ並び情報が含まれ、
    前記一対の機器の双方が、前記単位データ群を適正に受信するに伴って、その単位データ群に含まれる前記データ並び情報と設定関係を有する受信確認情報を前記通信制御用のデータの一部として前記単位データ群の送信元へ送信するように構成され、
    前記データ送信部に、前記単位データ群を送信後、通信の相手先の機器から前記受信確認情報を設定期間内に受け取ることができなかったときに、送信済みの前記単位データ群に含まれる前記一群のデータを初回の送信と同一の前記データ並び情報によって再送信させる送信側通信制御手段が備えられ、
    前記データ受信部に、前記受信バッファメモリに書込まれた前記一群のデータを前記データ並び情報によって特定される順序通りに読出す読出し制御手段が備えられ、
    前記送信バッファメモリ及び前記受信バッファメモリは、前記一群のデータを複数個記憶する記憶容量を有するように構成され、
    前記データ並び情報は、設定個数のデータを循環的に繰り返して使用するように構成されている通信システム。
  2. 前記データ受信部に、前記読出し制御手段によって次ぎに読出される前記一群のデータの前記データ並び情報と、そのデータ並び情報よりも前記受信バッファメモリにおける前記一群のデータの記憶可能個数から1を引いた数だけ並び順が後の前記データ並び情報との範囲内に存在する前記データ並び情報を有する前記単位データ群の前記一群のデータを前記受信バッファメモリに読出し出力の対象として記憶保持させる受信側通信制御手段が備えられて構成されている請求項1記載の通信システム。
  3. 前記送信側通信制御手段は、前記再送信の要否の判断対象の前記単位データ群について、通信の相手先の機器から前記受信確認情報を受け取る前に、前記再送信の要否の判断対象の単位データ群よりも、前記データ並び情報において、通信の相手先の機器の前記受信バッファメモリにおける前記一群のデータの記憶可能個数分だけ後の単位データ群あるいは更にそれよりも後の単位データ群についての前記受信確認情報を受け取ったとき、前記再送信の要否の判断対象の前記単位データ群の再送信を不要と判断するように構成されている請求項2記載の通信システム。
  4. 前記データ並び情報の個数をN、前記送信バッファメモリにおける前記一群のデータの記憶可能個数をNS、通信の相手先の機器の前記受信バッファメモリにおける前記一群のデータの記憶可能個数をNRとして、N≧2×NS+2×NR−3となるように設定されている請求項3記載の通信システム。
  5. 前記単位データ群のデータサイズが固定的に設定されている請求項1〜4のいずれか1項に記載の通信システム。
  6. 前記送信バッファメモリ及び前記受信バッファメモリは、1つの前記一群のデータを記憶できる記憶容量を有するメモリユニットを複数個備えて構成されている請求項1〜5のいずれか1項に記載の通信システム。
JP2005211163A 2005-07-21 2005-07-21 通信システム Pending JP2007028491A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005211163A JP2007028491A (ja) 2005-07-21 2005-07-21 通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005211163A JP2007028491A (ja) 2005-07-21 2005-07-21 通信システム

Publications (1)

Publication Number Publication Date
JP2007028491A true JP2007028491A (ja) 2007-02-01

Family

ID=37788617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005211163A Pending JP2007028491A (ja) 2005-07-21 2005-07-21 通信システム

Country Status (1)

Country Link
JP (1) JP2007028491A (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02186730A (ja) * 1989-01-13 1990-07-23 Nec Corp データ通信システム
JPH07131482A (ja) * 1993-11-05 1995-05-19 Hitachi Ltd 網内通信制御処理方式
JPH08181715A (ja) * 1994-12-27 1996-07-12 Matsushita Electric Works Ltd 送受信装置
JPH09191384A (ja) * 1996-01-10 1997-07-22 Nec Corp 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式
JPH1041954A (ja) * 1996-07-24 1998-02-13 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 伝送システム及び伝送方法
WO2003085934A1 (fr) * 2002-04-08 2003-10-16 Mitsubishi Denki Kabushiki Kaisha Appareil et procede de transmission de donnees

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02186730A (ja) * 1989-01-13 1990-07-23 Nec Corp データ通信システム
JPH07131482A (ja) * 1993-11-05 1995-05-19 Hitachi Ltd 網内通信制御処理方式
JPH08181715A (ja) * 1994-12-27 1996-07-12 Matsushita Electric Works Ltd 送受信装置
JPH09191384A (ja) * 1996-01-10 1997-07-22 Nec Corp 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式
JPH1041954A (ja) * 1996-07-24 1998-02-13 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 伝送システム及び伝送方法
WO2003085934A1 (fr) * 2002-04-08 2003-10-16 Mitsubishi Denki Kabushiki Kaisha Appareil et procede de transmission de donnees

Similar Documents

Publication Publication Date Title
US7350114B2 (en) Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
JP2503086B2 (ja) デ―タ・リンク制御方法
CN102098212A (zh) 用于处理外围组件互连快速协议的设备
JP2015027100A (ja) パケット通信の伝送制御方法及びパケット通信システム
CN103141050A (zh) 快速通道互联系统中数据包重传方法、节点
CN102436430B (zh) 存储设备、主机控制器和存储系统
CN101556573A (zh) 一种基于pcie的数据传输方法和装置
KR0129038B1 (ko) 패킷 네트워크에 있어서 수신 및 소오스 어드레싱 방법 및 그 장치
CN109039552B (zh) 一种数据恢复方法及装置
US20070019677A1 (en) Data processing method and system based on a serial transmission interface
JPH0756976B2 (ja) 情報分配方式とその送信局および端末装置
JP4112717B2 (ja) データ処理装置
JP2007028491A (ja) 通信システム
CN101887403A (zh) 节省usb协议中存封包的存储器的数据传输方法及装置
JP2007028132A (ja) 通信システム
JP2007028122A (ja) 通信システム
JP4690271B2 (ja) データ転送バッファ制御装置及びデータ転送制御方法
CN112187408A (zh) 数据处理方法、系统、装置、存储介质和处理器
JP6330541B2 (ja) データ送受信システム、データ送信装置、データ送受信システムの制御方法
JP4121123B2 (ja) 移動体通信方法及びシステム
CN102684834B (zh) 一种通用成帧规程设备及其管理信息通信方法
JP6217206B2 (ja) 通信制御装置、画像処理装置、転送制御プログラム
JP2000244530A (ja) データ通信装置
JP6107499B2 (ja) 通信制御装置及び画像形成装置
JPH0496534A (ja) Hdlcにおける選択再送方式

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