説明

データ伝送システム

【課題】 受信したブロックに対する誤り訂正が精度良く行え、ランダム誤り率の高い環境においても、データ伝送効率の低下を十分に抑えることができるデータ伝送システムを提供する。
【解決手段】 送信側1から受信側2へ送信するデータ本体を含むブロックを、複数回連続して受信側2に送信する。受信側2では、一方のブロックから抽出された誤りのある全ての単位データを、他方のブロックにおいて誤りの無いことが検知されている該当する位置の単位データに置き換えることで、ブロックを再構築する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、送信側から受信側へデータを送信するデータ伝送システムに関し、特に受信側において受信したデータに誤りがあれば、その誤りを訂正するデータ伝送システムに関する。
【背景技術】
【0002】
従来、単一の装置内に設けられた2つの機能部間や、異なる2つの装置間等でのデータ伝送は、例えば連送照合方式や再送方式で行われていた。連送照合方式は、送信側が送信するデータに誤り訂正符号を付加して複数回連続して送信し、受信側が受信したデータ毎に、そのデータに付加されている誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知したデータを適正な受信データとする、伝送方式である。また、再送方式は、送信側が送信するデータに誤り訂正符号を付加して送信し、受信側が受信したデータにそのデータに付加されている誤り訂正符号を用いて誤りの有無を検知し、誤りのあることを検知した場合に送信側に対してデータの再送を要求し、反対に誤りの無いことを検知した場合にそのデータを適正な受信データとする、伝送方式である。送信側は、受信側からデータの再送が要求されると、該当するデータを再送信する。
【0003】
ところで、受信側において受信したデータに誤りがあった場合に、その誤りを訂正し、適正なデータを得る誤り訂正機能を有していないデータ伝送方式では、ランダム誤り率が高い環境では、送信側と受信側との間におけるデータ伝送が行えないという事態が生じる問題があった。具体的にいうと、連送照合方式は、このような環境では、受信側で複数回受信したデータの中に、誤りの無いデータが存在しないという事態(全てのデータで誤りが検知された事態)となって、受信エラーとなることがある。また、再送方式は、受信側が送信側に対して再送要求を繰り返し何度も送信するが、いつまでたっても誤りの無いデータを受信することができないという事態になることがある。
【0004】
そこで、ランダム誤り率が高い環境であっても、送信側と受信側との間でデータ伝送が適正に行え、データ伝送効率の低下が抑えられるように、受信側において誤りのあることを検知したデータに対して、その誤りを訂正し、適正なデータを得るデータ伝送方式が提案されている。例えば、特許文献1では、送信側が受信側に送信するデータ(この発明で言うブロックに相当する。)を所定の単位で分割した単位データを2回ずつ繰り返して送信し、受信側では一方の単位データに誤りがあったとき、この誤りがあった単位データを対応する他方の単位データに置き換え、送信側から送信されてきたデータを得る誤り訂正の技術が提案されている。具体的には、送信側から受信側へ送信するデータがA、B、C、D・・・であるとき(A、B、C、Dが、それぞれ単位データ)、送信側はA1、A2、B1、B2、C1、C2、D1、D2・・・を受信側へ送信する。ここで、A、A1、A2は同じ単位データであり、B、B1、B2は同じ単位データであり、C、C1、C2は同じ単位データであり、D、D1、D2は、同じ単位データである。受信側は、送信されてきた各単位データに誤りが無ければ、A1、B1、C1、D1・・・としたデータを適正な受信データとする。また、B1に誤りがあった場合、A1、B2、C1、D1・・・としたデータを適正な受信データとする誤り訂正を行う。但し、ここではB1以外に誤りは無かったものとする。また、特許文献2には、送信側から受信側へデータを奇数回送信し、受信側において奇数回受信したデータを用いて、ビット単位で多数決をとり、各ビットの値を決定することで誤りを訂正する技術が記載されている。
【特許文献1】特開平10−84334号公報
【特許文献2】特開2002−353945号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1は、連続する複数の単位データで誤りが発生しないことを前提にした技術であった。このため、連続する複数の単位データに渡って誤りが発生すると、所謂バースト誤りが発生すると、適正な受信データを得ることができず、その結果受信エラーになるという問題があった。具体的にいうと、受信側が2回ずつ受信している各単位データにおいて、いずれかの単位データでその両方に誤りが発生した場合、誤り訂正が行えず受信エラーになる。また、特許文献2に記載されている誤り訂正は、同期ずれにより誤りが発生した場合、誤りが発生したデータにおける各ビットの位置が不定になっている。したがって、ビット単位で多数決をとって、各ビットの値を決定する誤り訂正では、適正なデータが得られない。
【0006】
この発明の目的は、受信したブロックに対する誤り訂正が精度良く行え、ランダム誤り率の高い環境や、バースト誤りが発生したときにおいても、データ伝送効率の低下を十分に抑えることができるデータ伝送システムを提供することにある。
【課題を解決するための手段】
【0007】
この発明のデータ伝送システムは、上記課題を解決するために以下の構成を備えている。
【0008】
(1)送信側から、受信側へデータを送信するデータ伝送システムにおいて、
前記送信側には、データ本体を含むブロックを複数回連続して前記受信側へ送信する送信手段が備えられ、
前記ブロックは、先頭にこのブロックの開始を示す同期データが付加されているとともに、後端にこのブロック全体に対する第1の誤り訂正符号が付加されたフォーマットであり、
前記送信手段は、前記ブロックを所定の単位で分割した単位データ毎に、その単位データに対する第2の誤り訂正符号を付加して前記受信側へ送信する手段であり、
前記受信側には、前記送信側の送信手段により複数回連続して送信されてきたブロックを受信する受信手段と、
前記受信手段が受信したブロック毎に、各単位データに対して、その単位データに付加されている前記第2の誤り訂正符号を用いて誤りの有無を検知する単位データ誤り検知手段と、
前記受信手段が受信したブロック毎に、そのブロックに付加されている前記第1の誤り訂正符号を用いて誤りの有無を検知するブロック誤り検知手段と、
前記ブロック誤り検知手段により誤りの無いことが検知されたブロックが無ければ、前記受信手段が受信した複数のブロックを用いて、ブロックを再構築する再構築手段と、が備えられ、
前記再構築手段は、単位データ毎に、いずれかのブロックから前記単位データ誤り検知手段により誤りの無いことが検知されている単位データを抽出し、ここで抽出した単位データを用いてブロックを再構築する手段である。
【0009】
この構成では、送信側がデータ本体を含むブロックを受信側に複数回連続して送信する。このブロックは、先頭に同期データが付加されているとともに、後端にブロック全体に対する第1の誤り訂正符号、例えば水平パリティ、が付加されている。また、送信手段が、ブロックを所定の単位、例えば1バイト単位、で分割した単位データ毎に、その単位データに対する第2の誤り訂正符号、例えば垂直パリティ、を付加して送信する。
【0010】
受信側では、受信手段において送信側から複数回連続して送信されてきたブロックを受信する。受信手段は、調歩同期等で単位データ毎に同期を取りながらブロックを受信する。単位データ誤り検知手段が、受信手段で受信したブロック毎に、各単位データに対して付加されている第2の誤り訂正符号を用いて誤りの有無を検知する。例えば、垂直パリティチェックによる誤り検知を行う。また、ブロック誤り検知手段が、ブロック毎に付加されている第1の誤り訂正符号を用いて誤りの有無を検知する。例えば、水平パリティチェックによる誤り検知を行う。そして、受信側は、ブロック誤り検知手段が誤りの無いことを検知したブロックあれば、このブロックを送信側から送信されてきたブロックであるとする。
【0011】
一方、ブロック誤り検知手段が誤りの無いことを検知したブロックが無ければ、すなわち受信した全てのブロックで、ブロック誤り検知手段が誤りのあることを検知した場合、再構築手段がブロックの再構築を行う。このブロックの再構築は、単位データ毎に、受信したいずれかのブロックから、単位データ誤り検知手段により誤りの無いことが検知された単位データを抽出し、ここで抽出した単位データを用いてブロックを構築する処理である。
【0012】
上述したように、送信側が受信側へブロックを連続して複数回送信するので、ランダム誤り率が高い環境であっても、受信側で受信された各ブロックで、同じ単位データに誤りが発生する可能性は極めて低い。また、いずれかのブロックで連続する複数の単位データに渡って誤りが発生しても(所謂バースト誤りが発生しても)、このブロックで誤りが発生した単位データが、他のブロックで誤りなく受信されている可能性が極めて高い。さらに、全てのブロックで同期ズレが発生する可能性も極めて低い。すなわち、ブロックを構成する各単位データが、いずれかのブロックで誤り無く受信されている可能性が極めて高い。そして、誤り無く受信されている単位データでブロックを再構築するので、殆どの場合、受信側においてブロックが再構築でき、誤りを訂正した適正なブロックを得ることができる。したがって、ランダム誤り率が高い環境や、バースト誤り、同期ズレが発生した場合であっても、受信側において適正なブロックを得ることができ、データ伝送効率の低下を十分に抑えることができる。
【0013】
(2)前記受信側の再構築手段は、再構築したブロックに対して、このブロックに付加されている前記第1の誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知した場合に、今回再構築したブロックを適正なブロックとする手段である。
【0014】
この構成では、再構築したブロックに付加されている第1の誤り訂正符号を用いて誤りの有無を検知し、誤りが検知されなかった場合に、再構築したブロックを適正なブロックとするので、受信側において誤り訂正が適正に行われなかったブロックを用いて動作するのを防止できる。
【0015】
(3)前記受信側のブロック誤り検知手段は、前記単位データ誤り検知手段によりいずれかの単位データに誤りのあることが検知されているブロックについては、前記第1の誤り訂正符号を用いた誤りの有無の検知を行うことなく、誤りのあるブロックとする手段である。
【0016】
この構成では、単位データ誤り検知手段により誤りのあることが検知された単位データが存在するブロックについては、ブロック全体に対する誤り検知を行うことなく、誤りのあるブロックであると判定するので、受信側における処理負荷が抑えられる。
【0017】
(4)前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記単位データ誤り検知手段により誤りのあることが検知された単位ブロックがあり、その個数が最小のブロックをベースブロックとし、このベースブロックにおいて誤りのあることが検知されている単位データを、他のブロックにおいて誤りの無いことが検知されている該当する単位データで置き換える手段である。
【0018】
この構成では、受信したブロックの中で、最も受信状態が良いブロック、すなわち誤りのある単位データが最小のブロック、をベースブロックとし、このベースブロックにおいて誤りのある単位データを他のブロックの単位データで置き換えるようにしたので、誤り訂正の精度を向上させることができる。
【0019】
(5)前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である。前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である。
【0020】
この構成では、先頭の同期データが誤り無く受信できなかったブロック、すなわち各単位データのデータの位置が不定であるブロック、については、再構築手段によるブロックの再構築に用いないので、誤り訂正の精度の低下が抑えられる。
【0021】
(6)前記送信側の送信手段部は、前記ブロックを複数回連続して前記受信側へ送信するとき、受信側をアイドル状態にするガードデータをブロック間に挿入して送信する手段である。
【0022】
この構成では、連続するブロック間で先のブロックで生じた同期ズレが、後のブロックに波及するのを防止できる。
【発明の効果】
【0023】
この発明によれば、送信側が受信側へブロックを連続して複数回送信するので、ランダム誤り率が高い環境や、バースト誤り、同期ズレ等が発生した場合等であっても、殆どの場合、受信側において誤りを訂正した適正なブロックを得ることができる。したがって、ランダム誤り率が高い環境や、バースト誤り、同期ズレが発生した場合等であっても、データ伝送効率の低下を十分に抑えることができる。
【発明を実施するための最良の形態】
【0024】
以下、この発明の実施形態であるデータ伝送システムについて説明する。
【0025】
図1は、この発明の実施形態であるデータ伝送システムの機能構成を示す図である。この実施形態のデータ伝送システムは、送信側1から受信側2へデータを送信し、受信側2において受信したデータに誤りがあれば、その誤りを訂正するシステムである。送信側1と受信側2とは、有線で接続される構成であってもよいし、無線で接続される構成であってもよい。また、送信側1と受信側2とは、単一の装置内に設けることもできれば(単一の装置内でのデータ伝送に利用する場合)、異なる2つの装置にそれぞれ設けることもできる(異なる2つの装置間でのデータ伝送に利用する場合)。例えば、紙幣処理装置(単一の装置)において、送信側1を紙幣のデータを読み取る読取部(一方の機能部)に設け、受信側2を読取部で読み取った紙幣のデータに基づいて紙幣の真偽等を鑑別する鑑別部(他方の機能部)に設けることで、読取部から鑑別部への紙幣データの送信に利用できる。また、監視システムにおいて、送信側1を監視エリアを撮像する撮像装置に設け、受信側2を撮像装置で撮像した撮像画像を処理するホスト装置に設けることで、撮像装置からホスト装置への撮像画像データの送信に利用できる。
【0026】
この実施形態のデータ伝送システムは、調歩同期により送信側1と受信側2との間におけるデータ伝送を制御するシステムである。送信側1は、図2(A)に示すデータ本体を、受信側2へ送信するとき、図2(B)に示すフレームを作成し、これを受信側2へ送信する。図2(A)において、D1、D2、D3、・・・、Dnは、所定の単位、例えば1バイト、の大きさのデータ(以下、単位データと言う。)である。送信側1は、図2(B)に示すように同期データ、およびレングスをデータ本体の先頭に付加し、水平パリティをデータ本体の後端に付加したブロックを2つつなげたフレームを作成する(第1ブロック、第2ブロックをつなげたフレームを作成する。)。同期データは、ブロックの開始を示す特定のデータであり、レングスはデータ本体の大きさを示すデータであり、水平パリティはこのブロックに対して誤りの有無を検知するためのデータである。第1ブロックと第2ブロックは、同じである。また、このフレームには、第1ブロックの先頭、および第2ブロックの先頭(第1ブロックと第2ブロックとの間)にガードデータが挿入されている。このガードデータは、単位データ以上の大きさ(ここでは、1バイト以上)であり、受信側2において調歩同期で同期を取るときのスタートビット(この実施形態では0を示すビットである。)と反対のビット(この実施形態では1を示すビットであり、ストップビットと同じである。)を並べたビット列のデータである。このガードデータは、受信側2をアイドル状態にするためのデータである。さらに、第2ブロックの後端には、フレームの終了を示す終了データが付加されている。この終了データは、単位データと同じ大きさであり、受信側2に対して図2(B)に示すフレームの送信完了を通知するためのデータである。
【0027】
なお、この終了データを用いないで、受信側2において送信側1からのフレームの送信完了が検知できるように構成してもよい。この場合には、図2(B)に示すフレームに終了データを設けなくてもよい。
【0028】
送信側1は、図2(B)に示すフレームを先頭から順番に受信側2へ送信する。このとき、送信側1は、フレーム内の第1ブロック、第2ブロック、および終了データを所定の単位で分割した単位データ毎に送信する。同期データ、レングス、および水平パリティは、単位データよりも大きければ、単位データに分割されて送信される。一方、終了データは、上述したように単位データと同じ大きさであるので、実際には一度に送信される。また、送信側1が送信する各単位データには、図2(C)に示すように、その先頭に調歩同期のためのスタートビット、その後端にこの単位データの誤りの有無を検知するための垂直パリティ、および調歩同期のためのストップビットが付加されている。
【0029】
なお、ガードデータについては、スタートビット、垂直パリティ、およびストップビットを付加することなく、また単位データに分割することなく一度に送信する構成としてもよいし、反対に単位データに分割し、スタートビット、垂直パリティ、およびストップビットを付加して送信する構成としてもよい。この実施形態では、ガードデータについては、スタートビット、垂直パリティ、およびストップビットを付加することなく、また単位データに分割することなく一度に送信する場合を例にして説明する。
【0030】
受信側2は、送信側1から送信されてくる単位データ毎に、スタートビットで同期を取り、ストップビットで単位データの受信完了を検知する。上述の説明から明らかなように、この実施形態のデータ伝送システムでは、送信側1が図2(B)に示すフレームを受信側2に送信することで、データ本体が受信側2に2回送信される。
【0031】
なお、この実施形態では、フレーム内のブロックを2つとした場合を例にしているが、フレーム内のブロックについては3つ以上であってもよい。
【0032】
図1に戻って、送信側1、および受信側2の機能構成について説明する。送信側1は、受信側2に送信するデータ本体を一時的に記憶する送信バッファメモリ11(以下、単に送信バッファ11と言う。)と、送信バッファ11に記憶しているデータ本体の先頭に同期データ、レングスを付加する同期データ付加部12と、ブロック全体に対する誤りの有無を検知するための水平パリティをデータ本体の後端に付加する水平パリティ付加部13と、同期データ、レングス、水平パリティが付加をデータ本体に付加したブロックを複数個作成し(ここでは、第1ブロック、第2ブロックを作成する。)、これらのブロックをつないだフレームを作成する複数化処理部14と、ブロックを所定の大きさで分割した単位データ毎に、その後端に垂直パリティを付加する垂直パリティ付加部15と、垂直パリティが付加された単位データに対して調歩同期用のスタートビットを先頭に付加するとともに、後端にストップビットを付加し、これを受信側2へ送信する送信処理部16と、を備えている。送信側1の各部の動作は、図示していない制御部により制御される。送信バッファ11には、例えば上述した紙幣処理装置の場合、読取部が読み取った紙幣のデータが記憶され、上述した監視システムの場合、撮像装置が撮像した監視エリアの撮像画像データが記憶される。同期データ付加部12がデータ本体の先頭に付加する同期データは、ブロックの開始を示す特定のデータである。また、ここでは、同期データ付加部12がデータ本体にレングスを付加するとしているが、送信側1から受信側2へ送信されるデータ本体の大きさが一定であるデータ伝送システムであれば、このレングスを付加しない構成としてもよい。この場合には、送信側1から送信されてくるデータ本体の大きさを受信側2に予め設定しておけばよい。
【0033】
水平パリティ付加部13は、同期データ付加部12で同期データ、およびレングスが付加されたデータ本体に対して、水平パリティを後端に付加したブロックを作成する。水平パリティは、このブロックに対する誤りの有無を検知するためのデータである。複数化処理部14は、作成されたブロックを複数個、この実施形態では2個、作成し、これらをつないだフレームを作成する。また、複数化処理部14は、フレームを作成するときに、ガードデータを第1ブロックの先頭、および第2ブロックの先頭(第1ブロックと、第2のブロックとの間)に付加するとともに、終了データを第2のブロックの後端に付加する。ガードデータは、受信側2において同期ズレが生じているときに、この同期ずれがこの後に送信されてくるブロックの受信に波及しないようにするためのデータであり、受信側2がガードデータを受信している間に、この受信側2をアイドル状態に移行させるデータである。また、終了データは、受信側2に対してフレームの送信完了を通知するためのデータである。また、垂直パリティ付加部15は、各ブロックを所定の大きさで分割した単位データ毎に、その単位データに対する誤りを検知するための垂直パリティを付加する。送信処理部16は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビット、およびストップビットを付加し、これを受信側2へ送信する。
【0034】
なお、垂直パリティ付加部15は、ガードデータについては垂直パリティを付加しない、また、送信処理部16は、ガードデータについてはスタートビットおよびストップビットを付加せず、且つ単位データ毎に分割して送信するのではなく一度に送信する。また、ここでは、複数化処理部13がガードデータを付加する構成としているが、同期データ付加部12がガードデータを付加する構成としてもよい。
【0035】
また、受信側2は、送信側1から送信されてきたデータを受信する受信処理部21と、受信処理部21において受信された単位データ毎に、その単位データに対する誤りの有無を検知する垂直パリティチェック部22と、受信処理部21で受信したデータの中からブロックの開始を示す同期データを検索する同期データ検索部23と、ブロック毎にそのブロックに対する誤りの有無を検知する水平パリティチェック部24と、水平パリティチェック部24で誤りの無いことが検知されたブロックが存在しないときに、ブロックを再構築する再構築部25と、受信データを一時的に記憶する受信バッファメモリ26(以下、単に受信バッファ26と言う。)と、垂直パリティチェック部22、および水平パリティチェック部24における検知結果等を記憶する制御メモリ27と、を備えている。
【0036】
なお、受信バッファ26と、制御メモリ27とは、単一のメモリで記憶領域を分けて構成してもよいし、異なるメモリで構成してもよい。
【0037】
受信側2の各部の動作は、図示していない制御部により制御される。受信処理部21は、送信側1から送信されてきた各単位データの受信制御を、その単位データに付加されているスタートビット、およびストップビットを利用した調歩同期で行う。具体的には、スタートビットを検知すると、このスタートビットで同期を取り、その後単位データ、および垂直パリティを受信した後に、ストップビットを検知すると、今回の単位データの受信完了と判断し、次の単位データにかかるスタートビットを待つ。また、受信側2は、受信処理部21において終了データを受信すると、フレームの受信を完了したと判定する。垂直パリティチェック部22は、受信処理部21が受信した単位データ毎に、その単位データに付加されている垂直パリティを用いて、この受信した単位データに対する誤りの有無を検知する。受信バッファ26は、受信処理部21が単位データを受信する毎に、その単位データを受信した順番に記憶する。また、制御メモリ27は、各単位データに対する垂直パリティチェック部22の検知結果(誤りの有無)を、受信した順番に記憶する。同期データ検索部23は、受信バッファ26が受信した順番に記憶している単位データの中から同期データを検索する。これにより、受信バッファ26が、受信した順番に記憶している単位データに対して、第1ブロック、および第2ブロックの開始位置を特定することができ、第1ブロック、および第2ブロックを構成する単位データを認識することができる。また、制御メモリ27が誤りの有無を記憶している単位データ毎に、その単位データが属するブロック、およびそのブロックにおける位置を特定することができる。水平パリティチェック部24は、同期データ検索部23で同期データが検索され、且つ垂直パリティチェック部23で誤りのあることが検知された単位データが存在しないブロックについて、このブロックに付加されている水平パリティを用いて、誤りの有無を検知する。この実施形態のデータ伝送システムでは、同期データ検索部23において同期データが検索されなかったブロックや、垂直パリティチェック部22において誤りのあることが検知されたブロックについては、すでに適正でないことが分かっているので、水平パリティチェック部24で誤りの有無を検知しない構成としている。ただし、水平パリティチェック部24は、同期データ検索部23において同期データが検索されなかったブロックや、垂直パリティチェック部22において誤りのあることが検知されたブロックを、誤りのあるブロックとして検知する。制御メモリ27には、ブロック毎に水平パリティチェック部24における検知結果も記憶される。再構築部25は、水平パリティチェック部24で誤りの無いことが検知されなかったブロックが存在しなければ、今回受信した第1のブロック、および第2のブロックを用いてブロックを再構築する誤り訂正を行う。具体的には、ブロックを構成する単位データ毎に、今回受信した各ブロックから垂直パリティチェック部22で誤りの無いことが検知された単位データを抽出し、ここで抽出した単位データでブロックを再構築する。また、再構築したブロックに付加されている水平パリティを用いて、再構築したブロックが適正であるかどうかを判定する。
【0038】
次に、この発明の実施形態であるデータ伝送システムの動作について説明する。図3は、この発明の実施形態のデータ伝送システムにおける送信側の送信処理を示すフローチャートであり、図4、5は、この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。送信側1は、受信側2へ送信するデータ本体が発生する毎に、図3に示す処理を実行する。送信側1は、受信側2へ送信するデータ本体を送信バッファ11に記憶する(s1)。送信側1は、同期データ付加部12において、同期データ、およびレングスを送信バッファ11に記憶したデータの先頭に付加するとともに、水平パリティ付加部13において水平パリティをデータ本体の後端に付加し、受信側2へ送信するブロックを作成する(s2)。また、送信側1は、s2で作成したブロックをコピーし、これらのブロック(第1のブロック、第2のブロック)を2つ並べたフレームを作成する(s3)。第1のブロックと、第2のブロックとは同じである。さらに、複数化処理部14は、ガードデータを第1のブロックの先頭、および第2のブロックの先頭(第1のブロックと第2のブロックの間)に挿入するとともに、第2ブロックの後端に終了データを挿入する(s4)。このガードデータは、後述処理で付加する調歩同期のためのスタートビット(この実施形態では0のビットである。)と反対のビット(この実施形態では1のビットであり、ストップビットと同じである。)を並べたデータである。また、ガードデータは、送信側1が受信側にデータを送信するときの単位である、単位データ以上の大きさである。また、終了データは、単位データと同じ大きさであり、例えば全てのビットが0のデータである。
【0039】
送信側1は、s4でガードデータおよび終了データが挿入されたフレームを作成すると、このフレームを受信側2へ送信し(s5)、本処理を終了する。s5にかかる処理では、第1ブロックの先頭に付加されているガードデータを、そのまま送信処理部16から受信側2へ送信する。また、垂直パリティ付加部15は、第1ブロックを所定の大きさである単位データに分割し、分割した単位データ毎に後端に垂直パリティを付加する。送信処理部16は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビットを先頭に付加するとともに、ストップビットを後端に付加し、これを受信側2へ送信する。送信側1は、第1ブロックの送信が完了すると、第1ブロックと第2ブロックとの間に挿入されているガードデータをそのまま送信処理部16から受信側2へ送信する。そして、垂直パリティ付加部15は、第2ブロックを所定の大きさである単位データに分割し、分割した単位データ毎に後端に垂直パリティを付加する。送信処理部16は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビットを先頭に付加するとともに、ストップビットを後端に付加し、これを受信側2へ送信する。そして、最後に垂直パリティ、スタートビット、およびストップビットが付加された終了データを送信し、フレームの送信を完了する。
【0040】
このように、送信側1における受信側2へのフレームの送信は、ガードデータ、第1ブロック、ガードデータ、第2ブロック、終了データをこの順番に送信することにより行われる。また、第1ブロック、および第2ブロックは、所定の大きさである単位データに分割され、受信側2へ送信される。終了データは、単位データと同じ大きさであるので、分割されることなく送信される。各単位データには、調歩同期のためのスタートビット、ストップビット、およびその単位データの誤りの有無を検知するための垂直パリティが付加されている。また、このフレームの送信により、送信側1はデータ本体を受信側2に2回送信することになる。
【0041】
次に、図4、図5を参照しながら、受信側2における受信動作について説明する。受信側2は、調歩同期により送信側1から送信されてくるデータを受信する。送信側1がフレームの送信を開始すると、受信側2の受信処理部21では、ガードデータが最初に受信される。このガードデータは、上述したように単位データ以上の大きさで、且つ調歩同期のスタートビットと反対のビット(ストップビットと同じ)を並べたデータである。これにより、受信処理部21は、送信側1がフレームの送信を開始する直前にノイズの影響を受けてスタートビットを誤検知した場合であっても、この誤検知したスタートビットにかかる単位データの受信処理についてはガードデータのいずれかのビットをストップビットであると検知し、次のスタートビットを待つアイドル状態に移行する。一方、受信処理部21は、送信側1がフレームの送信を開始したときにアイドル状態であれば、ガードデータを受信している間、このアイドル状態を継続する。したがって、受信側2で送信側1から送信されてきた第1ブロックの先頭の単位データが受信されるとき、受信処理部21を確実にアイドル状態にしておくことができる。
【0042】
受信処理部21は、調歩同期により送信側1から送信されてくる単位データを受信すると(s11)、今回受信した単位データを受信バッファ26に記憶させるとともに(s12)、垂直パリティチェック部22において今回受信した単位データに対する誤りの有無を検知し(s13)、その結果を制御メモリ27に記憶させる(s14)。受信バッファ11には、受信処理部21で受信した順番に単位データが記憶される(図6(A)参照)。また、制御メモリ27には、受信処理部21で受信した順番に、その単位データに対する誤りの有無(垂直パリティチェックによる検知結果)が記憶される(図6(B)参照)。また、受信処理部21は、単位データを受信する毎に、受信した単位データが終了データであるかどうかを判定している。受信側2は、s15で送信側1から送信されてきているフレームの受信が完了したと判定するまで、s11〜s14の処理を繰り返す。s15では、受信処理部21において終了データが受信されたときに、フレームの受信が完了したと判定する処理である。
【0043】
受信側2は、s15でフレームの受信が完了したと判定すると、同期データ検索部13において、受信バッファ26に受信した順番に記憶している単位データの中から、同期データを検索する(s16)。受信側2は、s16で同期データを2つ得ることができれば、第1ブロック、および第2ブロックの同期データが得られたと判定する。また、s16で同期データが1つしか得られなければ、この同期データが第1ブロックの同期データであるか、第2ブロックの同期データであるかを判定する。この判定は、今回得られた同期データを含むブロックの前後で受信された単位データの個数に基づいて行う。具体的には、今回得られた同期データを含むブロックの前側で受信された単位データの個数が後側で受信された単位データの個数よりも多ければ、今回得られた同期データを含むブロックを第2ブロックであると判定する。反対に、今回得られた同期データを含むブロックの前側で受信された単位データの個数が後側で受信された単位データの個数よりも少なければ、今回得られた同期データを含むブロックを第1ブロックであると判定する。
【0044】
なお、受信側2は、s16で同期データを1つも得られなければ、第1ブロックおよび第2ブロックの同期データが得られなかったと判定する。また、s16では、垂直パリティチェック部22で誤りの無いことが検知された単位データに対して同期データの検索を行っている。したがって、s16にかかる検索で得られた同期データは、垂直パリティチェック部22で誤りの無いことが検知された単位データで構成されている。
【0045】
受信側2は、第1ブロックの同期データがs16で得られていれば、この第1ブロックが適正な大きさであるかどうかを判定する(s17、s18)。s18では、受信バッファ26に受信された順番に記憶されている単位データから、s16で検索された第1ブロックの同期データを基準にして第1ブロックの単位データを抽出する。そして、ここで抽出した第1ブロックを構成する単位データに含まれているレングスにかかるデータを用いて判定する。具体的には、レングスにかかる単位データが垂直パリティチェック部22で誤りの無いことが検知されているかどうかを判定し、誤りの無いことが検知された単位データであれば、このレングスにかかるデータを用いて、この第1ブロックが適正な大きさであるかどうかを判定する。受信側2は、s18で第1ブロックが適正な大きさであると判定すると、この第1ブロックの全ての単位データに誤りがないかどうかを判定する(s19)。s19にかかる判定は、制御メモリ27に受信した順番に記憶されている各単位データに対する誤りの有無に基づいて、第1ブロックの全ての単位データに誤りがないかどうかを判定する処理である。ただし、第1ブロックの同期データ、およびレングスについては、すでに誤りの無いことが確認されているので、実際には第1ブロックのデータ本体、および水平パリティにかかる単位データについて誤りがないかどうかを判定する。
【0046】
なお、受信部2は、s18においてレングスにかかる単位データが垂直パリティチェック部22で誤りのあることが検知されていると判定した場合、実際にこのレングスを用いて第1ブロックの大きさが適正であるかどうかを判定することなく、この第1ブロックについては適正な大きさでないと判定する。
【0047】
受信側2は、s19で、第1ブロックの全ての単位データに誤りがないと判定すると、水平パリティチェック部24において、この第1ブロックに付加されている水平パリティを用いて、この第1ブロックに対する誤りの有無を検知する(s20、s21)。受信側2は、s21で第1ブロックに誤りがないと判定すると、この第1ブロックを適正な受信データとし(s22)、本処理を終了する。一方、s19で第1ブロックのいずれかの単位データに誤りがある、またはs21で第1ブロックに誤りがあると判定した場合、この第1ブロックをブロックの再構築に用いる再構築用ブロックに設定する(s23)。
【0048】
なお、s17で同期データが得られていない、s18で適正な大きさでないと判定した場合には、第1ブロックを受信エラーと判定する(s24)。また、制御メモリ27には第1ブロック、第2ブロックに対して水平パリティチェックによる検知結果も記憶される(図6(C)参照)。s20で水平パリティチェックが行われなかったブロックは、誤りのあるブロックとして制御メモリ27に記憶される。
【0049】
また、受信側2は、第2ブロックの同期データがs16で得られていれば、この第2ブロックが適正な大きさであるかどうかを判定する(s25、s26)。s26では、受信バッファ26に受信された順番に記憶されている単位データから、s16で検索された第2ブロックの同期データを基準にして第2ブロックの単位データを抽出する。そして、ここで抽出した第2ブロックを構成する単位データに含まれているレングスにかかるデータを用いて判定する。具体的には、レングスにかかる単位データが垂直パリティチェック部22で誤りの無いことが検知されているかどうかを判定し、誤りの無いことが検知された単位データであれば、このレングスにかかるデータを用いて、この第2ブロックが適正な大きさであるかどうかを判定する。受信側2は、s26で第2ブロックが適正な大きさであると判定すると、この第2ブロックの全ての単位データに誤りがないかどうかを判定する(s27)。s27にかかる判定は、制御メモリ27に受信した順番に記憶されている各単位データに対する誤りの有無に基づいて、第2ブロックの全ての単位データに誤りがないかどうかを判定する処理である。ただし、第2ブロックの同期データ、およびレングスについては、すでに誤りの無いことが確認されているので、実際には第2ブロックのデータ本体、および水平パリティにかかる単位データについて誤りがないかどうかを判定する。
【0050】
なお、受信部2は、s26においてレングスにかかる単位データが垂直パリティチェック部22で誤りのあることが検知されていると判定した場合、実際にこのレングスを用いて第2ブロックの大きさが適正であるかどうかを判定することなく、この第1ブロックについては適正な大きさでないと判定する。
【0051】
受信側2は、s27で、第2ブロックの全ての単位データに誤りがないと判定すると、水平パリティチェック部24において、この第2ブロックに付加されている水平パリティを用いて、この第2ブロックに対する誤りの有無を検知する(s28、s29)。受信側2は、s29で第2ブロックに誤りがないと判定すると、この第2ブロックを適正な受信データとし(s30)、本処理を終了する。一方、s27で第2ブロックのいずれかの単位データに誤りがある、またはs29で第1ブロックに誤りがあると判定した場合、この第2ブロックをブロックの再構築に用いる再構築用ブロックに設定する(s31)。
【0052】
なお、s25で同期データが得られていない、s26で適正な大きさでないと判定した場合には、第2ブロックを受信エラーと判定する(s32)。
【0053】
受信側2は、s22、またはs30で適正な受信データを設定できなかったとき、すなわち第1ブロック、および第2ブロックの両方がともに誤りなく受信できていないとき、再構築用ブロックとして設定されたブロックが複数あるかどうかを判定する(s33)。受信側2は、s33で再構築用ブロックが複数設定されていないと判定すると、ブロックの再構築ができないと判断し、エラー処理を行う(s34)。s34にかかるエラー処理は、送信側1に対して、今回のフレームの再送要求を行う処理であってもよいし、係員に対して復旧作業を要求するための警報出力等であってもよい。
【0054】
なお、この実施形態では、1フレームでブロックを2つ受信側2へ送信する構成としているので、第1ブロックまたは第2ブロックの少なくとも一方が受信エラーと判定された場合には、ブロックの再構築できないと判断され、s34でエラー処理が行われることになるが、通常のデータ伝送において、ブロックが上述した受信エラーと判定される可能性は低く、殆どの場合、s33で再構築用ブロックが複数設定されていると判定される。また、1フレームで受信側2へ送信するブロックを3つや4つに増やすことにより、s33で再構築用ブロックに設定されたブロックが複数ないと判定され、s34でエラー処理が行われる頻度を一層低減することができる。
【0055】
受信側2は、s33で再構築用ブロックが複数設定されていると判定すると、再構築部25でブロックを再構築する再構築処理を実行する(s35)。図7は、この再構築処理を示すフローチャートである。受信側2は、設定されている再構築用ブロックの中で、誤りがあると判定された単位データがあり、その個数が最も少ないブロックをベースブロックに設定する(s41)。s41では誤りのある単位データは無いが、水平パリティでの誤り検知で誤りのあることが検知されたブロックをベースブロックに設定しない。すなわち、どの単位データに誤りがあるのか分からないブロックをベースブロックに設定しない。また、再構築用ブロックの中で、誤りがあると判定された単位データが最も少ないブロックが、今回のフレームの受信において、受信状態が最も良かったブロックである。言い換えれば、今回のフレームの受信において、受信状態が最も良かったブロックをベースブロックに設定している。
【0056】
再構築部25は、s41で設定したベースブロックにおいて、誤りのあることが検知されている単位データを全て抽出し、ここで抽出した単位データを他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換え(s42)、s42でブロックが再構築できたかどうかを判定する(s43)。例えば、図8(A)に示すように、再構築用ブロックに設定されている第1ブロックがデータ本体のD1,D3に誤りがあり、第2ブロックがデータ本体のD2、D4,D5に誤りがある場合、図8(B)に示すように、s41で誤りのある単位データの個数が2個である第1ブロックをベースブロックに設定する。また、s42でベースブロックとして設定した第1ブロックのデータ本体のD1、D3を、第2のブロックのD1、D3に置き換える(図8(C)参照)。
【0057】
通常、ランダム誤り率が高い環境や、いずれかのブロックでバースト誤りが発生しているような状況であっても、受信側2で受信された各ブロックで、同じ単位データに誤りが発生している可能性は極めて低い。したがって、殆ど場合、ベースブロックから抽出された誤りのある単位データについては、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えることができる。すなわち、図8(C)に示すように、殆どの場合、ブロックが再構築できる。
【0058】
なお、ここでブロックが再構築できたとは、ベースブロックから抽出された誤りのある全ての単位データが、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えられたと言う意味である。言い換えれば、ベースブロックから抽出された誤りのあるいずれかの単位データが、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えられなかった場合にブロックが再構築できなかったと判定される。
【0059】
再構築部25は、s43でブロックが再構築できなかったと判定すると、再構築処理結果を再構築失敗とし(s44)、本処理を終了する。一方、s43でブロックが再構築できたと判定すると、この再構築されたブロックについて、水平パリティを用いた水平パリティチェックを行い(s45)、誤りの有無を判定する(s46)。再構築部25は、s46で再構築したブロックに誤りがあると判定すると、s44で再構築処理結果を再構築失敗とし、本処理を終了する。一方、s46で誤りがないと判定すると、再構築処理結果を再構築成功とし(s47)、本処理を終了する。
【0060】
受信側2は、s35にかかる再構築処理を行うと、再構築処理結果が再構築成功であるか、再構築失敗であるかを判定する(s36)。受信側2は、s36で再構築失敗であると判定すると、s34でエラー処理を行う。反対に、s36で再構築成功であると判定すると、今回再構築されたブロックを送信側1から送信されてきた適正なデータとし(s37)、本処理を終了する。
【0061】
このように、この実施形態のデータ伝送システムは、送信側1から受信側2へ送信するデータ本体を含むブロックを、複数回連続して受信側2に送信する。また、受信側2において、各ブロックの同じ単位データが垂直パリティチェックで誤りがあると検知される可能性が極めて低いことから、殆どの場合、上述した再構築処理によりブロックを再構築することができる。また、再構築できたブロックについて、水平パリティチェックを行って、誤りの無いことが検知されたときに、送信側1から送信されてきた適正なデータであるとするようにしているので、受信側2が不適性なデータで動作するのを防止することができる。また、ガードデータを設けているので、受信側2がブロックの先頭である同期データを適正に検知することができ、ブロックの受信に失敗する頻度、すなわちs24またはs32で受信エラーと判定される頻度、を十分に抑えることができる。
【0062】
また、同期データが検出されなかったブロックについては、ブロックの再構築に使用しない構成としているので、再構築されたブロックの信頼性を低下させることもない。
【0063】
また、上記実施形態では、再構築されたブロックが水平パリティチェックにより誤りがあると判定されたとき、受信エラーとするとしたが、別のブロックをベースブロックとして抽出し、再度ブロックの再構築を行うようにしてもよい。このようにすれば、適正なブロックが再構築される可能性を一層増大させることができ、誤り訂正の精度をさらに向上させることができる。
【0064】
なお、上記実施形態では、送信側1の複数化処理部14が、第1ブロックと第2ブロックとをつないだフレームを作成するとしたが、送信処理部16においてブロックを2回連続するようにしてもよい。この場合、複数化処理部はブロックの先頭にガードデータを付加する処理を行えばよく、送信処理部16がブロックを2回連続して送信し、その後に終了データを生成し、送信する構成とすればよい。
【0065】
また、s34にかかるエラー処理を、送信側1に対して再送要求を行う構成とする場合、この再送要求に対して送信側1から再送されてきたフレームを受信し、このフレームにおいてもs22またはs30で第1ブロックまたは第2ブロックを適正なデータとできなかったとき、先のフレームの処理で設定した再構築用ブロックを利用して、ブロックを再構築するようにしてもよい。
【図面の簡単な説明】
【0066】
【図1】この発明の実施形態であるデータ伝送システムの機能構成を示す図である。
【図2】この発明の実施形態であるデータ伝送システムの送信側におけるフレームの作成手順を説明する図である。
【図3】この発明の実施形態のデータ伝送システムにおける送信側の送信処理を示すフローチャートである。
【図4】この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。
【図5】この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。
【図6】この発明の実施形態のデータ伝送システムにおける受信側の受信バッファ、および制御メモリに記憶されるデータを説明する図である。
【図7】この発明の実施形態のデータ伝送システムにおける受信側の再構築処理を示すフローチャートである。
【図8】この発明の実施形態のデータ伝送システムにおける受信側の再構築処理を説明する図である。
【符号の説明】
【0067】
1−送信側
2−受信側
11−送信バッファメモリ
12−同期データ付加部
13−水平パリティ付加部
14−複数化処理部
15−垂直パリティ付加部
16−送信処理部
21−受信処理部
22−垂直パリティチェック部
23−同期データ検索部
24−水平パリティチェック部
25−再構築部
26−受信バッファメモリ
27−制御メモリ

