(57)【要約】  電子機器、殊に自動車用のセンサ回路のマイクロコンピュータにおけるプログラムの実行を監視する方法においては、プログラムが入力データを処理して出力データを形成し、プログラムの実行に付加的に、マイクロコンピュータ内のこのプログラムが記憶されているアドレス領域とは異なるアドレス領域に記憶されているプログラムのコピーを、プログラムのために設けられている入力データを用いて実行する。コピーの出力データをプログラムの出力データと比較し、一致しない場合にはエラーメッセージを形成する。
2008530626.tif 000002
【特許請求の範囲】
【請求項１】
電子機器、例えば自動車用のセンサ回路のマイクロコンピュータにおけるプログラムの実行を監視する方法であって、
前記プログラムは入力データを処理して出力データを形成する形式のプログラムの実行を監視する方法において、
前記プログラムの実行に付加的に、前記マイクロコンピュータ内の該プログラムが記憶されているアドレス領域とは異なるアドレス領域に記憶されているプログラムのコピーを、該プログラムのために設けられている入力データを用いて実行し、前記コピーの出力データを前記プログラムの出力データと比較し、一致しない場合にはエラーメッセージを形成することを特徴とする、プログラムの実行を監視する方法。
【請求項２】
前記コピーをさらに実行し、該実行において所定のデータを処理し、前記コピーのさらなる実行の出力データをメモリに格納されている比較データと比較し、一致しない場合にはエラーメッセージを形成する、請求項１記載の方法。
【請求項３】
前記プログラムの実行後および本発明による方法の実施に使用されるプログラム部分の実行後にその都度１つのフラグをセットまたは変更し、全てのフラグがセットまたは変更されていない場合にはエラーメッセージを形成する、請求項１または２記載の方法。
【請求項４】
電子機器、例えば自動車用のセンサ回路の相互に接続されている少なくとも２つのマイクロコンピュータにおけるプログラムの実行を監視する方法において、
前記マイクロコンピュータのうちの一方のマイクロコンピュータにおいて、他方のマイクロコンピュータに送信され、且つ該他方のコンピュータにおいて所定の入力データを用いてプログラムを実行させる問合せを形成し、
出力データに依存する応答を前記一方のマイクロコンピュータに送り返し、
該一方のマイクロコンピュータにおいて前記要求と前記応答を相互に比較することを特徴とする、相互に接続されている少なくとも２つのマイクロコンピュータにおけるプログラムの実行を監視する方法。
【請求項５】
前記プログラムは前記他方のマイクロコンピュータの本来の機能を実施するプログラムのコピーである、請求項４記載の方法。
【請求項６】
前記応答を時折捏造し、該捏造は前記他方のマイクロコンピュータにおいて差し当たり前記一方のマイクロコンピュータのエラーとして識別されるが、該一方のマイクロコンピュータにおいては予期および検査される、請求項４または５記載の方法。
【請求項７】
前記プログラムの実行後および本発明による方法の実施に使用されるプログラム部分の実行後にその都度１つのフラグをセットまたは変更し、全てのフラグがセットまたは変更されていない場合にエラー通知を形成する、請求項４から６までのいずれか１項記載の方法。
【請求項８】
フラグレジスタの内容を時折捏造し、該捏造は前記他方のマイクロコンピュータにおいて差し当たり前記一方のマイクロコンピュータのエラーとして識別されるが、該一方のマイクロコンピュータにおいては予期および検査される、請求項７記載の方法。
【請求項９】
前記マイクロコンピュータにおけるエラーカウンタがそれぞれの他方のマイクロコンピュータ関して確認されたエラーをカウントし、誤った応答が挿入されている場合および／またはフラグレジスタの捏造が行われている場合には、誤った応答の挿入ないし前記フラグレジスタの内容の捏造を行ったマイクロコンピュータにおける前記エラーカウンタのカウンタ状態を変更しない、請求項４から８までのいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、殊に自動車用のセンサ回路のマイクロコンピュータにおけるプログラムの実行を監視する方法に関し、ここではプログラムが入力データを処理し、出力データを形成する。
【０００２】
マイクロコンピュータを装備している電子機器では、マイクロコンピュータにおける欠陥によって、殊にプログラムの実行においてエラーが存在する場合には故障および誤動作を来す可能性がある。自動車用のセンサ回路および他の安全性に関連する機器では、この種のエラーは非常に高い安全性でもって回避されなければならない危険につながりかねない。
【０００３】
したがって本発明の課題は、マイクロコンピュータにおけるプログラムの実行を可能な限り完全且つ確実に監視し、これと共に適切な警報信号によってユーザに情報を提供する、もしくは接続されているシステムにおいて対抗措置を講じることである。
【０００４】
この課題は本発明の第１の実施形態においては、プログラムの実行に付加的に、マイクロコンピュータ内のこのプログラムが記憶されているアドレス領域とは異なるアドレス領域に記憶されているプログラムのコピーを、このプログラムのために設けられている入力データを用いて実行し、コピーの出力データがプログラムの出力データと比較され、一致しない場合にはエラー通知が形成されることによって解決される。この実施形態は、プログラム自体に欠陥が存在しない場合にはプログラムの実行中のハードウェアに起因するエラーは同じプログラムでは発生しないことを考慮する。
【０００５】
１つの実施形態では、コピーをさらに実行し、この実行においては所定のテストデータが処理され、コピーのさらなる実行の出力データがメモリに格納されている比較データと比較され、一致しない場合にはエラー通知が形成されることによって、プログラムのコピーを検査することができる。
【０００６】
監視に使用されるプログラムも含めてプログラムの実行全体を制御できるようにするために、本発明による方法の実施形態においては、プログラムの実行後および本発明による方法を実施するために使用されるプログラム部分の実行後にその都度１つのフラグがセットされるか変更され、全てのフラグがセットまたは変更されていなかった場合にはエラーメッセージが形成される。
【０００７】
本発明の第２の実施形態は、電子機器、殊に自動車用のセンサ回路の相互に接続されている少なくとも２つのマイクロコンピュータにおけるプログラムの実行を監視するために使用され、またこの第２の実施形態においては、マイクロコンピュータのうちの一方のマイクロコンピュータにおいて、他方のマイクロコンピュータに送信されて、その他方のコンピュータにおいて所定の入力データを用いてプログラムの実行を行わせる問合せが形成され、出力データに依存する応答を一方のマイクロプロセッサに送り返し、この一方のマイクロプロセッサにおいて要求と応答が相互に比較される。ここでもまた、プログラムは他方のマイクロコンピュータの本来の機能を実施するプログラムのコピーであってもよい。
【０００８】
本発明の第２の実施形態においては前述のプログラムを実行するコンピュータの監視も監視の制御も、応答が時折捏造されることによって可能であり、このような捏造は他方のマイクロコンピュータにおいて差し当たり一方のマイクロコンピュータのエラーとして識別されるが、一方のマイクロコンピュータにおいては予期および検査される。
【０００９】
ここでもまたプログラムの実行を、プログラムの実行後および本発明による方法の実施に使用されるプログラム部分の実行後にその都度フラグがセットまたは変更され、全てのフラグがセットまたは変更されていなかった場合にはエラーメッセージが形成されることにより制御することができ、この際他方のコンピュータの制御機能は、フラグレジスタの内容が時折捏造されることによってやはり監視され、このような捏造は他方のマイクロコンピュータにおいては差し当たり一方のマイクロコンピュータのエラーとして識別されるが、一方のマイクロコンピュータにおいては予期および検査される。
【００１０】
それぞれの他方のコンピュータはプログラムの実行時のエラーと故意に時折もたらされるエラーを区別することができないので、実施形態においてはマイクロコンピュータにおけるエラーカウンタがそれぞれの他方のマイクロコンピュータに関して確認されたエラーをカウントし、誤った応答が挿入されている場合および／またはフラグレジスタの捏造が行われている場合には、誤った応答の挿入ないしフラグレジスタの内容の捏造を行ったマイクロコンピュータにおけるエラーカウンタのカウンタ状態は変更されない。
【００１１】
本発明によれば多数の実施形態が可能である。本発明の２つの実施形態についていくつかの図面を参照しながら以下で説明する。ここで
図１は本発明による方法に関する適用事例のブロック回路図を示し、
図２はマイクロコンピュータにおけるプログラムの実行を監視するための種々の機能を示し、
図３は図２において説明した機能を実現するためのプログラムのフローチャートを示し、
図４は２つのマイクロコンピュータの相互的な監視をブロック図で示している。
【００１２】
実施例との関連においてプログラムをソフトウェアルーチンとも称する。
【００１３】
図１による適用事例は、センサモジュール２の一部である振動ジャイロスコープ１を備えている自動車用のヨーレートセンサを表す。このヨーレートセンサは振動ジャイロスコープ１を駆動させ、またこの振動ジャイロスコープの信号を評価するための一連の回路を有し、殊にマイクロコンピュータ３も有する。このマイクロコンピュータ３はＳＰＩバス４を介して別のマイクロコンピュータ５と接続されており、この別のマイクロコンピュータ５を以下ではホストと称する。このホストから回転率情報がＣＡＮバスドライバ６を介して、自動車内の別のシステムへと転送するためのＣＡＮバス７に達する。
【００１４】
本発明の理解には必要ではないので、振動ジャイロスコープ１およびセンサモジュール２については詳細に説明しない。ヨーレートセンサは安全性に関連するので、マイクロコンピュータ３，５の正常な機能、殊にプログラムの実行の監視が行われる。
【００１５】
図２に示されている実施例では、マイクロコンピュータの本来の機能（一次機能）に使用される機能が四角で表されている。１１においては、入力データが例えば図１に示されているセンサモジュール２から読み出され、１２における監視すべきソフトウェアルーチンにおいて処理される。このプログラムの実行の結果が１３において出力される（図１の場合には最終的にＣＡＮバス７に出力される）。関連するマイクロコンピュータは通常の場合、プログラムシステムを補完する一連のソフトウェアルーチンでもって機能する。図２においては複数のルーチンが存在する場合において殊に重要である１つのルーチンの監視を示している。しかしながら本発明による方法を用いて複数のルーチンを監視することもできる。
【００１６】
マイクロコンピュータ３，５（図１）においては、監視すべきソフトウェアルーチンの他に別のアドレス領域にはソフトウェアルーチンのコピーが格納されており、以下ではこれをコピーと称する。オリジナルのルーチンの正常なプログラムの実行を検査するために、第１のステップでは１４において同一の入力データを用いてコピーの実行が実施される。このプログラムの実行の出力データは１５においてオリジナルのルーチンの出力データと比較される。異なる場合には１６において警報がトリガされる。
【００１７】
さらなるステップではテストデータ１７を用いてコピーのプログラムの実行が実施される。このプログラムの実行の出力データは１９において、ルックアップテーブル１８に格納されている期待される結果と比較される。差異が生じた場合には１６において同様に警報がトリガされる。
【００１８】
図２に示されている監視が実際にも行われているかを監視するために、１２におけるオリジナルのルーチンのプログラムの実行の実施後および１５，１９における比較の実施後にフラグがレジスタ２０にセットされる。２１では全てのフラグがセットされているか否かが検査される。否定の場合には２２において警報がトリガされる。
【００１９】
図３は既に図２に基づき説明した監視プログラムをフローチャートとして示しており、この監視プログラムは例えば２５ｍｓ間隔で繰り返される。第１のプログラムステップ３１では先ずオリジナルのルーチンが処理され、３２ではコピーが処理され、３３では結果が比較される。プログラムステップ３４ではコピーがテストデータを用いて処理される。続いて３５ではプログラムの実行３４の結果が相互に比較される。３６では全てのフラグがセットされているか否かが検査され、続いて３７では、図２に関連させて説明したようにフラグのセットが実施される場合にはフラグレジスタが初期化される、すなわちリセットされる。択一的にフラグセットをセットする変わりにトグリングを実施することができる。
【００２０】
図４に基づき２つのマイクロコンピュータ３，５（図１）の相互的な監視を説明する。横長の四角形４１，４２はＳＰＩバス４（図１）におけるデータテレグラムを表し、それぞれが１つの識別子、複数の有効データ語および１つのチェックサムを有する。さらに図示されている構造は両方のマイクロコンピュータに設けられており、これらのマイクロコンピュータが相互に監視を行う。
【００２１】
それぞれの他方のマイクロコンピュータを監視するために、４３では要求（リクエストインデクス）が形成され、この要求がＳＰＩバス４を介して他方のマイクロコンピュータに伝送される。他方のマイクロコンピュータにおいてはテーブル４４から、検査すべきソフトウェアルーチンのための入力データが読み出される。これらのデータはプログラム４５へと引き渡され、このプログラムは実質的に図２の部分１１から１５を包含する。すなわちこの構成要素においては他方のマイクロコンピュータがその一次機能を実施し、またさらにソフトウェアルーチンのコピーを処理する。
【００２２】
ソフトウェアルーチンの出力データは別のテーブル４６において応答（レスポンスインデクス）に変換され、この応答が一方のマイクロコンピュータに伝送される（データテレグラム４２におけるデータ語４７を参照されたい）。好適には要求および応答は単にそれぞれが、テーブル４４に格納されているどの入力データが検査すべきソフトウェアルーチンに対して使用されるべきか、ないしは算出された出力データがテーブル４６のどのデータに対応するかを表すインデクスのみを包含する。
【００２３】
一方のマイクロコンピュータは応答を受け取り（データテレグラム４１におけるデータ語４８）、この応答を４９において期待される応答と比較する。要求と応答が一致する場合には、他方のマイクロコンピュータはこの点に関して正常に動作していることが前提とされる。しかしながら差が生じた場合には、エラーカウンタ５０が増分される。時折テーブル４６の出力データすなわち応答には、コピー１４が適切に実行された場合であっても結果として誤った応答となるエラーが挿入される。
【００２４】
しかしながら誤った応答を受取ったマイクロコンピュータは、この応答が事後的に挿入されたエラーであるのか、プログラムの実行において誤りがあったことによるエラーであるのかを識別することができない。同様に５２では、図２との関連において説明したフラグがセットされない。フラグ（図４においてＳＲフラグとして表されている）は５３においてデータテレグラム４２に挿入される。これらのフラグは全てセットまたはトグリングされていない場合には、プログラム部分５４におけるマイクロコンピュータの別のプログラムではエラーメッセージをもたらす。
【００２５】
さらにエラーカウンタ５０のカウンタ状態が別のデータ語５５としてデータテレグラム４２に挿入される。データテレグラム４１からマイクロコンピュータはデータ語５５を取り出すことができ、５６においてカウンタ状態が期待される値に対応するか否かを検査する。否定の場合には、同様にエラーメッセージがエラーカウンタ５０に送信される。機能５６は、それ都度のデータの捏造が行われていた場合には機能５１，５２からメッセージを受取り、その結果このメッセージが伝送されたカウンタ状態と期待されるカウンタ状態とを比較する際に考慮される。したがって、機能５１および５２によって他方のマイクロコンピュータによる監視が正しく実施されることが実現される。カウンタ５０のカウンタ状態は５７において、所定の閾値に達しているか否かが検査される。肯定の場合には５８において警報がトリガされる。
【図面の簡単な説明】
【００２６】
【図１】本発明による方法に関する適用事例のブロック回路図。
【図２】マイクロコンピュータにおけるプログラムの実行を監視するための種々の機能。
【図３】図２において説明した機能を実現するためのプログラムのフローチャート。
【図４】２つのマイクロコンピュータの相互的な監視をブロック図。
【図１】
2008530626.tif 000003
【図２】
2008530626.tif 000004
【図３】
2008530626.tif 000005
【図４】
2008530626.tif 000006
【国際調査報告】
2008530626.tif 000007
2008530626.tif 000008
2008530626.tif 000009
2008530626.tif 000010