(57)【特許請求の範囲】
【請求項１】
伝送対象のデータに基づいて、下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
を用いて、前記データフレームに対する誤り訂正符号を生成する誤り訂正符号生成部と、
前記誤り符号生成部の演算により生成された誤り訂正符号に冗長データを付加して５ｍビットの倍数のサイズの付加データとして、前記データフレームに付加する符号付加部と、
前記符号付加部により誤り訂正符号が付加されたデータを送信する送信部と、
前記送信部から送信されたデータを受信する受信部と、
前記生成行列に対応する検査行列を用いて、前記受信部により受信された受信データからシンドロームを算出するシンドローム算出部と、
前記シンドローム算出部により算出された前記シンドロームを用いて、受信データにおける誤りの検出訂正処理を行う誤り検出訂正処理部と、
を備えることを特徴とする、データ伝送システム。
【請求項２】
前記生成行列は、
前記Ｎ≦２k−ｋ−１を満たす値ｋのうち最小値を用いて、前記第１処理ブロックに含まれる各データおよび前記第２処理ブロックに含まれる各データに対し、シンドロームを割り付けて構成されることを特徴とする、請求項１に記載のデータ伝送システム。
【請求項３】
前記生成行列は、
前記第１処理ブロックに含まれるデータのうち２k−１から降順に割り付けた値が２の冪乗数となるデータおよび前記第２処理ブロックに含まれるデータのうち２k-2−１から降順に割り付けた値が２の冪乗数となるデータに対して、２の冪乗数でない値のシンドロームを割り付け、
前記誤り訂正符号に２の冪乗数のシンドロームを割り付けて構成されたことを特徴とする、請求項１または請求項２に記載のデータ伝送システム。
【請求項４】
前記データフレームのサイズＮの値は、
ｎ≦１０×２k-4−５ｍ
を満足する値ｎであることを特徴とする、請求項１乃至請求項３のいずれかに記載のデータ伝送システム。
【請求項５】
前記データフレームのサイズＮの値は、
ｎ≦１５×２k-4−５ｍ
を満足する値ｎであることを特徴とする、請求項１乃至請求項３のいずれかに記載のデータ伝送システム。
【請求項６】
伝送対象のデータに基づいて誤り訂正符号を生成する誤り符号生成部と、
前記誤り符号生成部の演算により生成された誤り訂正符号を前記データに付加する符号付加部と、
前記符号付加部により誤り訂正符号が付加されたデータを送信する送信部と、を備え、
前記誤り符号生成部は、下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
を用いて、前記データフレームに対する誤り訂正符号を生成し、
前記符号付加部は、前記誤り符号生成部により生成された誤り訂正符号に冗長データを付加して５ｍビットの倍数のサイズの付加データとして、前記データフレームに付加すること
を特徴とする、データ送信装置。
【請求項７】
データを受信する受信部と、
下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
に対応する検査行列を用いて、前記受信部により受信された受信データからシンドロームを算出するシンドローム算出部と、
前記シンドローム算出部により算出された前記シンドロームを用いて、受信データにおける誤りの検出訂正処理を行う誤り検出訂正処理部と、
を備えることを特徴とする、データ受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送システム、データ送信装置およびデータ受信装置に関する。
【背景技術】
【０００２】
特許文献１には、要求に応じたパケットを生成するパケットエンコーダと、生成されたパケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するＥＣＣフレームエンコーダと、生成された誤り訂正符号付きフレームを伝送路を介して送信するトランスミッタと、伝送路を介して誤り訂正符号付きフレームを受信するレシーバと、受信された誤り訂正符号付きフレームについて誤り検出および訂正を行うＥＣＣフレームデコーダと、誤り訂正符号付きフレームから誤り訂正符号を除去してパケットを抽出するパケットデコーダとを備えたデータ処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２９４７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データ通信において、データに誤り訂正符号（冗長符号）を付加することにより、誤り検出や誤り訂正を可能としている。これは、データ通信における信頼性の向上に寄与するが、一方で、冗長性が増すことにより伝送効率の低下を招く。伝送効率の低下を抑制するために、誤り訂正符号を付加する対象であるデータフレームのサイズを大きくすることが考えられる。しかし、処理対象であるデータフレームのサイズが大きくなることによって、処理を行うための回路規模が増大してしまう。
【０００５】
本発明は、誤り訂正符号を用いたデータ通信において、伝送効率の向上を図ると共に、回路規模の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、
伝送対象のデータに基づいて、下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
を用いて、前記データフレームに対する誤り訂正符号を生成する誤り訂正符号生成部と、
前記誤り符号生成部の演算により生成された誤り訂正符号に冗長データを付加して５ｍビットの倍数のサイズの付加データとして、前記データフレームに付加する符号付加部と、
前記符号付加部により誤り訂正符号が付加されたデータを送信する送信部と、
前記送信部から送信されたデータを受信する受信部と、
前記生成行列に対応する検査行列を用いて、前記受信部により受信された受信データからシンドロームを算出するシンドローム算出部と、
前記シンドローム算出部により算出された前記シンドロームを用いて、受信データにおける誤りの検出訂正処理を行う誤り検出訂正処理部と、
を備えることを特徴とする、データ伝送システムである。
請求項２に記載の発明は、
前記生成行列は、
前記Ｎ≦２k−ｋ−１を満たす値ｋのうち最小値を用いて、前記第１処理ブロックに含まれる各データおよび前記第２処理ブロックに含まれる各データに対し、シンドロームを割り付けて構成されることを特徴とする、請求項１に記載のデータ伝送システムである。
請求項３に記載の発明は、
前記生成行列は、
前記第１処理ブロックに含まれるデータのうち２k−１から降順に割り付けた値が２の冪乗数となるデータおよび前記第２処理ブロックに含まれるデータのうち２k-2−１から降順に割り付けた値が２の冪乗数となるデータに対して、２の冪乗数でない値のシンドロームを割り付け、
前記誤り訂正符号に２の冪乗数のシンドロームを割り付けて構成されたことを特徴とする、請求項１または請求項２に記載のデータ伝送システムである。
請求項４に記載の発明は、
前記データフレームのサイズＮの値は、
ｎ≦１０×２k-4−５ｍ
を満足する値ｎであることを特徴とする、請求項１乃至請求項３のいずれかに記載のデータ伝送システムである。
請求項５に記載の発明は、
前記データフレームのサイズＮの値は、
ｎ≦１５×２k-4−５ｍ
を満足する値ｎであることを特徴とする、請求項１乃至請求項３のいずれかに記載のデータ伝送システムである。
請求項６に記載の発明は、
伝送対象のデータに基づいて誤り訂正符号を生成する誤り符号生成部と、
前記誤り符号生成部の演算により生成された誤り訂正符号を前記データに付加する符号付加部と、
前記符号付加部により誤り訂正符号が付加されたデータを送信する送信部と、を備え、
前記誤り符号生成部は、下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
を用いて、前記データフレームに対する誤り訂正符号を生成し、
前記符号付加部は、前記誤り符号生成部により生成された誤り訂正符号に冗長データを付加して５ｍビットの倍数のサイズの付加データとして、前記データフレームに付加すること
を特徴とする、データ送信装置である。
請求項７に記載の発明は、
データを受信する受信部と、
下記のように構成された生成行列
［伝送単位のデータフレームを、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とし、
処理対象である５ｍビットの前記処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割し、
伝送単位の前記データフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付け、
前記ｋを用い、前記第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付けて構成された生成行列］
に対応する検査行列を用いて、前記受信部により受信された受信データからシンドロームを算出するシンドローム算出部と、
前記シンドローム算出部により算出された前記シンドロームを用いて、受信データにおける誤りの検出訂正処理を行う誤り検出訂正処理部と、
を備えることを特徴とする、データ受信装置である。
【発明の効果】
【０００７】
請求項１の発明によれば、本発明の構成を用いない場合と比較して、データフレームに付加される誤り訂正符号に関する演算処理に要する回路規模の増大を抑制できる。
請求項２の発明によれば、誤り訂正符号のデータサイズの増大を抑制できる。
請求項３の発明によれば、データフレームに割り付けるシンドロームと誤り訂正符号に割り付けるシンドロームが重複することを防止できる。
請求項４の発明によれば、データフレームに対するシンドロームの割り付けにおける例外処理を行うことなく、データフレームに割り付けるシンドロームと誤り訂正符号に割り付けるシンドロームが重複することを防止できる。
請求項５の発明によれば、データフレームに割り付けるシンドロームと誤り訂正符号に割り付けるシンドロームの重複を防止するために処理が複雑となることを抑制できる。
請求項６の発明によれば、本発明の構成を用いない場合と比較して、送信対象のデータフレームに対する誤り訂正符号の生成処理に要する回路規模の増大を抑制できる。
請求項７の発明によれば、本発明の構成を用いない場合と比較して、受信対象のデータフレームに対するシンドロームの演算処理に要する回路規模の増大を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態が適用されるデータ伝送システムの構成例を示す図である。
【図２】（７，４）ハミング符号における誤り位置とシンドロームとの関係を示す図表である。
【図３】（１０２３，１０１３）ハミング符号を対象としたコードに対するシンドロームの割り付けの例を示す図表である。
【図４】図３に示した（１０２３，１０１３）ハミング符号において、チェックコードＣ００を生成するための演算を示す図である。
【図５】本実施形態で用いられるＥＣＣフレームの構成例を示す図である。
【図６】本実施形態の送信側装置におけるＥＣＣ符号化部の構成を示す図である。
【図７】本実施形態におけるシンドロームの割り付け方法に基づく、８８０ビットのデータブロックの各データ（ビット）とシンドロームとの対応を示す図表である。
【図８】図７に示したデータとシンドロームの対応図表において、割り付け規則の例外を含むコラムと、誤り訂正符号とシンドロームの対応を示す図である。
【図９】本実施形態のＥＣＣフレームの具体例を示す図である。
【図１０】本実施形態の受信側装置におけるＥＣＣ復号部の構成を示す図である。
【図１１】本実施形態における各データに対応するシンドロームの構成を示す図である。
【図１２】本実施形態における誤り検出訂正処理の内容を示すフローチャートである。
【図１３】本実施形態のシンドロームに基づく誤りビットの訂正処理の具体例を示す図である。
【図１４】本実施形態におけるＥＣＣ演算部の論理回路の構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
＜データ伝送システムの構成＞
図１は、本実施形態が適用されるデータ伝送システムの構成例を示す図である。
図１に示すように、データ伝送処理システムは、送信側装置１００と受信側装置２００とで構成される。送信側装置１００は、８Ｂ１０Ｂ符号化部１１０と、ＥＣＣ符号化部１２０と、パラレル−シリアル変換部１３０と、トランスミッタ（送信部）１４０とを備える。受信側装置２００は、レシーバ（受信部）２１０と、シリアル−パラレル変換部２２０と、ＥＣＣ復号部２３０と、８Ｂ１０Ｂ復号部２４０とを備える。
【００１０】
送信側装置１００は、データ送信の対象である送信データを生成し、８Ｂ１０Ｂ符号化部１１０に送る。８Ｂ１０Ｂ符号化部１１０は、取得した送信データを８ビットごとのデータブロックに分け、８Ｂ１０Ｂ符号化処理により、１０ビットのデータブロックに変換する。８Ｂ１０Ｂ符号化処理により、送信データのＤＣバランスを取ると共に、シリアル伝送にてクロックを同時に送ることが可能となる。
【００１１】
ＥＣＣ符号化部１２０は、８Ｂ１０Ｂ符号化処理が施された送信データに対し、ＥＣＣ符号化処理により誤り訂正符号（ＥＣＣ；Error Correcting Code）を付加する。本実施形態におけるＥＣＣ符号化部１２０の機能および符号化処理の詳細な内容については後述する。
【００１２】
パラレル−シリアル変換部１３０は、ＥＣＣ符号化処理が施された送信データをパラレルデータからシリアルデータに変換する。トランスミッタ１４０は、シリアルデータに変換された送信データを、シリアル伝送路を介して受信側装置２００へ送信する。
【００１３】
受信側装置２００は、送信側装置１００から送信されたデータをレシーバ２１０にて受信する。そして、シリアル−パラレル変換部２２０が、受信データをシリアルデータからパラレルデータに変換する。
【００１４】
ＥＣＣ復号部２３０は、パラレルデータに変換された受信データに対し、ＥＣＣ復号処理を行い、誤り訂正符号を取り除く。このとき、本実施形態で用いられる誤り訂正符号の能力の範囲において、誤り（エラー）の検出および訂正が行われる。具体的には、本実施形態では誤り訂正符号として拡張ハミング符号を用いるので、１ビットの誤り訂正と２ビットまでの誤り検出が可能である。ＥＣＣ復号部２３０の機能および復号処理の詳細な内容については後述する。
【００１５】
８Ｂ１０Ｂ復号部２４０は、ＥＣＣ復号処理が行われた受信データに対して８Ｂ１０Ｂ復号処理を行う。この処理は、８Ｂ１０Ｂ符号化処理の逆変換である。この処理を経て、送信側装置１００において生成された送信データと同じ内容の受信データが得られる。
【００１６】
＜ＥＣＣ符号化処理＞
本実施形態のデータ伝送では、伝送品質を向上させるため、送信データに対して、上記のように８Ｂ１０Ｂ符号化とＥＣＣ符号化とを行っている。８Ｂ１０Ｂ符号化により、送信データのＤＣバランスを取り（バイナリ・データにおいて０または１が一定以上続くことを避ける）、ＥＣＣ符号化により、誤りの検出や訂正を可能としている。本実施形態では、誤り訂正符号として、論理回路が簡単に構成でき、高速処理に適するとされる拡張ハミング符号を用いている。
【００１７】
ここで、送信データに対して８Ｂ１０Ｂ符号化を行う前にＥＣＣ符号化を行うと、伝送路での１ビットの誤りが８Ｂ１０Ｂ復号処理により２ビット以上の誤りとなってしまう場合があり、この場合は誤りを訂正することができない。そこで、本実施形態では、送信データに対して８Ｂ１０Ｂ符号化を行った後にＥＣＣ符号化を行っている。
【００１８】
ところで、送信データに対して８Ｂ１０Ｂ符号化やＥＣＣ符号化を行うと、送信データに冗長データが付加されることになるので、伝送効率を低下させる。例えば、特開２００８−２９４７５７号公報に記載される従来技術のように、６４ビットのデータを８Ｂ１０Ｂ符号化して８０ビットのデータとし、２０ビットの誤り訂正符号を付加する場合、これらの符号化処理を行った後のデータサイズは１００ビットとなるので、伝送効率は６４％となる。
【００１９】
伝送効率を上げるためには、送信データのフレームサイズを大きくすることが考えられるが、この場合、誤り訂正符号を生成するためのＸＯＲ演算が膨大な数となるため、実装した際の回路規模が大きくなる。例えば、誤り訂正符号を付加して１０００ビット程度となるデータフレームとすると、数千もの論理演算の組み合わせが必要となる。
【００２０】
ここでさらに、ハミング符号を例示して説明する。
図２は、（７，４）ハミング符号における誤り位置とシンドロームとの関係を示す図表である。
シンドロームとは、誤りの有るビット位置を示す情報であり、受信データに検査行列を乗じて求められる。図２に示すように、ハミング符号における誤り訂正符号（図２において、Ｃ０、Ｃ１、Ｃ２）に対して２の冪乗数のシンドロームを割り付けると、シンドロームの計算と誤り訂正符号（以下、チェックコードとも記す）の計算とが同じになる。次に、１０００ビット程度のサイズのデータフレームを構成するハミング符号として、（１０２３，１０１３）ハミング符号を例示して説明する。
【００２１】
図３は、（１０２３，１０１３）ハミング符号を対象としたコード（データおよびチェックコード）に対するシンドロームの割り付けの例（一部）を示す図表である。
図３には、１０２４個のシンドロームのうち、値「１」〜「１４０」（１０進法による表記）の１４０個分のコードに対するシンドロームの割り付けの例が示されている。（１０２３，１０１３）ハミング符号では、チェックコードは１０個（Ｃ００〜Ｃ０９）存在し、図３に示す範囲では、Ｃ００からＣ０７までが記載されている。図示されていないチェックコードに関しては、Ｃ０８のシンドロームが２５６であり、Ｃ０９のシンドロームが５１２である。図３に示す例では、コード（データおよびチェックコード）に対してシンドロームを昇順に割り付けている。
【００２２】
図４は、図３に示した（１０２３，１０１３）ハミング符号において、チェックコードＣ００を生成するための演算を示す図である。
図４に示すように、一つのチェックコードＣ００を生成するだけでも、膨大なＸＯＲ（排他的論理和）演算を行うことが必要となる。図示の演算は、チェックコードＣ００の演算のみであり、実際のチェックコードの生成では、さらにＣ０１〜Ｃ０９に対して同程度の規模の演算を行う必要がある。したがって、この演算を行う演算回路の回路規模も膨大になる。
【００２３】
本実施形態では、ハミング符号におけるコード（データおよびチェックコード）に対するシンドロームの割り付け方を工夫することにより、チェックコードの演算に要する演算回路の回路規模を縮小する。具体的には、データに対するシンドロームの割り付けを、複数の組に分けて行うと共に、特定の周期性を持たせる。ここで、本実施形態では、伝送対象のデータを８Ｂ１０Ｂ符号化した後にパラレル−シリアル変換するため、（１０の倍数）ビット（例えば、１０ビットまたは２０ビット）のデータを単位として１サイクルの処理を行う。以下、上記のように伝送効率を上げるために１０００ビット程度のデータフレームを想定し、（１０２３，１０１３）ハミング符号を対象として、本実施形態によるシンドロームの割り付けについて詳細に説明する。
【００２４】
図５は、本実施形態で用いられるＥＣＣフレームの構成例を示す図である。
本実施形態では、１０００ビット程度のサイズのデータフレームの元となる送信データとして、１個以上の７０４ビットのデータブロックを生成し、この７０４ビットのデータブロックごとに誤り訂正符号（ＥＣＣ）を付加したデータフレーム（以下、ＥＣＣフレーム）３００を生成する。この７０４ビットのデータブロックは、送信対象のデータのサイズが７０４ビット以上である場合は分割し、７０４ビット未満である場合は冗長データを付加することにより生成される。
【００２５】
ＥＣＣフレーム３００の生成は、次のように行われる。まず、データを１６ビットずつ８Ｂ１０Ｂ符号化処理して２０ビットのデータとすることにより、７０４ビットのデータブロックを８８０ビットのデータブロック３１０に変換する。そして、図５（ａ）に示すように、この８８０ビットのデータブロック３１０に、４０ビットの誤り訂正符号３２０を付加して、９２０ビットのＥＣＣフレーム３００とする。送信側装置１００から受信側装置２００へ送信される際には、図５（ｂ）に示すように、このＥＣＣフレーム３００に、さらにフレームの先頭を表すＳＯＰ（Start Of Packet）およびフレームの終端を表すＥＯＰ（Start Of Packet）が付加される。ＳＯＰおよびＥＯＰは、単にデータフレームの先頭と後端とを示すだけのデータに過ぎないので、これらを含む図５（ｂ）の状態のデータフレームも、図５（ａ）と区別せずにＥＣＣフレーム３００と呼ぶ。
【００２６】
＜ＥＣＣ符号化部の構成＞
図６は、送信側装置１００におけるＥＣＣ符号化部１２０の構成を示す図である。
図６に示すように、ＥＣＣ符号化部１２０は、ＥＣＣ演算部１２１と、ＥＣＣ符号生成部１２２と、ＥＣＣ符号付加部１２３とを備える。図示のように、ＥＣＣ符号化部１２０は、８Ｂ１０Ｂ符号化部１１０により８Ｂ１０Ｂ符号化されたデータブロック（図５に示す８８０ビットのデータブロック３１０）を２０ビットずつ受け取り、２つの経路に分岐させる。そして、分岐した一方をＥＣＣ演算部１２１およびＥＣＣ符号生成部１２２により処理して誤り訂正符号（図５に示す４０ビットの誤り訂正符号３２０）を生成し、ＥＣＣ符号付加部１２３が、分岐した他方の経路を転送されたデータブロックの後端に、生成した誤り訂正符号を付加する。
【００２７】
ＥＣＣ符号化部１２０の動作について、さらに詳細に説明する。
ＥＣＣ演算部１２１は、８Ｂ１０Ｂ符号化されたデータブロック３１０を２０ビットずつ受け取り、（１０２３，１０１３）ハミング符号による符号化のための生成行列Ｇ（詳細は後述）を用いて演算（乗算）する。これを４４サイクル（８８０ビット分）繰り返すことで、データブロック３１０に対応する１１ビットの符号列（誤り訂正符号）３２１が得られる。ここで、通常の（１０２３，１０１３）ハミング符号では、誤り訂正符号のビット数は１０ビットであるが、本実施形態では拡張ハミング符号を用いるために１１ビットとなる。
【００２８】
次に、ＥＣＣ符号生成部１２２は、ＥＣＣ演算部１２１により生成された誤り訂正符号３２１に、ＤＣバランスを取るための反転符号と、誤り訂正符号の全体のサイズを２０ビットの倍数（ここでは４０ビット）とするための付加符号とを付加して、４０ビットの誤り訂正符号３２０を生成する。ここで、付加符号としては、ＤＣバランスを考慮して固定値とし、８Ｂ１０ＢにおけるＫ符号とは異なる符号が用いられる。また、誤り訂正符号３２０のサイズを２０ビットの倍数とするのは、データブロック３１０に対する処理サイクルに合わせるためである。
【００２９】
次に、ＥＣＣ符号付加部１２３は、ＥＣＣ符号生成部１２２により生成された４０ビットの誤り訂正符号３２０を、データブロック３１０に付加して９２０ビットのＥＣＣフレーム３００を生成する。この後、生成されたＥＣＣフレーム３００は、パラレル−シリアル変換部１３０によりシリアルデータに変換され、トランスミッタ１４０により受信側装置２００へ送信される。ここでは、パラレル−シリアル変換部により１ビットのシリアルデータに変換される例を示しているが、複数ビットのシリアルデータとしても良い。
【００３０】
＜符号化処理におけるシンドロームの割り付け＞
ここで、本実施形態によるＥＣＣ演算で適用されるシンドロームの割り付けについて説明する。ＥＣＣ符号化部１２０のＥＣＣ演算部１２１による符号化演算に用いられる生成行列Ｇおよび後述するＥＣＣ復号部２３０のＥＣＣ演算部による復号演算に用いられる検査行列は、このシンドロームの割り付けを満足するように構成される。
【００３１】
図７は、本実施形態におけるシンドロームの割り付け方法に基づく、８８０ビットのデータブロック３１０の各データ（ビット）とシンドロームとの対応を示す図表である。
本実施形態において、シンドロームは、下記のようにしてデータに割り付けられる。
・伝送単位のデータフレーム（データブロック）を、５ｍビット（ｍは２の冪乗数：ｍ＝１、２、４、８、・・・）ごとの処理単位データに分けて処理対象とする。
・処理対象である５ｍビットの処理単位データを４ｍビットの第１処理ブロックとｍビットの第２処理ブロックに分割する。
・伝送単位のデータフレームのサイズ（ビット数）Ｎに対してＮ≦２k−ｋ−１を満たす値ｋを用い、第１処理ブロックに含まれる各データに対し、２k−１から降順にシンドロームを割り付ける。
・上記のｋを用い、第２処理ブロックに含まれる各データに対し、２k-2−１から降順にシンドロームを割り付ける。
【００３２】
なお、上記の値ｋは、少なくともＮ≦２k−ｋ−１を満たす値であれば良い。ただし、ハミング符号による符号化を行った場合の誤り訂正符号のサイズはｋビット（拡張ハミング符号では（ｋ＋１）ビット）となるため、ｋの値が大きくなると、冗長データである誤り訂正符号のサイズが大きくなる。そのため、伝送効率の低下を回避するため、ｋとして、Ｎ≦２k−ｋ−１を満たす値のうちで最小の値を用いる。
【００３３】
図７に示す具体例を参照し、図５に示したデータブロック３１０に対して、本実施形態による（１０２３，１０１３）ハミング符号を適用する場合のシンドロームの割り付けについて、詳細に説明する。
図７に示す例では、まず８８０ビットのデータブロック３１０を２０ビット（ｍ＝４）ごとに４４個の処理単位データ３１１に分けている。これにより、２０ビットの各処理単位データ３１１に対する処理を４４サイクル繰り返すことで、８８０ビットのデータブロック３１０の全体に対する処理が行われる。
【００３４】
また、各処理単位データ３１１の上位１６ビットを第１処理ブロック３１１ａとし、下位４ビットを第２処理ブロック３１１ｂとする。そして、図７に示すように、１サイクル目の処理単位データ３１１から順に、第１処理ブロック３１１ａには値「１０２３」から降順でシンドロームが割り付けられ、第２処理ブロック３１１ｂには値「２５５」から降順でシンドロームが割り付けられる（なお、ここではシンドロームの値を１０進法で表記する）。
【００３５】
具体的には、図７に示す第１サイクル（左端のコラム）の処理単位データ３１１において、第１処理ブロック３１１ａに該当するデータＸ０００〜Ｘ０１５には、シンドローム１０２３〜１００８が割り付けられている。同様に、第２サイクル（左から２番目のコラム）の処理単位データ３１１において、第１処理ブロック３１１ａに該当するデータＸ０２０〜Ｘ０３５には、シンドローム１００７〜９９２が割り付けられている。また、第１サイクルの処理単位データ３１１において第２処理ブロック３１１ｂに該当するデータＸ０１６〜Ｘ０１９には、シンドローム２５５〜２５２が割り付けられている。同様に、第２サイクルの処理単位データ３１１において第２処理ブロック３１１ｂに該当するデータＸ０３６〜Ｘ０３９には、シンドローム２５１〜２４８が割り付けられている。
【００３６】
以下、第４４サイクルの処理単位データ３１１まで、一部の例外を除き、同様にシンドロームが割り付けられる（例外の詳細については後述）。したがって、第４４サイクルの処理単位データ３１１では、第１処理ブロック３１１ａに該当するデータＸ８６０〜Ｘ８７５には、シンドローム３３５〜３２０が割り付けられ、第２処理ブロック３１１ｂに該当するデータＸ８７６〜Ｘ８７９には、シンドローム８３〜８０が割り付けられる。
【００３７】
以上のような割り付けを行うことにより、シンドロームの値が送信順の誤り位置ではなく、データブロック３１０の各データ（ビット）と１対１の対応関係となり、かつ、その関係が周期的になる。したがって、２０ビット（一般的には５ｍビット）の処理単位データ３１１に対する演算処理を４４サイクル繰り返すことによって、８８０ビットのデータブロック３１０の全体に対する演算処理を行うことが可能となる。
【００３８】
さて、本実施形態では、上記の割り付け規則とは別に、生成した１１ビットの誤り訂正符号３２１に対して、符号Ｃ００からＣ１０まで順に、２の冪乗数のシンドロームを割り付ける。これは、図２を参照して説明したように、誤り訂正符号に２の冪乗数のシンドロームを割り付けると、シンドロームの計算と誤り訂正符号の計算とが同じになるという利点があるためである。したがって、上記の割り付け規則によって対応付けられるシンドロームの値が２の冪乗数であるデータについては、例外的に別の値に置き換える。置き換えられる値は、２の冪乗数でなく、かつ８８０ビット分の上記の割り付け規則による割り付けにおいてデータに割り付けられない値である。
【００３９】
図８は、図７に示したデータとシンドロームの対応図表において、割り付け規則の例外を含むコラムと、誤り訂正符号３２１とシンドロームの対応を示す図である。
図８（ａ）に示すように、図７に示した対応では、３２サイクル目の処理単位データ３１１に例外となるシンドロームが現れる（データＸ６３５およびデータＸ６３９参照）。上記の割り付け規則により８８０ビットのデータに対するシンドロームの割り付けを行った場合、例外が現れるのはこの場所（第１処理ブロック３１１ａの１箇所および第２処理ブロック３１１ｂの１箇所）だけである。したがって、例外処理（上記の割り付け規則によらず、例外規則によってシンドロームを割り付ける処理）は、第１処理ブロック３１１ａに対する処理と第２処理ブロック３１１ｂに対する処理で、それぞれ１回行うだけで良い。
【００４０】
例外処理について、さらに詳細に説明する。図８（ａ）に示す第３２サイクルの処理単位データ３１１の各データに対して上記の割り付け規則によりシンドロームを割り付けるとすると、データＸ６３５にはシンドローム５１２が対応付けられ、データＸ６３９にはシンドローム１２８が対応付けられる。しかし、値「５１２」と値「１２８」は２の冪乗数である（前者は２9、後者は２7）。そのため、これらの値は、図示のように、誤り訂正符号Ｃ０９およびＣ０７に割り付けられる。そして、データＸ６３５およびＸ６３９には、例外として、これらの２の冪乗数以外の値が割り付けられる。図示の例では、データＸ６３５に対してはシンドローム２５７が割り付けられ、データＸ６３９にはシンドローム６５が割り付けられている。ここで、例外として割り付けるシンドロームの値は、第１処理ブロック３１１ａの例外に対して２k-2＋１とし、第２処理ブロック３１１ｂの例外に対して２k-4＋１とした。
【００４１】
上記のように、２の冪乗数のシンドロームを誤り訂正符号３２１に割り付けるために、上記の割り付け規則において該当値のシンドロームが対応付けられるデータに対して例外処理を行うと、データサイズ（ビット数）が大きくなるにしたがって例外の発生頻度が高くなる。そして、例外が多く発生すると、各データに割り付けたシンドロームの値の周期性が崩れるため、演算処理が複雑になってしまう。したがって、一般には、データの伝送効率と演算処理効率のバランスを鑑みて、データサイズを選択することが必要である。
【００４２】
具体的な例を挙げると、図７および図８に示した対応関係では、９４０ビットまでは、例外が上記の２箇所のみ（必要な例外処理が１回）であるので、上記の割り付け規則を単純に拡張して適用して良い。一般的に示せば、値ｋをＮ≦２k−ｋ−１を満たす最小値とした場合に、データ数ｎが、
式（１）：ｎ≦１５×２k-4−５ｍ
である場合には、例外処理が１回で済む。
【００４３】
また、図７および図８に示した対応関係によれば、第３２サイクルの処理単位データ３１１に例外となるシンドロームが現れており、第３１サイクルの処理単位データ３１１までは例外が現れていない。そこで、データサイズが６２０ビット（３１サイクル分）までであれば、例外処理を行わなくて済む。一般的に示せば、値ｋをＮ≦２k−ｋ−１を満たす最小値とした場合に、データ数ｎが、
式（２）：ｎ≦１０×２k-4−５ｍ
である場合には、例外処理が不要である。
【００４４】
＜誤り訂正符号の構成＞
次に、誤り訂正符号３２０の構成について説明する。
（１０２３，１０１３）拡張ハミング符号では、符号化処理により得られる誤り訂正符号（誤り訂正符号３２１）のサイズは１１ビットである。しかし、本実施形態では、伝送対象のデータを８Ｂ１０Ｂ符号化した後にパラレル−シリアル変換するため、上記のように、２０ビットのデータを単位として１サイクルの処理を行う。そこで、生成した１１ビットの誤り訂正符号３２１に冗長ビットを付加して、４０ビットの誤り訂正符号３２０とする。
【００４５】
再び図８を参照し、誤り訂正符号３２０の構成を説明する。
図８（ｂ）に示す誤り訂正符号３２０には、１１ビットの誤り訂正符号３２１が含まれると共に、この誤り訂正符号３２１の各ビットＣ００〜Ｃ１０に対する１１ビット分の反転符号と、１８ビットの固定値の付加符号とが含まれる。これにより、誤り訂正符号３２０は、全部で４０ビット（２サイクル分）となる。反転符号は、図８において「Ｒｅｖ」と表記されており、誤り訂正符号３２０のＤＣバランスを取るため、誤り訂正符号３２１における個々のビットＣ００〜Ｃ１０と対にして配置される。付加符号は、位置および値とも固定される。なお、誤り訂正符号３２１の各ビットＣ００〜Ｃ１０の配置は、反転符号と対であれば、図示の配置に限定されず、図８とは異なる順番で配置されても良い。また、付加符号は、誤り訂正符号３２０の全体のＤＣバランスを取ることができるものであれば、図示の配置及び値に限定されない。
【００４６】
＜ＥＣＣフレームの具体例＞
図９は、ＥＣＣフレームの具体例を示す図である。
図９（ａ）は、８８０ビットのデータブロック３１０の例を示す。図において、１行目（最上行）がデータＸ０００〜Ｘ０１９であり、２行目がデータＸ０２０〜Ｘ０３９である。以下同様に続き、４４行目（最下行）がデータＸ８６０〜Ｘ８７９である。図９（ｂ）は、図９（ａ）に示したデータブロック３１０に対して図７および図８を参照して説明したシンドロームの割り付けを満足する生成行列Ｇを用いた符号化演算を行うことにより得られた１１ビットの誤り訂正符号３２１を示す。図９（ｃ）は、図９（ｂ）に示す１１ビットの誤り訂正符号３２１に対して図８に示すように反転符号および付加符号を付加して生成した４０ビットの誤り訂正符号３２０を示す。図９（ｃ）を参照すると、例えば誤り訂正符号３２１のビットＣ０は「１」なので、その反転符号（直下の符号）は「０」となっている。同様に、ビットＣ１の反転符号は「０」、ビットＣ２の反転符号は「１」である。
【００４７】
＜ＥＣＣ復号部の構成＞
図１０は、受信側装置２００におけるＥＣＣ復号部２３０の構成を示す図である。
図１０に示すように、ＥＣＣ復号部２３０は、ＥＣＣ演算部２３１と、誤り検出訂正処理部２３２と、データ保持部２３３とを備える。送信側装置１００から送信されたＥＣＣフレーム３００は、レシーバ２１０で受信され、シリアル−パラレル変換部２２０により２０ビットずつのパラレルデータに変換された後、ＥＣＣ復号部２３０に送られる。ＥＣＣ復号部２３０は、図示のように、取得した受信データ（ＥＣＣフレーム３００）を２つの経路に分岐させ、分岐した一方の経路を転送されたデータをデータ保持部２３３に保持する。ここで、データ保持部２３３は、記憶容量が８８０ビット以上のＦＩＦＯである。データ保持部２３３に保持されるデータは、ＥＣＣフレーム３００から後端側の４０ビット（誤り訂正符号３２０）を取り除いた８８０ビット分のデータ（データブロック３１０）である。
【００４８】
一方、ＥＣＣ復号部２３０のＥＣＣ演算部２３１は、分岐した他方の経路を転送された９２０ビットのＥＣＣフレーム３００を処理して１１ビットのシンドロームを算出する。そして、誤り検出訂正処理部２３２が、このシンドロームを用いてデータの誤りの有無を検出し、可能であれば、データ保持部２３３に保持されているデータブロック３１０に対して、検出した誤りを訂正する。ここで、本実施形態ではＥＣＣ符号化として拡張ハミング符号を用いているため、ＥＣＣフレーム３００に含まれる２ビットまでの誤りを検出することができ、誤りが１ビットであれば、これを訂正することができる。
【００４９】
ＥＣＣ復号部２３０の動作について、さらに詳細に説明する。
ＥＣＣ演算部２３１は、２０ビットずつ受け取った受信データ（ＥＣＣフレーム３００）に対して、ＥＣＣ符号化部１２０のＥＣＣ演算部１２１による演算で用いられた生成行列Ｇに対応する検査行列Ｈの転置行列ＨTを用いて演算（乗算）することにより、１１ビットのシンドロームを算出する。ここで、検査行列Ｈは、生成行列と下記の関係がある。
式（３）：ＧＨT＝ＨＧT＝０
【００５０】
次に、誤り検出訂正処理部２３２は、ＥＣＣ演算部２３１により算出されたシンドロームを用いて、受信データ（ＥＣＣフレーム３００）の誤りの有無を調べる。そして、ＥＣＣフレーム３００のデータブロック３１０部分に１ビットの誤りが検出された場合は、データ保持部２３３に保持されているデータ（データブロック３１０）を訂正する。データ保持部２３３に保持されたデータは、誤り検出訂正処理部２３２による処理が済んだ後、８Ｂ１０Ｂ復号部２４０に送られ、２０ビットごとに１６ビットの元のデータに変換される。これを４４サイクル（８８０ビット分）行うことにより、送信側装置１００において送信データとして生成された７０４ビットのデータブロックが復元される。
【００５１】
＜シンドロームによる誤り位置の特定＞
ここで、ＥＣＣ復号部２３０のＥＣＣ演算部２３１により算出されるシンドロームについて、具体例を挙げて説明する。
本実施形態では、図７および図８を参照して説明した割り付け規則に従って、ＥＣＣフレーム３００に含まれるデータブロック３１０を構成する８８０ビットのデータおよび１１ビットの誤り訂正符号３２１に対して、シンドロームが割り付けられている。したがって、ＥＣＣ演算部２３１により算出されるシンドロームは、この割り付け規則に基づく構造を持つ。
【００５２】
図１１は、各データに対応するシンドロームの構成を示す図である。
図１１には、例として、１サイクル目の２０ビットのデータおよび２サイクル目の２０ビットのデータに対するシンドロームの具体的な値が記載されている。なお、シンドロームにおける１１ビット目の値Ｓ１０は、拡張ハミング符号において付加されるパリティ・データであるので、図１１では記載を省略している。
【００５３】
本実施形態のシンドロームによれば、２０ビットごとの各サイクルにおいて、誤りビットの位置を表すシンドロームには一定の規則性がある。すなわち、１サイクル処理される２０ビットのデータ（処理単位データ３１１）のうち、上位１６ビット（第１処理ブロック３１１ａ）の誤り位置は、シンドロームの下位４ビット（Ｓ０〜Ｓ４）で表現される。また、この処理単位データ３１１のうち、下位４ビット（第２処理ブロック３１１ｂ）の誤り位置は、シンドロームの下位２ビット（Ｓ０、Ｓ１）で表現される。すなわち、第１処理ブロック３１１ａの各ビットに対応するシンドロームは下位４ビットの値が相互に異なっており、第２処理ブロック３１１ｂの各ビットに対応するシンドロームは下位２ビットの値が相互に異なっている。
【００５４】
また、処理単位データ３１１における第１処理ブロック３１１ａと第２処理ブロック３１１ｂとの識別（切り分け）は、上位２ビット（Ｓ８、Ｓ９）で行われる。すなわち、シンドロームの値において、Ｓ９＝０かつＳ８＝０の場合は、Ｓ＜２５６であるので、第２処理ブロック３１１ｂのビット誤りに対応するシンドロームであり、これ以外（Ｓ９＝１またはＳ８＝１）の場合は、Ｓ≧２５６であるので、第１処理ブロック３１１ａのビット誤りに対応するシンドロームであることがわかる。
【００５５】
サイクル位置（何番目のサイクルに誤りがあるか）は、第１処理ブロック３１１ａのビットに対するシンドロームではＳ４〜Ｓ９の６ビットで表現され、第２処理ブロック３１１ｂのビットに対するシンドロームではＳ２〜Ｓ７の６ビットで表現される。例えば、図１１を参照すると、第１サイクルの処理単位データ３１１の場合、この６ビットの全てが「１」となっている。また、第２サイクルの処理単位データ３１１の場合、この６ビットのうち最下位の１ビット（第１処理ブロック３１１ａではＳ４、第２処理ブロック３１１ｂではＳ２）のみが「０」となっている。特に図示しないが、同様に、第３サイクルの処理単位データ３１１では、この６ビットのうち最下位から２番目のビット（第１処理ブロック３１１ａではＳ５、第２処理ブロック３１１ｂではＳ３）のみが「０」となり、第４サイクルの処理単位データ３１１では、この６ビットのうち最下位および最下位から２番目の２ビット（第１処理ブロック３１１ａではＳ４およびＳ５、第２処理ブロック３１１ｂではＳ２およびＳ３）が「０」となる。この６ビットで表現できる最大のサイクル数は６４であり、６ビット全ての値が「０」の場合である。
【００５６】
以上のようにして、ＥＣＣ復号部２３０のＥＣＣ演算部２３１により算出されたシンドロームに基づき、受信データの誤り位置（ビット）が特定される。なお、８８０ビットのデータブロック３１０における各ビットのうち、第３２サイクルのデータＸ６３５およびデータＸ６３９は、図８を参照して説明したように、例外として特定のシンドロームが割り付けられている。したがって、図８に示した例の場合、シンドロームが「０１０００００００１」であれば、データＸ６３５が誤りであり、シンドロームが「０００１０００００１」であれば、Ｘ６３９が誤りであると判断できる。
【００５７】
＜誤り検出訂正処理＞
図１２は、本実施形態における誤り検出訂正処理の内容を示すフローチャートである。
ＥＣＣ復号部２３０のＥＣＣ演算部２３１によりシンドロームが算出されると、誤り検出訂正処理部２３２は、まず、算出されたシンドロームのＳ１０の値を調べる（ステップ１２０１）。ここで、Ｓ１０は、拡張ハミング符号において付加されるパリティ・データである。したがって、Ｓ１０＝０である場合、受信データ（９２０ビットのＥＣＣフレーム３００）には誤りが無いか、または２ビットの誤りがある。
【００５８】
そこで、誤り検出訂正処理部２３２は、さらにシンドロームのＳ０〜Ｓ９の値を調べる（ステップ１２０２）。Ｓ０〜Ｓ９の全ての値が「０」であれば、誤り検出訂正処理部２３２は、受信データには誤りが無いと判断する（ステップ１２０３）。したがって、受信データから抽出されてデータ保持部２３３に保持されているデータブロック３１０が、ＥＣＣ復号部２３０から出力されて８Ｂ１０Ｂ復号部２４０へ送られる。
【００５９】
ステップ１２０２でＳ０〜Ｓ１に「１」が含まれている場合、誤り検出訂正処理部２３２は、受信データに２ビットの誤りが有ると判断する（ステップ１２０４）。この場合、誤り検出訂正処理部２３２は、受信データに含まれる誤りを訂正できないので、受信データに誤りが有ることを通知するエラー出力を行う。
【００６０】
一方、ステップ１２０１でＳ１０＝１である場合、誤り検出訂正処理部２３２は、受信データに１ビットの誤りが有ると判断し、誤り訂正処理を行う。この誤り訂正処理において、誤り検出訂正処理部２３２は、まず、シンドロームのＳ９およびＳ８の値を調べる（ステップ１２０５）。図１１を参照して説明したように、Ｓ９およびＳ８がいずれも「０」である場合は、そのシンドロームが第２処理ブロック３１１ｂに含まれるデータを示すことを意味する。したがって、この場合、誤り検出訂正処理部２３２は、第２処理ブロック３１１ｂの４ビットに対して誤り位置を特定し訂正する処理（以下、４ビット処理と呼ぶ）を行う（ステップ１２０６）。これに対し、Ｓ９およびＳ８のうち一方または両方が「１」である場合は、そのシンドロームが第１処理ブロック３１１ａに含まれるデータを示すことを意味する。したがって、この場合、誤り検出訂正処理部２３２は、第１処理ブロック３１１ａの１６ビットに対して誤り位置を特定し訂正する処理（以下、１６ビット処理と呼ぶ）を行う（ステップ１２０７）。
【００６１】
４ビット処理では、誤り検出訂正処理部２３２は、シンドロームのＳ２〜Ｓ７の値に基づいて、そのシンドロームに特定されるデータが何サイクル目の処理単位データ３１１の第２処理ブロック３１１ｂに含まれるデータかを判断する。また、誤り検出訂正処理部２３２は、シンドロームのＳ０、Ｓ１の値に基づいて、その第２処理ブロック３１１ｂにおけるデータの位置を判断する。
【００６２】
１６ビット処理では、誤り検出訂正処理部２３２は、シンドロームのＳ４〜Ｓ９の値に基づいて、そのシンドロームに特定されるデータが何サイクル目の処理単位データ３１１の第１処理ブロック３１１ａに含まれるデータかを判断する。また、誤り検出訂正処理部２３２は、シンドロームのＳ０〜Ｓ３の値に基づいて、その第１処理ブロック３１１ａにおけるデータの位置を判断する。
【００６３】
図１３は、シンドロームに基づく誤りビットの訂正処理の具体例を示す図である。
図１３（ａ）は４ビット処理の例を示す。得られたシンドロームのうち、パリティ・データであるＳ１０を除くＳ０〜Ｓ９の値が「０００１１００１１０」であるものとする。Ｓ９＝Ｓ８＝０であるので、誤りビットは第２処理ブロック３１１ｂに存在する。したがって、サイクル数を特定するのはＳ２〜Ｓ７であり、その値「０１１００１」は１０進法表記で「２５」である。この６ビットで表現できるのは６４サイクルまでであり、シンドロームは第１サイクルの「１１１１１１」から降順に割り付けているので、誤りビットが含まれる処理単位データ３１１は第３９サイクル（６４−２５＝３９）であることがわかる。
【００６４】
また、第２処理ブロック３１１ｂであるから、誤りビットの位置を特定するのはＳ０、Ｓ１であり、その値「１０」は１０進法表記で「２」である。また、１サイクルの処理単位データ３１１に含まれるビット数は２０であり、第２処理ブロック３１１ｂは下位４ビット（１７番目〜２０番目のビット）である。そして、シンドロームの下位２ビット（Ｓ０、Ｓ１）は処理単位データ３１１の下位４ビットに対して降順に割り付けているので、誤りビットの位置は１８番目のビット（２０−２＝１８）であることがわかる。先に求めたように、誤りビットが含まれる処理単位データ３１１は第３９サイクルであるから、この処理単位データ３１１の１８番目のビットは、データＸ７７７であり、これが誤りビットである。
【００６５】
なお、「７７７」の値は、１サイクルの処理単位データ３１１に含まれるビット数をｘａ、誤りビットが含まれる処理単位データ３１１のサイクル数をｘｂ、処理単位データ３１１における誤りビットの位置をｘｃとすると、下記の計算式にて算出される。
式（４）：
ｘａ×（ｘｂ−１）＋（ｘｃ−１）＝２０×（３９−１）＋（１８−１）＝７７７
【００６６】
図１３（ｂ）は１６ビット処理の例を示す。得られたシンドロームのうち、パリティ・データであるＳ１０を除くＳ０〜Ｓ９の値が「１１１００１０１１０」であるものとする。Ｓ９＝Ｓ８＝０でないので、誤りビットは第１処理ブロック３１１ａに存在する。したがって、サイクル数を特定するのはＳ４〜Ｓ９であり、その値「１１１００１」は１０進法表記で「５７」である。この６ビットで表現できるのは６４サイクルまでであり、シンドロームは第１サイクルの「１１１１１１」から降順に割り付けられているので、誤りビットが含まれる処理単位データ３１１は第７サイクル（６４−５７＝７）であることがわかる。
【００６７】
また、第１処理ブロック３１１ａであるから、誤りビットの位置を特定するのはＳ０〜Ｓ３であり、その値「０１１０」は１０進法表記で「６」である。また、１サイクルの処理単位データ３１１に含まれるビット数は２０であり、第１処理ブロック３１１ａは上位１６ビット（１番目〜１６番目のビット）である。そして、シンドロームの下位４ビット（Ｓ０〜Ｓ３）は処理単位データ３１１の上位１６ビットに対して降順に割り付けているので、誤りビットの位置は１０番目のビット（１６−６＝１０）であることがわかる。先に求めたように、誤りビットが含まれる処理単位データ３１１は第７サイクルであるから、この処理単位データ３１１の１０番目のビットは、データＸ１２９であり、これが誤りビットである。
【００６８】
なお、「１２９」の値は、上記と同様の計算式により、次のように算出される。
式（５）：
ｘａ×（ｘｂ−１）＋（ｘｃ−１）＝２０×（７−１）＋（１０−１）＝１２９
【００６９】
なお、例外として割り付けた２つのシンドロームについては、次のように判断する。まず、Ｓ０〜Ｓ９のうち、Ｓ８およびＳ０が「１」であり、その他の値がすべて「０」である場合、すなわちパリティ・データであるＳ１０を除くシンドロームが「０１０００００００１」である場合は、第３２サイクルの１６ビット目のデータＸ６３５が誤りであると判断する。同様に、Ｓ６およびＳ０が「１」であり、その他の値がすべて「０」である場合、すなわちＳ１０を除くシンドロームが「０００１０００００１」である場合は、第３２サイクルの２０ビット目のデータＸ６３９が誤りであると判断する。
【００７０】
＜ＥＣＣ演算部の回路構成＞
図１４は、本実施形態におけるＥＣＣ演算部の論理回路の構成例を示す図である。
本実施形態では、誤り訂正符号を生成するＥＣＣ符号化部１２０のＥＣＣ演算部１２１と、シンドロームを計算するＥＣＣ復号部２３０のＥＣＣ演算部２３１が存在するが、以下では、ＥＣＣ符号化部１２０のＥＣＣ演算部１２１の場合を例として説明する。なお、ＥＣＣ復号部２３０のＥＣＣ演算部２３１も、同様の回路構成にて実現される。
【００７１】
図１４に示す論理回路において、８Ｂ１０Ｂ符号化部１１０から出力されたデータブロック３１０における２０ビットの処理単位データ３１１が、Ｘ０〜Ｘ１９に入力される。カウンタ１４０１は、ＥＣＣ演算部１２１のクロックサイクルでカウントアップする、ａ０〜ａ５の６ビットのカウンタである。このカウンタ１４０１は、データブロック３１０ごと（すなわち８８０ビットごと）にリセットされ、個々のデータブロック３１０の処理単位データ３１１に対する処理を４４サイクルまでカウントアップする。
【００７２】
ＥＣＣ演算部１２１は、１サイクルごとに、１１ビットのデータＣ０〜Ｃ１０を出力する。なお、Ｃ１０は、パリティ・データであり、Ｘ０〜Ｘ１９の排他的論理和を計算して得る（図示を省略している）。出力されたデータＣ０〜Ｃ１０は、１サイクルごとにＥＣＣ演算部１２１にフィードバックされ、順次、次のサイクルの出力データＣ０〜Ｃ１０との排他的論理和が計算される。言い換えると、１サイクル目に出力されたデータＣ０〜Ｃ１０と２サイクル目に出力されたデータＣ０〜Ｃ１０との排他的論理和を計算し、算出された値と３サイクル目に出力されたデータＣ０〜Ｃ１０との排他的論理和をさらに計算する。同様にして、サイクルごとの出力データＣ０〜Ｃ１０の排他的論理和の計算を４４サイクル繰り返すことにより、１１ビットの誤り訂正符号３２１が得られる。
【００７３】
ＥＣＣ復号部２３０のＥＣＣ演算部２３１では、受信データである９２０ビットのＥＣＣフレーム３００に対し、同様の論理回路による処理が行われる。すなわち、１サイクルごとに出力される１１ビットのデータＳ０〜Ｓ１０に対して、サイクルごとに順次、排他的論理和が計算される。ＥＣＣフレーム３００は、ＥＣＣ符号化部１２０の処理対象であるデータブロック３１０に４０ビット（２サイクル分）の誤り訂正符号３２０を付加したものであるから、上記のデータＳ０〜Ｓ１０の出力および排他的論理和の計算を４６サイクル繰り返し、１１ビットのシンドロームが得られる。
【００７４】
以上のように、本実施形態は、ＥＣＣフレーム３００の各データ（ビット）に対してシンドロームを特定の割り付け規則に基づいて周期的に割り付けたことにより、数十の論理演算を繰り返し処理することで誤り訂正符号３２１やシンドロームを計算することができる。このため、本実施形態を実装するための論理回路としては、この数十の論理演算を行うだけの回路規模があれば良い。したがって、１００ビット程度のデータフレームの誤り訂正符号を生成するために、従来のようにシンドロームを昇順に割り付ける場合に数千程度の論理演算を要することと比較すると、本実施形態を採用することにより論理演算に要する回路規模を大幅に縮減することができる。
【００７５】
＜ＥＣＣ符号化処理の他の例＞
上記の実施形態では、２０ビット（５ｍビットでｍ＝４）のデータを処理単位データ３１１として（２０ビット周期で）ＥＣＣフレーム３００の各データ（ビット）にシンドロームを割り付ける場合を例として説明した。ここで、ｍは２の冪乗数であれば良く、上記の例に限定されない。例えば、ｍ＝２、すなわち処理単位データ３１１を１０ビットとしても良い。この場合、上述した式（１）を用い、ｋ＝１０、ｍ＝２として計算すると、ＥＣＣフレーム３００のデータ数ｎが９５０ビットまでは、例外処理が１回で済むことがわかる。同様に、式（２）を用いて計算すると、ＥＣＣフレーム３００のデータ数ｎが６３０ビットまでは、例外処理が不要であることがわかる。
【００７６】
＜実装システムの構成例＞
以上のように構成される本実施形態のデータ伝送システムは、データ伝送が行われる種々のシステムにおいて実装し適用することができる。例えば、センター装置から複数の端末装置へデータを送信するようなシステムでは、センター装置に送信側装置１００を実装し、端末装置に受信側装置２００を実装することで、本実施形態のＥＣＣフレームを用いた１対多通信が実現される。反対に、センター装置に受信側装置２００を実装し、端末装置に送信側装置１００を実装するようなシステム構成も可能である。
【００７７】
また、ネットワーク等の通信回線で相互接続された個々の装置が送信側装置１００および受信側装置２００を実装することにより、多対多通信が実現される。これらの通信（１対多および多対多）システムにおいて、送信側装置１００と受信側装置２００とを接続する通信回線は、有線回線であっても良いし、無線回線であっても良い。また、通信方式の種類も特に限定されない。
【００７８】
さらにまた、パーソナルコンピュータ等の情報処理装置において、ＣＰＵと種々のバスで接続された記憶装置等の周辺装置との間のデータ伝送において本実施形態を適用しても良い。この場合、ＣＰＵのバス・インターフェイスおよび周辺装置のバス・インターフェイスにおいて、各々、送信側装置１００および受信側装置２００の機能を搭載する。これにより、ＣＰＵと周辺装置との間のデータのやり取りに、本実施形態によるＥＣＣフレーム３００を用いることができる。
【符号の説明】
【００７９】
１００…送信側装置、１１０…８Ｂ１０Ｂ符号化部、１２０…ＥＣＣ符号化部、１２１…ＥＣＣ演算部、１２２…ＥＣＣ符号生成部、１２３…ＥＣＣ符号付加部、１３０…パラレル−シリアル変換部、１４０…トランスミッタ（送信部）、２００…受信側装置、２１０…レシーバ（受信部）、２２０…シリアル−パラレル変換部、２３０…ＥＣＣ復号部、２３１…ＥＣＣ演算部、２３２…誤り検出訂正処理部、２３３…データ保持部、２４０…８Ｂ１０Ｂ復号部、３００…ＥＣＣフレーム、３１０…データブロック、３１１…処理単位データ、３１１ａ…第１処理ブロック、３１１ｂ…第２処理ブロック、３２０、３２１…誤り訂正符号
【図１】
0005842697.tif 000002
【図２】
0005842697.tif 000003
【図３】
0005842697.tif 000004
【図４】
0005842697.tif 000005
【図５】
0005842697.tif 000006
【図６】
0005842697.tif 000007
【図７】
0005842697.tif 000008
【図８】
0005842697.tif 000009
【図９】
0005842697.tif 000010
【図１０】
0005842697.tif 000011
【図１１】
0005842697.tif 000012
【図１２】
0005842697.tif 000013
【図１３】
0005842697.tif 000014
【図１４】
0005842697.tif 000015