以下、複数の実施形態について説明する。また、各実施形態において実質的に共通する部位には同一符号を付すものとする。
(第1実施形態)
以下、第1実施形態について説明する。図1に示すように、車両用装置1は、例えばSoCで構成された半導体集積回路として実現されており、外部装置2に接続可能となっているとともに周辺機器3へのアクセスが可能となっている。これら車両用装置1、外部装置2は、互いに連携して作動することにより車両用システム4を構成している。
具体的には、車両用装置1は、車両を利用する際に提供される機能を実行可能な制御部101、周辺機器3との間で各種の信号を入出力するための外部入出力回路102、制御部101と通信可能であって車両を利用する際に提供される機能を実行可能な外部装置2が接続されるUSBコネクタ103などを備えている。なお、SoCはSystem on a Chipの略であり、USBは、Universal Serial Busの略である。また、図1では説明の簡略化のために外部入出力回路102を1つのブロックとして示しているが、周辺機器3に対応した複数の回路で構成することができる。
制御部101は、CPU104、ROM105、RAM106、入出力ポート107、および通信回路108などを備えており、それらがバス109によって接続されている。CPU104は、ROM105に記憶されているプログラムを実行することにより、車両用装置1を制御するための各種の処理と、車両を利用する際に提供される各種の機能を実行する。また、CPU104が実行する機能の一部または全部を1つあるいは複数のICによりハードウェアで構成することができる。
本実施形態では、車両を利用する際に提供される機能とは、車両を利用するユーザに対して提供される機能、および、ユーザが直接的には把握していなくても車両を利用するために必要とされる車載機器を含む周辺機器3を制御するための機能を想定している。つまり、車両を利用する際に提供される機能とは、車両用装置1が提供可能な機能、および、車両用装置1を介して外部装置2が提供可能な機能を意味している。
ROM105は、例えばeMMCで構成された不揮発性のメモリである。なお、eMMCは、embedded Multi Media Cardの略である。このROM105には、CPU104が実行する各種のプログラム、プログラムを実行する際に参照されるデータ、エアコンディショナの設定温度、シートやハドルの位置や角度のような主として車両設備に利用されるデータ、ナビゲーションに利用する自宅の位置や電話番号、楽曲などのような主として提供する機能に利用されるデータなどが記憶されている。以下、これらのデータのうち、シートポジションや電話番号などのようなユーザとって固有のデータをユーザ情報とも称する。
また、ROM105は、不揮発性のメモリで構成されており、読み出し専用の領域と書き込み可能な領域とが設けられている。例えばOSイメージのように基本的には書き換えないデータは読み出し専用の領域に記憶されている一方、車両用装置1の電源がオフされた場合でも記憶しておくデータは書き込み可能な領域に記憶される。このROM105は、記憶部110を構成している。
RAM106は、揮発性のメモリで構成されており、演算結果等のデータを一時的に記憶する。なお、RAM106に記憶されるデータは、必要であれば例えば車両用装置1の動作終了時にROM105の書き込み可能な領域に記憶される。
入出力ポート107は、制御部101と周辺機器3や外部装置2との間で信号の入出力を行わせるための回路である。通信回路108は、本実施形態ではUSB規格に準拠したものであり、物理的な接続手段であるUSBコネクタ103を介して、外部装置2との間でデータの送受信を行う。これらUSBコネクタ103と通信回路108は、本実施形態における接続部5を構成している。また、このUSB通信が行われる経路が通信経路に相当する。
外部装置2は、例えばSoCで構成された半導体集積回路として実現されており、本実施形態では、車両用装置1とUSB接続されるUSBモジュールとして構成されている。この外部装置2は、ケーブル6を介して車両用装置1の制御部101と通信可能にUSB接続されることで、車両用装置1を介して周辺機器3にアクセス可能になっている。また、外部装置2は、動作時にはUSBコネクタ103を介して車両用装置1から電源が供給される。
外部装置2は、車両を利用する際に提供される機能を実行可能な外部制御部201と、周辺機器3や無線通信装置203との間で各種の信号を入出力するための外部入出力回路202とを備えている。つまり、外部装置2は、車両用装置1と通信可能に接続され、車両用装置1を介して周辺機器3にアクセス可能であって、車両を利用する際に提供される機能を実行可能な外部制御部201を有している。また、外部装置2は、後述するように、車両用装置1からの機能の移管を受付可能であるとともに、移管された機能を実行することによって車両用装置1のリソースを節約する。
外部制御部201は、CPU204、ROM205、RAM206、入出力ポート207、および通信回路208などを備えており、それらがバス209によって接続されている。なお、図1では説明の簡略化のために外部入出力回路202を1つのブロックとして示しているが、無線通信装置203のような外部装置2に接続されることが想定される装置に対応した複数の回路で構成することができる。
CPU204は、ROM205に記憶されているプログラムを実行することにより、車両用装置1との間の通信や車両を利用する際に提供される各種の機能を実行する。ROM205は、CPU204が実行するプログラムやプログラムを実行する際に参照されるデータなどを記憶する外部側記憶部210を構成している。また、外部装置2の外部側記憶部210は、車両用装置1から送信される例えばユーザ情報などのデータを記憶することもできる。
本実施形態では、外部制御部201は、車両用装置1の制御部101よりも高い処理性能を有する構成となっている。そのため、同一処理を実行する場合には、車両用装置1よりも外部装置2の方がより短時間で処理を完了することができる。また、CPU204が実行する機能の一部または全部を1つあるいは複数のICによりハードウェアで構成することができる。
入出力ポート207は、外部制御部201と他の装置との間で信号の入出力を行わせるための回路である。本実施形態では、他の装置として、車両用装置1、車両用装置1を介して制御する周辺機器3、例えばユーザが所有する携帯端末7との間で通信を行う無線通信装置203などを想定している。
通信回路208は、本実施形態では車両用装置1と通信するためのUSB規格に準拠したものである。無線通信装置203は、例えばWi-Fi(登録商標)やBluetooth(登録商標)に対応した無線通信部を備えており、携帯端末7との間で無線通信を行う。なお、無線通信装置203は、携帯端末7との間を有線接続方式で通信する機能を備えていてもよい。
車両用装置1に接続される周辺機器3としては、例えばセンタディスプレイ301、メータディスプレイ302、ヘッドアップディスプレイ303、エアコンディスプレイ304、スピーカ305、カメラ306、マイク307、位置検出装置308、チューナ309、DSM310、LIDAR311、レーダ312、ECU313などが想定される。ただし、図1に示した周辺機器3の種類や数は一例であり、車両用装置1は必ずしもこれら全てと接続されている必要は無く、また、例示していない他の周辺機器3を接続することもできる。
センタディスプレイ301は、例えば運転席と助手席との間の前方に配置される。このセンタディスプレイ301は、例えばナビゲーション機能などを実行する際の表示画面や、表示領域に対応して設けられている図示しないタッチパネルを利用する際の操作画面として使用される。つまり、センタディスプレイ301は、ユーザの操作を入力する入力部10として機能する。
ただし、入力部10としては、タッチパネル以外にも例えば画面の周囲に図示しない機械式の操作スイッチを配置して操作を入力する構成とすることができる。また、入力部10としては、他のディスプレイや図示しないステアリングスイッチなどを採用したり、それらをタッチパネルや操作スイッチとを共用したりすることができる。
メータディスプレイ302は、ステアリングの前方に配置されて、速度や回転数などのメータ表示、警告灯などの表示を行う。ヘッドアップディスプレイ303は、運転者の前方に配置されているウィンドシールドやダッシュボードに配置された表示板に各種の情報を表示する。エアコンディスプレイ304は、例えば現在の設定温度や外気温などのエアコンディショナの制御に関する情報を表示する。ただし、エアコンディスプレイ304は、専用で設けることもできるし、他のディスプレイの一部を利用する構成とすることもできる。
スピーカ305は、車室内に設置され、車両用装置1あるいは外部装置2から出力される音声データに基づいた音声を出力する。スピーカ305は、例えば車両用装置1や外部装置2からの警告や操作案内あるいは楽曲の再生などに用いられる。マイク307は、車室内に設置され、車両の乗員が発話した音声を音声データとして車両用装置1や外部装置2に出力する。このマイク307は、車両用装置1や外部装置2を操作する音声コマンドの入力などに用いられる。また、マイク307およびスピーカ305は、携帯端末7を利用したハンズフリー通話時の音声入力や音声出力に利用することができる。
位置検出装置308は、図示しないGPS受信機やジャイロセンサなどによって構成されており、車両の現在位置や向きを取得する。なお、GPSは、Global Positioning Systemの略である。また、GPS受信機は、GPS衛星から送信されるGPS測位信号を受信して、受信したGPS測位信号を出力するものであり、ジャイロセンサは、互いに直交するX軸、Y軸およびZ軸を中心とした回転の角速度を検出するものである。
カメラ306は、例えば、車両の後側に取り付けられており、車両の後方の状況を連続して撮影する。このカメラ306で撮像された画像は、例えば画像内に存在する物体の検出結果や車両を誘導するための誘導ラインなどとともにセンタディスプレイ301や他のディスプレイに表示される。チューナ309は、AM放送およびFM放送のラジオ放送信号を受信する。また、チューナ309としてテレビ放送を受信するものを備えることもできる。
DSM310は、撮像装置などで構成されており、運転者の顔を撮影した顔画像を画像解析することにより運転者の状態を検出するドライバステータスモニタである。なお、DSM310は、Driver Status Monitorの略である。LIDAR311は、レーザ光を送受信することで、車両の周囲に存在する物体の位置を検出する。なお、LIDAR311は、Light Detection and Rangingの略である。
レーダ312は、ミリ波帯のレーダ312波を送受信することで、車両の周囲に存在する物体の位置を検出する。これらDSM310、LIDAR311あるいはレーダ312による検出結果は、例えばディスプレイへの注意表示や警告表示あるいはスピーカ305からの音声出力によって運転者に報知される。
ECU313は、車両に搭載されている電子機器である。一般的に、車両には複数のECU313が搭載されており、車両用装置1は、これらのECU313からエンジンやモータのような駆動部の駆動状態やドアの開閉状態などの車両に関する各種の情報を取得する。なお、ECU313は、Electronic Control Unitの略である。
なお、図1では説明の簡略化のために1つのECU313を示しているが、車両には複数のECU313が搭載されており、車両用装置1は、例えばCANのような車載ネットワークを介して複数のECU313と通信可能に接続されている。なお、CANは、Controller Area Networkの略である。
次に、車両用装置1の基本的なソフトウェア構成について説明する。図2に示すように、車両用装置1は、複数のオペレーティングシステムが動作可能な仮想化環境が構築されている。以下、オペレーティングシステムをOS8と称する。なお、OSはOperating Systemの略である。
ただし、図2では、説明の簡略化のために幾つかの周辺機器3の図示を省略するとともに、各OS8で実行される機能のうち幾つかを抜粋した状態を例示している。そのため、車両用装置1および外部装置2は、必ずしも図2に示した全てのアプリケーション9が実行可能である必要はなく、仕様に応じて必要になるアプリケーション9が実行できればよい。
また、図2では、詳細は後述するが、外部装置2への機能の移管と外部装置2側からの機能の取得とが完了した状態におけるソフトウェア構成の一例を示している。例えば、図1では、外部装置2に設けられているメータアプリ901が車両用装置1によって取得されたことが破線にて模式的に示されているとともに、そのメータアプリ901が車両用装置1で実行されることが実線にて模式的に示されている。
車両用装置1は、制御部101上に、ハイパーバイザ111、サービスバス112、ファイアウォール113、RTOS81、MMOS82Aが実装されている。なお、RTOS81はReal Time OSの略であり、MMOS82はMulti Media OSの略である。また、本実施形態では車両用装置1と外部装置2にそれぞれMMOS82を実装していることから、両者を区別し易くするために、車両用装置1に実装されているMMOS82にはAを付し、外部装置2に実装されているMMOS82にはBを付している。
また、本実施形態では、MMOS82としてAndroid(登録商標)を採用している。以下、RTOS81やMMOS82に共通する事項を説明する場合には単にOS8と称することがある。また、MMOS82AとMMOS82Bとに共通する事項を説明する場合には単にMMOS82と称することがある。また、MMOS82A2とMMOS82Bは、同一のバージョンあるいは十分な互換性を有するバージョンであるものとする。
ハイパーバイザ111は、一般的な技術であるため詳細な説明は省略するが、RTOS81とMMOS82Aのような複数のOS8を制御部101上で並列に実行可能とするためのプログラムであり、各OS8を管理する機能や各OS8間の通信を補助する機能などを有している。ただし、ハイパーバイザ111は、例えばRTOS81が備える機能の一部として実装することもできる。
サービスバス112は、各OS8のアプリケーション層と、それよりも下位の任意の層を示す下位層との間のデータのやり取りを行うためのプログラムである。このサービスバス112は、車両用装置1と外部装置2とがあたかも1つの装置であるかのようにデータをやり取りすることを可能とするために、下位層で用いるデータとアプリケーション層で用いるデータとの対応付けを行うためのデータベースを備えている。
また、サービスバス112は、データベースを参照することによってアプリケーション層と下位層との間でデータの形式を変換し、車両用装置1内におけるRTOS81とMMOS82Aとの間、および、車両用装置1と外部装置2との間におけるデータのやり取りを可能にする。
ファイアウォール113は、各OS8間の不正なアクセスや、外部からのRTOS81やMMOS82Aに対する不正なアクセスなどを制限する機能を備えている。なお、ファイアウォール113を実装するか否かは適宜選択することができ、他の手法でセキュリティを確保できる場合にはファイアウォール113を実装しない構成とすることもできる。
RTOS81は、リアルタイム性が求められる処理の実行に適したものであり、車両の制御や安全性に関わる処理などを主として実行する。このRTOS81には、機能部としてのHMI処理部11、判定部12、およびリソース管理部13などが実装されている。なお、HMIは、Human Machine Interfaceの略である。
これらの機能部は、本実施形態ではソフトウェアで実現されている。ただし、各機能部の一部あるいは全部をハードウェアで実現する構成とすることができるし、処理能力に問題が無ければ各機能部の一部あるいは全部をMMOS82Aに実装することもできる。
HMI処理部11は、周辺機器3や他のアプリケーション9から入力されるデータに基づいて、センタディスプレイ301、メータディスプレイ302、ヘッドアップディスプレイ303およびエアコンディスプレイ304への表示を制御する処理などを実行する。また、HMI処理部11は、アプリケーション9から指示や画像作成の命令等に従って、図示しないGPUを利用した画像データの作成等の処理も実行する。なお、GPUは、Graphics Processing Unitの略である。
判定部12は、外部装置2が機能を実行可能な状態で接続されているか否かを判定する。この判定部12は、外部装置2との間で通信を行い、外部装置2の接続状態や動作状態を把握することにより、機能を実行可能な状態で接続されているか否かを判定する。
リソース管理部13は、外部装置2への機能の移管、および、外部装置2側からの新たな機能の取得に関する処理を実行する。具体的には、リソース管理部13は、制御部101で実行可能な機能のうち少なくとも1つの機能の実行を外部装置2に移管することにより、制御部101が他の機能を実行するためのリソースを確保する。
また、リソース管理部13は、外部装置2側との間でプログラムの実行ファイルや必要なデータを受け渡すなど、機能の実行を移管したり、新たな機能を取得したりするための処理を実行する。このとき、リソース管理部13は、車両用装置1や外部装置2に予め実装されている機能を移管あるいは取得する以外にも、例えば携帯端末7を介してOTAにより更新された機能を取得したりすることができる。なお、OTAは、Over The Airの略である。
以下では、機能の実行を外部装置2に移管することを、便宜的に、アプリケーション9を外部装置2に実行させる、あるいは、アプリケーション9を外部装置2に移管するなどとも称する。また、機能の実行を外部装置2に移管するとは、その機能を外部装置2が提供することを意味する。
MMOS82Aは、例えば一般的な携帯端末7などに利用されている汎用的なものであって、マルチメディア系の処理の実行に適したものである。本実施形態では、MMOS82上では、例えば画面への表示処理や音声出力などの処理が実行される。以下、アプリケーション9を単にアプリとも称する。
このMMOS82Aには、アプリケーション9として、例えばメータアプリ901、HUDアプリ902、カメラアプリ903、音声出力アプリ904、エアコンアプリ905、ナビゲーションアプリ906などが実行可能になっている。なお、HUDはHead Up Displayの略である。
メータアプリ901は、メータディスプレイ302に表示する例えば速度計や警告灯などの画像を生成するための指示や必要になる画像を生成するための演算を行う。つまり、本実施形態のメータアプリ901は、メータディスプレイ302へのアクセスを直接的に行うのではなく、メータディスプレイ302への画像の表示はHMI処理部11に行わせる構成となっている。
HUDアプリ902は、ヘッドアップディスプレイ303への表示を制御するための機能を実現するものである。このHUDアプリ902は、画像を生成するための指示や必要になる画像を生成するための演算を行う構成となっており、実際のヘッドアップディスプレイ303への画像の表示はHMI処理部11に行わせる構成となっている。
カメラアプリ903は、カメラ306による撮影画像の表示を制御する機能を実現するためのものであり、画像中に存在する物体を検出、車両がバックする際の誘導ラインの演算等の処理を行う。このカメラアプリ903は、画像を生成するための指示や必要になる画像を生成するための演算を行うものであり、センタディスプレイ301への画像の表示や撮影画像と誘導ラインとの合成などはHMI処理部11に行わせる構成となっている。
音声出力アプリ904は、スピーカ305に音声を出力する。なお、音声出力アプリ904は、例えばチューナ309が受信したラジオ放送信号やテレビ放送信号に基づいた音声の出力も行う。エアコンアプリ905は、車両に搭載されているエアコンディショナの制御を行う。
ナビゲーションアプリ906は、位置検出装置308が検出した位置情報などに基づいて、車両の現在地の表示、現在地から目的地までの経路の案内のための演算等を行うことでいわゆるナビゲーション機能を実現する。このナビゲーションアプリ906は、画像を生成するための指示や必要になる画像を生成するための演算を行うものであり、センタディスプレイ301への画像の表示はHMI処理部11に行わせ、音声の出力は音声出力アプリ904に行わせる構成となっている。
ただし、図1では、車両用装置1に設けられているナビゲーションアプリ906が外部装置2に移管されたことを破線にて模式的に示すとともに、ナビゲーションアプリ906が外部装置2で実行されることを実線にて模式的に示している。また、ナビゲーションアプリ906は、マイク307で検出した音声を認識する音声認識を行う。
また、外部装置2のMMOS82Bには、メータアプリ901や外部機器通信アプリ907が実装されている。メータアプリ901は、外部装置2が車両用装置1に接続されると、上記したように車両用装置1に移管されて車両用装置1で実行される。
外部機器通信アプリ907は、無線通信装置203を用いた無線通信により携帯端末7との間でデータを送受信したり、受信したデータを車両用装置1へ送信したり、車両用装置1からのデータを携帯端末7に送信したりする機能を実現する。つまり、外部装置2は車両用装置1に接続されて利用されることが前提となっており、実装されているOS8やアプリケーション9も車両用装置1と連携して動作する構成となっている。
この外部装置2は、車両用装置1を介してディスプレイへの表示やスピーカ305からの音声出力を行うとともに、機能の実行や停止といったユーザの操作も車両用装置1を介して入力される。そのため、外部装置2が機能を実行した状態で接続されている場合には、ユーザからはあたかも車両用装置1に機能が追加されたように見える。つまり、外部装置2は、車両用装置1に接続された際、車両用装置1からの機能の移管を受付可能であるとともに、当該移管された機能を実行可能に構成されている。
次に、上記した構成の作用について説明する。
前述のように、車両用装置1に複数のOS8を実装する際、リアルタイム性が求められる処理に適したRTOS81と、マルチメディア系の処理に適しているMMOS82とを実装することがある。このとき、MMOS82としては、一般的な携帯端末7等で利用されるOS8が利用されることがある。
このようなMMOS82は、更新頻度が比較的高く、その更新によって搭載される機能も拡充されていく一方、要求されるハードウェアの性能も高くなっていくことが想定される。しかし、車両に搭載される車両用装置1は、出荷後に例えば1年ごとや数年ごとにハードウェアを更新する対応を取ることが困難であり、MMOS82の更新や機能の拡充への対応が難しくなることが想定される。
これは、数年先に必要になることを見越して予め拡張性や将来性に余裕を持たせたハードウェア設計とすることは、現時点においては過剰な性能となることから、コストの観点から採用することが困難であるためである。なお、ここで言うハードウェアの更新とは、車両用装置1自体を取り換えることではなく、実装されているCPUやメモリなどの部品を交換することにより性能を向上させることを意味している。
また、仮に例えば後からメモリを追加する等の部品の追加や交換をすることは、車両用装置1の品質確保という観点からすると、セキュリティ面や信号品質あるいは信頼性の確保が困難になることが予想される。以下、性能向上のためにハードウェアを更新することを、便宜的にバージョンアップと称する。
そこで、本実施形態の車両用装置1は、出荷された後であっても、新たな機能の追加や既存機能の処理速度向上を可能とすることにより、車両用装置1を介して提供される機能の拡充といった性能向上をハードウェア面、ソフトウェア面から図ることが容易にできる構成となっている。
まず、本実施形態の全体像について、車両用装置1、外部装置2および車両用システム4による概略の作用効果を述べながら説明する。車両用システム4を構成する車両用装置1は、外部装置2が接続される接続部5と、外部装置2が機能を実行可能な状態で接続されているか否かを判定する判定部12とを備えている。また、外部装置2は、車両を利用する際に提供される機能を実行可能な外部制御部201を備えている。
そのため、車両用装置1は、機能を提供する際、自身が備える制御部101に加えて、接続部5に接続される外部装置2を利用することが可能となる。このとき、車両用装置1と外部装置2とは接続部5を介して通信可能に接続されるため、車両用装置1を車両に取り付けた後であっても、車両用装置1と外部装置2とを容易に接続することができる。
つまり、車両用装置1は、実質的に、機能を提供する際に利用可能な新たなハードウェア面でのリソースを確保することができる構成となっている。これにより、例えば出荷後に外部装置2を容易に接続することが可能となり、車両用装置1の性能向上を図ることが容易に行えるようになる。このとき、本実施形態のように車両用装置1と外部装置2とをUSB接続する構成とすれば、接続自体も容易に行うことができる。
そして、例えば外部装置2側でナビゲーションアプリ906を実行させることにより、つまりは、ナビゲーション機能を外部装置2に移管することにより、車両用装置1側に余剰のリソースが発生する。換言すると、機能の実行を外部装置2に移管することにより、車両用装置1は、他の機能を実行するためのリソースを確保することができる。
そのため、車両用装置1は、自身が備えていなかった例えばメータアプリ901を実行することにより、メータディスプレイ302への表示機能を得ることができる。つまり、車両用装置1は、新たに追加された周辺機器3を利用する機能、および、新たに取得したプログラムにより提供される機能、るまりは、アプリケーション9を実行することにより実現される機能を実行することができる。この場合、移管されたナビゲーションアプリ906は外部装置2で実行されることから、ナビゲーション機能が損なわれることもない。
このように、車両用装置1と外部装置2とを接続することにより、例えば車両用装置1に新たな機能を追加できるなど実質的な性能向上を図ることができる。そして、車両用装置1自身は、機能を移管したことにより自身のリソースが空くため、そのリソースを用いて他の機能を実行することができる。
次に、具体的な作用効果について、起動時から通常の動作が行われる定常状態までの処理の流れの概略とともに説明する。以下、車両用装置1および外部装置2を処理の主体とするとともに、各装置での処理の流れを対比させながら説明する。また、以下では主に車両用装置1を例にして説明しているが、その作用効果は、車両用システム4および車両用装置1に接続される外部装置2を利用することによっても同様に得ることができるものである。
さて、図3に示すように、車両用装置1は、電源がオンされると、ステップS101においてCPU104が起動し、その後、ステップS102においてBSPをロードする。BSPは、Board Support Packageの略であり、例えばハードウェアを初期化するためのプログラムや、制御部101上でOS8を実行させるために必要なプログラムを含んでいる。
BSPをロードすると、車両用装置1は、ステップS103においてハイパーバイザ111を起動した後、ステップS104においてOS8を起動する。このステップS104では、RTOS81とMMOS82Aとを起動するが、本実施形態ではRTOS81を起動した後にMMOS82Aを起動させる順序で各OS8を起動させている。
同様に、外部装置2は、電源がオンされると、ステップS201においてCPU204が起動し、ステップS202においてBSPをロードし、ステップS203においてMMOS82Bを起動する。このとき、本実施形態では車両用装置1よりも外部装置2のほうが高性能であり、また、ソフトウェア構成もシンプルになっている。
そのため、基本的には車両用装置1よりも外部装置2のほうが早くOS8が起動して車両用装置1からの指示を待機する待機状態になると考えられるそして、外部装置2は、車両用装置1からの接続を確認するための通信があると、ステップS204においてそれに応答する接続応答処理を実行しつつ次の指示を待機することになる。
さて、車両用装置1は、RTOS81およびMMOS82Aが起動すると、ステップS105においてサービスバス112を起動した後、ステップS106において外部装置2との接続を確認する。このステップS106は、判定部12によって実行される処理であり、外部装置2が機能を実行可能な状態で接続されているか否かの判定が行われる。以下、外部装置2が機能を実行可能に接続されている状態を接続状態と称し、外部装置2が接続部5に接続されていない状態、あるいは、接続部5には接続されていても動作可能ではない状態を解除状態と称する。
車両用装置1は、外部装置2との間で接続確認用のデータをやり取りし、外部装置2から応答があった場合に接続状態であると判定する一方、車両用装置1は、所定時間内に外部装置2からの応答がなかった場合に解除状態であると判定する。このときやり取りするデータは、MMOS82Bのバージョン情報やMMOS82Bに実装されているアプリケーション9の機能やバージョン情報を特定可能するためのデータなどを含めて適宜設定することができる。
これにより、接続状態の確認以外にも、外部装置2の性能の確認、外部装置2で実行可能な機能の確認、接続された外部装置2が車両用装置1に対応したものであるか否かの判定、外部装置2に実装されていて車両用装置1が取得可能なアプリケーション9の確認、外部装置2に移管することができるアプリケーション9の確認などを併せて行うことができる。
車両用装置1は、外部装置2からの応答がなかった場合には、外部装置2による機能の実行が可能ではない解除状態であると判定し、ステップS107においてNOとなることから、ステップS108を省略する。これに対して、車両用装置1は、外部装置2からの応答があった場合には、外部装置2による機能の実行が可能な接続状態であると判定し、ステップS107においてYESとなることから、ステップS108において有効化処理を実行する。
この有効化処理は、接続状態にある外部装置2に機能を移管および実行させる処理である。車両用装置1は、図4に示すように、ステップS301においてMMOS82Bとの同期を取る処理を実行し、ステップS302においてMMOS82Bへリソースを割り付ける。このステップS301ではRTOS81、MMOS82AおよびMMOS82Bで利用する時刻を一致させる処理などが行われ、ステップS302ではMMOS82Bから周辺機器3へのアクセスを可能にするための処理などが行われる。
ここで、機能を移管および取得する際の基本的な考え方について説明する。図5にバージョンアップ前として一例を示すように、車両用装置1は、その製造時点においては、つまりは、バージョンアップ前の時点においては、メータディスプレイ302が搭載されていない車両に搭載されることを想定した仕様であったとする。なお、図5は、説明の簡略化のために図1および図2を簡略化して一部の周辺機器3と一部のアプリケーション9を示している。
バージョンアップ前の車両用装置1は、メータディスプレイ302に関する機能を実行する必要がないことから、メータアプリ901の実行を考慮していないハードウェア構成になっていると考えられる。換言すると、車両用装置1は、仕様に含まれている他の機能を実行するには十分であるものの、メータアプリ901を実行するにはリソースが不足する、あるいは、リソースが不足する可能性があるハードウェア設計になっていると考えられる。
そして、この車両用装置1を、図5にバージョンアップ後として示すように、メータディスプレイ302が搭載された車両に搭載することを想定する。この場合、車両用装置1単体ではリソースが不足する可能性があると考えられるものの、外部装置2を接続することにより、車両用システム4全体としてはリソースを確保することができると考えられる。すなわち、車両用装置1と通信可能な外部装置2を接続する構成としたことにより、車両用装置1自体を変更しなくても実質的にハードウェア性能を向上させることが可能になると考えられる。
ところで、車両用システム4全体としてのリソースが確保できるのであれば、車両用装置1の当初の仕様では想定されていなかった新しい機能については、外部装置2で実行するという選択肢も当然のことながら考えられる。しかし、本実施形態では、以下の理由により、車両用装置1側のリソースを確保する構成を敢えて採用している。
まず、提供する機能の中には、アプリケーション9が動作するOS8や必要となる処理能力にもよるものの、車両用装置1で実行するほうが望ましい機能が存在する。例えばメータアプリ901は、速度や回転数などの速度メータといったリアルタイム性が要求される表示や警告灯といった安全性に関する処理を実行する。
その場合、メータアプリ901が実現するメータ画像の表示機能は、例えば1/30秒といった短期間に更新する必要があることから、HMI処理部11との間でのデータのやり取りが頻繁に行われることが想定される。また、センタディスプレイ301への表示を行うために、HMI処理部11からメータディスプレイ302へのアクセス頻度が高くなることが想定される。また、メータアプリ901が実現する警告灯などの表示機能は、迅速かつ確実にユーザに通知するための即応性が求められることが想定される。
このように、データのやり取りや周辺機器3へのアクセスが頻繁に行われる機能については、外部装置2でその機能を実行すると、車両用装置1との間の通信や、その機能を実現するための連携しているアプリケーション9間の通信が頻繁に行われることになる。その結果、帯域が不足するといった通信経路にかかる負荷が高くなったり、本実施形態のようにUSB接続している場合には車両用装置1の通信処理にかかる負荷が高くなったりするおそれがある。
すなわち、提供する機能によっては、外部装置2との通信にかかる負荷が他の機能よりも相対的に高くなる機能が存在することがある。そして、外部装置2との通信にかかる負荷が相対的に高い機能については、車両用装置1で実行するほうが望ましい場合がある。
その一方で、外部装置2で実行するほうが望ましい場合も想定される。例えば純粋な演算処理については、演算元のデータと演算結果のデータとの通信を行えばよいことから通信にかかる負荷が比較的少ないと考えられる。その場合、演算処理については外部装置2で実行することにより、車両用装置1が確保可能なリソースが相対的に増加すると考えられる。
また、本実施形態の場合、外部装置2のほうが車両用装置1よりも処理能力が高くなっていることから、確保できるリソースがさらに増加すると考えられる。また、ある機能を実現するため必要な処理のうち例えば演算処理を外部装置2で実行させる構成、つまりは、機能の一部を移管して車両用装置1と外部装置2とにより機能を分業する構成においても同様に、確保できるリソースを増加させることができると考えられる。
このように、提供する機能によっては、車両用装置1で実行するほうが望ましいものと、外部装置2で実行するほうが望ましいものとが存在する。そして、いずれで実行するのかを適切に振り分けることができれば、全体としての性能向上を図ることができると考えられる。
そのため、本実施形態では、提供する機能のうち周辺機器3へのアクセス頻度が相対的に低い機能、または、外部装置2との通信にかかる負荷が相対的に低い機能については、外部装置2に移管することで、車両用装置1側のリソースを確保している。なお、周辺機器3へのアクセス頻度が相対的に低く、且つ、外部装置2との通信にかかる負荷が相対的に低い機能も移管の対象となる。
換言すると、本実施形態では、周辺機器3へのアクセス頻度が相対的に高い機能、または、外部装置2との通信にかかる負荷が相対的に高い機能については、車両用装置1側で実行している。なお、周辺機器3へのアクセス頻度が相対的に高く、且つ、外部装置2との通信にかかる負荷が相対的に高い機能も車両用装置1側で実行する対象となる。
具体的には、車両用装置1は、図4に示すステップS303において、外部装置2に機能を移管する。この場合、外部装置2が接続状態にあれば、外部装置2で機能を実行することができるため、車両用装置1は、自身が実行可能な機能のうち、外部装置2に実行させることができる機能を移管する。
例えば、図5にバージョンアップ後として示すように、車両用装置1は、ナビゲーションアプリ906の実行を矢印F1にて示すように外部装置2に移管する。これにより、MMOS82Aに実装されていたアプリケーション9で実現される例えばナビゲーション機能が、同系統のMMOS82Bが実装されていて実行可能な環境が構築されている外部装置2に移管される。
ナビゲーション機能は、画面の更新頻度がメータ表示に比べれば低いことから、通信にかかる負荷も相対的に低いと考えられる。そのため、外部装置2に機能を移管しても、他の機能に与える影響は少ないと考えられる。そして、機能を移管することにより、車両用装置1のリソースには余裕ができることになる。なお、ナビゲーション機能を実現するための演算処理を外部装置2に移管する構成、つまりは、機能の一部を移管する構成とすることもできる。
さて、機能を移管すると、車両用装置1は、ステップS304において取得可能な機能があるか否かを判定する。ここで、取得可能とは、物理的に取得できるものであること、および、外部装置2に機能を移管することにより確保できるリソースによって自身で実行可能であること意味している。例えば外部装置2にメータアプリ901が記憶されており、そのメータアプリ901を自身で実行可能であると判定した場合には、車両用装置1は、取得可能な機能があると判定する。
このとき、メータディスプレイ302が存在しているか否かについてはECU313から車両情報を取得することなどにより判定することができ、メータアプリ901を自身で実行可能であるか否かはアプリケーション9内に記述しておく、あるいは、アプリケーション9に付帯するデータとして外部装置2に記憶しておくことにより把握できる。
そして、車両用装置1は、取得可能な機能があると判定した場合には、ステップS304においてYESとなることから、ステップS305においてその機能を取得する。この場合、車両用装置1は、例えば図5に矢印F2にて示すように、外部装置2に記憶されているメータアプリ901を自身にコピーすることにより機能を取得する。
機能を取得すると、車両用装置1は、ステップS306において取得した機能を実行し、ステップS307において外部装置2に移管した機能の実行を指示した後にリターンする。つまり、車両用装置1は、新たに追加された周辺機器3を利用する機能、および、新たにインストールされたプログラムによって実現される機能を実行する。
なお、車両用装置1は、取得可能な機能がないと判定した場合には、ステップS304においてNOとなることからステップS307に移行して機能の実行を指示した後にリターンする。なお、車両用装置1は、既に外部装置2と接続されたことがあり、その際に機能を取得済みである場合も取得可能な機能がないと判定する。
機能の取得や移管が完了すると、車両用装置1は、ステップS306において取得した機能を実行し、ステップS307において外部装置2に移管した機能の実行を指示した後、リターンする。そして、車両用装置1および外部装置2は、図2に示すように、通常の動作状態、つまりは、必要に応じて各種の機能を提供する定常状態に移行する。このとき、機能の取得結果や移管結果を記憶しておき、次回の起動時には各判定や取得あるいは移管の処理を省略する流れとすることもできる。
このように、車両用装置1は、外部装置2が機能を実行可能な状態で接続部5に接続されているか否かを判定し、外部装置2が機能を実行可能な状態で接続されていると判定された場合には、外部装置2に機能を移管することによって、他の機能を実行するための自身のリソースを確保している。
以上説明した構成によれば、次のような効果を得ることができる。
車両用装置1は、制御部101と、外部装置2が接続される接続部5と、判定部12とを備えており、外部装置2が機能を実行可能な状態で接続されていると判定した場合、外部装置2を有効化して機能の実行を可能にする。
これにより、例えば車両出荷時には必要とされる性能を有していたものの、その後のOS8のアップデートなどによって高性能化が必要になるような状況において、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができる。
そして、車両用装置1は、リソース管理部13により、自身が実行可能な機能のうち少なくとも1つの機能の実行を外部装置2に移管することによって、他の機能を実行するための自身のリソースを確保する。これにより、例えばリアルタイム性が必要とされる機能、周辺機器3へのアクセス頻度が高い機能、あるいは車両用装置1と外部装置2との間の通信経路にかかる負荷が高い機能などを車両用装置1で実行することが可能となる。
したがって、例えば出荷後に新たに追加された機能や新たに追加された周辺機器3を利用する機能などを、車両用装置1のハードウェア構成自体は変更することなく提供することができ、出荷後においても性能向上を図ることができる。
また、車両用装置1は、確保したリソースを利用して、新たに追加された周辺機器3を利用する機能を実行する。これにより、例えば出荷後に新たに追加された機能や新たに追加された周辺機器3を利用する機能を、車両用装置1のハードウェア構成自体は変更することなく提供することができる。
また、車両用装置1は、確保したリソースを利用して、新たにインストールされたプログラムによって実現される機能を実行する。これにより、例えば出荷後に新たに追加された機能や新たに追加された周辺機器3を利用する機能を、車両用装置1のハードウェア構成自体は変更することなく提供することができる。
また、車両用装置1は、確保したリソースで実行する機能を、外部装置2側から取得する。例えば、車両用装置1は、外部装置2に記憶されているプログラムを自身にコピーすることにより、機能を取得する。これにより、例えば出荷後に新たに追加された機能や新たに追加された周辺機器3を利用する機能を、車両用装置1のハードウェア構成自体は変更することなく提供することができる。
また、車両用装置1は、自身に実装されているプログラムを外部装置2に渡すことにより、外部装置2に機能の実行を移管する。これにより、例えば外部装置2にOS8が実装されているもののアプリケーション9が実装されていない構成である場合、換言すると、外部装置2がリソースを確保するためのいわゆる拡張モジュールのような位置づけの構成である場合であっても、外部装置2に機能を実行させることができ、自身のリソースを確保することができる。
また、車両用装置1は、外部装置2に機能の実行を移管する際、当該機能を実現する処理の一部を外部装置2で実行させ、残りの処理を自身で実行する。例えば、車両用装置1は、ナビゲーション機能に関する処理のうち、演算処理を外部装置2で実行させ、表示処理を自身で実行する。このように機能の一部の実行を移管する構成によっても、演算の負荷が低減されることにより、他の機能を実行するための自身のリソースを確保することができる。
また、車両用装置1は、提供する機能のうち周辺機器3へのアクセス頻度が相対的に低い機能、または、外部装置2との通信にかかる負荷が相対的に低い機能を外部装置2に移管する。なお、周辺機器3へのアクセス頻度が相対的に低く、且つ、外部装置2との通信にかかる負荷が相対的に低い機能も移管の対象となる。これにより、通信経路の帯域が不足したり通信するための処理に時間がとられたりして機能を所望の応答時間内に提供できなくなるおそれを低減することができる。
また、車両用システム4は、周辺機器3へのアクセスが可能な車両用装置1と、車両用装置1と通信可能に接続され、車両用装置1を介して周辺機器3へのアクセスが可能な外部装置2とを備えている。
このような車両用システム4によっても、出荷後のOS8のアップデートなどによって高性能化が必要になるような状況において、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができるとともに、新たに追加された機能や新たに追加された周辺機器3を利用する機能などを、車両用装置1のハードウェア構成自体は変更することなく提供することができるなど、車両用装置1と同様の効果を得ることができる。
また、外部装置2は、車両を利用する際に提供される機能を実行可能であり、車両用装置1に接続された際、車両用装置1からの機能の移管を受付可能であるとともに、移管された機能を実行することによって車両用装置1のリソースを節約する外部制御部201を有している。
このような外部装置2を利用することによっても、出荷後のOS8のアップデートなどによって高性能化が必要になるような状況において、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができるとともに、新たに追加された機能や新たに追加された周辺機器3を利用する機能などを車両用装置1のハードウェア構成自体は変更することなく提供することができるなど、車両用装置1と同様の効果を得ることができる。
(第2実施形態)
以下、第2実施形態について説明する。第1実施形態ではプログラムそのものをコピーすることにより機能の移管や取得を行う構成例を示したが、第2実施形態では、第1実施形態とは異なる機能の移管や取得の幾つかの手法について説明する。なお、以下では主に車両用装置1について作用効果を説明するが、車両用装置1と外部装置2とを備える車両用システム4、および、車両用装置1に接続される外部装置2を利用することによっても、同様の作用効果を得ることができる。
車両用装置1が機能を移管する場合、外部装置2で実行される機能と重複する自身の機能を停止することにより外部装置2に機能を移管する構成とすることができる。例えば図6に示すように車両用装置1と外部装置2にそれぞれナビゲーションアプリ906が実装され、それぞれがナビゲーション機能を提供可能であったとする。
なお、各ナビゲーションアプリ906は互換性があるものとし、車両用装置1は、図3に示すステップS106の接続確認時に外部装置2に実装されている機能を取得することにより、移管しようとしている機能が外部装置2に既に実装されているか否かを判定する。
図6の場合、外部装置2にはナビゲーションアプリ906が実装されていることから、車両用装置1は、移管しようとしているナビゲーション機能が既に外部装置2に実装されていることを把握できる。なお、ナビゲーション機能のための演算処理といった機能の一部を外部装置2で代行可能な状態であることを把握する構成であってもよい。
その場合、車両用装置1は、図4のステップS303において機能を移管する際、外部装置2に実装されているナビゲーション機能の実行を許可するとともに、ハッチングにて模式的に示しているように自身に実装されているナビゲーション機能は実行しないことにより、実質的に外部装置2に機能を移管することができる。
このような構成によっても、車両用装置1は、外部装置2への機能の移管と自身のリソースの確保とを行うことが可能となり、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができるとともに、新たに追加された機能や新たに追加された周辺機器3を利用する機能などを車両用装置1のハードウェア構成自体は変更することなく提供することができるなど、第1実施形態で説明したのと同様の効果を得ることができる。
また、車両用装置1が機能を取得する場合には、例えば図6に示すように外部装置2にエージェントインストーラ910を実装し、車両用装置1と接続された際、プログラムを単純にコピーするのではなく、エージェントアプリ911をインストールする構成とすることができる。
なお、エージェントアプリ911は、各種のものが想定されるが、例えばユーザの音声指示に基づいて対応する操作を代行したり、目的地を予想して経路案内を行ったり、ガソリンの残量をモニターして給油所を案内するなど、ユーザの利便性や快適性を向上させる機能を実現するプログラムを想定している。
この場合、車両用装置1と外部装置2とが接続されると、例えば車両用装置1からエージェントインストーラ910の実行を指示することにより、エージェントアプリ911が車両用装置1にインストールされる。これにより、外部装置2のOS8のほうが新しく、単純にコピーすると不具合が生じるおそれがある場合であっても、予め車両用装置1のOS8に対応したバージョンのものを用意しておくことで、適切に動作するアプリケーション9を取得することができる。
あるいは、車両用装置1が機能を取得する場合には、例えば図7に示すように外部装置2を経由して外部のサーバ20にアクセスし、サーバ20に記憶されている例えばエージェントアプリ911を矢印F4にて示すようにOTAで取得する構成とすることができる。この場合、車両用装置1は、自身のバージョンを通知することにより、自身に適したバージョンのエージェントアプリ911を取得することができる。なお、図7では、ナビゲーション機能の一部を矢印F1にて示すように外部装置2に移管した状態を、ハッチングにて模式的に示している。
このように、確保したリソースで実行する機能を、外部装置2または外部装置2を経由する外部から取得する構成とすることができる。すなわち、外部装置2側から機能を取得する構成とすることができる。また、エージェントアプリ911以外のものを対象として同様に取得することもできる。
このような構成によっても、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができるとともに、新たに追加された機能や新たに追加された周辺機器3を利用する機能などを車両用装置1のハードウェア構成自体は変更することなく提供することができるなど、第1実施形態で説明したのと同様の効果を得ることができる。
さて、ここまでは1つの機能を取得したり1つの機能を移管したりする例を示したが、複数の機能を取得したり、複数の機能を移管したりする構成とすることができる。また、その場合には、取得する機能に必要な処理能力等のリソースを求めて、必要となるリソースを確保できるように複数の機能を移管することができる。なお、必要となるリソースは、例えば取得する機能を実現するアプリケーション9内に記述したり、そのアプリケーション9に付帯するデータとして準備したりすることにより把握することができる。
例えば図8に示すように、サーバ20からAR/VRアプリ920が取得する可能であったとする。なお、AR/VRは、Augmented Reality/Virtual Realityの略である。このAR/VRアプリ920は、ユーザが見ている現実の風景に対し、図示しない投影装置を用いて例えばウィンドシールドに画像を表示することなどによって情報を付加することにより、現実世界を仮想的に拡張する拡張現実の機能を実現する。
また、AR/VRアプリ920は、ディスプレイに仮想的な映像を表示することなどにより仮想世界を現実のように体験させる仮想現実の機能を提供する。なお、拡張現実と仮想現実の双方を実現するものであってもよいし、いずれか一方を実現するものであってもよい。
このようなAR/VRアプリ920は、車両の速度や向きが変化することに伴って変化する現実世界の風景に追従させる形で、表示する画像、画像の大きさ、画像の向きなどを変更すると考えられる。なお、車両の速度や向きの変化は、車載ネットワークを介してECU313から取得することができる。
そのため、AR/VRアプリ920を実行する場合には、扱うデータ量が比較的大きくなるとともに、処理に要する負荷も高くなることが想定される。つまり、AR/VRアプリ920は、比較的多くのリソースを必要とすることが想定される。また、周辺機器3へのアクセス頻度も高くなることが想定される。
つまり、AR/VRアプリ920は、通信にかかる負荷やアプリケーション9間の通信頻度などを考慮すると、車両用装置1で実行することが望ましいと考えられる。そのため、車両用装置1は、矢印F2および矢印F3で示すように、自身で実行するほうが望ましいメータアプリ901とAR/VRアプリ920とを外部装置2側から取得する。なお、図8では、移管されたアプリを破線にて示し、実行されるアプリを実線にて示している。
そして、車両用装置1は、自身で実行するメータアプリ901とAR/VRアプリ920の実行に必要となるリソースをアプリケーション9内の記述や付帯するデータに基づいて求め、求めたリソースを確保できるように、図8に破線にて示すHUDアプリ902、音声出力アプリ904、エアコンアプリ905、ナビゲーションアプリ906などの複数の機能を、矢印F1にて示すように外部装置2にまとめて移管する。
このように、車両用装置1は、外部装置2側から機能を取得可能であり、取得する機能を実行する際に必要となるリソースを求め、求めたリソースを確保可能な数の機能を外部装置2に移管することで、自身に必要となるリソースを確保している。
このような構成によっても、外部装置2を接続することで機能を提供するための性能向上を容易に図ることができるとともに、新たに追加された機能や新たに追加された周辺機器3を利用する機能などを車両用装置1のハードウェア構成自体は変更することなく提供することができるなど、第1実施形態で説明したのと同様の効果を得ることができる。
上記した各具体例は、その構成の全部あるいは一部を他の具体例の全部あるいは一部と適宜組み合わせることができる。例えば、インストーラを用いる構成とOTAにより取得する構成とを組み合わせたり、機能によっていずれの手法で取得あるいは移管するかを選択可能な構成としたりすることができる。すなわち、各実施形態で説明した機能を移管または取得する手法は、適宜組み合わせて利用することができる。
実施形態ではサービスバス112として車両用装置1と外部装置2をUSB接続により物理的に通信可能に接続する例を示したが、サービスバス112は、USB接続による通信に限らず、車両用装置1と外部装置2とを通信可能に接続するものであればよい。例えば接続部5として無線通信回路を採用することにより、物理的な接続をすることなく車両用装置1と外部装置2とを通信可能に接続する構成とすることができる。また、映像を伝送するための映像ラインを含める構成とすることもできる。
実施形態では通信により外部装置2の接続状態を判定する例を示したが、外部装置2と接続されたのか、あるいは、類似するMMOS82が搭載されている携帯端末7が接続されたのかを判定するために、外部装置2の認証機能を車両用装置1に設ける構成とすることができる。これにより、類似するMMOS82が搭載されている携帯端末7を誤って外部装置2と認識してしまうおそれを低減することができる。
実施形態ではハイパーバイザ111を各OS8から独立した形で実装し、そのハイパーバイザ111上で各OS8をそれぞれ動作させる例を示したが、他の構成とすることができる。例えばRTOS81がハイパーバイザ111機能を備えている場合には、まずRTOS81を起動してハイパーバイザ111機能を有効化した後、そのRTOS81上でMMOS82Aを実行させる構成とすることもできる。
実施形態では車両用装置1に複数のOS8を実装し、外部装置2に1つのOS8を実装するソフトウェア構成例を示したが、他のソフトウェア構成とすることができる。例えば、車両用装置1に1つのRTOS81を実装し、外部装置2にMMOS82B1、MMOS82B2のような複数のOS8を実装する構成とすることができる。
実施形態ではアプリケーション9の実行ファイルをコピーすることにより機能を移管する例を示したが、アプリケーション9を実行する実行環境ごと、例えばOS8ごとコピーすることにより、外部装置2に機能を移管する構成とすることができる。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に含まれるものである。
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。