(57)【要約】【課題】複数のプログラムを設定した実行順序で実行させる構成において、追加プログラムを含む各プログラムの実行時期を適切に設定することができるようにする。【解決手段】機能追加システムは、外部から受信したプログラム（追加プログラム）を実行する複数のプログラムのうちの１つとして受け付けると、スケジュール管理処理にて、追加プログラムを含む各プログラムに付された統一優先度の情報に基づいて実行順序を再設定する（Ｓ２１０〜Ｓ２６０）。従って、このような機能追加システムによれば、追加プログラムを含む各プログラムの実行順序を各プログラムに付された統一優先度の情報に応じて設定するので、各プログラムの実行時期を適切に設定することができる。よって、追加プログラムを固定した順序でしか実行できなかった従来構成の装置と比較して、追加プログラムを実行させる際の使い勝手を向上させることができる。【選択図】図４
2010015452.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムについて各プログラムの実行順序を設定し、該設定した実行順序で前記各プログラムを実行させるプログラム実行装置であって、
当該制御装置が実行する各プログラムには実行される順序を設定するための共通の優先順位情報が付されており、
外部から受信したプログラム（以下、「追加プログラム」という。）を前記複数のプログラムのうちの１つとして受け付ける受付手段と、
前記受付手段によって追加プログラムが受け付けられると、該追加プログラムを含む各プログラムに付された優先順位情報に基づいて実行順序を再設定する第１再設定手段と、
を備えたことを特徴とするプログラム実行装置。
【請求項２】
請求項１に記載のプログラム実行装置において、
前記各プログラムには、前記優先順位情報に加えて、各プログラムによる演算に必要なデータが入力されてから演算後のデータを出力するまでの時間の許容範囲を表す許容時間の情報、および各プログラムにおける演算に要する処理時間の情報が付されており、
前記第１再設定手段による再設定結果によって各プログラムを実行する場合に、少なくとも前記追加プログラムが許容時間内で終了するか否かを、前記各優先順位情報、前記許容時間の情報、および前記各処理時間の情報に基づいて判定する終了判定手段、
を備えたことを特徴とするプログラム実行装置。
【請求項３】
請求項２に記載のプログラム実行装置において、
前記各プログラムには、該各プログラムを構成する複数のプログラムについての各処理時間の情報が付されていること
を特徴とするプログラム実行装置。
【請求項４】
請求項２または請求項３に記載のプログラム実行装置において、
前記終了判定手段により前記追加プログラムが許容時間内で終了しないと判定されると、前記各プログラムに付された優先順位情報を変更し、各プログラムの実行順序を変更すれば前記各プログラムが許容時間内で終了するか否かを判定する順序変更判定手段と、
前記順序変更判定手段によって各プログラムの実行順序を変更すれば前記各プログラムが許容時間内で終了すると判定されると、前記各プログラムが許容時間内で終了すると判定された実行順序に前記各プログラムの実行順序を設定する第２再設定手段と、
を備えたことを特徴とするプログラム実行装置。
【請求項５】
請求項４に記載のプログラム実行装置において、
前記順序変更判定手段によって前記各プログラムが許容時間内で終了しないと判定されると、前記第１再設定手段による再設定結果を破棄する破棄手段、
を備えたことを特徴とするプログラム実行装置。
【請求項６】
請求項２または請求項３に記載のプログラム実行装置において、
前記終了判定手段により前記追加プログラムが許容時間内で終了しないと判定されると、前記第１再設定手段による再設定結果を破棄する破棄手段、
を備えたことを特徴とするプログラム実行装置。
【請求項７】
請求項２〜請求項６の何れかに記載のプログラム実行装置において、
前記終了判定手段は、前記複数のプログラムの全てが各プログラムの許容時間内で終了するか否かを判定すること
を特徴とするプログラム実行装置。
【請求項８】
請求項１〜請求項７の何れかの記載の各手段としての機能をコンピュータにおいて実行するための実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムを設定した実行順序で実行させるプログラム実行装置および実行制御プログラムに関する。
【背景技術】
【０００２】
従来、上記プログラム実行装置として、外部から受け取ったプログラム（タスク等、以下「追加プログラム」という。）を予め実行順序の優先順位が割り当てられたスタック領域に格納し、スタック領域の優先順位に基づいて追加プログラムを実行させるものが知られている（例えば、特許文献１参照）。
【特許文献１】特許第３２１２６５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記プログラム実行装置では、追加プログラムの実行順序はスタック領域に割り当てられた優先順位に依存する。このため、スタック領域に割り当てられた優先順位が低く設定されていれば、優先的に実行させたい追加プログラムの実行時期が遅れ、スタック領域に割り当てられた優先順位が高く設定されていれば、優先的に実行させたい追加プログラム以外の既存のプログラムの実行時期が遅れるという問題点があった。
【０００４】
そこで、このような問題点を鑑み、複数のプログラムを設定した実行順序で実行させる構成において、追加プログラムを含む各プログラムの実行時期を適切に設定することができるようにすることを本発明の目的とする。
【課題を解決するための手段】
【０００５】
かかる目的を達成するために成された請求項１に記載のプログラム実行装置においては、受付手段が、外部から受信したプログラム（追加プログラム）を当該プログラム実行装置が実行する複数のプログラムのうちの１つとして受け付けると、第１再設定手段は、追加プログラムを含む各プログラムに付された共通の優先順位情報に基づいて実行順序を再設定する。
【０００６】
従って、このようなプログラム実行装置によれば、追加プログラムを含む各プログラムの実行順序を各プログラムに付された優先順位情報に応じて設定するので、各プログラムの実行時期を適切に設定することができる。よって、追加プログラムを固定した順序でしか実行できなかった従来構成の装置と比較して、追加プログラムを実行させる際の使い勝手を向上させることができる。
【０００７】
なお、プログラム実行装置は、常時、本発明の優先順位情報を利用して実行順序を設定する構成としてもよいし、追加プログラムを受け付けていないときには本発明の優先順位情報とは異なる優先順位情報を利用して実行順序を設定（例えば、プログラム名に応じて優先順位を設定）し、受付手段が外部からのプログラムを受け付けたときのみに、本発明の優先順位情報を利用して実行順序を設定するようにしてもよい。
【０００８】
ところで、請求項１に記載のプログラム実行装置においては、請求項２に記載のように、各プログラムには、優先順位情報に加えて、各プログラムによる演算に必要なデータが入力されてから演算後のデータを出力するまでの時間の許容範囲を表す許容時間の情報、および各プログラムにおける演算に要する処理時間の情報が付された構成にすることも考えられる。この場合には、第１再設定手段による再設定結果によって各プログラムを実行する場合に、少なくとも追加プログラムが許容時間内で終了するか否かを、各優先順位情報、許容時間の情報、および各処理時間の情報に基づいて判定する終了判定手段を備えていればよい。
【０００９】
特に、請求項２に記載のプログラム実行装置において、各プログラムがさらに複数のプログラムから構成されている場合には、請求項３に記載のように、各プログラムには、各プログラムを構成する複数のプログラムについての各処理時間の情報が付されていてもよい。
【００１０】
これらのようなプログラム実行装置によれば、追加プログラムが追加されたときにおいて少なくとも追加プログラムが許容時間内に終了するか否かを、実際にプログラムを実行する前に確認することができる。
【００１１】
さらに、請求項２または請求項３に記載のプログラム実行装置においては、請求項４に記載のように、終了判定手段により追加プログラムが許容時間内で終了しないと判定されると、各プログラムに付された優先順位情報を変更し、各プログラムの実行順序を変更すれば各プログラムが許容時間内で終了するか否かを判定する順序変更判定手段と、順序変更判定手段によって各プログラムの実行順序を変更すれば各プログラムが許容時間内で終了すると判定されると、各プログラムが許容時間内で終了すると判定された実行順序に各プログラムの実行順序を設定する第２再設定手段と、を備えていてもよい。
【００１２】
このようなプログラム実行装置によれば、追加プログラムが許容時間内に終了しないと判定された場合に、プログラムの実行順序を再度設定し直すことができる。
加えて、請求項４に記載のプログラム実行装置においては、請求項５に記載のように、順序変更判定手段によって前記各プログラムが許容時間内で終了しないと判定されると、第１再設定手段による再設定結果を破棄する破棄手段を備えていてもよい。なお、破棄手段が再設定結果を破棄する場合には、再設定前の実行順序で各プログラムを実行すればよい。
【００１３】
このようなプログラム実行装置によれば、許容時間の条件を満たさない追加プログラムが実行されることを防止することができる。
ところで、請求項２または請求項３に記載のプログラム実行装置において、順序変更判定手段の機能を持たない場合には、請求項６に記載のように、破棄手段は、終了判定手段により追加プログラムが許容時間内で終了しないと判定されると、第１再設定手段による再設定結果を破棄するようにしてもよい。
【００１４】
このようなプログラム実行装置によれば、請求項５に記載の効果と同様に、許容時間の条件を満たさない追加プログラムが実行されることを防止することができる。
また、請求項２〜請求項６の何れかに記載のプログラム実行装置において、終了判定手段は、請求項７に記載のように、複数のプログラムの全てが各プログラムにおける許容時間内で終了するか否かを判定するようにしてもよい。
【００１５】
このようなプログラム実行装置によれば、追加プログラムが高優先度に設定されていた場合においても、他のプログラムが他のプログラム毎に設定された許容時間内に終了するようにすることができる。
【００１６】
次に、上記目的を達成するためにされた請求項８に記載の実行制御プログラムは、請求項１〜請求項７の何れかの記載の各手段としての機能をコンピュータにおいて実行可能にされていることを特徴とする。
【００１７】
このような実行制御プログラムによれば、少なくとも請求項１に記載の効果と同様の効果を享受することができる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明にかかる実施の形態を図面と共に説明する。
［第１実施形態］
［第１実施形態の構成］
図１は本発明が適用された第１実施形態における機能追加システム１の概略構成を示すブロック図である。機能追加システム１は、乗用車等の車両側の装置が車外サーバ５０から無線通信によってアプリケーションコンポーネント（プログラムの一種、以下「アプリケーション」という。）を受け取り、受け取ったアプリケーション（追加プログラム）を車両側で実行することによって、新たな機能を車両側で実行できるようにしたシステムである。
【００１９】
具体的には、図１に示すように、機能追加システム１は、車両側の装置として、車外サーバ５０との通信を実施する通信装置１１と、例えばＣＡＮ等の通信プロトコルによる通信が実施される通信線５に接続されたゲートウェイＥＣＵ１３およびブレーキＥＣＵ２０（プログラム実行装置）と、を備えている。ゲートウェイＥＣＵ１３およびブレーキＥＣＵ２０は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えた周知の電子制御装置として構成されている。
【００２０】
なお、ブレーキＥＣＵ２０のＣＰＵは、ＲＯＭに格納されたプログラムに基づいて、周知のＲＴＯＳ（リアルタイム・オペレーションシステム）としての機能を発揮する。また、この際の処理は、１つのＣＰＵが多数のプログラムを順番に実施するシリアル処理であるものとする。
【００２１】
また、ブレーキＥＣＵ２０を模式的に表すと、ＣＰＵ等のＥＣＵハードウェア２１、ソフトウェアの設定等が書き込まれる記録領域（ＲＡＭ等のメモリ）であるソフトプラットフォーム（ＰＦ）２３、アプリケーションが記録されるアプリ記録部２５に分割することができる。
【００２２】
ここで、ブレーキＥＣＵ２０のうちのソフトＰＦ２３およびアプリ記録部２５の詳細について図２を用いて説明する。なお、本実施形態においては、ドア制御アプリケーションをブレーキＥＣＵ２０の機能として追加する例について説明する。
【００２３】
ブレーキＥＣＵ２０には、前述のように、ＥＣＵハードウェア２１、ソフトＰＦ２３、アプリ記録部２５が備えられており、図２に示すように、ソフトＰＦ２３には優先度マッピング表を含むスケジューリング管理機構が記録されているとともに、アプリ記録部２５にはブレーキ制御アプリケーションおよびライト制御アプリケーションが記録されている。
【００２４】
ブレーキ制御アプリケーションとは、ブレーキ制御を実施するアプリケーションである。具体的には、ブレーキペダルの踏み込み量を検出する変位センサ（図示省略）による検出結果を入力値として、ブレーキの制御量を演算し、演算結果をブレーキアクチュエータ（図示省略）に出力する処理等を実行する。
【００２５】
また、ライト制御アプリケーションとは、自車両におけるヘッドライトやテールライト等のライトに関する制御を実行するアプリケーションである。具体的には、ライトスイッチや車高センサ等（図示省略）による検出結果を入力値として、各ライトのＯＮ・ＯＦＦの制御やライトの光軸の向き等の制御量等を演算し、演算結果を各ライトに出力する。
【００２６】
さらに、追加されるドア制御アプリケーションとは、ドアロックの解除や施錠等を実施するアプリケーションである。具体的には、自車両のドアに設けられたドアスイッチや車速センサ等（図示省略）による検出結果を入力として、ドアロックを解錠するか施錠するか等の演算を実施し、演算結果をドアロックアクチュエータ（図示省略）に出力する。
【００２７】
アプリ記録部２５に記録された各アプリケーションは、各アプリケーションによる処理の重要性に応じて、統一優先度情報（優先順位情報）としてのカテゴリ分けがされている。例えば、ブレーキ制御アプリケーションには最高レベルのカテゴリ３（ＣＡＴ３）、ライト制御アプリケーションには最低レベルのカテゴリ１（ＣＡＴ１）が対応付けられている。
【００２８】
また、各アプリケーションには、各アプリケーションによる処理開始後（例えば、各アプリケーションの入力値となる外部データの入力後）、所望の処理を実施し、演算結果を出力するまでの許容時間（処理を完了しなければならない時間）の情報、およびアプリケーションを構成する実行要素毎（タスク）の処理実行時間の情報が記録されている。具体的には、ブレーキ制御アプリケーションの許容時間は５０ｍｓに設定されており、ライト制御アプリケーションの許容時間は４００ｍｓに設定されている。
【００２９】
各アプリケーションにおいては実行要素のプログラムとして、入力、制御量計算、出力の各種処理を実行するよう構成されており、ブレーキ制御アプリケーションおよびライト制御アプリケーションにおける処理実行時間としては、入力時間１０ｍｓ、制御量計算時間２０ｍｓ、出力時間１０ｍｓに設定されている。
【００３０】
また、新たに追加されるドア制御アプリケーションは、カテゴリ３とカテゴリ１との中間のカテゴリ２（ＣＡＴ２）に分類されており、許容時間は２００ｍｓ、処理実行時間としては、入力時間１０ｍｓ、制御量計算時間２０ｍｓ、出力時間１０ｍｓに設定されているものとする。なお、カテゴリの情報、許容時間の情報、および処理実行時間の情報は、各アプリケーションのデータ内に包含されているデータであり、アプリケーションを受け渡す際には、これらの各情報がアプリケーションに含まれた状態にされている。
【００３１】
また、本実施形態においては、説明の解釈を容易にするために、処理時間を「ｍｓ」で表示しているが、コンピュータにおいて単位時間当たりの処理数を表すＭＩＰＳで表示してもよい。
【００３２】
ここで、ソフトＰＦ２３に格納されたスケジューリング管理機構としては、優先度マッピング表と、アプリケーションマッピング表（図示省略）と含む構成にされている。優先度マッピング表は、図２に示すように、既存のアプリケーション（本実施形態ではブレーキ制御アプリケーションおよびライト制御アプリケーション）に加えて、追加されるアプリケーション（本実施形態ではドア制御アプリケーション）に統一して付された優先度の情報（ここではＣＡＴ１〜ＣＡＴ３）と、ＲＴＯＳの機能が処理を実施する際の優先度（ＲＴＯＳ優先度）と対応付けたマップである。
【００３３】
本実施形態の優先度マッピング表においては、カテゴリ１（ＣＡＴ１）とＲＴＯＳ優先度「低」、カテゴリ２（ＣＡＴ２）とＲＴＯＳ優先度「中」、カテゴリ３（ＣＡＴ３）とＲＴＯＳ優先度「高」がそれぞれ対応付けられている。
【００３４】
一方、アプリケーションマッピング表は、アプリケーション名とＲＴＯＳ優先度とを対応付けたマップであって、ブレーキ制御アプリケーションとＲＴＯＳ優先度「高」、ライト制御アプリケーションとＲＴＯＳ優先度「低」がそれぞれ対応付けられている。なお、アプリケーションマッピング表においては、ドア制御アプリケーションとＲＴＯＳ優先度との対応関係は記されていない。ブレーキＥＣＵ２０では、どのような名前のアプリケーションが追加されるかが予想できないため、アプリケーションマッピング表に追加されるアプリケーションを事前に記載することができないからである。
【００３５】
［第１実施形態による処理］
次に、機能追加システム１においてはアプリケーションを追加する処理、およびアプリケーションが追加された場合にその実行順序を設定する処理を図３、図４に示す処理にて実施し、その後、設定された実行順序でアプリケーション実施する処理を図６に示す処理にて実施する。図３はブレーキＥＣＵ２０が実行するブレーキＥＣＵ再構成処理を示すフローチャート、図４（ａ）はブレーキＥＣＵ再構成処理のうちのスケジューリング管理処理を示すフローチャート、図４（ｂ）はスケジューリング管理処理のうちの再設定処理を示すフローチャートである。
【００３６】
なお、本実施形態においては、ブレーキＥＣＵ２０にアプリケーションが追加される場合の処理について説明するが、他のＥＣＵにアプリケーションが追加される場合においても同様の処理を適用することができる。
【００３７】
ブレーキＥＣＵ再構築処理は、例えば、図示しないイグニッションスイッチがＯＦＦ状態にされたとき等、安全にソフトウェアを更新することができるタイミングで開始される処理であって、図３に示すように、まず、再構成設定がＯＮ状態であるか否かを判定する（Ｓ１１０）。ここで、再構成設定とは、車外サーバ５０から配信可能な追加プログラム（アプリケーション）がある場合に、車両側でこの追加プログラムを取得するか否か（取得する場合はＯＮ、取得しない場合はＯＦＦ）を使用者等が予め設定することができるようにしたものである。
【００３８】
再構成設定がＯＦＦ状態にされていれば（Ｓ１１０：ＮＯ）、直ちに本処理を終了する。また、再構成設定がＯＮ状態にされていれば（Ｓ１１０：ＹＥＳ）、ダウンロード可能な追加プログラムの有無を検索し、ダウンロード可能な追加プログラムがあればこのプログラムをダウンロードする（Ｓ１２０：受付手段）。具体的なＳ１２０の処理としては例えば以下の処理を実施する。
【００３９】
即ち、ブレーキＥＣＵ２０は、ゲートウェイＥＣＵ１３に対して自身を再構成する旨を送信する。すると、ゲートウェイＥＣＵ１３は、自身のＲＯＭ等に格納されたプログラムに基づいて、通信装置１１を介して車外サーバ５０にアクセスし、ダウンロード可能な追加プログラムをダウンロードしてブレーキＥＣＵ２０に送信する。
【００４０】
この処理が終了するか、或いは予め設定された規定時間（タイムアウト時間）が経過すると、ダウンロードされた追加プログラムの有無を判定する（Ｓ１３０）。追加プログラムがなければ（Ｓ１３０：ＮＯ）、直ちに本処理を終了する。
【００４１】
一方、追加プログラムがあれば（Ｓ１３０：ＹＥＳ）、スケジューリング管理処理を実施する（Ｓ１４０）。
スケジューリング管理処理においては、図４（ａ）に示すように、全てのアプリケーションにおける統一優先度（Ｓ２１０）、許容時間の情報（Ｓ２２０）、全各実行要素の実行時間の情報（Ｓ２３０）を順次取得する。そして、これらの情報と優先度マッピング表とに基づいてスケジューリングを実施したと仮定した場合に、全てのアプリケーションが許容時間内に終了するか否かを検証する（Ｓ２４０：終了判定手段）。
【００４２】
続いて、許容時間内に終了しないアプリケーションが１つでもあるか否かを判定する（Ｓ２５０：終了判定手段）。全てのアプリケーションが許容時間内に終了すれば（Ｓ２５０：ＮＯ）、実際に追加されたアプリケーションを実行順序に含める処理である再設定処理を実施する（Ｓ２６０：第１再設定手段）。
【００４３】
再設定処理は、図４（ｂ）に示すように、まず、追加されたアプリケーションを含む各アプリケーションの統一優先度を取得し（Ｓ３１０）、各統一優先度に基づいて優先度マッピング表からＲＴＯＳ優先度を取得する（Ｓ３２０）。そして、各アプリケーションのＲＴＯＳ優先度に基づいてＲＴＯＳのスケジューラの設定を実施し（Ｓ３３０）、再設定処理を終了する。
【００４４】
このような再設定処理が終了すると、図４（ａ）のスケジュール管理処理に戻り、追加プログラムに関するスケジューリングが実施された旨を表す再構成フラグをＯＮ状態に設定し（Ｓ２７０）、スケジュール管理処理を終了する。一方、Ｓ２５０の処理において、許容時間内に終了しないアプリケーションがあれば（Ｓ２５０：ＹＥＳ）、アプリケーションの追加を拒否し（Ｓ２８０：破棄手段）、スケジュール管理処理を終了する。
【００４５】
このようなスケジューリング管理処理が終了すると、図３に戻り、ブレーキＥＣＵ再構成処理を終了する。
ここで、ブレーキＥＣＵ再構成処理の前後において各アプリケーションが実施される際のスケジューリングについて図５を用いて説明する。図５（ａ）はアプリケーション追加前における各アプリケーションの実施時期の一例を示すタイミングチャート、図５（ｂ）はアプリケーション追加後における各アプリケーションの実施時期の一例を示すタイミングチャートである。
【００４６】
ここでは最も優先順位の低いライト制御アプリケーションの作動中に、より優先順位の高いアプリケーションが割り込んで作動する場合を想定して説明する。アプリケーション追加前（図５（ａ））において、ライト制御アプリケーションの入力処理が作動中に、ブレーキ制御アプリケーションが作動すると、プログラムの実行単位であるライト制御アプリケーションの入力処理終了後、制御量計算処理の前に、ブレーキ制御アプリケーションの全処理が実施される。
【００４７】
そして、プレーキ制御アプリケーションによる全処理が終了すると、ライト制御アプリケーションの残りの処理である制御量計算処理および出力処理が実行されることになる。この結果、ブレーキ制御アプリケーションは、データの入力開始から４０ｍｓで終了するため許容時間５０ｍｓを満たす。また、ライト制御アプリケーションは、ブレーキ制御アプリケーションの割り込みによって４０ｍｓの遅延が発生するものの、データの入力開始から終了までの時間は８０ｍｓとなるため、許容時間４００ｍｓを満たす。
【００４８】
次に、アプリケーション追加後（図５（ｂ））においては、ライト制御アプリケーションの入力処理が作動中に、ドア制御アプリケーションが作動し、ドア制御アプリケーションの入力処理が作動中に、さらにブレーキ制御アプリケーションが作動する場合を想定する。この場合には、ライト制御アプリケーションの入力処理、およびドア制御アプリケーションの入力処理が順に実施された後、プレーキ制御アプリケーションによる全処理、ドア制御アプリケーションによる入力処理を除く全処理、ライト制御アプリケーションによる入力処理を除く全処理が順に実施される。
【００４９】
この結果、ブレーキ制御アプリケーションは、データの入力開始から４０ｍｓで終了するため許容時間５０ｍｓを満たし、ドア制御アプリケーションは、ブレーキ制御アプリケーションの割り込みによって４０ｍｓの遅延が発生するものの、データの入力開始から終了までの時間は８０ｍｓとなるため、許容時間２００ｍｓを満たす。
【００５０】
また、ライト制御アプリケーションは、ドア制御アプリケーションおよびブレーキ制御アプリケーションの割り込みによって８０ｍｓの遅延が発生するものの、データの入力開始から終了までの時間は１２０ｍｓとなるため、許容時間４００ｍｓを満たす。
【００５１】
次に、ブレーキＥＣＵ２０のアプリ記録部２５に記録されたアプリケーションを実施する際には、図６の処理が実施される。図６はブレーキＥＣＵ２０が実行するプログラム実行処理を示すフローチャートである。
【００５２】
プログラム実行処理は、例えば、図示しないイグニッションスイッチがＯＮ状態にされると起動される処理であって、まず、再構成フラグの状態を判定する（Ｓ４１０）。再構成フラグがＯＮ状態であれば（Ｓ４１０：ＹＥＳ）、ブレーキＥＣＵ２０の再構成が成されているものとして、統一優先度に基づく実行順序（即ち、優先度マッピング表に基づく実行順序）でプログラムを繰り返し実行する（Ｓ４２０）。
【００５３】
また、再構成フラグがＯＦＦ状態であれば（Ｓ４１０：ＮＯ）、アプリ名に基づく実行順序（即ち、アプリケーションマッピング表に基づく実行順序）でプログラムを繰り返し実行する（Ｓ４３０）。
【００５４】
この際、各アプリケーションが許容時間内に終了することが検証済みなので、各アプリケーションを許容時間内に終了させることができる。
［第１実施形態による効果］
以上のように詳述した機能追加システム１においてブレーキＥＣＵ２０は、ブレーキＥＣＵ再構成処理にて、外部から受信したアプリケーション（追加プログラム）をブレーキＥＣＵ２０が実行する複数のアプリケーションのうちの１つとして受け付けると、ブレーキＥＣＵ２０は、スケジュール管理処理にては、追加プログラムを含む各アプリケーションに付された統一優先度の情報に基づいて実行順序を再設定する。
【００５５】
従って、このような機能追加システム１によれば、追加プログラムを含む各アプリケーションの実行順序を各アプリケーションに付された統一優先度の情報に応じて設定するので、各アプリケーションの実行時期を適切に設定することができる。よって、追加プログラムを固定した順序でしか実行できなかった従来構成の装置と比較して、追加プログラムを実行させる際の使い勝手を向上させることができる。
【００５６】
また、機能追加システム１においては、各アプリケーションに、統一優先度の情報に加えて、各アプリケーションによる演算に必要なデータが入力されてから演算後のデータを出力するまでの時間の許容範囲を表す許容時間情報、および各アプリケーションにおける演算に要する実行時間情報が付されている。そして、ブレーキＥＣＵ２０は、再設定結果による実行順序で各アプリケーションを実行すると仮定した場合に、追加プログラムを含む複数のアプリケーションの全てが許容時間内で終了するか否かを、各統一優先度の情報、許容時間情報、および各実行時間情報に基づいて判定する。
【００５７】
従って、このような機能追加システム１によれば、追加プログラムが追加されたときにおいて各アプリケーションが許容時間内に終了するか否かを、実際にアプリケーションを実行する前に確認することができる。また、追加プログラムが高優先度に設定されていた場合においても、他のアプリケーションが他のアプリケーション毎に設定された許容時間内に終了するようにすることができる。
【００５８】
加えて、機能追加システム１においてブレーキＥＣＵ２０は、追加プログラムを含むブレーキＥＣＵ２０が実行する各アプリケーションが許容時間内で終了しないと判定されると、再設定結果を破棄する。
【００５９】
このようなブレーキＥＣＵ２０によれば、許容時間の条件を満たさないアプリケーションが実行されることを防止することができる。
［第２実施形態］
次に、別形態の機能追加システム２について説明する。本実施形態（第２実施形態）では、第１実施形態の機能追加システム１と異なる箇所のみを詳述し、第１実施形態の機能追加システム１と同様の箇所については、同一の符号を付して説明を省略する。
【００６０】
図７は、第２実施形態の機能追加システム２の概略構成を示すブロック図である。第２実施形態の機能追加システム２では、図７に示すように、通信線５にシートＥＣＵ６０が接続された構成とされている。
【００６１】
シートＥＣＵ６０は、シート制御アプリケーションを実行することによって、車両における座席（シート）の移動等を制御する電子制御装置である。シート制御アプリケーションを具体的に説明すると、シートを移動させる外部指令を使用者が入力するためのシートスイッチや車速センサ等（図示省略）による検出結果を入力値として、シートの移動量等の制御量を演算し、演算結果をシートを移動させるシートアクチュエータに出力する。
【００６２】
ここで、ブレーキＥＣＵ２０およびシートＥＣＵ６０は、通信線５を介して接続された他のＥＣＵにおける故障等の異常を検出する機能および自己の異常を診断する機能を備えている。即ち、各ＥＣＵ２０，６０が自己の異常を検出した場合には、他のＥＣＵに自己の機能の実行を委ねるために、予め設定された他のＥＣＵに対してアプリケーションを送信する。また、各ＥＣＵ２０，６０が他のＥＣＵの異常を検出した場合には、他のＥＣＵからアプリケーションを取得し、そのアプリケーションを実行する。
【００６３】
具体的に本実施形態においては、シートＥＣＵ６０に異常が発生した場合を想定し、シートＥＣＵ６０の異常をシートＥＣＵ６０またはブレーキＥＣＵ２０が検出し、シートＥＣＵ６０が有するアプリケーションをブレーキＥＣＵ２０に移動させて実行させる場合について説明する。この場合には、第１実施形態におけるブレーキＥＣＵ再構成処理に換えて、図８に示す処理を実施すればよい。
【００６４】
図８はブレーキＥＣＵ２０が実行する第２実施形態におけるブレーキＥＣＵ再構成処理を示すフローチャートである。第２実施形態におけるブレーキＥＣＵ再構成処理は、イグニッションスイッチがＯＦＦ状態にされたとき等の任意の時期（安全にソフトウェアを更新できるタイミングが望ましい）に開始される処理であって、まず、他のＥＣＵ（シートＥＣＵ６０）に異常が発生したか否かを判定する（Ｓ５１０）。
【００６５】
この処理においては、シートＥＣＵ６０が自己の異常を検出したときにおいて、自己が異常である旨の信号をブレーキＥＣＵ２０が受信した場合、またはシートＥＣＵ６０からの信号パターンが異常であることをブレーキＥＣＵ２０が検出した場合に、異常が検出されたものと判断される。
【００６６】
他のＥＣＵの異常を検出していなければ（Ｓ５１０：ＮＯ）、直ちにブレーキＥＣＵ再構成処理を終了する。また、他のＥＣＵの異常を検出していれば（Ｓ５１０：ＹＥＳ）、異常に該当するＥＣＵが有するアプリケーションをダウンロードする（Ｓ５２０）。
【００６７】
本実施形態においてＳ５２０の処理では、シートＥＣＵ６０が有するシート制御アプリケーションをブレーキＥＣＵ２０がダウンロードする。そして、この処理が終了すると、第１実施形態のブレーキＥＣＵ再構成処理におけるＳ１３０以下の処理と同様の処理を実施する。
【００６８】
このような第２実施形態の機能追加システム２の構成であっても、ブレーキＥＣＵ２０の外部からアプリケーションを追加することができ、その追加されたアプリケーションをブレーキＥＣＵ２０にて良好に実施することができる。
【００６９】
［第３実施形態］
次に、さらに別形態の機能追加システム３（図示省略）について説明する。
本実施形態の機能追加システム３では、スケジュール管理処理の一部のみが上記各実施形態と異なる。なお、本実施形態の構成は、上記各実施形態の何れにも適用することができる。また、第３実施形態におけるスケジュール管理処理を示すフローチャートを図９に示す。
【００７０】
本実施形態のスケジュール管理処理では、許容時間内に終了しないアプリケーションが１つでもある場合の処理のみが異なる。即ち、許容時間内に終了しないアプリケーションが１つでもある場合に（Ｓ２５０：ＮＯ）、単にアプリケーションの追加を拒否するのではなく、ＲＴＯＳの優先度を入れ替えることによって、各アプリケーションの許容時間を満たすことができるか否かを判定する（Ｓ６１０：順序変更判定手段）。
【００７１】
具体的には、図２に示す優先度マッピング表において、追加したアプリケーションに関する統一優先度（ＣＡＴ２）のＲＴＯＳ優先度を単純に高く設定するか、ＣＡＴ３のＲＴＯＳ優先度と入れ替える等、ＣＡＴ２のＲＴＯＳ優先度が相対的に高くなるよう設定した場合に、各アプリケーションの許容時間を満たすことができるか否かを判定すればよい。
【００７２】
ＲＴＯＳの優先度を入れ替えることによって各許容時間を満たせば（Ｓ６１０：ＹＥＳ）、取得されたＲＴＯＳ優先度を変更し、ＲＴＯＳのスケジューラを設定する（Ｓ６２０：第２再設定手段）。つまり、この処理においては、追加したアプリケーションに関する統一優先度（ＣＡＴ２）のＲＴＯＳ優先度が相対的に高くなるよう設定し、その後、再設定処理（図４（ｂ））を実施するようにすればよい。なお、Ｓ６２０の処理が終了すると、Ｓ２７０の処理に移行する。
【００７３】
一方、ＲＴＯＳの優先度を入れ替えたとしても何れかのアプリケーションの許容時間を満たさなければ（Ｓ６１０：ＮＯ）、アプリケーションの追加を拒否し（Ｓ２８０：破棄手段）、スケジュール管理処理を終了する。
【００７４】
以上のように詳述した第３実施形態の機能追加システム３においてブレーキＥＣＵ２０は、スケジュール管理処理にて、追加プログラムが許容時間内で終了しないと判定されると、各アプリケーションに付された統一優先度の情報を変更し、各アプリケーションの実行順序を変更すれば各アプリケーションが許容時間内で終了するか否かを判定する。そして、ブレーキＥＣＵ２０は、各アプリケーションの実行順序を変更すれば各アプリケーションが許容時間内で終了すると判定されると、各アプリケーションが許容時間内で終了すると判定された実行順序に各アプリケーションの実行順序を設定する。
【００７５】
このようなブレーキＥＣＵ２０によれば、追加プログラムが許容時間内に終了しないと判定された場合に、アプリケーションの実行順序を再度設定し直すことができる。
加えて、機能追加システム３においてブレーキＥＣＵ２０は、各アプリケーションが許容時間内で終了しないと判定されると、再設定結果を破棄する。
【００７６】
このようなブレーキＥＣＵ２０によれば、許容時間の条件を満たさない追加プログラムが実行されることを防止することができる。
なお、本発明の実施の形態は、上記の各実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【図面の簡単な説明】
【００７７】
【図１】第１実施形態における機能追加システム１の概略構成を示すブロック図である。
【図２】ブレーキＥＣＵ２０のうちのソフトＰＦ２３およびアプリ記録部２５の詳細を示す模式図である。
【図３】第１実施形態におけるブレーキＥＣＵ再構成処理を示すフローチャートである。
【図４】ブレーキＥＣＵ再構成処理のうちのスケジューリング管理処理を示すフローチャート（ａ）、およびスケジューリング管理処理のうちの再設定処理を示すフローチャート（ｂ）である。
【図５】アプリケーション追加前における各アプリケーションの実施時期の一例を示すタイミングチャート（ａ）、およびアプリケーション追加後における各アプリケーションの実施時期の一例を示すタイミングチャート（ｂ）である。
【図６】プログラム実行処理を示すフローチャートである。
【図７】第２実施形態の機能追加システム２の概略構成を示すブロック図である。
【図８】第２実施形態におけるブレーキＥＣＵ再構成処理を示すフローチャートである。
【図９】第３実施形態におけるスケジュール管理処理を示すフローチャートである。
【符号の説明】
【００７８】
１…機能追加システム、２…機能追加システム、３…機能追加システム、５…通信線、１１…通信装置、１３…ゲートウェイＥＣＵ、２０…ブレーキＥＣＵ、２１…ＥＣＵハードウェア、２３…ソフトＰＦ、２５…アプリ記録部、５０…車外サーバ、６０…シートＥＣＵ。
【図３】
2010015452.tif 000003
【図４】
2010015452.tif 000004
【図５】
2010015452.tif 000005
【図６】
2010015452.tif 000006
【図８】
2010015452.tif 000007
【図９】
2010015452.tif 000008
【図１】
2010015452.tif 000009
【図２】
2010015452.tif 000010
【図７】
2010015452.tif 000011