(57)【要約】【課題】クリア信号が出力され続ける異常が生じても、マイコンの異常を検出できる情報処理装置を提供すること。【解決手段】時間を計測する時間計測回路１００と、前記時間計測回路が計測する計測時間を周期的にクリアする演算装置１１、５０とを有する情報処理装置であって、前記時間計測回路は、計測時間の可変最大値を変更する計測時間変更手段２１、２２と、前記計測時間が可変最大値に到達した場合、前記演算装置の異常を検出する異常検出手段２５と、を有することを特徴とする。【選択図】図２
2013143094.tif 000002
【特許請求の範囲】
【請求項１】
時間を計測する時間計測回路と、前記時間計測回路が計測する計測時間を周期的にクリアする演算装置とを有する情報処理装置であって、
前記時間計測回路は、計測時間の可変最大値を変更する計測時間変更手段と、
前記計測時間が可変最大値に到達した場合、前記演算装置の異常を検出する異常検出手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記計測時間変更手段は、前記可変最大値又は前記可変最大値に相関した相関指標を前記演算装置に通知し、
前記演算装置は、前記可変最大値又は前記相関指標から、計測時間の可変最大値内に、計測時間をクリア可能な周期を決定する周期決定手段と、
前記周期決定手段が決定した周期毎に計測時間をクリアする時間クリア手段と、を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記計測時間変更手段は、計測時間の可変最大値をパルス信号の周期又は周波数で通知し、
前記周期決定手段は、前記パルス信号の周期又は周波数を算出し、算出された周期又は周波数から計測時間をクリアする周期を決定する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記時間計測回路と前記演算装置は別々のチップに配置されており、
前記時間計測回路はウォッチドックＩＣ、前記演算装置はマイコンである、
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記計測時間変更手段は、コンデンサの静電容量と抵抗の抵抗値を組み合わせることで計測時間の可変最大値を規定すると共に、可変最大値の規定に使用されたコンデンサと抵抗の組み合わせを用いた発振回路により前記周期が定まる前記パルス信号を出力する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記時間計測回路と前記演算装置は１つのマイコンとして当該情報処理装置内に配置されている、ことを特徴とする請求項３記載の情報処理装置。
【請求項７】
前記異常検出手段は、分周された動作クロックをカウントすることで計測時間を計測し、
前記計測時間変更手段は、動作クロックの分周比を変えることで前記可変最大値を変更すると共に、動作クロックのカウント値の増加速度に比例した周期又は周波数の前記パルス信号を生成する、
ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記計測時間変更手段は、周期的、不作為、又は、計測時間の前記可変最大値が大きく変化する期間が小さく変化する期間よりも短くなるように計測時間を変更する、
ことを特徴とする請求項１〜７いずれか１項記載の情報処理装置。
【請求項９】
前記演算装置は、前記計測時間変更手段が計測時間の前記可変最大値を変更するタイミングと変更後の計測時間をクリアする前記パルス信号の周期又は周波数が登録されたテーブルを有し、
前記周期決定手段は、前記可変最大値又は前記相関指標から、計測時間をクリア可能な周期を決定することなく、前記テーブルから計測時間をクリアする周期又は周波数を読み出し、
前記時間クリア手段は、前記周期決定手段が読み出した周期毎又は周波数にて計測時間をクリアする、ことを特徴とする請求項１記載の情報処理装置。
【請求項１０】
計測時間を周期的にクリアするマイコンを監視するウォッチドッグＩＣであって、
計測時間を計測する時間計測手段と、
計測時間の可変最大値を変更する計測時間変更手段と、
計測時間が前記可変最大値に到達した場合、前記マイコンの異常を検出する異常検出手段と、を有することを特徴とするウォッチドッグＩＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周期的にタイマをクリアする情報処理装置等に関する。
【背景技術】
【０００２】
マイコン及びアプリが正常に動作していることを監視する仕組みとしてＷＤＴ（Watch  Dog  Timer）が知られている。
図１はＷＤＴの動作を説明する図の一例である。ＷＤＴは、カウント値がリセット時間に達するか、カウント値がゼロになると（以下、単にオーバーフローという）マイコンをリセットするなどのフェールセーフを行う。マイコンは車両制御などを行うアプリを実行している。アプリは、ＷＤＴのカウント値をクリアする機能（図のＷＤ制御部）を呼び出したり定期的に実行したりすることで、ＷＤＴがオーバーフローする前にカウント値をクリアできる（例えば、特許文献１参照。）。
【０００３】
しかしながら、ＷＤ制御部が暴走する、無限ループに陥る、又は、マイコンの異常によりアプリは作動していないがＷＤ制御部だけが正常に作動する、などの異常が生じる場合がある（以下、正常クリア異常という）。この場合、アプリの正常動作も保証できないので、マイコンをリセットするなどのフェールセーフが行われることが好ましい。しかし、ＷＤＴのカウント値はオーバーフロー前にクリアされるので、ＷＤＴはＷＤ制御部が暴走してもオーバーフローしない。このため、マイコンに対しフェールセーフ処理を提供することができない。
【０００４】
このような正常クリア異常を検出する技術として所定時間内のクリア信号の数を監視する技術が考えられている（例えば、特許文献２参照。）。特許文献２には、所定時間内のクリア信号が閾値を超えると（予め設定した周期よりも短周期でクリア信号が出力されると）、プログラムがクリア信号を出力する処理にデッドロックしていることを検出するウォッチドッグタイマが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０２−２５２０３４号公報
【特許文献２】特開平０４−０２５９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２に記載されたＷＤＴは、ＷＤ制御部に予め設定されている周期よりも短周期でクリア信号が出力されないと、異常を検出できないという問題がある。すなわち、正常クリア異常では、必ずしも短周期になるとは限らないので短周期にならない正常クリア異常を検出できない。
【０００７】
また、特許文献２ではマイコンが正常に動作しているか否かについては十分な監視が行われていない。クリア信号に異常がある場合、マイコンにも異常がある可能性があるので、クリア信号が出力されていること以外の観点からマイコンが正常か否かを監視することが好ましい。
【０００８】
本発明は、上記課題に鑑み、クリア信号が出力され続ける異常が生じても、マイコンの異常を検出できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、時間を計測する時間計測回路と、前記時間計測回路が計測する計測時間を周期的にクリアする演算装置とを有する情報処理装置であって、前記時間計測回路は、計測時間の可変最大値を変更する計測時間変更手段と、前記計測時間が可変最大値に到達した場合、前記演算装置の異常を検出する異常検出手段と、を有することを特徴とする。
【発明の効果】
【００１０】
クリア信号が出力され続ける異常が生じても、マイコンの異常を検出できる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】ＷＤＴの動作を説明する図の一例である。
【図２】マイコンによるＷＤＴのクリアの概略を説明する図の一例である。
【図３】マイコンシステム又はマイコンの概略構成図の一例である。
【図４】ＷＤＩＣの機能を模式的に説明する図の一例である。
【図５】ＷＤＩＣの機能を模式的に説明する図の一例である。
【図６】マイコンの機能ブロック図の一例である。
【図７】マイコンがＷＤＲ信号の取得、クリア信号の周期の算出、及び、クリア信号を出力する手順を示すフローチャート図の一例である。
【図８】マイコンが複数のアプリを実行する場合におけるＷＤＩＣのクリアを説明する図の一例である。
【図９】マイコンの機能ブロック図の一例である（実施例２）。
【図１０】マイコンが、クリア信号の周期を変更して、クリア信号を出力する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１３】
図２は、本実施例のマイコン５０によるＷＤＩＣ１００のクリアの概略を説明する図の一例である。本実施例では、ＷＤＩＣ（Ｗａｔｃｈ  Ｄｏｇ  ＩＣ）１００がリセット時間を可変に制御している。リセット時間とは、ＷＤＩＣ１００がオーバーフローするまでの時間である。そして、ＷＤＩＣ１００は、パルス信号（以下、ＷＤＲ信号という）によりリセット時間をマイコン５０に通知する。
【００１４】
図２（ａ）（ｂ）はＷＤＲ信号の一例を示している。ＷＤＩＣ１００は、ＷＤＲ信号の周期（又は周波数と説明しても同じである）によりリセット時間を通知する。図２（ａ）に示すようにリセット時間が短いと、例えば周期の短いＷＤＲ信号を送信し、図２（ｂ）に示すようにリセット時間が長いと、例えば周期の長いＷＤＲ信号を送信する。
【００１５】
図２（ｃ）に示すように、マイコン５０のＷＤ制御部は、ＷＤＲ信号の周期を用いて演算を行い現在のＷＤＩＣ１００のリセット時間を特定し（リセット時間そのものを特定する必要はない）、リセット時間からクリア周期を更新する（例えば、リセット時間の半分程度にする）。ＷＤ制御部は、クリア周期毎にＷＤＩＣ１００にクリア信号を送信する。したがって、ＷＤＩＣ１００がリセット時間を可変にしても、ＷＤ制御部はＷＤＩＣ１００がオーバーフローする前にＷＤＩＣ１００をクリアすることができる。
【００１６】
以上のような監視方法によれば、マイコン５０がＷＤＩＣ１００をクリアするには、ＷＤＲ信号の入力処理、クリア信号の周期の演算、及び、クリア信号の出力、の３段階の処理が正常に行われている必要がある。ＷＤ制御部が暴走するような正常クリア異常が発生した場合、３段階の処理の少なくとも１つは困難であることが多い。したがって、ＷＤＩＣ１００は、ＷＤ制御部だけは周期的にクリア信号を出力するような正常クリア異常が生じても、マイコン５０に対するフェールセーフ処理を提供することができる。
【００１７】
また、リセット時間をＷＤＲ信号でマイコン５０に出力することで、以下のメリットも生じる。ＷＤＩＣ１００のカウント時間は温度特性があるため、単位時間のカウント値は温度によって増減する。これは、ＷＤＩＣ１００のリセット時間はＣＲ回路により規定されるが、コンデンサと抵抗の特性には温度依存性があり、同じＷＤＩＣ１００が計測するカウント時間に最大３０％程度の違いが生じるためである。このため、従来では、マイコン５０がＷＤＩＣ１００をクリアする周期に、リセット時間に対するマージンを設ける必要があった（例えば、リセット時間が１０ミリ秒なら、マージンを見てクリア周期を５ミリ秒とする。）。
【００１８】
しかし、本実施例のＷＤＩＣ１００では、リセット時間を計測するＣＲ回路に用いられるコンデンサと抵抗を用いてＷＤＲ信号も生成するので、リセット時間とＷＤＲ信号の温度特性が同じである。したがって、マイコン５０は、ＷＤＲ信号の周期から算出したパルス信号の周期に対しマージンを設定する必要がない。なお、これは、マイコン内にＷＤＩＣがある場合（カウンタ時間（タイマカウンタ）、パルス信号の周期、及び、ＷＤ制御部のクロック源が共通の場合）にも言える。
【００１９】
〔構成例〕
図３は、本実施例のマイコンシステム２００又はマイコン５０の概略構成図の一例を示す。本実施例のマイコン５０は、外部のＷＤＩＣ１００と接続されていてもよいし、内部に有していてもよい。
【００２０】
本実施例のマイコン５０又はマイコンシステム２００は、主に車両のＥＣＵ（Electronic  Control  Unit）に搭載されることを想定している。車載されるＥＣＵには、その主要な機能により、エンジンＥＣＵ、ブレーキＥＣＵ、ボディＥＣＵ、ナビゲーションＥＣＵ（ＡＶ・情報処理ＥＣＵ）、ゲートウェイＥＣＵ等がある。本実施例のマイコン５０又はマイコンシステム２００はＥＣＵの機能の違いに影響されず搭載されることが可能である。
【００２１】
まず、図３（ａ）において、マイコン５０は、システムバス９に接続されたＣＰＵ１１、ＲＡＭ１２、及び、フラッシュメモリ１３を有し、周辺バス１０に接続されたＣＡＮコントローラ１６、ＡＤＣ（Ａ／Ｄコントローラ）１７及びＩ／Ｏチャネル１８を有し、システムバス９と周辺バス１０がブリッジ１５により接続されている。
【００２２】
ＣＰＵ１１は、フラッシュメモリ１３に記憶されているプログラムを、ＲＡＭ１２を作業メモリにして実行する。ＣＰＵ１１は、マルチコアでもシングルコアでもよい。フラッシュメモリ１３に記憶されたプログラムは、マイコン５０が車載装置を制御するアプリの他、ＷＤＩＣ１００をクリアするプログラム（ＷＤ制御部）、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウェア、デバイスドライバ等が含まれている。
【００２３】
ブリッジ１５は、システムバス９と周辺バス１０の間の周波数や電圧の違いを吸収し、システムバス９に接続された回路と周辺バス１０に接続された回路とを通信可能に接続する。ＣＡＮコントローラ１６は、マイコン５０がＥＣＵに搭載された場合に、他のＥＣＵと通信するための通信回路である。ＡＤＣ１７は、マイコン５０に接続されたセンサのアナログ信号をデジタル信号に変換する。ＡＤＣ１７に加え、ＤＡＣ（Ｄ／Ａコントローラ）を有する場合もある。
【００２４】
Ｉ／Ｏチャネル１８には、ＷＤＩＣ１００の他、他のマイコン、アクチュエータ、センサ、スイッチ等が接続される。Ｉ／Ｏチャネル１８からはＨｉｇｈ信号又はＬｏｗ信号がＷＤＩＣ１００の各端子に出力される。
【００２５】
ＷＤＩＣ１００は、カウンタ制御部２１、及び、リセット部２５を有している。カウンタ制御部２１は、カウント時間２２、リセット時間２３、及び、パルス出力部２４を有する。詳細は後述するが、カウンタ制御部２１は、リセット時間２３を可変に設定すると共に、カウント時間２２をカウントしている。また、マイコン５０からクリア信号を受け付けることで、リセット時間２３がクリアされる。カウント時間２２がリセット時間２３に到達するまでに、クリア信号を受け付けないとリセット部２５に通知する。リセット部２５は、リセット信号をマイコン５０のリセット端子に出力することでマイコン５０をリセットする。
【００２６】
なお、マイコン監視に特化したＷＤＩＣ１００の代わりに監視用のマイコンを配置し、監視用のマイコン５０がＷＤＩＣ１００と同様にマイコン５０を監視することもできる。
【００２７】
図４は、図３（ａ）のＷＤＩＣ１００の機能を模式的に説明する図の一例である。図４（ａ）はＷＤＩＣ１００の端子とリセット時間２３を説明するための図であり、図４（ｂ）はパルス出力部２４を説明するための図である。
【００２８】
ＷＤＩＣ１００は、ＴＣ端子、ＷＤ端子、及び、ＲＥＳＥＴ端子を有している。この他、電源端子、グラウンド端子等を有するが省略した。ＷＤ端子は、マイコン５０がリセット時間２３をクリアするクリア信号を入力するための端子である。ＲＥＳＥＴ端子は、ＷＤＩＣ１００がマイコン５０をリセットするリセット信号を出力するための端子である。ＴＣ端子は、リセット時間２３を規定するコンデンサＣ１〜Ｃ３と抵抗Ｒ１〜Ｒ３と接続される端子である。従来から、ＷＤＩＣ１００のＴＣ端子には、リセット時間２３を規定するためのコンデンサ、又は、１組のコンデンサと抵抗が接続される。本実施例のＷＤＩＣ１００では、スイッチ１をコンデンサＣ１〜Ｃ３の１つと、スイッチ２を抵抗Ｒ１〜Ｒ３の１つとそれぞれ選択的に接続することで、リセット時間２３を可変に設定する。図ではコンデンサＣ１〜Ｃ３と抵抗Ｒ１〜Ｒ３がそれぞれ３つなので、９通りのリセット時間２３を規定できる。コンデンサと抵抗は４つ以上でもよい。ＷＤＩＣ１００は、例えば周期的又は不作為にスイッチ１，２を切り替えることで、リセット時間２３を変更する。また、スイッチ１，２の制御はＣＰＵ１１が行うこともできる。
【００２９】
ＷＤＩＣ１００は、コンデンサＣ１〜Ｃ３（又は、コンデンサＣ１〜Ｃ３と不図示のコンデンサ）が満充電されるまでの時間をリセット時間２３とする。満充電されるまでにクリア信号が入力されると、クリア信号によりコンデンサＣ１が放電される。満充電されてしまうとＲＥＳＥＴ端子がリセット信号（Ｌｏｗ信号又はＨｉｇｈ信号）を出力する。このように、図３（ａ）のリセット時間２３は図４（ａ）のコンデンサＣ１〜Ｃ３と抵抗Ｒ１〜Ｒ３の組み合わせに、図３（ａ）のカウント時間２２は図４（ａ）のコンデンサＣ１〜Ｃ３の充電状態に、図２（ａ）のリセット部２５は図３（ａ）のＲＥＳＥＴ端子にそれぞれ対応する。
【００３０】
そして、図４（ｂ）の発振回路がリセット時間２３をマイコン５０に通知する。オペアンプの反転出力は、コンデンサＣ１〜Ｃ３、及び、抵抗Ｒ１〜Ｒ３、Ｒｃｐを介してオペアンプに正帰還する。コンデンサＣ１〜Ｃ３の充電電圧が正帰還されるので、充電過程ではコンデンサの電圧が急激に立ち上がり、放電過程では電圧が急激に減少する。これを繰り返すことで発振回路が周期的な矩形波（パルス）を出力する。この周期は、コンデンサＣ１〜Ｃ３の静電容量と抵抗Ｒ１〜Ｒ３の抵抗値の積に反比例する（周期ｆ＝ｋ×１／ＣＲ  ｋは定数）。したがって、図４（ａ）で選択されたコンデンサＣ１〜Ｃ３、抵抗Ｒ１〜Ｒ３を用いて図４（ｂ）の発振回路を構成することで、リセット時間２３と１対１に対応した周期のパルス（ＷＤＲ信号）を出力することができる。このように、図３（ａ）のパルス出力部２４は図４（ａ）のコンデンサＣ１〜Ｃ３、抵抗Ｒ１〜Ｒ３を用いた発振回路に相当する。
【００３１】
続いて図２（ｂ）のマイコン５０について説明する。図２（ｂ）のように、マイコン内にＷＤＩＣ１００が配置される場合、ＷＤＩＣ１００は、クロック選択部３１、コントロールレジスタ３２、タイマカウンタ３３、パルス出力部３４、及び、内部リセット部３５を有する。ＷＤＩＣ１００の機能は、図２（ａ）と同様だが、実現方法がやや異なる。
【００３２】
図５は、図２（ｂ）のＷＤＩＣ１００の機能を説明する図の一例である。コントロールレジスタ３２は、例えば８bitのレジスタで１ビット毎にＷＤＩＣ１００の動作を制御することができる。例えば、クロック選択部３１が選択するクロック（クロック選択ビット）、タイマカウンタ３３のカウント開始／停止、オーバーフロー時の動作、実際のオーバーフローの有無などが登録される。
【００３３】
クロック選択部３１には分周回路１４から周期が異なる例えば８個のクロック信号が供給されている。分周回路１４はメインクロックを１／２〜１／数千に分周する回路で、マイコン内部又は外部のどちらに配置されてもよい。クロック選択部３１は、コントロールレジスタ３２の設定に基づきタイマカウンタ３３に供給するクロックを１つ選択する。
【００３４】
タイマカウンタ３３は、クロックが１つ入力される毎に１つ値が大きくなるカウンタである。タイマカウンタ３３がオーバーフローすると（例えば0xFFFFFFFになると）、内部リセット部３５がそれを検出する。内部リセット部３５は、マイコン５０を例えばリセットする。具体的には、外部の不図示の監視回路にマイコン５０をリセットさせたり、外部に異常を通知する、ＣＰＵ１１に割込み、異常処理を行わせる、等を行う。
【００３５】
したがって、図２（ｂ）の構成では、クロック選択部３１が選択するクロック周期とタイマカウンタ３３の最大カウント値（例えば８bit）がリセット時間２３となる。より柔軟にリセット時間２３を調整できるように、最大カウント値でなくカウント可能なビット数をコントロールレジスタ３２などで制御してもよい。
【００３６】
そして、パルス出力部３４は、タイマカウンタ３３の増大速度に比例した周期のＷＤＲ信号をＣＰＵ１１に出力する。例えば、以下のようにパルスを出力する。
・タイマカウンタ３３が１つ増える毎に、１パルスを出力する。
・タイマカウンタ３３が１つ増える毎に、２パルスを出力する。
・タイマカウンタ３３が２つ増える毎に、１パルスを出力する。
このように、パルス出力部３４はタイマカウンタ３３がN増える毎に、Mパルスを出力する。タイマカウンタ３３の増大速度は、リセット時間２３と１対１に対応するので、パルス出力部３４が出力するＷＤＲ信号の周期もリセット時間２３と１対１に対応する。
【００３７】
なお、パルス出力部３４とＣＰＵ１１は直接、接続されていることが好ましいが、ＷＤＲ信号の出力タイミングでシステムバス９を介してパルスタイミング（又はカウント値でもよい）を通知してもよい。いずれの場合も、図２（ａ）と同様に、ＣＰＵ１１はＷＤＲ信号のパルスを取得して、クリア信号の周期を算出できる。
【００３８】
また、図３（ｂ）のような態様では、コントロールレジスタ３２のクロック選択ビットがリセット時間２３を制御する。コントロールレジスタ３２の値は、一般にはＣＰＵ１１が設定する。しかし、本実施例では、ＷＤＩＣ（例えば、クロック選択部３１）１００が独立にコントロールレジスタ３２を制御することが好ましい。こうすることで、リセット時間２３をＷＤＩＣ１００がＣＰＵ１１から独立して制御できる。または、ＣＰＵ１１がコントロールレジスタ３２の値を設定してもよいが、少なくとも、ＣＰＵ１１はコントロールレジスタ３２の設定値をクリア信号の周期の算出に使用しない。
【００３９】
なお、以下では、マイコン５０の異常監視がマイコンシステム２００又はマイコン５０のいずれにより実行されるかは特に制限しない。しかし、図２（ａ）の態様では、アプリやマイコン全体に異常が生じた場合でも、ＷＤＩＣ１００は影響されないので、マイコン５０の信頼性を向上できる。図２（ｂ）の態様では、１チップ内にＷＤＩＣ１００が含まれているので、コスト的、実装スペース的に有利である。
【００４０】
〔マイコンの機能〕
図６は、マイコン５０の機能ブロック図の一例を示す。マイコン５０は、車両制御用のアプリを実行しており、例えば、制御対象の車載装置に適切な周期でアプリを繰り返し実行する。ＷＤＩＣ１００をクリアするＷＤ制御部４０は、例えばアプリが１回実行される毎に実行される。アプリの実行時間が長い場合は、アプリの途中でＷＤ制御部４０が適宜呼び出され、ＷＤＩＣ１００をクリアする。このように、アプリとＷＤ制御部４０が一体であるため、ＷＤ制御部４０がＷＤＩＣ１００をクリアするか否かにより、ＷＤＩＣ１００がアプリの異常を検出できる。アプリに異常がある場合はマイコン５０に異常がある場合があるので、アプリの異常からマイコン５０の異常を検出できる。
【００４１】
ＷＤ制御部４０は、ＷＤＲ処理部４１、周期算出部４２、及び、クリア部４３を有している。これらの機能は、ＣＰＵ１１がフラッシュメモリ１３に記憶されたプログラムをハードウェアと協働して実行することで実現される。
【００４２】
タイマ割込みなどによりアプリは周期的に処理を開始し、それが終了するとＷＤ制御部４０を呼び出す。ＷＤＲ処理部４１は、ＷＤＩＣ１００からＷＤＲ信号を取得する。ＷＤＩＣ１００は図のI〜IIIに示すようにリセット時間２３を時間と共に変更している。図の点線で示す上限値はＷＤＩＣ１００が取り得る最大のリセット時間２３であり、下限値はＷＤＩＣ１００が取り得る最小のリセット時間２３である。
【００４３】
パルス出力部２４，３４はリセット時間２３と１対１に対応した周期でＷＤＲ信号を出力している。ＷＤＲ処理部４１は、Ｉ／Ｏチャネル１８のうちＷＤＲ信号が入力されるＩ／Ｏを監視して、パルスの入力の有無を確認する。そして、確認結果を周期算出部４２に通知する。
【００４４】
周期算出部４２は、単位時間当たりのＷＤＲ信号の数をカウントする。そして、この数からクリア信号の周期を、例えば以下のように算出する。
クリア信号の周期＝単位時間当たりのＷＤＲ信号の数／２
この場合、単位時間当たりのＷＤＲ信号の数が多いほど（周波数は速いほど）、クリア信号の周期が長くなる（周波数が遅くなる）。また、以下のように算出してもよい。
クリア信号の周期＝ａ×１／単位時間当たりのＷＤＲ信号の数
この場合、単位時間当たりのＷＤＲ信号の数が多いほど（周波数は速いほど）、クリア信号の周期が短くなる（周波数が速くなる）。なお、ａは係数である。
【００４５】
単位時間当たりのＷＤＲ信号の数からクリア信号の周期をどのように算出するかは、ＷＤＲ信号にリセット時間２３がどのように反映されているか（リセット時間２３が短いほどＷＤＲ信号の周期波がないのか、又は、短いのか）によって決定できる。仮に、「リセット時間＝ＷＤＲ信号の周期」の場合、算出式としては、クリア信号の周期が、ＷＤＲ信号の周期の半分未満になることが好ましい。半分未満とすることで、マイコン５０としては２回連続してクリアミスしなければ、リセットされることがない。
【００４６】
また、「リセット時間＝ＷＤＲ信号の周期」の場合、クリア信号の周期の最大値は、ＷＤＲ信号の周期よりも小さい同程度の値である。また、クリア信号の周期の最小値には、特に制約がないが、例えば、アプリの動作を阻害しない程度となる。数値的には、クリア信号の周期の最小値は、ＷＤＲ信号の周期の１／５〜１／１０程度である。クリア信号の周期を短くするほど、マイコン５０の監視を強化できる。
【００４７】
周期算出部４２は、算出した周期をクリア部４３に設定する。ＷＤＩＣ１００がリセット時間２３を変更していなければ、クリア信号の周期にも変更がないので、すでに設定されている周期に変更がなければ新たに設定しなくてもよい。なお、ＷＤＩＣ１００がリセット時間２３を変更する頻度の方が、周期算出部４２がクリア信号を算出する頻度よりも多いと、マイコン５０がリセットされてしまう。よって、必ず、ＷＤＩＣ１００がリセット時間２３を変更する頻度＜周期算出部４２がクリア信号を算出する頻度、が成り立つ。このため、ＷＤＲ処理部４１がＷＤＲ信号のパルスを検出しても、クリア信号のパルスに変更がない場合がある。
【００４８】
また、リセット時間２３は周期的に変更するよりも、ＷＤＩＣ１００としては減少する変更が多くなるようにリセット時間２３を変更する方がマイコン５０の監視に好適になる。図のIIのリセット時間２３では、時刻ｔ１でＴ１、時刻ｔ２でＴ４、時刻ｔ３でＴ３、時刻ｔ４でＴ２、時刻ｔ５でＴ１、となっている。ここで、リセット時間２３が長くなる変更（時刻ｔ１でＴ１から、時刻ｔ２でＴ４）は、マイコン５０の監視が緩和されることを意味する。そこで、リセット時間２３が長くなる変更を短時間にして、リセット時間２３が短くなる変更を長時間、確保することが有効になる。図の例では、ｔ５〜ｔ２＞＞ｔ２〜ｔ１  となっている。
【００４９】
また、リセット時間２３は、図のIIIに示すように不作為に変更することも有効である。例えば、ＷＤ制御部４０に不具合があるが、クリア信号の周期が徐々に変わるような不具合がある場合、不作為に変更することで、ＷＤ制御部４０の不具合を早期に検出できる可能性がある。また、リセット時間２３が不規則に変わることで、周期算出部４２が算出する周期にも一定の傾向が出にくいので、周期算出部４２が正常であることの確度が増大する。
【００５０】
このように、本実施例のマイコン５０は、ＷＤＲ処理部４１によるＷＤＲ信号の取得、ＷＤＲ信号の検出結果に基づく周期算出部４２によるクリア信号の周期の算出、及び、クリア部４３による周期的なクリア信号の出力、が全て正常に行われないと、マイコンがリセットされてしまう。したがって、ＷＤＩＣ１００は、アプリに異常が生じているが、ＷＤ制御部４０だけが決まった周期でクリア信号を出力するような異常を検出しマイコン５０にフェールセーフ処理を提供することができる。
【００５１】
〔動作手順〕
図７は、マイコン５０がＷＤＲ信号の取得、クリア信号の周期の算出、及び、クリア信号を出力する手順を示すフローチャート図の一例である。まず、図７（ａ）のメイン処理が実行される。
【００５２】
図７（ａ）では、まず、タイマなどの割込みによりアプリの処理タイミングが到来する（Ｓ１０）。
【００５３】
アプリは演算に必要な入力処理を行う（Ｓ２０）。例えば、燃料噴射量の決定に必要なアクセル開度、車速などの信号をセンサの検出値やＣＡＮ通信により取得する。また、例えば自動制動などの運転支援を行うため、障害物の検知結果などを取得する。
【００５４】
次に、ＷＤＲ処理部４１はＷＤＲ入力処理を行う（Ｓ３０）。ＷＤＲ入力処理は、例えば、Ｉ／Ｏチャネル１８にＷＤＲ信号の取得を要求し、その取得結果からパルスの有無を判定する。
【００５５】
次に、周期算出部４２は、ＷＤＲ信号のパルスの検出結果に基づき、クリア信号の周期を算出する（Ｓ４０）。ステップＳ４０の処理については図７（ｂ）にて説明する。
【００５６】
そしてアプリは入力処理で取得したセンサの検出値やＣＡＮ通信により取得したデータを用いてアプリ処理を実行する（Ｓ５０）。アプリ処理は、例えば、燃料噴射や自動制動などに必要なアクチュエータを制御したり、演算結果をＣＡＮ通信で他のＥＣＵに送信するなどの処理である。
【００５７】
そして、クリア部４３はクリア信号の出力処理を行う（Ｓ６０）。ステップＳ６０の処理については図７（ｃ）にて説明する。
【００５８】
図７（ｂ）は、周期算出部４２がクリア信号の周期を算出する手順を示すフローチャート図の一例である。図７（ｂ）では、周期算出部４２は、単位時間のＷＤＲ信号の数の半分をクリア信号の周期としている（Ｓ４０１）。すなわち、単位時間のＷＤＲ信号の数の半分の値を求めることができれば、クリア信号の周期が得られる。単に１／２の演算を行う以外に以下のような算出が考えられる。
（i）単位時間のＷＤＲ信号の数を１／１０にして、５回足し合わせる。
（ii）単位時間のＷＤＲ信号の数を１／１０にして、その値を単位時間のＷＤＲ信号の数から５回引く。
（iii）単位時間のＷＤＲ信号の数を１／１０にして、その値に５を掛ける。
【００５９】
これらの算出方法のいずれの方法を用いても単位時間のＷＤＲ信号の数の半分の値が求められる。したがって、常に同じ演算方法で周期算出部４２がクリア信号の周期を算出するのでなく、算出の度に、１／２の演算を行う算出方法、及び、(i)〜(iii)の算出方法を順番に切り替えてもよい。この場合、算出方法に応じてＣＰＵがＡＬＵ内の異なる演算器（シフタ、加算器、減算器、乗算器、除算器）を使用することが期待できるので、マイコン５０の監視を強化できる。
【００６０】
図７（ｃ）は、クリア部４３がクリア信号を出力するする手順を示すフローチャート図の一例である。この処理は、クリア信号の立ち上がりエッジと立ち下がりエッジを出力タイミングの度に切り替える処理である。
【００６１】
まず、クリア部４３は、クリア信号の出力タイミングが到来したか否かを判定する（Ｓ６０１）。この出力タイミングは、例えばクリア信号の周期の半分になる。出力タイミングでなければクリア信号のパルスを出力する必要がないので処理は終了する。この場合、図７（ａ）の処理も終了する。
【００６２】
出力タイミングが到来した場合（Ｓ６０１のＹｅｓ）、すでにＯＮ出力中か否かを判定する（Ｓ６０２）。すなわち、クリア信号のパルスがＨｉｇｈ状態か否かを判定する。Ｈｉｇｈ状態かＬｏｗ状態かは、過去の制御結果をフラグなどで保持しておくことで判定できる。
【００６３】
ＯＮ出力中の場合（Ｓ６０２のＹｅｓ）、クリア部４３は出力をＯＦＦにする（Ｓ６０３）。すなわち、クリア信号のパルスがＨｉｇｈ状態であったので、Ｌｏｗ状態に変更する。
【００６４】
ＯＮ出力中でない場合（Ｓ６０２のＮｏ）、クリア部４３は出力をＯＮにする（Ｓ６０４）。すなわち、クリア信号のパルスがＬｏｗ状態であったので、Ｈｉｇｈ状態に変更する。Ｓ６０３、Ｓ６０４の処理により、デューティが５０％のクリア信号が得られる。
【００６５】
具体的には、図３（ａ）の態様では、ＷＤＩＣ１００のＷＤ端子に接続されたＩ／Ｏチャネルの状態をＨからＬに切り替えればよく（Ｓ６０３）、ＷＤＩＣ１００のＷＤ端子に接続されたＩ／Ｏチャネルの状態をＬからＨに切り替えればよい（Ｓ６０４）。また、図３（ｂ）の態様では、ＷＤＩＣ１００のタイマカウンタ３３をクリアする命令を実行せず（Ｓ６０３）、ＷＤＩＣ１００のタイマカウンタ３３をクリアする命令を実行すればよい（Ｓ６０４）。
【００６６】
クリア部４３は、ステップＳ４０で算出されたクリア信号の周期を更新する（Ｓ６０５）。これにより、次回、図７（ｃ）が実行されるタイミングではクリア信号の新しい周期に基づきクリア信号のパルスを制御できる。なお、この周期は毎回、違う値に更新されるとは限らない。
【００６７】
図７（ｃ）の処理手順は一例であり、出力タイミングの度に、クリア信号のパルスをＨｉｇｈに設定し所定クロックの経過後、Ｌｏｗに設定してもよい。こうすることでクリア信号の周期を変更せずにデューティを小さくできる。
【００６８】
以上説明したように、マイコン５０は、ＷＤＲ信号の入力処理、クリア周期の演算、及び、クリア信号の出力、の３段階の処理を行わなければ、ＷＤＩＣ１００をクリアできないので、クリア部４３が暴走するような正常クリア異常が発生してもマイコン５０の異常を検出できる。
【００６９】
〔変形例〕
図８（ａ）は、マイコン５０が複数のアプリを実行する場合におけるＷＤＩＣ１００のクリアを説明する図の一例である。マイコン５０のＣＰＵ１１が複数のコアを有していたり、１つのコア１１が複数のアプリを時分割して実行することがある。複数のアプリが実行されていても、ＷＤＩＣ１００の数には制約があるので、１つのＷＤＩＣ１００が複数のアプリを監視できることが好ましい。
【００７０】
アプリ１とアプリ２がそれぞれＷＤ制御部４０を呼び出すと、アプリ１又は２のどちらかに異常が生じても、どちらかが正常な場合にＷＤＩＣ１００がクリアされてしまう。このような場合は、ＷＤＩＣ１００のリセット時間２３を短くすることが好適となる。
【００７１】
図８（ｂ）はリセット時間２３と、アプリ１，アプリ２の処理周期を説明する図の一例である。マイコン５０は、タイマなどの割込みやカウント値を利用して、予め定められた頻度でアプリ１，２を実行する。ＷＤＩＣ１００がアプリ１，２を個別に監視するには、リセット時間２３を以下のように定める。
上限：リセット時間２３は、アプリ１とアプリ２の両方が実行される時間よりも短い。
下限：リセット時間２３は、アプリ１又は２のうち実行時間が長い方のアプリの実行時間よりも長い。
【００７２】
したがって、ＷＤＩＣ１００はこの制約の中でリセット時間２３を変動させる。こうすることで、アプリ１又は２に異常が生じた場合、正常な方のアプリ１又は２内のＷＤ制御部４０が実行される前に、ＷＤＩＣ１００がオーバーフローすることでマイコン５０の異常を検知できる。
【００７３】
しかし、マイコン５０が複数のコアを有するような場合、複数のコアがアプリ１，２を並行に実行するので、アプリ１又は２のいずれかに異常を生じても、正常なアプリから呼び出されるＷＤ制御部４０がＷＤＩＣ１００をクリアしてしまう。このような場合は、ＷＤＩＣ１００がコア又はアプリを識別することが有効である。
【００７４】
図８（ｃ）はリセット時間２３と、アプリ１，アプリ２の処理周期を説明する図の一例である。ＷＤＩＣ１００のＷＤ端子にＡＮＤ回路４５が接続されている。ＡＮＤ回路４５の２つの入力端子には、アプリ１が呼び出すＷＤ制御部４０のクリア信号と、アプリ２が呼び出すＷＤ制御部４０のクリア信号とがそれぞれ入力される。ＡＮＤ回路４５は、アプリ１，２が実行される頻度に応じた時間だけクリア信号をラッチしておき、２つの入力端子にクリア信号が共に入力された場合に、カウント時間２２をクリアする。こうすることで、１つのＷＤＩＣ１００で複数のアプリ又はコアを監視することができる。
【００７５】
なお、図３（ｂ）のようにＷＤＩＣ１００がマイコン内に配置されている場合、タイマカウンタ３３の入力にＡＮＤ回路４５を設けてもよいし、アプリ又はコアの数に応じたフラグを用意し、全てのフラグがセットされることでタイマカウンタ３３をクリアしてもよい。こうすることで、図８（ｃ）と同様に図３（ｂ）のＷＤＩＣ１００を、複数のアプリが利用できる。
【００７６】
また、図３（ａ）のようにＷＤＩＣ１００とマイコン５０が独立した態様では、ＷＤＩＣ１００とマイコン５０が同一の基板に配置されていること、すなわち同じＥＣＵ内に配置されていることが好適である。しかし、マイコン５０とＷＤＩＣ１００が別々のＥＣＵに配置されていても、２つのＥＣＵを専用線で接続することで、同様の処理を実現できる。すなわち、ＷＤＩＣ１００が搭載されたＥＣＵからマイコン５０が搭載されたＥＣＵにＷＤＲ信号を送信し、マイコン５０が搭載されたＥＣＵからＷＤＩＣ１００が搭載されたＥＣＵにクリア信号を送信すればよい。
【実施例２】
【００７７】
実施例１では、ＷＤＩＣ１００がマイコン５０にＷＤＲ信号を出力することが必要であった。本実施例では、ＷＤＩＣ１００がマイコン５０にＷＤＲ信号を出力しなくても、ＷＤＩＣ１００がリセット時間を変更し、変更されたリセット時間内にクリア信号を周期的に出力するマイコン５０又はマイコンシステム２００について説明する。
【００７８】
図９（ａ）は、マイコン５０の機能ブロック図の一例を示す。図９（ａ）において図６と同一部の説明は省略する。本実施例のマイコン５０は、ＷＤＲ信号を取得しないのでＷＤＲ処理部が不要になる。また、ＷＤＲ信号の周期から、クリア信号の周期を算出する必要がないので、周期算出部も不要となる。これらに代えて、リセット時間テーブル４６と同期管理部４７を有している。
【００７９】
図９（ｂ）はリセット時間テーブル４６を模式的に説明する図の一例である。リセット時間テーブル４６には、リセット時間とクリア信号の周期が、時間と対応づけて登録されている。時間は例えば「初期値」「ｔ１秒」「ｔ２秒」「ｔ３秒」「ｔ４秒」である。この初期値は、ＷＤＩＣ１００がカウント時間のカウントを開始した時のリセット時間を意味する。電源のオンなどによりマイコン５０が起動すると、ＣＰＵ１１がＷＤＩＣ１００にカウント時間のカウントを開始させる。その後、ＷＤＩＣ１００はカウント時間のカウントを開始すると共に、予め定められた時間が経過する毎に、予め定められたリセット時間に変更する。
【００８０】
リセット時間テーブル４６には、ＷＤＩＣ１００がリセット時間を変更するタイミングと変更後のリセット時間及びクリア信号の周期が登録されている（周波数を登録してもよい）。なお、リセット時間テーブル４６にはリセット時間は特に必要ないが説明のため記載した。マイコン５０はリセット時間テーブル４６を参照することで、ＷＤＩＣ１００がカウントを開始した直後のクリア信号の周期の初期値はＴ１／２秒で、ｔ１秒が経過するとＴ２／２に、ｔ２秒が経過するとＴ３／２に、ｔ３秒が経過するとＴ４／２に、なることが分かる。
【００８１】
したがって、ＷＤＩＣ１００とマイコン５０のＷＤ制御部４０の同期さえ取れれば、ＷＤＩＣ１００がＷＤＲ信号を出力することなく、ＷＤＩＣ１００がリセット時間を変更しても、ＷＤ制御部は変更されたリセット時間内にクリア信号を周期的に出力することができる。ＷＤ制御部の同期管理部４７は、ＷＤＩＣ１００がカウント時間の計測を開始した時を基準に動作クロックをカウントし、時間ｔ１秒等が経過する毎に、リセット時間テーブル４６に登録されているクリア信号の周期を読み出す。クリア部４０は、この周期でクリア信号を出力するので、リセット時間が変更されてもオーバーフローする前にカウント時間をクリアできる。
【００８２】
なお、同期管理部４７が、ＷＤＩＣ１００がカウントを開始した時を基準にしたまま、リセット時間テーブル４６に基づきクリア信号の周期を変更すると、ＷＤＩＣ１００のリセット時間の変更タイミングとのずれが大きくなるおそれがある。そこで、同期管理部４７がＷＤＩＣ１００に対し、定期的にリセット時間を初期値に戻させることが有効である。このようにすれば、ＷＤＩＣ１００の変更タイミングと、同期管理部４７の変更タイミングのずれを一定値内に維持できる。
【００８３】
〔動作手順〕
図１０は、マイコン５０が、クリア信号の周期を変更して、クリア信号を出力する手順を示すフローチャート図の一例である。
【００８４】
まず、タイマなどの割込みによりアプリの処理タイミングが到来する（Ｓ１０）。
【００８５】
アプリは演算に必要な入力処理を行う（Ｓ２０）。例えば、燃料噴射量の決定に必要なアクセル開度、車速などの信号をセンサの検出値やＣＡＮ通信により取得する。また、例えば自動制動などの運転支援を行うため、障害物の検知結果などを取得する。
【００８６】
次に、同期管理部４７は同期処理を行う（Ｓ３１）。同期処理は、動作クロックに基づきクリア信号の周期を決定する処理である。同期管理部４７は、動作クロックに基づきカウントした時間に対応づけられたクリア信号の周期をリセット時間テーブル４６から読み出す。本実施例ではクリア信号の周期計算は不要になる。
【００８７】
そしてアプリは入力処理で取得したセンサの検出値やＣＡＮ通信により取得したデータを用いてアプリ処理を実行する（Ｓ５０）。アプリ処理は、例えば、燃料噴射や自動制動などに必要なアクチュエータを制御したり、演算結果をＣＡＮ通信で他のＥＣＵに送信するなどの処理である。
【００８８】
そして、クリア部４３はクリア信号の出力処理を行う（Ｓ６０）。ステップＳ６０の処理は図１０（ｂ）に示すとおりであるが、図７（ｃ）と同様なので説明は省略する。
【００８９】
以上説明したように、本実施例のマイコン５０は、ＷＤＩＣ１００がマイコン５０にＷＤＲ信号を出力しなくても、変更されたリセット時間内にクリア信号を周期的に出力することができる。
【符号の説明】
【００９０】
２１    カウンタ制御部
２２    カウント時間
２３    リセット時間
２４、３４  パルス出力部
２５    リセット部
３１    クロック選択部
３２    コントロールレジスタ
３３    タイマカウンタ
３５    内部リセット部
４０    ＷＤ制御部
４１    ＷＤＲ処理部
４２    周期算出部
４３    クリア部
４６    リセット時間テーブル
４７    同期管理部
５０    マイコン
１００  ＷＤＩＣ
【図１】
2013143094.tif 000003
【図２】
2013143094.tif 000004
【図３】
2013143094.tif 000005
【図４】
2013143094.tif 000006
【図５】
2013143094.tif 000007
【図６】
2013143094.tif 000008
【図７】
2013143094.tif 000009
【図８】
2013143094.tif 000010
【図９】
2013143094.tif 000011
【図１０】
2013143094.tif 000012