(57)【要約】  演算部１２は、入力データに対する演算値を算出する。比較部１４は、演算部１２の演算値と、入出力組に含まれる他のノードの演算値とを比較する。出力部１５は、比較部１４による比較の結果、何れかの演算値が一致した場合は演算値を自ノードの出力データとして出力する。他のノードのどの演算値とも一致しなかった場合、転送部１３は、入出力組に自ノードの演算値を付加して他のノードに転送する。
2012120578.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記入出力組が入力された場合、前記演算部の演算値と、前記他のノードの演算値とを比較する比較部と、
前記比較部による比較の結果、何れかの演算値が一致した場合は当該演算値を自ノードの出力データとして出力する出力部とを備えた冗長化装置。
【請求項２】
比較部による比較の結果、一致する演算値がなかった場合、演算部の演算値を入出力組に付加して他のノードに転送する転送部を備えたことを特徴とする請求項１記載の冗長化装置。
【請求項３】
比較部による比較の結果、一致する演算値が存在し、かつ、一致しない演算値が入出力組に含まれていた場合、当該一致しない演算値を転送したノードを故障と判定し、グループ内のノードに対して通知することを特徴とする請求項１記載の冗長化装置。
【請求項４】
転送部は、所定の応答時間に達するまでの間、演算部の演算値を付加した入出力組を他のノードに転送することを特徴とする請求項２記載の冗長化装置。
【請求項５】
所定の応答時間に達するまでの間に一致する演算値が見つからなかった場合には、デフォルト値または前回値を出力することを特徴とする請求項１記載の冗長化装置。
【請求項６】
Ｎ（Ｎは任意の整数）個のノードの演算値が一致した場合に、当該一致した演算値を出力データとすることを特徴とする請求項１記載の冗長化装置。
【請求項７】
一致した演算値が得られないときの転送の最大回数を規定し、転送部は、当該最大回数まで転送を行うことを特徴とする請求項２記載の冗長化装置。
【請求項８】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記演算部の演算値を前記入出力組に付加して前記グループ内の他のノードに所定回数に達するまで転送を行う転送部と、
前記所定回数の転送動作で得られた前記演算部の演算値と前記他のノードの演算値とから最も多い演算値を出力する出力部とを備えた冗長化装置。
【請求項９】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記演算部の演算値を前記入出力組に付加して前記グループ内の他のノードに所定の応答時間内、転送を行う転送部と、
前記所定の応答時間内に得られた前記演算部の演算値と前記他のノードの演算値の中から最も多い演算値を出力する出力部とを備えた冗長化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の同一機能・ハードウェア（以下、Ｈ／Ｗ）構成を持つＥＣＵ（電子制御ユニット：Electronic Control Unit）をグループ化し、グループ内ＥＣＵが相互に入出力を交換し、互いの出力を比較することで、システムを冗長化する分散システムにおける冗長化装置に関する。
【背景技術】
【０００２】
従来の冗長化技術は、必要な冗長度に応じた複数のハードウェアを用い、入力に対して同一の処理を行い、出力を比較あるいは多数決を行うことでエラー検出や故障冗長機能を実現していた。２重系比較システムの場合は、同一処理を行うためのハードウェアが二つでよいため、３重系多数決に比べコスト面でメリットがあるが、出力の比較結果が一致しない場合、何れのハードウェアが故障しているかを判断することはできない。一方、３重系多数決システムの場合は、コスト面が高価となるが、一つのノードが故障した場合、一致しない出力を出したハードウェアが故障していると判断することが可能である。また、３重系多数決システムでは一つのハードウェアの故障に対しては多数決の結果として正しい出力が選択されるため、故障をマスクできる。
従来の冗長化装置として、例えば特許文献１に記載されているように、確認計算機を設け、これら確認計算機での処理状態及び計算結果とを比較して双方とも一致していれば計算結果が正しかったと判定するようなものがあった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２２７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば車載システムといった分散システムではコスト制約が厳しく、一部の安全に関してクリティカルなモジュールを除き、２重系比較システムも含めシステムを冗長化するためのハードウェア追加のコストは、許容できるものではない。
上述した従来の冗長化手法は、ＥＣＵ内に同じ処理を行うＨ／Ｗが複数必要であり、冗長化に必要となるコストが大きいため、低コストで同様の機能を実現する手法が望まれていた。
現在開発が行われている電気自動車（以下、ＥＶ）の電池システムは、複数の電池セルが搭載されており、各々が制御用のＥＣＵ（電子制御ユニット）を持つ。また、それらのＥＣＵ間は、同一のネットワークで接続されており、相互にデータを交換することが可能となっている。【０００５】
この発明は上記のような課題を解決するためになされたもので、低コストでシステムの冗長化を図ることのできる冗長化装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る冗長化装置は、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、入出力組が入力された場合、演算部の演算値と、他のノードの演算値とを比較する比較部と、比較部による比較の結果、何れかの演算値が一致した場合は演算値を自ノードの出力データとして出力する出力部とを備えたものである。
【発明の効果】
【０００７】
この発明の冗長化装置は、自ノードの演算値と他のノードの演算値とが一致した場合はその演算値を自ノードの出力データとして出力するようにしたので、低コストでシステムの冗長化を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１の冗長化装置における一つのノードを示す構成図である。
【図２】この発明の実施の形態１の冗長化装置の適用対象として想定するシステムの構成図である。
【図３】この発明の実施の形態１の冗長化装置における二つのノード間の動作を示す説明図である。
【図４】この発明の実施の形態１の冗長化装置における正常時の動作を示す説明図である。
【図５】この発明の実施の形態１の冗長化装置における異常時の動作を示す説明図である。
【図６】この発明の実施の形態１の冗長化装置における３重系多数決システム全体の正常時の動作を示す説明図である。
【図７】この発明の実施の形態１の冗長化装置における３重系多数決システム全体の異常時の動作を示す説明図である。
【図８】この発明の実施の形態１の冗長化装置における入出力組を送信するノードの動作を示すフローチャートである。
【図９】この発明の実施の形態１の冗長化装置における入出力組を受信したノードの動作を示すフローチャートである。
【図１０】この発明の実施の形態２による冗長化装置の動作を示す説明図である。
【図１１】この発明の実施の形態３による冗長化装置の動作を示す説明図である。
【図１２】この発明の実施の形態４による冗長化装置の動作を示す説明図である。
【図１３】この発明の実施の形態５による冗長化装置の動作を示す説明図である。
【図１４】この発明の実施の形態６の冗長化装置における一つのノードを示す構成図である。
【図１５】この発明の実施の形態６の冗長化装置における入出力テーブルを示す説明図である。
【図１６】この発明の実施の形態６の冗長化装置における入出力組を送信するノードの動作を示すフローチャートである。
【図１７】この発明の実施の形態６の冗長化装置における入出力組を受信したノードの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本発明では、同一ネットワークに接続された同一機能・Ｈ／Ｗ構成を持つノードであるＥＣＵをグループ化し、グループ内ＥＣＵ間で相互に入出力を交換することにより、冗長化機能を実現する。
各ＥＣＵは、入力データを取得し、それを基に演算を行い出力データを得る。その後、入力データと出力データのペア（以下、入出力組）をグループ内のＥＣＵに送信する。入出力組を受信したＥＣＵは、入力データを基に演算を行い出力データを得て、受信した出力データ集合と比較を行う。ここで、入出力組を受信したＥＣＵは、送信したＥＣＵと同じ機能・Ｈ／Ｗ構成であるため、正常であれば同じ入力データに対しては同じ出力が得られる。演算した出力データと受信した出力データ集合の何れかが一致すれば、その値を出力する。一方、演算した出力データが受信した出力データ集合の何れとも一致しなければ、入出力組の最後に自らの演算結果を追加し、グループ内の他のＥＣＵに送信する。出力データが一致しない場合のデータの転送は、アプリケーションに要求される応答時間（以下、デッドラインという）を満足する間行う。デッドラインを違反するまで一致する出力が見つからない場合には、前回値やデフォルト値を出力する。以下、このような冗長化装置の実施の形態について説明する。
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による冗長化装置におけるＥＣＵを示す構成図であり、ここでは一つのＥＣＵ１のみを示している。図示のＥＣＵ１は、入力部１１、演算部１２、転送部１３、比較部１４、出力部１５を備えており、車載ＬＡＮ１００に接続されている。
また、図２は、本発明の対象として想定する分散システムの構成図である。図１で示したＥＣＵ１と同一構成のＥＣＵが同一のネットワークに複数接続されている。ここでは、複数のＥＣＵ１、ＥＣＵ２、・・・、ＥＣＵｎ（ｎは任意の整数）が、それぞれ図１のＥＣＵ１の構成を持つ。以下では、各ＥＣＵの機能について説明する。
【００１１】
入力部１１は、センサ等を用いて制御に必要となるデータを取得する機能部である。演算部１２は、入力部１１あるいは転送部１３が取得した入力データを基にアプリケーションに応じた演算を行う機能部である。転送部１３は、入力データと演算部１２から得た演算値を組にして（以下、入出力組という）、グループ内のＥＣＵにメッセージを送信する機能部である。入出力組は、以下に示す構成となる。
｛入力データ：出力データ１：出力データ２：・・・：出力データｎ｝
ここで、ｎは任意の整数であり、転送を行う毎に該当ＥＣＵの出力データ（演算値）を追加する。そのため、各実施の形態中では入出力組の演算値を出力データ集合と称する。入出力組を受信した場合、転送部１３は、入出力組の入力データを取り出し、演算部１２を用いて計算を行う。
比較部１４は、受信した入出力組の入力データに対する演算部１２の演算値と、受信した入出力組の出力データ集合とを比較する機能部である。出力部１５は、比較部１４が一致したと判定した演算値を出力する機能部である。
車載ＬＡＮ１００は、図２等に示すように、複数のＥＣＵ１，２，・・・を通信接続するためのネットワークである。
【００１２】
尚、各ＥＣＵ１、２、・・・、ｎは、それぞれコンピュータで構成され、入力部１１〜出力部１５におけるそれぞれの処理は、各処理に対応するソフトウェアと、これらのソフトウェアを実行するためのＣＰＵやメモリといったハードウェアによって実現されている。
【００１３】
図３は、図２におけるＥＣＵ１とＥＣＵ２の比較処理を抜粋した動作を示す説明図である。
ＥＣＵ１は、入力部１１を用いて入力データを取得し、演算部１２を用いて出力データとして演算値を得る。そして、転送部１３を用いて入力データと演算値を組にして（以下、入出力組という）、グループ内ＥＣＵ（ここではＥＣＵ２）に送信する。ＥＣＵ２は入出力組を受信すると、入出力組から入力データを抽出してそれを演算部１２に提供する。比較部１４は、演算部１２から出力されたデータと、受信した入出力組に含まれる出力データ集合とを比較する。演算部１２から得られた演算値が出力データ集合の何れかに一致した場合、一致した演算値を出力部１５を用いて出力する。
【００１４】
ＥＣＵ１、ＥＣＵ２、ＥＣＵ３で３重系多数決システムを構築した場合において、全てのＥＣＵが正常な場合と、ＥＣＵ２が故障した場合に関して、ＥＣＵ１を開始ノードとして着目した動作を図４、図５に示す。
図４では、ＥＣＵ１は入力部１１を用いて入力データ（５）を得、それに対して演算部１２を用いて演算を行い、演算値（１０）を得る。ここで、（  ）内はデータ値を表し、図面中の「ＩＮ」「ＥＣＵ１」「ＥＣＵ２」・・・「ＯＵＴ」の値に対応している。そして、転送部１３を用いて入出力組｛５：１０｝を送信する。ＥＣＵ２は、入出力組｛５：１０｝を受信し、入力データ（５）に対して演算部１２を用いて演算を行い、演算値（１０）を得る。比較部１４は、演算部１２の演算値（１０）と、受信した出力データ集合｛１０｝の比較を行い、値が（１０）で一致するため出力部１５を用いて（１０）を出力する。
【００１５】
図５では、ＥＣＵ１は入力部１１を用いて入力データ（５）を得、それに対して演算部１２を用いて演算を行い演算値（１０）を得る。そして、転送部１３を用いて入出力組｛５：１０｝を送信する。ＥＣＵ２は、入出力組｛５：１０｝を受信し、入力データ（５）に対して演算部１２を用いて演算を行い、演算値（１１）を得る。ＥＣＵ２は故障しているため演算値が（１１）となり、受信した出力データ集合と一致せず、比較部１４は不一致という結果を出力する。転送部１３は、比較結果が不一致であるため、入出力組の最後に演算部１２が出力した値（１１）を追加し、入出力組｛５：１０：１１｝をグループ内ＥＣＵ３に転送する。ＥＣＵ３は、入出力組｛５：１０：１１｝を受信し、入力データ（５）を演算部１２を用いて演算し、演算値（１０）を得る。比較部１４は、演算部１２が出力した値（１０）と受信した出力データ集合｛１０：１１｝を比較し、出力（１０）が一致するため、出力部１５を用いて（１０）を出力する。尚、比較部１４は、比較が完了した時点で一致しない出力データ（１１）を付加したＥＣＵ２が故障していると判断できる。
【００１６】
図６は、全てのＥＣＵが正常な場合のシステム全体の動作である。全てのＥＣＵは、図４で述べたＥＣＵ１の動作と同様に二つのＥＣＵ１、２の比較で結果が一致し、処理が終了する。
図７は、ＥＣＵ２が故障している場合のシステム全体の動作である。
ＥＣＵ２から開始される比較処理の動作は、以下の通りである。
ＥＣＵ２は、入力部１１を用いて入力データ（１）を得、それに対して演算部１２を用いて演算を行い演算値（３）を得る。そして、転送部１３を用いて入出力組｛１：３｝を送信する。ＥＣＵ３は、入出力組｛１：３｝を受信し、入力データ（１）に対して演算部１２を用いて演算を行い、演算値（２）を得る。ＥＣＵ２が故障しているため、ＥＣＵ３の演算値（２）と一致せず、比較部１４は不一致という結果を出力する。転送部１３は、比較結果が不一致であるため、入出力組の最後に演算部１２が出力した値（２）を追加し、入出力組｛１：３：２｝をグループ内ＥＣＵ１に転送する。ＥＣＵ１は、入出力組｛１：３：２｝を受信し、入力データ（１）に対し演算部１２を用いて演算を行い、演算値（２）を得る。比較部１４は、演算部１２が出力した値（２）と受信した出力データ集合｛３：２｝を比較し、出力（２）が一致するため、出力部１５を用いて（２）を出力する。
【００１７】
ＥＣＵ３から開始される比較処理の動作は、次の通りである。ＥＣＵ３は、入力部１１を用いて入力データ（３）を得、それに対して演算部１２を用いて演算を行い演算値（６）を得る。そして、転送部１３を用いて入出力組｛３：６｝を送信する。ＥＣＵ１は、入出力組｛３：６｝を受信し、入力データ（３）に対して演算部１２を用いて演算を行い、演算値（６）を得る。比較部１４は、演算部１２の演算値（６）と受信した出力データ集合｛６｝の比較を行い、値が（６）で一致するため出力部１５を用いて（６）を出力する。ＥＣＵ３から開始される比較処理は、ＥＣＵ３、ＥＣＵ１共に正常であるため、二つ目のＥＣＵの比較処理でデータが一致し出力が行われ、余計な計算やメッセージの転送が行われない。
【００１８】
図８は、入力部１１から入力データを取得し、入出力組の転送を開始するＥＣＵの動作を示すフローチャートである。ここでは、当該ＥＣＵを開始ノードと表す。開始ノードは、周期毎に入力部１１から入力データを取得し（ステップＳＴ１００）、演算部１２を用いて入力データに対して演算を行い演算値を得る（ステップＳＴ１０１）。そして、転送部１３を用いて入力データと演算値の組み合わせ（入出力組）をグループ内のＥＣＵに転送する（ステップＳＴ１０２、ＳＴ１０３）。
【００１９】
図９は、グループ内の他のＥＣＵから入出力組を受信したＥＣＵの動作を示すフローチャートである。
入出力組を受信したＥＣＵは（ステップＳＴ１２０）、転送部１３を用いて入力データを抽出し、演算部１２を用いて演算を行い、演算値（出力データ）を得る（ステップＳＴ１２１）。そして、得られた出力データと入出力組の出力データ集合の何れかが一致するかを比較部１４を用いて比較する（ステップＳＴ１２２、ＳＴ１２３）。一致するデータがあれば、出力部１５を用いてそのデータを出力する（ステップＳＴ１２４）。更に、一致したデータ以外を出力したＥＣＵを、故障ＥＣＵとして検出することもできる（ステップＳＴ１２５、ＳＴ１２６）。この故障情報は、必要に応じてグループ内のＥＣＵに通知する。演算した出力データが、出力データ集合の何れのデータにも一致しなかった場合には、転送部１３を用いて入出力組の最後に演算した出力データを付加して、グループ内の次のＥＣＵに転送する（ステップＳＴ１２７、ＳＴ１２８）。
【００２０】
尚、一致した場合の出力に関しては出力先がネットワークのノードとして接続されている場合には、そのノードに対するメッセージを送信するようにしても良いし、一致したデータを開始ノードに返送しても良い。また、返送する場合、デッドラインぎりぎりまで返送を待ち、期間内にデータが返送されなければ、デフォルト値や前回値あるいは自らの演算結果を出力することもできる。これにより、ネットワークが切断された場合に関しても、自らの演算結果による出力が行われる。
【００２１】
以上説明したように、実施の形態１の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、入出力組が入力された場合、演算部の演算値と、他のノードの演算値とを比較する比較部と、比較部による比較の結果、何れかの演算値が一致した場合は演算値を自ノードの出力データとして出力する出力部とを備えたので、各ノードの負荷やネットワーク負荷を下げることができ、低コストでシステムの冗長化を図ることができる。
【００２２】
また、実施の形態１の冗長化装置によれば、比較部による比較の結果、一致する演算値がなかった場合、演算部の演算値を入出力組に付加して他のノードに転送する転送部を備えたので、グループ内における故障ノードの検出に寄与することができる。
【００２３】
また、実施の形態１の冗長化装置によれば、比較部による比較の結果、一致する演算値が存在し、かつ、一致しない演算値が入出力組に含まれていた場合、一致しない演算値を転送したノードを故障と判定し、グループ内のノードに対して通知するようにしたので、グループ内における故障ノードの検出を容易に行うことができる。
【００２４】
また、実施の形態１の冗長化装置によれば、転送部は、所定の応答時間に達するまでの間、演算部の演算値を付加した入出力組を他のノードに転送するようにしたので、最悪実行時間を保証した上で、故障検出に寄与することができる。
【００２５】
また、実施の形態１の冗長化装置によれば、所定の応答時間に達するまでの間に一致する演算値が見つからなかった場合には、デフォルト値または前回値を出力するようにしたので、最悪実行時間を保証することができる。
【００２６】
実施の形態２．
実施の形態２は、データに更なる信頼性が求められるシステムに適用する冗長化装置に関するものである。図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
【００２７】
実施の形態２の冗長化装置は、システムに必要とされる安全度に応じて任意のＮ（Ｎは任意の整数）個のデータが一致するまでデータの転送を行うよう構成されている。即ち、ＥＣＵ１，２，・・・の出力部１５は、一致する演算値が予め定められたＮ個になった場合にその演算値を出力するよう構成されている。
図１０は、実施の形態２における冗長化装置の動作例を示す説明図である。図示例は、３個のデータが一致した場合に出力をする例であり、ＥＣＵ１、ＥＣＵ２でデータは一致しているがＥＣＵ３まで入出力組を転送し、ＥＣＵ３で３個のデータが一致して出力が行われる。
【００２８】
以上説明したように、実施の形態２の冗長化装置によれば、Ｎ（Ｎは任意の整数）個のノードの演算値が一致した場合に、当該一致した演算値を出力データとするようにしたので、出力するデータの信頼性を向上させることができる。
【００２９】
実施の形態３．
実施の形態３は、データが一致しない場合に、所定回数まで転送を行うようにした例である。実施の形態３においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態３の冗長化装置は、データが一致しない場合の転送の最大回数を規定するよう構成されている。即ち、ＥＣＵ１，２，・・・，ｎの転送部１３は、予め定められた転送の最大回数に達するまでは実施の形態１で説明した転送動作を行う。
図１１は、実施の形態３の冗長化装置の動作を示す説明図であり、この例では、最大転送回数を５としている。図示例では、ＥＣＵ６までの出力データは全て一致していないため、ＥＣＵ６まで転送が行われている。図示例では、出力データ集合の一つにＥＣＵ６の出力データが一致したため出力が行われているが、最大転送回数を満了したＥＣＵ６の出力データが出力データ集合のどれにも一致しない場合は、前回値やデフォルト値を出力する。
【００３０】
以上説明したように、実施の形態３の冗長化装置によれば、一致した演算値が得られないときの転送の最大回数を規定し、転送部は、当該最大回数まで転送を行うようにしたので、一致した演算値が得られない場合でも不必要な転送動作が継続することを防止することができる。
【００３１】
実施の形態４．
実施の形態４は、データの一致・不一致にかかわらず、所定回数転送するようにした例である。実施の形態４においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態４の冗長化装置では、転送部１３は、予め定められた所定回数転送動作を行う。また、出力部１５は、所定回数分の出力データから最も多い演算値を出力するよう構成されている。
図１２は、実施の形態４における冗長化装置の動作を示す説明図であり、図示例では、転送回数を５としたものである。図示例では、ＥＣＵ５の時点で出力データ集合として｛１０：１１：１０：９：１０｝が得られており、出力部１５は、その中で最も数が多い｛１０｝を出力する。
【００３２】
以上説明したように、実施の形態４の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、演算部の演算値を入出力組に付加してグループ内の他のノードに所定回数に達するまで転送を行う転送部と、所定回数の転送動作で得られた演算部の演算値と他のノードの演算値とから最も多い演算値を出力する出力部とを備えたので、不必要な転送動作が継続することを防止し、かつ、出力するデータの信頼性を向上させることができる。
【００３３】
実施の形態５．
実施の形態５は、データの一致・不一致にかかわらず、デッドラインまで転送を繰り返す例である。実施の形態５においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態５の冗長化装置では、転送部１３は、デッドラインに達するまで転送動作を行う。また、出力部１５は、デッドラインまでの出力データから最も多い演算値を出力するよう構成されている。
図１３は、実施の形態５における冗長化装置の動作を示す説明図である。図示例では、デッドラインの直前で出力データ集合｛１０：１１：１０：１０｝が得られており、出力部１５は、その中で最も数が多い｛１０｝を出力する。
【００３４】
以上説明したように、実施の形態５の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、演算部の演算値を入出力組に付加してグループ内の他のノードに所定の応答時間内、転送を行う転送部と、所定の応答時間内に得られた演算部の演算値と他のノードの演算値の中から最も多い演算値を出力する出力部とを備えたので、不必要な転送動作が継続することを防止し、かつ、出力するデータの信頼性を向上させることができる。
【００３５】
実施の形態６．
実施の形態６は、ＣＰＵ負荷及びネットワーク負荷の向上を更に下げるための構成である。実施の形態６におけるＥＣＵの構成を図１４に示す。図１４は、図１の構成に対し入出力記憶部１６が追加接続されている。この入出力記憶部１６は、図１５に示すような入力データと出力データの対応を示す入出力テーブルを保持する記憶部である。
【００３６】
実施の形態６における開始ノードの動作例を図１６に示す。
開始ノードは、入力部１１を用いて入力データを取得する（ステップＳＴ２００）。そして、比較部１４は、その入力データが入出力記憶部１６に存在するかを検索する（ステップＳＴ２０１）。存在していれば（ステップＳＴ２０２）、対応する出力データを出力部１５を用いて出力し（ステップＳＴ２０６）、処理を終了する。この場合、グループ内のＥＣＵへの入出力組の転送は行わないのでネットワークの負荷が下がり、また入出力組を受信して処理を行うＥＣＵも演算処理が必要なくなるため負荷が下がる。一方、入出力記憶部１６に入力データが存在しない場合には、実施の形態１と同様にグループ内のＥＣＵに入出力組を転送する（ステップＳＴ２０３〜ステップＳＴ２０５）。
【００３７】
入出力組を受信したＥＣＵの動作を図１７に示す。
入出力組を受信したＥＣＵは（ステップＳＴ２２０）、比較部１４を用いて、入出力記憶部１６に入力データが登録されていないかを検索し（ステップＳＴ２２１）、入力データが登録されていれば（ステップＳＴ２２２）、対応する出力データを出力部１５を用いて出力する（ステップＳＴ２２３）。尚、後述するように入出力記憶部１６に記憶されたデータは、複数のＥＣＵ間で一致した出力データであるため、入出力記憶部１６に記憶された出力データを優先的に使用する。入力データが登録されていなければ、実施の形態１におけるステップＳＴ１２３〜ステップＳＴ１２８と同様の処理を行う（ステップＳＴ２２４〜ステップＳＴ２２７、ステップＳＴ２２９〜ステップＳＴ２３２）。但し、入力データに対して得られた出力データが、出力データ集合の何れかに一致した場合、入力データ及び一致した出力を入出力テーブルに記憶する（ステップＳＴ２２８）。
【００３８】
尚、受信ＥＣＵの動作に関しては、実施の形態１の図９で示したように入力データから出力データを得、出力データ集合との比較までを行い、一致しない場合に入出力テーブルを検索する方法もある。あるいは、データが一致する場合にも入出力テーブルを検索し、登録されているデータが一致した結果と異なる場合には、テーブル内容を更新する方法も考えられる。
【００３９】
このように、実施の形態６では、実施の形態１〜５の構成に対して入出力記憶部１６を追加する必要が有るが、更に、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４０】
以上説明したように、実施の形態６の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データに対応した出力データを示す入出力テーブルを保持する入出力記憶部を備え、任意の入力データが入力された場合、任意の入力データに対応した出力データが入出力テーブルに存在するかを判定し、存在する場合は、出力データを自ノードの出力とするようにしたので、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４１】
また、実施の形態６の冗長化装置によれば、入力データに対応する出力データが入出力テーブルに存在しない場合、入力データに対する演算を行う演算部と、入力データと演算部の演算値とを組にして他のノードに転送する転送部とを備えたので、グループ内における故障ノードの検出に寄与することができる。
【００４２】
また、実施の形態６の冗長化装置によれば、入力データとグループ内の他のノードの演算値とを含む入出力組を入力した場合、入出力組に含まれる入力データに対する出力データが入出力テーブルに存在するかを判定し、出力データが存在した場合は出力データを自ノードの出力とするようにしたので、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４３】
また、実施の形態６の冗長化装置によれば、演算部の演算値と、入出力組に含まれる他のノードの演算値とを比較する比較部と、比較部における比較の結果、演算部の演算値と他のノードの演算値で一致する演算値が存在した場合は、一致した演算値を自ノードの出力データとして出力する出力部とを備えると共に、入出力記憶部は、演算部の演算値を入力データに対する出力データとして入出力テーブルに登録するようにしたので、入出力テーブルにおけるデータの管理を容易に行うことができる。
【００４４】
また、実施の形態６の冗長化装置によれば、演算部は、入力データが入出力テーブルに存在しない場合、前記入力データに対する演算を行うと共に、比較部は、前記演算部の演算値と、入出力組に含まれる他のノードの演算値とを比較し、一致する演算値が存在しない場合、転送部は、前記入出力組に前記演算部の演算値を付加して転送するようにしたので、グループ内における故障ノードの検出に寄与することができる。
【００４５】
尚、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００４６】
以上のように、この発明に係る冗長化装置は、複数の同一機能・ハードウェア構成を持つＥＣＵをグループ化し、グループ内ＥＣＵが相互に入出力を交換し、互いの出力を比較することで、システムを冗長化するものであり、車載システムといった分散システムに用いるのに適している。
【符号の説明】
【００４７】
１，２，・・・，ｎ  ＥＣＵ、１１  入力部、１２  演算部、１３  転送部、１４  比較部、１５  出力部、１６  入出力記憶部、１００  車載ＬＡＮ。
【図１】
2012120578.tif 000003
【図２】
2012120578.tif 000004
【図３】
2012120578.tif 000005
【図４】
2012120578.tif 000006
【図５】
2012120578.tif 000007
【図６】
2012120578.tif 000008
【図７】
2012120578.tif 000009
【図８】
2012120578.tif 000010
【図９】
2012120578.tif 000011
【図１０】
2012120578.tif 000012
【図１１】
2012120578.tif 000013
【図１２】
2012120578.tif 000014
【図１３】
2012120578.tif 000015
【図１４】
2012120578.tif 000016
【図１５】
2012120578.tif 000017
【図１６】
2012120578.tif 000018
【図１７】
2012120578.tif 000019
【手続補正書】
【提出日】平成25年4月15日(2013.4.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の同一機能・ハードウェア（以下、Ｈ／Ｗ）構成を持つＥＣＵ（電子制御ユニット：Electronic Control Unit）をグループ化し、グループ内ＥＣＵが相互に入出力を交換し、互いの出力を比較することで、システムを冗長化する分散システムにおける冗長化装置に関する。
【背景技術】
【０００２】
従来の冗長化技術は、必要な冗長度に応じた複数のハードウェアを用い、入力に対して同一の処理を行い、出力を比較あるいは多数決を行うことでエラー検出や故障冗長機能を実現していた。２重系比較システムの場合は、同一処理を行うためのハードウェアが二つでよいため、３重系多数決に比べコスト面でメリットがあるが、出力の比較結果が一致しない場合、何れのハードウェアが故障しているかを判断することはできない。一方、３重系多数決システムの場合は、コスト面が高価となるが、一つのノードが故障した場合、一致しない出力を出したハードウェアが故障していると判断することが可能である。また、３重系多数決システムでは一つのハードウェアの故障に対しては多数決の結果として正しい出力が選択されるため、故障をマスクできる。
従来の冗長化装置として、例えば特許文献１に記載されているように、確認計算機を設け、これら確認計算機での処理状態及び計算結果とを比較して双方とも一致していれば計算結果が正しかったと判定するようなものがあった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２２７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば車載システムといった分散システムではコスト制約が厳しく、一部の安全に関してクリティカルなモジュールを除き、２重系比較システムも含めシステムを冗長化するためのハードウェア追加のコストは、許容できるものではない。
上述した従来の冗長化手法は、ＥＣＵ内に同じ処理を行うＨ／Ｗが複数必要であり、冗長化に必要となるコストが大きいため、低コストで同様の機能を実現する手法が望まれていた。
現在開発が行われている電気自動車（以下、ＥＶ）の電池システムは、複数の電池セルが搭載されており、各々が制御用のＥＣＵ（電子制御ユニット）を持つ。また、それらのＥＣＵ間は、同一のネットワークで接続されており、相互にデータを交換することが可能となっている。
【０００５】
この発明は上記のような課題を解決するためになされたもので、低コストでシステムの冗長化を図ることのできる冗長化装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る冗長化装置は、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、入出力組が入力された場合、演算部の演算値と、他のノードの演算値とを比較する比較部と、比較部による比較の結果、何れかの演算値が一致した場合は演算値を自ノードの出力データとして出力する出力部と、比較部による比較の結果、一致する演算値がなかった場合、演算部の演算値を入出力組に付加して他のノードに転送する転送部とを備えたものである。
【発明の効果】
【０００７】
この発明の冗長化装置は、自ノードの演算値と他のノードの演算値とが一致した場合はその演算値を自ノードの出力データとして出力するとともに、一致する演算値がなかった場合は自ノードの演算値を入出力組に付加して他のノードに転送するようにしたので、低コストでシステムの冗長化を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１の冗長化装置における一つのノードを示す構成図である。
【図２】この発明の実施の形態１の冗長化装置の適用対象として想定するシステムの構成図である。
【図３】この発明の実施の形態１の冗長化装置における二つのノード間の動作を示す説明図である。
【図４】この発明の実施の形態１の冗長化装置における正常時の動作を示す説明図である。
【図５】この発明の実施の形態１の冗長化装置における異常時の動作を示す説明図である。
【図６】この発明の実施の形態１の冗長化装置における３重系多数決システム全体の正常時の動作を示す説明図である。
【図７】この発明の実施の形態１の冗長化装置における３重系多数決システム全体の異常時の動作を示す説明図である。
【図８】この発明の実施の形態１の冗長化装置における入出力組を送信するノードの動作を示すフローチャートである。
【図９】この発明の実施の形態１の冗長化装置における入出力組を受信したノードの動作を示すフローチャートである。
【図１０】この発明の実施の形態２による冗長化装置の動作を示す説明図である。
【図１１】この発明の実施の形態３による冗長化装置の動作を示す説明図である。
【図１２】この発明の実施の形態４による冗長化装置の動作を示す説明図である。
【図１３】この発明の実施の形態５による冗長化装置の動作を示す説明図である。
【図１４】この発明の実施の形態６の冗長化装置における一つのノードを示す構成図である。
【図１５】この発明の実施の形態６の冗長化装置における入出力テーブルを示す説明図である。
【図１６】この発明の実施の形態６の冗長化装置における入出力組を送信するノードの動作を示すフローチャートである。
【図１７】この発明の実施の形態６の冗長化装置における入出力組を受信したノードの動作を示すフローチャートである。
【発明を実施するための形態】
【０００９】
本発明では、同一ネットワークに接続された同一機能・Ｈ／Ｗ構成を持つノードであるＥＣＵをグループ化し、グループ内ＥＣＵ間で相互に入出力を交換することにより、冗長化機能を実現する。
各ＥＣＵは、入力データを取得し、それを基に演算を行い出力データを得る。その後、入力データと出力データのペア（以下、入出力組）をグループ内のＥＣＵに送信する。入出力組を受信したＥＣＵは、入力データを基に演算を行い出力データを得て、受信した出力データ集合と比較を行う。ここで、入出力組を受信したＥＣＵは、送信したＥＣＵと同じ機能・Ｈ／Ｗ構成であるため、正常であれば同じ入力データに対しては同じ出力が得られる。演算した出力データと受信した出力データ集合の何れかが一致すれば、その値を出力する。一方、演算した出力データが受信した出力データ集合の何れとも一致しなければ、入出力組の最後に自らの演算結果を追加し、グループ内の他のＥＣＵに送信する。出力データが一致しない場合のデータの転送は、アプリケーションに要求される応答時間（以下、デッドラインという）を満足する間行う。デッドラインを違反するまで一致する出力が見つからない場合には、前回値やデフォルト値を出力する。以下、このような冗長化装置の実施の形態について説明する。
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による冗長化装置におけるＥＣＵを示す構成図であり、ここでは一つのＥＣＵ１のみを示している。図示のＥＣＵ１は、入力部１１、演算部１２、転送部１３、比較部１４、出力部１５を備えており、車載ＬＡＮ１００に接続されている。
また、図２は、本発明の対象として想定する分散システムの構成図である。図１で示したＥＣＵ１と同一構成のＥＣＵが同一のネットワークに複数接続されている。ここでは、複数のＥＣＵ１、ＥＣＵ２、・・・、ＥＣＵｎ（ｎは任意の整数）が、それぞれ図１のＥＣＵ１の構成を持つ。以下では、各ＥＣＵの機能について説明する。
【００１１】
入力部１１は、センサ等を用いて制御に必要となるデータを取得する機能部である。演算部１２は、入力部１１あるいは転送部１３が取得した入力データを基にアプリケーションに応じた演算を行う機能部である。転送部１３は、入力データと演算部１２から得た演算値を組にして（以下、入出力組という）、グループ内のＥＣＵにメッセージを送信する機能部である。入出力組は、以下に示す構成となる。
｛入力データ：出力データ１：出力データ２：・・・：出力データｎ｝
ここで、ｎは任意の整数であり、転送を行う毎に該当ＥＣＵの出力データ（演算値）を追加する。そのため、各実施の形態中では入出力組の演算値を出力データ集合と称する。入出力組を受信した場合、転送部１３は、入出力組の入力データを取り出し、演算部１２を用いて計算を行う。
比較部１４は、受信した入出力組の入力データに対する演算部１２の演算値と、受信した入出力組の出力データ集合とを比較する機能部である。出力部１５は、比較部１４が一致したと判定した演算値を出力する機能部である。
車載ＬＡＮ１００は、図２等に示すように、複数のＥＣＵ１，２，・・・を通信接続するためのネットワークである。
【００１２】
尚、各ＥＣＵ１、２、・・・、ｎは、それぞれコンピュータで構成され、入力部１１〜出力部１５におけるそれぞれの処理は、各処理に対応するソフトウェアと、これらのソフトウェアを実行するためのＣＰＵやメモリといったハードウェアによって実現されている。
【００１３】
図３は、図２におけるＥＣＵ１とＥＣＵ２の比較処理を抜粋した動作を示す説明図である。
ＥＣＵ１は、入力部１１を用いて入力データを取得し、演算部１２を用いて出力データとして演算値を得る。そして、転送部１３を用いて入力データと演算値を組にして（以下、入出力組という）、グループ内ＥＣＵ（ここではＥＣＵ２）に送信する。ＥＣＵ２は入出力組を受信すると、入出力組から入力データを抽出してそれを演算部１２に提供する。比較部１４は、演算部１２から出力されたデータと、受信した入出力組に含まれる出力データ集合とを比較する。演算部１２から得られた演算値が出力データ集合の何れかに一致した場合、一致した演算値を出力部１５を用いて出力する。
【００１４】
ＥＣＵ１、ＥＣＵ２、ＥＣＵ３で３重系多数決システムを構築した場合において、全てのＥＣＵが正常な場合と、ＥＣＵ２が故障した場合に関して、ＥＣＵ１を開始ノードとして着目した動作を図４、図５に示す。
図４では、ＥＣＵ１は入力部１１を用いて入力データ（５）を得、それに対して演算部１２を用いて演算を行い、演算値（１０）を得る。ここで、（  ）内はデータ値を表し、図面中の「ＩＮ」「ＥＣＵ１」「ＥＣＵ２」・・・「ＯＵＴ」の値に対応している。そして、転送部１３を用いて入出力組｛５：１０｝を送信する。ＥＣＵ２は、入出力組｛５：１０｝を受信し、入力データ（５）に対して演算部１２を用いて演算を行い、演算値（１０）を得る。比較部１４は、演算部１２の演算値（１０）と、受信した出力データ集合｛１０｝の比較を行い、値が（１０）で一致するため出力部１５を用いて（１０）を出力する。
【００１５】
図５では、ＥＣＵ１は入力部１１を用いて入力データ（５）を得、それに対して演算部１２を用いて演算を行い演算値（１０）を得る。そして、転送部１３を用いて入出力組｛５：１０｝を送信する。ＥＣＵ２は、入出力組｛５：１０｝を受信し、入力データ（５）に対して演算部１２を用いて演算を行い、演算値（１１）を得る。ＥＣＵ２は故障しているため演算値が（１１）となり、受信した出力データ集合と一致せず、比較部１４は不一致という結果を出力する。転送部１３は、比較結果が不一致であるため、入出力組の最後に演算部１２が出力した値（１１）を追加し、入出力組｛５：１０：１１｝をグループ内ＥＣＵ３に転送する。ＥＣＵ３は、入出力組｛５：１０：１１｝を受信し、入力データ（５）を演算部１２を用いて演算し、演算値（１０）を得る。比較部１４は、演算部１２が出力した値（１０）と受信した出力データ集合｛１０：１１｝を比較し、出力（１０）が一致するため、出力部１５を用いて（１０）を出力する。尚、比較部１４は、比較が完了した時点で一致しない出力データ（１１）を付加したＥＣＵ２が故障していると判断できる。
【００１６】
図６は、全てのＥＣＵが正常な場合のシステム全体の動作である。全てのＥＣＵは、図４で述べたＥＣＵ１の動作と同様に二つのＥＣＵ１、２の比較で結果が一致し、処理が終了する。
図７は、ＥＣＵ２が故障している場合のシステム全体の動作である。
ＥＣＵ２から開始される比較処理の動作は、以下の通りである。
ＥＣＵ２は、入力部１１を用いて入力データ（１）を得、それに対して演算部１２を用いて演算を行い演算値（３）を得る。そして、転送部１３を用いて入出力組｛１：３｝を送信する。ＥＣＵ３は、入出力組｛１：３｝を受信し、入力データ（１）に対して演算部１２を用いて演算を行い、演算値（２）を得る。ＥＣＵ２が故障しているため、ＥＣＵ３の演算値（２）と一致せず、比較部１４は不一致という結果を出力する。転送部１３は、比較結果が不一致であるため、入出力組の最後に演算部１２が出力した値（２）を追加し、入出力組｛１：３：２｝をグループ内ＥＣＵ１に転送する。ＥＣＵ１は、入出力組｛１：３：２｝を受信し、入力データ（１）に対し演算部１２を用いて演算を行い、演算値（２）を得る。比較部１４は、演算部１２が出力した値（２）と受信した出力データ集合｛３：２｝を比較し、出力（２）が一致するため、出力部１５を用いて（２）を出力する。
【００１７】
ＥＣＵ３から開始される比較処理の動作は、次の通りである。ＥＣＵ３は、入力部１１を用いて入力データ（３）を得、それに対して演算部１２を用いて演算を行い演算値（６）を得る。そして、転送部１３を用いて入出力組｛３：６｝を送信する。ＥＣＵ１は、入出力組｛３：６｝を受信し、入力データ（３）に対して演算部１２を用いて演算を行い、演算値（６）を得る。比較部１４は、演算部１２の演算値（６）と受信した出力データ集合｛６｝の比較を行い、値が（６）で一致するため出力部１５を用いて（６）を出力する。ＥＣＵ３から開始される比較処理は、ＥＣＵ３、ＥＣＵ１共に正常であるため、二つ目のＥＣＵの比較処理でデータが一致し出力が行われ、余計な計算やメッセージの転送が行われない。
【００１８】
図８は、入力部１１から入力データを取得し、入出力組の転送を開始するＥＣＵの動作を示すフローチャートである。ここでは、当該ＥＣＵを開始ノードと表す。開始ノードは、周期毎に入力部１１から入力データを取得し（ステップＳＴ１００）、演算部１２を用いて入力データに対して演算を行い演算値を得る（ステップＳＴ１０１）。そして、転送部１３を用いて入力データと演算値の組み合わせ（入出力組）をグループ内のＥＣＵに転送する（ステップＳＴ１０２、ＳＴ１０３）。
【００１９】
図９は、グループ内の他のＥＣＵから入出力組を受信したＥＣＵの動作を示すフローチャートである。
入出力組を受信したＥＣＵは（ステップＳＴ１２０）、転送部１３を用いて入力データを抽出し、演算部１２を用いて演算を行い、演算値（出力データ）を得る（ステップＳＴ１２１）。そして、得られた出力データと入出力組の出力データ集合の何れかが一致するかを比較部１４を用いて比較する（ステップＳＴ１２２、ＳＴ１２３）。一致するデータがあれば、出力部１５を用いてそのデータを出力する（ステップＳＴ１２４）。更に、一致したデータ以外を出力したＥＣＵを、故障ＥＣＵとして検出することもできる（ステップＳＴ１２５、ＳＴ１２６）。この故障情報は、必要に応じてグループ内のＥＣＵに通知する。演算した出力データが、出力データ集合の何れのデータにも一致しなかった場合には、転送部１３を用いて入出力組の最後に演算した出力データを付加して、グループ内の次のＥＣＵに転送する（ステップＳＴ１２７、ＳＴ１２８）。
【００２０】
尚、一致した場合の出力に関しては出力先がネットワークのノードとして接続されている場合には、そのノードに対するメッセージを送信するようにしても良いし、一致したデータを開始ノードに返送しても良い。また、返送する場合、デッドラインぎりぎりまで返送を待ち、期間内にデータが返送されなければ、デフォルト値や前回値あるいは自らの演算結果を出力することもできる。これにより、ネットワークが切断された場合に関しても、自らの演算結果による出力が行われる。
【００２１】
以上説明したように、実施の形態１の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、入出力組が入力された場合、演算部の演算値と、他のノードの演算値とを比較する比較部と、比較部による比較の結果、何れかの演算値が一致した場合は演算値を自ノードの出力データとして出力する出力部とを備えたので、各ノードの負荷やネットワーク負荷を下げることができ、低コストでシステムの冗長化を図ることができる。
【００２２】
また、実施の形態１の冗長化装置によれば、比較部による比較の結果、一致する演算値がなかった場合、演算部の演算値を入出力組に付加して他のノードに転送する転送部を備えたので、グループ内における故障ノードの検出に寄与することができる。
【００２３】
また、実施の形態１の冗長化装置によれば、比較部による比較の結果、一致する演算値が存在し、かつ、一致しない演算値が入出力組に含まれていた場合、一致しない演算値を転送したノードを故障と判定し、グループ内のノードに対して通知するようにしたので、グループ内における故障ノードの検出を容易に行うことができる。
【００２４】
また、実施の形態１の冗長化装置によれば、転送部は、所定の応答時間に達するまでの間、演算部の演算値を付加した入出力組を他のノードに転送するようにしたので、最悪実行時間を保証した上で、故障検出に寄与することができる。
【００２５】
また、実施の形態１の冗長化装置によれば、所定の応答時間に達するまでの間に一致する演算値が見つからなかった場合には、デフォルト値または前回値を出力するようにしたので、最悪実行時間を保証することができる。
【００２６】
実施の形態２．
実施の形態２は、データに更なる信頼性が求められるシステムに適用する冗長化装置に関するものである。図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
【００２７】
実施の形態２の冗長化装置は、システムに必要とされる安全度に応じて任意のＮ（Ｎは任意の整数）個のデータが一致するまでデータの転送を行うよう構成されている。即ち、ＥＣＵ１，２，・・・の出力部１５は、一致する演算値が予め定められたＮ個になった場合にその演算値を出力するよう構成されている。
図１０は、実施の形態２における冗長化装置の動作例を示す説明図である。図示例は、３個のデータが一致した場合に出力をする例であり、ＥＣＵ１、ＥＣＵ２でデータは一致しているがＥＣＵ３まで入出力組を転送し、ＥＣＵ３で３個のデータが一致して出力が行われる。
【００２８】
以上説明したように、実施の形態２の冗長化装置によれば、Ｎ（Ｎは任意の整数）個のノードの演算値が一致した場合に、当該一致した演算値を出力データとするようにしたので、出力するデータの信頼性を向上させることができる。
【００２９】
実施の形態３．
実施の形態３は、データが一致しない場合に、所定回数まで転送を行うようにした例である。実施の形態３においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態３の冗長化装置は、データが一致しない場合の転送の最大回数を規定するよう構成されている。即ち、ＥＣＵ１，２，・・・，ｎの転送部１３は、予め定められた転送の最大回数に達するまでは実施の形態１で説明した転送動作を行う。
図１１は、実施の形態３の冗長化装置の動作を示す説明図であり、この例では、最大転送回数を５としている。図示例では、ＥＣＵ６までの出力データは全て一致していないため、ＥＣＵ６まで転送が行われている。図示例では、出力データ集合の一つにＥＣＵ６の出力データが一致したため出力が行われているが、最大転送回数を満了したＥＣＵ６の出力データが出力データ集合のどれにも一致しない場合は、前回値やデフォルト値を出力する。
【００３０】
以上説明したように、実施の形態３の冗長化装置によれば、一致した演算値が得られないときの転送の最大回数を規定し、転送部は、当該最大回数まで転送を行うようにしたので、一致した演算値が得られない場合でも不必要な転送動作が継続することを防止することができる。
【００３１】
実施の形態４．
実施の形態４は、データの一致・不一致にかかわらず、所定回数転送するようにした例である。実施の形態４においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態４の冗長化装置では、転送部１３は、予め定められた所定回数転送動作を行う。また、出力部１５は、所定回数分の出力データから最も多い演算値を出力するよう構成されている。
図１２は、実施の形態４における冗長化装置の動作を示す説明図であり、図示例では、転送回数を５としたものである。図示例では、ＥＣＵ５の時点で出力データ集合として｛１０：１１：１０：９：１０｝が得られており、出力部１５は、その中で最も数が多い｛１０｝を出力する。
【００３２】
以上説明したように、実施の形態４の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、演算部の演算値を入出力組に付加してグループ内の他のノードに所定回数に達するまで転送を行う転送部と、所定回数の転送動作で得られた演算部の演算値と他のノードの演算値とから最も多い演算値を出力する出力部とを備えたので、不必要な転送動作が継続することを防止し、かつ、出力するデータの信頼性を向上させることができる。
【００３３】
実施の形態５．
実施の形態５は、データの一致・不一致にかかわらず、デッドラインまで転送を繰り返す例である。実施の形態５においても、図面上の構成は実施の形態１と同様であるため、図１や図３の構成を用いて説明する。
実施の形態５の冗長化装置では、転送部１３は、デッドラインに達するまで転送動作を行う。また、出力部１５は、デッドラインまでの出力データから最も多い演算値を出力するよう構成されている。
図１３は、実施の形態５における冗長化装置の動作を示す説明図である。図示例では、デッドラインの直前で出力データ集合｛１０：１１：１０：１０｝が得られており、出力部１５は、その中で最も数が多い｛１０｝を出力する。
【００３４】
以上説明したように、実施の形態５の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データまたは入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、入力データに対する演算を行う演算部と、演算部の演算値を入出力組に付加してグループ内の他のノードに所定の応答時間内、転送を行う転送部と、所定の応答時間内に得られた演算部の演算値と他のノードの演算値の中から最も多い演算値を出力する出力部とを備えたので、不必要な転送動作が継続することを防止し、かつ、出力するデータの信頼性を向上させることができる。
【００３５】
実施の形態６．
実施の形態６は、ＣＰＵ負荷及びネットワーク負荷の向上を更に下げるための構成である。実施の形態６におけるＥＣＵの構成を図１４に示す。図１４は、図１の構成に対し入出力記憶部１６が追加接続されている。この入出力記憶部１６は、図１５に示すような入力データと出力データの対応を示す入出力テーブルを保持する記憶部である。
【００３６】
実施の形態６における開始ノードの動作例を図１６に示す。
開始ノードは、入力部１１を用いて入力データを取得する（ステップＳＴ２００）。そして、比較部１４は、その入力データが入出力記憶部１６に存在するかを検索する（ステップＳＴ２０１）。存在していれば（ステップＳＴ２０２）、対応する出力データを出力部１５を用いて出力し（ステップＳＴ２０６）、処理を終了する。この場合、グループ内のＥＣＵへの入出力組の転送は行わないのでネットワークの負荷が下がり、また入出力組を受信して処理を行うＥＣＵも演算処理が必要なくなるため負荷が下がる。一方、入出力記憶部１６に入力データが存在しない場合には、実施の形態１と同様にグループ内のＥＣＵに入出力組を転送する（ステップＳＴ２０３〜ステップＳＴ２０５）。
【００３７】
入出力組を受信したＥＣＵの動作を図１７に示す。
入出力組を受信したＥＣＵは（ステップＳＴ２２０）、比較部１４を用いて、入出力記憶部１６に入力データが登録されていないかを検索し（ステップＳＴ２２１）、入力データが登録されていれば（ステップＳＴ２２２）、対応する出力データを出力部１５を用いて出力する（ステップＳＴ２２３）。尚、後述するように入出力記憶部１６に記憶されたデータは、複数のＥＣＵ間で一致した出力データであるため、入出力記憶部１６に記憶された出力データを優先的に使用する。入力データが登録されていなければ、実施の形態１におけるステップＳＴ１２３〜ステップＳＴ１２８と同様の処理を行う（ステップＳＴ２２４〜ステップＳＴ２２７、ステップＳＴ２２９〜ステップＳＴ２３２）。但し、入力データに対して得られた出力データが、出力データ集合の何れかに一致した場合、入力データ及び一致した出力を入出力テーブルに記憶する（ステップＳＴ２２８）。
【００３８】
尚、受信ＥＣＵの動作に関しては、実施の形態１の図９で示したように入力データから出力データを得、出力データ集合との比較までを行い、一致しない場合に入出力テーブルを検索する方法もある。あるいは、データが一致する場合にも入出力テーブルを検索し、登録されているデータが一致した結果と異なる場合には、テーブル内容を更新する方法も考えられる。
【００３９】
このように、実施の形態６では、実施の形態１〜５の構成に対して入出力記憶部１６を追加する必要が有るが、更に、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４０】
以上説明したように、実施の形態６の冗長化装置によれば、ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、各ノードは、入力データに対応した出力データを示す入出力テーブルを保持する入出力記憶部を備え、任意の入力データが入力された場合、任意の入力データに対応した出力データが入出力テーブルに存在するかを判定し、存在する場合は、出力データを自ノードの出力とするようにしたので、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４１】
また、実施の形態６の冗長化装置によれば、入力データに対応する出力データが入出力テーブルに存在しない場合、入力データに対する演算を行う演算部と、入力データと演算部の演算値とを組にして他のノードに転送する転送部とを備えたので、グループ内における故障ノードの検出に寄与することができる。
【００４２】
また、実施の形態６の冗長化装置によれば、入力データとグループ内の他のノードの演算値とを含む入出力組を入力した場合、入出力組に含まれる入力データに対する出力データが入出力テーブルに存在するかを判定し、出力データが存在した場合は出力データを自ノードの出力とするようにしたので、各ノードの負荷やネットワーク負荷を軽減することができる。
【００４３】
また、実施の形態６の冗長化装置によれば、演算部の演算値と、入出力組に含まれる他のノードの演算値とを比較する比較部と、比較部における比較の結果、演算部の演算値と他のノードの演算値で一致する演算値が存在した場合は、一致した演算値を自ノードの出力データとして出力する出力部とを備えると共に、入出力記憶部は、演算部の演算値を入力データに対する出力データとして入出力テーブルに登録するようにしたので、入出力テーブルにおけるデータの管理を容易に行うことができる。
【００４４】
また、実施の形態６の冗長化装置によれば、演算部は、入力データが入出力テーブルに存在しない場合、前記入力データに対する演算を行うと共に、比較部は、前記演算部の演算値と、入出力組に含まれる他のノードの演算値とを比較し、一致する演算値が存在しない場合、転送部は、前記入出力組に前記演算部の演算値を付加して転送するようにしたので、グループ内における故障ノードの検出に寄与することができる。
【００４５】
尚、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００４６】
１，２，・・・，ｎ  ＥＣＵ、１１  入力部、１２  演算部、１３  転送部、１４  比較部、１５  出力部、１６  入出力記憶部、１００  車載ＬＡＮ。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記入出力組が入力された場合、前記演算部の演算値と、前記他のノードの演算値とを比較する比較部と、
前記比較部による比較の結果、何れかの演算値が一致した場合は当該演算値を自ノードの出力データとして出力する出力部と、
前記比較部による比較の結果、一致する演算値がなかった場合、前記演算部の演算値を入出力組に付加して他のノードに転送する転送部とを備えた冗長化装置。
【請求項２】
比較部による比較の結果、一致する演算値が存在し、かつ、一致しない演算値が入出力組に含まれていた場合、当該一致しない演算値を転送したノードを故障と判定し、グループ内のノードに対して通知することを特徴とする請求項１記載の冗長化装置。
【請求項３】
転送部は、所定の応答時間に達するまでの間、演算部の演算値を付加した入出力組を他のノードに転送することを特徴とする請求項１記載の冗長化装置。
【請求項４】
所定の応答時間に達するまでの間に一致する演算値が見つからなかった場合には、デフォルト値または前回値を出力することを特徴とする請求項１記載の冗長化装置。
【請求項５】
Ｎ（Ｎは任意の整数）個のノードの演算値が一致した場合に、当該一致した演算値を出力データとすることを特徴とする請求項１記載の冗長化装置。
【請求項６】
一致した演算値が得られないときの転送の最大回数を規定し、転送部は、当該最大回数まで転送を行うことを特徴とする請求項１記載の冗長化装置。
【請求項７】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記演算部の演算値を前記入出力組に付加して前記グループ内の他のノードに所定回数に達するまで転送を行う転送部と、
前記所定回数の転送動作で得られた前記演算部の演算値と前記他のノードの演算値とから最も多い演算値を出力する出力部とを備えた冗長化装置。
【請求項８】
ネットワークに接続された複数のノードをグループ化し、グループ内で相互に入出力データを交換することで冗長化を実現する冗長化装置であって、
前記各ノードは、入力データまたは当該入力データとグループ内の他のノードの演算値とを含む入出力組を入力し、
前記入力データに対する演算を行う演算部と、
前記演算部の演算値を前記入出力組に付加して前記グループ内の他のノードに所定の応答時間内、転送を行う転送部と、
前記所定の応答時間内に得られた前記演算部の演算値と前記他のノードの演算値の中から最も多い演算値を出力する出力部とを備えた冗長化装置。
【国際調査報告】
2012120578.tif 000020
2012120578.tif 000021