JP6305663B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP6305663B2
JP6305663B2 JP2017554744A JP2017554744A JP6305663B2 JP 6305663 B2 JP6305663 B2 JP 6305663B2 JP 2017554744 A JP2017554744 A JP 2017554744A JP 2017554744 A JP2017554744 A JP 2017554744A JP 6305663 B2 JP6305663 B2 JP 6305663B2
Authority
JP
Japan
Prior art keywords
application program
input
application
information
unmounted
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
JP2017554744A
Other languages
English (en)
Other versions
JPWO2017098644A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2017098644A1 publication Critical patent/JPWO2017098644A1/ja
Application granted granted Critical
Publication of JP6305663B2 publication Critical patent/JP6305663B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

本発明は、アプリケーションプログラム(以下、単にアプリケーションともいう)の更新に関する。
以下では、車載電子制御装置(以下、ECU:Engine Control Unitという)で実行されるアプリケーションの更新について説明する。
自動車には、エンジンの点火時期やステアリングモータの制御を行うECUが搭載されている。従来、加速、操舵、制動に関わる安全クリティカルな制御を行うECU(以下、制御系ECUという)は、車内ネットワークにのみ接続されており、車外ネットワークとは分離されていた。また、これらの制御系ECUに搭載されているアプリケーションの更新は日常的には行われず、サービスキャンペーンやリコール発生時にディーラでアプリケーションの更新を行う程度であった。
しかし、今後は制御系ECUが接続されている車内ネットワークが車外ネットワークと接続され、ディーラ経費の削減等を目的としてクラウドネットワークからの無線通信を介して制御系ECUのアプリケーションの書換えが行われるようになる。さらに、安全運転支援システムや自動走行システムが提供する様々なレベルでの運転支援機能や、各ドライバの嗜好に対応する機能を実現するアプリケーションが制御系ECUに求められる。このため、スマートフォンへのアプリケーション追加と同様に、車の購入後もアプリケーションの改良やアップグレードなどによる制御系ECUのアプリケーションの上書き、追加、削除(以下、上書き、追加、削除をまとめて更新という)がクラウドネットワークから行われるようになると考えられる。
制御系ECUにおけるアプリケーションの更新では、既存のアプリケーションが正常に動作することや、新しいアプリケーションを既定のタイミングで実行できることはもちろん、各アプリケーションが使用するセンサからのデータ入力タイミングやアクチュエータの制御タイミングも、アプリケーションに合わせて実現できるか否か考慮する必要がある。これらデータ入力タイミング及び制御タイミングを満足することで、アプリケーションの更新後もアプリケーション開発者が意図した制御を実現することができる。
従来の制御系ECUでは、アプリケーションの実装パターンは仕向地やオプション毎に存在する程度で、その数が限られていた。このため、アプリケーションの更新を行う際には、新しいアプリケーションの開発毎に、更新対象の制御系ECUの実装パターンを全て網羅して前述のタイミング等を含めた検証を行い、更新可否を判定することが可能であった。
しかし、前述のように多様な要求に応じて制御系ECUが出荷後にもカスタマイズされるようになると、検証が必要な実装パターンは膨大になる。そのうえ、カーメーカや新しいアプリケーションの開発者が、更新対象の制御系ECUに既に実装されているアプリケーションを全て把握しているとは限らない。このような未知のアプリケーションを含んだ制御系ECU、すなわちアプリケーション開発段階では検証を行うことができない実装パターンの制御系ECUを新しいアプリケーションで更新すると、制御系ECUが異常状態となって車両の制御ができなくなり、車が動かなかったり、事故が発生したりする可能性がある。したがって、アプリケーションの更新前に、対象とする制御系ECUでのアプリケーション更新が可能であるか個別に判定する必要がある。
アプリケーションの更新可否判定を行う方法として、例えば特許文献1では、アプリケーションのデッドライン、処理時間、制御系ECU間の通信時間を考慮して判定を行う方法が開示されている。
特開2010−027062号公報
しかしながら上記特許文献1では、制御系ECUに既に実装されているアプリケーションや新しいアプリケーションが使用する、センサからのデータ入力タイミングやアクチュエータの制御タイミングについては考慮されていない。したがって更新内容によっては所望のタイミングよりも一周期近く前のセンサからの古いデータをアプリケーションの演算に使用したり、所望のタイミングよりも一周期近く遅れた制御を行ったりする可能性がある。このような場合には、アプリケーション開発時に想定した車両の制御ができなくなるという課題がある。
本発明は、前述の課題を解決することを主な目的としており、アプリケーションプログラムの更新後も、アプリケーションプログラムへの入力情報が適切なタイミングで入力され、アプリケーションプログラムの演算結果が適切なタイミングで出力されるようにすることを主な目的とする。
本発明に係る情報処理装置は、
端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールを通知する実装済アプリケーション情報を受信する通信部と、
前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する判定部とを有する。
本発明では、実装済アプリケーションプログラムの入出力スケジュールと、未実装アプリケーションプログラムの入出力スケジュールとを解析して、実装済アプリケーションプログラムと未実装アプリケーションプログラムとが端末装置で実行可能であるか否かを判定する。このため、本発明によれば、アプリケーションプログラムの更新後も、端末装置では、アプリケーションプログラムへの入力情報が適切なタイミングで入力され、アプリケーションプログラムの演算結果が適切なタイミングで出力される。
実施の形態1に係る車両用ネットワークシステムのハードウェア構成例を示す図。 実施の形態1に係るECUの機能構成例を示す図。 実施の形態1に係るサーバ装置の機能構成例を示す図。 実施の形態1に係るECUの起動条件と実行時間の例を示す。 実施の形態1に係るパラメータテーブルの例を示す図。 実施の形態1に係るアプリケーションCによる更新前のタイムチャート図。 実施の形態1に係るサーバ装置の動作例を示すフローチャート図。 実施の形態1に係るECUの起動条件と実行時間の例(アプリケーションAと関連付けられている情報の削除後)を示す図。 実施の形態1に係るパラメータテーブルの例(アプリケーションAと関連付けられている情報の削除後)を示す図。 実施の形態1に係るマージ後のパラメータテーブルの例を示す図。 実施の形態1に係るアプリケーションCによる更新後のタイムチャート図。 実施の形態2に係る起動条件と実行時間の例を示す図。 実施の形態2に係るサーバ装置の動作例を示すフローチャート図。 実施の形態2に係るアプリケーションCによる更新後のタイムチャート図。 実施の形態3に係るECUの機能構成例を示す図。 実施の形態3に係るパラメータテーブルの例を示す図。 実施の形態3に係るアプリケーションCによる更新前のタイムチャート図。 実施の形態3に係る更新後の起動条件と実行時間の例を示す図。 実施の形態3に係るアプリケーションCによる更新後のタイムチャート図。
実施の形態1.
以下に、実施の形態1に係る車両用ネットワークシステムを説明する。
より具体的には、以下にて、アプリケーションのデッドラインや処理時間に加えて、制御系ECUに既に実装されているアプリケーションや新しいアプリケーションが使用する、センサからのデータ入力タイミングやアクチュエータの制御タイミングを考慮してアプリケーションの更新可否を判定する車両用ネットワークシステムを説明する。本実施の形態に係る車両用ネットワークシステムにより、アプリケーション更新後も高度な制御を実現することができる。
***構成の説明***
図1は、本実施の形態に係る車両用ネットワークシステムのハードウェア構成例を示す。
車両用ネットワークシステムはECU101とサーバ装置102で構成される。ECU101とサーバ装置102は無線通信網103を介して接続している。ECU101は車両に搭載されており、サーバ装置102は車両外に配置されている。ECU101とサーバ装置102は、それぞれコンピュータである。
ECU101はセンサA104、センサB105、センサC106、センサD107、アクチュエータA108、アクチュエータB109の6つのデバイスと接続している。ECU101はハードウェアとして、センサインタフェース1801と、アクチュエータインタフェース1802と、メモリA1803とプロセッサA1804と送受信インタフェースA1805を備える。センサインタフェース1801は、センサA104〜センサD107から信号を取得するためのインタフェースである。アクチュエータインタフェース1802は、アクチュエータA108とアクチュエータB109を制御するためのインタフェースである。メモリA1803は、各種データ及びプログラムを記憶する。プロセッサA1804は、メモリA1803に記憶されているプログラムを実行する。送受信インタフェースA1805は、無線通信網103を介した通信を行うためのインタフェースである。
サーバ装置102は、ハードウェアとして、メモリB1806とプロセッサB1807と送受信インタフェースB1808を備える。
メモリB1806は、各種データ及びプログラムを記憶する。プロセッサB1807は、メモリB1806に記憶されているプログラムを実行する。送受信インタフェースB1808は、無線通信網103を介した通信を行うためのインタフェースである。
なお、ECU101は端末装置の例に相当し、サーバ装置102は情報処理装置の例に相当する。
図2は、ECU101の機能構成例を示す。
アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114、OS(Operating System)115、更新要求情報送信部119は、プログラムにより実現される。これらプログラムは、メモリA1083に記憶され、プロセッサA1804が読み出して実行する。
また、パラメータテーブル117、データベース118、起動条件120、実行時間121はメモリA1803に記憶されている情報である。起動条件120と実行情報121の2つを合わせてシステム情報116と呼ぶ。
入力制御部113と出力制御部114は、プロセッサA1804で実行されると、実行内容に応じてセンサインタフェース1801やアクチュエータインタフェース1802へアクセスする。より具体的には、入力制御部113は、センサインタフェース1801を介して、センサA104〜センサD107の値を取得する。また、出力制御部114は、アクチュエータインタフェース1802を介して、制御情報を用いてアクチュエータA108とアクチュエータB109を制御する。
更新要求情報送信部119は、プロセッサA1804で実行されると、実行内容に応じて送受信インタフェースA1805へアクセスしてサーバ装置102と通信を行う。
図3は、サーバ装置102の機能構成例を示す。
アプリケーション更新判定部125は、プログラムにより実現される。アプリケーション更新判定部125を実現するプログラムはメモリB1806に記憶され、プロセッサB1807が読み出して実行する。アプリケーション更新判定部125は、プロセッサB1807で実行されると、実行内容に応じて送受信インタフェースB1808へアクセスしてECU101と通信を行う。また、アプリケーション更新判定部125は、プロセッサB1807で実行されると、ECU101がアプリケーションC112を実行できるか否かを判定する。アプリケーション更新判定部125は、通信部及び判定部の例に相当する。また、アプリケーション更新判定部125により行われる動作は、受信処理及び判定処理の例に相当する。
アプリケーションC112、新アプリケーション起動条件122、新アプリケーション実行時間123、新アプリケーションパラメータ情報124はメモリB1806に記憶されている情報である。
アプリケーションC112はECU101へダウンロードされると、他のアプリケーションと同様にメモリA1083に記憶され、プロセッサA1084が読み出して実行する。
***動作の説明***
次に、ECU101の動作概要を説明する。
図2に示すように、ECU101にはアプリケーションA110とアプリケーションB111が実装済である。アプリケーションA110とアプリケーションB111は実装済アプリケーションプログラムの例に相当する。
アプリケーションA110とアプリケーションB111は、センサA104〜センサD107からの入力情報A〜入力情報Dのデータを基に演算を行い、制御情報Aと制御情報Bを生成する。入力情報A〜入力情報Dは、アプリケーションA110とアプリケーションB111が演算に用いるデータである。制御情報Aと制御情報Bは、アプリケーションA110とアプリケーションB111の演算結果である。
ECU101は制御情報Aと制御情報Bを用いてアクチュエータA108とアクチュエータB109を制御し、車両の制御を行う。
また、ECU101は必要に応じてサーバ装置102から新しいアプリケーションC112をダウンロードし、アプリケーションA110やアプリケーションB111の機能を拡張したり、別の新しい機能を追加したりして、ドライバの好みに合った車両の制御を実現する。
次に、ECU101の各機能を説明する。
アプリケーションA110は、起動するとデータベース118に格納されている入力情報Aと入力情報Bを用いて演算処理を行い、制御情報Aを算出し、データベース118に格納する。
アプリケーションB111は、起動するとデータベース118に格納されている入力情報Cを用いて演算処理を行い、制御情報Bを算出し、データベース118に格納する。
入力制御部113は、起動すると既定の入力タイミングでセンサA104〜センサD107から入力情報A〜入力情報Dを取得し、取得した入力情報A〜入力情報Dをデータベース118へ書込む。
入力情報A〜入力情報Dは、アプリケーションA110及びアプリケーションB111の演算に用いられる。
出力制御部114は、起動すると既定の出力タイミングでデータベース118に格納されている制御情報Aを用いてアクチュエータA108を制御し、制御情報Bを用いてアクチュエータB109を制御する。
制御情報AにはアプリケーションA110の演算結果が示され、制御情報BにはアプリケーションB111の演算結果が示される。出力制御部114が制御情報Aを用いてアクチュエータA108を制御することによりアプリケーションA110の演算結果がアクチュエータA108に出力される。また、出力制御部114が制御情報Bを用いてアクチュエータB109を制御することによりアプリケーションB111の演算結果がアクチュエータB109に出力される。
OS115は、起動条件120に従ってアプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114を起動する。
なお、実施の形態1では、OS115は、入力制御部113と出力制御部114を実行可能な時間枠において、出力制御部114、入力制御部113の順に続けて実行する。入力制御部113と出力制御部114を実行可能な時間枠の経過後に、OS115は、アプリケーションA110とアプリケーションB111を実行する。
前述のように、システム情報116は、起動条件120と実行時間121を含む。
実行時間121は、開発者が設計時に測定あるいは見積もった実行時間の長さの最大値(最悪実行時間)である。実行時間121は、アプリケーションA110、アプリケーションB111の各々に対して定義されている。
起動条件120は、アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114の各々に対して定義されている。起動条件120は、優先度、起動周期、起動オフセットで構成されている。
図4は、システム情報116の例を示す。
アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114の優先度は夫々2、1、3、3である。ここで優先度は大きい値ほど高いものとする。起動周期は全て同じ時間tCycleである。アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114の起動オフセットは夫々時間t1、t1、t0、t0である。起動オフセットは、グローバルな周期時間(ここでは時間tCycle)の各周期開始時刻に対するオフセットを指す。また、アプリケーションA110、アプリケーションB111の実行時間121(最悪実行時間)は夫々時間tA、tBである。
システム情報116には、ECU101でのアプリケーションA110とアプリケーションB111の実行スケジュールが定義されている。より具体的には、システム情報116には、優先度の高いアプリケーションA110の実行が時刻t1に開始され、アプリケーションA110の実行は最長で時間tAの間継続するという実行スケジュールが定義されている。更に、システム情報116には、アプリケーションA110の実行が完了したら優先度の低いアプリケーションB110の実行が開始され、アプリケーションB111の実行は最長で時間tBの間継続するという実行スケジュールが定義されている。
パラメータテーブル117では、入力情報の属性と制御情報の属性が記述される。
入力情報に対しては、属性として、デバイス、方向、入力タイミングと、その入力情報を使用するアプリケーションとが関連付けられる。また、制御情報に対しては、属性として、デバイス、方向、出力タイミングと、その制御情報を使用するアプリケーションとが関連付けられる。
パラメータテーブル117の例を図5に示す。
入力情報A〜入力情報C、制御情報A、制御情報Bの入出力タイミングは全て時間t0である。この値も、起動オフセットと同様に各周期開始時刻に対する時間のオフセットを指す。入力情報Dは、使用するアプリケーションが存在しないため、入力タイミングは設定されていない。入力情報A、入力情報B、制御情報AにはアプリケーションA110が、入力情報Cと制御情報BにはアプリケーションB111が関連付けられている。また、入力情報A〜入力情報Dには夫々センサA104〜センサD107が関連付けられ、方向が入力方向であることがわかる。制御情報AにはアクチュエータA108、制御情報BにはアクチュエータB109が関連付けられ、方向が出力方向であることがわかる。ここでは各情報に対してアプリケーションが1つ関連付けられているが、例えば一行追加して、同じ入力情報Aに対して、アプリケーションB111が、同じタイミングの時間t0、または違うタイミングで関連付けられるようなものであってもよい。
パラメータテーブル117には、入出力スケジュールが定義されている。より具体的には、パラメータテーブル117には、入力情報A〜入力情報Dが時刻t0に入力され、制御情報A及び制御情報Bに示される演算結果が時刻t0に出力されるという入出力スケジュールが定義されている。
データベース118は、センサA104〜センサD107から取得した入力情報A〜入力情報D、およびアクチュエータA108とアクチュエータB109を制御するための制御情報Aと制御情報Bを格納する。
更新要求情報送信部119は、パラメータテーブル117と、システム情報116(起動条件120と実行時間121)と、更新したいアプリケーション名と更新種別(上書き、追加、削除)を、更新要求情報としてサーバ装置102へ送信する。
更新要求情報の送信のタイミングは、例えばアプリケーションA110が外部から更新用アプリケーションC112を利用可能であることを示す情報を受信して、更新要求情報送信部119に更新用アプリケーションC112の取得を要求する時点などが考えられる。更新要求の生成に関わる処理は本発明の対象外であるため詳細な説明は省略する。
更新要求情報は、前述のように、アプリケーションA110及びアプリケーションB111の入出力スケジュールが示されるパラメータテーブル117とアプリケーションA110及びアプリケーションB111の実行スケジュールが示されるシステム情報116とを含み、実装済アプリケーション情報の例に相当する。
図3に示すように、サーバ装置102は、アプリケーションC112、新アプリケーション起動条件122、新アプリケーション実行時間123、新アプリケーションパラメータ情報124、アプリケーション更新判定部125を備える。
アプリケーションC112は、アプリケーションA110の機能を拡張した高機能アプリケーションであり、ECU101で実行されることを想定して開発されている。したがってアプリケーションC112をECU101に実装する場合には、アプリケーションA110を上書き更新することになる。アプリケーションC112はECU101上で起動すると、データベース118に格納されている入力情報A、入力情報B、入力情報Dを用いて演算処理を行い、制御情報Aを算出する。制御情報Aは、データベース118に格納される。
アプリケーションC112は、ECU101に未実装のアプリケーションプログラムであり、未実装アプリケーションプログラムの例に相当する。
新アプリケーション起動条件122は、アプリケーションC112がECU101で実行される場合にOS115が起動条件120として用いる情報である。ここでは、優先度、起動周期、起動オフセットはアプリケーションA110と同じとする。
新アプリケーション実行時間123は、アプリケーションC112がECU101で実行される場合の最悪実行時間の見積もり値である。ここでは、新アプリケーション実行時間123は時間tCとし、アプリケーションA110の実行時間tAよりも長いものとする。
新アプリケーション起動条件122及び新アプリケーション実行時間123は、ECU101におけるシステム情報116と同様な役割を持つ。つまり、新アプリケーション起動条件122及び新アプリケーション実行時間123には、アプリケーションC112の実行スケジュールが定義されている。より具体的には、新アプリケーション起動条件122及び新アプリケーション実行時間123には、アプリケーションC112の実行が時刻t1に開始され、アプリケーションC112の実行は最長で時間tCの間継続するという実行スケジュールが定義されている。
新アプリケーションパラメータ情報124は、アプリケーションC112が使用する入力情報A、入力情報B、入力情報Dの入力タイミングと、制御情報Aの出力タイミング、また夫々のデバイスと方向を指定する情報である。新アプリケーションパラメータ情報124で指定されている入力タイミング及び出力タイミングで入出力を行えば、アプリケーションC112によって正常な車両制御が可能であることが保証されている。ここでは、入力タイミング及び出力タイミングは時刻t0に設定されているとする。
このように、新アプリケーションパラメータ情報124には、アプリケーションC112の入出力スケジュールが定義されている。より具体的には、新アプリケーションパラメータ情報124には、入力情報A、入力情報B、入力情報Dが時刻t0に入力され、制御情報Aが時刻t0に出力されるという入出力スケジュールが定義されている。
アプリケーション更新判定部125は、送受信インタフェースB1808を用いて、ECU101の更新要求情報送信部119から実装済アプリケーション情報たる更新要求情報を受信する。
更に、アプリケーション更新判定部125は、更新要求情報と、新アプリケーション起動条件122、新アプリケーション実行時間123、新アプリケーションパラメータ情報124に基づき、アプリケーションC112によってECU101を更新可能か否かを判定する。
より具体的には、アプリケーション更新判定部125は、更新要求情報で通知されたアプリケーションB111の入出力スケジュールと、新アプリケーションパラメータ情報124に定義されているアプリケーションC112の入出力スケジュールとを解析する。つまり、アプリケーション更新判定部125は、アプリケーションC112がECU101に実装され、アプリケーションB111の入力情報の入力とアプリケーションB111の演算結果の出力がアプリケーションB111の入出力スケジュールの通りに行われる場合に、アプリケーションC112の入力情報の入力とアプリケーションC112の演算結果の出力がアプリケーションC112の入出力スケジュール通りに行われるか否かを解析する。更に、アプリケーション更新判定部125は、更新要求情報で通知されたアプリケーションB111の実行スケジュールと、新アプリケーション起動条件122及び新アプリケーション実行時間123に定義されているアプリケーションC112の実行スケジュールとを解析する。つまり、アプリケーションC112がECU101に実装され、アプリケーションB111がアプリケーションB111の実行スケジュール通りに実行され、アプリケーションC112がアプリケーションC112の実行スケジュール通りに実行される場合に、アプリケーションB111の実行とアプリケーションC112の実行が既定の時間枠内(つまり、起動周期tCycle内)で完了するか否かを解析する。
そして、アプリケーション更新判定部125は、アプリケーションC112の入力情報の入力とアプリケーションC112の演算結果の出力がアプリケーションC112の入出力スケジュール通りに行われ、アプリケーションB111の実行とアプリケーションC112の実行が時間枠内(起動周期tCycle内)で完了する場合に、アプリケーションB111とアプリケーションC112とがECU101で実行可能であり、アプリケーションC112によってECU101を更新可能であると判定する。
また、アプリケーション更新判定部125は、プリケーションB111とアプリケーションC112とがECU101で実行可能であり、アプリケーションC112によってECU101を更新可能であると判定した場合に、送受信インタフェースB1808を用いて、アプリケーションC112をECU101に送信する。また、アプリケーション更新判定部125は、図10に示す情報もECU101に送信する。
続いて、ECU101をアプリケーションC112で更新する前の、ECU101の動作を図6のタイムチャートを用いて説明する。
時刻t0でOS115は起動条件120に基づき出力制御部114を起動する。出力制御部114はパラメータテーブル117を参照し、時刻t0のタイミングで出力方向の制御情報Aと制御情報Bが存在していることを確認する。したがって、出力制御部114は制御情報Aと制御情報Bをデータベース118から取得する。更に、出力制御部114は、制御情報Aの値を用いて、パラメータテーブル117に記載されている対象デバイスであるアクチュエータA108を制御し、制御情報Bの値を用いて、パラメータテーブル117に記載されている対象デバイスであるアクチュエータB109を制御する。
出力制御部114の処理が完了すると、続いて、OS115が入力制御部113を起動する。入力制御部113はパラメータテーブル117を参照し、時刻t0のタイミングで入力方向の入力情報A〜入力情報Cが存在していることを確認する。したがって、入力制御部113はセンサA104〜センサC106にアクセスし、入力情報A〜入力情報Cを取得する。更に、入力制御部113は入力情報A〜入力情報Cをデータベース118に格納する。これで入力制御部113の処理が完了する。
次に、時刻t1でOS115は起動条件120に基づきアプリケーションA110を起動する。アプリケーションA110とアプリケーションB111の起動オフセットは同じ時間t1だが、優先度が高いアプリケーションA110が先に起動する。
アプリケーションA110はデータベース118に格納された入力情報Aと入力情報Bを用いて演算を行い、制御情報Aを算出し、制御情報Aをデータベース118に格納し、処理を終了する。
時刻t2にアプリケーションA110の処理が完了すると、OS115がアプリケーションB111を起動する。
アプリケーションB111はデータベース118に格納された入力情報Cを用いて演算を行い、制御情報Bを算出し、制御情報Bをデータベース118に格納し、処理を終了する。
そして、時刻t0から起動周期tCycleが経過すると、時刻はt0にリセットされ、再び起動条件120に基づき出力制御部114が起動し、以降、同様の処理が繰り返される。
次に、サーバ装置102のアプリケーション更新判定部125がECU101の更新要求情報送信部119から更新要求情報を受信したときの処理を、図7のフローチャートを用いて説明する。
なお、図7に示す処理手順は、情報処理方法及び情報処理プログラムの例に相当する。
アプリケーション更新判定部125は、ECU101から受信した更新要求情報から、上書き対象のアプリケーションと関連付けられている部分を削除する(ステップS501)。
次に、アプリケーション更新判定部125は、削除処理を施したパラメータテーブル117の入力情報と制御情報の各タイミングとして設定された値と、新アプリケーションパラメータ情報124の入力情報と制御情報の各タイミングとして設定された値を抽出する(ステップS502)。
次に、アプリケーション更新判定部125は、同じタイミングの入力情報あるいは制御情報の数が、NMax以下であるか否かを判定する(ステップS503)。
ステップS503では、アプリケーション更新判定部125は、アプリケーションC112がECU101に実装され、アプリケーションB111の入力情報の入力とアプリケーションB111の演算結果の出力がアプリケーションB111の入出力スケジュールの通りに行われる場合に、アプリケーションC112の入力情報の入力とアプリケーションC112の演算結果の出力がアプリケーションC112の入出力スケジュール通りに行われるか否かを判定している。
ステップS503において同じタイミングの入力情報及び制御情報の数がNMax以下である場合には、アプリケーション更新判定部125は、削除処理を施したECU101の起動条件120、実行時間121の情報と、新アプリケーション起動条件122、新アプリケーション実行時間123の情報と、各パラメータ情報とを用いて、各アプリケーションの開始時刻と終了時刻を算出する(ステップS504)。
次に、アプリケーション更新判定部125は、各アプリケーションの終了時刻が、そのアプリケーションが出力する制御情報の出力タイミングまたはそのアプリケーション自身の次の開始時刻のいずれかよりも、早いか否かを判定する(ステップS505)。
ステップS504及びステップS505では、アプリケーション更新判定部125は、アプリケーションC112がECU101に実装され、アプリケーションB111がアプリケーションB111の実行スケジュール通りに実行され、アプリケーションC112がアプリケーションC112の実行スケジュール通りに実行される場合に、アプリケーションB111の実行とアプリケーションC112の実行が既定の時間枠内で完了するか否かを判定している。
ステップS505においてアプリケーションの終了時刻の方が早い場合には、アプリケーション更新判定部125は、新しいアプリケーションC112によるECU101の更新が可能と判定し(ステップS506)、処理を終了する。
一方、同じタイミングの入力情報あるいは制御情報の数が、NMaxを超えていた場合、あるいはアプリケーションの終了時刻の方が遅い場合には、アプリケーション更新判定部125は、新しいアプリケーションC112によるECU101の更新を不可と判定し(ステップS507)、処理を終了する。
次に、アプリケーションA110へのアプリケーションC112による上書き更新を目的としてECU101がサーバ装置102に更新要求情報を送信した際の、アプリケーション更新判定部125による判定処理を説明する。
アプリケーション更新判定部125は、ECU101から更新要求情報として図4と図5に示した情報を受信すると、上書き対象であるアプリケーションA110と関連付けられている情報を削除する。これにより、更新要求情報はそれぞれ図8と図9に示すようになる。図8及び図9では、ハッチングを施している行が削除された行である。
次に、アプリケーション更新判定部125は、図9のパラメータテーブル117の情報と、新アプリケーションパラメータ情報124を図10のようにマージする。その結果、全6個の情報が、全て同じタイミングt0であることがわかる。ここで、NMaxの値は10であるとする。6≦NMaxであるため、アプリケーション更新判定部125は、図8の起動条件120と実行時間121の情報と、図10のパラメータテーブル117と、新アプリケーション起動条件122と新アプリケーション実行時間123の情報を用いて、図11に示すようなタイムチャートを生成し、アプリケーションの開始時刻と終了時刻を求める。図11のタイムチャートは、アプリケーションC112がECU101に実装され、アプリケーションB111がアプリケーションB111の実行スケジュール通りに実行され、アプリケーションC112がアプリケーションC112の実行スケジュール通りに実行される場合のタイムチャートである。
図11のタイムチャートから、アプリケーションC112の最悪実行時間は時間tCであり、アプリケーションA110の時間tAよりも長くなっている。しかしながら、アプリケーションC112とアプリケーションB111の終了時刻は次の出力タイミングt0よりも早く終了するため、アプリケーション更新判定部125は、アプリケーションA110をアプリケーションC112で上書き更新可能であると判定して処理を終了する。
***実施の形態の効果の説明***
このように、本実施の形態に係るサーバ装置102は、アプリケーションC112による更新前に、既存のアプリケーションB111と新しいアプリケーションC112が使用する入力情報や制御情報に求められる入出力タイミングを満たすか否か判定を行う。
これにより、実行時間や入出力タイミングを満たすことが確認された後でのみECU101のアプリケーションの更新が行われるため、アプリケーションの開発者が意図した入力タイミングで入力情報をセンサから取得し、意図した出力タイミングで制御情報を用いてアクチュエータを制御することができる。
その結果、更新後にアプリケーションC112あるいは既存のアプリケーションB111が正常動作しないという状況を回避することができる。
また、アプリケーションC112の開発者は、開発段階でアプリケーションB111の情報を持っている必要はなく、アプリケーションC112のテスト時に使用した入出力タイミングの情報を、アプリケーションC112の正常動作を保証するタイミングとしてサーバ装置102に提供するだけでよい。
従って、アプリケーションB111の情報を取得してテストするという作業が不要になり、開発工数を削減することができる。つまり、膨大な実装パターンを網羅して動作検証を行う必要がなくなるため、検証にかかる開発工数を削減することができる。
なお、本実施の形態では、図7のステップS503において、同じ入出力タイミングに配置可能な情報を、数(NMax)で制限していた。これに代えて、入力情報の入力及び制御情報の出力にかかる時間を求めて、同じ入出力タイミングに配置可能な情報を入出力時間で制限するようにしてもよい。
また、本実施の形態では、アプリケーションの起動や終了等にかかるOS115自身の処理時間や割込みが発生した場合の処理時間については説明していないが、アプリケーション更新判定部125は、これらの処理時間を考慮して更新可否の判定を行ってもよい。
実施の形態2.
以下に、実施の形態2に係る車両用ネットワークシステムを説明する。
なお、以下では、主に実施の形態1との差異を説明する。以下で説明していない事項は実施の形態1と同じである。
車両用ネットワークシステムの構成は実施の形態1と同じであるため、同一部分については説明を省略する。
実施の形態2におけるシステム情報116を図12に示す。
図12に示すように、本実施の形態では、入力制御部113、出力制御部114の起動周期は、tCycle/3である。
また、実施の形態2におけるサーバ装置102が備える新アプリケーションパラメータ情報124では、制御情報Dの入力タイミングとして、時間がt3〜tCycle(=t0)の範囲に設定されているものとする。したがって、入力情報Dの入力タイミングが時刻t3であっても、時刻t0であっても、アプリケーションC112の動作が保証されている。ここで、時刻t3は、各アプリケーションの周期の開始から時間tCycle3分の2が過ぎた時刻であるものとする。このように、本実施の形態では、アプリケーションC112の入出力スケジュールに時間幅が設定されている。
本実施の形態では、アプリケーション更新判定部125は、未実装アプリケーションプログラムであるアプリケーションC112の入出力スケジュールに時間幅が設定されているときに、アプリケーションC112がECU101に実装され、アプリケーションB111の入力情報の入力とアプリケーションB111の演算結果の出力がアプリケーションB111の入出力スケジュールの通りに行われる場合に、アプリケーションC112の入力情報の入力とアプリケーションC112の演算結果の出力がアプリケーションC112の入出力スケジュールの時間幅の範囲内のいずれかのタイミングで行われるか否かを解析する。
なお、本実施の形態では、アプリケーション更新判定部125に、NMaxの値として5が設定されているものとする。
次に、サーバ装置102のアプリケーション更新判定部125がECU101の更新要求情報送信部119から更新要求情報を受信したときの処理を、図13のフローチャートを用いて説明する。図13において、図7と同一の処理には同一符号を付し、説明を省略する。
アプリケーション更新判定部125は、同じタイミングの入力情報及び制御情報の数がNMaxを超過していると判定すると(ステップS503)、NMaxを超過しているタイミングの入力情報と制御情報のうち、まだ試していないタイミングへ変更可能なものがないか判定する(ステップS1001)。
ここで変更可能なものが無ければ、アプリケーション更新判定部125は、アプリケーションC112によるECU101の更新は不可と判定し(ステップS507)、処理を終了する。
一方、変更可能なものがあれば、アプリケーション更新判定部125は、該当する入力情報又は制御情報のタイミングを変更し(ステップS1002)、再びステップS502に戻る。
次に、アプリケーションA110へのアプリケーションC112による上書き更新を目的としてECU101がサーバ装置102に更新要求情報を送信した際の、アプリケーション更新判定部125による判定処理を実施の形態1と異なる部分についてのみ説明する。
全6個の情報の入出力タイミングが全て同じタイミングt0であり、NMaxの値が5であり、6>NMaxであることから、アプリケーション更新判定部125は、これらの6個の情報のうち、タイミングの変更が可能なものがないか検索する。新アプリケーションパラメータ情報124によれば、入力情報Dの入力タイミングは時刻t3〜tCycle(=t0)から選択できる。また、ECU101から受信した起動条件120によれば、入力制御部113の起動周期はtCycleの1/3の長さである。これらより、時刻t3(=周期開始からtCycleの3分の2の長さ経過時点)においても、ECU101上で入力制御部113を起動して入力情報Dを取得し、アプリケーションC112の演算に使用できることがわかる。そこで、アプリケーション更新判定部125は、入力情報Dのタイミングを時刻t3に変更し、時刻t0及び時刻t3で入出力される情報を抽出する。この場合、タイミングt0の情報が5個、タイミングt3の情報が1個となり、時刻t0及び時刻t3のいずれでも入出力される情報の数はNMax以下である。従って、アプリケーションC112によるECU101の更新は不可とは判定されず、次のステップS504に進むことができる。
このようにしてアプリケーションA110をアプリケーションC112で上書き更新する場合のECU101の動作を図14のタイムチャートを用いて説明する。
時刻t0で起動する入力制御部113と出力制御部114を実行可能な時間枠は、既に5つの入力情報と制御情報の入出力で使用されているため、入力情報Dは、時刻t3にて入力制御部113が起動したときに取得される。時刻t1に起動するアプリケーションC112は、直前の時刻t3で取得した入力情報Dと、直前の時刻t0で取得した入力情報Aと入力情報Bの値を用いて演算を行うことになる。
このように制御情報Dの入力タイミングを時間幅で設定し、アプリケーションC112が使用する情報の入出力タイミングを時間幅の範囲内で複数選択可能とすることにより、1つの入力タイミングのみが設定されている場合よりも、アプリケーションの更新が可能と判定されやすくなり、アプリケーション更新の利便性を向上することができる。
また、アプリケーションC112の新アプリケーションパラメータ情報124にて、時刻t3で取得した入力情報Dを用いてもアプリケーションC112が正常に動作することが保証されている。このため、アプリケーションB111とアプリケーションC112を実装したテストを行う必要はなく、開発工数を削減することができる。
なお、実施の形態2では、新アプリケーションパラメータ情報124に含まれる入力情報の入力タイミングが時間幅で設定されているものとしたが、新アプリケーションパラメータ情報124に制御情報が含まれる場合には、制御情報の出力タイミングを時間幅で設定してもよい。
また、ECU101のパラメータテーブル117に含まれる入力情報の入力タイミング及び制御情報の出力タイミングを時間幅で設定してもよい。例えば、アプリケーションB111の入出力スケジュールに時間幅が設定されているときに、アプリケーション更新判定部125は、アプリケーションC112がECU101に実装され、アプリケーションB111の入力情報の入力とアプリケーションB111の演算結果の出力がアプリケーションB111の入出力スケジュールの時間幅の範囲内のいずれかのタイミングで行われる場合に、アプリケーションC112の入力情報の入力とアプリケーションC112の演算結果の出力がアプリケーションC112の入出力スケジュール通りに行われるか否かを解析する。
また、実施の形態2では、入力情報の入力タイミングを範囲で設定したが、入力情報の入力タイミングや制御情報の出力タイミングを複数の離散値で設定するものであってもよい。この場合も、アプリケーション更新判定部125は、図13に示したように動作する。
実施の形態3.
以下に、実施の形態3に係る車両用ネットワークシステムを説明する。
なお、以下では、主に実施の形態1との差異を説明する。以下で説明していない事項は実施の形態1と同じである。
本実施の形態に係るECU101の機能構成例を図15に示す。
図15において、図2と同一の要素には同一符号を付している。
ECU101には、アクチュエータC1301が接続されている。また、ECU101は時間測定部1302を備える。他の要素は図2と同じであるため説明を省略する。
また、サーバ装置102の機能構成は図3と同じである。
実施の形態3における初期状態でのシステム情報116は図4と同じである。
実施の形態3におけるパラメータテーブル117を図16に示す。図16では、図5に対して制御情報Cの列が追加されているが、初期状態では使用するアプリケーションが存在しないため、出力タイミングも設定されていない。
時間測定部1302は、プログラムにより実現される。
時間測定部1302を実現するプログラムは、メモリA1083に記憶され、プロセッサA1804が当該プログラムを読み出して実行する。
時間測定部1302は、アプリケーションの実行時間を測定する。より具体的には、時間測定部1302は、OS115がアプリケーションを起動すると測定を開始し、アプリケーションの処理が終了すると測定を停止する。また、時間測定部1302は、実行時間の測定結果をシステム情報116に含まれる実行時間121の情報と比較する。
測定結果がシステム情報116に含まれる実行時間121の値以下の場合には測定結果は破棄される。一方、測定結果がシステム情報116の実行時間121の値よりも大きい場合には、時間測定部1302はシステム情報116の実行時間121の情報を、測定結果で更新する。
初期状態でシステム情報116に含まれる実行時間121は設計時に見積もった最悪実行時間であるが、見積もりミス等によって最悪実行時間が実際よりも短く算出されている可能性がある。このため、時間測定部1302によって実行時間121が測定結果で更新される。
本実施の形態では、アプリケーションC112は、アプリケーションA110やアプリケーションB111とは異なる機能を実現するアプリケーションである。このため、アプリケーションC112をECU101に実装する場合には、アプリケーションC112はアプリケーションA110やアプリケーションB111を上書きせず、アプリケーションC112が新規にECU101に追加される。
ECU101上でアプリケーションC112が起動されると、アプリケーションC112は、データベース118に格納されている入力情報A、入力情報B、入力情報Dを用いて演算処理を行い、制御情報Cを算出し、制御情報Cをデータベース118に格納する。
新アプリケーション起動条件122は、アプリケーションC112がECU101で実行される場合に、OS115が起動条件120として用いる情報である。ここでは、優先度は0、起動周期はtCycle、起動オフセットは時間t0とする。
新アプリケーション実行時間123は、アプリケーションC112がECU101で実行される場合の最悪実行時間の見積もり値であり、時間tDとする。
新アプリケーションパラメータ情報124は、アプリケーションC112が使用する入力情報A、入力情報B、入力情報Dの入力タイミングと、制御情報Cの出力タイミング、また夫々のデバイスと方向を指定する情報である。新アプリケーションパラメータ情報124の入出力タイミングで入出力を行えば、アプリケーションC112によって正常な車両制御が可能であることが保証されている。ここでは入出力タイミングは全て時間t0に設定されているとする。
続いて、アプリケーションC112を追加する前の、ECU101の動作を図17のタイムチャートを用いて説明する。図17において、図6と同一部分は説明を省略する。
時刻t1でOS115は起動条件120に基づきアプリケーションA110を起動する。そして時間測定部1302が実行時間の測定を開始する。
次いで時刻t2にてアプリケーションA110が処理を終了すると、時間測定部1302は実行時間の測定を終了し、実行時間の測定結果とシステム情報116に含まれる実行時間121の値とを比較する。ここでは、実行時間の測定結果tA’(=t2−t1)が、システム情報116に含まれる実行時間tAよりも長いものとする。このため、時間測定部1302はシステム情報116の実行時間121の値を図18に示すようにtA’に更新して処理を終了する。
続いて時刻t2に起動するアプリケーションB111での実行時間の測定結果tB’は、システム情報116の実行時間tBよりも短いため、システム情報116の実行時間tBは更新されない。
サーバ装置102のアプリケーション更新判定部125がECU101の更新要求情報送信部119から更新要求情報を受信したときに実行する処理は図7と同じである。つまり、本実施の形態では、アプリケーションA110の実行時間として、時間測定部1302で測定された実行時間tA’を通知する更新要求情報を受信し、実行時間tA’を用いてアプリケーションC112の更新可否を判定する。
次に、システム情報116の実行時間121が更新された後に、アプリケーションC112による追加更新を目的としてECU101がサーバ装置102に更新要求情報を送信した際の、アプリケーション更新判定部125による判定処理を説明する。
アプリケーション更新判定部125は、ECU101から更新要求情報として図16と図18に示した更新要求情報を受信すると、上書き対象のアプリケーションはないことから、ECU101から受信した情報は削除しない。また、アプリケーション更新判定部125は、図16のパラメータテーブル117の情報と、新アプリケーションパラメータ情報124をマージする。その結果、アプリケーション更新判定部125は、全6個の情報が同じタイミングt0であり、6≦NMax(=10)であると判定する。
続いて、図18の起動条件120と実行時間121の情報と、図16のパラメータテーブル117と、新アプリケーション起動条件122と新アプリケーション実行時間123の情報と、新アプリケーションパラメータ情報124を用いて、図19に示すようなタイムチャートを生成する。また、アプリケーション更新判定部125は、生成したタイムチャートから、アプリケーションの開始時刻と終了時刻を求める。
その結果、アプリケーションC112の終了時刻が、アプリケーションC112が出力する制御情報Cの出力タイミングt0よりも遅くなっているため、アプリケーション更新判定部125は、アプリケーションC112の追加更新を不可と判定して処理を終了する。
図19のタイムチャートから明らかなように、アプリケーションC112は、時刻t0での出力制御部114と入力制御部113の処理終了後から時刻t1でアプリケーションA110が起動するまでの間にも実行することが可能である。このため、実行時間の余裕時間(アイドル時間)の観点でのみ判定を行った場合には更新可と判定され得る。しかし、仮にこのように出力タイミングを考慮せずに追加更新を行った場合、アプリケーションC112が出力する制御情報Cを用いたアクチュエータC1301の制御は次のアプリケーションC112が起動した後に行われることになる。よって、制御タイミングがほぼ一周期(tCycle)遅れてしまい、アプリケーションC112の開発者が意図するタイミングで出力されない。このため、ECU101が正常に動作することは保証できず、高度な車両制御が行えない可能性がある。したがって、本実施の形態のように実行時間121に余裕があるか否かだけではなく、入出力タイミングを考慮してアプリケーションの更新可否判定を行うことが必要である。
換言すると、アプリケーション更新判定部125は、アプリケーションA110、アプリケーションB111、アプリケーションC112を実行スケジュール通りに実行した場合に、アプリケーションA110、アプリケーションB111、アプリケーションC112の実行が各制御情報の出力タイミングまでに完了するか否かを判定する。そして、アプリケーションA110、アプリケーションB111、アプリケーションC112の実行が各制御情報の出力タイミングまでに完了しない場合は、アプリケーション更新判定部125は、アプリケーションC112のECU101への実装を許可しない。
また、初期状態のシステム情報116の実行時間tAを用いてアプリケーションの更新可否判定を行うと、アプリケーション更新判定部125は、実際よりもアプリケーションA110の実行時間を短く見積もって判定を行うことになる。このため、アプリケーション更新判定部125は、アプリケーションC112の終了時刻が制御情報Cの出力タイミングよりも早いと判定し、誤ってアプリケーションC112を追加可能と判定してしまう可能性がある。本実施の形態のように、ECU101上のアプリケーションの実行時間の測定結果の方が、設計時に見積もった最悪実行時間よりも長い場合には、測定結果を実行時間121として使用することでアプリケーションの追加可否判定を高精度に行うことができる。この結果、アプリケーションの追加後にECU101でアプリケーションが正常に動作しないという状況を回避することができる。
***ハードウェア構成の説明***
最後に、ECU101及びサーバ装置102のハードウェア構成の補足説明を行う。
図1に示すプロセッサA1804及びプロセッサB1807は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサA1804及びプロセッサB1807は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
メモリA1803及びメモリB1806は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
送受信インタフェースA1805及び送受信インタフェースB1808は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
送受信インタフェースA1805及び送受信インタフェースB1808は、例えば、通信チップ又はNIC(Network Interface Card)である。
また、ECU101では、アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114、OS115、更新要求情報送信部119、時間計測部1302の処理の結果を示す情報やデータや信号値や変数値が、メモリA1803、又は、プロセッサA1804内のレジスタ又はキャッシュメモリに記憶される。
また、アプリケーションA110、アプリケーションB111、入力制御部113、出力制御部114、OS115、更新要求情報送信部119、時間計測部1302を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
同様に、サーバ装置102では、アプリケーション更新判定部125の処理の結果を示す情報やデータや信号値や変数値が、メモリB1806、又は、プロセッサB1807内のレジスタ又はキャッシュメモリに記憶される。
また、アプリケーション更新判定部125を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、ECU101及びサーバ装置102は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
***付記***
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
また、以上では、ECUにおけるアプリケーションの更新を説明したが、アプリケーションを実行できるのであれば、ECU以外の機器におけるアプリケーションの更新にも本発明を適用することができる。
101 ECU、102 サーバ装置、103 無線通信網、104 センサA、105 センサB、106 センサC、107 センサD、108 アクチュエータA、109 アクチュエータB、1301 アクチュエータC、110 アプリケーションA、111 アプリケーションB、112 アプリケーションC、113 入力制御部、114 出力制御部、115 OS、116 システム情報、117 パラメータテーブル、118 データベース、119 更新要求情報送信部、120 起動条件、121 実行時間、122 新アプリケーション起動条件、123 新アプリケーション実行時間、124 新アプリケーションパラメータ情報、125 アプリケーション更新判定部、1302 時間測定部、1801 センサインタフェース、1802 アクチュエータインタフェース、1803 メモリA、1804 プロセッサA、1805 送受信インタフェースA、1806 メモリB、1807 プロセッサB、1808 送受信インタフェースB。