【特許請求の範囲】
【請求項1】
送信側から、受信側へデータを送信するデータ伝送システムにおいて、
前記送信側には、データ本体を含むブロックを複数回連続して前記受信側へ送信する送信手段が備えられ、
前記ブロックは、先頭にこのブロックの開始を示す同期データが付加されているとともに、後端にこのブロック全体に対する第1の誤り訂正符号が付加されたフォーマットであり、
前記送信手段は、前記ブロックを所定の単位で分割した単位データ毎に、その単位データに対する第2の誤り訂正符号を付加して前記受信側へ送信する手段であり、
前記受信側には、前記送信側の送信手段により複数回連続して送信されてきたブロックを受信する受信手段と、
前記受信手段が受信したブロック毎に、各単位データに対して、その単位データに付加されている前記第2の誤り訂正符号を用いて誤りの有無を検知する単位データ誤り検知手段と、
前記受信手段が受信したブロック毎に、そのブロックに付加されている前記第1の誤り訂正符号を用いて誤りの有無を検知するブロック誤り検知手段と、
前記ブロック誤り検知手段により誤りの無いことが検知されたブロックが無ければ、前記受信手段が受信した複数のブロックを用いて、ブロックを再構築する再構築手段と、が備えられ、
前記再構築手段は、単位データ毎に、いずれかのブロックから前記単位データ誤り検知手段により誤りの無いことが検知されている単位データを抽出し、ここで抽出した単位データを用いてブロックを再構築する手段であるデータ伝送システム。
【請求項2】
前記受信側の再構築手段は、再構築したブロックに対して、このブロックに付加されている前記第1の誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知した場合に、今回再構築したブロックを適正なブロックとする手段である請求項1に記載のデータ伝送システム。
【請求項3】
前記受信側のブロック誤り検知手段は、前記単位データ誤り検知手段によりいずれかの単位データに誤りのあることが検知されているブロックについては、前記第1の誤り訂正符号を用いた誤りの有無の検知を行うことなく、誤りのあるブロックとする手段である請求項1または2に記載のデータ伝送システム。
【請求項4】
前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記単位データ誤り検知手段により誤りのあることが検知された単位ブロックがあり、その個数が最小のブロックをベースブロックとし、このベースブロックにおいて誤りのあることが検知されている単位データを、他のブロックにおいて誤りの無いことが検知されている該当する単位データで置き換える手段である請求項1〜3のいずれかに記載のデータ伝送システム。
【請求項5】
前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である請求項1〜4のいずれかに記載のデータ伝送システム。
【請求項6】
前記送信側の送信手段部は、前記ブロックを複数回連続して前記受信側へ送信するとき、受信側をアイドル状態にするガードデータをブロック間に挿入して送信する手段である請求項1〜5のいずれかに記載のデータ伝送システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−311439(P2006−311439A)
【公開日】平成18年11月9日(2006.11.9)
【国際特許分類】
【出願番号】特願2005−134277(P2005−134277)
【出願日】平成17年5月2日(2005.5.2)
【出願人】(504373093)日立オムロンターミナルソリューションズ株式会社 (1,225)
【Fターム(参考)】