(57)【要約】【課題】データの転送処理時間を短くしたゲートウェイ装置を提供すること。【解決手段】複数バスの間に設けられ、基本周期毎に前記バス間のデータを転送するゲートウェイ装置において、前記バスから受信した前記データを記憶する第１の記憶手段と、前記データを前記バスに転送するために前記データを記憶する第２の記憶手段と、前記第１の記憶手段に記憶された前記データを前記基本周期毎に前記第２の記憶手段に送信セットする制御手段とを備え、前記基本周期毎に前記送信セットする前記データ数には上限値が設定され、前記制御手段は前記上限値以内の前記データ数を前記第２の記憶手段に送信セットする、ことを特徴としている。【選択図】  図５
2006253922.tif 000002
【特許請求の範囲】
【請求項１】
複数バスの間に設けられ、基本周期毎に前記バス間のデータを転送するゲートウェイ装置において、
前記バスから受信した前記データを記憶する第１の記憶手段と、
前記データを前記バスに転送するために前記データを記憶する第２の記憶手段と、
前記第１の記憶手段に記憶された前記データを前記基本周期毎に前記第２の記憶手段に送信セットする制御手段とを備え、
前記基本周期毎に前記送信セットする前記データ数には上限値が設定され、前記制御手段は前記上限値以内の前記データ数を前記第２の記憶手段に送信セットする、ことを特徴とするゲートウェイ装置。
【請求項２】
請求項１記載のゲートウェイ装置において、
前記上限値は、前記基本周期内に前記第２の記憶手段から前記バスに転送される前記データのデータ数である、ことを特徴とするゲートウェイ装置。
【請求項３】
請求項１記載のゲートウェイ装置において、
前記制御手段は、前記上限値を超えるデータを次の前記基本周期まで送信セットしない、ことを特徴とするゲートウェイ装置。
【請求項４】
請求項１記載のゲートウェイ装置において、
前記データは、前記バス内を転送する一通信単位であるフレームであって、
前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数である、ことを特徴とするゲートウェイ装置。
【請求項５】
請求項４記載のゲートウェイ装置において、
前記上限値は、前記フレームのうち最大フレーム長を基準にしたフレーム数である、ことを特徴とするゲートウェイ装置。
【請求項６】
請求項４記載のゲートウェイ装置において、
前記上限値は、前記フレームのうち最短フレーム長を基準にしたフレーム数である、ことを特徴とするゲートウェイ装置。
【請求項７】
請求項４記載のゲートウェイ装置において、
前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数から算出したビット数である、ことを特徴とするゲートウェイ装置。
【請求項８】
請求項４記載のゲートウェイ装置において、
前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数から算出したバイト数である、ことを特徴とするゲートウェイ装置。
【請求項９】
請求項１記載のゲートウェイ装置において、
前記データには前記バスの優先度を示す識別子が含まれ、前記データが同時に前記バスに送信されるときは前記識別子に基づく優先度の最も高い前記データに前記バスの送信権が与えられる、ことを特徴とするゲートウェイ装置。
【請求項１０】
複数バスの間に設けられ、前記バスから受信したデータを記憶する第１の記憶手段と、前記データを前記バスに転送するために前記データを記憶する第２の記憶手段と、制御手段とを備えたゲートウェイ装置におけるデータ転送方法において、
前記制御手段によって、前記第１の記憶手段に記憶された前記データを前記基本周期毎
に前記第２の記憶手段に送信セットする第１のステップと、
前記第１のステップで前記第２の記憶手段に記憶された前記データを前記基本周期内で前記制御手段によって前記バスに転送する第２のステップとを備え、
前記第１のステップにおいて、前記基本周期毎に前記送信セットする前記データ数には上限値が設定され、前記上限値以内の前記データ数が前記第２の記憶手段に送信セットされる、ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバス間のデータを中継するゲートウェイ装置及びゲートウェイ装置におけるデータ転送方法に関する。詳しくは、メモリに蓄積されたフレームの送信用コントローラバッファへの転送処理に上限値を設定したゲートウェイ装置等に関する。
【背景技術】
【０００２】
従来から、主として自動車の車載ネットワークとしてＣＡＮ（Controller Area Network）と呼ばれる通信プロトコルが採用されている（例えば、以下の非特許文献１及び２）
。ＣＡＮは、ＩＳＯ（International Organization for Standardization）で国際的に標準化されたシリアル通信プロトコルである。最近では、その高い性能と信頼性とから車内ＬＡＮ以外にも、船舶、医療機器等多方面で採用されている。
【０００３】
このようなＣＡＮを利用した車内ネットワークシステムでは、非特許文献１に記載されているように、自動車のハードウェアを制御する複数のＥＣＵ（Electric Control Unit
）がＣＡＮバスを介して接続され、更に、各バス間がゲートウェイ装置を介して接続される。例えば、エンジンやトランスミッション等を制御するＥＣＵを接続するエンジン系のＣＡＮバスと、ＶＩＣＳナビなどを制御するＥＣＵを接続する情報系のＣＡＮバスとがゲートウェイ装置を介して接続される。かかるゲートウェイ装置は、異なるＣＡＮバス間のプロトコルの翻訳を行うとともに、一方のＣＡＮバス内のＥＣＵから送信されたメッセージを他方のＣＡＮバス内のＥＣＵに転送する役割を果たす。
【０００４】
ＣＡＮプロトコルの特徴は、（１）バスが空いているときに、すべてのノード（ＥＣＵ）がメッセージ（以下、「フレーム」と称す。ＣＡＮプロトコルにおける通信単位である）の送信を始めることができるマルチマスタ方式が採用され、（２）バスに早くアクセスしたノードがフレームの送信権を得、（３）同時に複数のノードが送信を始めると、優先順位の高い識別子（ＩＤ）のフレームを送信するノードが送信権を得る、等が上げられる。なお、この識別子は、送信フレームに付加されるものであるが、フレームの送り先を示すものではなく、ＣＡＮバスにアクセスする際の優先順位を示すものである。
【０００５】
このようなマルチマスタ通信において、フレームを送信するノードはバスの通信状態や負荷に関係なくノードを構成するデバイス毎の周期にて送信を行う。また、自動車のスイッチ入力情報やエンジンの回転数など値の変化に応じてイベント送信を行うノードは、バスの通信状態等に関係なく発生したイベントに応じてフレームの送信が行われる。そして、同時にフレームが送信されると上述したＩＤにより調停（アービトレーション）が行われ、送信権を獲得したフレームが優先される。
【０００６】
一方、ゲートウェイ装置は、一般に各デバイスから送信されるフレームを格納するメモリとフレームの送受信を行う送信用コントローラ及び受信用コントローラとを備える。更に、各コントローラには送受信されるフレームを格納するバッファを備える。例えば、図１０に示すように、メモリに蓄積されたフレームは、ゲートウェイ装置内のＣＰＵによって送信用コントローラ内のバッファに転送セットされ、基本周期毎にバッファからバスに出力される。
【非特許文献１】「ＣＡＮ入門書」 www.renesas.com
【非特許文献２】「ＣＡＮとは？」 www.toyo.co.jp/car/CAN/CAN_General.htm
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ゲートウェイ装置は受信したフレームを送信先のノードに転送させることができずに、メモリ内にフレームを蓄積し続ける場合がある。一般に、ＣＡＮプロトコルではフレームを受信した送信先のノードはフレームを受信したことを示すアクノリッジ信号をフレームに付加して送信元のノードに返信する。しかし、送信先のノードにショートやバスの断線などが発生すると、送信先のノードはアクノリッジ信号を付加したフレームを返信することができない。そして、送信元のノードはこのアクノリッジ信号を認識できずに何度も送信先のノードに対してフレームを送信し続ける。このような場合に、ゲートウェイ装置のメモリに送信されたフレームが蓄積し続けることとなる。
【０００８】
そして、メモリ内にフレームが蓄積され続けると、１基本周期（例えば１ｍｓ）内に送信できるフレーム数を超える、メモリからコントローラバッファへの転送処理が行われる状況が発生する。
【０００９】
例えば、前述した図１０に示すように、基本周期内に送信可能なフレーム数が「４」、コントローラバッファにはフレーム１からフレーム４が格納され、メモリにはフレーム１からフレーム９まで格納された場合を考える。かかる場合に、コントローラバッファに送信すべきフレーム１から４が格納された状態で、フレーム５の転送セット処理をＣＰＵが行おうとすると、フレーム１（又はフレーム２乃至４）の転送が終了してバッファの領域が開放されるまで、ＣＰＵは「空きまち」の状態となる。さらに、メモリにフレーム６、７、・・・と蓄積された場合、これらの送信セット処理を行うと更にＣＰＵの処理待ち時間が発生する。図９は、かかる状態を説明するための図である。図に示すように、ＣＰＵは、１基本周期内にすべて送信セット処理に費やせれ、その他の処理（例えば、受信処理など）を実行することができなくなってしまう。
【００１０】
そこで、本発明は上記問題点に鑑みてなされたもので、その目的は、データの転送処理時間を短くしたゲートウェイ装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、複数バスの間に設けられ、基本周期毎に前記バス間のデータを転送するゲートウェイ装置において、前記バスから受信した前記データを記憶する第１の記憶手段と、前記データを前記バスに転送するために前記データを記憶する第２の記憶手段と、前記第１の記憶手段に記憶された前記データを前記基本周期毎に前記第２の記憶手段に送信セットする制御手段とを備え、前記基本周期毎に前記送信セットする前記データ数には上限値が設定され、前記制御手段は前記上限値以内の前記データ数を前記第２の記憶手段に送信セットすることを特徴としている。これにより、例えば、第１の記憶手段から第２の記憶手段に送信セットされるデータのデータ数が上限値以内に抑えられるため、制御手段は基本周期内すべて送信セットの処理に費やされることがなく、データの転送処理時間を短くすることができる。
【００１２】
また、本発明は上記ゲートウェイ装置において、前記上限値は、前記基本周期内に前記第２の記憶手段から前記バスに転送される前記データのデータ数であることを特徴としている。これにより、例えば、第２の記憶手段からバスに基本周期内で転送されるデータのデータ数以下のデータが送信セットされるため、第２の記憶手段から確実にバスにデータが転送される。
【００１３】
更に、本発明は上記ゲートウェイ装置において、前記制御手段は、前記上限値を超えるデータを次の前記基本周期まで送信セットしないことを特徴としている。これにより、例えば、基本周期内で第１の記憶手段から第２の記憶手段に送信セットされなかったデータは次の基本周期に持ち越されることになり、次の基本周期で確実にバスに送信することができる。
【００１４】
更に、本発明は上記ゲートウェイ装置において、前記データは、前記バス内を転送する一通信単位であるフレームであって、前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数であることを特徴としている。これにより、例えば、基本周期内で第１の記憶手段から第２の記憶手段に送信セットされるフレームの数が上限値以内に抑えられ、フレームの転送処理時間を短くすることができる。
【００１５】
更に、本発明は上記ゲートウェイ装置において、前記上限値は、前記フレームのうち最大フレーム長を基準にしたフレーム数であることを特徴としている。これにより、例えば、長いフレーム長を有するフレームであっても、第２の記憶手段から送信されるフレーム数分だけ第１の記憶手段から第２の記憶手段に送信セットされるため、制御手段で送信セットの待ち時間が短くなり、確実に第２の記憶手段からバスにデータが送信される。
【００１６】
更に、本発明は上記ゲートウェイ装置において、前記上限値は、前記フレームのうち最短フレーム長を基準にしたフレーム数であることを特徴としている。これにより、例えば、確実に送信できるフレーム数のみ送信セットされるため、確実にバスにフレームを送信することができる。
【００１７】
更に、本発明は上記ゲートウェイ装置において、前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数から算出したビット数であることを特徴としている。これにより、例えば、送信セットされる最大フレーム数を高い精度で算出でき、持ち越しフレームを最小限に抑えることができる。
【００１８】
更に、本発明は上記ゲートウェイ装置において、前記上限値は、前記基本周期毎に前記第２の記憶手段から前記バスに転送される前記フレームのフレーム数から算出したバイト数であることを特徴としている。これにより、例えば、バイト数演算のための算出時間に関し、ビット数を基準にした場合と比較して短くすることができ、できるだけ多くのフレームの送信セット、更にはバスへの転送を行うことができる。
【００１９】
更に、本発明は上記ゲートウェイ装置において、前記データには前記バスの優先度を示す識別子が含まれ、前記データが同時に前記バスに送信されるときは前記識別子に基づく優先度の最も高い前記データに前記バスの送信権が与えられることを特徴としている。これにより、例えば、ＩＳＯで規格化されたＣＡＮプロトコルを本発明に適用することができる。
【００２０】
また、上記目的を達成するために本発明は、複数バスの間に設けられ、前記バスから受信したデータを記憶する第１の記憶手段と、前記データを前記バスに転送するために前記データを記憶する第２の記憶手段と、制御手段とを備えたゲートウェイ装置におけるデータ転送方法において、前記制御手段によって、前記第１の記憶手段に記憶された前記データを前記基本周期毎に前記第２の記憶手段に送信セットする第１のステップと、前記第１のステップで前記第２の記憶手段に記憶された前記データを前記基本周期内で前記制御手段によって前記バスに転送する第２のステップとを備え、前記第１のステップにおいて、前記基本周期毎に前記送信セットする前記データ数には上限値が設定され、前記上限値以内の前記データ数が前記第２の記憶手段に送信セットされることを特徴としている。これにより、例えば、第１の記憶手段から第２の記憶手段に送信セットされるデータのデータ数が上限値以内に抑えられるため、制御手段は基本周期内すべて送信セットの処理に費やされることがなく、データの転送処理時間を短くすることができる。
【発明の効果】
【００２１】
本発明によれば、ゲートウェイ装置は第１の記憶手段から第２の記憶手段への送信セットの処理でそのデータ数に上限値が設定されているので、基本周期内でその上限値より多くのデータが送信セットされることはない。従って、本発明に係るゲートウェイ装置は基本周期内でデータの転送処理に費やされる時間を短くすることができる。
【発明を実施するための最良の形態】
【００２２】
本発明を実施するための最良の形態について、以下図面を参照しながら説明する。図１は、本発明が適用される車載ネットワークシステム１の一例である。
【００２３】
車載ネットワークシステム１は、図１に示すように、ノードＡ２１からノードＦ２６と、ゲートウェイ制御装置１０と、ノードＧ３１からノードＬ３６とから構成される。ゲートウェイ制御装置１０とノードＡ２１からノードＦ２６までとは、バスＡ２０を介して接続され、ノードＧ３１からノードＬ３６までとゲートウェイ装置１０とはバスＢ３０を介して接続される。本実施例において、バスＡ２０及びバスＢ３０はＣＡＮプロトコルによる通信が行われる。
【００２４】
図２は、ゲートウェイ制御装置１０の構成を示す図である。ゲートウェイ制御装置１０は、受信用のコントローラＡ１１と、送信用のコントローラＢ１２と、主としてフレームを蓄積するためのメモリ１３と、ＣＰＵ１４、及びＲＯＭ１５から構成され、それぞれ内部バスを介して接続される。
【００２５】
コントローラＡ１１は、バスＡ２０を介してノードＡ２１乃至ノードＦ２６から送信されたフレームの受信制御を行う。また、コントローラＡ１１は、内部に受信用のコントローラバッファ１１１を備え、受信したフレームを蓄積する。
【００２６】
コントローラＢ１２は、受信したフレームを、バスＢ３０を介してノードＧ３１乃至ノードＬ３６に送信する送信制御を行う。また、コントローラＢ１２は、内部に送信用のコントローラバッファ１１２を備え、送信すべきフレームを蓄積する。
【００２７】
ＣＰＵ１４はゲートウェイ制御装置１０全体を制御するとともに、図２に示すよう、通信ドライバ１６、１７、通信制御１８、アプリケーション１９の各プログラム（又はモジュール）を実行する。これらのプログラム等はＲＯＭ１５に記憶される。
【００２８】
このように構成された車載ネットワークシステム１の全体動作について、ノードＦ２６からノードＬ３６にフレームを送信する場合を例にして説明するが、その前にこのフレームの詳細について説明する。
【００２９】
図３（Ａ）は、フレームの構成例を示す図である。フレームは、ＣＡＮプロトコルにおける通信の１単位である。主として、フレームの開始を示すスタートオブフレーム（ＳＯＦ）と、当該フレームの優先順位を示す識別子（ＩＤ）が格納されるＩＤ領域と、データが格納されるデータ領域と、フレームの伝送誤りをチェックするＣＲＣ符号が格納される領域と、フレームの終了を示すエンドオブフレーム（ＥＯＦ）とから構成される。
【００３０】
ＣＡＮプロトコルでは、バスＡ２０の送信権は、第１にアイドル中のバスにフレームを先に出力したノードに与えられ、第２に同時に複数のノードからフレームを出力したときは上述した識別子（ＩＤ）により優先順位の高いフレームを出力したノードに与えられる。つまり、全ての識別子は異なる優先順位を有し、ノードＦ２６とノードＡ２１とが同時にフレームをバスＡ２０に出力すると、その識別子の優先順位により送信権が決定され、例えば、優先順位の高いノードＦ２６からのフレームにバスＡ２０の送信権が与えられ、優先順位の低いノードＡ２１からのフレームの送信は停止する。もちろん、ノードＡ２１
が先にフレームの出力を開始したときは、他のノードＢ２２等はフレームの出力はできない。
【００３１】
次に全体動作を説明する。上述のようにして、ノードＦ２６から送信されたフレームにバスＡ２０の送信権が与えられると、当該フレームは、ゲートウェイ制御装置１０に出力される。そして、そのフレームは、図２に示すように、ＣＰＵ１４が通信ドライバ１６を実行することでコントローラＡ１１が制御され、コントローラＡ１１はフレームを受信してバッファ１１１に蓄積し、メモリ１３に出力する。従って、フレームはメモリ１３に格納される。
【００３２】
その後、ＣＰＵ１４が通信制御プログラム１８を実行することで、メモリ１３に格納されたフレームが読み出されてコントローラＢ１２内のバッファ１１２に送信セットされる。更に、ＣＰＵ１４が通信ドライバ１７を実行することでコントローラＢ１２が制御され、コントローラＢ１２はバッファ１１２に蓄積されたフレームをバスＢ３０に出力する。その後、ゲートウェイ制御装置１０から出力されたフレームは、バスＢ３０を介してノードＬ３６に送信される。
【００３３】
このノードＬ３６に対する送信もバスＡ２０と同様にバス権獲得のための調停が行われる。すなわち、バスＢ３０に接続された各ノードＬ３６等は、どの識別子のフレームを受信すべきか予め設定されており、その設定された識別子のフレームを、バスＢ３０上に出力されるメッセージから判別し、該当する場合に受信することになる。
【００３４】
尚、フレームが送信されたノードＬ３６は、正常に受信したことを示すアクノリッジ信号をフレームに付加してノードＦ２６に送信する。そして、ノードＦ２６はアクノリッジ信号を確認すると、エンドオブフレームと呼ばれるフレームを他のノードＡ２１等に送信して送信終了を他のフレームに宣言する。以上により正常な送受信が行われる。
【００３５】
ところが、従来の技術でも説明したように、例えばノードＬ３６がショート等何らかの原因によりフレームを受信することができないと、ノードＦ２６はアクノリッジ信号を受信することができず、次々とフレームをノードＬ３６に対して送信し続ける。この場合、ゲートウェイ制御装置１０のメモリ１３には送信されたフレームが順次格納される。
【００３６】
図４は、メモリ１３からバッファ１１２を介してフレームが送信される状況を説明するための図である。ＣＰＵ１４は、メモリ１３に蓄積されたフレームを送信すべくコントローラＢ１２のバッファ１１２に出力する送信セット処理を行うことになるが、格納された全てのフレームに対して送信セット処理を行うと、バッファ１１２からいずれかのフレームがバスＢ３０に送信されて領域が開放されるまで処理待ちの状態となる。
【００３７】
本発明の特徴はこのＣＰＵ１４が行う送信セット処理によるフレーム数の上限を１基本周期内で送信可能なフレーム数とすることにある。
【００３８】
例えば、図４に示すように、コントローラバッファ１１２からバスＢ３０に１基本周期（１ｍｓ）で送信可能なフレーム数を「４」とし、コントローラバッファ１１２に記憶可能なフレーム数も「４」とした場合を考える。１基本周期内において、メモリ１３に記憶されたフレーム１からフレーム４がコントローラバッファ１１２に転送されて送信セットが完了した状態で、さらにフレーム５に対してもＣＰＵ１４が送信セット処理を行うと、フレーム１（又はフレーム２等）がバッファ１１２から送信されてバッファ１１２が空き状態とならない限り、送信セットの処理待ちとなる。
【００３９】
そこで、１基本周期内でメモリ１３からバッファ１１２への転送処理におけるフレーム
数の上限をバッファ１１２から１基本周期内で送信可能なフレーム数とすることで、上限値である「４」より大きいフレーム数の転送処理を行わないことになり、ＣＰＵ１４の占有資源を他の処理に解放することができる。つまり、ＣＰＵ１４は、今回の基本周期内でフレーム５以降の送信セット処理を行わないことになる。この場合、フレーム５以降の送信セット処理は次の基本周期内で行うことになる。次の基本周期でも送信セットされるフレームは、１基本周期内で送信可能なフレーム数である、フレーム５からフレーム８まで、となる。勿論、メモリ１３に蓄積されたフレームの数が１基本周期内で送信可能なフレーム数より少ない数であれば、メモリ１３に蓄積されたフレームすべてバッファ１１２に送信セットされる。
【００４０】
次に、１基本周期内でバッファ１１２からバスＢ３０に送信できる送信可能なフレーム数を実際に演算してみる。基本周期が「１ｍｓ」、ボーレート（バスＢ３０上にフレームを転送する場合にフレームの１ビットを転送するのに必要な時間、転送ビットレートともいう）が「５００ｋｂｐｓ」（＝２μｓｅｃ／ｂｉｔ）の場合で演算する。
【００４１】
ＣＡＮプロトコルにおいて１フレームのうち最短フレーム長は、図３（Ｂ）に示すように、「４７ｂｉｔ」である。データ領域にデータが格納されていない場合である。この最短フレーム長のフレームを送信するのに必要な時間は、
４７ｂｉｔ×２μｓｅｃ／ｂｉｔ＝９４μｓｅｃ
となる。従って、１基本周期内で最短フレーム長のフレームを送信できる個数は、
１ｍｓｅｃ／９４μｓｅｃ＝１０．６
つまり、１０個となる。
【００４２】
同様に、１フレームの最長フレーム長は、図３（Ｃ）に示すように「１２８ｂｉｔ」であり、この最長のフレームを送信するのに必要な時間は、
１２８ｂｉｔ×２μｓｅｃ／ｂｉｔ＝２５６μｓｅｃ  
となる。従って、１基本周期内で送信できるフレームの個数は、
１ｍｓｅｃ／２５６μｓｅｃ＝３．９
つまり、３個となる。
【００４３】
以上から、１基本周期内で送信可能なフレーム数は、基本周期を１ｍｓ、ボーレートを５００ｋｂｐｓとした場合、３個から１０個となる。予め、この送信可能なフレーム数を求め、転送セット処理されるフレーム数の上限値をこの送信可能なフレーム数としてＣＰＵ１４において処理が行われることになる。
【００４４】
次に、ＣＰＵ１４において実行される、この転送セットの処理について説明する。図５は、その動作を示すフローチャートである。まず、ＣＰＵ１４はＲＯＭ１５に格納された本処理を実行するためのプログラムを読み出すことで処理が開始される（Ｓ１０）。尚、以下に示す処理は１基本周期ごとに行われる処理である。また、本プログラムは通信制御プログラム１８の一部である。
【００４５】
次いで、ＣＰＵ１４は受信データの取得、すなわち、今回の基本周期内の送信要求フレーム数ｘと前回の基本周期内での未送信フレーム数ｙを確認する（Ｓ１１）。今回の基本周期内の送信要求フレーム数ｘとは、現在の基本周期内でゲートウェイ制御装置１０が受信したフレームの個数、つまり、メモリ１３に新たに蓄積されたフレームの数のことである。例えば、図４の例で、今回の基本周期内で新たにメモリ１３にフレーム７からフレーム９が蓄積された場合に、送信要求フレーム数ｘは「３」となる。
【００４６】
また、前回の基本周期内での未送信フレーム数ｙとは、コントローラバッファ１１２において前回の基本周期内でバスＢ３０に送信されずに蓄積されたままのフレームの個数と
、前回の基本周期内でメモリ１３に蓄積されたままバッファ１１２に転送されなかったフレームの個数との合計値である。例えば、図４の例で、前回の基本周期内でバッファ１１２からすべてフレームが送信され、フレーム１からフレーム６がメモリ１３に蓄積されているとき、前回の基本周期内での未送信フレーム数ｙは「６」となる。
【００４７】
図５に戻り、次いでＣＰＵ１４は、今回の送信要求フレーム数と前回の未送信フレーム数との和が１基本周期内でバスＢ３０に送信可能なフレーム数以内か否か判定する（Ｓ１２）。メモリ１３からバッファ１１２へ送信セットされるフレーム数が上限値Ｃを超えるか否か判定するためである。従って、合計値が上限値Ｃより大きいと（ＮＯ）、上限値Ｃを超える数のフレームの送信セットを行わずに、上限値であるフレーム数Ｃ個以内の送信セットの処理を行うことになる（Ｓ１３）。
【００４８】
図４の例では、合計値は「９」、１基本周期内で送信可能なフレーム数は「４」なので、メモリ１３からバッファ１１２への送信セットするフレームの数は「４」、つまり、フレーム１からフレーム４の送信セットの処理が行われる。一方で、上限値Ｃを越えるフレームの送信セットは行わない、つまり、フレーム５以降のフレームの送信セットは今回の基本周期内で行わず、次回の基本周期に持ち越すことになる。これにより、上限値Ｃを超えるフレーム数の送信セットが今回の基本周期内で行われないことになるため、ＣＰＵ１４を他の処理に開放することができる。
【００４９】
図５に戻り、今回の送信要求フレーム数ｘと前回の未送信フレーム数ｙとの合計値が上限値Ｃ以内であれば（Ｓ１２でＹＥＳ）、メモリ１３からバッファ１１２への送信セットの処理で処理待ちは発生しないため、その合計値分のフレーム数を送信セットする（Ｓ１３）。
【００５０】
そして、送信セット（Ｓ１３、Ｓ１４）が終了すると一連の処理が終了する（Ｓ１５）。その後、次の基本周期の開始から再び処理が開始され（Ｓ１０）、上述した処理が繰り返される。その際に持ち越しとなったフレーム（図４の例では、フレーム５からフレーム８）は、この基本周期内で送信セットされることになる。従って、送信しきれないフレームは確実に次回の基本周期に送信セットが可能となり、バスＢ３０への送信が可能となる。
【００５１】
図８は、以上の処理における、ＣＰＵ１４とコントローラ１２の処理時間を示す図である。ＣＰＵ１４は、バスＢ３０への送信可能なフレーム数を上限値Ｃとし、これよりも多いフレームの送信セット処理が行われないため、処理待ちは発生せず、送信セット処理を最短時間で行うことができる。
【００５２】
図５に示す例は、メモリ１３からバッファ１１２への送信セットの上限値Ｃを基本周期内で送信可能なフレーム数とした場合の例である。送信可能なフレーム数は、上述したように、１基本周期を１ｍｓ、ボーレートを５００ｋｂｐｓとすると「３」から「１０」フレームとなる。従って、送信セット処理の上限値Ｃを、最長フレーム長を基準にしたフレーム数「３」とすることもできる。これにより、長いフレーム長を有するフレームでも確実にバスＢ３０へ送信できるフレーム数のみ送信セットされるため、ＣＰＵ１４は送信セット処理に時間を費やすことなく確実にフレームをバスＢ３０に送信することができる。
【００５３】
また、この上限値Ｃを最短フレーム長のフレーム数（上述の例では「１０」）としたり、中間フレーム長のフレーム数（上述の例では「６」や「７」など）にしたりしてもよい。これらは、予め車載ネットワークシステム１を構築する場合の仕様に応じて設定すればよい。いずれの場合も送信セット処理に時間を費やすことなく確実にフレームをバスＢ３０に転送することができる。
【００５４】
更に、送信セットの上限値Ｃは、上述した例ではフレーム数を基準に説明した。これ以外にも、１基本周期内で送信できるフレーム数に基づくビット数を基準にしてもよい。例えば、フレーム数「３」が１基本周期内でバスに送信可能なフレーム数とした場合、フレーム数を基準にした上限値Ｃは「３」となる。ビット数を基準にすると上限値Ｃは「３８４」（＝１２８ｂｉｔ×３：１フレームが最長フレーム長とした場合）となる。そして、このビット数を上限値Ｃとして、メモリ１３からバッファ１１２へ送信セットの処理を行う。
【００５５】
図６は、ビット数を基準にした送信セット処理のフローチャートを示す。全体の処理自体は、図５の例と同様であるが、受信データ取得の際（Ｓ２１）に今回の基本周期内で送信要求されたフレームのビット数ｘと、前回の未送信フレームのビット数ｙとを取得して、この合計値と、ビット数を基準にした上限値Ｃとで判定を行っている（Ｓ２２）点が異なる。
【００５６】
上述した例では、上限値Ｃをフレーム数「３」とすると、送信セットされるフレーム数はフレーム内のビット数に関係なく「３」以下となる。しかし、送信セットされるフレームの各ビット数がそれぞれ「１２７」、「４７」、「４７」とすると、合計ビット数は「２２１」で上限値Ｃ「３８４」以下となり、更に４フレーム目、５フレーム目とフレームの送信セットが可能となる。
【００５７】
このように、上限値Ｃを通信の最小単位であるビット数を基準にすることで、送信セット可能な最大フレーム数を高い精度で算出することができ、また、メモリ１３に蓄積された持ち越しフレームを最小限に抑えることができる。
【００５８】
図６の例は、上限値Ｃは１基本周期内で送信可能なフレームのビット数を基準にしたが、更にバイト数を基準にしてもよい。図７は、バイト数を基準にした場合の送信セット処理の動作を示すフローチャートの例である。この場合も、受信データ取得の際（Ｓ３１）に今回の基本周期で送信要求のあったフレーム数に基づくバイト数ｘを確認し、更に未送信のフレーム数のバイト数ｙを確認し、この合計バイト値と上限値Ｃとで判定を行う（Ｓ３２）点が異なる。
【００５９】
これにより、ビット数を基準にした上限値Ｃの場合と比較して数が少なくなった分だけ受信データ取得の際（Ｓ３１）の処理時間や上限値Ｃ自体の算出時間を短くすることができ、また、フレーム数を基準にした場合と比較して多くのフレームの送信セット処理を行うことができる。なお、このバイト数を基準にした場合に、例えば、フレーム内のデータ領域に格納されるデータのバイト数のみに着目して、このバイト数を上限値Ｃの基準としてもよい。
【００６０】
上述した例では、バスＡ２０に接続されたノードＡ２１等が送信側で、バスＢ３０に接続されたノードＧ３１等を受信側として説明した。勿論、バスＢ３０に接続されたノードＧ３１等を送信側、バスＡ２０に接続されたノードＡ２１等が受信側であってもよい。この場合、ゲートウェイ制御装置１０において、コントローラＢ１２が送信側コントローラ、コントローラＡ１１が受信側コントローラとなり、更に上述した送信セット処理がメモリ１３とコントローラバッファ１１１との間で行われる。かかる場合でも、上述した例と同様の作用効果を奏する。
【００６１】
また、上述の例では、バスＡ２０及びバスＢ３０内の通信プロトコルとして、ＣＡＮの例で説明した。勿論、それ以外にも、種々の通信プロトコルであっても本発明を適用でき、同様の作用効果を奏する。例えば、ＦｌｅｘＲａｙ（高速制御系のネットワーク規格）
、ＢＥＡＮ（Body Electronics Area Network）等であってもよい。かかる場合に、メモ
リ１３やコントローラバッファ１１２に蓄積されるものはフレームではなく、それぞれの規格に合致した１通信単位の情報となる。
【図面の簡単な説明】
【００６２】
【図１】本発明が適用される車載ネットワークシステムの例を示す図である。
【図２】ゲートウェイ制御装置の構成例を示す図である。
【図３】フレームの構成例を示す図である。
【図４】フレームがバスに転送されるまでの状況を説明するための図である。
【図５】送信セット処理の動作を示すフローチャートである。
【図６】送信セット処理の動作を示すフローチャートである。
【図７】送信セット処理の動作を示すフローチャートである。
【図８】ＣＰＵとコントローラの処理時間を示す図である。
【図９】ＣＰＵとコントローラの処理時間を示す図である。
【図１０】フレームがバスに転送されるまでの状況を説明するための図である。
【符号の説明】
【００６３】
１  車載ネットワークシステム、  １０  ゲートウェイ制御装置、  １１  コントローラＡ、  １２  コントローラＢ、  １３  メモリ、  １４  ＣＰＵ、  ２０  バスＡ、  ２１〜２２  ノードＡ〜ノードＦ、  ３０  バスＢ、  ３１〜３６  ノードＧ〜ノードＬ、
１１２  コントローラバッファ
【図１】
2006253922.tif 000003
【図２】
2006253922.tif 000004
【図３】
2006253922.tif 000005
【図４】
2006253922.tif 000006
【図５】
2006253922.tif 000007
【図６】
2006253922.tif 000008
【図７】
2006253922.tif 000009
【図８】
2006253922.tif 000010
【図９】
2006253922.tif 000011
【図１０】
2006253922.tif 000012