(57)【要約】【課題】信号線やピンの増加を抑制しつつ、診断結果を通知できる電子制御装置を提供すること。【解決手段】ＥＣＵは、マイコンと、マイコンからの駆動指示に応じてアクチュエータを駆動するドライバＩＣと、マイコンからドライバＩＣに駆動指示を行うための共通線と、を備えている。マイコンは、共通線の状態をオフ状態からオン状態とすることで、ドライバＩＣに対して駆動指示を行う。一方、ドライバＩＣは、マイコンから駆動指示がなされている状態で、アクチュエータへ駆動信号を出力している状態でドライバＩＣの異常診断を行う（Ｓ５１、Ｓ５２）。そして、ドライバＩＣは、異常と診断した場合、マイコンがオン状態としている共通線の状態を強制的にオフ状態とすることで、ドライバＩＣに異常が生じていることをマイコンに通知する（Ｓ５３）。【選択図】図６
2019073986.tif 000002
【特許請求の範囲】
【請求項１】
制御部（１０）と、前記制御部からの駆動指示に応じて駆動対象（２００）を駆動する駆動部（２０）と、前記制御部と前記駆動部間の信号またはデータを通信するための通信線（３０）と、を備え、
前記制御部は、
前記通信線の状態を第１状態から第２状態とすることで、前記駆動部に対して前記駆動指示を行う駆動指示部（Ｓ１３）を有し、
前記駆動部は、
前記制御部から前記駆動指示がなされている状態で、前記駆動対象へ駆動信号を出力している状態に基づいて前記駆動部の異常診断を行う診断部（Ｓ５１、Ｓ５２）と、
前記診断部にて異常と診断された場合、前記制御部が前記第２状態としている前記通信線の状態を強制的に前記第１状態とすることで、前記駆動部に異常が生じていることを前記制御部に通知する通知部（Ｓ５３）と、を備えている電子制御装置。
【請求項２】
前記制御部は、前記通信線の状態を前記第２状態としてから前記第１状態として特定周波数の診断切替信号を出力することで、前記駆動部に対して前記異常診断の開始指示を行う診断指示部（Ｓ１２）を有しており、前記開始指示後に前記駆動指示を行うものであり、
前記診断部は、前記制御部から前記開始指示がなされ、且つ前記駆動指示がなされている状態で、前記異常診断を行う請求項１に記載の電子制御装置。
【請求項３】
前記駆動部は、前記特定周波数の信号を通すフィルタ（２３）を備えており、前記フィルタを介して前記特定周波数の前記診断切替信号が入力された場合に、前記制御部から前記開始指示がなされたと判定する請求項２に記載の電子制御装置。
【請求項４】
前記駆動部は、前記異常診断を行う有効状態であるか、前記異常診断を行わない無効状態であるかを記憶しており、前記無効状態のときに前記診断切替信号が入力された場合に前記制御部から前記開始指示がなされたと判定し、前記有効状態のときに前記診断切替信号が入力された場合に前記制御部から前記異常診断の停止指示がなされたと判定する請求項３に記載の電子制御装置。
【請求項５】
前記制御部は、出力レジスタ（１５）と、入力レジスタ（１６）と、前記出力レジスタの値と前記入力レジスタの値とを比較して前記通知部からの異常の通知を判定する異常判定部（Ｓ３３、Ｓ３５）と、を備えており、
前記出力レジスタは、前記制御部による前記通信線の状態の指示に応じて前記第２状態とすることを示す値と、前記第１状態とすることを示す値とが記憶され、
前記入力レジスタは、前記通信線の状態に応じて前記第２状態であることを示す値と、前記第１状態であることを示す値とが記憶され、
前記異常判定部は、前記出力レジスタが前記第２状態とすることを示す値であり、前記入力レジスタが前記第１状態であることを示す値である場合に、前記通知部から異常が通知されたと判定する請求項１乃至４のいずれか一項に記載の電子制御装置。
【請求項６】
前記通知部は、前記駆動部に異常が生じていることを前記制御部に通知するために前記通信線の状態を強制的に前記第１状態とした後、前記診断部にて異常と診断されず、所定時間が経過した場合、強制的に前記第１状態とすることを停止する請求項１乃至５のいずれか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子制御装置に関する。
【背景技術】
【０００２】
従来、ドライバＩＣがマイクロコンピュータからシリアル通信を介して診断開始信号を受信すると診断を実施して、不良を検知するとマイクロコンピュータに通知する技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４６７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された技術では、ドライバＩＣの診断結果をマイクロコンピュータに通知するため、制御信号を送信する制御線の他に、診断結果を通知するための通信線やピンが必要になるという問題がある。
【０００５】
本開示は、上記問題点に鑑みなされたものであり、信号線やピンの増加を抑制しつつ、診断結果を通知できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本開示は、
制御部（１０）と、制御部からの駆動指示に応じて駆動対象（２００）を駆動する駆動部（２０）と、制御部から駆動部に駆動指示を行うための通信線（３０）と、を備え、
制御部は、
通信線の状態を第１状態から第２状態とすることで、駆動部に対して駆動指示を行う駆動指示部（Ｓ１３）を有し、
駆動部は、
制御部から駆動指示がなされている状態で、駆動対象へ駆動信号を出力している状態で駆動部の異常診断を行う診断部（Ｓ５１、Ｓ５２）と、
診断部にて異常と診断された場合、制御部が第２状態としている通信線の状態を強制的に第１状態とすることで、駆動部に異常が生じていることを制御部に通知する通知部（Ｓ５３）と、を備えていることを特徴とする。
【０００７】
このように、本開示は、制御部が通信線の状態を第１状態から第２状態とすることで駆動部に駆動指示を行い、駆動部が通信線の状態を強制的に第１状態とすることで異常が生じていることを制御部に通知する。よって、本開示は、制御部からの駆動部に駆動指示を行うための通信線を用いて、駆動部に異常が生じていることを制御部に通知することができる。このため、本開示は、信号線やピンの増加を抑制しつつ診断結果を通知できる。
【０００８】
なお、特許請求の範囲、およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【０００９】
【図１】電子制御装置の概略構成を示すブロック図である。
【図２】マイクロコンピュータにおける診断状態の切替処理を示すフローチャートである。
【図３】マイクロコンピュータにおける切替パルスの出力処理を示すフローチャートである。
【図４】マイクロコンピュータにおける診断結果の取得処理を示すフローチャートである。
【図５】ドライバＩＣにおける診断状態の切替処理を示すフローチャートである。
【図６】ドライバＩＣにおける異常通知処理を示すフローチャートである。
【図７】電子制御装置の処理動作を示すタイムチャートである。
【図８】電子制御装置の出力を示す真理値表である。
【発明を実施するための形態】
【００１０】
以下において、図１〜図８を用いて、本開示を実施するための形態を説明する。本実施形態では、本開示をＥＣＵ１００に適用した例を採用する。ＥＣＵ１００は、例えば、エンジンＥＣＵやＨＶ（ハイブリッド車両）用ＥＣＵなどのように車両に搭載された電子制御装置に適用することができる。
【００１１】
まず、図１を用いて、ＥＣＵ１００の構成に関して説明する。ＥＣＵ１００は、マイクロコンピュータ１０と、マイクロコンピュータ１０からの駆動指示に応じてアクチュエータ２００を駆動するドライバＩＣ２０と、マイクロコンピュータ１０からドライバＩＣ２０に駆動指示を行うための制御通知共通線３０とを備えている。また、ＥＣＵ１００は、アクチュエータ２００と電気的に接続されている。以下、マイクロコンピュータ１０は、マイコン１０と省略して記載する。また、制御通知共通線３０は、共通線３０と省略して記載する。ＥＣＵ１００は、マイコン１０がドライバＩＣ２０を介してアクチュエータ２００を駆動する。
【００１２】
なお、マイコン１０は、制御部に相当する。ドライバＩＣ２０は、駆動部に相当する。制御通知共通線３０は、通信線に相当する。アクチュエータ２００は、駆動対象に相当する。
【００１３】
共通線３０は、マイコン１０とドライバＩＣ２０と電気的に接続されており、マイコン１０とドライバＩＣ２０とを通信可能としている。共通線３０は、図７に示すように、マイコン１０とドライバＩＣ２０によって、オン状態とオフ状態との間で状態が切り替えられる。つまり、マイコン１０やドライバＩＣ２０は、共通線３０の状態をオン状態からオフ状態に切り替えることができ、且つ、オフ状態からオン状態に切り替えることができる。オフ状態は、第１状態に相当する。オン状態は、第２状態に相当する。
【００１４】
マイコン１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、汎用入出力部１４などを備えている。このように、マイコン１０は、少なくともひとつのＣＰＵ１１と、プログラムとデータとを記憶するＲＯＭ１２およびＲＡＭ１３と、ＣＰＵ１１とマイコン１０外部との間に汎用入出力部１４を有している、と言える。
【００１５】
ＲＯＭ１２およびＲＡＭ１３は、ＣＰＵ１１によって読み取り可能な記憶媒体で提供される。ＲＯＭ１２は、例えば、ＣＰＵ１１によって読み取り可能なプログラムを非一時的に格納（記憶）している。ＲＡＭ１３は、例えば、ＣＰＵ１１の演算結果を一時的に格納している。ＲＡＭ１３には、出力指示値や診断指示値を格納している。なお、ＲＡＭ１３には、ドライバＩＣ２０による異常診断が有効であるか無効であるかを示す情報を格納している。異常診断は、故障検知と言い換えることもできる。
【００１６】
出力指示値は、ドライバＩＣ２０にアクチュエータ２００の駆動を指示するか否かを示す値である。例えば、ドライバＩＣ２０にアクチュエータ２００の駆動を指示することを示す値として１、ドライバＩＣ２０にアクチュエータ２００の駆動を指示しないことを示す値として０を採用できる。また、出力指示値は、出力レジスタ１５のオンオフ状態を指示する値とも言える。よって、出力指示値１は、出力レジスタ１５のオン状態を指示する値と言える。一方、出力指示値０は、出力レジスタ１５のオフ状態を指示する値と言える。
【００１７】
ＣＰＵ１１は、例えば、外部のセンサからの検出結果や他の電子制御装置からの信号に基づいてアクチュエータ２００を駆動するか否かを判定し、判定結果に応じて出力指示値の値を書き換える。しかしながら、アクチュエータ２００を駆動するか否かの判定は、これに限定されない。
【００１８】
診断指示値は、診断状態、すなわちドライバＩＣ２０に異常診断を指示するか否かを示す値である。例えば、ドライバＩＣ２０に異常診断を指示することを示す値、すなわち有効を示す値として１、ドライバＩＣ２０に異常診断を指示しないことを示す値、すなわち無効を示す値として０を採用できる。ＣＰＵ１１は、例えば、車両のバッテリ電圧に基づいて異常診断を行うか否かを判定し、判定結果に応じて診断指示値の値を書き換える。また、診断指示値は、前回値と今回値が比較可能な状態で格納されている。つまり、ＲＡＭ１３には、診断指示値の前回値と今回値が格納されている。
【００１９】
ＣＰＵ１１は、例えば、バッテリ電圧が所定値よりも高い場合に異常診断を行うと判定し、バッテリ電圧が所定値に達していない場合に異常診断を行わないと判定する。しかしながら、異常診断を行うか否かの判定は、これに限定されない。
【００２０】
ＣＰＵ１１は、ＲＡＭ１３の一時記憶機能を利用しつつＲＯＭ１２に予め記憶されたプログラムに従って演算処理を行うことで、各種の制御を実行する。なお、記憶媒体は、半導体メモリまたは磁気ディスクなどによって提供されうる。
【００２１】
プログラムは、ＣＰＵ１１によって実行されることで、ＣＰＵ１１をこの明細書に記載される装置として機能させ、この明細書に記載される方法を実行するようにマイコン１０を機能させる。ＣＰＵ１１は、多様な要素を提供する。それらの要素の少なくとも一部は、機能を実行するための手段と呼ぶことができ、別の観点では、それらの要素の少なくとも一部は、構成的なブロック、またはモジュールと呼ぶことができる。
【００２２】
なお、ＥＣＵ１００が提供する手段および／または機能は、マイコン１０やドライバＩＣ２０の実体的なメモリ装置に記録されたソフトウェアおよびそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組み合わせによって提供することができる。例えば、ＥＣＵ１００がハードウェアである電子回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【００２３】
また、汎用入出力部１４は、出力レジスタ１５、入力レジスタ１６を含んでいる。出力レジスタ１５は、マイコン１０による共通線３０の状態の指示に応じてオン状態とすることを示す値と、オフ状態とすることを示す値とが記憶される。例えば、オン状態とすることを示す値として１、オフ状態とすることを示す値として０を採用できる。なお、出力レジスタ１５の値は、ＣＰＵ１１によって書き換えられる。出力レジスタ１５の値は、出力レジスタ値と言える。
【００２４】
また、出力レジスタ１５の値は、マイコン出力状態を示す値とも言える。マイコン１０は、出力レジスタ１５がオン状態の場合に共通線３０への出力を指示する状態であり、出力レジスタ１５がオフ状態の場合に共通線３０への出力の停止を指示する状態である。
【００２５】
入力レジスタ１６は、共通線３０の状態に応じてオン状態であることを示す値と、オフ状態であることを示す値とが記憶される。例えば、オン状態であることを示す値として１、オフ状態であることを示す値として０を採用できる。入力レジスタ１６の値は、入力レジスタ値と言える。
【００２６】
ドライバＩＣ２０は、異常診断部２１、記憶部２２、第１フィルタ２３、第２フィルタ２４、診断結果出力部２５、出力コントロール部２６などを備えている。ドライバＩＣ２０は、マイコン１０からの指示に応じてアクチュエータ２００を駆動する。
【００２７】
異常診断部２１は、第１フィルタ２３、第２フィルタ２４、診断結果出力部２５が電気的に接続されている。異常診断部２１は、第１フィルタ２３および第２フィルタ２４を介して、マイコン１０からの信号が入力される。
【００２８】
異常診断部２１は、ドライバＩＣ２０の異常を診断する。異常診断部２１は、例えば、アクチュエータ２００を駆動する際の出力電圧と電圧閾値とを比較して、ドライバＩＣ２０の異常を診断する。なお、ドライバＩＣ２０は、ハイサイドドライバの場合、出力電圧が第１電圧閾値と第２電圧閾値（＞第１電圧閾値）との間であれば正常と判定し、出力電圧が第１電圧閾値よりも小さい場合や第２電圧閾値よりも大きい場合に異常と判定する。また、ドライバＩＣ２０は、ローサイドドライバの場合、出力電圧が電圧閾値よりも小さい場合に正常と判定し、電圧閾値に達している場合に異常と判定する。また、異常診断部２１は、ドライバＩＣ２０の温度を検出して、その検出結果と温度閾値とを比較して、ドライバＩＣ２０の異常を診断するものであってもよい。
【００２９】
異常診断部２１は、診断結果出力部２５を介して、診断結果をマイコン１０へ出力する。なお、後程詳しく説明するが、異常診断部２１は、診断結果出力部２５を介して、共通線３０の状態を強制的にオン状態からオフ状態とすることで、ドライバＩＣ２０に異常が生じていることをマイコン１０に通知する。記憶部２２は、診断状態、すなわち、ドライバＩＣ２０による異常診断が有効であるか無効であるかを示す情報を格納している。つまり、記憶部２２は、異常診断を行う有効状態であるか、異常診断を行わない無効状態であるかを記憶している。よって、記憶部２２に記憶されている情報は、診断指示値と同様になっている。このように、異常診断が有効とは、異常診断を行う状態であり、有効状態と同意と言える。一方、異常診断が無効とは、異常診断を行わない状態であり、無効状態と同意と言える。
【００３０】
第１フィルタ２３は、マイコン１０から出力された信号における特定周波数の信号を通すフィルタである。第１フィルタ２３を通った信号は、異常診断部２１へと入力される。この第１フィルタ２３は、特許請求の範囲におけるフィルタに相当する。
【００３１】
第２フィルタ２４は、マイコン１０から出力された信号における、第１フィルタ２３とは異なる周波数の信号を通すフィルタである。第２フィルタ２４を通った信号は、異常診断部２１および出力コントロール部２６へと入力される。
【００３２】
診断結果出力部２５は、共通線３０と電気的に接続されている。診断結果出力部２５は、異常診断部２１からの指示に応じて、異常診断の結果をマイコン１０へ出力する。また、診断結果出力部２５は、異常診断部２１からの指示に応じて、共通線３０の状態をオン状態からオフ状態、およびオフ状態からオン状態へと切り替えることができる。
【００３３】
出力コントロール部２６は、第２フィルタ２４から入力された信号を駆動信号としてアクチュエータ２００へ出力する。ドライバＩＣ２０は、出力コントロール部２６が駆動信号を出力することでアクチュエータ２００を駆動する。
【００３４】
ここで、図２〜図８を用いて、ＥＣＵ１００の処理動作に関して説明する。なお、以下におけるタイミングｔ１〜ｔ１６、および遅れ時間ｔ２１、ｔ２２は、図７のタイムチャートを参照されたい。
【００３５】
まず、図２を用いて、マイコン１０の診断状態の切替処理に関して説明する。図２に示すフローチャートは、主に、マイコン１０のＣＰＵ１１が実行する処理である。ＣＰＵ１１は、イベント発生時や周期処理として図２のフローチャートに示す処理を行う。
【００３６】
ステップＳ１０では、診断指示値を取得する。ステップＳ１１では、前回から診断指示値の変更があるか否かを判定する。ＣＰＵ１１は、ＲＡＭから診断指示値を取得して、今回取得した診断指示値と、前回の診断指示値とを比較する。そして、ＣＰＵ１１は、前回から診断指示値の変更があったと判定した場合はステップＳ１２へ進み、変更があったと判定しなかった場合は図２の処理を終了する。つまり、ＣＰＵ１１は、診断指示値の変更があったと判定した場合、診断状態を変更する必要があるとみなしてステップＳ１２へ進む。
【００３７】
ステップＳ１２では、切替パルスの出力処理を行う（診断指示部）。ＣＰＵ１１は、タイミングｔ１〜ｔ２、ｔ１３〜ｔ１４に示すように、ドライバＩＣ２０に対して異常診断の切り替えを指示するために切替パルスを出力する。言い換えると、ＣＰＵ１１は、異常診断の開始指示や停止指示を行うため、すなわち、診断状態を有効にするためまたは無効にするために切替パルスを出力する。例えば、ＣＰＵ１１は、タイミングｔ１〜ｔ２に示すように、ドライバＩＣ２０に対して異常診断の開始指示を行うため、すなわち、診断状態を有効にするために切替パルスを出力する。また、ＣＰＵ１１は、タイミングｔ１３〜ｔ１４に示すように、ドライバＩＣ２０に対して異常診断の停止指示を行うため、すなわち、診断状態を無効にするために切替パルスを出力する。
【００３８】
切替パルスの出力処理に関しては、図３を用いて説明する。ステップＳ２０で、ＣＰＵ１１は、マイコン出力状態を反転させる（タイミングｔ１）。ＣＰＵ１１は、例えば、出力レジスタ１５をオフ状態からオン状態、つまり、出力レジスタ１５の値を０から１へと切り替える。これによって、タイミングｔ１に示すように、共通線３０がオフ状態からオン状態へと切り替わる。なお、オフ状態は、第１状態に相当する。一方、オン状態は、第２状態に相当する。
【００３９】
ステップＳ２１で、ＣＰＵ１１は、マイコン出力状態を反転させた状態で固定時間待機する（タイミングｔ１〜ｔ２）。これによって、タイミングｔ１〜ｔ２に示すように、共通線３０が固定時間の間、オン状態が継続する。
【００４０】
ステップＳ２２で、ＣＰＵ１１は、マイコン出力状態を反転させる（タイミングｔ２）。これによって、タイミングｔ２に示すように、共通線３０がオン状態からオフ状態へと切り替わる。
【００４１】
このように、ＣＰＵ１１は、共通線３０の状態をオフ状態からオン状態としてオフ状態として、特定周波数の診断切替信号を出力することで、ドライバＩＣ２０に対して異常診断の開始指示や停止指示を行う。このため、ＥＣＵ１００は、マイコン１０とドライバＩＣ２０との間に信号線を増加したり、マイコン１０やドライバＩＣ２０にピンを増加したりすることなく、マイコン１０からドライバＩＣ２０に異常診断の開始指示や停止指示を行うことができる。
【００４２】
しかしながら、本開示は、これに限定されず、ＣＰＵ１１から異常診断の開始指示を行わなくてもよい。この場合、ドライバＩＣ２０（異常診断部２１）は、所定時間毎などに異常診断を行ってもよい。
【００４３】
ステップＳ１３では、出力レジスタ１５をオンする（駆動指示部）。ＣＰＵ１１は、共通線３０の状態をオフ状態からオン状態、すなわち出力を反転させることで、ドライバＩＣ２０に対して駆動指示を行う（タイミングｔ５）。つまり、ＣＰＵ１１は、共通線３０を介して、ドライバＩＣ２０に駆動指示信号を出力する。このように、ＣＰＵ１１は、開始指示後に駆動指示を行う。これによって、タイミングｔ５に示すように、共通線３０がオフ状態からオン状態へと切り替わる。
【００４４】
これは、ＣＰＵ１１が、ドライバＩＣ２０に対してアクチュエータ２００の駆動を指示し、ドライバＩＣ２０に異常診断を行わせるためである。この場合、ドライバＩＣ２０は、例えばアクチュエータ２００を駆動している際の出力電圧を用いて、ドライバＩＣ２０の異常を診断する。このため、ＣＰＵ１１は、ドライバＩＣ２０に対して異常診断の開始指示を行った場合にステップＳ１３を実行すればよく、停止指示を行った場合にはステップＳ１３を実行しなくてもよい。
【００４５】
なお、ドライバＩＣ２０は、ＣＰＵ１１がタイミングｔ５で駆動指示を行うと、タイミングｔ６に示すように、タイミングｔ５から第１フィルタ２３による遅れ時間ｔ２１の分だけ遅れて第１フィルタ２３がオン状態となる。つまり、異常診断部２１には、タイミングｔ５から第１フィルタ２３による遅れ時間ｔ２１の分だけ遅れて第１フィルタ２３の出力が入力される。
【００４６】
次に、図４を用いて、マイコン１０の診断結果の取得処理に関して説明する。図４に示すフローチャートは、主に、マイコン１０のＣＰＵ１１が実行する処理である。ＣＰＵ１１は、イベント発生時や周期処理として図４のフローチャートに示す処理を行う。
【００４７】
ステップＳ３０では、診断指示値が有効であるか否かを判定する。ＣＰＵ１１は、診断指示値が有効であるか否かを判定し、有効であると判定した場合はステップＳ３１へ進み、有効であると判定しなかった場合、すなわち無効であると判定した場合は図４の処理を終了する。これは、車両のバッテリ電圧などに基づいて異常診断を行うと判定した場合に限ってステップＳ３１以降の処理を行うためである。
【００４８】
ステップＳ３１では、出力指示値を取得する。ＣＰＵ１１は、ＲＡＭ１３から出力指示値を取得する。また、ステップＳ３２では、入力レジスタ値を取得する。ＣＰＵ１１は、入力レジスタ１６から入力レジスタ値を取得する。
【００４９】
ステップＳ３３では、出力指示値と入力レジスタ値とが一致するか否かを判定する（異常判定部）。ＣＰＵ１１は、ステップＳ３１で取得した出力指示値と、ステップＳ３２で取得した入力レジスタ値とが一致するか否かを判定する。ＣＰＵ１１は、一致すると判定した場合はステップＳ３４へ進み、一致すると判定しなかった場合はステップＳ３５へ進む。
【００５０】
これは、ドライバＩＣ２０が異常と判定したか否かを確認するためである。ドライバＩＣ２０が異常と判定しなかった場合、出力指示値と入力レジスタ値とは、一致する。しかしながら、後程説明するが、ドライバＩＣ２０は、異常と判定した場合、異常をマイコン１０に通知するために共通線３０を強制的にオフ状態とする（通知部）。また、入力レジスタ値は、共通線３０の状態と同様である。このため、ドライバＩＣ２０が異常と判定した場合、出力指示値と入力レジスタ値とが一致しなくなる。なお、図７では、ドライバＩＣ２０は、タイミングｔ８で異常と診断したものとする。
【００５１】
本実施形態では、出力指示値と入力レジスタ値とが一致するか否かを判定する例を採用した。しかしながら、本開示は、これに限定されない。本開示は、出力指示値が示す内容と入力レジスタ値が示す内容とが同様であれば一致しいるとみなし、出力指示値が示す内容と入力レジスタ値が示す内容とが同様でなければ一致していないとみなしてもよい。つまり、ＣＰＵ１１は、出力指示値が出力レジスタ１５のオン状態を示しており、入力レジスタ値が共通線３０のオン状態を示している場合は一致しているとみなす。一方、ＣＰＵ１１は、出力指示値が出力レジスタ１５のオン状態を示しており、入力レジスタ値が共通線３０のオフ状態を示している場合は一致していないとみなす。なお、出力指示値は、出力レジスタ１５の値とみなすこともでき、出力レジスタ１５の値と置き換えることもできる。
【００５２】
ステップＳ３４では、正常と判定する。ＣＰＵ１１は、ドライバＩＣ２０による異常診断の結果が正常を示している、すなわちドライバＩＣ２０は正常であると判定する。
【００５３】
ステップＳ３５では、異常と判定する（異常判定部）。ＣＰＵ１１は、ドライバＩＣ２０による異常診断の結果が異常を示している、すなわち、ドライバＩＣ２０は異常であると判定する。つまり、ＣＰＵ１１は、出力指示値が出力レジスタ１５のオン状態を示す値であり、入力レジスタ１６がオフ状態であることを示す値である場合に、ドライバＩＣ２０（通知部）から異常が通知されたと判定する。ＣＰＵ１１は、タイミングｔ１１で異常が通知されたと判定、すなわち、ドライバＩＣ２０の異常状態を読み出す。
【００５４】
このように、ＣＰＵ１１は、出力指示値（出力レジスタ１５の値）と入力レジスタ１６の値とを比較してドライバＩＣ２０からの異常の通知を判定する。このため、ＣＰＵ１１は、容易にドライバＩＣ２０の異常を判定することができる。
【００５５】
ステップＳ３６では、出力レジスタ値を反転させる。ＣＰＵ１１は、出力レジスタ値を反転させる。ここでは、ＣＰＵ１１は、出力レジスタ値を１から０に反転させる。つまり、ＣＰＵ１１は、タイミングｔ１１に示すように、ドライバＩＣ２０からの異常状態の通知を読み出すと出力レジスタ１５をオン状態からオフ状態へと切り替える。これは、ドライバＩＣ２０に対して駆動指示を停止するためである。
【００５６】
次に、図５を用いて、ドライバＩＣ２０の診断状態の切替処理に関して説明する。図５に示すフローチャートは、主に、ドライバＩＣ２０の異常診断部２１が実行する処理である。異常診断部２１は、イベント発生時や周期処理として図５のフローチャートに示す処理を行う。
【００５７】
ステップＳ４０では、第１フィルタ２３の出力を確認する。異常診断部２１は、診断状態を切り替えるか否かを判定するために第１フィルタ２３の出力を確認する。異常診断部２１は、タイミングｔ３に示すように、タイミングｔ２から第１フィルタ２３による遅れ時間ｔ２１の分だけ診断切替信号が遅れて入力される。同様に、異常診断部２１は、タイミングｔ１５に示すように、タイミングｔ１４から第１フィルタ２３による遅れ時間ｔ２１の分だけ診断切替信号が遅れて入力される。
【００５８】
ステップＳ４１では、第２フィルタ２４がオフ中に第１フィルタ２３がオンからオフに切り替わったか否かを判定する。異常診断部２１は、第２フィルタ２４がオフ中に第１フィルタ２３がオンからオフに切り替わったと判定した場合は、マイコン１０から診断状態の切り替え指示がなされたとみなしてステップＳ４２へ進む。
【００５９】
一方、異常診断部２１は、第２フィルタ２４がオフ中に第１フィルタ２３がオンからオフに切り替わったと判定しなかった場合は、マイコン１０から診断状態の切り替え指示がなされていないとみなして図５の処理を終了する。つまり、異常診断部２１は、診断切替信号よりも低い周波数が入力された場合は通常の制御とみなす。
【００６０】
このように、ＥＣＵ１００は、ドライバＩＣ２０が特定周波数の信号を通す第１フィルタ２３を備えていることで、マイコン１０から特定周波数の診断切替信号が入力されたか否かを判定することができる。
【００６１】
異常診断部２１は、タイミングｔ３に示すように、記憶部２２に記憶された診断状態が無効を示している状態で、マイコン１０から切り替え指示がなされたとみなした場合、マイコン１０から診断指示があると判定する。つまり、異常診断部２１は、診断状態を無効から有効に切り替える指示がなされたとみなす。また、ドライバＩＣ２０は、第１フィルタ２３を介して特定周波数の診断切替信号が入力された場合に、マイコン１０から異常診断の開始指示がなされたと判定する、と言える。
【００６２】
これに対して、異常診断部２１は、タイミングｔ１５に示すように、記憶部２２に記憶された診断状態が有効を示している状態で、マイコン１０から切り替え指示がなされたとみなした場合、マイコン１０から診断指示が停止されたと判定する。つまり、異常診断部２１は、診断状態を有効から無効に切り替える指示がなされたとみなす。また、ドライバＩＣ２０は、第１フィルタ２３を介して特定周波数の診断切替信号が入力された場合に、マイコン１０から異常診断の停止指示がなされたと判定する、と言える。
【００６３】
ステップＳ４２では、診断状態の有効と無効を切り替える。異常診断部２１は、タイミングｔ４、ｔ１６に示すように、記憶部２２に記憶された診断状態の有効と無効を切り替える。異常診断部２１は、タイミングｔ４に示すように、タイミングｔ２から第２フィルタ２４による遅れ時間ｔ２２の分だけ遅れて診断状態を無効から有効に切り替える。また、異常診断部２１は、タイミングｔ１６に示すように、タイミングｔ１４から第２フィルタ２４による遅れ時間ｔ２２の分だけ遅れて診断状態を無効から有効に切り替える。
【００６４】
このように、マイコン１０は、異常診断の開始指示用の信号と停止指示用の信号を分けることなくひとつの診断切替信号によって、ドライバＩＣ２０に対して異常診断の開始と停止を指示することができる。
【００６５】
次に、図６を用いて、ドライバＩＣ２０の異常通知処理に関して説明する。図６に示すフローチャートは、主に、ドライバＩＣ２０の異常診断部２１が実行する処理である。異常診断部２１は、イベント発生時や周期処理として図６のフローチャートに示す処理を行う。
【００６６】
ステップＳ５０では、診断指示があるか否かを判定する。異常診断部２１は、記憶部２２の診断状態が有効であるか無効であるかに基づいて、診断指示があるか否かを判定する。異常診断部２１は、記憶部２２の診断状態が有効の場合は診断指示があると判定してステップＳ５１へ進み、診断状態が無効の場合は診断指示があると判定せず図６の処理を終了する。
【００６７】
ステップＳ５１では、ドライバＩＣ２０の異常を診断する（診断部）。異常診断部２１は、ＣＰＵ１１から駆動指示がなされている状態で、例えばアクチュエータ２００へ駆動信号を出力して駆動信号の出力状態に基づいてドライバＩＣ２０の異常診断を行う。
【００６８】
詳述すると、ドライバＩＣ２０は、タイミングｔ５でＣＰＵ１１が共通線３０をオン状態にすると、タイミングｔ７に示すように、第２フィルタ２４の遅れ時間ｔ２２の分だけ遅れて、第２フィルタ２４の出力がオフ状態からオン状態へと切り替わる。つまり、異常診断部２１は、第２フィルタ２４を介して駆動指示信号が入力される。
【００６９】
また、駆動指示信号は、第２フィルタ２４を介して出力コントロール部２６にも入力される。そして、出力コントロール部２６は、タイミングｔ７に示すように、駆動指示信号が入力されると、ドライバＩＣ２０の出力をオフ状態からオン状態へと切り替える。つまり、出力コントロール部２６は、アクチュエータ２００を駆動させる。そして、異常診断部２１は、例えばアクチュエータ２００を駆動している際の出力電圧を用いて、ドライバＩＣ２０の異常を診断する。
【００７０】
上記のように、異常診断部２１は、所定時間毎などに異常診断を行ってもよい。しかしながら、異常診断部２１は、マイコン１０から診断切替信号が入力、すなわち、ＣＰＵ１１から異常診断の開始指示がなされ、且つ駆動指示がなされている状態で、異常診断を行うと好ましい。つまり、ＥＣＵ１００は、異常診断が必要であるとＣＰＵ１１が判断した際に、ドライバＩＣ２０が異常診断を行うので好ましい。
【００７１】
ステップＳ５２では、ドライバＩＣ２０が異常であるか否かを判定する（診断部）。異常診断部２１は、ステップＳ５１での異常診断の結果が異常であるか否かを判定し、異常であると判定した場合はステップＳ５３へ進み、異常であると判定しなかった場合は図６の処理を終了する。
【００７２】
ステップＳ５３では、共通線３０を強制的にオフする（通知部）。異常診断部２１は、タイミングｔ８に示すように、診断結果出力部２５を介して、マイコン１０がオン状態としている共通線３０の状態を強制的にオフ状態とすることで、ドライバＩＣ２０に異常が生じていることをマイコン１０に通知する。
【００７３】
つまり、診断結果出力部２５は、異常診断部２１にて異常と診断されるタイミングｔ８まで、非異常状態を継続させて共通線３０の状態を強制的にオフ状態とすることはない。しかしながら、診断結果出力部２５は、異常診断部２１にて異常と診断されたタイミングｔ８で、非異常状態から異常状態とすることで、共通線３０の状態を強制的にオフ状態とする。また、ドライバＩＣ２０は、異常と診断した場合、マイコン１０からの状態より強いドライブストレングスで共通線３０の状態を反転させ、異常と診断しなかった場合、マイコン１０からの状態と同じ状態とする、と言える。
【００７４】
なお、第１フィルタ２３の出力は、タイミングｔ９に示すように、共通線３０を強制的にオフ状態としてから、第１フィルタ２３の遅れ時間ｔ２１の分だけ遅れてオフ状態となる。また、第２フィルタ２４の出力およびドライバＩＣ２０の出力は、タイミングｔ１０に示すように、共通線３０を強制的にオフ状態としてから、第２フィルタ２４の遅れ時間ｔ２２の分だけ遅れてオフ状態となる。
【００７５】
このため、ＥＣＵ１００は、図８に示すように、ドライバＩＣ２０が異常と診断していない状態、すなわち非異常状態の場合、出力レジスタ１５がオフ状態であれば共通線３０はオフ状態となり、出力レジスタ１５がオン状態であれば共通線３０はオン状態となる。一方、ＥＣＵ１００は、ドライバＩＣ２０が異常と診断している状態、すなわち異常状態の場合、出力レジスタ１５がオフ状態であれば共通線３０はオフ状態となり、出力レジスタ１５がオンであっても共通線３０はオフ状態となる。よって、ＥＣＵ１００は、異常診断部２１にて異常と診断された場合、ドライバＩＣ２０が強制的に共通線３０をオフ状態とするため、マイコン１０がドライバＩＣ２０介してアクチュエータ２００を駆動することを停止することができる。
【００７６】
さらに、異常診断部２１は、ドライバＩＣ２０に異常が生じていることをマイコン１０に通知するために共通線３０の状態を強制的にオフ状態とした場合、ドライバＩＣ２０の異常診断を継続して行ってもよい。この場合、診断結果出力部２５は、タイミングｔ１２に示すように、異常診断部２１が異常と診断せずに、所定時間が経過すると、異常状態から非異常状態へ切り替える。このように、ドライバＩＣ２０は、共通線３０の状態を強制的にオフ状態とした後、異常と診断されず、所定時間が経過した場合、強制的にオフ状態とすることを停止する。これによって、ＥＣＵ１００は、ノイズなどによって異常であるにもかかわらず異常でないと誤診断した場合に、即座にアクチュエータ２００を駆動可能な状態とすることを抑制できる。このため、ＥＣＵ１００は、異常状態でアクチュエータ２００を駆動して、アクチュエータ２００に不具合が生じることを抑制できる。
【００７７】
以上のように、ＥＣＵ１００は、マイコン１０が共通線３０の状態をオフ状態からオン状態とすることでドライバＩＣ２０に駆動指示を行い、ドライバＩＣ２０が共通線３０の状態を強制的にオフ状態とすることで異常が生じていることをマイコン１０に通知する。よって、ＥＣＵ１００は、マイコン１０からドライバＩＣ２０に駆動指示を行うための共通線３０を用いて、ドライバＩＣ２０に異常が生じていることをマイコン１０に通知することができる。このため、ＥＣＵ１００は、マイコン１０とドライバＩＣ２０との間に信号線を増加したり、マイコン１０やドライバＩＣ２０にピンを増加したりすることなく、診断結果を通知することができる。
【００７８】
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。
【符号の説明】
【００７９】
１０…マイクロコンピュータ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…汎用入出力部、１５…出力レジスタ、１６…入力レジスタ、２０…ドライバＩＣ、２１…異常診断部、２２…記憶部、２３…第１フィルタ、２４…第２フィルタ、２５…診断結果出力部、２６…出力コントロール部、３０…制御通知共通線、１００…ＥＣＵ、２００…アクチュエータ
【図１】
2019073986.tif 000003
【図２】
2019073986.tif 000004
【図３】
2019073986.tif 000005
【図４】
2019073986.tif 000006
【図５】
2019073986.tif 000007
【図６】
2019073986.tif 000008
【図７】
2019073986.tif 000009
【図８】
2019073986.tif 000010