JP2010033436A - 制御装置、制御方法及びコンピュータプログラム - Google Patents

制御装置、制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2010033436A
JP2010033436A JP2008196520A JP2008196520A JP2010033436A JP 2010033436 A JP2010033436 A JP 2010033436A JP 2008196520 A JP2008196520 A JP 2008196520A JP 2008196520 A JP2008196520 A JP 2008196520A JP 2010033436 A JP2010033436 A JP 2010033436A
Authority
JP
Japan
Prior art keywords
program
function
layer
hardware resource
resource
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.)
Pending
Application number
JP2008196520A
Other languages
English (en)
Inventor
Yuuri Kinoshita
有里 木下
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.)
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries 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 Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd filed Critical Sumitomo Wiring Systems Ltd
Priority to JP2008196520A priority Critical patent/JP2010033436A/ja
Priority to PCT/JP2009/003580 priority patent/WO2010013459A1/ja
Priority to US13/054,904 priority patent/US8612640B2/en
Priority to DE112009001842T priority patent/DE112009001842T8/de
Publication of JP2010033436A publication Critical patent/JP2010033436A/ja
Pending 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

Abstract

【課題】プラットフォームプログラム全体を改変することなく再利用性を向上させて開発過程の短縮化、開発負荷の削減を図ることができる制御装置、制御方法及びコンピュータプログラムを提供する。
【解決手段】プラットフォームプログラムに基づくプラットフォーム層108における機能を、ハードウェア資源の論理的な制御を行なうリソースマネージャ層108aと、ハードウェア資源自体に依存する物理的制御を行なうリソースコントローラ層108bとに分離する。リソースマネージャ層108aは、アプリケーションプログラムから必要となるデータを特定すればよく、実際に何れの記憶部のいずれのアドレスに存在するかを知る必要はなく、リソースコントローラ層108bにて把握しており、リソースマネージャ層108aから指示されたデータを物理的に読み出して応答する。
【選択図】図2

Description

本発明は、アプリケーションプログラムとプラットフォームプログラムとが実行される制御装置に関する。特に、ハードウェア資源が異なる場合であってもプラットフォームプログラムの一部にて差異を吸収可能とすることにより再利用性を向上させ、開発過程の短縮化、開発負荷の削減を図ることができる制御装置、制御方法及びコンピュータプログラムに関する。
近年では、種々の制御を行なう制御装置に通信機能を備えさせて複数接続し、各制御装置に夫々機能を割り振って相互にデータを交換し、連携して多様な処理を行なわせるシステムが各分野で利用されている。例えば、車両に配される車載LAN(Local Area Network)の分野では、ECU(電子制御装置;Electronic Control Unit)は通信機能を有し、各ECUに夫々特定の処理を行なわせて相互にデータを交換することにより、システムとして多様な機能を実現させている(例えば、特許文献1参照)。
複数の制御装置が相互に連携して多様な処理を行なわせる場合、各制御装置の機能を特化させるよりも、各制御装置が同様の機能を実現することが可能な構成とし、設定に応じて相互に代替して処理を行なうことができるようにすることもできる。具体的には、各制御装置に特定の機能を実現させるための各アプリケーションプログラムから共通機能を分離し、共通機能をプラットフォームとなるプログラムで実現するように構成する。共通機能としては例えば、アプリケーションプログラムの実行に用いられるデータの記憶、更新、及び他の装置との通信処理等がある。
これにより、通信仕様の定義が変化した場合にはプラットフォームのプログラムを改変し、全制御装置に改変後のプラットフォームのプログラムを実行させればよい。この場合、アプリケーションプログラムは通信仕様の改変に対応させる必要がなく、それまでと同様の処理によって他の制御装置との通信を実現できる。したがって、ハードウェアの違いに応じた種々のバージョンのアプリケーションプログラムを用意するなど、煩雑な管理が必要ない。アプリケーションプログラムは、純粋に特定の機能を実現するための構成とすればよく、プログラムの再利用性が高くなる。
特開2007−329578号公報
プラットフォームプログラムの構成もハードウェア資源の違いに応じて異なる。例えば、ECUに搭載される記憶装置が、EEPROMである場合とフラッシュメモリである場合とがある。この場合、実際の物理的な処理は双方で異なるが、記憶装置に対する所望のデータを読み書きが実際に為されるのであれば、いずれの処理が行なわれるかは問題ない。
ハードウェア資源の構成、仕様又は規定が異なる毎に、プラットフォームプログラムを改変することが必要な場合、プラットフォームプログラムの再利用性が低下する。この場合、制御装置自体の開発、異なるハードウェア資源を備える複数の制御装置を用いる大規模システムの開発における煩雑性を改善させることができず、開発過程の短縮化、開発負荷の削減を図ることが困難である。
本発明は斯かる事情に鑑みてなされたものであり、プラットフォームプログラムによる機能を、ハードウェア資源の論理的な制御を行なう部分と、ハードウェア資源自体に依存する物理的制御を行なう部分とに分離して、プラットフォームプログラムの再利用性を向上させて開発過程の短縮化、開発負荷の削減を図ることができる制御装置、制御方法及びコンピュータプログラムを提供することを目的とする。
第1発明に係る制御装置は、一又は複数のアプリケーションプログラムを実行する第1実行手段と、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御するプラットフォームプログラムを実行する第2実行手段とを備える制御装置において、第2実行手段は、アプリケーションプログラムからの要求に対応して前記ハードウェア資源からの情報取得指示、又は前記ハードウェア資源への動作指示を行なう指示手段と、該手段からの指示に応じて前記ハードウェア資源に対するデータの入出力を制御する制御手段とを備え、前記制御手段は、複数の機能実行手段を備えることを特徴とする。
第2発明に係る制御装置は、前記機能実行手段の一は、動作指示に対応するハードウェア資源が存在するか否かを判断する手段と、存在しないと判断した場合、前記ハードウェア資源における動作をエミュレートし、前記指示手段へ応答する手段とを備えることを特徴とする。
第3発明に係る制御装置は、第1実行手段にて実行されるべきアプリケーションプログラムの指示、第2実行手段における前記指示手段及び制御手段にて実行されるべき機能の指示、又は、前記第1及び第2実行手段におけるアプリケーションプログラム及び各機能の実行状態の検出を行なう手段を更に備えることを特徴とする。
第4発明に係る制御方法は、一又は複数のアプリケーションプログラムを実行し、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御するプラットフォームプログラムを実行することにより、前記ハードウェア資源の制御を行なう方法において、プラットフォームプログラムの処理により、アプリケーションプログラムからの要求に対応して前記ハードウェア資源への情報取得指示又は前記ハードウェア資源への動作指示、及び前記ハードウェア資源に対するデータの入出力の制御を夫々独立に実行し、更に、データの入出力の制御を、ハードウェア資源夫々に応じて独立的に行なうことを特徴とする。
第5発明に係るコンピュータプログラムは、コンピュータに、一又は複数のアプリケーションプログラムを実行させた場合に、該アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御させるコンピュータプログラムであって、所定の機能単位で分離された複数のプログラム部品を含み、各プログラム部品は、コンピュータに、アプリケーションプログラムからの要求に対応して前記ハードウェア資源からの情報取得指示、又は前記ハードウェア資源への動作指示を行なう機能、及びハードウェア資源に対するデータの入出力を制御する機能を夫々実現させることを特徴とする。
第1発明、第4発明及び第5発明にあっては、アプリケーションプログラムからの要求に対応してハードウェア資源からの情報取得の指示、又はハードウェア資源への動作指示などの論理的アクセスを行なう手段と、実際にハードウェア資源のI/Oメモリにアクセスするなどのハードウェア資源に対する入出力を制御する物理的アクセスを行なう手段とが個別に備えられる。ハードウェア資源の違いは物理的アクセスを行なう側で対応し、論理的アクセスを行なう側では、何れのハードウェアの何れの物理的箇所にてデータの入出力が行なわれるかを意識することなしに、所望のデータの入出力を実現可能である。
更に、少なくとも物理的アクセスを行なう手段では、個別に機能を実現する機能モジュールが独立に動作可能に構成される。これにより、種々のハードウェア資源の違い又は求められる仕様によって機能モジュールを選択して組み合わせることが可能となり、プラットフォームプログラム自体をハードウェアの違いに応じて全体的に改変する必要がなくなる。
第2発明にあっては、アプリケーションプログラムからの処理要求に対応するハードウェア資源が実際には存在しない場合であっても、物理的アクセスを実現する機能によってハードウェア資源における動作がエミュレートされ、あたかも存在しているように応答が返される。したがって、論理的アクセスを実現する側では、ハードウェア資源の存否によらず、アプリケーションプログラムからの処理要求に対応する応答が可能である。これにより、ハードウェア資源の仕様の違いに対応させてプラットフォームプログラム全体を各別に改変する必要がない。
第3発明にあっては、更にアプリケーションプログラム及びプラットフォームプログラムにて実現される機能を制御装置全体の種々の条件に応じて変更することが可能となる。また、各プログラムの状態を夫々の実行手段に亘って検出可能であるので、アプリケーションプログラムの実行状態に応じてハードウェア資源の制御機能を選択するなどの処理が可能となる。
本発明による場合、プラットフォームプログラムが、論理的アクセスのための機能を実現する部分と、物理的アクセスのための機能を実現する部分とに分けられて構成され、論理的アクセスのための機能を実現する部分では、種々のハードウェア資源における物理的な取り扱いに左右されない構成とする。したがって、ハードウェア資源の仕様の違いに対応させてプラットフォームプログラム全体を各別に改変する必要がなく、物理的アクセスを実現する部分のみ、ハードウェア資源の違いに対応させればよい。論理的アクセスを実現する部分は共通して種々のハードウェア資源に対応させることができ、再利用性が向上する。これにより、開発過程の短縮化、開発負荷の削減を図ることができる。
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
なお、以下に示す実施の形態では、本発明に係る制御装置を車両に搭載される種々の制御を行なうECU(Electronic Control Unit)に適用し、各ECU間を通信線で接続して連携した処理を行なう制御システムを例に説明する。
図1は、本実施の形態におけるECUの構成を示すブロック図である。なおECU1は、通信線2を介して他のECUと接続され、相互に通信が可能に構成されている。また、ECU1には、センサ3及びアクチュエータ4が接続されている。ECU1は、センサ3から得られる情報に基づく自身の処理、又は他のECUの処理によって得られる情報に基づいてアクチュエータ4を動作させるなど、特有の機能を有している。なお、ECU1には、センサ3及びアクチュエータ4がいずれも接続されているが、何れか一方のみ接続されているか又は何れも接続されていなくともよい。
ECU1は、各構成部の動作を制御するCPU(Central Processing Unit)11、不揮発性メモリを用いたROM12、高速にアクセス可能なメモリを用いたRAM13を含むマイクロコンピュータ10(以下、マイコン10という)と、不揮発性メモリを用いた記憶部14、ネットワークコントローラを利用した通信部15と、センサ3及びアクチュエータ4とのインタフェースである入出力部16とを備える。
記憶部14は、フラッシュメモリ、EEPROM(Electrically Erasable and Programmable ROM)等のメモリを利用し、比較的に大容量の記憶容量にて構成される。記憶部14には、マイコン10が後述するアプリケーションプログラム17,17,…を実行することによって行われる処理により得られる情報、例えばECU1の状態情報、ECU1が搭載される車両の状態情報等のシステム情報が記憶される。また、記憶部14には、マイコン10がセンサ3から取得したデータ、及び他のECUから受信したデータ等が記憶される。
通信部15は、マイコン10による通信線2を介した他のECUとの通信を実現する。通信部15は具体的に、CAN(Control Area Network)、LIN(Local Interconnect Network)、又はFlexRay(登録商標)などのプロトコルに準じた通信を実現する。通信部15は、マイコン10の一部として構成されてもよい。
入出力部16は、上述のようにセンサ3及びアクチュエータ4とのインタフェースであり。入出力部16はセンサ3が接続されている場合、センサ3から出力される測定値等を表わす信号を取り出してマイコン10へ出力する。また入出力部16は、アクチュエータ4が接続されている場合、マイコン10から出力されるアクチュエータ4の制御信号をアクチュエータ4へ出力する。入出力部16は、D/A変換、A/D変換機能を有していてもよい。
マイコン10のCPU(Central Processing Unit)11は、ROM12に記憶されている制御プログラム1PをRAM13に読み出して実行することにより各構成部を制御し、特有の機能を実現する。
ROM12には、マスクROM、フラッシュメモリ、PROM(Programmable ROM)、EPROM(Erasable and Programmable ROM)、EEPROM(Electrically EPROM)等のメモリを利用する。ROM12には、上述のように制御プログラム1Pが記憶されているほか、制御に用いる制御データが記憶されていてもよい。
RAM13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等のメモリを利用している。RAM13にはCPU11の処理によって発生する各種情報が一時的に記憶される。
ROM12に記憶されている制御プログラム1Pは、マイコン10にECU1特有の処理を実行させるためのアプリケーションプログラム17,17,…、ハードウェア資源の制御、通信機能など、他のECUとの共通機能を実現するための各種を含むプラットフォーム18、アプリケーションプログラム17,17,…とプラットフォームプログラム18との間のやり取りを仲介するミドルウェアプログラム19、及び、各プログラムに基づく処理をECU1全体として制御するシステムマネージャプログラム20を含んで構成される。
アプリケーションプログラム17,17,…には、車両のエンジンを制御するための処理を実現させるプログラム、ドアロックのオンオフ、ヘッドライトのオンオフ等を切り替えるための処理を実現させるプログラム等、ECU1に特有の機能を実現させるための種々のプログラムが含まれる。
プラットフォームプログラム18には、記憶部14へのデータの書き込み、記憶部14からのデータの読み出し、通信部15を介したデータの送信などの、アプリケーションプログラム17,17,…に基づくマイコン10からのハードウェア資源への処理要求に対応して各ハードウェア資源への処理を実現するプログラムが含まれる。具体的には、アプリケーションプログラム17,17,…を実行するCPU11からの処理要求に応じた論理的データアクセスを実現するデバイスドライバに相当するリソースマネージャ部と、各ハードウェア資源の実装に基づく物理的データアクセスを実現するBIOS(Basic Input/Output System)に相当するリソースコントローラ部とを含む。
ミドルウェアプログラム19には、アプリケーションプログラム17,17,…からの処理要求をプラットフォームプログラム18に対応させるように変換し、プラットフォームプログラム18へ渡すなどのインタープリタ機能を実現するためのプログラムが含まれている。具体的には、ミドルウェアプログラム19は、アプリケーションプログラム17,17,…に基づくCPU11からの出力要求、例えば記憶部14へのデータ書き込み要求、通信部15を介した送信要求を受け付け、プラットフォームプログラム18に対応させて受け渡す出力系処理機能を含む。そしてミドルウェアプログラム19は、プラットフォームプログラム18から入力されるデータを受け付け、アプリケーションプログラム17が解釈可能に変換等を行なってアプリケーションプログラム17,17,…へ渡す入力系処理機能とを含む。また、ミドルウェアプログラム19は、後述するシステムマネージャプログラム20に基づくCPU11から渡される管理情報をアプリケーションプログラム17,17,…へ渡す機能を実現するための管理系処理機能を実現する。
システムマネージャプログラム20は、CPU11によって実行されるアプリケーションプログラム17,17,…に基づく処理、プラットフォームプログラム18に基づく処理、ミドルウェアプログラム19に基づく処理、及び、システムマネージャプログラム20に基づく処理の全体を、ECU1として機能すべき状況に対応させて制御させるためのプログラムである。例えば、ECU1が出荷前のテスト段階における動作をすべきなのか、運用中における動作をすべきなのか、又はメンテナンス中における動作をすべきなのかなどの状況の違いに応じて、各プログラムに基づく処理を切り替える機能を実現する。又は、ECU1が日本国仕様の車両、又は北米仕様の車両に対応すべきなのかに応じて各プログラムに基づく処理を切り替える機能を実現する。また例えば、実行されているアプリケーションプログラム17,17,…に応じてハードウェア資源の物理的制御方法を変化させるなどの機能を実現する。
図2は、本実施の形態におけるECU1のCPU11が実現する機能を概念的に説明する説明図である。CPU11は、ROM12に記憶されている制御プログラム1PをRAM13に読み出して実行する。制御プログラム1Pは上述のようにアプリケーションプログラム17,17,…、プラットフォームプログラム18、ミドルウェアプログラム19、及びシステムマネージャプログラム20を含む。CPU11は、制御プログラム1Pに含まれる各プログラムに基づき、アプリケーション層107、ミドルウェア層109、プラットフォーム層108の3つの階層に分けられたソフトウェア構造にて動作する。
最上層のアプリケーション層107では、CPU11はアプリケーションプログラム17,17,…に基づき、各種アプリ(アプリA,アプリB,アプリC,…)として機能する。
ミドルウェア層109では、CPU11はミドルウェアプログラム19に基づき、アプリケーション層107の各アプリからの処理要求を受け付け、又はプラットフォーム層108からのデータをアプリケーション層107へ受け渡すための各機能モジュール群112,112,…が実行される。各機能モジュール群112,112,…は、例えば、プラットフォーム層108から得られるデータをアプリケーション層107へ受け渡す入力系の機能モジュール112、アプリケーション層107からの出力を受け渡す出力系の機能モジュール112、後述するシステムマネージャ110からの指示に関する管理情報を受け渡すための管理系の機能モジュール112がある。そしてミドルウェア層109では、ミドルウェアプログラム19に基づき、種々のアプリケーションプログラム17,17に対応するインタフェース群111,111,…が実現される。
最下層のプラットフォーム層108では、CPU11によりプラットフォームプログラム18に基づきハードウェア群14,15,16,…を実際に制御する処理が行なわれる。例えば、記憶部14との間のデータの読み書き、通信部15とのデータの受け渡しなどの各機能が実現される。プラットフォーム層108は、記憶部14からどのデータを読み出すかを指示するなど論理的なアクセスを実行する機能群181a,182a,183a,…が実現されるリソースマネージャ層108aと、実際に送信するデータを通信部15のI/Oメモリに書き込むなど物理的アクセスを実行する機能群181b,182b,183b,…が実現されるリソースコントローラ層108bとに更に内部で階層化される。
例えば、記憶部14などのメモリの読み書きについては、メモリから何れのデータを読み出すのか、何れのデータを書き込むのかを、アプリケーション層107からの要求に応じて決定するメモリ管理機能181aがリソースマネージャ層108aにて実現され、指示されたデータのメモリ中におけるアドレスを特定して実際にデータを読み出し、データを実際に書き込むメモリ制御機能181bがリソースコントローラ層108bにて実現される。その他、通信部15へのデータの送信指示等を行なう通信管理機能182aがリソースマネージャ層108aに、実際に通信部15へのデータの入出力を行なう通信制御機能182bがリソースコントローラ層108bにて実現される。同様にしてセンサから取得したデータの読み出し指示を行なうセンサ管理機能183aはリソースマネージャ層108aにて実現され、実際にセンサから信号を受信するセンサ制御機能183bはリソースコントローラ層108bにて実現される。
プラットフォーム層108をリソースマネージャ層108a及びリソースコントローラ層108bに階層化する利点は以下である。例えば記憶部14からのデータの読み出しがアプリケーション層107におけるアプリから要求される。処理要求を受け付けるプラットフォーム層108ではリソースマネージャ層108aが、記憶部14に利用されるメモリがEEPROMであるか、フラッシュメモリであるかによらず、所望のデータを記憶部14から読み出してアプリ側へ入力できればよい。一方で、記憶部14がEEPROMであるか、フラッシュメモリであるか、各種ハードウェア仕様に応じて実際のデータの読み出し方は異なる。この差異は、リソースコントローラ層108bにおけるメモリ制御機能181bにて、メモリの違いに応じた制御が行なわれ、読み出されたデータがリソースマネージャ層108aのメモリ管理機能181aに渡される。これにより、リソースマネージャ層108aのメモリ管理機能181aでは、メモリの種別等によらず、アプリからの処理要求に対応する応答としてデータをアプリケーション層107側へ渡すことができる。
通信部15からデータの送信がアプリから指示される場合も同様である。リソースマネージャ層108aでは、ECU1がCANに接続されているのか、LINに接続されているのか、又はFlexRayに接続されているかによらず、所定のデータを通信部15から他のECUなどの装置へ送信できればよい。一方で、通信部15からデータを実際に送信する場合には、そのプロトコルの違いに応じてデータにヘッダ等の情報を付加して送信する必要がある。この差異は、リソースコントローラ層108bにおける通信制御機能182bにてプロトコルの違いに応じた制御が行なわれる。これにより、リソースマネージャ層108aにおける通信管理機能182aでは、プロトコルの違いによらず、アプリからのデータ送信要求に対応した処理を行なうことができる。
また、リソースコントローラ層108bでは、ハードウェア資源の有無に応じた処理を行なう機能を有する。詳細には、各ハードウェア資源に対応する制御機能181b、182b,183b,…では、ハードウェア資源が存在しない場合に、その動作をエミュレートして上位層、即ちリソースマネージャ層108aへ応答を返すエミュレータ機能を有する。例えば、リソースマネージャ層108aから「ヘッドライト」が点灯しているか否かのデータの要求があったとする。この場合、センサ制御機能183bでは、「ヘッドライト」に接続していないために点灯しているか否かを直接的に判定する信号を取得できないとき、例えば他のECUから受信して得ることが可能な「スモールライト」が点灯してるか否かの情報を「ヘッドライト」の情報としてデータを返す。エミュレータ機能により、リソースマネージャ層108aではハードウェア資源の有無によらずに処理が可能である。なお、各ハードウェア資源に対応する制御機能181b,182b,183b,…が夫々エミュレータ機能を持つのでなく、エミュレートのみを実現する仮想化機能が独自にリソースコントローラ108bにて機能してもよい。
リソースコントローラ層108bにおける各機能は、ハードウェア資源の種別又は仕様の違い、及びハードウェア資源の有無に影響されるため、ハードウェア資源に応じて対応させる必要がある。一方で、リソースマネージャ層108aにて実現される各機能は、ハードウェア資源への物理的なアクセス制御から切り離されて構成されるので、ハードウェア資源の種別又は仕様の違い、及びハードウェア資源の有無によらない。したがって、種々のハードウェア資源に応じて設計されるリソースコントローラ層108bに、共通に一のリソースマネージャ層108aにおける各機能を組み合わせることができる。
更に、CPU11がシステムマネージャプログラム20を読み出して実行することにより、システムマネージャ110の機能がプラットフォーム層108とインタフェースを共有して実現される。システムマネージャ110は、アプリケーション層107にて機能する各種アプリの実行状態、実行されるアプリに応じたミドルウェア層109における機能モジュール112,112,…の実行状態、プラットフォーム層108におけるハードウェア資源の有無等を3つの層にわたって検出し、情報を保持するシステム監視機能113、ECU1が搭載される車両の車種、仕向地、グレード、ECU1の機能の切り替えに応じて各層で実現されるべきアプリ、機能モジュール、動作すべきハードウェア資源等を指示する機能管理114を実現する。なお、システムマネージャ110は図2に示すようなプラットフォーム層108とインタフェースを共有する構成のみならず、各層の機能と直接的に情報を授受できる構成としてもよい。
アプリケーション層107で機能するアプリの例としては、信号制御、条件判定、負荷(アクチュエータ4等)を制御する負荷制御などがある。アプリケーション層107で実行される各アプリケーションプログラム17,17,…は、システムマネージャ110がミドルウェア層109の管理系の機能モジュールを介して渡す管理情報に基づいて決定される。例えば、アプリケーション層107にて実行される特定のアプリケーションプログラム17に基づき、CPU11がミドルウェア層109から管理情報を読み出し、管理情報に基づき実行されるべき他のアプリケーションプログラム17,17,…を選択して実行させる。管理情報には、例えば、ECU1の状態又は状況を示す情報が含まれ、ECU1の状態又は状況に応じて実行すべきアプリケーションプログラム17,17,…を識別する情報が含まれている。例えば、ECU1が出荷前のテスト段階にあることを示す情報、その場合に実行されるべきアプリケーションプログラム17,17,…を識別する情報が含まれており、アプリケーション層107で当該管理情報に基づいて適切なアプリケーションプログラム17が選択されて実行されるなど、状況に応じた処理が可能である。
ミドルウェア層109で機能する機能モジュール112,112,…の例としては、プラットフォーム層108から得られる情報を、アプリケーション層107で機能するアプリへ受け渡す入力系の中継機能がある。入力系の中継機能では、CPU11はプラットフォーム層108から得られる情報の内、アプリケーション層107で機能するアプリが要求する情報を渡す。他に、アプリケーション層107で機能するアプリから出力されるデータをプラットフォーム層108へ引き渡す出力系の中継機能がある。出力系の中継機能では、CPU11はアプリケーション層107で機能するアプリから出力された情報をその用途に合わせて、プラットフォーム層108における出力先を選択し、プラットフォームインタフェース108cから適切なインタフェースを呼び出して渡す。
例えば、アプリから出力された情報が外部装置へ送信するデータである場合、プラットフォーム層108に対応した出力系の機能モジュール112の機能により、適した通信プロトコルに対応した通信ハードウェアからデータが送信されるように、プラットフォームインタフェース108cから適切なインタフェースが呼び出されることによって出力先が選択される。また、アプリから出力された情報が記憶部14への書き込むデータである場合、出力系の機能モジュール112の機能により、記憶部14へアクセスするためのインタフェースが適切に選択される。
図3は、プラットフォームプログラム18に基づき、リソースマネージャ層108a及びリソースコントローラ層108bにて処理要求に応じて行なわれる処理の一例を示すフローチャートである。
リソースマネージャ層108aにおける各機能の内の、ミドルウェア層109から出力先として選択された機能にて、アプリケーション層107のアプリからの処理要求を受け付ける(ステップS1)。リソースマネージャ層108aの機能にて、処理要求に応じたリソースコントローラ層108bへの指示を作成して通知する(ステップS2)。上述のメモリ管理機能の例であれば、アプリからデータの読み出し要求がされた場合、リソースマネージャ層108aにおけるメモリ管理機能ではデータを特定してリソースコントローラ層108bへ特定したデータの読み出しを指示する。
リソースコントローラ層108bの機能にて、リソースマネージャ層108aからの指示を受け付け(ステップS3)、指示に対応するハードウェア資源が存在するか否か判断し(ステップS4)、存在する場合には(S4:YES)、指示に応じてハードウェア資源にて物理的な制御を実行し(ステップS5)、応答を返す(ステップS6)。上述のメモリ制御機能181bの例であれば、特定されたデータのアドレスに基づき記憶部14へ直接的に読み出しを指示し、記憶部14のI/Oメモリからデータを読み出すなどの処理を行なう。
リソースコントローラ層108bにて、指示に対応するハードウェア資源が存在しない場合には(S4:NO)、動作をエミュレートして(ステップS7)、応答を返す(S6)。上述のメモリ制御機能181bの例であれば、特定されたデータが記憶されるメモリが存在しない場合、例えば通信部15にて受信して、一時的に記憶されているデータを読み出したデータとして返す。また、センサ制御機能183bの例であれば、読み出し指示に係るデータを出力するセンサが接続されていない場合、通信部15にて受信したデータをセンサからのデータとして返す。これにより、あたかもセンサが接続されているかのように振舞われる。
リソースマネージャ層108aでは、リソースコントローラ層108bからの応答を検知し(ステップS8)、検知した応答を処理要求元のアプリ側へ返すことにより応答し(ステップS9)、処理を終了する。
このように、本実施の形態におけるECU1の制御プログラム1Pのプラットフォームプログラム18に基づき、プラットフォーム層108が、論理的アクセスのための機能を実現するリソースマネージャ層108aと、物理的アクセスのためにハードウェア資源に依存するリソースコントローラ層108bとに分離されて夫々独立に存在する構造となる。これにより、リソースマネージャ層108aでは、どのようなハードウェア資源の種別又は仕様、更にはハードウェア資源の有無によらずに機能が実現されるので、リソースマネージャ層108aに相当するプログラム部分は、ECU1に用いられるハードウェア資源の種別又は仕様の違い、若しくは有無に対応させて各別に改変する必要がない。リソースコントローラ層108bに相当する部分のみ、ハードウェア資源の違いに対応させればよい。リソースマネージャ層108aに相当するプログラム部分は共通して種々のハードウェア資源に対応させることができ、再利用性が向上する。これにより、開発過程の短縮化、開発負荷の削減を図ることができるなど、優れた効果を奏する。
複数のECUを用いて連携して多様な処理を行なわせる場合、各ECUで夫々種別又は仕様の異なるハードウェア資源を用いる場合がある。この場合に、各ECUのプラットフォームプログラム18を夫々のハードウェア資源に対応させるのでは、プログラムの管理が煩雑となると共に、開発が非効率的となる。これに対し、本実施の形態におけるプラットフォーム層108の構造であれば、各ECUに用いられる種々の種別又は仕様が異なるハードウェア資源に対しても共通のリソースマネージャ層108aを用いることができ、汎用性が向上する。これにより、開発期間の短縮化のみならず、大規模開発においてもプログラム管理の煩雑性を解消することができるなど、優れた効果を奏する。
また、リソースコントローラ層108bの各制御機能181b,182b,183b,…では、ハードウェア資源が存在しない場合にはエミュレータ機能を実現して実態が存在するように振舞うことができる。したがって、ハードウェア資源の種別又は仕様が異なるのみならず、そもそも各ECUでハードウェア資源の有無の違いがあったとしても、同一のリソースマネージャ層108aを動作させることができ、汎用性が向上し、再利用性が向上する。これにより、開発過程の短縮化、開発負荷の削減を図ることができるなど、優れた効果を奏する。
上述に示した実施の形態では、本発明は車両に搭載されるECUに適用される例を示した。しかしながら本発明はこれに限らず、種々の制御を行なうコンピュータ装置全般に適用することができる。
なお、上述のように開示された本実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本実施の形態におけるECUの構成を示すブロック図である。 本実施の形態におけるECUのCPUが実現する機能を概念的に説明する説明図である。 プラットフォームプログラムに基づき、リソースマネージャ層及びリソースコントローラ層にて処理要求に応じて行なわれる処理の一例を示すフローチャートである。
符号の説明
1 ECU
10 マイコン
11 CPU
12 ROM
17,17 アプリケーションプログラム
18 プラットフォームプログラム
19 システムマネージャプログラム
107 アプリケーション層
108 プラットフォーム層
108a リソースマネージャ層
108b リソースコントローラ層
109 ミドルウェア層

Claims (5)

  1. 一又は複数のアプリケーションプログラムを実行する第1実行手段と、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御するプラットフォームプログラムを実行する第2実行手段とを備える制御装置において、
    第2実行手段は、
    アプリケーションプログラムからの要求に対応して前記ハードウェア資源からの情報取得指示、又は前記ハードウェア資源への動作指示を行なう指示手段と、
    該手段からの指示に応じて前記ハードウェア資源に対するデータの入出力を制御する制御手段と
    を備え、
    前記制御手段は、複数の機能実行手段を備えること
    を特徴とする制御装置。
  2. 前記機能実行手段の一は、
    動作指示に対応するハードウェア資源が存在するか否かを判断する手段と、
    存在しないと判断した場合、前記ハードウェア資源における動作をエミュレートし、前記指示手段へ応答する手段と
    を備えることを特徴とする請求項1に記載の制御装置。
  3. 第1実行手段にて実行されるべきアプリケーションプログラムの指示、第2実行手段における前記指示手段及び制御手段にて実行されるべき機能の指示、又は、前記第1及び第2実行手段におけるアプリケーションプログラム及び各機能の実行状態の検出を行なう手段を更に備えること
    を特徴とする請求項1又は2に記載の制御装置。
  4. 一又は複数のアプリケーションプログラムを実行し、前記アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御するプラットフォームプログラムを実行することにより、前記ハードウェア資源の制御を行なう方法において、
    プラットフォームプログラムの処理により、
    アプリケーションプログラムからの要求に対応して前記ハードウェア資源への情報取得指示又は前記ハードウェア資源への動作指示、及び前記ハードウェア資源に対するデータの入出力の制御を夫々独立に実行し、
    更に、データの入出力の制御を、ハードウェア資源夫々に応じて独立的に行なう
    ことを特徴とする制御方法。
  5. コンピュータに、一又は複数のアプリケーションプログラムを実行させた場合に、該アプリケーションプログラムからの要求に対応してハードウェア資源の動作を制御させるコンピュータプログラムであって、
    所定の機能単位で分離された複数のプログラム部品を含み、
    各プログラム部品は、
    コンピュータに、
    アプリケーションプログラムからの要求に対応して前記ハードウェア資源からの情報取得指示、又は前記ハードウェア資源への動作指示を行なう機能、及び
    ハードウェア資源に対するデータの入出力を制御する機能
    を夫々実現させることを特徴とするコンピュータプログラム。
