(57)【要約】【課題】安価な構成により、調停負けが生じたノードからのデータ送信を、予め設定された送信周期で送信できるようにする。【解決手段】複数のノード間で調停が生じた場合に（ステップＳ３のＹＥＳ）、調停負けとなったノードにおいて、計時手段により計時された時間に基づきオフセット時間を導出し（ステップＳ４）、導出したオフセット時間だけにデータの送信開始タイミングを後ろにシフトする（ステップＳ５）。これにより、調停負けしたノードでは、調停後の次回以降のいずれかで、本来の送信開始タイミングからオフセット時間だけ後ろにシフトしたタイミングでデータの送信を開始でき、その後予め設定された送信周期でデータの送信を行うことができる。【選択図】図３
2014027510.tif 000002
【特許請求の範囲】
【請求項１】
通信バスと、優先度を示す識別情報を有するデータを、予め複数設定された送信周期で前記通信バスを介してそれぞれ送信する複数のノードと、前記各ノードに設けられ、当該ノードが送信開始するタイミングと同じタイミングで他の前記ノードから送信されたデータの前記識別情報による前記優先度の高低に基づいて調停の勝ち負けの判断を行う調停手段とを備える通信制御装置において、
前記各ノードが、
前記調停の発生した前記ノード間で調停勝ちとなった前記ノードにおけるデータの送信開始タイミングから当該データの送信終了タイミングまでの時間を計時する計時手段と、
前記調停の発生した前記ノード間で調停負けとなった前記ノードのデータの送信開始タイミングを次回以降のいずれかで前記計時手段による前記計時時間に基づくオフセット時間だけ後ろにシフトするシフト手段とを備えていることを特徴とする通信制御装置。
【請求項２】
前記調停の発生した前記ノード間で調停負けとなった前記ノードが備える前記シフト手段は、前記調停の発生した前記ノード間で調停勝ちとなった前記ノードにおけるデータの送信終了タイミングのインターバル期間にも当該データの送信が継続することを検出すると、前記計時時間に所定の時間を付加した時間を前記オフセット時間とすることを特徴とする請求項１に記載の通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信バスを介して複数のノード間でデータを送信する場合に、同じ送信開始タイミングで送信するノード間で優先度に応じた調停を行う機能を有する通信制御装置に関する。
【背景技術】
【０００２】
近年、車両（自動車）の制御の分野においては、車内の各種制御のＥＣＵや、センサ、スイッチ等の状態監視のＥＣＵのネットワーク化が進んでいる。
【０００３】
そして、この種の車両が搭載する車両用ネットワークシステムは、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）に代表されるシリアル通信プロトコルのネットワークで形成され、このネットワークは、例えばＣＡＮのライン型のネットワークの場合、車内のトランスミッション制御ＥＣＵ、メータ制御ＥＣＵ、ＡＢＳ制御ＥＣＵ、エンジン制御ＥＣＵ等の各ＥＣＵのノードを通信バスに接続して構築される。ここで、各ＥＣＵはマスタノードであり、マイクロコンピュータ構成のＥＣＵにより形成される。
【０００４】
各ノードは、各々が送信するデータに応じて予め設定された送信周期でデータを繰り返し送信し、具体的にはあるノードから１６ｍｓの送信周期であるデータを送信し、別のデータを３２ｍｓや６４ｍｓなど規定の送信周期で送信することが定められている。
【０００５】
しかし、この種のネットワークの場合では、１つの通信バスを使って複数のノード間でのデータ送信を行うため、あるノードと他のノードとの間でデータの送信開始タイミングが一致して競合が生じることがある。
【０００６】
そこで従来、各ノードが送信するデータのフレームに、そのノードの優先度を示す識別情報（ＩＤ）を設け、各ノードそれぞれにおいて、当該ノードが送信開始するタイミングと同じタイミングで他のノードから送信されたデータの識別情報の優先度が、当該ノードが送信するデータの識別情報の優先度より高いか低いかを判断する調停を行う調停手段が各ノードに設けられている。
【０００７】
そして、調停処理として、例えば図５に示すように、優先度が低く調停に負けたＢノードでは、優先度の高いＡノードからのデータの送信が終了するまで、データの送信開始をｔ時間遅延させることが考えられる。しかし、この場合、Ｂノードは、データ送信毎にＡノードとの調停が行われて負けるため、Ｂノードのデータは、Ａノードのデータの送信が終了するまで毎回遅延されることになり、Ｂノードのデータ送信が、定められた送信周期で送信されないという不都合が生じる。
【０００８】
そこで、上記したようにＢノードに調停負けが複数回連続して生じた場合に、Ｂノードのデータ中の優先度を高優先に変更することが考えられている（特許文献１参照）。こうすることで、調停負けのノードからのデータ送信が毎回遅延されるという不都合を解消することができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−２３７８３２（段落０００７，００４０〜００４２）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところが、上記した特許文献１のように優先度を高優先に変更する場合、各ノードのＣＰＵが送信データの優先度を示す識別情報を管理するため、ＣＰＵが管理可能な識別情報の数には限度があり、全てのノードの全てのデータの識別情報を管理することは不可能であり、管理できる識別情報が限定されることになり、限られた特定の識別情報による優先度に基づく調停負けの対応しかできないという問題点がある。また、全てのノードの全てのデータの識別情報を管理するには、ＣＰＵに処理能力の大きなものを用いたり、記憶容量の大きなメモリを備える必要があり、システムが高価になるという新たな問題が生じる。
【００１１】
本発明は、安価な構成により、調停負けが生じたノードからのデータ送信を、予め設定された送信周期で送信できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上記した目的を達成するために、本発明の通信制御装置は、通信バスと、優先度を示す識別情報を有するデータを、予め複数設定された送信周期で前記通信バスを介してそれぞれ送信する複数のノードと、前記各ノードに設けられ、当該ノードが送信開始するタイミングと同じタイミングで他の前記ノードから送信されたデータの前記識別情報による前記優先度の高低に基づいて調停の勝ち負けの判断を行う調停手段とを備える通信制御装置において、前記各ノードが、前記調停の発生した前記ノード間で調停勝ちとなった前記ノードにおけるデータの送信開始タイミングから当該データの送信終了タイミングまでの時間を計時する計時手段と、前記調停の発生した前記ノード間で調停負けとなった前記ノードのデータの送信開始タイミングを次回以降のいずれかで前記計時手段による計時時間に基づくオフセット時間だけ後ろにシフトするシフト手段とを備えていることを特徴としている（請求項１）。
【００１３】
また、前記調停の発生した前記ノード間で調停負けとなった前記ノードが備える前記シフト手段は、前記調停の発生した前記ノード間で調停勝ちとなった前記ノードにおけるデータの送信終了タイミングのインターバル期間にも当該データの送信が継続することを検出すると、前記計時時間に所定の時間を付加した時間を前記オフセット時間とするようにしてもよい（請求項２）。
【発明の効果】
【００１４】
請求項１に係る発明によれば、ノード間での調停により調停負けとなったノードでは、データの送信開始タイミングが、計時手段により計時された時間に基づくオフセット時間だけシフト手段により後ろにシフトされる。そのため、調停負けしたノードは、調停後の次回以降のいずれかで、本来の送信開始タイミングからオフセット時間だけ後ろにシフトしたタイミングでデータの送信を開始し、その後予め設定された送信周期でデータの送信を行う。
【００１５】
したがって、従来のように、処理能力の大きなＣＰＵや容量の大きなメモリを備える必要がなく、安価な構成により、調停負けが生じたノードからのデータ送信を予め設定された送信周期で送信することができ、調停の生じたノード間で新たに調停が発生することを防止できる。
【００１６】
ところで、ノード間での調停により調停勝ちとなったノードでは、通常予め設定された送信周期でデータ送信が行われるが、データ送信以外の処理の影響を受けて、データの送信終了タイミングが本来のタイミングより遅れる場合がある。このように遅れが生じた場合、調停勝ちとなったノードのデータの本来の遅れのない送信終了タイミングで、調停負けとなったノードからデータが送信開始されるが、調停負けとなったノードからデータが送信開始されたときには、調停勝ちとなったノードのデータの送信が遅れによって終了せず、両ノード間でデータ送信がバッティングしてしまうことがある。
【００１７】
そこで、請求項２に係る発明のように、調停負けとなったノードが備えるシフト手段が、調停の発生したノード間で調停勝ちとなったノードにおけるデータの送信終了タイミングのインターバル期間にも当該データの送信が継続することを検出すると、計時手段により計時される計時時間に更に所定の時間を付加した時間をオフセット時間とすることにより、調停勝ちとなったノードで、データ送信以外の処理の影響によりデータの送信終了タイミングが本来のタイミングより遅れても、調停勝ちとなったノードのデータの送信が確実に終了したタイミングで、調停負けとなったノードからデータを送信開始することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係る通信制御装置の一実施形態のブロック図である。
【図２】図１の一部のブロック図である。
【図３】一実施形態の動作説明用フローチャートである。
【図４】一実施形態の動作説明図である。
【図５】従来例の動作説明図である。
【発明を実施するための形態】
【００１９】
つぎに、本発明をより詳細に説明するため、本発明の一実施形態について、図１ないし図４を参照して詳述する。
【００２０】
図１は本実施形態の通信制御装置を搭載した車両１のＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）システムを示し、車内のＡノード２ａ、Ｂノード２ｂ、Ｃノード２ｃ、…が通信バス３に接続された単位のネットワークで構築されている。各ノード２ａ，２ｂ，２ｃ，…は、いずれもゲートウェイノードではなく、安価なマイクロコンピュータ構成のＥＣＵにより形成された汎用のノードであり、いずれもマスタノードとして動作する。なお、各ノード２ａ，２ｂ，２ｃ，…のＥＣＵは、具体的には、車内のトランスミッション制御ＥＣＵ、メータ制御ＥＣＵ、ＡＢＳ制御ＥＣＵ、エンジン制御ＥＣＵ等であり、１０個を超えるノードが設けられている。
【００２１】
そして、各ノード２ａ，２ｂ，２ｃ，…には異なるＩＤ（識別情報）が割り当てられており、各ノード２ａ，２ｂ，２ｃ，…は定期的に発生する定期フレームのほかに不定期に発生するイベントフレームに送信側のＩＤ（＝ａ，ｂ，ｃ，…）を付して送信する。通信バス３は、ＣＡＮ−ＨとＣＡＮ−Ｌとのツイストペア線からなる共有バスであり、ＣＡＮ−ＨとＣＡＮ−Ｌとの間の電位差を切り替えてレベル変化する。具体的には、そのレベルがＣＡＮ−ＨとＣＡＮ−Ｌとの間に電位差が生じないリセッシブレベル（ビット“１”）とリセッシブレベルよりも優位なその間に電位差が生ずるドミナントレベル（ビット“０”）とのいずれかに切り替わるようになっている。
【００２２】
各２ａ，２ｂ，２ｃ，…は同じ構成を有し、図２にＡノード２ａを例示し、以下においてＡノード２ａの構成および機能について代表して詳細に説明する。
【００２３】
図２に示すように、Ａノード２ａは、中央演算処理装置であるＣＰＵ１０、及び、通信バス３に接続するバスインターフェースである送受信スロットル１１を備えている。そして、ＣＰＵ１０は、ＲＡＭ１２、ＲＯＭ１３およびコントローラ１４を内蔵し、ＲＡＭ１２はＣＰＵ１０の演算中の情報や演算結果を格納し、ＲＯＭ１３は、ＣＰＵ１０が使用するプログラムを格納するとともに、Ａノード２ａが受信すべき他のノード２ｂ，２ｃ，…からのデータ固有の識別情報（ＩＤ）を格納する。コントローラ１４は、通信データを格納するレジスタを有し、設定した識別情報（ＩＤ）と通信バス３上のデータ中の識別情報（ＩＤ）とを照合し、照合結果が一致である場合に、その通信バス３上のデータを受信してレジスタに格納する。
【００２４】
また、ＣＰＵ１０は、ＣＡＮの通信プロトコルに準じて作成されＲＯＭ１３に格納されたプログラムに従ってコントローラ１４を制御し、通信バス３を介したデータフレームの送受信制御を行う。このとき、ＣＰＵ１０は、通信バス３を介してＡノード２ａの出力データを他のノード２ｂ，２ｃ，…に対して送信すべくデジタル化し、また、他のノード２ｂ，２ｃ，…から通信バス３を介して受信した入力データをデコードし、受信データの内容に応じ自身での制御を実行する。また、送受信スロットル１１は、コントローラ１４により制御され、他のノード２ｂ，２ｃ，…にデータを送信するとともに、Ａノード２ａに送信されてきたデータを受信する。
【００２５】
Ａノード２ａ（Ｂノード２ｂ、Ｃノード２ｃ，…）が通信バス３へ向けて送信するデータは、所定のフォーマットに基づくデータフレームにより構成されている。このデータフレームとは、少なくとも、先頭から順に、フレームの始まり（送信開始）を示すスタートオブフレーム（ＳＯＦ：Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）と、データの種類を区別するために各データ固有の識別情報であるＩＤを示すＩＤフィールドとを備えた構成となっている。
【００２６】
ＳＯＦは、常にＣＡＮ−ＨとＣＡＮ−Ｌとの間に電位差が生ずるドミナントレベル（ビット“０”）の１ビットデータである。また、ＩＤフィールドは、高優先のデータほどＭＳＢからドミナントレベルのビットが多く継続し、低優先のデータほどＭＳＢにより近くにリセッシブレベルが現れる１１ビット，２９ビットのデータである。
【００２７】
また、ＩＤフィールド以降のデータフレームの構成として、例えば、当該データの長さを示すデータ長コード（ＤＬＣ：Ｄａｔａ  Ｌｅｎｇｔｈ  Ｃｏｄｅ）と、トランスミッションの位置や車速情報などのデータ自体の内容を示すフィールドと、伝送エラーをチェックするためのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）フィールドと、正常に受信が完了したことを確認するためのフィールドと、フレームの終わりを示すエンドオブフレーム（ＥＯＦ：Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）とを備えている。
【００２８】
各ノード２ａ，２ｂ，２ｃ，…は、それぞれ定期或いは不定期にデータを通信バス３に向けて送信するが、通信バス３に他のデータが流れていない状態ではデータ送信を開始することができる一方、他の１以上のノードから同時にデータの送信が開始されたときは送信優先順位に従ってデータ送信を行い、他のノードからのデータ送信が行われているときは後述するような調停処理が行われる。
【００２９】
各ノード２ａ，２ｂ，２ｃ，…からのデータの定期送信を行う場合、各ノード２ａ，２ｂ，２ｃ…はそれぞれ、データフレームの１ビット目のＳＯＦ（ビット“０”）から通信バス３への送信を開始し、次のＩＤフィールドをＭＳＢから順に通信バス３へ送信する。両ノード２ａ，２ｂはそれぞれ、少なくとも自己の送受信スロットル１１から通信バス３に対してデータフレームの送信を行うと、その送信毎に通信バス３に流れた送信結果（送信ビット）を監視し、各ノード２ａ，２ｂ，２ｃ，…が送信すべきであるとして生成した所望のデータフレームの各ビットと、実際に通信バス３に流れたデータフレームの各ビットとを比較することにより、自ら送出した所望のデータフレームが通信バス３に送信されてその送信が成功したか否かを判別する。このとき、各ノード２ａ，２ｂ，２ｃ，…は一定期間定期送信を実施するが、この一定期間は、例えば各ノード２ａ，２ｂ，２ｃ，…に対して予め定められた送信周期の最小公倍数とすることが望ましい。
【００３０】
そして、例えばＡノード２ａとＢノード２ｂからのデータの定期送信が同じタイミングで開始される場合に調停処理が行われる。具体的には、両ノード２ａ，２ｂは、いずれもビット“０”のＳＯＦを最初に送信するので、自己のデータフレームのＳＯＦに関しその送信が成功したと判別し、続いてＩＤフィールドの送信をそのＭＳＢから順に行うが、この送信過程で、例えばＡノード２ａが送信する所望のＩＤフィールドのビットが“０”であるときに、通信バス３に実際に流れるデータの監視結果がビット“０”であると、Ａノード２ａではデータ送信に関して調停に勝った（送信成功）と判断し、以後のデータフレームの送信を継続する一方、Ｂノード２ｂが送信する所望のＩＤフィールドのビットが“１”であるときに、実際に通信バス３に流れたデータの監視結果がビット“０”であると、Ｂノード２ｂではデータ送信に関して調停に負けたと判断し、このようにして両ノード２ａ，２ｂにおいて両者間での調停の勝ち負けの判断が行われる。
【００３１】
そして、調停負けが生じたＢノード２ｂでは、ＣＰＵ１０のコントローラ１４により、調停勝ちとなったＡノード２ａの送信開始タイミング（ＳＯＦ）から送信終了タイミング（ＥＯＦ）までの時間を計時し、計時した時間そのまま、或いは、計時した時間に所定の時間としてＣＰＵ１０の最小処理時間（例えば、１ｍｓ）を付加した時間を、オフセット時間としてＲＡＭ１２などに格納し、計時して格納しておいたオフセット時間だけ自らのデータ送信の開始タイミングを後ろにシフトし、その後予めＢノード２ｂに対して設定された所定の送信周期でのデータ送信を行う。なお、ＣＰＵ１０のコントローラ１４によるオフセット時間の計時処理が本発明における計時手段に相当し、データの送信開始タイミングをオフセット時間だけ後ろにシフトする処理が本発明におけるシフト手段に相当する。
【００３２】
つぎに、上記した調停処理の手順について、図３のフローチャートを用いて説明する。なお、図３は上記したようにＡノード２ａとの間で調停が発生したＢノード２ｂの動作を例として説明するが、Ｂノード２ｂ以外のノード２ａ，２ｃ，…の動作も同様の手順で行われる。
【００３３】
図３に示すように、Ｂノード２ｂから通信バス３に向けてデータ送信が行われ（ステップＳ１）、送受信スロットル１１の監視が行われる（ステップＳ２）。そして、上記した調停負けとの判断が連続し、調停負けとなった送信累積時間が、予め定められた所定時間Ｔｈを超えたか否かの判定がなされ（ステップＳ３）、この判定結果がＮＯ、つまり調停負けとなった送信累積時間が所定時間Ｔｈを超えていない場合には、何らかのノイズ等の要因により、たまたま両ノード２ａ，２ｂ間でデータの送信開始タイミングが同じになり、調停処理を行う必要性がないと判断できるため、上記したステップＳ１の処理に戻る。
【００３４】
一方、ステップＳ３の判定結果がＹＥＳであれば、調停処理を行う必要性があると判断できることから、次のステップＳ４に移行してコントローラ１４によるＡノード２ａの送信開始タイミングから送信終了タイミングまでの時間の計時が行われ、計時時間に基づきオフセット時間が導出されてＲＡＭ１２等に格納され（ステップＳ４）、格納されたオフセット時間だけその後のデータの送信開始タイミングが後ろにシフトされ(ステップＳ５)、以後Ｂノード２ｂに対して設定された所定の送信周期でのデータの定期送信が行われ（ステップＳ６）、その後車両１のイグニッションスイッチがオフされるなどにより、通信バス３上に各ノードからの送信データが存在しなくなって通信が終了したかどうかの判断がなされ（ステップＳ７）、この判定結果がＮＯであれば上記したステップＳ１に戻り、ＹＥＳであれば動作は終了する。
【００３５】
このような調停処理により、図４に示すように、予め設定された送信周期Ｃａ，Ｃｂ（例えば、Ｃａ＝１６ｍｓ、Ｃｂ＝３２ｍｓ）でそれぞれ定期送信を行うＡノード２ａ、Ｂノード２ｂ間で、Ｂノード２ｂに調停負けが生じると、Ｂノード２ｂでは、ＣＰＵ１０のコントローラ１４により、調停勝ちとなったＡノード２ａの送信開始タイミング（ＳＯＦ）から送信終了タイミング（ＥＯＦ）までの時間ｔを計時し、計時した時間ｔに所定の時間Δｔ（＝1ｍｓ）を付加したオフセット時間Ｔｏ（＝ｔ＋Δｔ）がＲＡＭ１２などに格納され、その後のデータ送信の送信開始タイミングがオフセット時間Ｔｏだけ後ろにシフトされる。そのため、Ｂノード２ｂに対して予め設定された送信周期をＣｂとすると、Ｂノード２ｂからのデータ送信は、オフセット時間Ｔｏだけ後ろにシフトされた後は、送信周期Ｃｂでの定期送信が行われることになる。なお、係る調停負けが生じたときの調停処理は、Ｂノード２ｂ以外の各ノード２ａ，２ｃ，…でも同様に行われる。
【００３６】
したがって、上記した実施形態によれば、調停負けとなったＢノード２ｂにおいて、オフセット時間Ｔｏだけデータ送信の送信開始タイミングを後ろにシフトすることにより、以降のデータ送信を所定の送信周期で通常通りに送信することができ、従来のように送信毎に送信開始タイミングを遅延させる必要がない。
【００３７】
また、従来のように、処理能力の大きなＣＰＵや容量の大きなメモリを備える必要がなく、安価な構成により、調停負けが生じたノードからのデータ送信を予め設定された送信周期で送信することができ、調停の生じたノード間で新たに調停が発生することを防止できる。
【００３８】
また、コントローラ１４により計時された時間ｔに更に所定の時間Δｔを付加した時間をオフセット時間Ｔｏとすることにより、調停勝ちとなったノードで、データ送信以外の処理の影響によりデータの送信終了タイミングが本来のタイミングより遅れても、調停勝ちとなったノードのデータの送信が確実に終了したタイミングで、調停負けとなったノードからデータを送信開始することができる。
【００３９】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行なうことが可能であり、例えば、各ノード２ａ，２ｂ，２ｃ，…の構成は図２の構成に限るものではなく、通信バス３に接続されるノードの個数等もどのようであってもよい。
【００４０】
また、上記した実施形態では、調停勝ちとなったノードの送信開始タイミングから送信終了タイミングまでの時間ｔを計時し、計時した時間ｔに、ＣＰＵ１０の最小処理時間である１ｍｓ等の所定の時間Δｔを付加したものをオフセット時間Ｔｏとするようにしたが、計時した時間ｔをオフセット時間Ｔｏとしてもよい。
【００４１】
更に、調停負けとなったノードのシフト手段としてのコントローラ１４により、調停勝ちとなったノードにおけるデータの送信終了タイミングのインターバル期間にも調停勝ちのノードのデータ送信が継続することを検出した場合に、計時した時間ｔに所定の時間Δｔを付加してオフセット時Ｔｏとするようにしてもよい。ここで、所定の時間Δｔは１ｍｓに限定されるものではない。
【００４２】
そして、上記した実施形態では、ＣＡＮのネットワークに適用した例を用いて説明したが、ＣＳＭＡ／ＣＤ方式の通信システムにも本発明を適用することができる。また、車両に搭載された通信システムに止まらず、車両以外の通信システムにも本発明を適用することが可能である。
【符号の説明】
【００４３】
２ａ，２ｂ，２ｃ，…    ノード
３    通信バス
１０    ＣＰＵ
１４    コントローラ
【図１】
2014027510.tif 000003
【図２】
2014027510.tif 000004
【図３】
2014027510.tif 000005
【図４】
2014027510.tif 000006
【図５】
2014027510.tif 000007