JP3912278B2 - 組込みコントローラ及び組込みコントローラ開発ツール - Google Patents

組込みコントローラ及び組込みコントローラ開発ツール Download PDF

Info

Publication number
JP3912278B2
JP3912278B2 JP2002369167A JP2002369167A JP3912278B2 JP 3912278 B2 JP3912278 B2 JP 3912278B2 JP 2002369167 A JP2002369167 A JP 2002369167A JP 2002369167 A JP2002369167 A JP 2002369167A JP 3912278 B2 JP3912278 B2 JP 3912278B2
Authority
JP
Japan
Prior art keywords
software
control
interface
software component
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002369167A
Other languages
English (en)
Other versions
JP2004199533A (ja
Inventor
健太郎 吉村
泰三 宮崎
孝典 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002369167A priority Critical patent/JP3912278B2/ja
Priority to US10/739,222 priority patent/US20040133879A1/en
Priority to DE10360035.3A priority patent/DE10360035B4/de
Publication of JP2004199533A publication Critical patent/JP2004199533A/ja
Application granted granted Critical
Publication of JP3912278B2 publication Critical patent/JP3912278B2/ja
Priority to US12/194,948 priority patent/US8347282B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Description

【0001】
【発明の属する技術分野】
本発明は、組込みコントローラ及び組込みコントローラ開発ツールに関する。
【0002】
【従来の技術】
従来より組込みソフトウェア,組込みコントローラおよび組込みソフトウェア開発ツールとして、プログラム作成者からの入力情報に従って、基本プログラムのインタフェースプログラムを自動的に生成する方法がある(例えば、特許文献1参照)。
【0003】
また従来、組込みソフトウェアを作成するために制御系システム設計支援ソフトウェア、引用例によればMATLABおよびSimulinkを用いて、ソースコードを自動生成する方法がある(例えば、非特許文献1参照)。
【0004】
【特許文献1】
特開2002−229791号公報(第4頁,図1(b))
【非特許文献1】
サイバネットシステム株式会社刊、「MATLAB Expo2002 モデルベース制御系設計カンファレンス資料」、103頁〜126頁
【0005】
【発明が解決しようとする課題】
例えば車両用電子制御装置においては、組込みコントローラ用ソフトウェアの開発効率を向上させるための組込みコントローラ開発ツールおよび開発プロセスが研究されている。開発効率向上のためには、組込みコントローラ用ソフトウェアのソースコード自動生成化および再利用性向上が要求されている。
【0006】
従来の組込みコントローラでは、インタフェース手段が基本管理手段の一部である(例えば、特許文献1参照)。そのため、複数ある制御演算手段の一部が変更された場合でも、インタフェース手段全体を変更する必要があり、本来変更する必要のないインタフェース手段の部分を作り直すことになってしまうという課題がある。本発明は、上記課題を解決し、組込みコントローラの再利用性を向上させることを目的とする。
【0007】
従来、MATLABおよびSimulinkを用いて制御演算手段のソースコードを自動生成する方法がある(例えば、非特許文献1参照)。上記の方法で制御演算手段を生成したとしても、自動生成された制御演算手段と制御演算手段とのデータの受け渡しや組込みコントローラ全体で用いる変数の管理といった統合化作業の際に、手作業が必要であった。人間によりインタフェース手段のソースコードを記述する場合、ソースコードの記述に時間がかかるという課題がある。本発明は、上記課題を解決し組込みコントローラの生産性を向上させることを目的とする。
【0008】
【課題を解決するための手段】
本発明では、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、上記目的を達成する。
【0009】
本発明では、組込みコントローラ開発ツールにおいて、前記制御演算手段がプログラミング言語のソースコードで関数として記述されて、センサ計測値や他の制御演算手段の計算結果などの計算に用いる変数は関数の引数で、計算結果である変数は関数の戻り値またはメモリ上のアドレスを指定した関数の引数であることと、前記インタフェース手段がプログラミング言語のソースコードで記述されることとを前提として、前記制御演算手段のソースコードから特定の情報を抽出する制御演算手段解析手段と、制御演算手段解析手段の解析結果に基づいて制御演算手段に対応する前記インタフェース手段のソースコードを生成するインタフェース手段生成手段を設けることにより、上記目的を達成する。
【0010】
【発明の実施の形態】
以下に本発明の実施の一形態を図面と共に説明する。なお、本実施例では組込みコントローラの一例として車両制御コントローラを実施例として扱う。
【0011】
まず、図1に本発明が実施されたアプリケーションソフトウェアの基本構造を示す。1A,…,1B,1Cは制御変数の更新ロジックを記述した制御ソフト部品である。これは、本発明における制御演算手段に対応する。2A,…,2B,2Cは制御ソフト部品に対応したインタフェースソフトである。これは、本発明におけるインタフェース手段に対応する。3は本アプリケーションで実行される基本ロジック、例えば変数の更新順序すなわち制御ソフト部品の実行順序を記述した制御基本ソフトウェアである。これは、本発明における制御基本処理手段に対応する。4は外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。これは、本発明における外部入力処理手段に対応する。5は外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。本発明における外部出力処理手段に対応する。6が組込みソフトウェアのタスク制御や割込み管理を行うオペレーションシステムをあらわしている。本発明における基本管理手段に対応する。
【0012】
ソフト部品とインタフェースソフトはそれぞれ1Aと2A,1Bと2Bといったように対応付けられている。そのため、例えばソフト部品1Cが変更された場合にはインタフェースソフト2Cのみを変更すればよく、インタフェースソフト2A,2Bは変更せずに用いる事ができる。すなわち図1の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。
【0013】
なお、図1ではアプリケーションの一つの階層においてのみ表現しているが、本発明は組込みソフトウェアのある一つの階層に限定したものでは無く、あらゆる階層において実施する事ができる。たとえばソフト部品1A自身が図1に示した構成を持つこともできる。この構成は、いわゆる階層化された組込みソフトウェア構造において有効である。
【0014】
図2に、本発明を適用した車両を示す。この例では、車両7は、エンジン8と、エンジン8を制御する制御ユニット(ECU)10と、例えば、自動変速機(AT)9と、自動変速機9を制御する制御ユニット(ECU)20と、ドライバにより操作されるアクセルペダルAを有する。またここで、制御ユニット(ECU)20は、自動変速機に関するものの他、スロットル制御のための制御ユニット等であっても良く、エンジンを制御するユニット以外の制御ユニットを示したものである。
【0015】
図3に、車両用分散制御システムの基本構成を示す。
【0016】
本車両用分散制御システムは、
プロセッサ13と、メモリ12と、組込みソフトウェア11と、データ受信装置14と、データ送信装置15と、エアフローセンサ等の入力をA/D変換して入力するアナログ入力41と、クランク角度センサ等からのパルスを入力するデジタル入力42と、周辺装置を駆動する為に電圧を出力するアナログ出力51と、周辺装置を駆動するためにパルスを出力するデジタル出力52とによって構成される制御ユニット(ECU)10と、
前記制御ユニット(ECU)10と同様の構成を有する制御ユニット(ECU)20とで構成されている。
【0017】
図4に、組込みソフトウェア11の構成の一例を示す。図4に示すように、組込みソフトウェア11はアプリケーションソフトウェア111と基本ソフトウェア112で構成されている。
【0018】
基本ソフトウェア112は、リアルタイムオペレーションシステム(RTOS)1121と基本入出力システム(BIOS)1122とで構成されている。RTOS1121は、時間周期タスクの起動や外部入力に同期したタスクの起動を行い、割込み禁止処理や他のタスクの呼び出しなどのサービスをアプリケーションソフトウェア111に提供する。BIOS1122は、アプリケーションソフトウェア111からの要求を受けて、外部入力データ4の読み出しや、外部出力データ5の出力を実行する。
【0019】
図4の構成にすることによって、組込みソフトウェアの中でハードウェアに依存する部分(BIOS)と、割込み信号処理やタイマー処理などのリアルタイム制御機能と、変速機の変速制御やエンジンの点火制御など制御対象に依存するアプリケーション部分とを分離する事ができる。例えばCPUが変わった場合にはBIOSのみを変更すればよく、アプリケーションは流用する事ができるという利点がある。
【0020】
図5に、アプリケーションソフトウェアの構成の一例を示す。アプリケーションソフトウェア111は例えば10[ms]周期タスク1111のように一定周期で起動するタスクと、エンジン回転同期タスク1112のように外部信号に同期して起動するタスクと、バックグラウンドタスク1113のようにプロセッサが空き状態のときに実行されるタスクとで構成されている。
【0021】
それぞれのタスクはタスク処理基本ソフトウェアと制御アプリケーションとで構成されている。例えば10[ms]周期タスクは、10[ms]タスク処理基本ソフトウェアと診断制御11112と燃料補正制御11113とトルクベース制御11114とその他の制御で構成されている。図中の「…」は、制御ロジックが上記の3種のみには限らないことを示している。
【0022】
図6に10[ms]タスク処理基本ソフトウェアの11111の動作を示す。
【0023】
RTOS1121がS0において10[ms]周期タスク1111の起動処理を行う。その結果、10[ms]タスクフレームワーク11111の処理が実行される。S1においてBIOS1122に外部入力処理を要求し、エアフローセンサ等の入力値を更新するセンサの最新値を取得する。S2において診断制御11112を実行する。その後いくつかの制御を実行し、S3において燃料補正制御11113を実行する。S4においてトルクベース制御11114を実行する。S5においてBIOS1122に外部への信号の出力処理を要求し、処理を終了する。アプリケーションソフトウェアを図5,図6に示すような構成にすることによって、外部からの入力処理S1と、異なる目的の制御処理S2,S3,S4、外部への出力処理S5を同じタスクの中で処理する事が可能になる。
【0024】
図7に、本発明が実施されたトルクベース制御アプリケーションソフトウェアの基本構造を示す。1Dは目標トルクの、1Eは変数Aの、1Fはスロットル開度の制御変数の更新ロジックを記述した制御ソフト部品である。2D,…,2E,2Fはそれぞれ2D,…,2E,2Fの制御ソフト部品に対応したインタフェースソフトである。3Aはトルクベース制御における変数の更新順序すなわち制御ソフト部品の実行順序を記述したトルクベース制御基本ソフトウェアである。4はBIOS1122から得られる外部入力データであって、例えばハードウェアの持つセンサで計測したり他のアプリケーションおよびコントローラと通信することによって、前記外部情報を得る。5はBIOS1122によって出力される外部への情報の出力であって、ハードウェアの持つアクチュエータを駆動したり他のアプリケーションおよびコントローラと通信することによって、前記外部出力を実行する。
【0025】
図7に示す構成にすることによって、例えば目標トルクを演算するソフト部品1Dが変更された場合にはインタフェースソフト2Dのみを変更すればよく、インタフェースソフト2E,2Fは変更せずに用いる事ができる。すなわち図7の構成とすることによって、インタフェースソフトを有する組込みソフトウェアの再利用性が向上するという効果がある。
【0026】
図8に、図7に示した制御ソフト部品1Fの一例を示す。ここで、C11はスロットル開度(以下TVO)を更新するソフト部品1をC言語で記述した場合のヘッダファイル(TVO_Calculate.h)である。C12は同様にTVOを更新するソフト部品1をC言語で記述した場合のソースファイル(TVO_Calculate.c)である。
【0027】
C11は、TVOを更新する関数のプロトタイプ宣言を行っている。すなわち、関数の外部宣言であること(extern)と、関数の戻り値の型(void)と、関数名(TVO_Calculate)と、関数の入力値の型と変数名(unsigned short TargetTorque,…,unsigned short Variable_A)と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ(unsigned short TVO)を宣言している。なお、関数の引数が入力変数か出力変数なのかということは、変数名の先頭にポインタ引数であることを示す識別子(*)がついているか否かで判断している。
【0028】
なお前記出力変数は本発明における組込みコントローラにおいて、制御演算手段によって計算される制御データに対応する。
【0029】
C12は、TVOを更新する関数を記述している。すなわち、関数の戻り値の型(void)と、関数名(TVO_CAlculate)と、関数の引数である入力値の型と変数名(unsigned short TargetTorque,…,unsigned short Variable_A)と、関数が更新する変数つまりソフト部品の出力値の型と変数名のポインタ(unsigned short TVO)とを定義して、TVOの更新方法(*TVO=TargetTorque*Kt+Variable_A*Ka)を記述している。なお、TargetTorqueおよびVariable_Aは変数であり、KtおよびKaは定数である。
【0030】
図9に、図7に示すインタフェースソフト2Fの一例としてCソースコード
C21,C22,C23を示す。これは、図8のC11およびC12で説明した制御ソフト部品に対応する。C21は変数宣言を行うCソースファイル(TVO.c)で、C22は変数参照命令を定義するCヘッダファイル(TVO.h)であり、C23は変数更新命令を定義するCヘッダファイル(TVO_Update.h)である。
【0031】
C21では、対応するソフト部品C11,C12の出力変数であるTVOの変数宣言(unsigned short TVO)を行っている。
【0032】
C22では、他のインタフェースソフトがC21で宣言した変数TVOを参照するために、変数の参照する命令の定義(#define TVO_Get() TVO)と、TVOの外部変数宣言として変数の型と名前の宣言(extern unsigned short TVO)を行っている。C23では、制御基本ソフトウェア3が変数TVOの更新を要求する際に実行する命令の定義を行っている。すなわち、入力となる変数を参照するための命令が記述されたCヘッダファイルを読み込み(#include“TVO.h”〜#include“variable_A”)、変数を更新するための命令名を定義し(#define TVO_Update()\)、実際に呼び出す制御ソフト部品C12の関数名を記述し(TVO_Calculate…)、TVOを更新する関数の入力となる制御変数を参照するための命令を呼び出し(TargetTorque_Get()…variableA_Get())、TVOを更新する関数の出力として変数TVOのアドレスを指定し(&TVO)している。
【0033】
図9において、インタフェースソフトC21〜C23に対応するソフト部品
C11,C12によって変数を更新するために呼び出される命令はTVO_Update()のみであるところに特徴がある。すなわち変数の更新を要求(TVO_Update())すると、インタフェースソフトが変数を更新する関数の呼び出しに必要な入力値を収集し(TargetTorque_Get()…variableA_Get())、出力となる変数を指定し
(&TVO)、その後に変数を更新する関数を呼び出す(TVO_Calculate())。
【0034】
図9の構成とすることで、たとえば制御基本ソフトウェアから変数の更新を要求する場合、制御ソフト部品に記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で変数の更新が行えるようになる。また、制御ソフト部品から入出力変数の宣言や更新等の操作を分離することが可能になり、制御ソフト部品の独立性が向上する。
【0035】
図10に制御基本ソフトウェアの一例として、エンジン出力を制御するトルクベース制御の制御基本ソフトウェア(以下トルクベース制御フレームワーク)C31を示す。
【0036】
C31では、図7のトルクベース制御基本制御部3A内で実行する制御ソフト部品をC311で定義し、対応するインタフェースソフトが定義する情報を読み込んでいる。また、制御基本ソフトウェア3内部で同時性が要求される変数の定義をC312において実行する。さらに、制御基本ソフトウェアで実行する入力処理・出力処理・OSサービス・ソフト部品の実行順序をC313において定義する。
【0037】
図11に、トルクベース制御基本制御部3Aの実行処理を示す。制御基本ソフトウェア3の実行順序は、図10のC313において定義されている。まずS31において割込み禁止処理(OSサービス)を呼び出し、外部信号に同期したタスク実行を禁止して入力値の同時性が保てるようにする。S32において外部入力データ4からエンジン回転数を読み込む。S33において外部入力データ4からアクセル開度を読み込む。S34において割込み禁止解除処理(OSサービス)を呼び出す。S35において、目標トルクを示す変数の更新要求を行う(ソフト部品実行)。S36において、目標スロットル開度を示す変数の更新要求を行う(ソフト部品実行)。S37において、目標スロットル開度を外部の電子制御スロットルへ指示し(外部出力処理)、処理を終了する。
【0038】
制御基本ソフトウェアを図10,図11に示すような構成にすることによって、以下の利点がある。組込みソフトウェア中で変数の計算を行う部分すなわち図7の制御ソフト部品1D,…,1E,1Fは、制御ロジックのデバッグや時定数など制御特性の調整に対応するために、変更が頻繁に行われる部分である。その一方で、変数の更新順序などを定めた部分すなわち図10,図11に示す制御基本ソフトウェアの部分のように、比較的変更が少ない部分も存在する。制御基本ソフトウェアを図10,図11に示すような構成にすることによって、変更が多い部分と変更が少ない部分とを分離する事ができる。そのため、制御基本ソフトウェア部分の再利用性が向上するという利点がある。
【0039】
図12はBIOSインタフェースソフトの構成の一例を示す。11321はエアフローセンサ入力に対応するBIOSインタフェースソフト、11322はクランク角度入力値に対応するBIOSインタフェースソフト、11323は燃料噴射量に対応するBIOSインタフェースソフト、11324は目標スロットル開度に対応するBIOSインタフェースソフトである。なお、BIOSインタフェースソフトの構成は、図9に示したインタフェースソフトの構成と同様である。BIOSインタフェースソフトを図12に示した構成にすることによって、たとえば制御基本ソフトウェアから外部入力値の更新を要求する場合、BIOSに記述された関数の入力値の数や型および変数名を全く意識する必要無く、共通の命令形式で外部入力値の更新が行えるようになる。外部出力に関しても同様である。また、BIOSから入出力変数の宣言や更新等の操作を分離することが可能になり、BIOSの独立性が向上する。
【0040】
図13に、組み込みソフトウェアの開発プロセスを示す。図13中におけるツールとは、プログラム,ソフトウェアおよび装置を含むものに対応するものである。制御ロジック設計ツール61によって制御モデル62を構築する。制御モデル62をもとに組込みソフトウェア開発ツール63によって組込みソフトウェアソースコード64を作成する。さらにソースコードコンパイルツール65を用いて組込みソフトウェアのバイナリファイル66を作成し、ソフトウェア書込みツール67を用いて制御ユニット(ECU)10に組込みソフトウェアを書込む。
【0041】
以下、図14,図15,図16にソフトウェア開発ツール63の例を示す。
【0042】
図14に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Aを示す。制御モデル62からソフト部品生成ツール631Aによってソフト部品1を生成する。インタフェースソフト生成ツール632Aは生成されたソフト部品1を参照して対応するインタフェースソフト2を生成する。
【0043】
図15に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Bを示す。制御モデル62からソフト部品生成ツール631Bによってソフト部品1を生成する。インタフェースソフト生成ツール632Bはソフト部品生成ツール631Bからインタフェースソフト生成に必要な情報を受け取り、ソフト部品1に対応するインタフェースソフト2を生成する。
【0044】
図16に組込みソフトウェア開発ツール63の一例として組込みソフトウェア開発ツール63Cを示す。制御モデル62からソフト部品生成ツール631Aによってソフト部品1を生成する。インタフェースソフト生成ツール632Aは制御モデル62を参照して対応するインタフェースソフト2を生成する。
【0045】
図14,図15,図16に示す組込みソフトウェア開発ツールの構成をとることによって、制御モデルから組込みソフトウェアのためのソフト部品およびインタフェースソフトウェアを自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。
【0046】
続いて、図17,図18,図19においてインタフェースソフトの自動生成の具体的な手順を示す。
【0047】
図17に、インタフェースソフト生成手段632の処理を示す。S41において制御ソフト部品の情報を抽出し、S42においてインタフェースソフトを生成する。S41の詳細な内容は図18に、S42の詳細な内容は図19に示す。
【0048】
図18に、図8に示した制御ソフト部品を例に制御ソフト部品情報抽出処理S41の詳細を示す。まずS411においてファイル名を抽出する。すなわち、図8に示したC11およびC12のファイル名「TVO_Calculate.c」,「TVO_Calculate.h 」を抽出する。次に、S412において関数名を抽出する。すなわち図8に示したC11に記載された関数名「TVO_Calculate」を抽出する。S413において入出力変数の数を抽出する。すなわち図8に示したC12の関数「TVO_Calculate 」の入出力変数をカウントする。S414において、S413においてカウントした変数の数に基づいて入出力変数名を抽出する。すなわち、図8に示したC12における「TargetTorque」や「variable_A」を入力変数として抽出し、「TVO」を出力変数として抽出する。なお、出力変数は変数名先頭にポインタ引数であることを示す「&」がついていることにより識別する。S415において入出力変数の型を抽出する。すなわち、図8に示したC12における「TargetTorque」の変数型「unsigned short」などである。
【0049】
前記入力変数は本発明における組込みコントローラ開発ツールにおいて、参照データに対応する。前記出力変数は本発明における組込みコントローラ開発ツールにおいて、制御データに対応する。
【0050】
図15に、インタフェースソフト生成処理S42の詳細を示す。図9に示したインタフェースソフトの生成を例に説明する。S421において、S411で抽出したソフト部品のファイル名から、インタフェースソフトのファイルを生成する。すなわち、「TVO_Calculate.c」,「TVO_Calculate.h」から、区切り文字として組込みコントローラ内で意義する「_」以降の文字を消すことにより「TVO」というソフト部品名を得る。その上でソフト部品に対応するインタフェースソフトとして、「抽出したインタフェースソフトの名前」+「.c」というファイルと、「抽出したインタフェースソフトの名前」+「.h」というファイルと、「抽出したインタフェースソフトの名前」+「_Update.h 」というファイルを生成する。すなわち、図9に示した「TVO.c」「TVO.h」「TVO_Update.h」である。次にS422において、S414で抽出したソフト部品の出力変数の名前とS415で抽出したソフト部品の出力変数の型情報を持つソフト部品の出力となる変数の宣言部を「抽出したインタフェースソフトの名前」+「.c」というファイル内に生成する。すなわち、抽出した出力変数の型で、抽出した出力変数の変数名の変数をメモリ上に割り当てるための命令をソースファイルに出力する。図9に示したC21における「unsigned short TVO;」である。この場合、「unsigned Short 」の部分が出力変数の型で、「TVO」の部分が出力変数の変数名である。S414で抽出したソフト部品の出力変数の名前をもとに、S423においてソフト部品の出力変数の参照命令を生成する。すなわち、図9に示したC22における「#define TVO_Get() TVO 」である。これは、「出力変数の変数名」+「_Get()」という名前のマクロとして定義され、その実体は出力変数名になる。そのため、ソースコードにマクロを記述することによりプリプロセッサを用いてソースコードを変換すると、ソースコード内で参照用マクロは参照先の変数に置きかえられる。S424において、S414で抽出したソフト部品の入出力変数の名前とS415で抽出したソフト部品の入力変数の型情報をもとに、出力変数の更新命令を生成する。すなわち、図9に示したC23である。「出力変数名」+「_Update() 」というマクロを出力変数の更新命令として定義する。そのマクロの実体はS412で抽出した出力変数の演算関数「TVO_Calculate 」に割り当てられ、関数の引数にはS414で抽出した入力変数「TargetTorque」や「variable_A」の参照命令「TargetTorque_Get()」や「variableA_Get() 」と出力変数「TVO」のアドレスを示すポインタ「&TVO」を割り当てる。
【0051】
図17,図18,図19に示した構成を取ることによって、インタフェースソフト2を、制御ソフト部品1や制御モデル62から自動で生成することが可能になるため、人手でコーディングする必要が無くなり、さらにコーディングミスが減少するためデバッグ作業を軽減することが可能になり、ソフトウェアの開発効率が向上する。
【0052】
図20に、組込みソフトウェアのネットワーク配信の概要図を示す。図20ではソフト部品配信の例を示す。ネットワーク71に、ソフト部品サーバ73が接続されている。ソフト部品サーバ73はクライアントPC72をネットワーク71を介して接続され、クライアントPC72からの要求に応じてソフト部品1を送信する。クライアントPC72は受信したソフト部品1を電子制御ユニット(ECU)10Bに書込む事ができる。また、ECU10A自身にネットワーク接続機能を持たせることにより、自分自身でネットワーク71を経由してソフト部品サーバ73に接続し、ソフト部品を更新することができる。
【0053】
本実施例で示した組込みソフトウェアをネットワーク配信することによって、以下の利点がある。本発明の組込みソフトウェアでは、制御ソフト部品1が変更された場合は対応するインタフェースソフト2のみを変更すれば良く、制御基本ソフトウェアやタスク処理基本ソフトウェアなどの基本部分は変更する必要がない。そのため、サービス工場においてソフトウェアの変更をすることが容易になるという利点がある。また送信するデータ量も、全体を送信する場合に比べてソフト部品のみを送信する場合には少なくて済むという利点がある。
【0054】
図21に、組込みソフトウェア配信サービスの一例の概要を示す。クライアントPC72はネットワーク71を介して制御ソフト部品販売ホームページ74に接続する。制御ソフト部品販売ホームページ74にてダウンロードする制御ソフト部品1を選択したのち、料金決済システム75に接続し購入料金の決済を行う。その後、制御ソフト部品サーバ73から制御ソフト部品1をダウンロードし、制御ユニット(ECU)10に書込む。
【0055】
図21で示した構成にすることによって、以下の利点がある。課金システムとホームページによる認証を行うことによって、サービス工場だけでなく一般のユーザーにとっても組込みソフトウェアの書込みが可能になる。すなわち、車両の走行モードや、自動変速機の変速パターン、さらには家電製品の組込みコントローラの組込みソフトウェアをネットワークで購入することによって、自分の好みの組込みコントローラを作る事ができるという利点がある。
【0056】
制御演算手段に組込みコントローラ内で用いる変数の宣言や入力処理および更新等の操作をさせてしまうと、制御演算手段に演算ロジック以外の機能が混在する。たとえば、演算結果を出力・保存する変数を組込みコントローラが持つメモリの特定のアドレスに割り当てる処理や、演算を行う際に他の制御演算手段の出力結果である変数を参照する処理や、制御基本手段が実行するための実行インタフェースの生成や、演算結果を出力する変数の参照処理などである。これは、演算ロジックの変更に伴い演算ロジック以外の機能変更及び検証が必要となることを意味し、組込みコントローラ用ソフトウェア開発に伴う工数が増大するという課題が生じる。本発明では、組込みコントローラにおいて、前記インタフェース手段が有する前記出力変数を他のインタフェース手段が参照する出力変数参照機能を、前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記インタフェース手段に対応する前記制御演算手段が計算を行う際に用いる入力変数を、他のインタフェース手段もしくは自分自身の有する出力変数参照機能を用いるなどして収集する入力変数収集機能を前記インタフェース手段に設けることにより、上記課題を解決する。本発明では、組込みコントローラにおいて、前記制御基本処理手段などの命令で前記制御演算手段が計算を行う際に、前記インタフェース手段が前記入力変数収集機能により収集した前記入力変数を前記制御演算手段が参照できる状態にして、前記制御演算手段の計算結果が保存される出力変数を指定して、前記制御演算手段の演算処理実行を命令する出力変数更新機能を前記インタフェース手段に設けることにより、上記課題を解決する。
【0057】
組込みコントローラ用ソフトウェアは、頻繁に変更される部分と半永久的に再利用される部分とに分類することが出来る。例えば、変数の演算ロジックのように変更されることが多い部分と、変数の更新順序のように変更されることが少ない部分とである。これが一体のプログラムとなっていると、組込みコントローラ用ソフトウェア内の変数の演算ロジックの変更であるにもかかわらず、変更する必要のない変数の更新順序の部分まで変更する必要があるという課題がある。本発明では、組込みコントローラにおいて、前記制御基本処理手段が、実行を命令する制御演算手段の種類と、前記制御演算手段と前記外部入力処理手段と前記外部出力処理手段と前記基本管理手段の実行順序とを定義し、前記制御基本処理手段が、前記外部入力処理手段と前記制御演算手段と前記外部出力処理手段と前記基本管理手段の実行を命令することにより、上記課題を解決する。
【0058】
一つの制御演算手段が複数の変数の演算を行う場合、ある変数の演算方法を変更するためには該当する制御演算手段を変更する必要がある。そのため、演算手段が変更されない変数に関しても、その演算を行う制御演算手段が変更されてしまうという課題がある。本発明では、組込みコントローラにおいて、前記制御演算手段の計算結果である、他の制御演算手段や外部出力手段が参照するための変数は、制御演算手段1つにつき1つとすることにより、上記課題を解決する。
【0059】
組込みコントローラのソフトウェアを変更する場合、ソフトウェアの一部のバージョンアップであるにもかかわらず、ソフトウェア全体をCD−ROMなどの記録媒体で配布する必要があった。そのため、ソフトウェアの配布に時間がかかるという課題や、CD等の媒体が必要になるために廃棄物が増大するという課題がある。本発明では、組込みコントローラ配信サービスにおいて、前記制御演算手段を保管および送信する制御演算手段サーバ手段と制御演算手段の販売を行う制御演算手段販売手段とをネットワークで接続することにより、上記課題を解決する。
【0060】
車両制御に関しては、排気規制およびOBD規制などの法的規制,X−by−Wireおよびハイブリッドシステムに代表される制御システムのエレクトロニクス化を背景に、組込みコントローラ用制御ソフトウェアの高機能化・大型化が進んでいる。また、高機能化・大型化する制御ソフトウェアを効率良く設計・作成しなければならないという課題がある。本発明では、前記組込みコントローラが車両に搭載されてエンジンや変速機などの制御を行うことにより、上記課題を解決する。
【0061】
【発明の効果】
本発明によれば、組込みコントローラにおいて、制御演算手段毎に対応するインタフェース手段を設けることにより、組込みコントローラの再利用性が向上する。
【0062】
本発明によれば、組込みコントローラ開発ツールであって、前記制御演算手段がプログラミング言語のソースコードで関数として記述されて、センサ計測値や他の制御演算手段の計算結果などの計算に用いる変数は関数の引数で、計算結果である変数は関数の戻り値またはメモリ上のアドレスを指定した関数の引数であることと、前記インタフェース手段がプログラミング言語のソースコードで記述するとともに、前記制御演算手段のソースコードから特定の情報を抽出する制御演算手段解析手段と、制御演算手段解析手段の解析結果に基づいて制御演算手段に対応する前記インタフェース手段のソースコードを生成するインタフェース手段生成手段を設けることにより、組込みコントローラの生産性が向上する。
【図面の簡単な説明】
【図1】本発明の図。
【図2】実施例の車両用電子制御装置のシステム図。
【図3】実施例の分散組込みコントローラのシステム図。
【図4】組込みコントローラ用ソフトウェアの概要図。
【図5】アプリケーションソフトウェアの概要図。
【図6】タスク処理ソフトウェアのフローチャート。
【図7】トルクベース制御アプリケーションの構成図。
【図8】制御ソフト部品のCソースコード。
【図9】インタフェースソフトのCソースコード。
【図10】トルクベース制御フレームワークの定義情報。
【図11】トルクベース制御フレームワークのフローチャート。
【図12】分散制御システムにおける入出力処理部のシステム図。
【図13】組込みコントローラ用ソフトウェア開発プロセス図。
【図14】組込みソフトウェア開発手段1。
【図15】組込みソフトウェア開発手段2。
【図16】組込みソフトウェア開発手段3。
【図17】インタフェースソフト自動生成フローチャート。
【図18】制御ソフト部品情報抽出フローチャート。
【図19】インタフェースソフト生成フローチャート。
【図20】組込みソフトウェアネットワーク配信図。
【図21】組込みソフトウェアネットワーク配信サービス図。
【符号の説明】
1…制御ソフト部品、1A…ソフト部品A、1B…ソフト部品B、1C…ソフト部品C、1D…目標トルクを示す変数を演算するソフト部品D、1E…変数Aを演算するソフト部品E、1F…スロットル開度を示す変数を演算するソフト部品F、2…インタフェースソフト、2A…ソフト部品Aに対応するインタフェースソフト、2B…ソフト部品Bに対応するインタフェースソフト、2C…ソフト部品Cに対応するインタフェースソフト、2D…ソフト部品Dに対応するインタフェースソフト、2E…ソフト部品Eに対応するインタフェースソフト、2F…ソフト部品Fに対応するインタフェースソフト、3…制御基本ソフトウェア、3A…トルクベース制御の基本制御部、4…外部入力データ、5…外部出力データ、6…組込みコントローラオペレーションシステム、7…車両、8…エンジン、9…自動変速機、A…アクセルペダル、10,20…制御ユニット(ECU)。

Claims (5)

  1. 外部からの入力信号を取り込みデータ化する信号入力部と、
    前記データ化された入力信号を処理し、制御データを演算するプロセッサと、
    前記制御データを外部に接続される機器への制御信号として出力する信号出力部と、
    前記プロセッサに前記演算を実行させるための組み込みソフトウエアを記憶するメモリとを備える組み込みコントローラであって、
    前記組み込みソフトウエアは、
    複数のソフト部品と前記ソフト部品ごとに対応するインタフェースソフトと前記複数のソフト部品の実行順序を管理する制御基本ソフトウエアとを有するアプリケーションソフトウエアと、
    該アプリケーションソフトウエアの起動を制御し、前記アプリケーションソフトウエアからの要求に応じて前記入力信号の読み出し及び前記制御信号の出力を行う基本ソフトウエアとを有し、
    前記ソフト部品は、前記入力信号または他のソフト部品による制御演算の結果である制御データに基づいて演算を行い、
    前記インタフェースソフトは、前記ソフト部品と他のソフト部品との間の前記制御データの受け渡しを管理することを特徴とする組込みコントローラ。
  2. 前記インタフェースソフトは、前記インタフェースソフトに対応する前記ソフト部品によって計算された前記制御データを保存し、
    前記インタフェースソフトが保存した前記制御データを他のインタフェースソフトが参照することを特徴とする請求項1記載の組込みコントローラ。
  3. 前記インタフェースソフトは、前記インタフェースソフトに対応する前記ソフト部品が計算を行う際に用いる前記データを、他のインタフェースソフトが保存する前記制御データもしくは当該インタフェースソフトに保存された前記制御データを参照して収集することを特徴とする請求項2記載の組込みコントローラ。
  4. 前記インタフェースソフトは、前記ソフト部品が計算を行う際に、前記インタフェースソフトが収集した前記ソフト部品が演算に用いる前記制御データを参照できる状態にして、前記ソフト部品によって計算される前記制御データを指定して、前記ソフト部品の演算処理実行を命令することを特徴とする請求項3記載の組込みコントローラ。
  5. 前記インタフェースソフトは、前記ソフト部品の計算結果である制御データを保存すると共に、前記ソフト部品ごとの制御データは1つのみ保存することを特徴とする請求項1,2,3,4記載の組込みコントローラ。
JP2002369167A 2002-12-20 2002-12-20 組込みコントローラ及び組込みコントローラ開発ツール Expired - Fee Related JP3912278B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2002369167A JP3912278B2 (ja) 2002-12-20 2002-12-20 組込みコントローラ及び組込みコントローラ開発ツール
US10/739,222 US20040133879A1 (en) 2002-12-20 2003-12-19 Embedded controllers and development tool for embedded controllers
DE10360035.3A DE10360035B4 (de) 2002-12-20 2003-12-19 Eingebettete Controller, Verfahren und Entwicklungswerkzeug für eingebettete Controller
US12/194,948 US8347282B2 (en) 2002-12-20 2008-08-20 Embedded controllers and development tool for embedded controllers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002369167A JP3912278B2 (ja) 2002-12-20 2002-12-20 組込みコントローラ及び組込みコントローラ開発ツール

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006326425A Division JP4919782B2 (ja) 2006-12-04 2006-12-04 組込みコントローラ及び組込みコントローラ開発ツール

Publications (2)

Publication Number Publication Date
JP2004199533A JP2004199533A (ja) 2004-07-15
JP3912278B2 true JP3912278B2 (ja) 2007-05-09

Family

ID=32588380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002369167A Expired - Fee Related JP3912278B2 (ja) 2002-12-20 2002-12-20 組込みコントローラ及び組込みコントローラ開発ツール

Country Status (3)

Country Link
US (2) US20040133879A1 (ja)
JP (1) JP3912278B2 (ja)
DE (1) DE10360035B4 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280902A (ja) * 2002-03-25 2003-10-03 Fujitsu Ten Ltd マイコンロジック開発システム及びそのプログラム
JP3912278B2 (ja) * 2002-12-20 2007-05-09 株式会社日立製作所 組込みコントローラ及び組込みコントローラ開発ツール
US7937172B2 (en) * 2004-07-28 2011-05-03 Mitsubishi Electric Corporation Program creating device for programmable controller, program creating method for programmable controller, and recording medium having program recorded thereon
US7562347B2 (en) * 2004-11-04 2009-07-14 Sap Ag Reusable software components
US7681201B2 (en) 2006-08-04 2010-03-16 Lectronix Method and system for integrating and controlling components and subsystems
US8392882B2 (en) * 2006-11-30 2013-03-05 Caterpillar Inc. Engine state-based control of software functions
EP1983433A1 (en) * 2007-04-20 2008-10-22 Hitachi, Ltd. Method of configuring a control algorithm being executable by a controller
JP5111262B2 (ja) * 2008-06-27 2013-01-09 株式会社日立製作所 組込み制御装置
JP2010092215A (ja) * 2008-10-07 2010-04-22 Hitachi Automotive Systems Ltd ソフト部品の組み込み方法、ソフト部品の部品化ツール及び組み込みツール
US20100114939A1 (en) * 2008-10-24 2010-05-06 Schulman Elad Software test management system and method with facilitated reuse of test components
JP5236564B2 (ja) * 2009-04-20 2013-07-17 株式会社日立製作所 ソフトウェア再利用支援方法及び装置
SG180055A1 (en) * 2010-10-29 2012-05-30 Rockwell Automation Asia Pacific Business Ctr Pte Ltd Industrial controller interface for plug-in i/o modules
JP5085719B2 (ja) * 2010-11-15 2012-11-28 日立オートモティブシステムズ株式会社 車両制御用ソフトウェア及び車両制御装置
US8683457B1 (en) * 2011-06-17 2014-03-25 Western Digital Technologies, Inc. Updating firmware of an electronic device by storing a version identifier in a separate header
JP5530417B2 (ja) * 2011-11-22 2014-06-25 株式会社日立製作所 コントローラ開発ツール
EP2608024A1 (en) * 2011-12-22 2013-06-26 Tata Consultancy Services Limited Computing reusability index of software assets
DE102013102082A1 (de) * 2013-03-04 2014-09-04 Still Gmbh Verfahren zur Integration von Anwendungen in eine Steuerung eines Flurförderzeugs
US10990073B2 (en) * 2016-08-30 2021-04-27 Mitsubishi Electric Corporation Program editing device, program editing method, and computer readable medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04272568A (ja) * 1991-02-25 1992-09-29 Hitachi Ltd 自動変速機制御装置
US5612866A (en) * 1994-06-24 1997-03-18 Integrated Systems, Inc. Code generation system to construct an asynchronous real-time controller for a real-time system
DE19732669C2 (de) * 1997-07-29 1999-09-23 Bosch Gmbh Robert Verfahren zur Simulation von Steuerfunktionen eines Steuergeräts und entsprechendes Steuergerät
US6185484B1 (en) * 1998-08-05 2001-02-06 Eaton Corporation Method of operating a motor vehicle management computer system
JP2000073800A (ja) * 1998-08-28 2000-03-07 Hitachi Ltd 電磁駆動式吸排気バルブを備えたエンジンの制御装置
US6429885B1 (en) * 1998-10-30 2002-08-06 Sony Corporation GUI resource editor for an embedded system
US6161071A (en) * 1999-03-12 2000-12-12 Navigation Technologies Corporation Method and system for an in-vehicle computing architecture
US6272402B1 (en) * 1999-07-15 2001-08-07 Navistar International Transportation Corp. Remote interface modules with programmable functions
FR2801118B1 (fr) * 1999-11-17 2001-12-21 Bull Cp8 Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque
JP4427860B2 (ja) * 2000-03-24 2010-03-10 株式会社デンソー 車両用制御装置及び記録媒体
JP2001331324A (ja) * 2000-05-19 2001-11-30 Sony Corp 情報処理方法および装置、ならびに、記録媒体
DE10052570A1 (de) * 2000-10-23 2002-04-25 Bosch Gmbh Robert System zur Steuerung von Betriebsabläufen
JP2002229791A (ja) * 2001-01-31 2002-08-16 Denso Corp インターフェース生成装置、プログラム及び記録媒体
JP2002271333A (ja) 2001-03-09 2002-09-20 Denso Corp プログラム及び電子制御装置
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7012610B2 (en) * 2002-01-04 2006-03-14 Ati Technologies, Inc. Portable device for providing dual display and method thereof
US20030135842A1 (en) * 2002-01-16 2003-07-17 Jan-Erik Frey Software development tool for embedded computer systems
US7143395B2 (en) * 2002-02-14 2006-11-28 Hewlett-Packard Development Company, L.P. Verifying a program version
US6768941B2 (en) * 2002-11-07 2004-07-27 Cummins, Inc. Engine calibration development process
JP3912278B2 (ja) * 2002-12-20 2007-05-09 株式会社日立製作所 組込みコントローラ及び組込みコントローラ開発ツール
US7694277B2 (en) * 2003-05-14 2010-04-06 Microsoft Corporation Cross version customization of design environment
US20050010915A1 (en) * 2003-07-11 2005-01-13 Chih-Wei Chen Network-based server code auto upgrade method and system
US7752617B2 (en) * 2003-11-20 2010-07-06 International Business Machines Corporation Apparatus, system, and method for updating an embedded code image

Also Published As

Publication number Publication date
US8347282B2 (en) 2013-01-01
JP2004199533A (ja) 2004-07-15
DE10360035B4 (de) 2018-01-04
US20080313614A1 (en) 2008-12-18
US20040133879A1 (en) 2004-07-08
DE10360035A1 (de) 2004-07-22

Similar Documents

Publication Publication Date Title
JP3912278B2 (ja) 組込みコントローラ及び組込みコントローラ開発ツール
JP5209209B2 (ja) コンピュータプログラムを構成する方法
EP1703391B1 (en) Vehicle control software and vehicle control apparatus
EP1372067A2 (en) Image-based software installation
EP1530137A1 (en) Simulation system and computer-implemented method for simulation and verifying a control system
JP4515701B2 (ja) 車両用制御プログラム、及び、車両用制御装置
US10423571B2 (en) Method for configuring a real or virtual electronic control unit
JP2007253792A (ja) 車両用電子制御装置のソフトウェアシステムおよびその設計方法
JP4724660B2 (ja) 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法
JP2007527562A5 (ja)
JP4919782B2 (ja) 組込みコントローラ及び組込みコントローラ開発ツール
JP5178878B2 (ja) 車両用制御装置
JP2006518436A (ja) 車両の駆動アグリゲートを制御するための制御装置とコンピュータプログラム
Iyenghar et al. Early Synthesis of Timing Models in AUTOSAR-based Automotive Embedded Software Systems.
Köster et al. Connecting Simulink to OSEK: Automatic code generation for real-time operating systems with Targetlink
JP2008059312A (ja) 制御装置およびその開発システム
JP5085719B2 (ja) 車両制御用ソフトウェア及び車両制御装置
US20210089280A1 (en) Method for generating source code with service-based communication
US20230342115A1 (en) Method for generating source code
Panday et al. AIL: description of a global electronic architecture at the vehicle scale
Hermsen et al. Application of the object-oriented modeling concept OMOS for signal conditioning of vehicle control units
US20080256522A1 (en) Automobile Controller, Software Generation Method and Software Generation System Thereof
JP6812818B2 (ja) 電子制御装置
WO2002065228A2 (en) Distributed computing system
JP2004252841A (ja) ソースコード生成装置、ソースコード生成プログラム、およびソースコード生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040827

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070122

R151 Written notification of patent or utility model registration

Ref document number: 3912278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100209

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110209

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120209

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120209

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130209

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140209

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees