説明

プログラム変更方法及びコンピュータプログラム

【課題】多様な要求仕様に柔軟に対応した制御を可能とし、且つ各プログラムの再利用性を向上させて開発過程の短縮化、開発負荷の削減を図ることができるプログラム変更方法及びコンピュータプログラムを提供する。
【解決手段】アプリケーション層、及びプラットフォーム層において実現される各機能は、機能又は役割などの属性が関連付けられた詳細な機能を実現するコンポーネントの集合対である機能フレームワークが構成されることで実現する。属性情報は複数有してもよく、機能フレームワークを構成する際に、属性情報の選択の仕方により多様な仕様に応じた機能フレームワークの構成が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムに基づき各種制御を行なう制御装置に関する。特に、コンピュータプログラムを種々の機能をその属性に基づき選択、組み合わせ可能に構成することにより、多様な要求仕様に柔軟に対応した制御を可能とし、且つ各プログラムの再利用性を向上させて開発過程の短縮化、開発負荷の削減を図ることができるプログラム変更方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年では、種々の制御を行なう制御装置に通信機能を備えさせて複数接続し、各制御装置に夫々機能を割り振って相互にデータを交換し、連携して多様な処理を行なわせるシステムが各分野で利用されている。例えば、車両に配される車載LAN(Local Area Network)の分野では、ECU(電子制御装置;Electronic Control Unit)は通信機能を有し、各ECUに夫々特定の処理を行なわせて相互にデータを交換することにより、システムとして多様な機能を実現させている(例えば、特許文献1参照)。
【0003】
複数の制御装置が相互に連携して多様な処理を行なわせる場合、各制御装置の機能を特化させるよりも、各制御装置が同様の機能を実現することが可能な構成とし、設定に応じて相互に代替して処理を行なうことができるようにすることもできる。具体的には、各制御装置に特定の機能を実現させるための各アプリケーションプログラムから共通機能を分離し、共通機能をプラットフォームとなるプログラムで実現するように構成する。共通機能としては例えば、アプリケーションプログラムの実行に用いられるデータの記憶、更新、及び他の装置との通信処理等がある。
【0004】
これにより、通信仕様の定義が変化した場合にはプラットフォームのプログラムを改変し、全制御装置に改変後のプラットフォームのプログラムを実行させればよい。この場合、アプリケーションプログラムは通信仕様の改変に対応させる必要がなく、それまでと同様の処理によって他の制御装置との通信を実現できる。したがって、ハードウェアの違いに応じた種々のバージョンのアプリケーションプログラムを用意するなど、煩雑な管理が必要ない。アプリケーションプログラムは、純粋に特定の機能を実現するための構成とすればよく、プログラムの再利用性が高くなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−329578号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
アプリケーションプログラムのみならず、プラットフォームプログラムの構成もハードウェア資源の違いに応じて異なる。また、制御装置の用途、使用箇所、グレードなどの違いによっては、要不要となる機能がある。アプリケーションプログラム、又はプラットフォームプログラムのいずれのプログラムについても、車種、仕向地、グレードが異なる毎にプログラムを改変するのでは煩雑であり、再利用性が向上しない。
【0007】
用途、使用箇所、グレードの差異、プログラム仕様又はハードウェア仕様の違いに応じてアプリケーションプログラム及びプラットフォームプログラムを改変して夫々用意する場合、当該プログラムを用いる制御装置、該制御装置を含むシステム全体自体の開発における煩雑性を改善させることができない。更に、異なるハードウェア資源を夫々備える複数の制御装置によって大規模システムを構成させる場合、夫々の装置用に個別にプログラムを改変して用意するとしたときには、プログラム管理が煩雑となるのみならず、システム構成を変更することが困難となり、多様なシステム構成に対応できない。
【0008】
本発明は斯かる事情に鑑みてなされたものであり、アプリケーションプログラム及びプラットフォームプログラムを機能単位にモジュール部品の集合として構成し、且つ、モジュール部品は機能の属性にて対応付けておき、種々の機能をその属性に基づき選択、組み合わせ可能に構成することにより、多様な要求仕様に柔軟に対応した制御を可能とし、且つ各プログラムの再利用性を向上させて開発過程の短縮化、開発負荷の削減を図ることができるプログラム変更方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
第1発明に係るプログラム変更方法は、複数の機能単位で分離された複数のプログラムモジュールから構成される一又は複数のアプリケーションプログラム、及び、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御し、複数の機能単位で分離されたプログラムモジュールから構成されるプラットフォームプログラムを含むコンピュータプログラムの構成を変更する方法であって、各プログラムモジュールには夫々を識別する識別情報と、各プログラムモジュールに基づきコンピュータが実現する機能の属性を示す属性情報とを関連付けて記憶しておき、コンピュータが実現する機能の構成の変更に伴う属性情報の選択を受け付け、選択された属性情報が共通に関連付けられたプログラムモジュールを選択し、選択したプログラムモジュールからコンピュータプログラムを構築することを特徴とする。
【0010】
第2発明に係るプログラム変更方法は、前記属性情報は、機能の内容を示す情報、機能の役割を示す情報、及び他の機能との関連を示す情報の内の一又は複数を含むことを特徴とする。
【0011】
第3発明に係るコンピュータプログラムは、一又は複数のアプリケーションプログラムの機能を各実現する一又は複数のアプリケーションプログラム、及び、前記一又はアプリケーションの機能からの処理要求に対応してハードウェア資源の動作を夫々制御する機能を実現するプラットフォームプログラムを含み、前記アプリケーションプログラム及びプラットフォームプログラムは夫々、機能の属性を示す属性情報が関連付けられた複数のプログラムモジュールから構成されており、同一の属性情報が共通して関連付けられたプログラムモジュールが選択されたアプリケーションプログラム及びプラットフォームプログラムを実行可能としてあることを特徴とする。
【0012】
本発明にあっては、アプリケーションプログラム及びプラットフォームプログラムは、複数の機能単位のプログラムモジュールに分離可能であり、夫々独立に実行が可能な構成とされる。更に、各プログラムモジュールには機能の属性を示す属性情報が関連付けられており、属性情報が共通するプログラムモジュールを集合体として扱うことが可能となる。属性情報の選び方によって、集合体としての関連が変更可能であり、プログラム構成が容易に変更可能となる。
【0013】
本発明にあっては、各プログラムモジュールは、機能の内容を示す情報、機能の役割を示す情報、他の機能との関連関係を示す情報の一又は複数を含む属性情報が関連付けられている。一のプログラムモジュールに複数の属性情報を関連付けることが可能であり、選択される属性情報により、機能の対象を共通にする場合、機能により実現される動作を共通にする場合など、機能に基づく多様なプログラム構成が可能となる。
【発明の効果】
【0014】
本発明による場合、プログラムモジュールの組み合わせを機能の属性の選択の仕方によって変更できるので、多様な要求仕様に柔軟に対応した制御が可能となる。更に、制御装置を複数含む制御システムを構築する場合も、システム全体の仕様に応じて各制御装置における機能を多様に変更することができる。このように、一のプログラムでも種々の仕様に柔軟に対応できるので、プログラムの再利用性が向上し、開発過程の短縮化、開発負荷の削減を図ることができる。
【図面の簡単な説明】
【0015】
【図1】本実施の形態におけるECUの構成を示すブロック図である。
【図2】本実施の形態におけるECUのCPUが実現する機能を概念的に説明する説明図である。
【図3】アプリケーション層に含まれるフレームワークとフレームワークを構成するコンポーネントの内容例を示す説明図である。
【図4】プラットフォーム層に含まれるフレームワークとフレームワークを構成するコンポーネントの内容例を示す説明図である。
【図5】アプリケーション層に含まれる入力条件判定フレームワークの階層構造を概念的に示す説明図である。
【図6】プラットフォーム層に含まれる通信管理フレームワーク及び通信制御フレームワークの階層構造を概念的に示す説明図である。
【図7】属性情報の選択によって、ECUの機能構成が変更される処理手順の一例を示すフローチャートである。
【図8】各層における機能フレームワークの属性情報にリンク情報が含まれる場合の構成の例を示す説明図である。
【発明を実施するための最良の形態】
【0016】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【0017】
なお、以下に示す実施の形態では、本発明に係る制御装置を車両に搭載される種々の制御を行なうECU(Electronic Control Unit)に適用し、各ECU間を通信線で接続して連携した処理を行なう制御システムを例に説明する。
【0018】
図1は、本実施の形態におけるECUの構成を示すブロック図である。なおECU1は、通信線2を介して他のECUと接続され、相互に通信が可能に構成されている。また、ECU1には、センサ3及びアクチュエータ4が接続されている。ECU1は、センサ3から得られる情報に基づく自身の処理、又は他のECUの処理によって得られる情報に基づいてアクチュエータ4を動作させるなど、特有の機能を有している。なお、ECU1には、センサ3及びアクチュエータ4がいずれも接続されているが、何れか一方のみ接続されているか又は何れも接続されていなくともよい。
【0019】
ECU1は、各構成部の動作を制御するCPU(Central Processing Unit)11、不揮発性メモリを用いたROM12、高速にアクセス可能なメモリを用いたRAM13を含むマイクロコンピュータ10(以下、マイコン10という)と、不揮発性メモリを用いた記憶部14、ネットワークコントローラを利用した通信部15と、センサ3及びアクチュエータ4とのインタフェースである入出力部16とを備える。
【0020】
記憶部14は、フラッシュメモリ、EEPROM(Electrically Erasable and Programmable ROM)等のメモリを利用し、比較的に大容量の記憶容量にて構成される。記憶部14には、マイコン10が後述するアプリケーションプログラム17,17,…を実行することによって行われる処理により得られる情報、例えばECU1の状態情報、ECU1が搭載される車両の状態情報等のシステム情報が記憶される。また、記憶部14には、マイコン10がセンサ3から取得したデータ、及び他のECUから受信したデータ等が記憶される。
【0021】
通信部15は、マイコン10による通信線2を介した他のECUとの通信を実現する。通信部15は具体的に、CAN(Control Area Network)、LIN(Local Interconnect Network)、又はFlexRay(登録商標)などのプロトコルに準じた通信を実現する。通信部15は、マイコン10の一部として構成されてもよい。
【0022】
入出力部16は、上述のようにセンサ3及びアクチュエータ4とのインタフェースであり、入出力部16はセンサ3が接続されている場合、センサ3から出力される測定値等を表わす信号を取り出してマイコン10へ出力する。また入出力部16は、アクチュエータ4が接続されている場合、マイコン10から出力されるアクチュエータ4の制御信号をアクチュエータ4へ出力する。入出力部16は、D/A変換、A/D変換機能を有していてもよい。
【0023】
マイコン10のCPU(Central Processing Unit)11は、ROM12に記憶されている制御プログラム1PをRAM13に読み出して実行することにより各構成部を制御し、特有の機能を実現する。
【0024】
ROM12には、マスクROM、フラッシュメモリ、PROM(Programmable ROM)、EPROM(Erasable and Programmable ROM)、EEPROM(Electrically EPROM)等のメモリを利用する。ROM12には、上述のように制御プログラム1Pが記憶されているほか、制御に用いる制御データが記憶されていてもよい。
【0025】
RAM13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等のメモリを利用している。RAM13にはCPU11の処理によって発生する各種情報が一時的に記憶される。
【0026】
ROM12に記憶されている制御プログラム1Pは、マイコン10にECU1特有の処理を実行させるためのアプリケーションプログラム17,17,…、ハードウェア資源の制御、通信機能など、他のECUとの共通機能を実現するための各種を含むプラットフォームプログラム18、及び、各プログラムに基づく処理をECU1全体として制御するシステムマネージャプログラム19を含んで構成される。
【0027】
アプリケーションプログラム17,17,…には、車両のエンジンを制御するための処理を実現させるプログラム、ドアロックのオン・オフ、ヘッドライトのオン・オフ等を切り替えるための処理を実現させるプログラム等、ECU1に特有の機能を実現させるための種々のプログラムが含まれる。
【0028】
プラットフォームプログラム18には、記憶部14へのデータの書き込み、記憶部14からのデータの読み出し、通信部15を介したデータの送信などの、アプリケーションプログラム17,17,…に基づくマイコン10からのハードウェア資源への処理要求に対応して各ハードウェア資源への処理を実現するプログラムが含まれる。具体的には、アプリケーションプログラム17,17,…を実行するCPU11からの処理要求に応じた論理的データアクセスを実現するデバイスドライバに相当するリソースマネージャと、各ハードウェア資源の実装に基づく物理的データアクセスを実現するBIOS(Basic Input/Output System)に相当するリソースコントローラとを含む。
【0029】
システムマネージャプログラム19は、CPU11によって実行されるアプリケーションプログラム17,17,…に基づく処理、プラットフォームプログラム18に基づく処理、及び、システムマネージャプログラム19に基づく処理の全体を、ECU1として機能すべき状況に対応させて制御させるためのプログラムである。例えば、ECU1が出荷前のテスト段階における動作をすべきなのか、運用中における動作をすべきなのか、又はメンテナンス中における動作をすべきなのかなどの状況の違いに応じて、各プログラムに基づく処理を切り替える機能を実現する。又は、ECU1が日本国仕様の車両、又は北米仕様の車両に対応すべきなのかに応じて各プログラムに基づく処理を切り替える機能を実現する。また例えば、実行されているアプリケーションプログラム17,17,…に応じてハードウェア資源の物理的制御方法を変化させるなどの機能を実現する。
【0030】
図2は、本実施の形態におけるECU1のCPU11が実現する機能を概念的に説明する説明図である。CPU11は、ROM12に記憶されている制御プログラム1PをRAM13に読み出して実行する。制御プログラム1Pは上述のようにアプリケーションプログラム17,17,…、プラットフォームプログラム18、及びシステムマネージャプログラム19を含む。CPU11は、制御プログラム1Pに含まれる各プログラムに基づき、大きくはアプリケーション層107、プラットフォーム層108の2つの階層に分けられたソフトウェア構造にて動作する。更に、プラットフォーム層108と同等の階層にてシステムマネージャ109として動作する。
【0031】
アプリケーション層107と、プラットフォーム層108とはプラットフォームインタフェース108cにて接続され、アプリケーション層107プラットフォームインタフェース108cが呼び出されることにより処理要求、又は情報の受け渡しが可能である。
【0032】
アプリケーション層107では、CPU11はアプリケーションプログラム17,17,…に基づき、特有の機能を実現させるための各種アプリとして機能する。各アプリケーションプログラム17,17,…にて実行されるアプリは、アプリにて実現される機能の対象、又は役割等によって分離された複数のコンポーネントからなる機能フレームワークとして構成される。図2に示す例では、プラットフォーム層108側から得られるデータ(信号)を解釈する機能を実現するコンポーネントの集合体である信号解釈フレームワーク171が含まれる。また、各種制御対象のオン・オフなどの条件判定の機能を実現するコンポーネントの集合体である入力条件判定フレームワーク172、アクチュエータ4(負荷)を制御するための機能を実現するコンポーネントの集合体である負荷制御フレームワーク173がアプリケーション層107に含まれる。
【0033】
プラットフォーム層108では、CPU11によりプラットフォームプログラム18に基づきハードウェア群14,15,16,…を実際に制御する処理が行なわれる。例えば、記憶部14との間のデータの読み書き、通信部15とのデータの受け渡しなどの各機能が実現される。プラットフォーム層108は、記憶部14からどのデータを読み出すかを指示するなど論理的なアクセスを実行する機能が実現されるリソースマネージャ層108aと、実際に送信するデータを通信部15のI/Oメモリに書き込むなど物理的アクセスを実行する機能が実現されるリソースコントローラ層108bとに更に内部で階層化される。
【0034】
プラットフォーム層108においても、ハードウェア資源を制御する各機能は、機能の対象、又は役割等によって分離された複数のコンポーネントからなる機能フレームワークにて夫々実現される。図2に示す例では、リソースマネージャ層108aに、記憶部14などのメモリの読み書きについては、メモリから何れのデータを読み出すのか、何れのデータを書き込むのかを、アプリケーション層107からの要求に応じて決定する機能を実現するコンポーネントの集合体であるメモリ管理フレームワーク181aが含まれる。その他、通信部15へのデータの送信指示等を行なう通信管理機能を実現するコンポーネントの集合体である通信管理フレームワーク182aが含まれる。また、その他I/Oデバイスに対するデータの入出力を管理する機能を実現するコンポーネントの集合体である実現するI/O管理フレームワーク183aが含まれる。
【0035】
リソースコントローラ層108bには、メモリ管理フレームワーク181aからの指示に基づき、データのメモリ中におけるアドレスを特定して実際にデータを読み出し、データを実際に書き込むメモリ制御機能を実現するコンポーネントの集合体であるメモリ制御フレームワーク181bが含まれる。その他、リソースコントローラ層108bには、実際に通信部15へのデータの入出力を行なう通信制御機能を実現するコンポーネントの集合体である通信制御フレームワーク182bが含まれる。また、その他I/OデバイスのI/Oメモリに実際にアクセスして入出力機能を実現するコンポーネントの集合体である実現するI/O制御フレームワーク183bが含まれる。
【0036】
更に、CPU11がシステムマネージャプログラム19を読み出して実行することにより、システムマネージャ109の機能がプラットフォーム層108とインタフェースを共有して実現される。システムマネージャ109は、アプリケーション層107及びプラットフォーム層108の両方にわたって、各層にて機能する各種フレームワークにおいて起動しているコンポーネントにおける実行状態を検出し、情報を保持するシステム監視機能111、ECU1が搭載される車両の車種、仕向地、グレード、ECU1の機能の切り替えに応じて各層の各種フレームワークから何れの機能のコンポーネントを起動させるかなどを指示する機能管理112を実現する。なお、システムマネージャ109は図2に示すようなプラットフォーム層108とインタフェースを共有する構成のみならず、各層の機能と直接的に情報を授受できる構成としてもよい。
【0037】
次に、図2に示したような各機能を実現するための各種フレームワークの例を挙げて説明する。アプリケーションプログラム17,17,…、プラットフォームプログラム18はいずれも、以下の図3及び図4に示すように各機能を詳細に分離させたコンポーネントに相当するプログラムモジュールを組み合わせて実装してある。更に、各コンポーネントに相当するプログラムモジュールには属性情報を関連付け、コンポーネントの集合体であるフレームワークとして動作することを可能とし、各コンポーネントを選択的に実行させることができるように構成してある。
【0038】
図3は、アプリケーション層107に含まれるフレームワークとフレームワークを構成するコンポーネントの内容例を示す説明図である。図3に示すように、例えば入力条件判定フレームワーク172は、ハードウェア資源から情報を提供する機能を実現する内部情報提供コンポーネント、各ワイパーへの入力の条件判定機能を実現するワイパー系コンポーネント等からなる。また、入力条件判定フレームワーク172を構成する各コンポーネントも夫々、複数のコンポーネントからなるフレームワークとして構成される。内部情報提供コンポーネントは、セキュリティ状態を通知する機能を実現するセキュリティ状態コンポーネント等からなる内部情報提供フレームワークを構成する。ワイパー系コンポーネントもワイパーの種類別に機能を実現するオートワイパーコンポーネントなどからなり、ワイパー系フレームワークを構成する。このように、各フレームワークは階層的構造をなす。
【0039】
そして本実施の形態におけるアプリケーションプログラム17,17,…及びプラットフォームプログラム18にて実現される各コンポーネントには各機能の対象、各機能にて実現される動作など、機能又は役割を含む複数の属性情報が関連付けられている。例えば、図3に示す例では、内部情報提供コンポーネントは、機能属性として「内部情報提供」が関連付けられ、役割属性として「内部情報取得」が関連付けられた構成としてある。また、例えば、内部情報提供フレームワークを構成するセキュリティ状態コンポーネントは、機能属性として「セキュリティ」、役割属性として「セキュリティ状態監視」、仕様として「なし/北米/欧州/日本」といった各仕向地仕様が関連付けられている。なお、具体的には、各フレームワークを実現するプログラムモジュールを識別する情報と、各属性情報とが関連付けられてROM12に記憶されており、CPU11から識別することが可能である。
【0040】
また、属性情報によって各コンポーネントを管理することが可能である。図4は、プラットフォーム層108に含まれるフレームワークとフレームワークを構成するコンポーネントの内容例を示す説明図である。図2にて示した通信管理フレームワーク182aは、一のコンポーネントとして通信プロトコルの一つであるCANに基づく通信を管理する機能を実現するCAN管理コンポーネントを含む。通信制御フレームワーク182bは、一のコンポーネントとしてCANプロトコルに準じた通信モジュールを制御する機能を実現するCAN制御コンポーネントを含む。CAN管理コンポーネントは、図4に示すように、受信状態監視する機能を実現する受信状態監視コンポーネント、送信フレームを作成する機能を実現する送信フレーム作成コンポーネント等のコンポーネントからなるCAN管理フレームワークとして構成される。CAN制御コンポーネントも、図4に示すように、受信割込み機能を実現する受信割込コンポーネント、CANコントローラを物理的に制御する機能を実現するCANコントローラコンポーネントからなるCAN制御フレームワークとして構成される。
【0041】
図4に示す例では、CAN管理フレームワークを構成する各コンポーネントの役割属性は、いずれも「CAN管理」である。即ち、CAN管理フレームワークは、「CAN管理」の役割属性が関連付けられたコンポーネントから構成される。同様にCAN制御フレームワークを構成する各コンポーネントの役割属性は、いずれも「CAN制御」であり、CAN制御フレームワークは、「CAN制御」の役割属性が関連付けられたコンポーネント群から構成される。また、CAN管理フレームワーク及びCAN制御フレームワークを夫々構成する各コンポーネントは、機能属性としていずれも「CAN通信」が関連付けられている。これにより、図4に示す例では、「CAN通信」なる機能属性を共通とするコンポーネントは、「CAN通信フレームワーク」をも構成する。
【0042】
このように、各コンポーネントは複数のフレームワークに属することも可能である。つまり、同一の機能を実現するコンポーネントを他の機能を実現するコンポーネントのために再利用することが可能となる。また、図4に示す例では、各コンポーネントは機能、役割のみならず、仕様又は動作の種別等の属性も関連付けられている。したがって、属性情報として動作の種別、例えば「受信」にて各コンポーネントを対応付けるとすれば、受信状態監視コンポーネントと、受信割込コンポーネントとからなる「受信フレームワーク」などのように各コンポーネントを対応付けて新たな機能を実現するフレームワークとして構築することも可能である。
【0043】
次に、各フレームワーク及びコンポーネント間の階層的な構造を図を参照して説明する。図5は、アプリケーション層107に含まれる入力条件判定フレームワーク172の階層構造を概念的に示す説明図である。入力条件判定フレームワーク172は、ハードウェア資源における状態などの情報を提供する機能を実現する内部情報提供コンポーネント71、ドアロック制御に関する各種機能を実現するドアロック系コンポーネント72、ライト制御に関する各種機能を実現するライト系コンポーネント73、ワイパー制御に関する各種機能を実現するワイパー系コンポーネント74からなる。
【0044】
また、各コンポーネント71,72,73,74は夫々更に、階層的にフレームワークとして構成されており、詳細な機能を実現するコンポーネントからなる。例えば、内部情報提供コンポーネント71は、セキュリティ状態を通知するセキュリティ状態コンポーネント711、ヘッドライトスイッチ(SW)のオン/オフ状態をアプリケーション層107へ入力するヘッドライトSW入力コンポーネント712、エンジンスタータの状態を通知するエンジンスタータコンポーネント713、フロントワイパーの状態をアプリケーション層107へ入力するフロントワイパー入力コンポーネント714などからなる内部情報提供フレームワーク710として構成される。同様にしてライト系コンポーネント73は、ヘッドライト(Low)、ヘッドライト(High)、スモールライト、インテリアライト、及びターンライト夫々への入力条件を判定するヘッドライト(Low)コンポーネント731、ヘッドライト(High)コンポーネント732、スモールライトコンポーネント733、インテリアライトコンポーネント734、及びターンライトコンポーネント735などからなるライト系フレームワーク730として構成される。ワイパー系コンポーネント74は、フロントワイパー、オートワイパー、フロントウォッシャー、リアウォッシャー、及びリアワイパー夫々への入力条件を判定するフロントワイパーコンポーネント741、オートワイパーコンポーネント742、フロントウォッシャーコンポーネント743、リアウォッシャーコンポーネント744、及びリアワイパーコンポーネント745などからなるワイパー系フレームワーク740として構成される。
【0045】
図5に示したように、アプリケーション層107における各フレームワークは、機能によって区分されるドメインにて識別され、階層的にコンポーネントを有する。
【0046】
図6は、プラットフォーム層108に含まれる通信管理フレームワーク182a及び通信制御フレームワーク182bの階層構造を概念的に示す説明図である。通信管理フレームワーク182aは、UART(Universal Asynchronous Receiver Transmitter)の管理機能を実現するUART管理コンポーネント81、CAN通信機能を実現するCAN管理コンポーネント82、LIN通信機能を実現するLIN管理コンポーネント83、その他のプロトコルによる通信機能を実現するその他(拡張)管理コンポーネント84からなる。また、通信制御フレームワーク182bは、UARTの制御を実現するUART制御コンポーネント85、LINコントローラの制御機能を実現するLIN制御コンポーネント86、CANコントローラの制御機能を実現するCAN制御コンポーネント87、その他のプロトコルによる通信コントローラの制御機能を実現するその他(拡張)制御コンポーネント88からなる。
【0047】
そしてCAN管理コンポーネント82は、受信フレーム解析機能を実現する受信フレーム解析コンポーネント821、受信状態監視機能を実現する受信状態監視コンポーネント822、フェール処理機能を実現するフェール処理コンポーネント823、送信フレーム作成機能を実現する送信フレーム作成コンポーネント824、定期送信を実現する定期送信コンポーネント825からなるCAN管理フレームワーク820を構成する。CAN制御コンポーネント87は、受信処理機能を実現する受信処理コンポーネント871、受信割込機能を実現する受信割込コンポーネント872、CANコントローラを制御するCANコントローラコンポーネント873、送信割込機能を実現する送信割込コンポーネント874、送信処理機能を実現する送信処理コンポーネント875からなるCAN制御フレームワーク870を構成する。そして、CAN管理フレームワーク820及びCAN制御フレームワーク870はいずれも、コンポーネントとして「CAN通信」なる機能属性を共通とするので、CAN通信フレームワーク9を構成する。
【0048】
図5及び図6に示したような各フレームワーク及び各コンポーネントは、上位層のコンポーネントが下位層のコンポーネントに、システムマネージャ109からの指示に従っていずれかに起動要求を通知し、起動要求に応じて各コンポーネントが状態変化したことを上位層のコンポーネントに通知するという階層的構造にて動作するようにしてある。これにより、各機能を選択的に実現させることができ、不要な機能は動作を停止させるなど、効率的な制御が可能である。つまり、例えば入力条件判定フレームワーク172により、内部情報提供コンポーネント71、ドアロック系コンポーネント72、ライト系コンポーネント73、ワイパー系コンポーネント74のいずれかへ起動要求がされ、各コンポーネントから状態が通知されることにより、各機能の動作が入力条件判定フレームワーク172によって管理される。
【0049】
図3乃至図6に示したように、アプリケーション層107と、プラットフォーム層108とでは、夫々に含まれるコンポーネントの属性情報は異なる。しかしながら、各々で属性情報に基づき、アプリケーション層107及びプラットフォーム層108夫々での各フレームワークによって実現される機能は明確に分類され、対応する集合体として扱われる。また、各コンポーネントは属性情報によって特定の機能を実現する要素として対応付けられるので、一つの属性情報によってその機能の追加・削除を容易に変更可能である。例えば、図4及び図6に示したCAN管理コンポーネント(フレームワーク)82(820)及びCAN制御コンポーネント(フレームワーク)87(870)は、CAN通信フレームワーク9を構成しているが、ECU1においてCAN通信に対応する必要がなくなった場合、削除対象のコンポーネントの属性情報として「CAN通信」を選択することにより、CAN通信を属性情報に持つコンポーネントからなるCAN通信フレームワーク9をまとめて機能しないように制御することができる。したがって、各層において属性情報によって機能の抜き差しが可能となり、いずれの機能(属性)を基準とするか、役割(属性)を基準とするか、その他の属性情報を基準とするかによって、フレームワークの構成を変更することが容易となる。
【0050】
次に、ECU1におけるアプリケーション層107と、プラットフォーム層108とで機能構成の変更が容易に可能であることをフローチャートを参照して説明する。
【0051】
図7は、属性情報の選択によって、ECU1の機能構成が変更される処理手順の一例を示すフローチャートである。なお、本処理は例えば、要求仕様の変更に伴ってアプリケーションプログラム17,17,…、プラットフォームプログラム18、システムマネージャプログラム19をリンクさせる際に、コンパイラなどによって実行される。
【0052】
要求仕様の変更に伴い、制御ロジックに基づいて必要となる各機能に対応する属性情報が選択される(ステップS1)。アプリケーションプログラム17,17,…、プラットフォームプログラム18に含まれる各フレームワーク及びコンポーネントに関連付けられた属性情報が参照される(ステップS2)。
【0053】
ステップS1にて必要となる各機能に応じて選択された属性情報を共通する属性とするコンポーネントに相当するプログラムモジュールが、アプリケーションプログラム17,17,…及びプラットフォームプログラム18から夫々選択される(ステップS3)。選択されたプログラムモジュールは共通する属性情報にて対応付けられ(ステップS4)、処理が終了される。
【0054】
このような処理により、ECU1の機能構成が容易に要求仕様に従って再構築可能である。
【0055】
更に属性情報にはアプリケーション層107と、プラットフォーム層108との異なるソフトウェア階層間での関連を示す各フレームワーク間のリンク情報が含まれることが望ましい。図8は、各層における機能フレームワークの属性情報にリンク情報が含まれる場合の構成の例を示す説明図である。
【0056】
図8の例では、アプリケーション層107、プラットフォーム層108におけるリソースマネージャ層108a及びリソースコントローラ層108bにて夫々選択されて構築された各コンポーネントが示されている。アプリケーション層107では、オートドアロック、とじこみ防止機能などドアロック関連の機能を実現するドアロックフレームワーク、各ライトの制御を実現するライト系フレームワーク730、及び車両の故障状況の診断機能を実現する診断フレームワークが動作するように構成されている。図8に示す例では、診断フレームワークに含まれる外部故障診断コンポーネントの属性情報として、以下のような情報が関連付けられている。機能属性として「診断」、役割属性として「外部故障診断」、リンク属性として「UART管理/K−LINE」が関連付けられている。つまり、アプリケーション層107における外部故障診断コンポーネントには、プラットフォーム層108において「UART管理」及び「K−LINE」が機能属性及び役割属性として関連付けられているコンポーネント、即ちリソースマネージャ層108aのK−LINEコンポーネントと関連関係があることを示している。ここで、UART、K−LINEはいずれも、ECU1又は他のECUに接続される外部故障診断機器との通信ラインである。外部故障診断機能を実現するためには、関連してUART管理又はK−LINE管理の機能が必要となることから、関連関係がある。
【0057】
プラットフォーム層108におけるリソースマネージャ層108aでは、メモリ管理フレームワーク181a、通信管理フレームワーク182a、I/O管理フレームワーク183aの他、リソース監視フレームワークなどが動作するように構成されている。通信管理フレームワーク182aにはUART管理コンポーネント(フレームワーク)81が含まれている。更に、UART管理フレームワークはK−LINEコンポーネントを含む。K−LINEコンポーネントには属性情報として、以下のような情報が関連付けられている。機能属性として「UART管理」、役割属性として「K−LINE」、リンク属性として「診断/外部故障診断/UART制御/UART CH1」が関連付けられている。つまり、リソースマネージャ層108aにおけるK−LINEコンポーネントには、アプリケーション層107において「診断」及び「外部故障診断」が機能属性及び役割属性として関連付けられているコンポーネント、即ちアプリケーション層107の外部故障診断コンポーネントと関連関係があることを示している。また、K−LINEコンポーネントには、リソースコントローラ108bにおいて「UART制御」及び「UART CH1」が機能属性及び役割属性として関連付けられているコンポーネント、即ちリソースマネージャ層108aのK−LINEコンポーネントは、リソースコントローラ層108bのUART CH1コンポーネントと関連関係があることを示している。
【0058】
プラットフォーム層108におけるリソースコントローラ層108bでは、メモリ制御フレームワーク181b、通信制御フレームワーク182b、I/O制御フレームワーク183bの他、存在しないハードウェアの動作をエミュレータして応答する仮想化フレームワークが動作するように構成されている。通信制御フレームワーク182bには、UART制御コンポーネント(フレームワーク)85が含まれている。更に、UART制御フレームワークはUART CH1コンポーネントを含む。UART CH1コンポーネントには属性情報として、以下のような情報が関連付けられている。機能属性として「UART制御」、役割属性として「UART CH1」、リンク属性として「UART管理/K−LINE」が関連付けられている。UART CH1コンポーネントは、UARTのCH1による通信を制御する機能を実現するものである。そして、UART CH1コンポーネントは、リソースマネージャ層108aにおいて「UART管理」及び「K−LINE」が機能属性及び役割属性として関連付けられているコンポーネント、即ちK−LINEコンポーネントと関連関係があることを示している。
【0059】
ここで例えば、外部診断機能機器など外部機器との接続が不要になった場合、アプリケーション層107において外部故障診断フレームワークが動作しないように削除するとする。このとき、外部故障診断フレームワークとリンクしているリソースマネージャ層108aのK−LINEコンポーネント、及び更にK−LINEコンポーネントとリンクしているリソースコントローラ層108bのUART CH1コンポーネントをいずれも削除して、一括して機能しないように構築し直すなどが可能となる。このように、属性情報に含まれるリンク属性により、ソフトウェア構造の階層にわたって各機能間の対応付けを可能とすることにより、各機能の連動的な抜き差しが容易に可能となり、多様な要求仕様に対応させることができる点、優れた効果を奏する。
【0060】
このような構成により、以下のような効果を奏する。例えば、ある仕様では、通信管理機能としては状態監視機能まで含まれることが要求される一方で、他の仕様では、状態監視機能はアプリケーション層107における機能によって実現されればよい場合がある。本実施の形態の構成では、そのような仕様の変更に応じた各機能の具体的要素の組み合わせを自在とすることができ、容易にECU1における機能構成を幅広いバリエーションにて変更することが可能となり、様々な仕様要求に容易に対応させることが可能となる。このように、一のプログラムでも種々の仕様に柔軟に対応できるので、プログラムの再利用性が向上し、開発過程の短縮化、開発負荷の削減を図ることができる。
【0061】
上述に示した実施の形態では、本発明は車両に搭載されるECUに適用される例を示した。しかしながら本発明はこれに限らず、種々の制御を行なうコンピュータ装置全般に適用することができる。
【0062】
なお、上述のように開示された本実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0063】
1 ECU
10 マイコン
11 CPU
12 ROM
17,17 アプリケーションプログラム
18 プラットフォームプログラム
19 システムマネージャプログラム
107 アプリケーション層
108 プラットフォーム層
108a リソースマネージャ層
108b リソースコントローラ層
109 システムマネージャ

