説明

データ通信方法及びデータ通信システム

【課題】通信フレーム中の制御情報部分に付いても誤りを検出することが可能なデータ通信方法及びデータ通信システムを提供する。
【解決手段】制御コードを含むヘッダと、送信データからなるデータ部と、CRC符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、ヘッダについて誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいてヘッダの誤り検出を行うので、ヘッダについても誤りが発生しているか否かをCRC符号に基づいて検出することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも通信先のIDを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信するデータ通信方法及びデータ通信システムに関する。
【背景技術】
【0002】
データ通信では、通信フレームに例えばCRC(Cyclic Redundancy Check)符号等の誤り検出符号を付加して送信を行い、受信側でその誤り検出符号を用いて受信データについて誤り検出を行い、誤りが検出されると、その通信フレームの再送信を要求することが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3274655号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のような誤り検出は、あくまでもデータに対してのみ行われており、通信フレーム中のヘッダ部分に付いては、データ部分に対してビット数が少ないため、誤り検出を行うことは想定していない。
【0005】
本発明は上記事情に鑑みてなされたものであり、その目的は、通信フレーム中の制御情報部分に付いても誤りを検出することが可能なデータ通信方法及びデータ通信システムを提供することにある。
【課題を解決するための手段】
【0006】
請求項1記載のデータ通信方法によれば、少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、制御情報部について誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいて制御情報部の誤り検出を行う。したがって、受信側では、制御情報部についても誤りが発生しているか否かを検出することができる。
【0007】
請求項2記載のデータ通信方法によれば、送信側は、データ部を、所定のビット数を単位とする複数の単位データ部に分割し、データ部について誤り検出を行う誤り検出部を、複数の単位データ部に対応して複数設ける。そして、受信側は、複数の単位データ部毎に誤り検出を行う。したがって、1回の送信において複数の単位データ部を送信するいわゆるバースト送信形態について、単位データ部毎に誤りを検出できる。
【0008】
請求項3記載のデータ通信方法によれば、送信側は、誤り検出部において、制御用誤り検出符号を、制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成する。したがって、誤り検出符号のビット数の増大を抑制できる。
【0009】
請求項4記載のデータ通信方法によれば、制御用誤り検出符号と複数の単位データ部毎に付加する誤り検出符号とに同じ種類の誤り検出符号を用いるので、送信側,受信側の処理が簡単になる。
【0010】
請求項5記載のデータ通信方法によれば、受信側は、送信側に対して誤り検出符号により誤りが検出された部分について再送信を要求し、送信側は、再送信の要求を受信すると要求された部分を再送信する。したがって、1回で送信される通信フレームが長いバースト送信の場合でも、要求された単位データ部だけを再送信できるので、通信効率が向上する。
【0011】
請求項6記載のデータ通信方法によれば、受信側は、再送信の要求頻度の多寡に応じて誤り検出符号のビット数の変更を送信側に要求し、送信側は、前記要求に応じて誤り検出符号のビット数を変更する。したがって、通信環境に応じて誤り検出の精度を変更することができる。
【0012】
請求項7記載のデータ通信方法によれば、送信側は、通信フレームをリンクレイヤフレームとして4B5B符号化すると、4B5B符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、更にNRZI符号化してから通信路へ送信する際に、送信データが正常であるか否かを判定するビットエラー検出,リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行う。
【0013】
一方、受信側は、受信した物理レイヤフレームに対し、4B5B符号化が正常であるか否かを判定するコーディングエラー検出,誤り検出符号を用いてリンクレイヤフレームに含まれる制御情報部及びデータ部が正常であるか否かを判定する誤り検出,リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出,リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行う。また、送信側は、受信側よりACKフレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行う。したがって、誤り検出符号を用いた誤り検出にその他各種のエラー検出組み合わせることで、通信の信頼性を一層向上させることができる。
【図面の簡単な説明】
【0014】
【図1】第1実施例であり、データ通信装置の構成を示す機能ブロック図
【図2】リンクレイヤフレーム及び物理レイヤフレームの各々のフレーム構成を示す図
【図3】機能の階層構造を示す図
【図4】OSI参照モデルとの対比を示す図
【図5】各フレームのフレーム構成を示す図
【図6】各フレームの通信頻度、識別子長、識別子を示す図
【図7】12ビットIDバーストフレームについて、CRC符号の生成を説明する図
【図8】データ送信時エラー検出処理を示すフローチャート
【図9】データ受信時エラー検出処理を示すフローチャート
【図10】エラーの種別、検出モード及びエラーの内容を示す図
【図11】12ビットIDバーストフレームについて、一部のデータの再送を要求する処理を説明する図
【図12】送受信間の処理シーケンスを示す図
【図13】第2実施例であり、CRC符号のビット数の変更を説明する図
【図14】図12相当図
【図15】図1相当図
【発明を実施するための形態】
【0015】
(第1実施例)
以下、第1実施例について、図1ないし図12を参照して説明する。図1は、データ通信装置の構成を示す機能ブロック図である。データ通信装置1(送信器,受信器)は、送信系の機能ブロックとして、送信LLF(Link Layer Frame)エンコーダ2と、FIFO(First In First Out)3と、4B5Bエンコーダ4と、5Nビットコマンドエンコーダ5と、制御回路6と、セレクタ7と、シリアライザ8と、NRZIエンコーダ9とを有する。
【0016】
送信LLFエンコーダ2は、送受信シーケンサ10(ステートエラー検出手段、タイムアウトエラー検出手段に相当)から送信データを入力すると、フレームを識別(特定)するための識別子と、データのライト又はリードを示すリモートと、データの長さを示すサイズと、アクセスするアドレス空間を示すIDと、データ(送信データ)と、CRC符号を除くリンクレイヤフレーム(LLF)を生成してセレクタ21及びCRC演算器22に出力する。CRC演算器22は、入力されるリンクレイヤフレームのヘッダ(制御情報)部分とデータ部分とについて例えば16ビットのCRC符号を生成し、セレクタ21に出力する。セレクタ21の切替え制御は、送受信シーケンサ10によって行われ、その切り替えによりCRC符号が通信フレーム中の所定位置に配置されたリンクレイヤフレームが生成されてFIFO3に入力される。リンクレイヤフレームは、FIFO3を介して4B5Bエンコーダ4及び5Nビットコマンドエンコーダ5に入力される。
【0017】
4B5Bエンコーダ4は、送信LLFエンコーダ2からFIFO3を介してリンクレイヤフレームを8ビットのビット列により入力すると、その8ビットのビット列を構成する上位の4ビットのビット列及び下位の4ビットのビット列の各々を4B5B符号化テーブル(図示せず)に従って5ビットのビット列に変換し、10ビットのビット列を生成してセレクタ7へ出力する。この場合、4B5Bエンコーダ4は、4ビットのビット列を「0」が3ビット以上連続しないように5ビットのビット列に変換する。
【0018】
5Nビットコマンドエンコーダ5は、送信LLFエンコーダ2からFIFO3を介してリンクレイヤフレームを入力すると、同期用のビット列であるプリアンブル(Preamble)、リンクレイヤフレームの先頭を検出するためのSFD(Start Frame Delimiter)(フレーム開始部)及びリンクレイヤフレームの末尾を検出するためのEFD(End Frame Delimiter)(フレーム終了部)を生成して制御回路6及びセレクタ7へ出力する。
【0019】
セレクタ7は、4B5Bエンコーダ4から10ビットのビット列を入力し、5Nビットコマンドエンコーダ5からプリアンブル、SFD及びEFDを入力すると、制御回路6から入力する制御指令にしたがって10ビットのビット列にプリアンブル、SFD及びEFDを付加して物理レイヤフレーム(PLF;Physical Layer Frame)を生成すると、シリアライザ8及びビットエラー検出部(データ比較部)11(ビットエラー検出手段に相当)へ出力する。
【0020】
シリアライザ8は、セレクタ7から物理レイヤフレームを入力すると、その物理レイヤフレームをパラレル/シリアル変換してNRZIエンコーダ9へ出力する。NRZIエンコーダ9は、シリアライザ8からパラレル/シリアル変換された物理レイヤフレームを入力すると、その物理レイヤフレームをNRZI(No Return to Zero Inversion)符号にエンコードして送信端子から送信フレームとして通信路へ送信する。
【0021】
一方、データ通信装置1は、受信系の機能ブロックとして、クロック再生部12と、NRZIデコーダ13と、SFD(Start Frame Delimiter)検出部14と、デシリアライザ15と、4B5Bデコーダ16(コーディングエラー検出手段に相当)と、セレクタ17と、制御回路18と、FIFO19と、受信LLFデコーダ20(フォームエラー検出手段、符号誤り検出手段に相当)とを有する。
【0022】
クロック再生部12は、通信路から受信フレームとして受信したNRZI符号の物理レイヤフレームからクロック成分を抽出してクロック信号を再生し、その再生したクロック信号を各機能ブロックへ供給する。NRZIデコーダ13は、通信路から受信フレームとして受信したNRZI符号の物理レイヤフレームをデコードしてSFD検出部14へ出力する。
【0023】
SFD検出部14は、NRZIデコーダ13から物理レイヤフレームを入力すると、その物理レイヤフレームに含まれるSFDを検出してリンクレイヤフレームの先頭を検出し、リンクレイヤフレームをデシリアライザ15へ出力する。デシリアライザ15は、SFD検出部14からリンクレイヤフレームを入力すると、そのリンクレイヤフレームのビット列をシリアル/パラレル変換して4B5Bデコーダ16及びビットエラー検出部11へ出力する。4B5Bデコーダ16は、デシリアライザ15からシリアル/パラレル変換されたリンクレイヤフレームの10ビットのビット列を4B5B符号化テーブル(図示せず)に従って8ビットのビット列に逆変換してセレクタ17及び制御回路18へ出力する。
【0024】
セレクタ17は、4B5Bデコーダ16からリンクレイヤフレームの8ビットのビット列を入力すると、制御回路18から入力する制御指令にしたがってFIFO19を介して受信LLFデコーダ20へ出力する。受信LLFデコーダ20は、セレクタ17からFIFO19を介してリンクレイヤフレームの8ビットのビット列を入力すると、そのリンクレイヤフレームの8ビットのビット列を送受信シーケンサ10へ出力する。
【0025】
上記したリンクレイヤフレームのフレーム構成と物理レイヤフレームのフレーム構成とは、図2に示すような対応関係となっている。また、データ通信装置1は、図3に示すように、その機能を階層構造に分割すると物理レイヤ、リンクレイヤ、API(Application Program Interface)レイヤに分割することができ、物理レイヤは送信(TX)制御を行う機能部と受信(RX)制御を行う機能部とに分割することができる。
【0026】
本実施例で示す物理レイヤ、リンクレイヤ、APIレイヤは、国際標準化機構(ISO)により制定されたOSI(Open Systems Interconnection)参照モデルと対比すると、図4に示すように、物理レイヤはOSI参照モデルの第1層(物理層)に対応し、リンクレイヤはOSI参照モデルの第2層(データリンク層)と第3層(ネットワーク層)に対応し、APIレイヤはOSI参照モデルの第4層(トランスポート層)と第5層(セッション層)と第6層(プレゼンテーション層)に対応する。リンクレイヤフレームはデータ通信装置1のリンクレイヤ間で論理的に通信され、物理レイヤフレームはデータ通信装置1の物理レイヤ間で物理的に通信される。
【0027】
次に、リンクレイヤフレームに割当てる識別子のビット数(識別子長)を決定する手順について図5及び図6を参照して説明する。尚、ここでは、通信ネットワーク内における通信頻度(使用頻度)が最も高いフレームは所定ビットのID長を有するデータフレームであり、通信頻度が2番目に高いフレームはACKフレームであり、通信頻度が3番目に高いフレームはコマンドフレームであることを前提とする。また、例えば車両に搭載される車両通信ネットワーク(車両LAN(Local Area Network))のようにノイズ環境が厳しいが故に通信不成立が頻繁に発生する通信システムを想定することで、ACKフレームの通信頻度が2番目に高いとしている。
【0028】
最初に、通信ネットワーク内における通信頻度が最も高いデータフレームを決定する。具体的には、通信路に接続されているノード(チップ)数をNa、ノードに必要なアドレス空間をNb、係数をN、N1、N2とし、Na≦2N1を満たすN1を求め、Nb=2N2を満たすN2を求め、N=N1+N2を求める。本実施例ではNa≦8であると仮定するとN1=3を求めることができ、N2=9と仮定するとN=12を求めることができる。従って12ビットのID長を有するデータフレーム(12ビットIDデータフレームと称す)を、通信頻度が最も高いデータフレームとして決定する。
【0029】
次に、12ビットIDデータフレームにおけるリモートのビット数(リモート長)と、サイズのビット数(サイズ長)と、IDのビット数(ID長)とを特定し、識別子のビット数(識別子長)と、リモートのビット数と、サイズのビット数と、IDのビット数との和が8の倍数ビット(8ビット、16ビット、24ビット、32ビット…)となるように識別子のビット数を決定する。
【0030】
即ち、12ビットIDデータフレームでは、図5に示すように、リモートのビット数が「1」,サイズのビット数が「1」,IDのビット数が「12」であるから、識別子,リモート,サイズ,ID(これらが制御コードに相当する)の各ビット数の和が直近の8の倍数(この場合は「16」)となるように識別子のビット数を「1」に決定し、識別子を図6に示すように「0」に決定する。
【0031】
次に、12ビットIDデータフレームに次いで(2番目に)通信頻度が高いACKフレームに対して割当てる識別子のビット数を決定する。即ち、ACKフレームでは、要求に対する応答を示すACKのビット数が「5」,CRCのビット数が「16」であるから、ACK,CRC,識別子の各ビット数の和が直近の8の倍数(この場合は「24」)となるように、識別子のビット数を「3」に決定し、識別子を「100」に決定する。
【0032】
次に、12ビットIDデータフレーム、ACKフレームに次いで(3番目に)通信頻度が高いコマンドフレームに割当てる識別子のビット数を決定する。即ち、コマンドフレームでは、制御情報であるコマンドを示すビット数が「5」,CRCのビット数が「16」であるから、コマンド,CRC,識別子の各ビットの和が直近の8の倍数(この場合は24ビット)となるように識別子のビット数を「3」決定し、識別子を「101」に決定する。
【0033】
また、現行のシステムでは不要だが将来的な通信システムの拡張に対応するため、拡張用のデータフレームに割当てる識別子のビット数を以下のようにして決定する。ここでは、拡張用のデータフレームが、4ビット,16ビット,24ビット,32ビットのID長を有するデータフレームである場合を説明する。
4ビットIDデータフレームでは、リモートのビット数が「1」,サイズのビット数が「0」,IDのビット数が「4」であるから、識別子,リモート,サイズ,IDの各ビット数の和が直近の8の倍数(この場合は「8」)となるように、識別子のビット数を「3」に決定し、識別子を「110」に決定する。
【0034】
16ビットIDデータフレームでは、リモートのビット数が「1」,サイズのビット数が「2」,IDのビット数が「16」であるから、識別子,リモート,サイズ,IDの各ビット数の和が直近の8の倍数(この場合は「24」)となるように識別子のビット数を「5」に決定し、識別子を「11100」に決定する。
24ビットIDデータフレームでは、リモートのビット数が「1」,サイズのビット数が「2」,IDのビット数が「24」であるから、識別子,リモート,サイズ,IDの各ビット数の和が直近の8の倍数(この場合は「32」)となるように、識別子のビット数を「5」に決定し、識別子を「11101」に決定する。
【0035】
32ビットIDデータフレームでは、リモートのビット数が「1」,サイズのビット数が「2」,IDのビット数が「32」であるから、識別子のビット数とリモートのビット数とサイズのビット数とIDのビット数との和が直近の8の倍数ビット数(この場合は「40」)となるように、識別子のビット数を「5」に決定し、識別子を「11110」に決定する。
フレーム内に複数のデータと複数のCRCとを有するバーストフレームについては、上記したデータフレームとは異なり、識別子,リモート,サイズ,IDの各ビット数の和が直近の8の倍数となるように識別子のビット数を決定せず、識別子のビット数を任意に決定する。
【0036】
12ビットIDバーストフレームでは、リモートのビット数が1ビット,サイズのビット数が4ビット,IDのビット数が12ビットであるが、識別子のビット数を例えば7ビットに決定し(ビット数の和は「24」)、識別子を「1111100」に決定する。また、32ビットIDバーストフレームでは、リモートのビット数が1ビット,サイズのビット数が8ビット,IDのビット数が32ビットであるが、識別子のビット数を例えば7ビットに決定し(ビット数の和は「48」)、識別子を「1111101」に決定する。尚、バーストフレームでは、128ビット;16バイト(単位データ部)毎に、16ビットのCRC符号(誤り検出部)が付加されている。
【0037】
また、図7は12ビットIDのバーストフレームについて示すが、冒頭の識別子からリモート,サイズ,IDまでの部分がヘッダに対応する。そして、本実施例では、ヘッダとそれに続く16バイトの単位データ部に続いて配置されているCRC符号は、CRC演算器22によりヘッダと単位データ部とを併せたものを対象として生成されている(制御用誤り検出符号)。したがって、前記CRC符号によってヘッダ部分に誤りが発生した場合についても検出が可能となっている。
【0038】
さて、上記したデータ通信装置1は、以下に示すエラー検出機能を有し、データ送信時にはデータ送信時エラー検出処理を行い、データ受信時にはデータ受信時エラー検出処理を行う。以下、データ送信時エラー検出処理及びデータ受信時エラー検出処理について図8ないし図10を参照して順次説明する。
【0039】
(1)データ送信時エラー検出処理
データ通信装置1は、データ送信時には、図8に示すデータ送信時エラー検出処理を行う。即ち、データ通信装置1は、送信データが正常であるか否かを判定するビットエラー検出をビットエラー検出部11にて行う(ステップS1)。データ通信装置1は、セレクタ7からビットエラー検出部11へ入力された物理レイヤフレームに含まれるデータと、デシリアライザ15からビットエラー検出部11へ入力されたリンクレイヤフレームに含まれるデータとを照合し、送信データと異なるデータを検出した場合、または送信データを検出しなかった場合には、送信データが正常でないと判定し(ステップS1:YES)、ビットエラーが発生したことを検出する(ステップS2)。このように、データ通信装置1は、データ送信時にはビットエラー検出を行う。
【0040】
(2)データ受信時エラー検出処理
データ通信装置1は、データ受信時には、図9に示すデータ受信時エラー検出処理を行う。即ち、データ通信装置1は、4B5B符号化が正常であるか否かを判定するコーディングエラー検出を4B5Bデコーダ16にて行う(ステップS11)。データ通信装置1は、デシリアライザ15から4B5Bデコーダ16へ入力されたリンクレイヤフレームの10ビットのビット列を4B5B符号化テーブルに従って逆変換した8ビットのビット列を判定し、4B5B符号化テーブルに示すビット列以外のビット列(未定義のビット列)を検出した場合には、4B5B符号化が正常でないと判定し(ステップS11:YES)、コーディングエラーが発生したことを検出する(ステップS12)。
【0041】
次いで、データ通信装置1は、リンクレイヤフレームに含まれるヘッダ及びデータが正常であるか否かを判定するCRCエラー検出(符号誤り検出)を受信LLFデコーダ20にて行う(ステップS13)。データ通信装置1は、セレクタ17からFIFO19を介して受信LLFデコーダ20へ入力されたリンクレイヤフレームの8ビットのビット列に対してCRC計算式による計算を受信LLFデコーダ20にて行い、CRC計算式による計算にてエラーを検出した場合には、リンクレイヤフレームに含まれるデータが正常でないと判定し(ステップS13:YES)、CRCエラーが発生したことを検出する(ステップS14)。
【0042】
次いで、データ通信装置1は、リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を受信LLFデコーダ20にて行う(ステップS15)。データ通信装置1は、セレクタ17からFIFO19を介して受信LLFデコーダ20へ入力されたリンクレイヤフレームの8ビットのビット列を判定し、受信ヘッダの条件と異なるリンクレイヤフレームの受信を検出した場合には、リンクレイヤフレームの構成及び内容が正常でないと判定し(ステップS15:YES)、フォームエラーが発生したことを検出する(ステップS16)。
【0043】
次いで、データ通信装置1は、リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を送受信シーケンサ10にて行う(ステップS17)。データ通信装置1は、正常シーケンスと異なるリンクレイヤフレームの受信を検出した場合には、リンクレイヤフレームのビット列の並びが正常でないと判定し(ステップS17:YES)、ステートエラーが発生したことを検出する(ステップS18)。
【0044】
最後に、データ通信装置1は、ACKフレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を送受信シーケンサ10にて行う(ステップS19)。データ通信装置1は、データフレーム、バーストフレーム、コマンドフレームを送信した後に、その送信したデータフレーム、バーストフレーム、コマンドフレームに対するレスポンス(ACKフレーム)を、データフレーム、バーストフレーム、コマンドフレームの送信時を基準時点として所定時間内に検出しなかった場合には、ACKフレームを所定時間内に正常に受信しなかったと判定し(ステップS19:YES)、タイムアウトエラーが発生したことを検出する(ステップS20)。このように、データ通信装置1は、データ受信時にはコーディングエラー検出、CRCエラー検出、フォームエラー検出、ステートエラー検出及びタイムアウトエラー検出を順次行う。
【0045】
図10は、上記したエラーの種別、検出ノード(送信ノード又は受信ノード)及びエラーの内容を対応付けて示す。尚、送信ノードとは送信フレームを送信するデータ通信装置1であり、受信ノードとは受信フレームを受信するデータ通信装置1である。
【0046】
次に、バーストフレームを受信した場合に、単位データ部の一部にCRCエラーが検出された場合の処理について図11及び図12を参照して説明する。図11(a)に示すように、冒頭から2つ目の単位データ部であるDATA2についてCRC2によりエラーが検出された場合には、受信側は送信側に対してDATA2だけ再送を要求する。図12は、再送処理シーケンスを示しているが、(1)送信側が12ビットIDバーストフレームを送信し、(2)受信側が、前記フレームを受信してACKフレームを返信する。そして、受信側は各CRC符号を用いてエラーチェックを行い、DATA2についてエラーが検出されると、(3)送信側にDATA2の再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると(4)DATA2部分を再送し、(5)受信側が、再送されたデータを受信するとACKフレームを返信する。そして、受信側は再送されたDATA2について再度エラーチェックを行う。
【0047】
図11(b)は、上記(4)において送信側が再送する通信フレームを示しており、(a)と同様のヘッダ部分に、DATA2及びCRC2を付加したものとなっている。尚、この場合の識別子については、(a)と同様のバースト送信を示すものであっても、ヘッダを含む一部のデータの再送を示すものであっても何れでも良い。また、図11(c)は、128ビットのDATA2を64ビットずつ2つの通信フレームに分割して2回再送する場合を示している。
【0048】
以上に説明したように本実施例によれば、制御コードを含むヘッダと、送信データからなるデータ部と、CRC符号からなる誤り検出部とからなる通信フレームを用いて通信を行う。そして、送信側が、誤り検出部に、ヘッダについて誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、受信側は、制御用誤り検出符号に基づいてヘッダの誤り検出を行うので、ヘッダについても誤りが発生しているか否かをCRC符号に基づいて検出することができる。
また、送信側は、データ部を、所定のビット数(例えば16バイト)を単位とする複数の単位データ部に分割し、データ部について誤り検出を行う誤り検出部を、複数の単位データ部に対応して複数設ける。そして、受信側は、複数の単位データ部毎に誤り検出を行う。したがって、バースト送信フレームについて単位データ部毎に誤りを検出できる。
【0049】
また、送信側は、誤り検出部において、ヘッダと、それに続く最初の単位データ部とを併せて誤り検出を行うようにCRC符号を生成したので、誤り検出符号のビット数の増大を抑制できる。更に、制御用誤り検出符号と複数の単位データ部毎に付加する誤り検出符号とに同じ種類の誤り検出符号;CRC符号を用いるので、送信側,受信側の処理が簡単になる。
加えて、受信側は、送信側に対してCRC符号により誤りが検出された部分について再送信を要求し、送信側は、再送信の要求を受信すると要求された部分を再送信する。したがって、1回で送信される通信フレームが長いバースト送信の場合でも、要求された単位データ部だけを再送信できるので、通信効率が向上する。
【0050】
また、送信側は、通信フレームをリンクレイヤフレームとして4B5B符号化すると、4B5B符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、更にNRZI符号化してから通信路へ送信する際に、ビットエラー検出,フォームエラー検出を行う。一方、受信側は、受信した物理レイヤフレームに対し、コーディングエラー検出,CRC符号を用いた誤り検出,フォームエラー検出,ステートエラー検出を行い、更に送信側はタイムアウトエラー検出を行う。したがって、CRC符号を用いた誤り検出に、その他各種のエラー検出組み合わせることで、通信の信頼性を一層向上させることができる。
【0051】
(第2実施例)
図13ないし図15は第2実施例であり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第2実施例は、誤り検出部におけるCRC符号のビット数を、通信処理中にダイナミックに変更する処理を示す。図13は、前記処理をイメージ的に示しており、例えば外乱が少なくエラー検出回数が少ない通信環境下では、CRC符号のビット数を16ビットにしておく。そして、CRCエラーが頻繁に検出される場合には、CRC符号のビット数を24ビット,32ビットに順次増加させるようにする。
【0052】
図14は、送信側,受信側の間の処理シーケンスを示しており、図15は、対応するデータ通信装置31の構成を示している。データ通信装置31は、3つのCRC演算器22A〜22Cを備えており、それぞれ16ビット,24ビット,32ビットのCRC符号を生成する。そして、各CRC演算器22A〜22Cより生成出力されるCRC符号はセレクタ23に入力されており、セレクタ23の入力切り替え制御は、送受信シーケンサ33によって行われる。
【0053】
図14に示すように、送信側は、(1)最初はCRC演算器22Aを使用して16ビットのCRC符号を用いて送信を行う。(2)受信側が、送信されたフレームを受信してACKフレームを返信し、CRC符号を用いてエラーチェックを行い、エラーが検出されると、(3)送信側に24ビットのCRC符号を付したデータの再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると、CRC演算器22Bを使用するように切り替えて、(4)24ビットのCRC符号を付したデータを再送する。
【0054】
(5)受信側は、再送されたデータを受信するとACKフレームを返信し、再送され24ビットのCRC符号を用いて再度エラーチェックを行う。そして、エラーが検出されると、(6)今度は送信側に32ビットのCRC符号を付したデータの再送を要求するフレームを送信する。送信側は、上記再送要求フレームを受信すると、CRC演算器22Cを使用するように切り替えて、(7)32ビットのCRC符号を付したデータを再送する。(8)受信側は、再送されたデータを受信するとACKフレームを返信する。
尚、図14に示す例では、CRCエラーが検出されると直ちにCRC符号のビット数増加を要求しているが、勿論これに限ることなく、16ビットのCRC符号を用いた通信における所定時間当たりのCRCエラー検出頻度が所定の閾値を超えた段階でビット数増加を要求すれば良い。
【0055】
以上のように第2実施例によれば、受信側は、再送信の要求頻度の多寡に応じてCRC符号のビット数の変更を送信側に要求し、送信側は、前記要求に応じて誤り検出符号のビット数を変更する。したがって、通信環境に応じて誤り検出の精度を変更することができる。
【0056】
本発明は、上記した実施例にのみ限定されるものではなく、以下のように変形又は拡張することができる。
制御用誤り検出符号については、制御情報部のみを対象として符号を作成しても良い。
ステートエラー検出手段、タイムアウトエラー検出手段、ビットエラー検出手段、コーディングエラー検出手段、フォームエラー検出手段については、必要に応じて設ければ良い。
データ通信装置1は、例えば車載系のLANに接続されるノードであっても良いし、車載系のLAN以外のLANに接続されるノードであっても良い。
通信ネットワーク内における通信頻度が最も高いデータフレームが12ビットのID長を有するデータフレームでなく、12ビット以外のID長を有するデータフレームである通信システムに適用しても良い。
通信頻度が2番目に高いフレームがACKフレームでなく、コマンドフレームである通信システムに適用しても良い。
【符号の説明】
【0057】
図面中、1はデータ通信装置(送信器,受信器)、10は送受信シーケンサ(ステートエラー検出手段、タイムアウトエラー検出手段)、11はビットエラー検出部(ビットエラー検出手段)、16は4B5Bデコーダ(コーディングエラー検出手段)、20は受信LLFデコーダ(フォームエラー検出手段、符号誤り検出手段)である。

