【解決手段】スイッチ状態判定装置1は、スイッチSW1及びSW2を外付けするための外部端子T1及びT2と、外部端子T1及びT2に流すための定電流を生成する定電流生成部10と、外部端子T1及びT2の端子電圧VT1及びVT2と閾値電圧Vth1及びVth2を比較して比較信号S1及びS2を生成する電圧比較部20と、比較信号S1及びS2に応じてオン/オフ判定信号S3を出力するオン/オフ判定部30と、閾値電圧設定値S4に応じて閾値電圧Vth1及びVth2を調整する閾値電圧制御部40と、端子電圧VT1及びVT2のレベル判定信号S5(または端子電圧値)を出力するレベル判定部50と、を有する。
前記定電流生成部は、前記外部端子と電源端との間に接続された第1電流源と、前記外部端子と接地端との間に接続された第2電流源と、を含み、前記外部端子と接地端との間に外付けされたスイッチのオン/オフ判定時には前記第1電流源を駆動し、前記外部端子と電源端との間に外付けされたスイッチのオン/オフ判定時には前記第2電流源を駆動することを特徴とする請求項1〜3のいずれか一項に記載のスイッチ状態判定装置。
前記レベル判定部は、複数の外部端子から一つの端子電圧を選択して前記A/D変換部に出力するセレクタを含むことを特徴とする請求項5に記載のスイッチ状態判定装置。
前記マイコンは、前記レベル判定信号に応じて前記閾値設定電圧値を段階的に切り替える、若しくは、前記端子電圧値に応じて前記閾値設定電圧値を算出することを特徴とする請求項7に記載の電子機器。
【発明を実施するための形態】
【0019】
<電子機器>
図1は、電子機器の全体構成を示すブロック図である。本構成例の電子機器100は、スイッチ状態判定装置1と、マイコン2と、スイッチSW1及びSW2と、を有する。
【0020】
スイッチ状態判定装置1は、その外部端子T1及びT2にそれぞれ外付けされたスイッチSW1及びSW2のオン/オフ判定(=クローズ/オープン判定)を行い、その判定結果をマイコン2に対して通知する半導体集積回路装置である。また、スイッチ状態判定装置1は、スイッチSW1及びSW2のオン/オフ判定だけでなく、その異常判定を行う機能も備えている。この点については、後ほど詳述する。
【0021】
マイコン2は、電子機器100の制御主体であり、シリアル通信または割り込み通知を介して、スイッチ状態判定装置1にスイッチSW1及びSW2の状態判定(=オン/オフ判定または異常判定)を指示したり、その判定結果に応じた各種動作を実行したりする。
【0022】
スイッチSW1は、外部端子T1と電源電圧Vccの印加端(=電源端)との間に外付けされたVcc側スイッチである。一方、スイッチSW2は、外部端子T2と接地電圧GNDの印加端(=接地端)との間に外付けされたGND側スイッチである。
【0023】
<スイッチ状態判定装置>
引き続き、
図1を参照しながら、スイッチ状態判定装置1の構成及び動作を説明する。本構成例のスイッチ状態判定装置1は、外部端子T1及びT2と、定電流生成部10と、電圧比較部20と、オン/オフ判定部30と、閾値電圧制御部40と、レベル判定部50と、インタフェース部60と、を有する。
【0024】
外部端子T1及びT2は、それぞれ、スイッチSW1及びSW2を外付けするためのピンである。なお、本図の例では、外部端子T1にVcc側のスイッチSW1が外付けされており、外部端子T2にGND側のスイッチSW2が外付けされている。ただし、外部端子T1及びT2にそれぞれ外付けされるスイッチの種類(Vcc側/GND側)は、本図の例に限定されるものではなく、外部端子T1にGND側スイッチを外付けしても構わないし、外部端子T2にVcc側スイッチを外付けしても構わない。また、本図の例では、図示の便宜上、外部端子数を2としたが、外部端子数は1以上であればよい。
【0025】
定電流生成部10は、スイッチSW1及びSW2のオン/オフ判定に際して、外部端子T1及びT2にそれぞれ流すための定電流を生成する回路部であり、電流源11U及び12Uと、電流源11D及び12Dと、を含む。
【0026】
電流源11U及び12Uは、それぞれ、電源端と外部端子T1及びT2との間に接続されたプルアップ側の電流源であり、電源端から外部端子T1及びT2に向けて流すための定電流IUを生成する。
【0027】
電流源11D及び12Dは、それぞれ、外部端子T1及びT2と接地端との間に接続されたプルダウン側の電流源であり、外部端子T1及びT2から接地端に向けて流すための定電流IDを生成する。
【0028】
上記構成から成る定電流生成部10は、Vcc側スイッチのオン/オフ判定時にプルダウン側の電流源を駆動し、GND側スイッチのオン/オフ判定時にプルアップ側の電流源を駆動する。例えば、スイッチSW1のオン/オフ判定時には電流源11Dが駆動され、スイッチSW2のオン/オフ判定時には電流源12Uが駆動される。その結果、外部端子T1及びT2には、それぞれ、スイッチSW1及びSW2のオン/オフに応じた端子電圧VT1及びVT2が現れる。
【0029】
このように、外部端子T1及びT2に対して、それぞれ、プルアップ側の電流源11U及び12Uとプルダウン側の電流源11D及び12Dの双方を設けておけば、外部端子T1及びT2に外付けされるスイッチの種類(Vcc側/GND側)に依ることなく、それぞれのオン/オフ判定を支障なく実施することが可能となる。
【0030】
なお、プルアップ側の電流源とプルダウン側の電流源は、外部端子毎に1セットずつ設けておけばよい。すなわち、外部端子数がnである場合には、nセットのプルアップ側の電流源とプルダウン側の電流源を用意しておくことになる。
【0031】
ただし、外部端子T1及びT2に外付けされるスイッチの種類(Vcc側/GND側)が予め制限されている場合には、プルアップ側の電流源11U及び12Uと、プルダウン側の電流源11D及び12Dのうち、一方を省略することも可能である。例えば、外部端子T1及びT2のいずれにもVcc側スイッチしか外付けされないのであれば、プルアップ側の電流源11U及び12Uは不要となる。逆に、外部端子T1及びT2のいずれにもGND側スイッチしか外付けされないのであれば、プルダウン側の電流源11D及び12Dは不要となる。
【0032】
電圧比較部20は、端子電圧VT1及びVT2と閾値電圧Vth1及びVth2をそれぞれ比較して比較信号S1及びS2を生成する回路部であり、コンパレータ21及び22を含む。
【0033】
コンパレータ21は、非反転入力端(+)に入力される端子電圧VT1と、反転入力端(−)に入力される閾値電圧Vth1を比較して比較信号S1を生成する。比較信号S1は、端子電圧VT1が閾値電圧Vth1よりも高いときにハイレベルとなり、端子電圧VT1が閾値電圧Vth1よりも低いときにローレベルとなる。
【0034】
コンパレータ22は、非反転入力端(+)に入力される端子電圧VT2と、反転入力端(−)に入力される閾値電圧Vth2を比較して比較信号S2を生成する。比較信号S2は、端子電圧VT2が閾値電圧Vth2よりも高いときにハイレベルとなり、端子電圧VT2が閾値電圧Vth2よりも低いときにローレベルとなる。
【0035】
なお、コンパレータは、外部端子毎に1つずつ設けておけばよい。すなわち、外部端子数がnである場合には、n個のコンパレータを用意しておくことになる。
【0036】
オン/オフ判定部30は、比較信号S1及びS2に応じてオン/オフ判定信号S3を出力する。例えば、外部端子数がnである場合、オン/オフ判定信号S3は、nビットのデジタル信号とすればよい。このような信号生成を行うことにより、オン/オフ判定信号S3の各桁値(1/0)とスイッチ毎のオン/オフ判定結果とを一対一で対応付けることが可能となる。
【0037】
閾値電圧制御部40は、マイコン2からインタフェース部60を介して入力される閾値電圧設定値S4に応じて閾値電圧Vth1及びVth2を調整する。
【0038】
レベル判定部50は、端子電圧VT1及びVT2が正常範囲内であるか否かを示すレベル判定信号S5(または端子電圧値)を生成し、これをインタフェース部60を介してマイコン2に出力する。また、レベル判定部50は、マイコン2からインタフェース部60を介して入力される異常検出値S6をレベル判定処理に反映させる機能も備えている。
【0039】
インタフェース部60は、マイコン2との間でシリアル通信信号S7の送受信を行う。なお、シリアル通信信号S7に含まれるデータとしては、オン/オフ判定信号S3、閾値電圧設定値S4、レベル判定信号S5、及び、異常検出値S6等を挙げることができる。ただし、インタフェース部60は必須の構成要素ではなく、例えば、汎用入出力ポートまたは専用ポート(割込ポート)を用いて、上記の信号やデータ値を送受信してもよい。
【0040】
<閾値電圧制御部>
図2は、閾値電圧制御部40の一構成例を示すブロック図である。本構成例の閾値電圧制御部40は、階調電圧生成部41と、閾値電圧設定値レジスタ42と、セレクタ43及び44とを含む。
【0041】
階調電圧生成部41は、x通りの階調電圧V1〜Vxを生成する。なお、階調電圧生成部41としては、電源電圧Vccをx通りに分圧する抵抗ラダーなどを用いればよい。
【0042】
閾値電圧設定値レジスタ42は、マイコン2からインタフェース部60を介して入力される閾値電圧設定値S4(ここでは2チャンネル分の閾値電圧設定値S4a及びS4b)を格納する。
【0043】
セレクタ43は、閾値電圧設定値S4aに応じて階調電圧V1〜Vxの一つを選択し、これを閾値電圧Vth1として出力する。
【0044】
セレクタ44は、閾値電圧設定値S4bに応じて階調電圧V1〜Vxの一つを選択し、これを閾値電圧Vth2として出力する。
【0045】
<レベル判定部>
図3は、レベル判定部50の一構成例を示すブロック図である。本構成例のレベル判定部50は、セレクタ51と、A/D変換部52と、端子電圧値レジスタ53と、異常検出値レジスタ54と、比較部55と、を含む。
【0046】
セレクタ51は、端子電圧VT1及びVT2の一方を選択し、これをアナログ電圧A0としてA/D変換部52に出力する。このようなセレクタ51を設けることにより、外部端子数nに応じてA/D変換部52を増やす必要がないので、チップの大型化を招かずに済む。なお、外部端子数が1である場合には、セレクタ51を割愛することができる。
【0047】
A/D変換部52は、アナログ電圧A0(=セレクタ51で選択された端子電圧)をデジタルの端子電圧値D0に変換する。
【0048】
端子電圧値レジスタ53は、外部端子T1及びT2それぞれの端子電圧値D0を格納する。なお、端子電圧値D0としては、スイッチSW1及びSW2のオン時にそれぞれ検出される端子電圧値VT1(on)及びVT2(on)、または、スイッチSW1及びSW2のオフ時にそれぞれ検出される端子電圧値VT1(off)及びVT2(off)、若しくは、その両方が格納される。
【0049】
異常検出値レジスタ54は、マイコン2からインタフェース部60を介して入力される異常検出値S6を格納する。なお、異常検出値S6としては、スイッチSW1のレベル判定時に用いられる異常検出値Vdet1H及びVdet1Lの少なくとも一方と、スイッチSW2のレベル判定時に用いられる異常検出値Vdet2H及びVdet2Lの少なくとも一方が格納される。
【0050】
比較部55は、端子電圧値レジスタ53に格納された端子電圧値D1と、異常検出値レジスタ54に格納された異常検出値D2を比較して、レベル判定信号S5を生成する。
【0051】
本構成例のレベル判定部50は、上記のレベル判定信号S5(または端子電圧値D1)をインタフェース部60経由でマイコン2に出力する。
【0052】
<オン/オフ判定動作>
図4は、オン/オフ判定動作の一例を示すタイムチャートである。なお、本図の上段はスイッチ状態判定装置1の動作ステップを示しており、本図の下段はマイコン2の動作ステップを示している。なお、マイコン2の動作ステップには100番台の番号が付されており、スイッチ状態判定装置1の動作ステップには200番台の番号が付されている。
【0053】
スイッチSW1及びSW2のオン/オフ判定動作を開始する際、ステップS101ではマイコン2からオン/オフ判定開始コマンドが送信される。
【0054】
オン/オフ判定開始コマンドがスイッチ状態判定装置1で受信されると、まず、ステップS201では、電流源11Dがオンされる。次に、ステップS202では、端子電圧VT1と閾値電圧Vth1が比較されて、スイッチSW1のオン/オフ判定が行われる。また、ステップS203では、端子電圧VT1のA/D変換処理と端子電圧値レジスタ53の更新処理(=端子電圧値VT1(on)またはVT1(off)の上書き)が適宜実施される。その後、ステップS204では、電流源11Dがオフされる。
【0055】
続くステップS205では、電流源12Uがオンされる。そして、ステップS206では、端子電圧VT2と閾値電圧Vth2が比較されて、スイッチSW2のオン/オフ判定が行われる。また、ステップS207では、端子電圧VT2のA/D変換処理と端子電圧値レジスタ53の更新処理(=端子電圧値VT2(on)またはVT2(off)の上書き)が適宜実施される。その後、ステップS208では、電流源12Uがオフされる。
【0056】
スイッチSW1及びSW2それぞれのオン/オフ判定が行われた後、ステップS209では、スイッチ状態判定装置1からオン/オフ判定信号S3が送信される。
【0057】
最後に、ステップS102では、オン/オフ判定信号S3がマイコン2で受信されて、上記一連のオン/オフ判定動作が完了する。
【0058】
なお、本タイムチャートでは、スイッチSW1及びSW2のオン/オフ判定を時分割で順次実施しているが、制御シーケンスについては、何らこれに限定されるものではない。例えば、電流源11D及び12Uを同時にオンして、端子電圧VT1及びVT2と閾値電圧Vth1及びVth2を同時に比較すれば、スイッチSW1及びSW2のオン/オフ判定を同時並行的に進めることもできる。ただし、A/D変換部52が一つしかないので、端子電圧VT1及びVT2のA/D変換処理と端子電圧値レジスタ53の更新処理については、時分割で順次実施することになる。また、本タイムチャートでは、マイコン2からのオン/オフ判定開始コマンド毎にオン/オフ判定動作を行う構成を例に挙げたが、これ以外の構成として、例えば、スイッチ状態判定装置1自身で間欠的にスイッチ状態を監視し、オン/オフ状態に変化があった場合にマイコン2への通知を行う構成としてもよい。
【0059】
<レジスタ設定動作とレベル判定動作>
図5は、レジスタ設定動作及びレベル判定動作の一例を示すタイムチャートである。なお、本図の上段はスイッチ状態判定装置1の動作ステップを示しており、本図の下段はマイコン2の動作ステップを示している。なお、マイコン2の動作ステップには110番台の番号が付されており、スイッチ状態判定装置1の動作ステップには210番台の番号が付されている。
【0060】
まず、閾値電圧設定値レジスタ42と異常検出値レジスタ54の初期設定動作(ステップS111及びS112、並びに、ステップS211及びS212)について説明する。
【0061】
ステップS111では、マイコン2から閾値電圧設定値S4(=初期設定値、または、前回の動作終了時における最終更新値)が送信される。閾値電圧設定値S4がスイッチ状態判定装置1で受信されると、ステップS211では、閾値電圧設定値レジスタ42の設定処理(=閾値電圧設定値S4の書込み処理)が実施される。
【0062】
また、ステップS112では、マイコン2から異常検出値S6(=初期設定値、若しくは、前回の動作終了時における最終更新値)が送信される。異常検出値S6がスイッチ状態判定装置1で受信されると、ステップS212では、異常検出値レジスタ54の設定処理(=異常検出値S6の書込み処理)が実施される。
【0063】
なお、上記した閾値電圧設定値レジスタ42と異常検出値レジスタ54の初期設定動作は、電子機器100の起動時などに実施すればよい。
【0064】
次に、端子電圧VT1及びVT2のレベル判定動作(ステップS113及びS114、並びに、ステップS213及びS214)について説明する。
【0065】
端子電圧VT1及びVT2のレベル判定動作を開始する際、ステップS113では、マイコン2からレベル判定開始コマンドが送信される。
【0066】
レベル判定開始コマンドがスイッチ状態判定装置1で受信されると、ステップS213では、端子電圧VT1及びVT2のそれぞれについて、端子電圧値D1と異常検出値D2の比較処理が行われ、その比較結果に応じたレベル判定信号S5が生成される。その後、ステップS214では、スイッチ状態判定装置1からレベル判定信号S5が送信される。なお、レベル判定信号S5に代えて、または、レベル判定信号S5と共に、端子電圧値D1を送信しても構わない。
【0067】
そして、ステップS114では、レベル判定信号S5がマイコン2で受信されて、上記一連のレベル判定動作が完了する。なお、マイコン2は、レベル判定信号S5に応じて、端子電圧VT1及びVT2の少なくとも一方が正常範囲内でないと判定した場合、引き続いて、閾値電圧設定値レジスタ42と異常検出値レジスタ54の再設定動作を実施する。
【0068】
次に、閾値電圧設定値レジスタ42と異常検出値レジスタ54の再設定動作(ステップS115及びS116、並びに、ステップS215及びS216)について説明する。
【0069】
ステップS115では、マイコン2から閾値電圧設定値S4(=再設定値)が送信される。閾値電圧設定値S4がスイッチ状態判定装置1で受信されると、ステップS215では、閾値電圧設定値レジスタ42の再設定処理(=閾値電圧設定値S4の上書処理)が実施される。このように、閾値電圧設定値レジスタ42の再設定処理を行う構成であれば、スイッチSW1及びSW2の経年劣化などに起因して、端子電圧VT1及びVT2に意図しないレベル変動が生じた場合であっても、スイッチSW1及びSW2のオン/オフを誤判定しにくくなる。
【0070】
また、ステップS116では、マイコン2から異常検出値S6(=再設定値)が送信される。異常検出値S6がスイッチ状態判定装置1で受信されると、ステップS216では異常検出値レジスタ54の再設定処理(=異常検出値S6の上書き処理)が実施される。このように、閾値電圧設定値レジスタ42の再設定処理だけでなく、異常検出値レジスタ54の再設定処理も行う構成であれば、閾値電圧設定値S4の再設定後も引き続いて端子電圧VT1及びVT2のレベル判定処理(異常検出処理)を継続することができるので、スイッチSW1及びSW2のさらなる経年劣化にも対応することが可能となる。
【0071】
なお、本タイムチャートにおいて、スイッチ状態判定装置1(特にレベル判定部50)は、マイコン2からレベル判定開始コマンドの入力を受けて、端子電圧VT1及びVT2のレベル判定動作を行い、レベル判定信号S5(または端子電圧値D1)を出力する例を挙げたが、制御シーケンスについては、何らこれに限定されるものではない。
【0072】
例えば、スイッチ状態判定装置1(特にレベル判定部50)において、定期的に端子電圧VT1及びVT2のレベル判定動作を行い、自発的にレベル判定信号S5(または端子電圧値D1)を出力する構成としてもよい。また、端子電圧VT1及びVT2が正常範囲内でないときにのみ、マイコン2への通知を行う構成としてもよい。
【0073】
また、端子電圧VT1及びVT2の少なくとも一方が正常範囲内でないと判定された場合、マイコン2では、上記のレジスタ再設定動作に代えて、または、上記のレジスタ再設定動作と共に、ユーザへの報知動作や各種の異常保護動作(強制シャットダウンなど)を実施しても構わない。
【0074】
また、マイコン2のレジスタ再設定機能をスイッチ状態判定装置1に移譲し、マイコン2からの指示を待つことなく、上記のレベル判定動作やレジスタ再設定動作をスイッチ状態判定装置1の内部で自己完結するようにしてもよい。
【0075】
以下では、これまでに説明してきたスイッチ状態判定動作(オン/オフ判定動作及びレベル判定動作)について、具体的な実施形態を例に挙げながら詳細な説明を行う。
【0076】
<第1実施形態>
図6は、第1実施形態におけるスイッチSW1の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW1のオン/オフ状態が示されており、本図の下段には端子電圧VT1の挙動が描写されている。
【0077】
まず、スイッチSW1のオン/オフ判定動作について説明する。本実施形態では、端子電圧VT1と閾値電圧Vth1を比較してスイッチSW1のオン/オフ判定が行われる。閾値電圧Vth1の初期設定値は、例えばVth1=Vcc/2としておけばよい。
【0078】
スイッチSW1がオフしているときには、端子電圧VT1が電流源11Dを介して接地電圧GND(またはその近傍値)までプルダウンされるので、端子電圧VT1が閾値電圧Vth1よりも低くなる。
【0079】
一方、スイッチSW1がオンしているときには、端子電圧VT1がスイッチSW1を介して電源電圧Vcc(またはその近傍値)までプルアップされるので、端子電圧VT1が閾値電圧Vth1よりも高くなる。
【0080】
従って、端子電圧VT1と閾値電圧Vth1を比較することにより、スイッチSW1のオン/オフ判定を行うことができる。
【0081】
次に、端子電圧VT1のレベル判定動作について説明する。本実施形態では、スイッチSW1のオン時に検出される端子電圧値VT1(on)と所定の異常検出値Vdet1Hを比較して端子電圧VT1のレベル判定が行われる。異常検出値Vdet1Hの初期設定値は、例えばVth1<Vdet1H<Vccとしておけばよい。
【0082】
スイッチSW1に異常がなければ、端子電圧値VT1(on)が電源電圧Vcc(またはその近傍値)となるので、端子電圧値VT1(on)が異常検出値Vdet1Hよりも高くなる(図中の太実線を参照)。
【0083】
一方、スイッチSW1にオン抵抗値の増大を伴う異常(接点不良など)が生じると、端子電圧値VT1(on)が電源電圧Vccまで上がり切らなくなる。そして、上記の異常が進行していくと、ついには端子電圧値VT1(on)が異常検出値Vdet1Hを下回る(図中の太破線を参照)。
【0084】
従って、端子電圧値VT1(on)と異常検出値Vdet1Hを比較することにより、端子電圧VT1のレベル判定(異常判定)を行うことができる。特に、異常検出値Vdet1Hを閾値電圧Vth1よりも高めに設定しておけば、スイッチSW1のオン/オフを誤判定するよりも先に、端子電圧VT1の異常を把握することができる。
【0085】
なお、マイコン2は、端子電圧VT1の異常(VT1(on)<Vdet1H)を検出した場合、閾値電圧Vth1と異常検出値Vdet1Hを段階的に引き下げる。このような構成であれば、スイッチSW1のオン/オフ誤判定を未然に回避しつつ、その後も端子電圧VT1のレベル判定処理(異常検出処理)を継続することが可能となる。
【0086】
図7は、第1実施形態におけるスイッチSW2の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW2のオン/オフ状態が示されており、本図の下段には端子電圧VT2の挙動が描写されている。
【0087】
まず、スイッチSW2のオン/オフ判定動作について説明する。本実施形態では、端子電圧VT2と閾値電圧Vth2を比較してスイッチSW2のオン/オフ判定が行われる。閾値電圧Vth2の初期設定値は、例えばVth2=Vcc/2としておけばよい。
【0088】
スイッチSW2がオフしているときには、端子電圧VT2が電流源12Uを介して電源電圧Vcc(またはその近傍値)までプルアップされるので、端子電圧VT2が閾値電圧Vth2よりも高くなる。
【0089】
一方、スイッチSW2がオンしているときには、端子電圧VT2がスイッチSW2を介して接地電圧GND(またはその近傍値)までプルダウンされるので、端子電圧VT2が閾値電圧Vth2よりも低くなる。
【0090】
従って、端子電圧VT2と閾値電圧Vth2を比較することにより、スイッチSW2のオン/オフ判定を行うことができる。
【0091】
次に、端子電圧VT2のレベル判定動作について説明する。本実施形態では、スイッチSW2のオン時に検出される端子電圧値VT2(on)と所定の異常検出値Vdet2Lを比較して端子電圧VT2のレベル判定が行われる。異常検出値Vdet2Lの初期設定値は、例えばGND<Vdet2L<Vth2としておけばよい。
【0092】
スイッチSW2に異常がなければ、端子電圧値VT2(on)が接地電圧GND(またはその近傍値)となるので、端子電圧値VT2(on)が異常検出値Vdet2Lよりも低くなる(図中の太実線を参照)。
【0093】
一方、スイッチSW2にオン抵抗値の増大を伴う異常(接点不良など)が生じると、端子電圧値VT2(on)が接地電圧GNDまで下がり切らなくなる。そして、上記の異常が進行していくと、ついには端子電圧値VT2(on)が異常検出値Vdet2Lを上回る(図中の太破線を参照)。
【0094】
従って、端子電圧値VT2(on)と異常検出値Vdet2Lを比較することにより、端子電圧VT2のレベル判定(異常判定)を行うことができる。特に、異常検出値Vdet2Lを閾値電圧Vth2よりも低めに設定しておけば、スイッチSW2のオン/オフを誤判定するよりも先に、端子電圧VT2の異常を把握することができる。
【0095】
なお、マイコン2は、端子電圧VT2の異常(VT2(on)>Vdet2L)を検出した場合、閾値電圧Vth2と異常検出値Vdet2Lを段階的に引き上げる。このような構成であれば、スイッチSW2のオン/オフ誤判定を未然に回避しつつ、その後も端子電圧VT2のレベル判定処理(異常検出処理)を継続することが可能となる。
【0096】
図8は、第1実施形態におけるオン/オフ判定動作を示すフローチャートである。本フローの動作主体は、特段の言及がない限り、スイッチ状態判定装置1であるものとする。
【0097】
まず、ステップS1では、マイコン2からオン/オフ判定開始コマンドが入力されたか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS2に進められる。一方、ノー判定が下された場合には、フローがステップS1に戻されて、オン/オフ判定開始コマンドの入力待機状態が継続される。
【0098】
ステップS1でイエス判定が下された場合、ステップS2では、判定対象チャンネルとして第k番目の外部端子Tk(ただしk=1、2、…、n)が選択される。なお、ステップS2では、kの初期値を1とし、フローがステップS2に戻ってくる度に、kを1つずつインクリメントしていくものとすればよい。
【0099】
続くステップS3では、外部端子TkにVcc側スイッチが外付けされているか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS4に進められ、ノー判定が下された場合には、フローがステップS14に進められる。なお、外部端子Tkに外付けされているスイッチの種類(Vcc側/GND側)については、所定のレジスタ(
図1では不図示)に予め格納しておけばよい。
【0100】
ステップS3でイエス判定が下された場合、ステップS4では、定電流生成部10のプルダウン側電流源がオンされる。
【0101】
続くステップS5では、端子電圧VTkが閾値電圧Vthkよりも高いか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS6に進められ、ノー判定が下された場合には、フローがステップS13に進められる。
【0102】
ステップS5でイエス判定が下された場合、ステップS6では、Vcc側スイッチがオンである旨のオン/オフ判定結果が取得される。
【0103】
続くステップS7〜S9では、Vcc側スイッチがオンであることを受けて、レベル判定部50のレジスタ更新処理が実施される。具体的には、セレクタ51の入力チャンネル切替処理(=端子電圧VTkの選択出力処理)、A/D変換部52による端子電圧VTkのA/D変換処理(=端子電圧値VTk(on)の生成処理)、並びに、端子電圧値レジスタ53の更新処理(=端子電圧値VTk(on)の格納処理)が順次実施される。
【0104】
その後、ステップS10では、定電流生成部10のプルダウン側電流源がオフされて、1チャンネル分のオン/オフ判定処理が終了する。
【0105】
続くステップS11では、全てのチャンネル(外部端子T1〜Tnの全て)について、スイッチのオン/オフ判定処理が終了したか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS12に進められる。一方、ノー判定が下された場合には、フローがステップS2に戻されて、次チャンネル以降のオン/オフ判定処理が続けられる。
【0106】
ステップS11でイエス判定が下された場合、ステップS12では、全チャンネル分のオン/オフ判定結果を含むオン/オフ判定信号S3がマイコン2に送信されて、一連のオン/オフ判定動作が完了される。
【0107】
一方、ステップS5でノー判定が下された場合、ステップS13において、Vcc側スイッチがオフである旨のオン/オフ判定結果が取得された後、フローがステップS10にスキップされる。すなわち、Vcc側スイッチがオフの場合には、レベル判定部50のレジスタ更新処理が実施されないまま、1チャンネル分のオン/オフ判定処理が終了する。
【0108】
また、ステップS3でノー判定が下された場合、ステップS14では、外部端子TkにGND側スイッチが外付けされているか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS15に進められる。一方、ノー判定が下された場合には、外部端子Tkが未使用状態(=外部端子TkにVcc側スイッチもGND側スイッチも外付けされていない状態)であることから、フローがステップS2に戻されて、次チャンネル以降のオン/オフ判定処理が続けられる。
【0109】
ステップS14でイエス判定が下された場合、ステップS15では、定電流生成部10のプルアップ側電流源がオンされる。
【0110】
続くステップS16では、端子電圧VTkが閾値電圧Vthkよりも低いか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS17に進められ、ノー判定が下された場合には、フローがステップS21に進められる。
【0111】
ステップS16でイエス判定が下された場合、ステップS17では、GND側スイッチがオンである旨のオン/オフ判定結果が取得される。
【0112】
続くステップS18〜S20では、GND側スイッチがオンであることを受けて、レベル判定部50のレジスタ更新処理が実施される。なお、ステップS18〜S20の動作内容は、ステップS7〜S9の動作内容と基本的に同一である。その後、フローはステップS10に進められて、1チャンネル分のオン/オフ判定処理が終了する。
【0113】
一方、ステップS16でノー判定が下された場合、ステップS21において、GND側スイッチがオフである旨のオン/オフ判定結果が取得された後、フローがステップS10にスキップされる。すなわち、GND側スイッチがオフの場合には、レベル判定部50のレジスタ更新処理が実施されないまま1チャンネル分のオン/オフ判定処理が終了する。
【0114】
図9は、第1実施形態におけるレジスタ更新動作の一変形例を示すフローチャートである。本フローチャートは、
図8のフローチャートをベースとしつつ、ステップS22及びS23を追加した点に特徴を有する。そこで、先と同様のステップについては、
図8と同一の符号を付すことにより重複した説明を割愛し、以下では、本変形例の特徴部分について重点的な説明を行う。
【0115】
Vcc側スイッチがオンであることを受けて、フローがステップS8に至り、端子電圧VTkのA/D変換処理が行われた後、ステップS22では、端子電圧値VTk(on)が低下したか否か(=端子電圧値VTk(on)が異常検出値VdetkHに近付いたか否か)の判定が行われる。
【0116】
なお、上記の判定処理としては、A/D変換部52で新たに生成された新端子電圧値VTk(on)−NEWと、端子電圧値レジスタ53から読み出された旧端子電圧値VTk(on)−OLDとを比較し、前者が後者よりも低いか否かを判定すればよい。
【0117】
ここで、イエス判定が下された場合には、フローがステップS9に進められて、先に説明した端子電圧値レジスタ53の更新処理が実施される。一方、ノー判定が下された場合には、フローがステップS10にスキップされて、端子電圧値レジスタ53の更新処理が実施されないまま、1チャンネル分のオン/オフ判定処理が終了する。
【0118】
また、GND側スイッチがオンであることを受けて、フローがステップS19に至り、端子電圧VTkのA/D変換処理が行われた後、ステップS23では、端子電圧値VTk(on)が上昇したか否か(=端子電圧値VTk(on)が異常検出値VdetkLに近付いたか否か)の判定が行われる。
【0119】
なお、上記の判定処理としては、A/D変換部52で新たに生成された新端子電圧値VTk(on)−NEWと、端子電圧値レジスタ53から読み出された旧端子電圧値VTk(on)−OLDとを比較し、前者が後者よりも高いか否かを判定すればよい。
【0120】
ここで、イエス判定が下された場合には、フローがステップS20に進められて、先に説明した端子電圧値レジスタ53の更新処理が実施される。一方、ノー判定が下された場合には、フローがステップS10にスキップされて、端子電圧値レジスタ53の更新処理が実施されないまま、1チャンネル分のオン/オフ判定処理が終了する。
【0121】
このように、端子電圧値レジスタ53の更新動作は、端子電圧値VTk(on)が異常検出値VdetkHまたはVdetkLに近付いたときにのみ実施してもよい。
【0122】
図10は、第1実施形態におけるレベル判定動作を示すフローチャートである。本フローの動作主体は、特段の言及がない限り、スイッチ状態判定装置1であるものとする。
【0123】
まず、ステップS31では、マイコン2からレベル判定開始コマンドが入力されたか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS32に進められる。一方、ノー判定が下された場合には、フローがステップS31に戻され、レベル判定開始コマンドの入力待機状態が継続される。
【0124】
ステップS31でイエス判定が下された場合、ステップS32では、判定対象チャンネルとして第k番目の外部端子Tk(ただしk=1、2、…、n)が選択される。なお、ステップS32では、kの初期値を1とし、フローがステップS32に戻ってくる度に、kを1つずつインクリメントしていくものとすればよい。
【0125】
続くステップS33では、外部端子TkにVcc側スイッチが外付けされているか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS34に進められ、ノー判定が下された場合には、フローがステップS39に進められる。
【0126】
ステップS33でイエス判定が下された場合、ステップS34では、端子電圧値VTk(on)が異常検出値VdetkHよりも高いか否かの判定が行われる。本ステップの判定処理は、例えば、
図6の端子電圧値VT1(on)と異常検出値Vdet1Hとの比較処理に相当する。ここで、イエス判定が下された場合には、フローがステップS35に進められ、ノー判定が下された場合には、フローがステップS38に進められる。
【0127】
ステップS34でイエス判定が下された場合、ステップS35では、端子電圧VTkが正常である旨のレベル判定結果が取得される。
【0128】
続くステップS36では、全てのチャンネル(外部端子T1〜Tnの全て)について、端子電圧VTkのレベル判定処理が終了したか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS37に進められる。一方、ノー判定が下された場合には、フローがステップS32に戻されて、次チャンネル以降のレベル判定処理が続けられる。
【0129】
ステップS36でイエス判定が下された場合、ステップS37では、全チャンネル分のレベル判定結果を含むレベル判定信号S5がマイコン2に送信されて、一連のレベル判定動作が完了される。
【0130】
一方、ステップS34でノー判定が下された場合、ステップS38において、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得された後、フローがステップS36に進められる。
【0131】
また、ステップS33でノー判定が下された場合、ステップS39では、外部端子TkにGND側スイッチが外付けされているか否かの判定が行われる。ここで、イエス判定が下された場合には、フローがステップS40に進められる。一方、ノー判定が下された場合には、外部端子Tkが未使用状態であることから、フローがステップS32に戻されて次チャンネル以降のレベル判定処理が続けられる。
【0132】
ステップS39でイエス判定が下された場合、ステップS40では、端子電圧値VTk(on)が異常検出値VdetkLよりも低いか否かの判定が行われる。本ステップの判定処理は、例えば、
図7の端子電圧値VT2(on)と異常検出値Vdet2Lとの比較処理に相当する。ここで、イエス判定が下された場合には、フローがステップS41に進められ、ノー判定が下された場合には、フローがステップS42に進められる。
【0133】
ステップS40でイエス判定が下された場合には、ステップS41において、端子電圧VTkが正常である旨のレベル判定結果が取得された後、フローがステップS36に進められる。
【0134】
一方、ステップS40でノー判定が下された場合には、ステップS42において、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得された後、フローがステップS36に進められる。
【0135】
<第2実施形態>
図11は、第2実施形態におけるスイッチSW1の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW1のオン/オフ状態が示されており、本図の下段には端子電圧VT1の挙動が描写されている。
【0136】
スイッチSW1のオン/オフ判定動作については、第1実施形態(
図6)と同様であるので、重複した説明を割愛し、以下では、端子電圧VT1のレベル判定動作について説明する。本実施形態では、第1実施形態(
図6)と異なり、スイッチSW1のオフ時に検出される端子電圧値VT1(off)と所定の異常検出値Vdet1Lを比較して端子電圧VT1のレベル判定が行われる。異常検出値Vdet1Lの初期設定値は、例えばGND<Vdet1L<Vth1としておけばよい。
【0137】
スイッチSW1に異常がなければ、端子電圧値VT1(off)が接地電圧GND(またはその近傍値)となるので、端子電圧値VT1(off)が異常検出値Vdet1Lよりも低くなる(図中の太実線を参照)。
【0138】
一方、スイッチSW1にリーク電流値の増大を伴う異常(短絡不良など)が生じると、端子電圧値VT1(off)が接地電圧GNDまで下がり切らなくなる。そして、上記の異常が進行していくと、ついには端子電圧値VT1(off)が異常検出値Vdet1Lを上回る(図中の太破線を参照)。
【0139】
従って、端子電圧値VT1(off)と異常検出値Vdet1Lとを比較することにより、端子電圧VT1のレベル判定(異常判定)を行うことができる。特に、異常検出値Vdet1Lを閾値電圧Vth1よりも低めに設定しておけば、スイッチSW1のオン/オフを誤判定するよりも先に、端子電圧VT1の異常を把握することができる。
【0140】
なお、マイコン2は、端子電圧VT1の異常(VT1(off)>Vdet1L)を検出した場合、閾値電圧Vth1と異常検出値Vdet1Lを段階的に引き上げる。このような構成であれば、スイッチSW1のオン/オフ誤判定を未然に回避しつつ、その後も端子電圧VT1のレベル判定処理(異常検出処理)を継続することが可能となる。
【0141】
図12は、第2実施形態におけるスイッチSW2の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW2のオン/オフ状態が示されており、本図の下段には端子電圧VT2の挙動が描写されている。
【0142】
スイッチSW2のオン/オフ判定動作については、第1実施形態(
図7)と同様であるので、重複した説明を割愛し、以下では、端子電圧VT2のレベル判定動作について説明する。本実施形態では、第1実施形態(
図7)と異なり、スイッチSW2のオフ時に検出される端子電圧値VT2(off)と所定の異常検出値Vdet2Hを比較して端子電圧VT2のレベル判定が行われる。異常検出値Vdet2Hの初期設定値は、例えば、Vth2<Vdet2H<Vccとしておけばよい。
【0143】
スイッチSW2に異常がなければ、端子電圧値VT2(off)が電源電圧Vcc(またはその近傍値)となるので、端子電圧値VT2(off)が異常検出値Vdet2Hよりも高くなる(図中の太実線を参照)。
【0144】
一方、スイッチSW2にリーク電流値の増大を伴う異常(短絡不良など)が生じると、端子電圧値VT2(off)が電源電圧Vccまで上がり切らなくなる。そして、上記の異常が進行していくと、ついには端子電圧値VT2(off)が異常検出値Vdet2Hを下回る(図中の太破線を参照)。
【0145】
従って、端子電圧値VT2(off)と異常検出値Vdet2Hとを比較することにより、端子電圧VT2のレベル判定(異常判定)を行うことができる。特に、異常検出値Vdet2Hを閾値電圧Vth2よりも高めに設定しておけば、スイッチSW2のオン/オフを誤判定するよりも先に、端子電圧VT2の異常を把握することができる。
【0146】
なお、マイコン2は、端子電圧VT2の異常(VT2(off)<Vdet2H)を検出した場合、閾値電圧Vth2と異常検出値Vdet2Hを段階的に引き下げる。このような構成であれば、スイッチSW2のオン/オフ誤判定を未然に回避しつつ、その後も端子電圧VT2のレベル判定処理(異常検出処理)を継続することが可能となる。
【0147】
図13は、第2実施形態におけるオン/オフ判定動作を示すフローチャートである。本フローチャートは、
図8のフローチャートをベースとしつつ、ステップS7〜S9とステップS18〜S20が除去されてステップS51〜S56が追加されている点に特徴を有する。そこで、先と同様のステップについては、
図8と同一の符号を付すことにより重複した説明を割愛し、以下では、本実施形態の特徴部分について重点的な説明を行う。
【0148】
ステップS5でイエス判定が下された場合、ステップS6において、Vcc側スイッチがオンである旨のオン/オフ判定結果が取得された後、フローがステップS10にスキップされる。一方、ステップS5でノー判定が下された場合、ステップS13において、Vcc側スイッチがオフである旨のオン/オフ判定結果が取得された後、続くステップS51〜S53において、レベル判定部50のレジスタ更新処理が実施される。具体的には、セレクタ51の入力チャンネル切替処理(=端子電圧VTkの選択出力処理)、A/D変換部52による端子電圧VTkのA/D変換処理(=端子電圧値VTk(off)の生成処理)、及び、端子電圧値レジスタ53の更新処理(=端子電圧値VTk(off)の格納処理)が順次実施された後、フローがステップS10に進められる。
【0149】
また、ステップS16でイエス判定が下された場合、ステップS17において、GND側スイッチがオンである旨のオン/オフ判定結果が取得された後、フローがステップS10にスキップされる。一方、ステップS16でノー判定が下された場合、ステップS21において、GND側スイッチがオフである旨のオン/オフ判定結果が取得された後、続くステップS54〜S56において、レベル判定部50のレジスタ更新処理が実施される。なお、ステップS54〜S56の動作内容は、ステップS51〜S53の動作内容と基本的に同一である。
【0150】
このように、本フローでは、先の第1実施形態(
図8)と異なり、Vcc側スイッチまたはGND側スイッチがオフであると判定されたときにのみ、レベル判定部50のレジスタ更新処理が実施される。
【0151】
図14は、第2実施形態におけるレジスタ更新動作の一変形例を示すフローチャートである。本フローチャートは、
図13のフローチャートをベースとしつつ、ステップS57及びS58を追加した点に特徴を有する。そこで、先と同様のステップについては、
図13と同一の符号を付すことにより重複した説明を割愛し、以下では、本変形例の特徴部分について重点的な説明を行う。
【0152】
Vcc側スイッチがオフであることを受けて、フローがステップS52に至り、端子電圧VTkのA/D変換処理が行われた後、ステップS57では、端子電圧値VTk(off)が上昇したか否か(=端子電圧値VTk(off)が異常検出値VdetkLに近付いたか否か)の判定が行われる。
【0153】
なお、上記の判定処理としては、A/D変換部52で新たに生成された新端子電圧値VTk(off)−NEWと、端子電圧値レジスタ53から読み出された旧端子電圧値VTk(off)−OLDとを比較し、前者が後者よりも高いか否かを判定すればよい。
【0154】
ここで、イエス判定が下された場合には、フローがステップS53に進められて、先に説明した端子電圧値レジスタ53の更新処理が実施される。一方、ノー判定が下された場合には、フローがステップS10にスキップされて、端子電圧値レジスタ53の更新処理が実施されないまま、1チャンネル分のオン/オフ判定処理が終了する。
【0155】
また、GND側スイッチがオフであることを受けて、フローがステップS55に至り、端子電圧VTkのA/D変換処理が行われた後、ステップS58では、端子電圧値VTk(off)が低下したか否か(=端子電圧値VTk(off)が異常検出値VdetkHに近付いたか否か)の判定が行われる。
【0156】
なお、上記の判定処理としては、A/D変換部52で新たに生成された新端子電圧値VTk(off)−NEWと、端子電圧値レジスタ53から読み出された旧端子電圧値VTk(off)−OLDとを比較し、前者が後者よりも低いか否かを判定すればよい。
【0157】
ここで、イエス判定が下された場合には、フローがステップS56に進められて、先に説明した端子電圧値レジスタ53の更新処理が実施される。一方、ノー判定が下された場合には、フローがステップS10にスキップされて、端子電圧値レジスタ53の更新処理が実施されないまま、1チャンネル分のオン/オフ判定処理が終了する。
【0158】
このように、端子電圧値レジスタ53の更新動作は、端子電圧値VTk(off)が異常検出値VdetkHまたはVdetkLに近付いたときにのみ実施してもよい。
【0159】
図15は、第2実施形態におけるレベル判定動作を示すフローチャートである。本フローチャートは、
図10のフローチャートをベースとしつつ、ステップS34及びS40がステップS59及びS60に置換されている点に特徴を有する。そこで、先と同様のステップについては、
図10と同一の符号を付すことにより重複した説明を割愛し、以下では本実施形態の特徴部分について重点的な説明を行う。
【0160】
ステップS33でイエス判定が下された場合、ステップS59では、端子電圧値VTk(off)が異常検出値VdetkLよりも低いか否かの判定が行われる。本ステップの判定処理は、例えば、
図11の端子電圧値VT1(off)と異常検出値Vdet1Lとの比較処理に相当する。ここで、イエス判定が下された場合には、フローがステップS35に進められて、端子電圧VTkが正常である旨のレベル判定結果が取得される。一方、ノー判定が下された場合には、フローがステップS38に進められて、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得される。
【0161】
また、ステップS39でイエス判定が下された場合、ステップS60では、端子電圧値VTk(off)が異常検出値VdetkHよりも高いか否かの判定が行われる。本ステップの判定処理は、例えば、
図12の端子電圧値VT2(off)と異常検出値Vdet2Hとの比較処理に相当する。ここで、イエス判定が下された場合には、フローがステップS41に進められて、端子電圧VTkが正常である旨のレベル判定結果が取得される。一方、ノー判定が下された場合には、フローがステップS42に進められて、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得される。
【0162】
<第3実施形態>
図16は、第3実施形態におけるスイッチSW1の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW1のオン/オフ状態が示されており、本図の下段には端子電圧VT1の挙動が描写されている。
【0163】
スイッチSW1のオン/オフ判定動作については、先出の第1実施形態(
図6)及び第2実施形態(
図11)と同様であるので、重複した説明を割愛し、以下では、端子電圧VT1のレベル判定動作について説明する。
【0164】
本実施形態では、第1実施形態(
図6)と第2実施形態(
図11)とを組み合わせて、端子電圧VT1のレベル判定が行われる。すなわち、スイッチSW1がオンしているときには、端子電圧値VT1(on)と異常検出値Vdet1Hを比較して端子電圧VT1のレベル判定が行われ、スイッチSW1がオフしているときには、端子電圧値VT1(off)と異常検出値Vdet1Lを比較して端子電圧VT1のレベル判定が行われる。
【0165】
スイッチSW1に異常がなければ、VT1(on)>Vdet1H、かつ、VT1(off)<Vdet1Lとなる(図中の太実線を参照)。一方、スイッチSW1に異常が生じると、VT1(on)<Vdet1H、または、VT1(off)>Vdet1Lとなる。その原因については、先に説明した通りである。
【0166】
従って、端子電圧値VT1(on)と異常検出値Vdet1H、並びに、端子電圧値VT1(off)と異常検出値Vdet1Lをそれぞれ比較することにより、スイッチSW1のオン/オフに依ることなく、端子電圧VT1のレベル判定(異常判定)を行うことができるようになる。
【0167】
図17は、第3実施形態におけるスイッチSW2の状態判定動作を示す模式図である。なお、本図の上段にはスイッチSW2のオン/オフ状態が示されており、本図の下段には端子電圧VT2の挙動が描写されている。
【0168】
スイッチSW2のオン/オフ判定動作については、第1実施形態(
図7)及び第2実施形態(
図12)と同様であるので、重複した説明を割愛し、以下では、端子電圧VT2のレベル判定動作について説明する。
【0169】
本実施形態では、第1実施形態(
図7)と第2実施形態(
図12)とを組み合わせて、端子電圧VT1のレベル判定が行われる。すなわち、スイッチSW2がオンしているときには、端子電圧値VT2(on)と異常検出値Vdet2Lを比較して端子電圧VT2のレベル判定が行われ、スイッチSW2がオフしているときには、端子電圧値VT2(off)と異常検出値Vdet2Hを比較して端子電圧VT2のレベル判定が行われる。
【0170】
スイッチSW2に異常がなければ、VT2(on)<Vdet2L、かつ、VT2(off)>Vdet2Hとなる(図中の太実線を参照)。一方、スイッチSW2に異常が生じると、VT2(on)>Vdet2L、または、VT2(off)<Vdet2Hとなる。その原因については、先に説明した通りである。
【0171】
従って、端子電圧値VT2(on)と異常検出値Vdet2L、並びに、端子電圧値VT2(off)と異常検出値Vdet2Hをそれぞれ比較することにより、スイッチSW2のオン/オフに依ることなく、端子電圧VT2のレベル判定(異常判定)を行うことができるようになる。
【0172】
図18は、第3実施形態におけるオン/オフ判定動作を示すフローチャートである。本フローチャートは、
図8のフローチャートと
図13のフローチャートを組み合わせたものであり、スイッチオン時のレジスタ更新処理(ステップS7〜S9及びS18〜S20)とスイッチオフ時のレジスタ更新処理(ステップS51〜S56)を併せ持つ点に特徴を有する。なお、各ステップの動作は、先述の通りであるため、重複した説明を割愛する。
【0173】
図19は、第3実施形態におけるレジスタ更新動作の一変形例を示すフローチャートである。本フローチャートは、
図9のフローチャートと
図14のフローチャートとを組み合わせたものであり、
図18のフローチャートに対して、端子電圧値VTk(on)の新旧比較処理(ステップS22及びS23)と端子電圧VTk(off)の新旧比較処理(ステップS57及びS58)が追加されている点に特徴を有する。なお、各ステップの動作は、先述の通りであるため、重複した説明は割愛する。
【0174】
図20は、第3実施形態におけるレベル判定動作を示すフローチャートである。本フローチャートは、
図10のフローチャートと
図15のフローチャートを組み合わせたものであり、スイッチオン時のレベル判定処理(ステップS34及びS40)とスイッチオフ時のレベル判定処理(ステップS59〜S60)を併せ持つ点に特徴を有する。
【0175】
例えば、外部端子TkにVcc側スイッチが外付けされている場合には、ステップS34及びS59の双方でイエス判定が下されたときに、フローがステップS35に進められて、端子電圧VTkが正常である旨のレベル判定結果が取得される。一方、ステップS34及びS59の一方でノー判定が下されたときには、フローがステップS38に進められて、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得される。
【0176】
また、外部端子TkにGND側スイッチが外付けされている場合には、ステップS40及びS60の双方でイエス判定が下されたときにフローがステップS41に進められて、端子電圧VTkが正常である旨のレベル判定結果が取得される。一方、ステップS40及びS60の一方でノー判定が下されたときには、フローがステップS42に進められて、端子電圧VTkが正常でない旨(=異常である旨)のレベル判定結果が取得される。
【0177】
なお、端子電圧値VTk(off)が未取得である場合には、ステップS59及びS60において無条件でイエス判定を下すようにしておけばよい。この場合、本フローチャートは、
図10のフローチャートと等価になる。また、端子電圧値VTk(on)が未取得である場合には、ステップS34及びS40において無条件でイエス判定を下すようにしておけばよい。この場合、本フローチャートは、
図15のフローチャートと等価になる。
【0178】
<レジスタ再設定手法>
図21は、閾値電圧設定値レジスタ42と異常検出値レジスタ54の再設定手法を示す模式図である。これまでの説明では、端子電圧VTkが正常範囲内でないと判定されたときに閾値電圧Vthk、並びに、異常検出値VdetkH及びVdetkLを段階的に切り替える旨の説明を行った。
【0179】
ただし、閾値電圧設定値レジスタ42と異常検出値レジスタ54の再設定手法は、これに限定されるものではなく、端子電圧値VTk(on)及びVTk(off)双方に応じて、閾値電圧Vthk、並びに、異常検出値VdetkH及びVdetkLを算出することも可能である。
【0180】
例えば、閾値電圧Vthkは、端子電圧値VTk(on)及びVTk(off)の平均値(=(1/2)×(VTk(on)+VTk(off)))として算出すればよい。
【0181】
また、異常検出値VdetkHは、閾値電圧Vthkよりも高い値(例えば、VdetkH=(5/6)×(VTk(on)+VTk(off))として算出すればよい。
【0182】
また、異常検出値VdetkLは、閾値電圧Vthkよりも低い値(例えば、VdetkL=(1/6)×(VTk(on)+VTk(off))として算出すればよい。
【0183】
このような演算を行うことにより、端子電圧値VTk(on)及びVTk(off)がどのように変動しても、スイッチSWkのオン/オフ判定と端子電圧VTkのレベル判定(異常判定)を正しく実施することが可能となる。
【0184】
なお、本図では、外部端子TkにVcc側スイッチが外付けされている場合を例示したが、外部端子TkにGND側スイッチが外付けされている場合にも、上記と同様の演算により、適切な閾値電圧Vthk、並びに、異常検出値VdetkH及びVdetkLを算出することが可能である。
【0185】
<車両への適用>
図22は、車両Xの一構成例を示す外観図である。本構成例の車両Xは、不図示のバッテリから電源電圧Vccの供給を受けて動作する種々の電子機器X11〜X18を搭載している。なお、本図における電子機器X11〜X18の搭載位置については、図示の便宜上、実際とは異なる場合がある。
【0186】
電子機器X11は、エンジンに関連する制御(インジェクション制御、電子スロットル制御、アイドリング制御、酸素センサヒータ制御、及び、オートクルーズ制御など)を行うエンジンコントロールユニットである。
【0187】
電子機器X12は、HID[high intensity discharged lamp]やDRL[daytime running lamp]などの点消灯制御を行うランプコントロールユニットである。
【0188】
電子機器X13は、トランスミッションに関連する制御を行うトランスミッションコントロールユニットである。
【0189】
電子機器X14は、車両Xの運動に関連する制御(ABS[anti-lock brake system]制御、EPS[electric power steering]制御、電子サスペンション制御など)を行う制動ユニットである。
【0190】
電子機器X15は、ドアロックや防犯アラームなどの駆動制御を行うセキュリティコントロールユニットである。
【0191】
電子機器X16は、ワイパー、電動ドアミラー、パワーウィンドウ、ダンパー(ショックアブソーバー)、電動サンルーフ、及び、電動シートなど、標準装備品やメーカーオプション品として、工場出荷段階で車両Xに組み込まれている電子機器である。
【0192】
電子機器X17は、車載A/V[audio/visual]機器、カーナビゲーションシステム、及び、ETC[electronic toll collection system]など、ユーザオプション品として任意で車両Xに装着される電子機器である。
【0193】
電子機器X18は、車載ブロア、オイルポンプ、ウォーターポンプ、バッテリ冷却ファンなど、高耐圧系モータを備えた電子機器である。
【0194】
なお、先に説明したスイッチ状態判定装置1は、電子機器X11〜X18のいずれにも組み込むことが可能である。すなわち、電子機器X11〜X18は、それぞれ、先に説明した電子機器100の一具体例であると言うことができる。
【0195】
<その他の変形例>
なお、本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。