説明

半導体集積回路、故障検出方法及びマイクロコントローラ

【課題】出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出可能な半導体集積回路を提供する。
【解決手段】入力部11と入出力端子P1との間にスイッチSW1を設け、入力部11と出力部12との間にスイッチSW2を設け、入力部11の検査時に、スイッチSW1は入力部11と入出力端子P1とを電気的に切り離し、スイッチSW2は入力部11と出力部12とを電気的に切り離し、入力値生成部13は、入力値を入力部11に入力し、故障判定部14は、入力値と、入力部11からの出力値とを比較し、入力部11の故障の有無を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路、故障検出方法及びマイクロコントローラに関する。
【背景技術】
【0002】
従来、マイクロコントローラ(マイクロコンピュータと呼ばれることもある)の出力ラッチ回路などの出力部の故障を検出するために、出力ラッチ回路へ入力前の出力信号と、出力ラッチ回路からの出力信号とを比較する技術があった。
【0003】
また、検査時に、入力部と出力部とをスイッチで接続し、出力部に信号を入力して、入力した信号と、出力部及び入力部を介して出てくる信号とを比較することで、入出力回路の故障を検出する技術があった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平5−12172号公報
【特許文献2】特開昭61−070640号公報
【特許文献3】特開平9−185562号公報
【特許文献4】特開2002−82714号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出することはできなかった。
上記の点を鑑みて、本発明は、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出可能な半導体集積回路、故障検出方法及びマイクロコントローラを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、以下のような半導体集積回路が提供される。
この半導体集積回路は、入出力端子を介して信号を受信する入力部と、前記入出力端子を介して信号を出力する出力部と、前記入力部への入力値を生成する入力値生成部と、前記入力部と前記入出力端子との間に設けられた第1のスイッチと、前記入力部と前記出力部との間に設けられた第2のスイッチと、前記入力部または前記出力部の故障の有無を判定する故障判定部と、を有し、前記入力部の検査時に、前記第1のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第2のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定する。
【発明の効果】
【0007】
開示の半導体集積回路、故障検出方法及びマイクロコントローラによれば、出力部と同じ入出力端子に接続された入力部の故障を、出力部とは独立して検出できる。
【図面の簡単な説明】
【0008】
【図1】本実施の形態の半導体集積回路の構成を示す図である。
【図2】本実施の形態のマイクロコントローラの一例の構成を示す図である。
【図3】入出力制御部と入出力回路の一例の構成を示す図である。
【図4】プルアップダウン制御設定値、プルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号の関係を示す図である。
【図5】入出力制御信号及び出力信号と、入出力端子の状態を示す図である。
【図6】電源投入時のマイクロコントローラにおける処理の流れを示すフローチャートである。
【図7】電源投入時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
【図8】通常動作時のマイクロコントローラにおける処理の流れを示すフローチャートである。
【図9】通常動作時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
【図10】本実施の形態のマイクロコントローラを含んだシステムの一例の構成を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、本実施の形態の半導体集積回路の構成を示す図である。
【0010】
半導体集積回路10は、入力部11、出力部12、入力値生成部13、故障判定部14、制御部15、スイッチSW1,SW2を有している。
入力部11は、入出力端子P1を介して外部からの信号を入力する。入力部11は、たとえば、バッファや入力信号のノイズを除去するためのノイズ除去機能などを有する。
【0011】
出力部12は、たとえば、出力バッファ回路などを有し、半導体集積回路10の出力信号を、入出力端子P1を介して外部に出力する。また、出力部12は、たとえば、入出力端子P1から信号の入力が行われる旨を示す入出力制御信号が入力されている場合は、出力信号を出力させないようにしている。
【0012】
入力値生成部13は、入力部11の検査時に入力部11に入力するための、入力値を生成する。入力値生成部13は、たとえば、入力値を決定する入力値決定部13aと、入力値を入力部11に供給する入力値供給部13bを有している。また、入力値生成部13は、故障判定部14での故障の有無の判定結果を示す値を生成し、入出力端子P1から出力するようにしてもよい。そのときの値は、たとえば、3種類の電圧レベル(ハイレベル(“1”)、ロウレベル(“0”)、ハイインピーダンスレベル(“Hi−Z”)で表す。
【0013】
故障判定部14は、入力部11または出力部12の故障の有無を判定する。故障判定部14では、入力部11に入力される値と、入力部11から出力される値とを比較して、入力部11が正常か否か判定する。また、故障判定部14では、出力部12に入力される値と、出力部12から出力される値とを比較して、出力部12が正常か否か判定する。入力部11の検査を行うか出力部12の検査を行うかは、たとえば、制御部15から送信される入力部検査信号によって決定される。たとえば、入力部検査信号が“1”の場合には、入力部11の検査を有効とし、出力部12の故障検出を無効とする。入力部検査信号が“0”の場合には、入力部11の検査を無効とし、出力部12の検査を有効とする。
【0014】
スイッチSW1は、入力部11と入出力端子P1間に設けられている。
スイッチSW2は、入力部11と出力部12間に設けられている。
制御部15は、たとえば、入出力制御信号、入力部検査信号、スイッチSW1,SW2をオンまたはオフするための制御信号や、外部に出力する出力信号などを生成して出力する。なお、制御部15は、ワンチップのマイクロコントローラのように半導体集積回路10の内部に設けられてもよいし、外部に設けられていてもよい。
【0015】
以下、図1で示した半導体集積回路10の動作を説明する。
半導体集積回路10において、通常の出力動作時には、制御部15の制御のもと、スイッチSW1,SW2は閉じ、出力部12と入出力端子P1とを電気的に接続する。このとき、出力部12に入力された出力信号が、入出力端子P1から出力される。出力部12の検査を有効とする入力部検査信号が入力されている場合、故障判定部14は、出力部12に入力される値と、出力部12から出力される値とを比較する。ここで、両者の値が一致していれば、故障判定部14は、出力部12が正常と判定する。両者が異なる値である場合、故障判定部14は、出力部12が故障していると判定する。そして、故障判定部14は、判定結果aを出力する。
【0016】
入力動作時には、スイッチSW1,SW2は閉じ、入出力端子P1から入力された入力信号が、入力部11により半導体集積回路10に入力される。このとき、入力動作中であることを示す入出力制御信号により、出力部12は出力信号を出力しないようにしている。なお、入力動作時にはスイッチSW2を開いてもよい。
【0017】
入力部11を検査する場合、制御部15の制御のもと、スイッチSW1は開き、入力部11と入出力端子P1とを電気的に切り離し、スイッチSW2も開き、入力部11と出力部12とを電気的に切り離す。入力値生成部13は、入力値を生成し、その値を入力部11に供給する。故障判定部14は、入力部11の検査を有効とする旨の入力部検査信号が入力されると、入力値生成部13で生成された値と、その値を入力した入力部11からの出力値とを比較する。ここで、両者の値が一致していれば、故障判定部14は、入力部11が正常と判定する。両者が異なる値である場合、故障判定部14は、入力部11が故障していると判定する。そして、故障判定部14は、判定結果bを出力する。
【0018】
なお、判定結果a,bは、専用の出力端子などによって、出力されるようにしてもよいし、制御部15が判定結果a,bに応じて、入力値生成部13に、判定結果a,bに応じた値を生成させ、入出力端子P1から出力させるようにしてもよい。これにより、出力部12が故障している場合でも、判定結果a,bを半導体集積回路10の外部に通知することができる。詳細については後述する。
【0019】
また、故障判定部14に入力する入力値は、入力値供給部13bの値を用いてもよいし、入力値決定部13aにより決定された入力値を用いてもよい。
このように、本実施の形態の半導体集積回路10では、入力部11の故障検出を行う際に、スイッチSW1,SW2により、入力部11を入出力端子P1及び出力部12から電気的に切り離し、入力値生成部13にて生成した入力値を入力部11に入力している。そして、故障判定部14が、その入力値を入力部11からの出力値と比較して故障の有無を判定するので、入力部11の故障を、出力部12とは独立して検出することができる。
【0020】
また、本実施の形態の半導体集積回路10では、出力部12を検査する場合、スイッチSW2を閉じて出力部12と故障判定部14とを電気的に接続し、故障判定部14が、出力部12への入力値と出力部12からの出力値とを比較して故障の有無を判定している。そのため、出力部12の故障も、入力部11と独立して検出することができる。
【0021】
なお、上記では、入出力端子P1が1つで、入力部11と出力部12を有した入出力回路が1つの場合について説明しているが、複数あってもよい。その場合、たとえば、各入出力端子に応じて、図1に示したような入力部11、出力部12、スイッチSW1,SW2などが設けられる。また、入出力回路が複数ある場合、複数の入出力回路と、1つの故障判定部14の間にセレクタを設け、たとえば、制御部15の制御のもと、検査する入出力回路に応じて故障判定部14に入力する信号をセレクタで切り替えるようにしてもよい。
(第2の実施の形態)
図2は、本実施の形態のマイクロコントローラの一例の構成を示す図である。
【0022】
マイクロコントローラ20は、プロセッサ21、入出力制御部22、入出力部23、通信マクロ24−1,24−2を有している。プロセッサ21と、入出力制御部22及び通信マクロ24−1,24−2は、バス25により接続されている。
【0023】
このようなマイクロコントローラ20は、たとえば、1または複数の半導体集積回路を用いて実現される。
プロセッサ21は、前述の半導体集積回路10の制御部15に相当し、たとえば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などであり、マイクロコントローラ20の各部を制御する。
【0024】
入出力制御部22は、入出力部23の制御や検査などを行う。
入出力部23は、入出力端子P10,P11,P12,…,Pnを介して、マイクロコントローラ20の外部との間で、信号の送受信を行う。
【0025】
通信マクロ24−1,24−2は、たとえば、USB(Universal Serial Bus)や、UART(Universal Asynchronous Receiver Transmitter)、I2Cバス、CAN(Controller Area Network)バスなどのインターフェース回路である。
【0026】
マイクロコントローラ20は、そのほかにも、たとえば、RAM(Random Access Memory)や、プロセッサ21が実行するOS(Operation System)や、各種プログラム、各種データを格納するフラッシュメモリなどを有しているが図示を省略している。
【0027】
図3は、入出力制御部と入出力回路の一例の構成を示す図である。
入出力制御部22は、入力値決定部30、故障判定部40、割り込み信号生成部50を有している。
【0028】
さらに、入出力制御部22は、図2に示したプロセッサ21からバス25を介して、各種設定信号を設定するためのフリップフロップF1,F2,F3,F4,F5,F6,F7,F8,F9,F10を有している。なお、図3では、各フリップフロップF1〜F10とプロセッサ21とを接続する信号線については図示を省略している。また、入出力制御部22は、故障判定部40での故障の有無の判定結果(以下これを故障フラグ1,2と呼ぶ場合もある)を保持するフリップフロップF11,F12を有している。これらのフリップフロップF1〜F12には、図示を省略しているが、たとえば、クロック信号生成部によって生成されたクロック信号が入力され、そのクロック信号に同期して、プロセッサ21からの各種設定値などがラッチされる。
【0029】
入出力回路23−1は、図2に示した入出力部23において、入出力端子P10に接続されている部分を示している。入出力回路23−1は、入力部60、出力部70、入力値供給部80、スイッチSW10,SW11を有している。他の入出力端子P11〜Pnに接続された入出力回路についても同様の構成であるが、図示を省略している。
【0030】
以下、入出力制御部22の各構成の詳細を説明する。
(入力値決定部30)
入力値決定部30は、図1の半導体集積回路10の入力値決定部13aに相当している。入力値決定部30は、フリップフロップF3,F4に設定された値をもとに、プルアップ制御信号またはプルダウン制御信号を生成することで、入力部60の検査時に入力部60に供給する入力値を決定する。
【0031】
入力値決定部30は、たとえば、OR回路31、AND回路32、インバータ回路33を有している。OR回路31の一方の入力端子には、フリップフロップF3に設定された値が入力され、他方の入力端子には、フリップフロップF4に設定された値が反転されて入力される。OR回路31の出力信号は、プルアップ制御信号として、入出力回路23−1の入力値供給部80に入力される。AND回路32の一方の入力端子には、フリップフロップF3に設定された値が入力され、他方の入力端子には、フリップフロップF4に設定された値が入力される。AND回路32の出力信号は、プルダウン制御信号として、入出力回路23−1の入力値供給部80に入力される。インバータ回路33は、フリップフロップF3に設定された値を反転し、入力部60に入力する前の入力値として、故障判定部40に入力する。
【0032】
なお、フリップフロップF3には、プルアップ制御とプルダウン制御のいずれを行うか選択するための設定値(以下、プルアップダウン選択設定値という)が設定される。また、フリップフロップF4には、プルアップ制御またはプルダウン制御自体を行うか否かの設定値(以下、プルアップダウン制御設定値という)が設定される。
【0033】
図4は、プルアップダウン制御設定値、プルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号の関係を示す図である。
プルアップダウン制御設定値が“0”の場合には、プルアップダウン選択設定値の値によらず、プルアップ制御信号は“1”、プルダウン制御信号は“0”となる。
【0034】
プルアップダウン制御設定値が“1”の場合には、プルアップダウン選択設定値が“0”であると、プルアップ制御信号及びプルダウン制御信号は“0”となる。プルアップダウン選択設定値が“1”であると、プルアップ制御信号及びプルダウン制御信号は“1”となる。
(故障判定部40)
故障判定部40は、図1の半導体集積回路10の故障判定部14に相当している。故障判定部40は、入力部60に入力する入力値と、入力部60からの出力値とを比較して、入力部60の故障の有無を判定する。また、故障判定部40は、出力部70に入力される入力値(プロセッサ21によってフリップフロップF5に保持される出力信号)と、出力部70からの出力値とを比較して、出力部70の故障の有無を判定する。
【0035】
故障判定部40は、ExNOR回路41,42、NOR回路43,44、インバータ回路45を有している。ExNOR回路41の一方の入力端子は、スイッチSW11と入力部60間のノードに接続されている。スイッチSW11のオン時には、入力値供給部80を介して出力部70からの出力値が入力される。ExNOR回路41の他方の入力端子には、出力部70に入力される入力値が入力される。ExNOR回路41の出力信号は、NOR回路43の第1の入力端子に入力される。
【0036】
ExNOR回路42の一方の入力端子には、入力部60からの出力値(プロセッサ21への入力信号)が入力され、他方の入力端子には、入力値決定部30が決定した入力値(インバータ回路33の出力信号)が入力される。ExNOR回路42の出力信号は、NOR回路44の一方の入力端子に入力される。
【0037】
NOR回路43の第2の入力端子には、フリップフロップF6に設定された入出力制御信号が入力され、第3の入力端子には、フリップフロップF7に設定された入力部検査信号が入力される。NOR回路43の出力信号は、フリップフロップF11に保持されるとともに、割り込み信号生成部50に入力される。
【0038】
NOR回路44の他方の入力端子には、インバータ回路45を介してフリップフロップF7に設定された入力部検査信号が入力される。NOR回路44の出力信号は、フリップフロップF12に保持されるとともに、割り込み信号生成部50に入力される。
【0039】
なお、フリップフロップF6に設定される入出力制御信号は、本実施の形態の例では、“1”の場合に入力動作を行うことを示し、“0”の場合に出力動作を行うことを示す。また、フリップフロップF7に設定される入力部検査信号は、本実施の形態の例では、“1”の場合に入力部60の検査を行うことを示す。これらの値は特に限定されるものではなく、インバータ回路などを追加することにより、適宜変更可能である。
【0040】
図3で示される故障判定部40の例では、NOR回路43は、入出力制御信号と入力部検査信号がともに、“0”である場合に、ExNOR回路41の出力信号に応じた値を出力する。すなわち、NOR回路43は、ExNOR回路41の出力信号が“1”の場合には、“0”を出力し、ExNOR回路41の出力信号が“0”の場合には、故障が発生している可能性があることを示す“1”を出力する。入出力制御信号と入力部検査信号のいずれか一方でも“1”の場合には、NOR回路43は、ExNOR回路41の出力信号によらず、“0”を出力する。
【0041】
一方、NOR回路44は、入力部検査信号が“1”である場合に、ExNOR回路42の出力信号に応じた値を出力する。すなわち、NOR回路44は、ExNOR回路42の出力信号が“1”の場合には、“0”を出力し、ExNOR回路42の出力信号が“0”の場合には、故障が発生している可能性があることを示す“1”を出力する。入力部検査信号が“0”の場合には、NOR回路44は、ExNOR回路42の出力信号によらず、“0”を出力する。
【0042】
フリップフロップF11,F12に保持される判定結果(故障フラグ1,2)は、たとえば、図2に示したバス25を介してプロセッサ21により読み出される。また、検査結果が、図示しない検査結果出力用の出力端子から出力されるようにしてもよい。
【0043】
フリップフロップF11,F12に設定される検査結果は、フリップフロップF8,F9に、たとえば、“1”が設定されるとクリアされる。
なお、図3で示した故障判定部40では、入力部60に入力する前の入力値として、入力値決定部30で生成された値をExNOR回路42に入力しているが、代わりに、スイッチSW11と入力部60の間のノードの信号を入力するようにしてもよい。すなわち、ExNOR回路42は、入力値供給部80によって供給される入力値を、入力するようにしてもよい。
(割り込み信号生成部50)
割り込み信号生成部50は、故障判定部40にて入力部60または出力部70の故障が検出された場合に、プロセッサ21に対して通知する割り込み信号を生成する。
【0044】
割り込み信号生成部50は、OR回路51、AND回路52,53、フリップフロップ54,55,56を有している。OR回路51の一方の入力端子には、故障判定部40のNOR回路43の出力信号が入力され、他方の入力端子には、NOR回路44の出力信号が入力される。OR回路51の出力信号は、フリップフロップ54に入力される。OR回路51は、入力部60または、出力部70のいずれか一方でも故障の可能性があると判定された場合、すなわち、NOR回路43,44のいずれか一方でも“1”を出力している場合に、“1”を出力する。
【0045】
直列に接続されたフリップフロップ54〜56と、AND回路52は、デジタルフィルタを構成している。AND回路52は、クロック信号の3クロック分以上、OR回路51の出力が“1”である場合に、“1”を出力し、ノイズなどの影響でOR回路51の出力信号が“1”となり、割り込み信号が発生しないようにしている。なお、直列に接続するフリップフロップ54〜56の数は、特に3つに限定されるものではなく、2つまたは4つ以上としてもよい。AND回路52の出力信号は、AND回路53の一方の入力端子に入力される。
【0046】
AND回路53の他方の入力端子には、フリップフロップF10に設定された割り込みを許可するか否かの設定値が入力される。AND回路53は、フリップフロップF10に設定された値が“1”で、AND回路52の出力も“1”の場合に、割り込み信号として、“1”を出力する。
【0047】
なお、割り込み信号生成部50は、入出力制御部22の外にあってもよい。
次に、入出力回路23−1の各構成の詳細を説明する。
(入力部60)
入力部60は、図1で示した半導体集積回路10の入力部11に相当しており、バッファ回路61と、ノイズ処理回路62を有している。バッファ回路61は、入力値を保持し、ノイズ処理回路62に供給する。ノイズ処理回路62は、入力値のノイズを除去して、プロセッサ21への入力信号として出力する。
(出力部70)
出力部70は、図1で示した半導体集積回路10の出力部12に相当しており、プロセッサ21側から送られてくる出力信号を、入出力端子P10を介して出力する。また、出力部70は、入力動作が行われる場合には、出力信号が入出力端子P10に伝わらないようにする機能を有する。
【0048】
出力部70は、組み合わせ回路71、pチャネル型MOSFET(Metal-Oxide Semiconductor Field Effect Transistor)(以下pMOSと略す)72、nチャネル型MOSFET(以下nMOSと略す)73を有している。
【0049】
組み合わせ回路71は、フリップフロップF5に保持される出力信号と、フリップフロップF6に設定された入出力制御信号に応じて、pMOS72及びnMOS73をオンまたはオフする。
【0050】
pMOS72のソース端子には、たとえば、電源電圧が入力され、pMOS72のドレイン端子は、nMOS73のドレイン端子と接続されている。nMOS73のソース端子は、たとえば、接地されている。pMOS72及びnMOS73のゲート端子には、組み合わせ回路71からの制御信号が入力される。
【0051】
出力部70からの出力信号は、pMOS72とnMOS73との間のノードから取り出され、スイッチSW11、入力値供給部80、スイッチSW10を介して入出力端子P10から出力される。
【0052】
図5は、入出力制御信号及び出力信号と、入出力端子の状態を示す図である。
なお、図5では、スイッチSW10,SW11がともにオンで、入力値供給部80が入力値を供給していない状態における、入出力端子P10の状態を示している。
【0053】
入出力制御信号が“0”の場合、フリップフロップF5に保持される出力信号が、“0”の場合、組み合わせ回路71は、pMOS72をオフ、nMOS73をオンさせ、入出力端子P10から“0”を出力させる。フリップフロップF5に保持される出力信号が、“1”の場合、組み合わせ回路71は、pMOS72をオン、nMOS73をオフさせ、入出力端子P10から“1”を出力させる。
【0054】
一方、入出力制御信号が“1”の場合には、入力動作が行われるので、フリップフロップF5に保持される出力信号によらず、組み合わせ回路71は、pMOS72とnMOS73を両方オフさせる。このとき、入出力端子P10の状態は、外部から入力される入力値によって決まる。
(入力値供給部80)
入力値供給部80は、図1で示した半導体集積回路10の入力値供給部13bに相当している。入力値供給部80は、入力部60の検査時に、入力値決定部30から出力されるプルアップ制御信号またはプルダウン制御信号に応じて、入力部60に“0”または“1”の入力値を供給する。
【0055】
入力値供給部80は、pMOS81、nMOS82、抵抗R1,R2を有している。
pMOS81のソース端子には抵抗R1を介して、たとえば、電源電圧が入力され、ドレイン端子は、nMOS82のドレイン端子に接続されている。nMOS82のソース端子は抵抗R2を介して、たとえば、接地されている。また、pMOS81のゲート端子には、入力値決定部30から、プルアップ制御信号が入力され、nMOS82のゲート端子には、入力値決定部30から、プルダウン制御信号が入力される。pMOS81とnMOS82の間のノードは、スイッチSW10とスイッチSW11間の信号線に接続されている。
【0056】
プルアップ制御信号が“1”、プルダウン制御信号が“0”の場合には、pMOS81、nMOS82ともオフ状態となるので、入力値供給部80による入力値の供給は行われない。プルアップ制御信号及びプルダウン制御信号がともに“0”である場合には、pMOS81がオン、nMOS82がオフとなるので、入力部60に対して、“1”が入力値として入力される。プルアップ制御信号及びプルダウン制御信号がともに“1”である場合には、pMOS81がオフ、nMOS82がオンとなるので、入力部60に対して、“0”が入力値として入力される。
【0057】
なお、抵抗R1,R2は、pMOS81とnMOS82間のノードに、過剰な電流が流れないように抑制している。
(スイッチSW10,SW11)
スイッチSW10は、図1で示したスイッチSW1に相当しており、入力部60と入出力端子P10間に設けられている。スイッチSW10は、フリップフロップF1に設定されたスイッチSW1の制御用の設定値に応じてオンまたはオフされる。
【0058】
スイッチSW11は、図1で示したスイッチSW2に相当しており、入力部60と、出力部70との間に設けられている。スイッチSW11は、フリップフロップF2に設定されたスイッチSW11の制御用の設定値に応じてオンまたはオフされる。
【0059】
スイッチSW10,SW11は、たとえば、pMOSまたはnMOSであり、ゲート端子に入力される制御用の設定値に応じて、オン状態となるかオフ状態となるかが制御される。
【0060】
以上、入出力回路23−1の構成を説明したが、図2に示した入出力端子P11〜Pnに接続された、図示しない入出力回路も同様の構成である。また、前述したフリップフロップF1,F2,F6に設定される設定値や制御信号は、たとえば、図示しないセレクタで選択された入出力回路に対して供給される。また、入出力回路から故障判定部40に入力される信号についても、たとえば、プロセッサ21により制御される図示しないセレクタにより、検査を行う入出力回路からの信号が選択され、故障判定部40に入力される。
【0061】
次に、本実施の形態のマイクロコントローラ20の動作を説明する。
(電源投入時の故障検出処理)
以下では、電源投入時に、入力部60及び出力部70の検査を行う場合を例にして、マイクロコントローラ20の動作を説明する。
【0062】
図6は、電源投入時のマイクロコントローラにおける処理の流れを示すフローチャートである。
マイクロコントローラ20の電源投入時、プロセッサ21の制御のもと、スイッチSW10,SW11はオフし、入力部60を、出力部70及び入出力端子P10から切り離す(ステップS1)。
【0063】
次に、プロセッサ21の制御のもと、入力値決定部30及び入力値供給部80は、入力部60への入力値を生成する(ステップS2)。具体的には、入力値決定部30は、プロセッサ21によりフリップフロップF3,F4に設定された設定値をもとに、プルアップ制御信号、プルダウン制御信号を生成する。入力値供給部80は、プルアップ制御信号、プルダウン制御信号に応じて、pMOS81またはnMOS82をオンまたはオフし、入力値“1”または“0”を生成する。
【0064】
その後、プロセッサ21は、フリップフロップF7の入力部検査信号を“1”に設定するとともに、フリップフロップF12に設定される入力部60の故障の有無の判定結果を示す故障フラグ2をクリアする(“0”にする)(ステップS3)。
【0065】
故障判定部40は、入力値決定部30から送られてきた入力値と、入力部60の出力値とを比較して、入力部60に故障が発生しているか否かを判定する(ステップS4)。
ここで、故障判定部40は、入力値決定部30から送られてきた入力値と、入力部60の出力値とが異なる場合には、フリップフロップF12の故障フラグ2を“1”に設定する(ステップS5)。ステップS5の処理後、または、入力値決定部30から送られてきた入力値と、入力部60の出力値とが同じで、入力部60が正常と判定された場合、プロセッサ21は、入出力制御信号により出力部70に出力信号を出力させる(ステップS6)。
【0066】
そして、プロセッサ21の制御のもと、スイッチSW11はオンし、出力部70を故障判定部40と接続し(ステップS7)、フリップフロップF11に設定される出力部70の故障の有無の判定結果を示す故障フラグ1をクリアする(ステップS8)。
【0067】
故障判定部40は、出力部70に入力される前の出力信号と、出力部70からの出力値とを比較して、出力部70に故障が発生しているか否かを判定する(ステップS9)。
ここで、故障判定部40は、出力部70に入力される前の出力信号と、出力部70からの出力値とが異なる場合には、フリップフロップF11の故障フラグ1を“1”に設定する(ステップS10)。ステップS10の処理後、または、出力部70に入力される前の出力信号と、出力部70からの出力値とが同じで出力部70が正常と判定された場合、プロセッサ21の制御のもと、スイッチSW10はオンする(ステップS11)。これにより、入力部60及び出力部70が、入出力端子P10と電気的に接続され、通常動作に移行する。
【0068】
なお、上記では、入力部60の検査を先に行う場合について説明しているが、出力部70の検査を先に行ってもよい。すなわち、最初にスイッチSW10のみをオフし、ステップS6,S8〜S10の処理を行い、その後、スイッチSW11もオフし、ステップS2〜S5の処理を行い、最後に、スイッチSW10,SW11を両方オンして通常動作に移行するようにしてもよい。
【0069】
次に、電源投入時の故障検出処理時におけるマイクロコントローラの各部の信号の一例を、タイミングチャートを用いて説明する。
図7は、電源投入時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。設定値名や信号名の横に括弧で記載した符号は、その設定値や信号が保持される、図3で示したフリップフロップの符号を示している。
【0070】
なお、以下に説明する各信号や設定値などの値は、あくまで一例であり、たとえば、図3に示した回路構成を変更することにより、適宜変更可能である。
図7には、上から、フリップフロップF1に設定されるスイッチSW10の制御用の設定値、フリップフロップF2に設定されるスイッチSW11の制御用の設定値が示されている。また、フリップフロップF4に設定されるプルアップダウン制御設定値、フリップフロップF3に設定されるプルアップダウン選択設定値、プルアップ制御信号及びプルダウン制御信号が示されている。さらに、入力部検査信号、故障フラグ1クリア設定値、故障フラグ2クリア設定値、故障フラグ1、故障フラグ2、入出力制御信号及びフリップフロップF5に保持される出力信号が示されている。
【0071】
なお、故障フラグ1クリア設定値は、故障フラグ1をクリアするか否かを示す値であり、フリップフロップF8に設定される値である。故障フラグ2クリア設定値は、故障フラグ2をクリアするか否かを示す値であり、フリップフロップF9に設定される値である。なお、図示を省略するが、電源投入時は、割り込み信号を発生しないようにするために、たとえば、フリップフロップF10に設定される値は“0”としておく。
【0072】
マイクロコントローラ20の電源投入時、プロセッサ21は図示しないフラッシュメモリなどの記憶部に記憶されたプログラムを実行する。このときプロセッサ21は、フリップフロップF1,F2にスイッチSW10,SW11をオフにする旨の制御設定値“1”を設定する(タイミングt1)。これにより、スイッチSW10は、入力部60と入出力端子P10とを電気的に切り離し、スイッチSW11は、入力部60と出力部70とを電気的に切り離す。このように、制御用の設定値として“1”が入力されたときにオフとなるスイッチSW10,SW11として、たとえば、ゲート端子に、制御用の設定値を入力するpMOSが適用可能である。
【0073】
次に、プロセッサ21は、入力部60に、入力値供給部80により入力値“1”を供給するため、プルアップダウン制御設定値を“1”とする(タイミングt2)。プルアップダウン選択設定値が“0”の場合、プルアップ制御信号は“0”となり、プルダウン制御信号も“0”である。これにより、入力値供給部80のpMOS81がオン、nMOS82がオフ状態となるので、入力部60には、入力値“1”が供給される。また、入力値決定部30から、故障判定部40に対しても、入力値“1”が入力される。
【0074】
その後、プロセッサ21は、入力部検査信号を“1”とし、故障判定部40において、入力部60の故障検出を有効にしたのち(タイミングt3)、故障フラグ2クリア設定値を“1”にし(タイミングt4)、故障フラグ2をクリアする。次に、プロセッサ21は故障フラグ2クリア設定値を“0”に戻すと(タイミングt5)、故障判定部40により、入力部60の故障判定結果が故障フラグ2としてフリップフロップF12に設定される。図7に示した例では、故障フラグ2が“1”に立ち上がっており、入力部60に故障が発生している可能性があることが、たとえば、プロセッサ21から確認可能となる。
【0075】
次に、プロセッサ21は、入力部検査信号を“0”に設定する(タイミングt6)。これにより、故障判定部40は、入力部60の故障検出を無効にする。また、プロセッサ21は、フリップフロップF4のプルアップダウン制御設定値を“0”とする(タイミングt7)。これにより、入力値決定部30は、プルアップ制御信号を“1”とするので、入力値供給部80のpMOS81はオフし、nMOS82もオフする。
【0076】
続いて、プロセッサ21は、入出力制御信号を“0”に設定するとともに、フリップフロップF5に設定する出力信号として、たとえば、“0”を設定する(タイミングt8)。そして、プロセッサ21は、フリップフロップF2のスイッチSW11の制御用の設定値を“0”に変更する(タイミングt9)。これにより、スイッチSW11はオンし、出力部70の出力値が、故障判定部40に入力される。
【0077】
その後、プロセッサ21は、故障フラグ1クリア設定値を“1”にし(タイミングt10)、故障フラグ1をクリアする。次に、プロセッサ21は故障フラグ1クリア設定値を“0”に戻すと(タイミングt11)、故障判定部40により、出力部70の故障判定結果が故障フラグ1としてフリップフロップF11に設定される。図7に示した例では、故障フラグ1が“1”に立ち上がっており、出力部70に故障が発生した可能性があることが、たとえば、プロセッサ21から確認可能となる。
【0078】
たとえば、プロセッサ21は、故障フラグ1,2の値を判定して、出力部70が正常の場合には、出力部70を介して、入出力端子P10から、出力部70が正常である旨の判定結果と、入力部60の故障の有無の判定結果を出力する。出力部70が故障していると判定された場合には、プロセッサ21は、たとえば、正常と判定された他の入出力回路から、図2に示したような入出力端子P11〜Pnを介して判定結果を出力する。
【0079】
また、プロセッサ21は、たとえば、スイッチSW11をオフして、出力部70と、入出力端子P10とを切り離したのち、入力値供給部80により、入力部60と、出力部70の故障の有無の判定結果を示す値を生成させるようにしてもよい。
【0080】
たとえば、プロセッサ21の制御のもと、入力値決定部30及び入力値供給部80は、出力部70が故障していることを示すために、入力値供給部80のpMOS81とnMOS82をともにオフし、ハイインピーダンスの信号を入出力端子P10に出力させる。その後、プロセッサ21の制御のもと、入力値決定部30及び入力値供給部80は、入力部60の検査結果に応じて、pMOS81またはnMOS82をオンさせ、“1”または“0”を、入出力端子P10を介して出力すればよい。
【0081】
なお、故障フラグ1,2の値を、専用の出力端子により直接読み出すようにしてもよい。
入力部60と出力部70の検査が終わると、プロセッサ21は、スイッチSW10の制御用の設定値を“0”とする(タイミングt12)。これにより、スイッチSW10はオンし、入力部60と入出力端子P10間が電気的に接続されるともに、出力部70と入出力端子P10間が電気的に接続され、マイクロコントローラ20は、通常動作モードに移行する。
【0082】
以上のように、本実施の形態のマイクロコントローラ20では、たとえば、電源投入時に、入力部60の検査を行う際に、スイッチSW10,SW11により、入力部60を入出力端子P10及び出力部70から切り離す。そして、入力値決定部30及び入力値供給部80は、生成した入力値を入力部60に入力し、故障判定部40が、その入力値を入力部60からの出力値と比較して故障を検査するので、入力部60の故障を、出力部70とは独立に検出することができる。また、出力部70についても独立に検査することができる。
【0083】
次に、通常動作時の故障検出処理を説明する。
(通常動作時の故障検出処理)
マイクロコントローラ20は、通常動作時には、たとえば、出力部70の検査を行う。電源投入時の検査で、入力部60の故障が検出された場合には、入力部60は用いられない。
【0084】
図8は、通常動作時のマイクロコントローラにおける処理の流れを示すフローチャートである。
プロセッサ21は、所定のアプリケーションプログラムなどを実行する通常動作を行う(ステップS20)。このような通常動作時において、出力動作が行われると、故障判定部40は、出力部70に故障があるか否かを判定する(ステップS21)。ここで、故障がなければ、プロセッサ21は、通常動作を続ける。故障があると判定された場合には、故障判定部40は、フリップフロップF11の故障フラグ1を“1”に設定する(ステップS22)。そして、割り込み信号生成部50は、割り込み信号を生成し、プロセッサ21に通知する(ステップS23)。
【0085】
割り込み信号を受けたプロセッサ21は、通常動作を中止して割り込みルーチンを行い、まず、フリップフロップF2にスイッチSW11をオフにする旨の制御用の設定値を設定する。これにより、スイッチSW11はオフし、出力部70と入出力端子P10とを切り離す(ステップS24)。
【0086】
次に、プロセッサ21の制御のもと、入力値決定部30及び入力値供給部80は、入出力端子P10に設定する固定値を生成し(ステップS25)、入出力端子P10を固定値で固定する(ステップS26)。たとえば、入力値決定部30は、プルアップ制御信号、プルダウン制御信号により、pMOS81、nMOS82をオンまたはオフさせて固定値“1”,“0”または“Hi−Z(ハイインピーダンス)”で入出力端子P10を固定させる。
【0087】
これにより、マイクロコントローラ20の外部では、出力部70に故障が発生したことを認識することができる。
次に、通常動作時の出力部70の故障検出処理時における、マイクロコントローラの各部の信号の一例を、タイミングチャートを用いて説明する。
【0088】
図9は、通常動作時の故障検出処理におけるマイクロコントローラの各部の信号の一例の様子を示すタイミングチャートである。
図7で示した信号または設定値のほか、割り込み信号と、フリップフロップF10に設定される、割り込み許可設定値の様子を示している。また、タイミングチャートの最上部に、故障検出処理におけるプログラムの切り替わりの様子を示している。
【0089】
プロセッサ21による所定のプログラムAの実行中において、出力動作を行うために入出力制御信号が“0”となると(タイミングt20)、入力部検査信号が“0”の状態であるので、故障判定部40は、出力部70の故障検出処理を開始する。プロセッサ21は、故障フラグ1クリア設定値を“1”にし(タイミングt21)、故障フラグ1をクリアする。次に、プロセッサ21は、フリップフロップF10の割り込み許可設定値を“1”として、割り込み信号の発生を許可する(タイミングt22)。その後、プロセッサ21は故障フラグ1クリア設定値を“0”に戻すと(タイミングt23)、故障判定部40により、出力部70の故障の有無を示す判定結果が、故障フラグ1としてフリップフロップF11に設定される。図9に示した例では、故障フラグ1が“1”に立ち上がっており、出力部70に故障が発生した可能性があることが示されている。出力部70に故障が発生したと判定された場合、割り込み信号生成部50は、割り込み信号(“1”の信号)を生成し、プロセッサ21に通知する。プロセッサ21は、プログラムAを中段して、プログラムB(割り込みルーチン)を実行する。
【0090】
割り込みルーチンにおいて、プロセッサ21は、割り込み許可設定値を“0”に戻すと(タイミングt24)、割り込み信号が“0”となる。プロセッサ21は、出力部70に故障が発生している可能性があることを外部に通知するために、まず、スイッチSW11制御用設定値を“1”とする(タイミングt25)。これにより、スイッチSW11はオフし、出力部70と入出力端子P10とが切り離される。その後、プロセッサ21による制御のもと、入力値決定部30及び入力値供給部80は、たとえば、入出力端子P10を所定の信号レベルに固定する。図9に示されている例では、プロセッサ21により、プルアップダウン制御設定値が“1”に設定されたとき(タイミングt26)、プルアップダウン選択設定値が“0”であるので、プルアップ制御信号が“0”となる。これにより、入力値供給部80のpMOS81がオンし、入出力端子P10は、ハイレベル(“1”)で固定される。
【0091】
これにより、マイクロコントローラ20の外部では、出力部70に故障が発生したことを認識することができる。
図10は、本実施の形態のマイクロコントローラを含んだシステムの一例の構成を示す図である。
【0092】
本実施の形態のマイクロコントローラ20は、たとえば、PC(Personal Computer)101、表示装置102及びその他のマイクロコントローラ103−1,103−2,103−3などと接続されており、互いに情報の送受信を行っている。
【0093】
マイクロコントローラ20の入力部60または出力部70の故障の有無の判定結果は、前述したように、たとえば、専用の出力端子や、マイクロコントローラ20の入出力端子P10〜Pnを介して、外部のPC101や表示装置102から検出可能である。PC101や表示装置102は、たとえば、検出した故障判定結果を、ユーザが認識可能なように、画面などに表示する。
【0094】
以上、実施の形態に基づき、本発明の半導体集積回路、故障検出方法及びマイクロコントローラの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【0095】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第1のスイッチと、
前記入力部と前記出力部との間に設けられた第2のスイッチと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記第1のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第2のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする半導体集積回路。
【0096】
(付記2) 前記出力部は、前記第2のスイッチを介して前記故障判定部に接続されており、前記出力部の検査時に、前記第2のスイッチは前記出力部と前記故障判定部とを電気的に接続し、前記故障判定部は、前記出力部への入力値と、前記出力部からの出力値とを比較し、前記出力部の故障の有無を判定することを特徴とする付記1記載の半導体集積回路。
【0097】
(付記3) 前記第2のスイッチは、前記出力部の故障時、前記出力部と前記入出力端子とを電気的に切り離し、前記入力値生成部は、前記故障判定部での判定結果を示す値を生成し、前記値を前記入出力端子から出力することを特徴とする付記1または2に記載の半導体集積回路。
【0098】
(付記4) 前記入出力値生成部は、3種類の電圧レベルのいずれかで表わされた前記値を前記入出力端子から出力することを特徴とする付記3記載の半導体集積回路。
(付記5) 前記入力部または前記出力部のいずれの検査を行うかに応じて、前記第1のスイッチまたは前記第2のスイッチの制御を行う制御部を有することを特徴とする付記1乃至4のいずれか一項に記載の半導体集積回路。
【0099】
(付記6) 入出力端子を介して信号を受信する入力部、または前記入出力端子を介して信号を出力する出力部の故障を検出する故障検出方法において、
前記入力部の検査時に、第1のスイッチが前記入力部と前記入出力端子とを電気的に切り離すとともに、第2のスイッチが前記入力部と前記出力部とを電気的に切り離し、
入力値生成部が入力値を前記入力部に入力し、
故障判定部が前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする故障検出方法。
【0100】
(付記7) 入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第1のスイッチと、
前記入力部と前記出力部との間に設けられた第2のスイッチと、
前記第1のスイッチまたは前記第2のスイッチを制御するプロセッサと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記プロセッサの制御のもと、前記第1のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第2のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とするマイクロコントローラ。
【符号の説明】
【0101】
10 半導体集積回路
11 入力部
12 出力部
13 入力値生成部
13a 入力値決定部
13b 入力値供給部
14 故障判定部
15 制御部
SW1,SW2スイッチ
P1 入出力端子

【特許請求の範囲】
【請求項1】
入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第1のスイッチと、
前記入力部と前記出力部との間に設けられた第2のスイッチと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記第1のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第2のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする半導体集積回路。
【請求項2】
前記出力部は、前記第2のスイッチを介して前記故障判定部に接続されており、前記出力部の検査時に、前記第2のスイッチは前記出力部と前記故障判定部とを電気的に接続し、前記故障判定部は、前記出力部への入力値と、前記出力部からの出力値とを比較し、前記出力部の故障の有無を判定することを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記第2のスイッチは、前記出力部の故障時、前記出力部と前記入出力端子とを電気的に切り離し、前記入力値生成部は、前記故障判定部での判定結果を示す値を生成し、前記値を前記入出力端子から出力することを特徴とする請求項1または2に記載の半導体集積回路。
【請求項4】
入出力端子を介して信号を受信する入力部、または前記入出力端子を介して信号を出力する出力部の故障を検出する故障検出方法において、
前記入力部の検査時に、第1のスイッチが前記入力部と前記入出力端子とを電気的に切り離すとともに、第2のスイッチが前記入力部と前記出力部とを電気的に切り離し、
入力値生成部が入力値を前記入力部に入力し、
故障判定部が前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とする故障検出方法。
【請求項5】
入出力端子を介して信号を受信する入力部と、
前記入出力端子を介して信号を出力する出力部と、
前記入力部への入力値を生成する入力値生成部と、
前記入力部と前記入出力端子との間に設けられた第1のスイッチと、
前記入力部と前記出力部との間に設けられた第2のスイッチと、
前記第1のスイッチまたは前記第2のスイッチを制御するプロセッサと、
前記入力部または前記出力部の故障の有無を判定する故障判定部と、
を有し、
前記入力部の検査時に、前記プロセッサの制御のもと、前記第1のスイッチは前記入力部と前記入出力端子とを電気的に切り離し、前記第2のスイッチは前記入力部と前記出力部とを電気的に切り離し、前記入力値生成部は、前記入力値を前記入力部に入力し、前記故障判定部は、前記入力値と、前記入力部からの出力値とを比較し、前記入力部の故障の有無を判定することを特徴とするマイクロコントローラ。

【図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


【公開番号】特開2011−38987(P2011−38987A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−189098(P2009−189098)
【出願日】平成21年8月18日(2009.8.18)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】