(57)【要約】【課題】他のＥＣＵの書換え中に、書換え対象のＥＣＵが送信するデータを代替して送信する場合、固定値や前回値などの一定値を用いると、車両の状態に即した値ではないため、高度な制御を行うことができない。【解決手段】他のＥＣＵを書換えるために、送信している書換えプログラムを、送信元のＥＣＵも実行し、実行した結果を、書換え対象のＥＣＵが送信するデータの代替データとして送信する。【選択図】図１
2015202710.tif 000002
【特許請求の範囲】
【請求項１】
第一の電子制御装置と第二の電子制御装置が、第一の通信線を介して接続し
前記第一の電子制御装置と第三の電子制御装置が、第二の通信線を介して接続し、
前記第一の電子制御装置は、
第一のプログラムを実行する第一の演算手段と、
前記第一のプログラムやデータを格納する第一の記憶手段とを備え、
前記第一のプログラムには、
前記第一の通信線、前記第二の通信線のうちの一方から受信したデータを設定に従って他方へ送信する転送プログラムと、
前記第二の電子制御装置が実行する書換えプログラムを、前記第三の電子制御装置から受信すると、前記第一の記憶手段に格納する格納プログラムと、
前記第二の電子制御装置の書換えを実行する書換え状態時には、前記第二の通信線から受信したデータの前記第一の通信線への送信を禁止するとともに、前記第一の記憶手段に格納された前記書換えプログラムを前記第二の電子制御装置へ送信する書換え状態時プログラムと、
前記格納プログラムによって格納される前記書換えプログラムを含む代替プログラムと、を含み、
前記第二の電子制御装置は、第二のプログラムを実行して得られた真データを前記第二の通信線へ送信し、前記第一の電子制御装置から受信した前記書換えプログラムによって、前記第二のプログラムを更新する、ネットワークシステムにおいて、
前記第一の電子制御装置は、前記書換え状態時に、前記第一の記憶手段に格納された前記代替プログラムに含まれる前記書換えプログラムを実行し、実行によって得られた代替データを前記第二の通信線へ送信することを特徴とする電子制御装置。
【請求項２】
前記第一の電子制御装置は、前記書換え状態において前記第二の電子制御装置の前記第二のプログラムの更新を完了した後、予め決められた条件が満たされるまで、前記書換えプログラムを実行し、前記代替データを前記第二の通信線へ送信することを特徴とする請求項1に記載の電子制御装置。
【請求項３】
前記予め決められた条件は、第一の期間が経過することであることを特徴とする請求項２に記載の電子制御装置。
【請求項４】
前記予め決められた条件は、前記代替データと、前記第二の電子制御装置から受信する前記真データの差分が、予め決められた範囲内であることを特徴とする請求項２に記載の電子制御装置。
【請求項５】
前記予め決められた条件が、第二の期間経過時に満たされていなければ、前記第二の電子制御装置の前記第二のプログラムの前記書換えプログラムによる更新が異常終了したと判断して、エラー処理を開始することを特徴とする請求項２または請求項４に記載の電子制御装置。
【請求項６】
前記第一の電子制御装置は第一のタイマを備え、
前記第二の電子制御装置から受信した前記真データを前記第二の通信線へ送信するときに、前記第一のタイマを開始し、前記書換え状態時に前記第一のタイマが満了すると、前記代替データを前記第二の通信線へ送信することを特徴とする請求項１から請求項５のいずれか一項に記載の電子制御装置。
【請求項７】
前記第一の通信線に、第四の電子制御装置が接続され、
前記第四の電子制御装置は、
第四のプログラムを実行し、実行によって得られた第二の真データを前記第二の通信線へ送信し、
前記第一の電子制御装置は、前記書換え状態時に、前記第四の電子制御装置から前記第二の真データを受信しない間、第二の代替データを前記第二の通信線へ送信することを特徴とする請求項１から請求項６のいずれか一項に記載の電子制御装置。
【請求項８】
前記第一の電子制御装置は、
前記第一の記憶手段の前記代替プログラムに、前記書換えプログラムの他に、前記第四のプログラムの少なくとも非書換えプログラムを含み、
前記第四の制御装置から前記第二の真データを受信しない間、前記非書換えプログラムを実行し、実行によって得られたデータを前記第二の代替データとして前記第二の通信線へ送信することを特徴とする請求項７に記載の電子制御装置。
【請求項９】
前記第一の電子制御装置は、前記非書換えプログラムを、前記第三の電子制御装置から受信する
ことを特徴とする請求項８に記載の電子制御装置。
【請求項１０】
前記第一の電子制御装置は、前記第一の記憶手段に、前記代替データを入力とし、前記第二の代替データを出力とするテーブルを備え、前記代替データが更新されると、前記テーブルを用いて前記第二の代替データを決定し、前記第四の制御装置から前記第二の真データを受信しない間、前記第二の代替データを前記第二の通信線へ送信することを特徴とする請求項７に記載の電子制御装置。
【請求項１１】
前記第一の電子制御装置は第二のタイマを備え、
前記第四の電子制御装置から受信した前記第二の真データを前記第二の通信線へ送信するときに、前記第二のタイマを開始し、前記書換え状態時に前記第二のタイマが満了すると、前記第二の代替データを前記第二の通信線へ送信する
ことを特徴とする請求項７から請求項１０のいずれか一項に記載の電子制御装置。
【請求項１２】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記第二の通信線から受信するデータを用いることを特徴とする請求項１から請求項１１のいずれか一項に記載の電子制御装置。
【請求項１３】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移する前に前記第一の通信線から受信したデータの値を用いることを特徴とする請求項１から請求項１２のいずれか一項に記載の電子制御装置。
【請求項１４】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移する前に前記第一の通信線から受信したデータの値から推定される、推定データを用いることを特徴とする請求項１から請求項１３のいずれか一項に記載の電子制御装置。
【請求項１５】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移することが決定すると前記第一の通信線から受信する、書換え状態用データを用いることを特徴とする請求項１から請求項１４のいずれか一項に記載の電子制御装置。
【請求項１６】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、予め定めた値を用いることを特徴とする請求項１から請求項１５のいずれか一項に記載の電子制御装置。
【請求項１７】
前記第一の電子制御装置は、
複数の仮想コアを動作させることができる仮想マシンを実装し、前記仮想コアのうち一つにおいて、前記代替プログラムを実行し、別の仮想コアにおいて、前記書換え状態時プログラムを実行することを特徴とする請求項１から請求項１６のいずれか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の電子制御装置のプログラムの書換えを行いながら、制御対象の状態に適した制御を継続可能とする電子制御装置に関する。
【背景技術】
【０００２】
自動車や船舶には、エンジンの点火時期やステアリングモータの制御を行うための電子制御装置（以下、ＥＣＵ）が搭載されている。高度な制御を実現するために、ＥＣＵは互いに通信線で接続されたネットワークシステムを構築しており、制御対象の状態などを示すデータを共有している。
【０００３】
このようなネットワークシステムの構造として、セントラルゲートウェイ型構造や、ドメイン型構造が提案されている。セントラルゲートウェイ型構造とは、図２６に示すような、制御対象分野（ドメイン）毎にネットワークを構築し、各ネットワーク間を中継、管理するセントラルゲートウェイと呼ばれるＥＣＵを用いる構造である。ドメイン型構造とは、図２７に示すような、ドメイン毎に下層ネットワークを管理するドメインコントローラと呼ばれるＥＣＵを設け、ドメインコントローラ間を高速な上層ネットワークで接続する構造である。
【０００４】
近年、これらのネットワークシステムを構築するＥＣＵは、実行するプログラムを、書換え可能なメモリに格納し、必要に応じて新しいプログラム（以下、書換えプログラム）へ書換えられるようにしている。これらの書換えでは、ネットワークを介して接続した外部装置などが、書換えプログラムを送信したり、書換え対象のＥＣＵへ書換え開始を指示したりする。
【０００５】
通常、ネットワークを介した書換え中は、書換えの失敗を回避するため、書換え対象のＥＣＵが接続されたネットワーク上には、書換えプログラムなどの書換え用途のデータのみが送信可能となっている。したがって、書換え対象のＥＣＵや、同じネットワークに接続されたその他のＥＣＵは、車両の制御に必要な制御データを送受信することができず、書換え中は走行できなかったり、適切な車両状態の表示ができなかったりといった問題が発生する。
【０００６】
そこで、書換えと、走行などのＥＣＵの通常の制御を両立させるために、例えば特許文献１では、ドメイン型構造のネットワークにおいて、ドメインコントローラに書換えプログラムを蓄積する方法が提案されている。この方法では、書換え対象のＥＣＵが接続されているドメインコントローラは、外部装置などから上層ネットワークを介して書換えプログラムを含むデータを受信すると、そのデータをドメインコントローラ内のメモリに格納する。その後、下層ネットワークでのデータの送受信を停止させ、書換え対象のＥＣＵの書換えを開始する。書換え中は、下層ネットワークに接続されたＥＣＵはデータを送信できない。そこでドメインコントローラは、書換えを実行しながら、予め記憶しているデータを代替データとして上層ネットワークを介して他ドメインに送信する機能を備えている。これにより、他のドメインは、制御に必要なデータとして、この代替データを用いて制御を継続することができる。
【０００７】
代替データを用いる他の例として、特許文献２では、省電力を目的として停止中のＥＣＵに代わって代替データを送信するシステムが提案されている。この代替データでは、停止するＥＣＵが最後に送信したデータ（前回データ）を送信している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５３５３５４５号
【特許文献２】特開２０１３−６４５４
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記の特許文献１、２では、通常時には、実際の車両の状態に応じて変動あるいは算出され、送信されるデータが、書換え中には、代替データとして車両の状態に関わらず予め記憶された値や前回値といった固定値となる。したがって、この代替データを受信する他のＥＣＵは、実際の車両の状態に適した高度な制御を行うことができないという問題がある。
【００１０】
本発明は、上記の課題を解決するためになされたものであり、ＥＣＵの書換え中も、ドメインコントローラやセントラルゲートウェイといったデータの中継を行うＥＣＵが、ネットワークシステムの状態に適したデータを代替データとして送信することにより、他のＥＣＵがネットワークシステムの状態に適した高度な制御を継続可能とすることを目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、第一の電子制御装置と第二の電子制御装置が、第一の通信線を介して接続し、第一の電子制御装置と第三の電子制御装置が、第二の通信線を介して接続し、第一の電子制御装置は、第一のプログラムを実行する第一の演算手段と、第一のプログラムやデータを格納する第一の記憶手段とを備え、第一のプログラムには、二つの通信線のうちの一方から受信したデータを設定に従って他方へ送信する転送プログラムと、第二の電子制御装置が実行する書換えプログラムを、第三の電子制御装置から受信すると、第一の記憶手段に格納する格納プログラムと、第二の電子制御装置の書換えを実行する書換え状態時には、第二の通信線から受信したデータの第一の通信線への送信を禁止するとともに、第一の記憶手段に格納された書換えプログラムを第二の電子制御装置へ送信する書換え状態時プログラムと、格納プログラムによって格納される書換えプログラムを含む代替プログラムとを含み、第二の電子制御装置は、第二のプログラムを実行し、実行によって得られた真データを第二の通信線へ送信し、第一の電子制御装置から受信した書換えプログラムによって、第二のプログラムを更新するネットワークシステムにおいて、第一の電子制御装置は、書換え状態時に、第一の記憶手段に格納された代替プログラムに含まれる書換えプログラムを実行し、実行によって得られた代替データを第二の通信線へ送信することを特徴とするものである。
【発明の効果】
【００１２】
本発明に係る電子制御装置によれば、本発明に係る電子制御装置は格納した書換えプログラムを用いて、書換え対象の電子制御装置を書換えプログラムにより書換えるとともに、格納した書換えプログラムを実行し、得られたデータを代替データとして送信するので、書換え対象ではない他の電子制御装置はネットワークシステムの状態に適した高度な制御を継続できる。
【００１３】
また、書換え中に書換えプログラムの実行によって得られる代替データは、前回値や固定値などの予め定められたデータよりも、ネットワークシステムの状態に即した値を示すため、書換え前から書換え中、書換え中から書換え後の切り替わり時に、データの変動量が小さくなり、走行中に車両が不自然な挙動をしたり、またそれらの挙動を避けるためのデータ補正を行ったりといった複雑な処理が不要になる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る電子制御装置におけるゲートウェイＥＣＵの構成図である。
【図２】実施の形態１に係る電子制御装置における転送プログラムのフローチャートである。
【図３】実施の形態１に係る電子制御装置における格納プログラムのフローチャートである。
【図４】実施の形態１に係る電子制御装置における書換え状態時プログラムのフローチャートである。
【図５】実施の形態２に係る電子制御装置におけるゲートウェイＥＣＵの構成図である。
【図６】実施の形態２に係る電子制御装置における転送プログラムのフローチャートである。
【図７】実施の形態２に係る電子制御装置における格納プログラムのフローチャートである。
【図８】実施の形態２に係る電子制御装置における書換え状態時プログラムのフローチャートである。
【図９】実施の形態２に係る電子制御装置におけるサブＥＣＵが実行する書換えプログラムの入出力構成図である。
【図１０】実施の形態２に係る電子制御装置におけるゲートウェイＥＣＵが実行する書換えプログラムの入出力構成図である。
【図１１】実施の形態３に係る電子制御装置におけるゲートウェイＥＣＵの構成図である。
【図１２】実施の形態３に係る電子制御装置における転送プログラムのフローチャートである。
【図１３】実施の形態３に係る電子制御装置における格納プログラムのフローチャートである。
【図１４】実施の形態３に係る電子制御装置における書換え状態時プログラムのフローチャートである。
【図１５】実施の形態３に係る電子制御装置における非書換え対象サブＥＣＵが実行する非書換えプログラムの入出力構成図である。
【図１６】実施の形態３に係る電子制御装置におけるゲートウェイＥＣＵが実行する非書換えプログラムの入出力構成図である。
【図１７】実施の形態３に係る電子制御装置におけるゲートウェイＥＣＵが第２の書換え状態用データから決定する推定データの例を示す図である。
【図１８】実施の形態４に係る電子制御装置におけるゲートウェイＥＣＵの構成図である。
【図１９】実施の形態４に係る電子制御装置における第２の代替データ決定テーブルを示す図である。
【図２０】実施の形態４に係る電子制御装置における転送プログラムのフローチャートである。
【図２１】実施の形態４に係る電子制御装置における格納プログラムのフローチャートである。
【図２２】実施の形態４に係る電子制御装置における書換え状態時プログラムのフローチャートである。
【図２３】実施の形態５に係る電子制御装置におけるサブＥＣＵが実行する書換えプログラムの入出力構成図である。
【図２４】実施の形態５に係る電子制御装置におけるゲートウェイＥＣＵが実行する書換えプログラムの入出力構成図である。
【図２５】実施の形態６に係る電子制御装置におけるゲートウェイＥＣＵのプロセッサ上でのハイパーバイザと各プログラム実行割り当てを示す図である。
【図２６】背景技術に係るセントラルゲートウェイ型構造のネットワークシステム例を示す図である。
【図２７】背景技術に係るドメイン型構造のネットワークシステム例を示す図である。
【発明を実施するための形態】
【００１５】
実施の形態１．
以下に、本発明の実施の形態１に係る車両に搭載されるゲートウェイＥＣＵ１０１について説明する。
【００１６】
ゲートウェイＥＣＵ１０１の機能は、通常状態と書換え状態の2つの状態に分類される。
通常状態ではサブＥＣＵ１０２と他ドメインＥＣＵＸ１０３や他ドメインＥＣＵＹ１０４間のデータの送受信を中継するゲートウェイ機能を持つ。書換え状態ではサブＥＣＵ１０２の書換えを実行しながら、サブＥＣＵ１０２に代わってサブＥＣＵのプログラム（以下、書換えプログラム）を実行し、データ（以下、代替データ）を他ドメインＥＣＵＸ１０３へ送信する機能を持つ。
【００１７】
図１は、本発明の実施の形態１に係るゲートウェイＥＣＵ１０１の構成図である。
第一の電子制御装置であるゲートウェイＥＣＵ１０１は、第一の通信線であるＣＡＮ通信線１０５を介して第二の電子制御装置であるサブＥＣＵ１０２と接続し、ＦｌｅｘＲａｙ通信線１０６を介して第三の電子制御装置である他ドメインＥＣＵＸ１０３や他ドメインＥＣＵＹ１０４と接続したネットワークシステムを構築している。
サブＥＣＵ１０２には制御対象であるアクチュエータＡ１０７や制御対象の状態を検出するセンサＡ１０８、他ドメインＥＣＵＸ１０３にはセンサＢ１０９やアクチュエータＢ１１０、他ドメインＥＣＵＹ１０４には受信アンテナ１１１が接続されている。サブＥＣＵ１０２と他ドメインＥＣＵＸ１０３や他ドメインＥＣＵＹ１０４間では制御対象の制御量や状態を示すデータ（以下、制御データ）を送受信して共有することで、高度な制御を実現している。
他ドメインＥＣＵＸ１０３は、制御データとして他ドメインデータ１２４を送信し、サブＥＣＵ１０２は、制御データとして真データ１２５を送信しているものとする。ゲートウェイＥＣＵ１０１は通常状態ではこれらのデータを中継する。
また、他ドメインＥＣＵＹ１０４は、受信アンテナ１１１によってサブＥＣＵ１０２が実行する書換えプログラムを外部から取得すると、ＦｌｅｘＲａｙ通信線１０６を介してゲートウェイＥＣＵ１０１に送信する機能を備える。
ここでは便宜上、４つのＥＣＵ１０１〜１０４のみ記載しているが、これらのＥＣＵが更に別の通信線と接続していたり、ＦｌｅｘＲａｙ通信線１０６に他のＥＣＵが接続されていたり、ゲートウェイＥＣＵ１０１に別の制御対象が接続されていてもよい。
【００１８】
ゲートウェイＥＣＵ１０１は、演算処理を行うプロセッサ１１２、ＣＡＮ通信インタフェース１１３、ＦｌｅｘＲａｙ通信インタフェース１１４、プログラム１１５やデータ１１６を格納するメモリ１１７を備える。
【００１９】
プロセッサ１１２は、メモリ１１７に格納されたプログラム１１５を実行する。ＣＡＮ通信インタフェース１１３は、ＣＡＮ通信プロトコルに従って通信を行う。ＦｌｅｘＲａｙ通信インタフェース１１４は、ＦｌｅｘＲａｙ通信プロトコルに従って通信を行う。メモリ１１７には、プログラム１１５とデータ１１６が格納される。プログラム１１５には、転送プログラム１２０、格納プログラム１２１、書換え状態時プログラム１２２、切替えプログラム１２３が含まれている。メモリ１１７内には、書換えプログラム１２３を格納可能な領域も確保されている。データ１１６には、他ドメインデータ１２４、真データ１２５、代替データ１２６、書換え状態フラグ１２７が含まれる。真データ１２５と代替データ１２６は、同じ領域を使用し、新しい方のデータが格納される。
【００２０】
転送プログラム１２０は、ＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３から受信した他ドメインデータ１２４を、ＣＡＮ通信線１０５を介してサブＥＣＵ１０２へ送信したり、ＣＡＮ通信線１０５を介してサブＥＣＵ１０２から受信した真データ１２５を、ＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３へ送信したりするプログラムである。
【００２１】
格納プログラム１２１は、他ドメインＥＣＵＹ１０４から受信するサブＥＣＵ１０２用の書換えプログラム１２３を、メモリ１１７内の書換えプログラム１２３用の格納領域へ格納するプログラムである。
【００２２】
書換え状態時プログラム１２２は、サブＥＣＵ１０２に対して書換え開始を通知し、メモリ１１７に格納してある書換えプログラム１２３を、サブＥＣＵ１０２へ送信するとともに、書換えが完了するまで、書換えプログラム１２３を実行するプログラムである。
【００２３】
書換えプログラム１２３は、アクチュエータＡ１０７を制御したり、センサＡ１０８の状態を取得して演算を行い、真データを出力して、他ドメインＥＣＵＸ１０３へ送信したりするために、サブＥＣＵ１０２が実行するプログラムである。前述のとおり他ドメインＥＣＵＹ１０４から送信され、一度ゲートウェイＥＣＵ１０１に格納された後、サブＥＣＵ１０２へ送信され、サブＥＣＵ１０２に格納されているプログラムを上書きする。さらに、書換え状態時にはゲートウェイＥＣＵ１０１も実行するプログラムである。
【００２４】
他ドメインデータ１２４は、通常状態、書換え状態に関わらず、他ドメインＥＣＵＸ１０３から受信する制御データである。
【００２５】
真データ１２５は、通常状態時にサブＥＣＵ１０２から受信する制御データである。
【００２６】
代替データ１２６は、書換え状態時にゲートウェイＥＣＵ１０１が他ドメインＥＣＵＸ１０３へ送信する制御データである。
【００２７】
書換え状態フラグ１２７は、書換え状態になるとセットされるフラグである。
【００２８】
続いて、各プログラムの処理内容をフローチャートを用いて説明する。
【００２９】
転送プログラム１２０を、図２のフローチャートを用いて説明する。転送プログラム１２０は、ＣＡＮ通信インタフェース１１３やＦｌｅｘＲａｙ通信インタフェース１１４がデータを受信すると起動される。
ステップＳ２０１では、受信したデータがＦｌｅｘＲａｙ通信線１０６からのデータであるか判断する。ＦｌｅｘＲａｙ通信線１０６からのデータを受信したときにはステップＳ２０２に進み、それ以外の場合にはステップＳ２０８に進む。
ステップＳ２０２では、受信したデータが他ドメインデータ１２４であるか判断する。他ドメインデータ１２４である場合にはステップＳ２０３に進み、それ以外の場合にはステップＳ２０６に進む。これらの判断には、ＦｌｅｘＲａｙ通信プロトコルが定めるデータに付与されるＩＤを用いることができる。
ステップＳ２０３では、受信した他ドメインデータ１２４をメモリ１１７へ格納し、ステップＳ２０４に進む。
ステップＳ２０４では、メモリ１１７内の書換え状態フラグ１２８を参照し、ＯＮの場合には、受信した他ドメインデータ１２４はＣＡＮ通信線１０５へは送信（転送）せずに、処理を終了する。ＯＦＦの場合にはステップＳ２０５に進む。
ステップＳ２０５では、通常状態であるため、他ドメインデータ１２４をＣＡＮ通信線１０５へ転送し、処理を終了する。
ステップＳ２０２からステップＳ２０６に進んだ場合には、受信したデータが書換えプログラム１２３であるか判断する。書換えプログラム１２３である場合にはステップＳ２０７に進む。書換えプログラム１２３でない場合には、受信したデータに対する処理は不要であるとして、処理を終了する。
ステップＳ２０７では、格納プログラム１２１を起動して、処理を終了する。
ステップＳ２０１からステップＳ２０８に進んだ場合には、受信したデータがＣＡＮ通信線１０５からのデータであるか判断する。ＣＡＮ通信線１０５からのデータを受信したときにはステップＳ２０９に進む。ＣＡＮ通信線１０５からのデータの受信でない場合には、受信したデータに対する処理は不要であるとして、処理を終了する。
ステップＳ２０９では、受信したデータが真データ１２５であるか判断する。真データ１２５である場合にはステップＳ２１０に進み、それ以外の場合には受信したデータに対する処理は不要であるとして、処理を終了する。これらの判断には、ＣＡＮ通信プロトコルが定めるデータに付与されるＩＤを用いることができる。
ステップＳ２１０では、受信した真データ１２５をメモリ１１７へ格納し、ステップＳ２１１に進む。
ステップＳ２１１では、真データ１２５をＦｌｅｘＲａｙ通信線１０６へ転送し、処理を終了する。
【００３０】
転送プログラム１２０がステップＳ２０７で起動する格納プログラム１２１を、図３のフローチャートを用いて説明する。
ステップＳ３０１では、書換え状態フラグ１２７を参照し、ＯＦＦである場合には、ステップＳ３０２に進み、ＯＮの場合にはステップＳ３０４に進む。
ステップＳ３０２では、受信した書換えプログラム１２３で、メモリ１１７内の書換えプログラム１２３を上書きあるいは新規格納する。格納が完了すると、ステップＳ３０３に進む。
ステップＳ３０３では、書換えプログラム１２３のメモリ１１７への格納が完了していることから、書換え状態時プログラム１２２を起動し、処理を終了する。
一方、ステップＳ３０１からステップＳ３０４に進んだ場合には、メモリ１１７内の書換えプログラム１２３によって書換えを実行中であることから、新しく受信している書換えプログラム１２３は格納できないとして、書換えプログラム１２３の送信元である他ドメインＥＣＵＹ１０４に対して、書換え状態であることを通知して処理を終了する。他ドメインＥＣＵＹ１０４は、この通知を受けて、後でこのプログラムを再送したり、エラーであるとしてエラー処理をしたりするなど、対応することができる。
【００３１】
続いて、格納プログラム１２１がステップＳ３０３で起動する書換え状態時プログラム１２２を、図4のフローチャートを用いて説明する。
ステップＳ４０１では、ゲートウェイＥＣＵ１０１は書換え開始通知をＣＡＮ通信線１０５、すなわちサブＥＣＵ１０２へ送信する。サブＥＣＵ１０２は、この通知を受けて、アクチュエータＡ１０７の制御と真データ１２５の送信を停止し、プログラムの書換えに必要な状態に遷移する。そしてステップＳ４０２に進む。
ステップＳ４０２では、書換え状態であることを示す書換え状態フラグ１２７をＯＮにする。そしてステップＳ４０３に進む。
ステップＳ４０３では、格納プログラム１２１でメモリ１１７へ格納した書換えプログラム１２３を、サブＥＣＵ１０２へ送信して、書換えを開始し、ステップＳ４０４に進む。ステップＳ４０４では、サブＥＣＵ１０２から書換え完了通知を受信しているか判断する。書換え完了通知を受信している場合にはステップＳ４０７に進む。書換え完了通知を受信していない場合には、ステップＳ４０５に進む。書換え完了通知は、書換えが完了するとサブＥＣＵ１０２が送信するデータであるが、メモリ１１７には格納されないため、図１中には図示していない。
ステップＳ４０５では、ゲートウェイＥＣＵ１０１がメモリ１１７内の書換えプログラム１２３を実行し、実行によって得られたデータを代替データ１２６としてメモリ１１７へ格納し、ステップＳ４０６に進む。
ステップＳ４０６では、ステップＳ４０５で格納した代替データ１２６をＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３へ送信する。そして、ステップＳ４０４に戻る。
サブＥＣＵ１０２から書換え完了通知を受信し、ステップＳ４０７に進むと、ゲートウェイＥＣＵ１０１は書換え状態フラグ１２７をＯＦＦにし、書換え状態時プログラム１２２を終了する。サブＥＣＵ１０２は、書換え完了とともに、更新された書換えプログラム１２３の実行を開始し、真データ１２５の送信を再開する。
【００３２】
次に、図２から図４のフローチャートを用いてゲートウェイＥＣＵ１０１の動作を以下のケース１Ａ〜ケース１Ｃの３つに分けて説明する。
ケース１Ａ：通常状態、書換え状態フラグ１２７がＯＦＦであるときに他ドメインデータ１２４を受信
ケース１Ｂ：通常状態、書換え状態フラグ１２７がＯＦＦであるときに真データ１２５を受信
ケース１Ｃ：通常状態、書換え状態フラグ１２７がＯＦＦであるときに書換えプログラム１２３を受信
【００３３】
まず、ケース１Ａについて説明する。ゲートウェイＥＣＵ１０１は、他ドメインＥＣＵＸ１０３から制御データである他ドメインデータ１２４を受信すると、ステップＳ２０１〜ステップＳ２０５の順に進み、サブＥＣＵ１０２へ他ドメインデータ１２４を転送して処理を終了する。サブＥＣＵ１０２は、受信した他ドメインデータ１２４を入力の１つとしてプログラムを実行することで、アクチュエータＡ１０７の制御が可能になる。
【００３４】
次に、ケース１Ｂについて説明する。ゲートウェイＥＣＵ１０１は、サブＥＣＵ１０２から制御データである真データ１２５を受信すると、ステップＳ２０１、ステップＳ２０８〜ステップＳ２１１の順に進み、他ドメインＥＣＵＸ１０３へ真データ１２５を転送して処理を終了する。他ドメインＥＣＵＸ１０３は、受信した真データ１２５を入力の１つとしてプログラムを実行することで、アクチュエータＢ１１０の制御が可能になる。
【００３５】
次に、ケース１Ｃについて説明する。ゲートウェイＥＣＵ１０１は、他ドメインＥＣＵＹ１０４から書換えプログラム１２３を受信すると、ステップＳ２０１〜ステップＳ２０２、ステップＳ２０６〜ステップＳ２０７の順に進み、格納プログラム１２１を起動する。格納プログラム１２１では、書換え状態フラグ１２７がＯＦＦであることから、ステップＳ３０１〜ステップＳ３０３の順に進み、受信した書換えプログラム１２３をメモリ１１７に格納した後、書換えを実行するために書換え状態時プログラム１２２を起動する。
書換え状態時プログラム１２２では、ステップＳ４０１〜ステップＳ４０２の順に進み、書換え開始をサブＥＣＵ１０２へ通知し、書換え状態フラグ１２７をＯＮにする。この通知を受けてサブＥＣＵ１０２は真データ１２５の送信を停止し、書換え準備を行う。続いてゲートウェイＥＣＵ１０１はステップＳ４０３からステップＳ４０４に進み、書換えプログラム１２３をサブＥＣＵ１０２へ送信し、サブＥＣＵ１０２の書換えを実行する。さらに、ゲートウェイＥＣＵ１０１はサブＥＣＵ１０２からの書換え完了通知を待ちながら、ステップＳ４０５でサブＥＣＵ１０２を書換え中であるのと同じ書換えプログラム１２３を、自ＥＣＵ１０１でも実行し、得られたデータを代替データ１２６としてメモリ１１７へ格納する。そして、ステップＳ４０６において、代替データ１２６を他ドメインＥＣＵＸ１０３へ送信する。この書換えプログラム１２３の実行と得られた代替データ１２６の送信は、サブＥＣＵ１０２からの書換え完了通知が来るまで継続する。サブＥＣＵ１０２から書換え完了通知が来ると、ステップＳ４０７において書換え状態フラグ１２７をＯＦＦにして書換え状態時プログラムを終了する。これによりケース１Ａ〜ケース１Ｃで説明した処理が再開される。また、サブＥＣＵ１０２は、更新された書換えプログラム１２３の実行を開始し、実行の結果得られる制御データを真データ１２５として、ＣＡＮ通信線１０５への送信を再開する。
この書換え状態時プログラム１２２を実行中も、ＦｌｅｘＲａｙ通信線１０６上ではゲートウェイＥＣＵ１０１と他ドメインＥＣＵＸ１０３や他ドメインＥＣＵＹ１０４間で通常状態と変わらずデータの送受信が可能である。他ドメインＥＣＵＸ１０３からデータを受信した場合、転送プログラム１２０は起動するが、書換え状態フラグ１２８がＯＮであればＣＡＮ通信線１０５への転送は行わないため、書換え状態時にＣＡＮ通信線１０５上に書換え用途以外のデータが送信されることはない。また書換え状態時はサブＥＣＵ１０２も書換え用途以外のデータは送信しない。これにより安全にサブＥＣＵ１０２を書換えることができる。
【００３６】
このように、ゲートウェイＥＣＵ１０１は、サブＥＣＵ１０２を書換えながら、サブＥＣＵ１０２が実行するのと同じ書換えプログラム１２３を実行し、その結果得られたデータを、真データ１２５の代替データ１２６として送信する。したがって、書換えプログラム１２３の実行結果ではない固定値や前回値を代替データとする場合よりも、他ドメインＥＣＵＸ１０３は、書換え状態時にも変動しうる車両の状態に即した制御を行うことができる。また、書換え前から書換え中、書換え中から書換え後のすべてに至って、常に書換えプログラム１２３の実行結果を制御データとすることから、固定値や前回値を使用するよりも、制御データの値の変動は小さくなり、車両の走行や計器が不自然な挙動を示したりすることがなく、固定値や前回値を使用する場合に、不自然な挙動を避けるために実装されるデータ補正といった複雑な処理が不要になる。
【００３７】
なお、本実施の形態１では、プログラム１１５とデータ１１６を格納するメモリ１１７を1つ設けたが、プログラム１１５はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、データ１１６はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）など、分けて格納してもよいし、その他の記憶媒体を用いてもよい。
【００３８】
また、本実施の形態１では、ゲートウェイＥＣＵ１０１が接続する通信線の通信プロトコルとして、ＣＡＮとＦｌｅｘＲａｙを用いたが、これに限らず、ＬＩＮやＥｔｈｅｒｎｅｔ(登録商標）であってもよい。
【００３９】
また、本実施の形態１では、ゲートウェイＥＣＵ１０１の機能を、転送プログラム１２０や格納プログラム１２１や書換え状態時プログラム１２２のフローチャートで示した処理順序で実現したが、この順序に関わらず、同様の機能を果たすプログラムであればよい。
【００４０】
また、本実施の形態１では、ゲートウェイＥＣＵ１０１は転送プログラム１２０、格納プログラム１２１、書換え状態時プログラム１２２、書換えプログラム１２３のみ実行していたが、ゲートウェイＥＣＵ１０１が他の制御対象に接続して制御を行っているなど、他の機能も備えているものであってもよい。
【００４１】
また、本実施の形態１では、書換え対象としてサブＥＣＵ１０２が１つの場合を示したが、複数のＥＣＵを書換え対象として、並列して複数の種類の書換えプログラムを実行するものであってもよい。
【００４２】
実施の形態２．
以下に、本発明の実施の形態２に係る車両に搭載されるゲートウェイＥＣＵ５０１について説明する。ゲートウェイＥＣＵ５０１は実施の形態１におけるゲートウェイＥＣＵ１０１と同じく通常状態と書換え状態を持つ。
【００４３】
図５は、本発明の実施の形態２に係るゲートウェイＥＣＵ５０１の構成図である。図５中、図１と同一、相当部分には同一符号を付し、説明を省略する。
【００４４】
ゲートウェイＥＣＵ５０１は、図１の構成に加えて、送信周期タイマ５２８と、切替タイマ５２９を備える。また、メモリ１１７のデータ１１６内に、書換え状態用データ５３０を備える。
【００４５】
送信周期タイマ５２８は、ゲートウェイＥＣＵ５０１が代替データ１２６を送信するタイミングを決定するために使用し、一度開始すると、停止を指示されるまでは、タイマ満了後に再度あらかじめ定められた初期値から自動的に計測を開始する周期的なタイマである。
【００４６】
切替タイマ５２９は、サブＥＣＵ１０２の書換えを完了し、書換え状態フラグ１２７がＯＮからＯＦＦになったあと、所定の期間を計測するために使用し、満了するとその状態で計測を停止するタイマである。
【００４７】
書換え状態用データ５３０は、ゲートウェイＥＣＵ５０１がサブＥＣＵ１０２を書換える前にサブＥＣＵ１０２から受信するデータである。
【００４８】
転送プログラム５２０、格納プログラム５２１、書換え状態時プログラム５２２には、実施の形態１で説明した処理に、送信周期タイマ５２８、切替タイマ５２９、書換え状態用データ５３０を用いた処理が追加される。各プログラムの処理内容をフローチャートを用いて説明する。
【００４９】
転送プログラム５２０を、図６のフローチャートを用いて説明する。図６中、図２と同一、相当部分には同一符号を付し、説明を省略する。
ステップＳ６０９では、受信したデータが真データ１２５か判断する。真データ１２５である場合にはステップＳ２１０に進み、それ以外の場合にはステップＳ６１５に進む。
ステップＳ６１１では、切替タイマ５２９が停止中であるか判断する。停止中の場合には、ステップＳ６１２に進む。一方、動作中の場合には、書換え状態から通常状態へ切り替わった直後であることから、真データ１２５は転送せずに処理を終了する。
ステップＳ６１２では、送信周期タイマ５２８が動作しているか判断する。動作中の場合には、ステップＳ６１４に進み、動作していない場合にはステップＳ６１３に進む。
ステップＳ６１３では、送信周期タイマ５２８を開始し、ステップＳ６１４に進む。このようにすることで、送信周期タイマ５２８はＣＡＮ通信線１０５からＦｌｅｘＲａｙ通信線１０６へ真データ１２５を初めて転送するときに開始されることになる。
ステップＳ６１４では、真データ１２５をＦｌｅｘＲａｙ通信線１０６へ転送し、送信周期タイマ５２８をリセットし、処理を終了する。
一方、ステップＳ６０９からステップＳ６１５に進んだ場合には、受信したデータが書換え状態用データ５３０か判断する。書換え状態用データ５３０である場合にはステップＳ６１６に進み、それ以外の場合には、受信したデータに対する処理は不要であるとして、処理を終了する。
ステップＳ６１６では、受信した書換え状態用データ５３０をメモリ１１７へ格納し、処理を終了する。
【００５０】
転送プログラム５２０がステップＳ２０７で起動する格納プログラム５２１を、図７のフローチャートを用いて説明する。図７中、図３と同一、相当部分には同一符号を付し、説明を省略する。
ステップＳ７０２では、切替タイマ５２９が停止中であるか判断する。停止中の場合には、通常状態であり、かつ書換え状態から遷移した直後ではないと判断でき、ステップＳ３０２に進む。一方、切替タイマ５２９が動作中の場合には、書換え状態から通常状態へ切り替わった直後であり、ゲートウェイＥＣＵ５０１が書換えプログラム１２３を実行中であることから、ステップＳ７０３に進む。
ステップＳ７０３では、ゲートウェイＥＣＵ５０１が実行中の書換えプログラム１２３を停止し、メモリ内１１７の書換えプログラム１２３を更新可能な状態にする。また、切替タイマ５２９を停止する。そしてステップＳ３０２に進む。
【００５１】
続いて、格納プログラム５２１がステップＳ３０３で起動する書換え状態時プログラム５２２を、図８のフローチャートを用いて説明する。図８中、図４と同一、相当部分には同一符号を付し、説明を省略する。
ゲートウェイＥＣＵ５０１は、書換え開始を通知し、書換え状態フラグをＯＮにした後、ステップＳ８０３では、サブＥＣＵ１０２から書換え状態用データ５３０を受信するまで待機する。書換え状態用データ５３０を受信するとステップＳ４０３に進む。
また、書換えプログラム１２３を実行し、代替データ１２６を格納した後、ステップＳ８０７では、送信周期タイマ５２８が満了するまで待機する。送信周期タイマ５２８が満了すると、ステップＳ８０８に進む。
ステップＳ８０８では、ステップＳ４０５で格納した代替データ１２６をＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３へ送信するとともに、送信周期タイマ５２８をリセットする。そして、ステップＳ４０４に戻る。
ステップＳ４０４において、サブＥＣＵ１０２から書換え完了通知を受信し、ステップＳ８０９に進むと、ゲートウェイＥＣＵ５０１は切替タイマ５２９を開始し、ステップＳ４０７に進む。サブＥＣＵ１０２は、書換え完了とともに、更新された書換えプログラム１２３の実行を開始し、実行の結果得られる制御データを真データ１２５として、ＣＡＮ通信線１０５へ送信を再開する。
次に、ステップＳ４０７では、書換え状態フラグ１２７をＯＦＦにした後、ステップＳ８１１では、切替タイマ５２９が満了しているか判断する。満了している場合には、ステップＳ８１５に進み、満了していない場合にはステップＳ８１２に進む。
ステップＳ８１２〜ステップＳ８１４の動作は、ステップＳ８０６〜ステップＳ８０８の動作と同じであるため、説明を省略する。ただし、ステップＳ８１４では代替データ１２６の送信を完了すると、ステップＳ８１１に戻る。
ステップＳ８１５では、満了した切替タイマ５１９を終了し、書換え状態時プログラム５２２を終了する。
【００５２】
次に、図６から図８のフローチャートを用いてゲートウェイＥＣＵ５０１の動作を以下のケース２Ａ〜ケース２Ｃの３つに分けて説明する。
ケース２Ａ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替タイマ５２９が停止中に他ドメインデータ１２４を受信
ケース２Ｂ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替タイマ５２９が停止中に真データ１２５を受信
ケース２Ｃ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替タイマ５２９が停止中に書換えプログラム１２３を受信
【００５３】
ケース２Ａについては、実施の形態１ケース１Ａと同じ動作になるため、説明を省略する。
【００５４】
次に、ケース２Ｂについて説明する。ゲートウェイＥＣＵ５０１は、サブＥＣＵ１０２から制御データである真データ１２５を受信すると、ステップＳ２０１、ステップＳ２０８、ステップＳ６０９、ステップＳ２１０、ステップ６１１〜ステップＳ６１２、ステップＳ６１４の順に進み、他ドメインＥＣＵＸ１０３へ真データ１２５を転送して処理を終了する。ただし、初めて真データ１２５を転送する際は送信周期タイマ５２８が動作していないため、Ｓ６１２からＳ６１３へ進んで送信周期タイマ５２８を開始した後に、Ｓ６１４に進んで転送を行う。他ドメインＥＣＵＸ１０３は、受信した真データ１２５を入力の１つとしてプログラムを実行することで、アクチュエータＢ１１０の制御が可能になる。
【００５５】
次に、ケース２Ｃについて説明する。ゲートウェイＥＣＵ５０１は、他ドメインＥＣＵＹ１０４から書換えプログラム１２３を受信すると、ステップＳ２０１〜ステップＳ２０２、ステップＳ２０６〜ステップＳ２０７の順に進み、格納プログラム５２１を起動する。格納プログラム５２１では、書換え状態フラグ１２７がＯＦＦ、切替タイマ５２９が停止中であることから、ステップＳ３０１、ステップＳ７０２、ステップＳ３０２〜ステップＳ３０３の順に進み、受信した書換えプログラム１２３をメモリ１１７に格納した後、書換えを実行するために書換え状態時プログラム５２２を起動する。
書換え状態時プログラム５２２では、ステップＳ４０１〜ステップＳ４０２の順に進み、書換え開始をサブＥＣＵ１０２へ通知し、書換え状態フラグ１２７をＯＮにする。この通知を受けてサブＥＣＵ１０２は書換え準備を行うとともに、書換え状態用データ５３０をゲートウェイＥＣＵ５０１へ送信する。ゲートウェイＥＣＵ５０１では、書換え状態フラグ１２７がＯＮであっても、データを受信すると転送プログラム５２０が起動し、ステップＳ２０１、ステップＳ２０８、ステップＳ６０９、ステップＳ６１５〜ステップＳ６１６の順に進み、書換え状態用データ５３０を受信することができる。その結果、ステップＳ８０３からステップＳ４０３に進み、書換えプログラム１２３をサブＥＣＵ１０２へ送信し、サブＥＣＵ１０２の書換えを実行する。さらに、ゲートウェイＥＣＵ５０１はサブＥＣＵ１０２からの書換え完了通知を待ちながら、ステップＳ４０５でサブＥＣＵ１０２で書換え中であるのと同じ書換えプログラム１２３を実行し、得られたデータを代替データ１２６としてメモリ１１７へ格納する。そして、ステップＳ８０７からステップＳ８０８において、送信周期タイマ５２８が満了するタイミングで、代替データ１２６を他ドメインＥＣＵＸ１０３へ送信する。また、送信とともに送信周期タイマ５２８をリセットする。この書換えプログラム１２３の実行と得られた代替データ１２６の周期送信を、サブＥＣＵ１０２からの書換え完了通知が来るまで継続する。サブＥＣＵ１０２から書換え完了通知が来ると、ステップＳ８０９以降では、切替タイマ５２９を開始、書換え状態フラグ１２７をＯＦＦにし、切替タイマ５２９が満了するまで、ステップＳ４０５からステップＳ８０８と同じように、書換えプログラム１２３の実行と、送信周期タイマ５１８満了タイミングでの代替データ１２６の送信を継続する。サブＥＣＵ１０２は、書換え完了とともに、更新された書換えプログラム１２３の実行を開始し、実行の結果得られる制御データを真データ１２５として、ＣＡＮ通信線１０５へ送信を再開する。しかし、ゲートウェイＥＣＵ５０１は切替タイマ５２９が停止するまでは、上記のとおり、真データ１２５のＦｌｅｘＲａｙ通信線１０６への転送は行わない。切替タイマ５２９が満了すると、切替タイマ５２９を停止し、書換え状態時プログラムを終了する。これにより書換えプログラム１２３は実行されなくなり、ケース２Ａとケース２Ｂで説明した処理が再開され、サブＥＣＵ１０２が送信する真データ１２５のＦｌｅｘＲａｙ通信線１０６への転送が再開される。
【００５６】
このように、ゲートウェイＥＣＵ５０１は、サブＥＣＵ１０２の書換えが完了した後も、切替タイマ５２９が満了するまでは、書換えプログラム１２３の実行と、その結果得られる代替データ１２６の送信を継続する。また、切替タイマ５２９が満了するまでは、書換えが完了したサブＥＣＵ１０２が送信する真データ１２５は他ドメインＥＣＵＸ１０３へ中継しない。このように直ちに代替データ１２６の送信を停止しない理由として、書換え完了直後は、サブＥＣＵ１０２は初期化処理が必要であり、真データ１２５の送信開始まで時間がかかることや、真データ１２５の出力に必要なプログラムの入力として、他ドメインデータ１２４を受信して使用するようになるまで時間がかかることなどが挙げられる。したがって、これらの真データ１２５の送信が再開され、値が安定するまでは、他ドメインＥＣＵＸ１０３はゲートウェイＥＣＵ５０１が書換えプログラム１２３を実行して送信する代替データ１２６を使用することができ、ネットワークシステムの状態に即した制御を行うことができる。
【００５７】
また、サブＥＣＵ１０２は送信周期タイマ５２８を用いて代替データ１２６の送信タイミングを決定する。これにより、通常状態から書換え状態への遷移時に、真データ１２５と代替データ１２６の送信間隔が短すぎるということがなくなるため、受信元である他ドメインＥＣＵＸ１０３の受信処理にかかる負荷が増加したり、受信間隔が短すぎるエラーと判断されたりすることがない。また、送信周期タイマ５２８の満了時間を、真データ１２５の送信周期と同じにすれば、書換え状態時も、サブＥＣＵ１０２が真データ１２５を送信するのと同じ周期で、ゲートウェイＥＣＵ５０１は代替データ１２６を送信することができる。
【００５８】
続いて、真データ１２５や代替データ１２６の出力に必要な書換えプログラム１２３の入力について説明する。なお、本実施の形態２では、書換えによってサブＥＣＵ１０２が実行するプログラムの演算内容は変化するが、入出力の種類は変化しないとする。したがって、便宜上、書換え前後に実行されるプログラムとも書換えプログラム１２３と呼ぶ。
【００５９】
通常状態時に、サブＥＣＵ１０２が実行する書換えプログラム１２３の入出力を図９を用いて説明する。この書換えプログラム１２３の入力としては、他ドメインＥＣＵＸ１０３が送信し、ゲートウェイＥＣＵ５０１を介してサブＥＣＵ１０２が受信した他ドメインデータ１２４、サブＥＣＵ１０２に接続されたセンサＡ１０８からのセンサデータ、そして前回書換えプログラム１２３を実行したときの実行結果（以下、前回値データ）が必要である。これらの入力を用いてサブＥＣＵ１０２は書換えプログラム１２３を実行し、実行した結果得られたデータを真データ１２５として、ゲートウェイＥＣＵ５０１へ送信する。
【００６０】
書換え状態時には、同じ書換えプログラム１２３をゲートウェイＥＣＵ５０１が実行する。このときの書換えプログラム１２３の入出力を図１０を用いて説明する。
サブＥＣＵ１０２での実行時に使用した他ドメインデータ１２４は、書換え状態時にも、ゲートウェイＥＣＵ５０１は転送プログラム５２０によって他ドメインＥＣＵＸ１０３から受信することができるため、サブＥＣＵ１０２での実行と同じように使用することができる。
一方、センサＡ１０８のデータは、書換え状態時にはＣＡＮ通信線１０５は制御データを送信することはできないことから、ゲートウェイＥＣＵ５０１は入手することができない。また、このセンサＡ１０８のデータはサブＥＣＵ１０２内部でのみ使用するため、サブＥＣＵ１０２はＣＡＮ通信線１０５へ出力しておらず、ゲートウェイＥＣＵ５０１は通常状態であってもセンサＡ１０８のデータを受信していない。この代わりとして、ゲートウェイＥＣＵ５０１は書換え状態時プログラム５２２のステップＳ４０１において書換え開始をサブＥＣＵ１０２へ通知すると、サブＥＣＵ１０２はゲートウェイＥＣＵ５０１へセンサＡ１０８からの最新のデータを書換え状態用データ５３０として送信してから、書換えに必要な状態に遷移する。ゲートウェイＥＣＵ５０１は、ステップＳ８０３においてこの書換え状態用データ５３０を受信してから書換えを開始する。したがって、この書換え状態用データ５３０を、センサデータとして、書換えプログラム１２３の入力に使用することができる。
さらに、ゲートウェイＥＣＵ５０１は通常状態での転送プログラム５２０によるＣＡＮ通信線１０５からＦｌｅｘＲａｙ通信線１０６へのデータの転送において、ステップＳ２１０で真データ１２５をメモリ１１７に格納している。したがって、通常状態から書換え状態へ遷移した後、ゲートウェイＥＣＵ５０１が最初に書換えプログラム１２３を実行する際には、最後にゲートウェイＥＣＵ５０１がサブＥＣＵ１０２から受信した真データ１２５を前回値データとすることができる。また、書換えプログラム１２３の２回目以降の実行時は、初回書換えプログラム１２３の実行によって得られた代替データ１２６を使用すればよい。
【００６１】
このように、ゲートウェイＥＣＵ５０１は、書換えプログラム１２３の実行に必要な入力として、書換え状態時にも受信可能である他ドメインＥＣＵＸ１０３からの他ドメインデータ１２４を使用することができる。したがって、書換え状態時にもネットワークシステムの最新状態を示すデータを用いて書換えプログラム１２３を実行し、代替データ１２６を算出することができる。
【００６２】
また、書換えプログラム１２３の実行に必要な入力として、書換え状態に遷移する直前にサブＥＣＵ１０２が書換え状態用に送信した書換え状態用データ５３０を使用する。したがって、通常状態時や書換え状態時には受信することがないデータを用いて書換えプログラム１２３を実行し、書換え状態時にも変動しうるネットワークシステムの状態に即した代替データ１２６を算出することができる。
【００６３】
また、書換えプログラム１２３の実行に必要な入力として、書換え状態に遷移する前に最後にサブＥＣＵ１０２から受信した真データ１２５を前回値データとして、また２回目以降の書換えプログラム１２３の実行では、ゲートウェイＥＣＵ５０１が実行した書換えプログラム１２３の出力（代替データ１２６）を前回値データとして使用することができる。したがって、サブＥＣＵ１０２から受信した真データ１２５やゲートウェイＥＣＵ５０１が実行した書換えプログラム１２３の前回の実行結果を使用することにより、書換え状態時にも変動しうるネットワークシステムの状態に即した代替データ１２６を算出することができる。
【００６４】
以上より、本実施の形態２においては、ゲートウェイＥＣＵ５０１がサブＥＣＵ１０２の書換えと同時に、他ドメインＥＣＵＸ１０３から受信した他ドメインデータ１２４や、書換え前に書換え状態時用に受信した書換え状態用データ５３０や、書換えプログラムの前回の実行結果（真データ１２５や代替データ１２６）を入力として書換えプログラム１２３を実行し、得られたデータを代替データ１２６として、定められた周期に従って送信する。また、書換え完了後も、所定の時間が経過するまでは、真データ１２５ではなく代替データ１２６を送信する。これにより、このデータを利用する他ドメインＥＣＵＸ１０３は、書換えプログラム１２３の出力ではない固定値や前回値などを使用する場合と比べて、車両の状態に即したデータを入力として、制御を行うことができる。
【００６５】
実施の形態３．
以下に、本発明の実施の形態３に係る車両に搭載されるゲートウェイＥＣＵ１１０１について説明する。ゲートウェイＥＣＵ１１０１は本発明の実施の形態１におけるゲートウェイＥＣＵ１０１と同じく通常状態と書換え状態を持つ。
【００６６】
図１１は、本発明の実施の形態３に係るゲートウェイＥＣＵ１１０１の構成図である。図１１中、図１と同一、相当部分には同一符号を付し、説明を省略する。
ゲートウェイＥＣＵ１１０１は、ＣＡＮ通信線１０５を介して、サブＥＣＵ１０２の他に非書換え対象サブＥＣＵ１１３１とも接続している。
第四の電子制御装置である非書換え対象サブＥＣＵ１１３１には制御対象であるアクチュエータＣ１１３２と制御対象の状態を検出するセンサＣ１１３３が接続されており、他ドメインＥＣＵＸ１０３と制御データを送受信して共有することで、高度な制御を実現している。
非書換え対象サブＥＣＵ１１３１は、制御データとして第２の真データ１１３９を送信している。また、書換え状態時に備えて、通常状態時もセンサＣ１１３３のデータを周期的に送信している。非書換え対象サブＥＣＵ１１３１は書換え対象ではないため、ゲートウェイＥＣＵ１１０１が書換え状態になっても、非書換え対象サブＥＣＵ１１３１のプログラムは書換えられることはない。しかし、サブＥＣＵ１０２が書換え中は、ＣＡＮ通信線１０５上には書換え用途のデータのみ送信可能であるため、非書換え対象サブＥＣＵ１１３１が制御データを送信したり、他ドメインＥＣＵＸ１０３から制御データを受信したりすることはできない。
他ドメインＥＣＵＸ１０３は、アクチュエータＢ１１０の制御のために、真データ１２５あるいは代替データ１２６に加えて、非書換え対象サブＥＣＵが送信する第２の真データ１１３９を使用する。
【００６７】
ゲートウェイＥＣＵ１１０１は、図１の構成に加えて、第２の代替データ用送信周期タイマ１１３４と、切替監視タイマ１１３５を備える。また、メモリ１１７のプログラム１１５内に、非書換えプログラム１１３６を格納可能な領域を備える。さらに、メモリ１１７のデータ１１６内に、差分基準データ１１３７、第２の書換え状態用データＦＩＦＯ１１３８、第２の真データ１１３９、第２の代替データ１１４０を備える。なお、実施の形態１では、真データ１２５と代替データ１２６は同じ領域を使用していたが、本実施の形態３では、図１１に示す通り、別々の領域を使用するものとする。
【００６８】
第２の代替データ用送信周期タイマ１１３４は、ゲートウェイＥＣＵ１１０１が第２の代替データ１１４０を送信するタイミングを決定するために使用し、一度開始すると、停止を指示されるまでは、タイマ満了後に再度あらかじめ定められた初期値から自動的に計測を開始する周期的なタイマである。
【００６９】
切替監視タイマ１１３５は、サブＥＣＵ１０２の書換えを完了し、書換え状態フラグ１２７がＯＮからＯＦＦになったあと、所定の期間を計測するために使用し、満了するとその状態で計測を停止するタイマである。
【００７０】
非書換えプログラム１１３６は、アクチュエータＣ１１３２を制御したり、センサＣ１１３３の状態を取得して演算を行い、第２の真データを出力して、他ドメインＥＣＵＸ１０３へ送信したりするために、非書換え対象サブＥＣＵ１１３１が実行するプログラム、もしくはプログラムのうち、第２のデータを出力するために必要な一部分である。
【００７１】
差分基準データ１１３７は、真データ１２５と代替データ１２６の差分を比較する際の基準となるデータである。本実施の形態３では、あらかじめ値Ｑが定められているものとする。
【００７２】
第２の書換え状態用データＦＩＦＯ１１３８は、通常状態時に、非書換え対象サブＥＣＵ１１３１から周期的に受信するセンサＣ１１３３のデータを、受信した順に複数格納するＦｉｒｓｔＩｎＦｉｒｓｔＯｕｔの格納領域である。ＦＩＦＯがＦＵＬＬとなった場合には、古いものから順に新しいもので上書きされる。
【００７３】
第２の真データ１１３９は、通常状態時に非書換え対象サブＥＣＵ１１３１から受信する制御データである。
【００７４】
第２の代替データ１１４０は、書換え状態時にゲートウェイＥＣＵ１１０１が他ドメインＥＣＵＸ１０３へ送信する制御データである。
【００７５】
転送プログラム１１２０、格納プログラム１１２１、書換え状態時プログラム１１２２には、実施の形態１で説明した処理に、第２の代替データ用送信周期タイマ１１３４、切替監視タイマ１１３５、非書換えプログラム１１３６、差分基準データ１１３７、第２の書換え状態用データＦＩＦＯ１１３８、第２の真データ１１３９、第２の代替データ１１４０を用いた処理が追加される。各プログラムの処理内容をフローチャートを用いて説明する。
【００７６】
転送プログラム１１２０を、図１２のフローチャートを用いて説明する。図１２中、図２と同一、相当部分には同一符号を付し、説明を省略する。
ステップＳ２０２からステップＳ１２０６に進んだ場合には、受信したデータが書換えプログラム１２３とそれに続く非書換えプログラム１１３６であるか判断する。書換えプログラム１２３と非書換えプログラム１１３６である場合には、ステップＳ２０７に進む。書換えプログラム１２３と非書換えプログラム１１３６でない場合には、受信したデータに対する処理は不要であるとして、処理を終了する。
ステップＳ２０８からステップＳ１２１１に進んだ場合には、受信したデータが真データ１２５であるか判断する。真データ１２５である場合にはステップＳ２１０に進み、それ以外の場合にはステップＳ１２１３に進む。
ステップＳ１２１２では、切替監視タイマ１１３５が停止中であるか判断する。停止中の場合にはステップＳ２１１に進む。一方、動作中の場合には、書換え状態から通常状態へ切り替わった直後であることから、真データ１２５は転送せずに処理を終了する。
ステップＳ１２１１からステップＳ１２１３に進んだ場合には、受信したデータが第２の真データ１１３９であるか判断する。第２の真データ１１３９である場合にはステップＳ１２１４に進み、それ以外の場合にはステップＳ１２１８に進む。
ステップＳ１２１４では、受信した第２の真データ１１３９をメモリ１１７へ格納し、ステップＳ１２１５に進む。
ステップＳ１２１５では、第２の代替データ用送信周期タイマ１１３４が動作しているか判断する。動作中の場合には、ステップＳ１２１７に進み、動作していない場合にはステップＳ１２１６に進む。
ステップＳ１２１６では、第２の代替データ用送信周期タイマ１１３４を開始し、ステップＳ１２１７に進む。このようにすることで、第２の代替データ用送信周期タイマ１１３４はＣＡＮ通信線１０５からＦｌｅｘＲａｙ通信線１０６へ第２の真データ１１３９を初めて転送するときに開始されることになる。
ステップ１２１７では、第２の真データ１１３９をＦｌｅｘＲａｙ通信線１０６へ転送し、第２の代替データ用送信周期タイマ１１３４をリセットし、処理を終了する。
一方、ステップＳ１２１３からステップＳ１２１８に進んだ場合には、受信したデータがセンサＣ１１３３のデータであるか判断する。センサＣ１１３３のデータである場合にはステップＳ１２１９に進み、それ以外の場合には、受信したデータに対する処理は不要であるとして処理を終了する。
ステップＳ１２１９では、受信したセンサＣ１１３３をメモリ１１７の第２の書換え状態用データＦＩＦＯ１１３８へ格納し、処理を終了する。
【００７７】
続いて、転送プログラム１１２０がステップＳ２０７で起動する格納プログラム１１２１を、図１３のフローチャートを用いて説明する。図１３中、図３と同一、相当部分には同一符号を付し、説明を省略する。
ステップＳ１３０１では、切替監視タイマ１１３５が停止中であるか判断する。停止中の場合には、通常状態であり、かつ書換え状態から遷移した直後ではないと判断でき、ステップＳ１３０３に進む。一方、切替監視タイマ１１３５が動作中の場合には、書換え状態から通常状態へ切り替わった直後であり、ゲートウェイＥＣＵ１１０１が書換えプログラム１２３と非書換えプログラム１１３６を実行中であることから、ステップＳ１３０２に進む。
ステップＳ１３０２では、ゲートウェイＥＣＵ１１０１が実行中の書換えプログラム１２３と非書換えプログラム１１３６を停止し、メモリ内１１７の書換えプログラム１２３と非書換えプログラム１１３６を更新可能な状態にする。また、切替監視タイマ１１３５を停止する。そしてステップＳ１３０３に進む。
ステップＳ１３０３では、受信した書換えプログラム１２３と非書換えプログラム１１３６で、メモリ１１７内の書換えプログラム１２３と非書換えプログラム１１３６をそれぞれ上書きあるいは新規格納する。格納が完了すると、ステップＳ３０３に進む。
【００７８】
続いて、格納プログラム１１２１がステップＳ３０３で起動する書換え状態時プログラム１１２２を、図１４のフローチャートを用いて説明する。図１４中、図４と同一、相当部分には同一符号を付し、説明を省略する。
ゲートウェイＥＣＵ１１０１は、サブＥＣＵ１０２からの書換え完了通知を待つ間、ステップＳ１４０１では、メモリ１１７内の書換えプログラム１２３と非書換えプログラム１１３６を実行し、実行によって得られたデータをそれぞれ代替データ１２６と第２の代替データ１１４０としてメモリ１１７へ格納し、ステップＳ１４０２に進む。
ステップＳ１４０２では、ステップＳ１４０１で格納した代替データ１２６をＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３へ送信する。そしてステップＳ１４０３に進む。
ステップＳ１４０３では、第２の代替データ用送信周期タイマ１１３４が満了するまで待機する。第２の代替データ用送信周期タイマ１１３４が満了すると、ステップＳ１４０４に進む。
ステップＳ１４０４では、ステップＳ１４０１で格納した第２の代替データ１１４０をＦｌｅｘＲａｙ通信線１０６を介して他ドメインＥＣＵＸ１０３へ送信するとともに、第２の代替データ用送信周期タイマ１１３４をリセットする。そしてステップＳ４０４に戻る。
ステップＳ４０４において、サブＥＣＵ１０２から書換え完了通知を受信し、ステップＳ１４０５に進むと、ゲートウェイＥＣＵ１１０１は切替監視タイマ１１３５を開始し、ステップＳ４０７に進む。サブＥＣＵ１０２は書換え完了とともに、更新された書換えプログラム１２３の実行を開始し、実行の結果得られる制御データを真データ１２５として、ＣＡＮ通信線１０５へ送信を再開する。また、非書換え対象サブＥＣＵ１１３１も、この書換え完了通知を受信することができ、第２の真データ１１３９とセンサＣ１１３３のデータの送信を再開する。ゲートウェイＥＣＵ１１０１は、第２の真データ１１３９をＣＡＮ通信線１０５を介して受信すると、ＦｌｅｘＲａｙ通信線１０６への転送を行う。
ステップＳ１４０６では、切替監視タイマが満了しているか判断する。満了している場合にはステップＳ１４０７に進み、満了していない場合にはステップＳ１４０８に進む。
ステップＳ１４０７では、サブＥＣＵ１０２の書換えが失敗していると判断されるため、エラー処理を実施し、書換え状態時プログラム１１２２を終了する。エラー処理は、ゲートウェイＥＣＵ１１０１が書換えプログラム１２３を再送して、サブＥＣＵ１０２を再度書換えたり、書換えプログラム１２３を他ドメインＥＣＵＹ１０４から再度受信したりするなど考えられる。
一方、ステップＳ１４０６において、切替監視タイマ１１３５が満了していないためステップＳ１４０８に進むと、書換えプログラム１２３を実行し、実行によって得られたデータを代替データ１２６としてメモリ１１７へ格納し、ステップＳ１４０９に進む。
ステップＳ１４０９では、ステップＳ１４０８で格納した代替データ１２６と、ステップＳ４０４において書換え完了通知受信後、サブＥＣＵ１０２が送信を再開し、転送プログラム１１２０のステップＳ２１０でメモリ１１７へ格納されるようになった真データ１２５との差分を、差分基準データ１１３７の値Ｑと比較する。そして、次の式が満たされれば、ステップＳ１４１１に進み、満たされなければ、ステップＳ１４１０に進む。
（式）：  ｜代替データ１２６  −  真データ１２５｜  ≦  Ｑ
ステップＳ１４１０では、サブＥＣＵ１０２による書換えプログラム１２３の実行結果である真データ１２５の値が安定していないとして、ゲートウェイＥＣＵ１１０１が書換えプログラム１２３を実行した結果である代替データ１２６をＦｌｅｘＲａｙ通信線１０６へ送信する。そしてステップＳ１４０６に戻る。
一方、Ｓ１４０９で条件が満たされると、ステップＳ１４１１では、書換え後の真データ１２５の値が安定しているとして、真データ１２５のＦｌｅｘＲａｙ通信線１０６への転送を行うため、切替監視タイマ１１３５を終了し、書換え状態時プログラム１１２２を終了する。
【００７９】
次に、図１２から図１４のフローチャートを用いてゲートウェイＥＣＵ１１０１の動作を以下のケース３Ａ〜ケース３Ｃの３つに分けて説明する。
ケース３Ａ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替監視タイマ１１３５が停止中に他ドメインデータ１２４を受信
ケース３Ｂ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替監視タイマ１１３５が停止中に真データ１２５を受信
ケース３Ｃ：通常状態、書換え状態フラグ１２７がＯＦＦ、切替監視タイマ１１３５が停止中に書換えプログラム１２３と非書換えプログラム１１３６を受信
【００８０】
ケース３Ａとケース３Ｂについては、実施の形態１のケース１Ａとケース１Ｂと同じ動作になるため、説明を省略する。
【００８１】
次に、ケース３Ｃについて説明する。ゲートウェイＥＣＵ１１０１は、他ドメインＥＣＵＹ１０４から書換えプログラム１２３と非書換えプログラム１１３６を受信すると、転送プログラム１１２０においてステップＳ２０１〜ステップＳ２０２、ステップＳ１２０６、ステップＳ２０７の順に進み、格納プログラム１１２１を起動する。
格納プログラム１１２１では、書換え状態フラグ１２７がＯＦＦ、切替監視タイマ１１３５が停止中であることから、ステップＳ３０１、ステップＳ１３０１、ステップＳ１３０３、ステップＳ３０３の順に進み、受信した書換えプログラム１２３と非書換えプログラム１１３６をメモリ１１７に格納した後、書換えを実行するために書換え状態時プログラム１１２２を起動する。
書換え状態時プログラム１１２２では、ステップＳ４０１〜ステップＳ４０４の順に進み、書換え開始をサブＥＣＵ１０２へ通知し、書換え状態フラグ１２７をＯＮにする。この通知を受けて、サブＥＣＵ１０２は書換え準備を行う。また、非書換え対象サブＥＣＵ１１３１も送信や受信処理を停止し、サブＥＣＵ１０２からの書換え完了通知を待つ。
その後、ゲートウェイＥＣＵ１１０１はサブＥＣＵ１０２からの書換え完了通知を待ちながら、ステップＳ１４０１においてサブＥＣＵ１０２で書換え中であるのと同じ書換えプログラム１２３と、非書換え対象ＥＣＵ１１３１が第２の真データ１１３９を出力するのに使用するのと同じ非書換えプログラム１１３６を実行する。そして書換えプログラム１２３の実行により得られたデータを代替データ１２６として送信する。また、非書換えプログラム１１３６の実行により得られたデータを第２の代替データ１１４０として、第２の代替データ用送信周期タイマ１１３４が満了するタイミングで、他ドメインＥＣＵＸ１０３へ送信する。また、送信とともに送信周期タイマ１１３４をリセットする。これらの書換えプログラム１２３と非書換えプログラム１１３６の実行と、得られた代替データ１２６や第２の代替データ１１４０の周期送信を、サブＥＣＵ１０２からの書換え完了通知が来るまで継続する。サブＥＣＵ１０２から書換え完了通知が来ると、ステップＳ１４０５以降では、切替監視タイマ１１３５を開始、書換え状態フラグ１２７をＯＦＦにする。また、書換え完了通知により、サブＥＣＵ１０２と非書換え対象サブＥＣＵ１１３１は、それぞれデータの送信を開始する。これによりゲートウェイＥＣＵ１１０１は、非書換え対象サブＥＣＵ１１３１が送信する第２の真データ１１３９については、ＦｌｅｘＲａｙ通信線１０７への転送を再開する。しかし、書換え直後であるサブＥＣＵ１０２が送信する真データ１２５は、値が安定するのを待つ必要がある。そこで、切替監視タイマ１１３５が満了しない限り、真データ１２５の値が条件を満たすまで、ゲートウェイＥＣＵ１１０１は書換えプログラム１２３の実行と得られる代替データ１２６の送信を継続し、得られる代替データ１２６と、受信する真データ１２５の比較を行って、この値の差分が差分基準データ１１３７の値Ｑ以下となるまで、代替データ１２６をＦｌｅｘＲａｙ通信線１０７へ送信する。条件値Ｑを満たすと、サブＥＣＵ１０２の書換えが成功し、真データ１２５が他ドメインＥＣＵＸ１０３での制御に使用可能な信頼性を持つと判断され、ゲートウェイＥＣＵ１１０１は真データ１２５についてもＦｌｅｘＲａｙ通信線１０７への転送を再開する。一方、この差分が条件値Ｑを満たす前に切替監視タイマ１１３５が満了した場合には、サブＥＣＵ１０２の書換えが失敗し、サブＥＣＵ１０２が送信する真データ１２５は信頼性が低いものとして、エラー処理を開始する。
【００８２】
このように、ゲートウェイＥＣＵ１１０１は、サブＥＣＵ１０２の書換えが完了した後も、切替監視タイマ１１３５が満了するか、条件を満たすまでは、サブＥＣＵ１０２の書換えプログラム１２３の実行を継続する。そして、実行の結果得られた代替データ１２６を真データ１２５と比較し、差分が差分基準データ１１３７の値Ｑよりも小さくなり、書換えが正常に終了したと判断できるようになるまでは、代替データ１２６を他ドメインＥＣＵＸ１０３へ送信し、真データ１２５は中継しない。このように、真データ１２５と代替データ１２５を比較することで、実施の形態２で述べたように、真データ１２５の値が安定するまで待つことに加えて、書換えが正常に完了したと判断できるようになるまでは、他ドメインＥＣＵＸ１０３はゲートウェイＥＣＵ１１０１が書換えプログラム１２３を実行して送信する代替データ１２６を使用することができ、ネットワークシステムの状態に即した制御を行うことができる。
さらに、切替監視タイマ１１３５を備えることで、サブＥＣＵ１０２に異常が発生している場合にこれを検出することができるようになり、書換えを再度実行するなどのエラー処理を行えるようになる。
【００８３】
また、ゲートウェイＥＣＵ１１０１は、通常状態時には、非書換え対象サブＥＣＵ１１３１が送信するデータを、書換え状態時に、第２の代替データ１１４０により送信する。さらに、この第２の代替データ１１４０を出力するために、書換え対象であるサブＥＣＵ１０２の他に、非書換え対象サブＥＣＵ１１３１が実行するプログラム、あるいはその一部を実行する。これにより、非書換え対象サブＥＣＵ１１３１が送信するデータとして、非書換えプログラム１１３６の出力ではない固定値や前回値などを使用する場合よりも、他ドメインＥＣＵＸ１０３は、書換え状態時にも変動しうるネットワークシステムの状態に即したデータを入力として、制御を行うことができる。
【００８４】
さらにまた、ゲートウェイＥＣＵ１１０１は、書換え状態時に実行する非書換えプログラム１１３６を、書換えプログラム１２３とともに受信している。これにより、書換え対象のＥＣＵ以外のプログラムをゲートウェイＥＣＵ１１０１があらかじめ備えておく必要がない。また、書換え対象のＥＣＵが変更されても、必要な非書換え対象のＥＣＵのプログラムを、その変更に応じて受信して、第２の代替データ１１４０を送信することができる。
【００８５】
さらにまた、ゲートウェイＥＣＵ１１０１は第２の代替データ用送信周期タイマ１１３４を用いて第２の代替データ１１４０の送信タイミングを決定する。これにより、通常状態から書換え状態への遷移時に、第２の真データ１１３９と第２の代替データ１１４０の送信間隔が短すぎるということがなくなるため、受信元である他ドメインＥＣＵＸ１０３の受信処理にかかる負荷が増加したり、受信間隔が短すぎるエラーと判断されたりすることがない。また、第２の代替データ用送信周期タイマ１１３４の満了時間を、第２の真データ１１３９の送信周期と同じにすれば、書換え状態時も、非書換え対象サブＥＣＵ１１３１が第２の真データ１１３９を送信するのと同じ周期で、ゲートウェイＥＣＵ１１０１は第２の代替データ１１４０を送信することができる。
【００８６】
続いて、第２の真データ１１３９や第２の代替データ１１４０の出力に必要な非書換えプログラム１１３６の入力について説明する。
【００８７】
通常状態時に、非書換え対象サブＥＣＵ１１３１が実行する非書換えプログラム１１３６の入出力を図１５を用いて説明する。この非書換えプログラム１１３６の入力としては、他ドメインＥＣＵＸ１０３が送信し、ゲートウェイＥＣＵ１１０１を介して受信した他ドメインデータ１２４と、非書換え対象サブＥＣＵ１１３１に接続されたセンサＣ１１３３からのセンサデータが必要である。これらの入力を用いて非書換え対象サブＥＣＵ１１３１は非書換えプログラム１１３６を実行し、実行した結果得られたデータを第２の真データ１１３９として、ゲートウェイＥＣＵ１１０１へ送信する。
【００８８】
書換え状態時には、同じ非書換えプログラム１１３６をゲートウェイＥＣＵ１１０１が実行する。このときの非書換えプログラム１１３６の入出力を図１６を用いて説明する。
非書換え対象サブＥＣＵ１１３１での実行時に使用した他ドメインデータ１２４は、書換え状態時にも、ゲートウェイＥＣＵ１１０１は転送プログラム１１２０によって他ドメインＥＣＵＸ１０３から受信することができるため、非書換え対象サブＥＣＵ１１３１での実行と同じように使用することができる。
一方、センサＣ１１３３のデータは、書換え状態時にはＣＡＮ通信線１０５は制御データを送信することはできないことから、ゲートウェイＥＣＵ１１０１は入手することができない。しかし、通常状態時に、非書換え対象サブＥＣＵ１１３１は、センサＣ１１３３のデータを周期的にゲートウェイＥＣＵ１１０１へ送信しており、ゲートウェイＥＣＵ１１０１はこれを第２の書換え状態用データＦＩＦＯ１１３８へ格納している。ゲートウェイＥＣＵ１１０１は、これらの書換え状態遷移前までのセンサＣ１１３３の複数回分のデータを使用して、センサＣ１１３３の推定データを決定し、センサデータとして、非書換えプログラム１１３６の入力に使用することができる。
例えば、センサＣ１１３３のデータが、サイン波形状に変化する性質をもち、かつ周波数が変更される頻度は高くないとする。その場合、図１７に示すように、それまでのデータ複数回分から、次回のデータの値を推定することができる。したがって、このようにして第２の書換え状態用データＦＩＦＯ１１３８に格納された複数回分のデータから、書換え状態時にも、センサＣ１１３３のデータを推定することが可能であり、この推定データを非書換えプログラム１１３６の入力に使用することができる。
【００８９】
このように、ゲートウェイＥＣＵ１１０１は、非書換えプログラム１１３６の実行に必要な入力として、書換え状態に遷移する前に非書換え対象サブＥＣＵ１１３１から受信したセンサＣ１１３３のデータを第２の書換え状態用データＦＩＦＯ１１３８に複数回分格納する。これにより、書換え状態時のセンサＣ１１３３のデータを推定し、推定データを使って非書換えプログラム１１３６の入力とすることができる。したがって、非書換えプログラム１１３６の入力として常に固定値を使用する場合よりも、書換え状態時にも変動しうるネットワークシステムの状態により即したデータを用いて非書換えプログラム１１３６を実行し、第２の代替データ１１４０を算出することができる。
【００９０】
以上より、本実施の形態３においては、ゲートウェイＥＣＵ１１０１はサブＥＣＵ１０２の書換えと書換えプログラム１２３の実行結果である代替データ１２６の送信に加えて、サブＥＣＵ１０２と同じＣＡＮ通信線１０５に接続された非書換え対象サブＥＣＵ１１３１に代わる第２の代替データ１１４０も送信する。また、第２の代替データ１１４０は、非書換え対象サブＥＣＵ１１３１が実行する非書換えプログラム１１３６の少なくとも一部を書換えプログラム１２３とともにゲートウェイＥＣＵ１１０１が格納し、非書換え対象サブＥＣＵ１１３１から受信した過去のデータをもとに決定した推定データを入力として、非書換えプログラム１１３６実行して定められた周期に従って送信する。これにより、第２の真データ１１３９を利用する他ドメインＥＣＵＸ１０３は、非書換えプログラム１１３６の出力ではない固定値や前回値などを使用する場合と比べて、車両の状態に即したデータを入力として、制御を行うことができる。
また、書換え完了後も、真データ１２５の値を監視し、切替監視タイマ１１３５が満了するまでか、そのタイマの停止条件となる差分基準データ１１３７を満たすまでは、真データ１２５ではなく代替データ１２６を送信する。これにより、書換えが正常に完了したか判断し、異常である場合には、エラー処理を実行することができる。
【００９１】
なお、本実施の形態３では、非書換えプログラム１１３６の入力として推定データを用いたが、書換えプログラム１１２３の入力として推定データを用いるものであってもよい。
【００９２】
実施の形態４．
以下に、本発明の実施の形態４に係る車両に搭載されるゲートウェイＥＣＵ１８０１について説明する。ゲートウェイＥＣＵ１８０１は実施の形態３におけるゲートウェイＥＣＵ１１０１と同じく通常状態と書換え状態を持つ。
【００９３】
図１８は、本発明の実施の形態４に係るゲートウェイＥＣＵ１８０１の構成図である。図１８中、図１１と同一、相当部分には同一符号を付し、説明を省略する。
ゲートウェイＥＣＵ１８０１は、図１１の構成に加えて、プログラム１１５内に第２の代替データ決定テーブル１８４１を備える。一方、図１１の構成に存在していたプログラム１１５内の非書換えプログラム１１３６と、データ１１６内の第２の書換え状態用データＦＩＦＯ１１３８は備えていない。
【００９４】
第２の代替データ決定テーブル１８４１は、代替データ１２６を入力として、第２の代替データ１１４０を出力とする。第２の代替データ決定テーブル１８４１の例を図１９に示す。
【００９５】
転送プログラム１８２０を、図２０のフローチャートに示す。図２０中、全ステップは、図２あるいは図１２と同一、相当部分であるため、同一符号を付し、説明を省略する。
【００９６】
格納プログラム１８２１を、図２１のフローチャートに示す。図２１中、全ステップは、図３あるいは図１３と同一、相当部分であるため、同一符号を付し、説明を省略する。
【００９７】
書換え状態時プログラム１８２２を、図２２のフローチャートに示す。図２２中、図４あるいは図１４と同一、相当部分には同一符号を付し、説明を省略する。
ゲートウェイＥＣＵ１８０１は、ステップＳ４０５において書換えプログラムを実行し、得られたデータを代替データとしてメモリへ格納する。
続いて、ステップＳ２２０１において、ステップＳ４０５で得られた代替データを入力として、第２の代替データ決定テーブルから、第２の代替データを決定し、メモリへ格納する。
【００９８】
このように、ゲートウェイＥＣＵ１８０１は、通常状態時には、非書換え対象サブＥＣＵ１１３１が送信するデータを、書換え状態時に、第２の代替データ１１４０により送信する。この第２の代替データ１１４０を決定するために、書換えプログラム１２３の実行結果から得られた代替データ１２６と、第２の代替データ決定テーブル１８４１を用いる。これにより、非書換え対象サブＥＣＵ１１３１が送信するデータとして、固定値や前回値を第２の代替データ１１４０とする場合よりも、他ドメインＥＣＵＸ１０３は、書換え状態時にも変動しうるネットワークシステムの状態に即した制御を行うことができる。また、非書換え対象サブＥＣＵ１１３１の実行プログラムをゲートウェイＥＣＵ１８０１が実行するよりも、ゲートウェイＥＣＵ１８０１の処理負荷やメモリのサイズを抑制することができる。
【００９９】
実施の形態５．
本発明の実施の形態５に係る車両に搭載されるゲートウェイＥＣＵ５０１の構成や、各プログラムの処理内容は、図５〜８に示した実施の形態２と同じであるため、ここでは説明を省略する。
【０１００】
本実施の形態５における、真データ１２５や代替データ１２６の出力に必要な書換えプログラム１２３の入力について説明する。
【０１０１】
通常状態時に、サブＥＣＵ１０２が実行する書換えプログラム１２３の入出力を図２３を用いて説明する。この書換えプログラム１２３の入力としては、実施の形態２において説明した、他ドメインデータ１２４、センサＡ１０８からのセンサデータ、前回値データに加えて、サブＥＣＵ１０２の状態を示す状態データが必要である。通常状態時は、この状態データは１に固定されているものとする。これらの入力を用いてサブＥＣＵ１０２は書換えプログラム１２３を実行し、得られた出力を真データ１２５として、ＣＡＮ通信線１０５を介してゲートウェイＥＣＵ５０１へ送信する。
【０１０２】
続いて、書換え状態時に、ゲートウェイＥＣＵ５０１が同じ書換えプログラム１２３を実行するときの入出力を図２４を用いて説明する。これも実施の形態２において説明した、他ドメインデータ１２４、書換え状態用データ５３０、前回値データ（真データ１２５あるいは代替データ１２６）に加えて、前述の状態データとして、固定値０を入力する。
【０１０３】
このようにすることで、例えば書換え状態時には演算不要なコードを、この状態データの値を０にすることによって実行しないようにしたりすることができる。
【０１０４】
このように、本実施の形態５では、書換えプログラム１２３の実行に必要な入力として、ゲートウェイＥＣＵ５０１はあらかじめ定めた値を入力の１つとして、書換え状態時に書換えプログラム１２３を実行し、代替データ１２６を出力することができる。これにより、書換えプログラム１２３の実行時間を減らしたり、書換え状態時には変化しない入力データの取得にかかる時間や、処理負荷を抑制したりすることができる。
【０１０５】
実施の形態６．
本発明の実施の形態６に係る車両に搭載されるゲートウェイＥＣＵ１０１の構成や、各プログラムの処理内容は、図１〜４に示した実施の形態１と同じものを用いるため、ここでは説明を省略する。
【０１０６】
本実施の形態６におけるゲートウェイＥＣＵ１０１のプロセッサ１１２上での各プログラム１２０〜１２３の実行割り当てを図２５を用いて説明する。ゲートウェイＥＣＵ１０１では、ハイパーバイザ技術を用いて、プロセッサ１１２のクロックリソースを時分割することにより、１つのプロセッサ１１２上に、ソフトウェアによって仮想的にコア（以下、仮想コア）を２つ設けている。仮想コアＡ２５０１上では、転送プログラム１２０、格納プログラム１２１、書換え状態時プログラム１２２を実行し、仮想コアＢ２５０２上では、書換えプログラム１２３を実行するように割り当てる。また、ハイパーバイザ２５０３は、これらの仮想コア２５０１、２５０２が使用する時間リソースやメモリリソースや、各仮想コア２５０１、２５０２がアクセスする周辺機能を管理する機能を持つ。
【０１０７】
例えば、サブＥＣＵ１０２上で実行することを目的として作成された書換えプログラム１２３は、実行結果を出力するためにＣＡＮ通信線１０５へアクセスしようとする。しかしゲートウェイＥＣＵ１０１では、ハードウェアの違いにより、ＣＡＮ通信線へのアクセス方法が異なる場合がある。また、ゲートウェイＥＣＵ１０１では、実行結果をＣＡＮ通信線１０５ではなく、メモリ１１７の代替データ１２６へ格納する必要がある。ハイパーバイザ２５０３は、このような書換えプログラム１２３のＣＡＮ通信線１０５へのアクセスを代替データ１２６へのアクセスへ変換する。
【０１０８】
このように、本実施の形態６におけるゲートウェイＥＣＵ１０１では、ハイパーバイザ２５０３を用いて、サブＥＣＵ１０２上で実行することを目的として作成された書換えプログラム１２３を、転送プログラム１２０、格納プログラム１２１、書換え状態時プログラム１２２とは別の仮想コアに実装する。
これにより、書換えプログラム１２３と他のプログラム１２０〜１２２間で、互いのリソースに意図せずアクセスすることを防ぐことができる。したがって、仮想コアＡ２５０１によるサブＥＣＵ１０２の書換えを安全に行うことができる。
また、ハイパーバイザ２５０３により、書換えプログラム１２３から、実行結果を出力するためのＣＡＮ通信線１０５などのハードウェアへのアクセス処理を代替データ１２６へのアクセス処理へ変換することができるため、ゲートウェイＥＣＵ１０１とサブＥＣＵ１０２とのハードウェアの違いを吸収し、本来実行することを想定していないゲートウェイＥＣＵ１０１のプロセッサ１１２上で、書換えプログラム１２３を実行し、代替データ１２６を出力することができる。
【０１０９】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【０１１０】
１０１  第一の電子制御装置（ゲートウェイＥＣＵ）、１０２  第二の電子制御装置（サブＥＣＵ）、１０３  第三の電子制御装置（他ドメインＥＣＵＸ）、１０４  第三の電子制御装置（他ドメインＥＣＵＹ）、１０５  第一の通信線（ＣＡＮ通信線）、１０６  第二の通信線（ＦｌｅｘＲａｙ通信線）、１１３１  第四の電子制御装置（非書換え対象サブＥＣＵ）。
【図１】
2015202710.tif 000003
【図２】
2015202710.tif 000004
【図３】
2015202710.tif 000005
【図４】
2015202710.tif 000006
【図５】
2015202710.tif 000007
【図６】
2015202710.tif 000008
【図７】
2015202710.tif 000009
【図８】
2015202710.tif 000010
【図９】
2015202710.tif 000011
【図１０】
2015202710.tif 000012
【図１１】
2015202710.tif 000013
【図１２】
2015202710.tif 000014
【図１３】
2015202710.tif 000015
【図１４】
2015202710.tif 000016
【図１５】
2015202710.tif 000017
【図１６】
2015202710.tif 000018
【図１７】
2015202710.tif 000019
【図１８】
2015202710.tif 000020
【図１９】
2015202710.tif 000021
【図２０】
2015202710.tif 000022
【図２１】
2015202710.tif 000023
【図２２】
2015202710.tif 000024
【図２３】
2015202710.tif 000025
【図２４】
2015202710.tif 000026
【図２５】
2015202710.tif 000027
【図２６】
2015202710.tif 000028
【図２７】
2015202710.tif 000029
【手続補正書】
【提出日】平成27年3月10日(2015.3.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第一の電子制御装置と第二の電子制御装置が、第一の通信線を介して接続し、前記第一の電子制御装置と第三の電子制御装置が、第二の通信線を介して接続し、前記第一の電子制御装置は、第一のプログラムを実行する第一の演算手段と、前記第一のプログラムやデータを格納する第一の記憶手段とを備え、前記第一のプログラムには、前記第一の通信線、前記第二の通信線のうちの一方から受信したデータを設定に従って他方へ送信する転送プログラムと、前記第二の電子制御装置が実行する書換えプログラムを、前記第三の電子制御装置から受信すると、前記第一の記憶手段に格納する格納プログラムと、前記第二の電子制御装置の書換えを実行する書換え状態時には、前記第二の通信線から受信したデータの前記第一の通信線への送信を禁止するとともに、前記第一の記憶手段に格納された前記書換えプログラムを前記第二の電子制御装置へ送信する書換え状態時プログラムと、前記格納プログラムによって格納される前記書換えプログラムを含む代替プログラムと、を含み、前記第二の電子制御装置は、通常状態時には、第二のプログラムを実行して得られた真データを前記第二の通信線へ送信し、切換え状態時には、前記第一の電子制御装置から受信した前記書換えプログラムによって、前記第二のプログラムを更新する、ネットワークシステムにおいて、前記第一の電子制御装置は、前記書換え状態時に、前記第一の記憶手段に格納された前記代替プログラムに含まれる前記書換えプログラムを実行し、実行によって得られた代替データを前記第二の通信線へ送信し、且つ前記書換え状態において前記第二の電子制御装置の前記第二のプログラムの更新を完了した後、予め決められた条件が満たされるまで、前記書換えプログラムを実行し、前記代替データを前記第二の通信線へ送信するものであって、前記予め決められた条件は、前記代替データと、前記第二の電子制御装置から受信する前記真データの差分が、予め決められた範囲内であることを特徴とする電子制御装置。
【請求項２】
前記予め決められた条件が、第二の期間経過時に満たされていなければ、前記第二の電子制御装置の前記第二のプログラムの前記書換えプログラムによる更新が異常終了したと判断して、エラー処理を開始することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記第一の電子制御装置は第一のタイマを備え、前記第二の電子制御装置から受信した前記真データを前記第二の通信線へ送信するときに、前記第一のタイマを開始し、前記書換え状態時に前記第一のタイマが満了すると、前記代替データを前記第二の通信線へ送信することを特徴とする請求項１または請求項２に記載の電子制御装置。
【請求項４】
前記第一の通信線に、第四の電子制御装置が接続され、前記第四の電子制御装置は、通常状態時には、第四のプログラムを実行し、実行によって得られた第二の真データを前記第二の通信線へ送信し、前記第一の電子制御装置は、前記書換え状態時に、前記第四の電子制御装置から前記第二の真データを受信しない間、第二の代替データを前記第二の通信線へ送信することを特徴とする請求項１から請求項３のいずれか一項に記載の電子制御装置。
【請求項５】
前記第一の電子制御装置は、前記第一の記憶手段の前記代替プログラムに、前記書換えプログラムの他に、前記第四のプログラムの少なくとも非書換えプログラムを含み、前記第四の制御装置から前記第二の真データを受信しない間、前記非書換えプログラムを実行し、実行によって得られたデータを前記第二の代替データとして前記第二の通信線へ送信することを特徴とする請求項４に記載の電子制御装置。
【請求項６】
前記第一の電子制御装置は、前記非書換えプログラムを、前記第三の電子制御装置から受信することを特徴とする請求項５に記載の電子制御装置。
【請求項７】
前記第一の電子制御装置は、前記第一の記憶手段に、前記代替データを入力とし、前記第二の代替データを出力とするテーブルを備え、前記代替データが更新されると、前記テーブルを用いて前記第二の代替データを決定し、前記第四の制御装置から前記第二の真データを受信しない間、前記第二の代替データを前記第二の通信線へ送信することを特徴とする請求項４に記載の電子制御装置。
【請求項８】
前記第一の電子制御装置は第二のタイマを備え、前記第四の電子制御装置から受信した前記第二の真データを前記第二の通信線へ送信するときに、前記第二のタイマを開始し、前記書換え状態時に前記第二のタイマが満了すると、前記第二の代替データを前記第二の通信線へ送信することを特徴とする請求項４から請求項７のいずれか一項に記載の電子制御装置。
【請求項９】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記第二の通信線から受信するデータを用いることを特徴とする請求項１から請求項８のいずれか一項に記載の電子制御装置。
【請求項１０】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移する前に前記第一の通信線から受信したデータの値を用いることを特徴とする請求項１から請求項９のいずれか一項に記載の電子制御装置。
【請求項１１】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移する前に前記第一の通信線から受信したデータの値から推定される、推定データを用いることを特徴とする請求項１から請求項１０のいずれか一項に記載の電子制御装置。
【請求項１２】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、前記書換え状態に遷移することが決定すると前記第一の通信線から受信する、書換え状態用データを用いることを特徴とする請求項１から請求項１１のいずれか一項に記載の電子制御装置。
【請求項１３】
前記第一の電子制御装置は、前記代替プログラムの実行に必要なデータとして、予め定めた値を用いることを特徴とする請求項１から請求項１２のいずれか一項に記載の電子制御装置。
【請求項１４】
前記第一の電子制御装置は、複数の仮想コアを動作させることができる仮想マシンを実装し、前記仮想コアのうち一つにおいて、前記代替プログラムを実行し、別の仮想コアにおいて、前記書換え状態時プログラムを実行することを特徴とする請求項１から請求項１３のいずれか一項に記載の電子制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記課題を解決するため、本発明は、第一の電子制御装置と第二の電子制御装置が、第一の通信線を介して接続し、第一の電子制御装置と第三の電子制御装置が、第二の通信線を介して接続し、第一の電子制御装置は、第一のプログラムを実行する第一の演算手段と、第一のプログラムやデータを格納する第一の記憶手段とを備え、第一のプログラムには、二つの通信線のうちの一方から受信したデータを設定に従って他方へ送信する転送プログラムと、第二の電子制御装置が実行する書換えプログラムを、第三の電子制御装置から受信すると、第一の記憶手段に格納する格納プログラムと、第二の電子制御装置の書換えを実行する書換え状態時には、第二の通信線から受信したデータの第一の通信線への送信を禁止するとともに、第一の記憶手段に格納された書換えプログラムを第二の電子制御装置へ送信する書換え状態時プログラムと、格納プログラムによって格納される書換えプログラムを含む代替プログラムとを含み、前記第二の電子制御装置は、通常状態時には、第二のプログラムを実行し、実行によって得られた真データを前記第二の通信線へ送信し、切換え状態時には、前記第一の電子制御装置から受信した前記書換えプログラムによって、前記第二のプログラムを更新する、ネットワークシステムにおいて、
前記第一の電子制御装置は、前記書換え状態時に、前記第一の記憶手段に格納された前記代替プログラムに含まれる前記書換えプログラムを実行し、実行によって得られた代替データを前記第二の通信線へ送信し、且つ前記書換え状態において前記第二の電子制御装置の前記第二のプログラムの更新を完了した後、予め決められた条件が満たされるまで、前記書換えプログラムを実行し、前記代替データを前記第二の通信線へ送信するものであって、前記予め決められた条件は、前記代替データと、前記第二の電子制御装置から受信する前記真データの差分が、予め決められた範囲内であることを特徴とするものである。