(57)【特許請求の範囲】
【請求項１】
一つのデータが夫々二つの記憶領域にそのまま若しくは加工されて記憶された記憶媒体において、記憶された前記各データを修復する装置であって、
一方の前記記憶領域には、前記一つのデータの正論理値と共に、所定の正チェックコードと、前記正論理値と前記正チェックコードとの加算値に更に加算した結果が零になるような正チェックサムとが記憶され、
他方の前記記憶領域には、前記一つのデータの負論理値と共に、前記正チェックコードの論理を反転させたミラーチェックコードと、前記負論理値と前記ミラーチェックコードとの加算値に更に加算した結果が零になるようなミラーチェックサムとが記憶されており、
前記二つの記憶領域に記憶されている前記各論理値、前記各チェックコード、及び前記各チェックサムが全て正常であるか否かを判断するデータ監視手段と、
前記データ監視手段にて全て正常ではないと判断された場合に、正常と判断されなかった記憶領域に記憶されている前記いずれかの論理値、前記いずれかのチェックコード、及び前記いずれかのチェックサムのうち、正常ではないもののみを、他の正常な記憶内容に基づいて書き換えるデータ修復手段と
を備えていることを特徴とするデータ修復装置。
【請求項２】
前記データ監視手段は、
前記正チェックコード及び前記ミラーチェックコードが夫々正常であるか否かの判定を外部の記憶装置に予め格納されている前記正チェックコード及び前記ミラーチェックコードと夫々一致するか否かを判定することにより行うコード判定手段と、
前記正論理値及び前記負論理値が共に正常であるか否かの判定を前記負論理値の論理を反転した負論理反転データと前記正論理値が一致するか否かを判定することにより行う論理値判定手段と、
前記正論理値と前記正チェックコードと前記正チェックサムとを加算した総和が零になるか否かの判定及び前記負論理値と前記ミラーチェックコードと前記ミラーチェックサムとを加算した総和が零になるか否かの判定を行うサム判定手段と
を備えると共に、前記いずれかの記憶領域において、前記サム判定手段にて零であると判定されてしかも前記コード判定手段にて正常であると判定されたときは、当該記憶領域は正常であるものと判定し、
前記データ修復手段は、
前記コード判定手段により前記各チェックコードがいずれも正常であると判定され、且つ前記論理値判定手段により前記各論理値が共に正常であると判定された場合であって、前記サム判定手段にて前記各総和のいずれか一方又は両方が零にならないと異常判定されたときに、該異常判定された記憶領域に記憶された前記いずれかのチェックサムを、当該記憶領域に記憶された前記いずれかのチェックコード及び前記いずれかの論理値に基づいて書き換えるチェックサム修復手段と、
前記データ監視手段にていずれか一方の前記記憶領域に記憶された内容が正常と判断されて他方の前記記憶領域に記憶された内容が正常と判断されなかった際における、該正常と判断されなかった記憶領域について、前記コード判定手段の判定結果が正常ではなかった場合は、当該記憶領域における前記いずれかのチェックコードを前記外部の記憶装置に格納されている内容に基づいて書き換え、前記論理値判定手段の判定結果が正常ではなかった場合は、当該記憶領域における前記いずれかの論理値を、前記データ監視手段にて正常と判断された記憶領域に記憶されている内容に基づいて書き換え、前記サム判定手段の判定結果が正常ではなかった場合は、当該記憶領域における前記いずれかのチェックサムを、当該記憶領域に記憶された前記いずれかのチェックコード及び前記いずれかの論理値に基づいて書き換える記憶領域修復手段と
を備えたことを特徴とする請求項１記載のデータ修復装置。
【請求項３】
一つのデータが夫々少なくとも３つ以上の記憶領域にそのまま若しくは加工されて記憶された記憶媒体において、記憶された前記各データを修復する装置であって、
前記各記憶領域に記憶された前記各データの多数決を採って、最も多いデータを正常なデータと判定すると共にそれ以外のデータを誤データと判定することにより、前記各記憶領域に記憶された前記各データが全て正常であるか否かを判断するデータ監視手段と、
前記データ監視手段による前記判断の結果、前記各データが全て正常と判断されなかった場合に、前記誤データが記憶されていると判定された誤データ記憶領域に対し、該誤データ記憶領域に記憶されている前記誤データを、前記多数決の結果最も多いデータであった前記正常なデータに基づいて書き換えるデータ修復手段と、
を備えていることを特徴とするデータ修復装置。
【請求項４】
前記記憶媒体は、ＥＥＰＲＯＭであることを特徴とする請求項１〜３いずれかに記載のデータ修復装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶媒体のデータ修復装置に関し、特に一つのデータを複数の記憶領域に夫々記憶させる記憶媒体において、記憶された各データを修復するデータ修復装置に関する。
【０００２】
【従来の技術】
従来より、各種データを記憶し、電源の有無に拘わらずその内容を保持するための記憶媒体として、例えばＥＰＲＯＭ（Erasable Programmable Read Only Memory）やＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）等の各種不揮発性記憶媒体が知られている。
【０００３】
特に、ＥＥＰＲＯＭは、電源が遮断されても記憶内容が保持されるのに加え、その記憶内容を電気的に容易に書き換え可能であることから、様々な分野で多用されており、例えば自動車においては、キーレスエントリシステムにおいて携帯型送信機から送信されるデータ（固有の暗証コードなど）と照合するための照合用データを記憶したり、或いは自動車の各部の機能を自己診断する所謂ダイアグノーシス機能において故障内容等を記憶するなどの種々の用途で使用されている。
【０００４】
一般に、ＥＥＰＲＯＭにおいては、各メモリセル（ＥＥＰＲＯＭセル）のデータ保持時間のばらつきやノイズの影響等により、使用中において、あるメモリセルの記憶内容が消去されてしまったり、誤ったデータが書き込まれてしまったりする（データ化け）おそれがある。また、メモリセル自体の劣化によって、記憶内容が変わってしまったり、或いはデータの読み出し・書き込みが共に不可能になってしまうおそれもある。
【０００５】
このため、従来より、任意のビット数のデータをＥＥＰＲＯＭの所定の記憶領域（データのビット数に応じたメモリセルの集合体）に記憶する際、例えば、同一データを複数の記憶領域に記憶させ、データ読み出しの際はその複数の記憶領域に記憶されたデータを全て読み出して多数決判定を行い、最も多いデータを正規のデータとして判定する、所謂多数決方式が用いられている。
【０００６】
このような多数決方式によれば、例えば同一データを三つの記憶領域に記憶させ、そのうち一つの記憶領域においてデータ消去やデータ化けが生じてしまったとしても、残り二つの記憶領域のデータが正常である限り、常に正規のデータを読み出すことができる。
【０００７】
また例えば、正規のデータと所定のチェックコード、及びその両者の加算値に更に加算することによりその総和が零となるようなチェックサムを、まとめて一つの記憶領域に記憶すると共に、正規のデータの各ビット値を論理反転させたデータ（ミラーデータ）とチェックコードの各ビット値を論理反転させたミラーチェックコード、及びその両者の加算値に更に加算することによりその総和が零となるようなミラーチェックサムを、まとめて別の記憶領域に記憶しておき、データ読み出しの際に、各記憶領域において各データと各コードと各チェックサムとを加算した結果が零となるか否かを判断し、零となる場合にその記憶領域のデータが正常であると判断する、所謂チェックサム方式も用いられている。
【０００８】
このようなチェックサム方式によっても、いずれか一方の記憶領域においてデータ消去やデータ化けが生じてしまったとしても、他方の記憶領域のデータが正常である限り、常に正規のデータを読み出すことができる。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記のような多数決方式やチェックサム方式などの方法では、いずれか一つの記憶領域のデータがデータ化け等で異常状態にあっても他の記憶領域に記憶されている正常なデータに基づいて常に正規のデータを読み出すことができるものの、更に他の記憶領域のデータまで異常になってしまうと、その後は正規のデータを読み出すことができなくなってしまうという問題がある。
【００１０】
即ち、上記の多数決方式（例えば同一データを三つの記憶領域に記憶させる場合）において、三つの記憶領域のうち二つの記憶領域に記憶されたデータがいずれも消去・データ化け等により異常となった場合、多数決判断ができなくなって、正規のデータが取得できないことになる。また、上記のチェックサム方式において二つの記憶領域の記憶内容が共に異常になってしまった場合も同様であり、やはり正規のデータが取得できなくなってしまう。
【００１１】
本発明は上記課題に鑑みなされたものであり、一つのデータを複数の記憶領域に記憶させる記憶媒体において、各記憶領域に記憶されたデータに基づいて常に正規のデータを取得できるようにすることを目的とする。
【００１２】
【課題を解決するための手段及び発明の効果】
上記課題を解決するためになされた請求項１記載のデータ修復装置は、一つのデータが夫々二つの記憶領域にそのまま若しくは加工されて記憶された記憶媒体において、記憶された各データを修復するためのものである。
二つの記憶領域のうち、一方の記憶領域には、一つのデータの正論理値と共に、所定の正チェックコードと、正論理値と正チェックコードとの加算値に更に加算した結果が零になるような正チェックサムとが記憶される。また、他方の記憶領域には、一つのデータの負論理値と共に、正チェックコードの論理を反転させたミラーチェックコードと、負論理値とミラーチェックコードとの加算値に更に加算した結果が零になるようなミラーチェックサムとが記憶される。
即ち、従来技術で述べたチェックサム方式と同様の同一データ記憶方法であり、通常のデータ取得の際は、そのチェックサム方式により正規データを取得できる。尚、ここでいう正論理値とは、記憶領域に記憶すべき一つのデータそのものであり、負論理値はその正論理値の論理を反転させたものである。具体的には、例えば一つのデータが２進データの（１０１１）であるとき、負論理値は（０１００）である。また、「加算した結果が零」とは、必ずしも加算結果の全ビット値が零になることをいうのではなく、例えば加算により桁上がりが生じた場合はその桁上がり分のビット値（例えば最上位ビット）を除いたビット値が全て零になれば加算結果が零であるとみなすなど、加算値と被加算値の各々のビット数などに応じて、加算結果の全ビット値のうちどこまでを、零であるか否か判断するための有効ビット値にするか決めればよい。
【００１３】
そして、本発明のデータ修復装置では、まずデータ監視手段が、二つの記憶領域に記憶されている各論理値、各チェックコード、及び各チェックサムが全て正常であるか否かを判断する。
【００１４】
データ監視手段によって全て正常ではないと判断された場合は、データ修復手段が、正常と判断されなかった記憶領域に記憶されているいずれかの論理値、いずれかのチェックコード、及びいずれかのチェックサムのうち、正常ではないもののみを、他の正常な記憶内容に基づいて書き換える。
【００１５】
つまり、従来のチェックサム方式では２つの記憶領域のうち正常な方（加算結果が零となる記憶領域）から正規のデータを取得するのみで、正常ではない記憶領域があってもそのまま放置されていたのに対し、本発明のデータ修復装置では、記憶領域に記憶された内容（各論理値、各チェックコード、及び各チェックサム）が全て正常か否かをデータ監視手段にて判断すると共に、正常と判断されなかった記憶領域があった場合は、その記憶内容のうち正常ではないもののみを、他の正常な記憶内容（例えば、正常と判断されなかった記憶領域の記憶内容のうち正常なもの、或いは、正常と判断された記憶領域の記憶内容など）に基づいて修復（書き換え）するのである。
【００１６】
このため、本発明のデータ修復装置によれば、ある記憶領域においてデータ化け等の異常が生じても、他の正常な記憶内容に基づいてその異常が修復されるため、正常ではない記憶内容がそのまま放置されてしかも正常ではない記憶領域が増えることにより正規のデータが取得できなくなってしまうおそれはなく、各記憶領域に記憶されたデータに基づいて常に正規のデータを取得することができる。
【００１７】
ここで、データ監視手段およびデータ修復手段は、より具体的には、例えば請求項２に記載したように構成することができる。
【００２０】
即ち、請求項２記載のデータ修復装置は、データ監視手段がコード判定手段、論理値判定手段、及びサム判定手段を備えており、コード判定手段は、正チェックコード及びミラーチェックコードが夫々正常であるか否かの判定を、外部の記憶装置に予め格納されている正チェックコード及びミラーチェックコードと夫々一致するか否かを判定することにより行い、論理値判定手段は、正論理値及び負論理値が共に正常であるか否かの判定を、負論理値の論理を反転した負論理反転データと正論理値が一致するか否かを判定することにより行い、サム判定手段は、正論理値と正チェックコードと正チェックサムとを加算した総和が零になるか否かの判定及び負論理値とミラーチェックコードとミラーチェックサムとを加算した総和が零になるか否かの判定を行う。
【００２１】
また、データ監視手段では、二つの記憶領域のうちいずれかにおいて、サム判定手段にて零であると判定されてしかもコード判定手段にて正常であると判定されたときは、当該記憶領域は正常であるものと判断する。
そして、データ修復手段は、チェックサム修復手段と記憶領域修復手段とを備えている。チェックサム修復手段は、コード判定手段により各チェックコードがいずれも正常であると判定され、且つ論理値判定手段により各論理値が共に正常であると判定された場合であって、サム判定手段にて各総和のいずれか一方又は両方が零にならないと異常判定されたときに、該異常判定された記憶領域に記憶されたいずれかのチェックサムを、当該記憶領域に記憶されたいずれかのチェックコード及びいずれかの論理値に基づいて書き換える。
【００２２】
また、記憶領域修復手段は、データ監視手段にていずれか一方の記憶領域に記憶された内容が正常と判断されて他方の記憶領域に記憶された内容が正常と判断されなかった際における、該正常と判断されなかった記憶領域について、コード判定手段の判定結果が正常ではなかった場合は、当該記憶領域におけるいずれかのチェックコードを外部の記憶装置に格納されている内容（予め格納されている各チェックコード）に基づいて書き換え、論理値判定手段の判定結果が正常ではなかった場合は、当該記憶領域におけるいずれかの論理値を、データ監視手段にて正常と判断された記憶領域に記憶されている内容に基づいて書き換え、サム判定手段の判定結果が正常ではなかった場合は、当該記憶領域におけるいずれかのチェックサムを、当該記憶領域に記憶されたいずれかのチェックコード及びいずれかの論理値に基づいて書き換える。
【００２３】
つまり、例えば正論理値と正チェックコードとがいずれも正常であるときは、これらの正論理値及び正チェックコードに基づいて正チェックサムを修復でき、また例えば二つの記憶領域のうち正論理値が記憶された記憶領域（正領域）が正常であると判定され、負論理値が記憶された記憶領域（負領域）が正常と判定されなかった場合は、その正領域に記憶された正論理値や外部の記憶装置に予め記憶されている正チェックコードに基づいて、負領域の内容を修復することができる。負論理値とミラーチェックコードとがいずれも正常である場合も同様に、これらの負論理値及びミラーチェックコードに基づいてミラーチェックサムを修復できるし、負領域が正常であって正領域が正常ではないと判定された場合についても同様であり、負領域に記憶された内容や外部の記憶装置に記憶されているミラーチェックコードに基づいて正領域の内容を修復することができる。
【００２４】
従って、請求項２記載のデータ修復装置によれば、チェックサム方式によりデータの取得を行うようにされている場合において、いずれか一方の記憶領域のデータが異常になっても、その異常なデータを他方の記憶領域に記憶された正常なデータに基づいて修復できるため、二つの記憶領域のいずれか一方が正常である限り、異常データが記憶されている記憶領域のデータを確実に修復でき、常に正規のデータを取得することができる。また、二つの記憶領域がいずれも正常と判定されない場合でも、各論理値及び各チェックコードが正常（即ち正チェックサム及びミラーチェックサムのみが異常）であれば、その正常な各論理値及び各チェックコードに基づいて、二つの記憶領域を共に正常に修復することができる。
【００２５】
一方、一つのデータが少なくとも３つ以上の記憶領域に記憶され、従来技術で述べた多数決方式によって正規データを取得できるようにされた記憶媒体に対して、各記憶領域の記憶内容を修復するためには、例えば請求項３記載のデータ修復装置を用いることができる。
【００２６】
即ち、請求項３記載のデータ修復装置は、一つのデータが夫々少なくとも３つ以上の記憶領域にそのまま若しくは加工されて記憶された記憶媒体において、記憶された前記各データを修復するためのものであり、データ監視手段とデータ修復手段とを備えている。
データ監視手段は、各記憶領域に記憶された各データの多数決を採って、最も多いデータを正常なデータと判定すると共にそれ以外のデータを誤データと判定することにより、各記憶領域に記憶された各データが全て正常であるか否かを判断する
【００２７】
そして、データ修復手段が、データ監視手段による多数決判定の結果、各データが全て正常と判断されなかった場合に、誤データが記憶されていると判定された誤データ記憶領域に対し、その誤データ記憶領域に記憶されている誤データを、多数決の結果最も多いデータであった正常なデータに基づいて書き換える。
そのため、例えば一つのデータを５つの記憶領域に記憶させた場合に、そのうち２つの記憶領域が誤データ記憶領域になったとしても、残り３つの記憶領域のデータが正常である限り、データ監視手段による多数決判定によって、その残った３つの記憶領域のデータが正常なデータであると判定されることになる。そして、データ修復手段が、この正常なデータに基づき、２つの誤データ記憶領域に記憶された各誤データを正常なデータに修復する。
【００２８】
従って、請求項３記載のデータ修復装置によれば、多数決方式によりデータの取得を行うようにされている場合において、ある記憶領域のデータがデータ化け等で誤データになったとしても、データ監視手段による多数決判定により、その誤データが記憶された誤データ記憶領域及び正常なデータが記憶された記憶領域を共に特定でき、しかも誤データ記憶領域の誤データは、多数決の結果最も多いデータである正常なデータに基づいて修復されるため、データ監視手段による多数決判定が可能である限り確実に誤データを修復できる。これにより、各記憶領域に記憶されたデータに基づいて、常に正規のデータを取得することができる。
【００２９】
尚、ここでいう多数決では、記憶されている各データの値をそのままみて判定するのではなく、各データが実質的に同じデータであれば、同じであるものとみなす。つまり、例えば、２進データ（１０１１）を複数の記憶領域に記憶する場合において、全ての記憶領域にそのまま（１０１１）と記憶せずにいくつかの記憶領域にはその論理を反転したデータ（０１００）を記憶するように予め設定されている場合、多数決の際は、データそのままの値である（１０１１）とその反転データである（０１００）とは、互いに論理が反転しているだけであって実質的に同じデータであるとみなすのである。
【００３０】
ところで、データを記憶する記憶媒体としては、周知のＲＯＭやＲＡＭなど、その種類は多種多様であるが、従来技術で述べたように、ＥＥＰＲＯＭは、電源が遮断されても記憶状態を保持し続けると共に電気的に書き換えが可能なことから、書換可能な不揮発性記憶媒体として広く使用されている。しかしその反面、ＥＥＰＲＯＭは劣化等によって記憶したデータが変化或いは消去されるおそれや、ノイズ等の影響によってもデータが変化するおそれがある。
【００３１】
そこで、請求項１〜３いずれかのデータ修復装置は、請求項４に記載したように、記憶媒体がＥＥＰＲＯＭである場合に適用するとよい。このようにすれば、ノイズなどの各種要因によって複数の記憶領域のうちのある記憶領域のデータが誤データになったとしても、データ修復装置によって誤データを正常なデータに確実に修復することができ、ＥＥＰＲＯＭの信頼性をより向上させることが可能となる。
【００３２】
【発明の実施の形態】
以下に、本発明の好適な実施形態を図面に基づいて説明する。
［第１実施形態］
図１は、本発明が適用された第１実施形態のキーレスエントリシステムの概略構成を示すブロック図である。
【００３３】
本発明のキーレスエントリシステムは、遠隔操作によって自動車のドアロックを開閉するためのものであり、図１に示すように、主として携帯型送信機１０と、自動車のリヤウインドウ等に設置されたアンテナ１１と、受信機１２と、運転席のイグニションキーシリンダに設けられたキー抜き検出スイッチ１３と、ドアロック制御装置１４と、ＥＥＰＲＯＭ１５と、車載のバッテリ１６と、バッテリ１６のバッテリ電圧ＶB を所定の電圧に変換してドアロック制御装置１４やＥＥＰＲＯＭ１５に供給するための定電圧回路１７と、ドアロック開閉アクチュエータ１８とから構成されている。
【００３４】
受信機１２は、携帯型送信機１０から送信される送信データをアンテナ１１を介して受信・復調し、復調した送信データをドアロック制御装置１４へ出力する。尚、携帯型送信機１０は、遠隔地から自動車のドアロックを開閉するために、例えば図示しないイグニションスイッチをユーザが操作するためのマスターキーに内蔵されているものである。また、携帯型送信機１０からの送信データには、ドアのロック又はアンロックいずれかを選択するための機能選択データはもちろん、その自動車固有の暗証コードに加え、送信するごとに所定の規則に従って変化（例えば送信ごとに一つずつインクリメント）するデータ（更新データ）も送信される。
【００３５】
ＥＥＰＲＯＭ１５は、各種データを記憶するために多数の半導体メモリセルにて構成されたメモリ部２０と、データを読み書きする際にメモリ部２０におけるアドレスの指定等を行うための入出力制御部１５ａとを備えている。メモリ部２０には、携帯型送信機１０から送信される固有の暗証コードと同様の暗証コードが予め格納されていると共に、最新の更新データ（つまり携帯型送信機１０を最後に操作したときに送信された更新データ）も格納されている。そして、これらの暗証コード及び更新データは、いずれもメモリ部２０の中に一つだけ記憶されているのではなく、同一のデータが三つのエリアに記憶されている。即ち、図１に示すように、メモリ部２０内において、データ化け等の影響を防止するために、一つのデータを三つのエリア（エリア１，エリア２，エリア３）に記憶することにより、各同一データ記憶エリア２０ａ，２０ｂ，２０ｃ・・・ が構成されている。そして、各同一データ記憶エリア２０ａ，２０ｂ，２０ｃ・・・ からのデータ読み込み時には、それぞれ三つのエリアのデータについて多数決方式による判定を行い、最も多いデータを正常なデータであると判定して、そのデータを読み込むようにしている。
【００３６】
尚、本実施形態のキーレスエントリシステムでは、同一データ記憶エリア２０ａに更新データを、同一データ記憶エリア２０ｂに暗証コードを記憶している。また、他の同一データ記憶エリア２０ｃ・・・ にも、必要に応じて各種データを記憶できるのはもちろん、ＥＥＰＲＯＭ１５をキーレスエントリシステム以外の他のシステムでも共用する場合は、そのシステムにおける必要なデータが記憶される。
【００３７】
そして、携帯型送信機１０を操作するごとに、同一データ記憶エリア２０ａに既に記憶されている前回送信時の更新データが、新たに送信されてきた更新データに書き換えられる。暗証コードについても、同一データ記憶エリア２０ｂのエリア１，エリア２，エリア３に同一の暗証コードが記憶されているが、暗証コードは自動車固有のものであって通常は変更されることがないため、そのまま保持され続ける。尚、上記のようなメモリ部２０内のデータの書き換えは、ドアロック制御装置１４内のＣＰＵ１４ａにより制御され入出力制御部１５ａを介して実行される。
【００３８】
ドアロック制御装置１４は、ＣＰＵ１４ａ、ＲＯＭ１４ｂ、ＲＡＭ１４ｃ等を備えたマイクロコンピュータを主体として構成されたものであり、受信機１２からの送信データに含まれる機能選択データに基づいてドアロック開閉アクチュエータを駆動すると共に、ＥＥＰＲＯＭ１５との間でデータの読み出し及び書き込みを行うものである。そして、後述するように、ユーザがイグニションキーシリンダからマスターキーを抜くごとに、ＥＥＰＲＯＭ１５のメモリ部２０に記憶された各種データの修復処理も実行する。これらの各処理は、ＣＰＵ１４ａにて実行され、その処理プログラムはいずれもＲＯＭ１４ｂに格納されている。
【００３９】
本実施形態では、メモリ部２０の各同一データ記憶エリア２０ａ，２０ｂに記憶されたデータ（暗証コード、更新データ）が、ドアロック制御装置１４内のＲＡＭ１４ｃに書き込まれており、ＣＰＵ１４ａは、上記各種処理の実行の際にメモリ部２０内の各種データを読み込む必要があるときは、メモリ部２０から直接読み込むのではなく、このＲＡＭ１４ｃから読み込むようにしている。
【００４０】
メモリ部２０からＲＡＭ１４ｃへのデータ書き込みタイミングは、ドアロック制御装置１４及びＥＥＰＲＯＭ１５に初めて電源が投入されたときにメモリ部２０に記憶されているデータをとりあえずＲＡＭ１４ｃに書き込み、その後は、メモリ部２０に記憶されているデータが変更されたとき（例えば携帯型送信機１０から送信データが送信されて同一データ記憶エリア２０ａ内の更新データが変わったとき）に、既述の通り、その変更（更新データ）に応じてＲＡＭ１４ｃの内容も書き換える。
【００４１】
また、メモリ部２０内のデータが長時間変更されなくても、例えばデータ化け等によってＲＡＭ１４ｃのデータが変わってしまうおそれもあるため、ＲＡＭ１４ｃをリフレッシュする目的で、所定時間経過するごとにメモリ部２０内のデータをＲＡＭ１４ｃに書き込むようにしている。更に、バッテリ電圧ＶB の遮断等によってドアロック制御装置１４の動作が停止し、ＲＡＭ１４ｃの記憶内容が全て消去されてしまった場合も、再度電源を投入してその動作を開始したときに、メモリ部２０内のデータをＲＡＭ１４ｃに書き込むようにしている。尚、本実施形態では、後述する多数決データ修復処理の実行時にもメモリ部２０からＲＡＭ１４ｃへのデータ書き込みが行われ、後述する第２実施形態におけるチェックサムデータ修復処理の実行時も同様である。
【００４２】
そして、ＥＥＰＲＯＭ１５のメモリ部２０からＲＡＭ１４ｃへのデータ書き込みの際、各同一データ記憶エリア２０ａ，２０ｂ，２０ｃ・・・ における三つのエリアのうちどのエリアのデータに基づいてＲＡＭ１４ｃへ書き込むかは、既述の通り多数決方式により決定する。この多数決方式によるデータ判定もＣＰＵ１４ａにて実行される。
【００４３】
つまり、ドアロック制御装置１４が動作している限り、ＲＡＭ１４ｃには常にメモリ部２０内にある最新のデータが記憶されるようにするのである。そして、ドアロック制御装置１４では、このＲＡＭ１４ｃに記憶されているデータに基づいてドアロック開閉等の各種制御を行う。具体的には、ユーザが携帯型送信機１０から送信データを送信したとき、送信データ中の暗証コードがＲＡＭ１４ｃ内の暗証コード（ひいては同一データ記憶エリア２０ｂに格納されている暗証コード）と一致するか否かを判断すると共に、送信データ中の更新データとＲＡＭ１４ｃ内に記憶された前回送信時の更新データ（ひいては同一データ記憶エリア２０ａに格納されている更新データ）とを比較して両者が予め定められた所定の規則を満たしているか否かを判断し、各判断の結果、正規の携帯型送信機１０から送信されたデータであると判断された場合に、送信データ中の機能選択データに基づいてドアロック開閉アクチュエータ１８へ駆動信号を出力する。
【００４４】
ドアロック開閉アクチュエータ１８は、図示しないドアロックモータやその駆動回路等を備えたもので、自動車の各ドアに設置され、ドアロック制御装置１４から出力されるロック又はアンロックの各駆動信号に基づいて駆動制御される。ところで、ドアロック制御装置１４においては、上記のように、ＣＰＵ１４ａはＲＡＭ１４ｃ内の各種データを必要に応じて取り込み、ＲＡＭ１４ｃ内のデータそのものも、メモリ部２０の内容に合わせて変更或いは定期的にリフレッシュするようにしているため、メモリ部２０内のデータが正常である限り（つまり多数決方式による判定が正常になされる限り）、ＲＡＭ１４ｃのデータ化け等による影響を防止することができる。
【００４５】
しかしながら、ＲＡＭ１４ｃのデータの元になっているメモリ部２０内の各同一データ記憶エリア２０ａ，２０ｂ，２０ｃ・・・ において、例えばエリア１のデータがノイズの影響やメモリセルの劣化等によって変化してそのまま放置され続けてしまい、その後さらにエリア２のデータまで変化してしまうと、多数決方式による判定ができなくなってしまう。そうなると、メモリ部２０のデータをＲＡＭ１４ｃに書き込む際に、データ書き込みができなくなったり、或いは誤ったデータが書き込まれてしまい、結果としてドアロック制御装置１４が正常な動作をしなくなるおそれがある。
【００４６】
そこで、本実施形態では、ユーザがイグニションキーシリンダからマスターキーを抜くごとに、ＥＥＰＲＯＭ１５におけるメモリ部２０内の各同一データ記憶エリア２０ａ，２０ｂ，２０ｃ・・・ に記憶された各種データの、多数決によるデータの修復処理が実行される。ドアロック制御装置１４のＣＰＵ１４ａは、マスターキーを抜くごとに、ＲＯＭ１４ｂから多数決データ修復プログラムを読み出し、このプログラムに従って処理を実行する。図２は、ドアロック制御装置１４のＣＰＵ１４ａが実行する多数決データ修復処理を示すフローチャートである。
【００４７】
尚、マスターキーを抜いたか否かの検出は、キー抜き検出スイッチ１３により行う。即ち、マスターキーをイグニションキーシリンダに差し込んでいる間はキー抜き検出スイッチ１３がオンとなり、ドアロック制御装置１４にはこのキー抜き検出スイッチ１３を介してローレベル（グランド電位）の信号が入力される。これにより、マスターキーが差し込まれたことが検出される。一方、マスターキーをイグニションキーシリンダから抜くと、キー抜き検出スイッチ１３がオフとなり、ドアロック制御装置１４には抵抗Ｒを介してハイレベルの信号（バッテリ電圧ＶB ）が入力される。これにより、マスターキーが抜かれたことが検出される。
【００４８】
この多数決データ修復処理が開始されると、まずステップ（以下「Ｓ」と略す）１１０にて、同一データ記憶エリア２０ａ内の三つのエリア（エリア１，エリア２，エリア３）からそれぞれ記憶されているデータを読み出す。そして、Ｓ１２０にて、読み出した三つのエリアの各データについて多数決判定を行い、全て一致（つまり同一）したか否かを判定する。この判定において肯定判定、つまり三つのエリアのデータが全て一致したと判定された場合には、いずれのデータも正常であるものとしてＳ１３０に進む。Ｓ１３０では、三つのエリアのうちエリア１に記憶されているデータを多数決判定結果として、ＲＡＭ１４ｃへ書き込む。尚、Ｓ１３０においては、エリア２又はエリア３に記憶されているデータを多数決判定結果としてＲＡＭ１４ｃに書き込むようにしてもよい。
【００４９】
一方、Ｓ１２０にて否定判定、つまり三つのエリアのデータが全て一致しなかったと判定された場合は、Ｓ１４０に進んで、まずエリア１のデータのみが不一致なのかどうか（換言すればエリア２とエリア３のデータは一致しているのかどうか）を判定する。ここで肯定判定、つまりエリア２及びエリア３のデータは一致（正常）してエリア１のデータのみが不一致（異常）であると判定された場合は、Ｓ１５０に進んで、正常と判定されたエリア２のデータをエリア１に書き込む。これにより、エリア１のデータが修復されたことになる。尚、このＳ１５０においては、エリア３のデータをエリア１に書き込んでもよい。
【００５０】
そして、Ｓ１６０に進み、Ｓ１３０の処理と同様に、エリア２のデータを多数決判定結果としてＲＡＭ１４ｃへ書き込む。尚、このとき、エリア３のデータをＲＡＭ１４ｃへ書き込んでもよいことは言うまでもなく、エリア１のデータも既に修復されているため、修復されたエリア１のデータをＲＡＭ１４ｃに書き込んでも通常は問題ない。しかし、修復はしたもののエリア１のデータが異常であったことは事実であり、特にその異常となった原因がメモリセルそのものの劣化によるものであると、たとえエリア１に正常なデータを書き込んでも完全に修復できないおそれがある。つまり、エリア１が修復不可能な状態になっている可能性があるわけである。そのため、本実施形態では、異常と判定されたエリアのデータは、たとえ修復を行ったとしても、修復したばかりのデータに基づいてＲＡＭ１４ｃを書き換えないようにしている。
【００５１】
Ｓ１４０にて否定判定、つまりエリア１のデータのみが不一致（異常）ではないと判定された場合は、Ｓ１７０に進み、エリア２のデータのみが不一致なのかどうか（換言すればエリア１とエリア３のデータは一致しているのかどうか）を判定する。ここで肯定判定、つまりエリア１及びエリア３のデータは一致（正常）してエリア２のデータのみが不一致（異常）であると判定された場合は、Ｓ１８０に進んで、正常と判定されたエリア１のデータをエリア２に書き込む。尚、このＳ１８０においては、エリア３のデータをエリア２に書き込んでもよい。これにより、エリア２のデータが修復されたことになる。
【００５２】
そして、Ｓ１９０に進み、エリア１のデータを多数決判定結果としてＲＡＭ１４ｃへ書き込む。このときも、エリア３のデータをＲＡＭ１４ｃへ書き込んでもよいことは言うまでもなく、念のため、修復されたエリア２のデータをＲＡＭ１４ｃに書き込まないようにするのが望ましい。
【００５３】
同様にして、Ｓ１７０にて否定判定された場合は、Ｓ２００に進み、エリア３のデータのみが不一致なのかどうかを判定する。ここで肯定判定、つまりエリア１及びエリア２のデータは一致（正常）してエリア３のデータのみが不一致（異常）であると判定された場合は、Ｓ２１０に進んで、正常と判定されたエリア１のデータをエリア３に書き込み、エリア３のデータを修復する。そして、Ｓ２２０に進み、エリア１のデータを多数決判定結果としてＲＡＭ１４ｃへ書き込む。このときも、エリア２のデータをＲＡＭ１４ｃへ書き込んでもよいことは言うまでもなく、念のため修復されたエリア３のデータをＲＡＭ１４ｃに書き込まないようにするのが望ましい。
【００５４】
Ｓ２００で否定判定された場合は、三つのエリアに記憶されているデータがいずれも一致しないことになるため、Ｓ２３０に進んで、多数決判定結果は得られなかったものとしてＲＡＭ１４ｃの内容も現状通りとする。
尚、多数決データ修復処理は、そもそもＥＥＰＲＯＭ１５内のメモリ部２０の各データを修復するのが主な目的であるため、Ｓ１３０，Ｓ１６０，Ｓ１９０，Ｓ２２０，Ｓ２３０の処理（即ち多数決結果をＲＡＭ１４ｃに書き込む処理）は必ずしも行う必要はないが、ＲＡＭ１４ｃがデータ化け或いは劣化しているおそれがあることを想定して、多数決データ修復処理の実行ごとに、その結果を念のためＲＡＭ１４ｃにも書き込むようにしているのである。そして、上記の多数決データ修復処理（同一データ記憶エリア２０ａのデータ修復処理）が終わったら、引き続き同様にしてメモリ部２０内の他の同一データ記憶エリア２０ｂ，２０ｃ・・・ に対しても実行する。
【００５５】
以上詳述したように、本実施形態では、ＥＥＰＲＯＭ１５のメモリ部２０における、同一データが記憶された三つのエリアにおいて、ある一つのエリアでデータ化け等の異常が生じても、ユーザがマスターキーを抜くごとに多数決データ修復処理が実行され、他の二つのエリアのデータがいずれも正常であれば、異常が生じたエリアのデータがその正常なエリアのデータに基づいて修復される。
【００５６】
そのため、本実施形態によれば、多数決判定による正常なデータの特定が可能である限り、異常エリアのデータを確実に修復できるため、異常エリアのデータ（誤データ）がそのまま放置されてしかも異常エリアがさらに増えることにより正規のデータが取得できなくなってしまう（つまり多数決判定により正常なデータが判定できなくなる）おそれはなく、常に正規のデータを取得することができ、ＥＥＰＲＯＭ１５の信頼性をより向上させることが可能となる。
【００５７】
［第２実施形態］
次に、本発明が適用された第２実施形態のキーレスエントリシステムについて説明する。尚、本実施形態のキーレスエントリシステムの構成は、ＥＥＰＲＯＭ１５内部のメモリ部２０におけるデータ記憶状態を除き、図１に示したキーレスエントリシステムと同様の構成であるため、本実施形態においても図１に基づいて説明する。そして、図３は、本実施形態のＥＥＰＲＯＭ１５内部のメモリ部２０におけるデータ記憶状態を示す説明図である。
【００５８】
図３に示すように、本実施形態のメモリ部２０は、一つのデータを記憶するための同一データ記憶エリア３１，３２・・・ がいずれも二つのエリア（エリア１、エリア２）にて構成されている。そして、携帯型送信機１０からの送信データのうち暗証コードは同一データ記憶エリア３１に、更新データは同一データ記憶エリア３２に、それぞれ記憶される。尚、本実施形態では、同一データ記憶エリア３１に暗証コードとして例えば（１０１１）が記憶されているものとして、以下説明を続けることにする。
【００５９】
この（１０１１）の暗証コードは、同一データ記憶エリア３１において、エリア１に、（１０１１）の暗証コードがそのまま正規データとして記憶される。またエリア１には、正規データと共に所定のチェックコードも記憶される。本実施形態ではチェックコードを例えば（１０１０）とする。さらにエリア１には、正規データ（１０１１）とチェックコード（１０１０）との加算値に更に加算した結果が零になるようなデータ（本実施形態では１０１１）がチェックサムとして記憶される。
【００６０】
一方、エリア２には、正規データの論理を反転させたデータ、つまり（０１００）がミラーデータとして記憶されると共に、エリア１に記憶されているチェックコードの論理を反転させたデータ、つまり（０１０１）がミラーチェックコードとして記憶され、さらに、ミラーデータとミラーチェックコードとの加算値に更に加算した結果が零になるようなデータ（本実施形態では０１１１）がミラーチェックサムとして記憶される。
【００６１】
尚、エリア１において、上記の正規データとチェックコードとチェックサムとを加算すると（１０００００）となり、厳密には零ではないが、本実施形態では最上位ビットの「１」を無視して零であるものとみなしている。エリア２についても同様である。
【００６２】
また、本実施形態の場合、チェックコードはドアロック制御装置１４のＲＯＭ１４ｂに予め格納されているものであり、ＥＥＰＲＯＭ１５へのデータ書き込みが行われる毎に、このＲＯＭ１４ｂに格納されたチェックコードもＥＥＰＲＯＭ１５へ転送されて同一データ記憶エリア３１のエリア１に記憶されると共にその論理反転データもミラーチェックコードとしてエリア２に記憶される。
【００６３】
そして、各同一データ記憶エリア３１，３２，３３・・・ からＲＡＭ１４ｃへのデータ書き込みの際、２つのエリアのうちどのエリアのデータに基づいてＲＡＭ１４ｃへ書き込むかは、既述のチェックサム方式により決定する。このチェックサム方式によるデータ判定もＣＰＵ１４ａにて実行される。即ち、エリア１において正規データとチェックコードとチェックサムとの総和を演算し、その結果が零になるか否かによってエリア１のデータが正常であるか否かを判定し、エリア２についても同様の方法で判定を行う。そして、両エリアとも正常であればどちらかのエリアのデータに基づいてＲＡＭ１４ｃへの書き込みを行えばよいし、例えばエリア１が異常と判定された場合は、正常であるエリア２に記憶されたミラーデータに基づき、そのミラーデータを反転させたものを正規のデータとしてＲＡＭ１４ｃへ書き込む。
【００６４】
ところで、本実施形態において、二つのエリアのうち、ある一つのエリアのデータがデータ化け等によって異常データ（誤データ）となっても、上記のように他のエリアのデータが正常であればそれに基づいて正規のデータを取得することができるが、異常が生じたエリアがそのまま放置された状態でさらにもう一方のエリアまで異常になってしまうと、チェックサム方式による判定ができなくなってしまう。
【００６５】
そこで、本実施形態では、ユーザがイグニションキーシリンダからマスターキーを抜くごとに、各同一データ記憶エリア３１，３２，３３・・・ に記憶された各種データの、チェックサムによるデータ修復処理が実行される。ＣＰＵ１４ａは、マスターキーを抜くごとに、ＲＯＭ１４ｂからチェックサムデータ修復プログラムを読み出し、各同一データ記憶エリア３１，３２，３３・・・ についてこのプログラムに従って処理を実行する。図４は、本実施形態のドアロック制御装置１４のＣＰＵ１４ａが実行するチェックサムデータ修復処理を示すフローチャートである。
【００６６】
このチェックサムデータ修復処理が開始されると、まずＳ４１０にて、エリア１に記憶されているチェックコードが正常であるか否かが判断される。この判断は、ＲＯＭ１４ｂに格納されているチェックコードと一致するか否かによって行われ、一致した場合は正常であるものとしてＳ４２０へ進む。Ｓ４２０では、エリア２に記憶されているミラーチェックコードが正常であるか否かが判断される。この判断は、ＲＯＭ１４ｂに格納されているチェックコードの論理反転データと一致するか否かによって行い、一致した場合は正常であるものとしてＳ４３０へ進む。Ｓ４３０では、正規データとミラーデータが同一（互いに論理が反転しているだけであって実質的に同一）か否か、即ちエリア１に記憶されている正規データと、エリア２に記憶されているミラーデータの論理を反転したデータとが一致するか否かを判断する。この判断で一致した場合は、正規データとミラーデータが同一であるものとしてＳ４４０に進む。このようにＳ４４０に進んだということは、同一データ記憶エリア３１に記憶されている各データのうち、正規データ、ミラーデータ、チェックコード、及びミラーチェックコードはいずれも正常と判断されたことになる。
【００６７】
そして、Ｓ４４０に進み、エリア１において正規データとチェックコードとチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、チェックサムが正常であるか否かを判断する。ここで正常と判断されたならば、エリア１に記憶されているデータは全て正常であることが確認されたことになり、更にＳ４６０に進むが、正常と判断されなかった場合は、チェックサムが異常であると考えられるため、Ｓ４５０に進んで正規データとチェックコードとの和に基づいてチェックサムを書き換えることにより、チェックサムの修復を行ってからＳ４６０に進む。
【００６８】
Ｓ４６０では、エリア２におけるミラーデータとミラーチェックコードとミラーチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、ミラーチェックサムが正常であるか否かを判断する。ここで正常と判断されたならば、エリア２に記憶されているデータは全て正常であることが確認されたことになり、Ｓ４８０に進むが、正常と判断されなかった場合は、ミラーチェックサムが異常であると考えられるため、Ｓ４７０に進んでミラーデータとミラーチェックコードとの和に基づいてミラーチェックサムを書き換えることにより、ミラーチェックサムの修復を行ってからＳ４８０に進む。
【００６９】
ここまでの処理により、エリア１、エリア２はいずれも正常な状態となっている。そこで、Ｓ４８０にてエリア１に記憶されている正規データをＲＡＭ１４ｃに書き込み、この処理を終了する。尚、Ｓ４８０（後述するＳ５７０，Ｓ６６０も）のように、データ修復を行った後にＲＡＭ１４ｃへ正規データを書き込むのは、第１実施形態でも述べたように、ＲＡＭ１４ｃがデータ化け或いは劣化しているおそれがあるためであり、本実施形態においても、チェックサムデータ修復処理の実行ごとにその結果を念のためＲＡＭ１４ｃに書き込むようにしているのである。
【００７０】
一方、Ｓ４１０，Ｓ４２０，Ｓ４３０のいずれかの判断において否定判定された場合、即ち正規データ、ミラーデータ、チェックコード、又はミラーチェックコードのいずれかが正常でない場合は、Ｓ４９０に進む。Ｓ４９０では、Ｓ４４０と同様、エリア１において正規データとチェックコードとチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、チェックサムが正常であるか否かを判断する。ここで正常と判断した場合はＳ５００に進み、エリア１に記憶されているチェックコードが正常であるか否かの判断をＳ４１０と同様に行う。Ｓ５００で正常と判断された場合は、とりあえずエリア１に記憶されているデータは全て正常であることが確認できたことになり、次にＳ５１０に進む。
【００７１】
Ｓ５１０では、エリア２に記憶されているミラーチェックコードが正常であるか否かの判断をＳ４２０と同様に行う。ここで正常と判断された場合はそのままＳ５３０に進むが、正常でないと判断された場合はＳ５２０に進み、ＲＯＭ１４ｂに格納されているチェックコードに基づいてミラーチェックコードの修復を行った上で、Ｓ５３０に進む。
【００７２】
Ｓ５３０では、Ｓ４３０と同様、エリア１に記憶されている正規データと、エリア２に記憶されているミラーデータの論理を反転したデータとが一致するか否かを判断する。この判断で一致した場合は、Ｓ５５０に進むが、一致しなかった場合はＳ５４０に進み、ミラーデータの修復を行った上でＳ５５０に進む。Ｓ５４０の修復処理は、エリア１の正規データを論理反転したものをミラーデータとして新たにエリア２に書き込むことにより行う。
【００７３】
Ｓ５５０では、Ｓ４６０の処理と同様、エリア２におけるミラーデータとミラーチェックコードとミラーチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、ミラーチェックサムが正常であるか否かを判断する。ここで正常と判断した場合はそのままＳ５７０に進むが、正常と判断されなかった場合はＳ５６０に進んで、ミラーデータとミラーチェックコードとの和に基づいてミラーチェックサムを書き換えることにより、ミラーチェックサムの修復を行ってからＳ５７０に進む。
【００７４】
Ｓ５７０に進んだ段階で、既にエリア１、エリア２いずれのデータも全て正常な状態になっているため、Ｓ４８０と同様にエリア１に記憶されている正規データをＲＡＭ１４ｃに書き込んで、この処理を終了する。
また一方、Ｓ４９０又はＳ５００にて否定判定された場合、即ちエリア１のデータのいずれかが正常ではないと判断された場合は、Ｓ５８０以降に進む。Ｓ５８０ではＳ４６０と同様、エリア２におけるミラーデータとミラーチェックコードとミラーチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、ミラーチェックサムが正常であるか否かの判断が行われ、正常と判断した場合はＳ５９０に進むが、正常と判断されなかった場合はＳ６７０に進み、エリア１、エリア２いずれのデータも異常であると判断してこの処理を終了する。
【００７５】
Ｓ５９０では、Ｓ４２０と同様、ミラーチェックコードが正常か否かを判断し、正常であればＳ６００に進むが、正常でない場合はＳ６７０に進み、エリア１、エリア２いずれのデータも異常であると判断してこの処理を終了する。つまり、Ｓ５８０で肯定判定されたにもかかわらずＳ５９０で否定判定されたということは、ミラーデータとミラーチェックサムが共に異常であると考えられるわけである。
【００７６】
そして、Ｓ６００以降ではエリア１の各データの修復を行うわけだが、まずＳ６００では、Ｓ４１０と同様チェックコードが正常か否かを判断し、正常であればそのままＳ６２０に進み、正常でない場合はＳ６１０に進んでチェックコードの修復を行った上でＳ６２０に進む。このチェックコードの修復は、ＲＯＭ１４ｂに格納されているチェックコードを新たなチェックコードとしてエリア１に書き込むことにより行われる。
【００７７】
Ｓ６２０では、Ｓ４３０と同様、エリア１に記憶されている正規データと、エリア２に記憶されているミラーデータの論理を反転したデータとが一致するか否かを判断する。この判断で一致した場合はＳ６４０に進むが、一致しなかった場合はＳ６３０に進み、正規データの修復を行った上でＳ６４０に進む。Ｓ６３０の修復処理は、エリア２のミラーデータを論理反転したものを新たな正規データとしてエリア１に書き込むことにより行う。
【００７８】
Ｓ６４０では、Ｓ４４０と同様、エリア１において正規データとチェックコードとチェックサムとの総和を演算してその結果が零になるか否かを判断することにより、チェックサムが正常であるか否かを判断する。ここで正常と判断したならばＳ６６０に進むが、正常と判断されなかった場合は、Ｓ６５０に進んでＳ４５０と同様にチェックサムの修復を行ってからＳ６６０に進む。そして、Ｓ６６０で、エリア２に記憶されているミラーデータの論理を反転したデータを正規データとしてＲＡＭ１４ｃに書き込み、この処理を終了する。
【００７９】
尚、Ｓ６６０で上記のようにエリア２に記憶されているミラーデータに基づいてＲＡＭ１４ｃのデータを書き換えるようにしたのは、以下の理由による。即ち、Ｓ６６０に進んだということは、エリア２のデータは正常であってエリア１のデータにおいて何らかの異常があったわけであり、その異常の原因が仮にエリア１のメモリセルそのものの劣化であった場合は、データ修復処理をしても完全に修復されないおそれがあるからである。そのため、特に異常のなかったエリア２のデータ（ミラーデータ）に基づいてＲＡＭ１４ｃを書き換えるようにしているのである。
【００８０】
また、Ｓ５７０の処理についても同様で、特に異常のなかったエリア１のデータ（正規データ）に基づいてＲＡＭ１４ｃを書き換えるようにしている。但し、Ｓ４８０の処理では、エリア１の正規データをＲＡＭ１４ｃに書き込むようにしたが、エリア２のミラーデータを論理反転させたデータをＲＡＭ１４ｃに書き込むようにしてもよい。
【００８１】
以上詳述したように、上記第２実施形態においては、メモリ部２０の各同一データ記憶エリア３１，３２，３３・・・ における同一データが記憶された二つのエリアにおいて、ある一つのエリアでデータ化け等の異常が生じても、ユーザがマスターキーを抜くごとにチェックサムデータ修復処理が実行され、いずれか一方のエリアのデータが正常であれば、異常が生じたエリアのデータがその正常なエリアのデータに基づいて修復される。
【００８２】
そのため、第２実施形態によれば、二つのエリアのいずれか一方が正常である限り、異常データが記憶されているエリアのデータを確実に修復でき、常に正常なデータを取得することができる。また、二つのエリアがいずれも正常でない場合でも、各データ及び各チェックコードが正常（即ちチェックサム及びミラーチェックサムのみが異常）であるならば、その正常な各データ及び各チェックコードに基づいて、二つのエリアを共に正常に修復することができる。これにより、上記第１実施形態と同様、ＥＥＰＲＯＭ１５の信頼性をより向上させることが可能となる。
【００８３】
ここで、上記各実施形態の構成要素と本発明の構成要素の対応関係を明らかにする。上記実施形態において、エリア１，エリア２，エリア３は本発明の記憶領域に相当し、ＣＰＵ１４ａは本発明のデータ監視手段及びデータ修復手段に相当し、ＲＯＭ１４ｂは本発明の外部の記憶装置に相当する。また、第２実施形態のエリア１に記憶されるデータ（図３参照）のうち正規データは本発明における一つのデータの正論理値に相当し、チェックコードは本発明の正チェックコードに相当し、チェックサムは本発明の正チェックサムに相当する。更に、第２実施形態のエリア２に記憶されるデータ（図３参照）のうち、ミラーデータは本発明における一つのデータの負論理値に相当する。
【００８４】
また、図２の多数決データ修復処理において、Ｓ１２０，Ｓ１４０，Ｓ１７０，Ｓ２００の処理はいずれも本発明のデータ監視手段が実行する処理に相当し、Ｓ１５０，Ｓ１８０，Ｓ２１０の処理はいずれも本発明のデータ修復手段が実行する処理に相当する。更に、図４のチェックサムデータ修復処理において、Ｓ４１０，Ｓ４２０，Ｓ５００，Ｓ５１０，Ｓ５９０，Ｓ６００の処理はいずれも本発明のコード判定手段が実行する処理に相当し、Ｓ４３０，Ｓ５３０，Ｓ６２０の処理はいずれも本発明の論理値判定手段が実行する処理に相当し、Ｓ４４０，Ｓ４６０，Ｓ４９０，Ｓ５５０，Ｓ５８０，Ｓ６４０の処理はいずれも本発明のサム判定手段が実行する処理に相当し、Ｓ４５０，Ｓ４７０の処理はいずれも本発明のチェックサム修復手段が実行する処理に相当し、Ｓ５２０，Ｓ５４０，Ｓ５６０，Ｓ６１０，Ｓ６３０，Ｓ６５０の処理はいずれも本発明の記憶領域修復手段が実行する処理に相当する。
【００８５】
尚、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記実施形態では、ＣＰＵ１４ａによるデータ修復処理の実行をイグニションキーシリンダからマスターキーを抜くごとに行うものとしたが、データ修復処理の実行タイミングはこれに限定されることなく、例えばエンジンを停止する毎に実行したり、一日に数回所定の間隔で実行するなど、適宜設定することができる。
【００８６】
また、上記第１実施形態では、一つのデータを三つのエリアに記憶するようにしたが、例えば５つのエリアに同一データをそのまま或いは加工（例えば論理反転）して記憶するようにしてもよく、多数決方式による正規データの取得及び多数決データ修復処理が実行できる限り、記憶するエリアの数は特に限定されない。
【００８７】
上記第２実施形態についても、一つのデータを記憶するエリアの数は特に限定されない。また、上記第２実施形態では、各エリア１，２に記憶されるデータがいずれも４ビットの場合について説明したが、４ビットに限らないことはもちろん、正規データとチェックコードとのビット数が異なる（例えば正規データが４バイトでチェックコードが１バイト）場合であっても本発明を適用することができることはいうまでもない。その場合は、例えば正規データを任意のビット数の単位で区切って、その単位毎にチェックサムを設定するなど、チェックサムの設定は正規データとチェックコードのビット数に応じて適宜決めればよい。
【００８８】
さらに、データの修復方法として、上記各実施形態では多数決データ修復処理やチェックサムデータ修復処理を示したが、この二つの方法に限定されることはなく、一つのデータを複数のエリアにそのまま或いは加工して記憶する記憶媒体において、その複数のエリアに記憶された各データが正常であるか否かが判断でき、その判断結果に基づいて異常なデータを修復できるような方法であれば何でもよい。
【００８９】
更にまた、上記実施形態では、記憶媒体がＥＥＰＲＯＭである場合について説明したがＥＥＰＲＯＭに限定されることはなく、例えばフラッシュメモリ等のあらゆる不揮発性メモリ（但しデータ書換可能なもの）はもちろん、ＲＡＭなどの揮発性メモリにも適用することができる。
【００９０】
また、本発明は、上記実施形態のようなキーレスエントリシステムにおける各種データを記憶する場合に本発明を適用するのに限らず、各種メモリに種々の情報を記憶してその記憶内容に基づいて各種処理を行うマイクロコンピュータ等のあらゆる情報処理装置に対して適用することができる。
【図面の簡単な説明】
【図１】  本発明が適用された第１実施形態のキーレスエントリシステムの概略構成を示すブロック図である。
【図２】  第１実施形態のドアロック制御装置のＣＰＵが実行する多数決データ修復処理を示すフローチャートである。
【図３】  第２実施形態のＥＥＰＲＯＭ内部のメモリ部におけるデータ記憶状態を示す説明図である。
【図４】  第２実施形態のドアロック制御装置のＣＰＵが実行するチェックサムデータ修復処理を示すフローチャートである。
【符号の説明】
１０…携帯型送信機、１１…アンテナ、１２…受信機、１３…キー抜き検出スイッチ、１４…ドアロック制御装置、１４ａ…ＣＰＵ、１４ｂ…ＲＯＭ、１４ｃ…ＲＡＭ、１５…ＥＥＰＲＯＭ、１５ａ…入出力制御部、１６…バッテリ、１７…定電圧回路、１８…ドアロック開閉アクチュエータ、２０…メモリ部、２０ａ，２０ｂ、２０ｃ、３１，３２，３３…同一データ記憶エリア、Ｒ…抵抗
【図１】
0003743271.tif 000002
【図２】
0003743271.tif 000003
【図３】
0003743271.tif 000004
【図４】
0003743271.tif 000005