JP2023161698A - 電子制御装置 - Google Patents
電子制御装置 Download PDFInfo
- Publication number
- JP2023161698A JP2023161698A JP2022072189A JP2022072189A JP2023161698A JP 2023161698 A JP2023161698 A JP 2023161698A JP 2022072189 A JP2022072189 A JP 2022072189A JP 2022072189 A JP2022072189 A JP 2022072189A JP 2023161698 A JP2023161698 A JP 2023161698A
- Authority
- JP
- Japan
- Prior art keywords
- data
- electronic control
- communication
- unit
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 421
- 230000002093 peripheral effect Effects 0.000 claims abstract description 144
- 238000013500 data storage Methods 0.000 claims abstract description 120
- 238000004891 communication Methods 0.000 claims description 345
- 238000002360 preparation method Methods 0.000 claims description 94
- 238000000034 method Methods 0.000 claims description 77
- 230000008569 process Effects 0.000 claims description 61
- 238000001514 detection method Methods 0.000 claims description 36
- 230000005540 biological transmission Effects 0.000 claims description 27
- 238000007726 management method Methods 0.000 claims description 27
- 230000004913 activation Effects 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 46
- 238000005516 engineering process Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 3
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000276498 Pollachius virens Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】ソフトウェアプログラムの開発コストの削減可能な電子制御装置を提供する。【解決手段】電子制御装置100は、アプリケーション処理を行うアプリケーション処理部22を有する演算処理部1A,1Bと、演算処理部1A,1Bで処理されるデータを保存するデータ保存部2Aと、データ保存部2Aから読み出したデータを他の電子制御装置に送信し、又は他の電子制御装置からデータを受信するペリフェラル3と、を備える。演算処理部1A,1Bがアプリケーション処理のためにデータ保存部2Aにデータを入出力する第1タイミングと、演算処理部1A,1Bがデータ保存部2Aから読み出したデータをペリフェラル3に渡して、ペリフェラル3が他の電子制御装置にデータを送信する第2タイミングとが予め固定される。【選択図】図2
Description
本発明は、電子制御装置に関する。
車両に複数の電子制御装置(ECU:Electronic Control Unit)が搭載されるようになり、電子制御装置の開発コストを低減することが求められている。そこで、電子制御装置の開発コストを低減するため特許文献1及び2に記載された技術が知られている。特許文献1には、「ドライバは、複数のアプリケーションプログラムに対応した複数のインターフェース部と、複数のアプリケーションプログラムからの指示を実行する共通処理部と、を有し、複数のアプリケーションプログラム間の通信は、ドライバの制御下で行われる」と記載されている。
また、特許文献2には、「外部機器と接続する外部バスから通信フレームに載せて送られてくるデータを受信データとし、その受信データが少なくとも格納されるメッセージボックスと、当該電子制御装置の内部バスを介して転送されてくる受信データの書込み及び読出しが可能な複数の格納領域を有する内部メモリとを備える。」と記載されている。
特許文献1に開示された技術では、複数のアプリケーションプログラムを搭載した電子制御装置に関して、ドライバの構成要素としてアプリケーションプログラムの各々が使用するバッファが設置される。このバッファにより、ペリフェラル(例えばCAN(Controller Area Network)コントローラやCANトランシーバ)を複数個用意しなくても、各アプリケーションプログラムが1個のペリフェラルを共有する構成としている。
しかしながら、複数のアプリケーションプログラムがペリフェラルを共有する場合と、ペリフェラルを共有しない場合とを比較すると、各アプリケーションプログラムがデータを生成してから該データがペリフェラルに到達するまでのタイミングが異なっている。このため、複数のアプリケーションプログラムがペリフェラルを共有する場合と、共有しない場合で電子制御装置の振る舞い(例えばCANメッセージの送信タイミング及び送信の順序)が変化する。この結果、変化した電子制御装置の動作の検証、及びデータの入出力タイミングの再設計にコストを要していた。
特許文献2に開示された技術では、CPU(Central Processing Unit)が制御対象機器を制御するための処理を行う状況において、通信処理の一部をDMA(Direct Memory Access)コントローラが代替する構成としたものである。しかしながら、一般にCPUとDMAコントローラでは処理速度が異なる。このため、従来、CPUで実行していた処理をDMAコントローラに代替すると、代替の前後でアプリケーション処理及び通信処理を含むCPUのスケジューリングが変化する。この結果、特許文献2に開示された技術では、特許文献1に開示された技術と同様に、電子制御装置の動作の検証、及びデータのタイミングの再設計にコストを要していた。
本発明はこのような状況に鑑みて成されたものであり、ソフトウェアプログラムの開発コストの削減を目的とする。
本発明に係る電子制御装置は、アプリケーション処理を行うアプリケーション処理部を有する演算処理部と、演算処理部で処理されるデータを保存するデータ保存部と、データ保存部から読み出したデータを他の電子制御装置に送信し、又は他の電子制御装置からデータを受信するペリフェラルと、を備え、演算処理部がアプリケーション処理のためにデータ保存部にデータを入出力する第1タイミングと、演算処理部がデータ保存部から読み出したデータをペリフェラルに渡して、ペリフェラルが他の電子制御装置にデータを送信する第2タイミングとが予め固定される。
本発明によれば、第1及び第2タイミングが予め固定されるので、ソフトウェアプログラムの開発コストを削減することが可能となる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
[第1の実施形態]
以下に説明する、本発明の第1の実施形態は、電子制御装置及び車両制御装置に本発明を適用したものであって、特に、ネットワークに接続され、車両内外の他の電子制御装置(ECU)との間で通信を行うものに関する。第1の実施形態においては、カメラから取得した画像データを用いて、ステアリング、アクセル及びブレーキを制御する自動運転車両に搭載される車両制御装置を例に挙げて、電子制御装置及び車両制御装置の構成例及び動作例を説明する。ただし、自動運転車両に限らず、自動運転を行わない車両にも本発明を適用可能である。また、ネットワークに接続され、車両内外の他の電子制御装置(ECU)との間で通信を行うように構成されたリアルタイムシステムに対しても本発明を適用可能である。例えば、ロボット、建設機械、自律フォークリフト等のCPUがマルチコアで構成され、リアルタイムでソフトウェアプログラムが稼働する製品に第1の実施形態に係る電子制御装置及び車両制御装置を適用可能である。
以下に説明する、本発明の第1の実施形態は、電子制御装置及び車両制御装置に本発明を適用したものであって、特に、ネットワークに接続され、車両内外の他の電子制御装置(ECU)との間で通信を行うものに関する。第1の実施形態においては、カメラから取得した画像データを用いて、ステアリング、アクセル及びブレーキを制御する自動運転車両に搭載される車両制御装置を例に挙げて、電子制御装置及び車両制御装置の構成例及び動作例を説明する。ただし、自動運転車両に限らず、自動運転を行わない車両にも本発明を適用可能である。また、ネットワークに接続され、車両内外の他の電子制御装置(ECU)との間で通信を行うように構成されたリアルタイムシステムに対しても本発明を適用可能である。例えば、ロボット、建設機械、自律フォークリフト等のCPUがマルチコアで構成され、リアルタイムでソフトウェアプログラムが稼働する製品に第1の実施形態に係る電子制御装置及び車両制御装置を適用可能である。
<電子制御装置の構成例>
図1は、第1の実施形態に係る電子制御装置の概略構成例を示す図である。
電子制御装置100は、CPU1、RAM2及びペリフェラル3を備える。
CPU1は、複数のコアを搭載する。説明のため、本実施形態において、コアは二つとし、第一のコア11と第二のコア12が含まれるとするが、CPU1に3つ以上のコアが搭載されている場合においても本発明は適用可能である。
図1は、第1の実施形態に係る電子制御装置の概略構成例を示す図である。
電子制御装置100は、CPU1、RAM2及びペリフェラル3を備える。
CPU1は、複数のコアを搭載する。説明のため、本実施形態において、コアは二つとし、第一のコア11と第二のコア12が含まれるとするが、CPU1に3つ以上のコアが搭載されている場合においても本発明は適用可能である。
ペリフェラル3は、電子制御装置100の外部(例えば、他の電子制御装置100)と通信を行うために使用されるハードウェアであり、内部にレジスタ31を含む。このペリフェラル3は、具体的にはCANコントローラやEthernet(登録商標)の物理層(Physical Layer)に例示されるハードウェアであって、車載ネットワーク4に接続される。複数の電子制御装置(第一の電子制御装置(カメラECU)6、第二の電子制御装置(自動運転ECU)7)は、ペリフェラル(ペリフェラル3)を通じて互いに車載ネットワーク(車載ネットワーク4)によりデータの通信を行うことができる。そして、ペリフェラル(ペリフェラル3)は、データ保存部(データ保存部2A)(図2参照)から読み出したデータを他の電子制御装置に送信し、又は他の電子制御装置からデータを受信する。
CPU1の第一のコア11又は第二のコア12がハードウェア固有の送信用のレジスタ31に値を書き込むことにより、通信データが車載ネットワーク4に送信される。逆に、ペリフェラル3が、他の電子制御装置100が送信した通信データを車載ネットワーク4から受信した場合は、ハードウェア固有の受信用のレジスタ31に値が書き込まれる。この通信データは、第一のコア11と第二のコア12が利用可能な形式に変換され、RAM2に保存される。そして、第一のコア11と第二のコア12は、RAM2からデータを読み出し、各コアが備えるアプリケーションモジュール(アプリケーションプログラムの一例)によるアプリケーション処理に用いることが可能である。
<電子制御装置の各部の内部構成例>
図2は、第1の実施形態に係る電子制御装置100の各部の内部構成例を示すブロック図である。
図2に示すブロック図では、図1に示したCPU1の第一のコア11に相当する機能部として演算処理部1Aが設けられ、第二のコア12に相当する機能部として演算処理部1Bが設けられる。また、図1に示したRAM2に相当する機能部としてデータ保存部2Aが設けられる。この演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、アプリケーション処理を行うアプリケーション処理部(アプリケーション処理部22)を有する。また、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、アプリケーション処理部(アプリケーション処理部22)と、アプリケーション処理により生成されたアプリケーションデータの通信準備を行う通信準備処理部(通信準備処理部201)を有している。
図2は、第1の実施形態に係る電子制御装置100の各部の内部構成例を示すブロック図である。
図2に示すブロック図では、図1に示したCPU1の第一のコア11に相当する機能部として演算処理部1Aが設けられ、第二のコア12に相当する機能部として演算処理部1Bが設けられる。また、図1に示したRAM2に相当する機能部としてデータ保存部2Aが設けられる。この演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、アプリケーション処理を行うアプリケーション処理部(アプリケーション処理部22)を有する。また、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、アプリケーション処理部(アプリケーション処理部22)と、アプリケーション処理により生成されたアプリケーションデータの通信準備を行う通信準備処理部(通信準備処理部201)を有している。
演算処理部1Aは、アプリケーション処理部22、通信準備処理部201、ペリフェラルアクセス部202、及びタスク起動時刻管理部26を備える。ここで、少なくとも一つの演算処理部(演算処理部1A、第一のコア11)は、通信データ保存部(通信データ保存部28)及びペリフェラル(ペリフェラル3)にアクセスするペリフェラルアクセス部(ペリフェラルアクセス部202)と、ペリフェラルアクセス部(ペリフェラルアクセス部202)とを起動する起動時刻を管理する起動時刻管理部(タスク起動時刻管理部26)を有する。
演算処理部1Aのアプリケーション処理部22は、演算処理部1Aが担う機能を実現するためのアプリケーション処理を行う。アプリケーション処理により生成されたアプリケーションデータは、アプリケーションデータ保存部23に保存される。
演算処理部1Aの通信準備処理部201は、電子制御装置100が他の電子制御装置との通信するための通信準備処理を行い、通信データを通信データ保存部28に保存する。また、通信準備処理部201は、他の電子制御装置100から受信された通信データを通信データ保存部28から読み出して、アプリケーション処理部22が利用可能な形式に変換した後、この変換後のデータをアプリケーションデータ保存部23に保存することもできる。
ペリフェラルアクセス部202は、通信データ保存部28と通信し、タスク起動時刻管理部26から入力される起動指示に従って、ペリフェラル3及び通信データ保存部28にアクセスする。
タスク起動時刻管理部26は、ペリフェラルアクセス部202の起動をタスクとした時に、ペリフェラルアクセス部202の起動時刻を管理する。そして、起動時刻管理部(タスク起動時刻管理部26)は、予め決められた内部時刻に基づいて、第1タイミングでアプリケーション処理部(アプリケーション処理部22)を動作させ、第2タイミングでペリフェラルアクセス部(ペリフェラルアクセス部202)を動作させる。後述するように、第1の実施形態に係る第1タイミングは、アプリケーション処理部(アプリケーション処理部22)がアプリケーションデータ保存部(アプリケーションデータ保存部23)に対してデータを入出力するタイミングとして固定される。また、第2タイミングは、ペリフェラルアクセス部(ペリフェラルアクセス部202)が通信データ保存部(通信データ保存部28)に保存された通信データをペリフェラル(ペリフェラル3)に転送するタイミングとして固定される。また、内部時刻は、電子制御装置100が外部から受信する時刻同期用の信号により補正される。このため、複数の電子制御装置100の内部時刻が同期する。
演算処理部1Bは、アプリケーション処理部22、及び通信準備処理部201を備える。
演算処理部1Bのアプリケーション処理部22は、演算処理部1Bが担う機能を実現するためのアプリケーション処理を行う。アプリケーション処理により生成されたアプリケーションデータは、アプリケーションデータ保存部23に保存される。
演算処理部1Bの通信準備処理部201は、電子制御装置100が他の電子制御装置との通信するための通信準備処理を行い、通信データを通信データ保存部28に保存する。演算処理部1Bの通信準備処理部201の処理は、演算処理部1Aの通信準備処理部201の処理と同様である。
演算処理部1Bのアプリケーション処理部22は、演算処理部1Bが担う機能を実現するためのアプリケーション処理を行う。アプリケーション処理により生成されたアプリケーションデータは、アプリケーションデータ保存部23に保存される。
演算処理部1Bの通信準備処理部201は、電子制御装置100が他の電子制御装置との通信するための通信準備処理を行い、通信データを通信データ保存部28に保存する。演算処理部1Bの通信準備処理部201の処理は、演算処理部1Aの通信準備処理部201の処理と同様である。
データ保存部(データ保存部2A)は、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)で処理されるデータを保存する。このデータ保存部(データ保存部2A)は、アプリケーションデータを保存するアプリケーションデータ保存部(アプリケーションデータ保存部23)と、通信準備処理部(通信準備処理部201)により生成された通信データを保存する通信データ保存部(通信データ保存部28)とを有している。
アプリケーションデータ保存部23は、演算処理部1A,1Bのアプリケーション処理部22で処理されたアプリケーションデータを保存する。アプリケーションデータ保存部(アプリケーションデータ保存部23)は、それぞれのアプリケーション処理部(アプリケーション処理部22)がアプリケーション処理の途中のデータを一時的に保存する領域として、処理を実行しているアプリケーション処理部(アプリケーション処理部22)だけが使用するローカル領域(ローカル領域23a)を有する。ローカル領域23aは、図1に示したRAM2の内部に設けられる領域である。ローカル領域23aに保存されるデータは、各アプリケーション処理部22だけが個別にアクセス可能であるため、他のアプリケーション処理部22により変更されない。
また、アプリケーションデータ保存部(アプリケーションデータ保存部23)は、アプリケーション処理部(アプリケーション処理部22)が処理を完了した結果のデータを保存し、他のアプリケーション処理部(アプリケーション処理部22)にデータを使用可能に公開するグローバル領域(グローバル領域23b)を有する。グローバル領域23bは、RAM2に設けられる領域である。グローバル領域23bに保存されるデータは、各アプリケーション処理部22が相互にアクセス可能であり、データを利用することができる。このため、アプリケーション処理部(アプリケーション処理部22)は、第1タイミングでグローバル領域(グローバル領域23b)にアクセスする。また、アプリケーションデータ保存部23のグローバル領域23bに保存されたアプリケーションデータは、演算処理部1A,1Bの通信準備処理部201が読み出し可能である。
後述する図8、図9、図13、図14に示すデータ取得タスク24がローカル領域23a又はグローバル領域23bからデータを読み出すことが可能である。また、データ公開タスク25がグローバル領域23bにデータを書き込むことが可能である。ローカル変数やグローバル変数はコンパイラによって区別され、RAM2の内部で、ローカル変数がローカル領域23aに配置され、グローバル変数がグローバル領域23bに配置される。RAM2のどの領域がローカル領域23aでどの領域がグローバル領域23bかは電子制御装置100に依存する。
通信データ保存部28は、演算処理部1A,1Bの通信準備処理部201で処理された通信データを保存する。通信データ保存部28に保存された通信データは、ペリフェラルアクセス部202により読み出し可能である。
ペリフェラル3は、タスク起動時刻管理部26により起動されたタイミングでペリフェラルアクセス部202から出力されたデータを、車載ネットワーク4(以下、バスとも呼ぶ)を介して他の電子制御装置に送信する。また、ペリフェラル3は、車載ネットワーク4を介して他の電子制御装置から受信したデータをペリフェラルアクセス部202に出力する。タスク起動時刻管理部26により起動されたタイミングでペリフェラルアクセス部202がペリフェラル3から取得した通信データは、通信データ保存部28に保存される。その後、演算処理部1A,1Bの通信準備処理部201が通信データ保存部28から通信データを取得し、アプリケーション処理部22が処理可能なデータに変換し、アプリケーションデータ保存部23のグローバル領域23bに保存する。演算処理部1A,1Bのアプリケーション処理部22は、アプリケーションデータ保存部23からデータを読み出して、各アプリケーションの処理に用いる。
そして、第1の実施の形態に係る電子制御装置100では、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)がアプリケーション処理のためにデータ保存部(データ保存部2A)にデータを入出力する第1タイミングと、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)がデータ保存部(データ保存部2A)から読み出したデータをペリフェラル(ペリフェラル3)に渡して、ペリフェラル(ペリフェラル3)が他の電子制御装置にデータを送信する第2タイミングとが予め固定される。以下、本実施の形態に係る、予め固定される処理のタイミングについて、従来の技術と比較しつつ説明する。
<車両制御装置の内部構成例>
図3は、第1の実施形態に係る電子制御装置を搭載した車両制御装置の内部構成例を示すブロック図である。ここでは、車両制御装置5に搭載される電子制御装置として、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7とを例に示す。
図3は、第1の実施形態に係る電子制御装置を搭載した車両制御装置の内部構成例を示すブロック図である。ここでは、車両制御装置5に搭載される電子制御装置として、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7とを例に示す。
車両制御装置5は、第一の電子制御装置(カメラECU)6、第二の電子制御装置(自動運転ECU)7、カメラ8、ステアリング16、アクセル17及びブレーキ18を備える。第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7は、互いに車載ネットワーク4にて接続される。第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7の内部のハードウェア構成はそれぞれ図1に示した電子制御装置100と同様である。
カメラ8は、例えば、100ミリ秒周期で車両前方の画像を撮影し、JPEG(Joint Photographic Experts Group)などの公知の手法によりカメラ画像データ9を生成する。カメラ8が生成したカメラ画像データ9は、第一の電子制御装置(カメラECU)6に入力される。
第一の電子制御装置(カメラECU)6は、カメラ8からカメラ画像データ9を受け取り、カメラ物体検知データ10を生成する。ここで、カメラ物体検知データ10の構成例について説明する。
図4は、カメラ物体検知データ10の構成例を示した図である。
図4は、カメラ物体検知データ10の構成例を示した図である。
カメラ物体検知データ10は、物体の番号(識別子)、物体種別、及び座標の項目で構成される。
番号(識別子)の項目には、第一の電子制御装置(カメラECU)6が有する画像認識アプリケーションモジュール221,222(後述する図8を参照)によりカメラ画像データ9から検知された物体毎に特定の番号が割り当てられる。
物体種別の項目には、検知された物体ごとに、例えば、自動車、歩行者等の物体種別が格納される。
座標の項目には、画像認識アプリケーションモジュール221,222により検知された物体のカメラ画像データ9内における座標情報が格納される。
番号(識別子)の項目には、第一の電子制御装置(カメラECU)6が有する画像認識アプリケーションモジュール221,222(後述する図8を参照)によりカメラ画像データ9から検知された物体毎に特定の番号が割り当てられる。
物体種別の項目には、検知された物体ごとに、例えば、自動車、歩行者等の物体種別が格納される。
座標の項目には、画像認識アプリケーションモジュール221,222により検知された物体のカメラ画像データ9内における座標情報が格納される。
第一の電子制御装置(カメラECU)6に入力されるカメラ画像データ9は、JPEGやPNG(Portable Network Graphics)など公知の圧縮形式により圧縮された画像データ、又はカメラ8のイメージングセンサが感知した数値列そのものであり、一般にrawデータと呼ばれる。一方、第一の電子制御装置(カメラECU)6から出力されるカメラ物体検知データ10は、カメラ画像データ9から検知された物体の番号(識別子)、物体種別、及び座標の項目で構成される。このため、カメラ画像データ9は、カメラ物体検知データ10と比較して、送受信するデータのサイズが大きく、数メガバイト程度である。
図3に示すように、第一の電子制御装置(カメラECU)6は、車載ネットワーク4を介して第二の電子制御装置(自動運転ECU)7にカメラ物体検知データ10を送信する。カメラ物体検知データ10のデータサイズは、カメラ画像データ9よりも小さいので、車載ネットワーク4の帯域を占有しないですむ。なお、第一の電子制御装置(カメラECU)6の内部ロジックについては、本発明に直接関係しないため例示を省略する。
第二の電子制御装置(自動運転ECU)7は、例えば、100ミリ秒周期で第一の電子制御装置(カメラECU)6からカメラ物体検知データ10を受信する。そして、第二の電子制御装置(自動運転ECU)7は、カメラ物体検知データ10に基づき、車両の進行方向(軌道)を計画し、該計画を実現するためのステアリング制御指令13、アクセル制御指令14及びブレーキ制御指令15を生成する。ステアリング制御指令13は、ステアリング16の動作を制御するための指令データである。アクセル制御指令14は、アクセル17の動作を制御するための指令データである。ブレーキ制御指令15は、ブレーキ18の動作を制御するための指令データである。
ステアリング16は、ステアリング制御指令13により制御され、車両の進行方向を変える。アクセル17は、アクセル制御指令14により制御され、車両を加速する。ブレーキ18は、ブレーキ制御指令15により制御され、車両を減速する。このように車両の進行方向、加減速が制御されることを「車両制御」と呼ぶ。なお、第二の電子制御装置(自動運転ECU)7におけるカメラ物体検知データ10の解析処理、及び各制御指令の生成を行うロジック、並びに各制御指令のデータ形式については、本発明に直接関係しないため例示を省略する。
<時刻同期>
次に、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7の時刻同期について説明する。
図5は、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7の時刻同期の必要性を示した図である。図5Aは、時刻同期のパターン1を示す図であり、図5Bは、時刻同期のパターン2を示す図である。
次に、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7の時刻同期について説明する。
図5は、第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7の時刻同期の必要性を示した図である。図5Aは、時刻同期のパターン1を示す図であり、図5Bは、時刻同期のパターン2を示す図である。
第一の電子制御装置(カメラECU)6においては、カメラ画像データ9からカメラ物体検知データ10を生成するために100ミリ秒ごとの周期処理が行われる。第二の電子制御装置(自動運転ECU)7においては、カメラ物体検知データ10から各制御指令を生成するために100ミリ秒ごとの周期処理が行われる。通常、これらの周期処理は電子制御装置6,7の内部に搭載されたハードウェアカウンタのタイムアウト処理を用いて実装される。しかし、ハードウェアカウンタの動作クロックが異なると電子制御装置6,7間で時刻にずれが生じるため、データフローの一貫性が保たれず、車両制御に影響を与える可能性がある。
図5Aに示すパターン1において、第一の電子制御装置(カメラECU)6が1周期目に生成したデータは、車載ネットワーク4を介して第二の電子制御装置(自動運転ECU)7の2周期目の開始より前に到達する。このため、第二の電子制御装置(自動運転ECU)7は、2周期目において第一の電子制御装置(カメラECU)6が1周期目に生成したデータを使用して計算処理を実行可能である。
一方、図5のパターン2において、第一の電子制御装置(カメラECU)6が1周期目に生成したデータは、車載ネットワーク4を介して第二の電子制御装置(自動運転ECU)7の2周期目の開始より後に到達する。このため、第二の電子制御装置(自動運転ECU)7は、2周期目ではなく次の3周期目に第一の電子制御装置(カメラECU)6が1周期目に生成したデータを使用して計算処理を実行可能となる。このように、電子制御装置6,7の内部時刻にずれが生じるとシステムの振る舞いに変動が生じる。
ここで、システム開発者は、複数の電子制御装置の内部時刻のずれによる、複数の電子制御装置の全体を含むシステムの振る舞いの変動が車両制御に影響を与えないことを検証する必要がある。この検証作業は、ソフトウェア開発コストの増大の一因となっていた。そこで、第1の実施形態では、第一の電子制御装置(カメラECU)6と、第二の電子制御装置(自動運転ECU)7の間で時刻がずれないよう同期を行う制御が行われる。電子制御装置間の時刻同期の手法は、車載ソフトウェアの標準規格であるAUTOSAR(AUTomotive Open System Architecture)に規定されている。ただし、電子制御装置間の時刻同期の手法は本発明に直接関連しないためAUTOSARの詳細の例示は省略する。
<時刻同期された電子制御装置間におけるデータフローの変化>
図6は、時刻同期された電子制御装置間におけるデータフローの変化の例を示す図である。図6Aは、図5Aと同じ時刻同期のパターン1を示す図であり、図6Bは、変化したデータフローのパターン3を示す図である。図6では、図5の場合と異なりパターン1とパターン3では共に第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7が時刻同期されている。
図6は、時刻同期された電子制御装置間におけるデータフローの変化の例を示す図である。図6Aは、図5Aと同じ時刻同期のパターン1を示す図であり、図6Bは、変化したデータフローのパターン3を示す図である。図6では、図5の場合と異なりパターン1とパターン3では共に第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7が時刻同期されている。
図6では100ミリ秒ごとの周期タスクの開始タイミングが二つの電子制御装置間で一致している。ただし、100ミリ秒ごとの周期タスクの開始タイミング(位相)がずれている場合であっても、このずれが一定であれば時刻同期されていると考えてよい。しかしながら、パターン3に示すように、1周期目における第一の電子制御装置(カメラECU)6の処理時間が長くなった場合、車載ネットワーク4で伝送されるカメラ物体検知データ10の通信時間が2周期目にかかっている。この場合、第二の電子制御装置(自動運転ECU)7の2周期目の開始までにカメラ物体検知データ10が到達しないので、第二の電子制御装置(自動運転ECU)7の2周期目において処理抜けが発生し、データフローの一貫性が保たれなくなる。
このようなデータ送信側の電子制御装置における処理時間の変動は、交通量の少ない高速道路における直進走行時と、交通量の多い繁華街における交差点右折走行時のように車両の周辺環境から得られる情報量の差によって発生し、車両制御に重大な影響を与える。したがって、システム開発者は、交通量の多寡によらず、図6Bのパターン3に示すようなデータフローの一貫性の破綻が発生しないことを検証しなければならない。また、システム開発者は、必要に応じてタイミングやCPUのスケジューリングを再設計することが必要となるため、車載ネットワーク4で伝送されるデータのデータ量の変化は、ソフトウェア開発コストを上昇させる一つの要因であった。
<LET及びLCT>
ここで、非特許文献1に開示されたLET(Logical Execution Time)及びLCT(Logical Communication Time)の概要について説明する。
図7は、非特許文献1にて提案されたLET及びLCTの概要を示した図である。非特許文献1は、以下の文献である。
”Kai-Bjorn Gemlau, Leonie KOHLER, Rolf Ernst, and Sophie Quinton. 2021. “System-level Logical Execution Time: Augmenting the Logical Execution Time Paradigm for Distributed Real-time Automotive Software.” ACM Trans. Cyber-Phys. Syst. 5, 2, Article 14 (January 2021), 27 pages. DOI:https://doi.org/10.1145/3381847”
この非特許文献1には、LETと呼ばれるスケジューリング手法をECU間に拡張する手法に関して記載されている。
ここで、非特許文献1に開示されたLET(Logical Execution Time)及びLCT(Logical Communication Time)の概要について説明する。
図7は、非特許文献1にて提案されたLET及びLCTの概要を示した図である。非特許文献1は、以下の文献である。
”Kai-Bjorn Gemlau, Leonie KOHLER, Rolf Ernst, and Sophie Quinton. 2021. “System-level Logical Execution Time: Augmenting the Logical Execution Time Paradigm for Distributed Real-time Automotive Software.” ACM Trans. Cyber-Phys. Syst. 5, 2, Article 14 (January 2021), 27 pages. DOI:https://doi.org/10.1145/3381847”
この非特許文献1には、LETと呼ばれるスケジューリング手法をECU間に拡張する手法に関して記載されている。
図7Aは、LETとLCTの定義を示す図である。図7Aに示すように、第一の電子制御装置、車載ネットワーク、第二の電子制御装置の各周期の期間は100ミリ秒で一定である。
第一の電子制御装置における1周期目、2周期目、3周期目、4周期目のLETには、それぞれ第1の処理、第2の処理、第3の処理、第4の処理が割り当てられる。各処理の始めのリードタイミングでデータの読み出しが行われ、各処理の終わりのライトタイミングで処理後のデータの書き込みが行われる。異なる装置及び車載ネットワークは、ある周期の最後にRAM2、ペリフェラル3等に書き込まれたデータを、次の周期の最初に読み出すことができる。
車載ネットワークでは、第一の電子制御装置で処理されたデータの通信処理が示される。例えば、車載ネットワークにおける2周期目のLCTには、第一の電子制御装置による1周期目の第1の処理の結果であるデータを第二の電子制御装置に通信する第1の処理が割り当てられる。同様に、車載ネットワークにおける3周期目、4周期目のLCTには、第一の電子制御装置による2周期目、3周期目の第1の処理の結果であるデータを第二の電子制御装置に通信する第2の処理、第3の処理が割り当てられる。
そして、第二の電子制御装置における3周期目、4周期目のLETには、それぞれ車載ネットワークを介して受信したデータを用いる、第二の電子制御装置の第1の処理、第2の処理が割り当てられる。
図7Bは、各電子制御装置の処理時間と、車載ネットワークの通信時間の例を示す図である。第一の電子制御装置、車載ネットワーク、第二の電子制御装置の各周期の期間は固定されているので、第一の電子制御装置及び第二の電子制御装置で行われる処理は、LET内のどこかで実行する。また、車載ネットワークで行われる通信処理は、LCT内のどこかで実行する。例えば、第一の電子制御装置は、ある周期でLET内のどこかで処理を実行する。次の周期で、車載ネットワークは、LET内のどこかでデータを第二の電子制御装置に通信する。さらに次の周期で、第二の電子制御装置は、車載ネットワークからデータを取得して、LET内のどこかで処理を実行する。
非特許文献1に提案された手法は、電子制御装置に搭載されるアプリケーションの処理、及び車載ネットワークの通信処理のそれぞれに対して、その開始時刻及び終了時刻を予め固定し、変化させないというものである。ここで、開始時刻とは、電子制御装置に搭載されるアプリケーションの処理、及び車載ネットワークの通信処理が必要なデータを取得する時刻である。また、終了時刻とは、電子制御装置に搭載されるアプリケーションの処理、及び車載ネットワークの通信処理で生成されたデータを、次の周期の電子制御装置又は車載ネットワークに公開する時刻である。非特許文献1に提案された手法を用いることで、ペリフェラルの共有やDMAコントローラによる処理の代替、ひいてはアプリケーションのアップデートやコア割り付けの変更、ハードウェアの変更を行う場合においても、各アプリケーション処理及び各通信処理の順序が変化せず、データフローの一貫性が保たれる。このため、検証及びタイミングの再設計に関するソフトウェア開発コストが削減されると期待されていた。
しかしながら、非特許文献1に開示された手法に従ってアプリケーションの処理及び通信処理の開始及び終了時刻を固定すると、以下の問題が発生することが判明した。この問題とは、各メッセージ(データ)の通信処理に要する処理時間が長い場合、各メッセージの処理に要するCPU処理時間に起因して、通信処理の開始から終了までの時間に通信可能なメッセージ量(すなわちデータ量)が制約されるというものであった。
したがって、高画質な車載カメラやゾーンECU及びセントラルECUに例示される大量のデータ通信を必要とするアプリケーションに対して、非特許文献1に開示された手法をそのまま適用することはできなかった。なお、通信処理の開始時刻から終了時刻までの時間を長くした場合、データ通信量を増加させることが可能であるが、アプリケーション間のデータ交換に要する時間が長くなるため、レイテンシ(通信遅延)が悪化するという問題があった。
図6を参照して説明したように、各ECUのCPU1が各アプリケーションの処理に要する時間は、車両の周辺環境あるいは車両の内部状態によって変動する。そこで、非特許文献1に係る技術では、図2に示した各アプリケーション処理部22で実行する各アプリケーションの処理は全て他のアプリケーション処理部22とデータを共有しないローカル変数を用いて内部の処理を行うこととする。また、各アプリケーション処理部22における処理の開始時と終了時に複数のアプリケーション処理部22の間で互いに共有されるグローバル変数をリード及びライトする。さらに各アプリケーション処理部22がグローバル変数のリード及びライトを行うタイミングを固定する。これにより、各アプリケーション処理部22がアプリケーション処理に要する時間を、固定したグローバル変数のリードのタイミングから固定したグローバル変数のライトのタイミングまでの時間とみなし、この時間をLETと呼ぶように定義した。このようにLETを定義することで、各アプリケーション処理部22に要する処理時間を常に一定とみなすことができ、前述のようなデータフローの一貫性の破綻が生じないと考えられる。
同様に、データ通信に関しても、送信元の電子制御装置が備えるRAM2からグローバル変数を読み出すタイミングと、受信先の電子制御装置が備えるRAM2にグローバル変数の値を書き込むタイミングを固定する。そして、グローバル変数をリードするタイミングからグローバル変数の値をライトするタイミングまでの時間をLCTとみなす。
LCTの間のいずれかのタイミングにおいて送信元の電子制御装置(第一の電子制御装置(カメラECU)6)上のBSW(Basic Software)による送信処理と、車載ネットワーク4上の物理的なデータ転送と、受信先の電子制御装置(第二の電子制御装置(自動運転ECU)7)上のBSWによる受信処理とが実行される。
本実施形態においては、車載ネットワーク4における通信負荷(バス負荷とも呼ぶ)は十分小さいとする。そこで、通信周期の短い通信メッセージ(通信データ)に対して優先度を高く設定する。この設定により、通信周期の異なる、どの通信メッセージに関しても次の通信周期が開始するタイミングまでに、送信先の電子制御装置(第二の電子制御装置(自動運転ECU)7)のペリフェラル3のレジスタ31(図1を参照)に必ずデータが到達する。ここで、CANの場合、バス負荷が25%以下であれば十分であることが知られている。そこで、図1に示した第一の電子制御装置(カメラECU)6及び第二の電子制御装置(自動運転ECU)7の処理周期は100ミリ秒であるから、LCTも100ミリ秒と設定すればよい。
<LET及びLCTの実装>
次に、非特許文献1にて提案されたLET及びLCTを実装するための従来のソフトウェアアーキテクチャについて、図8~図11を参照して説明する。
図8は、第一の電子制御装置(カメラECU)6に従来のソフトウェアアーキテクチャを適用した例を示す図である。
次に、非特許文献1にて提案されたLET及びLCTを実装するための従来のソフトウェアアーキテクチャについて、図8~図11を参照して説明する。
図8は、第一の電子制御装置(カメラECU)6に従来のソフトウェアアーキテクチャを適用した例を示す図である。
第一の電子制御装置(カメラECU)6における第一のコア11を通信専用、第二のコア12をアプリケーション専用とする。すなわち、第一のコア11に対して、OS(Operating System)19、通信ミドルウェア20及び通信ドライバ21が割り付けられる。また、第二のコア12に対して、OS19、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222、データ取得タスク24、データ公開タスク25が割り付けられる。
画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222は、いずれもアプリケーション処理を実行するモジュールである。
データ取得タスク24は、各アプリケーションモジュールの処理開始時に各アプリケーション処理部22に必要なデータをRAM2(図1を参照)から取得する。データ取得タスク24は、アプリケーションデータ保存部23(図2を参照)のローカル領域23a又はグローバル領域23bからデータを取得できる。
データ取得タスク24は、各アプリケーションモジュールの処理開始時に各アプリケーション処理部22に必要なデータをRAM2(図1を参照)から取得する。データ取得タスク24は、アプリケーションデータ保存部23(図2を参照)のローカル領域23a又はグローバル領域23bからデータを取得できる。
データ公開タスク25は、各アプリケーションモジュールの処理終了時に、各アプリケーション処理の結果をRAM2に含まれるアプリケーションデータ保存部23に保存する。データ公開タスク25は、第一のコア11及び第二のコア12の双方からアクセス可能な領域(グローバル領域23b)をアプリケーションデータ保存部23に設定し、このグローバル領域23bに各アプリケーション処理の結果を保存する。このため、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が生成し、他のアプリケーションモジュールで用いられるデータは、データ公開タスク25によってグローバル領域23bに保存される。
通信ミドルウェア20は、グローバル領域23bに保存されたデータに対し、ヘッダ生成等を含む通信に必要なデータを付加し、通信データを生成する機能を有する。この通信データは、例えば、イーサネットで用いられるフレームである。
通信ドライバ21は、通信データを、図1に示したペリフェラル3のレジスタ31にライトする。
通信ドライバ21は、通信データを、図1に示したペリフェラル3のレジスタ31にライトする。
データ取得タスク24とデータ公開タスク25を起動するタイミングは固定されている。また、データ取得タスク24とデータ公開タスク25の処理は、RAM2へのアクセスのみである。このため、データ取得タスク24とデータ公開タスク25のCPU処理時間は一定とみなすことができる。その結果、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222のCPU処理時間(アプリケーション処理時間)が変動しても、データ取得タスク24が起動されるタイミングとデータ公開タスク25が完了するタイミングは変動しない。
データフローの観点から見ると、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222の実行時間は、データ取得タスク24が起動されるタイミングから起算してデータ公開タスク25が完了するタイミングまでの時間として一定である。この一定時間が画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222に関するLETとして実装される。
なお、電子制御装置100に含まれる各アプリケーションモジュール及び各タスクを所定のタイミングに起動する操作は、タスク起動時刻管理部26によって管理及び実行される。タスク起動時刻管理部26は、OS19から提供されるタスクスケジューリング機能を実現する機能部である。
図9は、第二の電子制御装置(自動運転ECU)7における従来のソフトウェアアーキテクチャを適用した例を示す図である。
第二の電子制御装置(自動運転ECU)7における第一のコア11を通信専用、第二のコア12をアプリケーション専用とする。すなわち、第一のコア11に対して、OS(Operating System)19、通信ミドルウェア20及び通信ドライバ21を割り付ける。また、第二のコア12に対して、OS19、軌道生成アプリケーションモジュール223、制御指令生成アプリケーションモジュール224、データ取得タスク24、データ公開タスク25を割り付ける。
軌道生成アプリケーションモジュール223は、車両が走行する軌道を生成する。
制御指令生成アプリケーションモジュール224は、生成された軌道に従って、図3に示したステアリング16、アクセル17及びブレーキ18に対する制御指令(ステアリング制御指令13、アクセル制御指令14及びブレーキ制御指令15)を生成する。
制御指令生成アプリケーションモジュール224は、生成された軌道に従って、図3に示したステアリング16、アクセル17及びブレーキ18に対する制御指令(ステアリング制御指令13、アクセル制御指令14及びブレーキ制御指令15)を生成する。
軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224の実行時間は、データ取得タスク24が起動されるタイミングから起算してデータ公開タスク25が完了するタイミングまでの時間として一定である。該時間が軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224に関するLETとして実装される。
データ取得タスク24、データ公開タスク25、及びタスク起動時刻管理部26については、図8を参照して説明したものと同じであるので、詳細な説明を省略する。
データ取得タスク24、データ公開タスク25、及びタスク起動時刻管理部26については、図8を参照して説明したものと同じであるので、詳細な説明を省略する。
次に、LCTの実装を考えるため、通信ミドルウェア20の処理について説明する。
図8と図9に示した通信ミドルウェア20は、周期的に起動され、他の電子制御装置に対して通信データの送信処理を行う。そこで、通信ミドルウェア20は、図2に示したアプリケーションデータ保存部23のグローバル領域23bに保存されたデータをデータ公開タスク25により読み取る。その後、通信ミドルウェア20は、通信に必要なデータ(通信ヘッダ等)を読み取ったデータに付加し、通信ドライバ21をコールすることにより、図1に示したペリフェラル3のレジスタ31に通信データを書き込む。
図8と図9に示した通信ミドルウェア20は、周期的に起動され、他の電子制御装置に対して通信データの送信処理を行う。そこで、通信ミドルウェア20は、図2に示したアプリケーションデータ保存部23のグローバル領域23bに保存されたデータをデータ公開タスク25により読み取る。その後、通信ミドルウェア20は、通信に必要なデータ(通信ヘッダ等)を読み取ったデータに付加し、通信ドライバ21をコールすることにより、図1に示したペリフェラル3のレジスタ31に通信データを書き込む。
また、通信ミドルウェア20は、ペリフェラル3のデータ受信割り込みによっても起動され、他の電子制御装置から送信された通信データの受信処理を行うこともできる。通信ミドルウェア20は、データの受信処理に際して、通信ドライバ21を用いてペリフェラル3のレジスタ31に保存された通信データを読み取る。そして、通信ミドルウェア20は、通信ヘッダの除去やCRC(Cyclic Redundancy Check)など通信プロトコルによって規定されるデータ受信に関して必要な所定の処理を実行する。その後、通信ミドルウェア20は、アプリケーションデータ保存部23において、特に第一のコア11からアクセス可能であって、第二のコア12からアクセス可能ではないRAM2のローカル領域23aに、受信処理後のデータを保存する。
また、通信ミドルウェア20は、周期的に起動され、RAM2のローカル領域23aに保存された受信データを、RAM2のグローバル領域23bに保存することもできる。このため、第一のコア11及び第二のコア12の双方でグローバル領域23bにアクセス可能である。
LCTは、以下の処理で規定される。
すなわち、第一の電子制御装置(カメラECU)6に搭載された通信ミドルウェア20が送信処理のために起動される時刻から起算されると、第二の電子制御装置(自動運転ECU)7に搭載された通信ミドルウェア20も起動する。第二の電子制御装置(自動運転ECU)7に搭載された通信ミドルウェア20は、図2に示したアプリケーションデータ保存部23のうち、特に第一のコア11からアクセス可能であって、第二のコア12からアクセス可能ではないローカル領域23aに保存されたデータを取り出す。そして、通信ミドルウェア20は、アプリケーションデータ保存部23のうち、特に第一のコア11及び第二のコア12の双方からアクセス可能なグローバル領域23bにデータを保存する。このように通信ミドルウェア20が送信処理のために起動される時刻から起算され、グローバル領域23bにデータを保存するまでの時刻がLCTとして規定される。
すなわち、第一の電子制御装置(カメラECU)6に搭載された通信ミドルウェア20が送信処理のために起動される時刻から起算されると、第二の電子制御装置(自動運転ECU)7に搭載された通信ミドルウェア20も起動する。第二の電子制御装置(自動運転ECU)7に搭載された通信ミドルウェア20は、図2に示したアプリケーションデータ保存部23のうち、特に第一のコア11からアクセス可能であって、第二のコア12からアクセス可能ではないローカル領域23aに保存されたデータを取り出す。そして、通信ミドルウェア20は、アプリケーションデータ保存部23のうち、特に第一のコア11及び第二のコア12の双方からアクセス可能なグローバル領域23bにデータを保存する。このように通信ミドルウェア20が送信処理のために起動される時刻から起算され、グローバル領域23bにデータを保存するまでの時刻がLCTとして規定される。
車載ネットワーク4の状況により第一の電子制御装置(カメラECU)6から第二の電子制御装置(自動運転ECU)7への通信に要する時間は変動しうる。ただし、データフローの観点で見れば、変動した時間もLCTとして一定とみなすことができる。
ここで、非特許文献1にて提案された技術を用いて、アプリケーション処理及び通信処理を行う例について説明する。
図10は、非特許文献1にて提案されたLET及びLCTを、図8及び図9に示したモジュール及びタスクにマッピングした例を示す図である。
図10は、非特許文献1にて提案されたLET及びLCTを、図8及び図9に示したモジュール及びタスクにマッピングした例を示す図である。
第一の電子制御装置(カメラECU)6のタイミングチャートで行われる処理は、第一の電子制御装置(カメラECU)6のアプリケーション専用の第二のコア12で行われる処理を表している。また、車載ネットワーク4のタイミングチャートで行われる前半の処理(図の左側のリードタイミングを含む)は、第一の電子制御装置(カメラECU)6の通信専用の第一のコア11で行われる処理を表している。一方、車載ネットワーク4のタイミングチャートで行われる後半の処理(図の右側のライトタイミングを含む)は、第二の電子制御装置(自動運転ECU)7の通信専用の第一のコア11で行われる処理を表している。そして、第二の電子制御装置(自動運転ECU)7のタイミングチャートで行われる処理は、第二の電子制御装置(自動運転ECU)7のアプリケーション専用の第二のコア12で行われる処理を表している。
(1周期目)
第一の電子制御装置(カメラECU)6では、1周期目の始めにデータ取得タスク24がアプリケーション処理に必要なデータを取得する。そして、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222(図中では、「画像認識(車両前方)221及び画像認識(車両後方)222」と略記する)が処理を実行する。処理後のデータは、1周期目の終わりでデータ公開タスク25によりペリフェラル3に書き込まれる。図中の「処理」と記載される領域は、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が処理を実行する時間を表す。
第一の電子制御装置(カメラECU)6では、1周期目の始めにデータ取得タスク24がアプリケーション処理に必要なデータを取得する。そして、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222(図中では、「画像認識(車両前方)221及び画像認識(車両後方)222」と略記する)が処理を実行する。処理後のデータは、1周期目の終わりでデータ公開タスク25によりペリフェラル3に書き込まれる。図中の「処理」と記載される領域は、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が処理を実行する時間を表す。
(2周期目)
次に、車載ネットワーク4では、2周期目の始めに第一の電子制御装置(カメラECU)6における通信ミドルウェア20がデータを読み出して、第二の電子制御装置(自動運転ECU)7に向けて通信処理を実行する。図中の「通信」と記載される領域は、バス(車載ネットワーク4)をデータが流れている時間を表す。その後、2周期目の終わりで第二の電子制御装置(自動運転ECU)7における通信ミドルウェア20が受信したデータをRAM2に書き込む。
次に、車載ネットワーク4では、2周期目の始めに第一の電子制御装置(カメラECU)6における通信ミドルウェア20がデータを読み出して、第二の電子制御装置(自動運転ECU)7に向けて通信処理を実行する。図中の「通信」と記載される領域は、バス(車載ネットワーク4)をデータが流れている時間を表す。その後、2周期目の終わりで第二の電子制御装置(自動運転ECU)7における通信ミドルウェア20が受信したデータをRAM2に書き込む。
(3周期目)
次に、第二の電子制御装置(自動運転ECU)7では、3周期目の始めにデータ取得タスク24がペリフェラル3からデータを取得する。そして、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224(図中では、「軌道生成223及び制御指令生成224」と略記する)が処理を実行する。処理後のデータは、3周期目の終わりでデータ公開タスク25によりペリフェラル3に書き込まれる。図中の「処理」と記載される領域は、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224が処理を実行する時間を表す。
次に、第二の電子制御装置(自動運転ECU)7では、3周期目の始めにデータ取得タスク24がペリフェラル3からデータを取得する。そして、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224(図中では、「軌道生成223及び制御指令生成224」と略記する)が処理を実行する。処理後のデータは、3周期目の終わりでデータ公開タスク25によりペリフェラル3に書き込まれる。図中の「処理」と記載される領域は、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224が処理を実行する時間を表す。
<データ通信量の制約>
図11は、第一の電子制御装置(カメラECU)6において大量のデータ送信を行う場合における通信ミドルウェア20と車載ネットワーク4のタイミングチャートである。図11を参照しながらデータ通信量の制約について説明する。図11の上側のタイミングチャートは、図10に示したタイミングチャートと同様である。
図11は、第一の電子制御装置(カメラECU)6において大量のデータ送信を行う場合における通信ミドルウェア20と車載ネットワーク4のタイミングチャートである。図11を参照しながらデータ通信量の制約について説明する。図11の上側のタイミングチャートは、図10に示したタイミングチャートと同様である。
通信ミドルウェア20におけるデータ公開タスク25により、アプリケーションデータ保存部23において特に第一のコア11及び第二のコア12双方からアクセス可能な領域(グローバル領域23b)に保存されたデータを読み取り、通信ヘッダ等の通信に必要なデータを付加してペリフェラル3のレジスタ31に該データを書き込む処理がある。この処理では、例えば車載ソフトウェア標準規格AUTOSARにおけるEthernet通信の場合、後述する図12の左側に示すように、RTE(RunTime Environment)からCommunication (COM) Serviceに所属するComとPduR(Protocol data unit router)と呼ばれるモジュールを経由して行われる。さらに、この処理では、Communication Hardware abstractionに所属するInterfaceとTransceiverと呼ばれるモジュールを経由した後、Driverをコールする必要がある。この処理は全てCPUで実行されるため、100マイクロ秒~1ミリ秒程度のオーダのCPU処理時間となる。本実施形態ではCPU処理時間を150マイクロ秒とする。
一方、1ギガビット毎秒の通信速度を許容するEthernetに関して、通信単位であるフレームのサイズを1キロバイトとする。この場合、車載ネットワーク4上を該フレームが物理信号として流れる時間は、1Kバイトが8000ビットであるので、8000/10^9=80*10^(-6)、すなわち80マイクロ秒程度である。ここで、フレームが車載ネットワーク4を流れている時間(80マイクロ秒)よりも通信ミドルウェア20のCPU処理時間(150マイクロ秒)のほうが長いため、150マイクロ秒-80マイクロ秒=70マイクロ秒の時間分の待ち時間が生じる。
図11の下側に示すタイミングチャートでは、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222がそれぞれ生成したカメラ物体検知データ10の処理時間の関係が示される。上述したように画像認識アプリケーションモジュール(車両前方)221が生成したカメラ物体検知データ10に対する通信ミドルウェア20のCPU処理時間が150マイクロ秒であり、次に、通信ミドルウェア20で処理されたカメラ物体検知データ10のフレームが車載ネットワーク4を流れる時間が80マイクロ秒であることが示される。図10に示したように、車載ネットワーク4においても、第一の電子制御装置(カメラECU)6のCPU1によりフレーム(データ)を流すための通信処理が行われる。
ここで、画像認識アプリケーションモジュール(車両前方)221のカメラ物体検知データ10に対するCPU処理が終わると、次に、画像認識アプリケーションモジュール(車両後方)222のカメラ物体検知データ10に対するCPU処理が行われる。このように従来は、アプリケーション専用の第二のコア12で、画像認識アプリケーションモジュール(車両前方)221、画像認識アプリケーションモジュール(車両後方)222の順で通信ミドルウェア20を用いたCPU処理が行われていた。
ここで、画像認識アプリケーションモジュール(車両前方)221のCPU処理後のカメラ物体検知データ10が車載ネットワーク4に流す処理が終了した直後に、画像認識アプリケーションモジュール(車両後方)222のCPU処理後のカメラ物体検知データ10が車載ネットワーク4に流す処理が開始することが望ましい。しかし、画像認識アプリケーションモジュール(車両後方)222は、画像認識アプリケーションモジュール(車両前方)221のCPU処理が終了した後でなければ動作しない。この結果、画像認識アプリケーションモジュール(車両前方)221のフレームの送信が終了してから画像認識アプリケーションモジュール(車両後方)222のフレームを生成する処理が終了するまで、70マイクロ秒のCPU処理の待ち時間が生じてしまう。
画像認識アプリケーションモジュール(車両前方)221のカメラ物体検知データ10の送信が完了してから画像認識アプリケーションモジュール(車両後方)222のカメラ物体検知データ10の送信を開始するまでの70マイクロ秒間は、第一の電子制御装置(カメラECU)6が車載ネットワーク4の帯域を使用できない。このため、CPU処理の待ち時間である70マイクロ秒間においては、車載ネットワーク4で通信可能なデータ量が制約されてしまう。
<通信準備処理部及びペリフェラルアクセス部>
図12は、図2に示した通信準備処理部201とペリフェラルアクセス部202の処理の概要について、AUTOSARを例として説明する図である。
図12は、図2に示した通信準備処理部201とペリフェラルアクセス部202の処理の概要について、AUTOSARを例として説明する図である。
図12の左側には、従来の通信ミドルウェア20と通信ドライバ21の構成例が示される。通常、AUTOSARにおいては、各アプリケーションモジュールが生成したアプリケーションデータ保存部23のグローバル領域23bに保存されたデータを、通信ミドルウェア20がRTE_read()により読み取る。その後、通信ミドルウェア20は、COM、PduR、Tp(Transport Protocol)、If(Interface)、Driver(通信ドライバ21)を順にコールしてペリフェラル3にアクセスし、送信データをレジスタ31に格納する。AUTOSARにおいて、COM、PduR、Tpはサービスレイヤに属し、IfはHW(ハードウェア)抽象化レイヤに属する。
通信ミドルウェア20は、Rte_read()からIfまでの処理を担う。RTE_read()から処理を開始し、Driverが処理を完了するまで、上述した通り、およそ150マイクロ秒を要する。
そこで、本実施形態においては、図8と図9に示した通信ミドルウェア20と通信ドライバ21の処理を、図2に示した通信準備処理部201とペリフェラルアクセス部202に分割する。
図12の右側には、本実施形態に係る通信準備処理部201とペリフェラルアクセス部202の構成例が示される。図2に示したように、通信準備処理部201とペリフェラルアクセス部202は、演算処理部1Aに設けられる。なお、演算処理部1Bには、通信準備処理部201が設けられるが、ペリフェラルアクセス部202は設けられない。また、本実施形態では、IfとDriverの間にバッファとして通信データ保存部28を設置する。図2に示したように、通信データ保存部28は、データ保存部2Aに設けられる。
図12の右側には、本実施形態に係る通信準備処理部201とペリフェラルアクセス部202の構成例が示される。図2に示したように、通信準備処理部201とペリフェラルアクセス部202は、演算処理部1Aに設けられる。なお、演算処理部1Bには、通信準備処理部201が設けられるが、ペリフェラルアクセス部202は設けられない。また、本実施形態では、IfとDriverの間にバッファとして通信データ保存部28を設置する。図2に示したように、通信データ保存部28は、データ保存部2Aに設けられる。
ここで、通信準備処理部201にあるIfを改造することで、第一のコア11及び第二のコア12(演算処理部1A,1B)がDriverを直接コールするのではなく、該Driverをコールする際に渡す引数を通信データ保存部28に保存するように構成する。そして、RTE_read()から改造したIfまでを通信準備処理部201としている。図2に示したように、通信準備処理部201は、アプリケーションデータ保存部23のグローバル領域23bに保存されたデータを入力とし、図12の右側に示すRTE_read()から改造したIfまでの処理を行った後、通信データ保存部28にデータを出力する。
さらに本実施形態では、通信データ保存部28からデータを取り出し、該取り出したデータを引数としてDriverをコールする処理を実行可能な機能部をペリフェラルアクセス部202とする。そして、通信準備処理部(通信準備処理部201)は、AUTOSAR(登録商標)に規定されるサービスレイヤとハードウェア抽象化レイヤであり、ペリフェラルアクセス部(ペリフェラルアクセス部202)は、AUTOSARに規定されるドライバである。通信データ保存部(通信データ保存部28)は、ハードウェア抽象化レイヤと、ドライバとの間に設けられている。
図2に示したように、通信データ保存部28の実体は、第一のコア11と第二のコア12の双方からアクセス可能なRAM2の領域に確保することとし、アプリケーションデータ保存部23とは別の領域とする。Rte_read()からDriverが処理を完了するまでのCPU処理の大部分は通信準備処理部201で行われる処理であり、通信準備処理部201が要するCPU処理時間は130マイクロ秒程度である。一方、ペリフェラルアクセス部202は、通信データ保存部28からのデータ取り出しと、Driver(通信ドライバ21)のコールのみを行うため、ペリフェラルアクセス部202が要するCPU処理時間は20マイクロ秒程度である。さらに、通信準備処理部201は、第一のコア11及び第二のコア12(図2に示した演算処理部1A,1B)の双方に設けられるため、第一のコア11及び第二のコア12がそれぞれ通信準備処理部201を並列実行することが可能である。
図12の右側に示したように、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、予め決められた内部時刻に基づいて、通信準備処理部(通信準備処理部201)、ペリフェラルアクセス部(ペリフェラルアクセス部202)の順に起動することで、他の電子制御装置100にデータを送信する。そして、通信準備処理部(通信準備処理部201)が通信データ保存部(通信データ保存部28)に通信データを保存する処理と、ペリフェラルアクセス部(ペリフェラルアクセス部202)が通信データ保存部(通信データ保存部28)から読み出した通信データであって、ペリフェラル(ペリフェラル3)が他の電子制御装置に送信するデータをペリフェラル(ペリフェラル3)に格納する処理とを行う。
逆に、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は、予め決められた内部時刻に基づいて、ペリフェラルアクセス部(ペリフェラルアクセス部202)、通信準備処理部(通信準備処理部201)の順に起動することで、他の電子制御装置100からデータを受信する。そして、ペリフェラル(ペリフェラル3)が他の電子制御装置から受信したデータをペリフェラルアクセス部(ペリフェラルアクセス部202)が取得し、通信データ保存部(通信データ保存部28)に書き込む処理と、通信準備処理部(通信準備処理部201)が通信データ保存部(通信データ保存部28)から読み出した通信データをアプリケーションデータ保存部(アプリケーションデータ保存部23)に書き込む処理とを行う。
<本実施形態に係るソフトウェアアーキテクチャ>
次に、本実施形態に係るソフトウェアアーキテクチャについて、図13と図14を参照して説明する。
本実施形態に係るソフトウェアアーキテクチャでは、図8と図9を参照して説明した非特許文献1における方式を適用した例のように第一のコア11を通信専用、第二のコア12をアプリケーション専用とするのではなく、第一のコア11と第二のコア12をアプリケーションと通信の兼用とする。
次に、本実施形態に係るソフトウェアアーキテクチャについて、図13と図14を参照して説明する。
本実施形態に係るソフトウェアアーキテクチャでは、図8と図9を参照して説明した非特許文献1における方式を適用した例のように第一のコア11を通信専用、第二のコア12をアプリケーション専用とするのではなく、第一のコア11と第二のコア12をアプリケーションと通信の兼用とする。
図13は、第一の電子制御装置(カメラECU)6における本実施形態に係るソフトウェアアーキテクチャを示した図である。
第1の実施形態に係る複数の電子制御装置の一つ(第一の電子制御装置(カメラECU)6)は、カメラが撮像したカメラ画像データ(カメラ画像データ9)から物体検知を行った結果であるカメラ物体検知データ(カメラ物体検知データ10)を車載ネットワーク(車載ネットワーク4)に送信する。この第一の電子制御装置(カメラECU)6では、第一のコア11に対して、OS19、画像認識アプリケーションモジュール(車両前方)221、データ取得タスク24、データ公開タスク25、通信準備処理部201が割り付けられる。また、第二のコア12に対して、OS19、画像認識アプリケーションモジュール(車両後方)222、データ取得タスク24、データ公開タスク25、通信準備処理部201が割り付けられる。
OS19では、第一のコア11と第二のコア12の双方からタスク起動時刻管理部26を実行可能である。
第一の電子制御装置(カメラECU)6のペリフェラルアクセス部202は、第一のコア11又は第二のコア12のいずれかで実行可能とする。図2では、ペリフェラルアクセス部202が第一のコア11に相当する演算処理部1Aで実行される形態としたが、第二のコア12に相当する演算処理部1Bで実行される形態としてもよい。
第一の電子制御装置(カメラECU)6のペリフェラルアクセス部202は、第一のコア11又は第二のコア12のいずれかで実行可能とする。図2では、ペリフェラルアクセス部202が第一のコア11に相当する演算処理部1Aで実行される形態としたが、第二のコア12に相当する演算処理部1Bで実行される形態としてもよい。
図14は、第二の電子制御装置(自動運転ECU)7における本実施形態に係るソフトウェアアーキテクチャを示した図である。
第1の実施形態に係る複数の電子制御装置の一つ(第二の電子制御装置(自動運転ECU)7)は、カメラ物体検知データ(カメラ物体検知データ10)に基づいて、車両の制御対象であるステアリング(ステアリング16)の目標角度の制御指令値、アクセル(アクセル17)の目標加速力の制御指令値、及びブレーキ(ブレーキ18)の目標減衰力の制御指令値のうち、少なくとも一つを生成して制御対象に制御指令値を送信する。この第二の電子制御装置(自動運転ECU)7では、第一のコア11に対して、OS19、軌道生成アプリケーションモジュール223、データ取得タスク24、データ公開タスク25、通信準備処理部201が割り付けられる。また、第二のコア12に対して、OS19、制御指令生成アプリケーションモジュール224、データ取得タスク24、データ公開タスク25、通信準備処理部201が割り付けられる。
OS19では、第一のコア11と第二のコア12の双方からタスク起動時刻管理部26を実行可能である。
また、第二の電子制御装置(自動運転ECU)7のペリフェラルアクセス部202は、第一のコア11又は第二のコア12のいずれかで実行可能とする。図2では、ペリフェラルアクセス部202が第一のコア11に相当する演算処理部1Aで実行される形態としたが、第二のコア12に相当する演算処理部1Bで実行される形態としてもよい。
また、第二の電子制御装置(自動運転ECU)7のペリフェラルアクセス部202は、第一のコア11又は第二のコア12のいずれかで実行可能とする。図2では、ペリフェラルアクセス部202が第一のコア11に相当する演算処理部1Aで実行される形態としたが、第二のコア12に相当する演算処理部1Bで実行される形態としてもよい。
図13と図14に示したように、第一のコア11と第二のコア12はいずれもアプリケーション処理と通信の処理(特に通信準備処理部201)を実行し、第一のコア11は通信を実行するペリフェラル3にアクセスするためのペリフェラルアクセス部202も実行する。
第一のコア11に搭載されたデータ取得タスク24は、予め決められた時刻になると起動される。また、第一のコア11に搭載されたデータ取得タスク24は、同じく第一のコア11に搭載されたアプリケーションモジュールである画像認識アプリケーションモジュール(車両前方)221の処理に必要なデータを取得する役割を持つ。データ取得タスク24が取得するデータが同一の電子制御装置内に搭載された画像認識アプリケーションモジュール(車両後方)222により生成される場合がある。この場合、データ取得タスク24は、アプリケーションデータ保存部23のグローバル領域23bに保存されたデータを取得する。
データ取得タスク24が取得するデータが、異なる電子制御装置に搭載されたアプリケーションモジュールにより生成され、ペリフェラル3が受信したものである場合、第一のコア11はペリフェラルアクセス部202を起動する。異なる電子制御装置に搭載されたアプリケーションモジュールとは、例えば、第一の電子制御装置(カメラECU)6の外部の第二の電子制御装置(自動運転ECU)7に搭載された、図14に示す軌道生成アプリケーションモジュール223、又は制御指令生成アプリケーションモジュール224である。第一のコア11により起動されたペリフェラルアクセス部202は、図1に示したレジスタ31に格納されたデータを、図12に示した通信ドライバ21を用いて取得し、図12に示した通信データ保存部28に格納する。
第一のコア11に搭載されたデータ取得タスク24の処理と同様に、第二のコア12に搭載されたデータ取得タスク24は、同じ第二のコア12に搭載されたアプリケーションモジュールである画像認識アプリケーションモジュール(車両後方)222の実行に必要なデータを取得する役割を持つ。
第一のコア11に搭載された画像認識アプリケーションモジュール(車両前方)221は、非特許文献1に開示された技術と同様に、データ取得タスク24の完了後からデータ公開タスク25の開始時刻の前までの間の任意の時刻に実行される。ただし、画像認識アプリケーションモジュール(車両前方)221が取得するデータのうち、異なる電子制御装置に搭載されたアプリケーションモジュールから取得したもの、すなわち外部から受信したデータが存在する場合がある。この場合、画像認識アプリケーションモジュール(車両前方)221は、処理を実行する前に、同じ第一のコア11に搭載された通信準備処理部201をコールする。
コールされた通信準備処理部201は、図12に示した通信データ保存部28からデータを取り出し、Tp、PduR、COM、Rte_write()の順に処理し、アプリケーションデータ保存部23にデータを保存する。なお、ここで説明する処理は、データの受信処理であるため、図12に示したフローではRte_read()ではなくRte_write()となる。この結果、通信データ保存部28から取り出されたデータが画像認識アプリケーションモジュール(車両前方)221からアクセス可能となる。
また、画像認識アプリケーションモジュール(車両前方)221の処理完了後、画像認識アプリケーションモジュール(車両前方)221が生成したデータのうち、異なる電子制御装置に搭載されたアプリケーションモジュールに対してデータを公開する場合がある。このように外部(例えば、異なる電子制御装置)に公開するデータは、外部に送信される必要がある。そこで、第一のコア11は、外部に送信される必要があるデータを引数として、通信準備処理部201を直ちにコールする。そして、通信準備処理部201は、図12に示したようにRte_read()、COM、PduR、Tpを順に処理し、Ifにおいて該データを通信データ保存部28に保存する。
第一のコア11に搭載された画像認識アプリケーションモジュール(車両前方)221と同様に、第二のコア12に搭載された画像認識アプリケーションモジュール(車両後方)222による処理が行われる。画像認識アプリケーションモジュール(車両後方)222による処理は、データ取得タスク24のタスク処理の完了後からデータ公開タスク25の開始時刻の前までの間の任意の時刻に実行される。
ただし、画像認識アプリケーションモジュール(車両後方)222が取得するデータのうち、異なる電子制御装置に搭載されたアプリケーションモジュールから取得したデータ、すなわち外部から受信したデータが存在する場合がある。この場合、画像認識アプリケーションモジュール(車両後方)222は、処理を実行する前に通信準備処理部201をコールする。このとき、通信準備処理部201は、通信データ保存部28からデータを取り出し、図12に示した処理の逆順でTp、PduR、COM、Rte_write()を処理する。このような処理を経て、通信データ保存部28から取り出したデータを画像認識アプリケーションモジュール(車両後方)222からアクセス可能とする。
また、画像認識アプリケーションモジュール(車両後方)222の処理が完了した後、画像認識アプリケーションモジュール(車両後方)222の生成したデータのうち、異なる電子制御装置に搭載されたアプリケーションモジュールに対してデータを公開する場合がある。このように外部(例えば、異なる電子制御装置)に送信する必要があるデータに関しては、第二のコア12が該外部に送信する必要があるデータを引数として通信準備処理部201を直ちにコールする。そして、通信準備処理部201は、Rte_write()、COM、PduR、Tpを順に処理し、Ifにおいて該データを通信データ保存部28に保存する。
ここで、非特許文献1に開示された技術では、第一のコア11を通信専用としているため全ての通信処理が同一のコアで実行されていた。一方、データの送信及び受信の処理において、本実施形態に係る通信準備処理部201は、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222の処理の前後に、第一のコア11と第二のコア12によってそれぞれ実行される点に注意されたい。
第一のコア11に搭載されたデータ公開タスク25は、予め決められた時刻になると起動される。第一のコア11に搭載されたデータ公開タスク25は、同じ第一のコア11に搭載されたアプリケーションモジュールである画像認識アプリケーションモジュール(車両前方)221の実行結果(アプリケーションデータ)を公開する役割を持つ。そして、アプリケーションデータ保存部23は、同一の電子制御装置内にあるアプリケーションモジュールに公開するデータを、グローバル領域23bに保存する。
また、第一のコア11に搭載されたデータ公開タスク25は、処理が完了すると、直ちにペリフェラルアクセス部202を起動する。ペリフェラルアクセス部202は、通信データ保存部28に保存されたデータを取得し、図12に示した通信ドライバ21をコールして該データをペリフェラル3のレジスタ31に書き込む。同様に、第二のコア12に搭載されたデータ公開タスク25は、予め決められた時刻になると起動される。
一方、第二のコア12に搭載されたデータ公開タスク25は、同じ第二のコア12に搭載されたアプリケーションモジュールである画像認識アプリケーションモジュール(車両後方)222の実行結果を公開する役割を持つ。そこで、アプリケーションデータ保存部23は、同一の電子制御装置内にあるアプリケーションモジュールに対して公開するデータをグローバル領域23bに保存する。
なお、画像認識アプリケーションモジュール(車両後方)222は、外部送信データに関する通信準備処理部201を既に完了している。また、ペリフェラル3へのアクセスは全て、第一のコア11に搭載されたペリフェラルアクセス部202により実行される。このため、第二のコア12に搭載されたデータ公開タスク25は、異なる電子制御装置内のアプリケーションモジュールに対して公開するデータに関しては特に処理を行わない。
<非特許文献1に開示された技術と、本実施形態に係る技術との差分>
次に、非特許文献1に開示された技術と、本実施形態に係る技術との差分について、図15と図16を参照して説明する。
図15は、本実施形態に係るLET及びLCTを、本実施形態に係る各モジュール及びタスクに適用した例を示す図である。ここで、LET及びLCTが適用される各モジュール及びタスクは、図13と図14に示したものである。以下に説明する通信準備処理部201及びペリフェラルアクセス部202がデータの受信処理を行う場合に(受信側)と付し、データの送信処理を行う場合に(送信側)と付す。
次に、非特許文献1に開示された技術と、本実施形態に係る技術との差分について、図15と図16を参照して説明する。
図15は、本実施形態に係るLET及びLCTを、本実施形態に係る各モジュール及びタスクに適用した例を示す図である。ここで、LET及びLCTが適用される各モジュール及びタスクは、図13と図14に示したものである。以下に説明する通信準備処理部201及びペリフェラルアクセス部202がデータの受信処理を行う場合に(受信側)と付し、データの送信処理を行う場合に(送信側)と付す。
そして、送信側の電子制御装置(第一の電子制御装置(カメラECU)6)が車載ネットワーク(車載ネットワーク4)にデータを送信する処理の完了時刻と、受信側の電子制御装置(第二の電子制御装置(自動運転ECU)7)が車載ネットワーク(車載ネットワーク4)からデータを受信する処理の開始時刻とが規定されている。また、複数の電子制御装置(第一の電子制御装置(カメラECU)6、第二の電子制御装置(自動運転ECU)7)のそれぞれが有する起動時刻管理部(タスク起動時刻管理部26)は、規定された完了時刻及び開始時刻に基づいて、複数の電子制御装置のそれぞれが有するペリフェラルアクセス部(ペリフェラルアクセス部202)を起動する。図15に示すように、第一の電子制御装置(カメラECU)6がデータを送信する処理の完了時刻と、第二の電子制御装置(自動運転ECU)7がデータを受信する処理の開始時刻の間は、100ミリ秒で固定されている。このため、第一の電子制御装置(カメラECU)6と、第二の電子制御装置(自動運転ECU)7における各処理の期間と、車載ネットワーク4にデータを送信する期間とを合わせることができる。
(1周期目)
<データ取得タスク及びデータ公開タスクによる第1処理>
第一の電子制御装置(カメラECU)6では、1周期目が開始されるリードタイミングでデータ取得タスク24が画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222に必要なデータ(例えば、カメラ画像データ9)を取得する。次に、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222がアプリケーション処理を行ってアプリケーションデータ(例えば、カメラ物体検知データ10)を生成する。このように、第一のコア11及び第二のコア12には、それぞれ割り付けられた画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が割り付けられているので、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が同時にそれぞれのアプリケーション処理を実行できる。そして、データ公開タスク25は、アプリケーションデータをアプリケーションデータ保存部23のグローバル領域23bに保存してアプリケーションデータを公開する。
<データ取得タスク及びデータ公開タスクによる第1処理>
第一の電子制御装置(カメラECU)6では、1周期目が開始されるリードタイミングでデータ取得タスク24が画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222に必要なデータ(例えば、カメラ画像データ9)を取得する。次に、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222がアプリケーション処理を行ってアプリケーションデータ(例えば、カメラ物体検知データ10)を生成する。このように、第一のコア11及び第二のコア12には、それぞれ割り付けられた画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が割り付けられているので、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が同時にそれぞれのアプリケーション処理を実行できる。そして、データ公開タスク25は、アプリケーションデータをアプリケーションデータ保存部23のグローバル領域23bに保存してアプリケーションデータを公開する。
<ペリフェラルアクセス部及び通信準備処理部による第2処理>
1周期目では、他の電子制御装置から受信した通信データに基づいた処理も行われる。
タスク起動時刻管理部26により起動管理されるペリフェラルアクセス部202(受信側)は、リードタイミングでペリフェラル3にアクセスし、通信データを読み出すと、通信データ保存部28に保存する。通信準備処理部201(受信側)は、通信データ保存部28から読み出した通信データに対して、各アプリケーションモジュールが処理可能なアプリケーションデータに変換し、変換後のアプリケーションデータをアプリケーションデータ保存部23に保存する。画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222は、アプリケーションデータ保存部23から読み出したアプリケーションデータを用いてアプリケーション処理を実行する。
1周期目では、他の電子制御装置から受信した通信データに基づいた処理も行われる。
タスク起動時刻管理部26により起動管理されるペリフェラルアクセス部202(受信側)は、リードタイミングでペリフェラル3にアクセスし、通信データを読み出すと、通信データ保存部28に保存する。通信準備処理部201(受信側)は、通信データ保存部28から読み出した通信データに対して、各アプリケーションモジュールが処理可能なアプリケーションデータに変換し、変換後のアプリケーションデータをアプリケーションデータ保存部23に保存する。画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222は、アプリケーションデータ保存部23から読み出したアプリケーションデータを用いてアプリケーション処理を実行する。
上記の第1及び第2の処理が完了すると、アプリケーションデータ保存部23に処理後のアプリケーションデータが保存される。通信準備処理部201は、アプリケーションデータ保存部23から読み出したアプリケーションデータの通信準備処理を行い、通信データ保存部28に通信データを保存する。その後、ペリフェラルアクセス部202が通信データ保存部28から通信データを読み出し、ライトタイミングでペリフェラル3のレジスタ31に通信データを書き込む。ここで、第一の電子制御装置(カメラECU)6におけるリードタイミングからライトタイミングまでは、100ミリ秒で固定されている。
(2周期目)
車載ネットワーク4のバスでは、通信データの通信処理が行われ、第一の電子制御装置(カメラECU)6のペリフェラル3から、第二の電子制御装置(自動運転ECU)7のペリフェラル3に向けて通信データが送信される。
車載ネットワーク4のバスでは、通信データの通信処理が行われ、第一の電子制御装置(カメラECU)6のペリフェラル3から、第二の電子制御装置(自動運転ECU)7のペリフェラル3に向けて通信データが送信される。
(3周期目)
3周期目の処理も1周期目の処理と同様に、データ取得タスク24及びデータ公開タスク25による第1処理、又はペリフェラルアクセス部202及び通信準備処理部201による第2処理が行われる。なお、3周期目の処理は、第二の電子制御装置(自動運転ECU)7で行われるため、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224がアプリケーション処理を実行する点が1周期目と異なる。
3周期目の処理も1周期目の処理と同様に、データ取得タスク24及びデータ公開タスク25による第1処理、又はペリフェラルアクセス部202及び通信準備処理部201による第2処理が行われる。なお、3周期目の処理は、第二の電子制御装置(自動運転ECU)7で行われるため、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224がアプリケーション処理を実行する点が1周期目と異なる。
本実施形態に係る技術は、非特許文献1に開示された技術とは異なり、固定するタイミングをアプリケーションモジュールの開始時刻と終了時刻ではなく、アプリケーションモジュールと通信準備処理部201を合わせた処理の開始時刻と終了時刻とする。また、通信準備処理部201は第一のコア11及び第二のコア12の両方で実行される。したがって、図11に示した150マイクロ秒のCPU処理時間を要していた通信処理のうち、130マイクロ秒分の処理が通信準備処理部201の処理として並列化される。
図16は、第1の実施形態に係る技術と、非特許文献1に開示された技術とを比較したタイミングチャートである。
図16の上側には、第1の実施形態に係る各処理のタイミングの例が示される。第一のコア11と第二のコア12の処理は同時に開始可能である。そして、第一のコア11と第二のコア12は、CPUによる通信処理を通信準備処理部(130マイクロ秒)とペリフェラルアクセス部(20マイクロ秒)に分離する。
第一のコア11のペリフェラルアクセス部202(受信側)は、20マイクロ秒で受信処理を行う。その後、第一のコア11と第二のコア12は、通信準備処理部201(受信側)と通信準備処理部201(送信側)を並列処理とし、アプリケーション処理(画像認識アプリケーション(前方)と画像認識アプリケーション(後方))も並列で実行する。そして、第一のコア11は、ペリフェラルアクセス部202(送信側)を一つのコアで実行する。このため、車載ネットワーク4で行われる通信処理は、CPU1の処理を待たなくてよくなり、車載ネットワーク4の帯域の制限が解消される。
図16の下側には、非特許文献1に開示された技術に係る各処理のタイミングの例が示される。非特許文献1に開示された技術では、図8と図9に示したように、通信専用の第一のコア11と、アプリケーション専用の第二のコア12に分離されている。このため、アプリケーション専用の第二のコア12で順に、画像認識アプリケーション(車両前方)と画像認識アプリケーション(車両後方)の処理が行われた後、第一のコア11で通信処理が行われる。そして、通信専用の第一のコア11は、画像認識アプリケーション(車両前方)の処理データと、画像認識アプリケーション(車両後方)の処理データを順に車載ネットワーク4を介して第二の電子制御装置(自動運転ECU)7に送信するための通信処理を行う。
ここで、通信専用の第一のコア11で画像認識アプリケーション(車両前方)の処理データの通信処理が終わると、車載ネットワーク4で画像認識アプリケーション(車両前方)の処理データが通信される。しかし、車載ネットワーク4が、例えば、1ギガビットイーサネットのような高速大容量通信とした場合には、第一のコア11が通信に要するCPU処理(150マイクロ秒)が、フレームデータが車載ネットワーク4のバスを流れている時間(80マイクロ秒)よりも長い。このため、車載ネットワーク4では、通信専用の第一のコア11が画像認識アプリケーション(車両後方)の処理データの通信処理を終えるまで処理待ちが発生する。通信専用の第一のコア11における通信処理が終わると、車載ネットワーク4が、画像認識アプリケーション(車両後方)のフレームデータを車載ネットワーク4のバスに流すことができる。このように車載ネットワーク4の通信帯域には制限が生じてしまう。
以上説明した第1の実施形態に係る電子制御装置100では、LETとして固定するタイミングを、各アプリケーション処理部におけるアプリケーション処理の開始時刻と終了時刻ではなく、各アプリケーション処理部におけるアプリケーション処理の開始時刻から通信準備処理の終了時刻とする。そして、各コアには、通信準備処理部201をそれぞれ設けた。このようにLETを固定することにより、複数のコアで通信準備処理を同時に実行することができる。このため、従来は、一つのコアで通信準備処理を行った後、バスにフレームを送信していたので、あるアプリケーションモジュールによる通信準備処理が終わらなければ、別のアプリケーションモジュールによる通信準備処理が開始できず、結果としてフレームをバスに送信するまで待機時間が生じていた。そして、制御周期が短くなるほど、待機時間の発生により、バスに送信可能なデータ量が減少するトレードオフが発生していた。一方、本実施の形態に係る電子制御装置では、制御周期が短くなっても、バスに送信可能なデータ量を減少させなくてよい。また、複数の電子制御装置間で大量のデータ通信が必要な場合においても、LET(タイミング固定)を導入することが可能となるので、ソフトウェアの開発コストを削減する効果を有する。
また、上述したように第1の実施形態に係る電子制御装置100では、LETの開始時刻と終了時刻を固定する単位を、アプリケーションの処理と通信処理とするのではなく、アプリケーション処理と、通信準備処理及びペリフェラルアクセス処理とする。このため、処理の開始時刻と終了時刻の固定を保ちながら通信処理の大部分を各コア(演算処理部)において並列して実行することが可能となる。また、大量のデータ通信が必要な場合においても通信に関する処理の開始時刻から終了時刻までの時間延長が不要となるため、レイテンシ(通信遅延)を改善することが可能となる。
なお、第1の実施形態に係る電子制御装置100は、標準的なAUTOSARを例に挙げて電子制御装置の構成及び処理の例を説明した。ただし、通信ミドルウェア20は標準的なベーシックソフトウェアモジュールではなく、コンプレックスデバイスドライバでもよい。コンプレックスデバイスドライバは、ユーザが独自仕様で組み込み可能なソフトウェアである。
また、AUTOSAR以外の一般的なリアルタイムオペレーティングシステムを搭載した電子制御装置においても本発明を適用可能である。
また、図15に示したデータフローが保たれていることを検証するため、通信準備処理部201(送信側)は、送信時刻を示すタイムスタンプをフレームデータに付加してフレームの送信処理を行う。一方、通信準備処理部201(受信側)は、フレームの受信時に、受信したフレームに付加されたタイムスタンプを確認する処理を入れてもよい。
[第2の実施形態]
次に、本発明の第2の実施形態に係る電子制御装置の構成例及び処理方法について説明する。第2の実施形態に係る電子制御装置が第1の実施形態と異なる点は、通信ミドルウェア20が軽量通信ドライバとなっている点である。なお、第1の実施形態と同様の構成については、同一の符号を付してその説明を省略する。
次に、本発明の第2の実施形態に係る電子制御装置の構成例及び処理方法について説明する。第2の実施形態に係る電子制御装置が第1の実施形態と異なる点は、通信ミドルウェア20が軽量通信ドライバとなっている点である。なお、第1の実施形態と同様の構成については、同一の符号を付してその説明を省略する。
<軽量通信ドライバ>
軽量通信ドライバを実行可能な第一の電子制御装置(カメラECU)6A及び第二の電子制御装置(自動運転ECU)7Aの構成例について、図17と図18を参照して説明する。
図17は、第2の実施形態に係る第一の電子制御装置(カメラECU)6Aにおけるソフトウェアアーキテクチャを示した図である。
軽量通信ドライバを実行可能な第一の電子制御装置(カメラECU)6A及び第二の電子制御装置(自動運転ECU)7Aの構成例について、図17と図18を参照して説明する。
図17は、第2の実施形態に係る第一の電子制御装置(カメラECU)6Aにおけるソフトウェアアーキテクチャを示した図である。
演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)は一以上設けられ、演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12)がそれぞれアプリケーション処理部(アプリケーション処理部22)を有する構成としてよい。図17では、第一の電子制御装置(カメラECU)6Aは、通信処理及びアプリケーション処理に兼用される第一のコア11だけを持つ構成として説明する。
第一のコア11に対して、OS19、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222、データ取得タスク24、データ公開タスク25、及び軽量通信ドライバ29を割り付ける。OS19には、タスク起動時刻管理部26が割り付けられる。
図18は、第2の実施形態に係る第二の電子制御装置(自動運転ECU)7Aにおけるソフトウェアアーキテクチャを示した図である。
第二の電子制御装置(自動運転ECU)7Aは、通信処理及びアプリケーション処理に兼用される第一のコア11だけを持つ。
第一のコア11に対して、OS19、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224、データ取得タスク24、データ公開タスク25、及び軽量通信ドライバ29を割り付ける。OS19には、タスク起動時刻管理部26が割り付けられる。
第一のコア11に対して、OS19、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224、データ取得タスク24、データ公開タスク25、及び軽量通信ドライバ29を割り付ける。OS19には、タスク起動時刻管理部26が割り付けられる。
図8と図9では通信専用の第一のコア11に割り付けられた、データの送信及び受信を行うための通信ミドルウェア20と通信ドライバ21の例を示した。ここで、通信準備処理部(通信準備処理部201)とペリフェラルアクセス部(ペリフェラルアクセス部202)の実行に要する処理時間の合計が、他の電子制御装置との間で通信されるデータの通信時間よりも短い場合がある。例えば、データフレームが車載ネットワーク4のバスを流れている時間よりも、通信ミドルウェア20と通信ドライバ21のCPU処理時間の合計が短い場合がある。この場合、演算処理部(演算処理部1A、第一のコア11)は、通信準備処理部(通信データ保存部201)及びペリフェラルアクセス部(ペリフェラルアクセス部202)を一体化した軽量通信ドライバ(軽量通信ドライバ29)とし、軽量通信ドライバ(軽量通信ドライバ29)が通信データの送受信処理を行う。そこで、通信ミドルウェア20と通信ドライバ21を合わせて「軽量通信ドライバ」と呼ぶ。図17と図18に示した軽量通信ドライバ29は、1つのコア(第一のコア11)で連続して送受信処理を実行しても、図16に示したようなCPUの処理待ちが発生しない。
ただし、第2の実施形態では、通信準備処理部201とペリフェラルアクセス部202を分けなくてよい。また、データ取得タスク24は、グローバル領域23bにアクセスすることで、アプリケーションモジュールの処理に必要なデータを、同一の電子制御装置内の他のアプリケーションモジュールから取得する。
図19は、本実施形態に係るLET及びLCTを、本実施形態に係る各モジュール及びタスクにマッピングした例を示す図である。ここで、LET及びLCTをマッピングする各モジュール及びタスクは、図17と図18に示したものである。以下に説明する各モジュール及びタスクのうち、(受信側)と付した各モジュール及びタスクはデータの受信処理を担い、(送信側)と付した各モジュール及びタスクはデータの送信処理を担うものとする。
(1周期目)
第一の電子制御装置(カメラECU)6Aでは、1周期目が開始されるリードタイミングにマッピングされたデータ取得タスク24がデータを取得する。次に、軽量通信ドライバ29(受信側)が受信したデータの受信処理を行う。次に、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が処理を実行する。そして、1周期目が終了するライトタイミングで、データ公開タスク25が処理後のデータをペリフェラル3のレジスタ31に書き込み、軽量通信ドライバ29(送信側)が車載ネットワーク4にデータを送信する送信処理を行う。
第一の電子制御装置(カメラECU)6Aでは、1周期目が開始されるリードタイミングにマッピングされたデータ取得タスク24がデータを取得する。次に、軽量通信ドライバ29(受信側)が受信したデータの受信処理を行う。次に、画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222が処理を実行する。そして、1周期目が終了するライトタイミングで、データ公開タスク25が処理後のデータをペリフェラル3のレジスタ31に書き込み、軽量通信ドライバ29(送信側)が車載ネットワーク4にデータを送信する送信処理を行う。
(2周期目)
車載ネットワーク4のバスでは、第一の電子制御装置(カメラECU)6Aから第二の電子制御装置(自動運転ECU)7Aに向けてデータが通信される。
車載ネットワーク4のバスでは、第一の電子制御装置(カメラECU)6Aから第二の電子制御装置(自動運転ECU)7Aに向けてデータが通信される。
(3周期目)
第二の電子制御装置(自動運転ECU)7Aでは、3周期目が開始されるリードタイミングにマッピングされたデータ取得タスク24がデータを取得する。次に、軽量通信ドライバ29(受信側)がデータの受信処理を行う。次に、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224が処理を実行する。そして、3周期目が終了するライトタイミングで、データ公開タスク25が処理後のデータをペリフェラル3のレジスタ31に書き込み、軽量通信ドライバ29(送信側)がデータの送信処理を行う。
第二の電子制御装置(自動運転ECU)7Aでは、3周期目が開始されるリードタイミングにマッピングされたデータ取得タスク24がデータを取得する。次に、軽量通信ドライバ29(受信側)がデータの受信処理を行う。次に、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224が処理を実行する。そして、3周期目が終了するライトタイミングで、データ公開タスク25が処理後のデータをペリフェラル3のレジスタ31に書き込み、軽量通信ドライバ29(送信側)がデータの送信処理を行う。
図19に示したように、データ取得タスク24による処理の終了後は、タスク起動時刻管理部26が直ちに軽量通信ドライバ29をコールしてデータの受信処理を行う。そして、データ公開タスク25はアプリケーションモジュールの処理結果をグローバル領域23bに書き込むことにより同一電子制御装置内の他のアプリケーションモジュールに対してデータを公開する。また、データ公開タスク25の処理の終了後は、タスク起動時刻管理部26が直ちに軽量通信ドライバ29をコールしてデータの送信処理を行う。
以上説明した第2の実施形態に係る電子制御装置100では、コアが1つしか存在しない場合においても、タイミング固定によるソフトウェアの開発費削減を実現することができる。また、電子制御装置100がマルチコアで構成される場合においても、非特許文献1に開示された技術と異なり、通信専用コアを設置する必要がない。このため、電子制御装置100で使用するCPUのコア数を削減することができる。このように、第2の実施形態に係る電子制御装置100では、図8に示した通信ミドルウェア20と通信ドライバ21を改造することなく、また使用可能なコア数に制限がある場合においても、タイミング固定によるソフトウェアの開発費削減が実現される効果を有する。
[第3の実施形態]
次に、本発明の第3の実施形態に係る電子制御装置の構成例及び処理方法について、図20~図21を参照して説明する。
第3の実施形態に係る電子制御装置が、第1の実施形態に係る電子制御装置と異なる点は、第一の電子制御装置に搭載されたアプリケーションモジュールを、第二の電子制御装置に搭載するように変更した点である。なお、第1の実施形態と同様の構成については、同一の符号を付してその説明を省略する。
図20は、第3の実施形態に係る第三の電子制御装置(セントラルECU)71を搭載した車両制御装置5Aの構成例を示した図である。
次に、本発明の第3の実施形態に係る電子制御装置の構成例及び処理方法について、図20~図21を参照して説明する。
第3の実施形態に係る電子制御装置が、第1の実施形態に係る電子制御装置と異なる点は、第一の電子制御装置に搭載されたアプリケーションモジュールを、第二の電子制御装置に搭載するように変更した点である。なお、第1の実施形態と同様の構成については、同一の符号を付してその説明を省略する。
図20は、第3の実施形態に係る第三の電子制御装置(セントラルECU)71を搭載した車両制御装置5Aの構成例を示した図である。
<車両制御装置5A>
車両制御装置5Aは、第二の電子制御装置(自動運転ECU)7の代わりに第三の電子制御装置(セントラルECU)71を備える。
第三の電子制御装置71は、中央コンピュータであって、AI(Artificial Intelligence)や画像処理など、負荷の重い演算を担うため、計算性能が重視された電子制御装置が用いられる。第三の電子制御装置(セントラルECU)71に対して、不図示のゾーンECUが設けられる。ゾーンECUは、車両を区分けしたゾーンごとにセンサ制御、アクチュエータ制御などの負荷の軽い演算を担っており、安全性が重視された電子制御装置が用いられる。
車両制御装置5Aは、第二の電子制御装置(自動運転ECU)7の代わりに第三の電子制御装置(セントラルECU)71を備える。
第三の電子制御装置71は、中央コンピュータであって、AI(Artificial Intelligence)や画像処理など、負荷の重い演算を担うため、計算性能が重視された電子制御装置が用いられる。第三の電子制御装置(セントラルECU)71に対して、不図示のゾーンECUが設けられる。ゾーンECUは、車両を区分けしたゾーンごとにセンサ制御、アクチュエータ制御などの負荷の軽い演算を担っており、安全性が重視された電子制御装置が用いられる。
車両制御装置5Aに含まれる第一の電子制御装置(カメラECU)6Bは、第1の実施形態と異なり、カメラ8から取得したカメラ画像データ9を予め決められた時刻に車載ネットワーク4に送信する役割のみを持つ。第一の電子制御装置(カメラECU)6Bにより車載ネットワーク4に送信されたカメラ画像データ9は、第三の電子制御装置(セントラルECU)71が受信する。
第三の電子制御装置(セントラルECU)71は、カメラ画像データ9に基づいて、ステアリング制御指令13、アクセル制御指令14及びブレーキ制御指令15を生成する。そして、第三の電子制御装置(セントラルECU)71は、各指令を出力することで、ステアリング16、アクセル17及びブレーキ18の動作を制御する。
また、第三の電子制御装置(セントラルECU)71は、公知のOTA(Over the air)技術によって、第三の電子制御装置(セントラルECU)71で動作するソフトウェアを更新可能である。
図21は、本実施形態に係る第三の電子制御装置(セントラルECU)71におけるソフトウェアアーキテクチャを示した図である。
第3の実施形態に係る複数の電子制御装置の一つ(第三の電子制御装置(セントラルECU)71)は、複数の演算処理部(演算処理部1A,1B、3つのコア(第一のコア11、第二のコア12及び第三のコア72))を有する。第一のコア11、第二のコア12及び第三のコア72は、いずれもアプリケーションと通信の兼用とする。複数の演算処理部(演算処理部1A,1B、第一のコア11、第二のコア12及び第三のコア72)のそれぞれに一つ以上のアプリケーション処理部(アプリケーション処理部22)が設けられる。そして、複数の演算処理部の一つ(第一のコア11)に、アプリケーション処理部(アプリケーション処理部22)の機能を更新する更新部(ソフトウェア更新部73)を有する。
第一のコア11には、図14に示した第1の実施形態に係る第二の電子制御装置(自動運転ECU)7に搭載されていた軌道生成アプリケーションモジュール223、OS19、データ取得タスク24、データ公開タスク25、通信準備処理部201、ペリフェラルアクセス部202が割り付けられる。第一のコア11のOS19は、タスク起動時刻管理部26を実行可能である。また、第一のコア11には、新たにソフトウェア更新部73が割り付けられる。
第二のコア12には、図14に示した第1の実施形態に係る第二の電子制御装置(自動運転ECU)7に搭載されていた制御指令生成アプリケーションモジュール224、OS19、データ取得タスク24、データ公開タスク25及び通信準備処理部201が割り付けられる。第二のコア12のOS19は、タスク起動時刻管理部26を実行可能である。
第三のコア72には、図13に示した第1の実施形態に係る第一の電子制御装置(カメラECU)6に搭載されていた画像認識アプリケーションモジュール(車両前方)221及び画像認識アプリケーションモジュール(車両後方)222、OS19、データ取得タスク24、データ公開タスク25及び通信準備処理部201が割り付けられる。
第一のコア11に搭載されるソフトウェア更新部73は、OTA(Over the air)技術によって、第三の電子制御装置(セントラルECU)71に搭載されたアプリケーションモジュールを更新可能である。すなわち、ソフトウェア更新部73は、画像認識アプリケーションモジュール(車両前方)221、画像認識アプリケーションモジュール(車両後方)222、軌道生成アプリケーションモジュール223及び制御指令生成アプリケーションモジュール224を更新する役割をもつ。
ソフトウェア更新部73が行うソフトウェア更新は、通常は、各アプリケーションモジュールの起動時か、終了後に実施される。多くのコンピュータでは、マスターコアとスレーブコアが指定され、マスターコアがスレーブコアを含めてソフトウェアの更新を実施する。マスターコアのコア番号は「0」であることが多い。このため、第一のコア11をマスターコアとすると、ソフトウェア更新部73は、第一のコア11で実行される。このソフトウェア更新部73は、軌道生成アプリケーションモジュール223、制御指令生成アプリケーションモジュール224もアップデートすることは可能である。
ソフトウェア更新部73は、自動運転における軌道生成アプリケーションモジュール223、制御指令生成アプリケーションモジュール224の機能を随時アップデートすることが可能となる。また、ソフトウェア更新部73は、カメラ画像データ9に対して行われる画像認識アプリケーションモジュール221,222の画像処理機能についてもアップデートを行うことで、各モジュールの画像認識の性能を改善することが可能となる。
第1の実施形態においては、第一の電子制御装置(カメラECU)6から第二の電子制御装置(自動運転ECU)7に送信されるデータはカメラ物体検知データ10であった。一方、第3の実施形態においては、第一の電子制御装置(カメラECU)6Bから第三の電子制御装置(セントラルECU)71に送信されるデータはカメラ画像データ9である。第3の実施形態では、第1の実施形態のような第一の電子制御装置(カメラECU)6から第二の電子制御装置(自動運転ECU)7に車載ネットワーク4を通じてカメラ物体検知データ10を送信する処理が不要となる。このため、第三の電子制御装置(セントラルECU)71が画像認識後、自動運転のための軌道生成及び制御指令生成を行う処理が短縮され、車両の速やかな運転制御が可能となる。
また、図4を参照して説明したように、カメラ画像データ9のデータサイズは数メガバイト程度あるため、非特許文献1に開示された技術では通信帯域に制限が生じていたためカメラ画像データ9を送受信することは不可能であった。一方、第3の実施形態に係る技術では、通信帯域に制限が生じないため、このようなアプリケーションモジュールの配置が可能となる。
以上説明した第3の実施形態に係る車両制御装置5Aでは、第1の実施形態に係る車両制御装置5において第一の電子制御装置(カメラECU)6と第二の電子制御装置(自動運転ECU)7に分散して搭載されていた各アプリケーションモジュールが一つの第三の電子制御装置(セントラルECU)71に統合される。そして、ソフトウェア更新部73により任意のタイミングでアプリケーションモジュールの機能が更新される。このため、機能が向上したアプリケーションモジュールを用いて、画像認識、車両の運転制御の精度を高めることができる。
また、本発明はタイミング固定によるソフトウェア開発コスト削減を目的としたものである。そして、アプリケーションモジュールの更新により、更新前後で各アプリケーションモジュールの入力及び出力のタイミングが変動する可能性が排除される。このため、OTAによるソフトウェア更新は、第3の実施形態に係る第三の電子制御装置(セントラルECU)71に対して特に有用となる。
このため、第3の実施形態に係る車両制御装置5Aでは、車両内のアプリケーションモジュールの配置を柔軟に変えることができる。また、複数の電子制御装置を統合し、複数のアプリケーションモジュールの更新を容易に実行可能とする効果を有する。
なお、本発明は上述した各実施形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、さらにはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
例えば、上述した各実施形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、さらにはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1…CPU、1A,1B…演算処理部、2…RAM、2A…データ保存部、3…ペリフェラル、4…車載ネットワーク、5…車両制御装置、6…第一の電子制御装置(カメラECU)、7…第二の電子制御装置(自動運転ECU)、11…第一のコア、12…第二のコア、19…OS、22…アプリケーション処理部、23…アプリケーションデータ保存部、24…データ取得タスク、25…データ公開タスク、26…タスク起動時刻管理部、28…通信データ保存部、100…電子制御装置、201…通信準備処理部、202…ペリフェラルアクセス部、221~224…アプリケーションモジュール
Claims (11)
- アプリケーション処理を行うアプリケーション処理部を有する演算処理部と、
前記演算処理部で処理されるデータを保存するデータ保存部と、
前記データ保存部から読み出した前記データを他の電子制御装置に送信し、又は他の前記電子制御装置からデータを受信するペリフェラルと、を備え、
前記演算処理部が前記アプリケーション処理のために前記データ保存部に前記データを入出力する第1タイミングと、前記演算処理部が前記データ保存部から読み出した前記データを前記ペリフェラルに渡して、前記ペリフェラルが他の前記電子制御装置に前記データを送信する第2タイミングとが予め固定される
電子制御装置。 - 前記演算処理部は、前記アプリケーション処理部と、前記アプリケーション処理により生成されたアプリケーションデータの通信準備を行う通信準備処理部とを有し、
前記データ保存部は、前記アプリケーションデータを保存するアプリケーションデータ保存部と、前記通信準備処理部により生成された通信データを保存する通信データ保存部とを有し、
少なくとも一つの前記演算処理部は、前記通信データ保存部及び前記ペリフェラルにアクセスするペリフェラルアクセス部と、前記ペリフェラルアクセス部とを起動する起動時刻を管理する起動時刻管理部とを有し、
前記起動時刻管理部は、予め決められた内部時刻に基づいて、前記第1タイミングで前記アプリケーション処理部を動作させ、前記第2タイミングで前記ペリフェラルアクセス部を動作させる
請求項1に記載の電子制御装置。 - 前記第1タイミングは、前記アプリケーション処理部が前記アプリケーションデータ保存部に対して前記データを入出力するタイミングとして固定され、
前記第2タイミングは、前記ペリフェラルアクセス部が前記通信データ保存部に保存された前記通信データを前記ペリフェラルに転送するタイミングとして固定される
請求項2に記載の電子制御装置。 - 前記内部時刻は、外部から受信する時刻同期用の信号により補正される
請求項3に記載の電子制御装置。 - 前記アプリケーションデータ保存部は、それぞれの前記アプリケーション処理部が前記アプリケーション処理の途中のデータを一時的に保存する領域として、処理を実行している前記アプリケーション処理部だけが使用するローカル領域と、前記アプリケーション処理部が処理を完了した結果のデータを保存し、他の前記アプリケーション処理部に前記データを使用可能に公開するグローバル領域と、を有し、
前記アプリケーション処理部は、前記第1タイミングで前記グローバル領域にアクセスする
請求項4に記載の電子制御装置。 - 前記演算処理部は、予め決められた内部時刻に基づいて、前記通信準備処理部、前記ペリフェラルアクセス部の順に起動して、前記通信準備処理部が前記通信データ保存部に前記通信データを保存する処理と、前記ペリフェラルアクセス部が前記通信データ保存部から読み出した前記通信データであって、前記ペリフェラルが他の前記電子制御装置に送信するデータを前記ペリフェラルに格納する処理とを行い、
予め決められた内部時刻に基づいて、前記ペリフェラルアクセス部、前記通信準備処理部の順に起動して、前記ペリフェラルが他の前記電子制御装置から受信したデータを前記ペリフェラルアクセス部が取得し、前記通信データ保存部に書き込む処理と、前記通信準備処理部が前記通信データ保存部から読み出した前記通信データを前記アプリケーションデータ保存部に書き込む処理とを行う
請求項5に記載の電子制御装置。 - 前記通信準備処理部は、AUTOSAR(登録商標)に規定されるサービスレイヤとハードウェア抽象化レイヤであり、
前記ペリフェラルアクセス部は、AUTOSARに規定されるドライバであり、
前記通信データ保存部は、前記ハードウェア抽象化レイヤと、前記ドライバとの間に設けられる
請求項3に記載の電子制御装置。 - 前記通信準備処理部と前記ペリフェラルアクセス部の実行に要する処理時間の合計が、他の前記電子制御装置との間で通信される前記データの通信時間よりも短い場合に、前記演算処理部は、前記通信準備処理部及び前記ペリフェラルアクセス部を一体化した軽量通信ドライバとし、前記軽量通信ドライバが前記通信データの送受信処理を行う
請求項3に記載の電子制御装置。 - 複数の前記演算処理部の一つに、前記アプリケーション処理部の機能を更新する更新部を有する
請求項3に記載の電子制御装置。 - 複数の前記電子制御装置は、前記ペリフェラルを通じて互いに車載ネットワークにより前記データの通信を行い、
送信側の前記電子制御装置が前記車載ネットワークに前記データを送信する処理の完了時刻と、受信側の前記電子制御装置が前記車載ネットワークから前記データを受信する処理の開始時刻とが規定され、
複数の前記電子制御装置のそれぞれが有する起動時刻管理部は、規定された前記完了時刻及び前記開始時刻に基づいて、複数の前記電子制御装置のそれぞれが有するペリフェラルアクセス部を起動する
請求項3に記載の電子制御装置。 - 複数の前記電子制御装置の一つは、カメラが撮像したカメラ画像データから物体検知を行った結果であるカメラ物体検知データを前記車載ネットワークに送信し、
複数の前記電子制御装置の一つは、前記カメラ物体検知データに基づいて、車両の制御対象であるステアリングの目標角度の制御指令値、アクセルの目標加速力の制御指令値、及びブレーキの目標減衰力の制御指令値のうち、少なくとも一つを生成して前記制御対象に前記制御指令値を送信する
請求項10に記載の電子制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022072189A JP2023161698A (ja) | 2022-04-26 | 2022-04-26 | 電子制御装置 |
PCT/JP2023/005995 WO2023210128A1 (ja) | 2022-04-26 | 2023-02-20 | 電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022072189A JP2023161698A (ja) | 2022-04-26 | 2022-04-26 | 電子制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023161698A true JP2023161698A (ja) | 2023-11-08 |
Family
ID=88518559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022072189A Pending JP2023161698A (ja) | 2022-04-26 | 2022-04-26 | 電子制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023161698A (ja) |
WO (1) | WO2023210128A1 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5671388B2 (ja) * | 2011-03-24 | 2015-02-18 | 富士通テン株式会社 | 通信システムおよび通信装置 |
DE102016202305A1 (de) * | 2016-02-16 | 2017-08-17 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Betreiben eines Steuergeräts |
WO2020090108A1 (ja) * | 2018-11-02 | 2020-05-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 不正制御防止システムおよび、不正制御防止方法 |
JP7211889B2 (ja) * | 2019-05-13 | 2023-01-24 | 日立Astemo株式会社 | 車両制御装置、及び、車両制御システム |
JP7425685B2 (ja) * | 2020-07-07 | 2024-01-31 | 日立Astemo株式会社 | 電子制御装置 |
-
2022
- 2022-04-26 JP JP2022072189A patent/JP2023161698A/ja active Pending
-
2023
- 2023-02-20 WO PCT/JP2023/005995 patent/WO2023210128A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023210128A1 (ja) | 2023-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101522477B1 (ko) | 시뮬레이션 방법, 시스템 및 프로그램 | |
EP3821348A1 (en) | Streaming engine | |
US20060212178A1 (en) | Vehicle control software and vehicle control apparatus | |
CN114268666A (zh) | 支持面向服务架构soa的通用域控制器、车辆及交互系统 | |
WO2011148920A1 (ja) | マルチプロセッサシステム、実行制御方法、実行制御プログラム | |
EP1739890A2 (en) | Processing of data frames exchanged over a communication controller in a time-triggered system | |
US20220222129A1 (en) | System for parallel processing middleware node application algorithms using threads | |
KR20100048857A (ko) | 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법 | |
WO2010016169A1 (ja) | マルチプロセッサシステム及びその制御方法 | |
Wurst et al. | System performance modelling of heterogeneous hw platforms: An automated driving case study | |
Ernst | Automated driving: The cyber-physical perspective | |
US20200150648A1 (en) | Vehicle control apparatus | |
US12073261B2 (en) | Synchronization method and apparatus | |
CN117312215B (zh) | 一种服务器系统、作业执行方法、装置及设备和介质 | |
CN112867998B (zh) | 运算加速器、交换器、任务调度方法及处理系统 | |
WO2023210128A1 (ja) | 電子制御装置 | |
CN112673351B (zh) | 流式传输引擎 | |
US20220300445A1 (en) | Electronic Control Unit, Vehicle Comprising the Electronic Control Unit and Computer-Implemented Method | |
Pöhnl et al. | A middleware journey from microcontrollers to microprocessors | |
Zeng et al. | Design space exploration of automotive platforms in metropolis | |
JP3256812B2 (ja) | 通信制御装置およびプロセッサ装置 | |
JP2004220326A (ja) | 制御ソフトウエア構造およびこの構造を用いた制御装置 | |
JP7146075B2 (ja) | 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置 | |
US20160034291A1 (en) | System on a chip and method for a controller supported virtual machine monitor | |
US20240199070A1 (en) | Method for operating a data processing system |