(57)【要約】【課題】通信フレーム中の制御情報部分に付いても誤りを検出することが可能なデータ通信方法及びデータ通信システムを提供する。【解決手段】制御コードを含むヘッダと、送信データからなるデータ部と、ＣＲＣ符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、ヘッダについて誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいてヘッダの誤り検出を行うので、ヘッダについても誤りが発生しているか否かをＣＲＣ符号に基づいて検出することができる。【選択図】図７
2013058845.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信するデータ通信方法において、
送信側が、前記誤り検出部に、前記制御情報部について誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、
受信側は、前記制御用誤り検出符号に基づいて前記制御情報部の誤り検出を行うことを特徴とするデータ通信方法。
【請求項２】
前記送信側は、前記データ部を、所定のビット数を単位とする複数の単位データ部に分割し、前記データ部について誤り検出を行う誤り検出部を、前記複数の単位データ部に対応して複数設け、
前記受信側は、前記複数の単位データ部毎に誤り検出を行うことを特徴とする請求項１記載のデータ通信方法。
【請求項３】
前記送信側は、前記誤り検出部において、前記制御用誤り検出符号を、前記制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成することを特徴とする請求項２記載のデータ通信方法。
【請求項４】
前記制御用誤り検出符号と、前記複数の単位データ部毎に付加する誤り検出符号とに、同じ種類の誤り検出符号を用いることを特徴とする請求項２又は３記載のデータ通信方法。
【請求項５】
前記受信側は、前記送信側に対して、前記誤り検出符号により誤りが検出された部分について再送信を要求し、
前記送信側は、前記再送信の要求を受信すると、要求された部分を再送信することを特徴とする請求項２ないし４の何れかに記載のデータ通信方法。
【請求項６】
前記受信側は、前記再送信の要求頻度の多寡に応じて、前記誤り検出符号のビット数の変更を送信側に要求し、
前記送信側は、前記要求に応じて誤り検出符号のビット数を変更することを特徴とする請求項５記載のデータ通信方法。
【請求項７】
前記送信側は、前記通信フレームをリンクレイヤフレームとして４Ｂ５Ｂ符号化し、
その４Ｂ５Ｂ符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、
その生成した物理レイヤフレームをＮＲＺＩ（Non Return to Zero Inversion）符号化し、そのＮＲＺＩ符号化した物理レイヤフレームを送信フレームとして通信路へ送信する際に、送信データが正常であるか否かを判定するビットエラー検出を行い、
前記リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行い、
前記受信側は、前記物理レイヤフレームを受信すると、その受信した物理レイヤフレームに対し、４Ｂ５Ｂ符号化が正常であるか否かを判定するコーディングエラー検出を行い、
前記誤り検出符号を用いて、前記リンクレイヤフレームに含まれる前記制御情報部及び前記データ部が正常であるか否かを判定する誤り検出を行い、
前記リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行い、
前記リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行い、
前記送信側は、前記受信側よりＡＣＫ（ACKnowledgement）フレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行うことを特徴とする請求項１ないし６の何れかに記載のデータ通信方法。
【請求項８】
送信器が、少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを送信し、受信器が前記通信フレームを受信すると、前記誤り検出符号を用いて通信フレーム中の誤り検出を行うデータ通信システムにおいて、
前記送信器は、前記制御情報部について誤り検出を行うための制御用誤り検出符号を生成する制御用誤り検出符号生成部を備え、前記誤り検出部に前記制御用誤り検出符号を含ませて送信を行い、
前記受信器は、前記通信フレームを受信すると、前記制御用誤り検出符号に基づいて前記制御情報部の誤り検出を行うことを特徴とするデータ通信システム。
【請求項９】
前記送信器は、前記データ部を、所定のビット数を単位とする複数の単位データ部に分割し、前記データ部について誤り検出を行う誤り検出部を、前記複数の単位データ部に対応して複数設けるように生成し、
前記受信器は、前記複数の単位データ部毎に誤り検出を行うことを特徴とする請求項８記載のデータ通信システム。
【請求項１０】
前記制御用誤り検出符号生成部は、前記制御用誤り検出符号を、前記制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成することを特徴とする請求項９記載のデータ通信システム。
【請求項１１】
前記制御用誤り検出符号と、前記複数の単位データ部毎に付加する誤り検出符号とに、同じ種類の誤り検出符号を用いることを特徴とする請求項９又は１０記載のデータ通信システム。
【請求項１２】
前記受信器は、前記送信器に対して、前記誤り検出符号により誤りが検出された部分について再送信を要求し、
前記送信器は、前記再送信の要求を受信すると、要求された部分を再送信することを特徴とする請求９ないし１１の何れかに記載のデータ通信システム。
【請求項１３】
前記受信器は、前記再送信の要求頻度の多寡に応じて、前記誤り検出符号のビット数の変更を送信器に要求し、
前記送信器は、前記要求に応じて誤り検出符号のビット数を変更することを特徴とする請求項１２記載のデータ通信システム。
【請求項１４】
前記送信器は、データを含むリンクレイヤフレームを４Ｂ５Ｂ符号化し、その４Ｂ５Ｂ符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、その生成した物理レイヤフレームをＮＲＺＩ（Non Return to Zero Inversion）符号化し、そのＮＲＺＩ符号化した物理レイヤフレームを送信フレームとして通信路へ送信し、
送信データが正常であるか否かを判定するビットエラー検出を行うビットエラー検出手段と、
リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行うフォームエラー検出手段と、
ＡＣＫ（ACKnowledgement）フレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行うタイムアウトエラー検出手段とを備え、
前記受信器は、通信路から受信フレームとして受信した物理レイヤフレームに対し、４Ｂ５Ｂ符号化が正常であるか否かを判定するコーディングエラー検出を行うコーディングエラー検出手段と、
前記誤り検出符号を用いて、リンクレイヤフレームに含まれる制御情報及びデータが正常であるか否かを判定する符号誤り検出手段と、
リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行うフォームエラー検出手段と、
リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行うステートエラー検出手段とを備えたことを特徴とする請求項８ないし１３の何れかに記載のデータ通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも通信先のＩＤを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信するデータ通信方法及びデータ通信システムに関する。
【背景技術】
【０００２】
データ通信では、通信フレームに例えばＣＲＣ（Cyclic Redundancy Check）符号等の誤り検出符号を付加して送信を行い、受信側でその誤り検出符号を用いて受信データについて誤り検出を行い、誤りが検出されると、その通信フレームの再送信を要求することが行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３２７４６５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような誤り検出は、あくまでもデータに対してのみ行われており、通信フレーム中のヘッダ部分に付いては、データ部分に対してビット数が少ないため、誤り検出を行うことは想定していない。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、通信フレーム中の制御情報部分に付いても誤りを検出することが可能なデータ通信方法及びデータ通信システムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のデータ通信方法によれば、少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、制御情報部について誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいて制御情報部の誤り検出を行う。したがって、受信側では、制御情報部についても誤りが発生しているか否かを検出することができる。
【０００７】
請求項２記載のデータ通信方法によれば、送信側は、データ部を、所定のビット数を単位とする複数の単位データ部に分割し、データ部について誤り検出を行う誤り検出部を、複数の単位データ部に対応して複数設ける。そして、受信側は、複数の単位データ部毎に誤り検出を行う。したがって、１回の送信において複数の単位データ部を送信するいわゆるバースト送信形態について、単位データ部毎に誤りを検出できる。
【０００８】
請求項３記載のデータ通信方法によれば、送信側は、誤り検出部において、制御用誤り検出符号を、制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成する。したがって、誤り検出符号のビット数の増大を抑制できる。
【０００９】
請求項４記載のデータ通信方法によれば、制御用誤り検出符号と複数の単位データ部毎に付加する誤り検出符号とに同じ種類の誤り検出符号を用いるので、送信側，受信側の処理が簡単になる。
【００１０】
請求項５記載のデータ通信方法によれば、受信側は、送信側に対して誤り検出符号により誤りが検出された部分について再送信を要求し、送信側は、再送信の要求を受信すると要求された部分を再送信する。したがって、１回で送信される通信フレームが長いバースト送信の場合でも、要求された単位データ部だけを再送信できるので、通信効率が向上する。
【００１１】
請求項６記載のデータ通信方法によれば、受信側は、再送信の要求頻度の多寡に応じて誤り検出符号のビット数の変更を送信側に要求し、送信側は、前記要求に応じて誤り検出符号のビット数を変更する。したがって、通信環境に応じて誤り検出の精度を変更することができる。
【００１２】
請求項７記載のデータ通信方法によれば、送信側は、通信フレームをリンクレイヤフレームとして４Ｂ５Ｂ符号化すると、４Ｂ５Ｂ符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、更にＮＲＺＩ符号化してから通信路へ送信する際に、送信データが正常であるか否かを判定するビットエラー検出，リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行う。
【００１３】
一方、受信側は、受信した物理レイヤフレームに対し、４Ｂ５Ｂ符号化が正常であるか否かを判定するコーディングエラー検出，誤り検出符号を用いてリンクレイヤフレームに含まれる制御情報部及びデータ部が正常であるか否かを判定する誤り検出，リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出，リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行う。また、送信側は、受信側よりＡＣＫフレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行う。したがって、誤り検出符号を用いた誤り検出にその他各種のエラー検出組み合わせることで、通信の信頼性を一層向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施例であり、データ通信装置の構成を示す機能ブロック図
【図２】リンクレイヤフレーム及び物理レイヤフレームの各々のフレーム構成を示す図
【図３】機能の階層構造を示す図
【図４】ＯＳＩ参照モデルとの対比を示す図
【図５】各フレームのフレーム構成を示す図
【図６】各フレームの通信頻度、識別子長、識別子を示す図
【図７】１２ビットＩＤバーストフレームについて、ＣＲＣ符号の生成を説明する図
【図８】データ送信時エラー検出処理を示すフローチャート
【図９】データ受信時エラー検出処理を示すフローチャート
【図１０】エラーの種別、検出モード及びエラーの内容を示す図
【図１１】１２ビットＩＤバーストフレームについて、一部のデータの再送を要求する処理を説明する図
【図１２】送受信間の処理シーケンスを示す図
【図１３】第２実施例であり、ＣＲＣ符号のビット数の変更を説明する図
【図１４】図１２相当図
【図１５】図１相当図
【発明を実施するための形態】
【００１５】
（第１実施例）
以下、第１実施例について、図１ないし図１２を参照して説明する。図１は、データ通信装置の構成を示す機能ブロック図である。データ通信装置１（送信器，受信器）は、送信系の機能ブロックとして、送信ＬＬＦ（Link Layer Frame）エンコーダ２と、ＦＩＦＯ（First In First Out）３と、４Ｂ５Ｂエンコーダ４と、５Ｎビットコマンドエンコーダ５と、制御回路６と、セレクタ７と、シリアライザ８と、ＮＲＺＩエンコーダ９とを有する。
【００１６】
送信ＬＬＦエンコーダ２は、送受信シーケンサ１０（ステートエラー検出手段、タイムアウトエラー検出手段に相当）から送信データを入力すると、フレームを識別（特定）するための識別子と、データのライト又はリードを示すリモートと、データの長さを示すサイズと、アクセスするアドレス空間を示すＩＤと、データ（送信データ）と、ＣＲＣ符号を除くリンクレイヤフレーム（ＬＬＦ）を生成してセレクタ２１及びＣＲＣ演算器２２に出力する。ＣＲＣ演算器２２は、入力されるリンクレイヤフレームのヘッダ（制御情報）部分とデータ部分とについて例えば１６ビットのＣＲＣ符号を生成し、セレクタ２１に出力する。セレクタ２１の切替え制御は、送受信シーケンサ１０によって行われ、その切り替えによりＣＲＣ符号が通信フレーム中の所定位置に配置されたリンクレイヤフレームが生成されてＦＩＦＯ３に入力される。リンクレイヤフレームは、ＦＩＦＯ３を介して４Ｂ５Ｂエンコーダ４及び５Ｎビットコマンドエンコーダ５に入力される。
【００１７】
４Ｂ５Ｂエンコーダ４は、送信ＬＬＦエンコーダ２からＦＩＦＯ３を介してリンクレイヤフレームを８ビットのビット列により入力すると、その８ビットのビット列を構成する上位の４ビットのビット列及び下位の４ビットのビット列の各々を４Ｂ５Ｂ符号化テーブル（図示せず）に従って５ビットのビット列に変換し、１０ビットのビット列を生成してセレクタ７へ出力する。この場合、４Ｂ５Ｂエンコーダ４は、４ビットのビット列を「０」が３ビット以上連続しないように５ビットのビット列に変換する。
【００１８】
５Ｎビットコマンドエンコーダ５は、送信ＬＬＦエンコーダ２からＦＩＦＯ３を介してリンクレイヤフレームを入力すると、同期用のビット列であるプリアンブル（Preamble）、リンクレイヤフレームの先頭を検出するためのＳＦＤ（Start Frame Delimiter）（フレーム開始部）及びリンクレイヤフレームの末尾を検出するためのＥＦＤ（End Frame Delimiter）（フレーム終了部）を生成して制御回路６及びセレクタ７へ出力する。
【００１９】
セレクタ７は、４Ｂ５Ｂエンコーダ４から１０ビットのビット列を入力し、５Ｎビットコマンドエンコーダ５からプリアンブル、ＳＦＤ及びＥＦＤを入力すると、制御回路６から入力する制御指令にしたがって１０ビットのビット列にプリアンブル、ＳＦＤ及びＥＦＤを付加して物理レイヤフレーム（ＰＬＦ；Physical Layer Frame）を生成すると、シリアライザ８及びビットエラー検出部（データ比較部）１１（ビットエラー検出手段に相当）へ出力する。
【００２０】
シリアライザ８は、セレクタ７から物理レイヤフレームを入力すると、その物理レイヤフレームをパラレル／シリアル変換してＮＲＺＩエンコーダ９へ出力する。ＮＲＺＩエンコーダ９は、シリアライザ８からパラレル／シリアル変換された物理レイヤフレームを入力すると、その物理レイヤフレームをＮＲＺＩ（No Return to Zero Inversion）符号にエンコードして送信端子から送信フレームとして通信路へ送信する。
【００２１】
一方、データ通信装置１は、受信系の機能ブロックとして、クロック再生部１２と、ＮＲＺＩデコーダ１３と、ＳＦＤ（Start Frame Delimiter）検出部１４と、デシリアライザ１５と、４Ｂ５Ｂデコーダ１６（コーディングエラー検出手段に相当）と、セレクタ１７と、制御回路１８と、ＦＩＦＯ１９と、受信ＬＬＦデコーダ２０（フォームエラー検出手段、符号誤り検出手段に相当）とを有する。
【００２２】
クロック再生部１２は、通信路から受信フレームとして受信したＮＲＺＩ符号の物理レイヤフレームからクロック成分を抽出してクロック信号を再生し、その再生したクロック信号を各機能ブロックへ供給する。ＮＲＺＩデコーダ１３は、通信路から受信フレームとして受信したＮＲＺＩ符号の物理レイヤフレームをデコードしてＳＦＤ検出部１４へ出力する。
【００２３】
ＳＦＤ検出部１４は、ＮＲＺＩデコーダ１３から物理レイヤフレームを入力すると、その物理レイヤフレームに含まれるＳＦＤを検出してリンクレイヤフレームの先頭を検出し、リンクレイヤフレームをデシリアライザ１５へ出力する。デシリアライザ１５は、ＳＦＤ検出部１４からリンクレイヤフレームを入力すると、そのリンクレイヤフレームのビット列をシリアル／パラレル変換して４Ｂ５Ｂデコーダ１６及びビットエラー検出部１１へ出力する。４Ｂ５Ｂデコーダ１６は、デシリアライザ１５からシリアル／パラレル変換されたリンクレイヤフレームの１０ビットのビット列を４Ｂ５Ｂ符号化テーブル（図示せず）に従って８ビットのビット列に逆変換してセレクタ１７及び制御回路１８へ出力する。
【００２４】
セレクタ１７は、４Ｂ５Ｂデコーダ１６からリンクレイヤフレームの８ビットのビット列を入力すると、制御回路１８から入力する制御指令にしたがってＦＩＦＯ１９を介して受信ＬＬＦデコーダ２０へ出力する。受信ＬＬＦデコーダ２０は、セレクタ１７からＦＩＦＯ１９を介してリンクレイヤフレームの８ビットのビット列を入力すると、そのリンクレイヤフレームの８ビットのビット列を送受信シーケンサ１０へ出力する。
【００２５】
上記したリンクレイヤフレームのフレーム構成と物理レイヤフレームのフレーム構成とは、図２に示すような対応関係となっている。また、データ通信装置１は、図３に示すように、その機能を階層構造に分割すると物理レイヤ、リンクレイヤ、ＡＰＩ（Application Program Interface）レイヤに分割することができ、物理レイヤは送信（ＴＸ）制御を行う機能部と受信（ＲＸ）制御を行う機能部とに分割することができる。
【００２６】
本実施例で示す物理レイヤ、リンクレイヤ、ＡＰＩレイヤは、国際標準化機構（ＩＳＯ）により制定されたＯＳＩ（Open Systems Interconnection）参照モデルと対比すると、図４に示すように、物理レイヤはＯＳＩ参照モデルの第１層（物理層）に対応し、リンクレイヤはＯＳＩ参照モデルの第２層（データリンク層）と第３層（ネットワーク層）に対応し、ＡＰＩレイヤはＯＳＩ参照モデルの第４層（トランスポート層）と第５層（セッション層）と第６層（プレゼンテーション層）に対応する。リンクレイヤフレームはデータ通信装置１のリンクレイヤ間で論理的に通信され、物理レイヤフレームはデータ通信装置１の物理レイヤ間で物理的に通信される。
【００２７】
次に、リンクレイヤフレームに割当てる識別子のビット数（識別子長）を決定する手順について図５及び図６を参照して説明する。尚、ここでは、通信ネットワーク内における通信頻度（使用頻度）が最も高いフレームは所定ビットのＩＤ長を有するデータフレームであり、通信頻度が２番目に高いフレームはＡＣＫフレームであり、通信頻度が３番目に高いフレームはコマンドフレームであることを前提とする。また、例えば車両に搭載される車両通信ネットワーク（車両ＬＡＮ（Local Area Network））のようにノイズ環境が厳しいが故に通信不成立が頻繁に発生する通信システムを想定することで、ＡＣＫフレームの通信頻度が２番目に高いとしている。
【００２８】
最初に、通信ネットワーク内における通信頻度が最も高いデータフレームを決定する。具体的には、通信路に接続されているノード（チップ）数をＮａ、ノードに必要なアドレス空間をＮｂ、係数をＮ、Ｎ１、Ｎ２とし、Ｎａ≦２N1を満たすＮ１を求め、Ｎｂ＝２N2を満たすＮ２を求め、Ｎ＝Ｎ１＋Ｎ２を求める。本実施例ではＮａ≦８であると仮定するとＮ１＝３を求めることができ、Ｎ２＝９と仮定するとＮ＝１２を求めることができる。従って１２ビットのＩＤ長を有するデータフレーム（１２ビットＩＤデータフレームと称す）を、通信頻度が最も高いデータフレームとして決定する。
【００２９】
次に、１２ビットＩＤデータフレームにおけるリモートのビット数（リモート長）と、サイズのビット数（サイズ長）と、ＩＤのビット数（ＩＤ長）とを特定し、識別子のビット数（識別子長）と、リモートのビット数と、サイズのビット数と、ＩＤのビット数との和が８の倍数ビット（８ビット、１６ビット、２４ビット、３２ビット…）となるように識別子のビット数を決定する。
【００３０】
即ち、１２ビットＩＤデータフレームでは、図５に示すように、リモートのビット数が「１」，サイズのビット数が「１」，ＩＤのビット数が「１２」であるから、識別子，リモート，サイズ，ＩＤ（これらが制御コードに相当する）の各ビット数の和が直近の８の倍数（この場合は「１６」）となるように識別子のビット数を「１」に決定し、識別子を図６に示すように「０」に決定する。
【００３１】
次に、１２ビットＩＤデータフレームに次いで（２番目に）通信頻度が高いＡＣＫフレームに対して割当てる識別子のビット数を決定する。即ち、ＡＣＫフレームでは、要求に対する応答を示すＡＣＫのビット数が「５」，ＣＲＣのビット数が「１６」であるから、ＡＣＫ，ＣＲＣ，識別子の各ビット数の和が直近の８の倍数（この場合は「２４」）となるように、識別子のビット数を「３」に決定し、識別子を「１００」に決定する。
【００３２】
次に、１２ビットＩＤデータフレーム、ＡＣＫフレームに次いで（３番目に）通信頻度が高いコマンドフレームに割当てる識別子のビット数を決定する。即ち、コマンドフレームでは、制御情報であるコマンドを示すビット数が「５」，ＣＲＣのビット数が「１６」であるから、コマンド，ＣＲＣ，識別子の各ビットの和が直近の８の倍数（この場合は２４ビット）となるように識別子のビット数を「３」決定し、識別子を「１０１」に決定する。
【００３３】
また、現行のシステムでは不要だが将来的な通信システムの拡張に対応するため、拡張用のデータフレームに割当てる識別子のビット数を以下のようにして決定する。ここでは、拡張用のデータフレームが、４ビット，１６ビット，２４ビット，３２ビットのＩＤ長を有するデータフレームである場合を説明する。
４ビットＩＤデータフレームでは、リモートのビット数が「１」，サイズのビット数が「０」，ＩＤのビット数が「４」であるから、識別子，リモート，サイズ，ＩＤの各ビット数の和が直近の８の倍数（この場合は「８」）となるように、識別子のビット数を「３」に決定し、識別子を「１１０」に決定する。
【００３４】
１６ビットＩＤデータフレームでは、リモートのビット数が「１」，サイズのビット数が「２」，ＩＤのビット数が「１６」であるから、識別子，リモート，サイズ，ＩＤの各ビット数の和が直近の８の倍数（この場合は「２４」）となるように識別子のビット数を「５」に決定し、識別子を「１１１００」に決定する。
２４ビットＩＤデータフレームでは、リモートのビット数が「１」，サイズのビット数が「２」，ＩＤのビット数が「２４」であるから、識別子，リモート，サイズ，ＩＤの各ビット数の和が直近の８の倍数（この場合は「３２」）となるように、識別子のビット数を「５」に決定し、識別子を「１１１０１」に決定する。
【００３５】
３２ビットＩＤデータフレームでは、リモートのビット数が「１」，サイズのビット数が「２」，ＩＤのビット数が「３２」であるから、識別子のビット数とリモートのビット数とサイズのビット数とＩＤのビット数との和が直近の８の倍数ビット数（この場合は「４０」）となるように、識別子のビット数を「５」に決定し、識別子を「１１１１０」に決定する。
フレーム内に複数のデータと複数のＣＲＣとを有するバーストフレームについては、上記したデータフレームとは異なり、識別子，リモート，サイズ，ＩＤの各ビット数の和が直近の８の倍数となるように識別子のビット数を決定せず、識別子のビット数を任意に決定する。
【００３６】
１２ビットＩＤバーストフレームでは、リモートのビット数が１ビット，サイズのビット数が４ビット，ＩＤのビット数が１２ビットであるが、識別子のビット数を例えば７ビットに決定し（ビット数の和は「２４」）、識別子を「１１１１１００」に決定する。また、３２ビットＩＤバーストフレームでは、リモートのビット数が１ビット，サイズのビット数が８ビット，ＩＤのビット数が３２ビットであるが、識別子のビット数を例えば７ビットに決定し（ビット数の和は「４８」）、識別子を「１１１１１０１」に決定する。尚、バーストフレームでは、１２８ビット；１６バイト（単位データ部）毎に、１６ビットのＣＲＣ符号（誤り検出部）が付加されている。
【００３７】
また、図７は１２ビットＩＤのバーストフレームについて示すが、冒頭の識別子からリモート，サイズ，ＩＤまでの部分がヘッダに対応する。そして、本実施例では、ヘッダとそれに続く１６バイトの単位データ部に続いて配置されているＣＲＣ符号は、ＣＲＣ演算器２２によりヘッダと単位データ部とを併せたものを対象として生成されている（制御用誤り検出符号）。したがって、前記ＣＲＣ符号によってヘッダ部分に誤りが発生した場合についても検出が可能となっている。
【００３８】
さて、上記したデータ通信装置１は、以下に示すエラー検出機能を有し、データ送信時にはデータ送信時エラー検出処理を行い、データ受信時にはデータ受信時エラー検出処理を行う。以下、データ送信時エラー検出処理及びデータ受信時エラー検出処理について図８ないし図１０を参照して順次説明する。
【００３９】
（１）データ送信時エラー検出処理
データ通信装置１は、データ送信時には、図８に示すデータ送信時エラー検出処理を行う。即ち、データ通信装置１は、送信データが正常であるか否かを判定するビットエラー検出をビットエラー検出部１１にて行う（ステップＳ１）。データ通信装置１は、セレクタ７からビットエラー検出部１１へ入力された物理レイヤフレームに含まれるデータと、デシリアライザ１５からビットエラー検出部１１へ入力されたリンクレイヤフレームに含まれるデータとを照合し、送信データと異なるデータを検出した場合、または送信データを検出しなかった場合には、送信データが正常でないと判定し（ステップＳ１：ＹＥＳ）、ビットエラーが発生したことを検出する（ステップＳ２）。このように、データ通信装置１は、データ送信時にはビットエラー検出を行う。
【００４０】
（２）データ受信時エラー検出処理
データ通信装置１は、データ受信時には、図９に示すデータ受信時エラー検出処理を行う。即ち、データ通信装置１は、４Ｂ５Ｂ符号化が正常であるか否かを判定するコーディングエラー検出を４Ｂ５Ｂデコーダ１６にて行う（ステップＳ１１）。データ通信装置１は、デシリアライザ１５から４Ｂ５Ｂデコーダ１６へ入力されたリンクレイヤフレームの１０ビットのビット列を４Ｂ５Ｂ符号化テーブルに従って逆変換した８ビットのビット列を判定し、４Ｂ５Ｂ符号化テーブルに示すビット列以外のビット列（未定義のビット列）を検出した場合には、４Ｂ５Ｂ符号化が正常でないと判定し（ステップＳ１１：ＹＥＳ）、コーディングエラーが発生したことを検出する（ステップＳ１２）。
【００４１】
次いで、データ通信装置１は、リンクレイヤフレームに含まれるヘッダ及びデータが正常であるか否かを判定するＣＲＣエラー検出（符号誤り検出）を受信ＬＬＦデコーダ２０にて行う（ステップＳ１３）。データ通信装置１は、セレクタ１７からＦＩＦＯ１９を介して受信ＬＬＦデコーダ２０へ入力されたリンクレイヤフレームの８ビットのビット列に対してＣＲＣ計算式による計算を受信ＬＬＦデコーダ２０にて行い、ＣＲＣ計算式による計算にてエラーを検出した場合には、リンクレイヤフレームに含まれるデータが正常でないと判定し（ステップＳ１３：ＹＥＳ）、ＣＲＣエラーが発生したことを検出する（ステップＳ１４）。
【００４２】
次いで、データ通信装置１は、リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を受信ＬＬＦデコーダ２０にて行う（ステップＳ１５）。データ通信装置１は、セレクタ１７からＦＩＦＯ１９を介して受信ＬＬＦデコーダ２０へ入力されたリンクレイヤフレームの８ビットのビット列を判定し、受信ヘッダの条件と異なるリンクレイヤフレームの受信を検出した場合には、リンクレイヤフレームの構成及び内容が正常でないと判定し（ステップＳ１５：ＹＥＳ）、フォームエラーが発生したことを検出する（ステップＳ１６）。
【００４３】
次いで、データ通信装置１は、リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を送受信シーケンサ１０にて行う（ステップＳ１７）。データ通信装置１は、正常シーケンスと異なるリンクレイヤフレームの受信を検出した場合には、リンクレイヤフレームのビット列の並びが正常でないと判定し（ステップＳ１７：ＹＥＳ）、ステートエラーが発生したことを検出する（ステップＳ１８）。
【００４４】
最後に、データ通信装置１は、ＡＣＫフレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を送受信シーケンサ１０にて行う（ステップＳ１９）。データ通信装置１は、データフレーム、バーストフレーム、コマンドフレームを送信した後に、その送信したデータフレーム、バーストフレーム、コマンドフレームに対するレスポンス（ＡＣＫフレーム）を、データフレーム、バーストフレーム、コマンドフレームの送信時を基準時点として所定時間内に検出しなかった場合には、ＡＣＫフレームを所定時間内に正常に受信しなかったと判定し（ステップＳ１９：ＹＥＳ）、タイムアウトエラーが発生したことを検出する（ステップＳ２０）。このように、データ通信装置１は、データ受信時にはコーディングエラー検出、ＣＲＣエラー検出、フォームエラー検出、ステートエラー検出及びタイムアウトエラー検出を順次行う。
【００４５】
図１０は、上記したエラーの種別、検出ノード（送信ノード又は受信ノード）及びエラーの内容を対応付けて示す。尚、送信ノードとは送信フレームを送信するデータ通信装置１であり、受信ノードとは受信フレームを受信するデータ通信装置１である。
【００４６】
次に、バーストフレームを受信した場合に、単位データ部の一部にＣＲＣエラーが検出された場合の処理について図１１及び図１２を参照して説明する。図１１（ａ）に示すように、冒頭から２つ目の単位データ部であるＤＡＴＡ２についてＣＲＣ２によりエラーが検出された場合には、受信側は送信側に対してＤＡＴＡ２だけ再送を要求する。図１２は、再送処理シーケンスを示しているが、（１）送信側が１２ビットＩＤバーストフレームを送信し、（２）受信側が、前記フレームを受信してＡＣＫフレームを返信する。そして、受信側は各ＣＲＣ符号を用いてエラーチェックを行い、ＤＡＴＡ２についてエラーが検出されると、（３）送信側にＤＡＴＡ２の再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると（４）ＤＡＴＡ２部分を再送し、（５）受信側が、再送されたデータを受信するとＡＣＫフレームを返信する。そして、受信側は再送されたＤＡＴＡ２について再度エラーチェックを行う。
【００４７】
図１１（ｂ）は、上記（４）において送信側が再送する通信フレームを示しており、（ａ）と同様のヘッダ部分に、ＤＡＴＡ２及びＣＲＣ２を付加したものとなっている。尚、この場合の識別子については、（ａ）と同様のバースト送信を示すものであっても、ヘッダを含む一部のデータの再送を示すものであっても何れでも良い。また、図１１（ｃ）は、１２８ビットのＤＡＴＡ２を６４ビットずつ２つの通信フレームに分割して２回再送する場合を示している。
【００４８】
以上に説明したように本実施例によれば、制御コードを含むヘッダと、送信データからなるデータ部と、ＣＲＣ符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、ヘッダについて誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいてヘッダの誤り検出を行うので、ヘッダについても誤りが発生しているか否かをＣＲＣ符号に基づいて検出することができる。
また、送信側は、データ部を、所定のビット数（例えば１６バイト）を単位とする複数の単位データ部に分割し、データ部について誤り検出を行う誤り検出部を、複数の単位データ部に対応して複数設ける。そして、受信側は、複数の単位データ部毎に誤り検出を行う。したがって、バースト送信フレームについて単位データ部毎に誤りを検出できる。
【００４９】
また、送信側は、誤り検出部において、ヘッダと、それに続く最初の単位データ部とを併せて誤り検出を行うようにＣＲＣ符号を生成したので、誤り検出符号のビット数の増大を抑制できる。更に、制御用誤り検出符号と複数の単位データ部毎に付加する誤り検出符号とに同じ種類の誤り検出符号；ＣＲＣ符号を用いるので、送信側，受信側の処理が簡単になる。
加えて、受信側は、送信側に対してＣＲＣ符号により誤りが検出された部分について再送信を要求し、送信側は、再送信の要求を受信すると要求された部分を再送信する。したがって、１回で送信される通信フレームが長いバースト送信の場合でも、要求された単位データ部だけを再送信できるので、通信効率が向上する。
【００５０】
また、送信側は、通信フレームをリンクレイヤフレームとして４Ｂ５Ｂ符号化すると、４Ｂ５Ｂ符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、更にＮＲＺＩ符号化してから通信路へ送信する際に、ビットエラー検出，フォームエラー検出を行う。一方、受信側は、受信した物理レイヤフレームに対し、コーディングエラー検出，ＣＲＣ符号を用いた誤り検出，フォームエラー検出，ステートエラー検出を行い、更に送信側はタイムアウトエラー検出を行う。したがって、ＣＲＣ符号を用いた誤り検出に、その他各種のエラー検出組み合わせることで、通信の信頼性を一層向上させることができる。
【００５１】
（第２実施例）
図１３ないし図１５は第２実施例であり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第２実施例は、誤り検出部におけるＣＲＣ符号のビット数を、通信処理中にダイナミックに変更する処理を示す。図１３は、前記処理をイメージ的に示しており、例えば外乱が少なくエラー検出回数が少ない通信環境下では、ＣＲＣ符号のビット数を１６ビットにしておく。そして、ＣＲＣエラーが頻繁に検出される場合には、ＣＲＣ符号のビット数を２４ビット，３２ビットに順次増加させるようにする。
【００５２】
図１４は、送信側，受信側の間の処理シーケンスを示しており、図１５は、対応するデータ通信装置３１の構成を示している。データ通信装置３１は、３つのＣＲＣ演算器２２Ａ〜２２Ｃを備えており、それぞれ１６ビット，２４ビット，３２ビットのＣＲＣ符号を生成する。そして、各ＣＲＣ演算器２２Ａ〜２２Ｃより生成出力されるＣＲＣ符号はセレクタ２３に入力されており、セレクタ２３の入力切り替え制御は、送受信シーケンサ３３によって行われる。
【００５３】
図１４に示すように、送信側は、（１）最初はＣＲＣ演算器２２Ａを使用して１６ビットのＣＲＣ符号を用いて送信を行う。（２）受信側が、送信されたフレームを受信してＡＣＫフレームを返信し、ＣＲＣ符号を用いてエラーチェックを行い、エラーが検出されると、（３）送信側に２４ビットのＣＲＣ符号を付したデータの再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると、ＣＲＣ演算器２２Ｂを使用するように切り替えて、（４）２４ビットのＣＲＣ符号を付したデータを再送する。
【００５４】
（５）受信側は、再送されたデータを受信するとＡＣＫフレームを返信し、再送され２４ビットのＣＲＣ符号を用いて再度エラーチェックを行う。そして、エラーが検出されると、（６）今度は送信側に３２ビットのＣＲＣ符号を付したデータの再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると、ＣＲＣ演算器２２Ｃを使用するように切り替えて、（７）３２ビットのＣＲＣ符号を付したデータを再送する。（８）受信側は、再送されたデータを受信するとＡＣＫフレームを返信する。
尚、図１４に示す例では、ＣＲＣエラーが検出されると直ちにＣＲＣ符号のビット数増加を要求しているが、勿論これに限ることなく、１６ビットのＣＲＣ符号を用いた通信における所定時間当たりのＣＲＣエラー検出頻度が所定の閾値を超えた段階でビット数増加を要求すれば良い。
【００５５】
以上のように第２実施例によれば、受信側は、再送信の要求頻度の多寡に応じてＣＲＣ符号のビット数の変更を送信側に要求し、送信側は、前記要求に応じて誤り検出符号のビット数を変更する。したがって、通信環境に応じて誤り検出の精度を変更することができる。
【００５６】
本発明は、上記した実施例にのみ限定されるものではなく、以下のように変形又は拡張することができる。
制御用誤り検出符号については、制御情報部のみを対象として符号を作成しても良い。
ステートエラー検出手段、タイムアウトエラー検出手段、ビットエラー検出手段、コーディングエラー検出手段、フォームエラー検出手段については、必要に応じて設ければ良い。
データ通信装置１は、例えば車載系のＬＡＮに接続されるノードであっても良いし、車載系のＬＡＮ以外のＬＡＮに接続されるノードであっても良い。
通信ネットワーク内における通信頻度が最も高いデータフレームが１２ビットのＩＤ長を有するデータフレームでなく、１２ビット以外のＩＤ長を有するデータフレームである通信システムに適用しても良い。
通信頻度が２番目に高いフレームがＡＣＫフレームでなく、コマンドフレームである通信システムに適用しても良い。
【符号の説明】
【００５７】
図面中、１はデータ通信装置（送信器，受信器）、１０は送受信シーケンサ（ステートエラー検出手段、タイムアウトエラー検出手段）、１１はビットエラー検出部（ビットエラー検出手段）、１６は４Ｂ５Ｂデコーダ（コーディングエラー検出手段）、２０は受信ＬＬＦデコーダ（フォームエラー検出手段、符号誤り検出手段）である。
【図１】
2013058845.tif 000003
【図２】
2013058845.tif 000004
【図３】
2013058845.tif 000005
【図４】
2013058845.tif 000006
【図５】
2013058845.tif 000007
【図６】
2013058845.tif 000008
【図７】
2013058845.tif 000009
【図８】
2013058845.tif 000010
【図９】
2013058845.tif 000011
【図１０】
2013058845.tif 000012
【図１１】
2013058845.tif 000013
【図１２】
2013058845.tif 000014
【図１３】
2013058845.tif 000015
【図１４】
2013058845.tif 000016
【図１５】
2013058845.tif 000017