Claims (8)

  1. 端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールを通知する実装済アプリケーション情報を受信する通信部と、
    前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの通りに行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われるか否かを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する判定部とを有する情報処理装置。
  2. 端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールと、前記端末装置での前記実装済アプリケーションプログラムの実行スケジュールとを通知する実装済アプリケーション情報を受信する通信部と、
    前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと前記実装済アプリケーションプログラムの実行スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの通りに行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われるか否かを解析し、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムが前記実装済アプリケーションプログラムの実行スケジュール通りに実行され、前記未実装アプリケーションプログラムが前記未実装アプリケーションプログラムの実行スケジュール通りに実行される場合に、前記実装済アプリケーションプログラムの実行と前記未実装アプリケーションプログラムの実行が既定の時間枠内で完了するか否かを解析し、
    前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われ、前記実装済アプリケーションプログラムの実行と前記未実装アプリケーションプログラムの実行が前記時間枠内で完了する場合に、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であると判定する判定部とを有する情報処理装置。
  3. 端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールを通知する実装済アプリケーション情報を受信する通信部と、
    前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールであって時間幅が設定されている入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの通りに行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュールの時間幅の範囲内のいずれかのタイミングで行われるか否かを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する判定部とを有する情報処理装置。
  4. 端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールであって時間幅が設定されている入出力スケジュールを通知する実装済アプリケーション情報を受信する通信部と、
    前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの時間幅の範囲内のいずれかのタイミングで行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われるか否かを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する判定部とを有する情報処理装置。
  5. 前記通信部は、
    前記端末装置での前記実装済アプリケーションプログラムの実行スケジュールとして、前記実装済アプリケーションプログラムが実行されるタイミングと、前記実装済アプリケーションプログラムが前記端末装置で実行された際に測定された実行時間とを通知する実装済アプリケーション情報を受信する請求項に記載の情報処理装置。
  6. 前記通信部は、
    前記判定部により前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であると判定された場合に、前記未実装アプリケーションプログラムを前記端末装置に送信する請求項1〜4のいずれか一項に記載の情報処理装置。
  7. コンピュータが、端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールを通知する実装済アプリケーション情報を受信し、
    前記コンピュータが、前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの通りに行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われるか否かを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する情報処理方法。
  8. 端末装置から、前記端末装置に実装済の実装済アプリケーションプログラムが演算に用いる入力情報が入力され、前記実装済アプリケーションプログラムの演算結果が出力される入出力スケジュールを通知する実装済アプリケーション情報を受信する受信処理と、
    前記実装済アプリケーション情報で通知された前記実装済アプリケーションプログラムの入出力スケジュールと、前記端末装置に未実装の未実装アプリケーションプログラムが演算に用いる入力情報が入力され、前記未実装アプリケーションプログラムの演算結果が出力される入出力スケジュールとを用いて、
    前記未実装アプリケーションプログラムが前記端末装置に実装され、前記実装済アプリケーションプログラムの入力情報の入力と前記実装済アプリケーションプログラムの演算結果の出力が前記実装済アプリケーションプログラムの入出力スケジュールの通りに行われる場合に、前記未実装アプリケーションプログラムの入力情報の入力と前記未実装アプリケーションプログラムの演算結果の出力が前記未実装アプリケーションプログラムの入出力スケジュール通りに行われるか否かを解析して、前記実装済アプリケーションプログラムと前記未実装アプリケーションプログラムとが前記端末装置で実行可能であるか否かを判定する判定処理とをコンピュータに実行させる情報処理プログラム。
