(57)【要約】【課題】ソフトウェアに不具合があっても、確実にソフトウェアの実行により生成されるアプリケーション情報を保存することが可能な半導体装置を提供する。【解決手段】半導体装置は、割り込み要求を発生する回路４０、４１、４２と、割り込み要求に対応した処理を実行するプロセッサ１０と、プロセッサ１０によって生成されたアプリケーション情報が格納される揮発性メモリ１２と、所定の期間、割り込みの回数をカウントする割り込みカウンタ部３１と、割り込みカウンタ部によってカウントされた値と所定の判定値とを比較する割り込み回数判定部３２と、カウントされた値が所定の判定値を超えているとき、揮発性メモリ１２に格納されているアプリケーション情報が格納されるバックアップ用揮発性メモリ１３、データ用不揮発性メモリ１６とを備える。【選択図】図１
2020060949.tif 000002
【特許請求の範囲】
【請求項１】
割り込み要求を発生する複数の回路と、
前記複数の回路が発生した割り込み要求に対応した処理を実行するプロセッサと、
前記プロセッサによって生成されたアプリケーション情報が格納される揮発性メモリと、
所定の期間において、前記プロセッサにより実行される割り込み要求の回数をカウントする割り込みカウンタ部と、
前記割り込みカウンタ部によってカウントされた値と所定の判定値とを比較し、前記割り込みカウント部によってカウントされた値が、前記所定の判定値を超えているか否かを判定する判定部と、
前記判定部により、前記カウントされた値が前記所定の判定値を超えていると判定されたとき、前記揮発性メモリに格納されているアプリケーション情報が格納されるメモリ部と、
を備える、半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記複数の回路からの割り込み要求が供給され、優先度の高い割り込み要求を前記プロセッサへ通知する割り込み優先度判定部を、さらに備える、半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記メモリ部に格納されたアプリケーション情報に基づいてデバッグを行うデバッグ回路を、さらに備える、半導体装置。
【請求項４】
請求項２に記載の半導体装置において、
リセット信号が供給される端子を、さらに備え、
前記プロセッサおよび前記揮発性メモリは、前記端子に供給されたリセット信号により初期化される、半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記判定部によって、前記割り込みカウント部によってカウントされた値が、前記所定の判定値を超えると判定されたとき、前記判定部からデータ転送要求が供給されるＤＭＡコントローラを、さらに備え、
前記ＤＭＡコントローラは、前記データ転送要求に応答して、前記揮発性メモリに格納されているアプリケーション情報を、前記メモリ部へ転送する、半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記揮発性メモリには、スイッチを介して電圧が給電され、前記メモリ部は、前記スイッチを介さずに電圧が給電されるバックアップ用揮発性メモリを備える、半導体装置。
【請求項７】
請求項５に記載の半導体装置において、
前記揮発性メモリには、スイッチを介して電圧が給電され、前記メモリ部は、電気的に書き換えが可能な不揮発性メモリを備える、半導体装置。
【請求項８】
請求項７に記載の半導体装置において、
前記割り込みカウンタ部を周期的にクリアするタイマを、さらに備える、半導体装置。
【請求項９】
請求項１に記載の半導体装置において、
前記所定の判定値は、可変である、半導体装置。
【請求項１０】
エンジンの制御に用いられる回路を含み、割り込み要求を発生する複数の回路と、
前記複数の回路が発生した割り込み要求に対応した処理を実行するプロセッサと。
前記プロセッサによって生成されたアプリケーション情報が格納される揮発性メモリと、
所定の期間において、前記プロセッサにより実行される割り込みの回数をカウントする割り込みカウンタ部と、
前記割り込みカウンタ部によってカウントされた値と所定の判定値とを比較し、前記割り込みカウント部によってカウントされた値が、前記所定の判定値を超えているか否かを判定する判定部と、
前記判定部により、前記カウントされた値が、前記所定の判定値を超えていると判定されたとき、前記揮発性メモリに格納されているアプリケーション情報が、格納されるメモリ部と、
を備える、エンジン制御システム。
【請求項１１】
請求項１０に記載のエンジン制御システムにおいて、
前記複数の回路、前記プロセッサ、前記割り込みカウンタ部、前記判定部および前記メモリ部は、第１の半導体装置に含まれ、
前記第１の半導体装置から監視制御信号が供給され、監視制御信号に基づいて、前記第１の半導体装置を監視する監視ユニットを、さらに備え、
前記監視ユニットは、前記監視制御信号によって異常が発生していると判定したとき、リセット信号を発生し、
前記第１の半導体装置は、前記リセット信号に応答して、初期化される、エンジン制御システム。
【請求項１２】
請求項１１に記載のエンジン制御システムにおいて、
前記割り込みカウンタ部は、所定の時間間隔または前記エンジンのクランク角度間隔で、クリアされる、エンジン制御システム。
【請求項１３】
請求項１２に記載のエンジン制御システムにおいて、
前記所定の判定値は、前記エンジンの回転数に応じて変更される、エンジン制御システム。
【請求項１４】
請求項１３に記載のエンジン制御システムにおいて、
前記監視ユニットは、前記第１の半導体装置とは異なる第２の半導体装置に含まれる、エンジン制御システム。
【請求項１５】
請求項１３に記載のエンジン制御システムにおいて、
前記前記メモリ部は、バッテリーによってバックアップされた揮発性メモリまたは電気的に書き換え可能な不揮発性メモリを含む、エンジン制御システム。
【請求項１６】
割り込み要求を発生する複数の回路と、
前記複数の回路が発生した割り込み要求に対応した処理を実行するプロセッサと。
前記プロセッサによって生成されたデータが格納される揮発性メモリと、
所定の期間において、前記プロセッサにより実行される割り込み要求に対応した処理の回数をカウントする割り込みカウンタ部と、
前記割り込みカウンタ部によってカウントされた値と所定の判定値とを比較し、前記割り込みカウント部によってカウントされた値が、前記所定の判定値を超えているか否かを判定する判定部と、
前記判定部により、前記カウントされた値が、前記所定の判定値を超えていると判定されたとき、前記揮発性メモリに格納されているアプリケーション情報が、格納されるメモリ部と、
を備え、
前記メモリ部に格納されたアプリケーション情報に基づいて、ソフトウェアの解析が行われる、故障解析方法。
【請求項１７】
請求項１６に記載の故障解析方法において、
前記複数の回路、前記プロセッサ、前記割り込みカウンタ部、前記判定部および前記メモリ部は、第１の半導体装置に含まれ、
前記半導体装置から監視制御信号が供給され、前記監視制御信号によって、前記第１の半導体装置を監視し、異常と判定したときに、リセット信号を前記第１の半導体装置に供給する第２の半導体装置を備え、
前記リセット信号によって、前記半導体装置が初期化されたとき、前記メモリ部に格納されたアプリケーション情報に基づいて、ソフトウェアの解析が行われる、故障解析方法。
【請求項１８】
請求項１７に記載の故障解析方法において、
前記第１の半導体装置は、前記メモリ部に格納されたアプリケーション情報が供給されるデバッグ回路を備え、
前記デバッグ部の出力が、第１の半導体装置の端子を介して出力される、故障解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、エンジン制御システムおよび故障解析方法に関し、例えば自動車のエンジンをソフトウェアに従って制御する半導体装置、その半導体装置を備えたエンジン制御システムおよび故障解析方法に関する。
【背景技術】
【０００２】
自動車に搭載された電子制御装置（ＥＣＵ）の例が、特許文献１に記載されている。特許文献１では、プロセッサに異常が発生すると、監視ＩＣが、フェールセーフ信号を出力する。このフェールセーフ信号によって、プロセッサでは、マスク不可割り込みが発生し、異常時処理が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２９３４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
自動車（車両）のエンジンを制御するエンジン制御システムにおいても、プロセッサが使用されている。このプロセッサは、車両制御監視および異常原因特定を目的とした顧客のソフトウェア（顧客ソフトウェア）を実行する。顧客ソフトウェアが実行されることによって、車両制御監視が行われるとともに、異常発生時の制御情報（アプリケーション情報）がメモリに格納される。メモリに格納されているアプリケーション情報を解析することによって、顧客ソフトウェアにおける不具合現象を解析する解析ＴＡＴを削減することが可能である。
【０００５】
顧客ソフトウェアは、複数の割り込みを用いたソフトウェア（割り込みソフトウェア）によって構成されている。そのため、割り込みソフトウェアに不具合があったり、割り込み優先度の設定に不具合等があると、顧客ソフトウェアが正常に起動しないような状態が発生する。例えば、優先度の高い割り込みソフトウェアが実行されたときに、当該実行過程において割込要因をクリアしないような不具合があると、同じ割り込みが繰り返し発生することになり、ソフトウェアの暴走となる。
【０００６】
このような状態に備えて、車両を安全に停止させるために、顧客ソフトウェアを実行するプロセッサを監視する監視用半導体装置（ＡＳＩＣ半導体装置またはサブプロセッサ）を設けることが考えられる。これにより、プロセッサに異常が発生した場合、監視用半導体装置がリセット信号を発生して、プロセッサを強制的に初期化するような対策を行うことが可能である。この場合、プロセッサの異常発生を抑止して、車両を安全に停止させることはできるが、リセット信号による強制的な初期化によって、顧客ソフトウェアの実行が停止され、アプリケーション情報がメモリに格納されず、解析ＴＡＴを削減することが困難になると言う課題が生じる。
【０００７】
エンジン制御の精度向上等にために、顧客ソフトウェアの規模は、益々増大し、プロセッサもマルチコア化が進んでいる。そのため、発生した不具合を再現するための不具合再現条件も複雑になっている。不具合の再現を容易にするためにも、アプリケーション情報を確実に保存（格納）しておくことは、益々重要になる。
【０００８】
特許文献１には、マスク不可割り込みが発生すると、プロセッサの状態をバックアップＲＡＭに退避させることが記載されているが、確実にアプリケーション情報を保存することは、認識されていない。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態に係わる半導体装置を述べると、次のとおりである。
【００１１】
すなわち、半導体装置は、割り込み要求を発生する複数の回路と、複数の回路が発生した割り込み要求に対応した処理を実行するプロセッサと、プロセッサによって生成されたアプリケーション情報が格納される揮発性メモリと、所定の期間において、プロセッサにより実行される割り込み要求の回数をカウントする割り込みカウンタ部と、割り込みカウンタ部によってカウントされた値と所定の判定値とを比較し、割り込みカウント部によってカウントされた値が、所定の判定値を超えているか否かを判定する判定部と、判定部により、カウントされた値が、所定の判定値を超えていると判定されたとき、揮発性メモリに格納されているアプリケーション情報が格納されるメモリ部と、を備えている。
【００１２】
割り込みカウンタ部と判定部を備えた異常検知部が、ハードウェアで、半導体装置に実装される。割り込みソフトウェアにおける不具合によって生じる異常が、異常検知部によって検知され、アプリケーション情報がメモリ部に保存される。すなわち、ソフトウェアにおける不具合に起因した異常が、ハードウェアによって検知され、アプリケーション情報がメモリ部に自動的に保存される。これにより、ソフトウェアに不具合があっても、異常がハードウェアで検知されることになり、確実にソフトウェアの実行により生成されるアプリケーション情報がメモリ部に保存されるようにすることが可能となる。
【発明の効果】
【００１３】
一実施の形態によれば、ソフトウェアに不具合があっても、確実にソフトウェアの実行により生成されるアプリケーション情報を保存することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係わる半導体装置の部分的な構成を示すブロック図である。
【図２】実施の形態１に係わる異常検知回路の動作を説明するためのタイミング図である。
【図３】実施の形態２に係わる半導体装置の部分的な構成を示すブロック図である。
【図４】実施の形態２に係わる異常判定値の設定を説明するための図である。
【図５】実施の形態１に係わるエンジン制御システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【００１６】
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。また、以下の説明では、車両に搭載されるＥＣＵとしてエンジン制御システムを例にして説明する。車両としては、自動車を例に説明するが、これに限定されるものではない。
【００１７】
（実施の形態１）
＜エンジン制御システムの構成＞
先ず、実施の形態１に係わるエンジン制御システムの構成を、図面を用いて説明する。図５は、実施の形態１に係わるエンジン制御システムの構成を示すブロック図である。図５において、１は、エンジン制御システムを示している。エンジン制御システム１は、図示しない自動車のエンジンと結合され、エンジンに設置された各種センサからの信号が供給されるとともに、エンジンに設けられたアクチュエータに制御信号を供給して、エンジン制御を実施する。すなわち、エンジン制御システム１は、エンジンの状態を監視するとともに、エンジンの動作を制御する。
【００１８】
エンジン制御システム１は、複数の機能ブロックを備えているが、図５には、複数の機能ブロックのうち、説明に必要なマイコン２および監視ユニット３のみが示されている。マイコン２は、各種センサからの信号が供給され、供給された信号に基づいて、アクチュエータを制御する制御信号を出力する。マイコン２は、特に制限されないが、実施の形態１では、１つの半導体装置（第１の半導体装置または半導体装置２とも称する）によって構成されている。半導体装置は、複数の外部端子を備えているが、同図には例として外部端子ＴＰ１〜ＴＰ６が示されている。
【００１９】
監視ユニット３は、マイコン２の外部端子ＴＰ３およびＴＰ４に接続され、マイコン２の状態を監視する。監視ユニット３は、外部端子ＴＰ４から供給される監視制御信号に基づいて、マイコン２の状態を監視し、マイコン２に異常が発生していると判定すると、リセット信号を、マイコン２の外部端子ＴＰ３に供給する。特に制限されないが、監視ユニット３も１つの半導体装置によって構成されている。実施の形態１においては、監視ユニット３は、ＡＳＩＣ半導体装置（第２の半導体装置）によって構成されている。
【００２０】
図５において、４は、自動車に搭載されたバッテリーを示し、５は、自動車のキースイッチを示している。バッテリー４は、キースイッチ５を介して、マイコン２の外部端子ＴＰ１に接続されている。この外部端子ＴＰ１は、マイコン２の電源端子を示しており、キースイッチ５がオン状態にされることによって、マイコン２には、キースイッチ５を介してバッテリー４から電源電圧が給電される。同図において、６は、バックアップ用バッテリーを示している。バックアップ用バッテリー６は、マイコン２の外部端子ＴＰ２と接地電圧ＧＮＤとの間に接続されている。後で説明するが、マイコン２は、外部端子ＴＰ２に接続されたバックアップ用揮発性メモリを備えている。キースイッチ５がオフ状態にされたとき、マイコン２に対する給電が停止されるが、バックアップ用揮発性メモリには、バックアップ用バッテリー６から電源電圧が給電され、バックアップ用揮発性メモリは初期化されず、格納されている情報は保持されることになる。
【００２１】
外部端子ＴＰ５およびＴＰ６は、後で説明するので、ここでは説明を省略する。
【００２２】
＜半導体装置（マイコン）２の構成＞
次に、図５を用いて、半導体装置の全体的な構成を説明する。図５において、１０はプロセッサ、１１はＤＭＡコントローラ（ＤＭＡＣ）、１２は揮発性メモリ（メイン用揮発性メモリ）、１３はバックアップ用揮発性メモリ、１５はプログラム用不揮発性メモリ、１６はデータ用不揮発性メモリ、１４は不揮発性メモリ制御部を示している。また、１７は異常検知回路を含む回路ブロック、１８はデバッグ回路、１９はバス、２０は監視制御信号発生回路を示している。
【００２３】
揮発性メモリ１２およびバックアップ用揮発性メモリ１３のそれぞれは、例えばスタテック型メモリ（ＳＲＡＭ）により構成される。また、プログラム用不揮発性メモリ１５およびデータ用不揮発性メモリ１６のそれぞれは、電気的に書き換えが可能な不揮発性メモリ、例えばフラッシュメモリによって構成されている。
【００２４】
バックアップ用揮発性メモリ１３は、外部端子ＴＰ２に接続されており、外部端子ＴＰ２から給電される電圧を電源電圧として動作する。一方、揮発性メモリ１２は、外部端子ＴＰ１から供給される電圧を電源電圧として動作する。同様に、プログラム用不揮発性メモリ１５およびデータ用不揮発性メモリ１６のそれぞれも、外部端子ＴＰ１からの電圧を電源電圧として動作する。そのため、キースイッチ５がオフ状態にされると、揮発性メモリ１２は初期化され、格納されているアプリケーション情報等は消失する。これに対して、バックアップ用揮発性メモリ１３には、バックアップ用バッテリー６から給電が行われるため、キースイッチ５がオフ状態にされても、初期化されず、格納されている情報等は保持される。また、プログラム用不揮発性メモリ１５およびデータ用不揮発性メモリ１６は、不揮発性メモリであるため、バックアップ用揮発性メモリ１３と同様に、キースイッチ５がオフ状態にされても、初期化されず、格納されている情報等は保持される。
【００２５】
なお、本明細書においては、バックアップ用揮発性メモリ１３とデータ用不揮発性メモリを纏めて、メモリ部とも称する。
【００２６】
プロセッサ１０、ＤＭＡＣ１１、揮発性メモリ１２、バックアップ用揮発性メモリ１３、不揮発性メモリ制御部１４およびデバッグ回路１８は、バス１９に接続され、バス１９を介して、相互にデータ等の送受信が行われる。
【００２７】
プログラム用不揮発性メモリ１５には、プロセッサ１０に所望の動作させるための顧客ソフトウェア（プログラム）が予め格納されている。プロセッサ１０で顧客ソフトウェアが実行されるとき、不揮発性メモリ制御部１４によって、プログラム用不揮発性メモリ１５がバス１９に結合される。プロセッサ１０は、バス１９を介して、プログラム用不揮発性メモリ１５から顧客ソフトウェアを読み出して、実行する。プロセッサ１０は、顧客ソフトウェアを実行することにより生成したアプリケーション情報を、バス１９を介して揮発性メモリ１２に供給する。揮発性メモリ１２は、供給されたアプリケーション情報を格納する。顧客ソフトウェアを実行する際に、プロセッサ１０は、必要に応じて、揮発性メモリ１２または／およびデータ用不揮発性メモリ１６に格納されているデータを読み出す。
【００２８】
ＤＭＡＣ１１は、プロセッサ１０または回路ブロック１７によって起動され、揮発性メモリ１２、バックアップ用揮発性メモリ１３、データ用不揮発性メモリ１６およびバス１９に接続された図示しない周辺回路にアクセスし、これらのメモリ間およびメモリと周辺回路間で、データ転送を行う。デバッグ回路１８には、バス１９を介して、バックアップ用揮発性メモリ１３または／およびデータ用不揮発性メモリ１６に格納されているアプリケーション情報が供給され、これらのアプリケーション情報を用いて、プロセッサ１０が実行したソフトウェアをデバッグし、デバッグの結果情報を、外部端子ＴＰ５およびＴＰ６を介して出力する。顧客は、外部端子ＴＰ５およびＴＰ６を用いて、デバッグの結果を参照する。
【００２９】
異常検知回路を含む回路ブロック１７は、割り込み要求信号ＩＮＴをプロセッサ１０に供給し、異常検知信号（データ転送要求信号）ＲＥＱをＤＭＡＣ１１に供給する。プロセッサ１０は、供給された割り込み要求信号ＩＮＴに対応するソフトウェアを、プログラム用不揮発性メモリ１５から読み出して、実行する。また、ＤＭＡＣ１１は、異常検知信号ＲＥＱが供給されると、揮発性メモリ１２およびバックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６にアクセスして、揮発性メモリ１２に格納されているアプリケーション情報を、バックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に格納する。回路ブロック１７は、後で図１を用いて詳しく説明する。
【００３０】
監視制御信号発生回路２０は、マイコン２おいて異常が発生したとき、監視制御信号を発生し、外部端子ＴＰ４に供給する。監視制御信号発生回路２０は、例えばウォッチドッグタイマーを備えている。ウォッチドッグタイマーに設定された期間において、ウォッチドッグタイマーがクリアされなかったとき、監視制御信号発生回路２０は監視制御信号を発生する。監視ユニット３は、監視制御信号が供給されると、リセット信号を出力する。リセット信号は、例えば内部リセット信号ＲＳＴとして、プロセッサ１０に供給される。プロセッサ１０は内部リセット信号ＲＳＴが供給されると、リセットされ、初期化される。また、揮発性メモリ１２も、内部リセット信号ＲＳＴによって初期化される。
【００３１】
監視制御信号発生回路２０が、ウォッチドッグタイマーを備えている例を説明したが、これに限定されるものではない。例えば、監視ユニット３がウォッチドッグタイマーを備えるようにしてもよい。この場合、監視制御信号発生回路２０は、マイコン２に異常が発生していないとき、ウォッチドッグタイマーに設定されている期間内に、ウォッチドッグタイマーをクリアする信号を監視制御信号として発生する。監視ユニット３は、ウォッチドッグタイマーに設定されている期間内に、ウォッチドッグタイマーがクリアされない場合、リセット信号を出力する。
【００３２】
＜回路ブロック１７の構成＞
次に、回路ブロック１７の構成を、図を用いて説明する。図１は、実施の形態１に係わる半導体装置の部分的な構成を示すブロック図である。図１には、回路ブロック１７の構成と、プロセッサ１０およびＤＭＡＣ１１の一部分の構成が示されている。
【００３３】
図１において、１０＿１は、プロセッサ１０に含まれている割り込み制御回路を示し、１１＿１は、ＤＭＡＣ１１に含まれるデータ転送制御部を示している。
【００３４】
プログラム用不揮発性メモリ１５に予め格納されている顧客ソフトウェアは、前記したように、複数の割り込みソフトウェアを含んでいる。割り込みソフトウェアのそれぞれは、割り込み要求に対応している。割り込み制御回路１０＿１は、複数の割り込みソフトウェアから、割り込み要求信号ＩＮＴによって通知される割り込み要求に対応する割り込みソフトウェアを選択し、プロセッサ１０において当該割り込みソフトウェアを起動させる。
【００３５】
データ転送制御部１１＿１には、揮発性メモリ１２における所定のアドレスを示すアドレス情報が予め設定されている。異常検出信号ＲＥＱが供給されると、ＤＭＡＣ１１は、データ転送制御部１１＿１に設定されているアドレス情報により特定される揮発性メモリ１２のアドレス領域に格納されているアプリケーション情報を、バックアップ用揮発性メモリ１２またはデータ用不揮発性メモリ１６へコピーするように、転送する。
【００３６】
回路ブロック１７は、異常検知回路（異常検知部）３０と、割り込み優先度判定部３４と、それぞれ割り込み要求を発生する複数の回路４０〜４２とを備えている。例えば、回路４０は通信回路、回路４１はタイマ、回路４２はその他の回路である。以下、回路４０は通信回路４０と称し、回路４１はタイマ４１と称し、回路４２はその他回路４２と称して説明する。
【００３７】
通信回路４０は、例えば他のＥＣＵとの間のデータ通信、ＥＣＵであるエンジン制御システム１内の他の半導体装置（例えば、電源用半導体装置）との間のデータ通信あるいは監視ユニット３を構成するようなＡＳＩＣ半導体装置との間のデータ通信に用いられる。タイマ４１は、エンジンの制御、例えばエンジンのガソリン噴射制御、点火制御あるいは定期的な制御に用いられる。また、その他回路４２は、例えばアナログ／デジタル変換回路（Ａ／Ｄ変換回路）である。このＡ／Ｄ変換回路は、吸気、酸素量、アクセル開度をセンスするセンサからのアナログ信号をデジタル信号に変換するのに用いられる。
【００３８】
通信回路４１は、例えば他のＥＣＵからデータを受信すると、通信回路４０に割り当てられた所定の優先度の割り込み要求ＩＮＴ＿Ｓを発生する。タイマ４１は、例えば噴射制御において、予め設定された時刻に到達すると、タイマ４１に割り当てられた優先度の割り込み要求ＩＮＴ＿Ｔを発生する。その他回路４２がＡ／Ｄ変換回路の場合、例えばアナログ信号のデジタル信号への変換が終了すると、その他回路４２は、その他回路４２に割り当てられた優先度の割り込み要求ＩＮＴ＿Ｏを発生する。
【００３９】
割り込み要求ＩＮＴ＿Ｓ、ＩＮＴ＿ＴおよびＩＮＴ＿Ｏは、割り込み優先度判定部３４に通知される。割り込み優先度判定部３４は、通知された割り込み要求から、優先度の高い割り込み要求を選択し、割り込み要求信号ＩＮＴで、選択した割り込み要求を通知する。図１には、割り込み優先度判定部３４に通知された割り込み要求の中で、通信回路４０が発生した割り込み要求ＩＮＴ＿Ｓの優先度が最も高い場合が、破線で模式的に示されている。この場合、通信回路４０が発生した割り込み要求ＩＮＴ＿Ｓが、割り込み優先度判定部３４で選択され、割り込み要求信号ＩＮＴによって、プロセッサ１０の割り込み制御回路１０＿１に通知される。プロセッサ１０においては、前記したように、通知された割り込み要求に対応する割り込みソフトウェアを実行する。これにより、割り込み要求を発生した通信回路４０に係わる処理が、プロセッサ１０によって実行されることになる。プロセッサ１０は、割り込みソフトウェアを実行することにより、種々のアプリケーション情報を、揮発性メモリ１２に格納する。また、通信回路４０が発生した割り込み要求ＩＮＴ＿Ｓの割込要因は、当該割り込みソフトウェアの実行過程においてクリアされる。
【００４０】
割り込み優先度判定部３４に通知された割り込み要求の中で、タイマ４１またはその他回路４２に割り当てられた割り込み要求が、最も高い場合も、前記した通信回路４０の場合と同様に、タイマ４１が発生した割り込み要求ＩＮＴ＿Ｔまたはその他回路４２が発生した割り込み要求ＩＮＴ＿Ｏが、割り込み要求信号ＩＮＴによって、プロセッサ１０の割り込み制御回路１０＿１に通知され、通知された割り込み要求に対応する割り込みソフトウェアが、プロセッサ１０で実行される。
【００４１】
これにより、複数の割り込み要求が発生した場合、プロセッサ１０は、優先度の高い割り込み要求に対応した割り込みソフトウェアから、優先度の低い割り込み要求に対応した割り込みソフトウェアに向けて、順次実行する。
【００４２】
また、実施の形態１では、タイマ４２は、所定の周期でカウンタクリア信号ＣＴＣＬを発生する。このカウンタクリア信号ＣＴＣＬは、割り込み優先度判定部３４ではなく、異常検知回路３０に供給されている。
【００４３】
異常検知回路３０には、割り込み要求信号ＩＮＴと、タイマ４１からのカウンタクリア信号ＣＴＣＬとが供給されている。異常検知回路３０は、供給されている信号に基づいて、所定の期間において、プロセッサ１０において起動される割り込みソフトウェアの回数をカウントし、所定の判定値を超えている場合、異常検出信号ＲＥＱを出力する。
【００４４】
具体的に説明すると、異常検知回路３０は、割り込みカウンタ部３１と、割り込み回数判定部３２と、異常判定値格納部３３とを備えている。割り込みカウンタ部３１には、割り込み要求信号ＩＮＴとカウンタクリア信号ＣＴＣＬが供給されている。割り込みカウンタ部３１は、割り込み要求信号ＩＮＴによって割り込み要求が通知されるたびに、例えばカウントアップし、カウントクリア信号ＣＴＣＬが供給されると、カウント値をクリアする。すなわち、割り込みカウンタ部３１は、カウントクリア信号ＣＴＣＬの１周期を所定の期間として、この期間に、プロセッサ１０に通知された割り込み要求の数をカウントする。割り込みカウンタ部３１は、カウント値を割り込み回数データＩＮＴｎとして、割り込み回数判定部３２へ出力する。
【００４５】
異常判定値格納部３３には、例えば顧客によって、所定の判定値が設定される。この所定の判定値は、顧客ソフトウェアにおいて異常が発生していると判定する閾値である。すなわち、所定の判定値は、顧客ソフトウェアが実行されることにより、所定の期間において発生する割り込み要求の数であって、異常と判定する数である。
【００４６】
数異常判定値格納部３３に設定された判定値は、異常判定値データＥＲｎとして、割り込み回数判定部３２に供給される。割り込み回数判定部３２は、供給されている異常判定値データＥＲｎと割り込み回数データＩＮＴｎとを比較し、割り込み回数データＩＮＴｎが、異常判定値データＥＲｎを超えると、異常検知信号ＲＥＱを、ＤＭＡＣ１１のデータ転送制御部１１＿１に出力する。
【００４７】
データ転送制御部１１＿１は、異常検知信号ＲＥＱが供給されると、前記したように、予め設定されているアドレス情報に基づいて、揮発性メモリ１２における所定のアドレス領域１２＿１に格納されているアプリケーション情報を、バックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６にコピーするように、転送を行う。
【００４８】
揮発性メモリ１２には、前記したように、割り込みソフトウェアが実行されると、割り込みソフトウェアの実行により生成されたアプリケーション情報が格納されている。このアプリケーション情報は、顧客ソフトウェアに不具合が発生したときに、デバッグを行うための診断データとして用いることができる。そのため、実施の形態１によれば、揮発性メモリ１２に格納されている診断データが、自動的に揮発性メモリ１２からバックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に転送され、自動的に保存されることになる。バックアップ用不揮発性メモリ１３は、揮発性メモリであるが、バッテリー６によってバックアップされるため、キースイッチ５がオフ状態にされても、診断データは保存されることになる。データ用不揮発性メモリ１６に診断データが転送された場合、データ用不揮発性メモリ１６は不揮発性メモリであるため、キースイッチ５がオフ状態にされても、診断データは、データ用不揮発性メモリ１６に保存されることになる。
【００４９】
なお、診断データは、バックアップ用揮発性メモリ１３とデータ用不揮発性メモリ１６の両方に保存するようにしてもよい。
【００５０】
図２は、実施の形態１に係わる異常検知回路の動作を説明するためのタイミング図である。図２において、横軸は時間を示し、縦軸は、割り込み優先判定部３１からプロセッサ１０に通知される割り込み要求の発生回数を示している。タイマ４１は、期間ＪＴを周期としたカウンタクリア信号ＣＴＣＬを出力する。この期間ＪＴは、例えば１００ｍｓである。顧客ソフトウェアを実行するために、割り込み優先度判定部３４からプロセッサ１０に対して、複数の割り込み要求が順次通知される。そのため、期間ＪＴにおいて、割り込み要求の発生回数の累積は、図２に示すように増加する。同図では、期間（１）および（２）においては、割り込み優先判定部３４からプロセッサ１０に通知される割り込み要求の発生回数は、判定値を超えていない。そのため、異常検知回路３０は、異常検知信号ＲＥＱを出力しない。その結果、揮発性メモリ１２に格納されているアプリケーション情報は、バックアップ用揮発性メモリ１３およびデータ用不揮発性メモリ１６に転送されない。
【００５１】
これに対して、期間（３）においては、割り込み優先判定部３４からプロセッサ１０に通知される割り込み要求の発生回数は、判定値を超えている。そのため、異常検知回路３０は、異常検知信号ＲＥＱを出力する。その結果、期間（３）に続く期間（４）において、ＤＭＡＣ１１により、揮発性メモリ１２に格納されているアプリケーション情報が、診断データとして、バックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に、自動的に転送され、自動格納される。
【００５２】
図２では、期間（３）の後で、自動格納する例を示したが、割り込み優先度判定部３４からプロセッサ１０に通知される割り込み要求の発生回数が、判定値を超えたタイミングで、自動格納するようにしてもよい。
【００５３】
図２では、割り込みカウンタ部３１によって、割り込み要求の発生回数をカウントする期間を、タイマ４１からのカウンタクリア信号ＣＴＣＬによって定めているが、これに限定されない。例えば、クランク角度で、割り込みカウンタ部３１をクリアするようにしてもよい。すなわち、６気筒エンジンを例にすると、１２０°クランク角毎に、割り込みカウンタ部３１をクリアするようにしてもよい。
【００５４】
半導体装置２において異常が発生すると、監視制御信号が発生するため、監視ユニット３がリセット信号を発生する。このリセット信号に従った内部リセット信号ＲＳＴによってプロセッサ１０はリセットされ、揮発性メモリ１２は初期化される。そのため、揮発性メモリ１２に格納されていたアプリケーション情報は消失することになり、揮発性メモリ１２に格納されているアプリケーション情報を用いて、顧客ソフトウェアの不具合を解析することが困難である。実施の形態１においては、顧客ソフトウェアが実行されることにより発生する割り込み要求の発生回数が、所定の期間取得され、割り込み要求の発生回数が所定の判定値を超えていた場合、揮発性メモリ１２に格納されているアプリケーション情報が、バックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に格納される。
【００５５】
これにより、顧客ソフトウェアにおける不具合に起因して半導体装置２に異常が発生した場合、顧客ソフトウェアに係わるアプリケーション情報は、バックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に格納されることになり、アプリケーション情報が消失するのを防ぐことが可能である。このバックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に格納されているアプリケーション情報を用いて、例えば顧客は、顧客ソフトウェアにおける不具合を解析し、不具合の解消を図る。
【００５６】
また、半導体装置２において異常が発生すると、キースイッチ５が、手動で、オフ状態にされることが考えられる。この場合も、プロセッサ１０および揮発性メモリ１２は初期化されるため、揮発性メモリ１２に格納されていたアプリケーション情報は消失することになる。しかしながら、実施の形態１においては、キースイッチ５がオフ状態にされても、バッテリー６によってバックアップされているバックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６にアプリケーション情報が格納されているため、顧客ソフトウェアにおける不具合を解析し、不具合の解消を図ることが可能である。
【００５７】
すなわち、実施の形態１においては、ソフトウェアの不具合は、ハードウェアである異常検知回路３０によってリアルタイムに検出され、ソフトウェアの不具合を解析するのに用いるアプリケーション情報は、自動的にバックアップ用揮発性メモリ１３またはデータ用不揮発性メモリ１６に格納されることになる。
【００５８】
（実施の形態２）
図３は、実施の形態２に係わる半導体装置の部分的な構成を示すブロック図である。図３には、図５に示した回路ブロック１７の構成と、プロセッサ１０およびＤＭＡＣ１１の一部分の構成と、が示されている。図３は、図１と類似しているため、主に相異点を説明する。相異点は、図３では、異常判定値格納部が複数になっている点、それぞれの異常判定値格納部から異常判定値データが割り込み回数判定部３２に供給されている点、タイマ４１からエンジン回転数データＲＰｄが割り込み回数判定部３２に供給されている点である。特に制限されないが、図３では、３つの異常判定値格納部３３＿１〜３３＿３が、異常検知回路３０に設けられている。また、この異常判定値格納部３３＿１〜３３＿３から割り込み回数判定部３２に対して異常判定値データＥＲｎ＿１〜ＥＲｎ＿３が供給されている。
【００５９】
具体的に説明すると、異常判定値格納部３３＿１〜３３＿３のそれぞれには、エンジンの回転数に応じた判定値が設定され、エンジンの回転数別の異常判定値データＥＲｎ＿１〜ＥＲｎ＿３が、異常判定値格納部３３＿１〜３３＿３から出力される。
【００６０】
エンジン制御においては、エンジン１回転当たりに、ガソリン噴射および点火制御（角度同期制御）を行う必要がある。ガソリン噴射および点火制御は、割り込みソフトウェアを実行することにより、行われる。そのため、エンジンの回転数と割り込みソフトウェアの実行の回数との間には依存性がある。言い換えるならば、エンジン回転数と割り込みの発生回数との間に依存性がある。
【００６１】
図４は、実施の形態２に係わる異常判定値の設定を説明するための図である。図４において、横軸はエンジンの回転数を示し、縦軸は割り込み発生回数を示している。割り込み発生回数は、時間同期処理のために実行される割り込み処理の回数と、回転同期処理のために実行される割り込み処理の回数と、噴射同期処理のために実行される割り込み処理の回数との和になる。時間同期処理は、時間の同期に関する処理であるため、エンジン回転数が増加しても、割り込み処理の回数は、ほぼ一定である。回転同期処理では、エンジン回転数（クランクまたはカム回転角度）に応じて、燃料ポンプの加圧／減圧制御および点火／噴射制御等が行われる。回転同期処理のために実行される割り込み処理の回数は、エンジン回転数に依存し、図４に示すように、エンジン回転数に比例して増加する。
【００６２】
また、噴射同期処理では、燃料噴射制御が行われる。噴射同期処理おいて、燃料噴射回数は、エンジン回転数とトルクに応じて異なる。燃料噴射回毎に、燃料噴射制御が行われるが、この燃料噴射制御毎に緻密な制御演算が実施される。この緻密な制御演算は、エンジン回転数が下限および上限に近いときに比べて、適切なエンジン回転数のときに、燃費等が最適となるように、多くなる。そのため、図４に示すように、割り込み処理の回数は、エンジン回転数が下限および上限の近くにあるときに比べて、適切なエンジン回転数である中程度の回転数ときに増える。その結果、噴射同期処理での割り込み発生回数は、図４に示すように、エンジン回転数が中程度のときに増加する。
【００６３】
実施の形態２においては、顧客によって、エンジン回転数が第１回転数範囲ＳＰＤ１にあるときの判定値が、異常判定値格納部３３＿１に設定され、エンジン回転数が第２回転数範囲ＳＰＤ２にあるときの判定値が、異常判定値格納部３３＿２に設定される。また、エンジン回転数が第３回転数範囲ＳＰＤ３にあるときの判定値が、顧客によって、異常判定値格納部３３＿３に設定される。このとき、異常判定値格納部３３＿１〜３３＿３に設定される判定値は、第１回転数範囲ＳＰＤ１〜第３回転数範囲ＳＰＤ３における割り込み発生回数の上限（１）〜（３）である。
【００６４】
実施の形態２では、タイマ４１を用いてエンジン回転数を観測し、エンジン回転数を表すエンジン回転数データＲＰｄがタイマ４１から出力される。割り込み回数判定部３２は、供給されているエンジン回転数データＲＰｄによって表されるエンジン回転数が、第１回転数範囲ＳＰ１〜第３回転数範囲ＳＰＤ３のうちのいずれの範囲にあるかを判定し、該当する範囲に対応する異常判定値格納部から出力されている異常判定値データと、割り込み回数データＩＮＴｎとを比較する。例えば、エンジン回転数データＲＰｄによって表されるエンジン回転数が第２回転数範囲ＳＰ２にあれば、割り込み回数判定部３２は、異常判定値データＥＲｎ＿２と割り込み回数データＩＮＴｎとを比較する。この比較により、割り込み回数データＩＮＴｎによって表される割り込み発生回数が、異常判定値データＥＲｎ＿２によって表される割り込み発生回数の上限（２）を超えていれば、実施の形態１と同様に、割り込み回数判定部３２は、異常検知信号ＲＥＱを出力する。
【００６５】
実施の形態２においては、エンジン回転数に応じた複数の判定値が設定され、設定された複数の判定値から、そのときのエンジン回転数に応じた判定値が選ばれ、割り込みカウンタ部３１によって求められた割り込み発生回数と比較される。そのときのエンジン回転数に応じた適切な判定値と、割り込みカウンタ部３１によって求められた割り込み発生回数との比較が行われるため、異常検知回路３０は、ソフトウェアに不具合が発生しているか否かを、より正確に検知することが可能となる。
【００６６】
図３では、割り込み回数判定部３１が、エンジン回転数に対応した複数の判定値から、比較すべき判定値を選択する例を示したが、これに限定されるものではない。すなわち、割り込み回数判定部３１において、割り込み回数データＩＮＴｎと比較されるべき判定値が、エンジン回転数に応じて変更されるように可変であればよい。例えば、異常判定値格納部３３から、そのときのエンジン回転数に対応した判定値が、異常判定値データＥＲｎとして出力されるようにしてもよい。
【００６７】
実施の形態１および２において、プロセッサ１０は、リアルタイムオペレーティングシステム（リアルタイムＯＳ）の下で動作するようにしてもよい。この場合、顧客ソフトウェアは複数のタスクに分割され、リアルタイムＯＳが、分割されたタスクを切り替えながら、プロセッサ１０に割り当てて、実行させるように、タスクを管理する。この場合、割り込みソフトウェアは、一般タスクとは異なる特殊タスクとして、リアルタイムＯＳは管理する。また、リアルタイムＯＳは、タスクに対応するタスク番号を用いてタスクを管理する。
【００６８】
プロセッサ１０が、顧客ソフトウェアを構成する割り込みソフトウェアを実行した場合、割り込みソフトウェアの実行により生成されたアプリケーション情報と、当該割り込みソフトウェアに関するタスク番号、特殊タスクを示す情報等のＯＳ情報も、揮発性メモリ１２に格納されることになる。また、割り込み発生回数が判定値を超えた場合には、前記したアプリケーション情報だけでなく、ＯＳ情報もバックアップ用揮発性メモリ１２またはデータ用不揮発性メモリ１６に転送されることになる。これにより、リアルタイムＯＳ下で顧客ソフトウェアが実行されている場合、ＯＳ情報も用いて、ソフトウェアの不具合を解析することが可能となる。本明細書で述べているアプリケーション情報とは、ソフトウェアを実行することにより生成される情報だけでなく、ＯＳ情報も含んでいるものとする。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００７０】
１  エンジン制御システム
２  半導体装置
３  監視ユニット
４  バッテリー
１０  プロセッサ
１１  ＤＭＡコントローラ
１２  揮発性メモリ
１３  バックアップ用揮発性メモリ
１４  不揮発性メモリ制御回路
１５  プログラム用不揮発性メモリ
１６  データ用不揮発性メモリ
１８  デバッグ回路
３０  異常検知回路
３１  割り込みカウンタ部
３２  割り込み回数判定部
３３、３３＿１〜３３＿３  異常判定値格納部
３４  割り込み優先度判定部
４０  通信回路
４１  タイマ
４２  その他回路
【図１】
2020060949.tif 000003
【図２】
2020060949.tif 000004
【図３】
2020060949.tif 000005
【図４】
2020060949.tif 000006
【図５】
2020060949.tif 000007