(57)【要約】【課題】プログラムの変更などがなされた場合であっても、これに伴うプログラムのスケジューリングなどに関係する部分の修正を最小限に抑えることができるコンピュータプログラム及び制御装置を提供する。【解決手段】システム監視プログラム１４１が各層の動作状態を取得して動作モードの変更を要するかを判定して、動作モードを決定し、システム構造管理プログラム１４２が各層の構造管理プログラム１１１へ動作モードを通知する。構造管理プログラム１１１は、通知された動作モードに応じて各プログラムの実行可否を決定する。また、システムスケジューラ１４３は時間経過及びイベント発生に応じて各層のスケジューラ１１０のスケジューリングを行い、各層のスケジューラ１１０は構造管理プログラム１１１に実行が許可されたプログラムのスケジューリングを行う。【選択図】図２
2010079320.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、
各実行手段は、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段をそれぞれ有し、
該実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段を備えること
を特徴とする制御装置。
【請求項２】
一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行う制御装置において、
各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段をそれぞれ有し、
該実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段を備えること
を特徴とする制御装置。
【請求項３】
一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行う制御装置において、
各実行手段は、
前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段と、
該実行可否決定手段の決定した実行の可否に基づいて、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段と
をそれぞれ有し、
前記実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段と、
前記実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段と
を備えることを特徴とする制御装置。
【請求項４】
各実行手段が実行するプログラムは、他のプログラムの実行を必要とする場合に、前記実行スケジュール管理手段へ通知を行うようにしてあり、
前記実行スケジュール管理手段は、前記通知が与えられた場合に、前記動作指示手段へ通知を行うようにしてあり、
前記動作指示手段は、時間経過及び前記通知に応じて前記実行スケジュール管理手段を実行させるスケジュールを管理するようにしてあること
を特徴とする請求項１又は請求項３に記載の制御装置。
【請求項５】
前記動作条件決定手段は、
各実行手段の動作状態を取得する動作状態取得手段と、
取得した動作状態に応じて、前記機器の動作状態を変化させるべきか否かを判定する判定手段と
を有し、
前記機器の動作状態を変化させるべきと判定した場合に、動作条件を決定して各実行可否決定手段へ与えるようにしてあること
を特徴とする請求項２又は請求項３に記載の制御装置。
【請求項６】
前記動作条件決定手段は、前記機器の動作状態を変化させるべきと判定した場合に、決定した動作条件に応じて前記実行手段の動作を初期化する初期化手段を有すること
を特徴とする請求項５に記載の制御装置。
【請求項７】
一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、
各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品をそれぞれ含み、
コンピュータに、
複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、
各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップと
を有する制御プログラムを備えること
を特徴とするコンピュータプログラム。
【請求項８】
一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、
各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品をそれぞれ含み、
コンピュータに、
前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、
決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと
を有する制御プログラムを備えること
を特徴とするコンピュータプログラム。
【請求項９】
一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、
各プログラム群は、
コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品と、
コンピュータに、前記実行可否決定プログラム部品が決定した可否に基づいて、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品と
をそれぞれ含み、
コンピュータに、
前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、
決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと、
複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、
各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップと
を有する制御プログラムを備えること
を特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車輌に搭載された機器など多数の機器の制御を行うことができ、開発、拡張又は変更等の作業を容易に行うことができる制御装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、車輌には多種多様な電子機器（以下、車載機器という）が搭載され、車輌の高機能化が進んでいる。車輌の高機能化が進むほど車載機器の搭載数は増加するため、多数の車載機器を制御するためのＥＣＵ（Electronic Control Unit）などの制御装置及びこの制御装置上で実行されるコンピュータプログラムは巨大化及び複雑化し、制御装置及びコンピュータの開発の困難化、開発期間の増大及び開発コストの増大等が生じるという問題があった。
【０００３】
特許文献１においては、アプリケーションプログラムの開発者の負担を軽減することができる車輌用制御プログラムが提案されている。この車輌用制御プログラムは、ハードウェアデバイスからの入力結果に基づくデータを他の処理に渡すデバイスドライバを含むプラットフォームプログラムと、プラットフォームプログラムの処理によって得られたデータに基づく処理を実行するアプリケーションプログラムと、プラットフォームプログラムの処理によって得られたデータをアプリケーションプログラムの処理に適合するように仲介する結合処理部とを備えている。結合処理部がプラットフォームプログラムのインタフェースとアプリケーションプログラムのインタフェースとの橋渡しを行い、アプリケーションプログラムの開発者はプラットフォームプログラムのインタフェースを意識する必要がないため、開発者の負担を軽減することができる。
【０００４】
特許文献２においては、複雑な大規模システム開発を行う際にも開発期間の短縮化が図れる車輌用ネットワークシステムが提案されている。この車輌用ネットワークシステムは、分散制御プラットフォーム構成を複数の階層に分けた基本構造で構築し、各階層で個別の役割を担う。即ち、インタフェースを提供するアプリケーション層と、リソースを一元管理するシステムインフラ層と、ハードウェアシステム全体を抽象化するハードウェア抽象化層とによって電子制御装置を構成する。
【０００５】
特許文献１及び特許文献２に記載の発明のように、近年では車載機器を制御するためのコンピュータプログラムを階層化することによって開発者の負担を軽減する試みがなされている。図８は、従来の階層化されたコンピュータプログラムの一構成例を示す模式図である。図示のコンピュータプログラムは、プラットフォーム層２０１、中間層２０２及びアプリケーション層２０３にて構成された３階層のプログラムである。プラットフォーム層２０１は複数のプログラム（図中ではＰＦ１〜３と略示する）を有しており、各プログラムＰＦ１〜３は車輌に搭載された各種のセンサ及びアクチュエータ等の車載機器を制御するプログラム（ドライバプログラムなど）である。同様に、アプリケーション層２０３は複数のプログラム（図中ではＡＰ１〜３と略示する）を有しており、各プログラムＡＰ１〜３は予め定められた要求仕様などに従って車載機器を動作させるためのプログラムである。
【０００６】
例えば、車輌に搭載されたセンサの検出値はプラットフォーム層２０１のプログラムＰＦ１〜３にてデータ化されて中間層２０２へ与えられる。中間層２０２は、プラットフォーム層２０１から与えられたデータをアプリケーション層２０３に適するデータ形式に変換し、変換したデータをアプリケーション層２０３へ与える。アプリケーション層２０３のプログラムＡＰ１〜３は、中間層２０２から与えられたデータに基づいて処理を行い、処理結果として車載機器への動作指示などのデータを中間層２０２へ与える。中間層２０２は、アプリケーション層２０３から与えられたデータをプラットフォーム層２０１に適するデータ形式に変換し、変換したデータをプラットフォーム層２０１へ与える。プラットフォーム層２０３のプログラムＰＦ１〜３は、中間層２０２から与えられたデータに基づいてアクチュエータなどの車載機器の制御を行う。これらにより図示のコンピュータプログラムは、センサの検出値に応じてアクチュエータを動作させるなどの車載機器の制御を行うことができる。
【０００７】
このようなコンピュータプログラムにおいて、車載機器のハードウェア構成の変更などに伴ってプラットフォーム層２０１のプログラムＰＦ１〜３が変更されるなどした場合であっても、中間層２０２に対する修正を行うのみでよく、アプリケーション層２０３のプログラムＡＰ１〜３に対する修正を行う必要はない。また、異なる車種などにおいてプラットフォーム層２０１の構成が異なる場合であっても、アプリケーション層２０３に適した中間層２０２をプラットフォーム層２０１毎に用意することで、アプリケーション層２０３のプログラムＡＰ１〜３を修正することなく異なる車種で動作させることができる。
【特許文献１】特開２００４−１９２５４１号公報
【特許文献２】特開２００６−１４２９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図８に示した階層構造を有する従来のコンピュータプログラムは、データの授受については階層化されているが、各層のプログラムの起動及びそのスケジューリング等についてはいずれかの層のプログラムが一括して行っている。また例えば、アプリケーション層２０３のプログラムＡＰ１を動作させるためにはプラットフォーム層２０１のプログラムＰＦ１及びＰＦ２が出力するデータが必要など、各層のプログラムの動作には依存関係がある。このため、各層のプログラムが変更されるなどした場合には、起動及びスケジューリング等を行うプログラムについては多大な修正を行う必要があり、コンピュータプログラムの開発が困難化するという問題があった。
【０００９】
また、車載機器の搭載数の増加に伴って、この制御を行うコンピュータプログラムは巨大化及び複雑化し、各層に含まれるプログラムの数も増加する。よってプログラムの動作に関する依存関係が複雑化し、コンピュータプログラムの開発がさらに困難化するという問題があった。特許文献１に記載の車輌用制御プログラム及び特許文献２に記載の車輌用ネットワークシステムについても、これらの問題を解決し得るものではない。
【００１０】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、複数のプログラム（又はプログラム部品）で構成されたコンピュータプログラムにおいて、その一部のプログラムに修正又は変更等がなされた場合であっても、これに伴うプログラムの起動及びスケジューリング等に係る部分の修正又は変更等を最小限に抑えることができるコンピュータプログラム及びこれを備えて機器の制御を行う制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係る制御装置は、一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、各実行手段は、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段をそれぞれ有し、該実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段を備えることを特徴とする。
【００１２】
また、本発明に係る制御装置は、一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行う制御装置において、各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段をそれぞれ有し、該実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段を備えることを特徴とする。
【００１３】
また、本発明に係る制御装置は、一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行う制御装置において、各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段と、該実行可否決定手段の決定した実行の可否に基づいて、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段とをそれぞれ有し、前記実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段と、前記実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段とを備えることを特徴とする。
【００１４】
また、本発明に係る制御装置は、各実行手段が実行するプログラムが、他のプログラムの実行を必要とする場合に、前記実行スケジュール管理手段へ通知を行うようにしてあり、前記実行スケジュール管理手段は、前記通知が与えられた場合に、前記動作指示手段へ通知を行うようにしてあり、前記動作指示手段は、時間経過及び前記通知に応じて前記実行スケジュール管理手段を実行させるスケジュールを管理するようにしてあることを特徴とする。
【００１５】
また、本発明に係る制御装置は、前記動作条件決定手段が、各実行手段の動作状態を取得する動作状態取得手段と、取得した動作状態に応じて、前記機器の動作状態を変化させるべきか否かを判定する判定手段とを有し、前記機器の動作状態を変化させるべきと判定した場合に、動作条件を決定して各実行可否決定手段へ与えるようにしてあることを特徴とする。
【００１６】
また、本発明に係る制御装置は、前記動作条件決定手段が、前記機器の動作状態を変化させるべきと判定した場合に、決定した動作条件に応じて前記実行手段の動作を初期化する初期化手段を有することを特徴とする。
【００１７】
また、本発明に係るコンピュータプログラムは、一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品をそれぞれ含み、コンピュータに、複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップとを有する制御プログラムを備えることを特徴とする。
【００１８】
また、本発明に係るコンピュータプログラムは、一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品をそれぞれ含み、コンピュータに、前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップとを有する制御プログラムを備えることを特徴とする。
【００１９】
また、本発明に係るコンピュータプログラムは、一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品と、コンピュータに、前記実行可否決定プログラム部品が決定した可否に基づいて、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品とをそれぞれ含み、コンピュータに、前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと、複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップとを有する制御プログラムを備えることを特徴とする。
【００２０】
本発明においては、例えばプラットフォーム層、中間層及びアプリケーション層のように、一又は複数のプログラム又はプログラム部品（以下、単にプログラムという）をそれぞれ含む複数のプログラム群にてコンピュータプログラムを構成し、これをＥＣＵなどの制御装置にて実行する。これにより、一のプログラム群に変更又は修正等が生じた場合であっても、他のプログラム群に対する影響を抑えることができ、コンピュータプログラムの開発を容易化でき、制御装置の開発を容易化できる。
各プログラム群（実行手段）には、このプログラム群に含まれる一又は複数のプログラムを実行させるスケジュールの管理を行う実行スケジュール管理プログラム（実行スケジュール管理プログラム部品、実行スケジュール管理手段）をそれぞれ設ける。またコンピュータプログラムには、各プログラム群の実行スケジュール管理プログラムを動作させるスケジュールを管理し、スケジュールに従って各実行スケジュール管理プログラムへ動作指示を与える制御プログラム（動作指示手段）を設ける。
これにより、各プログラム群に含まれるプログラムのスケジューリングと、各プログラム群のスケジューリングとを別のプログラムが行うため、スケジューリングに関するコンピュータプログラムの階層化を実現できる。よって、一のプログラム群に変更又は修正等が生じた場合には、そのプログラム群の実行スケジュール管理プログラムに変更又は修正等を行えばよく、他のプログラム群に対して変更又は修正等を行う必要がない。
【００２１】
また本発明においては、プログラム群に含まれる一又は複数のプログラムの実行可否を決定する実行可否決定プログラム（実行可否決定プログラム部品、実行可否決定手段）を、各プログラム群にそれぞれ設ける。またコンピュータプログラムには、各プログラム群の実行可否決定プログラムが実行可否を決定するための動作条件を決定し、この動作条件を各実行可否決定プログラムへ与える制御プログラム（動作条件決定手段）を設ける。
これにより、各プログラム群にて実行されるプログラムが、制御プログラムが決定した動作条件に応じて制限されるため、複数のプログラム間の依存関係の複雑化が緩和され、複数のプログラムのスケジューリングなどを容易化できる。また、制御プログラムからの動作条件に基づいて各プログラム群の実行可否決定プログラムがプログラムの実行可否を決定するため、一のプログラム群に変更又は修正等が生じた場合には、そのプログラム群の実行可否決定プログラムに変更又は修正等を行えばよく、他のプログラム群に対して変更又は修正等を行う必要がない。
【００２２】
また、各プログラム群では、他のプログラム群からの入力データの変化及び／又は他のプログラム群への出力データの変化に伴ってイベントが発生し、これらのイベントに応じたプログラムを起動する必要が生じる。そこで本発明においては、各プログラム群に含まれるプログラムは、他のプログラム群からの入力データ又は他のプログラム群への出力データが変化してイベントが発生した場合に実行スケジュール管理プログラムへ通知を行う。実行スケジュール管理プログラムは、イベントの発生を更に制御プログラムへ通知する。制御プログラムは、所謂タイムシェアリングのための時間経過と、実行スケジュール管理プログラムからの通知とに応じて、各プログラムの実行のスケジューリングを行うことができる。
【００２３】
また、車載機器などの動作は例えば車輌が走行しているか否か、エンジンが動作しているか否か、又はイグニッションスイッチがオフされているか否か等に応じて変化し、制御装置にて実行される各プログラム群のプログラムの数及び種類等も変化させる必要がある。そこで本発明においては、制御プログラムが各プログラム群の動作状態を取得することによって、各プログラム群が制御する例えばエンジン又はイグニッションスイッチ等の機器の動作状態を監視する。これにより制御プログラムは、エンジン停止又はイグニッションスイッチのオフ等の発生を検出して、制御対象の機器の動作状態を変化させるべきか否かを判定することができる。
動作状態を変化させるべきと判定した場合、制御プログラムは変化させる動作状態に適した動作条件を決定して各プログラム群の実行可否決定プログラムへ動作条件を与える。これにより、各プログラム群で実行されるプログラムが変化し、制御対象の機器の動作状態を変化させることができる。
またこのときに、制御プログラムは各プログラム群の初期化処理（例えば、実行を終了させるプログラムが使用していたメモリなどのリソースの開放、及び実行を開始させるプログラムのためのリソースの確保等）を行う構成としてもよい。これにより、各プログラム群で共通して行う必要がある処理を制御プログラムにて行うことができ、各プログラム群の処理負荷を低減できる。
【発明の効果】
【００２４】
本発明による場合は、プログラムを実行させるスケジュールを管理する実行スケジュール管理プログラムを各プログラム群に設け、複数のプログラム群を有するコンピュータプログラムには各プログラム群の実行スケジュール管理プログラムを動作させるスケジュールを管理し、スケジュールに従って各実行スケジュール管理プログラムへ動作指示を与える制御プログラムを設ける構成とすることにより、各プログラム群に含まれるプログラムのスケジューリングと、各プログラム群のスケジューリングとをそれぞれ別のプログラムが行うことができるため、データの授受に関するコンピュータプログラムの階層化のみでなく、プログラムのスケジューリングに関するコンピュータプログラムの階層化を実現できる。
また、プログラムの実行可否を決定する実行可否決定プログラムを各プログラム群に設け、コンピュータプログラムには実行可否を決定するための動作条件を決定し各実行可否決定プログラムへ与える制御プログラムを設ける構成とすることにより、複数のプログラムの実行が制限されてプログラム間の依存関係の複雑化が緩和されると共に、実行可否に係る制御に関してコンピュータプログラムの階層化を実現できる。
よって、一のプログラム群に変更又は修正等が生じた場合であっても、他のプログラム群に対する変更又は修正を行う必要がなく、コンピュータプログラムの開発、修正及び変更等を容易に行うことができ、各プログラム層に含まれるプログラムの再利用性、移植性及び汎用性等を高めることができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、本発明に係る制御装置の構成を示すブロック図である。図において１は、車輌に搭載された各種のセンサ５、アクチュエータ６及びその他の車載機器７の制御を行うＥＣＵであり、本発明に係る制御装置に相当するものである。ＥＣＵ１は、センサ５、アクチュエータ６及びその他の車載機器７にケーブルを介して接続される入出力Ｉ／Ｆ(インタフェース）部１１を備えており、入出力Ｉ／Ｆ部１１がセンサ５、アクチュエータ６及び車載機器７との間で信号の授受を行って、センサ５から各種の検知結果を取得し、アクチュエータ６へ動作指示を与え、車載機器７とデータの授受を行うことができる。
【００２６】
またＥＣＵ１は、各種の演算処理及びＥＣＵ１内の各部の制御処理等を行うＣＰＵ（Central Processing Unit）１２を備えている。入出力Ｉ／Ｆ部１１は、センサ５の検知結果及びその他の車載機器７からのデータ等をＣＰＵ１２へ与えると共に、ＣＰＵ１２からのデータをアクチュエータ６及びその他の車載機器７へ与える。ＣＰＵ１２は、ＲＯＭ（Read Only Memory）１４に予め記憶された車載機器制御プログラム（コンピュータプログラム）１００を読み出して実行することにより、演算処理及び制御処理等を行い、処理過程にて発生した一時的なデータをＲＡＭ（Random Access Memory）１３に記憶しながら処理を進める。
【００２７】
ＲＯＭ１４は、例えばマスクＲＯＭ又はＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）等の不揮発性のメモリ素子で構成され、車載機器制御プログラム１００及びこのプログラムの実行に必要なデータ（図示は省略する）等が予め記憶されている。ＲＡＭ１３は、ＳＲＡＭ（Static RAM）又はＤＲＡＭ（Dynamic RAM）等のメモリ素子で構成されている。
【００２８】
また、ＥＣＵ１は、車輌に搭載されたその他の複数のＥＣＵ３にＣＡＮ（Controller Area Network）などのネットワークを介して接続されており、ネットワークを介してその他のＥＣＵ３とデータの送受信を行うための通信部１５を備えている。ＥＣＵ１は、通信部１５にて他のＥＣＵ３との間でデータの送受信を行うことによって、他のＥＣＵ３に接続された車載機器からのデータを取得することができると共に、他のＥＣＵ３に接続された車載機器の動作を制御することができる。
【００２９】
図２は、本発明に係る車載機器制御プログラム１００のソフトウェア構成を示す模式図である。車載機器制御プログラム１００は、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の３つの階層（プログラム群）を備えるコンピュータプログラムである。プラットフォーム層１０１は、複数のプログラムＰＦ１、２…を有している。プラットフォーム層１０１のプログラムＰＦ１、２…は、ＥＣＵ１の入出力Ｉ／Ｆ部１１に接続されたセンサ５、アクチュエータ６及びその他の車載機器７を制御するプログラム、並びに通信部１５による他のＥＣＵ３とのデータの送受信をＣＡＮなどの規格に従って行うプログラム等である。プログラムＰＦ１、２…は、センサ５及びその他の車載機器７等から取得したデータを中間層１０２へ与えると共に、中間層１０２から与えられる動作指示に従ってアクチュエータ６及びその他の車載機器７等の動作を制御する。
【００３０】
中間層１０２は、プラットフォーム層１０１及びアプリケーション層１０３の間に設けられ、プラットフォーム層１０１から与えられたデータを適切なデータ形式に変換してアプリケーション層１０３へ与えると共に、アプリケーション層１０３から与えられたデータを適切なデータ形式に変換してプラットフォーム層１０１へ与える処理を行う。中間層１０２は複数のプログラム（図中ではＭＰ１、２…と略示する）を有しており、各プログラムＭＰ１、２…が上記のデータ形式の変換を行う。
【００３１】
アプリケーション層１０３は、複数のプログラムＡＰ１、２…を有している。アプリケーション層１０３のプログラムＡＰ１、２…は、予め定められた要求仕様などに従って、センサ５及びその他の車載機器７等からプラットフォーム層１０１及び中間層１０２を介して与えられたデータに基づき、アクチュエータ６及びその他の車載機器７等の動作を決定する処理を行う。プログラムＡＰ１、２…は、アクチュエータ６及びその他の車載機器７等に対する動作指示を出力データとして中間層１０２へ与える。
【００３２】
即ち、車輌に搭載されたセンサ５及び車載機器７等の出力は、ＥＣＵ１にて実行される車載機器制御プログラム１００のプラットフォーム層１０１のプログラムＰＦ１、２…にてデータ化されて中間層１０２へ与えられる。中間層１０２のプログラムＭＰ１、２…は、プラットフォーム層１０１から与えられたデータを、アプリケーション層１０３に適したデータに変換して、アプリケーション層１０３へ与える。アプリケーション層１０３のプログラムＡＰ１、２…は、中間層１０２から与えられたデータを基に種々の演算処理を行ってアクチュエータ６及び車載機器７等の動作を決定する。
【００３３】
アプリケーション層１０３のプログラムＡＰ１、２…は、アクチュエータ６及び車載機器７等に決定した動作を行わせるための動作指示を出力データとして中間層１０２へ与える。中間層１０２のプログラムＭＰ１、２…は、アプリケーション層１０３から与えられたデータを、プラットフォーム層１０１に適したデータに変換して、プラットフォーム層１０１へ与える。プラットフォーム層１０１のプログラムＰＦ１、２…は、中間層１０２から与えられたデータに基づいてアクチュエータ６及び車載機器７等の制御を行う。
【００３４】
このように車載機器制御プログラム１００は、センサ５及び車載機器７等から取得したデータを３つの層の間で授受し、各層にてデータに対する処理を行うことによって、アクチュエータ６及び車載機器７等の動作を制御することができる。各層のプログラムの開発者は、他の層が内部で行うデータ処理について知る必要はなく、各層が入出力するデータについてのみ知ればよい。また、各層には複数のプログラムが含まれているが、例えば制御対象の機器毎、実行する処理毎又は扱うデータの種類毎等によりプログラムを適切に細分化することができる。また、各層内の複数のプログラムは、他のプログラムとのデータの授受を行って処理を進めることができる。
【００３５】
図３は、アプリケーション層１０３のプログラムＡＰ１、２…の一例を示す模式図である。例えばアプリケーション層１０３には、ドアロックプログラム１３１、ライト制御プログラム１３２、ワイパー制御プログラム１３３、入力スキャンプログラム１３４、通信スキャンプログラム１３５、侵入者感知プログラム１３６、バッテリ警告プログラム１３７及び出荷検査プログラム１３８等の種々のプログラム（図２におけるプログラムＡＰ１、２…に対応する）が含まれている。この例では、アプリケーション層１０３のプログラムＡＰ１、２…を、制御対象の車載機器及びその機能に分けて設けてある。
【００３６】
ドアロックプログラム１３１は、車輌のドアに設けられたスイッチ又はユーザが所有する遠隔操作器等に対する操作に応じてドアのロック／アンロックを行うプログラムである。ライト制御プログラム１３２は、車輌の運転席近傍に設けられた点灯スイッチ又は光センサなどによる明るさの検知結果等に応じて車輌のヘッドライトなどの点灯／消灯を行うプログラムである。ワイパー制御プログラム１３３は、車輌の運転席近傍に設けられたスイッチ又は雨滴を検出するセンサの検知結果等に応じて車輌のワイパーを動作させるプログラムである。
【００３７】
入力スキャンプログラム１３４は、車輌のインストルメントパネルなどに配された各種のスイッチ又はタッチパネル等に対する入力操作の検出及び操作内容の判断等を行うプログラムである。通信スキャンプログラム１３５は、通信部１５による他のＥＣＵ３からのデータ受信の有無を判断し、データを受信した場合にはこのデータを必要とする他のプログラムへの通知を行うプログラムである。
【００３８】
侵入者感知プログラム１３６は、車輌に搭載された種々のセンサ５、例えば振動センサなどの検知結果を基に、車輌に対する侵入者の有無を判断するプログラムである。バッテリ警告プログラム１３７は、車輌のバッテリに蓄えられた電力の残容量を電流センサ及び電圧センサ等のセンサ５からのデータを基に判断し、電力の残容量が低下した場合に警告を行うプログラムである。出荷検査プログラム１３８は、車輌の製造工程の最終段階である工場出荷時において、車輌に搭載された車載機器が正常に動作するか否かを自動的に検査するプログラムである。
【００３９】
車載機器制御プログラム１００は、複数のプログラムを含む３つの階層を備えているため、全体として多数のプログラムを備えている。しかし、ＥＣＵ１に設けられたＣＰＵ１２は１つであるため、１時点において実行できるプログラムは１つである。このため車載機器制御プログラム１００は、多数のプログラムからＣＰＵ１２にて実行するプログラムを選択すると共に、実行するプログラムの切り替えを行う処理、所謂スケジューリング処理を行う必要がある。
【００４０】
本発明に係る車載機器制御プログラム１００は、スケジューリング処理を行うために、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層には、スケジューラプログラム（以下、単にスケジューラという）１１０と、構造管理プログラム（図２においては単に”構造管理”と略示してある）１１１とがそれぞれ設けられている。また、車載機器制御プログラム１００は、各層のスケジューラ１１０及び構造管理プログラム１１１の動作を制御する複数のプログラムを有するシステムマネージャ層１０４を備えている。
【００４１】
各層のプログラムは、同じ層の他のプログラム又は他の層から与えられるデータを基に処理を行うが、入力されるデータ又は出力するデータの変化に伴って他のプログラムを起動する必要があるイベントが発生した場合に、これを同じ層のスケジューラ１１０へ通知する。
【００４２】
各層のスケジューラ１１０は、内部にタイマを有しており（又は、車載機器制御プログラム１００のいずれかに設けられたタイマから時間情報を取得してもよい）、同じ層の複数のプログラムを所定の経過時間毎に切り替えて実行すると共に、上述のようにプログラムからイベント発生の通知が与えられた場合にプログラムを切り替えて実行する。スケジューラ１１０は、所定の経過時間毎又はイベント発生の通知毎に、複数のプログラムから実行する一のプログラムを選択し、選択したプログラムを実行するが、複数のプログラムの実行順序についてはＦＩＦＯ（First In First Out）方式のスケジューリング又は優先度を考慮したスケジューリング等の既存の種々のスケジューリング方式を利用して決定すればよい。また、各プログラムからイベント発生の通知が与えられた場合、スケジューラ１１０はシステムマネージャ層１０４に含まれるシステムスケジューラ１４３（詳細は後述する）へイベントの発生を通知する。
【００４３】
一方、車輌には多数の車載機器が搭載されており、車載機器制御プログラム１００のプラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層には多数のプログラムがそれぞれ含まれている。しかし、例えば車輌のセキュリティに関する車載機器などは車輌の走行中に動作する必要はなく、これを制御するためのプログラムを実行する必要はない。そこで、本発明に係る車載機器制御プログラム１００は、各層の構造管理プログラム１１１が各プログラムの実行の可否をそれぞれ決定してスケジューラ１１０へ通知し、スケジューラ１１０が構造管理プログラム１１１にて許可されたプログラムのみを実行する。換言すれば、構造管理プログラム１１１は各層のプログラム構造を決定しており、スケジューラ１１０は決定されたプログラム構造に従ってスケジューリング処理を行っている。
【００４４】
図４は、構造管理プログラム１１１によるプログラムの実行可否の決定を説明するための模式図であり、図３に示したアプリケーション層１０３の構造管理プログラム１１１の場合の一例を図示してある。例えばＥＣＵ１（及び車載機器制御プログラム１００）は、車輌のエンジンが動作中の場合の通常動作モード、エンジンが停止中の場合の省電力モード、省電力モードにバッテリ残容量のチェック機能を追加したバッテリハザードモード、又は車輌の工場出荷時の検査を行う場合の工場出荷モードのいずれかにて動作する。
【００４５】
アプリケーション層１０３の構造管理プログラム１１１は、通常動作モードにおいてはドアロックプログラム１３１、ライト制御プログラム１３２及びワイパー制御プログラム１３３の実行を許可し、その他のプログラムの実行を禁止する。よって、アプリケーション層１０３のスケジューラ１１０は、通常動作モードにおいては上記の３つのプログラムのみのスケジューリングを行う。
【００４６】
同様に、構造管理プログラム１１１は、省電力モードにおいては入力スキャンプログラム１３４、通信スキャンプログラム１３５及び侵入者感知プログラム１３６のみ実行を許可し、バッテリハザードモードにおいては省電力モードで実行を許可するプログラムに加えてバッテリ警告プログラム１３７の実行を許可し、工場出荷モードにおいては出荷検査プログラム１３８のみ実行を許可する。
【００４７】
なお、アプリケーション層１０３の各プログラムが所謂オブジェクトとして構成されており、スケジューラ１１０が各プログラムに対応するオブジェクトの生成及び破棄を行うことができる場合には、構造管理プログラム１１１が実行を許可したプログラムに対応するオブジェクトを生成すると共に、実行が禁止されたプログラムに対応するオブジェクトを破棄する構成としてもよい。又は、構造管理プログラム１１１がオブジェクトの生成及び破棄を行い、構造管理プログラム１１１により生成されたオブジェクトの動作のスケジューリングをスケジューラ１１０が行う構成としてもよい。これらの場合、構造管理プログラム１１１の決定に応じて、アプリケーション層１０３のプログラム構造が変化する。
【００４８】
各層のスケジューラ１１０及び構造管理プログラム１１１は、その動作をシステムマネージャ層１０４により制御されている。システムマネージャ層１０４は、車載機器制御プログラム１００においてプラットフォーム層１０１、中間層１０２及びアプリケーション層１０３とは独立して設けられており、各層のスケジューラ１１０及び構造管理プログラム１１１へ動作指示などを与えることができる。システムマネージャ層１０４は、システム監視プログラム（図２においては単に”システム監視”と略示してある）１４１、システム構造管理プログラム（図２においては単に”システム構造管理”と略示してある）１４２、システムスケジューラ１４３及び時間管理プログラム（図２においては単に”時間管理”と略示してある）１４４等の複数のプログラムを有している。
【００４９】
システム監視プログラム１４１は、プラットフォーム層１０１、中間層１０２及び／又はアプリケーション層１０３の動作状態を取得し、動作状態の変化を監視することによって、図４に示した通常動作モード、省電力モード、バッテリハザードモード及び工場出荷モード等の動作モードの変更を行うか否かを判定する。例えば、車輌のイグニッションスイッチの状態に関するデータを有するプログラムの動作状態を監視することで、システム監視プログラム１４１は車輌のエンジンが動作中であるか否かを判断することができ、通常動作モード又は省電力モードのいずれで動作させるべきかを判定することができる。
【００５０】
また例えば、車輌のインストルメントパネルに配されたスイッチなどの状態を取得するプログラムの動作状態を監視することで、システム監視プログラム１４１はバッテリの残容量低下に警告を行う機能のオン操作が行われたか否かを判断することができ、バッテリハザードモードで動作させるべきか否かを判定することができる。また例えば、ＥＣＵ１の通信部１５に係るプログラムの動作状態を監視することで、車輌のネットワークに工場出荷時の検査装置が接続されたことを判断することができ、工場出荷モードで動作させるべきか否かを判定することができる。
【００５１】
各層のプログラムの動作状態に基づいて動作モードの変更を行うと判定した場合、システム監視プログラム１４１は、取得したプログラムの動作状態を参照して、上述の４つのモードのうちのいずれの動作モードに変更するかを決定する。
【００５２】
システム構造管理プログラム１４２は、システム監視プログラム１４１により決定された動作モードを全ての層の構造管理プログラム１１１へ通知（動作条件の通知）すると共に、各層にて動作モード変更のための処理を行うよう構造管理プログラム１１１へ指示を与える。ここで、動作モード変更のための処理とは、例えば動作モード変更前に実行されていたプログラムのためのリソースの開放など、プログラムの実行を終了させるための処理（以下、後処理という）、並びに、動作モード変更後に実行するプログラムのためのリソースの確保及び設定など、プログラムの実行を開始させるための初期化処理（以下、前処理という）等である。
【００５３】
また、システム構造管理プログラム１４２は、各層の構造管理プログラム１１１に後処理及び前処理等を行わせると共に、動作モード変更に伴ってシステム全体で行う必要がある後処理及び前処理等を行う。このように、動作モード変更に伴う後処理及び前処理等を、システム構造管理プログラム１４２と、各層の構造管理プログラム１１１とがそれぞれ行う構成とすることにより、開発者は他層の構成を知ることなく各層の後処理及び前処理等を決定することができ、車載機器制御プログラム１００の開発を容易化することができる。
【００５４】
システムマネージャ層１０４のシステム構造管理プログラム１４２から動作モード変更の通知を与えられた各層の構造管理プログラム１１１は、通知された動作モードに応じて各プログラムの実行の可否をそれぞれ決定し、スケジューラ１１０へ通知する。また、各層の構造管理プログラム１１１は、システムマネージャ層１０４のシステム構造管理プログラム１４２から与えられる後処理及び前処理等の指示に応じて、実行すると決定したプログラムに適した後処理及び前処理等を行う。これにより各層ではシステムマネージャ層１０４にて決定された動作モードに応じたプログラムが実行される。
【００５５】
システムスケジューラ１４３は、車載機器制御プログラム１００のプラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の３層からいずれか１つを選択し、選択した層のスケジューラ１１０へ動作指示を与えることによってこの層のプログラムを実行する、即ち３つの層のスケジューリングを行う。システムスケジューラ１４３は、各層のスケジューラ１１０からイベント発生の通知が与えられた場合、又は時間管理プログラム１４４から所定時間経過の通知が与えられた場合に実行する層の切り替えを行う。
【００５６】
時間管理プログラム１４４は、実行する層の切り替えを行う周期を管理するプログラムである。時間管理プログラム１４４は、一定の周期が経過する毎に、システムスケジューラ１４３へ時間経過を通知する。
【００５７】
本発明に係る車載機器制御プログラム１００は、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の３つの層の実行に関するスケジューリングをシステムマネージャ層１０４のシステムスケジューラ１４３が行い、各層に含まれるプログラムの実行に関するスケジューリングを各層のスケジューラ１１０が行う構成である。これにより、各層でのプログラムのスケジューリングを他の層のプログラムのスケジューリングから分離することができる。各層のスケジューラ１１０が行うスケジューリングの方法は、全ての層で同じ方法であってもよく、異なる方法であってもよい。
【００５８】
また、車載機器制御プログラム１００は、システムマネージャ層１０４のシステム監視プログラム１４１が各層のプログラムの動作状態、即ち車載機器の動作状態を監視し、動作状態の変化に応じてシステム構造管理プログラム１４２が動作モードを決定して各層の構造管理プログラム１１１へ通知することによって、各層で実行するプログラムを変更する構成である。これにより、各層で不要なプログラムが動作することがなく、各層のスケジューラ１１０によるスケジューリングの負担を軽減できる。
【００５９】
次に、本発明に係る車載機器制御プログラム１００の動作をフローチャートを用いて説明する。図５及び図６は、システムマネージャ層１０４が行う処理の手順を示すフローチャートである。まず、システムマネージャ層１０４は、システム監視プログラム１４１の実行により、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の動作状態を取得し（ステップＳ１）、取得した動作状態に基づいて動作モードの変更を要するか否かを判定する（ステップＳ２）。動作モードの変更を要しない場合（Ｓ２：ＮＯ）、システムマネージャ層１０４は以下のステップＳ３〜Ｓ８の処理を行うことなく、ステップＳ８の処理へ進む。また、動作モードの変更を要する場合（Ｓ２：ＹＥＳ）、システムマネージャ層１０４は、変更する動作モードをシステム監視プログラム１４１にて決定する（ステップＳ３）。
【００６０】
次いで、システムマネージャ層１０４は、システム構造管理プログラム１４２を実行することによって、システム監視プログラム１４１にて決定された動作モードを各層の構造管理プログラム１１１へ通知すると共に、各層の構造管理プログラム１１１へ動作モード変更前に動作していたプログラムを終了させるための後処理を行う指示を与える（ステップＳ４）。その後、システムマネージャ層１０４は、システム構造管理プログラム１４２にて、動作モード変更に要するシステム全体の後処理及び前処理を実行し（ステップＳ５及びＳ６）、更に各層の構造管理プログラム１１１へ動作モード変更後に動作させるプログラムの動作開始のための前処理を行う指示を与えて（ステップＳ７）、ステップＳ８の処理へ進む。
【００６１】
次いで、システムマネージャ層１０４は、システムスケジューラ１４３を実行することにより、時間管理プログラム１４４から所定時間経過の通知が与えられたか否かを判定し（ステップＳ８）、所定時間経過の通知を与えられていない場合には（Ｓ８：ＮＯ）、各層のスケジューラ１１０からイベント発生の通知が与えられたか否かを更に判定する（ステップＳ９）。
【００６２】
所定時間経過の通知が与えられた場合（Ｓ８：ＹＥＳ）、又は、イベント発生の通知が与えられた場合（Ｓ９：ＹＥＳ）、システムマネージャ層１０４のシステムスケジューラ１４３は、予め定められたアルゴリズムに従ってスケジューリングを行い、動作させるいずれかの層のスケジューラ１１０へ動作指示を与え（ステップＳ１０）、処理を終了する。また、所定時間経過の通知が与えられず、且つ、イベント発生の通知が与えられない場合（Ｓ９：ＮＯ）、システムマネージャ層１０４のシステムスケジューラは処理を終了する。
【００６３】
なお、システムマネージャ層１０４は、上述のステップＳ１〜Ｓ１０の処理を繰り返し行っており、これにより動作状態の監視、動作モード変更の判定及び各層のスケジューラ１１０のスケジューリング等の処理が常に行われている。
【００６４】
図７は、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層が行う処理の手順を示すフローチャートである。プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層は、構造管理プログラム１１１の実行により、システムマネージャ層１０４のシステム構造管理プログラム１４２から動作モードの通知（図５のステップＳ４参照）が与えられたか否かを判定し（ステップＳ２１）、動作モードの通知が与えられていない場合には（Ｓ２１：ＮＯ）、ステップＳ２２〜Ｓ２４の処理を行うことなくステップＳ２５へ進む。
【００６５】
動作モードの通知が与えられた場合（Ｓ２１：ＹＥＳ）、各層の構造管理プログラム１１１は、通知された動作モードに基づいて、同じ層に含まれる各プログラムの実行可否を決定する（ステップＳ２２）。また、各層の構造管理プログラム１１１は、動作モードの通知と共に与えられる後処理及び前処理の指示（図５のステップＳ５及びＳ６参照）に応じて、動作モード変更前に実行していたプログラムの後処理を行い（ステップＳ２３）、動作モード変更後に実行するプログラムの前処理を行う（ステップＳ２４）。
【００６６】
次いで、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層は、スケジューラ１１０の実行により、所定時間の経過を判定し（ステップＳ２５）、所定時間が経過した場合（Ｓ２５：ＹＥＳ）、予め定められたアルゴリズムに従ってスケジューリングを行って実行するプログラムの切り替えを行う（ステップＳ２６）。
【００６７】
プログラムの切り替えを行った後、又は、所定時間が経過していない場合（Ｓ２５：ＮＯ）、スケジューラ１１０は、同じ層に含まれるプログラムを実行して個別の処理を行わせ（ステップＳ２７）、この実行に伴ってイベントが発生したか否かを判定する（ステップＳ２８）。スケジューラ１１０は、イベントが発生した場合には（Ｓ２８：ＹＥＳ）、システムマネージャ層１０４のシステムスケジューラ１４３へイベントの発生を通知し（ステップＳ２９）、イベントが発生していない場合には（Ｓ２８:ＮＯ）、通知を行わずに、処理を終了する。
【００６８】
なお、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層では、上述のステップＳ２１〜Ｓ２８の処理を繰り返し行っており、これにより動作モードに応じた実行プログラムの変更、各層に含まれる複数のプログラムのスケジューリング及びプログラムの実行に伴うイベント発生の通知等の処理が常に行われている。また、図７に示したフローチャートにおいては、所定時間が経過した場合に実行するプログラムの切り替えを行う構成としたが、イベントが発生した場合にも実行するプログラムの切り替えを行う構成としてもよい。
【００６９】
以上の構成の車載機器制御プログラム１００においては、システムマネージャ層１０４のシステム監視プログラム１４１が各層のプログラムの動作状態を取得して動作モードの変更を要するか否かを判定し、動作モードの変更を要する場合には取得した動作状態に基づいて動作モードを決定し、決定した動作モードをシステム構造管理プログラム１４２が各層の構造管理プログラム１１１へ通知すると共に、動作モードの変更に伴う後処理及び前処理を行わせる。これにより、各層の構造管理プログラム１１１は、通知された動作モードに応じて各プログラムの実行可否を決定することができ、各層のプログラム構造を変更することができる。スケジューラ１１０は、動作が許可されたプログラムについてのみ実行及びスケジュールの管理を行えばよい。各層に含まれる多数のプログラムのうち、動作モードに応じて実行されるプログラムが制限され、プログラム間の依存関係が容易化されるため、各層のプログラムの開発者はモード毎にプログラム開発を行うことができ、開発を容易化することができる。
【００７０】
また車載機器制御プログラム１００は、システムスケジューラ１４３は時間管理プログラム１４４による所定時間経過の通知及び各層のスケジューラ１１０からのイベント発生の通知に応じて各層のスケジューラ１１０の動作切替及びスケジューリングを行い、各層のスケジューラ１１０は時間経過及び／又は各プログラムからの通知に応じて各プログラムの動作切替及びスケジューリングを行う構成であり、スケジューリングに関してシステムマネージャ層１０４のシステムスケジューラ１４３を上位とし、各層のスケジューラ１１０を下位とした階層構造が構成されている。よって、各層のプログラムの開発者は、層内のプログラムのみを考慮してスケジューラ１１０を開発すればよく、他の層のプログラムのスケジューリングを考慮する必要がないため、開発を容易化することができる。
【００７１】
よって、本発明に係る車載機器制御プログラム１００は、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の各層がデータの授受のみでなく、プログラムの実行及びスケジューリングに関してもそれぞれ依存関係がなく独立しているため、各層のプログラム開発を容易化することができると共に、各層の変更又は修正の容易性、移植性及び再利用性等を向上することができる。
【００７２】
なお、本実施の形態においては、車載機器制御プログラム１００は、プラットフォーム層１０１、中間層１０２及びアプリケーション層１０３の３層構造としたが、これに限るものではなく、２層又は４層以上の構造であってもよい。また、機器を制御するコンピュータプログラムとして車載機器制御プログラム１００を例に説明を行ったが、これに限るものではなく、その他の機器を制御するコンピュータプログラムに同様の構成を適用することができる。また、図３に示したアプリケーション層１０３のプログラムは一例であってこれに限るものではなく、図４に示した４つのモード及び対応するプログラムも一例であってこれに限るものではない。
【図面の簡単な説明】
【００７３】
【図１】本発明に係る制御装置の構成を示すブロック図である。
【図２】本発明に係る車載機器制御プログラムのソフトウェア構成を示す模式図である。
【図３】アプリケーション層のプログラムの一例を示す模式図である。
【図４】構造管理プログラムによるプログラムの実行可否の決定を説明するための模式図である。
【図５】システムマネージャ層が行う処理の手順を示すフローチャートである。
【図６】システムマネージャ層が行う処理の手順を示すフローチャートである。
【図７】プラットフォーム層、中間層及びアプリケーション層の各層が行う処理の手順を示すフローチャートである。
【図８】従来の階層化されたコンピュータプログラムの一構成例を示す模式図である。
【符号の説明】
【００７４】
１  ＥＣＵ（制御装置）
３  ＥＣＵ
５  センサ
６  アクチュエータ
７  車載機器
１１  入出力Ｉ／Ｆ部
１２  ＣＰＵ（コンピュータ）
１３  ＲＡＭ
１４  ＲＯＭ
１５  通信部
１００  車載機器制御プログラム（コンピュータプログラム）
１０１  プラットフォーム層（実行手段、プログラム群）
１０２  中間層（実行手段、プログラム群）
１０３  アプリケーション層（実行手段、プログラム群）
１０４  システムマネージャ層（動作指示手段、動作条件決定手段、制御プログラム）
１１０  スケジューラ（実行スケジュール管理手段、実行スケジュール管理プログラム部品）
１１１  構造管理プログラム（実行可否決定手段、実行可否決定プログラム部品）
１４１  システム監視プログラム（動作状態取得手段、判定手段、動作条件決定手段）
１４２  システム構造管理プログラム（初期化手段）
１４３  システムスケジューラ（動作指示手段）
１４４  時間管理プログラム
ＰＦ１〜３  プラットフォーム層のプログラム（プログラム部品）
ＭＰ１〜３  中間層のプログラム（プログラム部品）
ＡＰ１〜３  アプリケーション層のプログラム（プログラム部品）
【図１】
2010079320.tif 000003
【図２】
2010079320.tif 000004
【図３】
2010079320.tif 000005
【図４】
2010079320.tif 000006
【図５】
2010079320.tif 000007
【図６】
2010079320.tif 000008
【図７】
2010079320.tif 000009
【図８】
2010079320.tif 000010
【手続補正書】
【提出日】平成21年10月29日(2009.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、
各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段をそれぞれ有し、
該実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段を備えること
を特徴とする制御装置。
【請求項２】
一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、
各実行手段は、
前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段と、
該実行可否決定手段の決定した実行の可否に基づいて、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段と
をそれぞれ有し、
前記実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段と、
前記実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段と
を備えることを特徴とする制御装置。
【請求項３】
各実行手段が実行するプログラムは、他のプログラムの実行を必要とする場合に、前記実行スケジュール管理手段へ通知を行うようにしてあり、
前記実行スケジュール管理手段は、前記通知が与えられた場合に、前記動作指示手段へ通知を行うようにしてあり、
前記動作指示手段は、時間経過及び前記通知に応じて前記実行スケジュール管理手段を実行させるスケジュールを管理するようにしてあること
を特徴とする請求項２に記載の制御装置。
【請求項４】
前記動作条件決定手段は、
各実行手段の動作状態を取得する動作状態取得手段と、
取得した動作状態に応じて、前記機器の動作状態を変化させるべきか否かを判定する判定手段と
を有し、
前記機器の動作状態を変化させるべきと判定した場合に、動作条件を決定して各実行可否決定手段へ与えるようにしてあること
を特徴とする請求項１乃至請求項３のいずれか１つに記載の制御装置。
【請求項５】
前記動作条件決定手段は、前記機器の動作状態を変化させるべきと判定した場合に、決定した動作条件に応じて前記実行手段の動作を初期化する初期化手段を有すること
を特徴とする請求項４に記載の制御装置。
【請求項６】
一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、
各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品をそれぞれ含み、
コンピュータに、
前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、
決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと
を実行させる制御プログラムを備えること
を特徴とするコンピュータプログラム。
【請求項７】
一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、
各プログラム群は、
コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品と、
コンピュータに、前記実行可否決定プログラム部品が決定した可否に基づいて、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品と
をそれぞれ含み、
コンピュータに、
前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、
決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと、
複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、
各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップと
を実行させる制御プログラムを備えること
を特徴とするコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明に係る制御装置は、一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段をそれぞれ有し、該実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段を備えることを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、本発明に係る制御装置は、一又は複数のプログラムを実行する実行手段を複数備え、各実行手段の間でデータの授受を行って機器の制御を行う制御装置において、各実行手段は、前記一又は複数のプログラムの実行の可否を決定する実行可否決定手段と、該実行可否決定手段の決定した実行の可否に基づいて、前記一又は複数のプログラムを実行させるスケジュールを管理する実行スケジュール管理手段とをそれぞれ有し、前記実行可否決定手段による前記可否の決定に係る動作条件を決定し、決定した前記動作条件を各実行可否決定手段へ与える動作条件決定手段と、前記実行スケジュール管理手段を動作させるスケジュールを管理し、各実行スケジュール管理手段へ動作指示を与える動作指示手段とを備えることを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
また、本発明に係るコンピュータプログラムは、一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品をそれぞれ含み、コンピュータに、前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップとを実行させる制御プログラムを備えることを特徴とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
また、本発明に係るコンピュータプログラムは、一又は複数のプログラム部品をそれぞれ含むプログラム群を複数備え、各プログラム群の間で情報の授受を行って、コンピュータに機器の制御を行わせるコンピュータプログラムにおいて、各プログラム群は、コンピュータに、前記プログラム群に含まれる前記一又は複数のプログラム部品の実行の可否を決定させる実行可否決定プログラム部品と、コンピュータに、前記実行可否決定プログラム部品が決定した可否に基づいて、前記プログラム群に含まれる前記一又は複数のプログラム部品を実行させるスケジュールの管理を行わせる実行スケジュール管理プログラム部品とをそれぞれ含み、コンピュータに、前記実行可否決定プログラム部品による前記可否に係る動作条件を決定させるステップと、決定した前記動作条件を各プログラム群の前記実行可否決定プログラム部品へ与えさせるステップと、複数のプログラム群にそれぞれ含まれる前記実行スケジュール管理プログラム部品を実行させるスケジュールの管理を行わせるステップと、各プログラム群の前記実行スケジュール管理プログラム部品へ動作指示を与えさせるステップとを実行させる制御プログラムを備えることを特徴とする。