【特許請求の範囲】
【請求項1】
複数の機能単位で分離された複数のプログラムモジュールから構成される一又は複数のアプリケーションプログラム、及び、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御し、複数の機能単位で分離されたプログラムモジュールから構成されるプラットフォームプログラムを含むコンピュータプログラムの構成を変更する方法であって、
各プログラムモジュールには夫々を識別する識別情報と、各プログラムモジュールに基づきコンピュータが実現する機能の属性を示す属性情報とを関連付けて記憶しておき、
コンピュータが実現する機能の構成の変更に伴う属性情報の選択を受け付け、
選択された属性情報が共通に関連付けられたプログラムモジュールを選択し、
選択したプログラムモジュールからコンピュータプログラムを構築する
ことを特徴とするプログラム変更方法。
【請求項2】
前記属性情報は、機能の内容を示す情報、機能の役割を示す情報、及び他の機能との関連を示す情報の内の一又は複数を含むこと
を特徴とする請求項1に記載のプログラム変更方法。
【請求項3】
一又は複数のアプリケーションプログラムの機能を各実現する一又は複数のアプリケーションプログラム、及び、前記一又はアプリケーションの機能からの処理要求に対応してハードウェア資源の動作を夫々制御する機能を実現するプラットフォームプログラムを含み、
前記アプリケーションプログラム及びプラットフォームプログラムは夫々、機能の属性を示す属性情報が関連付けられた複数のプログラムモジュールから構成されており、
同一の属性情報が共通して関連付けられたプログラムモジュールが選択されたアプリケーションプログラム及びプラットフォームプログラムを実行可能としてあること
を特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−231808(P2010−231808A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2010−137350(P2010−137350)
【出願日】平成22年6月16日(2010.6.16)
【分割の表示】特願2008−196521(P2008−196521)の分割
【原出願日】平成20年7月30日(2008.7.30)
【出願人】(395011665)株式会社オートネットワーク技術研究所 (2,668)
【出願人】(000183406)住友電装株式会社 (6,135)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】