(57)【特許請求の範囲】
【請求項１】
車載電子装置間を伝送線路で接続して構成される車両用ネットワークシステムにおいて、
前記車載電子装置は分散オペレーティングシステムを用いて車載電子装置間のデータ通信と分散処理を行い、
自車速度等の車両のデータを共有データを示すタグを付けてネットワークに流し、前記車載電子装置に備えたメモリに前記タグの付いたデータを記憶することにより、仮想の分散共有メモリを構成した、
ことを特徴とする車両用ネットワークシステム。
【請求項２】
自車速度等の車両の共有データを少なくとも記憶する分散共有メモリを備え、この分散共有メモリの記憶領域のうちで予め決められた部分のみ前記車載電子装置からアクセス可能としたことを特徴とする請求項１記載の車両用ネットワークシステム。
【請求項３】
前記分散オペレーティングシステムは、他タスクからの自タスクの状態を変えるシステムコールに対して、前記他タスクが自タスク以上のアクセス権を持つ場合に前記システムコールを有効とすることを特徴とする請求項１または２記載の車両用ネットワークシステム。
【請求項４】
前記分散オペレーティングシステムは、他ノードからの自ノード内タスクの状態を変えるシステムコールに対して、前記他ノードが自ノードより高いアクセス権を持つ場合にのみ前記システムコールを有効とすることを特徴とする請求項１〜３のいずれか１項に記載の車両用ネットワークシステム。
【請求項５】
前記分散オペレーティングシステムは、システムコール機能を各ノードに分散して持たせたことを特徴とする請求項１〜４のいずれか１項に記載の車両用ネットワークシステム。
【請求項６】
前記車両はアダプティブクルーズコントロールの機能を備え、前走車の速度および車間距離を少なくとも算出する車載電子装置を伝送線路に接続し、算出した前走車の速度および車間距離のデータを分散共有メモリに記憶させて他の車載電子装置から読出可能とすると共に、
分散共有メモリに記憶された自車速度、前走車の速度および車間距離に基づいて予め決められた車間距離で該車両を追従させるギヤ段数またはスロットル開度を算出することの分散処理を可能とした、
ことを特徴とする請求項１〜５のいずれか１項に記載の車両用ネットワークシステム。
【請求項７】
前記分散オペレーティングシステムで備える前記システムコールでは車両の走行距離をパラメータとすることを特徴とする請求項３記載の車両用ネットワークシステム。
【請求項８】
前記分散オペレーティングシステムで備える前記システムコールでは車両の走行速度をパラメータとすることを特徴とする請求項３記載の車両用ネットワークシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の車載電子装置を伝送線路で接続して構成される車両用ネットワークシステムに関する。
【０００２】
【従来の技術】
車載電子装置間をシリアル伝送バスで接続して構成される車両用ネットワークシステムでは、例えば、以下に述べるようなプログラム（アプリケーションプログラム）を備えてデータ通信を行っていた。
送信側の車載電子装置は、送り先の車載電子装置を指定してデータを送信する。受信側の車載電子装置は、受信したデータに基づいて種々の処理を行う。
制御を行う場合も同様であり、送信側の車載電子装置は、データを制御データとして送信し、受信側の車載電子装置は、制御データに基づいて制御ルーチン等を変更し処理を行う。
【０００３】
【発明が解決しようとする課題】
この動作はお互いに予め決められた動作であり、送信側または受信側の何れか一方のプログラムが変更されると、他方のプログラムも変更する必要があった。特に、新たに車載電子装置が追加された場合は、その通信相手のプログラムも変更する必要があった。
このようなプログラムの変更は、ネットワークシステムを構築する上で手間と時間がかかる、という課題がある。
【０００４】
また、道路等を高速走行する自動車等の車両では、信頼性、快適性等を向上させるためにマイクロコンピュータ（マイコン）を備えた新しい車載電子装置を車両に増設したり、オプション用品を増設したり、技術の累積進歩により一部の車載機器が改良されてこの車載機器を制御する車載電子装置のプログラムを変更したりすることがある、という特有の事情がある。
【０００５】
更には、同一のパーソナルコンピュータ（パソコン）を結合したネットワークシステムとは異なり、車両用ネットワークシステムで全く別の処理を行う車載電子装置を追加した場合は、全車載電子装置のプログラムをバージョンアップするにはかなりの手間と時間がかかる。
この点で、従来の車載電子装置のプログラムを変更することなく、新しい車載電子装置を追加できるようにすることの要請が強い。
また、車載電子装置の処理の高度化、複雑化に伴い、情報・資源を共用できるようにすることの要請が強い。
【０００６】
【課題を解決するための手段】
請求項１では、車載電子装置間を伝送線路で接続して構成される車両用ネットワークシステムにおいて、車載電子装置は分散オペレーティングシステムを用いて車載電子装置間のデータ通信と分散処理を行い、自車速度等の車両のデータを共有データを示すタグを付けてネットワークに流し、車載電子装置に備えたメモリにタグの付いたデータを記憶することにより、仮想の分散共有メモリ（distributed shared memory ）を構成したことを特徴とする。
【０００７】
分散オペレーティングシステム（分散ＯＳ：distributed operating system）を備えることで、情報・資源のスムーズな共用が可能となり、ネットワーク透過性を向上させることができる。
また、信頼性を向上させることができる。例えば、データのレプリカを作成したり、処理の多重化を行ったりして、障害などの危険を分散させ（危険分散）、システム全体の可用性および信頼性を高めることができる。
更に、性能を向上させることができる。例えば、プロセス・マイグレーション（プロセス移動（移送）：process migration ）により負荷を分散させたり、データのキャッシングを行ったりして、プログラムの実行時間を短縮し、また、システムのスループットを向上させることができる。
【０００８】
また、規模適応性（スケーラビリティ：scalability ）を向上させることができる。ネットワークに接続されるマイコンは独立して動作し、ネットワークという統一したインタフェースで結合される。こうした性質から、ある機能を変更したり、新しく機能を追加したりすることが集中管理の場合に比べ、より柔軟に行うことができる。
あたかも、マイコンにメモリを増設していくように、マイコンを追加すればそれだけシステムとしての性能を向上させることができ、しかもこれをシステムプログラムやアプリケーションプログラムを変更せずに行うことができる。
また、システムのオープン性を高めることができる。
【００１０】
ネットワーク仮想記憶を集中型システムの共有メモリと同様のセマンティックス（semantics ）で利用することができ、物理的に共用するメモリがない場合に分散システム上で共有メモリを仮想的に作り上げることができる。
また、ネットワーク規模でアドレス空間が展開でき、プログラミング・レベルでのネットワーク透過性を得ることができる。
【００１１】
更に、複数のプロセッサがメモリを共用するという計算モデルは、メモリ共有型マルチプロセッサとの整合性もあり、データを共用するプログラミングが容易にかつ自然に行うことができる。
また、ネットワークに接続されるマイコンの数が増えれば、それだけ利用できる物理的な記憶領域を増大させることができる。
更に、仮想記憶機構によって、入出力操作命令を使ってデータにアクセスするよりも効率的なアクセスを行うことができる。
【００１２】
請求項２では、請求項１記載の車両用ネットワークシステムにおいて、自車速度等の車両の共有データを少なくとも記憶する分散共有メモリを備え、この分散共有メモリの記憶領域のうちで予め決められた部分のみ前記車載電子装置からアクセス可能としたことを特徴とする。
【００１３】
分散共有メモリの記憶領域のうちで予め決められた部分のみ各車載電子装置からアクセス可能とすることで、前記部分以外の記憶領域のデータが不必要に書き換えられることを防止することができる。
【００１４】
請求項３では、請求項１または２記載の車両用ネットワークシステムにおいて、分散オペレーティングシステムは、他タスクからの自タスクの状態を変えるシステムコールに対して、前記他タスクが自タスク以上のアクセス権を持つ場合に前記システムコールを有効とすることを特徴とする。
【００１５】
車載電子装置が増設または変更された場合に、この車載電子装置が他の車載電子装置のタスク処理を停止させるシステムコール（サービスコール）を不用意に出力しても、アクセス権を比較することで、アクセス権の高いタスクの処理を継続させることができる。
【００１６】
請求項４では、請求項１〜３のいずれか１項に記載の車両用ネットワークシステムにおいて、他ノードからの自ノード内タスクの状態を変えるシステムコールに対して、前記他ノードが自ノードより高いアクセス権を持つ場合にのみ前記システムコールを有効とすることを特徴とする。
【００１７】
ノードとはネットワークでつながれた車載電子装置であり、ノードがアクセス権を持つことにした。
新たなノードを開発または追加する場合、そのノードのアクセス権のみをチェックすれば当該車両用ネットワークシステム内で影響を及ぼす範囲を事前にチェックすることができる。
また、車載電子装置が増設または変更された場合に、この車載電子装置が他の車載電子装置のタスク処理を停止させるシステムコール（サービスコール）を不用意に出力しても、アクセス権を比較することで、アクセス権の高いタスクの処理を継続させることができる。
【００１８】
請求項５では、請求項１〜４のいずれか１項に記載の車両用ネットワークシステムにおいて、分散オペレーティングシステムは、システムコール機能を各ノードに分散して持たせたことを特徴とする。
【００１９】
重複するシステムコールの実行部を削減することができ、メモリの削減を含むハード回路を削減することができる。よって小規模のノードにおいても多数のシステムコールを使うことができ、プログラミングの容易化を図ることができる。
【００２０】
請求項６では、請求項１〜５のいずれか１項に記載の車両用ネットワークシステムにおいて、車両はアダプティブクルーズコントロールの機能を備え、前走車の速度および車間距離を少なくとも算出する車載電子装置を伝送線路に接続し、算出した前走車の速度および車間距離のデータを分散共有メモリに記憶させて他の車載電子装置から読出可能とすると共に、分散共有メモリに記憶された自車速度、前走車の速度および車間距離に基づいて予め決められた車間距離で該車両を追従させるギヤ段数またはスロットル開度を算出することの分散処理を可能としたことを特徴とする。
【００２１】
アダプティブクルーズコントロール（ＡＣＣ： Adaptive Cruise Control）とは、オートクルーズ走行の際、予め設定された速度以下の前走車が前方に現れた場合に、前走車との車間距離を保ちつつ同じ速度で追従するように制御することをいう。
このＡＣＣ機能による走行時は、運転手によるアクセルペダルの踏込みがないという特殊な状態にあり、自車の後ろ・左右・斜め前・斜め後ろに自車と異なる速度の他車が存在しうるという特有の環境にあり、かつ、移動しつつ上記の高度で複雑な制御を必要とするので、高い信頼性と高い性能が要求される。
【００２２】
分散共有メモリに記憶された自車速度、前走車の速度および車間距離に基づいて変速機のギヤ段数またはエンジンのスロットル開度を算出することの分散処理を可能とすることで、信頼性と性能を向上させることができる。
例えば、データのレプリカを作成したり、処理の多重化を行ったりして、障害などの危険を分散させ（危険分散）、システム全体の可用性および信頼性を高めることができ、プロセス・マイグレーションにより負荷を分散させたり、データのキャッシングを行ったりして、プログラムの実行時間を短縮し、また、システムのスループットを向上させることができる。
また、自車のＡＣＣ機能の信頼性と性能を向上させることで、自車の前後・左右・斜め前・斜め後ろに走行する他車のドライバビリティを向上させることができる。
【００２３】
請求項７の車両用ネットワークシステムは、請求項３に記載された構成において、分散オペレーティングシステムで備えるシステムコールでは車両の走行距離をパラメータとすることを特徴とし、請求項８の車両用ネットワークシステムは、請求項３に記載された構成において、分散オペレーティングシステムで備えるシステムコールでは車両の走行速度をパラメータとすることを特徴とする。
【００２４】
車両の制御や車載ナビゲーションシステムのプログラムにおいては、一定距離の走行後や一定間隔の走行毎に実行する処理がよく使われる。例えば車載用ナビゲーションシステムの誘導タスクの起動周期が挙げられる。
従来は走行パルスによって割込みを発生させ、割込みルーチンの中で起動させたいタスクに起動をかけていたが、この割込みルーチンはアプリケーションプログラムの一部としてプログラミングの都度に作られていたので柔軟性に欠けていた。例えば途中からプログラムを追加・変更した場合に対応することができないことが起こり得る。
【００２５】
そこで、車両の走行距離や走行速度をパラメータとするシステムコールを車載用オペレーティングシステムによりサポートすることで、途中からプログラムを追加・変更してもこのシステムコールに変更を加える必要がなく、また他のノードからも利用することができる。
更に、タスク起動のタイミングがプログラムコード的にリスト中に見ることができるので、プログラム構造が判り易くなり、メンテナンスの容易化、車載電子装置の開発効率の向上を図ることができる。
【００２６】
【発明の実施の形態】
以下、本発明を図面に示す実施形態に基づいて説明する。
図１は、本発明に係る車両用ネットワークシステムの構成図である。
【００２７】
この車両用ネットワークシステムは、車載電子装置１〜４間を伝送線路であるシリアル伝送バス７（例えばハーネスや光ファイバ等）で接続して構成される。また、車速を検出する車載電子装置（不図示）と車載用ナビゲーションシステムの車載電子装置（不図示）を接続している。
【００２８】
車載電子装置１は、エンジン用の燃料の噴射を制御する電子装置（ＥＦＩ  ＥＣＵ）であり、オペレーティングシステム（ＯＳ）１０と、ＤＰＲＡＭ１１と、インジェクション（不図示）と、を備えている。
【００２９】
車載電子装置２は、自動変速機のギヤのシフトを制御する電子装置（ＥＡＴ  ＥＣＵ）であり、ＯＳ２０と、ＤＰＲＡＭ２１と、ギヤレバー（不図示）と、自動変速機（不図示）と、を備えている。
車載電子装置２の制御プログラムは、例えば、種々のセンシングデータから最適なギヤ段数を算出するタスクＴ１、および、ソレノイドバルブを制御してギヤ段数を変えるタスクＴ２等、として実行される。
【００３０】
車載電子装置３は、アクセルペダルの踏み角をセンサで読み取り、スロットル開度を制御する電子装置（ＤＢＷ  ＥＣＵ）であり、ＯＳ３０と、ＤＰＲＡＭ３１と、アクセルペダル（不図示）と、センサ（不図示）と、スロットル（不図示）と、を備えている。
車載電子装置３の制御プログラムは、例えば、アクセルペダルの踏み角をセンサで読み取って踏み角に対するスロットル開度を算出するタスクＢ、および、算出したスロットル開度となるようにスロットル開度調整モータを制御するタスクＡ等、として実行される。
【００３１】
車載電子装置４は、自車速度、前走車の速度および車間距離に基づいて予め決められた車間距離で該車両を追従させるギヤ段数およびスロットル開度を算出する電子装置（ＡＣＣ  ＥＣＵ）であり、ＯＳ４０と、ＤＰＲＡＭ４１と、レーダ測距部（不図示）と、を備えている。動作ランプと加速／減速スイッチを備えてもよい。
車載電子装置４の制御プログラムは、例えば、レーダにより距離や速度を測定するレーダ測距部を用いて前走車の速度と車間距離を算出するタスクＣ、および、前走車の速度と車間距離と自車速度とに基づいて予め決められた車間距離で該車両を追従させるギヤ段数およびスロットル開度を算出するタスクＤ等として実行される。
【００３２】
各車載電子装置１〜４はＣＰＵ（不図示）とＲＡＭ（不図示）とＤＰＲＡＭ（デュアルポートＲＡＭ）１１〜４１と各種制御プログラムを格納したＲＯＭ（不図示）とを備え、ＯＳ１０〜４０は前記ＲＯＭに格納されている。もちろん、ＯＳ１０〜４０を１チップＣＰＵに組み込んでもよい。
【００３３】
ＯＳ１０〜４０は分散ＯＳを構成しており、車載電子装置１〜４は分散ＯＳを用いて車載電子装置１〜４間のデータ通信を行う。例えば、ＣＳＭＡ／ＣＤ方式による通信制御を行なってもよいし、トークンパッシング方式による通信制御を行なってもよい。この分散ＯＳは、プロセス移動の機能を備えていてもよい。
メモリ１１〜４１は分散共有メモリを構成し、自車速度等の車両の共有データを少なくとも記憶し、この分散共有メモリの記憶領域を各車載電子装置１〜４のＣＰＵからアクセス可能としている。
もちろん、車速を検出する車載電子装置（ＶＥＬ  ＥＣＵ）及び車載用ナビゲーションシステムの車載電子装置（ＮＡＶ  ＥＣＵ）のＯＳを含めて分散ＯＳを構成してもよく、これらのメモリを含めて分散共有メモリを構成してもよい。
【００３４】
図２は、車載電子装置１〜４のＤＰＲＡＭ１１〜４１の説明図である。
ＤＰＲＡＭ１１〜４１は、各々ノード間通信データ領域１２〜４２と、分散共有メモリ用データ領域１３〜４３と、を有する。ノード間通信データ領域１２〜４２はノード間で行なわれる通常の通信データが記憶される。
分散共有メモリ用データ領域１３〜４３は、自車速度等の車両の共有データを記憶する分散共有メモリを構成しており、この分散共有メモリの記憶領域を各車載電子装置のＣＰＵからアクセス可能としている。
【００３５】
ＤＰＲＡＭ１１〜４１の領域ａは、自車速度、走行距離、自動変速機のギヤセレクト位置、燃料の残量、前後加速度、ヨーレイト、ブレーキランプ状態、前走車の速度、前走車との車間距離等のデータが記憶される。
領域ｂは、燃費等のデータが記憶される。
領域ｃは、エンジン回転数、自動変速機のギヤ位置等のデータが記憶される。領域ｄは、アクセルペダルの踏み角、スロットル開度等のデータが記憶される。車載電子装置１〜４のメモリの一部に同じデータが入っている形にしている。
【００３６】
図３は、例えば、車載電子装置３のメモリにデータを書き込む動作の一例を説明するブロック構成図である。
シリアル伝送で送られたデータが分散共有メモリ用のデータか否かを識別するビットをフレーム内に設け、このビットを判別して分散共有メモリ用データと通常のノード間通信データとを分けることとする。このビットは共有データか否かを示すタグとして作用する。
例えば、フレームフォーマットを開始デリミタ（ＳＤ）とフレーム制御（ＦＣ）と宛先アドレス（ＤＡ）と送信元アドレス（ＳＡ）とデータ部（ＤＡＴ）とフレーム検査シーケンス（ＦＣＳ）と終了デリミタ（ＥＤ）とで構成し、宛先アドレス（ＤＡ）をＩＤとしてその先頭ビットにより分散共有メモリ用データか否かを識別してもよい。
【００３７】
分散共有メモリ用データの場合、宛先アドレス部分を分散共有メモリのアドレスとして車載電子装置のＤＰＲＡＭ（の領域ａ〜ｄ）にデータを書き込む。
このとき、必要ないデータ領域は書き込まないように、アドレスデコーダ５７内で選別している。
【００３８】
図３では、シリパラ変換器５０はフレームの開始デリミタ（ＳＤ）を検出すると送られて来た信号をシリアル・パラレル変換し、ＩＤ保持用レジスタ５１には宛先アドレス（ＤＡ）を保持させ、データ保持用レジスタ５２にはメモリに記憶させるデータ部（ＤＡＴ）を保持させる。
【００３９】
ＩＤ保持用レジスタ５１に保持されたアドレスＩＤの先頭ビットと、識別コード出力器５４が出力する分散共有メモリ用データの識別コードと、を比較器５３で比較する。
分散共有メモリ用データの識別コードと一致しないことを比較器５３が検出すると、この検出信号（ＸＸ）に基づいて切替スイッチ５６は、固定アドレス出力器５５の出力信号をアドレスデコーダ５７に供給し、ＩＤ保持用レジスタ５１に保持されたアドレスＩＤの先頭ビット以外の値を比較器５８に供給する。
固定アドレス出力器５５は、ＤＰＲＡＭ１１〜４１のノード間通信データ領域に対応するアドレスを出力する。
【００４０】
比較器５８は、切替スイッチ５６からの信号と、自ノードＩＤ出力器５９からの自ノードＩＤを示す信号と、を比較する。
自ノードＩＤと一致することを比較器５８が検出すると、この検出信号（ｏｏ）及び比較器５３からの検出信号（ＯＯ）に基づいてゲート６０はデータ保持用レジスタ５２の出力信号をＦＩＦＯ６１に供給する。
自ノードＩＤと一致しないことを比較器５８が検出すると、この検出信号（ｘｘ）に基づいてゲート６０はデータ保持用レジスタ５２の出力信号をＦＩＦＯ６１に供給しない。つまり、自ノード宛てでないデータは書き込まないことになる。
【００４１】
ＦＩＦＯ６１はゲート６０からの信号をＤＰＲＡＭ３１に供給し、アドレスデコーダ５７は、データを記憶するためのアドレスをＤＰＲＡＭ３１に供給する。
【００４２】
一方、分散共有メモリ用データの識別コードと一致することを比較器５３が検出すると、この検出信号（ＯＯ）に基づいて切替スイッチ５６は、固定アドレス出力器５５の出力信号をフローティング状態（φ）の端子に供給し、ＩＤ保持用レジスタ５１に保持されたアドレスＩＤの先頭ビット以外の値をアドレスデコーダ５７に供給する。
【００４３】
比較器５３からの検出信号（ＯＯ）は、ゲート６０に供給され、ゲートをオープンにしてデータ保持用レジスタ５２の出力信号をＦＩＦＯ６１に供給する。
よって、アドレスＩＤに示された分散共有メモリのアドレスへデータが書き込まれることとなる。
【００４４】
なお、符号５０〜６１の各機能をＯＳ３３に持たせてもよく、シリパラ変換器５０はハードウエアで構成してもよい。
【００４５】
図４は、車載電子装置４の処理の一部（タスクＤ）を説明するフローチャートである。このタスクＤで実行されるプログラムは車載電子装置４のＲＯＭに格納されている。更に、他の車載電子装置（例えば車載電子装置３等）のＤＰＲＡＭやＲＯＭ等のメモリに記憶させてもよい。
【００４６】
ステップＦ１では、ＡＣＣ機能の作動スイッチがオンされるまで待つ。
ステップＦ２では、アクセルペダル読込タスク（車載電子装置３のタスクＢ）をサスペンドさせ、強制待ち状態に移行させる。これは、例えばμＩＴＲＯＮのシステムコールｓｕｓ＿ｔｓｋ（Ｂ）をタスクＤが発行することで行なわれる。
タスクＤの方がタスクＢよりもアクセス権が高い場合であり、または、車載電子装置４の方が車載電子装置３よりもアクセス権が高い場合である。
【００４７】
ステップＦ３では、前走車があるか否かを判定する。例えば、レーダ測距部を用いてタスクＣにより判定する。
前走車がない場合はステップＦ７に進む。
前走車がある場合はステップＦ４に進み、タスクＣにより前走車の速度と前走車との車間距離を算出する。
【００４８】
ステップＦ５では、自車速度の値を分散共有メモリの領域ａにアクセスして読み出す。
ステップＦ６では、自車速度、前走車の速度および車間距離に基づいて予め決められた車間距離で自車を前走車に追従させるギヤ段数およびスロットル開度を算出する。
【００４９】
ステップＦ７では、自車速度の値を分散共有メモリの領域ａにアクセスして読み出す。
ステップＦ８では、設定速度を保つスロットル開度を算出する。
【００５０】
ステップＦ９では、スロットル駆動タスク（車載電子装置３のタスクＡ）にスロットル開度を指示する（算出したスロットル開度のデータを送る）。
また、ＡＴギヤ制御タスク（車載電子装置２のタスクＴ２）にギヤ段数を指示する（算出したギヤ段数のデータを送る）。なお、ギヤ段数を変えるときのみ指示し、または、ステップＦ６を経てきたときのみ指示するようにしてもよい。
【００５１】
ステップＦ１０では、ＡＣＣ機能の作動スイッチがオフか否かを判定すると共に、ブレーキペダルが踏まれたか否かを判定する。
作動スイッチがオンであってブレーキペダルが踏まれていない場合は、ステップＦ３に進む。
作動スイッチがオフの場合や、ブレーキペダルが踏まれた場合は、ステップＦ１１に進む。
【００５２】
ステップＦ１１では、アクセルペダル読込タスク（車載電子装置３のタスクＢ）のサスペンドを解除させ、このタスクを再開させる。これは、例えばμＩＴＲＯＮのシステムコールｒｓｍ＿ｔｓｋ（Ｂ）をタスクＤが発行することで行なわれる。そして、ステップＦ１に戻る。
【００５３】
すなわち、車載電子装置４は、ＡＣＣの作動スイッチがオンにされると車載電子装置３のスロットル開度を算出するタスクＢをサスペンドする指示（ｓｕｓ＿ｔｓｋ（Ｂ））を図５に示すように出力し、代わりに、前走車に追従するための速度を達成するスロットル開度の指示値を、車載電子装置３のスロットル開度調整モータを制御するタスクＡに送る。
また、前走車が減速してスロットル全閉だけでは必要な減速加速度が得られない場合は、ギヤ段数の指示値を車載電子装置２のギヤ段数を変えるタスクＴ２に送る。このとき、ギヤ段数を算出するタスクＴ１は停止させてもよい。
これらの制御データの送受信は、分散ＯＳのタスク間通信機能としてサポートされているものを使用する。
【００５４】
尚、タスク遅延のシステムコールの実行部が他のノード内のＯＳにサポートされている場合の動作を図７に例示する。
システムコール機能が分散化されていない場合は、タスク管理機能と時間管理機能が同じノード内のＯＳにサポートされている。
一方、システムコール機能を分散化した場合は、時間管理機能を他のノードに移すことが可能になる。
【００５５】
タスクＹから要求されたタスク遅延のシステムコール（ｄｌｙ＿ｔｓｋ）の実行部が自ノード（車載電子装置９）にない場合は、そのシステムコール実行部がある他のノード（車載電子装置８）にネットワークを通じて依頼する。
依頼されたノード（車載電子装置８）内のＯＳ８０は、システムコール（ｄｌｙ＿ｔｓｋ）を実行する。この時、タスクＹへのシステムコール（ｓｕｓ＿ｔｓｋ）の要求とシステムコール（ｒｓｍ＿ｔｓｋ）の要求は、他ノード（車載電子装置８）からのシステムコールとなるから、タスクＹの存在するノード（車載電子装置９）のＯＳ９０にネットワークを通じて依頼することになる。
これにより、重複するシステムコール（ｄｌｙ＿ｔｓｋ）の実行部を削減することができ、メモリの削減を含むハード回路（例えばクロックタイマ割込みやカウンタの回路）を削減することができる。よって小規模のノードにおいても多数のシステムコールを使うことができ、プログラミングの容易化を図ることができる。
【００５６】
このタスク遅延の具体例を図８を用いて説明する。システムコール（ｄｌｙ＿ｔｓｋ）に代えて、これに類似するシステムコール（ｗｄｉｓｔ＿ｔｓｋ（ｄｌｙｄｉｓｔ））を用いて説明する。
システムコール（ｗｄｉｓｔ＿ｔｓｋ（ｄｌｙｄｉｓｔ））は、そのパラメータｄｌｙｄｉｓｔに指定された距離を走行する間、タスクの実行を止めるシステムコールである。
【００５７】
タスクＹからのシステムコール（ｗｄｉｓｔ＿ｔｓｋ（ｄｌｙｄｉｓｔ））をＯＳ８０が検出すると、ＯＳ８０はタスクＹ（または車載電子装置９のＯＳ９０）にシステムコール（ｓｕｓ＿ｔｓｋ）を出力する。
予め定められた一定距離Ｌを走行する毎に走行パルスＶＰが減算カウンタ８５に供給される。セット回路８４はカウント値が０になったことを検出すると、減算カウンタ８５のカウント値を一定のカウント値に自動的にセットする。
減算カウンタ８５のカウント値はＯＳ８０に供給され、ＯＳ８０はカウント値から走行距離を積算して検出し、パラメータｄｌｙｄｉｓｔに指定された距離を走行したことを検出すると、ＯＳ８０はタスクＹを再開するシステムコール（ｒｓｍ＿ｔｓｋ）をタスクＹ（または車載電子装置９のＯＳ９０）に出力する。
【００５８】
車両の制御や車載用ナビゲーションシステムのプログラムにおいては、一定距離の走行後や一定間隔の走行毎に実行する処理がよく使われる。例えば車載用ナビゲーションシステムの誘導タスクの起動周期が挙げられる。
従来は走行パルスＶＰによって割込みを発生させ、割込みルーチンの中で起動させたいタスクに起動をかけていたが、この割込みルーチンはアプリケーションプログラムの一部として、プログラミングの都度に作られていたので柔軟性に欠けていた。例えば途中からプログラムを追加・変更した場合に対応することができないことが起こり得る。
【００５９】
そこで、車両の走行距離や走行速度をパラメータとするシステムコールを車載用オペレーティングシステムによりサポートすることで、途中からプログラムを追加・変更してもこのシステムコールに変更を加える必要がなく、また他のノードからも利用することができる。
更に、タスク起動のタイミングがプログラムコード的にリスト中に見ることができるので、プログラム構造が判り易くなり、メンテナンスの容易化、車載電子装置の開発効率の向上を図ることができる。
【００６０】
なお、走行速度（自車速度）により処理内容を変えたり所定の走行速度以上で処理を行ったりするようなタスク起動用システムコール（ｓｔｓｐｄ＿ｔｓｋ（ｔｓｋｉｄ，ｓｐｅｅｄ））を設けてもよい。
パラメータｓｐｅｅｄで指定された走行速度以上になったらパラメータｔｓｋｉｄに指定されるタスク（例えばドアのオートロックを行うタスク）を実行することとする。
【００６１】
以上に述べてきたアプリケーションの動作は、車両用ネットワークシステムに分散ＯＳを備えなくても達成することができる。しかし、そのためには、予め車載電子装置から出力される指示に対する動作を、それ以外の各車載電子装置のプログラムに記述しておかなければならず、該車載電子装置が後から開発された場合は、該プログラムに記述しておくことはできない。
【００６２】
なお、車載電子装置３と車載電子装置４とを統合した車載電子装置を開発する場合には、双方のプログラムを書き換える必要もなく、同一のＣＰＵにて動作させることができる。
これは、シリアル伝送バス７を介した送受信は分散ＯＳにより行なっていたので、車載電子装置４のタスクＤはタスクＢの場所に拘わらずに分散ＯＳに指示を行なえば、分散ＯＳによってタスクＢのある車載電子装置４のＯＳ４０に指示を出してタスクＢを動作／停止させていたからである。分散ＯＳを備えていないシステムでは、ハードウエアの構成に依存したプログラムとなってしまう。
図６に、車載電子装置４を車載電子装置３に統合した場合の動作の簡易説明図を示す。
【００６３】
本発明によれば、分散共有メモリに記憶された自車速度、前走車の速度および車間距離に基づいて変速機のギヤ段数またはエンジンのスロットル開度を算出することの分散処理を可能とすることで、信頼性と性能を向上させることができる。
例えば、データのレプリカを作成したり、処理の多重化を行ったりして、障害などの危険を分散させ（危険分散）、車両用ネットワークシステム全体及びＡＣＣ機能の可用性と信頼性を高めることができ、プロセス・マイグレーションにより負荷を分散させたり、データのキャッシングを行ったりして、プログラムの実行時間を短縮し、また、車両用ネットワークシステムのスループットを向上させることができる。
また、自車のＡＣＣ機能の信頼性と性能を向上させることで、自車の前後・左右・斜め前・斜め後ろに走行する他車のドライバビリティを向上させることができる。
【００６４】
分散ＯＳは、ＯＳ全体を新しく設計し分散透明度が高いシステムの提供を指向するＯＳである。制御法の観点から、分散ＯＳは集中制御型と分散制御型の２つに類別されるが、何れを使用してもよい。
集中制御型は、システム内の各コンピュータのＯＳを構成要素としてグローバルＯＳを構成する。つまり、システムには１つのグローバルＯＳが存在し、その核の部分が散在しているコンピュータのＯＳを制御することにより、分散透明な環境を実現する。
一方、分散制御型は、システムに中心的な制御要素は存在せず、各コンピュータのＯＳは、同質で対等の関係にある。各ＯＳのプログラム（例えばタスク管理プログラムを含む）を同一としてもよい。
【００６５】
自車速度、前走車の速度および車間距離のデータを複数の車載電子装置に持たせ、複数のコピーを異なる車載電子装置に配置することによって、車載電子装置や通信の障害があってもＡＣＣ機能の処理が継続できる率を高めることができる。
また、データにアクセスするマイコンもしくはその近くにコピーを置くことによって、アクセスに要する通信コストを下げ、応答性を高めることができる。
更に、異なる車載電子装置に配置された複数のコピーに同時にアクセスすることを許し、ＡＣＣ機能の処理の並列性を高めることができる。
【００６６】
なお、分散ＯＳと分散共有メモリについては、「インターフェース」（Ｏｃｔ．１９９１、第１２３〜１３９頁）や、「分散オペレーティングシステム」（著者：アンドリュー・Ｓ・タネンバウム、訳者：水野忠則，鈴木健二，宮西洋太郎，佐藤文明、発行所：株式会社プレンティスホール出版、１９９６年８月５日初版第１刷発行）を参考にすることができる。
分散ＯＳについては、「分散処理」（著作者：白鳥則郎，滝沢誠、発行所：丸善株式会社、平成８年７月３１日発行）を参考にすることができる。
「インターフェース」（Ｄｅｃ．１９９３）の第７５〜１６２頁には、リアルタイムＯＳとμＩＴＲＯＮの特集があり、これを参考にすることができる。
これらの文献は、分散処理についても参考にすることができる。
【００６７】
また、上記実施形態は本発明の一例であり、本発明は上記実施形態に限定されない。
【００６８】
【発明の効果】
本発明の車両用ネットワークシステムによれば、分散ＯＳを備えることで、情報・資源のスムーズな共用が可能となり、ネットワーク透過性を向上させることができる。
また、信頼性を向上させることができる。例えば、データのレプリカを作成したり、処理の多重化を行ったりして、障害などの危険を分散させ（危険分散）、システム全体の可用性および信頼性を高めることができる。
更に、性能を向上させることができる。例えば、プロセス・マイグレーションにより負荷を分散させたり、データのキャッシングを行ったりして、プログラムの実行時間を短縮し、また、システムのスループットを向上させることができる。
【００６９】
また、規模適応性を向上させることができる。ネットワークに接続されるマイコンは独立して動作し、ネットワークという統一したインタフェースで結合される。こうした性質から、ある機能を変更したり、新しく機能を追加したりすることが集中管理の場合に比べ、より柔軟に行うことができる。
あたかも、マイコンにメモリを増設していくように、マイコンを追加すればそれだけシステムとしての性能を向上させることができ、しかもこれをシステムプログラムやアプリケーションプログラムを変更せずに行うことができる。
また、システムのオープン性を高めることができる。
【００７０】
また、本発明の車両用ネットワークシステムによれば、ネットワーク仮想記憶を集中型システムの共有メモリと同様のセマンティックスで利用することができ、物理的に共用するメモリがない場合に分散システム上で共有メモリを仮想的に作り上げることができる。
また、ネットワーク規模でアドレス空間が展開でき、プログラミング・レベルでのネットワーク透過性を得ることができる。
【００７１】
更に、複数のプロセッサがメモリを共用するという計算モデルは、メモリ共有型マルチプロセッサとの整合性もあり、データを共用するプログラミングが容易にかつ自然に行うことができる。
また、ネットワークに接続されるマイコンの数が増えれば、それだけ利用できる物理的な記憶領域を増大させることができる。
更に、仮想記憶機構によって、入出力操作命令を使ってデータにアクセスするよりも効率的なアクセスを行うことができる。
【００７２】
また、本発明の車両用ネットワークシステムによれば、分散共有メモリの記憶領域のうちで予め決められた部分のみ各車載電子装置からアクセス可能とすることで、前記部分以外の記憶領域のデータが不必要に書き換えられることを防止することができる。
【００７３】
また、本発明の車両用ネットワークシステムによれば、車載電子装置が増設または変更された場合に、この車載電子装置が他の車載電子装置のタスク処理を停止させるシステムコールを不用意に出力しても、アクセス権の高いタスクの処理を継続させることができる。例えば、伝送線路をサードパーティに開放して車両のオプション用品を開発してもらう場合等に、車両用ネットワークシステムの信頼性を保持することができる点で有効である。
【００７４】
また、本発明の車両用ネットワークシステムによれば、新たなノードを開発または追加する場合、そのノードのアクセス権のみをチェックすれば当該車両用ネットワークシステム内で影響を及ぼす範囲を事前にチェックすることができ、新たなノードが車両に及ぼす影響を事前に知ることができる。
【００７５】
また、本発明の車両用ネットワークシステムによれば、重複するシステムコールの実行部を削減することができ、メモリの削減を含むハード回路を削減することができる。よって小規模のノードにおいても多数のシステムコールを使うことができ、プログラミングの容易化を図ることができる。
【００７６】
また、本発明の車両用ネットワークシステムによれば、分散共有メモリに記憶された自車速度、前走車の速度および車間距離に基づいて変速機のギヤ段数またはエンジンのスロットル開度を算出することの分散処理を可能とすることで、信頼性と性能を向上させることができる。
例えば、データのレプリカを作成したり、処理の多重化を行ったりして、障害などの危険を分散させ（危険分散）、システム全体の可用性および信頼性を高めることができ、プロセス・マイグレーションにより負荷を分散させたり、データのキャッシングを行ったりして、プログラムの実行時間を短縮し、また、システムのスループットを向上させることができる。
また、自車のＡＣＣ機能の信頼性と性能を向上させることで、自車の前後・左右・斜め前・斜め後ろに走行する他車のドライバビリティを向上させることができる。
【００７７】
また、本発明の車載用オペレーティングシステムによれば、車両の走行距離や走行速度をパラメータとするシステムコールを車載用オペレーティングシステムにサポートすることで、途中からプログラムを追加・変更してもこのシステムコールに変更を加える必要がなく、また他のノードからも利用することができる。
更に、タスク起動のタイミングがプログラムコード的にリスト中に見ることができるので、プログラム構造が判り易くなり、メンテナンスの容易化、車載電子装置の開発効率の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の車両用ネットワークシステムの簡易構成図
【図２】車両用ネットワークシステムのＤＰＲＡＭの簡易説明図
【図３】車載電子装置３のＤＰＲＡＭ３１にデータを書き込む動作の一例を説明する簡易ブロック構成図
【図４】車載電子装置４の処理の一部（タスクＤ）を説明するフローチャート
【図５】車載電子装置３と車載電子装置４の動作を説明する簡易構成図
【図６】車載電子装置４を統合した車載電子装置３の動作を説明する簡易構成図
【図７】タスク遅延のシステムコールの実行部が自ノードになく、他ノードにある場合の動作説明図
【図８】タスク遅延のシステムコールの実行部を例示した説明図
【符号の説明】
１…車載電子装置（ＥＦＩ  ＥＣＵ）、２…車載電子装置（ＥＡＴ  ＥＣＵ）、３…車載電子装置（ＤＢＷ  ＥＣＵ）、４…車載電子装置（ＡＣＣ  ＥＣＵ）、５，６…ターミナル（終端抵抗）、７…シリアル伝送バス（伝送線路）、８…車載電子装置（ＶＥＬ  ＥＣＵ）、９…車載電子装置（ＮＡＶ  ＥＣＵ）、１０，２０，３０，４０…オペレーティングシステム（分散オペレーティングシステム）、１１，２１，３１，４１…ＤＰＲＡＭ（デュアルポートＲＡＭ）、１２，２２，３２，４２…ノード間通信データ領域（ＬＭ）、１３，２３，３３，４３…分散共有メモリ用データ領域（ＤＳＭ）、５０…シリパラ変換器（シリアル／パラレル変換器）、５１…ＩＤ保持用レジスタ、５２…データ保持用レジスタ、５３，５８…比較器（ＣＰ）、５４…識別コード出力器、５５…固定アドレス出力器、５６…切替スイッチ、５７…アドレスデコーダ、５９…自ノードＩＤ出力器、６０…ゲート、６１…ＦＩＦＯ、ａ，ｂ，ｃ，ｄ…分散共有メモリの各領域。
【図１】
0003898264.tif 000002
【図２】
0003898264.tif 000003
【図３】
0003898264.tif 000004
【図４】
0003898264.tif 000005
【図５】
0003898264.tif 000006
【図６】
0003898264.tif 000007
【図７】
0003898264.tif 000008
【図８】
0003898264.tif 000009