(57)【要約】【課題】車載システムにおいて、データベースのデータを共有すること。【解決手段】車載システムは、各々がデータベースを備える複数の電子装置を具備する。データベースは、フィールド毎に、該フィールドのデータを共有する共有先のデータベースの情報が登録されている。電子装置は、自身のデータベースに登録されているフィールドのデータを共有する場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する。【選択図】図１
2019105964.tif 000002
【特許請求の範囲】
【請求項１】
各々がデータベースを備える複数の電子装置を具備し、
前記データベースは、
フィールド毎に、該フィールドのデータを共有する共有先のデータベースの情報が登録されており、
前記電子装置は、
自身のデータベースに登録されているフィールドのデータを共有する場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する、
車載システム。
【請求項２】
前記電子装置は、
自身のデータベースに登録されているフィールドのデータが更新された場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する、
請求項１に記載の車載システム。
【請求項３】
前記電子装置は、
自身のデータベースに登録されているフィールドのデータを共有するリクエストを受けた場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する、
請求項１に記載の車載システム。
【請求項４】
前記データベースは、
データが登録される履歴データリストと、
フィールド毎に、前記履歴データリストにおける該フィールドのデータが登録される領域と、該フィールドのデータを共有する共有先のデータベースの情報と、が登録されるフィールドリストと、を保持する、
請求項１に記載の車載システム。
【請求項５】
前記電子装置は、
自身のデータベースに登録されているフィールドのデータを、該フィールドが設定されていないデータベースと共有する場合、該データベースを備える電子装置に対し、前記フィールドリストにおける該フィールドの情報を送信して、該フィールドを設定させた後に、該フィールドのデータを送信する、
請求項４に記載の車載システム。
【請求項６】
前記電子装置は、
前記データベースがグルーピングされたグループのグループ情報を保持し、
自身のデータベースに登録されているデータを共有する場合、自身のデータベースと同じグループにグルーピングされたデータベースを備える電子装置に対し、自身のデータベースのデータを送信する、
請求項１に記載の車載システム。
【請求項７】
前記電子装置は、
自身のデータベースに登録されているデータが更新された場合、自身のデータベースと同じグループにグルーピングされたデータベースを備える電子装置に対し、自身のデータベースのデータを送信する、
請求項６に記載の車載システム。
【請求項８】
前記電子装置は、
他の電子装置に対し、時刻同期を行う旨の通知を行い、該他の電子装置から、前記通知に対する応答を受信すると、以降、該他の電子装置との間で、時刻同期処理を行う、
請求項１に記載の車載システム。
【請求項９】
前記データベースに登録されるデータは、センサ情報、物体情報、白線情報、車両情報、車両制御情報の少なくとも１つを含む、
請求項１に記載の車載システム。
【請求項１０】
前記電子装置は、
前記データベースのデータを送信するときの通信経路及び代替え経路の情報を保持し、
前記通信経路が使用可能である場合は、前記通信経路を使用して、前記データベースのデータを送信し、
前記通信経路が使用不可である場合は、前記代替え経路を使用して、前記データベースのデータを送信する、
請求項１に記載の車載システム。
【請求項１１】
各々がデータベースを備える複数の電子装置を具備する車載システムの制御方法であって
前記データベースは、
フィールド毎に、該フィールドのデータを共有する共有先のデータベースの情報が登録されており、
前記電子装置は、
自身のデータベースに登録されているフィールドのデータを共有する場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する、
車載システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載システム及びその制御方法に関する。
【背景技術】
【０００２】
特許文献１には、車両に搭載されたセンサ毎に、そのセンサとの間で入出力するデータを、データベースとして記憶する車載システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２３１４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、車載システムでは、各種機能を実現するために、複数のユニット同士が連携して動作を行っている。また、複数のユニットの各々は、自身が制御するセンサのデータ等を登録しておくデータベースを備えることが多い。
【０００５】
従って、車載システムにおいて、近年、実用化が進められている自動運転を行う際には、複数のユニットの各々は、データベースに登録されたセンサのデータ等を相互に利用しながら、連携して処理を行う機会が非常に多くなると予想される。
【０００６】
そのため、特許文献１に開示されているように、車載システムでは、データベースのデータを共有することが好適である。しかし、特許文献１には、データベースのデータを共有することについては開示されているものの、データベースのデータを共有するための具体的な手法については何ら開示されていない。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、車載システムは、各々がデータベースを備える複数の電子装置を具備する。データベースは、フィールド毎に、該フィールドのデータを共有する共有先のデータベースの情報が登録されている。電子装置は、自身のデータベースに登録されているフィールドのデータを共有する場合、該フィールドのデータを共有する共有先のデータベースを備える電子装置に対し、該フィールドのデータを送信する。
【発明の効果】
【０００９】
前記一実施の形態によれば、上述した課題の解決に貢献することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態に係る車載システムの全体構成の例を示す図である。
【図２】実施の形態に係る車載システム用ＳｏＣのハードウェア構成の例を示す図である。
【図３】実施の形態に係る車載システム用ＳｏＣのハードウェア構成の例を示す図である。
【図４】実施の形態に係る車載用マイクロコントローラのハードウェア構成の例を示す図である。
【図５】実施の形態に係る車載システムのソフトウェアスタックの例を示す図である。
【図６】実施の形態に係る車載システムにおいて、定周期処理でセンサのデータをデータベースに書き込む動作の例を示す図である。
【図７】実施の形態に係る車載システムにおいて、割り込み処理でセンサのデータをデータベースに書き込む動作の例を示す図である。
【図８】実施の形態に係るデータベースが保持するフィールドリストの構造の例を示す図である。
【図９】実施の形態に係るデータベースが保持する履歴管理リストの構造の例を示す図である。
【図１０】実施の形態に係るデータベースが保持する履歴データリストの構造の例を示す図である。
【図１１】実施の形態に係る車載システムにおいて、データベースのデータを、データベース単位で共有するグループの例を示す図である。
【図１２】実施の形態に係る車載システムにおいて、データベースのデータを、データベース単位で共有するグループのグループ情報の例を示す図である。
【図１３】実施の形態に係る車載システムにおいて、時刻同期を行う方法の例を示す図である。
【図１４】実施の形態に係る車載システムにより実現可能な車載システムの具体的な構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
＜車載システムの全体構成＞
まず、図１を参照して、本実施の形態に係る車載システム１の全体構成について説明する。図１に示されるように、本実施の形態に係る車載システム１は、車載システム用ＳｏＣ（System on a Chip）１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０を備えている。なお、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０は、電子装置の一例である。
【００１３】
車載システム用ＳｏＣ１０Ａは、車両の前、後、左、右をそれぞれ撮影する４個のセンサカメラ３１Ａを制御する。車載システム用ＳｏＣ１０Ａは、データベースＤＢ＿Ａを備えており、データベースＤＢ＿Ａには、例えば、４個のセンサカメラ３１Ａで撮影されたカメラ画像を示すカメラ情報（camera info）等が登録される。また、車載システム用ＳｏＣ１０Ａは、データの共有、通信、暗号化をつかさどるコミュニケータ（Communicator）１００Ａを備えている。なお、車載システム用ＳｏＣ１０Ａは、データベースＤＢ＿Ａ以外のデータベースを備えていても良い。
【００１４】
車載システム用ＳｏＣ１０Ｂは、車両の前、後、左、右をそれぞれ撮影する４個のセンサカメラ３１Ｂを制御する。車載システム用ＳｏＣ１０Ｂは、データベースＤＢ＿Ｂを備えており、データベースＤＢ＿Ｂには、例えば、４個のセンサカメラ３１Ｂで撮影されたカメラ画像を示すカメラ情報等が登録される。また、車載システム用ＳｏＣ１０Ｂは、データの共有、通信、暗号化をつかさどるコミュニケータ１００Ｂを備えている。なお、車載システム用ＳｏＣ１０Ｂは、データベースＤＢ＿Ｂ以外のデータベースを備えていても良い。
【００１５】
車載用マイクロコントローラ２０は、車両の前、後に存在する物体をそれぞれ検出する２個のレーダセンサ（Radar Sensor）４１及び車両の加速度を検出する加速度センサ（Acceleration sensor）４２を制御する。車載用マイクロコントローラ２０は、データベースＤＢ＿Ｃを備えており、データベースＤＢ＿Ｃには、例えば、２個のレーダセンサ４１の検出結果を示すレーダデータ（Radar data）及び加速度センサ４２の検出結果を示す加速度データ（Acceleration data）等が登録される。また、車載用マイクロコントローラ２０は、データの共有、通信、暗号化をつかさどるコミュニケータ２００を備えている。なお、車載用マイクロコントローラ２０は、データベースＤＢ＿Ｃ以外のデータベースを備えていても良い。
【００１６】
車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０は、ＬＡＮ（Local Area Network）、ＰＣＩ（Peripheral Component Interconnect）  Ｅｘｐｒｅｓｓ、ＳＰＩ（Serial Peripheral Interface）、ＣＡＮ（Controller Area Network）等を介して、互いに接続されており、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃの内容を示すデータベース情報（database info）を互いに通信する。このようにして、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃのうちの任意の２つ以上のデータベース間で、データを共有する。
【００１７】
なお、図１は、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０間で行うデータ通信の流れを説明するために、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０の構成の一部を簡略化して図示している。そのため、以下、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０の詳細なハードウェア構成について説明する。
【００１８】
＜車載システム用ＳｏＣのハードウェア構成＞
続いて、図２を参照して、本実施の形態に係る車載システム用ＳｏＣ１０Ａのハードウェア構成について説明する。
【００１９】
図２に示されるように、本実施の形態に係る車載システム用ＳｏＣ１０Ａは、シリアルＩ／Ｆ１０２Ａ、ＬＡＮ  Ｉ／Ｆ１０３Ａ、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｉ／Ｆ１０４Ａ、ＣＡＮ  Ｉ／Ｆ１０５Ａ、セキュアエンジン（Secure Engine）１０６Ａ、画像取り込み部（Video Capture）１０７Ａ、イメージプロセッサ（Image Processor）１０８Ａ、グラフィックプロセッサ（Graphics Processor）１０９Ａ、メモリ（Memory）１１０Ａ、フラッシュメモリ（Flash Memory）１１１Ａ、及びＣＰＵ（Central Processing Unit）１１２Ａを備えている。
【００２０】
メモリ１１０Ａは、データベースＤＢ＿Ａ等を記憶する。
フラッシュメモリ１１１Ａは、ＣＰＵ１１２Ａ、画像取り込み部１０７Ａ、イメージプロセッサ１０８Ａ、グラフィックプロセッサ１０９Ａ、及びコミュニケータ１００Ａの機能を実現するためのプログラムを記憶する。ＣＰＵ１１２Ａ、画像取り込み部１０７Ａ、イメージプロセッサ１０８Ａ、グラフィックプロセッサ１０９Ａ、及びコミュニケータ１００Ａは、フラッシュメモリ１１１Ａに記憶されたプログラムを実行することで、自身の機能を実現する。
【００２１】
画像取り込み部１０７Ａは、４個のセンサカメラ３１Ａにそれぞれ対応して４個設けられており、対応するセンサカメラ３１Ａで撮影されたカメラ画像を取り込むための処理を行う。
イメージプロセッサ１０８Ａは、画像取り込み部１０７Ａで取り込まれたカメラ画像に対して、リアルタイムに画像認識処理を行い、画像認識処理の結果をカメラ情報としてセンサ層（Sensor Layer）１０１Ａを介してデータベースＤＢ＿Ａに書き込む。
【００２２】
グラフィックプロセッサ１０９Ａは、画像取り込み部１０７Ａ及びイメージプロセッサ１０８Ａの処理結果や、地図情報等を不図示のディスプレイに表示する表示処理を行う。
コミュニケータ１００Ａは、外部との間でデータの通信を行うと共に、データベースＤＢ＿Ａのデータの読み書きを行う。また、コミュニケータ１００Ａは、セキュアエンジン１０６Ａを使用して、外部と通信するデータや、データベースＤＢ＿Ａに読み書きするデータに対する暗号処理／復号処理を行う。
【００２３】
ＬＡＮ  Ｉ／Ｆ１０３Ａは、ＬＡＮ通信用のインターフェースである。ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｉ／Ｆ１０４Ａは、ＰＣＩ  Ｅｘｐｒｅｓｓ通信用のインターフェースである。ＣＡＮ  Ｉ／Ｆ１２０は、ＣＡＮ通信用のインターフェースである。シリアルＩ／Ｆ１０２Ａは、シリアル通信用のシリアルインターフェースであり、例えば、ＳＰＩ等のシリアルインターフェースである。
ＣＰＵ１１２Ａは、車載システム用ＳｏＣ１０Ａ全体を制御する。
【００２４】
なお、車載システム用ＳｏＣ１０Ｂのハードウェア構成も、車載システム用ＳｏＣ１０Ａと同様である。すなわち、図３に示されるように、車載システム用ＳｏＣ１０Ｂは、シリアルＩ／Ｆ１０２Ｂ、ＬＡＮ  Ｉ／Ｆ１０３Ｂ、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｉ／Ｆ１０４Ｂ、ＣＡＮ  Ｉ／Ｆ１０５Ｂ、セキュアエンジン１０６Ｂ、画像取り込み部１０７Ｂ、イメージプロセッサ１０８Ｂ、グラフィックプロセッサ１０９Ｂ、メモリ１１０Ｂ、フラッシュメモリ１１１Ｂ、及びＣＰＵ１１２Ｂを備えている。
【００２５】
＜車載用マイクロコントローラのハードウェア構成＞
続いて、図４を参照して、本実施の形態に係る車載用マイクロコントローラ２０のハードウェア構成について説明する。図４に示されるように、本実施の形態に係る車載用マイクロコントローラ２０は、シリアルＩ／Ｆ２０２、ＬＡＮ  Ｉ／Ｆ２０３、ＣＡＮ  Ｉ／Ｆ２０４、セキュアエンジン２０５、ＤＳＰ（Digital Signal Processor）２０６、ＡＤコンバータ（AD Converter）２０７、タイマ（Timer）２０８、メモリ２０９、フラッシュメモリ２１０、及びＣＰＵ２１１を備えている。
【００２６】
メモリ２０９は、データベースＤＢ＿Ｃ等を記憶する。
フラッシュメモリ２１０は、ＣＰＵ２１１、ＤＳＰ２０６、センサ層２０１、及びコミュニケータ２００の機能を実現するためのプログラムを記憶する。ＣＰＵ２１１、ＤＳＰ２０６、センサ層２０１、及びコミュニケータ２００は、フラッシュメモリ２１０に記憶されたプログラムを実行することで、自身の機能を実現する。
【００２７】
ＡＤコンバータ２０７は、２個のレーダセンサ４１のレーダデータ及び加速度センサ４２の加速度データを、アナログ値からデジタル値に変換する。
ＤＳＰ２０６は、ＡＤコンバータ２０７でＡＤ変換されたレーダデータ及び加速度データを処理し、処理したデータをセンサ層２０１を介してデータベースＤＢ＿Ｃに書き込む。また、ＤＳＰ２０６は、レーダデータを基に、車両の前後の物体を認識し、認識した物体をセンサ層２０１を介してデータベースＤＢ＿Ｃに書き込むことも行う。
【００２８】
ＣＰＵ２１１は、車載用マイクロコントローラ２０全体を制御する。例えば、ＣＰＵ２１１は、速度制御、ステアリング制御等の車両制御を行う。また、ＣＰＵ２１１は、車両制御を行う際に、タイマ２０８を用いて、エンジン、モータ等に対する制御用信号(ＰＷＭ（Pulse Width Modulation）信号等)を生成する。
【００２９】
なお、シリアルＩ／Ｆ２０２、ＬＡＮ  Ｉ／Ｆ２０３、ＣＡＮ  Ｉ／Ｆ２０４は、図２に示されるシリアルＩ／Ｆ１０２Ａ、ＬＡＮ  Ｉ／Ｆ１０３Ａ、ＣＡＮ  Ｉ／Ｆ１０５Ａと機能が同様であるため、説明を省略する。
【００３０】
＜車載システムのソフトウェアスタック＞
続いて、図５を参照して、本実施の形態に係る車載システム１のソフトウェアスタックについて説明する。
図５に示されるように、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０は、ソフトウェアスタックの構成については同様である。
【００３１】
図５において、通信ドライバ（Communication Driver）、ＯＳ（Operating System）、アプリケーション層／ミドルウェア層（Application/Middleware）がソフトウェア層（Software Layer）に相当し、通信ドライバとアプリケーション層／ミドルウェア層との間に配置されるのが、セーフティプラットフォーム（Safety Platform）に相当する。
【００３２】
＜センサのデータをデータベースに書き込む動作＞
続いて、図６及び図７を参照して、本実施の形態に係る車載システム１において、センサのセンサデータをデータベースに書き込む動作について説明する。データベースへのセンサのセンサデータの書き込みは、センサ層１０１Ａ，１０１Ｂ，２０１で行われる。図６及び図７は、車載用マイクロコントローラ２０において、ＤＳＰ２０６に配置されるセンサ層２０１が、レーダセンサ４１のレーダデータ及び加速度センサ４２の加速度データをデータベースＤＢ＿Ｃに書き込む動作の例を示している。
【００３３】
図６は、定期的に行われる定周期処理において、レーダセンサ４１のレーダデータをデータベースＤＢ＿Ｃに書き込むと共に、加速度センサ４２の加速度データをデータベースＤＢ＿Ｃに書き込む例を示している。
【００３４】
図６の例では、レーダセンサ４１は、レーダデータを定期的に出力しており、レーダデータは、ＬＡＮ  Ｉ／Ｆ２０３のバッファ（Buffer）に格納されている。一方、加速度センサ４２は、加速度データを不定期に出力する。そのため、加速度データは、ＣＡＮ  Ｉ／Ｆ２０４のバッファに格納されていない。
【００３５】
センサ層２０１は、定周期処理において、ＬＡＮ  Ｉ／Ｆ２０３にレーダデータのリード要求を出力する（Ｓ１１）。このとき、ＬＡＮ  Ｉ／Ｆ２０３のバッファには、レーダデータが格納されている。そのため、ＬＡＮ  Ｉ／Ｆ２０３に配置された通信ドライバは、ＬＡＮ  Ｉ／Ｆ２０３のバッファに格納されているレーダデータをセンサ層２０１に出力する（Ｓ１２）。センサ層２０１は、上位層であるアプリケーション層にレーダデータを出力すると共に（Ｓ１３）、データベースＤＢ＿Ｃにレーダデータを書き込み、データベースＤＢ＿Ｃを更新する（Ｓ１４）。
【００３６】
また、センサ層２０１は、定周期処理において、ＣＡＮ  Ｉ／Ｆ２０４に加速度データのリード要求を出力する（Ｓ２１）。しかし、このとき、ＣＡＮ  Ｉ／Ｆ２０４のバッファには、加速度データが格納されていない。そのため、ＣＡＮ  Ｉ／Ｆ２０４に配置された通信ドライバは、加速度センサ４２に加速度データのリード要求を出力する（Ｓ２２）。これを受けて、加速度センサ４２は、加速度データをＣＡＮ  Ｉ／Ｆ２０４に出力する（Ｓ２３）。通信ドライバは、加速度データを、ＣＡＮ  Ｉ／Ｆ２０４のバッファに一時的に格納し、センサ層２０１に出力する（Ｓ２４）。センサ層２０１は、上位層であるアプリケーション層に加速度データを出力すると共に（Ｓ２５）、データベースＤＢ＿Ｃに加速度データを書き込み、データベースＤＢ＿Ｃを更新する（Ｓ２６）。
【００３７】
図７は、イベントとして行われる割り込み処理において、レーダセンサ４１のレーダデータをデータベースＤＢ＿Ｃに書き込む例を示している。
【００３８】
図７の例では、ＬＡＮ  Ｉ／Ｆ２０３に配置された通信ドライバは、レーダセンサ４１からレーダデータが出力されたタイミングで（Ｓ３１）、センサ層２０１に割込通知を出力している（Ｓ３２）。このＳ３２においては、通信ドライバは、ＬＡＮ  Ｉ／Ｆ２０３のバッファにレーダデータを一時的に格納し、レーダデータを割込通知と共にセンサ層２０１に出力する。センサ層２０１は、上位層であるアプリケーション層に割込通知及びレーダデータを出力すると共に（Ｓ３３）、データベースＤＢ＿Ｃにレーダデータを書き込み、データベースＤＢ＿Ｃを更新する（Ｓ３４）。
【００３９】
このように、通信プロトコルの種類、センサの種類が相違する場合でも、その相違をセンサ層２０１が吸収する。そのため、アプリケーション層は、通信プロトコルの種類、センサの種類の相違を気にせずに、センサデータを処理することができる。
【００４０】
＜データベースの構造＞
続いて、図８〜図１０を参照して、本実施の形態に係る車載システム１におけるデータベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃの構造について説明する。なお、図８〜図１０は、車載用マイクロコントローラ２０が備えるデータベースＤＢ＿Ｃの構造を示しているが、車載システム用ＳｏＣ１０Ａ，１０Ｂが備えるデータベースＤＢ＿Ａ，ＤＢ＿Ｂの構造も、データベースＤＢ＿Ｃと同様である。データベースＤＢ＿Ｃは、フィールドリスト、履歴管理リスト、履歴データリストを保持している。図８は、フィールドリストの例を示し、図９は、履歴管理リストの例を示し、図１０は、履歴データリストの例を示している。
【００４１】
まず、図８を参照して、フィールドリストについて説明する。図８に示されるように、フィールドリストには、フィールド毎に、「フィールドデータ名」、「データサイズ」、「データ型」、「データフラグ」、「履歴数上限」、「履歴管理リストポインタ」、「共有先情報」が登録される。
【００４２】
「フィールドデータ名」は、該当するフィールドを識別する名称を示している。
「データサイズ」は、該当するフィールドのデータの１個分のサイズを示している。
「データ型」は、該当するフィールドのデータの型（タイプ）を示している。
「データフラグ」は、全部で８ビットある。１ビット目は、該当するフィールドのデータの書き込みの可又は不可を示すフラグである。２ビット目は、該当するフィールドのデータが後述の「履歴数上限」を超えた場合のふるまいを示すフラグである。“ＯｖｅｒＷｒｉｔｅ”は、データを上書きすることを示し、“Ｅｒｒｏｒ”は、データを書き込まずに、エラーを返すことを示している。３〜８ビット目は、リザーブ領域となる。
「履歴数上限」は、該当するフィールドのデータを登録できる上限数を示している。そのため、後述の履歴データリストにおける該当するフィールドのデータが登録される領域として、「データサイズ」×「履歴数上限」分の領域が確保される。
「履歴管理リストポインタ」は、後述の履歴管理リストにおける該当するフィールドの情報を参照するためのアドレスである。
「共有先情報」は、該当するフィールドのデータを共有する共有先のデータベースを識別する名称を示している。図８の例では、フィールドＦ−Ａのデータは、車載システム用ＳｏＣ１０Ａが備えるデータベースＤＢ＿Ａと共有し、フィールドＦ−Ｂ，Ｆ−Ｃのデータは、車載システム用ＳｏＣ１０Ｂが備えるデータベースＤＢ＿Ｂと共有することを示している。
【００４３】
続いて、図９を参照して、履歴管理リストについて説明する。図９に示されるように、履歴管理リストには、フィールド毎に、「有効データ数」、「データ最終書込み位置」、「履歴データポインタ」が登録される。
【００４４】
「有効データ数」は、該当するフィールドのデータのうち使用可能なデータの個数を示している。
「データ最終書込み位置」は、該当するフィールドのデータのうち最後に登録されたデータの位置（アドレス等）を示している。
「履歴データポインタ」は、後述の履歴データリストにおける該当するフィールドのデータが登録されている先頭アドレスを示している。
【００４５】
続いて、図１０を参照して、履歴データリストについて説明する。図１０に示されるように、履歴データリストには、「データ本体」、「データ書き込み時間」が登録される。
「データ本体」は、実データを示している。
「データ書き込み時刻」は、実データが登録された時刻を示している。ここでは、タイムスタンプ値とされている。
【００４６】
ここで、図８〜図１０に示される、フィールドリスト、履歴管理リスト、履歴データリストの内容について、具体例を挙げて、より詳細に説明する。
図８において、「履歴数上限」は、フィールドＦ−Ａが“３”、フィールドＦ−Ｂが“１００”、フィールドＦ−Ｃが“３００”である。そのため、図１０において、一番上から３個分が、フィールドＦ−Ａのデータが登録される領域として定義され、次の１００個分が、フィールドＦ−Ｂのデータが登録される領域として定義され、次の３００個分が、フィールドＦ−Ｃのデータが登録される領域として定義される。従って、一番上から３個分のデータがフィールドＦ−Ａのデータとなり、その下の１００個分のデータがフィールドＦ−Ｂのデータとなり、その下の３００個分のデータがフィールドＦ−Ｃのデータとなる。
【００４７】
また、図８において、フィールドＦ−Ａは、「データサイズ」が“２”、「履歴数上限」が“３”である。そのため、フィールドＦ−Ａのデータを登録するための領域として、２（データサイズ）×３（履歴数上限）分の領域が確保される。
【００４８】
また、図８において、フィールドＦ−Ａは、「データフラグ」の２ビット目が“ＯｖｅｒＷｒｉｔｅ”である。そのため、フィールドＦ−Ａの４個目以降のデータについては、最も古いデータを破棄して、上書きしていく。
【００４９】
また、図９において、フィールドＦ−Ａは、「有効データ数」が“３”である。そのため、図１０において、一番上から３個分のフィールドＦ−Ａのデータは、全て使用可能であることを示している。
【００５０】
また、図１０において、フィールドＦ−Ａのデータのうち最後に登録されたデータは“２２”である。そのため、図９において、フィールドＦ−Ａの「データ最終書込み位置」は、データ“２２”の位置を示すものになる。
【００５１】
また、図１０において、フィールドＦ−Ａのデータは、一番上から３個分のデータなる。そのため、図９において、フィールドＦ−Ａの「履歴データポインタ」は、先頭のデータ“２３”が登録されているアドレスを示すものになる。
【００５２】
＜データベースの共有＞
続いて、本実施の形態に係る車載システム１におけるデータベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃを共有する方法について説明する。
図８〜図１０の例では、車載用マイクロコントローラ２０が備えるデータベースＤＢ＿Ｃにおいて、フィールドＦ−Ａのデータを共有する共有先として、車載システム用ＳｏＣ１０Ａが備えるデータベースＤＢ＿Ａが登録されている。
【００５３】
そのため、車載用マイクロコントローラ２０のコミュニケータ２００は、データベースＤＢ＿Ｃの履歴データリストにおけるフィールドＦ−Ａのデータが更新されると、データベースＤＢ＿Ｃのフィールドリストを参照し、フィールドＦ−Ａのデータの共有先がデータベースＤＢ＿Ａであることを確認する。そして、コミュニケータ２００は、データベースＤＢ＿Ａを備える車載システム用ＳｏＣ１０Ａに対し、フィールドＦ−Ａを通知する共有リクエストを送信し、続いて、フィールドＦ−Ａの更新後の全データを送信する。例えば、図１０の例では、履歴データリストにおける、一番上から３個分のフィールドＦ−Ａの「データ本体」、「データ書込み時間」を全て送信する。
【００５４】
車載システム用ＳｏＣ１０Ａに配置されたコミュニケータ１００Ａは、車載用マイクロコントローラ２０から、共有リクエストに続いて、更新後のフィールドＦ−Ａのデータを受信すると、データベースＤＢ＿Ａのフィールドリストを参照し、履歴データリストにおけるフィールドＦ−Ａのデータを登録する領域を確認する。そして、コミュニケータ１００Ａは、履歴データリストにおけるフィールドＦ−Ａのデータを登録する領域に、フィールドＦ−Ａの更新後のデータを登録し、また、履歴管理リストにおけるフィールドＦ−Ａの情報を更新する。
【００５５】
これにより、データベースＤＢ＿Ｃ及びデータベースＤＢ＿Ａは、フィールドＦ−Ａのデータを共有することができる。
【００５６】
なお、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０に配置されたコミュニケータ１００Ａ，１００Ｂ，２００は、データの更新がなくても、共有リクエストを送信しても良い。例えば、ＣＰＵ１１２Ａ，１１２Ｂ，２１１に配置されたアプリケーション層からのリクエストを受けて、共有リクエストを送信することが考えられる。
【００５７】
また、共有リクエストは、共有するフィールドがフィールドリスト及び履歴管理リストに既に設定されているデータベース、すなわち、そのフィールドのデータを既に共有しているデータベースに向けて送信することに限らず、そのフィールドのデータを新たに共有するデータベースに向けて送信しても良い。この場合、コミュニケータ１００Ａ，１００Ｂ，２００は、フィールドリストにおける共有するフィールドの情報を先に送信し、共有するフィールドを設定させた後、共有リクエストを送信すれば良い。また、共有するフィールドを設定させるときには、履歴管理リストにおける共有するフィールドの情報を送信しても良い。これにより、新たなデータベースとの間でもフィールドのデータを共有することができる。
【００５８】
なお、図８〜図１０の例では、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃのデータを、フィールド単位で共有していたが、データベースのデータは、データベース単位で共有することもできる。
【００５９】
続いて、図１１及び図１２を参照して、データベースのデータを、データベース単位で共有する方法について説明する。
ここでは、図１１に示されるように、車載システム用ＳｏＣ１０Ａは、データベースＤＢ＿Ａの他に、データベースＤＢ＿Ｄ，ＤＢ＿Ｇを備えているものとする。また、車載システム用ＳｏＣ１０Ｂは、データベースＤＢ＿Ｂの他に、データベースＤＢ＿Ｅ，ＤＢ＿Ｈを備えているものとする。また、車載用マイクロコントローラ２０は、データベースＤＢ＿Ｃの他に、データベースＤＢ＿Ｆ，ＤＢ＿Ｉを備えているものとする。
【００６０】
また、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃは、グループＡにグルーピングされており、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃのデータは、データベース単位で共有するものとする。また、データベースＤＢ＿Ｄ，ＤＢ＿Ｅ，ＤＢ＿Ｆは、グループＢにグルーピングされており、データベースＤＢ＿Ｄ，ＤＢ＿Ｅ，ＤＢ＿Ｆのデータは、データベース単位で共有するものとする。
【００６１】
この場合、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０は、図１２に示されるように、グループ毎に、該当するグループのグループ名と、該当するグループにグルーピングされたデータベースのデータベース名と、が登録されたグループ情報を保持する。詳細には、グループ情報は、データベース層が保持する。
【００６２】
例えば、車載用マイクロコントローラ２０に配置されたコミュニケータ２００は、データベースＤＢ＿Ｃのデータを共有する場合、グループ情報を参照し、データベースＤＢ＿Ｃと同じグループＡにグルーピングされたデータベースＤＢ＿Ａ，ＤＢ＿Ｂを確認する。そして、コミュニケータ２００は、データベースＤＢ＿Ａ，ＤＢ＿Ｂをそれぞれ備える車載システム用ＳｏＣ１０Ａ，１０Ｂに対し、データベースＤＢ＿Ｃを通知する共有リクエストを送信し、続いて、データベースＤＢ＿Ｃの全データを送信する。
【００６３】
車載システム用ＳｏＣ１０Ａに配置されたコミュニケータ１００Ａは、車載用マイクロコントローラ２０から、共有リクエストに続いて、データベースＤＢ＿Ｃの全データを受信すると、グループ情報を参照し、データベースＤＢ＿Ｃと同じグループＡにグルーピングされたデータベースＤＢ＿Ａを確認する。そして、コミュニケータ１００Ａは、データベースＤＢ＿Ｃの全データを、データベースＤＢ＿Ａに登録する。同様に、車載システム用ＳｏＣ１０Ｂにおいても、データベースＤＢ＿Ｃの全データを、データベースＤＢ＿Ｂに登録する。
【００６４】
これにより、グループＡにグルーピングされたデータベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃのデータは、データベース単位で共有することができる。なお、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃのデータを、データベース単位で共有するタイミングは、例えば、フィールド単位の共有の場合と同様に、データベースを更新したタイミング等である。ただし、これに限定されるものではない。
【００６５】
なお、図１２の例では、データベースＤＢ＿Ｇ，ＤＢ＿Ｈのデータは、フィールド単位で共有する。フィールド単位の共有方法は、図８〜図１０に示された方法と同様である。すなわち、データベースＤＢ＿Ｇ，ＤＢ＿Ｈは、フィールドリストにおける共有するフィールドの共有先情報として、互いに相手のデータベースが登録されていれば良い。
【００６６】
また、データベースのデータを、データベース単位で共有する方法は、図８〜図１０に示された方法でも実現可能である。すなわち、あるデータベースのフィールドリストにおける全てのフィールドの共有先情報には、そのデータベースと同じグループにグルーピングされた全てのデータベースの情報を登録しておく。これによっても、データベース単位でデータを共有する構成は実現可能である。しかし、この方法は、データを共有する際に、そのデータのフィールドを判別し、そのフィールドの共有先情報を参照しなければならず、データの共有に時間が掛かる。
【００６７】
これに対して、上記のグループ情報を用いる方法は、データのフィールドを判別する必要がないため、データの共有に掛かる時間の短縮化を図ることができる。
【００６８】
＜時刻同期＞
本実施の形態に係る車載システム１は、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０が、データベースに登録されたデータを利用しつつ、連携して処理を行いながら、自動運転を行うことを想定している。そのため、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０間で時刻を同期させることが必要である。
【００６９】
本実施の形態においては、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０のいずれか１つが制御主体となって、他の装置との間で時刻同期処理を行うものとする。
【００７０】
ここで、図１３を参照して、本実施の形態に係る車載システム１における時刻同期を行う方法について説明する。なお、図１３は、車載システム用ＳｏＣ１０Ａが制御主体になる場合の方法を示しているが、車載システム用ＳｏＣ１０Ｂや車載用マイクロコントローラ２０が制御主体になる場合の方法も同様である。
【００７１】
図１３に示されるように、車載システム用ＳｏＣ１０Ａに配置されたコミュニケータ１００Ａは、自身が制御主体となって時刻同期処理を行う旨の通知を、車載システム用ＳｏＣ１０Ｂ及び車載用マイクロコントローラ２０に対して行う（Ｓ４１）。この通知は、ユニキャストで行っても良いし、ブロードキャストで行っても良い。
【００７２】
その後に、車載システム用ＳｏＣ１０Ａに配置されたコミュニケータ１００Ａは、Ｓ４１の通知に対する応答を、車載システム用ＳｏＣ１０Ｂ及び車載用マイクロコントローラ２０から受信すると（Ｓ４２）、制御主体として確定される。
【００７３】
以降、車載システム用ＳｏＣ１０Ａに配置されたコミュニケータ１００Ａは、一定の同期間隔で、車載システム用ＳｏＣ１０Ｂ及び車載用マイクロコントローラ２０との間で、時刻同期処理を行う（Ｓ４３）。これにより、車載システム用ＳｏＣ１０Ａ，１０Ｂ及び車載用マイクロコントローラ２０間で時刻を同期させることができる。なお、時刻同期処理の方法は、特に限定されず、周知の時刻同期処理を行えば良い。
【００７４】
＜車載システムの具体的な構成＞
上述したように、本実施の形態に係る車載システム１は、データベースの共有及び時刻同期が可能であるため、様々な機能を実現することが可能である。そこで、図１４を参照して、本実施の形態に係る車載システム１により実現可能な車載システムの具体的な構成について説明する。
【００７５】
図１４に示されるように、車載システム用ＳｏＣ１０Ａは、データベースＤＢ＿Ａを備える他、物体認識用プロセッサ（Object recognition processor）１２１Ａ及び物体検出機能（Object detection function）部１２２Ａを備えている。物体認識用プロセッサ１２１Ａ及び物体検出機能部１２２Ａは、イメージプロセッサ１０８Ａで実現される
【００７６】
車載システム用ＳｏＣ１０Ｂは、データベースＤＢ＿Ｂを備える他、イメージキャプチャ機能（Image capture function）部１２３Ｂ、白線検出機能（White line detection function）部１２４Ｂ、車両コントローラ（Vehicle controller）１２５Ｂを備えている。イメージキャプチャ機能部１２３Ｂ及び白線検出機能部１２４Ｂは、イメージプロセッサ１０８Ｂで実現され、車両コントローラ１２５Ｂは、ＣＰＵ１１２Ｂで実現される。
【００７７】
車載用マイクロコントローラ２０は、データベースＤＢ＿Ｃを備える他、ステアリングコントローラ（Steering controller）２２１、速度コントローラ（Speed controller）２２２、レーダデータ取得機能（radar data obtain function）部２２３を備えている。ステアリングコントローラ２２１及び速度コントローラ２２２は、ＣＰＵ２１１及びタイマ２０８により実現される。レーダデータ取得機能部２２３は、ＤＳＰ２０６により実現される。
【００７８】
以下、図１４に示される各構成要素の機能について説明する。ここでは、データベースＤＢ＿Ａ，ＤＢ＿Ｂ，ＤＢ＿Ｃは、データベース単位でデータを共有するものとする。
【００７９】
イメージキャプチャ機能部１２３Ｂは、４個のセンサカメラ３１Ｂで撮影されたカメラ画像をキャプチャし、キャプチャした画像データ（Image data）をデータベースＤＢ＿Ｂに書き込む。
【００８０】
白線検出機能部１２４Ｂは、イメージキャプチャ機能部１２３Ｂでキャプチャされた画像データを基に、道路上の白線を検出し、白線の検出結果（White line detection result）をデータベースＤＢ＿Ｂに書き込む。
【００８１】
物体検出機能部１２２Ａは、データベースＤＢ＿Ａから、イメージキャプチャ機能部１２３Ｂでキャプチャされた画像データを読み出し、読み出した画像データを基に、物体認識用プロセッサ１２１Ａと協働して、車両周囲の物体（人、他車両、障害物等）を認識し、物体の認識結果（Object recognition result）をデータベースＤＢ＿Ａに書き込む。
【００８２】
レーダデータ取得機能部２２３は、２個のレーダセンサ４１のレーダデータを取得し、取得したレーダデータ（Radar data）をデータベースＤＢ＿Ｃに書き込む。
【００８３】
ステアリングコントローラ２２１は、データベースＤＢ＿Ｃから、後述の車両制御情報（Vehicle control information）を読み出し、読み出した車両制御情報を基に、車両のステアリングを制御すると共に、現在のステアリングの状態を示すステアリング情報（Steering information）をデータベースＤＢ＿Ｃに書き込む。
【００８４】
速度コントローラ２２２は、データベースＤＢ＿Ｃから、後述の車両制御情報を読み出し、読み出した車両制御情報を基に、車両の速度を制御すると共に、現在の速度を示す速度情報（Speed information）をデータベースＤＢ＿Ｃに書き込む。
【００８５】
車両コントローラ１２５Ｂは、データベースＤＢ＿Ｂから、物体情報（物体の認識結果）、白線情報（白線の検出結果）、センサ情報（レーダデータ）、車両情報（ステアリング情報及び速度情報）を読み出す。そして、車両コントローラ１２５Ｂは、読み出した情報を基に、車両のステアリングや速度等を制御するための車両制御情報を生成し、生成した車両制御情報をデータベースＤＢ＿Ｂに書き込む。
【００８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００８７】
例えば、上記の実施の形態において、車載システム用ＳｏＣ及び車載用マイクロコントローラは、データベースのデータを送信するときの通信経路の情報を保持しておき、その通信経路が、故障等しておらず、使用可能である場合は、その通信経路を使用して、データベースのデータを送信しても良い。また、車載システム用ＳｏＣ及び車載用マイクロコントローラは、代替え経路の情報を保持することもできる。車載システム用ＳｏＣ及び車載用マイクロコントローラは、通信経路が故障等で使用できない場合は、代替え経路を使用して、データベースのデータを送信すれば良い。例えば、通信経路は、ＳＰＩを使用する経路とし、代替え経路は、ＬＡＮを使用する経路とする等が考えられる。
【００８８】
また、上記の実施の形態において、車載システム用ＳｏＣ及び車載用マイクロコントローラ内で様々な処理を行う各要素は、上述のように、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの各要素がハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００８９】
また、上記のプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−Ｒ／Ｗ（CD-ReWritable）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されても良い。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００９０】
ＤＢ＿Ａ〜ＤＢ＿Ｉ  データベース
１０Ａ，１０Ｂ  車載システム用ＳｏＣ
１００Ａ，１００Ｂ  コミュニケータ
１０１Ａ，１０１Ｂ  センサ層
１０２Ａ，１０２Ｂ  シリアルＩ／Ｆ
１０３Ａ，１０３Ｂ  ＬＡＮ  Ｉ／Ｆ
１０４Ａ，１０４Ｂ  ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｉ／Ｆ
１０５Ａ，１０５Ｂ  ＣＡＮ  Ｉ／Ｆ
１０６Ａ，１０６Ｂ  セキュアエンジン
１０７Ａ，１０７Ｂ  画像取り込み部
１０８Ａ，１０８Ｂ  イメージプロセッサ
１０９Ａ，１０９Ｂ  グラフィックプロセッサ
１１０Ａ，１１０Ｂ  メモリ
１１１Ａ，１１１Ｂ  フラッシュメモリ
１１２Ａ，１１２Ｂ  ＣＰＵ
１２１Ａ  物体認識用プロセッサ
１２２Ａ  物体検出機能部
１２３Ｂ  イメージキャプチャ機能部
１２４Ｂ  白線検出機能部
１２５Ｂ  車両コントローラ
２０  車載用マイクロコントローラ
２００  コミュニケータ
２０１  センサ層
２０２  シリアルＩ／Ｆ
２０３  ＬＡＮ  Ｉ／Ｆ
２０４  ＣＡＮ  Ｉ／Ｆ
２０５  セキュアエンジン
２０６  ＤＳＰ
２０７  ＡＤコンバータ
２０８  タイマ
２０９  メモリ
２１０  フラッシュメモリ
２１１  ＣＰＵ
２２１  ステアリングコントローラ
２２２  速度コントローラ
２２３  レーダデータ取得機能部
３１Ａ，３１Ｂ  センサカメラ
４１  レーダセンサ
４２  加速度センサ
【図１】
2019105964.tif 000003
【図２】
2019105964.tif 000004
【図３】
2019105964.tif 000005
【図４】
2019105964.tif 000006
【図５】
2019105964.tif 000007
【図６】
2019105964.tif 000008
【図７】
2019105964.tif 000009
【図８】
2019105964.tif 000010
【図９】
2019105964.tif 000011
【図１０】
2019105964.tif 000012
【図１１】
2019105964.tif 000013
【図１２】
2019105964.tif 000014
【図１３】
2019105964.tif 000015
【図１４】
2019105964.tif 000016