JP2017554744A 2015-12-10 2015-12-10 情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP6305663B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/084707 WO2017098644A1 (ja) 2015-12-10 2015-12-10 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2017098644A1 JPWO2017098644A1 (ja) 2018-03-01
JP6305663B2 true JP6305663B2 (ja) 2018-04-04

Family

ID=59013906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017554744A Expired - Fee Related JP6305663B2 (ja) 2015-12-10 2015-12-10 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (5)

Country Link
US (1) US10261773B2 (ja)
JP (1) JP6305663B2 (ja)
CN (1) CN108292211A (ja)
DE (1) DE112015007179T5 (ja)
WO (1) WO2017098644A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6661409B2 (ja) * 2016-03-01 2020-03-11 キヤノン株式会社 自動設置システム、情報処理装置、情報処理装置の制御方法、及びプログラム
EP3532926A1 (en) * 2016-10-31 2019-09-04 Harman Becker Automotive Systems GmbH Software update mechanism for safety critical systems
DE112017006978T5 (de) * 2017-02-01 2019-10-10 Sumitomo Electric Industries, Ltd. Steuervorrichtungen, Programmaktualisierungsverfahren und Computerprogramm
WO2019107591A1 (ko) * 2017-11-29 2019-06-06 주식회사 사운들리 컴퓨팅 디바이스에서의 애플리케이션의 음파 수신 및 처리 방법
CN109101256A (zh) * 2018-08-01 2018-12-28 北京奇安信科技有限公司 一种代理Agent动态加载方法及装置
US11868755B2 (en) * 2021-07-30 2024-01-09 Toyota Motor Engineering & Manufacturing North America, Inc. Updating software installed on an electronic unit on a vehicle
WO2024057408A1 (ja) * 2022-09-13 2024-03-21 日本電信電話株式会社 制御装置、制御方法、及びプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CS164932B2 (ja) * 1971-09-07 1975-11-28
JP3660083B2 (ja) 1996-11-26 2005-06-15 株式会社東芝 タスク余裕度解析装置、タスク余裕度解析方法及びタスク余裕度解析プログラムを格納した記録媒体
US6292856B1 (en) * 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request
WO2001033372A1 (fr) * 1999-10-29 2001-05-10 Sony Corporation Support de stockage et procede et dispositif de traitement d'informations
JP3835969B2 (ja) * 2000-04-13 2006-10-18 本田技研工業株式会社 車両制御装置のための書き換えシステム
FR2824929B1 (fr) * 2001-05-18 2003-08-08 Gemplus Card Int Deploiement d'application depuis une carte a puce
US7197577B2 (en) * 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector
US7209798B2 (en) * 2004-09-20 2007-04-24 Tokyo Electron Limited Iso/nested cascading trim control with model feedback updates
JP2006090356A (ja) 2004-09-21 2006-04-06 Denso Corp 車両制御装置、および処理負荷制御プログラム。
JP4302113B2 (ja) * 2006-03-24 2009-07-22 三菱電機株式会社 車載制御装置
US20100043016A1 (en) * 2006-10-26 2010-02-18 Panasonic Corporation Application management device and application management method
JP2009053920A (ja) * 2007-08-27 2009-03-12 Auto Network Gijutsu Kenkyusho:Kk 車載用電子制御ユニットのプログラム管理システム
JP5169697B2 (ja) * 2008-09-30 2013-03-27 日本電気株式会社 動作合成装置、動作合成方法並びにプログラム
JP2010122752A (ja) 2008-11-17 2010-06-03 Fujitsu Ten Ltd 制御装置
JP2010027062A (ja) 2009-08-21 2010-02-04 Hitachi Ltd 分散制御システム
JP5521774B2 (ja) * 2010-05-25 2014-06-18 ソニー株式会社 情報処理装置、情報処理方法、及びそのプログラム
CN102103511A (zh) * 2011-02-25 2011-06-22 北京经纬恒润科技有限公司 应用程序的刷新方法和系统
CN102567018B (zh) * 2011-12-23 2015-09-09 北京经纬恒润科技有限公司 一种车载控制器执行的应用程序下载方法及系统
JP2013161242A (ja) 2012-02-03 2013-08-19 Toyota Motor Corp 電子制御装置
US10031737B2 (en) * 2012-02-16 2018-07-24 Microsoft Technology Licensing, Llc Downloading and distribution of applications and updates to multiple devices
WO2013157133A1 (ja) * 2012-04-20 2013-10-24 三菱電機株式会社 データ処理装置及びプログラム
US9032399B1 (en) * 2012-06-28 2015-05-12 Emc Corporation Measurement of input/output scheduling characteristics in distributed virtual infrastructure
CN103631609A (zh) * 2012-08-21 2014-03-12 广州汽车集团股份有限公司 一种车载ecu应用程序的刷新方法及系统
KR101601074B1 (ko) * 2013-11-12 2016-03-08 현대자동차주식회사 Ecu 업데이트 장치, ecu 업데이트 방법 및 이를 이용한 ecu 업데이트 네트워크
JP2015133077A (ja) * 2014-01-15 2015-07-23 トヨタ自動車株式会社 情報処理装置
JP6214469B2 (ja) 2014-05-26 2017-10-18 日立オートモティブシステムズ株式会社 車両制御装置
JP2017187963A (ja) * 2016-04-07 2017-10-12 ルネサスエレクトロニクス株式会社 電子機器およびシステム
US10318269B2 (en) * 2016-05-04 2019-06-11 General Motors Llc Providing vehicle system module updates

