説明

半導体集積回路

【課題】 半導体集積回路においてコストの増大を伴うことなく外部端子の異常状態(出力短絡状態および入力開放状態)を検出する技術を提供する。
【解決手段】 半導体集積回路(MCU)は、複数の入出力回路(IO1〜IO4)、監視対象指定回路(DPSEL)および異常検出回路(PCDET)を備える。複数の入出力回路(IO1〜IO4)は、複数の外部端子(P1〜P4)に対応して設けられる。監視対象指定回路(DPSEL)は、複数の外部端子(P1〜P4)の中から監視対象外部端子を可変指定する。異常検出回路(PCDET)は、監視対象外部端子に対応する入出力回路が出力回路として機能している場合に監視対象外部端子の出力短絡状態を検出し、監視対象外部端子に対応する入出力回路が入力回路として機能している場合に監視対象外部端子の入力開放状態を検出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコントローラ(MCU:Micro Controller Unit)等の半導体集積回路に関する。
【背景技術】
【0002】
マイクロコントローラ等のLSI(Large Scale Integration)を使用したシステムでは、ソフトウェアあるいはハードウェアの設計ミスに起因してLSIの外部端子で出力短絡(信号衝突)が発生することがある。LSIにおいては、外部端子で出力短絡が発生すると、外部端子に接続される内部素子(トランジスタ)に過電流が流れ、内部素子が破壊されたり、内部素子の寿命が短縮されたりする等の問題が生じる。このため、LSIにおいて外部端子の出力短絡状態を検出する技術が提案されている(例えば、特許文献1、2を参照)。
【0003】
図11は、LSIの入出力ポート回路の従来例(その1)を示している。図11の入出力ポート回路は、特許文献2(図5)に開示されたものに相当し、方向レジスタDDR、データレジスタPDRおよび入出力回路IOを備えて構成されている。方向レジスタDDRは、入出力回路IOを入力回路として使用する場合に“0”に設定され、入出力回路IOを出力回路として使用する場合に“1”に設定される。信号DDROは、方向レジスタDDRの設定値を示す信号である。データレジスタPDRは、入出力回路IOを出力回路として使用する際、“0”に設定された信号を外部端子Pから出力する場合に“0”に設定され、“1”に設定された信号を外部端子Pから出力する場合に“1”に設定される。信号PDROは、データレジスタPDRの設定値を示す信号である。
【0004】
入出力回路IOは、NAND回路NAa、インバータIVa、IVb、NOR回路NRa、PMOSトランジスタPMaおよびNMOSトランジスタNMaを備えて構成されている。NAND回路NAaは、信号DDROが“0”に設定されている場合に信号PDROとは無関係に信号NAaOを“1”に設定し、信号DDROが“1”に設定されている場合に信号PDROを反転させて信号NAaOとして出力する。インバータIVaは、信号DDROを反転させて信号IVaOとして出力する。NOR回路NRaは、信号IVaOが“0”に設定されている場合に信号PDROを反転させて信号NRaOとして出力し、信号IVaOが“1”に設定されている場合に信号PDROとは無関係に信号NRaOを“0”に設定する。PMOSトランジスタPMaは、外部端子Pに接続される信号線INOUT(信号INOUTを伝送する信号線)と電源線VDD(例えば、3V)との間に接続されている。NMOSトランジスタNMaは、信号線INOUTと接地線GND(0V)との間に接続されている。PMOSトランジスタPMaの制御端子には信号NAaOが入力され、NMOSトランジスタNMaの制御端子には信号NRaOが入力されている。インバータIVbは、信号INOUTを反転させて信号IVbOとして出力する。
【0005】
このような構成の入出力回路IOでは、信号DDROが“1”に設定されると、信号NAaO、NRaOが信号PDROとは反対の論理値に設定される。信号PDROが“0”に設定されている場合には、信号NAaO、NRaOが“1”に設定されるため、PMOSトランジスタPMaがオフ状態になるとともに、NMOSトランジスタNMaがオン状態になり、その結果、外部端子Pから出力される信号INOUTが“0”に設定される。また、信号PDROが“1”に設定されている場合には、信号NAaO、NRaOが“0”に設定されるため、PMOSトランジスタPMaがオン状態になるとともに、NMOSトランジスタNMaがオフ状態になり、その結果、外部端子Pから出力される信号INOUTが“1”に設定される。このように、入出力回路IOは、信号DDROが“1”に設定されている場合に出力回路として機能する。一方、信号DDROが“0”に設定されると、信号PDROとは無関係に、信号NAaOが“1”に設定されるとともに、信号NRaOが“0”に設定されるため、PMOSトランジスタPMaおよびNMOSトランジスタNMaがオフ状態になる。これにより、外部端子Pに入力される信号INOUTがインバータIVbを介してLSIの内部回路に出力される。このように、入出力回路IOは、信号DDROが“0”に設定されている場合に入力回路として機能する。
【0006】
以上のような入出力ポート回路によれば、プログラムで1本の外部端子を入力端子としても出力端子としても使用することができ、柔軟なプログラミングが可能になる。また、1本の外部端子で入力端子および出力端子を兼用することが可能になるため、外部端子数を削減でき、その結果、コストの低減を実現できるという効果も得られる。
【0007】
図12は、LSIの入出力ポート回路の従来例(その2)を示している。図12の入出力ポート回路は、図11の入出力ポート回路においてコンパレータCMPa、CMPb、インバータIVc、AND回路ANa、ANbおよびOR回路ORaにより具現される出力短絡検出回路(外部端子Pの出力短絡状態を検出する回路)を追加して構成されている。この出力短絡検出回路は、特許文献1(図2)に開示されたものに相当する。
【0008】
コンパレータCMPaは、信号INOUTの電圧が閾値電圧VTHaより高い場合に信号CMPaOを“0”に設定し、信号INOUTの電圧が閾値電圧VTHaより低い場合に信号CMPaOを“1”に設定する。コンパレータCMPbは、信号INOUTの電圧が閾値電圧VTLa(VTLa<VTHa)より低い場合に信号CMPbOを“0”に設定し、信号INOUTの電圧が閾値電圧VTLaより高い場合に信号CMPbOを“1”に設定する。インバータIVcは、信号NAaOを反転させて信号NAaOXとして出力する。AND回路ANaは、信号NAaOXが“0”に設定されている場合に信号CMPaOとは無関係に信号SSHを“0”に設定し、信号NAaOXが“1”に設定されている場合に信号CMPaOを信号SSHとして出力する。AND回路ANbは、信号NRaOが“0”に設定されている場合に信号CMPbOとは無関係に信号SSLを“0”に設定し、信号NRaOが“1”に設定されている場合に信号CMPbOを信号SSLとして出力する。OR回路ORaは、信号SSH、SSLの双方が“0”に設定されている場合に信号SSを“0”に設定し、信号SSH、SSLの少なくとも一方が“1”に設定されている場合に信号SSを“1”に設定する。
【0009】
このような構成の出力短絡検出回路では、入出力回路IOが出力回路として機能している場合(信号DDROが“1”に設定されている場合)、以下のように外部端子Pの出力短絡状態が検出される。信号PDROが“1”に設定されている場合(入出力回路IOのPMOSトランジスタPMaがオン状態である場合)、外部端子Pに対して別のLSIから“0”に設定された信号が出力されるようなシステム設計ミスが存在すると、外部端子Pで出力短絡が発生する。このような場合、入出力回路IOにより外部端子P(信号線INOUT)が“1”(高レベル)に駆動されているにも拘わらず、別のLSIにより外部端子P(信号線INOUT)が“0”(低レベル)に駆動されるため、入出力回路IOのPMOSトランジスタPMaに大電流が流れ、別のLSIのトランジスタにも大電流が流れる。このとき、信号INOUTの電圧は、外部端子Pで出力短絡が発生していない場合に比べて低くなる。そこで、例えば、閾値電圧VTHaを電源線VDDの電圧より0.5V低く設定し、外部端子Pでの出力短絡の発生に伴って信号INOUTの電圧が電源線VDDの電圧から下降して閾値電圧VTHaより低くなると、コンパレータCMPaにおいて信号CMPaOが“1”に設定されるようにする。信号PDROが“1”に設定されている場合、信号NAaOXが“1”に設定されるため、信号CMPaOが“1”に設定されるのに伴って信号SSHが“1”に設定され、その結果、信号SSが“1”に設定される。これにより、外部端子Pの出力短絡状態が検出される。
【0010】
また、信号PDROが“0”に設定されている場合(入出力回路IOのNMOSトランジスタNMaがオン状態である場合)、外部端子Pに対して別のLSIから“1”に設定された信号が出力されるようなシステム設計ミスが存在すると、外部端子Pで出力短絡が発生する。このような場合、入出力回路IOにより外部端子P(信号線INOUT)が“0”に駆動されているにも拘わらず、別のLSIにより外部端子P(信号線INOUT)が“1”に駆動されるため、入出力回路IOのNMOSトランジスタNMaに大電流が流れ、別のLSIのトランジスタにも大電流が流れる。このとき、信号INOUTの電圧は、外部端子Pで出力短絡が発生していない場合に比べて高くなる。そこで、例えば、閾値電圧VTLaを接地線GNDの電圧より0.5V高く設定し、外部端子Pでの出力短絡の発生に伴って信号INOUTの電圧が接地線GNDの電圧から上昇して閾値電圧VTLaより高くなると、コンパレータCMPbにおいて信号CMPbOが“1”に設定されるようにする。信号PDROが“0”に設定されている場合、信号NRaOが“1”に設定されるため、信号CMPbOが“1”に設定されるのに伴って信号SSLが“1”に設定され、その結果、信号SSが“1”に設定される。これにより、外部端子Pの出力短絡状態が検出される。
【0011】
しかしながら、現実には、外部端子Pで出力短絡が発生していない場合でも、データレジスタPDRの設定値の変更に伴って信号INOUTが遷移する際には、信号INOUTの電圧が閾値電圧VTHaより低い状態あるいは信号INOUTの電圧が閾値電圧VTLaより高い状態が存在する。従って、データレジスタPDRの設定値の変更に伴う信号INOUTの遷移に起因して信号SSが“1”に設定されることを回避するためのタイミング制御回路等を設ける必要がある。
【0012】
図13は、LSIの入出力ポート回路の従来例(その3)を示している。図13の入出力ポート回路は、図11の入出力ポート回路においてAND回路ANc〜ANf、インバータIVd〜IVh、遅延回路DLYa、DLYb、ENOR回路ENRa、ENRb、コンパレータCMPc、CMPd、NMOSトランジスタNMb、NMcおよびPMOSトランジスタPMb、PMcにより具現される出力短絡検出回路を追加して構成されている。この出力短絡検出回路は、特許文献2(図4)に開示されたものに相当する。
【0013】
AND回路ANcは、信号DDROが“0”に設定されている場合に信号PDROとは無関係に信号ANcOを“0”に設定し、信号DDROが“1”に設定されている場合に信号PDROを信号ANcOとして出力する。インバータIVdは、信号PDROを反転させて信号PDROXとして出力する。AND回路ANdは、信号DDROが“0”に設定されている場合に信号PDROXとは無関係に信号ANdOを“0”に設定し、信号DDROが“1”に設定されている場合に信号PDROXを信号ANdOとして出力する。遅延回路DLYaは、信号ANcOを所定時間遅らせて信号DLYaOとして出力する。遅延回路DLYbは、信号ANdOを所定時間遅らせて信号DLYbOとして出力する。ENOR回路ENRaは、信号PDRO、DLYaOの論理値が一致しない場合に信号ENRaOを“0”に設定し、信号PDRO、DLYaOの論理値が一致する場合に信号ENRaOを“1”に設定する。ENOR回路ENRbは、信号PDROX、DLYbOの論理値が一致しない場合に信号ENRbOを“0”に設定し、信号PDROX、DLYbOの論理値が一致する場合に信号ENRbOを“1”に設定する。AND回路ANeは、信号ENRaOが“0”に設定されている場合に信号PDROとは無関係に信号ANeOを“0”に設定し、信号ENRaOが“1”に設定されている場合に信号PDROを信号ANeOとして出力する。AND回路ANfは、信号ENRbOが“0”に設定されている場合に信号PDROXとは無関係に信号ANfOを“0”に設定し、信号ENRbOが“1”に設定されている場合に信号PDROXを信号ANfOとして出力する。インバータIVeは、信号ANeOを反転させて信号ANeOXとして出力する。インバータIVfは、信号ANfOを反転させて信号ANfOXとして出力する。
【0014】
コンパレータCMPcは、信号INOUTの電圧が閾値電圧VTHbより高い場合に信号CMPcOを“0”に設定し、信号INOUTの電圧が閾値電圧VTHbより低い場合に信号CMPcOを“1”に設定する。コンパレータCMPdは、信号INOUTの電圧が閾値電圧VTLb(VTLb<VTHb)より低い場合に信号CMPdOを“0”に設定し、信号INOUTの電圧が閾値電圧VTLbより高い場合に信号CMPdOを“1”に設定する。NMOSトランジスタNMbおよびPMOSトランジスタPMbは、信号線CMPcOと信号線DETとの間に並列接続されている。NMOSトランジスタNMbの制御端子には信号ANeOが入力され、PMOSトランジスタPMbの制御端子には信号ANeOXが入力されている。NMOSトランジスタNMcおよびPMOSトランジスタPMcは、信号線CMPdOと信号線DETとの間に並列接続されている。NMOSトランジスタNMcの制御端子には信号ANfOが入力され、PMOSトランジスタPMcの制御端子には信号ANfOXが入力されている。インバータIVgは信号DETを反転させて信号DETXとして出力し、インバータIVhは信号DETXを反転させて信号DETとして出力する。即ち、インバータIVg、IVhは、信号DETを保持するラッチ回路を具現している。
【0015】
このような構成の出力短絡検出回路では、入出力回路IOが出力回路として機能している場合(信号DDROが“1”に設定されている場合)、以下のように外部端子Pの出力短絡状態が検出される。信号PDROが“0”に設定されている場合には、信号ANeOが“0”に設定され、信号ANeOXが“1”に設定されるため、NMOSトランジスタNMbおよびPMOSトランジスタPMbがオフ状態になる。従って、信号CMPcOは信号DETに関与していない。また、信号PDROが“0”に設定されている場合には、信号PDROXが“1”に設定されるため、信号ANdO、DLYbOが“1”に設定され、信号ENRbOが“1”に設定される。これにより、信号ANfOが“1”に設定され、信号ANfOXが“0”に設定されるため、NMOSトランジスタNMcおよびPMOSトランジスタPMcがオン状態になる。従って、信号CMPdOが信号DETとして出力されている。このような状態で外部端子Pにおいて出力短絡が発生すると、信号INOUTの電圧が接地線GNDの電圧から上昇して閾値電圧VTLbより高くなった時点で信号CMPdOが“0”から“1”に遷移し、その結果、信号DETが“0”から“1”に遷移する。これにより、外部端子Pの出力短絡状態が検出される。
【0016】
信号PDROが“0”から“1”に遷移すると、信号PDROXが“1”から“0”に遷移するため、信号ANfOが“1”から“0”に遷移し、信号ANfOXが“0”から“1”に遷移する。これにより、NMOSトランジスタNMcおよびPMOSトランジスタPMcがオフ状態になり、その結果、信号CMPdOは信号DETに関与しなくなる。また、信号PDROが“0”から“1”に遷移すると、信号ANcOが“0”から“1”に遷移し、信号ANcOが遷移してから遅延回路DLYaの遅延時間が経過した後に信号DLYaOが“0”から“1”に遷移する。これにより、信号ENRaOが“0”から“1”に遷移するため、信号ANeOが“0”から“1”に遷移し、信号ANeOXが“1”から“0”に遷移する。このため、NMOSトランジスタNMbおよびPMOSトランジスタPMbがオン状態になり、その結果、信号CMPcOが信号DETとして出力されるようになる。即ち、信号PDROが遷移してから遅延回路DLYaの遅延時間が経過するまでの期間においては、NMOSトランジスタNMbおよびPMOSトランジスタPMbはオフ状態のままであり、信号CMPcOは信号DETに関与しない。信号PDROが“0”から“1”に遷移すると、信号INOUTが“0”から“1”に遷移する。信号INOUTが“0”から“1”に遷移する際には、外部端子Pで出力短絡が発生していない場合でも、信号INOUTの電圧が閾値電圧VTHbより低い状態が存在する。しかしながら、遅延回路DLYaの遅延時間が信号INOUTの遷移時間(外部端子Pの信号遷移時間)より大きく設定されることで、外部端子Pの信号遷移状態が外部端子Pの出力短絡状態として検出されることが回避される。
【0017】
一方、信号PDROが“1”に設定されている場合には、信号PDROXが“0”に設定されるため、信号ANfOが“0”に設定され、信号ANfOXが“1”に設定され、その結果、NMOSトランジスタNMcおよびPMOSトランジスタPMcがオフ状態になる。従って、信号CMPdOは信号DETに関与していない。また、信号PDROが“1”に設定されている場合には、信号ANcO、DLYaOが“1”に設定され、信号ENRaOが“1”に設定される。これにより、信号ANeOが“1”に設定され、信号ANeOXが“0”に設定されるため、NMOSトランジスタNMbおよびPMOSトランジスタPMbがオン状態になる。従って、信号CMPcOが信号DETとして出力されている。このような状態で外部端子Pにおいて出力短絡が発生すると、信号INOUTの電圧が電源線VDDの電圧から下降して閾値電圧VTHbより低くなった時点で信号CMPcOが“0”から“1”に遷移し、その結果、信号DETが“0”から“1”に遷移する。これにより、外部端子Pの出力短絡状態が検出される。
【0018】
信号PDROが“1”から“0”に遷移すると、信号ANeOが“1”から“0”に遷移し、信号ANeOXが“0”から“1”に遷移する。これにより、NMOSトランジスタNMbおよびPMOSトランジスタPMbがオフ状態になり、その結果、信号CMPcOは信号DETに関与しなくなる。また、信号PDROが“1”から“0”に遷移すると、信号PDROXが“0”から“1”に遷移するため、信号ANdOが“0”から“1”に遷移し、信号ANdOが遷移してから遅延回路DLYbの遅延時間が経過した後に信号DLYbOが“0”から“1”に遷移する。これにより、信号ENRbOが“0”から“1”に遷移するため、信号ANfOが“0”から“1”に遷移し、信号ANfOXが“1”から“0”に遷移する。このため、NMOSトランジスタNMcおよびPMOSトランジスタPMcがオン状態になり、その結果、信号CMPdOが信号DETとして出力されるようになる。即ち、信号PDROが遷移してから遅延回路DLYbの遅延時間が経過するまでの期間においては、NMOSトランジスタNMcおよびPMOSトランジスタPMcはオフ状態のままであり、信号CMPdOは信号DETに関与しない。信号PDROが“1”から“0”に遷移すると、信号INOUTが“1”から“0”に遷移する。信号INOUTが“1”から“0”に遷移する際には、外部端子Pで出力短絡が発生していない場合でも、信号INOUTの電圧が閾値電圧VTLbより高い状態が存在する。しかしながら、遅延回路DLYbの遅延時間が信号INOUTの遷移時間より大きく設定されることで、外部端子Pの信号遷移状態が外部端子Pの出力短絡状態として検出されることが回避される。
【0019】
また、LSIにおいて外部端子の出力短絡状態を検出する技術とは別に、車載用途向けLSI等においてスイッチやコネクタ等の異常に起因する入力回路の異常を検出する技術も提案されている(例えば、特許文献3、4を参照)。
【0020】
図14は、LSIの入力ポート回路の従来例(その1)を示している。図14の入力ポート回路は、抵抗RaおよびスイッチSWaを介して接地線GNDに接続される外部端子TERMに対応して設けられ、抵抗Rb、Rc、スイッチSWb、バッファBFaおよびレベル判定回路CIRCを備えて構成されている。この入力ポート回路は、特許文献3(図2)に開示されたものに相当する。
【0021】
抵抗Rbは、外部端子TERMに接続される信号線INと電源線VDDとの間に接続されている。抵抗RcおよびスイッチSWbは、信号線INと電源線VDDとの間に直列接続されている。バッファBFaは、信号INを受けて信号VBを出力する。レベル判定回路CIRCは、信号Saを介してスイッチSWbを定期的に制御し、その際の信号VBのレベル(論理値)に基づいてスイッチSWaのオン/オフ状態および回路異常(バッファBFaの破損等)の有無を判定する。レベル判定回路CIRCは、スイッチSWaがオン状態であり且つ回路異常が無いと判定した場合にのみ、信号SbをLSIの内部回路に出力する。
【0022】
このような構成の入力ポート回路では、抵抗Ra、Rb、Rcの抵抗値がRc<Ra<Rbの関係になっており、スイッチSWaがオン状態であり且つスイッチSWbがオフ状態である場合に信号VBが“0”に設定され、その他の場合に信号VBが“1”に設定されるようになっている。従って、レベル判定回路CIRCは、スイッチSWbをオフ状態にして信号VBのレベルを認識した後、スイッチSWbをオン状態にして信号VBのレベルを認識し、スイッチSWbのオン/オフ状態に対応して信号VBが遷移した場合、スイッチSWaがオン状態であり且つ回路異常が無いと判定して信号Sbを出力する。
【0023】
図15は、LSIの入力ポート回路の従来例(その2)を示している。図15の入力ポート回路は、特許文献4(図2)に開示されたものに相当し、PMOSトランジスタPMd、PMe、NMOSトランジスタNMd、NMe、プルアップ抵抗Rd、Rf、プルダウン抵抗Re、Rg、バッファBFb、BFc、D型フリップフロップDFFa、DFFbおよびセレクタSELaを備えて構成されている。
【0024】
PMOSトランジスタPMdおよびプルアップ抵抗Rdは、外部端子に接続される信号線PINaと電源線VDDとの間に直列接続されている。NMOSトランジスタNMdおよびプルダウン抵抗Reは、信号線PINaと接地線GNDとの間に直列接続されている。PMOSトランジスタPMdおよびNMOSトランジスタNMdの制御端子には、信号TSTが入力されている。PMOSトランジスタPMeおよびプルアップ抵抗Rfは、信号線PINaとは別の外部端子に接続される信号線PINbと電源線VDDとの間に直列接続されている。NMOSトランジスタNMeおよびプルダウン抵抗Rgは、信号線PINbと接地線GNDとの間に直列接続されている。PMOSトランジスタPMeおよびNMOSトランジスタNMeの制御端子には、信号TSTが入力されている。バッファBFbは、入力回路を具現しており、信号PINaを受けて信号BFbOをLSIの内部回路に出力する。バッファBFcは、入力回路を具現しており、信号PINbを受けて信号BFcOをLSIの内部回路に出力する。D型フリップフロップDFFa、DFFbおよびセレクタSELaは、信号BFbO、BFcOをLSIの外部に順次出力するスキャン回路を具現している。D型フリップフロップDFFaは、クロック端子CKに入力される信号CLKが“0”から“1”に遷移するのに伴って、入力端子Dに供給される信号BFbOを取り込んで信号DFFaOとして出力端子Qから出力する。セレクタSELaは、信号TSELに応じて信号DFFaO、BFcOのいずれかを選択して信号SELaOとして出力する。D型フリップフロップDFFbは、クロック端子CKに供給される信号CLKが“0”から“1”に遷移するのに伴って、入力端子Dに入力される信号SELaOを取り込んで信号DFFbOとして出力端子Qから出力する。
【0025】
このような構成の入力ポート回路で、信号線PINa(PINb)に接続される外部端子に対して“0”固定の信号を入力し、信号TSTを“0”に設定すると、PMOSトランジスタPMd(PMe)がオン状態になり、プルアップ抵抗Rd(Rf)が信号線PINa(PINb)に接続される。その結果、信号線PINa(PINb)に接続される外部端子が入力開放状態でなければ信号BFbO(BFcO)が“0”に設定され、信号線PINa(PINb)に接続される外部端子が入力開放状態であれば信号BFbO(BFcO)が“1”に設定される。また、信号線PINa(PINb)に接続される外部端子に対して“1”固定の信号を入力し、信号TSTを“1”に設定すると、NMOSトランジスタNMd(NMe)がオン状態になり、プルダウン抵抗Re(Rg)が信号線PINa(PINb)に接続される。その結果、信号線PINa(PINb)に接続される外部端子が入力開放状態でなければ信号BFbO(BFcO)が“1”に設定され、信号線PINa(PINb)に接続される外部端子が入力開放状態であれば信号BFbO(BFcO)が“0”に設定される。従って、信号線PINa、PINbに接続される外部端子に対して入力される信号の論理値に応じて信号TSTの論理値を設定し、D型フリップフロップDFFa、DFFbおよびセレクタSELaにより具現されるスキャン回路を用いて信号BFbO、BFcOをLSIの外部に順次出力させることで、信号線PINa、PINbに接続される外部端子の入力開放の有無を確認できる。
【特許文献1】特開昭60−200347号公報
【特許文献2】特開2004−48341号公報
【特許文献3】特開昭60−41321号公報
【特許文献4】特許第3645748号公報
【発明の開示】
【発明が解決しようとする課題】
【0026】
図12〜図15を用いて前述したように、LSIにおいて外部端子の出力短絡状態あるいは入力開放状態を検出する技術が提案されているが、以下に示すような問題がある。
【0027】
図12の回路構成では、外部端子毎に出力短絡検出回路を設ける必要があるため、LSIのチップ面積が増大してコストが大幅に増加するという問題がある。更に、外部端子の信号遷移状態に関する対策が施されておらず、外部端子の信号遷移状態が外部端子の出力短絡状態として検出される可能性があるという問題もある。図13の回路構成では、外部端子の信号遷移状態に関する対策が施されているが、図12の回路構成と同様に、外部端子毎に出力短絡検出回路を設ける必要があるため、LSIのチップ面積が増大してコストが大幅に増加するという問題がある。図14の回路構成および図15の回路構成においても、外部端子毎に入力開放検出回路(入力異常検出回路)を設ける必要があるため、LSIのチップ面積が増大してコストが大幅に増加するという問題がある。
【0028】
本発明は、このような問題に鑑みてなされたものであり、半導体集積回路においてコストの増大を伴うことなく外部端子の異常状態(出力短絡状態および入力開放状態)を検出する技術を提供することを目的とする。
【課題を解決するための手段】
【0029】
半導体集積回路は、複数の入出力回路、監視対象指定回路および異常検出回路を備える。複数の入出力回路は、複数の外部端子に対応して設けられる。監視対象指定回路は、複数の外部端子の中から監視対象外部端子を可変指定する。異常検出回路は、監視対象外部端子に対応する入出力回路が出力回路として機能している場合に監視対象外部端子の出力短絡状態を検出し、監視対象外部端子に対応する入出力回路が入力回路として機能している場合に監視対象外部端子の入力開放状態を検出する。このような半導体集積回路では、複数の外部端子で異常検出回路が共用されるため、半導体集積回路のチップ面積を小さくすることができ、コストを増大させることなく外部端子の異常状態を検出する機能を実現できる。
【発明の効果】
【0030】
半導体集積回路においてコストの増大を伴うことなく外部端子の異常状態(出力短絡状態および入力開放状態)を検出することが可能になる。
【発明を実施するための最良の形態】
【0031】
以下、本発明の実施形態について図面を用いて説明する。
【0032】
図1は、本発明の第1実施形態を示している。第1実施形態のマイクロコントローラMCUは、方向レジスタDDR1〜DDR4、データレジスタPDR1〜PDR4、入出力回路IO1〜IO4、端子選択回路DPSEL、異常検出回路PCDETおよび異常検出制御回路PCDCTLを備えて構成されている。なお、図示を省略しているが、マイクロコントローラMCUには、CPU(Central Processing Unit)、フラッシュメモリ(プログラム格納用メモリ)、UART(Universal Asynchronous Receiver Transmitter)やタイマ等も搭載されている。
【0033】
方向レジスタDDRi(i=1,2,3,4)は、入出力回路IOiを入力回路として使用する場合に“0”に設定され、入出力回路IOiを出力回路として使用する場合に“1”に設定される。信号DDRiOは、方向レジスタDDRiの設定値を示す信号である。データレジスタPDRiは、入出力回路IOiを出力回路として使用する際、“0”に設定された信号を外部端子Piから出力する場合に“0”に設定され、“1”に設定された信号を外部端子Piから出力する場合に“1”に設定される。信号PDRiOは、データレジスタPDRiの設定値を示す信号である。
【0034】
入出力回路IOiは、外部端子Piに対応して設けられ、NAND回路NA1i、インバータIV1i、IV2i、NOR回路NR1i、PMOSトランジスタPM1iおよびNMOSトランジスタNM1iを備えて構成されている。入出力回路IOiにおけるNAND回路NA1i、インバータIV1i、IV2i、NOR回路NR1i、PMOSトランジスタPM1iおよびNMOSトランジスタNM1iの接続関係は、図11の入出力回路IOにおけるNAND回路NAa、インバータIVa、IVb、NOR回路NRa、PMOSトランジスタPMaおよびNMOSトランジスタNMaの接続関係と同様である。
【0035】
端子選択回路DPSELは、外部端子P1〜P4の中から監視対象外部端子を可変指定し、信号DDR1O〜DDR4Oの中で監視対象外部端子に対応する信号を信号DDRSOとして出力し、信号PDR1O〜PDR4Oの中で監視対象外部端子に対応する信号を信号PDRSOとして出力し、信号INOUT1〜INOUT4の中で監視対象外部端子に対応する信号を信号INOUTSOとして出力する。なお、端子選択回路DPSELの詳細については、図2を用いて後述する。
【0036】
異常検出回路PCDETは、信号PCDEOが“1”に設定されている場合にのみ、信号DDRSO、PDRSO、INOUTSOに基づいて監視対象外部端子の異常状態(出力短絡状態および入力開放状態)を検出する。異常検出回路PCDETは、監視対象外部端子の出力短絡状態の検出に伴って信号DETSOOを“1”に設定し、監視対象外部端子の入力開放状態の検出に伴って信号DETSIOを“1”に設定する。なお、異常検出回路PCDETの詳細については、図3〜図5を用いて後述する。
【0037】
異常検出制御回路PCDCTLは、異常検出回路PCDETの検出動作の許可/禁止を示す信号PCDEOを出力する。信号PCDEOは、異常検出回路PCDETの検出動作を禁止する場合に“0”に設定され、異常検出回路PCDETの検出動作を許可する場合に“1”に設定される。また、異常検出制御回路PCDCTLは、信号DETSOO、DETSIOに基づいてCPUに対する割り込み信号IRQPCDを出力する。なお、異常検出制御回路PCDCTLの詳細については、図6を用いて後述する。
【0038】
図2は、図1の端子選択回路を示している。端子選択回路DPSELは、端子選択制御レジスタDPSELCR、デコーダDEC1およびセレクタSEL1〜SEL3を備えて構成されている。端子選択制御レジスタDPSELCRは、外部端子P1〜P4の中から監視対象外部端子を可変指定するためのレジスタである。信号VDPSELCRは、端子選択制御レジスタDPSELCRの設定値を示す信号である。デコーダDEC1は、信号VDPSELCRをデコードして信号PSEL1〜PSEL4を出力する。具体的には、デコーダDEC1は、信号VDPSELCRが外部端子P1(P2、P3、P4)を示す論理値に設定されている場合、信号PSEL1(PSEL2、PSEL3、PSEL4)を“1”に設定するとともに、信号PSEL1〜PSEL4におけるPSEL1(PSEL2、PSEL3、PSEL4)以外の信号を“0”に設定する。
【0039】
セレクタSEL1は、スイッチSS11〜SS14を備えて構成されている。スイッチSS11(SS12、SS13、SS14)は、信号線DDR1O(DDR2O、DDR3O、DDR4O)と信号線DDRSOとの間に接続されている。スイッチSS11(SS12、SS13、SS14)は、信号PSEL1(PSEL2、PSEL3、PSEL4)が“0”に設定されている場合にオフ状態になり、信号PSEL1(PSEL2、PSEL3、PSEL4)が“1”に設定されている場合にオン状態になる。セレクタSEL2は、スイッチSS21〜SS24を備えて構成されている。スイッチSS21(SS22、SS23、SS24)は、信号線PDR1O(PDR2O、PDR3O、PDR4O)と信号線PDRSOとの間に接続されている。スイッチSS21(SS22、SS23、SS24)は、信号PSEL1(PSEL2、PSEL3、PSEL4)が“0”に設定されている場合にオフ状態になり、信号PSEL1(PSEL2、PSEL3、PSEL4)が“1”に設定されている場合にオン状態になる。セレクタSEL3は、スイッチSS31〜SS34を備えて構成されている。スイッチSS31(SS32、SS33、SS34)は、信号線INOUT1(INOUT2、INOUT3、INOUT4)と信号線INOUTSOとの間に接続されている。スイッチSS31(SS32、SS33、SS34)は、信号PSEL1(PSEL2、PSEL3、PSEL4)が“0”に設定されている場合にオフ状態になり、信号PSEL1(PSEL2、PSEL3、PSEL4)が“1”に設定されている場合にオン状態になる。
【0040】
このような構成の端子選択回路DPSELでは、端子選択制御レジスタDPSELCRが外部端子P1(P2、P3、P4)を示すレジスタ値に設定されると、デコーダDEC1において信号PSEL1(PSEL2、PSEL3、PSEL4)が“1”に設定される。この結果、セレクタSEL1においてスイッチSS11(SS12、SS13、SS14)がオン状態になって信号DDR1O(DDR2O、DDR3O、DDR4O)が信号DDRSOとして出力され、セレクタSEL2においてスイッチS21(SS22、SS23、SS24)がオン状態になって信号PDR1O(PDR2O、PDR3O、PDR4O)が信号PDRSOとして出力され、セレクタSEL3においてスイッチSS31(SS32、SS33、SS34)がオン状態になって信号INOUT1(INOUT2、INOUT3、INOUT4)が信号INOUTSOとして出力される。
【0041】
図3は、図1の異常検出回路を示している。異常検出回路PCDETは、AND回路AN1〜AN7、インバータIV3〜IV8、遅延時間制御レジスタPCDDLYCR、可変遅延回路VDLY1、VDLY2、閾値電圧生成回路PCDVTG、コンパレータCMP1、CMP2、NMOSトランジスタNM2、NM3、PMOSトランジスタPM2、PM3、NOR回路NR2、スイッチSW1、SW2、プルアップ抵抗R1およびプルダウン抵抗R2を備えて構成されている。
【0042】
AND回路AN1は、信号PCDEOが“0”に設定されている場合に信号DDRSOとは無関係に信号AN1Oを“0”に設定し、信号PCDEOが“1”に設定されている場合に信号DDRSOを信号AN1Oとして出力する。AND回路AN2は、信号AN1Oが“0”に設定されている場合に信号PDRSOとは無関係に信号AN2Oを“0”に設定し、信号AN1Oが“1”に設定されている場合に信号PDRSOを信号AN2Oとして出力する。インバータIV3は、信号PDRSOを反転させて信号PDRSOXとして出力する。AND回路AN3は、信号AN1Oが“0”に設定されている場合に信号PDRSOXとは無関係に信号AN3Oを“0”に設定し、信号AN1Oが“1”に設定されている場合に信号PDRSOXを信号AN3Oとして出力する。遅延時間制御レジスタPCDDLYCRは、可変遅延回路VDLY1、VDLY2の遅延時間を可変指定するためのレジスタである。例えば、遅延時間制御レジスタPCDDLYCRは、遅延時間TD1〜TD4(TD1<TD2<TD3<TD4)のいずれかを示すレジスタ値に設定される。信号VPCDDLYCRは、遅延時間制御レジスタPCDDLYCRの設定値を示す信号である。可変遅延回路VDLY1は、信号AN2Oを信号VPCDDLYCRの論理値に対応する時間遅らせて信号VDLY1Oとして出力する。可変遅延回路VDLY2は、信号AN3Oを信号VPCDDLYCRの論理値に対応する時間遅らせて信号VDLY2Oとして出力する。AND回路AN4は、信号AN2O、VDLY1Oの少なくとも一方が“0”に設定されている場合に信号AN4Oを“0”に設定し、信号AN2O、VDLY1Oの双方が“1”に設定されている場合に信号AN4Oを“1”に設定する。AND回路AN5は、信号AN3O、VDLY2Oの少なくとも一方が“0”に設定されている場合に信号AN5Oを“0”に設定し、信号AN3O、VDLY2Oの双方が“1”に設定されている場合に信号AN5Oを“1”に設定する。インバータIV4は、信号AN4Oを反転させて信号AN4OXとして出力する。インバータIV5は、信号AN5Oを反転させて信号AN5OXとして出力する。
【0043】
閾値電圧生成回路PCDVTGは、信号PCDEOが“1”に設定されている場合にのみ、電圧値可変の閾値電圧VTH、VTL(VTL<VTH)を生成する。コンパレータCMP1は、信号INOUTSOの電圧が閾値電圧VTHより高い場合に信号CMP1Oを“0”に設定し、信号INOUTSOの電圧が閾値電圧VTHより低い場合に信号CMP1Oを“1”に設定する。コンパレータCMP2は、信号INOUTSOの電圧が閾値電圧VTLより低い場合に信号CMP2Oを“0”に設定し、信号INOUTSOの電圧が閾値電圧VTLより高い場合に信号CMP2Oを“1”に設定する。NMOSトランジスタNM2およびPMOSトランジスタPM2は、信号線CMP1Oと信号線DETSOOとの間に並列接続されている。NMOSトランジスタNM2の制御端子には信号AN4Oが入力され、PMOSトランジスタPM2の制御端子には信号AN4OXが入力されている。NMOSトランジスタNM3およびPMOSトランジスタPM3は、信号線CMP2Oと信号線DETSOOとの間に並列接続されている。NMOSトランジスタNM3の制御端子には信号AN5Oが入力され、PMOSトランジスタPM3の制御端子には信号AN5OXが入力されている。インバータIV6は信号DETSOOを反転させて信号DETSOOXとして出力し、インバータIV7は信号DETSOOXを反転させて信号DETSOOとして出力する。即ち、インバータIV6、IV7は、信号DETSOOを保持するラッチ回路を具現している。
【0044】
インバータIV8は、信号PCDEOを反転させて信号PCDEOXとして出力する。NOR回路NR2は、信号PCDEOXが“0”に設定されている場合に信号DDRSOを反転させて信号NR2Oとして出力し、信号PCDEOXが“1”に設定されている場合に信号DDRSOとは無関係に信号NR2Oを“0”に設定する。スイッチSW1およびプルアップ抵抗R1は、信号線INOUTSOと電源線VDD(例えば、3V)との間に直列接続されている。スイッチSW2およびプルダウン抵抗R2は、信号線INOUTSOと接地線GND(0V)との間に直列接続されている。スイッチSW1、SW2は、信号NR2Oが“0”に設定されている場合にオフ状態になり、信号NR2Oが“1”に設定されている場合にオン状態になる。AND回路AN6は、信号CMP1O、CMP2Oの少なくとも一方が“0”に設定されている場合に信号AN6Oを“0”に設定し、信号CMP1O、CMP2Oの双方が“1”に設定されている場合に信号AN6Oを“1”に設定する。AND回路AN7は、信号NR2Oが“0”に設定されている場合に信号AN6Oとは無関係に信号DETSIOを“0”に設定し、信号NR2Oが“1”に設定されている場合に信号AN6Oを信号DETSIOとして出力する。
【0045】
以上のような構成の異常検出回路PCDETでは、異常検出回路PCDETの検出動作が許可されており、監視対象外部端子に対応する入出力回路が出力回路として機能している場合(信号PCDEOが“1”に設定されており、信号DDRSOが“1”に設定されている場合)、以下のように監視対象外部端子の出力短絡状態が検出される。信号PDRSOが“0”に設定されている場合には、信号AN2Oが“0”に設定されるため、信号AN4Oが“0”に設定され、信号AN4OXが“1”に設定され、その結果、NMOSトランジスタNM2およびPMOSトランジスタPM2がオフ状態になる。従って、信号CMP1Oは信号DETSOOに関与していない。また、信号PDRSOが“0”に設定されている場合には、信号PDRSOXが“1”に設定されるため、信号AN3O、VDLY2Oが“1”に設定される。これにより、信号AN5Oが“1”に設定され、信号AN5OXが“0”に設定されるため、NMOSトランジスタNM3およびPMOSトランジスタPM3がオン状態になる。従って、信号CMP2Oが信号DETSOOとして出力されている。なお、信号NR2Oが“0”に設定されるため、スイッチSW1、SW2がオフ状態になり、その結果、プルアップ抵抗R1およびプルダウン抵抗R2は信号線INOUTSOから切り離されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号INOUTSOの電圧が接地線GNDの電圧から上昇して閾値電圧VTLより高くなった時点で信号CMP2Oが“0”から“1”に遷移し、その結果、信号DETSOOが“0”から“1”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【0046】
信号PDRSOが“0”から“1”に遷移すると、信号PDRSOXが“1”から“0”に遷移するため、信号AN3Oが“1”から“0”に遷移し、その結果、信号AN5Oが“1”から“0”に遷移し、信号AN5OXが“0”から“1”に遷移する。これにより、NMOSトランジスタNM3およびPMOSトランジスタPM3がオフ状態になり、その結果、信号CMP2Oは信号DETSOOに関与しなくなる。また、信号PDRSOが“0”から“1”に遷移すると、信号AN2Oが“0”から“1”に遷移し、信号AN2Oが遷移してから可変遅延回路VDLY1の遅延時間が経過した後に信号VDLY1Oが“0”から“1”に遷移する。これにより、信号AN4Oが“0”から“1”に遷移し、信号AN4OXが“1”から“0”に遷移するため、NMOSトランジスタNM2およびPMOSトランジスタPM2がオン状態になり、その結果、信号CMP1Oが信号DETSOOとして出力されるようになる。即ち、信号PDRSOが遷移してから可変遅延回路VDLY1の遅延時間が経過するまでの期間においては、NMOSトランジスタNM2およびPMOSトランジスタPM2はオフ状態のままであり、信号CMP1Oは信号DETSOOに関与しない。信号PDRSOが“0”から“1”に遷移すると、信号INOUTSOが“0”から“1”に遷移する。信号INOUTSOが“0”から“1”に遷移する際には、監視対象外部端子で出力短絡が発生していない場合でも、信号INOUTSOの電圧が閾値電圧VTHより低い状態が存在する。しかしながら、可変遅延回路VDLY1の遅延時間が信号INOUTSOの遷移時間(監視対象外部端子の信号遷移時間)より大きく設定されることで、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることが回避される。
【0047】
一方、信号PDRSOが“1”に設定されている場合には、信号PDRSOXが“0”に設定されるため、信号AN3Oが“0”に設定される。これにより、信号AN5Oが“0”に設定され、信号AN5OXが“1”に設定されるため、NMOSトランジスタNM3およびPMOSトランジスタPM3がオフ状態になる。従って、信号CMP2Oは信号DETSOOに関与していない。また、信号PDRSOが“1”に設定されている場合には、信号AN2O、VDLY1Oが“1”に設定されるため、信号AN4Oが“1”に設定され、信号AN4OXが“0”に設定され、その結果、NMOSトランジスタNM2およびPMOSトランジスタPM2がオン状態になる。従って、信号CMP1Oが信号DETSOOとして出力されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号INOUTSOの電圧が電源線VDDの電圧から下降して閾値電圧VTHより低くなった時点で信号CMP1Oが“0”から“1”に遷移し、その結果、信号DETSOOが“0”から“1”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【0048】
信号PDRSOが“1”から“0”に遷移すると、信号AN2Oが“1”から“0”に遷移するため、信号AN4Oが“1”から“0”に遷移し、信号AN4OXが“0”から“1”に遷移する。これにより、NMOSトランジスタNM2およびPMOSトランジスタPM2がオフ状態になり、その結果、信号CMP1Oは信号DETSOOに関与しなくなる。また、信号PDRSOが“1”から“0”に遷移すると、信号PDRSOXが“0”から“1”に遷移するため、信号AN3Oが“0”から“1”に遷移し、信号AN3Oが遷移してから可変遅延回路VDLY2の遅延時間が経過した後に信号VDLY2Oが“0”から“1”に遷移する。これにより、信号AN5Oが“0”から“1”に遷移し、信号AN5OXが“1”から“0”に遷移するため、NMOSトランジスタNM3およびPMOSトランジスタPM3がオン状態になり、その結果、信号CMP2Oが信号DETSOOとして出力されるようになる。即ち、信号PDRSOが遷移してから遅延回路VDLY2の遅延時間が経過するまでの期間においては、NMOSトランジスタNM3およびPMOSトランジスタPM3はオフ状態のままであり、信号CMP2Oは信号DETSOOに関与しない。信号PDRSOが“1”から“0”に遷移すると、信号INOUTSOが“1”から“0”に遷移する。信号INOUTSOが“1”から“0”に遷移する際には、監視対象外部端子で出力短絡が発生していない場合でも、信号INOUTSOの電圧が閾値電圧VTLより高い状態が存在する。しかしながら、可変遅延回路VDLY2の遅延時間が信号INOUTSOの遷移時間より大きく設定されることで、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることが回避される。
【0049】
なお、入出力回路IO1〜IO4の電流駆動能力が異なる場合や外部端子P1〜P4の負荷容量が異なる場合には外部端子P1〜P4の信号遷移時間が異なる可能性があるが、遅延時間制御レジスタPCDDLYCRを利用して可変遅延回路VDLY1、VDLY2の遅延時間を変更できるため、監視対象外部端子として選択される外部端子の信号遷移時間に合わせて遅延時間制御レジスタPCDDLYCRを設定することで、そのような場合にも柔軟に対応できる。
【0050】
また、異常検出回路PCDETの検出動作が禁止されている場合(信号PCDEOが“0”に設定されている場合)あるいは監視対象外部端子に対応する入出力回路が入力回路として機能している場合(信号DDRSOが“0”に設定されている場合)、信号AN2O、AN3Oが“0”に設定されるため、信号AN4O、AN5Oが“0”に設定され、信号AN4OX、AN5OXが“1”に設定される。これにより、NMOSトランジスタNM2、NM3およびPMOSトランジスタPM2、PM3がオフ状態になるため、信号CMP1O、CMP2Oに応じて信号DETSOOが“1”に設定されることはない。
【0051】
更に、異常検出回路PCDETでは、異常検出回路PCDETの検出動作が許可されており、監視対象外部端子に対応する入出力回路が入力回路として機能している場合(信号PCDEOが“1”に設定されており、信号DDRSOが“0”に設定されている場合)、以下のように監視対象外部端子の入力開放状態が検出される。信号DDRSOが“0”に設定されている場合には、信号NR2Oが“1”に設定されるため、スイッチSW1、SW2がオン状態になり、その結果、信号線INOUTSO(監視対象外部端子)にプルアップ抵抗R1およびプルダウン抵抗R2が接続される。プルアップ抵抗R1およびプルダウン抵抗R2は大きい抵抗値(例えば、100kΩ)を有しており、監視対象外部端子に対して外部回路により“0”(“1”)に設定された信号が入力されていれば(監視対象外部端子が入力開放状態でなければ)、信号INOUTSOが“0”(“1”)に設定される。
【0052】
信号INOUTSOが“0”に設定されている場合、信号INOUTSOの電圧は閾値電圧VTH、VTLより低いため、信号CMP1Oが“1”に設定され、信号CMP2Oが“0”に設定される。従って、信号AN6Oが“0”に設定され、その結果、信号DETSIOが“0”に設定される。また、信号INOUTSOが“1”に設定されている場合、信号INOUTSOの電圧は閾値電圧VTH、VTLより高いため、信号CMP1Oが“0”に設定され、信号CMP2Oが“1”に設定される。従って、信号AN6Oが“0”に設定され、その結果、信号DETSIOが“0”に設定される。
【0053】
一方、断線等に起因して監視対象外部端子に対して外部回路により信号が入力されておらず、監視対象外部端子が入力開放状態である場合、プルアップ抵抗R1およびプルダウン抵抗R2の作用により、信号INOUTSOの電圧は電源線VDDの電圧の1/2程度になる。このとき、信号INOUTSOの電圧は閾値電圧VTHより低く閾値電圧VTLより高いため、信号CMP1O、CMP2Oが“1”に設定される。従って、信号AN6Oが“1”に設定され、その結果、信号DETSIOが“1”に設定される。これにより、監視対象外部端子の入力開放状態が検出される。
【0054】
また、異常検出回路PCDETの検出動作が禁止されている場合(信号PCDEOが“0”に設定されている場合)あるいは監視対象外部端子に対応する入出力回路が出力回路として機能している場合(信号DDRSOが“1”に設定されている場合)、信号NR2Oが“0”に設定されるため、信号CMP1O、CMP2Oに応じて信号DETSIOが“1”に設定されることはない。
【0055】
なお、監視対象外部端子に対して外部回路により入力される信号が“0”固定の信号や“1”固定の信号ではなく遷移を伴う信号である場合には、監視対象外部端子の信号遷移状態が監視対象外部端子の入力開放状態として検出される可能性があるが、例えば、ソフトウェア処理により入力開放状態の検出の有無を複数回確認することで、監視対象外部端子の信号遷移状態と入力開放状態とを判別することができる。
【0056】
以上のように、異常検出回路PCDETにおいては、閾値電圧生成回路PCDVTGおよびコンパレータCMP1、CMP2が出力短絡検出機能および入力開放検出機能で共用されるため、異常検出回路PCDETの回路面積を削減することができ、その結果、製造コストを抑えることができる。
【0057】
図4は、図3の閾値電圧生成回路を示している。閾値電圧生成回路PCDVTGは、閾値電圧制御レジスタPCDVTCR、デコーダDEC2、スイッチSW3、分圧抵抗RD1〜RD9およびセレクタSEL4、SEL5を備えて構成されている。
【0058】
閾値電圧制御レジスタPCDVTCRは、閾値電圧VTH、VTLの電圧値を可変指定するためのレジスタである。例えば、閾値電圧制御レジスタPCDVTCRは、閾値電圧VTHの電圧値として電圧値VTH1〜VTH4(VTH4<VTH3<VTH2<VTH1)のいずれかを示し、閾値電圧VTLの電圧値として電圧値VTL1〜VTL4(VTL4<VTL3<VTL2<VTL1)のいずれかを示すレジスタ値に設定される。信号VPCDVTCRは、閾値電圧制御レジスタPCDVTCRの設定値を示す信号である。デコーダDEC2は、信号VPCDVTCRをデコードして信号HSEL1〜HSEL4、LSEL1〜LSEL4を出力する。具体的には、デコーダDEC2は、信号VPCDVTCRが閾値電圧VTHの電圧値として電圧値VTH1(VTH2、VTH3、VTH4)を示す論理値に設定されている場合、信号HSEL1(HSEL2、HSEL3、HSEL4)を“1”に設定するとともに、信号HSEL1〜HSEL4におけるHSEL1(HSEL2、HSEL3、HSEL4)以外の信号を“0”に設定する。また、デコーダDEC2は、信号VPCDVTCRが閾値電圧VTLの電圧値として電圧値VTL1(VTL2、VTL3、VTL4)を示す論理値に設定されている場合、信号LSEL1(LSEL2、LSEL3、LSEL4)を“1”に設定するとともに、信号LSEL1〜LSEL4におけるLSEL1(LSEL2、LSEL3、LSEL4)以外の信号を“0”に設定する。
【0059】
スイッチSW3および分圧抵抗RD1〜RD9は、電源線VDDと接地線GNDとの間に直列接続されている。スイッチSW3は、信号PCDEOが“0”に設定されている場合にオフ状態になり、信号PCDEOが“1”に設定されている場合にオン状態になる。セレクタSEL4は、スイッチSS41〜SS44を備えて構成されている。スイッチSS41(SS42、SS43、SS44)は、分圧抵抗RD1(RD2、RD3、RD4)および分圧抵抗RD2(RD3、RD4、RD5)の接続ノードと閾値電圧VTHの供給線との間に接続されている。スイッチSS41(SS42、SS43、SS44)は、信号HSEL1(HSEL2、HSEL3、HSEL4)が“0”に設定されている場合にオフ状態になり、信号HSEL1(HSEL2、HSEL3、HSEL4)が“1”に設定されている場合にオン状態になる。セレクタSEL5は、スイッチSS51〜SS54を備えて構成されている。スイッチSS51(SS52、SS53、SS54)は、分圧抵抗RD5(RD6、RD7、RD8)および分圧抵抗RD6(RD7、RD8、RD9)の接続ノードと閾値電圧VTLの供給線との間に接続されている。スイッチSS51(SS52、SS53、SS54)は、信号LSEL1(LSEL2、LSEL3、LSEL4)が“0”に設定されている場合にオフ状態になり、信号LSEL1(LSEL2、LSEL3、LSEL4)が“1”に設定されている場合にオン状態になる。
【0060】
このような構成の閾値電圧生成回路PCDVTGでは、閾値電圧制御レジスタPCDVTCRが電圧値VTH1(VTH2、VTH3、VTH4)を示すレジスタ値に設定されると、デコーダDEC2において信号HSEL1(HSEL2、HSEL3、HSEL4)が“1”に設定され、その結果、セレクタSEL4においてスイッチSS41(SS42、SS43、SS44)がオン状態になって分圧電圧VD1(VD2、VD3、VD4)が閾値電圧VTHとして出力される。また、閾値電圧制御レジスタPCDVTCRが電圧値VTL1(VTL2、VTL3、VTL4)を示すレジスタ値に設定されると、デコーダDEC2において信号LSEL1(LSEL2、LSEL3、LSEL4)が“1”に設定され、その結果、セレクタSEL5においてスイッチSS51(SS52、SS53、SS54)がオン状態になって分圧電圧VD5(VD6、VD7、VD8)が閾値電圧VTLとして出力される。これにより、任意の電圧値の閾値電圧VTLH、VTLを供給することが可能になる。また、外部端子P1〜P4の入出力信号の“1”に相当する電圧値あるいは“0”に相当する電圧値が異なる可能性があるが、閾値電圧制御レジスタPCDVTCRを利用して閾値電圧VTH、VTLの電圧値を変更できるため、監視対象外部端子として選択される外部端子の入出力信号の“1”に相当する電圧値あるいは“0”に相当する電圧値に合わせて閾値電圧制御レジスタPCDVTCRを設定することで、そのような場合でも異常検出回路PCDETの安定した検出動作を実現できる。
【0061】
図5は、図3の可変遅延回路を示している。可変遅延回路VDLY1、VDLY2は同様の内部構成を有しているため、ここでは、可変遅延回路VDLY1について説明する。可変遅延回路VDLY1は、デコーダDEC3、遅延回路DLY1〜DLY4、バッファBF1〜BF4、デコーダDEC2およびセレクタSEL6を備えて構成されている。
【0062】
遅延回路DLY1は、信号AN2Oを所定時間遅らせて信号DLY1Oとして出力する。バッファBF1は、信号DLY1Oを受けて信号BF1Oを出力する。遅延回路DLY2は、信号BF1Oを所定時間遅らせて信号DLY2Oとして出力する。バッファBF2は、信号DLY2Oを受けて信号BF2Oを生出力する。遅延回路DLY3は、信号BF2Oを所定時間遅らせて信号DLY3Oとして出力する。バッファBF3は、信号DLY3Oを受けて信号BF3Oを出力する。遅延回路DLY4は、信号BF3Oを所定時間遅らせて信号DLY4Oとして出力する。バッファBF4は、信号DLY4Oを受けて信号BF4Oを出力する。デコーダDEC3は、信号VPCDDLYCRをデコードして信号DSEL1〜DSEL4を出力する。具体的には、デコーダDEC3は、信号VPCDDLYCRが遅延時間TD1(TD2、TD3、TD4)を示す論理値に設定されている場合、信号DSEL1(DSEL2、DSEL3、DSEL4)を“1”に設定するとともに、信号DSEL1〜DSEL4における信号DSEL1(DSEL2、DSEL3、DSEL4)以外の信号を“0”に設定する。セレクタSEL6は、信号DSEL1(DSEL2、DSEL3、DSEL4)が“1”に設定されている場合、信号BF1O(BF2O、BF3O、BF4O)を信号VDLY1Oとして出力する。このような構成により、遅延時間制御レジスタPCDDLYCRの設定値(信号VPCDDLYCR)に応じて遅延時間が変更される可変遅延回路VDLY1を容易に実現できる。
【0063】
図6は、図1の異常検出制御回路を示している。異常検出制御回路PCDCTLは、D型フリップフロップDFFa、DFFbおよび割り込み信号生成回路IRQSGを備えて構成されている。D型フリップフロップDFF1は、クリア端子CLに入力される信号PCDEOが“0”に設定されている場合、出力端子Qから出力される信号DFF1Oを“0”に設定する。また、D型フリップフロップDFF1は、信号PCDEOが“1”に設定されている場合、クロック端子CKに入力される信号DETSOOが“0”から“1”に遷移するのに伴って、入力端子Dに入力される“1”固定の信号を取り込んで信号DFF1Oとして出力する。D型フリップフロップDFF2は、クリア端子CLに入力される信号PCDEOが“0”に設定されている場合、出力端子Qから出力される信号DFF2Oを“0”に設定する。また、D型フリップフロップDFF2は、信号PCDEOが“1”に設定されている場合、クロック端子CKに入力される信号DETSIOが“0”から“1”に遷移するのに伴って、入力端子Dに入力される“1”固定の信号を取り込んで信号DFF2Oとして出力する。
【0064】
割り込み信号生成回路IRQSGは、異常検出制御レジスタPCDCRを備えて構成されている。異常検出制御レジスタPCDCRは、異常検出許可ビットPCDE、出力短絡検出割り込み許可ビットPCDOIE、出力短絡検出割り込み要因フラグPCDOIF、リアルタイム出力短絡検出フラグDETSO、入力開放検出割り込み許可ビットPCDIIE、入力開放検出割り込み要因フラグPCDIIFおよびリアルタイム入力開放検出フラグDETSIを有している。異常検出許可ビットPCDEは、異常検出回路PCDETの検出動作を禁止する場合に“0”に設定され、異常検出回路PCDETの検出動作を許可する場合に“1”に設定される。信号PCDEOは、異常検出許可ビットPCDEの設定値を示す信号である。
【0065】
出力短絡検出割り込み許可ビットPCDOIEは、異常検出回路PCDETによる監視対象外部端子の出力短絡状態の検出に伴うCPUに対する割り込み要求の発行を禁止する場合に“0”に設定され、異常検出回路PCDETによる監視対象外部端子の出力短絡状態の検出に伴うCPUに対する割り込み要求の発行を許可する場合に“1”に設定される。出力短絡検出割り込み要因フラグPCDOIFは、信号DDF1Oが“0”から“1”に遷移するのに伴って“1”に設定される。また、出力短絡検出割り込み要因フラグPCDOIFは、CPUのライトアクセスを介して“0”に初期化可能である。リアルタイム出力短絡検出フラグDSTSOは、信号DETSOOが“0”に設定されている場合に“0”に設定され、信号DETSOOが“1”に設定されている場合に“1”に設定される。
【0066】
入力開放検出割り込み許可ビットPCDIIEは、異常検出回路PCDETによる監視対象外部端子の入力開放状態の検出に伴うCPUに対する割り込み要求の発行を禁止する場合に“0”に設定され、異常検出回路PCDETによる監視対象外部端子の入力開放状態の検出に伴うCPUに対する割り込み要求の発行を許可する場合に“1”に設定される。入力開放検出割り込み要因フラグPCDIIFは、信号DFF2Oが“0”から“1”に遷移するのに伴って“1”に設定される。また、入力開放検出割り込み要因フラグPCDIIFは、CPUのライトアクセスを介して“0”に初期化可能である。リアルタイム入力開放検出フラグDETSIは、信号DETSIOが“0”に設定されている場合に“0”に設定され、信号DETSIOが“1”に設定されている場合に“1”に設定される。
【0067】
割り込み発生回路IRQSGは、出力短絡検出割り込み許可ビットPCDOIEが“1”に設定されている状態で出力短絡検出割り込み要因フラグPCDOIFが“1”に設定された場合、信号IRQPCDを“1”に設定する(CPUに対して割り込み要求を発行する)。また、割り込み発生回路IRQSGは、入力開放検出割り込み許可ビットPCDIIEが“1”に設定されている状態で入力開放検出割り込み要因フラグPCDIIFが“1”に設定された場合にも、信号IRQPCDを“1”に設定する。
【0068】
このような構成によれば、監視対象外部端子で出力短絡あるいは入力開放が発生した際にプログラムにより所望の処理を実行することが容易になる。また、監視対象外部端子における出力短絡あるいは入力開放の有無をリアルタイムに確認できるため、監視対象外部端子における出力短絡あるいは入力開放の発生タイミングを容易に特定することができる。
【0069】
図7は、監視対象外部端子の切換制御を示している。例えば、外部端子P1〜P3の出力短絡の有無を時分割で検査する場合の監視対象外部端子の切換制御について説明する。例えば、外部端子P1の信号遷移時間が0.1usであり、外部端子P2の信号遷移時間が0.5usであり、外部端子P3の信号遷移時間が1.0usであるものする。
【0070】
まず、外部端子P1の出力短絡の有無を検査するために、端子選択制御レジスタDPSELCRが外部端子P1のレジスタ値に設定され、遅延時間制御レジスタPCDDLYCRが0.1us(遅延時間TD1に相当)のレジスタ値に設定される。これにより、外部端子P1が監視対象外部端子として選択され、外部端子P1に対して異常検出回路PCDETの検出動作が実施される。可変遅延回路VDLY1、VDLY2の遅延時間が0.1usに設定されることで、時刻t1から時刻t2までの期間(外部端子P1が信号遷移状態である期間)においては、異常検出回路PCDETの検出動作が停止された状態(disable)になる。
【0071】
次に、時刻t3において、外部端子P2の出力短絡の有無を検査するために、信号PCDEO(異常検出制御レジスタPCDCRの異常検出許可ビットPCDE)を“0”に設定して異常検出回路PCDETの検出動作を停止した後、端子選択制御レジスタDPSELCRに外部端子P2のレジスタ値を設定し、遅延時間制御レジスタPCDDLYCRに0.5us(遅延時間TD2に相当)のレジスタ値を設定する。レジスタ設定の変更後、信号PCDEOを“1”に設定し、可変遅延回路VDLY1、VDLY2の遅延時間(0.5us)の経過後に異常検出回路PCDETが検出動作を実施可能になる。これにより、外部端子P1から外部端子P2への監視対象外部端子の切り換え時に外部端子P2が信号遷移状態であった場合でも、異常検出回路PCDETでの誤検出を防止することができる。信号PCDEOが“1”に設定されてから可変遅延回路VDLY1、VDLY2の遅延時間が経過すると、外部端子P2に対して異常検出回路PCDETの検出動作が実施される。可変遅延回路VDLY1、VDLY2の遅延時間が0.5usに設定されることで、時刻t4から時刻t5までの期間(外部端子P2が信号遷移状態である期間)においては、異常検出回路PCDETの検出動作が停止された状態になる。
【0072】
そして、時刻t6において、外部端子P3の出力短絡の有無を検査するために、信号PCDEOを“0”に設定して異常検出回路PCDETの検出動作を停止した後、端子選択制御レジスタDPSELCRに外部端子P3のレジスタ値を設定し、遅延時間制御レジスタPCDDLYCRに1.0us(遅延時間TD3に相当)のレジスタ値を設定する。レジスタ設定の変更後、信号PCDEOを“1”に設定し、可変遅延回路VDLY1、VDLY2の遅延時間(1.0us)の経過後に異常検出回路PCDETが検出動作を実施可能になる。但し、図7の例では、信号PCDEOが“1”に設定されてから可変遅延回路VDLY1、VDLY2の遅延時間が経過する前に外部端子P3が信号遷移状態になり、時刻t7から時刻t8までの期間(外部端子P3が信号遷移状態である期間)において信号遷移状態に対する誤検出防止機能が働くため、異常検出回路PCDETの検出動作の停止期間が延長され、外部端子P3に対して異常検出回路PCDETの検出動作が時刻t8から実施される。これにより、外部端子P2から外部端子P3への監視対象外部端子の切り換え時に外部端子P3が信号遷移状態であった場合でも、異常検出回路PCDETでの誤検出を防止することができる。
【0073】
ここで、マイクロコントローラMCUにおける端子選択回路DPSELおよび異常検出回路PCDETの組み合わせによる出力短絡検出機能の有用性について説明する。マイクロコントローラMCUには、プログラム格納用メモリとしてフラッシュメモリが搭載されている。プログラムを容易に書き換えられるというフラッシュメモリの特徴を利用することで、プログラムのデバッグやシステムの動作確認の際に、4個の評価システムで外部端子P1〜P4を別々に監視し、4個の評価システム全体で外部端子P1〜P4を同時に監視するような手法、あるいは、1個の評価システムで監視対象外部端子を変更しながら外部端子P1〜P4を時分割に監視するような手法を採用することができる。更に、マイクロコントローラMCUが製品として量産されている段階あるいはマイクロコントローラMCUがユーザにより使用されている段階であっても、フラッシュメモリのプログラムを書き換えることで、外部端子P1〜P4における所望の外部端子について出力短絡の有無を検査することができる。即ち、マイクロコントローラMCUの出力短絡検出機能をフィールドでのデバッグ手段として利用することもできる。また、マイクロコントローラの外部端子の中で出力短絡が発生する可能性がある外部端子の数やマイクロコントローラの外部端子において出力短絡が発生する可能性があるタイミングは限定されている場合が多い。このような場合、マイクロコントローラMCUでは、システム動作に合わせたソフトウェア制御により、監視対象外部端子を変更しながら外部端子P1〜P4を時分割に監視することで、外部端子P1〜P4の出力短絡状態を検出することができる。例えば、出力短絡検出機能をタイマ割り込み機能と組み合わせて使用することで、監視対象外部端子、閾値電圧VTH、VTLおよび可変遅延回路VDLY1、VDLY2の遅延時間を定期的に変更することが可能になる。このように、マイクロコントローラMCUにおける端子選択回路DPSELおよび異常検出回路PCDETの組み合わせによる出力短絡検出機能の有用性は十分である。
【0074】
次に、マイクロコントローラMCUにおける端子選択回路DPSELおよび異常検出回路PCDETの組み合わせによる入力開放検出機能の有用性について説明する。一般に、入力開放検出機能は、マイクロコントローラの動作中に機械的な振動等に起因して外部端子と外部回路との接続が遮断されることでマイクロコントローラが正常に動作できなくなるような状況を回避するために、システムの異常通知や自己診断等に使用される。例えば、システムの起動時にマイクロコントローラの外部端子における入力開放の有無を検査した後に後続の処理を実行するような場合を考えると、外部端子毎に入力開放検出回路を設ければ、自己診断に要する時間は短くて済むが、マイクロコントローラのチップ面積が非常に大きくなる。また、システムの起動時にマイクロコントローラの外部端子における入力開放の有無を検査するような場合には、複数の外部端子について入力開放の有無を同時に検査する必要性は低く、複数の外部端子について入力開放の有無を時分割に検査しても問題はない。従って、マイクロコントローラMCUにおける端子選択回路DPSELおよび異常検出回路PCDETの組み合わせによる入力開放検出機能の有用性も十分である。
【0075】
以上のような第1実施形態では、外部端子P1〜P4に共通して異常検出回路PCDETが設けられるため、マイクロコントローラMCUのチップ面積を削減でき、大幅なコストダウンを実現できる。また、異常検出回路PCDETにおいては、閾値電圧生成回路PCDVTGおよびコンパレータCMP1、CMP2が出力短絡検出機能および入力開放検出機能で共用されるため、異常検出回路PCDETの回路面積を削減することができ、その結果、製造コストを抑えることができる。
【0076】
異常検出回路PCDETにより監視対象外部端子の出力短絡状態あるいは入力開放状態が検出された際、端子選択制御レジスタDPSELCRを参照することで、外部端子P1〜P4の中で監視対象外部端子として選択されている外部端子を判別できるため、例えば、割り込み処理を利用して適切な処理を実行することが可能になる。また、閾値電圧制御レジスタPCDVTCRを利用して閾値電圧VTH、VTLの電圧値を変更できるため、監視対象外部端子の入出力信号の“1”に相当する電圧値あるいは“0”に相当する電圧値に合わせて閾値電圧制御レジスタPCDVTCRを設定することで、外部端子P1〜P4の入出力信号の“1”に相当する電圧値あるいは“0”に相当する電圧値が異なる場合でも異常検出回路PCDETの安定した検出動作を実現できる。閾値電圧生成回路PCDVTGにおいては、異常検出回路PCDETの検出動作が禁止されている場合にスイッチSW3がオフ状態になるため、無駄な電流の消費を回避することができる。
【0077】
更に、異常検出回路PCDETにおいては、可変遅延回路VDLY1、VDLY2が設けられることで、監視対象外部端子が信号遷移状態である期間にて信号CMP1O、CMP2Oが信号DETSOOに関与しなくなるため、監視対象外部端子の信号遷移状態が監視対象外部端子の出力短絡状態として検出されることを防止できる。また、遅延時間制御レジスタPCDDLYCRを利用して可変遅延回路VDLY1、VDLY2の遅延時間を変更できるため、監視対象外部端子の信号遷移時間に合わせて遅延時間制御レジスタPCDDLYCRを設定することで、外部端子P1〜P4の信号遷移時間が異なる場合にも柔軟に対応できる。
【0078】
図8は、本発明の第2実施形態を示している。第2実施形態を説明するにあたって、第1実施形態で説明した要素と同一の要素については、第1実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第2実施形態のマイクロコントローラは、第1実施形態(図1)のマイクロコントローラMCUにおいて異常検出回路PCDETを異常検出回路PCDET’に置き換えて構成されている。
【0079】
異常検出回路PCDET’は、AND回路AN1〜AN3、AN6〜AN9、インバータIV3、IV8、閾値電圧発生回路PCDVTG、コンパレータCMP1、CMP2、OR回路OR1、NOR回路NR2、スイッチSW1、SW2、ブルアップ抵抗R1およびプルダウン抵抗R2を備えて構成されている。AND回路AN8は、信号AN2Oが“0”に設定されている場合に信号CMP1Oとは無関係に信号AN8Oを“0”に設定し、信号AN2Oが“1”に設定されている場合に信号CMP1Oを信号AN8Oとして出力する。AND回路AN9は、信号AN3Oが“0”に設定されている場合に信号CMP2Oとは無関係に信号AN9Oを“0”に設定し、信号AN3Oが“1”に設定されている場合に信号CMP2Oを信号AN9Oとして出力する。OR回路OR1は、信号AN8O、AN9Oの双方が“0”に設定されている場合に信号DETSOOを“0”に設定し、信号AN8O、AN9Oの少なくとも一方が“1”に設定されている場合に信号DETSOOを“1”に設定する。
【0080】
このような構成の異常検出回路PCDET’では、異常検出回路PCDET’の検出動作が許可されており、監視対象外部端子に対応する入出力回路が出力回路として機能している場合(信号PCDEOが“1”に設定されており、信号DDRSOが“1”に設定されている場合)、以下のように監視対象外部端子の出力短絡状態が検出される。信号PDRSOが“0”に設定されている場合には、信号AN2Oが“0”に設定されるため、信号CMP1Oとは無関係に信号AN8Oが“0”に設定されている。また、信号PDRSOが“0”に設定されている場合には、信号PDRSOXが“1”に設定されるため、信号AN3Oが“1”に設定され、その結果、信号CMP2Oが信号AN9Oとして出力されている。なお、信号NR2Oが“0”に設定されるため、スイッチSW1、SW2がオフ状態になり、その結果、プルアップ抵抗R1およびプルダウン抵抗R2は信号線INOUTSOから切り離されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号INOUTSOの電圧が接地線GNDの電圧から上昇して閾値電圧VTLより高くなった時点で信号CMP2Oが“0”から“1”に遷移する。このため、信号AN9Oが“0”から“1”に遷移し、その結果、信号DETSOOが“0”から“1”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【0081】
一方、信号PDRSOが“1”に設定されている場合には、信号PDRSOXが“0”に設定されるため、信号AN3Oが“0”に設定され、その結果、信号CMP2Oとは無関係に信号AN9Oが“0”に設定されている。また、信号PDRSOが“1”に設定されている場合には、信号AN2Oが“1”に設定されため、信号CMP1Oが信号AN8Oとして出力されている。このような状態で監視対象外部端子において出力短絡が発生すると、信号INOUTSOの電圧が電源線VDDの電圧から下降して閾値電圧VTHより低くなった時点で信号CMP1Oが“0”から“1”に遷移する。このため、信号AN8Oが“0”から“1”に遷移し、その結果、信号DETSOOが“0”から“1”に遷移する。これにより、監視対象外部端子の出力短絡状態が検出される。
【0082】
また、異常検出回路PCDET’の検出動作が禁止されている場合(信号PCDEOが“0”に設定されている場合)あるいは監視対象外部端子に対応する入出力回路が入力回路として機能している場合(信号DDRSOが“0”に設定されている場合)、信号AN2O、AN3Oが“0”に設定されるため、信号CMP1Oとは無関係に信号AN8Oが“0”に設定され、信号CMP2Oとは無関係に信号AN9Oが“0”に設定される。従って、信号CMP1O、CMP2Oに応じて信号DETSOOが“1”に設定されることはない。
【0083】
以上のような第2実施形態でも、第1実施形態と同様の効果が得られる。
【0084】
図9は、本発明の第3実施形態を示している。第3実施形態を説明するにあたって、第1実施形態で説明した要素と同一の要素については、第1実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第3実施形態のマイクロコントローラは、第1実施形態(図1)のマイクロコントローラMCUにおいて入出力回路IO1を入出力回路IO1’に置き換えて構成されている。
【0085】
入出力回路IO1’は、入出力回路IO1においてOR回路OR2およびセレクタSEL7を追加して構成されている。OR回路OR2は、信号UARTOEが“0”に設定されている場合に信号DDR1Oを信号OR2Oとして出力し、信号UARTOEが“1”に設定されている場合に信号DDR1Oとは無関係に信号OR2Oを“1”に設定する。NAND回路NA11およびインバータIV11には、信号DDR1Oに代えて信号OR2Oが入力されている。また、図示を省略しているが、端子選択回路DPSELにも、信号DDR1Oに代えて信号OR2Oが入力されている。セレクタSEL7は、信号UARTOEが“0”に設定されている場合に信号PDR1Oを信号SEL7Oとして出力し、信号UARTOEが“1”に設定されている場合に信号UARTOを信号SEL7Oとして出力する。NAND回路NA11およびNOR回路NR11には、信号PDR1Oに代えて信号SEL7Oが入力されている。なお、信号UARTOは、UARTの送信データ信号である。信号UARTOEは、UARTの出力イネーブル信号であり、UARTの送信データ信号の出力を禁止する場合に“0”に設定され、UARTの送信データ信号の出力を許可する場合に“1”に設定される。
【0086】
このような構成の入出力回路IO1’では、信号UARTOEが“0”に設定されている場合、信号DDR1Oが信号OR2Oとして出力されるとともに、信号PDR1Oが信号SEL71Oとして出力される。従って、入出力回路IO1’は、入出力回路IO1と同様に、汎用出力回路または汎用入力回路として機能する。一方、信号UARTOEが“1”に設定されている場合、信号OR2Oが“1”に設定されるとともに、信号UARTOが信号SEL71Oとして出力される。従って、入出力回路IO1’は、UART用出力回路として機能する。
【0087】
以上のような第3実施形態では、汎用入出力機能に加えてUART用出力機能を有する入出力回路IO1’が設けられているが、入出力回路IO1’がUART用出力回路として機能する場合でも、入出力回路IO1’が汎用出力回路として機能する場合と同様に外部端子P1の出力短絡状態を検出でき、第1実施形態と同様の効果が得られる。
【0088】
図10は、本発明の第4実施形態を示している。第4実施形態を説明するにあたって、第1実施形態で説明した要素と同一の要素については、第1実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。第4実施形態のマイクロコントローラは、第1実施形態(図1)のマイクロコントローラMCUにおいて入出力回路IO1〜IO4を入出力回路IO1”〜IO4”に置き換えて構成されている。
【0089】
入出力回路IOi”(i=1,2,3,4)は、入出力回路IOiにおいてNAND回路NA2iおよびAND回路ANAiを追加して構成されている。NAND回路NA2iは、信号PSELiが“0”に設定されている場合に信号DETSOOとは無関係に信号NA2iOを“1”に設定し、信号PSELiが“1”に設定されている場合に信号DETSOOを反転させて信号NA2iOとして出力する。AND回路ANAiは、信号NA2iOが“0”に設定されている場合に信号DDRiOとは無関係に信号ANAiOを“0”に設定し、信号NA2iOが“1”に設定されている場合に信号DDRiOを信号ANAiOとして出力する。NAND回路NA1iおよびインバータINV1iには、信号DDRiOに代えて信号ANAiOが入力されている。
【0090】
このような構成の入出力回路IOi”では、端子選択回路DPSELにおいて外部端子Piが監視対象外部端子として選択されていなければ、信号PSELiが“0”に設定されるため、信号NA2iOが“1”に設定され、その結果、信号DDRiOが信号ANAiOとして出力される。従って、入出力回路IOi”は入出力回路IOiと同様に動作する。一方、端子選択回路DPSELにおいて外部端子Piが監視対象外部端子として選択されていれば、信号PSELiが“1”に設定されるため、信号NA2iOが信号DETSOOとは反対の論理値に設定される。入出力回路IOi”が出力回路として機能している場合(信号DDRiOが“1”に設定されている場合)、外部端子Piで出力短絡が発生していなければ、信号DETSOOが“0”に設定されるため、信号NA2iOが“1”に設定され、その結果、信号DDRiOが信号ANAiOとして出力される。従って、入出力回路IOi”は入出力回路IOiと同様に動作する。また、外部端子Piで出力短絡が発生していれば、信号DETSOOが“1”に設定されるため、信号NA2iOが“0”に設定され、その結果、信号DDRiOとは無関係に信号ANAiOが“0”に設定される。これにより、信号NA1iOが“1”に設定されるとともに、信号NR1iOが“0”に設定されるため、PMOSトランジスタPM1iおよびNMOSトランジスタNM1iがオフ状態になり、入出力回路IOi”の信号出力動作が停止される。
【0091】
以上のような第4実施形態では、第1実施形態と同様の効果が得られるうえに、監視対象外部端子の出力短絡状態が検出された場合、監視対象外部端子に対応する入出力回路の信号出力動作を自動的に(ソフトウェアを介すことなく)停止させることができる。この結果、出力短絡状態が検出された外部端子に接続されるトランジスタに異常電流が流れる期間を短くすることができる。換言すれば、出力短絡状態が検出された外部端子に接続されるトランジスタがダメージを受ける期間を短くすることができる。
【0092】
以上の実施形態において説明した発明を整理し、付記として以下に開示する。
(付記1)
複数の外部端子に対応して設けられる複数の入出力回路と、
前記複数の外部端子の中から監視対象外部端子を可変指定する監視対象指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の出力短絡状態を検出し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子の入力開放状態を検出する異常検出回路とを備えることを特徴とする半導体集積回路。
(付記2)
付記1に記載の半導体集積回路において、
前記異常検出回路は、
基準電圧を生成する基準電圧生成回路と、
前記監視対象外部端子の電圧を前記基準電圧と比較する電圧比較回路と、
前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子に接続されるプルアップ抵抗およびプルダウン抵抗と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記電圧比較回路の比較結果に応じて出力短絡検出信号を出力し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記電圧比較回路の比較結果に応じて入力開放検出信号を出力する検出信号出力回路とを備えることを特徴とする半導体集積回路。
(付記3)
付記2に記載の半導体集積回路において、
前記基準電圧生成回路は、前記基準電圧の電圧値を可変指定する電圧値指定回路を備えることを特徴とする半導体集積回路。
(付記4)
付記2に記載の半導体集積回路において、
前記異常検出回路の検出動作を許可/禁止する異常検出制御回路を備え、
前記基準電圧生成回路は、前記異常検出制御回路により前記異常検出回路の検出動作が禁止されている場合に前記基準電圧生成回路の電圧生成動作を停止させる電圧生成停止回路を備えることを特徴とする半導体集積回路。
(付記5)
付記1に記載の半導体集積回路において、
前記異常検出回路は、
検出禁止時間を可変指定する時間指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の信号遷移に合わせて前記異常検出回路の検出動作を前記検出禁止時間停止させる検出停止回路とを備えることを特徴とする半導体集積回路。
(付記6)
付記1に記載の半導体集積回路において、
前記異常検出回路による前記監視対象外部端子の出力短絡状態または入力開放状態の検出に応答して中央処理回路に対する割り込み要求を発行する割り込み要求発行回路を備えることを特徴とする半導体集積回路。
(付記7)
付記1に記載の半導体集積回路において、
前記複数の入出力回路は、汎用入出力機能に加えて周辺回路用出力機能を有する入出力回路を含むことを特徴とする半導体集積回路。
(付記8)
付記1に記載の半導体集積回路において、
前記異常検出回路による前記監視対象外部端子の出力短絡状態の検出に応答して前記監視対象外部端子に対応する入出力回路の信号出力動作を停止させる出力停止回路を備えることを特徴とする半導体集積回路。
【0093】
以上、本発明について詳細に説明してきたが、前述の実施形態は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【0094】
【図1】本発明の第1実施形態を示す説明図である。
【図2】図1の端子選択回路を示す説明図である。
【図3】図1の異常検出回路を示す説明図である。
【図4】図3の閾値電圧生成回路を示す説明図である。
【図5】図3の可変遅延回路を示す説明図である。
【図6】図1の異常検出制御回路を示す説明図である。
【図7】監視対象外部端子の切換制御を示す説明図である。
【図8】本発明の第2実施形態を示す説明図である。
【図9】本発明の第3実施形態を示す説明図である。
【図10】本発明の第4実施形態を示す説明図である。
【図11】LSIの入出力ポート回路の従来例(その1)を示す説明図である。
【図12】LSIの入出力ポート回路の従来例(その2)を示す説明図である。
【図13】LSIの入出力ポート回路の従来例(その3)を示す説明図である。
【図14】LSIの入力ポート回路の従来例(その1)を示す説明図である。
【図15】LSIの入力ポート回路の従来例(その2)を示す説明図である。
【符号の説明】
【0095】
AN1〜AN9、ANA1〜ANA4‥AND回路;BF1〜BF4‥バッファ;CMP1、CPM2‥コンパレータ;DDR1〜DDR4‥方向レジスタ;DEC1〜DEC3‥デコーダ;DFF1、DFF2‥D型フリップフロップ;DLY1〜DLY4‥遅延回路;DPSEL‥端子選択回路;DPSELCR‥端子選択制御レジスタ;IO1〜IO4、IO1’、IO1”〜IO4”‥入出力回路;IRQSG‥割り込み信号生成回路;IV11〜IV14、IV21〜IV24、IV3〜IV8‥インバータ;MCU‥マイクロコントローラ;NA11〜NA14、NA21〜NA24‥NAND回路;NM11〜NM14、NM2、NM3‥NMOSトランジスタ;NR11〜NR14、NR2‥NOR回路;OR1、OR2‥OR回路;P1〜P4‥外部端子;PCDCR‥異常検出制御レジスタ;PCDCTL‥異常検出制御回路;PCDDLYCR‥遅延時間制御レジスタ;PCDET、PCDET’‥異常検出回路;PCDVTCR‥閾値電圧制御レジスタ;PCDVTG‥閾値電圧生成回路;PDR1〜PDR4‥データレジスタ;PM11〜PM14、PM2、PM3‥PMOSトランジスタ;R1‥プルアップ抵抗;R2‥プルダウン抵抗;RD1〜RD9‥分圧抵抗;SEL1〜SEL7‥セレクタ;SS11〜SS14、SS21〜SS24、SS31〜SS34、SS41〜SS44、SS51〜SS54、SW1〜SW3‥スイッチ;VDLY1、VDLY2‥可変遅延回路

