以下において、図面を参照しながら、本開示を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
(第1実施形態)
図1~図6を用いて、本実施形態の電子制御装置100に関して説明する。本実施形態では、一例として、ディーゼルエンジンの燃料噴射制御を行う電子制御装置100を採用している。しかしながら、本開示は、これに限定されず、他の制御を行うものであっても採用できる。
まず、図1を用いて、電子制御装置100の構成に関して説明する。電子制御装置100は、マルチコアマイコン1a、入力回路2、ドライバ3などを備えている。また、電子制御装置100は、クランク角センサ210、アクセル開度センサ220、コモンレール圧センサ230、アクチュエータ300と電気的に接続されている。なお、以下においては、マルチコアマイコンを単にマイコンと簡略化して記載する。
クランク角センサ210は、エンジン回転数を得るためのセンサであり、クランク角に応じた電気信号(検出値)を出力する。この電気信号は、クランク角信号とも言える。マイコン1aは、クランク角信号に基づいてエンジン回転数を得ることができる。アクセル開度センサ220は、運転者により操作されるアクセルペダルの操作量(アクセル開度)に応じた電気信号を出力する。この電気信号は、アクセル開度信号とも言える。コモンレール圧センサ230は、コモンレールの内部の燃料圧力(コモンレール圧力)を得るためのセンサであり、コモンレール圧力に応じた電気信号(検出値)を出力する。この電気信号は、コモンレール圧信号とも言える。各センサ210~230は、各検出値を入力回路2に出力する。よって、電子制御装置100は、クランク角信号とアクセル開度信号とコモンレール圧信号を取得することができる。
アクチュエータ300は、制御対象に相当する。本実施形態では、アクチュエータ300としてインジェクタを採用している。アクチュエータ300は、電子制御装置100から出力された駆動信号としての出力パルスのオンとオフに応じて駆動する。電子制御装置100は、コアマイコン1aの各コア11a、12aで制御信号を分割して処理することで、アクチュエータ300を制御する。
マイコン1aは、第1コア11a、第2コア12a、RAM13aなどを備えている。また、マイコン1aは、図示を省略しているが、AD変換器や、プログラムを格納している不揮発性メモリや、入力回路2やドライバ3などの外部周辺機器と通信するための入出力部を備えている。AD変換器は、各センサ210~230の検出値をAD変換する。
なお、本実施形態では、一例として、コアとして二つのコア11a、12aを備えたマイコン1aを採用している。しかしながら、本開示は、これに限定されず、少なくとも二つのコアを備えていればよい。よって、マイコン1aは、三つ以上のコアを備えていてもよい。
第1コア11aと第2コア12aは、不揮発性メモリから読み込んだプログラムに従って、RAM13aに記憶されたデータや、入力回路2から取得したクランク角信号とアクセル開度信号を用いつつ演算処理を行う。また、第1コア11aと第2コア12aは、演算結果のデータをRAM13aに一時的に記憶する。
よって、RAM13aは、第1コア11aと第2コア12aとに共通に設けられている。言い換えると、第1コア11aと第2コア12aは、RAM13aを共有する。第1コア11aと第2コア12aは、RAM13aに対して、読み出し、書き込みを行う。RAM13aは、共有RAMとも言える。
マイコン1aは、クランク角信号とアクセル開度信号により燃料の噴射量、噴射開始タイミング、噴射段数などを算出する。そして、マイコン1aは、算出した燃料の噴射量、噴射開始タイミング、噴射段数などに基づいて、ドライバ3に対して制御信号を出力する。マイコン1aは、制御信号を出力することで、アクチュエータ300を駆動するための駆動信号をドライバ3から出力させる。つまり、マイコン1aは、ドライバ3を介して駆動信号としての出力パルスのオンとオフを切り替えてアクチュエータ300を駆動する。また、マイコン1aは、アクチュエータ300を駆動することで燃料噴射制御を実現している。
なお、電子制御装置100は、エンジン水温、過給圧、大気圧、燃料温度等に応じた電気信号を出力するセンサと接続されていてもよい。この場合、マイコン1aは、これらの電気信号も考慮して、燃料の噴射量、噴射開始タイミング、噴射段数などを算出することができる。
第1コア11aと第2コア12aは、一つの制御対象であるアクチュエータ300を制御するための制御信号を分割して処理するように構成されている。このため、アクチュエータ300を制御するための複数の制御処理は、一部が第1コア11aに割り当てられて(配置されて)おり、他の一部が第2コア12aに割り当てられている。なお、アクチュエータ300を制御するための複数の制御処理は、駆動信号を出力するための複数の制御処理とも言える。
ここでは、複数の制御処理の一例として、噴射開始処理S1、補正演算処理S2、第1他処理S3、第2他処理S4、噴射終了処理S5、第3他処理S6を採用している。よって、電子制御装置100は、各コア11a、12aに配置した複数の制御処理S1、S2、S5を実行することで燃料噴射制御を実現する。
詳述すると、第1コア11aは、例えば、噴射開始処理S1、補正演算処理S2、第1他処理S3、第2他処理S4が割り当てられている。一方、第2コア12aは、例えば、噴射終了処理S5、第3他処理S6が割り当てられている。
言い換えると、不揮発性メモリに記憶されたプログラムは、第1コア11aが実行する噴射開始処理S1、補正演算処理S2、第1他処理S3、第2他処理S4に相当する命令を含んでいる。また、プログラムは、第2コア12aが実行する噴射終了処理S5、第3他処理S6に相当する命令を含んでいる。さらに、処理分割としては、第1コア11aに噴射開始処理S1、補正演算処理S2、第1他処理S3、第2他処理S4を配置し、第2コア12aに噴射終了処理S5、第3他処理S6を配置するとも言える。
よって、第1コア11aは、プログラムに従って、噴射開始処理S1、補正演算処理S2、第1他処理S3、第2他処理S4を実行する。一方、第2コア12aは、プログラムに従って、噴射終了処理S5、第3他処理S6を実行する。つまり、電子制御装置100では、時間制約が厳しく制御処理単位での分割が難しい制御信号処理に関して、制御処理単位で各コア11a、12aへ分割するものではない。なお、噴射開始処理S1は、開始処理に相当する。噴射終了処理S5は、終了処理に相当する。
しかしながら、本開示は、これに限定されない。本開示は、第1コア11aに噴射開始処理S1が割り当てられ第1コア11aが噴射開始処理S1を実行し、第2コア12aに噴射終了処理S5が割り当てられ第2コア12aが噴射終了処理S5を実行するものであればよい。よって、第1コア11aは、噴射開始処理S1に加えて、上記とは異なる制御処理が割り当てられていてもよい。同様に、第2コア12aは、噴射終了処理S5に加えて、上記とは異なる制御処理が割り当てられていてもよい。
上記のように、マイコン1aは、アクチュエータ300を制御するための複数の制御処理が第1コア11aと第2コア12aに分割されている。このため、マイコン1aは、制御処理間を連携する必要がある。そこで、本実施形態では、一例として、イベントトリガを用いて、制御処理間を連携するマイコン1aを採用している。なお、マイコン1aの処理動作に関しては、後程詳しく説明する。
入力回路2は、マイコン1aと、クランク角センサ210とアクセル開度センサ220とコモンレール圧センサ230とが接続されている。入力回路2は、クランク角センサ210から出力されたクランク角信号と、アクセル開度センサ220から出力されたアクセル開度信号と、コモンレール圧センサ230から出力されたコモンレール圧信号とが入力される。クランク角信号とアクセル開度信号とコモンレール圧信号は、入力回路2を介してマイコン1aに入力される。
ドライバ3は、マイコン1aとアクチュエータ300とが接続されている。ドライバ3は、マイコン1aからの制御信号に応じて、アクチュエータ300に対する出力パルスのオンとオフを切り替える。
ここで、図2~図6を用いて、マイコン1aの処理動作に関して説明する。なお、図6のタイムチャートは、電子制御装置100の処理動作を示すものであり、各コア11a、12aに配置した各制御処理S1~S6と出力パルスの関係を示している。
まずは、図2、図3、図6を用いて、第1コア11aの処理動作に関して説明する。第1コア11aは、クランク角信号に同期して、予め設定されたタイミングで噴射開始処理S1を起床する。そして、ステップS10では、噴射開始処理S1を実行する。この噴射開始処理S1に関しては、後程、図3を用いて説明する。
なお、図6に示すように、第1コア11aは、噴射開始処理S1を実行する前に、優先度が高い第1他処理S3を実行している場合、クランク角信号に同期して噴射開始処理S1を起床できないこともある。しかしながら、第1コア11aは、第1コア11aに割り当てられた噴射開始処理S1とは異なる制御処理が終了しだい、噴射開始処理S1を起床可能に構成されている。つまり、第1コア11aは、第1他処理S3が終了しだい、噴射開始処理S1を起床可能に構成されている。よって、第1コア11aは、処理開始遅れが発生するものの、噴射開始処理S1を起床することができる。
これによって、第1コア11aは、第2コア12aの処理状況にかかわらず、第1コア11aに割り当てられた制御処理を繰り返し実行可能となる。このため、電子制御装置100は、高効率化が可能となる。
ここで、図3を用いて、第1コア11aの噴射開始処理S1に関して説明する。ステップS11では、エンジン回転数、アクセル開度、温度などの情報に基づいて、燃料の噴射量、噴射開始タイミング、噴射段数を算出する。ステップS12では、算出結果である燃料の噴射量、噴射開始タイミング、噴射段数をRAM13aに格納する。
ステップS13では、噴射開始タイミングと出力パルスのオンをセットする。そして、第1コア11aは、マイコン1aに内蔵のタイマ機能(アウトプットコンペア機能)を用いて経過時間を算出する。第1コア11aは、経過時間が算出結果の噴射開始タイミングに達すると、ドライバ3を介してアクチュエータ300に対する出力パルスをオフからオンにする。つまり、第1コア11aは、アクチュエータ300への出力パルスをオンするように、ドライバ3に対して指示する。
その後、第1コア11aは、図2のステップS20へ戻る。また、図6に示すように、第1コア11aは、補正演算処理S2を実行する。
ステップS20では、第2コア12aへイベントトリガを通知する。第1コア11aは、噴射開始処理S1において出力パルスをオフからオンに変化させたのに同期して、第2コア12aにイベントトリガを通知する。例えば、第1コア11aは、アクチュエータ300への出力パルスの変換を検出(エッジ検出)する機能を備えている。そして、第1コア11aは、出力パルスがオフからオンに変化したことを検出すると、第2コア12aにイベントトリガを通知する。なお、イベントトリガは、特許請求の範囲におけるトリガに相当する。また、イベントトリガは、第2コア12aの起床指示や、第2コア12aのオン指示などとも言える。
次に、図4、図5、図6を用いて、第2コア12aの処理動作に関して説明する。第2コア12aは、図6に示すように、第1コア11aからのイベントトリガによって噴射終了処理S5を起床する。そして、図4のステップS30では、噴射終了処理S5を実行する。なお、噴射終了処理S5は、第2コア12aに割り当てられたその他の制御処理よりも優先度が高い状態に設定されているものとする。
噴射終了処理S5に関しては、図5を用いて説明する。ステップS31では、コモンレール圧信号をAD変換する。ステップS32では、予めアクチュエータ300のバラつき学習した結果を基に、噴射量とコモンレール圧信号から噴射期間を算出する。ステップS33では、ステップS32での算出結果をRAM13aに格納する。ステップS34では、噴射期間と出力パルスのオフをセットする。
そして、第2コア12aは、ステップS32での算出結果で、ドライバ3を介してアクチュエータ300への出力パルスをオフにする。つまり、第2コア12aは、出力パルスをオンするときと同様に、マイコン1a内蔵のタイマ機能を使用して、算出した噴射期間が経過した後に出力パルスをオフにする。
出力パルスがオフからオンに変化したタイミングは、第1コア11aで演算される開始タイミングに相当する。よって、第2コア12aは、第1コア11aで演算される開始タイミングをトリガとして噴射終了処理S5を起床すると言える。これによって、電子制御装置100は、噴射開始処理S1と噴射終了処理S5の順序を確実に守って、複数の制御処理を行うことができ、噴射開始処理S1に1対1対応で噴射終了処理S5を実行することが可能となる。
このように、電子制御装置100は、第1コア11aに噴射開始処理S1が割り当てられており、第2コア12aに噴射終了処理S5が割り当てられている。通常、各コア11a、12aは、割り当てられた制御処理を実行することでRAM13aを参照する。
また、噴射終了処理S5は、噴射開始処理S1や、その他の制御処理に比べて、RAM13aの参照が少ない。つまり、第2コア12aは、噴射終了処理S5を実行しているとき、噴射開始処理S1を実行しているときの第1コア11aよりもRAM13aの参照が少ない。また、第2コア12aは、噴射終了処理S5を実行しているとき、その他の制御処理を実行しているときの第1コア11aよりもRAM13aの参照が少ない。なお、噴射終了処理S5は、RAM13aの参照が比較的少ない制御処理とも言える。
このため、電子制御装置100は、噴射開始処理S1やその他の制御処理を第1コア11aが実行しつつ、第2コア12aが噴射終了処理S5を実行したとしても、RAM13aの参照が両コア11a、12a間で競合することを抑制できる。また、電子制御装置100は、開始処理やその他の制御処理を第1コア11aが実行しつつ、第2コア12aが噴射終了処理S5を実行できるため、処理の高速化ができる。よって、電子制御装置100は、短い時間制約であっても満たすことができる。以上のように、電子制御装置100は、コアが一つの場合、すなわちシングルコアマイコンを搭載している場合よりも性能を向上することができる。
なお、電子制御装置100は、複数の制御処理のうち噴射終了処理S5のみを第2コア12aに割り当て、その他の制御処理を第1コア11aに割り当てるものであってもよい。つまり、第2コア12aは、複数の制御処理のうち噴射終了処理S5のみを実行するものであってもよい。これによって、電子制御装置100は、両コア11a、12a間で、RAM13aの参照が競合することをより一層確実に抑制できる。また、電子制御装置100は、より一層処理の高速化ができる。
(変形例1)
図7を用いて、電子制御装置100の変形例1に関して説明する。上記のように、マイコン1aは、第1コア11aが噴射開始処理S1を実行した後に、第2コア12aが噴射終了処理S5を実行する。また、第1コア11aは、噴射開始処理S1を複数回実行することもある。つまり、第1コア11aは、他処理S3、S4を実行することなく、噴射開始処理S1を複数回実行することもある。
そこで、第1コア11aは、補正演算処理S2の実行が終了しだい噴射開始処理S1を実行できるように構成されている。つまり、第1コア11aは、第2コア12aが実行する噴射終了処理S5による燃料噴射が終了するのを待つことなく、補正演算処理S2の実行が終了すると噴射開始処理S1を実行できる。これによって、電子制御装置100は、燃料噴射が終了するのを待って噴射開始処理S1を実行する場合よりも、短い時間制約を満たしやすくなる。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本開示のその他の形態として、第2実施形態、第3実施形態に関して説明する。上記実施形態、第2実施形態、及び第3実施形態は、夫々単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本開示は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
(第2実施形態)
図8~図11を用いて、第2実施形態の電子制御装置110に関して説明する。本実施形態では、主に、上記実施形態と異なる点に関して説明する。本実施形態における上記実施形態と同様の構成に関しては、上記実施形態と同じ符号を付与して説明を省略する。電子制御装置110は、主に、タイマ17bと割込コントローラ16bを用いて、噴射終了処理S5を起床させる点が電子制御装置100と異なる。なお、図8では、RAM13aの図示を省略している。
電子制御装置110は、マルチコアマイコン1bと、入力回路2と、ドライバ3などを備えている。マイコン1bは、第1コア11b、第2コア12b、第1ローカルRAM13b、第2ローカルRAM14b、AD変換器15b、割込コントローラ16b、タイマ17bなどを備えている。
第1コア11bと第2コア12bは、第1コア11aと第2コア12aと同様の制御処理が配置されている。第1ローカルRAM13bは、第1コア11b用に設けられているRAMである。第1ローカルRAM13bは、第1コア11bのみがアクセス可能に構成されており、第1コア11bの算出結果などが格納される。一方、第2ローカルRAM14bは、第2コア12b用に設けられているRAMである。第2ローカルRAM14bは、第2コア12bのみがアクセス可能に構成されており、第2コア12bの算出結果などが格納される。
なお、本実施形態では、第1ローカルRAM13bと第2ローカルRAM14bとを備えたマイコン1bを採用している。しかしながら、マイコン1bは、ローカルRAM13b、14bのかわりに、第1コア11b用に設けられた第1記憶領域と、第2コア12b用に設けられた第2記憶領域とを有した共有RAMを備えていてもよい。
AD変換器15bは、第1コア11bと第2コア12bと接続されている。AD変換器15bは、入力回路2に入力されたクランク角信号、アクセル開度信号、コモンレール圧信号などのアナログ信号を、AD変換してデジタルデータとして出力する。AD変換して得られたデジタルデータは、AD値とも言える。AD変換器15bは、第1コア11bや第2コア12bからのAD要求に応じてAD変換を行う。
割込コントローラ16bは、第2コア12bとタイマ17bに接続されている。割込コントローラ16bは、イベントトリガを第2コア12bに出力する。タイマ17bは、第2コア12bと割込コントローラ16bとドライバ3に接続されている。タイマ17bは、時間を計時するものであり、第1ローカルRAM13bから噴射開始タイミングが入力されるとともに、第2コア12bから噴射期間が入力される。
ここで、図9~図11を用いて、マイコン1bの処理動作に関して説明する。なお、図11のタイムチャートは、図6のタイムチャートに相当する。第2コア12bの処理動作は、第2コア12aと同様である。よって、ここでは、主に、第1コア11bの処理動作に関して説明する。
第1コア11bは、第1コア11aと同様、クランク角信号に同期して、予め設定されたタイミングで噴射開始処理S1を起床する。そして、図9のステップS10では、噴射開始処理S1を実行する。しかしながら、第1コア11bは、第1コア11aと異なり、第2コア12bへのイベントトリガの通知は行なわない。
次に、噴射開始処理S1に関して図10を用いて説明する。第1コア11bは、第1コア11aと同様、ステップS11、S12を実行した後に、ステップS13aを実行する。
ステップS13aでは、噴射開始タイミングと出力パルスのオン及び第2コア12bへの割込通知タイミングをセットする。噴射開始タイミングは、開始タイミングに相当する。噴射開始タイミングのセットは、所定時間経過して噴射開始タイミングになった場合に、出力パルスをオンすることを指示することに相当する。また、出力パルスのオンのセットは、アクチュエータ300へのパルス起床命令に相当する。よって、ステップS13aでは、所定時間経過後(噴射開始タイミングになった時点)に出力パルスをオンすることを通知する処理と、第2のコア12bへ処理起床を通知する処理を行う。
第1コア11bは、噴射開始タイミングと、出力パルスのオン及び第2コア12bへの割込通知タイミングをタイマ17bにセットする。第1コア11bは、第1ローカルRAM13bに噴射開始タイミングを格納することで、噴射開始タイミングがタイマ17bに入力(セット)される。よって、第1コア11bは、噴射開始タイミングまでの時間の計時をタイマ17bに指示するとみなせる。図11に示すように、第1コア11bは、噴射開始処理S1中に、第1ローカルRAM13bを介してタイマ17bに対してタイマセットする。なお、割込通知タイミングは、割込コントローラ16bから第2コア12bへイベントトリガを通知するためのタイミングである。
これによって、タイマ17bは、図11に示すように、噴射開始タイミングまでの経過時間を計時し、噴射開始タイミングに達すると、ドライバ3に出力パルスをオンするように指示するとともに、タイマ経過を割込コントローラ16bに通知する(タイマ部)。
割込コントローラ16bは、タイマ17bからタイマ経過が通知されると、イベントトリガを第2コア12bに出力する(タイマ部)。よって、第1コア11bは、第1コア11bから第2コア12bへイベントトリガを通知するために、噴射開始タイミングまでの時間の計時をタイマ17bに指示すると言える。なお、ドライバ3に出力パルスをオンするように指示することは、出力オン要求とも言える。
このように、本実施形態では、噴射開始タイミングと、イベントトリガの通知タイミングとが同じ例を採用している。つまり、噴射開始タイミングと、噴射終了処理S5の起床タイミングは同じである。
一方、第2コア12bは、図11に示すように、割込コントローラ16bからのイベントトリガに応じて噴射終了処理S5を起床する。そして、第2コア12bは、噴射終了処理S5中にタイマ17bに対してタイマセットを行う。また、タイマ17bは、計時した経過時間が噴射期間以上になると、ドライバ3に出力パルスをオフするように指示する。ドライバ3に出力パルスをオフするように指示することは、出力オフ要求とも言える。
詳述すると、第2コア12bは、噴射終了処理S5を起床すると、AD変換器15bに対してAD要求する。具体的には、第2コア12bは、コモンレール圧のAD変換を要求する。そして、第2コア12bは、第1コア11bから取得した噴射量とコモンレール圧から噴射期間を算出して、第2ローカルRAM14bに格納する。
その後、第2コア12bは、タイマ17bに噴射期間を通知することで、タイマ17bに対してタイマセットを行う。つまり、第2コア12bは、タイマ17bに対して、計時を指示するとともに、経過時間が噴射期間に達した場合に出力オフ要求を出力するように指示する。よって、タイマ17bは、計時した経過時間が噴射期間以上になるとドライバ3に出力オフ要求を行う。
電子制御装置110は、電子制御装置100と同様の効果を奏することができる。さらに、第2コア12bは、割込コントローラ16bからイベントトリガが通知されると、噴射終了処理S5を起床する。このため、第2コア12bは、複数の制御処理の他の一部として、第3他処理S6のような噴射終了処理S5とは異なる制御処理が割り当てられていたとしても、優先して噴射終了処理S5を実行できる。
また、電子制御装置110は、タイマ17bを用いて第2コア12bへイベントトリガを通知することが可能となるため、遅れがなく安定して噴射終了処理S5を起床させることができる。つまり、電子制御装置110は、出力パルスの変化をトリガとして噴射終了処理S5を起床させる場合よりも、遅れがなく安定して噴射終了処理S5を起床させることができる。
(変形例2)
図12を用いて、電子制御装置110の変形例2に関して説明する。変形例2の電子制御装置では、タイマとして角度タイマを用いる点が電子制御装置110と異なる。
図12に示すように、入力であるクランク角信号(例えば、10°CA毎に入力される)の直近10°CA時間を100逓倍したタイマ時間を1カウントとするタイマを作ると0.1°CA相当のタイマが実現できる。これを直近10°CA時間が更新される度に逓倍時間を更新することでクランク角信号に同期した角度タイマが実現できる。このように、変形例2の第1コアは、クランク角信号が入力され、入力されたクランク角信号から角度タイマを生成する機能を備えている。クランク角信号は、角度信号に相当する。そして、変形例2の第1コアは、角度タイマにて噴射開始タイミングまでの時間を計時し、噴射開始タイミングに達するとイベントトリガを第2コアに通知する。
変形例2の電子制御装置は、電子制御装置110と同様の効果を奏することができる。また、変形例2の電子制御装置は、クランク角信号に同期して噴射終了処理S5を実行できる。さらに、変形例2の電子制御装置は、噴射開始タイミングを角度で演算するため、角度指示できるとソフト構成を簡素にすることが可能である。つまり、変形例2の電子制御装置は、噴射開始タイミングを時間指示とした場合、演算結果として得られる角度を時刻に変換する必要があるが、角度タイマを用いることで、時刻変換の工程を省略することが可能となり、ソフト構成を簡素化することが可能となる。
(第3実施形態)
図13~図17を用いて、第3実施形態の電子制御装置120に関して説明する。本実施形態では、主に、上記実施形態と異なる点に関して説明する。本実施形態における上記実施形態と同様の構成に関しては、上記実施形態と同じ符号を付与して説明を省略する。電子制御装置120は、主に、DMAコントローラ18cを用いて、噴射終了処理S5を起床させる点が電子制御装置110と異なる。なお、図13では、RAM13aの図示を省略している。
電子制御装置120は、マルチコアマイコン1cと、入力回路2と、ドライバ3などを備えている。マイコン1cは、第1コア11c、第2コア12c、第1ローカルRAM13c、第2ローカルRAM14c、AD変換器15c、割込コントローラ16c、タイマ17c、DMAコントローラ18cなどを備えている。DMAは、Direct Memory Accessの略称である。
第1コア11cと第2コア12cは、第1コア11bと第2コア12bと同様の制御処理が配置されている。また、第2コア12cは、第2コア12bと同様の処理動作を行う。
第1ローカルRAM13cは、第1ローカルRAM13bと同様に構成されており、少なくとも第1コア11cの演算結果を記憶する。第1ローカルRAM13cは、第1記憶部に相当する。第2ローカルRAM14cは、第2ローカルRAM14bと同様に構成されており、少なくとも第2コア12cの演算で用いるデータを記憶する。第2ローカルRAM14cは、第2記憶部に相当する。AD変換器15cは、AD変換器15bと同様に構成されている。
割込コントローラ16cは、第2コア12cとDMAコントローラ18cに接続されている。割込コントローラ16cは、DMAコントローラ18cからのDMA完了通知に基づいて、イベントトリガを第2コア12bに出力する。
タイマ17cは、第1コア11c(第1ローカルRAM13c)と第2コア12cとドライバ3に接続されている。さらに、タイマ17cは、DMAコントローラ18cに接続されている。タイマ17bは、時間を計時するものであり、第1コア11cから噴射開始タイミングが入力されるとともに、第2コア12bから噴射期間が入力される。また、タイマ17cは、DMAコントローラ18cにDMA要求を出力する。
DMAコントローラ18cは、第1コア11cや第2コア12cなどを介さずに、第1ローカルRAM13cと第2ローカルRAM14cとの間でデータ転送を行うものである。DMAコントローラ18cは、タイマ17cからのDMA要求に応じて、データ転送を行う。なお、本開示は、少なくとも第1ローカルRAM13cに記憶されている演算結果を含むデータを第2ローカルRAM14cに転送するDMAコントローラ18cであれば採用できる。なお、第1ローカルRAM13cに記憶されている演算結果を含むデータを第2ローカルRAM14cに転送することをDMAとも称する。
図16、図17に示すように、DMAコントローラ18cは、例えば、第1コア11c用の第1ローカルRAM13cにおけるデータAを格納したアドレスから、第2コア12c用のローカルRAM14cの指定アドレスにデータの転送を行う。DMAコントローラ18cは、予め設定したデータ数分の転送が完了すると、DMA完了を割込コントローラ16cに通知する。
なお、データAは、噴射開始処理S1での算出結果であり、噴射開始タイミング、噴射量、噴射段数などが含まれている。データAは、予め第1コア11cから第1ローカルRAM13cに格納される。
ここで、図14、図15を用いて、マイコン1cの処理動作に関して説明する。マイコン1cの処理動作は、第1コア11cによる噴射開始処理がマイコン1bと異なる。よって、ここでは、主に第1コア11cの噴射開始処理に関して説明する。なお、図14のタイムチャートは、図10のタイムチャートに相当する。
第1コア11cは、第1コア11bと同様、クランク角信号に同期して、予め設定されたタイミングで噴射開始処理S1を起床して噴射開始処理S1を実行する。しかしながら、第1コア11cは、第1コア11aと異なり、第2コア12bへのイベントトリガの通知は行なわない。
第1コア11cは、第1コア11aと同様、ステップS11、S12を実行した後に、ステップS13bを実行する。
ステップS13bでは、ステップS13aと同様、噴射開始タイミングと出力パルスのオンをセットする。さらに、ステップS13bでは、DMAコントローラ18cにデータ転送タイミングをセットする。つまり、第1コア11cは、タイマ17cを介してDMAコントローラ18cにDMA要求を行うタイミングをセットする。データ転送タイミングは、DMAの開始タイミングやDMA要求タイミングとも言える。第1コア11cは、第1ローカルRAM13cを介して、タイマにデータ転送タイミングなどをセットする(タイマセット)。
データ転送タイミングは、図15のタイミングt1に示すように、出力パルスオンからDMA転送時間分だけ前、または、タイミングt2に示すように、噴射開始タイミングとすることができる。つまり、DMAコントローラ18cは、出力パルスオンからDMA転送時間分だけ前、または、第1コア11cで演算された噴射開始タイミングのいずれかでDMAを開始する。なお、タイミングt1は、出力パルスのオンタイミング(噴射開始タイミング)よりも、DMA転送に要する時間分だけ前の時点と言える。
データ転送タイミングは、予めタイミングt1かタイミングt2のいずれかに設定されている。この場合、第1コア11cは、ステップS13bにおいて、データ転送タイミングとして、タイミングt1かタイミングt2のいずれか一方のみをセットする。つまり、第1コア11cは、毎回、タイミングt1かタイミングt2のいずれか一方のみをデータ転送タイミングとしてセットする。
タイミングt1の場合、第1コア11cは、演算結果を第1ローカルRAM13cへ格納する。また、第1コア11cは、噴射開始処理S1において、データ転送タイミングとしてタイミングt1をタイマ17cにセットする。タイミングt2の場合、第1コア11cは、演算結果を第1ローカルRAM13cへ格納する。また、第1コア11cは、噴射開始処理S1において、データ転送タイミングとしてタイミングt2をタイマ17cにセットする。
タイマ17cは、データ転送タイミングがセット(タイマセット)されると経過時間を計時し、データ転送タイミングに達すると、DMAコントローラ18cにDMA要求を指示する。さらに、タイマ17cは、上記と同様、噴射開始タイミングまでの経過時間を計時し、噴射開始タイミングに達すると、ドライバ3に出力パルスをオンするように指示する。
DMAコントローラ18cは、タイミングt1またはタイミングt2で第1ローカルRAM13cの演算結果を第2ローカルRAM14cに転送する。つまり、DMAコントローラ18cは、タイミングt1またはタイミングt2でDMAを開始する。また、DMAコントローラ18cは、出力パルスオンからDMA転送時間分だけ前、または、噴射開始タイミングで、第1ローカルRAM13cの演算結果を第2ローカルRAM14cに転送する。さらに、DMAコントローラ18cは、タイミングt2の場合、タイマ17cがドライバ3に出力パルスのオンを指示するタイミングでDMAを開始するとも言える。
そして、DMAコントローラ18cは、予め設定したデータ数分の転送が完了すると、DMA完了を割込コントローラ16cに通知する。図15におけるタイミングt1aは、タイミングt1のDMA要求に基づくDMAの完了に対応している。また、図15におけるタイミングt2aは、タイミングt2のDMA要求に基づくDMAの完了に対応している。
割込コントローラ16cは、DMA完了が通知されると、第2コア12cへイベントトリガを出力して、第2コア12cでの噴射終了処理S5を起床させる。このように、電子制御装置120は、DMAコントローラ18cが割込コントローラ16cを介してイベントトリガを出力するとみなせる。よって、DMAコントローラ18cは、第2ローカルRAM14cへの演算結果の転送完了後に、割込コントローラ16cを介して、イベントトリガを第2コア12cに通知すると言える。
このように、電子制御装置120は、DMAコントローラ18cによって、第1ローカルRAM13cに記憶されている演算結果を第2ローカルRAM14cに転送するため、第1コア11cと第2コア12cとの間の通信を高速に行うことができる。また、電子制御装置120は、DMAコントローラ18cが割込コントローラ16cを介してイベントトリガを通知するため、第1コア11cがイベントトリガを通知する場合よりも、第1コア11cの処理負荷を軽減することができる。さらに、電子制御装置120は、第1コア11cと第2コア12cによる共有RAMの競合を完全になくすことができる。
また、データ転送タイミングは、タイミングt1かタイミングt2のいずれか一方に限定されない。本開示は、これに限定されず、データ転送タイミングを動的に切り替えることもできる。この場合、第1コア11cは、ステップS13bにおいて、タイミングt1かタイミングt2のいずれか一方をデータ転送タイミングとしてセットする。
第1コア11cは、例えば、DMAにて転送されるデータのデータ量に応じてタイミングt1かタイミングt2のいずれか一方を選択し、選択したタイミングをデータ転送タイミングとしてセットする。この場合、第1コア11cは、データ量が閾値以上の場合はデータ転送タイミングとしてタイミングt1を選択し、データ量が閾値に達していない場合はデータ転送タイミングとしてタイミングt2を選択する。
これによって、電子制御装置120は、DMAにて転送するデータのデータ量に応じて、適切なタイミングでDMAを行うことができる。また、DMA完了通知に基づいてイベントトリガが通知される場合、電子制御装置120は、DMAコントローラ18cが転送するデータ量に応じて、イベントトリガの通知タイミングを設定することができる。なお、近年、DMAを使う機能がマイコン内で増加している。このため、開始タイミングを所定時間設定できるようにすることで開始タイミングをコントロールできる。
また、噴射開始処理S1に優先度の高いDMA通信を伴う処理が開始される場合、噴射開始処理S1のDMAは、DMAコントローラ18cにより、DMAを待機するよう要求される。その際は、第1コア11cは、噴射開始処理S1のデータ転送タイミングをタイミングt1からタイミングt2へ切り替える。
電子制御装置120は、電子制御装置110と同様の効果を奏することができる。また、電子制御装置120は、DMAコントローラ18cを用いて第2コア12cへイベントトリガを通知することが可能となるため、電子制御装置110と同様、遅れがなく安定して噴射終了処理S5を起床させることができる。さらに、電子制御装置120は、DMA通信の開始タイミングを切り替え可能であるため、マイコン1cのリソースに応じた実装が可能となる。