Also Published As

Publication number Publication date
US20190056923A1 (en) 2019-02-21
JPWO2017098644A1 (ja) 2018-03-01
US10261773B2 (en) 2019-04-16
CN108292211A (zh) 2018-07-17
WO2017098644A1 (ja) 2017-06-15
DE112015007179T5 (de) 2018-08-23

Similar Documents

Publication Publication Date Title
JP6305663B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US11256495B2 (en) Onboard system and ECU
JP6245388B2 (ja) 自動車システムのアップグレードをサポートする互換性モジュール
KR102459736B1 (ko) 자율 주행 시스템의 업그레이드 방법, 자율 주행 시스템 및 차량 탑재 장치
US11340891B2 (en) Control device, control method, and computer program
US9824509B2 (en) Automobile modification system providing security and fault tolerance support
KR20210137505A (ko) 자율 주행 시스템의 업그레이드 방법, 자율 주행 시스템 및 차량 탑재 장치
JP2018020718A (ja) 車載更新装置、車載更新システム及び通信装置の更新方法
US20210012591A1 (en) Data storage device and non-transitory tangible computer readable storage medium
US11422916B2 (en) Usage amount monitoring method and monitoring unit of electronic control unit for vehicle
US20200034140A1 (en) Relay apparatus, transfer method, and computer program
US9235456B2 (en) Configuration technique for an electronic control unit with intercommunicating applications
US20220261304A1 (en) Information processing device and information processing method
US8042104B2 (en) Method and system for sending a rewrite control program to a control unit
US20140309754A1 (en) Method and device for creating a data-based function model
US20170091429A1 (en) License management method and semiconductor device suited for license management
CN112477881B (zh) 车辆控制指令的生成方法和装置
JP2005276113A (ja) 擬似乱数生成方法、セキュリティチェック方法および制御装置
US20200310772A1 (en) Application installation device and application installation method
JP6183251B2 (ja) 電子制御装置
WO2015079731A1 (ja) 距離係数学習装置、距離係数学習方法および現在位置算出装置
JP2016071883A (ja) Fpgaからリードバックするための信号の特定
KR101943642B1 (ko) 차량용 배터리 센서 모듈의 업데이트 방법 및 시스템
US20240069894A1 (en) Server, storage medium, and software update method
JP6865707B2 (ja) 車両用制御装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171129

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171129

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180306

R150 Certificate of patent or registration of utility model

Ref document number: 6305663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees