(58)【調査した分野】(Int.Cl.,DB名)
複数のユニット及び該複数のユニット間を接続する伝送路を含み、データ列、該データ列に対する線形誤り訂正符号、及びヘッダを含む付加データを含んで構成されるひとまとまりの通信データであるパケットを、前記伝送路を介して送受信する通信システムにおいて、
前記複数のユニットは、符号化、復号化時に用いるデータ配置である符号化用データ配置に自己の送信データを配置するための第1の配置情報を記憶する第1記憶部を備えた送信部、及び前記符号化用データ配置に受信したパケットのデータ列を配置するための第2の配置情報を記憶する第2記憶部を備えた受信部を有し、
前記受信部は、受信したパケットの復号を行う際には、前記第2の配置情報を用いて、受信したデータ列を前記符号化用データ配置に配置しなおしたデータ列に対して誤り訂正符号の復号を行い、
前記送信部は、受信した前記パケットを他のユニットに送信する際には、受信した前記パケット中のデータ列に自己のデータ列を追加し、追加した前記データ列に対し前記第1の配置情報を用いて前記符号化用データ配置に自己のデータ列を配置して、配置した前記データ列以外は0に設定したデータ列に対して誤り訂正符号を計算し、受信パケット中の誤り訂正符号に計算結果の誤り訂正符号を加算した結果を、送信パケットの誤り訂正符号とする、
ことを特徴とする通信システム。
複数のユニット及び該複数のユニット間を接続する伝送路を含み、データ列、該データ列に対する線形誤り訂正符号、及びヘッダを含む付加データを含んで構成されるひとまとまりの通信データであるパケットを、前記伝送路を介して送受信する通信システムにおいて、
前記複数のユニットは、符号化、復号化時に用いるデータ配置である符号化用データ配置に自己の送信データを配置するための配置情報を記憶する記憶部を備えた送信部を有し、
前記送信部は、パケットの送信を開始する際に、前記配置情報を用いて前記符号化用データ配置に自己のデータ列を配置し、配置した前記データ列以外は0に設定したデータ列に対して誤り訂正符号を計算し、送信パケットに前記配置情報を付加して送信し、
前記パケットを受信する受信部は、受信したパケットの復号を行う際には、受信パケットに含まれる前記配置情報を用いて、受信したデータ列を符号化用データ配置に配置しなおしたデータ列に対して誤り訂正符号の復号を行い、
前記送信部は、受信したパケットを他のユニットに送信する際には、受信した前記パケット中のデータ列に自己のデータ列を追加し、追加した前記データ列に対し前記配置情報を用いて前記符号化用データ配置に自己のデータ列を配置して、配置した前記データ列以外は0に設定したデータ列に対して誤り訂正符号を計算し、受信パケット中の誤り訂正符号に計算結果の誤り訂正符号を加算した結果を、送信パケットの誤り訂正符号とし、前記送信パケットに前記配置情報を付加して送信する、
ことを特徴とする通信システム。
【背景技術】
【0002】
工作機械のモータ制御に用いられる通信システムのように、多数のユニットが短い周期で少量のデータを送りあうシステムでは、送信データに対して通信パケットのヘッダ、フッタなどの割合が大きくなり、オーバーヘッドが増えるという問題がある。これに対して、複数のユニットがデータ送信時にヘッダ情報を共有することで、通信の効率化を図る手法が提案されている(例えば、特許文献1)。しかし、特許文献1では、誤り訂正符号を複数のユニットで共有する手段については言及されておらず、誤り訂正符号を付加する場合は個別のユニットの送信データに追加する必要がある。今後、通信の高速化に伴い、伝送路上で発生するバーストエラー長が伸び、それに対応して通信データに対する誤り訂正符号も長くする必要性が生じると予想される。そのため、通信のオーバーヘッドを増やさないために、複数ユニットで誤り訂正符号を共有するための手段が必要になると考えられる。
【0003】
誤り訂正符号を単純に複数ユニットで共有した場合、誤り訂正符号の再計算時に生じる遅延時間が問題となる。ユニットが、受信パケットに自己のデータを追加して送信する場合、送信パケットに対する誤り訂正符号を計算するためには、受信パケットに対する誤り訂正が終わっている必要がある。そのため、誤り訂正符号の送信は必ずパケット全体の受信後になり、遅延時間発生の原因となる。工作機械等の産業機械では、通信の応答性が重要視されるため、上記のような遅延時間の発生はできる限り回避することが望ましい。
【0004】
次に、従来技術において誤り訂正符号の再計算時に遅延時間が発生する理由について説明する。
図1に、複数ユニットでパケットのヘッダ情報を共有する従来手法の例を示す。この例では、第2ユニット1002が、第3ユニット1003から受信したパケットP3に自己のデータDATA2を追加して1つのパケットP2にまとめ、第1ユニット1001に送信する。ここで、第2ユニット1002は、ヘッダの後に自己の送信データDATA2及び自己の送信データDATA2に対する誤り訂正符号ECC2を送信した後、第3ユニット1003から受信したDATA3及び誤り訂正符号ECC3をそのまま送信する。ここで、DATA3及びECC3は第2ユニット1002内にバッファする必要はなく、受信したデータをそのまま送信すればよい。そのため、第2ユニット1002がパケットP3を通過させる際に遅延は発生しない。ただし、この方法では、各ユニットが個別に自己のデータに対して誤り訂正符号を付加するため、通信のオーバーヘッドが大きい。
【0005】
これに対して、誤り訂正符号を単純に複数ユニットで共有した場合、誤り訂正符号の再計算時に遅延時間が発生する。
図1において第2ユニット1002がDATA2及びDATA3全体に対する誤り訂正符号を計算することを考える。この場合、第2ユニット1002はDATA3及びECC3の両方の受信が終わった時点で初めてDATA2及びDATA3の全体に対する誤り訂正符号の計算を行うことができる。そのため、第2ユニット1002が誤り訂正符号の送信を開始できるのはDATA3及びECC3の受信後になる。そのため、上記のような個別に誤り訂正符号を付加する方法と比較して、第2ユニット1002をパケットP3が通過する際の遅延時間が増加する。
【0006】
以上のような背景から、複数ユニットのデータの送信に共通のパケットを用いる通信システムにおいて、パケットにデータを追加する際の誤り訂正符号の再計算を効率よく行う必要がある。
【0007】
データ更新時に効率よく誤り訂正符号を再計算する方法として、誤り訂正符号として線形符号を用い、更新データに対する誤り訂正符号を計算して元の誤り訂正符号に足し合わせる方法が知られている(例えば、特許文献2)。ただし、この方法では、単純な加算で表現できるデータの更新に対して誤り訂正符号の更新を行うことはできるが、データのシフトを伴う更新については対応できない。即ち、パケットにデータを追加する場合、パケット中のデータに対してシフトを伴う更新が発生する可能性があるため、上記の方法をそのまま適用することは出来ない。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明に係る通信システムについて説明する。
【0014】
[実施例1]
まず、本発明の実施例1に係る通信システムについて説明する。
図2に、本発明の実施例1に係る通信システムの構成図を示す。本発明の実施例1に係る通信システム101は、複数のユニット1〜3及び複数のユニット間を接続する伝送路40,50を含み、データ列、該データ列に対する線形誤り訂正符号、及びヘッダを含む付加データを含んで構成されるひとまとまりの通信データであるパケットを、伝送路40,50を介して送受信する。
【0015】
図2おいて、通信システム101は、第1ユニット1、第2ユニット2、及び第3ユニット3を含んで構成される。ここでは、第2ユニット2が、第3ユニット3から受信したパケットに自己のデータを追加して1つのパケットにまとめ、第1ユニット1に送信する例を示す。ただし、このような構成は一例であって、ユニットの数は4個以上であってもよい。
【0016】
第2ユニット2は、第3ユニット3からデータを受信する受信部20と、第1ユニット1へデータを送信する送信部10と、を有する。送信部10は、送信データ記憶部11と、第1記憶部12と、第1データ配置部13と、誤り訂正符号計算部14と、誤り訂正符号加算部15と、送信パケット組立部16と、を有する。
【0017】
送信データ記憶部11は、第2ユニット2のデータである自己のデータを記憶する。第1記憶部12は、第1の配置情報を記憶する。第1の配置情報は、符号化用データ配置に自己の送信データを配置するための情報である。第1データ配置部13は、第1の配置情報を用いて自己の送信データを符号化用データ配置に配置する。ここで、「符号化用データ配置」とは、データの符号化及び復号化時に用いるデータ配置である。誤り訂正符号計算部14は、配置したデータ列以外は0に設定したデータ列に対して誤り訂正符号を計算する。誤り訂正符号加算部15は、受信パケット中の誤り訂正符号に、誤り訂正符号計算部14が計算した計算結果である誤り訂正符号を加算する。送信パケット組立部16は、自己の送信データ、受信パケット中のデータ列、および上記計算結果の誤り訂正符号から送信パケットを組み立て、これを第1ユニット1に送信する。
【0018】
受信部20は、受信パケット分解部21と、第2記憶部22と、第2データ配置部23と、誤り訂正部24と、受信データ処理部25と、を有する。
【0019】
受信パケット分解部21は、送信側ユニットである第3ユニット3から受信したデータ(受信パケット)を正味の通信データであるデータ列と誤り訂正符号に分解する。第2記憶部22は、符号化用データ配置に受信したパケットのデータ列を配置するための第2の配置情報を記憶する。第2の配置情報は、受信したパケットのデータ列を符号化用データ配置に配置するための配置情報である。第2データ配置部23は、受信したパケットの復号を行う際に、第2の配置情報を用いて自己のデータを符号化用データ配置に配置する。誤り訂正部24は、配置しなおしたデータ列に対して誤り訂正符号の復号を行う。受信データ処理部25は、訂正後のデータを処理する。
【0020】
次に、本発明の実施例1に係る通信システムの動作手順について、
図3に示したフローチャートを用いて説明する。まず、ステップS101において、第2ユニット2の受信部20に設けられた受信パケット分解部21が、受信パケットから正味の通信データであるデータ列を取り出す。受信パケット分解部21は、取り出したデータ列を第2データ配置部23へ送信する。さらに、受信パケット分解部21は、受信したデータである受信パケットから誤り訂正符号を取り出し、誤り訂正部24に出力する。
【0021】
次に、ステップS102において、第2データ配置部23が、第2の配置情報を用いて、受信したデータを符号化、復号化時に用いるデータ配置である符号化用データ配置に配置する。第2データ配置部23は、符号化用データ配置に配置したデータ列を誤り訂正部24に出力する。
【0022】
次に、ステップS103において、誤り訂正部24が、符号化用データ配置に配置したデータ列と、受信パケット中の誤り訂正符号を用いて、データ列の誤り訂正を行う。
【0023】
次に、ステップS104において、受信データ処理部25が、訂正後のデータを処理する。
【0024】
次に、ステップS105において、送信部10に設けられた第1データ配置部13が、送信データ記憶部11に記憶された自己の送信データを第1の配置情報を用いて符号化用データ配置に配置する。第1データ配置部13は、配置したデータを誤り訂正符号計算部14へ出力する。
【0025】
次に、ステップS106において、訂正符号計算部14が、配置後のデータに対して誤り訂正符号の計算を行う。訂正符号計算部14は、計算結果である自己のデータの誤り訂正符号を誤り訂正符号加算部15へ出力する。
【0026】
次に、ステップS107において、誤り訂正符号加算部15が、計算結果の誤り訂正符号と受信パケット中の誤り訂正符号の加算によって送信パケットの誤り訂正符号を計算する。誤り訂正符号加算部15は、計算した送信パケットの誤り訂正符号を送信パケット組立部16へ出力する。
【0027】
次に、ステップS108において、送信パケット組立部16が、自己の送信データ、受信パケット中のデータ列、及び上記計算結果の誤り訂正符号から送信パケットを組み立て、これを第1ユニット1に送信する。
【0028】
なお、ここでは、通信システムが送受信を行うユニットから構成される例を示しているが、送信のみを行うユニット、あるいは受信のみを行うユニットを用いてもよい。この場合は、送信のみを行うユニット、及び受信のみを行うユニットは、それぞれ、上述の送信部のみ、及び受信部のみで構成されるユニットに置き換えることができる。
【0029】
次に、本発明の実施例1に係る通信システムにおける特徴点である誤り訂正符号の計算方法について説明する。
図4は、本発明の実施例1に係る通信システムにより、複数ユニット間でヘッダ情報を共有するパケットを送受信する例を示す図である。
図4において、第2ユニット2は、まず、第1ユニット1に対する送信パケットP2として、ヘッダ及び自己の送信データDATA2を送信する。その後、第2ユニット2は、第3ユニット3から受信したパケットP3に含まれるDATA3を送信する。その後、第2ユニット2は、DATA2及びDATA3の全体に対する誤り訂正符号ECC23を送信する。
【0030】
このとき、誤り訂正符号として線形符号を利用し、以下で説明するように符号化用データ配置で誤り訂正符号の計算を行う。これにより、ECC23は、DATA2に対する誤り訂正符号ECC2と、DATA3に対する誤り訂正符号ECC3とを誤り訂正符号加算部15で加算することにより計算することができる。誤り訂正符号の加算は1ビット毎に独立して行うことが出来るため、第2ユニット2は、ECC3を1ビット受信するごとにECC2を加算して1ビットずつECC23として送信することが出来る。
【0031】
このように、ECC3の受信が完了するまで待たずにECC23の送信を行うことができるので、パケット通過時の遅延時間を増加させることなく、複数ユニットのデータに共通の誤り訂正符号を算出することが可能となる。なお、上述したデータの順序は一例であって、本実施例では、パケット中のデータの順序については上記の例には限られない。
【0032】
以下に、加算によって誤り訂正符号を更新する方法について説明する。本発明では、線形符号の性質である、「Aに対する符号がEA、Bに対する符号がEBならば、(A+B)に対する符号は(EA+EB)となる」という性質を利用する。
【0033】
ここで、元のデータをA、更新部分のデータをBとする。そうすると、更新後のデータ(A+B)に対する符号は、更新前のデータに対する符号EAと更新部分のデータに対する符号EBの和(EA+EB)となる。ただし単純にこれを利用するだけでは、単純な加算で表現できるデータの更新に対する誤り訂正符号の更新を行うことはできるが、データのシフトを伴う更新については対応できない。上記の例では、第2ユニットがデータを追加する際に先頭にDATA2を追加し、DATA3を後ろにシフトさせているため単純に適応することは出来ない。
【0034】
そこで、パケット上のデータ配置とは別の配置にデータをマッピングして誤り訂正符号の計算を行う。以下では、このデータ配置を「符号化用データ配置」と呼ぶ。
図5に、符号化用データ配置で送信データの誤り訂正符号の計算を行う例を示す。また、
図6に、この符号化用データ配置で受信データの誤り訂正符号の計算を行う例を示す。
【0035】
図5に示した送信時の例では、第nユニットが送信するデータDATAnを符号化用データ配置の対応する位置に配置し、他をすべて0に設定したデータ列に対して生成行列Gを用いて誤り訂正符号ECCの計算を行う。
【0036】
図6に示した受信時の例では、第nユニットが受信したデータDATA1,DATA3,DATA5をそれぞれ、符号化用データ配置の対応する位置に配置し、他を0に設定したデータ列に対して検査行列Hを用いて誤り訂正の検出及び訂正の計算を行う。
【0037】
なお、ここではデータ列に対して生成符号の積算で符号化を行い、検査符号の積算で誤りの検出を行っているが、符号化、誤りの検出はこれらには限られず一般的な手法を利用することも可能である。
【0038】
このように、符号化用のデータ配置にデータをマッピングして計算することで、パケット中のデータ配置が変更されても該符号化用のデータ配置ではデータ位置の変更は発生しないため、単純な加算によって誤り訂正符号の更新が可能となる。
【0039】
[実施例2]
次に、本発明の実施例2に係る通信システムについて説明する。
図7に、本発明の実施例2に係る通信システムの構成図を示す。本発明の実施例2に係る通信システム102が、本発明の実施例1に係る通信システム101と異なっている点は、複数のユニット1〜3が、符号化、復号化時に用いるデータ配置である符号化用データ配置に自己の送信データを配置するための配置情報を記憶する記憶部12´を備えた送信部10を有し、送信部10は、パケットの送信を開始する際に、配置情報を用いて符号化用データ配置に自己のデータ列を配置し、該配置した送信データ以外は0に設定したデータ列に対して誤り訂正符号を計算し、送信パケットに該配置情報を付加して送信し、パケットを受信する受信部20は、受信したパケットの復号を行う際には、受信パケットに含まれる配置情報を用いて、受信したデータ列を符号化用データ配置に配置しなおしたデータ列に対して誤り訂正符号の復号を行う点である。実施例2に係る通信システム102のその他の構成は、実施例1に係る通信システム101における構成と同様であるので詳細な説明は省略する。
【0040】
ここでは、第1ユニット1、第2ユニット2、第3ユニット3から構成される通信システムにおいて、第2ユニット2が、第3ユニット3から受信したパケットに自己のデータを追加して1つのパケットにまとめ、第1ユニット1に送信する例を考える。
【0041】
第2ユニット2は、受信部10において、受信パケットから取り出したデータ列を、受信パケット中の配置情報を用いて符号化用データ配置に配置する。そして符号化用データ配置に配置したデータ列と、受信パケット中の誤り訂正符号を用いて、データ列の誤り訂正を行い、訂正後のデータを受信データ処理部25において処理する。
【0042】
また、送信部10において、自己の送信データを、第2ユニット2内に設けられた記憶部12´に記憶している配置情報を用いて符号化用データ配置に配置し、配置後のデータに対して誤り訂正符号の計算を行う。そして計算結果の誤り訂正符号と受信パケット中の誤り訂正符号の加算によって送信パケットの誤り訂正符号を計算する。そして、自己の送信データ、受信パケット中のデータ列、自己の送信データの配置情報、受信パケット中の配置情報、および上記計算結果の誤り訂正符号から送信パケットを組み立て、これを第1ユニット1に送信する。
【0043】
なお、ここでは、通信システムが送受信を行うユニットから構成される例を示しているが、送信のみを行うユニット、あるいは受信のみを行うユニットを用いてもよい。この場合は、送信のみを行うユニット、及び受信のみを行うユニットは、それぞれ、上述の送信部のみ、及び受信部のみで構成されるユニットに置き換えることができる。
【0044】
[実施例3]
次に、本発明の実施例3に係る通信システムについて説明する。
図8に、本発明の実施例3に係る通信システムにより、複数ユニット間でヘッダ情報および誤り訂正符号を共有するパケットを送受信する例を示す。本発明の実施例3に係る通信システムが、本発明の実施例1に係る通信システム101と異なっている点は、複数のユニットから受信したパケットを組み合わせて新しいパケットを生成し、該パケットを他のユニットに送信する受信側ユニットを含む通信システムであり、受信側ユニットは複数の受信パケットを組み合わせて送信パケットを生成する際に、複数の受信パケットに含まれる誤り訂正符号、および該受信側ユニットが自己の送信データを追加する場合は、前記符号化用データ配置に自己の送信データを配置し、該配置したデータ以外は0に設定したデータ列に対して誤り訂正符号を計算し、すべての誤り訂正符号の加算結果を新しい誤り訂正符号とする誤り訂正符号の再計算を行う点である。実施例3に係る通信システムのその他の構成は、実施例1に係る通信システム101における構成と同様であるので詳細な説明は省略する。
【0045】
実施例3に係る通信システムにおいては、第2ユニット2が、第3ユニット3から受信したパケットP3、第4ユニット4から受信したパケットP4、及び自己の送信データDATA2を1つのパケットにまとめ、第1ユニット1に送信する。ここで、第2ユニット2は、ヘッダ、自己の送信データDATA2を送信後、第3ユニット3から受信したDATA3、第4ユニット4から受信したDATA4を送信し、その後、DATA2、DATA3、DATA4の全体に対する誤り訂正符号ECC234を送信する。
【0046】
ECC234は、誤り訂正符号加算器15及び15´を用いてDATA2に対する誤り訂正符号ECC2、DATA3に対する誤り訂正符号ECC3、DATA4に対するECC4の全ての加算によって算出する。なお、それぞれの誤り訂正符号の計算には、実施例1及び2で説明したように、符号化用データ配置にデータを配置して計算しているものとする。
【0047】
また、受信側ユニットでは、実施例1と同様にユニット内に記憶している配置情報を用いて符号化用データ配置にデータ列を配置して復号を行うか、もしくは実施例2と同様にパケット内に含まれる配置情報を用いて符号化用データ配置にデータ列を配置して復号を行う。
【0048】
このように、複数の受信パケットおよび自己のデータを組み合わせて新しい送信パケットを構築する場合についても、それぞれのデータに対する誤り訂正符号の加算によってデータ全体に対する誤り訂正符号を計算することが可能である。なお、この例では2つのユニットからパケットを受信する場合について説明しているが、送信元が3つ以上のユニットの場合についても同様に本発明を実施可能である。