(第1の実施形態)
以下、本発明の第1の実施形態に係るネットワークシステムについて説明する。
先ず、図1を参照して、第1の実施形態に係るネットワークシステム1の構成について説明する。図1は、第1の実施形態に係るネットワークシステム1の構成を示すブロック図である。なお、以下に説明する各実施形態では、一例として、ネットワークシステム1が車両に搭載された車載ネットワークである場合について説明する。
図1に示すように、ネットワークシステム1は、第1ネットワークと第2ネットワークとをゲートウェイ装置11で相互に接続して構成される。第1ネットワークは通信バス12と、各々通信バス12に接続するECU121およびECU122とを備える。また、第2ネットワークは通信バス13と、各々通信バス13に接続するECU131およびECU132とを備える。
ECU121、ECU122、ECU131、およびECU132は、所謂、ECU(Electronic Control Unit)である。各ECUは、各々、車両に搭載されるエンジンやメーター装置等の車載装置を制御する。各ECUは、他のECUの制御処理で用いられるデータを、自機が接続する通信バスへ、ブロードキャスト方式で送信する。また、各ECUは、他のECUから送信されたデータを、自機が接している通信バスを介して受信し、当該データに基づいた制御処理を行う。
なお、各ECUは、ウェイクモードまたはスリープモードの何れかのモードで動作する。ウェイクモードは、通常の制御処理を行う動作モードである。スリープモードは、データの送受信等、ウェイクモード時に実行する処理の一部を停止した動作モードである。スリープモードは、ウェイクモードに比べて、電力の消費が小さい。各ECUは、スリープ移行指示データを受信した場合に、ウェイクモードからスリープモードへ動作のモードを切り替える。
通信バス12および通信バス13は、車両に搭載される通信回線である。通信バス12および通信バス13上には、各ECUおよびゲートウェイ装置11から送信されるデータが流れる。
ゲートウェイ装置11は、自機に接続される各ネットワークを制御する装置である。ゲートウェイ装置11は、処理装置111、記憶装置112、およびインターフェース回路(図示せず)などを備える。処理装置111は、典型的にはCPU(Central Processing Unit)などの情報処理装置である。記憶装置112は、典型的にはメモリなどの記憶装置である。処理装置111は、通信バス12および通信バス13に接続され、各通信バスを介して受信したデータを他方の通信バスへ中継する。また、処理装置111は、各ECUから受信したデータに基づいて、スリープ移行指示データを送信可能な通信バスを判定する。そして、処理装置111は、スリープ移行指示データを送信可能と判定した通信バスへ、スリープ移行指示データを各通信バスへ送信する。
なお、車両には、BAT系統、ACC系統、IG系統などの複数の系統の電源線が用意されており、処理装置111は、BAT系統の電源線と、IG系統の電源線とが接続される。BAT系統の電源線には、常時バッテリーからの電力が供給される。IG系統の電源線には、車両のエンジンが始動した状態である時にのみ電力が供給される。処理装置111は、BAT系統の電源により常時供給される電力により駆動する。
上記のような構成のネットワークシステム1において、各ECUおよび処理装置111は、所謂、CAN(Controller Area Network)プロトコルに基づいたマルチマスタ・ブロードキャスト方式で通信を行う。つまり、各ECUおよび処理装置111は、データを、各々が接続する通信バスを介してブロードキャスト送信する。
次いで、第1の実施形態に係る各ECUが送受信するデータの形式について図2を参照して説明する。図2は、第1の実施形態に係る各ECUが送受信するデータの形式の一例を示す図である。各ECUが送受信するデータは、ヘッダフィールド41、データフィールド42、およびスリープ可否情報フィールド43の各ビット領域で構成されるデジタルデータである。ヘッダフィールド41は、データの開始を示すビット領域である。データフィールド42は、データの内容が格納されるビット領域である。スリープ可否情報フィールド43は、データを送信したECUがスリープモードへ移行可能か否かを示すスリープ可否情報が格納されるビット領域である。スリープ可否情報には、ECUコードとスリープ可否フラグが含まれる。ECUコードは、データを送信したECUを示す識別コードである。スリープ可否フラグは、データを送信したECUがスリープモードへの移行可能か否かを示すフラグデータである。スリープ可否フラグの状態が可である場合、ECUがスリープモードへの移行が可能であることを示す。スリープ可否フラグの状態が不可である場合、ECUがスリープモードへの移行が不可能であることを示す。第1の実施形態に係る各ECUは、スリープ可否情報を織り込んだデータを通信バスへ送信することにより、自機がスリープモードへ移行可能か否かをゲートウェイ装置11へ送信することができる。
なお、上記のデータ形式は一例であり、データにスリープ可否情報が含まれるデータ形式であれば、ECUが送受信するデータの形式は上記図2に示すものに限らずとも良い。
次いで、処理装置111が実行する処理について図3を参照して説明する。図3は、第1の実施形態に係る処理装置111が実行するスリープ制御処理を示すフローチャートの一例である。スリープ制御処理は、ネットワークに接続されたECUのモードをスリープモードへ切り替える処理である。処理装置111は、ゲートウェイ装置11に車両に搭載されるBAT系統の電源が供給されている間、図3に示すスリープ制御処理を実行する。処理装置111は、図3に示すスリープ制御処理を開始すると、先ず、ステップS10の処理を実行する。なお、処理装置111は、図3に示すスリープ制御処理と並行して、第1ネットワークおよび第2ネットワーク間でデータを中継する従来周知の中継処理を実行する。
ステップS10において、処理装置111は、車両のIG電源がオフか否かを判定する。具体的には、処理装置111は、IG系統の電源線から電力が供給されているか否かを判定する。処理装置111は、IG系統の電源線から電力が供給されていない場合、車両のIG電源がオフであると判定して、処理をステップS11へ進める。一方、処理装置111は、IG系統の電源線から電力が供給されている場合、車両のIG電源がオンであると判定して、後述ステップS11からステップS17の処理を省略して処理をステップS18へ進める。
処理装置111は、後述ステップS11からステップS17の処理において、スリープモードへ移行可能なECUを判別し、当該ECUをスリープモードへ移行させる。しかしながら、一般的に、IG電源がオンである場合、すなわち、車両のエンジンが始動している状況では、車両に搭載されるECUの大多数がウェイクモードで動作するため、各ECUのモードをスリープモードへ移行する必要が無い。したがって、上記ステップS10の処理によれば、IG電源がオンである場合、不要な処理を省略して、処理装置111の処理量を低減することができる。
ステップS11において、処理装置111は、データを受信したか否かを判定する。具体的には、処理装置111は、接続されている通信バス12または通信バス13の何れかからデータを受信したか否かを判定する。処理装置111は、データを受信したと判定した場合、処理をステップS12へ進める。一方、処理装置111は、データを受信していないと判定した場合、ステップS12およびステップS13の処理を省略して、処理をステップS14へ進める。
ステップS12において、処理装置111は、受信データからスリープ可否情報を抽出する。具体的には、処理装置111は、上記ステップS11において受信したデータのスリープ可否情報フィールド43に格納されたスリープ許可情報のみを取得する。ステップS12の処理を完了すると、処理装置111は、処理をステップS13へ進める。
ステップS13において、処理装置111は、スリープ可否テーブルを更新する。スリープ可否テーブルは、各ECUがスリープ可能であるか否かを表すテーブルデータである。スリープ可否テーブルは、予め記憶装置112に記憶される。図4は、スリープ可否テーブルの一例である。図4に示すスリープ可否テーブルにおいて、1行目各列には各ECUを示し、2行目各列には各ECUのスリープ可否フラグの状態を示す。図4では、例えば、ECU121、ECU122、およびECU132のスリープ可否フラグが可であり、ECU131のスリープ可否フラグが不可であることを示す。本ステップS13において、先ず、処理装置111は、スリープ可否テーブル中で、スリープ可否情報中のECUコードに対応する列を探索する。次いで、処理装置111は、探索した列の2行目に示されるスリープ可否フラグの内容を、スリープ可否情報中のスリープ可否フラグの内容で上書きする。ステップS12の処理を完了すると、処理装置111は、処理をステップS14へ進める。
ステップS14において、処理装置111は、タイマー値Tをカウントアップする。タイマー値Tは、記憶装置112に記憶される変数である。処理装置111は、記憶装置112からタイマー値Tの値を読み出し、当該タイマー値Tに予め定められた定数を加算して、記憶装置112に上書き記憶する。ステップS14の処理を完了すると、処理装置111は、処理をステップS15へ進める。
ステップS15において、処理装置111は、タイマー値Tが処理周期Tth以上であるか否かを判定する。処理周期Tthは、記憶装置112に予め記憶された定数である。処理周期Tthは、後述ステップS16のスリープ許可処理を繰り返し実行する時間間隔を示す値である。処理装置111は、記憶装置112から、タイマー値Tおよび処理周期Tthの値を読み出し、各々の値の大小を比較する。処理装置111は、タイマー値Tが処理周期Tth以上である場合、処理をステップS16へ進める。一方、処理装置111は、タイマー値Tが処理周期Tth未満である場合、処理をステップS11へ戻す。
なお、上記処理周期Tthは任意の数値に設定して構わない。例えば、処理周期Tthの値は、ネットワークの通信周期の値に応じて設定するなどして良い。なお、本実施形態では、処理周期Tthの値は、各ECUがデータを通信するネットワークの通信周期の5倍程度の長さに設定するものとする。
上記ステップS11からステップS15の処理によれば、処理周期Tthが経過するまでの間に処理装置111が受信したデータに基づいて、スリープ可否テーブルが更新される。
ステップS16において、処理装置111は、スリープ判定処理のサブルーチン処理を実行する。スリープ判定処理は、スリープモードへ移行させて良いECUを特定する処理である。以下、図5を参照して、本ステップS16において実行されるスリープ判定処理の詳細について説明する。図5は、第1の実施形態に係るスリープ判定処理のサブルーチンを示すフローチャートの一例である。処理装置111は、図5のスリープ判定処理のサブルーチン処理を開始すると、先ず、ステップS161の処理を実行する。
ステップS161において、処理装置111は、スリープ可否テーブルに基づいてスリープ許可フラグテーブルを作成する。スリープ許可フラグテーブルは、各ECUのスリープ許可フラグの状態を示すテーブルデータである。スリープ許可フラグは、ECUに対して処理装置111がスリープ移行指示データを送信可能か否かを示すフラグである。あるECUのスリープ許可フラグがOKである場合、処理装置111は、当該ECUに対してスリープ移行指示データを送信可能である。一方、あるECUのスリープ許可フラグがNGである場合、処理装置111は、当該ECUに対してスリープ移行指示データを送信不可能である。また、スリープ許可フラグテーブルでは、各ECUがどの通信バスに接続されているか示される。
図6は、スリープ許可フラグテーブルの一例である。図6のように、スリープ許可フラグテーブルの1行目には、処理装置111に接続されるネットワークが示される。スリープ許可フラグテーブルの2行目には、1行目に示された各ネットワークに属するECUが示される。スリープ許可フラグテーブルの3行目には、2行目に示される各ECUのスリープ許可フラグの状態が示される。本ステップS161において、処理装置111は、スリープ可否テーブルにおいてスリープ可であると示されていたECUについては、スリープ許可フラグをOKとし、スリープ可否テーブルにおいてスリープ不可であると示されていたECUについては、スリープ許可フラグをNGとしてスリープ許可フラグテーブルを作成する。したがって、図4に示すスリープ可否テーブルに基づいてスリープ許可フラグテーブルを作成した場合、図6に示すように、ECU121、ECU122、およびECU132のスリープ許可フラグがOKに設定され、ECU131のスリープ許可フラグがNGに設定される。
但し、上記ステップS161で作成された時点において、スリープ許可フラグテーブルは、各ECUの協調動作が考慮されていない。つまり、一のECU自身が各々スリープモードへ移行可能であるとしてスリープ可否情報を送信していても、当該ECUとデータを送受信して協調した処理動作を行う他のECU(以下、協調対象ECUと呼称する)がウェイクモードで動作している場合がある。以下、上記のように、データを互いに送受信して協調した動作を現時点において行っている、送信側のECU、および受信側のECU双方を、総称して協調ECUと呼称する。協調ECUは、何れもウェイクモードで動作する必要があるため、上記のような場合、上記一のECUの正常な処理動作を維持するために、上記協調対象ECUの動作モードをウェイクモードに維持する必要がある。したがって、協調対象ECUのスリープ許可フラグをNGに更新し、スリープモードへ移行できない状態とすることが望ましい。そのため、処理装置111は、後述ステップS162からステップS164の処理により、協調動作のためにウェイクモードで動作すべき協調対象ECUを判別し、スリープ許可フラグテーブル上において当該ECUのスリープ許可フラグをNGに更新する処理を行う。この処理により協調ECUのスリープ許可フラグを全てNGに設定することができる。
ステップS162において、処理装置111は、全ECUのスリープ可否フラグがスリープ可であるか否かを判定する。処理装置111は、スリープ可否テーブルを参照し、全てのECUのスリープ可否フラグがスリープ可に設定されているか判定する。全てのECUのスリープ可否フラグがスリープ可である場合、処理装置111は、スリープ判定処理を完了し、処理を図3のフローチャートのステップS17へ進める。一方、何れかのECUのスリープ可否フラグがスリープ不可である場合、処理装置111は処理をステップS163へ進める。
ステップS163において、処理装置111は、スリープ不可のECUを一つ選択する。具体的には、スリープ可否テーブルにおいてスリープ可否フラグがスリープ不可に設定されているECUを探索し、選択する。以下、本ステップS163において選択したECUを選択ECU−Aと呼称する。なお、処理装置111は、既に選択したECUは選択しないものとする。例えば、上記ステップS163の処理により、図4に示すスリープ可否テーブルでは、選択ECU−AとしてECU131が選択される。ステップS163の処理を完了すると、処理装置111は、処理をステップS164へ進める。
ステップS164において、処理装置111は、選択ECU−Aの協調対象ECUを協調ECU判別テーブルAに基づいて抽出する。協調ECU判別テーブルAは、各ECUが他のどのECUと協調して動作するかを示したテーブルデータである。協調ECU判別テーブルAは、予め記憶装置112に記憶される。
図7は、第1の実施形態に係る協調ECU判別テーブルAの一例を示す図である。図7に示す協調ECU判別テーブルAにおいて、各行はデータを送信するECUを示し、各列は当該データを受信して処理動作を行うECUを示す。そして、各行に示す送信側のECUからデータを受信する受信側のECUについては、対応する列に○印を付す。つまり、各行に示されるECUは、○印が付された列に対応するECUと協調して動作する。例えば、図7に示す協調ECU判別テーブルAよれば、ECU131は、ECU132と協調して動作する。本ステップS164において、処理装置111は、協調ECU判別テーブルA中、選択ECU−Aに対応する行を探索する。そして、処理装置111は、当該行において○印が付されているECUを抽出して、当該ECUと協調動作する協調対象ECUを抽出する。ステップS164の処理を完了すると、処理装置111は、処理をステップS165へ進める。
例えば、選択ECU−AとしてECU131が選択されている場合、図7に示す協調ECU判別テーブルAに基づいて、ECU131の協調対象ECUであるECU132が抽出される。このように、上記ステップS164の処理によれば、ネットワーク上の何れかのECUと協調して動作するECUを特定して抽出することができる。
ステップS165において、処理装置111は、協調対象ECUのスリープ許可フラグをNGに更新する。例えば、ステップS164においてECU132が抽出されている場合、処理装置111は図6に示すスリープ許可フラグテーブルにおいて、OKに設定されていたECU132のスリープ許可フラグを、図8に示すようにNGに更新する。図8は、更新後のスリープ許可フラグテーブルを示す図である。ステップS165の処理を完了すると、処理装置111は処理をステップS166へ進める。
ステップS166において、処理装置111は、スリープ不可のECUを全て選択したか否かを判定する。具体的には、スリープ可否テーブルにおいてスリープ可否フラグがスリープ不可に設定されているECUを全て選択したか否かを判定する。処理装置111は、スリープ可否フラグがスリープ不可に設定されているECUを全て選択した場合、スリープ判定処理を完了し、処理を図3のフローチャートのステップS17へ進める。一方、スリープ可否フラグがスリープ不可に設定されているECUで未選択のECUが存在する場合、処理装置111は、処理をステップS163へ戻す。
上記ステップS162からステップS166の処理によれば、協調ECUのスリープ許可フラグがNGに設定される。具体的には、スリープモードへの移行を不可とするスリープ可否情報を送信したECUのスリープ許可フラグ、および当該ECUと協調して動作する協調対象ECUのスリープ許可フラグがNGに設定される。
このように、図5に示すスリープ判定処理によれば、ECU同士の協調関係を示す協調ECU判別テーブルAに基づいて、ウェイクモードに維持させるべきECUおよびスリープモードへ移行可能なECUを個別に特定することができる。
なお、上記ステップS164およびステップS165の処理では、選択ECU−Aからデータを受信して処理動作を行うECUを、選択ECU−Aと協調動作する協調対象ECUとした例について説明したが、処理装置111は、選択ECU−Aに対してデータを送信するECUを、当該選択ECU−Aと協調動作する協調対象ECUとしても構わない。つまり、選択ECU−Aが動作処理に用いるデータを送信するECUのスリープ許可フラグをNGに更新しても構わない。例えば、協調ECU判別テーブルAにおいて、各行がデータを受信する側のECUを示し、各列がデータを送信する側のECUを示すように設定する。そして、選択ECU−Aに対してデータを送信するECUを協調ECUとして抽出する。このように抽出された協調ECUのスリープ許可フラグをNGに設定することにより、送信側のECUのスリープ許可フラグをNGに設定することができる。
図3の説明に戻り、ステップS17において、処理装置111は、スリープ指示処理のサブルーチンを実行する。スリープ指示処理は、処理装置111が各ネットワーク上のECUのモードを、ネットワーク単位でスリープモードへ移行させる処理である。以下、図9のフローチャートを参照してスリープ指示処理について説明する。なお、図9は第1の実施形態に係るスリープ指示処理のサブルーチンを示すフローチャートの一例である。処理装置111は、スリープ指示処理のサブルーチンを開始すると、先ず、ステップS171の処理を開始する。
ステップS171において、処理装置111は、ネットワークを一つ選択する。具体的には、処理装置111は、自機に接続される第1ネットワークまたは第2ネットワークの何れかを選択する。以下、本ステップS171において選択したネットワークを選択ネットワークと呼称する。ステップS171の処理を完了すると、処理装置111は、処理をステップS172へ進める。
ステップS172において、処理装置111は、選択ネットワーク上の全ECUのスリープ許可フラグがOKであるか否かを判定する。具体的には、処理装置111は、記憶装置112に記憶されたスリープ許可フラグテーブルを参照し、選択ネットワークに属する全ECUのスリープ許可フラグがOKであるか否か判定する。例えば、選択ネットワークとして第1ネットワークが選択されている場合、処理装置111は、図8に示すスリープ許可フラグテーブルを参照し、ECU121およびECU122のスリープ許可フラグが何れもOKであるか否かを判定する。処理装置111は、選択ネットワークに属する全ECUのスリープ許可フラグがOKであると判定した場合、処理をステップS173に進める。一方、処理装置111は、選択ネットワークに属するECUのスリープ許可フラグが一つでもNGである場合、処理をステップS174へ進める。
ステップS173において、処理装置111は、選択ネットワークにスリープ移行指示データを送信する。具体的には、処理装置111は、選択ネットワーク上の各ECUへスリープ移行指示データを、当該選択ネットワークと処理装置111とを接続する通信バスを介して、ブロードキャスト方式で送信する。ステップS173の処理を完了すると、処理装置111は処理をステップS174へ進める。
上記ステップS172およびステップS173の処理によれば、選択ネットワーク上の全ECUのスリープ許可フラグがOKである場合にのみ、当該選択ネットワーク上の全ECUの動作モードがスリープモードへ移行される。
ステップS174において、処理装置111は、全てのネットワークを選択したか否かを判定する。具体的には、処理装置111は、自機に接続されている全てのネットワークをステップS171の処理において選択したか否かを判定する。処理装置111は、全てのネットワークを選択したと判定した場合、スリープ指示処理を完了して、処理を図3のフローチャートのステップS18へ進める。一方、処理装置111は、選択していないネットワークがあると判定した場合、処理をステップS171へ戻す。
上記ステップS174の処理によれば、全てのネットワークについて、ステップS172の判定処理を実行するまで、上記ステップS171からステップS173の処理が繰り返し実行される。
上記スリープ指示処理において、例えば、選択ネットワークとして第1ネットワークが選択されている場合、図8に示すスリープ許可フラグテーブルを参照すると、当該第1ネットワークに属するECU121およびECU122のスリープ許可フラグが何れもOKであるので、処理装置111は、通信バス12へスリープ移行指示データを送信する。一方、選択ネットワークとして第2ネットワークが選択されている場合、当該第2ネットワークに属するECU131およびECU132のスリープ許可フラグが何れもNGであるので、処理装置111は、ステップS173の処理を実行せず、通信バス13へはスリープ移行指示データを送信しない。
このように、図9に示すスリープ指示処理によれば、接続される全てのECUのスリープ許可フラグがOKであるネットワークにのみ、スリープ移行指示データが送信され、当該ネットワーク上の全てのECUがスリープモードへ移行する。なお、スリープモードへ移行不可のECUと協調動作するECUのスリープ許可フラグは上述図5のスリープ判定処理において予めNGに設定されるため、スリープモードへ移行不可のECUと協調動作するECUは、図9のスリープ指示処理においてスリープモードへ移行されることがなく、ウェイクモードに維持される。
図3のフローチャートの説明に戻り、ステップS18において、処理装置111は、タイマー値Tをリセットする。具体的には、処理装置111は、記憶装置112に記憶されるタイマー値Tを初期値に戻して上書きする。ステップS18の処理を完了すると、処理装置111は、処理をステップS19へ進める。
ステップS19において、処理装置111は、電力が供給されているか否かを判定する。具体的には、処理装置111は、電源装置からの電力が供給されているか否かを判定する。処理装置111は、電源装置から電力が供給されている場合、処理をステップS10へ戻す。一方、処理装置111は、電源装置から電力が供給されていない場合、図3の処理を終了する。
以上より、第1の実施形態に係るネットワークシステム1によれば、ネットワーク単位で各ECUをウェイクモードからスリープモードへ移行させることができる。上記の通り、スリープモードはウェイクモードより消費電力量が小さいため、ネットワーク単位で各ECUの動作モードを移行させることにより、ネットワークシステム1において消費される電力を効率良く低減することができる。また、ネットワークシステム1では、他のECUと協調した動作処理を実行中のECUが接続されるネットワークについてはスリープ移行指示データが送信されないため、当該ECUはウェイクモードに維持される。そのため、上記ECUは協調した動作処理を維持することができる。
また、上記第1の実施形態に係るネットワークシステム1では、協調ECU判別テーブルを予め記憶装置112に記憶しているため、各ECUから送信される動作モードの移行に関する情報(スリープ可否情報)に含まれる情報量が少なくても、協調ECUを判別することができる。
なお、上記第1の実施形態では、各ECUが、スリープ可否情報を従来送信していたデータの一部に織り込んで送信する例について説明したが、各ECUは、スリープ可否情報を示すデータを従来送信していたデータとは別途に送信しても構わない。
(第2の実施形態)
上記第1の実施形態では、処理装置111が、ECU同士の協調関係を示す協調ECU判別テーブルAに基づいて、協調ECUを特定する例について説明したが、処理装置111は、ネットワークシステムを流れるデータの種別と、各データを用いて協調動作するECUとの対応関係を示す協調ECU判別テーブルBに基づいて、協調ECUを判別しても構わない。以下、第2の実施形態に係るネットワークシステムについて説明する。なお、第2の実施形態に係るネットワークシステムの構成は第1の実施形態に係るネットワークシステムと同様であるので、当該構成についての詳細な説明は省略する。
先ず、第2の実施形態に係る各ECUが送受信するデータの形式について、図10を参照して説明する。図10は、第2の実施形態に係る各ECUが送受信するデータの形式の一例を示す図である。第2の実施形態に係る各ECUが送受信するデータは、ヘッダフィールド41およびデータフィールド42の各ビット領域で構成されるデジタルデータである。ここで、データフィールド42は、さらにコマンドフィールド421およびパラメータフィールド422から構成される。コマンドフィールド421は、データの種別を示すコマンドコードが格納されるビット領域である。コマンドコードは、例えば、エンジンの回転数や、車室内の温度などの、データの種別を示す。パラメータフィールド422は、当該データのパラメータを示すビット領域である。例えば、データがエンジンの回転数を示すデータである場合、5000rpmなどの回転数の数値情報がパラメータフィールド422に格納される。
各ECUは、コマンドコードが異なる複数の種別のデータを送信している。処理装置111は、データを受信すると、当該データのコマンドコードを識別し、当該データを用いて制御処理を行うECUが接続されたネットワークへ当該データを中継するフィルタリング処理を、スリープ制御処理と並行して実行する。なお、第2の実施形態では、各ECUは、データの送信が不要な場合には、データを送信しないものとする。
次いで、図11を参照して、第2の実施形態に係る処理装置111の処理について説明する。図11は、第2の実施形態に係る処理装置111が実行するスリープ制御処理を示すフローチャートの一例である。第2の実施形態に係る処理装置111は、第1の実施形態と同様に、車両に搭載される電源装置からゲートウェイ装置11へ電源が供給されている間、図11に示すスリープ制御処理を実行する。処理装置111は、図11に示すスリープ制御処理を開始すると、先ず、ステップS20の処理を実行する。
ステップS20において、処理装置111は、上述ステップS10の処理と同様にしてIG系統の電源がオフであるか否かを判定する。処理装置111は、IG系統の電源線から電力が供給されていない場合、車両のIG電源がオフであると判定して、処理をステップS21へ進める。一方、処理装置111は、IG系統の電源線から電力が供給されている場合、車両のIG電源がオンであると判定して、後述ステップS21からステップS27の処理を省略して処理をステップS28へ進める。
ステップS21において、処理装置111は、上述ステップS11の処理と同様にしてデータを受信したか否かを判定する。処理装置111は、データを受信したと判定した場合、処理をステップS22へ進める。一方、処理装置111は、データを受信していないと判定した場合、ステップS22およびステップS23の処理を省略して、処理をステップS24へ進める。
ステップS22において、処理装置111は、受信データのコマンドコードを抽出する。具体的には、上記ステップS21において受信した受信データのコマンドフィールド421に格納されたコマンドコードを抽出する。ステップS22の処理を完了すると、処理装置111は、処理をステップS23へ進める。
ステップS23において、処理装置111は、コマンドコードおよび協調ECU判別テーブルBに基づいて、受信データテーブルAを更新、または作成する。
協調ECU判別テーブルBは、各コマンドコードを有するデータと、当該各データを用いて制御処理を行うECUとの対応関係を示すテーブルデータである。協調ECU判別テーブルBは、予め記憶装置112に記憶される。図12は、協調ECU判別テーブルBの一例を示す図である。図12に示す協調ECU判別テーブルBおいて、各行は、データに含まれる各コマンドコードに対応する。また、協調ECU判別テーブルBにおいて、各列は、処理装置111に接続するネットワーク上の各ECUに対応する。図12の協調ECU判別テーブルBでは、各行において、当該行のデータを用いて制御処理を行うECUを、当該ECUを示す列に○印を付して示す。
第2の実施形態に係る受信データテーブルAは、処理装置111が受信したデータと、当該データを用いて制御処理を行うECUとの対応関係を示すテーブルである。図13は、第2の実施形態に係る処理装置111が作成する受信データテーブルAの一例を示す図である。受信データテーブルAにおいて、各行は、ステップS21の処理で受信したデータを示す。また、受信データテーブルAにおいて、2列目は各データのコマンドコードに対応し、3列目以降の各列は、処理装置111に接続する各ネットワーク上の各ECUに対応する。図13に示す受信データテーブルAでは、各行において、当該行のデータを送受信して制御処理を行うECUを示す列に○印を付して、各データと、当該データを送受信して制御処理を行うECUとの対応関係を示す。
ここで、処理装置111が受信したデータは、第1ネットワークまたは第2ネットワーク上のECUの何れかから送信されたデータである。したがって、受信データテーブルA中で○印が付された列に対応するECUは、ネットワークシステム上の何れかのECUにとっての協調対象ECUであり、且つ、当該ECUと現時点で協調動作する協調ECUであるといえる。
本ステップS23における処理装置111の具体的な処理について説明する。先ず、処理装置111は、受信データテーブルAが作成されているか否かを判定する。受信データテーブルAが作成されていない場合、処理装置111は、ステップS21の処理で受信したデータに対応する行を1行目として新たに受信データテーブルAを作成する。受信データテーブルAが既に作成されている場合、処理装置111は、ステップS21の処理で受信したデータに対応する行を受信データテーブルAに追加する。
次いで、処理装置111は、上記協調ECU判別テーブルB上で、ステップS22において抽出したコマンドコードに対応した行を探索し、○印が付された列に対応するECU、すなわち協調ECUを抽出する。そして、処理装置111は、上記受信データテーブルAに追加または作成した行で、上記の通り抽出した協調ECUに対応する列に○印を付す。
例えば、受信データのコマンドコードがDである場合、先ず、処理装置111は、図13の4行目に示すように上記コマンドコードDの受信データに対応する行を受信データテーブルAに追加する。次いで、処理装置111は、図12に示す協調ECU判別テーブルBを参照し、ECU131およびECU132を協調ECUとして抽出する。そして、処理装置111は、図13の4行目に示すように、協調ECU判別テーブルBにおいて協調ECUとして抽出したECU131およびECU132に対応する列に○印を付す。
処理装置111は、ステップS23の処理を完了すると処理をステップS24へ進める。
ステップS24において、処理装置111は、上記ステップS14の処理と同様にしてタイマー値Tをカウントアップする。ステップS24の処理を完了すると、処理装置111は、処理をステップS25へ進める。
ステップS25において、処理装置111は、上記ステップS15の処理と同様にしてタイマー値Tが処理周期Tth以上であるか否かを判定する。処理装置111は、タイマー値Tが処理周期Tth以上である場合、処理をステップS26へ進める。一方、処理装置111は、タイマー値Tが処理周期Tth未満である場合、処理をステップS21へ戻す。
上記ステップS21からステップS25の処理によれば、処理装置111は、処理周期Tthが経過する間に受信した受信データの種別および、予め記憶された協調ECU判別テーブルBに基づいて受信データテーブルAを作成、および更新する。例えば、処理周期Tthが経過する間に、処理装置111は、データa、データb、データc、およびデータd、を受信すると、図13に示す受信データテーブルAを作成する。
なお、図13では各受信データに各々対応する行を用意して、受信データテーブルAを作成する例を示したが、受信データの各コマンドコードに対応する行のみを用意して受信データテーブルを作成しても構わない。すなわち、コマンドコードが重複するデータを受信した場合、当該コマンドコードに対応する行を一つ追加するようにして受信データテーブルを作成しても構わない。
ステップS26において、処理装置111は、図14に示すスリープ判定処理を実行する。図14は、第2の実施形態に係るスリープ判定処理のサブルーチンを示すフローチャートの一例である。処理装置111は、図14のスリープ判定処理のサブルーチン処理を開始すると、先ず、ステップS261の処理を実行する。
ステップS261において、処理装置111は、受信データテーブルAにおいてECUを一つ選択する。具体的には、受信データテーブルAにおいて各列に対応するECUのうち一つを選択する。以下、本ステップS261において選択されたECUを選択ECU−Bと呼称する。ステップS261の処理を完了すると、処理装置111は、処理をステップS262へ進める。
ステップS262において、処理装置111は、選択ECU−Bが制御処理に用いるデータを受信しているか否かを判定する。具体的には、図13に示す受信データテーブルA中、ステップS261の処理で選択した選択ECU−Bの列において、何れかの行で○印が付されているか否かを判定する。上記選択ECU−Bの列の、何れかの行で○印が付されている場合、処理装置111は、選択ECU−Bが制御処理に用いるデータを受信していると判定し、処理をステップS263へ進める。一方、上記の列において何れの行にも○印が付されていない場合、処理装置111は、選択ECU−Bが制御処理に用いるデータを受信していないと判定し、処理をステップS263へ進める。
ステップS263において、処理装置111は、選択ECU−Bのスリープ許可フラグをNGに設定する。具体的には、処理装置111は、上記図6に示すスリープ許可フラグテーブルを記憶装置112から読み出し、選択ECU−Bのスリープ許可フラグをNGに上書きして設定する。なお、第2の実施形態において、スリープ許可フラグテーブルは予め記憶装置112に記憶されているものとする。ステップS263の処理を完了すると、処理装置111は、処理をステップS265へ進める。
ステップS264において、処理装置111は、選択ECU−Bのスリープ許可フラグをOKに設定する。具体的には、処理装置111は、上記図6に示すスリープ許可フラグテーブルを記憶装置112から読み出し、選択ECU−Bのスリープ許可フラグをOKに上書きして設定する。ステップS264の処理を完了すると、処理装置111は、処理をステップS265へ進める。
上記ステップS262からステップS264の処理によれば、選択ECU−Bがネットワークシステム上の何れかのECUと協調動作する協調ECUであるか否かを判定し、協調ECUであると特定されたECUのスリープ許可フラグをNGに設定することができる。
ステップS265において、処理装置111は、全ECUのスリープ許可フラグの設定が完了したか否かを判定する。具体的には、処理装置111は、全てのECUをステップS261の処理において選択したか否かを判定する。処理装置111は、全てのECUをステップS261の処理において選択した場合、全ECUのスリープ許可フラグの設定が完了したものと判定して、スリープ判定処理のサブルーチンを終了し、処理を図11のステップS27へ進める。一方、処理装置111は、ステップS261の処理において未選択のECUが存在する場合、全ECUのスリープ許可フラグの設定が完了していないと判定して、処理をステップS261へ戻す。
例えば、図13に示す内容の受信データテーブルが作成されている場合、上記ステップS261からステップS265のスリープ判定処理によれば、図8に示すようにECU121およびECU122のスリープ許可フラグがOKに設定され、ECU131およびECU132のスリープ許可フラグがNGに設定される。
上記ステップS21からステップS24の処理、およびスリープ判定処理によれば、ネットワーク上の何れかのECUと協調動作中である協調ECUを、第1の実施形態のようにスリープ可否情報などの各ECUからスリープモードへの移行に関する情報を送信させることなく、特定することができる。
図11の説明に戻り、ステップS27において、処理装置111は、上記図9と同様のスリープ指示処理のサブルーチン処理を実行する。本ステップS27の処理により、処理装置111は、上記ステップS26において、全てのECUのスリープ許可フラグがOKに設定されたネットワークにのみスリープ移行指示データを送信する。ステップS27の処理を完了すると、処理装置は、処理をステップS28へ進める。
ステップS28において、処理装置111は、タイマー値および受信データテーブルAをリセットする。具体的には、処理装置111は、記憶装置112に記憶されるタイマー値Tを初期値に戻して上書きする。また、処理装置111は、受信データテーブルAを示すデータを記憶装置112から削除する。なお、処理装置111は、受信データテーブルAを削除する代わりに、受信データテーブルAの内容を初期状態、すなわち○印が付されていない状態へ戻しても構わない。ステップS28の処理を完了すると、処理装置111は、処理をステップS29へ進める。
ステップS29において、処理装置111は、電力が供給されているか否かを判定する。処理装置111は、電源装置から電力が供給されている場合、処理をステップS20へ戻す。一方、処理装置111は、電源装置から電力が供給されていない場合、図11の処理を終了する。
以上より、第2の実施形態に係るネットワークシステムにおいては、処理装置111が受信するデータの種別に応じてウェイクモードに維持させるべき協調ECUを特定することができる。したがって、第2の実施形態に係る各ECUは、送信するデータに予めスリープに関する情報を織り込む必要がない。故に、各ECUが送信するデータのサイズが小さくて済む。
また、一般的に、車両に搭載されるECUの中には、送受信するデータの種別を、IG系統、ACC系統などの車両の各電源系統のオン、オフの状態に応じて変更するECUが存在する。すなわち、電源系統の状態に応じて協調動作の相手となるECUが変わるECUが存在する。上記第2の実施形態に係るネットワークシステムによれば、処理装置111が受信するデータの種別に基づいて協調ECUを特定するため、上記のような電源系統の状態に応じて協調動作する対象が変わるECUがネットワークシステム上に存在する場合にも、電源系統の状態を検知することなく、協調ECUを正確に特定することができる。
なお、上記第2の実施形態では、各ECUがデータの送信が不要な場合にデータを送信しない場合を前提として説明したが、一般的に、データの送信が不要な場合であってもデータを継続的に送信し続けるECUが存在する。このようなECUがネットワークシステムに含まれる場合、当該ECUが送信するデータに、当該データが送信不要なデータであるか否かを示す情報を含ませる。そして、処理装置111は、上記データが送信不要でない場合のみ、上記ステップS21において受信データとして受信する。このような処理によれば、上記のようなデータを継続的に送信し続けるECUがネットワークシステムに含まれる場合であっても適切に各ECUをスリープモードへ移行させることができる。
また、上記第2の実施形態の発明をCANプロトコルのネットワークシステムに適用する場合、CANにおいて定義されるメッセージIDを上記コマンドコードとして扱うよう適用して構わない。
(第3の実施形態)
上記第2の実施形態では、処理装置111が受信データテーブルAを予め記憶装置112に記憶された協調ECU判別テーブルBに基づいて判別例について説明したが、処理装置111は、他の手法で受信データテーブルを作成しても構わない。例えば、各ECUが他のECUのスリープモードへの移行許可を示す情報を送信する場合、処理装置111は当該情報に基づいて受信データテーブルを作成することができる。すなわち、協調ECU判別テーブルBを用意する必要がない。以下、第3の実施形態に係るネットワークシステムについて説明する。なお、第3の実施形態に係るネットワークシステムの構成は第1の実施形態に係るネットワークシステムと同様であるので、当該構成についての詳細な説明は省略する。
先ず、第3の実施形態に係る各ECUが送受信するデータの形式について、図15を参照して説明する。図15は、第3の実施形態に係る各ECUが送受信するデータの形式の一例を示す図である。第3の実施形態に係る各ECUが送受信するデータは、ヘッダフィールド41、データフィールド42、およびスリープ許可情報フィールド44の各ビット領域で構成されるデジタルデータである。上記スリープ許可情報フィールド44は、スリープ許可情報が格納されるビット領域である。
スリープ許可情報とは、各ECUをスリープモードへの移行を許可するか否かを示す情報である。図16は、スリープ許可情報のイメージ図である。図16では、スリープ許可情報がテーブル形式のデータ構造をとる場合を例示する。図16に示すスリープ許可情報のテーブル中、各列はネットワーク上の各ECUに対応する。図16に示すスリープ許可情報のテーブル中、スリープモードへの移行を許可しないECUについては、対応する列に○印を付して示す。例えば、図16に示すスリープ許可情報では、ECU122およびECU132がスリープモードへの移行が許可されない。
各ECUは、例えば、車両に搭載される各電源系統のオンオフの状態に応じて、自機と協調動作する協調ECUを判別する。具体的には、各ECUは、各電源系統のオンオフの状態毎に、どのECUと協調動作するかを示すテーブルデータを予め記憶しておく。そして、各ECUは、各電源系統のオンオフの状態を検知し、当該各電源系統の状態で自機協調動作するECUを、当該テーブルデータから抽出する。あるいは、各ECUは、車両に搭載された各種センサからの情報に基づいて、自機と協調動作する協調ECUを判別する。例えば、メーター装置を制御するECU(以下、メーターECUと呼称する)は、シートに備えられたセンサ装置から、乗員の有無を判別する。そして、乗員が存在しない場合には、メーターECUは、シートの位置調整等の制御が行われないものとみなし、シートに位置調整を制御するECUを、自機と協調動作するECUでないと判別する。
各ECUは、自機と協調動作するECUが判別された場合には、自機、および自機と協調動作するECUのスリープモードへの移行を許可しないことを示すスリープ許可情報を、ブロードキャスト送信する。
次いで、図17を参照して、第3の実施形態に係る処理装置111の処理について説明する。図17は、第3の実施形態に係る処理装置111が実行するスリープ制御処理を示すフローチャートの一例である。第3の実施形態に係る処理装置111は、第1の実施形態と同様に、車両に搭載される電源装置からゲートウェイ装置11へ電源が供給されている間、図17に示すスリープ制御処理を実行する。処理装置111は、図17に示すスリープ制御処理を開始すると、先ず、ステップS30の処理を実行する。
ステップS30において、処理装置111は、上述ステップS10の処理と同様にしてIG系統の電源がオフであるか否かを判定する。処理装置111は、IG系統の電源線から電力が供給されていない場合、車両のIG電源がオフであると判定して、処理をステップS31へ進める。一方、処理装置111は、IG系統の電源線から電力が供給されている場合、車両のIG電源がオンであると判定して、後述ステップS31からステップS37の処理を省略して処理をステップS38へ進める。
ステップS31において、処理装置111は、上述ステップS11の処理と同様にしてデータを受信したか否かを判定する。処理装置111は、データを受信したと判定した場合、処理をステップS32へ進める。一方、処理装置111は、データを受信していないと判定した場合、ステップS32およびステップS33の処理を省略して、処理をステップS34へ進める。
ステップS32において、処理装置111は、受信データからスリープ許可情報を抽出する。具体的には、上記ステップS31において受信した受信データのスリープ許可情報を抽出する。ステップS32の処理を完了すると、処理装置111は、処理をステップS33へ進める。
ステップS33において、処理装置111は、スリープ許可情報に基づいて受信データテーブルBを作成、または更新する。
図18は、第3の実施形態に係る処理装置111が作成する受信データテーブルBの一例を示す図である。受信データテーブルBにおいて、各行は、ステップS31の処理で受信したデータを示す。受信データテーブルBにおいて、2列目以降の各列は、処理装置111に接続する各ネットワーク上の各ECUに対応する。図18に示す受信データテーブルBでは、各行において、当該行のデータを用いて制御処理を行うECUを示す列に○印を付して、各データと、当該データを用いて制御処理を行うECUとの対応関係を示す。
なお、図18では各受信データに各々対応する行を用意して、受信データテーブルBを作成する例を示したが、受信データの各コマンドコードに対応する行のみを用意して受信データテーブルを作成しても構わない。すなわち、コマンドコードが重複するデータを受信した場合、当該コマンドコードに対応する行を一つ追加するようにして受信データテーブルを作成しても構わない。
本ステップS33における処理装置111の具体的な処理について説明する。先ず、処理装置111は、受信データテーブルBが作成されているか否かを判定する。受信データテーブルBが作成されていない場合、処理装置111は、ステップS31の処理で受信したデータに対応する行を1行目として新たに受信データテーブルBを作成する。受信データテーブルBが既に作成されている場合、処理装置111は、ステップS31の処理で受信したデータに対応する行を受信データテーブルBに追加する。そして、受信データテーブルBの各行では、ステップS32の処理で抽出したスリープ許可情報と同様に、スリープを許可しないECUに対応する列へ○印を付す。ステップS33の処理を完了すると、処理装置111は、処理をステップS34へ進める。
ステップS34において、処理装置111は、上記ステップS14の処理と同様にしてタイマー値Tをカウントアップする。ステップS24の処理を完了すると、処理装置111は、処理をステップS35へ進める。
ステップS35において、処理装置111は、上記ステップS15の処理と同様にしてタイマー値Tが処理周期Tth以上であるか否かを判定する。処理装置111は、タイマー値Tが処理周期Tth以上である場合、処理をステップS36へ進める。一方、処理装置111は、タイマー値Tが処理周期Tth未満である場合、処理をステップS31へ戻す。
上記ステップS31からステップS35の処理によれば、処理装置111は、処理周期Tthが経過する間に受信した受信データに含まれるスリープ許可情報に基づいて受信データテーブルBを作成、および更新する。つまり、第3の実施形態に係るネットワークシステムにおいては、協調ECU判別テーブルなどのデータを記憶装置112に予め記憶させておく必要がない。したがって、記憶装置112の記憶容量が小さくて済む。
ステップS36において、処理装置111は、上記ステップS26と同様に図14に示すスリープ判定処理を実行して、ステップS33で作成および更新した受信データテーブルBに基づいて全ECUのスリープ許可フラグを設定する。図17に示す受信データテーブルBに基づいてECUのスリープ許可フラグが設定された場合、ECU121およびECU122のスリープ許可フラグはOKに、ECU131およびECU132のスリープ許可フラグはNGに設定される。ステップS36の処理を完了すると、処理装置111は、処理をステップS37へ進める。
ステップS37において、処理装置111は、上記ステップS17と同様に図9に示すスリープ指示処理を実行して、ネットワーク上の全てのECUのスリープ許可フラグがOKであるネットワークへ、スリープ移行指示データを送信する。ステップS37の処理を完了すると、処理装置111は、処理をステップS38へ進める。
ステップS38において、処理装置111は、上記ステップS28と同様にタイマー値Tおよび受信データテーブルBをリセットする処理を行う。ステップS38の処理を完了すると、処理装置111は、処理をステップS39へ進める。
ステップS39において、処理装置111は、上記ステップS19と同様に電力が供給されているか否かを判定する。処理装置111は、電源装置から電力が供給されている場合、処理をステップS30へ戻す。一方、処理装置111は、電源装置から電力が供給されていない場合、図17の処理を終了する。
以上より、第3の実施形態に係るネットワークシステムにおいては、処理装置111が受信するデータに含まれるスリープ許可情報に基づいてウェイクモードに維持させるべき協調ECUを特定することができる。
なお、上記第3の実施形態においては、各ECUが互いに送受信するデータの一部にスリープ許可情報を織り込む例について説明したが、各ECUは、ECU同士が送受信するデータとは別途にスリープ許可情報のみを含むデータを送信しても構わない。このようにスリープ許可情報のみを含むデータを送信する場合、データの一部にスリープ許可情報を織り込む場合に比べて、1データあたりのサイズを小さくすることができる。一方、データの一部にスリープ許可情報を織り込む場合は、スリープ許可情報のみを含むデータを送信する場合に比べて、ネットワーク上のデータ数を少なくすることができる。
(第4の実施形態)
上記第2の実施形態では、処理装置111が、各ECU個別にスリープ移行指示データを送信可能か否かを判別した後、スリープ移行指示データを送信可能なネットワークを判別する例について説明したが、処理装置111は、各ECU個別にスリープ移行指示データを送信可能か否かを判別することなく、スリープ移行指示データを送信可能なネットワークを判別しても構わない。以下、第4の実施形態に係るネットワークシステムについて説明する。なお、第4の実施形態に係るネットワークシステムの構成は、第1の実施形態に係るネットワークシステムと同様であるので、当該構成についての詳細な説明は省略する。また、第4の実施形態において各ECUが送信するデータの形式は、第2の実施形態に係るECUが送信するデータの形式と同様であるので、当該データの形式についての詳細な説明は省略する。
次いで、図19を参照して、第4の実施形態に係る処理装置111の処理について説明する。図19は、第4の実施形態に係る処理装置111が実行するスリープ制御処理を示すフローチャートの一例である。第4の実施形態に係る処理装置111は、第1の実施形態と同様に、車両に搭載される電源装置からゲートウェイ装置11へ電源が供給されている間、図19に示すスリープ制御処理を実行する。処理装置111は、図19に示すスリープ制御処理を開始すると、先ず、ステップS40の処理を実行する。
ステップS40において、処理装置111は、上述ステップS10の処理と同様にしてIG系統の電源がオフであるか否かを判定する。処理装置111は、IG系統の電源線から電力が供給されていない場合、車両のIG電源がオフであると判定して、処理をステップS41へ進める。一方、処理装置111は、IG系統の電源線から電力が供給されている場合、車両のIG電源がオンであると判定して、後述ステップS41からステップS47の処理を省略して処理をステップS48へ進める。
ステップS41において、処理装置111は、上述ステップS11の処理と同様にしてデータを受信したか否かを判定する。処理装置111は、データを受信したと判定した場合、処理をステップS42へ進める。一方、処理装置111は、データを受信していないと判定した場合、ステップS42およびステップS43の処理を省略して、処理をステップS44へ進める。
ステップS42において、処理装置111は、上述ステップS22の処理と同様にして受信データのコマンドコードを抽出する。ステップS42の処理を完了すると、処理装置111は、処理をステップS43へ進める。
ステップS43において、処理装置111は、コマンドコードおよび協調ネットワーク判別テーブルに基づいて受信データテーブルCを更新、または作成する。
協調ネットワーク判別テーブルは、各コマンドコードを有するデータと、当該各データを送受信して協調動作する協調ECUが接続されているネットワークとの対応関係をそれぞれに示すテーブルデータである。協調ネットワーク判別テーブルは、予め記憶装置112に記憶される。図20は、協調ネットワーク判別テーブルの一例を示す図である。図20に示す協調ネットワーク判別テーブルにおいて、各行は、データに含まれる各コマンドコードに対応する。また、協調ネットワーク判別テーブルにおいて、各列は、処理装置111に接続するネットワークに対応する。図20の協調ネットワーク判別テーブルでは、各行に対応するデータを送受信して協調動作する協調ECUが接続されているネットワークを、当該ネットワークに対応する列に○印を付して示す。
第4の実施形態に係る受信データテーブルCは、処理装置111が受信したデータと、当該データを送受信する協調ECUが接続されたネットワークとの対応関係を示す。図21は、第4の実施形態に係る処理装置111が作成する受信データテーブルCの一例を示す図である。受信データテーブルCにおいて、各行は、ステップS41の処理で受信したデータを示す。また、受信データテーブルCにおいて、2列目は各データのコマンドコードに対応し、3列目以降の各列は、処理装置111に接続する各ネットワークに対応する。図21に示す受信データテーブルCでは、各行において、当該行のデータを送受信して協調動作する協調ECUが接続されるネットワークを示す列に○印を付して、各データと、当該データを送受信する協調ECUが接続されたネットワークとの対応関係を示す。
なお、図21では各受信データに各々対応する行を用意して、受信データテーブルCを作成する例を示したが、受信データの各コマンドコードに対応する行のみを用意して受信データテーブルを作成しても構わない。すなわち、コマンドコードが重複するデータを受信した場合、当該コマンドコードに対応する行を一つ追加するようにして受信データテーブルを作成しても構わない。
本ステップS43における処理装置111の具体的な処理について説明する。先ず、処理装置111は、受信データテーブルCが作成されているか否かを判定する。受信データテーブルCが作成されていない場合、処理装置111は、ステップS41の処理で受信したデータに対応する行を1行目として新たに受信データテーブルCを作成する。受信データテーブルCが既に作成されている場合、処理装置111は、ステップS41の処理で受信したデータに対応する行を受信データテーブルCに追加する。
次いで、処理装置111は、協調ネットワーク判別テーブルに基づいて受信データを送受信する協調ECUが接続されたネットワークを抽出する。具体的には、上記協調ネットワーク判別テーブル上で、ステップS42において抽出したコマンドコードに対応した行を探索し、当該行で○印が付された列に対応するネットワークを抽出する。そして、処理装置111は、上記受信データテーブルCに追加または作成した行で、上記の通り抽出したネットワークに対応する列に○印を付す。このような処理により、受信データテーブルCでは、現時点において協調動作を実行中の協調ECUが接続するネットワークに対応する列にのみ○印が付される。
例えば、受信データのコマンドコードがDである場合、先ず、処理装置111は、図21の4行目に示すように上記コマンドコードDの受信データに対応する行を受信データテーブルCに追加する。次いで、処理装置111は、図20に示す協調ネットワーク判別テーブルを参照し、協調ECUが接続されたネットワークとして第1ネットワークを抽出する。そして、処理装置111は、図21の4行目に示すように、受信データテーブルCにおいてに先に抽出した第2ネットワーク対応する列に○印を付す。
処理装置111は、ステップS43の処理を完了すると処理をステップS44へ進める。
ステップS44において、処理装置111は、上記ステップS14の処理と同様にしてタイマー値Tをカウントアップする。ステップS44の処理を完了すると、処理装置111は、処理をステップS45へ進める。
ステップS45において、処理装置111は、上記ステップS15の処理と同様にしてタイマー値Tが処理周期Tth以上であるか否かを判定する。処理装置111は、タイマー値Tが処理周期Tth以上である場合、処理をステップS46へ進める。一方、処理装置111は、タイマー値Tが処理周期Tth未満である場合、処理をステップS41へ戻す。
上記ステップS41からステップS45の処理によれば、処理装置111は、処理周期Tthが経過する間に受信した受信データに基づいて受信データテーブルCを作成、および更新する。例えば、処理周期Tthが経過する間に、処理装置111は、データa、データb、データc、およびデータd、を受信すると、図21に示す受信データテーブルCを作成する。
ステップS46において、処理装置111は、図22に示すスリープ判定処理を実行する。図22は、第4の実施形態に係るスリープ判定処理のサブルーチンを示すフローチャートの一例である。処理装置111は、図22のスリープ判定処理のサブルーチン処理を開始すると、先ず、ステップS461の処理を実行する。
ステップS461において、処理装置111は、受信データテーブルCにおいてネットワークを一つ選択する。具体的には、受信データテーブルCにおいて各列に対応するネットワークのうち一つを選択する。以下、本ステップS461において選択されたECUを選択ネットワークと呼称する。ステップS461の処理を完了すると、処理装置111は、処理をステップS462へ進める。
ステップS462において、処理装置111は、選択ネットワークに協調動作中のECUが接続されているか否かを判定する。具体的には、図21に示す受信データテーブルC中、ステップS461の処理で選択した選択ネットワークの列において、何れかの行で○印が付されているか否かを判定する。上記の列において何れかの行で○印が付されている場合、処理装置111は、選択ネットワークに協調動作中のECUが接続されていると判定し、処理をステップS463へ進める。一方、上記の列において何れの行にも○印が付されていない場合、処理装置111は、選択ネットワークに協調動作中のECUが接続されていないと判定し、処理をステップS463へ進める。
ステップS463において、処理装置111は、選択ネットワークの指示許可フラグをOKに設定する。具体的には、処理装置111は、指示許可フラグテーブルを記憶装置112から読み出し、選択ネットワークの指示許可フラグをNGに上書きして設定する。指示許可フラグテーブルは、各ネットワークの指示許可フラグの状態を示すテーブルデータである。指示許可フラグは、処理装置111がネットワークへスリープ移行指示データをブロードキャスト送信可能か否かを示すフラグである。あるネットワークの指示許可フラグがOKである場合、処理装置111は、当該ネットワークに対してスリープ移行指示データを送信可能である。一方、あるECUの指示許可フラグがNGである場合、処理装置111は、当該ECUに対してスリープ移行指示データを送信不可能である。図23は指示許可フラグテーブルの一例を示す図である。図23に示すように、指示許可フラグテーブルにおいて、各列は、処理装置111に接続される各ネットワークに対応する。なお、第4の実施形態において、スリープ許可フラグテーブルは予め記憶装置112に記憶されているものとする。ステップS463の処理を完了すると、処理装置111は、処理をステップS465へ進める。
ステップS464において、処理装置111は、選択ネットワークの指示許可フラグをNGに設定する。具体的には、処理装置111は、指示許可フラグテーブルを記憶装置112から読み出し、選択ネットワークの指示許可フラグをOKに上書きして設定する。ステップS464の処理を完了すると、処理装置111は、処理をステップS465へ進める。
ステップS465において、処理装置111は、全ネットワークの指示許可フラグの設定が完了したか否かを判定する。具体的には、処理装置111は、全てのネットワークをステップS461の処理において選択したか否かを判定する。処理装置111は、全てのネットワークをステップS461の処理において選択した場合、全ネットワークの指示許可フラグの設定が完了したと判定して、スリープ判定処理のサブルーチンを終了し、処理を図19のステップS47へ進める。一方、処理装置111は、ステップS461の処理において未選択のネットワークが存在する場合、全ネットワークの指示許可フラグの設定が完了していないと判定して、処理をステップS461へ戻す。
例えば、図21に示す内容の受信データテーブルが作成されている場合、上記ステップS461からステップS465のスリープ判定処理によれば、図23に示すように、第1ネットワークの指示許可フラグがOKに設定され、第2ネットワークの指示許可フラグがNGに設定される。このように、上記ステップS461からステップS465のスリープ判定処理によれば、上記ステップS461からステップS465のスリープ判定処理により、データの送信が無いネットワークの指示許可フラグがOKに設定される。
図11の説明に戻り、ステップS47において、処理装置111は、図24に示すスリープ指示処理のサブルーチン処理を実行する。図24は、第4の実施形態に係るスリープ指示処理のサブルーチンを示すフローチャートの一例である。処理装置111は、スリープ指示処理のサブルーチンを開始すると、先ず、ステップS471の処理を開始する。
ステップS471において、処理装置111は、上記ステップS171の処理と同様にしてネットワークを一つ選択する。以下、本ステップS471において選択したネットワークを選択ネットワークと呼称する。なお、処理装置111は、既に選択したネットワークは選択しないものとする。ステップS471の処理を完了すると、処理装置111は、処理をステップS472へ進める。
ステップS472において、処理装置111は、選択ネットワークの指示許可フラグがOKであるか否かを判定する。具体的には、処理装置111は、記憶装置112に記憶された指示許可フラグテーブル(図23)を参照し、選択ネットワークに属する全ECUのスリープ許可フラグがOKであるか否か判定する。処理装置111は、選択ネットワークの指示許可フラグがOKである場合、処理をステップS473に進める。一方、処理装置111は、選択ネットワークの指示許可フラグがNGである場合、処理をステップS474へ進める。
ステップS473において、処理装置111は、選択ネットワークにスリープ移行指示データを送信する。具体的には、処理装置111は、選択ネットワークと処理装置111とを接続する通信バスへスリープ移行指示データを送信する。ステップS473の処理を完了すると、処理装置111は処理をステップS474へ進める。
ステップS474において、処理装置111は、全てのネットワークを選択したか否かを判定する。具体的には、処理装置111は、自機に接続されている全てのネットワークをステップS471の処理において選択したか否かを判定する。処理装置111は、全てのネットワークを選択したと判定した場合、スリープ指示処理を完了して、処理を図19のフローチャートのステップS48へ進める。一方、処理装置111は、選択していないネットワークがあると判定した場合、処理をステップS471へ戻す。
上記ステップS474の処理によれば、全てのネットワークについて、ステップS472の判定処理を実行するまで、上記ステップS471からステップS473の処理が繰り返し実行される。
上記スリープ指示処理において、例えば、ステップS471の処理で選択ネットワークとして第1ネットワークが選択されている場合、図23に示す指示許可フラグテーブルにおいて当該第1ネットワークの指示許可フラグがOKであるので、処理装置111は、ステップS473の処理を実行して、通信バス12へスリープ移行指示データを送信する。一方、ステップS471の処理で選択ネットワークとして第2ネットワークが選択されている場合、図23に示す指示許可フラグテーブルにおいて当該第2ネットワークの指示許可フラグがNGであるので、処理装置111は、ステップS473の処理を実行せず、通信バス13へはスリープ移行指示データを送信しない。つまり、上記ステップS471からステップS474の処理によれば、指示許可フラグがOKのネットワーク、すなわちネットワークの送信の無いネットワークに接続するECUのみがスリープ許可モードへ移行される。そのため、他のECUと協調動作するECUがスリープモードへ移行することがない。
図19のフローチャートの説明に戻り、ステップS48において、処理装置111は、タイマー値Tをリセットする。ステップS48の処理を完了すると、処理装置111は、処理をステップS49へ進める。
ステップS49において、処理装置111は、電力が供給されているか否かを判定する。具体的には、処理装置111は、電源装置からの電力が供給されているか否かを判定する。処理装置111は、電源装置から電力が供給されている場合、処理をステップS40へ戻す。一方、処理装置111は、電源装置から電力が供給されていない場合、図19の処理を終了する。
以上より、第4の実施形態に係るネットワークシステムは、各ネットワーク上のECUが他のECUと協調して動作しているか否かを個別に判定することなく、スリープモードへ移行可能なECUをネットワーク単位で判別することができる。また、第4の実施形態に係るネットワークシステムは、各ネットワークに接続されるECUの数が増加した場合であっても、処理に用いるテーブルの行列を増やす必要が無いため、記憶装置112の記憶領域が小さくて済む。
また、上記各実施形態では、各ECUおよび処理装置111が、所謂、CANプロトコルに基づいた通信を行う例について示したが、マルチマスタ・ブロードキャスト方式の通信プロトコルであれば、他の通信プロトコルを採用しても構わない。
また、上記各実施形態では、ネットワークシステムが車両に搭載される例について説明したが、本発明に係るネットワークシステムは、車両に搭載せずとも構わない。例えば、ECUの代わりにパーソナルコンピュータなどの端末装置がノードとして接続されたブロードキャスト型のネットワークに適用しても構わない。