(57)【特許請求の範囲】
【請求項１】
データの本体とともにデータの種類の情報を含むデータを伝送する多重通信線の間に介設されて複数の種類のデータを中継するデータ中継装置であって、受信したデータの中継先の多重通信線を選択し受信データを転送するデータコントローラを有するデータ中継装置において、
受信データを中継先の多重通信線に送信する前に一時保持するバッファを、中継されるデータの種類ごとに設けるとともに、データ種類のうち１以上のデータ種類については複数のバッファを割り当て、
上記データコントローラには、受信したデータの種類を識別し、その種類に対応するバッファを、受信したデータの書き込み先として指定するバッファ指定手段と、
各多重通信線において、データ種類が同一のバッファからのデータを転送する順番が、バッファにデータが書き込まれた順番となるように、データが格納されたバッファからのデータの転送を管理するデータ転送管理手段とを具備せしめ、
該データ転送管理手段を、所定の時間間隔で立ち上がり、順次、上記バッファ内の送信するデータの有無を確認してデータがあればバッファからデータを転送するように、かつ、データ種類が同一のバッファについてのデータの有無の確認を、最先にデータが格納されたバッファのみについて行うように設定したことを特徴とするデータ中継装置。
【請求項２】
請求項１記載のデータ中継装置において、上記データ転送管理手段を、データ種類が同一のバッファについて上記最先にデータが格納されたバッファ内のデータの転送が、選択された多重通信線に対応してすべて完了した後に、データの種類が同一の他のバッファ内のデータのうちで最先に受信されたデータを上記最先にデータが格納されたバッファに移動するように設定したデータ中継装置。
【請求項３】
請求項１記載のデータ中継装置において、データが格納されたバッファを特定するバッファ情報を含み、選択された多重通信線が同じバッファ情報の並び順が、バッファからデータを転送する順番である送信データリストを具備せしめ、
上記データ転送管理手段を、データのバッファへの書き込みおよびバッファからのデータの転送に応じて上記送信データリストを更新するように設定したデータ中継装置。
【請求項４】
請求項３記載のデータ中継装置において、上記送信データリストを、バッファを特定するバッファ情報と、上記転送先テーブルに基づいて多重通信線ごとに初期値が与えられて、上記バッファに格納されたデータを転送すべきか否かの管理情報とからなる構成とし、
上記データ転送管理手段を、バッファからのデータの転送に応じて、管理情報をデータの送信が不要である旨の情報に切り換えるように設定したデータ中継装置。
【請求項５】
請求項１ないし４いずれか記載のデータ中継装置と、データを送受信する通信ノードが上記多重通信線に接続された複数の通信系とを具備することを特徴とする多重通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ中継装置および多重通信システムに関する。
【０００２】
【従来の技術】
近年、特にコンピュータ技術の進歩を背景として情報通信の高度化が進んでおり、例えば自動車においても、搭載される電装品等を制御する制御部の間でやり取りされる情報量は急速に増大している。そこで情報を伝達するワイヤーハーネスの数を低減すべく多重通信システムが採用されつつある。多重通信システムは、共通の多重通信線に、データの送受信を行う制御用ＥＣＵ等の通信ノードが接続されたもので、通信ノード間で多重通信線を介してデータ通信を行う。データはデータ本体とともにデータの種類の情報等を含み構成されており、受信した通信ノードがデータの内容を理解できるようになっている。制御の種類が多岐にわたる上記自動車等の場合には、データ通信を効率よく行うために、図３２に示すように、要求される通信速度の相違等に応じて、多重通信線９２１，９２２，９２３とこれに接続されるノード９３１，９３２とよりなる複数の通信系９１１，９１２，９１３に分け、属する通信系９１１〜９１３が異なるノード９３１，９３２間の通信は、データ中継装置９４を介して行うようにしたものがある。図例では、シフトレバー８１のシフトポジションに応じてエンジン等の動力系の制御を行うエンジンＥＣＵ９３１と、メータ８２の表示等を制御するメータＥＣＵ９３２とは、異なる通信系９１１，９１２に属している。
【０００３】
データ中継装置９４には通常、データを受信するための受信バッファや、多重通信線に送信する直前のデータが格納される送信バッファが設けられている。また、多量のデータの中継を効率よく行うようにしたものとして、受信データを中継先の多重通信線に送信する前に一時保持するバッファを、中継されるデータの種類ごとに設けておき、データを受信すると、受信したデータの種類を識別して、その種類に対応したバッファに書き込むようにしたものがある（特開２０００−２４４５４８号公報）。この技術では、異なる種類のデータ間で上書きされることが禁止されるので、どんなに通信が混雑していても、いずれかの種類のデータが完全に消失してしまうのを防止する、優れた効果を奏する。また、上記特開２０００−２４４５４８号公報には、さらにデータの優先度を再設定することで、データ中継装置におけるデータの滞留を緩和するものも開示されている。
【０００４】
【発明が解決しようとする課題】
ところで、データの中には、最新のデータだけではなく時系列的に入力するデータの変化そのものが意味を有するものがある。図３２の例では、メータＥＣＵ９３２は、メータ８２の表示部のひとつであるシフトポジションを示す「Ｐ」「Ｒ」「Ｎ」「Ｄ」「２」「Ｌ」の６つのインディケータ８２１の点灯と消灯とを切り換えるようになっているが、各インディケータ８２１の点灯か消灯かのデータは、メータＥＣＵ９３２とは別の通信系９１１に属するエンジンＥＣＵ９３１から受け取ることになる。
【０００５】
図３３はこの点灯か消灯かのデータのデータ本体の構成例を示すもので、１ビット目から６ビット目まで「Ｐ」から「Ｌ」のシフトポジジョンが１対１に対応し、各ビットはが点灯であれば「１」、消灯であれば「０」となる。運転者が自動車を発進させようとシフトレバーを「Ｐ」から「Ｌ」まで５段階に一気に動かすと、エンジンＥＣＵ９３１からは、各段階を経るごとに、「１」となるビットを隣のビットに移動させたデータがエンジンＥＣＵ９３１から送信され、これらのデータがたて続けにデータ中継装置９４に入ることになる。かかる場合に、データ中継装置９４においてバッファの上書きによりデータが最新のものに置き変わってしまうと、インディケータ８２１においてシフトポジションの表示が飛ぶという不都合が生じる。
【０００６】
かかるデータを確実に転送しようとすれば上記のごとく優先度を高く再設定するのも一案であるが、データ中継装置９４の送信バッファに他の種類のデータが滞留していれば、結局、バッファのデータが上書きされていくことになる。
【０００７】
本発明は上記実情に鑑みなされたもので、データの消失に対する耐性の高いデータ中継装置および多重通信システムを提供することを目的とする。
【０００８】
請求項１記載の発明では、データの本体とともにデータの種類の情報を含むデータを伝送する多重通信線の間に介設されて複数の種類のデータを中継するデータ中継装置であって、受信したデータの中継先の多重通信線を選択し受信データを転送するデータコントローラを有するデータ中継装置において、
受信データを中継先の多重通信線に送信する前に一時保持するバッファを、中継されるデータの種類ごとに設けるとともに、データ種類のうち１以上のデータ種類については複数のバッファを割り当て、
上記データコントローラには、受信したデータの種類を識別し、その種類に対応するバッファを、受信したデータの書き込み先として指定するバッファ指定手段と、
各多重通信線において、データ種類が同一のバッファからのデータを転送する順番が、バッファにデータが書き込まれた順番となるように、データが格納されたバッファからのデータの転送を管理するデータ転送管理手段とを具備せしめ、
該データ転送管理手段を、所定の時間間隔で立ち上がり、順次、上記バッファ内の送信するデータの有無を確認してデータがあればバッファからデータを転送するように、かつ、データ種類が同一のバッファについてのデータの有無の確認を、最先にデータが格納されたバッファのみについて行うように設定する。
【０００９】
データの種類ごとにバッファを設けることで、バッファは、同じ種類の最新のデータによってのみ上書きされ、受信データにより送信待ちの他の種類のデータを消失してしまうことを防止することができる。
【００１０】
さらに、複数のバッファが割り当てられた種類のデータについては、相前後してデータが受信されても、これらを同時に保持することができ、データ消失に対する耐性を高めることができる。しかも、バッファからのデータ転送が、少なくとも選択された多重通信線が同じものについては、バッファにデータが格納された時期が早いものから行われるから、バッファからのデータ転送において、同じ種類のデータ間での飛び越しを確実に防止することができる。
【００１２】
バッファ内のデータの有無を順次、確認していくことで、バッファ群の中から、送信すべきデータの存在が確実に知られ、また、データ種類が同一のバッファについてのデータの有無は、先ず、最先にデータが格納されたバッファについて確認されるから、最先に格納されたデータが、データ種類が同一の他のバッファに先んじてバッファからの転送を実行することができる。
【００１３】
請求項２記載の発明では、請求項１の発明の構成において、上記データ転送管理手段を、データ種類が同一のバッファについて上記最先にデータが格納されたバッファ内のデータの転送を、選択された多重通信線に対応してすべて完了した後に、データの種類が同一の他のバッファ内のデータのうちで最先に受信されたデータを上記最先にデータが格納されたバッファに移動するように設定する。
【００１４】
種類が同一のデータの中で最先に受信されたデータが、常に所定バッファに存在するようにすることで、すべてのバッファについてデータの有無を確認しなくとも、転送すべきデータの有無を確実に確認することができる。
【００１５】
請求項３記載の発明では、請求項１の発明の構成において、データが格納されたバッファを特定するバッファ情報を含み、選択された多重通信線が同じバッファ情報の並び順が、バッファからデータを転送する順番である送信データリストを具備せしめ、
上記データ転送管理手段を、データのバッファへの書き込みおよびバッファからのデータの転送に応じて上記送信データリストを更新するように設定する。
【００１６】
バッファ内のデータの有無を確認しなくとも、送信データリストから、転送すべきデータを格納したバッファが知られるので、データの中継を速やかに行うことができる。
【００１７】
しかも、多重通信線ごとに、バッファからデータを転送する順番が知られるから、データ種類が同一のデータが相前後してバッファに書き込まれて、送信データリストに同一のデータ種類について複数がエントリされた場合において、当該データがバッファから一の多重通信線に対応して転送され、他の多重通信線に対応しては転送されていない状況が現出しても、上記一の多重通信線に対応して次に転送すべきデータを格納したバッファは、送信されたデータが格納されたバッファのバッファ情報の次に並べられたバッファ情報で特定されるバッファであることが知られる。これにより、同じデータを間違って送信することを回避できる。
【００１８】
請求項４記載の発明では、請求項３の発明の構成において、上記送信データリストを、バッファを特定するバッファ情報と、上記転送先テーブルに基づいて多重通信線ごとに初期値が与えられて、上記バッファに格納されたデータを転送すべきか否かの管理情報とからなる構成とし、
上記データ転送管理手段を、バッファからのデータの転送に応じて、管理情報をデータの送信が不要である旨の情報に切り換えるように設定する。
【００１９】
転送すべきデータが格納されたバッファとともに、そのデータの多重通信線ごとの転送進捗状況を一元管理することができるから、バッファに格納されたデータの転送が、選択された多重通信線に対応してすべて完了しているか否かを、容易に知ることができ、制御負担を減じることができる。
【００２０】
請求項５記載の発明では、多重通信システムを、請求項１ないし４記載のデータ中継装置と、データを送受信する通信ノードが上記多重通信線に接続された複数の通信系とを具備する構成とすることで、中継データの消失によってデータ通信の信頼性を損なわない多重通信システムを構築することができる。
【００２１】
【発明の実施の形態】
（第１実施形態）
図１に本発明の第１実施形態になるデータ中継装置および多重通信システムを示す。多重通信システムは、複数（図例では３）の通信系１１，１２，１３とデータ中継装置４とにより構成される。各通信系１１〜１３は、多重通信線２１，２２，２３に通信ノード３１，３２，３３が接続されたもので、通信ノード３１〜３３間で所定のプロトコルにてデータを送受信するようになっている。通信ノード３１〜３３は各通信系１１〜１３に少なくともひとつ属している。
【００２２】
上記データのフレーム構造の一例を図２に示す。これは自動車のＢＥＡＮ（Ｂｏｄｙ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）プロトコルにおけるフレーム構造である。なお、以下の説明においてデータ通信は、このＢＥＡＮプロトコルに従うものとして説明する。ＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）はフレームの開始を表し１ｂｉｔが割り当てられる。ＰＲＩ（Ｐｒｉｏｒｉｔｙ）はフレームの優先度を表す領域で、４ｂｉｔが割り当てられる。「１」の方が「０」よりも優先度が高い。データ中継装置４、通信ノード３１〜３３は、各通信系１１〜１３において、多重通信線２１〜２３上でデータ同士の衝突が起きた場合に優先度の高いデータが優先し他のデータは送信が中止される。ＭＬ（Ｍｅｓｓａｇｅ  Ｌｅｎｇｔｈ）は、続くメッセージ部分の長さを表す領域で、メッセージ部分を構成するＤＩＤ、ＭＩＤは、後述するようにそれぞれ１ｂｙｔｅであり、ＤＡＴＡは可変長であるから、ＤＡＴＡのｂｙｔｅ数＋２となる。
【００２３】
メッセージ部分の最初はＤＩＤ（Ｄｅｓｔｉｎａｔｉｏｎ  ＩＤ）であり、これはフレームの宛て先ノードＩＤを表す領域である。ＭＩＤ（Ｍｅｓｓａｇｅ  ＩＤ）はメッセージＩＤを表す領域で、８ｂｉｔが割り当てられる。ＭＩＤは、データの種類ごとに付与され、データの本体である後述するＤＡＴＡの内容が表すデータの種類を特定する。通信でやりとりされるデータの種類にはエンジン回転数等があり、それぞれに例えば図３に示すようにＭＩＤが付与される。図の例で説明すると、ＭＩＤ＝０８ｈである通信データのＤＡＴＡはエンジン回転数を表し、ＭＩＤ＝Ａ５ｈである通信データのＤＡＴＡは車速を表し、ＭＩＤ＝ＤＤｈである通信データのＤＡＴＡはパワーウィンドウスイッチの状態を表す。ＤＡＴＡはデータ本体の領域で１〜１１ｂｙｔｅが割り当てられる。
【００２４】
ＤＡＴＡの後にはＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈａｒａｃｔｅｒｓ）、ＥＯＭ（Ｅｎｄ  Ｏｆ  Ｍｅｓｓａｇｅ）、ＲＳＰ（Ｒｅｓｐｏｎｃｅ）が続く。ＣＲＣは通信エラーチェック用の領域で、８ｂｉｔが割り当てられる。ＣＲＣは、通信ノードが上記ＰＲＩからＤＡＴＡまでの内容を所定の数式に代入してビット演算した結果を書き込み、受信した通信ノードが受信データと比較することで、通信エラーをチェックする。ＥＯＭは所定のビット列でメッセージの終了を表し８ｂｉｔが割り当てられる。ＲＳＰはデータを受信した通信ノードがレスポンスを書き込む領域で、２ｂｉｔが割り当てられる。ＲＳＰには受信した通信ノードによりフレームの内容を正常に解釈できたか否かの結果が書き込まれ、これよりデータを送信した通信ノードが再送信の必要があるか否かを判定する。データの最後尾はＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）で、所定のビット列によりフレームの終わりを表し、６ｂｉｔが割り当てられる。
【００２５】
各多重通信線２１〜２３は、データ中継装置４と接続され、データ中継装置４が、通信ノード３１〜３３から送信されたデータを別の通信系１１〜１３に属する通信ノード３１〜３３へと中継するようになっている。
【００２６】
データ中継装置４は、多重通信線２１〜２３とのインターフェースをなす通信用ＩＣや、制御用のマイクロコンピュータ等で構成されたもので、図ではその機能ブロックで表してあり、受信バッファ４１１，４１２，４１３、送信バッファ４２１，４２２，４２３、バッファ群４３、データコントローラ４４、転送先テーブル４５等からなる。
【００２７】
受信バッファ４１１〜４１３、送信バッファ４２１〜４２３は各多重通信線２１〜２３に対応して設けてある。受信バッファ４１１〜４１３は多重通信線２１〜２３から送信されたデータを受け、送信バッファ４２１〜４２３は送信しようとするデータが書き込まれる。受信バッファ４１１〜４１３および送信バッファ４２１〜４２３は上記通信用ＩＣにより構成される。なお、データ通信機能をマイクロコンピュータを構成するＣＰＵ上で実行されるソフトウェアとして組み込んでもよく、この場合、受信バッファ４１１〜４１３、送信バッファ４２１〜４２３はマイクロコンピュータを構成するＲＡＭ上に割り当てる。
【００２８】
バッファ群４３は複数のバッファ４３１よりなり、各バッファ４３１は、詳細は後述するように受信バッファ４１１〜４１３が受けたデータを送信バッファ４２１〜４２３に転送する前に一時保持するようになっている。中継されるデータのＭＩＤに少なくとも１つのバッファ４３１が割り当てられ、バッファ４３１ははそれぞれ１つのＭＩＤに専属している。このうち特定のＭＩＤについては複数のバッファ４３１が割り当てられており、相前後して受信した同じＭＩＤの複数のデータを同時に保持することができる。バッファ４３１は、例えば転送されるデータが５種類で、そのうちの１種類については３つのバッファを割り当て、その他の種類は１つずつバッファを割り当てるとすれば、バッファ４３１を７つ用意することになる。
【００２９】
なお、以下の説明において、データ中継の対象となるＭＩＤに１対１に対応して、適宜、バッファ４３１をバッファｎというように表し（ｎ＝自然数）、複数のバッファ４３１を割り当てたＭＩＤのバッファ４３１については個々のバッファ４３１をバッファｎ（ｋ）というように表して（ｋ＝自然数）識別するものとする（以下、ｋを段数という）。また、複数のバッファを割り当てたデータ種類の場合、バッファｎは、バッファｎ（ｋ）の全体をいうものとする。例えば、図４に示すように、バッファ１はＭＩＤ＝０１ｈのデータの書き込み用とし、バッファ２はＭＩＤ＝５Ｆｈのデータの書き込み用とし、バッファ３はＭＩＤ＝９２ｈのデータの書き込み用とし、バッファ４（１）、バッファ４（２）、およびバッファ４（３）はそれぞれＭＩＤ＝Ｃ８ｈのデータの書き込み用とし、バッファ５はＭＩＤ＝ＥＢｈのデータの書き込み用とする。バッファ群４３のデータ領域は上記マイクロコンピュータを構成するＲＡＭ上に割り当てられる。
【００３０】
データコントローラ４４は、受信データの中継先の多重通信線２１〜２３を選択し、中継先の多重通信線２１〜２３用の送信バッファ４２１〜４２３に転送するもので、所定間隔で立ち上がり、受信バッファ４１１〜４１３からバッファ４３１へのデータ転送を制御するとともに、バッファ４３１から送信バッファ４２１〜４２３へのデータ転送を制御する。データコントローラ４４はマイクロコンピュータを構成するＣＰＵ上で実行されるソフトウェア上で実現される。データコントローラ４４、受信バッファ４１１〜４１３および送信バッファ４２１〜４２３は、データコントローラ４４のデータ転送処理と、受信バッファ４１１〜４１３の受信作動および送信バッファ４２１〜４２３の送信作動とを交互に繰り返すように設定されている。
【００３１】
転送先テーブル４５は、受信データのＭＩＤと中継先の多重通信線用の送信バッファ４２１〜４２３とを対応せしめるもので、ＭＩＤと多重通信線２１〜２３とを指定すると、そのＭＩＤの受信データをどの多重通信線２１〜２３用の送信バッファ４２１〜４２３に転送すべきか否かの情報が読みだせるようになっている。転送先テーブル４５の内容は上記マイクロコンピュータを構成するＲＯＭ上に予めデータコントローラ４４の制御プログラムとともに書き込まれる。
【００３２】
図５は転送先テーブル４５の一例を示すもので、読みだした情報が「１」であれば、その多重通信線用の送信バッファに転送すべきことを、「０」であれば、その多重通信線用の送信バッファに転送しないことを示す。図例では、ＭＩＤ＝０１ｈであるデータＶは第２多重通信線用の送信バッファ４２２にのみ転送し、ＭＩＤ＝５ＦｈであるデータＷは第３多重通信線用の送信バッファ４２３にのみ転送し、ＭＩＤ＝９２ｈであるデータＸは第１多重通信線用の送信バッファ４２１にのみ転送し、ＭＩＤ＝Ｃ８ｈであるデータＹは第１多重通信線用の送信バッファ４２１および第２多重通信線用の送信バッファ４２２に転送し、ＭＩＤ＝ＥＢｈであるデータＺは第２多重通信線用の送信バッファ４２２および第３多重通信線用の送信バッファ４２３に転送すべきことを表している。
【００３３】
また、データコントローラ４４には、受信バッファ４１１〜４１３からバッファ群４３へのデータ転送処理時に実行されるバッファ指定手段４４１が設けてあり、受信バッファ４１１〜４１３のデータのＭＩＤを識別し、そのＭＩＤに対応するバッファ４３１を受信バッファ４１１〜４１３のデータの転送先として指定する。
【００３４】
また、単一のバッファ４３１からなるＭＩＤの場合は、受信バッファ４１１〜４１３のデータにより、そのＭＩＤ用のバッファ４３１に上書きされることになるが、複数のバッファ４３１が割り当てられたＭＩＤについては、データが格納されていないバッファ４３１のうち、段数の若いものから順に書き込まれていくようになっており、空きバッファ４３１がなければ最後の段数ｋf のバッファｎ（ｋf ）のバッファ４３１に上書きされることになる。
【００３５】
かくして受信データはそのＭＩＤに対応してＭＩＤ別にバッファ４３１に書き込まれる。
【００３６】
また、データコントローラ４４には、バッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理時に実行されて、データ転送の順番を管理するデータ転送管理手段４４２が設けてある。
【００３７】
図６、図７、図８、図９に、バッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理を示すフローチャートを示す。これはデータ転送管理手段４４２の設定内容を示すものである。ステップＳ１００では開始バッファ＃＝１とし、終了バッファ＃＝Ｎとする。ここで、Ｎはバッファ群４３を構成するバッファ４３１の数である。ステップＳ１０１ではｎ＝開始バッファ＃（＝１）とする。ステップＳ１０２ではバッファｎにデータが書き込まれているか否かを確認する。なお、バッファ♯が複数のバッファ４３１を割り当てたＭＩＤに対応するものの場合は、データが書き込まれているか否かの判断は、バッファｎ（１）のみに基づいて行う。
【００３８】
書き込まれている場合はステップＳ１０５に進む（図７）。ステップＳ１０５ではバッファｎのデータに転送先フラグが設定されているか否かを確認する。転送先フラグは多重通信線２１〜２３ごとに設定され、「１」が設定されていれば、バッファｎのデータをその多重通信線２１〜２３に転送すべきことを表す。
【００３９】
転送先フラグが設定されていなければステップＳ１０６，Ｓ１０７を実行し転送先フラグを設定する。ステップＳ１０６ではバッファｎのデータのＭＩＤを確認し、ステップＳ１０７では上記データ転送先テーブル４５を参照してバッファｎのデータの転送先を取得してバッファｎのデータに転送先フラグを設定する。すなわち、第１多重通信線用の送信バッファ４２１に転送すべきであれば転送先フラグｆ１を「１」とし、第２多重通信線用の送信バッファ４２２に転送すべきであれば転送先フラグｆ２を「１」とし、第３多重通信線用の送信バッファ４２３に転送すべきであれば転送先フラグｆ３を「１」とする。
【００４０】
転送先フラグを設定すると、ステップＳ１０８（図８）に進む。ステップＳ１０８では転送先フラグｆ１を確認し、「１」であればステップＳ１０９に進む。ステップＳ１０９では第１多重通信線用の送信バッファ４２１が空か否かを確認する。送信バッファ４２１が空であればステップＳ１１０に進みバッファｎのデータを送信バッファ４２１に転送する。そして続くステップＳ１１１でバッファｎの転送先フラグｆ１を「０」とし、ステップＳ１１２に進む。
【００４１】
ステップＳ１１２では転送先フラグｆ２が「１」か否かを確認する。「１」であればステップＳ１１３に進む。ステップＳ１１３では第２多重通信線用の送信バッファ４２２が空か否かを確認する。送信バッファ４２２が空であればステップＳ１１４に進み、バッファｎのデータを送信バッファ４２２に転送する。そして続くステップＳ１１５でバッファｎの転送先フラグｆ２を「０」とし、ステップＳ１１６に進む。
【００４２】
ステップＳ１１６では転送先フラグｆ３が「１」か否かを確認する。「１」であればステップＳ１１７に進む。ステップＳ１１７では第３多重通信線用の送信バッファ４２３が空か否かを確認する。送信バッファ４２３が空であればステップＳ１１８に進み、バッファｎのデータを送信バッファ４２３に転送する。そして続くステップＳ１１９でバッファｎの転送先フラグｆ３を「０」とし、ステップＳ１２０に進む（図９）。
【００４３】
ステップＳ１２０では転送先フラグｆ１＝０かつｆ２＝０かつｆ３＝０であるか否かを判定する。肯定されれば転送すべき送信バッファ４２１〜４２３へのデータ転送が完了しているということであり、ステップＳ１２１でバッファｎのデータを削除する。複数のバッファ４３１が割り当てられているＭＩＤの場合は、バッファｎ（１）のデータを削除する。
【００４４】
続くステップＳ１２２では、バッファｎが複数段構成、すなわち複数のバッファ４３１が割り当てられたＭＩＤのものであるか否かを判定する。判定は、複数段構成をとるもののバッファ♯を予め記憶しておき、これに基づいて行い得る。肯定されればステップＳ１２３に進み、バッファｎ（２）のデータをバッファｎ（１）にコピーし、３段以上の構成であれば、さらにバッファｎ（３）のデータをバッファｎ（２）にというように、各バッファｎ（ｋ）のデータをひとつ若い段数ｋのバッファｎ（ｋ）に移動していく。同一ＭＩＤ内のバッファ４３１におけるかかる作動は、ＦＩＦＯと実質的に同様のデータ処理である。
【００４５】
図１０（Ａ）、図１０（Ｂ）は、かかる、バッファ４３１から送信バッファ４２１〜４２３（図例では４２１）への転送処理を示すもので、転送するデータの有無についてバッファ群４３内を順次、確認し、ＭＩＤ＝９２ｈ、段数１のバッファ４３１に格納されたデータを送信バッファ４２１に転送したとすると（図１０（Ａ））、上記バッファ４３１のデータを削除し、段数２、段数３のデータが順繰りに繰り上がり、段数３のバッファが空になることになる（図１０（Ｂ））。なお、かかるデータ移動はデータの物理的なアドレスが実際に変わるのではなく、データの格納場所をそのままにデータに対応する段数の情報の方を繰り替えるようにしてもよく、２つの手段は等価である。
【００４６】
その後、ステップＳ１０３に進む（図６）。ステップＳ１２２が否定されれば単一のバッファ構成ということであり、ステップＳ１２３をスキップしてステップＳ１０３に進む。
【００４７】
ステップＳ１０３においてｎが終了バッファ＃か否かを判定し、ｎ≠終了バッファ＃であればステップＳ１０４にてｎを１ステップ、インクリメントし、ステップＳ１０２に戻り、次のバッファ♯のバッファｎについてステップＳ１０２，Ｓ１０８〜Ｓ１２３が実行される。このように、バッファ４３１はバッファ♯順に、転送するデータの有無が確認され、データが保持されているときはそのデータを所定の送信バッファ４２１〜４２３に転送する。そして最後のバッファＮについてのデータを転送するとデータ転送処理が終了となる。
【００４８】
上記データ転送処理において、送信バッファ４２１〜４２３がデータを保持しており送信待ちの状態にあるためにステップＳ１０９，Ｓ１１３，Ｓ１１７の少なくともいずれかが否定されると、ステップＳ１１０，Ｓ１１１、ステップＳ１１４，Ｓ１１５、ステップＳ１１８，Ｓ１１９はスキップし転送先フラグｆ１，ｆ２，ｆ３のいずれかは「１」のままである。したがってステップＳ１２０は否定され、ステップＳ１２１はスキップしバッファｎのデータはそのまま保持される。すなわち、転送先の送信バッファ４２１〜４２３が空になるのを待つことになる。この場合、次回のデータ転送処理において、ステップＳ１０５からステップＳ１０６，Ｓ１０７をスキップしてステップＳ１０８〜Ｓ１１９が実行され、転送先の送信バッファ４２１〜４２３が空になっていれば、前回、送信待ちのため転送できなかったデータを転送する。
【００４９】
転送先の送信バッファ４２１〜４２３が空になるのを待つ状態が続けば、バッファ群４３から送信バッファ４２１〜４２３への転送は行われない。その間に、バッファ４３１に保持されたのと同じＭＩＤの新しいデータが受信されると、当該バッファ４３１はその新しいデータにより上書きされることになるが、バッファ４３１を、中継するデータのＭＩＤごとに設けることで、データ種類の異なるデータにより上書きされることを回避できるので、あるＭＩＤのデータが完全に消失してしまうのを防止することができる。
【００５０】
また、上記シフトポジションのインディケータの点灯か消灯かのデータを複数段構成のバッファ４３１に受け持たせるようにすれば、上記データが相前後してエンジンＥＣＵからたて続けに送信されても、この一連のデータがバッファ４３１において保持され、表示飛びに対する耐性を高めることができる。しかも、最先に受信されたデータは常に段数１のバッファ４３１に存在しているから、データの飛び越しがなく、上記インディケータは「Ｐ」から「Ｒ」「Ｎ」「Ｄ」「２」「Ｌ」の順に変わっていくことになる。
【００５１】
しかも、バッファ群４３を構成するバッファ４３１の数は、中継するデータの種類の数に、データ消失に対する耐性を高めたいＭＩＤのものについて複数のバッファを増設すればよいから、構成が簡単である。
【００５２】
さらに、データコントローラ４４が順次、バッファ４３１のデータの有無について確認するから、バッファ群４３の中から送信バッファ４２１〜４２３に転送し多重通信線２１〜２３に送信すべきデータの存在が確実に知られる。
【００５３】
なお、バッファ群４３は、特に速やかに中継すべき重要なデータ種類ほど、例えば優先度（ＰＲＩ）の高いデータ種類ほど若いバッファ♯のバッファ４３１を割り当てることで、重要なデータを速やかに中継先の多重通信線２１〜２３に送信することができる。
【００５４】
また、データコントローラ４４は立ち上がるごとに、バッファ群４３の中から送信バッファ４２１〜４２３へのデータ転送処理において、中継対象のすべてのＭＩＤについて、送信するデータの確認を行っているが、先ず、例えばバッファ群４３のバッファ♯前半のバッファ４３１についてデータの転送処理を行い、次に立ち上がった時にバッファ♯後半のバッファ４３１についてデータの転送処理を行うように設定し、２回のデータの転送処理でバッファ群４３を一巡するようにしてもよい。この場合、重要なデータ種類に対応するバッファ４３１については、上記２回のデータの転送処理の両方にて行うことで、重要なデータを速やかに中継先の多重通信線２１〜２３に送信することができる。
【００５５】
なお、バッファ４３１内のデータの有無の確認は、本実施形態の方法を示す図１１（Ａ）のごとく、複数段構成のバッファ４３１では段数１のバッファ４３１のみ確認するのがよい。この方法の他、図１１（Ｂ）に示すように、一部もしくは全部の複数段構成のバッファ４３１について、バッファｎ（１）の確認の後、そのＭＩＤのすべてのバッファｎ（ｋ）を確認するようにしたり、（Ｃ）に示すように、バッファｎ（１）から所定の段数のバッファｎ（ｋ）まで確認する方法もあるが、図１１（Ａ）の本実施形態の方法とすることで、同一ＭＩＤの中で最もバッファ４３１に格納された時期が早いデータの転送が優先的になされることになる。
【００５６】
なお、この場合、図１２に示すように、送信バッファ４２１〜４２３（図例では４２１）を複数段の構成にしてＦＩＦＯ型でデータ処理し、バッファ４３１から転送された順に多重通信線２１に送信する構成としてもよく、データ中継をよりスムーズに行い得る。
【００５７】
（第２実施形態）
図１３に本発明の第２実施形態になるデータ中継装置および多重通信システムの構成を示す。本実施形態のデータ中継装置４Ａは、第１実施形態の構成において、別のデータコントローラに代えたものである。第１実施形態のデータコントローラでは、バッファ確認手段は、開始バッファ＃、終了バッファ＃をそれぞれ固定してバッファ１から始まり順にバッファＮまでデータの有無を確認しデータの転送処理を行っているが、本実施形態のデータコントローラ４４Ａでは、データ転送管理手段４４２Ａは、立ち上がるごとに開始バッファ＃と終了バッファ＃を変更し確認順序をずらしていくように設定されている。第１実施形態との相違点を中心に説明する。
【００５８】
図１４にデータ中継装置４Ａのデータコントローラ４４Ａにおけるバッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理を示す。ステップＳ２００において前回のデータ転送処理における開始バッファ＃を１、インクリメントする。続くステップＳ２０１では開始バッファ＃がＮを越えているか否かを確認する。越えていなければ終了バッファ＃を開始バッファ＃−１とする。すなわち開始バッファ＃のひとつ前のバッファ♯のバッファにて、バッファ４３１のデータの有無の確認を含むバッファ群４３から送信バッファ４２１〜４２３への転送処理が一巡する。
【００５９】
続くステップＳ２０４ではｎを開始バッファ＃とし、ステップＳ２０５ではバッファｎにデータが書き込まれているか否かを確認し、書き込まれている場合には図７〜図９と同じ手順によりデータの書き込まれたバッファｎについて転送処理を行ってステップＳ２０６に進む。書き込まれていなければ（ステップＳ２０５）そのままステップＳ２０６に進む。
【００６０】
ステップＳ２０６ではｎが終了バッファ＃か否かを確認し、ｎが終了バッファ＃でなければ、ステップＳ２０７，Ｓ２０８を実行した後、上記ステップＳ２０５移行の手順が実行されて次のバッファ＃のバッファ４３１についてデータ転送処理を続ける。ここで、ステップＳ２０７，Ｓ２０８はｎを次に確認するバッファ４３１の通し番号に更新する手順で、ステップＳ２０７ではｎを１、インクリメントする。ステップＳ２０８ではこのｎがＮ以上か否かを確認し、Ｎ未満であればステップＳ２０５に戻り、ステップＳ２０７にてインクリメントされたｎすなわち次のバッファ♯のバッファ４３１についてデータの有無を確認する。このように順次、ｎが大きくなりついにＮになるが、この場合、ステップＳ２０８からステップＳ２０９に進み、ｎを１としステップＳ２０５に戻る。バッファＮの次に確認するのはバッファ１だからである。このようにＮ個すべてのバッファ４３１についてデータ転送処理が実行される。
【００６１】
このデータ転送処理では、開始バッファ＃と終了バッファ＃とを、検索が１巡するごとに順次ずらしていくので、ＭＩＤ間でデータの転送に於ける延滞の程度が偏るということを防止することができる。例えば、図４、図５の例で説明すると、第２多重通信線２２に転送するデータはデータＶ，Ｙ，Ｚの３つである。データＶはバッファ１に、データＹはバッファ４に、データＺはバッファ５に保持されるから、常にバッファ１からデータの有無の確認が開始される第１実施形態のデータコントローラ４４では、バッファ１から転送されたデータＶにより送信バッファ４２２が書き込まれると、データＹは書き込むことができない（ステップＳ１１３参照）。また、送信バッファ４２２にデータＶ，Ｙのいずれかが書き込まれるとデータＺは書き込むことができない。したがってデータＹはデータＶに比して、データＺはデータＶ，Ｙに比して送信バッファ４２２への転送がしにくくデータがデータ中継装置４にて延滞する場合がある。これに対して本実施形態のデータコントローラ４４Ａでは、検索が１巡するごとにデータの有無の確認順序を順繰りにずらしていくので、バッファ１〜バッファＮ間で、公平にデータを、対応する送信バッファ４２１〜４２３に転送することができる。また、確認順序が固定しないので、データの中継に要する時間をバッファ４３１間で平均化することができる。
【００６２】
なお、本データ転送処理では、データ中継装置４Ａの起動時における開始バッファ＃の初期値は１〜Ｎのうちいずれに設定してもよい。
【００６３】
（第３実施形態）
図１５に本発明の第３実施形態になるデータ中継装置および多重通信システムを示す。第１実施形態との相違点を中心に説明する。
【００６４】
データ中継装置４Ｂは、送信データリスト４６が設けてある。送信データリスト４６は模式的には図１６のごとく表せる。各多重通信線２１〜２３に送信するデータが格納されたバッファ４３１を特定する情報として、ＭＩＤおよび段数を含み、また、多重通信線２１〜２３ごとに、当該データを送信すべきか否かを示す転送先管理フラグを含んでいる。第１実施形態の転送先フラグと同様に「１」が転送すべきことを、「０」が転送不要であることを示している。なお、順位は送信データリスト４６に書き込まれた順番を示している。
【００６５】
送信データリスト４６からは、ひとつの多重通信線２１〜２３に注目して、転送先管理フラグが「１」のところがあれば、転送すべきデータが受信バッファ４１１〜４１３からバッファ４３１に転送されてきているということが知られ、また、かかる、転送先管理フラグが「１」のところが複数あれば、転送する順番が知られることになる。すなわち、順位の高いものから転送するものとする。図例では第１多重通信線２１の送信順番が、１位はＭＩＤ＝Ｃ８ｈ、段数２のバッファ４３１であり、第２位はＭＩＤ＝９２ｈ、段数１のバッファ４３１であることを示している。また、第３多重通信線２３の送信順番が、１位はＭＩＤ＝５Ｆｈ、段数２のバッファ４３１であることを示している。送信データリスト４６の記憶領域はデータ中継装置４Ｂを構成するＲＡＭ上に設定される。
【００６６】
データコントローラ４４Ｂには、受信バッファ４１１〜４１３からバッファ群４３へのデータ転送処理時およびバッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理時に起動されるデータ転送管理手段４４２Ｂが設けてあり、受信したデータを格納するバッファ４３１のバッファ情報（ＭＩＤおよび段数）および転送先管理フラグを送信データリスト４６に追記する等、送信データリスト４６を更新するようになっている。
【００６７】
データコントローラ４４Ｂで実行されるデータ転送処理を図１７、図１８、図１９、図２０、図２１、図２２により説明する。図１７〜図１９は受信バッファ４１１〜４１３からバッファ群４３へのデータ転送処理であり、図２０〜図２２はバッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理である。
【００６８】
バッファ群４３へのデータ転送処理は、ステップＳ３００〜Ｓ３０５（図１７）が第１多重通信線２１から受信したデータの転送処理であり、ステップＳ３０６〜Ｓ３１１（図１８）が第２多重通信線２２から受信したデータの転送処理であり、ステップＳ３１２〜Ｓ３１７（図１９）が第３多重通信線２３から受信したデータの転送処理である。なお、ステップＳ３００〜Ｓ３０２，Ｓ３０６〜Ｓ３０８，Ｓ３１２〜Ｓ３１４はバッファ指定手段４４１としての手順であり、ステップＳ３０１〜Ｓ３０４、ステップＳ３０７〜Ｓ３１０、ステップＳ３１３〜Ｓ３１６はデータ転送管理手段４４２Ｂとしての手順である。
【００６９】
ステップＳ３００では第１多重通信線用の受信バッファ４１１が空か否かを確認し、空でなければ、ステップＳ３０１で受信バッファ４１１に入っている受信データのＭＩＤを確認し、ステップＳ３０２で受信データを格納するバッファ４３１の段数を確認する。この場合、当該ＭＩＤが複数のバッファを割り当てたものであれば、格納先はデータが格納されていないものを選択する。データが格納されていない空きバッファ４３１が複数ある場合の選択方法は任意である。また、当該ＭＩＤに割り当てられたすべてのバッファ４３１にデータが格納されてしまっている場合は、同じＭＩＤで送信データリスト４６の最も末尾側のバッファ４３１を受信データの格納先として選択する。次いで、ステップＳ３０３で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００７０】
そして、ステップＳ３０４では送信データリスト４６の末尾に、ステップＳ３０１〜Ｓ３０３にて取得したバッファ情報および転送先管理フラグの初期値を追記する。ここで、転送先管理フラグは、転送すべき多重通信線２１〜２３について「１」とする。なお、ステップＳ３０２において送信データリスト４６の最も末尾側のバッファ４３１を受信データの格納先として選択した場合等、上書きとなる場合には、送信データリスト４６の転送先管理フラグのみを、ステップＳ３０３で取得した転送先に基づいて再設定する。
【００７１】
続くステップＳ３０５では、第１多重通信線用の受信バッファ４１１のデータをバッファ群４３のうち、ステップＳ３０１，３０２で確認した所定のバッファ４３１に転送する。そして第２多重通信線２２から受信したデータの転送処理（ステップＳ３０６〜Ｓ３１１）に移行する。なお、ステップＳ３００において第１多重通信線用の受信バッファ４１１が空のときは、ステップＳ３０１〜Ｓ３０５をスキップし、上記第２多重通信線２２から受信したデータの転送処理（ステップＳ３０６〜Ｓ３１１）に移行する。
【００７２】
ステップＳ３０６では第２多重通信線用の受信バッファ４１２が空か否かを確認し、空でなければ、上記ステップ３０１〜３０５と同様に、ステップＳ３０７で受信バッファ４１２に入っている受信データのＭＩＤを確認し、ステップＳ３０８で受信データを格納するバッファ４３１の段数を確認する。次いで、ステップＳ３０９で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００７３】
次いでステップＳ３１０では、ステップＳ３０７〜Ｓ３０９にて取得したバッファ情報および転送先管理フラグにより送信データリスト４６を更新し、ステップＳ３１１で、第２多重通信線用の受信バッファ４１２のデータをバッファ群４３のうち、ステップＳ３０７，Ｓ３０８で確認した所定のバッファ４３１に転送する。そして第３多重通信線２３から受信したデータの転送処理（ステップＳ３１２〜Ｓ３１８）に移行する。なお、ステップＳ３０６において第２多重通信線用の受信バッファ４１２が空のときは、ステップＳ３０７〜Ｓ３１１をスキップし、上記第３多重通信線２３から受信したデータの転送処理に移行する（ステップＳ３１２〜Ｓ３１７）。
【００７４】
ステップＳ３１２では第３多重通信線用の受信バッファ４１３が空か否かを確認し、空でなければ、上記ステップ３０１〜３０５と同様に、ステップＳ３１３で受信バッファ４１３に入っている受信データのＭＩＤを確認し、ステップＳ３１４で受信データを格納するバッファ４３１の段数を確認する。次いで、ステップＳ３１５で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００７５】
次いでステップＳ３１６では、ステップＳ３１３〜Ｓ３１５にて取得したバッファ情報および転送先管理フラグにより送信データリスト４６を更新し、ステップＳ３１７で、第３多重通信線用の受信バッファ４１３のデータをバッファ群４３のうち、ステップＳ３１４，Ｓ３１５で確認した所定のバッファ４３１に転送し、データの転送処理を終了する。なお、ステップＳ３１２において第３多重通信線用の受信バッファ４１３が空のときは、ステップＳ３１３〜Ｓ３１７をスキップし、データの転送処理を終了する。
【００７６】
次にバッファ４３１から各送信バッファ４２１〜４２３へのデータ転送処理について説明する。ステップＳ４００〜Ｓ４０７（図２０）がバッファ４３１から第１多重通信線用送信バッファ４２１へのデータの転送処理であり、ステップＳ４０８〜Ｓ４１５（図２１）が第２多重通信線用送信バッファ４２２へのデータの転送処理であり、ステップＳ４１６〜Ｓ４２３（図２２）が第３多重通信線用送信バッファ４２３へのデータの転送処理である。ステップＳ４００〜Ｓ４０６、ステップＳ４０８〜Ｓ４１４、ステップＳ４１６〜Ｓ４２２はデータ転送管理手段４２２Ｂとしての手順である。
【００７７】
ステップＳ４００では、第１多重通信線用の送信バッファ４２１が空か否かを確認し、空であればステップＳ４０１に進み送信データリスト４６の第１多重通信線用の転送先管理フラグがすべて「０」か否かを確認する。否定判断されると、すなわちバッファ４３１から第１多重通信線用の送信バッファ４２１に転送すべきデータがあれば、ステップＳ４０２に進んで、第１多重通信線用転送管理フラグが「１」のもののうちで最上位のバッファ情報（ＭＩＤおよび段数）を取得する。続くステップＳ４０３ではバッファ群４３のうち取得したバッファ情報に対応したバッファ４３１のデータを第１多重通信線用の送信バッファ４２１に転送する。そして、送信データリスト４６の、「１」をとる第１多重通信線用転送先管理フラグの最上位のものをクリア（「０」）する。
【００７８】
続くステップＳ４０５では、転送先管理フラグをクリアしたデータの他の転送先管理フラグ、すなわち、第２、第３の多重通信線用の転送先管理フラグを確認し、すべての転送先管理フラグが「０」であれば、ステップＳ４０６で送信バッファ４２１への送信を完了したデータの情報（バッファ情報および転送先管理フラグ）を送信データリスト４６から削除し、以下の低順位の情報を繰り上げる。そして、ステップＳ４０７で、送信バッファ４２１への送信を完了したデータをそのバッファ４３１から削除する。そして、ステップＳ４０８に進む。なお、ステップＳ４０５が肯定判断されると、ステップＳ４０６，Ｓ４０７をスキップしてステップＳ４０８に進む。
【００７９】
このように送信データリスト４６に書き込まれた順に、送信バッファ４２１が空き次第、バッファ４３１からデータが送信バッファ４２１に転送され、そこで第１多重通信線２１への送信待ちの状態となる。なお、ステップＳ４００において送信バッファ４２１にデータが既に書き込まれている場合、ステップＳ４０１が肯定判断された場合、すなわち第１多重通信線２１に転送すべきデータがない場合には、ステップＳ４０８（図２１）に進む。
【００８０】
ステップＳ４０８〜Ｓ４１５では、第２多重通信線用の送信バッファ４２２、これに転送するデータを保持しているバッファ４３１、送信データリスト４６についてステップＳ４００〜Ｓ４０７と同様の手順が行われる。すなわち、第２多重通信線用の送信バッファ４２２が空で（ステップＳ４０８）、送信データリスト４６の第２多重通信線用転送先管理フラグに「１」のものがあれば（ステップＳ４０９）、第２多重通信線用転送先管理フラグが「１」のもののうちで最上位のバッファ情報を取得し（ステップＳ４１０）、取得したバッファ情報に対応したバッファ４３１のデータを送信バッファ４２２に転送する（ステップＳ４１１）。そして、送信データリスト４６の第２多重通信線用転送先管理フラグの最上位のものをクリアする（ステップＳ４１２）。
【００８１】
次いで、ステップＳ４１３で、転送したデータについての、他の転送先管理フラグ、すなわち、第１、第３の多重通信線用の転送先管理フラグを確認し、すべての転送先管理フラグが「０」であれば、ステップＳ４１４で、送信バッファ４２２への送信を完了したデータの情報を送信データリスト４６から削除し、低順位の情報を繰り上げ、ステップＳ４１５で、送信バッファ４２２への送信を完了したデータをそのバッファ４３１から削除する。そして、ステップＳ４１６（図２２）に進む。
【００８２】
ステップＳ４１６〜Ｓ４２３では、第３多重通信線用の送信バッファ４２３、これに転送するデータを保持しているバッファ４３１、送信データリスト４６についてステップＳ４００〜Ｓ４０７と同様の手順が行われる。すなわち、第３多重通信線用の送信バッファ４２３が空で（ステップＳ４１６）、送信データリスト４６の第３多重通信線用転送先管理フラグに「１」のものがあれば（ステップＳ４１７）、第３多重通信線用転送先管理フラグが「１」のもののうちで最上位のバッファ情報を取得し（ステップＳ４１８）、取得したバッファ情報に対応したバッファ４３１のデータを送信バッファ４２３に転送する（ステップＳ４１９）。そして、送信データリスト４６の第３多重通信線用転送先管理フラグの最上位のものをクリアする（ステップＳ４２０）。
【００８３】
次いで、ステップＳ４２１で、転送したデータについての、他の転送先管理フラグ、すなわち、第１、第２の多重通信線用の転送先管理フラグを確認し、すべての転送先管理フラグが「０」であれば、ステップＳ４２２で、送信バッファ４２３への送信を完了したデータの情報を送信データリスト４６から削除し、低順位の情報を繰り上げ、ステップＳ４２３で、送信バッファ４２３への送信を完了したデータをそのバッファ４３１から削除する。これにより、バッファ４３１から送信バッファ４２１〜４２３へのデータ転送が完了する。
【００８４】
データコントローラ４４Ｂのデータ転送処理は上記のごとく設定されており、送信データリスト４６は、多重通信線２１〜２３へ送信すべきデータの情報が更新されていく。送信データリスト４６の上位のものは早く受信されたデータのものである。したがって、各多重通信線２１〜２３のそれぞれにおいて、中継すべきデータが受信された順に送信バッファ４２１〜４２３において送信待ちの状態になる。すべてのバッファ４３１についてデータの有無を確認しなくとも、バッファ４３１に書き込まれた送信すべきデータが格納されたバッファが送信データリスト４６から知られるので、データの中継を速やかに行うことができる。
【００８５】
（第４実施形態）
図２３に本発明の第４実施形態になるデータ中継装置および多重通信システムを示す。第３実施形態との相違点を中心に説明する。
【００８６】
データ中継装置４Ｃは、各多重通信線２１〜２３ごとに送信データリスト４６１，４６２，４６３が設けてある。送信データリスト４６１〜４６３は各多重通信線２１〜２３に送信するデータを格納したバッファの情報（ＭＩＤおよび段数）が送信順に書き込まれたもので、模式的には図２４（Ａ）、図２４（Ｂ）、図２４（Ｃ）のごとく表せる。転送先管理フラグを含まない点で第３実施形態の送信データリストと相違している。図の例では、第１多重通信線２１への送信順番が１位はＭＩＤ＝Ｃ８ｈ、段数２のバッファ４３１に格納されたデータであり、第２位はＭＩＤ＝９２ｈ、段数１のバッファ４３１のデータであることを示している。送信データリスト４６１〜４６３の記憶領域はデータ中継装置４Ｃを構成するＲＡＭ上に設定される。
【００８７】
データコントローラ４４Ｃには、受信バッファ４１１〜４１３からバッファ群４３へのデータ転送処理時に起動されるデータ転送管理手段４４２Ｃが設けてある。
【００８８】
データコントローラ４Ｃで実行されるデータ転送処理を図２５、図２６、図２７、図２８、図２９、図３０により説明する。図２５〜図２７は受信バッファ４１１〜４１３からバッファ群４３へのデータ転送処理であり、図２８〜図３０はバッファ群４３から送信バッファ４２１〜４２３へのデータ転送処理である。
【００８９】
バッファ群４３へのデータ転送処理は、ステップＳ５００〜Ｓ５０８（図２５）が第１多重通信線２１から受信したデータの転送処理であり、ステップＳ５０９〜Ｓ５１７（図２６）が第２多重通信線２２から受信したデータの転送処理であり、ステップＳ５１８〜Ｓ５２６（図２７）が第３多重通信線２３から受信したデータの転送処理である。なお、ステップＳ５００〜Ｓ５０２，Ｓ５０９〜Ｓ５１１，Ｓ５１８〜Ｓ５２０はバッファ指定手段４４１としての手順であり、ステップＳ５０１〜Ｓ５０７，ステップＳ５１０〜Ｓ５１６，ステップＳ５１９〜Ｓ５２５はデータ転送管理手段４４２Ｃとしての手順である。
【００９０】
ステップＳ５００では第１多重通信線用の受信バッファ４１１が空か否かを確認し、空でなければ、ステップＳ５０１で受信バッファ４１１に入っている受信データのＭＩＤを確認し、ステップＳ５０２で当該ＭＩＤのデータを格納するバッファ４３１の段数を確認する。次いで、ステップＳ５０３で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００９１】
続くステップＳ５０４では取得された転送先に第２多重通信線用の送信バッファ４２２があるか否かを確認し、肯定されればステップＳ５０５に進む。ステップＳ５０５では、第２多重通信線２２用の送信データリスト４６２の末尾に、ステップＳ５０１，Ｓ５０２にて確認されたバッファ情報（ＭＩＤおよび段数）を追記し、ステップＳ５０６に進む。ステップＳ５０６では、取得された転送先に第３多重通信線用の送信バッファ４２３があるか否かを確認し、肯定されればステップＳ５０７に進む。ステップＳ５０７では、第３多重通信線２３用の送信データリスト４６３の末尾に、ステップＳ５０１，Ｓ５０２にて確認されたバッファ情報（ＭＩＤおよび段数）を追記しステップＳ５０８に進む。なお、ステップＳ５０５，Ｓ５０７において送信データリスト４６２，４６３に既に同じバッファ情報がある場合には、バッファ情報を追記するともに送信データリスト４６２，４６３に既に書かれたバッファ情報を削除する。
【００９２】
ステップＳ５０８では、第１多重通信線用の受信バッファ４１１のデータをバッファ群４３のうち、バッファ情報で特定される所定のバッファ４３１に転送する。そして第２多重通信線２２から受信したデータの転送処理（ステップＳ５０９〜Ｓ５１７）に移行する。なお、ステップＳ５００において第１多重通信線用の受信バッファ４１１が空のときは、第２、第３多重通信線用の送信データリスト４６２，４６３への追記処理（ステップＳ５０１〜Ｓ５０７）およびデータ転送処理（ステップＳ５０８）をスキップし、上記第２多重通信線２２から受信したデータの転送処理（ステップＳ５０９〜Ｓ５１７）に移行する。
【００９３】
ステップＳ５０９では第２多重通信線用の受信バッファ４１２が空か否かを確認し、空でなければ、ステップＳ５１０で受信バッファ４１２に入っている受信データのＭＩＤを確認し、ステップＳ５１１で当該ＭＩＤのデータを格納するバッファ４３１の段数を確認する。次いで、ステップＳ５１２で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００９４】
続くステップＳ５１３では取得された転送先に第１多重通信線用の送信バッファ４２１があるか否かを確認し、肯定されればステップＳ５１４に進む。ステップＳ５１４では、第１多重通信線２１用の送信データリスト４６１の末尾に、ステップＳ５１０，Ｓ５１１にて確認されたバッファ情報（ＭＩＤおよび段数）を追記し、ステップＳ５１５に進む。ステップＳ５１５では、取得された転送先に第３多重通信線用の送信バッファ４２３があるか否かを確認し、肯定されればステップＳ５１６に進む。ステップＳ５１６では、第３多重通信線２３用の送信データリスト４６３の末尾に、ステップＳ５１０，Ｓ５１１にて確認されたバッファ情報（ＭＩＤおよび段数）を追記しステップＳ５１７に進む。なお、ステップＳ５１４，Ｓ５１６において送信データリスト４６１，４６３に既に同じバッファ情報がある場合には、バッファ情報を追記するともに送信データリスト４６１，４６３に既に書かれたバッファ情報を削除する。
【００９５】
ステップＳ５１７では、第２多重通信線用の受信バッファ４１２のデータを、バッファ群４３のうちバッファ情報で特定されるバッファ４３１に転送する。そして第３多重通信線２３から受信したデータの転送処理（ステップＳ５１８〜Ｓ５２６）に移行する。なお、ステップＳ５０９において第２多重通信線用の受信バッファ４１２が空のときは、第１、第３多重通信線用の送信データリスト４６１，４６３への追記処理（ステップＳ５１０〜Ｓ５１６）およびデータ転送処理（ステップＳ５１７）をスキップし、上記第３多重通信線２３から受信したデータの転送処理（ステップＳ５１８〜Ｓ５２６）に移行する。
【００９６】
ステップＳ５１８では第３多重通信線用の受信バッファ４１３が空か否かを確認し、空でなければ、ステップＳ５１９で受信バッファ４１３に入っている受信データのＭＩＤを確認し、ステップＳ５２０で当該ＭＩＤのデータを格納するバッファ４３１の段数を確認する。次いで、ステップＳ５２１で上記データ転送先テーブル４５に基づいて受信データの転送先を取得する。
【００９７】
続くステップＳ５２２では取得された転送先に第１多重通信線用の送信バッファ４２１があるか否かを確認し、肯定されればステップＳ５２３に進む。ステップＳ５２３では、第１多重通信線２１用の送信データリスト４６１の末尾に、ステップＳ５１９，Ｓ５２０にて確認されたバッファ情報（ＭＩＤおよび段数）を追記し、ステップＳ５２４に進む。ステップＳ５２４では、取得された転送先に第２多重通信線用送信バッハ４２２があるか否かを確認し、肯定されればステップＳ５２５に進む。ステップＳ５２５では、第２多重通信線２２用の送信データリスト４６２の末尾に、ステップＳ５１９，Ｓ５２０にて確認されたバッファ情報（ＭＩＤおよび段数）を追記しステップＳ５２６に進む。なお、ステップＳ５２３，Ｓ５２５において送信データリスト４６１，４６２に既に同じバッファ情報がある場合には、バッファ情報を追記するともに送信データリスト４６１，４６２に既に書かれたバッファ情報を削除する。
【００９８】
ステップＳ５２６では、第３多重通信線用の受信バッファ４１３のデータを、バッファ群４３のうちバッファ情報で特定される所定のバッファ４３１に転送し、受信バッファ４１１〜４１３からバッファ４３１へのデータ転送処理を終了する。なお、ステップＳ５１８において第３多重通信線用の受信バッファ４１３が空のときは、第１、第２多重通信線用の送信データリスト４６１，４６２への追記処理（ステップＳ５１９〜Ｓ５２５）およびデータ転送処理（ステップＳ５２６）をスキップし、データ転送処理を終了する。
【００９９】
次にバッファ４３１から各送信バッファ４２１〜４２３へのデータ転送処理について説明する。ステップＳ６００〜Ｓ６０６（図２８）がバッファ４３１から第１多重通信線用送信バッファ４２１へのデータの転送処理であり、ステップＳ６０７〜Ｓ６１３（図２９）が第２多重通信線用送信バッファ４２２へのデータの転送処理であり、ステップＳ６１４〜Ｓ６２０（図３０）が第３多重通信線用送信バッファ４２３へのデータの転送処理である。ステップＳ６０１〜Ｓ６０４、ステップＳ６０８〜Ｓ６１１、ステップＳ６１５〜Ｓ６１８はデータ転送管理手段４４２Ｃとしての手順である。
【０１００】
ステップＳ６００では、第１多重通信線用の送信バッファ４２１が空か否かを確認し、空であればステップＳ６０１に進み第１多重通信線用の送信データリスト４６１が空か否かを確認する。送信データリスト４６１が空でない、すなわちバッファ４３１から送信バッファ４２１に転送すべきデータがあれば、ステップＳ６０２に進んで上記送信データリスト４６１の先頭のバッファ情報を取得する。続く、ステップＳ６０３ではバッファ群４３のうち取得したバッファ情報で特定されるバッファ４３１のデータを第１多重通信線用の送信バッファ４２１に転送する。次いで、送信データリスト４６１の先頭のバッファ情報すなわちステップＳ６０３で転送したデータの情報を削除し、低順位の情報を繰り上げる。
【０１０１】
続くステップＳ６０５では第２、第３多重通信線用送信データリスト６４２，６４３に、ステップＳ６０４で削除したバッファ情報と同じものがあるか否かを判定し、否定されると、ステップＳ６０６で、ステップＳ６０３で転送を完了したデータが格納されたバッファ４３１からデータを削除し、ステップＳ６０５に進む。このように送信データリスト４６１に書き込まれた順に、送信バッファ４２１が空き次第、バッファ４３１からデータが送信バッファ４２１に転送され、そこで第１多重通信線２１への送信待ちの状態となる。なお、ステップＳ６００において送信バッファ４２１にデータが既に書き込まれている場合、ステップＳ６０１において送信データリスト４６１が空で転送すべきデータがない場合には、ステップＳ６０２〜Ｓ６０６をスキップしてステップＳ６０７（図２９）に進む。
【０１０２】
ステップＳ６０７〜Ｓ６１３では、第２多重通信線用の送信バッファ４２２、これに転送するデータを保持しているバッファ４３１、送信データリスト４６２についてステップＳ６００〜Ｓ６０６と同様の手順が行われる。すなわち、第２多重通信線用の送信バッファ４２２が空で（ステップＳ６０７）、第２多重通信線用の送信データリスト４６２に書き込みがあれば（ステップＳ６０８）、送信データリスト４６２の先頭のバッファ情報を読み（ステップＳ６０９）、当該バッファ情報で特定されるバッファ４３１からデータを送信バッファ４２２に転送する（ステップＳ６１０）。そして送信データリスト４６２の先頭のデータのバッファ情報、すなわちこの転送の済んだデータのバッファを削除し以下の低順位の情報を繰り上げる（ステップＳ６１１）。
【０１０３】
次いで、第１、第３多重通信線用送信データリスト６４１，６４３に、ステップＳ６１１で削除したバッファ情報と同じものがなければ（ステップＳ６１２）、ステップＳ６１０で転送を完了したデータが格納されたバッファ４３１からデータを削除し（ステップＳ６１３）、ステップＳ６１４（図３０）に進む。
【０１０４】
ステップＳ６１４〜Ｓ６２０では、第３多重通信線用の送信バッファ４２３、これに転送するデータを保持しているバッファ４３１、送信データリスト４６３についてステップＳ６００〜Ｓ６０６と同様の手順が行われる。すなわち、第３多重通信線用の送信バッファ４２３が空で（ステップＳ６１４）、第３多重通信線用の送信データリスト４６３に書き込みがあれば（ステップＳ６１５）、送信データリスト４６３の先頭のバッファ情報を読み（ステップＳ６１６）、当該バッファ情報で特定されるバッファ４３１からデータを送信バッファ４２３に転送する（ステップＳ６１７）。そして送信データリスト４６３の先頭のデータのバッファ情報、すなわちこの転送の済んだデータのバッファ情報を削除し以下の低順位の情報を繰り上げる（ステップＳ６１８）。
【０１０５】
次いで、第１、第２多重通信線用送信データリスト６４１，６４２に、ステップＳ６１８で削除したバッファ情報と同じものがなければ（ステップＳ６１９）、ステップＳ６１７で転送を完了したデータが格納されたバッファ４３１からデータを削除し（ステップＳ６２０）、バッファ４３１から送信バッファ４２１〜４２３への転送処理を終了する。
【０１０６】
データコントローラ４４Ｃのデータ転送処理は上記のごとく設定されており、各送信データリスト４６１〜４６３は、対応する多重通信線２１〜２３へ送信すべきデータのバッファ情報が更新されていく。送信データリスト４６１〜４６３内の順番は受信された順である。例えば上記図２４の例で、第１多重通信線用の送信データリスト４６１は、バッファ群４３１から送信順番第１位のＣ８ｈのデータが送信バッファ４２１に転送され、送信データリスト４６１からバッファ情報（ＭＩＤ＝Ｃ８ｈ、段数２）が削除されたとすると、このバッファ情報（ＭＩＤ＝Ｃ８ｈ、段数２）は第２、第３多重通信線用の送信データリスト４６２，４６３を含めてなくなっている。これより、バッファ情報（ＭＩＤ＝Ｃ８ｈ、段数２）で特定されるバッファ４３１のデータはすべての転送を完了していることが知られ、バッファ４３１から削除されることになる。
【０１０７】
なお、同じＭＩＤ＝Ｃ８ｈのデータでも、第２多重通信線用の送信データリスト４６２で送信順番第１位のバッファ情報（ＭＩＤ＝Ｃ８ｈ、段数１）のデータが送信されても、同じバッファ情報が第１多重通信線用の送信データリスト４６１にあり、第２多重通信線用の送信データリスト４６２からバッファ情報（ＭＩＤ＝Ｃ８ｈ、段数１）が削除されても、バッファ４３１に格納されたデータは削除されず、第１多重通信線用の送信バッファ４２１に送信されるまで基本的に保持される。
【０１０８】
これにより、第３実施形態と同様に、すべてのバッファ４３１についてデータの有無を確認しなくとも、バッファ４３１に書き込まれた送信すべきデータが格納されたバッファ４３１が送信データリスト４６１〜４６３から知られるので、データの中継を速やかに行うことができる。また、各多重通信線２１〜２３への送信順番が受信した順番となるので、すべての受信データを延滞することなく確実に送信することができる。
【０１０９】
また、各送信データリスト４６１〜４６３には多重通信線２１〜２３ごとにバッファ情報が転送する順番に並んでいるから、複数の多重通信線２１〜２３のそれぞれに対応して同じＭＩＤのバッファ情報が複数並んだ場合、ある送信バッファ４２１〜４２３への転送が済んでも当該データは削除されないが、同じ送信バッファ４２１〜４２３に次に転送すべきデータを間違えることがない。
【０１１０】
また、一部のＭＩＤ、図例ではＣ８ｈ等については、複数のバッファ４３１を割り当てることで、データ中継装置４Ｃが相前後して受信した同一ＭＩＤの複数のデータを、いずれも送信すべきデータとして送信データリスト４６１〜４６３にエントリすることができるので、データ消失に対する耐性を高めることができる。
【０１１１】
なお、上記各実施形態では、データを受信してバッファの空きがない場合には上書きするとしているが、データコンローラを、受信バッファにデータを保持したまま、バッファへの転送を一時、保留するように設定してもよい。その間にバッファが空けば、上書きを回避することができる。この場合、図３１に示すように、多重通信線２１ごとに受信バッファ４１１を複数設けてＦＩＦＯ型でデータ処理し、バッファ４３１での上書きの回避と、多重通信線２１からのデータ受信作動の確保との両立を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１のデータ中継装置および多重通信システムの構成図である。
【図２】本発明の第１のデータ中継装置および多重通信システムの通信データのフレーム構造を示す図である。
【図３】本発明の第１のデータ中継装置および多重通信システムの通信データの種類とそのＭＩＤの対応関係を示す図である。
【図４】本発明の第１のデータ中継装置のバッファの模式図である。
【図５】本発明の第１のデータ中継装置の転送先テーブルにおけるデータとその転送先の対応関係を示す図である。
【図６】本発明の第１のデータ中継装置のデータコントローラにおいて実行される制御を示す第１のフローチャートである。
【図７】本発明の第１のデータ中継装置のデータコントローラにおいて実行される制御を示す第２のフローチャートである。
【図８】本発明の第１のデータ中継装置のデータコントローラにおいて実行される制御を示す第３のフローチャートである。
【図９】本発明の第１のデータ中継装置のデータコントローラにおいて実行される制御を示す第４のフローチャートである。
【図１０】（Ａ），（Ｂ）はそれぞれ本発明の第１のデータ中継装置の作動を示す図である。
【図１１】（Ａ）は上記データコントローラの設定を示す図であり、（Ｂ），（Ｃ）はそれぞれ変形例の設定を示す図である。
【図１２】本発明のデータ中継装置および多重通信システムの変形例を示す構成図である。
【図１３】本発明の第２のデータ中継装置および多重通信システムの構成図である。
【図１４】本発明の第２のデータ中継装置のデータコントローラにおいて実行される制御を示すフローチャートである。
【図１５】本発明の第３のデータ中継装置および多重通信システムの構成図である。
【図１６】本発明の第３のデータ中継装置の送信データリストの構成を示す図である。
【図１７】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第１のフローチャートである。
【図１８】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第２のフローチャートである。
【図１９】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第３のフローチャートである。
【図２０】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第４のフローチャートである。
【図２１】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第５のフローチャートである。
【図２２】本発明の第３のデータ中継装置のデータコントローラにおいて実行される制御を示す第６のフローチャートである。
【図２３】本発明の第４のデータ中継装置および多重通信システムの構成図である。
【図２４】（Ａ），（Ｂ），（Ｃ）はそれぞれ本発明の第４のデータ中継装置の送信データリストの構成を示す図である。
【図２５】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第１のフローチャートである。
【図２６】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第２のフローチャートである。
【図２７】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第３のフローチャートである。
【図２８】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第４のフローチャートである。
【図２９】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第５のフローチャートである。
【図３０】本発明の第４のデータ中継装置のデータコントローラにおいて実行される制御を示す第６のフローチャートである。
【図３１】本発明のデータ中継装置および多重通信システムの別の変形例を示す構成図である。
【図３２】従来のデータ中継装置および多重通信システムの代表例の構成図である。
【図３３】通信データの本体の模式図である。
【符号の説明】
１１，１２，１３  通信系
２１，２２，２３  多重通信線
３１，３２，３３  通信ノード
４，４Ａ，４Ｂ，４Ｃ  データ中継装置
４１１，４１２，４１３  受信バッファ
４２１，４２２，４２３  送信バッファ
４３  バッファ群
４３１  バッファ
４４，４４Ａ，４４Ｂ，４４Ｃ  データコントローラ
４４１  バッファ指定手段
４４２，４４２Ａ，４４２Ｂ，４４２Ｃ  データ転送管理手段
４５  転送先テーブル
４６，４６１，４６２，４６３  送信データリスト
【図１】
0003789769.tif 000002
【図２】
0003789769.tif 000003
【図３】
0003789769.tif 000004
【図４】
0003789769.tif 000005
【図５】
0003789769.tif 000006
【図６】
0003789769.tif 000007
【図７】
0003789769.tif 000008
【図８】
0003789769.tif 000009
【図９】
0003789769.tif 000010
【図１０】
0003789769.tif 000011
【図１１】
0003789769.tif 000012
【図１２】
0003789769.tif 000013
【図１３】
0003789769.tif 000014
【図１４】
0003789769.tif 000015
【図１５】
0003789769.tif 000016
【図１６】
0003789769.tif 000017
【図１７】
0003789769.tif 000018
【図１８】
0003789769.tif 000019
【図１９】
0003789769.tif 000020
【図２０】
0003789769.tif 000021
【図２１】
0003789769.tif 000022
【図２２】
0003789769.tif 000023
【図２３】
0003789769.tif 000024
【図２４】
0003789769.tif 000025
【図２５】
0003789769.tif 000026
【図２６】
0003789769.tif 000027
【図２７】
0003789769.tif 000028
【図２８】
0003789769.tif 000029
【図２９】
0003789769.tif 000030
【図３０】
0003789769.tif 000031
【図３１】
0003789769.tif 000032
【図３２】
0003789769.tif 000033
【図３３】
0003789769.tif 000034