(57)【要約】【課題】  受信したブロックに対する誤り訂正が精度良く行え、ランダム誤り率の高い環境においても、データ伝送効率の低下を十分に抑えることができるデータ伝送システムを提供する。【解決手段】  送信側１から受信側２へ送信するデータ本体を含むブロックを、複数回連続して受信側２に送信する。受信側２では、一方のブロックから抽出された誤りのある全ての単位データを、他方のブロックにおいて誤りの無いことが検知されている該当する位置の単位データに置き換えることで、ブロックを再構築する。【選択図】  図８
2006311439.tif 000002
【特許請求の範囲】
【請求項１】
送信側から、受信側へデータを送信するデータ伝送システムにおいて、
前記送信側には、データ本体を含むブロックを複数回連続して前記受信側へ送信する送信手段が備えられ、
前記ブロックは、先頭にこのブロックの開始を示す同期データが付加されているとともに、後端にこのブロック全体に対する第１の誤り訂正符号が付加されたフォーマットであり、
前記送信手段は、前記ブロックを所定の単位で分割した単位データ毎に、その単位データに対する第２の誤り訂正符号を付加して前記受信側へ送信する手段であり、
前記受信側には、前記送信側の送信手段により複数回連続して送信されてきたブロックを受信する受信手段と、
前記受信手段が受信したブロック毎に、各単位データに対して、その単位データに付加されている前記第２の誤り訂正符号を用いて誤りの有無を検知する単位データ誤り検知手段と、
前記受信手段が受信したブロック毎に、そのブロックに付加されている前記第１の誤り訂正符号を用いて誤りの有無を検知するブロック誤り検知手段と、
前記ブロック誤り検知手段により誤りの無いことが検知されたブロックが無ければ、前記受信手段が受信した複数のブロックを用いて、ブロックを再構築する再構築手段と、が備えられ、
前記再構築手段は、単位データ毎に、いずれかのブロックから前記単位データ誤り検知手段により誤りの無いことが検知されている単位データを抽出し、ここで抽出した単位データを用いてブロックを再構築する手段であるデータ伝送システム。
【請求項２】
前記受信側の再構築手段は、再構築したブロックに対して、このブロックに付加されている前記第１の誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知した場合に、今回再構築したブロックを適正なブロックとする手段である請求項１に記載のデータ伝送システム。
【請求項３】
前記受信側のブロック誤り検知手段は、前記単位データ誤り検知手段によりいずれかの単位データに誤りのあることが検知されているブロックについては、前記第１の誤り訂正符号を用いた誤りの有無の検知を行うことなく、誤りのあるブロックとする手段である請求項１または２に記載のデータ伝送システム。
【請求項４】
前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記単位データ誤り検知手段により誤りのあることが検知された単位ブロックがあり、その個数が最小のブロックをベースブロックとし、このベースブロックにおいて誤りのあることが検知されている単位データを、他のブロックにおいて誤りの無いことが検知されている該当する単位データで置き換える手段である請求項１〜３のいずれかに記載のデータ伝送システム。
【請求項５】
前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である請求項１〜４のいずれかに記載のデータ伝送システム。
【請求項６】
前記送信側の送信手段部は、前記ブロックを複数回連続して前記受信側へ送信するとき、受信側をアイドル状態にするガードデータをブロック間に挿入して送信する手段である請求項１〜５のいずれかに記載のデータ伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、送信側から受信側へデータを送信するデータ伝送システムに関し、特に受信側において受信したデータに誤りがあれば、その誤りを訂正するデータ伝送システムに関する。
【背景技術】
【０００２】
従来、単一の装置内に設けられた２つの機能部間や、異なる２つの装置間等でのデータ伝送は、例えば連送照合方式や再送方式で行われていた。連送照合方式は、送信側が送信するデータに誤り訂正符号を付加して複数回連続して送信し、受信側が受信したデータ毎に、そのデータに付加されている誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知したデータを適正な受信データとする、伝送方式である。また、再送方式は、送信側が送信するデータに誤り訂正符号を付加して送信し、受信側が受信したデータにそのデータに付加されている誤り訂正符号を用いて誤りの有無を検知し、誤りのあることを検知した場合に送信側に対してデータの再送を要求し、反対に誤りの無いことを検知した場合にそのデータを適正な受信データとする、伝送方式である。送信側は、受信側からデータの再送が要求されると、該当するデータを再送信する。
【０００３】
ところで、受信側において受信したデータに誤りがあった場合に、その誤りを訂正し、適正なデータを得る誤り訂正機能を有していないデータ伝送方式では、ランダム誤り率が高い環境では、送信側と受信側との間におけるデータ伝送が行えないという事態が生じる問題があった。具体的にいうと、連送照合方式は、このような環境では、受信側で複数回受信したデータの中に、誤りの無いデータが存在しないという事態（全てのデータで誤りが検知された事態）となって、受信エラーとなることがある。また、再送方式は、受信側が送信側に対して再送要求を繰り返し何度も送信するが、いつまでたっても誤りの無いデータを受信することができないという事態になることがある。
【０００４】
そこで、ランダム誤り率が高い環境であっても、送信側と受信側との間でデータ伝送が適正に行え、データ伝送効率の低下が抑えられるように、受信側において誤りのあることを検知したデータに対して、その誤りを訂正し、適正なデータを得るデータ伝送方式が提案されている。例えば、特許文献１では、送信側が受信側に送信するデータ（この発明で言うブロックに相当する。）を所定の単位で分割した単位データを２回ずつ繰り返して送信し、受信側では一方の単位データに誤りがあったとき、この誤りがあった単位データを対応する他方の単位データに置き換え、送信側から送信されてきたデータを得る誤り訂正の技術が提案されている。具体的には、送信側から受信側へ送信するデータがＡ、Ｂ、Ｃ、Ｄ・・・であるとき（Ａ、Ｂ、Ｃ、Ｄが、それぞれ単位データ）、送信側はＡ１、Ａ２、Ｂ１、Ｂ２、Ｃ１、Ｃ２、Ｄ１、Ｄ２・・・を受信側へ送信する。ここで、Ａ、Ａ１、Ａ２は同じ単位データであり、Ｂ、Ｂ１、Ｂ２は同じ単位データであり、Ｃ、Ｃ１、Ｃ２は同じ単位データであり、Ｄ、Ｄ１、Ｄ２は、同じ単位データである。受信側は、送信されてきた各単位データに誤りが無ければ、Ａ１、Ｂ１、Ｃ１、Ｄ１・・・としたデータを適正な受信データとする。また、Ｂ１に誤りがあった場合、Ａ１、Ｂ２、Ｃ１、Ｄ１・・・としたデータを適正な受信データとする誤り訂正を行う。但し、ここではＢ１以外に誤りは無かったものとする。また、特許文献２には、送信側から受信側へデータを奇数回送信し、受信側において奇数回受信したデータを用いて、ビット単位で多数決をとり、各ビットの値を決定することで誤りを訂正する技術が記載されている。
【特許文献１】特開平１０−８４３３４号公報
【特許文献２】特開２００２−３５３９４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１は、連続する複数の単位データで誤りが発生しないことを前提にした技術であった。このため、連続する複数の単位データに渡って誤りが発生すると、所謂バースト誤りが発生すると、適正な受信データを得ることができず、その結果受信エラーになるという問題があった。具体的にいうと、受信側が２回ずつ受信している各単位データにおいて、いずれかの単位データでその両方に誤りが発生した場合、誤り訂正が行えず受信エラーになる。また、特許文献２に記載されている誤り訂正は、同期ずれにより誤りが発生した場合、誤りが発生したデータにおける各ビットの位置が不定になっている。したがって、ビット単位で多数決をとって、各ビットの値を決定する誤り訂正では、適正なデータが得られない。
【０００６】
この発明の目的は、受信したブロックに対する誤り訂正が精度良く行え、ランダム誤り率の高い環境や、バースト誤りが発生したときにおいても、データ伝送効率の低下を十分に抑えることができるデータ伝送システムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明のデータ伝送システムは、上記課題を解決するために以下の構成を備えている。
【０００８】
（１）送信側から、受信側へデータを送信するデータ伝送システムにおいて、
前記送信側には、データ本体を含むブロックを複数回連続して前記受信側へ送信する送信手段が備えられ、
前記ブロックは、先頭にこのブロックの開始を示す同期データが付加されているとともに、後端にこのブロック全体に対する第１の誤り訂正符号が付加されたフォーマットであり、
前記送信手段は、前記ブロックを所定の単位で分割した単位データ毎に、その単位データに対する第２の誤り訂正符号を付加して前記受信側へ送信する手段であり、
前記受信側には、前記送信側の送信手段により複数回連続して送信されてきたブロックを受信する受信手段と、
前記受信手段が受信したブロック毎に、各単位データに対して、その単位データに付加されている前記第２の誤り訂正符号を用いて誤りの有無を検知する単位データ誤り検知手段と、
前記受信手段が受信したブロック毎に、そのブロックに付加されている前記第１の誤り訂正符号を用いて誤りの有無を検知するブロック誤り検知手段と、
前記ブロック誤り検知手段により誤りの無いことが検知されたブロックが無ければ、前記受信手段が受信した複数のブロックを用いて、ブロックを再構築する再構築手段と、が備えられ、
前記再構築手段は、単位データ毎に、いずれかのブロックから前記単位データ誤り検知手段により誤りの無いことが検知されている単位データを抽出し、ここで抽出した単位データを用いてブロックを再構築する手段である。
【０００９】
この構成では、送信側がデータ本体を含むブロックを受信側に複数回連続して送信する。このブロックは、先頭に同期データが付加されているとともに、後端にブロック全体に対する第１の誤り訂正符号、例えば水平パリティ、が付加されている。また、送信手段が、ブロックを所定の単位、例えば１バイト単位、で分割した単位データ毎に、その単位データに対する第２の誤り訂正符号、例えば垂直パリティ、を付加して送信する。
【００１０】
受信側では、受信手段において送信側から複数回連続して送信されてきたブロックを受信する。受信手段は、調歩同期等で単位データ毎に同期を取りながらブロックを受信する。単位データ誤り検知手段が、受信手段で受信したブロック毎に、各単位データに対して付加されている第２の誤り訂正符号を用いて誤りの有無を検知する。例えば、垂直パリティチェックによる誤り検知を行う。また、ブロック誤り検知手段が、ブロック毎に付加されている第１の誤り訂正符号を用いて誤りの有無を検知する。例えば、水平パリティチェックによる誤り検知を行う。そして、受信側は、ブロック誤り検知手段が誤りの無いことを検知したブロックあれば、このブロックを送信側から送信されてきたブロックであるとする。
【００１１】
一方、ブロック誤り検知手段が誤りの無いことを検知したブロックが無ければ、すなわち受信した全てのブロックで、ブロック誤り検知手段が誤りのあることを検知した場合、再構築手段がブロックの再構築を行う。このブロックの再構築は、単位データ毎に、受信したいずれかのブロックから、単位データ誤り検知手段により誤りの無いことが検知された単位データを抽出し、ここで抽出した単位データを用いてブロックを構築する処理である。
【００１２】
上述したように、送信側が受信側へブロックを連続して複数回送信するので、ランダム誤り率が高い環境であっても、受信側で受信された各ブロックで、同じ単位データに誤りが発生する可能性は極めて低い。また、いずれかのブロックで連続する複数の単位データに渡って誤りが発生しても（所謂バースト誤りが発生しても）、このブロックで誤りが発生した単位データが、他のブロックで誤りなく受信されている可能性が極めて高い。さらに、全てのブロックで同期ズレが発生する可能性も極めて低い。すなわち、ブロックを構成する各単位データが、いずれかのブロックで誤り無く受信されている可能性が極めて高い。そして、誤り無く受信されている単位データでブロックを再構築するので、殆どの場合、受信側においてブロックが再構築でき、誤りを訂正した適正なブロックを得ることができる。したがって、ランダム誤り率が高い環境や、バースト誤り、同期ズレが発生した場合であっても、受信側において適正なブロックを得ることができ、データ伝送効率の低下を十分に抑えることができる。
【００１３】
（２）前記受信側の再構築手段は、再構築したブロックに対して、このブロックに付加されている前記第１の誤り訂正符号を用いて誤りの有無を検知し、誤りの無いことを検知した場合に、今回再構築したブロックを適正なブロックとする手段である。
【００１４】
この構成では、再構築したブロックに付加されている第１の誤り訂正符号を用いて誤りの有無を検知し、誤りが検知されなかった場合に、再構築したブロックを適正なブロックとするので、受信側において誤り訂正が適正に行われなかったブロックを用いて動作するのを防止できる。
【００１５】
（３）前記受信側のブロック誤り検知手段は、前記単位データ誤り検知手段によりいずれかの単位データに誤りのあることが検知されているブロックについては、前記第１の誤り訂正符号を用いた誤りの有無の検知を行うことなく、誤りのあるブロックとする手段である。
【００１６】
この構成では、単位データ誤り検知手段により誤りのあることが検知された単位データが存在するブロックについては、ブロック全体に対する誤り検知を行うことなく、誤りのあるブロックであると判定するので、受信側における処理負荷が抑えられる。
【００１７】
（４）前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記単位データ誤り検知手段により誤りのあることが検知された単位ブロックがあり、その個数が最小のブロックをベースブロックとし、このベースブロックにおいて誤りのあることが検知されている単位データを、他のブロックにおいて誤りの無いことが検知されている該当する単位データで置き換える手段である。
【００１８】
この構成では、受信したブロックの中で、最も受信状態が良いブロック、すなわち誤りのある単位データが最小のブロック、をベースブロックとし、このベースブロックにおいて誤りのある単位データを他のブロックの単位データで置き換えるようにしたので、誤り訂正の精度を向上させることができる。
【００１９】
（５）前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である。前記受信側の再構築手段は、前記受信手段が受信した複数のブロックの中で、前記同期データが検出できなかったブロックについては、ブロックの再構築に用いない手段である。
【００２０】
この構成では、先頭の同期データが誤り無く受信できなかったブロック、すなわち各単位データのデータの位置が不定であるブロック、については、再構築手段によるブロックの再構築に用いないので、誤り訂正の精度の低下が抑えられる。
【００２１】
（６）前記送信側の送信手段部は、前記ブロックを複数回連続して前記受信側へ送信するとき、受信側をアイドル状態にするガードデータをブロック間に挿入して送信する手段である。
【００２２】
この構成では、連続するブロック間で先のブロックで生じた同期ズレが、後のブロックに波及するのを防止できる。
【発明の効果】
【００２３】
この発明によれば、送信側が受信側へブロックを連続して複数回送信するので、ランダム誤り率が高い環境や、バースト誤り、同期ズレ等が発生した場合等であっても、殆どの場合、受信側において誤りを訂正した適正なブロックを得ることができる。したがって、ランダム誤り率が高い環境や、バースト誤り、同期ズレが発生した場合等であっても、データ伝送効率の低下を十分に抑えることができる。
【発明を実施するための最良の形態】
【００２４】
以下、この発明の実施形態であるデータ伝送システムについて説明する。
【００２５】
図１は、この発明の実施形態であるデータ伝送システムの機能構成を示す図である。この実施形態のデータ伝送システムは、送信側１から受信側２へデータを送信し、受信側２において受信したデータに誤りがあれば、その誤りを訂正するシステムである。送信側１と受信側２とは、有線で接続される構成であってもよいし、無線で接続される構成であってもよい。また、送信側１と受信側２とは、単一の装置内に設けることもできれば（単一の装置内でのデータ伝送に利用する場合）、異なる２つの装置にそれぞれ設けることもできる（異なる２つの装置間でのデータ伝送に利用する場合）。例えば、紙幣処理装置（単一の装置）において、送信側１を紙幣のデータを読み取る読取部（一方の機能部）に設け、受信側２を読取部で読み取った紙幣のデータに基づいて紙幣の真偽等を鑑別する鑑別部（他方の機能部）に設けることで、読取部から鑑別部への紙幣データの送信に利用できる。また、監視システムにおいて、送信側１を監視エリアを撮像する撮像装置に設け、受信側２を撮像装置で撮像した撮像画像を処理するホスト装置に設けることで、撮像装置からホスト装置への撮像画像データの送信に利用できる。
【００２６】
この実施形態のデータ伝送システムは、調歩同期により送信側１と受信側２との間におけるデータ伝送を制御するシステムである。送信側１は、図２（Ａ）に示すデータ本体を、受信側２へ送信するとき、図２（Ｂ）に示すフレームを作成し、これを受信側２へ送信する。図２（Ａ）において、Ｄ１、Ｄ２、Ｄ３、・・・、Ｄｎは、所定の単位、例えば１バイト、の大きさのデータ（以下、単位データと言う。）である。送信側１は、図２（Ｂ）に示すように同期データ、およびレングスをデータ本体の先頭に付加し、水平パリティをデータ本体の後端に付加したブロックを２つつなげたフレームを作成する（第１ブロック、第２ブロックをつなげたフレームを作成する。）。同期データは、ブロックの開始を示す特定のデータであり、レングスはデータ本体の大きさを示すデータであり、水平パリティはこのブロックに対して誤りの有無を検知するためのデータである。第１ブロックと第２ブロックは、同じである。また、このフレームには、第１ブロックの先頭、および第２ブロックの先頭（第１ブロックと第２ブロックとの間）にガードデータが挿入されている。このガードデータは、単位データ以上の大きさ（ここでは、１バイト以上）であり、受信側２において調歩同期で同期を取るときのスタートビット（この実施形態では０を示すビットである。）と反対のビット（この実施形態では１を示すビットであり、ストップビットと同じである。）を並べたビット列のデータである。このガードデータは、受信側２をアイドル状態にするためのデータである。さらに、第２ブロックの後端には、フレームの終了を示す終了データが付加されている。この終了データは、単位データと同じ大きさであり、受信側２に対して図２（Ｂ）に示すフレームの送信完了を通知するためのデータである。
【００２７】
なお、この終了データを用いないで、受信側２において送信側１からのフレームの送信完了が検知できるように構成してもよい。この場合には、図２（Ｂ）に示すフレームに終了データを設けなくてもよい。
【００２８】
送信側１は、図２（Ｂ）に示すフレームを先頭から順番に受信側２へ送信する。このとき、送信側１は、フレーム内の第１ブロック、第２ブロック、および終了データを所定の単位で分割した単位データ毎に送信する。同期データ、レングス、および水平パリティは、単位データよりも大きければ、単位データに分割されて送信される。一方、終了データは、上述したように単位データと同じ大きさであるので、実際には一度に送信される。また、送信側１が送信する各単位データには、図２（Ｃ）に示すように、その先頭に調歩同期のためのスタートビット、その後端にこの単位データの誤りの有無を検知するための垂直パリティ、および調歩同期のためのストップビットが付加されている。
【００２９】
なお、ガードデータについては、スタートビット、垂直パリティ、およびストップビットを付加することなく、また単位データに分割することなく一度に送信する構成としてもよいし、反対に単位データに分割し、スタートビット、垂直パリティ、およびストップビットを付加して送信する構成としてもよい。この実施形態では、ガードデータについては、スタートビット、垂直パリティ、およびストップビットを付加することなく、また単位データに分割することなく一度に送信する場合を例にして説明する。
【００３０】
受信側２は、送信側１から送信されてくる単位データ毎に、スタートビットで同期を取り、ストップビットで単位データの受信完了を検知する。上述の説明から明らかなように、この実施形態のデータ伝送システムでは、送信側１が図２（Ｂ）に示すフレームを受信側２に送信することで、データ本体が受信側２に２回送信される。
【００３１】
なお、この実施形態では、フレーム内のブロックを２つとした場合を例にしているが、フレーム内のブロックについては３つ以上であってもよい。
【００３２】
図１に戻って、送信側１、および受信側２の機能構成について説明する。送信側１は、受信側２に送信するデータ本体を一時的に記憶する送信バッファメモリ１１（以下、単に送信バッファ１１と言う。）と、送信バッファ１１に記憶しているデータ本体の先頭に同期データ、レングスを付加する同期データ付加部１２と、ブロック全体に対する誤りの有無を検知するための水平パリティをデータ本体の後端に付加する水平パリティ付加部１３と、同期データ、レングス、水平パリティが付加をデータ本体に付加したブロックを複数個作成し（ここでは、第１ブロック、第２ブロックを作成する。）、これらのブロックをつないだフレームを作成する複数化処理部１４と、ブロックを所定の大きさで分割した単位データ毎に、その後端に垂直パリティを付加する垂直パリティ付加部１５と、垂直パリティが付加された単位データに対して調歩同期用のスタートビットを先頭に付加するとともに、後端にストップビットを付加し、これを受信側２へ送信する送信処理部１６と、を備えている。送信側１の各部の動作は、図示していない制御部により制御される。送信バッファ１１には、例えば上述した紙幣処理装置の場合、読取部が読み取った紙幣のデータが記憶され、上述した監視システムの場合、撮像装置が撮像した監視エリアの撮像画像データが記憶される。同期データ付加部１２がデータ本体の先頭に付加する同期データは、ブロックの開始を示す特定のデータである。また、ここでは、同期データ付加部１２がデータ本体にレングスを付加するとしているが、送信側１から受信側２へ送信されるデータ本体の大きさが一定であるデータ伝送システムであれば、このレングスを付加しない構成としてもよい。この場合には、送信側１から送信されてくるデータ本体の大きさを受信側２に予め設定しておけばよい。
【００３３】
水平パリティ付加部１３は、同期データ付加部１２で同期データ、およびレングスが付加されたデータ本体に対して、水平パリティを後端に付加したブロックを作成する。水平パリティは、このブロックに対する誤りの有無を検知するためのデータである。複数化処理部１４は、作成されたブロックを複数個、この実施形態では２個、作成し、これらをつないだフレームを作成する。また、複数化処理部１４は、フレームを作成するときに、ガードデータを第１ブロックの先頭、および第２ブロックの先頭（第１ブロックと、第２のブロックとの間）に付加するとともに、終了データを第２のブロックの後端に付加する。ガードデータは、受信側２において同期ズレが生じているときに、この同期ずれがこの後に送信されてくるブロックの受信に波及しないようにするためのデータであり、受信側２がガードデータを受信している間に、この受信側２をアイドル状態に移行させるデータである。また、終了データは、受信側２に対してフレームの送信完了を通知するためのデータである。また、垂直パリティ付加部１５は、各ブロックを所定の大きさで分割した単位データ毎に、その単位データに対する誤りを検知するための垂直パリティを付加する。送信処理部１６は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビット、およびストップビットを付加し、これを受信側２へ送信する。
【００３４】
なお、垂直パリティ付加部１５は、ガードデータについては垂直パリティを付加しない、また、送信処理部１６は、ガードデータについてはスタートビットおよびストップビットを付加せず、且つ単位データ毎に分割して送信するのではなく一度に送信する。また、ここでは、複数化処理部１３がガードデータを付加する構成としているが、同期データ付加部１２がガードデータを付加する構成としてもよい。
【００３５】
また、受信側２は、送信側１から送信されてきたデータを受信する受信処理部２１と、受信処理部２１において受信された単位データ毎に、その単位データに対する誤りの有無を検知する垂直パリティチェック部２２と、受信処理部２１で受信したデータの中からブロックの開始を示す同期データを検索する同期データ検索部２３と、ブロック毎にそのブロックに対する誤りの有無を検知する水平パリティチェック部２４と、水平パリティチェック部２４で誤りの無いことが検知されたブロックが存在しないときに、ブロックを再構築する再構築部２５と、受信データを一時的に記憶する受信バッファメモリ２６（以下、単に受信バッファ２６と言う。）と、垂直パリティチェック部２２、および水平パリティチェック部２４における検知結果等を記憶する制御メモリ２７と、を備えている。
【００３６】
なお、受信バッファ２６と、制御メモリ２７とは、単一のメモリで記憶領域を分けて構成してもよいし、異なるメモリで構成してもよい。
【００３７】
受信側２の各部の動作は、図示していない制御部により制御される。受信処理部２１は、送信側１から送信されてきた各単位データの受信制御を、その単位データに付加されているスタートビット、およびストップビットを利用した調歩同期で行う。具体的には、スタートビットを検知すると、このスタートビットで同期を取り、その後単位データ、および垂直パリティを受信した後に、ストップビットを検知すると、今回の単位データの受信完了と判断し、次の単位データにかかるスタートビットを待つ。また、受信側２は、受信処理部２１において終了データを受信すると、フレームの受信を完了したと判定する。垂直パリティチェック部２２は、受信処理部２１が受信した単位データ毎に、その単位データに付加されている垂直パリティを用いて、この受信した単位データに対する誤りの有無を検知する。受信バッファ２６は、受信処理部２１が単位データを受信する毎に、その単位データを受信した順番に記憶する。また、制御メモリ２７は、各単位データに対する垂直パリティチェック部２２の検知結果（誤りの有無）を、受信した順番に記憶する。同期データ検索部２３は、受信バッファ２６が受信した順番に記憶している単位データの中から同期データを検索する。これにより、受信バッファ２６が、受信した順番に記憶している単位データに対して、第１ブロック、および第２ブロックの開始位置を特定することができ、第１ブロック、および第２ブロックを構成する単位データを認識することができる。また、制御メモリ２７が誤りの有無を記憶している単位データ毎に、その単位データが属するブロック、およびそのブロックにおける位置を特定することができる。水平パリティチェック部２４は、同期データ検索部２３で同期データが検索され、且つ垂直パリティチェック部２３で誤りのあることが検知された単位データが存在しないブロックについて、このブロックに付加されている水平パリティを用いて、誤りの有無を検知する。この実施形態のデータ伝送システムでは、同期データ検索部２３において同期データが検索されなかったブロックや、垂直パリティチェック部２２において誤りのあることが検知されたブロックについては、すでに適正でないことが分かっているので、水平パリティチェック部２４で誤りの有無を検知しない構成としている。ただし、水平パリティチェック部２４は、同期データ検索部２３において同期データが検索されなかったブロックや、垂直パリティチェック部２２において誤りのあることが検知されたブロックを、誤りのあるブロックとして検知する。制御メモリ２７には、ブロック毎に水平パリティチェック部２４における検知結果も記憶される。再構築部２５は、水平パリティチェック部２４で誤りの無いことが検知されなかったブロックが存在しなければ、今回受信した第１のブロック、および第２のブロックを用いてブロックを再構築する誤り訂正を行う。具体的には、ブロックを構成する単位データ毎に、今回受信した各ブロックから垂直パリティチェック部２２で誤りの無いことが検知された単位データを抽出し、ここで抽出した単位データでブロックを再構築する。また、再構築したブロックに付加されている水平パリティを用いて、再構築したブロックが適正であるかどうかを判定する。
【００３８】
次に、この発明の実施形態であるデータ伝送システムの動作について説明する。図３は、この発明の実施形態のデータ伝送システムにおける送信側の送信処理を示すフローチャートであり、図４、５は、この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。送信側１は、受信側２へ送信するデータ本体が発生する毎に、図３に示す処理を実行する。送信側１は、受信側２へ送信するデータ本体を送信バッファ１１に記憶する（ｓ１）。送信側１は、同期データ付加部１２において、同期データ、およびレングスを送信バッファ１１に記憶したデータの先頭に付加するとともに、水平パリティ付加部１３において水平パリティをデータ本体の後端に付加し、受信側２へ送信するブロックを作成する（ｓ２）。また、送信側１は、ｓ２で作成したブロックをコピーし、これらのブロック（第１のブロック、第２のブロック）を２つ並べたフレームを作成する（ｓ３）。第１のブロックと、第２のブロックとは同じである。さらに、複数化処理部１４は、ガードデータを第１のブロックの先頭、および第２のブロックの先頭（第１のブロックと第２のブロックの間）に挿入するとともに、第２ブロックの後端に終了データを挿入する（ｓ４）。このガードデータは、後述処理で付加する調歩同期のためのスタートビット（この実施形態では０のビットである。）と反対のビット（この実施形態では１のビットであり、ストップビットと同じである。）を並べたデータである。また、ガードデータは、送信側１が受信側にデータを送信するときの単位である、単位データ以上の大きさである。また、終了データは、単位データと同じ大きさであり、例えば全てのビットが０のデータである。
【００３９】
送信側１は、ｓ４でガードデータおよび終了データが挿入されたフレームを作成すると、このフレームを受信側２へ送信し（ｓ５）、本処理を終了する。ｓ５にかかる処理では、第１ブロックの先頭に付加されているガードデータを、そのまま送信処理部１６から受信側２へ送信する。また、垂直パリティ付加部１５は、第１ブロックを所定の大きさである単位データに分割し、分割した単位データ毎に後端に垂直パリティを付加する。送信処理部１６は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビットを先頭に付加するとともに、ストップビットを後端に付加し、これを受信側２へ送信する。送信側１は、第１ブロックの送信が完了すると、第１ブロックと第２ブロックとの間に挿入されているガードデータをそのまま送信処理部１６から受信側２へ送信する。そして、垂直パリティ付加部１５は、第２ブロックを所定の大きさである単位データに分割し、分割した単位データ毎に後端に垂直パリティを付加する。送信処理部１６は、垂直パリティが付加された単位データ毎に、調歩同期のためのスタートビットを先頭に付加するとともに、ストップビットを後端に付加し、これを受信側２へ送信する。そして、最後に垂直パリティ、スタートビット、およびストップビットが付加された終了データを送信し、フレームの送信を完了する。
【００４０】
このように、送信側１における受信側２へのフレームの送信は、ガードデータ、第１ブロック、ガードデータ、第２ブロック、終了データをこの順番に送信することにより行われる。また、第１ブロック、および第２ブロックは、所定の大きさである単位データに分割され、受信側２へ送信される。終了データは、単位データと同じ大きさであるので、分割されることなく送信される。各単位データには、調歩同期のためのスタートビット、ストップビット、およびその単位データの誤りの有無を検知するための垂直パリティが付加されている。また、このフレームの送信により、送信側１はデータ本体を受信側２に２回送信することになる。
【００４１】
次に、図４、図５を参照しながら、受信側２における受信動作について説明する。受信側２は、調歩同期により送信側１から送信されてくるデータを受信する。送信側１がフレームの送信を開始すると、受信側２の受信処理部２１では、ガードデータが最初に受信される。このガードデータは、上述したように単位データ以上の大きさで、且つ調歩同期のスタートビットと反対のビット（ストップビットと同じ）を並べたデータである。これにより、受信処理部２１は、送信側１がフレームの送信を開始する直前にノイズの影響を受けてスタートビットを誤検知した場合であっても、この誤検知したスタートビットにかかる単位データの受信処理についてはガードデータのいずれかのビットをストップビットであると検知し、次のスタートビットを待つアイドル状態に移行する。一方、受信処理部２１は、送信側１がフレームの送信を開始したときにアイドル状態であれば、ガードデータを受信している間、このアイドル状態を継続する。したがって、受信側２で送信側１から送信されてきた第１ブロックの先頭の単位データが受信されるとき、受信処理部２１を確実にアイドル状態にしておくことができる。
【００４２】
受信処理部２１は、調歩同期により送信側１から送信されてくる単位データを受信すると（ｓ１１）、今回受信した単位データを受信バッファ２６に記憶させるとともに（ｓ１２）、垂直パリティチェック部２２において今回受信した単位データに対する誤りの有無を検知し（ｓ１３）、その結果を制御メモリ２７に記憶させる（ｓ１４）。受信バッファ１１には、受信処理部２１で受信した順番に単位データが記憶される（図６（Ａ）参照）。また、制御メモリ２７には、受信処理部２１で受信した順番に、その単位データに対する誤りの有無（垂直パリティチェックによる検知結果）が記憶される（図６（Ｂ）参照）。また、受信処理部２１は、単位データを受信する毎に、受信した単位データが終了データであるかどうかを判定している。受信側２は、ｓ１５で送信側１から送信されてきているフレームの受信が完了したと判定するまで、ｓ１１〜ｓ１４の処理を繰り返す。ｓ１５では、受信処理部２１において終了データが受信されたときに、フレームの受信が完了したと判定する処理である。
【００４３】
受信側２は、ｓ１５でフレームの受信が完了したと判定すると、同期データ検索部１３において、受信バッファ２６に受信した順番に記憶している単位データの中から、同期データを検索する（ｓ１６）。受信側２は、ｓ１６で同期データを２つ得ることができれば、第１ブロック、および第２ブロックの同期データが得られたと判定する。また、ｓ１６で同期データが１つしか得られなければ、この同期データが第１ブロックの同期データであるか、第２ブロックの同期データであるかを判定する。この判定は、今回得られた同期データを含むブロックの前後で受信された単位データの個数に基づいて行う。具体的には、今回得られた同期データを含むブロックの前側で受信された単位データの個数が後側で受信された単位データの個数よりも多ければ、今回得られた同期データを含むブロックを第２ブロックであると判定する。反対に、今回得られた同期データを含むブロックの前側で受信された単位データの個数が後側で受信された単位データの個数よりも少なければ、今回得られた同期データを含むブロックを第１ブロックであると判定する。
【００４４】
なお、受信側２は、ｓ１６で同期データを１つも得られなければ、第１ブロックおよび第２ブロックの同期データが得られなかったと判定する。また、ｓ１６では、垂直パリティチェック部２２で誤りの無いことが検知された単位データに対して同期データの検索を行っている。したがって、ｓ１６にかかる検索で得られた同期データは、垂直パリティチェック部２２で誤りの無いことが検知された単位データで構成されている。
【００４５】
受信側２は、第１ブロックの同期データがｓ１６で得られていれば、この第１ブロックが適正な大きさであるかどうかを判定する（ｓ１７、ｓ１８）。ｓ１８では、受信バッファ２６に受信された順番に記憶されている単位データから、ｓ１６で検索された第１ブロックの同期データを基準にして第１ブロックの単位データを抽出する。そして、ここで抽出した第１ブロックを構成する単位データに含まれているレングスにかかるデータを用いて判定する。具体的には、レングスにかかる単位データが垂直パリティチェック部２２で誤りの無いことが検知されているかどうかを判定し、誤りの無いことが検知された単位データであれば、このレングスにかかるデータを用いて、この第１ブロックが適正な大きさであるかどうかを判定する。受信側２は、ｓ１８で第１ブロックが適正な大きさであると判定すると、この第１ブロックの全ての単位データに誤りがないかどうかを判定する（ｓ１９）。ｓ１９にかかる判定は、制御メモリ２７に受信した順番に記憶されている各単位データに対する誤りの有無に基づいて、第１ブロックの全ての単位データに誤りがないかどうかを判定する処理である。ただし、第１ブロックの同期データ、およびレングスについては、すでに誤りの無いことが確認されているので、実際には第１ブロックのデータ本体、および水平パリティにかかる単位データについて誤りがないかどうかを判定する。
【００４６】
なお、受信部２は、ｓ１８においてレングスにかかる単位データが垂直パリティチェック部２２で誤りのあることが検知されていると判定した場合、実際にこのレングスを用いて第１ブロックの大きさが適正であるかどうかを判定することなく、この第１ブロックについては適正な大きさでないと判定する。
【００４７】
受信側２は、ｓ１９で、第１ブロックの全ての単位データに誤りがないと判定すると、水平パリティチェック部２４において、この第１ブロックに付加されている水平パリティを用いて、この第１ブロックに対する誤りの有無を検知する（ｓ２０、ｓ２１）。受信側２は、ｓ２１で第１ブロックに誤りがないと判定すると、この第１ブロックを適正な受信データとし（ｓ２２）、本処理を終了する。一方、ｓ１９で第１ブロックのいずれかの単位データに誤りがある、またはｓ２１で第１ブロックに誤りがあると判定した場合、この第１ブロックをブロックの再構築に用いる再構築用ブロックに設定する（ｓ２３）。
【００４８】
なお、ｓ１７で同期データが得られていない、ｓ１８で適正な大きさでないと判定した場合には、第１ブロックを受信エラーと判定する（ｓ２４）。また、制御メモリ２７には第１ブロック、第２ブロックに対して水平パリティチェックによる検知結果も記憶される（図６（Ｃ）参照）。ｓ２０で水平パリティチェックが行われなかったブロックは、誤りのあるブロックとして制御メモリ２７に記憶される。
【００４９】
また、受信側２は、第２ブロックの同期データがｓ１６で得られていれば、この第２ブロックが適正な大きさであるかどうかを判定する（ｓ２５、ｓ２６）。ｓ２６では、受信バッファ２６に受信された順番に記憶されている単位データから、ｓ１６で検索された第２ブロックの同期データを基準にして第２ブロックの単位データを抽出する。そして、ここで抽出した第２ブロックを構成する単位データに含まれているレングスにかかるデータを用いて判定する。具体的には、レングスにかかる単位データが垂直パリティチェック部２２で誤りの無いことが検知されているかどうかを判定し、誤りの無いことが検知された単位データであれば、このレングスにかかるデータを用いて、この第２ブロックが適正な大きさであるかどうかを判定する。受信側２は、ｓ２６で第２ブロックが適正な大きさであると判定すると、この第２ブロックの全ての単位データに誤りがないかどうかを判定する（ｓ２７）。ｓ２７にかかる判定は、制御メモリ２７に受信した順番に記憶されている各単位データに対する誤りの有無に基づいて、第２ブロックの全ての単位データに誤りがないかどうかを判定する処理である。ただし、第２ブロックの同期データ、およびレングスについては、すでに誤りの無いことが確認されているので、実際には第２ブロックのデータ本体、および水平パリティにかかる単位データについて誤りがないかどうかを判定する。
【００５０】
なお、受信部２は、ｓ２６においてレングスにかかる単位データが垂直パリティチェック部２２で誤りのあることが検知されていると判定した場合、実際にこのレングスを用いて第２ブロックの大きさが適正であるかどうかを判定することなく、この第１ブロックについては適正な大きさでないと判定する。
【００５１】
受信側２は、ｓ２７で、第２ブロックの全ての単位データに誤りがないと判定すると、水平パリティチェック部２４において、この第２ブロックに付加されている水平パリティを用いて、この第２ブロックに対する誤りの有無を検知する（ｓ２８、ｓ２９）。受信側２は、ｓ２９で第２ブロックに誤りがないと判定すると、この第２ブロックを適正な受信データとし（ｓ３０）、本処理を終了する。一方、ｓ２７で第２ブロックのいずれかの単位データに誤りがある、またはｓ２９で第１ブロックに誤りがあると判定した場合、この第２ブロックをブロックの再構築に用いる再構築用ブロックに設定する（ｓ３１）。
【００５２】
なお、ｓ２５で同期データが得られていない、ｓ２６で適正な大きさでないと判定した場合には、第２ブロックを受信エラーと判定する（ｓ３２）。
【００５３】
受信側２は、ｓ２２、またはｓ３０で適正な受信データを設定できなかったとき、すなわち第１ブロック、および第２ブロックの両方がともに誤りなく受信できていないとき、再構築用ブロックとして設定されたブロックが複数あるかどうかを判定する（ｓ３３）。受信側２は、ｓ３３で再構築用ブロックが複数設定されていないと判定すると、ブロックの再構築ができないと判断し、エラー処理を行う（ｓ３４）。ｓ３４にかかるエラー処理は、送信側１に対して、今回のフレームの再送要求を行う処理であってもよいし、係員に対して復旧作業を要求するための警報出力等であってもよい。
【００５４】
なお、この実施形態では、１フレームでブロックを２つ受信側２へ送信する構成としているので、第１ブロックまたは第２ブロックの少なくとも一方が受信エラーと判定された場合には、ブロックの再構築できないと判断され、ｓ３４でエラー処理が行われることになるが、通常のデータ伝送において、ブロックが上述した受信エラーと判定される可能性は低く、殆どの場合、ｓ３３で再構築用ブロックが複数設定されていると判定される。また、１フレームで受信側２へ送信するブロックを３つや４つに増やすことにより、ｓ３３で再構築用ブロックに設定されたブロックが複数ないと判定され、ｓ３４でエラー処理が行われる頻度を一層低減することができる。
【００５５】
受信側２は、ｓ３３で再構築用ブロックが複数設定されていると判定すると、再構築部２５でブロックを再構築する再構築処理を実行する（ｓ３５）。図７は、この再構築処理を示すフローチャートである。受信側２は、設定されている再構築用ブロックの中で、誤りがあると判定された単位データがあり、その個数が最も少ないブロックをベースブロックに設定する（ｓ４１）。ｓ４１では誤りのある単位データは無いが、水平パリティでの誤り検知で誤りのあることが検知されたブロックをベースブロックに設定しない。すなわち、どの単位データに誤りがあるのか分からないブロックをベースブロックに設定しない。また、再構築用ブロックの中で、誤りがあると判定された単位データが最も少ないブロックが、今回のフレームの受信において、受信状態が最も良かったブロックである。言い換えれば、今回のフレームの受信において、受信状態が最も良かったブロックをベースブロックに設定している。
【００５６】
再構築部２５は、ｓ４１で設定したベースブロックにおいて、誤りのあることが検知されている単位データを全て抽出し、ここで抽出した単位データを他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換え（ｓ４２）、ｓ４２でブロックが再構築できたかどうかを判定する（ｓ４３）。例えば、図８（Ａ）に示すように、再構築用ブロックに設定されている第１ブロックがデータ本体のＤ１，Ｄ３に誤りがあり、第２ブロックがデータ本体のＤ２、Ｄ４，Ｄ５に誤りがある場合、図８（Ｂ）に示すように、ｓ４１で誤りのある単位データの個数が２個である第１ブロックをベースブロックに設定する。また、ｓ４２でベースブロックとして設定した第１ブロックのデータ本体のＤ１、Ｄ３を、第２のブロックのＤ１、Ｄ３に置き換える（図８（Ｃ）参照）。
【００５７】
通常、ランダム誤り率が高い環境や、いずれかのブロックでバースト誤りが発生しているような状況であっても、受信側２で受信された各ブロックで、同じ単位データに誤りが発生している可能性は極めて低い。したがって、殆ど場合、ベースブロックから抽出された誤りのある単位データについては、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えることができる。すなわち、図８（Ｃ）に示すように、殆どの場合、ブロックが再構築できる。
【００５８】
なお、ここでブロックが再構築できたとは、ベースブロックから抽出された誤りのある全ての単位データが、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えられたと言う意味である。言い換えれば、ベースブロックから抽出された誤りのあるいずれかの単位データが、他の再構築用ブロックにおいて誤りの無いことが検知されている該当する位置の単位データで置き換えられなかった場合にブロックが再構築できなかったと判定される。
【００５９】
再構築部２５は、ｓ４３でブロックが再構築できなかったと判定すると、再構築処理結果を再構築失敗とし（ｓ４４）、本処理を終了する。一方、ｓ４３でブロックが再構築できたと判定すると、この再構築されたブロックについて、水平パリティを用いた水平パリティチェックを行い（ｓ４５）、誤りの有無を判定する（ｓ４６）。再構築部２５は、ｓ４６で再構築したブロックに誤りがあると判定すると、ｓ４４で再構築処理結果を再構築失敗とし、本処理を終了する。一方、ｓ４６で誤りがないと判定すると、再構築処理結果を再構築成功とし（ｓ４７）、本処理を終了する。
【００６０】
受信側２は、ｓ３５にかかる再構築処理を行うと、再構築処理結果が再構築成功であるか、再構築失敗であるかを判定する（ｓ３６）。受信側２は、ｓ３６で再構築失敗であると判定すると、ｓ３４でエラー処理を行う。反対に、ｓ３６で再構築成功であると判定すると、今回再構築されたブロックを送信側１から送信されてきた適正なデータとし（ｓ３７）、本処理を終了する。
【００６１】
このように、この実施形態のデータ伝送システムは、送信側１から受信側２へ送信するデータ本体を含むブロックを、複数回連続して受信側２に送信する。また、受信側２において、各ブロックの同じ単位データが垂直パリティチェックで誤りがあると検知される可能性が極めて低いことから、殆どの場合、上述した再構築処理によりブロックを再構築することができる。また、再構築できたブロックについて、水平パリティチェックを行って、誤りの無いことが検知されたときに、送信側１から送信されてきた適正なデータであるとするようにしているので、受信側２が不適性なデータで動作するのを防止することができる。また、ガードデータを設けているので、受信側２がブロックの先頭である同期データを適正に検知することができ、ブロックの受信に失敗する頻度、すなわちｓ２４またはｓ３２で受信エラーと判定される頻度、を十分に抑えることができる。
【００６２】
また、同期データが検出されなかったブロックについては、ブロックの再構築に使用しない構成としているので、再構築されたブロックの信頼性を低下させることもない。
【００６３】
また、上記実施形態では、再構築されたブロックが水平パリティチェックにより誤りがあると判定されたとき、受信エラーとするとしたが、別のブロックをベースブロックとして抽出し、再度ブロックの再構築を行うようにしてもよい。このようにすれば、適正なブロックが再構築される可能性を一層増大させることができ、誤り訂正の精度をさらに向上させることができる。
【００６４】
なお、上記実施形態では、送信側１の複数化処理部１４が、第１ブロックと第２ブロックとをつないだフレームを作成するとしたが、送信処理部１６においてブロックを２回連続するようにしてもよい。この場合、複数化処理部はブロックの先頭にガードデータを付加する処理を行えばよく、送信処理部１６がブロックを２回連続して送信し、その後に終了データを生成し、送信する構成とすればよい。
【００６５】
また、ｓ３４にかかるエラー処理を、送信側１に対して再送要求を行う構成とする場合、この再送要求に対して送信側１から再送されてきたフレームを受信し、このフレームにおいてもｓ２２またはｓ３０で第１ブロックまたは第２ブロックを適正なデータとできなかったとき、先のフレームの処理で設定した再構築用ブロックを利用して、ブロックを再構築するようにしてもよい。
【図面の簡単な説明】
【００６６】
【図１】この発明の実施形態であるデータ伝送システムの機能構成を示す図である。
【図２】この発明の実施形態であるデータ伝送システムの送信側におけるフレームの作成手順を説明する図である。
【図３】この発明の実施形態のデータ伝送システムにおける送信側の送信処理を示すフローチャートである。
【図４】この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。
【図５】この発明の実施形態のデータ伝送システムにおける受信側の受信処理を示すフローチャートである。
【図６】この発明の実施形態のデータ伝送システムにおける受信側の受信バッファ、および制御メモリに記憶されるデータを説明する図である。
【図７】この発明の実施形態のデータ伝送システムにおける受信側の再構築処理を示すフローチャートである。
【図８】この発明の実施形態のデータ伝送システムにおける受信側の再構築処理を説明する図である。
【符号の説明】
【００６７】
１−送信側
２−受信側
１１−送信バッファメモリ
１２−同期データ付加部
１３−水平パリティ付加部
１４−複数化処理部
１５−垂直パリティ付加部
１６−送信処理部
２１−受信処理部
２２−垂直パリティチェック部
２３−同期データ検索部
２４−水平パリティチェック部
２５−再構築部
２６−受信バッファメモリ
２７−制御メモリ
【図１】
2006311439.tif 000003
【図２】
2006311439.tif 000004
【図３】
2006311439.tif 000005
【図４】
2006311439.tif 000006
【図５】
2006311439.tif 000007
【図６】
2006311439.tif 000008
【図７】
2006311439.tif 000009
【図８】
2006311439.tif 000010