本発明は上記問題点に鑑みてなされたものであり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、車両等の移動体内の電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することを可能にするような電子制御装置、および電子制御機器のデータ保存方法を提供することを目的とするものである。
上記問題点を解決するために、本発明の第1の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段(例えば、NRAM等の主記憶装置)と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段(例えば、SRAMまたはEEPROM等の不揮発性メモリ)と、上記複数のセンサにより取得されるデータに関連した複数のデータ項目を予め格納しておく格納手段とを備え、上記格納手段に格納されている複数のデータ項目から特定のデータ項目が選択され、上記特定のデータ項目に関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツール(例えば、ダイアグスキャンツール)に設けられており、上記外部検査ツールにより、上記格納手段に格納されている複数のデータ項目から上記特定のデータ項目が選択されるようになっている。
さらに、本発明の第2の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記複数のセンサにより取得されるデータを複数のバイト数のグループに分け、上記複数のバイト数のグループを予め格納しておく格納手段とを備え、上記格納手段に格納されている複数のバイト数のグループから特定のバイト数のグループが選択され、上記特定のバイト数のグループに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている複数のバイト数のグループから上記特定のバイト数のグループが選択されるようになっている。
さらに、本発明の第3の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段を構成する記憶部のアドレスを予め格納しておく格納手段とを備え、上記格納手段に格納されている上記記憶部のアドレスから特定のアドレスが選択され、上記特定のアドレスに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記記憶部のアドレスから特定のアドレスが選択されるようになっている。
さらに、本発明の第4の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記複数のセンサにより取得されるデータを複数の系列のグループに分け、上記複数の系列のグループを予め格納しておく格納手段とを備え、上記格納手段に格納されている複数の系列のグループから特定の系列のグループが選択され、上記特定の系列のグループに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている複数の系列のグループから特定の系列のグループが選択されるようになっている。
さらに、本発明の第5の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段に保持されている全てのデータを一括して指定する旨の指示内容を予め格納しておく格納手段とを備え、上記格納手段に格納されている上記指示内容に従って、上記第1のデータ保存手段から全てのデータが取り出され、上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記指示内容が読み出されるようになっている。
さらに、本発明の第6の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段を構成する記憶部の先頭アドレスから所定のバイト数分のアドレスを予め格納しておく格納手段とを備え、上記格納手段に格納されている上記記憶部の上記所定のバイト数分のアドレスから特定のアドレスが選択され、上記特定のアドレスに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記記憶部の上記所定のバイト数分のアドレスから上記特定のアドレスが選択されるようになっている。
さらに、本発明の第7の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段に保存されているデータの最大値および最小値の少なくとも一方を予め格納しておく格納手段とを備え、上記格納手段に格納されているデータの最大値および最小値の少なくとも一方が取り出され、上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記データの最大値および最小値の少なくとも一方が読み出されるようになっている。
さらに、本発明の第8の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記電子制御装置の上記機能を実現するために使用されるプログラムのプログラムポインタを予め格納しておく格納手段とを備え、上記格納手段に格納されているプログラムのプログラムポインタが取り出され、上記第1のデータ保存手段内のデータと共に上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されているプログラムのプログラムポインタが読み出されるようになっている。
さらに、本発明の第9の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段を構成する記憶部の複数のセクションを予め格納しておく格納手段とを備え、上記格納手段に格納されている上記記憶部の複数のセクションから特定のセクションが選択され、上記特定のセクションに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記記憶部の複数のセクションから上記特定のセクションが選択されるようになっている。
さらに、本発明の第10の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記第1のデータ保存手段を構成する記憶部の複数のセクション、および、各々の上記セクションの先頭アドレスから所定のバイト数分のアドレスを予め格納しておく格納手段とを備え、上記格納手段に格納されている上記記憶部の複数のセクションから特定のセクションが選択されると共に、上記所定のバイト数分のアドレスから特定のアドレスが選択され、上記特定のセクションおよび上記特定のアドレスに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置において、上記格納手段が、上記電子制御機器の自己診断を支援する外部検査ツールに設けられており、上記外部検査ツールにより、上記格納手段に格納されている上記記憶部の複数のセクションから上記特定のセクションが選択されると共に、上記所定のバイト数分のアドレスから上記特定のアドレスが選択されるようになっている。
さらに、本発明の第11の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、当該機能を実現するために使用されるプログラムが、複数のモジュール(または複数のロジック)により構成されており、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記複数のモジュールの各々について、上記第1のデータ保存手段を構成する記憶部のアドレスを保持するための補助情報保存手段とを備え、上記複数のモジュール中の特定のモジュール(または特定のロジック)で上記異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されている上記記憶部のアドレスが上記補助情報保存手段から読み出され、当該記憶部のアドレスに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
さらに、本発明の第12の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、上記機能を実現するために使用されるプログラムが、複数のモジュールにより構成されており、移動体に取り付けられた複数のセンサにより取得されるデータを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段と、上記複数のモジュールの各々について、上記第1のデータ保存手段を構成する記憶部に保持されているデータの最大値および最小値の少なくとも一方を保持するための補助情報保存手段とを備え、上記複数のモジュール中の特定のモジュールで上記異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されている上記記憶部に保持されているデータの最大値および最小値の少なくとも一方が上記補助情報保存手段から読み出され、上記第2のデータ保存手段に送り込まれるように構成される。
好ましくは、本発明の電子制御装置における上記複数のモジュールの各々について、上記記憶部のアドレス、および、上記記憶部に保持されているデータの最大値および最小値の少なくとも一方を含む補助情報が、テーブルの形式で上記補助情報保存手段に保持されている。
さらに、本発明の第13の態様に係る電子制御装置は、移動体内の電子制御機器を制御して上記電子制御機器の自己診断を行う機能を有し、上記機能を実現するために使用されるプログラムが、複数のモジュールにより構成されており、移動体に取り付けられた複数のセンサにより取得されるデータ、および、上記電子制御装置の上記機能を実現するために使用されるプログラムのプログラムポインタを一時的に保持するための第1のデータ保存手段と、上記電子制御機器の異常状態が検知されたときに、上記第1のデータ保存手段内のデータおよびプログラムのプログラムポインタを所定のサンプリング間隔で保存するための不揮発性の第2のデータ保存手段とを備え、上記複数のモジュール中の特定のモジュールで上記異常状態を示すフラグが検出されたときに、上記第1のデータ保存手段に保持されているプログラムポインタの中で、上記特定のモジュールで使用されているプログラムのプログラムポインタが、上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれるように構成される。
また一方で、本発明の電子制御機器のデータ保存方法は、移動体に取り付けられた複数のセンサにより取得されるデータを第1のデータ保存手段に一時的に保持するステップと、移動体内の電子制御機器の異常状態が検知されたときに、不揮発性の第2のデータ保存手段により、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するステップと、上記第2のデータ保存手段に保存されるデータに基づいて、上記電子制御機器の自己診断を行うステップと、上記電子制御機器の自己診断を行うためのプログラムを構成する複数のモジュールの各々について、上記第1のデータ保存手段を構成する記憶部のアドレスを補助情報保存手段に保持するステップとを含み、上記複数のモジュール中の特定のモジュールで上記異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されている上記記憶部のアドレスが上記補助情報保存手段から読み出され、当該記憶部のアドレスに関係するデータが上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれる。
好ましくは、上記特定のモジュールで使用されているプログラムのプログラムポインタが、上記第1のデータ保存手段から取り出されて第2のデータ保存手段に送り込まれ、上記プログラムにて割り込みが発生したときに、最速の割り込みのタイミングにて上記プログラムポインタを第2のデータ保存手段に保存するフリーズ処理が実行される。
さらに、本発明の電子制御機器のデータ保存方法は、移動体に取り付けられた複数のセンサにより取得されるデータを第1のデータ保存手段に一時的に保持するステップと、移動体内の電子制御機器の異常状態が検知されたときに、不揮発性の第2のデータ保存手段により、上記第1のデータ保存手段内のデータを所定のサンプリング間隔で保存するステップと、上記第2のデータ保存手段に保存されるデータに基づいて、上記電子制御機器の自己診断を行うステップと、上記電子制御機器の自己診断を行うためのプログラムを構成する複数のモジュールの各々について、上記第1のデータ保存手段を構成する記憶部に保持されているデータの最大値および最小値の少なくとも一方を補助情報保存手段に保持するステップとを含み、上記複数のモジュール中の特定のモジュールで上記異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されている上記記憶部に保持されているデータの最大値および最小値の少なくとも一方が上記補助情報保存手段から読み出され、上記第2のデータ保存手段に送り込まれる。
好ましくは、上記フリーズ処理は、フリーズ処理時に上記第2のデータ保存手段に保存されるべき上記プログラムポインタがなくなるまで実行される。
さらに、本発明の電子制御機器のデータ保存方法は、移動体に取り付けられた複数のセンサにより取得されるデータ、および、移動体内の電子制御機器の自己診断を行う機能を実現するための複数のモジュールからなるプログラムのプログラムポインタを第1のデータ保存手段に一時的に保持するステップと、移動体内の電子制御機器の異常状態が検知されたときに、不揮発性の第2のデータ保存手段により、上記第1のデータ保存手段内のデータおよびプログラムのプログラムポインタを所定のサンプリング間隔で保存するステップと、上記複数のモジュールの各々について、上記第1のデータ保存手段を構成する記憶部のアドレスを補助情報保存手段に保持するステップと、上記第2のデータ保存手段に保存されるデータおよびプログラムのプログラムポインタに基づいて、上記電子制御機器の自己診断を行うステップとを含み、上記複数のモジュール中の特定のモジュールで上記異常状態を示すフラグが検出されたときに、上記第1のデータ保存手段に保持されているプログラムポインタの中で、上記特定のモジュールで使用されているプログラムのプログラムポインタが、上記第1のデータ保存手段から取り出されて上記第2のデータ保存手段に送り込まれる。
要約すれば、本発明では、第1に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目ではなく、外部検査ツール等の登録手段に登録されている複数のデータ項目から指定された特定のデータ項目に従って、この特定のデータ項目に関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするデータ項目を任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第2に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されている複数のバイト数のグループから指定された特定のバイト数のグループに従って、この特定のバイト数のグループに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするバイト数のグループを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第3に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されているRAM等の記憶部のアドレスから指定された特定のアドレスに従って、この特定のアドレスに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするRAM等の記憶部のアドレスを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第4に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されている複数の系列のグループから指定された特定の系列のグループに従って、この特定の系列のグループに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とする系列のグループを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第5に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されている指示内容に従って、第1のデータ保存手段から全てのデータを一括して取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とする全てのデータを一括して選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第6に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されているRAM等の記憶部の先頭アドレスより所定のバイト数分のアドレスから指定された特定のアドレスに従って、この特定のアドレスに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするRAM等の記憶部の先頭アドレスから所定のバイト数分のアドレスを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第7に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されている第2のデータ保存手段内のデータの最大値または最小値を取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とする第2のデータ保存手段内のデータの最大値または最小値を選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第8に、車両等の移動体内の電子制御機器の異常状態が検知された場合、外部検査ツール等の登録手段に格納されているプログラムのプログラムポインタを取り出して第2のデータ保存手段に保存するようにしている。
これによって、電子制御機器の自己診断を行う機能を実現するためのプログラムの流れを明確に把握することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析に役立てることが可能になる。
さらに、本発明では、第9に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されているRAM等の記憶部の複数のセクションから指定された特定のセクションに従って、この特定のセクションに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするRAM等の記憶部のセクションを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第10に、車両等の移動体内の電子制御機器の異常状態が検知された場合、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等の登録手段に登録されているRAM等の記憶部の複数のセクションから指定された特定のセクション、および上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスに従って、上記特定のセクションの先頭アドレスから所定のバイト数分のアドレスに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、フリーズ処理の対象とするRAM等の記憶部のセクションの先頭アドレスから所定のバイト数分のアドレスを任意に選択することができるようになり、コンピュータのCPU等の処理負荷やROMの容量を増大させることなく、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第11に、電子制御機器の自己診断を行うためのプログラムにおける特定のモジュール(または特定のロジック)で車両等の移動体内の電子制御機器の異常発生の兆候が見出された場合(すなわち、上記特定のモジュールで電子制御機器の異常状態を示すフラグが検出された場合)、上記特定のモジュールで使用されているRAM等の記憶部のアドレスを補助情報保存手段から読み出し、当該記憶部のアドレスに関係するデータを第1のデータ保存手段から取り出して第2のデータ保存手段に保存するようにしている。
これによって、電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているRAM等の記憶部のアドレスを選択することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第12に、電子制御機器の自己診断を行うためのプログラムにおける特定のモジュールで車両等の移動体内の電子制御機器の異常発生の兆候が見出された場合、上記特定のモジュールで使用されているRAM等の記憶部のデータの最大値または最小値を補助情報保存手段から読み出して第2のデータ保存手段に保存するようにしている。
これによって、電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているRAM等の記憶部のデータの最大値または最小値を選択することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、本発明では、第13に、電子制御機器の自己診断を行うためのプログラムにおける特定のモジュールで車両等の移動体内の電子制御機器の異常発生の兆候が見出された場合、上記特定のモジュールで使用されているプログラムのプログラムポインタを第1のデータ保存手段から取り出して上記第2のデータ保存手段に保存するようにしている。
これによって、電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているプログラムの流れを明確に把握することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析に役立てることが可能になる。
以下、添付図面(図1〜図15)を参照しながら、本発明の好ましい実施形態(実施例)を説明する。
図1は、本発明の一実施例に係る電子制御装置の構成を示すブロック図である。ただし、ここでは、電子制御式エンジン等の電子制御機器9を制御するための電子制御装置1の構成を簡略化して示す。なお、これ以降、前述した構成要素と同様のものについては、同一の参照番号を付して表すこととする。
図1に示すように、車両等の移動体には、電子制御式エンジン等の電子制御機器9の現在の状態を正確に把握して電子制御機器9に何らかの異常が発生したこと(すなわち、電子制御機器が異常状態になっていること)を検知することができるようにするために、各種のセンサを含むセンサ部5が設けられている。
上記の各種のセンサとして、電子制御式エンジン等の空気対燃料比を感知するA/Fセンサ50、電子制御式エンジン等に使用される水温を感知する水温センサ51、電子制御式エンジン等に使用される酸素の濃度を感知する酸素濃度センサ52、車両等のノッキングを感知するノッキングセンサ53、電子制御式エンジン等に使用されるオイルの温度を感知する油温センサ54、電子制御式エンジン等の排気温を感知する排気温センサ55、電子制御式エンジン等の吸気温を感知する吸気温センサ56、車両等のトルクを感知するトルクセンサ57、車両等のクランク角を感知するクランク角センサ58、車両等の走行速度(またはエンジン回転数)を感知する車速センサ59、および車両等のスロットルポジションを感知するスロットルポジションセンサ60等が挙げられる。
図1の電子制御装置1は、電子制御式エンジン等の電子制御機器9を制御して電子制御機器9の自己診断を行う機能(すなわち、ダイアグノーシス機能)を有するCPU4と、電子制御機器9の自己診断を実行させるためのプログラムを含む各種のプログラムを格納するROM4と、各種のプログラムに関連したデータや各種のセンサにより取得されるセンサ検出データを一時的に保持するための主記憶装置である第1のデータ保存手段2と、センサ検出データ等に基づいて電子制御機器9の異常状態が検知されたときに、第1のデータ保存手段2内の予め定められたデータを所定のサンプリング間隔で保存するための不揮発性メモリである第3のデータ保存手段3とを備えている。
好ましくは、上記の第1のデータ保存手段2は、RAMにより構成され、第2のデータ保存手段は、バックアップ機能付きのSRAM、または電気的にデータを書き込んだり消去したりすることが可能なEEPROMにより構成される。
さらに、図1の電子制御装置1は、入力側の各種のセンサおよびバッテリ7とのインタフェースを取る入力インタフェース回路11と、一部のセンサ(例えば、A/Fセンサ50、水温センサ51および油温センサ54等)からのアナログ形式の検出信号をディジタル形式の検出信号に変換するA/Dコンバータ12と、出力側の電子制御機器9とのインタフェースを取る出力インタフェース回路13とを備えている。
例えば、図1の電子制御装置1では、A/Fセンサ50、水温センサ51、酸素濃度センサ52、ノッキングセンサ53、油温センサ54、排気温センサ55および吸気温センサ56等の各種のセンサにより検出されたアナログ形式の検出信号が、入力インタフェース回路11を介してA/Dコンバータ12に入力され、このA/Dコンバータ12によりディジタル形式の検出信号に変換された後に、CPU4に入力される。また一方で、トルクセンサ57、クランク角センサ58、車速センサ59およびスロットルポジションセンサ60等により検出されたディジタル形式の検出信号が、入力インタフェース回路11を介してCPU4に入力される。
さらに、図1の電子制御装置1は、バッテリ7を使用してCPU4および第1のデータ保存手段2等に一定の電圧を供給する定電圧電源70と、バッテリ7を使用して第2のデータ保存手段3にバックアップ用の電源電圧を供給するバックアップ電源71とを備えている。定電圧電源70は、車両等の移動体のイグニッションスイッチがオンになっている期間だけ、CPU4および第1のデータ保存手段2等に一定の電圧を供給している。また一方で、バックアップ電源71は、イグニッションスイッチのオン/オフに関係なく、第1のデータ保存手段3にバックアップ用の電源電圧を常時供給している。このバックアップ用の電源電圧は、第2のデータ保存手段3がSRAM等により構成される場合に特に有効に作用する。
さらに、図1の電子制御装置1において、CPU4に入力されたディジタル形式の検出信号は、センサ検出データとして、RAM等の第1のデータ保存手段2に一時的に保持される。前述のように、第1のデータ保存手段2では、車両等の移動体のイグニッションスイッチがオンになっている期間だけ、各々のセンサ検出データが更新されるタイミングに応じた周期でセンサ検出データを保持するようになっている。それゆえに、イグニッションスイッチがオフになったときに、第1のデータ保存手段2に保持されているセンサ検出データは全て消失する。RAM等の第1のデータ保存手段2は、通常、揮発性メモリと呼ばれている。
また一方で、第1のデータ保存手段2に保持されているセンサ検出データ等に基づいて電子制御機器9に何らかの異常が発生していることが検知された場合、第1のデータ保存手段2に保持されているセンサ検出データの中から予め定められたデータを取り出し、第2のデータ保存手段3に一定のサンプリング間隔(例えば、500msec)で保存するようになっている。
第2のデータ保存手段3がSRAM等により構成される場合、前述のように、SRAM等の第2のデータ保存手段3では、バックアップ電源71によって、バックアップ用の電源電圧が常時供給される。それゆえに、イグニッションスイッチがオフになっても、SRAM等の第2のデータ保存手段3に保存されているデータは消失しない。したがって、整備工場等において、SRAM等の第2のデータ保存手段3に保存されているデータを読み出して電子制御機器の異常発生の原因の解析や異常発生の経緯の特定に役立てることにより、当該電子制御機器の自己診断を行うことが可能になる。
好ましくは、電子制御装置1内の主記憶装置の容量の節減を図るために、RAM等の第1のデータ保存手段2が全てSRAM等の第2のデータ保存手段3の領域に含まれるような構成にすることもできる。このような構成では、RAM等の第1のデータ保存手段2は、SRAM等の第2のデータ保存手段3の領域に対する電源の立ち上げ時(パワーオンのとき)に全てリセットされ、NRAMとして使用される。ただし、本発明の実施例に係る電子制御装置は、上記のような構成に限定されるものではない。
あるいは、第2のデータ保存手段3がEEPROM等により構成される場合、イグニッションスイッチがオンになっている期間で、移動体内の電子制御機器の異常状態が検知されたときに、第1のデータ保存手段2から取り出されたデータがEEPROM等に保存される。また一方で、イグニッションスイッチがオフになっている期間では、バックアップ用の電源電圧が供給されなくても、EEPROM等の第2のデータ保存手段3に保存されているデータは消失することなくそのまま保持される。したがって、この場合も、前述のSRAM等を使用した場合と同様に、整備工場等において、EEPROM等の第2のデータ保存手段3に保存されているデータを読み出して電子制御機器の異常発生の原因の解析や異常発生の経緯の特定に役立てることにより、当該電子制御機器の自己診断を行うことが可能になる。
さらに、図1の電子制御装置1には、ダイアグスキャンツール等の電子制御機器9の自己診断を支援する外部検査ツール8が接続されている。この外部検査ツール8には、SRAM等の不揮発性メモリを含む格納手段80が設けられている。この格納手段80には、移動体内の複数のセンサにより取得されるデータに関連した任意の関連項目(例えば、複数のデータ項目や複数のバイト数のグループ等)が予め格納されている。さらに、外部検査ツール8は、格納手段80に格納されている任意の関連項目の中から特定の関連項目を指定して選択するための選択ボタン(選択スイッチ)を含む選択手段81と、この選択手段81により選択された特定の関連項目を表示画面に表示する表示手段82とを具備している。上記の選択手段81により選択された特定の関連項目は、入力インタフェース回路11およびCPU4を介して、第2のデータ保存手段3に送り込まれ保存される。
その後、電子制御機器9の異常状態が検知されたときに、CPU4は、第2のデータ保存手段3に保存されている特定の関連項目に従って、この特定の関連項目に関係するデータを第1のデータ保存手段2から取り出して第2のデータ保存手段3に保存するようにしている。
好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に格納されている複数のデータ項目(例えば、エンジン回転数、水温および吸気温)の中から選択された特定のデータ項目に従って、この特定のデータ項目に関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることよって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に格納されている複数のバイト数のグループ(例えば、1バイトのグループ、2バイトのグループおよび4バイトのグループ)の中から選択された特定のバイト数のグループに従って、この特定のバイト数のグループに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2がRAM(記憶部)により構成される場合、第1のデータ保存手段2内のデータのフリーズ処理を行う際に、外部検査ツール8の格納手段80に格納されているRAMのアドレスの中から選択された特定のアドレスに従って、この特定のアドレスに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に格納されている複数の系列のグループ(例えば、A/D系データ、通信系データおよびモニタ系データ)の中から選択された特定の系列のグループに従って、この特定の系列のグループに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に予め格納されている「第1のデータ保存手段2内の全てのデータを一括して指定する」旨の指示内容に従って、第1のデータ保存手段2から全てのデータが一括して取り出され、第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2がRAM(記憶部)により構成される場合、第1のデータ保存手段2内のデータのフリーズ処理を行う際に、外部検査ツール8の格納手段80に格納されているRAMの先頭アドレスより所定のバイト数分のアドレスの中から選択された特定のアドレスに従って、この特定のアドレスに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に格納されている第1のデータ保存手段2内のデータの最大値および最小値が取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2内のデータのフリーズ処理を行う場合、外部検査ツール8の格納手段80に格納されているプログラムのプログラムポインタが取り出され、第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2がRAM(記憶部)により構成される場合、第1のデータ保存手段2内のデータのフリーズ処理を行う際に、外部検査ツール8の格納手段80に格納されているRAMの複数のセクション(例えば、エンジンのセクション、無段変速機のセクションおよびプラットフォームのセクション)の中から選択された特定のセクションに従って、この特定のセクションに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、第1のデータ保存手段2がRAM(記憶部)により構成される場合、第1のデータ保存手段2内のデータのフリーズ処理を行う際に、外部検査ツール8の格納手段80に格納されているRAMの複数のセクションの中から選択された特定のセクション、および上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスに従って、上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
ここで、図1の電子制御装置1において、電子制御機器9の自己診断を実行させるためのプログラムが、複数のモジュール(または複数のロジック)により構成される場合を想定する。この場合、図1の電子制御装置1は、SRAM等の不揮発性メモリからなる補助情報記憶手段6を備えている。好ましくは、この補助情報記憶手段6は、SRAM等の不揮発性メモリからなる第2のデータ保存手段3とは別個に設けられているが、補助情報記憶手段6および第2のデータ保存手段3を共用のSRAMに実装することも可能である。
上記の補助情報記憶手段6には、複数のモジュールの各々について、第1のデータ保存手段2を構成するRAM(記憶部)のアドレスや、当該RAMに保持されているデータの最大値または最小値や、電子制御機器の異常状態を示すフラグが予め格納されている。好ましくは、複数のモジュールの各々について、RAMのアドレスや、当該RAMに保持されているデータの最大値または最小値や、電子制御機器の異常状態を示すフラグを含む補助情報が、RAM定義テーブルの形式で補助情報保存手段6に格納されている。
複数のモジュール中の特定のモジュールに関して、あるサンプリングの時刻で電子制御機器9に何らかの異常が発生した場合、この電子制御機器9に異常が発生したことを示すフラグが立つ。このフラグが検出された時点で、電子制御機器9に異常発生の兆候が見出されたものとみなされる。最終的に、予め定められたサンプリング時間(すなわち、あるサンプリングの時刻と他のサンプリングの時刻との間の時間)内で、電子制御機器9に異常が発生したことを示すフラグが所定の回数以上検出されたときに、電子制御機器9の異常状態が正式に検知されたものと判断される。
好ましい実施形態として、図1の電子制御装置1において、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出され、電子制御機器9の異常発生の兆候が見出された時点で、上記特定のモジュールで使用されているRAMのアドレスが補助情報保存手段6から読み出され、このRAMのアドレスに関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
さらに、好ましい実施形態として、図1の電子制御装置1において、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出され、電子制御機器9の異常発生の兆候が見出された時点で、上記特定のモジュールで使用されているRAM内のデータの最大値または最小値が補助情報保存手段6から読み出され、このRAM内のデータの最大値または最小値に関係するデータが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
好ましくは、図1の電子制御装置1において、電子制御機器9の自己診断を実行させるための複数のモジュールからなるプログラムのプログラムポインタが、移動体内の複数のセンサにより取得されるデータと共に、第1のデータ保存手段2に保持されるようになっている。
好ましい実施形態として、図1の電子制御装置1において、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出され、電子制御機器9の異常発生の兆候が見出された時点で、上記特定のモジュールで使用されているプログラムのプログラムポインタが第1のデータ保存手段2から取り出されて第2のデータ保存手段3に保存される。このような実施形態は、CPU4により、ROM10に格納されているプログラムを読み出して実行させることによって実施されることが可能である。
より具体的にいえば、図1の電子制御装置1内のROM10に格納されているプログラムは、移動体に取り付けられた複数のセンサにより取得されるデータを第1のデータ保存手段2に一時的に保持するステップと、移動体内の電子制御機器9の異常状態が検知されたときに、不揮発性の第2のデータ保存手段3により、第1のデータ保存手段2内のデータを所定のサンプリング間隔で保存するステップと、第2のデータ保存手段3に保存されるデータに基づいて、電子制御機器9の自己診断を行うステップと、電子制御機器9の自己診断を実行させるためのプログラムを構成する複数のモジュールの各々について、第1のデータ保存手段2を構成するRAMのアドレスを補助情報保存手段6に保持するステップとを含み、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されているRAMのアドレスが補助情報保存手段6から読み出され、当該記憶部のアドレスに関係するデータが第1のデータ保存手段2から取り出されて上記第2のデータ保存手段3に送り込まれるように設定されている。
また一方で、図1の電子制御装置1内のROM10に格納されているプログラムは、移動体に取り付けられた複数のセンサにより取得されるデータを第1のデータ保存手段2に一時的に保持するステップと、移動体内の電子制御機器9の異常状態が検知されたときに、不揮発性の第2のデータ保存手段2により、第1のデータ保存手段2内のデータを所定のサンプリング間隔で保存するステップと、第2のデータ保存手段2に保存されるデータに基づいて、電子制御機器9の自己診断を行うステップと、電子制御機器9の自己診断を実行させるためのプログラムを構成する複数のモジュールの各々について、第1のデータ保存手段2を構成するRAMに保持されているデータの最大値または最小値を補助情報保存手段6に保持するステップとを含み、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出されたときに、上記特定のモジュールで使用されているRAM内のデータの最大値または最小値が補助情報保存手段6から読み出され、第2のデータ保存手段3に送り込まれるように設定される。
また一方で、図1の電子制御装置1内のROM10に格納されているプログラムは、移動体に取り付けられた複数のセンサにより取得されるデータ、および、移動体内の電子制御機器9の自己診断を行う機能を実現するための複数のモジュールからなるプログラムのプログラムポインタを第1のデータ保存手段2に一時的に保持するステップと、移動体内の電子制御機器9の異常状態が検知されたときに、不揮発性の第2のデータ保存手段3により、第1のデータ保存手段2内のデータおよびプログラムのプログラムポインタを所定のサンプリング間隔で保存するステップと、複数のモジュールの各々について、第1のデータ保存手段2を構成するRAMのアドレスを補助情報保存手段6に保持するステップと、第2のデータ保存手段3に保存されるデータおよびプログラムのプログラムポインタに基づいて、電子制御機器9の自己診断を行うステップとを含み、複数のモジュール中の特定のモジュールで電子制御機器9の異常状態を示すフラグが検出されたときに、第1のデータ保存手段2に保持されているプログラムポインタの中で、上記特定のモジュールで使用されているプログラムのプログラムポインタが、第1のデータ保存手段2から取り出されて第2のデータ保存手段3に送り込まれるように設定される。
さらに、図1の実施例では、コンピュータ読み取り可能な記憶媒体(または記録媒体)を使用して電子制御装置1を動作させる場合、前述のようなプログラムの内容を保持しているハードディスクのような記憶媒体(図示されていない)を用意することが好ましい。
なお、図1の実施例で使用される記憶媒体は、上記したものに限らず、フロッピィディスクやMO(Magneto-Optical Disk:光磁気ディスク)やCD−R(Compact Disk-Recordable)やCD−ROM(Compact Disk Read-only Memory)等の可搬形媒体、その他の固定形媒体など種々の記憶媒体の形態で提供可能なものである。
図1の実施例によれば、コンピュータのソフトウェアにより固定されているデータ項目に制約されずに、外部検査ツール等に登録されている関連項目(例えば、複数のデータ項目や複数のバイト数のグループ等)から指定された特定の関連項目(例えば、特定のデータ項目や特定のバイト数のグループ等)に従って、フリーズ処理の対象とするデータを任意に選択することができるので、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、図1の実施例によれば、RAM内のデータのフリーズ処理を行う際に、外部検査ツール等に格納されているプログラムのプログラムポインタを取り出してSRAMまたはEEPROM等に保存するようにしているので、電子制御機器の自己診断を実行させるためのプログラムの流れを明確に把握することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析に役立てることが可能になる。
さらに、図1の実施例によれば、電子制御機器の自己診断を実行させるためのプログラムにおける特定のモジュールで電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているRAMのアドレスまたはRAM内のデータの最大値もしくは最小値を選択することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
さらに、図1の実施例によれば、電子制御機器の自己診断を実行させるためのプログラムにおける特定のモジュールで電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているプログラムの流れを明確に把握することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析に役立てることが可能になる。
図2は、本発明の実施例にてフリーズ処理対象のデータ項目を選択する手順を示す模式図である。
ここでは、移動体内のセンサにより取得されるデータに関連した複数のデータ項目がある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図2の拡大された表示画面84に表示されているように、「1.エンジン回転数、2.電子制御式エンジン等に使用される水温、3.電子制御式エンジン等の吸気温、4.アクセル開度…」が、複数のデータ項目DIとして絞り込まれている。ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている複数のデータ項目DIの中から、電子制御機器の異常発生に関係すると予想される特定のデータ項目(ここでは、3.電子制御式エンジン等の吸気温)が選択される。このようにして選択された特定のデータ項目は、電子制御装置(ECU)1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ(SRAMまたはEEPROM等)30に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている特定のデータ項目に従って、この特定のデータ項目に関係するデータを第1のデータ保存手段2(図1参照)から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするデータ項目を絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図3は、本発明の実施例にてフリーズ処理対象のバイト数のグループを選択する手順を示す模式図である。
ここでは、移動体内のセンサにより取得されるデータに関連した複数のバイト数のグループがある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図3の拡大された表示画面84に表示されているように、「1.1バイトグループ、2.2バイトグループ、3.4バイトグループ…」が、複数のバイト数のグループBGとして絞り込まれている。ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている複数のバイト数のグループBGの中から、電子制御機器の異常発生に関係すると予想される特定のバイト数のグループ(ここでは、2.2バイトグループ)が選択される。このようにして選択された特定のバイト数のグループは、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている特定のバイト数のグループに従って、この特定のバイト数のグループに関係するデータを第1のデータ保存手段2(図1参照)から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするバイト数のグループを絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図4は、本発明の実施例にてフリーズ処理対象のRAMのアドレスを選択する手順を示す模式図である。
図4において、第1のデータ保存手段2(図1参照)を構成するRAMのアドレスがある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図4の拡大された表示画面84に表示されているように、「1.0xFFFF8000、2.0xFFFF9210、3.0xFFFFA140および4.0xFFFFB280(全て16進数で表示された値)…」が、複数のRAMのアドレスADとして絞り込まれている。ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている複数のRAMのアドレスADの中から、電子制御機器の異常発生に関係すると予想される特定のRAMのアドレス(ここでは、3.0xFFFFA140)が選択される。このようにして選択された特定のRAMのアドレスは、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている特定のRAMのアドレスに従って、この特定のRAMのアドレスに関係するデータを第1のデータ保存手段2から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするRAMのアドレスを絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図5は、本発明の実施例にてフリーズ処理対象のデータのグループを選択する手順を示す模式図である。
ここでは、移動体内のセンサにより取得されるデータに関連した複数の系列のグループがある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図5の拡大された表示画面84に表示されているように、「1.A/D系データ、2.通信系データ、3.モニタ系データ…」が、複数の系列のグループDGとして絞り込まれている。ここで、A/D系データは、アナログ/ディジタル変換処理を行う回路系のデータのグループを表しており、通信系データは、任意の信号の通信処理を行う回路系のデータのグループを表しており、モニタ系データは、接続部の断線等を検出する回路系のデータのグループを表している。
ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている複数の系列のグループDGの中から、電子制御機器の異常発生に関係すると予想される特定の系列のグループ(ここでは、2.通信系データ)が選択される。このようにして選択された特定の系列のグループは、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ(SRAMまたはEEPROM等)30に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている特定の系列のグループに従って、この特定の系列のグループに関係するデータを第1のデータ保存手段2(図1参照)から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とする系列のグループを絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図6は、本発明の実施例にて本発明の実施例にてRAM内の全てのデータを選択する手順を示す模式図である。
ここでは、第1のデータ保存手段2(図1参照)を構成するRAMに保持されている全てのデータを一括して指定する場合を想定する。この場合は、図6の拡大された表示画面84に表示されているように、「全データ指定(すなわち、RAM内の全てのデータを一括して指定する旨」の指示内容WDが、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている「全データ指定」の指示内容WDが選択される。このようにして選択された「全データ指定」の指示内容は、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている「全データ指定」の指示内容に従って、RAM内の全てのデータを第1のデータ保存手段2から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とする全てのデータを一括して選択することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図7は、本発明の実施例にてRAMの先頭アドレスからバイト数分のアドレスを選択する手順を示す模式図である。
図7において、第1のデータ保存手段2(図1参照)を構成するRAMの先頭アドレスから所定のバイト数分のアドレスがある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図7の拡大された表示画面84に表示されているように、RAMの先頭アドレスからのバイト数(RAMの先頭アドレスから**Byte)BAが指定されるようになっている。ここで、ユーザ等が選択ボタン81を操作して、RAMの先頭アドレスからのバイト数BAを入力することによって、RAMの先頭アドレスから特定のバイト数分のアドレスが選択される。このようにして選択されたRAMの先頭アドレスから特定のバイト数分のアドレスは、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている上記特定のバイト数分のアドレスに従って、この特定のバイト数分のアドレスに関係するデータを第1のデータ保存手段2から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするRAMの先頭アドレスからバイト数分のアドレスを絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図8は、本発明の実施例にてRAM内のデータの最大値または最小値を指定する手順を示す模式図である。
図8において、第1のデータ保存手段2(図1参照)を構成するRAMに保存されているデータの最大値または最小値がある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図8の拡大された表示画面84において、格納手段80に格納されているRAM内のデータの最大値または最小値MAX,MINが表示されている。ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されているRAM内のデータの最大値または最小値MAX,MINが指定される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、選択ボタン81により指定されたRAM内のデータの最大値または最小値を格納手段80から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするRAM内のデータの最大値または最小値を絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図9は、本発明の実施例にてプログラムポインタを指定する手順を示す模式図である。
ここでは、CPU4(図1参照)が、電子制御機器の自己診断を実行させるためのプログラムのプログラムポインタ(通常、複数個のプログラムポインタが存在する)を常に把握している点に着目し、CPU4により、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に上記プログラムポインタを格納するようにしている。より具体的には、図9の拡大された表示画面84において、格納手段80に格納されているプログラムポインタPPが表示されている。ここで、「プログラムポインタ」とは、上記プログラムの各々の命令に対応するアドレスを指している。なお、このプログラムポインタの具体的な例は、後述の図14および図15に図示されている。
ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されているプログラムポインタPPが指定され、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4は、格納手段80に予め保存されているプログラムポインタを取り出して不揮発性メモリ30に保存するようにしている。これによって、電子制御機器の自己診断を実行させるためのプログラムの流れを明確に把握することができるようになり、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析に役立てることが可能になる。
ここで、電子制御機器の自己診断を実行させるためのプログラムの各々の命令とプログラムポインタとが1対1に対応しているので、当該プログラムが現在どの命令を実行しているかはプログラムポインタを参照すれば容易にわかる。ただし、関数コール中は、その関数コールがなされているプログラムのアドレスがプログラムポインタに格納されているので、割り込みに入る前の実行アドレスを知るには、割り込み前のアドレスが格納されているリンクポインタを参照すればよい。
プログラムポインタに対して途切れなくフリーズ処理を行うためには、プログラムの1命令毎にフリーズ処理を行って全てのプログラムポインタを不揮発性メモリ30に保存することが必要である。しかしながら、全てのプログラムポインタのフリーズ処理を行うことは、処理速度の関係からして実際には難しいので、最速の割り込みのタイミングでリンクポインタのフリーズ処理を行うようにしている。
図10は、本発明の実施例にてRAMのセクションの全バイト、またはセクションの先頭アドレスからバイト数分のアドレスを選択する手順を示す模式図である。
図10において、第1のデータ保存手段2(図1参照)を構成するRAMの複数のセクション、および各々のセクションの先頭アドレスから所定のバイト数分のアドレスがある程度絞り込まれ、外部検査ツール8の不揮発性メモリの格納手段80(図1参照)に格納されている。より具体的には、図10の拡大された表示画面84に表示されているように、「1.エンジン(ENG)のセクション、2.無段変速機(CVT)のセクション、3.プラットフォーム(PF)のセクション、4.ダイアグノーシス関係(OBD)のセクション…」が、複数のセクションSEとして絞り込まれている。また一方で、各々のセクションの全てのバイト数、または各々のセクションの先頭アドレスからのバイト数(セクションの先頭アドレスから**Byte)が指定されるようになっている。ここで、「セクション」とは、RAM定義マップ内で定義されている複数のエリアを指している。
ここで、ユーザ等が選択ボタン81を操作することによって、表示画面84に表示されている複数のセクションSE中の特定のセクション(ここでは、2.無段変速機のセクション)における全てのRAMのアドレス、または上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスが選択される。このようにして選択された特定のセクションの全てのRAMのアドレス、または上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスが、電子制御装置1内の第2のデータ保存手段3(図1参照)の不揮発性メモリ30(SRAMまたはEEPROM等)に保存される。
その後、電子制御機器の異常状態が正式に検知されたときに、CPU4(図1参照)は、不揮発性メモリ30に予め保存されている上記特定のセクションの全てのRAMのアドレス、または上記特定のセクションの先頭アドレスから特定のバイト数分のアドレスに従って、前者のアドレスまたは後者のアドレスのいずれか一方に関係するデータを第1のデータ保存手段2から取り出して不揮発性メモリ30に保存するようにしている。これによって、フリーズ処理の対象とするRAMのセクション、またはRAMのセクションの先頭アドレスからバイト数分のアドレスを絞り込んで限定することができるようになり、電子制御機器の異常発生の原因の解析を正確かつ迅速に行って異常発生の経緯を早期に特定することが可能になる。
図11は、異常状態の兆候があったときにモジュールで使用している全てのRAMアドレス、またはRAM内のデータの最大値もしくは最小値を指定する方法を示すデータフォーマット図である。
図11において、移動体内の電子制御機器の自己診断を実行させるためのプログラムが、複数のモジュール(または複数のロジック)により構成される場合を想定する。前述のように、図1の電子制御装置1は、SRAM等の不揮発性メモリからなる補助情報記憶手段6(図1参照)を備えている。この補助情報記憶手段6には、複数のモジュールの各々について、第1のデータ保存手段2を構成するRAMのアドレス、当該RAMに保持されているデータの最大値または最小値に対するピークホールドを行った値、および、電子制御機器に異常が発生したことを示すフラグを含む種々の補助情報が、RAM定義テーブルRTの形式で補助情報保存手段6に格納されている。
換言すれば、複数のモジュール(例えば、モジュール1〜モジュール5)の各々は、それぞれ個別にRAM定義テーブルRTを持っており、このRAM定義テーブルRTに基づいてRAM内のデータの値の読み出しおよび書き込みが行われる。
より具体的にいえば、図11に示すように、一つのモジュールに対するRAM定義テーブルRTには、管理ナンバー(例えば、No.1〜No.5)、RAMのアドレス(例えば、0xFFFFA800、0xFFFF9610、0xFFFFAB128、0xFFFFBC718および0xFFFFB8372(全て16進数で表示された値))、RAMの型、RAM内のデータの値のA/D変換を行う際の最小単位であるLSB(Least Significant Bit:最小量子化ビット)、RAM内のデータの最大値(MAX)または最小値(MIN)に対するピークホールドを行った値とピークホールドの方向を定義した値、およびフリーズ処理を行う際のサンプリングのタイミング(サンプリング数)が格納されている。
さらに詳しく説明すると、RAM定義テーブルの「RAMの型」に関していえば、SN1〜SN4は、署名済みで(signed)定義されているマクロを表しており、SNの後に付記された数字は、署名済みのマクロのバイト数を表している。また一方で、UN1〜UN4は、無署名で(unsigned)定義されているマクロを表しており、UNの後に付記された数字は、無署名のマクロのバイト数を表している。また一方で、FLAGは、電子制御機器に異常が発生したことを示すフラグを表している。
さらに、RAM定義テーブルの「LSB」に関していえば、0xFFFFA800、0xFFFF9610、0xFFFFAB128、0xFFFFBC718および0xFFFFB8372により表示されるRAMのアドレスに対応するデータは、それぞれ、5/1024、100/2550、1/1、1/10および0のLSBに基づいてA/D変換が行われる。
さらに、RAM定義テーブルの「RAM内のデータの最大値または最小値に対するピークホールドの方向」に関していえば、数字の1は、RAM内のデータの最大値をピークホールドすることを意味しており、数字の2は、RAM内のデータの最小値をピークホールドすることを意味しており、数字の0は、ピークホールドしないことを意味している。
さらに、RAM定義テーブルの「フリーズ処理を行う際のサンプリングのタイミング」に関していえば、数字の1は、RAM内のデータに対して毎回サンプリングを行うことを意味しており、数字の2は、RAM内のデータに対して2回に1回の割合でサンプリングを行うことを意味しており、数字の3は、RAM内のデータに対して3回に1回の割合でサンプリングを行うことを意味しており、数字の4は、RAM内のデータに対して4回に1回の割合でサンプリングを行うことを意味している。
ここで、複数のモジュール中の特定のモジュールに関して、移動体内の複数のセンサにより取得されるデータに基づき、あるサンプリングの時刻で電子制御機器に何らかの異常が発生したことが検出された場合、RAM定義テーブル内で電子制御機器に異常が発生したことを示すフラグが立つ。このフラグがCPUにより検出された時点で、電子制御機器に異常発生の兆候があったものとみなされる。ただし、この時点では、RAM内のデータのフリーズ処理はまだ開始しない。最終的に、予め定められたサンプリング時間内で、電子制御機器に異常が発生したことを示すフラグが所定の回数以上検出されたときに、電子制御機器の異常状態が正式に検知されたものとCPUにより判断され、RAM内のデータのフリーズ処理が行われる。
好ましくは、図11において、複数のモジュール中の特定のモジュールで電子制御機器の異常状態を示すフラグが検出され、電子制御機器の異常発生の兆候があったものとみなされた時点で、上記特定のモジュールで使用されているRAMのアドレスがRAM定義テーブルから読み出され、このRAMのアドレスに関係するデータが第1のデータ保存手段2(図1参照)から全て取り出されて第2のデータ保存手段3(図1参照)に保存される。上記のように、RAM定義テーブルにより電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているRAMのアドレスを全て選択することによって、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行うことができるようになる。
さらに、好ましくは、図11において、複数のモジュール中の特定のモジュールで電子制御機器の異常状態を示すフラグが検出され、電子制御機器の異常発生の兆候があったものとみなされた時点で、上記特定のモジュールで使用されているRAM内のデータの最大値または最小値のピークホールドした値がRAM定義テーブルから読み出され、このRAM内のデータの最大値または最小値に関係するデータが第1のデータ保存手段2(図1参照)から取り出されて第2のデータ保存手段3(図1参照)に保存される。上記のように、RAM定義テーブルにより電子制御機器の異常発生の兆候が見出された時点で、この異常発生の兆候に関係する特定のモジュールで使用されているRAM内のデータの最大値または最小値をピークホールドすることによって、電子制御機器の異常発生後に、電子制御機器の異常発生の原因の解析を正確かつ迅速に行うことができるようになる。
図12は、RAM定義テーブルを使用してフリーズ処理を行う手順を説明するためのフローチャートである。ここでは、図11のようなRAM定義テーブルにより特定のモジュールで電子制御機器の異常発生の兆候が見出された時点で、CPU等によりフリーズ処理を行うための処理フローを説明する。
図12のフローチャートの開始の部分では、移動体のイグニッションスイッチがオンになっている期間に、移動体内の複数のセンサにより検出された検出信号が、センサ検出データとして、RAM(第1のデータ保存手段)に一時的に保持される。また一方で、移動体内の電子制御機器の自己診断を実行させるためのプログラムを構成する複数のモジュールの各々について、RAMのアドレスおよびRAM内のデータの最大値または最小値を含む補助情報が、RAM定義テーブルの形式で補助情報保存手段に格納される。
さらに、図12のステップS11において、複数のモジュール中の特定のモジュールで電子制御機器の異常状態を示すフラグが立っているか否かがチェックされる。このフラグが立っていることが検出された場合、電子制御機器の異常発生の兆候があったものとみなされる。
特定のモジュールで上記フラグが立っていることが検出された後、図12のステップS12において、特定のモジュールで使用されているRAMのアドレス、または特定のモジュールで使用されているRAM内のデータの最大値もしくは最小値が指定されてRAM定義テーブルから読み出される。さらに、当該RAMのアドレス、または当該RAM内のデータの最大値もしくは最小値に関係するデータがRAMから取り出されて不揮発性メモリ(SRAMまたはEEPROM等)に送り込まれ、フリーズ処理が実行される。このような処理は、フリーズ処理時に不揮発性メモリに保存されるべきデータがなくなるまで実行される(図12のフローチャートの終了の部分)。
図13は、プログラムポインタを指定してフリーズ処理を行う手順を説明するためのフローチャートである。ここでは、複数のモジュール中の特定のモジュールで電子制御機器の異常発生の兆候が見出された時点で、CPU等により、上記特定のモジュールで使用されているプログラムのプログラムポインタのフリーズ処理を行うための処理フローを説明する。
図13のフローチャートの開始の部分では、移動体のイグニッションスイッチがオンになっている期間に、電子制御機器の自己診断を実行させるための複数のモジュールからなるプログラムのプログラムポインタが、移動体内の複数のセンサにより取得されるデータと共に、RAM(第1のデータ保存手段)に保持される。
さらに、図13のステップS21において、複数のモジュール中の特定のモジュールで電子制御機器の異常状態を示すフラグが立っているか否かがチェックされる。このフラグが立っていることが検出された場合、電子制御機器の異常発生の兆候があったものとみなされる。
特定のモジュールで上記フラグが立っていることが検出された後、図12のステップS22において、特定のモジュールで使用されているプログラムのプログラムポインタがRAMから取り出されて不揮発性メモリ(SRAMまたはEEPROM等)に送り込まれ、最速(最速=割り込み頻度が多いこと)の割り込みのタイミングにてプログラムポインタのフリーズ処理が実行される。このような処理は、フリーズ処理時に不揮発性メモリに保存されるべきプログラムポインタがなくなるまで実行される(図13のフローチャートの終了の部分)。
上記のステップS22では、電子制御機器の自己診断を実行させるためのプログラムの各々の命令とプログラムポインタとが1対1に対応しているので、当該プログラムが現在どの命令を実行しているかはプログラムポインタを参照すれば容易にわかる。ただし、関数コール中は、その関数コールがなされているプログラムのアドレスがプログラムポインタに格納されているので、割り込みに入る前の実行アドレスを知るには、割り込み前のアドレスが格納されているリンクポインタを参照すればよい。
プログラムポインタに対して途切れなくフリーズ処理を行うためには、プログラムの1命令毎にフリーズ処理を実行して全てのプログラムポインタを不揮発性メモリに保存することが必要である。しかしながら、全てのプログラムポインタのフリーズ処理を実行することは事実上不可能なので、好ましくは、最速の割り込みのタイミングでリンクポインタのフリーズ処理が実行される。
図14および図15は、本発明の実施例にてプログラムポインタを格納するまでの流れを説明するための流れ図(その1およびその2)である。
図14においては、移動体内の電子制御機器の自己診断を実行させるためのプログラムの一例が、あるソースのアセンブラ展開結果の形式で記述されている。このアセンブラ展開結果においては、左から「アドレス」、「機械語」および「アセンブル言語」が記載されている。ここで、プログラムポインタは、上記プログラムの各々の命令に対応するアドレスを指しており、一番左側の「アドレス」に相当する。
さらに、図15を参照しながら、プログラムポインタ(実際上はリンクポインタ)を不揮発性メモリに格納することでプログラムポインタのフリーズ処理を行うための流れを説明する。
前述の図14のプログラムで第1回目の割り込みが発生したときに、このときの割り込み前のアドレス(図14の「アドレス」の0x3026)が、リンクポインタ(レジスタ)に格納される。このような動作は、CPUにより自動的に実施される。さらに、第1回目の割り込み内の処理で、リンクポインタの値のフリーズ処理が実行される。その後は、発生した第1回目の割り込みに従って、割り込み処理が実施される。
ついで、前述の図14のプログラムで第2回目の割り込みが発生したときに、前述の第1回目の割り込みの場合と同様に、このときの割り込み前のアドレス(図14の「アドレス」の0x304e)が、リンクポインタに格納される。このような動作は、同様にCPUにより自動的に実施される。さらに、第2回目の割り込み内の処理で、リンクポインタの値のフリーズ処理が実行される。その後は、第2回目の割り込みに従って、割り込み処理が実行される。
その後、前述の図14のプログラムで第3回目の割り込みが発生したときに、前述の第1回目の割り込みの場合と同様に、このときの割り込み前のアドレス(図14の「アドレス」の0x306a)が、リンクポインタに格納される。このような動作は、同様にCPUにより自動的に実施される。さらに、第3回目の割り込み内の処理で、リンクポインタの値のフリーズ処理が実行される。その後は、第3回目の割り込みに従って、割り込み処理が実行される。
上記のように、プログラムポインタ(実際上はリンクポインタ)を最速の割り込みのタイミングでフリーズすることにより、プログラムの流れを容易に把握することができる。例えば、ソフトウェアがデッドロックした場合に、どういう流れでデッドロックが発生したかを正確に追跡することが可能になる。