(57)【要約】【課題】エラーの発生を低減させる。【解決手段】送信装置１と受信装置２との間でシリアル通信によりデータ伝送を行う通信装置であって、送信装置１は、データに対して巡回冗長検査を行うための第１符号（ＣＲＣ符号）を生成する第１符号生成部１５と、データに対して誤り検出と誤り訂正を行うための第２符号（ＥＣＣ符号）を生成する第２符号生成部１５と、少なくとも、データ、第１符号、及び第２符号を含むシリアル通信方式の信号を送信する送信部１５と、を備える。【選択図】図２
2015049769.tif 000002
【特許請求の範囲】
【請求項１】
送信装置と受信装置との間でシリアル通信によりデータ伝送を行う通信装置であって、
前記送信装置は、
データに対して巡回冗長検査を行うための第１符号を生成する第１符号生成部と、
前記データに対して誤り検出と誤り訂正を行うための第２符号を生成する第２符号生成部と、
少なくとも、前記データ、前記第１符号、及び前記第２符号を含むシリアル通信方式の信号を送信する送信部と、を備える通信装置。
【請求項２】
前記受信装置は、
前記送信装置から送信された前記信号を受信する受信部と、
前記第２符号に基づいて前記データの誤り検出を実行する誤り検出部と、
前記誤り検出部により前記データの誤りが検出された場合に、その誤りを訂正する誤り訂正部と、
前記第１符号に基づいて、前記データの前記巡回冗長検査を実行する巡回冗長検査部と、を備える請求項１記載の通信装置。
【請求項３】
前記信号は複数のフィールドで構成され、
前記第２符号生成部は、各フィールドのデータに対する前記第２符号をそれぞれ生成する請求項１または請求項２記載の通信装置。
【請求項４】
前記第１符号生成部は、前記複数のフィールドのデータに対する前記第１符号を生成する請求項３記載の通信装置。
【請求項５】
前記シリアル通信方式の信号を生成する信号生成部を備え、
前記信号生成部は、前記信号において、通信の同期のために用いられる同期用コードと重複しない位置に前記第２符号を付加する請求項１〜４のいずれか一項に記載の通信装置。
【請求項６】
前記信号生成部は、前記第２符号を前記信号の最上位側から付加する請求項５記載の通信装置。
【請求項７】
前記第２符号はハミングコードである請求項１〜６のいずれか一項に記載の通信装置。
【請求項８】
前記送信装置は、前記データとしての位置データを含むエンコード信号を送信するエンコーダ装置であり、
前記受信装置は、前記位置データに基づいて制御対象を制御する制御装置である請求項１〜７のいずれか一項に記載の通信装置。
【請求項９】
前記送信装置は、前記データとしてのコマンドを含むコマンド信号を送信する制御装置であり、
前記受信装置は、前記コマンドに応じてエンコード信号を送信するエンコーダ装置である請求項１〜７のいずれか一項に記載の通信装置。
【請求項１０】
データに対して巡回冗長検査を行うための第１符号を生成する第１符号生成部と、
前記データに対して誤り検出と誤り訂正を行うための第２符号を生成する第２符号生成部と、
少なくとも、前記データ、前記第１符号、及び前記第２符号を含むシリアル通信方式の信号を送信する送信部と、を備えるエンコーダ装置。
【請求項１１】
シリアル通信によりデータ伝送を行うシリアル通信方法であって、
データに対して巡回冗長検査を行うための第１符号を生成することと、
前記データに対して誤り検出と誤り訂正を行うための第２符号を生成することと、
少なくとも、前記データ、前記第１符号、及び前記第２符号を含むシリアル通信方式の信号を送信することと、含むシリアル通信方法。
【請求項１２】
前記信号を受信することと、
前記第２符号に基づいて前記データの誤り検出を実行することと、
前記誤り検出により前記データの誤りが検出された場合に、その誤りを訂正することと、
前記第１符号に基づいて、前記データの前記巡回冗長検査を実行することと、を含む請求項１１記載のシリアル通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、エンコーダ装置、及びシリアル通信方法に関する。
【背景技術】
【０００２】
エンコーダ装置は、産業用ロボット等の回転位置変位を検出するセンサとして広く利用されている。エンコーダ装置を用いた制御システムでは、エンコーダ装置と制御装置との間で、双方向のシリアル通信方式によるデータ伝送を行う。この種の制御システムでは、エンコーダ装置が、検出した回転位置変位に対応するデータに対して巡回冗長検査を行うためのチェックコードを生成する。そして、エンコーダ装置が、生成したチェックコードをエンコード信号に付加して制御装置に送信する（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２７１５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記したような制御システムでは、制御装置がエンコード信号のチェックコードに基づいて巡回冗長検査を行う。これにより、制御装置が信頼性の高いデータに基づいて制御対象を制御することが可能となる。しかし、例えば伝送ラインの近くに大きなノイズ源があるような場合、信号の伝送中にノイズの影響を受けやすい。この場合、巡回冗長検査においてエラーが頻発し、制御装置を停止させてしまう事態に陥ることがある。
【０００５】
本発明の態様では、エラーの発生を低減させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１態様によれば、送信装置と受信装置との間でシリアル通信によりデータ伝送を行う通信装置であって、送信装置は、データに対して巡回冗長検査を行うための第１符号を生成する第１符号生成部と、データに対して誤り検出と誤り訂正を行うための第２符号を生成する第２符号生成部と、少なくとも、データ、第１符号、及び第２符号を含むシリアル通信方式の信号を送信する送信部と、を備える通信装置が提供される。
【０００７】
本発明の第２態様によれば、データに対して巡回冗長検査を行うための第１符号を生成する第１符号生成部と、データに対して誤り検出と誤り訂正を行うための第２符号を生成する第２符号生成部と、少なくとも、データ、第１符号、及び第２符号を含むシリアル通信方式の信号を送信する送信部と、を備えるエンコーダ装置が提供される。
【０００８】
本発明の第３態様によれば、シリアル通信によりデータ伝送を行うシリアル通信方法であって、データに対して巡回冗長検査を行うための第１符号を生成することと、データに対して誤り検出と誤り訂正を行うための第２符号を生成することと、少なくとも、データ、第１符号、及び第２符号を含むシリアル通信方式の信号を送信することと、含むシリアル通信方法が提供される。
【発明の効果】
【０００９】
本発明の態様によれば、エラーの発生を低減させることができる。
【図面の簡単な説明】
【００１０】
【図１】制御システムの構成を示すブロック図である。
【図２】図１に示すエンコーダ装置の構成を示すブロック図である。
【図３】図１に示す上位制御装置の構成を示すブロック図である。
【図４】第１実施形態におけるエンコード信号のフォーマット構成を示す図である。
【図５】各データフィールドのデータ割り付けを示す図である。
【図６】信号処理部によるエンコード信号の送信処理の一例を示すフローチャートである。
【図７】制御部によるエンコード信号の受信処理の一例を示すフローチャートである。
【図８】第２実施形態におけるエンコード信号のフォーマット構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を参照して説明する。ただし、本発明はこれに限定されるものではない。また、図面においては、実施形態を説明するため、一部分を大きくまたは強調して記載するなど適宜縮尺を変更して表現することがある。
【００１２】
＜第１実施形態＞
図１は、制御システムの構成を示すブロック図である。図１に示す制御システムＳＹＳは、複数（ｎ個）のエンコーダ装置（送信装置、受信装置）１−１〜１−ｎと、上位制御装置（送信装置、受信装置、制御装置）２と、を備える。図１に示すように、複数のエンコーダ装置１−１〜１−ｎと上位制御装置２とは、伝送ライン（シリアル通信ライン）３を介して互いに接続されている。
【００１３】
複数のエンコーダ装置１−１〜１−ｎは、例えばロボットを駆動する複数のモータ（制御対象）に対してそれぞれ搭載されている。各エンコーダ装置１−１〜１−ｎは、それぞれ、各モータの回転位置変位（または、モータにより駆動される部材の回転位置変位又は位置変位）を検出する。そして、各エンコーダ装置１−１〜１−ｎは、それぞれ、各モータの回転位置変位を表す位置データを記憶する。また、各エンコーダ装置１−１〜１−ｎは、上位制御装置２から送信されるコマンドを通知するためのコマンド信号を受信する。そして、エンコーダ装置１−１〜１−ｎは、コマンド信号を受信することに応じて、伝送ライン３を介して、位置データを通知するためのエンコード信号を上位制御装置２に送信する。
【００１４】
上位制御装置２は、伝送ライン３を介して各エンコーダ装置１−１〜１−ｎにコマンド信号を送信する。また、上位制御装置２は、各エンコーダ装置１−１〜１−ｎから送信されるエンコード信号を受信する。そして、上位制御装置２は、エンコード信号に含まれる位置データに基づいて、各エンコーダ装置１−１〜１−ｎに対応する各モータを制御する。例えば、上位制御装置２は、各モータを所定量回転させる制御を行う。このような制御により、上位制御装置２は、ロボットの動作制御を行う。
【００１５】
伝送ライン３は、例えば、一対の差動伝送線路３ａ，３ｂにより構成されている。差動伝送線路（ＳＤ＋）３ａと差動伝送線路（ＳＤ−）３ｂとの間には終端抵抗４が接続される。このような一対の差動伝送線路３ａ，３ｂからなる伝送ライン３によって、コマンド信号やエンコード信号が差動シリアル通信（例えば、ＲＳ４８５規格準拠）により伝送される。また、上位制御装置２からの一対の電源線Ｖｃｃとグランド線ＧＮＤとが各エンコーダ装置１−１〜１−ｎに対して接続されている。すなわち、エンコーダ装置１−１〜１−ｎの電源は、上位制御装置２から供給されている。
【００１６】
なお、上記したように、各エンコーダ装置１−１〜１−ｎは、エンコード信号を送信するとともにコマンド信号を受信する。このことから各エンコーダ装置１−１〜１−ｎは、通信装置における送信装置及び受信装置として機能する。また、上位制御装置２は、コマンド信号を送信するとともにエンコード信号を受信する。このことから上位制御装置２も、通信装置における送信装置及び受信装置として機能する。
【００１７】
図２は、図１に示すエンコーダ装置の構成を示すブロック図である。なお、図１に示すエンコーダ装置１−１〜１−ｎは、それぞれ同一の構成を有している。このため、以降の説明においては、エンコーダ装置１−１〜１−ｎのうちのいずれか１つをエンコーダ装置１として説明する。図２に示すように、エンコーダ装置１は、発光部１１、回転円板１２、受光部１３、波形整形回路１４、信号処理部（第１符号生成部、第２符号生成部、信号生成部、送信部）１５、送受信ドライバ部１６、及び記憶部１７を有している。
【００１８】
発光部１１は、回転円板１２に対して光を発光する。回転円板１２は、モータの回転軸の回転変位（又は、このモータにより駆動される部材の回転変位又は位置変位）に応じて、直接又はギア装置などの動力伝達機構を介して回転する。回転円板１２には微小なスリットが形成されている。発光部１１が発光した光は、回転円板１２の回転変位に応じて、回転円板１２のスリットを通過し、また回転円板１２のスリットのない部分で遮光される。受光部１３は、回転円板１２が所定の回転変位のときに、発光部１１が発光した光を回転円板１２のスリットを経て受光する。また、受光部１３は、光の受光に応じて出力信号を波形整形回路１４に出力する。波形整形回路１４は、受光部１３からの出力信号を波形整形する。また、波形整形回路１４は、波形整形した信号を信号処理部１５に出力する。信号処理部１５は、波形整形回路１４からの信号に対して所定の演算処理を施すことにより、回転円板１２の回転位置変位を検出する。このように、エンコーダ装置１は、回転円板１２の回転位置変位を検出することにより、モータの回転位置変位（又は、このモータにより駆動される部材の回転位置変位又は位置変位）を検出する。
【００１９】
送受信ドライバ部１６は、上位制御装置２との間で信号の送受信する処理を行う。本実施形態では、送受信ドライバ部１６は、エンコード信号を上位制御装置２に送信する処理を行う。また、送受信ドライバ部１６は、上位制御装置２から送信されるコマンド信号を受信する処理を行う。記憶部１７は、信号処理部１５が検出した回転円板１２の回転位置変位を表す位置データを記憶する。
【００２０】
信号処理部１５は、上位制御装置２から送信されるコマンド信号を受信することに応じて、記憶部１７に記憶されている位置データを読み出す。そして、信号処理部１５は、読み出した位置データについて、巡回冗長検査(Cyclic Redundancy Check)を行うためのＣＲＣ符号を生成する。ここで、巡回冗長検査とは、主にシリアル通信のデジタルデータの伝送において、伝送中に誤り（エラー）が発生していないかどうかを検出する方法である。データの送信側（本実施形態においてエンコーダ装置１又は上位制御装置２）では、伝送するデータに対して巡回的なアルゴリズム（生成多項式）を用いてＣＲＣ符号と呼ばれる冗長データを生成する。そして、データの送信側は、生成した冗長データを本来のデータに付加して送信する。データの受信側（本実施形態においてエンコーダ装置１又は上位制御装置２）は、送信側と同一のアルゴリズムをデータに適用して、冗長データを算出する。受信側は、送信側において算出したＣＲＣ符号と、受信側で算出したＣＲＣ符号とが一致しているか否かを判定することにより、データの誤りがなく伝送されたか否かを判断する。なお、本実施形態では、ＣＲＣ符号のことを「第１符号」ということがある。
【００２１】
また、信号処理部１５は、読み出した位置データについて、誤り検出訂正(Error Detection and Correction)を行うためのＥＣＣ符号（ＥＣＣ：Error Correcting Code：誤り訂正符号）を生成する。ＥＣＣ符号とは、データのビット誤り（エラー）を訂正するために本来のデータとは別に付加される冗長データのことをいう。本実施形態において、信号処理部１５は、ＥＣＣ符号としてハミングコードを生成する。ここで、ハミングコードは、データの誤りを検出し訂正することができる線形誤り訂正符号である。なお、本実施形態では、ＥＣＣ符号のことを「第２符号」ということがある。また、ＥＣＣ符号の詳細については後述する（図５参照）。
【００２２】
また、信号処理部１５は、位置データ、ＥＣＣ符号、及びＣＲＣ符号に基づいて、シリアル通信のフォーマット構成のエンコード信号を生成する。そして、信号処理部１５は、生成したエンコード信号を送受信ドライバ部１６を介して上位制御装置２に送信する。
【００２３】
図３は、図１に示す上位制御装置の構成を示すブロック図である。図３に示すように、上位制御装置２は、送受信ドライバ部２１、制御部（受信部、誤り検出部、誤り訂正部、巡回冗長検査部）２２、及びメモリ２３を有している。送受信ドライバ部２１は、各エンコーダ装置１−１〜１−ｎとの間で信号の送受信する処理を行う。本実施形態では、送受信ドライバ部２１は、コマンド信号を各エンコーダ装置１−１〜１−ｎに送信する処理を行う。また、送受信ドライバ部２１は、各エンコーダ装置１−１〜１−ｎから送信されるエンコード信号を受信する処理を行う。
【００２４】
制御部２２は、シリアル通信のフォーマット構成のコマンド信号を生成する。そして、制御部２２は、生成したコマンド信号を送受信ドライバ部２１を介してエンコーダ装置１−１〜１−ｎに送信する。また、制御部２２は、エンコーダ装置１−１〜１−ｎから送信されるエンコード信号を送受信ドライバ部２１を介して受信する。そして、制御部２２は、受信したエンコード信号に含まれるＥＣＣ符号に基づいて、そのエンコード信号に含まれる位置データやＥＣＣ符号の誤り検出処理を行う。また、制御部２２は、誤り検出処理により位置データやＥＣＣ符号における１ビットの誤りが検出された場合は、その１ビットの誤りを訂正する誤り訂正処理を行う。なお、誤り検出処理と誤り訂正処理とをまとめて誤り検出訂正処理ということがある。
【００２５】
また、制御部２２は、誤り検出処理により誤りを検出しなかった場合、及び誤り訂正処理により１ビットの誤りを訂正した場合は、位置データ（誤り訂正処理を実行した場合は、誤り訂正処理後の位置データ）に対して巡回冗長検査を行う。また、制御部２２は、巡回冗長検査により誤りが無いと判断した場合は、位置データに基づいて各エンコーダ装置１−１〜１−ｎに対応する各モータの回転量を制御する。また、制御部２２は、誤り検出処理により２ビット以上の誤りを検出した場合、及び巡回冗長検査により誤りがあると判断した場合は、エンコード信号を正常に受信していないと判断する。この場合、制御部２２は、エンコード信号に含まれる位置データに基づくモータの回転量の制御を実行しない。又は、制御部２２は、エンコーダ装置１に対してエンコード信号の再送を要求するコマンド信号を送信する。
【００２６】
メモリ２３は、エンコード信号のデータ（位置データ、ＥＣＣ符号、及びＣＲＣ符号などの情報）を記憶する。制御部２２は、メモリ２３に記憶した位置データ、ＥＣＣ符号、及びＣＲＣ符号に基づいて、誤り検出処理、誤り訂正処理、及び巡回冗長検査を行う。
【００２７】
このように、本実施形態では、ＣＲＣ符号を用いて巡回冗長検査によるデータの誤り検出を行うとともに、ＥＣＣ符号を用いて誤り検出と誤り訂正を行う。ＣＲＣ符号を用いた誤り検出（巡回冗長検査）は、ＥＣＣ符号を用いた誤り検出よりもビット誤りの検出能力が高い反面、ビット誤りの訂正を行うことができない。一方、ＥＣＣ符号を用いた誤り検出と誤り訂正は、ビット誤りの訂正が可能であるが、ビット誤りの検出能力が低い。また、ＥＣＣ符号を用いた誤り検出と誤り訂正だけでは、バースト誤り（連続して出現する誤り）や複数ビットの誤りが発生した場合、間違って誤り訂正を行ってしまう場合があり、誤りの訂正能力に欠ける。このため、本実施形態では、誤りの訂正を行うことができるように、ＥＣＣ符号を用いた誤り検出と誤り訂正を行う。これとともに、誤りの検出能力を低下させないために、ＣＲＣ符号を用いた誤り検出を行う。
【００２８】
次に、エンコード信号の構成の具体例について説明する。図４は、第１実施形態におけるエンコード信号のフォーマット構成を示す図である。図４においては、コマンドＡを通知するためのコマンド信号と、そのコマンドＡに対応するデータＡ（例えばモータの位置データ）を通知するためのエンコード信号と、コマンドＢを通知するためのコマンド信号と、そのコマンドＢに対応するデータＢ（例えばモータの位置データ）を通知するためのエンコード信号と、が伝送ライン３上に伝送されている状態を示している。また、図４は、データＡを通知するためのエンコード信号を拡大表示するとともに、エンコード信号を構成するデータフィールドＤＦ０内のデータを拡大表示している。
【００２９】
図４に示す例では、エンコード信号は、４つのデータフィールドＤＦ０〜ＤＦ３で構成されている。また、図４に示すように、データフィールドＤＦ０は２３ビットで構成されている。具体的には、データフィールドＤＦ０は、１ビットのスタートビット（図４中の「Start bit」）、１ビットのストップビット（図４中の「Stop bit」）、１６ビットのデータビット（図４中の「D0〜D15:Data bit」）、及び５ビットのパリティビット（図４中の「P1,P2,P4,P8,P16:Parity bit for ECC」）で構成されている。
【００３０】
ここで、スタートビットは、データフィールドＤＦ０の開始（すなわち最初）を示すビットである。スタートビットは、２進数で「０」のデータであり、データフィールドＤＦ０の先頭のビットに設定される。また、ストップビットは、データフィールドＤＦ０の終了（すなわち最終）を示すビットである。ストップビットは、２進数で「１」のデータであり、データフィールドＤＦ０の最終のビットに設定される。
【００３１】
また、データビット（Ｄ０〜Ｄ１５）は上位制御装置２に通知される２進数のデータ（位置データ）などを設定するためのビットである。データビット（Ｄ０〜Ｄ１５）は、それぞれ、スタートビットの次のビットから順にストップビットの前のビットまで設定される。なお、データビットの先頭のビットをＬＳＢ（Least Significant Bit：最下位ビット）という。また、データビットの最終のビットをＭＳＢ（Most Significant Bit：最上位ビット）という。
【００３２】
また、パリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）は、ＥＣＣ用のビット（すなわち、ＥＣＣ符号）である。パリティビット（Ｐ１）は、ストップビットの１つ前のビットに挿入される。また、パリティビット（Ｐ２）は、パリティビット（Ｐ１）の１つ前のビットに挿入される。また、パリティビット（Ｐ４）は、データビット（Ｄ１４）とデータビット（Ｄ１５）の間に挿入される。また、パリティビット（Ｐ８）は、データビット（Ｄ１１）とデータビット（Ｄ１２）の間に挿入される。また、パリティビット（Ｐ１６）は、データビット（Ｄ４）とデータビット（Ｄ５）の間に挿入される。
【００３３】
なお、データフィールドＤＦ１〜ＤＦ３においても、データフィールドＤＦ０と共通のデータ構成（共通のビット長で、共通のビット配置）となっている。すなわち、データフィールドＤＦ１〜ＤＦ３においても、１ビットのスタートビット、１ビットのストップビット、１６ビットのデータビット、及び５ビットのパリティビットで構成され、これらのビットの配置もデータフィールドＤＦ０と共通となっている。
【００３４】
図５は、各データフィールドのデータ割り付けを示す図である。図５に示すように、データフィールドＤＦ０において、データビットの最初の３ビット（Ｄ０〜Ｄ２）は、シリアル通信の同期のために用いられる同期用コード（シンクコード、Ｓｙｎｃ．Ｃｏｄｅ）として「００１」という固定の値が設定される。また、データフィールドＤＦ０において、データビットの４ビット目以降（Ｄ３〜Ｄ１５）には位置データが設定される。また、データフィールドＤＦ１，ＤＦ２においては、すべてのビット（Ｄ０〜Ｄ１５）に位置データが設定される。また、データフィールドＤＦ３において、データビットの最初の８ビット（Ｄ０〜Ｄ７）には位置データが設定される。また、データフィールドＤＦ３において、データビットの９ビット目以降（Ｄ８〜Ｄ１５）には信号処理部１５により生成されるＣＲＣ符号が設定される。ＣＲＣ符号は、信号処理部１５により、各データフィールドＤＦ０〜ＤＦ３におけるスタートビット、ストップビット、及びＥＣＣ用のパリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）を除いたデータ、すなわち各データフィールドＤＦ０〜ＤＦ３のデータビット（Ｄ０〜Ｄ１５）に対して生成される。
【００３５】
また、図５に示すように、ＥＣＣ符号を構成するパリティビット（Ｐ１）は、信号処理部１５がデータビット（Ｄ１５，Ｄ１４，Ｄ１２，Ｄ１１，Ｄ９，Ｄ７，Ｄ５，Ｄ４，Ｄ２，Ｄ０）の排他的論理和をとることにより算出される。また、パリティビット（Ｐ２）は、信号処理部１５がデータビット（Ｄ１５，Ｄ１３，Ｄ１２，Ｄ１０，Ｄ９，Ｄ６，Ｄ５，Ｄ３，Ｄ２）の排他的論理和をとることにより算出される。また、パリティビット（Ｐ４）は、信号処理部１５がデータビット（Ｄ１４，Ｄ１３，Ｄ１２，Ｄ８，Ｄ７，Ｄ６，Ｄ５，Ｄ１，Ｄ０）の排他的論理和をとることにより算出される。また、パリティビット（Ｐ８）は、信号処理部１５がデータビット（Ｄ１１，Ｄ１０，Ｄ９，Ｄ８，Ｄ７，Ｄ６，Ｄ５）の排他的論理和をとることにより算出される。また、パリティビット（Ｐ１６）は、信号処理部１５がデータビット（Ｄ４，Ｄ３，Ｄ２，Ｄ１，Ｄ０）の排他的論理和をとることにより算出される。
【００３６】
図４及び図５に示すように、ＥＣＣ符号を構成するパリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）は、シリアル通信の同期のために用いられる同期用コードと重複しない位置に付加される。すなわち、同期用コードは、データフィールドＤＦ０におけるデータビットの最初の３ビット（Ｄ０〜Ｄ２）に付加されるのに対し、パリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）は、それぞれ、各データフィールドＤＦ０〜ＤＦ３におけるＭＳＢ側から１ビット目、２ビット目、４ビット目、８ビット目、１６ビット目に付加される。
【００３７】
同期用コードは、信号の受信開始時に同期をとる必要があるため、常に、データフィールドＤＦ０におけるデータビットの最初の３ビット（Ｄ０〜Ｄ２）に付加される。仮に、パリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）を、それぞれ、各データフィールドＤＦ０〜ＤＦ３におけるＬＳＢ側から１ビット目、２ビット目、４ビット目、８ビット目、１６ビット目に付加すると、データフィールドＤＦ０において同期用コードが配置されるべき位置にパリティビット（Ｐ１，Ｐ２）が配置されることになる。この場合、エンコーダ装置１と上位制御装置２との間で信号の受信開始時に同期がとれなくなってしまう。このような事態が生じることを回避するために、パリティビット（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）は、それぞれ、各データフィールドＤＦ０〜ＤＦ３においてＭＳＢ側から１ビット目、２ビット目、４ビット目、８ビット目、１６ビット目に付加される。
【００３８】
次に、制御システムＳＹＳによるシリアル通信方法について説明する。
【００３９】
図６は、信号処理部によるエンコード信号の送信処理の一例を示すフローチャートである。図６に示す処理において、まず、信号処理部１５は、上位制御装置２から送信されるコマンド信号を受信したか否かを判定する（ステップＳ１）。信号処理部１５は、ステップＳ１の処理を、コマンド信号を受信するまで繰り返し実行する。信号処理部１５は、コマンド信号を受信したと判定した場合は、記憶部１７に記憶しているコマンド信号に対応する２進数のデジタル信号である位置データを読み出す（ステップＳ２）。そして、信号処理部１５は、位置データについての８ビットのＣＲＣ符号を生成する（ステップＳ３）。上述したように、信号処理部１５は、予め上位制御装置２との間で取り決めた生成多項式を用いて、各データフィールドＤＦ０〜ＤＦ３のデータビット（Ｄ０〜Ｄ１５）に対する８ビットのＣＲＣ符号を生成する。
【００４０】
また、信号処理部１５は、データフィールド毎に位置データ（ステップＳ３で生成したＣＲＣ符号を含む）についての５ビットのＥＣＣ符号（Ｐ１，Ｐ２，Ｐ４，Ｐ８，Ｐ１６）を生成する（ステップＳ４）。上述したように、信号処理部１５は、各データフィールドＤＦ０〜ＤＦ３における所定のデータビットに対して排他的論理和の演算（ＸＯＲ演算）を行うことにより、５ビットのＥＣＣ符号を生成する。
【００４１】
次に、信号処理部１５は、位置データ、ＣＲＣ符号、及びＥＣＣ符号に基づいて、シリアル通信のフォーマット構成のエンコード信号を生成する（ステップＳ５）。具体的には、信号処理部１５は、各データフィールドＤＦ０〜ＤＦ３のスタートビットに「０」を挿入し、各データフィールドＤＦ０〜ＤＦ３のストップビットに「１」を挿入する。また、信号処理部１５は、データフィールドＤＦ０におけるデータビットの最初の３ビット（Ｄ０〜Ｄ２）に同期用コードとして「００１」を挿入する。また、信号処理部１５は、各データフィールドＤＦ０〜ＤＦ３におけるデータビット（同期用コードのビット位置を除く）に位置データを挿入する。また、信号処理部１５は、最終データフィールドＤＦ３におけるデータビットの後半８ビット（Ｄ８〜Ｄ１５）に、ステップＳ３で生成した８ビットのＣＲＣ符号を挿入する。また、信号処理部１５は、各データフィールドＤＦ０〜ＤＦ３における所定のビット位置（図４参照）に、ステップＳ４で生成した５ビットのＥＣＣ符号を挿入する。その後、信号処理部１５は、ステップＳ５で生成したエンコード信号を送受信ドライバ部１６を介して上位制御装置２に送信する（ステップＳ６）。
【００４２】
図７は、制御部によるエンコード信号の受信処理の一例を示すフローチャートである。図７に示す処理において、制御部２２は、エンコード信号の最初のデータフィールドＤＦ０におけるスタートビットを検出した後に（ステップＳ１１）、同期用コード（「００１」）を検出する（ステップＳ１２）。制御部２２は、同期用コードを検出すると、同期用コード以降のシリアルデータ（各データフィールドＤＦ０〜ＤＦ３のデジタルデータ）を順次受信する（ステップＳ１３）。具体的には、制御部２２は、同期用コードの検出後にデータフィールドＤＦ０のデータビットやパリティビットのデータを受信する。その後、制御部２２は、ストップビットと次のデータフィールドのスタートビットを検出することによりデータフィールドの切り替わりを認識した上で、各データフィールドのデータビットやパリティビットのデータを受信する。制御部２２は、受信したシリアルデータをメモリ２３に記憶する。このように、制御部２２が同期用コードの検出後にシリアルデータを順次受信することにより、エンコーダ装置１との間でシリアル通信の同期をとることができる。従って、エンコーダ装置１と上位制御装置２との間の同期ずれが生じるのを防止することができる。
【００４３】
次に、制御部２２は、受信したシリアルデータに基づいてデータフィールド毎にＥＣＣ符号によるエラー検出（誤り検出）を実行する（ステップＳ１４）。具体的には、制御部２２は、以下のＣ１，Ｃ２，Ｃ４，Ｃ８，Ｃ１６の値を算出する。
【００４４】
Ｃ１は、パリティビット（Ｐ１）とデータビット（Ｄ１５，Ｄ１４，Ｄ１２，Ｄ１１，Ｄ９，Ｄ７，Ｄ５，Ｄ４，Ｄ２，Ｄ０）との排他的論理和をとることにより算出される。すなわち、制御部２２が、Ｃ１＝ＸＯＲ  ｏｆ  ｂｉｔｓ（Ｐ１，Ｄ１５，Ｄ１４，Ｄ１２，Ｄ１１，Ｄ９，Ｄ７，Ｄ５，Ｄ４，Ｄ２，Ｄ０）のＸＯＲ演算を行うことにより、Ｃ１の値を算出する。また、Ｃ２は、パリティビット（Ｐ２）とデータビット（Ｄ１５，Ｄ１３，Ｄ１２，Ｄ１０，Ｄ９，Ｄ６，Ｄ５，Ｄ３，Ｄ２）との排他的論理和をとることにより算出される。すなわち、制御部２２が、Ｃ２＝ＸＯＲ  ｏｆ  ｂｉｔｓ（Ｐ２，Ｄ１５，Ｄ１３，Ｄ１２，Ｄ１０，Ｄ９，Ｄ６，Ｄ５，Ｄ３，Ｄ２）のＸＯＲ演算を行うことにより、Ｃ２の値を算出する。また、Ｃ４は、パリティビット（Ｐ４）とデータビット（Ｄ１４，Ｄ１３，Ｄ１２，Ｄ８，Ｄ７，Ｄ６，Ｄ５，Ｄ１，Ｄ０）との排他的論理和をとることにより算出される。すなわち、制御部２２が、Ｃ４＝ＸＯＲ  ｏｆ  ｂｉｔｓ（Ｐ４，Ｄ１４，Ｄ１３，Ｄ１２，Ｄ８，Ｄ７，Ｄ６，Ｄ５，Ｄ１，Ｄ０）のＸＯＲ演算を行うことにより、Ｃ４の値を算出する。また、Ｃ８は、パリティビット（Ｐ８）とデータビット（Ｄ１１，Ｄ１０，Ｄ９，Ｄ８，Ｄ７，Ｄ６，Ｄ５）との排他的論理和をとることにより算出される。すなわち、制御部２２が、Ｃ８＝ＸＯＲ  ｏｆ  ｂｉｔｓ（Ｐ８，Ｄ１１，Ｄ１０，Ｄ９，Ｄ８，Ｄ７，Ｄ６，Ｄ５）のＸＯＲ演算を行うことにより、Ｃ８の値を算出する。また、Ｃ１６は、パリティビット（Ｐ１６）とデータビット（Ｄ４，Ｄ３，Ｄ２，Ｄ１，Ｄ０）との排他的論理和をとることにより算出される。すなわち、制御部２２が、Ｃ１６＝ＸＯＲ  ｏｆ  ｂｉｔｓ（Ｐ１６，Ｄ４，Ｄ３，Ｄ２，Ｄ１，Ｄ０）のＸＯＲ演算を行うことにより、Ｃ１６の値を算出する。
【００４５】
そして、制御部２２は、Ｃ＝Ｃ１６＊１６＋Ｃ８＊８＋Ｃ４＊４＋Ｃ２＊２＋Ｃ１の計算式に、Ｃ１６，Ｃ８，Ｃ４，Ｃ２，Ｃ１の値を代入することによりＣの値を算出する。例えば、Ｃの値が０のときは、データフィールド内におけるスタートビット及びストップビットを除くすべてのビット（２１ビット）においてビット誤りが生じていないことを意味する。また、Ｃの値が１のときは、データフィールド内におけるスタートビット及びストップビットを除くビットのうちの１ビット目（すなわちＤ０のビット）においてビット誤りが生じていることを意味する。また、Ｃの値が１０のときは、データフィールド内におけるスタートビット及びストップビットを除くビットのうちの１０ビット目（すなわちＤ８のビット）においてビット誤りが生じていることを意味する。また、Ｃの値が２１のときは、データフィールド内におけるスタートビット及びストップビットを除くビットのうちの２１ビット目（すなわちＰ１のビット）においてビット誤りが生じていることを意味する。さらに、Ｃの値が２２以上のときは、データフィールド内におけるスタートビット及びストップビットを除くビットにおいて２ビット以上のビット誤りが生じていることを意味する。
【００４６】
制御部２２は、ステップＳ１４で算出したＣの値が０であるか否かを判定する（ステップＳ１５）。制御部２２は、Ｃの値が０であると判定した場合は、ステップＳ１６の処理に移行する。また、制御部２２は、Ｃの値が０でないと判定した場合は、Ｃの値が１から２１のいずれかであるか否かを判定する（ステップＳ１７）。制御部２２は、Ｃの値が１から２１のいずれかであると判定した場合は、１ビットの誤りが発生していると判断し、１ビットのエラー訂正処理（誤り訂正処理）を行う（ステップＳ１８）。具体的には、制御部２２は、Ｃの値に基づいて誤りのあるビットの位置を特定し、そのビットの値を反転させる。すなわち、「１」を「０」にし、「０」を「１」にする。そして、制御部２２は、ステップＳ１６の処理に移行する。制御部２２は、Ｃの値が１から２１のいずれでもないと判定した場合、つまり、Ｃの値が２２以上であると判定した場合は、２ビット以上の誤り（エラー）が存在していると判断する（ステップＳ２０）。この場合は、制御部２２は、受信したデータが不正常であるため、そのデータに基づくモータ（制御対象）の制御を停止する。又は、制御部２２は、エンコーダ装置１に対してエンコード信号の再送を要求するコマンド信号を送信する。
【００４７】
制御部２２は、以上のようなステップＳ１５，Ｓ１７，Ｓ１８の処理をデータフィールド毎に実行する。４つのデータフィールドＤＦ０〜ＤＦ３のうち、すべてのデータフィールドにおいて２ビット以上のエラーが検出されなかった場合に限り（ステップＳ１５のＹｅｓ、ステップＳ１７のＹｅｓ）、制御部２２はステップＳ１６の処理を実行する。すなわち、４つのデータフィールドＤＦ０〜ＤＦ３のうち、１つのデータフィールドにおいて２ビット以上のエラーが検出された場合は（ステップＳ１７のＮｏ）、制御部２２はステップＳ１６の処理を実行しない。
【００４８】
制御部２２は、ステップＳ１５の処理（誤り検出処理）でビット誤りが生じていないと判断した場合（ステップＳ１５のＹｅｓ）は、正常な各データフィールドＤＦ０〜ＤＦ３のデータビットのデータ（Ｄ０〜Ｄ１５）に対して巡回冗長検査（ＣＲＣチェック）を実行する（ステップＳ１６）。また、制御部２２は、ステップＳ１７の処理（誤り検出処理）で１ビットのビット誤りを検出したことに基づいて１ビットのエラー訂正処理を実行した場合は（ステップＳ１７のＹｅｓ、ステップＳ１８）、エラー訂正処理後における各データフィールドＤＦ０〜ＤＦ３のデータビットのデータ（Ｄ０〜Ｄ１５）に対して巡回冗長検査を実行する（ステップＳ１６）。
【００４９】
このステップＳ１６の処理では、制御部２２は、予めエンコーダ装置１との間で取り決めた生成多項式を用いて、各データフィールドＤＦ０〜ＤＦ３のデータビット（Ｄ０〜Ｄ１５）に対する８ビットのＣＲＣ符号を生成する。そして、制御部２２は、生成したＣＲＣ符号と、エンコード信号のデータフィールドＤＦ３に付加されているＣＲＣ符号とが一致しているか否かを判定する。制御部２２は、ＣＲＣ符号が一致していると判定した場合は、各データフィールドＤＦ０〜ＤＦ３のデータビット（Ｄ０〜Ｄ１５）において誤り（エラー）が存在しないと判断する（ステップＳ１６のＮｏ、ステップＳ１９）。この場合、制御部２２は、正常なデータ（位置データ）に基づいてモータ（制御対象）の制御を実行する。
【００５０】
一方、制御部２２は、ＣＲＣ符号が一致していないと判定した場合は、各データフィールドＤＦ０〜ＤＦ３のデータビット（Ｄ０〜Ｄ１５）において誤り（エラー）が存在していると判断する（ステップＳ１６のＹｅｓ、ステップＳ２０）。この場合は、制御部２２は、受信したデータが不正常であるため、そのデータに基づくモータの制御を停止する。又は、制御部２２は、エンコーダ装置１に対してエンコード信号の再送を要求するコマンド信号を送信する。
【００５１】
以上に説明したように、第１実施形態によれば、送信装置（上記した例ではエンコーダ装置１）と受信装置（上記した例では上位制御装置２）との間でシリアル通信によりデータ伝送を行う通信装置であって、送信装置１は、データに対して巡回冗長検査を行うための第１符号（ＣＲＣ符号）を生成する第１符号生成部（信号処理部１５の一部の処理部）と、データに対して誤り検出と誤り訂正を行うための第２符号（ＥＣＣ符号）を生成する第２符号生成部（信号処理部１５の一部の処理部）と、少なくとも、データ、第１符号、及び第２符号を含むシリアル通信方式の信号を送信する送信部（信号処理部１５の一部の処理部）と、を備える。このような構成によれば、エラー（ビット誤り）の発生を低減させることができる。すなわち、信号にＥＣＣ符号を付加することにより、ＥＣＣ符号の誤り訂正能力の範囲内で誤りの訂正を行うことができる。また、ＣＲＣ符号を信号に付加することにより、ＥＣＣ符号よりも高い検出能力で誤りの検出を行うことができる。
【００５２】
また、上記した第１実施形態では、受信装置２は、送信装置１から送信された信号を受信する受信部（制御部２２の一部の処理部）と、第２符号に基づいてデータの誤り検出を実行する誤り検出部（制御部２２の一部の処理部）と、誤り検出部によりデータの誤りが検出された場合に、その誤りを訂正する誤り訂正部（制御部２２の一部の処理部）と、第１符号に基づいて、データの巡回冗長検査を実行する巡回冗長検査部（制御部２２の一部の処理部）と、を備える。このような構成によれば、データの誤り訂正を行った後に、データの巡回冗長検査を行うことができる。従って、巡回冗長検査において誤りが頻発するような事態に陥ることを防止することができる。
【００５３】
また、上記した第１実施形態では、信号は複数のフィールドで構成され、第２符号生成部は、各フィールドのデータに対する第２符号をそれぞれ生成する。このような構成によれば、フィールド単位で誤りの検出と訂正を行うことができる。従って、誤りの検出能力と誤りの訂正能力が向上する。また、第１符号生成部は、複数のフィールドのデータに対する第１符号を生成する。このような構成によれば、高い誤り検出能力を確保することができるとともに、フィールド毎に第１符号を生成する場合に比べて第１符号の生成処理を簡略化することができる。その結果、送信装置及び受信装置の処理負担が高くならない。
【００５４】
また、上記した第１実施形態によれば、シリアル通信方式の信号を生成する信号生成部（制御部２２の一部の処理部）を備え、信号生成部は、信号において、通信の同期のために用いられる同期用コード（シンクコード）と重複しない位置に第２符号を付加する。このような構成によれば、同期用コードを付加できずに、送信装置１と受信装置２との間で同期がとれなくなるような事態が生じることを回避することができる。
【００５５】
また、上記した第１実施形態では、信号生成部は、第２符号を信号の最上位側から付加するので、確実に同期用コードと重複しない位置に第２符号を配置することができる。また、第２符号はハミングコードであるので、１フィールドあたり１ビットの誤りを訂正することができる。
【００５６】
また、上記した第１実施形態では、送信装置は、データとしての位置データを含むエンコード信号を送信するエンコーダ装置１であり、受信装置は、位置データに基づいて制御対象（例えばモータ）を制御する制御装置（上位制御装置２）である。このような構成によれば、エンコーダ装置を用いた制御システムＳＹＳにおいて、シリアル通信で伝送されるデータのエラー（ビット誤り）の発生を低減させることができる。
【００５７】
上記した第１実施形態では、エンコーダ装置１から上位制御装置２に送信されるエンコード信号においてＣＲＣ符号とＥＣＣ符号を付加することについて説明した。しかし、上位制御装置２からエンコーダ装置１に送信されるコマンド信号においてもＣＲＣ符号とＥＣＣ符号を付加するようにしてもよい。すなわち、送信装置は、データとしてのコマンドを含むコマンド信号を送信する制御装置（上位制御装置２）であり、受信装置は、コマンドに応じてエンコード信号を送信するエンコーダ装置１であってもよい。
【００５８】
このような構成を実現するためには、上位制御装置２は、図２に示した信号処理部（第１符号生成部、第２符号生成部、信号生成部、送信部）１５に相当する構成を備えればよい。また、エンコーダ装置１は、図３に示した制御部（受信部、誤り検出部、誤り訂正部、巡回冗長検査部）２２に相当する構成を備えればよい。また、コマンド信号のデータ構成も、図４及び図５に示したエンコード信号のデータ構成又はそれに近いデータ構成とすればよい。
【００５９】
＜第２実施形態＞
上記した第１実施形態では、ＥＣＣ符号が同期用コードと重ならないように、信号処理部１５がＥＣＣ符号をデータビットの最上位側から付加するように構成していた。しかし、第２実施形態では、信号処理部１５がＥＣＣ符号をデータビットの最下位側から付加するように構成したものである。
【００６０】
図８は、第２実施形態におけるエンコード信号のフォーマット構成を示す図である。図８に示すエンコード信号のデータフィールドＤＦ０においては、図４に示したエンコード信号のデータフィールドＤＦ０と異なり、スタートビットとして３ビット「０００」をデータフィールドＤＦ０の先頭に付加している。３ビットのスタートビット「０００」は、データフィールドＤＦ０の開始（すなわち最初）を示す役割を果たすとともに、同期用コードの役割を果たす。このデータ構成の場合、データフィールドＤＦ０のビット長は２ビット増えて２５ビットとなる。
【００６１】
このような構成において、制御部２２は、エンコード信号の最初のデータフィールドＤＦ０におけるスタートビット「０００」を検出した後に、スタートビット「０００」以降のシリアルデータ（各データフィールドＤＦ０〜ＤＦ３のデジタルデータ）を順次受信する。これにより、エンコーダ装置１との間でシリアル通信の同期をとることができるとともに、ＥＣＣ符号をデータビットの最下位側から付加することができる。
【００６２】
なお、図８に示すエンコード信号のデータフィールドＤＦ０のスタートビットだけを３ビットとし、その他のデータフィールドＤＦ１〜ＤＦ３のスタートビットは１ビット「０」とする。しかし、このような構成に限らず、すべてのデータフィールドＤＦ０〜ＤＦ３のスタートビットを３ビット「０００」としてもよい。また、上位制御装置２からエンコーダ装置１に送信されるコマンド信号においても図８に示すようにスタートビットを３ビット「０００」としてもよい。
【００６３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は、上記実施の形態に記載の範囲には限定されない。本発明の趣旨を逸脱しない範囲で、上記実施の形態に、多様な変更または改良を加えることが可能である。また、上記の実施形態で説明した要件の１つ以上は、省略されることがある。そのような変更または改良、省略した形態も本発明の技術的範囲に含まれる。また、上記した実施形態や変形例の構成を適宜組み合わせて適用することも可能である。
【００６４】
上記した図１に示す制御システムＳＹＳは、１つの上位制御装置２が伝送ライン３を介して複数のエンコーダ装置１−１〜１−ｎと接続されるバス接続型(Multi-Point)の制御システムであった。しかし、このような接続形態の制御システムに限られず、１つの上位制御装置が伝送ラインを介して１つのエンコーダ装置と接続される１対１の接続形態(Point-to-point)の制御システムであってもよい。例えば、エンコーダ装置が制御対象としてのサーボモータの回転位置変位を計測し、上位制御装置としてのサーボアンプがエンコーダ装置からのエンコード信号（位置データ）に基づいてサーボモータの駆動を制御するようなシステムである。
【００６５】
上記した第１実施形態で説明した図７において、制御部２２は、ＥＣＣ符号による誤り検出と誤り訂正を行った後に（ステップＳ１５，Ｓ１７，Ｓ１８参照）、ＣＲＣ符号による誤り検出（巡回冗長検査：ステップＳ１６）を行うように構成していた。しかし、制御部２２は、ＣＲＣ符号による誤り検出をＥＣＣ符号による誤り検出と誤り訂正よりも先に実行するようにしてもよい。この場合は、制御部２２は、ＣＲＣ符号による誤り検出において誤りを検出しなかった場合は、ＥＣＣ符号による誤り検出を実行せずにエラー無と判断する。一方、制御部２２は、ＣＲＣ符号による誤り検出において誤りを検出した場合は、ＥＣＣ符号による誤り検出を実行する。そして、制御部２２は、ＥＣＣ符号による誤り検出において１ビットの誤りを検出した場合は、１ビットの誤り訂正処理を実行する。そして、制御部２２は、再度、誤り訂正処理後のデータに基づいてＣＲＣ符号による誤り検出を実行する。また、制御部２２は、ＥＣＣ符号による誤り検出において２ビット以上の誤りを検出した場合は、エラー有と判断する。このような構成によれば、ＣＲＣ符号による誤り検出でエラー有との判断が頻発しないような場合に、ＥＣＣ符号による誤り検出の処理の実行回数を減らすことができ、処理負担を低減させることができる。
【００６６】
また、上記した各実施形態では、エンコーダ装置１は、上位制御装置２から送信されるコマンド信号を受信することに応じて、記憶部１７に記憶されている位置データを読み出すように構成していた。しかし、エンコーダ装置１は、上位制御装置２から送信されるコマンド信号を受信することに応じて、モータの回転位置変位を検出し、検出した回転位置変位に応じた位置データを取得するようにしてもよい。
【００６７】
また、上記した各実施形態において、複数のエンコーダ装置１−１〜１−ｎは、それぞれの装置を識別するための識別情報が割り当てられ、各エンコーダ装置１−１〜１−ｎは、エンコーダ信号に識別情報を付加するようにしてもよい。
【００６８】
また、上記した各実施形態において、エンコード信号のデータフィールドは４つとされていたが、４つ未満でも５以上であってもよい。また、上記した第１実施形態では、エンコード信号の各データフィールドＤＦ０〜ＤＦ３のビット長（ビット数）が２３ビットとされていたが、２３ビット未満でも２４ビット以上でもよい。
【００６９】
また、エンコード信号とコマンド信号のデータ構成は同じであっても異なる構成であってもよい。例えば、エンコード信号のデータフィールド数とコマンド信号のデータフィールド数とが異なってもよいし、各データフィールドのビット長も異なってもよい。また、信号処理部１５（又は制御部２２）は、ＣＲＣ符号をデータフィールド毎に生成してもよい。また、信号処理部１５（又は制御部２２）は１つのデータフィールドを２以上の区間に分け、それぞれの区間においてＥＣＣ符号を生成するようにしてもよい。また、ＣＲＣ符号は、最終データフィールドの後半部分に挿入されていたが、最終データフィールドとは異なるデータフィールドなどに挿入されてもよい。また、ＥＣＣ符号としてハミング符号を用いていたが、ハミング符号以外のＥＣＣ符号（例えば、巡回ハミング符号など）であってもよい。
【符号の説明】
【００７０】
１…エンコーダ装置（送信装置、受信装置）、２…上位制御装置（送信装置、受信装置、制御装置）、３…伝送ライン、１５…信号処理部（第１符号生成部、第２符号生成部、信号生成部、送信部）、１７…記憶部、２２…制御部（受信部、誤り検出部、誤り訂正部、巡回冗長検査部）、２３…メモリ
【図１】
2015049769.tif 000003
【図２】
2015049769.tif 000004
【図３】
2015049769.tif 000005
【図４】
2015049769.tif 000006
【図５】
2015049769.tif 000007
【図６】
2015049769.tif 000008
【図７】
2015049769.tif 000009
【図８】
2015049769.tif 000010