<電子機器>
図1は、電子機器の全体構成を示す図である。本構成例の電子機器1は、監視IC100と、パワーマネジメントIC200と、マイコン300と、を有する。また、電子機器1は、上記の半導体装置100~300に外付けされるディスクリート部品として、抵抗R1~R10及びR12~R16と、キャパシタC1及びC2と、を有する。
監視IC100は、パワーマネジメントIC200から電源電圧VDD(=出力電圧VO1)の供給を受けて動作する半導体集積回路装置であり、パワーマネジメントIC200の各種出力電圧とマイコン300の出力周波数をそれぞれ監視してそれらの異常検出を行う。なお、監視IC100は、IC外部との電気的な接続を確立する手段として、複数の外部端子(VDDピン、GNDピン、CTピン、MISOピン、MOSIピン、SCLKピン、XSCSピン、WDINピン、DIN1~DIN4ピン、PG1~PG4ピン、XRSTINピン、及び、XRSTOUTピン)を備えている。
パワーマネジメントIC200は、バッテリ電圧VBATの供給を受けて動作する半導体集積回路装置であり、複数の出力電圧VO1~VO5を生成して電子機器1の各部に供給する。なお、多出力のパワーマネジメントIC200に代えて、単出力のDC/DCコンバータやLDO[low drop-out]レギュレータなどを複数用いることも可能である。
マイコン300は、パワーマネジメントIC200から電源電圧VDD(=出力電圧VO1)の供給を受けて動作する半導体集積回路装置であり、監視IC100やパワーマネジメントIC200を含む電子機器1全体の動作を統括的に制御する。
なお、マイコン300は、監視IC100から入力されるリセット出力信号XRSTOUTによってリセットされる。より具体的に述べると、マイコン300は、リセット出力信号XRSTOUTがローレベルであるときにリセット状態(=ディセーブル状態)となり、リセット出力信号XRSTOUTがハイレベルであるときにリセット解除状態(=イネーブル状態)となる。
また、マイコン300は、監視IC100から入力されるパワーグッド信号PGx(ただしx=1,2,3,4であり、以下も同様)の論理レベルに応じて、パワーマネジメントIC200の出力電圧VOxが正常であるか否かを判定する機能を備えている。より具体的に述べると、マイコン300は、パワーグッド信号PGxがハイレベルであるときに出力電圧VOxが正常であると判定し、パワーグッド信号PGxがローレベルであるときに出力電圧VOxが異常(例えば過電圧異常または低電圧異常)であると判定する。
また、マイコン300は、監視IC100のWDINピンに対して、ウォッチドッグ入力信号WDIN(=数十Hzのリセットパルス信号)を出力する機能を備えている。
また、監視IC100とマイコン300は、それぞれ、マイコン300をマスタとし、監視IC100をスレーブとして、SPI[serial peripheral interface]バスを介した双方向通信を行う機能を備えている。例えば、マイコン300は、SPI通信による監視IC100のレジスタ制御により、オシレータの発振周波数制御やウォッチドッグタイマのイネーブル制御を行う機能を備えている。また、マイコン300は、ウォッチドッグイネーブルレジスタについて、自らが書き込みを命じた設定値と監視IC100から読み出した格納値との一致判定を行う機能も備えている。
抵抗R1及びR2は、出力電圧VO1の出力端と接地端との間に直列接続されており、出力電圧VO1の分圧回路として機能する。なお、抵抗R1及びR2相互間の接続ノード(=分圧回路の出力端)は、監視IC100のXRSTINピンに接続されている。
抵抗R3及びR4は、出力電圧VO2の出力端と接地端との間に直列接続されており、出力電圧VO2の分圧回路として機能する。なお、抵抗R3及びR4相互間の接続ノード(=分圧回路の出力端)は、監視IC100のDIN1ピンに接続されている。
抵抗R5及びR6は、出力電圧VO3の出力端と接地端との間に直列接続されており、出力電圧VO3の分圧回路として機能する。なお、抵抗R5及びR6相互間の接続ノード(=分圧回路の出力端)は、監視IC100のDIN2ピンに接続されている。
抵抗R7及びR8は、出力電圧VO4の出力端と接地端との間に直列接続されており、出力電圧VO4の分圧回路として機能する。なお、抵抗R7及びR8相互間の接続ノード(=分圧回路の出力端)は、監視IC100のDIN3ピンに接続されている。
抵抗R9及びR10は、出力電圧VO5の出力端と接地端の間に直列接続されており、出力電圧VO5の分圧回路として機能する。なお、抵抗R9及びR10相互間の接続ノード(=分圧回路の出力端)は、監視IC100のDIN4ピンに接続されている。
抵抗R12は、監視IC100のXRSTOUTピンと電源端の間に接続されており、監視IC100からマイコン300へのリセット出力信号XRSTOUTを電源電圧VDDに吊り上げるためのプルアップ抵抗として機能する。
抵抗R13は、監視IC100のPG1ピンと電源端との間に接続されており、監視IC100からマイコン300へのパワーグッド信号PG1を電源電圧VDDに吊り上げるためのプルアップ抵抗として機能する。
抵抗R14は、監視IC100のPG2ピンと電源端との間に接続されており、監視IC100からマイコン300へのパワーグッド信号PG2を電源電圧VDDに吊り上げるためのプルアップ抵抗として機能する。
抵抗R15は、監視IC100のPG3ピンと電源端との間に接続されており、監視IC100からマイコン300へのパワーグッド信号PG3を電源電圧VDDに吊り上げるためのプルアップ抵抗として機能する。
抵抗R16は、監視IC100のPG4ピンと電源端との間に接続されており、監視IC100からマイコン300へのパワーグッド信号PG4を電源電圧VDDに吊り上げるためのプルアップ抵抗として機能する。
キャパシタC1は、監視IC100のVDDピンと接地端との間に接続されており、出力電圧VO1(=電源電圧VDD)の平滑手段として機能する。
キャパシタC2は、監視IC100のCTピンと接地端との間に接続されており、リセット時間設定素子として機能する。
<監視IC(パッケージ)>
図2は、監視IC100のパッケージ外観(トップ面及びボトム面)を示す図である。本図で示すように、監視IC100のパッケージとしては、例えばVQFN[very thin quad flat Non-leaded]パッケージを採用するとよい。
より具体的に述べると、監視IC100は、平面視矩形状の樹脂封止体101を持ち、そのボトム面には、樹脂封止体101から突出することなく、各辺5本ずつ計20本の外部端子102が露出されている。このようなノンリードのVQFNパッケージであれば、リードを持つパッケージ(QFP[quad flat package]など)と比べて、その実装面積を縮小することが可能となる。
なお、樹脂封止体101には、そのボトム面がトップ面よりも若干小さくなるように、側面からボトム面に向けたテーパが付けられている。また、外部端子102は、樹脂封止体101のボトム面から側面にかけて露出されている。このような構成であれば、プリント配線基板(不図示)への実装作業を容易かつ確実に実施することができる。
また、樹脂封止体101のボトム面には、監視IC100の半導体チップ(不図示)を搭載するアイランドの裏面(=チップ搭載面の裏側)が放熱パッド103として露出されている。このような構成であれば、監視IC100の放熱性を高めることが可能となる。
なお、放熱パッド103の四隅のうち、少なくとも一つには、切欠部103aを設けておくとよい。このような構成とすることにより、樹脂封止体101との密着性を高めて、放熱パッド103(=アイランド)の脱落を防止することが可能となる。
<監視IC(ピン配置)>
図3は、監視IC100のピン配置(20ピンのVQFN採用時)を示す図である。監視IC100の第1辺(本図下辺)には、本図の左から右に向けて、5本の外部端子(1ピン~5ピン)が順に並べられている。1ピンは、電源端子(VDDピン)である。2ピンは、不使用端子(NC[non-connection]ピン)である。3ピンは、接地端子(GNDピン)である。4ピンは、不使用端子(NCピン)である。5ピンは、リセット時間設定端子(CTピン)である。
監視IC100の第2辺(本図右辺)には、本図の下から上に向けて、5本の外部端子(6ピン~10ピン)が順に並べられている。6ピンは、SPIデータ出力端子(MIMOピン)である。7ピンは、SPIデータ入力端子(MOSIピン)である。8ピンは、SPIクロック端子(SCLKピン)である。9ピンは、SPIチップセレクト端子(XSCSピン)である。10ピンは、ウォッチドッグ入力端子(WDINピン)である。
監視IC100の第3辺(本図上辺)には、本図の右から左に向けて、5本の外部端子(11ピン~15ピン)が順に並べられている。11ピンは、第1監視入力ピン(DIN1ピン)である。12ピンは、第1パワーグッド出力端子(PG1ピン)である。13ピンは、第2監視入力ピン(DIN2ピン)である。14ピンは、第2パワーグッド出力端子(PG2ピン)である。15ピンは、第3監視入力ピン(DIN3ピン)である。
監視IC100の第4辺(本図左辺)には、本図の上から下に向けて、5本の外部端子(16ピン~20ピン)が順に並べられている。16ピンは、第3パワーグッド出力端子(PG3ピン)である。17ピンは、第4監視入力ピン(DIN4ピン)である。18ピンは、第4パワーグッド出力端子(PG4ピン)である。19ピンは、リセット用監視入力ピン(XRSTINピン)である。20ピンは、リセット出力端子(XRSTOUTピン)である。
<監視IC(第1実施形態)>
図4は、監視IC100の第1実施形態(基本構成)を示す図である。本実施形態の監視IC100は、基準電圧生成部111と、サブ基準電圧生成部112と、基準電圧検出部120と、UVLO[under voltage locked-out]部130と、閾値電圧生成部140~149と、コンパレータ150~159と、オシレータ161及び162と、デジタル処理部170と、Nチャネル型MOS[metal oxide semiconductor]電界効果トランジスタ180~184と、SPIインタフェイス190と、を集積化して成る。
基準電圧生成部111は、VDDピンに入力される電源電圧VDDから所定の基準電圧VREFを生成する。
サブ基準電圧生成部112は、電源電圧VDDから所定のサブ基準電圧VREF2を生成する。
基準電圧検出部120は、電源電圧VDDの供給を受けて動作し、基準電圧VREF及びサブ基準電圧VREF2が正常に立ち上がっているか否かを検出して基準電圧検出信号VREF_DETを生成する。なお、基準電圧検出信号VREF_DETは、基準電圧VREFとサブ基準電圧VREF2の双方が正常に立ち上がっているときにローレベルとなり、少なくとも一方が正常に立ち上がっていないときにハイレベルとなる。また、基準電圧検出部120には、BIST[built-in self test]イネーブル信号BIST_ENが入力されている。すなわち、基準電圧検出部120は、監視IC100の起動時に自己診断対象となる監視部(ないしはこれに含まれている複数の監視機構の一つ)に相当する。
UVLO部130は、電源電圧VDDの低電圧異常を検出して低電圧異常信号UVLOを出力する。低電圧異常信号UVLOは、電源電圧VDDが低電圧異常解除値UVLO_OFFよりも高くなったときにハイレベルとなり、電源電圧VDDが低電圧異常検出値UVLO_ONよりも低くなったときにローレベルとなる。
閾値電圧生成部140及び141は、それぞれ、基準電圧VREFを分圧して上側閾値電圧Vth0H(例えば0.88V)及び下側閾値電圧Vth0L(例えば0.72V)を生成する。
閾値電圧生成部142及び143は、それぞれ、基準電圧VREFを分圧して上側閾値電圧Vth1H(例えば0.88V)及び下側閾値電圧Vth1L(例えば0.72V)を生成する。
閾値電圧生成部144及び145は、それぞれ、基準電圧VREFを分圧して上側閾値電圧Vth2H(例えば0.88V)及び下側閾値電圧Vth2L(例えば0.72V)を生成する。
閾値電圧生成部146及び147は、それぞれ、基準電圧VREFを分圧して上側閾値電圧Vth3H(例えば0.88V)及び下側閾値電圧Vth3L(例えば0.72V)を生成する。
閾値電圧生成部148及び149は、それぞれ、基準電圧VREFを分圧して上側閾値電圧Vth4H(例えば0.88V)及び下側閾値電圧Vth4L(例えば0.72V)を生成する。
コンパレータ150は、電源電圧VDDの供給を受けて動作し、XRSTINピンから非反転入力端(+)に入力されている入力電圧V0と、閾値電圧生成部140から反転入力端(-)に入力されている上側閾値電圧Vth0Hとを比較することにより、比較信号RSTOVDを生成する。比較信号RSTOVDは、V0>Vth0Hであるときにハイレベルとなり、V0<Vth0Hであるときにローレベルとなる。
コンパレータ151は、電源電圧VDDの供給を受けて動作し、XRSTINピンから反転入力端(-)に入力されている入力電圧V0と、閾値電圧生成部141から非反転入力端(-)に入力されている下側閾値電圧Vth0Lとを比較することにより、比較信号RSTUVDを生成する。比較信号RSTUVDは、V0>Vth0Lであるときにローレベルとなり、V0<Vth0Lであるときにハイレベルとなる。
コンパレータ152は、電源電圧VDDの供給を受けて動作し、DIN1ピンから非反転入力端(+)に入力されている入力電圧V1と、閾値電圧生成部142から反転入力端(-)に入力されている上側閾値電圧Vth1Hとを比較することにより、比較信号DIN1OVDを生成する。比較信号DIN1OVDは、V1>Vth1Hであるときにハイレベルとなり、V1<Vth1Hであるときにローレベルとなる。
コンパレータ153は、電源電圧VDDの供給を受けて動作し、DIN1ピンから反転入力端(-)に入力されている入力電圧V1と、閾値電圧生成部143から非反転入力端(-)に入力される下側閾値電圧Vth1Lとを比較することにより、比較信号DIN1UVDを生成する。比較信号DIN1UVDは、V1>Vth1Lであるときにローレベルとなり、V1<Vth1Lであるときにハイレベルとなる。
コンパレータ154は、電源電圧VDDの供給を受けて動作し、DIN2ピンから非反転入力端(+)に入力されている入力電圧V2と、閾値電圧生成部144から反転入力端(-)に入力されている上側閾値電圧Vth2Hとを比較することにより、比較信号DIN2OVDを生成する。比較信号DIN2OVDは、V2>Vth2Hであるときにハイレベルとなり、V2<Vth2Hであるときにローレベルとなる。
コンパレータ155は、電源電圧VDDの供給を受けて動作し、DIN2ピンから反転入力端(-)に入力されている入力電圧V2と、閾値電圧生成部145から非反転入力端(-)に入力される下側閾値電圧Vth2Lとを比較することにより、比較信号DIN2UVDを生成する。比較信号DIN2UVDは、V2>Vth2Lであるときにローレベルとなり、V2<Vth2Lであるときにハイレベルとなる。
コンパレータ156は、電源電圧VDDの供給を受けて動作し、DIN3ピンから非反転入力端(+)に入力されている入力電圧V3と、閾値電圧生成部146から反転入力端(-)に入力されている上側閾値電圧Vth3Hとを比較することにより、比較信号DIN3OVDを生成する。比較信号DIN3OVDは、V3>Vth3Hであるときにハイレベルとなり、V3<Vth3Hであるときにローレベルとなる。
コンパレータ157は、電源電圧VDDの供給を受けて動作し、DIN3ピンから反転入力端(-)に入力されている入力電圧V3と、閾値電圧生成部147から非反転入力端(-)に入力される下側閾値電圧Vth3Lとを比較することにより、比較信号DIN3UVDを生成する。比較信号DIN3UVDは、V3>Vth3Lであるときにローレベルとなり、V3<Vth3Lであるときにハイレベルとなる。
コンパレータ158は、電源電圧VDDの供給を受けて動作し、DIN4ピンから非反転入力端(+)に入力されている入力電圧V4と、閾値電圧生成部148から反転入力端(-)に入力されている上側閾値電圧Vth4Hとを比較することにより、比較信号DIN4OVDを生成する。比較信号DIN4OVDは、V4>Vth4Hであるときにハイレベルとなり、V4<Vth4Hであるときにローレベルとなる。
コンパレータ159は、電源電圧VDDの供給を受けて動作し、DIN4ピンから反転入力端(-)に入力されている入力電圧V4と、閾値電圧生成部149から非反転入力端(-)に入力される下側閾値電圧Vth4Lとを比較することにより、比較信号DIN4UVDを生成する。比較信号DIN4UVDは、V4>Vth4Lであるときにローレベルとなり、V4<Vth4Lであるときにハイレベルとなる。
なお、上記のコンパレータ151~159には、それぞれ、BISTイネーブル信号BIST_ENが入力されている。すなわち、コンパレータ151~159は、それぞれ、監視IC100の起動時に自己診断対象となる監視部(ないしはこれに含まれている複数の監視機構の一つ)に相当する。
オシレータ161は、電源電圧VDDと基準電圧VREFの供給を受けて動作し、デジタル処理部170で用いられる発振周波数f1(例えばf1=2.2MHz)のクロック信号CLK1を生成する。
オシレータ162は、電源電圧VDDと基準電圧VREFの供給を受けて動作し、デジタル処理部170(特にウォッチドッグタイマ173)で用いられる発振周波数f2(例えばf2=500kHz)のクロック信号CLK2を生成する。なお、クロック信号CLK2の発振周波数f2は、SPI通信により任意に調整することが可能である。
また、上記のオシレータ161及び162は、それぞれ、低電圧異常信号UVLOによりリセットされる。より具体的に述べると、オシレータ161及び162は、それぞれ、低電圧異常信号UVLOがローレベルであるときにリセット状態(=ディセーブル状態)となり、低電圧異常信号UVLOがハイレベルであるときにリセット解除状態(=イネーブル状態)となる。
デジタル処理部170は、電源電圧VDDの供給を受けて動作し、各種入力信号の監視処理や各種出力信号の生成処理を行う。また、デジタル処理部170は、低電圧異常信号UVLOによりリセットされる。より具体的に述べると、デジタル処理部170は、低電圧異常信号UVLOがローレベルであるときにリセット状態(=ディセーブル状態)となり、低電圧異常信号UVLOがハイレベルであるときにリセット解除状態(=イネーブル状態)となる。なお、デジタル処理部170の内部構成及び動作については後述する。
トランジスタ180は、XRSTOUTピン(=リセット出力信号XRSTOUTの出力端子)と接地端との間に接続されており、デジタル処理部170から入力されるゲート信号G0に応じてオン/オフされる。リセット出力信号XRSTOUTは、トランジスタ181がオンしているときにローレベル(=リセット時の論理レベル)となり、トランジスタ181がオフしているときにハイレベル(=リセット解除時の論理レベル)となる。
トランジスタ181は、PG1ピン(=パワーグッド信号PG1の出力端子)と接地端との間に接続されており、デジタル処理部170から入力されるゲート信号G1に応じてオン/オフされる。パワーグッド信号PG1は、トランジスタ181がオンしているときにはローレベル(=異常時の論理レベル)となり、トランジスタ181がオフしているときにはハイレベル(=正常時の論理レベル)となる。
トランジスタ182は、PG2ピン(=パワーグッド信号PG2の出力端子)と接地端との間に接続されており、デジタル処理部170から入力されるゲート信号G2に応じてオン/オフされる。パワーグッド信号PG2は、トランジスタ182がオンしているときにはローレベル(=異常時の論理レベル)となり、トランジスタ182がオフしているときにはハイレベル(=正常時の論理レベル)となる。
トランジスタ183は、PG3ピン(=パワーグッド信号PG3の出力端子)と接地端との間に接続されており、デジタル処理部170から入力されるゲート信号G3に応じてオン/オフされる。パワーグッド信号PG3は、トランジスタ183がオンしているときにはローレベル(=異常時の論理レベル)となり、トランジスタ183がオフしているときにはハイレベル(=正常時の論理レベル)となる。
トランジスタ184は、PG4ピン(=パワーグッド信号PG4の出力端子)と接地端との間に接続されており、デジタル処理部170から入力されるゲート信号G4に応じてオン/オフされる。パワーグッド信号PG4は、トランジスタ184がオンしているときにはローレベル(=異常時の論理レベル)となり、トランジスタ184がオフしているときにはハイレベル(=正常時の論理レベル)となる。
SPIインタフェイス190は、XSCSピン、SCLKピン、MOSIピン、及びMISOピンに接続されており、監視IC100(特にデジタル処理部170)とマイコン300との間で、SPIバスを介した双方向通信を行う。
<デジタル処理部>
引き続き、図4を参照しながら、デジタル処理部170の内部構成について説明する。本構成例のデジタル処理部170は、自己診断部171と、クロック検出部172と、ウォッチドッグタイマ173と、フィルタFLT0~FLT4と、カウンタCNT0~CNT4と、論理和ゲートOR0~OR4及びOR10~OR14と、を含む。
自己診断部171は、監視IC100の起動時において、基準電圧検出信号VREF_DETと比較信号(RSTOVD、RSTUVD、DINxOVD、DINxUVD)をそれぞれチェックすることにより、基準電圧検出部120とコンパレータ150~159がそれぞれ正常に機能しているか否かの自己診断動作(以下ではBISTと略称する)を行い、BISTエラー信号BIST_ERRORを生成する。なお、BISTエラー信号BIST_ERRORは、基準電圧検出部120とコンパレータ150~159のいずれかで異常が検出されたときにハイレベルとなる。
また、自己診断部171は、BISTイネーブル信号BIST_ENを生成して、基準電圧検出部120とコンパレータ150~159にそれぞれ送出する。なお、BISTイネーブル信号BIST_ENは、BISTの実行中にハイレベルとなる。
クロック検出部172は、クロック信号CLK1及びCLK2の周波数異常を検出してクロック検出信号CLK_DETを生成する。クロック検出信号CLK_DETは、クロック信号CLK1またはCLK2の周波数異常が検出されたときにハイレベルとなる。
ウォッチドッグタイマ173は、マイコン300の周波数異常(SLOW異常及びFAST異常)を検出してウォッチドッグ検出信号WDT_DETを生成する。ウォッチドッグ検出信号WDT_DETは、マイコン30の周波数異常が検出されたときにハイレベルとなる。なお、WDINピンは、監視IC100の内部でプルダウンされている。
論理和ゲートOR0は、比較信号RSTOVD及びRSTUVDの論理和演算を行う。従って、論理和ゲートOR0の出力信号は、比較信号RSTOVD及びRSTUVDの少なくとも一方がハイレベルであるときにハイレベルとなり、比較信号RSTOVD及びRSTUVDがいずれもローレベルであるときにローレベルとなる。
論理和ゲートOR1は、比較信号DIN1OVD及びDIN1UVDの論理和演算を行う。従って、論理和ゲートOR1の出力信号は、比較信号DIN1OVD及びDIN1UVDの少なくとも一方がハイレベルであるときにハイレベルとなり、比較信号DIN1OVD及びDIN1UVDがいずれもローレベルであるときにローレベルとなる。
論理和ゲートOR2は、比較信号DIN2OVD及びDIN2UVDの論理和演算を行う。従って、論理和ゲートOR2の出力信号は、比較信号DIN2OVD及びDIN2UVDの少なくとも一方がハイレベルであるときにハイレベルとなり、比較信号DIN2OVD及びDIN2UVDがいずれもローレベルであるときにローレベルとなる。
論理和ゲートOR3は、比較信号DIN3OVD及びDIN3UVDの論理和演算を行う。従って、論理和ゲートOR3の出力信号は、比較信号DIN3OVD及びDIN3UVDの少なくとも一方がハイレベルであるときにハイレベルとなり、比較信号DIN3OVD及びDIN3UVDがいずれもローレベルであるときにローレベルとなる。
論理和ゲートOR4は、比較信号DIN4OVD及びDIN4UVDの論理和演算を行う。従って、論理和ゲートOR4の出力信号は、比較信号DIN4OVD及びDIN4UVDの少なくとも一方がハイレベルであるときにハイレベルとなり、比較信号DIN4OVD及びDIN4UVDがいずれもローレベルであるときにローレベルとなる。
フィルタFLT0~FLT4は、それぞれ、論理和ゲートOR0~OR4の出力信号に所定のフィルタリング処理を施して後段に出力する。ただし、フィルタFLT0~FLT4は必須の構成要素ではなく、ノイズなどの懸念がない場合には、フィルタFLT0~FLT4を割愛して、論理和ゲートOR0~OR4の出力信号を後段にスルーしてもよい。
カウンタCNT0~CNT4は、それぞれ、フィルタFLT0~FLT4の出力信号に所定のカウンタ処理を施して後段に出力する。なお、カウンタCNT0の出力信号は、リセット入力検出信号RSTIN_DETとして論理和ゲートOR10に出力されている。ただし、カウンタCNT0~CNT4は必須の構成要素ではなく、ノイズなどの懸念がない場合には、カウンタCNT0~CNT4を割愛して、論理和ゲートOR0~OR4の出力信号(またはフィルタFLT0~FLT4の出力信号)を後段にスルーしてもよい。
論理和ゲートOR10は、基準電圧検出信号VREF_DET、リセット入力検出信号RSTIN_DET、BISTエラー信号BIST_ERROR、ウォッチドッグ検出信号WDT_DET、及び、クロック検出信号CLK_DETの論理和演算を行うことにより、リセット出力検出信号RSTOUT_DETを生成する。従って、リセット出力検出信号RSTOUT_DETは、複数の入力信号のうち、いずれか一つでもハイレベルであるときにハイレベルとなり、それら全てがローレベルであるときにローレベルとなる。なお、リセット出力検出信号RSTOUT_DETは、先述のゲート信号G0として、トランジスタ180のゲートに出力されている。
論理和ゲートOR11~OR14は、それぞれ、カウンタCNT1~CNT4の出力信号と基準電圧検出信号VREF_DETとの論理和演算を行うことにより、パワーグッド検出信号PG1_DET~PG4_DETを生成する。従って、基準電圧検出信号VREF_DETがローレベルであるときには、カウンタCNT1~CNT4の出力信号がパワーグッド検出信号PG1_DET~PG4_DETとしてそのままスルー出力される。一方、基準電圧検出信号VREF_DETがハイレベルであるときには、カウンタCNT1~CNT4の出力信号に依ることなく、パワーグッド検出信号PG1_DET~PG4_DETがいずれもハイレベルに固定される。なお、パワーグッド検出信号PG1_DET~PG4_DETは、先述のゲート信号G1~G4として、トランジスタ181~184それぞれのゲートに出力されている。
<監視IC(第2実施形態)>
図5は、監視IC100の第2実施形態(特にウォッチドッグタイマ173の詳細)を示す図である。本実施形態の監視IC100において、ウォッチドッグタイマ173は、トリガ型の第1周波数異常検出部173aと、通信断絶検知型の第2周波数異常検出部173bと、Q&A型の第3周波数異常検出部173cと、を有する。
第1周波数異常検出部173aは、マイコン300から入力されるウォッチドッグ入力信号WDINの周期的なパルスエッジを監視して、マイコン300の周波数異常を検出する。以下、第1周波数異常検出部173aの周波数異常検出動作を「トリガ型WDT動作(詳細は後述)」と呼ぶ。
第2周波数異常検出部173bは、マイコン300からの周期的なSPI通信アクセス(=所定レジスタへのデータ書き込み)を監視して、マイコン300の周波数異常を検出する。以下、第2周波数異常検出部173bの周波数異常検出動作を「通信断絶検知型WDT動作(詳細は後述)」と呼ぶ。
第3周波数異常検出部173cは、マイコン300とのSPI通信による周期的なQ&Aイベントを監視して、マイコン300の周波数異常を検出する。以下、第3周波数異常検出部173cの周波数異常検出動作を「Q&A型WDT動作(詳細は後述)」と呼ぶ。
また、ウォッチドッグタイマ173では、ユーザ設定(レジスタ設定)に応じて、若しくは、監視IC100が搭載されるシステムの状態(例えばSPI通信負荷の大きさ)に応じて、各周波数異常検出部173a~173cが選択的に用いられる。
このように、複合型のウォッチドッグタイマ173であれば、各周波数異常検出部173a~173cそれぞれの特性を鑑みて、周波数異常検出動作を切り替えることにより、適切に周波数異常を検出することが可能となる。
<動的切替制御>
図6は、周波数異常検出動作の動的切替制御の一例を示すタイミングチャートであり、上から順番に、システム起動状態(=電源電圧VDD)、ウォッチドッグ入力信号WDIN、SPI通信アクセス、システム平均負荷(例えばSPI通信負荷)、異常検出感度、及び、優先WDT動作が描写されている。
まず、システム平均負荷が最も重い第1状態(時刻t1~t2)では、第1周波数異常検出部173aのトリガ型WDT動作を優先するとよい。その結果、異常検出感度(延いてはリスク低減度合い)は多少犠牲になるが、SPI通信を要さずにマイコン300の周波数異常を検出することが可能となる。なお、第1状態としては、システム起動時やコンフィグレーション変更時などを挙げることができる。
一方、第1状態よりも軽負荷の第2状態(時刻t2~t3)では、第2周波数異常検出部173bの通信断絶検知型WDT動作を優先するとよい。その結果、第1状態よりも異常検出感度を高めることが可能となる。
また、第2状態よりもさらに軽負荷の第3状態(時刻t3~t4)では、第3周波数異常検出部173cのQ&A型WDT動作を優先するとよい。その結果、SPI通信負荷は重くなるが、異常検出感度を最大限に高めることが可能となる。
このように、負荷に応じて各周波数異常検出部173a~173cが動的に切り替えられる構成であれば、異常検出感度と負荷とのバランスを取りながら、適切に周波数異常を検出することが可能となる。
なお、上記した周波数異常検出動作の動的切替制御は、監視IC100の内部で実施するとよい。また、負荷検出手法としては、例えば、単位時間当たり(ウォッチドッグ周期或いはそのn逓倍を1単位とする期間)に送受信されるSPI通信のデータ量に応じて、SPI通信負荷を判断するとよい。
SPI通信のデータ量については、例えば、SPIチップセレクト信号XSCSの論理レベル(延いては監視IC100が受信可能状態であるか否か)に依ることなく、SPIクロック信号SCLKのエッジをカウントするとよい。なぜなら、監視IC100に対して送信されたデータでなくとも、SPIバスにデータが流れていれば、SPI通信負荷が重いであろうことが推定されるためである。
<トリガ型WDT動作>
図7は、トリガ型WDT動作の一例を示すタイミングチャートであり、上から順に、内部カウント値CNT、ウォッチドッグ入力信号IN、フェイルカウント値WD_FC、トリガ型WDTイネーブル信号WDTRGEN、及び、リセット出力信号XRSTOUTが描写されている。
トリガ型WDTイネーブル信号WDTRGENは、トリガ型WDT動作のイネーブル制御レジスタ値であり、イネーブル時には”1(ハイレベル)”となり、ディセーブル時には”0(ローレベル)”となる。トリガ型WDTイネーブル信号WDTRGENは、例えば、SPI通信により任意に書き換えることができる。
内部カウント値CNTは、トリガ型WDTイネーブル信号WDTRGENのハイレベル期間(時刻t10~t15、及び、時刻t18以降)において、所定のクロック周期でインクリメントされる一方、ウォッチドッグ入力信号WDINのパルスエッジ(立上りエッジ及び立下りエッジ)をトリガとしてゼロ値にリセットされる(時刻t11、t12、t13、t14、t19を参照)。
ここで、リセット直前の内部カウント値CNTが下側閾値CNTL(=FastNG検出閾値)よりも大きく、かつ、上側閾値CNTH(=SlowNG検出閾値)よりも小さいときには、ウォッチドッグ入力信号INのハイレベル期間及びローレベル期間がいずれも正常範囲内に収まっている状態(OK状態)であると判定されて、フェイルカウント値WD_FCが1つデクリメントされる(時刻t11、t13を参照)。
一方、内部カウント値CNTがリセットされたものの、リセット直前の内部カウント値CNTが上側閾値CNTHよりも大きいときには、ウォッチドッグ入力信号INのハイレベル期間またはローレベル期間が異常に長い状態(SlowNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t12を参照)。このとき、ステータスレジスタWDT_SLOWには”1”がセットされる。
また、内部カウント値CNTがリセットされたものの、リセット直前の内部カウント値CNTが下側閾値CNTLよりも小さいときには、ウォッチドッグ入力信号INのハイレベル期間またはローレベル期間が異常に短い状態(FastNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t14、t19を参照)。このとき、ステータスレジスタWDT_FASTには”1”がセットされる。
上記一連のインクリメント/デクリメントが繰り返されることにより、フェイルカウント値WD_FCが所定の閾値(例えば”6”)以上になると、リセット出力信号XRSTOUTがリセット保持時間tRSTL(例えば10ms)に亘ってローレベル(=リセット時の論理レベル)に立ち下げられる(時刻t15~t17を参照)。このとき、トリガ型WDTエラーレジスタWD_TRG_ERRORを”1”にセットして、マイコン300への異常通知を行うとよい。
また、フェイルカウント値WD_FCが所定の閾値以上になると、トリガ型WDTイネーブル信号WDTRGENもローレベル(=ディセーブル時の論理レベル)に立ち下げられる(時刻t15を参照)。なお、WDTRGEN=Lである間、ウォッチドッグ入力信号WDINのパルスエッジは無視される。
以上のように、トリガ型WDT動作では、先の上側閾値CNTH及び下側閾値CNTLで設定されるウィンドウ区間内に、ウォッチドッグ入力信号WDINのパルスエッジが到来するか否かを監視することにより、マイコン300の周波数異常が検出される。なお、上側閾値CNTH及び下側閾値CNTLは、それぞれ、ウィンドウ区間設定レジスタWD_detect_time(例えば2ビット)に応じた可変値とすることが望ましい。
<通信断絶検知型WDT動作>
図8は、通信断絶検知型WDT動作の一例を示すタイミングチャートであり、上から順に、内部カウント値CNT、SPI通信アクセス状態、フェイルカウント値WD_FC、通信断絶検知型WDTイネーブル信号WDSPIEN、及び、リセット出力信号XRSTOUTが描写されている。
通信断絶検知型WDTイネーブル信号WDSPIENは、通信断絶検知型WDT動作のイネーブル制御レジスタ値であり、イネーブル時には”1(ハイレベル)”となり、ディセーブル時には”0(ローレベル)”となる。通信断絶検知型WDTイネーブル信号WDSPIENは、例えば、SPI通信により任意に書き換えることができる。
内部カウント値CNTは、通信断絶検知型WDTイネーブル信号WDSPIENのハイレベル期間(時刻t20~t25、及び、時刻t28以降)において、所定のクロック周期でインクリメントされる一方、通信断絶検知用リセットレジスタSPI_DISCON_RSTに対するSPI通信アクセス(=データ値”1”の書き込み)が完了したこと、若しくは、内部カウント値CNTが上側閾値CNTHに到達したことをトリガとしてゼロ値にリセットされる(時刻t21、t22、t23、t24、t29を参照)。
ここで、リセット直前の内部カウント値CNTが下側閾値CNTL(=FastNG検出閾値)よりも大きく、かつ、上側閾値CNTH(=SlowNG検出閾値)よりも小さいときには、SPI通信アクセスの周期が正常範囲内に収まっている状態(OK状態)であると判定されて、フェイルカウント値WD_FCが1つデクリメントされる(時刻t21、t23を参照)。
一方、内部カウント値CNTがリセットされずに上側閾値CNTHに達したときには、SPI通信アクセスが遅延又は断絶している状態(SlowNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t22を参照)。このとき、ステータスレジスタWDT_SLOWには”1”がセットされる。
また、内部カウント値CNTがリセットされたものの、リセット直前の内部カウント値CNTが下側閾値CNTLよりも小さいときには、SPI通信アクセスが異常に速い状態(FastNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t24、t29を参照)。このとき、ステータスレジスタWDT_FASTには”1”がセットされる。
上記一連のインクリメント/デクリメントが繰り返されることにより、フェイルカウント値WD_FCが所定の閾値(例えば”6”)以上になると、リセット出力信号XRSTOUTがリセット保持時間tRSTL(例えば10ms)に亘ってローレベル(=リセット時の論理レベル)に立ち下げられる(時刻t25~t27を参照)。このとき、通信遮断WDTエラーレジスタWD_SPI_ERRORを”1”にセットして、マイコン300への異常通知を行うとよい。
また、フェイルカウント値WD_FCが所定の閾値以上になると、通信断絶検知型WDTイネーブル信号WDSPIENもローレベル(=ディセーブル時の論理レベル)に立ち下げられる(時刻t25を参照)。
以上のように、通信断絶検知型WDT動作では、先の上側閾値CNTH及び下側閾値CNTLで設定されるウィンドウ区間内に、SPI通信アクセスが完了するか否かを監視することにより、マイコン300の周波数異常が検出される。なお、上側閾値CNTH及び下側閾値CNTLは、先にも述べたように、それぞれ、ウィンドウ区間設定レジスタWD_detect_time(例えば2ビット)に応じた可変値とすることが望ましい。
<Q&A型WDT動作>
図9は、Q&A型WDT動作の一例を示すタイミングチャートであり、上から順に、内部カウント値CNT、SPI通信アクセス状態、フェイルカウント値WD_FC、Q&A型WDTイネーブル信号WDQAEN、及び、リセット出力信号XRSTOUTが描写されている。
Q&A型WDTイネーブル信号WDQAENは、Q&A型WDT動作のイネーブル制御レジスタ値であり、イネーブル時には”1(ハイレベル)”となり、ディセーブル時には”0(ローレベル)”となる。Q&A型WDTイネーブル信号WDQAENは、例えば、SPI通信により任意に書き換えることができる。
内部カウント値CNTは、Q&A型WDTイネーブル信号WDQAENのハイレベル期間(時刻t30~t35、及び、時刻t38以降)において、所定のクロック周期でインクリメントされる一方、SPI通信によるQ&Aイベント(=クエスチョン信号の問い合わせ及び返信、並びに、アンサー信号の生成及び答え合わせなど、詳細は後述)が完了したこと、若しくは、内部カウント値CNTが上側閾値CNTHに到達したことをトリガとしてゼロ値にリセットされる(時刻t31、t32、t34、t39を参照)。
ここで、マイコン300から書き込まれたアンサー信号が正答であり、かつ、リセット直前の内部カウント値CNTがCNTL<CNT<CNTHを満たしているときには、グッドイベント(OK状態)と判定されて、フェイルカウント値WD_FCが1つデクリメントされる(時刻t31を参照)。
一方、Q&Aイベントが完了せず、内部カウント値CNTがリセットされないまま上側閾値CNTHに達したときには、バッドイベント(SlowNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t32を参照)。このとき、ステータスレジスタWDT_SLOWには”1”がセットされる。
また、マイコン300から書き込まれたアンサー信号が誤答であるときには、リセット直前の内部カウント値CNTがCNTL<CNT<CNTHを満たしていたとしても、バッドイベント(誤答NG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t34を参照)。
若しくは、マイコン300から書き込まれたアンサー信号が正答であっても、リセット直前の内部カウント値CNTが下側閾値CNTLよりも小さいときには、バッドイベント(FastNG状態)であると判定されて、フェイルカウント値WD_FCが2つインクリメントされる(時刻t39を参照)。このとき、ステータスレジスタWDT_FASTには”1”がセットされる。
なお、上記以外にも、バッドイベントの類型としては、(1)所定時間内にクエスチョン信号の問い合わせがない場合、(2)アンサー信号が正答であっても所定時間内に書き込まれない場合、(3)多バイトのアンサー信号が正しいバイト順序で書き込まれない場合などを挙げることができる。これらの場合には、バッドイベントであると判定されて、フェイルカウント値WD_FCが2つインクリメントされる。
上記一連のインクリメント/デクリメントが繰り返されることにより、フェイルカウント値WD_FCが所定の閾値(例えば”6”)以上になると、リセット出力信号XRSTOUTがリセット保持時間tRSTL(例えば10ms)に亘ってローレベル(=リセット時の論理レベル)に立ち下げられる(時刻t35~t37を参照)。このとき、Q&A型WDTエラーレジスタWD_QA_ERRORを”1”にセットして、マイコン300への異常通知を行うとよい。
また、フェイルカウント値WD_FCが所定の閾値以上になると、Q&A型WDTイネーブル信号WDQAENもローレベル(=ディセーブル時の論理レベル)に立ち下げられる(時刻t35を参照)。
以上のように、Q&A型WDT動作では、先の上側閾値CNTH及び下側閾値CNTLで設定されるウィンドウ区間内に、正しいアンサー信号が書き込まれたか否かを監視することにより、マイコン300の周波数異常が検出される。なお、上側閾値CNTH及び下側閾値CNTLは、先にも述べたように、それぞれ、ウィンドウ区間設定レジスタWD_detect_time(例えば2ビット)に応じた可変値とすることが望ましい。
図10は、Q&A型WDT動作の一例を示すフローチャートである。なお、本図中において、100番台のステップ「S1**」は、監視IC100(特にQ&A型の第3周波数監視部173c)を動作主体とするステップである。一方、300番台のステップ「S3**」は、マイコン300を動作主体とするステップである。また、監視IC100とマイコン300との間における双方向通信は、いずれもSPI通信により実施される。
まず、マイコン300は、ステップS310において、監視IC100にクエスチョン信号(Question(token))の問い合わせコマンドを発行する。問い合わせコマンドを受け付けた監視IC100は、ステップS110において、クエスチョン信号をマイコン300に返信する。なお、クエスチョン信号の返信は、所定レジスタ(WD_Question)にクエスチョン信号の値を書き込み、これをマイコン300から読み出すことにより実施される。
クエスチョン信号の返信を受け付けたマイコン300は、ステップS320において、クエスチョン信号に対応するアンサー信号(Answer(response(s))を生成し、続くステップS330において、そのアンサー信号を監視IC100の所定レジスタ(WD_Answer)に書き込む。
一方、監視IC100は、ステップS120において、自らもクエスチョン信号に対応するアンサー信号(Right_Answer)を生成するとともに、続くステップS130において、マイコン300から書き込まれたアンサー信号と、自ら生成したアンサー信号との答え合わせを行う。
なお、上記一連のステップ(本図中の大破線で囲まれたステップ)は、先述のウィンドウ区間内に完了することが要求される。
続くステップS140では、上記一連のステップによるQ&Aイベントが先述のグッドイベントであるか否かのパス判定が行われる。ここで、イエス判定が下された場合には、フローがステップS150に進められる。一方、ノー判定が下された場合には、フローがステップS160に進められる。
ステップS150では、所定のグッドイベント処理が実行される。より具体的に述べると、ステップS151において、フェイルカウント値WD_FCが1つデクリメントされるとともに、新しいクエスチョン信号の生成が行われる。その後、フローがステップS110に戻されると、監視IC100は、マイコン300からクエスチョン信号の問い合わせコマンドを待ち受ける状態となる。
一方、ステップS160では、所定のバッドイベント処理が実行される。より具体的に述べると、ステップS161において、フェイルカウント値WD_FCが2つインクリメントされる。その際、新たなクエスチョン信号は生成されず、従前の値が維持される。
なお、マイコン300は、任意のタイミング(本図ではステップS340)において、フェイルカウント値WD_FCを参照することができる。
次に、ステップS162では、フェイルカウント値WD_FCが所定の閾値(WD_FCset)に達したか否かの判定が行われる。ここで、ノー判定が下された場合には、フローがステップS110に戻されるので、監視IC100は、マイコン300からクエスチョン信号の問い合わせコマンドを待ち受ける状態となる。
一方、イエス判定が下された場合には、フローがステップS163に進められて、所定の割り込み処理(=Q&A型WDTエラーレジスタWD_QA_ERRORへのデータ書き込み)が行われる。このような割り込み処理を受け付けたマイコン300は、ステップS350において、システムリブートなどの対策を取ることができる。
<第3周波数異常検出部(Q&A型)>
図11は、第3周波数異常検出部173cの一構成例を示す図である。本構成例の第3周波数異常検出部173cは、クエスチョン信号生成部c100と、アンサー信号生成部c200と、イベント判定部c300と、フェイルカウンタc400と、エラー出力部c500と、を含む。
まず、上記構成要素の説明に先立ち、本図中における各種レジスタ(WD_SEED、WD_Qcfg、WD_Question、Right_Answer、WD_Answer、WD_FC、WD_FCset、WD_QA_ERROR)について、簡単に説明しておく。
レジスタWD_SEEDは、クエスチョン信号生成部c100(特にその線形帰還シフトレジスタ)を初期化するために用意されたレジスタ(例えば5ビット)である。
レジスタWD_Qcfgは、クエスチョン信号生成部c100(特にその論理演算部)を設定するために用意されたレジスタ(例えば4ビット)である。
レジスタWD_Questionは、クエスチョン信号生成部c100の出力値を格納するために用意されたレジスタ(例えば4ビット)である。なお、レジスタWD_Questionは、マイコン300からクエスチョン信号を読み出すことができれば足りるので、監視IC100外部からのアクセスがリードオンリーに制限されている。
レジスタRight_Answerは、アンサー信号生成部c200の出力値を格納するために用意されたレジスタ(例えば8ビット)である。
レジスタWD_Answerは、マイコン300からアンサー信号を書き込むために用意されたレジスタ(例えば8ビット)である。
レジスタWD_FCは、フェイルカウンタc400の出力値を格納するために用意されたレジスタ(例えば3ビット)である。
レジスタWD_FCsetは、フェイルカウンタc400の出力値と比較する閾値(例えば、6、4、2)を格納するために用意されたレジスタ(例えば2ビット)である。
レジスタWD_QA_ERRORは、エラー出力部c500の出力値を格納するために用意されたレジスタ(1ビット)である。なお、レジスタWD_QA_ERRORは、マイコン300からQ&A型WDT動作の検出結果を読み出すことができれば足りるので、監視IC100外部からのアクセスがリードオンリーに制限されている。
クエスチョン信号生成部c100は、レジスタWD_SEED及びレジスタWD_Qcfgそれぞれに格納されたデータ値に基づいてクエスチョン信号を生成し、これをレジスタWD_Questionに書き込む(図10のステップS110、S151を参照)。
アンサー信号生成部c200は、レジスタWD_Questionに格納されたデータ値(=クエスチョン信号)に基づいてアンサー信号を生成し、これをレジスタRight_Answerに書き込む(図10のステップS120を参照)。
イベント判定部c300は、レジスタRight_Answer及びレジスタWD_Answerそれぞれに格納されたデータ値を比較してQ&Aイベントのパス判定(=所定のウィンドウ区間内に正しいアンサー信号が返されたか否かの判定、図10のステップS130及びS140を参照)を行い、フェイルカウンタc400のインクリメント/デクリメントを行う。より具体的に述べると、イベント判定部c300は、バッド判定時にフェイルカウンタc400を2つインクリメントする一方、グッド判定時にフェイルカウンタc400を1つデクリメントする(図10のステップS151及びS161を参照)。
フェイルカウンタc400は、イベント判定部c300の判定結果に基づいてインクリメント/デクリメントされる出力値(=フェイルカウント値)をレジスタWD_FCに書き込む(図10のステップS151及びS161を参照)。
エラー出力部c500は、レジスタWD_FC及びレジスタWD_FCsetそれぞれに格納されたデータ値を比較して、WD_FC≧WDFCsetとなったときに、レジスタWD_QA_ERRORに”1”をセットする(図10のステップS162及びS163を参照)。
図12は、クエスチョン信号生成部c100の一構成例を示す図である。本構成例のクエスチョン信号生成部c100は、Dフリップフロップc101~c105と、XORゲートc106~c110と、を含む。
Dフリップフロップc101のデータ入力端(D)は、XORゲートc106の出力端に接続されている。Dフリップフロップc101の出力端(Q)は、論理信号X1の出力端として、Dフリップフロップc102のデータ入力端(D)に接続されている。Dフリップフロップc102の出力端(Q)は、論理信号X2の出力端として、Dフリップフロップc103のデータ入力端(D)に接続されている。Dフリップフロップc103の出力端(Q)は、論理信号X3の出力端として、Dフリップフロップc104のデータ入力端(D)とXORゲートc106の第1入力端に接続されている。Dフリップフロップc104の出力端(Q)は、論理信号X4の出力端として、Dフリップフロップc105のデータ入力端(D)に接続されている。Dフリップフロップc105の出力端(Q)は、論理信号X5の出力端として、XORゲートc106の第2入力端に接続されている。
このように接続されたDフリップフロップc101~c105及びXORゲートc106は、5ビットの線形帰還シフトレジスタとして機能し、クロック入力に同期して帰還多項式X5+X3+1(31周期)で表される疑似乱数値(X1X2X3X4X5)を順次生成する。なお、レジスタWD_SEEDに格納されたデータ値(5ビット)は、各桁の値がDフリップフロップc101~c105それぞれの初期出力値として用いられる。
XORゲートc107は、論理信号X5とレジスタWD_Qcfgに格納された第4桁目(最上位)のビット値[3]との排他的論理和演算を行い、その出力値をレジスタWD_Questionの第4桁目に格納する。
XORゲートc108は、論理信号X4とレジスタWD_Qcfgに格納された第3桁目のビット値[2]との排他的論理和演算を行い、その出力値をレジスタWD_Questionの第3桁目に格納する。
XORゲートc109は、論理信号X3とレジスタWD_Qcfgに格納された第2桁目のビット値[1]との排他的論理和演算を行い、その出力値をレジスタWD_Questionの第2桁目に格納する。
XORゲートc110は、論理信号X2とレジスタWD_Qcfgに格納された第1桁目(最下位)のビット値[0]との排他的論理和演算を行い、その出力値をレジスタWD_Questionの第1桁目に格納する。
このように、XORゲートc107~c110は、線形帰還シフトレジスタで生成される疑似乱数値とレジスタWD_Qcfgの格納値に基づいて、クエスチョン信号を生成する論理演算部として機能する。
ただし、クエスチョン信号を生成するための論理演算処理については、何ら上記に限定されるものではなく、任意に変更することが可能である。
図13は、アンサー信号生成部c200の一構成例を示す図である。本構成例のアンサー信号生成部c200は、XORゲートc201~c208と、INVゲートc209とを含む。
XORゲートc201は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第4桁目のビット値[3]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第8桁目に格納する。
XORゲートc202は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第3桁目のビット値[2]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第7桁目に格納する。
XORゲートc203は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第2桁目のビット値[1]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第6桁目に格納する。
XORゲートc204は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第1桁目のビット値[0]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第5桁目に格納する。
XORゲートc205は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第4桁目のビット値[3]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第4桁目に格納する。
XORゲートc206は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第3桁目のビット値[2]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第3桁目に格納する。
XORゲートc207は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第2桁目のビット値[1]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第2桁目に格納する。
XORゲートc208は、レジスタWD_Questionに格納された任意桁目のビット値[x]と第1桁目のビット値[0]との排他的論理和演算を行い、その出力値をINVゲートc209経由でレジスタRight_Answerの第1桁目に格納する。
INVゲート209は、XORゲートc201~c208それぞれの出力値を論理反転させてからレジスタRight_Answerに書き込む。
このように、本構成例のアンサー信号生成部c200は、レジスタWD_Questionに格納されたクエスチョン信号のビット組み合わせ処理により、アンサー信号を生成し、これをレジスタRight_Answerに格納する。
ただし、アンサー信号を生成するための論理演算処理については、何ら上記に限定されるものではなく、任意に変更することが可能である。
<車両への適用>
図14は、車両Xの一構成例を示す外観図である。本構成例の車両Xは、バッテリから電力供給を受けて動作する種々の電子機器(車載機器)X11~X18を搭載している。なお、本図における電子機器X11~X18の搭載位置については、図示の便宜上、実際とは異なる場合がある。
電子機器X11は、エンジンに関連する制御(インジェクション制御、電子スロットル制御、アイドリング制御、酸素センサヒータ制御、及び、オートクルーズ制御など)を行うエンジンコントロールユニットである。
電子機器X12は、HID[high intensity discharged lamp]やDRL[daytime running lamp]などの点消灯制御を行うランプコントロールユニットである。
電子機器X13は、トランスミッションに関連する制御を行うトランスミッションコントロールユニットである。
電子機器X14は、車両Xの運動に関連する制御(ABS[anti-lock brake system]制御、EPS[electric power steering]制御、電子サスペンション制御など)を行う制動ユニットである。
電子機器X15は、ドアロックや防犯アラームなどの駆動制御を行うセキュリティコントロールユニットである。
電子機器X16は、ワイパー、電動ドアミラー、パワーウィンドウ、ダンパー(ショックアブソーバー)、電動サンルーフ、及び、電動シートなど、標準装備品やメーカーオプション品として、工場出荷段階で車両Xに組み込まれている電子機器である。
電子機器X17は、車載A/V[audio/visual]機器、カーナビゲーションシステム、及び、ETC[electronic toll collection system]など、ユーザオプション品として任意で車両Xに装着される電子機器である。
電子機器X18は、車載ブロア、オイルポンプ、ウォーターポンプ、バッテリ冷却ファンなど、高耐圧系モータを備えた電子機器である。
なお、先に説明した監視IC100は、電子機器X11~X18のいずれにも組み込むことが可能である。
<その他の変形例>
なお、上記の実施形態では、車載機器に搭載される監視ICを例に挙げたが、その適用対象はこれに限定されるものではなく、電子機器全般に広く適用することが可能である。
また、本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態に限定されるものではなく、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。