(57)【要約】【課題】外部からのアクセスによる割込みベクタテーブルの切替えが容易で設計自由度の高い電子機器を提供する。【解決手段】電子機器は、割込み要因と割込み関数の先頭アドレスとの対応関係を示す複数の割込みベクタテーブルを予め記憶している第１記憶部と、書き換え可能な第２記憶部と、外部からの指示に応じて参照すべき割込みベクタテーブルの先頭アドレスを前記第２記憶部に記憶させ、割込み要因が発生した場合に、前記第２記憶部に記憶されているアドレスの割込みベクタテーブルを参照し、前記割込み要因に対応する割込み関数に従って割込み処理を実行する処理部とを備える。【選択図】図１
2012208567.tif 000002
【特許請求の範囲】
【請求項１】
割込み要因と割込み関数の先頭アドレスとの対応関係を示す複数の割込みベクタテーブルを予め記憶している第１記憶部と、
書き換え可能な第２記憶部と、
外部からの指示に応じて参照すべき割込みベクタテーブルの先頭アドレスを前記第２記憶部に記憶させ、割込み要因が発生した場合に、前記第２記憶部に記憶されているアドレスの割込みベクタテーブルを参照し、前記割込み要因に対応する割込み関数に従って割込み処理を実行する処理部と、
を備えることを特徴とする電子機器。
【請求項２】
前記第１記憶部はＲＯＭであり、前記第２記憶部はＲＡＭであることを特徴とする請求項１に記載の電子機器。
【請求項３】
制御対象機器を制御する電子制御装置であることを特徴とする請求項１または２に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関する。
【背景技術】
【０００２】
周知のように、ＣＰＵ(Central Processing Unit)は、内部レジスタの１つとして、割込み要因と割込み関数の先頭アドレスとの対応関係を示す割込みベクタテーブルの先頭アドレスを保持するベクタベースレジスタ(ＶＢＲ：Vector Base Register）を備えている。ＣＰＵは、割込み要因が発生した場合、ＶＢＲに保持されているアドレスの割込みベクタテーブルを参照し、上記割込み要因に対応する割込み関数に従って割込み処理を実行する。
【０００３】
例えば下記特許文献１には、ＣＰＵのバスエラー発生時において、ＲＯＭベクタテーブルの先頭アドレス、或いはＲＡＭベクタテーブルの先頭アドレスのいずれか一方を指すようにＶＢＲの内容を任意に書き換えることにより、効率的なバスエラー処理を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−２６５０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年では、ＣＰＵによる電子機器の多機能化が進んでおり、出荷前検査工程でチェックすべき検査項目数も非常に多くなっている。電子機器の検査手法としては、電子機器に検査装置を接続し、検査装置からの入力（割込み要因）に対して電子機器がどのようなレスポンスをとるかを確認することにより、電子機器の良否判定を行う手法が挙げられる。このような検査手法を採用する場合、検査用の割込みベクタテーブルを電子機器側に複数用意しておき、検査装置からのアクセスによってＣＰＵが参照する割込みベクタテーブルを検査項目に応じて切替える必要がある。
【０００６】
前述のように、ＶＢＲの内容を書き換えることで、ＣＰＵが参照する割込みベクタテーブルを切替えることができるが、ＶＢＲはＣＰＵの内部レジスタであるため、外部からのアクセスによってＶＢＲの内容を任意に書き換える（参照すべき割込みベクタテーブルを任意に切替える）には、専用のＶＢＲ書換え機能が実装されたＣＰＵを用いる必要がある。このようなＶＢＲ書換え機能を有するＣＰＵは、比較的高価であると共に製造メーカも限られているため、設計段階におけるＣＰＵの選択自由度を著しく損ねることになる。
【０００７】
本発明は上述した事情に鑑みてなされたものであり、外部からのアクセスによる割込みベクタテーブルの切替えが容易で設計自由度の高い電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明では、電子機器に係る第１の解決手段として、割込み要因と割込み関数の先頭アドレスとの対応関係を示す複数の割込みベクタテーブルを予め記憶している第１記憶部と、書き換え可能な第２記憶部と、外部からの指示に応じて参照すべき割込みベクタテーブルの先頭アドレスを前記第２記憶部に記憶させ、割込み要因が発生した場合に、前記第２記憶部に記憶されているアドレスの割込みベクタテーブルを参照し、前記割込み要因に対応する割込み関数に従って割込み処理を実行する処理部とを備えることを特徴とする。
【０００９】
また、本発明では、電子機器に係る第２の解決手段として、上記第１の解決手段において、前記第１記憶部はＲＯＭであり、前記第２記憶部はＲＡＭであることを特徴とする。
また、本発明では、電子機器に係る第３の解決手段として、上記第１または第２の解決手段において、制御対象機器を制御する電子制御装置であることを特徴とする。
【発明の効果】
【００１０】
本発明では、外部からの指示に応じて参照すべき割込みベクタテーブルの先頭アドレスを書き換え可能な第２記憶部に記憶させ、割込み要因が発生した場合に第２記憶部に記憶されているアドレスの割込みベクタテーブルを参照することにより、外部からのアクセスによる割込みベクタテーブルの切替えが容易となり、その結果、ＶＢＲ書換え機能を備えていない汎用ＣＰＵを処理部として用いることができる。
つまり、本発明によれば、外部からのアクセスによる割込みベクタテーブルの切替えが容易で設計自由度の高い電子機器を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るＥＣＵ１０のブロック構成図（ａ）と、ＲＯＭメモリ空間に格納された各割込みベクタテーブルの模式図（ｂ）である。
【図２】ＲＯＭメモリ空間における各割込み関数の格納状態を示す模式図である。
【図３】ＥＣＵ１０と検査装置２０の検査時動作を示すシーケンスチャートである。
【図４】ＥＣＵ１０のＣＰＵ１４が実行する検査処理を表すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態について、図面を参照しながら説明する。なお、以下では、本発明に係る電子機器として、車両に搭載されてエンジン等の制御対象機器を制御する電子制御装置（ＥＣＵ：Electronic Control Unit）を例示して説明する。
【００１３】
図１（ａ）は、本実施形態に係るＥＣＵ１０のブロック構成図である。この図に示すように、ＥＣＵ１０は、ＲＯＭ(Read Only Memory)１１、ＲＡＭ(Random Access Memory)１２、通信回路１３及びＣＰＵ１４を備えている。なお、図１（ａ）では、ＥＣＵ１０と検査装置２０とが不図示の通信ケーブルを介して接続され、検査装置２０によるＥＣＵ１０の検査が可能な状態を図示している。
【００１４】
ＲＯＭ１１（第１記憶部）は、ＣＰＵ１４に各種処理を実行させるためのプログラム（Ｃ言語等で記述された関数が機械語にコンパイルされたもの）や各種設定データを予め記憶している不揮発性メモリである。また、このＲＯＭ１１は、割込み要因（正確には割込み要因番号）と割込み関数の先頭アドレス（割込み関数アドレス）との対応関係を示す４種類の割込みベクタテーブルを予め記憶している。
【００１５】
図１（ｂ）は、ＲＯＭ１１のメモリ空間における各割込みベクタテーブルの格納状態を示す模式図である。この図において、符号ＴＩは、割込み要因の発生時にＣＰＵ１４によって最初に参照される初期割込みベクタテーブルである。この初期割込みベクタテーブルＴＩは、ＲＯＭメモリ空間内のａ０番地（このテーブルの先頭アドレス）からａ９番地までの領域に格納されている。なお、一般的にメモリ空間のアドレスは１６進数で表記されるが、本実施形態では説明の便宜上、アドレスを「ａ＊」（＊に数値が入る）で表記する。
【００１６】
符号ＴＡは、検査装置２０による検査項目Ａ（例えばＥＣＵ接続確認）のチェック時に、ＣＰＵ１４によって参照される検査用割込みベクタテーブルである。この検査用割込みベクタテーブルＴＡは、ＲＯＭメモリ空間内のａ１０番地（このテーブルの先頭アドレス）からａ１９番地までの領域に格納されている。
【００１７】
符号ＴＢは、検査装置２０による検査項目Ｂ（例えばＥＣＵ出力遮断機能確認）のチェック時に、ＣＰＵ１４によって参照される検査用割込みベクタテーブルである。この検査用割込みベクタテーブルＴＢは、ＲＯＭメモリ空間内のａ２０番地（このテーブルの先頭アドレス）ａ２９番地までの領域に格納されている。
【００１８】
符号ＴＣは、検査装置２０による検査項目Ｃ（例えばＥＣＵ停止機能確認）のチェック時に、ＣＰＵ１４によって参照される検査用割込みベクタテーブルである。この検査用割込みベクタテーブルＴＣは、ＲＯＭメモリ空間内のａ３０番地（このテーブルの先頭アドレス）からａ３９番地までの領域に格納されている。
【００１９】
図１（ｂ）からわかるように、各割込みベクタテーブルは、割込み要因（割込み要因番号）は共通であるが、その割込み要因に対応する割込み関数アドレスが異なっている。言い換えれば、ＣＰＵ１４が参照する割込みベクタテーブルを切替えれば、同一の割込み要因に対して異なる割込み処理を実行できるようになっている。
【００２０】
図２は、ＲＯＭメモリ空間における各割込み関数の格納状態を示す模式図である。図２（ａ）に示すように、ＲＯＭメモリ空間内のａ１００番地（この関数の先頭アドレス）からａ１０９番地までの領域には、割込み要因１に対応する割込み関数Ｆ１（機械語にコンパイルされた関数）が格納されている。また、ＲＯＭメモリ空間内のａ１１０番地（この関数の先頭アドレス）からａ１１９番地までの領域には、割込み要因２に対応する割込み関数Ｆ２が格納されている。
【００２１】
また、ＲＯＭメモリ空間内のａ１２０番地（この関数の先頭アドレス）からａ１２９番地までの領域には、割込み要因３に対応する割込み関数Ｆ３が格納されている。また、ＲＯＭメモリ空間内のａ１３０番地（この関数の先頭アドレス）からａ１３９番地までの領域には、割込み要因４に対応する割込み関数Ｆ４が格納されている。また、ＲＯＭメモリ空間内のａ１４０番地（この関数の先頭アドレス）からａ１４９番地までの領域には、割込み要因５に対応する割込み関数Ｆ５が格納されている。
【００２２】
ここで、図２（ａ）に示すように、初期割込みベクタテーブルＴＩによって指定される各割込み関数Ｆ１〜Ｆ５の記憶領域の先頭部分には、図示のステップＳ３１、Ｓ３２及びＳ３３の３つの処理をＣＰＵ１４に実行させるためのサブ関数（サブルーチンプログラム）が格納されていることに留意されたい。
【００２３】
また、図２（ｂ）に示すように、ＲＯＭメモリ空間内のａ２００番地（この関数の先頭アドレス）からａ２０９番地までの領域には、割込み要因１に対応する検査項目Ａ用の割込み関数ＦＡ１が格納されている。また、ＲＯＭメモリ空間内のａ２１０番地（この関数の先頭アドレス）からａ２１９番地までの領域には、割込み要因２に対応する検査項目Ａ用の割込み関数ＦＡ２が格納されている。
【００２４】
また、ＲＯＭメモリ空間内のａ２２０番地（この関数の先頭アドレス）からａ２２９番地までの領域には、割込み要因３に対応する検査項目Ａ用の割込み関数ＦＡ３が格納されている。また、ＲＯＭメモリ空間内のａ２３０番地（この関数の先頭アドレス）からａ２３９番地までの領域には、割込み要因４に対応する検査項目Ａ用の割込み関数ＦＡ４が格納されている。また、ＲＯＭメモリ空間内のａ２４０番地（この関数の先頭アドレス）からａ２４９番地までの領域には、割込み要因５に対応する検査項目Ａ用の割込み関数ＦＡ５が格納されている。
【００２５】
また、図２（ｃ）に示すように、ＲＯＭメモリ空間内のａ３００番地（この関数の先頭アドレス）からａ３０９番地までの領域には、割込み要因１に対応する検査項目Ｂ用の割込み関数ＦＢ１が格納されている。また、ＲＯＭメモリ空間内のａ３１０番地（この関数の先頭アドレス）からａ３１９番地までの領域には、割込み要因２に対応する検査項目Ｂ用の割込み関数ＦＢ２が格納されている。
【００２６】
また、ＲＯＭメモリ空間内のａ３２０番地（この関数の先頭アドレス）からａ３２９番地までの領域には、割込み要因３に対応する検査項目Ｂ用の割込み関数ＦＢ３が格納されている。また、ＲＯＭメモリ空間内のａ３３０番地（この関数の先頭アドレス）からａ３３９番地までの領域には、割込み要因４に対応する検査項目Ｂ用の割込み関数ＦＢ４が格納されている。また、ＲＯＭメモリ空間内のａ３４０番地（この関数の先頭アドレス）からａ３４９番地までの領域には、割込み要因５に対応する検査項目Ｂ用の割込み関数ＦＢ５が格納されている。
【００２７】
また、図２（ｄ）に示すように、ＲＯＭメモリ空間内のａ４００番地（この関数の先頭アドレス）からａ４０９番地までの領域には、割込み要因１に対応する検査項目Ｃ用の割込み関数ＦＣ１が格納されている。また、ＲＯＭメモリ空間内のａ４１０番地（この関数の先頭アドレス）からａ４１９番地までの領域には、割込み要因２に対応する検査項目Ｃ用の割込み関数ＦＣ２が格納されている。
【００２８】
また、ＲＯＭメモリ空間内のａ４２０番地（この関数の先頭アドレス）からａ４２９番地までの領域には、割込み要因３に対応する検査項目Ｃ用の割込み関数ＦＣ３が格納されている。また、ＲＯＭメモリ空間内のａ４３０番地（この関数の先頭アドレス）からａ４３９番地までの領域には、割込み要因４に対応する検査項目Ｃ用の割込み関数ＦＣ４が格納されている。また、ＲＯＭメモリ空間内のａ４４０番地（この関数の先頭アドレス）からａ４４９番地までの領域には、割込み要因５に対応する検査項目Ｃ用の割込み関数ＦＣ５が格納されている。
【００２９】
図１に戻り、ＲＡＭ１２（第２記憶部）は、ＣＰＵ１４が各種処理を実行する際にデータの一時保存先として用いられる書き換え可能な揮発性メモリである。通信回路１３は、ＥＣＵ１０（正確にはＣＰＵ１４）と検査装置２０等の外部装置とのシリアル通信を実現するシリアル通信インターフェースである。
【００３０】
ＣＰＵ１４（処理部）は、ＲＯＭ１１に記憶されているプログラム（割込み関数も含む）に従って各種処理を実行する中央演算処理装置である。このＣＰＵ１４は、内部レジスタの１つとして、割込み要因発生時に参照すべき割込みベクタテーブルの先頭アドレスを保持するベクタベースレジスタ(ＶＢＲ）１４ａを内蔵している。なお、このＶＢＲ１４ａは、割込み要因発生時に最初に参照すべき初期割込みベクタテーブルＴＩの先頭アドレス（ａ０）を初期参照テーブルアドレスとして保持している。
【００３１】
次に、上記のように構成されたＥＣＵ１０の検査時における動作について図３及び図４を参照しながら詳細に説明する。図３は、ＥＣＵ１０と検査装置２０の検査動作を示すシーケンスチャートである。ＥＣＵ１０のＣＰＵ１４は、検査装置２０がＥＣＵ１０に接続されて、検査装置２０から検査モードへの移行指示を受信すると、通常モードから検査モードに移行して図３に示す処理を実行する。
【００３２】
検査装置２０は、ＥＣＵ１０が検査モードに移行したことを確認すると、ＥＣＵ１０に対して参照すべき割込みベクタテーブルを、検査項目Ａのチェック時に使用する検査用割込みベクタテーブルＴＡに切替えるように指示する（ステップＳ１）。ＥＣＵ１０のＣＰＵ１４は、通信回路１３を介して検査装置２０から上記のような参照テーブル切替指示を受信すると、検査用割込みベクタテーブルＴＡの先頭アドレス（ａ１０）を検査用テーブルアドレスとしてＲＡＭ１２に記憶させる（ステップＳ２）。
【００３３】
ＥＣＵ１０のＣＰＵ１４は、上記のようにＲＡＭ１２への検査用テーブルアドレスの書込みが完了すると、その旨を通信回路１３を介して検査装置２０へ報告する（ステップＳ３）。検査装置２０は、ＥＣＵ１０から検査用テーブルアドレスの書込み完了報告を受信すると、ＥＣＵ１０に対して割込み要因となる各種の検査信号を順次出力すると共に、ＥＣＵ１０が各検査信号（割込み要因）に対してどのようなレスポンスをとるかを確認することにより、検査項目ＡについてＥＣＵ１０の良否判定を行う（ステップＳ４）。
【００３４】
図４は、上記ステップＳ４の最中、つまり検査装置２０による検査項目Ａについての良否判定動作中に、ＥＣＵ１０のＣＰＵ１４が実行する検査処理を表すフローチャートである。この図に示すように、ＣＰＵ１４は、割込み要因が発生したか否かを判定し（ステップＳ２１）、「Ｙｅｓ」の場合、つまり割込み要因が発生した場合、ＶＢＲ１４ａから初期参照テーブルアドレス（ａ０）を取得する（ステップＳ２２）。
【００３５】
ＣＰＵ１４は、上記のようにＶＢＲ１４ａから初期参照テーブルアドレス（ａ０）を取得すると、そのアドレスを先頭アドレスに持つ割込みベクタテーブル、つまり初期割込みベクタテーブルＴＩを参照して、発生した割込み要因に対応する割込み関数アドレスを取得する（ステップＳ２３）。ここで、例えば、割込み要因１が発生したと仮定すると、ＣＰＵ１４は、初期割込みベクタテーブルＴＩを参照して、割込み要因１に対応する割込み関数アドレスａ１００を取得する（図１（ｂ）参照）。
【００３６】
そして、ＣＰＵ１４は、上記のように初期割込みベクタテーブルＴＩから割込み要因に対応する割込み関数アドレスを取得すると、取得した割込み関数アドレスにジャンプする（ステップＳ２４）。ここで、例えば、割込み要因１に対応する割込み関数アドレスａ１００を取得したと仮定すると、ＣＰＵ１４は、ＲＯＭメモリ空間内のアドレスａ１００（割込み関数Ｆ１の先頭アドレス）にジャンプする。
【００３７】
前述したように、初期割込みベクタテーブルＴＩによって指定される各割込み関数Ｆ１〜Ｆ５の記憶領域の先頭部分には、図示のステップＳ３１、Ｓ３２及びＳ３３の３つの処理をＣＰＵ１４に実行させるためのサブ関数（サブルーチンプログラム）が格納されている（図２（ａ）参照）。よって、ＣＰＵ１４は、初期割込みベクタテーブルＴＩから取得した割込み関数アドレスにジャンプすると、上記サブ関数に従ってステップＳ３１、Ｓ３２及びＳ３３の３つの処理を実行する。
【００３８】
具体的には、ＣＰＵ１４は、上記サブ関数に基づく処理として、まず、ＲＡＭ１２に格納された検査用テーブルアドレス（ここでは「ａ１０」）を取得する（ステップＳ３１）。そして、ＣＰＵ１４は、上記のように取得した検査用テーブルアドレスを先頭アドレスに持つ割込みベクタテーブル、つまり検査用割込みベクタテーブルＴＡを参照して、発生した割込み要因に対応する割込み関数アドレスを取得する（ステップＳ３２）。
ここで、例えば、割込み要因１が発生したと仮定すると、ＣＰＵ１４は、検査用割込みベクタテーブルＴＡを参照して、割込み要因１に対応する割込み関数アドレスａ２００を取得する（図１（ｂ）参照）。
【００３９】
そして、ＣＰＵ１４は、上記のように検査用割込みベクタテーブルＴＡから割込み要因に対応する割込み関数アドレスを取得すると、取得した割込み関数アドレスにジャンプする（ステップＳ３３）。ここで、例えば、割込み要因１に対応する割込み関数アドレスａ２００を取得したと仮定すると、ＣＰＵ１４は、ＲＯＭメモリ空間内のアドレスａ２００（検査項目Ａ用の割込み関数ＦＡ１の先頭アドレス）にジャンプする。
【００４０】
そして、ＣＰＵ１４は、検査用割込みベクタテーブルＴＡから取得した割込み関数アドレスにジャンプすると、ジャンプ先の割込み関数に従って割り込み処理を実行し（ステップＳ４１）、その割込み処理の実行後にステップＳ２５の処理に戻る。例えば、ＲＯＭメモリ空間内のアドレスａ２００にジャンプしたと仮定すると、ＣＰＵ１４は、検査項目Ａ用の割込み関数ＦＡ１に従って割込み処理を実行する。
【００４１】
そして、ＣＰＵ１４は、現在の検査項目（ここでは検査項目Ａ）についてＥＣＵ１０の良否判定が終了したか否かを判断し（ステップＳ２５）、「Ｎｏ」の場合にはステップＳ２１の処理に戻る一方、「Ｙｅｓ」の場合には本検査処理を終了する。ここで、ＣＰＵ１４は、検査装置２０から検査項目ＡについてＥＣＵ１０の良否判定が終了した（各割込み要因１〜５に対してのＥＣＵ１０のレスポンスを確認した）旨の報告を受信した場合に、上記ステップＳ２５で「Ｙｅｓ」と判断する。
【００４２】
このように、ＣＰＵ１４は、割込み要因１〜５の各々について図４の処理を実行し、各割込み要因１〜５に対応する検査項目Ａ用の割込み処理（割込み関数ＦＡ１〜ＦＡ５に基づく割込み処理）を実行することにより、検査項目ＡについてのＥＣＵ１０の良否判定材料となるレスポンスを検査装置２０に提供する。
【００４３】
なお、検査項目Ａ用の割込み処理の一例として以下のような処理が挙げられる。検査項目Ａが例えばＥＣＵ接続確認であった場合、ＣＰＵ１４は、割込み要因１としてシリアル通信受信が発生すると、割込み関数ＦＡ１に基づく割込み処理として、受信データに関わらず検査装置２０へ受信完了報告を返信する。また、ＣＰＵ１４は、割込み要因２として外部端子入力レベル変化が発生すると、割込み関数ＦＡ２に基づく割込み処理として、ハイレベルからローレベルへの変化ならば出力パルスのデューティ比を５０％に切替え、ローレベルからハイレベルへの変化ならば出力パルスのデューティ比を８０％に切替える。
【００４４】
図３に戻り、検査装置２０は、上記のように検査項目ＡについてのＥＣＵ１０の良否判定が終了する（ステップＳ４が終了する）と、ＥＣＵ１０に対して参照すべき割込みベクタテーブルを、検査項目Ｂのチェック時に使用する検査用割込みベクタテーブルＴＢに切替えるように指示する（ステップＳ５）。ＥＣＵ１０のＣＰＵ１４は、通信回路１３を介して検査装置２０から上記のような参照テーブル切替指示を受信すると、検査用割込みベクタテーブルＴＢの先頭アドレス（ａ２０）を検査用テーブルアドレスとしてＲＡＭ１２に記憶（上書き保存）させる（ステップＳ６）。
【００４５】
ＥＣＵ１０のＣＰＵ１４は、上記のようにＲＡＭ１２への検査用テーブルアドレスの書込みが完了すると、その旨を通信回路１３を介して検査装置２０へ報告する（ステップＳ７）。検査装置２０は、ＥＣＵ１０から検査用テーブルアドレスの書込み完了報告を受信すると、ＥＣＵ１０に対して割込み要因となる各種の検査信号を順次出力すると共に、ＥＣＵ１０が各検査信号（割込み要因）に対してどのようなレスポンスをとるかを確認することにより、検査項目ＢについてＥＣＵ１０の良否判定を行う（ステップＳ８）。
【００４６】
上記ステップＳ８の最中、つまり検査装置２０による検査項目Ｂについての良否判定動作中に、ＥＣＵ１０のＣＰＵ１４が実行する検査処理は図４と同じである。つまり、ＣＰＵ１４は、割込み要因が発生したか否かを判定し（ステップＳ２１）、「Ｙｅｓ」の場合にはＶＢＲ１４ａから初期参照テーブルアドレス（ａ０）を取得する（ステップＳ２２）。
【００４７】
ＣＰＵ１４は、上記のようにＶＢＲ１４ａから取得した初期参照テーブルアドレス（ａ０）を先頭アドレスに持つ初期割込みベクタテーブルＴＩを参照して、発生した割込み要因に対応する割込み関数アドレスを取得し（ステップＳ２３）、その取得した割込み関数アドレスにジャンプする（ステップＳ２４）。
【００４８】
ＣＰＵ１４は、初期割込みベクタテーブルＴＩから取得した割込み関数アドレスにジャンプすると、上記サブ関数に基づく処理として、まず、ＲＡＭ１２に格納された検査用テーブルアドレス（ここでは「ａ２０」）を取得する（ステップＳ３１）。そして、ＣＰＵ１４は、上記のように取得した検査用テーブルアドレスを先頭アドレスに持つ割込みベクタテーブル、つまり検査用割込みベクタテーブルＴＢを参照して、発生した割込み要因に対応する割込み関数アドレスを取得する（ステップＳ３２）。
ここで、例えば、割込み要因１が発生したと仮定すると、ＣＰＵ１４は、検査用割込みベクタテーブルＴＢを参照して、割込み要因１に対応する割込み関数アドレスａ３００を取得する（図１（ｂ）参照）。
【００４９】
そして、ＣＰＵ１４は、上記のように検査用割込みベクタテーブルＴＢから割込み要因に対応する割込み関数アドレスを取得すると、取得した割込み関数アドレスにジャンプする（ステップＳ３３）。ここで、例えば、割込み要因１に対応する割込み関数アドレスａ３００を取得したと仮定すると、ＣＰＵ１４は、ＲＯＭメモリ空間内のアドレスａ３００（検査項目Ｂ用の割込み関数ＦＢ１の先頭アドレス）にジャンプする。
【００５０】
そして、ＣＰＵ１４は、検査用割込みベクタテーブルＴＢから取得した割込み関数アドレスにジャンプすると、ジャンプ先の割込み関数に従って割り込み処理を実行し（ステップＳ４１）、その割込み処理の実行後にステップＳ２５の処理に戻る。例えば、ＲＯＭメモリ空間内のアドレスａ３００にジャンプしたと仮定すると、ＣＰＵ１４は、検査項目Ｂ用の割込み関数ＦＢ１に従って割込み処理を実行する。
【００５１】
そして、ＣＰＵ１４は、現在の検査項目（ここでは検査項目Ｂ）についてＥＣＵ１０の良否判定が終了したか否かを判断し（ステップＳ２５）、「Ｎｏ」の場合にはステップＳ２１の処理に戻る一方、「Ｙｅｓ」の場合には本検査処理を終了する。ここで、ＣＰＵ１４は、検査装置２０から検査項目ＢについてＥＣＵ１０の良否判定が終了した（各割込み要因１〜５に対してのＥＣＵ１０のレスポンスを確認した）旨の報告を受信した場合に、上記ステップＳ２５で「Ｙｅｓ」と判断する。
【００５２】
このように、ＣＰＵ１４は、割込み要因１〜５の各々について図４の処理を実行し、各割込み要因１〜５に対応する検査項目Ｂ用の割込み処理（割込み関数ＦＢ１〜ＦＢ５に基づく割込み処理）を実行することにより、検査項目ＢについてのＥＣＵ１０の良否判定材料となるレスポンスを検査装置２０に提供する。
【００５３】
なお、検査項目Ｂ用の割込み処理の一例として以下のような処理が挙げられる。検査項目Ｂが例えばＥＣＵ出力遮断機能確認であった場合、ＣＰＵ１４は、割込み要因１としてシリアル通信受信が発生すると、割込み関数ＦＢ１に基づく割込み処理として、受信データを解析し、特定のパターンであれば外部出力の全てを遮断し、それ以外であれば現在の出力を維持する。また、ＣＰＵ１４は、割込み要因２として外部端子入力レベル変化が発生すると、割込み関数ＦＢ２に基づく割込み処理として、何もアクションを行わない。
【００５４】
図３に戻り、検査装置２０は、上記のように検査項目ＢについてのＥＣＵ１０の良否判定が終了する（ステップＳ８が終了する）と、ＥＣＵ１０に対して参照すべき割込みベクタテーブルを、検査項目Ｃの実施時に使用する検査用割込みベクタテーブルＴＣに切替えるように指示する（ステップＳ９）。ＥＣＵ１０のＣＰＵ１４は、通信回路１３を介して検査装置２０から上記のような参照テーブル切替指示を受信すると、検査用割込みベクタテーブルＴＣの先頭アドレス（ａ３０）を検査用テーブルアドレスとしてＲＡＭ１２に記憶（上書き保存）させる（ステップＳ１０）。
【００５５】
ＥＣＵ１０のＣＰＵ１４は、上記のようにＲＡＭ１２への検査用テーブルアドレスの書込みが完了すると、その旨を通信回路１３を介して検査装置２０へ報告する（ステップＳ１１）。検査装置２０は、ＥＣＵ１０から検査用テーブルアドレスの書込み完了報告を受信すると、ＥＣＵ１０に対して割込み要因となる各種の検査信号を順次出力すると共に、ＥＣＵ１０が各検査信号（割込み要因）に対してどのようなレスポンスをとるかを確認することにより、検査項目ＣについてＥＣＵ１０の良否判定を行う（ステップＳ１２）。
【００５６】
上記ステップＳ１２の最中、つまり検査装置２０による検査項目Ｃについての良否判定動作中に、ＥＣＵ１０のＣＰＵ１４が実行する検査処理は図４と同じである。つまり、ＣＰＵ１４は、割込み要因が発生したか否かを判定し（ステップＳ２１）、「Ｙｅｓ」の場合にはＶＢＲ１４ａから初期参照テーブルアドレス（ａ０）を取得する（ステップＳ２２）。
【００５７】
ＣＰＵ１４は、上記のようにＶＢＲ１４ａから取得した初期参照テーブルアドレス（ａ０）を先頭アドレスに持つ初期割込みベクタテーブルＴＩを参照して、発生した割込み要因に対応する割込み関数アドレスを取得し（ステップＳ２３）、その取得した割込み関数アドレスにジャンプする（ステップＳ２４）。
【００５８】
ＣＰＵ１４は、初期割込みベクタテーブルＴＩから取得した割込み関数アドレスにジャンプすると、上記サブ関数に基づく処理として、まず、ＲＡＭ１２に格納された検査用テーブルアドレス（ここでは「ａ３０」）を取得する（ステップＳ３１）。そして、ＣＰＵ１４は、上記のように取得した検査用テーブルアドレスを先頭アドレスに持つ割込みベクタテーブル、つまり検査用割込みベクタテーブルＴＣを参照して、発生した割込み要因に対応する割込み関数アドレスを取得する（ステップＳ３２）。
ここで、例えば、割込み要因１が発生したと仮定すると、ＣＰＵ１４は、検査用割込みベクタテーブルＴＣを参照して、割込み要因１に対応する割込み関数アドレスａ４００を取得する（図１（ｂ）参照）。
【００５９】
そして、ＣＰＵ１４は、上記のように検査用割込みベクタテーブルＴＣから割込み要因に対応する割込み関数アドレスを取得すると、取得した割込み関数アドレスにジャンプする（ステップＳ３３）。ここで、例えば、割込み要因１に対応する割込み関数アドレスａ４００を取得したと仮定すると、ＣＰＵ１４は、ＲＯＭメモリ空間内のアドレスａ４００（検査項目Ｃ用の割込み関数ＦＣ１の先頭アドレス）にジャンプする。
【００６０】
そして、ＣＰＵ１４は、検査用割込みベクタテーブルＴＣから取得した割込み関数アドレスにジャンプすると、ジャンプ先の割込み関数に従って割り込み処理を実行し（ステップＳ４１）、その割込み処理の実行後にステップＳ２５の処理に戻る。例えば、ＲＯＭメモリ空間内のアドレスａ４００にジャンプしたと仮定すると、ＣＰＵ１４は、検査項目Ｃ用の割込み関数ＦＣ１に従って割込み処理を実行する。
【００６１】
そして、ＣＰＵ１４は、現在の検査項目（ここでは検査項目Ｃ）についてＥＣＵ１０の良否判定が終了したか否かを判断し（ステップＳ２５）、「Ｎｏ」の場合にはステップＳ２１の処理に戻る一方、「Ｙｅｓ」の場合には本検査処理を終了する。ここで、ＣＰＵ１４は、検査装置２０から検査項目ＣについてＥＣＵ１０の良否判定が終了した（各割込み要因１〜５に対してのＥＣＵ１０のレスポンスを確認した）旨の報告を受信した場合に、上記ステップＳ２５で「Ｙｅｓ」と判断する。
【００６２】
このように、ＣＰＵ１４は、割込み要因１〜５の各々について図４の処理を実行し、各割込み要因１〜５に対応する検査項目Ｃ用の割込み処理（割込み関数ＦＣ１〜ＦＣ５に基づく割込み処理）を実行することにより、検査項目ＣについてのＥＣＵ１０の良否判定材料となるレスポンスを検査装置２０に提供する。
【００６３】
なお、検査項目Ｃ用の割込み処理の一例として以下のような処理が挙げられる。検査項目Ｃが例えばＥＣＵ停止機能確認であった場合、ＣＰＵ１４は、割込み要因１としてシリアル通信受信が発生すると、割込み関数ＦＣ１に基づく割込み処理として、受信データをＲＡＭ１２に記憶させる。また、ＣＰＵ１４は、割込み要因２として外部端子入力レベル変化が発生すると、割込み関数ＦＣ２に基づく割込み処理として、１０秒後にＥＣＵ１０を停止させる。
【００６４】
図３に戻り、ＥＣＵ１０及び検査装置２０は、上記ステップＳ１２の終了後（検査項目ＣについてのＥＣＵ１０の良否判定終了後）に、検査項目Ａ、Ｂ、Ｃのチェックが全て終了したと判断して、互いに検査動作を終了する（ステップＳ１３）。
【００６５】
以上説明したように、本実施形態では、検査装置２０（外部）からの指示に応じて参照すべき割込みベクタテーブルの先頭アドレスを書き換え可能なＲＡＭ１２に記憶させ、割込み要因が発生した場合にＲＡＭ１２に記憶されているアドレスの割込みベクタテーブルを参照することにより、検査装置２０からのアクセスによる割込みベクタテーブルの切替えが容易となり、その結果、ＶＢＲ書換え機能を備えていない汎用ＣＰＵをＣＰＵ１４（処理部）として用いることができる。
【００６６】
つまり、本実施形態によれば、外部からのアクセスによる割込みベクタテーブルの切替えが容易で設計自由度の高いＥＣＵ１０（電子機器）を提供することが可能となる。
また、本実施形態によれば、上述したように、同一の割込み要因に対して各検査項目ごとに異なる割込み処理を行うことができるため、ＥＣＵ１０の検査が容易となり、検査効率の向上を図ることができる。
【００６７】
以上、本発明の一実施形態について説明したが、この実施形態はあくまで一例であって本発明の趣旨を逸脱しない範囲において実施形態の細部を種々変更可能であることは勿論である。例えば、上記実施形態では、本発明に係る電子機器として、車両に搭載されてエンジン等の制御対象機器を制御するＥＣＵ１０を例示して説明したが、本発明はこのような車載ＥＣＵに限らず、制御対象機器を制御する電子制御装置及びその他の電子機器に広く適用することが可能である。
【符号の説明】
【００６８】
１０…ＥＣＵ（電子機器）、１１…ＲＯＭ（第１記憶部）、１２…ＲＡＭ（第２記憶部）、１３…通信回路、１４…ＣＰＵ（処理部）、１４ａ…ＶＢＲ（ベクタベースレジスタ）、２０…検査装置
【図１】
2012208567.tif 000003
【図２】
2012208567.tif 000004
【図３】
2012208567.tif 000005
【図４】
2012208567.tif 000006