(57)【要約】【課題】制御に悪影響を与えずに確実なメモリチェックを行うことができる車両用制御装置を提供することである。【解決手段】フラッシュＲＯＭ２７の記憶領域は、予め、制御プログラムを構成する複数のサブプログラムの実行順序に基づいて複数の分割領域に分割され、複数のサブプログラムの実行順序に従って、順次、複数の分割領域のうち次に実行されるサブプログラムを記憶する一の分割領域についてメモリチェックを実行すると共に、メモリチェックにおいて正常と判定された場合、当該分割領域に記憶されたサブプログラムを実行する。【選択図】図１
2009126451.tif 000002
【特許請求の範囲】
【請求項１】
車両を制御するための制御プログラムを記憶する不揮発性メモリを備え、前記不揮発性メモリから前記制御プログラムを読み出して実行することによって車両を制御する車両用制御装置において、
前記不揮発性メモリの記憶領域は、予め、前記制御プログラムを構成する複数のサブプログラムの実行順序に基づいて複数の分割領域に分割され、
前記複数のサブプログラムの実行順序に従って、順次、前記複数の分割領域のうち次に実行されるサブプログラムを記憶する一の分割領域についてメモリチェックを実行すると共に、前記メモリチェックにおいて正常と判定された場合、当該分割領域に記憶された前記サブプログラムを実行するように構成されたことを特徴とする車両用制御装置。
【請求項２】
前記各サブプログラムによって参照されるデータは、当該サブプログラムが記憶される当該分割領域に記憶されたことを特徴とする請求項１に記載の車両用制御装置。
【請求項３】
前記各サブプログラムによって参照されるデータは、重要度に応じて前記複数の分割領域のいずれかに記憶されたことを特徴とする請求項１に記載の車両用制御装置。
【請求項４】
装置起動後、前記各分割領域について前記メモリチェックが１回終了した以降は、前記メモリチェックを実行することなく当該分割領域に記憶された前記サブプログラムを実行することを特徴とする請求項１乃至３のいずれかに記載の車両用制御装置。
【請求項５】
前記メモリチェックは、前記各分割領域に対するサムチェックであることを特徴とする請求項１乃至４のいずれかに記載の車両用制御装置。
【請求項６】
前記不揮発性メモリは、電気的にデータ書き換え可能な不揮発性メモリであることを特徴とする請求項１乃至５のいずれかに記載の車両用制御装置。
【請求項７】
制御対象とする車両が二輪車であることを特徴とする請求項１乃至６のいずれかに記載の車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用制御装置に関し、特に、車両用制御装置で用いる不揮発性メモリのデータリテンションチェック等のメモリチェックに特徴を有する車両用制御装置に関する。
【背景技術】
【０００２】
従来、二輪車や四輪車などの車両には、駆動制御や車載機器の制御を行う車両用制御装置が搭載されている。この車両用制御装置は、マイクロコンピュータを有し、制御用ソフトウェアプログラムをマイクロコンピュータ内のＣＰＵにて実行することによって各種制御を実現する。
【０００３】
このＣＰＵにて実行されるソフトウェアプログラムや各種データ（制御パラメータなど）はマイクロコンピュータ内の不揮発性メモリ（たとえばＦＬＡＳＨ−ＲＯＭ）に記憶され、必要に応じて読み出されて実行される。
【０００４】
このような車両用制御装置においては、不揮発性メモリの記憶内容を消失したり、不正に書き換えられたりすることは非常に危険であるため、メモリ記憶内容をチェックする必要がある。
【０００５】
図５は、従来のメモリチェック方法の処理の流れを示すフローチャートである。この処理は、車両のイグニッションＳＷがオンされることによってＣＰＵが起動されて実行される。
【０００６】
まず、イニシャル処理が行われ（Ｃ−１）、その後、車両用制御装置の各種制御が順次実行される（Ｃ−２、Ｃ−３）。
【０００７】
その後、車両停止中（たとえば信号待ちなどでアイドリング中の状態）またはエンジン停止中（電源はＯＮしているがエンジンは停止した状態）であるかを判定し（Ｃ−４）、そうでなければステップ（Ｃ−２）に戻って、各種制御を繰り返す。
【０００８】
ステップ（Ｃ−４）において、車両停止中またはエンジン停止中の場合には、チェック対象のメモリからデータを読み出し、そのデータの加算処理を行う（Ｃ−５）。サムチェック方式では、予めメモリ内のデータの加算結果（加算データ）が所定値（たとえばゼロ）となるようデータを書き込んでおき、チェック時にはデータの加算結果によってそのメモリが正常か否かを判定することができる。
【０００９】
ステップ（Ｃ−６）では、加算データが所定値（たとえばゼロ）であるかを判定し、加算データが所定値である場合にはステップ（Ｃ−２）に戻って、各種制御を繰り返す。一方、加算データが所定値でない場合にはプログラムの実行停止またはリセットを行う（Ｃ−７）。
【００１０】
また、たとえば特許文献１や特許文献２には、メモリ領域を分割しておき、その分割した領域毎にチェックする方法が開示されている。図６は、メモリ領域を分割してチェックする方法の処理の流れを示すフローチャートである。この処理は、車両のイグニッションＳＷがオンされることによってＣＰＵが起動されて実行される。
【００１１】
まず、イニシャル処理が行われ（Ｄ−１）、その後、車両用制御装置の各種制御が順次実行される（Ｄ−２、Ｄ−３）。
【００１２】
その後、所定時間経過したならば（Ｄ−４）、サムチェック済みフラグを参照することによってサムチェックが済んでいるかを判定し（Ｄ−５）、サムチェックが済んでいなければ、チェック対象のメモリからデータを読み出し、そのデータの加算処理を行う（Ｄ−６）。
【００１３】
ステップ（Ｄ−７）では、チェック対象のメモリ全領域のチェックが完了したかを判定し、チェックが完了したならば、加算データが所定値（たとえばゼロ）であるかを判定し（Ｄ−８）、加算データが所定値である場合にはサムチェック済みフラグがチェック完了を示すようフラグセットし（Ｄ−１０）、ステップ（Ｄ−２）に戻って、各種制御を繰り返す。一方、加算データが所定値でない場合にはプログラムの実行停止またはリセットを行う（Ｄ−９）。
【特許文献１】特開平２−２８１３５２号公報
【特許文献２】特開平７−４２６０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来の車両停止時またはエンジン停止時にメモリチェックをする方法では、車両停止時またはエンジン停止時という特殊な状態でしかメモリチェックをしないため、エンジン始動後、即通常走行に入るとメモリチェックができないという問題があるし、また、メモリの全領域を一度にチェックする方式であるため、エンジン始動時にメモリチェックをする場合には、メモリチェックをしている間にはエンジンを制御するための演算処理が実行されないため、エンジン始動に悪影響を及ぼす恐れがあった。
【００１５】
また、特許文献１や特許文献２のようにメモリ領域を単純にアドレス順に分割してチェックする方法の場合、チェックの済んでいない領域からデータを読み出し、そのデータが誤ったものであると、誤った命令を実行したり誤ったパラメータで制御したりしてしまい、プログラムの暴走、制御不能などでエンジン破壊に至る恐れもあった。
【００１６】
また、特に二輪車の場合、バッテリーが完全放電した状態でもレバーをキックすることにより始動可能であることが望ましく、キック始動時の短時間で微弱な発電によって、メモリチェックを行えることが望ましい。
【００１７】
本発明は上記課題に鑑みてなされたものであり、制御に悪影響を与えずに確実なメモリチェックを行うことができる車両用制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
以下、上記課題を解決するのに適した各手段につき、必要に応じて作用効果等を付記しつつ説明する。
【００１９】
１．車両を制御するための制御プログラムを記憶する不揮発性メモリを備え、前記不揮発性メモリから前記制御プログラムを読み出して実行することによって車両を制御する車両用制御装置において、
前記不揮発性メモリの記憶領域は、予め、前記制御プログラムを構成する複数のサブプログラムの実行順序に基づいて複数の分割領域に分割され、
前記複数のサブプログラムの実行順序に従って、順次、前記複数の分割領域のうち次に実行されるサブプログラムを記憶する一の分割領域についてメモリチェックを実行すると共に、前記メモリチェックにおいて正常と判定された場合、当該分割領域に記憶された前記サブプログラムを実行するように構成されたことを特徴とする車両用制御装置。
【００２０】
手段１によれば、不揮発性メモリの記憶領域は、予め、制御プログラムを構成する複数のサブプログラムの実行順序に基づいて複数の分割領域に分割されている。そして、複数のサブプログラムの実行順序に従って、順次、複数の分割領域のうち次に実行されるサブプログラムを記憶する一の分割領域についてメモリチェックを実行する。このとき、メモリチェックが分割領域単位で実行されるので、処理が短時間に終了する。続いて、メモリチェックの結果が正常である場合、当該分割領域に記憶されたサブプログラムを実行する。
【００２１】
すなわち、サブプログラムの実行に先立って当該分割領域についてメモリチェックが実行され、当該分割領域が正常であることが検証された後に、サブプログラムを正常に実行することができる。一方、データリテンション（データ保持特性）の劣化等により当該分割領域に異常が生じた場合、メモリチェックにおいて異常と判定されることにより、当該記憶領域に記憶されたサブプログラムの実行が回避されるので、制御プログラムの暴走及びそれに起因する車両のエンジン破壊等を確実に防止することができる。
【００２２】
２．前記各サブプログラムによって参照されるデータは、当該サブプログラムが記憶される当該分割領域に記憶されたことを特徴とする手段１に記載の車両用制御装置。
【００２３】
手段２によれば、各サブプログラムによって参照されるデータは、当該サブプログラムが記憶される当該分割領域に記憶されているので、当該分割領域についてメモリチェックが実行されることにより、当該サブプログラムとその参照データについて正常であることが確実に検証される。従って、サブプログラムが異常なデータを参照して異常な制御を行ったり、プログラムが暴走したりすること等を確実に防止することができる。
【００２４】
３．前記各サブプログラムによって参照されるデータは、重要度に応じて前記複数の分割領域のいずれかに記憶されたことを特徴とする手段１に記載の車両用制御装置。
【００２５】
手段３によれば、各サブプログラムによって参照されるデータは、重要度に応じて複数の分割領域のいずれかに記憶されているので、各分割領域についてメモリチェックが実行されることにより、各サブプログラムに加えて各参照データについても正常であることが確実に検証される。従って、サブプログラムが異常なデータを参照して異常な制御を行ったり、プログラムが暴走したりすること等を確実に防止することができる。たとえば、重要度が高いデータについては、そのデータを参照する一のサブプログラムよりも実行順序が早い他のサブプログラムが記憶される所定の分割領域に記憶するようにしてもよい。このようにすれば、所定の分割領域についてメモリチェックが実行されることにより、一のサブプログラムによってデータが参照される前にそのデータが正常であることが確実に検証される。
【００２６】
４．装置起動後、前記各分割領域について前記メモリチェックが１回終了した以降は、前記メモリチェックを実行することなく当該分割領域に記憶された前記サブプログラムを実行することを特徴とする手段１乃至３のいずれかに記載の車両用制御装置。
【００２７】
手段４によれば、装置起動後、各分割領域についてメモリチェックが１回終了した以降は、メモリチェックを実行することなく当該分割領域に記憶されたサブプログラムを実行するので、必要以上にメモリチェックが実行されることによるＣＰＵの処理負荷の増大によって制御に悪影響が生じることを防止することができる。
【００２８】
５．前記メモリチェックは、前記各分割領域に対するサムチェックであることを特徴とする手段１乃至４のいずれかに記載の車両用制御装置。
【００２９】
手段５によれば、各分割領域に対してサムチェックによるメモリチェックを実行することにより、簡単な処理で確実にデータリテンションの劣化等による分割領域の異常を検出することができる。
【００３０】
６．前記不揮発性メモリは、電気的にデータ書き換え可能な不揮発性メモリであることを特徴とする手段１乃至５のいずれかに記載の車両用制御装置。
【００３１】
手段６によれば、電気的にデータ書き換え可能な不揮発性メモリ、たとえば、フラッシュＲＯＭやＥＥＰＲＯＭに制御プログラムが記憶されている場合に、データリテンションの劣化等による記憶領域の異常を確実に検出することができる。
【００３２】
７．制御対象とする車両が二輪車であることを特徴とする手段１乃至６のいずれかに記載の車両用制御装置。
【００３３】
車両用制御装置で制御する車両が二輪車である場合には、バッテリーが完全放電した状態でもレバーをキックすることにより始動可能であることが望ましいが、手段７によれば、複数のサブプログラムの実行順序に従って、順次、分割領域のメモリチェックと当該分割領域に記憶されたサブプログラムとが実行されるので、二輪車のキック始動時における短時間で微弱な発電でもメモリチェックを行いつつ始動処理をスムーズに継続、実行することができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明のメモリチェック方法を具体化した一実施形態について図面を参照しつつ具体的に説明する。図１は、本発明の一実施形態の二輪車用電子式エンジン制御装置の全体構成を示す図である。
【００３５】
図１において、制御ユニット（車両用制御装置）１は、マイクロコンピュータ（以下、マイコンという）２、出力インターフェース回路３、電源回路５、および入力インターフェース回路６等より構成されている。
【００３６】
この制御ユニット１には、スロットルセンサ、吸気圧センサ、吸気温センサ、水温センサ、クランク角センサ、スタンドスイッチ、ニュートラルスイッチなどの各種センサ・スイッチ６１からの信号が入力インターフェース回路６を介して入力されている。
【００３７】
ここで、スロットルセンサとはアクセルスロットルに連動して開閉するスロットル弁の開度を検出するセンサであり、吸気圧センサとはエンジンへの吸気圧を検出するセンサであり、吸気温センサとはエンジンへの吸気の温度を検出するセンサであり、水温センサとはエンジンを水冷する水温を検出するセンサであり、クランク角センサ図示しないディストリビュータ内に取り付けられて、ディストリビュータの回転に応じた信号を出力するセンサであり、スタンドスイッチとはたとえば二輪車の停車時に用いるサイドスタンドのしまい忘れを検出するセンサであり、ニュートラルスイッチとはギアがニュートラルになっていることを検出するセンサである。
【００３８】
なお、制御ユニット１の電源は、バッテリー５２からイグニッションＳＷ５１を介して電源回路５へと供給されており、イグニッションＳＷ５１がオン（閉成）することにより、制御ユニット１は起動する。マイコン２は、ＣＰＵ２１、ＲＡＭ２２、入出力ポート（以下、Ｉ／Ｏポートという）２３、Ｉ／Ｏポート２５、Ａ／Ｄ変換器２６、およびフラッシュＲＯＭ（以下、ＦＬＡＳＨ−ＲＯＭという）２７から構成されている。
【００３９】
ここで、ＣＰＵ２１は車両を制御する各種装置の作動制御等をするための処理を実行するものであり、詳しくは、入力インターフェース回路６を介して入力された各種センサ・スイッチ６１からの信号に基づき、データ書き換え可能な不揮発性メモリであるＦＬＡＳＨ−ＲＯＭ２７に格納されているプログラムやデータに従って車両を制御する各種装置の制御量を演算するものである。なお、ＣＰＵ２１での演算処理に使用する各制御定数および演算データは必要に応じてＲＡＭ２２に格納される。
【００４０】
以上述べた処理によって求められた各種制御量は出力インターフェース回路３により各制御信号に変換され、インジェクタ、点火コイル、ソレノイド、およびモータなどの車両を制御する各種装置３１に出力され、これにより、エンジンは運転状態に応じた最適の燃料噴射量で制御することができる。
【００４１】
ところで、この電子式エンジン制御装置は、前述した如く、ＦＬＡＳＨ−ＲＯＭ２７に格納されているプログラムやデータに従って燃料噴射量を求めている。よって、このプログラムやデータが車両メーカの意に反して変更されたり、消失したりした場合には、最適な燃料噴射量を演算設定することはできず、これにより、エミッションの悪化やエンジンの故障を招くといった不具合を生じてしまう。
【００４２】
そこで、本実施形態の装置では、このような不具合を防止するための手段を備えているものであり、この点について以下に説明する。図２はＦＬＡＳＨ−ＲＯＭ２７の記憶領域を示す図である。
【００４３】
ＦＬＡＳＨ−ＲＯＭ２７に格納され、ＣＰＵ２１で実行されるプログラムは、サブプログラムと呼ぶ複数のプログラムに分割されており、このサブプログラム単位で実行がされる。
【００４４】
ＦＬＡＳＨ−ＲＯＭ２７の記憶領域はサブプログラム単位で分割されており、分割された領域毎にサムチェックを行うことができるようにデータを格納してある。また、この分割された各領域には、イグニッションＳＷ５１がオンした後、または、エンジン始動用のレバーがキックされた後に実行される順番でサブプログラムが格納されており、本実施形態では、第１の領域２７ａには最初に実行されるサブプログラムおよびデータが格納され、第２の領域２７ｂにはその次に実行されるサブプログラムおよびデータが格納され、その後、順々に格納され、第ｎの領域２７ｎには最後に実行されるサブプログラムおよびデータが格納される。また、各サブプログラムが当該領域に格納されたデータのみで実行可能なように、１つのサブプログラムの実行に必要なデータは１つの領域内に記憶されているようにする。
【００４５】
たとえば、第１の領域２７ａには、イニシャル処理のプログラム、Ａ制御プログラム、さらにイニシャル処理およびＡ制御で使用されるデータが格納され、第２の領域２７ｂには、Ｂ制御プログラム、およびＢ制御で使用されるデータが格納され、第３の領域２７ｃには、Ｃ制御プログラム、およびＣ制御で使用されるデータが格納され、第４の領域２７ｄには、Ｄ制御プログラム、およびＤ制御で使用されるデータが格納され、そのほかの制御プログラムおよびデータも順に格納され、最後に、第ｎの領域２７ｎには、Ｎ制御プログラム、およびＮ制御で使用されるデータが格納される。
【００４６】
ただし、本発明はこれに限られるものではなく、すなわち、各サブプログラムで用いられるデータは、そのデータを用いるサブプログラムと同じ分割領域に記憶されていなければならないわけではなく、利用される際にすでにメモリチェックが済んでいるいずれかの分割領域に記憶されていればよく、また、重要度に応じていずれかの分割領域に記憶されていればよい。このようにすれば、所定の分割領域についてメモリチェックが実行されることにより、一のサブプログラムによってデータが参照される前にそのデータが正常であることが確実に検証される。
【００４７】
第１の領域２７ａにプログラムおよびデータが格納されるイニシャル処理としては、データ類の初期値設定処理（各センサの初期値たとえばスロットルポジションデータ、吸気圧データ、点火時期データ、および噴射量データなどの初期値設定処理）や、割込みの初期設定処理などが挙げられる。なお、イニシャル処理のうち最初に実行すべき処理である、Ａ／Ｄ変換や通信やタイマなどレジスタ類の設定処理は、ＦＬＡＳＨ−ＲＯＭ２７の記憶領域を参照せずに実行されるようにしている。
【００４８】
また、第１の領域２７ａにプログラムおよびデータが格納されるＡ制御としては、各種センサ・スイッチ６１からの信号の入力処理などが挙げられる。第２の領域２７ｂにプログラムおよびデータが格納されるＢ制御としては、点火タイミングの補正処理、および噴射タイミングの補正処理などが挙げられる。第３の領域２７ｃにプログラムおよびデータが格納されるＣ制御としては、モータの回転やバルブ開閉といったアクチュエータの制御量算出処理などが挙げられる。
【００４９】
続いて処理の流れを説明する。図３はＦＬＡＳＨ−ＲＯＭ２７内のデータリテンションのチェックをする処理（メモリチェック）を示すフローチャートであり、このルーチンはイグニッションＳＷ５１がオンしたとき、または、レバーがキックされたときにＣＰＵ２１が起動されて実行される。
【００５０】
まず、ステップ（Ａ−１）ではイニシャル処理が行われる。図４は、このステップ（Ａ−１）のイニシャル処理の詳細を示すフローチャートである。イニシャル処理では、まず、上述のレジスタ類の設定が行われる（Ｂ−１）。
【００５１】
続いて、第１の領域２７ａのメモリチェック（たとえばサムチェック）が行われ（Ｂ−２）、チェック結果が異常であった場合には、プログラムの実行停止またはリセットを行う（Ｂ−４）。一方、ステップ（Ｂ−３）においてチェック結果がＯＫであった場合には、処理を継続し、上述のデータ類の初期値設定（Ｂ−５）、各種割込みの初期設定（Ｂ−６）が行われ、その後、図３のステップ（Ａ−２）へと進む。
【００５２】
図３のステップ（Ａ−２）では、第１の領域２７ａのメモリチェックがＯＫであったので、この第１の領域２７ａに格納されているＡ制御が実施される。Ａ制御としては上述のように各種センサ・スイッチ６１からの信号の入力処理などが挙げられる。
【００５３】
続いて、第２の領域２７ｂのメモリチェック（たとえばサムチェック）が行われ（Ａ−３）、チェック結果が異常であった場合には（Ａ−４）、プログラムの実行停止またはリセットを行う（Ａ−１５）。一方、ステップ（Ａ−４）においてチェック結果がＯＫであった場合には、処理を継続し、この第２の領域２７ｂに格納されているＢ制御が実施される（Ａ−５）。Ｂ制御としては上述のように点火タイミングの補正処理、および噴射タイミングの補正処理などが挙げられる。
【００５４】
続いて、第３の領域２７ｃのメモリチェック（たとえばサムチェック）が行われ（Ａ−６）、チェック結果が異常であった場合には（Ａ−７）、プログラムの実行停止またはリセットを行う（Ａ−１５）。一方、ステップ（Ａ−７）においてチェック結果がＯＫであった場合には、処理を継続し、この第３の領域２７ｃに格納されているＣ制御が実施される（Ａ−８）。Ｃ制御としては上述のようにモータの回転やバルブ開閉といったアクチュエータの制御量算出処理などが挙げられる。
【００５５】
その後、順々に、分割した領域毎にメモリチェックが行われ（Ａ−９、Ａ−１２）、メモリチェックの結果が異常の場合には（Ａ−１０、Ａ−１３）、プログラムの実行停止またはリセットを行い（Ａ−１５）、メモリチェックの結果が正常であれば（Ａ−１０、Ａ−１３）、そのチェックが済んだ領域に格納されているプログラム処理が実行され（Ａ−１１、Ａ−１４）、ステップ（Ａ−２）に戻って処理が繰り返される。
【００５６】
なお、装置起動後、各分割領域についてメモリチェックが１回終了した以降は、さらにメモリチェックをすることなく各分割領域に格納されているサブプログラムを実行することができる。よって、必要以上にメモリチェックが実行されることによるＣＰＵ２１の処理負荷の増大によって制御に悪影響が生じることを防止することができる。
【００５７】
以上詳述したことから明らかなように、本実施形態によれば、メモリ領域を分割し、分割した領域毎にメモリチェックを行うことができるようにしたので、メモリチェックが済んだ領域のプログラムを実行することができる。このため、メモリ全体のチェック完了を待たずにエンジン始動の制御を進めることができ、エンジン始動に悪影響を及ぼすことがない。
【００５８】
すなわち、ＦＬＡＳＨ−ＲＯＭ２７（不揮発性メモリ）の記憶領域は、予め、制御プログラムを構成する複数のサブプログラム（Ａ制御プログラム、Ｂ制御プログラム等）の実行順序に基づいて複数の分割領域（第１の領域〜第ｎの領域）に分割されている（図２参照）。そして、複数のサブプログラムの実行順序に従って、順次、複数の分割領域のうち次に実行されるサブプログラムを記憶する一の分割領域についてメモリチェックを実行する（図４；Ｂ−２，Ｂ−３、図３；Ａ−３，Ａ−４，Ａ−６，Ａ−７，Ａ−９，Ａ−１０，Ａ−１２，Ａ−１３）。このとき、メモリチェックが分割領域単位で実行されるので、処理が短時間に終了する。続いて、メモリチェックの結果が正常である場合（図４；Ｂ−３：Ｙｅｓ，図３；Ａ−４:Ｙｅｓ，Ａ−７：Ｙｅｓ，Ａ−１０：Ｙｅｓ，Ａ−１３：Ｙｅｓ）、当該分割領域に記憶されたサブプログラムを実行する（図３：Ａ−２，Ａ−５，Ａ−８，Ａ−１1，Ａ−１４）。
【００５９】
つまり、サブプログラムの実行に先立って当該分割領域についてメモリチェックが実行され、当該分割領域が正常であることが検証された後に、サブプログラムを正常に実行することができる。一方、データリテンション（データ保持特性）の劣化等により当該分割領域に異常が生じた場合、メモリチェックにおいて異常と判定されることにより（図４；Ｂ−３：Ｎｏ，図３；Ａ−４:Ｎｏ，Ａ−７：Ｎｏ，Ａ−１０：Ｎｏ，Ａ−１３：Ｎｏ）、当該記憶領域に記憶されたサブプログラムの実行が回避されるので（図４；Ｂ−４、図３；Ａ−１５）、制御プログラムの暴走及びそれに起因する車両のエンジン破壊等を確実に防止することができる。
【００６０】
また、各サブプログラム（Ａ制御プログラム、Ｂ制御プログラム等）によって参照されるデータは、当該サブプログラムが記憶される当該分割領域に記憶されているので、当該分割領域についてメモリチェックが実行されることにより、当該サブプログラムとその参照データについて正常であることが確実に検証される。従って、サブプログラムが異常なデータを参照して異常な制御を行ったり、プログラムが暴走したりすること等を確実に防止することができる。
【００６１】
また、本実施形態におけるメモリチェックは、ＦＬＡＳＨ−ＲＯＭ２７の各分割領域に対するサムチェックであるので、簡単な処理で確実にデータリテンションの劣化等による分割領域の異常を検出することができる。
【００６２】
尚、本発明は上述した実施形態に限定されるものではなく、本発明の主旨を逸脱しない範囲で種々の変更を施すことが可能であることはいうまでもない。
【００６３】
たとえば、上記実施形態では、本発明を二輪車用の制御装置に適用した例を示したが、四輪車用の制御装置に適用してもよい。尚、車両用制御装置で制御する車両が二輪車である場合には、バッテリーが完全放電した状態でもレバーをキックすることにより始動可能であることが望ましいが、本実施形態によれば、複数のサブプログラムの実行順序に従って、順次、分割領域のメモリチェックと当該分割領域に記憶されたサブプログラムとが実行されるので、二輪車のキック始動時における短時間で微弱な発電でもメモリチェックを行いつつ始動処理をスムーズに継続、実行することができるという効果が奏される。
【００６４】
また、上記実施形態では、フラッシュＲＯＭについてメモリチェックを実行する例を示したが、ＥＥＰＲＯＭなど他の電気的にデータ書き換え可能な不揮発性メモリに制御プログラムが記憶されている場合でも、本発明の適用によりデータリテンションの劣化等による記憶領域の異常を確実に検出することができる。
【産業上の利用可能性】
【００６５】
本発明は、二輪車や四輪車などの車両において制御に悪影響を与えずに確実なメモリチェックを行うことが必要な場合などに利用可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施形態の二輪車用電子式エンジン制御装置の全体構成を示す図である。
【図２】ＦＬＡＳＨ−ＲＯＭの記憶領域を示す図である。
【図３】ＦＬＡＳＨ−ＲＯＭ内のデータリテンションのチェックをする処理を示すフローチャートである。
【図４】図３のステップ（Ａ−１）のイニシャル処理の詳細を示すフローチャートである。
【図５】従来の車両用制御装置において車両停止中またはエンジン停止中にメモリチェックを行う方法の処理の流れを示すフローチャートである。
【図６】従来の車両用制御装置においてメモリ領域を分割してチェックする方法の処理の流れを示すフローチャートである。
【符号の説明】
【００６７】
１  制御ユニット（車両用制御装置）
２  マイクロコンピュータ
２１  ＣＰＵ
２２  ＲＡＭ
２３、２５  入出力ポート（Ｉ／Ｏポート）
２６  Ａ／Ｄ変換器
２７  フラッシュＲＯＭ（ＦＬＡＳＨ−ＲＯＭ）
３  出力インターフェース回路
３１  各種装置
５  電源回路
５１  イグニッションＳＷ
５２  バッテリー
６  入力インターフェース回路
６１  各種センサ・スイッチ
【図１】
2009126451.tif 000003
【図２】
2009126451.tif 000004
【図３】
2009126451.tif 000005
【図４】
2009126451.tif 000006
【図５】
2009126451.tif 000007
【図６】
2009126451.tif 000008