【特許請求の範囲】
【請求項1】
少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを用いて通信するデータ通信方法において、
送信側が、前記誤り検出部に、前記制御情報部について誤り検出を行うための制御用誤り検出符号を含ませて送信を行うと、
受信側は、前記制御用誤り検出符号に基づいて前記制御情報部の誤り検出を行うことを特徴とするデータ通信方法。
【請求項2】
前記送信側は、前記データ部を、所定のビット数を単位とする複数の単位データ部に分割し、前記データ部について誤り検出を行う誤り検出部を、前記複数の単位データ部に対応して複数設け、
前記受信側は、前記複数の単位データ部毎に誤り検出を行うことを特徴とする請求項1記載のデータ通信方法。
【請求項3】
前記送信側は、前記誤り検出部において、前記制御用誤り検出符号を、前記制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成することを特徴とする請求項2記載のデータ通信方法。
【請求項4】
前記制御用誤り検出符号と、前記複数の単位データ部毎に付加する誤り検出符号とに、同じ種類の誤り検出符号を用いることを特徴とする請求項2又は3記載のデータ通信方法。
【請求項5】
前記受信側は、前記送信側に対して、前記誤り検出符号により誤りが検出された部分について再送信を要求し、
前記送信側は、前記再送信の要求を受信すると、要求された部分を再送信することを特徴とする請求項2ないし4の何れかに記載のデータ通信方法。
【請求項6】
前記受信側は、前記再送信の要求頻度の多寡に応じて、前記誤り検出符号のビット数の変更を送信側に要求し、
前記送信側は、前記要求に応じて誤り検出符号のビット数を変更することを特徴とする請求項5記載のデータ通信方法。
【請求項7】
前記送信側は、前記通信フレームをリンクレイヤフレームとして4B5B符号化し、
その4B5B符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、
その生成した物理レイヤフレームをNRZI(Non Return to Zero Inversion)符号化し、そのNRZI符号化した物理レイヤフレームを送信フレームとして通信路へ送信する際に、送信データが正常であるか否かを判定するビットエラー検出を行い、
前記リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行い、
前記受信側は、前記物理レイヤフレームを受信すると、その受信した物理レイヤフレームに対し、4B5B符号化が正常であるか否かを判定するコーディングエラー検出を行い、
前記誤り検出符号を用いて、前記リンクレイヤフレームに含まれる前記制御情報部及び前記データ部が正常であるか否かを判定する誤り検出を行い、
前記リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行い、
前記リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行い、
前記送信側は、前記受信側よりACK(ACKnowledgement)フレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行うことを特徴とする請求項1ないし6の何れかに記載のデータ通信方法。
【請求項8】
送信器が、少なくとも制御コードを含む制御情報部と、送信データからなるデータ部と、誤り検出符号からなる誤り検出部とからなる通信フレームを送信し、受信器が前記通信フレームを受信すると、前記誤り検出符号を用いて通信フレーム中の誤り検出を行うデータ通信システムにおいて、
前記送信器は、前記制御情報部について誤り検出を行うための制御用誤り検出符号を生成する制御用誤り検出符号生成部を備え、前記誤り検出部に前記制御用誤り検出符号を含ませて送信を行い、
前記受信器は、前記通信フレームを受信すると、前記制御用誤り検出符号に基づいて前記制御情報部の誤り検出を行うことを特徴とするデータ通信システム。
【請求項9】
前記送信器は、前記データ部を、所定のビット数を単位とする複数の単位データ部に分割し、前記データ部について誤り検出を行う誤り検出部を、前記複数の単位データ部に対応して複数設けるように生成し、
前記受信器は、前記複数の単位データ部毎に誤り検出を行うことを特徴とする請求項8記載のデータ通信システム。
【請求項10】
前記制御用誤り検出符号生成部は、前記制御用誤り検出符号を、前記制御情報部と、それに続く最初の単位データ部とを併せて誤り検出を行うように生成することを特徴とする請求項9記載のデータ通信システム。
【請求項11】
前記制御用誤り検出符号と、前記複数の単位データ部毎に付加する誤り検出符号とに、同じ種類の誤り検出符号を用いることを特徴とする請求項9又は10記載のデータ通信システム。
【請求項12】
前記受信器は、前記送信器に対して、前記誤り検出符号により誤りが検出された部分について再送信を要求し、
前記送信器は、前記再送信の要求を受信すると、要求された部分を再送信することを特徴とする請求9ないし11の何れかに記載のデータ通信システム。
【請求項13】
前記受信器は、前記再送信の要求頻度の多寡に応じて、前記誤り検出符号のビット数の変更を送信器に要求し、
前記送信器は、前記要求に応じて誤り検出符号のビット数を変更することを特徴とする請求項12記載のデータ通信システム。
【請求項14】
前記送信器は、データを含むリンクレイヤフレームを4B5B符号化し、その4B5B符号化したリンクレイヤフレームに対してプリアンブル、フレーム開始部及びフレーム終了部を付加して物理レイヤフレームを生成し、その生成した物理レイヤフレームをNRZI(Non Return to Zero Inversion)符号化し、そのNRZI符号化した物理レイヤフレームを送信フレームとして通信路へ送信し、
送信データが正常であるか否かを判定するビットエラー検出を行うビットエラー検出手段と、
リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行うフォームエラー検出手段と、
ACK(ACKnowledgement)フレームを所定時間内に正常に受信したか否かを判定するタイムアウトエラー検出を行うタイムアウトエラー検出手段とを備え、
前記受信器は、通信路から受信フレームとして受信した物理レイヤフレームに対し、4B5B符号化が正常であるか否かを判定するコーディングエラー検出を行うコーディングエラー検出手段と、
前記誤り検出符号を用いて、リンクレイヤフレームに含まれる制御情報及びデータが正常であるか否かを判定する符号誤り検出手段と、
リンクレイヤフレームの構成及び内容が正常であるか否かを判定するフォームエラー検出を行うフォームエラー検出手段と、
リンクレイヤフレームのビット列の並びが正常であるか否かを判定するステートエラー検出を行うステートエラー検出手段とを備えたことを特徴とする請求項8ないし13の何れかに記載のデータ通信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate