JP4515701B2 - 車両用制御プログラム、及び、車両用制御装置 - Google Patents

車両用制御プログラム、及び、車両用制御装置 Download PDF

Info

Publication number
JP4515701B2
JP4515701B2 JP2002362487A JP2002362487A JP4515701B2 JP 4515701 B2 JP4515701 B2 JP 4515701B2 JP 2002362487 A JP2002362487 A JP 2002362487A JP 2002362487 A JP2002362487 A JP 2002362487A JP 4515701 B2 JP4515701 B2 JP 4515701B2
Authority
JP
Japan
Prior art keywords
program
processing
data
platform
vehicle control
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
JP2002362487A
Other languages
English (en)
Other versions
JP2004192541A (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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2002362487A priority Critical patent/JP4515701B2/ja
Priority to EP03027645A priority patent/EP1445697A3/en
Priority to US10/734,285 priority patent/US7415323B2/en
Publication of JP2004192541A publication Critical patent/JP2004192541A/ja
Application granted granted Critical
Publication of JP4515701B2 publication Critical patent/JP4515701B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Description

【0001】
【発明の属する技術分野】
車両用制御プログラム、例えばエンジン制御用組込ソフトウェアとして好適な構成をもつプログラム等に関する。
【0002】
【従来の技術】
従来より、例えばマイコン等のコンピュータを用いて、自動車等の車両の各部を制御する車両用制御装置が知られている。こうした車両用制御装置では、ROM等の記憶装置に記憶された車両用制御プログラムをコンピュータが実行することにより、種々の制御を実現している。
【0003】
車両用制御プログラムは、一般的に、ハードウェアに依存するプログラムであるプラットフォームプログラム(PF)と、車両用の制御に依存するプログラムであるアプリケーションプログラム(AP)とに分けて構成する。
プラットフォームプログラムは、ハードウェアデバイスからデータを入力して、その入力したデータに基づくデータを、例えばAPI(Application Program Interface)のようなインターフェース(以下このインターフェースをPFインターフェースと称する)を介して、アプリケーションプログラムによる処理に対して提供したり、アプリケーションプログラムによる処理からこのPFインターフェースを介して得たデータをハードウェアデバイスに対して出力したりする処理をコンピュータに実行させるためのプログラムである。
【0004】
一方、アプリケーションプログラムは、このPFインターフェースを介して入力したデータを用いた処理や、PFインターフェースを介して出力するデータを生成する処理をコンピュータに実行させるためのプログラムである。例えばPFインターフェースを介して入力したデータに基づいてPFインターフェースを介して出力するデータを生成する処理をコンピュータに実行させるためのプログラムである。
【0005】
このように、プラットフォームプログラムは、ハードウェアデバイスに対するアクセスを行うプログラムを含む一方、アプリケーションプログラムは、直接ハードウェアデバイスへのアクセスを行うプログラムを含まず、PFインターフェースを介して、プラットフォームプログラムによる処理にハードウェアデバイスとの入出力をさせている。こうすることで、アプリケーションプログラムの開発者は、ハードウェアの詳細構成や制御方法を意識することなくアプリケーションプログラムを作成することができる。
【0006】
また、従来、例えば、特許文献1に示すように、オペレーティングシステムとアプリケーションソフトとを接続するインターフェースソフトを設け、アプリケーションソフトにおいて必要な信号の演算をインターフェースソフトで行うようにすることで、ハードウェアに変更があった場合にインターフェースソフトを書き換えるだけで「アプリケーションソフトを」永続的に使用可能にした自動車用制御ユニットも知られている。
【0007】
【特許文献1】
特開平07−040794号公報
【0008】
【発明が解決しようとする課題】
しかしながら、車両用制御装置のメーカでは、顧客である車両メーカから異なる要求仕様を持つ複数の車両用制御装置の開発を依頼されることが多く、アプリケーションプログラムはそれぞれの要求仕様に応じて新規に作成する必要がある。したがって、上述した特許文献1に記載のように「アプリケーションプログラムソフトを」流用して車両用制御プログラムを作成するのではなく、プラットフォームプログラムを、できるだけ流用して、車両用制御プログラムを構成することにより、開発コストを削減する手法が採られる。
【0009】
プラットフォームプログラムを流用するためには、例えば、異なる要求仕様間の共通項を抽出し、その共通項で標準化したPFインターフェースを提供するようにプラットフォームプログラムを構成する。例えば各要求仕様の中で、最も要求の厳しい要求仕様に合わせたデータ型式やデータ提供タイミング等でデータをアプリケーションプログラムによる処理へ提供するようにPFインターフェースの仕様であるPFインターフェース仕様を標準化する。
【0010】
例えば車両用制御装置がエンジン制御装置であって、エンジンの冷却水の水温を検出するための水温センサからの電圧値に基づく処理を行う場合の要求仕様として、ある車種のエンジン制御装置Aでは、この電圧値の分解能として1/256Vが要求仕様であるのに対し、別の車種のエンジン制御装置Bでは分解能として1/128Vが要求仕様とされている場合を考える。このような場合には、プラットフォームプログラムによる処理では両方の車種のエンジン制御装置の要求仕様を共に満たすように分解能の細かいエンジン制御装置Aに合わせた分解能1/256Vで、アプリケーションプログラムによる処理に対してPFインターフェースを提供するPFインターフェース仕様を策定し、このPFインターフェース仕様に沿ったPFインターフェースを提供するようにプラットフォームプログラムを構成する。こうして、異なる要求仕様を持つエンジン制御装置で同一のプラットフォームプログラムを流用することができる。
【0011】
しかしながら、エンジン制御装置Bのアプリケーションプログラムを作成する場合、要求仕様の分解能は1/128Vであるのに対し、プラットフォームプログラムによるPFインターフェースが提供する分解能は1/256Vであるため、アプリケーションプログラムの開発者は、プラットフォームプログラムによるPFインターフェース仕様の分解能と、開発対象の車両用制御装置の要求仕様の分解能とのギャップを埋めるための分解能変換処理プログラムをアプリケーションプログラムに組み込む必要がある。
【0012】
こうした要求仕様としては、分解能の他にも、データの種類、データの型、データの取り込みタイミング等、様々なものがあり、異なる要求仕様を持つ車両用制御装置において標準化されたプラットフォームプログラムを利用するアプリケーションプログラムを作成する場合、アプリケーションプログラムの開発者は、常にプラットフォームプログラムの提供するPFインターフェース仕様を念頭において要求仕様を実現する方法を考える必要があり、アプリケーションプログラムの開発者の負担が大きいといった問題がある。
【0013】
そこで本発明は、アプリケーションプログラムの開発者の負担を軽減することのできる車両用制御プログラム等を提供することを目的とする。
【0014】
【課題を解決するための手段及び発明の効果】
上述した問題点を解決するためになされた請求項1に記載の車両用制御プログラムは、プラットフォームプログラムと、アプリケーションプログラムと、結合処理プログラムとから構成されている。
【0015】
プラットフォームプログラムは、所定の時間間隔で起動し、ハードウェアデバイスからデータを入力して、当該データをプラットフォームプログラム管理下のメモリに記憶する処理、をコンピュータに実行させるためのプログラムである。
【0016】
また、結合処理プログラムは、プラットフォームプログラムとアプリケーションプログラムとの間のデータ授受を仲介する処理を、コンピュータに実行させるためのプログラムであり、具体的には、要求仕様における更新周期に基づきプラットフォームプログラムの上記時間間隔とは異なる時間間隔で起動し、プラットフォームプログラム管理下のメモリに記憶されたデータを入力して、当該データを結合処理プログラム管理下のメモリに記憶する処理、をコンピュータに実行させるためのプログラムである。
【0017】
そして、アプリケーションプログラムは、要求仕様による利用周期に基づく、プラットフォームプログラムの上記時間間隔とは異なる時間間隔で、結合処理プログラム管理下のメモリに記憶されたデータを入力し、当該データに基づき制御演算を行う処理、をコンピュータに実行させるためのプログラムである。
このように、本発明では、結合処理プログラムが、プラットフォームプログラムとアプリケーションプログラムとの間のデータの橋渡しを行うため、アプリケーションプログラムの開発者は、APインターフェース仕様、すなわち、開発対象の車両用制御装置の要求仕様を満たすインターフェース仕様に沿ってアプリケーションプログラムを作成することができる。すなわち、アプリケーションプログラムの開発者は、PFインターフェース仕様を念頭において要求仕様を実現する方法を考える必要はなくなるので、アプリケーションプログラムの開発者の負担を軽減することができる。
【0018】
具体的に、アプリケーションプログラムの開発者は、アプリケーションプログラムの作成時に、プラットフォームプログラムによるサンプリングタイミングがどのようになっているのかを意識することなく、要求仕様に従ったタイミングでデータを利用するように構成することができる。
【0019】
例えば、上記車両用制御プログラムでは、プラットフォームプログラムにより実現されるデータ入力の時間間隔を、結合処理プログラムにより実現されるデータ入力の時間間隔、及び、アプリケーションプログラムにより実現されるデータ入力の時間間隔、よりも短い時間間隔に設定することができる(請求項2)。
【0020】
また、結合処理プログラムは、結合処理プログラム管理下のメモリにデータを記憶するに際し、データを、アプリケーションプログラムの要求仕様を満たすデータ形式に変換し、当該変換後のデータを、結合処理プログラム管理下のメモリに記憶する処理を、コンピュータに実行させるための命令コードを含むプログラムとして構成されてもよい(請求項3)。
異なる要求仕様に従って作成されたアプリケーションプログラムは、異なるデータ構造を持つデータを必要とする場合があるが、上記のように車両用制御プログラムを構成すれば、アプリケーションプログラムの作成時にPFインターフェースにおけるデータがどのような精度やデータ型式となっているのかを意識しなくても、要求仕様に従ったデータを利用することができる。
【0026】
この他、結合処理プログラムは、入力あるいは出力のいずれかのみについて仲介を行うように構成してもよいが、入力と出力の双方を仲介するようにするとよい。例えば、請求項に示すように、請求項1〜3のいずれかに記載の車両用プログラムを備える車両用制御プログラムとするとよい。このようにすれば、アプリケーションプログラムの開発者は、入出力の双方について、プラットフォームプログラムによる処理によって提供されるPFインターフェースの仕様を意識することなく、単に要求仕様に従ってアプリケーションプログラムを作成することができる。
【0027】
また、請求項に示すように、請求項1〜のいずれかに記載の車両用制御プログラムと、この車両用制御プログラムを実行するコンピュータとを備えた車両用制御装置を構成することができる。このような車両用制御装置は、アプリケーションの開発を効率的に行うことができるため、従来より、低コストでの開発が容易にできるようになる。
【0030】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態を採りうることは言うまでもない。
【0031】
本実施例の車両用制御装置は、エンジンの制御を行うためのエンジンECUであり、図1に本実施例の説明に必要な部分についての構成を図示している。本実施例のエンジンECU10と従来のエンジンECUとの差異は、ROM12に記憶されたプログラムの構成にあり、その他の構成は従来のエンジンECUと同様である。
【0032】
エンジンECU10は、図1に示すように、CPU11,ROM12,RAM13,I/O14、A/D変換器15、タイマ16等とこれらを接続するバスライン等から構成されている。そして、I/O14やA/D変換器15には、エンジン回転センサ21、O2センサヒータ22、水温センサ23、…、といった各種のエンジン制御用装置20が駆動回路等を介して接続されている。そして、ROM12に記憶されたプログラムをCPU11が実行することによって、こうしたエンジン制御用装置20からの信号の入力や、エンジン制御用装置20に対する信号の出力を行う。例えば、CPU11による処理によって、エンジン回転センサ21からのクランク軸の所定回転角毎(例えば180度毎)に発生するパルスをI/O14から入力したり、I/O14に対してO2センサを所定の動作温度まで加熱するためのO2センサヒータ22をPWM制御するO2センサヒータ制御信号を出力したりする。また、A/D変換器15を介して、水温センサ23から水温に対応する電圧値を入力し、入力した電圧値をデジタルデータとしてRAM13等へ取り込む。
【0033】
こうした制御をCPU11に実行させるためにROM12に記憶するプログラム1は、図2(a)に示すように、プラットフォームプログラム2(図中PFで表記している)と、特許請求の範囲における結合処理プログラムに相当する結合処理部3と、アプリケーションプログラム4(図中APで表記している)とをリンクして構成している。
【0034】
プラットフォームプログラム2は、I/O14やA/D変換器15等のハードウェアデバイスを制御する処理(ハードウェアに依存する処理)をCPU11が実行するためのデバイスドライバを含むプログラムであり、一方アプリケーション4は、I/O14やA/D変換器15といったハードウェアデバイスを直接制御する処理を行わず、車両メーカからの要求仕様を実現するための処理(車両用の制御に依存する処理(判定処理、演算処理など))をCPU11が実行するためのプログラムである。そして、結合処理部3は、アプリケーションプログラム4によるCPU11の処理とプラットフォームプログラム2におけるCPU11の処理との仲介を行うための処理をCPU11が実行するためのプログラムである。
【0035】
プラットフォームプログラム2と結合処理部3とアプリケーションプログラム4は別々に開発が行われており、プラットフォームプログラム2は、すでに開発済みの従来のエンジンECUに用いられていたものを利用する。一方、結合処理部3とアプリケーションプログラム4は新規に開発する。
【0036】
プラットフォームプログラム2は、図2(b)に示すように、結合処理部3による処理からのI/O14やA/D変換器15の駆動要求を受け付けてI/O14やA/D変換器15を駆動し、また、I/O14やA/D変換器15から取得した情報を結合処理部3による処理から参照可能とする処理を行うことによって、結合処理部3の処理に対するインターフェースを提供する(PFインターフェースと称する)。このPFインターフェースは、すでに開発済みの従来の車種のエンジンECUの要求仕様を満足するように標準化して構成されている。
【0037】
また、結合処理部3は、PFインターフェースを介して取得した情報を開発対象のアプリケーションプログラム4の要求仕様を満足する情報に変換してアプリケーションプログラム4の処理から参照可能とする処理と、アプリケーションプログラム4による処理によって生成された要求仕様に従った出力対象の情報を参照してPFインターフェースの要求する情報に変換してPFインターフェースを介してI/O14へ出力させる処理をCPU11に行わせるプログラムである。
【0038】
こうした結合処理部3を設けることによって、アプリケーションプログラム4の開発者は、PFインターフェースの仕様を意識することなく、要求仕様のみを考慮してアプリケーションプログラムを開発することができる。この要求仕様には、入出力するデータのタイミングやデータ型式等のAPインターフェースに関する仕様と、APインターフェースを介して取得したデータを利用した車両用の制御仕様とが含まれる。制御仕様については、アプリケーションプログラム2の開発中であってもたびたび車両メーカ側からの変更の要求があるのに対し、APインターフェースに関する仕様については、開発の初期段階でほぼフィックスされている。したがって開発の初期段階でAPインターフェースの仕様は決定することができ、また、PFインターフェースの仕様はすでに標準化されているものを流用するため、開発の初期段階から結合処理部3の開発を進めることができる。一方、アプリケーションプログラム2については、開発の初期段階から要求仕様のみを意識して開発を進めることができ、開発中に制御仕様の変更があったとしても、APインターフェースは変更する必要がなく、制御仕様に従って制御部分の変更を行うだけで済む。
【0039】
こうした結合処理部3を備えたプログラム1の詳細な構成の例を図に示して説明する。
例えば、図3(a)に示すように、PFインターフェースによってunsigned short型でLSBの示す値が5/65536[V]のデータ型式でデータが提供されるよう標準化されている一方、要求仕様のデータ型式がunsigned char型でLSBの示す値が5/256[V]の場合について説明する。
【0040】
この場合、図3(b)に示すように、結合処理部3は、プラットフォームプログラム2による処理から受けとったデータのデータ型及びLSBの対応する値についての変換処理をCPU11に実行させるように構成する。
すなわち、結合処理部3は、PFインターフェースを介してunsigned short型でLSBの示す値が5/65536[V]のデータを取得し、取得したデータをunsigned char型でLSBの示す値が5/256[V]のデータに変換(加工)する変換処理を行い、変換したデータをアプリケーションプログラム4による処理から参照可能にする処理をCPU11が実行するための命令コードを備える。例えば結合処理部3による処理では、変換したデータを予め定めたアドレスのRAM13に格納しておき、アプリケーションプログラム4による処理では、このアドレスのRAM13の値を取得するようにして、APインターフェースを構成し、アプリケーションプログラム4による処理による要求仕様に沿ったデータの参照を行うことができる。
【0041】
従来の車両用制御プログラムの構成では、図4に示すように、プラットフォームプログラム2による処理によって提供されるunsigned short型でLSBの示す値が5/65536[V]のデータ型式のデータをアプリケーションプログラムによる処理で取得して、アプリケーションプログラムによる処理で、要求仕様を満たすデータ型式であるunsigned char型のLSBの示す値が5/256[V]のデータに変換する変換処理を行う必要があった。したがって、このような変換処理をアプリケーションプログラム内で行う必要があり、アプリケーションプログラムの開発者は、この点を常に意識しながらアプリケーションプログラムを開発する必要があるため、アプリケーションプログラムの開発者の負担が大きかった。しかし、上述した結合処理部3を備えることにより、アプリケーションプログラム4の開発者は、PFインターフェースのデータ型式を意識することなく、単に要求仕様のみを考慮してアプリケーションプログラム4の開発を行うことができる。
【0042】
次に、結合処理部3による処理で、データの取得タイミングを調整する例を示す。
図5(a)に示すように、プラットフォームプログラム2による処理で提供されるPFインターフェースは、結合処理部3による処理から参照可能なデータを1ms毎に更新する構成で標準化されており、一方、要求仕様としては、8ms毎に利用する仕様である。但し、この8ms毎に利用するデータは、16ms毎に取り込んだデータとする。
【0043】
この場合、図5(b)に示すように、プラットフォームプログラム2は、1ms毎に水温センサ23の電圧値をA/D変換器15を介してプラットフォームプログラム2の管理下のRAM13に取り込む処理をCPU11に実行させるための命令コードを備える。またプラットフォームプログラム2は、結合処理部3による処理からの要求に応じてプラットフォームプログラム2による管理下のRAM13に取り込んだ電圧値を結合処理部3による処理へ渡す処理をCPU11に実行させるための命令コードを備える。
【0044】
そして、結合処理部3は、16ms毎にプラットフォームプログラム2による処理に対して電圧値を要求して、プラットフォームプログラム2による処理における管理下のメモリに取り込まれた電圧値を受け取り、結合処理部3の処理による管理下のメモリに記憶する処理をCPU11に実行させるための命令コードを備える。また、アプリケーションプログラム4による処理からの要求に応じて、この結合処理部3による処理の管理下のメモリに記憶された電圧値をアプリケーションプログラム4による処理へ渡す処理を行うための命令コードを備えることで、APインターフェースを提供する。
【0045】
そして、アプリケーションプログラム4は、8ms毎に結合処理部3に対して電圧値を要求し、結合処理部3による処理から電圧値を受け取って、利用する処理を行う命令コードを備える。
なお、アプリケーションプログラム4による処理からこの結合処理部3による処理の管理下のメモリを直接参照して取得するAPインターフェースとしてもよい。
【0046】
また、プラットフォームプログラム2には、結合処理部3を16ms以内の間隔で実行し、アプリケーション4を8ms以内の間隔で実行するための命令コードを備える。
こうした車両用制御プログラム1をCPU11が実行すると、図5(b)に示すように、結合処理部3による処理で、16ms毎に電圧値をPFインターフェースを介して取得して記憶しておき、アプリケーションプログラム4の処理によって8ms毎に、この記憶している電圧値を利用する。
【0047】
このように、結合処理部3を設けることで、アプリケーションプログラム4は、要求仕様を満足する16ms毎にサンプリングされた電圧値を、8ms毎に利用することができる。すなわち、アプリケーションの開発者は、図6に示す従来例のようにアプリケーションプログラムによる処理内でサンプリングタイミング変換しなければならないことを意識する必要はなく、アプリケーションプログラム4を開発することができる。
【0048】
次に、割り込み処理に適用した例を説明する。図7に示すように、エンジン回転センサ21からの信号パルスの立ち下がりで、CPU11にI/O14から割り込みがかかり、CPU11はプラットフォームプログラム2に備えた割り込み処理ルーチンを実行する。このプラットフォームプログラム2の割り込み処理ルーチンは、この割り込み処理ルーチンの前回の実行時からの経過時間をタイマ16の値を取得して算出し、これに基づいてエンジン回転数を求めて、プラットフォームプログラム2の管理下のRAM13のメモリ領域へ記憶する処理を行うためのCPU11の命令コードを備える。また、プラットフォームプログラム2は、結合処理部3による処理からの要求に応じてこのプラットフォームプログラム2の管理下のRAM13のメモリ領域へ記憶された回転数を結合処理部3による処理に渡す処理を行うためのCPU11の命令コードを備える。そして、プラットフォームプログラム2は、結合処理部3のタスク(特許請求の範囲における取得プログラムに相当する)を起動する命令コードを備え、この命令コードをCPU11が実行することで、結合処理部3のタスクが起動される。
【0049】
このタスクは、プラットフォームプログラム2の処理に回転数を要求するための命令コードと、プラットフォームプログラム2による処理から受け取った回転数を結合処理部3の管理下のRAM13のメモリ領域へ記憶する処理を行うための命令コードと、アプリケーションプログラム4による処理から回転数の要求があった場合に、この結合処理部3の管理下のRAM13のメモリ領域へ記憶された回転数をアプリケーションプログラム4による処理へ渡す処理を行うための命令コードとを備える。
【0050】
そして、エンジン回転数を利用して要求仕様を満たす機能を実現させるためのプログラムであるアプリケーションプログラム4の回転数利用処理部は、エンジン回転数を参照する各部で、結合処理部3による処理に対して回転数を要求するための命令コードを備える。
【0051】
そして、割り込み処理部の実行レベルは他のプログラム部分よりレベルを高く設定し、結合処理部3の実行レベルはアプリケーションプログラム4の実行レベルと同一かそれ以下に設定する命令コードをプラットフォームプログラム2に備える。そして、CPU11は、事前にこの実行レベルの設定をするプログラムの命令コードを実行しておく。また、プラットフォームプログラム2には、実行レベルに応じて実行すべきタスクを決定する処理を行う命令コードを備える。
【0052】
このような構成によれば、図7に示すように、エンジン回転センサ信号のパルスの立ち下がりで、CPU11がプラットフォームプログラム2の割り込み処理ルーチンを実行し、エンジン回転数を求めて、プラットフォームプログラム2の管理下のRAM13のメモリ領域へ記憶する。そして、プラットフォームプログラム2による処理によって、アプリケーションプログラム4が実行中でない場合には、図7に示す割り込み処理P1の後のように、結合処理部3のタスク処理部C1が実行されてプラットフォームプログラムによる処理に対して回転数を要求し、プラットフォームプログラムによる処理では結合処理部3による処理に対して回転数を渡す。結合処理部3のタスク処理部C1の処理により回転数を受け取り、結合処理部3の管理下のRAM13のメモリ領域へ記憶する。そしてプラットフォームプログラム2は、アプリケーションA1を実行する。
【0053】
アプリケーションA1において、回転数を参照する場合には、結合処理部3による処理に回転数を要求する。結合処理部3による処理では、結合処理部3の管理下のRAM13のメモリ領域へ記憶された回転数を渡す。そして、アプリケーションプログラム4の処理では、この回転数を受け取って自動車用の制御処理に利用する。
【0054】
また、図7に示すように、アプリケーションA2の処理中に、エンジン回転センサ信号による割り込みが発生し、プラットフォームプログラム2の割り込み処理P3が実行される場合、割り込み処理P3の完了後、プラットフォームプログラム2によって結合処理部C3が起動されるのであるが、結合処理部C3の実行レベルは、アプリケーションA2の実行レベルと同一かそれ以下に設定されているため、プラットフォームプログラム2による処理では、結合処理部C3の実行を後回しにして、先に、アプリケーションA2の割り込みによる中断時点からの命令を実行する。そのため、アプリケーションA2では、途中で割り込み処理P3を行っているが、回転数を参照する場合には、結合処理部C2の管理下のRAM13のメモリ領域へ記憶された回転数を取得して処理に利用することとなる。
【0055】
このように、アプリケーションプログラム2による処理で結合処理部3による処理を介して回転数を取得するようにプログラムを構成することで、アプリケーションプログラム4の開発者は、プラットフォームプログラム2の仕様を意識することなく、単に結合処理部3とのやりとりを行うAPインターフェースの仕様を知るだけでアプリケーションプログラム4を開発することができる。
【0056】
すなわち、従来は、上述した結合処理部3が存在しないため、図8(a)のようにアプリケーションA1の処理中で、回転数の参照を行うと、プラットフォームの割り込み処理P1でメモリに記憶された回転数がプラットフォームから提供されていた。この場合、アプリケーションA1中で複数回のプラットフォームの回転数を参照したとしても、アプリケーションA1中では、得られる回転数は全て同じ値となり、問題は生じない。しかし、割り込み処理P2の後にアプリケーション処理A2が実行され、このアプリケーションA2中に、エンジン回転センサ信号による割り込みが発生した場合、アプリケーションA2の処理は中断され、プラットフォームプログラム2による割り込み処理P3が実行される。そして、割り込み処理P3の完了後にアプリケーション処理A2が再開される。この結果、割り込み処理P3中で回転数は新たな値に更新されるので、中断前のアプリケーション処理A2の部分では、プラットフォームから取得した割り込み処理P2による回転数を用いた処理がなされ、割り込み処理P3から復帰した後のアプリケーション処理A2の部分では、プラットフォームから取得した割り込み処理P3による回転数を用いた処理がなされることとなる。このように、1単位のアプリケーション処理内で、ハードウェアデバイスからのデータに基づくデータに関して一貫性が保持できない。そのため、従来は、アプリケーションの開発者は、こうしたプラットフォームの制約条件を理解し、例えば図8(b)に示すように、割り込みの影響を受けないように、アプリケーション処理の先頭でディスパッチ禁止処理を行い、プラットフォームのAPIを呼び出して回転数を取り込んで、自己の管理下のメモリに記憶する(グローバルコピーすると称する)処理を行い、そして、それ以降のアプリケーション処理では、このグローバルコピーされた回転数を用いて処理を行うようにする必要があった。このように、アプリケーションプログラムの開発者は、プラットフォームの仕様(制約条件)を熟知し、仕様間のギャップを埋めて、アプリケーションプログラムを作成しなければならない。もしも、こうしたプラットフォームの仕様をアプリケーション作成者がよく理解せずに作成すると、例えば図8(a)のように、ときどき動作がおかしくなるといった症状などが生じ、作成したアプリケーションプログラムが、アプリケーション作成者の意図通りに動かない。このような場合、アプリケーションの開発者はプラットフォームの仕様を理解していないため、動作異常の原因を特定するのは困難になってしまう。かといって、複数のアプリケーション(例えばタスク)を動作させる場合、すべてのアプリケーションについてグローバルコピーを行うとメモリ領域の消費や処理時間の消費などオーバーヘッドが大きくなる。そのため、どのアプリケーションが、処理内でのデータの一貫性(同時性)を保てないのかを、プラットフォームの仕様とアプリケーションの仕様とを照らし合わせて判断する必要があり、アプリケーションの開発者の負担が大きく、開発効率を高める上での障害となっていた。
【0057】
しかし、図7に示して説明した本実施例の構成にすれば、図8(b)に示すようなグローバルコピーをアプリケーションプログラム中で行う必要もなくなり、どのアプリケーションプログラムについてグロバールコピーをする必要があるのかなどを検討する必要もなくなる。したがって、アプリケーションの生産性を向上させることができる。
【0058】
以上、アプリケーションプログラムによる処理でデータを入力する場合について説明したが、アプリケーションプログラムによる処理で、データを出力する場合にも、従来のように、直接プラットフォームプログラムの提供するインターフェースにアクセスするのではなく、結合処理部3を介して処理を行うとよい。
【0059】
例えば、図9(a)に示すように、アプリケーションプログラム4は、条件判定処理と、演算処理をCPU11が実行するための命令コードを備える。そして、結合処理部3は、プラットフォームプログラム2による処理によって、例えば所定周期毎に実行される。
【0060】
そして、結合処理部3には、アプリケーションプログラム2による演算処理によって得られたデータを取得する情報取得処理と、情報取得処理によって取得したデータをプラットフォームプログラム2による負荷駆動処理で用いるデータ型式に変換する情報変換処理と、プラットフォームプログラム2による負荷駆動処理を実行させるための負荷駆動要求処理とをCPU11が実行するための命令コードを備える。また、プラットフォームプログラム2は、負荷駆動要求があった場合に、負荷駆動処理を行う。
【0061】
例えば、図9(b)に示すように、エンジンを始動して所定時間経過後、エンジン始動時の水温に応じてO2センサヒータ22の制御を行い、要求仕様として周期256msでDuty制御するものであるとする。
この場合、プラットフォームプログラムでは、図9(b)に示すように、O2センサヒータ22を駆動するプラットフォームのAPIをO2H_DutyOut(周期,Duty)とし、周期のデータ型は、unsigned shortでLSBの対応する値は1msとし、Dutyのデータ型はsigned longでLSBの対応する値は1/65536とする。Dutyのデータ範囲は0〜1として、それ以外は動作を保証しない。
【0062】
一方、要求仕様は、アプリケーションプログラム4の演算処理によって出力するDutyがfloat型であり、範囲が0〜100%で、システムの要求する周期256msでDuty制御であるとする。
このとき、従来は、アプリケーションプログラムでは、図11及び図12に示すように、アプリケーション内の演算処理で出力されたfloat型のDutyを、プラットフォームが指定する型およびLSBの対応する値に変換処理して、プラットフォームのAPIを呼び出すように構成する必要があった。
【0063】
具体的には、アプリケーションプログラムとプラットフォームプログラムとはそれぞれ図12に示すように、処理を行っていた。すなわち、アプリケーションプログラムは、図12に示すように条件判定処理、演算処理、負荷駆動要求処理を行い、プラットフォームは、負荷駆動処理を行う。
【0064】
アプリケーションプログラムでは、S110で、エンジン始動後所定時間経過したか否かを判定し、所定時間経過した場合には(S110:成立)、S120へ移行して、所定の処理(始動時水温補間テーブルによる補間)によってDuty_APを求める。一方、エンジン始動後所定時間経過していない場合には(S110:不成立)、ヒータ制御は不要であるので、S130へ移行して、Duty_APを0%にする。
【0065】
そしてS140では、Duty_APを、プラットフォームのAPI(プラットフォーム命令)の引数として用いられる型とLSBの示す値に変換してDuty_PFとして求める。すなわち、変換後のLSBの示す値が1/65536となるようにfloat型からsigned long型への変換を行う。続くS150では、Duty_PFをプラットフォームの仕様に従って0〜1でガードする。そして、S160で、周期を256(ms)、DutyをDuty_PFとしてプラットフォーム命令O2H_Dutyを呼び出す。このようにアプリケーションの開発者は、プラットフォームの制約条件を意識して、アプリケーション内に変換処理を設ける必要がある。
【0066】
プラットフォーム側では、この呼び出しに応じて、呼び出し時にセットされた値(引数)に基づき、実際にハードウェアを制御し、ヒーター制御を行う(S200)。
このように、プラットフォームプログラムの提供する機能をアプリケーションプログラムから直接利用するため、プラットフォームプログラムの動作上の仕様が、アプリケーションプログラム作成時の制約条件となってしまう。アプリケーションプログラムの開発者は、常にこうした制約条件に注意を払って、入出力のタイミングやデータ形式等に気を配ってこうした制約条件をなくすためのルーチン(例えばCPU11の命令コード)をアプリケーションに組み込む必要があった。
【0067】
しかも、アプリケーションプログラムは、機能の追加、変更等の頻度が高く、こうした制約条件に注意を払いながら、これらの機能の追加や変更を行うのは困難であった。
そこで、本実施例では、図12に示した従来のプログラム構成を図10に示すように変更する。すなわち、上述したように従来は、条件判定処理と、演算処理と、負荷駆動要求処理とをアプリケーションプログラムで行うようにしていたのであるが、本実施例では、図10に示すように結合処理部3に、従来、アプリケーションプログラムによって行っていた図12のS140〜160に相当する処理を、図10のS420〜440に示すように結合処理部3に設ける。そして結合処理部3には、アプリケーションプログラム4のS310〜330によって求められたDutyAPを読み込む処理(S410)を設ける。このようにして図10に示すように、情報加工処理と負荷駆動要求処理を結合処理部3による処理で行う。
【0068】
その結果、アプリケーションプログラム4は、図10のS310〜330のように、条件判定処理と演算処理とをCPU11が実行するように構成するだけで済む。
このように、出力処理に関しても、アプリケーションの開発者は、プラットフォームプログラムのインターフェース仕様を気にすることなく、アプリケーションの開発を行うことができる。
【0069】
なお、本実施例では、エンジンECUの例で説明したが、種々の車両用のECUのプログラム開発に適用できる。
【図面の簡単な説明】
【図1】実施例の車両用制御装置の構成を示すブロック図である。
【図2】実施例の車両用制御プログラムの構成を示す説明図である。
【図3】実施例の車両用制御プログラムによるデータ型式の変換処理の例を示す説明図である。
【図4】従来の車両用制御プログラムによるデータ型式の変換処理の例を示す説明図である。
【図5】実施例の車両用制御プログラムによるサンプリングタイミングの例を示す説明図である。
【図6】従来の車両用制御プログラムによるサンプリングタイミングの例を示す説明図である。
【図7】実施例の車両用制御プログラムによる割り込み処理の実行例を示す説明図である。
【図8】従来の車両用制御プログラムによる割り込み処理の実行例を示す説明図である。
【図9】実施例の車両用制御プログラムによるデータの出力処理の例を示す説明図である。
【図10】実施例の車両用制御プログラムによるデータの出力処理を示すフローチャートである。
【図11】従来の車両用制御プログラムによるデータの出力処理の例を示す説明図である。
【図12】従来の車両用制御プログラムによるデータの出力処理を示すフローチャートである。
【符号の説明】
1…プログラム
2…プラットフォーム
3…結合処理部
4…アプリケーション
10…エンジンECU
11…CPU
12…ROM
13…RAM
14…I/O
15…A/D変換器
16…タイマ
20…エンジン制御用装置
21…エンジン回転センサ
22…O2センサヒータ
23…水温センサ

Claims (5)

  1. プラットフォームプログラムと、アプリケーションプログラムとを備える車両用制御プログラムにおいて、
    さらに、前記プラットフォームプログラムと前記アプリケーションプログラムとの間のデータ授受を仲介する処理を、コンピュータに実行させるための結合処理プログラムを備え、
    前記プラットフォームプログラムは、ハードウエアに依存した所定の時間間隔で起動し、ハードウェアデバイスからデータを入力して、当該データを前記プラットフォームプログラム管理下のメモリに記憶する処理、を前記コンピュータに実行させるためのプログラムであり、
    前記結合処理プログラムは、要求仕様による更新周期に基づく、前記プラットフォームプログラムの時間間隔とは異なる時間間隔で起動し、前記プラットフォームプログラム管理下のメモリに記憶されたデータを入力して、当該データを前記結合処理プログラム管理下のメモリに記憶する処理、を前記コンピュータに実行させるためのプログラムであり、
    前記アプリケーションプログラムは、要求仕様による利用周期に基づく、前記プラットフォームプログラムの時間間隔とは異なる時間間隔で起動し、前記結合処理プログラム管理下のメモリに記憶されたデータを入力して、当該データに基づき制御演算を行う処理、を前記コンピュータに実行させるためのプログラムであること
    を特徴とする車両用制御プログラム。
  2. 前記プラットフォームプログラムにより実現されるデータ入力の前記時間間隔は、前記結合処理プログラムにより実現されるデータ入力の前記時間間隔、及び、前記アプリケーションプログラムにより実現されるデータ入力の前記時間間隔、よりも短い時間間隔であることを特徴とする請求項1記載の車両用制御プログラム。
  3. 前記結合処理プログラムは、前記結合処理プログラム管理下のメモリに前記データを記憶するに際し、前記データを、前記アプリケーションプログラムの要求仕様を満たすデータ形式に変換し、当該変換後のデータを、前記結合処理プログラム管理下のメモリに記憶する処理を、前記コンピュータに実行させるための命令コードを含むプログラムであることを特徴とする請求項1又は請求項2記載の車両用制御プログラム。
  4. 請求項1〜3のいずれかに記載の車両用制御プログラムを備える車両用制御プログラム。
  5. 請求項1〜のいずれかに記載の車両用制御プログラムと、
    当該車両用制御プログラムを実行するコンピュータと、
    を備えた車両用制御装置。
JP2002362487A 2002-12-13 2002-12-13 車両用制御プログラム、及び、車両用制御装置 Expired - Fee Related JP4515701B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002362487A JP4515701B2 (ja) 2002-12-13 2002-12-13 車両用制御プログラム、及び、車両用制御装置
EP03027645A EP1445697A3 (en) 2002-12-13 2003-12-02 Control apparatus and program for vehicles, and method for developing the program
US10/734,285 US7415323B2 (en) 2002-12-13 2003-12-15 Control apparatus and program for vehicles, and method for developing the program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002362487A JP4515701B2 (ja) 2002-12-13 2002-12-13 車両用制御プログラム、及び、車両用制御装置

Publications (2)

Publication Number Publication Date
JP2004192541A JP2004192541A (ja) 2004-07-08
JP4515701B2 true JP4515701B2 (ja) 2010-08-04

Family

ID=32652590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002362487A Expired - Fee Related JP4515701B2 (ja) 2002-12-13 2002-12-13 車両用制御プログラム、及び、車両用制御装置

Country Status (3)

Country Link
US (1) US7415323B2 (ja)
EP (1) EP1445697A3 (ja)
JP (1) JP4515701B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4437468B2 (ja) * 2004-12-06 2010-03-24 富士通テン株式会社 車両用電子制御装置
JP4728020B2 (ja) 2005-03-17 2011-07-20 日立オートモティブシステムズ株式会社 車両制御用ソフトウェア及び車両制御装置
JP4753623B2 (ja) * 2005-05-23 2011-08-24 富士通テン株式会社 車両制御用プログラム及び車両用電子制御装置
JP2007052584A (ja) 2005-08-17 2007-03-01 Hitachi Ltd 制御装置
KR100656363B1 (ko) * 2005-11-07 2006-12-13 한국전자통신연구원 차량 상태 기반 텔레매틱스용 어플리케이션 관리 장치 및방법
JP2008059312A (ja) * 2006-08-31 2008-03-13 Hitachi Ltd 制御装置およびその開発システム
JP2010033437A (ja) 2008-07-30 2010-02-12 Autonetworks Technologies Ltd 制御装置、制御方法及びコンピュータプログラム
JP2010033436A (ja) 2008-07-30 2010-02-12 Autonetworks Technologies Ltd 制御装置、制御方法及びコンピュータプログラム
JP4922262B2 (ja) 2008-07-30 2012-04-25 株式会社オートネットワーク技術研究所 制御装置
JP4934113B2 (ja) 2008-08-01 2012-05-16 株式会社オートネットワーク技術研究所 制御装置及びコンピュータプログラム
US20120185212A1 (en) * 2009-09-29 2012-07-19 Volvo Technology Corporation Method and system for preparing sensor output data of a sensor assembly for further processing in at least one application and/or by at least one algorithm
JP2011081671A (ja) * 2009-10-08 2011-04-21 Autonetworks Technologies Ltd 制御装置、制御方法及びコンピュータプログラム
JP5482136B2 (ja) * 2009-11-17 2014-04-23 富士通モバイルコミュニケーションズ株式会社 プログラム
JP5365584B2 (ja) * 2010-06-16 2013-12-11 株式会社オートネットワーク技術研究所 制御装置
JP5085719B2 (ja) * 2010-11-15 2012-11-28 日立オートモティブシステムズ株式会社 車両制御用ソフトウェア及び車両制御装置
JP5482766B2 (ja) * 2011-11-07 2014-05-07 株式会社デンソー 車両用ナビゲーション装置
WO2014178920A2 (en) * 2013-04-30 2014-11-06 Flood Monkey Inc. Intelligent electronic water flow regulation system
JP6838776B2 (ja) * 2020-01-23 2021-03-03 日立Astemo株式会社 車載処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3460593B2 (ja) 1998-09-17 2003-10-27 株式会社デンソー 車両用制御装置
EP1033654A1 (en) * 1999-03-01 2000-09-06 Sony International (Europe) GmbH Buffered communication between entities operating at different data rates
JP3692820B2 (ja) * 1999-03-10 2005-09-07 株式会社デンソー 自動車用制御装置
JP3737650B2 (ja) 1999-07-09 2006-01-18 株式会社東芝 統合コントローラ及び制御システム
US6633801B1 (en) * 1999-10-20 2003-10-14 Stanley H. Durlacher Method and apparatus for providing information to pilots
JP2001159525A (ja) 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
JP3739615B2 (ja) * 1999-11-30 2006-01-25 三菱電機株式会社 車載用情報処理装置および記録媒体
US6757262B1 (en) * 2000-09-15 2004-06-29 Motorola, Inc. Service framework supporting remote service discovery and connection
WO2002030626A1 (fr) * 2000-10-11 2002-04-18 Sony Corporation Systeme de commande de robot et procede de commande de robot
US6449541B1 (en) * 2000-10-17 2002-09-10 Microsoft Corporation Application-to-component communications helper in a vehicle computer system
US7207041B2 (en) * 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
US6928344B2 (en) * 2002-03-25 2005-08-09 Sun Microsystems, Inc. Vehicle mode manager
WO2004059505A1 (en) * 2002-12-17 2004-07-15 Systemauto System, method and computer program product for sharing information in a distributed framework

Also Published As

Publication number Publication date
JP2004192541A (ja) 2004-07-08
EP1445697A3 (en) 2007-10-10
EP1445697A2 (en) 2004-08-11
US20040128037A1 (en) 2004-07-01
US7415323B2 (en) 2008-08-19

Similar Documents

Publication Publication Date Title
JP4515701B2 (ja) 車両用制御プログラム、及び、車両用制御装置
JP4728020B2 (ja) 車両制御用ソフトウェア及び車両制御装置
US20080313614A1 (en) Embedded controllers and development tool for embedded controllers
US20030106044A1 (en) Software module for intergration
JPH0616249B2 (ja) マイクロプロセッサ
JP2010015534A (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
WO2016082755A1 (en) Displaying setup interface
US7558990B2 (en) Semiconductor circuit device and method of detecting runaway
JP3988636B2 (ja) マイクロコンピュータ及び車両用ecu
JPH0612526B2 (ja) プログラマブル割込みコントローラ
JP4422076B2 (ja) データ処理装置、電子制御ユニット、ならびに自動車
JP2008276674A (ja) タスクの実行時間を特定することのできる電子計算装置、および当該電子計算装置用のプログラム
JPH10240522A (ja) 演算装置
JP2008262340A (ja) デュアルコア向け自動コード生成装置
JP5178878B2 (ja) 車両用制御装置
JPH0740794A (ja) 自動車用制御ユニット
JP4919782B2 (ja) 組込みコントローラ及び組込みコントローラ開発ツール
JP3241842B2 (ja) プリンタ選択方法及びその方法を用いた情報処理装置
WO2010109609A1 (ja) 処理装置及び車両用エンジン制御装置
US20230259474A1 (en) Method, system, and device for software and hardware component configuration and content generation
JP2021043537A (ja) 電子制御装置
JP2591211B2 (ja) 高速割込み処理装置
JP4231465B2 (ja) 組込み制御装置
JPH0962393A (ja) ライセンス数制限付対話型ジョブのタイムアウト方式
JPH04195316A (ja) 省電力回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070925

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070928

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100513

R151 Written notification of patent or utility model registration

Ref document number: 4515701

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: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees