(57)【特許請求の範囲】
【請求項１】
プログラミング可能メモリ装置を有する制御装置の作動方法において、
メモリ装置のプログラミングを、多数のメモリプログラミング制御過程を順次連続して実行することによって行ない、
検査ステップ（Ｓ１）の時点迄実行されるべきメモリプログラミング制御過程のうち、選択された２・３個、又はそれ以上の全てのメモリプログラミング制御過程がエラーなしに実行されたかどうか、当該メモリプログラミング制御過程による障害乃至誤作動を回避するために所定の条件の状態を検査する検査ルーチンを用いて確認する前記検査ステップ（Ｓ１）と、
前記検査ステップ（Ｓ１）での前記検査結果に依存して、前記メモリプログラミング制御過程が、別のメモリプログラミング制御過程の実行下で前記検査ステップ（Ｓ１）の時点迄実行されるべき前記メモリプログラミング制御過程に基づいて継続されているかどうか前記経過監視プログラムを用いて判定される判定ステップ（Ｓ２）を有しており、
前記メモリプログラミング制御過程を制御プログラムの作動によって実行し、
前記判定ステップ（Ｓ２）で行われた判定に依存して、配属された制御プログラム又は配属された制御プログラム部分が実行されたかどうか検査することによって、メモリプログラミング制御過程が実行されたかどうか前記経過監視プログラムを用いて検査すること
を特徴とする方法。
【請求項２】
検査ステップ（Ｓ１）によって当該制御プログラムの実行を検査する制御プログラムによって、本来の制御過程の実行の他に、カウンタのカウント状態を変化させ、前記カウンタのカウント状態の変化の際に、前記検査ステップ（Ｓ１）によってメモリプログラミング制御過程の実行を検査する該メモリプログラミング制御過程毎に、前記カウント状態変化の形式と範囲を個別に前記制御プログラムにより決定することができる請求項１記載の方法。
【請求項３】
検査ステップ（Ｓ１）によって当該制御プログラムの実行を検査する制御プログラムによって、前記制御プログラムの実行時に本来の制御過程の実行の他に、配属された識別符号をセット又は消去させ、該識別符号により、任意の事後の時点で、前記制御プログラムを用いてエラーなしに実行されたかどうか検査する請求項１又は２記載の方法。
【請求項４】
検査ステップ（Ｓ１）の検査結果として、外部プログラミング装置によって、所定の電圧が制御装置の入力端子に印加されるか、又は、相応の制御過程が当該制御装置の監視のために実行されるか又は実行されたことが検出されたという所定の条件が検出された場合に限って、メモリ装置のプログラミングを継続する請求項１から３までのいずれか１項記載の方法。
【請求項５】
検査ステップ（Ｓ１）の検査結果として、メモリ装置のプログラミングに通常のように先行する制御装置の初期化を行い、又は、相応の制御過程が当該メモリ装置の監視のために実行されるか、又は、実行されたことが検出されたという所定の条件が検出された場合に限って、メモリ装置のプログラミングを継続する請求項１から４までのいずれか１項記載の方法。
【請求項６】
検査ステップ（Ｓ１）の検査結果として、制御装置と外部プログラミング装置との間で、所定のプロトコルの維持の下で通信が開始されるか、又は開始されたか、又は相応の制御過程を当該通信の監視のために実行されるか又は実行されたという所定の条件が検出された場合に限って、メモリ装置のプログラミングを継続する請求項１から５までのいずれか１項記載の方法。
【請求項７】
検査ステップ（Ｓ１）の検査結果として、外部プログラミング装置の相応の要請が存在し、又は相応の制御過程が当該外部プログラミング装置の監視のために実行されるか、又は実行されたという所定の条件が検出された場合に限って、メモリ装置のプログラミングを継続する請求項１から６までのいずれか１項記載の方法。
【請求項８】
制御装置と該制御装置の揮発性メモリ内の外部プログラミング装置との間の通信が開始して初めて、メモリ装置の、当該メモリ装置の相応の端子でのロック解除のために、プログラミングの前に印加されるべきアドレス及びデータを、制御装置の揮発性メモリに書き込む請求項１から７までのいずれか１項記載の方法。
【発明の詳細な説明】
本発明は、プログラミング可能メモリ装置を有する制御装置の作動方法に関する。
その種の方法は、例えば、ドイツ連邦共和国特許公開第４３３２４９９号公報に開示されている。この刊行物に記載されている制御装置は、フラッシュＥＰＲＯＭの形式での、プログラミング可能な、正確に言うと取り外し可能な非揮発性メモリ装置を有する自動車制御装置である。フラッシュＥＰＲＯＭを用いることにより、技術的意義が増大する。と言うのは、フラッシュＥＰＲＯＭは、「通常の」ＥＰＲＯＭの特徴（狭いスペースで高いメモリセル密度）とＥＥＰＲＯＭの特徴（メモリ内容の、電気的、それと共に、簡単且つ快適な消去）とをそれ自身に統合しているからである。
フラッシュＥＰＲＯＭの初期プログラミング、即ち、消去乃至オーバーライトのために（有利には、自動車製造業での自動車タイプに依存して）、又は、フラッシュＥＰＲＯＭの事後のプログラム書き換えのために（顧客サービスでの、エラー除去又は相応の個別の顧客の希望）、外部プログラミング装置が、例えば、パーソナルコンピュータの形式で制御装置に接続される。その種のプログラミング装置によって、必要時に、制御装置内に記憶された制御プログラムを実行して、フラッシュＥＰＲＯＭ内のデータを消去したりオーバーライトしたり、場合によっては、新たに記憶すべきデータを利用したりされる。
フラッシュＥＰＲＯＭ内のデータの操作ミスによる、乃至、ケアレスミスによる消去又はオーバーライトを阻止するために、それを克服するようにされた一連の保護機構が設けられている。つまり、例えば、先ず、外部プログラミング装置を制御装置に接続し、総じて、この制御装置内で、相応の制御プログラムがフラッシュＥＰＲＯＭの内容の消去乃至オーバーライトのために作動開始する前に、相応に通信する必要がある。相応の制御プログラム自体の実行時でも、フラッシュＥＰＲＯＭをプログラミング乃至消去することができる前提条件を整えるために更に種々のハードルを克服する必要がある（例えば、フラッシュＥＰＲＯＭを、所定のアドレス乃至データコンビネーションを行うことによって、そのプログラミングの前にロック解除する必要がある）。
ケアレスミス乃至操作ミスによる、フラッシュＥＰＲＯＭ内のデータの消去乃至オーバーライトを阻止するために、多数の手段が設けられているけれども、それにも拘わらず、不幸な状況が重なると、ケアレスミス乃至操作ミスによる、フラッシュＥＰＲＯＭ内のデータの消去乃至オーバーライトが生じることがある。
この責任は、とりわけ、例えば、ハードウェアの誤差、ＥＭＶ放射又は場合によっては悪用する目的で所期の操作を行うことによっても生じることがある、制御装置乃至プログラミング装置の障害乃至誤作動にある。
従って、本発明の課題は、冒頭に記載した方法を更に改善して、プログラミング可能なメモリ装置に記憶されたデータを障害によって消去したりオーバーライトしたり、乃至、障害の影響で消去したりオーバーライトしたりするのを簡単なやり方で充分に排除することができるようにすることにある。
この課題は、本発明によると、プログラミング可能メモリ装置を有する制御装置の作動方法において、メモリ装置のプログラミングを、多数のメモリプログラミング制御過程を順次連続して実行することによって行ない、検査ステップの時点迄実行されるべきメモリプログラミング制御過程のうち、選択された２・３個、又はそれ以上の全てのメモリプログラミング制御過程がエラーなしに実行されたかどうか、当該メモリプログラミング制御過程による障害乃至誤作動を回避するために所定の条件の状態を検査する検査ルーチンを用いて確認する検査ステップと、検査ステップでの検査結果に依存して、メモリプログラミング制御過程が、別のメモリプログラミング制御過程の実行下で検査ステップの時点迄実行されるべきメモリプログラミング制御過程に基づいて継続されているかどうか経過監視プログラムを用いて判定される判定ステップを有しており、メモリプログラミング制御過程を制御プログラムの作動によって実行し、判定ステップで行われた判定に依存して、配属された制御プログラム又は配属された制御プログラム部分が実行されたかどうか検査することによって、メモリプログラミング制御過程が実行されたかどうか経過監視プログラムを用いて検査することによって解決される。
本発明によると、検査ステップの時点迄実行されるべきメモリプログラミング制御過程のうち、選択された２・３個、又はそれ以上の全てのメモリプログラミング制御過程がエラーなしに実行されたかどうか、当該メモリプログラミング制御過程による障害乃至誤作動を回避するために所定の条件の状態を検査する検査ルーチンを用いて確認する検査ステップと、検査ステップでの検査結果に依存して、メモリプログラミング制御過程が、別のメモリプログラミング制御過程の実行下で検査ステップの時点迄実行されるべきメモリプログラミング制御過程に基づいて継続されているかどうか経過監視プログラムを用いて判定される判定ステップが設けられている。
この各ステップを設けることによって、任意の各時点で、所定のように検査ステップの時点まで実行すべき制御過程の全て又は少なくとも主要部が実際に実行されたか、又は、その代わりに、例えば、もしかして省略されたり、不完全に、又は、過度に繰り返し実行されたりしなかったかどうか、検査することができる。制御過程が、正確に言うと、プログラミング可能メモリ装置の消去又はオーバーライトの指示及び実行の経過が、問題としている検査ステップの時点に至る迄所定のように行われた制御過程を、主要な制御過程とすると、プログラミング可能メモリ装置の消去又はオーバーライトの開始乃至実行が、このために設けられた形式で行われたか、又は、もしかして障害又は機能誤差によって作動開始されたか、又は、影響されたかどうか判定するための判定ステップでの検査結果を利用することができる。
メモリプログラミング制御過程を制御プログラムの作動によって実行し、判定ステップで行われた判定に依存して、配属された制御プログラム又は配属された制御プログラム部分が実行されたかどうか検査することによって、メモリプログラミング制御過程が実行されたかどうか経過監視プログラムを用いて検査することができ、制御装置の別の作動を個別に確認することができる。判定ステップで、検査ステップで検査された条件が充足されていない、即ち、１つ又は複数のメモリプログラミング制御過程が、エラーなしに、所定通りに実行されなかった、又は少なくともエラーなしに、規定通りに実行されなかったことが確認された場合には、メモリプログラミング制御過程の通常（規定通り）の継続を中断するのがよいと思われる。と言うのは、さもなければ、エラーなしに、規定通りに制御する機会はないからである。
従って、前述の方法ステップを設けることによって、障害によって開始された乃至障害の影響を受けた、プログラミング可能メモリ装置内に記憶されたデータの消去乃至オーバーライトを簡単に充分に排除する方法を提供することができる。
本発明の有利な実施例は、各従属請求項の対象である。
本発明について、以下、実施例を用いて詳細に説明する。
図には、本発明の方法ステップの実施例の経過図が示されている。
以下の説明は、制御装置の作動方法、殊に、例えば、自動車のエンジン、伝動装置、ブレーキ等の制御用の制御装置の、つまり、自動車制御装置の作動方法に関する。
制御装置は、プログラミング可能なメモリ装置、正確に言うと、フラッシュＥＰＲＯＭの形式の消去可能な非揮発性メモリ装置を有しており、この適用領域での、その装置の特別な特徴については既に冒頭に記載した。
メモリ装置のプログラミングは、例えば、直列インターフェースを介して自動車制御装置と接続されている外部プログラミング装置を介して行われる。
しかし、本発明は、外部プログラミング装置を用いた自動車制御装置内のフラッシュＥＰＲＯＭのプログラミングに限定されない。寧ろ、本発明は、極めて一般的に、プログラミング装置によって制御装置のメモリ装置をプログラミングすることが問題であるような箇所至る所で使うことができる。
プログラミング、正確に言うと、メモリ装置の消去乃至オーバーライトは、メモリプログラミング制御過程を順次連続して実行することによって行われる（後で更に一層正確に説明する）。
メモリプログラミング制御過程の実行は、障害がない限りで、実質的に、制御装置内に記憶されている制御プログラムの作動下で行われる外部プログラミング装置によって指示して実行される。しかし、制御プログラムの記憶のために使用されるメモリ装置は、既述のフラッシュＥＰＲＯＭにすべきではない。
前述の制御プログラムの呼び出しの際、この制御プログラムは、制御ユニット、例えば、マイクロプロセッサ、マイクロコントローラ等に配属された作動メモリ内に記憶されており、制御ユニットによる制御下で実行される。
制御プログラムを、うっかり間違えて、悪用又は規定通り実行しないことにより、つまり、障害によって開始乃至影響を受けた、プログラミング可能メモリ装置内に記憶されたデータの消去乃至オーバーライトが行われるのを阻止するために、例えば、図示の、以下詳細に説明する経過監視プログラムによって、経過が監視される。
図示の経過監視プログラムのステップＳ１では、全ての、又は、選択された個別の、又は、複数のメモリプログラミング制御過程の実行が監視される。
メモリプログラミング制御過程（その実行がここでは有利に監視することができる）は、殊に、同様に、所定の条件の状態を検査する検査ルーチンである。
その際、検査ルーチンによって検査すべき条件は、本実施例では、特に、その条件を無視して誤差制御すること、即ち、ここで考察している場合では、うっかり間違えたり、悪用したりしてフラッシュＥＰＲＯＭを消去乃至オーバーライトしたりすることがある条件である。
本実施例では、検査すべき条件として、５つの条件（条件（１）〜（５））が選択されており、これについて、以下詳細に説明する。
条件（１）は、制御装置の相応の入力端子にいわゆるプログラミング電圧が印加されているかどうかに関して検査することである。この条件（１）の検査の際、相応の検査ルーチンによって、プログラミング電圧が印加されているかどうか検出される。
前述のプログラミング電圧の、制御装置への印加は、外部プログラミング装置が、制御装置乃至フラッシュＥＰＲＯＭに、フラッシュＥＰＲＯＭのプログラミング又はプログラム書き換えが行われるべきであることを信号指示する手段である。前述のプログラミング電圧が制御装置に印加されていない場合且つその限りで、確実性の理由から、それ以外の状況とは無関係に、相応の経過制御の実施により、フラッシュＥＰＲＯＭのプログラミング（プログラミング書き換え）乃至消去を行なうべきではない。
この確実性を更に一層高めるために、ゼロからずれている任意の電圧の、制御装置の相応の入力端子への印加を検査するのみならず、それと同時に、電圧が下側限界値を下回っていない乃至上側限界値を上回っていない場合に限って、電圧が規定通り印加されているものとみなすために、場合によって印加されている電圧の高さを評価することを考慮することができる。
条件（２）は、制御装置の初期化に関して検査することである。相応の検査ルーチンによって、この条件を検査する際、制御装置がフラッシュＥＰＲＯＭのプログラミングのために設けられている形式で初期化されているかどうか検出される。
考察している制御装置は、制御装置の機能乃至作動形式を種々に決定する種々の作動形式であり得る。フラッシュＥＰＲＯＭの消去乃至オーバーライトのために、特殊な作動形式が設けられており、つまり、この特殊な作動形式は、特に、その特定の作動形式がフラッシュＥＰＲＯＭの消去乃至オーバーライトを支持する点で、制御装置の「通常」作動形式及び場合によっては別の作動形式から区別されるのである。この特殊な作動形式に制御装置が入るには、制御装置の特殊な初期化が必要である。制御装置の、その種の初期化が完了されていない場合且つその限りで、確実性の理由から、それ以外の状態とは無関係に、相応の経過制御を行うことによって、フラッシュＥＰＲＯＭのプログラミング（プログラム書き換え）乃至消去を行わないようにされる。
条件（３）は、制御装置と外部プログラミング装置との間の通信に関して検査することである。相応の検査ルーチンによって、この条件を検査する際、規定通りの通信を可能にするインターフェースプロトコルが作動しているかどうか検出される。
制御装置及び外部プログラミング装置は、本実施例の場合、直列インターフェースを介して接続される。このインターフェースを介して通信するには、特殊な制御及び監視を必要とし、つまり、いわゆるインターフェースプロトコルの作動によって、この特殊な制御及び監視を行うことができるのである。相応のインターフェースが作動しない場合且つその限りで、制御装置と外部プログラミング装置との間の規定通りの通信は可能ではなく、確実性の理由から、この場合には、それ以外の状態とは無関係に、フラッシュＥＰＲＯＭのプログラミング（プログラム書き換え）乃至消去は行わないようにされる。
条件（４）は、外部プログラミング装置の側からのフラッシュＥＰＲＯＭの消去乃至オーバーライトのための要請の呈示状態に関して検査することである。相応の検査ルーチンによる、この条件の検査の際、その種の要請が呈示されているのかどうか検出される。
フラッシュＥＰＲＯＭの消去乃至オーバーライトのために、制御装置及び外部プログラミング装置が相応の作動形式にされて、相互に通信することができるということで充分ではない。このためには、寧ろ、制御装置のプログラミング装置の明瞭な要請が必要である。確実性の理由から、それ以外の状態とは無関係に、フラッシュＥＰＲＯＭのプログラミング（プログラミング書き換え）乃至消去は行わないようにされる。
前述の条件（１）〜（４）は、実質的には、フラッシュＥＰＲＯＭのプログラミング（プログラミング書き換え）乃至消去のために、制御装置の外部からの指示による実行に関係する。
条件（５）は、フラッシュＥＰＲＯＭ自体の消去乃至オーバーライトの経過並びにそれと直接関係する手段に関して検査することである。相応の検査ルーチンによって、この条件を検査する際、このために必要な制御過程の経過が規定通り行われているかどうか検出される。
フラッシュＥＰＲＯＭ自体の消去乃至オーバーライトのため、並びにそれと直接関係する手段は、所定の時点で乃至所定の列順序で乃至所定の頻度で行われる必要がある。相応の制御過程の順序で規定通りの通常の場合とは偏差が生じる場合、確実性の理由から、それ以外の状態とは無関係に、フラッシュＥＰＲＯＭのプログラミング（プログラム書き換え）乃至消去は行わないようにされる。
条件（１）〜（５）は、相応の説明でその都度既に述べたように、一緒に、この条件に、メモリプログラミング制御過程の実施の列順序、期間及び回数が依存するということである。
条件（１）〜（５）は、同様に前述のように、検査ルーチンを用いて、必要に応じて任意回数、任意の長さ、任意の時点で検査され、つまり、この検査ルーチンの実行は、図示の経過監視プログラムのステップＳ１で検査される。
検査ルーチン、乃至、一般的に表現すると、その実行がステップＳ１で検査されるメモリプログラミング制御過程は、その実行中、任意の事後の時点で、場合によっては、どの程度頻繁に、どの程度の長さで、何時、実行されるのか、検査することができる手段を用いるように構成されている。
その種の手段は、例えば、配属された識別符号（フラッグ）を設定するか消去するかということにすることができる。
他の手段は、カウンタのカウント状態を変えることにあり、その際、その実行をステップＳ１で検査することができる各メモリプログラミング制御過程のカウント状態変化の形式と範囲を個別に決定することができ、必要な場合には（確実性を最大化するために）付加的に、どの程度の回数で、どの程度の長さの持続期間で、どの時点で、それぞれのメモリプログラミング制御過程の実行が行われるのかに依存するようにしてもよい。
ステップＳ１で実行される検査は、相応の識別符号乃至計数状態を個別に評価して行われる。
ステップＳ２では、その実行がステップＳ１で検査されたメモリプログラミング制御過程が、実際に（且つ、規定通りに）実行されたかどうか判定される。
ステップＳ２での判定結果に依存して、ステップＳ３に分岐するか、又は、ステップＳ４に分岐する。
ステップＳ３への分岐は、ステップＳ２で、その実行がステップＳ１で検査されるメモリプログラミング制御過程が実行されたか、又は規定通り実行されたか判定される場合に実行される。ステップＳ３への分岐の結果、メモリプログラミングが継続され、即ち、メモリプログラミング用の別の指示を行うため、及び、メモリプログラミング自体が規定通り更に処理される。
ステップＳ４への分岐は、ステップＳ２で、その実行がステップＳ１で検査されるメモリプログラミング制御過程が、実行されないか、又は、規定通り（例えば、部分的にしか）実行されないことが判定される場合に行われる。ステップＳ４への分岐の結果、メモリプログラミングが終了される、即ち、メモリプログラミング用の別の指示、及び、メモリプログラミング自体の実行が有利には所定の通り停止される。
既述の経過監視の実行は、例えば、メモリプログラミング制御過程を実行する制御プログラムによって停止することができ、その際、有利には、フラッシュＥＰＲＯＭの消去乃至オーバーライトの直前に検査が終了される。
付加的に、又は、択一選択的に、既述の経過監視プログラムを所定の事象（インタラプト制御された）に応じて実行させるようにすることもできる。
ステップＳ１によって監視可能なメモリプログラム制御過程は、経過監視の指示に依存して個別に、又は、任意に集めた群で検査して評価することができる。メモリプログラム制御過程のそれぞれは、他のメモリプログラム制御過程とは無関係に任意に繰り返して（場合によっては全く行わないことも）、任意の時点で既述の検査及び評価の対象に対して行うことができ、その際、それぞれの時点が、フラッシュＥＰＲＯＭの本来のプログラミング（プログラム切り換え）又は消去の前だけにある限りで行われる。
前述の手段に対して択一選択的に、又は、付加的に、その内容によって、フラッシュＥＰＲＯＭの内容の消去乃至オーバーライトが行われるデータが、例えば、いつでも自由にアクセスできるようにして制御装置内に記憶されているのではなく、制御装置と外部プログラミング装置（前述の説明（３）を参照）との間の通信の形成後初めて、プログラミング装置の指示で、プログラミング装置自体、又は、制御装置によって、制御装置の揮発性メモリ内に、このために設けられた箇所に書き込まれる。
前述のデータは、例えば、少なくともフラッシュＥＰＲＯＭの場合、本来の消去乃至オーバーライトの前に、いわゆるロック解除周期（アンロックサイクル）の形式でフラッシュＥＰＲＯＭのバスを介して与えられる必要があるデータ及びアドレス値である。
このアンロックサイクルの実行が、その実行に関係するデータ及びアドレス値が、制御装置の揮発性メモリ内の、前述のように設けられた箇所から取り出されるように構成されている場合、フラッシュＥＰＲＯＭをロック解除することができ、それによって、外部制御装置の停止に続いて、相応のデータが、このために設けられた箇所に転送される前に、プログラミングされることもない。
前述の手段を設けると、障害によって開始乃至影響を受けた、プログラミング可能なメモリ装置内に記憶されたデータの消去乃至オーバーライトが、簡単なやり方で充分に排除されるようにすることができる。
0003995717.tif 000002