(57)【要約】【課題】  １つのハードウェア制御主体（ＥＣＵ）が複数のアプリケーションの実行を担うように構成されているにも拘わらず、アプリケーション間で異なるスリープ条件の調停を極めて容易にかつ適格に行なうことができ、アプリケーションのスリープ仕様の変更にも柔軟に対応できる自動車用スリープ制御システムを提供する。【解決手段】  複数のアプリケーション間でスリープ期間が異なる場合でも、スリープ制御情報取得手段により各アプリケーションから要求スリープ期間に関する情報を個別に取得し、さらに、有効スリープ期間算出手段により、取得した要求スリープ期間に共通に含まれる期間を有効スリープ期間として見出す。そして、その有効スリープ期間を用いてハードウェア制御主体のスリープ／ウェイクアップの制御を行なう。【選択図】    図８
2006151007.tif 000002
【特許請求の範囲】
【請求項１】
自動車上の複数の被制御要素の電気的動作を制御するために前記被制御要素に対応して設けられた複数の制御手段の動作モードを、通常動作モードと、該通常動作モードよりも消費電力量が少ないスリープモードとの間で切り替える自動車用スリープ制御システムであって、
前記複数の制御手段は、同一のハードウェア制御主体上でそれぞれ実行される、各制御手段に対応した複数のアプリケーションソフトウェアにより機能実現されるものであり、
前記複数のアプリケーションソフトウェアが要求するスリープ期間の開始時刻及び終了時刻を直接的又は間接的に特定するためのスリープ制御情報を、それら複数のアプリケーションソフトウェアから要求スリープ制御情報として個別に取得するスリープ制御情報取得手段と、
取得された各アプリケーションソフトウェアの要求スリープ制御情報が各々規定する複数の要求スリープ期間に、共通に含まれる期間を有効スリープ期間として算出する有効スリープ期間算出手段と、
算出された前記有効スリープ期間の開始時刻が到来することにより、前記複数のアプリケーションソフトウェアの実行を一元的に司る前記ハードウェア制御主体を前記スリープモードに移行させ、該有効スリープ期間が経過することにより、前記ハードウェア制御主体を前記スリープモードから前記通常動作モードにウェイクアップさせるスリープ制御手段と、
を備えたことを特徴とする自動車用スリープ制御システム。
【請求項２】
スリープ制御情報取得手段は、前記複数のアプリケーションソフトウェアにて共通に使用される登録メモリに対し、各アプリケーションソフトウェアが、自身に設定されている前記スリープ制御情報を自発的に書き込むことによりこれを登録するスリープ制御情報登録手段と、該スリープ制御情報登録手段に登録されている前記スリープ制御情報を読み出すことによりこれを取得する登録スリープ制御情報読み出し手段とを有する請求項１記載の自動車用スリープ制御システム。
【請求項３】
前記アプリケーションソフトウェアは、前記スリープ制御情報を、前記スリープ期間の開始時刻及び期間長を含むタイマー情報として設定してなる請求項１又は請求項２に記載の自動車用スリープ制御システム。
【請求項４】
複数の前記アプリケーションソフトウェアにおいて、前記スリープ制御情報がそれぞれ定める要求スリープ期間の終了時刻のうち最も早く到来するものを第一種限界時刻として、前記有効スリープ期間算出手段は、前記有効スリープ期間の終了時刻を前記第一種限界時刻と同じか又はこれよりも時系列的に早い時刻として定めるものである請求項１ないし請求項３のいずれか１項に記載の自動車用スリープ制御システム。
【請求項５】
複数の前記アプリケーションソフトウェアにおいて、前記スリープ制御情報がそれぞれ定める要求スリープ期間の開始時刻のうち最も遅く到来するものを第二種限界時刻として、前記有効スリープ期間算出手段は、前記有効スリープ期間の終了時刻を前記第二種限界時刻と同じか又はこれよりも時系列的に遅い時刻として定めるものである請求項１ないし請求項４のいずれか１項に記載の自動車用スリープ制御システム。
【請求項６】
前記スリープ制御手段は、算出された前記有効スリープ期間が予め定められた基準値よりも小さい場合に、前記ハードウェア制御主体が前記スリープモードに移行することを抑制するスリープ抑制手段を有する請求項１ないし請求項５のいずれか１項に記載の自動車用スリープ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動車上の被制御要素の制御を司るハードウェア制御主体の、その動作電力削減を目的とした自動車用スリープ制御システムに関する。
【背景技術】
【０００２】
【特許文献１】特開２００２−４１１４１号公報
【特許文献２】特開２００３−３１８９２４号公報
【０００３】
自動車には、各種機器（被制御要素）を制御するために、マイクロプロセッサ（ハードウェア制御主体）からなるＥＣＵが搭載されている。ＥＣＵは、ある条件で、例えば、車両が駐車状態にある場合、又はあるスイッチ操作がない場合にスリープモードに移行するようにしている。具体的にはスリープモードとは、ＥＣＵを構成する発振器を停止したスタンバイモードや、通常動作と異なる低周波数の発振器で動作するスロークロックモード、あるいは一定時間ごとにＣＰＵを間欠的に動作させる間欠モードなどであり、低消費電流モードにあることをいう。特に、キーレスエントリ方式のように、携帯器を保有したユーザーが自動車に接近したことを上記携帯器を介して無線検知し、ドアロック解除やエンジン始動などの動作を自動制御したい場合、この制御を司るＥＣＵは、駐車中あるいはエンジン停止中であっても動作を常時継続していなければならない。特に駐車時間が長期に渡る場合、通常動作モードでＥＣＵを作動させつづけるとバッテリー電圧低下を招き、自動車を始動できなくなる問題を生ずるので、ＥＣＵのスリープ制御は、バッテリー保護の観点から近年重要性を増しつつある。スリープモードからのウェイクアップには、外部からのプログラム起動指令ないし入力があったとき、割り込み処理により不定期にウェイクアップする場合と、タイマー制御により定期的にスリープとウェイクアップとを繰り返す場合との２種類がある。後者は、例えばキーレスエントリシステムのように、ユーザーの携帯器からの信号受信スタンバイ期間を、スリープ期間を介して断続的に生じさせ、節電を図る目的に活用されている。
【０００４】
特許文献１には、複数のＥＣＵを備えた自動車用システムのスリープ制御について開示されている。自動車のＥＣＵが司る被制御要素の種別は非常な多岐に渡り、その制御パターンもまちまちである。上記のように複数のＥＣＵが用いられる場合、各ＥＣＵが司る制御は被制御要素も制御内容も異なるのが通常であり、被制御要素ひいてはＥＣＵ毎にスリープ条件も異なる。特許文献２においては、複数のＥＣＵがそれぞれスリープ拒否機能を有し、ネットワークを介して各ＥＣＵに一元的にスリープ信号が与えられたとき、自身でスリープ可能と判断したＥＣＵのみが個別にスリープに入るようにすることで、ＥＣＵ毎に異なる条件で独立にスリープ制御が可能となるようにシステムが構成されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、自動車に搭載されるＥＣＵは処理容量（パラレル処理ビット数及びクロック周波数）に大きいものが使用されるようになってきており、１つのＥＣＵが、被制御要素の異なる複数のアプリケーションを並列に実行する状況が生じている。特許文献２の技術では、複数のアプリケーションを個別のＥＣＵにて実行するようになっていたから、スリープ拒否機能の搭載により、個々のＥＣＵは制御内容に応じて独立にスリープ条件をカスタマイズすることができた。しかし、１つのＥＣＵで複数のアプリケーションを扱う場合は、こうした処理はハードウェア的に不可能である。他方、複数のアプリケーションを個々にプログラミングする段階で、いちいちスリープ条件をすり合わせて調停するのは、プログラマー（設計者）にとって非常に負担が大きく、１つのアプリケーションのスリープ仕様がバージョンアップ等によりが変更された場合は、バージョンアップされていない他のアプリケーションにまでその影響が及び、スリープ条件再調停のためのプログラムの手直しが必要になるなど、すこぶる効率がわるい。
【０００６】
本発明の課題は、１つのハードウェア制御主体（ＥＣＵ）が複数のアプリケーションの実行を担うように構成されているにも拘わらず、アプリケーション間で異なるスリープ条件の調停を極めて容易にかつ適格に行なうことができ、アプリケーションのスリープ仕様の変更にも柔軟に対応できる自動車用スリープ制御システムを提供することにある.
【課題を解決するための手段及び発明の効果】
【０００７】
上記の課題を解決するために、本発明の自動車用スリープ制御システムは、
自動車上の複数の被制御要素の電気的動作を制御するために被制御要素に対応して設けられた複数の制御手段の動作モードを、通常動作モードと、該通常動作モードよりも消費電力量が少ないスリープモードとの間で切り替える自動車用スリープ制御システムであって、
複数の制御手段は、同一のハードウェア制御主体上でそれぞれ実行される、各制御手段に対応した複数のアプリケーションソフトウェアにより機能実現されるものであり、
複数のアプリケーションソフトウェアが要求するスリープ期間の開始時刻及び終了時刻を直接的又は間接的に特定するためのスリープ制御情報を、それら複数のアプリケーションソフトウェアから要求スリープ制御情報として個別に取得するスリープ制御情報取得手段と、
取得された各アプリケーションソフトウェアの要求スリープ制御情報が各々規定する複数の要求スリープ期間に、共通に含まれる期間を有効スリープ期間として算出する有効スリープ期間算出手段と、
算出された有効スリープ期間の開始時刻が到来することにより、複数のアプリケーションソフトウェアの実行を一元的に司るハードウェア制御主体をスリープモードに移行させ、該有効スリープ期間が経過することにより、ハードウェア制御主体をスリープモードから通常動作モードにウェイクアップさせるスリープ制御手段と、を備えたことを特徴とする。
【０００８】
上記本発明の構成によると、複数のアプリケーション間でスリープ期間が異なる場合でも、スリープ制御情報取得手段により各アプリケーションから要求スリープ期間に関する情報を個別に取得し、さらに、有効スリープ期間算出手段により、取得した要求スリープ期間に共通に含まれる期間を有効スリープ期間として見出し、これを用いてハードウェア制御主体のスリープ／ウェイクアップの制御を行なうことで、アプリケーション間で異なるスリープ条件の調停を容易にかつ適格に行なうことができる。特に、タイマー制御により、各アプリケーションが定期的にスリープとウェイクアップとを繰り返す方式、あるいは該方式と、割り込み処理による不定期ウェイクアップが併用される方式が採用される場合に有効であるといえる。
【０００９】
また、複数のアプリケーション間のスリープ調停は、プログラミングの段階で行なうのではなく、それらアプリケーションとは独立した機能実現手段であるスリープ制御情報取得手段とスリープ制御手段とが、ハードウェア制御主体によるソフトウェア処理の一環として後付け的に実施されるので、プログラマーは、個々のアプリケーションプログラムを作成する際にも、他のアプリケーションとのスリープ調停を深く考慮に入れる必要がなくなり、負担が軽減されるとともにプログラミングの自由度も大幅に増大する。また、バージョンアップ等によりアプリケーションのスリープ仕様が変更されても、変更後の要求スリープ制御情報を再取得し、有効スリープ期間を算出しなおすだけで処理が終わるので、アプリケーションプログラムの本体にまで大きな手直しをする必要がなくなるので対応が非常に楽である。
【００１０】
アプリケーションプログラム中に記述された要求スリープ制御情報を取得収集する際に、ＥＣＵのアプリケーションソフトウェアのワークメモリエリアにアクセスして要求スリープ期間を取得しようとすると、アプリケーションプログラムがロードされるメモリアドレスが相対アドレス化されている場合に、要求スリープ制御情報の書き込みアドレスが不定となり、メモリスキャンなど非常に面倒で負担の大きいプログラム処理が必要となる。そこで、スリープ制御情報取得手段は、複数のアプリケーションソフトウェアにて共通に使用される登録メモリに対し、各アプリケーションソフトウェアが、自身に設定されているスリープ制御情報を自発的に書き込むことによりこれを登録するスリープ制御情報登録手段と、該スリープ制御情報登録手段に登録されているスリープ制御情報を読み出すことによりこれを取得する登録スリープ制御情報読み出し手段とを有するものとして構成しておくと便利である。つまり、書き込みアドレスが固定化されている登録メモリを用意し、アプリケーションソフトウェアが自分の要求スリープ制御情報をこれに自発的に書き込んで登録するようにしておけば、要求スリープ制御情報はその登録メモリにアクセスするだけで簡単に取得することができるようになる。
【００１１】
各アプリケーションソフトウェアには、そのアプリケーション単独での都合を優先したスリープ期間を、とりあえず要求スリープ期間として設定し、プログラム中に組み込んでおくことができる。この要求スリープ期間は、開始／終了の時刻（タイミング）や、期間継続長さがアプリケーション間で一致することのほうがむしろまれであり、結局のところ、それら複数のアプリケーションの共通動作環境であるハードウェア制御主体（ＥＣＵ）がスリープできるのは、最大に見積もって、個々のアプリケーションに設定された要求スリープ期間の共通集合をなす期間（以下、これを最大有効スリープ期間という）ということになる。最終的にスリープを実行させるのに使用する有効スリープ期間は、この最大有効スリープ期間の全部又は一部として設定が可能である。節電対策上は、設定する有効スリープ期間を最大有効スリープ期間に一致させることが望ましいといえるが、必要に応じて、その一部のみを有効スリープ期間として設定することももちろん可能である。最大有効スリープ期間の５０％以上、望ましくは８０％以上（１００％を含む）を有効スリープ期間として設定するのがよい。
【００１２】
具体的には、複数のアプリケーションソフトウェアにおいて、スリープ制御情報がそれぞれ定める要求スリープ期間の終了時刻のうち最も早く到来するものを第一種限界時刻として、有効スリープ期間算出手段は、有効スリープ期間の終了時刻を第一種限界時刻と同じか又はこれよりも時系列的に早い時刻として定めるものとすることができる。これにより、要求ウェイクアップ時刻（要求スリープ期間の終了時刻）が一致しない複数のアプリケーションソフトウェアの、そのいずれにも整合するウェイクアップ時刻（終了時刻）
を有した有効スリープ期間を容易に設定することができる。
【００１３】
また、複数のアプリケーションソフトウェアにおいて、スリープ制御情報がそれぞれ定める要求スリープ期間の開始時刻のうち最も遅く到来するものを第二種限界時刻として、有効スリープ期間算出手段は、有効スリープ期間の終了時刻を第二種限界時刻と同じか又はこれよりも時系列的に遅い時刻として定めるものとすることもできる。これにより、要求スリープ時刻（要求スリープ期間の開始時刻）が一致しない複数のアプリケーションソフトウェアの、そのいずれにも整合するスリープ時刻（開始時刻）を有した有効スリープ期間を容易に設定することができる。
【００１４】
なお、算出された有効スリープ期間があまりに短すぎると、その短い有効スリープ期間に従って律儀にスリープ／ウェイクアップを繰り返すことは、アプリケーションの円滑な実行を却って妨げることにもつながる。この場合、スリープ制御手段は、算出された有効スリープ期間が予め定められた基準値よりも小さい場合に、ハードウェア制御主体がスリープモードに移行することを抑制するスリープ抑制手段を有するものとして構成することが有効である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明の自動車用スリープ制御システムの概念が適用されるＥＣＵの電気的な構成図である。ＥＣＵ１は、ＣＰＵ３、ＲＯＭ５、ＲＡＭ４及び入出力部（Ｉ／Ｏポート）２がバス接続されたマイクロプロセッサからなる。ＥＣＵ１は、本実施形態では自動車のボデー系の制御を司るボデー系ＥＣＵとして構成され、図２はその概略アーキテクチャを示すものである。マイクロプロセッサからなるハードウェア制御主体上に搭載されるソフトウェアは、プラットフォームと、そのプラットフォーム上で動作する、ボデー系機能を実現するためのアプリケーションである。なお、複数のアプリケーションを区別するために、１〜ｎの記号を付して示した。プラットフォームは、ベースとなるハードウェアが相違する場合にも、各アプリケーションに共通の動作環境を与えるためのものであり、該アプリケーションに対する基本ソフト（ＯＳ）のほか、アプリケーションやハードウェアとの連携を図るインターフェースプログラムなどを含んで構成されるが、概念的には周知の部分なので説明の詳細は省略する。
【００１６】
アプリケーションは、車両利用者による車両各部の操作に係る機能であるボデー系機能を実現するものである。このボデー系機能とは、具体的には、ドア開閉に伴う制御、窓開閉に伴う制御、ライトスイッチのオン／オフに伴う制御、キーレスエントリ方式等に採用されるワイヤレスドアロック機構の制御、・・・といったものをいう。具体的には、以下のようなものを例示できる：
・運転席ドア、助手席ドア、後部右側座席ドア、後部左側座席ドア、ルーフなどのロック／ロック解除、パワーウィンドウ動作など。
・エアコン、カーオーディオ、カーナビゲーションシステムなどの電源動作など。
・ルームランプ、コックピットランプ、ヘッドライト、スモールランプ、ハザードランプ、テールランプなどのスイッチ点灯制御など。
【００１７】
図１に戻り、各アプリケーション１、２、‥はＲＯＭ５に記憶されており、ＲＡＭ４の各アプリケーションに対応したワークエリア上でＣＰＵ３により実行される。アプリケーション１、２‥のバージョンアップや追加／削除などを前提としない場合は、ＲＯＭ５は書き換え不能なマスクＲＯＭで構成することができる。他方、バージョンアップや追加／削除などを前提とする場合は、電気的な書き換えが可能なＲＯＭ、例えばＥＥＰＲＯＭ５やフラッシュＲＯＭで構成しておく（もちろん、マスクＲＯＭと電気的な書き換えが可能なＲＯＭとを併用することも可能である）。この種の書き換え可能なＲＯＭは、読み出し時の駆動電圧と書き込み消去時の駆動電圧が異なる値に設定され、ＲＡＭと異なって、読み出し時と同じ制御電圧では書き込み消去が不能となっている。
【００１８】
ＥＣＵ１は、必要に応じて外部からのスイッチやセンサからの入力信号等も参照しつつ、各アプリケーションの実行により、前述した各種ボデー系の制御対象機器（被制御要素）の動作制御を司る。しかし、ＥＣＵ１は、ある条件で、例えば、車両が駐車状態にある場合、又はあるスイッチ操作がない場合にはスリープモードに移行する。このスリープモードへの移行は、具体的には全てのアプリケーションが動作終了し、次の動作開始のための待機状態になっている場合に、ＥＣＵ１全体を低消費電力モード（ＥＣＵを構成する発振器を停止したスタンバイモードや、通常動作と異なる低周波数の発振器で動作するスロークロックモード、あるいは一定時間ごとにＣＰＵを間欠的に動作させる間欠モードなど）へ移行させる形で行なうものであり、その制御は図２のプラットフォーム部分が担うこととなる（図１のＲＯＭ５に搭載されているが、記載は省略している）。
【００１９】
ＥＣＵ１は、ネットワークバスを介して他のハードウェア制御主体（例えば他のＥＣＵ）と接続されており、該ネットワークバスを介した通信により、リセット指示又はウェイクアップ要因を判断すると動作を開始する。図１０は、その処理の概略を示すフローチャートであり、リセット指示があった場合はリセット時のシステム設定を行い（Ｓ１００）、その後、Ｓ１２０へ移行する。一方、ウェイクアップ要因を判断した場合、ウェイクアップ時のシステム設定を行い（Ｓ１１０）、その後、Ｓ１２０へ移行する。Ｓ１２０では、各アプリケーションによる制御が行われる。ここでは、複数のアプリケーションの状態が判定され、所定条件成立時にスリープ時のシステム設定を行い（Ｓ１３０）、その後、スリープする。この判定を含めたＥＣＵ１のスリープ状態への移行、及びウェイクアップのための準備制御などを統括的に司るのが、図１のスリープ管理・制御ソフトである。スリープ管理・制御ソフトは、本発明の自動車用スリープ制御システムの中核機能を実現するもので、
・スリープ制御情報取得手段：複数のアプリケーションソフトウェアが要求するスリープ期間の開始時刻及び終了時刻を直接的又は間接的に特定するためのスリープ制御情報を、それら複数のアプリケーションソフトウェアから要求スリープ制御情報として個別に取得する；
・有効スリープ期間算出手段：取得された各アプリケーションソフトウェアの要求スリープ制御情報が各々規定する複数の要求スリープ期間に、共通に含まれる期間を有効スリープ期間として算出する；
・スリープ制御手段：算出された有効スリープ期間の開始時刻が到来することにより、複数のアプリケーションソフトウェアの実行を一元的に司るハードウェア制御主体をスリープモードに移行させ、該有効スリープ期間が経過することにより、ハードウェア制御主体をスリープモードから通常動作モードにウェイクアップさせる；
の各機能的手段を、ＣＰＵ３上にて実現するものである。ソフトウェア構造上は、図１のプラットフォームの一部をなすものとして把握できる。その詳細については、後述する。
【００２０】
図１０の、Ｓ１２０における各アプリケーションによる制御を示すのが図３の説明図である。ここには、プラットフォームの機能の一部として形成されたスケジューラによって、複数のアプリケーション１，２‥ｎが順次起動される様子が示されている。このとき、プラットフォーム内の状態管理プログラムが、一連のアプリケーションの状態をまとめて管理するようになっており、制御状態を判定して状態遷移処理を行なう。状態管理プログラムによる状態遷移処理を示すのが、図４の説明図である。状態管理プログラムは、アプリケーションの状態として３つの状態、すなわち準備状態α、制御状態β、そして、制御開始監視状態γを定義しており、図３に示したスケジューラによる一連の起動処理毎に、各アプリケーションからの信号に基づき、必要に応じて状態を遷移させる。
【００２１】
すなわち、リセット指示によって動作を開始している場合、最初は準備状態αとし、一方、ウェイクアップ要因を判断して動作を開始している場合、最初は制御開始監視状態γとする。そして、準備状態αにある場合、各アプリケーションから準備完了の通知があると、次に制御状態βへ状態を遷移させる（記号(1)）。また、制御状態βにある場合、前述のスリープ管理・制御ソフトは、アプリケーションソフトウェア毎に異なる要求スリープ期間の開始時刻及び終了時刻を直接的又は間接的に特定するためのスリープ制御情報を取得し、全てのアプリケーションからスリープ制御情報を取得すれば、制御開始監視状態γへ状態が遷移する（記号(2)）。
【００２２】
各アプリケーションは、要求するスリープ期間をタイマー設定し、スリープとウェイクアップとを定期的に繰り返すようにプログラミングされている。例えば、キーレスエントリ方式が採用される場合、図１の「スイッチ／センサ等の入力」として、ユーザー携帯器からの無線信号が受信入力され、キーレスエントリ方式に対応したドアロック制御アプリケーションは、その受信スタンバイ期間を通常モード期間として、スリープ期間と交互に繰り返すようにＥＣＵ１の作動制御を行なうこととなる。
【００２３】
他方、アプリケーションの一部又は全部は、上記のスリープサイクルとは無関係に、外部の操作信号（ライト点灯、ドアロック解除指令など）をトリガーとした割り込み処理指令を受けた場合も、これをウェイクアップ要因として随時ウェイクアップするようになっている。そして、その後一定期間ウェイクアップ要因がなければ要求スリープ期間が再設定され、スリープに移行する。従って、各アプリケーションの要求スリープ期間の、時間軸上の相対関係は、上記の不定期ウェイクアップ要因により様々に変化する。さらに、タイマーにより規定される要求スリープ期間はアプリケーションによってまちまちである。従って、本発明においては、取得された各アプリケーションソフトウェアの要求スリープ制御情報が各々規定する複数の要求スリープ期間に、共通に含まれる期間を有効スリープ期間として算出する。そして、制御開始監視状態γにおいては、有効スリープ期間の開始タイミングが到来すれば、ウェイクアップ用のスリープタイマーにその有効スリープ期間をセットし、スリープ状態に移行する。スリープタイマーは有効スリープ期間がタイムアップすればウェイクアップ信号を送信し、ＥＣＵ１をウェイクアップさせる。
【００２４】
要求スリープ制御情報は各アプリケーション中に記述されており、ＲＡＭ４の対応するワークエリアの指定されたアドレスに書き込まれる。スリープ管理・制御ソフトは、このアドレスに自発的にアクセスして要求スリープ制御情報を取得することも可能であるが、アプリケーションプログラムがロードされるメモリアドレスが相対アドレス化されている場合に、要求スリープ制御情報の書き込みアドレスが不定となり、要求スリープ制御情報を特定するために余分なステップが必要となる（アプリケーション側からスリープ管理・制御ソフトに書き込みアドレスを報知することなどが考えられる）。このような面倒をなくすため、図１に示すように、ＥＣＵ１のＲＡＭ４には、複数のアプリケーションソフトウェアにて共通に使用される登録メモリ（図中では下位概念にて「タイマー登録メモリ」と表示している）が設けられており、各アプリケーションソフトウェアが、自身に設定されているスリープ制御情報を自発的にこのメモリに書き込むことにより、これが登録されるようになっている（スリープ制御情報登録手段）。なお、アプリケーション間で共有される上記登録メモリには、スリープ制御情報そのものを書き込んでもよいし、そのＲＡＭ上の固定領域に書き込まれるスリープ制御情報のアドレスのみを書き込むようにしてもよく、いずれも「登録メモリに対し、各アプリケーションソフトウェアが、自身に設定されているスリープ制御情報を自発的に書き込む」ことの概念に属するものとする。後者の場合、あるアプリケーションのスリープ制御情報を読み出すには、その登録メモリの、アプリケーションに対応する領域に書き込まれたアドレスを読み出し、そのアドレスが指定するＲＡＭ上の領域にアクセスして、書き込まれているスリープ制御情報を読み出せばよい。
【００２５】
図５に示すように、要求スリープ制御情報の与え方は種々考えられる。まず、Ａは最も簡単な方式であり、アプリケーションはスリープを開始したい時刻に要求スリープ期間Ｔｄ（つまり、タイマー登録データ）を登録メモリ（つまり、タイマー登録メモリ）に登録する。図９は、その場合のスリープ管理・制御ソフトによるタイマー登録処理の流れを示すフローチャートの例であり、Ｓ５１でアプリケーションの番号ｋを初期化し、Ｓ５２では番号ｋのアプリケーションから要求スリープ期間Ｔｄが書き込まれたかどうかを確認する。書き込まれれば、Ｓ５３で、その書き込み時間に対応する要求スリープ開始時刻ｔｓｋを登録する。
【００２６】
この場合、スリープ管理・制御ソフトには、図１に示すように管理タイマーを設けておき、書き込みのあったときの管理タイマーの値から時刻把握することができる。アプリケーションからは、実際にスリープに入りたい時刻に対して、一定時間Δｔだけ前倒しで要求スリープ期間Ｔｄｋが書き込まれるようにしておき、書き込みのあった時刻をｔｓｋ’とすれば、ｔｓｋ’＋Δｔを要求スリープ開始時刻ｔｓｋとして登録することができる。要求スリープ期間Ｔｄｋは、例えば前回スリープからのウェイクアップ（タイマーによる定期ウェイクアップ、又は外部からの割り込みによる不定期ウェイクアップ）時に、次回スリープのために管理タイマーにセットすることができる。この場合、Δｔは、ウェイクアップ後の次回スリープの条件となる、不定期ウェイクアップ要因（例えば、ドア開閉、ドアロック、ランプ点灯などのユーザーによる操作信号）の不発生継続時間として定めることができる。
【００２７】
要求スリープ開始時刻ｔｓｋが算出できれば、書き込まれた要求スリープ期間Ｔｄｋから、要求スリープ終了時刻ｔｗｋをｔｓｋ＋Ｔｄｋにて算出し、登録する（Ｓ５５，Ｓ５６）。以上の処理を全てのアプリケーションについて繰り返すと、登録メモリの内容は図６のような状態となる。すなわち、各アプリケーションの要求スリープ制御情報の内容が、アプリケーションと対応付けて記憶されている。なお、本実施形態では、複数のタイマーのＩＤ（番号）とアプリケーションとの対応関係が予め定められており、以降は、要求のあったＩＤ（アプリケーション）のタイマーに設定されたスリープ開始/終了時間（要求スリープ制御情報）が読み出されて使用されるようになっている（つまり、「アプリケーションと対応付けて記憶されている」とは、「アプリケーションとの対応関係が特定可能な状態で記憶されている」との意味であり、アプリケーションそのものが登録メモリに記憶されているわけではない）。
【００２８】
そして、処理の最終的な目的は、複数のアプリケーションの要求スリープ期間Ｔｄｋを調停し、共通に含まれる期間を、ＥＣＵ１を実際にスリープさせる有効スリープ期間Ｔｄｃとして決定することにある。このためには、有効スリープ期間Ｔｄｃの開始時刻（ｔｓｃ）を決定するために要求スリープ開始時刻ｔｓｋが必要であり、また、終了時刻（ｔｗｃ）を決定するために要求スリープ終了時刻ｔｗｋが必要である。図１に一点鎖線で示すように、ＥＣＵ１に絶対時刻把握のための時計６が設けられていれば、図５のＢ〜Ｄのような登録方式も可能である。すなわち、アプリケーション側で時計６を読み取ることにより、Ｂでは要求スリープ開始時刻ｔｓｋと要求スリープ期間Ｔｄｋとを登録する。また、Ｃでは、要求スリープ終了時刻ｔｗｋと要求スリープ期間Ｔｄｋとを登録する。そしてＤでは、要求スリープ開始時刻ｔｓｋと要求スリープ期間Ｔｄｋとを登録する。
【００２９】
図１１は、スリープ管理・制御ソフトによるスリープ制御の処理の流れを示すフローチャートの一例である。Ｓ１０１〜Ｓ１０３は有効スリープ期間Ｔｄｃの設定処理である。Ｓ１０１では、登録された要求スリープ開始時刻ｔｓｋのうち最も遅く到来するもの（第二種限界時刻）を有効スリープ開始了時刻ｔｓｃとして算出し、図５に示すごとく登録する。ただし、スリープ処理の時間的マージンを見込んで、第二種限界時刻に一定期間δｔを加算して有効スリープ開始時刻ｔｓｃを設定してもよい。
【００３０】
また、登録された要求スリープ終了時刻ｔｗｋのうち、最も早く到来するもの（第一種限界時刻）を有効スリープ終了時刻ｔｗｃとして算出し、図５に示すごとく登録する（Ｓ１０２）。ただし、ウェイクアップ処理の時間的マージンを見込んで、第一種限界時刻から一定期間δｔを減算して有効スリープ終了時刻ｔｗｃを設定してもよい。そして、有効スリープ期間Ｔｄｃをｔｗｃ−ｔｗｓにより算出する（Ｓ１０３）。
【００３１】
図７と図８は、上記の処理のタイミングチャート的に図示したものであり、図７では、全てのアプリケーションの要求スリープ開始時刻ｔｓｋが一致する場合の例を示している（これは、例えば（                                                ）のような場合に想定される））。この場合、要求スリープ終了時刻ｔｗｋが最も早く到来するアプリケーションの要求スリープ期間（図ではＴｄ２）が、有効スリープ終了時刻ｔｗｃと等価となる。全てのアプリケーションの要求スリープ開始時刻ｔｓｋが常時一致することが予めわかっている場合は、スリープ制御情報として要求スリープ期間Ｔｄｋか要求スリープ終了時刻ｔｗｋのみを登録することも考えられる。
【００３２】
一方、図８は、要求スリープ開始時刻ｔｓｋがアプリケーション間で不一致となる場合である。登録された要求スリープ開始時刻ｔｓｋのうち最も遅く到来するもの（第二種限界時刻）と、登録された要求スリープ終了時刻ｔｗｋのうち、最も早く到来するもの（第一種限界時刻）との間に、有効スリープ期間Ｔｄｃが設定されていることが明らかである。
【００３３】
図１１に戻り、Ｓ１０４では、算出された有効スリープ期間Ｔｄｃが基準値Ｔｄminよりも小さいかどうかを判定し、小さくなければＳ１０５に進んで、図１の管理タイマーにより現在時刻ｔｐを読み取るとともに、Ｓ１０６で有効スリープ開始時刻ｔｓｃが到来しているかどうかを確認する。到来していればＳ１０７に進み、図１のウェイクアップ信号発生部７のスリープタイマーに有効スリープ期間Ｔｄｃをセットして、ＥＣＵ１をスリープ状態に移行させる。なお、有効スリープ期間Ｔｄｃの算出タイミングを、要求スリープ開始時刻ｔｓｋのうち最も遅く到来するものより後に設定しておけば、その算出された有効スリープ期間Ｔｄｃが一定時間以上存在していることが判明し次第、すぐにスリープに入るように処理することも可能である。この場合、そのスリープモードに移行する時刻を有効スリープ開始時刻ｔｓｃが到来した時刻と定める（管理タイマーによる有効スリープ開始時刻ｔｓｃ到来の把握を積極的に行なう必要はなくなるといえる）。
【００３４】
ウェイクアップ信号発生部７は、有効スリープ期間Ｔｄｃが経過すればＥＣＵ１のウェイクアップ端子にウェイクアップ信号を入力する。ＥＣＵ１は、これを受けて割り込み処理により、スリープモードからウェイクアップする。なお、図１では、ウェイクアップ信号発生部７をＥＣＵ１に対する外付け回路として設けているが、ＥＣＵ１の内部に組み込んでもよい。
【００３５】
なお、図１１のスリープ制御処理は、一定の周期で繰り返し実行することができる。例えば、Ｓ１０６で有効スリープ開始時刻ｔｓｃが到来していないようであれば、スリープモードに入ることなくスリープ制御処理のその実行サイクルは終了し、移行の実行サイクルで有効スリープ開始時刻ｔｓｃが到来したときスリープモードに移行することとなる。この場合、Ｓ１０１〜Ｓ１０３のスリープ調停処理は、実行サイクル毎に各アプリケーションの状態を監視する役割も果たしており、もしスリープ制御情報の登録内容に変化があれば、有効スリープ期間の設定内容も更新される。
【００３６】
例えば、図８において、動作頻度の比較的高いアプリケーション１〜３の間で、一旦スリープ調停された後、常時は動作頻度の非常に低いアプリケーション４が偶然動作して、そのアプリケーション４を追加した形での再調停が必要となった場合は、破線で示すように、そのアプリケーション４のスリープ制御情報が追加され、有効スリープ期間Ｔｄｃが更新される。
【００３７】
また、アプリケーション１〜３がバージョンアップ等により書き換えられた場合も、アプリケーション１〜３に要求スリープ制御情報の登録機能が備わっている限り、図９のスリープ制御情報の登録処理や、図１１のスリープ制御処理のプログラムには何ら変化は生じず、図６の登録内容もバージョンアップに対応した形で自発的に書き換えられ、スリープ調停のためのプログラムの手直し等は一切不要である。この事情は、もともと存在していなかったアプリケーションが、機能追加により新たにＲＯＭ５（図１）に書き加えられた場合においても同様である。
【図面の簡単な説明】
【００３８】
【図１】本発明の自動車用スリープ制御システムの機能を有したＥＣＵの一例を示すブロック図。
【図２】図１のシステムのアーキテクチャを示す模式図。
【図３】スケジューラによる複数アプリケーションの実行サイクルの概念を模式的に示す図。
【図４】リセット及びスリープに係る状態遷移の模式図。
【図５】各アプリケーションの要求スリープ制御情報の登録形態を各種例示して示す図。
【図６】タイマー登録メモリの内容を示す模式図。
【図７】本発明によるスリープ調停の第一例を示す概念図。
【図８】同じく第二例を示す概念図。
【図９】要求スリープ制御情報の登録処理の一例を示すフローチャート。
【図１０】リセット、スリープ及びウェイクアップに係る概略の処理流れを示すフローチャート。
【図１１】スリープ制御の処理の一例を示すフローチャート。
【符号の説明】
【００３９】
１  ＥＣＵ（ハードウェア制御主体：自動車用スリープ制御システム）
【図１】
2006151007.tif 000003
【図２】
2006151007.tif 000004
【図３】
2006151007.tif 000005
【図４】
2006151007.tif 000006
【図５】
2006151007.tif 000007
【図６】
2006151007.tif 000008
【図７】
2006151007.tif 000009
【図８】
2006151007.tif 000010
【図９】
2006151007.tif 000011
【図１０】
2006151007.tif 000012
【図１１】
2006151007.tif 000013