(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061957
(43)【公開日】2024-05-09
(54)【発明の名称】車載装置、プログラム提供装置、車両用システム、機能部制御方法、プログラム保存方法及びプログラム提供方法
(51)【国際特許分類】
G06F 9/445 20180101AFI20240430BHJP
B60R 16/02 20060101ALI20240430BHJP
【FI】
G06F9/445 130
B60R16/02 660T
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022169622
(22)【出願日】2022-10-24
(71)【出願人】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】奥原 誠
(72)【発明者】
【氏名】大築 ともえ
(72)【発明者】
【氏名】坂口 友理
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA32
5B376AC13
5B376AC23
5B376FA11
5B376GA07
(57)【要約】
【課題】プログラムによる適正な車両制御を実現する。
【解決手段】複数の機能部を備えた車両に搭載される車載装置であって、1以上のアプリケーションプログラムを保存するメモリと、1以上のアプリケーションプログラムの何れかを実行することにより複数の機能部の何れかを制御するコントローラと、を備える。1以上のアプリケーションプログラムは、複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含む。コントローラは、制御対象に関して対象アプリケーションプログラムに付加された信頼レベルと、制御対象に対し車両にて定められた機能安全レベルと、に基づき、対象アプリケーションプログラムの実行可否、又は、対象アプリケーションプログラムの実行による制御対象の制御可否を決定する。
【選択図】
図11
【特許請求の範囲】
【請求項1】
複数の機能部を備えた車両に搭載される車載装置であって、
1以上のアプリケーションプログラムを保存するメモリと、
前記1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御するコントローラと、を備え、
前記1以上のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、
前記コントローラは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの実行可否、又は、前記対象アプリケーションプログラムの実行による前記制御対象の制御可否を決定する
、車載装置。
【請求項2】
前記コントローラは、前記信頼レベル及び前記機能安全レベルが所定の許可条件を充足するとき、前記対象アプリケーションプログラムの実行を許可し、前記信頼レベル及び前記機能安全レベルが前記許可条件を逸脱するとき、前記対象アプリケーションプログラムの実行を禁止する
、請求項1に記載の車載装置。
【請求項3】
前記コントローラは、前記対象アプリケーションプログラムが前記メモリに保存された後、前記対象アプリケーションプログラムの実行を禁止すると決定した場合、前記対象アプリケーションプログラムを前記メモリから削除する
、請求項2に記載の車載装置。
【請求項4】
前記制御対象は、第1制御対象及び第2制御対象を含み、
前記信頼レベルは、前記第1制御対象に対する第1信頼レベルと前記第2制御対象に対する第2信頼レベルと、を含み、
前記コントローラは、前記第1信頼レベル、前記第2信頼レベル、前記第1制御対象に対し前記車両にて定められた第1機能安全レベル、及び、前記第2制御対象に対し前記車両にて定められた第2機能安全レベルに基づき、前記対象アプリケーションプログラムの実行による前記第1制御対象の制御可否と前記対象アプリケーションプログラムの実行による前記第2制御対象の制御可否を個別に決定する
、請求項1に記載の車載装置。
【請求項5】
前記コントローラは、前記第1信頼レベル及び前記第1機能安全レベルが所定の許可条件を充足する一方で、前記第2信頼レベル及び前記第2機能安全レベルが前記許可条件を逸脱するとき、前記対象アプリケーションプログラムの実行による前記第1制御対象の制御を許可する一方で前記対象アプリケーションプログラムの実行による前記第2制御対象の制御を禁止する
、請求項4に記載の車載装置。
【請求項6】
複数の機能部を備えた車両に搭載される車載装置であって、
1以上のアプリケーションプログラムを保存するメモリと、
前記1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御するコントローラと、
プログラム提供装置と通信を行う通信部と、を備え、
前記コントローラは、前記プログラム提供装置から受信したアプリケーションプログラムを前記メモリに保存させる保存処理を実行し、
前記コントローラは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムに対する前記保存処理の実行可否を、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、決定する
、車載装置。
【請求項7】
前記コントローラは、前記信頼レベル及び前記機能安全レベルが所定の許可条件を充足するとき、前記対象アプリケーションプログラムに対する前記保存処理を実行し、前記信頼レベル及び前記機能安全レベルが前記許可条件を逸脱するとき、前記対象アプリケーションプログラムに対する前記保存処理を禁止する
、請求項6に記載の車載装置。
【請求項8】
前記メモリは複数のプログラム記憶領域を有して、各プログラム記憶領域に1つのアプリケーションプログラムを保存可能に構成される
、請求項1~7の何れかに記載の車載装置。
【請求項9】
前記メモリは、各アプリケーションプログラムが使用するデータが格納されたデータテーブルを有する
、請求項1~7の何れかに記載の車載装置。
【請求項10】
請求項1~7の何れかの車載装置に対して前記対象アプリケーションプログラムを送信するプログラム提供装置であって、
前記車載装置に対して前記対象アプリケーションプログラムを送信する際、前記信頼レベルを前記対象アプリケーションプログラムに付加して前記車載装置に送信する
、プログラム提供装置。
【請求項11】
請求項1~7の何れかの車載装置と、
前記車載装置に対して前記対象アプリケーションプログラムを送信するプログラム提供装置と、を備えた車両用システムであって、
前記プログラム提供装置は、前記車載装置に対して前記対象アプリケーションプログラムを送信する際、前記信頼レベルを前記対象アプリケーションプログラムに付加して前記車載装置に送信する
、車両用システム。
【請求項12】
複数の機能部を備えた車両に搭載される車載装置と通信可能に構成されたプログラム提供装置であって、
複数のアプリケーションプログラムを保持するプログラムデータベースと、
前記車載装置と通信を行う通信部と、
前記通信部を用い、前記複数のアプリケーションプログラムの何れかを前記車載装置に送信するコントローラと、を備え、
前記車載装置において各アプリケーションプログラムが実行されることで各アプリケーションプログラムに対応する機能部が制御され、
前記複数のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、
前記コントローラは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの前記車載装置への送信可否を決定する
、プログラム提供装置。
【請求項13】
前記コントローラは、前記信頼レベル及び前記機能安全レベルが所定の許可条件を充足するとき、前記対象アプリケーションプログラムを前記車載装置に送信し、前記信頼レベル及び前記機能安全レベルが前記許可条件を逸脱するとき、前記対象アプリケーションプログラムの前記車載装置への送信を禁止する
、請求項12に記載のプログラム提供装置。
【請求項14】
複数の機能部を備えた車両にて用いられる機能部制御方法であって、
1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御する制御ステップと、
決定ステップと、を有し、
前記1以上のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、
前記決定ステップでは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの実行可否、又は、前記対象アプリケーションプログラムの実行による前記制御対象の制御可否を決定する
、機能部制御方法。
【請求項15】
複数の機能部を備えた車両にて用いられるプログラム保存方法であって、
メモリに保存された1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御する制御ステップと、
プログラム提供装置から受信したアプリケーションプログラムを前記メモリに保存させる保存ステップと、
前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムに対する前記保存ステップの実行可否を決定する決定ステップと、を有し、
前記決定ステップでは、前記対象アプリケーションプログラムに対する前記保存ステップの実行可否を、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、決定する
、プログラム保存方法。
【請求項16】
複数の機能部を備えた車両に搭載される車載装置にプログラムを提供するためのプログラム提供方法であって、
複数のアプリケーションプログラムの何れかを前記車載装置に送信する送信ステップと、
決定ステップと、を有し、
前記車載装置において各アプリケーションプログラムが実行されることで各アプリケーションプログラムに対応する機能部が制御され、
前記複数のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、
前記決定ステップでは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの前記車載装置への送信可否を決定する
、プログラム提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載装置、プログラム提供装置、車両用システム、機能部制御方法、プログラム保存方法及びプログラム提供方法に関する。
【背景技術】
【0002】
車両には各種の機能部(エンジン、ワイパ、パワーウィンドウ、エアコンディショナ等)が設けられる。例えば、サーバ装置から機能部を制御するためのアプリケーションプログラムを車載装置にダウンロードするといったことが考えられる(例えば下記特許文献1参照)。車載装置にて当該アプリケーションプログラムを実行することで、快適な車内空間の提供、適正な運転支援又は適正な自動運転の提供等が可能となる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
但し、この種のアプリケーションプログラムの全てが妥当なものであるとは限らない。アプリケーションプログラムを利用するにあたり、適正な車両制御に向けた工夫が必要である。
【0005】
本発明は、適正な車両制御に寄与する車載装置、プログラム提供装置、車両用システム、機能部制御方法、プログラム保存方法及びプログラム提供方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る車載装置は、複数の機能部を備えた車両に搭載される車載装置であって、1以上のアプリケーションプログラムを保存するメモリと、前記1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御するコントローラと、を備え、前記1以上のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、前記コントローラは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの実行可否、又は、前記対象アプリケーションプログラムの実行による前記制御対象の制御可否を決定する。
【0007】
本発明に係る他の車載装置は、複数の機能部を備えた車両に搭載される車載装置であって、1以上のアプリケーションプログラムを保存するメモリと、前記1以上のアプリケーションプログラムの何れかを実行することにより前記複数の機能部の何れかを制御するコントローラと、プログラム提供装置と通信を行う通信部と、を備え、前記コントローラは、前記プログラム提供装置から受信したアプリケーションプログラムを前記メモリに保存させる保存処理を実行し、前記コントローラは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムに対する前記保存処理の実行可否を、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、決定する。
【0008】
本発明に係るプログラム提供装置は、複数の機能部を備えた車両に搭載される車載装置と通信可能に構成されたプログラム提供装置であって、複数のアプリケーションプログラムを保持するプログラムデータベースと、前記車載装置と通信を行う通信部と、前記通信部を用い、前記複数のアプリケーションプログラムの何れかを前記車載装置に送信するコントローラと、を備え、前記車載装置において各アプリケーションプログラムが実行されることで各アプリケーションプログラムに対応する機能部が制御され、前記複数のアプリケーションプログラムは、前記複数の機能部の何れかを制御対象とする対象アプリケーションプログラムを含み、前記コントローラは、前記制御対象に関して前記対象アプリケーションプログラムに付加された信頼レベルと、前記制御対象に対し前記車両にて定められた機能安全レベルと、に基づき、前記対象アプリケーションプログラムの前記車載装置への送信可否を決定する。
【発明の効果】
【0009】
本発明によれば、適正な車両制御に寄与する車載装置、プログラム提供装置、車両用システム、機能部制御方法、プログラム保存方法及びプログラム提供方法を提供することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係るシステムの全体構成図である。
【
図2】本発明の実施形態に係り、データテーブル(掲示板)の構造図である。
【
図3】本発明の実施形態に係り、データテーブル内のデータの取得方法及び配信方法に関わるフローチャートである。
【
図4】本発明の実施形態に係り、或るアプリケーションプログラムの機能説明図である。
【
図5】本発明の実施形態に属する第1実施例に係り、システムの全体構成図である。
【
図6】本発明の実施形態に属する第1実施例に係り、機能安全テーブルの構造図である。
【
図7】本発明の実施形態に属する第1実施例に係り、アプリケーションプログラムにアプリ情報テーブルが付加される様子を示す図(a)と、それらがアプリDB又はコンテナに保存される様子を示す図(b)、(c)である。
【
図8】本発明の実施形態に属する第1実施例に係り、アプリ情報テーブルの構造図である。
【
図9】本発明の実施形態に属する第1実施例に係り、或るアプリケーションプログラム及び対応するアプリ情報テーブルを示す図である。
【
図10】本発明の実施形態に属する第1実施例に係り、他のアプリケーションプログラム及び対応するアプリ情報テーブルを示す図である。
【
図11】本発明の実施形態に属する第1実施例に係り、アプリのインストール動作に関わるシステムのフローチャートである。
【
図12】本発明の実施形態に属する第1実施例に係り、更に他のアプリケーションプログラム及び対応するアプリ情報テーブルを示す図である。
【
図13】本発明の実施形態に属する第1実施例に係り、アプリのインストール動作に関わるシステムの変形フローチャートである。
【
図14】本発明の実施形態に属する第2実施例に係り、アプリのインストール動作に関わるシステムのフローチャートである。
【
図15】本発明の実施形態に属する第2実施例に係り、アプリのインストール動作に関わるシステムの変形フローチャートである。
【
図16】本発明の実施形態に属する第3実施例に係り、サーバ側フィルタ処理に関わるフローチャートである。
【
図17】本発明の実施形態に属する第3実施例に係り、サーバ側フィルタ処理に関わる変形フローチャートである。
【
図18】本発明の実施形態に属する第4実施例に係り、車両側制御部の機能ブロック図である。
【
図19】本発明の実施形態に属する第4実施例に係り、サーバ側制御部の機能ブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、機能部、回路、素子又は部品等を参照する記号又は符号を記すことによって、該記号又は符号に対応する情報、信号、物理量、機能部、回路、素子又は部品等の名称を省略又は略記することがある。例えば、後述の“11”によって参照される駆動ECUは(
図5参照)、駆動ECU11と表記されることもあるし、ECU11と略記されることもあり得るが、それらは全て同じものを指す。
【0012】
図1に本発明の実施形態に係るシステムSYSの全体構成を示す。システムSYSは、複数のノード10と、セントラルゲートウェイ20(以下、CGW20と称する)と、通信制御装置100と、サーバ装置200と、を備える。これらの内、複数のノード10の全部又は一部と、CGW20と、通信制御装置100とは、車両CRに搭載される。但し、
図1では全てのノード10が車両CRに搭載される様子が示されている。サーバ装置200は車両CRに外部に設置される。車両CRは路面上を走行可能な自動車等である。
【0013】
通信制御装置100及びサーバ装置200は夫々に所定の通信網NETに無線接続される。結果、通信制御装置100及びサーバ装置200に通信網NETを介して互いに無線接続される。通信網NETは、移動体通信網、インターネット、無線LAN(Local Area Network)及び近距離無線通信回線の内、全部又は一部を含む。無線LANは、例えばWi-Fi(登録商標)に準拠したものであって良い。近距離無線通信回線は、例えばBluetooth(登録商標)に準拠したものであって良い。
【0014】
通信制御装置100は、車両側制御部110、車両側メモリ120及び車両側通信部130を備える。車両側制御部110は、通信制御装置100における各部位の動作の制御を行うコントローラである。車両側制御部110は、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)等を含む演算処理部をハードウェア資源として備える。車両側メモリ120は、ROM(Read only memory)又はフラッシュメモリ等の不揮発性メモリ、及び、RAM(Random access memory)等の揮発性メモリを含む。車両側制御部110は車両側メモリ120内の任意のプログラムを実行できて良い。車両側メモリ120の全部又は一部は車両側制御部110に内蔵されたメモリであっても良い。
【0015】
車両側メモリ120は、掲示板と称することもできるデータテーブル121と、コンテナ部122と、を有する。尚、コンテナとは、アプリケーションプログラムをコンテナと呼ばれる動作環境にパッケージ化し、コンテナエンジン上で動かす仮想化技術のひとつである。コンテナ部122は複数のコンテナ122Cを有する。各コンテナ122Cはプログラム記憶領域である。各コンテナ122Cに1つのアプリケーションプログラムを保存することができる。コンテナ部122は不揮発性メモリにて構成されると良い。アプリケーションプログラムは、以下、アプリと略記されることがある。尚、任意のプログラムに関し、プログラムの保存、記憶、記録及び格納は互いに同義であると解して良い。同様に、任意のデータに関し、データの保存、記憶、記録及び格納は互いに同義であると解して良い。
【0016】
車両側通信部130は相手側機器との通信を実現する機能ブロックである。通信は双方向通信であって良いが、一方向通信であり得る。通信制御装置100は車両側通信部130を用いて相手側機器との通信を行うが、以下の説明では、車両側通信部130の記述を省略することがある。
【0017】
通信制御装置100にとっての相手側機器はサーバ装置200を含む。通信制御装置100は通信網NETを介してサーバ装置200と双方向通信を行う。
【0018】
通信制御装置100にとっての相手側機器は車内ネットワークに接続された各ノード10を含む。通信制御装置100及びCGW20は車両CR内に形成された車内ネットワークに接続される。複数のノード10の内、全部又は一部も車内ネットワークに接続される。通信制御装置100は車内ネットワーク及びCGW20を介して各ノード10と双方向通信を行う。但し、通信制御装置100と幾つかのノード10との通信は、一方向通信であり得る。車内ネットワークはCAN(Controller Area Network)及びAVCLAN(Audio Visual Communication Local Area Network)を含む。
【0019】
CGW20は、通信制御装置100と各ノード10との間の通信を中継する。CGW20はセントラルゲートウェイ機能を持つECU(Electronic Control Unit)にて形成される。
【0020】
尚、車両CR内に設けられる全ノード10の内、一部のノード10と、通信制御装置100とは、CGW20を介することなく、車内ネットワーク又はWi-Fi(登録商標)等を介して接続され且つ通信を行い得る。CGW20を介して通信制御装置100と通信可能に接続されるノード10は、セキュリティ性の高い各種機器であって、例えば車両の走行制御に関係する駆動系装置等が該当する。ユーザの持つスマートホン等の携帯機器がノード10に該当する場合、当該携帯機器はCGW20を介さずに通信制御装置100と接続される場合が多い。ここで、ユーザとは車両CRの運転手を指す。但し、運転手以外の車両CRの搭乗者もユーザに該当して良い。本実施形態において、運転手とは、特に記述無き限り、車両CRの運転手を指す。
【0021】
各ノード10は、通信制御装置100からの各種のデータ及び信号を受信して受信内容に基づく動作を行う、又は、通信制御装置100に対して各種のデータ及び信号を送信する。以下に、ノード10の例を挙げる。
【0022】
車両CRの製造時に車両CRに組み込まれる装置(以下、組み込み装置と称する)は、ノード10の例に該当する。組み込み装置は、例えば、エンジン制御装置、操舵装置、ボディ制御装置、制動装置、パワーウィンドウ装置、エアコン装置、エアバッグ装置、シート制御装置、照明装置及びカメラ装置を含む。車両CRの製造後、ユーザ又はディーラ等により車両CRに対して追加設置される装置(以下、追加設置装置と称する)は、ノード10の例に該当する。追加設置装置は、例えば、ナビゲーション装置、ドライブレコーダ装置、オーディオ装置及びビジュアル装置を含む。車両CRの製造後、ユーザにより車両CR内に持ち込まれる装置(以下、持ち込み装置と称する)は、ノード10の例に該当する。持ち込み装置は、例えば、スマートホンを含む携帯電話機、スマートウォッチ、ゲーム機器、タブレット及びパーソナルコンピュータを含む。
【0023】
車両センサはノード10の例である。車両センサは、例えば、車両CRの速度を検出する車速センサ、車室内の温度を検出する温度センサ、車室内の湿度を検出する湿度センサ、車室内のCO2濃度を検出するCO2センサ、車両CRの位置(現在地)を検出するGPS位置センサ、及び、車両CRの現在地における降雨を検出する降雨センサを含む。車両センサは一般的に組み込み装置に該当する。車室は車両CRの車室を指す。GPSは“Global Positioning System”の略称である。
【0024】
バイタルセンサはノード10の例である。バイタルセンサはユーザ(主として運転手)の生体情報を取得するセンサである。ユーザの生体情報は、例えば、ユーザの心拍数(又は脈拍数)、ユーザの脳波及びユーザの発汗量を含む。バイタルセンサは持ち込み装置に属することが多い。
【0025】
尚、上述の各装置の組み込み装置、追加設置装置及び追加設置装置への分類は例示であり、様々に変更され得る。例えば、ナビゲーション装置は組み込み装置に属する場合があるし、カメラ装置は追加設置装置に属する場合がある。また、幾つかのノード10は車両CRの車外に配置される場合もある。例えば、車両CRと異なる車両に設置される装置、及び、信号機等のインフラ機器も、通信制御装置100との通信が可能である限り、何れかのノード10となり得る。
【0026】
サーバ装置200は、サーバ側制御部210、サーバ側メモリ220及びサーバ側通信部230を備える。サーバ側メモリ220は、サーバ装置200とは別に設けられた記録装置であって且つサーバ装置200によりアクセス可能な記録装置を含んでいても良い。サーバ側制御部210は、サーバ装置200における各部位の動作の制御を行うコントローラである。サーバ側制御部210は、CPU及びGPU等を含む演算処理部をハードウェア資源として備える。サーバ側メモリ220は、ROM又はフラッシュメモリ等の不揮発性メモリ、及び、RAM等の揮発性メモリを含む。サーバ側制御部210はサーバ側メモリ220内の任意のプログラムを実行できて良い。サーバ側メモリ220の全部又は一部はサーバ側制御部210に内蔵されたメモリであっても良い。サーバ装置200は通信網NETに接続された1以上のコンピュータ装置にて構成されて良い。クラウドコンピューティングを利用してサーバ装置200が構成されても良い。
【0027】
サーバ側メモリ220は複数のアプリが格納されたアプリDB221(プログラムデータベース)を有する。アプリDB221に格納された各アプリは、車両側制御部110にて実行されることを前提に設計されたプログラムである。
【0028】
サーバ側通信部230は相手側機器との通信を実現する機能ブロックである。サーバ装置200はサーバ側通信部230を用いて相手側機器との通信を行うが、以下の説明では、サーバ側通信部230の記述を省略することがある。サーバ装置200にとっての相手側機器は通信制御装置100を含む。サーバ装置200は通信網NETを介して通信制御装置100と双方向通信を行う。
【0029】
尚、サーバ装置200は複数の相手側機器と通信を行うことができ、その複数の相手側機器の1つが本実施形態で注目する通信制御装置100である。サーバ装置200及び通信制御装置100間で通信を行う際、通信信号に通信制御装置100の識別情報を含めることなどにより、サーバ装置200は、通信制御装置100を他の装置と区別しつつ、通信制御装置100との通信を実現する。
【0030】
[データの送受信について]
通信制御装置100は、例えばPublish/Subscribe方式によって、任意のデータを、当該データを必要とするノード10に配信できる。この際、通信制御装置100は、例えばMQTT(Message Queuing Telemetry Transport)を用いて、任意のデータを、当該データを必要とするノード10に配信する。尚、本明細書において用語“配信”と用語“送信”は互いに同義であり、それらを読み替え可能である。
【0031】
図2にデータテーブル121の構造を示す。データテーブル121において複数の項目が設定され、項目ごとに当該項目の内容を示すデータ(以下、内容データと称され得る)がデータテーブル121に格納される。項目はTOPICと称される。ここでは、データテーブル121において、TOPIC611~617を含む複数のTOPICが設定されているものとする。
【0032】
TOPIC611は室温である。室温は車室内の温度を指す。TOPIC611に対する内容データ621は、第1のノード10である温度センサにて検出された温度を表す。
TOPIC612は心拍数である。TOPIC612における心拍数は運転手の心拍数を表す。TOPIC612に対する内容データ622は、第2のノード10であるバイタルセンサにて検出された運転手の心拍数を表す。心拍数は脈拍数であっても良い。心拍数のTOPICと脈拍数のTOPICが別々にデータテーブル121に設定されても良い。
TOPIC613は最適温度である。TOPIC613に対する内容データ623は、室温の最適値を示す。
TOPIC614は最適風量である。TOPIC614に対する内容データ624は、風量の最適値を示す。後述のエアコンディショナ35(
図5参照)の吹き出し口から車室内に向けて風が吹き出す風の強さが風量である。
TOPIC615は車速である。車速とは車両CRの速度を表す。TOPIC615に対する内容データ625は、第3のノード10である車速センサにて検出された車両CRの速度を表す。
TOPIC616は外気温である。外気温とは、車両CRの現在地における車両CRの外気の気温を指す。TOPIC616に対する内容データ626は、第4のノード10である外気温センサにて検出された外気温を表す。第4のノード10は、外気温の情報を通信網NETを介して取得可能なスマートホン等でも良い。
TOPIC617は車室内のCO
2濃度である。TOPIC617に対する内容データ627は、第5のノード10であるCO
2センサにて検出されたCO
2濃度(車室内のCO
2濃度)を表す。
【0033】
通信制御装置100はMQTTにおけるBrokerとして機能して良い。
図3に、データテーブル121内のデータの取得方法及び配信方法に関わるフローチャートを示す。ノード10の内、データを通信制御装置100に対して出力するノード10を特に出力元ノードと称する。ノード10の内、通信制御装置100からデータの配信を受けるノード10を特に要求元ノードと称する。
【0034】
ステップS1において、車両側制御部110は出力元ノード10よりデータを付加情報と共に取得する。付加情報は、取得されるデータが、何れのTOPICについてのデータであるかを指し示す。ステップS1の後、ステップS2に進む。ステップS2において、車両側制御部110は、ステップS1にて取得されたデータを所定の標準データ形式のデータに変換する。この変換により、ステップS1にて取得されたデータが、出力元ノード10以外のノード10によっても使用できるデータに変換される。続くステップS3において、車両側制御部110は、ステップS2での変換後のデータを、対応するTOPICに対応付けてデータテーブル121に格納する。
【0035】
要求元ノード10は自身が起動すると、配信要求信号を通信制御装置100に送信する。配信要求信号において、要求元ノード10が必要とするTOPICが指定される。ステップS3に続くステップS4において、車両側制御部110は、配信要求信号に基づいて、要求元ノード10が必要とするTOPICのデータをデータテーブル121から抽出し、抽出したデータを要求元ノード10に配信する。
【0036】
尚、幾つかのTOPICのデータは、何れかのコンテナ122Cに格納されたアプリが車両側制御部110にて実行されることで生成され得る。また、幾つかのTOPICのデータは、取得又は生成段階において標準データ形式を有していても良く、この場合、上述の変換は不要である。
【0037】
[アプリの基本機能について]
コンテナ部122又はアプリDB221に格納される各アプリには、必要TOPIC、出力TOPIC及び出力ノードが設定される。今、注目された任意の1つのアプリを注目アプリと称する。或る注目アプリに対する必要TOPICは、注目アプリが必要とするTOPICである。或る注目アプリに対する出力TOPICは、注目アプリが生成するデータのTOPICである。即ち、注目アプリは必要TOPICのデータに基づき出力TOPICのデータを生成する。注目アプリを実行する車両側制御部110は、必要TOPICのデータをデータテーブル121から取得でき、生成した出力TOPICのデータをデータテーブル121に格納できる。注目アプリに対する出力ノードは、注目アプリが生成したデータ(出力TOPICのデータ)を、配信すべきノードを示す。注目アプリを実行する車両側制御部110は、注目アプリに従って生成した出力TOPICのデータを出力ノードに対して配信できる。
【0038】
例として、
図4に示すアプリ640の機能を説明する。アプリ640が何れかのコンテナ122Cに格納され、車両側制御部110により実行されたとする。アプリ640における必要TOPICは室温及び心拍数であり、アプリ640における出力TOPICは最適温度である。即ち、アプリ640は室温及び心拍数に基づき最適温度を導出するアプリである。アプリ640が車両側制御部110にて実行されるとき、車両側制御部110は、TOPIC611及び612のデータ621及び622をデータテーブル121から取得し、データ621及び622に基づき最適温度を導出する。その後、車両側制御部110は、導出した最適温度をTOPIC613のデータ623としてデータテーブル121に格納する。この際、アプリ640にて導出された最適温度のデータが標準データ形式を有していなければ、当該データを標準データ形式のデータに変換してからデータテーブル121に格納する。更に、車両側制御部110は、最適温度の情報を必要とするノード10(後述のエアコンECU13)に対してデータテーブル121内のデータ623を配信する。最適温度の情報を必要とするノード10(後述のエアコンECU13)は、室温が配信にて受けた最適温度に向かうよう又は最適温度に保たれるよう、実際の室温を制御する。このように、各アプリ(例えばアプリ640)が使用するデータを格納したデータテーブル121を用意しておくことで、車両CRへのアプリの適用が容易となる(例えばアプリの開発が容易となる、或いは、高機能のアプリを作成しやすくなる)。
【0039】
注目アプリに対する必要TOPIC、出力TOPIC及び出力ノードの設定情報は、注目アプリに付加された情報であっても良いし、注目アプリとは別にコンテナ部122又はアプリDB221に保存されていても良い。尚、アプリによっては出力TOPICが設定されないことがあっても良い。この際、アプリによっては対象のノード10に信号又は情報(例えば、対象のノード10の制御信号又は対象のノード10が処理にて使用する情報)を直接出力することがある。
【0040】
サーバ装置200は、ユーザからの要求に応じて又はユーザからの要求に依らず、アプリDB221内の幾つかのアプリを通信制御装置100に送信できる。アプリの利用により、快適な車内空間の提供、適正な運転支援又は適正な自動運転の提供等が可能となる。但し、これらのアプリは、自動車メーカ及び車載機器メーカの何れとも異なるアプリメーカによって作成されることも考えられ、また色々な車種の車両にて使用される。このため、アプリの機能によっては又は車種によっては、アプリの期待される性能が充分に発揮されず、機能又は性能向上の期待の観点又は安心感の提供の観点等から懸念が残る。
【0041】
このような懸念の解消に有益な技術、又は、それに関連する技術を、以下の複数の実施例の中で説明する。本実施形態にて上述した事項は、特に記述無き限り且つ矛盾無き限り、以下の各実施例に適用される。各実施例において、上述の事項と矛盾する事項がある場合には、各実施例での記載が優先されて良い。また矛盾無き限り、以下に示す複数の実施例の内、任意の実施例に記載した事項を、他の任意の実施例に適用することもできる(即ち複数の実施例の内の任意の2以上の実施例を組み合わせることも可能である)。
【0042】
<<第1実施例>>
システムSYSの第1実施例を説明する。車両CRは第1~第N機能部を備える。Nは2以上の任意の整数を表す。車両CRに備えられる各アクチュエータは機能部の例である。
【0043】
図5に第1実施例に係るシステムSYSの全体構成を示す。尚、
図5では、図示の便宜上、車両CRは示されていない。第1実施例では、複数のノード10の内、4つのノード10に相当する駆動ECU11、ボディECU12、エアコンECU13及びシートECU14に注目する(後述の第2及び第3実施例についても同様)。各ECU11~14は車内ネットワーク及びCGW20に接続される。このため、通信制御装置100は車内ネットワーク及びCGW20を介してECU11~14と双方向通信を行う。機能部31~37の夫々はアクチュエータを含み、これら以外にも多数の機能部が車両CRに搭載される。機能部31、32、33、34、35、36、37は、夫々、エンジン、ワイパ、パワーウィンドウ、ファンモータ、エアコンディショナ、シート位置調整用のアクチュエータ、シート角度調整用のアクチュエータである。
【0044】
駆動ECU11は、エンジン31に対して第1駆動信号を供給することでエンジン31を駆動させる。エンジン31が駆動することで車両CRを走行させるための駆動力が発生する。第1駆動信号にてエンジン31の駆動条件が指定され、エンジン31は第1駆動信号にて指定された駆動条件で駆動する。エンジン31は内燃機関又は電動機にて構成される、又は、内燃機関及び電動機の組み合わせにて構成される。駆動ECU11は、基本的には、車両CRに設けられたアクセルペダルに対する運転手の踏み込み量に基づき第1駆動信号を生成して良い。
【0045】
ボディECU12は、ワイパ32に対して第2駆動信号を供給することでワイパ32を駆動させる。詳細には、ワイパ32はワイパ用のモータを含み、ワイパ用のモータが第2駆動信号に基づき駆動することでワイパ32が作動する。ワイパ用のモータが駆動することで、ワイパ32を構成する清掃用部品が車両CRのフロントガラス上の水滴等をふき取る動作を行う。第2駆動信号にてワイパ32の駆動条件が指定され、ワイパ32は第2駆動信号にて指定された駆動条件で駆動する。
【0046】
ボディECU12は、パワーウィンドウ33に対して第3駆動信号を供給することでパワーウィンドウ33を駆動させる。詳細には、パワーウィンドウ33はパワーウィンドウ用のモータを含み、パワーウィンドウ用のモータが第3駆動信号に基づき駆動することでパワーウィンドウ33が作動する。パワーウィンドウ用のモータが駆動することで、車両CRのドアに設けられた窓であって且つパワーウィンドウ33を構成する窓の状態が開状態及び閉状態間で変化する。第3駆動信号にてパワーウィンドウ33の駆動条件が指定され、パワーウィンドウ33は第3駆動信号にて指定された駆動条件で駆動する。ボディECU12は、基本的には、車両CRに設けられた所定の操作部材に対する運転手の操作内容に基づき第2及び第3駆動信号を生成して良い。
【0047】
エアコンECU13は、ファンモータ34に対して第4駆動信号を供給することでファンモータ34を駆動させる。ファンモータ34が駆動することで、車室内に設置されたエアコンディショナ35の吹き出し口から車室内に向けて風が吹き出す。吹き出す風の強さが風量である。第4駆動信号にてファンモータ34の駆動条件(従って風量)が指定され、ファンモータ34は第4駆動信号にて指定された駆動条件で駆動する。エアコンECU13は第4駆動信号を変化させることで風量を変化させることができる。
【0048】
エアコンECU13は、エアコンディショナ35に対して第5駆動信号を供給することでエアコンディショナ35を駆動させる。エアコンディショナ35が駆動することで車室内の温度が調整される。第5駆動信号にてエアコンディショナ35の駆動条件が指定され、エアコンディショナ35は第5駆動信号にて指定された駆動条件で駆動する。エアコンECU13は第5駆動信号を変化させることで車室内の温度の調整度合いを変化させ、以って車室内の温度を変化させることができる。エアコンECU13は、基本的には、車両CRに設けられた所定の操作部材に対する運転手の操作内容に基づき第4及び第5駆動信号を生成して良い。尚、ファンモータ34はエアコンディショナ35の構成要素の一部であると解しても良い。
【0049】
シートECU14は、シート位置調整用のアクチュエータ36に対して第6駆動信号を供給することでアクチュエータ36を駆動させる。アクチュエータ36が駆動することで車両CRに設けられた運手席の位置が変化する。第6駆動信号にてアクチュエータ36の駆動条件(従って運手席の位置)が指定され、アクチュエータ36は第6駆動信号にて指定された駆動条件で駆動する。
【0050】
シートECU14は、シート角度調整用のアクチュエータ37に対して第7駆動信号を供給することでアクチュエータ37を駆動させる。アクチュエータ37が駆動することで車両CRに設けられた運手席の角度(リクライニング角度)が変化する。第7駆動信号にてアクチュエータ37の駆動条件(従って運手席の角度)が指定され、アクチュエータ37は第7駆動信号にて指定された駆動条件で駆動する。シートECU14は、基本的には、車両CRに設けられた所定の操作部材に対する運転手の操作内容に基づき第6及び第7駆動信号を生成して良い。
【0051】
図6に機能安全テーブルTBL
Qの構造を示す。機能安全テーブルTBL
Qは車両側メモリ120又はCGW20を構成するECU内のメモリ(不図示)に予め格納されている。車両側制御部110は、任意のタイミングにおいて、車両側メモリ120又はCGW20を構成するECU内のメモリから機能安全テーブルTBL
Q内のデータを読み出して参照することができる。
【0052】
機能安全テーブルTBLQには、車両CRに設けられた機能部ごとにデータセットDSQが格納される。任意の注目された1つの機能部を注目機能部と称する。注目機能部のデータセットDSQは、注目機能部に対して固有に割り当てられた識別情報INDEXQを含む。ここでは、識別情報INDEXQは整数値にて表現されるものとし、機能部31、32、33、34、35、36、37に割り当てられた識別情報INDEXQは、夫々、“1”、“2”、“3”、“4”、“5”、“6”、“7”であるとする。
【0053】
注目機能部のデータセットDSQは、注目機能部が何れの機能部であるかを示す機能部情報と、注目機能部を駆動するECUが何れのECUであるかを示すECU情報と、を更に含む。
【0054】
故に、“INDEXQ=1”に対応する機能部情報及びECU情報は夫々エンジン31及び駆動ECU11を示す。“INDEXQ=2”に対応する機能部情報及びECU情報は夫々ワイパ32及びボディECU12を示す。“INDEXQ=3”に対応する機能部情報及びECU情報は夫々パワーウィンドウ33及びボディECU12を示す。“INDEXQ=4”に対応する機能部情報及びECU情報は夫々ファンモータ34及びエアコンECU13を示す。“INDEXQ=5”に対応する機能部情報及びECU情報は夫々エアコンディショナ35及びエアコンECU13を示す。INDEXQ=6”に対応する機能部情報及びECU情報は夫々アクチュエータ36及びシートECU14を示す。INDEXQ=7”に対応する機能部情報及びECU情報は夫々アクチュエータ37及びシートECU14を示す。
【0055】
注目機能部のデータセットDSQは、注目機能部の機能安全レベルを更に含む。各機能部の機能安全レベルは所定規格により定められる。ここでは、各機能部の機能安全レベルは、ISO26262で定義されたASIL(Automotive Safety Integrity Level)であるとする。
【0056】
注目機能部を制御するソフトウェア又はハードウェアの機能不全により引き起こされるハザード(車両CRのハザード)の程度によって、注目機能部の機能安全レベルは、A、B、C及びDの4段階のレベルに区分される。機能安全レベルは、A、B、C及びDの区別によって、レベルの高低が定義される。A、B、C及びDの機能安全レベルの内、Aの機能安全レベルが最も低く、Bの機能安全レベルはAの機能安全レベルよりも高く、Cの機能安全レベルはBの機能安全レベルよりも高く、Dの機能安全レベルはCの機能安全レベルよりも高い。
【0057】
機能部31、32、33、34、35、36、37に対して設定された機能安全レベルは、夫々、C、B、B、A、A、B、Bである。ここでは、1つのECUに対応する複数の機能部に対し共通の機能安全レベルが設定されている。即ち例えば、ボディECU12に対応する2つの機能部(ワイパ32及びパワーウィンドウ33)に対し共通の機能安全レベル“B”が設定されている。しかしながら、1つのECUに対応する複数の機能部に対し互いに異なる機能安全レベルが設定され得る。
【0058】
一方、システムSYSで取り扱われる各アプリにはアプリ情報テーブルが付加される。
図7(a)に、任意の1つのアプリであるアプリ700に対してアプリ情報テーブルTBL
Pが付加される様子を示す。上述のアプリ640(
図4参照)はアプリ700の一例である。アプリ700がアプリDB221に保存される際、
図7(b)に示す如く、アプリ700とアプリ情報テーブルTBL
Pとが互いに対応付けられた状態でアプリDB221に格納される。アプリ700が1つのコンテナ122Cに保存される際、
図7(c)に示す如く、アプリ700とアプリ情報テーブルTBL
Pとが互いに対応付けられた状態で1つのコンテナ122Cに格納される。
【0059】
図8にアプリ情報テーブルTBL
Pの構造を示す。アプリ700において、車両CRに設けられた第1~第N機能部の内、何れか1以上の機能部が制御対象に設定される。アプリ700が車両側制御部110により実行されたとき、車両側制御部110はアプリ700に従って制御対象を制御する(但し、制御がマスクされることもある;詳細は後述)。アプリ700においてM個の機能部が第1~第M制御対象として設定されるものとする。Mは1以上の任意の整数であるが、“M≧2”であることを想定してアプリ情報テーブルTBL
Pの構造を説明する。
【0060】
アプリ情報テーブルTBLPには、アプリ700の制御対象ごとにデータセットDSPが格納される。第i制御対象のデータセットDSPは、第i制御対象に対して固有に割り当てられた識別情報INDEXPを含む。識別情報INDEXPは整数値にて表現されるものとし、第i制御対象に割り当てられた識別情報INDEXPは“i”であるとする。iは任意の整数を表す。
【0061】
第i制御対象のデータセットDS
Pは、第i制御対象を特定する情報である制御対象情報と、アプリ700が第i制御対象を制御することで実現されるサービスの内容を示すサービス情報と、を更に含む。尚、
図8においてサービス情報の詳細は図示されていない。
【0062】
第i制御対象を特定する情報は、第i制御対象が何れの機能部であるかを示す情報である。故に例えば、第1制御対象がワイパ32であれば、“INDEXP=1”のデータセットDSP中の制御対象情報はワイパ32を指し示す。同様に例えば、第2制御対象がパワーウィンドウ33であれば、“INDEXP=2”のデータセットDSP中の制御対象情報はパワーウィンドウ33を指し示す。
【0063】
第i制御対象のデータセットDS
Pは、アプリ700にて第i制御対象が制御されるときの制御の信頼度を示す信頼レベルを更に含む。尚、
図8において信頼レベルの詳細は図示されていない。信頼レベルはA、B、C及びDの4段階のレベルにて規定される。信頼レベルは、A、B、C及びDの区別によって、レベルの高低が定義される。A、B、C及びDの信頼レベルの内、Aの信頼レベルが最も低く、Bの信頼レベルはAの信頼レベルよりも高く、Cの信頼レベルはBの信頼レベルよりも高く、Dの信頼レベルはCの信頼レベルよりも高い。
【0064】
図9(a)に示すアプリ710はアプリ700の例である。アプリ710に付加されるアプリ情報テーブルTBL
Pはアプリ情報テーブルTBL
710である。
図9(b)にアプリ情報テーブルTBL
710の構造を示す。アプリ710において計3個の機能部が第1~第3制御対象として設定される。即ち、アプリ710において“M=3”である。
【0065】
アプリ情報テーブルTBL710において、“1”、“2”、“3”の識別情報INDEXPに対応付けられた制御対象は、夫々、ファンモータ34、エアコンディショナ35、パワーウィンドウ33である。アプリ情報テーブルTBL710において、“1”の識別情報INDEXPに対応付けられたサービス情報及び“2”の識別情報INDEXPに対応付けられたサービス情報は共に室内快適調整を示す。アプリ情報テーブルTBL710において、“3”の識別情報INDEXPに対応付けられたサービス情報は自動窓開閉である。アプリ情報テーブルTBL710において、“1”、“2”及び“3”の識別情報INDEXPに対応付けられた信頼レベルは全て“B”である。
【0066】
アプリ710が何れかのコンテナ122Cに格納され且つ車両側制御部110により実行されたとき、車両側制御部110はアプリ710に従って室内快適調整のサービス及び自動窓開閉のサービスを実現できる。
【0067】
室内快適調整のサービスについて説明する。室内快適調整のサービスにおける制御対象は“INDEXP=1”に対応するファンモータ34及び“INDEXP=2”に対応するエアコンコンディショナ35である。室内快適調整のサービスについて、アプリ710の必要TOPICは室温及び心拍数であり、アプリ710の出力TOPICは最適風量及び最適温度である。
【0068】
アプリ710の実行により室内快適調整のサービスが実現される際、車両側制御部110はアプリ710に従って、室温及び心拍数に基づき最適風量及び最適温度を導出する。具体的には、車両側制御部110は、データ621及び622をデータテーブル121から取得し(
図2参照)、データ621及び622に基づき最適風量及び最適温度を導出する。その後、車両側制御部110は、導出した最適風量及び最適温度を夫々データ624及び623としてデータテーブル121に格納する。この際、必要に応じて上述のデータ形式の変換が行われる。更に、車両側制御部110は、最適風量及び最適温度の情報を必要とするエアコンECU13に対してデータテーブル121内のデータ624及び623を配信する。
【0069】
エアコンECU13は、ファンモータ34の駆動による風量が、受信したデータ624にて示される最適風量となるよう、受信したデータ624に基づく第4駆動信号をファンモータ34に供給する。エアコンECU13は、実際の室温が、受信したデータ623にて示される最適温度と一致するよう又は最適温度に向かうよう、受信したデータ623に基づく第5駆動信号をエアコンコンディショナ35に供給する。このように室内快適調整のサービスにおいて、車両側制御部110はアプリ710に従ってエアコンECU13に対し必要な情報(データ624及び623)を配信し、これによってファンモータ34及びエアコンコンディショナ35を制御する。
【0070】
自動窓開閉のサービスについて説明する。自動窓開閉のサービスにおける制御対象は“INDEXP=3”に対応するパワーウィンドウ33である。自動窓開閉のサービスについて、アプリ710の必要TOPICは室温、外気温及びCO2濃度である。
【0071】
アプリ710の実行により自動窓開閉のサービスが実現される際、車両側制御部110はアプリ710に従って、室温、外気温及びCO
2濃度に基づきパワーウィンドウ33を構成する窓の適正状態を導出する。具体的には、車両側制御部110は、データ621、626及び627をデータテーブル121から取得し(
図2参照)、データ621、626及び627に基づき上記窓の適正状態を導出する。その後、車両側制御部110は、導出した適正状態をアプリ710の出力TOPICとしてデータテーブル121に格納しても構わない。この際、必要に応じて上述のデータ形式の変換が行われる。更に、車両側制御部110は、窓の適正状態の情報を必要とするボディECU12に対し、導出した適正状態を示すデータを配信する。
【0072】
ボディECU12は、パワーウィンドウ33を構成する窓の状態が上記適正状態となるように、第3駆動信号をパワーウィンドウ33に供給する。ここにおける第3駆動信号は、車両側制御部110からCGW20を通じてボディECU12が受信したデータであって且つ上記適正状態を示すデータに基づき、設定される。このように自動窓開閉のサービスにおいて、車両側制御部110はアプリ710に従ってボディECU12に対し必要な情報(上記適正状態を示すデータ)を配信し、これによってパワーウィンドウ33を制御する。
【0073】
任意のアプリ700(
図7(a)及び
図8参照)に関して、車両側制御部110は、アプリ情報テーブルTBL
P及び機能安全テーブルTBL
Qに基づき、以下に示す車両側フィルタ処理を実行する。車両側フィルタ処理において、車両側制御部110は、アプリ700にて設定される制御対象について、テーブルTBL
P内の信頼レベルとテーブルTBL
Q内の機能安全レベルを比較する。そして、車両側フィルタ処理において、車両側制御部110は、比較された信頼レベル及び機能安全レベルが所定の許可条件を充足するとき、アプリ700の実行による制御対象の制御を許可し、そうでないきアプリ700の実行による制御対象の制御を禁止する。上記許可条件は予め定められる(詳細は後述)。アプリ700の実行による制御対象の制御が許可される状態において、アプリ700が車両側制御部110にて実行されると、実際に、アプリ700に従い、車両側制御部110により制御対象が制御される。詳細には制御対象に対して駆動信号を与えるECUと車両側制御部110とが協働して、制御対象が制御されることになる。アプリ700の実行による制御対象の制御が禁止される状態において、車両側制御部110はアプリ700を実行しない。或いは、アプリ700の実行による制御対象の制御が禁止される状態において、車両側制御部110はアプリ700を実行することがあっても良いが、アプリ700による制御対象の制御が行われないよう、アプリ700の機能をマスクする。
【0074】
比較された信頼レベル及び機能安全レベルについて、信頼レベルが機能安全レベル以上であるとき許可条件が充足し、信頼レベルが機能安全レベル未満であるとき許可条件が充足しない。このような車両側フィルタ処理は、制御対象ごとに行われて良い。車両側フィルタ処理により、信頼性の足りないアプリにて制御対象が制御されることが抑制され、以って、安全性が担保される。
【0075】
信頼レベルにおける“A”、“B”、“C”、“D”のレベルは、夫々、第1、第2、第3、第4レベルに相当する。機能安全レベルにおける“A”、“B”、“C”、“D”のレベルも、夫々、第1、第2、第3、第4レベルに相当する。任意の整数iに関して、第(i+1)レベルは第iレベルよりも高い。任意の整数iに関して、信頼レベルにおける第iレベルと機能安全レベルにおける第iレベルは同一のレベルとみなされる。このため、注目した信頼レベルが“A”である場合には、注目した機能安全レベルが“A”であるときのみ、注目した信頼レベルは注目した機能安全レベル以上である。注目した信頼レベルが“B”である場合には、注目した機能安全レベルが“A”又は“B”であるときのみ、注目した信頼レベルは注目した機能安全レベル以上である。注目した信頼レベルが“C”である場合には、注目した機能安全レベルが“A”、“B”又は“C”であるときのみ、注目した信頼レベルは注目した機能安全レベル以上である。注目した信頼レベルが“D”である場合には、注目した機能安全レベルが“A”、“B”、“C”及び“D”の何れであっても、注目した信頼レベルは注目した機能安全レベル以上である。
【0076】
各アプリに関する各信頼レベルは、機能安全レベルと同等又は近似の品質を持つよう定義され、各アプリがシステムSYSに導入される前に予め規定される。各信頼レベルは第三者機関の認証の下で規定される。或いは、各アプリを使用可能な車両CRの製造業者又は販売業者の許諾の下、各信頼レベルが規定される。例えば或る制御対象に関して、アプリ700の信頼レベルとして“B”を得るためにはアプリ700の信頼レベルとして“A”を得るよりも、アプリ700は、第三者機関で、より厳しい認証試験を合格する必要がある。
【0077】
図9(a)及び
図9(b)のアプリ710に関する許可条件の成否を説明する。アプリ710における制御対象はファンモータ34及びエアコンディショナ35を含み、アプリ710においてファンモータ34及びエアコンディショナ35に対する信頼レベルは “B”である。一方、機能安全テーブルTBL
Qにおいて、ファンモータ34及びエアコンディショナ35に対して定められた機能安全レベルは“A”である。そうすると、アプリ710に関し、ファンモータ34及びエアコンディショナ35に対する信頼レベル(“B”のレベル)は、ファンモータ34及びエアコンディショナ35に対する機能安全レベル(“A”のレベル)より高い。このため、アプリ710において、ファンモータ34及びエアコンディショナ35に対する許可条件は充足する。また、アプリ710における制御対象はパワーウィンドウ33を含み、アプリ710においてパワーウィンドウ33に対する信頼レベルは “B”である。一方、機能安全テーブルTBL
Qにおいて、パワーウィンドウ33に対して定められた機能安全レベルは“B”である。そうすると、アプリ710に関し、パワーウィンドウ33に対する信頼レベル(“B”のレベル)は、パワーウィンドウ33に対する機能安全レベル(“B”のレベル)と一致する。このため、アプリ710において、パワーウィンドウ33に対する許可条件は充足する。
【0078】
図10(a)のアプリ720に関する許可条件の成否を説明する。
図10(b)には、アプリ720に付加されたアプリ情報テーブルTBL
Pであるアプリ情報テーブルTBL
720が示される。アプリ720はアプリ710と全く同じアプリである。また、アプリ情報テーブルTBL
720はアプリ情報テーブルTBL
710と類似するが、アプリ情報テーブルTBL
720では各制御対象に対応付けられた信頼レベルが全て“A”である。信頼レベルの相違を除き、アプリ情報テーブルTBL
720はアプリ情報テーブルTBL
710と同様である。アプリ720に関し、ファンモータ34及びエアコンディショナ35に対する信頼レベル(“A”のレベル)は、ファンモータ34及びエアコンディショナ35に対する機能安全レベル(“A”のレベル)と一致する。このため、アプリ720において、ファンモータ34及びエアコンディショナ35に対する許可条件は充足する。アプリ720に関し、パワーウィンドウ33に対する信頼レベル(“A”のレベル)は、パワーウィンドウ33に対する機能安全レベル(“B”のレベル)より低い。このため、アプリ720において、パワーウィンドウ33に対する許可条件は充足しない。
【0079】
図11に、アプリのインストール動作(換言すれば、コンテナ部122へのアプリの保存動作)に関わるシステムSYSのフローチャートを示す。通信制御装置100が起動すると、ステップS11において、車両側制御部110は、機能安全テーブルTBL
Qが格納されたメモリから機能安全テーブルTBL
Qを読み出す。その後、ステップS12に進む。機能安全テーブルTBL
Qが格納されたメモリは、車両側メモリ120又はCGW20を構成するECU内のメモリである。
【0080】
車両側制御部110は、コンテナ部122に対して新たにアプリが保存されたかを継続的に監視する。システムSYSでは、ユーザの指示等に基づき、サーバ装置200のアプリDB221に格納されている何れかのアプリがサーバ装置200から通信制御装置100に配信される。サーバ装置200から配信されたアプリが通信制御装置100にて受信されると、受信されたアプリが、何れかのコンテナ122Cに保存される。上述したように、任意のアプリにはアプリ情報テーブルが付加されており、アプリと、それに対応するアプリ情報テーブルとが、配信されてコンテナ122Cに保存される。
【0081】
ステップS12において、車両側制御部110は、新たなアプリがコンテナ部122に保存されたか否かを確認する。新たなアプリがコンテナ部122に保存された場合には(ステップS12のY)、ステップS13に進み、そうでなければステップS12の処理を繰り返す。ここで用語“対象アプリ”を導入する。第1実施例では、ステップS13に進む場合における新たなアプリが対象アプリに該当する。説明の具体化のため、対象アプリは
図7(a)のアプリ700であると考える。対象アプリ700に付加されたアプリ情報テーブルはアプリ情報テーブルTBL
P(
図8参照)である。
【0082】
ステップS13において、車両側制御部110は、コンテナ部122から対象アプリに付加されたアプリ情報テーブルTBLPを読み込む。また、ステップS13において、車両側制御部110は自身が管理する変数iに“1”を代入する。ステップS13の後、ステップS14に進む。ステップS14~S23の各処理は対象アプリに関する処理である。故に、ステップS14~S23の各説明における識別情報INDEXP、制御対象及び信頼レベルは、特に記述なき限り、対象アプリのアプリ情報テーブルTBLP中の識別情報INDEXP、制御対象及び信頼レベルを指す。
【0083】
ステップS14において、車両側制御部110は、第i制御対象に対して許可条件が充足するかを判断する。第i制御対象の信頼レベルが第i制御対象の機能安全レベル以上であるとき、第i制御対象に対して許可条件が充足し、そうでないとき、第i制御対象に対して許可条件が充足しない。ここにおける第i制御対象は、アプリ情報テーブルTBL
Pにおける“i”の識別情報INDEX
Pに対応する制御対象である(
図8参照)。例えば、第i制御対象がパワーウィンドウ33であれば、パワーウィンドウ33に対応する信頼レベルとパワーウィンドウ33に対応する機能安全レベルとが比較され、信頼レベルが機能安全レベル以上であるときのみパワーウィンドウ33に対し許可条件が充足する。
【0084】
ステップS14において、第i制御対象に対して許可条件が充足するとき(ステップS14のY)ステップS15に進み、第i制御対象に対して許可条件が充足しないとき(ステップS14のN)ステップS16に進む。
【0085】
ステップS15において車両側制御部110はフラグFLG[i]に“1”を代入する。ステップS16において車両側制御部110はフラグFLG[i]に“0”を代入する。フラグFLG[i]は車両側制御部110にて管理されるフラグである。ステップS15又はS16の後、ステップS17に進む。
【0086】
ステップS17において、車両側制御部110は“i=M”の成否を判断する。Mは、対象アプリ(ここではアプリ700)における制御対象の総数を表す(
図8参照)。“i=M”の成立時には(ステップS17のY)ステップS19に進む。“i=M”の非成立時には(ステップS17のN)、ステップS18にて変数iに“1”を加算してからステップS14に戻る。このため、ステップS19に進む段階では、第1~第M制御対象に対して許可条件が充足しているかが個別に判断済みであり、その判断結果がフラグFLG[1]~FLG[M]に格納されている。
【0087】
ステップS19において、車両側制御部110はフラグFLG[1]~FLG[M]の値が全て“1”であるかを確認する。フラグFLG[1]~FLG[M]の値が全て“1”である場合(ステップS19のY)、ステップS21に進み、そうでない場合(ステップS19のN)、ステップS20に進む。
【0088】
ステップS20において、車両側制御部110はフラグFLG[1]~FLG[M]の値に“1”と“0”が混在しているかを確認する。フラグFLG[1]~FLG[M]の値に“1”と“0”が混在している場合(ステップS20のY)、ステップS22に進み、そうでない場合(ステップS20のN)、ステップS23に進む。
【0089】
ステップS21において車両側制御部110は全許可処理を実行する。全許可処理では全OK通知が行われる。全OK通知では、対象アプリの全サービスが車両CR及び通信制御装置100にて使用可能である旨が、ユーザに対して通知される。全OK通知並びに後述の一部OK通知及びNG通知は所定のマンマシンインターフェースを用いて実現される。マンマシンインターフェースはユーザが視認可能な表示画面及びユーザからの任意の操作を受け付ける操作部を有する。マンマシンインターフェースは、通信制御装置100に設けられていても良いし、何れかのノード10に含まれていても良い。マンマシンインターフェースの表示画面での映像表示又は音声出力にて、全OK通知並びに後述の一部OK通知及びNG通知が行われて良い。
【0090】
また全許可処理において車両側制御部110は対象アプリを全許可アプリに設定する。車両側制御部110は、全許可アプリの実行を許可すると共に全許可アプリの実行による全制御対象の制御を許可する。以後、全許可アプリは車両側制御部110により常時実行される又はユーザの要求に応じて実行される。全許可アプリが車両側制御部110にて実行されると、全許可アプリに従い、車両側制御部110は全許可アプリの各制御対象を制御する。
【0091】
ステップS22において車両側制御部110は一部許可処理を実行する。一部許可処理では一部OK通知が行われる。一部OK通知では、対象アプリの一部のサービスのみが車両CR及び通信制御装置100にて使用可能である旨が、ユーザに対して通知される。この際、フラグFLG[1]~FLG[M]の値に基づき、対象アプリの全サービスの内、何れのサービスが使用可能であって、何れのサービスが使用不能であるかも通知される。
【0092】
また一部許可処理において車両側制御部110は対象アプリを一部許可アプリに設定する。車両側制御部110は、一部許可アプリの実行を許可するが、許可条件を満たす制御対象のみの制御を許可する。以後、一部許可アプリは車両側制御部110により常時実行される又はユーザの要求に応じて実行される。一部許可アプリが車両側制御部110にて実行されると、一部許可アプリに従い、車両側制御部110は一部許可アプリの制御対象の内、許可条件を満たす制御対象のみの制御を実行し、許可条件を満たさない制御対象の制御を非実行とする。
【0093】
ステップS23において車両側制御部110は全禁止処理を実行する。全禁止処理では全NG通知が行われる。全OK通知では、対象アプリの全サービスが車両CR及び通信制御装置100にて使用不可である旨が、ユーザに対して通知される。
【0094】
また全禁止処理において車両側制御部110は対象アプリを全禁止アプリに設定する。車両側制御部110は全禁止アプリの実行を禁止する。そうすると、全禁止アプリは車両側制御部110にて実行されず、全禁止アプリによる制御対象の制御が実際に行われることは無い。或いは、車両側制御部110は全禁止アプリを実行することがあっても良いが、その場合でも、全禁止アプリの制御対象を制御するための信号が対応するECU(例えば制御対象がパワーウィンドウ33であればボディECU12)に送信されないようマスク処理を行う。
【0095】
例えば、対象アプリが上述のアプリ710(
図9(a)及び(b)参照)である場合を考える。対象アプリ710において、第1、第2、第3制御対象は、夫々、ファンモータ34、エアコンディショナ35、パワーウィンドウ33であり、第1、第2、第3制御対象に対応する信頼レベルは全て“B”である。そうすると、第1制御対象(ファンモータ34)の信頼レベル“B”は第1制御対象の機能安全レベル“A”よりも高いため、“FLG[1]=1”となる(1回目のステップS15)。同様に、第2制御対象(エアコンディショナ35)の信頼レベル“B”は第2制御対象の機能安全レベル“A”よりも高いため、“FLG[2]=1”となる(2回目のステップS15)。更に同様に、第3制御対象(パワーウィンドウ33)の信頼レベル“B”は第3制御対象の機能安全レベル“B”と一致するため、“FLG[3]=1”となる(3回目のステップS15)。結果、対象アプリ710については全許可処理が実行され、対象アプリ710は全許可アプリに設定される(ステップS21)。
【0096】
ステップS21を経て対象アプリ710は車両側制御部110にて実行される。そうすると、対象アプリ710に従い車両側制御部110によりファンモータ34、エアコンディショナ35及びパワーウィンドウ33が制御されることで、対象アプリ710による室内快適調整及び自動窓開閉の各サービスが実現される。より詳細には例えば、対象アプリ710に従い車両側制御部110は、ファンモータ34及びエアコンディショナ35を制御するための制御信号をCGW20を介してエアコンECU13に送信する。エアコンECU13は受信した制御信号に基づきファンモータ34及びエアコンディショナ35を駆動する。加えて例えば、対象アプリ710に従い車両側制御部110は、パワーウィンドウ33を制御するための制御信号をCGW20を介してボディECU12に送信する。ボディECU12は受信した制御信号に基づきパワーウィンドウ33を駆動する。
【0097】
また例えば、対象アプリが上述のアプリ720(
図10(a)及び(b)参照)である場合を考える。対象アプリ720において、第1、第2、第3制御対象は、夫々、ファンモータ34、エアコンディショナ35、パワーウィンドウ33であり、第1、第2、第3制御対象に対応する信頼レベルは全て“A”である。そうすると、第1制御対象(ファンモータ34)の信頼レベル“A”は第1制御対象の機能安全レベル“A”と一致するため、“FLG[1]=1”となる(1回目のステップS15)。同様に、第2制御対象(エアコンディショナ35)の信頼レベル“A”は第2制御対象の機能安全レベル“A”と一致するため、“FLG[2]=1”となる(2回目のステップS15)。但し、第3制御対象(パワーウィンドウ33)の信頼レベル“A”は第3制御対象の機能安全レベル“B”よりも低いため、“FLG[3]=0”となる(3回目のステップS15)。結果、対象アプリ720については一部許可処理が実行され、対象アプリ720は一部許可アプリに設定される(ステップS22)。
【0098】
ステップS22を経て対象アプリ720が車両側制御部110にて実行される。そうすると、対象アプリ720に従い車両側制御部110によりファンモータ34及びエアコンディショナ35が制御されることで、対象アプリ720による室内快適調整のサービスが実現される。より詳細には例えば、対象アプリ720に従い車両側制御部110は、ファンモータ34及びエアコンディショナ35を制御するための制御信号をCGW20を介してエアコンECU13に送信する。エアコンECU13は受信した制御信号に基づきファンモータ34及びエアコンディショナ35を駆動する。但し、“FLG[3]=0”であるが故に、車両側制御部110は対象アプリ720によるパワーウィンドウ33の制御を実行しない。車両側制御部110は、対象アプリ720を実行しているときにおいて対象アプリ720に基づく制御信号がボディECU12に送信されることをマスクする(禁止する)。当該マスクはCGW20にて行われても良い。
【0099】
図12(a)に示すアプリ730はアプリ700の他の例である。アプリ730に付加されるアプリ情報テーブルTBL
Pはアプリ情報テーブルTBL
730である。
図12(b)にアプリ情報テーブルTBL
730の構造を示す。アプリ730において計2個の機能部が第1及び第2制御対象として設定される。即ち、アプリ730において“M=2”である。アプリ情報テーブルTBL
730において、“1”、“2”の識別情報INDEX
Pに対応付けられた制御対象(即ち第1、第2制御対象)は、夫々、ワイパ32、パワーウィンドウ33である。アプリ情報テーブルTBL
730において、“1”の識別情報INDEX
Pに対応付けられたサービス情報は自動清掃を示し、“2”の識別情報INDEX
Pに対応付けられたサービス情報は自動窓開閉を示す。アプリ情報テーブルTBL
730において、“1”及び“2”の識別情報INDEX
Pに対応付けられた信頼レベルは全て“A”である。アプリ730による自動清掃は、アプリ730に従ってワイパ32を自動的に作動させるサービスである。
【0100】
対象アプリが上述のアプリ730である場合を考える。対象アプリ730に関し、第1制御対象(ワイパ32)の信頼レベル“A”は第1制御対象の機能安全レベル“B”より低いため、“FLG[1]=0”となる(1回目のステップS15)。同様に、第2制御対象(パワーウィンドウ33)の信頼レベル“A”は第2制御対象の機能安全レベル“B”より低いため、“FLG[2]=0”となる(2回目のステップS15)。結果、対象アプリ730については全禁止処理が実行され、対象アプリ720は全禁止アプリに設定される(ステップS23)。
【0101】
従って対象アプリ730がコンテナ部122に格納されていたとしても、車両側制御部110は対象アプリ730を実行しない。或いは、車両側制御部110は対象アプリ730を実行することがあっても良いが、その場合でも、対象アプリ730によるワイパ32及びパワーウィンドウ33を制御するための信号がボディECU12に送信されないようマスクを行う。当該マスクはCGW20にて行われても良い。何れにせよ、対象アプリ730に従ってワイパ32及びパワーウィンドウ33が制御されることは無い。
【0102】
また、
図11のフローチャートを
図13のフローチャートへと変更するようにしても良い。即ち、ステップS19において、フラグFLG[1]~FLG[M]の値が全て“1”である場合(ステップS19のY)、ステップS21に進み、そうでない場合(ステップS19のN)、常にステップS23に進むようにしても良い。
図13のフローチャートが採用される場合、対象アプリは必ず全許可アプリ及び全禁止アプリの何れかに設定されることになる。
図13のフローチャートが採用される場合、アプリ710は全許可アプリに設定される一方、アプリ720及び730は全禁止アプリに設定される。
【0103】
例えば、対象アプリにおける一部機能でも十分に有用な機能を実現できる場合は、
図11のフローチャートによる制御の採用が好ましい。一方、対象アプリにおける一部機能だけでは十分満足できる効果を発揮できない場合などにあっては、
図13のフローチャートによる制御が好ましい。
【0104】
尚、アプリ710、720及び730は何れも2以上の制御対象の制御を行うためのアプリであるが、上述したように、制御対象が1つのみのアプリもある。
【0105】
このように、車両側制御部110は、対象アプリの制御対象に関して対象アプリに付加された信頼レベルと、当該制御対象に対し車両CRにて定められた機能安全レベルと、を参照する。そして、車両側制御部110は参照した信頼レベル及び機能安全レベルに基づき対象アプリの実行可否を決定する。また、車両側制御部110は参照した信頼レベル及び機能安全レベルに基づき対象アプリの実行による制御対象の制御可否を決定する。
【0106】
これにより、車両制御に適したアプリを実行できる又はアプリによる適正な車両制御が可能となる。信頼性の足りないアプリによる車両制御を抑制でき、安全性が担保される。
【0107】
具体的には、車両側制御部110は、参照した信頼レベル及び機能安全レベルが上述の許可条件を充足するとき、対象アプリの実行を許可し(S21)、許可条件を逸脱するとき(換言すれば許可条件を満たさないとき)、対象アプリの実行を禁止する(S23)。これにより、車両制御に適したアプリを実行できる。信頼性の足りないアプリによる車両制御を抑制でき、安全性が担保される。
【0108】
ステップS23における全禁止処理において、車両側制御部110は対象アプリをコンテナ部122から削除するようにしても良い。これにより、利用不能なアプリがコンテナ部122から削除されるため、コンテナ部122の空き容量を増やすことができる。
【0109】
対象アプリの制御対象が複数ある場合、それらの制御可否が個別に決定されて良い。より具体的には、対象アプリの制御対象として第1及び第2制御対象に注目した場合、対象アプリに付加されたアプリ情報テーブルにおいて第1制御対象に対する第1信頼レベルと第2制御対象に対する第2信頼レベルが定められる。このとき車両側制御部110は、以下のように動作できる。即ち、車両側制御部110は、第1及び第2信頼レベルと、第1及び第2制御対象に対し車両CRにて定められた第1及び第2機能安全レベル(機能安全テーブルTBLQにおける、第1及び第2制御対象に対する機能安全レベル)と、を参照する。そして、車両側制御部110は、参照した各信頼レベル及び各機能安全レベルに基づき、対象アプリの実行による第1制御対象の実行可否と対象アプリの実行による第2制御対象の実行可否とを個別に制御する。これにより、制御対象ごとにアプリによる制御実行の妥当性又は安全性が評価され、安全性が担保されたサービスのみを利用するといったことが可能となる。
【0110】
具体例として、第1信頼レベル及び第1機能安全レベルが許可条件を充足する一方で、第2信頼レベル及び第2機能安全レベルが許可条件を逸脱する特定ケースを考える。特定ケースにおいて、車両側制御部110は、対象アプリの実行による第1制御対象の制御を許可する一方で対象アプリの実行による第2制御対象の制御を禁止する。これにより、安全性が担保されたサービスのみを利用するといったことが可能となる。アプリ720(
図10(a)及び(b)参照)が対象アプリである場合において、第1制御対象をファンモータ34又はエアコンディショナ35として捉え、且つ、第2制御対象をパワーウィンドウ33として捉えたケースが、上記特定ケースに該当する。一部許可処理の実行を通じ、車両側制御部110は、対象アプリ720の実行による第1制御対象(34又は35)の制御を許可する一方で対象アプリの実行による第2制御対象(33)の制御を禁止する。
【0111】
尚、車両側フィルタ処理はCGW20にて行われるようにしても良い。
図11又は
図13に示す各ステップの処理の全部又は一部は、CGW20にて行われるようにしても良い。車両側フィルタ処理は車両側制御部110及びCGW20の協働により行われるようにしても良く、故に
図11又は
図13に示す各ステップの処理を、車両側制御部110及びCGW20の協働にて行われるようにしても良い。
【0112】
通信制御装置100は車載装置の例である。特に車両側フィルタ処理がCGW20にて行われる場合にあっては、通信制御装置100及びCGW20とで車載装置が形成されると考えても良い。
【0113】
サーバ装置200は通信制御装置100に対して任意のアプリ700(対象アプリであり得る)を送信するプログラム提供装置として機能する。サーバ装置200は、通信制御装置100に対してアプリ700を送信する際、アプリ700に対応するアプリ情報テーブルTBL
P(
図7(a)参照)をアプリ700に付加して通信制御装置100に送信する。
【0114】
通信制御装置100及びサーバ装置200を含んで形成されるシステムSYSを、車両用システム、車両用通信システム又は車両用制御システムと称することができる。
【0115】
<<第2実施例>>
システムSYSの第2実施例を説明する。車両側制御部110が行う処理であって、サーバ装置200から受信したアプリをコンテナ部122に保存する処理を、アプリ保存処理と称する。第1実施例ではコンテナ部122に対象アプリを保存してからステップS13以降の処理を行っているが、コンテナ部122に対象アプリを保存する前にステップS13以降の処理を行うようにしても良い。具体的には以下のようにしても良い。
【0116】
図14に、アプリのインストール動作(換言すれば、コンテナ部122へのアプリの保存動作)に関わるシステムSYSのフローチャートであって、第2実施例に係るフローチャートを示す。通信制御装置100が起動すると、ステップS11において、車両側制御部110は、機能安全テーブルTBL
Qが格納されたメモリから機能安全テーブルTBL
Qを読み出す。その後、ステップS12aに進む。ステップS12aにおいて、車両側制御部110は、マンマシンインターフェースに対するユーザの選択操作等に基づき、アプリDB221内の何れかのアプリを対象アプリに設定する。ステップS12aにおいて、車両側制御部110は、対象アプリに付加されたアプリ情報テーブルTBL
Pの送信要求信号をサーバ装置200に送信する。ステップS12aの後、ステップS13に進む。
【0117】
ステップS13において、サーバ装置200は、上記送信要求信号の受信に応答して対象アプリに付加されたアプリ情報テーブルTBLPを通信制御装置100に送信する。ステップS13において、車両側制御部110は受信したアプリ情報テーブルTBLPを車両側メモリ120に保存しつつ読み込む。第2実施例では、後述のステップS24に至るまで対象アプリがサーバ装置200から通信制御装置100に配信されず、コンテナ部122に保存されない。また、ステップS13において、車両側制御部110は自身が管理する変数iに“1”を代入する。ステップS13の後、ステップS14に進む。
【0118】
第2実施例において、ステップS14に進んだ後、ステップS21、S22又はS23に至るまでの動作並びにステップS21~S23での各処理は、第1実施例と同様である。但し、第2実施例では、ステップS21の後にはステップS24に進む、
【0119】
ステップS24において車両側制御部110は、対象アプリを通信制御装置100に送信することを要求する配信要求信号をサーバ装置200に送信し、配信要求信号を受けてサーバ装置200は対象アプリを通信制御装置100に送信する。その後、ステップS24において、車両側制御部110は、受信した対象アプリを何れかのコンテナ122Cに保存するアプリ保存処理を実行する。ここでは、アプリが保存されていない空のコンテナ122Cが存在するものとし、対象アプリを、対応するアプリ情報テーブルTBLPと共に、空のコンテナ122Cに保存する。
【0120】
ステップS23に進んだ場合、対象アプリに対するアプリ保存処理を実行することなく
図14の動作を終える。
【0121】
図14のフローチャートにおいてステップS22の後にはステップS25に進む。ステップS22における一部OK通知が行われた後、ステップS25にて車両側制御部110は、上記マンマシンインターフェースを用いてユーザからの操作の入力を受け付ける。この際、車両側制御部110は、対象アプリのサービスの一部が制限される旨をユーザに通知した上で、操作の入力を受け付ける。ユーザから、対象アプリのインストールを了承する旨の操作(了承操作)が入力された場合(ステップS25のY)、ステップS24に進んで上述のステップS24の処理が実行される。一方、ユーザから了承操作が入力されなかった場合(ステップS25のN)、例えば対象アプリのインストールを拒否する旨の操作(拒否操作)が入力された場合、対象アプリに対するアプリ保存処理を実行することなく
図14の動作を終える。
【0122】
尚、
図14のフローチャートを
図15のフローチャートへと変形するようにしても良い。即ち、ステップS22に進んだ場合、ステップS23に進んだ場合と同様に、常に、対象アプリに対するアプリ保存処理を実行することなく、
図14の動作を終えるようにしても良い。
【0123】
このように、車両側制御部110は、対象アプリの制御対象に関して対象アプリに付加された信頼レベルと、当該制御対象に対し車両CRにて定められた機能安全レベルと、を参照する。そして、車両側制御部110は参照した信頼レベル及び機能安全レベルに基づき、対象アプリに対するアプリ保存処理の実行可否を決定する。
【0124】
これにより、車両制御に適したアプリを保存して当該アプリにて適正な車両制御が可能となる。信頼性の足りないアプリの保存及び当該アプリによる車両制御を抑制でき、安全性が担保される。
【0125】
具体的には、参照した信頼レベル及び機能安全レベルが上述の許可条件を充足するとき、車両側制御部110は対象アプリに対するアプリ保存処理を実行する(S24の実行に対応)。一方、許可条件を逸脱するとき(換言すれば許可条件を満たさないとき)、車両側制御部110は対象アプリに対するアプリ保存処理を禁止する(S24の非実行に対応)。これにより、車両制御に適したアプリを保存して当該アプリにて適正な車両制御が可能となる。信頼性の足りないアプリの保存及び当該アプリによる車両制御を抑制でき、安全性が担保される。
【0126】
<<第3実施例>>
システムSYSの第3実施例を説明する。各アプリが車両CRにて利用可能かどうかの判断をサーバ装置200にて行うようにしても良い。これについて説明する。
【0127】
任意のアプリ700(
図7(a)及び
図8参照)に関して、第3実施例に係るサーバ側制御部210は、アプリ情報テーブルTBL
P及び機能安全テーブルTBL
Qに基づき、以下に示すサーバ側フィルタ処理を実行する。アプリ700はアプリDB221に保存されるアプリであって、サーバ側フィルタ処理の実行前ではコンテナ部122に保存されていない。サーバ側フィルタ処理において、サーバ側制御部210は、アプリ700にて設定される制御対象について、テーブルTBL
P内の信頼レベルとテーブルTBL
Q内の機能安全レベルを比較する。そして、サーバ側フィルタ処理において、サーバ側制御部210は、比較された信頼レベル及び機能安全レベルが上述の許可条件を充足するとき、アプリ700を通信制御装置100に対して送信し、そうでないとき、アプリ700を通信制御装置100に対して送信しない。通信制御装置100においてアプリ700が受信されると、車両側制御部110は受信したアプリ700をコンテナ部122に保存する。
【0128】
図16にサーバ側フィルタ処理に関わるフローチャートを示す。まずステップS111において、サーバ側制御部210は通信網NETを介した通信を通じて通信制御装置100から車両CRの機能安全テーブルTBL
Qを受信及び取得する。尚、機能安全テーブルTBL
Qはサーバ側メモリ220に予め格納されていても良い。
【0129】
続くステップS112において、サーバ側制御部210はアプリDB221内の何れかのアプリを対象アプリに設定する。上述のマンマシンインターフェースに対してユーザが入力したアプリ選択操作に基づく配信要求信号が通信制御装置100からサーバ装置200に送信されて良く、サーバ側制御部210は当該配信要求信号に基づき対象アプリを設定して良い。或いは、所定のアルゴリズムに従って対象アプリが設定されても良い。ステップS112の後、ステップS113に進む。
【0130】
ステップS113において、サーバ側制御部210は、アプリDB221から対象アプリに付加されたアプリ情報テーブルTBLPを読み込む。また、ステップS113において、サーバ側制御部210は自身が管理する変数iに“1”を代入する。ステップS113の後、ステップS114に進む。
【0131】
ステップS114~S123の処理の実行主体が車両側制御部110ではなくサーバ側制御部210である点を除き、ステップS114~S123の処理は夫々
図11に示されるステップS14~S23の処理と同様であり、第1実施例の記載が第3実施例にも適用される。この適用の際、第1実施例の記載中の車両側制御部110をサーバ側制御部210に読み替え、且つ、第1実施例の記載中の符号S14~S23を夫々符号S114~S123に読み替えれば良い。
【0132】
対象アプリが全許可アプリに設定されるステップS121の後、ステップS124に進む。ステップS124において、サーバ側制御部210は対象アプリを全許可アプリとして通信制御装置100に対して送信する。この際、全許可アプリに対応するアプリ情報テーブルも通信制御装置100に対して送信される。通信制御装置100において全許可アプリ及び対応するアプリ情報テーブルが受信されると、車両側制御部110は受信した全許可アプリをアプリ情報テーブルと共にコンテナ部122に保存する。車両側制御部110での全許可アプリの取り扱いは上述した通りである。
【0133】
対象アプリが一部許可アプリに設定されるステップS122の後、ステップS125に進む。ステップS122の段階で対象アプリが一部許可アプリに設定された旨を示す信号がサーバ装置200から通信制御装置100に送信される。当該信号に基づきステップS125にて車両側制御部110は、上述のマンマシンインターフェースを用いてユーザからの操作の入力を受け付ける。この際、車両側制御部110は、対象アプリのサービスの一部が制限される旨をユーザに通知した上で、操作の入力を受け付ける。ユーザから、対象アプリの送信及びインストールを了承する旨の操作(了承操作)が入力された場合(ステップS125のY)、ステップS126に進む。一方、ユーザから了承操作が入力されなかった場合(ステップS125のN)、例えば対象アプリの送信及びインストールを拒否する旨の操作(拒否操作)が入力された場合、ステップS126に進むことなく
図16の動作を終える。
【0134】
ステップS126において、サーバ側制御部210は対象アプリを一部許可アプリとして通信制御装置100に対して送信する。この際、一部許可アプリに対応するアプリ情報テーブルも通信制御装置100に対して送信される。通信制御装置100において一部許可アプリ及び対応するアプリ情報テーブルが受信されると、車両側制御部110は受信した一部許可アプリをアプリ情報テーブルと共にコンテナ部122に保存する。車両側制御部110での一部許可アプリの取り扱いは上述した通りである。サーバ側制御部210は、ステップS114からステップS121、S122又はS123に至るまでの段階において、対象アプリに対して導出したフラグFLG[1]~FLG[M]の値を対象アプリに対応するアプリ情報テーブルに追記する。追記された値に基づき、車両側制御部110は、制御対象ごとに制御対象の制御が許可又は禁止されているのかを認識できる(許可条件を満たす制御対象と許可条件を満たさない制御対象とを区別できる)。
【0135】
対象アプリが全禁止アプリに設定されるステップS123の後は、ステップS124又はS126に進むことなく
図16の動作を終える。ステップS124又はS126に進まなかった場合、対象アプリはサーバ装置200から通信制御装置100に送信されず、故にコンテナ部122に保存されない。
【0136】
尚、
図16のフローチャートを
図17のフローチャートへと変形するようにしても良い。即ち、ステップS122に進んだ場合、ステップS123に進んだ場合と同様に、常に、対象アプリをサーバ装置200から通信制御装置100に送信しないようにしても良い。
【0137】
このように、サーバ側制御部210は、対象アプリの制御対象に関して対象アプリに付加された信頼レベルと、当該制御対象に対し車両CRにて定められた機能安全レベルと、を参照する。そして、サーバ側制御部210は参照した信頼レベル及び機能安全レベルに基づき、通信制御装置100に対する対象アプリの送信可否を決定する。
【0138】
これにより、車両制御に適したアプリを通信制御装置100に対して送信でき、アプリによる適正な車両制御が可能となる。信頼性の足りないアプリによる車両制御を抑制でき、安全性が担保される。
【0139】
具体的には例えば、サーバ側制御部210は、参照した信頼レベル及び機能安全レベルが上述の許可条件を充足するとき、対象アプリを通信制御装置100に送信し、許可条件を逸脱するとき(換言すれば許可条件を満たさないとき)、対象アプリの通信制御装置100への送信を禁止する。これにより、車両制御に適したアプリを通信制御装置100に対して送信でき、アプリによる適正な車両制御が可能となる。信頼性の足りないアプリによる車両制御を抑制でき、安全性が担保される。
【0140】
尚、サーバ側制御部210は、通信制御装置100にて実行可能なアプリのリストを作成するリスト作成処理を実行しても良い。リスト作成処理において、サーバ側制御部210は、アプリDB221に格納された複数のアプリの夫々を対象アプリとして捉えて、アプリごとに、ステップS113~S123から成る一連の処理を行う。これにより、アプリDB221に格納された複数のアプリが、アプリごとに全許可アプリ、一部許可アプリ及び全禁止アプリの何れかに設定される。
【0141】
リスト作成処理において、サーバ側制御部210は、全許可アプリに設定された各アプリをリストに含め、全禁止アプリに設定された各アプリをリストから除外する。アプリをリストに含めるとは、アプリの要約情報(名称及び機能情報など)をリストに含めることを指し、アプリを構成する全てのプログラムをリストに含めるという意味ではない。一部許可アプリに設定された各アプリをリストに含めるか否かは任意である。一部許可アプリに設定された各アプリをリストに含める場合、全許可アプリと一部許可アプリとがユーザにて区別できるよう、適宜、リストに注釈等を含める。
【0142】
サーバ側制御部210は作成したリストを通信制御装置100に送信できる。通信制御装置100にてリストが受信されると、車両側制御部110はマンマシンインターフェースの表示画面に、受信したリストを表示する。ユーザは、リストを参照して、利用したいアプリの選択又は検討を行うことができる。
【0143】
<<第4実施例>>
システムSYSの第4実施例を説明する。第4実施例では、車両側制御部110及びサーバ側制御部210の機能の観点から、それらの機能ブロック図を例示する。
【0144】
図18は車両側制御部110の機能ブロック図の例である。
図18の車両側制御部110は、アプリ実行部111、アプリ評価部112及び保存処理部113を備える。アプリ実行部111はコンテナ部122に保存された各アプリを実行する。コンテナ部122に保存されて実行される各アプリは基本的に全許可アプリ又は一部許可アプリである。アプリ評価部112は、
図11のステップS11~S23の各処理又は
図13のステップS11~S21及びS23の各処理を行う。或いは、アプリ評価部112は、
図14又は
図15のステップS11、S12a及びS13~S23の各処理を行う。保存処理部113は、
図14のステップS24及びS25の各処理又は
図15のステップS24の処理を行う。
【0145】
図19はサーバ側制御部210の機能ブロック図の例である。
図19のサーバ側制御部210は送信判定部211及び送信処理部212を備える。送信判定部211は、
図16又は
図17のステップS111~S123の各処理を行う。送信処理部212は、
図16のステップS124~S126の各処理を行う又は
図17のステップS124の処理を行う。
【0146】
<<第5実施例>>
システムSYSの第5実施例を説明する。
【0147】
アプリ700(
図7(a)参照)の例を幾つか挙げたが、アプリ700は車両CR内の何れか1以上の機能部を制御するためのアプリであれば任意である。例えば、アプリ700は、エンジン31を制御対象とし、運転手の心拍数に基づきエンジン31の駆動状態を調整することで駆動力(車両CRを走行させるための駆動力)を調整するアプリであっても良い。例えば、当該アプリは運転手の心拍数が所定値を超える場合など、運転手の心身状態に異常がみられる場合において駆動力を低下させるようエンジン31の駆動状態を調整する。
【0148】
車両CRに設けられる機能部として機能部31~37(
図5参照)を例示したが、機能部31~37以外の機能部もアプリの制御対象となり得る。機能部31~37以外で、アプリの制御対象となり得る機能部として、照明装置(ヘッドランプ、ブレーキランプ、テールランプ、方向指示器等)、エアバッグ、制動装置、カメラ、レーダなどが挙げられる。
【0149】
車載装置又は各種ノード10はバージョンアップされることがある。また、車両CRへのオプション追加により、何れかのアプリの制御対象となる機能部が新たに追加されることがある。バージョンアップ又はオプション追加が行われた場合でも、上述の各実施例の処理による対応が可能である。
【0150】
アプリは第1種アプリと第2種アプリに大別される。第1種アプリは、車両CRの製造又は出荷段階において、車両CRの製造業者又は販売業者により通信制御装置100に組み込まれるアプリである。第1種アプリは、製造業者又は販売業者により機能及び性能面等の保証が成されたアプリである。このため、第1種アプリは上述の各実施例にて述べられるアプリに該当しない(第1種アプリが上述の各実施例での対象アプリになることは無い)。これに対し、アプリ700を含む上述の各実施例にて述べられるアプリは第2種アプリである。第2種アプリは、車両CRの製造及び出荷後においてユーザの意思に基づき通信制御装置100に組み込まれ得るアプリである。第2種アプリに関しては機能及び性能面等において確認が必要であり、上述の各実施例での対象アプリになり得る。第1種アプリが何れかコンテナ122Cに保存されて良く、第2種アプリが他の何れかコンテナ122Cに保存されて良い。
【0151】
本発明の実施形態にて述べた任意の方法をコンピュータに実行させるプログラム、及び、そのプログラムを記録した記録媒体であって且つコンピュータ読み取り可能な不揮発性の記録媒体は、本発明の実施形態の範囲に含まれる。本発明の実施形態における任意の処理は、半導体集積回路等のハードウェア、上記プログラムに相当するソフトウェア、又は、ハードウェアとソフトウェアの組み合わせによって実現されて良い。ここにおけるソフトウェア及びハードウェアは夫々に複数あっても良い。
【0152】
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。
【符号の説明】
【0153】
SYS システム
CR 車両
10 ノード
11 駆動ECU
12 ボディECU
13 エアコンECU
14 シートECU
20 CGW
31 エンジン
32 ワイパ
33 パワーウィンドウ
34 ファンモータ
35 エアコンディショナ
36 シート位置調整用のアクチュエータ
37 シート角度調整用のアクチュエータ
100 通信制御装置
110 車両側制御部
120 車両側メモリ
121 データテーブル
122 コンテナ部
122C コンテナ
130 車両側通信部
200 サーバ装置
210 サーバ側制御部
220 サーバ側メモリ
221 アプリDB
230 サーバ側通信部