(57)【要約】      （修正有）【課題】状態情報を取得する周期を短くした場合であっても、異常状態を検知する処理の負荷を低減する。【解決手段】通信ノードは、他の通信ノードからの情報を格納する第１の記憶部と、第１の記憶部に格納した情報を格納する第２の記憶部と、第１の周期で、他の通信ノードから情報を取得し、該情報に基づいて異常が発生したかを判定し、異常が発生していないと判定した場合に第１の記憶部に該情報を格納し、異常が発生していると判定した場合に第１の記憶部に情報を格納する制御を停止し、異常であると判定した回数を計数するカウント値を増加させ、第１の周期よりも長い第２の周期で、他の通信ノードから情報を取得し、該情報に基づいて異常が発生したかを判定し、異常が発生していないと判定した場合にカウント値をクリアし、異常が発生したと判定した場合にカウント値に基づいて、第２の記憶部に第１の記憶部に格納した情報を格納する制御部とを有する。【選択図】図５
2015073190.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信ノードと、該第１の通信ノードと通信を行う第２の通信ノードとを有する通信システムであって、
前記第１の通信ノードは、
前記第２の通信ノードからの情報を格納する第１の記憶部と、
前記第１の記憶部に格納した情報を格納する第２の記憶部と、
第１の周期で、前記第２の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記第１の記憶部に該情報を格納し、異常が発生していると判定した場合に前記第１の記憶部に情報を格納する制御を停止するとともに、異常であると判定した回数を計数する異常検出カウント値を増加させ、
前記第１の周期よりも長い第２の周期で、前記第２の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記異常検出カウント値をクリアし、異常が発生したと判定した場合に前記異常検出カウント値に基づいて、前記第２の記憶部に前記第１の記憶部に格納した情報を格納する制御部と
を有する、通信システム。
【請求項２】
外部機器からの要求に応じて、前記第２の記憶部に格納された情報を出力するコネクタを有する、請求項１に記載の通信システム。
【請求項３】
複数の通信ノードを有する通信システムにおける１の通信ノードであって、
他の通信ノードからの情報を格納する第１の記憶部と、
前記第１の記憶部に格納した情報を格納する第２の記憶部と、
第１の周期で、前記他の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記第１の記憶部に該情報を格納し、異常が発生していると判定した場合に前記第１の記憶部に情報を格納する制御を停止するとともに、異常であると判定した回数を計数する異常検出カウント値を増加させ、
前記第１の周期よりも長い第２の周期で、前記他の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記異常検出カウント値をクリアし、異常が発生したと判定した場合に前記異常検出カウント値に基づいて、前記第２の記憶部に前記第１の記憶部に格納した情報を格納する制御部と
を有する、通信ノード。
【請求項４】
前記情報と、異常であると確定する条件と、前記情報を取得する時間とを紐付けたテーブル
を有し、
前記制御部は、前記テーブルを参照し、前記情報に基づいて異常が発生したか否かを判定する、請求項３に記載の通信ノード。
【請求項５】
前記第１の記憶部は、前記情報を複数格納し、
前記制御部は、異常が発生していないと判定した場合、前記第１の記憶部に格納されている情報のうち、古い情報を新しい情報に更新する、請求項３または４に記載の通信ノード。
【請求項６】
第１の通信ノードと、該第１の通信ノードと通信を行う第２の通信ノードとを有する通信システムにおける通信方法であって、
前記第１の通信ノードは、
第１の周期で、前記第２の通信ノードから情報を取得し、
該情報に基づいて異常が発生したか否かを判定し、
異常が発生していないと判定した場合に前記第２の通信ノードからの情報を格納する第１の記憶部に該情報を格納し、
異常が発生していると判定した場合に前記第１の記憶部に情報を格納する制御を停止するとともに、異常であると判定した回数を計数する異常検出カウント値を増加させ、
前記第１の周期よりも長い第２の周期で、前記第２の通信ノードから情報を取得し、
該情報に基づいて異常が発生したか否かを判定し、
異常が発生していないと判定した場合に前記異常検出カウント値をクリアし、
異常が発生したと判定した場合に前記異常検出カウント値に基づいて、前記第１の記憶部に格納した第１の情報を格納する第２の記憶部に前記第１の記憶部に格納した情報を格納する処理を実行する、通信方法。
【請求項７】
複数の通信ノードを有する通信システムにおける１の通信ノードが実行する通信方法であって、
第１の周期で、他の通信ノードから情報を取得し、
該情報に基づいて異常が発生したか否かを判定し、
異常が発生していないと判定した場合に前記他の通信ノードからの情報を格納する第１の記憶部に該情報を格納し、
異常が発生していると判定した場合に前記第１の記憶部に情報を格納する制御を停止するとともに、異常であると判定した回数を計数する異常検出カウント値を増加させ、
前記第１の周期よりも長い第２の周期で、前記他の通信ノードから情報を取得し、
該情報に基づいて異常が発生したか否かを判定し、
異常が発生していないと判定した場合に前記異常検出カウント値をクリアし、
異常が発生したと判定した場合に前記異常検出カウント値に基づいて、前記第１の記憶部に格納した情報を格納する第２の記憶部に前記第１の記憶部に格納した情報を格納する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関する。
【背景技術】
【０００２】
車両の状態に関する情報を監視し、該情報に基づいて車両の不具合を検知する技術が知られている。車両の不具合を検知した際の車両の状態に関する情報は、不揮発性の記憶媒体などに記憶される。不揮発性の記憶媒体などに記憶された情報は、不具合原因の検証に役立てられる。不具合原因を検証することは、自己診断（ダイアグノーシス）と呼ばれる場合もある。
【０００３】
車両の状態情報を取得し、その取得された情報に基づき車両における不具合の発生時点を特定し、その特定した不具合の発生時点を基準として不具合原因の検証に用いられる不具合原因検証用情報を特定する。その特定した不具合原因検証用情報が所定の記憶媒体に残存するようにその所定の記憶媒体を制御する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４５１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車両の状態情報を取得する処理と異常状態を検知する処理は所定の周期で行われる。車両の状態情報を取得するタイミングで異常状態を検知する処理を実行する場合、車両の状態情報を取得する周期が短くなるにしたがって、異常状態を検知する処理を実行する周期も短くなる。このため、異常状態を検知する処理の負荷が増大する。さらに、車両の状態情報を取得する処理などで生じるノイズによる影響により、異常状態を誤検知するおそれがある。
【０００６】
一方、異常状態を検知する処理のタイミングで車両の状態情報を取得する場合、車両の状態情報を取得する処理に遅れが生じるおそれがある。つまり、異常状態が検知された場合に取得される車両の状態情報は異常状態が検知された後に取得されるため異常を示すものであり、異常が発生したときの車両の状態情報を取得するのは難しい。
【０００７】
本発明は、状態情報を取得する周期を短くした場合であっても、異常状態を検知する処理の負荷を低減することである。
【課題を解決するための手段】
【０００８】
開示の一実施例の通信システムは、
第１の通信ノードと、該第１の通信ノードと通信を行う第２の通信ノードとを有する通信システムであって、
前記第１の通信ノードは、
前記第２の通信ノードからの情報を格納する第１の記憶部と、
前記第１の記憶部に格納した情報を格納する第２の記憶部と、
第１の周期で、前記第２の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記第１の記憶部に該情報を格納し、異常が発生していると判定した場合に前記第１の記憶部に情報を格納する制御を停止するとともに、異常であると判定した回数を計数する異常検出カウント値を増加させ、
前記第１の周期よりも長い第２の周期で、前記第２の通信ノードから情報を取得するとともに、該情報に基づいて異常が発生したか否かを判定し、異常が発生していないと判定した場合に前記異常検出カウント値をクリアし、異常が発生したと判定した場合に前記異常検出カウント値に基づいて、前記第２の記憶部に前記第１の記憶部に格納した情報を格納する制御部と
を有する。
【発明の効果】
【０００９】
開示の実施例によれば、状態情報を取得する周期を短くした場合であっても、異常状態を検知する処理の負荷を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】通信システムの一実施例を示す図である。
【図２】第１の通信ノードの一実施例を示す図である。
【図３】テーブルの一実施例を示す図である。
【図４】第１の通信ノードの一実施例を示す機能ブロック図である。
【図５】通信システムの動作の一実施例を示す図である。
【図６】通信システムの動作の一実施例を示すフローチャートである。
【図７】通信システムの動作の一実施例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。以下で説明する実施例は一例に過ぎず、本発明が適用される実施の形態は、以下の実施例に限られない。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００１２】
＜実施例＞
＜通信システム＞
図１は、通信システムの一実施例を示す。
【００１３】
通信システムは、第１の通信ノード１００と、第２の通信ノード２００と、第３の通信ノード３００とを備える。通信システムの一実施例は、３台の通信ノードを備える。通信システムが、１台−２台の通信ノードを備えるようにしてもよいし、４台以上の通信ノードを備えるようにしてもよい。
【００１４】
第１の通信ノード１００、第２の通信ノード２００、第３の通信ノード３００は、車両などの移動体に搭載される。第１の通信ノード１００、第２の通信ノード２００、第３の通信ノード３００は車両に搭載され、車載LANを構成する。車載LANの一実施例は、LIN(Local Interconnect Network)、CAN(Controller Area Network)、FlexRay、Ethernet（登録商標）である。第１の通信ノード１００がマスターノードとして機能し、第２の通信ノード２００および第３の通信ノード３００がスレーブノードとして機能してもよい。
【００１５】
また、車両には、外部機器接続用コネクタ４００が搭載される。外部機器接続用コネクタ４００は、外部機器と通信システムとを接続する。外部機器接続用コネクタ４００は、データリンクコネクタ(DLC: Data Link Connector)である。
【００１６】
第１の通信ノード１００と、第２の通信ノード２００と、第３の通信ノード３００と、外部機器接続用コネクタ４００との間は、通信バス５０により有線接続される。
【００１７】
通信システムの一実施例は、第１の通信ノード１００が電子制御ユニットであり、第２の通信ノード２００および第３の通信ノード３００がセンサ、アクチュエータなどである。第２の通信ノード２００および第３の通信ノード３００が電子制御ユニットなどであってもよい。第１の通信ノード１００がセンサ、アクチュエータなどであってもよい。例えば、第１の通信ノード１００がエアコンの制御機能を有し、第２の通信ノード２００および第３の通信ノード３００が温度センサ、湿度センサなどのセンサであってもよい。
【００１８】
電子制御ユニットの一実施例は、MG-ECU(Motor Generator)-ECU、FCDC(Fuel Cell Direct Current)-ECUである。電子制御ユニットが、MG-ECU、FCDC-ECU以外のECUであってもよい。
【００１９】
センサの一実施例は、水温センサ、各種圧力センサ、車速センサ、電圧センサ、Gセンサ、ヨーレートセンサ、アクセル開度センサ、スロットル開度センサ、シフトポジションスイッチなどである。センサが、これら以外のセンサであってもよい。
【００２０】
また、第１の通信ノード１００、第２の通信ノード２００および第３の通信ノード３００のそれぞれに複数のシステムが内蔵されてもよい。例えば、第１の通信ノード１００が、他の通信ノード（図示無し）との間で通信を行うようにしてもよい。また、第１の通信ノード１００が、システムの制御を実行してもよい。
【００２１】
第２の通信ノード２００および第３の通信ノード３００についても第１の通信ノードと同様に、他の通信ノード（図示無し）との間で通信を行うようにしてもよいし、システムの制御を実行してもよい。
【００２２】
第１の通信ノード１００は、第２の通信ノード２００および第３の通信ノード３００の一方または両方から、状態情報を取得する。状態情報は、車両に搭載されるセンサによる検出値である。第１の通信ノード１００は、第２の通信ノード２００および第３の通信ノード３００の一方または両方による割込みにより状態情報を取得するのが好ましい。第２の通信ノード２００および第３の通信ノード３００が、所定の周期で、第１の通信ノード１００へ状態情報を通知するようにしてもよい。
【００２３】
第１の通信ノード１００は、第１の周期で、第２の通信ノード２００および第３の通信ノード３００の一方または両方から状態情報を取得し、取得した状態情報が異常を示すものであるか否かを判定する。第１の通信ノード１００は、状態情報が異常を示すものでない場合、該状態情報を格納する。
【００２４】
第１の通信ノード１００は、直近に異常を示すものでないと判定した状態情報に加え、過去に異常を示すものでないと判定した状態情報を格納する。第１の通信ノード１００の一実施例は、直近に異常を示すものでないと判定した状態情報に加え、過去に異常を示すものでないと判定した２回分の状態情報を格納する。直近に異常を示すものでないと判定した状態情報と過去に異常を示すものでないと判定した状態情報とを併せて予兆フリーズフレームデータ(FFD: Freeze Frame Data)という。以下、「予兆フリーズフレームデータ」を「予兆データ」という。
【００２５】
つまり、第１の通信ノード１００の一実施例は、予兆データとして、３回分の状態情報を格納する。第１の通信ノード１００は、予兆データとして、過去に異常を示すものでないと判定した１回分の状態情報を格納するようにしてもよいし、４回分以上の状態情報を格納するようにしてもよい。
【００２６】
第１の通信ノード１００は、状態情報が異常を示すものであると判定した場合、該状態情報を格納しない。つまり、状態情報の更新を行わない。さらに、第１の通信ノード１００は、状態情報が異常を示すものであると判定した後に、状態情報を格納する処理を停止する。さらに、第１の通信ノード１００は、状態情報が異常であると判定した回数をカウントするための異常検出カウント値を増加させる。異常検出カウント値は、異常であると判定した状態情報の計数値である。状態情報が異常を示すものである場合には、状態情報の更新がなされないため、予兆データとして、直近に取得した状態情報を除く過去３回分の正常な、つまり異常を示すものであると判定されていない状態情報が格納される。
【００２７】
また、第１の通信ノード１００は、第２の周期で、自己診断処理を行う。第２の周期は、第１の周期よりも長い時間である。自己診断処理を実行する際に、第２の通信ノード２００および第３の通信ノード３００の一方または両方による割込みにより状態情報を取得し、該状態情報が異常を示すものであるか否かを判定する。第２の通信ノード２００および第３の通信ノード３００が、所定の周期で、第１の通信ノード１００へ状態情報を通知するようにしてもよい。
【００２８】
第１の通信ノード１００は、第２の通信ノード２００および第３の通信ノード３００の一方または両方から取得した状態情報が異常を示すものでない場合、該状態情報を格納するとともに、異常検出カウント値をクリアする。
【００２９】
第１の通信ノード１００は、第２の通信ノード２００および第３の通信ノード３００の一方または両方から取得した状態情報が異常を示すものである場合、該状態情報を格納せず、異常検出カウント値を増加させる。
【００３０】
さらに、第１の通信ノード１００は、異常検出カウント値に基づいて、格納している状態情報、つまり予兆データを故障判断データとして記憶するか否かを判定する。第１の通信ノード１００は、異常検出カウント値が故障判断データ記憶閾値以上である場合、格納している状態情報を故障判断データとして記憶する。また、第１の通信ノード１００は、異常検出カウント値が故障判断データ記憶閾値未満である場合、格納している状態情報を故障判断データとして記憶しない。この場合、状態情報は、予兆データとして格納されたままとなる。
【００３１】
外部機器接続用コネクタ４００には、車両の外部から、診断機５００などの様々なサービスツールが接続される。診断機５００の一実施例は、故障箇所検出装置である。故障箇所検出装置は車両外の故障判断ツールにより構成してもよい。故障判断ツールの一実施例は、サービス部のダイアグツールである。
【００３２】
通信システムの一実施例は、外部機器接続用コネクタ４００に診断機５００が接続される。診断機５００以外のサービスツールが接続される場合についても適用できる。
【００３３】
診断機５００の一実施例は、外部機器接続用コネクタ４００を介して、車両と接続される。診断機５００は、インターフェース(I/F: interface)５０２と、CPU５０４とを有する。
【００３４】
インターフェース５０２は、第１の通信ノード１００からのデータを受信する。例えば、インターフェース５０２は、第１の通信ノード１００から故障判断データを受信する。
【００３５】
また、インターフェース５０２は、第１の通信ノード１００を介して、第２の通信ノード２００および第３の通信ノード３００との間で通信を行うようにしてもよい。
【００３６】
インターフェース５０２は、第２の通信ノード２００および第３の通信ノード３００から受信したデータをCPU５０４に入力する。
【００３７】
CPU５０４は、インターフェース５０２と接続される。CPU５０４は、インターフェース５０２からのデータに所定の処理を行う。CPU５０４は、インターフェース５０２からのデータを出力する処理を実行してもよい。
【００３８】
第１の通信ノード１００は、第２の通信ノード２００および第３の通信ノード３００と診断機５００との間の通信を中継するゲートウエイ(GW: Gateway)としての機能を有していてもよい。この場合、第１の通信ノード１００は、中継装置と呼ばれてもよい。
【００３９】
＜第１の通信ノード１００＞
図２は、第１の通信ノード１００の一実施例を示す。図２には、主に、第１の通信ノード１００のハードウエア構成が示される。
【００４０】
第１の通信ノード１００は、マイクロコントローラ(Microcontroller)１０２を備える。マイクロコントローラ１０２は、CPU１０４と、ROM１０６と、第１の記憶装置１１２とを有し、CPU１０４と、ROM１０６と、第1の記憶装置１１２は通信バスを介して相互に接続される。
【００４１】
また、第１の通信ノード１００は、第２の記憶装置１１４と、トランシーバ１１６とを備え、第２の記憶装置１１４およびトランシーバ１１６は、マイクロコントローラ１０２と接続される。
【００４２】
第１の通信ノード１００が２個以上のトランシーバを有するようにしてもよい。また、第１の通信ノード１００が２個以上のマイクロコントローラを有するようにしてもよい。
【００４３】
CPU１０４は、車両の制御を実行する。車両の制御の一実施例は、CPU１０４は、第１の周期で、第２の通信ノード２００および第３の通信ノード３００の一方または両方から状態情報を取得し、該状態情報に基づいて、異常が発生したか否かを判定する。状態情報に基づいて、車両に異常が発生したか否かを判定するようにしてもよいし、車両の所定の部位（部分）に異常が発生したか否かを判定するようにしてもよい。
【００４４】
CPU１０４は、異常が発生していないと判定した場合には第１の記憶装置１１２に該状態情報を格納し、異常が発生したと判定した場合には該状態情報を格納せず、異常検出カウント値を増加させる。
【００４５】
また、CPU１０４は、第２の周期で、自己診断処理を行う。CPU１０４は、第２の通信ノード２００および第３の通信ノード３００の一方または両方から状態情報を取得し、該状態情報に基づいて、異常が発生しているか否かを判定する。状態情報に基づいて、車両に異常が発生したか否かを判定するようにしてもよいし、車両の所定の部位（部分）に異常が発生したか否かを判定するようにしてもよい。
【００４６】
CPU１０４は、異常が発生していないと判定した場合には第１の記憶装置１１２に該状態情報を格納し、故障検出カウント値をクリアする。
【００４７】
また、CPU１０４は、異常が発生していると判定した場合には該状態情報を格納せず、異常検出カウント値を増加させる。さらに、CPU１０４は、異常検出カウント値に基づいて、第１の記憶装置１１２に予兆データとして格納している状態情報を、故障判断データとして第２の記憶装置１１４に格納するか否かを判定する。CPU１０４は、異常検出カウント値が故障判断データ記憶閾値以上である場合、第１の記憶装置１１２に予兆データとして格納している状態情報を、故障判断データとして第２の記憶装置１１４に格納する。また、CPU１０４は、異常検出カウント値が故障判断データ記憶閾値未満である場合、故障判断データとして、第１の記憶装置１１２に格納している状態情報を格納しない。
【００４８】
ROM１０６は、CPU１０４が実行する車両の制御のためのプログラム１０８、異常が発生したと判断するための異常発生判断の基準を規定するテーブル１１０を格納する。
【００４９】
第１の記憶装置１１２は、CPU１０４により異常が発生していないと判定した状態情報を予兆データとして格納する。第１の記憶装置１１２は、例えば、SRAM(Static Random Access Memory)などの揮発性メモリで構成されるのが好ましい。第１の記憶装置１１２は、直近に異常を示すものでないと判定した状態情報と過去に異常を示すものでないと判定した２回分の状態情報を含む予兆データを格納する。第１の記憶装置１１２は、リングバッファで構成するのが好ましい。この場合、リングバッファに３回分の状態情報が格納された状態で新たに状態情報を格納する場合、最も古い状態情報が新たな状態情報に更新される。つまり、最も古い状態情報が削除され、この削除された部分に新たな状態情報が格納される。
【００５０】
第２の記憶装置１１４は、マイクロコントローラ１０２と接続される。第２の記憶装置１１４は、故障判断データを格納する。第２の記憶装置１１４は、EEPROM(Electrically Erasable Programmable Read-Only Memory)などの不揮発性メモリで構成されるのが好ましい。
【００５１】
トランシーバ１１６は、マイクロコントローラ１０２と接続される。トランシーバ１１６は、マイクロコントローラ１０２から入力されたデータを通信バス５０に送信し、通信バス５０からのデータをマイクロコントローラ１０２に入力する。
【００５２】
＜テーブル１１０＞
図３は、テーブル１１０の一実施例を示す。
【００５３】
テーブル１１０の一実施例は、第２の通信ノード２００および第３の通信ノード３００からの状態情報を、異なる情報として取り扱う。第２の通信ノード２００および第３の通信ノード３００からの状態情報を不具合の種類毎に分類し、不具合の種類毎に、状態情報を異なる情報として取り扱うようにしてもよい。この場合、不具合の種類は、自己診断の種類であってもよい。
【００５４】
図３には、ダイアグの名称（ダイアグ名）と、異常確定条件と、予兆検出の範囲が格納される。
【００５５】
ダイアグ名は、不具合などの異常の種類を示す。不具合は、DTC(Diagnosis Trouble Code:故障コード)として取り扱うようにしてもよい。ダイアグ毎に、異なる異常発生判断の基準が格納される。異常確定条件は、ダイアグで異常と判定するための基準である。予兆検出の範囲は、予兆データを取得する時間を示す。
【００５６】
図３には、一例として、ダイアグ名がFINV異常、FCV異常、OVH異常およびLVL異常について示される。FINV異常、FCV異常、OVH異常およびLVL異常以外のダイアグ名が格納されてもよい。FINVはインバータ出力周波数を示す。FINV異常はインバータ異常状態を示す。FCV異常は昇圧コンバータ異常状態を示し、OVH異常は出力電圧(VH)の過電流状態を示し、LVL異常は入力電圧(VL)の低電圧状態を示す。
【００５７】
ダイアグ名がFINV異常である場合、異常確定条件は走行IPM(Interior Parmanent Magnet)が過電流や過熱状態となってから100ms継続することであり、予兆検出はFINV状態検出時である。例えば、FINV異常である場合に走行IPMが過電流であることを判定するFINV異常電流判定閾値や走行IPMが加熱状態であることを判定するFINV異常温度判定閾値などの異常判定閾値が設定される。
【００５８】
また、ダイアグ名がFCV異常である場合、異常確定条件は昇圧IPMが過電流や過熱状態となってから100ms継続することであり、予兆検出はFCV状態検出時である。例えば、FCV異常である場合に昇圧IPMが過電流であることを判定するFCV異常電流判定閾値や昇圧IPMが加熱状態であることを判定するFCV異常温度判定閾値などの異常判定閾値が設定される。
【００５９】
また、ダイアグ名がOVH異常である場合、異常確定条件は昇圧IPMが過電圧状態となってから100ms継続することであり、予兆検出はOHV状態検出時である。例えば、OVH異常である場合に昇圧IPMが過電流であることを判定するOVH異常電流判定閾値や昇圧IPMが加熱状態であることを判定するOVH異常温度判定閾値などの異常判定閾値が設定される。
【００６０】
また、ダイアグ名がLVL異常である場合、異常確定条件は昇圧IPMが低電圧状態となってから100ms継続することであり、予兆検出はLVL状態検出時である。例えば、LVL異常である場合に昇圧IPMが過電流であることを判定するLVL異常電流判定閾値や昇圧IPMが加熱状態であることを判定するLVL異常温度判定閾値などの異常判定閾値が設定される。
【００６１】
通信システムが搭載される車両が燃料電池車である場合には、FCV異常の代わりにFFCV異常が格納され、OVH異常の代わりにFOVH異常が格納され、LVL異常の代わりにFLVL異常が格納される。さらに、燃料電池車の場合には、FFCV異常を判定する際に、素子毎に異常判定が実行される。具体的には、FFCV異常を判定する際に、U相、V相、W相、X相などの４相について異常判定が実行される。
【００６２】
なお、各ダイアグ名に関して１つの情報に基づいて異常であるか否かを判定してもよいし、複数の情報に基づいて異常であるか否かを判定してもよい。
【００６３】
＜第１の通信ノード１００の機能＞
図４は、第１の通信ノード１００の一実施例を示す機能ブロック図である。図４の機能ブロック図により表される機能は、主に、マイクロコントローラ１０２により実行される。つまり、マイクロコントローラ１０２は、異常判定部１０４２、状態情報更新部１０４４、自己診断処理部１０４８として機能する。
【００６４】
マイクロコントローラ１０２に搭載されたCPU１０４が、ROM１０６に記憶されたアプリケーションプログラムおよびCPU１０４に格納されたファームウェアの一方または両方に従って、異常判定部１０４２、状態情報更新部１０４４、自己診断処理部１０４８としての機能が実行される。
【００６５】
CPU１０４は、異常判定部１０４２として機能する。異常判定部１０４２には、第２の通信ノード２００および第３の通信ノード３００の一方または両方からの状態情報が入力される。
【００６６】
異常判定部１０４２は、第１の周期で、状態情報に基づいて、異常が発生したか否かを判定する。状態情報に基づいて、車両に異常が発生したか否かを判定するようにしてもよいし、車両の所定の部位に異常が発生したか否かを判定するようにしてもよい。
【００６７】
異常判定部１０４２は、ROM１０６に格納されたテーブル１１０に基づいて、異常が発生したか否かを判定する。例えば、異常判定部１０４２は、各ダイアグについて、状態情報が異常確定条件を満たす場合に異常が発生したと判定する。例えば、ダイアグ名がFINV異常である場合には、異常判定部１０４２は、テーブル１１０に基づいて、状態情報がFINV異常電流判定閾値やFINV異常温度判定閾値などの異常判定閾値以上である場合に状態情報が異常であると判定する。
【００６８】
ダイアグ名がFCV異常、OVH異常、LVL異常である場合についても同様に、状態情報が異常判定閾値以上である場合に状態情報が異常であると判定する。異常判定部１０４２は、異常が発生したと判定した場合、状態情報更新部１０４４へ状態情報を入力するとともに、状態情報更新部１０４４へ異常が発生したか否かを通知する。
【００６９】
異常判定部１０４２は、第１の周期で異常が発生したか否かの判定の結果、異常が発生したと判定した場合、その後の第１の周期での状態情報の取得と、異常が発生したか否かを判定する処理を停止する。
【００７０】
異常判定部１０４２は、第２の周期で、状態情報に基づいて、異常が発生したか否かを判定する。状態情報に基づいて、車両に異常が発生したか否かを判定するようにしてもよいし、車両の所定の部位に異常が発生したか否かを判定するようにしてもよい。
【００７１】
異常判定部１０４２は、ROM１０６に格納されたテーブル１１０を参照し、異常が発生したか否かを判定する。例えば、異常判定部１０４２は、各ダイアグについて、異常確定条件を満たす場合に異常が発生したと判定する。例えば、ダイアグ名がFINV異常である場合には、異常判定部１０４２は、テーブル１１０に基づいて、状態情報がFINV異常電流判定閾値やFINV異常温度判定閾値などの異常判定閾値以上である場合に状態情報が異常であると判定する。ダイアグ名がFCV異常、OVH異常、LVL異常である場合についてもダイアグ名がFINV異常である場合と同様に状態情報が異常判定閾値以上である場合に状態情報が異常であると判定する。異常判定部１０４２は、自己診断処理部１０４８へ状態情報を入力するとともに、自己診断処理部１０４８へ異常が発生したか否かを通知する。
【００７２】
異常判定部１０４２は、第２の周期での異常が発生したか否かの判定の結果、異常が発生していないと判定した場合、その後の第１の周期での状態情報の取得と、異常が発生したか否かを判定する処理を再開する。
【００７３】
CPU１０４は、状態情報更新部１０４４として機能する。状態情報更新部１０４４は、異常判定部１０４２と接続される。状態情報更新部１０４４は、異常検出カウント値を格納するカウンタ１０４６を有する。
【００７４】
状態情報更新部１０４４は、異常判定部１０４２から異常が発生しないことが通知された場合に、第１の記憶装置１１２へ、異常判定部１０４２からの状態情報を格納する。また、状態情報更新部１０４４は、異常判定部１０４２から異常が発生したことが通知された場合に、第１の記憶装置１１２へ、異常判定部１０４２からの状態情報を格納せず、カウンタ１０４６の異常検出カウント値を増加させる。
【００７５】
CPU１０４は、自己診断処理部１０４８として機能する。自己診断処理部１０４８は、異常判定部１０４２、状態情報更新部１０４４と接続される。自己診断処理部１０４８は、異常判定部１０４２から異常が発生しないことが通知された場合に、第１の記憶装置１１２へ、異常判定部１０４２からの状態情報を格納するとともに、状態情報更新部１０４４へ、カウンタ１０４６の異常検出カウント値をクリアすることにより初期値へ戻すように命令する。
【００７６】
また、自己診断処理部１０４８は、異常判定部１０４２から異常が発生したことが通知された場合に、第１の記憶装置１１２へ、状態情報を格納しない。自己診断処理部１０４８は、異常判定部１０４２から異常が発生したことが通知された場合に、状態情報更新部１０４４へ、カウンタ１０４６の異常検出カウント値を問い合わせる。自己診断処理部１０４８は、カウンタ１０４６の異常検出カウント値を増加させる。
【００７７】
さらに、自己診断処理部１０４８は、異常検出カウント値が故障判断データ記憶閾値以上である場合に、第１の記憶装置１１２に予兆データとして格納されている状態情報を取得する。故障判断データ記憶閾値は、故障判断データとして状態情報を格納するか否かを判断するための異常検出カウント値の閾値である。例えば、故障判断データ記憶閾値は、例えば、第2の周期と、テーブル１１０の異常確定条件に基づいて設定される。具体的には、テーブル１１０の異常確定条件には、走行IPMが所定の状態（過電流や過熱状態、過電圧状態、低電圧状態）になってから100ms継続した場合であることが設定されている。このため、第２の周期が10msである場合には、10回継続して異常が検出された場合に異常検出カウント値が故障判断データ記憶閾値以上となり、自己診断処理部１０４８は、第１の記憶装置１１２に格納されている状態情報を取得する。自己診断処理部１０４８は、第２の記憶装置１１４へ、第１の記憶装置１１２から取得した状態情報を格納する。
【００７８】
＜第１の通信ノード１００の動作＞
図５は、第１の通信ノード１００の動作の一例を示す。図５には、状態情報の取得タイミングと、故障判断データの格納処理を示す。さらに、図５には、状態情報の一例としてセンサ値と、異常検出カウント値とが示される。図５において横軸は時間である。
【００７９】
第１の通信ノード１００は、第１の周期でセンサ値が異常を示すものであるか否かを判定し、センサ値が異常を示すものでない場合に格納する。第１の周期は、1ms程度の時間であるのが好ましい。
【００８０】
さらに、第１の通信ノード１００は、第２の周期で、センサ値が異常を示すものであるか否かを判定するとともに、自己診断処理のために故障診断データを格納するか否かの判断を行う。第２の周期は、第１の周期よりも長い時間であり、10ms程度であるのが好ましい。
【００８１】
第１の通信ノード１００は、第１の周期でセンサ値が異常を示すものであるか否かを判定するとともに（（１）、（２）、（３））、第２の周期で自己診断処理を行う（４）。
【００８２】
第１の通信ノード１００は、第1の周期でセンサ値が異常を示すものであるか否かを判定し、第２の周期で自己診断処理を継続する。例えば、第１の通信ノード１００は、時刻Ｔでセンサ値が異常を示すものであると判定する（５）。時刻Ｔでは、第１の記憶装置１１２には、時刻Ｔより1msおよび2ms前に格納されたセンサ値が格納される。
【００８３】
第１の通信ノード１００は、（５）でセンサ値が異常を示すものであると判定した場合、第１の記憶装置１１２へのセンサ値の更新を停止するとともに、異常検出カウント値を増加させる。
【００８４】
第１の通信ノード１００は、第1の周期でセンサ値が異常を示すものであるか否かを判定する処理を中止している場合であっても、第２の周期で実行する自己診断処理は継続する（６）。
【００８５】
第１の通信ノード１００は、第２の周期でセンサ値が異常を示すものであるか否かを判定した結果、センサ値が異常を示すものであると判定しない場合には、第１の記憶装置１１２へセンサ値を格納する処理を再開するとともに、異常検出カウント値をクリアする。
【００８６】
図５に示す例では、第１の通信ノード１００は、第２の周期でセンサ値が異常を示すものであるか否かを判定した結果、センサ値が異常を示すのであると判定し続けた場合について示す。この場合、第１の通信ノード１００は、第１の記憶装置１１２へセンサ値を格納せず、異常検出カウント値を増加させる。第１の通信ノード１００は、第1の周期でセンサ値が異常を示すものであるか否かを判定する処理の中止を継続する。
【００８７】
第１の通信ノード１００は、第２の周期でセンサ値が異常を示すものであるか否かを判定する処理を継続した結果、センサ値が異常を示すものであると判定し、異常検出カウント値が故障判断データ記憶閾値以上になった場合、自己診断において異常を確定する（７）。
【００８８】
自己診断において異常を確定した場合、第1の通信ノード１００は、第１の記憶装置１１２に格納している状態情報を第２の記憶装置１１４へ格納する。
【００８９】
第２の記憶装置１１４へ格納された状態情報は、車両の外部機器接続用コネクタ４００に、診断機５００が接続されることにより、診断機５００へ転送される。
【００９０】
図６は、第１の通信ノード１００の動作（その１）の一実施例を示す。図６は、第１の周期毎に実行される処理を示す。
【００９１】
ステップＳ６０２では、第１の通信ノード１００の異常判定部１０４２は、第２の通信ノード２００および第３の通信ノード３００の両方または一方から取得したセンサ値が異常判定閾値よりも大きい値であるか否かを判定する。
【００９２】
ステップＳ６０４では、センサ値が異常判定閾値よりも大きい値であると判定した場合、第１の通信ノード１００は、第１の記憶装置１１２へのセンサ値の更新を停止する。つまり、センサ値が異常判定閾値よりも大きい値である場合には、センサ値が異常であると判定される。この場合、状態情報更新部１０４４は、第１の記憶装置１１２へセンサ値を格納しないことによりセンサ値の更新を停止する。
【００９３】
ステップＳ６０６では、センサ値が異常判定閾値以下の値であると判定した場合、第１の通信ノード１００は、第１の記憶装置１１２のセンサ値を更新する。つまり、センサ値が正常であると判定した場合、状態情報更新部１０４４は、第１の記憶装置１１２へセンサ値を予兆データとして格納することによりセンサ値を更新する。例えば、第１の記憶装置１１２を構成するリングバッファに格納された状態情報のうち、最も古い状態情報を更新する。
【００９４】
図７は、第１の通信ノード１００の動作（その２）の一実施例を示す。図７は、第２の周期毎に実行される処理を示す。
【００９５】
ステップＳ７０２では、第１の通信ノード１００の異常判定部１０４２は、第２の通信ノード２００および第３の通信ノード３００から取得したセンサ値が異常判定閾値よりも大きい値であるか否かを判定する。
【００９６】
ステップＳ７０４では、センサ値が異常判定閾値よりも大きい値であると判定した場合、第１の通信ノード１００は、ダイアグ判定処理を行う。つまり、センサ値が異常であると判定した場合、状態情報更新部１０４４は、カウンタ１０４６の異常検出カウント値を増加させる。
【００９７】
ステップＳ７０６では、第１の通信ノード１００は、異常検出カウント値が故障判断データ記憶閾値より大きい値であるか否かを判定する。自己診断処理部１０４８は、異常検出カウント値が故障判断データ記憶閾値より大きい値であるか否かを判定することにより、故障判断データとして状態情報を記憶するか否かを判定する。異常検出カウント値が故障判断データ記憶閾値以下の値であると判定した場合、終了する。
【００９８】
ステップＳ７０８では、異常検出カウント値が故障判断データ記憶閾値より大きい値であると判定した場合、第１の通信ノード１００は、第１の記憶装置１１２に予兆データとして格納しているセンサ値を第２の記憶装置１１４へ格納する。つまり、自己診断処理部１０４８は、第１の記憶装置１１２に格納しているセンサ値を第２の記憶装置１１４へ格納する。
【００９９】
ステップＳ７１０では、センサ値が異常判定閾値以下の値であると判定した場合、第１の通信ノード１００は、ダイアグ判定処理を行う。つまり、センサ値が異常でないと判定した場合、状態情報更新部１０４４は、カウンタ１０４６の異常検出カウント値を零にすることによりクリアする。
【０１００】
ステップＳ７１２では、第１の通信ノード１００は、第１の記憶装置１１２のセンサ値の更新を再開する。
【０１０１】
通信システムの一実施例によれば、第１の周期で状態情報が異常を示すものであるか否かを判定し、第１の周期よりも長い第２の周期で自己診断処理を行うことにより、第１の周期とは独立して、第２の周期を制御できる。このため、状態情報が異常を示すものであるか否かを判定する周期を短くした場合でも、異常状態を検知する処理を行う第２の周期を長くできるため、処理負荷は増大しない。
【０１０２】
また、第１の周期で状態情報が異常を示すものである場合には状態情報の更新が停止され、その状態が故障判断データ記憶閾値により表される期間継続した場合に、故障診断データとして予兆データが記憶される。このため、異常状態が検知されるタイミングの状態情報を取得できる。
【０１０３】
以上、本発明は特定の実施例及び変形例を参照しながら説明されてきたが、各実施例及び変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例などを理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウエアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例などが包含される。
【符号の説明】
【０１０４】
５０  通信バス
１００  第１の通信ノード
１０２  マイクロコントローラ
１０４  CPU
１０６  ROM
１０８  プログラム
１１０  テーブル
１１２  第1の記憶装置
１１４  第2の記憶装置
１１６  トランシーバ
２００  第２の通信ノード
３００  第３の通信ノード
４００  外部機器接続用コネクタ
５００  診断機
５０２  ＩＦ
５０４  CPU
１０４２  異常判定部
１０４４  状態情報更新部
１０４６  カウンタ
１０４８  自己診断処理部
【図１】
2015073190.tif 000003
【図２】
2015073190.tif 000004
【図３】
2015073190.tif 000005
【図４】
2015073190.tif 000006
【図５】
2015073190.tif 000007
【図６】
2015073190.tif 000008
【図７】
2015073190.tif 000009