特開2015-229467(P2015-229467A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 本田技研工業株式会社の特許一覧
<>
  • 特開2015229467-電子制御システム 図000003
  • 特開2015229467-電子制御システム 図000004
  • 特開2015229467-電子制御システム 図000005
  • 特開2015229467-電子制御システム 図000006
  • 特開2015229467-電子制御システム 図000007
  • 特開2015229467-電子制御システム 図000008
  • 特開2015229467-電子制御システム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-229467(P2015-229467A)
(43)【公開日】2015年12月21日
(54)【発明の名称】電子制御システム
(51)【国際特許分類】
   B60R 16/02 20060101AFI20151124BHJP
   G06F 9/50 20060101ALI20151124BHJP
【FI】
   B60R16/02 660G
   G06F9/46 465D
【審査請求】未請求
【請求項の数】5
【出願形態】OL
【全頁数】15
(21)【出願番号】特願2014-117888(P2014-117888)
(22)【出願日】2014年6月6日
(71)【出願人】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】110001379
【氏名又は名称】特許業務法人 大島特許事務所
(72)【発明者】
【氏名】鳥居 稔
(57)【要約】
【課題】支援される側のECUの制御内容の変更に伴って、支援する側のECUのプログラムを修正する際に、そのプログラムの修正を簡便に行うことができるようにする。
【解決手段】複数のECU1〜4のうちの一つのECU1が、演算を並行して実行可能な複数のコア21〜24と、この複数のコアで利用されるプログラムを格納するROM25と、を有し、ROMは、コアごとに互いに独立したプログラムを格納し、サブコアとなる第1〜第3のコア21〜23は、ROMのプログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、メインコアとなる第4のコア24は、複数の制御系統間での協調制御に係る演算を実行するとともに、他のECUからの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、サブコアごとのプログラムに対応させて、サブコアのいずれかに割り当てるものとする。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数の電子制御装置を備え、
この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部と、この複数の演算部で利用されるプログラムを格納するプログラム格納部と、を有する電子制御システムであって、
前記プログラム格納部は、前記演算部ごとに互いに独立したプログラムを格納し、
複数の前記演算部のうちの少なくとも一つの演算部が主演算部となり、残りの複数の演算部が副演算部となり、
複数の前記副演算部は、前記プログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、
前記主演算部は、複数の前記制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行するとともに、他の前記電子制御装置からの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、前記副演算部ごとの前記プログラムに対応させて、複数の前記副演算部のいずれかに割り当てることを特徴とする電子制御システム。
【請求項2】
前記副演算部が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算を前記副演算部が実行し、制御周期が長い制御に係る演算を前記主演算部が実行することを特徴とする請求項1に記載の電子制御システム。
【請求項3】
前記主演算部は、前記副演算部の負荷を監視し、その負荷に応じて、他の前記電子制御装置の支援に係る演算を前記副演算部に割り当てることを特徴とする請求項1または請求項2に記載の電子制御システム。
【請求項4】
前記主演算部は、他の前記電子制御装置の支援に係る演算を前記副演算部がそのまま実行することができない場合に、前記副演算部で実行可能な演算に置き換えて、その演算を前記副演算部に実行させることを特徴とする請求項1から請求項3のいずれかに記載の電子制御システム。
【請求項5】
前記副演算部は、前記主演算部から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともに前記主演算部に送り、
前記主演算部は、前記負荷情報に基づいて、前記副演算部の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄することを特徴とする請求項1から請求項4のいずれかに記載の電子制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の電子制御装置を備え、この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部を有する電子制御システムに関するものである。
【背景技術】
【0002】
自動車には、種々の車載デバイスを電子制御するために種々のECU(電子制御装置)が設けられている。このECUでは、近年、制御対象となるデバイスの増加や、制御プログラムの複雑化により、処理負荷が大きくなる傾向にあり、これに対応するため、処理能力の高いマルチコアプロセッサ、すなわち1つのプロセッサパッケージ内に複数のコアを実装したプロセッサを搭載したものが普及しつつある。
【0003】
このようなマルチコアプロセッサを搭載したECUに関して、従来、制御対象の演算内容の優先度に基づいて、空きコアに演算を割り当てる技術が知られている(特許文献1参照)。この技術では、既存のプログラムをマルチコアプロセッサで実行する際に負荷を適切に分散することができるため、既存のプログラムの変更によるコスト増を抑制することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−108576号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
さて、複数のECUで構成される電子制御システムにおいては、あるECUの負荷が過大となるおそれがある場合に、そのECUの負荷を軽減するため、そのECUの制御を別のECUに支援させる、すなわち負荷が過大となるECUで行われる演算の一部を別のECUに行わせるようにするとよい。
【0006】
一方、ECUの制御対象となるデバイスの追加などにより、ECUの制御内容が変更されると、当然ながら、そのECUのプログラムを修正する必要があるが、前記のように、あるECUの制御を別のECUが支援する場合、支援される側のECUの制御内容が変更されると、支援する側のECUのプログラムも修正する必要がある。
【0007】
特に、支援する側のECUが、前記のようにマルチコアプロセッサを搭載したものである場合、全てのコアのプログラムを修正する必要があり、プログラムの修正が大がかりなものとなる。このため、ECUのプログラムのアップデートにより制御内容を変更する場合に、ECUのプログラムメモリの書き換えに要する時間が長くなり、また、プログラムの修正作業自体も煩雑になるという問題があった。
【0008】
本発明は、このような従来技術の問題点を解消するべく案出されたものであり、その主な目的は、複数の電子制御装置のうちのある電子制御装置の制御を別の電子制御装置が支援する場合に、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、そのプログラムの修正を簡便に行うことができるように構成された電子制御システムを提供することにある。
【課題を解決するための手段】
【0009】
前記課題を解決するためになされた第1の発明は、複数の電子制御装置(ECU1〜4)を備え、この複数の電子制御装置のうちの少なくとも一つの電子制御装置が、演算を並行して実行可能な複数の演算部(第1〜第4のコア21〜24)と、この複数の演算部で利用されるプログラムを格納するプログラム格納部(ROM25)と、を有する電子制御システムであって、前記プログラム格納部は、前記演算部ごとに互いに独立したプログラムを格納し、複数の前記演算部のうちの少なくとも一つの演算部が主演算部(第4のコア24)となり、残りの複数の演算部が副演算部(第1〜第3のコア21〜23)となり、複数の前記副演算部は、前記プログラムに基づいて各々が担当する制御系統の制御に係る演算を行い、前記主演算部は、複数の前記制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行するとともに、他の前記電子制御装置からの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、前記副演算部ごとの前記プログラムに対応させて、複数の前記副演算部のいずれかに割り当てる構成とする。
【0010】
これによると、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、主演算部のプログラムを変更するだけで済み、副演算部のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。このため、プログラムメモリの書き換えに要する時間を短縮することができ、また、プログラムの修正作業も簡素化することができる。そして、他装置支援に係る演算の全てを主演算部で行うことも可能であるが、他装置支援に係る演算の少なくとも一部を副演算部に割り当てることで、支援する側の電子制御装置の演算能力を有効に活用することができる。
【0011】
また、第2の発明は、前記副演算部が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算を前記副演算部が実行し、制御周期が長い制御に係る演算を前記主演算部が実行する構成とする。
【0012】
これによると、制御周期が短い制御に係る演算を優先的に副演算部に実行させるため、演算効率を向上させることができる。
【0013】
また、第3の発明は、前記主演算部は、前記副演算部の負荷を監視し、その負荷に応じて、他の前記電子制御装置の支援に係る演算を前記副演算部に割り当てる構成とする。
【0014】
これによると、副演算部の負荷が過大となることで副演算部の本来の機能、すなわち自身が担当する制御系統の制御に係る演算に支障を来すことを避けることができる。
【0015】
また、第4の発明は、前記主演算部は、他の前記電子制御装置の支援に係る演算を前記副演算部がそのまま実行することができない場合に、前記副演算部で実行可能な演算に置き換えて、その演算を前記副演算部に実行させる構成とする。
【0016】
これによると、副演算部に実行させる演算の制限が緩やかになり、多様な演算を副演算部に割り当てることができる。
【0017】
また、第5の発明は、前記副演算部は、前記主演算部から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともに前記主演算部に送り、前記主演算部は、前記負荷情報に基づいて、前記副演算部の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄する構成とする。
【0018】
これによると、副演算部の演算結果の信頼性を高めることができる。この場合、演算結果の信頼性が低いものと判断されると、その副演算部の演算結果を廃棄すると同時に、その副演算部への演算の割り振りを停止するようにするとよい。
【発明の効果】
【0019】
このように本発明によれば、支援される側の電子制御装置の制御内容の変更に伴って、支援する側の電子制御装置のプログラムを修正する際に、主演算部のプログラムを変更するだけで済み、副演算部のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。このため、プログラムの修正作業の工数を削減することができ、また、プログラムメモリの書き換えに要する時間を短縮することができる。そして、他装置支援に係る演算の全てを主演算部で行うことも可能であるが、他装置支援に係る演算の少なくとも一部を副演算部に割り当てることで、支援する側の電子制御装置の演算能力を有効に活用することができる。
【図面の簡単な説明】
【0020】
図1】本実施形態に係る電子制御システムの全体構成図である。
図2】マルチコアプロセッサ11の概略構成を示すブロック図である。
図3】マルチコアプロセッサ11の各コア21〜24で行われる処理を示す機能ブロック図である。
図4】マルチコアプロセッサ11で行われる他装置支援処理の手順を示すシーケンス図である。
図5】エンジン系ECUである第1のECU1に関連する要部の概略構成を示すブロック図である。
図6】マルチコアプロセッサ11の第1〜第3のコア21〜23で行われる制御の手順を示すフロー図である。
図7】マルチコアプロセッサ11の第4のコア24で行われる制御の手順を示すフロー図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【0022】
図1は、本実施形態に係る電子制御システムの全体構成図である。この電子制御システムは、自動車に搭載されるものであり、複数のECU(電子制御装置)1〜4を備えている。ECU1〜4は、CAN(Controller Area Network)などのネットワークを介して接続されており、ECU1〜4間での通信が可能になっている。
【0023】
ECU1〜4は、エンジン系ECUや車体系ECU、例えば、燃料噴射制御ECU、エンジン冷却制御ECU、トランスミッション制御ECU、車両安定化制御ECU、電動パワーステアリング制御ECU、空調制御ECU、運転支援制御ECU、およびブレーキ制御ECUなどである。
【0024】
なお、図1では、4つのECUから構成される例を示したが、ECUの数はこれに限定されるものではない。
【0025】
この電子制御システムでは、複数のECU1〜4のうちのあるECU1〜4の負荷が過大となるおそれがある場合に、そのECU1〜4の負荷を軽減するため、そのECU1〜4の制御を別のECU1〜4に支援させる、すなわち負荷が過大となるECU1〜4で行われる演算の一部を別のECU1〜4に実行させる制御が行われる。
【0026】
例えば、車両が比較的低車速で交差点を曲がる場合、エンジン系ECUでは、エンジンがフューエルカット中回転領域の制御となるため、処理負荷が小さくなるが、車体系ECUでは、タイヤの接地を確保するために、ブレーキ制御と電動パワーステアリング制御と車両安定化制御との協調を強める必要があるため、処理負荷が大きくなり、運転支援制御(衝突回避制御)が行われる場合はさらに処理負荷が大きくなる。そこで、車体系ECUの制御をエンジン系ECUが支援する、すなわち車体系ECUの制御に係る演算の一部をエンジン系ECUに実行させる。
【0027】
このように本電子制御システムでは、複数のECU1〜4のうちのあるECU1〜4の制御を別のECU1〜4が支援する制御が行われ、特に、本実施形態では、支援する側の第1のECU1が、マルチコアプロセッサ11を備えている。
【0028】
次に、図1に示した第1のECU1に設けられたマルチコアプロセッサ11について説明する。図2は、マルチコアプロセッサ11の概略構成を示すブロック図である。
【0029】
マルチコアプロセッサ11は、第1〜第4の4つのコア21〜24と、ROM(不揮発性メモリ)25と、RAM(揮発性メモリ)26と、調停回路27と、を備えている。
【0030】
第1〜第4のコア21〜24は、同一の回路構成を有しており、異なる処理を互いに独立して同時に実行することができる。
【0031】
ROM25には、各コア21〜24で実行させるプログラム(関数、マップおよびルックアップテーブルなどを含む)が格納される。各コア21〜24、各自のプログラムのみを読み出して実行する。各コア21〜24用のプログラムは互いに独立しており、別のコア21〜24用のプログラムにアクセスすることはできない。
【0032】
RAM26は、各コア21〜24に作業エリアを提供するものである。このRAM26は、コア21〜24のいずれからもアクセスすることができる共有メモリであり、各コア21〜24は、別のコア21〜24が使用するメモリ領域(作業エリア)にアクセスして、そのデータを読み出すことができる。例えば、第4のコア24が自身の作業エリアに書き込んだデータを、第1〜第3の各コア21〜23が読み出すことができる。調停回路27は、コア21〜24からRAM26へのアクセスを調停してアクセスの競合を防止するものである。
【0033】
次に、図2に示したマルチコアプロセッサ11の各コア21〜24で行われる処理について説明する。図3は、マルチコアプロセッサ11の各コア21〜24で行われる処理を示す機能ブロック図である。
【0034】
本実施形態では、第1〜第4の4つのコア21〜24のうち、第1〜第3の各コア21〜23にそれぞれ、第1のECU1の制御対象となるデバイスが割り当てられ、第1〜第3の各コア21〜23とその各々に割り当てられた制御対象とで1つの制御系統が構成され、第1〜第3の各コア21〜23は各々が担当する制御系統の制御を行う。
【0035】
一方、第4のコア24は、第1〜第3の各コア21〜23により制御される制御系統間での協調制御が必要な場合に、その協調制御を行う。また、第4のコア24は、他のECUから支援要請が行われると、その支援要請を受け付ける窓口として機能し、その支援に係る演算を第1〜第3の各コア21〜23に割り当てる処理を行う。
【0036】
そこで、本実施形態では、第1〜第3の各コア21〜23を適宜にサブコア(副演算部)と呼称し、第4のコア24を適宜にメインコア(主演算部)と呼称する。
【0037】
サブコア21〜23では、各々が担当する制御系統の制御に係る各種の演算を実行する自系統制御処理P11,P21,P31が行われる。ROM25(図2参照)には、サブコア21〜23用のプログラムとして、自系統制御用プログラム、すなわち各々が担当する制御系統の制御に係る各種の演算を実行するためのプログラムが格納されており、このプログラムをサブコア21〜23が読み出して自系統制御処理P11,P21,P31を行う。
【0038】
一方、メインコア24では、サブコア21〜23の各々が担当する複数の制御系統間での協調制御が必要な場合に、その協調制御に係る演算を実行する協調制御処理P41が行われる。ROM25(図2参照)には、メインコア24用のプログラムとして、協調制御用プログラムが予め格納されており、この協調制御用プログラムをメインコア24が読み出して協調制御処理P41を行う。
【0039】
また、メインコア24では、サブコア21〜23が担当する制御系統の制御に係る演算のうち、制御周期が長い制御に係る演算を実行する自装置制御処理P42が行われる。制御周期が短い制御に係る演算はサブコア21〜23で実行される。ROM25(図2参照)には、メインコア24用のプログラムとして、自装置制御用プログラムが予め格納されており、この自装置制御用プログラムをメインコア24が読み出して自装置制御処理P42を行う。
【0040】
ここで、メインコア24で行われる制御周期が長い制御としては、ラジエータの冷却ファンを駆動するファンモータの制御、空調装置のコンプレッサの制御、およびエンジン冷却水を循環させるウォータポンプの制御などがある。
【0041】
また、メインコア24では、他のECUからの支援要請を受け付けて、その支援に係る演算を、メインコア24自身およびサブコア21〜23に行わせて、演算結果を支援先のECUに送る他装置支援処理P43が行われる。ROM25(図2参照)には、メインコア24用のプログラムとして、他装置支援用プログラムが予め格納されており、この他装置支援用プログラムをメインコア24が読み出して他装置支援処理P43を行う。
【0042】
本実施形態では、他装置支援に係る演算は、基本的にはメインコア24が受け持つが、サブコア21〜23の負荷の状況に応じて、他装置支援に係る演算をサブコア21〜23に割り当てる。
【0043】
すなわち、メインコア24では、他のECUから要求された演算、すなわち他装置支援に係る演算を実行する要求演算処理P44が行われる。ROM25(図2参照)には、他装置支援用プログラムとして、他装置支援に係る演算を実行するためのプログラム(関数やマップなどを含む)が予め格納されており、このプログラムをメインコア24が読み出して要求演算処理P44を行う。
【0044】
また、メインコア24では、サブコア21〜23の演算処理の負荷を監視する負荷監視処理P45が行われる。本実施形態では、サブコア21〜23の負荷率(使用率)、すなわち、同時に処理可能な処理量のうちどの程度の割合を処理に使用しているかを示す値を取得する。
【0045】
また、メインコア24では、負荷監視処理P45で取得したサブコア21〜23の負荷率に応じて、他装置支援に係る演算を、サブコア21〜23のいずれかに割り当てて実行させて、演算結果をサブコア21〜23から受け取る演算管理処理P46が行われる。このとき、サブコア21〜23ごとにROM25に格納された要求演算処理用プログラムに対応するように、他装置支援に係る演算がサブコア21〜23に割り当てられる。すなわち、サブコア21〜23ごとの要求演算処理用プログラムで実行可能な演算がサブコア21〜23に割り当てられる。
【0046】
本実施形態では、負荷率を所定のしきい値(例えば80%)と比較して、負荷率がしきい値以下となるサブコア21〜23に演算を割り当てる。すべてのサブコア21〜23で負荷率がしきい値を超える場合には、他装置支援に係る演算をすべてメインコア24が実行する。
【0047】
なお、サブコア21〜23の負荷率が低い場合には、他装置支援に係る演算をすべてサブコア21〜23に割り当てるようにしてもよい。また、演算をサブコア21〜23に割り当てる際には、例えば、負荷率の低い順にサブコア21〜23に演算を割り当てたり、最も負荷率が低いサブコア21〜23にのみ演算を割り当てたりしてもよい。
【0048】
一方、サブコア21〜23では、メインコア24から要求された他装置支援に係る演算を実行する要求演算処理P12,P22,P32が行われる。ROM25(図2参照)には、サブコア21〜23用のプログラムとして、要求演算処理用プログラムが予め格納されており、この要求演算処理用プログラムをサブコア21〜23が読み出して要求演算処理P12,P22,P32を行う。
【0049】
ここで、要求演算処理用プログラムには、汎用性の高いプログラム(関数、マップおよびルックアップテーブルなどを含む)を採用するようにするとよい。汎用性の高いプログラムとしては、基本的な関数、例えば、二次関数(例えばy=x2+xなど)や、分数関数(例えばy=1/xなど)などに関するものである。
【0050】
また、メインコア24では、他装置支援に係る演算をサブコア21〜23がそのまま実行することができない場合に、サブコア21〜23で実行可能な演算に置き換える置換処理P47が行われる。
【0051】
例えば、サブコア21〜23でy値を求めるためにy=f(x)の演算を行わせる際に、サブコア21〜23の自系統制御用プログラムの中に、x値を求める関数がない場合、置換処理P47でx値を算出して、そのx値をサブコア21〜23に送ってy=f(x)の演算を行わせる。
【0052】
また、メインコア24では、サブコア21〜23の演算結果の信頼性に関する評価処理P48が行われる。この評価処理P48では、演算終了時に演算結果とともにサブコア21〜23から送られてきた負荷率を所定のしきい値(例えば80%)と比較して評価を行い、負荷率が所定のしきい値以上となる場合は、そのサブコア21〜23の演算結果は信頼性が低いものと判断して、そのコアの演算結果を廃棄すると同時に、そのサブコア21〜23に対する演算の割り振りを停止させる。
【0053】
次に、図3に示したマルチコアプロセッサ11で行われる他装置支援処理の手順について説明する。図4は、マルチコアプロセッサ11で行われる他装置支援処理の手順を示すシーケンス図である。
【0054】
まず、マルチコアプロセッサ11のメインコア24が他のECUからの支援要請を受け付けると、メインコア24は、他装置支援に係る演算を開始する。メインコア24での演算結果は適宜なタイミングで支援先のECUに送る。
【0055】
また、メインコア24が他のECUからの支援要請を受け付けると、メインコア24は、サブコア21〜23の負荷率を監視し、負荷率がしきい値以下となるサブコア21〜23に対して、他装置支援に係る演算を行わせる指令を出力する。このとき、他装置支援に係る演算をサブコア21〜23がそのまま実行することができない場合には、サブコア21〜23で実行可能な演算に置き換える置換処理を行う。
【0056】
サブコア21〜23では、メインコア24からの演算の指令を受け取ると、その演算を実行し、その演算が終了すると、演算結果をメインコア24に送る。このとき、サブコア21〜23は演算結果をRAM26(図2参照)に書き込み、RAM26の演算結果をメインコア24が読み出す。
【0057】
また、演算結果とともに負荷率がサブコア21〜23からメインコア24に送られ、メインコア24において、演算結果の信頼性に関する評価が行われる。この評価で、演算結果の信頼性が低いものと評価されると、そのサブコア21〜23の演算結果を廃棄すると同時に、そのサブコア21〜23への演算の割り当てを停止し、演算結果の信頼性が高いものと評価されると、演算結果を支援先のECUに送る。
【0058】
また、支援先のECU側の返答要求時間に余裕がある場合には、サブコア21〜23に割り当てた演算をメインコア24で再度実行する再演算を行って、サブコア21〜23の演算結果に誤りがないかの検証を行う。この検証で演算結果に誤りがない場合には、演算結果を支援先のECUに送る。
【0059】
なお、他装置支援に係る演算をサブコア21〜23に分担させる、すなわち、サブコア21〜23の各々に異なる演算を実行させるようにしてもよいが、サブコア21〜23の各々に同一の演算を実行させるようにしてもよい。この場合、サブコア21〜23の各々の演算結果が一致すれば、その演算結果を真値として、支援先のECUに送り、サブコア21〜23の各々の演算結果が異なれば、前回の値を真値として、支援先のECUに送るようにするとよい。
【0060】
次に、エンジン系ECU(FI−ECU)を第1のECU1とした例について説明する。図5は、エンジン系ECUである第1のECU1に関連する要部の概略構成を示すブロック図である。
【0061】
第1のECU1は、第1〜第3の入出力部31〜33を介して、各種のデバイスを制御する。第1〜第3の入出力部31〜33は、マルチコアプロセッサ11の各サブコア(第1〜第3のコア)21〜23に対応して設けられており、内部に駆動回路およびA/D変換回路などが設けられている。第1〜第3の入出力部31〜33には各種のセンサ類からの検出信号が入力され、第1〜第3の入出力部31〜33から検出値が出力される。また、サブコア21〜23からの制御信号が第1〜第3の入出力部31〜33に入力され、第1〜第3の入出力部31〜33から、各種のアクチュエータ類を駆動する駆動信号が出力される。なお、第1のECU1は車室側に配置され、第1〜第3の入出力部31〜33はエンジンルームに配置される。
【0062】
第1の入出力部31および第1のコア21は、空気系デバイスの制御に係るものであり、第2の入出力部32および第2のコア22は、点火・燃料系のデバイスの制御に係るものであり、第3の入出力部33および第3のコア23は、空燃比系の制御に係るものである。
【0063】
第1の入出力部31には、吸入空気の流量を制御するスロットルバルブを駆動するDBWモータ41と、スロットルバルブの開度を検出するスロットル開度センサ42と、EGRガスの流量を制御するEGRバルブを駆動するEGRモータ43と、EGRバルブの開閉位置を検出するEGR位置センサ44と、吸入空気の温度を検出する吸気温センサ45と、吸入空気の圧力を検出する吸気圧センサ46と、吸入空気の流量を検出するAFMセンサ47と、が接続されている。
【0064】
第1のコア21では、吸入空気の流量、すなわちスロットルバルブの開度(DBWモータ41の動作量)、およびEGRガスの流量、すなわちEGRバルブの開度(EGRモータ43の動作量)の制御が行われる。DBWモータ41およびEGRモータ43は、第1の入出力部31に設けられた駆動回路を介してデューティ制御(PWM制御)される。
【0065】
第2の入出力部32には、エンジン冷却水の温度を検出する水温センサ48と、燃焼室内の混合気に点火する点火プラグ49と、吸気路または燃焼室内に燃料を噴射する燃料噴射弁50と、クランクシャフトの回転角を検出するクランク角センサ51と、が接続されている。
【0066】
第2のコア22では、点火プラグ49の点火時期および燃料噴射弁50の噴射時期の制御が行われる。
【0067】
第3の入出力部33には、排気ガス中の空燃比(酸素濃度)を検出するLAFセンサ52と、LAFセンサ52を所定の高温状態に保つLAFヒータ53と、排気ガス中のSO濃度を検出するSOセンサ54と、SOセンサ54を所定の高温状態に保つSOヒータ55と、が接続されている。
【0068】
第3のコア23では、LAFセンサ52およびSOセンサ54の活性化のためのヒータ制御が行われる。
【0069】
第4のコア24では、空燃比に関する協調制御が行われる。すなわち、第1〜第3のコア21〜23で行われる制御を協調させ、第3のコア23で得られる空燃比を目標値に近づけるように、第2のコア22における点火および燃料噴射の制御と、第1のコア21における吸入空気量の制御が行われる。また、第4のコア24では、EGRガスの応答遅れに関する協調制御が行われる。すなわち、第1,第2のコア21,22で行われる制御を協調させ、第1のコア21で得られるEGRガスの流量に基づいて、第2のコア22における点火および燃料噴射の制御が行われる。
【0070】
また、第4のコア24では、他のECUからEPS要求トルクTeps、ミッション要求トルクTmisおよび運転者要求トルクTapなどが入力され、これらに基づいて要求出力Routputを算出する処理が行われ、要求出力Routputが第1のコア21および第2のコア22に送られる。また、第4のコア24から、他のECUに要求出力Routput、水温値、およびエンジン回転数などが出力される。
【0071】
次に、図5に示したマルチコアプロセッサ11の各コア21〜24で行われる制御について説明する。図6および図7は、マルチコアプロセッサ11の各コア21〜24で行われる制御の手順を示すフロー図である。
【0072】
第1のコア21では、図6に示すように、第4のコア24で算出された要求出力Routputを取得し、要求出力Routputからマップ検索によりスロットルバルブの目標開度(DBWモータ41の目標値)を求める(ST101)。次に、スロットルバルブの開度(スロットル開度センサ42の出力)を監視しながら、DBWモータ41ヘの出力デューティと回転方向(±)を算出する(ST102)。次に、要求出力RoutputからEGRバルブの目標開度をマップ検索により求める(ST103)。次に、EGRバルブの開度(EGR位置センサ44の出力)を監視しながら、EGRモータ43ヘの出力デューティと回転方向(±)を算出する(ST104)。次に、DBWモータ41およびEGRモータ43のそれぞれにデューティと回転方向(±)を出力する(ST105)。
【0073】
第2のコア22では、図6に示すように、第4のコア24から要求出力Routputを取得し、要求出力Routputと水温センサ48の検出値とからマップ検索により、点火プラグ49の点火時期および通電時間と、燃料噴射弁50の噴射時期および通電時間(燃料噴射時間)とを求める(ST201)。次に、要求出力Routputと、水温センサ48による水温検出値とによるマップ検索と、第1のコア21を介して取得した吸気温度によるマップ検索と、第3のコア23のLAFフィードバック係数とから、燃料噴射量および吹き終わり角度を求める(ST202)。次に、クランク角センサ51の出力信号に同期して、点火プラグ49および燃料噴射弁50を動作させて、燃料噴射および点火を実施する(ST203)。
【0074】
第3のコア23では、図6に示すように、第2のコアから水温情報(水温センサ48の検出値)を取得し、その水温情報からSOヒータ55の通電デューティをテーブル検索する(ST301)。次に、SOセンサ54の活性を判断して第4のコア24に伝達する(ST302)。次に、LAFヒータ53の通電が目標インピーダンスになるように、水温情報からPID制御するヒータデューティを算出する(ST303)。次に、LAFセンサ52の活性を判断して第4のコア24に伝達する(ST304)。次に、LAFヒータ53およびSOヒータ55のそれぞれにデューティを出力する(ST305)。
【0075】
第4のコア24では、図7に示すように、EPS要求トルクTeps、ミッション要求トルクTmisおよび運転者要求トルクTapから、車両要求トルクRTを算出する(ST401)。次に、車両要求トルクRTおよび現在発生トルクTpreからトルク変化量ΔTrqを算出する(ST402)。次に、トルク変化量ΔTrqから要求出力RoutputをPlD制御により算出して、第1のコア21に送る(ST403)。次に、第3のコア23から取得した空燃比(LAFセンサ52の検出値)から空燃比制御を実施し、燃料噴射量をPID制御するために噴射量補正値を算出する(ST404)。次に、LAFセンサ52による空燃比を、第1〜第3のコア21〜23と協調して制御する(ST405)。
【0076】
以上のように本実施形態では、ROM25において、サブコア21〜23ごとに互いに独立したプログラムを格納し、メインコア24において、他のECUからの支援要請を受け付けて、その支援に係る演算の少なくとも一部を、サブコア21〜23ごとのプログラムに対応させて、サブコア21〜23のいずれかに割り当てるようにしたため、支援される側のECUの制御内容の変更に伴って、支援する側のECUのプログラムを修正する際に、メインコア24のプログラムを変更するだけで済み、サブコア21〜23のプログラムを変更する必要がないため、プログラムの修正を簡便に行うことができる。
【0077】
すなわち、本実施形態では、図3に示したように、他装置支援に関する処理として、メインコア24では他装置支援処理P43が行われ、また、サブコア21〜23では要求演算処理P12,P22,P32が行われるが、この要求演算処理P12,P22,P32では、メインコア24からの演算要求に応じて演算を実行するだけであり、この要求演算処理P12,P22,P32に係る要求演算処理用プログラムは変更する必要がない。
【0078】
一方、メインコア24の他装置支援処理P43に係る他装置支援用プログラムには、サブコア21〜23で実行可能な演算に関する情報と、支援先のECUから要求される演算に関する情報とが含まれているため、この他装置支援用プログラムは、支援先のECUのプログラムの変更に伴って変更する必要がある。
【0079】
そして、メインコア24およびサブコア21〜23のプログラムは互いに独立しているため、メインコア24のプログラムの変更に伴ってサブコア21〜23のプログラムを変更する必要はない。また、要求演算処理P12,P22,P32に係るプログラムとして、汎用性の高いプログラムを用意しておけば、支援される側のECUの制御内容が変更された場合でも、プログラムを修正することなく利用することができる。
【0080】
このように本実施形態では、支援される側のECUの制御内容の変更に伴って、支援する側のECUのプログラムを修正する際に、メインコア24のプログラムを変更するだけで済むため、プログラムの修正を簡便に行うことができることから、ROM25のプログラムの書き換えに要する時間を短縮することができ、また、プログラムの修正作業も簡素化することができる。
【0081】
そして、他装置支援に係る演算の全てをメインコア24で行うことも可能であるが、他装置支援に係る演算の少なくとも一部をサブコア21〜23に割り当てることで、支援する側のECUの演算能力を有効に活用することができる。
【0082】
また、本実施形態では、サブコア21〜23の各々に、制御対象が別々に割り当てられ、制御系統の制御を互いに独立して行うようにしたため、制御対象となるデバイスが追加されると、それに関係するサブコア21〜23と、メインコア24のプログラムを変更すればよく、他のサブコア21〜23のプログラムは変更する必要がないため、プログラムの修正を簡便に行うことができる。
【0083】
また、本実施形態では、マルチコアプロセッサ11のコア21〜24間で演算を割り振って実行させる構成としており、このマルチコアプロセッサは、内部に共有メモリや調停回路を有し、コア間でのデータのやり取りを高速に行うことができることから、コア間で演算を割り当てて実行させる処理に遅延がほとんど発生しないため、安定した制御を実現することができる。
【0084】
また、本実施形態では、サブコア21〜23が担当する制御系統の制御に係る演算のうち、制御周期が短い制御に係る演算をサブコア21〜23が実行し、制御周期が長い制御に係る演算をメインコア24が実行するようにしており、制御周期が短い制御に係る演算を優先的にサブコア21〜23に実行させるため、演算効率を向上させることができる。
【0085】
また、本実施形態では、メインコア24において、サブコア21〜23の負荷を監視し、その負荷に応じて、他装置支援に係る演算をサブコア21〜23に割り当てるようにしたため、サブコア21〜23の負荷が過大となることでサブコア21〜23の本来の機能、すなわち自身が担当する制御系統の制御に係る演算に支障を来すことを避けることができる。
【0086】
また、本実施形態では、メインコア24において、他装置支援に係る演算をサブコア21〜23がそのまま実行することができない場合に、サブコア21〜23で実行可能な演算に置き換えて、その演算をサブコア21〜23に実行させるようにしたため、サブコア21〜23に実行させる演算の制限が緩やかになり、多様な演算をサブコア21〜23に割り当てることができる。
【0087】
また、本実施形態では、サブコア21〜23において、メインコア24から割り当てられた演算が終了すると、その演算を実行したときの負荷に関する負荷情報を演算結果とともにメインコア24に送り、メインコア24において、負荷情報に基づいて、サブコア21〜23の演算結果の信頼性に関する評価を行い、この評価で演算結果の信頼性が低いものと判断されると、そのサブコア21〜23の演算結果を廃棄するようにしたため、サブコア21〜23の演算結果の信頼性を高めることができる。
【0088】
以上、本発明を特定の実施形態に基づいて説明したが、これらの実施形態はあくまでも例示であって、本発明はこれらの実施形態によって限定されるものではない。また、前記の各実施形態に示した本発明に係る電子制御システムの各構成要素は、必ずしも全てが必須ではなく、少なくとも本発明の範囲を逸脱しない限りにおいて適宜取捨選択することが可能である。
【0089】
例えば、本実施形態では、演算を並行して実行可能な複数のコアを有するマルチコアプロセッサの例について説明したが、本発明はこれに限定されるものではなく、演算を並行して実行可能な複数の演算部として複数のプロセッサを有するマルチプロセッサによる構成も可能である。もっとも、安定した制御を実現するには、演算部間でのデータのやり取りを高速に行う必要があり、この観点からマルチコアプロセッサが望ましい。
【0090】
また、本実施形態では、マルチコアプロセッサを4つのコアを備えた構成としたが、このコアの数は4つに限定されるものではなく、コアを3つあるいは5つ以上備えた構成も可能である。
【0091】
また、本実施形態では、図2に示したように、要求演算処理用プログラムをプログラムメモリに格納して、その要求演算処理用プログラムを利用してサブコアが他装置支援に係る演算を実行するようにしたが、自系統制御用プログラム、すなわち自身が担当する制御系統の制御に係る演算を実行するためのプログラムの一部を構成するサブプログラム、例えば、制御系統の制御において所要の制御値を算出するメイン関数のサブ関数を利用して、他装置支援に係る演算を実行するようにしてもよい。このようにすると、サブコア用のプログラムを格納するメモリ領域が増大することを避けることができる。
【符号の説明】
【0092】
1〜4 ECU(電子制御装置)
11 マルチコアプロセッサ
21〜23 第1〜第3のコア(サブコア、副演算部)
24 第4のコア(メインコア、主演算部)
25 ROM(プログラム格納部)
26 RAM
27 調停回路
31〜33 入出力部
図1
図2
図3
図4
図5
図6
図7