(57)【要約】  システムは、制御装置の制御プログラムおよび／または制御数値を記憶しており、外部書き換えが可能であり、かつ不揮発性のメモリを有する。システムは、メモリの記憶データを検査し、メモリの正常または異常を判定する検査器を備える。システムは、外部書き換えの履歴を記録する履歴記録器を備える。メモリは、検査器による異常との判定を阻止するように書き換えられる調整値ＳＵＭ−ＡＤＪを記憶する領域を有する。メモリは、検査器による検査の有効または無効を設定するスイッチ値ＩＮＴ−Ｅ／Ｄを記憶する領域を有する。履歴は、調整値とスイッチ値との両方を含んでいる。書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置が提供される。
2020158075.tif 000002
【特許請求の範囲】
【請求項１】
制御装置（５）のプログラムおよび／または数値を記憶しており、外部書き換えが可能であり、かつ不揮発性のメモリ（８、Ｍ１）と、
前記メモリの記憶データを検査し、前記メモリの正常または異常を判定する検査器（６、Ｍ２）と、
前記外部書き換えの履歴を記録する履歴記録器（１０、Ｍ３）とを備え、
前記メモリは、
前記検査器による異常との判定を阻止するように書き換えられる調整値（ＳＵＭ−ＡＤＪ）を記憶する領域（３６）と、
前記検査器による検査の有効または無効を設定するスイッチ値（ＩＮＴ−Ｅ／Ｄ）を記憶する領域（３８）とを有し、
前記履歴は、
前記調整値と前記スイッチ値との両方を含んでいるメモリの書き換え履歴記録装置。
【請求項２】
さらに、前記履歴記録器に記録された履歴を出力する出力器（２０、Ｍ４）を備える請求項１に記載のメモリの書き換え履歴記録装置。
【請求項３】
前記制御装置は、前記メモリ、前記検査器、および前記履歴記録器を備え、
前記出力器は、前記制御装置とデータ通信可能に接続可能な外部機器（２０）によって提供される請求項２に記載のメモリの書き換え履歴記録装置。
【請求項４】
前記履歴記録器は、前記メモリが外部書き換えされると前記調整値および前記スイッチ値の両方を前記履歴として記録するよう構成されている請求項１から請求項３のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項５】
前記履歴記録器は、
前記メモリに記憶されている前記調整値と、最新の前記履歴（ＬＯＧ（ｉ））に含まれる履歴調整値とが等しいか否かを判定する第１判定部（１８４）と、
前記メモリに記憶されている前記スイッチ値と、最新の前記履歴（ＬＯＧ（ｉ））に含まれる履歴スイッチ値とが等しいか否かを判定する第２判定部（１８５）と、
前記第１判定部または前記第２判定部のいずれかにおいて否定的に判定された場合に、前記調整値および前記スイッチ値を前記履歴として記録する記録部（１８６）とを備える請求項４に記載のメモリの書き換え履歴記録装置。
【請求項６】
前記履歴記録器は、前記履歴記録器が起動されるたびに前記第１判定部および前記第２判定部による判定を実行するように構成されている請求項５に記載のメモリの書き換え履歴記録装置。
【請求項７】
前記検査器は、前記メモリの記憶データをチェックサムによって検査するチェックサム検査器である請求項１から請求項６のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項８】
前記検査器は、
前記調整値を含む前記メモリの記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによって前記メモリが正常か異常かを判定するチェックサム判定部（１７４）と、
前記スイッチ値によって前記チェックサム判定部による検査の有効または無効を判定する内部スイッチ判定部（１７１、１７６）とを備える請求項７に記載のメモリの書き換え履歴記録装置。
【請求項９】
前記検査器は、
前記プログラムおよび／または数値が、正常範囲にあるか否かによって前記メモリが正常か異常かを判定する内部エラー判定部（１７５）と、
前記内部エラー判定部によって前記メモリの異常が判定された場合に、前記スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部（１７６）とを備える請求項１から請求項８のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項１０】
前記履歴記録器は、前記メモリとは異なる不揮発性の他のメモリ（１０）を含む請求項１から請求項９のいずれかに記載のメモリの書き換え履歴記録装置。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
この出願は、２０１９年１月３０日に日本に出願された特許出願第２０１９−０１４６７１号を基礎としており、基礎の出願の内容を、全体的に、参照により援用している。
【技術分野】
【０００２】
この明細書における開示は、メモリの書き換え履歴記録装置に関する。
【背景技術】
【０００３】
特許文献１は、書き換え可能なメモリを利用する制御機器を開示する。従来技術として列挙された先行技術文献の記載内容は、この明細書における技術的要素の説明として、参照により援用される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６００９２９０号公報
【発明の概要】
【０００５】
書き換え可能なメモリを利用する制御機器では、メモリの書き換え行為を記録する場合がある。書き換え行為の履歴は、記憶データの書き換えを発見可能とする。ひとつの観点では、不正な書き換えを発見可能とすることが求められている。別の観点では、正当な書き換えであっても、それを発見可能とすること、または再確認可能とすることが求められている。上述の観点において、または言及されていない他の観点において、乗り物用制御装置にはさらなる改良が求められている。
【０００６】
開示されるひとつの目的は、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置を提供することである。
【０００７】
開示される他のひとつの目的は、書き換え行為を小さい規模の構成によって発見可能なメモリの書き換え履歴記録装置を提供することである。
【０００８】
ここに開示されたメモリの書き換え履歴記録装置は、制御装置（５）のプログラムおよび／または数値を記憶しており、外部書き換えが可能であり、かつ不揮発性のメモリ（８、Ｍ１）と、メモリの記憶データを検査し、メモリの正常または異常を判定する検査器（６、Ｍ２）と、外部書き換えの履歴を記録する履歴記録器（１０、Ｍ３）とを備える。さらに、メモリは、検査器による異常との判定を阻止するように書き換えられる調整値（ＳＵＭ−ＡＤＪ）を記憶する領域（３６）と、検査器による検査の有効または無効を設定するスイッチ値（ＩＮＴ−Ｅ／Ｄ）を記憶する領域（３８）とを有し、履歴は、調整値とスイッチ値との両方を含んでいる。
【０００９】
開示されるメモリの書き換え履歴記録装置によると、調整値と、スイッチ値との両方が履歴として記録される。調整値だけでなく、スイッチ値が記録されるから、正当な外部書き換え、および、不正な外部書き換えの両方を履歴として記録することができる。この結果、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置が提供される。
【００１０】
この明細書における開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。請求の範囲およびこの項に記載した括弧内の符号は、後述する実施形態の部分との対応関係を例示的に示すものであって、技術的範囲を限定することを意図するものではない。この明細書に開示される目的、特徴、および効果は、後続の詳細な説明、および添付の図面を参照することによってより明確になる。
【図面の簡単な説明】
【００１１】
【図１】制御装置を含む乗り物システムのブロック図である。
【図２】初期設定処理のフローチャートである。
【図３】書き換え処理のフローチャートである。
【図４】検査処理のフローチャートである。
【図５】履歴処理のフローチャートである。
【図６】出力処理のフローチャートである。
【図７】メモリの書き換え履歴記録装置のブロック図である。
【発明を実施するための形態】
【００１２】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的におよび／または構造的に対応する部分および／または関連付けられる部分には同一の参照符号、または百以上の位が異なる参照符号が付される場合がある。対応する部分および／または関連付けられる部分については、他の実施形態の説明を参照することができる。
【００１３】
第１実施形態
＜機器システム＞
図１は、機器システム１を示す。機器システム１は、制御対象としての動力源（ＰＷＲＳ）２を備える。機器システム１は、制御対象を制御するための制御システムを備える。制御システムは、センサ群（ＳＮＳＲ）３、アクチュエータ群（ＡＣＴＲ）４、および制御装置（ＥＣＵ）５を備える。
【００１４】
この明細書において、機器の語は、広義に解釈されるべきである。機器は、定置の機器、および移動機器を含む。定置の機器は、例えば、空調機器、発電機器、および照明機器などを含む。移動機器は、いわゆる乗り物を含む。乗り物の語は、移動用乗り物だけでなく、定置型の乗り物を含む。移動用乗り物は、例えば、地上走行車両、船舶、および航空機を含む。定置型の乗り物は、例えば、操作技術を習熟するためのシミュレーション機器を含む。定置型の乗り物は、例えば、操作技術、または乗り物の挙動を楽しむためのアミューズメント機器を含む。この実施形態では、機器システム１は、乗り物システムである。乗り物は、鞍乗り型の地上走行車両である。乗り物の典型的な一例は、二輪車である。
【００１５】
動力源２は、内燃機関システム、または電動機システムによって提供される。動力源２が内燃機関システムである場合、動力源２は、内燃機関と、燃料供給システムと、点火システムとを含む場合がある。動力源２が、電動機システムによって提供される場合、動力源２は、電池と、電動機とを含む場合がある。この実施形態では、動力源２は、乗り物における動力を提供する。動力源２は、内燃機関システムである。動力源２は、予め設定された機能を提供するために、制御システムによる制御を必要とする。
【００１６】
制御装置５を含む制御システムは、メモリの書き換え履歴記録装置を提供する。また、制御システムは、動力源２の運転状態を予め設定された正規範囲内に制限する制限器としても機能する。
【００１７】
＜制御システム＞
センサ群３は、複数のセンサを備える。複数のセンサは、動力源２の運転状態を示す電気信号を検出信号として出力する。この実施形態では、センサ群３は、圧力センサ（ＰＲＥＳ）１１、および回転角センサ（ＡＮＧＬ）１２を備える。圧力センサ１１は、内燃機関の吸気圧力を検出する。回転角センサ１２は、内燃機関のクランク軸の回転角度を検出する。センサ群３は、検出信号を制御装置５に出力する。
【００１８】
アクチュエータ群４は、複数のアクチュエータを備える。複数のアクチュエータは、動力源２の運転状態を調節するための調節器を提供する。この実施形態では、アクチュエータ群４は、燃料ポンプ（ＰＵＭＰ）１３、燃料噴射弁（ＩＮＪＣ）１４、点火装置（ＩＧＮＴ）１５、および警告灯（ＷＲＮＬ）１６を備える。燃料ポンプ１３は、燃料タンクに貯められた燃料を加圧する。燃料ポンプ１３は、電動機ポンプ、または電磁プランジャポンプである。燃料ポンプ１３は、燃料を適切に加圧するように制御される。燃料噴射弁１４は、加圧された燃料を噴射することにより、内燃機関に燃料を供給する。燃料噴射弁１４は、電磁弁である。燃料噴射弁１４は、噴射開始時期、噴射終了時期、噴射期間、および／または噴射回数を調節可能である。燃料噴射弁１４は、内燃機関における燃料供給を調節するように制御される。点火装置１５は、内燃機関に対して電気火花による点火を提供する。点火装置１５は、点火時期、点火期間、および／または点火エネルギ量を調節可能である。点火装置１５は、内燃機関における点火を調節するように制御される。警告灯１６は、例えば、点灯することによって制御装置５の異常（内部エラー）を利用者に警告する。アクチュエータ群４は、制御装置５によって制御される。
【００１９】
動力源２が、電池と電動機とを含む場合、センサ群３およびアクチュエータ群４は、動力源２に適合した要素を含む。センサ群３は、例えば、電池および／または電動機の温度を検出する複数の温度センサ、電動機に流れる電流を検出する電流センサ、および、電池の電圧を検出する電圧センサを含むことができる。アクチュエータ群４は、例えば、電動機に供給する電力を制御するインバータ回路を含むことができる。
【００２０】
制御装置５は、一般的なコンピュータとしての複数の構成要素を備える。これら構成要素は、単一のＩＣパッケージの中に配置することができる。これに代えて、複数の構成要素は、複数のＩＣパッケージに分散的に配置されてもよい。例えば、後述のＣＰＵ６をプロセッサコアとする単一のＩＣパッケージの中に、後述のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０を配置してもよい。これに代えて、例えば、後述のＣＰＵ６をプロセッサコアとするＩＣパッケージの中に、後述のＲＡＭ７、ＲＯＭ８を配置し、別体の他のＩＣパッケージの中に後述のＥＥＰＲＯＭ１０を配置してもよい。
【００２１】
制御装置５は、典型的な要素として、プロセッサとしてのＣＰＵ６と、揮発性の記憶装置としてのＲＡＭ７と、不揮発性の記憶装置としてのＲＯＭ８とを備える。ＲＡＭ７は、ＣＰＵ６のための一時記憶領域を提供する。ＲＯＭ８は、ＣＰＵ６のためのプログラム格納領域、および数値格納領域を提供する。ＲＯＭ８は、繰り返して書き込みが可能であり、かつ、電源供給が失われても記憶内容が維持されるフラッシュＲＯＭである。ＲＯＭ８は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）によって提供されている。ＲＯＭ８は、制御システムのためのプログラムおよび数値のための記憶領域を提供する。さらに、ＲＯＭ８が提供する記憶領域は、制御装置５の外部から書き換えが可能である。ＲＯＭ８は、例えば、製造工程において、記憶領域を書き換えることを可能とする。ＲＯＭ８は、例えば、市場において、記憶領域を書き換えることを可能とする。ＲＯＭ８は、例えば、後述の外部機器２０から記憶領域を書き換えることを可能とする。
【００２２】
制御装置５は、バス回路９を有する。バス回路９は、センサ群３、アクチュエータ群４、および制御装置５を相互に接続する。この観点では、バス回路９は、Ｉ／Ｏバスを提供する。バス回路９は、さらに、制御装置５の内部において、ＣＰＵ６、ＲＡＭ７、およびＲＯＭ８を相互に接続する。この観点では、バス回路９は、システムバスを提供する。バス回路９は、制御装置５の外部に対して直接的に接続可能である。バス回路９は、制御装置５と後述の外部機器２０とを相互に接続する。バス回路９は、ＲＯＭ８と外部機器２０との直接的な接続を提供する。この直接的な接続は、制御装置５の外部からＲＯＭ８の記憶データを書き換える、いわゆる外部書き換えを可能とする。この結果、この実施形態では、ＣＰＵ６を経由することなくＲＯＭ８の記憶データを書き換え可能である。
【００２３】
制御装置５は、不揮発性の記憶装置としてのＥＥＰＲＯＭ１０を備える。ＲＯＭ８が提供する記憶領域と、ＥＥＰＲＯＭ１０が提供する記憶領域とは、互いに異なる記憶領域である。ＥＥＰＲＯＭ１０は、バス回路９に接続されていない。ＥＥＰＲＯＭ１０は、バス回路９を経由することなく、ＣＰＵ６に接続されている。すなわち、ＥＥＰＲＯＭ１０は、制御装置５の外部から直接的にＥＥＰＲＯＭ１０の記憶データを書き換え可能ではない。
【００２４】
ＲＯＭ８と、ＥＥＰＲＯＭ１０とは、物理的に異なる記憶領域として提供されている。ＲＯＭ８と、ＥＥＰＲＯＭ１０とは、例えば、異なる２つのＩＣパッケージによって提供されている。ＲＯＭ８と、ＥＥＰＲＯＭ１０とは、例えば、ひとつの半導体チップの上において物理的に離れた記憶領域によって提供されていてもよい。ＲＯＭ８と、ＥＥＰＲＯＭ１０とは、例えば、共通のひとつのＩＣパッケージの中において物理的に離れた記憶領域によって提供されていてもよい。
【００２５】
ＲＯＭ８と、ＥＥＰＲＯＭ１０とは、バス回路９に対する接続関係に関して異なる記憶領域として提供されている。ＲＯＭ８は、バス回路９に対して直接的に接続されている。ＥＥＰＲＯＭ１０は、ＣＰＵ６を経由することによって、バス回路９に対して間接的に接続されている。ＲＯＭ８は、外部書き換え可能な記憶領域を提供する。ＥＥＰＲＯＭ１０は、外部書き換えが不可能な記憶領域を提供する。なお、この「不可能」は、ＥＥＰＲＯＭ１０の記憶データの外部書き換えが完全に不可能であることを意味するものではない。制御装置５において想定された外部接続形態での書き換えが不可能であることを意味する。例えば、ＥＥＰＲＯＭ１０の物理端子に直接にアクセスすることは想定外である。
【００２６】
機器システム１は、制御システムに対して着脱可能な外部機器（ＥＸＴＬ）２０を含む。外部機器２０は、ＲＯＭ８の内容を操作することができる機器である。外部機器２０は、ＣＰＵ６を介してＥＥＰＲＯＭ１０の内容を操作することができる機器である。外部機器２０は、製造段階では、工場設備によって提供される。外部機器２０は、市場では、診断システムによって提供される。診断システムは、機器システム１が健全であるか、不健全であるかを診断するために利用される。例えば、外部機器２０は、制御システムにおける信号および／またはデータを取得する。外部機器２０は、取得した信号および／またはデータを、診断のために提供する。外部機器２０は、外部機器２０の内部において、取得した信号および／またはデータと、正常な信号および／またはデータとを比較して、診断結果を出力する場合がある。これに代えて、外部機器２０は、取得した信号および／またはデータを、作業者、および／または外部診断装置に提供する場合がある。
【００２７】
外部機器２０が診断システムである場合、外部機器２０は診断端末装置２１を有する。診断端末装置２１は、例えば、サービスステーションに設置されている。診断端末装置２１は、機器システム１を点検または修理する作業者によって使用される。制御装置５と診断端末装置２１とは、コネクタ２２およびケーブル２３を含む有線接続装置によって接続可能である。これに代えて、制御装置５と診断端末装置２１とは、無線接続装置によって接続されてもよい。
【００２８】
診断端末装置２１は、端末制御装置（ＣＴＲＬ）２４と、内部記憶装置（ＳＴＲＧ）２５と、表示器（ＭＮＴＲ）２６と、入力器（ＭＮＳＷ）２７とを有する。内部記憶装置２５は、ＲＯＭまたはＲＡＭによって提供可能である。端末制御装置２４は、ＥＥＰＲＯＭ１０に記憶されているデータを内部記憶装置２５に一時記録する。端末制御装置２４は、内部記憶装置２５に記憶されたデータを表示器２６に表示する。入力器２７は、作業者の操作を検出し、検出信号を端末制御装置２４に入力する。この実施形態では、入力器２７は、履歴表示を要求する操作を検出し、この要求を端末制御装置２４に出力する。
【００２９】
制御装置５は、電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）とも呼ばれる。制御装置５は、（ａ）ｉｆ−ｔｈｅｎ−ｅｌｓｅ形式と呼ばれる複数の論理としてのアルゴリズム、または（ｂ）機械学習によってチューニングされた学習済みモデル、例えばニューラルネットワークとしてのアルゴリズムによって提供される。
【００３０】
制御装置５は、少なくともひとつのコンピュータを含む。制御装置５は、データ通信装置によってリンクされた複数のコンピュータを含む場合がある。コンピュータは、ハードウェアである少なくともひとつのプロセッサ（ハードウェアプロセッサ）を含む。ハードウェアプロセッサは、下記（ｉ）、（ｉｉ）、または（ｉｉｉ）により提供することができる。
【００３１】
（ｉ）ハードウェアプロセッサは、少なくともひとつのメモリに格納されたプログラムを実行する少なくともひとつのプロセッサコアである場合がある。この場合、コンピュータは、少なくともひとつのメモリと、少なくともひとつのプロセッサコアとによって提供される。プロセッサコアは、ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＧＰＵ：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＲＩＳＣ−ＣＰＵなどと呼ばれる。メモリは、記憶媒体とも呼ばれる。メモリは、プロセッサによって読み取り可能な「プログラムおよび／またはデータ」を非一時的に格納する非遷移的かつ実体的な記憶媒体である。記憶媒体は、半導体メモリ、磁気ディスク、または光学ディスクなどによって提供される。プログラムは、それ単体で、またはプログラムが格納された記憶媒体として流通する場合がある。
【００３２】
（ｉｉ）ハードウェアプロセッサは、ハードウェア論理回路である場合がある。この場合、コンピュータは、プログラムされた多数の論理ユニット（ゲート回路）を含むデジタル回路によって提供される。デジタル回路は、ロジック回路アレイ、例えば、ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＰＧＡ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＣＰＬＤ：Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅなどとも呼ばれる。デジタル回路は、プログラムおよび／またはデータを格納したメモリを備える場合がある。コンピュータは、アナログ回路によって提供される場合がある。コンピュータは、デジタル回路とアナログ回路との組み合わせによって提供される場合がある。
【００３３】
（ｉｉｉ）ハードウェアプロセッサは、上記（ｉ）と上記（ｉｉ）との組み合わせである場合がある。（ｉ）と（ｉｉ）とは、異なるチップの上、または共通のチップの上に配置される。これらの場合、（ｉｉ）の部分は、アクセラレータとも呼ばれる。
【００３４】
制御装置と信号源と制御対象物とは、多様な要素を提供する。それらの要素の少なくとも一部は、ブロック、モジュール、またはセクションと呼ぶことができる。さらに、制御システムに含まれる要素は、意図的な場合にのみ、機能的な手段と呼ばれる。
【００３５】
この開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーを構成することによって提供された専用コンピュータにより、実現されてもよい。代替的に、この開示に記載の制御部及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。代替的に、この開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【００３６】
＜記憶されるデータ＞
ＲＯＭ８は、プログラム領域（ＰＲＧＭ）３１を有する。プログラム領域３１は、制御システムのためのプログラムを記憶する。プログラム領域３１は、例えば、燃料噴射プログラム、および点火タイミングプログラムを記憶する。ＲＯＭ８は、数値領域（ＶＬＤＴ）３２を有する。数値領域３２は、制御システムのための数値を記憶する。数値領域３２は、例えば、内燃機関の負荷に対する燃料噴射量を規定するマップ、および内燃機関の回転数に対する点火時期の規定するマップを記憶する。
【００３７】
ＲＯＭ８が外部書き換えされる場合、例えば、プログラム領域３１の一部である書換領域（ＲＥＷＲ）３３のデータが書き換えられる。ＲＯＭ８が外部書き換えされる場合、例えば、数値領域３２の一部である書換領域（ＲＥＷＲ）３４のデータが書き換えられる。
【００３８】
ＲＯＭ８は、検査データを格納するための領域を有する。検査データは、ＲＯＭ８自身の記憶データの誤り検査に利用される。ＲＯＭ８の記憶データに誤りがある場合、制御装置５の異常（内部エラー）として扱われる。「誤り検査」の機能は、ハードウェアにより、または、ソフトウェアにより実装することができる。この明細書における「誤り検査」の語は、広義に解釈されるべきである。「誤り検査」は、「検査対象である記憶領域」から所定の算出方式によって算出値を算出する。「誤り検査」は、算出値と、基準値とを比較し、記憶データの誤りを検出する。「誤り検査」は、「誤り検出符号」を利用して記憶データの誤りを検査する。この実施形態では、「誤り検出符号」として、チェックサムが利用される。「誤り検出符号」として、垂直パリティ、および／または水平パリティが利用されてもよい。「誤り検出符号」として、ハッシュ関数が利用されてもよい。「誤り検出符号」として、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）などと呼ばれる暗号学的ハッシュ関数が利用されてもよい。「誤り検出符号」として、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）と呼ばれる巡回冗長検査が利用されてもよい。
【００３９】
この明細書における「チェックサム」の語は、広義に解釈されるべきである。この実施形態では、「チェックサム」は、「検査対象である記憶領域」の記憶データの総和の中のいくつかのバイトを算出値として算出する方式である。「チェックサム」は、上記総和を所定の定数で割った余り（余剰）を算出値とする方式でもよい。「チェックサム」は、上記総和を算出値とする方式でもよい。この実施形態では、「検査対象である記憶領域」は、ＲＯＭ８のすべての記憶領域である。「検査対象である記憶領域」は、ＲＯＭ８の中の一部の記憶領域でもよい。
【００４０】
ＲＯＭ８は、検査データとして、２つのデータを記憶している。検査データは、基準値としてのチェックサム値（ＳＵＭ−ＣＨＫ）を記憶するチェックサム領域３５を含む。検査データは、差分値としてのサム調整値（ＳＵＭ−ＡＤＪ）を記憶するサム調整値領域３６を含む。チェックサム値は、初期値としての基準値である。チェックサム値は、例えば、初期モデルのＲＯＭ８に記憶された全データのチェックサム値である。サム調整値は、算出値と基準値との差（サム調整値＝算出値−基準値）に相当する。サム調整値として記憶されたデータは、「チェックサム」の対象でもあるから、算出値を変化させる。基準値と等しい算出値が算出されるように、サム調整値は設定されている。
【００４１】
ＲＯＭ８は、ソフトスイッチ領域（ＳＦＳＷ）３７を有する。ソフトスイッチ領域３７は、制御システムの挙動を切り替えるための数値を記憶する。ソフトスイッチ領域３７は、内部エラースイッチ値（ＩＮＴ−Ｅ／Ｄ）を記憶する内部エラー領域３８を有する。内部エラースイッチ値は、ＲＯＭ８を含む制御装置５の検査の有効または無効を設定するための情報を含む。内部エラースイッチ値は、ＲＯＭ８を含む制御装置５の検査それ自体を実行するか否か、すなわち有効または無効を選択するためのスイッチビットを含む。さらに、内部エラースイッチ値は、ＲＯＭ８を含む制御装置５の異常（内部エラー）が検出された場合の対策処理の有効または無効を選択するためのスイッチビットを含む。ここで、「検査の有効または無効」の語は、検査の実行そのものを許容または阻害する場合と、検査の結果が異常である場合に実行される対策処理を許容または阻害する場合とを含む。
【００４２】
内部エラー領域３８は、ＲＯＭ８の検査それ自体の有効／無効を設定する。内部エラー領域３８に含まれる所定ビットの１／０は、例えば、検査そのものの有効／無効に対応付けられる。内部エラー領域３８は、ＲＯＭ８の記憶データに誤りが検出された場合に利用可能な対策処理の有効／無効を設定する。内部エラー領域３８に含まれる所定ビットの１／０は、例えば、対策処理の有効／無効に対応付けられる。対策処理は、「起動の禁止／許可」、「警告灯の点灯／消灯」、および／または、「内燃機関の機能の無制限／制限」によって提供することができる。「内燃機関の機能の制限／無制限」は、例えば、「燃料噴射量の制限／無制限」、「点火進角の制限／無制限」、「回転数の制限／無制限」、「乗り物の速度の制限／無制限」によって提供される。この実施形態では、内部エラー領域３８は、ＲＯＭ８の誤りが検出された場合の警告灯１６の点灯／消灯を設定する。
【００４３】
ＥＥＰＲＯＭ１０は、複数の履歴データＬＯＧ（ｉ＝０〜ｎ）を記憶する履歴領域４１を有する。ｉは、離散系における番号を示す。ｉは、整数である。例えば、（ｉ）は現在のデータを示し、（ｉ−１）は前のデータを示し、（ｉ＋１）は後のデータを示す。ｎは、履歴データの数の最大値である。ここでは、ｎは、市場での標準的なバージョンアップ回数より大きく設定されている。なお、履歴領域４１は、所定個数の履歴データＬＯＧ（ｉ）を記憶する。履歴データＬＯＧ（ｉ）は、先入れ先出し方式によって記憶されてもよい。
【００４４】
ひとつの履歴データＬＯＧ（ｉ）は、サム調整値領域３６に関する履歴データと、内部エラー領域３８に関する履歴データとの両方を含む。以下の説明では、サム調整値領域３６に関する履歴データは、サム履歴ＬＯＧ（ｉ）ＡＤＪと呼ばれる。内部エラー領域３８に関する履歴データは、スイッチ履歴ＬＯＧ（ｉ）Ｅ／Ｄと呼ばれる。
【００４５】
複数の履歴データＬＯＧ（１）〜ＬＯＧ（ｎ）は、順に、蓄積的に記憶される。サム調整値領域３６または内部エラー領域３８のいずれか一方が変更されていることが判定されると、ひとつの履歴データＬＯＧ（ｉ）が蓄積的に記録される。判定は、２つの照合を含む。ひとつの照合は、ＲＯＭ８におけるサム調整値ＳＵＭ−ＡＤＪと、ＥＥＰＲＯＭ１０における直前のサム履歴ＬＯＧ（ｉ−１）ＡＤＪとの照合によって実行される。ひとつの照合は、ＲＯＭ８における内部エラースイッチ値ＩＮＴ−Ｅ／Ｄと、ＥＥＰＲＯＭ１０における直前のスイッチ履歴ＬＯＧ（ｉ−１）Ｅ／Ｄとの照合によって実行される。判定は、動力源２が起動される場合、または制御装置５がパワーオンリセットされる場合に実行される。
【００４６】
図示のように履歴領域４１が複数の履歴データＬＯＧ（ｉ＝０〜ｎ）を記憶する場合、最初の履歴データＬＯＧ（０）は、初期値である。履歴データＬＯＧ（０）は、例えば、工場出荷時におけるサム調整値ＳＵＭ−ＡＤＪおよび内部エラースイッチ値ＩＮＴ−Ｅ／Ｄの両方が記録されている。
【００４７】
正当であると不正であるとを問わず、ＲＯＭ８の外部書き換えによってサム調整値領域３６または内部エラー領域３８が変更されることがある。制御装置５は、上記変更を検出すると、履歴データＬＯＧ（１）をＥＥＰＲＯＭ１０に蓄積的に書き込む。蓄積的な記憶処理は、サム調整値領域３６または内部エラー領域３８のいずれか一方が変更されるたびに繰り返される。この繰り返しによって履歴データＬＯＧ（ｉ＝１〜ｎ）が順に追加される。
【００４８】
診断端末装置２１は、ＥＥＰＲＯＭ１０の履歴データＬＯＧ（ｉ＝０〜ｎ）を表示器２６に表示する。図示の例では、表示器２６に履歴領域４１と同じ文字列４２が表示されている。
【００４９】
＜初期設定処理＞
図２は、制御装置５の製造段階における初期設定処理１５０を示す。初期設定処理１５０は、ＲＯＭ８に工場出荷データを設定する処理を含む。図示された初期設定処理１５０は、ＥＥＰＲＯＭ１０に工場出荷データを設定する処理を含む。初期設定処理１５０は、外部機器２０としての工場設備によって実行される。
【００５０】
外部機器２０は、ステップ１５１では、ＲＯＭ８に工場出荷データを書き込む。工場出荷データは、いわゆる初期値である。外部機器２０は、ステップ１５２では、プログラム領域３１と、数値領域３２とに初期値を書き込む。外部機器２０は、ステップ１５３では、チェックサム領域３５と、サム調整値領域３６とに初期値を書き込む。外部機器２０は、ステップ１５４では、内部エラー領域３８に初期値を書き込む。
【００５１】
外部機器２０は、ステップ１５５では、ＣＰＵ６を経由してＥＥＰＲＯＭ１０に工場出荷データを書き込む。外部機器２０は、ステップ１５６では、ＥＥＰＲＯＭ１０に初期値を書き込む。初期値は、サム履歴ＬＯＧ（０）ＡＤＪと、スイッチ履歴ＬＯＧ（０）Ｅ／Ｄとの両方を含む。
【００５２】
初期設定処理１５０の後、制御装置５は、動力源２などと組み合わせられ、機器システム１として市場に供給される。制御装置５は、市場に供給された後、後述する複数の処理を実行することにより外部書換を検出するための装置を提供する。
【００５３】
この実施形態では、ステップ１５５が外部機器２０によって実行される。これに代えて、ステップ１５５は、後述のステップ１８６において、制御装置５によって実行されてもよい。この場合、ＥＥＰＲＯＭ１０に記録されるすべての履歴データは、自動的に蓄積される。
【００５４】
＜書き換え処理＞
図３は、書き換え処理１６０を示す。書き換え処理１６０は、多くの場合、制御装置５を市場に出荷した後に実施される。書き換え処理１６０は、稀に、制御装置５を市場に出荷する前の段階において工場内で実施される場合がある。書き換え処理１６０は、正当な外部機器２０、または不正な外部機器２０によって実行される。
【００５５】
外部機器２０は、ステップ１６１では、ＲＯＭ８に新たな書き換え値を書き込む。外部機器２０は、ステップ１６２では、プログラム領域３１と、数値領域３２とに新たなデータを書き込む。外部機器２０は、ステップ１６３では、サム調整値領域３６に新たなデータを書き込む。ここでは、チェックサム領域３５の値は変更されない。これにより、書換領域３３、３４のデータが書き換えられても、チェックサムに基づく検査によってＲＯＭ８の異常が検出されることがない。不正な書き換えである場合、サム調整値領域３６は、チェックサムに基づき検査機能を騙すために書き換えられるといえる。外部機器２０は、ステップ１６４では、内部エラー領域３８に新たなデータを書き込む。内部エラー領域３８は、検査の有効または無効を設定するために書き換えられる。内部エラー領域３８の書き換えのひとつの用途は、検査そのものの実行または非実行を設定することである。内部エラー領域３８の書き換えの他のひとつの用途は、書換領域３３、３４を書き換えることに伴って生じる対策処理を無効化、または無力化することである。
【００５６】
＜検査処理＞
図４は、制御装置５によって実行されるＲＯＭ８の検査処理１７０を示す。制御装置５は、ステップ１７１では、ＲＯＭ８のチェックタイミングが到来したか否かを判定する。チェックタイミングは、例えば、動力源２が起動されるとき、制御装置５がパワーオンリセットされるときなどである。チェックタイミングではない場合（ＮＯ）、以下の処理はスキップされる。チェックタイミングである場合（ＹＥＳ）、処理はステップ１７２へ進む。
【００５７】
さらに、制御装置５は、ステップ１７１では、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって検査処理１７０自体が許容されているか否かを判定する。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって検査処理１７０それ自身が許容されている場合（ＹＥＳ）、処理は、ステップ１７２へ進む。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって検査処理１７０それ自身が許容されている場合（ＮＯ）、以下の処理（ステップ１７２−１７７）はスキップされる。
【００５８】
制御装置５は、ステップ１７２では、ＲＯＭ８に対するチェックサムを計算する。制御装置５は、ＲＯＭ８のすべての記憶領域から、設定されたチェックサム方式によって算出値ＳＵＭＲを計算する。制御装置５は、ステップ１７３では、ＲＯＭ８から、基準値としてのチェックサム値ＳＵＭ−ＣＨＫを読み出す。
【００５９】
制御装置５は、ステップ１７４では、算出値ＳＵＭＲが、チェックサム値ＳＵＭ−ＣＨＫと等しいか否かを判定する。算出値ＳＵＭＲが、チェックサム値ＳＵＭ−ＣＨＫと等しい場合（ＹＥＳ）、ＲＯＭ８の検査結果は正常である。この場合、処理は、ステップ１７５へ進む。算出値ＳＵＭＲが、チェックサム値ＳＵＭ−ＣＨＫと等しくない場合（ＮＯ）、ＲＯＭ８の検査結果は異常（内部エラー）である。この場合、処理は、ステップ１７６へ進む。ステップ１７４は、調整値を含むメモリの記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによってＲＯＭ８が正常か異常かを判定するチェックサム判定部を提供する。
【００６０】
制御装置５は、ステップ１７５では、プログラムまたは数値は、正常範囲であるか否かを判定する。プログラムまたは数値が正常範囲である場合（ＹＥＳ）、ＲＯＭ８の検査結果は正常である。この場合、以下の処理はスキップされる。プログラムまたは数値が正常範囲ではない場合（ＮＯ）、ＲＯＭ８の検査結果は異常（内部エラー）である。この場合、ステップ１７６へ進む。ステップ１７５は、プログラムおよび／または数値が、正常範囲にあるか否かによってＲＯＭ８が正常か異常かを判定する内部エラー判定部を提供する。正常範囲は、機器システム１の正常な機能を維持することができる範囲として予め設定されている。例えば、正常範囲は、内燃機関の上限回転数を規定する。例えば、数値領域３２が上限回転数を上回る場合、ステップ１７５における判定は、ＮＯに分岐する。
【００６１】
制御装置５は、ステップ１７６では、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを検査する。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって所定の対策処理が許容されている場合（ＹＥＳ）、ステップ１７７へ進む。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって所定の対策処理が許容されていない場合（ＮＯ）、以下の処理はスキップされる。この場合、ＲＯＭ８の異常（内部エラー）が検出されているのに、対策処理が実行されない。ステップ１７６は、チェックサムによってＲＯＭ８の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部を提供する。ステップ１７６は、内部エラー判定部によってＲＯＭ８の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部を提供する。
【００６２】
制御装置５は、ステップ１７７では、予め設定された対策処理を実行する。この実施形態では、ＲＯＭ８の異常（内部エラー）が検出されていることを示す警告灯１６が点灯される。これにより、利用者は機器システム１の異常を知ることができる。
【００６３】
＜履歴処理＞
図５は、制御装置５によって実行される履歴処理１８０を示す。制御装置５は、ステップ１８１では、動力源２が起動されるか否かを判定する。この実施形態では、動力源２が起動されるたびに履歴処理が実行される。動力源２が起動されるとき、制御装置５はパワーオンリセットによって起動される。この実施形態では、履歴処理１８０によって提供される履歴記録器が起動されるたびに、後述の第１判定部および第２判定部による判定を実行するように構成されている。動力源２が内燃機関を含む場合、ステップ１８１の処理は、イグニッションスイッチがＯＦＦからＯＮに切り替えられたことを検出する処理によって提供される。動力源２が起動される場合、処理はステップ１８２へ進む。動力源２が起動されない場合、以下の処理はスキップされる。
【００６４】
制御装置５は、ステップ１８２では、ＲＯＭ８からサム調整値ＳＵＭ−ＡＤＪと、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄとを読み出す。制御装置５は、ステップ１８３では、ＥＥＰＲＯＭ１０から現在の履歴データＬＯＧ（ｉ）を読み出す。現在の履歴データＬＯＧ（ｉ）は、最後に履歴領域４１に記憶されたデータである。履歴データＬＯＧ（ｉ）は、サム履歴ＬＯＧ（ｉ）ＡＤＪと、スイッチ履歴ＬＯＧ（ｉ）Ｅ／Ｄとを含む。
【００６５】
制御装置５は、ステップ１８４では、ＲＯＭ８に記憶されているサム調整値ＳＵＭ−ＡＤＪと、ＥＥＰＲＯＭ１０に記憶されている現在のサム履歴ＬＯＧ（ｉ）ＡＤＪとが等しいか否かを判定する。サム調整値ＳＵＭ−ＡＤＪとサム履歴ＬＯＧ（ｉ）ＡＤＪとが等しい場合（ＹＥＳ）、処理は、ステップ１８５へ進む。サム調整値ＳＵＭ−ＡＤＪとサム履歴ＬＯＧ（ｉ）ＡＤＪとが等しくない場合（ＮＯ）、処理は、ステップ１８６へ進む。ステップ１８４は、ＲＯＭ８に記憶されている調整値と、最新の履歴（ＬＯＧ（ｉ））に含まれる履歴調整値とが等しいか否かを判定する第１判定部を提供する。
【００６６】
制御装置５は、ステップ１８５では、ＲＯＭ８に記憶されている内部エラースイッチ値ＩＮＴ−Ｅ／Ｄと、ＥＥＰＲＯＭ１０に記憶されている現在の履歴データＬＯＧ（ｉ）Ｅ／Ｄとが等しいか否かを判定する。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄと履歴データＬＯＧ（ｉ）Ｅ／Ｄとが等しい場合（ＹＥＳ）、処理は、終了する。内部エラースイッチ値ＩＮＴ−Ｅ／Ｄと履歴データＬＯＧ（ｉ）Ｅ／Ｄとが等しくない場合（ＮＯ）、処理は、ステップ１８６へ進む。ステップ１８５は、ＲＯＭ８に記憶されているスイッチ値と、最新の履歴（ＬＯＧ（ｉ））に含まれる履歴スイッチ値とが等しいか否かを判定する第２判定部を提供する。
【００６７】
この結果、制御装置５は、ステップ１８４またはステップ１８５のいずれか一方において否定的に判定された場合、ステップ１８６を実行する。制御装置５は、ステップ１８４およびステップ１８５の両方において肯定的に判定された場合、ステップ１８６を実行しない。制御装置５は、ステップ１８６では、ＲＯＭ８に記憶されているサム調整値ＳＵＭ−ＡＤＪと内部エラースイッチ値ＩＮＴ−Ｅ／Ｄとの両方を、最新の履歴データＬＯＧ（ｉ＋１）としてＥＥＰＲＯＭ１０に書き込む。ステップ１８６は、第１判定部１８４または第２判定部１８５のいずれかにおいて否定的に判定された場合に、調整値およびスイッチ値を履歴として記録する記録部を提供する。
【００６８】
＜出力処理＞
図６は、制御装置５と外部機器２０とによって実行される出力処理１９０を示す。外部機器２０は、ステップ１９１では、制御装置５と外部機器２０とがコネクタ２２によって接続されているか否かを判定する。通信可能な接続が確立されていない場合（ＮＯ）、以下の処理がスキップされる。通信可能な接続が確立されている場合（ＹＥＳ）、処理は、ステップ１９２に進む。
【００６９】
制御装置５と外部機器２０との接続が確立されている場合、制御装置５と外部機器２０とは、多様な診断処理を実行する。診断処理は、機器システム１の状態を出力する多様な処理を含む。診断処理のひとつは、ＥＥＰＲＯＭ１０の履歴データＬＯＧ（ｉ＝０〜ｎ）を出力する処理である。
【００７０】
外部機器２０は、ステップ１９２では、利用者による要求操作を検出する。要求操作は、履歴データの出力を求める操作である。要求操作は、入力器２７の操作によって入力される。要求操作がない場合（ＮＯ）、以下の処理がスキップされる。要求操作がある場合（ＹＥＳ）、処理は、ステップ１９３に進む。外部機器２０は、ステップ１９３では、制御装置５へ要求信号ＲＱを出力する。
【００７１】
制御装置５は、ステップ１９４では、外部機器２０から要求信号ＲＱがあるか否かを判定する。要求信号ＲＱがない場合（ＮＯ）、以下の処理はスキップされる。要求信号ＲＱがある場合（ＹＥＳ）、処理は、ステップ１９５へ進む。制御装置５は、ステップ１９５では、ＥＥＰＲＯＭ１０から外部機器２０へすべての履歴データＬＯＧ（ｉ＝０〜ｎ）を出力する。
【００７２】
外部機器２０は、ステップ１９６では、制御装置５から履歴データＬＯＧ（ｉ＝０〜ｎ）を受信する。受信される履歴データは、ＥＥＰＲＯＭ１０に記憶されている履歴データである。受信された履歴データは、外部機器２０の内部記憶装置２５に記憶される。外部機器２０は、ステップ１９７では、内部記憶装置２５に記憶された履歴データＬＯＧ（ｉ＝０〜ｎ）を表示器２６に表示する。
【００７３】
出力処理１９０の結果、作業者は、ＥＥＰＲＯＭ１０の履歴データから、正当な外部書き換えと、正当ではない外部書き換えとの両方を提示される。作業者は、正当な外部書き換えの正当履歴データを知ることができる。正当履歴データは、例えば、製造者から提供されている。または、正当履歴データは、作業者から製造者への求めに応じて提供される。正当履歴データは、正当な外部書き換えのすべてに関して、外部書き換えに伴って生成されたサム調整値ＳＵＭ−ＡＤＪと内部エラースイッチ値ＩＮＴ−Ｅ／Ｄとを含む。したがって、作業者は、ＥＥＰＲＯＭ１０の履歴データと、正当履歴データとを対比することにより、正当ではない外部書き換えがあったことを知ることができる。
【００７４】
外部機器２０は、ステップ１９７において、自己診断を実施してもよい。この場合、外部機器２０は、正当履歴データを内部記憶装置２５に少なくとも一時的に記憶する。外部機器２０は、ＥＥＰＲＯＭ１０から取得された履歴データＬＯＧ（ｉ＝０〜ｎ）のすべてが、正当履歴データに一致するか否かを判定する。ＥＥＰＲＯＭ１０から取得された履歴データＬＯＧ（ｉ＝０〜ｎ）が、正当履歴データにないデータを含む場合、その外部書き換えは、正当ではない可能性が高い。履歴データＬＯＧ（ｉ＝０〜ｎ）が、正当ではない履歴データを含む場合、外部機器２０は、警告を発するように構成することができる。
【００７５】
＜正当な外部書き換え＞
ＲＯＭ８が外部書き換えされる場合、サム調整値ＳＵＭ−ＡＤＪが書き換えられる。正当な外部書き換えとして、例えば、製造者によるバージョンアップを想定することができる。この場合、製造者は、書換領域３３、３４を書き換えるだけでなく、サム調整値領域３６を書き換える。これにより、基準値であるチェックサム値ＳＵＭ−ＣＨＫを維持したままで、ＲＯＭ８の検査に起因する異常（内部エラー）の検出を回避することができる。製造者は、内部エラーを回避できるから、内部エラー領域３８を書き換えることはない。製造者は、チェックサムによる検査そのものが実行されるように、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを設定する。製造者は、ＲＯＭ８の異常が検出された場合には、予め定められた対策処理が実行されるように、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを設定する。
【００７６】
サム調整値領域３６または内部エラー領域３８のいずれか一方が書き換えられると、次に動力源２を起動する際に、履歴データＬＯＧ（ｉ）がＥＥＰＲＯＭ１０に追加記憶される。この結果、正当な書き換えが、履歴として残される。
【００７７】
＜不正な外部書き換え＞
不正な外部書き換えによってＲＯＭ８が書き換えられる場合を想定することができる。不正な外部書き換えとして、例えば、製造者の許可を得ない改造行為を想定することができる。この場合、改造者は、書換領域３３、３４を書き換える。さらに、改造者は、チェックサムによる検査を騙すために、サム調整値ＳＵＭ−ＡＤＪを書き換える。言い換えると、改造者は、ステップ１７４におけるチェックサム検査の判定結果がＹＥＳに分岐するようにサム調整値ＳＵＭ−ＡＤＪを書き換える。また、周到な改造者は、チェックサムによる検査そのものを封じるために、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを書き換える。周到な改造者は、ステップ１７６における対策処理の要否を判定結果がＮＯに分岐するように内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを書き換える。
【００７８】
多くの場合、改造者は、乗り物の挙動を激しくするように書換領域３３、３４を書き換える。この場合、機器システム１を保護するために異常（内部エラー）が検出される場合がある。言い換えると、ステップ１７５における正常範囲の判定結果がＮＯに分岐する場合がある。この場合でも、周到な改造者は、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを書き換えているから、ステップ１７６における判定がＮＯに分岐する。
【００７９】
したがって、不正な外部書き換えであっても、サム調整値ＳＵＭ−ＡＤＪ、および／または内部エラースイッチ値ＩＮＴ−Ｅ／Ｄが書き換えられると、制御装置５は異常（内部エラー）を検出することができない。ただし、サム調整値ＳＵＭ−ＡＤＪまたは内部エラースイッチ値ＩＮＴ−Ｅ／Ｄのいずれか一方が書き換えられると、次に動力源２を起動する際に、履歴データＬＯＧ（ｉ）がＥＥＰＲＯＭ１０に追加記憶される。この結果、不正な書き換えが、履歴として残される。
【００８０】
＜外部書き換えではない異常＞
ＲＯＭ８のデータは、デバイスの不安定、デバイスの寿命、または稀な放射線などに起因して、不規則に反転する場合がある。ＲＯＭ８の任意のビットが反転すると、ＲＯＭ８の検査（チェックサム）によって異常（内部エラー）が検出される。この場合、制御装置５は、内部エラースイッチ値ＩＮＴ−Ｅ／Ｄによって予め設定された対策処理を実行する。
【００８１】
＜メモリの書き換え履歴記録装置＞
図７は、メモリの書き換え履歴記録装置のブロック図である。それぞれのブロックは、制御装置５のハードウェア資源、およびハードウェア資源を機能させるためのソフトウェア資源によって提供されている。
【００８２】
メモリＭ１は、制御装置５のプログラムおよび／または数値を記憶している。メモリＭ１は、外部書き換えが可能であり、かつ不揮発性である。メモリＭ１は、ＲＯＭ８によって提供されている。
【００８３】
メモリＭ１は、検査器Ｍ２によって検査される。検査器Ｍ２は、メモリＭ１の記憶データを検査し、メモリＭ１の正常または異常を判定する。検査器Ｍ２は、「誤り検査」を実行する。検査器Ｍ２は、メモリＭ１の記憶データをチェックサムによって検査するチェックサム検査器である。検査器Ｍ２は、調整値を含むメモリＭ１の記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによってメモリＭ１が正常か異常かを判定するチェックサム判定部１７４を備える。検査器Ｍ２は、チェックサムによるメモリＭ１の検査の有効または無効をスイッチ値によって判定する内部スイッチ判定部１７１、１７６を備える。検査器Ｍ２は、チェックサムによるメモリＭ１の検査そのものを実行するか否かをスイッチ値によって判定する内部スイッチ判定部１７１を備える。検査器Ｍ２は、チェックサムによってメモリＭ１の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部１７６を備える。検査器Ｍ２は、プログラムおよび／または数値が、正常範囲にあるか否かによってメモリＭ１が正常か異常かを判定する内部エラー判定部１７５を備える。検査器Ｍ２は、内部エラー判定部によってメモリＭ１の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部１７６を備える。
【００８４】
検査器Ｍ２によってメモリＭ１に異常（内部エラー）が検出されると、検査器Ｍ２は、対策処理を実行する。
【００８５】
メモリＭ１は、検査器Ｍ２による異常との判定を阻止するように書き換えられる調整値（ＳＵＭ−ＡＤＪ）を記憶するサム調整値領域３６を有する。メモリＭ１は、検査器Ｍ２による検査の有効または無効を設定するスイッチ値（ＩＮＴ−Ｅ／Ｄ）を記憶する内部エラー領域３８を有する。
【００８６】
対策処理を回避する第１の方法は、検査器Ｍ２による検査を騙すことによって提供される。第１の方法のために、サム調整値領域３６が利用される。サム調整値領域３６が適切な調整値（サム調整値ＳＵＭ−ＡＤＪ）に設定された場合、検査器Ｍ２は異常（内部エラー）を検出しない。言い換えると、サム調整値領域３６は、検査器Ｍ２による検査を有効に機能させながら、その検査によって異常が検出されることを阻止するために利用することが可能である。よって、第１の方法は、検査器Ｍ２を正常に機能させながら、その検査を騙す処理であるといえる。
【００８７】
対策処理を回避する第２の方法は、検査器Ｍ２による検査それ自体の有効または無効を設定することによって提供される。ここで、「検査の有効または無効」の語は、検査の実行そのものを阻害する場合と、検査の結果が異常である場合に実行される対策処理を阻害する場合とを含む。第２の方法のために、内部エラー領域３８が利用される。内部エラー領域３８が適切なスイッチ値（内部エラースイッチ値ＩＮＴ−Ｅ／Ｄ）に設定された場合、検査器Ｍ２による検査の有効または無効が設定される。
【００８８】
第２の方法のひとつは、検査器Ｍ２による検査の実行そのものを阻害することである。この場合も、内部エラー領域３８が利用される。内部エラー領域３８が適切なスイッチ値（内部エラースイッチ値ＩＮＴ−Ｅ／Ｄ）に設定された場合、検査器Ｍ２は検査そのものを実行しない。
【００８９】
第２の方法のひとつは、検査の結果に応答して起動される対策処理の実行だけを阻害することである。この場合も、内部エラー領域３８が利用される。内部エラー領域３８が適切なスイッチ値（内部エラースイッチ値ＩＮＴ−Ｅ／Ｄ）に設定された場合、検査器Ｍ２は異常（内部エラー）を検出しても、対策処理を実行しない。
【００９０】
この実施形態では、第１の方法と、第２の方法との両方を監視するために、履歴記録器Ｍ３は、調整値と、スイッチ値との両方を蓄積的に記録する。この結果、履歴は、調整値とスイッチ値との両方を含んでいる。これにより、正当であるか不正であるかを問わずに、外部書き換えがあったことが記録される。調整値だけでなく、スイッチ値が記録されるから、正当な外部書き換え、および、不正な外部書き換えの両方を履歴として記録することができる。この結果、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置が提供される。
【００９１】
履歴記録器Ｍ３は、メモリＭ１に対する外部書き換えの履歴を記録する。履歴記録器Ｍ３は、メモリＭ１とは異なる不揮発性の他のメモリを含む。他のメモリは、ＥＥＰＲＯＭ１０によって提供されている。
【００９２】
履歴記録器Ｍ３は、メモリＭ１が外部書き換えされると調整値およびスイッチ値の両方を履歴として記録するよう構成されている。この場合、履歴記録器Ｍ３は、第１判定部１８４と、第２判定部１８５とを備える。第１判定部１８４は、メモリＭ１に記憶されている調整値と、最新の履歴（ＬＯＧ（ｉ））に含まれる履歴調整値とが等しいか否かを判定する。第２判定部１８５は、メモリＭ１に記憶されているスイッチ値と、最新の履歴（ＬＯＧ（ｉ））に含まれる履歴スイッチ値とが等しいか否かを判定する。履歴記録器Ｍ３は、第１判定部または第２判定部のいずれかにおいて否定的に判定された場合に、調整値およびスイッチ値を履歴として記録する記録部１８６を備える。履歴記録器Ｍ３は、履歴記録器Ｍ３が起動されるたびに第１判定部１８４および第２判定部１８５による判定を実行するように構成されている。起動は、具体的には、制御装置５の電源スイッチの投入である。
【００９３】
メモリの書き換え履歴記録装置は、出力器Ｍ４を備える場合がある。出力器Ｍ４は、履歴記録器Ｍ３に記録された履歴データを出力する。履歴は、調整値およびスイッチ値の両方を含むから、それらの値によって、正当な外部書き換えと、不正な外部書き換えとが示される。制御装置５は、メモリＭ１、検査器Ｍ２、および履歴記録器Ｍ３を備えることができる。ひとつの実施形態では、出力器Ｍ４は、制御装置５とデータ通信可能に接続可能な外部機器２０によって提供される。
【００９４】
以上に述べた実施形態によると、外部書き換えを可能とする特定のデータが履歴データとして蓄積され出力される。よって、外部書き換えの履歴が提供される。この結果、外部書き換えを効率的に発見可能なメモリの書き換え履歴記録装置を提供することができる。
【００９５】
外部書き換えを可能とする特定のデータは、いわゆるチェックサムによる検査を騙すためのサム調整値ＳＵＭ−ＡＤＪを含む。さらに、外部書き換えを可能とする特定のデータは、検査の有効／無効を設定するための内部エラースイッチ値ＩＮＴ−Ｅ／Ｄを含む。これら２つのデータを両方とも含むことにより、外部書き換えを検出する精度が高められる。
【００９６】
外部書き換え可能な記憶領域は、正当であるか、不正であるかを問わず、書き換えられることがある。この場合、記憶領域のユニークなハッシュコードを生成し、履歴として記録することが考えられる。しかし、ハッシュコードを蓄積するための大きいメモリ容量が必要である。また、ハードウェアによるハッシュコード生成器、またはソフトウェアによるハッシュコード生成器を搭載する必要がある。これに対し、この実施形態におけるサム調整値ＳＵＭ−ＡＤＪのデータ量は、ハッシュコードのデータ量より格段に少ない。このため、この実施形態によると、記憶領域の書き換えを効率的に発見可能なメモリの書き換え履歴記録装置を提供することができる。しかも、チェックサムによる記憶領域の検査機能は、小さい規模のハードウェアまたはソフトウェアによって提供することができる。このため、記憶領域の書き換えを小さい規模の構成によって発見可能なメモリの書き換え履歴記録装置を提供することができる。
【００９７】
他の実施形態
この明細書および図面等における開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。例えば、開示は、実施形態において示された部品および／または要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示は、実施形態に追加可能な追加的な部分をもつことができる。開示は、実施形態の部品および／または要素が省略されたものを包含する。開示は、ひとつの実施形態と他の実施形態との間における部品および／または要素の置き換え、または組み合わせを包含する。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、請求の範囲の記載によって示され、さらに請求の範囲の記載と均等の意味及び範囲内での全ての変更を含むものと解されるべきである。
【００９８】
明細書および図面等における開示は、請求の範囲の記載によって限定されない。明細書および図面等における開示は、請求の範囲に記載された技術的思想を包含し、さらに請求の範囲に記載された技術的思想より多様で広範な技術的思想に及んでいる。よって、請求の範囲の記載に拘束されることなく、明細書および図面等の開示から、多様な技術的思想を抽出することができる。
【００９９】
上記実施形態では、履歴処理１８０および履歴記録器Ｍ３は、ＥＥＰＲＯＭ１０に履歴を記録する。これに代えて、履歴処理１８０および履歴記録器Ｍ３は、無線によって通信可能に接続されたサーバに履歴を記録してもよい。また、外部機器２０は、無線によって通信可能に接続されたサーバによって提供されてもよい。この場合、複数の制御装置５における外部書き換えを、サーバにおいて集中的に監視し、管理することができる。
【図１】
2020158075.tif 000003
【図２】
2020158075.tif 000004
【図３】
2020158075.tif 000005
【図４】
2020158075.tif 000006
【図５】
2020158075.tif 000007
【図６】
2020158075.tif 000008
【図７】
2020158075.tif 000009
【国際調査報告】
2020158075.tif 000010
2020158075.tif 000011
2020158075.tif 000012
2020158075.tif 000013