JP2008196520A 2008-07-30 2008-07-30 制御装置、制御方法及びコンピュータプログラム Pending JP2010033436A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008196520A JP2010033436A (ja) 2008-07-30 2008-07-30 制御装置、制御方法及びコンピュータプログラム
PCT/JP2009/003580 WO2010013459A1 (ja) 2008-07-30 2009-07-29 制御装置、制御方法及びコンピュータプログラム
US13/054,904 US8612640B2 (en) 2008-07-30 2009-07-29 Control apparatus, control method and computer program
DE112009001842T DE112009001842T8 (de) 2008-07-30 2009-07-29 Steuervorrichtung, Steuerverfahren und Computerprogramm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008196520A JP2010033436A (ja) 2008-07-30 2008-07-30 制御装置、制御方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2010033436A true JP2010033436A (ja) 2010-02-12

Family

ID=41610173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008196520A Pending JP2010033436A (ja) 2008-07-30 2008-07-30 制御装置、制御方法及びコンピュータプログラム

Country Status (4)

Country Link
US (1) US8612640B2 (ja)
JP (1) JP2010033436A (ja)
DE (1) DE112009001842T8 (ja)
WO (1) WO2010013459A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489214B2 (en) * 2012-11-16 2019-11-26 Dell Products L.P. System and method for application deployment in cloud
EP3101535B1 (en) * 2015-06-01 2022-04-13 OpenSynergy GmbH Method for updating a control unit for an automotive vehicle, control unit for an automotive vehicle, and computer program product

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101146A (ja) * 1999-09-29 2001-04-13 Omron Corp エージェントシステム及び通信方法並びに機器及び記録媒体
JP2006018853A (ja) * 2005-08-29 2006-01-19 Ricoh Co Ltd 画像形成装置
JP2006257998A (ja) * 2005-03-17 2006-09-28 Hitachi Ltd 車両制御用ソフトウェア及び車両制御装置
JP2006260404A (ja) * 2005-03-18 2006-09-28 Ricoh Co Ltd 画像処理装置及び情報設定方法
JP2007128432A (ja) * 2005-11-07 2007-05-24 Toyota Motor Corp 車両用マルチメディア装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574734B1 (en) * 1998-12-28 2003-06-03 International Business Machines Corporation Method and apparatus for securing access to automotive devices and software services
JP4427860B2 (ja) 2000-03-24 2010-03-10 株式会社デンソー 車両用制御装置及び記録媒体
JP4515701B2 (ja) * 2002-12-13 2010-08-04 株式会社デンソー 車両用制御プログラム、及び、車両用制御装置
JP2006142994A (ja) 2004-11-19 2006-06-08 Denso Corp 車両用ネットワークシステムおよび電子制御装置
JP4753623B2 (ja) 2005-05-23 2011-08-24 富士通テン株式会社 車両制御用プログラム及び車両用電子制御装置
JP2007329578A (ja) 2006-06-06 2007-12-20 Auto Network Gijutsu Kenkyusho:Kk 通信方法、車載システム及び車載装置
JP4853196B2 (ja) * 2006-09-19 2012-01-11 株式会社デンソー 制御システム
JP2008276674A (ja) * 2007-05-07 2008-11-13 Denso Corp タスクの実行時間を特定することのできる電子計算装置、および当該電子計算装置用のプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101146A (ja) * 1999-09-29 2001-04-13 Omron Corp エージェントシステム及び通信方法並びに機器及び記録媒体
JP2006257998A (ja) * 2005-03-17 2006-09-28 Hitachi Ltd 車両制御用ソフトウェア及び車両制御装置
JP2006260404A (ja) * 2005-03-18 2006-09-28 Ricoh Co Ltd 画像処理装置及び情報設定方法
JP2006018853A (ja) * 2005-08-29 2006-01-19 Ricoh Co Ltd 画像形成装置
JP2007128432A (ja) * 2005-11-07 2007-05-24 Toyota Motor Corp 車両用マルチメディア装置

