(57)【特許請求の範囲】
【請求項１】
計算機コア（２）と，少なくとも１つのリードオンリーメモリ領域（３）と，少なくとも１つの再書込み可能なメモリ領域（５）とを有する，自動車内の制御装置内のマイクロコントローラ（１）を制御する方法であって，前記再書込み可能なメモリ領域（５）に，前記計算機コア（２）によって処理される少なくとも１つの制御プログラムが記憶されており：
検査プログラムを，前記再書込み可能なメモリ領域（５）の１回書込み可能なメモリ領域（４）に記憶するステップと；
サービスプログラムを，リードオンリーメモリ領域（３）に記憶するステップと；
規則的な間隔で，前記制御プログラムによって前記サービスプログラムを呼び出すステップと；
前記サービスプログラムによって前記検査プログラムを呼び出すステップと；
前記制御プログラムによって前記サービスプログラムが呼び出された場合に，前記サービスプログラムによってカウンタをリセットするステップと；
前記検査プログラムによって再書込み可能なメモリ領域の少なくとも一部を検査するステップと；
検査されたメモリ領域が操作されている場合に検査プログラムによって，または前記カウンタがオーバーフローした場合にはカウンタによって，前記制御装置のリセットを作動させるステップと；
を少なくとも含む，マイクロコントローラ制御方法。
【請求項２】
前記制御プログラムが，前記マイクロコントローラ（１）の内部のメモリ領域に記憶されていることを特徴とする請求項１に記載のマイクロコントローラ制御方法。
【請求項３】
前記制御プログラムが，前記マイクロコントローラ（１）の外部のメモリ領域に記憶されていることを特徴とする請求項１に記載のマイクロコントローラ制御方法。
【請求項４】
前記検査プログラムが，前記マイクロコントローラ（１）の内部のメモリ領域に記憶されていることを特徴とする請求項１に記載のマイクロコントローラ制御方法。
【請求項５】
前記検査プログラムが，前記マイクロコントローラ（１）の内部のメモリ領域に記憶され，前記内部のメモリ領域がパスワードによって保護されていることを特徴とする請求項４に記載のマイクロコントローラ制御方法。
【請求項６】
計算機コア（２）と，少なくとも１つのリードオンリーメモリ領域（３）と，少なくとも１つの再書込み可能なメモリ領域（５）とを備えたマイクロコントローラ（１）を有する，自動車のための制御装置であって，前記再書込み可能なメモリ領域（５）内に，前記計算機コア（２）によって処理される少なくとも１つの制御プログラムが記憶されており：
検査プログラムを記憶するために，再書込み可能なメモリ領域（５）の１回書込み可能なメモリ領域（４）が設けられており，
サービスプログラムを記憶するために，前記リードオンリーメモリ領域（３）が設けられており，
前記計算機コア（２）は，規則的な間隔で前記制御プログラムによる呼出しに基づいて前記サービスプログラムを処理し，
前記計算機コア（２）は，前記サービスプログラムによる呼出しに基づいて，前記検査プログラムを処理し，
前記制御プログラムによって前記サービスプログラムが呼び出された場合に，前記サービスプログラムによってリセット可能なカウンタが設けられており，
前記検査プログラムによって前記再書込み可能なメモリ領域（５）の少なくとも一部が検査可能であり，
検査されたメモリ領域が操作されている場合に前記検査プログラムによって，または前記カウンタがオーバーフローした場合に，前記制御装置のリセットが作動可能である，制御装置。
【請求項７】
前記１回書込み可能なメモリ領域（４）が，前記マイクロコントローラ（１）の内部に配置されていることを特徴とする請求項６に記載の制御装置。
【請求項８】
前記再書込み可能なメモリ領域（５）が，フラッシュメモリとして形成されていることを特徴とする請求項６に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，計算機コア，少なくとも１つのリードオンリーメモリ領域および少なくとも１つの再書込み可能なメモリ領域を有する自動車の制御装置内のマイクロコントローラを制御する方法に関するものである。再書込み可能なメモリ領域には，計算機コアによって処理される少なくとも１つの制御プログラムが記憶されている。
【０００２】
本発明はさらに，マイクロコントローラを有する，自動車のための制御装置に関する。
【背景技術】
【０００３】
ここで自動車というのは，最も広い意味において，制御装置によって制御可能な内燃機関を備えた車両のことである。このような制御装置は，車両技術において，たとえばエンジン制御装置のように，多様な機能のために使用される。その場合にたとえば，エンジン制御装置のチップチューニングにおいて，しばしば不揮発性の，しかし何回も書込み可能なメモリ（たとえばフラッシュ）が操作される。そこに記憶されているデータが，より高いエンジン出力が達成されるように，変更される。従来技術からは，始動の際および／または制御装置プログラムのランタイムの間に検査ルーチンを作動させる，マイクロコントローラを制御する方法も知られている。さらに，このような制御装置は，トランスミッションおよび／またはＡＢＳシステムを制御するためにも使用される。
【０００４】
ドイツ公開公報ＤＥ１９７５３７３０では，内燃機関を制御する方法と装置が示されている。装置は，少なくとも１つのマイクロプロセッサと，少なくとも１つのプログラミング可能なメモリと，再書込み可能なメモリを有している。再書込み可能なメモリ内には，マイクロプロセッサによって処理されるプログラムおよび／またはデータが格納されている。プログラムは，検査後に始めて処理される。プログラミング可能なメモリの内容が第１の値をとった場合に，プログラムはそれ以上の検査なく処理され，他の場合には少なくとも１つの他の検査が行われる。この方法によっては，変更されたデータおよび／またはプログラムを含む，または制御装置メーカーによって許可されていないデータセットが，一連の制御装置において遂行可能であることが，達成される。同時に自動車メーカーは，検査の知識なしで，制御装置を応用する，すなわち個々の制御装置内のデータセットを変更する，可能性を有している。その場合に，プログラミング可能なメモリの内容の保護が問題になる。
【０００５】
ＤＥ１９７２３３３２Ａ１には，マイクロコンピュータをプログラムの操作に対して保護する方法とこのように保護されたマイクロコンピュータが記載されている。マイクロコンピュータは，計算機コア，リードオンリーメモリおよび再書込み可能なメモリを有している。リードオンリーメモリには，検査プログラムが記憶されており，その検査プログラムはキーを用いて再書込み可能なメモリのメモリ内容からコードワードを形成する。その場合にコードワードは，同様に再書込み可能なメモリに格納されている，比較コードワードと比較される。この比較に基づいて，マイクロコンピュータが阻止され，あるいは許可される。
【０００６】
既知の方法では，保護された内部のフラッシュ領域が使用される場合でも，アプリケーションがこのメモリのみを必要とし，外部のメモリを必要としない場合にのみ，保護が可能である。しかしアプリケーションは外部のメモリを必要とすることが多いので，これらのアプリケーションにおいては，組み込まれた操作保護は作用せず，または迂回される。さらに，内部の保護されたメモリを持たないコントローラが使用される場合には，検査ルーチンの操作が可能である。最も簡単な場合においては，このルーチンの呼出しが阻止される。
【０００７】
それに対して検査ルーチンが，コントローラ内の変更できない領域（たとえばＲＯＭ）に格納されている場合には，これは一方ではコスト上昇を，他方ではアルゴリズム選択における柔軟性の乏しさを招く。その場合にさらに，コントローラテクノロジーによってはＲＯＭが実現できないことも多い。ＲＯＭが提供される場合でも，基本的に，大きいＲＯＭ領域を使用する場合に注意しなければならない問題が残る。プログラムコードの変更は，極めて高価である。というのは，それぞれ新しいマスクが必要となるからである。コードを変更しなければならない場合には，プロジェクト内で新しいコードが使用可能になるまでに，少なくとも４ヶ月かかる（ラインスループットタイム）。顧客固有のコードにおいては，各顧客が専用のＲＯＭを必要とするか，あるいはＲＯＭをそれに応じて増大させなければならない。どちらもコスト増をもたらし，それは顧客と半導体メーカーのためにはならない。ここでも，コードの実施をどのようにして強制できるか，が解決されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って本発明の課題は，許可されない介入に対してより良好に保護する，制御装置内のマイクロコントローラのメモリを検査する方法を提供することにある。また，制御装置内のマイクロコントローラにおいて，許可されないメモリ内容の操作をより効果的に阻止することにある。
【課題を解決するための手段】
【０００９】
本発明に基づく方法は，再書込み可能なメモリ領域の１回書込み可能なメモリ領域に検査プログラムを記憶するステップと，リードオンリーメモリ領域にサービスプログラムを記憶するステップと，規則的な間隔で制御プログラムによってサービスプログラムを呼び出すステップと，サービスプログラムによって検査プログラムを呼び出すステップと，制御プログラムによって呼び出された場合にサービスプログラムによってカウンタをリセットするステップと，検査プログラムによって再書込み可能なメモリ領域の少なくとも一部を検査するステップと，検査されたメモリ領域が操作されている場合には検査プログラムによって，あるいはカウンタがオーバーフローした場合にはカウンタによって，リセットを作動させるステップを含む。
【００１０】
本発明に基づく方法は，１回だけ書込み可能なメモリ内のメモリを検査するためのコードシーケンス（検査プログラム）が，操作できないことを特徴としている。このような１回だけ書込み可能なメモリ領域は，たとえばすでにある，内部の再書込み可能なメモリ（フラッシュ）内に実現することができる。幾つかのマイクロコントローラは，たとえば，内部のフラッシュの一部をパスワードにより保護している。他方で，本発明に基づく方法では，このコードシーケンスの実行も効果的に保証される。制御装置のそれぞれの制御プログラム内に，調節することのできる規則的な間隔で，検査プログラムの呼出しが設けられていなければならない。検査プログラムは，リードオンリーメモリに記憶されているサービスプログラムによって呼び出される。従ってこのサービスプログラムは，許可されない介入および操作から保護されている。
【００１１】
このサービスプログラムは，規則的に呼び出されなければならない。というのは，そうでないと，クロック供給によって，影響を受けずに連続的に進行するカウンタが，オーバーフローを信号で知らせるからである。カウンタは止めることはできず，サービスプログラムの呼出しによってのみ，リセットすることができる。カウンタがサービスプログラムの呼出し前にオーバーフローに達した場合には，カウンタはマイクロコントローラのリセットを発生させる。
【００１２】
カウンタは，専用のクロック供給を有する独立したカウンタモジュールとして実現することができる。そのカウンタモジュールはマイクロコントローラ内部または制御装置内の，保護された領域内に配置されている。同様に，マイクロコントローラによっては，プログラム技術的な実装が考えられる。カウンタのオーバーフローは，たとえばカウンタエンドに達することによって作動させることができる。オーバーフローに達する時点は，カウンタがリセットを作動させることのないように，サービスプログラムが再び呼び出された後になるように時間間隔を定めなければならない。時点を調節するために，それに応じたカウンタエンドを有するカウンタが選択され，またはそれに達した場合に同様にオーバーフローを信号で知らせるようにカウンタ状態が調節される。制御プログラムによってサービスプログラムを呼び出す場合に，一方では，検査プログラムが呼び出され，他方ではカウンタがリセットされる。
【００１３】
リセットは，たとえば，制御装置がオフにされること，または制限された機能を許可するデータセットによって駆動されること，とすることができる。その場合に同時に，他の制御装置に適切な信号を出力することもできる。特に，修理工場における車両の修理の要請を作動させる，警告信号を出力すると，効果的である。
【００１４】
また，本発明の課題は，マイクロコントローラを有する，自動車のための制御装置によって解決される。その制御装置においては，検査プログラムを記憶するために，再書込み可能なメモリ領域の１回書込み可能なメモリ領域が設けられており，サービスプログラムを記憶するために，リードオンリーメモリが設けられており，計算機コアは規則的な間隔で，制御プログラムによる呼出しに基づいてサービスプログラムを処理し，計算機コアはサービスプログラムによる呼出しに基づいて検査プログラムを処理し，制御プログラムによって呼び出された場合にサービスプログラムによってリセット可能なカウンタが設けられており，再書込み可能なメモリ領域の少なくとも一部が検査プログラムによって検査可能であり，検査されたメモリ領域が操作されている場合には検査プログラムによって，またはカウンタがオーバーフローしている場合に，リセットが作動可能である。
【００１５】
本発明の特に好ましい形態が，さらに従属請求項にも記載されている。
【発明の効果】
【００１６】
本発明に基づく方法は，既知の方法に比べて幾つかの利点を提供する。すなわち，コントローラチップのために極めてわずかなコスト増しか発生せず，またはコスト増は発生しない。というのは，最小限の手間しか増加しないからである。また，検査プログラムを要求や需要に個別に適合させることができる。というのは，このコードシーケンスはＲＯＭマスクに含まれていないからである。従って顧客固有に維持することもできる。さらに，コントローラメーカーはこの機能性を他の顧客にも提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下，本発明の好ましい形態を，２つの図面を用いて詳細に説明する。
図１には，本発明に基づく制御装置のためのマイクロコントローラ１が示されている。マイクロコントローラは，計算機コア２，リードオンリーメモリ３，１回だけ書込み可能なメモリ４および再書込み可能なメモリ５を備える。制御装置は，たとえば，絞り弁，噴射すべき燃料量または他の変量を制御するエンジン制御装置とすることができる。しかし，トランスミッション，ＡＢＳシステムまたは自動車内の他のシステムを制御する制御装置も，同様に考えられる。計算機コア２は，記憶されているプログラムとデータを処理するための，通常のマイクロプロセッサである。リードオンリーメモリまたはＲＯＭ３は，固定的に記憶されたプログラムを有しており，そのプログラムはＲＯＭ３を交換することによってのみ変更することができる。このメモリには，通常，最小限のプログラムが格納されている。その最小限のプログラムによって，計算機コア２は，他のメモリからのプログラムとデータを処理することができる。
【００１８】
再書込み可能なメモリ５は，ＥＰＲＯＭまたはフラッシュＥＰＲＯＭとして形成されており，制御装置の変更可能なプログラムとデータを有している。１回だけ書込み可能なメモリ４は，再書込み可能なメモリ（フラッシュ）５のうちの，パスワードによって保護されているメモリ領域である。このメモリ領域４には，マイクロコントローラのコード領域やデータ領域を検査する任務を有する，コードシーケンスが記憶されている。この検査プログラムは，マイクロコントローラのコード領域やデータ領域に対する操作が認識された場合に，対抗措置をとり，その対抗措置はたいていはリセットの作動である。その場合にリセットの程度は，それぞれ所望の対抗措置に適合させることができる。たとえば，制御装置を完全にオフにすることができる。制御装置の完全オフは，制御装置がエンジン制御装置である場合には車両の即座の停止状態をもたらす。または制御装置に，最小限のコンフィグレーション（環境定義ファイル）を供給してもよい。その場合，制御装置は機能的な準備ができた状態にはあるものの，完全に機能できるようにするためには，修理工場における修理が必要となる。
【００１９】
図１では，各メモリ領域が別々に記載されているが，それはそれらの異なる機能を特徴づけようとするためである。異なる機能性を保持しながら，メモリ領域を別々の構成要素によって，または共通の構成要素内に実現することが可能である。すなわち，特にフラッシュメモリ５をマイクロコントローラの構成要素の内部で実現することも，外部のメモリモジュールとして実現することもできる。
【００２０】
図２には，本発明に基づく方法の流れが，概略的に図示されている。領域Ａ，Ｂ，ＣおよびＤは，機能的に異なるメモリ領域を表しており，それらのメモリ領域内にそれぞれプログラムとデータが格納されている。図示の実施例において，領域Ａはマイクロコントローラ内のハードウェア領域を，Ｂはマイクロコントローラ内のＲＯＭ領域を，Ｃはマイクロコントローラ内のフラッシュ領域を記述しており，Ｄは外部のフラッシュメモリ領域を示している。
【００２１】
外部のフラッシュメモリ領域Ｄ内には，アプリケーションコードとして，制御装置のための制御プログラムが記憶されている。プログラムは，コード内に’ＣＡＬＬ’指令を有しており，同指令によってマイクロコントローラのＲＯＭメモリ領域Ｂに格納されているサービスプログラムが呼び出される。エントリーコードに応じて，サービスプログラム内の’ＳＥＲＶＩＣＥ’が作動する。このサービスプログラムは，２つの事柄を作動させる。１つは，マイクロコントローラＡ内のカウンタモジュールとして実現されているカウンタ’ＣＯＵＮＴＥＲ’がリセットされる。カウンタモジュールはクロック導線と接続されておりカウンタは独立して連続的に進行する。最大のカウンタ状態に達した場合には，オーバーフローが信号で示される。他方で，同時に，検査プログラムへの飛躍’ＪＵＭＰ’が作動される。この検査プログラムは，コードシーケンスとして内部のフラッシュ内の１回だけ書込み可能なメモリ領域に記憶されている。マイクロコントローラの内部のフラッシュは，パスワードによって保護され，従って一度だけ書込み可能な領域を有している。
【００２２】
検査プログラムは，マイクロコントローラによって使用されるメモリの少なくとも一部を，たとえばチェックサムの生成のような，既知の検査方法を用いて検査する。検査によって，記憶されているデータおよび／またはプログラムに対して操作が行われたことが検出された場合には，リセットが作動される。許可されない変更が検出されない場合には，’ＲＥＴＵＲＮ’指令によって再び制御プログラムへ戻る。
【００２３】
カウンタがオーバーフローを信号で知らせた場合，すなわち定められた時間が経過した場合には，同様にリセットが作動される。このリセットは，選択的に，制御装置が完全にオフにされること，または予め定義されたパラメータを使用して制御装置が駆動されることを意味することができる。それは，制御装置の機能性は保証されながらも，修理工場での修理を早急に必要とする，最小限のコンフィグレーションにかかわる。リセットは，装置がオフにされて，再びオンにされるまでの間，アクティブであり続ける（いわゆるパワーオンリセット）。
【００２４】
カウンタは，影響を受けずに連続的に進行するので，オーバーフローの達成とそれに必然的に伴う制御装置のリセットは，カウンタが規則的にリセットされる場合にのみ，阻止することができる。カウンタのリセットは，操作不可能なＲＯＭ領域Ｂ内のサービスプログラムによってのみ作動させることができるので，サービスプログラムを規則的に制御プログラムによって呼び出さなければならない。従って，’ＣＡＬＬ’指令を持たなければならない制御プログラムを，比較的保護されていないフラッシュ領域Ｄに記憶させることができる。なぜならこの方法によれば，操作によっても結果的にマイクロコントローラのメモリの検査を阻むことができないからである。マイクロコントローラのメモリが操作されていない場合にだけ，制御装置の永続的な機能性が保証されている。
【００２５】
本発明に基づく方法は，既知の方法に比較して幾つかの利点を提供する。すなわち，コントローラチップのために極めてわずかなコスト増しか発生せず，あるいはコスト増は発生しない。というのは，最小の手間増大しか必要とされないからである。さらに，検査プログラムを個別に要請または必要に適合させることができる。というのは，このコードシーケンスはＲＯＭマスクに含まれていないからである。従って顧客固有に維持することもできる。さらに，コントローラメーカーはこの機能性を他の顧客にも提供することができる。
【００２６】
コントローラ内部のフラッシュを持たないシステムについても，同じ方法を適用することができる。従ってこの方法は，内部と外部のフラッシュを有するシステムのための保護が乏しいという欠点を除去し，コンポーネントの結合との組み合わせにおいて，極めて確実な方法である。上述した実施例では，再書込み可能なメモリ領域はマイクロコントローラの内部に設けられているが，もちろん外部に設けることもできる。
【図面の簡単な説明】
【００２７】
【図１】制御装置のための，本発明に基づくマイクロコントローラを示すブロック図である。
【図２】本発明に基づく方法を説明するフローチャートである。
【符号の説明】
【００２８】
１      マイクロコントローラ
２      計算機コア
３      リードオンリーメモリ
４      書込み可能なメモリ
５      再書込み可能なメモリ
【図１】
0004643268.tif 000002
【図２】
0004643268.tif 000003