【特許請求の範囲】
【請求項1】
複数の外部端子に対応して設けられる複数の入出力回路と、
前記複数の外部端子の中から監視対象外部端子を可変指定する監視対象指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の出力短絡状態を検出し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子の入力開放状態を検出する異常検出回路とを備えることを特徴とする半導体集積回路。
【請求項2】
請求項1に記載の半導体集積回路において、
前記異常検出回路は、
基準電圧を生成する基準電圧生成回路と、
前記監視対象外部端子の電圧を前記基準電圧と比較する電圧比較回路と、
前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記監視対象外部端子に接続されるプルアップ抵抗およびプルダウン抵抗と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記電圧比較回路の比較結果に応じて出力短絡検出信号を出力し、前記監視対象外部端子に対応する入出力回路が入力回路として機能している場合に前記電圧比較回路の比較結果に応じて入力開放検出信号を出力する検出信号出力回路とを備えることを特徴とする半導体集積回路。
【請求項3】
請求項2に記載の半導体集積回路において、
前記基準電圧生成回路は、前記基準電圧の電圧値を可変指定する電圧値指定回路を備えることを特徴とする半導体集積回路。
【請求項4】
請求項2に記載の半導体集積回路において、
前記異常検出回路の検出動作を許可/禁止する異常検出制御回路を備え、
前記基準電圧生成回路は、前記異常検出制御回路により前記異常検出回路の検出動作が禁止されている場合に前記基準電圧生成回路の電圧生成動作を停止させる電圧生成停止回路を備えることを特徴とする半導体集積回路。
【請求項5】
請求項1に記載の半導体集積回路において、
前記異常検出回路は、
検出禁止時間を可変指定する時間指定回路と、
前記監視対象外部端子に対応する入出力回路が出力回路として機能している場合に前記監視対象外部端子の信号遷移に合わせて前記異常検出回路の検出動作を前記検出禁止時間停止させる検出停止回路とを備えることを特徴とする半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−164933(P2009−164933A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−991(P2008−991)
【出願日】平成20年1月8日(2008.1.8)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】