IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ デンソートリム株式会社の特許一覧

<>
  • 特許-メモリの書き換え履歴記録装置 図1
  • 特許-メモリの書き換え履歴記録装置 図2
  • 特許-メモリの書き換え履歴記録装置 図3
  • 特許-メモリの書き換え履歴記録装置 図4
  • 特許-メモリの書き換え履歴記録装置 図5
  • 特許-メモリの書き換え履歴記録装置 図6
  • 特許-メモリの書き換え履歴記録装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-07
(45)【発行日】2022-06-15
(54)【発明の名称】メモリの書き換え履歴記録装置
(51)【国際特許分類】
   G06F 21/64 20130101AFI20220608BHJP
【FI】
G06F21/64
【請求項の数】 10
(21)【出願番号】P 2020569374
(86)(22)【出願日】2019-10-25
(86)【国際出願番号】 JP2019041841
(87)【国際公開番号】W WO2020158075
(87)【国際公開日】2020-08-06
【審査請求日】2021-03-16
(31)【優先権主張番号】P 2019014671
(32)【優先日】2019-01-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】599161580
【氏名又は名称】株式会社デンソートリム
(74)【代理人】
【識別番号】100106149
【弁理士】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(74)【代理人】
【識別番号】100170689
【弁理士】
【氏名又は名称】金 順姫
(72)【発明者】
【氏名】宮田 秀俊
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2013-143095(JP,A)
【文献】国際公開第2008/004524(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
制御装置(5)のプログラムおよび/または数値を記憶しており、外部書き換えが可能であり、かつ不揮発性のメモリ(8、M1)と、
前記メモリの記憶データを検査し、前記メモリの正常または異常を判定する検査器(6、M2)と、
前記外部書き換えの履歴を記録する履歴記録器(10、M3)とを備え、
前記メモリは、
前記検査器による異常との判定を阻止するように書き換えられる調整値(SUM-ADJ)を記憶する領域(36)と、
前記検査器による検査の有効または無効を設定するスイッチ値(INT-E/D)を記憶する領域(38)とを有し、
前記履歴は、
前記調整値と前記スイッチ値との両方を含んでいるメモリの書き換え履歴記録装置。
【請求項2】
さらに、前記履歴記録器に記録された履歴を出力する出力器(20、M4)を備える請求項1に記載のメモリの書き換え履歴記録装置。
【請求項3】
前記制御装置は、前記メモリ、前記検査器、および前記履歴記録器を備え、
前記出力器は、前記制御装置とデータ通信可能に接続可能な外部機器(20)によって提供される請求項2に記載のメモリの書き換え履歴記録装置。
【請求項4】
前記履歴記録器は、前記メモリが外部書き換えされると前記調整値および前記スイッチ値の両方を前記履歴として記録するよう構成されている請求項1から請求項3のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項5】
前記履歴記録器は、
前記メモリに記憶されている前記調整値と、最新の前記履歴(LOG(i))に含まれる履歴調整値とが等しいか否かを判定する第1判定部(184)と、
前記メモリに記憶されている前記スイッチ値と、最新の前記履歴(LOG(i))に含まれる履歴スイッチ値とが等しいか否かを判定する第2判定部(185)と、
前記第1判定部または前記第2判定部のいずれかにおいて否定的に判定された場合に、前記調整値および前記スイッチ値を前記履歴として記録する記録部(186)とを備える請求項4に記載のメモリの書き換え履歴記録装置。
【請求項6】
前記履歴記録器は、前記履歴記録器が起動されるたびに前記第1判定部および前記第2判定部による判定を実行するように構成されている請求項5に記載のメモリの書き換え履歴記録装置。
【請求項7】
前記検査器は、前記メモリの記憶データをチェックサムによって検査するチェックサム検査器である請求項1から請求項6のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項8】
前記検査器は、
前記調整値を含む前記メモリの記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによって前記メモリが正常か異常かを判定するチェックサム判定部(174)と、
前記スイッチ値によって前記チェックサム判定部による検査の有効または無効を判定する内部スイッチ判定部(171、176)とを備える請求項7に記載のメモリの書き換え履歴記録装置。
【請求項9】
前記検査器は、
前記プログラムおよび/または数値が、正常範囲にあるか否かによって前記メモリが正常か異常かを判定する内部エラー判定部(175)と、
前記内部エラー判定部によって前記メモリの異常が判定された場合に、前記スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部(176)とを備える請求項1から請求項8のいずれかに記載のメモリの書き換え履歴記録装置。
【請求項10】
前記履歴記録器は、前記メモリとは異なる不揮発性の他のメモリ(10)を含む請求項1から請求項9のいずれかに記載のメモリの書き換え履歴記録装置。

【発明の詳細な説明】
【関連出願の相互参照】
【0001】
この出願は、2019年1月30日に日本に出願された特許出願第2019-014671号を基礎としており、基礎の出願の内容を、全体的に、参照により援用している。
【技術分野】
【0002】
この明細書における開示は、メモリの書き換え履歴記録装置に関する。
【背景技術】
【0003】
特許文献1は、書き換え可能なメモリを利用する制御機器を開示する。従来技術として列挙された先行技術文献の記載内容は、この明細書における技術的要素の説明として、参照により援用される。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第6009290号公報
【発明の概要】
【0005】
書き換え可能なメモリを利用する制御機器では、メモリの書き換え行為を記録する場合がある。書き換え行為の履歴は、記憶データの書き換えを発見可能とする。ひとつの観点では、不正な書き換えを発見可能とすることが求められている。別の観点では、正当な書き換えであっても、それを発見可能とすること、または再確認可能とすることが求められている。上述の観点において、または言及されていない他の観点において、乗り物用制御装置にはさらなる改良が求められている。
【0006】
開示されるひとつの目的は、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置を提供することである。
【0007】
開示される他のひとつの目的は、書き換え行為を小さい規模の構成によって発見可能なメモリの書き換え履歴記録装置を提供することである。
【0008】
ここに開示されたメモリの書き換え履歴記録装置は、制御装置(5)のプログラムおよび/または数値を記憶しており、外部書き換えが可能であり、かつ不揮発性のメモリ(8、M1)と、メモリの記憶データを検査し、メモリの正常または異常を判定する検査器(6、M2)と、外部書き換えの履歴を記録する履歴記録器(10、M3)とを備える。さらに、メモリは、検査器による異常との判定を阻止するように書き換えられる調整値(SUM-ADJ)を記憶する領域(36)と、検査器による検査の有効または無効を設定するスイッチ値(INT-E/D)を記憶する領域(38)とを有し、履歴は、調整値とスイッチ値との両方を含んでいる。
【0009】
開示されるメモリの書き換え履歴記録装置によると、調整値と、スイッチ値との両方が履歴として記録される。調整値だけでなく、スイッチ値が記録されるから、正当な外部書き換え、および、不正な外部書き換えの両方を履歴として記録することができる。この結果、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置が提供される。
【0010】
この明細書における開示された複数の態様は、それぞれの目的を達成するために、互いに異なる技術的手段を採用する。請求の範囲およびこの項に記載した括弧内の符号は、後述する実施形態の部分との対応関係を例示的に示すものであって、技術的範囲を限定することを意図するものではない。この明細書に開示される目的、特徴、および効果は、後続の詳細な説明、および添付の図面を参照することによってより明確になる。
【図面の簡単な説明】
【0011】
図1】制御装置を含む乗り物システムのブロック図である。
図2】初期設定処理のフローチャートである。
図3】書き換え処理のフローチャートである。
図4】検査処理のフローチャートである。
図5】履歴処理のフローチャートである。
図6】出力処理のフローチャートである。
図7】メモリの書き換え履歴記録装置のブロック図である。
【発明を実施するための形態】
【0012】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的におよび/または構造的に対応する部分および/または関連付けられる部分には同一の参照符号、または百以上の位が異なる参照符号が付される場合がある。対応する部分および/または関連付けられる部分については、他の実施形態の説明を参照することができる。
【0013】
第1実施形態
<機器システム>
図1は、機器システム1を示す。機器システム1は、制御対象としての動力源(PWRS)2を備える。機器システム1は、制御対象を制御するための制御システムを備える。制御システムは、センサ群(SNSR)3、アクチュエータ群(ACTR)4、および制御装置(ECU)5を備える。
【0014】
この明細書において、機器の語は、広義に解釈されるべきである。機器は、定置の機器、および移動機器を含む。定置の機器は、例えば、空調機器、発電機器、および照明機器などを含む。移動機器は、いわゆる乗り物を含む。乗り物の語は、移動用乗り物だけでなく、定置型の乗り物を含む。移動用乗り物は、例えば、地上走行車両、船舶、および航空機を含む。定置型の乗り物は、例えば、操作技術を習熟するためのシミュレーション機器を含む。定置型の乗り物は、例えば、操作技術、または乗り物の挙動を楽しむためのアミューズメント機器を含む。この実施形態では、機器システム1は、乗り物システムである。乗り物は、鞍乗り型の地上走行車両である。乗り物の典型的な一例は、二輪車である。
【0015】
動力源2は、内燃機関システム、または電動機システムによって提供される。動力源2が内燃機関システムである場合、動力源2は、内燃機関と、燃料供給システムと、点火システムとを含む場合がある。動力源2が、電動機システムによって提供される場合、動力源2は、電池と、電動機とを含む場合がある。この実施形態では、動力源2は、乗り物における動力を提供する。動力源2は、内燃機関システムである。動力源2は、予め設定された機能を提供するために、制御システムによる制御を必要とする。
【0016】
制御装置5を含む制御システムは、メモリの書き換え履歴記録装置を提供する。また、制御システムは、動力源2の運転状態を予め設定された正規範囲内に制限する制限器としても機能する。
【0017】
<制御システム>
センサ群3は、複数のセンサを備える。複数のセンサは、動力源2の運転状態を示す電気信号を検出信号として出力する。この実施形態では、センサ群3は、圧力センサ(PRES)11、および回転角センサ(ANGL)12を備える。圧力センサ11は、内燃機関の吸気圧力を検出する。回転角センサ12は、内燃機関のクランク軸の回転角度を検出する。センサ群3は、検出信号を制御装置5に出力する。
【0018】
アクチュエータ群4は、複数のアクチュエータを備える。複数のアクチュエータは、動力源2の運転状態を調節するための調節器を提供する。この実施形態では、アクチュエータ群4は、燃料ポンプ(PUMP)13、燃料噴射弁(INJC)14、点火装置(IGNT)15、および警告灯(WRNL)16を備える。燃料ポンプ13は、燃料タンクに貯められた燃料を加圧する。燃料ポンプ13は、電動機ポンプ、または電磁プランジャポンプである。燃料ポンプ13は、燃料を適切に加圧するように制御される。燃料噴射弁14は、加圧された燃料を噴射することにより、内燃機関に燃料を供給する。燃料噴射弁14は、電磁弁である。燃料噴射弁14は、噴射開始時期、噴射終了時期、噴射期間、および/または噴射回数を調節可能である。燃料噴射弁14は、内燃機関における燃料供給を調節するように制御される。点火装置15は、内燃機関に対して電気火花による点火を提供する。点火装置15は、点火時期、点火期間、および/または点火エネルギ量を調節可能である。点火装置15は、内燃機関における点火を調節するように制御される。警告灯16は、例えば、点灯することによって制御装置5の異常(内部エラー)を利用者に警告する。アクチュエータ群4は、制御装置5によって制御される。
【0019】
動力源2が、電池と電動機とを含む場合、センサ群3およびアクチュエータ群4は、動力源2に適合した要素を含む。センサ群3は、例えば、電池および/または電動機の温度を検出する複数の温度センサ、電動機に流れる電流を検出する電流センサ、および、電池の電圧を検出する電圧センサを含むことができる。アクチュエータ群4は、例えば、電動機に供給する電力を制御するインバータ回路を含むことができる。
【0020】
制御装置5は、一般的なコンピュータとしての複数の構成要素を備える。これら構成要素は、単一のICパッケージの中に配置することができる。これに代えて、複数の構成要素は、複数のICパッケージに分散的に配置されてもよい。例えば、後述のCPU6をプロセッサコアとする単一のICパッケージの中に、後述のRAM(Random Access Memory)7、ROM(Read Only Memory)8、EEPROM(Electrically Erasable and Programmable Read Only Memory)10を配置してもよい。これに代えて、例えば、後述のCPU6をプロセッサコアとするICパッケージの中に、後述のRAM7、ROM8を配置し、別体の他のICパッケージの中に後述のEEPROM10を配置してもよい。
【0021】
制御装置5は、典型的な要素として、プロセッサとしてのCPU6と、揮発性の記憶装置としてのRAM7と、不揮発性の記憶装置としてのROM8とを備える。RAM7は、CPU6のための一時記憶領域を提供する。ROM8は、CPU6のためのプログラム格納領域、および数値格納領域を提供する。ROM8は、繰り返して書き込みが可能であり、かつ、電源供給が失われても記憶内容が維持されるフラッシュROMである。ROM8は、EEPROM(Electrically Erasable and Programmable Read Only Memory)によって提供されている。ROM8は、制御システムのためのプログラムおよび数値のための記憶領域を提供する。さらに、ROM8が提供する記憶領域は、制御装置5の外部から書き換えが可能である。ROM8は、例えば、製造工程において、記憶領域を書き換えることを可能とする。ROM8は、例えば、市場において、記憶領域を書き換えることを可能とする。ROM8は、例えば、後述の外部機器20から記憶領域を書き換えることを可能とする。
【0022】
制御装置5は、バス回路9を有する。バス回路9は、センサ群3、アクチュエータ群4、および制御装置5を相互に接続する。この観点では、バス回路9は、I/Oバスを提供する。バス回路9は、さらに、制御装置5の内部において、CPU6、RAM7、およびROM8を相互に接続する。この観点では、バス回路9は、システムバスを提供する。バス回路9は、制御装置5の外部に対して直接的に接続可能である。バス回路9は、制御装置5と後述の外部機器20とを相互に接続する。バス回路9は、ROM8と外部機器20との直接的な接続を提供する。この直接的な接続は、制御装置5の外部からROM8の記憶データを書き換える、いわゆる外部書き換えを可能とする。この結果、この実施形態では、CPU6を経由することなくROM8の記憶データを書き換え可能である。
【0023】
制御装置5は、不揮発性の記憶装置としてのEEPROM10を備える。ROM8が提供する記憶領域と、EEPROM10が提供する記憶領域とは、互いに異なる記憶領域である。EEPROM10は、バス回路9に接続されていない。EEPROM10は、バス回路9を経由することなく、CPU6に接続されている。すなわち、EEPROM10は、制御装置5の外部から直接的にEEPROM10の記憶データを書き換え可能ではない。
【0024】
ROM8と、EEPROM10とは、物理的に異なる記憶領域として提供されている。ROM8と、EEPROM10とは、例えば、異なる2つのICパッケージによって提供されている。ROM8と、EEPROM10とは、例えば、ひとつの半導体チップの上において物理的に離れた記憶領域によって提供されていてもよい。ROM8と、EEPROM10とは、例えば、共通のひとつのICパッケージの中において物理的に離れた記憶領域によって提供されていてもよい。
【0025】
ROM8と、EEPROM10とは、バス回路9に対する接続関係に関して異なる記憶領域として提供されている。ROM8は、バス回路9に対して直接的に接続されている。EEPROM10は、CPU6を経由することによって、バス回路9に対して間接的に接続されている。ROM8は、外部書き換え可能な記憶領域を提供する。EEPROM10は、外部書き換えが不可能な記憶領域を提供する。なお、この「不可能」は、EEPROM10の記憶データの外部書き換えが完全に不可能であることを意味するものではない。制御装置5において想定された外部接続形態での書き換えが不可能であることを意味する。例えば、EEPROM10の物理端子に直接にアクセスすることは想定外である。
【0026】
機器システム1は、制御システムに対して着脱可能な外部機器(EXTL)20を含む。外部機器20は、ROM8の内容を操作することができる機器である。外部機器20は、CPU6を介してEEPROM10の内容を操作することができる機器である。外部機器20は、製造段階では、工場設備によって提供される。外部機器20は、市場では、診断システムによって提供される。診断システムは、機器システム1が健全であるか、不健全であるかを診断するために利用される。例えば、外部機器20は、制御システムにおける信号および/またはデータを取得する。外部機器20は、取得した信号および/またはデータを、診断のために提供する。外部機器20は、外部機器20の内部において、取得した信号および/またはデータと、正常な信号および/またはデータとを比較して、診断結果を出力する場合がある。これに代えて、外部機器20は、取得した信号および/またはデータを、作業者、および/または外部診断装置に提供する場合がある。
【0027】
外部機器20が診断システムである場合、外部機器20は診断端末装置21を有する。診断端末装置21は、例えば、サービスステーションに設置されている。診断端末装置21は、機器システム1を点検または修理する作業者によって使用される。制御装置5と診断端末装置21とは、コネクタ22およびケーブル23を含む有線接続装置によって接続可能である。これに代えて、制御装置5と診断端末装置21とは、無線接続装置によって接続されてもよい。
【0028】
診断端末装置21は、端末制御装置(CTRL)24と、内部記憶装置(STRG)25と、表示器(MNTR)26と、入力器(MNSW)27とを有する。内部記憶装置25は、ROMまたはRAMによって提供可能である。端末制御装置24は、EEPROM10に記憶されているデータを内部記憶装置25に一時記録する。端末制御装置24は、内部記憶装置25に記憶されたデータを表示器26に表示する。入力器27は、作業者の操作を検出し、検出信号を端末制御装置24に入力する。この実施形態では、入力器27は、履歴表示を要求する操作を検出し、この要求を端末制御装置24に出力する。
【0029】
制御装置5は、電子制御装置(ECU:Electronic Control Unit)とも呼ばれる。制御装置5は、(a)if-then-else形式と呼ばれる複数の論理としてのアルゴリズム、または(b)機械学習によってチューニングされた学習済みモデル、例えばニューラルネットワークとしてのアルゴリズムによって提供される。
【0030】
制御装置5は、少なくともひとつのコンピュータを含む。制御装置5は、データ通信装置によってリンクされた複数のコンピュータを含む場合がある。コンピュータは、ハードウェアである少なくともひとつのプロセッサ(ハードウェアプロセッサ)を含む。ハードウェアプロセッサは、下記(i)、(ii)、または(iii)により提供することができる。
【0031】
(i)ハードウェアプロセッサは、少なくともひとつのメモリに格納されたプログラムを実行する少なくともひとつのプロセッサコアである場合がある。この場合、コンピュータは、少なくともひとつのメモリと、少なくともひとつのプロセッサコアとによって提供される。プロセッサコアは、CPU:Central Processing Unit、GPU:Graphics Processing Unit、RISC-CPUなどと呼ばれる。メモリは、記憶媒体とも呼ばれる。メモリは、プロセッサによって読み取り可能な「プログラムおよび/またはデータ」を非一時的に格納する非遷移的かつ実体的な記憶媒体である。記憶媒体は、半導体メモリ、磁気ディスク、または光学ディスクなどによって提供される。プログラムは、それ単体で、またはプログラムが格納された記憶媒体として流通する場合がある。
【0032】
(ii)ハードウェアプロセッサは、ハードウェア論理回路である場合がある。この場合、コンピュータは、プログラムされた多数の論理ユニット(ゲート回路)を含むデジタル回路によって提供される。デジタル回路は、ロジック回路アレイ、例えば、ASIC:Application-Specific Integrated Circuit、FPGA:Field Programmable Gate Array、PGA:Programmable Gate Array、CPLD:Complex Programmable Logic Deviceなどとも呼ばれる。デジタル回路は、プログラムおよび/またはデータを格納したメモリを備える場合がある。コンピュータは、アナログ回路によって提供される場合がある。コンピュータは、デジタル回路とアナログ回路との組み合わせによって提供される場合がある。
【0033】
(iii)ハードウェアプロセッサは、上記(i)と上記(ii)との組み合わせである場合がある。(i)と(ii)とは、異なるチップの上、または共通のチップの上に配置される。これらの場合、(ii)の部分は、アクセラレータとも呼ばれる。
【0034】
制御装置と信号源と制御対象物とは、多様な要素を提供する。それらの要素の少なくとも一部は、ブロック、モジュール、またはセクションと呼ぶことができる。さらに、制御システムに含まれる要素は、意図的な場合にのみ、機能的な手段と呼ばれる。
【0035】
この開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーを構成することによって提供された専用コンピュータにより、実現されてもよい。代替的に、この開示に記載の制御部及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。代替的に、この開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【0036】
<記憶されるデータ>
ROM8は、プログラム領域(PRGM)31を有する。プログラム領域31は、制御システムのためのプログラムを記憶する。プログラム領域31は、例えば、燃料噴射プログラム、および点火タイミングプログラムを記憶する。ROM8は、数値領域(VLDT)32を有する。数値領域32は、制御システムのための数値を記憶する。数値領域32は、例えば、内燃機関の負荷に対する燃料噴射量を規定するマップ、および内燃機関の回転数に対する点火時期の規定するマップを記憶する。
【0037】
ROM8が外部書き換えされる場合、例えば、プログラム領域31の一部である書換領域(REWR)33のデータが書き換えられる。ROM8が外部書き換えされる場合、例えば、数値領域32の一部である書換領域(REWR)34のデータが書き換えられる。
【0038】
ROM8は、検査データを格納するための領域を有する。検査データは、ROM8自身の記憶データの誤り検査に利用される。ROM8の記憶データに誤りがある場合、制御装置5の異常(内部エラー)として扱われる。「誤り検査」の機能は、ハードウェアにより、または、ソフトウェアにより実装することができる。この明細書における「誤り検査」の語は、広義に解釈されるべきである。「誤り検査」は、「検査対象である記憶領域」から所定の算出方式によって算出値を算出する。「誤り検査」は、算出値と、基準値とを比較し、記憶データの誤りを検出する。「誤り検査」は、「誤り検出符号」を利用して記憶データの誤りを検査する。この実施形態では、「誤り検出符号」として、チェックサムが利用される。「誤り検出符号」として、垂直パリティ、および/または水平パリティが利用されてもよい。「誤り検出符号」として、ハッシュ関数が利用されてもよい。「誤り検出符号」として、MD5(Message Digest Algorithm 5)などと呼ばれる暗号学的ハッシュ関数が利用されてもよい。「誤り検出符号」として、CRC(Cyclic Redundancy Check)と呼ばれる巡回冗長検査が利用されてもよい。
【0039】
この明細書における「チェックサム」の語は、広義に解釈されるべきである。この実施形態では、「チェックサム」は、「検査対象である記憶領域」の記憶データの総和の中のいくつかのバイトを算出値として算出する方式である。「チェックサム」は、上記総和を所定の定数で割った余り(余剰)を算出値とする方式でもよい。「チェックサム」は、上記総和を算出値とする方式でもよい。この実施形態では、「検査対象である記憶領域」は、ROM8のすべての記憶領域である。「検査対象である記憶領域」は、ROM8の中の一部の記憶領域でもよい。
【0040】
ROM8は、検査データとして、2つのデータを記憶している。検査データは、基準値としてのチェックサム値(SUM-CHK)を記憶するチェックサム領域35を含む。検査データは、差分値としてのサム調整値(SUM-ADJ)を記憶するサム調整値領域36を含む。チェックサム値は、初期値としての基準値である。チェックサム値は、例えば、初期モデルのROM8に記憶された全データのチェックサム値である。サム調整値は、算出値と基準値との差(サム調整値=算出値-基準値)に相当する。サム調整値として記憶されたデータは、「チェックサム」の対象でもあるから、算出値を変化させる。基準値と等しい算出値が算出されるように、サム調整値は設定されている。
【0041】
ROM8は、ソフトスイッチ領域(SFSW)37を有する。ソフトスイッチ領域37は、制御システムの挙動を切り替えるための数値を記憶する。ソフトスイッチ領域37は、内部エラースイッチ値(INT-E/D)を記憶する内部エラー領域38を有する。内部エラースイッチ値は、ROM8を含む制御装置5の検査の有効または無効を設定するための情報を含む。内部エラースイッチ値は、ROM8を含む制御装置5の検査それ自体を実行するか否か、すなわち有効または無効を選択するためのスイッチビットを含む。さらに、内部エラースイッチ値は、ROM8を含む制御装置5の異常(内部エラー)が検出された場合の対策処理の有効または無効を選択するためのスイッチビットを含む。ここで、「検査の有効または無効」の語は、検査の実行そのものを許容または阻害する場合と、検査の結果が異常である場合に実行される対策処理を許容または阻害する場合とを含む。
【0042】
内部エラー領域38は、ROM8の検査それ自体の有効/無効を設定する。内部エラー領域38に含まれる所定ビットの1/0は、例えば、検査そのものの有効/無効に対応付けられる。内部エラー領域38は、ROM8の記憶データに誤りが検出された場合に利用可能な対策処理の有効/無効を設定する。内部エラー領域38に含まれる所定ビットの1/0は、例えば、対策処理の有効/無効に対応付けられる。対策処理は、「起動の禁止/許可」、「警告灯の点灯/消灯」、および/または、「内燃機関の機能の無制限/制限」によって提供することができる。「内燃機関の機能の制限/無制限」は、例えば、「燃料噴射量の制限/無制限」、「点火進角の制限/無制限」、「回転数の制限/無制限」、「乗り物の速度の制限/無制限」によって提供される。この実施形態では、内部エラー領域38は、ROM8の誤りが検出された場合の警告灯16の点灯/消灯を設定する。
【0043】
EEPROM10は、複数の履歴データLOG(i=0~n)を記憶する履歴領域41を有する。iは、離散系における番号を示す。iは、整数である。例えば、(i)は現在のデータを示し、(i-1)は前のデータを示し、(i+1)は後のデータを示す。nは、履歴データの数の最大値である。ここでは、nは、市場での標準的なバージョンアップ回数より大きく設定されている。なお、履歴領域41は、所定個数の履歴データLOG(i)を記憶する。履歴データLOG(i)は、先入れ先出し方式によって記憶されてもよい。
【0044】
ひとつの履歴データLOG(i)は、サム調整値領域36に関する履歴データと、内部エラー領域38に関する履歴データとの両方を含む。以下の説明では、サム調整値領域36に関する履歴データは、サム履歴LOG(i)ADJと呼ばれる。内部エラー領域38に関する履歴データは、スイッチ履歴LOG(i)E/Dと呼ばれる。
【0045】
複数の履歴データLOG(1)~LOG(n)は、順に、蓄積的に記憶される。サム調整値領域36または内部エラー領域38のいずれか一方が変更されていることが判定されると、ひとつの履歴データLOG(i)が蓄積的に記録される。判定は、2つの照合を含む。ひとつの照合は、ROM8におけるサム調整値SUM-ADJと、EEPROM10における直前のサム履歴LOG(i-1)ADJとの照合によって実行される。ひとつの照合は、ROM8における内部エラースイッチ値INT-E/Dと、EEPROM10における直前のスイッチ履歴LOG(i-1)E/Dとの照合によって実行される。判定は、動力源2が起動される場合、または制御装置5がパワーオンリセットされる場合に実行される。
【0046】
図示のように履歴領域41が複数の履歴データLOG(i=0~n)を記憶する場合、最初の履歴データLOG(0)は、初期値である。履歴データLOG(0)は、例えば、工場出荷時におけるサム調整値SUM-ADJおよび内部エラースイッチ値INT-E/Dの両方が記録されている。
【0047】
正当であると不正であるとを問わず、ROM8の外部書き換えによってサム調整値領域36または内部エラー領域38が変更されることがある。制御装置5は、上記変更を検出すると、履歴データLOG(1)をEEPROM10に蓄積的に書き込む。蓄積的な記憶処理は、サム調整値領域36または内部エラー領域38のいずれか一方が変更されるたびに繰り返される。この繰り返しによって履歴データLOG(i=1~n)が順に追加される。
【0048】
診断端末装置21は、EEPROM10の履歴データLOG(i=0~n)を表示器26に表示する。図示の例では、表示器26に履歴領域41と同じ文字列42が表示されている。
【0049】
<初期設定処理>
図2は、制御装置5の製造段階における初期設定処理150を示す。初期設定処理150は、ROM8に工場出荷データを設定する処理を含む。図示された初期設定処理150は、EEPROM10に工場出荷データを設定する処理を含む。初期設定処理150は、外部機器20としての工場設備によって実行される。
【0050】
外部機器20は、ステップ151では、ROM8に工場出荷データを書き込む。工場出荷データは、いわゆる初期値である。外部機器20は、ステップ152では、プログラム領域31と、数値領域32とに初期値を書き込む。外部機器20は、ステップ153では、チェックサム領域35と、サム調整値領域36とに初期値を書き込む。外部機器20は、ステップ154では、内部エラー領域38に初期値を書き込む。
【0051】
外部機器20は、ステップ155では、CPU6を経由してEEPROM10に工場出荷データを書き込む。外部機器20は、ステップ156では、EEPROM10に初期値を書き込む。初期値は、サム履歴LOG(0)ADJと、スイッチ履歴LOG(0)E/Dとの両方を含む。
【0052】
初期設定処理150の後、制御装置5は、動力源2などと組み合わせられ、機器システム1として市場に供給される。制御装置5は、市場に供給された後、後述する複数の処理を実行することにより外部書換を検出するための装置を提供する。
【0053】
この実施形態では、ステップ155が外部機器20によって実行される。これに代えて、ステップ155は、後述のステップ186において、制御装置5によって実行されてもよい。この場合、EEPROM10に記録されるすべての履歴データは、自動的に蓄積される。
【0054】
<書き換え処理>
図3は、書き換え処理160を示す。書き換え処理160は、多くの場合、制御装置5を市場に出荷した後に実施される。書き換え処理160は、稀に、制御装置5を市場に出荷する前の段階において工場内で実施される場合がある。書き換え処理160は、正当な外部機器20、または不正な外部機器20によって実行される。
【0055】
外部機器20は、ステップ161では、ROM8に新たな書き換え値を書き込む。外部機器20は、ステップ162では、プログラム領域31と、数値領域32とに新たなデータを書き込む。外部機器20は、ステップ163では、サム調整値領域36に新たなデータを書き込む。ここでは、チェックサム領域35の値は変更されない。これにより、書換領域33、34のデータが書き換えられても、チェックサムに基づく検査によってROM8の異常が検出されることがない。不正な書き換えである場合、サム調整値領域36は、チェックサムに基づき検査機能を騙すために書き換えられるといえる。外部機器20は、ステップ164では、内部エラー領域38に新たなデータを書き込む。内部エラー領域38は、検査の有効または無効を設定するために書き換えられる。内部エラー領域38の書き換えのひとつの用途は、検査そのものの実行または非実行を設定することである。内部エラー領域38の書き換えの他のひとつの用途は、書換領域33、34を書き換えることに伴って生じる対策処理を無効化、または無力化することである。
【0056】
<検査処理>
図4は、制御装置5によって実行されるROM8の検査処理170を示す。制御装置5は、ステップ171では、ROM8のチェックタイミングが到来したか否かを判定する。チェックタイミングは、例えば、動力源2が起動されるとき、制御装置5がパワーオンリセットされるときなどである。チェックタイミングではない場合(NO)、以下の処理はスキップされる。チェックタイミングである場合(YES)、処理はステップ172へ進む。
【0057】
さらに、制御装置5は、ステップ171では、内部エラースイッチ値INT-E/Dによって検査処理170自体が許容されているか否かを判定する。内部エラースイッチ値INT-E/Dによって検査処理170それ自身が許容されている場合(YES)、処理は、ステップ172へ進む。内部エラースイッチ値INT-E/Dによって検査処理170それ自身が許容されている場合(NO)、以下の処理(ステップ172-177)はスキップされる。
【0058】
制御装置5は、ステップ172では、ROM8に対するチェックサムを計算する。制御装置5は、ROM8のすべての記憶領域から、設定されたチェックサム方式によって算出値SUMRを計算する。制御装置5は、ステップ173では、ROM8から、基準値としてのチェックサム値SUM-CHKを読み出す。
【0059】
制御装置5は、ステップ174では、算出値SUMRが、チェックサム値SUM-CHKと等しいか否かを判定する。算出値SUMRが、チェックサム値SUM-CHKと等しい場合(YES)、ROM8の検査結果は正常である。この場合、処理は、ステップ175へ進む。算出値SUMRが、チェックサム値SUM-CHKと等しくない場合(NO)、ROM8の検査結果は異常(内部エラー)である。この場合、処理は、ステップ176へ進む。ステップ174は、調整値を含むメモリの記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによってROM8が正常か異常かを判定するチェックサム判定部を提供する。
【0060】
制御装置5は、ステップ175では、プログラムまたは数値は、正常範囲であるか否かを判定する。プログラムまたは数値が正常範囲である場合(YES)、ROM8の検査結果は正常である。この場合、以下の処理はスキップされる。プログラムまたは数値が正常範囲ではない場合(NO)、ROM8の検査結果は異常(内部エラー)である。この場合、ステップ176へ進む。ステップ175は、プログラムおよび/または数値が、正常範囲にあるか否かによってROM8が正常か異常かを判定する内部エラー判定部を提供する。正常範囲は、機器システム1の正常な機能を維持することができる範囲として予め設定されている。例えば、正常範囲は、内燃機関の上限回転数を規定する。例えば、数値領域32が上限回転数を上回る場合、ステップ175における判定は、NOに分岐する。
【0061】
制御装置5は、ステップ176では、内部エラースイッチ値INT-E/Dを検査する。内部エラースイッチ値INT-E/Dによって所定の対策処理が許容されている場合(YES)、ステップ177へ進む。内部エラースイッチ値INT-E/Dによって所定の対策処理が許容されていない場合(NO)、以下の処理はスキップされる。この場合、ROM8の異常(内部エラー)が検出されているのに、対策処理が実行されない。ステップ176は、チェックサムによってROM8の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部を提供する。ステップ176は、内部エラー判定部によってROM8の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部を提供する。
【0062】
制御装置5は、ステップ177では、予め設定された対策処理を実行する。この実施形態では、ROM8の異常(内部エラー)が検出されていることを示す警告灯16が点灯される。これにより、利用者は機器システム1の異常を知ることができる。
【0063】
<履歴処理>
図5は、制御装置5によって実行される履歴処理180を示す。制御装置5は、ステップ181では、動力源2が起動されるか否かを判定する。この実施形態では、動力源2が起動されるたびに履歴処理が実行される。動力源2が起動されるとき、制御装置5はパワーオンリセットによって起動される。この実施形態では、履歴処理180によって提供される履歴記録器が起動されるたびに、後述の第1判定部および第2判定部による判定を実行するように構成されている。動力源2が内燃機関を含む場合、ステップ181の処理は、イグニッションスイッチがOFFからONに切り替えられたことを検出する処理によって提供される。動力源2が起動される場合、処理はステップ182へ進む。動力源2が起動されない場合、以下の処理はスキップされる。
【0064】
制御装置5は、ステップ182では、ROM8からサム調整値SUM-ADJと、内部エラースイッチ値INT-E/Dとを読み出す。制御装置5は、ステップ183では、EEPROM10から現在の履歴データLOG(i)を読み出す。現在の履歴データLOG(i)は、最後に履歴領域41に記憶されたデータである。履歴データLOG(i)は、サム履歴LOG(i)ADJと、スイッチ履歴LOG(i)E/Dとを含む。
【0065】
制御装置5は、ステップ184では、ROM8に記憶されているサム調整値SUM-ADJと、EEPROM10に記憶されている現在のサム履歴LOG(i)ADJとが等しいか否かを判定する。サム調整値SUM-ADJとサム履歴LOG(i)ADJとが等しい場合(YES)、処理は、ステップ185へ進む。サム調整値SUM-ADJとサム履歴LOG(i)ADJとが等しくない場合(NO)、処理は、ステップ186へ進む。ステップ184は、ROM8に記憶されている調整値と、最新の履歴(LOG(i))に含まれる履歴調整値とが等しいか否かを判定する第1判定部を提供する。
【0066】
制御装置5は、ステップ185では、ROM8に記憶されている内部エラースイッチ値INT-E/Dと、EEPROM10に記憶されている現在の履歴データLOG(i)E/Dとが等しいか否かを判定する。内部エラースイッチ値INT-E/Dと履歴データLOG(i)E/Dとが等しい場合(YES)、処理は、終了する。内部エラースイッチ値INT-E/Dと履歴データLOG(i)E/Dとが等しくない場合(NO)、処理は、ステップ186へ進む。ステップ185は、ROM8に記憶されているスイッチ値と、最新の履歴(LOG(i))に含まれる履歴スイッチ値とが等しいか否かを判定する第2判定部を提供する。
【0067】
この結果、制御装置5は、ステップ184またはステップ185のいずれか一方において否定的に判定された場合、ステップ186を実行する。制御装置5は、ステップ184およびステップ185の両方において肯定的に判定された場合、ステップ186を実行しない。制御装置5は、ステップ186では、ROM8に記憶されているサム調整値SUM-ADJと内部エラースイッチ値INT-E/Dとの両方を、最新の履歴データLOG(i+1)としてEEPROM10に書き込む。ステップ186は、第1判定部184または第2判定部185のいずれかにおいて否定的に判定された場合に、調整値およびスイッチ値を履歴として記録する記録部を提供する。
【0068】
<出力処理>
図6は、制御装置5と外部機器20とによって実行される出力処理190を示す。外部機器20は、ステップ191では、制御装置5と外部機器20とがコネクタ22によって接続されているか否かを判定する。通信可能な接続が確立されていない場合(NO)、以下の処理がスキップされる。通信可能な接続が確立されている場合(YES)、処理は、ステップ192に進む。
【0069】
制御装置5と外部機器20との接続が確立されている場合、制御装置5と外部機器20とは、多様な診断処理を実行する。診断処理は、機器システム1の状態を出力する多様な処理を含む。診断処理のひとつは、EEPROM10の履歴データLOG(i=0~n)を出力する処理である。
【0070】
外部機器20は、ステップ192では、利用者による要求操作を検出する。要求操作は、履歴データの出力を求める操作である。要求操作は、入力器27の操作によって入力される。要求操作がない場合(NO)、以下の処理がスキップされる。要求操作がある場合(YES)、処理は、ステップ193に進む。外部機器20は、ステップ193では、制御装置5へ要求信号RQを出力する。
【0071】
制御装置5は、ステップ194では、外部機器20から要求信号RQがあるか否かを判定する。要求信号RQがない場合(NO)、以下の処理はスキップされる。要求信号RQがある場合(YES)、処理は、ステップ195へ進む。制御装置5は、ステップ195では、EEPROM10から外部機器20へすべての履歴データLOG(i=0~n)を出力する。
【0072】
外部機器20は、ステップ196では、制御装置5から履歴データLOG(i=0~n)を受信する。受信される履歴データは、EEPROM10に記憶されている履歴データである。受信された履歴データは、外部機器20の内部記憶装置25に記憶される。外部機器20は、ステップ197では、内部記憶装置25に記憶された履歴データLOG(i=0~n)を表示器26に表示する。
【0073】
出力処理190の結果、作業者は、EEPROM10の履歴データから、正当な外部書き換えと、正当ではない外部書き換えとの両方を提示される。作業者は、正当な外部書き換えの正当履歴データを知ることができる。正当履歴データは、例えば、製造者から提供されている。または、正当履歴データは、作業者から製造者への求めに応じて提供される。正当履歴データは、正当な外部書き換えのすべてに関して、外部書き換えに伴って生成されたサム調整値SUM-ADJと内部エラースイッチ値INT-E/Dとを含む。したがって、作業者は、EEPROM10の履歴データと、正当履歴データとを対比することにより、正当ではない外部書き換えがあったことを知ることができる。
【0074】
外部機器20は、ステップ197において、自己診断を実施してもよい。この場合、外部機器20は、正当履歴データを内部記憶装置25に少なくとも一時的に記憶する。外部機器20は、EEPROM10から取得された履歴データLOG(i=0~n)のすべてが、正当履歴データに一致するか否かを判定する。EEPROM10から取得された履歴データLOG(i=0~n)が、正当履歴データにないデータを含む場合、その外部書き換えは、正当ではない可能性が高い。履歴データLOG(i=0~n)が、正当ではない履歴データを含む場合、外部機器20は、警告を発するように構成することができる。
【0075】
<正当な外部書き換え>
ROM8が外部書き換えされる場合、サム調整値SUM-ADJが書き換えられる。正当な外部書き換えとして、例えば、製造者によるバージョンアップを想定することができる。この場合、製造者は、書換領域33、34を書き換えるだけでなく、サム調整値領域36を書き換える。これにより、基準値であるチェックサム値SUM-CHKを維持したままで、ROM8の検査に起因する異常(内部エラー)の検出を回避することができる。製造者は、内部エラーを回避できるから、内部エラー領域38を書き換えることはない。製造者は、チェックサムによる検査そのものが実行されるように、内部エラースイッチ値INT-E/Dを設定する。製造者は、ROM8の異常が検出された場合には、予め定められた対策処理が実行されるように、内部エラースイッチ値INT-E/Dを設定する。
【0076】
サム調整値領域36または内部エラー領域38のいずれか一方が書き換えられると、次に動力源2を起動する際に、履歴データLOG(i)がEEPROM10に追加記憶される。この結果、正当な書き換えが、履歴として残される。
【0077】
<不正な外部書き換え>
不正な外部書き換えによってROM8が書き換えられる場合を想定することができる。不正な外部書き換えとして、例えば、製造者の許可を得ない改造行為を想定することができる。この場合、改造者は、書換領域33、34を書き換える。さらに、改造者は、チェックサムによる検査を騙すために、サム調整値SUM-ADJを書き換える。言い換えると、改造者は、ステップ174におけるチェックサム検査の判定結果がYESに分岐するようにサム調整値SUM-ADJを書き換える。また、周到な改造者は、チェックサムによる検査そのものを封じるために、内部エラースイッチ値INT-E/Dを書き換える。周到な改造者は、ステップ176における対策処理の要否を判定結果がNOに分岐するように内部エラースイッチ値INT-E/Dを書き換える。
【0078】
多くの場合、改造者は、乗り物の挙動を激しくするように書換領域33、34を書き換える。この場合、機器システム1を保護するために異常(内部エラー)が検出される場合がある。言い換えると、ステップ175における正常範囲の判定結果がNOに分岐する場合がある。この場合でも、周到な改造者は、内部エラースイッチ値INT-E/Dを書き換えているから、ステップ176における判定がNOに分岐する。
【0079】
したがって、不正な外部書き換えであっても、サム調整値SUM-ADJ、および/または内部エラースイッチ値INT-E/Dが書き換えられると、制御装置5は異常(内部エラー)を検出することができない。ただし、サム調整値SUM-ADJまたは内部エラースイッチ値INT-E/Dのいずれか一方が書き換えられると、次に動力源2を起動する際に、履歴データLOG(i)がEEPROM10に追加記憶される。この結果、不正な書き換えが、履歴として残される。
【0080】
<外部書き換えではない異常>
ROM8のデータは、デバイスの不安定、デバイスの寿命、または稀な放射線などに起因して、不規則に反転する場合がある。ROM8の任意のビットが反転すると、ROM8の検査(チェックサム)によって異常(内部エラー)が検出される。この場合、制御装置5は、内部エラースイッチ値INT-E/Dによって予め設定された対策処理を実行する。
【0081】
<メモリの書き換え履歴記録装置>
図7は、メモリの書き換え履歴記録装置のブロック図である。それぞれのブロックは、制御装置5のハードウェア資源、およびハードウェア資源を機能させるためのソフトウェア資源によって提供されている。
【0082】
メモリM1は、制御装置5のプログラムおよび/または数値を記憶している。メモリM1は、外部書き換えが可能であり、かつ不揮発性である。メモリM1は、ROM8によって提供されている。
【0083】
メモリM1は、検査器M2によって検査される。検査器M2は、メモリM1の記憶データを検査し、メモリM1の正常または異常を判定する。検査器M2は、「誤り検査」を実行する。検査器M2は、メモリM1の記憶データをチェックサムによって検査するチェックサム検査器である。検査器M2は、調整値を含むメモリM1の記憶データから計算されたチェックサム値と予め定められた基準値とが等しいか否かによってメモリM1が正常か異常かを判定するチェックサム判定部174を備える。検査器M2は、チェックサムによるメモリM1の検査の有効または無効をスイッチ値によって判定する内部スイッチ判定部171、176を備える。検査器M2は、チェックサムによるメモリM1の検査そのものを実行するか否かをスイッチ値によって判定する内部スイッチ判定部171を備える。検査器M2は、チェックサムによってメモリM1の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部176を備える。検査器M2は、プログラムおよび/または数値が、正常範囲にあるか否かによってメモリM1が正常か異常かを判定する内部エラー判定部175を備える。検査器M2は、内部エラー判定部によってメモリM1の異常が判定された場合に、スイッチ値によって対策処理の有効または無効を判定する内部スイッチ判定部176を備える。
【0084】
検査器M2によってメモリM1に異常(内部エラー)が検出されると、検査器M2は、対策処理を実行する。
【0085】
メモリM1は、検査器M2による異常との判定を阻止するように書き換えられる調整値(SUM-ADJ)を記憶するサム調整値領域36を有する。メモリM1は、検査器M2による検査の有効または無効を設定するスイッチ値(INT-E/D)を記憶する内部エラー領域38を有する。
【0086】
対策処理を回避する第1の方法は、検査器M2による検査を騙すことによって提供される。第1の方法のために、サム調整値領域36が利用される。サム調整値領域36が適切な調整値(サム調整値SUM-ADJ)に設定された場合、検査器M2は異常(内部エラー)を検出しない。言い換えると、サム調整値領域36は、検査器M2による検査を有効に機能させながら、その検査によって異常が検出されることを阻止するために利用することが可能である。よって、第1の方法は、検査器M2を正常に機能させながら、その検査を騙す処理であるといえる。
【0087】
対策処理を回避する第2の方法は、検査器M2による検査それ自体の有効または無効を設定することによって提供される。ここで、「検査の有効または無効」の語は、検査の実行そのものを阻害する場合と、検査の結果が異常である場合に実行される対策処理を阻害する場合とを含む。第2の方法のために、内部エラー領域38が利用される。内部エラー領域38が適切なスイッチ値(内部エラースイッチ値INT-E/D)に設定された場合、検査器M2による検査の有効または無効が設定される。
【0088】
第2の方法のひとつは、検査器M2による検査の実行そのものを阻害することである。この場合も、内部エラー領域38が利用される。内部エラー領域38が適切なスイッチ値(内部エラースイッチ値INT-E/D)に設定された場合、検査器M2は検査そのものを実行しない。
【0089】
第2の方法のひとつは、検査の結果に応答して起動される対策処理の実行だけを阻害することである。この場合も、内部エラー領域38が利用される。内部エラー領域38が適切なスイッチ値(内部エラースイッチ値INT-E/D)に設定された場合、検査器M2は異常(内部エラー)を検出しても、対策処理を実行しない。
【0090】
この実施形態では、第1の方法と、第2の方法との両方を監視するために、履歴記録器M3は、調整値と、スイッチ値との両方を蓄積的に記録する。この結果、履歴は、調整値とスイッチ値との両方を含んでいる。これにより、正当であるか不正であるかを問わずに、外部書き換えがあったことが記録される。調整値だけでなく、スイッチ値が記録されるから、正当な外部書き換え、および、不正な外部書き換えの両方を履歴として記録することができる。この結果、書き換え行為を効率的に発見可能なメモリの書き換え履歴記録装置が提供される。
【0091】
履歴記録器M3は、メモリM1に対する外部書き換えの履歴を記録する。履歴記録器M3は、メモリM1とは異なる不揮発性の他のメモリを含む。他のメモリは、EEPROM10によって提供されている。
【0092】
履歴記録器M3は、メモリM1が外部書き換えされると調整値およびスイッチ値の両方を履歴として記録するよう構成されている。この場合、履歴記録器M3は、第1判定部184と、第2判定部185とを備える。第1判定部184は、メモリM1に記憶されている調整値と、最新の履歴(LOG(i))に含まれる履歴調整値とが等しいか否かを判定する。第2判定部185は、メモリM1に記憶されているスイッチ値と、最新の履歴(LOG(i))に含まれる履歴スイッチ値とが等しいか否かを判定する。履歴記録器M3は、第1判定部または第2判定部のいずれかにおいて否定的に判定された場合に、調整値およびスイッチ値を履歴として記録する記録部186を備える。履歴記録器M3は、履歴記録器M3が起動されるたびに第1判定部184および第2判定部185による判定を実行するように構成されている。起動は、具体的には、制御装置5の電源スイッチの投入である。
【0093】
メモリの書き換え履歴記録装置は、出力器M4を備える場合がある。出力器M4は、履歴記録器M3に記録された履歴データを出力する。履歴は、調整値およびスイッチ値の両方を含むから、それらの値によって、正当な外部書き換えと、不正な外部書き換えとが示される。制御装置5は、メモリM1、検査器M2、および履歴記録器M3を備えることができる。ひとつの実施形態では、出力器M4は、制御装置5とデータ通信可能に接続可能な外部機器20によって提供される。
【0094】
以上に述べた実施形態によると、外部書き換えを可能とする特定のデータが履歴データとして蓄積され出力される。よって、外部書き換えの履歴が提供される。この結果、外部書き換えを効率的に発見可能なメモリの書き換え履歴記録装置を提供することができる。
【0095】
外部書き換えを可能とする特定のデータは、いわゆるチェックサムによる検査を騙すためのサム調整値SUM-ADJを含む。さらに、外部書き換えを可能とする特定のデータは、検査の有効/無効を設定するための内部エラースイッチ値INT-E/Dを含む。これら2つのデータを両方とも含むことにより、外部書き換えを検出する精度が高められる。
【0096】
外部書き換え可能な記憶領域は、正当であるか、不正であるかを問わず、書き換えられることがある。この場合、記憶領域のユニークなハッシュコードを生成し、履歴として記録することが考えられる。しかし、ハッシュコードを蓄積するための大きいメモリ容量が必要である。また、ハードウェアによるハッシュコード生成器、またはソフトウェアによるハッシュコード生成器を搭載する必要がある。これに対し、この実施形態におけるサム調整値SUM-ADJのデータ量は、ハッシュコードのデータ量より格段に少ない。このため、この実施形態によると、記憶領域の書き換えを効率的に発見可能なメモリの書き換え履歴記録装置を提供することができる。しかも、チェックサムによる記憶領域の検査機能は、小さい規模のハードウェアまたはソフトウェアによって提供することができる。このため、記憶領域の書き換えを小さい規模の構成によって発見可能なメモリの書き換え履歴記録装置を提供することができる。
【0097】
他の実施形態
この明細書および図面等における開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。例えば、開示は、実施形態において示された部品および/または要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示は、実施形態に追加可能な追加的な部分をもつことができる。開示は、実施形態の部品および/または要素が省略されたものを包含する。開示は、ひとつの実施形態と他の実施形態との間における部品および/または要素の置き換え、または組み合わせを包含する。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、請求の範囲の記載によって示され、さらに請求の範囲の記載と均等の意味及び範囲内での全ての変更を含むものと解されるべきである。
【0098】
明細書および図面等における開示は、請求の範囲の記載によって限定されない。明細書および図面等における開示は、請求の範囲に記載された技術的思想を包含し、さらに請求の範囲に記載された技術的思想より多様で広範な技術的思想に及んでいる。よって、請求の範囲の記載に拘束されることなく、明細書および図面等の開示から、多様な技術的思想を抽出することができる。
【0099】
上記実施形態では、履歴処理180および履歴記録器M3は、EEPROM10に履歴を記録する。これに代えて、履歴処理180および履歴記録器M3は、無線によって通信可能に接続されたサーバに履歴を記録してもよい。また、外部機器20は、無線によって通信可能に接続されたサーバによって提供されてもよい。この場合、複数の制御装置5における外部書き換えを、サーバにおいて集中的に監視し、管理することができる。

図1
図2
図3
図4
図5
図6
図7