(57)【要約】【課題】複数の制御演算手段と入出力処理手段と制御演算手段間および入出力処理手段などとのデータのやり取りを行うインタフェースソフトを有する組込みコントローラにおいて、制御演算手段の一部が変更された場合でもインタフェースソフトの再利用を可能にすることを目的とする。【解決手段】制御基本処理手段から制御演算手段への実行命令や前記制御演算手段間の変数の受け渡しなどを管理するインタフェース手段を制御演算手段ごとに設ける。【効果】一部の制御変数の演算ロジックを変更した場合にはインタフェースソフト全体を変更する必要は無く、対応するインタフェースソフトのみの変更で対応することが可能になり、組込みソフトウェアの再利用性が向上するという効果がある。【選択図】  図１
2011150739.tif 000002
【特許請求の範囲】
【請求項１】
外部からの入力信号を取り込みデータ化する信号入力部と、
前記データ化された入力信号を処理し、外部に接続される車載機器を制御するための制御データを演算するプロセッサと、
前記制御データを前記車載機器への制御信号として出力する信号出力部と、
前記プロセッサに前記演算を実行させるための組み込みソフトウェアを記憶するメモリとを備える車両用制御装置であって、
前記組み込みソフトウェアは、前記入力信号または他のソフト部品による制御演算の結果である制御データに基づいて演算を行う複数のソフト部品と前記ソフト部品と他のソフト部品との間の前記制御データの受け渡しを管理するインタフェースソフトと前記複数のソフト部品の実行順序を管理する制御基本ソフトウェアとを有するアプリケーションソフトウェアと、
前記アプリケーションソフトウェアの起動を制御し、前記アプリケーションソフトウェアからの要求に応じて前記入力信号の読み出し及び前記制御信号の出力を行う基本ソフトウェアとを有し、
前記制御基本ソフトウェアは前記入力信号に同期して前記ソフト部品が実行されることを禁止する割り込み禁止処理を行うことを特徴とする車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載機器を制御する車両用制御装置に関する。
【背景技術】
【０００２】
従来より組込みソフトウェア，組込みコントローラおよび組込みソフトウェア開発ツールとして、プログラム作成者からの入力情報に従って、基本プログラムのインタフェースプログラムを自動的に生成する方法がある（例えば、特許文献１参照）。
【０００３】
また従来、組込みソフトウェアを作成するために制御系システム設計支援ソフトウェア、引用例によればＭＡＴＬＡＢおよびSimulinkを用いて、ソースコードを自動生成する方法がある（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２２９７９１号公報（第４頁，図１（ｂ））
【非特許文献】
【０００５】
【非特許文献１】サイバネットシステム株式会社刊、「ＭＡＴＬＡＢ  Ｅｘｐｏ２００２モデルベース制御系設計カンファレンス資料」、１０３頁〜１２６頁
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば車両用電子制御装置においては、組込みコントローラ用ソフトウェアの開発効率を向上させるための組込みコントローラ開発ツールおよび開発プロセスが研究されている。開発効率向上のためには、組込みコントローラ用ソフトウェアのソースコード自動生成化および再利用性向上が要求されている。
【０００７】
従来の組込みコントローラでは、インタフェース手段が基本管理手段の一部である（例えば、特許文献１参照）。そのため、複数ある制御演算手段の一部が変更された場合でも、インタフェース手段全体を変更する必要があり、本来変更する必要のないインタフェース手段の部分を作り直すことになってしまうという課題がある。本発明は、上記課題を解決し、組込みコントローラの再利用性を向上させることを目的とする。
【０００８】
また、入力値である外部信号の入力と同期したタスクが実行されると、入力値の同時性が保たれないという課題があったが、従来の車両用電子制御装置においては、格別な配慮がなされていない。本発明は、上記課題を解決し、入力値の同時性が保てるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、上記目的を達成する。
【００１０】
また上記課題を解決するため本発明では、外部からの入力信号を取り込みデータ化する信号入力部と、前記データ化された入力信号を処理し、外部に接続される車載機器を制御するための制御データを演算するプロセッサと、前記制御データを前記車載機器への制御信号として出力する信号出力部と、前記プロセッサに前記演算を実行させるための組み込みソフトウェアを記憶するメモリとを備える車両用制御装置であって、前記組み込みソフトウェアは、前記入力信号または他のソフト部品による制御演算の結果である制御データに基づいて演算を行う複数のソフト部品と前記ソフト部品と他のソフト部品との間の前記制御データの受け渡しを管理するインタフェースソフトと前記複数のソフト部品の実行順序を管理する制御基本ソフトウェアとを有するアプリケーションソフトウェアと、前記アプリケーションソフトウェアの起動を制御し、前記アプリケーションソフトウェアからの要求に応じて前記入力信号の読み出し及び前記制御信号の出力を行う基本ソフトウェアとを有し、前記制御基本ソフトウェアは前記入力信号同期して前記ソフト部品が実行されることを禁止する割り込み禁止処理を行うことを特徴とする車両用制御装置を提供する。
【発明の効果】
【００１１】
本発明によれば、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、組込みコントローラの再利用性が向上する。
【００１２】
また本発明によれば、外部信号に同期したタスク実行を禁止するので、車両用制御装置の入力値の同時性を保つことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の図。
【図２】実施例の車両用電子制御装置のシステム図。
【図３】実施例の分散組込みコントローラのシステム図。
【図４】組込みコントローラ用ソフトウェアの概要図。
【図５】アプリケーションソフトウェアの概要図。
【図６】タスク処理ソフトウェアのフローチャート。
【図７】トルクベース制御アプリケーションの構成図。
【図８】制御ソフト部品のＣソースコード。
【図９】インタフェースソフトのＣソースコード。
【図１０】トルクベース制御フレームワークの定義情報。
【図１１】トルクベース制御フレームワークのフローチャート。
【図１２】分散制御システムにおける入出力処理部のシステム図。
【図１３】組込みコントローラ用ソフトウェア開発プロセス図。
【図１４】組込みソフトウェア開発手段１。
【図１５】組込みソフトウェア開発手段２。
【図１６】組込みソフトウェア開発手段３。
【図１７】インタフェースソフト自動生成フローチャート。
【図１８】制御ソフト部品情報抽出フローチャート。
【図１９】インタフェースソフト生成フローチャート。
【図２０】組込みソフトウェアネットワーク配信図。
【図２１】組込みソフトウェアネットワーク配信サービス図。
【発明を実施するための形態】
【００１４】
以下に本発明の実施の一形態を図面と共に説明する。なお、本実施例では組込みコントローラの一例として車両制御コントローラを実施例として扱う。
【００１５】
まず、図１に本発明が実施されたアプリケーションソフトウェアの基本構造を示す。１Ａ，…，１Ｂ，１Ｃは制御変数の更新ロジックを記述した制御ソフト部品である。これは、本発明における制御演算手段に対応する。２Ａ，…，２Ｂ，２Ｃは制御ソフト部品に対応したインタフェースソフトである。これは、本発明におけるインタフェース手段に対応する。３は本アプリケーションで実行される基本ロジック、例えば変数の更新順序すなわち制御ソフト部品の実行順序を記述した制御基本ソフトウェアである。これは、本発明における制御基本処理手段に対応する。４は外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。これは、本発明における外部入力処理手段に対応する。５は外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。本発明における外部出力処理手段に対応する。６が組込みソフトウェアのタスク制御や割込み管理を行うオペレーションシステムをあらわしている。本発明における基本管理手段に対応する。
【００１６】
ソフト部品とインタフェースソフトはそれぞれ１Ａと２Ａ，１Ｂと２Ｂといったように対応付けられている。そのため、例えばソフト部品１Ｃが変更された場合にはインタフェースソフト２Ｃのみを変更すればよく、インタフェースソフト２Ａ，２Ｂは変更せずに用いる事ができる。すなわち図１の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。
【００１７】
なお、図１ではアプリケーションの一つの階層においてのみ表現しているが、本発明は組込みソフトウェアのある一つの階層に限定したものでは無く、あらゆる階層において実施する事ができる。たとえばソフト部品１Ａ自身が図１に示した構成を持つこともできる。この構成は、いわゆる階層化された組込みソフトウェア構造において有効である。
【００１８】
図２に、本発明を適用した車両を示す。この例では、車両７は、エンジン８と、エンジン８を制御する制御ユニット（ＥＣＵ）１０と、例えば、自動変速機（ＡＴ）９と、自動変速機９を制御する制御ユニット（ＥＣＵ）２０と、ドライバにより操作されるアクセルペダルＡを有する。またここで、制御ユニット（ＥＣＵ）２０は、自動変速機に関するものの他、スロットル制御のための制御ユニット等であっても良く、エンジンを制御するユニット以外の制御ユニットを示したものである。
【００１９】
図３に、車両用分散制御システムの基本構成を示す。
【００２０】
本車両用分散制御システムは、プロセッサ１３と、メモリ１２と、組込みソフトウェア１１と、データ受信装置１４と、データ送信装置１５と、エアフローセンサ等の入力をＡ／Ｄ変換して入力するアナログ入力４１と、クランク角度センサ等からのパルスを入力するデジタル入力４２と、周辺装置を駆動する為に電圧を出力するアナログ出力５１と、周辺装置を駆動するためにパルスを出力するデジタル出力５２とによって構成される制御ユニット（ＥＣＵ）１０と、前記制御ユニット（ＥＣＵ）１０と同様の構成を有する制御ユニット（ＥＣＵ）２０とで構成されている。
【００２１】
図４に、組込みソフトウェア１１の構成の一例を示す。図４に示すように、組込みソフトウェア１１はアプリケーションソフトウェア１１１と基本ソフトウェア１１２で構成されている。
【００２２】
基本ソフトウェア１１２は、リアルタイムオペレーションシステム（ＲＴＯＳ）１１２１と基本入出力システム（ＢＩＯＳ）１１２２とで構成されている。ＲＴＯＳ１１２１は、時間周期タスクの起動や外部入力に同期したタスクの起動を行い、割込み禁止処理や他のタスクの呼び出しなどのサービスをアプリケーションソフトウェア１１１に提供する。ＢＩＯＳ１１２２は、アプリケーションソフトウェア１１１からの要求を受けて、外部入力データ４の読み出しや、外部出力データ５の出力を実行する。
【００２３】
図４の構成にすることによって、組込みソフトウェアの中でハードウェアに依存する部分（ＢＩＯＳ）と、割込み信号処理やタイマー処理などのリアルタイム制御機能と、変速機の変速制御やエンジンの点火制御など制御対象に依存するアプリケーション部分とを分離する事ができる。例えばＣＰＵが変わった場合にはＢＩＯＳのみを変更すればよく、アプリケーションは流用する事ができるという利点がある。
【００２４】
図５に、アプリケーションソフトウェアの構成の一例を示す。アプリケーションソフトウェア１１１は例えば１０［ｍｓ］周期タスク１１１１のように一定周期で起動するタスクと、エンジン回転同期タスク１１１２のように外部信号に同期して起動するタスクと、バックグラウンドタスク１１１３のようにプロセッサが空き状態のときに実行されるタスクとで構成されている。
【００２５】
それぞれのタスクはタスク処理基本ソフトウェアと制御アプリケーションとで構成されている。例えば１０［ｍｓ］周期タスクは、１０［ｍｓ］タスク処理基本ソフトウェアと診断制御１１１１２と燃料補正制御１１１１３とトルクベース制御１１１１４とその他の制御で構成されている。図中の「…」は、制御ロジックが上記の３種のみには限らないことを示している。
【００２６】
図６に１０［ｍｓ］タスク処理基本ソフトウェアの１１１１１の動作を示す。
【００２７】
ＲＴＯＳ１１２１がＳ０において１０［ｍｓ］周期タスク１１１１の起動処理を行う。その結果、１０［ｍｓ］タスクフレームワーク１１１１１の処理が実行される。Ｓ１においてＢＩＯＳ１１２２に外部入力処理を要求し、エアフローセンサ等の入力値を更新するセンサの最新値を取得する。Ｓ２において診断制御１１１１２を実行する。その後いくつかの制御を実行し、Ｓ３において燃料補正制御１１１１３を実行する。Ｓ４においてトルクベース制御１１１１４を実行する。Ｓ５においてＢＩＯＳ１１２２に外部への信号の出力処理を要求し、処理を終了する。アプリケーションソフトウェアを図５，図６に示すような構成にすることによって、外部からの入力処理Ｓ１と、異なる目的の制御処理Ｓ２，Ｓ３，Ｓ４、外部への出力処理Ｓ５を同じタスクの中で処理する事が可能になる。
【００２８】
図７に、本発明が実施されたトルクベース制御アプリケーションソフトウェアの基本構造を示す。１Ｄは目標トルクの、１Ｅは変数Ａの、１Ｆはスロットル開度の制御変数の更新ロジックを記述した制御ソフト部品である。２Ｄ，…，２Ｅ，２Ｆはそれぞれ２Ｄ，…，２Ｅ，２Ｆの制御ソフト部品に対応したインタフェースソフトである。３Ａはトルクベース制御における変数の更新順序すなわち制御ソフト部品の実行順序を記述したトルクベース制御基本ソフトウェアである。４はＢＩＯＳ１１２２から得られる外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。５はＢＩＯＳ１１２２によって出力される外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。
【００２９】
図７に示す構成にすることによって、例えば目標トルクを演算するソフト部品１Ｄが変更された場合にはインタフェースソフト２Ｄのみを変更すればよく、インタフェースソフト２Ｅ，２Ｆは変更せずに用いる事ができる。すなわち図７の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。
【００３０】
図８に、図７に示した制御ソフト部品１Ｆの一例を示す。ここで、Ｃ１１はスロットル開度（以下ＴＶＯ）を更新するソフト部品１をＣ言語で記述した場合のヘッダファイル（TVO_Calculate.h）である。Ｃ１２は同様にＴＶＯを更新するソフト部品１をＣ言語で記述した場合のソースファイル（TVO_Calculate.c）である。
【００３１】
Ｃ１１は、ＴＶＯを更新する関数のプロトタイプ宣言を行っている。すなわち、関数の外部宣言であること（extern）と、関数の戻り値の型（void）と、関数名（TVO_Calculate）と、関数の入力値の型と変数名（unsigned short TargetTorque，…，unsigned short Variable_A）と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ（unsigned short TVO）を宣言している。なお、関数の引数が入力変数か出力変数なのかということは、変数名の先頭にポインタ引数であることを示す識別子（*  ）がついているか否かで判断している。
【００３２】
なお前記出力変数は本発明における組込みコントローラにおいて、制御演算手段によって計算される制御データに対応する。
【００３３】
Ｃ１２は、ＴＶＯを更新する関数を記述している。すなわち、関数の戻り値の型（void）と、関数名（TVO_CAlculate）と、関数の引数である入力値の型と変数名（unsigned short TargetTorque，…，unsigned short Variable_A）と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ（unsigned short TVO）とを定義して、ＴＶＯの更新方法（*ＴＶＯ＝TargetTorque*Ｋｔ＋Variable_A*Ｋａ）を記述している。なお、TargetTorqueおよびVariable_Aは変数であり、ＫｔおよびＫａは定数である。
【００３４】
図９に、図７に示すインタフェースソフト２Ｆの一例としてＣソースコードＣ２１，Ｃ２２，Ｃ２３を示す。これは、図８のＣ１１およびＣ１２で説明した制御ソフト部品に対応する。Ｃ２１は変数宣言を行うＣソースファイル（TVO.c）で、Ｃ２２は変数参照命令を定義するＣヘッダファイル（TVO.h）であり、Ｃ２３は変数更新命令を定義するＣヘッダファイル（TVO_Update.h）である。
【００３５】
Ｃ２１では、対応するソフト部品Ｃ１１，Ｃ１２の出力変数であるＴＶＯの変数宣言（unsigned short TVO）を行っている。
【００３６】
Ｃ２２では、他のインタフェースソフトがＣ２１で宣言した変数ＴＶＯを参照するために、変数の参照する命令の定義（＃define TVO_Get() TVO）と、ＴＶＯの外部変数宣言として変数の型と名前の宣言（extern unsigned short TVO）を行っている。Ｃ２３では、制御基本ソフトウェア３が変数ＴＶＯの更新を要求する際に実行する命令の定義を行っている。すなわち、入力となる変数を参照するための命令が記述されたＣヘッダファイルを読み込み（＃include“TVO.h”〜＃include“variable_A”）、変数を更新するための命令名を定義し（＃define TVO_Update()\）、実際に呼び出す制御ソフト部品Ｃ１２の関数名を記述し（TVO_Calculate…）、ＴＶＯを更新する関数の入力となる制御変数を参照するための命令を呼び出し（TargetTorque_Get()…variableA_Get()）、ＴＶＯを更新する関数の出力として変数ＴＶＯのアドレスを指定し（＆ＴＶＯ）している。
【００３７】
図９において、インタフェースソフトＣ２１〜Ｃ２３に対応するソフト部品Ｃ１１，Ｃ１２によって変数を更新するために呼び出される命令はTVO_Update()のみであるところに特徴がある。すなわち変数の更新を要求（TVO_Update()）すると、インタフェースソフトが変数を更新する関数の呼び出しに必要な入力値を収集し（TargetTorque_Get()…variableA_Get()）、出力となる変数を指定し（＆ＴＶＯ）、その後に変数を更新する関数を呼び出す（TVO_Calculate()）。
【００３８】
図９の構成とすることで、たとえば制御基本ソフトウェアから変数の更新を要求する場合、制御ソフト部品に記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で変数の更新が行えるようになる。また、制御ソフト部品から入出力変数の宣言や更新等の操作を分離することが可能になり、制御ソフト部品の独立性が向上する。
【００３９】
図１０に制御基本ソフトウェアの一例として、エンジン出力を制御するトルクベース制御の制御基本ソフトウェア（以下トルクベース制御フレームワーク）Ｃ３１を示す。
【００４０】
Ｃ３１では、図７のトルクベース制御基本制御部３Ａ内で実行する制御ソフト部品をＣ３１１で定義し、対応するインタフェースソフトが定義する情報を読み込んでいる。また、制御基本ソフトウェア３内部で同時性が要求される変数の定義をＣ３１２において実行する。さらに、制御基本ソフトウェアで実行する入力処理・出力処理・ＯＳサービス・ソフト部品の実行順序をＣ３１３において定義する。
【００４１】
図１１に、トルクベース制御基本制御部３Ａの実行処理を示す。制御基本ソフトウェア３の実行順序は、図１０のＣ３１３において定義されている。まずＳ３１において割込み禁止処理（ＯＳサービス）を呼び出し、外部信号に同期したタスク実行を禁止して入力値の同時性が保てるようにする。Ｓ３２において外部入力データ４からエンジン回転数を読み込む。Ｓ３３において外部入力データ４からアクセル開度を読み込む。Ｓ３４において割込み禁止解除処理（ＯＳサービス）を呼び出す。Ｓ３５において、目標トルクを示す変数の更新要求を行う（ソフト部品実行）。Ｓ３６において、目標スロットル開度を示す変数の更新要求を行う（ソフト部品実行）。Ｓ３７において、目標スロットル開度を外部の電子制御スロットルへ指示し（外部出力処理）、処理を終了する。
【００４２】
制御基本ソフトウェアを図１０，図１１に示すような構成にすることによって、以下の利点がある。組込みソフトウェア中で変数の計算を行う部分すなわち図７の制御ソフト部品１Ｄ，…，１Ｅ，１Ｆは、制御ロジックのデバッグや時定数など制御特性の調整に対応するために、変更が頻繁に行われる部分である。その一方で、変数の更新順序などを定めた部分すなわち図１０，図１１に示す制御基本ソフトウェアの部分のように、比較的変更が少ない部分も存在する。制御基本ソフトウェアを図１０，図１１に示すような構成にすることによって、変更が多い部分と変更が少ない部分とを分離する事ができる。そのため、制御基本ソフトウェア部分の再利用性が向上するという利点がある。
【００４３】
図１２はＢＩＯＳインタフェースソフトの構成の一例を示す。１１３２１はエアフローセンサ入力に対応するＢＩＯＳインタフェースソフト、１１３２２はクランク角度入力値に対応するＢＩＯＳインタフェースソフト、１１３２３は燃料噴射量に対応するＢＩＯＳインタフェースソフト、１１３２４は目標スロットル開度に対応するＢＩＯＳインタフェースソフトである。なお、ＢＩＯＳインタフェースソフトの構成は、図９に示したインタフェースソフトの構成と同様である。ＢＩＯＳインタフェースソフトを図１２に示した構成にすることによって、たとえば制御基本ソフトウェアから外部入力値の更新を要求する場合、ＢＩＯＳに記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で外部入力値の更新が行えるようになる。外部出力に関しても同様である。また、ＢＩＯＳから入出力変数の宣言や更新等の操作を分離することが可能になり、ＢＩＯＳの独立性が向上する。
【００４４】
図１３に、組み込みソフトウェアの開発プロセスを示す。図１３中におけるツールとは、プログラム，ソフトウェアおよび装置を含むものに対応するものである。制御ロジック設計ツール６１によって制御モデル６２を構築する。制御モデル６２をもとに組込みソフトウェア開発ツール６３によって組込みソフトウェアソースコード６４を作成する。さらにソースコードコンパイルツール６５を用いて組込みソフトウェアのバイナリファイル６６を作成し、ソフトウェア書込みツール６７を用いて制御ユニット（ＥＣＵ）１０に組込みソフトウェアを書込む。
【００４５】
以下、図１４，図１５，図１６にソフトウェア開発ツール６３の例を示す。
【００４６】
図１４に組込みソフトウェア開発ツール６３の一例として組込みソフトウェア開発ツール６３Ａを示す。制御モデル６２からソフト部品生成ツール６３１Ａによってソフト部品１を生成する。インタフェースソフト生成ツール６３２Ａは生成されたソフト部品１を参照して対応するインタフェースソフト２を生成する。
【００４７】
図１５に組込みソフトウェア開発ツール６３の一例として組込みソフトウェア開発ツール６３Ｂを示す。制御モデル６２からソフト部品生成ツール６３１Ｂによってソフト部品１を生成する。インタフェースソフト生成ツール６３２Ｂはソフト部品生成ツール６３１Ｂからインタフェースソフト生成に必要な情報を受け取り、ソフト部品１に対応するインタフェースソフト２を生成する。
【００４８】
図１６に組込みソフトウェア開発ツール６３の一例として組込みソフトウェア開発ツール６３Ｃを示す。制御モデル６２からソフト部品生成ツール６３１Ａによってソフト部品１を生成する。インタフェースソフト生成ツール６３２Ａは制御モデル６２を参照して対応するインタフェースソフト２を生成する。
【００４９】
図１４，図１５，図１６に示す組込みソフトウェア開発ツールの構成をとることによって、制御モデルから組込みソフトウェアのためのソフト部品およびインタフェースソフトウェアを自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。
【００５０】
続いて、図１７，図１８，図１９においてインタフェースソフトの自動生成の具体的な手順を示す。
【００５１】
図１７に、インタフェースソフト生成手段６３２の処理を示す。Ｓ４１において制御ソフト部品の情報を抽出し、Ｓ４２においてインタフェースソフトを生成する。Ｓ４１の詳細な内容は図１８に、Ｓ４２の詳細な内容は図１９に示す。
【００５２】
図１８に、図８に示した制御ソフト部品を例に制御ソフト部品情報抽出処理Ｓ４１の詳細を示す。まずＳ４１１においてファイル名を抽出する。すなわち、図８に示したＣ１１およびＣ１２のファイル名「TVO_Calculate.c」，「TVO_Calculate.h」を抽出する。次に、Ｓ４１２において関数名を抽出する。すなわち図８に示したＣ１１に記載された関数名「TVO_Calculate」を抽出する。Ｓ４１３において入出力変数の数を抽出する。すなわち図８に示したＣ１２の関数「TVO_Calculate」の入出力変数をカウントする。Ｓ４１４において、Ｓ４１３においてカウントした変数の数に基づいて入出力変数名を抽出する。すなわち、図８に示したＣ１２における「TargetTorque」や「variable_A」を入力変数として抽出し、「ＴＶＯ」を出力変数として抽出する。なお、出力変数は変数名先頭にポインタ引数であることを示す「＆」がついていることにより識別する。Ｓ４１５において入出力変数の型を抽出する。すなわち、図８に示したＣ１２における「TargetTorque」の変数型「unsigned short」などである。
【００５３】
前記入力変数は本発明における組込みコントローラ開発ツールにおいて、参照データに対応する。前記出力変数は本発明における組込みコントローラ開発ツールにおいて、制御データに対応する。
【００５４】
図１５に、インタフェースソフト生成処理Ｓ４２の詳細を示す。図９に示したインタフェースソフトの生成を例に説明する。Ｓ４２１において、Ｓ４１１で抽出したソフト部品のファイル名から、インタフェースソフトのファイルを生成する。すなわち、「TVO_Calculate.c」，「TVO_Calculate.h」から、区切り文字として組込みコントローラ内で意義する「＿」以降の文字を消すことにより「ＴＶＯ」というソフト部品名を得る。その上でソフト部品に対応するインタフェースソフトとして、「抽出したインタフェースソフトの名前」＋「.c」というファイルと、「抽出したインタフェースソフトの名前」＋「.h」というファイルと、「抽出したインタフェースソフトの名前」＋「_Update.h」というファイルを生成する。すなわち、図９に示した「TVO.c」「TVO.h」「TVO_Update.h」である。次にＳ４２２において、Ｓ４１４で抽出したソフト部品の出力変数の名前とＳ４１５で抽出したソフト部品の出力変数の型情報を持つソフト部品の出力となる変数の宣言部を「抽出したインタフェースソフトの名前」＋「.c」というファイル内に生成する。すなわち、抽出した出力変数の型で、抽出した出力変数の変数名の変数をメモリ上に割り当てるための命令をソースファイルに出力する。図９に示したＣ２１における「unsigned shortTVO；」である。この場合、「unsigned Short」の部分が出力変数の型で、「ＴＶＯ」の部分が出力変数の変数名である。Ｓ４１４で抽出したソフト部品の出力変数の名前をもとに、Ｓ４２３においてソフト部品の出力変数の参照命令を生成する。すなわち、図９に示したＣ２２における「＃define TVO_Get() TVO」である。これは、「出力変数の変数名」＋「_Get()」という名前のマクロとして定義され、その実体は出力変数名になる。そのため、ソースコードにマクロを記述することによりプリプロセッサを用いてソースコードを変換すると、ソースコード内で参照用マクロは参照先の変数に置きかえられる。Ｓ４２４において、Ｓ４１４で抽出したソフト部品の入出力変数の名前とＳ４１５で抽出したソフト部品の入力変数の型情報をもとに、出力変数の更新命令を生成する。すなわち、図９に示したＣ２３である。「出力変数名」＋「_Update()」というマクロを出力変数の更新命令として定義する。そのマクロの実体はＳ４１２で抽出した出力変数の演算関数「TVO_Calculate」に割り当てられ、関数の引数にはＳ４１４で抽出した入力変数「Target Torque」や「variable_A」の参照命令「TargetTorque_Get()」や「variableA_Get()」と出力変数「ＴＶＯ」のアドレスを示すポインタ「＆ＴＶＯ」を割り当てる。
【００５５】
図１７，図１８，図１９に示した構成を取ることによって、インタフェースソフト２を、制御ソフト部品１や制御モデル６２から自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。
【００５６】
図２０に、組込みソフトウェアのネットワーク配信の概要図を示す。図２０ではソフト部品配信の例を示す。ネットワーク７１に、ソフト部品サーバ７３が接続されている。ソフト部品サーバ７３はクライアントＰＣ７２をネットワーク７１を介して接続され、クライアントＰＣ７２からの要求に応じてソフト部品１を送信する。クライアントＰＣ７２は受信したソフト部品１を電子制御ユニット（ＥＣＵ）１０Ｂに書込む事ができる。また、ＥＣＵ１０Ａ自身にネットワーク接続機能を持たせることにより、自分自身でネットワーク７１を経由してソフト部品サーバ７３に接続し、ソフト部品を更新することができる。
【００５７】
本実施例で示した組込みソフトウェアをネットワーク配信することによって、以下の利点がある。本発明の組込みソフトウェアでは、制御ソフト部品１が変更された場合は対応するインタフェースソフト２のみを変更すれば良く、制御基本ソフトウェアやタスク処理基本ソフトウェアなどの基本部分は変更する必要がない。そのため、サービス工場においてソフトウェアの変更をすることが容易になるという利点がある。また送信するデータ量も、全体を送信する場合に比べてソフト部品のみを送信する場合には少なくて済むという利点がある。
【００５８】
図２１に、組込みソフトウェア配信サービスの一例の概要を示す。クライアントＰＣ７２はネットワーク７１を介して制御ソフト部品販売ホームページ７４に接続する。制御ソフト部品販売ホームページ７４にてダウンロードする制御ソフト部品１を選択したのち、料金決済システム７５に接続し購入料金の決済を行う。その後、制御ソフト部品サーバ７３から制御ソフト部品１をダウンロードし、制御ユニット（ＥＣＵ）１０に書込む。
【００５９】
図２１で示した構成にすることによって、以下の利点がある。課金システムとホームページによる認証を行うことによって、サービス工場だけでなく一般のユーザーにとっても組込みソフトウェアの書込みが可能になる。すなわち、車両の走行モードや、自動変速機の変速パターン、さらには家電製品の組込みコントローラの組込みソフトウェアをネットワークで購入することによって、自分の好みの組込みコントローラを作る事ができるという利点がある。
【００６０】
制御演算手段に組込みコントローラ内で用いる変数の宣言や入力処理および更新等の操作をさせてしまうと、制御演算手段に演算ロジック以外の機能が混在する。たとえば、演算結果を出力・保存する変数を組込みコントローラが持つメモリの特定のアドレスに割り当てる処理や、演算を行う際に他の制御演算手段の出力結果である変数を参照する処理や、制御基本手段が実行するための実行インタフェースの生成や、演算結果を出力する変数の参照処理などである。これは、演算ロジックの変更に伴い演算ロジック以外の機能変更及び検証が必要となることを意味し、組込みコントローラ用ソフトウェア開発に伴う工数が増大するという課題が生じる。本発明では、組込みコントローラにおいて、前記インタフェース手段が有する前記出力変数を他のインタフェース手段が参照する出力変数参照機能を、前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記インタフェース手段に対応する前記制御演算手段が計算を行う際に用いる入力変数を、他のインタフェース手段もしくは自分自身の有する出力変数参照機能を用いるなどして収集する入力変数収集機能を前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記制御基本処理手段などの命令で前記制御演算手段が計算を行う際に、前記インタフェース手段が前記入力変数収集機能により収集した前記入力変数を前記制御演算手段が参照できる状態にして、前記制御演算手段の計算結果が保存される出力変数を指定して、前記制御演算手段の演算処理実行を命令する出力変数更新機能を前記インタフェース手段に設けることにより、上記課題を解決する。
【００６１】
組込みコントローラ用ソフトウェアは、頻繁に変更される部分と半永久的に再利用される部分とに分類することができる。例えば、変数の演算ロジックのように変更されることが多い部分と、変数の更新順序のように変更されることが少ない部分とである。これが一体のプログラムとなっていると、組込みコントローラ用ソフトウェア内の変数の演算ロジックの変更であるにもかかわらず、変更する必要のない変数の更新順序の部分まで変更する必要があるという課題がある。本発明では、組込みコントローラにおいて、前記制御基本処理手段が、実行を命令する制御演算手段の種類と、前記制御演算手段と前記外部入力処理手段と前記外部出力処理手段と前記基本管理手段の実行順序とを定義し、前記制御基本処理手段が、前記外部入力処理手段と前記制御演算手段と前記外部出力処理手段と前記基本管理手段の実行を命令することにより、上記課題を解決する。
【００６２】
一つの制御演算手段が複数の変数の演算を行う場合、ある変数の演算方法を変更するためには該当する制御演算手段を変更する必要がある。そのため、演算手段が変更されない変数に関しても、その演算を行う制御演算手段が変更されてしまうという課題がある。本発明では、組込みコントローラにおいて、前記制御演算手段の計算結果である、他の制御演算手段や外部出力手段が参照するための変数は、制御演算手段１つにつき１つとすることにより、上記課題を解決する。
【００６３】
組込みコントローラのソフトウェアを変更する場合、ソフトウェアの一部のバージョンアップであるにもかかわらず、ソフトウェア全体をＣＤ−ＲＯＭなどの記録媒体で配布する必要があった。そのため、ソフトウェアの配布に時間がかかるという課題や、ＣＤ等の媒体が必要になるために廃棄物が増大するという課題がある。本発明では、組込みコントローラ配信サービスにおいて、前記制御演算手段を保管および送信する制御演算手段サーバ手段と制御演算手段の販売を行う制御演算手段販売手段とをネットワークで接続することにより、上記課題を解決する。
【００６４】
車両制御に関しては、排気規制およびＯＢＤ規制などの法的規制，Ｘ−by−Wireおよびハイブリッドシステムに代表される制御システムのエレクトロニクス化を背景に、組込みコントローラ用制御ソフトウェアの高機能化・大型化が進んでいる。また、高機能化・大型化する制御ソフトウェアを効率良く設計・作成しなければならないという課題がある。本発明では、前記組込みコントローラが車両に搭載されてエンジンや変速機などの制御を行うことにより、上記課題を解決する。
【符号の説明】
【００６５】
１…制御ソフト部品、１Ａ…ソフト部品Ａ、１Ｂ…ソフト部品Ｂ、１Ｃ…ソフト部品Ｃ、１Ｄ…目標トルクを示す変数を演算するソフト部品Ｄ、１Ｅ…変数Ａを演算するソフト部品Ｅ、１Ｆ…スロットル開度を示す変数を演算するソフト部品Ｆ、２…インタフェースソフト、２Ａ…ソフト部品Ａに対応するインタフェースソフト、２Ｂ…ソフト部品Ｂに対応するインタフェースソフト、２Ｃ…ソフト部品Ｃに対応するインタフェースソフト、２Ｄ…ソフト部品Ｄに対応するインタフェースソフト、２Ｅ…ソフト部品Ｅに対応するインタフェースソフト、２Ｆ…ソフト部品Ｆに対応するインタフェースソフト、３…制御基本ソフトウェア、３Ａ…トルクベース制御の基本制御部、４…外部入力データ、５…外部出力データ、６…組込みコントローラオペレーションシステム、７…車両、８…エンジン、９…自動変速機、Ａ…アクセルペダル、１０，２０…制御ユニット（ＥＣＵ）。
【図１】
2011150739.tif 000003
【図２】
2011150739.tif 000004
【図３】
2011150739.tif 000005
【図４】
2011150739.tif 000006
【図５】
2011150739.tif 000007
【図６】
2011150739.tif 000008
【図７】
2011150739.tif 000009
【図８】
2011150739.tif 000010
【図９】
2011150739.tif 000011
【図１０】
2011150739.tif 000012
【図１１】
2011150739.tif 000013
【図１２】
2011150739.tif 000014
【図１３】
2011150739.tif 000015
【図１４】
2011150739.tif 000016
【図１５】
2011150739.tif 000017
【図１６】
2011150739.tif 000018
【図１７】
2011150739.tif 000019
【図１８】
2011150739.tif 000020
【図１９】
2011150739.tif 000021
【図２０】
2011150739.tif 000022
【図２１】
2011150739.tif 000023