(57)【要約】【課題】外部からの各種要求に対して適切に調停する。【解決手段】電子制御装置１９〜２１は、第１状態として、第１デフォルトセッション、車両外部から有線を介して電子制御装置の診断を行うための有線診断セッション及び車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッションを有し、有線による診断を示す要求に基づいて有線診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて有線書換えセッションへ状態遷移させ、第２状態として、第２デフォルトセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、無線による書換えを示す要求に基づいて無線書換えセッションへ状態遷移させるアプリ実行部（３４）を備える。アプリ実行部は、第１状態と第２状態とを独立して管理し、第１デフォルトセッション又は有線診断セッションと、無線書換えセッションとを非排他的に確立する。【選択図】図１０
2020021506.tif 000002
【特許請求の範囲】
【請求項１】
第１状態として、第１デフォルトセッション、車両外部から有線を介して電子制御装置の診断を行うための有線診断セッション及び車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッションを有し、有線による診断を示す要求に基づいて前記有線診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて前記有線書換えセッションへ状態遷移させ、第２状態として、第２デフォルトセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、無線による書換えを示す要求に基づいて前記無線書換えセッションへ状態遷移させるアプリ実行部（３４）を備え、
前記アプリ実行部は、前記第１状態と前記第２状態とを独立して管理し、前記第１デフォルトセッション又は前記有線診断セッションと、前記無線書換えセッションとを非排他的に確立する電子制御装置（１９〜２１）。
【請求項２】
前記アプリ実行部は、前記第２状態として、車両外部から無線を介して電子制御装置の診断を行うための無線診断セッションを有し、無線による診断を示す要求に基づいて前記無線診断セッションへ状態遷移させる請求項１に記載した電子制御装置。
【請求項３】
前記アプリ実行部は、前記有線書換えセッションと、前記無線書換えセッションとを排他的に確立する請求項１又は２に記載した電子制御装置。
【請求項４】
状態として、デフォルトセッション、車両外部から有線又は無線を介して電子制御装置の診断を行うための診断セッション、車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、有線又は無線による診断を示す要求に基づいて前記診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて前記有線書換えセッションへ状態遷移させ、無線による書換えを示す要求に基づいて前記無線書換えセッションへ状態遷移させるアプリ実行部（３４）を備え、
前記アプリ実行部は、前記有線書換えセッションと前記無線書換えセッションとを排他的に確立し、前記無線書換えセッションを前記有線書換えセッションよりも優先するように排他的に確立する電子制御装置。
【請求項５】
状態として、デフォルトセッション、車両外部から有線又は無線を介して電子制御装置の診断を行うための診断セッション、車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、有線又は無線による診断を示す要求に基づいて前記診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて前記有線書換えセッションへ状態遷移させ、無線による書換えを示す要求に基づいて前記無線書換えセッションへ状態遷移させるアプリ実行部（３４）を備え、
前記アプリ実行部は、前記有線書換えセッションと前記無線書換えセッションとを排他的に確立し、前記有線書換えセッション及び前記無線書換えセッションのうち移行中の書換えセッションを優先するように排他的に確立する電子制御装置。
【請求項６】
アプリ領域を複数面で持ち、各アプリ領域に、車両制御を行う車両制御プログラムを含む第１プログラム、車両外部から有線を介して電子制御装置の診断を行う有線診断プログラムを含む第２プログラム及び車両外部から無線を介して電子制御装置の診断を行う無線診断プログラムと車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行う無線書換えプログラムとを含む第３プログラムが記憶されている記憶部（２６ｄ，３０ｄ）と、
前記第１プログラム、前記第２プログラム及び前記第３プログラムの実行を制御するアプリ実行部（３４）と、を備え、
前記記憶部には、車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行う有線書換えプログラムを含む第４プログラムが記憶されており、
前記アプリ実行部は、前記無線診断プログラムと前記無線書換えプログラムとを排他的に実行するように制御し、前記第１プログラムと前記第２プログラムと前記第３プログラムとを非排他的に実行するように制御し、前記第３プログラムと前記第４プログラムとを排他的に実行するように制御し、
前記第１プログラム、前記第２プログラム及び前記第３プログラムは、書換え可能として前記記憶部の各アプリ領域に記憶され、前記第４プログラムは、書換え不能として前記記憶部に記憶される電子制御装置（１９〜２１）。
【請求項７】
車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行う有線書換えの要求を特定する有線書換え要求特定部（３６）を備え、
前記アプリ実行部は、前記有線書換えの要求が前記有線書換え要求特定部により特定された場合に、前記第１プログラム、前記第２プログラム及び前記第３プログラムの実行を停止し、前記第４プログラムを実行する請求項６に記載した電子制御装置。
【請求項８】
アプリ領域を複数面で持ち、各アプリ領域に、車両制御を行う車両制御プログラムを含む第１プログラム及び車両外部から有線を介して電子制御装置の診断を行う有線診断プログラムと車両外部から無線を介して電子制御装置の診断を行う無線診断プログラムと車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行う無線書換えプログラムとを含む第２プログラムが記憶されている記憶部（２６ｄ，３０ｄ）と、
前記第１プログラム及び前記第２プログラムの実行を制御するアプリ実行部（３４）と、
前記記憶部には、車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行う有線書換えプログラムを含む第３プログラムが記憶されており、
前記アプリ実行部は、前記有線診断プログラムと前記無線診断プログラムと前記無線書換えプログラムとを排他的に実行するように制御し、前記第１プログラムと前記第２プログラムとを非排他的に実行するように制御し、前記第２プログラムと前記第３プログラムとを排他的に実行するように制御し、
前記第１プログラム及び前記第２プログラムは、書換え可能として前記記憶部の前記各アプリ領域に記憶され、前記第３プログラムは、書換え不能として前記記憶部に記憶される電子制御装置（１９〜２１）。
【請求項９】
車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行う有線書換えの要求を特定する有線書換え要求特定部（３６）を備え、
前記アプリ実行部は、前記有線書換えの要求が前記有線書換え要求特定部により特定された場合に、前記第１プログラム及び前記第２プログラムの実行を停止し、前記第３プログラムを実行するように制御する請求項８に記載した電子制御装置。
【請求項１０】
状態として、デフォルトセッション、車両外部から有線又は無線を介して電子制御装置の診断を行うための診断セッション、車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、有線又は無線による診断を示す要求に基づいて前記診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて前記有線書換えセッションへ状態遷移させ、無線による書換えを示す要求に基づいて前記無線書換えセッションへ状態遷移させる電子制御装置（１９〜２１）に、
前記有線書換えセッションと前記無線書換えセッションとを排他的に確立するセッション確立手順と、を実行させるセッション確立プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置及びセッション確立プログラムに関する。
【背景技術】
【０００２】
従来より、車両ネットワークにサービスツールを有線接続し、車両の電子制御装置（以下、ＥＣＵ（Electronic Control Unit）と称する）の診断を行うことが知られている。又、通信ネットワークの進展等に伴い、コネクッテッドカーの技術も普及しており、無線通信を介した遠隔操作により診断を行うことも知られている。このように有線での診断と無線での診断との要求が発生する場合において、例えば特許文献１には、サービスツールによる有線での診断を優先的に行うように調停する技術が開示されている。尚、診断はダイアグとも称される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−７８８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
外部からの有線又は無線を介した要求には、診断だけでなくプログラムの書換えもある。又、診断やプログラムの書換え対象となるＥＣＵにおいて、車両制御に関わるプログラムを実行中という場合もある。このような事情から、ＥＣＵは、外部からの各種要求に対して適切に調停する必要が生じる。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、外部からの各種要求に対して適切に調停することができる電子制御装置及びセッション確立プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した電子制御装置（１９〜２１）によれば、アプリ実行部（３４）は、第１状態として、第１デフォルトセッション、車両外部から有線を介して電子制御装置の診断を行うための有線診断セッション及び車両外部から有線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための有線書換えセッションを有し、有線による診断を示す要求に基づいて有線診断セッションへ状態遷移させ、有線による書換えを示す要求に基づいて有線書換えセッションへ状態遷移させ、第２状態として、第２デフォルトセッション及び車両外部から無線を介して取得されたプログラムを用いて電子制御装置の書換えを行うための無線書換えセッションを有し、無線による書換えを示す要求に基づいて無線書換えセッションへ状態遷移させる。アプリ実行部は、第１状態と第２状態とを独立して管理し、第１デフォルトセッション又は有線診断セッションと、無線書換えセッションとを非排他的に確立する。
【０００７】
第１状態のデフォルトセッション又は有線診断セッションと、無線書換えセッションとを非排他的に確立することで、車両制御又は有線での電子制御装置の診断と、無線でのプログラムの書換えとの要求に対し、それらを非排他的に実行することができ、外部からの各種要求に対して適切に調停することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態の全体構成を示す機能ブロック図
【図２】ＣＧＷの電気的な構成を示す機能ブロック図
【図３】ＥＣＵの電気的な構成を示す機能ブロック図
【図４】リプログファームウェア組込み型の２面メモリにおける通常動作時の態様を示す図
【図５】リプログファームウェア組込み型の２面メモリにおける書換え動作時の態様を示す図
【図６】リプログファームウェアダウンロード型の２面メモリにおける通常動作時の態様を示す図
【図７】リプログファームウェアダウンロード型の２面メモリにおける書換え動作時の態様を示す図
【図８】マイコンの処理毎の構成を示す機能ブロック図
【図９】プログラムの構成を示す図（その１）
【図１０】状態遷移を示す図（その１）
【図１１】状態遷移を示す図（その２）
【図１２】状態遷移を示す図（その３）
【図１３】セッションの調停を示す図（その１）
【図１４】セッションの調停を示す図（その２）
【図１５】第１状態の状態遷移管理処理を示すフローチャート（その１）
【図１６】第１状態の状態遷移管理処理を示すフローチャート（その２）
【図１７】第１状態の状態遷移管理処理を示すフローチャート（その３）
【図１８】第２状態の状態遷移管理処理を示すフローチャート（その１）
【図１９】第２状態の状態遷移管理処理を示すフローチャート（その２）
【図２０】プログラムの構成を示す図（その２）
【図２１】状態遷移を示す図（その４）
【発明を実施するための形態】
【０００９】
以下、一実施形態について図面を参照して説明する。車両用プログラム書換えシステム（車両用電子制御システムに相当する）は、ＥＣＵに搭載されている車両制御や診断等のアプリプログラムをＯＴＡにより書換え可能なシステムである。尚、本実施形態では、アプリプログラムを有線又は無線で書換える場合について説明するが、例えば地図アプリで使用される地図データ、ＥＣＵで使用される制御パラメータ等、各種アプリで使用されるデータを有線又は無線で書換える場合にも適用することができる。即ち、有線でのプログラムの書換えは、車両外部から有線を介して取得したプログラムを用いてＥＣＵを書換えることに加え、プログラムが実行される際に使用される各種データを有線を介して取得して書換えることも含む。無線でのプログラムの書換えは、車両外部から無線を介して取得したプログラムを用いてＥＣＵを書換えることに加え、プログラムが実行される際に使用される各種データを無線を介して取得して書換えることも含む。
【００１０】
図１に示すように、車両用プログラム書換えシステム１は、通信ネットワーク２側のセンター装置３と、車両側の車両側システム４と、ユーザ端末５とを有する。通信ネットワーク２は、例えば４Ｇ回線等による移動体通信ネットワーク、インターネット、ＷｉＦｉ（Wireless Fidelity）（登録商標）等を含んで構成される。
【００１１】
センター装置３は、ファイルサーバ６と、ウェブサーバ７と、管理サーバ８とを有し、各サーバ６〜８が相互にデータ通信可能に構成されている。センター装置３は、車両用プログラム書換えシステム１において通信ネットワーク２側のＯＴＡ（Over the Air）の機能を統括し、ＯＴＡセンターとして機能する。ファイルサーバ６は、車両に配信するアプリプログラムの管理機能を備え、アプリプログラムの提供事業者であるサプライヤから提供されるリプログデータと車両の状態を管理するサーバである。ファイルサーバ６は、通信ネットワーク２を介して車両側システム４との間でデータ通信可能であり、リプログデータを車両側システム４に配信する。ウェブサーバ７は、ウェブ情報を管理するサーバである。ウェブサーバ７は、通信ネットワーク２を介してユーザ端末５との間でデータ通信可能であり、ウェブ情報をユーザ端末５に送信する。管理サーバ８は、個人情報や車両情報等を管理する。
【００１２】
ユーザ端末５は、ユーザが携帯可能な携帯端末９や車室内に配置されている車載ディスプレイ１０である。携帯端末９は、例えばスマートフォンやタブレットである。車載ディスプレイ１０は、例えばナビゲーション機能を兼用するディスプレイやメータディスプレイである。ユーザは、車室外に居るときには携帯端末９を用いてアプリプログラムの書換えに関する各種設定や各種確認を行うことができ、車室内に居るときには車載ディスプレイ１０を用いてアプリプログラムの書換えに関する各種設定や各種確認を行うことができる。
【００１３】
車両側システム４は、マスタ装置１１（車両用マスタ装置に相当する）を有する。マスタ装置１１は、ＤＣＭ１２とＣＧＷ１３を有し、ＤＣＭ１２とＣＧＷ１３とが第１バス１４を介してデータ通信可能に接続されている。ＤＣＭ１２は、センター装置３との間で通信ネットワーク２を介してデータ通信を行う車載通信機であり、ファイルサーバ６からリプログデータをダウンロードし、そのダウンロードしたリプログデータをＣＧＷ１３に転送する。ＣＧＷ１３は、車両用ゲートウェイ装置であり、ＤＣＭ１２から転送されたリプログデータを、アプリプログラムを書換える書換え対象ＥＣＵに配信する。マスタ装置１１は、車両用プログラム書換えシステム１において車両側のＯＴＡの機能を統括し、ＯＴＡマスタとして機能する。
【００１４】
ＣＧＷ１３には、第１バス１４に加え、第２バス１５、第３バス１６、第４バス１７、第５バス１８が車内側のバスとして接続されている。第２バス１５は、例えばボディ系ネットワークのバスであり、複数のボディ系ＥＣＵ１９が接続されている。複数のボディ系ＥＣＵ１９は、例えばドアのロック／アンロックを制御するドアＥＣＵ、メータ表示を制御するメータＥＣＵ、エアコンの駆動を制御するエアコンＥＣＵ、ウィンドウの開閉を制御するウィンドウＥＣＵ等である。第３バス１６は、例えば走行系ネットワークのバスであり、複数の走行系ＥＣＵ２０が接続されている。複数の走行系ＥＣＵ２０は、例えばエンジンの駆動を制御するエンジンＥＣＵ、ブレーキの駆動を制御するブレーキＥＣＵ、自動変速機の駆動を制御するＥＣＴＥＣＵ、パワーステアリングの駆動を制御するパワーステアリングＥＣＵ等である。第４バス１７は、例えばマルチメディア系ネットワークのバスであり、複数のマルチメディア系ＥＣＵ２１が接続されている。複数のマルチメディア系ＥＣＵ２１は、例えばナビゲーションシステムを制御するためのナビゲーションＥＣＵ、電子式料金収受システム（ＥＴＣ（Electronic Toll Collection System、登録商標））を制御するＥＴＣＥＣＵ等である。第５バス１８は、車両側システム４の電源を管理する電源管理ＥＣＵ２２が接続されている。
【００１５】
ＣＧＷ１３には、第６バス２３が車外側のバスとして接続されている。第６バス２３は、ＤＬＣ（Data Link Coupler）コネクタ２４が接続されている。ＤＬＣコネクタ２４にはツール２５（サービスツールに相当する）が着脱可能に接続される。バス１４〜１８，２３は、例えばＣＡＮ（Controller Area Network、登録商標）バスにより構成されており、ＣＧＷ１３は、ＣＡＮのデータ通信規格又は診断通信規格（ＵＤＳ：ＩＳＯ１４２２９）にしたがってＤＣＭ１２、ＥＣＵ１９〜２２、ツール２５との間でデータ通信を行う。尚、バス１５〜１７は、ボディ系ネットワークのバス、走行系ネットワークのバス、マルチメディア系ネットワークのバス以外の系統のバスであっても良い。又、ＤＣＭ１２とＣＧＷ１３とがイーサーネットにより接続されていても良いし、ＤＬＣコネクタ２４とＣＧＷ１３とがイーサーネットにより接続されても良い。
【００１６】
書換え対象ＥＣＵは、ＣＧＷ１３からリプログデータを受信すると、その受信したリプログデータをフラッシュメモリに書込んでアプリプログラムを書換える。上記した構成では、ＣＧＷ１３は、リプログデータを書換え対象ＥＣＵに配信するリプログマスタとして機能し、書換え対象ＥＣＵは、ＣＧＷ１３から受信したリプログデータを書込んでアプリプログラムを書換えるリプログスレーブとして機能する。
【００１７】
アプリプログラムを書換える態様としては、有線で書換える態様と、無線で書換える態様とがある。アプリプログラムを有線で書換える態様とは、車両外部から有線を介して取得したアプリプログラムを用いて書換え対象ＥＣＵを書換える態様である。具体的には、ツール２５がＤＬＣコネクタ２４に接続されると、ツール２５は、リプログデータをＣＧＷ１３に転送する。ＣＧＷ１３は、ゲートウェイとして、有線書換え要求を書換え対象ＥＣＵに送信し、ツール２５から転送されたリプログデータを書換え対象ＥＣＵに配信する。ＣＧＷ１３において、ツール２５から転送されたリプログデータを書換え対象ＥＣＵに配信することは、リプログデータを中継することを意味する。書換え対象ＥＣＵは、ＣＧＷ１３から受信したリプログデータを書込んでアプリプログラムを書換える。
【００１８】
アプリプログラムを無線で書換える態様とは、車両外部から無線を介して取得したアプリプログラムを用いて書換え対象ＥＣＵを書換える態様である。具体的には、センター装置３からＤＣＭ１２にリプログデータがダウンロードされると、ＤＣＭ１２は、センター装置３からダウンロードされたリプログデータをＣＧＷ１３に転送する。ＣＧＷ１３は、ゲートウェイとして、無線書換え要求を書換え対象ＥＣＵに送信し、ＤＣＭ１２から転送されたリプログデータを書換え対象ＥＣＵに配信する。書換え対象ＥＣＵは、ＣＧＷ１３から受信したリプログデータを書込んでアプリプログラムを書換える。
【００１９】
ＥＣＵ１９を診断する態様としては、有線で診断する態様と、無線で診断する態様とがある。有線で診断する態様とは、車両外部から有線を介してＥＣＵ１９を診断する態様である。具体的には、ツール２５がＤＬＣコネクタ２４に接続されると、ツール２５は、診断要求をＣＧＷ１３に転送する。ＣＧＷ１３は、ゲートウェイとして、診断要求を診断対象ＥＣＵに送信し、ツール２５から転送された診断コマンドを診断対象ＥＣＵに配信する。診断対象ＥＣＵは、ＣＧＷ１３から受信した診断コマンドに応じた診断処理を行う。
【００２０】
無線で診断する態様とは、車両外部から無線を介してＥＣＵ１９を診断する態様である。具体的には、センター装置３からＤＣＭ１２に診断要求として診断コマンドが送信されると、ＤＣＭ１２は、診断コマンドをＣＧＷ１３に転送する。ＣＧＷ１３は、ゲートウェイとして、診断要求として診断コマンドを診断対象ＥＣＵへ配信する。診断対象ＥＣＵは、ＣＧＷ１３から受信した診断コマンドに応じた診断処理を行う。
【００２１】
図２に示すように、ＣＧＷ１３は、マイクロコンピュータ（以下、マイコンと称する）２６と、データ転送回路２７と、電源回路２８と、電源検出回路２９とを有する。マイコン２６は、ＣＰＵ（Central Processing Unit）２６ａ、ＲＯＭ（Read Only Memory）２６ｂ、ＲＡＭ（Random Access Memory）２６ｃ、フラッシュメモリ２６ｄ（記憶部に相当する）を有し、非遷移的実体的記憶媒体に格納されている制御プログラムを実行することで、制御プログラムに対応する処理を実行し、ＣＧＷ１３の動作を制御する。
【００２２】
データ転送回路２７は、バス１４〜１８，２３との間のＣＡＮのデータ通信規格に準拠したデータ通信を制御する。電源回路２８は、バッテリ電源（以下、＋Ｂ電源と称する）、アクセサリ電源（以下、ＡＣＣ電源と称する）、イグニッション電源（以下、ＩＧ電源と称する）を入力する。電源検出回路２９は、＋Ｂ電源の電圧値、ＡＣＣ電源の電圧値、ＩＧ電源の電圧値を検出し、これらの検出した電圧値を所定の電圧閾値と比較し、その比較結果をマイコン２６に出力する。マイコン２６は、＋Ｂ電源、ＡＣＣ電源、ＩＧ電源の比較結果を電源検出回路２９から入力し、＋Ｂ電源、ＡＣＣ電源、ＩＧ電源が正常であるか異常であるかを特定する。
【００２３】
図３に示すように、ＥＣＵ１９〜２１は、マイコン３０と、データ転送回路３１と、電源回路３２と、電源検出回路３３とを有する。マイコン３０は、ＣＰＵ３０ａ、ＲＯＭ３０ｂ、ＲＡＭ３０ｃ及びフラッシュメモリ３０ｄ（記憶部に相当する）等を有し、非遷移的実体的記憶媒体に格納されている制御プログラムを実行することで、制御プログラムに対応する処理を実行し、ＥＣＵ１９〜２１の動作を制御する。
【００２４】
データ転送回路３１は、バス１５〜１７との間のＣＡＮのデータ通信規格に準拠したデータ通信を制御する。電源回路３２は、＋Ｂ電源、ＡＣＣ電源、ＩＧ電源を入力する。電源検出回路３３は、＋Ｂ電源の電圧値、ＡＣＣ電源の電圧値、ＩＧ電源の電圧値を検出し、これらの検出した電圧値を所定の電圧閾値と比較し、その比較結果をマイコン３０に出力する。マイコン３０は、＋Ｂ電源、ＡＣＣ電源、ＩＧ電源の比較結果を電源検出回路３３から入力し、＋Ｂ電源、ＡＣＣ電源、ＩＧ電源が正常であるか異常であるかを特定する。尚、ＥＣＵ１９〜２１は、例えばセンサやアクチュエータ等の負荷が異なるが、基本的には同等の構成である。
【００２５】
ＤＣＭ１２は、図３に示すＥＣＵ１９と同様の構成を有する。更に、ＤＣＭ１２は、センター装置３と通信する通信機、車両の位置を検出可能なＧＰＳ（Global Positioning System）を有する。ここで、ＤＣＭ１２のフラッシュメモリ２８ｄは、配信パッケージを記憶するために十分な容量を有する。車載ディスプレイ１０は、図３に示すＥＣＵ１９と同様の構成を有する。車載ディスプレイ１０は、図示しない表示器とデータの送受信が可能に接続される。電源管理ＥＣＵ２２は、図３に示すＥＣＵ１９と同様の構成を有する。
【００２６】
ＥＣＵ１９〜２１に搭載されているフラッシュメモリ３０ｄの種別としては、アプリプログラムが配置されているアプリ領域を１面で持つ１面単独方式メモリ、アプリ領域を疑似的な２面で持つ１面サスペンド方式メモリ、アプリ領域を実質的な２面で持つ２面メモリがある。以下、１面単独方式メモリが搭載されているＥＣＵを１面単独メモリＥＣＵと称し、１面サスペンド方式メモリが搭載されているＥＣＵを１面サスペンドメモリＥＣＵと称し、２面メモリが搭載されているＥＣＵを２面メモリＥＣＵと称する。本実施形態では、マイコン３０の内部にＣＰＵ３０ａ及びＲＯＭ３０ｂが設けられている構成を例示しているが、マイコン３０の内部にＣＰＵ３０ａが設けられている一方でマイコン３０の外部にＲＯＭ３０ｂが設けられている構成でも良く、所謂外付けメモリタイプの構成でも良い。
【００２７】
１面単独メモリＥＣＵは、プログラム記憶領域を１面で持つ構成であるので、運用面及び非運用面という概念はなく、アプリ処理を実行中にアプリプログラムの書換え処理を実行することができない。そのため、１面単独メモリＥＣＵは、アプリプログラムを停止してアプリ処理や診断処理を停止した状態で、書換えプログラムを実行してアプリプログラムの書換え処理を実行する。
【００２８】
一方、１面サスペンドメモリＥＣＵや２面メモリＥＣＵは、プログラム記憶領域を２面で持つ構成であるので、運用面及び非運用面という概念があり、メモリ構成を工夫することで、アプリプログラムを実行してアプリ処理や診断処理を実行中に、書換えプログラムを実行して非運用面のアプリプログラムの書換え処理を実行可能である。本実施形態では、フラッシュメモリ３０ｄとして２面メモリを採用し、そのメモリ構成を工夫することで、運用面のアプリプログラムを実行中に、非運用面のアプリプログラムの書換え処理を実行可能としている。
【００２９】
以下、２面メモリの構成について説明する。図４から図７に示すように、２面メモリは、ブート領域とアプリ領域を有し、アプリ領域をＡ面とＢ面との２面で持つ。２面メモリは、リプログファームウェアが予め組込まれているリプログファームウェア組込み型と、リプログファームウェアを外部からダウンロードするリプログファームウェアダウンロード型とがある。以下、各構成について説明する。
【００３０】
（１）リプログファームウェア組込み型
図４は、リプログファームウェア組込み型の２面メモリを示しており、書換えを行うためのファームウェアが予めフラッシュメモリに記憶されている。図４に示すように、ブート領域には、ブートプログラムが書換え不能として配置されている。ブートプログラムは、ブートスワップ機能と、ブート時ベクタテーブルを含む。各アプリ領域には、差分エンジンワーク領域と、アプリプログラムと、アプリプログラムを書換えるための書換えプログラムが予め配置されている。アプリプログラムは、バージョン情報と、パラメータデータと、ソフトウェア（アプリ）と、ファームウェアと、通常時ベクタテーブルを含む。書換えプログラムは、リプログ進捗管理情報２と、リプログ進捗管理情報１と、起動面判定情報と、無線リプログファームウェアと、有線リプログファームウェアと、ブート時ベクタテーブルを含む。無線リプログファームウェアとは、車両外部から無線を介して取得したアプリプログラムを用いてＥＣＵを書換える処理を行うファームウェアである。有線リプログファームウェアとは、車両外部から有線を介して取得したアプリプログラムを用いてＥＣＵを書換える処理を行うファームウェアである。リプログファームウェアには、メモリの消去、書込みを行うプログラムや差分エンジン等の基本構成要素が含まれる。
【００３１】
２面のアプリ領域をＡ面、Ｂ面と称すると、マイコン３０は、車両制御処理や診断処理等のアプリ処理を実行する通常動作時では、ブートプログラムを実行してＡ面とＢ面の各起動面判定情報からブートスワップ機能により新旧を判定し、Ａ面及びＢ面の何れが運用面であるかを判定する。マイコン３０は、Ａ面を運用面とすると判定すると、Ａ面のブート時ベクタテーブルとＡ面の通常時ベクタテーブルを参照して先頭アドレスを探索し、Ａ面のアプリプログラムを実行する。同様に、マイコン３０は、Ｂ面を運用面とすると判定すると、Ｂ面のブート時ベクタテーブルとＢ面の通常時ベクタテーブルを参照して先頭アドレスを探索し、Ｂ面のアプリプログラムを実行する。
【００３２】
マイコン３０は、非運用面のアプリプログラムの書換え処理を実行する書換え動作時では、図５に示すように、非運用面のアプリプログラムを旧データとして差分エンジンワーク領域に一旦退避させる。マイコン３０は、差分エンジンワーク領域に一旦退避させた旧データを読出し、その読出した旧データと、組込んでいるリプログファームウェアによりＲＡＭ３０ｃに記憶した差分リプログデータから新データを復元する。マイコン３０は、旧データと差分リプログデータから新データを生成すると、その生成した新データを非運用面に書込んで非運用面のアプリプログラムを書換える。尚、差分エンジンワーク領域に一旦退避させる旧データは、運用面のアプリプログラムを対象としても良いし、非運用面のアプリプログラムを対象としても良い。運用面のアプリプログラムを対象とする場合には、非運用面のデータを、新データを書込む前に消去する。ここで、車両外部から取得したリプログデータが差分データでなく全データ（フルデータ）である場合には、取得したリプログデータを新データとして非運用面に書込むこととなる。
【００３３】
（２）リプログファームウェアダウンロード型
図６に示すように、リプログファームウェアダウンロード型では、車両外部からリプログファームウェアを受信してＲＡＭに記憶し、ＲＡＭ上にて実行する。上記したリプログファームウェア組込み型と比較し、無線リプログファームウェアや有線リプログファームウェアを外部からダウンロードし、アプリプログラムを書換えた後に、その無線リプログファームウェアや有線リプログファームウェアを削除する点で異なる。
【００３４】
マイコン３０は、車両制御処理等のアプリ処理や診断処理を実行する通常動作時では、リプログファームウェア組込み型と同様に、ブートプログラムを実行してＡ面とＢ面の各起動面判定情報からブートスワップ機能により新旧を判定し、Ａ面及びＢ面の何れが運用面であるかを判定し、運用面のアプリプログラムを実行してアプリ処理を実行する。
【００３５】
マイコン３０は、アプリプログラムの書換え処理を実行する書換え動作時では、図７に示すように、非運用面のアプリプログラムを旧データとして差分エンジンワーク領域に一旦退避させる。マイコン３０は、差分エンジンワーク領域に一旦退避させた旧データを読出し、その読出した旧データと、外部からダウンロードされたリプログファームウェアによりＲＡＭ３０ｃに記憶した差分リプログデータから新データを復元する。マイコン３０は、旧データ差分リプログデータから新データを生成すると、その生成した新データを非運用面に書込んで非運用面のアプリプログラムを書換える。そして、マイコン３０は、書換えが完了すると、ダウンロードしたリプログファームウェアを、ＲＡＭから消去する。尚、差分エンジンワーク領域に一旦退避させる旧データは、運用面のアプリプログラムを対象としても良いし、非運用面のアプリプログラムを対象としても良い。運用面のアプリプログラムを対象とする場合には、非運用面のデータを、新データを書込む前に消去する。ここで、車両外部から取得したリプログデータが差分データでなく全データ（フルデータ）である場合には、取得したリプログデータを新データとして非運用面に書込むこととなる。
【００３６】
上記したように、リプログファームウェア組込み型及びリプログファームウェアダウンロード型の何れの構成でも、各アプリ領域に、アプリプログラムと、アプリプログラムを書換えるための書換えプログラムが配置されている。尚、図４及び図６では、アプリプログラムをリプログ対象として示したが、書換えプログラムもリプログ対象としても良い。又、書換えプログラムを書換え不能としたい場合は、ブート領域に配置しても良い。例えばディーラー等においてツールを介した有線での書換えが確実に実施できるように有線書換えのためのプログラムをブート領域に配置しても良い。
【００３７】
図８に示すように、マイコン３０は、処理毎の機能ブロックとして、アプリ実行部３４と、無線書換え要求特定部３５と、有線書換え要求特定部３６とを有する。アプリ実行部３４は、各プログラムの実行を調停する機能を有する。無線書換え要求特定部３５は、無線を介したプログラム書換え要求を特定する機能を有する。有線書換え要求特定部３５は、有線を介したプログラム書換え要求を特定する機能を有する。
【００３８】
図９は、フラッシュメモリに記憶される各プログラムの構成を示す図である。車両制御プログラムは、ＥＣＵ１９〜２１自身に搭載されている車両制御機能（例えばステアリング制御機能）を実現するためのプログラムである。有線診断プログラムは、車両外部から有線を介してＥＣＵ１９〜２１自身の診断を行うためのプログラムである。無線診断プログラムは、車両外部から無線を介してＥＣＵ１９〜２１自身の診断を行うためのプログラムである。無線書換えプログラムは、車両外部から無線を介して取得されたプログラムの書換えを行うためのプログラムである。有線書換えプログラムは、車両外部から有線を介して取得されたプログラムの書換えを行うためのプログラムである。車両制御プログラムは、アプリ領域に第１プログラムとして配置される。有線診断プログラム及び有線書換えプログラムは、アプリ領域に第２プログラムとして配置される。無線診断プログラム及び無線書換えプログラムは、アプリ領域に第３プログラムとして配置される。換言すれば、第２プログラムは、車両制御以外の有線を介した特殊処理を行うプログラムであり、第３プログラムは、車両制御以外の無線を介した特殊処理を行うプログラムである。尚、有線書換えプログラムは、アプリ領域に配置せず、ブート領域に第４プログラムとして配置しても良い。
【００３９】
アプリ実行部３４は、第１プログラムと、第２プログラムと、第３プログラムとを同時に実行可能となるように制御する（非排他制御する）。アプリ実行部３４は、例えば車両制御プログラムと、有線診断プログラムと、無線診断プログラムとを同時に実行可能とする。即ち、アプリ実行部３４は、車両制御と、有線でのＥＣＵ１９〜２１の診断と、無線でのＥＣＵ１９〜２１の診断とを同時に実行可能とする。同様に、アプリ実行部３４は、車両制御プログラムと、有線診断プログラムと、無線書換えプログラムとを同時に実行可能とし、車両制御プログラムと、有線書換えプログラムと、無線診断プログラムとを同時に実行可能とし、車両制御プログラムと、有線書換えプログラムと、無線書換えプログラムとを同時に実行可能とするように制御する。
【００４０】
一方、アプリ実行部３４は、第２プログラム内の各プログラムを同時に実行不能となるよう排他制御する。同様に、第３プログラム内の各プログラムを同時に実行不能となるよう排他制御する。アプリ実行部３４は、例えば有線診断プログラムと、有線書換えプログラムとを排他制御し、無線診断プログラムと、無線書換えプログラムとを排他制御する。即ち、アプリ実行部３４は、有線を介した特殊処理のうち一のプログラムのみを実行する。同様に、アプリ実行部３４は、無線を介した特殊処理のうち一のプログラムのみを実行する。
【００４１】
無線書換えプログラムは、換言すれば、無線診断プログラムの内部に配置されており、無線診断プログラムの一部として組込まれているとも言える。即ち、アプリ実行部３４は、無線書換えプログラムが無線診断プログラムの内部に配置されている構成により、車両制御プログラム及び有線診断プログラムを実行中に後述するようにデフォルトセッション又は無線診断セッションから無線書換えセッションへ状態遷移されると、車両制御プログラム及び有線診断プログラムの実行を継続したまま、無線書換えプログラムを実行するように制御する。アプリ実行部３４は、車両制御プログラム及び有線診断プログラムの実行を継続したまま、無線書換えプログラムの実行を開始することで、車両制御プログラムと、有線診断プログラムと、無線書換えプログラムとを同時に実行可能とする。即ち、アプリ実行部３４は、車両制御と、有線でのＥＣＵ１９〜２１の診断と、無線でのアプリプログラムの書換えとを同時に実行可能となるように制御する。
【００４２】
ここで、診断処理や書換え処理の具体的な内容によっては、有線での診断と無線での診断及び有線での書換えと無線での書換えが同時に実行できない状況が生じる。例えば有線での書換えと無線での書換えとが同じ領域を書換える場合、両者の処理が衝突する。そのため、アプリ実行部３４は、処理や要求の具体内容に応じて有線診断プログラムと無線診断プログラムとを排他制御し、又、有線書換えプログラムと無線書換えプログラムとを排他制御する。又、診断処理の内容によっては、通常の車両制御が継続できない場合も生じ得る。例えばＥＣＵを動作させてその結果を読み出す診断処理の場合、通常の車両制御と同時に実行不能となる。その場合、アプリ実行部３４は、車両制御プログラムを待機させ、有線又は無線診断プログラムを実行する、という調停制御を行う。
【００４３】
一方、有線書換えプログラムをアプリ領域に配置せず、ブート領域に第４プログラムとして配置した場合、アプリ実行部３４は、上述とは一部異なる調停制御を行う。有線書換えプログラムは、図９に破線で示すように、有線診断プログラムの外部に第４プログラムとして配置されており、有線診断プログラムの一部として組込まれていない。この場合、アプリ実行部３４は、第４プログラムを実行する際は、第１〜第３プログラムを終了するよう排他制御を行う。即ち、アプリ実行部３４は、第１〜第３プログラムを実行するモードから第４プログラムを実行する専用モードに切り替える。換言すれば、有線書換えプログラムは、有線書換えプログラムが有線診断プログラムの外部に配置されている構成により、車両制御プログラム及び無線診断プログラムを実行中に後述するように有線診断セッションから有線書換えセッションへ状態遷移されると、車両制御プログラム及び無線診断プログラムの実行を停止し、有線書換えプログラムの実行を開始するように制御する。アプリ実行部３４は、車両制御プログラム及び無線診断プログラムの実行を停止し、有線書換えプログラムの実行を開始することで、車両制御プログラムと、無線診断プログラムと、有線書換えプログラムとを同時に実行可能とせず、有線書換えプログラムのみを実行可能とする。即ち、アプリ実行部３４は、車両制御と、無線でのＥＣＵ１９〜２１の診断と、有線でのアプリプログラムの書換えとを同時に実行可能とせず、有線でのアプリプログラムの書換えのみを実行可能となるように制御する。
【００４４】
図１０に示すように、アプリ実行部３４は、有線での特殊処理に関する第１状態として、デフォルトの状態（デフォルトセッション）、有線診断の状態（有線診断セッション）、有線書換えの状態（有線書換えセッション）を管理する。又、無線での特殊処理に関する第２状態として、デフォルトの状態（デフォルトセッション）、無線書換えの状態（無線書換えセッション）を管理し、動作の内部状態を管理している。
【００４５】
アプリ実行部３４は、第１状態の状態遷移として、診断通信規格に準拠して車両制御を可能なデフォルトセッションと、車両外部から有線を介してＥＣＵ１９〜２１の診断を可能な有線診断セッションと、車両外部から有線を介して取得したアプリプログラムの書換えを可能な有線書換えセッションとを排他的に状態遷移させる。セッションを排他的に状態遷移させることは、セッションを同時に確立不能とすることであり、セッションを非排他的に状態遷移させることは、セッションを同時に確立可能とすることである。
【００４６】
第１状態におけるデフォルトセッションとは、有線での特殊処理が行われていない状態を示すモードであり、車両制御を実行可能な状態である。デフォルトセッションは、車両制御に全く影響を与えない処理、例えば、車両制御に関わらない診断プログラムを実行しても良いモードであるとも言える。車両制御に関わらない診断プログラムとは、故障コード等の情報の読出し等を行うためのプログラムである。有線診断セッションは、ＥＣＵ１９〜２１の診断に関わる診断プログラムを実行するモードである。少なくとも、診断プログラムを実行することにより車両制御に影響を与え得る状態となる場合は、デフォルトセッションから有線診断セッションに移行させる。ＥＣＵ１９〜２１の診断に関わる診断プログラムとは、通信停止、ダイアグマスク、アクチュエータ駆動等を行うためのプログラムである。有線書換えセッションは、車両外部から有線を介して取得されたアプリプログラムの書換えを実行するモードである。
【００４７】
アプリ実行部３４は、第１状態においてセッションの状態遷移を以下のように行う。アプリ実行部３４は、第１デフォルトセッションの状態で有線での診断要求が発生すると、診断セッション移行要求により第１デフォルトセッションから有線診断セッションに移行させ、有線での診断処理を実行する。アプリ実行部３４は、有線診断セッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになる又は法規サービスを受信すると、有線診断セッションから第１デフォルトセッションに移行させる。アプリ実行部３４は、第１デフォルトセッションの状態で有線書換え要求が発生すると、診断セッション移行要求により第１デフォルトセッションから有線診断セッションに移行させた後に、書換えセッション移行要求により有線診断セッションから有線書換えセッションに移行させ、有線書換え処理を実行する。アプリ実行部３４は、有線書換えセッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになる又は法規サービスを受信すると、有線書換えセッションから第１デフォルトセッションに移行させる。又、アプリ実行部３４は、セッション維持要求により現在のセッションを移行させずに維持させる。
【００４８】
アプリ実行部３４は、第２状態の状態遷移として、診断通信規格に準拠して車両制御を可能なデフォルトセッションと、車両外部から無線を介して取得したアプリプログラムの書換えに関わる無線書換えセッションとを排他的に状態遷移させる。無線書換えセッションは、車両外部から無線を介して取得されたアプリプログラムの書換えを実行するモードである。
【００４９】
アプリ実行部３４は、第２状態においてセッションの状態遷移を以下のように行う。アプリ実行部３４は、第２デフォルトセッションの状態で無線書換え要求が発生すると、書換えセッション移行要求により第２デフォルトセッションから無線書換えセッションに移行させ、無線書換え処理を実行する。アプリ実行部３４は、無線書換えセッションの状態でセッション復帰要求が発生する、タイムアウトが発生する又は電源がオフになると、無線書換えセッションから第２デフォルトセッションに移行させる。又、アプリ実行部３４は、セッション維持要求により現在のセッションを移行させずに維持させる。
【００５０】
アプリ実行部３４は、第１プログラムとして車両制御プログラムを実行しつつ、有線での特殊処理に関する第１状態及び無線での特殊処理に関する第２状態を管理する。アプリ実行部３４は、例えば第１状態及び第２状態ともにデフォルトセッションにおいて、有線診断要求が発生すると、車両制御プログラムを継続させたまま、第１状態を有線診断セッションに移行させ、有線診断プログラムの実行を開始する。この状態において、アプリ実行部３４は、無線書換え要求が発生すると、車両制御プログラム及び有線診断プログラムの実行を継続させたまま、第２状態を無線書換えセッションに移行させ、無線書換えプログラムの実行を開始する。この状態において、アプリ実行部３４は、有線書換え要求が発生すると、例えば無線書換えプログラムの実行を終了し、第２状態をデフォルトセッションに移行させる共に、有線診断プログラムの実行を終了し、第１状態を有線書換えセッションに移行させ、有線書換えプログラムの実行を開始する。アプリ実行部３４は、同じメモリ領域への書込み処理が衝突するのを防ぐべく、第１状態の有線書換えセッションと、第２状態の無線書換えセッションとが、同時に確立しないよう排他的に状態遷移させる（排他的に制御する）。
【００５１】
無線書換え要求特定部３５は、外部から受信した書換え要求の識別情報を判定し、無線書換え要求を特定する。即ち、センター装置３からＤＣＭ１２にリプログデータがダウンロードされ、ＣＧＷ１３がＤＣＭ１２から転送されたリプログデータを書換え対象ＥＣＵに配信すると、無線書換え要求特定部３５は、ＣＧＷ１３からリプログデータと共に無線書換え要求を示す識別情報を受信することで、無線書換え要求を特定する。
【００５２】
有線書換え要求特定部３６は、外部から受信した書換え要求の識別情報を判定し、有線書換え要求を特定する。即ち、ツール２５がＤＬＣコネクタ２４に接続され、ＣＧＷ１３がツール２５から転送されたリプログデータを書換え対象ＥＣＵに配信すると、有線書換え要求特定部３６は、ＣＧＷ１３からリプログデータと共に有線書換え要求を示す識別情報を受信することで、有線書換え要求を特定する。
【００５３】
識別情報は、例えば有線書換え要求と無線書換え要求とで異なる識別ＩＤに該当する情報であっても良いし、有線書換え要求と無線書換え要求とで同じ識別ＩＤであるが異なるデータに該当する情報であっても良い。即ち、有線書換え要求と無線書換え要求とを識別可能であれば、どのような情報であっても良い。
【００５４】
アプリ実行部３４において、図１０では、無線での特殊処理に関する第２状態として、デフォルトセッション、及び無線書換えセッションの２つの状態を管理する構成を説明したが、図１１及び図１２に示すように、第２状態として、デフォルトセッション、無線診断セッション、及び無線書換えセッションの３つの状態を管理する構成でも良い。無線診断セッションは、車両外部から無線を介してＥＣＵ１９〜２１の診断を行うための無線診断プログラムを実行するモードである。少なくとも、車両制御に影響を与え得る無線診断プログラムを実行する場合は、無線診断セッションに移行させる。
【００５５】
図１１に示す構成の場合には、アプリ実行部３４は、第２状態の状態遷移を以下のように行う。アプリ実行部３４は、第２デフォルトセッションの状態で無線での診断要求が発生すると、診断セッション移行要求により第２デフォルトセッションから無線診断セッションに移行させ、無線診断処理を実行する。アプリ実行部３４は、無線診断セッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになると、無線診断セッションから第２デフォルトセッションに移行させる。アプリ実行部３４は、第２デフォルトセッションの状態で無線書換え要求が発生すると、診断セッション移行要求により第２デフォルトセッションから無線診断セッションに移行させた後に、書換えセッション移行要求により無線診断セッションから無線書換えセッションに移行させ、無線書換え処理を実行する。アプリ実行部３４は、無線書換えセッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになると、無線書換えセッションから第２デフォルトセッションに移行させる。
【００５６】
図１２に示す構成の場合には、アプリ実行部３４は、第２状態の状態遷移を以下のように行う。アプリ実行部３４は、第２デフォルトセッションの状態で無線での診断要求が発生すると、診断セッション移行要求により第２デフォルトセッションから無線診断セッションに移行させ、無線診断処理を実行する。アプリ実行部３４は、無線診断セッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになると、無線診断セッションから第２デフォルトセッションに移行させる。アプリ実行部３４は、第２デフォルトセッションの状態で無線書換え要求が発生すると、診断セッション移行要求により第２デフォルトセッションから無線診断セッションに移行させた後に、書換えセッション移行要求により無線診断セッションから無線書換えセッションに移行させるか、又は書換えセッション移行要求により第２デフォルトセッションから無線書換えセッションに移行させ、無線書換え処理を実行する。アプリ実行部３４は、無線書換えセッションの状態でセッション復帰要求が発生する、タイムアウトが発生する、電源がオフになると、無線書換えセッションから第２デフォルトセッションに移行させる。
【００５７】
尚、第１状態の有線診断セッションと第２状態の無線診断セッションとは、同じ診断プログラムを実行するものであっても良いし、異なる診断プログラムを実行するものであっても良い。第１状態の有線書換えセッションと第２状態の無線書換えセッションとは、同じ書換えプログラムを実行するものであっても良いし、異なる書換えプログラムを実行するものであっても良い。例えばメモリの消去や書込み等、共通する書換えプログラムを実行するものであっても良い。
【００５８】
図１１及び図１２に示した構成において、第１状態の各セッションと第２状態の各セッションの調停について説明する。図９で説明したように、有線診断プログラムが第２プログラムとしてアプリ領域に配置され、無線診断プログラムと無線書換えプログラムとが第３プログラムとしてアプリ領域に配置され、有線診断プログラムが第４プログラムとしてブート領域に配置される場合について説明する。換言すれば、無線書換えプログラムが無線診断プログラムの一部として組込まれている一方で有線書換えプログラムが有線診断プログラムの一部として組込まれていない構成についての説明である。この場合、第１状態及び第２状態の各セッションにおけるプログラム実行の調停は、図１３に示す通りになる。
【００５９】
第２状態が無線書換えセッションであり、且つ第１状態がデフォルトセッションの場合、アプリ実行部３４は、車両制御プログラムを実行させつつ、無線書換えプログラムを実行させる。第２状態が無線書換えセッションであり、且つ第１状態が有線診断セッションの場合、アプリ実行部３４は、車両制御プログラムを実行させつつ、無線書換えプログラム、及び有線診断プログラムを同時に実行させる。
【００６０】
一方、第１状態が有線書換えセッションであり、且つ第２状態がデフォルトセッションの場合、アプリ実行部３４は、車両制御プログラムを終了させ、有線書換えプログラムのみを実行させる。第１状態が有線書換えセッションであり、且つ第２状態が無線診断セッションの場合、アプリ実行部３４は、無線診断プログラム及び車両制御プログラムを終了させ、有線書換えプログラムのみを実行させる。即ち、アプリ実行部３４は、第４プログラムである有線書換えプログラムのみを実行する専用モードとして、第１〜第３プログラムを排他制御する。
【００６１】
尚、有線診断プログラム及び有線書換えプログラムが第２プログラムとしてアプリ領域に配置される構成では、各プログラムの調停が図１３とは一部相異する。即ち、無線書換えプログラムが無線診断プログラムの一部として組込まれている共に有線書換えプログラムが有線診断プログラムの一部として組込まれている構成では、第１状態及び第２状態の各セッションにおけるプログラム実行の調停は、図１４に示す通りになる。この場合において、第１状態が有線書換えセッションであり、且つ第２状態がデフォルトセッションの場合、アプリ実行部３４は、車両制御プログラムを実行させつつ、有線書換えプログラムを実行させる。第１状態が有線書換えセッションであり、且つ第２状態が無線診断セッションの場合、アプリ実行部３４は、車両制御プログラムを実行させつつ、有線書換えプログラム及び無線診断プログラムを同時に実行させる。
【００６２】
次に、上記した構成の作用について図１５から図１９を参照して説明する。
マイコン３０は、電源投入を検知して起動すると、セッション確立プログラムを実行して状態遷移管理処理を行い、第１状態の状態遷移を管理する状態遷移管理処理と、第２状態の状態遷移を管理する状態遷移管理処理とを行う。以下、それぞれの状態遷移管理処理について説明する。尚、ここでは、アプリ実行部３４が第２状態を図１０に示す構成、即ち、無線診断セッションを有しない構成により管理する場合を説明する。
【００６３】
（１）第１状態の状態遷移管理処理
マイコン３０は、電源投入を検知して起動し、第１状態の状態遷移管理処理を開始すると、書換え完了フラグを判定し、前回のアプリプログラムの書換えを正常に完了したか否かを判定する（Ｓ１）。マイコン３０は、書換え完了フラグが正であると判定し、前回のアプリプログラムの書換えを正常に完了したと判定すると（Ｓ１：ＹＥＳ）、第１状態をデフォルトセッションに移行させる（Ｓ２）。即ち、マイコン３０は、第１状態をデフォルトセッションに移行させることで、車両制御処理を開始する。
【００６４】
マイコン３０は、車両制御プログラムを実行させて車両制御処理を開始すると、車両制御処理を実行中に、有線診断要求が発生したか否かを判定し（Ｓ３）、有線書換え要求が発生したか否かを判定し（Ｓ４）、状態遷移管理の完了条件の成立を判定する（Ｓ５）。マイコン３０は、車両制御処理を実行中に、有線診断要求が発生したと判定すると（Ｓ３：ＹＥＳ）、第１状態をデフォルトセッションから有線診断セッションに移行させ（Ｓ６）、有線診断プログラムを実行させて有線診断処理を開始する（Ｓ７）。マイコン３０は、有線診断処理の完了条件の成立を判定し（Ｓ８）、有線診断処理の完了条件が成立したと判定すると（Ｓ８：ＹＥＳ）、有線診断プログラムを終了させて有線診断処理を終了し（Ｓ９）、第１状態を有線診断セッションからデフォルトセッションに移行させる（Ｓ１０）。
【００６５】
マイコン３０は、車両制御処理を実行中に、有線書換え要求が発生したと判定すると（Ｓ４：ＹＥＳ）、有線書換え要求発生時の書換え排他処理を開始する（Ｓ１１）。即ち、有線書換え処理と無線書換え処理とが衝突しないよう、排他制御を行うための処理である。マイコン３０は、有線書換え要求発生時の書換え排他処理を開始すると、第２状態において無線書換えセッションに移行中であるか否か、即ち、第２状態が無線書換えセッションであるか否かを判定する（Ｓ２１）。マイコン３０は、第２状態において無線書換えセッションに移行中でないと判定すると（Ｓ２１：ＮＯ）、第１状態を有線書換えセッションに移行可能であると特定する（Ｓ２２）。マイコン３０は、有線書換え要求発生時の書換え排他処理を終了し、第１状態の状態遷移管理処理に復帰する。
【００６６】
マイコン３０は、第２状態において無線書換えセッションに移行中であると判定すると（Ｓ２１：ＹＥＳ）、有線書換えセッション及び無線書換えセッションの何れを優先して排他制御を行うかを判定する。具体的には、マイコン３０は、有線書換えセッション優先条件、無線書換えセッション優先条件、移行中書換えセッション優先条件の何れが成立しているか否かを判定する（Ｓ２３〜Ｓ２５）。有線書換えセッション優先条件は、有線書換えセッションを無線書換えセッションよりも優先する条件である。無線書換えセッション優先条件は、無線書換えセッションを有線書換えセッションよりも優先する条件である。移行中書換えセッション優先条件は、移行中の書換えセッションを優先する、即ち、先に移行していたセッションを優先する条件である。これらの優先条件のうち何れを採用するかは予め設定されており、例えば車両に対して優先条件フラグを設定しても良いし、書換えＥＣＵ毎に優先条件フラグを設定しても良い。
【００６７】
マイコン３０は、有線書換えセッション優先条件が成立していると判定すると（Ｓ２３：ＹＥＳ）、第２状態において無線書換えセッションをセッション復帰要求によりデフォルトセッションに移行させて無線書換えを中断させ（Ｓ２６）、第１状態を有線書換えセッションに移行可能であると特定する（Ｓ２２）。マイコン３０は、デフォルトセッション移行に伴い、無線書換えプログラムを終了させる。マイコン３０は、有線書換え要求発生時の書換え排他処理を終了し、第１状態の状態遷移管理処理に復帰する。
【００６８】
マイコン３０は、無線書換えセッション優先条件が成立していると判定すると（Ｓ２４：ＹＥＳ）、有線書換え要求を廃棄して無線書換えを継続させる（Ｓ２７）。即ち、マイコン３０は、第２状態を無線書換えセッションで維持し、無線書換えプログラムの実行を継続し、第１状態を有線書換えセッションに移行不能であると特定する（Ｓ２８）。マイコン３０は、有線書換え要求発生時の書換え排他処理を終了し、第１状態の状態遷移管理処理に復帰する。
【００６９】
マイコン３０は、移行中書換えセッション優先条件が成立していると判定すると（Ｓ２５：ＹＥＳ）、この場合も、有線書換え要求を廃棄して無線書換えを継続させる（Ｓ２７）。即ち、マイコン３０は、第２状態を無線書換えセッションで維持し、無線書換えプログラムの実行を継続し、第１状態を有線書換えセッションに移行不能であると特定する（Ｓ２８）。マイコン３０は、有線書換え要求発生時の書換え排他処理を終了し、第１状態の状態遷移管理処理に復帰する。マイコン３０は、このように有線書換え要求発生時の書換え排他処理を実行することで、有線書換えセッションと、無線書換えセッションとを排他的に制御し、同時にセッション確立しないようにする。
【００７０】
マイコン３０は、第１状態の状態遷移管理処理に復帰すると、有線書換え要求発生時の書換え排他処理の結果として有線書換えセッションに移行可能であるか否かを判定する（Ｓ１２）。マイコン３０は、有線書換え要求発生時の書換え排他処理により有線書換えセッションに移行可能であると特定したことで、移行可能であると判定すると（Ｓ１２：ＹＥＳ）、第１状態をデフォルトセッションから有線診断セッションを介して有線書換えセッションに移行させ（Ｓ１３）、車両制御処理を中断して有線書換え処理を開始する（Ｓ１４）。マイコン３０は、有線書換えセッション移行に伴い、車両制御プログラムを終了させる。
【００７１】
マイコン３０は、有線書換え処理の完了条件の成立を判定し（Ｓ１５）、有線書換え処理の完了条件が成立したと判定すると（Ｓ１５：ＹＥＳ）、有線書換え処理を完了し（Ｓ１６）、第１状態を有線書換えセッションからデフォルトセッションに移行させる（Ｓ１７）。ここで、有線書換え処理の完了条件とは、例えばアプリプログラムの書込みが全て完了し、完全性検証が実行された場合等である。
【００７２】
マイコン３０は、有線書換え要求発生時の書換え排他処理により有線書換えセッションに移行不能であると特定したことで、移行可能でないと判定すると（Ｓ１２：ＮＯ）、第１状態をデフォルトセッションから有線診断セッションを介して有線書換えセッションに移行させない。即ち、マイコン３０は、第１状態をデフォルトセッションで維持する。マイコン３０は、状態遷移管理の完了条件が成立したと判定すると（Ｓ５：ＹＥＳ）、第１状態の状態遷移管理処理を完了する。
【００７３】
尚、以上は、マイコン３０は、有線書換え要求発生時の書換え排他処理において、第２状態において無線書換えセッションに移行中であると判定し、有線書換えセッション優先条件が成立していると判定すると、第２状態において無線書換えを中断させる場合を説明したが、無線書換えの未書換え残量に応じて無線書換えセッションを中断させるか否かを判定しても良い。
【００７４】
図１７に示すように、マイコン３０は、第２状態において無線書換えセッションに移行中であると判定し（Ｓ２１：ＹＥＳ）、有線書換えセッション優先条件が成立していると判定すると（Ｓ２３：ＹＥＳ）、その移行中の無線書換えセッションにおいて無線書換えの未書換え残量が所定量以上（例えば２０％以上）であるか否かを判定する（Ｓ３１）。マイコン３０は、無線書換えの未書換え残量が所定量以上であると判定すると（Ｓ３１：ＹＥＳ）、第２状態を無線書換えセッションからデフォルトセッションに移行させて無線書換えを中断させる（Ｓ２６）。マイコン３０は、デフォルトセッションへの移行に伴い、無線書換えプログラムを終了させる。マイコン３０は、無線書換えの未書換え残量が所定量以上でないと判定すると（Ｓ３１：ＮＯ）、その有線書換え要求を廃棄して無線書換えを継続させる（Ｓ２７）。即ち、マイコン３０は、無線書換えを完了するまでの残り時間が比較的長ければ、無線書換えセッションを中断させるが、無線書換えを完了するまでの残り時間が比較的短ければ、無線書換えセッションを中断させずに継続させる。
【００７５】
（２）第２状態の状態遷移管理処理
マイコン３０は、電源投入を検知して起動し、第２状態の状態遷移管理処理を開始すると、書換え完了フラグを判定し、前回のアプリプログラムの書換えを正常に完了したか否かを判定する（Ｓ４１）。マイコン３０は、書換え完了フラグが正であると判定し、前回のアプリプログラムの書換えを正常に完了したと判定すると（Ｓ４１：ＹＥＳ）、第２状態をデフォルトセッションに移行させる（Ｓ４２）。即ち、マイコン３０は、第２状態をデフォルトセッションに移行させることで、車両制御プログラムを実行し、車両制御処理を開始する。
【００７６】
マイコン３０は、車両制御処理を開始すると、無線書換え要求が発生したか否かを判定し（Ｓ４３）、状態遷移管理の完了条件の成立を判定する（Ｓ４４）。マイコン３０は、車両制御処理を実行中に、無線書換え要求が発生したと判定すると（Ｓ４３：ＹＥＳ）、無線書換え要求発生時の書換え排他処理を開始する（Ｓ４４）。マイコン３０は、無線書換え要求発生時の書換え排他処理を開始すると、第１状態において有線書換えセッションに移行中であるか否か、即ち、第１状態が有線書換えセッションであるか否かを判定する（Ｓ６１）。マイコン３０は、第１状態において有線書換えセッションに移行中でないと判定すると（Ｓ６１：ＮＯ）、無線書換えセッションに移行可能であると特定する（Ｓ６２）。マイコン３０は、無線書換え要求発生時の書換え排他処理を終了し、第２状態の状態遷移管理処理に復帰する。
【００７７】
マイコン３０は、第１状態において有線書換えセッションに移行中であると判定すると（Ｓ６１：ＹＥＳ）、有線書換えセッション及び無線書換えセッションの何れを優先して排他制御を行うかを判定する。具体的には、マイコン３０は、無線書換えセッション優先条件、有線書換えセッション優先条件、移行中書換えセッション優先条件の何れが成立しているか否かを判定する（Ｓ６３〜Ｓ６５）。
【００７８】
マイコン３０は、無線書換えセッション優先条件が成立していると判定すると（Ｓ６３：ＹＥＳ）、第１状態において有線書換えセッションをセッション復帰要求によりデフォルトセッションに移行させて有線書換えを中断させ（Ｓ６６）、第２状態を無線書換えセッションに移行可能であると特定する（Ｓ６２）。マイコン３０は、デフォルトセッションへの移行に伴い、有線書換えプログラムを終了させる。マイコン３０は、無線書換え要求発生時の書換え排他処理を終了し、第２状態の状態遷移管理処理に復帰する。
【００７９】
マイコン３０は、有線書換えセッション優先条件が成立していると判定すると（Ｓ６４：ＹＥＳ）、無線換え要求を廃棄して有線書換えを継続させる（Ｓ６７）。即ち、マイコン３０は、第１状態を有線書換えセッションで維持し、有線書換えプログラムの実行を継続させ、第２状態を無線書換えセッションに移行不能であると特定する（Ｓ６８）。マイコン３０は、無線書換え要求発生時の書換え排他処理を終了し、第２状態の状態遷移管理処理に復帰する。
【００８０】
マイコン３０は、移行中書換えセッション優先条件が成立していると判定すると（Ｓ６５：ＹＥＳ）、この場合も、無線換え要求を廃棄して有線書換えを継続させる（Ｓ６７）。即ち、マイコン３０は、第１状態を有線書換えセッションで維持し、有線書換えプログラムの実行を継続させ、第２状態を無線書換えセッションに移行不能であると特定する（Ｓ６８）。マイコン３０は、無線書換え要求発生時の書換え排他処理を終了し、第２状態の状態遷移管理処理に復帰する。マイコン３０は、このように無線書換え要求発生時の書換え排他処理を実行することで、有線書換えセッションと、無線書換えセッションとを排他的に制御し、同時にセッション確立させない。
【００８１】
マイコン３０は、第２状態の状態遷移管理処理に復帰すると、無線書換え要求発生時の書換え排他処理の結果として無線書換えセッションに移行可能であるか否かを判定する（Ｓ４５）。マイコン３０は、無線書換え要求発生時の書換え排他処理により無線書換えセッションに移行可能であると特定したことで、移行可能であると判定すると（Ｓ４５：ＹＥＳ）、第２状態をデフォルトセッションから無線書換えセッションに移行させ（Ｓ４６）、無線書換えプログラムを実行させて無線書換え処理を開始する（Ｓ４７）。マイコン３０は、無線書換え処理の完了条件の成立を判定し（Ｓ４８）、無線書換え処理の完了条件が成立したと判定すると（Ｓ４８：ＹＥＳ）、無線書換え処理を終了し（Ｓ４９）、第２状態を無線書換えセッションからデフォルトセッションに移行させる（Ｓ５０）。マイコン３０は、デフォルトセッションへの移行に伴い、無線書換えプログラムを終了させる。ここで、無線書換え処理の完了条件とは、例えばアプリプログラムの書込みが全て完了し、完全性検証が実行された場合等である。
【００８２】
マイコン３０は、無線書換え要求発生時の書換え排他処理により無線書換えセッションに移行不能であると特定したことで、移行可能でないと判定すると（Ｓ４５：ＮＯ）、第２状態をデフォルトセッションから無線書換えセッションに移行させない。即ち、マイコン３０は、第２状態をデフォルトセッションで維持する。マイコン３０は、状態遷移管理の完了条件が成立したと判定すると（Ｓ５１：ＹＥＳ）、第２状態の状態遷移管理処理を終了する。
【００８３】
以上は、アプリ実行部３４において、有線での特殊処理に関するプログラムと無線での特殊処理に関するプログラムとを独立して（同時に）実行可能である場合を説明したが、図２０に示すように、有線診断プログラムと無線診断プログラムとを共通化する構成でも良い。車両制御プログラムを第１プログラムとしてアプリ領域に配置し、診断プログラム（有線診断プログラム及び無線診断プログラム）と、無線書換えプログラムとを第２プログラムとしてアプリ領域に配置する構成である。有線書換えプログラムは、第２プログラムとしてアプリ領域に配置しても良いし、第３プログラムとしてブート領域に配置しても良い。アプリ実行部３４は、第１プログラムと、第２プログラムとを同時に実行させる。即ち、アプリ実行部３４は、車両制御プログラムと、共通化した診断プログラムとを同時に実行可能となるように制御する。一方、アプリ実行部３４は、第２プログラムを構成する各プログラムの実行を排他制御する。即ち、有線診断プログラム、無線診断プログラム、無線書換えプログラム及び有線書換えプログラムのうち何れか１つのみが動作するように制御する。
【００８４】
アプリ実行部３４は、図２１に示すように、状態として、デフォルトの状態（デフォルトセッション）、診断の状態（診断セッション）、有線書換えの状態（有線書換えセッション）、無線書換えの状態（無線書換えセッション）を管理し、動作の内部状態を管理することになる。ここで管理される状態は、有線と無線とで状態を独立して管理するものではなく、混在して１つの状態として管理するものである。
【００８５】
この構成においても、アプリ実行部３４は、車両制御プログラムを実行しつつ、診断プログラムの実行を開始する。又、アプリ実行部３４は、車両制御プログラムを実行しつつ、無線書換えプログラムや有線書換えプログラムの実行を開始する。一方、アプリ実行部３４は、無線診断プログラム及び有線診断プログラムの実行を排他的に制御する。又、アプリ実行部３４は、有線／無線診断プログラムと、有線／無線書換えプログラムの実行も排他的に制御する。即ち、アプリ実行部３４は、第２プログラムを構成する各プログラムの実行を排他的に制御する。
【００８６】
ここで、有線書換えプログラムが第３プログラムとしてブート領域に配置される場合、アプリ実行部３４は、第３プログラムと、第１及び第２プログラムとを排他的に実行制御する。即ち、有線書換えプログラムを実行する場合、第１プログラム及び第２プログラムを終了させ、専用モードとして動作させる。
【００８７】
図２１に示すように、アプリ実行部３４は、診断要求が発生すると、車両制御プログラムの実行を継続しつつ、診断セッションに移行させ、診断プログラムの実行を開始する。この状態において、アプリ実行部３４は、無線書換え要求が発生すると、診断プログラムを終了させ、無線書換えセッションに移行すると共に、無線書換えプログラムの実行を開始する。車両制御プログラムの実行は継続したままである。一方、有線書換え要求が発生した場合は、アプリ実行部３４は、診断プログラム及び車両制御プログラムを終了させ、有線書換えセッションに移行すると共に、有線書換えプログラムの実行を開始する。
【００８８】
アプリ実行部３４は、無線書換えプログラムが診断プログラムの内部に配置されていても、車両制御プログラム及び診断プログラムを実行中に診断セッションから無線書換えセッションへ状態遷移されると、車両制御プログラム及び診断プログラムの実行を中断してから無線書換えプログラムの実行を開始する。尚、セッションを伴わない場合は処理を継続することが可能である。
【００８９】
アプリ実行部３４は、有線書換えプログラムが診断プログラムの外部に配置されていれば、車両制御プログラム及び診断プログラムを実行中に診断セッションから有線書換えセッションに状態遷移されると、車両制御プログラム及び無線診断プログラムの実行を停止し、有線書換えプログラムが実行を開始する。即ち、アプリ実行部３４は、車両制御と、有線又は無線でのＥＣＵ１９〜２１の診断と、有線でのアプリプログラムの書換えとを同時に実行可能とならず、有線でのアプリプログラムの書換えのみを実行可能となる。
【００９０】
以上に説明したように本実施形態によれば、次に示す効果を得ることができる。
ＥＣＵ１９〜２１において、第１状態の状態遷移管理処理と第２状態の状態遷移管理処理を実行し、第１状態と第２状態とおける各セッションの状態遷移を管理し、第１状態のデフォルトセッション又は有線診断セッションと、第２状態の無線書換えセッションとを非排他的に確立するようにした（セッション確立手順を行う）。車両制御又はＥＣＵ１９〜２１の診断と、無線でのプログラムの書換えとの要求に対し、車両制御プログラム又はＥＣＵ１９〜２１の診断プログラムと、無線書換えプログラムとを非排他的に実行するように制御し、外部からの各種要求に対して適切に調停することができる。
【００９１】
又、ＥＣＵ１９〜２１において、有線書換えセッションと、無線書換えセッションとを排他的に確立するようにした。有線書換えプログラムと、無線書換えプログラムとを排他的に実行するように制御し、有線でのプログラムの書換えと、無線でのプログラムの書換えとを適切に調停することができる。
【００９２】
又、ＥＣＵ１９〜２１において、有線書換えセッション優先条件が成立していると、有線書換えセッションを無線書換えセッションよりも優先するようにした。有線書換えセッション優先条件を設定しておくことで、有線でのプログラムの書換えを無線でのプログラムの書換えよりも優先して実行することができる。例えばディーラー等で整備者が指示する有線でのプログラムの書換えを、車両のユーザが指示する無線でのプログラムの書換えをよりも優先して実行することができる。
【００９３】
又、ＥＣＵ１９〜２１において、無線書換えセッション優先条件が成立していると、無線書換えセッションを有線書換えセッションよりも優先するようにした。無線書換えセッション優先条件を設定しておくことで、無線でのプログラムの書換えを有線でのプログラムの書換えよりも優先して実行することができる。例えば車両のユーザが指示する無線でのプログラムの書換えを、ディーラー等で整備者が指示する有線でのプログラムの書換えよりも優先して実行することができる。
【００９４】
又、ＥＣＵ１９〜２１において、移行中書換えセッション優先条件が成立していると、移行中の書換えセッションを優先するようにした。移行中書換えセッション優先条件を設定しておくことで、移行中の書換えを優先して実行することができる。即ち、有線書換え及び無線書換えのうち先に開始した方を中断せず継続させることができる。
【００９５】
アプリ領域を２面で持つ構成において、各アプリ領域に車両制御プログラムと、診断プログラムと、無線書換えプログラムとが配置されている構成とし、車両制御プログラム又は診断プログラムと、無線書換えプログラムとを並列に（同時に）に実行するようにした。フラッシュメモリ３０ｄのメモリ構成を工夫することで、車両制御プログラム又は診断プログラムと、無線書換えプログラムとを並列に実行することができる。
【００９６】
車両制御プログラム又は有線診断プログラムを実行中に無線書換え要求を特定すると、車両制御プログラム又は有線診断プログラムの実行を継続し、無線書換えプログラムを実行するようにした。車両制御プログラム又は有線診断プログラムを実行中に無線書換え要求が発生したときに、車両制御プログラム又は有線診断プログラムと、無線書換えプログラムとを並列に（同時に）実行することができる。
【００９７】
無線書換えプログラムを実行中に車両制御要求又は有線診断要求を特定すると、無線書換えプログラムの実行を継続し、車両制御プログラム又は有線診断プログラムを実行するようにした。無線書換えプログラムを実行中に車両制御要求又は有線診断要求が発生したときに、無線書換えプログラムと、車両制御プログラム又は有線診断プログラムとを並列に（同時に）実行することができる。
【００９８】
車両制御プログラム又は無線診断プログラムを実行中に有線書換え要求を特定すると、車両制御プログラム又は無線診断プログラムの実行を停止し、有線書換えプログラムを実行するようにした。車両制御プログラム又は無線診断プログラムを実行中に有線書換え要求が発生したときに、有線書換えプログラムのみを排他的に実行することができる。
【００９９】
リプログファームウェアが組込まれているリプログファームウェア組込み型の場合に、アプリ領域に配置されているファームウェアを用い、書換えプログラムを実行するようにした。リプログファームウェアを外部からダウンロードすることなく、非運用面のアプリプログラムの書換え処理を実行することができる。
【０１００】
リプログファームウェアを外部からダウンロードするリプログファームウェアダウンロード型の場合に、外部からダウンロードされたファームウェアを用い、書換えプログラムを実行するようにした。アプリ領域における書換えプログラムの容量を低減した上で、非運用面のアプリプログラムの書換え処理を実行することができる。
【０１０１】
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【０１０２】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することにより提供された専用コンピュータにより実現されても良い。或いは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によりプロセッサを構成することにより提供された専用コンピュータにより実現されても良い。若しくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路により構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより実現されても良い。又、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていても良い。
【０１０３】
アプリ領域を実質的な２面で持つ２面メモリについて説明したが、アプリ領域を疑似的な２面で持つ１面サスペンド方式メモリや外付けメモリについても適用することができる。
【０１０４】
旧データと差分リプログデータから新データを生成する差分書換えする場合について説明したが、旧データを削除して新データを書込む全書換えする場合についても適用することができる。
【０１０５】
ＥＣＵ１９〜２１のアプリプログラムを書換える場合について説明したが、ＣＧＷ１３のアプリプログラムを書換える場合についても適用することができる。即ち、ＣＧＷ１３のフラッシュメモリ２６ｄを２面構成としてＥＣＵ１９〜２１のフラッシュメモリ３０ｄと同等の構成とし、マイコン２６にＥＣＵ１９〜２１のマイコン３０と同等の機能を持たせても良い。
【符号の説明】
【０１０６】
図面中、１は車両用プログラム書換えシステム（車両用電子制御システム）、１２はＤＣＭ（車載通信機）、１１はマスタ装置（車両用マスタ装置）、１３はＣＧＷ（車両用ゲートウェイ装置）、１９〜２１は電子制御装置、２５はツール（サービスツール）、２６ｄはフラッシュメモリ（記憶部）、３０ｄはフラッシュメモリ（記憶部）、３４はアプリ実行部、３５は無線書換え要求特定部、３６は有線書換え要求特定部である。
【図１】
2020021506.tif 000003
【図２】
2020021506.tif 000004
【図３】
2020021506.tif 000005
【図４】
2020021506.tif 000006
【図５】
2020021506.tif 000007
【図６】
2020021506.tif 000008
【図７】
2020021506.tif 000009
【図８】
2020021506.tif 000010
【図９】
2020021506.tif 000011
【図１０】
2020021506.tif 000012
【図１１】
2020021506.tif 000013
【図１２】
2020021506.tif 000014
【図１３】
2020021506.tif 000015
【図１４】
2020021506.tif 000016
【図１５】
2020021506.tif 000017
【図１６】
2020021506.tif 000018
【図１７】
2020021506.tif 000019
【図１８】
2020021506.tif 000020
【図１９】
2020021506.tif 000021
【図２０】
2020021506.tif 000022
【図２１】
2020021506.tif 000023