Also Published As

Publication number Publication date
US20110126218A1 (en) 2011-05-26
DE112009001842T8 (de) 2012-07-26
WO2010013459A1 (ja) 2010-02-04
US8612640B2 (en) 2013-12-17
DE112009001842T5 (de) 2011-07-21

Similar Documents

Publication Publication Date Title
JP4922262B2 (ja) 制御装置
US5271453A (en) System and method for controlling air conditioner
CN107272549B (zh) 控制装置、控制方法以及记录介质
CN106209449A (zh) 一种绑定网卡的方法及装置
US20060069452A1 (en) Configuration of modules in automation systems
CN113296950B (zh) 处理方法、装置、电子设备及可读存储介质
JP5365584B2 (ja) 制御装置
WO2013150792A1 (ja) I/oデバイス共有システムおよびi/oデバイス共有方法
US10445155B2 (en) Method for the communication between software components in a motor vehicle
JP2010033436A (ja) 制御装置、制御方法及びコンピュータプログラム
US8464016B2 (en) Method and device for switching over in a memory for a control device
WO2006054401A1 (ja) フィールド機器及びこれを用いたシステム
JP5790514B2 (ja) 電子装置
WO2020075351A1 (ja) コントロール装置
CN116506295A (zh) 一种容器化虚拟网元服务功能链构建方法、装置、设备和介质
JP2010033437A (ja) 制御装置、制御方法及びコンピュータプログラム
KR20170059685A (ko) 오토사 기반의 차량 진단 통신 장치 및 그 방법
JP2010231808A (ja) プログラム変更方法及びコンピュータプログラム
KR102441045B1 (ko) 멀티 코어 구조의 전자 제어 유닛에서 수행되는 방법, 그리고 이를 구현하기 위한 장치
Wagner et al. Towards runtime adaptation in AUTOSAR: Adding Service-orientation to automotive software architecture
JP2009298235A (ja) 通信装置、通信システム、通信方法、及びコンピュータプログラム
JP2012048390A (ja) 制御システム、制御装置、制御方法及びコンピュータプログラム
US20220253234A1 (en) Electronic control unit, method, and program
US20230231918A1 (en) Network for data transmission
JP2932855B2 (ja) 多重入出力メモリ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100622