(57)【特許請求の範囲】
【請求項１】
列車情報を含むデータを記録する少なくとも３つのメモリを備え、前記各メモリから読み出されたデータの多数決をとる機能を有する列車情報管理装置であって、
前記全てのメモリにアクセスする第１のアドレスが割り当てられたＣＰＵと、
前記ＣＰＵから出力された前記第１のアドレスを検知したとき、前記第１のアドレスと前記各メモリに対応する第２のアドレスとを区別して、前記第２のアドレスに対応する同一のデータを前記各メモリから読み出し、読み出されたデータ同士が一致するか否かの多数決結果を前記ＣＰＵへ通知するＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）と、
を備え、
前記ＰＬＤは、前記各メモリから読み出されたデータの多数決をとった結果、一致するデータと一致しないデータとが含まれる場合、前記一致しないデータが含まれていたことを示すカウント値をインクリメントすると共に、前記一致しないデータが前記各メモリの何れのものであるかを示すエラーデータを保持することを特徴とする列車情報管理装置。
【請求項２】
前記ＰＬＤは、前記カウント値が所定の値を超えた場合、前記ＣＰＵへ割り込み信号を出力した後に前記エラーデータを前記ＣＰＵへ出力することを特徴とする請求項１に記載の列車情報管理装置。
【請求項３】
前記ＣＰＵには模擬的に前記カウント値をインクリメントさせる模擬データが記録され、
前記ＰＬＤは、前記ＣＰＵから前記各メモリに書き込まれたデータを読み出して多数決をとり、
前記ＣＰＵは、前記模擬データと前記ＰＬＤからの前記エラーデータとが一致しない場合、前記ＰＬＤに異常が生じていることを検出することを特徴とする請求項１または２に記載の列車情報管理装置。
【請求項４】
列車情報を含むデータを記録する少なくとも３つのメモリを備えた列車情報管理装置に適用され、前記各メモリから読み出されたデータの多数決をとる多数決処理方法であって、
前記全てのメモリにアクセスする第１のアドレスが割り当てられたＣＰＵからの前記第１のアドレスを検知するアドレス検知ステップと、
前記第１のアドレスと前記各メモリに対応する第２のアドレスとを区別して、前記第２のアドレスに対応する同一のデータを前記各メモリから読み出すデータ読み出しステップと、
読み出されたデータ同士が一致するか否かの多数決をとる多数決処理ステップと、
前記多数決処理ステップによる多数決の結果を前記ＣＰＵへ通知する通知ステップと、
を含み、
前記多数決処理ステップには、
前記各メモリから読み出されたデータが全て一致するか否かを判定する第１の判定ステップと、
前記第１の判定ステップにて前記データが全て一致しない場合、前記データの内いずれか２つのデータが一致しているか否かを判断する第２の判定ステップと、
前記第２の判定ステップにて一致するデータと一致しないデータとが含まれる場合、前記一致しないデータが前記各メモリの何れのものであるかを示すエラーデータを保持すると共に、前記一致しないデータが含まれていたことを示すカウント値をインクリメントするエラーカウントステップと、
が含まれることを特徴とする多数決処理方法。
【請求項５】
前記エラーカウントステップの後には、
前記カウント値が所定の値を超えたか否かを判断するステップと、
前記カウント値が前記所定の値を超えた場合、前記ＣＰＵへ割り込み信号を出力する割り込み信号出力ステップと、
前記割り込み信号を出力した後に前記エラーデータを前記ＣＰＵに対して出力するエラーデータ出力ステップと、
が含まれることを特徴とする請求項４に記載の多数決処理方法。
【請求項６】
前記ＣＰＵには、模擬的に前記カウント値をインクリメントさせる模擬データが記録され、
前記アドレス検知ステップの前には、
前記ＣＰＵに記録された前記模擬データを前記各メモリに書き込むデータ書き込みステップが含まれ、
前記エラーカウントステップの後には、
前記ＣＰＵが、前記模擬データと前記エラーデータとが一致しない場合、前記列車情報管理装置の多数決機能に異常が生じていることを検出する異常検出ステップが含まれることを特徴とする請求項４または５に記載の多数決処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数決機能を備えた列車情報管理装置および多数決処理方法に関するものである。
【背景技術】
【０００２】
システムのブート（起動）に必要なプログラムやデータは、電気的に書き換え可能な不揮発メモリであるフラッシュメモリ（「フラッシュＲＯＭ」あるいは「ＥＥＰＲＯＭ：Electrically Erasable Programmable ROM」）ともいう）に保存されるのが一般的である。このフラッシュメモリには書き換え回数に上限があり、上限に達すると記録されているデータやプログラムが保障されなくなる。また、書き換え寿命に達しない場合でも、メモリセルの電荷漏れなどにより記録されているビットが変化する「ビット化け」が生じることがある。このようなビット化けが発生した場合、ブートプログラムにエラーが生じてシステムが正常に起動できなくなる場合や、記録されているデータが化けてシステムに異常をきたしてしまう場合がある。
【０００３】
他方、近年の鉄道車両には、乗務員の負荷低減や乗客に対するサービスの向上を目的として、サービス機器などの動作状態の制御および監視を行う列車情報管理装置が搭載されている。この列車情報管理装置は、例えば、主幹制御器（マスコン）等の制御操作装置へ接続され、列車識別情報、列車位置情報、列車運行情報、および列車指令情報等の情報（列車情報）が記録される。
【０００４】
ただし、列車情報管理装置に内蔵されるメモリにおいて、ビット化けなどが発生すると、列車の運用に大きな影響を与える可能性がある。そのため、ビットエラーなどに起因する誤動作を回避し、列車運用への影響を軽減する措置が不可欠である。
【０００５】
このような問題を解決する手段として、下記特許文献１に代表される従来技術は、フラッシュメモリを複数個実装し、それぞれのフラッシュメモリに同一の内容を記録して、読み出し時にデータの多数決を取る多数決検知方式を採用している。他方、ビット化け対策としては、１ビットのエラー訂正、２ビットのエラー検知が可能ＥＣＣ（Error Checking and Correction）と呼ばれる誤り訂正方式が存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１８７１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に代表される従来技術では、各種の演算処理を実行するＣＰＵの処理負担が多数決処理によって増大するという課題があった。また、ＥＣＣ方式を採用した場合、ＥＣＣを作成しあるいはＥＣＣをチェックするハードウェアと、冗長ビットを生成するためのメモリ領域とを実装する必要があるだけでなく、ＣＰＵ側で誤り訂正処理を行う必要があるためＣＰＵの負荷が増加するという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、ＣＰＵの負荷を増大させることなく多数決演算を実行可能な列車情報管理装置および多数決処理方法を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、列車情報を含むデータを記録する少なくとも３つのメモリを備え、前記各メモリから読み出されたデータの多数決をとる機能を有する列車情報管理装置であって、前記全てのメモリにアクセスする第１のアドレスが割り当てられたＣＰＵと、前記ＣＰＵから出力された前記第１のアドレスを検知したとき、前記第１のアドレスと前記各メモリに対応する第２のアドレスとを区別して、前記第２のアドレスに対応する同一のデータを前記各メモリから読み出し、読み出されたデータ同士が一致するか否かの多数決結果を前記ＣＰＵへ通知するＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）と、を備えたことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、少なくとも３つのメモリから読み出されたデータの多数決処理を実行するＰＬＤを備えるようにしたので、ＣＰＵの負荷を増大させることなく多数決処理を実行することができる、という効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態にかかる列車情報管理装置の構成を示す図である。
【図２】図２は、図１に示される列車情報管理装置に内蔵される多数決処理システムの構成を示す図である。
【図３】図３は、フラッシュメモリにデータを書き込むときのフローチャートを示す図である。
【図４】図４は、フラッシュメモリ内のデータを読み出すときのフローチャートを示す図である。
【図５】図５は、多数決処理を行う際のフローチャートを示す図である。
【図６】図６は、ＣＰＵが自己診断処理を行う際のフローチャートを示す図である。
【図７】図７は、ＣＰＵ内のメモリマップの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる列車情報管理装置および多数決処理方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態．
図１は、本発明の実施の形態にかかる列車情報管理装置の構成を示す図であり、図２は、図１に示される列車情報管理装置に内蔵される多数決処理システムの構成を示す図である。
【００１４】
図１に示される列車の編成は、複数台の車両からなり、一例として両先頭車両１０ａと先頭車両以外の車両１０ｂとで構成されている。車両１０ａには、情報制御中央装置（以下単に「中央装置」と称する）１１が搭載され、車両１０ｂには、車両間伝送路２０を介して相互に接続された情報制御端末装置（以下単に「端末装置」と称する）１２が搭載されている。さらに、各車両１０ａ、１０ｂには、編成内伝送路２１を介して端末装置１２に接続された複数の列車搭載機器（以下単に「機器」と称する）１〜ｎが設置されている。
【００１５】
中央装置１１および端末装置１２は列車情報管理装置を構成し、中央装置１１は、図示しない主幹制御器（マスコン）等の制御操作装置へ接続され列車情報の入出力処理を行う。端末装置１２は、各中央装置１１から出力された制御情報などを含むデータを各機器１〜ｎに対して送信すると共に、各機器１〜ｎからのデータを収集し各中央装置１１に対して送信する。
【００１６】
中央装置１１および端末装置１２には、図２に示されるフラッシュメモリ（以下単に「メモリ」と称する）３が内蔵され、このメモリ３には前述した列車情報の他にも、各機器１〜ｎから出力されたデータやブートプログラムなど（以下「データ等」と称する）が記録される。このデータ等は、例えば、データ送信元の機器１〜ｎを識別するための機器ＩＤや、機器１〜ｎの動作状態情報（例えば、空調の現在温度、ＶＶＶＦの出力など）が含まれている。各機器１〜ｎからのデータを受信した中央装置１１では、どの機器から送信された動作状態情報であるかを識別することが可能である。ただし、メモリ３においてエラーが生じた場合には、動作状態情報などを識別することが困難になるため列車の運用に大きな影響を与える可能性がある。
【００１７】
本実施の形態にかかる列車情報管理装置には、図２に示される多数決処理システムが内蔵され、例えば、仕業点検時に多数決処理が実行されることにより、列車の円滑な運行を図るように構成されている。さらに、多数決処理システムは、定期的にＰＬＤ２の状態をチェックする機能（自己診断機能）を有し、多数決処理システムの信頼性を向上させるように構成されている。以下、図２を用いて、本実施の形態にかかる多数決処理システムを詳細に説明する。
【００１８】
図２に示される多数決処理システムは、主たる構成として、所定の情報処理を行うＣＰＵ１と、メモリ３と、ＣＰＵ１とメモリ３との間に介在し多数決処理などを実施するＰＬＤ２と、を有して構成されている。メモリ３は、一例として、３つのメモリ３ａ、３ｂ、３ｃで構成されている。
【００１９】
なお、本実施の形態にかかる多数決処理システムには、不揮発性のメモリだけでなく、揮発性のメモリであるＳＲＡＭ（Static Random Access Memory）を用いてもよい。通常、メモリ３ａ〜３ｃにはプログラムを起動するためのブートプログラムや数値データなどが記録され、ＳＲＡＭには様々な数値データが記録される。
【００２０】
ＣＰＵ１とＰＬＤ２の間には、ＣＰＵ１がメモリ３を選択する信号であるＣＳ（Chip Select）信号０と、ＣＰＵ１がＰＬＤ２を選択する信号であるＣＳ信号１と、メモリ３へのデータ書き込みを可能にする信号であるＷＥ（Write Enable）信号と、メモリ３からのデータ読み出しを可能にする信号であるＯＥ（Output Enable）信号と、メモリ３へのデータ書き込みが完了したことをＣＰＵ１へ通知するＢＵＳＹ信号と、ＣＰＵ１に対する割込み要求信号であるＩＲＱ（Interrupt ReQuest）信号と、が伝達される。さらに、ＣＰＵ１とＰＬＤ２は、アドレスバスＡとデータバスＤとで接続されている。
【００２１】
ＣＰＵ１からＰＬＤ２へ向かう信号は、アドレスバスＡを介してＰＬＤ２あるいはメモリ３ａ〜３ｃへ送信されるアドレスと、ＣＳ信号０と、ＣＳ信号１と、ＷＥ信号と、ＯＥ信号とである。ＰＬＤ２からＣＰＵ１へ向かう信号は、ＢＵＳＹ信号とＩＲＱ信号であり、双方向の信号は、データバスＤを介してＣＰＵ１とＰＬＤ２との間で送受信されるデータである。
【００２２】
一方、ＰＬＤ２とメモリ３ａ〜３ｃとの間には、ＰＬＤ２がメモリ３ａを選択する信号であるＣＳ信号０と、ＰＬＤ２がメモリ３ｂを選択する信号であるＣＳ信号１と、ＰＬＤ２がメモリ３ｃを選択する信号であるＣＳ信号２と、メモリ３ａ〜３ｃへのデータ書き込みを可能にする信号であるＷＥ信号と、メモリ３ａ〜３ｃからのデータ読み出しを可能にする信号であるＯＥ信号と、メモリ３ａのデータ書き込みが完了したことをＰＬＤ２へ通知するＢＵＳＹ（図１には便宜上「ＢＳＹ」と表記）信号０と、メモリ３ｂのデータ書き込みが完了したことをＰＬＤ２へ通知するＢＵＳＹ信号１と、メモリ３ｃのデータ書き込みが完了したことをＰＬＤ２へ通知するＢＵＳＹ信号２と、が伝達される。さらに、ＰＬＤ２とメモリ３ａ〜３ｃは、アドレスバスＡとデータバスＤとで接続されている。
【００２３】
ＰＬＤ２から各メモリ３ａ〜３ｃへ向かう信号線は、アドレスバスＡを介してメモリ３ａ〜３ｃへ送信されるアドレスと、ＣＳ信号０〜２と、ＷＥ信号と、ＯＥ信号とである。各メモリ３ａ〜３ｃからＰＬＤ２へ向かう信号は、ＢＵＳＹ信号０〜２であり、双方向の信号は、データバスＤを介してＰＬＤ２とメモリ３ａ〜３ｃとの間で送受信されるデータである。
【００２４】
ＣＰＵ１からＰＬＤ２の間におけるＢＵＳＹ信号と、ＣＰＵ１からメモリ３ａ〜３ｃの間におけるＢＵＳＹ信号０〜２と、の関係を説明する。
【００２５】
例えば、ＣＰＵ１から各メモリ３ａ〜３ｃへのデータ書き込みを実行している場合、各メモリ３ａ〜３ｃからＰＬＤ２に対するＢＵＳＹ信号０〜２の状態は例えばＨ（又はＬ）である。そして、各メモリ３ａ〜３ｃのデータ書き込みが完了したとき、ＢＵＳＹ信号０〜２は、例えばＬ（又はＨ）に変化する。一方、ＰＬＤ２からＣＰＵ１に対するＢＵＳＹ信号は、ＢＵＳＹ信号０〜２の何れかがＨ（又はＬ）のときにはＨ（又はＬ）であり、ＢＵＳＹ信号０〜２の全てがＬ（又はＨ）に変化したときにＬ（又はＨ）となる。このようにＢＵＳＹ信号がＨ（又はＬ）からＬ（又はＨ）に変化したとき、ＣＰＵ１は、全てのメモリ３ａ〜３ｃへのデータ書き込みが完了したことを検知する。
【００２６】
次に、図３〜図６を用いて本実施の形態にかかる多数決処理システムの動作を説明する。先ず図３を用いて、例えば全てのメモリ３ａ〜３ｃに同一のデータを書き込むときの動作を説明する。
【００２７】
図３は、フラッシュメモリ３にデータを書き込むときのフローチャートを示す図である。ＰＬＤ２は、ＣＰＵ１からのライト信号（ＷＥ信号）を受信したとき（ステップＳ１０）、各メモリ３ａ〜３ｃに対するライト信号をアサートする（ステップＳ１１）。なお、「信号をアサートする」とは、その信号をアクティブな状態に切り換えることを意味している。
【００２８】
ＰＬＤ２は、メモリ３ａ〜３ｃからのＢＵＳＹ信号０〜２に基づいて、全てのメモリ３ａ〜３ｃのデータ書き込みが完了したか否かを判断する（ステップＳ１２）。ＰＬＤ２は、データ書き込みが完了していない場合には（ステップＳ１２，Ｎｏ）、ＢＵＳＹ信号０〜２を全て受信するまでＣＰＵ１に対するライト終了（書き込み終了）を通知しないが、データ書き込みが完了した場合には（ステップＳ１２，Ｙｅｓ）、ＣＰＵ１に対してライト終了を通知する（ステップＳ１３）。
【００２９】
データ書き込み動作を具体例で説明する。ＣＰＵ１から各メモリ３ａ〜３ｃに対してデータを書き込む場合、ＣＰＵ１は、まずＣＰＵ１とＰＬＤ２との間におけるＣＳ信号０およびＷＥ信号をアサートすると共に、データが書き込まれるメモリ３ａ〜３ｃのアドレスを送信することにより、データ書き込みを実行することをＰＬＤ２へ通知する。
【００３０】
ＣＰＵ１からのアドレス、ＣＳ信号０、およびＷＥ信号の組み合わせによりデータ書き込みを検知したＰＬＤ２は、ＣＳ信号０〜２とＷＥ信号をアサートすると共に、アドレスを送信することにより、メモリ３ａ〜３ｃへのデータ書き込みを実行する。なお、データ書き込みの場合、ＰＬＤ２による多数決処理が行われることはない。
【００３１】
各メモリ３ａ〜３ｃへのデータ書き込みが完了するまでの時間にはばらつきがあるため、ＰＬＤ２は、全てのメモリ３ａ〜３ｃからのＢＵＳＹ信号０〜２を受信したとき（すなわち全てのメモリ３ａ〜３ｃに対するデータ書き込みが終了した時点で）、ＣＰＵ１に対してＢＵＳＹ信号を送信し、データ書き込みが終了したことを通知する。
【００３２】
ここで、アドレスに関して補足をする。ＣＰＵ１内部のメモリマップには、後述する図７に示すように、１つのメモリ容量の４倍のアドレス空間が割り当てられている。例えば、１つのメモリ３の容量が８Ｍｂｉｔでありデータ幅が８ｂｉｔの場合、１つのアドレス空間の領域は０７ＦＦＦＦＦＨ（Ｈは１６進数を意味する）となる。
【００３３】
具体例で説明をすると、ＣＰＵ１内部のメモリマップには、例えば、メモリ３ａ〜３ｃに割り当てられたアドレス０００００００Ｈ〜０７ＦＦＦＦＦＨまでのアドレス空間Ａと、メモリ３ａに割り当てられたアドレス０８０００００Ｈ〜０ＦＦＦＦＦＦＨまでのアドレス空間Ｂと、メモリ３ｂに割り当てられたアドレス１００００００Ｈ〜１７ＦＦＦＦＦＨまでのアドレス空間Ｃと、メモリ３ｃに割り当てられたアドレス１８０００００Ｈ〜１ＦＦＦＦＦＦＨまでのアドレス空間Ｄと、が割り当てられている。
【００３４】
メモリ３ａにデータ書き込みを行う場合を想定して、アドレスの値に関してより具体的に説明する。
【００３５】
メモリ３ａにデータ書き込みを行う場合、ＣＰＵ１は、ＣＳ信号０およびＷＥ信号をアサートすると共に、メモリ３ａのアドレスをＰＬＤ２へ送信する。このときのアドレスは、アドレス空間Ｂのアドレスであり、例えばアドレス０８０００００Ｈと仮定する。ＰＬＤ２は、ＣＳ信号０、ＷＥ信号、およびアドレスの組み合わせにより、メモリ３ａに対するデータ書き込みを検知する。
【００３６】
メモリ３ａに対するデータ書き込みであることを検知する方法は以下の通りである。ＰＬＤ２では、例えばアドレスの上位２ｂｉｔの値をみて、データ書き込みの対象となるメモリを識別している。具体的には、アドレス０８０００００Ｈの上位２ｂｉｔの値が、メモリ３ａを示す値（例えば「０１」）である場合、ＰＬＤ２は、メモリ３ａへのデータ書き込みを実行する。
【００３７】
アドレスの上位２ｂｉｔの値に関して補足をすると、全てのメモリ３ａ〜３ｃを示す値は例えば「００」であり、メモリ３ａのみを示す値は上述したように「０１」であり、メモリ３ｂのみを示す値は例えば「１０」であり、メモリ３ｃのみを示す値は例えば「１１」である。換言すると、上位２ｂｉｔの値である「００」は全てのメモリ３ａ〜３ｃにアクセスすることを示す値であり、上位２ｂｉｔの値である「０１」、「１０」、および「１１」は、各メモリ３ａ、３ｂ、３ｃに個別にアクセスすることを示す値である。
【００３８】
次に、メモリ３ａ〜３ｃからデータを読み出すときの動作を説明するが、ＣＰＵ１がメモリ３ａ〜３ｃ内のデータを読み出す際、正常なデータを読み出すためにはＰＬＤ２による多数決処理が必要となる。そこで、以下の説明では、データを読み出すときの動作を示す図４と、多数決処理の動作を示す図５とを用いて、データ読み出しの動作と多数決処理とを関連付けて説明する。
【００３９】
図４は、フラッシュメモリ３内のデータを読み出すときのフローチャートを示す図であり、図５は、多数決処理を行う際のフローチャートを示す図である。
【００４０】
図４において、ＰＬＤ２は、ＣＰＵ１からのリード信号（ＯＥ信号）を受信したとき（ステップＳ２０）、各メモリ３ａ〜３ｃにＯＥ信号を送信する（ステップＳ２１）。より具体的には、ＣＰＵ１がデータを読み出す場合、ＣＰＵ１は、まずＣＰＵ１とＰＬＤ２との間におけるＣＳ信号０およびＯＥ信号をアサートすると共に、データ読み出しの対象のアドレスを送信する。ＰＬＤ２は、ＣＰＵ１からのアドレス、ＣＳ信号０、およびＯＥ信号の組み合わせによりデータ読み出しを検知する。そして、ＰＬＤ２は、ＣＳ信号０〜２とＯＥ信号をアサートすることにより、データ読み出しを実行する。
【００４１】
続いて、メモリ３ａ〜３ｃは、それぞれデータバスＤにデータを出力し、ＰＬＤ２は、メモリ３ａ〜３ｃからのデータを取り込むと共に（ステップＳ２２）、多数決処理を実施する（ステップＳ２３）。多数決処理の詳細は図５において説明する。
【００４２】
ＰＬＤ２による多数決処理の結果（ステップＳ２３）、３つのメモリ３ａ〜３ｃからのデータが一致している場合、ＰＬＤ２は、メモリ３ａ〜３ｃから読み出したデータであるリードデータをＣＰＵ１に送信する（ステップＳ２４）。
【００４３】
また、ＰＬＤ２による多数決処理の結果（ステップＳ２３）、メモリ３ａ〜３ｃからのデータの内いずれか２個のデータが一致し、かつ、後述するエラーカウントが所定の値Ｎを超えていない場合、ＰＬＤ２は、リードデータをＣＰＵ１に送信する（ステップＳ２４）。
【００４４】
図５において、ＰＬＤ２は、メモリ３ａ〜３ｃからの全てのデータが一致している場合（ステップＳ３０，Ｙｅｓ）、図４に示されるステップＳ２４の動作を実行する。すなわち、ＰＬＤ２は、メモリ３ａ〜３ｃには異常が生じていないものとして、データをＣＰＵ１に出力する。
【００４５】
ステップＳ３０（第１の判定ステップ）において、メモリ３ａ〜３ｃからの全てのデータが一致していない場合（ステップＳ３０，Ｎｏ）、ＰＬＤ２は、メモリ３ａ〜３ｃからのデータの内いずれか２個のデータが一致しているか否かを判断する（ステップＳ３１）。２個のデータが一致している場合には（ステップＳ３１，Ｙｅｓ）、メモリ３ａ〜３ｃから読み出されたデータの中に、他の２個のデータと一致しないデータが含まれていたことを記録するため、エラーカウントをインクリメントする（ステップＳ３２：エラーカウントステップ）。
【００４６】
このように、ＰＬＤ２は、メモリ３ａ〜３ｃから読み出されたデータの多数決をとった結果、一致するデータと一致しないデータとが含まれる場合、一致しないデータが含まれていたことを示すエラーカウント（カウント値）をインクリメントする。
【００４７】
ＰＬＤ２は、例えば、ステップＳ３３までの処理を複数回繰り返した結果、エラーカウントが所定の値Ｎを超えたか否かを判定する（ステップＳ３３）。エラーカウントが所定の値Ｎを超えていない場合（ステップＳ３３，Ｎｏ）、ＰＬＤ２は、図４に示されるステップＳ２４の動作を実行する。すなわち、ＰＬＤ２は、ＣＰＵ１に対して、一致したデータを出力する。一方、エラーカウントが所定の値Ｎを超えている場合（ステップＳ３３，Ｙｅｓ）、ＰＬＤ２は、メモリ３ａの故障と判断しＩＲＱ信号を出力する。そして、ＰＬＤ２およびＣＰＵ１によって、ステップＳ３４の異常処理が実行される。
【００４８】
ステップＳ３３の処理を具体例で説明すると、例えば、ステップＳ３３までの処理が複数回繰り返されたときに、エラーカウントが連続して累積されて、その結果、エラーカウントが所定の値Ｎ（例えば３回）を超えた場合にはＩＲＱ信号を出力するように構成してもよい。また、エラーカウントが連続して累積されなくとも、例えばステップＳ３３までの処理が１０回繰り返されたときのエラーカウントが所定の値Ｎ（例えば５回）を超えた場合にＩＲＱ信号を出力するように構成してもよい。
【００４９】
ステップＳ３１（第２の判定ステップ）において、２個のデータが一致していない場合（ステップＳ３１，Ｎｏ）、すなわち全てのデータが一致しない場合にもステップＳ３４の異常処理が実行される。
【００５０】
ステップＳ３４における異常処理を説明する。エラーカウントが所定の値Ｎを超えるケースや、読み出されたデータが３個とも異なるというケースは、通常では発生しないが、仮にこのようなケースが発生した場合、メモリ３ａ〜３ｃから正常なデータを読み出すことが困難となる。そのため、このようなケースでは致命的なエラーとして即座にＣＰＵ１に知らせる必要がある。
【００５１】
そこで、ＰＬＤ２は、エラーカウントが所定の値Ｎを超える場合や読み出されたデータが３個とも異なる場合には、ＣＰＵ１に対してＩＲＱ信号を送信する。ＩＲＱ信号を受信したＣＰＵ１はＣＳ１をアサートしてＰＬＤ２にアクセスする。このアクセスに対してＰＬＤ２は、一致しないデータが各メモリ３ａ〜３ｃの何れのものであるかを示すエラーパターン（エラーデータ）をＣＰＵ１に送信する。エラーパターンは、ＰＬＤ２内の図示しないレジスタにおいてメモリ３ａ、３ｂ、３ｃ毎に記録される。
【００５２】
このエラーパターンは、例えば、メモリ３ａから読み出されたデータに異常が認められるのか、メモリ３ｂから読み出されたデータに異常が認められるのか、などの異常が生じているメモリ３ａ〜３ｃをＣＰＵ１が識別可能に構成されたデータであり、データバスＤを介してＣＰＵ１に送信される。その結果、ＣＰＵ１では、ＰＬＤ２からのエラーパターンの内容によって、どのメモリに異常が生じているのかを識別することが可能である。
【００５３】
ステップＳ３４の異常処理は、ＰＬＤ２がＣＰＵ１にＩＲＱ信号を送信してから、ＣＰＵ１がＰＬＤ２からのエラーパターンの内容によって異常が生じているメモリ３を識別するまでの一連の処理動作を示す。
【００５４】
このように、ＰＬＤ２は、エラーカウントが所定の値Ｎを超えた場合、ＣＰＵ１へＩＲＱ信号を出力すると共に、エラーが生じているメモリ３をＣＰＵ１に識別させるエラーパターンをＣＰＵ１に対して出力するように構成されている。
【００５５】
次に、ＰＬＤ２の多数決機能が正常であるか否かを診断する自己診断機能に関して説明する。
【００５６】
ＰＬＤ２の多数決機能そのものが故障した場合、多数決処理におけるデータ不一致が、メモリ３の寿命やビット化けに起因するものであるか、多数決回路（ＰＬＤ２）の故障に起因するものであるのかを識別をすることができない。このような問題を解決するために、本実施の形態にかかる多数決処理システムは、後述する図６に示す方法によって、定期的にＰＬＤ２の健全性を確認する機能（自己診断機能）を有している。
【００５７】
以下、図６を用いて、本実施の形態にかかる多数決処理システムの自己診断機能の動作を説明する。
【００５８】
図６は、ＣＰＵが自己診断処理を行う際のフローチャートを示す図である。メモリ３ａ〜３ｃに対応するアドレス空間には、例えば「０、０、１」という試験データ（あるいはデータパターン）が記録される（ステップＳ４０）。
【００５９】
この試験データは、ＰＬＤ２の健全性を判別するために用いられる所定のデータであり、本実施の形態では自己診断機能を動作させる前提としてＣＰＵ１に記録されている。
【００６０】
この試験データは、一例として、メモリ３ａに対応する値「０」とメモリ３ｂに対応する値「０」とメモリ３ｃに対応する値「１」とが組み合わされ、メモリ３ａに対応する値「０」は、前述したアドレス空間Ｂのアドレス（例えばアドレス０８０００００Ｈ）に記録され、メモリ３ｂに対応する値「０」は、アドレス空間Ｃのアドレス（例えばアドレス１００００００Ｈ）に記録され、メモリ３ｃに対応する値「１」は、アドレス空間Ｄのアドレス（例えばアドレス１８０００００Ｈ）に記録されている。
【００６１】
そして、ＣＰＵ１に記録された試験データは、図３にて説明をしたデータ書き込みの動作によって各メモリ３ａ〜３ｃに書き込まれる（ステップＳ４１）。その後、図４および図５にて説明をした多数決処理が実行される（ステップＳ４２）。
【００６２】
ＣＰＵ１は、ＰＬＤ２による多数決処理によってＩＲＱ信号がアサートされた場合、期待通りのエラーが発生したか否かを判断する。例えば、ＣＰＵ１内の試験データと、ＰＬＤ２からのエラーパターンとが一致すれば、期待通りのエラーが発生したことになる。ＣＰＵ１は、ＰＬＤ２における多数決処理の結果が期待通りであるか否かによってＰＬＤ２の健全性を診断する（ステップＳ４３）。
【００６３】
ステップＳ４２とステップＳ４３との関係を具体的に説明する。ＰＬＤ２では、メモリ３ａ〜３ｃから読み出したデータを用いて、図５に示されるステップＳ３３までの処理を複数回繰り返されたときのエラーカウントが所定の値Ｎを超えた場合にはＩＲＱ信号を出力する。その後、ＰＬＤ２からＣＰＵ１に送信されるエラーパターンが、試験データと一致した場合、ＣＰＵ１はＰＬＤ２の多数決機能が正常に動作していると判断する。
【００６４】
期待通りのエラーが発生した場合（ステップＳ４３，Ｙｅｓ）、多数決処理システムの動作は終了する。期待通りのエラーが発生しない場合（ステップＳ４３，Ｎｏ）、ＰＬＤ２の多数決機能に異常が生じていることが検出され、ステップＳ４４の異常処理が実行される。期待通りのエラーが発生しない場合とは、例えば、ＩＲＱ信号は送信されたがＰＬＤ２からのエラーパターンが他のメモリ（例えばメモリ３ｂ）の異常を示すエラーパターンでため、試験データとエラーパターンとが不一致のときを示す。
【００６５】
ステップＳ４４における異常処理は、例えば、ＰＬＤ２に異常が発生したことを列車情報管理装置に接続された所定のモニタ装置へ報知するなどの動作である。
【００６６】
なお、ＰＬＤ２に異常が生じているのかメモリ３ａ〜３ｃに異常が生じているのかを切り分ける方法としては、まず試験データを使わずにＰＬＤ２による多数決処理を実行してメモリ３ａ〜３ｃの健全性を確認する。そして、メモリ３ａ〜３ｃが正常であることを確認した後に、試験データを用いて図６に示される動作を実行すればよい。
【００６７】
なお、図６に示される試験データは、説明の便宜上「０、０、１」というパターンであるが、これに限定されるものではなく、例えば「１、０、１」や「１、１、０」などのパターンでもよいし、「００、００、１１」、「１１、００、１１」などのパターンでもよい。
【００６８】
このように、ＣＰＵ１には、模擬的にエラーカウント（カウント値）をインクリメントさせる試験データ（模擬データ）が記録され、ＰＬＤ２は、ＣＰＵ１から全てのメモリ３ａ〜３ｃに書き込まれた試験データを読み出して多数決をとった結果、カウント値が所定の値Ｎを超えた場合にエラーデータをＣＰＵ１へ出力し、ＣＰＵ１、は試験データとエラーデータとが一致しない場合、ＰＬＤ２に異常が生じていることを検出するように構成されている。
【００６９】
次に、図７を用いて、ＣＰＵ１内部のメモリマップと、本実施の形態にかかる多数決処理システムの動作とを関連付けて説明する。
【００７０】
図７は、ＣＰＵ１内のメモリマップの一例を示す図である。図７に示されるメモリマップには、前述したアドレス空間Ａ〜Ｄが示されると共に、アドレス空間Ａ〜Ｄのアドレスの一例としてアドレス０００００００Ｈ〜１ＦＦＦＦＦＦＨが示されている。さらに図７には、アドレスに対応するビット列が示されている。以下、図７に示されるアドレスの値と多数決処理システムの動作とを対応付けて説明する。なお、図７に示される「ＣＳ０」は、図１に示される「ＣＳ０」（ＣＳ信号０）を意味する。
【００７１】
メモリ３ａ〜３ｃにデータを書き込む場合、メモリ３ａに対応するアドレス（例えば０８０００００Ｈ）がＰＬＤ２へ送信され、ＰＬＤ２はこのアドレスの上位２ｂｉｔの値「０１」に基づいてＣＳ信号０をアサートし、このアドレスのデータは、データバスＤを介してメモリ３ａに書き込まれる。以下同様に、メモリ３ｂに対応するアドレス（例えば１００００００Ｈ）がＰＬＤ２へ送信され、ＰＬＤ２はこのアドレスの上位２ｂｉｔの値「１０」に基づいてＣＳ信号１をアサートし、このアドレスのデータは、データバスＤを介してメモリ３ｂに書き込まれる。また、メモリ３ｃに対応するアドレス（例えば１８０００００Ｈ）がＰＬＤ２へ送信され、ＰＬＤ２はこのアドレスの上位２ｂｉｔの値「１１」に基づいてＣＳ信号２をアサートし、このアドレスのデータは、データバスＤを介してメモリ３ｃに書き込まれる。
【００７２】
なお、本実施の形態では、ＣＰＵ１からＰＬＤ２に送信される下位２５ｂｉｔの内、ＰＬＤ２で検知される上位２ｂｉｔは、メモリ３ａ〜３ｃにアクセスする第１のアドレスと定義し、この上位２ｂｉｔを除く下位２３ｂｉｔは、各メモリ３ａ〜３ｃに対応する第２のアドレスと定義する。
【００７３】
多数決処理を行う場合には、全てのメモリ３ａ〜３ｃからデータを読み出す必要があるため、メモリ３ａ〜３ｃに対応するアドレス（例えば０００００００Ｈ）がＰＬＤ２へ送信される。ＰＬＤ２はこのアドレスの上位２ｂｉｔの値「００」に基づいてＣＳ信号０〜２をアサートし、メモリ３ａ〜３ｃのデータを読み出す。
【００７４】
なお、図７に示されるアドレスのビット列と図２に示されるアドレスバスＡとの関係を補足すると以下の通りである。図２に示されるＣＰＵ１とＰＬＤ２との間におけるアドレスバスＡには、図７に示されるアドレスのビット列の内、下位２３ビットと上位２ビットが伝送されるが、ＰＬＤ２には上位２ビットの第１のアドレスのみ取り込まれ、下位２３ビットの第２のアドレスは、ＰＬＤ２を経由せずに直接メモリ３ａ〜３ｃに取り込まれるように構成してもよい。このように構成しても、ＰＬＤ２は、第１のアドレスの値に基づいて、メモリ３ａ〜３ｃに対するＣＳ信号０〜２を制御することができると共に、ＣＰＵ１からＰＬＤ２の間における第２のアドレス用の接続ピンを簡素化することが可能となる。
【００７５】
このように、本実施の形態にかかる多数決処理システムでは、ＰＬＤ２がアドレスの上位２ｂｉｔの値に基づいてメモリ３ａ〜３ｃへの同時アクセスと各メモリ３ａ〜３ｃへの個別アクセスとを判別可能に構成されている。すなわち、ＰＬＤ２がＣＰＵ１からのアドレスの上位２ビットを認識して、各メモリ３ａ〜３ｃへ個別にデータを書き込み、または、各メモリ３ａ〜３ｃ内のデータを個別あるいは同時に読み出すように構成されている。
【００７６】
なお、図２に示される多数決処理システムは、一例として３つのメモリ３ａ〜３ｃで構成されているが、これに限定されるものではなく、４つ以上のメモリで構成してもよい。具体的には、少なくともｎ個（ｎは３以上の整数）のメモリ３で構成した場合、メモリマップには１つのメモリの容量のｋ倍（ｋ＝ｎ＋１）のアドレス空間が割り当てられる。例えば、４つのメモリにて多数決処理を実行した場合、これらのメモリから読み出されたデータのうち、エラーとなった２個のデータのエラー内容が偶然に一致する可能性もある。ただし、このようなケースは希であるため、本実施の形態にかかる多数決処理には実質的な影響がないと見なすことが出来る。
【００７７】
なお、本実施の形態では、一例として１つのメモリ３の容量を８Ｍｂｉｔとして説明したが、これに限定されるものではない。
【００７８】
以上に説明したように、本実施の形態にかかる列車情報管理装置は、少なくとも３つのメモリ３ａ〜３ｃと、全てのメモリ３ａ〜３ｃにアクセスする第１のアドレスが割り当てられたＣＰＵ１と、ＣＰＵ１から出力された第１のアドレスを検知したとき、第１のアドレスと各メモリ３ａ〜３ｃに対応する第２のアドレスとを区別して、第２のアドレスに対応する同一のデータを各メモリ３ａ〜３ｃから読み出し、読み出されたデータ同士が一致するか否かの多数決結果をＣＰＵ１へ通知するＰＬＤ２とを備えるようにしたので、ＰＬＤ２によって多数決処理が行われることによって、メモリ３ａ〜３ｃから読み出されたデータの高冗長性および高信頼性を実現できるだけでなく、ＣＰＵ１の処理負担が軽減されＣＰＵ１の負荷が軽減される分だけ列車情報管理装置等の高機能化を図ることが可能である。従来技術には、データの高信頼化を図るために、ＥＣＣ方式によるエラー検出を行うものが存在するが、ＣＰＵで誤り訂正処理を行う必要があるためＣＰＵの負荷を軽減することが困難であった。本実施の形態によれば、ＰＬＤ２で多数決処理が実行されるため、列車情報などを管理するＣＰＵ１の処理負担を軽減することが可能である。さらに、ＰＬＤ２は、基板への実装後でも内部論理回路を定義あるいは変更することができるため、例えば前述した試験データを組み替える場合、従来では多数決処理回路（例えばＣＰＵなど）そのものを交換しなければならないが、本実施の形態では多数決処理回路を交換することなく試験データの組み替えが可能である。
【００７９】
また、本実施の形態にかかる列車情報管理装置は、ＰＬＤ２の健全性を確認する自己診断機能を備えるようにしたので、多数決処理におけるデータ不一致が、メモリ３のビット化けなどに起因するものであるか、多数決回路に起因するものであるのかを識別することが可能である。従来技術では、このような機能がないために、データ不一致の要因を特定するためには例えば多数決処理回路が搭載されている基板を回収するなどの多大な労力を要していた。特に列車においては、列車情報管理装置車情報などにシステム障害が発生すると列車の円滑な運行の妨げとなるため、システムの高信頼性が要求される。本実施の形態にかかる列車情報管理装置は、例えば列車の運行前の始業点検において、本実施の形態にかかる自己診断機能により、多数決処理でデータ不一致となった要因を短時間で特定できるため、列車の円滑な運行に寄与することができる。
【００８０】
なお、本実施の形態では、図２に示される多数決処理システムを列車情報管理装置に適用した例を説明したが、本実施の形態にかかる多数決処理システムは列車情報管理装置以外のハードウェア（例えば情報処理システム）にも可能である。
【００８１】
なお、本実施の形態にかかる列車情報管理装置は、本発明の内容の一例を示すものであり、更なる別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、一部を省略する等、変更して構成することも可能であることは無論である。
【産業上の利用可能性】
【００８２】
以上のように、本発明は、多数決機能を備えた列車情報管理装置に適用可能であり、特に、ＣＰＵの負荷を増大させることなく多数決処理を実行することができる発明として有用である。
【符号の説明】
【００８３】
１  ＣＰＵ
２  ＰＬＤ
３、３ａ、３ｂ、３ｃ  フラッシュメモリ
１０ａ、１０ｂ  車両
１１  中央装置
１２  端末装置
２０  車両間伝送路
２１  編成内伝送路
【図１】
0005465164.tif 000002
【図２】
0005465164.tif 000003
【図３】
0005465164.tif 000004
【図４】
0005465164.tif 000005
【図５】
0005465164.tif 000006
【図６】
0005465164.tif 000007
【図７】
0005465164.tif 000008