(57)【特許請求の範囲】
【請求項１】
クロック成分を含むクロックパルスをバス通信路へ出力するマスタノードと、当該マスタノードからの前記クロックパルスを前記バス通信路を介して受信することで前記マスタノードに同期して動作するスレーブノードとを備え、
前記各ノードが、予め割り当てられた機能を実行可能な動作モードであるウェイクアップモードと、一部の機能を停止した動作モードであるスリープモードとで動作するよう構成された通信システムであって、
前記各ノードは、
前記ウェイクアップモードへの移行の要因となるウェイクアップ要因の有無を判断する要因有無判断手段と、
前記要因有無判断手段にてウェイクアップ要因が有ると判断される信号の送信手段とを有し、
前記マスターノードは、
前記ウェイクアップ要因が有ると判断される信号を受信する手段と、
前記スレーブノードを前記マスタノードに同期させるための前記クロック成分を含む前記クロックパルスを前記ウェイクアップ要因が有ると判断される信号として出力する手段と、
前記要因有無判断手段にて前記ウェイクアップ要因が有ると判断されると、前記バス通信路への前記クロックパルスの出力を開始するマスタ制御手段とを有し、
前記スレーブノードは、
前記マスタノードからの前記クロックパルスが前記バス通信路に出力されているか否かを判定するクロックパルス出力判定手段と、
前記ウェイクアップ要因が自ノードで発生すると、ウェイクアップ信号を前記ウェイクアップ要因が有ると判断される信号として送信するウェイクアップ信号送信手段と、
前記ウェイクアップ信号を検出するウェイクアップ信号検出手段と、
前記クロックパルス出力判定手段にて前記クロックパルスが出力されていると判定された場合、及び前記ウェイクアップ信号検出手段にて前記ウェイクアップ信号を検出した場合に、前記ウェイクアップモードへ動作モードを切り替えて通信処理を行うスレーブ制御手段と、
を有していることを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記クロックパルス出力判定手段は、前記クロックパルスに対し周波数の大きなカウント用クロックでのサンプリング情報に基づき、周期カウント値の中のハイレベルとロウレベルとの比率が所定範囲にある場合に前記クロックパルスが出力されていると判定すること
を特徴とする通信システム。
【請求項３】
請求項１に記載の通信システムにおいて、
前記クロックパルス出力判定手段は、前記クロックパルスのエッジを検出するエッジ検出回路と、当該エッジ検出回路からの出力に基づき前記クロックパルスが出力されているか否かに応じて反転するクロック検出信号を出力するエッジ間隔判定回路とで構成されていること
を特徴とする通信システム。
【請求項４】
請求項１〜３の何れか一項に記載の通信システムにおいて、
前記スレーブ制御手段は、前記ウェイクアップモードへ動作モードを切り替えた後、さらに前記マスタノードからの所定情報を受信してはじめて通信処理を開始すること
を特徴とする通信システム。
【請求項５】
請求項１〜４の何れか一項に記載の通信システムにおいて、
前記マスタ制御手段は、前記クロックパルスの出力を停止して前記スリープモードへ動作モードを切り替え、
前記スレーブ制御手段は、前記クロックパルス出力判定手段にて前記クロックパルスが出力されていないと判定されると、前記スリープモードへ動作モードを切り替えること
を特徴とする通信システム。
【請求項６】
請求項５に記載の通信システムにおいて、
前記マスタ制御手段は、スリープ信号を送信した後、所定時間の経過を待って、前記クロックパルスの出力を停止し、
前記スレーブ制御手段は、前記スリープ信号を受信すると、前記所定時間内に、スリープモードへの動作モードの切り替えに先立ちスリープ前退避処理を実行すること
を特徴とする通信システム。
【請求項７】
請求項５又は６に記載の通信システムにおいて
前記マスタ制御手段は、前記所定時間が経過するまでに前記スレーブノードから規定のパルスを受信すると、前記クロックパルスの出力を継続して所定情報を送信し、
前記スレーブ制御手段は、前記スリープ信号を受信した後、前記ウェイクアップ要因が自ノードで発生すると前記規定のパルスを出力し、前記マスタノードからの所定情報を受信すると、通信処理を開始してスリープ禁止を示すデータを出力すること
を特徴とする通信システム。
【請求項８】
請求項１〜７の何れか一項に記載の通信システムに用いられるマスタノード。
【請求項９】
請求項１〜７の何れか一項に記載の通信システムに用いられるスレーブノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック成分を含む同期信号（以下「クロックパルス」という）をバス通信路へ出力するマスタノードと、クロックパルスをバス通信路を介して受信することで、マスタノードに同期して動作するスレーブノードとを備える通信システムに関する。
【背景技術】
【０００２】
従来、車両に搭載される通信システムとして、ＣＡＮやＬＩＮ等、バス通信路を利用するものが知られている。
この種の通信システムにおいて効率の良い通信を行うには、バス通信路を介して信号を送受信するために各通信装置（以下「ノード」という）に設けられるトランシーバの動作を、互いに同期させることが望ましい。
【０００３】
このような同期を実現する手法の一つとして、いずれか一つのノード（マスタノード）が、クロックパルスをバス通信路に送信する手法が知られている。このとき、他のノード（スレーブノード）は、バス通信路上のクロックパルスからクロック成分を抽出して、自トランシーバで発生させた自走クロックを加工（分周等）することによって、その抽出したクロック成分に同期したバスクロックを生成し、そのバスクロックに従ってトランシーバを動作させる。
【０００４】
このような通信システムには、各ノードが、予め割り当てられた全ての機能を実行可能な動作モードであるウェイクアップモードと、消費電力を抑えるために一部の機能を停止した動作モードであるスリープモードとで動作するものがある。各ノードがスリープモードにある場合、例えば所定のスイッチが押下されるなどのウェイクアップ要因が生じると、バス通信路上の信号に基づいてウェイクアップモードへ移行する。
【０００５】
このようにバス通信路上の信号に基づきウェイクアップモードへの移行を行う際、バス通信路に重畳するノイズによりウェイクアップしてしまう、誤ウェイクアップが問題となる。
【０００６】
このような問題を解決するための手法として、ウェイクアップ指示に相当する信号のサンプリングを複数回にわたって実施する技術が提案されている（例えば、特許文献１参照）。つまり、瞬間的な信号レベルだけでウェイクアップを行うとノイズの重畳が見分けられないため、信号レベルの継続を判断するのである。すなわち、時系列のサンプリング結果に基づく信号レベルがウェイクアップ側にあれば、ウェイクアップ信号と認識する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２２３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に記載された発明では、短絡などによってバス通信路上の信号がウェイクアップ側（例えばロウレベル）に固定されてしまった場合を判断することができない。そのため、依然として誤ウェイクアップの問題が残る。
【０００９】
本発明は、上述した課題を解決するためになされたものであり、その目的は、マスタノードから送信されるクロックパルスに基づいて通信を行う通信システムにおいて、ノイズなどの影響によらず、ウェイクアップモードへの動作モードの切り替えを適切に行うことにある。
【課題を解決するための手段】
【００１０】
上述した目的を達成するためになされた本発明の通信システムは、クロック成分を含むクロックパルスをバス通信路へ出力するマスタノードと、当該マスタノードからのクロックパルスをバス通信路を介して受信することでマスタノードに同期して動作するスレーブノードとを備えるものである。
【００１１】
このとき、各ノードは、予め割り当てられた機能を実行可能な動作モードであるウェイクアップモードと、一部の機能を停止した動作モードであるスリープモードとで動作するよう構成されている。
【００１２】
ここで特に、マスタノードでは、要因有無判断手段が、ウェイクアップモードへの移行の要因となるウェイクアップ要因の有無を判断する。要因有無判断手段にてウェイクアップ要因が有ると判断されると、マスタ制御手段によって、バス通信路へのクロックパルスの出力が開始される。
【００１３】
一方、スレーブノードでは、クロックパルス出力判定手段が、マスタノードからのクロックパルスがバス通信路に出力されているか否かを判定する。クロックパルス出力判定手段にてクロックパルスが出力されていると判定されると、スレーブ制御手段によって、ウェイクアップモードへ動作モードが切り替えられて通信処理が行われる。
【００１４】
従来はウェイクアップ側での信号レベルの継続を判断しているため、バス通信路上の信号がウェイクアップ側に固定されてしまった場合を判断することができない。これに対し、本発明では、スレーブノードのウェイクアップを、マスタノードからのクロックパルスで行うようにした。この場合、信号レベルの継続ではなく、周期的に立下がる又は立上がるクロックパルスを判断するため、ノイズなどの影響によらず、ウェイクアップモードへの動作モードの切り替えを適切に行うことができる。
【００１５】
ところで、マスタノードは、自ノードで発生するウェイクアップ要求を判断することが考えられる。ただし、ウェイクアップ要求は、他ノード（スレーブノード）で発生することもある。
【００１６】
そこで、スレーブノードは、ウェイクアップ要因が自ノードで発生すると、ウェイクアップ信号を送信するウェイクアップ信号送信手段を有しており、要因有無判断手段は、ウェイクアップ信号送信手段にてウェイクアップ信号が送信されると、ウェイクアップ要因が有ると判断することが考えられる。この場合、スレーブノードからのウェイクアップ信号に起因してマスタノードがクロックパルスの出力を開始し、これにより、他のスレーブノードが起動する。このようにしても、ノイズなどの影響によらず、ウェイクアップモードへの動作モードの切り替えを適切に行うことができる。
【００１７】
なお、マスタノードからのクロックパルスの出力を判定する場合、クロックパルス出力判定手段は、クロックパルスに対し周波数の大きなカウント用クロックでのサンプリング情報に基づき、周期カウント値の中のハイレベルとロウレベルとの比率が所定範囲にある場合にクロックパルスが出力されていると判定することが考えられる。このようにすれば、例えばノイズなどによる瞬間的なエッジの立上がりや立下がりをクロックパルスとして判定してしまうことがなくなり、クロックパルスが出力されているか否かを適切に判定することができる。
【００１８】
また、クロックパルス出力判定手段を、クロックパルスのエッジを検出するエッジ検出回路と、当該エッジ検出回路からの出力に基づきクロックパルスが出力されているか否かに応じて反転するクロック検出信号を出力するエッジ間隔判定回路とで構成してもよい。このようにしても、例えばノイズなどによる瞬間的なエッジの立上がりや立下がりをクロックパルスとして判定してしまうことがなくなり、クロックパルスが出力されているか否かを適切に判定することができる。また、この場合はハードウェアによる構成であるため、クロックパルスの判定から動作モードの切り替えまでを瞬時に行うことができる。
【００１９】
ところで、各スレーブノード間でウェイクアップに要する時間が異なることがあり、この場合、先にウェイクアップしたスレーブノードの送信したデータが別のスレーブノードに受信されない、いわゆる受信洩れが生じる虞がある。
【００２０】
そこで、ウェイクアップモードへ動作モードを切り替えた後、さらに、マスタノードからの所定情報を受信してはじめて通信処理を開始する構成が好ましい。ここで所定情報とは、定期通信のための識別子（ＩＤ）を含むヘッダなどであることが考えられる。この場合、各スレーブノード間のウェイクアップに要する時間差を考慮してマスタノードから所定情報を送信すれば、スレーブノードにおける受信洩れを防止することができる。
【００２１】
ここまではウェイクアップモードへ動作モードを切り替えることについて述べたが、スリープモードへの動作モードの切り替え構成を次に説明する。
すなわち、マスタ制御手段がクロックパルスの出力を停止してスリープモードへ動作モードを切り替え、スレーブ制御手段は、クロックパルス出力判定手段にてクロックパルスが出力されていないと判定されると、スリープモードへ動作モードを切り替える。このようにマスタノードからのクロックパルスの途絶によってスリープモードへ移行するようにすれば、比較的簡単にスリープモードへの移行を実現することができる。
【００２２】
このとき、マスタ制御手段は、スリープ信号を送信した後、所定時間の経過を待って、クロックパルスの出力を停止するようにするとよい。このとき、スレーブ制御手段は、スリープ信号を受信すると、所定時間内に、スリープモードへの動作モードの切り替えに先立ちスリープ前退避処理を実行する。このようにすれば、例えばパラメータなどの退避処理を行うことができ、次回のウェイクアップ時におけるスレーブノードの動作を安定させることができる。
【００２３】
一方、スリープモードへの動作モードの切り替え時に、スレーブノードにウェイクアップ要因が発生することが考えられる。そこで、マスタ制御手段は、所定時間が経過するまでにスレーブノードから規定のパルスを受信すると、クロックパルスの出力を継続して所定情報を送信し、スレーブ制御手段は、スリープ信号を受信した後、ウェイクアップ要因が自ノードで発生すると規定のパルスを出力し、マスタノードからの所定情報を受信すると、通信処理を開始してスリープ禁止を示すデータを出力する構成にするとよい。このようにすれば、スリープ信号受信後でも、スリープすることなく迅速に通信を復帰させることができる。
【００２４】
以上は、通信システムの発明として説明してきたが、上記通信システムに用いられるマスタノードの発明として、また、上記通信システムに用いられるスレーブノードの発明として実現することもできる。
【図面の簡単な説明】
【００２５】
【図１】通信システムの概略構成を示すブロック図である。
【図２】（ａ）はバス通信路で使用する伝送路符号の構成を示す説明図であり、（ｂ）はバス通信路を介して送受信されるフレームの構成を示す説明図であり、（ｃ）はＵＡＲＴが送受信するブロックデータの構成を示す説明図である。
【図３】マスタノード，スレーブノードの構成を示すブロック図である。
【図４】タイミング生成部が生成する各種信号を示す説明図である。
【図５】マスタウェイクアップ処理を示すフローチャートである。
【図６】スレーブウェイクアップ処理の前半部分を示すフローチャートである。
【図７】スレーブウェイクアップ処理の後半部分を示すフローチャートである。
【図８】ウェイクアップの具体例を示す説明図である。
【図９】ウェイクアップの具体例を示す説明図である。
【図１０】ウェイクアップの具体例を示す説明図である。
【図１１】マスタスリープ処理を示すフローチャートである。
【図１２】スレーブスリープ処理を示すフローチャートである。
【図１３】スリープの具体例を示す説明図である。
【図１４】スリープの具体例を示す説明図である。
【図１５】クロック検出回路の構成を示すブロック図である。
【図１６】（ａ）はエッジ検出回路の構成を示す回路図であり、（ｂ）はエッジ検出回路の各部の信号を示すタイミングチャートである。
【図１７】エッジ間隔判定回路の構成を示す回路図である。
【図１８】エッジ間隔判定回路の各部の信号を示すタイミングチャートである。
【発明を実施するための形態】
【００２６】
以下に本発明の実施形態を図面と共に説明する。
［第１実施形態］
図１は、車両に搭載される通信システム１の概略構成を示すブロック図である。ここでは、通信装置としてのノード３が、バス通信路５を介して相互に接続されている。ノード３は、ボデー系のアプリケーションを実現する電子制御装置（ボデー系ＥＣＵ）や、車両の状態を検出したり車両の状態を制御したりするために設けられた関連機器（スイッチ、センサ等）である。
【００２７】
図１に示すように、通信システム１を構成するノード３のうち、ボデー系ＥＣＵとしては、ボデー・ワイパＥＣＵ，シートＥＣＵ，スライドドアＥＣＵ，ミラーＥＣＵ，バックドアＥＣＵ，ライトＥＣＵ，チルテレ（電動ステアリング位置調整装置）ＥＣＵ等があり、一方、関連機器としては、ライトＳＷ，ワイパＳＷ，ライトセンサ，レインセンサ等がある。
【００２８】
バス通信路５は、異なるノード３からハイレベルの信号とロウレベルの信号とが同時に出力されると、バス通信路５上の信号レベルがロウレベルとなるように構成されており、この機能を利用してバス調停を実現する。
【００２９】
ここで図２（ａ）は、バス通信路５で使用する伝送路符号を示す説明図である。
図２（ａ）に示すように、バス通信路５では、伝送路符号として、ビットの途中で信号レベルがロウレベルからハイレベルに変化するＰＷＭ符号が用いられ、ドミナント（本実施形態では０に対応）及びレセッシブ（本実施形態では１に対応）からなる二値の信号を２種類のデューティ比で表現する。
【００３０】
具体的には、ドミナントの方がレセッシブよりロウレベルの比率が長くなるよう（本実施形態では、ドミナントが１ビットの２／３の期間、レセッシブが１ビットの１／３の期間）に設定され、バス通信路５上でドミナントとレセッシブとが衝突すると、ドミナントが調停勝ちするようにされている。
【００３１】
そして、通信システム１では、調停負けしたノード３は送信を直ちに停止し、調停勝ちしたノード３のみが送信を継続する、いわゆるＣＳＭＡ／ＣＡ方式のアクセス制御方式が用いられている。
【００３２】
また、図２（ｂ）はノード３間の通信に使用するフレームの構成を示す説明図である。
図２（ｂ）に示すように、フレームは、送信を許可するデータを指定するためのヘッダと、ヘッダによって指定されたデータを送信するための可変長のレスポンスからなる。
【００３３】
このうち、ヘッダは、送信を許可するデータの識別子（ＩＤ）からなり、ＩＤの値が小さいほど、バス調停で勝ち残るように設定されている。一方、レスポンスには、データ以外に、データ（レスポンス）のサイズを示すサイズ情報、エラーの有無をチェックするためのＣＲＣ符号が少なくとも含まれている。
【００３４】
ここで図１の説明に戻り、各ノード３は、予め割り当てられた全ての機能を実行可能な動作モードであるウェイクアップモード、消費電力を抑えるために一部の機能を停止した動作モードであるスリープモードで動作する。
【００３５】
また、ノード３の一つ（ここではボデー・ワイパＥＣＵ）をマスタノード（以下単に「マスタ」という）３ａとし、他のノードをスレーブノード（以下単に「スレーブ」という）３ｂとしている。このとき、マスタ３ａがヘッダを送信することによって、送信を許可するデータ（ひいてはデータの送信元となるスレーブ３ｂ）を順次指定し、ヘッダによって指定されたデータの送信元となるスレーブ３ｂがレスポンス（データ）を送信するポーリング（以下「定期通信」ともいう）と、マスタ３ａからの指示によらずスレーブ３ｂが自律的に通信を制御するイベント通信とを実行する。
【００３６】
以下、マスタ３ａ及びスレーブ３ｂの構成を、図３を参照して説明する。
マスタ３ａは、バス通信路５を介した他ノード３との通信によって得られた情報等に基づき、自ノード３に割り当てられた各種処理を実行する信号処理部１０と、信号処理部１０から供給されるＮＲＺ符号の送信データＴＸＤをＰＷＭ符号の送信データＴＸに符号化してバス通信路５に出力し、バス通信路５から取り込んだＰＷＭ符号の受信データＲＸをＮＲＺ符号の受信データＲＸＤに復号化して信号処理部１０に供給するトランシーバ２０とを備えている。
【００３７】
信号処理部１０は、ＣＰＵ，ＲＯＭ，ＲＡＭ，ＩＯポート等からなる周知のマイクロコンピュータを中心に構成され、更に、調歩同期（非同期）方式のシリアル通信を実現するＵＡＲＴ（汎用非同期送受信回路：Universal Asynchronous Receiver Transmitter ）、１１、当該信号処理部１０を動作させるための動作クロックや、ＵＡＲＴ１１の通信速度と同じ速度（本実施形態では２０Ｋｂｐｓ）に設定されトランシーバ２０に供給する内部クロックＣＫを発生させる発振回路１２を備えている。
【００３８】
但し、発振回路１２は、水晶発振子を用いて構成され、安定した周波数で発振する高精度のものが用いられている。また、信号処理部１０は、自ノードの動作モードを表すモード信号ＭＤをトランシーバ２０に供給するように構成されている。
【００３９】
ここで図２（ｃ）は、ＵＡＲＴ１１が送受信するデータＴＸＤ，ＲＸＤの構成を示す説明図である。図示されているように、ＵＡＲＴ１１は、データの開始を示す１ビット長のスタートビット（ロウレベル）と、データの終了を示すストップビット（ハイレベル）と、これらスタートビット，ストップビットに挟まれた８ビットのデータとで構成された合計１０ビットのブロックデータを単位として送受信する。但し、主要部となる８ビットのデータは、ＬＳＢ（最下位ビット）が先頭、ＭＳＢ（最上位ビット）が末尾となるように設定されている。
【００４０】
なお、前述のフレーム（図２（ｂ）参照）を構成するヘッダは、単一のブロックデータで構成され、スタートビット，ストップビットを除く８ビットのデータのうち、７ビットはＩＤとして用いられ、１ビットはパリティビットとして用いられる。また、レスポンスは、１ないし複数個のブロックデータで構成され、最初のブロックに、サイズ情報が設定される。
【００４１】
図３に戻り、トランシーバ２０は、複数のインバータをリング状に接続することで構成されたリングオシレータ等からなる簡易な発振回路を備え、この発振回路が発生させたカウント用クロックＣＣＫを分周することによって、信号処理部１０から供給される内部クロックＣＫに同期した各種タイミング信号を生成するタイミング生成部２１と、タイミング生成部２１にて生成されたタイミング信号に従って、送信データＴＸＤの符号化、受信データＲＸの復号化を行う符号化復号化部２２と、符号化復号化部２２にて符号化された送信データＴＸをバス通信路５に出力する送信バッファ２３と、バス通信路５上のデータを取り込む受信バッファ２４と、信号処理部１０から供給されるモード信号ＭＤに従って、タイミング生成部２１および符号化復号化部２２の動作を制御するモード管理部２５とを備えている。
【００４２】
なお、送信バッファ２３は、上述したバス通信路５上でのバス調停が可能となるように、例えば、周知のオープンコレクタ回路を用いて構成されている。また、受信バッファ２４は、バス通信路５の信号レベルが、予め設定された閾値より大きければハイレベル、閾値より小さければロウレベルを出力する周知のコンパレータによって構成されている。
【００４３】
また、モード管理部２５は、モード信号ＭＤがウェイクアップモードを示している場合には（本実施形態では「１」）、タイミング生成部２１および符号化復号化部２２を有効に動作させ、モード信号ＭＤがスリープモードを示している時には（本実施形態では「０」）、タイミング信号の生成が停止するようにタイミング生成部２１を制御する。
【００４４】
ここで図４は、タイミング生成部２１が生成する各種タイミング信号を示す説明図である。なお、カウント用クロックＣＣＫは、内部クロックＣＫに対して十分に高い周波数（数十〜数百倍程度）を有するように設定されている。
【００４５】
タイミング生成部２１は、内部クロックＣＫの立ち下がりエッジの間隔、即ち１周期の長さを、カウント用クロックＣＣＫによってカウントするカウンタや、カウンタによって得られた周期カウント値Ｃｉ（ｉ＝１，２，…）に基づいて、カウント用クロックＣＣＫを分周することによって内部クロックＣＫに同期した各種タイミング信号を発生させる分周回路等によって構成されている。
【００４６】
なお、タイミング信号として具体的には、以下に示すクロックを生成する。
図４に示すように、タイミング生成部２１は、周期カウント値Ｃｉに相当する周期を有し、立ち下がりエッジから立ち上がりエッジまでの間隔が周期カウント値Ｃｉの１／２に相当する長さに設定されたデューティ５０％のバスクロックＢＣＫと、同じく周期カウント値Ｃｉに相当する周期を有し、バスクロックＢＣＫの立ち下がりエッジのタイミングおよび該エッジから周期カウント値の１／４，２／４，３／４に相当する期間だけ経過したタイミングが立ち上がりエッジ（サンプリング用エッジ）となるサンプリングクロックＳＣＫと、バスクロックＢＣＫの立ち下がりエッジから周期カウント値の１／３に相当する期間だけ経過したタイミングが立ち上がりエッジとなるレセッシブ生成用クロックＲＣＫと、バスクロックＢＣＫの立ち下がりエッジから周期カウント値の２／３に相当する期間だけ経過したタイミングが立ち上がりエッジとなるドミナント生成用クロックＤＣＫとを生成する。
【００４７】
なお、タイミング生成部２１では、モード管理部２５からの指示に従い、動作モードがウェイクアップモードの時には、すなわちモード信号ＭＤが「１」の時には、発振回路を動作させることによってタイミング信号の生成を行う。この場合、バス通信路５には、同期信号となるクロックパルスが出力されることになる。一方、動作モードがスリープモードの時には、すなわちモード信号ＭＤが「０」の時には、発振回路を停止することによってタイミング信号の生成を停止する。この場合、クロックパルスの出力は停止されて、バス通信路５はハイレベルに固定される。
【００４８】
図３に戻り、スレーブ３ｂの構成を説明する。
スレーブ３ｂは、マスタ３ａと同様に、バス通信路５を介した他ノード３との通信によって得られた情報等に基づき、自ノード３に割り当てられた各種処理を実行する信号処理部３０と、信号処理部３０から供給される送信データＴＸＤをＰＷＭ符号で符号化した送信データＴＸをバス通信路５に出力し、バス通信路５上のデータ（受信データ）ＲＸを受信して復号した受信データＲＸＤを信号処理部３０に供給するトランシーバ４０とを備えている。
【００４９】
信号処理部３０は、トランシーバ４０に対して内部クロックＣＫを供給する機能が省略されている点以外は、信号処理部１０と同様に構成されている。
但し、スレーブ３ｂの信号処理部３０は、必ずしもマイコンによって構成する必要はなく、ＵＡＲＴ１１に相当する機能を少なくとも備えたシーケンサと、そのシーケンサを動作させる動作クロックを生成する発振回路とによって構成してもよい。
【００５０】
トランシーバ４０は、トランシーバ２０と同様に、タイミング生成部４１，符号化復号化部４２，送信バッファ２３，受信バッファ２４，モード管理部２５を備えており、タイミング生成部４１および符号化復号化部４２の構成の一部が、タイミング生成部２１および符号化復号化部２２とは異なっている。
【００５１】
具体的には、タイミング生成部４１は、各種タイミング信号を生成する際に、同期の対象となる信号が、内部クロックＣＫではなく、受信バッファ２４を介してバス通信路５から取得した受信データＲＸである点が異なる。
【００５２】
本実施形態では、スレーブ３ｂは、スリープモードにあるときにマスタ３ａからバス通信路５に出力されるクロックパルスを検出すると、ウェイクアップモードへ移行する。そして、このクロックパルスの検出は、カウント用クロックＣＣＫのタイミングでバス通信路５から受信される受信データＲＸをサンプリングし、周期カウント値Ｃｉ（ｉ＝１，２，…）の中のハイレベル及びロウレベルの比率が所定範囲にあるか否かで行う。例えば図４に示すように、ロウレベルとなっている期間Ａのカウント値とハイレベルとなっている期間Ｂのカウント値との比率が所定範囲にあるか否かを判断するという具合である。
【００５３】
なお、タイミング生成部４１では、タイミング信号の一つであるレセッシブ生成用クロックＲＣＫの生成を省略してもよい。
また、符号化復号化部４２は、内部回路の動作が一部異なる以外は、符号化復号化部２２と同様に構成されている。
【００５４】
このように、スレーブ３ｂのトランシーバ４０は、動作モードがウェイクアップモードの時には、すなわちモード信号ＭＤが「１」の時には、バス通信路５から取り込んだＰＷＭ符号の受信データＲＸのビット境界となる立ち下がりエッジをクロック成分として抽出し、そのクロック成分に同期したバスクロックＢＣＫを生成し、このバスクロックＢＣＫに従って送信データＴＸＤの符号化，受信データＲＸの復号化を行い、バス通信路５を介した通信を実現する。
【００５５】
次に、マスタ３ａの信号処理部１０で実行されるマスタウェイクアップ処理を説明する。図５は、マスタウェイクアップ処理を示すフローチャートである。この処理は、マスタ３ａがスリープモードとなっているときに実行される。
【００５６】
最初のＳ１００では、ウェイクアップ要因があるか否かを判断する。ウェイクアップ要因は、例えば電源スイッチなどの押下などに基づく上位アプリケーションからの要求で発生する。このとき、ウェイクアップ要因は、自ノードで検知される場合、他ノードで検知される場合がある。他ノード３ｂで検知された場合、バス通信路５を介してウェイクアップ信号が受信される。ここでウェイクアップ要因があると判断された場合（Ｓ１００：ＹＥＳ）、Ｓ１１０へ移行する。一方、ウェイクアップ要因がないと判断された場合（Ｓ１００：ＮＯ）、Ｓ１００の判断処理を繰り返す。
【００５７】
Ｓ１１０では、自ノードで発生したウェイクアップ要因か否かを判断する。ここで、自ノードで発生したウェイクアップ要因であると判断された場合（Ｓ１１０：ＹＥＳ）、Ｓ１２０にてウェイクアップ要因フラグをセットし、その後、Ｓ１３０へ移行する。一方、自ノードで発生したウェイクアップ要因でないと判断された場合（Ｓ１１０：ＮＯ）、すなわち、他ノードからのウェイクアップ信号を受信した場合には、Ｓ１２０の処理を実行せず、Ｓ１３０へ移行する。
【００５８】
Ｓ１３０では、モード信号ＭＤを「１」としてクロックパルスを出力する。この処理は、タイミング生成部２１によりタイミング信号の生成を行い、バス通信路５に対し、クロックパルスを出力するものである。このとき、ウェイクアップ要因フラグがセットされていれば、すなわち自ノードで発生したウェイクアップ要因であれば、起動後、即座にタイミングパルスを出力する。一方、ウェイクアップ要因フラグがセットされていなければ、すなわち他ノードで発生したウェイクアップ要因であれば、スレーブ３ｂが所定時間Ｔ２以内に起動することを前提に、起動後、それよりも短い所定時間Ｔ３（＜Ｔ２）以内にタイミングパルスを出力する。
【００５９】
続くＳ１４０では、所定時間Ｔ１が経過したか否かを判断する。この処理は、スレーブ３ｂが所定時間Ｔ２以内に起動することを前提に、それよりも長い所定時間Ｔ１（＞Ｔ２）の経過を判断するものである。ここで所定時間Ｔ１が経過したと判断された場合（Ｓ１４０：ＹＥＳ）、Ｓ１５０にて任意ＩＤの送信を開始し、その後、マスタウェイクアップ処理を終了する。一方、所定時間Ｔ１が経過していないうちは（Ｓ１４０：ＮＯ）、Ｓ１４０の判断処理を繰り返す。
【００６０】
なお、ウェイクアップ要因フラグは、起動後のデータ送信が完了した際にクリアされるものとする。以下でも同様である。
次に、スレーブ３ｂの信号処理部３０で実行されるスレーブウェイクアップ処理を説明する。図６及び図７は、スレーブウェイクアップ処理を示すフローチャートである。この処理は、スレーブ３ｂがスリープモードとなっているときに実行される。
【００６１】
最初のＳ２００では、ウェイクアップ要因があるか否かを判断する。上述したように、ウェイクアップ要因は、自ノードで検知される場合や、他ノードで検知される場合がある。他ノード（スレーブ３ｂ）で検知された場合、バス通信路５を介してウェイクアップ信号が受信される。ここでウェイクアップ要因があると判断された場合（Ｓ２００：ＹＥＳ）、Ｓ２１０へ移行する。一方、ウェイクアップ要因がないと判断された場合（Ｓ２００：ＮＯ）、Ｓ２００の判断処理を繰り返す。
【００６２】
Ｓ２１０では、自ノードで発生したウェイクアップ要因か否かを判断する。ここで、自ノードで発生したウェイクアップ要因であると判断された場合（Ｓ２１０：ＹＥＳ）、Ｓ２２０にてウェイクアップ要因フラグをセットし、その後、Ｓ２３０へ移行する。一方、自ノードで発生したウェイクアップ要因でないと判断された場合（Ｓ２１０：ＮＯ）、すなわち、他ノードからのウェイクアップ信号を受信した場合には、Ｓ２２０の処理を実行せず、Ｓ２３０へ移行する。
【００６３】
Ｓ２３０では、ウェイクアップ要因フラグがセットされているか否かを判断する。ここでフラグがセットされていると判断された場合（Ｓ２３０：ＹＥＳ）、Ｓ２４０へ移行する。一方、フラグがセットされていないと判断された場合（Ｓ２３０：ＮＯ）、Ｓ２４０及びＳ２５０の処理を実行せず、Ｓ２６０へ移行する。
【００６４】
Ｓ２４０では、ドミナントパルスがあるか否かを判断する。ここでドミナントパルスがないと判断された場合（Ｓ２４０：ＮＯ）、Ｓ２５０にてウェイクアップ信号を送信し、その後、Ｓ２６０へ移行する。ウェイクアップ信号は、ＵＡＲＴ１１で送受信可能な１ブロックのコマンドである。一方、ドミナントパルスがあると判断された場合（Ｓ２４０：ＹＥＳ）、Ｓ２５０の処理を実行せず、Ｓ２６０へ移行する。
【００６５】
Ｓ２３０〜Ｓ２５０の処理により、ウェイクアップ要因フラグがセットされており（Ｓ２３０：ＹＥＳ）、他にデータ送信しているノード３がなければ（Ｓ２４０：ＮＯ）、ウェイクアップ信号が送信されることになる（Ｓ２５０）。
【００６６】
Ｓ２３０で否定判断された場合に移行するあるいはＳ２５０から移行するＳ２６０では、クロックパルスがあるか否かを判断する。この処理は、バス通信路５上に、マスタ３ａからのクロックパルスが出力されているか否かを判断するものである。上述したように本実施形態では、このクロックパルスの検出は、バス通信路５から受信される受信データＲＸをカウント用クロックＣＣＫのタイミングでサンプリングし、周期カウント値Ｃｉ（ｉ＝１，２，…）の中のハイレベル及びロウレベルの比率が所定範囲にあるか否かで行う。ここでクロックパルスがあると判断された場合（Ｓ２６０：ＹＥＳ）、Ｓ２７０にてモード信号ＭＤを「１」にし、その後、図７中のＳ３００へ移行する。一方、クロックパルスがないと判断された場合（Ｓ２６０：ＮＯ）、Ｓ２８０へ移行する。
【００６７】
Ｓ２８０では、初回のウェイクアップ信号の受信から所定時間Ｔ４が経過したか否かを判断する。ここで所定時間Ｔ４が経過したと判断された場合（Ｓ２８０：ＹＥＳ）、Ｓ２９０にてモード信号ＭＤを「０」として、その後、スレーブウェイクアップ処理を終了する。この場合は、マスタ３ａからのクロックパルスが検知されないフィジカルバスエラーとなり、スリープモードを継続する。一方、所定時間Ｔ４が経過していないうちは（Ｓ２８０：ＮＯ）、Ｓ２３０からの処理を繰り返す。なお、本実施形態では所定時間Ｔ４が経過しないうちはウェイクアップ信号が繰り返し送信されるが（Ｓ２８０：ＮＯ，Ｓ２５０）、例えば、一定時間をおいて予め決められた回数（例えば２回）だけウェイクアップ信号を送信することとしてもよい。
【００６８】
Ｓ２７０から移行する図７中のＳ３００では、任意ＩＤを受信したか否かを判断する。上述したようにマスタ３ａは、起動後に所定時間Ｔ１が経過すると（図５中のＳ１４０：ＹＥＳ）、任意ＩＤの送信を開始する（Ｓ１５０）。ここで任意ＩＤを受信したと判断された場合（Ｓ３００：ＹＥＳ）、Ｓ３１０及びＳ３２０の処理を実行せず、スレーブウェイクアップ処理を終了する。このときは、スレーブ３ｂがウェイクアップモードで動作する。つまり、任意ＩＤを受信してはじめてデータ送受信が可能となるのである。一方、任意ＩＤを受信していないと判断された場合（Ｓ３００：ＮＯ）、Ｓ３１０へ移行する。
【００６９】
Ｓ３１０では、所定時間が経過したか否かを判断する。ここで所定時間が経過したと判断された場合（Ｓ３１０：ＹＥＳ）、モード信号ＭＤを「０」にして、その後、スレーブウェイクアップ処理を終了する。このときは、スレーブ３ｂは、スリープモードとなる。一方、所定時間が経過していないうちは（Ｓ３１０：ＮＯ）、Ｓ３００からの処理を繰り返す。
【００７０】
以上、マスタウェイクアップ処理及びスレーブウェイクアップ処理を説明した。さらにこれらの処理に対する理解を容易にするため、ここで図８〜図１０に基づき具体的な説明を加える。なお、スレーブ３ｂを区別するため、図中の記号Ａ〜Ｃを用い、適宜、Ａスレーブ３ｂ、Ｂスレーブ３ｂ、Ｃスレーブ３ｂと記述する。
【００７１】
図８では、マスタ３ａにてウェイクアップ要因が発生しているため（図５中のＳ１００：ＹＥＳ，Ｓ１１０：ＹＥＳ）、ウェイクアップ要因フラグがセットされる（Ｓ１２０）。このときは、起動後、即座にクロックパルスが出力される（Ｓ１３０）。一方、Ａ〜Ｃのスレーブ３ｂは、マスタ３ａからのクロックパルスを検出し（図６中のＳ２６０：ＹＥＳ）、マスタ３ａの起動から所定時間Ｔ２以内に起動し、モード信号ＭＤを「１」にして（Ｓ２７０）任意ＩＤの受信を待つ（図７中のＳ３００，Ｓ３１０）。
【００７２】
マスタ３ａは、所定時間Ｔ１が経過すると（図５中のＳ１４０：ＹＥＳ）、任意ＩＤの送信を開始する（Ｓ１５０）。一方、Ａ〜Ｃのスレーブ３ｂは、マスタ３ａが送信する任意ＩＤを受信すると（図７中のＳ３００：ＹＥＳ）、スレーブウェイクアップ処理を終了し、定期通信やイベント通信を行う。
【００７３】
また、図９では、Ａスレーブ３ｂにてウェイクアップ要因が発生しているため（図６中のＳ２００：ＹＥＳ，Ｓ２１０：ＹＥＳ）、Ａスレーブ３ｂにてウェイクアップ要因フラグがセットされる（Ｓ２２０）。したがって、Ａスレーブ３ｂが、ウェイクアップ信号を送信する（Ｓ２５０）。
【００７４】
マスタ３ａは、Ａスレーブ３ｂからのウェイクアップ信号を受信すると（図５中のＳ１００：ＹＥＳ）、ウェイクアップ信号の受信から所定時間Ｔ２以内にＡ〜Ｃのスレーブ３ｂが起動することを前提に、所定時間Ｔ３（＜Ｔ２）以内に、クロックパルスを出力する（Ｓ１３０）。
【００７５】
これにより、図８と同様、Ａ〜Ｃのスレーブ３ｂは、マスタ３ａからのクロックパルスを検出し（図６中のＳ２６０：ＹＥＳ）、マスタ３ａが送信する任意ＩＤを受信すると（図７中のＳ３００：ＹＥＳ）、スレーブウェイクアップ処理を終了し、定期通信やイベント通信を行う。
【００７６】
さらにまた、図１０では、図９と同様、Ａスレーブ３ｂにてウェイクアップ要因が発生しているため（図６中のＳ２００：ＹＥＳ，Ｓ２１０：ＹＥＳ）、Ａスレーブ３ｂにてウェイクアップ要因フラグがセットされる（Ｓ２２０）。したがって、Ａスレーブ３ｂが、ウェイクアップ信号を送信する（Ｓ２５０）。
【００７７】
しかしながら、ここでは、マスタ３ａがクロックパルスを出力せず、応答が得られていない。そのため、Ａスレーブ３ｂは、所定時間Ｔ４が経過しないうちは（Ｓ２８０：ＮＯ）ウェイクアップ信号の送信を繰り返す（Ｓ２５０）。
【００７８】
Ａ〜Ｃのスレーブ３ｂは、クロックパルスが検出されないまま（Ｓ２６０：ＮＯ）所定時間Ｔ４の経過を判断すると（Ｓ２８０：ＹＥＳ）、モード信号ＭＤを「０」にして（Ｓ２９０）、スリープモードを継続する。
【００７９】
次に、マスタ３ａの信号処理部１０で実行されるマスタスリープ処理を説明する。図１１は、マスタスリープ処理を示すフローチャートである。この処理は、マスタ３ａがウェイクアップモードとなっているときに実行される。
【００８０】
最初のＳ４００では、スリープ禁止要因がないか否かを判断する。スリープ禁止要因がある場合、スリープ禁止を示すデータがスレーブ３ｂから送信される。ここでスリープ禁止要因がないと判断された場合（Ｓ４００：ＹＥＳ）、Ｓ４１０へ移行する。一方、スリープ禁止要因があると判断された場合（Ｓ４００：ＮＯ）、Ｓ４００の判断処理を繰り返す。
【００８１】
Ｓ４１０では、任意ＩＤの送信を停止する。この処理は、上述した定期通信を停止するものである。
続くＳ４２０では、スリープ信号を送信する。この信号は、ＵＡＲＴ１１で送受信可能な１ブロックのコマンドである。
【００８２】
次のＳ４３０では、タイマをセットする。続くＳ４４０では、所定時間Ｔ５が経過したか否かを判断する。ここで所定時間Ｔ５が経過したと判断された場合（Ｓ４４０：ＹＥＳ）、Ｓ４５０にてモード信号ＭＤを「０」にしてクロックパルスの出力を停止し、その後、マスタスリープ処理を終了する。つまり、ここでは所定時間Ｔ５だけ待ってクロックパルスの出力を停止する。これは、スレーブ３ｂにスリープに先立つ退避処理を実行させるためである。一方、所定時間Ｔ５が経過していないと判断された場合（Ｓ４４０：ＮＯ）、Ｓ４６０へ移行する。
【００８３】
Ｓ４６０では、ドミナントパルスがあるか否かを判断する。ここでドミナントパルスがあると判断された場合（Ｓ４６０：ＹＥＳ）、Ｓ４７０にて任意ＩＤの送信を開始し、その後、マスタスリープ処理を終了する。この場合、ウェイクアップモードが継続されることになる。一方、ドミナントパルスがないと判断された場合（Ｓ４６０：ＮＯ）、Ｓ４４０からの処理を繰り返す。
【００８４】
次に、スレーブ３ｂの信号処理部３０で実行されるスレーブスリープ処理を説明する。図１２は、スレーブスリープ処理を示すフローチャートである。この処理は、スレーブ３ｂがウェイクアップモードとなっているときに繰り返し実行される。
【００８５】
最初のＳ５００では、スリープ信号を受信したか否かを判断する。この処理は、図１１中のＳ４２０に対応するものである。ここでスリープ信号を受信したと判断された場合（Ｓ５００：ＹＥＳ）、Ｓ５１０にてタイマをセットして、Ｓ５２０へ移行する。一方、スリープ信号を受信していないと判断された場合（Ｓ５００：ＮＯ）、以降の処理を実行せず、スレーブスリープ処理を終了する。
【００８６】
Ｓ５２０では、ウェイクアップ要因があるか否かを判断する。ここでウェイクアップ要因があると判断された場合（Ｓ５２０：ＹＥＳ）、Ｓ５３０にてドミナントパルスを出力し、その後、Ｓ５６０へ移行する。一方、ウェイクアップ要因がないと判断された場合（Ｓ５２０：ＮＯ）、Ｓ５４０にてスリープ前退避処理を行い、Ｓ５５０へ移行する。
【００８７】
Ｓ５５０では、所定時間Ｔ６が経過したか否かを判断する。ここで所定時間Ｔ６が経過したと判断された場合（Ｓ５５０：ＹＥＳ）、Ｓ５６０へ移行する。一方、所定時間Ｔ６が経過していないうちは（Ｓ５５０：ＮＯ）、Ｓ５８０へ移行する。
【００８８】
Ｓ５３０から移行するあるいはＳ５５０にて肯定判断された場合に移行するＳ５６０では、クロックパルスが停止されているか否かを判断する。この処理は、図１１中のＳ４５０に対応するものである。ここでクロックパルスが停止されていると判断された場合（Ｓ５６０：ＹＥＳ）、Ｓ５７０にてモード信号ＭＤを「０」とし、その後、スレーブスリープ処理を終了する。このときは、スレーブ３ｂはスリープモードへ移行する。一方、クロックパルスが停止されていないと判断された場合（Ｓ５６０：ＮＯ）、Ｓ５８０へ移行する。
【００８９】
Ｓ５５０又はＳ５６０で否定判断された場合に移行するＳ５８０では、任意ＩＤを受信したか否かを判断する。この処理は、図１１中のＳ４７０に対応するものである。ここで任意ＩＤを受信したと判断された場合（Ｓ５８０：ＹＥＳ）、スレーブスリープ処理を終了する。このときは、スレーブ３ｂは、ウェイクアップモードを継続する。一方、任意ＩＤを受信していないと判断された場合（Ｓ５８０：ＮＯ）、Ｓ５５０からの処理を繰り返す。
【００９０】
以上、マスタスリープ処理及びスレーブスリープ処理を説明した。これらの処理に対する理解を容易にするため、ここで、図１３及び図１４に基づき、具体例を挙げて説明を加える。
【００９１】
図１３では、マスタ３ａは定期通信を行っており、Ａ〜Ｃのスレーブ３ｂからスリープを禁止する旨のデータが送信されなければ（Ｓ４００：ＹＥＳ）、任意ＩＤの送信を停止し（Ｓ４１０）、スリープ信号を出力する（Ｓ４２０）。その後、ドミナントパルスが出力されないまま所定時間Ｔ５が経過すると（Ｓ４６０：ＮＯ，Ｓ４４０：ＹＥＳ）、クロックパルスの出力を停止する（Ｓ４５０）。これにより、マスタ３ａは、スリープモードへ移行する。
【００９２】
上述したように、マスタ３ａが所定時間Ｔ５の経過を待つのは、Ａ〜Ｃのスレーブ３ｂにスリープ前退避処理を実行させるためである。つまり、Ａ〜Ｃのスレーブ３ｂは、スリープ信号を受信すると（図１２中のＳ５００：ＹＥＳ）、ウェイクアップ要因がなければ（Ｓ５２０：ＮＯ）、スリープ前退避処理を実行する（Ｓ５４０）。そして、所定時間Ｔ６が経過した後（Ｓ５５０：ＹＥＳ）、クロックパルスが停止されていれば（Ｓ５６０：ＹＥＳ）、モード信号ＭＤを「０」にして（Ｓ５７０）、スリープモードへ移行する。
【００９３】
図１４では、マスタ３ａの定期通信に応答しなかったＢスレーブ３ｂに、ウェイクアップ要因が発生している。したがって、Ｂスレーブ３ｂは、マスタ３ａからのスリープ信号を受信した後（図１２中のＳ５００：ＹＥＳ）、ウェイクアップ要因ありと判断し（Ｓ５２０：ＹＥＳ）、ドミナントパルスを出力する（Ｓ５３０）。
【００９４】
このとき、マスタ３ａは、所定時間Ｔ５が経過しないうちに（図１１中のＳ４４０：ＮＯ）ドミナントパルスありとの判断を行い（Ｓ４６０：ＹＥＳ）、任意ＩＤの送信を開始する（Ｓ４７０）。
【００９５】
これにより、Ｂスレーブ３ｂは、例えばイベント通信などにより、スリープの禁止を通知する（図１４参照）。また、Ａ及びＣのスレーブ３ｂも、スリープ信号を受信した後（図１２中のＳ５００：ＹＥＳ）、所定時間Ｔ６が経過した時点で（Ｓ５５０：ＹＥＳ）マスタ３ａからのクロックパルスが停止されていないとの判断を行い（Ｓ５６０：ＮＯ）、任意ＩＤを受信して（Ｓ５８０：ＹＥＳ）、ウェイクアップモードを継続する。
【００９６】
以上詳述したように、本実施形態では、マスタ３ａがウェイクアップ要因の有無を判断し（図５中のＳ１００）、ウェイクアップ要因があると判断すると（Ｓ１００：ＹＥＳ）、モード信号ＭＤを「１」としてクロックパルスをバス通信路５へ出力する（Ｓ１３０）。一方、スレーブ３ｂは、マスタ３ａからのクロックパルスがバス通信路５に出力されているか否かを判定し（図６中のＳ２６０）、クロックパルスが出力されていると判定した場合（Ｓ２６０：ＹＥＳ）、モード信号ＭＤを「１」にして（Ｓ２７０）、ウェイクアップモードへ動作モードを移行する。
【００９７】
このように本実施形態では、スレーブ３ｂのウェイクアップを、マスタ３ａからのクロックパルスで行うようにした。この場合、周期的に立下がる又は立上がるクロックパルスの有無を判定するため、ノイズなどの影響によらず、ウェイクアップモードへの動作モードの切り替えを適切に行うことができる。
【００９８】
また、本実施形態では、スレーブ３ｂでウェイクアップ要因が発生した場合（図６中のＳ２００）、自ノードで発生していれば（Ｓ２１０：ＹＥＳ）、ウェイクアップ要因フラグをセットし（Ｓ２２０）、ウェイクアップ信号を送信する（Ｓ２５０）。このウェイクアップ信号を受信した場合にもマスタ３ａは、ウェイクアップ要因が有ると判断し（図５中のＳ１００：ＹＥＳ）、モード信号ＭＤを「１」としてクロックパルスを出力する（Ｓ１３０）。これにより、スレーブ３ｂは、クロックパルスの出力を判定して（Ｓ２６０）、ウェイクアップモードへ動作モードを移行する。したがって、この場合も、ノイズなどの影響によらず、ウェイクアップモードへの動作モードの切り替えを適切に行うことができる。
【００９９】
さらにまた、本実施形態では、カウント用クロックＣＣＫのタイミングでバス通信路５から受信される受信データＲＸをサンプリングし、周期カウント値Ｃｉ（ｉ＝１，２，…）の中のハイレベル及びロウレベルの比率が所定範囲にあるか否かでクロックパルスの検出を行う。これにより、例えばノイズなどによる瞬間的なエッジの立上がりや立下がりをクロックパルスとして判定してしまうことがなくなり、クロックパルスが出力されているか否かを適切に判定することができる。
【０１００】
また、本実施形態では、マスタ３ａは、起動後、スレーブ３ｂが所定時間Ｔ２以内に起動することを前提に、それよりも長い所定時間Ｔ１が経過するのを待って（図５中のＳ１４０：ＹＥＳ）、任意ＩＤの送信を開始する（Ｓ１５０）。一方、スレーブ３ｂは、モード信号ＭＤを「１」にしてウェイクアップモードへの切り替えを行った後（図６中のＳ２７０）、さらにマスタ３ａからの任意ＩＤを受信してはじめてウェイクアップ処理を終了し（図７中のＳ３００：ＹＥＳ）、通信処理を開始する。これにより、各スレーブ３ｂ間のウェイクアップに要する時間差によりスレーブ３ｂに生じる受信洩れを防止することができる。
【０１０１】
さらにまた、本実施形態では、マスタ３ａは、スリープ禁止要因がない場合（図１１中のＳ４００：ＹＥＳ）、スリープ信号を送信し（Ｓ４２０）、モード信号ＭＤを「０」にしてクロックパルスの出力を停止する（Ｓ４５０）。一方、スレーブ３ｂは、スリープ信号を受信した後（図１２中のＳ５００：ＹＥＳ）、クロックパルスの出力が停止されたことを判定すると（Ｓ５６０：ＹＥＳ）、モード信号ＭＤを「０」にして（Ｓ５７０）スリープモードへ移行する。これにより、比較的簡単にスリープモードへの移行を実現することができる。
【０１０２】
このとき、マスタ３ａは、スリープ信号を送信してから（図１１中のＳ４２０）、所定時間Ｔ５の経過を待って（Ｓ４４０：ＹＥＳ）、クロックパルスの出力を停止する（Ｓ４５０）。一方、スレーブ３ｂは、この所定時間Ｔ５を利用して、スリープ前退避処理を実行する（図１２中のＳ５４０）。これにより、スレーブ３ｂは例えばパラメータなどの退避処理を行うことができ、次回のウェイクアップ時におけるスレーブ３ｂの動作を安定させることができる。
【０１０３】
なお、本実施形態における通信システム１が特許請求の範囲における「通信システム」を構成し、マスタ３ａが「マスタノード」を構成し、スレーブ３ｂが「スレーブノード」を構成し、バス通信路５が「バス通信路」を構成する。
【０１０４】
また、マスタ３ａの信号処理部１０が「要因有無判断手段」を構成し、信号処理部１０及びトランシーバ２０のモード管理部２５が「マスタ制御手段」を構成し、スレーブ３ｂの信号処理部３０が「クロックパルス出力判定手段」及び「ウェイクアップ信号送信手段」を構成し、信号処理部３０及びトランシーバ４０のモード管理部２５が「スレーブ制御手段」を構成する。
【０１０５】
さらにまた、図５中のＳ１００の処理が「要因有無判断手段」の機能としての処理に相当し、図５中のＳ１３０の処理、図１１中のＳ４２０，Ｓ４４０，Ｓ４５０の処理が「マスタ制御手段」の機能としての処理に相当し、図６中のＳ２６０の処理及び図１２中のＳ５６０の処理が「クロックパルス出力判定手段」の機能としての処理に相当し、図６中のＳ２００〜２５０の処理が「ウェイクアップ信号送信手段」の機能としての処理に相当し、図６中のＳ２７０、図７中のＳ３００、図１２中のＳ５４０及びＳ５７０の処理が「スレーブ制御手段」の機能としての処理に相当する。
【０１０６】
［第２実施形態］
上記実施形態では、スレーブ３ｂによるマスタ３ａからのクロックパルスの検出は、カウント用クロックＣＣＫのタイミングでバス通信路５から受信される受信データＲＸをサンプリングし、周期カウント値Ｃｉ（ｉ＝１，２，…）の中のハイレベル及びロウレベルの比率が所定範囲にあるか否かで行っている。例えば図４に示すように、ロウレベルとなっている期間Ａのカウント値とハイレベルとなっている期間Ｂのカウント値との比率が所定範囲にあるか否かを判断するという具合である。
【０１０７】
これに対し、本実施形態は、図３に破線で示すようにスレーブ３ｂがクロック検出回路４３を備える点で、上記実施形態と異なる。そこで、ここでは、クロック検出回路４３の構成を説明する。
【０１０８】
クロック検出回路４３は、受信バッファ２４からの受信データＲＸを入力とし、クロック検出信号ＣＳをモード管理部２５へ出力する。クロック検出回路４３は、図１５に示すように、立下がりエッジ検出回路４４及び、エッジ間隔判定回路４５で構成されている。ここで立下がりエッジ検出回路４４はエッジ検出信号ＥＤを出力し、当該エッジ検出信号ＥＤに基づいて、エッジ間隔判定回路４５がクロック検出信号ＣＳを出力する。
【０１０９】
エッジ検出回路４４について説明する。図１６（ａ）はエッジ検出回路４４の構成を示す回路図であり、図１６（ｂ）はエッジ検出回路４４の各部の信号を示すタイミングチャートである。
【０１１０】
図１６（ａ）に示すように、エッジ検出回路４４は、受信データＲＸの信号レベルを反転させる反転回路（ＮＯＴゲート）５１と、受信データＲＸおよびＮＯＴゲート５１の出力、即ち、受信データＲＸの反転信号を入力とし、その両方がロウレベルの時に出力がハイレベルとなる否定論理和回路（ＮＯＲゲート）５２からなり、ＮＯＲゲート５２の出力をエッジ検出信号ＥＤとして出力する。
【０１１１】
このように構成されたエッジ検出回路４４は、図１６（ｂ）に示すように、エッジ検出信号ＥＤとして、受信データＲＸがレセッシブからドミナントに変化する立下がりエッジのタイミング毎に、ＮＯＴゲート５１の遅延時間分の幅を有するパルス信号を出力する。
【０１１２】
続いて、エッジ間隔判定回路４５について説明する。図１７はエッジ間隔判定回路４５の構成を示す回路図であり、図１８はエッジ間隔判定回路４５の各部の信号を示すタイミングチャートである。
【０１１３】
図１７に示すように、エッジ間隔判定回路４５は、スイッチ６１、コンデンサ６２、定電流源６３、判定回路７０、及び、ラッチ回路８０を備えている。
コンデンサ６２は、その一端が接地されており、スイッチ６１は、コンデンサ６２の非接地端を、定電流源６３又はグランド（ＧＮＤ）のいずれかに接続する。詳細には、スイッチ６１は、エッジ検出信号ＥＤがロウレベルの間はコンデンサ６２の非接地端を定電流源６３に接続する。一方、エッジ検出信号ＥＤがハイレベルの間はコンデンサ６２の非接地端をＧＮＤに接続する。判定回路７０には、コンデンサ６２の非接地端の電圧（以下「充電電圧」という）Ｖｃが入力される。
【０１１４】
判定回路７０は、直列接続された３個の抵抗からなり電源電圧ＶＣＣを分圧して、閾値電圧Ｖｔ１，Ｖｔ２を発生させる分圧回路７１と、反転入力端子に閾値電圧Ｖｔ１、非反転入力端子に充電電圧Ｖｃが印加されるコンパレータ７２と、反転入力端子に充電電圧Ｖｃ，非反転入力端子に閾値電圧Ｖｔ２が印加されるコンパレータ７３と、両コンパレータ７２，７３の出力ＪＨ，ＪＬを入力として、両者がいずれもハイレベルの時にハイレベルとなる判定信号ＤＪを出力する論理積回路（ＡＮＤゲート）７４とからなる。
【０１１５】
ラッチ回路８０は、入力端子に判定信号ＤＪが印加され、クロック端子ＣＫにエッジ検出信号ＥＤが印加され、リセット端子ＣＬＲにコンパレータ７２の出力ＪＨが印加されるように接続されたＤ型フリップフロップ回路からなる。
【０１１６】
このように構成されたエッジ間隔判定回路４５では、エッジ検出信号ＥＤがハイレベルになると、スイッチ６１によりコンデンサ６２の非接地端がＧＮＤに接続される。これにより、図１８に示すように、コンデンサ６２は放電し、充電電圧Ｖｃが降下する。一方、エッジ検出信号ＥＤがロウレベルになると、スイッチ６１によりコンデンサ６２の非接地端がＶＣＣに接続される。これにより、図１８に示すように、コンデンサ６２は充電されて、充電電圧ＶＣが上昇する。
【０１１７】
このとき、図１８に示すように、充電電圧Ｖｃが閾値電圧Ｖｔ１以下になる区間では、コンパレータ７２の出力ＪＨがハイレベルとなる。また、充電電圧Ｖｃが閾値電圧Ｖｔ２以上になる区間では、コンパレータ７３の出力ＪＬがハイレベルとなる。これら出力ＪＨ，ＪＬの論理積が論理積回路７４の判定信号ＤＪとなる。ラッチ回路８０は、判定信号ＤＪをエッチ検出信号ＥＤのタイミングでラッチする。その結果、ラッチ回路８０からのクロック検出信号ＣＳは図１８のようになり、バス通信路５上にクロックパルスが出力されたときにのみ、ハイレベルとなる。
【０１１８】
このように構成されたクロック検出回路４３を用いれば、図６中のＳ２６０及びＳ２７０の処理、及び、図１１中のＳ５６０及びＳ５７０の処理をハードウェアで実現できる。
以上詳述したように、本実施形態によっても、上記実施形態と同様の効果が奏される。また、本実施形態のクロック検出回路４３によれば、バス通信路５上にマスタ３ａからのクロックパルスが出力されたときだけクロック検出信号ＣＳがハイレベルとなるため、ノイズなどによる瞬間的なエッジの立上がりや立下がりをクロックパルスとして判定してしまうことがなくなり、クロックパルスが出力されているか否かを適切に判定することができる。また、この場合はハードウェアによる構成であるため、クロックパルスの判定から動作モードの切り替えまでを瞬時に行うことができる。
【０１１９】
なお、本実施形態では、特に、スレーブ３ｂのクロック検出回路４３が特許請求の範囲における「クロックパルス出力判定手段」を構成し、詳しくは、立下がりエッジ検出回路４５が「エッジ検出回路」に相当し、エッジ間隔判定回路４５が「エッジ間隔判定回路」に相当する。
【０１２０】
以上、本発明は、上述した実施形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において種々なる形態で実施することができる。
【符号の説明】
【０１２１】
１：通信システム、３：ノード、３ａ：マスタノード、３ｂ：スレーブノード、５：バス通信路、１０，３０：信号処理部、１１：ＵＡＲＴ（汎用非同期送受信回路）、１２：発振回路、２０，４０：トランシーバ、２１，４１：タイミング生成部、２２，４２：符号化復号化部、２３：送信バッファ、２４：受信バッファ、２５：モード管理部、４３：クロック検出回路、４４：立下がりエッジ検出回路、４５：エッジ間隔判定回路、５１：ＮＯＴゲート、５２：ＮＯＲゲート、６１：スイッチ、６２：コンデンサ、７０：判定回路、７１：分圧回路、７２，７３：コンパレータ、７４：ＡＮＤゲート、８０：ラッチ回路
【図１】
0005617795.tif 000002
【図２】
0005617795.tif 000003
【図３】
0005617795.tif 000004
【図４】
0005617795.tif 000005
【図５】
0005617795.tif 000006
【図６】
0005617795.tif 000007
【図７】
0005617795.tif 000008
【図８】
0005617795.tif 000009
【図９】
0005617795.tif 000010
【図１０】
0005617795.tif 000011
【図１１】
0005617795.tif 000012
【図１２】
0005617795.tif 000013
【図１３】
0005617795.tif 000014
【図１４】
0005617795.tif 000015
【図１５】
0005617795.tif 000016
【図１６】
0005617795.tif 000017
【図１７】
0005617795.tif 000018
【図１８】
0005617795.tif 000019