(57)【要約】【課題】  本発明はソフトウェア製品系列の可変性を分析し、機器を制御するための組込みコントローラに関する。【解決手段】  制御変数の複数の演算式に対応するソフト部品３１，３２と、呼び出しインタフェース３３と製品定義ソフト３４と制御基本ソフト４とで構成される。制御基本ソフト４が呼び出しインタフェース３３を実行すると、呼び出しインタフェース３３は製品定義ソフト３４を参照して、ソフト部品３１，３２のどちらを実行するかを決定，実行する。【選択図】図１
2010009326.tif 000002
【特許請求の範囲】
【請求項１】
外部からの入力信号を取り込みデータ化する信号入力部と、
前記データ化された入力信号を処理し、制御データを演算するプロセッサと、
前記制御データを外部に接続される機器への制御信号として出力する信号出力部と、
前記プロセッサに前記演算を実行させるための組込みソフトウェアを記憶するメモリとを備える組込みコントローラにおいて、
前記組込みソフトウェアは、
複数の制御機能ソフトと、制御対象の製品仕様を定義する製品定義ソフトと、で構成されたアプリケーションソフトと、
前記制御機能ソフトの起動を制御し、前記制御機能ソフトからの要求に応じて前記入力信号の読み出しおよび前記制御信号の出力を行う基本ソフトとを有し、
前記制御機能ソフトは、
複数のソフト部品と、該ソフト部品の実行順序を管理する制御基本ソフトと、該制御基本ソフトによる少なくとも一つの前記ソフト部品の実行呼び出しごとに対応する呼び出しインタフェースソフトとを有し、
該呼び出しインタフェースを有する前記ソフト部品は、
複数個のソフト部品バリエーションを備えることを特徴とする組込みコントローラ。
【請求項２】
請求項１に記載の組込みコントローラにおいて、
前記ソフト部品バリエーションは、前記制御対象の前記製品仕様に対応して設けられることを特徴とする組込みコントローラ。
【請求項３】
請求項１又は２の組込みコントローラにおいて、前記呼び出しインタフェースソフトは、前記製品定義ソフトに定義された前記製品仕様に基づいて、前記ソフト部品バリエーションから適切なソフト部品を呼び出すことを特徴とする組込みコントローラ。
【請求項４】
請求項１から３のいずれかの組込みコントローラにおいて、
前記呼び出しインタフェースの起動手続きは、前記ソフト部品の起動手続きと同一であり、前記製品仕様に基づいて前記ソフト部品バリエーションの起動手続きへと変換したうえで、対応する前記ソフト部品の実行呼び出しを行うことを特徴とする組込みコントローラ。
【請求項５】
請求項１から４のいずれかの組込みコントローラにおいて、前記呼び出しインタフェースは、前記呼び出しインタフェースごとに前記製品仕様の一つの項目のみを参照することを特徴とする組込みコントローラ。
【請求項６】
請求項１から５のいずれかの組込みコントローラにおいて、
前記製品仕様とは、少なくとも、制御対象の少なくとも一つの機械的構成と、製品仕向地と、外部接続機器構成とのいずれか一つで構成されていることを特徴とする組込みコントローラ。
【請求項７】
請求項１から６のいずれかの組込みコントローラにおいて、
前記製品仕様とは、前記制御対象の属する製品系列内において製品間で異なる設計要素に対応していることを特徴とする組込みコントローラ。
【請求項８】
請求項１から７のいずれかの組込みコントローラにおいて、前記ソフト部品バリエーションは、前記制御対象の前記製品仕様に基づいて前記呼び出しインタフェースによって実行呼び出しされるソフト部品のみが組み込まれることを特徴とする組込みコントローラ。
【請求項９】
請求項１から８のいずれかの組込みコントローラにおいて、
前記制御対象は自動車用内燃機関であって、前記製品仕様とは少なくとも気筒数，気筒配置，スロットル種類，燃料噴射方式，バルブ駆動機構，過給機の有無，変速機種類，ピストン形状，吸気ポート数，排気ポート数，内燃機関冷却方式，燃料種別，ストローク数，出荷国，対応排気規制のいずれか一つを含むことを特徴とする組込みコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を制御するための組込みコントローラに関する。
【背景技術】
【０００２】
従来、ソフトウェアを複数の独立したソフト部品で構成し、ソフト部品の組み合わせで所望の機能を実現するとともに、ソフト部品単位で再利用を行う方法がある（例えば、特許文献１）。
【０００３】
また従来、類似の製品で構成される製品系列内でのソフトウェア再利用を目的とした組込みコントローラとして、組込みコントローラを構成するプロセッサ，電子回路，センサおよびアクチュエータに対応してソフトウェアを部品化する方法がある（例えば、特許文献２）。
【０００４】
【特許文献１】特開２００４−５４６８３号公報
【特許文献２】特開２０００−９７１０２号公報
【特許文献３】特開２００４−１９９５３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ソフトウェア技術の適用対象として、自動車，携帯電話等の機器に組み込んで対象を制御する、いわゆる組み込みソフトウェアがある。このような組込みソフトウェアによる制御は、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの変更によって多くの派生製品を開発できること、が利点として挙げられる。
【０００６】
従来は対象製品ごとにソフトウェアを開発したり、類似の製品に基づいて差分を開発したりしていた。しかし、組込みソフトウェアの適用範囲拡大に伴い、派生製品数およびソフトウェアの規模が増大したため、開発効率の大幅な向上が要求されている。
【０００７】
上記課題を解決するため、特許文献１に示すように、ユーザインタフェース特有の視点（ＭＶＣモデル）に基づいてソフトウェアを部品化し、ソフト部品単位で再利用を行う技術が開示されている。しかしながら、機器制御システムにおいてどのように部品化を行うか、と言う点については考慮されていない。
【０００８】
また、特許文献２では、機器制御システムの一例である自動車制御システムにおいて、ソフトウェアを、エンジン等の制御対象に相当するアプリケーションソフトと、組込みコントローラのハードウェアに相当する基本ソフトとに階層化し、基本ソフト内にセンサ，アクチュエータ，周辺回路，プロセッサなどの組込みコントローラのハードウェアに対応するソフト部品を設ける技術が開示されている。しかしながら、制御対象に相当するアプリケーションソフトの部品化に関しては、エンジンや変速機など、制御対象ごとの部品化にとどまっている。組込みコントローラの開発においては、例えばエンジンの気筒配置など、たとえ組込みコントローラのハードウェア構成が同一であっても制御対象機器が異なる場合が存在する。したがって、制御対象機器毎にアプリケーションソフトを変更しなければならず、再利用性が低いと言う課題がある。
【０００９】
また、従来技術として特許文献３では、アプリケーションソフトの部品化に関して、制御演算データに対応してソフト部品とソフト部品の実行順序を管理する制御基本ソフトを設けたうえで、ソフト部品毎に実行手続きを共通化するインタフェースを設けることによってソフト部品実行時の引数および戻り値の変更を吸収し、制御基本ソフトの再利用性を向上させる技術がある。しかしながら、制御対象機器の構成が変更された場合には制御演算データの演算式自体が異なる場合がある。演算式の変更に対応するためには組み合わせるソフト部品を変更しなければならず、制御基本ソフトを変更しなければならないため、アプリケーションソフトの再利用性が低いと言う課題がある。
【００１０】
本発明は、上記課題を解決し、制御対象機器に対応するアプリケーションソフトの再利用性を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を達成するために、本発明は外部からの入力信号を取り込みデータ化する信号入力部と、前記データ化された入力信号を処理し、制御データを演算するプロセッサと、前記制御データを外部に接続される機器への制御信号として出力する信号出力部と、前記プロセッサに前記演算を実行させるための組込みソフトウェアを記憶するメモリとを備える組込みコントローラにおいて、前記組込みソフトウェアは複数の制御機能ソフトと、制御対象の製品仕様を定義する製品定義ソフトとで構成されたアプリケーションソフトと、前記制御機能ソフトの起動を制御し、前記制御機能ソフトからの要求に応じて前記入力信号の読み出しおよび前記制御信号の出力を行う基本ソフトとを有し、前記制御機能ソフトは複数のソフト部品と、前記ソフト部品の実行順序を管理する制御基本ソフトと、前記制御基本ソフトによる少なくとも一つの前記ソフト部品の実行呼び出しごとに対応する呼び出しインタフェースソフトとを有し、前記呼び出しインタフェースを有する前記ソフト部品は複数個のソフト部品バリエーションを備えることを特徴とするものである。
【００１２】
更に、本発明は組込みコントローラにおいて、前記ソフト部品バリエーションは、前記制御対象の前記製品仕様に対応して設けられることを特徴とするものである。
【００１３】
更に、本発明は組込みコントローラにおいて、前記呼び出しインタフェースソフトは、前記製品定義ソフトに定義された前記製品仕様に基づいて、前記ソフト部品バリエーションから適切なソフト部品を呼び出すことを特徴とするものである。
【００１４】
更に、本発明は組込みコントローラにおいて、前記呼び出しインタフェースの起動手続きは、前記ソフト部品の起動手続きと同一であり、前記製品仕様に基づいて前記ソフト部品バリエーションの起動手続きへと変換したうえで、対応する前記ソフト部品の実行呼び出しを行うことを特徴とするものである。
【００１５】
更に、本発明は組込みコントローラにおいて、前記呼び出しインタフェースは、前記呼び出しインタフェースごとに前記製品仕様の一つの項目のみを参照することを特徴とするものである。
【００１６】
更に、本発明は組込みコントローラにおいて、前記製品仕様とは、少なくとも、制御対象の少なくとも一つの機械的構成と、製品仕向地と、外部接続機器構成とのいずれか一つで構成されていることを特徴とするものである。
【００１７】
更に、本発明は組込みコントローラにおいて、前記製品仕様とは、前記制御対象の属する製品系列内において製品間で異なる設計要素に対応していることを特徴とするものである。
【００１８】
更に、本発明は組込みコントローラにおいて、前記ソフト部品バリエーションは、前記制御対象の前記製品仕様に基づいて前記呼び出しインタフェースによって実行呼び出しされるソフト部品のみが組み込まれることを特徴とするものである。
【００１９】
更に、本発明は組込みコントローラにおいて、前記制御対象は自動車用内燃機関であって、前記製品仕様とは少なくとも気筒数，気筒配置，スロットル種類，燃料噴射方式，バルブ駆動機構，過給機の有無，変速機種類，ピストン形状，吸気ポート数，排気ポート数，内燃機関冷却方式，燃料種別，ストローク数，出荷国，対応排気規制のいずれか一つを含むことを特徴とするものである。
【発明の効果】
【００２０】
本発明の組込みコントローラによれば、制御対象機器の製品仕様に対応する複数個のソフト部品バリエーションを設け、制御対象の製品仕様を定義する製品定義ソフトを設け、製品仕様に対応して実行するソフト部品を変更する呼び出しインタフェースソフトを設けることにより、製品仕様の変更によらず制御基本ソフトを再利用可能にすることを実現する。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の一実施の形態による組込みコントローラについて図面を参照しつつ説明を行う。なお、本実施例では組込みコントローラの一例として自動車用電子制御ユニット（Electric Control Unit、以下ＥＣＵ）を実施例として扱う。
【００２２】
まず、図１に本発明が実施された制御機能ソフトの基本構造を示す。ソフト部品１，２は制御変数の更新ロジックを記述している。ある制御変数に対応するソフト部品バリエーション３０であり、同じ制御変数を演算するが異なる演算手順を有するソフト部品３１，３２で構成される。ソフト部品バリエーション３０が対応する制御変数用の呼び出しインタフェース３３は、後述する製品定義ソフト３４を参照してソフト部品バリエーション３０から機器構成に対応するソフト部品３１または３２を選択し、実行する。製品定義ソフト３４は、制御機能ソフトが制御対象とする製品の機器構成を定義する。制御基本ソフト４はソフト部品１，２および呼び出しインタフェース３３の実行順序を記述している。制御基本ソフト４の処理の流れ５は、制御機能ソフトはプラットフォームソフトによって起動されたのち、ソフト部品１，２，呼び出しインタフェース３３を順番に呼び出すことを示している。
【００２３】
呼び出しインタフェース３３は、演算手順が異なるソフト部品を複数有するソフト部品バリエーション３０に対応して設けられている。そのため、例えば製品の機器構成に応じてソフト部品３１からソフト部品３２に変更される場合でも、ソフト部品バリエーション３０内での変更は呼び出しインタフェース３３で行われるため、制御基本ソフト４は共通の呼び出しインタフェース３３を呼び出せばよく、制御基本ソフトを変更せずに用いることが出来る。すなわち、図１の構成とすることによって、構成が異なる制御機器間でのアプリケーションソフトの再利用性が向上するという効果がある。
【００２４】
図２に、本発明を適用した車両を示す。この例では、車両６は、エンジン７と、変速機８と、アクセルペダル９と、エンジン７を制御するＥＣＵ１０と、変速機８を制御するＥＣＵ２０とを有する。
【００２５】
図３に、車両用分散制御システムの基本構成を示す。本車両用分散制御システムは、制御対象機器であるエンジン７と、変速機８と、ドライバによるアクセル操作を受け付けるペダル９と、ソフトウェア１１と、メモリ１２と、プロセッサ１３と、データ受信装置１４と、データ送信装置１５と、アクセルペダル等の入力をＡ／Ｄ変換して入力するアナログ入力１６と、クランク角度センサ等からのパルスを入力するデジタル入力１７と、アクチュエータ等を駆動するために電圧を出力するアナログ出力１８と、アクチュエータ等を駆動するためにパルスを出力するデジタル出力１９とによって構成されるＥＣＵ１０と、前記ＥＣＵ１０と同様の構成を有するＥＣＵ２０と、ペダル９の踏み込み角度を電圧値に変換するセンサ１６１と、エンジンのクランク角度を計測するセンサ１７１と、アナログ出力により駆動されるアクチュエータ１８１と、パルス出力により駆動されるアクチュエータ１９１とで構成されている。
【００２６】
図４にソフトウェア１１の構成の一例を示す。図４に示すように、アプリケーションソフト１１１とプラットフォームソフト１１２で構成されている。
【００２７】
アプリケーションソフト１１１は、センサ入力に基づいて制御対象であるエンジン８の状態を推定し、制御目標状態を定め、アクチュエータ出力を制御するための目標値を演算する制御機能ソフトであるトルク制御機能１１１１，燃料制御機能１１１２，診断機能１１１３と、エンジン８の機器構成を定義する製品定義ソフト１１１４で構成されている。
【００２８】
プラットフォームソフト１１２は、リアルタイムオペレーションシステム（ＯＳ）１１２１と、入出力ソフト１１２２とで構成されている。リアルタイムＯＳは時間周期や外部入力に同期してアプリケーションソフト１１１の制御機能ソフトの起動を行うとともに、割り込み禁止処理などをサービスをアプリケーションソフト１１１に提供する。入出力ソフト１１２２は、組込みコントローラ１０自体すなわちプロセッサ１３，データ受信装置１４，データ送信装置１５，アナログ入力１６，デジタル入力１７，アナログ出力１８，デジタル出力１９や、センサ１６１，１７１，アクチュエータ１８１，１９１に関する演算処理を実行する。
【００２９】
図５に制御機能ソフトの一つであるトルク制御機能ソフト１１１１の構成の一例を示す。ソフト部品１１１１１，１１１１２は、目標トルクに関する演算、空気量に関する演算手続きが記述されている。燃料量に対応するソフト部品バリエーション１１１１３０は、同じ制御変数である燃料量を演算するが、マルチポート噴射（ＭＰＩ）方式での燃料量演算ソフト部品１１１１３１や筒内直噴方式での燃料量演算ソフト部品１１１１３２など、エンジンの機器構成によって異なる演算手順を有するソフト部品で構成される。燃料量演算ソフト部品バリエーション１１１１３０に対応する制御変数（燃料量）用の呼び出しインタフェース１１１１３３であって、製品定義ソフト１１１４を参照してソフト部品バリエーション１１１１３０から機器構成に対応するソフト部品１１１１３１または１１１１３２を選択し、実行する。製品定義ソフト１１１４であって、トルク制御機能ソフト１１１１が制御対象とするエンジン７の機器構成である燃料噴射方式１１１４１や気筒数１１１４２，エンジンの排気規制を定めている仕向地１１１４３，外部接続機器である変速機種類１１１４４の情報を定義する。トルク制御基本ソフト１１１１４は、ソフト部品１１１１１，１１１１２および呼び出しインタフェース１１１１３３の実行順序を記述している。トルク制御基本ソフト１１１１４の処理の流れ１１１１５は、トルク制御機能ソフト１１１１４は、周期的、またはエンジン回転角度センサ入力割り込みなどの外部入力に同期してリアルタイムＯＳ１１２１によって起動されたのち、ソフト部品１１１１１，１１１１２，呼び出しインタフェース１１１１３３を順番に呼び出すことを示している。
【００３０】
図５の構成を取ることによって、制御機能ソフトの中で対象とするエンジンの機器構成に対応して変更されるソフト部品の選択を、ソフト部品の実行順序を定義している制御基本ソフトから分離することが出来る。たとえば対象とするエンジンでの燃料噴射方式や気筒数，気筒配置（直列，Ｖ型，水平）が変わった場合には、呼び出しインタフェースが実行するソフト部品が変更されるだけで、制御基本ソフトを流用することが出来るという利点がある。
【００３１】
図６に、ソフト部品バリエーション１１１３０と製品定義ソフトの項目１１１４１との対応関係を示す。製品定義ソフト１１１４で定義される機器構成は複数種類存在する。そのため、ソフト部品バリエーション１１１３０を複数種類の項目に対応させた場合には、用意しておかなくてはいけないソフト部品のバリエーション数が、定義項目の組み合わせで多くなってしまうという課題がある。そこで、一つの制御変数に対応するソフト部品バリエーション１１１３０は、製品定義ソフトで定義される一項目１１１４１に対応させる。図６の構成を取ることによって、少数のソフト部品バリエーションを多数の製品に対して効率的に再利用できるという利点がある。
【００３２】
図７は呼び出しインタフェース３３の動作を示す。
【００３３】
制御基本ソフト４がステップ１（以下、Ｓ１と称す）において呼び出しインタフェース３３の実行処理を行う。その結果、呼び出しインタフェース３３の処理が開始される。Ｓ２において対応製品仕様を読み込み、ソフト部品バリエーションが対応している製品仕様項目を特定する。Ｓ３において製品定義ソフト３４を読み込み、Ｓ２で特定した製品仕様項目が対象とする制御機器でどのような構成になっているのかを参照する。Ｓ４において、ソフト部品バリエーション３０の中から対象制御機器用に呼び出すソフト部品の呼び出し手続きを生成する。Ｓ５において、ソフト部品の呼び出しを実行する。ソフト部品の処理が完了した後、Ｓ６において、呼び出しインタフェース３３の処理を完了し、実行処理を制御基本ソフト４に戻す。
【００３４】
図８は、本発明が適用された組込みコントローラの一例を示す。図８の例では、燃料噴射方式はＭＰＩ方式が適用されているため、ソフト部品バリエーション１１１１３０でＭＰＩ方式に対応するソフト部品１１１１３１のみがメモリ１２上に書き込まれる。
【００３５】
図８の構成とすることで、メモリ容量の制約が厳しい組込み制御装置においても、メモリ使用量を削減することが可能となる。
【００３６】
図９に、図１で示す制御機能ソフトの一例として、Ｃ言語によるソースコードを示す。制御基本ソフト１０１であり、演算する制御変数の更新手続き“ＡＬＰＨＡ_Ｕpdate”，“ＢＥＴＡ_Ｕpdate”，“ＧＡＭＭＡ_Ｕpdate”の実行順序を定義し、呼び出しを行っている。ソフト部品ＢＥＴＡ１０２２に対応するデータインタフェース１０２１は、ソフト部品間でのデータのやり取りを定義している。ソフト部品１０２２は制御変数ＢＥＴＡの演算手順を定義している。制御変数ＢＥＴＡに関しては、ソフト部品バリエーションは存在していない。制御変数ＧＡＭＭＡはエンジン気筒数に対応するソフト部品バリエーションを有する。製品定義ソフト１０４は制御対象エンジンの機器構成を定義している。“＃define ＣylNum Ｃyl４”で、製品仕様項目ＣylNum（気筒数）がＣyl４（４気筒）であることを示す。呼び出しインタフェース１０３１は制御変数ＧＡＭＭＡのソフト部品バリエーションから制御対象エンジン用のソフト部品を選択している。“＃include ＶＰ_Ｐrofile.h”で製品定義ソフト１０４を読み込んでいる。“＃define ＧＡＭＭＡ_Ｕpdate（）”のマクロ定義において、制御変数ＧＡＭＭＡがどの製品仕様項目に対応しているかを定義している。“＃define ＧＡＭＭＡ_Ｕpdate_ＶＰ（ＣylNum）”のマクロ定義において、製品定義ソフト１０４から読み込んだ製品仕様に基づき、制御変数ＧＡＭＭＡのソフト部品バリエーションから特定のソフト部品を呼び出すための実行命令へと変換している。制御変数ＧＡＭＭＡのソフト部品バリエーションにおける４気筒用ソフト部品１０３３を備え、ソフト部品１０３３用のデータインタフェース１０３２を備えている。
【００３７】
このように、図９の構成とすることで、制御基本ソフトからは制御変数の更新順序だけを定義，実行すればよくなり、実行対象の制御変数が制御対象機器の構成によってソフト部品バリエーションを持つかどうかを意識する必要が無く、共通の手順で制御変数の更新が行えるようになる。また、ソフト部品バリエーションから制御対象に対応したソフト部品を選択する機能を呼び出しインタフェースに局所化したため、制御対象の機器構成が変更されても制御基本ソフトを変更する必要が無くなり、ソフトウェアを効率的に再利用することが出来るという利点がある。
【産業上の利用可能性】
【００３８】
本発明は、複数のソフト部品で構成され、機械的構成を有する機器を制御する制御装置に適用できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施の形態による組込み制御装置の構成例を示す図である。
【図２】実施例の自動車用組込み制御装置を示す図である。
【図３】実施例の組込み制御装置の概要図である。
【図４】組込み制御装置のソフトウェア構造を示す図である。
【図５】制御機能ソフトと製品定義ソフトの構成を示す図である。
【図６】数値化された製品系列変更履歴を示す図である。
【図７】ソフト部品バリエーションと、製品定義ソフトの製品仕様項目との対応を示す図である。
【図８】組込み制御装置の実装形態を示す図である。
【図９】制御機能ソフトおよび製品定義ソフトのＣ言語での記述を示す図である。
【符号の説明】
【００４０】
１，２，３１，３２  ソフト部品
４  制御基本ソフト
５  処理の流れ
３０  ソフト部品バリエーション
３３  呼び出しインタフェース
３４  製品定義ソフト
【図１】
2010009326.tif 000003
【図２】
2010009326.tif 000004
【図３】
2010009326.tif 000005
【図４】
2010009326.tif 000006
【図５】
2010009326.tif 000007
【図６】
2010009326.tif 000008
【図７】
2010009326.tif 000009
【図８】
2010009326.tif 000010
【図９】
2010009326.tif 000011