(57)【要約】【課題】出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出可能な半導体集積回路を提供する。【解決手段】入力部１１と入出力端子Ｐ１との間にスイッチＳＷ１を設け、入力部１１と出力部１２との間にスイッチＳＷ２を設け、入力部１１の検査時に、スイッチＳＷ１は入力部１１と入出力端子Ｐ１とを電気的に切り離し、スイッチＳＷ２は入力部１１と出力部１２とを電気的に切り離し、入力値生成部１３は、入力値を入力部１１に入力し、故障判定部１４は、入力値と、入力部１１からの出力値とを比較し、入力部１１の故障の有無を判定する。【選択図】図１
2011038987.tif 000002
【特許請求の範囲】
【請求項１】
入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第１のスイッチと、
前記入力部と前記出力部との間に設けられた第２のスイッチと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記第１のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第２のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする半導体集積回路。
【請求項２】
前記出力部は、前記第２のスイッチを介して前記故障判定部に接続されており、前記出力部の検査時に、前記第２のスイッチは前記出力部と前記故障判定部とを電気的に接続し、前記故障判定部は、前記出力部への入力値と、前記出力部からの出力値とを比較し、前記出力部の故障の有無を判定することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記第２のスイッチは、前記出力部の故障時、前記出力部と前記入出力端子とを電気的に切り離し、前記入力値生成部は、前記故障判定部での判定結果を示す値を生成し、前記値を前記入出力端子から出力することを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
入出力端子を介して信号を受信する入力部、または前記入出力端子を介して信号を出力する出力部の故障を検出する故障検出方法において、
前記入力部の検査時に、第１のスイッチが前記入力部と前記入出力端子とを電気的に切り離すとともに、第２のスイッチが前記入力部と前記出力部とを電気的に切り離し、
入力値生成部が入力値を前記入力部に入力し、
故障判定部が前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする故障検出方法。
【請求項５】
入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第１のスイッチと、
前記入力部と前記出力部との間に設けられた第２のスイッチと、
前記第１のスイッチまたは前記第２のスイッチを制御するプロセッサと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記プロセッサの制御のもと、前記第１のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第２のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とするマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、故障検出方法及びマイクロコントローラに関する。
【背景技術】
【０００２】
従来、マイクロコントローラ（マイクロコンピュータと呼ばれることもある）の出力ラッチ回路などの出力部の故障を検出するために、出力ラッチ回路へ入力前の出力信号と、出力ラッチ回路からの出力信号とを比較する技術があった。
【０００３】
また、検査時に、入力部と出力部とをスイッチで接続し、出力部に信号を入力して、入力した信号と、出力部及び入力部を介して出てくる信号とを比較することで、入出力回路の故障を検出する技術があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１２１７２号公報
【特許文献２】特開昭６１−０７０６４０号公報
【特許文献３】特開平９−１８５５６２号公報
【特許文献４】特開２００２−８２７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出することはできなかった。
上記の点を鑑みて、本発明は、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出可能な半導体集積回路、故障検出方法及びマイクロコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、以下のような半導体集積回路が提供される。
この半導体集積回路は、入出力端子を介して信号を受信する入力部と、前記入出力端子を介して信号を出力する出力部と、前記入力部への入力値を生成する入力値生成部と、前記入力部と前記入出力端子との間に設けられた第１のスイッチと、前記入力部と前記出力部との間に設けられた第２のスイッチと、前記入力部または前記出力部の故障の有無を判定する故障判定部と、を有し、前記入力部の検査時に、前記第１のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第２のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定する。
【発明の効果】
【０００７】
開示の半導体集積回路、故障検出方法及びマイクロコントローラによれば、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出できる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態の半導体集積回路の構成を示す図である。
【図２】本実施の形態のマイクロコントローラの一例の構成を示す図である。
【図３】入出力制御部と入出力回路の一例の構成を示す図である。
【図４】プルアップダウン制御設定値、プルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号の関係を示す図である。
【図５】入出力制御信号及び出力信号と、入出力端子の状態を示す図である。
【図６】電源投入時のマイクロコントローラにおける処理の流れを示すフローチャートである。
【図７】電源投入時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
【図８】通常動作時のマイクロコントローラにおける処理の流れを示すフローチャートである。
【図９】通常動作時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
【図１０】本実施の形態のマイクロコントローラを含んだシステムの一例の構成を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、本実施の形態の半導体集積回路の構成を示す図である。
【００１０】
半導体集積回路１０は、入力部１１、出力部１２、入力値生成部１３、故障判定部１４、制御部１５、スイッチＳＷ１，ＳＷ２を有している。
入力部１１は、入出力端子Ｐ１を介して外部からの信号を入力する。入力部１１は、たとえば、バッファや入力信号のノイズを除去するためのノイズ除去機能などを有する。
【００１１】
出力部１２は、たとえば、出力バッファ回路などを有し、半導体集積回路１０の出力信号を、入出力端子Ｐ１を介して外部に出力する。また、出力部１２は、たとえば、入出力端子Ｐ１から信号の入力が行われる旨を示す入出力制御信号が入力されている場合は、出力信号を出力させないようにしている。
【００１２】
入力値生成部１３は、入力部１１の検査時に入力部１１に入力するための、入力値を生成する。入力値生成部１３は、たとえば、入力値を決定する入力値決定部１３ａと、入力値を入力部１１に供給する入力値供給部１３ｂを有している。また、入力値生成部１３は、故障判定部１４での故障の有無の判定結果を示す値を生成し、入出力端子Ｐ１から出力するようにしてもよい。そのときの値は、たとえば、３種類の電圧レベル（ハイレベル（“１”）、ロウレベル（“０”）、ハイインピーダンスレベル（“Ｈｉ−Ｚ”）で表す。
【００１３】
故障判定部１４は、入力部１１または出力部１２の故障の有無を判定する。故障判定部１４では、入力部１１に入力される値と、入力部１１から出力される値とを比較して、入力部１１が正常か否か判定する。また、故障判定部１４では、出力部１２に入力される値と、出力部１２から出力される値とを比較して、出力部１２が正常か否か判定する。入力部１１の検査を行うか出力部１２の検査を行うかは、たとえば、制御部１５から送信される入力部検査信号によって決定される。たとえば、入力部検査信号が“１”の場合には、入力部１１の検査を有効とし、出力部１２の故障検出を無効とする。入力部検査信号が“０”の場合には、入力部１１の検査を無効とし、出力部１２の検査を有効とする。
【００１４】
スイッチＳＷ１は、入力部１１と入出力端子Ｐ１間に設けられている。
スイッチＳＷ２は、入力部１１と出力部１２間に設けられている。
制御部１５は、たとえば、入出力制御信号、入力部検査信号、スイッチＳＷ１，ＳＷ２をオンまたはオフするための制御信号や、外部に出力する出力信号などを生成して出力する。なお、制御部１５は、ワンチップのマイクロコントローラのように半導体集積回路１０の内部に設けられてもよいし、外部に設けられていてもよい。
【００１５】
以下、図１で示した半導体集積回路１０の動作を説明する。
半導体集積回路１０において、通常の出力動作時には、制御部１５の制御のもと、スイッチＳＷ１，ＳＷ２は閉じ、出力部１２と入出力端子Ｐ１とを電気的に接続する。このとき、出力部１２に入力された出力信号が、入出力端子Ｐ１から出力される。出力部１２の検査を有効とする入力部検査信号が入力されている場合、故障判定部１４は、出力部１２に入力される値と、出力部１２から出力される値とを比較する。ここで、両者の値が一致していれば、故障判定部１４は、出力部１２が正常と判定する。両者が異なる値である場合、故障判定部１４は、出力部１２が故障していると判定する。そして、故障判定部１４は、判定結果ａを出力する。
【００１６】
入力動作時には、スイッチＳＷ１，ＳＷ２は閉じ、入出力端子Ｐ１から入力された入力信号が、入力部１１により半導体集積回路１０に入力される。このとき、入力動作中であることを示す入出力制御信号により、出力部１２は出力信号を出力しないようにしている。なお、入力動作時にはスイッチＳＷ２を開いてもよい。
【００１７】
入力部１１を検査する場合、制御部１５の制御のもと、スイッチＳＷ１は開き、入力部１１と入出力端子Ｐ１とを電気的に切り離し、スイッチＳＷ２も開き、入力部１１と出力部１２とを電気的に切り離す。入力値生成部１３は、入力値を生成し、その値を入力部１１に供給する。故障判定部１４は、入力部１１の検査を有効とする旨の入力部検査信号が入力されると、入力値生成部１３で生成された値と、その値を入力した入力部１１からの出力値とを比較する。ここで、両者の値が一致していれば、故障判定部１４は、入力部１１が正常と判定する。両者が異なる値である場合、故障判定部１４は、入力部１１が故障していると判定する。そして、故障判定部１４は、判定結果ｂを出力する。
【００１８】
なお、判定結果ａ，ｂは、専用の出力端子などによって、出力されるようにしてもよいし、制御部１５が判定結果ａ，ｂに応じて、入力値生成部１３に、判定結果ａ，ｂに応じた値を生成させ、入出力端子Ｐ１から出力させるようにしてもよい。これにより、出力部１２が故障している場合でも、判定結果ａ，ｂを半導体集積回路１０の外部に通知することができる。詳細については後述する。
【００１９】
また、故障判定部１４に入力する入力値は、入力値供給部１３ｂの値を用いてもよいし、入力値決定部１３ａにより決定された入力値を用いてもよい。
このように、本実施の形態の半導体集積回路１０では、入力部１１の故障検出を行う際に、スイッチＳＷ１，ＳＷ２により、入力部１１を入出力端子Ｐ１及び出力部１２から電気的に切り離し、入力値生成部１３にて生成した入力値を入力部１１に入力している。そして、故障判定部１４が、その入力値を入力部１１からの出力値と比較して故障の有無を判定するので、入力部１１の故障を、出力部１２とは独立して検出することができる。
【００２０】
また、本実施の形態の半導体集積回路１０では、出力部１２を検査する場合、スイッチＳＷ２を閉じて出力部１２と故障判定部１４とを電気的に接続し、故障判定部１４が、出力部１２への入力値と出力部１２からの出力値とを比較して故障の有無を判定している。そのため、出力部１２の故障も、入力部１１と独立して検出することができる。
【００２１】
なお、上記では、入出力端子Ｐ１が１つで、入力部１１と出力部１２を有した入出力回路が１つの場合について説明しているが、複数あってもよい。その場合、たとえば、各入出力端子に応じて、図１に示したような入力部１１、出力部１２、スイッチＳＷ１，ＳＷ２などが設けられる。また、入出力回路が複数ある場合、複数の入出力回路と、１つの故障判定部１４の間にセレクタを設け、たとえば、制御部１５の制御のもと、検査する入出力回路に応じて故障判定部１４に入力する信号をセレクタで切り替えるようにしてもよい。
（第２の実施の形態）
図２は、本実施の形態のマイクロコントローラの一例の構成を示す図である。
【００２２】
マイクロコントローラ２０は、プロセッサ２１、入出力制御部２２、入出力部２３、通信マクロ２４−１，２４−２を有している。プロセッサ２１と、入出力制御部２２及び通信マクロ２４−１，２４−２は、バス２５により接続されている。
【００２３】
このようなマイクロコントローラ２０は、たとえば、１または複数の半導体集積回路を用いて実現される。
プロセッサ２１は、前述の半導体集積回路１０の制御部１５に相当し、たとえば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などであり、マイクロコントローラ２０の各部を制御する。
【００２４】
入出力制御部２２は、入出力部２３の制御や検査などを行う。
入出力部２３は、入出力端子Ｐ１０，Ｐ１１，Ｐ１２，…，Ｐｎを介して、マイクロコントローラ２０の外部との間で、信号の送受信を行う。
【００２５】
通信マクロ２４−１，２４−２は、たとえば、ＵＳＢ（Universal Serial Bus）や、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）、Ｉ2Ｃバス、ＣＡＮ（Controller Area Network）バスなどのインターフェース回路である。
【００２６】
マイクロコントローラ２０は、そのほかにも、たとえば、ＲＡＭ（Random Access Memory）や、プロセッサ２１が実行するＯＳ（Operation System）や、各種プログラム、各種データを格納するフラッシュメモリなどを有しているが図示を省略している。
【００２７】
図３は、入出力制御部と入出力回路の一例の構成を示す図である。
入出力制御部２２は、入力値決定部３０、故障判定部４０、割り込み信号生成部５０を有している。
【００２８】
さらに、入出力制御部２２は、図２に示したプロセッサ２１からバス２５を介して、各種設定信号を設定するためのフリップフロップＦ１，Ｆ２，Ｆ３，Ｆ４，Ｆ５，Ｆ６，Ｆ７，Ｆ８，Ｆ９，Ｆ１０を有している。なお、図３では、各フリップフロップＦ１〜Ｆ１０とプロセッサ２１とを接続する信号線については図示を省略している。また、入出力制御部２２は、故障判定部４０での故障の有無の判定結果（以下これを故障フラグ１，２と呼ぶ場合もある）を保持するフリップフロップＦ１１，Ｆ１２を有している。これらのフリップフロップＦ１〜Ｆ１２には、図示を省略しているが、たとえば、クロック信号生成部によって生成されたクロック信号が入力され、そのクロック信号に同期して、プロセッサ２１からの各種設定値などがラッチされる。
【００２９】
入出力回路２３−１は、図２に示した入出力部２３において、入出力端子Ｐ１０に接続されている部分を示している。入出力回路２３−１は、入力部６０、出力部７０、入力値供給部８０、スイッチＳＷ１０，ＳＷ１１を有している。他の入出力端子Ｐ１１〜Ｐｎに接続された入出力回路についても同様の構成であるが、図示を省略している。
【００３０】
以下、入出力制御部２２の各構成の詳細を説明する。
（入力値決定部３０）
入力値決定部３０は、図１の半導体集積回路１０の入力値決定部１３ａに相当している。入力値決定部３０は、フリップフロップＦ３，Ｆ４に設定された値をもとに、プルアップ制御信号またはプルダウン制御信号を生成することで、入力部６０の検査時に入力部６０に供給する入力値を決定する。
【００３１】
入力値決定部３０は、たとえば、ＯＲ回路３１、ＡＮＤ回路３２、インバータ回路３３を有している。ＯＲ回路３１の一方の入力端子には、フリップフロップＦ３に設定された値が入力され、他方の入力端子には、フリップフロップＦ４に設定された値が反転されて入力される。ＯＲ回路３１の出力信号は、プルアップ制御信号として、入出力回路２３−１の入力値供給部８０に入力される。ＡＮＤ回路３２の一方の入力端子には、フリップフロップＦ３に設定された値が入力され、他方の入力端子には、フリップフロップＦ４に設定された値が入力される。ＡＮＤ回路３２の出力信号は、プルダウン制御信号として、入出力回路２３−１の入力値供給部８０に入力される。インバータ回路３３は、フリップフロップＦ３に設定された値を反転し、入力部６０に入力する前の入力値として、故障判定部４０に入力する。
【００３２】
なお、フリップフロップＦ３には、プルアップ制御とプルダウン制御のいずれを行うか選択するための設定値（以下、プルアップダウン選択設定値という）が設定される。また、フリップフロップＦ４には、プルアップ制御またはプルダウン制御自体を行うか否かの設定値（以下、プルアップダウン制御設定値という）が設定される。
【００３３】
図４は、プルアップダウン制御設定値、プルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号の関係を示す図である。
プルアップダウン制御設定値が“０”の場合には、プルアップダウン選択設定値の値によらず、プルアップ制御信号は“１”、プルダウン制御信号は“０”となる。
【００３４】
プルアップダウン制御設定値が“１”の場合には、プルアップダウン選択設定値が“０”であると、プルアップ制御信号及びプルダウン制御信号は“０”となる。プルアップダウン選択設定値が“１”であると、プルアップ制御信号及びプルダウン制御信号は“１”となる。
（故障判定部４０）
故障判定部４０は、図１の半導体集積回路１０の故障判定部１４に相当している。故障判定部４０は、入力部６０に入力する入力値と、入力部６０からの出力値とを比較して、入力部６０の故障の有無を判定する。また、故障判定部４０は、出力部７０に入力される入力値（プロセッサ２１によってフリップフロップＦ５に保持される出力信号）と、出力部７０からの出力値とを比較して、出力部７０の故障の有無を判定する。
【００３５】
故障判定部４０は、ＥｘＮＯＲ回路４１，４２、ＮＯＲ回路４３，４４、インバータ回路４５を有している。ＥｘＮＯＲ回路４１の一方の入力端子は、スイッチＳＷ１１と入力部６０間のノードに接続されている。スイッチＳＷ１１のオン時には、入力値供給部８０を介して出力部７０からの出力値が入力される。ＥｘＮＯＲ回路４１の他方の入力端子には、出力部７０に入力される入力値が入力される。ＥｘＮＯＲ回路４１の出力信号は、ＮＯＲ回路４３の第１の入力端子に入力される。
【００３６】
ＥｘＮＯＲ回路４２の一方の入力端子には、入力部６０からの出力値（プロセッサ２１への入力信号）が入力され、他方の入力端子には、入力値決定部３０が決定した入力値（インバータ回路３３の出力信号）が入力される。ＥｘＮＯＲ回路４２の出力信号は、ＮＯＲ回路４４の一方の入力端子に入力される。
【００３７】
ＮＯＲ回路４３の第２の入力端子には、フリップフロップＦ６に設定された入出力制御信号が入力され、第３の入力端子には、フリップフロップＦ７に設定された入力部検査信号が入力される。ＮＯＲ回路４３の出力信号は、フリップフロップＦ１１に保持されるとともに、割り込み信号生成部５０に入力される。
【００３８】
ＮＯＲ回路４４の他方の入力端子には、インバータ回路４５を介してフリップフロップＦ７に設定された入力部検査信号が入力される。ＮＯＲ回路４４の出力信号は、フリップフロップＦ１２に保持されるとともに、割り込み信号生成部５０に入力される。
【００３９】
なお、フリップフロップＦ６に設定される入出力制御信号は、本実施の形態の例では、“１”の場合に入力動作を行うことを示し、“０”の場合に出力動作を行うことを示す。また、フリップフロップＦ７に設定される入力部検査信号は、本実施の形態の例では、“１”の場合に入力部６０の検査を行うことを示す。これらの値は特に限定されるものではなく、インバータ回路などを追加することにより、適宜変更可能である。
【００４０】
図３で示される故障判定部４０の例では、ＮＯＲ回路４３は、入出力制御信号と入力部検査信号がともに、“０”である場合に、ＥｘＮＯＲ回路４１の出力信号に応じた値を出力する。すなわち、ＮＯＲ回路４３は、ＥｘＮＯＲ回路４１の出力信号が“１”の場合には、“０”を出力し、ＥｘＮＯＲ回路４１の出力信号が“０”の場合には、故障が発生している可能性があることを示す“１”を出力する。入出力制御信号と入力部検査信号のいずれか一方でも“１”の場合には、ＮＯＲ回路４３は、ＥｘＮＯＲ回路４１の出力信号によらず、“０”を出力する。
【００４１】
一方、ＮＯＲ回路４４は、入力部検査信号が“１”である場合に、ＥｘＮＯＲ回路４２の出力信号に応じた値を出力する。すなわち、ＮＯＲ回路４４は、ＥｘＮＯＲ回路４２の出力信号が“１”の場合には、“０”を出力し、ＥｘＮＯＲ回路４２の出力信号が“０”の場合には、故障が発生している可能性があることを示す“１”を出力する。入力部検査信号が“０”の場合には、ＮＯＲ回路４４は、ＥｘＮＯＲ回路４２の出力信号によらず、“０”を出力する。
【００４２】
フリップフロップＦ１１，Ｆ１２に保持される判定結果（故障フラグ１，２）は、たとえば、図２に示したバス２５を介してプロセッサ２１により読み出される。また、検査結果が、図示しない検査結果出力用の出力端子から出力されるようにしてもよい。
【００４３】
フリップフロップＦ１１，Ｆ１２に設定される検査結果は、フリップフロップＦ８，Ｆ９に、たとえば、“１”が設定されるとクリアされる。
なお、図３で示した故障判定部４０では、入力部６０に入力する前の入力値として、入力値決定部３０で生成された値をＥｘＮＯＲ回路４２に入力しているが、代わりに、スイッチＳＷ１１と入力部６０の間のノードの信号を入力するようにしてもよい。すなわち、ＥｘＮＯＲ回路４２は、入力値供給部８０によって供給される入力値を、入力するようにしてもよい。
（割り込み信号生成部５０）
割り込み信号生成部５０は、故障判定部４０にて入力部６０または出力部７０の故障が検出された場合に、プロセッサ２１に対して通知する割り込み信号を生成する。
【００４４】
割り込み信号生成部５０は、ＯＲ回路５１、ＡＮＤ回路５２，５３、フリップフロップ５４，５５，５６を有している。ＯＲ回路５１の一方の入力端子には、故障判定部４０のＮＯＲ回路４３の出力信号が入力され、他方の入力端子には、ＮＯＲ回路４４の出力信号が入力される。ＯＲ回路５１の出力信号は、フリップフロップ５４に入力される。ＯＲ回路５１は、入力部６０または、出力部７０のいずれか一方でも故障の可能性があると判定された場合、すなわち、ＮＯＲ回路４３，４４のいずれか一方でも“１”を出力している場合に、“１”を出力する。
【００４５】
直列に接続されたフリップフロップ５４〜５６と、ＡＮＤ回路５２は、デジタルフィルタを構成している。ＡＮＤ回路５２は、クロック信号の３クロック分以上、ＯＲ回路５１の出力が“１”である場合に、“１”を出力し、ノイズなどの影響でＯＲ回路５１の出力信号が“１”となり、割り込み信号が発生しないようにしている。なお、直列に接続するフリップフロップ５４〜５６の数は、特に３つに限定されるものではなく、２つまたは４つ以上としてもよい。ＡＮＤ回路５２の出力信号は、ＡＮＤ回路５３の一方の入力端子に入力される。
【００４６】
ＡＮＤ回路５３の他方の入力端子には、フリップフロップＦ１０に設定された割り込みを許可するか否かの設定値が入力される。ＡＮＤ回路５３は、フリップフロップＦ１０に設定された値が“１”で、ＡＮＤ回路５２の出力も“１”の場合に、割り込み信号として、“１”を出力する。
【００４７】
なお、割り込み信号生成部５０は、入出力制御部２２の外にあってもよい。
次に、入出力回路２３−１の各構成の詳細を説明する。
（入力部６０）
入力部６０は、図１で示した半導体集積回路１０の入力部１１に相当しており、バッファ回路６１と、ノイズ処理回路６２を有している。バッファ回路６１は、入力値を保持し、ノイズ処理回路６２に供給する。ノイズ処理回路６２は、入力値のノイズを除去して、プロセッサ２１への入力信号として出力する。
（出力部７０）
出力部７０は、図１で示した半導体集積回路１０の出力部１２に相当しており、プロセッサ２１側から送られてくる出力信号を、入出力端子Ｐ１０を介して出力する。また、出力部７０は、入力動作が行われる場合には、出力信号が入出力端子Ｐ１０に伝わらないようにする機能を有する。
【００４８】
出力部７０は、組み合わせ回路７１、ｐチャネル型ＭＯＳＦＥＴ（Metal-Oxide Semiconductor Field Effect Transistor）（以下ｐＭＯＳと略す）７２、ｎチャネル型ＭＯＳＦＥＴ（以下ｎＭＯＳと略す）７３を有している。
【００４９】
組み合わせ回路７１は、フリップフロップＦ５に保持される出力信号と、フリップフロップＦ６に設定された入出力制御信号に応じて、ｐＭＯＳ７２及びｎＭＯＳ７３をオンまたはオフする。
【００５０】
ｐＭＯＳ７２のソース端子には、たとえば、電源電圧が入力され、ｐＭＯＳ７２のドレイン端子は、ｎＭＯＳ７３のドレイン端子と接続されている。ｎＭＯＳ７３のソース端子は、たとえば、接地されている。ｐＭＯＳ７２及びｎＭＯＳ７３のゲート端子には、組み合わせ回路７１からの制御信号が入力される。
【００５１】
出力部７０からの出力信号は、ｐＭＯＳ７２とｎＭＯＳ７３との間のノードから取り出され、スイッチＳＷ１１、入力値供給部８０、スイッチＳＷ１０を介して入出力端子Ｐ１０から出力される。
【００５２】
図５は、入出力制御信号及び出力信号と、入出力端子の状態を示す図である。
なお、図５では、スイッチＳＷ１０，ＳＷ１１がともにオンで、入力値供給部８０が入力値を供給していない状態における、入出力端子Ｐ１０の状態を示している。
【００５３】
入出力制御信号が“０”の場合、フリップフロップＦ５に保持される出力信号が、“０”の場合、組み合わせ回路７１は、ｐＭＯＳ７２をオフ、ｎＭＯＳ７３をオンさせ、入出力端子Ｐ１０から“０”を出力させる。フリップフロップＦ５に保持される出力信号が、“１”の場合、組み合わせ回路７１は、ｐＭＯＳ７２をオン、ｎＭＯＳ７３をオフさせ、入出力端子Ｐ１０から“１”を出力させる。
【００５４】
一方、入出力制御信号が“１”の場合には、入力動作が行われるので、フリップフロップＦ５に保持される出力信号によらず、組み合わせ回路７１は、ｐＭＯＳ７２とｎＭＯＳ７３を両方オフさせる。このとき、入出力端子Ｐ１０の状態は、外部から入力される入力値によって決まる。
（入力値供給部８０）
入力値供給部８０は、図１で示した半導体集積回路１０の入力値供給部１３ｂに相当している。入力値供給部８０は、入力部６０の検査時に、入力値決定部３０から出力されるプルアップ制御信号またはプルダウン制御信号に応じて、入力部６０に“０”または“１”の入力値を供給する。
【００５５】
入力値供給部８０は、ｐＭＯＳ８１、ｎＭＯＳ８２、抵抗Ｒ１，Ｒ２を有している。
ｐＭＯＳ８１のソース端子には抵抗Ｒ１を介して、たとえば、電源電圧が入力され、ドレイン端子は、ｎＭＯＳ８２のドレイン端子に接続されている。ｎＭＯＳ８２のソース端子は抵抗Ｒ２を介して、たとえば、接地されている。また、ｐＭＯＳ８１のゲート端子には、入力値決定部３０から、プルアップ制御信号が入力され、ｎＭＯＳ８２のゲート端子には、入力値決定部３０から、プルダウン制御信号が入力される。ｐＭＯＳ８１とｎＭＯＳ８２の間のノードは、スイッチＳＷ１０とスイッチＳＷ１１間の信号線に接続されている。
【００５６】
プルアップ制御信号が“１”、プルダウン制御信号が“０”の場合には、ｐＭＯＳ８１、ｎＭＯＳ８２ともオフ状態となるので、入力値供給部８０による入力値の供給は行われない。プルアップ制御信号及びプルダウン制御信号がともに“０”である場合には、ｐＭＯＳ８１がオン、ｎＭＯＳ８２がオフとなるので、入力部６０に対して、“１”が入力値として入力される。プルアップ制御信号及びプルダウン制御信号がともに“１”である場合には、ｐＭＯＳ８１がオフ、ｎＭＯＳ８２がオンとなるので、入力部６０に対して、“０”が入力値として入力される。
【００５７】
なお、抵抗Ｒ１，Ｒ２は、ｐＭＯＳ８１とｎＭＯＳ８２間のノードに、過剰な電流が流れないように抑制している。
（スイッチＳＷ１０，ＳＷ１１）
スイッチＳＷ１０は、図１で示したスイッチＳＷ１に相当しており、入力部６０と入出力端子Ｐ１０間に設けられている。スイッチＳＷ１０は、フリップフロップＦ１に設定されたスイッチＳＷ１の制御用の設定値に応じてオンまたはオフされる。
【００５８】
スイッチＳＷ１１は、図１で示したスイッチＳＷ２に相当しており、入力部６０と、出力部７０との間に設けられている。スイッチＳＷ１１は、フリップフロップＦ２に設定されたスイッチＳＷ１１の制御用の設定値に応じてオンまたはオフされる。
【００５９】
スイッチＳＷ１０，ＳＷ１１は、たとえば、ｐＭＯＳまたはｎＭＯＳであり、ゲート端子に入力される制御用の設定値に応じて、オン状態となるかオフ状態となるかが制御される。
【００６０】
以上、入出力回路２３−１の構成を説明したが、図２に示した入出力端子Ｐ１１〜Ｐｎに接続された、図示しない入出力回路も同様の構成である。また、前述したフリップフロップＦ１，Ｆ２，Ｆ６に設定される設定値や制御信号は、たとえば、図示しないセレクタで選択された入出力回路に対して供給される。また、入出力回路から故障判定部４０に入力される信号についても、たとえば、プロセッサ２１により制御される図示しないセレクタにより、検査を行う入出力回路からの信号が選択され、故障判定部４０に入力される。
【００６１】
次に、本実施の形態のマイクロコントローラ２０の動作を説明する。
（電源投入時の故障検出処理）
以下では、電源投入時に、入力部６０及び出力部７０の検査を行う場合を例にして、マイクロコントローラ２０の動作を説明する。
【００６２】
図６は、電源投入時のマイクロコントローラにおける処理の流れを示すフローチャートである。
マイクロコントローラ２０の電源投入時、プロセッサ２１の制御のもと、スイッチＳＷ１０，ＳＷ１１はオフし、入力部６０を、出力部７０及び入出力端子Ｐ１０から切り離す（ステップＳ１）。
【００６３】
次に、プロセッサ２１の制御のもと、入力値決定部３０及び入力値供給部８０は、入力部６０への入力値を生成する（ステップＳ２）。具体的には、入力値決定部３０は、プロセッサ２１によりフリップフロップＦ３，Ｆ４に設定された設定値をもとに、プルアップ制御信号、プルダウン制御信号を生成する。入力値供給部８０は、プルアップ制御信号、プルダウン制御信号に応じて、ｐＭＯＳ８１またはｎＭＯＳ８２をオンまたはオフし、入力値“１”または“０”を生成する。
【００６４】
その後、プロセッサ２１は、フリップフロップＦ７の入力部検査信号を“１”に設定するとともに、フリップフロップＦ１２に設定される入力部６０の故障の有無の判定結果を示す故障フラグ２をクリアする（“０”にする）（ステップＳ３）。
【００６５】
故障判定部４０は、入力値決定部３０から送られてきた入力値と、入力部６０の出力値とを比較して、入力部６０に故障が発生しているか否かを判定する（ステップＳ４）。
ここで、故障判定部４０は、入力値決定部３０から送られてきた入力値と、入力部６０の出力値とが異なる場合には、フリップフロップＦ１２の故障フラグ２を“１”に設定する（ステップＳ５）。ステップＳ５の処理後、または、入力値決定部３０から送られてきた入力値と、入力部６０の出力値とが同じで、入力部６０が正常と判定された場合、プロセッサ２１は、入出力制御信号により出力部７０に出力信号を出力させる（ステップＳ６）。
【００６６】
そして、プロセッサ２１の制御のもと、スイッチＳＷ１１はオンし、出力部７０を故障判定部４０と接続し（ステップＳ７）、フリップフロップＦ１１に設定される出力部７０の故障の有無の判定結果を示す故障フラグ１をクリアする（ステップＳ８）。
【００６７】
故障判定部４０は、出力部７０に入力される前の出力信号と、出力部７０からの出力値とを比較して、出力部７０に故障が発生しているか否かを判定する（ステップＳ９）。
ここで、故障判定部４０は、出力部７０に入力される前の出力信号と、出力部７０からの出力値とが異なる場合には、フリップフロップＦ１１の故障フラグ１を“１”に設定する（ステップＳ１０）。ステップＳ１０の処理後、または、出力部７０に入力される前の出力信号と、出力部７０からの出力値とが同じで出力部７０が正常と判定された場合、プロセッサ２１の制御のもと、スイッチＳＷ１０はオンする（ステップＳ１１）。これにより、入力部６０及び出力部７０が、入出力端子Ｐ１０と電気的に接続され、通常動作に移行する。
【００６８】
なお、上記では、入力部６０の検査を先に行う場合について説明しているが、出力部７０の検査を先に行ってもよい。すなわち、最初にスイッチＳＷ１０のみをオフし、ステップＳ６，Ｓ８〜Ｓ１０の処理を行い、その後、スイッチＳＷ１１もオフし、ステップＳ２〜Ｓ５の処理を行い、最後に、スイッチＳＷ１０，ＳＷ１１を両方オンして通常動作に移行するようにしてもよい。
【００６９】
次に、電源投入時の故障検出処理時におけるマイクロコントローラの各部の信号の一例を、タイミングチャートを用いて説明する。
図７は、電源投入時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。設定値名や信号名の横に括弧で記載した符号は、その設定値や信号が保持される、図３で示したフリップフロップの符号を示している。
【００７０】
なお、以下に説明する各信号や設定値などの値は、あくまで一例であり、たとえば、図３に示した回路構成を変更することにより、適宜変更可能である。
図７には、上から、フリップフロップＦ１に設定されるスイッチＳＷ１０の制御用の設定値、フリップフロップＦ２に設定されるスイッチＳＷ１１の制御用の設定値が示されている。また、フリップフロップＦ４に設定されるプルアップダウン制御設定値、フリップフロップＦ３に設定されるプルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号が示されている。さらに、入力部検査信号、故障フラグ１クリア設定値、故障フラグ２クリア設定値、故障フラグ１、故障フラグ２、入出力制御信号及びフリップフロップＦ５に保持される出力信号が示されている。
【００７１】
なお、故障フラグ１クリア設定値は、故障フラグ１をクリアするか否かを示す値であり、フリップフロップＦ８に設定される値である。故障フラグ２クリア設定値は、故障フラグ２をクリアするか否かを示す値であり、フリップフロップＦ９に設定される値である。なお、図示を省略するが、電源投入時は、割り込み信号を発生しないようにするために、たとえば、フリップフロップＦ１０に設定される値は“０”としておく。
【００７２】
マイクロコントローラ２０の電源投入時、プロセッサ２１は図示しないフラッシュメモリなどの記憶部に記憶されたプログラムを実行する。このときプロセッサ２１は、フリップフロップＦ１，Ｆ２にスイッチＳＷ１０，ＳＷ１１をオフにする旨の制御設定値“１”を設定する（タイミングｔ１）。これにより、スイッチＳＷ１０は、入力部６０と入出力端子Ｐ１０とを電気的に切り離し、スイッチＳＷ１１は、入力部６０と出力部７０とを電気的に切り離す。このように、制御用の設定値として“１”が入力されたときにオフとなるスイッチＳＷ１０，ＳＷ１１として、たとえば、ゲート端子に、制御用の設定値を入力するｐＭＯＳが適用可能である。
【００７３】
次に、プロセッサ２１は、入力部６０に、入力値供給部８０により入力値“１”を供給するため、プルアップダウン制御設定値を“１”とする（タイミングｔ２）。プルアップダウン選択設定値が“０”の場合、プルアップ制御信号は“０”となり、プルダウン制御信号も“０”である。これにより、入力値供給部８０のｐＭＯＳ８１がオン、ｎＭＯＳ８２がオフ状態となるので、入力部６０には、入力値“１”が供給される。また、入力値決定部３０から、故障判定部４０に対しても、入力値“１”が入力される。
【００７４】
その後、プロセッサ２１は、入力部検査信号を“１”とし、故障判定部４０において、入力部６０の故障検出を有効にしたのち（タイミングｔ３）、故障フラグ２クリア設定値を“１”にし（タイミングｔ４）、故障フラグ２をクリアする。次に、プロセッサ２１は故障フラグ２クリア設定値を“０”に戻すと（タイミングｔ５）、故障判定部４０により、入力部６０の故障判定結果が故障フラグ２としてフリップフロップＦ１２に設定される。図７に示した例では、故障フラグ２が“１”に立ち上がっており、入力部６０に故障が発生している可能性があることが、たとえば、プロセッサ２１から確認可能となる。
【００７５】
次に、プロセッサ２１は、入力部検査信号を“０”に設定する（タイミングｔ６）。これにより、故障判定部４０は、入力部６０の故障検出を無効にする。また、プロセッサ２１は、フリップフロップＦ４のプルアップダウン制御設定値を“０”とする（タイミングｔ７）。これにより、入力値決定部３０は、プルアップ制御信号を“１”とするので、入力値供給部８０のｐＭＯＳ８１はオフし、ｎＭＯＳ８２もオフする。
【００７６】
続いて、プロセッサ２１は、入出力制御信号を“０”に設定するとともに、フリップフロップＦ５に設定する出力信号として、たとえば、“０”を設定する（タイミングｔ８）。そして、プロセッサ２１は、フリップフロップＦ２のスイッチＳＷ１１の制御用の設定値を“０”に変更する（タイミングｔ９）。これにより、スイッチＳＷ１１はオンし、出力部７０の出力値が、故障判定部４０に入力される。
【００７７】
その後、プロセッサ２１は、故障フラグ１クリア設定値を“１”にし（タイミングｔ１０）、故障フラグ１をクリアする。次に、プロセッサ２１は故障フラグ１クリア設定値を“０”に戻すと（タイミングｔ１１）、故障判定部４０により、出力部７０の故障判定結果が故障フラグ１としてフリップフロップＦ１１に設定される。図７に示した例では、故障フラグ１が“１”に立ち上がっており、出力部７０に故障が発生した可能性があることが、たとえば、プロセッサ２１から確認可能となる。
【００７８】
たとえば、プロセッサ２１は、故障フラグ１，２の値を判定して、出力部７０が正常の場合には、出力部７０を介して、入出力端子Ｐ１０から、出力部７０が正常である旨の判定結果と、入力部６０の故障の有無の判定結果を出力する。出力部７０が故障していると判定された場合には、プロセッサ２１は、たとえば、正常と判定された他の入出力回路から、図２に示したような入出力端子Ｐ１１〜Ｐｎを介して判定結果を出力する。
【００７９】
また、プロセッサ２１は、たとえば、スイッチＳＷ１１をオフして、出力部７０と、入出力端子Ｐ１０とを切り離したのち、入力値供給部８０により、入力部６０と、出力部７０の故障の有無の判定結果を示す値を生成させるようにしてもよい。
【００８０】
たとえば、プロセッサ２１の制御のもと、入力値決定部３０及び入力値供給部８０は、出力部７０が故障していることを示すために、入力値供給部８０のｐＭＯＳ８１とｎＭＯＳ８２をともにオフし、ハイインピーダンスの信号を入出力端子Ｐ１０に出力させる。その後、プロセッサ２１の制御のもと、入力値決定部３０及び入力値供給部８０は、入力部６０の検査結果に応じて、ｐＭＯＳ８１またはｎＭＯＳ８２をオンさせ、“１”または“０”を、入出力端子Ｐ１０を介して出力すればよい。
【００８１】
なお、故障フラグ１，２の値を、専用の出力端子により直接読み出すようにしてもよい。
入力部６０と出力部７０の検査が終わると、プロセッサ２１は、スイッチＳＷ１０の制御用の設定値を“０”とする（タイミングｔ１２）。これにより、スイッチＳＷ１０はオンし、入力部６０と入出力端子Ｐ１０間が電気的に接続されるともに、出力部７０と入出力端子Ｐ１０間が電気的に接続され、マイクロコントローラ２０は、通常動作モードに移行する。
【００８２】
以上のように、本実施の形態のマイクロコントローラ２０では、たとえば、電源投入時に、入力部６０の検査を行う際に、スイッチＳＷ１０，ＳＷ１１により、入力部６０を入出力端子Ｐ１０及び出力部７０から切り離す。そして、入力値決定部３０及び入力値供給部８０は、生成した入力値を入力部６０に入力し、故障判定部４０が、その入力値を入力部６０からの出力値と比較して故障を検査するので、入力部６０の故障を、出力部７０とは独立に検出することができる。また、出力部７０についても独立に検査することができる。
【００８３】
次に、通常動作時の故障検出処理を説明する。
（通常動作時の故障検出処理）
マイクロコントローラ２０は、通常動作時には、たとえば、出力部７０の検査を行う。電源投入時の検査で、入力部６０の故障が検出された場合には、入力部６０は用いられない。
【００８４】
図８は、通常動作時のマイクロコントローラにおける処理の流れを示すフローチャートである。
プロセッサ２１は、所定のアプリケーションプログラムなどを実行する通常動作を行う（ステップＳ２０）。このような通常動作時において、出力動作が行われると、故障判定部４０は、出力部７０に故障があるか否かを判定する（ステップＳ２１）。ここで、故障がなければ、プロセッサ２１は、通常動作を続ける。故障があると判定された場合には、故障判定部４０は、フリップフロップＦ１１の故障フラグ１を“１”に設定する（ステップＳ２２）。そして、割り込み信号生成部５０は、割り込み信号を生成し、プロセッサ２１に通知する（ステップＳ２３）。
【００８５】
割り込み信号を受けたプロセッサ２１は、通常動作を中止して割り込みルーチンを行い、まず、フリップフロップＦ２にスイッチＳＷ１１をオフにする旨の制御用の設定値を設定する。これにより、スイッチＳＷ１１はオフし、出力部７０と入出力端子Ｐ１０とを切り離す（ステップＳ２４）。
【００８６】
次に、プロセッサ２１の制御のもと、入力値決定部３０及び入力値供給部８０は、入出力端子Ｐ１０に設定する固定値を生成し（ステップＳ２５）、入出力端子Ｐ１０を固定値で固定する（ステップＳ２６）。たとえば、入力値決定部３０は、プルアップ制御信号、プルダウン制御信号により、ｐＭＯＳ８１、ｎＭＯＳ８２をオンまたはオフさせて固定値“１”，“０”または“Ｈｉ−Ｚ（ハイインピーダンス）”で入出力端子Ｐ１０を固定させる。
【００８７】
これにより、マイクロコントローラ２０の外部では、出力部７０に故障が発生したことを認識することができる。
次に、通常動作時の出力部７０の故障検出処理時における、マイクロコントローラの各部の信号の一例を、タイミングチャートを用いて説明する。
【００８８】
図９は、通常動作時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
図７で示した信号または設定値のほか、割り込み信号と、フリップフロップＦ１０に設定される、割り込み許可設定値の様子を示している。また、タイミングチャートの最上部に、故障検出処理におけるプログラムの切り替わりの様子を示している。
【００８９】
プロセッサ２１による所定のプログラムＡの実行中において、出力動作を行うために入出力制御信号が“０”となると（タイミングｔ２０）、入力部検査信号が“０”の状態であるので、故障判定部４０は、出力部７０の故障検出処理を開始する。プロセッサ２１は、故障フラグ１クリア設定値を“１”にし（タイミングｔ２１）、故障フラグ１をクリアする。次に、プロセッサ２１は、フリップフロップＦ１０の割り込み許可設定値を“１”として、割り込み信号の発生を許可する（タイミングｔ２２）。その後、プロセッサ２１は故障フラグ１クリア設定値を“０”に戻すと（タイミングｔ２３）、故障判定部４０により、出力部７０の故障の有無を示す判定結果が、故障フラグ１としてフリップフロップＦ１１に設定される。図９に示した例では、故障フラグ１が“１”に立ち上がっており、出力部７０に故障が発生した可能性があることが示されている。出力部７０に故障が発生したと判定された場合、割り込み信号生成部５０は、割り込み信号（“１”の信号）を生成し、プロセッサ２１に通知する。プロセッサ２１は、プログラムＡを中段して、プログラムＢ（割り込みルーチン）を実行する。
【００９０】
割り込みルーチンにおいて、プロセッサ２１は、割り込み許可設定値を“０”に戻すと（タイミングｔ２４）、割り込み信号が“０”となる。プロセッサ２１は、出力部７０に故障が発生している可能性があることを外部に通知するために、まず、スイッチＳＷ１１制御用設定値を“１”とする（タイミングｔ２５）。これにより、スイッチＳＷ１１はオフし、出力部７０と入出力端子Ｐ１０とが切り離される。その後、プロセッサ２１による制御のもと、入力値決定部３０及び入力値供給部８０は、たとえば、入出力端子Ｐ１０を所定の信号レベルに固定する。図９に示されている例では、プロセッサ２１により、プルアップダウン制御設定値が“１”に設定されたとき（タイミングｔ２６）、プルアップダウン選択設定値が“０”であるので、プルアップ制御信号が“０”となる。これにより、入力値供給部８０のｐＭＯＳ８１がオンし、入出力端子Ｐ１０は、ハイレベル（“１”）で固定される。
【００９１】
これにより、マイクロコントローラ２０の外部では、出力部７０に故障が発生したことを認識することができる。
図１０は、本実施の形態のマイクロコントローラを含んだシステムの一例の構成を示す図である。
【００９２】
本実施の形態のマイクロコントローラ２０は、たとえば、ＰＣ（Personal Computer）１０１、表示装置１０２及びその他のマイクロコントローラ１０３−１，１０３−２，１０３−３などと接続されており、互いに情報の送受信を行っている。
【００９３】
マイクロコントローラ２０の入力部６０または出力部７０の故障の有無の判定結果は、前述したように、たとえば、専用の出力端子や、マイクロコントローラ２０の入出力端子Ｐ１０〜Ｐｎを介して、外部のＰＣ１０１や表示装置１０２から検出可能である。ＰＣ１０１や表示装置１０２は、たとえば、検出した故障判定結果を、ユーザが認識可能なように、画面などに表示する。
【００９４】
以上、実施の形態に基づき、本発明の半導体集積回路、故障検出方法及びマイクロコントローラの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００９５】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第１のスイッチと、
前記入力部と前記出力部との間に設けられた第２のスイッチと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記第１のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第２のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする半導体集積回路。
【００９６】
（付記２）  前記出力部は、前記第２のスイッチを介して前記故障判定部に接続されており、前記出力部の検査時に、前記第２のスイッチは前記出力部と前記故障判定部とを電気的に接続し、前記故障判定部は、前記出力部への入力値と、前記出力部からの出力値とを比較し、前記出力部の故障の有無を判定することを特徴とする付記１記載の半導体集積回路。
【００９７】
（付記３）  前記第２のスイッチは、前記出力部の故障時、前記出力部と前記入出力端子とを電気的に切り離し、前記入力値生成部は、前記故障判定部での判定結果を示す値を生成し、前記値を前記入出力端子から出力することを特徴とする付記１または２に記載の半導体集積回路。
【００９８】
（付記４）  前記入出力値生成部は、３種類の電圧レベルのいずれかで表わされた前記値を前記入出力端子から出力することを特徴とする付記３記載の半導体集積回路。
（付記５）  前記入力部または前記出力部のいずれの検査を行うかに応じて、前記第１のスイッチまたは前記第２のスイッチの制御を行う制御部を有することを特徴とする付記１乃至４のいずれか一項に記載の半導体集積回路。
【００９９】
（付記６）  入出力端子を介して信号を受信する入力部、または前記入出力端子を介して信号を出力する出力部の故障を検出する故障検出方法において、
前記入力部の検査時に、第１のスイッチが前記入力部と前記入出力端子とを電気的に切り離すとともに、第２のスイッチが前記入力部と前記出力部とを電気的に切り離し、
入力値生成部が入力値を前記入力部に入力し、
故障判定部が前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする故障検出方法。
【０１００】
（付記７）  入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第１のスイッチと、
前記入力部と前記出力部との間に設けられた第２のスイッチと、
前記第１のスイッチまたは前記第２のスイッチを制御するプロセッサと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記プロセッサの制御のもと、前記第１のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第２のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とするマイクロコントローラ。
【符号の説明】
【０１０１】
１０  半導体集積回路
１１  入力部
１２  出力部
１３  入力値生成部
１３ａ  入力値決定部
１３ｂ  入力値供給部
１４  故障判定部
１５  制御部
ＳＷ１，ＳＷ２スイッチ
Ｐ１  入出力端子
【図１】
2011038987.tif 000003
【図２】
2011038987.tif 000004
【図３】
2011038987.tif 000005
【図４】
2011038987.tif 000006
【図５】
2011038987.tif 000007
【図６】
2011038987.tif 000008
【図７】
2011038987.tif 000009
【図８】
2011038987.tif 000010
【図９】
2011038987.tif 000011
【図１０】
2011038987.tif 000012