(57)【要約】【課題】異常時に、外部に対する異常の通知機能を向上させる。【解決手段】車両に搭載されたアクチュエータ４を制御する制御部１０は自己診断を行う。自己診断による診断情報に基づいて制御部１０の動作状態を監視する監視部２０は、制御部１０の動作状態が異常であると判定したときに、自己診断による診断情報をＲＡＭ２４に保持した状態で、制御部１０からアクチュエータ４に対する制御信号ＳＡＣＴを遮断するとともにリセット信号ＳＲＥＳを出力して制御部１０を初期化する。監視部２０は、さらに所定条件を満たす場合には、リセット信号ＳＲＥＳの出力を停止して制御部１０を再起動させ、異常時処理を行わせる。【選択図】図１
2019057187.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載されたアクチュエータを制御しつつ自己診断を行う制御部と、
前記自己診断による診断情報に基づいて前記制御部の動作状態を監視する監視部と、
前記監視部の制御によって前記制御部から前記アクチュエータに対する制御信号を遮断可能なリレー部と、
を備え、
前記監視部は、前記制御部の動作状態が異常であると判定したときに、前記診断情報を保持した状態で、前記制御信号を遮断するとともに前記制御部を初期化し、さらに所定条件を満たす場合には、前記制御部を再起動させて異常時処理を行わせるように構成された、車載電子制御装置。
【請求項２】
前記異常時処理は、前記監視部から前記診断情報を取得して、前記制御部に接続された第１不揮発性メモリに前記診断情報を保存するとともに、外部との間で通信処理を行うことを含む、請求項１に記載の車載電子制御装置。
【請求項３】
前記所定条件は、前記制御部が前記異常時処理を実行できる状態で異常となっていることである、請求項１又は請求項２に記載の車載電子制御装置。
【請求項４】
前記制御部が前記異常時処理を実行できる状態は、前記制御部の演算器を除く部分に異常がある状態である、請求項３に記載の車載電子制御装置。
【請求項５】
前記監視部は、前記所定条件を満たしていない場合には、前記制御部を再起動せずに、前記監視部に内蔵または接続された第２不揮発性メモリに前記診断情報を保存するように構成された、請求項１に記載の車載電子制御装置。
【請求項６】
車両に搭載されたアクチュエータを制御する制御部は自己診断を行い、
前記自己診断による診断情報に基づいて前記制御部の動作状態を監視する監視部は、前記動作状態が異常であると判定したときに、前記診断情報を保持した状態で、前記制御部から前記アクチュエータに対する制御信号を遮断するとともに前記制御部を初期化し、
前記監視部は、さらに所定条件を満たす場合には、前記制御部を再起動させて異常時処理を行わせる、車載電子制御装置の異常時処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載電子制御装置およびその異常時処理方法に関する。
【背景技術】
【０００２】
従来の車載電子制御装置には、例えば特許文献１に記載されるように、車両に搭載されたアクチュエータを制御する制御部（メインＣＰＵ）とその動作を監視する監視部（サブＣＰＵ）とを有し、監視部が制御部の異常を検出した場合には、アクチュエータに対する電力供給を停止するとともに、制御部に異常検出信号を送信するものが知られている。このような車載電子制御装置において、監視部は、制御部が異常検出信号の受信に基づいて制御処理データを不揮発性メモリに記憶した後、制御部及び監視部への電力供給を遮断している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０６２３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、制御部が異常検出信号の受信に基づいて異常情報を不揮発性メモリに記憶させるものであったとしても、制御部及び監視部への電力供給を遮断してしまうと、制御部及び監視部への電力供給が遮断された第１の車載電子制御装置と、車両に搭載された他のアクチュエータを制御する第２の車載電子制御装置との間で通信が行えなくなってしまうため、第２の車載電子制御装置が第１の車載電子制御装置における異常発生を認識することができない。したがって、第２の車載電子制御装置は、第１の車載電子制御装置の異常に対応して他のアクチュエータを制御することができず、車両走行の安全性に影響を与えるおそれがある。
【０００５】
そこで、本発明は以上のような問題点に鑑み、異常時に、外部に対する異常の通知機能を向上させた車載電子制御装置及びその異常時処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
このため、本発明の一態様に係る車載電子制御装置は、車両に搭載されたアクチュエータを制御しつつ自己診断を行う制御部と、自己診断による診断情報に基づいて制御部の動作状態を監視する監視部と、監視部の制御によって制御部からアクチュエータに対する制御信号を遮断可能なリレー部と、を備え、監視部は、制御部の動作状態が異常であると判定したときに、自己診断による診断情報を保持した状態で、制御部からアクチュエータに対する制御信号を遮断するとともに制御部を初期化し、さらに所定条件を満たす場合には、制御部を再起動させて異常時処理を行わせるように構成される。
【０００７】
また、本発明の別態様に係る、車載電子制御装置の異常時処理方法では、車両に搭載されたアクチュエータを制御する制御部は自己診断を行い、自己診断による診断情報に基づいて制御部の動作状態を監視する監視部は、制御部の動作状態が異常であると判定したときに、自己診断による診断情報を保持した状態で、制御部からアクチュエータに対する制御信号を遮断するとともに制御部を初期化し、監視部は、さらに所定条件を満たす場合には、制御部を再起動させて異常時処理を行わせる。
【発明の効果】
【０００８】
本発明の車載電子制御装置及びその異常時処理方法によれば、異常時に、外部に対する異常の通知機能を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る車載電子制御装置の一例を示すブロック図である。
【図２】同車載電子制御装置のメインマイコンの処理を示すフローチャートである。
【図３】図２の正常時処理を示すフローチャートである。
【図４】図２の異常時処理を示すフローチャートである。
【図５】同車載電子制御装置のサブマイコンの処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。図１は、本発明の実施形態に係る車載電子制御装置の一例を示す。
【００１１】
車載電子制御装置（以下、「ＥＣＵ」という）１は、コンピュータを内蔵し、車載バッテリ２からイグニッションスイッチ３を介して電源供給を受けることで、車両に搭載されたアクチュエータ４を制御するものである。車両に搭載されたアクチュエータ４は、変速機構５において変速段を変更させる駆動源として用いられる。なお、車両に搭載されたアクチュエータ４は、変速機構５に限らず、内燃機関の可変バルブタイミング機構や可変圧縮比機構、制動機構、操舵補助機構等、様々な車載機構の駆動源としても適用可能である。
【００１２】
ＥＣＵ１は、アクチュエータ４を制御する制御部としての主制御用マイクロコンピュータ（以下、「メインマイコン」という）１０と、メインマイコン１０の動作状態を監視する監視部としての監視用マイクロコンピュータ（以下、「サブマイコン」という）２０と、を有している。
【００１３】
また、ＥＣＵ１は、車載バッテリ２からイグニッションスイッチ３を介して供給される電力を調整して電源電圧Ｖｃｃをメインマイコン１０及びサブマイコン２０に供給する電源回路３０と、外部からの制御信号ＳＲ１によってメインマイコン１０及びアクチュエータ４の間を電気的に接続及び遮断するリレー部である信号リレー４０と、電気的に書換え可能であって電源遮断時にも記憶された情報を保持する第１不揮発性メモリとしてのＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）５０と、を有している。
【００１４】
（メインマイコン）
メインマイコン１０は、不揮発性メモリであるＲＯＭ（Read Only Memory）１１と、外部との間で信号の入出力を行うインタフェースである入出力部（図中では「Ｉ／Ｏ」と記載）１２と、各種演算処理を行う演算器としてのＣＰＵ（Central Processing Unit）１３と、揮発性メモリであるＲＡＭ（Random Access Memory）１４と、を内部バス１５によって相互接続して備え、サブマイコン２０から出力されるリセット信号ＳＲＥＳを入力して初期化されるように構成される。
【００１５】
ＲＯＭ１１は、ＣＰＵ１３において各種制御処理を行うための制御処理プログラムとして、メインマイコン１０の動作状態が正常であるときに実行する正常時プログラムと、メインマイコン１０の動作状態が異常であって、かつ、後述の所定条件を満たすときに実行する異常時プログラムと、の２つのプログラムを予め格納している。
【００１６】
入出力部１２は、変速機構５のアクチュエータ４に対して制御信号ＳＡＣＴを出力するとともに、アクチュエータ４の制御量を検出するセンサ（図示省略）からの検出信号ＳＤＴＣを入力するように構成される。また、入出力部１２は、メインマイコン１０が、変速機構５以外の車載機構におけるアクチュエータを制御する他のＥＣＵ６、車両の外部から接続してＥＣＵ１等を含むシステムの診断を行う診断機７、及びサブマイコン２０と通信を行うとともに、メインマイコン１０に接続されたＥＥＰＲＯＭ５０との間でデータの入出力を行うように構成される。
【００１７】
ＣＰＵ１３は、メインマイコン１０の動作状態が正常であるときに、ＲＯＭ１１からＲＡＭ１４を介して正常時プログラムを読み出して実行することで、アクチュエータ制御とメインマイコン１０の異常診断（自己診断）とを含む正常時処理を行う。
【００１８】
アクチュエータ制御としては、ＣＰＵ１３は、運転者によるシフトレバー操作によって入出力部１２を介して入力された操作信号（図示省略）及びアクチュエータ４から入出力部１２を介して入力された検出信号ＳＤＴＣに基づいて、変速機構５のアクチュエータ４を制御する。具体的には、ＣＰＵ１３は、アクチュエータ４の制御の対象となる制御量について操作信号に基づいて目標制御量を設定するとともに、検出信号ＳＤＴＣから制御量の検出値を算出する。そして、ＣＰＵ１３は、目標制御量と制御量の検出値との偏差に基づいてアクチュエータ４の操作量を演算し、この操作量に応じた制御信号（例えばパルス幅変調信号等）ＳＡＣＴを、入出力部１２を介してアクチュエータ４へ出力する。
【００１９】
また、異常診断としては、ＣＰＵ１３は、アクチュエータ制御中又はその開始前後における所定のタイミングで、メインマイコン１０の動作状態が異常であるか否かの診断を行い、診断の結果である診断情報をサブマイコン２０へ送信する。ＣＰＵ１３は、メインマイコン１０の動作状態が正常である場合には、後述するセルフシャットオフ処理において、ＲＡＭ１４に一時的に記憶された、メインマイコン１０の動作状態が正常であることを示す診断情報（以下、「正常情報」という）を、ＥＥＰＲＯＭ５０に書き込む。
【００２０】
一方、ＣＰＵ１３は、メインマイコン１０の動作状態が異常であって、かつ、後述の所定条件を満たすときに、ＲＯＭ１１からＲＡＭ１４を介して異常時プログラムを読み出して実行することで、異常時処理を行う。異常時処理には、メインマイコン１０の動作状態に異常があることを示す診断情報（以下、「異常情報」という）をサブマイコン２０から受信して、この異常情報をＥＥＰＲＯＭ５０に保存する異常時保存と、他のＥＣＵ６又は診断機７等の外部装置と通信を行う異常時通信と、が含まれる。
【００２１】
上記の他、メインマイコン１０は、メインマイコン１０に入力される検出信号ＳＤＴＣをアナログ値からデジタル値に変換するＡ／Ｄ（Analog to Digital）変換器、及び、メインマイコン１０から出力される制御信号ＳＡＣＴをデジタル値からアナログ値に変換するＤ／Ａ（Digital to Analog）変換器を有する変換部１６を備えている。また、メインマイコン１０は、各種制御処理における計時手段となるタイマ１７を備えている。
【００２２】
（サブマイコン）
サブマイコン２０は、フラッシュＲＯＭ（図中では「Ｆ−ＲＯＭ」と記載）２１と、入出力部２２と、ＣＰＵ２３と、ＲＡＭ２４と、を内部バス２５によって相互接続して備え、入出力部２２を介してメインマイコン１０へリセット信号ＳＲＥＳを出力するように構成される。
【００２３】
フラッシュＲＯＭ２１は、電気的に書換え可能であって電源遮断時にも記憶された情報を保持する第２不揮発性メモリであり、ＣＰＵ２３において各種制御処理を行うための制御処理プログラムを予め格納している。フラッシュＲＯＭ２１はサブマイコン２０の外部に接続されていてもよく、この場合には入出力部２２を介してデータの入出力が行われる。
【００２４】
入出力部２２は、サブマイコン２０がメインマイコン１０と通信を行うとともに、サブマイコン２０から信号リレー４０に制御信号ＳＲ１を出力するように構成される。
【００２５】
ＣＰＵ２３は、フラッシュＲＯＭ２１からＲＡＭ２４を介して制御処理プログラムを読み出して実行することで、入出力部２２を介してメインマイコン１０から受信した診断情報に基づいて、メインマイコン１０の動作状態を監視する。
【００２６】
ＣＰＵ２３は、メインマイコン１０の動作状態に異常があると判定した場合には、ＲＡＭ２４に診断情報（異常情報）を保持した状態で、メインマイコン１０からアクチュエータ４に対する制御信号ＳＡＣＴを遮断するように、信号リレー４０に対して制御信号ＳＲ１を出力するとともに、メインマイコン１０に対してリセット信号ＳＲＥＳを出力する。
【００２７】
さらに、ＣＰＵ２３は、所定条件を満たしている、すなわち、メインマイコン１０が異常時処理を実行可能な状態で異常（以下、「実行可能異常」）となっている、と判定した場合には、リセット信号ＳＲＥＳの出力を停止してメインマイコン１０を再起動させ、前述の異常時処理を行わせる。一方、ＣＰＵ２３は、所定条件を満たしていない、すなわち、メインマイコン１０が異常時処理を実行不可能な状態で異常（以下、「実行不可能異常」）となっている、と判定した場合には、リセット信号ＳＲＥＳの出力を継続して、メインマイコン１０の再起動を行わないようにする。この場合、メインマイコン１０のＣＰＵ１３では異常時処理が行われず、異常情報をＥＥＰＲＯＭ５０へ書き込むことができないため、ＣＰＵ２３は、異常情報をフラッシュＲＯＭ２１へ保存する。
【００２８】
（セルフシャットオフ機能）
ＥＣＵ１には、イグニッションスイッチ３のオフ操作後においてもメインマイコン１０及びサブマイコン２０に対して電源回路３０を介した電源電圧の供給を継続し、かつ、オフ操作から所定時間が経過したときに電源電圧の供給を遮断するセルフシャットオフ機能が備えられている。イグニッションスイッチ３のオフ操作から所定時間が経過するまでの時間に行う各種処理をセルフシャットオフ処理というものとする。
【００２９】
具体的には、メインマイコン１０において、ＣＰＵ１３が、入出力部１２を介して入力された、イグニッションスイッチ３の電源回路３０側の電圧に相当する検出信号ＳＩＧＮに基づいて、イグニッションスイッチ３のオフ操作を検知する。ＣＰＵ１３は、オフ操作を検知したときに、電源リレー８に対してこれをオンにする制御信号ＳＲ２を、入出力部１２を介して出力することで、イグニッションスイッチ３を迂回して車載バッテリ２から電源回路３０へ電源電圧の供給を継続する。そして、ＣＰＵ１３は、タイマ１７によってイグニッションスイッチ３のオフ操作を検知してからカウントされた時間が所定期間に達したと判定したときに、電源リレー８に対してこれをオフにする制御信号ＳＲ２を出力することで、電源回路３０、ひいては、メインマイコン１０及びサブマイコン２０に対する電源電圧の供給を遮断する。
【００３０】
（メインマイコンにおける制御処理）
図２は、メインマイコン１０のＣＰＵ１３が、イグニッションスイッチ３のオン操作により電源回路３０からメインマイコン１０及びサブマイコン２０へ電源電圧が供給されたこと、あるいは、サブマイコン２０がメインマイコン１０に対するリセット信号ＳＲＥＳの出力を停止したことによりメインマイコン１０が再起動したこと、を契機として実行を開始する制御処理のメインルーチンを示す。
【００３１】
ステップＳ１０１（図中では「Ｓ１０１」と略記する。以下同様）では、メインマイコン１０のＣＰＵ１３は、メインマイコン１０に関する最新の診断情報を取得する。具体的には、メインマイコン１０のＣＰＵ１３は、ＥＥＰＲＯＭ５０又はサブマイコン２０のフラッシュＲＯＭ２１若しくはＲＡＭ２４から入出力部１２を介して、メインマイコン１０に関する最新の診断情報を取得する。
【００３２】
メインマイコン１０に関する最新の診断情報は、後述するように、前回の制御処理によってメインマイコン１０が実行可能異常となっていると判定された場合には、少なくともサブマイコン２０のＲＡＭ２４に一時的に記憶されて保持された異常情報であり、この異常情報がその後の異常時処理によってＲＡＭ２４からメインマイコン１０を介してＥＥＰＲＯＭ５０へ転送されて保存された場合には、ＥＥＰＲＯＭ５０に保存された最新の異常情報である。一方、後述するように、メインマイコン１０が実行不可能異常となっていると判定された場合には、メインマイコン１０に関する最新の診断情報は、サブマイコン２０のフラッシュＲＯＭ２１に保存された異常情報である。これらの異常情報の保存後、メインマイコン１０及びサブマイコン２０の制御処理において新たな診断情報の記憶はなされない。したがって、ステップＳ１０１において、メインマイコン１０のＣＰＵ１３は、先ず、サブマイコン２０と通信を行って、サブマイコン２０のＲＡＭ２４又はフラッシュＲＯＭ２１に異常情報が記憶されていれば、これを最新の診断情報として取得し、サブマイコン２０のＲＡＭ２４及びフラッシュＲＯＭ２１に異常情報が記憶されていなければ、ＥＥＰＲＯＭ５０から最新の診断情報（正常情報又は異常情報）を取得する。診断情報には、メインマイコン１０の動作状態を示す後述の動作状態フラグＦＡが含まれている。
【００３３】
ステップＳ１０２では、メインマイコン１０のＣＰＵ１３は、ステップＳ１０１で取得した診断情報に基づき、動作状態フラグＦＡが正常な動作状態を示す値（例えば０）となっているか否かを判定する。そして、メインマイコン１０のＣＰＵ１３は、動作状態フラグＦＡが正常な動作状態を示す値（ＦＡ＝０）となっていると判定した場合には（Ｙｅｓ）、処理をステップＳ１０３へ進める一方、動作状態フラグＦＡが異常な動作状態を示す値（ＦＡ＝１）となっていると判定した場合には（Ｎｏ）、処理をステップＳ１０６へ進める。
【００３４】
ステップＳ１０３では、メインマイコン１０のＣＰＵ１３は、ＲＯＭ１１からＲＡＭ１４を介して正常時プログラムを読み出して正常時処理を実行する。正常時処理の内容については後述する。
【００３５】
ステップＳ１０４では、メインマイコン１０のＣＰＵ１３は、入出力部１２を介して入力された検出信号ＳＩＧＮに基づいて、イグニッションスイッチ３のオフ操作がなされたか否かを判定する。そして、メインマイコン１０のＣＰＵ１３は、イグニッションスイッチ３のオフ操作がなされたと判定した場合には（Ｙｅｓ）、セルフシャットオフ処理を行うべく、電源リレー８に対してこれをオンにする制御信号ＳＲ２を出力し、処理をステップＳ１０５へ進める。一方、メインマイコン１０のＣＰＵ１３は、イグニッションスイッチ３のオフ操作がなされていないと判定した場合には（Ｎｏ）、正常時処理を引き続き実行すべく、処理をステップＳ１０３へ戻す。
【００３６】
ステップＳ１０５では、メインマイコン１０のＣＰＵ１３は、セルフシャットオフ処理として、正常時処理における異常診断によってＲＡＭ１４に一時的に記憶された正常情報を、入出力部１２を介してＥＥＰＲＯＭ５０に保存する。なお、ＣＰＵ１３は、イグニッションスイッチ３のオフ操作から所定時間が経過したときに、電源リレー８に対してこれをオフにする制御信号ＳＲ２を出力する。
【００３７】
ステップＳ１０６では、メインマイコン１０のＣＰＵ１３は、ＲＯＭ１１からＲＡＭ１４を介して異常時プログラムを読み出して異常時処理を実行する。異常時処理は、メインマイコン１０のＣＰＵ１３が検出信号ＳＩＧＮに基づいてイグニッションスイッチ３のオフ操作を検知するまで、繰り返し実行される。異常時処理の内容については後述する。
【００３８】
（正常時処理）
図３は、メインマイコン１０のＣＰＵ１３が、制御処理のメインルーチンにおけるステップＳ１０３で実行する正常時処理のサブルーチンを示す。
【００３９】
ステップＳ２０１では、メインマイコン１０のＣＰＵ１３は、アクチュエータ４の制御を行う（アクチュエータ制御）。具体的には、メインマイコン１０のＣＰＵ１３は、アクチュエータ４の制御対象となる制御量（例えば電流値）の検出値をフィードバックして目標制御量（例えば目標電流値）との偏差を演算し、この偏差に基づいてアクチュエータ４の操作量を演算する。そして、この操作量に応じた制御信号（例えばパルス幅変調信号）ＳＡＣＴを、入出力部１２を介してアクチュエータ４へ出力する。
【００４０】
ステップＳ２０２では、メインマイコン１０のＣＰＵ１３は、異常診断を行うタイミング（異常診断タイミング）であるか否かを判定する。異常診断タイミングは、アクチュエータ４の制御に影響を与えないタイミングで設定される。例えば、車両が停止している状態等、変速機構５の作動頻度が比較的低いと推定されるときを異常診断タイミングとすることができる。そして、メインマイコン１０のＣＰＵ１３は、異常診断タイミングであると判定した場合には（Ｙｅｓ）、処理をステップＳ２０３へ進める一方、異常診断タイミングではないと判定した場合（Ｎｏ）、処理をステップＳ２０１へ戻して、引き続きアクチュエータ４の制御を行う。
【００４１】
ステップＳ２０３では、メインマイコン１０のＣＰＵ１３はＲＯＭ１１及びＲＡＭ１４が異常であるか否かの異常診断を行う。ＲＯＭ１１及びＲＡＭ１４の異常診断については、種々の診断方法が開示され、本発明の目的とするものではないので詳細な説明を割愛するが、例えば、ＲＯＭ１１の診断は、各番地のＲＯＭデータを順次読出して生成したＣＲＣ（Cyclic Redundancy Check）符号と、予め格納してあるＣＲＣ符号の期待値と、を照合して行う。また、ＲＡＭ１４の異常診断は、ＲＡＭ１４の各番地に対し固定データの書込みと読出しを行い、読出し値と書込み値とが乖離しているか否かを判定して行う。そして、ＲＯＭ１１に異常が発生していると診断した場合には、ＲＯＭ異常フラグＦ１を、ＲＯＭ１１の異常を示す値（例えば１）に設定し、ＲＡＭ１４に異常が発生していると診断した場合には、ＲＡＭ異常フラグＦ２を、ＲＡＭ１４の異常を示す値（例えば１）に設定する。
【００４２】
ステップＳ２０４では、メインマイコン１０のＣＰＵ１３は、Ａ／Ｄ変換器及びＤ／Ａ変換器を有する変換部１６が異常であるか否かの異常診断を行う。Ａ／Ｄ変換器等の異常診断については、種々の診断方法が開示され、本発明の目的とするものではないので詳細な説明は割愛するが、例えば、基準信号をＡ／Ｄ変換器で変換したデジタル値と、基準信号に対応するＡＤ変換値として予め格納してある期待値と、を照合して診断する。そして、変換部１６に異常が発生していると診断した場合には、変換異常フラグＦ３を変換部１６の異常を示す値に設定する。
【００４３】
ステップＳ２０５では、メインマイコン１０のＣＰＵ１３は、タイマ１７が異常であるか否かの異常診断を行う。タイマ１７の異常診断については、種々の診断方法が開示され、本発明の目的とするものではないので詳細な説明は割愛するが、例えば、タイマ１７がハードウェアによって構成されている場合、タイマ１７によってカウントされた時間とＣＰＵ１３がソフトウェアの実行によってカウントされた時間とを比較して診断する。そして、タイマ１７に異常が発生していると診断した場合には、タイマ異常フラグＦ４をタイマ１７の異常を示す値に設定する。
【００４４】
ステップＳ２０６では、メインマイコン１０のＣＰＵ１３は、それ自体が異常であるか否かの異常診断を行う。ＣＰＵ１３の異常診断については、種々の診断方法が開示され、本発明の目的とするものではないので詳細な説明は割愛する。そして、ＣＰＵ１３に異常が発生していると診断した場合には、ＣＰＵ異常フラグＦ５をＣＰＵ１３の異常を示す値に設定する。なお、ステップＳ２０３〜ステップＳ２０６の異常診断は、適宜順番を入れ替えて実行してもよい。
【００４５】
ステップＳ２０７では、メインマイコン１０のＣＰＵ１３は、ＲＯＭ異常フラグＦ１、ＲＡＭ異常フラグＦ２、変換異常フラグＦ３、タイマ異常フラグＦ４又はＣＰＵ異常フラグＦ５の５つの異常診断フラグの値に基づいて、メインマイコン１０の動作状態についての判定を以下のようにして行う。
【００４６】
まず、メインマイコン１０のＣＰＵ１３は、５つの異常診断フラグの全てが正常を示す値に設定されていれば、メインマイコン１０の動作状態は正常であると判定して、メインマイコン１０の動作状態を示す動作状態フラグＦＡを、正常な動作状態を示す値に設定する（例えばＦＡ＝０）。一方、５つの異常診断フラグのうち少なくとも１つが異常を示す値に設定されていれば、メインマイコン１０の動作状態は異常であると判定して、動作状態フラグＦＡを、異常な動作状態を示す値に設定する（例えばＦＡ＝１）。
【００４７】
さらに、メインマイコン１０のＣＰＵ１３は、メインマイコン１０の動作状態が異常であると判定した場合、メインマイコン１０が実行可能異常又は実行不可能異常のいずれに該当するかを判定する。そして、メインマイコン１０のＣＰＵ１３は、メインマイコン１０が実行可能異常となっていると判定した場合には、実行可否フラグＦＢを異常時処理が実行可能であることを示す値に設定する一方（例えばＦＢ＝０）、メインマイコン１０が実行不可能異常となっていると判定した場合には、実行可否フラグＦＢを異常時処理が実行不可能であることを示す値に設定する（例えばＦＢ＝１）。
【００４８】
実行可否フラグＦＢを設定する際に、メインマイコン１０が実行可能異常又は実行不可能異常のいずれに該当するかは、５つの異常診断フラグのうち１つ又は複数の特定のフラグが異常を示す値となっているか否かによって判定する。
【００４９】
例えば、ＣＰＵ異常フラグＦ５がＣＰＵ１３の異常を示す値に設定されている場合には、ＣＰＵ１３による異常時プログラムの実行が困難であるので、他の４つの異常診断フラグの値にかかわらず、メインマイコン１０が異常時処理を実行できないと判定して、実行可否フラグＦＢを異常時処理の実行が不可能であることを示す値（例えば１）に設定することができる。一方、ＣＰＵ異常フラグＦ５がＣＰＵ１３の正常を示す値に設定されている場合には、実行可否フラグＦＢを異常時処理の実行が可能であることを示す値（例えば０）に設定することができる。
【００５０】
あるいは、ＣＰＵ異常フラグＦ５の値にかかわらず、ＲＯＭ異常フラグＦ１、ＲＡＭ異常フラグＦ２及びタイマ異常フラグＦ４の少なくとも１つが異常を示す値に設定されている場合には、メインマイコン１０において異常時プログラムを実行できないと判定して、実行可否フラグＦＢの値を１に設定することができる。
【００５１】
一方、メインマイコン１０の動作状態が異常である場合には、ＣＰＵ１３はアクチュエータ４の制御を含む正常時処理を行わず、変換部１６において制御信号ＳＡＣＴ及び検出信号ＳＤＴＣをＡＤ変換又はＤＡ変換する必要性がないので、変換異常フラグＦ３の値は、メインマイコン１０が実行可能異常又は実行不可能異常のいずれに該当するかを判定して実行可否フラグを設定するうえで、考慮しないものとすることができる。
【００５２】
なお、ＣＰＵ１３は、ステップＳ１０１で取得した最新の診断情報に基づいて、ＲＯＭ１１のうち異常時プログラムを格納している領域以外に異常があって、異常時プログラムを格納している領域に異常がないことが認識できる場合には、実行可否フラグＦＢの設定においてメインマイコン１０が実行可能異常又は実行不可能異常のいずれに該当するかを判定するうえで、ＲＯＭ異常フラグＦ１がＲＯＭ１１の正常を示す値であるとみなすことができる。また、ＣＰＵ１３は、メインマイコン１０から受信した診断情報に基づいて、ＲＡＭ１４のうち異常情報が記憶される領域に異常がないことが認識できる場合には、実行可否フラグＦＢの設定においてメインマイコン１０が実行可能異常又は実行不可能異常のいずれに該当するかを判定するうえで、ＲＡＭ異常フラグＦ２がＲＡＭ１４の正常を示す値とみなすことができる。
【００５３】
ステップＳ２０８では、ステップＳ２０３〜ステップＳ２０７における異常診断の結果である診断情報を、入出力部１２を介してサブマイコン２０へ送信する。この診断情報には、ＲＯＭ異常フラグＦ１、ＲＡＭ異常フラグＦ２、変換異常フラグＦ３、タイマ異常フラグＦ４及びＣＰＵ異常フラグＦ５の５つの異常診断フラグに加え、ステップＳ２０７で設定された動作状態フラグＦＡ及び実行可否フラグＦＢも含まれる。
【００５４】
（異常時処理）
図４は、メインマイコン１０のＣＰＵ１３が、制御処理のメインルーチンにおけるステップＳ１０４で実行する異常時処理のサブルーチンを示す。なお、メインマイコン１０のＣＰＵ１３が異常時処理を行っていない場合には、後述の第１実施フラグＦＣの値は０に設定されているものとする。
【００５５】
ステップＳ３０１では、メインマイコン１０のＣＰＵ１３は、ＥＥＰＲＯＭ５０に対する異常情報の保存の有無を示す第１実施フラグＦＣが、異常情報を保存していないことを示す値（例えば０）であるか否かを判定する。第１実施フラグＦＣはＥＥＰＲＯＭ５０に保存され、ステップＳ３０１を実行するたびにＥＥＰＲＯＭ５０から読み出される。そして、メインマイコン１０のＣＰＵ１３は、第１実施フラグＦＣが、未だ異常情報を保存していないことを示す値（ＦＣ＝０）となっている場合には（Ｙｅｓ）、異常情報を保存すべく、処理をステップＳ３０２へ進める。一方、メインマイコン１０のＣＰＵ１３は、第１実施フラグＦＣが、既に異常情報を保存したことを示す値（ＦＣ＝１）となっている場合には（Ｎｏ）、ＥＥＰＲＯＭ５０に対して既に最新の診断情報である異常情報の保存を行っているので、ステップＳ３０２及びステップＳ３０３を省略すべく、処理をステップＳ３０４へ進める。
【００５６】
ステップＳ３０２では、メインマイコン１０のＣＰＵ１３は、前述のステップＳ１０１においてサブマイコン２０のＲＡＭ２４から入出力部１２を介して受信した最新の診断情報である異常情報を、ＥＥＰＲＯＭ５０に保存する。
【００５７】
ステップＳ３０３では、メインマイコン１０のＣＰＵ１３は、第１実施フラグＦＣを異常時処理が既に実施されたことを示す値に設定する（ＦＣ＝１）。
【００５８】
ステップＳ３０４では、メインマイコン１０のＣＰＵ１３は、入出力部１２を介して他のＥＣＵ６又は診断機７等との間で通信を行う（異常時通信）。異常時通信として、メインマイコン１０のＣＰＵ１３は、他のＥＣＵ６あるいは診断機７からメインマイコン１０の動作状態について問い合わせがあった場合に、ＥＥＰＲＯＭ５０に保存された最新の診断情報である異常情報、あるいは、この異常情報のうち、メインマイコン１０の動作状態に異常があることを示す信号を、入出力部１２を介して他のＥＣＵ６あるいは診断機７へ送信する。
【００５９】
（サブマイコンにおける制御処理）
図５は、サブマイコン２０のＣＰＵ２３が、イグニッションスイッチ３のオン操作により電源回路３０からメインマイコン１０及びサブマイコン２０へ電源電圧が供給されたことを契機として実行を開始する制御処理のフローチャートである。
【００６０】
ステップＳ４０１では、サブマイコン２０のＣＰＵ２３は、メインマイコン１０に関する最新の診断情報を取得する。メインマイコン１０に関する最新の診断情報及びその取得方法については、ステップＳ１０１と同様であるので説明を割愛する。
【００６１】
ステップＳ４０２では、サブマイコン２０のＣＰＵ２３は、ステップＳ４０１で取得した診断情報に基づき、動作状態フラグＦＡが正常な動作状態を示す値（例えば０）となっているか否か、すなわち、メインマイコン１０の動作状態が正常であるか否かを判定する。そして、サブマイコン２０のＣＰＵ２３は、動作状態フラグＦＡが正常な動作状態を示す値（ＦＡ＝０）となっていると判定した場合には（Ｙｅｓ）、メインマイコン１０の動作状態の監視を行うべく、処理をステップＳ４０３へ進める。一方、サブマイコン２０のＣＰＵ２３は、動作状態フラグＦＡが異常な動作状態を示す値（ＦＡ＝１）となっていると判定した場合には（Ｎｏ）、既にメインマイコン１０の動作状態は異常であると診断されているため、ステップＳ４０３及びステップＳ４０４におけるメインマイコン１０の動作状態の監視を省略すべく、処理をステップＳ４０５へ進める。
【００６２】
ステップＳ４０３では、サブマイコン２０のＣＰＵ２３は、入出力部２２を介してメインマイコン１０と通信を行って、メインマイコン１０のＣＰＵ１３が行った異常診断による診断情報を受信する。
【００６３】
ステップＳ４０４では、サブマイコン２０のＣＰＵ２３は、ステップＳ４０３で取得した診断情報に基づき、動作状態フラグＦＡが正常な動作状態を示す値（例えば０）となっているか否か、すなわち、メインマイコン１０の動作状態が正常であるか否かを判定する。そして、サブマイコン２０のＣＰＵ２３は、動作状態フラグＦＡが正常な動作状態を示す値（ＦＡ＝０）となっていると判定した場合には（Ｙｅｓ）、メインマイコン１０の監視を続行すべく、処理をステップＳ４０３へ戻す。一方、サブマイコン２０のＣＰＵ２３は、動作状態フラグＦＡが異常な動作状態を示す値（ＦＡ＝１）となっていると判定した場合には（Ｎｏ）、処理をステップＳ４０５へ進める。
【００６４】
ステップＳ４０５では、サブマイコン２０のＣＰＵ２３は、入出力部２２を介して、信号リレー４０に対してこれをオフにする制御信号ＳＲ１を出力する（信号リレーのオフ制御）。これにより、メインマイコン１０の動作状態が異常と判定された場合に、メインマイコン１０からアクチュエータ４に対する制御信号ＳＡＣＴを遮断して、アクチュエータ４の誤動作を抑制する。
【００６５】
ステップＳ４０６では、サブマイコン２０のＣＰＵ２３は、入出力部２２を介して、メインマイコン１０に対してリセット信号ＳＲＥＳを出力する。
【００６６】
ステップＳ４０７では、サブマイコン２０のＣＰＵ２３は、ステップＳ４０３で取得した診断情報に基づき、実行可否フラグＦＢが実行可能異常又は実行不可能異常のいずれを示す値であるか、すなわち、メインマイコン１０が異常時処理を実行可能な状態で異常となっているか否かを判定する。そして、サブマイコン２０のＣＰＵ２３は、実行可否フラグＦＢが実行可能異常を示す値（ＦＢ＝０）であると判定した場合（Ｙｅｓ）、処理をステップＳ４０８へ進める一方、実行可否フラグＦＢが実行不可能異常を示す値（ＦＢ＝１）であると判定した場合（Ｎｏ）、処理をステップＳ４１１へ進める。
【００６７】
ステップＳ４０８では、サブマイコン２０のＣＰＵ２３は、ステップＳ４０６におけるリセット信号ＳＲＥＳの出力からの経過時間が、メインマイコン１０が初期化されたと推定される所定時間に到達したか否かを判定する。そして、サブマイコン２０のＣＰＵ２３は、経過時間が所定時間に到達したと判定した場合には（Ｙｅｓ）、処理をステップＳ４０９へ進める一方、経過時間が所定時間に到達していないと判定した場合には（Ｎｏ）、再びステップＳ４０８を実行する。
【００６８】
ステップＳ４０９では、サブマイコン２０のＣＰＵ２３は、メインマイコン１０に対するリセット信号ＳＲＥＳの出力を停止する。
【００６９】
ステップＳ４１０では、サブマイコン２０のＣＰＵ２３は、ステップＳ４０３においてメインマイコン１０から受信してＲＡＭ２４に一時的に記憶された異常情報を、入出力部２２を介してメインマイコン１０に対して送信し、処理をステップＳ４１４へ進める。なお、サブマイコン２０のＣＰＵ２３は、メインマイコン１０が再起動して受信待機状態となっていることを確認してから、サブマイコン２０へ異常情報を送信する。
【００７０】
ステップＳ４１１では、サブマイコン２０のＣＰＵ２３は、フラッシュＲＯＭ２１に対する異常情報の保存の有無を示す第２実施フラグＦＤが、異常情報をフラッシュＲＯＭ２１に保存していないことを示す値（例えば０）に設定されているか否かを判定する。第２実施フラグＦＤはフラッシュＲＯＭ２１に保存されており、ステップＳ４１１を実行するたびにフラッシュＲＯＭ２１から読み出される。そして、サブマイコン２０のＣＰＵ２３は、第２実施フラグＦＤが０であると判定した場合には（Ｙｅｓ）、処理をステップＳ４１２へ進めてフラッシュＲＯＭ２１に異常情報を保存し、さらに処理をステップＳ４１３へ進めて、第２実施フラグＦＤを、異常情報を保存したことを示す値（例えば１）に設定する。一方、サブマイコン２０のＣＰＵ２３は、第２実施フラグＦＤの値が１であると判定した場合には（Ｎｏ）、処理をステップＳ４１４へ進める。
【００７１】
ステップＳ４１４では、サブマイコン２０のＣＰＵ２３は、ステップＳ１０４と同様に、イグニッションスイッチ３のオフ操作がなされたか否かを判定する。そして、サブマイコン２０のＣＰＵ２３は、イグニッションスイッチ３のオフ操作がなされたと判定した場合には（Ｙｅｓ）、サブマイコン２０のＣＰＵ２３による制御処理を終了する一方、イグニッションスイッチ３のオフ操作がなされていないと判定した場合には（Ｎｏ）、ステップＳ４１４を繰り返す。
【００７２】
サブマイコン２０のＣＰＵ２３は、ステップＳ４０５を実行してから制御処理を終了するまで、信号リレー４０に対する制御信号ＳＲ１の出力を停止していないので、メインマイコン１０からアクチュエータ４に対する制御信号ＳＡＣＴは遮断されたままである。これにより、メインマイコン１０の動作状態に異常があると判定された場合には、アクチュエータ４の誤動作が抑制される。また、サブマイコン２０のＣＰＵ２３が、ステップＳ４０６を実行してからステップＳ４１１又はステップ４１１〜ステップＳ４１３を経て制御処理を終了するまで、メインマイコン１０に対するリセット信号ＳＲＥＳの出力を停止することなく継続したままであるので、メインマイコン１０の動作状態における異常が実行不可能異常であると判定された場合には、メインマイコン１０は初期化された状態で動作しない。
【００７３】
このようなＥＣＵ１によれば、サブマイコン２０は、メインマイコン１０の動作状態に異常がある場合には、アクチュエータ４に対する制御信号ＳＡＣＴを遮断してアクチュエータ４の誤動作を抑制するとともに、メインマイコン１０に対してリセット信号ＳＲＥＳを出力してメインマイコン１０の初期化を行っている。そして、サブマイコン２０は、メインマイコン１０が異常時処理を実行可能な状態で異常となっている、すなわち、ＥＥＰＲＯＭ５０に対する異常情報の保存及び異常時通信を含む異常時処理を行うことができると判定した場合には、メインマイコン１０に対するリセット信号ＳＲＥＳの出力を停止してメインマイコン１０を再起動させることで、メインマイコン１０に異常時処理を行わせている。これにより、メインマイコン１０は、ＥＥＰＲＯＭ５０に異常情報を保存するとともに、他のＥＣＵ６や診断機７からメインマイコン１０の動作状態について問い合わせがあった場合に、メインマイコン１０の動作状態に関する情報を送信することが可能となるため、外部に対する異常の通知機能を向上させることができる。特に、変速機構５以外の他のアクチュエータを制御する他のＥＣＵ６は、ＥＣＵ１の異常に対応して、他のアクチュエータを制御することができるので、車両走行の安全性を維持しやすくなる。
【００７４】
一方、ＥＣＵ１のサブマイコン２０は、メインマイコン１０が異常時処理を実行不可能な状態で異常となっている場合には、メインマイコン１０に対するリセット信号ＳＲＥＳの出力を継続して、メインマイコン１０の再起動を行わないようにしつつ、異常情報をフラッシュＲＯＭ２１へ保存する。メインマイコン１０に実行不可能異常が発生したＥＣＵ１は、これを分解等して解析した際に、図１のフラッシュＲＯＭ書換え手段９をフラッシュＲＯＭ２１に接続して異常情報を読み出すことで、異常原因の特定が可能となる。
【００７５】
なお、前述の実施形態において、メインマイコン１０のＣＰＵ１３又はサブマイコン２０のＣＰＵ２３は、メインマイコン１０の動作状態に異常があると判定した場合、運転者に異常がある旨を報知することができる。また、メインマイコン１０のＣＰＵ１３又はサブマイコン２０のＣＰＵ２３は、メインマイコン１０が実行可能異常又は実行不可能異常のいずれであるかに応じて、運転者の注意を喚起するレベルを変えて報知してもよい。例えば、メインマイコン１０が実行可能異常となっていると判定すれば、表示灯を点灯又は点滅させて視覚的な注意を喚起し、メインマイコン１０が実行不可能異常となっていると判定すれば、視覚的な注意喚起に加えて、警報音により聴覚的な注意を喚起してもよい。
【００７６】
サブマイコン２０のＣＰＵ２３は、メインマイコン１０の動作状態に異常があると判定した場合には、アクチュエータ４に対する制御信号ＳＡＣＴを遮断していたが、これに代えて、車両がリンプホーム動作を行うように、メインマイコン１０からアクチュエータ４に強制的に出力される制御信号ＳＡＣＴを遮断しないようにすることができる。例えば、メインマイコン１０のＣＰＵ１３は、変速機構５においてアクチュエータ４を作動させて低速ギアへ変速するように制御信号ＳＡＣＴを強制的に出力することができる。このとき、サブマイコン２０のＣＰＵ２３は、メインマイコン１０からアクチュエータ４に出力される強制的な制御信号ＳＡＣＴを遮断しないようにすることができる。
【００７７】
メインマイコン１０及びサブマイコン２０として図１の構成を例示したが、これに限られず、他の構成であっても本発明の適用は可能である。例えば、メインマイコン１０のＲＯＭ１１としては、例えばＥＥＰＲＯＭ又はフラッシュメモリ等、電気的に書き換え可能な不揮発性メモリであってもよい。ＲＯＭ１１が書き換え可能な不揮発性メモリである場合には、異常情報をＲＯＭ１１に保存できるので、メインマイコン１０のＣＰＵ１３による異常時処理において、サブマイコン２０のＲＡＭ２４から異常情報を受信することなく、ＲＯＭ１１に保存された異常情報をＥＥＰＲＯＭ５０に転送することができる。
【００７８】
また、ＥＣＵ１は、メインマイコン１０及びサブマイコン２０に代えて、マルチコアを有するＣＰＵを備え、このＣＰＵが、メインマイコン１０に相当する制御部としての１つのコアと、サブマイコン２０に相当する監視部としての別のコアと、を含むものとしても、本発明を適用することができる。あるいは、ＥＣＵ１において、サブマイコン２０をこれに相当する機能を備えたＡＳＩＣ（Application Specific Integrated Circuit）で代用してもよい。
【００７９】
メインマイコン１０の動作状態が異常であると判定されてからメインマイコン１０を正常品に交換した場合に、メインマイコン１０に接続された診断機７によって異常診断を行った結果、メインマイコン１０の動作状態が正常であると診断されたときには、ＥＥＰＲＯＭ５０に正常情報を保存することができる。これにより、メインマイコン１０のＣＰＵ１３は、制御処理において正常時処理（ステップＳ１０３）を行えるようになり、サブマイコン２０のＣＰＵ２３は、メインマイコン１０の監視（ステップＳ４０３及びステップＳ４０４）を行えるようになる。
【００８０】
メインマイコン１０が実行可能異常となっていると判定された場合、メインマイコン１０のＣＰＵ１３が異常時処理によって異常情報をＥＥＰＲＯＭ５０に保存する前にイグニッションスイッチ３がオフ操作されたときには、サブマイコン２０のＲＡＭ２４に一時的に記憶されている異常情報は、セルフシャットオフ処理として、サブマイコン２０のフラッシュＲＯＭ２１に保存されてもよい。
【００８１】
前述の実施形態において、メインマイコン１０のＣＰＵ１３は、メインマイコン１０の動作状態が正常であると判定されたときに正常時プログラムをＲＯＭ１１から読み出す一方、メインマイコン１０の動作状態が異常であると判定されたときに異常時プログラムをＲＯＭ１１から読み出していた。これに代えて、メインマイコン１０のＣＰＵ１３は、制御処理を開始する際に、正常時プログラム及び異常時プログラムの両方を予め読み出していてもよい。
【符号の説明】
【００８２】
１…ＥＣＵ、４…アクチュエータ、６…他のＥＣＵ、７…診断機、１０…メインマイコン、１２…入出力部、１３…ＣＰＵ、２０…サブマイコン、２１…フラッシュＲＯＭ、２３…ＣＰＵ、４０…信号リレー、５０…ＥＥＰＲＯＭ、ＳＡＣＴ…制御信号、ＳＲＥＳ…リセット信号、ＦＡ…動作状態フラグ、ＦＢ…実行可否フラグ
【図１】
2019057187.tif 000003
【図２】
2019057187.tif 000004
【図３】
2019057187.tif 000005
【図４】
2019057187.tif 000006
【図５】
2019057187.tif 000007