(57)【要約】【課題】リレー制御時間の増大を回避しつつソフトウェア更新を迅速に完了可能な電子制御装置を提供する。【解決手段】電子制御装置２は、第２記憶部１２に格納された更新用ソフトウェアを第１記憶部１１へと転送して、第１記憶部１１に格納されたソフトウェアを更新する。検査部１３は、第１記憶部１１に格納されたソフトウェアが更新される場合には、第２記憶部１２に格納された更新用ソフトウェアを第１記憶部１１へと転送する処理と並行して、起動対象となるソフトウェアが適正なソフトウェアか否かを検査するように構成されている。【選択図】図１
2020173597.tif 000002
【特許請求の範囲】
【請求項１】
電子制御装置（２，２２，５２）であって、
ソフトウェアを格納する第１記憶部（１１）と、
前記電子制御装置の起動時に、起動対象となるソフトウェアが適正なソフトウェアか否かを検査する検査部（１３，Ｓ３０１，Ｓ４０７，Ｓ４２１）と、
前記検査部によって前記起動対象となるソフトウェアが適正なソフトウェアであるとの検査結果が得られた場合に、前記第１記憶部に格納されたソフトウェアに基づく処理を実行する処理部（１０，Ｓ５０５，Ｓ５１３）と、
前記電子制御装置の起動時に、前記第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断する判断部（１３，Ｓ４０３）と、
前記判断部によって前記更新が必要と判断された場合に、第２記憶部（１２，３２，６２）に格納された更新用ソフトウェアを前記第１記憶部へと転送して、前記第１記憶部に格納されたソフトウェアを更新する更新部（１３，１５，Ｓ４０５）と、
を備え、
前記検査部は、前記更新部によって前記第１記憶部に格納されたソフトウェアが更新される場合には、前記第２記憶部に格納された更新用ソフトウェアを前記第１記憶部へと転送する処理と並行して、前記起動対象となるソフトウェアが適正なソフトウェアか否かを検査するように構成されている
電子制御装置。
【請求項２】
請求項１に記載の電子制御装置であって、
前記第２記憶部（１２）は、前記電子制御装置の内部に設けられている
電子制御装置。
【請求項３】
請求項２に記載の電子制御装置であって、
前記第１記憶部及び前記第２記憶部は、それぞれに格納されたソフトウェアの状態を示す状態情報を、前記ソフトウェアに対応付けて記憶するように構成され、
前記判断部は、前記状態情報に基づいて、前記第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断するように構成されている
電子制御装置。
【請求項４】
請求項３に記載の電子制御装置であって、
前記検査部は、前記判断部によって前記更新が必要と判断された場合には、前記更新部によって前記第１記憶部へと転送される更新用ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査し、前記判断部によって前記更新が不要と判断された場合には、前記第１記憶部に格納された前記ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査するように構成されている
電子制御装置。
【請求項５】
請求項４に記載の電子制御装置であって、
前記更新部は、前記第２記憶部に格納された更新用ソフトウェアを、ＤＭＡ転送方式で前記第１記憶部へと転送するように構成されている
電子制御装置。
【請求項６】
請求項５に記載の電子制御装置であって、
前記検査部は、前記ＤＭＡ転送方式での転送に用いられるデータ伝送路をスヌープして、前記第１記憶部へと転送される更新用ソフトウェアを取得するように構成されている
電子制御装置。
【請求項７】
請求項１に記載の電子制御装置であって、
前記第２記憶部（３２，６２）は、通信路を介して前記電子制御装置と通信可能に構成される他の電子装置（２３，５３）に設けられ、
前記更新部は、前記第２記憶部に格納された更新用ソフトウェアを前記他の電子装置から取得して、当該ソフトウェアを前記第１記憶部へと転送するように構成されている
電子制御装置。
【請求項８】
請求項７に記載の電子制御装置であって、
前記第１記憶部及び前記第２記憶部は、それぞれに格納されたソフトウェアの状態を示す状態情報を、前記ソフトウェアに対応付けて記憶するように構成され、
前記判断部は、前記状態情報に基づいて、前記第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断するように構成されている
電子制御装置。
【請求項９】
請求項８に記載の電子制御装置であって、
前記検査部は、前記判断部によって前記更新が必要と判断された場合には、前記更新部によって前記第１記憶部へと転送される更新用ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査し、前記判断部によって前記更新が不要と判断された場合には、前記第１記憶部に格納された前記ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査するように構成されている
電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子制御装置に関する。
【背景技術】
【０００２】
制御装置による制御対象への電力供給が停止されることにより、制御対象が動作できない状態となった場合に、制御装置のソフトウェアを更新する技術が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４８０９４１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載の技術においては、イグニッションスイッチがオフとされた場合にソフトウェアの更新が実行される。そのため、少なくともソフトウェアの更新が完了するまでは、例えばリレー制御によってメインリレーから電子制御装置への電力供給を継続する。しかし、ソフトウェアの規模が大きくなると、ソフトウェアの更新に要する時間が増大する。そのため、リレー制御時間が長くなり、バッテリーにかかる負荷が増大する。
【０００５】
本開示の一局面は、リレー制御時間の増大を回避しつつソフトウェア更新を迅速に完了可能な電子制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
本開示の一局面における電子制御装置（２，２２，５２）は、第１記憶部（１１）と、検査部（１３，Ｓ３０１，Ｓ４０７，Ｓ４２１）と、処理部（１０，Ｓ５０５，Ｓ５１３）と、判断部（１３，Ｓ４０３）と、更新部（１３，１５，Ｓ４０５）と、を備える。第１記憶部は、ソフトウェアを格納する。検査部は、電子制御装置の起動時に、起動対象となるソフトウェアが適正なソフトウェアか否かを検査する。処理部は、検査部によって起動対象となるソフトウェアが適正なソフトウェアであるとの検査結果が得られた場合に、第１記憶部に格納されたソフトウェアに基づく処理を実行する。判断部は、電子制御装置の起動時に、第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断する。更新部は、判断部によって更新が必要と判断された場合に、第２記憶部（１２，３２，６２）に格納された更新用ソフトウェアを第１記憶部へと転送して、第１記憶部に格納されたソフトウェアを更新する。検査部は、更新部によって第１記憶部に格納されたソフトウェアが更新される場合には、第２記憶部に格納された更新用ソフトウェアを第１記憶部へと転送する処理と並行して、起動対象となるソフトウェアが適正なソフトウェアか否かを検査するように構成されている。
【０００７】
このように構成された電子制御装置によれば、電子制御装置の起動時に、第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断する。更新が必要と判断された場合には、第２記憶部に格納された更新用ソフトウェアを第１記憶部へと転送して、第１記憶部に格納されたソフトウェアを更新する。そのため、イグニッションスイッチがオフにされた後のリレー制御中に同等な転送が行われる場合に比べ、リレー制御期間を短縮でき、バッテリーにかかる負荷を低減することができる。
【０００８】
しかも、第２記憶部に格納された更新用ソフトウェアを第１記憶部へと転送する処理が実行される際、検査部は、更新部による転送処理と並行して、起動対象となるソフトウェアが適正なソフトウェアか否かを検査する。そのため、第２記憶部に格納された更新用ソフトウェアを第１記憶部へと転送する処理が実行された後に、改めて第１記憶部に格納されたソフトウェアを読み出してから、そのソフトウェアが適正なソフトウェアか否かを検査する場合に比べ、転送及び検査が並行して実行される分だけ転送及び検査を迅速に完了することができる。したがって、ソフトウェア更新の実行に起因して、電子制御装置の起動性能が低下するのを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は第１実施形態の車両制御装置を含む車載ネットワークシステムの構成を示すブロック図である。
【図２】図２は第２メモリに更新用ソフトウェアが格納される前の第１メモリ及び第２メモリの状態を説明するための説明図である。
【図３】図３は第２メモリに更新用ソフトウェアが格納された直後の第１メモリ及び第２メモリの状態を説明するための説明図である。
【図４】図４は第２メモリから第１メモリへブートローダーが転送された直後の第１メモリ及び第２メモリの状態を説明するための説明図である。
【図５】図５は第２メモリから第１メモリへアプリ１が転送された直後の第１メモリ及び第２メモリの状態を説明するための説明図である。
【図６】図６は第２メモリから第１メモリへアプリＮまでの転送が完了した後の第１メモリ及び第２メモリの状態を説明するための説明図である。
【図７】図７はＣＰＵにおいて実行されるリレー制御中インストール処理のフローチャートである。
【図８】図８はＣＰＵにおいて実行されるブートローダー更新処理のフローチャートである。
【図９】図９はＨＳＭにおいて実行されるセキュアブート処理のフローチャートである。
【図１０】図１０はＨＳＭにおいて実行されるアプリｎ検証処理のフローチャートである。
【図１１】図１１はＣＰＵにおいて実行されるソフト起動処理のフローチャートである。
【図１２】図１２はリレー制御区間で転送を実行する場合のタイミングチャートである。
【図１３】図１３はＩＧ−ＯＮ後に転送を実行して、その後にセキュアブートを実行する場合のタイミングチャートである。
【図１４】図１４はＩＧ−ＯＮ後に転送を実行し、転送と並行してセキュアブートを実行する場合のタイミングチャートである。
【図１５】図１５は第２実施形態の車両制御装置を含む車載ネットワークシステムの構成を示すブロック図である。
【図１６】図１６は第３実施形態の車両制御装置を含む車載ネットワークシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
次に、上述の電子制御装置について、例示的な実施形態を挙げて説明する。
（１）第１実施形態
［電子制御装置及び車載ネットワークシステムの構成］
図１に示すように、車載ネットワークシステム１は、ＥＣＵ２、リプロマスターＥＣＵ３、ＤＣＭ５及びメインリレー６等を備える。ＥＣＵは、Electronic Control Unitの略称である。ＤＣＭは、Data Communication Moduleの略称である。ＥＣＵ２は、グローバルバス７を介してリプロマスターＥＣＵ３と通信可能に構成されている。ＥＣＵ２は、メインリレー６経由で電力が供給されるように構成されている。なお、車載ネットワークシステム１には、ＥＣＵ２以外にも複数のＥＣＵが含まれているが、図１においては図示を省略する。
【００１１】
リプロマスターＥＣＵ３は、車載ネットワークシステム１に含まれるＥＣＵ（例えばＥＣＵ２。）のリプログラミング（すなわち、プログラムの更新。）を管理するＥＣＵである。リプロマスターＥＣＵ３は、車外にある機器から更新用ソフトウェアが提供された場合に、その更新用ソフトウェアを車載ネットワークシステム１に含まれるＥＣＵ（例えばＥＣＵ２。）に対して提供する。本実施形態の場合、リプロマスターＥＣＵ３は、ゲートウェイとしての機能を有するＥＣＵである。リプロマスターＥＣＵ３は、車載ネットワークシステム１を構成する機器間及び車載ネットワークシステム１を構成する機器と車外にある機器との間で送受信されるデータを中継する。ＤＣＭ５は、車外にある機器との間で通信を行うための無線通信装置である。
【００１２】
メインリレー６は、イグニッションがオン（以下、ＩＧ−ＯＮと称する。）とされた場合に、電源側からＥＣＵ２等の車載機器へ電力を供給するように構成されている。イグニッションがオフ（以下、ＩＧ−ＯＦＦと称する。）とされた場合には、電源側からＥＣＵ２等の車載機器へ電力を供給する状態を、所定時間だけ継続する制御（以下、リレー制御と称する。）を実行するように構成されている。
【００１３】
ＥＣＵ２は、ＣＰＵ１０、第１メモリ１１、第２メモリ１２、ＨＳＭ１３及びＤＭＡＣ１５を備える。ＣＰＵは、Central Processing Unitの略称である。ＨＳＭは、Hardware Security Moduleの略称である。ＤＭＡＣは、DMA Controllerの略称である。ＤＭＡは、Direct Memory Accessの略称である。
【００１４】
ＣＰＵ１０は、第１メモリ１１に格納されたソフトウェアに基づいて様々な処理を実行するように構成されている。例えば、ＥＣＵ２が制御対象を制御する際には、ＣＰＵ１０が第１メモリ１１に格納された制御プログラムに基づいて、制御対象を制御するための処理を実行する。また、詳しくは後述するが、ＣＰＵ１０は、第１メモリ１１に格納されたソフトウェアを更新する処理等も実行する。
【００１５】
第１メモリ１１及び第２メモリ１２は、不揮発性メモリ（例えば、フラッシュメモリ。）によって構成されている。第１メモリ１１には、ＥＣＵ２が作動する際にＣＰＵ１０によって実行されるソフトウェアが格納される。第２メモリ１２には、第１メモリ１１に格納されたソフトウェアが更新される場合に、更新用ソフトウェアが格納される。
【００１６】
ＨＳＭ１３は、ＥＣＵ２の起動時に、起動対象となるソフトウェア（すなわち、ＣＰＵ１０での実行対象となるソフトウェア。）が適正なソフトウェアか否かを検査する処理（以下、セキュアブートとも称する。）を実行する装置である。検査の結果、ソフトウェアが適正なソフトウェアであれば、ＨＳＭ１３はＣＰＵ１０に対して起動可能を通知する。検査の結果、ソフトウェアが適正なソフトウェアでなければ、ＨＳＭ１３はＣＰＵ１０に対して起動不可を通知する。例えば、ソフトウェアが改ざんされていることをＨＳＭ１３が検出した場合、ＨＳＭ１３はＣＰＵ１０に対して起動不可を通知する。ＣＰＵ１０は、ＨＳＭ１３からの通知に基づき、起動可能が通知された場合のみ、ソフトウェアを起動する。これにより、ＣＰＵ１０によって不正なソフトウェアが起動されるのを抑制することができる。
【００１７】
ＤＭＡＣ１５は、ＥＣＵ２内のデバイス間で実行されるＤＭＡ転送を制御するように構成された装置である。詳しくは後述するが、本実施形態の場合は、第２メモリ１２に格納された更新用ソフトウェアを第１メモリ１１へと転送する際に、ＤＭＡＣ１５の制御下でＤＭＡ転送が実行される。これにより、ＣＰＵ１０を介することなく第１メモリ１１から第２メモリ１２へデータを転送することができ、ＣＰＵ１０を介してデータを転送する場合に比べ、迅速にデータを転送することができる。また、ＤＭＡＣ１５によってＤＭＡ転送を実行すれば、ＣＰＵ１０を介してデータを転送する場合に比べ、ＣＰＵ１０及びＨＳＭ１３にかかる負荷を低減することができる。
【００１８】
［第１メモリ１１及び第２メモリ１２の状態遷移］
次に、第１メモリ１１及び第２メモリ１２の状態遷移について、図２から図６までの各図に基づいて説明する。本実施形態の場合、第１メモリ１１及び第２メモリ１２には、ブートローダー及びアプリ１からアプリＮまでのＮ個のアプリが格納される。また、第１メモリ１１及び第２メモリ１２は、第１メモリ１１及び第２メモリ１２それぞれに格納されたソフトウェアの状態を示す状態情報を、ソフトウェアに対応付けて記憶するように構成されている。状態情報は、第１メモリ１１と第２メモリ１２のメモリ一貫性を維持するための情報である。本実施形態では、状態情報を更新するためのプロトコルとして、ＭＳＩプロトコルを採用している。ＭＳＩプロトコルでは、各ソフトウェアの状態として、更新状態Ｍ、共有状態Ｓ及び無効状態Ｉのいずれかが設定される。
【００１９】
ソフトウェアの更新が不要な場合には、図２に示すように、第１メモリ１１と第２メモリ１２の双方に同一のソフトウェアが格納されている状態にある。なお、図２においては、第１メモリ１１と第２メモリ１２の双方に同一のソフトウェアが格納されていることを明示するため、各ソフトウェアのバージョン情報を併記してある。本実施形態においては、第１メモリ１１と第２メモリ１２の双方でバージョン情報が一致する場合には、第１メモリ１１と第２メモリ１２の双方に同一のソフトウェアが格納されていることになる。
【００２０】
ただし、このようなバージョン情報は、本実施形態において、第１メモリ１１と第２メモリ１２に同一のソフトウェアが格納されているか否かを簡便に説明するために導入した概念にすぎない。すなわち、実装上は、第１メモリ１１と第２メモリ１２に同一のソフトウェアが格納されているか否かを、バージョン情報以外の情報で判断可能となるように構成してもよい。バージョン情報以外の情報としては、例えば、各ソフトウェアから生成されるハッシュ値又は各ソフトウェアの更新日時情報等であってもよい。
【００２１】
図２に示すように、第１メモリ１１と第２メモリ１２の双方に同一のソフトウェアが格納されている場合、第１メモリ１１及び第２メモリ１２それぞれに格納されたソフトウェアに対応する状態情報は、双方とも共有状態Ｓとなる。一方、ＥＣＵ２は、車両の外部から車載ネットワークを経由して更新用ソフトウェアを受信することがある。ＥＣＵ２が更新用ソフトウェアを受信した場合、図３に示すように、更新用ソフトウェアは第２メモリ１２に格納される。
【００２２】
この段階で、第１メモリ１１と第２メモリ１２との一貫性が失われるため、第２メモリ１２において更新されたブロック（すなわち、更新用ソフトウェアが格納されたブロック。）の状態情報は更新状態Ｍに変更される。図３に示す例は、第２メモリ１２において全てのソフトウェアが書き換えられて、全てのソフトウェアそれぞれに対応する状態情報が更新状態Ｍとなっている例である。なお、この時点では、第１メモリ１１の書き換えは行われないため、第１メモリ１１に格納されたソフトウェアに対応する状態情報は、全て共有状態Ｓのままとなっている。
【００２３】
次に、第２メモリ１２に更新用ソフトウェアが格納されている状態において、ＩＧ−ＯＦＦとされると、ＣＰＵ１０及びＨＳＭ１３において後述する処理が実行されて、第２メモリ１２に格納された更新用のブートローダーが第１メモリ１１へと転送される。この転送が完了すると、図４に示すように、第１メモリ１１及び第２メモリ１２それぞれに格納されたブートローダーが同一になり、第１メモリ１１及び第２メモリ１２のブートローダーに対応する状態情報は、共有状態Ｓに変更される。また、この段階で第２メモリ１２のアプリ１からアプリＮまでの各アプリに対応する状態情報は、無効状態Ｉに変更される。
【００２４】
次に、上記ブートローダーの転送が完了した状態において、ＩＧ−ＯＮとされると、ＣＰＵ１０及びＨＳＭ１３において後述する処理が実行されて、第２メモリ１２に格納された更新用のアプリ１からアプリＮが第１メモリ１１へと転送される。アプリ１の転送が完了すると、図５に示すように、第１メモリ１１及び第２メモリ１２それぞれに格納されたアプリ１が同一になり、第１メモリ１１及び第２メモリ１２のアプリ１に対応する状態情報は、共有状態Ｓに変更される。その後、アプリ２以降も順に転送されて、図６に示すように、第１メモリ１１及び第２メモリ１２のアプリ２以降に対応する状態情報は、共有状態Ｓに変更される。
【００２５】
このように、ＥＣＵ２においては、上述のような状態情報に基づいて、第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断することができる。したがって、状態情報に基づいて古いソフトウェアと新しいソフトウェアの管理が可能になり、第１記憶部及び第２記憶部の一貫性を適切に保証することができる。
【００２６】
［ＣＰＵ１０及びＨＳＭ１３において実行される処理］
次に、ＣＰＵ１０及びＨＳＭ１３において実行される処理について、図７から図１１までのフローチャートに基づいて説明する。
【００２７】
［ＩＧ−ＯＦＦ時にＣＰＵ１０において実行される処理］
図７に示すリレー制御中インストール処理は、車両においてＩＧ−ＯＦＦとされたことを契機としてＣＰＵ１０によって実行される。この処理を開始すると、Ｓ１０１において、ＣＰＵ１０は、第２メモリ１２のブートローダーの状態を参照する。続いて、Ｓ１０３において、ＣＰＵ１０は、第２メモリ１２のブートローダーの状態が更新状態Ｍか否かを判断する。第２メモリ１２のブートローダーの状態が更新状態Ｍであった場合は、Ｓ１０３での判断結果がＴＲＵＥとなり、Ｓ１０５において、ＣＰＵ１０は、ブートローダー更新処理を実行する。
【００２８】
Ｓ１０５で実行されるブートローダー更新処理は、詳しくは図８に示すような処理である。ブートローダー更新処理を開始すると、Ｓ２０１において、ＣＰＵ１０は、ブートローダーのＤＭＡ転送を開始する。具体的には、ＣＰＵ１０は、ＤＭＡＣ１５に対してＤＭＡ転送の開始を指令し、その指令を受けたＤＭＡＣ１５がブートローダーを第２メモリ１２から第１メモリ１１へ転送する。ＣＰＵ１０は、Ｓ２０３において、ＤＭＡ転送の完了を待つ。
【００２９】
ブートローダーのＤＭＡ転送が完了したら、Ｓ２０５において、ＣＰＵ１０は、第１メモリ１１のブートローダーに対応する状態情報を共有状態Ｓに変更する。Ｓ２０７において、ＣＰＵ１０は、第２メモリ１２のブートローダーに対応する状態情報を共有状態Ｓに変更する。Ｓ２０７を終えたら図８に示す処理を終了する。図８に示す処理を終了したら、図７のＳ１０７へ進む。一方、Ｓ１０３において、第２メモリ１２のブートローダーの状態が更新状態Ｍではなかった場合は、Ｓ１０３での判断結果がＦＡＬＳＥとなり、Ｓ１０７へ進む。
【００３０】
Ｓ１０３又はＳ１０５からＳ１０７へ進むと、ＣＰＵ１０は、変数ｎに初期値１を代入する。Ｓ１０９において、ＣＰＵ１０は、第２メモリ１２のアプリｎの状態を参照する。続いて、Ｓ１１１において、ＣＰＵ１０は、第２メモリ１２のアプリｎの状態が更新状態Ｍか否かを判断する。第２メモリ１２のアプリｎの状態が更新状態Ｍであった場合は、Ｓ１１１での判断結果がＴＲＵＥとなり、Ｓ１１３において、ＣＰＵ１０は、第１メモリ１１のアプリｎの状態を無効状態Ｉに変更する。Ｓ１１３を終えたらＳ１１５へ進む。一方、Ｓ１１１において、第２メモリ１２のアプリｎの状態が更新状態Ｍではなかった場合は、Ｓ１１１での判断結果がＦＡＬＳＥとなり、Ｓ１１５へ進む。
【００３１】
Ｓ１１１又はＳ１１３からＳ１１５へ進むと、ＣＰＵ１０は、変数ｎに増分値１を加算する。Ｓ１１７において、ＣＰＵ１０は、変数ｎがアプリの数Ｎを超えるか否かを判断する。変数ｎがアプリの数Ｎ以下の場合は、Ｓ１１７での判断結果がＦＡＬＳＥとなり、Ｓ１０９へ戻る。これにより、変数ｎがアプリの数Ｎ以下である間は、Ｓ１０９からＳ１１７までが繰り返される。この繰り返し処理の中では、アプリ２以降が順に処理対象となる。アプリＮ＋１が処理対象とされた際、Ｓ１１７での判断結果がＴＲＵＥとなり、図７に示す処理を終了する。
【００３２】
［ＩＧ−ＯＮ時にＨＳＭ１３において実行される処理］
次に、図９に示すセキュアブート処理について説明する。セキュアブート処理は、車両においてＩＧ−ＯＮとされたことを契機としてＨＳＭ１３によって実行される。この処理を開始すると、Ｓ３０１において、ＨＳＭ１３は、第１メモリ１１のブートローダーを検証する。続いて、Ｓ３０３において、ＨＳＭ１３は、第１メモリ１１のブートローダーについて、改ざん無しか否かを判断する。改ざん無しの場合は、Ｓ３０３での判断結果がＴＲＵＥとなり、Ｓ３０５において、ＨＳＭ１３は、ブートローダー起動可能をＣＰＵ１０に通知する。
【００３３】
続いて、Ｓ３０７において、ＨＳＭ１３は、変数ｎに初期値１を代入する。Ｓ３０９において、ＨＳＭ１３は、アプリｎの検証処理を実行する。Ｓ３０９で実行されるアプリｎの検証処理は、詳しくは図１０に示すような処理である。アプリｎの検証処理を開始すると、Ｓ４０１において、ＨＳＭ１３は、第１メモリ１１のアプリｎの状態を参照する。続いて、Ｓ４０３において、ＨＳＭ１３は、第１メモリ１１のアプリｎの状態が無効状態Ｉか否かを判断する。
【００３４】
第１メモリ１１のアプリｎの状態が無効状態Ｉであった場合は、Ｓ４０３での判断結果がＴＲＵＥとなり、Ｓ４０５において、ＨＳＭ１３は、アプリｎのＤＭＡ転送を開始する。具体的には、ＨＳＭ１３は、ＤＭＡＣ１５に対してＤＭＡ転送の開始を指令し、その指令を受けたＤＭＡＣ１５がアプリｎを第２メモリ１２から第１メモリ１１へ転送する。ＤＭＡ転送の実行中に、ＨＳＭ１３は、Ｓ４０７において、メモリバスをスヌープして転送中のアプリｎを取得し、アプリｎを検証する。ＨＳＭ１３は、Ｓ４０９において、ＤＭＡ転送の完了を待つ。アプリｎのＤＭＡ転送が完了したら、Ｓ４１１において、ＨＳＭ１３は、第１メモリ１１のアプリｎに対応する状態情報を共有状態Ｓに変更する。Ｓ４１３において、ＨＳＭ１３は、第２メモリ１２のアプリｎに対応する状態情報を共有状態Ｓに変更する。Ｓ４１３を終えたらＳ４１５へ進む。
【００３５】
一方、Ｓ４０３において、第１メモリ１１のアプリｎの状態が無効状態Ｉではなかった場合は、Ｓ４０３での判断結果がＦＡＬＳＥとなり、ＨＳＭ１３は、Ｓ４２１において、第１メモリ１１からアプリｎを取得し、アプリｎを検証する。すなわち、第１メモリ１１のアプリｎの状態が無効状態ＩであればアプリｎがＤＭＡ転送されるので、Ｓ４０７では転送中のアプリｎを取得するのに対し、第１メモリ１１のアプリｎの状態が無効状態ＩでなければアプリｎがＤＭＡ転送されることはないので、Ｓ４２１では第１メモリ１１からアプリｎを読み出す。Ｓ４２１を終えたらＳ４１５へ進む。
【００３６】
Ｓ４１３又はＳ４２１からＳ４１５へ進むと、ＨＳＭ１３は、改ざん無しか否かを判断する。改ざん無しの場合は、Ｓ４１５での判断結果がＴＲＵＥとなり、Ｓ４１７において、ＨＳＭ１３は、アプリｎ起動可能をＣＰＵ１０に通知する。一方、改ざんありの場合は、Ｓ４１５での判断結果がＦＡＬＳＥとなり、Ｓ４１９において、ＨＳＭ１３は、アプリｎ起動不可をＣＰＵ１０に通知する。Ｓ４１７又はＳ４１９を終えたら図１０に示す処理を終了する。図１０に示す処理を終了したら、図９のＳ３１１へ進む。
【００３７】
Ｓ３１１において、ＣＰＵ１０は、変数ｎに増分値１を加算する。Ｓ３１３において、ＣＰＵ１０は、変数ｎがアプリの数Ｎを超えるか否かを判断する。変数ｎがアプリの数Ｎ以下の場合は、Ｓ３１３での判断結果がＦＡＬＳＥとなり、Ｓ３０９へ戻る。これにより、変数ｎがアプリの数Ｎ以下である間は、Ｓ３０９からＳ３１３までが繰り返される。この繰り返し処理の中では、アプリ２以降が順に処理対象となる。アプリＮ＋１が処理対象された際、Ｓ３１３での判断結果がＴＲＵＥとなり、図９に示す処理を終了する。一方、Ｓ３０３において、改ざんありの場合は、Ｓ３０３での判断結果がＦＡＬＳＥとなり、Ｓ３１５において、ＨＳＭ１３は、ブートローダー起動不可をＣＰＵ１０に通知する。Ｓ３１５を終えたら、図９に示す処理を終了する。
【００３８】
［ＩＧ−ＯＮ時にＣＰＵ１０において実行される処理］
次に、図１１に示すソフト起動処理について説明する。ソフト起動処理は、車両においてＩＧ−ＯＮとされたことを契機としてＣＰＵ１０によって実行される。ＣＰＵ１０によってソフト起動処理が実行される際には、ＨＳＭ１３において図９及び図１０に示すセキュアブート処理が実行される。これにより、ＨＳＭ１３及びＣＰＵ１０が連携し、ＨＳＭ１３においてブートローダー及びアプリ１からアプリＮまでの各アプリが適正なソフトウェアと判断された場合には、これらのソフトウェアがＣＰＵ１０において順に起動されることになる。一方、ＨＳＭ１３においてブートローダー及びアプリ１からアプリＮまでの各アプリのうち、いずれかが不正なソフトウェアと判断された場合、ＣＰＵ１０では、不正と判断されたソフトウェアの起動を中止し、ＥＣＵ２が不正に作動するのを防止する。
【００３９】
図１１に示す処理を開始すると、Ｓ５０１において、ＣＰＵ１０は、ブートローダー起動可否の通知を待つ。Ｓ５０３において、ＣＰＵ１０は、ＨＳＭ１３からの通知に基づき、ブートローダーの起動が可能か否かを判断する。ＨＳＭ１３において上述のＳ３０５が実行された場合、ＨＳＭ１３からＣＰＵ１０へはブートローダー起動可能が通知される。この場合、Ｓ５０３ではＴＲＵＥと判断されてＳ５０５へ進む。一方、ＨＳＭ１３において上述のＳ３１５が実行された場合、ＨＳＭ１３からＣＰＵ１０へはブートローダー起動不可が通知される。この場合、Ｓ５０３ではＦＡＬＳＥと判断されて図１１に示す処理をエラー終了する。なお、エラー終了の場合は、ＥＣＵ２が正常に機能しない状態となるので、その情報をダイアグ情報等として記録する等、エラー発生時に対応する処理が実行されればよい。
【００４０】
Ｓ５０５へ進んだ場合、ＣＰＵ１０は、ブートローダーを実行する。続いて、Ｓ５０７において、ＣＰＵ１０は、変数ｎに初期値１を代入する。Ｓ５０９において、ＣＰＵ１０は、アプリｎ起動可否の通知を待つ。Ｓ５１１において、ＣＰＵ１０は、ＨＳＭ１３からの通知に基づき、アプリｎの起動が可能か否かを判断する。ＨＳＭ１３において上述のＳ４１７が実行された場合、ＨＳＭ１３からＣＰＵ１０へはアプリｎ起動可能が通知される。この場合、Ｓ５１１ではＴＲＵＥと判断されてＳ５１３へ進む。一方、ＨＳＭ１３において上述のＳ４１９が実行された場合、ＨＳＭ１３からＣＰＵ１０へはアプリｎ起動不可が通知される。この場合、Ｓ５１１ではＦＡＬＳＥと判断されて図１１に示す処理をエラー終了する。なお、エラー終了の場合は、Ｓ５０３でエラー終了へ進む場合と同様な処理が実行されればよい。
【００４１】
Ｓ５１３へ進んだ場合、ＣＰＵ１０は、アプリｎを実行する。続いて、Ｓ５１５において、ＣＰＵ１０は、変数ｎに増分値１を加算する。Ｓ５１７において、ＣＰＵ１０は、変数ｎがアプリの数Ｎを超えるか否かを判断する。変数ｎがアプリの数Ｎ以下の場合は、Ｓ５１７での判断結果がＦＡＬＳＥとなり、Ｓ５０９へ戻る。これにより、変数ｎがアプリの数Ｎ以下である間は、Ｓ５０９からＳ５１７までが繰り返される。この繰り返し処理の中では、アプリ２以降が順に処理対象となり、Ｓ５１１での判断結果がＴＲＵＥとなれば、アプリ２以降が順に起動される。また、Ｓ５１１での判断結果がＦＡＬＳＥとなれば、その時点で図１０に示す処理がエラー終了となる。繰り返し処理において、アプリＮ＋１が処理対象とされた際には、Ｓ５１７での判断結果がＴＲＵＥとなり、図１１に示す処理を正常終了する。
【００４２】
［リレー制御時間及び起動性能の対比］
次に、ＥＣＵ２において上述の処理を実行する場合と、他の処理を実行する場合とでリレー制御時間及び起動性能にどのような差異が生じるのかを、図１２から図１４に示すタイミングチャートに基づいて説明する。
【００４３】
図１２に示す例は、ＩＧ−ＯＦＦ後のリレー制御区間でブートローダーからアプリＮまでのＤＭＡ転送を実行し、ＩＧ−ＯＮ後にブートローダーからアプリＮまでを起動する例である。この例の場合、ＩＧ−ＯＦＦとされた後も、メインリレー６によってＥＣＵ２への電力供給が継続され、その間にブートローダーからアプリＮまでのソフトウェアが第２メモリ１２から第１メモリ１１へＤＭＡ転送される。アプリＮの転送が終了したらリレー制御を終了する。その後、ＩＧ−ＯＮとされた際には、第１メモリ１１に格納されたソフトウェアがブートローダーからアプリＮに至る順序で読み出される。ＨＳＭ１３によるセキュアブート処理の中で起動可能と判断されたソフトウェアは、順次ＣＰＵ１０において起動される。
【００４４】
一方、図１３に示す例は、ＩＧ−ＯＦＦ後のリレー制御区間でブートローダーだけをＤＭＡ転送し、ＩＧ−ＯＮ後にブートローダーの起動、アプリ１からアプリＮまでのＤＭＡ転送、及びアプリ１からアプリＮまでの起動を順に実行する例である。この例の場合も、ＩＧ−ＯＦＦとされた後、メインリレー６によってＥＣＵ２への電力供給が継続される。ただし、図１２に示す例とは異なり、リレー制御中にはブートローダーだけが第２メモリ１２から第１メモリ１１へＤＭＡ転送される。したがって、図１２に示す例よりもリレー制御を迅速に終了することができる。よって、バッテリーにかかる負荷を抑制する観点からは、図１２に示す例よりも図１３に示す例の方が好適である。
【００４５】
しかし、図１３に示す例は、ＩＧ−ＯＮ後にアプリ１からアプリＮまでのＤＭＡ転送を実行するため、ＩＧ−ＯＮからアプリ１の起動開始までの時間に着目した場合、図１２に示す例に比べ、アプリ１の起動開始タイミングが遅くなる。この点は、更新対象となるアプリの数が少ない場合や、各アプリのデータ量が小さい場合であれば問題ないが、更新対象となるアプリの数が多い場合や、各アプリのデータ量が大きい場合には、ＥＣＵ２の起動に要する時間が増大することになる。
【００４６】
これに対し、図１４に示す例は、上述の処理を実行する場合の例である。この例の場合、ＩＧ−ＯＦＦ後のリレー制御区間でブートローダーだけをＤＭＡ転送する。この点は、図１３に示す例と同様である。一方、ＩＧ−ＯＮ後には、ブートローダーの起動、及びアプリ１からアプリＮまでのＤＭＡ転送を順に実行するが、各アプリのＤＭＡ転送中に、ＤＭＡ転送と並行して各アプリに対してＨＳＭ１３によるセキュアブート処理を実行し、セキュアブート処理済みの各アプリの起動を順に実行する。これにより、ＨＳＭ１３は、転送後の各アプリを第１メモリ１１から読み出さなくても、転送中の各アプリを取得して、アプリの改ざんやデータ化け等を検査することができる。したがって、図１３に示す例に比べ、ＨＳＭ１３によるセキュアブート処理を迅速に実行できるので、その分だけＣＰＵ１０による各アプリの起動も迅速に開始でき、ＥＣＵ２の起動に要する時間を、図１３に示す例よりも短縮することができる。つまり、上述の処理を実行することにより、リレー制御時間の増大を図１３に示す例と同程度まで回避し、かつソフトウェア更新を図１３に示す例よりも迅速に完了させることができる。
【００４７】
なお、ＩＧ−ＯＮのタイミングでソフトウェアを更新するか、ＩＧ−ＯＦＦのタイミングでソフトウェアを更新するかは、択一的に選定する必要はなく、ソフトウェアの規模や役割に応じて、より好適なタイミングを選定すればよい。ただし、ＩＧ−ＯＮのタイミングでソフトウェアを更新する場合は、規格等で規定された所定の時間以内に更新を済ませる必要がある。この点、上述の処理によれば、ＩＧ−ＯＮ後の処理時間を削減し得るので、図１３に示すような手法ではＩＧ−ＯＮ後の更新が困難であったソフトウェアについても、図１４に示すような手法によってＩＧ−ＯＮ後の更新が可能となる場合がある。よって、ソフトウェアの更新タイミングについて自由度が高くなる。また、ＩＧ−ＯＮ後の更新が増えれば、その分だけＩＧ−ＯＦＦ後の更新時間を削減できるので、バッテリーにかかる負荷を軽減できる。
【００４８】
（２）第２実施形態
次に、第２実施形態について説明する。なお、第２実施形態以降の各実施形態は、第１実施形態で例示した構成の一部を変更した実施形態である。よって、第１実施形態との相違点を中心に詳述し、第１実施形態と同様な部分に関しては、その詳細な説明を省略する。
【００４９】
図１５に示すように、車載ネットワークシステム２１は、ＥＣＵ２２、リプロマスターＥＣＵ２３、ＤＣＭ５及びメインリレー６等を備える。第１実施形態においてはＥＣＵ２に第２メモリ１２が設けられていたが、第２実施形態においては、リプロマスターＥＣＵ２３に第２メモリ３２が設けられている。この点で、第２実施形態は第１実施形態とは相違する。また、第２実施形態においては、ＩＧ−ＯＦＦとされた場合に、電源側からメインリレー６経由でＥＣＵ２２及びリプロマスターＥＣＵ２３の双方へ電力供給を継続可能となるように構成されている。
【００５０】
このように構成された車載ネットワークシステム２１の場合、ＥＣＵ２２とリプロマスターＥＣＵ２３は、グローバルバス７経由で相互にデータ通信を実行することができる。したがって、第２メモリ３２に格納された更新用ソフトウェアを、グローバルバス７経由でリプロマスターＥＣＵ２３からＥＣＵ２２へと送信し、ＥＣＵ２２において受信した更新用ソフトウェアを第１メモリ１１へ格納することができる。したがって、更新用ソフトウェアを第２メモリ３２から第１メモリ１１へ転送するための具体的な構成が、第１実施形態とは相違するが、それ以外の点については、ＥＣＵ２２において第１実施形態と同様な処理を実行することにより、リレー制御時間の増大を回避しつつソフトウェア更新を迅速に完了させることができる。
【００５１】
なお、第２実施形態においても、第１メモリ１１及び第２メモリ３２は、それぞれに格納されたソフトウェアの状態を示す状態情報を、ソフトウェアに対応付けて記憶するように構成されていればよい。これにより、第１メモリ１１に格納されたソフトウェアについて、状態情報に基づいて古いソフトウェアと新しいソフトウェアの管理が可能になり、第１メモリ１１及び第２メモリ３２の一貫性を適切に保証することができる。
【００５２】
また、ソフトウェアの更新が必要な場合、ＨＳＭ１３は、第１メモリ１１へと転送される更新用ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査し、ソフトウェアの更新が不要な場合、ＨＳＭ１３は、第１メモリ１１に格納されたソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査すればよい。これにより、ソフトウェアの更新が必要な場合には、第１メモリ１１への転送が完了する前にＨＳＭ１３による検査を実施できるので、ＥＣＵ２２の起動性能が低下するのを抑制できる。
【００５３】
（３）第３実施形態
次に、第３実施形態について説明する。
図１６に示すように、車載ネットワークシステム５１は、第１のＥＣＵ５２、第２のＥＣＵ５３、リプロマスターＥＣＵ２、ＤＣＭ５及びメインリレー６等を備える。第１実施形態においてはＥＣＵ２に第１メモリ１１及び第２メモリ１２が設けられていたが、第３実施形態においては、第１のＥＣＵ５２に第１メモリ１１が設けられ、第２のＥＣＵ５３に第２メモリ６２が設けられている。この点で、第３実施形態は第１実施形態とは相違する。また、第３実施形態においては、ＩＧ−ＯＦＦとされた場合に、電源側からメインリレー６経由で第１のＥＣＵ５２及び第２のＥＣＵ５３の双方へ電力供給を継続可能となるように構成されている。さらに、第１のＥＣＵ５２と第２のＥＣＵ５３は、ローカルバス５８経由で相互にデータ通信を実行できるように構成されている。
【００５４】
このように構成された車載ネットワークシステム５１の場合、第２メモリ６２に格納された更新用ソフトウェアを、ローカルバス５８経由で第２のＥＣＵ５３から第１のＥＣＵ５２へと送信し、第１のＥＣＵ５２において受信した更新用ソフトウェアを第１メモリ１１へ格納することができる。したがって、更新用ソフトウェアを第２メモリから第１メモリ１１へ転送するための具体的な構成が、第１実施形態とは相違するが、それ以外の点については、第１のＥＣＵ５２において第１実施形態と同様な処理を実行することにより、リレー制御時間の増大を回避しつつソフトウェア更新を迅速に完了させることができる。
【００５５】
なお、第３実施形態においても、第１メモリ１１及び第２メモリ６２は、それぞれに格納されたソフトウェアの状態を示す状態情報を、ソフトウェアに対応付けて記憶するように構成されていればよい。これにより、第１メモリ１１に格納されたソフトウェアについて、状態情報に基づいて古いソフトウェアと新しいソフトウェアの管理が可能になり、第１メモリ１１及び第２メモリ６２の一貫性を適切に保証することができる。
【００５６】
また、ソフトウェアの更新が必要な場合、ＨＳＭ１３は、第１メモリ１１へと転送される更新用ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査し、ソフトウェアの更新が不要な場合、ＨＳＭ１３は、第１メモリ１１に格納されたソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査すればよい。これにより、ソフトウェアの更新が必要な場合には、第１メモリ１１への転送が完了する前にＨＳＭ１３による検査を実施できるので、第１のＥＣＵ５２の起動性能が低下するのを抑制できる。
【００５７】
（４）他の実施形態
以上、電子制御装置について、例示的な実施形態を挙げて説明したが、上述の実施形態は本開示の一態様として例示されるものにすぎない。すなわち、本開示は、上述の例示的な実施形態に限定されるものではなく、本開示の技術的思想を逸脱しない範囲内において、様々な形態で実施することができる。
【００５８】
例えば、上記実施形態では、第２メモリ１２，３２，６２が配置される場所について、３通りの例を示したが、上述の例に限らず、車載ネットワークシステム内において、第２メモリから第１メモリ１１へソフトウェアの転送が可能な場所であれば、第２メモリはどこに配置されていてもよい。
【００５９】
また、第１実施形態では、第１メモリ１１から第２メモリ１２へＤＭＡ転送を行う例を示したが、ＤＭＡ転送を行うか否かは任意である。また、第２実施形態及び第３実施形態では言及しなかったが、第２実施形態及び第３実施形態においてＥＣＵ２２，５２が、ＥＣＵ２２，５２の内部でＤＭＡ転送を行うか否かも任意である。
【００６０】
本開示に記載のＥＣＵ２，２２，５２及びその手法は、コンピュータプログラムにより具体化された１つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載のＥＣＵ２，２２，５２及びその手法は、１つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。若しくは、本開示に記載のＥＣＵ２，２２，５２及びその手法は、１つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと１つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された１つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。ＥＣＵ２，２２，５２に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、１つあるいは複数のハードウェアを用いて実現されてもよい。
【００６１】
以上の他、上記各実施形態における１つの構成要素によって実現していた機能を、複数の構成要素によって実現するように構成してもよい。また、複数の構成要素によって実現していた機能を１つの構成要素によって実現するように構成してもよい。また、上記各実施形態の構成の一部を省略してもよい。また、上記各実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加、置換等してもよい。
【００６２】
また、上述した電子制御装置の他、当該電子制御装置を構成要素とする車載ネットワークシステム、当該電子制御装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した非遷移有形記録媒体など、種々の形態で本開示を実現することもできる。
【００６３】
なお、上述した各実施形態において、ＥＣＵ２，２２，５２は本開示でいう電子制御装置に相当する。第１メモリ１１は本開示でいう第１記憶部に相当する。第２メモリ１２，３２，６２は本開示でいう第２記憶部に相当する。Ｓ３０１，Ｓ４０７及びＳ４２１を実行するＨＳＭ１３は、本開示でいう検査部に相当する。Ｓ５０５及びＳ５１３を実行するＣＰＵ１０は、本開示でいう処理部に相当する。Ｓ４０３を実行するＨＳＭ１３は、本開示でいう判断部に相当する。Ｓ４０５を実行するＨＳＭ１３及びＤＭＡ転送を実行するＤＭＡＣ１５は、本開示でいう更新部に相当する。
【００６４】
（５）補足
なお、以上説明した例示的な実施形態から明らかなように、本開示の電子制御装置は、更に以下に挙げるような構成を備えていてもよい。
【００６５】
（Ａ）例えば、第２記憶部は、電子制御装置の内部に設けられていてもよい。この場合、必要な構成全てが電子制御装置の内部に配置される。したがって、例えばリレー制御が必要となる場合においては、一部の構成が電子制御装置の外部に配置される場合に比べ、リレー制御が必要となる装置の数を削減し、バッテリーにかかる負荷を軽減することができる。
【００６６】
（Ｂ）例えば、第１記憶部及び第２記憶部は、それぞれに格納されたソフトウェアの状態を示す状態情報を、ソフトウェアに対応付けて記憶するように構成されてもよい。判断部は、状態情報に基づいて、第１記憶部に格納されたソフトウェアについて、更新が必要か否かを判断するように構成されていてもよい。この場合、状態情報に基づいて古いソフトウェアと新しいソフトウェアの管理が可能になり、第１記憶部及び第２記憶部の一貫性を適切に保証することができる。
【００６７】
（Ｃ）例えば、検査部は、判断部によって更新が必要と判断された場合には、更新部によって第１記憶部へと転送される更新用ソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査し、判断部によって更新が不要と判断された場合には、第１記憶部に格納されたソフトウェアを検査対象として、当該ソフトウェアが適正なソフトウェアか否かを検査するように構成されていてもよい。この場合、更新部による転送が完了する前に検査部による検査を実施できるので、電子制御装置の起動性能が低下するのを抑制できる。
【００６８】
（Ｄ）例えば、更新部は、第２記憶部に格納された更新用ソフトウェアを、ＤＭＡ転送方式で第１記憶部へと転送するように構成されていてもよい。この場合、例えば、処理部がＣＰＵによって構成され、検査部がＨＳＭによって構成されている場合には、ＣＰＵやＨＳＭにかかる負荷を軽減することができる。また、ＤＭＡ転送によってデータ伝送路の使用効率が上がるため、ＤＭＡ転送以外の方式でデータを転送する場合に比べ処理の高速化を図ることができる。
【００６９】
（Ｅ）例えば、検査部は、ＤＭＡ転送方式での転送に用いられるデータ伝送路をスヌープして、第１記憶部へと転送される更新用ソフトウェアを取得するように構成されていてもよい。この場合、ＤＭＡ転送による転送対象を第２記憶部から読み出せば、検査部による検査を実施することができるので、検査対象を第１記憶部から読み出す必要がなくなり、その分だけ処理を高速化することができる。
【００７０】
（Ｆ）例えば、第２記憶部は、通信路を介して電子制御装置と通信可能に構成される他の電子装置に設けられてもよい。更新部は、第２記憶部に格納された更新用ソフトウェアを他の電子装置から取得して、当該ソフトウェアを第１記憶部へと転送するように構成されていてもよい。この場合、個々の電子制御装置に第２記憶部を設けなくても、複数の電子制御装置で１つの第２記憶部を共用することで、電子制御装置の構成を簡素化し、電子制御装置のコストアップを抑制することができる。
【符号の説明】
【００７１】
１，２１，５１…車載ネットワークシステム、２，２２，５２，５３…ＥＣＵ、３，２３…リプロマスターＥＣＵ、５…ＤＣＭ、６…メインリレー、７…グローバルバス、５８…ローカルバス、１０…ＣＰＵ、１１…第１メモリ、１２，３２，６２…第２メモリ、１５…ＤＭＡＣ。
【図１】
2020173597.tif 000003
【図２】
2020173597.tif 000004
【図３】
2020173597.tif 000005
【図４】
2020173597.tif 000006
【図５】
2020173597.tif 000007
【図６】
2020173597.tif 000008
【図７】
2020173597.tif 000009
【図８】
2020173597.tif 000010
【図９】
2020173597.tif 000011
【図１０】
2020173597.tif 000012
【図１１】
2020173597.tif 000013
【図１２】
2020173597.tif 000014
【図１３】
2020173597.tif 000015
【図１４】
2020173597.tif 000016
【図１５】
2020173597.tif 000017
【図１６】
2020173597.tif 000018