(57)【要約】少なくとも１つのベースチップを用いて、少なくとも１つのアプリケーションを対象としシステムと関連付けられた少なくとも１つのマイクロコントローラユニットの動作を監視する方法およびベースチップが、限定された条件下だけでマイクロコントローラユニットのリセットを行うためさらに発展させることを可能にするため、マイクロコントローラユニットのリセット（Ｒ）は、少なくとも１つの特殊なシーケンス、および、特にリセット動作（Ｒ）に割り当てられた少なくとも１つのドライブまたはアクセスシーケンスがベースチップに供給されるならば引き起こされることが提案される。
2005529404.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのベースチップ、特にシステムベースチップを用いて、少なくとも１つのアプリケーションを対象としシステムと関連付けられた少なくとも１つのマイクロコントローラユニットの動作を監視する方法であって、
前記マイクロコントローラユニットのリセット（Ｒ）が、少なくとも１つの特殊なシーケンス、特にリセット動作（Ｒ）に割り当てられた少なくとも１つのドライブまたはアクセスシーケンスが前記ベースチップへ供給されるときに引き起こされる方法。
【請求項２】
特殊な動作モード（Ｓ）、特に前記ベースチップのフラッシュモードが、前記ベースチップと関連付けられた少なくとも１つの監視モジュールへのアクセスを前記マイクロコントローラユニットの通常の動作モード（Ｎ）よりも簡単化された形で可能にさせることにより、前記特殊なシーケンス後、かつ、前記リセット動作（Ｒ）後に作動させることができることを特徴とする請求項１に記載の方法。
【請求項３】
特殊な動作モード（Ｓ）の間に、前記監視モジュールのための通常の動作モード（Ｎ）とは異なる特殊なトリガコードまたは特殊なトリガ信号が利用され、
前記マイクロコントローラユニットの新たなリセットが、特殊なモードから再度抜け出すことができるようにするため、通常のトリガコードまたは通常のトリガ信号によって引き起こされることを特徴とする請求項２に記載の方法。
【請求項４】
前記マイクロコントローラユニットの動作に関連して異なるリセット事象を区別することが可能であり、
これらの異なるリセット事象が異なるレジスタエントリーを用いて少なくとも１つのレジスタユニットにおいて適切に記録され公表されることを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項５】
少なくとも１つのアプリケーションを対象とした少なくとも１つのマイクロコントローラユニットの動作を監視するベースチップ、特にシステムベースチップであって、
前記マイクロコントローラユニットにリセットユニットが接続され、前記マイクロコントローラユニットをリセット（Ｒ）する少なくとも１つのリセットユニットと、
前記マイクロコントローラのリセット（Ｒ）に割り当てられた少なくとも１つの特殊なシーケンス、特にドライブまたはアクセスシーケンスと、
を備えている、ベースチップ。
【請求項６】
前記マイクロコントローラユニットと関連付けられた少なくとも１つの監視モジュールと、
異なるリセット事象を可能にするため設けられ、異なるリセットレジスタエントリーを用いて異なるリセット事象を記録し公表する少なくとも１つのレジスタユニットと、
を備えていることを特徴とする請求項５に記載のベースチップ。
【請求項７】
前記監視モジュールが特に少なくとも１つのインタフェースユニットを用いてトリガ可能であり、および／または、
前記監視モジュールへの特定のアクセスを区別するため、異なるリセット事象が異なるトリガコードまたはトリガ信号によってマークされ得る、
請求項６に記載のベースチップ。
【請求項８】
前記監視モジュールと前記マイクロコントローラユニットとの間に、前記マイクロコントローラユニットの通常の動作モード（Ｎ）とは異なる少なくとも１つのトリガコードまたはトリガ信号を伝達する少なくとも１つの信号ラインが設けられることを特徴とする請求項７に記載のベースチップ。
【請求項９】
少なくとも１つのアプリケーションを対象とする少なくとも１つのマイクロコントローラユニットと、
請求項５から８のいずれか一項に記載の少なくとも１つのベースチップと、
を備えているシステム、特に制御システム。
【請求項１０】
車両のエレクトロニクス、特に自動車のエレクトロニクスにおいて、少なくとも１つのアプリケーションを対象とする少なくとも１つのマイクロコントローラユニットの動作を監視するために、請求項１から４のいずれか一項に記載の方法および／または請求項５から８のいずれか一項に記載の少なくとも１つのベースチップの使用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのベースチップ、特にシステムベースチップを用いて、少なくとも１つのアプリケーションを対象としてシステムに関連付けられる少なくとも１つのマイクロコントローラユニットの動作を監視する方法に関する。
【０００２】
また、本発明は、少なくとも１つのアプリケーションを対象とする少なくとも１つのマイクロコントローラの動作を監視するベースチップ、特にシステムベースチップ、および関連するシステム、特に制御システムに関する。
【背景技術】
【０００３】
例えば、自動車エレクトロニクスにおける今日の制御ユニットにおいて、永久的に予めプログラムされたマイクロコントローラを使用することは、もはや一般的ではない。これは、固定されたプリセットプログラムでは、現行の大量生産の過程で或いはエンドユーザによって変更を行なうことができないからである。
【０００４】
したがって、自動車製造メーカは、マイクロコントローラにおいていわゆる揮発性メモリまたはフラッシュメモリを使用するということが益々慣行化してきている。この種の揮発性メモリによって、プログラムコードを常に上書きすることができ、また、これは、例えば検査の一部として、製造および修理店の両方で行なうことができる。
【０００５】
車両エレクトロニクスでは、システムはこの種のフラッシュメモリが徐々に取り付けられると、制御ユニットのソフトウェアを「現場」でも、すなわち、例えば、自動車修理店においても置換することが可能である。このように、自動車は、ソフトウェアに障害が発見された場合、納車後でも修正可能であり、これにより、車両の品質を継続的に改良することが可能になる。
【０００６】
したがって、プログラムメモリのソフトウェアをマイクロコントローラユニット内で上書きできるようにするため、通常、自動車の動作中にソフトウェアが誤って上書きされないことを保証する機能がマイクロコントローラユニットに組み込まれる。周知のマイクロコントローラユニットでは、マイクロコントローラユニットの端子のある種の信号によってフラッシュメモリを上書きできるようにさせるため、少なくとも１つのハードウェアリセットが必要である。
【０００７】
現行の制御ユニットでは、制御ユニットで直接的に変更を加えることなく、この状況で上記のハードウェアリセットをトリガする問題が常に存在する。制御ユニットは、一般に、アクセスが困難であるので、容易にリセットできない。
【０００８】
従来技術では、現行の監視モジュール、すなわち、「ウォッチドッグ」（クロック信号が独立したソースから得られる構造化可能なタイマ）がハードウェアリセットをトリガするためしばしば使用される。これに関連してこの用語「ウォッチドッグ」が一般に意味されるところは、装置、接続、または、ソフトウェアを周期的に監視するために使用される技術として理解されている。ソフトウェアの一部がソフトウェアによって定められた順序経路にもはやしたがっていない場合、ウォッチドッグは、マイクロコントローラをリセットすることにより、プログラムの実行をその予定された経路に戻そうとする。
【０００９】
ハードウェアリセットをトリガするために、このためのコマンドは、車両のシリアルバスシステム、例えば、ＣＡＮ（コントローラ・エリア・ネットワーク）バスを介して再プログラミングをされるべき制御ユニットへ送信される。制御ユニットは、次に、ウォッチドッグユニットへの規則的なアクセスを中断し、これは、オーバーラン後に、リセットを起こす原因となる。
【００１０】
しかし、この手続に関して不利であると考えられていることは、制御ユニットがプログラミングモードへ切り替え可能になる前に、ウォッチドッグユニットのオーバーランを常に待たなければならないことである。また、制御ユニットは、リセットがフラッシュプログラミングモードへのエントリーを引き起こすことを意図したものであるか、または、この場合に制御ユニットに何か他の問題があることを意味するかを簡単に見分けられない。
【００１１】
同じ欠点はフラッシュプログラミングが終了したときに存在するが、その理由は、そのときに新たなハードウェアリセットが必要になり、この場合もやはりそのハードウェアリセットはウォッチドッグユニットのオーバーランの結果としてでなければ行われないからである。この場合もまた、ウォッチドッグユニットが「タイムアウト」するまでに不必要な長時間が浪費される。
【００１２】
現行の制御ユニットのスキームでは、安全面の理由から、少なくとも１つのハードウェア信号は、プログラミングモードが許可状態にされるように制御ユニットで変更されるという要件がある。このためにもまた、制御ユニットへの直接的なアクセスが必要であるが、今日の自動車では利用可能なスペースの余裕がないため、直接的なアクセスはほぼ不可能である。
【００１３】
その他に非常に決定的な問題であると考えられていることは、制御ユニットがフラッシュプログラミングされている間に、ウォッチドッグユニットが継続的に動作することを可能にさせることである。このフラッシュプログラミングルーチンは時間集約的であり、このため、ある種の環境下ではウォッチドッグユニットを通常の精密許容差で動作させることが可能ではなくなる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述した不利および欠点を出発点として、また、前述した従来技術において当然与えられるべき割り当てをもって、本発明の目的は、システムに関連付けられたマイクロコントローラユニットのリセットが限定された条件下だけで行われるように、最初の段落で詳述した種類の方法および２番目の段落で詳述した種類のベースチップを更に開発させることである。
【課題を解決するための手段】
【００１５】
この目的は、請求項１で特定された特徴を有する方法により、また、請求項５で特定された特徴を有するベースチップにより達成される。本発明の有利な実施形態および有用な改良は、従属請求項のそれぞれの組に記載されている。
【００１６】
したがって、本発明は、少なくとも１つの特殊なシーケンス、特にリセット動作に割り当てられた少なくとも１つのドライブまたはアクセスシーケンスがベースチップに供給されるときに、マイクロコントローラユニットのリセットが引き起こされるように、限定されたフラッシュモードサポートを行う少なくとも１つのシステムベースチップを提供する。
【００１７】
本発明の教示に基づいて、したがって、システムベースチップに、ウォッチドッグ機能を備えた少なくとも１つの監視モジュールを組み込むことにより、ハードウェアリセット、すなわち、ハートウェアのリセットを意図的にトリガさせることができるモードを設けることが提案される。
【００１８】
本発明によれば、この意図的なハードウェアリセットは、特殊なシーケンス、特にリセット動作に割り当てられた少なくとも１つのドライブまたはアクセスシーケンスがシステムベースチップへ供給されたときに限りトリガされ、このようにして、リセットが偶発的にトリガされることは防止される。このシーケンスは、従来技術において規定され、制御ユニット、すなわち、マイクロコントローラユニットで直接的に必要とされたハードウェア信号を置き換える。これは、制御ユニットへの直接的なアクセスの必要性を避けることが可能であり、次に、制御ユニットを希望のポイントに取り付けることを可能にさせる。
【００１９】
特に、本発明の一実施形態では、このいわば強制的なリセットをアプリケーションへ知らせることが提案される。この目的のため、かつ、これまでの経緯から、少なくとも１つのレジスタ、特に、少なくとも１つのリセットソースレジスタにおいて、リセットイベントがシステムベースチップへの特殊なシーケンスによってトリガされたことを知らせることが有利である。このようにして、ソフトウェアは、フラッシュメモリユニットが明らかに再プログラミングされるべきであることを直接的に検出することが可能である。
【００２０】
本発明の好適な一実施形態において、特殊なシーケンスの成功後、かつ、リセットが行われた後に、システムベースチップのための別個のモード、特に、別個のフラッシュモードへ進む単独の機会を設けることが提案される。この特殊モードは、システムが通常モードで使用され続けることを可能にするが、簡単化されたウォッチドッグトリガ動作が利用される。
【００２１】
このようにして、ウォッチドッグサイクルは、通常モードにおけるシステムの安全性または信頼性を危険にさらすことなく、既存のフラッシュプログラミングルーチンに適合させることが可能である。フラッシュプログラミング中に、動作は、いわゆる「タイムアウト」モード（すなわち、トリガ動作は猶予を与えることなく常に起こらなければならないが、早期のトリガ動作が許可されているモード）の監視モジュールを用いて行われ、一方、通常動作では、いわゆる「ウィンドウ」モード（基本的に、タイムアウトモードと同じであるが、早期のトリガ動作が許可されず、ウィンドウがヒットされるべきであり、これにより、ソフトウェアに対する要求がより厳しくなるモード）が利用される。
【００２２】
フラッシュプログラミングが行われた後に待ち時間を伴うことなく別の強制的なリセットを実施できるようにするため、フラッシュモード中に、システムベースチップへのアクセスのため異なるウォッチドッグコードを有利に使用することが提案され、このコードは、例えば、シリアルインタフェースユニットを介して、すなわち、例えば、ＳＰＩ（シリアル周辺インタフェース）を介して、システムベースチップへ伝達される。
【００２３】
フラッシュモードを抜け出たならば、好ましくは、フラッシュモード中には許可されず、したがって、瞬時的なシステムリセットを生ずる通常のウォッチドッグアクセスコードが使用される。この場合もまた、リセットソースレジスタは、ソフトウェアのスタートアップが必要に応じて制御されることを可能にするため、再度、ソフトウェアに適切な情報を供給する。
【００２４】
フラッシュモードへ再び入るためには、フェールセーフシーケンスが再度システムベースチップへ送信されるべきである。シーケンス後、かつ、リセットが行われた後に、フラッシュモードが作動されていないならば、フラッシュモードは、フェールセーフシーケンスのような時間が再度システムベースチップへ送信されるまで禁止されるのが好都合である。
【００２５】
最後に、本発明は、車両エレクトロニクス、特に自動車のエレクトロニクスにおいて、少なくとも１つのアプリケーションを対象とするマイクロコントローラユニットの動作を監視する前述したタイプの方法の使用および／または前述したタイプの少なくとも１つのベースチップの使用に関するものである。
【００２６】
既に述べたように、本発明の教示内容を有利に具体化して改良できる様々な想定し得る方法がある。一方、これに関しては、特に請求項１および５に従属する請求項を参照することができる。また、他方で、本発明の他の態様、特徴、利点は、図１に示される後述する例示的な実施形態から明らかであり、また、この実施形態を参照しながら、本発明の他の態様、特徴、利点について説明する。
【発明を実施するための最良の形態】
【００２７】
制御システム１００が図１に概略的に示されている。この制御システム１００は、供給ユニット３１０と、リセットユニット３２０と、Ｉ／Ｏ（入力／出力）モジュール３３０とを有するマイクロコントローラユニット３００と共に、マイクロコントローラユニット３００の動作を監視するモジュール（１０）（＝ウォッチドッグユニット）を備えたいわゆるＳＢＣ（システムベースチップ）２００を有している。前記マイクロコントローラユニット３００は、１つのアプリケーションを対象にしている。
【００２８】
システムチップ２００により、様々なリセットイベント間で区別を行なうことができるとともに、これらの様々なイベントにアプリケーションコントローラ３００がアクセスできるようになるため、システムチップ２００は、様々なリセットイベントを許容するべく設けられた情報ユニット２０（リセットソース情報用）と、（マイクロコントローラユニット３００のリセットユニット３２０に向かう）接続部４２によってマイクロコントローラユニット３００に接続されるリセットユニット４０（システムリセット用）とを有している。
【００２９】
情報と信号の交換を可能にするため、監視モジュール１０およびリセットソースレジスタ２０は、前方に（マイクロコントローラユニット３００のＩ／Ｏ（入力／出力）モジュール３３０へ給電する）インタフェースユニット３０が挿入される。
【００３０】
また、図１から明らかなように、監視モジュール１０、および、接続部５２によってマイクロコントローラユニット３００に接続されたマイクロコントローラ給電ユニット５０は、少なくとも１つのバッテリユニット４００と永久的に繋がっている。アプリケーションに利用可能なメモリユニット１０のメモリビットは、バッテリ４００から永久的に電力の供給を受ける一方で、マイクロコントローラ給電ユニット５０は、スイッチ５４によってＯＮおよびＯＦＦに切換え可能であり、これにより、マイクロコントローラ給電ユニット５０を介して、マイクロコントローラユニット３００に対しエネルギを一時的に供給することができる（マイクロコントローラユニット３００のＶＤＤ供給ユニット３１０に給電する）。
【００３１】
本発明によるシステム１００のハードウェア基本要素は以上のように解明されたので、次に、図２の略図は、本発明による方法のフローの典型的な一実施形態をチャート形式で表す。
【００３２】
この方法はシステムベースチップ２００を用いて実行され、特殊な（アクセス）シーケンスによって、システム１００のハードウェアリセットＲを「意図的に」トリガすることが可能である。この目的のため、システムベースチップ２００は、ハードウェアリセットＲが意図的に実行されたことを所定のリセットソースレジスタ２０において公表し、このようにして、ハードウェアリセットＲが実行された理由をソフトウェアに知らせ、適切なルーチンへの遷移はこのようにして実現可能にされる。
【００３３】
この特殊なシーケンスは、ハードウェアリセットＲが偶然には実行されないことを保証し、図２では、マイクロコントローラユニット３００の通常の動作モードＮからハードウェアリセットＲを引き起こす問い合わせルーチン［ｂ］によって示される。この問い合わせルーチン［ｂ］の下で、特殊なシーケンスの伝達に成功したかどうかを調べるためチェックが行われ、その後、マイクロコントローラユニット３００の特殊な動作モードＳ、すなわち、フラッシュモードが許可される。
【００３４】
これに基づいて、システムベースチップ２００は、ウォッチドッグアクセスを簡単化された方式で行うことができる特殊な動作モード（＝この場合にはフラッシュモードＳ）を、アクセスシーケンス後、かつ、リセットＲが行われた後に作動させる。この場合、マイクロコントローラユニット３００は特殊な動作モードＳ、すなわち、フラッシュモードを作動し、フラッシュモードのための許可が与えられる（図２を参照のこと：ハードウェアリセットＲからフラッシュモード（タイムアウトウォッチドッグ）Ｓへの問い合わせルーチン［ｃ］）。
【００３５】
この特殊なモード、すなわち、フラッシュモードＳの間に、問い合わせルーチン［ａ］の下の通常のウォッチドッグトリガコードとは異なる問い合わせルーチン［ｄ］の下の特殊なトリガコード、すなわち、フラッシュウォッチドッグトリガコードが利用され、ソフトウェアが正しいルーチンを動くことを保証する。
【００３６】
異なる、または、間違ったウォッチドッグトリガコードが特殊な動作モードの間に使用されるならば、フラッシュモードは禁止され（図２を参照のこと：フラッシュモード（タイムアウトウォッチドッグ）ＳからハードウェアリセットＲへの問い合わせルーチン［ｅ］）、システムベースチップは即座に別のハードウェアリセットＲをトリガし、リセットソースレジスタ２０がそれに応じてセットされ、このようにして特殊なモードＳから抜け出る。
【００３７】
また、ハードウェアリセットＲからマイクロコントローラユニット３００の通常の動作モードＮを引き起こす問い合わせルーチン［ｆ］は、マイクロコントローラユニット３００が通常の動作モードＮを作動することを示し、これは、特殊な動作モードＳ、すなわち、マイクロコントローラユニット３００のフラッシュモードを禁止することと等価である。
【００３８】
したがって、要約すると、図１に示されたシステム１００および図２に示された方法２００は、アプリケーションを対象とし、システムベースチップ２００を用いてシステム１００と関連付けられたマイクロコントローラユニット３００の動作を監視するため設計される。
【００３９】
その際、システムベースチップ２００の上記のフェールセーフ動作モードの実現を可能にさせ、次に、前記動作モードの始まりと終わりの両方でアプリケーションのための意図的なハードウェアリセットを許可する機能が利用される。したがって、この機能は、ウォッチドッグのトリガ動作中にシステムベースチップ２００内で最適なフラッシュメモリプログラミングモードを実現させることが可能である。
【図面の簡単な説明】
【００４０】
【図１】ベースチップおよびマイクロコントローラを有する本発明によるシステムの一実施形態のブロック図である。
【図２】本発明による方法のフローの一実施形態のブロック図である。
【符号の説明】
【００４１】
１００  システム、特に制御システム
１０  監視モジュール、特にウォッチドッグユニット
１２  モジュール１０とレジスタユニット２０との間の接続部
２０  レジスタユニット、特にリセットソースレジスタ
２４  レジスタユニット２０とリセットユニット４０との間の接続部
３０  インタフェースユニット
３２  インタフェースユニット３０とマイクロコントローラユニット３００との間の接続部、特に信号ライン
４０  リセットユニット
４２  リセットユニット４０とマイクロコントローラユニット３００との間の接続部
５０  給電ユニット
５２  給電ユニット５０とマイクロコントローラユニット３００との間の接続部
５４  給電ユニット５０のスイッチ
２００  ベースチップ、特にシステムベースチップ
３００  マイクロコントローラユニット、特にアプリケーションマイクロコントローラ
３１０  マイクロコントローラユニット３００のための給電ユニット
３２０  マイクロコントローラユニット３００のためのリセットユニット
３３０  マイクロコントローラユニット３００のＩ／Ｏ（入力／出力）モジュール
４００  バッテリユニット
Ｎ  マイクロコントローラユニット３００の通常の動作モード
Ｒ  マイクロコントローラユニット３００のリセット
Ｓ  マイクロコントローラユニット３００の特殊な動作モード、特にフラッシュモード
【図１】
2005529404.tif 000003
【図２】
2005529404.tif 000004
【国際調査報告】
2005529404.tif 000005
2005529404.tif 000006
2005529404.tif 000007