(57)【要約】【課題】割込み処理機能の診断中に、外部入力によって割込み処理要求があった場合に、外部入力に基づく割込み処理が行われるようにする。【解決手段】マイクロ・コンピュータは割込み入力端子２０１と擬似信号出力端子２０１および駆動出力端子２０５とを備え、擬似信号出力端子から出力される診断用割込み信号は、外部入力とともにＯＲゲート回路２０３を介して割込み入力端子に入力されるようになっている。診断用割込み信号と外部入力のいずれか入力されたとき、割込み処理を行う。診断用割込み信号のみが出力された時間ｔ６のとき、割込み処理を行うことによって診断が行われる。このとき駆動出力端子に対する操作が行われない。診断中に外部入力が入力された場合、診断用割込み信号の出力が終了した時間ｔ８のときに認識され、それに基づく割込み処理が行われる。このとき、外部入力に基づく駆動出力端子の操作が行われる。【選択図】        図１
2004157782.tif 000002
【特許請求の範囲】
【請求項１】
割込み入力端子と擬似信号出力端子とを有するマイクロ・コンピュータにおいて、
割込み処理診断を開始させるために第１の状態から第２の状態へと推移した後、再度第１の状態へと推移する診断用割込み信号を生成し、この診断用割込み信号を前記擬似信号出力端子から出力する診断用割込み信号発生手段と、
前記擬似信号出力端子から出力された前記診断用割込み信号と外部入力としての割込み指令信号とを入力とし、前記診断用割込み信号と前記外部入力との少なくともいずれかの一方が入力された場合に、割込み信号を前記割込み入力端子に出力する信号出力手段と、
前記擬似信号出力端子から前記診断用割込み信号が出力されたことを判断する判断手段と、
前記割込み入力端子に前記割込み信号が入力された場合に割込み処理を行う割込み処理手段とを備え、
前記割込み処理手段は、前記割込み処理診断中であって、前記判断手段によって前記診断用割込み信号が出力されたことを判断した後に前記割込み入力端子に前記割込み信号が入力された場合には、前記割込み指令信号に基づいた出力操作を行うようにしたことを特徴とするマイクロ・コンピュータの自己診断装置。
【請求項２】
前記割込み指令信号を発生する割込み指令信号発生手段を有し、
前記割込み指令信号発生手段と前記信号出力手段との間に、雑音を除去する雑音除去手段が設けられていることを特徴とする請求項１記載のマイクロ・コンピュータの自己診断装置。
【請求項３】
前記雑音除去手段は、ローパスフィルタで構成されていることを特徴とする請求項２記載のマイクロ・コンピュータの自己診断装置。
【請求項４】
前記信号出力手段は、オア回路で構成されていることを特徴とする請求項１から請求項３のいずれか１つに記載のマイクロ・コンピュータの自己診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロ・コンピュータの自己診断装置に関する。
【０００２】
【従来の技術】
【特許文献１】特開２０００−３３０７９８号公報
マイクロ・コンピュータを用いて制御を行った場合、制御の内容によってはこれまでの処理を中断し割込み処理を行うことがある。この割込み処理が機能しているのかを確認するために、マイクロ・コンピュータの内部で一定の周期に、診断用割込み信号を発生して、割込み処理の自己診断を行っている。割込み処理の自己診断が行われているとき、例えば特開２０００−３３０７９８号公報で示した技術では、マスクレジスタによって外部からの割込み指令信号をマスクした状態で診断用割込み信号を生成し、診断を行うようになっている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、診断中に割込み指令信号がマスクされているから、このとき、外部入力としての割込み指令信号が発生した場合には、外部入力に対する通常の割込み処理が正常に行われないという問題があった。
本発明は、上記従来の問題に鑑み、診断用割込み信号による診断中に、外部からの割込み指令信号が入力された場合でも、その割込み指令信号に基づく割込み処理が正常に行えるようにしたマイクロ・コンピュータの自己診断装置を提供することを目的としている。
【０００４】
【課題を解決するための手段】
このため、本発明は、割込み入力端子と擬似信号出力端子とを有するマイクロ・コンピュータにおいて、診断用割込み信号発生手段は、割込み処理診断を開始させるために第１の状態から第２の状態へと推移した後、再度第１の状態へと推移する診断用割込み信号を擬似信号出力端子から出力する。この診断用割込み信号と外部入力としての割込み指令信号との少なくともいずれか一方が入力された場合に、信号出力手段よりマイクロ・コンピュータの割込み入力端子に割込み信号が入力される。
【０００５】
診断用割込み信号に基づく診断中に、割込み処理手段は、判断手段によって診断用割込み信号が出力されたことを判断した後に、割込み入力端子に割込み信号が入力された場合には、外部入力である割込み指令信号に基づいた出力操作を行う。
【０００６】
【発明の効果】
本発明によれば、診断用割込み信号による診断中に、外部からの割込み信号が入力された場合でも、外部からの割込み信号に対する割込み処理が正常に行えるという効果が得られる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態を実施例により説明する。
図１は、実施例の構成を示す図である。
マイクロ・コンピュータ２００は、割込み入力端子２０１、擬似信号出力端子２０２および駆動出力端子２０５を備えている。割込み入力端子２０１は、マイクロ・コンピュータ２００内部の設定レジスタに特定の値をセットする初期化を行うことにより機能され、マイクロ・コンピュータの起動時の割込み端子として使用する。ここに入力された信号の立上りエッジをトリガとして割込み処理を発生させている。
【０００８】
割込み入力端子２０１は、上記のような初期化設定を行った後、さらにマイクロ・コンピュータ内の割込み許可レジスタをセットすることで、割込み信号を受け付けるようになっている。
【０００９】
割込み指令信号発生部２０４は、ローパスフィルタ２０６を介してＯＲゲート回路２０３の一端に接続され、ＯＲゲート回路２０３のもう一端は、擬似信号出力端子２０２と接続される。
割込み指令信号発生部２０４で発生した割込み指令信号は、ローパスフィルタで雑音を除去され、外部入力としてＯＲゲート回路２０３に入力され、割込み信号として割込み入力端子２０１に入力される。
マイクロ・コンピュータ２００では、割込み入力端子２０１を含めて割込み処理が正常に行われているかを診断するために、Ｌｏ（第１の状態）からＨｉ（第２の状態）に推移した後に、Ｈｉ（第２の状態）からＬｏ（第１の状態）の状態に推移する診断用割込み信号を生成し、この診断用割込み信号は擬似信号出力端子２０２から、ＯＲゲート回路２０３へ入力され、割込み信号として割込み入力端子２０１に入力される。
【００１０】
このように、外部入力を直接に割込み入力端子２０１に接続せず、信号出力手段としてのＯＲゲート回路２０３を介して接続し、ＯＲゲート回路２０３のもう一方の入力端子をマイクロ・コンピュータ２００の擬似信号出力端子２０２と接続するようにしているので、マイクロ・コンピュータ２００は擬似信号出力端子２０２の状態を操作することで、外部入力の状態にかかわらず割込み入力端子２０１に対して割込み操作を行うことが可能である。
【００１１】
マイクロ・コンピュータ２００では、ＯＲゲート回路２０３から割込み信号が入力された場合、割込み処理を行うとともに、入力された割込み信号が、診断用割込み信号の場合、割込み処理の診断を行うとともに、駆動出力端子２０５に対する操作を行わない。入力された割込み信号が外部入力の場合には、駆動出力端子２０５を操作して、負荷２０７の駆動を行う。
【００１２】
次に、マイクロ・コンピュータにおける割込み処理の流れをフローチャートによって説明する。
割込み処理は、図２に示す定周期処理Ａと、図３に示す割込み処理Ｂからなっている。
定周期処理Ａは、マイクロ・コンピュータの内蔵タイマにより一定の周期Ｔで起動される。割込み処理Ｂは、割込み入力端子２０１に入力される割込み信号の立上りエッジによって起動される。
【００１３】
内蔵タイマによって定周期処理Ａを開始すると、図２に示すように、まず、ステップ１００において、割込み発生フラグを０に、擬似信号出力端子２０２の状態をＬｏにして初期化を行う。
次にステップ１１０において、割込み入力端子２０１の状態がＬｏか否かを判定する。
【００１４】
ここで、まず、割込み指令信号発生部２０４から割込み指令信号がない場合の動作について考える。この場合は、割込み入力端子２０１の入力値がＬｏであり、かつ擬似信号出力端子２０２の状態はＬｏであるから、割込み入力端子２０１の状態もＬｏである。従ってステップ１１０の判定結果は「真」となり、ステップ１２０へ進む。
ステップ１２０においては、上記とは別のタイマのタイマ値をゼロに設定する。このタイマは、割込み処理の診断に用いられるものである。
ステップ１２５において、診断用割込み信号を生成する。
ステップ１３０において、診断用割込み信号を擬似信号出力端子２０２に出力することによって、擬似信号出力端子２０２の状態をＨｉに設定する。
【００１５】
この状態の反転を示す信号はＯＲゲート２０３を介して割込み入力端子２０１に伝わるため、立ち上がりのエッジによって、図４のｔ１のように割込み入力端子２０１がＨｉに反転する。これによって、割込み処理Ｂが起動される。
【００１６】
割込み処理Ｂでは、図３に示すように、割込みが起動された記録としてステップ２００において、割込み発生フラグを１にセットする。
ステップ２１０において、擬似信号出力端子２０２がＨｉにセットされているかどうかを判定する。ここでｔ１ではステップ１３０で擬似信号出力端子２０２をＨｉにした後であるから、判定の結果は「真」となり、ステップ２２０に進む。
ステップ２２０においては、再度、擬似信号出力端子２０２の状態をＬｏに戻す。
【００１７】
続いてステップ２３０において、割込み入力端子２０１の状態がＬｏであるか否かを判定する。時間ｔ１においては外部入力はＬｏであるから、ステップ２３０の判定結果は、「真」となる。この場合、駆動出力端子２０５の反転は実行されずに割込み処理Ｂは終了する。
【００１８】
割込み処理Ｂが終了すると、割込み処理によって中断されていた定周期処理Ａが再開される。再開される場所は、ステップ１３０を実行した後、割込み処理Ｂが起動されるまでの時間、すなわち、擬似信号出力端子２０２からＯＲゲート２０３を経由し、割込み入力端子２０１に入る回路の遅延時間ｔｄに依存する。
遅延時間ｔｄがマイクロ・コンピュータの処理速度よりも早い場合には、割込み処理の発生は、ステップ１４０の前であるため、定周期処理Ａはステップ１４０から再開される。この場合、ステップ１００で０にした割込み発生フラグは、既に実行の終わった割込み処理Ｂの中で１とされているために、再開されたステップ１４０の判定は「真」となり、割込み処理に異常が検出されなかったものとして定周期処理Ａが終了する。
【００１９】
一方、回路の遅延時間ｔｄがマイクロ・コンピュータの処理速度より長い場合は、割込み処理Ｂが始まる前に、ステップ１４０が実行される。このときステップ１４０の判定は、「偽」となるため、ステップ１５０に移行する。
ステップ１５０では、ステップ１２０を実行した後の経過時間を評価するため、タイマの値を定数Ｎと比較する。ここでＮは割込み処理が行われたか否かをチェックするためのもので値は１以上で、遅延時間ｔｄよりは十分に大きい値に設定されている。したがって、割込み発生フラグが０の状態では、タイマ値がＮより大きくなるまで、ステップ１４０、１５０が繰り返される。この処理の中で、タイマ値がインクリメントされ、いずれかのタイミングで、割込み入力端子２０１がＨｉに反転され、割込み処理Ｂが起動される。これによって、ステップ１４０の判定が「真」となって終了する。
【００２０】
ここで万一、静電気などによって、レジスタの設定値が変わり、割込み入力端子２０１が機能しない異常が発生したことによって割込み処理Ｂが起動されない場合、ステップ１５０においてインクリメントされたタイマの値がＮを超えたと判断すると、ステップ１７０へ進む。
ステップ１７０においては、自己診断により正常に割込み処理Ｂが起動されない異常を検知したとして、例えばシステムを再起動したり、ユーザーに対して異常を告知するなどの異常処理を行う。
【００２１】
このように、外部入力が出力されず、診断用割込み信号が出力された場合には、診断用割込み信号によって割込み処理が実行されるが、制御出力端子２０５に対する操作が行われない。
【００２２】
次に、外部入力が入力された場合について説明する。
まず、図４の時間ｔ２の時のように外部入力による割込み信号が割込み端子２０１へと入力され、定周期処理Ａの実行タイミングの間に入った場合を考える。この場合は定周期処理Ａの休止中に割込み処理Ｂが単独で起動されるため、擬似信号出力端子２０２の状態はＬｏとなっている。従って割込み処理Ｂのステップ２００における割込みフラグを１にした後、ステップ２１０における判定は「偽」となる。これによってステップ２４０で駆動出力端子２０５の状態を反転した後、終了する。この場合は、外部入力に対しての割込み処理が正常に行われる。
【００２３】
上記時間ｔ１〜ｔ２は外部入力からの信号と定周期処理Ａの実行タイミング、すなわち擬似信号出力端子２０２からの出力信号が重ならない場合であるが、通常外部入力からの信号はランダムに入ってくるものであり、互いに信号が重なった場合も正しく動作しなければならない。
このようなケースとしてはまず、時間ｔ４〜ｔ５のようなパターンが考えられる。定周期処理Ａの休止期間であるｔ４に外部入力による割込み信号が割込み入力端子２０１へと入力された場合、まずｔ２の時と同様に割込み処理Ｂが起動され、擬似信号出力端子２０２の状態はＬｏである。したがって、ステップ２１０における判定は「偽」となる。これによってステップ２４０で駆動出力端子２０５の状態を反転した後、終了する。
この場合は、外部入力に対しての割込み処理が正常に行われる。
【００２４】
次に、時間ｔ５において前回の処理から周期Ｔが経過したことにより、定周期処理Ａが開始される。この時、時間ｔ５のように外部入力がＨｉを維持したままであると、定周期処理Ａのステップ１１０における判定は「偽」となるため、擬似信号出力端子２０２に対する操作は行われず、定周期処理Ａが終了する。
【００２５】
これは外部入力がＨｉを維持したままであると、擬似信号出力端子２０２を操作しても立上りエッジを発生できず、割込み処理Ｂを起動できないので、異常状態と誤判断しないためである。
【００２６】
次に時間ｔ６〜ｔ８のケースを考える。ここでは定周期処理Ａの起動タイミングｔ６に僅かに遅れたタイミングｔ７で外部入力による割込み信号が割込み入力端子２０１へと入力されたときに、Ｈｉとなった場合である。この場合は擬似信号出力端子２０２からの信号をトリガとして割込み処理Ｂが起動されるが、ｔ８のタイミングでステップ２２０を実行しても外部入力による割込み信号がＨｉを維持しているために、ステップ２３０での判定が「偽」となる。従ってステップ２４０が実行され、外部入力を取り逃すことなく駆動出力端子２０５の反転が可能となる。
なお、仮にｔ６とｔ７のタイミングが全く同時で外部入力と擬似信号出力端子２０２の信号が同時に立ち上がった場合でも、同じようにステップ２３０の判定が「偽」になるので、駆動出力端子２０５の反転を取り逃がすことはない。
【００２７】
外部入力と擬似信号出力端子２０２の信号が重なるケースとしては、他にｔ９〜ｔ１１のようなパターンが考えられる。これは擬似信号出力端子２０２の出力波形のパルスの中に外部入力からの入力波形のパルスが包含されてしまったケースである。
時間ｔ９において割込み処理Ｂが起動されるが、ステップ２３０の判定で「真」となるため、ステップ２４０は実行されず駆動出力端子２０５の反転は行われない。このケースは一見問題があるようにみられるが、実際には発生しない。
【００２８】
何故なら一般にｔ９〜ｔ１１の時間はマイクロ・コンピュータ２００に使用される基本クロックの速度で数クロック分と言う非常に短い時間であり、この時間より短い割込みパルスを受け入れるようなシステムは成立しないからである。パルスが連続した場合、割込み処理ＢによってＣＰＵを占有してしまうからである。通常、このような短時間の入力パルスは外部からのノイズと判断されるため、外部入力の入力経路に設けられているローパスフィルタ２０６により、除去されマイクロ・コンピュータ２００に入力されることはない。
【００２９】
以上に述べたように、本実施例によれば、マイクロ・コンピュータ２００は、診断用割込み信号による診断を定期的に実施しつつ、診断用割込み信号による診断中に、外部からの割込み信号が入力された場合でも、外部からの割込み信号に対する割込み処理が正常に行うことが可能になる。
また、外部入力となる割込み指令信号に対して、ローパスフィルタを用いることによって、低コストで、雑音の除去が可能で、誤検出を防止できる効果が得られる。
さらに、信号出力手段をＯＲゲート回路１つで実現できるため、コストを低減できる効果が得られる。
なお、上述した診断用割込み信号は、ＬｏからＨｉへと推移し、再びＬｏへと推移するようにしたが、ＨｉからＬｏへと推移し、再びＨｉへと推移するようにしても、同様の効果が得られる。
ステップ１２５が、診断用割込み信号発生手段を構成している。
ステップ２１０が、判断手段を構成している。
ステップ２２０、２３０、２４０が、割込み処理手段を構成している。
【図面の簡単な説明】
【図１】実施例の構成を示す図である。
【図２】定周期処理の流れを示すフローチャートである。
【図３】割込み処理の流れを示すフローチャートである。
【図４】割込み処理の診断を説明するためのタイムチャートである。
【符号の説明】
２００      マイクロ・コンピュータ
２０１      割込み入力端子
２０２      擬似信号出力端子
２０３      ＯＲゲート回路（ＯＲ回路）
２０４      割込み指令信号発生部（割込み指令信号発生手段）
２０５      駆動出力端子
２０６      ローパスフィルタ（雑音除去手段）
２０７      負荷
【図１】
2004157782.tif 000003
【図２】
2004157782.tif 000004
【図３】
2004157782.tif 000005
【図４】
2004157782.tif 000006