(57)【特許請求の範囲】
【請求項１】
中央処理装置と、不揮発性メモリと、揮発性メモリと、入出力ユニットと、監視回路とを有し、前記不揮発性メモリと揮発性メモリはプログラムメモリとして使用可能であり、それにより該メモリ内に中央処理装置によって実行可能なプログラムが読み込み可能であり、前記監視回路は、マイクロコンピュータの動作中はカウント動作を行うタイマを有し、所定の期間、監視信号を何も受け取らなかった場合にタイマオーバーフローによりマイクロコンピュータのリセットを行わせる、マイクロコンピュータにおいて、
前記マイクロコンピュータは、第１の動作状態においては不揮発性メモリ内のプログラムを実行して前記監視信号を発生し、第２の動作状態においては揮発性メモリ内のプログラムを実行するように少なくとも２つの異なる動作状態で作動し、
前記マイクロコンピュータは、当該マイクロコンピュータが第２の動作状態で動作している場合に、アクティブな監視信号を抑圧するための手段を含んでおり、
さらに前記マイクロコンピュータは、当該マイクロコンピュータを第２の動作状態から第１の動作状態へ時折切り換えるための手段を含み、該第１の動作状態では監視信号の出力が抑圧されることなく送出されるように構成されていることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
従来の技術
本発明によるマイクロコンピュータは、請求の範囲第１項の上位概念によるマイクロコンピュータから出発する。例えばモトローラ社のデータブック“ＭＣ６８Ｆ３３３ＴＳ／Ｄ，１９９２”からは次のようなマイクロコンピュータが公知である。すなわち中央処理装置の外にプログラミング可能な不揮発性メモリ（フラッシュ−ＥＥＰＲＯＭ）と、入出力構成要素と、監視回路（Ｗａｔｃｈｄｏｇ−ｔｉｍｅｒ）と、揮発性メモリ（Ｃｏｄｅ−ＲＡＭ）をも有しているマイクロコンピュータが公知である。前記揮発性メモリには中央処理装置の命令カウンタによってアクセス可能なプログラムデータが書き込み可能である。前記全ての構成要素は１つのチップに集積化されている。マイクロコンピュータは次のように構成される。すなわちプログラミング可能な不揮発性メモリ内に格納されるプログラムデータがアクセスできるだけでなく、揮発性メモリ内に格納されるプログラムも実行し得るように構成される。この２つの場合では監視回路が作動される。すなわち監視回路は、正常なプログラムフローの際に適時にリセットされるように保証されなければならない。なぜならそうしないと監視回路がマイクロコンピュータのリセットを実行することになるからである。このマイクロコンピュータにおける欠点は、揮発性メモリ内のメモリ内容のランダムな変化によって（例えばＥＭＣ−障害放射）、プログラムフローが異常であるにもかかわらず監視回路が適時にリセットされるプログラムループが生じ得ることである。
発明の利点
それに対して請求の範囲第１項の特徴部分に記載の本発明によるマイクロコンピュータは次のような利点を有する。すなわち当該のマイクロコンピュータ内部において、プログラミング可能な不揮発性メモリ内のプログラムの実行（ＲＯＭモード）と揮発性メモリ内のプログラムの実行（ＲＡＭモード）との間で分離が行われることである。この分離は、第２の動作状態（ＲＡＭモード）における監視回路のリセットを完全に不可能にすることからなる。監視回路のリセットは第１の作動状態（ＲＯＭモード）においてしか行うことができない。それにより、ＥＭＣ−放射に起因するプログラムループ（このループにおいてはプログラムフローに障害があっても監視回路の適時のリセットが生じる）の形成は阻止される。
本発明の別の有利な実施例及び改善例は従属請求項に記載される。
本発明は一方では、マイクロコンピュータの異なる少なくとも２つの動作状態の選択がアドレス空間の復号化によって暗黙的（ｉｍｐｌｉｃｉｔ）に行われる利点がある。それによりプログラミングの手間が僅かに維持される。また他方では、異なる少なくとも２つの動作状態の選択がマイクロコンピュータの動作モードの明示的（ｅｘｐｌｉｃｉｔ）な切換によって行われる利点がある。それにより２つの動作状態の有利な分離が達成され、動作状態のより一層良好なコントロールが得られる。
さらに有利には、マイクロコンピュータがプログラムフローカウンタを含んでいる。このカウンタは少なくとも次のような場合に作動する。すなわちマイクロコンピュータが第２の動作状態（ＲＡＭモード）にて動作している場合に作動する。このプログラムフローカウンタによってプログラムフローの付加的な監視が可能となる。前記プログラムフローカウンタは正常なプログラムフローのもとでプログラムコマンドの所定の数の後でそれぞれ所定のようにセットされる。
さらに有利には、マイクロコンピュータが次のような手段を有している。すなわちプログラムフローカウンタの状態を検査し、プログラムフローカウンタの検査によって異常なプログラムフローが明らかになった場合には監視信号の出力を抑圧する手段を有している。それによりＥＭＣ障害に起因するプログラムループ（このループのもとでは異常なプログラムフローにもかかわらず監視信号が適時に出力される）の形成が実質的に除外される。
プログラムカウンタの状態の簡単な検査に対して有利には、マイクロコンピュータが基準カウンタを有し、この基準カウンタはプログラムカウンタの状態の各検査前に増分され、さらにマイクロコンピュータは１つの手段を有し、該手段はプログラムフローカウンタの実際の計数状態を基準カウンタの実際の計数状態と比較してプログラムカウンタと基準カウンタとの間の計数状態の不一致が生じた場合には、プログラムフローの異常を検出する。
監視信号抑圧の最も簡単な実現に対して有利には、マイクロコンピュータにおいてコンフィギュレーションレジスタが設けられる。このコンフィギュレーションレジスタでは動作状態の切換（ＲＯＭモードからＲＡＭモードへの）があった場合にフラグがコンフィギュレーションレジスタにおいてセットされる。これにより電子装置は監視信号の伝送のための線路が遮断されるようにスイッチングされる。
図面
本発明の実施例は図面に示されており、以下の明細書で詳細に説明される。
図１は本発明による実施例の概略的なブロック回路図である。図２は本発明によるマイクロコンピュータのブロック回路図である。図３は本発明によるマイクロコンピュータのＣＰＵの細部断面図である。図４は本発明によるマイクロコンピュータにおいて実行するプログラムの第１のフローチャートである。図５は本発明によるマイクロコンピュータにおいて実行するプログラムの第２のフローチャートである。図６は本発明によるマイクロコンピュータにおいて実行するプログラムの第３のフローチャートである。
実施例の説明
図１には符号１０でマイクロコンピュータが示されている。このマイクロコンピュータには開発コンピュータ９が接続されている。このマイクロコンピュータ１０と開発コンピュータ９との間の接続はシリアルなデータ伝送線路８を用いて実現される。この実施例は制御装置の適用範囲に関するものである。ここでは制御装置はエンジン制御装置を表わす。この制御装置においてはわかりやすくするためにマイクロコンピュータ１０しか示されていない。制御装置の開発のアプリケーションフェーズ期間中は、特に制御装置に対する最適なプログラムフローが求められるべきである。それに対しては制御装置のプログラムフローが時折何度も変化せしめられる。この変化の影響は制御装置のテスト実行によって求められる。プログラムフローの変化は主にプログラムフローの所定のプラグ部分に関する。従ってそのたび毎に完全に新たなプログラムをマイクロコンピュータのメモリにプログラミングする必要はない。制御装置ないし制御装置のマイクロコンピュータがＣｏｄｅ−ＲＡＭを有している場合にはこのＣｏｄｅ−ＲＡＭは有利にはアプリケーションに用いられ得る。このＣｏｄｅ−ＲＡＭには、プログラミング可能な不揮発性メモリの比較的長いプログラミング操作の実行を要さずに簡単な形式で新しいプログラムを書き込むことが可能である。そのようなエンジン制御装置の構造は公知の技術から周知である。このエンジン制御装置は、エンジンの入力特性量（入力変数）を基にして例えば燃料噴射時間や内燃機関の個々のシリンダに対する点火時期を算出する。これらの制御値の計算は公知の計算アルゴリズムによって行われる。しかしながら計算アルゴリズムに対して種々異なる手段がある。ここではエンジンに対して最適な計算アルゴリズムを求めるために、次に記載するアプリケーションシステムが用いられる。制御装置に対するプログラムフローの最適化の際には制御値計算の精度とそれに求められる所要の計算時間との間の妥協を見つけることが試みられる。
可及的に正確な計算結果を得るために有利には頻繁に、可及的に多くの内燃機関パラメータ（例えば回転数、エンジントルク、エンジン温度、空気温度、バッテリ電圧等）が用いられる。また他方では燃料噴射時間と点火時期の計算に対してはエンジントルクと回転数のみで既にパラメータとして十分である。最初の制御値は既にこの２つの特性量から頻繁に算出される。別のパラメータを計算に算入し得るためには、先に算出された制御値の補正のみがしばしば行われる。本実施例は付加的動作パラメータとしてのエンジン温度に基づいた、６気筒内燃機関の個々のシリンダに対する点火角度と燃料噴射時間に対する先におおまかに計算された制御値の補正に関する。
制御装置のマイクロコンピュータ１０は、図２に示されているような構造を有している。この図では符号１１でマイクロコンピュータのＣＰＵが示されている。符号１２では監視回路が示されている。この監視回路１２は公知文献におけるウオッチドッグタイマの概念のもとでも周知である。符号１３ではプログラミング可能な不揮発性メモリが示されている。符号１４では揮発性メモリ（Ｃｏｄｅ−ＲＡＭ）が示されている。このメモリは、ＣＰＵ１１に対するプログラムメモリとして構成され得る特徴を有している。最後に符号１６ではマイクロコンピュータの入出力構成要素が示されている。この構成要素にはシリアルインターフェースが含まれていてもよい。
図３にはマイクロコンピュータ１０の中央処理装置１１の細部断面図が示されている。この中央処理装置１１内にはコンフィギュレーションレジスタ２０が設けられている。このコンフィギュレーションレジスタ２０は多数のフラグからなる。ここでは特に２つのフラグがクローズアップされる。フラグ２１は、マイクロコンピュータ１０が第１の動作状態（ＲＯＭモード）で動作している場合、つまりマイクロコンピュータが不揮発性メモリ内のプログラムを実行している場合には常にセットされる。これに対してマイクロコンピュータが第２の動作状態（ＲＡＭモード）で動作している場合にはフラグ２１はセットされない。このフラグ２１の状態は線路２３を介してＡＮＤゲート２４の第１の入力側に供給される。フラグ２２の状態は、ＡＮＤゲート２４の第２の入力側に供給される。このフラグ２２はマイクロコンピュータ１０のサブルーチンによって短期間だけセットされる。すなわち監視回路１２に監視信号が出力されるべき場合にのみセットされる。この監視信号はフラグ２１がセットされている場合にのみ監視回路１２に到達し得る。その他ではＡＮＤゲート２４はこの信号を阻止する。
監視回路１２ではマイクロコンピュータ１０の作動中にタイムカウンタがカウントアップされる。このタイムカウンタがオーバフローを生ぜしめた場合には直ちに監視回路１２の内部論理回路によってマイクロコンピュータ１０のリセットが引き起こされる。図３ではこのリセット信号は線路１８を介して中央処理装置１１に出力される。監視回路１２は次のように機能する。すなわちタイムカウンタがオーバフローを生ぜしめる前に内部タイムカウンタが順次リセットされなければならないように機能する。このリセットが適時に行われた場合にのみマイクロコンピュータ１０のリセットが行われない。それ故にプログラマは、正常なプログラムフローのもとでは適時に監視回路１２のリセットが行われることに注意を払わなければならない。これに対してプログラマは所定のプログラム位置において相応のコマンドをプログラムに挿入する。
次にマイクロコンピュータ１０内のプログラムフローを図４、図５、図６に基づいて以下に詳細に説明する。
図４では符号３０でプログラムのスタートが示されている。プログラム開始３０の後ではマイクロコンピュータ１０の初期化がプログラムステップ３１において行われる。プログラムステップ３２では外部の開発コンピュータ９がマイクロコンピュータ１０に接続されているか否かの問合せが行われる。この問合せ結果がイエスならばプログラムステップ３３においてアプリケーション機能がマイクロコンピュータ１０のＣｏｄｅ−ＲＡＭ１４にロードされる。開発コンピュータ９がマイクロコンピュータ１０に接続されていない場合には、プログラムステップ３３は行われない。その後プログラムステップ３４において制御過程に対する動作パラメータの検出が行われる。ここではとりわけエンジン回転数とエンジン負荷が求められる。プログラムステップ３５では、検出された動作パラメータ、すなわちエンジン回転数とエンジン負荷に基づいて大まかな制御値が算出される。プログラムステップ３６では、先にＣｏｄｅ−ＲＡＭ１４にロードされたアプリケーション機能が実行される。引き続いてプログラムステップ３７において制御機能の実行が行われる。その後では第１の計算サイクルが終了し、次の計算サイクルはプログラムステップ３４でスタートする。
図５にはアプリケーション機能のフローチャートが示されている。符号４０ではこのアプリケーション機能の呼出しが示されている。まず初めにプログラムステップ４１において動作状態の切換（ＲＯＭモードからＲＡＭモードへの切換）が実施される。この場合コンフィギュレーションレジスタ２０のフラグ２１がリセットされる。そしてプログラムステップ４２においては第１の制御値（内燃機関の第１シリンダの燃料噴射時間と点火時期）の補正が付加的なアプリケーション機能に基づいて行われる。プログラムステップ４２の後ではプログラムステップ４３においてプログラムフローカウンタが１にセットされる。引き続いてプログラムステップ４４において監視回路１２のリセットに対するサブルーチンの呼出しが行われる。このサブルーチン呼出しの後では次なる制御値２（内燃機関の第２シリンダの燃料噴射時間と点火時期）の補正が行われる。これは図５には詳細に示されていない。なぜなら実質的にプログラムステップ４２，４３，４４はここにおいて繰り返されているからである。それ故これらのプログラムステップの別々の図示は省かれている。最後に制御値１〜５の補正の後ではプログラムステップ４５において制御値６の補正が行われる。その後再びプログラムステップ４６でプログラムフローカウンタが新たにセットされ、プログラムステップ４４にて監視回路１２のリセットに対するサブルーチンが呼び出される。このサブルーチンが正確に実行された場合は引き続きプログラムステップ４７においてＲＡＭモードからＲＯＭモードへの切換が行われる。アプリケーション機能はメインプログラムへのリターン４８によって終了する。
次に監視回路のリセットを生ぜしめるサブルーチンを図６に基づいて以下で詳細に説明する。サブルーチン４９の呼出しの後ではプログラムステップ５０において、マイクロコンピュータ１０の動作状態の切換が、すなわちＲＡＭモードからＲＯＭモードへの切換が行われる。この場合コンフィギュレーションレジスタ２０のフラグ２１がセットされる。引き続き問合せステップ５２では、プログラムフローカウンタが正常なプログラムフローを指示しているか否かが検査される。それに対しては基準カウンタが使用される。この基準カウンタはプログラムステップ３６におけるアプリケーション機能の呼出しの際に初期値にセットされ、ＷＤ−リフレッシュの呼出し毎にカウントアップされる。この場合前記２つのカウンタ計数状態が比較される。この２つの計数状態が一致していない場合には異常なプログラムフローが生じている。この場合はここにおいて付加的なタイムカウンタが監視されていることも考えられる。プログラムフローカウンタの計数状態が所定のタイムリミット内で変化していなかった場合には誤りのあるプログラムフローとして判断され得る。問合せステップ５２において正常なプログラムフローが検出された場合には、プログラムステップ５３において監視回路１２のリセットが行われる。この場合コンフィギュレーション２０のフラグ２２が所定の時間に対してセットされ、引き続き再びリセットされる。そのように生ぜしめられたパルスはＡＮＤゲート２４と接続線路１７を介して監視回路１２へ転送される。それに続いてプログラムステップ５４においてはマイクロコンピュータ１０の動作状態の新たな切換、すなわちＲＯＭモードからＲＡＭモードへの切換が行われる。監視回路１２のリセットのためのサブルーチンはステップ５５のリターンによって終了する。問合せステップ５２において異常なプログラムフローが識別された場合にはプログラムステップ５３が除かれる。そのため監視回路１２のリセットは何も行われない。短時間の後に監視回路１２は確かな状態をもたらすためにマイクロコンピュータ１０を完全にリセットする。
本発明によるマイクロコンピュータ１０は自動車用制御装置への適用に対する利点のみをもたらすものではない。本発明によれば、マイクロコンピュータがそのＣｏｄｅ−ＲＡＭ１４内にあるプログラムを実行する場合には常にマイクロコンピュータの確かな動作が保証される。それに対する別の適用例は、プログラミング可能な不揮発性内部メモリ１３のプログラミングである。これに対してもＣｏｄｅ−ＲＡＭ１４が使用される。Ｃｏｄｅ−ＲＡＭにはプログラムアルゴリズムがファイルされている。プログラミングすべきデータは、接続されている外部のプログラミング装置からマイクロコンピュータ１０に伝送される。ＲＡＭモードを周期的に脱せしめなければならないようにすることが不都合を生じる場合には、付加的なハードウエア手段によって監視回路１２の停止を行ってもよい。それにより例えばＲＡＭモードにおいて、プログラミング可能な不揮発性メモリ１３（ＥＥＰＲＯＭ）のプログラミング期間中に監視回路１２が別個のプログラミングピンを介して停止され得る。
本発明においては個々の構成要素を１つのチップ上に集積することは必ずしも必要ではない。それらは別個のチップ上にも収めてもよい。
また本発明においてはマイクロコンピュータ１０内で動作状態の切換が明示的に行なわれることも必須ではない。動作状態は例えばアドレスの復号化によって暗黙に行ってもよい。
さらにプログラムステップ５２に従って異常なプログラムフローが検出された場合には、選択的にマイクロコンピュータ１０のリセットを直接トリガさせてもよい。
【図１】
0004005124.tif 000002
【図２】
0004005124.tif 000003
【図３】
0004005124.tif 000004
【図４】
0004005124.tif 000005
【図５】
0004005124.tif 000006
【図６】
0004005124.tif 000007