(57)【特許請求の範囲】
【請求項１】
複数の外部端子に対応して設けられる複数の入出力回路と、
前記複数の外部端子の中から監視対象外部端子を可変指定する監視対象指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の出力短絡状態を検出し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子の入力開放状態を検出する異常検出回路とを備え、
前記異常検出回路は、
基準電圧を生成する基準電圧生成回路と、
前記監視対象外部端子の電圧を前記基準電圧と比較する電圧比較回路と、
前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子に接続されるプルアップ抵抗およびプルダウン抵抗と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記電圧比較回路の比較結果に応じて出力短絡検出信号を出力し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記電圧比較回路の比較結果に応じて入力開放検出信号を出力する検出信号出力回路とを備えることを特徴とする半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記基準電圧生成回路は、前記基準電圧の電圧値を可変指定する電圧値指定回路を備えることを特徴とする半導体集積回路。
【請求項３】
請求項１に記載の半導体集積回路において、
前記異常検出回路の検出動作を許可または禁止する異常検出制御回路を備え、
前記基準電圧生成回路は、前記異常検出制御回路により前記異常検出回路の検出動作が禁止されている場合に前記基準電圧生成回路の電圧生成動作を停止させる電圧生成停止回路を備えることを特徴とする半導体集積回路。
【請求項４】
複数の外部端子に対応して設けられる複数の入出力回路と、
前記複数の外部端子の中から監視対象外部端子を可変指定する監視対象指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の出力短絡状態を検出し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子の入力開放状態を検出する異常検出回路とを備え、
前記異常検出回路は、
検出禁止時間を可変指定する時間指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の信号遷移に合わせて前記異常検出回路の検出動作を前記検出禁止時間停止させる検出停止回路とを備えることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラ（ＭＣＵ：Micro Controller Unit）等の半導体集積回路に関する。
【背景技術】
【０００２】
マイクロコントローラ等のＬＳＩ（Large Scale Integration）を使用したシステムでは、ソフトウェアあるいはハードウェアの設計ミスに起因してＬＳＩの外部端子で出力短絡（信号衝突）が発生することがある。ＬＳＩにおいては、外部端子で出力短絡が発生すると、外部端子に接続される内部素子（トランジスタ）に過電流が流れ、内部素子が破壊されたり、内部素子の寿命が短縮されたりする等の問題が生じる。このため、ＬＳＩにおいて外部端子の出力短絡状態を検出する技術が提案されている（例えば、特許文献１、２を参照）。
【０００３】
図１１は、ＬＳＩの入出力ポート回路の従来例（その１）を示している。図１１の入出力ポート回路は、特許文献２（図５）に開示されたものに相当し、方向レジスタＤＤＲ、データレジスタＰＤＲおよび入出力回路ＩＯを備えて構成されている。方向レジスタＤＤＲは、入出力回路ＩＯを入力回路として使用する場合に“０”に設定され、入出力回路ＩＯを出力回路として使用する場合に“１”に設定される。信号ＤＤＲＯは、方向レジスタＤＤＲの設定値を示す信号である。データレジスタＰＤＲは、入出力回路ＩＯを出力回路として使用する際、“０”に設定された信号を外部端子Ｐから出力する場合に“０”に設定され、“１”に設定された信号を外部端子Ｐから出力する場合に“１”に設定される。信号ＰＤＲＯは、データレジスタＰＤＲの設定値を示す信号である。
【０００４】
入出力回路ＩＯは、ＮＡＮＤ回路ＮＡａ、インバータＩＶａ、ＩＶｂ、ＮＯＲ回路ＮＲａ、ＰＭＯＳトランジスタＰＭａおよびＮＭＯＳトランジスタＮＭａを備えて構成されている。ＮＡＮＤ回路ＮＡａは、信号ＤＤＲＯが“０”に設定されている場合に信号ＰＤＲＯとは無関係に信号ＮＡａＯを“１”に設定し、信号ＤＤＲＯが“１”に設定されている場合に信号ＰＤＲＯを反転させて信号ＮＡａＯとして出力する。インバータＩＶａは、信号ＤＤＲＯを反転させて信号ＩＶａＯとして出力する。ＮＯＲ回路ＮＲａは、信号ＩＶａＯが“０”に設定されている場合に信号ＰＤＲＯを反転させて信号ＮＲａＯとして出力し、信号ＩＶａＯが“１”に設定されている場合に信号ＰＤＲＯとは無関係に信号ＮＲａＯを“０”に設定する。ＰＭＯＳトランジスタＰＭａは、外部端子Ｐに接続される信号線ＩＮＯＵＴ（信号ＩＮＯＵＴを伝送する信号線）と電源線ＶＤＤ（例えば、３Ｖ）との間に接続されている。ＮＭＯＳトランジスタＮＭａは、信号線ＩＮＯＵＴと接地線ＧＮＤ（０Ｖ）との間に接続されている。ＰＭＯＳトランジスタＰＭａの制御端子には信号ＮＡａＯが入力され、ＮＭＯＳトランジスタＮＭａの制御端子には信号ＮＲａＯが入力されている。インバータＩＶｂは、信号ＩＮＯＵＴを反転させて信号ＩＶｂＯとして出力する。
【０００５】
このような構成の入出力回路ＩＯでは、信号ＤＤＲＯが“１”に設定されると、信号ＮＡａＯ、ＮＲａＯが信号ＰＤＲＯとは反対の論理値に設定される。信号ＰＤＲＯが“０”に設定されている場合には、信号ＮＡａＯ、ＮＲａＯが“１”に設定されるため、ＰＭＯＳトランジスタＰＭａがオフ状態になるとともに、ＮＭＯＳトランジスタＮＭａがオン状態になり、その結果、外部端子Ｐから出力される信号ＩＮＯＵＴが“０”に設定される。また、信号ＰＤＲＯが“１”に設定されている場合には、信号ＮＡａＯ、ＮＲａＯが“０”に設定されるため、ＰＭＯＳトランジスタＰＭａがオン状態になるとともに、ＮＭＯＳトランジスタＮＭａがオフ状態になり、その結果、外部端子Ｐから出力される信号ＩＮＯＵＴが“１”に設定される。このように、入出力回路ＩＯは、信号ＤＤＲＯが“１”に設定されている場合に出力回路として機能する。一方、信号ＤＤＲＯが“０”に設定されると、信号ＰＤＲＯとは無関係に、信号ＮＡａＯが“１”に設定されるとともに、信号ＮＲａＯが“０”に設定されるため、ＰＭＯＳトランジスタＰＭａおよびＮＭＯＳトランジスタＮＭａがオフ状態になる。これにより、外部端子Ｐに入力される信号ＩＮＯＵＴがインバータＩＶｂを介してＬＳＩの内部回路に出力される。このように、入出力回路ＩＯは、信号ＤＤＲＯが“０”に設定されている場合に入力回路として機能する。
【０００６】
以上のような入出力ポート回路によれば、プログラムで１本の外部端子を入力端子としても出力端子としても使用することができ、柔軟なプログラミングが可能になる。また、１本の外部端子で入力端子および出力端子を兼用することが可能になるため、外部端子数を削減でき、その結果、コストの低減を実現できるという効果も得られる。
【０００７】
図１２は、ＬＳＩの入出力ポート回路の従来例（その２）を示している。図１２の入出力ポート回路は、図１１の入出力ポート回路においてコンパレータＣＭＰａ、ＣＭＰｂ、インバータＩＶｃ、ＡＮＤ回路ＡＮａ、ＡＮｂおよびＯＲ回路ＯＲａにより具現される出力短絡検出回路（外部端子Ｐの出力短絡状態を検出する回路）を追加して構成されている。この出力短絡検出回路は、特許文献１（図２）に開示されたものに相当する。
【０００８】
コンパレータＣＭＰａは、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨａより高い場合に信号ＣＭＰａＯを“０”に設定し、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨａより低い場合に信号ＣＭＰａＯを“１”に設定する。コンパレータＣＭＰｂは、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬａ（ＶＴＬａ＜ＶＴＨａ）より低い場合に信号ＣＭＰｂＯを“０”に設定し、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬａより高い場合に信号ＣＭＰｂＯを“１”に設定する。インバータＩＶｃは、信号ＮＡａＯを反転させて信号ＮＡａＯＸとして出力する。ＡＮＤ回路ＡＮａは、信号ＮＡａＯＸが“０”に設定されている場合に信号ＣＭＰａＯとは無関係に信号ＳＳＨを“０”に設定し、信号ＮＡａＯＸが“１”に設定されている場合に信号ＣＭＰａＯを信号ＳＳＨとして出力する。ＡＮＤ回路ＡＮｂは、信号ＮＲａＯが“０”に設定されている場合に信号ＣＭＰｂＯとは無関係に信号ＳＳＬを“０”に設定し、信号ＮＲａＯが“１”に設定されている場合に信号ＣＭＰｂＯを信号ＳＳＬとして出力する。ＯＲ回路ＯＲａは、信号ＳＳＨ、ＳＳＬの双方が“０”に設定されている場合に信号ＳＳを“０”に設定し、信号ＳＳＨ、ＳＳＬの少なくとも一方が“１”に設定されている場合に信号ＳＳを“１”に設定する。
【０００９】
このような構成の出力短絡検出回路では、入出力回路ＩＯが出力回路として機能している場合（信号ＤＤＲＯが“１”に設定されている場合）、以下のように外部端子Ｐの出力短絡状態が検出される。信号ＰＤＲＯが“１”に設定されている場合（入出力回路ＩＯのＰＭＯＳトランジスタＰＭａがオン状態である場合）、外部端子Ｐに対して別のＬＳＩから“０”に設定された信号が出力されるようなシステム設計ミスが存在すると、外部端子Ｐで出力短絡が発生する。このような場合、入出力回路ＩＯにより外部端子Ｐ（信号線ＩＮＯＵＴ）が“１”（高レベル）に駆動されているにも拘わらず、別のＬＳＩにより外部端子Ｐ（信号線ＩＮＯＵＴ）が“０”（低レベル）に駆動されるため、入出力回路ＩＯのＰＭＯＳトランジスタＰＭａに大電流が流れ、別のＬＳＩのトランジスタにも大電流が流れる。このとき、信号ＩＮＯＵＴの電圧は、外部端子Ｐで出力短絡が発生していない場合に比べて低くなる。そこで、例えば、閾値電圧ＶＴＨａを電源線ＶＤＤの電圧より０．５Ｖ低く設定し、外部端子Ｐでの出力短絡の発生に伴って信号ＩＮＯＵＴの電圧が電源線ＶＤＤの電圧から下降して閾値電圧ＶＴＨａより低くなると、コンパレータＣＭＰａにおいて信号ＣＭＰａＯが“１”に設定されるようにする。信号ＰＤＲＯが“１”に設定されている場合、信号ＮＡａＯＸが“１”に設定されるため、信号ＣＭＰａＯが“１”に設定されるのに伴って信号ＳＳＨが“１”に設定され、その結果、信号ＳＳが“１”に設定される。これにより、外部端子Ｐの出力短絡状態が検出される。
【００１０】
また、信号ＰＤＲＯが“０”に設定されている場合（入出力回路ＩＯのＮＭＯＳトランジスタＮＭａがオン状態である場合）、外部端子Ｐに対して別のＬＳＩから“１”に設定された信号が出力されるようなシステム設計ミスが存在すると、外部端子Ｐで出力短絡が発生する。このような場合、入出力回路ＩＯにより外部端子Ｐ（信号線ＩＮＯＵＴ）が“０”に駆動されているにも拘わらず、別のＬＳＩにより外部端子Ｐ（信号線ＩＮＯＵＴ）が“１”に駆動されるため、入出力回路ＩＯのＮＭＯＳトランジスタＮＭａに大電流が流れ、別のＬＳＩのトランジスタにも大電流が流れる。このとき、信号ＩＮＯＵＴの電圧は、外部端子Ｐで出力短絡が発生していない場合に比べて高くなる。そこで、例えば、閾値電圧ＶＴＬａを接地線ＧＮＤの電圧より０．５Ｖ高く設定し、外部端子Ｐでの出力短絡の発生に伴って信号ＩＮＯＵＴの電圧が接地線ＧＮＤの電圧から上昇して閾値電圧ＶＴＬａより高くなると、コンパレータＣＭＰｂにおいて信号ＣＭＰｂＯが“１”に設定されるようにする。信号ＰＤＲＯが“０”に設定されている場合、信号ＮＲａＯが“１”に設定されるため、信号ＣＭＰｂＯが“１”に設定されるのに伴って信号ＳＳＬが“１”に設定され、その結果、信号ＳＳが“１”に設定される。これにより、外部端子Ｐの出力短絡状態が検出される。
【００１１】
しかしながら、現実には、外部端子Ｐで出力短絡が発生していない場合でも、データレジスタＰＤＲの設定値の変更に伴って信号ＩＮＯＵＴが遷移する際には、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨａより低い状態あるいは信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬａより高い状態が存在する。従って、データレジスタＰＤＲの設定値の変更に伴う信号ＩＮＯＵＴの遷移に起因して信号ＳＳが“１”に設定されることを回避するためのタイミング制御回路等を設ける必要がある。
【００１２】
図１３は、ＬＳＩの入出力ポート回路の従来例（その３）を示している。図１３の入出力ポート回路は、図１１の入出力ポート回路においてＡＮＤ回路ＡＮｃ〜ＡＮｆ、インバータＩＶｄ〜ＩＶｈ、遅延回路ＤＬＹａ、ＤＬＹｂ、ＥＮＯＲ回路ＥＮＲａ、ＥＮＲｂ、コンパレータＣＭＰｃ、ＣＭＰｄ、ＮＭＯＳトランジスタＮＭｂ、ＮＭｃおよびＰＭＯＳトランジスタＰＭｂ、ＰＭｃにより具現される出力短絡検出回路を追加して構成されている。この出力短絡検出回路は、特許文献２（図４）に開示されたものに相当する。
【００１３】
ＡＮＤ回路ＡＮｃは、信号ＤＤＲＯが“０”に設定されている場合に信号ＰＤＲＯとは無関係に信号ＡＮｃＯを“０”に設定し、信号ＤＤＲＯが“１”に設定されている場合に信号ＰＤＲＯを信号ＡＮｃＯとして出力する。インバータＩＶｄは、信号ＰＤＲＯを反転させて信号ＰＤＲＯＸとして出力する。ＡＮＤ回路ＡＮｄは、信号ＤＤＲＯが“０”に設定されている場合に信号ＰＤＲＯＸとは無関係に信号ＡＮｄＯを“０”に設定し、信号ＤＤＲＯが“１”に設定されている場合に信号ＰＤＲＯＸを信号ＡＮｄＯとして出力する。遅延回路ＤＬＹａは、信号ＡＮｃＯを所定時間遅らせて信号ＤＬＹａＯとして出力する。遅延回路ＤＬＹｂは、信号ＡＮｄＯを所定時間遅らせて信号ＤＬＹｂＯとして出力する。ＥＮＯＲ回路ＥＮＲａは、信号ＰＤＲＯ、ＤＬＹａＯの論理値が一致しない場合に信号ＥＮＲａＯを“０”に設定し、信号ＰＤＲＯ、ＤＬＹａＯの論理値が一致する場合に信号ＥＮＲａＯを“１”に設定する。ＥＮＯＲ回路ＥＮＲｂは、信号ＰＤＲＯＸ、ＤＬＹｂＯの論理値が一致しない場合に信号ＥＮＲｂＯを“０”に設定し、信号ＰＤＲＯＸ、ＤＬＹｂＯの論理値が一致する場合に信号ＥＮＲｂＯを“１”に設定する。ＡＮＤ回路ＡＮｅは、信号ＥＮＲａＯが“０”に設定されている場合に信号ＰＤＲＯとは無関係に信号ＡＮｅＯを“０”に設定し、信号ＥＮＲａＯが“１”に設定されている場合に信号ＰＤＲＯを信号ＡＮｅＯとして出力する。ＡＮＤ回路ＡＮｆは、信号ＥＮＲｂＯが“０”に設定されている場合に信号ＰＤＲＯＸとは無関係に信号ＡＮｆＯを“０”に設定し、信号ＥＮＲｂＯが“１”に設定されている場合に信号ＰＤＲＯＸを信号ＡＮｆＯとして出力する。インバータＩＶｅは、信号ＡＮｅＯを反転させて信号ＡＮｅＯＸとして出力する。インバータＩＶｆは、信号ＡＮｆＯを反転させて信号ＡＮｆＯＸとして出力する。
【００１４】
コンパレータＣＭＰｃは、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨｂより高い場合に信号ＣＭＰｃＯを“０”に設定し、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨｂより低い場合に信号ＣＭＰｃＯを“１”に設定する。コンパレータＣＭＰｄは、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬｂ（ＶＴＬｂ＜ＶＴＨｂ）より低い場合に信号ＣＭＰｄＯを“０”に設定し、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬｂより高い場合に信号ＣＭＰｄＯを“１”に設定する。ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂは、信号線ＣＭＰｃＯと信号線ＤＥＴとの間に並列接続されている。ＮＭＯＳトランジスタＮＭｂの制御端子には信号ＡＮｅＯが入力され、ＰＭＯＳトランジスタＰＭｂの制御端子には信号ＡＮｅＯＸが入力されている。ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃは、信号線ＣＭＰｄＯと信号線ＤＥＴとの間に並列接続されている。ＮＭＯＳトランジスタＮＭｃの制御端子には信号ＡＮｆＯが入力され、ＰＭＯＳトランジスタＰＭｃの制御端子には信号ＡＮｆＯＸが入力されている。インバータＩＶｇは信号ＤＥＴを反転させて信号ＤＥＴＸとして出力し、インバータＩＶｈは信号ＤＥＴＸを反転させて信号ＤＥＴとして出力する。即ち、インバータＩＶｇ、ＩＶｈは、信号ＤＥＴを保持するラッチ回路を具現している。
【００１５】
このような構成の出力短絡検出回路では、入出力回路ＩＯが出力回路として機能している場合（信号ＤＤＲＯが“１”に設定されている場合）、以下のように外部端子Ｐの出力短絡状態が検出される。信号ＰＤＲＯが“０”に設定されている場合には、信号ＡＮｅＯが“０”に設定され、信号ＡＮｅＯＸが“１”に設定されるため、ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂがオフ状態になる。従って、信号ＣＭＰｃＯは信号ＤＥＴに関与していない。また、信号ＰＤＲＯが“０”に設定されている場合には、信号ＰＤＲＯＸが“１”に設定されるため、信号ＡＮｄＯ、ＤＬＹｂＯが“１”に設定され、信号ＥＮＲｂＯが“１”に設定される。これにより、信号ＡＮｆＯが“１”に設定され、信号ＡＮｆＯＸが“０”に設定されるため、ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃがオン状態になる。従って、信号ＣＭＰｄＯが信号ＤＥＴとして出力されている。このような状態で外部端子Ｐにおいて出力短絡が発生すると、信号ＩＮＯＵＴの電圧が接地線ＧＮＤの電圧から上昇して閾値電圧ＶＴＬｂより高くなった時点で信号ＣＭＰｄＯが“０”から“１”に遷移し、その結果、信号ＤＥＴが“０”から“１”に遷移する。これにより、外部端子Ｐの出力短絡状態が検出される。
【００１６】
信号ＰＤＲＯが“０”から“１”に遷移すると、信号ＰＤＲＯＸが“１”から“０”に遷移するため、信号ＡＮｆＯが“１”から“０”に遷移し、信号ＡＮｆＯＸが“０”から“１”に遷移する。これにより、ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃがオフ状態になり、その結果、信号ＣＭＰｄＯは信号ＤＥＴに関与しなくなる。また、信号ＰＤＲＯが“０”から“１”に遷移すると、信号ＡＮｃＯが“０”から“１”に遷移し、信号ＡＮｃＯが遷移してから遅延回路ＤＬＹａの遅延時間が経過した後に信号ＤＬＹａＯが“０”から“１”に遷移する。これにより、信号ＥＮＲａＯが“０”から“１”に遷移するため、信号ＡＮｅＯが“０”から“１”に遷移し、信号ＡＮｅＯＸが“１”から“０”に遷移する。このため、ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂがオン状態になり、その結果、信号ＣＭＰｃＯが信号ＤＥＴとして出力されるようになる。即ち、信号ＰＤＲＯが遷移してから遅延回路ＤＬＹａの遅延時間が経過するまでの期間においては、ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂはオフ状態のままであり、信号ＣＭＰｃＯは信号ＤＥＴに関与しない。信号ＰＤＲＯが“０”から“１”に遷移すると、信号ＩＮＯＵＴが“０”から“１”に遷移する。信号ＩＮＯＵＴが“０”から“１”に遷移する際には、外部端子Ｐで出力短絡が発生していない場合でも、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＨｂより低い状態が存在する。しかしながら、遅延回路ＤＬＹａの遅延時間が信号ＩＮＯＵＴの遷移時間（外部端子Ｐの信号遷移時間）より大きく設定されることで、外部端子Ｐの信号遷移状態が外部端子Ｐの出力短絡状態として検出されることが回避される。
【００１７】
一方、信号ＰＤＲＯが“１”に設定されている場合には、信号ＰＤＲＯＸが“０”に設定されるため、信号ＡＮｆＯが“０”に設定され、信号ＡＮｆＯＸが“１”に設定され、その結果、ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃがオフ状態になる。従って、信号ＣＭＰｄＯは信号ＤＥＴに関与していない。また、信号ＰＤＲＯが“１”に設定されている場合には、信号ＡＮｃＯ、ＤＬＹａＯが“１”に設定され、信号ＥＮＲａＯが“１”に設定される。これにより、信号ＡＮｅＯが“１”に設定され、信号ＡＮｅＯＸが“０”に設定されるため、ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂがオン状態になる。従って、信号ＣＭＰｃＯが信号ＤＥＴとして出力されている。このような状態で外部端子Ｐにおいて出力短絡が発生すると、信号ＩＮＯＵＴの電圧が電源線ＶＤＤの電圧から下降して閾値電圧ＶＴＨｂより低くなった時点で信号ＣＭＰｃＯが“０”から“１”に遷移し、その結果、信号ＤＥＴが“０”から“１”に遷移する。これにより、外部端子Ｐの出力短絡状態が検出される。
【００１８】
信号ＰＤＲＯが“１”から“０”に遷移すると、信号ＡＮｅＯが“１”から“０”に遷移し、信号ＡＮｅＯＸが“０”から“１”に遷移する。これにより、ＮＭＯＳトランジスタＮＭｂおよびＰＭＯＳトランジスタＰＭｂがオフ状態になり、その結果、信号ＣＭＰｃＯは信号ＤＥＴに関与しなくなる。また、信号ＰＤＲＯが“１”から“０”に遷移すると、信号ＰＤＲＯＸが“０”から“１”に遷移するため、信号ＡＮｄＯが“０”から“１”に遷移し、信号ＡＮｄＯが遷移してから遅延回路ＤＬＹｂの遅延時間が経過した後に信号ＤＬＹｂＯが“０”から“１”に遷移する。これにより、信号ＥＮＲｂＯが“０”から“１”に遷移するため、信号ＡＮｆＯが“０”から“１”に遷移し、信号ＡＮｆＯＸが“１”から“０”に遷移する。このため、ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃがオン状態になり、その結果、信号ＣＭＰｄＯが信号ＤＥＴとして出力されるようになる。即ち、信号ＰＤＲＯが遷移してから遅延回路ＤＬＹｂの遅延時間が経過するまでの期間においては、ＮＭＯＳトランジスタＮＭｃおよびＰＭＯＳトランジスタＰＭｃはオフ状態のままであり、信号ＣＭＰｄＯは信号ＤＥＴに関与しない。信号ＰＤＲＯが“１”から“０”に遷移すると、信号ＩＮＯＵＴが“１”から“０”に遷移する。信号ＩＮＯＵＴが“１”から“０”に遷移する際には、外部端子Ｐで出力短絡が発生していない場合でも、信号ＩＮＯＵＴの電圧が閾値電圧ＶＴＬｂより高い状態が存在する。しかしながら、遅延回路ＤＬＹｂの遅延時間が信号ＩＮＯＵＴの遷移時間より大きく設定されることで、外部端子Ｐの信号遷移状態が外部端子Ｐの出力短絡状態として検出されることが回避される。
【００１９】
また、ＬＳＩにおいて外部端子の出力短絡状態を検出する技術とは別に、車載用途向けＬＳＩ等においてスイッチやコネクタ等の異常に起因する入力回路の異常を検出する技術も提案されている（例えば、特許文献３、４を参照）。
【００２０】
図１４は、ＬＳＩの入力ポート回路の従来例（その１）を示している。図１４の入力ポート回路は、抵抗ＲａおよびスイッチＳＷａを介して接地線ＧＮＤに接続される外部端子ＴＥＲＭに対応して設けられ、抵抗Ｒｂ、Ｒｃ、スイッチＳＷｂ、バッファＢＦａおよびレベル判定回路ＣＩＲＣを備えて構成されている。この入力ポート回路は、特許文献３（図２）に開示されたものに相当する。
【００２１】
抵抗Ｒｂは、外部端子ＴＥＲＭに接続される信号線ＩＮと電源線ＶＤＤとの間に接続されている。抵抗ＲｃおよびスイッチＳＷｂは、信号線ＩＮと電源線ＶＤＤとの間に直列接続されている。バッファＢＦａは、信号ＩＮを受けて信号ＶＢを出力する。レベル判定回路ＣＩＲＣは、信号Ｓａを介してスイッチＳＷｂを定期的に制御し、その際の信号ＶＢのレベル（論理値）に基づいてスイッチＳＷａのオン／オフ状態および回路異常（バッファＢＦａの破損等）の有無を判定する。レベル判定回路ＣＩＲＣは、スイッチＳＷａがオン状態であり且つ回路異常が無いと判定した場合にのみ、信号ＳｂをＬＳＩの内部回路に出力する。
【００２２】
このような構成の入力ポート回路では、抵抗Ｒａ、Ｒｂ、Ｒｃの抵抗値がＲｃ＜Ｒａ＜Ｒｂの関係になっており、スイッチＳＷａがオン状態であり且つスイッチＳＷｂがオフ状態である場合に信号ＶＢが“０”に設定され、その他の場合に信号ＶＢが“１”に設定されるようになっている。従って、レベル判定回路ＣＩＲＣは、スイッチＳＷｂをオフ状態にして信号ＶＢのレベルを認識した後、スイッチＳＷｂをオン状態にして信号ＶＢのレベルを認識し、スイッチＳＷｂのオン／オフ状態に対応して信号ＶＢが遷移した場合、スイッチＳＷａがオン状態であり且つ回路異常が無いと判定して信号Ｓｂを出力する。
【００２３】
図１５は、ＬＳＩの入力ポート回路の従来例（その２）を示している。図１５の入力ポート回路は、特許文献４（図２）に開示されたものに相当し、ＰＭＯＳトランジスタＰＭｄ、ＰＭｅ、ＮＭＯＳトランジスタＮＭｄ、ＮＭｅ、プルアップ抵抗Ｒｄ、Ｒｆ、プルダウン抵抗Ｒｅ、Ｒｇ、バッファＢＦｂ、ＢＦｃ、Ｄ型フリップフロップＤＦＦａ、ＤＦＦｂおよびセレクタＳＥＬａを備えて構成されている。
【００２４】
ＰＭＯＳトランジスタＰＭｄおよびプルアップ抵抗Ｒｄは、外部端子に接続される信号線ＰＩＮａと電源線ＶＤＤとの間に直列接続されている。ＮＭＯＳトランジスタＮＭｄおよびプルダウン抵抗Ｒｅは、信号線ＰＩＮａと接地線ＧＮＤとの間に直列接続されている。ＰＭＯＳトランジスタＰＭｄおよびＮＭＯＳトランジスタＮＭｄの制御端子には、信号ＴＳＴが入力されている。ＰＭＯＳトランジスタＰＭｅおよびプルアップ抵抗Ｒｆは、信号線ＰＩＮａとは別の外部端子に接続される信号線ＰＩＮｂと電源線ＶＤＤとの間に直列接続されている。ＮＭＯＳトランジスタＮＭｅおよびプルダウン抵抗Ｒｇは、信号線ＰＩＮｂと接地線ＧＮＤとの間に直列接続されている。ＰＭＯＳトランジスタＰＭｅおよびＮＭＯＳトランジスタＮＭｅの制御端子には、信号ＴＳＴが入力されている。バッファＢＦｂは、入力回路を具現しており、信号ＰＩＮａを受けて信号ＢＦｂＯをＬＳＩの内部回路に出力する。バッファＢＦｃは、入力回路を具現しており、信号ＰＩＮｂを受けて信号ＢＦｃＯをＬＳＩの内部回路に出力する。Ｄ型フリップフロップＤＦＦａ、ＤＦＦｂおよびセレクタＳＥＬａは、信号ＢＦｂＯ、ＢＦｃＯをＬＳＩの外部に順次出力するスキャン回路を具現している。Ｄ型フリップフロップＤＦＦａは、クロック端子ＣＫに入力される信号ＣＬＫが“０”から“１”に遷移するのに伴って、入力端子Ｄに供給される信号ＢＦｂＯを取り込んで信号ＤＦＦａＯとして出力端子Ｑから出力する。セレクタＳＥＬａは、信号ＴＳＥＬに応じて信号ＤＦＦａＯ、ＢＦｃＯのいずれかを選択して信号ＳＥＬａＯとして出力する。Ｄ型フリップフロップＤＦＦｂは、クロック端子ＣＫに供給される信号ＣＬＫが“０”から“１”に遷移するのに伴って、入力端子Ｄに入力される信号ＳＥＬａＯを取り込んで信号ＤＦＦｂＯとして出力端子Ｑから出力する。
【００２５】
このような構成の入力ポート回路で、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子に対して“０”固定の信号を入力し、信号ＴＳＴを“０”に設定すると、ＰＭＯＳトランジスタＰＭｄ（ＰＭｅ）がオン状態になり、プルアップ抵抗Ｒｄ（Ｒｆ）が信号線ＰＩＮａ（ＰＩＮｂ）に接続される。その結果、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子が入力開放状態でなければ信号ＢＦｂＯ（ＢＦｃＯ）が“０”に設定され、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子が入力開放状態であれば信号ＢＦｂＯ（ＢＦｃＯ）が“１”に設定される。また、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子に対して“１”固定の信号を入力し、信号ＴＳＴを“１”に設定すると、ＮＭＯＳトランジスタＮＭｄ（ＮＭｅ）がオン状態になり、プルダウン抵抗Ｒｅ（Ｒｇ）が信号線ＰＩＮａ（ＰＩＮｂ）に接続される。その結果、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子が入力開放状態でなければ信号ＢＦｂＯ（ＢＦｃＯ）が“１”に設定され、信号線ＰＩＮａ（ＰＩＮｂ）に接続される外部端子が入力開放状態であれば信号ＢＦｂＯ（ＢＦｃＯ）が“０”に設定される。従って、信号線ＰＩＮａ、ＰＩＮｂに接続される外部端子に対して入力される信号の論理値に応じて信号ＴＳＴの論理値を設定し、Ｄ型フリップフロップＤＦＦａ、ＤＦＦｂおよびセレクタＳＥＬａにより具現されるスキャン回路を用いて信号ＢＦｂＯ、ＢＦｃＯをＬＳＩの外部に順次出力させることで、信号線ＰＩＮａ、ＰＩＮｂに接続される外部端子の入力開放の有無を確認できる。
【特許文献１】特開昭６０−２００３４７号公報
【特許文献２】特開２００４−４８３４１号公報
【特許文献３】特開昭６０−４１３２１号公報
【特許文献４】特許第３６４５７４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
図１２〜図１５を用いて前述したように、ＬＳＩにおいて外部端子の出力短絡状態あるいは入力開放状態を検出する技術が提案されているが、以下に示すような問題がある。
【００２７】
図１２の回路構成では、外部端子毎に出力短絡検出回路を設ける必要があるため、ＬＳＩのチップ面積が増大してコストが大幅に増加するという問題がある。更に、外部端子の信号遷移状態に関する対策が施されておらず、外部端子の信号遷移状態が外部端子の出力短絡状態として検出される可能性があるという問題もある。図１３の回路構成では、外部端子の信号遷移状態に関する対策が施されているが、図１２の回路構成と同様に、外部端子毎に出力短絡検出回路を設ける必要があるため、ＬＳＩのチップ面積が増大してコストが大幅に増加するという問題がある。図１４の回路構成および図１５の回路構成においても、外部端子毎に入力開放検出回路（入力異常検出回路）を設ける必要があるため、ＬＳＩのチップ面積が増大してコストが大幅に増加するという問題がある。
【００２８】
本発明は、このような問題に鑑みてなされたものであり、半導体集積回路においてコストの増大を伴うことなく外部端子の異常状態（出力短絡状態および入力開放状態）を検出する技術を提供することを目的とする。
【課題を解決するための手段】
【００２９】
半導体集積回路は、複数の入出力回路、監視対象指定回路および異常検出回路を備える。複数の入出力回路は、複数の外部端子に対応して設けられる。監視対象指定回路は、複数の外部端子の中から監視対象外部端子を可変指定する。異常検出回路は、監視対象外部端子に対応する入出力回路が出力回路として機能している場合に監視対象外部端子の出力短絡状態を検出し、監視対象外部端子に対応する入出力回路が入力回路として機能している場合に監視対象外部端子の入力開放状態を検出する。このような半導体集積回路では、複数の外部端子で異常検出回路が共用されるため、半導体集積回路のチップ面積を小さくすることができ、コストを増大させることなく外部端子の異常状態を検出する機能を実現できる。
また、例えば、異常検出回路は、基準電圧を生成する基準電圧生成回路と、監視対象外部端子の電圧を基準電圧と比較する電圧比較回路と、監視対象外部端子に対応する入出力回路が入力回路として機能している場合に監視対象外部端子に接続されるプルアップ抵抗およびプルダウン抵抗と、監視対象外部端子に対応する入出力回路が出力回路として機能している場合に電圧比較回路の比較結果に応じて出力短絡検出信号を出力し、監視対象外部端子に対応する入出力回路が入力回路として機能している場合に電圧比較回路の比較結果に応じて入力開放検出信号を出力する検出信号出力回路とを備える。例えば、異常検出回路は、検出禁止時間を可変指定する時間指定回路と、監視対象外部端子に対応する入出力回路が出力回路として機能している場合に監視対象外部端子の信号遷移に合わせて異常検出回路の検出動作を検出禁止時間停止させる検出停止回路とを備える。
【発明の効果】
【００３０】
半導体集積回路においてコストの増大を伴うことなく外部端子の異常状態（出力短絡状態および入力開放状態）を検出することが可能になる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施形態について図面を用いて説明する。
【００３２】
図１は、本発明の第１実施形態を示している。第１実施形態のマイクロコントローラＭＣＵは、方向レジスタＤＤＲ１〜ＤＤＲ４、データレジスタＰＤＲ１〜ＰＤＲ４、入出力回路ＩＯ１〜ＩＯ４、端子選択回路ＤＰＳＥＬ、異常検出回路ＰＣＤＥＴおよび異常検出制御回路ＰＣＤＣＴＬを備えて構成されている。なお、図示を省略しているが、マイクロコントローラＭＣＵには、ＣＰＵ（Central Processing Unit）、フラッシュメモリ（プログラム格納用メモリ）、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）やタイマ等も搭載されている。
【００３３】
方向レジスタＤＤＲｉ（ｉ＝１，２，３，４）は、入出力回路ＩＯｉを入力回路として使用する場合に“０”に設定され、入出力回路ＩＯｉを出力回路として使用する場合に“１”に設定される。信号ＤＤＲｉＯは、方向レジスタＤＤＲｉの設定値を示す信号である。データレジスタＰＤＲｉは、入出力回路ＩＯｉを出力回路として使用する際、“０”に設定された信号を外部端子Ｐｉから出力する場合に“０”に設定され、“１”に設定された信号を外部端子Ｐｉから出力する場合に“１”に設定される。信号ＰＤＲｉＯは、データレジスタＰＤＲｉの設定値を示す信号である。
【００３４】
入出力回路ＩＯｉは、外部端子Ｐｉに対応して設けられ、ＮＡＮＤ回路ＮＡ１ｉ、インバータＩＶ１ｉ、ＩＶ２ｉ、ＮＯＲ回路ＮＲ１ｉ、ＰＭＯＳトランジスタＰＭ１ｉおよびＮＭＯＳトランジスタＮＭ１ｉを備えて構成されている。入出力回路ＩＯｉにおけるＮＡＮＤ回路ＮＡ１ｉ、インバータＩＶ１ｉ、ＩＶ２ｉ、ＮＯＲ回路ＮＲ１ｉ、ＰＭＯＳトランジスタＰＭ１ｉおよびＮＭＯＳトランジスタＮＭ１ｉの接続関係は、図１１の入出力回路ＩＯにおけるＮＡＮＤ回路ＮＡａ、インバータＩＶａ、ＩＶｂ、ＮＯＲ回路ＮＲａ、ＰＭＯＳトランジスタＰＭａおよびＮＭＯＳトランジスタＮＭａの接続関係と同様である。
【００３５】
端子選択回路ＤＰＳＥＬは、外部端子Ｐ１〜Ｐ４の中から監視対象外部端子を可変指定し、信号ＤＤＲ１Ｏ〜ＤＤＲ４Ｏの中で監視対象外部端子に対応する信号を信号ＤＤＲＳＯとして出力し、信号ＰＤＲ１Ｏ〜ＰＤＲ４Ｏの中で監視対象外部端子に対応する信号を信号ＰＤＲＳＯとして出力し、信号ＩＮＯＵＴ１〜ＩＮＯＵＴ４の中で監視対象外部端子に対応する信号を信号ＩＮＯＵＴＳＯとして出力する。なお、端子選択回路ＤＰＳＥＬの詳細については、図２を用いて後述する。
【００３６】
異常検出回路ＰＣＤＥＴは、信号ＰＣＤＥＯが“１”に設定されている場合にのみ、信号ＤＤＲＳＯ、ＰＤＲＳＯ、ＩＮＯＵＴＳＯに基づいて監視対象外部端子の異常状態（出力短絡状態および入力開放状態）を検出する。異常検出回路ＰＣＤＥＴは、監視対象外部端子の出力短絡状態の検出に伴って信号ＤＥＴＳＯＯを“１”に設定し、監視対象外部端子の入力開放状態の検出に伴って信号ＤＥＴＳＩＯを“１”に設定する。なお、異常検出回路ＰＣＤＥＴの詳細については、図３〜図５を用いて後述する。
【００３７】
異常検出制御回路ＰＣＤＣＴＬは、異常検出回路ＰＣＤＥＴの検出動作の許可／禁止を示す信号ＰＣＤＥＯを出力する。信号ＰＣＤＥＯは、異常検出回路ＰＣＤＥＴの検出動作を禁止する場合に“０”に設定され、異常検出回路ＰＣＤＥＴの検出動作を許可する場合に“１”に設定される。また、異常検出制御回路ＰＣＤＣＴＬは、信号ＤＥＴＳＯＯ、ＤＥＴＳＩＯに基づいてＣＰＵに対する割り込み信号ＩＲＱＰＣＤを出力する。なお、異常検出制御回路ＰＣＤＣＴＬの詳細については、図６を用いて後述する。
【００３８】
図２は、図１の端子選択回路を示している。端子選択回路ＤＰＳＥＬは、端子選択制御レジスタＤＰＳＥＬＣＲ、デコーダＤＥＣ１およびセレクタＳＥＬ１〜ＳＥＬ３を備えて構成されている。端子選択制御レジスタＤＰＳＥＬＣＲは、外部端子Ｐ１〜Ｐ４の中から監視対象外部端子を可変指定するためのレジスタである。信号ＶＤＰＳＥＬＣＲは、端子選択制御レジスタＤＰＳＥＬＣＲの設定値を示す信号である。デコーダＤＥＣ１は、信号ＶＤＰＳＥＬＣＲをデコードして信号ＰＳＥＬ１〜ＰＳＥＬ４を出力する。具体的には、デコーダＤＥＣ１は、信号ＶＤＰＳＥＬＣＲが外部端子Ｐ１（Ｐ２、Ｐ３、Ｐ４）を示す論理値に設定されている場合、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）を“１”に設定するとともに、信号ＰＳＥＬ１〜ＰＳＥＬ４におけるＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）以外の信号を“０”に設定する。
【００３９】
セレクタＳＥＬ１は、スイッチＳＳ１１〜ＳＳ１４を備えて構成されている。スイッチＳＳ１１（ＳＳ１２、ＳＳ１３、ＳＳ１４）は、信号線ＤＤＲ１Ｏ（ＤＤＲ２Ｏ、ＤＤＲ３Ｏ、ＤＤＲ４Ｏ）と信号線ＤＤＲＳＯとの間に接続されている。スイッチＳＳ１１（ＳＳ１２、ＳＳ１３、ＳＳ１４）は、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“０”に設定されている場合にオフ状態になり、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“１”に設定されている場合にオン状態になる。セレクタＳＥＬ２は、スイッチＳＳ２１〜ＳＳ２４を備えて構成されている。スイッチＳＳ２１（ＳＳ２２、ＳＳ２３、ＳＳ２４）は、信号線ＰＤＲ１Ｏ（ＰＤＲ２Ｏ、ＰＤＲ３Ｏ、ＰＤＲ４Ｏ）と信号線ＰＤＲＳＯとの間に接続されている。スイッチＳＳ２１（ＳＳ２２、ＳＳ２３、ＳＳ２４）は、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“０”に設定されている場合にオフ状態になり、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“１”に設定されている場合にオン状態になる。セレクタＳＥＬ３は、スイッチＳＳ３１〜ＳＳ３４を備えて構成されている。スイッチＳＳ３１（ＳＳ３２、ＳＳ３３、ＳＳ３４）は、信号線ＩＮＯＵＴ１（ＩＮＯＵＴ２、ＩＮＯＵＴ３、ＩＮＯＵＴ４）と信号線ＩＮＯＵＴＳＯとの間に接続されている。スイッチＳＳ３１（ＳＳ３２、ＳＳ３３、ＳＳ３４）は、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“０”に設定されている場合にオフ状態になり、信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“１”に設定されている場合にオン状態になる。
【００４０】
このような構成の端子選択回路ＤＰＳＥＬでは、端子選択制御レジスタＤＰＳＥＬＣＲが外部端子Ｐ１（Ｐ２、Ｐ３、Ｐ４）を示すレジスタ値に設定されると、デコーダＤＥＣ１において信号ＰＳＥＬ１（ＰＳＥＬ２、ＰＳＥＬ３、ＰＳＥＬ４）が“１”に設定される。この結果、セレクタＳＥＬ１においてスイッチＳＳ１１（ＳＳ１２、ＳＳ１３、ＳＳ１４）がオン状態になって信号ＤＤＲ１Ｏ（ＤＤＲ２Ｏ、ＤＤＲ３Ｏ、ＤＤＲ４Ｏ）が信号ＤＤＲＳＯとして出力され、セレクタＳＥＬ２においてスイッチＳ２１（ＳＳ２２、ＳＳ２３、ＳＳ２４）がオン状態になって信号ＰＤＲ１Ｏ（ＰＤＲ２Ｏ、ＰＤＲ３Ｏ、ＰＤＲ４Ｏ）が信号ＰＤＲＳＯとして出力され、セレクタＳＥＬ３においてスイッチＳＳ３１（ＳＳ３２、ＳＳ３３、ＳＳ３４）がオン状態になって信号ＩＮＯＵＴ１（ＩＮＯＵＴ２、ＩＮＯＵＴ３、ＩＮＯＵＴ４）が信号ＩＮＯＵＴＳＯとして出力される。
【００４１】
図３は、図１の異常検出回路を示している。異常検出回路ＰＣＤＥＴは、ＡＮＤ回路ＡＮ１〜ＡＮ７、インバータＩＶ３〜ＩＶ８、遅延時間制御レジスタＰＣＤＤＬＹＣＲ、可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２、閾値電圧生成回路ＰＣＤＶＴＧ、コンパレータＣＭＰ１、ＣＭＰ２、ＮＭＯＳトランジスタＮＭ２、ＮＭ３、ＰＭＯＳトランジスタＰＭ２、ＰＭ３、ＮＯＲ回路ＮＲ２、スイッチＳＷ１、ＳＷ２、プルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２を備えて構成されている。
【００４２】
ＡＮＤ回路ＡＮ１は、信号ＰＣＤＥＯが“０”に設定されている場合に信号ＤＤＲＳＯとは無関係に信号ＡＮ１Ｏを“０”に設定し、信号ＰＣＤＥＯが“１”に設定されている場合に信号ＤＤＲＳＯを信号ＡＮ１Ｏとして出力する。ＡＮＤ回路ＡＮ２は、信号ＡＮ１Ｏが“０”に設定されている場合に信号ＰＤＲＳＯとは無関係に信号ＡＮ２Ｏを“０”に設定し、信号ＡＮ１Ｏが“１”に設定されている場合に信号ＰＤＲＳＯを信号ＡＮ２Ｏとして出力する。インバータＩＶ３は、信号ＰＤＲＳＯを反転させて信号ＰＤＲＳＯＸとして出力する。ＡＮＤ回路ＡＮ３は、信号ＡＮ１Ｏが“０”に設定されている場合に信号ＰＤＲＳＯＸとは無関係に信号ＡＮ３Ｏを“０”に設定し、信号ＡＮ１Ｏが“１”に設定されている場合に信号ＰＤＲＳＯＸを信号ＡＮ３Ｏとして出力する。遅延時間制御レジスタＰＣＤＤＬＹＣＲは、可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間を可変指定するためのレジスタである。例えば、遅延時間制御レジスタＰＣＤＤＬＹＣＲは、遅延時間ＴＤ１〜ＴＤ４（ＴＤ１＜ＴＤ２＜ＴＤ３＜ＴＤ４）のいずれかを示すレジスタ値に設定される。信号ＶＰＣＤＤＬＹＣＲは、遅延時間制御レジスタＰＣＤＤＬＹＣＲの設定値を示す信号である。可変遅延回路ＶＤＬＹ１は、信号ＡＮ２Ｏを信号ＶＰＣＤＤＬＹＣＲの論理値に対応する時間遅らせて信号ＶＤＬＹ１Ｏとして出力する。可変遅延回路ＶＤＬＹ２は、信号ＡＮ３Ｏを信号ＶＰＣＤＤＬＹＣＲの論理値に対応する時間遅らせて信号ＶＤＬＹ２Ｏとして出力する。ＡＮＤ回路ＡＮ４は、信号ＡＮ２Ｏ、ＶＤＬＹ１Ｏの少なくとも一方が“０”に設定されている場合に信号ＡＮ４Ｏを“０”に設定し、信号ＡＮ２Ｏ、ＶＤＬＹ１Ｏの双方が“１”に設定されている場合に信号ＡＮ４Ｏを“１”に設定する。ＡＮＤ回路ＡＮ５は、信号ＡＮ３Ｏ、ＶＤＬＹ２Ｏの少なくとも一方が“０”に設定されている場合に信号ＡＮ５Ｏを“０”に設定し、信号ＡＮ３Ｏ、ＶＤＬＹ２Ｏの双方が“１”に設定されている場合に信号ＡＮ５Ｏを“１”に設定する。インバータＩＶ４は、信号ＡＮ４Ｏを反転させて信号ＡＮ４ＯＸとして出力する。インバータＩＶ５は、信号ＡＮ５Ｏを反転させて信号ＡＮ５ＯＸとして出力する。
【００４３】
閾値電圧生成回路ＰＣＤＶＴＧは、信号ＰＣＤＥＯが“１”に設定されている場合にのみ、電圧値可変の閾値電圧ＶＴＨ、ＶＴＬ（ＶＴＬ＜ＶＴＨ）を生成する。コンパレータＣＭＰ１は、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＨより高い場合に信号ＣＭＰ１Ｏを“０”に設定し、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＨより低い場合に信号ＣＭＰ１Ｏを“１”に設定する。コンパレータＣＭＰ２は、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＬより低い場合に信号ＣＭＰ２Ｏを“０”に設定し、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＬより高い場合に信号ＣＭＰ２Ｏを“１”に設定する。ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２は、信号線ＣＭＰ１Ｏと信号線ＤＥＴＳＯＯとの間に並列接続されている。ＮＭＯＳトランジスタＮＭ２の制御端子には信号ＡＮ４Ｏが入力され、ＰＭＯＳトランジスタＰＭ２の制御端子には信号ＡＮ４ＯＸが入力されている。ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３は、信号線ＣＭＰ２Ｏと信号線ＤＥＴＳＯＯとの間に並列接続されている。ＮＭＯＳトランジスタＮＭ３の制御端子には信号ＡＮ５Ｏが入力され、ＰＭＯＳトランジスタＰＭ３の制御端子には信号ＡＮ５ＯＸが入力されている。インバータＩＶ６は信号ＤＥＴＳＯＯを反転させて信号ＤＥＴＳＯＯＸとして出力し、インバータＩＶ７は信号ＤＥＴＳＯＯＸを反転させて信号ＤＥＴＳＯＯとして出力する。即ち、インバータＩＶ６、ＩＶ７は、信号ＤＥＴＳＯＯを保持するラッチ回路を具現している。
【００４４】
インバータＩＶ８は、信号ＰＣＤＥＯを反転させて信号ＰＣＤＥＯＸとして出力する。ＮＯＲ回路ＮＲ２は、信号ＰＣＤＥＯＸが“０”に設定されている場合に信号ＤＤＲＳＯを反転させて信号ＮＲ２Ｏとして出力し、信号ＰＣＤＥＯＸが“１”に設定されている場合に信号ＤＤＲＳＯとは無関係に信号ＮＲ２Ｏを“０”に設定する。スイッチＳＷ１およびプルアップ抵抗Ｒ１は、信号線ＩＮＯＵＴＳＯと電源線ＶＤＤ（例えば、３Ｖ）との間に直列接続されている。スイッチＳＷ２およびプルダウン抵抗Ｒ２は、信号線ＩＮＯＵＴＳＯと接地線ＧＮＤ（０Ｖ）との間に直列接続されている。スイッチＳＷ１、ＳＷ２は、信号ＮＲ２Ｏが“０”に設定されている場合にオフ状態になり、信号ＮＲ２Ｏが“１”に設定されている場合にオン状態になる。ＡＮＤ回路ＡＮ６は、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏの少なくとも一方が“０”に設定されている場合に信号ＡＮ６Ｏを“０”に設定し、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏの双方が“１”に設定されている場合に信号ＡＮ６Ｏを“１”に設定する。ＡＮＤ回路ＡＮ７は、信号ＮＲ２Ｏが“０”に設定されている場合に信号ＡＮ６Ｏとは無関係に信号ＤＥＴＳＩＯを“０”に設定し、信号ＮＲ２Ｏが“１”に設定されている場合に信号ＡＮ６Ｏを信号ＤＥＴＳＩＯとして出力する。
【００４５】
以上のような構成の異常検出回路ＰＣＤＥＴでは、異常検出回路ＰＣＤＥＴの検出動作が許可されており、監視対象外部端子に対応する入出力回路が出力回路として機能している場合（信号ＰＣＤＥＯが“１”に設定されており、信号ＤＤＲＳＯが“１”に設定されている場合）、以下のように監視対象外部端子の出力短絡状態が検出される。信号ＰＤＲＳＯが“０”に設定されている場合には、信号ＡＮ２Ｏが“０”に設定されるため、信号ＡＮ４Ｏが“０”に設定され、信号ＡＮ４ＯＸが“１”に設定され、その結果、ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２がオフ状態になる。従って、信号ＣＭＰ１Ｏは信号ＤＥＴＳＯＯに関与していない。また、信号ＰＤＲＳＯが“０”に設定されている場合には、信号ＰＤＲＳＯＸが“１”に設定されるため、信号ＡＮ３Ｏ、ＶＤＬＹ２Ｏが“１”に設定される。これにより、信号ＡＮ５Ｏが“１”に設定され、信号ＡＮ５ＯＸが“０”に設定されるため、ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３がオン状態になる。従って、信号ＣＭＰ２Ｏが信号ＤＥＴＳＯＯとして出力されている。なお、信号ＮＲ２Ｏが“０”に設定されるため、スイッチＳＷ１、ＳＷ２がオフ状態になり、その結果、プルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２は信号線ＩＮＯＵＴＳＯから切り離されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号ＩＮＯＵＴＳＯの電圧が接地線ＧＮＤの電圧から上昇して閾値電圧ＶＴＬより高くなった時点で信号ＣＭＰ２Ｏが“０”から“１”に遷移し、その結果、信号ＤＥＴＳＯＯが“０”から“１”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【００４６】
信号ＰＤＲＳＯが“０”から“１”に遷移すると、信号ＰＤＲＳＯＸが“１”から“０”に遷移するため、信号ＡＮ３Ｏが“１”から“０”に遷移し、その結果、信号ＡＮ５Ｏが“１”から“０”に遷移し、信号ＡＮ５ＯＸが“０”から“１”に遷移する。これにより、ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３がオフ状態になり、その結果、信号ＣＭＰ２Ｏは信号ＤＥＴＳＯＯに関与しなくなる。また、信号ＰＤＲＳＯが“０”から“１”に遷移すると、信号ＡＮ２Ｏが“０”から“１”に遷移し、信号ＡＮ２Ｏが遷移してから可変遅延回路ＶＤＬＹ１の遅延時間が経過した後に信号ＶＤＬＹ１Ｏが“０”から“１”に遷移する。これにより、信号ＡＮ４Ｏが“０”から“１”に遷移し、信号ＡＮ４ＯＸが“１”から“０”に遷移するため、ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２がオン状態になり、その結果、信号ＣＭＰ１Ｏが信号ＤＥＴＳＯＯとして出力されるようになる。即ち、信号ＰＤＲＳＯが遷移してから可変遅延回路ＶＤＬＹ１の遅延時間が経過するまでの期間においては、ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２はオフ状態のままであり、信号ＣＭＰ１Ｏは信号ＤＥＴＳＯＯに関与しない。信号ＰＤＲＳＯが“０”から“１”に遷移すると、信号ＩＮＯＵＴＳＯが“０”から“１”に遷移する。信号ＩＮＯＵＴＳＯが“０”から“１”に遷移する際には、監視対象外部端子で出力短絡が発生していない場合でも、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＨより低い状態が存在する。しかしながら、可変遅延回路ＶＤＬＹ１の遅延時間が信号ＩＮＯＵＴＳＯの遷移時間（監視対象外部端子の信号遷移時間）より大きく設定されることで、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることが回避される。
【００４７】
一方、信号ＰＤＲＳＯが“１”に設定されている場合には、信号ＰＤＲＳＯＸが“０”に設定されるため、信号ＡＮ３Ｏが“０”に設定される。これにより、信号ＡＮ５Ｏが“０”に設定され、信号ＡＮ５ＯＸが“１”に設定されるため、ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３がオフ状態になる。従って、信号ＣＭＰ２Ｏは信号ＤＥＴＳＯＯに関与していない。また、信号ＰＤＲＳＯが“１”に設定されている場合には、信号ＡＮ２Ｏ、ＶＤＬＹ１Ｏが“１”に設定されるため、信号ＡＮ４Ｏが“１”に設定され、信号ＡＮ４ＯＸが“０”に設定され、その結果、ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２がオン状態になる。従って、信号ＣＭＰ１Ｏが信号ＤＥＴＳＯＯとして出力されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号ＩＮＯＵＴＳＯの電圧が電源線ＶＤＤの電圧から下降して閾値電圧ＶＴＨより低くなった時点で信号ＣＭＰ１Ｏが“０”から“１”に遷移し、その結果、信号ＤＥＴＳＯＯが“０”から“１”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【００４８】
信号ＰＤＲＳＯが“１”から“０”に遷移すると、信号ＡＮ２Ｏが“１”から“０”に遷移するため、信号ＡＮ４Ｏが“１”から“０”に遷移し、信号ＡＮ４ＯＸが“０”から“１”に遷移する。これにより、ＮＭＯＳトランジスタＮＭ２およびＰＭＯＳトランジスタＰＭ２がオフ状態になり、その結果、信号ＣＭＰ１Ｏは信号ＤＥＴＳＯＯに関与しなくなる。また、信号ＰＤＲＳＯが“１”から“０”に遷移すると、信号ＰＤＲＳＯＸが“０”から“１”に遷移するため、信号ＡＮ３Ｏが“０”から“１”に遷移し、信号ＡＮ３Ｏが遷移してから可変遅延回路ＶＤＬＹ２の遅延時間が経過した後に信号ＶＤＬＹ２Ｏが“０”から“１”に遷移する。これにより、信号ＡＮ５Ｏが“０”から“１”に遷移し、信号ＡＮ５ＯＸが“１”から“０”に遷移するため、ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３がオン状態になり、その結果、信号ＣＭＰ２Ｏが信号ＤＥＴＳＯＯとして出力されるようになる。即ち、信号ＰＤＲＳＯが遷移してから遅延回路ＶＤＬＹ２の遅延時間が経過するまでの期間においては、ＮＭＯＳトランジスタＮＭ３およびＰＭＯＳトランジスタＰＭ３はオフ状態のままであり、信号ＣＭＰ２Ｏは信号ＤＥＴＳＯＯに関与しない。信号ＰＤＲＳＯが“１”から“０”に遷移すると、信号ＩＮＯＵＴＳＯが“１”から“０”に遷移する。信号ＩＮＯＵＴＳＯが“１”から“０”に遷移する際には、監視対象外部端子で出力短絡が発生していない場合でも、信号ＩＮＯＵＴＳＯの電圧が閾値電圧ＶＴＬより高い状態が存在する。しかしながら、可変遅延回路ＶＤＬＹ２の遅延時間が信号ＩＮＯＵＴＳＯの遷移時間より大きく設定されることで、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることが回避される。
【００４９】
なお、入出力回路ＩＯ１〜ＩＯ４の電流駆動能力が異なる場合や外部端子Ｐ１〜Ｐ４の負荷容量が異なる場合には外部端子Ｐ１〜Ｐ４の信号遷移時間が異なる可能性があるが、遅延時間制御レジスタＰＣＤＤＬＹＣＲを利用して可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間を変更できるため、監視対象外部端子として選択される外部端子の信号遷移時間に合わせて遅延時間制御レジスタＰＣＤＤＬＹＣＲを設定することで、そのような場合にも柔軟に対応できる。
【００５０】
また、異常検出回路ＰＣＤＥＴの検出動作が禁止されている場合（信号ＰＣＤＥＯが“０”に設定されている場合）あるいは監視対象外部端子に対応する入出力回路が入力回路として機能している場合（信号ＤＤＲＳＯが“０”に設定されている場合）、信号ＡＮ２Ｏ、ＡＮ３Ｏが“０”に設定されるため、信号ＡＮ４Ｏ、ＡＮ５Ｏが“０”に設定され、信号ＡＮ４ＯＸ、ＡＮ５ＯＸが“１”に設定される。これにより、ＮＭＯＳトランジスタＮＭ２、ＮＭ３およびＰＭＯＳトランジスタＰＭ２、ＰＭ３がオフ状態になるため、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏに応じて信号ＤＥＴＳＯＯが“１”に設定されることはない。
【００５１】
更に、異常検出回路ＰＣＤＥＴでは、異常検出回路ＰＣＤＥＴの検出動作が許可されており、監視対象外部端子に対応する入出力回路が入力回路として機能している場合（信号ＰＣＤＥＯが“１”に設定されており、信号ＤＤＲＳＯが“０”に設定されている場合）、以下のように監視対象外部端子の入力開放状態が検出される。信号ＤＤＲＳＯが“０”に設定されている場合には、信号ＮＲ２Ｏが“１”に設定されるため、スイッチＳＷ１、ＳＷ２がオン状態になり、その結果、信号線ＩＮＯＵＴＳＯ（監視対象外部端子）にプルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２が接続される。プルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２は大きい抵抗値（例えば、１００ｋΩ）を有しており、監視対象外部端子に対して外部回路により“０”（“１”）に設定された信号が入力されていれば（監視対象外部端子が入力開放状態でなければ）、信号ＩＮＯＵＴＳＯが“０”（“１”）に設定される。
【００５２】
信号ＩＮＯＵＴＳＯが“０”に設定されている場合、信号ＩＮＯＵＴＳＯの電圧は閾値電圧ＶＴＨ、ＶＴＬより低いため、信号ＣＭＰ１Ｏが“１”に設定され、信号ＣＭＰ２Ｏが“０”に設定される。従って、信号ＡＮ６Ｏが“０”に設定され、その結果、信号ＤＥＴＳＩＯが“０”に設定される。また、信号ＩＮＯＵＴＳＯが“１”に設定されている場合、信号ＩＮＯＵＴＳＯの電圧は閾値電圧ＶＴＨ、ＶＴＬより高いため、信号ＣＭＰ１Ｏが“０”に設定され、信号ＣＭＰ２Ｏが“１”に設定される。従って、信号ＡＮ６Ｏが“０”に設定され、その結果、信号ＤＥＴＳＩＯが“０”に設定される。
【００５３】
一方、断線等に起因して監視対象外部端子に対して外部回路により信号が入力されておらず、監視対象外部端子が入力開放状態である場合、プルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２の作用により、信号ＩＮＯＵＴＳＯの電圧は電源線ＶＤＤの電圧の１／２程度になる。このとき、信号ＩＮＯＵＴＳＯの電圧は閾値電圧ＶＴＨより低く閾値電圧ＶＴＬより高いため、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏが“１”に設定される。従って、信号ＡＮ６Ｏが“１”に設定され、その結果、信号ＤＥＴＳＩＯが“１”に設定される。これにより、監視対象外部端子の入力開放状態が検出される。
【００５４】
また、異常検出回路ＰＣＤＥＴの検出動作が禁止されている場合（信号ＰＣＤＥＯが“０”に設定されている場合）あるいは監視対象外部端子に対応する入出力回路が出力回路として機能している場合（信号ＤＤＲＳＯが“１”に設定されている場合）、信号ＮＲ２Ｏが“０”に設定されるため、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏに応じて信号ＤＥＴＳＩＯが“１”に設定されることはない。
【００５５】
なお、監視対象外部端子に対して外部回路により入力される信号が“０”固定の信号や“１”固定の信号ではなく遷移を伴う信号である場合には、監視対象外部端子の信号遷移状態が監視対象外部端子の入力開放状態として検出される可能性があるが、例えば、ソフトウェア処理により入力開放状態の検出の有無を複数回確認することで、監視対象外部端子の信号遷移状態と入力開放状態とを判別することができる。
【００５６】
以上のように、異常検出回路ＰＣＤＥＴにおいては、閾値電圧生成回路ＰＣＤＶＴＧおよびコンパレータＣＭＰ１、ＣＭＰ２が出力短絡検出機能および入力開放検出機能で共用されるため、異常検出回路ＰＣＤＥＴの回路面積を削減することができ、その結果、製造コストを抑えることができる。
【００５７】
図４は、図３の閾値電圧生成回路を示している。閾値電圧生成回路ＰＣＤＶＴＧは、閾値電圧制御レジスタＰＣＤＶＴＣＲ、デコーダＤＥＣ２、スイッチＳＷ３、分圧抵抗ＲＤ１〜ＲＤ９およびセレクタＳＥＬ４、ＳＥＬ５を備えて構成されている。
【００５８】
閾値電圧制御レジスタＰＣＤＶＴＣＲは、閾値電圧ＶＴＨ、ＶＴＬの電圧値を可変指定するためのレジスタである。例えば、閾値電圧制御レジスタＰＣＤＶＴＣＲは、閾値電圧ＶＴＨの電圧値として電圧値ＶＴＨ１〜ＶＴＨ４（ＶＴＨ４＜ＶＴＨ３＜ＶＴＨ２＜ＶＴＨ１）のいずれかを示し、閾値電圧ＶＴＬの電圧値として電圧値ＶＴＬ１〜ＶＴＬ４（ＶＴＬ４＜ＶＴＬ３＜ＶＴＬ２＜ＶＴＬ１）のいずれかを示すレジスタ値に設定される。信号ＶＰＣＤＶＴＣＲは、閾値電圧制御レジスタＰＣＤＶＴＣＲの設定値を示す信号である。デコーダＤＥＣ２は、信号ＶＰＣＤＶＴＣＲをデコードして信号ＨＳＥＬ１〜ＨＳＥＬ４、ＬＳＥＬ１〜ＬＳＥＬ４を出力する。具体的には、デコーダＤＥＣ２は、信号ＶＰＣＤＶＴＣＲが閾値電圧ＶＴＨの電圧値として電圧値ＶＴＨ１（ＶＴＨ２、ＶＴＨ３、ＶＴＨ４）を示す論理値に設定されている場合、信号ＨＳＥＬ１（ＨＳＥＬ２、ＨＳＥＬ３、ＨＳＥＬ４）を“１”に設定するとともに、信号ＨＳＥＬ１〜ＨＳＥＬ４におけるＨＳＥＬ１（ＨＳＥＬ２、ＨＳＥＬ３、ＨＳＥＬ４）以外の信号を“０”に設定する。また、デコーダＤＥＣ２は、信号ＶＰＣＤＶＴＣＲが閾値電圧ＶＴＬの電圧値として電圧値ＶＴＬ１（ＶＴＬ２、ＶＴＬ３、ＶＴＬ４）を示す論理値に設定されている場合、信号ＬＳＥＬ１（ＬＳＥＬ２、ＬＳＥＬ３、ＬＳＥＬ４）を“１”に設定するとともに、信号ＬＳＥＬ１〜ＬＳＥＬ４におけるＬＳＥＬ１（ＬＳＥＬ２、ＬＳＥＬ３、ＬＳＥＬ４）以外の信号を“０”に設定する。
【００５９】
スイッチＳＷ３および分圧抵抗ＲＤ１〜ＲＤ９は、電源線ＶＤＤと接地線ＧＮＤとの間に直列接続されている。スイッチＳＷ３は、信号ＰＣＤＥＯが“０”に設定されている場合にオフ状態になり、信号ＰＣＤＥＯが“１”に設定されている場合にオン状態になる。セレクタＳＥＬ４は、スイッチＳＳ４１〜ＳＳ４４を備えて構成されている。スイッチＳＳ４１（ＳＳ４２、ＳＳ４３、ＳＳ４４）は、分圧抵抗ＲＤ１（ＲＤ２、ＲＤ３、ＲＤ４）および分圧抵抗ＲＤ２（ＲＤ３、ＲＤ４、ＲＤ５）の接続ノードと閾値電圧ＶＴＨの供給線との間に接続されている。スイッチＳＳ４１（ＳＳ４２、ＳＳ４３、ＳＳ４４）は、信号ＨＳＥＬ１（ＨＳＥＬ２、ＨＳＥＬ３、ＨＳＥＬ４）が“０”に設定されている場合にオフ状態になり、信号ＨＳＥＬ１（ＨＳＥＬ２、ＨＳＥＬ３、ＨＳＥＬ４）が“１”に設定されている場合にオン状態になる。セレクタＳＥＬ５は、スイッチＳＳ５１〜ＳＳ５４を備えて構成されている。スイッチＳＳ５１（ＳＳ５２、ＳＳ５３、ＳＳ５４）は、分圧抵抗ＲＤ５（ＲＤ６、ＲＤ７、ＲＤ８）および分圧抵抗ＲＤ６（ＲＤ７、ＲＤ８、ＲＤ９）の接続ノードと閾値電圧ＶＴＬの供給線との間に接続されている。スイッチＳＳ５１（ＳＳ５２、ＳＳ５３、ＳＳ５４）は、信号ＬＳＥＬ１（ＬＳＥＬ２、ＬＳＥＬ３、ＬＳＥＬ４）が“０”に設定されている場合にオフ状態になり、信号ＬＳＥＬ１（ＬＳＥＬ２、ＬＳＥＬ３、ＬＳＥＬ４）が“１”に設定されている場合にオン状態になる。
【００６０】
このような構成の閾値電圧生成回路ＰＣＤＶＴＧでは、閾値電圧制御レジスタＰＣＤＶＴＣＲが電圧値ＶＴＨ１（ＶＴＨ２、ＶＴＨ３、ＶＴＨ４）を示すレジスタ値に設定されると、デコーダＤＥＣ２において信号ＨＳＥＬ１（ＨＳＥＬ２、ＨＳＥＬ３、ＨＳＥＬ４）が“１”に設定され、その結果、セレクタＳＥＬ４においてスイッチＳＳ４１（ＳＳ４２、ＳＳ４３、ＳＳ４４）がオン状態になって分圧電圧ＶＤ１（ＶＤ２、ＶＤ３、ＶＤ４）が閾値電圧ＶＴＨとして出力される。また、閾値電圧制御レジスタＰＣＤＶＴＣＲが電圧値ＶＴＬ１（ＶＴＬ２、ＶＴＬ３、ＶＴＬ４）を示すレジスタ値に設定されると、デコーダＤＥＣ２において信号ＬＳＥＬ１（ＬＳＥＬ２、ＬＳＥＬ３、ＬＳＥＬ４）が“１”に設定され、その結果、セレクタＳＥＬ５においてスイッチＳＳ５１（ＳＳ５２、ＳＳ５３、ＳＳ５４）がオン状態になって分圧電圧ＶＤ５（ＶＤ６、ＶＤ７、ＶＤ８）が閾値電圧ＶＴＬとして出力される。これにより、任意の電圧値の閾値電圧ＶＴＬＨ、ＶＴＬを供給することが可能になる。また、外部端子Ｐ１〜Ｐ４の入出力信号の“１”に相当する電圧値あるいは“０”に相当する電圧値が異なる可能性があるが、閾値電圧制御レジスタＰＣＤＶＴＣＲを利用して閾値電圧ＶＴＨ、ＶＴＬの電圧値を変更できるため、監視対象外部端子として選択される外部端子の入出力信号の“１”に相当する電圧値あるいは“０”に相当する電圧値に合わせて閾値電圧制御レジスタＰＣＤＶＴＣＲを設定することで、そのような場合でも異常検出回路ＰＣＤＥＴの安定した検出動作を実現できる。
【００６１】
図５は、図３の可変遅延回路を示している。可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２は同様の内部構成を有しているため、ここでは、可変遅延回路ＶＤＬＹ１について説明する。可変遅延回路ＶＤＬＹ１は、デコーダＤＥＣ３、遅延回路ＤＬＹ１〜ＤＬＹ４、バッファＢＦ１〜ＢＦ４、デコーダＤＥＣ２およびセレクタＳＥＬ６を備えて構成されている。
【００６２】
遅延回路ＤＬＹ１は、信号ＡＮ２Ｏを所定時間遅らせて信号ＤＬＹ１Ｏとして出力する。バッファＢＦ１は、信号ＤＬＹ１Ｏを受けて信号ＢＦ１Ｏを出力する。遅延回路ＤＬＹ２は、信号ＢＦ１Ｏを所定時間遅らせて信号ＤＬＹ２Ｏとして出力する。バッファＢＦ２は、信号ＤＬＹ２Ｏを受けて信号ＢＦ２Ｏを生出力する。遅延回路ＤＬＹ３は、信号ＢＦ２Ｏを所定時間遅らせて信号ＤＬＹ３Ｏとして出力する。バッファＢＦ３は、信号ＤＬＹ３Ｏを受けて信号ＢＦ３Ｏを出力する。遅延回路ＤＬＹ４は、信号ＢＦ３Ｏを所定時間遅らせて信号ＤＬＹ４Ｏとして出力する。バッファＢＦ４は、信号ＤＬＹ４Ｏを受けて信号ＢＦ４Ｏを出力する。デコーダＤＥＣ３は、信号ＶＰＣＤＤＬＹＣＲをデコードして信号ＤＳＥＬ１〜ＤＳＥＬ４を出力する。具体的には、デコーダＤＥＣ３は、信号ＶＰＣＤＤＬＹＣＲが遅延時間ＴＤ１（ＴＤ２、ＴＤ３、ＴＤ４）を示す論理値に設定されている場合、信号ＤＳＥＬ１（ＤＳＥＬ２、ＤＳＥＬ３、ＤＳＥＬ４）を“１”に設定するとともに、信号ＤＳＥＬ１〜ＤＳＥＬ４における信号ＤＳＥＬ１（ＤＳＥＬ２、ＤＳＥＬ３、ＤＳＥＬ４）以外の信号を“０”に設定する。セレクタＳＥＬ６は、信号ＤＳＥＬ１（ＤＳＥＬ２、ＤＳＥＬ３、ＤＳＥＬ４）が“１”に設定されている場合、信号ＢＦ１Ｏ（ＢＦ２Ｏ、ＢＦ３Ｏ、ＢＦ４Ｏ）を信号ＶＤＬＹ１Ｏとして出力する。このような構成により、遅延時間制御レジスタＰＣＤＤＬＹＣＲの設定値（信号ＶＰＣＤＤＬＹＣＲ）に応じて遅延時間が変更される可変遅延回路ＶＤＬＹ１を容易に実現できる。
【００６３】
図６は、図１の異常検出制御回路を示している。異常検出制御回路ＰＣＤＣＴＬは、Ｄ型フリップフロップＤＦＦａ、ＤＦＦｂおよび割り込み信号生成回路ＩＲＱＳＧを備えて構成されている。Ｄ型フリップフロップＤＦＦ１は、クリア端子ＣＬに入力される信号ＰＣＤＥＯが“０”に設定されている場合、出力端子Ｑから出力される信号ＤＦＦ１Ｏを“０”に設定する。また、Ｄ型フリップフロップＤＦＦ１は、信号ＰＣＤＥＯが“１”に設定されている場合、クロック端子ＣＫに入力される信号ＤＥＴＳＯＯが“０”から“１”に遷移するのに伴って、入力端子Ｄに入力される“１”固定の信号を取り込んで信号ＤＦＦ１Ｏとして出力する。Ｄ型フリップフロップＤＦＦ２は、クリア端子ＣＬに入力される信号ＰＣＤＥＯが“０”に設定されている場合、出力端子Ｑから出力される信号ＤＦＦ２Ｏを“０”に設定する。また、Ｄ型フリップフロップＤＦＦ２は、信号ＰＣＤＥＯが“１”に設定されている場合、クロック端子ＣＫに入力される信号ＤＥＴＳＩＯが“０”から“１”に遷移するのに伴って、入力端子Ｄに入力される“１”固定の信号を取り込んで信号ＤＦＦ２Ｏとして出力する。
【００６４】
割り込み信号生成回路ＩＲＱＳＧは、異常検出制御レジスタＰＣＤＣＲを備えて構成されている。異常検出制御レジスタＰＣＤＣＲは、異常検出許可ビットＰＣＤＥ、出力短絡検出割り込み許可ビットＰＣＤＯＩＥ、出力短絡検出割り込み要因フラグＰＣＤＯＩＦ、リアルタイム出力短絡検出フラグＤＥＴＳＯ、入力開放検出割り込み許可ビットＰＣＤＩＩＥ、入力開放検出割り込み要因フラグＰＣＤＩＩＦおよびリアルタイム入力開放検出フラグＤＥＴＳＩを有している。異常検出許可ビットＰＣＤＥは、異常検出回路ＰＣＤＥＴの検出動作を禁止する場合に“０”に設定され、異常検出回路ＰＣＤＥＴの検出動作を許可する場合に“１”に設定される。信号ＰＣＤＥＯは、異常検出許可ビットＰＣＤＥの設定値を示す信号である。
【００６５】
出力短絡検出割り込み許可ビットＰＣＤＯＩＥは、異常検出回路ＰＣＤＥＴによる監視対象外部端子の出力短絡状態の検出に伴うＣＰＵに対する割り込み要求の発行を禁止する場合に“０”に設定され、異常検出回路ＰＣＤＥＴによる監視対象外部端子の出力短絡状態の検出に伴うＣＰＵに対する割り込み要求の発行を許可する場合に“１”に設定される。出力短絡検出割り込み要因フラグＰＣＤＯＩＦは、信号ＤＤＦ１Ｏが“０”から“１”に遷移するのに伴って“１”に設定される。また、出力短絡検出割り込み要因フラグＰＣＤＯＩＦは、ＣＰＵのライトアクセスを介して“０”に初期化可能である。リアルタイム出力短絡検出フラグＤＳＴＳＯは、信号ＤＥＴＳＯＯが“０”に設定されている場合に“０”に設定され、信号ＤＥＴＳＯＯが“１”に設定されている場合に“１”に設定される。
【００６６】
入力開放検出割り込み許可ビットＰＣＤＩＩＥは、異常検出回路ＰＣＤＥＴによる監視対象外部端子の入力開放状態の検出に伴うＣＰＵに対する割り込み要求の発行を禁止する場合に“０”に設定され、異常検出回路ＰＣＤＥＴによる監視対象外部端子の入力開放状態の検出に伴うＣＰＵに対する割り込み要求の発行を許可する場合に“１”に設定される。入力開放検出割り込み要因フラグＰＣＤＩＩＦは、信号ＤＦＦ２Ｏが“０”から“１”に遷移するのに伴って“１”に設定される。また、入力開放検出割り込み要因フラグＰＣＤＩＩＦは、ＣＰＵのライトアクセスを介して“０”に初期化可能である。リアルタイム入力開放検出フラグＤＥＴＳＩは、信号ＤＥＴＳＩＯが“０”に設定されている場合に“０”に設定され、信号ＤＥＴＳＩＯが“１”に設定されている場合に“１”に設定される。
【００６７】
割り込み発生回路ＩＲＱＳＧは、出力短絡検出割り込み許可ビットＰＣＤＯＩＥが“１”に設定されている状態で出力短絡検出割り込み要因フラグＰＣＤＯＩＦが“１”に設定された場合、信号ＩＲＱＰＣＤを“１”に設定する（ＣＰＵに対して割り込み要求を発行する）。また、割り込み発生回路ＩＲＱＳＧは、入力開放検出割り込み許可ビットＰＣＤＩＩＥが“１”に設定されている状態で入力開放検出割り込み要因フラグＰＣＤＩＩＦが“１”に設定された場合にも、信号ＩＲＱＰＣＤを“１”に設定する。
【００６８】
このような構成によれば、監視対象外部端子で出力短絡あるいは入力開放が発生した際にプログラムにより所望の処理を実行することが容易になる。また、監視対象外部端子における出力短絡あるいは入力開放の有無をリアルタイムに確認できるため、監視対象外部端子における出力短絡あるいは入力開放の発生タイミングを容易に特定することができる。
【００６９】
図７は、監視対象外部端子の切換制御を示している。例えば、外部端子Ｐ１〜Ｐ３の出力短絡の有無を時分割で検査する場合の監視対象外部端子の切換制御について説明する。例えば、外部端子Ｐ１の信号遷移時間が０．１ｕｓであり、外部端子Ｐ２の信号遷移時間が０．５ｕｓであり、外部端子Ｐ３の信号遷移時間が１．０ｕｓであるものする。
【００７０】
まず、外部端子Ｐ１の出力短絡の有無を検査するために、端子選択制御レジスタＤＰＳＥＬＣＲが外部端子Ｐ１のレジスタ値に設定され、遅延時間制御レジスタＰＣＤＤＬＹＣＲが０．１ｕｓ（遅延時間ＴＤ１に相当）のレジスタ値に設定される。これにより、外部端子Ｐ１が監視対象外部端子として選択され、外部端子Ｐ１に対して異常検出回路ＰＣＤＥＴの検出動作が実施される。可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間が０．１ｕｓに設定されることで、時刻ｔ１から時刻ｔ２までの期間（外部端子Ｐ１が信号遷移状態である期間）においては、異常検出回路ＰＣＤＥＴの検出動作が停止された状態（ｄｉｓａｂｌｅ）になる。
【００７１】
次に、時刻ｔ３において、外部端子Ｐ２の出力短絡の有無を検査するために、信号ＰＣＤＥＯ（異常検出制御レジスタＰＣＤＣＲの異常検出許可ビットＰＣＤＥ）を“０”に設定して異常検出回路ＰＣＤＥＴの検出動作を停止した後、端子選択制御レジスタＤＰＳＥＬＣＲに外部端子Ｐ２のレジスタ値を設定し、遅延時間制御レジスタＰＣＤＤＬＹＣＲに０．５ｕｓ（遅延時間ＴＤ２に相当）のレジスタ値を設定する。レジスタ設定の変更後、信号ＰＣＤＥＯを“１”に設定し、可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間（０．５ｕｓ）の経過後に異常検出回路ＰＣＤＥＴが検出動作を実施可能になる。これにより、外部端子Ｐ１から外部端子Ｐ２への監視対象外部端子の切り換え時に外部端子Ｐ２が信号遷移状態であった場合でも、異常検出回路ＰＣＤＥＴでの誤検出を防止することができる。信号ＰＣＤＥＯが“１”に設定されてから可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間が経過すると、外部端子Ｐ２に対して異常検出回路ＰＣＤＥＴの検出動作が実施される。可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間が０．５ｕｓに設定されることで、時刻ｔ４から時刻ｔ５までの期間（外部端子Ｐ２が信号遷移状態である期間）においては、異常検出回路ＰＣＤＥＴの検出動作が停止された状態になる。
【００７２】
そして、時刻ｔ６において、外部端子Ｐ３の出力短絡の有無を検査するために、信号ＰＣＤＥＯを“０”に設定して異常検出回路ＰＣＤＥＴの検出動作を停止した後、端子選択制御レジスタＤＰＳＥＬＣＲに外部端子Ｐ３のレジスタ値を設定し、遅延時間制御レジスタＰＣＤＤＬＹＣＲに１．０ｕｓ（遅延時間ＴＤ３に相当）のレジスタ値を設定する。レジスタ設定の変更後、信号ＰＣＤＥＯを“１”に設定し、可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間（１．０ｕｓ）の経過後に異常検出回路ＰＣＤＥＴが検出動作を実施可能になる。但し、図７の例では、信号ＰＣＤＥＯが“１”に設定されてから可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間が経過する前に外部端子Ｐ３が信号遷移状態になり、時刻ｔ７から時刻ｔ８までの期間（外部端子Ｐ３が信号遷移状態である期間）において信号遷移状態に対する誤検出防止機能が働くため、異常検出回路ＰＣＤＥＴの検出動作の停止期間が延長され、外部端子Ｐ３に対して異常検出回路ＰＣＤＥＴの検出動作が時刻ｔ８から実施される。これにより、外部端子Ｐ２から外部端子Ｐ３への監視対象外部端子の切り換え時に外部端子Ｐ３が信号遷移状態であった場合でも、異常検出回路ＰＣＤＥＴでの誤検出を防止することができる。
【００７３】
ここで、マイクロコントローラＭＣＵにおける端子選択回路ＤＰＳＥＬおよび異常検出回路ＰＣＤＥＴの組み合わせによる出力短絡検出機能の有用性について説明する。マイクロコントローラＭＣＵには、プログラム格納用メモリとしてフラッシュメモリが搭載されている。プログラムを容易に書き換えられるというフラッシュメモリの特徴を利用することで、プログラムのデバッグやシステムの動作確認の際に、４個の評価システムで外部端子Ｐ１〜Ｐ４を別々に監視し、４個の評価システム全体で外部端子Ｐ１〜Ｐ４を同時に監視するような手法、あるいは、１個の評価システムで監視対象外部端子を変更しながら外部端子Ｐ１〜Ｐ４を時分割に監視するような手法を採用することができる。更に、マイクロコントローラＭＣＵが製品として量産されている段階あるいはマイクロコントローラＭＣＵがユーザにより使用されている段階であっても、フラッシュメモリのプログラムを書き換えることで、外部端子Ｐ１〜Ｐ４における所望の外部端子について出力短絡の有無を検査することができる。即ち、マイクロコントローラＭＣＵの出力短絡検出機能をフィールドでのデバッグ手段として利用することもできる。また、マイクロコントローラの外部端子の中で出力短絡が発生する可能性がある外部端子の数やマイクロコントローラの外部端子において出力短絡が発生する可能性があるタイミングは限定されている場合が多い。このような場合、マイクロコントローラＭＣＵでは、システム動作に合わせたソフトウェア制御により、監視対象外部端子を変更しながら外部端子Ｐ１〜Ｐ４を時分割に監視することで、外部端子Ｐ１〜Ｐ４の出力短絡状態を検出することができる。例えば、出力短絡検出機能をタイマ割り込み機能と組み合わせて使用することで、監視対象外部端子、閾値電圧ＶＴＨ、ＶＴＬおよび可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間を定期的に変更することが可能になる。このように、マイクロコントローラＭＣＵにおける端子選択回路ＤＰＳＥＬおよび異常検出回路ＰＣＤＥＴの組み合わせによる出力短絡検出機能の有用性は十分である。
【００７４】
次に、マイクロコントローラＭＣＵにおける端子選択回路ＤＰＳＥＬおよび異常検出回路ＰＣＤＥＴの組み合わせによる入力開放検出機能の有用性について説明する。一般に、入力開放検出機能は、マイクロコントローラの動作中に機械的な振動等に起因して外部端子と外部回路との接続が遮断されることでマイクロコントローラが正常に動作できなくなるような状況を回避するために、システムの異常通知や自己診断等に使用される。例えば、システムの起動時にマイクロコントローラの外部端子における入力開放の有無を検査した後に後続の処理を実行するような場合を考えると、外部端子毎に入力開放検出回路を設ければ、自己診断に要する時間は短くて済むが、マイクロコントローラのチップ面積が非常に大きくなる。また、システムの起動時にマイクロコントローラの外部端子における入力開放の有無を検査するような場合には、複数の外部端子について入力開放の有無を同時に検査する必要性は低く、複数の外部端子について入力開放の有無を時分割に検査しても問題はない。従って、マイクロコントローラＭＣＵにおける端子選択回路ＤＰＳＥＬおよび異常検出回路ＰＣＤＥＴの組み合わせによる入力開放検出機能の有用性も十分である。
【００７５】
以上のような第１実施形態では、外部端子Ｐ１〜Ｐ４に共通して異常検出回路ＰＣＤＥＴが設けられるため、マイクロコントローラＭＣＵのチップ面積を削減でき、大幅なコストダウンを実現できる。また、異常検出回路ＰＣＤＥＴにおいては、閾値電圧生成回路ＰＣＤＶＴＧおよびコンパレータＣＭＰ１、ＣＭＰ２が出力短絡検出機能および入力開放検出機能で共用されるため、異常検出回路ＰＣＤＥＴの回路面積を削減することができ、その結果、製造コストを抑えることができる。
【００７６】
異常検出回路ＰＣＤＥＴにより監視対象外部端子の出力短絡状態あるいは入力開放状態が検出された際、端子選択制御レジスタＤＰＳＥＬＣＲを参照することで、外部端子Ｐ１〜Ｐ４の中で監視対象外部端子として選択されている外部端子を判別できるため、例えば、割り込み処理を利用して適切な処理を実行することが可能になる。また、閾値電圧制御レジスタＰＣＤＶＴＣＲを利用して閾値電圧ＶＴＨ、ＶＴＬの電圧値を変更できるため、監視対象外部端子の入出力信号の“１”に相当する電圧値あるいは“０”に相当する電圧値に合わせて閾値電圧制御レジスタＰＣＤＶＴＣＲを設定することで、外部端子Ｐ１〜Ｐ４の入出力信号の“１”に相当する電圧値あるいは“０”に相当する電圧値が異なる場合でも異常検出回路ＰＣＤＥＴの安定した検出動作を実現できる。閾値電圧生成回路ＰＣＤＶＴＧにおいては、異常検出回路ＰＣＤＥＴの検出動作が禁止されている場合にスイッチＳＷ３がオフ状態になるため、無駄な電流の消費を回避することができる。
【００７７】
更に、異常検出回路ＰＣＤＥＴにおいては、可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２が設けられることで、監視対象外部端子が信号遷移状態である期間にて信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏが信号ＤＥＴＳＯＯに関与しなくなるため、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることを防止できる。また、遅延時間制御レジスタＰＣＤＤＬＹＣＲを利用して可変遅延回路ＶＤＬＹ１、ＶＤＬＹ２の遅延時間を変更できるため、監視対象外部端子の信号遷移時間に合わせて遅延時間制御レジスタＰＣＤＤＬＹＣＲを設定することで、外部端子Ｐ１〜Ｐ４の信号遷移時間が異なる場合にも柔軟に対応できる。
【００７８】
図８は、本発明の第２実施形態を示している。第２実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第２実施形態のマイクロコントローラは、第１実施形態（図１）のマイクロコントローラＭＣＵにおいて異常検出回路ＰＣＤＥＴを異常検出回路ＰＣＤＥＴ’に置き換えて構成されている。
【００７９】
異常検出回路ＰＣＤＥＴ’は、ＡＮＤ回路ＡＮ１〜ＡＮ３、ＡＮ６〜ＡＮ９、インバータＩＶ３、ＩＶ８、閾値電圧発生回路ＰＣＤＶＴＧ、コンパレータＣＭＰ１、ＣＭＰ２、ＯＲ回路ＯＲ１、ＮＯＲ回路ＮＲ２、スイッチＳＷ１、ＳＷ２、ブルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２を備えて構成されている。ＡＮＤ回路ＡＮ８は、信号ＡＮ２Ｏが“０”に設定されている場合に信号ＣＭＰ１Ｏとは無関係に信号ＡＮ８Ｏを“０”に設定し、信号ＡＮ２Ｏが“１”に設定されている場合に信号ＣＭＰ１Ｏを信号ＡＮ８Ｏとして出力する。ＡＮＤ回路ＡＮ９は、信号ＡＮ３Ｏが“０”に設定されている場合に信号ＣＭＰ２Ｏとは無関係に信号ＡＮ９Ｏを“０”に設定し、信号ＡＮ３Ｏが“１”に設定されている場合に信号ＣＭＰ２Ｏを信号ＡＮ９Ｏとして出力する。ＯＲ回路ＯＲ１は、信号ＡＮ８Ｏ、ＡＮ９Ｏの双方が“０”に設定されている場合に信号ＤＥＴＳＯＯを“０”に設定し、信号ＡＮ８Ｏ、ＡＮ９Ｏの少なくとも一方が“１”に設定されている場合に信号ＤＥＴＳＯＯを“１”に設定する。
【００８０】
このような構成の異常検出回路ＰＣＤＥＴ’では、異常検出回路ＰＣＤＥＴ’の検出動作が許可されており、監視対象外部端子に対応する入出力回路が出力回路として機能している場合（信号ＰＣＤＥＯが“１”に設定されており、信号ＤＤＲＳＯが“１”に設定されている場合）、以下のように監視対象外部端子の出力短絡状態が検出される。信号ＰＤＲＳＯが“０”に設定されている場合には、信号ＡＮ２Ｏが“０”に設定されるため、信号ＣＭＰ１Ｏとは無関係に信号ＡＮ８Ｏが“０”に設定されている。また、信号ＰＤＲＳＯが“０”に設定されている場合には、信号ＰＤＲＳＯＸが“１”に設定されるため、信号ＡＮ３Ｏが“１”に設定され、その結果、信号ＣＭＰ２Ｏが信号ＡＮ９Ｏとして出力されている。なお、信号ＮＲ２Ｏが“０”に設定されるため、スイッチＳＷ１、ＳＷ２がオフ状態になり、その結果、プルアップ抵抗Ｒ１およびプルダウン抵抗Ｒ２は信号線ＩＮＯＵＴＳＯから切り離されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号ＩＮＯＵＴＳＯの電圧が接地線ＧＮＤの電圧から上昇して閾値電圧ＶＴＬより高くなった時点で信号ＣＭＰ２Ｏが“０”から“１”に遷移する。このため、信号ＡＮ９Ｏが“０”から“１”に遷移し、その結果、信号ＤＥＴＳＯＯが“０”から“１”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【００８１】
一方、信号ＰＤＲＳＯが“１”に設定されている場合には、信号ＰＤＲＳＯＸが“０”に設定されるため、信号ＡＮ３Ｏが“０”に設定され、その結果、信号ＣＭＰ２Ｏとは無関係に信号ＡＮ９Ｏが“０”に設定されている。また、信号ＰＤＲＳＯが“１”に設定されている場合には、信号ＡＮ２Ｏが“１”に設定されため、信号ＣＭＰ１Ｏが信号ＡＮ８Ｏとして出力されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号ＩＮＯＵＴＳＯの電圧が電源線ＶＤＤの電圧から下降して閾値電圧ＶＴＨより低くなった時点で信号ＣＭＰ１Ｏが“０”から“１”に遷移する。このため、信号ＡＮ８Ｏが“０”から“１”に遷移し、その結果、信号ＤＥＴＳＯＯが“０”から“１”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【００８２】
また、異常検出回路ＰＣＤＥＴ’の検出動作が禁止されている場合（信号ＰＣＤＥＯが“０”に設定されている場合）あるいは監視対象外部端子に対応する入出力回路が入力回路として機能している場合（信号ＤＤＲＳＯが“０”に設定されている場合）、信号ＡＮ２Ｏ、ＡＮ３Ｏが“０”に設定されるため、信号ＣＭＰ１Ｏとは無関係に信号ＡＮ８Ｏが“０”に設定され、信号ＣＭＰ２Ｏとは無関係に信号ＡＮ９Ｏが“０”に設定される。従って、信号ＣＭＰ１Ｏ、ＣＭＰ２Ｏに応じて信号ＤＥＴＳＯＯが“１”に設定されることはない。
【００８３】
以上のような第２実施形態でも、第１実施形態と同様の効果が得られる。
【００８４】
図９は、本発明の第３実施形態を示している。第３実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第３実施形態のマイクロコントローラは、第１実施形態（図１）のマイクロコントローラＭＣＵにおいて入出力回路ＩＯ１を入出力回路ＩＯ１’に置き換えて構成されている。
【００８５】
入出力回路ＩＯ１’は、入出力回路ＩＯ１においてＯＲ回路ＯＲ２およびセレクタＳＥＬ７を追加して構成されている。ＯＲ回路ＯＲ２は、信号ＵＡＲＴＯＥが“０”に設定されている場合に信号ＤＤＲ１Ｏを信号ＯＲ２Ｏとして出力し、信号ＵＡＲＴＯＥが“１”に設定されている場合に信号ＤＤＲ１Ｏとは無関係に信号ＯＲ２Ｏを“１”に設定する。ＮＡＮＤ回路ＮＡ１１およびインバータＩＶ１１には、信号ＤＤＲ１Ｏに代えて信号ＯＲ２Ｏが入力されている。また、図示を省略しているが、端子選択回路ＤＰＳＥＬにも、信号ＤＤＲ１Ｏに代えて信号ＯＲ２Ｏが入力されている。セレクタＳＥＬ７は、信号ＵＡＲＴＯＥが“０”に設定されている場合に信号ＰＤＲ１Ｏを信号ＳＥＬ７Ｏとして出力し、信号ＵＡＲＴＯＥが“１”に設定されている場合に信号ＵＡＲＴＯを信号ＳＥＬ７Ｏとして出力する。ＮＡＮＤ回路ＮＡ１１およびＮＯＲ回路ＮＲ１１には、信号ＰＤＲ１Ｏに代えて信号ＳＥＬ７Ｏが入力されている。なお、信号ＵＡＲＴＯは、ＵＡＲＴの送信データ信号である。信号ＵＡＲＴＯＥは、ＵＡＲＴの出力イネーブル信号であり、ＵＡＲＴの送信データ信号の出力を禁止する場合に“０”に設定され、ＵＡＲＴの送信データ信号の出力を許可する場合に“１”に設定される。
【００８６】
このような構成の入出力回路ＩＯ１’では、信号ＵＡＲＴＯＥが“０”に設定されている場合、信号ＤＤＲ１Ｏが信号ＯＲ２Ｏとして出力されるとともに、信号ＰＤＲ１Ｏが信号ＳＥＬ７１Ｏとして出力される。従って、入出力回路ＩＯ１’は、入出力回路ＩＯ１と同様に、汎用出力回路または汎用入力回路として機能する。一方、信号ＵＡＲＴＯＥが“１”に設定されている場合、信号ＯＲ２Ｏが“１”に設定されるとともに、信号ＵＡＲＴＯが信号ＳＥＬ７１Ｏとして出力される。従って、入出力回路ＩＯ１’は、ＵＡＲＴ用出力回路として機能する。
【００８７】
以上のような第３実施形態では、汎用入出力機能に加えてＵＡＲＴ用出力機能を有する入出力回路ＩＯ１’が設けられているが、入出力回路ＩＯ１’がＵＡＲＴ用出力回路として機能する場合でも、入出力回路ＩＯ１’が汎用出力回路として機能する場合と同様に外部端子Ｐ１の出力短絡状態を検出でき、第１実施形態と同様の効果が得られる。
【００８８】
図１０は、本発明の第４実施形態を示している。第４実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、第１実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第４実施形態のマイクロコントローラは、第１実施形態（図１）のマイクロコントローラＭＣＵにおいて入出力回路ＩＯ１〜ＩＯ４を入出力回路ＩＯ１”〜ＩＯ４”に置き換えて構成されている。
【００８９】
入出力回路ＩＯｉ”（ｉ＝１，２，３，４）は、入出力回路ＩＯｉにおいてＮＡＮＤ回路ＮＡ２ｉおよびＡＮＤ回路ＡＮＡｉを追加して構成されている。ＮＡＮＤ回路ＮＡ２ｉは、信号ＰＳＥＬｉが“０”に設定されている場合に信号ＤＥＴＳＯＯとは無関係に信号ＮＡ２ｉＯを“１”に設定し、信号ＰＳＥＬｉが“１”に設定されている場合に信号ＤＥＴＳＯＯを反転させて信号ＮＡ２ｉＯとして出力する。ＡＮＤ回路ＡＮＡｉは、信号ＮＡ２ｉＯが“０”に設定されている場合に信号ＤＤＲｉＯとは無関係に信号ＡＮＡｉＯを“０”に設定し、信号ＮＡ２ｉＯが“１”に設定されている場合に信号ＤＤＲｉＯを信号ＡＮＡｉＯとして出力する。ＮＡＮＤ回路ＮＡ１ｉおよびインバータＩＮＶ１ｉには、信号ＤＤＲｉＯに代えて信号ＡＮＡｉＯが入力されている。
【００９０】
このような構成の入出力回路ＩＯｉ”では、端子選択回路ＤＰＳＥＬにおいて外部端子Ｐｉが監視対象外部端子として選択されていなければ、信号ＰＳＥＬｉが“０”に設定されるため、信号ＮＡ２ｉＯが“１”に設定され、その結果、信号ＤＤＲｉＯが信号ＡＮＡｉＯとして出力される。従って、入出力回路ＩＯｉ”は入出力回路ＩＯｉと同様に動作する。一方、端子選択回路ＤＰＳＥＬにおいて外部端子Ｐｉが監視対象外部端子として選択されていれば、信号ＰＳＥＬｉが“１”に設定されるため、信号ＮＡ２ｉＯが信号ＤＥＴＳＯＯとは反対の論理値に設定される。入出力回路ＩＯｉ”が出力回路として機能している場合（信号ＤＤＲｉＯが“１”に設定されている場合）、外部端子Ｐｉで出力短絡が発生していなければ、信号ＤＥＴＳＯＯが“０”に設定されるため、信号ＮＡ２ｉＯが“１”に設定され、その結果、信号ＤＤＲｉＯが信号ＡＮＡｉＯとして出力される。従って、入出力回路ＩＯｉ”は入出力回路ＩＯｉと同様に動作する。また、外部端子Ｐｉで出力短絡が発生していれば、信号ＤＥＴＳＯＯが“１”に設定されるため、信号ＮＡ２ｉＯが“０”に設定され、その結果、信号ＤＤＲｉＯとは無関係に信号ＡＮＡｉＯが“０”に設定される。これにより、信号ＮＡ１ｉＯが“１”に設定されるとともに、信号ＮＲ１ｉＯが“０”に設定されるため、ＰＭＯＳトランジスタＰＭ１ｉおよびＮＭＯＳトランジスタＮＭ１ｉがオフ状態になり、入出力回路ＩＯｉ”の信号出力動作が停止される。
【００９１】
以上のような第４実施形態では、第１実施形態と同様の効果が得られるうえに、監視対象外部端子の出力短絡状態が検出された場合、監視対象外部端子に対応する入出力回路の信号出力動作を自動的に（ソフトウェアを介すことなく）停止させることができる。この結果、出力短絡状態が検出された外部端子に接続されるトランジスタに異常電流が流れる期間を短くすることができる。換言すれば、出力短絡状態が検出された外部端子に接続されるトランジスタがダメージを受ける期間を短くすることができる。
【００９２】
以上の実施形態において説明した発明を整理し、付記として以下に開示する。
（付記１）
複数の外部端子に対応して設けられる複数の入出力回路と、
前記複数の外部端子の中から監視対象外部端子を可変指定する監視対象指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の出力短絡状態を検出し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子の入力開放状態を検出する異常検出回路とを備えることを特徴とする半導体集積回路。
（付記２）
付記１に記載の半導体集積回路において、
前記異常検出回路は、
基準電圧を生成する基準電圧生成回路と、
前記監視対象外部端子の電圧を前記基準電圧と比較する電圧比較回路と、
前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子に接続されるプルアップ抵抗およびプルダウン抵抗と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記電圧比較回路の比較結果に応じて出力短絡検出信号を出力し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記電圧比較回路の比較結果に応じて入力開放検出信号を出力する検出信号出力回路とを備えることを特徴とする半導体集積回路。
（付記３）
付記２に記載の半導体集積回路において、
前記基準電圧生成回路は、前記基準電圧の電圧値を可変指定する電圧値指定回路を備えることを特徴とする半導体集積回路。
（付記４）
付記２に記載の半導体集積回路において、
前記異常検出回路の検出動作を許可／禁止する異常検出制御回路を備え、
前記基準電圧生成回路は、前記異常検出制御回路により前記異常検出回路の検出動作が禁止されている場合に前記基準電圧生成回路の電圧生成動作を停止させる電圧生成停止回路を備えることを特徴とする半導体集積回路。
（付記５）
付記１に記載の半導体集積回路において、
前記異常検出回路は、
検出禁止時間を可変指定する時間指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の信号遷移に合わせて前記異常検出回路の検出動作を前記検出禁止時間停止させる検出停止回路とを備えることを特徴とする半導体集積回路。
（付記６）
付記１に記載の半導体集積回路において、
前記異常検出回路による前記監視対象外部端子の出力短絡状態または入力開放状態の検出に応答して中央処理回路に対する割り込み要求を発行する割り込み要求発行回路を備えることを特徴とする半導体集積回路。
（付記７）
付記１に記載の半導体集積回路において、
前記複数の入出力回路は、汎用入出力機能に加えて周辺回路用出力機能を有する入出力回路を含むことを特徴とする半導体集積回路。
（付記８）
付記１に記載の半導体集積回路において、
前記異常検出回路による前記監視対象外部端子の出力短絡状態の検出に応答して前記監視対象外部端子に対応する入出力回路の信号出力動作を停止させる出力停止回路を備えることを特徴とする半導体集積回路。
【００９３】
以上、本発明について詳細に説明してきたが、前述の実施形態は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１実施形態を示す説明図である。
【図２】図１の端子選択回路を示す説明図である。
【図３】図１の異常検出回路を示す説明図である。
【図４】図３の閾値電圧生成回路を示す説明図である。
【図５】図３の可変遅延回路を示す説明図である。
【図６】図１の異常検出制御回路を示す説明図である。
【図７】監視対象外部端子の切換制御を示す説明図である。
【図８】本発明の第２実施形態を示す説明図である。
【図９】本発明の第３実施形態を示す説明図である。
【図１０】本発明の第４実施形態を示す説明図である。
【図１１】ＬＳＩの入出力ポート回路の従来例（その１）を示す説明図である。
【図１２】ＬＳＩの入出力ポート回路の従来例（その２）を示す説明図である。
【図１３】ＬＳＩの入出力ポート回路の従来例（その３）を示す説明図である。
【図１４】ＬＳＩの入力ポート回路の従来例（その１）を示す説明図である。
【図１５】ＬＳＩの入力ポート回路の従来例（その２）を示す説明図である。
【符号の説明】
【００９５】
ＡＮ１〜ＡＮ９、ＡＮＡ１〜ＡＮＡ４‥ＡＮＤ回路；ＢＦ１〜ＢＦ４‥バッファ；ＣＭＰ１、ＣＰＭ２‥コンパレータ；ＤＤＲ１〜ＤＤＲ４‥方向レジスタ；ＤＥＣ１〜ＤＥＣ３‥デコーダ；ＤＦＦ１、ＤＦＦ２‥Ｄ型フリップフロップ；ＤＬＹ１〜ＤＬＹ４‥遅延回路；ＤＰＳＥＬ‥端子選択回路；ＤＰＳＥＬＣＲ‥端子選択制御レジスタ；ＩＯ１〜ＩＯ４、ＩＯ１’、ＩＯ１”〜ＩＯ４”‥入出力回路；ＩＲＱＳＧ‥割り込み信号生成回路；ＩＶ１１〜ＩＶ１４、ＩＶ２１〜ＩＶ２４、ＩＶ３〜ＩＶ８‥インバータ；ＭＣＵ‥マイクロコントローラ；ＮＡ１１〜ＮＡ１４、ＮＡ２１〜ＮＡ２４‥ＮＡＮＤ回路；ＮＭ１１〜ＮＭ１４、ＮＭ２、ＮＭ３‥ＮＭＯＳトランジスタ；ＮＲ１１〜ＮＲ１４、ＮＲ２‥ＮＯＲ回路；ＯＲ１、ＯＲ２‥ＯＲ回路；Ｐ１〜Ｐ４‥外部端子；ＰＣＤＣＲ‥異常検出制御レジスタ；ＰＣＤＣＴＬ‥異常検出制御回路；ＰＣＤＤＬＹＣＲ‥遅延時間制御レジスタ；ＰＣＤＥＴ、ＰＣＤＥＴ’‥異常検出回路；ＰＣＤＶＴＣＲ‥閾値電圧制御レジスタ；ＰＣＤＶＴＧ‥閾値電圧生成回路；ＰＤＲ１〜ＰＤＲ４‥データレジスタ；ＰＭ１１〜ＰＭ１４、ＰＭ２、ＰＭ３‥ＰＭＯＳトランジスタ；Ｒ１‥プルアップ抵抗；Ｒ２‥プルダウン抵抗；ＲＤ１〜ＲＤ９‥分圧抵抗；ＳＥＬ１〜ＳＥＬ７‥セレクタ；ＳＳ１１〜ＳＳ１４、ＳＳ２１〜ＳＳ２４、ＳＳ３１〜ＳＳ３４、ＳＳ４１〜ＳＳ４４、ＳＳ５１〜ＳＳ５４、ＳＷ１〜ＳＷ３‥スイッチ；ＶＤＬＹ１、ＶＤＬＹ２‥可変遅延回路
【図１】
0005194804.tif 000002
【図２】
0005194804.tif 000003
【図３】
0005194804.tif 000004
【図４】
0005194804.tif 000005
【図５】
0005194804.tif 000006
【図６】
0005194804.tif 000007
【図７】
0005194804.tif 000008
【図８】
0005194804.tif 000009
【図９】
0005194804.tif 000010
【図１０】
0005194804.tif 000011
【図１１】
0005194804.tif 000012
【図１２】
0005194804.tif 000013
【図１３】
0005194804.tif 000014
【図１４】
0005194804.tif 000015
【図１５】
0005194804.tif 000016