(57)【要約】  本発明は、プログラム更新の安全性を高める。また、プログラムのバージョン管理を簡素化する。新たな実行用プログラムと特定プログラムとの差分データが入力された場合、圧縮された特定プログラムを解凍復元して、実行用プログラムを特定プログラムへ書き換える解凍復元部と、差分データと特定プログラムとから新たな実行用プログラムを差分復元して、特定プログラムを新たな実行用プログラムへ書き換える差分復元部と、を備える。また、新たな実行用プログラムと特定プログラムとの差分データが入力された場合、該差分データとメモリ部の実行用プログラムとから新たな実行用プログラムを差分復元して、メモリ部の実行用プログラムを新たな実行用プログラムへ書き換える差分復元部と、圧縮された特定プログラムを解凍復元して、新たな実行用プログラムを特定プログラムへ書き換える解凍復元部と、を備える。
2018173911.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、圧縮された前記特定プログラムを解凍復元して、前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、
前記差分データと前記メモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、を備えることを特徴とする車載制御装置。
【請求項２】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１記載の車載制御装置。
【請求項３】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の前記実行用プログラムを前記特定プログラムへ書き換えて、
前記差分復元部は、前記差分データと前記第１のメモリ領域の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項２記載の車載制御装置。
【請求項４】
車両のシフトギヤがパーキング位置にある場合、前記解凍復元部と差分復元部を用いて、前記実行用プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項２記載の車載制御装置。
【請求項５】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、該差分データと前記メモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、
圧縮された前記特定プログラムを解凍復元して、新たな前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、を備えることを特徴とする車載制御装置。
【請求項６】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項５記載の車載制御装置。
【請求項７】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記差分復元部は、前記差分データと前記第１のメモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換え、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項５記載の車載制御装置。
【請求項８】
車両のシフトギヤがパーキング位置にある場合、前記差分復元部を用いて前記実行用プログラムを新たな前記実行用プログラムへ書き換え、前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項５記載の車載制御装置。
【請求項９】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部を備えた車載制御装置のプログラム更新ソフトウェアにおいて、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、圧縮された前記特定プログラムを解凍復元して、前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、
該差分データと前記メモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、を備えることを特徴とする車載制御装置のプログラム更新ソフトウェア。
【請求項１０】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項９記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１１】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の前記実行用プログラムを前記特定プログラムへ書き換え、
前記差分復元部は、前記差分データと前記第１のメモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項１０記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１２】
車両のシフトギヤがパーキング位置にある場合、前記解凍復元部と前記差分復元部を用いて、前記実行用プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項１０記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１３】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部を備えた車載制御装置のプログラム更新ソフトウェアにおいて、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、該差分データと前記メモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、
圧縮された前記特定プログラムを解凍復元して、新たな前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、を備えることを特徴とする車載制御装置のプログラム更新ソフトウェア。
【請求項１４】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１３記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１５】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記差分復元部は、前記差分データと前記第１のメモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ部の前記実行用プログラムを前記新たな実行用プログラムへ書き換え、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の新たな前記実行用プログラムを特定プログラムへ書き換える
ことを特徴とする、請求項１３記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１６】
車両のシフトギヤがパーキング位置にある場合、前記差分復元部を用いて前記実行用プログラムを新たな前記実行用プログラムへ書き換え、前記診断の結果に応じて、前記解凍復元部は、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１３記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１７】
前記解凍復元部と前記差分復元部は、プログラムの区分毎に繰り返し行うことを特徴とする請求項１乃至８のいずれかに記載の車載制御装置。
【請求項１８】
前記解凍復元部と差分復元部は、プログラムの区分毎に繰り返し行うことを特徴とする請求項９乃至１６のいずれかに記載の車載制御装置のプログラム更新ソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載制御装置、及びプログラム更新ソフトウェアに関する。
【背景技術】
【０００２】
車載制御装置のリプログラミングは、低速なＣＡＮ（Controller Area Network）を介して書込みツールとしてのＰＣ（Personal Computer）または車載書込み装置と、車載制御装置（ＥＣＵ：Electric Control Unit）を接続し、バイナリーデータ（新プログラム）全体を分割転送しながらＥＣＵのフラッシュメモリへ書込みを行っている。【０００３】
このため、旧プログラムに対する新プログラムの更新部分が小さい場合においても、新プログラム全体をＣＡＮ経由で転送し、新プログラム全体の書込みを行っている。【０００４】
従って、書込みに要する時間がかかるという問題があった。これに対し、従来から差分によるリプログラミングの考え方が提案されている（例えば、特許文献１参照）。すなわち、特許文献１の段落〔００１９〕には、書き換え方式の１つとして「ブロック単位で新旧プログラムの差分データを作成する手段」が記載されている。さらに段落〔００６４〕には、更新対象ブロックの旧プログラムをＳＤＲＡＭへ転送して、差分データと旧プログラムを用いて新プログラムをＳＤＲＡＭへ復元し、更新対象ブロックを消去してから、新プログラムを書込んでいる。【０００５】
特許文献２では、段落〔０００６〕において、少ないＲＡＭ使用量で差分更新を実現する手段が記載されている。更新対象のブロックの旧プログラムをＲＡＭへ転送するのでは無く、フラッシュメモリの他のブロックへ転送する方法である。転送した後に、更新対象のブロックを消去し、差分データと転送した旧プログラムを用いて新プログラムを復元し、新プログラムを更新対象ブロックへ書込むというやりかたである。この処理を全ての更新対象ブロックに対して繰返し行うことで新プログラムをフラッシュメモリへ書込むことができる。ただし、他のブロックにも書込むべき新プログラムが存在する場合は、旧プログラムは既に消去されているので、全文データを用いた従来の更新を行っている。【０００６】
このように、差分によるリプログラミングを実現する技術が開発されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１９００７５号公報
【特許文献２】特開２０１１−８１５６１号公報
【特許文献３】特開２０１６−１１８８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
差分によるリプログラミングには、いくつかの課題がある。以下、詳しく説明する。第１の課題について説明する。車載制御装置は、数メガバイトの不揮発性メモリと１メガバイト以下の小さな揮発性メモリで構成した記憶装置で構成されることが多い。これはマイコンに内蔵されているメモリだけで制御を実現することで安価な車載制御装置を実現するためである。このため、不揮発性メモリに記憶されている旧プログラムと差分データを入力として、差分復元ソフトにより新プログラムを差分復元し、新プログラムを不揮発性メモリへ書込むことでソフトウェア更新を実現する。【０００９】
しかしながら、復元した新プログラムが正しく復元できたか診断する必要がある。例えば、新プログラム全体のサム値やハッシュ値などを前記書込みツールや車載書込み装置から受信し、車載制御装置自身が復元した新プログラムのサム値やハッシュ値を計算して、受信した値と一致するかチェックすることで診断が可能となる。【００１０】
第１の課題は、もし診断結果が異常の場合には、不揮発性メモリには既に旧プログラムが存在しないので、差分によるリプログラミングが不可能になってしまうという問題である。この問題を安価でかつ安全に解決する手段を提供することが第１の課題である。【００１１】
特許文献３には、差分更新（差分によるリプログラミング）によるプログラム書換え手段には言及していないが、常に１つ前のバージョンのプログラムを圧縮して第２メモリに記憶しておき、第１メモリの旧プログラムのリプログラミングに異常があった場合、第２メモリの圧縮データを解凍して１つ前のバージョンのプログラムを第１メモリへ書込むことで、マイコンを動作可能にする手段を開示している。ただし１つ前のバージョンのプログラムを第２メモリに圧縮した状態で格納する必要があるため、車載制御装置は圧縮手段を必要とすることも記載されている。【００１２】
次に第２の課題について説明する。差分更新は、一般的には新プログラムと１つ前のバージョンから差分データを生成する。しかしながら、数百万台のリコールのケースを考えると全ての車両が１つ前のバージョンのプログラムが搭載されているとは考えにくい。運転者は所有車に異常を感じていない場合、リコールによるプログラム更新をしていないケースやディーラーへ行くのが面倒などの理由で更新していないケースが多い。このため、差分更新には、複数バージョンとの差分データを用意する必要がある。このためバージョン管理が複雑になるという問題がある。【００１３】
このバージョン管理の複雑さを簡素化する手段を提供することが第２の課題である。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明は一例として、書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、圧縮された前記特定プログラムを解凍復元して、前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、前記差分データと前記メモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、を備える。【００１５】
また、書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、該差分データと前記メモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、圧縮された前記特定プログラムを解凍復元して、新たな前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、を備える。
【発明の効果】
【００１６】
本発明によれば、プログラム更新の安全性を高めることができる。また、プログラムのバージョン管理を簡素化できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による車両の全体構成を示す模式図である。
【図２】図１に示す車載制御装置のＳＲＡＭの内部の構成を示す模式図である。
【図３】図１に示す車載制御装置のＦＬＡＳＨメモリの内部の構成を示す模式図である。
【図４】本発明の第１の実施例の更新ソフト全体構成図である。
【図５Ａ】図１の車載書込み装置と車載制御装置の通信コマンドの種類を示す図である。
【図５Ｂ】図５Aの通信コマンドをプログラム書込み装置が送信するフローチャートである。
【図６】図４と図１０で使用する通信ソフトのフローチャートである。
【図７】図４と図１０で使用する差分復元ソフトのフローチャートである。
【図８】図４と図１０で使用する診断ソフトのフローチャートである。
【図９】図４と図１０で使用する解凍ソフトのフローチャートである。
【図１０】本発明の第２の実施例の更新ソフト全体構成図である。
【図１１】本発明の第２の実施例の通信ソフトのフローチャートである。
【図１２】本発明の第２の実施例の変形例である更新ソフト１２００のフローチャートである。
【発明を実施するための形態】
【００１８】
第１の解決手段を説明する。
車載制御装置は、第１不揮発性メモリに更新対象のプログラムを配置し、第２不揮発性メモリには、特定のプログラム（例えば、緊急時用プログラム）を圧縮した状態（圧縮データ）で配置する。次に旧プログラムと新プログラムから生成した差分データと第１不揮発性メモリの旧プログラムから差分復元手段を用いて新プログラムを差分復元する。次に復元した新プログラムを、診断手段を用いて診断する。診断した結果、正常の場合には正しく更新できたのでプログラム更新処理は終了である。一方、異常の場合には、解凍手段を用いて圧縮データを解凍し、解凍した特定のプログラムを第１不揮発性メモリへ書込む。
【００１９】
この特定のプログラムを動作させることで、車両は正常に走行可能となる。
【００２０】
第１の解決手段によれば、差分更新に失敗した場合でも、圧縮データを解凍した特定のプログラム（例えば、緊急時用プログラム）で車両を走行可能な状態にすることができる。さらに、特定のプログラムは、走行に必要な機能に限定できるため、より小さなプログラムサイズにすることができる。従って、その圧縮データはさらに小さなサイズになるので、結果としてバックアップ用不揮発性メモリ（第２不揮発性メモリ）の容量を小さくできるという効果がある。
【００２１】
次に第２の解決手段を説明する。
車載制御装置は、差分更新開始前に、解凍手段を用いて第２不揮発性メモリの圧縮データを解凍し、特定のプログラムを第１不揮発性メモリへ書込む。次に特定のプログラムと新プログラムから生成した差分データと、第１不揮発性メモリ内の特定のプログラムから差分復元手段を用いて新プログラムを差分復元する。復元した新プログラムを第１不揮発性メモリへ書込む。
【００２２】
このように、本解決手段は、車載制御装置内の第１不揮発性メモリに特定のプログラムを配置してから差分復元するので、特定のプログラムと新プログラムの差分データだけを用意しておけば、全ての車両を差分更新可能となる。
【００２３】
本解決手段は、解凍手段と差分復元手段を組合せて実現している。しかし単なる組合せでは無い。本来、解凍手段だけを用いて新プログラムを復元すれば、簡単に第１不揮発性メモリを新プログラムへ変更できる。しかし、圧縮データは、差分データの１０倍以上のサイズになるケースが多い。このため、車載書込み装置と車載制御装置間の通信時間が増大し、結果としてソフトウェア更新時間の増大を招く。一方、本実施例では、圧縮データの解凍処理は、車載制御装置内のメモリ間の処理で済む。このため、解凍処理は短時間で済む。また、差分更新前に解凍手段を実行して第１不揮発性メモリを特定のプログラムへ変更することは、通常考えられない概念できる。なぜなら、第１不揮発性メモリに存在している旧プログラムは、特定のプログラムよりも新しいバージョンであるケースが多い。
それゆえ、最初に、旧プログラムよりも古いバージョンの特定のプログラムへ書き換えてから、さらに差分更新する概念は、通常考えられない概念である。
【００２４】
さらに、第２の解決手段の改善手段がある。
前記第２の課題を解決する手段は、解凍手段を用いて特定のプログラムを第１不揮発性メモリへ書込んだ後に、差分データと特定のプログラムから新プログラムを差分復元して、新プログラムを第１不揮発性メモリへ書込んでいた。このため、第１不揮発性メモリには、２回の書込みが発生する。
【００２５】
改善手段は、１回の書込みで実現する手段である。まず、解凍手段は、第２不揮発性メモリの圧縮データから特定プログラムの一部分を解凍し、揮発性メモリへ書込む。次に差分復元手段は、特定プログラムの前記一部分と新プログラムの一部分の差分データと、揮発性メモリの特定プログラムの一部分を用いて、新プログラムの前記一部分を差分復元する。次に、復元された新プログラムの一部分を第１不揮発性メモリへ書込む。この一部分だけの解凍処理と差分復元処理を繰返すことで、第１不揮発性メモリへ新プログラム全体を書込む。結果として、第１不揮発性メモリは、１回の書込みで実現できた。
【００２６】
第２の解決手段及び改善手段によれば、車載制御装置内の旧プログラム（第１不揮発性メモリ）では無く、特定のプログラム（例えば、緊急時用プログラム）を用いるので、差分データは、特定のプログラムと新プログラムから生成している。すなわち、異なるバージョンのプログラムで動作している車載制御装置であっても、本解決手段の差分データだけで、全ての車載制御装置を差分更新できるようになる。
【００２７】
このように本解決手段及び改善手段により、複数のバージョンのプログラムとの差分データを管理しなくて済むので、プログラムのバージョン管理を簡素化できる。
【００２８】
以下、図面を用いて本発明の実施形態による車載制御装置を含む車両の構成及び動作を説明する。
【００２９】
車両は、車載書き込み装置１００（ゲートウェイ）、複数の車載制御装置２００（２００１〜２００ｎ）を備える。車載書き込み装置１００と車載制御装置２００は、相互に車載ネットワークＣＡＮを介して通信する。
【００３０】
車載制御装置２００は、マイコン２０１、車載制御装置２００毎の用途に応じた各種のＩＣ（Integrated Circuit）２０４、ＣＡＮトランシーバなどの通信装置２０５を備える。マイコン２０１は、ＳＲＡＭ２０２（揮発性メモリ）、ＦＬＡＳＨメモリ２０３（不揮発性メモリ）を内蔵する。
【００３１】
なお、車載書き込み装置１００の構成も車載制御装置２００の構成と基本的に同じであるが、車両の外部のネットワークのプロトコルに応じた通信装置をさらに備える。すなわち、車載書き込み装置１００は、マイコン１０１、各種のＩＣ１０４、ＣＡＮトランシーバなどの通信装置１０５、車両の外部のネットワークのプロトコルに応じた通信装置１０６を備える。マイコン１０１は、ＳＲＡＭ１０２、ＦＬＡＳＨメモリ１０３を内蔵する。
【００３２】
次に、図２を用いて、車載制御装置２００のＳＲＡＭ２０２の構成を説明する。図２は、図１に示すＳＲＡＭ２０２の内部の構成を示す模式図である。
【００３３】
ＳＲＡＭ２０２は、車載書込み装置１００から送信された差分データを一時的に記憶するための受信エリア２０２ａ、差分データを用いて差分復元した復元プログラムを一時的に記憶するための復元エリア２０２ｂを備える。
【００３４】
次に、図３を用いて、ＦＬＡＳＨメモリ２０３の構成を説明する。図３は、図１に示すＦＬＡＳＨメモリ２０３の内部の構成を示す模式図である。ＦＬＡＳＨメモリ２０３は、複数のサイズのブロックB#n(n=1〜B)とBOOTから構成される。ここで更新対象のプログラム（バイナリーデータ）を格納する第１不揮発性メモリ３０２は、ブロックB#n(n=1〜7)のエリアである。また、本実施例の緊急時用プログラムの圧縮データを格納する第２不揮発性メモリ３０３は、ブロックB#n(n=8〜B)のエリアである。本実施形態では、一例として、ＦＬＡＳＨメモリ２０３のサイズは２ＭＢとしている。ここで、ブロックB#nとは、消去可能な最小サイズである。例えば、ブロックB#nにデータを書き込む場合、ブロックB#n全体を消去してからデータを書き込む必要がある。
【００３５】
図３に示すように、ＦＬＡＳＨメモリ２０３では、先頭のブロックには車載書込み装置１００と通信を行い、差分更新を実現する更新ソフト３０１がＢＯＯＴに搭載されている。
【００３６】
（第１の実施例）
次に第１の実施例の全体構成を示す図４を用いて、更新ソフト３０１の動作を説明する。
【００３７】
更新ソフト３０１は、通信ソフト４０１を動作させて、車載書込み装置１００から受信した差分データをＳＲＡＭ２０２の受信エリア２０２ａに一時的に記憶する。
【００３８】
次に差分復元ソフト４０２を動作させて、受信エリア２０２aの差分データと第１不揮発性メモリ３０２の旧プログラム（バイナリーデータ）を用いて差分復元を行い、その結果をＳＲＡＭ２０２の復元エリア２０２bへ格納する。次に第１不揮発性メモリ３０２のブロックB#n (n=1〜7)を消去することにより旧プログラムを削除し、復元エリア２０２bの復元プログラムを第１不揮発性メモリ３０２へコピーする。これで新プログラムが第１不揮発性メモリ３０２へ格納できたことになる。次に診断ソフト４０３を動作させて、新プログラムが正しく復元され、かつ正しく書き込めたか診断を行う。もし診断結果が正常であれば、差分更新によるソフトウェア更新は終了となる。一方、診断結果が異常であれば、解凍手段４０４を動作させて、第２不揮発性メモリ３０３の圧縮データを解凍し、その結果である緊急時用プログラムをＳＲＡＭ２０２の復元エリア２０２bへ格納する。次に第１不揮発性メモリ３０２のブロックB#n (n=1〜7)を消去することにより復元プログラムを削除し、復元エリア２０２bの緊急時用プログラムを第１不揮発性メモリ３０２へコピーする。これで緊急時用プログラムが第１不揮発性メモリ３０２へ格納できたことになる。
【００３９】
このように、第１の課題である差分復元に失敗した場合でも、緊急時用プログラムの圧縮データを用いて、差分復元手段、診断手段、解凍手段を組み合わせて動作させることにより、車載制御装置を安全に動作させることができた。
【００４０】
以下、通信手段、差分復元手段、診断手段、解凍手段の詳細な説明を図５〜図９を用いて説明する。
【００４１】
図５Aは、車載書込み装置１００から送信される通信コマンドである。この通信コマンドを用いて差分データを車載制御装置２００へ送信する。
【００４２】
通信コマンド$10  ５００は、車載制御装置２００へ、差分データ送信開始を通知するコマンドである。車載制御装置は、このコマンドを受信することで、受信エリア２０２aへ差分データを格納することができる。
【００４３】
通信コマンド$20  ５１０は、差分復元対象エリア指定コマンドである。第１不揮発性メモリ３０２を指定する。付属するＭＡは先頭アドレス、ＭＳはサイズである。
【００４４】
通信コマンド$30  ５２０は、差分データを付属したコマンドである。DATAは差分データである。
【００４５】
通信コマンド$40  ５３０は、差分データ送信終了を示すコマンドである。
【００４６】
通信コマンド$50  ５４０は、診断開始コマンドである。付属するＭＡは先頭アドレス、ＭＳはサイズである。車載制御装置は、指定された先頭アドレスＭＡから、サイズＭＳのエリアのサム値を計算し、第１不揮発性メモリ３０２内の所定のアドレスに格納されているサム値と一致することを診断する。
【００４７】
図５Bは、プログラム書込み装置１００が、車載制御装置２００へ通信コマンドを送信するフローチャートである。
【００４８】
５５０は通信コマンドで、差分データ送信開始  ＄１０を送信する。
５６０は通信コマンドで、差分復元対象エリア指定  ＄２０を送信する。
５７０は通信コマンドで、差分復元対象エリアの差分データ  ＄３０を送信する。
５８０は通信コマンドで、差分データ送信終了  ＄４０を送信する。
５９０は、全てのブロックの差分データを送信完了したか判定し、もしyesならば５９５を実行し、もしnoならば５６０へ戻って５６０〜５９０を繰返し実行する。
５９５は通信コマンドで、診断開始 ＄５０を送信する。
以上で、プログラム書込み装置１００は全てのブロックの差分データを車載制御装置２００へ送信したことになる。
【００４９】
図６は、車載制御装置２００の通信ソフト４０１の動作を図５の通信コマンドを受信した時の動作を示している。
【００５０】
６００では、車載書込み装置１００からコマンドＡを受信する。
６１０では、コマンドＡが$10か判定し、yesなら６１５を実行し、もしnoならば６２０を実行する。
６１０は、受信エリア202aと、復元エリア202bを初期化して差分更新の準備をする。
６２０は、コマンドＡが$20か判定し、yesなら６２５を実行し、もしnoならば６３０を実行する。
６２５は、差分復元対象エリアの先頭アドレスＭＡ、サイズＭＳを記憶する。
６３０は、コマンドＡが$30か判定し、yesなら６３５を実行し、もしnoならば６４０を実行する。
６３５は、差分データＤＡＴＡを受信エリア202aヘ記憶する。
６４０は、コマンドＡが$40か判定し、yesなら６４５と６４６を実行し、もしnoならば６５０を実行する。
６４５は、差分復元手段４０２を実行して、復元したプログラムを復元エリア２０２bヘ格納する。
６４６は、第１不揮発性メモリ３０２のアドレスＭＡからサイズＭＳのエリアを消去し、復元エリア２０２bを第１不揮発性メモリ３０２へコピーする。
６５０は、コマンドＡが$50か判定し、yesなら６５５と６５６を実行し、noならば終了である。
６５５は、診断手段４０３を実行して、診断結果が正常ならば終了である。しかし診断結果が異常ならば、解凍手段４０４を実行して、解凍した緊急時用プログラムを復元エリア２０２bへ格納する。
６５６は、第１不揮発性メモリ３０２の差分復元対象エリアの先頭アドレスＭＡからサイズＭＳのエリアを消去し、復元エリア２０２bの緊急時用プログラムを第１不揮発性メモリ３０２へコピーする。
【００５１】
以上で、差分更新後に行った診断の結果、異常があった場合でも、緊急時用プログラムを用いて車載制御装置２００は、動作可能になる。
【００５２】
図７は、差分復元ソフト４０２の動作を示すフローチャートである。
最初に、差分生成・差分復元ソフトについて説明する。差分生成ソフトは、差分抽出処理などにおいて、新プログラムの部分命令列と類似の部分命令列を旧プログラムから検索して見つけ出し、その部分命令列を短い符号に置き換えてコピーコマンドに付属させる。
一方、類似の部分命令列が見つからない場合には、追加コマンドにその部分命令列を付属させる。このコピーコマンドと追加コマンドの列が差分データである。このように、差分データとは、単に新プログラムから旧プログラムを減算した結果では無く、類似部分名列を短い符号に置き換えたコピーコマンドや追加コマンドなどの列で構成されている。
以上の準備を踏まえて、差分復元ソフト４０２の動作を説明する。
【００５３】
７００は、受信エリア２０２aの差分データから差分コマンドを読み出す。
７１０で差分コマンドを解析し、
７２０で差分コマンドがコピーコマンドか判定し、yesなら７２５を実行し、もしnoならば７３０を実行する。
７２５は、コマンドに付属する符号から第１不揮発性メモリ３０２の旧プログラムの部分命令列を復元エリア２０２bへ書込む。
７３０は、差分コマンドが追加コマンドか判定し、yesなら７３５を実行し、もしnoならば７４０を実行する。
７３５は、追加コマンドに付属するデータ（部分命令列）を復元エリア２０２bヘ追加書込みをする。
７４０は、受信エリア２０２aの差分データを全て読み出したか判定し、yesならば差分復元処理は終了である。もしnoならば７００へ戻って処理を繰返す。
【００５４】
以上で、差分復元した復元プログラムが復元リア２０２bに格納できたことになる。
【００５５】
図８は、診断ソフト４０３のフローチャートである。
８００は、第１不揮発性メモリ３０２の特定アドレスに格納されている更新プログラムのサム値を変数ＳＵＭへ設定している。
８１０は、先頭アドレスＭＡからサイズＭＳまでのエリアのデータ（第１不揮発性メモリ３０２のプログラム）を４バイト単位に加算した値を変数Ｓへ設定する。
８２０は、変数ＳＵＭと変数Ｓの一致判定を行い、yesなら８２５を実行し、もしnoならば８３０を実行する。
８２５は、診断結果が正常なのでソフトウェア更新は、正常終了となる。
８３０は、診断結果が異常なので、解凍ソフト４０４を実行する。
【００５６】
図９は、解凍ソフト４０４のフローチャートである。
【００５７】
最初に、圧縮・解凍ソフトについて説明する。圧縮ソフトは、プログラム中の部分命令列と類似の部分命令列をプログラムから検索して見つけ出し、その部分命令列を短い符号に置き換えてコピーコマンドに付属させる。一方、類似の部分命令列が見つからない場合には、追加コマンドにその部分命令列を付属させる。このコピーコマンドと追加コマンドの列が圧縮データである。このように、圧縮データは、類似部分名列を短い符号に置き換えたコピーコマンドや追加コマンドなどの列で構成されている。
以上の準備を踏まえて、解凍ソフト４０４の動作を説明する。
【００５８】
９００は、第２不揮発性メモリ３０３の圧縮データを読み出す。
９１０は、圧縮コマンドを解析し、
９２０は、圧縮コマンドがコピーコマンドか判定し、yesならば９２５を実行し、noならば９３０を実行する。
９２５は、コマンドに付属する符号から圧縮データ内の部分命令列を復元エリア２０２bへ書込む。
９３０は、圧縮コマンドが追加コマンドか判定し、yesならば９３５を実行し、noならば９４０を実行する。
９３５は、追加コマンドに付属するデータ（部分命令列）を復元エリア２０２bへ追加書込みをする。
９４０は、第２不揮発性メモリ３０３から圧縮データを全て読み出したか判定し、yesなら圧縮データは復元エリア２０２bへ解凍できたことになるので終了である。一方、noならば９００へ戻り処理を繰返す。
【００５９】
以上、図４〜図９を用いて第１の実施例を説明した。すなわち、第１不揮発性メモリ３０２の旧プログラムと差分データを入力とする差分復元手段４０２により差分更新して新プログラムを復元し、診断手段４０３により診断結果が異常であった場合、第２不揮発性メモリ３０３に配置した緊急時用プログラムの圧縮データを解凍手段により解凍して、第１不揮発性メモリ３０２へ書込むことで車載制御装置２００を動作可能とすることができた。
【００６０】
（第２の実施例）
次に第２の実施例として、ソフトウェアバージョン管理の簡素化を実現する実施例を、図１０を用いて説明する。
【００６１】
図１０の更新ソフト１０００は、通信ソフト１１００と解凍ソフト４０４と差分復元ソフト４０２と診断ソフト４０３で構成されている。
【００６２】
図１１は、通信ソフト１１００のフローチャートである。
【００６３】
１１１０は、車載書込み装置１００から通信コマンドＡを受信する。
１１２０は、通信コマンドＡが$10であるか判定し、yesならば１１２５を実行し、noならば１１３０を実行する。
１１２５は、受信エリア２０２aと復元エリア２０２bを初期化し、解凍ソフト４０４を実行して、第２不揮発性メモリ３０３の緊急時用プログラムの圧縮データを解凍して復元エリア２０２bへ緊急時用プログラムを格納する。次に第１不揮発性メモリ３０２を消去した後に、復元エリア２０２bの緊急時用プログラムを第１不揮発性メモリ３０２へ書込む。
以上で、第１不揮発性メモリ３０２は、緊急時用プログラムへ更新されたことになる。
【００６４】
１１３０は、通信コマンドＡが$20であるか判定し、yesならば１１３５を実行し、noならば１１４０を実行する。
１１３５は、第１不揮発性メモリ３０２に書込まれた緊急時用プログラムの差分復元対象エリアの先頭アドレスＭＡ，サイズＭＳを記憶する。
１１４０は、通信コマンドＡが$30であるか判定し、yesならば１１４５を実行し、noならば１１５０を実行する。
１１４５は、差分データＤＡＴＡを受信エリア２０２aへ格納する。
１１５０は、通信コマンドＡが$40であるか判定し、yesならば１１５５と１１５６を実行し、noならば１１６０を実行する。
１１５５は、差分復元ソフト４０２を実行して、受信エリア２０２aの差分データと第１不揮発性メモリ３０２の緊急時用プログラム（バイナリーデータ）を用いて差分復元を行い、その結果をＳＲＡＭ２０２の復元エリア２０２bへ格納する。
１１５６は、第１不揮発性メモリ３０２の差分復元対象エリアであるブロックB#n (n=1〜7)を消去することにより緊急時用プログラムを削除し、復元エリア２０２bの復元プログラムを第１不揮発性メモリ３０２の差分復元対象エリアへコピーする。これで差分復元対象エリアの新プログラムが第１不揮発性メモリ３０２の差分復元対象エリアへ格納できたことになる。
１１６０は、通信コマンドＡが$50であるか判定し、yesならば１１６５と１１６６を実行し、noならば処理を終了する。$５０は、図５Ａからわかるように、全てのブロックの差分更新完了した後に発行される通信コマンドである。
１１６５は、診断ソフト４０３を実行して、新プログラムが正しく復元され、かつ正しく書き込めたか診断を行う。もし診断結果が正常であれば、差分更新によるソフトウェア更新は終了となる。一方、診断結果が異常であれば、再び解凍手段４０４を実行して、解凍した緊急時用プログラムをＳＲＡＭ２０２の復元エリア２０２bへ格納する。
１１６６は、第１不揮発性メモリ３０２を消去して、復元エリア２０２bの緊急時用プログラムを再び第１不揮発性メモリ３０２へコピーする。これで緊急時用プログラムが第１不揮発性メモリ３０２へ格納できた。解凍ソフト４０４、差分復元ソフト４０２、診断ソフト４０３の動作説明は、既に図７〜図９を用いて説明済みなので省略する。
【００６５】
このように、第２の課題であるソフトウェアバージョンによる差分更新時の複雑さは、本実施例で示したように、第２不揮発性メモリ３０３に特定のプログラムの圧縮データを配置しておき、差分更新前に解凍して第１不揮発性メモリへ書き込んでおけば、前記特定のプログラムと新プログラムの差分データだけを用いて簡素化できた。
【００６６】
次に、第２の実施例を図１２で説明する。
【００６７】
基本的な考え方は、第１不揮発性メモリのブロック毎に圧縮データを解凍して、ブロックの復元した緊急時用プログラムをＳＲＡＭの第２復元エリアへ書込み、当該ブロックの新プログラムと緊急時用プログラムの差分データと第２復元エリアのデータから、差分復元手段を用いて復元し、復元した新プログラムを復元エリア202bへ書込み、その後に復元エリア202bのデータを第１不揮発性ブロックへ書込む。このブロック毎の処理を繰返すことで実現する。
【００６８】
図１２は、更新ソフト１２００のフローチャートである。
１２１０は、前述したようにブロック毎に処理を繰返すため、準備として、第１不揮発性メモリの第Ｎブロックを設定している。すなわち先頭アドレスＭＡへ第Ｎブロックの先頭アドレスＭＡ（Ｎ）を設定し、サイズＭＳへ第ＮブロックのサイズＭＳ（Ｎ）を設定している。
【００６９】
１２２０は、解凍手段により、第２不揮発性メモリ内の圧縮データから第Ｎブロック用の緊急時用プログラムだけを解凍し、解凍復元した緊急時用プログラムをＳＲＡＭの第２復元エリアへ書込む。
１２３０は、第Ｎブロックの新プログラムと緊急時用プログラムの差分データと、第２復元エリアのデータから、差分復元手段により、第Ｎブロックの新プログラムを復元し、復元エリア202bへ書込む。
１２４０は、復元エリア202bの新プログラムを第１不揮発性メモリの第Ｎブロックへ書込む。
１２５０は、全てのブロックを吹く下したか判定し、yesなら終了であり、もしnoならば１２６０を実行する。
１２６０は、次の第（Ｎ＋１）ブロックを復元するため、ＭＡへ第（Ｎ＋１）ブロックの先頭アドレスを設定し、ＭＳへ第（Ｎ＋１）ブロックのサイズを設定し、１２２０を実行する。
【００７０】
以上で、ブロック毎に解凍復元と差分復元を行い、その結果を第１不揮発性メモリのブロック毎に書込むことができた。この結果、第１不揮発性メモリを１回で新プログラムへ更新することができた。
【符号の説明】
【００７１】
１００…車載書込み装置（ゲートウェイ）１０１…マイコン（演算装置）１０２…ＳＲＡＭ（揮発性メモリ）１０３…ＦＬＡＳＨメモリ（不揮発性メモリ）１０４…各種のＩＣ１０５…通信装置（ＣＡＮプロトコル）１０６…通信装置（車両の外部のネットワークのプロトコル）２００…車載制御装置（ＥＣＵ）２０１…マイコン（演算装置）２０２…ＳＲＡＭ（揮発性メモリ）２０３…ＦＬＡＳＨメモリ（不揮発性メモリ）２０４…各種のＩＣ２０５…通信装置（ＣＡＮプロトコル）２０２a…受信エリア２０２b…復元エリア３０１…ＢＯＯＴに格納されている第１の課題を実現する更新ソフト３０２…第１不揮発性メモリ（旧プログラムなど更新対象プログラム格納エリア）３０３…第２不揮発性メモリ（緊急時用プログラムの圧縮データ格納エリア）４０１…通信手段を実現する通信ソフト４０２…差分復元手段を実現する差分復元ソフト４０３…診断手段を実現する診断ソフト４０４…解凍手段を実現する解凍ソフト５００…差分データ送信開始通信コマンド５１０…差分復元対象エリアを指定する通信コマンド５２０…差分データ送信用通信コマンド５３０…差分データ送信終了の通信コマンド５４０…診断開始を指示する通信コマンド１０００…ＢＯＯＴに格納されている第２の課題を実現する更新ソフト１１００…ＢＯＯＴに格納されている第２の課題を実現する通信ソフト１２００…ＢＯＯＴに格納されている第２の課題を実現する改善手段の更新ソフト
【図１】
2018173911.tif 000003
【図２】
2018173911.tif 000004
【図３】
2018173911.tif 000005
【図４】
2018173911.tif 000006
【図５Ａ】
2018173911.tif 000007
【図５Ｂ】
2018173911.tif 000008
【図６】
2018173911.tif 000009
【図７】
2018173911.tif 000010
【図８】
2018173911.tif 000011
【図９】
2018173911.tif 000012
【図１０】
2018173911.tif 000013
【図１１】
2018173911.tif 000014
【図１２】
2018173911.tif 000015
【手続補正書】
【提出日】令和1年9月12日(2019.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、圧縮された前記特定プログラムを解凍復元して、前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、
前記差分データと前記メモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、を備えることを特徴とする車載制御装置。
【請求項２】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１記載の車載制御装置。
【請求項３】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の前記実行用プログラムを前記特定プログラムへ書き換え、
前記差分復元部は、前記差分データと前記第１のメモリ領域の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ領域の前記特定プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項２記載の車載制御装置。
【請求項４】
車両のシフトギヤがパーキング位置にある場合、前記解凍復元部と前記差分復元部を用いて、前記実行用プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項２記載の車載制御装置。
【請求項５】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部と、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、該差分データと前記メモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、
圧縮された前記特定プログラムを解凍復元して、新たな前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、を備えることを特徴とする車載制御装置。
【請求項６】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項５記載の車載制御装置。
【請求項７】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記差分復元部は、前記差分データと前記第１のメモリ領域の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ領域の前記実行用プログラムを新たな前記実行用プログラムへ書き換え、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項５記載の車載制御装置。
【請求項８】
車両のシフトギヤがパーキング位置にある場合、前記差分復元部を用いて前記実行用プログラムを新たな前記実行用プログラムへ書き換え、前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項６記載の車載制御装置。
【請求項９】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部を備えた車載制御装置のプログラム更新ソフトウェアにおいて、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、圧縮された前記特定プログラムを解凍復元して、前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、
前記差分データと前記メモリ部の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記特定プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、を備えることを特徴とする車載制御装置のプログラム更新ソフトウェア。
【請求項１０】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項９記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１１】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の前記実行用プログラムを前記特定プログラムへ書き換え、
前記差分復元部は、前記差分データと前記第１のメモリ領域の前記特定プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ領域の前記特定プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項１０記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１２】
車両のシフトギヤがパーキング位置にある場合、前記解凍復元部と前記差分復元部を用いて、前記実行用プログラムを新たな前記実行用プログラムへ書き換えることを特徴とする、請求項１０記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１３】
書き換え可能な実行用プログラムと、圧縮された特定プログラムと、を有するメモリ部を備えた車載制御装置のプログラム更新ソフトウェアにおいて、
新たな前記実行用プログラムと前記特定プログラムとの差分データが入力された場合、該差分データと前記メモリ部の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記メモリ部の前記実行用プログラムを新たな前記実行用プログラムへ書き換える差分復元部と、
圧縮された前記特定プログラムを解凍復元して、新たな前記実行用プログラムを前記特定プログラムへ書き換える解凍復元部と、を備えることを特徴とする車載制御装置のプログラム更新ソフトウェア。
【請求項１４】
新たな前記実行用プログラムを診断する診断部を備え、
前記解凍復元部は、前記診断の結果に応じて、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１３記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１５】
前記メモリ部は、前記実行用プログラムを記憶する第１のメモリ領域と、圧縮された前記特定プログラムを記憶する第２のメモリ領域と、を含み、
前記差分復元部は、前記差分データと前記第１のメモリ領域の前記実行用プログラムとから新たな前記実行用プログラムを差分復元して、前記第１のメモリ領域の前記実行用プログラムを前記新たな実行用プログラムへ書き換え、
前記解凍復元部は、前記第２のメモリ領域の圧縮された前記特定プログラムを解凍復元して、前記第１のメモリ領域の新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１３記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１６】
車両のシフトギヤがパーキング位置にある場合、前記差分復元部を用いて前記実行用プログラムを新たな前記実行用プログラムへ書き換え、前記診断の結果に応じて、前記解凍復元部は、新たな前記実行用プログラムを前記特定プログラムへ書き換えることを特徴とする、請求項１４記載の車載制御装置のプログラム更新ソフトウェア。
【請求項１７】
前記解凍復元部と前記差分復元部は、プログラムの区分毎に繰り返し行うことを特徴とする請求項１から８のいずれか一項に記載の車載制御装置。
【請求項１８】
前記解凍復元部と差分復元部は、プログラムの区分毎に繰り返し行うことを特徴とする請求項９から１６のいずれか一項に記載の車載制御装置のプログラム更新ソフトウェア。
【国際調査報告】
2018173911.tif 000016
2018173911.tif 000017
2018173911.tif 000018