JP7183745B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP7183745B2
JP7183745B2 JP2018224614A JP2018224614A JP7183745B2 JP 7183745 B2 JP7183745 B2 JP 7183745B2 JP 2018224614 A JP2018224614 A JP 2018224614A JP 2018224614 A JP2018224614 A JP 2018224614A JP 7183745 B2 JP7183745 B2 JP 7183745B2
Authority
JP
Japan
Prior art keywords
processing
unit
sequence
processing unit
execution
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.)
Active
Application number
JP2018224614A
Other languages
English (en)
Other versions
JP2020087242A (ja
Inventor
竜也 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2018224614A priority Critical patent/JP7183745B2/ja
Publication of JP2020087242A publication Critical patent/JP2020087242A/ja
Application granted granted Critical
Publication of JP7183745B2 publication Critical patent/JP7183745B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Stored Programmes (AREA)

Description

本開示は、電子制御装置に関する。
従来、電子制御装置の一例として、特許文献1に開示されたエンジンECUがある。エンジンECUは、イグニッションが投入されることによって動作を開始すると各種初期化を行う。
特開平11-230868号公報
ところで、電子制御装置は、起動時のソフト処理において、起動時用の関数をコールするだけで、起動時に必要な一連の処理を実行することが考えられる。同様に、電子制御装置は、終了時のソフト処理において、終了時用の関数をコールするだけで、終了時に必要な一連の処理を実行することが考えられる。
しかしながら、電子制御装置は、上記一連の処理での異常発生や仕様の変更などに伴って処理内容を変更した場合、処理内容の変更だけでなく、一連の処理を実行させるための関数に関しても変更する必要がある。このため電子制御装置は、ソフトのメンテナンス性や拡張性が低いという問題がある。
本開示は、上記問題点に鑑みなされたものであり、ソフトのメンテナンス性や拡張性を向上できる電子制御装置を提供することを目的とする。
上記目的を達成するために本開示は、
起動時における複数の処理と終了時における複数の処理の少なくとも一方を実行する複数の処理部(P1~P4、P11~P13)と、
起動時処理の実行を示す関数がコールされた場合は起動時における複数の処理を実行する複数の処理部の実行を開始し、終了時処理の実行を示す関数がコールされた場合は終了時における複数の処理を実行する複数の処理部の実行を開始し、複数の処理部の実行順を管理するものであり、各処理部の実行毎に処理結果を取得して、処理結果に応じて、次に実行させる次処理部を決定し、決定した次処理部に対して実行を指示するシーケンス管理部(13)と、を備えていることを特徴とする。
このように、本開示は、関数がコールされると、複数の処理部の実行を開始し、複数の処理部の実行順を管理するシーケンス管理部を備えている。シーケンス管理部は、各処理部の実行毎に処理結果を取得するため、その処理結果に応じて複数の処理部における次に実行させる次処理部を決定することができる。そして、本開示は、決定した次処理部に対して実行を指示するため、処理内容を変更した場合であっても、複数の処理部の実行を開始するための関数を変更する必要がない。よって、本開示は、ソフトのメンテナンス性や拡張性を向上することができる。
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
実施形態における電子制御装置の概略構成を示すブロック図である。 実施形態におけるマイコンの概略構成を示す機能ブロック図である。 実施形態におけるマイコンの処理動作を示すフローチャートである。 実施形態におけるマイコンのA以降の処理動作を示すフローチャートである。 実施形態におけるマイコンのB以降の処理動作を示すフローチャートである。 実施形態におけるマイコンのC以降の処理動作を示すフローチャートである。 実施形態における各処理部の処理動作を示すフローチャートである。 実施形態におけるマイコンの処理動作を示すタイムチャートである。
以下において、図面を参照しながら、本開示を実施するための形態を説明する。
まず、図1、図2を用いて、電子制御装置100の概略構成に関して説明する。図1に示すように、電子制御装置100は、マイコン10、第1装置21、第2装置22、第3装置23、通信部30などを備えている。マイコン10、第1装置21、第2装置22、第3装置23、通信部30は、電気的に接続されている。
本実施形態では、一例として、電子制御装置100を車両に搭載された車載制御装置に適用する。よって、電子制御装置100は、車両に搭載された車載機器を制御する。このため、電子制御装置100は、マイコン10が通常処理を行うことで、車載機器を制御すると言える。なお、電子制御装置100は、車両以外の制御装置であっても適用することができる。
電子制御装置100は、動作を停止している状態で電源の供給が開示されると、起動時処理を実行した後に車載機器に対する各種制御を実行する。また、電子制御装置100は、電源が供給されて起動している状態で動作終了の条件を満たすと、終了時処理を実行した後にマイコン10などへの電源の供給を停止する。
マイコン10は、処理部としてのCPU11、記憶装置としてのメモリ12などを備えている。メモリ12には、CPU11が読み取り可能なプログラムやデータが記憶されている。そして、マイコン10は、CPU11がメモリ12に記憶されているプログラムを実行しつつ、メモリ12に記憶されているデータや通信部30などから得たデータなどを用いて演算処理を行う。このようにして、マイコン10は、起動時処理及び終了時処理を行なうとともに、各種制御を行うための制御信号を出力する。
マイコン10は、起動時処理として、例えば、初期設定や起動時診断などを行う。マイコン10は、終了時処理として、例えば、終了時診断などを行う。
また、図2に示すように、マイコン10は、機能ブロックとして、シーケンス管理部13と、複数の処理部P1~P4、P11~P13とを備えている。第1処理部P1、第2処理部P2、第3処理部P3、第4処理部P4は、起動時における複数の処理を実行する複数の処理部に相当する。よって、マイコン10は、第1処理部P1、第2処理部P2、第3処理部P3、第4処理部P4によって起動時処理を行う。複数の処理部P1~P4のそれぞれが実行する処理は、起動時における一連の処理とみなすことができる。
一方、第11処理部P11、第12処理部P12、第13処理部P13は、終了時における複数の処理を実行する複数の処理部に相当する。よって、マイコン10は、第11処理部P11、第12処理部P12、第13処理部P13によって終了時処理を行う。複数の処理部P11~P13のそれぞれが実行する処理は、終了時における一連の処理とみなすことができる。
なお、起動時における処理部の個数、及び終了時における処理部の個数は、上記に限定されず、それぞれ複数個備えていればよい。このように、電子制御装置100は、シーケンス管理部13と、シーケンスに応じて必要な処理を行う処理部P1~P4、P11~P13とが分けられている。
なお、各処理部P1~P4、P11~P13が実行する処理は、それぞれ第1~第4処理、第11処理~第13処理と言える。よって、例えば、第2処理部P2は、第2処理を実行する。
シーケンス管理部13は、マイコン10が実行するシーケンスを管理する。なお、本実施形態では、一例として、予め決められた実行順である第1~第4シーケンス、第11~第13シーケンスを管理するシーケンス管理部13を採用している。このため、シーケンス管理部13は、現在のシーケンスが第1~第4シーケンス、第11~第13シーケンスのいずれであるかを把握することができる。また、シーケンス管理部13は、起動時処理及び終了時処理のシーケンスだけではなく、起動時処理及び終了時処理とは異なる通常処理のシーケンスも管理してもよい。通常処理のシーケンスには、通信部30の起動シーケンスなども含んでいる。
また、第1~第4シーケンスのそれぞれは、第1処理部P1~第4処理部P4のそれぞれが実行する処理に対応している。同様に、第11~第13シーケンスのそれぞれは、第11処理部P11~第13処理部P13のそれぞれが実行する処理に対応している。よって、マイコン10は、例えば、第2シーケンスの場合、第2処理部P2が処理を実行し、第11シーケンスの場合、第11処理部P11が処理を実行する。
シーケンス管理部13は、起動時処理の実行を示す関数がコールされると、複数の処理部P1~P4の実行を開始し、第1処理部P1~第4処理部P4の実行順を管理する。同様に、シーケンス管理部13は、終了時処理の実行を示す関数がコールされると、複数の処理部P11~P13の実行を開始し、第11処理部P11~第13処理部P13の実行順を管理する。
また、シーケンス管理部13は、各処理部P1~P4の実行毎に処理結果を取得して、処理結果に応じて、複数の処理部P1~P4における次に実行させる次処理部を決定(判断)する。同様に、シーケンス管理部13は、各処理部P11~P13の実行毎に処理結果を取得して、処理結果に応じて、複数の処理部P11~P13における次に実行させる次処理部を決定する。
例えば、シーケンス管理部13は、処理結果に基づいて、次のシーケンスを実施、現在のシーケンスに留まる、任意のシーケンスに遷移のいずれかを判断する。そして、シーケンス管理部13は、決定したシーケンス、言い換えると、決定した次処理部に対して実行を指示(要求)する。なお、本実施形態では、一例として、後程説明する複数のダイアグ部D1~D4、D11~D13を介して処理結果を取得するシーケンス管理部13を採用している。このように、電子制御装置100は、各処理部P1~P4、P11~P13の処理結果をシーケンス管理部13に通知し、シーケンス管理部13が処理結果に応じて次に実施する処理(シーケンス)へ状態を遷移させる。
具体的には、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果が正常である場合、次のシーケンスを実施と判断し、次のシーケンスに対応する処理部に実行を要求する。この場合、シーケンス管理部13は、予め決められた第1シーケンス、第2シーケンス、第3シーケンス、第4シーケンスの順番で、各処理部P1~P4に処理を実行させることになる。同様に、シーケンス管理部13は、予め決められた第11シーケンス、第12シーケンス、第13シーケンスの順番で、各処理部P11~P13に処理を実行させることになる。
また、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果が異常である場合、現在のシーケンスに留まると判断し、現在のシーケンスに対応する処理部に実行を要求する。この場合、シーケンス管理部13は、各処理部P1~P4の処理結果で異常があった場合、処理結果が異常であった処理部に再度処理を実行させるようにシーケンスを設定する。同様に、シーケンス管理部13は、各処理部P11~P13の処理結果で異常があった場合、処理結果が異常であった処理部に再度処理を実行させるようにシーケンスを設定する。なお、本実施形態では、複数の処理部P1~P4、P11~P13における一部の処理部のみに関して、処理結果が異常である場合に、現在のシーケンスに留まると判断する例を採用する。
また、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果が異常である場合、任意のシーケンスに遷移すると判断し、予め決められたシーケンスに対応する処理部に実行を要求する。遷移させる任意のシーケンスは、複数の処理部P1~P4、P11~P13に予め関連付けられている。この場合、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果で異常があった場合、処理結果が異常であった処理部に関連付けられた処理部を実行させるようにシーケンスを設定する。なお、本実施形態では、複数の処理部P1~P4、P11~P13における一部の処理部のみに関して、処理結果が異常である場合に、任意のシーケンスに遷移すると判断する例を採用する。
しかしながら、本開示は、これに限定されない。本開示は、各処理部P1~P4、P11~P13の処理結果が異常であった場合、現在のシーケンスに留まるか、任意のシーケンスに遷移するかのいずれか一方であってもよい。つまり、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果が異常であった場合、任意のシーケンスに遷移することなく、現在のシーケンスに留まると判断する。もしくは、シーケンス管理部13は、各処理部P1~P4、P11~P13の処理結果が異常であった場合、現在のシーケンスに留まることなく、任意のシーケンスに遷移すると判断する。
このように、本実施形態では、各処理部P1~P4、P11~P13が予め決められた複数の結果情報のうちの一つを出力することで、処理結果をシーケンス管理部13に伝える例を採用している。つまり、各処理部P1~P4、P11~P13は、結果情報として、正常か異常かのいずれか一つを出力することで、シーケンス管理部13に対して処理結果を伝える。
そして、本実施形態では、各処理部P1~P4、P11~P13に対する実行の指示として、予め決められた複数の指示情報の一つを出力することで、各処理部P1~P4、P11~P13に対して実行を指示するシーケンス管理部13を採用している。つまり、シーケンス管理部13は、指示情報として、次のシーケンスを実施、現在のシーケンスに留まる、任意のシーケンスに遷移のいずれか一つを出力することで、各処理部P1~P4、P11~P13に対して実行を指示する。
これによって、電子制御装置100は、処理の変更を要求された場合に、その要求に対して容易に対応することが可能となる。つまり、電子制御装置100は、各処理部P1~P4、P11~P13の処理内容を変更した場合であっても、シーケンス管理部13を変更する必要がないので好ましい。
なお、指示情報は、処理要求と言い換えることができる。本実施形態では、図2に示すように、各処理部P1~P4、P11~P13に対する実行の指示として、第1~第4処理要求、第11~第13処理要求を出力するシーケンス管理部13を採用している。さらに、例えばシーケンス管理部13が第2処理要求を出力した場合、各処理部P1~P4、P11~P13は、第2処理要求を取得することができる。しかしながら、第2処理要求は、第2処理部P2に対する要求である。このため、第2処理部P2は、第2処理要求に応じて処理を実行する。一方、第1処理部P1や第3処理部P3など第2処理部P2以外の処理部は、第2処理要求に応じて処理を実行することはない。
また、シーケンス管理部13は、起動時処理の実行を示す関数がコールされて、起動時処理における各処理部P1~P4が正常に終了すると、起動時処理や終了時処理とは異なる通常処理の実行を要求する。同様に、シーケンス管理部13は、終了時処理の実行を示す関数がコールされると、終了時処理における各処理部P11~P13が正常に終了すると、マイコン10などへの電源の供給を停止する。
さらに、本実施形態では、図2に示すように、機能ブロックとして、複数のダイアグ部D1~D4、D11~D13を備えたマイコン10を採用している。マイコン10は、各処理部P1~P4に対応して、第1ダイアグ部D1、第2ダイアグ部D2、第3ダイアグ部D3、第4ダイアグ部D4が設けられている。また、マイコン10は、各処理部P11~P13に対応して、第11ダイアグ部D11、第12ダイアグ部D12、第13ダイアグ部D13が設けられている。例えば、第2ダイアグ部D2は、第2処理部P2に対応して設けられている。また、第11ダイアグ部D11は、第11処理部P11に対応して設けられている。
各ダイアグ部D1~D4、D11~D13は、処理部P1~P4、P11~P13の処理結果を取得して、異常回数のカウント、異常回数と異常通知閾値との比較、異常通知などを行う。また、各ダイアグ部D1~D4、D11~D13は、処理部P1~P4、P11~P13から取得した処理結果をシーケンス管理部13へ出力する。
なお、本実施形態では、複数の処理部P1~P4、P11~P13のそれぞれに対応して、複数のダイアグ部D1~D4、D11~D13が設けられたマイコン10を採用している。しかしながら、本開示は、これに限定されない。例えば、マイコン10は、処理部P1~P4、P11~P13に対して一つのダイアグ部が設けられていてもよい。また、マイコン10は、処理部P1~P4、P11~P13のうちのいくつかに共通に設けられた複数のダイアグ部が設けられていてもよい。さらに、マイコン10は、処理部P1~P4、P11~P13のうちのいくつかに共通に設けられたダイアグ部と、処理部P1~P4、P11~P13のうちの一つに対して設けられたダイアグ部とを備えていてもよい。
また、本開示は、各ダイアグ部D1~D4、D11~D13を備えていないマイコン10であっても採用できる。この場合、シーケンス管理部13は、各処理部P1~P4、P11~P13から処理結果を直接取得することになる。
第1装置21、第2装置22、第3装置23は、各処理部P1~P4、P11~P13の実行対象である内部装置である。第1装置21、第2装置22、第3装置23は、マイコン10と電気的に接続されている。マイコン10は、例えば、複数の処理部P1~P4、P11~P13が装置21~23に関する処理を行う。装置21~23としては、例えば、ASIC、I/O装置、AD変換器、フラッシュメモリ(外部メモリ)などを採用できる。また、I/O装置は、複数のI/Oポートを含んでいる。各I/Oポートには、電子制御装置100の外部に設けられたセンサなどが接続される。
なお、本実施形態では、三つの装置21~23を備えた電子制御装置100を採用している。しかしながら、本開示は、これに限定されず、二つ以下の装置を備えていてもよいし、四つ以上の装置を備えていてもよい。
通信部30は、電子制御装置100の外部に設けられた外部電子装置と通信線を介して接続されている。よって、電子制御装置100は、通信部30を介して外部電子装置と通信可能に構成されている。しかしながら、電子制御装置100は、通信部30を備えていなくてもよい。なお、外部電子装置は、上位電子制御装置や外部電子制御装置とも言える。
ここで、図3~図7のフローチャートを用いて、電子制御装置100(マイコン10)の処理動作に関して説明する。まず、図3~図6を用いて、シーケンス管理部13及びダイアグ部D1~D4の処理動作に関して説明する。図3~図6は、起動時処理又は終了時処理を示すフローチャートを区分けした図面である。
ここでは、一例として、起動時処理を実行する際の処理動作を採用する。シーケンス管理部13は、起動時処理の実行を示す関数がコールされると図3のフローチャートをスタートするとともに、所定時間毎に図3のフローチャートを実行する。
しかしながら、シーケンス管理部13は、終了時処理に関しても同様の処理動作を行う。この場合、シーケンス管理部13は、終了時処理の実行を示す関数がコールされると図3のフローチャートをスタートするとともに、所定時間毎に図3のフローチャートを実行する。
なお、シーケンス管理部13は、起動時処理の実行を示す関数がコールされると、第1処理部P1に対して第1処理要求を出力する。これによって、第1処理部P1は、処理を実行する。第1処理部P1で実行する処理は、マイコン10への電源の供給が開始されて、全ての装置21~23が確実に起動している状態や電源が安定している状態となるなど、確実に第2処理部P1以降の処理が実行可能となるまで待機する処理などを採用できる。よって、シーケンス管理部13は、第1処理部P1の処理結果を取得しなくてもよい。
ステップS10では、現在のシーケンスを確認する。シーケンス管理部13は、現在のシーケンスが第1~第4シーケンスのいずれであるかを確認する。
ステップS11では、現在のシーケンス=1であるか否かを判定する。シーケンス管理部13は、現在のシーケンスが第1シーケンスであると判定した場合はステップS12へ進む。一方、シーケンス管理部13は、現在のシーケンスが第1シーケンスであると判定しなかった場合はA、すなわち、図4のステップS20に進む。
ステップS12では、第2シーケンスへ遷移する。つまり、シーケンス管理部13は、第2処理部P2に対して、第2処理要求を出力する。
ステップS20では、現在のシーケンス=2であるか否かを判定する。シーケンス管理部13は、現在のシーケンスが第2シーケンスであると判定した場合はステップS21へ進む。一方、シーケンス管理部13は、現在のシーケンスが第2シーケンスであると判定しなかった場合はB、すなわち、図5のステップS30に進む。
ステップS21では、第2シーケンスの結果を取得する。つまり、シーケンス管理部13は、第2処理部P2の処理が正常に実行されたか否かを確認するために、第2処理部P2の処理結果を取得する。
ステップS22では、結果=正常であるか否かを判定する。シーケンス管理部13は、第2処理部P2の処理結果が正常であるか異常であるかを判定する。言い換えると、シーケンス管理部13は、異常診断を行う。
そして、シーケンス管理部13は、第2処理部P2の処理結果が正常であると判定した場合はステップS23へ進み、第2処理部P2の処理結果が正常であると判定しなかった場合はステップS24へ進む。
ステップS23では、第3シーケンスへ遷移する。つまり、シーケンス管理部13は、第3処理部P3に対して、第3処理要求を出力する。ここでの第3処理部P3は、次処理部に相当する。このように、本実施形態では、一例として、第2処理部P2の処理結果が正常であると判定した場合は、次のシーケンスを実施と判断するシーケンス管理部13を採用している。
ステップS24では、第2異常回数をインクリメントする。第2ダイアグ部D2は、第2処理部P2の異常回数である第2異常回数をインクリメントする。
ステップS25では、第2異常回数≧x回であるか否かを判定する。第2ダイアグ部D2は、第2異常回数≧x回であると判定した場合はステップS26へ進み、第2異常回数≧x回であると判定しなかった場合は図4のフローチャートを終了する。つまり、第2ダイアグ部D2は、第2異常回数≧x回であると判定しなかった場合は起動時処理を終了する。なお、本開示は、ステップS24、S25を備えていなくてもよい。
ところで、第2異常回数と比較するxは、異常通知の実行及び非実行を判定するための閾値であり、通知判定閾値と言える。通知判定閾値xは、第2処理部P2の処理結果が確実に異常となるとみなした場合のみ、異常通知を行うために設けられていると言える。
通知判定閾値xは、予め設定されている値であり、任意に設定することができる。また、通知判定閾値xは、第2処理部の処理内容によって設定することができる。例えば、通知判定閾値xは、ノイズなどによって異常となりやすい処理の場合は、ノイズなどに影響されず異常となりにくい処理の場合よりも回数を増やすことで、誤判定を抑制することができる。
なお、後程説明する通知判定閾値y、zに関しても同様である。また、通知判定閾値x、y、zは、それぞれ同じ回数でもよいし、異なる回数であってもよい。
ステップS26では、異常通知を行う。第2ダイアグ部D2は、第2異常回数が通知判定閾値x以上であると判定した場合、異常通知を行う。異常通知は、例えば、スピーカーやディスプレイを用いて、ユーザに異常を通知する。また、異常通知は、例えば、第2処理部P2の処理結果が異常であることをメモリ12などに記憶することで、ディーラーの作業者に異常を通知するものであってもよい。これによって、本開示は、第2処理部P2での処理が確実に異常であると判定した場合に、第2処理部P2での処理が異常であることをユーザや作業者に伝えることができる。
また、第2ダイアグ部D2は、通信部30を介して、外部電子装置に対して異常通知を行ってもよい。この場合、第2ダイアグ部D2は、第2異常回数≧x回と判定した旨をシーケンス管理部13に対して伝える。これによって、シーケンス管理部13は、通信部30を起動させるシーケンスに遷移する。そして、第2ダイアグ部D2は、通信部30が起動した状態で、外部電子装置に対して異常通知を行う。
なお、本実施形態では、異常である回数が所定回数(ここではx回)に達した場合に異常通知を行う例を採用している。しかしながら、本開示は、これに限定されず、ステップS22で異常であると判定された場合に、異常通知を行ってもよい。つまり、本開示は、ステップS24~S26を備えていなくてもよい。これによって、本開示は、ステップS24~S26を行う場合よりも、マイコン10の処理を簡略化しつつ、第2処理部P2での処理が異常であることを、ユーザや作業者に伝えることができる。
なお、シーケンス管理部13は、第2異常回数≧x回であると判定されなかった場合は第2シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップS10を実行する。また、ステップS24、S25を備えていない場合、シーケンス管理部13は、第2処理部P2の処理結果が異常と判定した場合、第2シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップS10を実行する。このように、本実施形態では、一例として、第2処理部P2の処理結果が異常であると判定した場合は、現在のシーケンスに留まると判断するシーケンス管理部13を採用している。ここでの第2処理部P2は、次処理部に相当する。
ステップS30では、現在のシーケンス=3であるか否かを判定する。シーケンス管理部13は、現在のシーケンスが第3シーケンスであると判定した場合はステップS31へ進む。一方、シーケンス管理部13は、現在のシーケンスが第3シーケンスであると判定しなかった場合はC、すなわち、図6のステップS40に進む。
ステップS31では、第3シーケンスの結果を取得する。つまり、シーケンス管理部13は、第3処理部P3の処理が正常に実行されたか否かを確認するために、第3処理部P2の処理結果を取得する。
ステップS32では、結果=正常であるか否かを判定する。シーケンス管理部13は、第3処理部P3の処理結果が正常であるか異常であるかを判定する。そして、シーケンス管理部13は、第3処理部P3の処理結果が正常であると判定した場合はステップS33へ進み、第3処理部P3の処理結果が正常であると判定しなかった場合はステップS34へ進む。
ステップS33では、第4シーケンスへ遷移する。つまり、シーケンス管理部13は、第4処理部P4に対して、第4処理要求を出力する。ここでの第4処理部P4は、次処理部に相当する。
ステップS34、S36は、ステップS24、S26と同様であるため、ステップS24、S26での説明を参照して適用することができる。つまり、第3ダイアグ部D3は、第2ダイアグ部D2と同様の処理を行う。
しかしながら、ステップS35では、第3異常回数≧y回であるか否かを判定する。第3ダイアグ部D3は、第3異常回数≧y回であると判定した場合はステップS36へ進み、第3異常回数≧y回であると判定しなかった場合はステップS37へ進む。つまり、第3ダイアグ部D3は、第3異常回数≧y回であると判定しなかった場合は起動時処理を終了するのではなくステップS37へ進む。
なお、本実施形態では、第3異常回数が所定回数(ここではy回)に達した場合にステップS37へ移行する例を採用している。しかしながら、本開示は、これに限定されず、ステップS32でNO判定の場合にステップS37へ移行してもよい。
ステップS37では、第2シーケンスへ遷移する。つまり、シーケンス管理部13は、第2処理部P2に対して、第2処理要求を出力する。このように、シーケンス管理部13は、動的に任意のシーケンスへ遷移することができる。
シーケンス管理部13は、第3異常回数≧y回であると判定されなかった場合は第2シーケンス以外に遷移することなく、すなわち、第2シーケンスを維持した状態で起動時処理を終了し、所定時間後に、ステップS10を実行する。また、ステップS34、S36を備えていない場合、シーケンス管理部13は、第3処理部P3の処理結果が異常と判定した場合、第2シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップS10を実行する。このように、本実施形態では、一例として、第3処理部P3の処理結果が異常であると判定した場合は、任意のシーケンスとして、第2シーケンスに遷移すると判断するシーケンス管理部13を採用している。
つまり、シーケンス管理部13は、複数の処理部P1~P4における一つである第3処理部P3の処理結果が異常であった場合、実行順が第3処理部P3よりも前の第2処理部P2を次処理部に決定する。そして、シーケンス管理部13は、決定した第2処理部P2に対して実行を指示する。ここでの、第3処理部P3は、対象処理部に相当する。また、第2処理部P2は、先行処理部及び次処理部に相当する。
言い換えると、シーケンス管理部13は、ある処理部の処理結果が異常であった場合、異常であった処理部を再度やり直したり、最初処理部から処理をやり直したりするのではなく、任意の処理部に実行させる。なお、この異常であった処理部を再度やり直したり、最初処理部から処理をやり直したりする電子制御装置は、比較例とする。処理のやり直しは、異常診断のリトライと言える。
この比較例の場合、異常診断のリトライに制限があったり、起動時処理や終了時処理に要する時間が長くなるといった課題が生じる。これに対して、電子制御装置100は、上記のように、任意のシーケンスに戻ることができるため、最低限かつ適切な範囲で異常診断のリトライが可能となる。特に、電子制御装置100は、次処理部として、実行順が最初の処理部(第1処理部P1)と異なる処理部が設定されていると、最初からやり直す必要がないので好ましい。なお、ここでの制限とは、例えば、処理部としては別になっているが連続して実施することに意味がある起動時処理もしくは終了時処理に対して、適切なシーケンスに遷移する必要があるなどである。例えば、第3処理部P3は、第2処理部P2の直後に実施しないと、たとえ実施したとしても正しい診断結果が得られないなどである。
ステップS40では、第4シーケンスの結果を取得する。つまり、シーケンス管理部13は、第4処理部P4の処理が正常に実行されたか否かを確認するために、第4処理部P4の処理結果を取得する。
ステップS41では、結果=正常であるか否かを判定する。シーケンス管理部13は、第4処理部P4の処理結果が正常であるか異常であるかを判定する。そして、シーケンス管理部13は、第4処理部P4の処理結果が正常であると判定した場合はステップS42へ進み、第4処理部P4の処理結果が正常であると判定しなかった場合はステップS43へ進む。
ステップS42では、起動を完了する。シーケンス管理部13は、起動時処理が完了したため、通常処理の実行を要求する。この場合、シーケンス管理部13は、例えば、通信部30の起動シーケンスへ遷移させた後に、車載機器の制御に関連するシーケンスへ遷移させる。つまり、電子制御装置100は、起動時処理が終了すると、通信部30を起動させた後に、車載機器の制御を行う。
ステップS43~S45は、ステップS24~S26と同様であるため、ステップS24~S26での説明を参照して適用することができる。つまり、第4ダイアグ部D4は、第2ダイアグ部D2と同様の処理を行う。
なお、複数の処理部P1~P4の処理結果が正常であった場合、第2処理部P2は、第1処理部P1に対する次処理部となる。同様に、第3処理部P3は、第2処理部P2に対する次処理部となる。そして、第4処理部P4は、第3処理部P3に対する次処理部となる。
次に、図7を用いて、第2処理部P2の処理動作に関して説明する。なお、他の処理部P3、P4、P11~P13に関しても同様である。また、第1処理部P1に関しても同様であってもよい。しかしながら、上記のような確実に第2処理部P1以降の処理が実行可能となるまで待機する処理が必要ない場合は、第1処理部P1は、省略してもよい。
ステップS50では、第2処理部P2は、初期化処理を行う。ステップS51では、第2処理部P2は、シーケンス=2であるか否かを判定する。第2処理部P2は、シーケンスが第2シーケンス、すなわち、自身に対応するシーケンスであると判定した場合はステップS52へ進み、第2シーケンスであると判定しなかった場合は図7のフローチャートを終了する。ステップS52では、第2処理部P2は、第2処理を実行する。
このように、電子制御装置100は、関数がコールされると、複数の処理部P1~P4、P11~P13の実行を開始し、複数の処理部P1~P4、P11~P13の実行順を管理するシーケンス管理部13を備えている。シーケンス管理部13は、各処理部P1~P4、P11~P13の実行毎に処理結果を取得するため、その処理結果に応じて複数の処理部P1~P4、P11~P13における次に実行させる次処理部を決定することができる。そして、電子制御装置100は、決定した次処理部に対して実行を指示するため、処理内容を変更した場合であっても、複数の処理部の実行を開始するための関数を変更する必要がない。よって、電子制御装置100は、ソフトのメンテナンス性や拡張性を向上することができる。
次に、図8のタイムチャートを用いて、電子制御装置100の処理動作に関して説明する。ここでは、より具体的な一例を採用する。図8は、マイコン10が起動時処理を実行する際のタイムチャートを示している。また、図8のシーケンス管理部13における1~7の数字は、シーケンス番号に相当する。
ここでの電子制御装置100は、内部装置として、I/O装置、AD変換器、フラッシュメモリ、外部レジスタ、ASICを備えているものとする。また、マイコン10は、処理部として、上記第1処理部P1、I/O初期設定部P21、AD値チェック部P22、データフラッシュチェック部P23、外部レジスタチェック部P24、ASICレジスタチェック部P25を備えているものとする。
第1シーケンスは、第1処理部P1が上記と同様の処理を実行する。第2シーケンスは、I/O初期設定部P21が、I/O装置21における各I/Oポートの機能設定などの初期設定を実行する。第3シーケンスは、AD値チェック部P22が、AD変換器によるAD変換が正確に行われているか否かを確認する。
このように、AD変換器は、I/O装置21から入力された信号をAD変換するものである。このため、I/O初期設定部P21とAD値チェック部P22とは、相関する処理部と言える。I/O初期設定部P21は、AD値チェック部P22に対する関連処理部と言える。同様に、AD値チェック部P22は、I/O初期設定部P21に対する関連処理部と言える。
第4シーケンスは、データフラッシュチェック部P23が、フラッシュメモリの記憶値を確認する。第5シーケンスは、外部レジスタチェック部P24が、外部レジスタに初期値などが正確に書き込まれているかなどを確認する。第6シーケンスは、ASICレジスタチェック部P25が、ASICレジスタに初期値などが正確に書き込まれているかなどを確認する。なお、第7シーケンスは、マイコン10が通常処理を実行する。
シーケンス管理部13は、タイミングt1~t4の各タイミングで、第1処理部P1に対して第1処理要求を出力する。
次に、シーケンス管理部13は、タイミングt5で第1シーケンスから第2シーケンスへ遷移する。シーケンス管理部13は、タイミングt5~t7の各タイミングで、I/O初期設定部P21に対して第2処理要求を出力する。そして、シーケンス管理部13は、タイミングt8でI/O初期設定部P21での処理結果が正常(OK)であった場合、第2シーケンスから第3シーケンスへ遷移する。
なお、シーケンス管理部13は、タイミングt8でI/O初期設定部P21での処理結果がNGであった場合、例えば、第2シーケンスを繰り返すか、第1シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt8でAD値チェック部P22に対して第3処理要求を出力する。そして、シーケンス管理部13は、タイミングt9でAD値チェック部P22での処理結果が異常(NG)であった場合、第3シーケンスから第2シーケンスへ遷移する。なお、シーケンス管理部13は、タイミングt9でAD値チェック部P22での処理結果がOKであった場合、第3シーケンスから第4シーケンスへ遷移する。
このように、シーケンス管理部13は、複数の処理部P21~P25における一つであるAD値チェック部P22の処理結果が異常の場合、複数の処理部P21~P25におけるAD値チェック部P22に相関するI/O初期設定部P21を次処理部に決定する。そして、シーケンス管理部13は、決定したI/O初期設定部P21に対して実行を指示する。なお、ここでは、AD値チェック部P22が対象処理部に相当し、I/O初期設定部P21が関連処理部及び時処理部に相当する。
次に、シーケンス管理部13は、タイミングt9~t11の各タイミングで、I/O初期設定部P21に対して第2処理要求を出力する。そして、シーケンス管理部13は、タイミングt12でI/O初期設定部P21での処理結果がOKであった場合、第2シーケンスから第3シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt12で、AD値チェック部P22に対して第3処理要求を出力する。そして、シーケンス管理部13は、タイミングt13でAD値チェック部P22での処理結果がOKであった場合、第3シーケンスから第4シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt13~t14の各タイミングで、データフラッシュチェック部P23に対して第4処理要求を出力する。そして、シーケンス管理部13は、タイミングt15でデータフラッシュチェック部P23での処理結果がOKであった場合、第4シーケンスから第5シーケンスへ遷移する。
なお、シーケンス管理部13は、タイミングt15でデータフラッシュチェック部P23での処理結果がNGであった場合、例えば、第4シーケンスを繰り返すか、第2シーケンスや第3シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt15で、外部レジスタチェック部P24に対して第5処理要求を出力する。そして、シーケンス管理部13は、タイミングt16で外部レジスタチェック部P24での処理結果がOKであった場合、第5シーケンスから第6シーケンスへ遷移する。
なお、シーケンス管理部13は、タイミングt16で外部レジスタチェック部P24での処理結果がNGであった場合、例えば、第5シーケンスを繰り返すか、第2シーケンスや第3シーケンスや第4シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt16~18の各タイミングでASICレジスタチェック部P25に対して第6処理要求を出力する。そして、シーケンス管理部13は、タイミングt19でASICレジスタチェック部P25での処理結果がNGであった場合、第6シーケンスから第5シーケンスへ遷移する。なお、シーケンス管理部13は、タイミングt19でASICレジスタチェック部P25での処理結果がOKであった場合、第6シーケンスから第7シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt19で、外部レジスタチェック部P24に対して第5処理要求を出力する。そして、シーケンス管理部13は、タイミングt20で外部レジスタチェック部P24での処理結果がOKであった場合、第5シーケンスから第6シーケンスへ遷移する。
次に、シーケンス管理部13は、タイミングt20~t22の各タイミングでASICレジスタチェック部P25に対して第6処理要求を出力する。そして、シーケンス管理部13は、タイミングt23でASICレジスタチェック部P25での処理結果がOKであった場合、第6シーケンスから第7シーケンスへ遷移する。
シーケンス管理部13は、処理結果が異常であり、且つ、この処理結果によって、後の処理部での処理が不要となった場合は、次処理部を決定することなく、複数の処理部での処理を終了させてもよい。つまり、シーケンス管理部13は、複数の処理部P1~P4、P11~P13における一つである対象処理部の処理結果が異常であり、且つ、処理結果によって、複数の処理部における実行順が対象処理部よりも後の後行処理部の実行が不要となることもある。
例えばAD値チェック部P22の処理結果が異常の場合、AD変換器は、正常なAD変換の結果を得ることができない。このため、電子制御装置100は、正常に動作することができない。よって、起動時処理におけるAD値チェック部P22以降に実行される処理部は、実行が不要になる。
よって、このような場合、シーケンス管理部13は、次処理部を決定することなく、複数の処理部での処理を終了させてもよい。例えば、シーケンス管理部13は、第2処理部P2での処理結果が異常であった場合、第3処理部P3及び第4処理部P4に対して処理を実行させることなく起動時処理を終了する。このようにすることで、電子制御装置100は、起動時処理や終了時処理に要する時間を短縮することができる。
また、このように、次処理部を決定することなく、複数の処理部での処理を終了させた場合、シーケンス管理部13は、通信部30を起動させるシーケンスに遷移してもよい。そして、ダイアグ部は、通信部30を介して外部電子装置に対して異常通知を行う。これによって、電子制御装置100は、正常に動作できなくなったことを、外部電子装置に伝えることができる。
なお、マイコン10は、終了時処理として、例えば、通信部を停止したり、次回の起動時に適切に起動できるか否かを確認したり、確認結果をフラッシュメモリに書き込んだり、ウォッチドッグを確認したりする。しかしながら、本開示は、これに限定されない。
また、本開示は、起動時処理と終了時処理の少なくとも一方を行うものであれば採用できる。よって、マイコン10は、起動時における第1処理部P1、第2処理部P2、第3処理部P3、第4処理部P4と、終了時における第11処理部P11、第12処理部P12、第13処理部P13の少なくとも一方を備えていればよい。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。
10…マイコン、11…CPU、12…メモリ、13…シーケンス管理部、21…第1装置、22…第2装置、23…第3装置、30…通信部、P1…第1処理部、P2…第2処理部、P3…第3処理部、P4…第4処理部、P11…第11処理部、P12…第12処理部、P13…第13処理部、P21…I/O初期設定部、P22…AD値チェック部、P23…データフラッシュチェック部、P24…ASIC初期設定部、P25…ASICレジスタチェック部、D1…第1ダイアグ部、D2…第2ダイアグ部、D3…第3ダイアグ部、D4…第4ダイアグ部、D11…第11ダイアグ部、D12…第12ダイアグ部、D13…第13ダイアグ部、100…電子制御装置

Claims (8)

  1. 起動時における複数の処理と終了時における複数の処理の少なくとも一方を実行する複数の処理部(P1~P4、P11~P13、P21~P25)と、
    起動時処理の実行を示す関数がコールされた場合は起動時における複数の前記処理を実行する複数の前記処理部の実行を開始し、終了時処理の実行を示す関数がコールされた場合は終了時における複数の前記処理を実行する複数の前記処理部の実行を開始し、複数の前記処理部の実行順を管理するものであり、各処理部の実行毎に処理結果を取得して、前記処理結果に応じて、次に実行させる次処理部を決定し、決定した前記次処理部に対して実行を指示するシーケンス管理部(13)と、を備えている電子制御装置。
  2. 前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であった場合、複数の前記処理部における前記実行順が前記対象処理部よりも前の先行処理部を前記次処理部に決定し、決定した前記次処理部に対して実行を指示する請求項1に記載の電子制御装置。
  3. 前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であり、且つ、前記処理結果によって、複数の前記処理部における前記実行順が前記対象処理部よりも後の後行処理部の実行が不要となった場合は、前記次処理部を決定することなく、複数の前記処理部での処理を終了させる請求項1に記載の電子制御装置。
  4. 前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であった場合、複数の前記処理部における前記対象処理部に相関する関連処理部を前記次処理部に決定し、決定した前記次処理部に対して実行を指示する請求項1に記載の電子制御装置。
  5. 前記シーケンス管理部は、前記処理部に対する実行の指示として、予め決められた複数の指示情報の一つを出力することで、前記処理部に対して実行を指示し、
    前記処理部は、予め決められた複数の結果情報のうちの一つを出力することで、前記処理結果を伝える請求項1乃至4のいずれか1項に記載の電子制御装置。
  6. 同一の前記処理部における前記処理結果が異常である場合、異常通知を行うダイアグ部(D1~D4、D11~D13)を、さらに備えている請求項1乃至4のいずれか1項に記載の電子制御装置。
  7. 外部電子装置と通信するための通信部を、さらに備えており、
    前記ダイアグ部は、前記通信部を介して前記外部電子装置に対して異常通知を行う請求項6に記載の電子制御装置。
  8. 前記ダイアグ部は、異常である回数が所定回数に達した場合に異常通知を行う請求項6又は7に記載の電子制御装置。
JP2018224614A 2018-11-30 2018-11-30 電子制御装置 Active JP7183745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018224614A JP7183745B2 (ja) 2018-11-30 2018-11-30 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018224614A JP7183745B2 (ja) 2018-11-30 2018-11-30 電子制御装置

Publications (2)

Publication Number Publication Date
JP2020087242A JP2020087242A (ja) 2020-06-04
JP7183745B2 true JP7183745B2 (ja) 2022-12-06

Family

ID=70908444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018224614A Active JP7183745B2 (ja) 2018-11-30 2018-11-30 電子制御装置

Country Status (1)

Country Link
JP (1) JP7183745B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229792A (ja) 2001-01-31 2002-08-16 Denso Corp プログラム、電子制御装置
JP2004362176A (ja) 2003-06-03 2004-12-24 Sony Corp 集積回路
WO2007097031A1 (ja) 2006-02-27 2007-08-30 Fujitsu Limited 情報処理装置及び処理実行方法
US20100127857A1 (en) 2008-11-21 2010-05-27 Kilmurray Paul A Diagnostic system having a wake-up circuit
JP2014071668A (ja) 2012-09-28 2014-04-21 Fujitsu Ltd 情報処理装置、起動プログラム、および起動方法
JP2017091234A (ja) 2015-11-11 2017-05-25 日立オートモティブシステムズ株式会社 車両制御装置
JP2017187968A (ja) 2016-04-07 2017-10-12 京セラドキュメントソリューションズ株式会社 電子機器及び起動シーケンス生成プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59140568A (ja) * 1983-01-31 1984-08-11 Fujitsu Ltd プログラム異常処理方式

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229792A (ja) 2001-01-31 2002-08-16 Denso Corp プログラム、電子制御装置
JP2004362176A (ja) 2003-06-03 2004-12-24 Sony Corp 集積回路
WO2007097031A1 (ja) 2006-02-27 2007-08-30 Fujitsu Limited 情報処理装置及び処理実行方法
US20100127857A1 (en) 2008-11-21 2010-05-27 Kilmurray Paul A Diagnostic system having a wake-up circuit
JP2014071668A (ja) 2012-09-28 2014-04-21 Fujitsu Ltd 情報処理装置、起動プログラム、および起動方法
JP2017091234A (ja) 2015-11-11 2017-05-25 日立オートモティブシステムズ株式会社 車両制御装置
JP2017187968A (ja) 2016-04-07 2017-10-12 京セラドキュメントソリューションズ株式会社 電子機器及び起動シーケンス生成プログラム

Also Published As

Publication number Publication date
JP2020087242A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
JP4911022B2 (ja) カウンタ制御回路、動的再構成回路およびループ処理制御方法
JP2014115950A (ja) 車載電子制御装置
JP6103909B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP6723941B2 (ja) 制御装置および制御プログラム更新方法
JP7183745B2 (ja) 電子制御装置
JP5662181B2 (ja) 移動体の電子制御装置
JP2009129463A (ja) 車両制御装置のリアルタイムシステムにおける一時的エラーの処理方法
JP2001067235A (ja) 割込コントローラ及びマイクロコンピュータ
US8127052B2 (en) Data transfer control device and computer system
JP2017102633A (ja) 情報処理装置および半導体集積回路装置
JP5971101B2 (ja) データ処理装置
JP4422076B2 (ja) データ処理装置、電子制御ユニット、ならびに自動車
JPH0420496B2 (ja)
US10269194B2 (en) Multiprocessor system and vehicle control system
JP5533777B2 (ja) プログラム群
JP2018112977A (ja) マイクロコンピュータ
JP2020030536A (ja) 電子制御装置
JP6094387B2 (ja) 制御装置
JP2022115295A (ja) 車両用電子制御装置
JP2021060870A (ja) 電子制御装置
JP6274947B2 (ja) 車載制御装置のマイクロプロセッサの異常診断方法
JP4975586B2 (ja) 複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラ
WO2018003560A1 (ja) 電子制御装置
JP6875950B2 (ja) 車両用制御装置
JP6416488B2 (ja) 半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221107

R151 Written notification of patent or utility model registration

Ref document number: 7183745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151