(57)【要約】【課題】システムが運用中に、信号線の信号が所定のレベルに張り付くような故障を検知する。【解決手段】ＲＡＩＤシステム９は、信号線４１を用いて相互に通信するＳＶＣ２およびＳＶＣ３を有する。そして、ＳＶＣ３は、ＳＶＣ２から信号線４１を用いて出力される信号の信号レベルを保持する状態レジスタ３１１を有する。ＳＶＣ２は、信号線４１に所定のレベルの信号を入力し、状態レジスタ３１１によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号のレベルが特定のレベルから変化しない異常であることを検出する故障検出部２３１を有する。【選択図】図１
2014010714.tif 000002
【特許請求の範囲】
【請求項１】
信号線を用いて相互に通信する第１の装置および第２の装置を有するシステムにおいて、
前記第１の装置は、
前記第２の装置から前記信号線を用いて出力される信号の信号レベルを保持する保持部を有し、
前記第２の装置は、
前記信号線に所定のレベルの信号を入力し、前記保持部によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号レベルが特定のレベルから変化しない異常であることを検出する検出部を有する
ことを特徴とするシステム。
【請求項２】
前記第１の装置は、
前記信号線を流れる信号について、前記保持部に向けての出力をオン／オフするスイッチをさらに有し、
前記第２の装置は、
前記信号線に入力された信号の信号レベルをループバックさせて保持するループバック保持部と、
前記検出部によって信号の信号レベルからレベルが変化しない異常であることが検出された場合、前記スイッチをオフしたうえで、前記保持部に保持された信号レベルまたは前記ループバック保持部に保持された信号レベルを用いて、前記第１の装置および前記第２の装置のいずれが異常であるのかを特定する異常特定部とをさらに有する
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記異常特定部は、前記検出部によって信号のハイレベルからレベルが変化しない異常が検出された場合、前記スイッチをオフしたうえで、前記保持部によって保持された信号の信号レベルがハイレベルである場合、前記第１の装置が異常であることを特定し、前記保持部によって保持された信号の信号レベルがローレベルである場合、前記第２の装置が異常であることを特定する
ことを特徴とする請求項２に記載のシステム。
【請求項４】
前記異常特定部は、前記検出部によって信号のローレベルからレベルが変化しない異常が検出された場合、前記信号線にハイレベルの信号を入力し、前記スイッチをオフしたうえで、前記ループバック保持部によって保持された信号の信号レベルが入力した信号レベルと一致しない場合、前記第１の装置が異常であることを特定し、前記ループバック保持部によって保持された信号の信号レベルが入力した信号レベルと一致する場合、前記第２の装置が異常であることを特定する
ことを特徴とする請求項２に記載のシステム。
【請求項５】
信号線を用いて相互に通信する第１の装置および第２の装置を有するシステムの異常箇所特定方法において、
前記第２の装置が、前記信号線に所定のレベルの信号を入力し、
前記第１の装置が、該入力した信号を前記第２の装置から前記信号線を用いて出力される信号の信号レベルを保持し、
前記第２の装置が、該保持する処理によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号のレベルが特定のレベルから変化しない異常を検出する
各処理を実行することを特徴とする異常箇所特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムおよび異常箇所特定方法に関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）システムには、ＲＡＩＤ装置の状態を監視し、状態に応じて制御を行うサービスコントローラ（ＳＶＣ：Service  Controller）と呼ばれる装置が搭載されている。
【０００３】
かかるＳＶＣは、ＳＶＣを制御するＭＰＵ（Micro-Processing  Unit）とＳＶＣの制御を補助するＦＰＧＡ（Field  Programmable  Gate  Array）とを備える。このＳＶＣは、冗長化されており、一方の系のＳＶＣのＦＰＧＡが他方の系のＳＶＣの異常を検知すると、異常が検知されたＳＶＣに対して初期化を促す信号（以降、初期化信号という）を送信する。このとき、異常を検知したＳＶＣのＦＰＧＡは、予め定められた１つの信号線を用いて、初期化信号としてハイレベルの信号を送信し、もう１つの信号線を用いて、初期化信号としてローレベルの信号を送信する。異常が検知されたＳＶＣでは、初期化信号を受け付けたＦＰＧＡが、自ＳＶＣを初期化するとともに、初期化信号を受け付けたことをＭＰＵへ割り込みにより通知する。すると、割り込みを受けたＭＰＵは割り込み処理を行い、初期化がされるまでＲＡＩＤ装置の制御を行わない。なお、一方の系のＳＶＣが、他系のＳＶＣの異常を検知しない場合、初期化信号の伝送に用いられる１つの信号線を用いて、正常な状態として、ローレベルの信号を送信し、もう１つの信号線を用いて、正常な状態として、ハイレベルの信号を送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−５７４３号公報
【特許文献２】特開平１１−１４３７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＲＡＩＤ装置が運用中に、信号線の信号が所定のレベルに張り付くような故障が発生した場合、ＳＶＣは、当該故障を検知することができないという問題がある。例えば、ＳＶＣは、他系のＳＶＣの異常を検知したとき、初期化信号としてハイレベルの信号を送信しても、他系のＳＶＣは、ローレベルの信号を受け取ることがある。ところが、他系のＳＶＣは、受け取った信号をローレベルから変化しない状態となっている信号（以下、ローレベルに張り付いた信号と述べる）と判断できないので、ローレベルに張り付くような故障を検知できない。同様に、ＳＶＣは、他系のＳＶＣの異常を検知したとき、初期化信号としてローレベルの信号を送信しても、他系のＳＶＣは、ハイレベルの信号を受け取ることがある。ところが、他系のＳＶＣは、受け取った信号をハイベルから変化しない状態となっている信号（以下、ハイレベルに張り付いた信号と述べる）と判断できないので、ハイレベルに張り付くような故障を検知できない。これによって、他系のＳＶＣは、異常であっても、初期化信号に基づいて初期化することができないので、ＲＡＩＤ装置の運用に悪影響を与えてしまう可能性がある。
【０００６】
なお、上記課題は、ＲＡＩＤシステムに限らず、冗長化された装置同士が信号を用いて通信されるシステムであれば、同様に生じる課題である。
【０００７】
１つの側面では、本発明は、システムが運用中に、信号線の信号が所定のレベルから変化しないような異常を検知することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するシステムは、１つの態様において、信号線を用いて相互に通信する第１の装置および第２の装置を有するシステムにおいて、前記第１の装置は、前記第２の装置から前記信号線を用いて出力される信号の信号レベルを保持する保持部を有し、前記第２の装置は、前記信号線に所定のレベルの信号を入力し、前記保持部によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号のレベルが特定のレベルから変化しない異常であることを検出する検出部を有する。
【発明の効果】
【０００９】
本願の開示するシステムの１つの態様によれば、システムが運用中に、信号線の信号が所定のレベルから変化しないような異常を検知できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るＲＡＩＤシステムのハードウェア構成を示す図である。
【図２】図２は、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出のシーケンスを示す図（１）である。
【図３】図３は、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出のシーケンスを示す図（２）である。
【図４】図４は、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出のシーケンスを示す図（１）である。
【図５】図５は、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出のシーケンスを示す図（２）である。
【図６】図６は、実施例２に係るＲＡＩＤシステムのハードウェア構成を示す図である。
【図７】図７は、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＨＩＧＨに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。
【図８】図８は、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＨＩＧＨに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。
【図９】図９は、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＬＯＷに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。
【図１０】図１０は、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＬＯＷに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するシステムおよび異常箇所特定方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。以下では、ＲＡＩＤシステムに本発明を適用した場合について説明する。
【実施例１】
【００１２】
［ＲＡＩＤシステムの構成］
図１は、実施例１に係るＲＡＩＤシステムのハードウェア構成を示す図である。図１に示すように、ＲＡＩＤシステム９は、ＲＡＩＤ装置１と、複数のＳＶＣ２、３と、コネクタ４とを有する。ＲＡＩＤ装置１は、ハードディスク（ＨＤＤ：Hard  Disk  Drive）を管理する。ＳＶＣ２、３は、冗長化され、ここでは０系のＳＶＣ２と１系のＳＶＣ３とがコネクタ４を介して接続される。
【００１３】
ＳＶＣ２、３は、ＲＡＩＤ装置１の状態を監視し、状態に応じて制御を行う。例えば、ＳＶＣ２、３は、ＲＡＩＤ装置１の電源制御や温度制御を行う。また、ＳＶＣ２、３は、それぞれ他系のＳＶＣ３、２の状態を監視し、状態に応じて制御を行う。
【００１４】
ＳＶＣ２は、ＦＰＧＡ２１と、バススイッチ２２と、ＭＰＵ２３とを有する。ＦＰＧＡ２１は、ＳＶＣ２の制御を補助する集積回路である。バススイッチ２２は、バスライン（信号線）を流れる信号について、ＦＰＧＡ２１に向けての出力をオン／オフする。すなわち、バススイッチ２２は、ＦＰＧＡ２１側の信号線に信号が流れる状態（接続状態）と、信号線に信号が流れない状態（切断状態）とを切り替える。ＭＰＵ２３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、ＭＰＵ２３は、ＳＶＣファームウェア２３ａによって種々の処理を実行する。
【００１５】
ＦＰＧＡ２１は、他系のＳＶＣ３とＦＰＧＡ間通信を行う。このＦＰＧＡ間通信を用いて、ＳＶＣファームウェア２３ａは、ＳＶＣ３と相互に通信を行う。例えば、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信によってＳＶＣ３の異常を検知すると、ＦＰＧＡ２１に、ＳＶＣ３への初期化を促す信号（以降、「初期化信号」という）を出力させる。
【００１６】
ＦＰＧＡ２１は、他系のＳＶＣ３が異常である場合、ＳＶＣ３に初期化信号を出力する。この初期化信号は、ＳＶＣ２、３のＦＰＧＡ間を接続する２つの信号線４１、４２を用いて出力される。信号線４１には、初期化信号として電圧がハイレベルとなる信号が出力される。ハイレベルとは、例えば‘１’を示す。かかる信号線４１を用いて出力される信号は、以降、「ＯＴ＿ＫＩＬＬ＿Ｐ信号」というものとする。また、信号線４２には、初期化信号として電圧がローレベルとなる信号が出力される。ローレベルとは、例えば‘０’を示す。かかる信号線４２を用いて出力される信号は、以降、「ＯＴ＿ＫＩＬＬ＿Ｎ信号」というものとする。なお、他系のＳＶＣ３が正常である場合には、信号線４１には、電圧がローレベルとなるＯＴ＿ＫＩＬＬ＿Ｐ信号が出力されるとともに、信号線４２には、電圧がハイレベルとなるＯＴ＿ＫＩＬＬ＿Ｎ信号が出力される。
【００１７】
信号線４１には、制御レジスタ２１１とバッファ２１２とが実装されている。制御レジスタ２１１は、ＳＶＣファームウェア２３ａによってＯＴ＿ＫＩＬＬ＿Ｐ信号が制御される際に用いられる。バッファ２１２は、必要な電流量が流れるように信号線４１の伝送路全体の電圧を持ち上げる際に用いられる。
【００１８】
信号線４２には、制御レジスタ２１３とバッファ２１４とが実装されている。制御レジスタ２１３は、ＳＶＣファームウェア２３ａによってＯＴ＿ＫＩＬＬ＿Ｎ信号が制御される際に用いられる。バッファ２１４は、必要な電流量が流れるように信号線４２の伝送路全体の電圧を持ち上げる際に用いられる。
【００１９】
また、ＦＰＧＡ２１は、自系が異常である場合、他系のＳＶＣ３から、自系を初期化するように促される初期化信号を入力する。この初期化信号は、ＳＶＣ２、３のＦＰＧＡ間を接続する２つの信号線４３、４４を用いて入力される。信号線４３を用いて入力される信号は、以降、「ＯＷＮ＿ＫＩＬＬ＿Ｐ信号」というものとする。信号線４４を用いて入力される信号は、以降、「ＯＷＮ＿ＫＩＬＬ＿Ｎ信号」というものとする。すなわち、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号は、初期化信号として、電圧がハイレベルとなる信号であり、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号は、初期化信号として、電圧がローレベルとなる信号である。
【００２０】
また、ＦＰＧＡ２１は、バススイッチ２２と通信する。この通信を用いて、ＳＶＣファームウェア２３ａは、バススイッチ２２を制御する。例えば、ＳＶＣファームウェア２３ａは、バススイッチ２２を接続状態にする場合、ＦＰＧＡ２１に、電圧がハイレベルとなる信号を入力させる。また、ＳＶＣファームウェア２３ａは、バススイッチ２２を切断状態にする場合、ＦＰＧＡ２１に、電圧がローレベルとなる信号を入力させる。かかる通信を用いて入力させる信号は、以降、「ＢＵＳ＿ＯＥ信号」というものとする。なお、信号線４３、４４は、それぞれＦＦＰＧＡ２１とバススイッチ２２との間でグランドと接続する。
【００２１】
ＳＶＣ３は、ＦＰＧＡ３１と、バススイッチ３２と、ＭＰＵ３３とを有する。ＦＰＧＡ３１は、ＳＶＣ３の制御を補助する集積回路である。バススイッチ３２は、バスライン（信号線）を流れる信号について、ＦＰＧＡ３１に向けての出力をオン／オフする。すなわち、バススイッチ３２は、ＦＰＧＡ３１側の信号線に信号が流れる状態（接続状態）と、信号線に信号が流れない状態（切断状態）とを切り替える。ＭＰＵ３３は、ＳＶＣ３を制御するチップである。ＭＰＵ３３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、ＭＰＵ３３は、ＳＶＣファームウェア３３ａによって種々の処理を実行する。
【００２２】
ＦＰＧＡ３１は、他系のＳＶＣ２とＦＰＧＡ間通信を行う。このＦＰＧＡ間通信を用いて、ＳＶＣファームウェア３３ａは、ＳＶＣ２と相互に通信を行う。
【００２３】
ＦＰＧＡ３１は、自系が異常である場合、他系のＳＶＣ２から出力される、自系を初期化するように促される初期化信号を入力する。この初期化信号は、ＳＶＣ２、３のＦＰＧＡ間を接続する２つの信号線４１、４２を用いて入力される。信号線４１を用いて入力する信号は、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号である。信号線４２を用いて入力する信号は、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号である。すなわち、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号は、初期化信号として、電圧がハイレベルとなる信号であり、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号は、初期化信号として、電圧がローレベルとなる信号である。
【００２４】
信号線４１には、状態レジスタ３１１が実装されている。状態レジスタ３１１は、信号線４１の信号レベルが保持される。すなわち、状態レジスタ３１１は、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の信号レベルが保持される。この状態レジスタ３１１を用いて、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号を参照する。信号線４２には、状態レジスタ３１２が実装されている。状態レジスタ３１２は、信号線４２の信号レベルが保持される。すなわち、状態レジスタ３１２は、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の信号レベルが保持される。この状態レジスタ３１２を用いて、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号を参照する。
【００２５】
また、ＦＰＧＡ３１は、バススイッチ３２と通信する。この通信を用いて、ＳＶＣファームウェア３３ａは、バススイッチ３２を制御する。例えば、ＳＶＣファームウェア３３ａは、バススイッチ３２を接続状態にする場合、ＦＰＧＡ３１に、電圧がハイレベルとなるＢＵＳ＿ＯＥ信号を入力させる。また、ＳＶＣファームウェア３３ａは、バススイッチ３２を切断状態にする場合、ＦＰＧＡ３１に、電圧がローレベルとなるＢＵＳ＿ＯＥ信号を入力させる。なお、信号線４１、４２は、それぞれバススイッチ３２とＦＰＧＡ３１との間でグランドと接続する。
【００２６】
ＭＰＵ２３は、故障検出部２３１を有する。故障検出部２３１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号およびＯＴ＿ＫＩＬＬ＿Ｎ信号について、特定の信号レベルに張り付く回路故障を検出する。なお、故障検出部２３１は、システムの運用中に、定期的または不定期的に故障検出を試みる。
【００２７】
例えば、故障検出部２３１は、制御レジスタ２１１を用いて、信号線４１に電圧がハイレベルの信号を入力する。すなわち、故障検出部２３１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号をハイレベルに制御する。そして、故障検出部２３１は、ＳＶＣ３側のＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致するか否かを判定する。そして、故障検出部２３１は、状態レジスタ３１１に保持された信号の信号レベルがローレベルであり、入力した信号レベル（ハイレベル）と一致しない場合、信号がローレベルに張り付く回路故障であることを検出する。すなわち、故障検出部２３１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号のローレベルに張り付く回路故障を検出する。
【００２８】
一方、故障検出部２３１は、状態レジスタ３１１に保持された信号の信号レベルがハイレベルであり、入力した信号レベル（ハイレベル）と一致する場合、さらに、制御レジスタ２１１を用いて、信号線４１に電圧がローレベルの信号を入力する。すなわち、故障検出部２３１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号をローレベルに制御する。そして、故障検出部２３１は、ＳＶＣ３側のＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１に保持された信号の信号レベルが、入力した信号レベルであるローレベルと一致するか否かを判定する。そして、故障検出部２３１は、状態レジスタ３１１に保持された信号の信号レベルがハイレベルであり、入力した信号レベル（ローレベル）と一致しない場合、信号がハイレベルに張り付く回路故障であることを検出する。すなわち、故障検出部２３１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号のハイレベルに張り付く回路故障を検出する。一方、故障検出部２３１は、状態レジスタ３１１に保持された信号の信号レベルがローレベルであり、入力した信号レベル（ローレベル）と一致する場合、ＯＴ＿ＫＩＬＬ＿Ｐ信号およびＯＷＮ＿ＫＩＬＬ＿Ｐ信号は正常であることを検出する。
【００２９】
なお、故障検出部２３１によるＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障の検出について説明したが、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障の検出についても同様の流れとなるので、その説明を省略する。
【００３０】
［ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出のシーケンス］
次に、実施例１に係るＲＡＩＤシステム９において、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出のシーケンスを、図２および図３を参照して説明する。図２および図３は、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出のシーケンスを示す図である。なお、図２および図３では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、電圧がハイレベルであることを「ＨＩＧＨ」、電圧がローレベルであることを「ＬＯＷ」と略記して記載するものとする。
【００３１】
まず、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障検出部２３１）は、故障検出要求を受け付けたか否かを判定する（ステップＳ１１）。故障検出要求を受け付けてないと判定した場合（ステップＳ１１；Ｎｏ）、ＳＶＣファームウェア２３ａは、当該要求を受け付けるまで判定処理を繰り返す。
【００３２】
一方、故障検出要求を受け付けたと判定した場合（ステップＳ１１；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＯＴ＿ＫＩＬＬ＿Ｐ信号をＨＩＧＨ（例えば‘１’）に制御することを通知する（ステップＳ１２）。このとき、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１へ通知する。
【００３３】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０からの通知を受けて応答を返す（ステップＳ１３）。ここでは、ＳＶＣファームウェア３３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号をＨＩＧＨに制御する旨の通知に対して肯定する応答を返す。
【００３４】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号をＨＩＧＨに制御する（ステップＳ１４）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１１を用いて、信号線４１にＨＩＧＨを入力する。そして、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１へ制御結果を要求する（ステップＳ１５）。
【００３５】
すると、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルを応答する（ステップＳ１６）。
【００３６】
そして、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’であるか否かを判定する（ステップＳ１７）。ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’であると判定した場合（ステップＳ１７；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号のＬＯＷに張り付く回路故障であることを検出する（ステップＳ１８）。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１１に保持された信号レベルがＬＯＷであり、ＯＴ＿ＫＩＬＬ＿Ｐ信号に入力したＨＩＧＨと一致しないので、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＬＯＷに張り付く回路故障であることを検出する。
【００３７】
一方、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’でないと判定した場合（ステップＳ１７；Ｎｏ）、ＳＶＣファームウェア２３ａは、ステップＳ２１に移行する。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１１に保持された信号レベルがＨＩＧＨであり、ＯＴ＿ＫＩＬＬ＿Ｐ信号に入力したＨＩＧＨと一致するので、次に移行する。
【００３８】
ステップＳ２１では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＯＴ＿ＫＩＬＬ＿Ｐ信号をＬＯＷ（例えば‘０’）に制御することを通知する（ステップＳ２１）。このとき、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１に対して通知する。
【００３９】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０からの通知を受けて応答を返す（ステップＳ２２）。ここでは、ＳＶＣファームウェア３３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号をＬＯＷに制御する旨の通知に対して肯定する応答を返す。
【００４０】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号をＬＯＷに制御する（ステップＳ２３）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１１を用いて、信号線４１にＬＯＷを入力する。そして、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１へ制御結果を要求する（ステップＳ２４）。
【００４１】
すると、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルを応答する（ステップＳ２５）。
【００４２】
そして、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘１’であるか否かを判定する（ステップＳ２６）。ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘１’であると判定した場合（ステップＳ２６；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号のＨＩＧＨに張り付く回路故障であることを検出する（ステップＳ２７）。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１１に保持された信号レベルがＨＩＧＨであり、ＯＴ＿ＫＩＬＬ＿Ｐ信号に入力したＬＯＷと一致しないので、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＨＩＧＨに張り付く回路故障であることを検出する。そして、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出処理を終了する。
【００４３】
一方、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘１’でないと判定した場合（ステップＳ２６；Ｎｏ）、ＳＶＣファームウェア２３ａは、ＰＷＮ＿ＫＩＬＬ＿Ｐ信号は正常であることを検出する（ステップＳ２８）。そして、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号の回路故障検出処理を終了する。
【００４４】
［ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出のシーケンス］
次に、実施例１に係るＲＡＩＤシステム９において、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出のシーケンスを、図４および図５を参照して説明する。図４および図５は、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出のシーケンスを示す図である。なお、図４および図５では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、電圧がハイレベルであることを「ＨＩＧＨ」、電圧がローレベルであることを「ＬＯＷ」と略記して記載するものとする。
【００４５】
まず、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障検出部２３１）は、故障検出要求を受け付けたか否かを判定する（ステップＳ３１）。故障検出要求を受け付けてないと判定した場合（ステップＳ３１；Ｎｏ）、ＳＶＣファームウェア２３ａは、当該要求を受け付けるまで判定処理を繰り返す。
【００４６】
一方、故障検出要求を受け付けたと判定した場合（ステップＳ３１；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＯＴ＿ＫＩＬＬ＿Ｎ信号をＨＩＧＨ（例えば‘１’）に制御することを通知する（ステップＳ３２）。このとき、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１に対して通知する。
【００４７】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０からの通知を受けて応答を返す（ステップＳ３３）。ここでは、ＳＶＣファームウェア３３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号をＨＩＧＨに制御する旨の通知に対して肯定する応答を返す。
【００４８】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号をＨＩＧＨに制御する（ステップＳ３４）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１３を用いて、信号線４２にＨＩＧＨを入力する。そして、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１へ制御結果を要求する（ステップＳ３５）。
【００４９】
すると、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルを応答する（ステップＳ３６）。
【００５０】
そして、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘０’であるか否かを判定する（ステップＳ３７）。ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘０’であると判定した場合（ステップＳ３７；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号のＬＯＷに張り付く回路故障であることを検出する（ステップＳ３８）。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１２に保持された信号レベルがＬＯＷであり、ＯＴ＿ＫＩＬＬ＿Ｎ信号に入力したＨＩＧＨと一致しないので、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＬＯＷに張り付く回路故障であることを検出する。
【００５１】
一方、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１１の信号レベルが‘０’でないと判定した場合（ステップＳ３７；Ｎｏ）、ＳＶＣファームウェア２３ａは、ステップＳ４１に移行する。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１２に保持された信号レベルがＨＩＧＨであり、ＯＴ＿ＫＩＬＬ＿Ｎ信号に入力したＨＩＧＨと一致するので、次に移行する。
【００５２】
ステップＳ４１では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＯＴ＿ＫＩＬＬ＿Ｎ信号をＬＯＷ（例えば‘０’）に制御することを通知する（ステップＳ４１）。このとき、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１に対して通知する。
【００５３】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０からの通知を受けて応答を返す（ステップＳ４２）。ここでは、ＳＶＣファームウェア３３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号をＬＯＷに制御する旨の通知に対して肯定する応答を返す。
【００５４】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号をＬＯＷに制御する（ステップＳ４３）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１３を用いて、信号線４２にＬＯＷを入力する。そして、ＳＶＣファームウェア２３ａは、ＦＰＧＡ間通信を用いて、ＳＶＣ＃１へ制御結果を要求する（ステップＳ４４）。
【００５５】
すると、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａは、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルを応答する（ステップＳ４５）。
【００５６】
そして、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘１’であるか否かを判定する（ステップＳ４６）。ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘１’であると判定した場合（ステップＳ４６；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号のＨＩＧＨに張り付く回路故障であることを検出する（ステップＳ４７）。つまり、ＳＶＣファームウェア２３ａは、状態レジスタ３１２に保持された信号レベルがＨＩＧＨであり、ＯＴ＿ＫＩＬＬ＿Ｎ信号に入力したＬＯＷと一致しないので、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＨＩＧＨに張り付く回路故障であることを検出する。そして、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出処理を終了する。
【００５７】
一方、ＳＶＣ＃１におけるＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘１’でないと判定した場合（ステップＳ４６；Ｎｏ）、ＳＶＣファームウェア２３ａは、ＰＷＮ＿ＫＩＬＬ＿Ｎ信号は正常であることを検出する（ステップＳ４８）。そして、ＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号の回路故障検出処理を終了する。
【００５８】
［実施例１の効果］
上記実施例１によれば、ＳＶＣ３では、状態レジスタ３１１が、ＳＶＣ２から信号線４１を用いて出力される信号の信号レベルを保持する。そして、ＳＶＣ２では、故障検出部２３１が、信号線４１に所定のレベルの信号を入力し、状態レジスタ３１１によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号の特定のレベルに張り付く回路故障であることを検出する。かかる構成によれば、故障検出部２３１は、入力した信号レベルとの比較に、同じ信号線４１を用いて出力される信号の信号レベルを利用することにより入力した信号レベルとの不一致を検出する。このため、故障検出部２３１は、信号線４１に入力した信号レベルと異なるレベルに張り付くような信号の回路故障を容易に検出できる。
【００５９】
また、上記実施例１によれば、故障検出部２３１は、システムの運用中に、定期的または不定期的に、信号の特定のレベルに張り付く回路故障の検出を実行する。かかる構成によれば、故障検出部２３１は、システムが運用中であっても、定期的または不定期的に、信号の特定のレベルに張り付く回路故障の検出を実行するようにしたので、当該回路故障を検出しなければ、当該信号のレベルを信頼することができる。この結果、ＳＶＣ２がＳＶＣ３の異常を検知した場合、ＳＶＣ３側では、ＳＶＣ２から出力される初期化信号を信頼できるので、確実に初期化することができる。
【実施例２】
【００６０】
ところで、実施例１に係るＲＡＩＤシステム９では、ＳＶＣ２のＳＶＣファームウェア２３ａが、ＯＴ＿ＫＩＬＬ＿Ｐ信号またはＯＴ＿ＫＩＬＬ＿Ｎ信号の特定のレベルに張り付く回路故障を検出する場合を説明した。しかしながら、ＲＡＩＤシステム９は、これに限定されず、検出した後に、検出した回路故障の故障箇所を特定するようにしても良い。そこで、実施例２では、ＲＡＩＤシステム９が、ＯＴ＿ＫＩＬＬ＿Ｐ信号またはＯＴ＿ＫＩＬＬ＿Ｎ信号の特定のレベルに張り付く回路故障の故障箇所を特定する場合について説明する。
【００６１】
［実施例２に係るＲＡＩＤシステムの構成］
図６は、実施例２に係るＲＡＩＤシステムのハードウェア構成を示す図である。なお、図１に示すＲＡＩＤシステム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、ＦＰＧＡ２１の信号線４１にループバック状態レジスタ５１１とバッファ５１２を追加し、ＦＰＧＡ２１の信号線４２にループバック状態レジスタ５１３とバッファ５１４を追加した点にある。また、実施例１と実施例２とが異なるところは、ＳＶＣ３のＦＰＧＡ３１に制御レジスタ５１５を追加した点にある。また、実施例１と実施例２とが異なるところは、ＭＰＵ２３に故障箇所特定部５１６を追加し、ＭＰＵ３３に故障箇所特定部５１７を追加した点にある。
【００６２】
ループバック状態レジスタ５１１は、信号線４１に入力された信号をループバックさせて保持する。かかる信号線４１に入力される信号をループバックさせて出力される信号は、以降、「Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｐ信号」というものとする。すなわち、ループバック状態レジスタ５１１は、ＯＴ＿ＫＩＬＬ＿Ｐ信号に関し、ＳＶＣファームウェア２３ａによって制御された信号レベルを保持する。なお、ループバックは、信号線４１がＦＰＧＡ２１から出る直前で行われる。
【００６３】
バッファ５１２は、必要な電流量が流れるように信号線４１の伝送路全体の電圧を持ち上げる際に用いられる。
【００６４】
ループバック状態レジスタ５１３は、信号線４２に入力された信号をループバックさせて保持する。かかる信号線４２に入力される信号をループバックさせて出力される信号は、以降、「Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｎ信号」というものとする。すなわち、ループバック状態レジスタ５１３は、ＯＴ＿ＫＩＬＬ＿Ｎ信号に関し、ＳＶＣファームウェア２３ａによって制御された信号レベルを保持する。なお、ループバックは、信号線４２がＦＰＧＡ２１から出る直前で行われる。
【００６５】
バッファ５１４は、必要な電流量が流れるように信号線４２の伝送路全体の電圧を持ち上げる際に用いられる。
【００６６】
制御レジスタ５１５は、ＳＶＣファームウェア３３ａによってＢＵＳ＿ＯＥ信号が制御される際に用いられるレジスタである。
【００６７】
故障箇所特定部５１６および故障箇所特定部５１７は、ＯＴ＿ＫＩＬＬ＿Ｐ信号のハイレベルに張り付く回路故障が検出された場合、被疑箇所を特定する。
【００６８】
例えば、故障箇所特定部５１６は、故障箇所特定部５１７に、ＳＶＣ３側のバススイッチ３２が切断状態になるように指示する。そして、故障箇所特定部５１７は、制御レジスタ５１５を用いて、ＢＵＳ＿ＯＥ信号を切断状態に制御し、バススイッチ３２を切断状態にする。そして、故障箇所特定部５１７は、状態レジスタ３１１を参照して、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の信号レベルがローレベルであるか否かを判定する。そして、故障箇所特定部５１７は、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の信号レベルがローレベルであると判定した場合、ＳＶＣ２側の回路故障であると判断する。つまり、ＯＴ＿ＫＩＬＬ＿Ｐ信号がハイレベルに張り付いている場合に、ＳＶＣ３側のバススイッチ３２が切断状態であってＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１がローレベルと判定されたので、ＳＶＣ３側は正常であり、ＳＶＣ２側が回路故障であると判断される。ＳＶＣ２側の回路故障には、一例として、ＯＴ＿ＫＩＬＬ＿Ｐ信号の出力ピンが故障している場合がある。一方、故障箇所特定部５１７は、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の信号レベルがハイレベルであると判定した場合、ＳＶＣ３側の回路故障であると判断する。つまり、ＯＴ＿ＫＩＬＬ＿Ｐ信号がハイレベルに張り付いている場合、ＳＶＣ３側のバススイッチ３２が切断状態であるにも関わらず、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１がハイレベルと判定されたので、ＳＶＣ３側が回路故障であると判断される。ＳＶＣ３側の回路故障には、一例として、バススイッチ３２が故障している場合がある。
【００６９】
なお、ＯＴ＿ＫＩＬＬ＿Ｐ信号がハイレベルに張り付く回路故障時の被疑箇所の特定について説明したが、ＯＴ＿ＫＩＬＬ＿Ｎ信号がハイレベルに張り付く回路故障時の被疑箇所の特定についても同様の流れとなるので、その説明を省略する。
【００７０】
また、ＳＶＣ３側の故障箇所特定部５１７が、回路故障の故障箇所を特定するものと説明した。しかしながら、ＳＶＣ２側の故障箇所特定部５１６が、ＳＶＣ３側の故障箇所特定部５１７とＦＰＧＡ間通信を行って、回路故障の故障箇所を特定するようにしても良い。例えば、ＳＶＣ２側の故障箇所特定部５１６は、故障箇所特定部５１７に、ＳＶＣ３側のバススイッチ３２が切断状態になるように指示した後、ＦＰＧＡ間通信を用いてＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタの信号レベルを要求する。そして、故障箇所特定部５１６は、ＦＰＧＡ間通信を介して取得したＯＷＮ＿ＫＩＬＬ＿Ｐ信号の信号レベルがローレベルであるか否かを判定するようにすれば良い。
【００７１】
また、故障箇所特定部５１６および故障箇所特定部５１７は、ＯＴ＿ＫＩＬＬ＿Ｐ信号のローレベルに張り付く回路故障が検出された場合、被疑箇所を特定する。
【００７２】
例えば、故障箇所特定部５１６は、制御レジスタ２１１を用いて、信号線４１に電圧がハイレベルの信号を入力する。すなわち、故障箇所特定部５１６は、ＯＴ＿ＫＩＬＬ＿Ｐ信号をハイレベルに制御する。そして、故障箇所特定部５１６は、故障箇所特定部５１７に、ＳＶＣ３側のバススイッチ３２が切断状態になるように指示する。そして、故障箇所特定部５１７は、制御レジスタ５１５を用いて、ＢＵＳ＿ＯＥ信号を切断状態に制御する。ＳＶＣ３側のバススイッチ３２を切断状態にするのは、故障箇所の特定にあたりバススイッチ３２の影響を排除するためである。そして、故障箇所特定部５１６は、ループバック状態レジスタ５１１に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致するか否かを判定する。そして、故障箇所特定部５１６は、ループバック状態レジスタ５１１に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致すると判定した場合、ＳＶＣ３側の回路故障であると判断する。つまり、ＯＴ＿ＫＩＬＬ＿Ｐ信号がローレベルに張り付いている場合、ＳＶＣ２側で入力したハイレベルとループバックした信号の信号レベルが一致しているので、ＳＶＣ２側は正常であり、ＳＶＣ３側が回路故障であると判断される。一方、故障箇所特定部５１６は、ループバック状態レジスタ５１１に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致しないと判定した場合、ＳＶＣ２側の回路故障であると判断する。つまり、ＯＴ＿ＫＩＬＬ＿Ｐ信号がハイレベルに張り付いている場合、ＳＶＣ２側で入力したハイレベルとループバックした信号の信号レベルが一致していないので、ＳＶＣ２側が回路故障であると判断される。
【００７３】
なお、ＯＴ＿ＫＩＬＬ＿Ｐ信号がローレベルに張り付く回路故障時の被疑箇所の特定について説明したが、ＯＴ＿ＫＩＬＬ＿Ｎ信号がローレベルに張り付く回路故障時の被疑箇所の特定についても同様の流れとなるので、その説明を省略する。
【００７４】
［ＯＴ＿ＫＩＬＬ＿Ｐ信号のＨＩＧＨ張り付き故障時の故障箇所特定のシーケンス］
次に、実施例２に係るＲＡＩＤシステム９Ａにおいて、ＯＴ＿ＫＩＬＬ＿Ｐ信号がハイレベル（以降、「ＨＩＧＨ」と略記）に張り付く回路故障時の故障箇所特定のシーケンスを、図７を参照して説明する。図７は、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＨＩＧＨに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。なお、図７では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、ＳＶＣ＃０のＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号のＨＩＧＨに張り付く回路故障を検出したとする。
【００７５】
すると、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障箇所特定部５１６）が、ＳＶＣ＃１へＢＵＳ  ＯＥ信号をＬＯＷに制御するように指示する（ステップＳ５１）。これは、ＳＶＣ＃１側のバススイッチ３２を切断状態にするためである。
【００７６】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａが、バススイッチ３２を切断状態にすべく、ＢＵＳ  ＯＥ信号をＬＯＷに制御する（ステップＳ５２）。続いて、ＳＶＣファームウェア３３ａは、ＳＶＣ＃１のＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’であるか否かを判定する（ステップＳ５３）。
【００７７】
ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’であると判定した場合（ステップＳ５３；Ｙｅｓ）、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０の回路故障と判断し、ＳＶＣ＃０の交換を促す（ステップＳ５４）。つまり、ＳＶＣ＃１側のバススイッチ３２が切断状態であって、且つＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１がローレベルであるので、ＳＶＣ＃１側は正常であり、ＳＶＣ＃０側が故障であると判断される。そして、ＳＶＣファームウェア３３ａは、故障箇所特定処理を終了する。
【００７８】
一方、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１の信号レベルが‘０’でないと判定した場合（ステップＳ５３；Ｎｏ）、ＳＶＣファームウェア３３ａは、ＳＶＣ＃１の回路故障と判断し、ＳＶＣ＃１の交換を促す（ステップＳ５５）。つまり、ＳＶＣ＃１側のバススイッチ３２が切断状態であるにも関わらず、ＯＷＮ＿ＫＩＬＬ＿Ｐ信号の状態レジスタ３１１がハイレベルであるので、ＳＶＣ＃１側が故障であると判断される。そして、ＳＶＣファームウェア３３ａは、故障箇所特定処理を終了し、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００７９】
［ＯＴ＿ＫＩＬＬ＿Ｎ信号のＨＩＧＨ張り付き故障時の故障箇所特定のシーケンス］
次に、実施例２に係るＲＡＩＤシステム９Ａにおいて、ＯＴ＿ＫＩＬＬ＿Ｎ信号がハイレベル（以降、「ＨＩＧＨ」と略記）に張り付く回路故障時の故障箇所特定のシーケンスを、図８を参照して説明する。図８は、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＨＩＧＨに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。なお、図８では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、ＳＶＣ＃０のＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号のＨＩＧＨに張り付く回路故障を検出したとする。
【００８０】
すると、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障箇所特定部５１６）が、ＳＶＣ＃１へＢＵＳ  ＯＥ信号をＬＯＷに制御するように指示する（ステップＳ６１）。これは、ＳＶＣ＃１側のバススイッチ３２を切断状態にするためである。
【００８１】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａが、バススイッチ３２を切断状態にすべく、ＢＵＳ  ＯＥ信号をＬＯＷに制御する（ステップＳ６２）。続いて、ＳＶＣファームウェア３３ａは、ＳＶＣ＃１のＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘０’であるか否かを判定する（ステップＳ６３）。
【００８２】
ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘０’であると判定した場合（ステップＳ６３；Ｙｅｓ）、ＳＶＣファームウェア３３ａは、ＳＶＣ＃０の回路故障と判断し、ＳＶＣ＃０の交換を促す（ステップＳ６４）。つまり、ＳＶＣ＃１側のバススイッチ３２が切断状態であって、且つＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２がローレベルであるので、ＳＶＣ＃１側は正常であり、ＳＶＣ＃０側が故障であると判断される。そして、ＳＶＣファームウェア３３ａは、故障箇所特定処理を終了する。
【００８３】
一方、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２の信号レベルが‘０’でないと判定した場合（ステップＳ６３；Ｎｏ）、ＳＶＣファームウェア３３ａは、ＳＶＣ＃１の回路故障と判断し、ＳＶＣ＃１の交換を促す（ステップＳ６５）。つまり、ＳＶＣ＃１側のバススイッチ３２が切断状態であるにも関わらず、ＯＷＮ＿ＫＩＬＬ＿Ｎ信号の状態レジスタ３１２がハイレベルであるので、ＳＶＣ＃１側が故障であると判断される。そして、ＳＶＣファームウェア３３ａは、故障箇所特定処理を終了し、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００８４】
［ＯＴ＿ＫＩＬＬ＿Ｐ信号のＬＯＷ張り付き故障時の故障箇所特定のシーケンス］
次に、実施例２に係るＲＡＩＤシステム９Ａにおいて、ＯＴ＿ＫＩＬＬ＿Ｐ信号がローレベル（以降、「ＬＯＷ」と略記）に張り付く回路故障時の故障箇所特定のシーケンスを、図９を参照して説明する。図９は、ＯＴ＿ＫＩＬＬ＿Ｐ信号がＬＯＷに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。なお、図９では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、ＳＶＣ＃０のＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｐ信号のＬＯＷに張り付く回路故障を検出したとする。
【００８５】
すると、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障箇所特定部５１６）が、ＯＴ＿ＫＩＬＬ＿Ｐ信号をＨＩＧＨに制御する（ステップＳ７１）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１１を用いて、信号線４１にＨＩＧＨを入力する。続いて、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＢＵＳ  ＯＥ信号をＬＯＷに制御するように指示する（ステップＳ７２）。これは、ＳＶＣ＃１側のバススイッチ３２の影響を排除するためである。
【００８６】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａが、バススイッチ３２を切断状態にすべく、ＢＵＳ  ＯＥ信号をＬＯＷに制御する（ステップＳ７３）。
【００８７】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｐ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｐ信号の状態レジスタの信号レベルが一致しているか否かを判定する（ステップＳ７４）。すなわち、ＳＶＣファームウェア２３ａは、ループバック状態レジスタ５１１に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致しているか否かを判定する。
【００８８】
ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｐ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｐ信号の状態レジスタが一致していると判定した場合（ステップＳ７４；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１の回路故障と判断し、ＳＶＣ＃１の交換を促す（ステップＳ７５）。つまり、ＳＶＣ＃０側で入力したハイレベルとループバックした信号の信号レベルが一致しているので、ＳＶＣ＃０側は正常であると判断され、ＳＶＣ＃１側は故障であると判断される。そして、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００８９】
ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｐ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｐ信号の状態レジスタが一致していないと判定した場合（ステップＳ７４；Ｎｏ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃０の回路故障と判断し、ＳＶＣ＃０の交換を促す（ステップＳ７６）。つまり、ＳＶＣ＃０側で入力したハイレベルとループバックした信号の信号レベルが一致していないので、ＳＶＣ＃０側は故障であると判断される。そして、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００９０】
［ＯＴ＿ＫＩＬＬ＿Ｐ信号のＬＯＷ張り付き故障時の故障箇所特定のシーケンス］
次に、実施例２に係るＲＡＩＤシステム９Ａにおいて、ＯＴ＿ＫＩＬＬ＿Ｎ信号がローレベル（以降、「ＬＯＷ」と略記）に張り付く回路故障時の故障箇所特定のシーケンスを、図１０を参照して説明する。図１０は、ＯＴ＿ＫＩＬＬ＿Ｎ信号がＬＯＷに張り付く回路故障時の故障箇所特定のシーケンスを示す図である。なお、図１０では、ＳＶＣ２をＳＶＣ＃０とし、ＳＶＣ３をＳＶＣ＃１として説明するものとする。また、ＳＶＣ＃０のＳＶＣファームウェア２３ａは、ＯＴ＿ＫＩＬＬ＿Ｎ信号のＬＯＷに張り付く回路故障を検出したとする。
【００９１】
すると、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａ（故障箇所特定部５１６）が、ＯＴ＿ＫＩＬＬ＿Ｎ信号をＨＩＧＨに制御する（ステップＳ８１）。例えば、ＳＶＣファームウェア２３ａは、制御レジスタ２１３を用いて、信号線４２にＨＩＧＨを入力する。続いて、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１へＢＵＳ  ＯＥ信号をＬＯＷに制御するように指示する（ステップＳ８２）。これは、ＳＶＣ＃１側のバススイッチ３２の影響を排除するためである。
【００９２】
そして、ＳＶＣ＃１では、ＳＶＣファームウェア３３ａが、バススイッチ３２を切断状態にすべく、ＢＵＳ  ＯＥ信号をＬＯＷに制御する（ステップＳ８３）。
【００９３】
続いて、ＳＶＣ＃０では、ＳＶＣファームウェア２３ａは、ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｎ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｎ信号の状態レジスタが一致しているか否かを判定する（ステップＳ８４）。すなわち、ＳＶＣファームウェア２３ａは、ループバック状態レジスタ５１３に保持された信号の信号レベルが、入力した信号レベルであるハイレベルと一致しているか否かを判定する。
【００９４】
ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｎ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｎ信号の状態レジスタが一致していると判定した場合（ステップＳ８４；Ｙｅｓ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃１の回路故障と判断し、ＳＶＣ＃１の交換を促す（ステップＳ８５）。つまり、ＳＶＣ＃０側で入力したハイレベルとループバックした信号の信号レベルが一致しているので、ＳＶＣ＃０側は正常であると判断され、ＳＶＣ＃１側は故障であると判断される。そして、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００９５】
ＳＶＣ＃０のＯＴ＿ＫＩＬＬ＿Ｎ信号と、Ｒ＿ＯＴ＿ＫＩＬＬ＿Ｎ信号の状態レジスタが一致していないと判定した場合（ステップＳ８４；Ｎｏ）、ＳＶＣファームウェア２３ａは、ＳＶＣ＃０の回路故障と判断し、ＳＶＣ＃０の交換を促す（ステップＳ８６）。つまり、ＳＶＣ＃０側で入力したハイレベルとループバックした信号の信号レベルが一致していないので、ＳＶＣ＃０側は故障であると判断される。そして、ＳＶＣファームウェア２３ａは、故障箇所特定処理を終了する。
【００９６】
［実施例２の効果］
上記実施例２によれば、ＳＶＣ３は、信号線４１を流れる信号について、状態レジスタ３１１に向けての出力をオン／オフするバススイッチ３２をさらに有する。そして、ＳＶＣ２は、信号の信号レベルに張り付く異常であることが検出された場合、バススイッチ３２をオフ（切断状態）にする。そして、ＳＶＣ２は、状態レジスタ３１１に保持された信号レベルまたはループバック状態レジスタ５１１に保持された信号レベルを用いて、ＳＶＣ２およびＳＶＣ３のいずれが異常であるのかを特定する。かかる構成によれば、ＳＶＣ２は、信号の信号レベルに張り付く異常であることが検出された場合に、ＳＶＣ２およびＳＶＣ３のいずれが異常であるのかを特定するので、交換するべきＳＶＣを決定でき、円滑にシステムを運用することが可能となる。
【００９７】
また、上記実施例２によれば、ＳＶＣ２は、信号のハイレベルに張り付く異常であることが検出された場合、バススイッチ３２をオフ（切断状態）にする。そして、ＳＶＣ２は、状態レジスタ３１１によって保持された信号の信号レベルがハイレベルである場合、ＳＶＣ３が異常であることを特定する。一方、ＳＶＣ２は、状態レジスタ３１１によって保持された信号の信号レベルがローレベルである場合、ＳＶＣ２が異常であることを特定する。かかる構成によれば、ＳＶＣ２は、ＳＶＣ３のバススイッチ３２の切断状態を利用して、切断状態である場合に保持されるべきローレベルが保持されているか否かで異常のＳＶＣを特定する。この結果、ＳＶＣ２は、信号のハイレベルに張り付く異常である場合に、容易に異常のＳＶＣを特定できる。
【００９８】
また、上記実施例２によれば、ＳＶＣ２は、信号のローレベルに張り付く異常であることが検出された場合、信号線４１にハイレベルの信号を入力し、バススイッチ３２をオフ（切断状態）にする。そして、ＳＶＣ２は、ループバック状態レジスタ５１１によって保持された信号の信号レベルが入力した信号レベルと一致しない場合、ＳＶＣ２の異常であることを特定する。一方、ＳＶＣ２は、ループバック状態レジスタ５１１によって保持された信号の信号レベルが入力した信号レベルと一致する場合、ＳＶＣ３の異常であることを特定する。かかる構成によれば、ＳＶＣ２は、ＳＶＣ２のループバック状態レジスタ５１１を利用して、ループバック状態レジスタ５１１に、入力した信号レベルであるハイレベルが保持されているか否かで異常のＳＶＣを特定する。この結果、ＳＶＣ２は、信号のローレベルに張り付く異常である場合に、容易に異常のＳＶＣを特定できる。
【００９９】
［その他］
なお、実施例１、２では、ＲＡＩＤシステム９、９Ａが、信号線４１、４２を対象に、特定の信号レベルに張り付く回路故障を検出し、検出した回路故障の故障箇所を特定した。しかしながら、かかるシステムは、ＲＡＩＤシステムに限定されず、冗長化された装置間で信号線を用いて相互に通信するシステムであれば良い。
【０１００】
また、実施例１、２では、ＲＡＩＤシステム９、９Ａが、初期化信号を扱う信号線４１、４２を対象に、特定の信号レベルに張り付く回路故障を検出し、検出した回路故障の故障箇所を特定するようにした。しかしながら、ＲＡＩＤシステム９、９Ａは、初期化信号でない信号を扱う信号線を対象に、特定の信号レベルに張り付く回路故障を検出し、検出した回路故障の故障箇所を特定するようにしても良い。これにより、ＲＡＩＤシステム９、９Ａでは、特定の信号レベルに張り付く回路故障の検出および故障箇所の特定を、汎用的に行うことができる。
【０１０１】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【０１０２】
（付記１）信号線を用いて相互に通信する第１の装置および第２の装置を有するシステムにおいて、
前記第１の装置は、
前記第２の装置から前記信号線を用いて出力される信号の信号レベルを保持する保持部を有し、
前記第２の装置は、
前記信号線に所定のレベルの信号を入力し、前記保持部によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号のレベルが特定のレベルから変化しない異常であることを検出する検出部を有する
ことを特徴とするシステム。
【０１０３】
（付記２）前記第１の装置は、
前記信号線を流れる信号について、前記保持部に向けての出力をオン／オフするスイッチをさらに有し、
前記第２の装置は、
前記信号線に入力された信号の信号レベルをループバックさせて保持するループバック保持部と、
前記検出部によって信号の信号レベルからレベルが変化しない異常であることが検出された場合、前記スイッチをオフしたうえで、前記保持部に保持された信号レベルまたは前記ループバック保持部に保持された信号レベルを用いて、前記第１の装置および前記第２の装置のいずれが異常であるのかを特定する異常特定部をさらに有する
ことを特徴とする付記１に記載のシステム。
【０１０４】
（付記３）前記異常特定部は、前記検出部によって信号のハイレベルからレベルが変化しない異常が検出された場合、前記スイッチをオフしたうえで、前記保持部によって保持された信号の信号レベルがハイレベルである場合、前記第１の装置が異常であることを特定し、前記保持部によって保持された信号の信号レベルがローレベルである場合、前記第２の装置が異常であることを特定する
ことを特徴とする付記２に記載のシステム。
【０１０５】
（付記４）前記異常特定部は、前記検出部によって信号のローレベルからレベルが変化しない異常が検出された場合、前記信号線にハイレベルの信号を入力し、前記スイッチをオフしたうえで、前記ループバック保持部）によって保持された信号の信号レベルが入力した信号レベルと一致しない場合、前記第１の装置が異常であることを特定し、前記ループバック保持部によって保持された信号の信号レベルが入力した信号レベルと一致する場合、前記第２の装置が異常であることを特定する
ことを特徴とする付記２に記載のシステム。
【０１０６】
（付記５）前記検出部は、システムの運用中に、定期的または不定期的に前記異常の検出を実行することを特徴とする付記１から付記３のいずれか１つに記載のシステム。
【０１０７】
（付記６）信号線を用いて相互に通信する第１の装置および第２の装置を有するシステムの異常箇所特定方法において、
前記第２の装置が、前記信号線に所定のレベルの信号を入力し、
前記第１の装置が、該入力した信号を前記第２の装置から前記信号線を用いて出力される信号の信号レベルを保持し、
前記第２の装置が、該保持する処理によって保持された信号の信号レベルが、入力したレベルと一致しない場合に、信号のレベルが特定のレベルから変化しない異常を検出する
各処理を実行することを特徴とする異常箇所特定方法。
【符号の説明】
【０１０８】
１      ＲＡＩＤ装置
２、３  ＳＶＣ
９、９Ａ  ＲＡＩＤシステム
２１、３１      ＦＰＧＡ
２２、３２      バススイッチ
２３、３３      ＭＰＵ
２３１    故障検出部
２３ａ、３３ａ    ＳＶＣファームウェア
２１１、２１３  制御レジスタ
２１２、２１４  バッファ
３１１、３１２  状態レジスタ
４１〜４４      信号線
５１１、５１３  ループバック状態レジスタ
５１２、５１４  バッファ
５１５          制御レジスタ
５１６、５１７  故障箇所特定部
【図１】
2014010714.tif 000003
【図２】
2014010714.tif 000004
【図３】
2014010714.tif 000005
【図４】
2014010714.tif 000006
【図５】
2014010714.tif 000007
【図６】
2014010714.tif 000008
【図７】
2014010714.tif 000009
【図８】
2014010714.tif 000010
【図９】
2014010714.tif 000011
【図１０】
2014010714.tif 000012