(57)【要約】【課題】電子装置において、動作プログラムの不正書き換えの可能性を低減しつつ適正な書き換えを適度に許容すること。【解決手段】通信装置１１０と、動作プログラムが保存される書き換え可能な記憶装置１１４と、前記記憶装置に保存された前記動作プログラム１４０を、前記通信装置を介して受信される新しい動作プログラムである更新プログラムにより更新するよう構成された処理装置１１２と、を備え、前記処理装置は、受信された前記更新プログラムにより前記動作プログラムの更新を行う動作プログラム更新部１５２と、自装置が車載状態であるか否かを判断する車載状態判断部１５６と、を備え、前記動作プログラム更新部は、自装置に対し所定の設定が行われた後は、自装置が車載状態でないときは、前記動作プログラムの更新を行わず、自装置が車載状態であるときは、１回に限り前記動作プログラムの更新動作を行うよう構成されている。【選択図】図１
2019074852.tif 000002
【特許請求の範囲】
【請求項１】
通信装置と、
動作プログラムが保存される書き換え可能な記憶装置と、
前記記憶装置に保存された前記動作プログラムを、前記通信装置を介して受信される新しい動作プログラムである更新プログラムにより更新するよう構成された処理装置と、
を備える電子装置であって、
前記処理装置は、
受信された前記更新プログラムにより前記動作プログラムの更新を行う動作プログラム更新部と、
自装置が車載状態であるか否かを判断する車載状態判断部と、
を備え、
前記動作プログラム更新部は、
自装置に対し所定の設定が行われた後は、
自装置が車載状態でないときは、前記動作プログラムの更新を行わず、
自装置が車載状態であるときは、１回に限り前記動作プログラムの更新動作を行う、
よう構成されている、電子装置。
【請求項２】
通信装置と、
動作プログラムが保存される書き換え可能な記憶装置と、
前記記憶装置に保存された前記動作プログラムを、前記通信装置を介して受信される新しい動作プログラムである更新プログラムにより更新するよう構成された処理装置と、
を備える電子装置であって、
前記処理装置は、
受信された前記更新プログラムにより前記動作プログラムの更新を行う動作プログラム更新部と、
自装置が車載状態であるか否かを判断する車載状態判断部と、
自装置の現在位置を取得する現在位置取得部と、
を備え、
前記動作プログラム更新部は、
自装置に対し所定の設定が行われた後は、
自装置が車載状態でないときは、前記動作プログラムの更新を行わず、
自装置が車載状態であって、自装置の現在位置が所定の地理的位置のいずれかであるときに限り、当該所定の地理的位置に関連付けられた所定の回数を限度として前記動作プログラムの更新動作を行う、
よう構成されている、電子装置。
【請求項３】
前記更新プログラムの送信元が所定の認証を受けた外部装置であるか否かを判断する装置認証判断部を更に備え、
前記動作プログラム更新部は、前記更新プログラムの送信元が所定の認証を受けた装置であるときは、更新回数の制限を設けることなく、前記動作プログラムの更新を行うよう構成されている、
請求項１又は２に記載の電子装置。
【請求項４】
前記車載状態判断部は、自装置が他の車載装置と接続されていることが前記通信装置を介して確認できないとき、及び又は、自装置にセンサが接続されている場合に当該センサの全部又は一部からの入力が正常値でないときは、自装置が車載状態でないものと判断する、
請求項１又は２に記載の電子装置。
【請求項５】
自装置が搭載されている車両の現在の車速を所定の時間間隔で取得する車速取得部を備え、
前記現在位置取得部は、前記現在の車速が所定の値以下であるときは、前記現在の車速が所定の値を超えているときに比べて短い周期で現在位置を取得して更新するよう構成されている、
請求項２に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作プログラムが実行される電子装置であって、外部装置から配信される新しいプログラムにより動作プログラムを書き換えることのできる電子装置に関する。
【背景技術】
【０００２】
従来、動作プログラムの書き換えが可能な車載電子装置として、不適切な状況やタイミングで、無線通信により配信される新しい動作プログラムにより現在の動作プログラムの書き換えが行われるのを防止することを目的とするものが知られている（特許文献１）。この装置では、自車両の現在位置がディーラ敷地内等の所定の書換え許可領域内であり、現在の日時が所定の許可時間帯に含まれていることを条件として、新しい動作プログラムへの書き換えを実行する。
【０００３】
しかしながら上記従来の車載電子装置では、書換え許可領域や許可時間等の情報が一旦解読されてしまうと、動作プログラムの書き換えが際限なく行われ、悪意のある者等の不正改造により、製造者の保証範囲を超える危険な動作が行われることとなり得る。一方で、車両が工場出荷された後は車載電子装置の動作プログラムを一切書き換えられないこととしたのでは、些細な不具合の解消や些細なアップグレードを行うだけのために電子装置の交換等を行うことが必要となる。その結果、電子装置又は車両としての利便性ないし商品性が低下し得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２２４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記背景より、動作プログラムの不正書き換えの可能性を更に低減しつつ、動作プログラムの適正な書き換えを適度に許容することのできる電子装置の実現が望まれている。
【課題を解決するための手段】
【０００６】
本発明の一の態様は、通信装置と、動作プログラムが保存される書き換え可能な記憶装置と、前記記憶装置に保存された前記動作プログラムを、前記通信装置を介して受信される新しい動作プログラムである更新プログラムにより更新するよう構成された処理装置と、を備える電子装置である。前記処理装置は、受信された前記更新プログラムにより前記動作プログラムの更新を行う動作プログラム更新部と、自装置が車載状態であるか否かを判断する車載状態判断部と、を備え、前記動作プログラム更新部は、自装置に対し所定の設定が行われた後は、自装置が車載状態でないときは、前記動作プログラムの更新を行わず、自装置が車載状態であるときは、１回に限り前記動作プログラムの更新動作を行う、よう構成されている。
本発明の他の態様は、通信装置と、動作プログラムが保存される書き換え可能な記憶装置と、前記記憶装置に保存された前記動作プログラムを、前記通信装置を介して受信される新しい動作プログラムである更新プログラムにより更新するよう構成された処理装置と、を備える電子装置であって、前記処理装置は、受信された前記更新プログラムにより前記動作プログラムの更新を行う動作プログラム更新部と、自装置が車載状態であるか否かを判断する車載状態判断部と、自装置の現在位置を取得する現在位置取得部と、を備え、前記動作プログラム更新部は、自装置に対し所定の設定が行われた後は、自装置が車載状態でないときは、前記動作プログラムの更新を行わず、自装置が車載状態であって、自装置の現在位置が所定の地理的位置のいずれかであるときに限り、当該所定の地理的位置に関連付けられた所定の回数を限度として前記動作プログラムの更新動作を行う、よう構成されている。
本発明の他の態様によると、前記更新プログラムの送信元が所定の認証を受けた外部装置であるか否かを判断する装置認証判断部を更に備え、前記動作プログラム更新部は、前記更新プログラムの送信元が所定の認証を受けた装置であるときは、更新回数の制限を設けることなく、前記動作プログラムの更新を行うよう構成されている。
本発明の他の態様によると、前記車載状態判断部は、自装置が他の車載装置と接続されていることが前記通信装置を介して確認できないとき、及び又は、自装置にセンサが接続されている場合に当該センサの全部又は一部からの入力が正常値でないときは、自装置が車載状態でないものと判断する。
本発明の他の態様によると、自装置が搭載されている車両の現在の車速を所定の時間間隔で取得する車速取得部を備え、前記現在位置取得部は、前記現在の車速が所定の値以下であるときは、前記現在の車速が所定の値を超えているときに比べて短い周期で現在位置を取得して更新するよう構成されている。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施形態に係る電子装置の構成を示す図である。
【図２】第１の実施形態に係る電子装置が実行する動作プログラム更新処理１の手順を示すフロー図である。
【図３】本発明の第２の実施形態に係る電子装置の構成を示す図である。
【図４】第２の実施形態に係る電子装置における、書込み管理テーブルの構成の一例を示す図である。
【図５】第２の実施形態に係る電子装置が実行する動作プログラム更新処理２の手順を示すフロー図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明の実施形態について説明する。
[第１実施形態]
まず、本発明の第１の実施形態に係る電子装置について説明する。図１は、本発明の第１の実施形態に係る電子装置の構成を示す図である。本電子装置１００は、例えば内燃機関（不図示）の動作を制御する電子制御装置（ＥＣＵ、Electronic Control Unit）であり、車両１０２に搭載されている。電子装置１００は、通信装置１１０と、処理装置１１２と、記憶装置１１４と、を有する。
【０００９】
通信装置１１０は、車内ＬＡＮ（Local Area Network）を構成する車載ネットワークバス（車載ＮＷバス）１２０を介して、他の電子制御装置（ＥＣＵ）１２２、１２４、１２６と通信する。また、通信装置１１０は、車載ＮＷバス１２０を介して、当該車載ＮＷバス１２０に設けられたコネクタ１２８に接続される外部装置１３０とも通信することができる。
【００１０】
ここで、車載ＮＷバス１２０は、例えば、ＣＡＮ（Controller Area Network）通信規格に準拠した通信をサポートするＣＡＮバスである。また、通信装置１１０は、例えばＣＡＮ通信を行う送受信機（不図示）で構成される。
【００１１】
ＥＣＵ１２２は、例えば、ＧＰＳ受信機１３２を備え、ＧＰＳ電波を受信して車両１０２の現在位置に関する情報を取得する。また、ＥＣＵ１２４は、例えば、車両１０２に設けられた車速センサ１３４に接続されて、車両１０２の現在の車速を検出する。また、ＥＣＵ１２６は、無線装置１３６を備えて、車両１０２の外部に設けられた例えば外部サーバ１８０等と無線通信を行う。
【００１２】
ＥＣＵ１２６は、例えば無線装置１３６を介して外部サーバ１８０等から新しい動作プログラムを受信すると、例えば同時に受信される当該新しい動作プログラムの送信先であるＥＣＵの識別ＩＤにより、当該送信先であるＥＣＵを特定する。そして、ＥＣＵ１２６は、当該特定したＥＣＵへ受信した新しい動作プログラムを送信する。
【００１３】
なお、ＥＣＵ１２２、１２４、１２６は一例であって、車載ＮＷバス１２０には、これら以外の種々のＥＣＵが車載装置として接続されるものとすることができる。
【００１４】
外部装置１３０は、車載ＮＷバス１２０を介してＣＡＮ通信を行う任意の装置とすることができ、電子装置１００に対し新しい動作プログラムを送信する機能を備え得る。
【００１５】
記憶装置１１４は、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）などの不揮発性メモリで構成される。記憶装置１１４は、後述する処理装置１１２において実行される動作プログラム１４０を記憶する。また、記憶装置１１４は、電子装置１００を搭載した車両１０２が、製造工場から出荷されたこと（又は運用が開始されたこと）を示す出荷フラグ１４２と、当該製造工場からの出荷後に動作プログラムが書き換えられた回数（更新回数）を示す書換えカウント１４４を記憶する。
【００１６】
出荷フラグ１４２は、例えば工場における車両１０２の出荷の際に、工場から出荷されたこと（すなわち、出荷済みであること）又は運用が開始されたことを示す値にセットされる。また、書換えカウント１４４は、例えば工場における車両１０２の出荷の際にゼロにリセットされる。ここで、出荷フラグ１４２に車両１０２が工場から出荷されたこと又は運用が開始されたことを示す値をセットすることは、電子装置１００に所定の設定を行うことに対応する。
【００１７】
なお、工場からの出荷後に、例えばメインテナンスのために車両１０２が整備工場等に戻ってきたときには、出荷フラグ１４２を出荷前であることを示す値にリセットすると共に、書換えカウント１４４をゼロにリセットするものとしてもよい。この場合には、その後、当該工場から車両１０２を出荷するときに、再び、出荷フラグ１４２を、上記出荷されたこと又は運用が開始されたことを示す値にセットするものとすることができる。
【００１８】
なお、出荷フラグ１４２及び書換えカウント１４４のセット及びリセットは、例えば、所定の認証を受けた外部装置を外部装置１３０としてコネクタ１２８に接続し、当該外部装置からのコマンドにより、処理装置１１２を介して行うものとすることができる。このような、所定の認証を受けた外部装置には、例えば、米国カリフォルニア州政府の一機関であるＡＲＢ（Air Resources Board）が規定する基準に準拠したＧＳＴ（General Scan Tool）が含まれる。
【００１９】
なお、以下において「所定の認証を受けた装置」というときは、上記ＧＳＴを含む、所定の機関の認証を受けた外部装置及び又は所定の機関が規定する基準に準拠していることが認証された外部装置をいうものとする。また、コネクタ１２８を介して車載ＮＷバス１２０に接続される外部装置１３０に限らず、ＥＣＵ１２６を介して車載ＮＷバス１２０と通信可能に接続される外部サーバ１８０も、「所定の認証を受けた装置」となり得る。
【００２０】
処理装置１１２は、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサ、管理プログラムが書き込まれたＲＯＭ（Read Only Memory）、データの一時記憶のためのＲＡＭ（Random Access Memory）等を有するコンピュータである。そして、処理装置１１２は、機能要素（又は機能ユニット）として、車両制御部１５０と、動作プログラム更新部１５２と、装置認証判断部１５４と、車載状態判断部１５６と、を有する。
【００２１】
処理装置１１２が備えるこれらの機能要素は、例えば、コンピュータである処理装置１１２が管理プログラムを実行することにより実現される。なお、管理プログラムは、上述したＲＯＭのほか、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。
【００２２】
上記に代えて、処理装置１１２が備える上記機能要素の全部又は一部を、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
【００２３】
また、処理装置１１２には、例えば処理装置１１２を構成するＣＰＵの入出力ポート（不図示）を介して、センサ１７０、１７２、１７４が接続されている。センサ１７０、１７２、１７４は、それぞれ、例えば、処理装置１１２が内燃機関の動作を制御するのに用いる吸気温度センサ、冷却水温度センサ、気圧センサである。また、処理装置１１２には、内燃機関のスロットルを駆動するアクチュエータや点火プラグも接続され得る（いずれも不図示）。なお、上記は一例であって、処理装置１１２には、更に多くの種々のセンサ、アクチュエータ等のデバイスが接続されるものとすることができる。
【００２４】
車両制御部１５０は、記憶装置１１４が保存する動作プログラム１４０を実行することにより、センサ１７０等を用いて所定の車両制御（例えば内燃機関の動作制御）を行う。
【００２５】
装置認証判断部１５４は、通信装置１１０を介して新しい動作プログラムが受信されたときに、当該新しい動作プログラムの送信元（例えば、外部サーバ１８０や外部装置１３０。以下同じ。）が所定の認証を受けた装置であるか否かを判断する。例えば、装置認証判断部１５４は、新しい動作プログラムを受信する際に、当該新しい動作プログラムに付して送信された送信元装置の認証コードを、予め記憶装置１１４記憶した認証コードと照合することにより、上記判断を行うことができる。装置認証判断部１５４は、上記判断の結果である認証判断結果を、後述する動作プログラム更新部１５２へ送信する。
【００２６】
車載状態判断部１５６は、自装置である電子装置１００が車載状態であるか否か、すなあち、車両１０２の制御を行い得る状態で当該車両１０２に搭載されているか否かを判断する。例えば、車載状態判断部１５６は、通信装置１１０を介して他の車載装置、例えばＥＣＵ１２２〜１２６の全部又は所定の一部と通信できるときは、自装置である電子装置１００は車両１０２に正常に搭載された状態（車載状態）であると判断する。すなわち、自装置である電子装置１００が他の車載装置と接続されていることが、通信装置１１０を介して確認され得るときは、車載状態判断部１５６は、電子装置１００が車載状態であると判断する。
【００２７】
また、車載状態判断部１５６は、電子装置１００が車載状態でないときは、その電子装置１００は車両１０２から取り外された状態（単体状態）であると判断する。これに加えて又はこれに代えて、車載状態判断部１５６は、センサ１７０〜１７４の全部又は所定の一部からの入力が、車両１０２の通常動作における所定範囲の正常値であるときは、電子装置１００が車載状態であると判断してもよい。
【００２８】
動作プログラム更新部１５２は、通信装置１１０を介して新しい動作プログラムを受信する。ここで、新しい動作プログラムは、例えば、送信されるデータが新しい動作プログラムを含むものであることを示すデータ識別コード及び当該データの送信元である装置の装置認証コードに続いて送信されてくるものとする。なお、車載ＮＷバス１２０を介した通信がＣＡＮ通信規格に従って行われる場合には、新しい動作プログラムは、複数のデータパケットに分割されて送信される。ただし、他の通信規格を用いる場合には、新しい動作プログラムは、一つの連続するデータとして送信され得る。新しい動作プログラムが複数のデータパケットに分割されて送信される場合には、上記データ識別コード及び認証コードは、少なくとも最初に送信されるデータパケットに含まれているものとすることができる。
【００２９】
動作プログラム更新部１５２は、通信装置１１０を介してデータを受信すると、当該受信したデータに、新しい動作プログラムを含むものであることを示すデータ識別コードが含まれているか否かを判断する。そして、当該データ識別コードが含まれているときは、動作プログラム更新部１５２は、装置認証判断部１５４により、新しい動作プログラムの送信元が所定の認証を受けた装置であるか否かを判断する。この判断は、受信したデータに含まれる装置認証コードに基づいて行うことができる。そして、動作プログラム更新部１５２は、受信した新しい動作プログラムの送信元が所定の認証を受けた装置であるときは、受信した新しい動作プログラムにより、記憶装置１１４に現在記憶されている動作プログラム１４０を書き換える。
【００３０】
一方、受信した新しい動作プログラムの送信元が所定の認証を受けた装置でないときは、動作プログラム更新部１５２は、車載状態判断部１５６により自装置である電子装置１００が車載状態か単体状態かを判断する。そして、車載状態であるときは、動作プログラム更新部１５２は、書換えカウント１４４を参照し、当該書換えカウント１４４がゼロであるときは、受信した新しい動作プログラムにより、記憶装置１１４に現在記憶されている動作プログラム１４０を書き換える。
【００３１】
一方、受信した新しい動作プログラムの送信元が所定の認証を受けた装置でない場合において、電子装置１００が車載状態であって書換えカウント１４４がゼロでないとき又は電子装置１００が単体状態であるときは、動作プログラム更新部１５２は、記憶装置１１４に現在記憶されている動作プログラム１４０を維持する。すなわち、受信した新しい動作プログラムによる書き換えは行わない。
【００３２】
ここで、通信装置１１０を介して受信される新しい動作プログラムを、更新プログラムともいうものとする。すなわち、通信装置１１０を介して受信される新しい動作プログラムは、更新プログラムに対応する。
【００３３】
上述の構成を有する電子装置１００は、当該電子装置１００が搭載された車両１０２の工場出荷の後では、その後に車両１０２から切り離されて単体状態になると、通信装置１１０を介して受信される新しい動作プログラム（更新プログラム）による動作プログラム１４０の書き換えを行わない。ここで、単体状態とは、上述の通り、自装置である電子装置１００が車両１０２内の他のＥＣＵ１２４等の全部又は所定の一部と通信可能に接続されておらず、及び又は車両１０２に設けられたセンサ１７０等の全部又は所定の一部から所定の正常値範囲の入力が得られない状態をいう。
【００３４】
一般に、悪意のある者による動作プログラムの書き換えは、電子装置と他の車載装置との接続を断った状態（すなわち、単体状態）で行われることが多い。これに対し、電子装置１００では、上記のとおり、単体状態にあるときは動作プログラム１４０の書き換え動作（即ち、更新動作）を実行しない。このため、電子装置１０では、動作プログラム１４０の不正書き換えが非常に困難となり、当該不正書き換えの可能性が効果的に低減される。
【００３５】
また、電子装置１００は、車両１０２が工場出荷された後は、車載状態が維持されていれば、１回に限り、通信装置１１０を介して受信される新しい動作プログラム（更新プログラム）による動作プログラム１４０の書き換え動作（更新動作）を行う。ここで、車載状態とは、上述のとおり、自装置である電子装置１００が車両１０２内の他のＥＣＵ１２４等の全部又は所定の一部と通信可能に接続されており、及び又は車両１０２に設けられたセンサ１７０等の全部又は所定の一部から所定の正常値範囲の入力が得られる状態をいう。
【００３６】
これにより、例えば電子装置１００の不具合やアップグレードを行うための動作プログラム１４０の適正な書き換えを行う機会が確保される。その結果、電子装置１００では、従来技術に比べて動作プログラム１４０の不正書き換えの可能性を更に低減しつつ、動作プログラム１４０の適正な書き換えを適度に許容することができる。
【００３７】
さらに、電子装置１００は、新しい動作プログラムの送信元が所定の認証を受けた装置であるか否かを判断し、所定の認証を受けた装置であるときは、単体状態であるか車載状態であるかに関わらず、且つ書き換え回数（更新回数）の制限なく、動作プログラム１４０の書き換え動作（更新動作）を行う。これにより、電子装置１００では、所定の認証を受けた正規の装置を用いる限りにおいて動作プログラム１４０の書き換えを自由に行うことができる。従って、例えば車両１０２の整備工場等において動作プログラム１４０の書き換えによる本格的なアップグレードを行うことができ、電子装置１００ないし当該電子装置１００を搭載した車両１０２の商品性が高く維持される。
【００３８】
ここで、悪意のある者は、記憶装置１１４が記憶する書換えカウント１４４をゼロに不正に書き換えることで、動作プログラム１４０の書き換えを何度でも行い得る。しかしながら、記憶装置１１４の記憶領域内（例えば数ギガバイトの領域内）における書換えカウント１４４の保存場所を特定することは極めて困難であるため、電子装置１００に対し上記の方法で不正書き換えを行うことは実質上不可能である。
【００３９】
次に、処理装置１１２における動作プログラムの更新処理（動作プログラム更新処理１）の手順について、図２に示すフロー図に従って説明する。図２に示す動作プログラム更新処理１は、電子装置１００の電源がオンされたときに開始し、オフされたときに終了する。なお、この動作プログラム更新処理１は、後述するステップＳ１１２における動作プログラム１４０の書き換え動作を除き、処理装置１１２の車両制御部１５０による動作プログラム１４０の実行と並行して実行され得る。
【００４０】
処理を開始すると、まず、動作プログラム更新部１５２は、通信装置１１０を介して新しい動作プログラム（すなわち、更新プログラム）を含むデータを受信したか否かを判断する（Ｓ１００）。そして、受信していないときは（Ｓ１００、ＮＯ）、ステップＳ１００に戻って、新しい動作プログラムを含むデータが受信されるのを待機する。なお、この判断は、上述したように、当該受信したデータに含まれるデータ識別コードに基づいて行うことができる。
【００４１】
一方、新しい動作プログラムを含むデータを受信したときは（Ｓ１００、ＹＥＳ）、動作プログラム更新部１５２は、記憶装置１１４が記憶する出荷フラグ１４２が、出荷済みであることを示す値（又は運用が開始されたことを示す値。以下同じ。）にセットされているか否かを判断する（Ｓ１０２）。そして、出荷済みであることを示す値にセットされているときは（Ｓ１０２、ＹＥＳ）、動作プログラム更新部１５２は、装置認証判断部１５４により、当該受信したデータの送信元装置が所定の認証を受けた装置であるか否かを判断する（Ｓ１０４）。この判断は、上述したように、当該受信したデータに含まれる装置認証コードに基づいて行うことができる。
【００４２】
そして、送信元装置が所定の認証を受けた装置でないときは（Ｓ１０４、ＮＯ）、動作プログラム更新部１５２は、車載状態判断部１５６により、自装置（すなわち、電子装置１００）が車載状態であるか否かを判断する（Ｓ１０６）。この判断は、上述したように、通信装置１１０を介して他の車載装置と通信できるか否か、及び又はセンサ１７０等からの入力が正常値であるか否かに基づいて行うことができる。
【００４３】
そして、自装置が車載状態でないとき（Ｓ１０６、ＮＯ）、すなわち、単体状態であるときは、動作プログラム更新部１５２は、動作プログラム１４０の書き換えを行うことなく、ステップＳ１００に戻って処理を繰り返す。一方、自装置が車載状態であるときは（Ｓ１０６、ＹＥＳ）、動作プログラム更新部１５２は、記憶装置１１４が記憶する書換えカウント１４４がゼロであるか否かを判断する（Ｓ１０８）。そして、書換えカウント１４４がゼロであるときは（Ｓ１０８、ＹＥＳ）、動作プログラム更新部１５２は、書換えカウント１４４を１に設定する（Ｓ１１０）。そして、動作プログラム更新部１５２は、上記受信した新しい動作プログラムにより、記憶装置１１４が現在記憶している動作プログラム１４０を書き換え（Ｓ１１２）、ステップＳ１００に戻って処理を繰り返す。
【００４４】
一方、ステップＳ１０８において書換えカウント１４４がゼロでないときは（Ｓ１０８、ＮＯ）、動作プログラム更新部１５２は、動作プログラム１４０を書き換えることなく、ステップＳ１００に戻って処理を繰り返す。
【００４５】
また、ステップＳ１０４において、送信元装置が所定の認証を受けた装置であるときは（Ｓ１０４、ＹＥＳ）、動作プログラム更新部１５２は、受信した新しい動作プログラムにより動作プログラム１４０を書き換えた後（Ｓ１１２）、ステップＳ１００に戻って処理を繰り返す。
【００４６】
また、ステップＳ１０２において、出荷フラグ１４２が、出荷済みであることを示す値にセットされていないとき（Ｓ１０２、ＮＯ）、すなわち、出荷前であることを示す値にリセットされているときは、動作プログラム更新部１５２は、受信した新しい動作プログラムにより動作プログラム１４０を書き換えた後（Ｓ１１２）、ステップＳ１００に戻って処理を繰り返す。
【００４７】
[第２実施形態]
次に、本発明の第２の実施形態に係る電子装置について説明する。図３は、本発明の第２の実施形態に係る電子装置の構成を示す図である。なお、図３においては、第１の実施形態について示した図１と同じ構成要素については、図１と同じ符号を用いるものとし、上述した第１の実施形態における説明を援用するものとする。
【００４８】
本発明の第２の実施形態に係る電子装置３００は、車両３０２に搭載される。電子装置３００は、第１の実施形態に係る電子装置１００と同様の構成を有するが、処理装置１１２及び記憶装置１１４に代えて処理装置３１２及び記憶装置３１４を備える点が異なる。処理装置３１２は、処理装置１１２と同様の構成を有するが、動作プログラム更新部１５２に代えて動作プログラム更新部３５２を備える点が異なると共に、現在位置取得部３５８と車速取得部３６０とを更に備える点が異なる。また、記憶装置３１４は、記憶装置１１４と同様の構成を有するが、書換えカウント１４４に代えて、書換え管理テーブル３４４が保存される点が異なる。
【００４９】
書換え管理テーブル３４４は、予め定められた複数の所定の地理的位置をそれぞれ示す複数の位置情報と、車両３０２に搭載されている電子装置３００が上記各位置情報の示す地理的位置において動作プログラムの書き換えを行い得る上限回数と、が関連付けて記憶されている。これらの位置情報及び上限回数は、車両３０２が工場（例えば製造工場及び又は整備工場）から出荷される際に、例えば所定の認証を受けた装置により、出荷フラグ１４２に出荷済みであることを示す値（又は運用が開始されたことを示す値。以下同じ。）がセットされることに加えて、書換え管理テーブル３４４に書き込まれる。
【００５０】
また、書換え管理テーブル３４４には、各位置情報に関連付けて、工場から出荷された後に各位置情報の示す地理的位置において既に行われた、電子装置３００における動作プログラム１４０の書き換え実行回数が保存される。当該実行回数は、車両３０２が工場から出荷される際に、例えば所定の認証を受けた装置によりゼロにリセットされ、その後は、後述する動作プログラム更新部３５２が、動作プログラム１４０の書き換えを行うたびに、１ずつインクリメントされる。
【００５１】
図４は、書換え管理テーブル３４４の構成の一例を示す図である。図示の書換え管理テーブル３４４には、最左列に示す位置情報に対し、左から２列目の書換え上限回数、及び最右列の書換え実行回数が関連付けられて記憶されている。上から２行目、３行目に記録されている位置情報は、例えば車両３０２のディーラの整備場であり、これらのディーラでは、それぞれ、書換え上限回数が例えば４回及び６回に設定されている。また、２行目及び３行目の書換え実行回数欄の数字から、これらのディーラ整備場においてはこれまで動作プログラムの書換えが０回及び２回実行されたことが判る。また、上から４行目に記録されている位置情報は、例えば海外出荷のための港湾駐車施設であり、当該施設では、書換え上限回数が２回に設定されており、当該施設内ではこれまでの書換え実行回数がゼロとなっている。
【００５２】
書換え管理テーブル３４４に保存される位置情報は、図４に示す例のほか、例えば、車両３０２のユーザの自宅、ユーザが車両３０２を購入した販売店又は販売サービス拠点など、ユーザが指定した地理的位置を示す情報とすることができる。この場合、ユーザは、例えば、車両３０２の発注の際に、又は車両３０２のメインテナンスを行う際に、ユーザが動作プログラム１４０の書き換えを許容する所望の地理的位置を指定するものとすることができる。これにより、例えば、製造者又はメインテナンスを行うディーラ等は、工場において車両３０２を製造する際に、又は整備工場において車両３０２のメインテナンスを行う際に、ユーザが指定したユーザ所望の地理的位置を、書換え管理テーブル３４４に書き込むことができる。
【００５３】
上記に代えて又は上記に加えて、ユーザは、車載ナビゲーション装置（不図示）に表示される地図上の地点を指定して、当該指定した地点の位置情報を書換え管理テーブル３４４に保存するものとすることができる。この場合、悪意のある第三者により書き換え管理テーブル３４４に位置情報が登録（保存）されないよう、上記地図上での地点指定に際しては、セキュリティコードの入力等により、ユーザ本人の操作であることの確認を行うことが望ましい。なお、ユーザが指定した地理的位置に対する書換え上限回数は、製造者が予め規定するものとすることもできるし、ユーザが指定するものとすることもできる。
【００５４】
処理装置３１２（図３）の動作プログラム更新部３５２、現在位置取得部３５８、及び車速取得部３６０は、上述した車載状態判断部１５６、装置認証判断部１５４と同様に、コンピュータである処理装置３１２が、ＲＯＭ（不図示）等に記憶された管理プログラムを実行することにより実現される機能要素である。なお、動作プログラム更新部３５２、現在位置取得部３５８、車速取得部３６０は、上述した車載状態判断部１５６、装置認証判断部１５４と同様に、それぞれ一つ以上の電子回路部品を含むハードウェアにより構成することもできる。
【００５５】
現在位置取得部３５８は、所定の時間間隔で、ＥＣＵ１２２から車両１０２の現在位置に関する情報を繰り返し取得する。また、車速取得部１５８は、所定の時間間隔で、ＥＣＵ１２４から車両１０２の現在の車速を繰り返し取得する。
【００５６】
動作プログラム更新部３５２は、動作プログラム更新部１５２と同様の動作を行うが、複数の所定の地理的位置においては、それぞれの地理的位置に関して予め定められた上限回数を限度として、動作プログラムの書き換え動作を行い得る点が異なる。すなわち、動作プログラム更新部３５２は、出荷フラグ１４２が出荷済みであることを示す値にセットされており、通信装置１１０を介して受信した新しい動作プログラムの送信元が所定の認証を受けた装置でなく、且つ、自装置（すなわち、電子装置３００）が車載状態であるときは、車両３０２の現在位置が書換え管理テーブル３４４に保存されているいずれかの位置情報が示す地理的位置と合致するときに、当該位置情報に関連付けられた上限回数を限度として、動作プログラムの書き換えを行う。
【００５７】
なお、車両３０２の現在位置が上記いずれかの位置情報が示す地理的位置と合致するときに、現在行おうとする動作プログラムの書き換えが、当該位置情報に関連付けられた上限回数の範囲内の書き換えであるか否かは、書換え管理テーブル３４４において当該位置情報に関連付けて保存されている書き換え実行回数に基づいて判断することができる。
【００５８】
上記において、車両３０２の現在位置は、上述したように、現在位置取得部３５８により所定の時間間隔で取得される。ここで、現在位置取得部３５８は、車速取得部３６０が取得した現在の車両３０２の車速が所定の値（例えば、１０ｋｍ／ｈ）以下であるときは、車速が当該所定の値を超える場合よりも短い時間間隔で、現在位置を取得する。
【００５９】
書換え管理テーブル３４４に保存された位置情報が工場建屋内の地理的位置を示しているような場合に車両３０２が当該工場建屋に入ると、ＧＰＳ受信機１３２がＧＰＳ信号を受信できなくなって、現在位置取得部３５８がＥＣＵ１２２から現在位置情報を突然取得できなくなってしまう場合があり得る。本実施形態では、上記のように、車両３０２が工場建屋に接近して車速を所定の値以下に低下させたときには、より短い周期で現在位置が取得される。その結果、現在位置を取得できなくなる直前に取得される現在位置は、工場建屋により近い位置を示すこととなり、車両３０２が上記位置情報が示す工場建屋内に入ったことを精度よく検知することが可能となる。
【００６０】
上述の構成を有する第２の実施形態に係る電子装置３００は、第１の実施形態に係る電子装置と同様の構成を有するが、車両３０２に搭載されて出荷された後、車載状態である場合には、動作プログラム１４０の書き換えを、１回のみに一律に限定することなく、予め定められた複数の所定の地理的位置においては、当該地理的位置にそれぞれ関連付けられた所定の上限回数まで許容する。
【００６１】
このため、電子装置３００では、電子装置１００と同様に従来技術に比べて不正書き換えの可能性を更に低減しつつも、動作プログラムの適正な書き換えを行う機会を電子装置１００の場合よりも多く確保して、電子装置３００ないし当該電子装置３００を搭載した車両３０２の利便性や商品性を更に向上することができる。
【００６２】
次に、処理装置３１２における動作プログラムの更新処理（動作プログラム更新処理２）の手順について、図５に示すフロー図に従って説明する。図５に示す動作プログラム更新処理２は、電子装置３００の電源がオンされたときに開始し、オフされたときに終了する。なお、この動作プログラム更新処理２は、後述するステップＳ２１４における動作プログラム１４０の書き換え動作を除き、処理装置３１２の車両制御部１５０による動作プログラム１４０の実行と並行して実行され得る。
【００６３】
処理を開始すると、まず、動作プログラム更新部３５２は、通信装置１１０を介して新しい動作プログラム（更新プログラム）を含むデータを受信したか否かを判断する（Ｓ２００）。そして、受信していないときは（Ｓ２００、ＮＯ）、ステップ２００に戻って、新しい動作プログラムを含むデータが受信されるのを待機する。なお、この判断は、第１の実施形態に係る動作プログラム更新処理１のステップＳ１００（図２）と同様に、上記受信したデータに含まれるデータ識別コードに基づいて判断することができる。
【００６４】
一方、新しい動作プログラムを含むデータを受信したときは（Ｓ２００、ＹＥＳ）、動作プログラム更新部３５２は、記憶装置３１４が記憶する出荷フラグ１４２が、出荷済みであることを示す値（又は運用が開始されたことを示す値。以下同じ。）にセットされているか否かを判断する（Ｓ２０２）。そして、出荷済みであることを示す値にセットされているときは（Ｓ２０２、ＹＥＳ）、動作プログラム更新部３５２は、装置認証判断部１５４により、当該受信したデータの送信元装置が所定の認証を受けた装置であるか否かを判断する（Ｓ２０４）。この判断は、動作プログラム更新処理１のステップＳ１０４（図２）と同様に、上記受信したデータに含まれる装置認証コードに基づいて行うことができる。
【００６５】
そして、送信元装置が所定の認証を受けた装置でないときは（Ｓ２０４、ＮＯ）、動作プログラム更新部３５２は、車載状態判断部１５６により、自装置（すなわち、電子装置３００）が車載状態であるか否かを判断する（Ｓ２０６）。この判断は、動作プログラム更新処理１のステップＳ１０６（図２）と同様に、通信装置１１０を介して他の車載装置と通信できるか否か、及び又はセンサ１７０等からの入力が正常値であるか否かに基づいて行うことができる。
【００６６】
そして、自装置が車載状態でないとき（Ｓ２０６、ＮＯ）、すなわち、単体状態であるときは、動作プログラム更新部３５２は、動作プログラム１４０の書き換えを行うことなく、ステップＳ２００に戻って処理を繰り返す。一方、自装置が車載状態であるときは（Ｓ２０６、ＹＥＳ）、動作プログラム更新部３５２は、現在位置取得部３５８が取得した車両３０２の現在位置が、記憶装置３１４の書換え管理テーブル３４４に保存されているいずれかの位置情報が示す所定の地理的位置と一致するか否かを判断する（Ｓ２０８）。
【００６７】
そして、現在位置が所定の地理的位置のいずれとも一致しないときは（Ｓ２０８、ＮＯ）、動作プログラム更新部３５２は、動作プログラム１４０の書き換えを行うことなく、ステップＳ２００に戻って処理を繰り返す。一方、現在位置が所定の地理的位置のいずれかと一致するときは（Ｓ２０８、ＹＥＳ）、動作プログラム更新部３５２は、書換え管理テーブル３４４においてその地理的位置を示す位置情報に関連付けられている書き換え上限回数及び書き換え実行回数を参照し、書換え実行回数が書き換え上限回数未満であるか否かを判断する（Ｓ２１０）。
【００６８】
そして、書換え実行回数が書き換え上限回数未満でないとき（Ｓ２１０、ＮＯ）、動作プログラム更新部３５２は、動作プログラム１４０の書き換えを行うことなく、ステップＳ２００に戻って処理を繰り返す。一方、書換え実行回数が書き換え上限回数未満であるときは（Ｓ２１０、ＹＥＳ）、動作プログラム更新部３５２は、当該書換え実行回数に１を加算してインクリメントする（Ｓ２１２）。そして、動作プログラム更新部３５２は、受信した新しい動作プログラムにより動作プログラム１４０を書き換えた後（Ｓ２１４）、ステップＳ２００に戻って処理を繰り返す。
【００６９】
一方、ステップＳ２０４において、送信元装置が所定の認証を受けた装置であるときは（Ｓ２０４、ＹＥＳ）、動作プログラム更新部３５２は、受信した新しい動作プログラムにより動作プログラム１４０を書き換えた後（Ｓ２１４）、ステップＳ２００に戻って処理を繰り返す。
【００７０】
また、ステップ２０２において、出荷フラグ１４２が出荷済みであることを示す値にセットされていないとき（Ｓ２０２、ＮＯ）、すなわち、出荷前であることを示す値にリセットされているときは、動作プログラム更新部３５２は、受信した新しい動作プログラムにより動作プログラム１４０を書き換えた後（Ｓ２１４）、ステップＳ２００に戻って処理を繰り返す。
【００７１】
なお、上述の動作プログラム更新処理２においては、車両３０２の現在位置が所定の地理的位置でないときには（図５のステップＳ２０８おいてＮＯの場合）、動作プログラム１４０の書き換えを行わないものとしたが、これには限られない。例えば、車両３０２の現在位置が所定の地理的位置でないときには、動作プログラム更新処理１と同様に、１回に限り動作プログラム１４０の書き換えを許容して書き換え動作を実行するものとしてもよい。
【００７２】
以上、説明したように、上述した第１及び第２の実施形態に係る電子装置１００、３００では、電子装置１００、３００が搭載された車両１０２、３０２が出荷された後は、自装置が単体状態となったときは動作プログラム１４０の書き換えを行わず、自装置が車載状態であるときには、１回を限度として、又は自装置が車載状態であって所定の地理的位置にあるときに当該所定の地理的位置に対して予め定められた上限回数を限度として、動作プログラム１４０の書き換えを行う。
【００７３】
これにより、電子装置１００、３００では、従来技術に比べて不正書き換えの可能性を更に低減しつつ、動作プログラムの適正な書き換えを適度に許容して、電子装置１００、３００ないし当該電子装置１００、３００を搭載した車両１０２、３０２の利便性ないし商品性を高く維持することができる。
【００７４】
なお、第１及び第２の実施形態においては、新しい動作プログラムは、送信されるデータが新しい動作プログラムを含むものであることを示すデータ識別コード及び当該データの送信元である装置の装置認証コードに続いて送信されてくるものとしたが、これには限られない。例えば、新しい動作プログラムの送信に先行して、装置認証コードを含むデータが送信され、装置認証判断部１５４による装置認証が行われた後に、電子装置１００から送信元装置に送信許可が送信され、その後に、当該送信元装置から新しい動作プログラムが送信されるものとしてもよい。
【００７５】
また、受信した新しい動作プログラムにより既存の動作プログラム１４０を書き換える際の条件（すなわち、ステップＳ１１２（図２）、Ｓ２１４（図５）を実行する条件）として、車両１０２、３０２の状態についての条件を加えても良い。例えば、受信した新しいプログラムを受信して記憶装置１１４又は３１４おき、動作プログラム更新処理１（図２）のステップＳ１１０又は動作プログラム更新処理２（図５）のステップＳ２１２を実行する前に、車両１０２又は３０２が所定の車両状態であるか否かを判断し、所定の車両状態であるときに、ステップＳ１１０、Ｓ１１２、又はステップＳ２１２、Ｓ２１４を実行するものとしてもよい。そのような所定の車両状態に関する条件は、例えば、イグニションスイッチがオフになっていること、車両ドアが閉じていること、車両が停止していること、サイドブレーキが動作していること、等々とすることができる。
【符号の説明】
【００７６】
１００、３００…電子装置、１０２、３０２…車両、１１０…通信装置、１１２、３１２…処理装置、１１４、３１４…記憶装置、１２０…車載ネットワークバス、１２２、１２４、１２６…電子制御装置、１２８…コネクタ、１３０…外部装置、１３２…ＧＰＳ受信機、１３４…車速センサ、１３６…無線装置、１４０…動作プログラム、１４２…出荷フラグ、１４４…書換えカウント、１５２、３５２…動作プログラム更新部、１５４…装置認証判断部、１５６…車載状態判断部、１７０、１７２、１７４…センサ、１８０…外部サーバ、３４４…書換え管理テーブル、３５８…現在位置取得部、３６０…車速取得部。
【図１】
2019074852.tif 000003
【図２】
2019074852.tif 000004
【図３】
2019074852.tif 000005
【図４】
2019074852.tif 000006
【図５】
2019074852.tif 000007