(57)【要約】【課題】優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減すること。【解決手段】  第１バスと、第２バスと、前記第１バス及び前記第２バスに接続される複数のノードとを備える車載通信ネットワークであって、第１バスは、ＣＡＮのような通信プロトコルに準拠し、複数のノードのうちの少なくとも１つのノードは、第１バスへのメッセージ送信処理を行い、かつメッセージ毎に、第１バスにおいて自ノードからのメッセージよりも他ノードからのメッセージが優先された回数をカウントする第１送信処理部と、第２バスへのメッセージ送信処理を行う第２送信処理部と、カウンタの値が所定値を超える一のメッセージが発生した場合に、該メッセージを前記第１送信処理部に代えて前記第２送信処理部に送信させるバス変更処理部とを含む。【選択図】図１
2018061076.tif 000002
【特許請求の範囲】
【請求項１】
第１バスと、第２バスと、前記第１バス及び前記第２バスに接続される複数のノードとを備える車載通信ネットワークであって、
前記第１バスでは、複数の前記ノード間において優先度の相対的に高いメッセージの送信が優先度の相対的に低いメッセージの送信よりも優先され、
複数の前記ノードのうちの少なくとも１つのノードは、
優先度の異なる複数のメッセージを対象として前記第１バスへのメッセージ送信処理を行い、かつメッセージ毎に、前記第１バスにおいて自ノードからのメッセージよりも他ノードからのメッセージが優先された回数をカウントする第１送信処理部と、
前記第２バスへのメッセージ送信処理を行う第２送信処理部と、
前記回数が所定値を超える一のメッセージが発生した場合に、該メッセージを前記第１送信処理部に代えて前記第２送信処理部に送信させるバス変更処理を行うバス変更処理部とを含む、車載通信ネットワーク。
【請求項２】
前記第１送信処理部及び前記第２送信処理部は、互いに異なるメッセージを対象としてそれぞれメッセージ送信処理を行い、
前記第２送信処理部によるメッセージ送信処理の対象となるメッセージは、前記バス変更処理に起因してメッセージ送信処理の対象となるメッセージと、該メッセージとは異なるメッセージとを含む、請求項１に記載の車載通信ネットワーク。
【請求項３】
前記少なくとも１つのノードは、
前記第１送信処理部によるメッセージ送信処理の対象となるメッセージが書き込まれる第１記憶部と、
前記第２送信処理部によるメッセージ送信処理の対象となるメッセージが書き込まれる第２記憶部とを更に含み、
前記バス変更処理は、前記回数が前記所定値を超える前記一のメッセージを前記第１記憶部から消去すると共に、該メッセージを前記第２記憶部に書き込むことを含む、請求項１又は２に記載の車載通信ネットワーク。
【請求項４】
前記第１バス及び前記第２バスは、ＣＡＮに準拠する、請求項１〜３のうちのいずれか１項に記載の車載通信ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載通信ネットワークに関する。
【背景技術】
【０００２】
各ノード間において優先度の相対的に高いメッセージの送信が優先度の相対的に低いメッセージの送信よりも優先される通信プロトコルに準拠するバスを備える車載通信ネットワークにおいて、優先度毎に定められた比率の特別サイクルにおいてはその優先度を持つメッセージの送信を他のどのメッセージの送信よりも優先させる調停部を設けることが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2003-030134号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のような通信プロトコルに準拠するバスにおいては、あるノードＮ１から優先度の相対的に高いメッセージＡが連続して送信されると、他のノードＮ２からの優先度の相対的に低いメッセージＢの送信が比較的長期にわたり完了しない事態が生じうる。かかる事態が生じると、以下のような不都合が生じる。該他のノードＮ２においてメッセージＢに後続して優先度の相対的に高いメッセージＣが待機している場合、たとえメッセージＣの優先度がメッセージＡよりも優先度が高くても、（メッセージＢの送信が完了しないことに起因して）メッセージＣの送信が比較的長期にわたり完了しないという不都合が生じうる。優先度の相対的に高いメッセージＣの送信が比較的長期にわたり完了しないことは、車載通信ネットワークを介して形成される車両システムの健全な動作に影響を与える。
【０００５】
この点、上記のような従来技術では、特別サイクルにおいて優先度が実質的に変更されることになるので、優先度の相対的に低いメッセージに起因して車両システムの健全な動作が損なわれることになる。優先度は、車両システムの健全性を考慮して設計者により設定されているので、かかる優先度の実質的な変更は、車両システムの健全な動作に影響を及ぼすためである。
【０００６】
そこで、本発明は、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様によれば、第１バスと、第２バスと、前記第１バス及び前記第２バスに接続される複数のノードとを備える車載通信ネットワークであって、
前記第１バスでは、複数の前記ノード間において優先度の相対的に高いメッセージの送信が優先度の相対的に低いメッセージの送信よりも優先され、
複数の前記ノードのうちの少なくとも１つのノードは、
優先度の異なる複数のメッセージを対象として前記第１バスへのメッセージ送信処理を行い、かつメッセージ毎に、前記第１バスにおいて自ノードからのメッセージよりも他ノードからのメッセージが優先された回数をカウントする第１送信処理部と、
前記第２バスへのメッセージ送信処理を行う第２送信処理部と、
前記回数が所定値を超える一のメッセージが発生した場合に、該メッセージを前記第１送信処理部に代えて前記第２送信処理部に送信させるバス変更処理を行うバス変更処理部とを含む、車載通信ネットワークが提供される。
【０００８】
本発明の第１態様では、第１送信処理部は、メッセージ毎に、第１バスにおいて自ノードからのメッセージよりも他ノードからのメッセージが優先された回数（即ち優先度判定負けの回数）をカウントする。これにより、各メッセージの優先度判定負け状況を個別に評価できる。そして、バス変更処理部は、所定値を超える回数がカウントされる一のメッセージ（滞留メッセージ）が発生した場合に、該一のメッセージを第２送信処理部により第２バスに送信させる。これにより、相対的に低い優先度を有するメッセージ（以下、「低優先メッセージ」とも称する）が所定値を超える回数で滞留した場合に、該低優先メッセージを第２バスに送信させることができる。従って、該低優先メッセージに後続して相対的に高い優先度を有するメッセージ（以下、「高優先メッセージ」とも称する）が存在する場合に、第１バスにおいて該高優先メッセージの送信を早めることができる。即ち、第１バスにおいて、該低優先メッセージに起因して該高優先メッセージの送信が比較的長期にわたり完了しない事態を低減できる。これにより、低優先メッセージが車両システムの健全な動作に与える影響を低減できる。
【０００９】
本発明の他の態様は、例えば請求項２に記載のとおりであり、該態様によれば、バス変更処理に起因してメッセージ送信処理の対象となるメッセージ（滞留メッセージ）以外のメッセージについても第２バスに送信できるので、第２バスに滞留メッセージだけを送信する場合に比べて、車載通信ネットワークにおけるノード間で交換できる情報量を効率的に増加できる。
【００１０】
本発明の他の態様は、例えば請求項４に記載のとおりであり、該態様によれば、異なるプロトコル間のネットワークを接続する際に必要となるゲートウェイを不要とできる。
【発明の効果】
【００１１】
本発明によれば、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減できる。
【図面の簡単な説明】
【００１２】
【図１】一実施例による車載通信ネットワーク１００を示す図である。
【図２】優先協調コントローラ１３により実行される処理の概略フローチャートである。
【図３】従来技術による車載通信ネットワーク２００を示す図である。
【図４】従来技術による車載通信ネットワーク２００を示す図である。
【図５】本実施例の動作例の説明図である。
【図６】本実施例の動作例の説明図である。
【図７】本実施例の動作例の説明図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１４】
図１は、一実施例による車載通信ネットワーク１００を示す図である。
【００１５】
車載通信ネットワーク１００は、バス７１（第１バスの一例）及びバス７２（第２バスの一例）と、複数のノードＮｄ１〜Ｎｄｎとを含む。複数のノードＮｄ１〜Ｎｄｎは、バス７１及びバス７２のそれぞれに接続される。バス７１、７２は、共に、各ノードＮｄ１〜Ｎｄｎ間において優先度の相対的に高いメッセージの送信が優先度の相対的に低いメッセージの送信よりも優先される通信プロトコルに準拠する。本実施例では、バス７１、７２は、共に、CAN（controller area network）に準拠する。
【００１６】
図１では、ノードＮｄ１〜Ｎｄｎのうちの３つのノードＮｄ１〜Ｎｄ３が示される。ノード数ｎは任意である。また、図１では、ノードＮｄ１〜Ｎｄ３内のハードウェア構成の概略が示される。以下では、適宜、ノードＮｄ１〜Ｎｄ３におけるそれぞれ同一の構成については、ノードＮｄ１に対して代表して説明する。
【００１７】
ノードＮｄ１〜Ｎｄｎのそれぞれは、バス７１へのメッセージ送信処理を行う第１プロトコルコントローラ１１（第１送信処理部の一例）と、バス７２へのメッセージ送信処理を行う第２プロトコルコントローラ１２（第２送信処理部の一例）と、優先協調コントローラ１３（バス変更処理部の一例）と、第１ＲＡＭ（random-access memory）１１１（第１記憶部の一例）と、第２ＲＡＭ１１２（第２記憶部の一例）とを備える。
【００１８】
第１プロトコルコントローラ１１、第２プロトコルコントローラ１２、及び優先協調コントローラ１３は、それぞれ、ＩＣ（integrated circuit）により実現できる。但し、第１プロトコルコントローラ１１、第２プロトコルコントローラ１２、優先協調コントローラ１３は、１つのＣＡＮコントローラ（ＩＣ）として実現されてもよい。また、優先協調コントローラ１３の機能は、後述のＥＣＵ（Electronic Control Unit）２０により実現されてもよい（即ちＥＣＵ２０のＣＰＵがプログラムを実行することで実現されてもよい）。
【００１９】
ノードＮｄ１〜Ｎｄｎのそれぞれは、更に、ＥＣＵ２０を備える。ＥＣＵ２０の機能は、ノードＮｄ１〜Ｎｄｎのそれぞれにおいて異なる。例えば、ノードＮｄ１〜ＮｄｎのそれぞれのＥＣＵ２０は、エンジンのような駆動装置を制御するＥＣＵ、制動装置を制御するＥＣＵ、空調装置を制御するＥＣＵ、ドアロック等のような各種装備品を制御するＥＣＵ等のうちのいずれかである。ノードＮｄ１〜ＮｄｎのそれぞれのＥＣＵ２０は、車載通信ネットワーク１００を介して車両システムを形成する。
【００２０】
ノードＮｄ１〜ＮｄｎのそれぞれのＥＣＵ２０は、２つのバス７１、７２を介して、他のＥＣＵ２０との通信を行う。具体的には、ノードＮｄ１〜ＮｄｎのそれぞれのＥＣＵ２０は、２つのバス７１、７２を介して、メッセージの送受を行う。
【００２１】
尚、本実施例において、メッセージは、ＣＡＮに準拠し、メッセージのＣＡＮ＿ＩＤ（identification）が優先度を示す。ここでは、メッセージのＣＡＮ＿ＩＤは、便宜上、「＊＊＊ｈ」で表し、＊＊＊は数字である。数字が小さい方が優先度が高いことを表す。メッセージのデータフィールドには、各種車両情報や制御情報等が含められる。
【００２２】
尚、バス７１、７２のそれぞれでは、ドミナント（"０"）とリセッシブ（"１"）が同時に送信された場合は、ドミナントが優先される。これにより、優先度が高いメッセージが優先度が低いメッセージよりも優先されることになる。具体的には、ＣＡＮ＿ＩＤの数字は２進表記で上位から順にバスに送信される。複数のメッセージ間では、上位から順に先に"０"を持つメッセージが、同順に"１"を持つメッセージよりも優先されることになる。ここで、ＣＡＮ＿ＩＤの数字が小さいほど、２進表記の"０"の位置が上位側になる。例えば、ＣＡＮ＿ＩＤの数字が"９"の場合は、２進表記で"1001"となり、ＣＡＮ＿ＩＤの数字が"１０"の場合は、２進表記で"1010"となり、上位から３番目の値が"０"となるＣＡＮ＿ＩＤ"９"が、上位から３番目の値が"１"となるＣＡＮ＿ＩＤ"１０"よりも優先される。
【００２３】
各メッセージに付与される優先度は、車両システムの必要な健全性が保れるように車両システムの設計者により決定される。一般的に、車両走行制御（走る、止まる、曲がる）に関連するメッセージには、相対的に高い優先度が与えられる。車両走行制御に関連するメッセージには、例えば制動力制御や、駆動力制御、操舵制御に関わるメッセージである。他方、利便性や快適性を高める制御（例えば空調制御）に関連するメッセージには、相対的に低い優先度が与えられる。
【００２４】
次に、ノードＮｄ１〜ＮｄｎのうちのノードＮｄ１を代表して、ノードＮｄ１内の構成（第１プロトコルコントローラ１１、第２プロトコルコントローラ１２、及び優先協調コントローラ１３等）について説明する。
【００２５】
第１プロトコルコントローラ１１は、バス７１に複数のメッセージを１つずつ送信する。第１プロトコルコントローラ１１は、例えばＥＣＵ２０から与えられる第１クロックに同期した一定の送信周期毎に、バス７１にメッセージを送信する。尚、第１クロックは、ノードＮｄ１〜Ｎｄｎ間で同期される。
【００２６】
尚、第１プロトコルコントローラ１１によりバス７１に送信されるメッセージは、他ノードからのメッセージとの優先度の関係で、送信完了となる場合もあれば、送信完了とならない場合もある。これは、第２プロトコルコントローラ１２によりバス７２に送信されるメッセージについても同様である。従って、本明細書において、「バスへメッセージを送信する」又はその類の表現は、「バスへの同メッセージの送信を完了させること」を意味するわけではない。
【００２７】
第１プロトコルコントローラ１１が送信すべきメッセージは、ノードＮｄ１内のＥＣＵ２０により生成され、順次、第１プロトコルコントローラ１１用の第１ＲＡＭ１１１にスタック（蓄積）される。本実施例では、ＥＣＵ２０から第１ＲＡＭ１１１に供給されるメッセージは、優先度の異なるメッセージを含む。即ち、第１ＲＡＭ１１１には、優先度の相対的に高いメッセージと優先度の相対的に低いメッセージが混在した形で、複数のメッセージが順次供給される。第１プロトコルコントローラ１１は、第１ＲＡＭ１１１内にスタックされた１つ以上のメッセージを、スタック順によるキューに従って順次１メッセージずつバス７１に送信する。第１ＲＡＭ１１１内にスタックされたメッセージは、該メッセージの送信が完了するとクリア（消去）される。但し、後述のように、第１ＲＡＭ１１１内のメッセージは、優先協調コントローラ１３により消去されうる。
【００２８】
第１プロトコルコントローラ１１は、メッセージ毎に、バス７１において自ノード（本例ではノードＮｄ１）からのメッセージよりも他ノードからのメッセージが優先された回数をカウントする。この目的のため、本実施例では、第１プロトコルコントローラ１１は、滞留カウンタ１１４を含む。
【００２９】
第１プロトコルコントローラ１１は、送信周期毎に、自ノードからのメッセージよりも他ノードからのメッセージが優先されたか否かを判定する。第１プロトコルコントローラ１１は、自ノードからのメッセージよりも他ノードからのメッセージが優先されたと判定した場合に、滞留カウンタ１１４を"１"インクリメントする。自ノードからのメッセージよりも他ノードからのメッセージが優先されたことは、バス７１の電位に基づいて検出できる。即ち、バス７１の電位の変化が、自ノードからのメッセージの"０"及び"１"の符号列と異なる場合は、自ノードからのメッセージよりも他ノードからのメッセージが優先されたことを表す。自ノードからのメッセージよりも他ノードからのメッセージが優先された場合は、自ノードからの同メッセージの送信は、次周期に持ち越される。以下では、自ノードからのメッセージよりも他ノードからのメッセージが優先されることを、「優先度判定負け」と称し、自ノードからのメッセージが他ノードからのメッセージよりも優先されることを、「優先度判定勝ち」と称する。尚、自ノードからのメッセージが他ノードからのメッセージよりも優先されると、該メッセージの送信が完了する。滞留カウンタ１１４は、メッセージの送信が完了すると、クリアされる（即ち、滞留カウンタ１１４の値が"０"にリセットされる）。
【００３０】
第２プロトコルコントローラ１２は、バス７２に複数のメッセージを１つずつ送信する。第２プロトコルコントローラ１２は、例えばＥＣＵ２０から与えられる第２クロックに同期した一定の送信周期毎に、バス７２にメッセージを送信する。第２クロックは、上述の第１クロックと同じであってもよいし、異なってもよい。尚、第２クロックは、ノードＮｄ１〜Ｎｄｎ間で同期される。第２プロトコルコントローラ１２が送信すべきメッセージは、ノードＮｄ１内のＥＣＵ２０により生成され、順次、第２プロトコルコントローラ１２用の第２ＲＡＭ１１２にスタックされる。但し、後述のように、第２プロトコルコントローラ１２用の第２ＲＡＭ１１２には、優先協調コントローラ１３から後述の滞留メッセージが書き込まれうる。第２プロトコルコントローラ１２は、第２ＲＡＭ１１２内にスタックされた１つ以上のメッセージを、スタック順によるキューに従って１メッセージずつバス７２に送信する。第２ＲＡＭ１１２内にスタックされたメッセージは、該メッセージの送信が完了するとクリア（消去）される。尚、第１ＲＡＭ１１１及び第２ＲＡＭ１１２は、１つのＲＡＭの別々の記憶領域によりそれぞれ形成されてもよい。
【００３１】
本実施例では、ＥＣＵ２０から第２ＲＡＭ１１２に供給されるメッセージは、ＥＣＵ２０から第１ＲＡＭ１１１に供給されるメッセージとは異なる。例えば、ＥＣＵ２０から第２ＲＡＭ１１２に供給されるメッセージは、第１の他ノード用であり、ＥＣＵ２０から第１ＲＡＭ１１１に供給されるメッセージは、第１の他ノードとは異なる第２の他ノード用である。或いは、ＥＣＵ２０から第２ＲＡＭ１１２に供給されるメッセージ及びＥＣＵ２０から第１ＲＡＭ１１１に供給されるメッセージは、同一の他ノード用であるが、データフィールドに異なる属性の制御情報をそれぞれ含む。そして、第１プロトコルコントローラ１１及び第２プロトコルコントローラ１２は、上述のように、それぞれ、第１ＲＡＭ１１１及び第２ＲＡＭ１１２にスタックされたメッセージを対象として、バス７１及びバス７２へのメッセージ送信処理を、第１クロック及び第２クロックに応じた送信周期毎に行う。これにより、２つのバス７１、７２を効率的に利用して、単位時間当たりより多くのメッセージをバス７１及びバス７２に送信することが可能である。また、バス７２にもメッセージ（後述の滞留メッセージ以外のメッセージ）を送信できるので、バス７２を後述の滞留メッセージ専用のバスとする場合に比べて、車載通信ネットワーク１００におけるノードＮｄ１〜Ｎｄｎ間で送受できる情報量を効率的に増加できる。
【００３２】
第２プロトコルコントローラ１２は、上述した滞留カウンタ１１４と同様のカウンタを有してもよいが、ここでは、一例として、滞留カウンタ１１４は、第１プロトコルコントローラ１１のみに設けられるものとする。
【００３３】
優先協調コントローラ１３は、第１プロトコルコントローラ１１及び第２プロトコルコントローラ１２に接続されると共に、第１ＲＡＭ１１１及び第２ＲＡＭ１１２に接続される。
【００３４】
優先協調コントローラ１３は、滞留カウンタ１１４の値が所定値Ｎｔｈを超えるメッセージ（以下、「滞留メッセージ」と称する）が発生した場合に、バス変更処理を実行する。所定値Ｎｔｈは、優先度判定負けの回数に対する許容できる上限値に近い値であるが、該上限値よりも若干低い値である。所定値Ｎｔｈは、車両システムの必要な健全性が保れるように車両システムの設計者により決定される適合値である。所定値Ｎｔｈは、例えば第１ＲＡＭ１１１にスタックされている全メッセージのうちの最も高い優先度に基づいて設定されてもよいし、ノード毎に設定される値（一定値）であってもよい。前者の場合、所定値Ｎｔｈは、例えば、第１ＲＡＭ１１１にスタックされている全メッセージのうちの最も高い優先度が高いほど低い値に設定される。
【００３５】
バス変更処理は、滞留メッセージを、第１プロトコルコントローラ１１に代えて第２プロトコルコントローラ１２に送信させる処理である。即ち、バス変更処理は、滞留メッセージの送信先のバスを、バス７１からバス７２に変更する処理である。具体的には、優先協調コントローラ１３は、第１ＲＡＭ１１１内におけるキューの先頭の滞留メッセージを消去すると共に、該滞留メッセージを第２ＲＡＭ１１２に書き込む。この際、優先協調コントローラ１３は、滞留メッセージを、第２ＲＡＭ１１２におけるキューの最後尾に書き込むが、滞留メッセージが第２ＲＡＭ１１２におけるキューの最後尾以外に来るように、第２ＲＡＭ１１２におけるキューを変更してもよい。優先協調コントローラ１３がバス変更処理を実行すると、滞留カウンタ１１４がクリアされる。
【００３６】
本実施例の車載通信ネットワーク１００によれば、メッセージ毎に、優先度判定負けの回数がカウントされるので、各メッセージの優先度判定負け状況を個別に評価できる。これにより、各メッセージの優先度判定負け状況に基づいて、バス変更処理を実行できる。
【００３７】
具体的には、本実施例の車載通信ネットワーク１００によれば、滞留カウンタ１１４の値が所定値Ｎｔｈを超えるメッセージが発生した場合にバス変更処理が実行される。バス変更処理が実行されると、第１プロトコルコントローラ１１に代えて第２プロトコルコントローラ１２が滞留メッセージを送信する。これにより、滞留メッセージに後続して待機するメッセージ（例えば優先度の相対的に高いメッセージ）の、第１プロトコルコントローラ１１によるバス７１への送信が、早期化される。換言すると、バス変更処理が実行されると、滞留メッセージの送信先のバスが、バス７１からバス７２に変更されるので、滞留メッセージが第１ＲＡＭ１１１のキューから消去される。これにより、滞留メッセージに後続して待機するメッセージ（例えば優先度の相対的に高いメッセージ）の送信が促進される。この結果、滞留メッセージとなるような優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減できる。
【００３８】
ところで、バス７１は、ＣＡＮに準拠するので、上述のように、ドミナント（"０"）とリセッシブ（"１"）が同時に送信された場合はドミナントが優先され、ドミナントとなる。従って、バス７１がドミナントに固着される異常（いわゆるドミナント固着）が発生した場合には、ノードＮｄ１〜Ｎｄｎのうちの、ドミナント固着を起こさせているノード以外の各ノードからバス７１へのメッセージの送信がすべて不能となる（即ちドミナント固着を起こさせているノード以外の各ノードからのメッセージが全て優先度判定負けとなる）。
【００３９】
この点、本実施例の車載通信ネットワーク１００によれば、バス７１においてドミナント固着が発生した場合にも、滞留カウンタ１１４及び優先協調コントローラ１３が同様に機能するので、ドミナント固着に起因した不都合を低減できる。即ち、バス７１においてドミナント固着が生じた場合に、ドミナント固着を起こさせているノード以外の各ノードの第１ＲＡＭ１１１内の各メッセージを、バス７２に送信できる。
【００４０】
また、本実施例の車載通信ネットワーク１００によれば、滞留メッセージの優先度を変更することなく、上述した効果が得られるので、滞留メッセージの優先度を変更する場合に生じる問題点（即ち、バス７１において滞留メッセージが相対的に高い優先度のメッセージよりも優先されることに起因した車両システムの健全な動作に比較的大きな影響を与えてしまうという問題点）を回避できる。また、滞留メッセージの優先度を変更する場合に生じる他の問題点として、ＣＡＮでは、滞留メッセージの優先度の変更は、滞留メッセージのＣＡＮ＿ＩＤの変更を伴うため、滞留メッセージが、意図したノードに受信されない可能性も生じる。
【００４１】
図２は、第１プロトコルコントローラ１１及び優先協調コントローラ１３により実行される処理の概略フローチャートである。図２は、優先協調コントローラ１３に関しては、第１プロトコルコントローラ１１に関連する処理について説明する。図２に示す処理は、メッセージの送信周期毎に実行される。
【００４２】
ステップＳ１００では、第１プロトコルコントローラ１１は、バス７１へのメッセージ送信処理を行う。即ち、第１プロトコルコントローラ１１は、第１ＲＡＭ１１１内のキューの先頭のメッセージをバス７１に送信する。
【００４３】
ステップＳ１０２では、第１プロトコルコントローラ１１は、ステップＳ１００でのメッセージ送信処理に係るメッセージの送信が完了したか否かを判定する。判定結果が"ＹＥＳ（ＴＲＵＥ）"の場合は、ステップＳ１０４に進み、判定結果が"ＮＯ（ＦＡＬＳＥ）"の場合は、ステップＳ１１２に進む。
【００４４】
ステップＳ１０４では、第１プロトコルコントローラ１１は、滞留カウンタ１１４をクリアする。即ち、第１プロトコルコントローラ１１は、滞留カウンタ１１４の値Ｃｘを"０"にリセットする。
【００４５】
ステップＳ１０６では、第１プロトコルコントローラ１１は、第１ＲＡＭ１１１内のキューを更新するためのキュー更新要求を優先協調コントローラ１３に出力する。
【００４６】
ステップＳ１０８では、優先協調コントローラ１３は、第１ＲＡＭ１１１内のキューの先頭のメッセージを消去し、第１ＲＡＭ１１１内のキューを更新する。これにより、今回の送信周期でメッセージの送信が完了した場合は、該メッセージが消去される。
【００４７】
ステップＳ１１０では、優先協調コントローラ１３は、所定値Ｎｔｈを設定する。優先協調コントローラ１３は、所定値Ｎｔｈを設定すると、設定した所定値Ｎｔｈを第１プロトコルコントローラ１１に通知する。尚、所定値Ｎｔｈが一定である場合は、ステップＳ１１０は不要である。
【００４８】
ステップＳ１１２では、第１プロトコルコントローラ１１は、滞留カウンタ１１４の値Ｃｘを"１"だけインクリメントする。
【００４９】
ステップＳ１１４では、第１プロトコルコントローラ１１は、滞留カウンタ１１４の値Ｃｘが所定値Ｎｔｈ以下であるか否かを判定する。判定結果が"ＹＥＳ（ＴＲＵＥ）"の場合は、今回の処理周期の処理はそのまま終了し、判定結果が"ＮＯ（ＦＡＬＳＥ）"の場合は、ステップＳ１１６に進む。
【００５０】
ステップＳ１１６では、第１プロトコルコントローラ１１は、滞留メッセージの発生を通知するための滞留発生通知を優先協調コントローラ１３に出力する。
【００５１】
ステップＳ１１８では、第１プロトコルコントローラ１１は、滞留カウンタ１１４の値Ｃｘを"０"にリセットする。
【００５２】
ステップＳ１２０では、優先協調コントローラ１３は、滞留発生通知に応えて、バス変更処理を実行する。バス変更処理は上述のとおりである。ステップＳ１２０が終了すると、ステップＳ１１０に進む。
【００５３】
図２に示す処理によれば、優先協調コントローラ１３は、滞留カウンタ１１４の値Ｃｘが所定値Ｎｔｈを超えた場合にバス変更処理を実行できる。これにより、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減できる。
【００５４】
次に、図３乃至図７を参照して、本実施例の効果について詳説する。以下では、説明上、車載通信ネットワークにおけるノード数は、３とする。
【００５５】
先ず、図３及び図４を参照して、従来技術の問題点、即ち、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響について説明する。
【００５６】
図３及び図４は、従来技術による車載通信ネットワーク２００を示す図である。従来技術による車載通信ネットワーク２００は、ＣＡＮバスが１本であり、それに伴い、ＣＡＮコントローラは、ノードごとに１つである。ＣＡＮコントローラは、上述したプロトコルコントローラ及びＲＡＭを含む構成である。図３及び図４には、ＣＡＮコントローラのブロック内に、ＲＡＭ内のメッセージのスタック状態が模式的に示される。図示のスタック状態では、下側がキューの先頭であり、本例では、ノードＮ１〜Ｎ３のそれぞれにおいて、１〜３番目までのメッセージが示される。メッセージに付与されたカッコ内には、該メッセージに対する優先度が示される。
【００５７】
図３に示す例では、ノードＮ１〜Ｎ３内のメッセージＡ〜Ｉは、メッセージＡ〜Ｉのそれぞれに付された○内の数字の順番で、ＣＡＮバスに送信完了となる。具体的には、まず、最初の送信周期では、ノードＮ１〜Ｎ３のそれぞれにおける各先頭のメッセージＡ、Ｄ、及びＧのうち、優先度の最も高いメッセージＡが優先度判定勝ちとなり、１番目に送信完了となる。この結果、ノードＮ１においては、メッセージＢがキューの先頭になる。次の送信周期では、ノードＮ１〜Ｎ３のそれぞれにおける各先頭のメッセージＢ、Ｄ、及びＧのうち、優先度の最も高いメッセージＤが優先度判定勝ちとなり、２番目に送信完了となる。この結果、ノードＮ２においては、メッセージＥがキューの先頭になる。次の送信周期では、ノードＮ１〜Ｎ３のそれぞれにおける各先頭のメッセージＢ、Ｅ、及びＧのうち、優先度の最も高いメッセージＧが優先度判定勝ちとなり、３番目に送信完了となる。この結果、ノードＮ２においては、メッセージＨがキューの先頭になる。以下、同様である。図３に示す例では、メッセージＡ〜Ｉが比較的滞留なく送信完了となる。
【００５８】
他方、図４に示す例では、ノードＮ１には、優先度が４００ｈの複数のメッセージＭ１が連続してスタックされており、ノードＮ２〜Ｎ３のそれぞれにおける各先頭のメッセージＭ２及びＭ３よりも優先度が高いため、ノードＮ１から複数のメッセージＭ１が連続してＣＡＮバスに送信完了となる。換言すると、ノードＮ２〜Ｎ３のそれぞれにおいては、各先頭のメッセージＭ２及びＭ３は、優先度が比較的低いため、メッセージＭ１に対して連続して優先度判定負けとなり、比較的長期にわたり滞留する。かかる比較的長期にわたる滞留に起因して、ノードＮ２〜Ｎ３のそれぞれにおいて比較的高い優先度のメッセージＭ４及びＭ５が比較的長期にわたり滞留してしまう。図４に示す例では、メッセージＭ４及びＭ５は、メッセージＭ１よりも優先度が高いにもかかわらず、それぞれメッセージＭ２及びＭ３に起因して、比較的長期にわたりＣＡＮバスへ送信されないという不都合が生じる。優先度の相対的に高いメッセージＭ２及びＭ３の送信が比較的長期にわたり完了しないことは、車載通信ネットワーク２００を介して形成される車両システムの健全な動作に比較的大きい影響を与えてしまう。
【００５９】
これに対して、本実施例によれば、以下に、図５乃至図７を参照して説明するように、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減できる。
【００６０】
図５乃至図７は、本実施例の動作例の説明図である。図５乃至図７では、ＥＣＵ２０及び第２ＲＡＭ１１２等の図示は省略されている。図５乃至図７では、前出の図３及び図４と同様、第１ＲＡＭ１１１内のメッセージのスタック状態が模式的に示される。図示のスタック状態では、下側がキューの先頭であり、本例では、ノードＮｄ１〜Ｎｄ３のそれぞれにおいて、１〜３番目（又は１〜２番目）までのメッセージが示される。メッセージに付与されたカッコ内には、該メッセージに対する優先度が示される。図５に示す第１ＲＡＭ１１１内のメッセージのスタック状態は、前出の図４に示す同スタック状態と同じである。
【００６１】
第１番目の送信周期は、初回の送信周期であるとし、各ノードＮｄ１〜Ｎｄ３のそれぞれにおける滞留カウンタ１１４の値は初期値"０"である。また、ノードＮｄ２、Ｎｄ３のそれぞれにおいて設定される所定値Ｎｔｈを、"Ｎｔｈ２"及び"Ｎｔｈ３"とし、ここでは、一例として、Ｎｔｈ２＜Ｎｔｈ３とする。また、ノードＮｄ１には、優先度が"４００ｈ"のメッセージが連続して多数（上述の所定値Ｎｔｈ２よりも多い数）存在するものとする。
【００６２】
第１番目の送信周期では、図５に示すように、各ノードＮｄ１〜Ｎｄ３における先頭の各メッセージＭ１−１、Ｍ２−１、及びＭ３−１のうちの、メッセージＭ１−１が優先度判定勝ちとなり、バス７１への送信が完了する。この結果、ノードＮｄ２、Ｎｄ３における各滞留カウンタ１１４は、カウンタ値が１だけインクリメントされ、ノードＮｄ１における滞留カウンタ１１４はクリアされる。
【００６３】
第２番目の送信周期では、各ノードＮｄ１〜Ｎｄ３における先頭の各メッセージＭ１−２、Ｍ２−１、及びＭ３−１のうちの、メッセージＭ１−２が優先度判定勝ちとなり、バス７１への送信が完了する。この結果、ノードＮｄ２、Ｎｄ３における各滞留カウンタ１１４は、カウンタ値が１だけインクリメントされ、ノードＮｄ１における滞留カウンタ１１４はクリアされる。
【００６４】
第３番目の送信周期では、各ノードＮｄ１〜Ｎｄ３における先頭の各メッセージＭ１−３、Ｍ２−１、及びＭ３−１のうちの、メッセージＭ１−３が優先度判定勝ちとなり、バス７１への送信が完了する。この結果、ノードＮｄ２、Ｎｄ３における各滞留カウンタ１１４は、カウンタ値が１だけインクリメントされ、ノードＮｄ１における滞留カウンタ１１４はクリアされる。
【００６５】
以下、同様を繰り返し、ノードＮｄ２、Ｎｄ３における各滞留カウンタ１１４のカウンタ値が増加していき、ノードＮｄ２における滞留カウンタ１１４のカウンタ値が所定値Ｎｔｈ２を超える。即ち、図６に示すように、第［Ｎｔｈ２＋１］番目の送信周期では、各ノードＮｄ１〜Ｎｄ３における先頭の各メッセージＭ１−[Ｎｔｈ２＋１]、Ｍ２−１、及びＭ３−１のうちの、メッセージＭ１−[Ｎｔｈ２＋１]が優先度判定勝ちとなり、バス７１への送信が完了する。この結果、ノードＮｄ２、Ｎｄ３における各滞留カウンタ１１４は、カウンタ値が１だけインクリメントされ、ノードＮｄ２における滞留カウンタ１１４のカウンタ値が"Ｎｔｈ２＋１"となって所定値Ｎｔｈ２を超える。
【００６６】
ノードＮｄ２における滞留カウンタ１１４のカウンタ値が所定値Ｎｔｈ２を超えると、上述のように、バス変更処理が実行される。この場合、ノードＮｄ２における滞留メッセージＭ２−１が第１ＲＡＭ１１１内から消去され、滞留メッセージＭ２−１が第２ＲＡＭ１１２に書き込まれる。図７に示すように、ノードＮｄ２において、滞留メッセージＭ２−１が第１ＲＡＭ１１１内から消去される結果、第１ＲＡＭ１１１内のキューの先頭は、メッセージＭ２−２となる。
【００６７】
第［Ｎｔｈ２＋２］番目の送信周期では、図７に示すように、各ノードＮｄ１〜Ｎｄ３における先頭の各メッセージＭ１−［Ｎｔｈ２＋２］、Ｍ２−２、及びＭ３−１のうちの、メッセージＭ２−２が優先度判定勝ちとなり、メッセージＭ２−２のバス７１への送信が完了する。このようにして、ノードＮｄ２における優先度の高いメッセージＭ２−２の滞留（優先度の相対的に低いメッセージＭ２−１に後続することに起因した滞留）が解消される。尚、説明を省略するが、ノードＮｄ３における優先度の高いメッセージＭ３−２の滞留（優先度の相対的に低いメッセージＭ３−１に後続することに起因した滞留）についても、同様にして解消される。
【００６８】
このようにして、本実施例によれば、優先度の高いメッセージＭ２−２、Ｍ３−２が優先度の相対的に低いメッセージＭ２−１、Ｍ３−１の滞留に起因して滞留してしまう期間を低減できるので、優先度の相対的に低いメッセージが車両システムの健全な動作に与える影響を低減できる。
【００６９】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【００７０】
例えば、上述した実施例では、第２プロトコルコントローラ１２は、上述した滞留カウンタ１１４と同様の滞留カウンタを有していないが、有してもよい。この場合、優先協調コントローラ１３は、第１プロトコルコントローラ１１と第２プロトコルコントローラ１２との間で、双方向で、一方での滞留メッセージの他方への移管を実現する。即ち、優先協調コントローラ１３は、第２プロトコルコントローラ１２側の滞留カウンタの値が所定値Ｎ２ｔｈを超えた場合（即ち第２プロトコルコントローラ１２側で滞留メッセージが発生した場合）に、該滞留メッセージを第２プロトコルコントローラ１２に代えて第１プロトコルコントローラ１１に送信させる。即ち、優先協調コントローラ１３は、第２ＲＡＭ１１２における滞留メッセージを消去し、該滞留メッセージを第１ＲＡＭ１１１に書き込む。
【００７１】
また、上述した実施例では、車載通信ネットワーク１００は、各ノードＮｄ１〜Ｎｄｎが２つのバス７１、７２に接続されるが、バスの本数は、３つ以上であってもよい。例えば、バス７１、７２に加えて、第３バスを有する場合、第３プロトコルコントローラ及び第３ＲＡＭが設けられることになる。この場合、優先協調コントローラ１３は、滞留カウンタ１１４の値が所定値Ｎｔｈを超えた場合（即ち滞留メッセージが発生した場合）に、滞留メッセージを、第１プロトコルコントローラ１１に代えて、第２プロトコルコントローラ１２及び第３プロトコルコントローラのうちの選択した１つに送信させる。即ち、バス変更処理は、滞留メッセージの送信を行うバスを、バス７１からバス７２への変更すること、バス７１から第３バスへの変更することとを選択的に含む。
【００７２】
また、上述した実施例では、車載通信ネットワーク１００は、バス７２は、バス７１と同じプロトコル（上述した実施例ではＣＡＮ）に準拠するが、他のプロトコルに準拠してもよい。この場合、各ノードＮｄ１〜Ｎｄｎは、ゲートウェイを介してバス７２に接続される。
【００７３】
また、上述した実施例では、各ノードＮｄ１〜Ｎｄｎが優先協調コントローラ１３及び滞留カウンタ１１４を有しているが、ノードＮｄ１〜Ｎｄｎの一部のみ（少なくとも１つ）が、優先協調コントローラ１３及び滞留カウンタ１１４を有してもよい。優先協調コントローラ１３及び滞留カウンタ１１４を有するノードにおいては、上述した効果を得ることができる。
【００７４】
また、上述した実施例では、第２プロトコルコントローラ１２は、バス７２に、滞留メッセージ以外のメッセージも送信するが、これに限られない。例えば、第２プロトコルコントローラ１２は、滞留メッセージのみを送信するものであってもよい。即ちバス７２は、滞留メッセージ専用のバスであってもよい。
【００７５】
また、上述した実施例では、第１ＲＡＭ１１１内にメッセージがスタックされた状態において、第１プロトコルコントローラ１１は、バス７１へのメッセージ送信処理を、第１クロックに同期した一定の送信周期毎に実行するが、これに限られない。例えば、第１ＲＡＭ１１１内にメッセージがスタックされた状態において、第１プロトコルコントローラ１１は、ランダムな数の第１クロック毎に、又は、所定規則で変化する所定数の第１クロック毎に、バス７１へのメッセージ送信処理を実行してもよい。これは、第２プロトコルコントローラ１２についても同様である。
【符号の説明】
【００７６】
１１  第１プロトコルコントローラ
１２  第２プロトコルコントローラ
１３  優先協調コントローラ
２０  ＥＣＵ
７１  バス
７２  バス
１００  車載通信ネットワーク
１１１  第１ＲＡＭ
１１２  第２ＲＡＭ
１１４  滞留カウンタ
【図１】
2018061076.tif 000003
【図２】
2018061076.tif 000004
【図３】
2018061076.tif 000005
【図４】
2018061076.tif 000006
【図５】
2018061076.tif 000007
【図６】
2018061076.tif 000008
【図７】
2018061076.tif 000009