(57)【特許請求の範囲】
【請求項１】
複数の通信装置（２，３，４，５）が通信線（６）を介してデータ通信可能に接続され、複数の前記通信装置が、送信すべき前記通信装置を指定するヘッダを送信するとともに、前記ヘッダが送信された後に、前記ヘッダにより指定された前記通信装置がレスポンスを送信する通信システム（１）において、複数の前記通信装置が同期するためのクロック信号を前記通信線に送信するマスタ通信装置として機能する通信装置（２）であって、
前記通信システムを構成する複数の前記通信装置の中で前記マスタ通信装置以外の前記通信装置をスレーブ装置（３，４，５）とし、前記スレーブ装置で異常が発生しているか否かを判断する異常判断部（Ｓ１０〜Ｓ１００）と、
異常が発生していると前記異常判断部によって判断された前記スレーブ装置を異常スレーブ装置として、前記異常スレーブ装置が前記通信線に前記レスポンスを送信するのを妨げる妨害部（Ｓ２１０〜Ｓ２６０，Ｓ５１０，Ｓ５２０，Ｓ６１０）と
を備える通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記妨害部（Ｓ２１０〜Ｓ２６０）は、前記ヘッダを受信すると、前記ヘッダが前記異常スレーブ装置により送信されたものであるか否かを判断し、前記ヘッダが前記異常スレーブ装置により送信されたものであると判断した場合に、前記クロック信号の送信を予め設定された停止時間だけ停止することにより、前記異常スレーブ装置が前記通信線に前記レスポンスを送信するのを妨げる
ことを特徴とする通信装置。
【請求項３】
請求項１に記載の通信装置であって、
少なくとも前記ヘッダの送信順と、前記ヘッダが指定する前記スレーブ装置との対応関係が予め設定されたスケジュールテーブルに基づいて、前記ヘッダを送信するヘッダ送信部（Ｓ３１０〜Ｓ３８０）を更に備え、
前記妨害部（Ｓ５１０，Ｓ５２０，Ｓ６１０）は、前記異常スレーブ装置を指定する前記ヘッダを前記ヘッダ送信部が送信するのを禁止するように前記スケジュールテーブルを変更することにより、前記異常スレーブ装置が前記通信線に前記レスポンスを送信するのを妨げる
ことを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
前記スケジュールテーブルは、前記送信順および前記スレーブ装置に加えて更に、前記ヘッダの送信の可否を示す送信可否情報との対応関係が予め設定され、
前記妨害部は、前記異常スレーブ装置に対応している前記送信可否情報を、前記ヘッダの送信ができないことを示すように変更する
ことを特徴とする通信装置。
【請求項５】
複数の通信装置（２，３，４，５）が通信線（６）を介してデータ通信可能に接続され、複数の前記通信装置が、送信すべき前記通信装置を指定するヘッダを送信するとともに、前記ヘッダが送信された後に、前記ヘッダにより指定された前記通信装置がレスポンスを送信する通信システム（１）であって、
複数の前記通信装置のうち、複数の前記通信装置が同期するためのクロック信号を前記通信線に送信するマスタ通信装置として機能する１つの前記通信装置（２）が、
前記通信システムを構成する複数の前記通信装置の中で前記マスタ通信装置以外の前記通信装置をスレーブ装置（３，４，５）とし、前記スレーブ装置で異常が発生しているか否かを判断する異常判断部（Ｓ１０〜Ｓ１００）と、
異常が発生していると前記異常判断部によって判断された前記スレーブ装置を異常スレーブ装置として、前記異常スレーブ装置が前記通信線に前記レスポンスを送信するのを妨げる妨害部（Ｓ２１０〜Ｓ２６０，Ｓ５１０，Ｓ５２０，Ｓ６１０）とを備える
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタスレーブ方式で通信を行う通信装置および通信システムに関する。
【背景技術】
【０００２】
特許文献１に記載されているように、複数の通信装置がデータ通信可能に接続された通信システムにおいて、一つの通信装置をマスタノードとし、他の通信装置をスレーブノードとして、マスタスレーブ方式の通信を実行するものが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３１２０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スレーブノードに異常が発生した場合に、異常が発生しているスレーブノード（以下、異常スレーブノード）を停止させることは困難であり、さらに、正常なスレーブノードは異常スレーブノードを特定することができない。このため、正常なスレーブノードは、異常スレーブノードにより送信された信頼性の低いデータを使用してしまう可能性がある。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、異常スレーブノードにより送信されたデータをスレーブノードが使用してしまう事態の発生を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた第１発明は、通信システム（１）において、複数の通信装置（２，３，４，５）が同期するためのクロック信号を通信線（６）に送信するマスタ通信装置として機能する通信装置（２）である。通信システムは、複数の通信装置が通信線を介してデータ通信可能に接続され、複数の通信装置が、送信すべき通信装置を指定するヘッダを送信するとともに、ヘッダが送信された後に、ヘッダにより指定された通信装置がレスポンスを送信するシステムである。
【０００７】
そして、第１発明の通信装置（２）は、異常判断部（Ｓ１０〜Ｓ１００）と、妨害部（Ｓ２１０〜Ｓ２６０，Ｓ５１０，Ｓ５２０，Ｓ６１０）とを備える。
異常判断部は、通信システムを構成する複数の通信装置の中でマスタ通信装置以外の通信装置をスレーブ装置とし、スレーブ装置で異常が発生しているか否かを判断する。
【０００８】
妨害部は、異常が発生していると異常判断部によって判断されたスレーブ装置を異常スレーブ装置として、異常スレーブ装置が通信線にレスポンスを送信するのを妨げる。
このように構成された第１発明の通信装置は、異常スレーブ装置が通信線にレスポンスを送信するのを妨げるため、異常スレーブ装置により送信されたデータをスレーブ装置が使用してしまう事態の発生を抑制することができる。
【０００９】
また第２発明は、複数の通信装置が通信線を介してデータ通信可能に接続され、複数の通信装置が、送信すべき通信装置を指定するヘッダを送信するとともに、ヘッダが送信された後に、ヘッダにより指定された通信装置がレスポンスを送信する通信システムである。
【００１０】
そして、第２発明の通信システムは、複数の通信装置のうち、複数の通信装置が同期するためのクロック信号を通信線に送信するマスタ通信装置として機能する１つの通信装置が、異常判断部と、妨害部とを備える。
【００１１】
このように構成された第２発明の通信システムは、第１発明の通信装置を備えたものであり、第１発明の通信装置と同様の効果を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】通信システム１の構成を示すブロック図である。
【図２】通信バスで使用する伝送路符号の構成を示す説明図である。
【図３】バスを介して送受信されるフレームの構成を示す説明図である。
【図４】フレームを構成する各情報の内容とサイズを示す説明図である。
【図５】通常時における第１実施形態のノード２，３，４の動作を示すタイミングチャートである。
【図６】異常検出処理を示すフローチャートである。
【図７】クロック停止処理を示すフローチャートである。
【図８】第１実施形態のヘッダ送信処理を示すフローチャートである。
【図９】第１実施形態のスケジュールテーブルＳＴの構成を示す図である。
【図１０】異常時における第１実施形態のノード２，３，４の動作を示すタイミングチャートである。
【図１１】異常時における第１実施形態のマスタノードと異常スレーブノードの動作を示すタイミングチャートである。
【図１２】第２実施形態のスケジュールテーブルＳＴの構成を示す図である。
【図１３】テーブル設定処理を示すフローチャートである。
【図１４】第２実施形態のヘッダ送信処理を示すフローチャートである。
【図１５】異常時における第２実施形態のノード２，３，４の動作を示すタイミングチャートである。
【図１６】異常時における他の実施形態のマスタノードと異常スレーブノードの動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１３】
［第１実施形態］
以下に本発明の第１実施形態を図面とともに説明する。
本実施形態の通信システム１は、車両に搭載されており、図１に示すように、通信装置としてのノード２，３，４，５を備える。ノード２，３，４，５は、通信バス６を介して互いにデータ通信可能に接続される。
【００１４】
ノード２，３，４，５は、ＣＰＵ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏ及びこれらの構成を接続するバスラインなどからなる周知のマイクロコンピュータを中心に構成されている。マイクロコンピュータの各種機能は、ＣＰＵが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ＲＯＭが、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。
【００１５】
ノード２，３，４，５のうち、ノード２はマスタとして機能し、ノード３，４，５はスレーブとして機能する。以下、ノード２をマスタノード２ともいう。また、ノード３，４，５をそれぞれスレーブノード３，４，５ともいう。
【００１６】
通信バス６は、互いに異なる２つのノードからそれぞれハイレベルの信号とローレベルの信号とが同時に出力されると、通信バス６上の信号レベルがローレベルとなるように構成されている。以下、ハイレベルを単にハイ、ローレベルを単にローという。
【００１７】
そして、図２に示すように、通信バス６に流れる「０」または「１」の伝送路符号としては、ビットの途中で信号レベルがローからハイに変化するＰＷＭ符号が用いられる。ＰＷＭは、Pulse Width Modulationの略である。この伝送路符号では、ドミナントおよびレセッシブの何れかの状態となる二値の信号を、２種類のデューティ比で表現する。本実施形態では、ドミナントが「０」に対応し、レセッシブが「１」に対応する。
【００１８】
具体的には、ドミナントの方がレセッシブよりローの比率が大きくなるように設定されている。本実施形態では、ドミナントが１ビットの２／３の期間、レセッシブが１ビットの１／３の期間となるように設定されている。そして、通信バス６上でドミナントとレセッシブとが衝突した場合には、ドミナントが勝つようになっている。
【００１９】
ノード２，３，４，５による通信に使用される通信フレームは、図３に示すように、ヘッダとレスポンスにより構成されている。
ヘッダは、送信を許可するデータの「ＩＤ」を格納する。「ＩＤ」は、図４に示すように、フレームの種類を示す識別子でもある。例えば、ヘッダを成す８ビットのうち、７ビットが識別子として用いられ、残りの１ビットはパリティビットとして用いられる。
【００２０】
レスポンスは、図３と図４に示すように、ヘッダによって指定されたデータである「ＤＡＴＡ」以外に、４ビットの「ＤＬＣ」と、２ビットの「ＮＭ」と、２ビットの「ＣＴ」と、８ビットの「ＣＲＣ」とを含む。なお、「ＤＡＴＡ」は０〜１２バイトの範囲で可変である。
【００２１】
「ＤＬＣ」は、レスポンスに含まれる「ＤＡＴＡ」のデータ長を示す情報である。
「ＮＭ」は、ネットワークマネージメントのための情報であり、ウェイクアップパルス送信情報と、スリープ可否情報とにより構成されている。ウェイクアップパルス送信情報は、後述するウェイクアップパルスを送信したか否かを示す情報である。ウェイクアップパルス送信情報は、このウェイクアップパルス送信情報を含む通信フレームを送信したノードがウェイクアップパルスを送信した場合に、「１」に設定され、ウェイクアップパルスを送信していない場合に「０」に設定される。以下、ウェイクアップパルス送信情報をＷＵパルス送信情報という。
【００２２】
スリープ可否情報は、後述するスリープモードに遷移可能か否かを示す情報である。スリープ可否情報は、このスリープ可否情報を含む通信フレームを送信したノードにおいてスリープが許可されている場合に「１」に設定され、スリープが禁止されている場合に「０」に設定される。
【００２３】
「ＣＴ」は、フレームの連続性を示すカウンタ情報である。特定のヘッダに対するレスポンスについては、そのヘッダに対するレスポンスが送信される毎に、「ＣＴ」の値が所定のルールで更新される。例えば、あるヘッダに対するレスポンス内の「ＤＡＴＡ」が、重要なデータであって、受信する側でデータ抜けが起こると、実施する制御への影響が大きいデータである場合、そのレスポンスを送信するノード３は、送信時毎に「ＣＴ」の値を「０→１→２→３→０」というように更新する。レスポンスを受信する側において、その「ＣＴ」の値に基づき、データの抜けを検出できるようにするためである。
【００２４】
「ＣＲＣ」は、フレームのエラーをチェックするためのＣＲＣ符号である。ＣＲＣは、Cyclic Redundancy Checkの略である。
なお、ノード２，３，４，５がどのデータを送信するかは予め定められているため、ヘッダは、レスポンスを送信すべきノードを指定するための情報でもある。
【００２５】
ノード２〜５は、車両のバッテリ電圧を電源として動作する。ノード２〜５の動作モードとしては、ウェイクアップモードとスリープモードがある。ウェイクアップモードは、予め割り当てられた全ての機能を実行可能な通常の動作モードである。スリープモードは、消費電力を抑えるために一部の機能を停止した動作モードである。ノード２〜５は、スリープモードでは、通信バス６に信号を送信しない。全てのノード２〜５がスリープモードになることで、通信システム１全体がスリープ状態になる。
【００２６】
ノード２〜５は、スリープモードになっている場合に、自身に定められたウェイクアップ要因が発生すると、ウェイクアップする。つまり、スリープモードからウェイクアップモードに遷移する。そして、ウェイクアップ要因の発生によってウェイクアップしたスレーブノード３〜５は、通信バス６にウェイクアップパルスを送信する。またノード２〜５は、ウェイクアップパルスを受信することでウェイクアップする。マスタノード２は、ウェイクアップ要因の発生によって、後述のクロック信号を送信する。
【００２７】
マスタノード２は、ウェイクアップモードの場合に、予め定められた条件が成立すると、スリープモードに遷移し、通信バス６に信号を送信しない状態となる。
そしてマスタノード２は、スリープモードの場合に、自身のウェイクアップ要因あるいはスレーブノード３〜５からのウェイクアップパルスによってウェイクアップすると、そのウェイクアップ時から第１規定時間が経過した時点で、通信バス６へのクロック信号の送信を開始する。本実施形態において、クロック信号は、図２に示した伝送路符号の立ち下がりエッジ（すなわち、ビット境界となるエッジ）である。マスタノード２は、通信バス６に情報の信号を送信せずに、クロック信号だけを送信する場合には、図２に示したレセッシブの信号を繰り返し送信することとなる。
【００２８】
そしてマスタノード２は、ウェイクアップ時から上記第１規定時間よりも長い第２規定時間が経過すると、通信バス６へのヘッダの送信を開始する。マスタノード２から送信されるヘッダは複数種類あり、各ヘッダは予め定められたスケジュールで定期的に送信される。なお、マスタノード２がヘッダを送信している場合には、送信されるヘッダにおける各ビットの境界としての立ち下がりエッジが、スレーブノード３〜５においてクロック信号として扱われる。すなわち、マスタノード２は、通信バス６にクロック信号とヘッダ情報の両方を送信していることになる。
【００２９】
スレーブノード３〜５も、予め定められた条件が成立するとスリープモードに遷移する。例えば、スレーブノード３〜５は、スリープモードへの遷移を指示するスリープフレームを受信した場合、またはヘッダを受信しない連続時間が所定のエラー判定時間以上になった場合に、スリープモードに遷移する。なお、エラー判定時間は、上記第２規定時間よりも十分に長い。
【００３０】
そしてスレーブノード３〜５は、スリープモードの場合に、自身のウェイクアップ要因あるいは他のノードからのウェイクアップパルスによってウェイクアップすると、通信バス６に流れる信号の立ち下がりエッジをクロック信号として抽出するとともに、そのクロック信号に同期して通信動作を行う。
【００３１】
スレーブノード３〜５は、自身を指定するヘッダを受信すると、そのヘッダに対して送信すべきレスポンスを通信バス６に送信する。その際に、スレーブノード３〜５は、通信バス６から抽出したクロック信号に同期したタイミングで、受信データの復号化および送信データのＰＷＭ符号への符号化等を行う。
【００３２】
またノード２〜５は、レスポンスを送信する必要があるイベントが発生した場合に、自身を指定するヘッダを通信バス６に送信することにより、自律的にレスポンスを送信することができる。
【００３３】
例えば図５に示すように、マスタノード２が、スレーブノード４を指定するヘッダＨＤ１を通信バス６に送信すると、スレーブノード４が、ヘッダＨＤ１に対して送信すべきレスポンスＲＰ１を通信バス６に送信する。同様に、マスタノード２が、スレーブノード３を指定するヘッダＨＤ２を通信バス６に送信すると、スレーブノード３が、ヘッダＨＤ２に対して送信すべきレスポンスＲＰ２を通信バス６に送信する。また、スレーブノード４が、自身を指定するヘッダＨＤ３を通信バス６に送信すると、スレーブノード４が、ヘッダＨＤ３に対して送信すべきレスポンスＲＰ３を通信バス６に送信する。
【００３４】
このように構成された通信システム１において、マスタノード２は、後述する異常検出処理と、後述するクロック停止処理と、後述するヘッダ送信処理を実行する。なお、マスタノード２が実行する機能の一部または全部を、一つあるいは複数のＩＣ等によりハードウェア的に構成してもよい。
【００３５】
まず、異常検出処理の手順を説明する。異常検出処理は、マスタノード２の動作中において繰り返し実行される処理である。
異常検出処理が実行されると、マスタノード２のＣＰＵは、図６に示すように、まずＳ１０にて、監視タイマを起動する。この監視タイマは、例えば１００ｍｓ毎にインクリメントするタイマであり、起動されると、その値が０からインクリメントする。なお、「インクリメントする」とは、「１加算する」ことである。
【００３６】
そしてＳ２０にて、マスタノード２がウェイクアップしているか否かを判断する。ここで、マスタノード２がウェイクアップしていない場合には、Ｓ８０に移行する。一方、マスタノード２がウェイクアップしている場合には、Ｓ３０にて、スレーブノード３，４，５の何れかからレスポンスを受信したか否かを判断する。ここで、レスポンスを受信していない場合には、Ｓ３０の処理を繰り返すことにより、スレーブノード３，４，５の何れかからレスポンスを受信するまで待機する。
【００３７】
そして、スレーブノード３，４，５の何れかからレスポンスを受信すると、Ｓ４０にて、受信したレスポンスのＷＵパルス送信情報が「１」に設定されているか否かを判断する。ここで、ＷＵパルス送信情報が「０」に設定されている場合には、Ｓ８０に移行する。
【００３８】
一方、レスポンスのＷＵパルス送信情報が「１」に設定されている場合には、Ｓ５０にて、Ｓ３０で受信したレスポンスの送信元に対応して設けられたウェイクアップカウンタをインクリメントする。なお、ウェイクアップカウンタは、スレーブノード３，４，５のそれぞれに対応してマスタノード２のＲＡＭに設けられている。以下、ウェイクアップカウンタをＷＵカウンタという。
【００３９】
その後Ｓ６０にて、Ｓ３０で受信したレスポンスの送信元に対応して設けられたＷＵカウンタの値（以下、ＷＵ回数）が、予め設定された異常判定回数以上であるか否かを判断する。なお本実施形態では、異常判定回数は例えば１００回に設定されている。
【００４０】
ここで、ＷＵ回数が異常判定回数未満である場合には、Ｓ８０に移行する。一方、ＷＵ回数が異常判定回数以上である場合には、Ｓ７０にて、マスタノード２のＲＡＭに設けられている異常スレーブ情報に、Ｓ２０で受信したレスポンスの送信元を示す送信元情報を設定し、Ｓ８０に移行する。
【００４１】
そしてＳ８０に移行すると、＋Ｂ状態が継続しているか否かを判断する。なお、＋Ｂ状態は、イグニッション電源とアクセサリ電源がオフである状態である。
ここで、＋Ｂ状態が継続していない場合には、Ｓ１００に移行する。一方、＋Ｂ状態が継続している場合には、Ｓ９０にて、予め設定された監視時間が経過したか否かを判断する。具体的には、監視タイマの値が、監視時間に相当する値以上であるか否かを判断する。なお本実施形態では、監視時間は例えば６０分に設定されている。
【００４２】
ここで、監視時間が経過していない場合には、Ｓ３０に移行する。一方、監視時間が経過した場合には、Ｓ１００にて、スレーブノード３，４，５のそれぞれに対応するＷＵカウンタをリセットし、異常ウェイクアップ検出処理を一旦終了する。なお、「リセットする」とは、「０に設定する」ことである。
【００４３】
次に、クロック停止処理の手順を説明する。クロック停止処理は、マスタノード２の動作中において繰り返し実行される処理である。
クロック停止処理が実行されると、マスタノード２のＣＰＵは、図７に示すように、まずＳ２１０にて、ヘッダを受信したか否かを判断する。ここで、ヘッダを受信していない場合には、Ｓ２１０の処理を繰り返すことにより、ヘッダを受信するまで待機する。そして、ヘッダを受信すると、Ｓ２２０にて、受信したヘッダは、異常が発生しているスレーブノード（以下、異常スレーブノード）が送信したものであるか否かを判断する。具体的には、受信したヘッダに格納されている「ＩＤ」に基づいて、ヘッダを送信したスレーブノードを特定する。「ＩＤ」はスレーブ毎に固有な値を有するため、「ＩＤ」に基づいて、スレーブノードを特定することが可能である。さらに、「ＩＤ」に基づいて特定されたスレーブノードが異常スレーブ情報に設定されている場合に、受信したヘッダは異常スレーブノードが送信したものであると判断する。
【００４４】
ここで、異常スレーブノードが送信したヘッダではないと判断した場合には、クロック停止処理を一旦終了する。一方、異常スレーブノードが送信したヘッダであると判断した場合には、Ｓ２３０にて、クロック信号の送信を停止する。そしてＳ２４０にて、停止タイマを起動する。この停止タイマは、例えば１ビットタイム毎にインクリメントするタイマであり、起動されると、その値が０からインクリメントする。ビットタイムとは、１ビットを転送するために要する時間をいう。例えば、１０ビットタイムは、１０ビットを転送するために要する時間である。
【００４５】
次にＳ２５０にて、予め設定された停止時間が経過したか否かを判断する。具体的には、停止タイマの値が、停止時間に相当する値以上であるか否かを判断する。なお本実施形態では、停止時間は例えば１０ビットタイムに設定されている。
【００４６】
ここで、停止時間が経過していない場合には、Ｓ２５０の処理を繰り返すことにより、停止時間が経過するまで待機する。そして、停止時間が経過すると、Ｓ２６０にて、クロック信号の送信を開始し、クロック停止処理を一旦終了する。
【００４７】
次に、ヘッダ送信処理の手順を説明する。ヘッダ送信処理は、マスタノード２の動作中において繰り返し実行される処理である。
ヘッダ送信処理が実行されると、マスタノード２のＣＰＵは、図８に示すように、まずＳ３１０にて、送信順カウンタをインクリメントする。なお、送信順カウンタの初期値は０である。
【００４８】
そしてＳ３２０にて、送信順カウンタが示す送信順に対応するスレーブノードを、例えば図９に示すように予め設定されたスケジュールテーブルＳＴを参照することにより特定する。
【００４９】
本実施形態のスケジュールテーブルＳＴは、送信順情報と、対象スレーブ情報と、送信間隔情報との対応関係が設定されている。送信順情報は、ヘッダの送信順を示す。対象スレーブ情報は、ヘッダ送信の対象となるスレーブノードを示す。送信間隔情報は、ヘッダの送信間隔を示す。
【００５０】
本実施形態のスケジュールテーブルＳＴは、スレーブノード３を指定するヘッダを１番目に送信するように設定されている。そしてスケジュールテーブルＳＴは、１０００ｍｓが経過した後に、スレーブノード４を指定するヘッダを２番目に送信するように設定されている。スケジュールテーブルＳＴは、さらに２０００ｍｓが経過した後に、スレーブノード３を指定するヘッダを３番目に送信し、５００ｍｓが経過した後に、スレーブノード４を指定するヘッダを４番目に送信するように設定されている。スケジュールテーブルＳＴは、さらに５００ｍｓが経過した後に、スレーブノード５を指定するヘッダを５番目に送信するように設定されている。スケジュールテーブルＳＴは、さらに１０００ｍｓが経過した後に、１番目に戻り、スレーブノード３を指定するヘッダを送信するように設定されている。
【００５１】
Ｓ３２０の処理が終了すると、図８に示すように、Ｓ３３０にて、Ｓ３２０で特定したスレーブノードを指定するヘッダを送信する。さらにＳ３４０にて、送信順カウンタが示す送信順に対応するヘッダ送信間隔を、スケジュールテーブルＳＴを参照することにより特定する。
【００５２】
そしてＳ３５０にて、送信タイマを起動する。この送信タイマは、例えば１０ｍｓ毎にインクリメントするタイマであり、起動されると、その値が０からインクリメントする。
次にＳ３６０にて、Ｓ３４０で特定したヘッダ送信間隔が経過したか否かを判断する。具体的には、送信タイマの値が、Ｓ３４０で特定したヘッダ送信間隔に相当する値以上であるか否かを判断する。
【００５３】
ここで、ヘッダ送信間隔が経過していない場合には、Ｓ３６０の処理を繰り返すことにより、ヘッダ送信間隔が経過するまで待機する。そして、ヘッダ送信間隔が経過すると、Ｓ３７０にて、送信順カウンタが示す送信順が予め設定された最大送信順以上であるか否かを判断する。本実施形態では、スケジュールテーブルＳＴの送信順が１から５まで設定されているため、最大送信順は５である。
【００５４】
ここで、送信順が最大送信順未満である場合には、ヘッダ送信処理を一旦終了する。一方、送信順が最大送信順以上である場合には、Ｓ３８０にて、送信順カウンタをリセットし、ヘッダ送信処理を一旦終了する。
【００５５】
次に、このように構成されたマスタノード２の動作例を説明する。
例えば図１０に示すように、異常スレーブノードであるスレーブノード４がヘッダＨＤ１１を送信した場合には、マスタノード２は、クロック停止期間Ｔｃｓ１が示すように、クロック信号の送信を停止する。これにより、スレーブノード４によるヘッダ送信に起因したレスポンスＲＰ１１の送信を防止することができる。一方、異常スレーブノードではないスレーブノード３がヘッダＨＤ１２を送信した場合には、クロック動作期間Ｔｃｄ１が示すように、マスタノード２は、クロック信号の送信を継続する。これにより、スレーブノード３によるヘッダ送信に起因したレスポンスＲＰ１２の送信が行われる。
【００５６】
また図１１では、クロック動作期間Ｔｃｄ１１が示すように、クロック信号が送信されており、このときに、異常スレーブノードの送信端子ＴｘからヘッダＨＤ２１が送信されるとする。マスタノード２が通信バス６を介してヘッダＨＤ２１を受信すると、マスタノード２は、クロック停止期間Ｔｃｓ１１が示すように、１０ビットタイムが経過するまでクロック信号の送信を停止する。これにより、異常スレーブノードが、その受信端子Ｒｘを介してヘッダＨＤ２１を受信して、送信端子ＴｘからレスポンスＲＰ２１を送信する処理が実行されても、レスポンスＲＰ２１は通信バス６へ送信されず、規定時間が経過することで、エラーＥＲ１が示すように、エラーとなる。本実施形態の規定時間は、９ビットタイム以下に設定されている。
【００５７】
クロック信号の送信を停止してから１０ビットタイムが経過すると、マスタノード２は、クロック動作期間Ｔｃｄ１２が示すように、クロック信号を送信する。そして、ヘッダＨＤ２１が送信されてからＩＦＳが経過した後に、異常スレーブノードの送信端子ＴｘからヘッダＨＤ２２が送信されるとする。ＩＦＳは、Inter Frame Spaceの略であり、本実施形態では例えば２０ビットタイムに設定されている。
【００５８】
マスタノード２が通信バス６を介してヘッダＨＤ２２を受信すると、マスタノード２は、クロック停止期間Ｔｃｓ１２が示すように、１０ビットタイムが経過するまでクロック信号の送信を停止する。これにより、異常スレーブノードの送信端子ＴｘからレスポンスＲＰ２２を送信する処理が実行されても、レスポンスＲＰ２２は通信バス６へは送信されず、規定時間が経過することで、エラーＥＲ２が示すように、エラーとなる。このように、異常スレーブノードの送信端子Ｔｘから再度ヘッダが送信されても、クロック信号の送信が停止される。ヘッダの再送回数は有限であり、予め設定された再送回数のヘッダ送信が行われると、異常スレーブノードからのヘッダの送信が停止される。
【００５９】
このように構成されたノード２は、通信システム１において、ノード２，３，４，５が同期するためのクロック信号を通信バス６に送信するマスタノード２として機能する。通信システム１は、ノード２，３，４，５が通信バス６を介してデータ通信可能に接続され、ノード２，３，４，５が、送信すべきノードを指定するヘッダを送信するとともに、ヘッダが送信された後に、ヘッダにより指定されたノードがレスポンスを送信するシステムである。
【００６０】
そしてノード２は、スレーブノード３，４，５で異常が発生しているか否かを判断する。またノード２は、ヘッダを受信すると、ヘッダが異常スレーブノードにより送信されたものであるか否かを判断する。そしてノード２は、ヘッダが異常スレーブノードにより送信されたものであると判断した場合に、クロック信号の送信を予め設定された停止時間だけ停止することにより、異常スレーブノードが通信バス６にレスポンスを送信するのを妨げる。
【００６１】
これにより、ノード２は、異常スレーブノードが通信バス６にレスポンスを送信するのを妨げるため、異常スレーブノードにより送信されたデータをスレーブノード３，４，５が使用してしまう事態の発生を抑制することができる。
【００６２】
そしてノード２は、異常スレーブノードが、自身を指定するヘッダを通信バス６に送信することにより自律的にレスポンスを送信するのを妨げることができる。
以上説明した実施形態において、ノード２，３，４，５は通信装置、通信バス６は通信線、ノード２はマスタ通信装置、ノード３，４，５はスレーブ装置に相当する。
【００６３】
また、異常スレーブノードは異常スレーブ装置、Ｓ１０〜Ｓ１００の処理は異常判断部、Ｓ２１０〜Ｓ２６０の処理は妨害部に相当する。
［第２実施形態］
以下に本発明の第２実施形態を図面とともに説明する。なお第２実施形態では、第１実施形態と異なる部分を説明する。また、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００６４】
第２実施形態の通信システム１は、クロック停止処理が省略された点と、スケジュールテーブルＳＴが変更された点と、後述するテーブル設定処理が追加された点と、ヘッダ送信処理が変更された点が第１実施形態と異なる。
【００６５】
第２実施形態のスケジュールテーブルＳＴは、図１２に示すように、送信順情報、対象スレーブ情報および送信間隔情報に加えて送信可否情報との対応関係が設定されている点が、第１実施形態と異なる。送信可否情報は、ヘッダ送信の可否を示す。
【００６６】
次に、テーブル設定処理の手順を説明する。テーブル設定処理は、マスタノード２の動作中において繰り返し実行される処理である。
テーブル設定処理が実行されると、マスタノード２のＣＰＵは、図１３に示すように、まずＳ５１０にて、上記の異常スレーブ情報を参照することにより、異常スレーブノードを特定する。
【００６７】
そしてＳ５２０にて、Ｓ５１０で特定した異常スレーブノードに基づいて、スケジュールテーブルＳＴの送信可否情報を設定する。具体的には、スケジュールテーブルＳＴの対象スレーブ情報が示すスレーブノードが、Ｓ５１０で特定した１つまたは複数の異常スレーブノードの中に含まれる場合には、この対象スレーブ情報に対応する送信可否情報を「否」に設定する。一方、スケジュールテーブルＳＴの対象スレーブ情報が示すスレーブノードが、Ｓ５１０で特定した１つまたは複数の異常スレーブノードの中に含まれていない場合には、この対象スレーブ情報に対応する送信可否情報を「可」に設定する。
【００６８】
そしてＳ５２０の処理が終了すると、テーブル設定処理を一旦終了する。
次に、第２実施形態のヘッダ送信処理の手順を説明する。
第２実施形態のヘッダ送信処理は、図１４に示すように、Ｓ６１０の処理が追加された点が第１実施形態と異なる。
【００６９】
すなわち、Ｓ３２０の処理が終了すると、Ｓ６１０にて、Ｓ３２０で特定したスレーブノードを指定するヘッダの送信が可能であるか否かを判断する。具体的には、スケジュールテーブルＳＴを参照することにより、送信順カウンタが示す送信順に対応する送信可否情報が「可」に設定されている場合には、ヘッダの送信が可能であると判断する。一方、送信可否情報が「否」に設定されている場合には、ヘッダの送信が可能でないと判断する。
【００７０】
ここで、ヘッダの送信が可能であると判断した場合には、Ｓ３３０に移行する。一方、ヘッダの送信が可能でないと判断した場合には、Ｓ３４０に移行する。
次に、このように構成されたマスタノード２の動作例を説明する。
【００７１】
例えば図１５に示すように、スケジュールテーブルＳＴに基づいて、スレーブノード４を指定するヘッダＨＤ３１を通信バス６に送信するタイミングになった場合には、スレーブノード４が異常スレーブノードであるため、ヘッダＨＤ３１の送信を行わない。これにより、スレーブノード４によるレスポンスＲＰ３１の送信を防止することができる。一方、スレーブノード３を指定するヘッダＨＤ３２を通信バス６に送信するタイミングになった場合には、スレーブノード３が異常スレーブノードではないため、ヘッダＨＤ３２の送信を行う。これにより、スレーブノード３によるレスポンスＲＰ３２の送信が行われる。
【００７２】
このように構成されたノード２は、少なくともヘッダの送信順と、ヘッダが指定するスレーブノードとの対応関係が予め設定されたスケジュールテーブルＳＴに基づいて、ヘッダを送信する。そしてノード２は、異常スレーブノードを指定するヘッダを送信するのを禁止するようにスケジュールテーブルＳＴを変更することにより、異常スレーブノードが通信バス６にレスポンスを送信するのを妨げる。
【００７３】
これにより、第２実施形態のノード２は、第１実施形態のノード２と同様の効果を奏する。そしてノード２は、異常スレーブノードがスケジュールテーブルＳＴに基づいて定期的にレスポンスを送信するのを妨げることができる。
【００７４】
またスケジュールテーブルＳＴは、送信順およびスレーブノードに加えて更に、ヘッダの送信の可否を示す送信可否情報との対応関係が予め設定されている。そしてノード２は、異常スレーブノードに対応している送信可否情報を、ヘッダの送信ができないことを示す「否」に変更する。
【００７５】
これにより、第２実施形態のノード２は、送信可否情報を参照するという簡便な処理で、ヘッダを送信しないか否かを判断することができる。このため、ノード２は、異常スレーブノードがレスポンスを送信するのを妨げるための処理負荷を低減することができる。
【００７６】
以上説明した実施形態において、Ｓ３１０〜Ｓ３８０の処理はヘッダ送信部、Ｓ５１０，Ｓ５２０，Ｓ６１０の処理は妨害部に相当する。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
【００７７】
［変形例１］
例えば上記実施形態では、通信システム１が３つのスレーブノードで構成されているものを示したが、２つまたは４つ以上のスレーブノードで構成されるようにしてもよい。
【００７８】
［変形例２］
また上記実施形態では、図１１に示すように、クロック信号の送信が停止されているときにおける異常スレーブノードの受信端子Ｒｘの信号レベルがハイであるものを示した。しかし、図１６に示すように、クロック信号の送信が停止されているときの信号レベルＬＶ１,ＬＶ２がローになる場合であっても、エラーＥＲ１，ＥＲ２が示すように、エラーを検出することができる。
【００７９】
［変形例３］
また上記実施形態では、レスポンスのＷＵパルス送信情報に基づいて異常スレーブノードを検出するものを示した。しかし、異常スレーブノードを検出する方法は、上記実施形態で説明したものに限定されない。例えば、レスポンスのスリープ可否情報に基づいて異常スレーブノードを検出するようにしてもよい。
【００８０】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【００８１】
上述したマスタノード２の他、当該マスタノード２を構成要素とするシステム、当該マスタノード２としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、通信方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００８２】
１…通信システム、２…マスタノード、３，４，５…スレーブノード、６…通信バス
【図１】
0006477438.tif 000002
【図２】
0006477438.tif 000003
【図３】
0006477438.tif 000004
【図４】
0006477438.tif 000005
【図５】
0006477438.tif 000006
【図６】
0006477438.tif 000007
【図７】
0006477438.tif 000008
【図８】
0006477438.tif 000009
【図９】
0006477438.tif 000010
【図１０】
0006477438.tif 000011
【図１１】
0006477438.tif 000012
【図１２】
0006477438.tif 000013
【図１３】
0006477438.tif 000014
【図１４】
0006477438.tif 000015
【図１５】
0006477438.tif 000016
【図１６】
0006477438.tif 000017