(57)【特許請求の範囲】
【請求項１】
互いに通信可能に接続された第一及び第二のマイクロコンピュータを備える電子機器であって、
前記各マイクロコンピュータは、前記電子機器として果たすべき主機能を、協働して実現する構成にされ、
前記第一のマイクロコンピュータは、
前記主機能の実現のために、前記第二のマイクロコンピュータから受信したデータに対する所定の画像認識処理を実行する画像認識手順と、
自マイクロコンピュータが備えるＣＰＵコアの各レジスタに所定のビットパターンをセットして、前記各レジスタが正常であるときには演算結果としての算出値が一定値となる所定の演算を行う第一宿題演算手順と、
前記第一宿題演算手順で求めた前記算出値を、加算動作毎に値が更新される変数値、と加算して、その加算値を求める第二宿題演算手順と、
前記画像認識処理の実行結果を表すデータと共に、前記加算値の情報及び前記加算値を求める際に用いた変数値の情報を、前記第二のマイクロコンピュータに送信する送信手順と、
を前記第二のマイクロコンピュータから前記データを受信する度に実行する構成を有し、
前記第二のマイクロコンピュータは、
前記主機能の実現のために、画像認識処理が必要なデータを周期的に前記第一のマイクロコンピュータに送信して、前記第一のコンピュータから前記画像認識処理の実行結果を表すデータを受信する構成を有すると共に、
前記第一のマイクロコンピュータから受信した前記加算値及び前記変数値の情報に基づき、前記加算値から前記変数値を減算して、その減算値を求める減算手順と、
前記減算手順で求められた減算値が、予め定められた正常値であるか否かを判定する判定手順と、
を前記画像認識処理が必要なデータの送信周期に合わせて周期的に実行する構成を有し、
更に、前記第二のマイクロコンピュータは、前記判定手順での判定結果に基づき、前記第一のマイクロコンピュータの異常を外部に報知する構成を有する
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータを備える電子機器に関する。
【背景技術】
【０００２】
従来、マイクロコンピュータを備える電子機器としては、マイクロコンピュータの周辺装置にて、マイクロコンピュータの異常を監視する電子機器が知られている（例えば、特許文献１参照）。また、複数のマイクロコンピュータを備える電子機器としては、マイクロコンピュータの異常を、周辺のマイクロコンピュータにて監視する電子機器が知られている。
【０００３】
マイクロコンピュータの異常としては、アキュムレータや汎用レジスタ等のレジスタが０又は１に固着して、正常な演算が行えなくなる異常があるが、このような異常を検知する方法としては、図９（ｂ）に示すように、監視元のマイクロコンピュータから監視先のマイクロコンピュータへ変数値Ｃを渡して、監視先のマイクロコンピュータに、変数値Ｃを用いて宿題演算を実行させる方法が知られている。
【０００４】
宿題演算では、レジスタの固着を検知するために、各レジスタに、オール０のビットパターンや、オール１のビットパターンなどのいくつかのビットパターンをセットして、所定の演算を行い、その合算値Ｘを算出する。そして、合算値Ｘと、監視元のマイクロコンピュータから与えられた変数値Ｃとを加算し、加算値Ｙ＝Ｃ＋Ｘを求めて、この宿題演算結果Ｙ（即ち、加算値Ｙ）を、監視元のマイクロコンピュータに返信する。
【０００５】
この宿題演算では、合算値Ｘの算出に当たって常に同じ手順で演算を行うため、レジスタに異常がないかぎり、基本的に、算出される合算値Ｘは一定である。一方、レジスタの一部が０又は１に固着している場合には、正常な演算が行えないため、合算値Ｘは、正常値Ｘ０とは基本的に異なる値となる。
【０００６】
但し、マイクロコンピュータ内部で複数箇所に異常が発生している場合には、異常があるにも拘わらず合算値Ｘが正常値Ｘ０となってしまう可能性もある。そこで、宿題演算では、合算値Ｘに変数値Ｃを加算して、この問題を回避する。
【０００７】
異常があれば、この加算時にも正常に演算が行えない。従って、変数値Ｃを変えて複数回、監視先のマイクロコンピュータに宿題演算を実行させ、複数回の各宿題演算結果Ｙについて、監視元のマイクロコンピュータで、宿題演算結果Ｙから変数値Ｃを引いた値Ｘが正常値Ｘ０と一致するか否か判定すれば、監視先のマイクロコンピュータが正常か否かを、精度よく判定することができる。
【特許文献１】特開２００１−３１２３１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、複数のマイクロコンピュータを備える電子機器としては、電気機器にて実現されるべき主たる機能（主機能）を、マイクロコンピュータ間で演算結果等のデータ交換を行って、協働して実現するものが広く知られている。
【０００９】
例えば、車両制御の分野では、車両をレーンに沿って走行させるレーンキープアシストシステムが知られているが、レーンキープアシストシステムに用いられる画像処理装置としては、複数のマイクロコンピュータ１０１，１０３（図９（ａ）参照）を備え、メインのマイクロコンピュータ（以下、「メインマイコン」と称する。）１０１で、カメラ１０５からの画像取込動作及びエッジ検出動作を行い、サブのマイクロコンピュータ（以下、「サブマイコン」と称する。）１０３で、エッジ検出結果からレーンマーク（白線等）を認識して、車両が走行中の道路パラメータ（道路形状等）を算出する画像処理装置１００が知られている。
【００１０】
この画像処理装置１００では、装置本来の機能（主機能）を実現するために、カメラ１０５に接続されたメインマイコン１０１からエッジ検出結果（検出したエッジの位置を表すエッジ情報）をサブマイコン１０３に送信し、サブマイコン１０３からメインマイコン１０１へは、道路パラメータを送信するといった形態のデータ交換を行う。そして、メインマイコン１０１からは、道路パラメータを、メインマイコン１０１に接続された外部のＥＣＵ（電子制御装置）１１０に入力して、このＥＣＵ１１０に、車両制御を実現させる。
【００１１】
ところで、画像処理装置１００において、上述した手法でサブマイコン１０３を監視する場合には、主機能の実現に係る処理と併せて、メインマイコン１０１から変数値Ｃをサブマイコン１０３に送信し、サブマイコン１０３に宿題演算を実行させ、その宿題演算結果Ｙをメインマイコン１０１にて受信する必要がある。
【００１２】
しかしながら、主機能に係るデータ通信と、サブマイコン１０３の異常監視のためのデータ通信を独立して実行すると、メインマイコン１０１及びサブマイコン１０３での通信に係る処理が煩雑になって、装置を安定的に動作させることが難しくなる。
【００１３】
そこで、本発明者は、メインマイコン１０１及びサブマイコン１０３間で、主機能に係るデータ通信を行う際、同時にサブマイコン１０３の異常監視に係るデータ通信を行うことを考えている。データ通信を同時に実行するように、画像処理装置を構成すれば、通信に係る処理を簡素化することができ、装置を安定的に動作させることができる。
【００１４】
例えば、上述の手法でサブマイコン１０３の異常監視を行う場合には、図１０に示すようにして、メインマイコン１０１及びサブマイコン１０３で処理を実行することが考えられる。
【００１５】
即ち、メインマイコン１０１は、カメラ１０５から入力される垂直同期信号に従って、フレーム周期毎に、１フレーム分の画像データの中から、白線認識に必要な所定ライン分の画像データを取り込み、この画像データについてのエッジ検出動作を実行する。そして、エッジ検出結果として、検出したエッジの位置を表すエッジ情報を、サブマイコン１０３に入力する。この際、同時に、宿題演算に必要な変数値Ｃとして、画像データの取込開始時にカウントアップしたカウンタ値Ｎを、サブマイコン１０３に入力する。
【００１６】
一方、サブマイコン１０３は、エッジ情報が入力されたことを契機として、エッジ情報に基づいた白線認識処理、即ち、道路パラメータの算出処理を実行する。また、その前後で、メインマイコン１０１から与えられた変数値Ｃを用いて、宿題演算を実行し、道路パラメータ及び加算値Ｙの算出が終了した時点で、道路パラメータ及び宿題演算結果（加算値）Ｙを、メインマイコン１０１に入力する。
【００１７】
そして、メインマイコン１０１は、画像取込動作やエッジ検出動作を実行する過程で、それまでに受信し取り込んだ受信データ（値Ｙ）に基づき、異常判定を行う。具体的には、受信した値Ｙから、現在のカウンタ値Ｎを減算し、その減算値Ｚが正常値であるか否かを判定する。
【００１８】
メインマイコン１０１にてエッジ検出動作を行い、サブマイコン１０３で、そのエッジ検出結果を用いて白線認識処理を行う場合、基本的には、サブマイコン１０３がメインマイコン１０１よりも１サイクル前のデータを用いて、処理を実行することになる。このため、異常判定では、２サイクル前に、メインマイコン１０１からサブマイコン１０３に送信した変数値Ｃに基づく宿題演算結果Ｙを用いて、処理を実行することになる。即ち、宿題演算結果Ｙから現在のカウンタ値Ｎを減算して得られる値Ｚは、サブマイコン１０３が正常である場合、Ｚ＝Ｘ０−２となる。
【００１９】
従って、異常判定では、減算値Ｚが、正常値Ｘ０−２であるか否かを判定する。そして、メインマイコン１０１は、減算値Ｚが複数回連続して、正常値ではない値を採る場合、サブマイコン１０３に異常がある旨のダイアグ情報を、外部のＥＣＵ１１０に送信し、それ以外の場合以外は、サブマイコン１０３が正常である旨のダイアグ情報を、ＥＣＵ１１０に送信する。
【００２０】
しかしながら、上記のようにして、マイクロコンピュータ１０１，１０３間で、主機能に係るデータと共に、サブマイコン１０３の異常監視に係るデータを送受する場合には、次のような問題がある。即ち、上記の手法では、宿題演算結果Ｙを、道路パラメータと共に、サブマイコン１０３からメインマイコン１０１に送信するため、サブマイコン１０３で白線認識処理に時間がかかると、その影響を受けて、宿題演算結果Ｙの送信も遅れ、異常判定を、正常に行うことができないといった問題がある。
【００２１】
図１１は、白線認識処理に時間がかかり、宿題演算結果Ｙの送信に遅延が発生している場合のメインマイコン１０１及びサブマイコン１０３の挙動を示した説明図である。以下では、図１１を用いて、上記問題を具体的に説明するが、それに先立ち、図１１及び図１０にタイムチャートを示す画像処理装置１００の詳細構成について、ここで触れておく。
【００２２】
画像処理装置１００では、メインマイコン１０１が、道路パラメータ及び宿題演算結果Ｙの受信処理を、他の主たる動作と並行して実行する。即ち、メインマイコン１０１は、他の主たる動作と並列して、サブマイコン１０３からのデータ送信があった時点で、内蔵するシリアルインタフェースで受信された道路パラメータ及び宿題演算結果Ｙのデータを、同じく内蔵するＲＡＭの受信バッファ領域に書き込む。そして、エッジ情報を送信する直前で、受信バッファ領域に書き込まれた受信データを、異常判定時（及び道路パラメータ送信時）に参照する別領域に取り込む。
【００２３】
このため、画像処理装置１００では、異常判定の前であっても、その前に実行する受信バッファ領域からのデータ取込時点までに、サブマイコン１０３から道路パラメータ及び宿題演算結果Ｙを受信することができないと、次の異常判定で、その宿題演算結果Ｙを用いた処理を実行することができなくなる。
【００２４】
従って、サブマイコン１０３で白線認識処理に時間がかかり、メインマイコン１０１での受信データの取込時点までに、道路パラメータ及び宿題演算結果Ｙのデータを、サブマイコン１０３からメインマイコン１０１に送信することができないと、メインマイコン１０１では、受信バッファ領域から前回値Ｙを取り込み、その前回値Ｙに基づき、減算値Ｚを求め、減算値Ｚが正常値であるか否かを判定することになる。この場合には、当然のことながら、宿題演算結果Ｙを、正しいカウンタ値よりも１カウントアップされた値で減算することになるため、サブマイコン１０３が正常な状態でも、減算値Ｚは、Ｚ＝Ｘ０−３となり、正常値Ｘ０−２と一致しなくなる。
【００２５】
また、データ取込時点までに送信が間に合わなかったサブマイコン１０３からの送信データ（道路パラメータ及び宿題演算結果Ｙ）は、メインマイコン１０１において、１周期遅れて次のデータ取込時点で、受信バッファ領域から取り込まれ、その後の異常判定に用いられることになる。従って、その後の異常判定の際にも、メインマイコン１０１では、送信遅れの影響を引きずることになり、サブマイコン１０３が正常であっても、減算値Ｚが、正常値Ｘ０−２と一致しなくなる。
【００２６】
例えば、変数値ＣがＣ＝１２である宿題演算結果Ｙについて、この宿題演算結果Ｙの送信遅延が発生すると、正規の周期（Ｎ＝１４）で、その宿題演算結果Ｙを用いた異常判定を行えずに、次の周期（Ｎ＝１５）で、異常判定を行うことになるので、サブマイコン１０３が正常でも、減算値Ｚが、Ｚ＝Ｘ０−３となって、正常値Ｘ０−２と一致しなくなり、２回連続して、減算値Ｚが正常値と一致しなくなるのである。
【００２７】
このように、メインマイコン１０１から変数値Ｃとしてカウンタ値Ｎを送信し、サブマイコン１０３では、このカウンタ値Ｎに基づいて宿題演算結果Ｙを算出する手法では、サブマイコン１０３側での処理が遅れて、サブマイコン１０３からメインマイコン１０１に、宿題演算結果Ｙを正規の期間内に送ることができないと、カウンタ値Ｎの更新時期と宿題演算結果Ｙを用いた異常判定時期が１周期分ずれ、複数回に渡って、減算値Ｚが正常値Ｘ０−２と一致しなくなり、サブマイコン１０３が正常であるにも拘わらず、メインマイコン１０１が、サブマイコン１０３を異常であると判定してしまうことになる。
【００２８】
例えば、白線認識処理の遅れにより、継続的に、宿題演算結果Ｙが遅れて送信される場合には、その期間、常に、減算値Ｚが正常値と一致しないため、何回か継続的に減算値Ｚが正常値と一致しない場合に限って、サブマイコン１０３に異常があると判定するように、メインマイコン１０１を構成しても、サブマイコン１０３の送信遅れにより、サブマイコン１０３に異常があると判定してしまうことになるのである。
【００２９】
尚、このような問題は、異常判定時に、宿題演算結果Ｙを、正しくない値で減算処理して、減算値Ｚを求めることに原因がある。従って、メインマイコン１０１側で、サブマイコン１０３に送信した変数値Ｃの情報を管理し、対応する宿題演算結果Ｙについての異常判定を行うときに、この変数値Ｃを用いれば、上記の問題は発生しないことになる。
【００３０】
しかしながら、変数値Ｃの情報を管理し、対応する宿題演算結果Ｙについての異常判定を行うときに、この変数値Ｃを用いるためには、サブマイコン１０３の送信遅れを検知して、送信遅れに合わせて異常判定時に対応する変数値Ｃを用いる必要があり、そのための複雑な手続きを行わなければならない。また、送信遅れと共に、送信遅れとは別の受信異常が発生している環境下では、送信遅れと受信異常をメインマイコン１０１で正確に把握することができないと、送信遅れに合わせて異常判定時に対応する変数値Ｃを用いることができないため、上記の手法では、正確に、サブマイコン１０３の異常を検知することができない。
【００３１】
本発明は、こうした問題に鑑みなされたものであり、マイクロコンピュータの異常を、周辺のマイクロコンピュータにて監視する電子機器において、監視先のマイクロコンピュータでの処理が遅れることで、監視元のマイクロコンピュータでの異常判定が正常に行えなくなるのを抑え、マイクロコンピュータの異常を正確に検知できるようにすることを目的とする。
【課題を解決するための手段】
【００３２】
かかる目的を達成するためになされた本発明（請求項１記載）の電子機器は、互いに通信可能に接続された第一及び第二のマイクロコンピュータを備え、各マイクロコンピュータが、電子機器として果たすべき主機能を、協働して実現する構成にされたものである。
【００３３】
この電子機器において、第一のマイクロコンピュータは、主機能の実現のために第二のマイクロコンピュータから受信したデータに対する所定の画像認識処理を実行する画像認識手順と、自マイクロコンピュータが備えるＣＰＵコアの各レジスタに所定のビットパターンをセットして、各レジスタが正常であるときには演算結果としての算出値が一定値となる所定の演算を行う第一宿題演算手順と、この演算で求められた算出値を、加算動作毎に値が更新される変数値と加算して、その加算値を求める第二宿題演算手順と、この加算値の情報及び加算値を求める際に用いた変数値の情報を、上記画像認識処理の実行結果を表すデータと共に、第二のマイクロコンピュータに送信する送信手順と、を上記第二のマイクロコンピュータから上記データを受信する度に実行する構成を有する。
【００３４】
一方、第二のマイクロコンピュータは、上記主機能の実現のために、画像認識処理が必要なデータを周期的に第一のマイクロコンピュータに送信して、第一のコンピュータから画像認識処理の実行結果を表すデータを受信する構成を有する。
更に、第二のマイクロコンピュータは、第一のマイクロコンピュータから受信した加算値及び変数値の情報に基づき、加算値から変数値を減算して、その減算値を求める減算手順と、この減算値が、予め定められた正常値であるか否かを判定する判定手順と、を上記画像認識処理が必要なデータの送信周期に合わせて周期的に実行する構成を有する。そして、第二のマイクロコンピュータは、上記判定結果に基づき、第一のマイクロコンピュータの異常を外部に報知する。
【００３５】
このように、本発明の電子機器では、監視先のマイクロコンピュータ（第一のマイクロコンピュータ）にて、宿題演算に用いる変数値Ｃを決めて、宿題演算結果Ｙとしての加算値Ｙを求め、この加算値Ｙの情報を、変数値Ｃの情報と共に、監視元のマイクロコンピュータ（第二のマイクロコンピュータ）に送信する。
【００３６】
従って、この電子機器によれば、監視元のマイクロコンピュータで、監視先のマイクロコンピュータの異常を検知するために、監視先のマイクロコンピュータへ変数値Ｃを送信しなくて済む。
【００３７】
また、この発明によれば、監視元のマイクロコンピュータにて変数値を管理しなくても、宿題演算結果Ｙを、正しい変数値Ｃで減算することができ、監視先のマイクロコンピュータでの処理の遅延に影響されず、マイクロコンピュータの異常を正確に検知することができる。従って、この発明によれば、監視先のマイクロコンピュータの異常を、異常がないのにも拘わらず、検知してしまうのを防ぐことができる。
【００４０】
また、この発明によれば、加算値及び変数値の情報を、上記主機能の実現のために第二のマイクロコンピュータに送信するデータと共に、第二のマイクロコンピュータに送信するので、マイクロコンピュータ間でのデータ通信の手順を簡素化することができる。従って、マイクロコンピュータ間で煩雑なデータ通信を行うことにより、電子機器が不安定になるのを防止することができる。
【発明を実施するための最良の形態】
【００４１】
以下に本発明の実施例について、図面と共に説明する。図１は、本発明が適用されたレーンキープアシスト（ＬＫＡ）システム１の構成を表すブロック図である。
本実施例のＬＫＡシステム１は、車両（自動車等）に搭載されて、車両が、道路の走行レーンに沿って走行するように、車両制御を行うものである。このＬＫＡシステム１は、カメラ１１を備える画像処理装置１０と、画像処理装置１０とシリアル通信可能に接続された車間ＥＣＵ５０と、車間ＥＣＵ５０と車内ＬＡＮ（ＣＡＮ）を介して通信可能なステアリングＥＣＵ６０と、同じく車内ＬＡＮを介して車間ＥＣＵ５０と通信可能なメータＥＣＵ７０と、を備える。
【００４２】
ＬＫＡシステム１が備える車間ＥＣＵ５０は、画像処理装置１０から入力される道路パラメータに基づき、自車両を走行レーンに沿って走行させるためのステアリング制御指令を、車内ＬＡＮを通じ、ステアリングＥＣＵ６０に送信する。また、車間ＥＣＵ５０は、画像処理装置１０から入力されるダイアグ情報に基づき、画像処理装置１０の正常／異常を表すステータス情報を、ステアリングＥＣＵ６０やメータＥＣＵ７０に、車内ＬＡＮを通じて送信する構成にされている。
【００４３】
一方、ステアリングＥＣＵ６０は、車間ＥＣＵ５０から送信されるステアリング制御指令に従って、ステアリング制御を行う。このステアリングＥＣＵ６０の動作により、車両は、走行レーンに沿って走行するように制御される。また、ステアリングＥＣＵ６０は、車間ＥＣＵ５０から送信されるステータス情報に基づき、画像処理装置１０が正常である場合に限って、上記ステアリング制御を行い、画像処理装置１０に異常がある場合には、上記ステアリング制御を行わずに、レーンキープアシスト機能を停止させる構成にされている。
【００４４】
また、メータＥＣＵ７０は、車間ＥＣＵ５０から送信されるステータス情報に基づき、画像処理装置１０に異常がある場合には、メータパネルに存在する警告ランプを点灯させて、異常が発生していることを、車両乗員に向けて報知する構成にされている。
【００４５】
また、画像処理装置１０は、車両前方の路面を撮影するカメラ１１と、一対のマイクロコンピュータ２０，３０とを備え、一対のマイクロコンピュータ２０，３０によりカメラ１１から入力される画像データを処理して、路面に描かれたレーンマークの形状や、レーンマークと自車両との位置関係を特定し、後述する道路パラメータを算出する。そして、この道路パラメータを、車間ＥＣＵ５０に入力する。ここでは、カメラ１１及び車間ＥＣＵ５０に接続されたマイクロコンピュータ２０を、メインマイコン２０と称し、メインマイコン２０に接続されたマイクロコンピュータ３０を、サブマイコン３０と称す。
【００４６】
メインマイコン２０は、演算回路や汎用レジスタ・アキュムレータ等のレジスタなどから構成されるＣＰＵコア２１と、ＣＰＵコア２１により実行されるプログラム等を記憶するＲＯＭ２２と、プログラム実行時に使用されるＲＡＭ２３と、車間ＥＣＵ５０とシリアル通信可能に接続されたシリアルインタフェース２５と、サブマイコン３０とシリアル通信可能に接続されたシリアルインタフェース２６と、カメラ１１に接続され、カメラ１１から入力される画像データを、マイコン内部に入力すると共に、ＣＰＵコア２１からの指令信号をカメラ１１に入力する入出力部２８と、を備える。
【００４７】
このメインマイコン２０において、ＲＡＭ２３には、画像メモリ領域と、送信バッファ領域と、受信バッファ領域と、その他の作業領域と、が予め用意されており、画像メモリ領域は、カメラ１１から得られる画像データを記憶するために用いられる。また、送信バッファ領域は、車間ＥＣＵ５０やサブマイコン３０にデータを送信する際に用いられ、受信バッファ領域は、車間ＥＣＵ５０やサブマイコン３０からのデータ受信時に一時格納領域として用いられる。
【００４８】
この他、サブマイコン３０は、メインマイコン２０と同様、演算回路や汎用レジスタ３１ａ・アキュムレータ３１ｂ等のレジスタなどから構成されるＣＰＵコア３１と、ＣＰＵコア３１により実行されるプログラム等を記憶するＲＯＭ３２と、プログラム実行時に使用されるＲＡＭ３３と、メインマイコン２０とシリアル通信可能に接続されたシリアルインタフェース３５と、を備え、ＲＯＭ３２に記録されたプログラムに従って、各種処理を実行する構成にされている。
【００４９】
図２は、メインマイコン２０とサブマイコン３０との間で送受信されるデータの種類を表す説明図である。本実施例の画像処理装置１０は、メインマイコン２０にて、カメラ１１から入力される画像データに基づき、レーンマーク（白線等）を検出するためのエッジ検出処理を実行し、エッジ検出結果として、検出されたエッジ（換言すればレーンマーク）の位置を表すエッジ情報を、サブマイコン３０に送信する構成にされている。
【００５０】
一方、サブマイコン３０は、メインマイコン２０から受信したエッジ情報に基づき、白線認識処理を実行して、カメラ１１により撮影された車両前方の路面に描かれたレーンマークの形状及びレーンマークと自車両との位置関係を特定し、道路の形状や位置関係を表す道路パラメータを、メインマイコン２０に送信する構成にされている。
【００５１】
具体的に、サブマイコン３０は、道路パラメータとして、二本のレーンマーク（白線等）に挟まれた領域を走行レーンと特定し、その道路幅Ｗを算出する。また、車両の進行方向に対する走行レーンの傾きをヨー角θとして算出すると共に、走行レーンの曲率半径Ｒを算出する。更に、車両中心と走行レーンの中心とのズレ量を、オフセットδとして算出する。そして、これらの道路パラメータＷ，θ，Ｒ，δを、メインマイコン２０に送信する。
【００５２】
また、サブマイコン３０は、道路パラメータの算出周期に合わせて、自己の異常をメインマイコン２０に診断してもらうための宿題演算処理を実行し、その宿題演算結果Ｙ及び宿題演算に用いた変数値Ｃを、上記道路パラメータと共に、メインマイコン２０に送信する構成にされている。
【００５３】
メインマイコン２０は、サブマイコン３０から上記道路パラメータを受信すると、この道路パラメータを車間ＥＣＵ５０に送信すると共に、サブマイコン３０から受信した宿題演算結果Ｙ及び変数値Ｃに基づいて、サブマイコン３０に異常があるか否かを判定し（後述する異常判定処理）、その判定結果を、ダイアグ情報として、車間ＥＣＵ５０に送信する。
【００５４】
また、画像処理装置１０は、車両が高速走行中であって、尚且つ、ユーザがレーンキープアシスト機能を有効に設定している場合に限って、道路パラメータを算出・出力する主機能を働かせる構成にされており、画像処理装置１０のメインマイコン２０には、車間ＥＣＵ５０を通じ、外部から、車速情報や、レーンキープアシスト機能をオン／オフ操作なユーザインタフェースからの操作情報が入力される。
【００５５】
尚、メインマイコン２０は、上記主機能を実現するタスク（以下、「主処理タスク」と称する。）とは並列に、車間ＥＣＵ５０との通信を司る通信処理タスク（以下、「対ＥＣＵ通信処理タスク」と称する。）及びサブマイコン３０と通信を司る通信処理タスク（以下、「対サブマイコン通信処理タスク」と称する。）を実行する構成にされており、この対ＥＣＵ通信処理タスクを通じて、車間ＥＣＵ５０に対し、道路パラメータやダイアグ情報を周期的に送信すると共に、車間ＥＣＵから車速情報及び操作情報を受信し、これらの情報に基づき、当該画像処理装置１０の機能をオン／オフする。
【００５６】
また、主処理タスクでは、図３に示すように、カメラ１１から入力される垂直同期信号に従って、周期的に、図４（ａ）に示す処理を実行する。図４（ａ）は、メインマイコン２０が、主処理タスクとして、垂直同期信号に合わせ（換言すればフレーム周期に合わせて）、周期的に実行する処理を表すフローチャートである。
【００５７】
この処理を開始すると、メインマイコン２０は、カメラ１１から入力される画像データの内、エッジ検出処理（更には白線認識処理）に必要な所定ライン分の画像データを、ＲＡＭ２３の画像メモリ領域に記録して、画像取込動作を実現する（Ｓ１１０）。また、この処理を終えると、サブマイコン３０の異常を検出するための異常判定処理を実行する（Ｓ１２０）。尚、異常判定処理の詳細は、後述する（図７参照）。
【００５８】
また、異常判定処理を終えると、メインマイコン２０は、エッジ検出処理を実行することにより、画像メモリ領域に記録した所定ライン分の画像データをフィルタ処理して画像データからエッジを抽出し、このエッジの位置情報を、エッジ情報として、ＲＡＭ２３の作業領域に記憶する（Ｓ１３０）。また、エッジ検出処理の実行前に、カメラ１１のゲインやシャッタースピード等を調整するための演算処理を実行する。
【００５９】
また、エッジ検出処理を終えると、メインマイコン２０は、その時点までに、受信バッファ領域に記録されたデータを、受信データとして確定し、この受信データを、ＲＡＭ２３に用意された受信バッファ領域とは、別の作業領域に書き込む（Ｓ１４０）。
【００６０】
ここでは、対サブマイコン通信処理タスクの動作によりサブマイコン３０から送信され受信バッファ領域に保存された道路パラメータ及び宿題演算結果Ｙ及び変数値Ｃの情報を、受信バッファ領域から取り込み、取り込んだ宿題演算結果Ｙ及び変数値Ｃのデータを、次サイクルでの異常判定処理で用いる判定対象データに設定する。また、これと同時に取り込んだ道路パラメータを、車間ＥＣＵ５０へ送信する送信対象データに設定する。
【００６１】
また、この後には、Ｓ１３０で得られたエッジ情報を、対サブマイコン通信処理タスクを通じ、サブマイコン３０に送信する（Ｓ１５０）。
図５は、メインマイコン２０及びサブマイコン３０の処理内容を、時系列で表した説明図である。図５に示すように、メインマイコン２０は、上述した図４（ａ）に示す内容の処理を実行すると共に、この処理と並列に、対ＥＣＵ通信処理タスクを実行することで、垂直同期信号に合わせて、周期的に車間ＥＣＵ５０と通信し、サブマイコン３０から得られた道路パラメータを、車間ＥＣＵ５０に送信すると共に、異常判定処理での判定結果（ダイアグ情報）を、車間ＥＣＵ５０に送信する。
【００６２】
また、サブマイコン３０も、メインマイコン２０と同様に、上記主機能を実現するためのタスク（主処理タスク）とは並列に、メインマイコン２０との通信を司る通信処理タスク（以下、「対メインマイコン通信処理タスク」と称する。）を実行する構成にされており、対メインマイコン通信処理タスクにより、メインマイコン２０から送信されるエッジ情報の受信を検知する。そして、当該受信を検知する度、図４（ｂ）に示す処理を、主処理タスクとして実行する。図４（ｂ）は、サブマイコン３０が、メインマイコン２０からのエッジ情報の送信に合わせて、周期的に実行する処理を表すフローチャートである。
【００６３】
この処理を開始すると、サブマイコン３０は、まず、サイクルカウンタを更新する（Ｓ２１０）。即ち、カウンタ値Ｎを、１加算した値に更新する（Ｎ←Ｎ＋１）。また、対メインマイコン通信処理タスクが受信し、ＲＡＭ３３の受信バッファ領域に格納したエッジ情報を、受信バッファ領域から読み出して、取り込む（Ｓ２２０）。
【００６４】
また、Ｓ２２０での処理を終えると、サブマイコン３０は、図６に示す宿題演算処理を実行する（Ｓ２３０）。図６は、サブマイコン３０が実行する宿題演算処理を表すフローチャートである。
【００６５】
宿題演算処理を開始すると、サブマイコン３０は、汎用レジスタ３１ａに、オール１のビットパターン（２進数）をセットし、汎用レジスタ３１ａの０固着診断用の演算処理を実行する（Ｓ２３１）。そして、演算結果Ｘを得る。具体的に、ここでは、パラメータＸの初期値をゼロとして、汎用レジスタ３１ａにセットした値を用い、いくつかの簡単な処理を実行し、処理毎に、処理結果が正常であれば、値Ｘを１カウントアップする動作を実行する。このようにして、汎用レジスタ３１ａの０固着診断用の演算処理を実行する。尚、汎用レジスタ３１ａの０固着を検出することができる演算処理を実行すれば、Ｓ２３１では、どのような処理を実行してもよく、その演算処理の具体的な内容は、設計的事項であるので、ここでは、その詳細な説明を省略する。
【００６６】
また、Ｓ２３１での処理を終えると、サブマイコン３０は、汎用レジスタ３１ａに、オール０のビットパターン（２進数）をセットして、汎用レジスタ３１ａの１固着診断用の演算処理を実行し（Ｓ２３２）、Ｓ２３１で得られた値Ｘに、この演算処理の結果を合算して、値Ｘを更新する。ここでは、Ｓ２３１と同様、汎用レジスタ３１ａにセットした値を用い、いくつかの簡単な処理を行い、処理毎に、処理結果が正常であれば、値Ｘを１カウントアップする動作を実行する。
【００６７】
また、この処理を終えると、サブマイコン３０は、アキュムレータ３１ｂに、オール１のビットパターン（２進数）をセットして、アキュムレータ３１ｂの０固着診断用の演算処理を実行し（Ｓ２３４）、Ｓ２３２で得られた値Ｘに、この演算処理の結果を合算することで、値Ｘを更新する。
【００６８】
この他、アキュムレータ３１ｂに、オール０のビットパターン（２進数表示）をセットして、アキュムレータ３１ｂの１固着診断用の演算処理を実行し（Ｓ２３５）、Ｓ２３４で得られた値Ｘに、この演算処理の結果を合算して、値Ｘを更新する。尚、値Ｘの更新方法は、Ｓ２３１，２３２，Ｓ２３４の処理と同様である。
【００６９】
また、Ｓ２３５での処理を終えると、サブマイコン３０は、変数値Ｃを、現在のカウンタ値Ｎに更新し（Ｓ２３７）、Ｓ２３５の処理で得られた値Ｘ（最終演算結果）に、変数値Ｃを加算する。即ち、加算値Ｙ＝Ｘ＋Ｃを算出する（Ｓ２３９）。その後、当該宿題演算処理を終了する。
【００７０】
このようにして、Ｓ２３０での宿題演算処理を終了すると、サブマイコン３０は、メインマイコン２０から受信し取り込んだエッジ情報に基づき、白線認識処理を実行して、上述の道路パラメータを算出する（Ｓ２４０）。
【００７１】
また、道路パラメータを算出し終えると、サブマイコン３０は、Ｓ２４０で算出した道路パラメータ、Ｓ２３０で求めた加算値Ｙ、及び、加算値Ｙの算出の際に用いた変数値Ｃ（Ｓ２３７で設定した変数値Ｃ）の情報をまとめて、対メインマイコン通信処理タスクを通じ、メインマイコン２０に送信する（Ｓ２５０）。その後、図４（ｂ）に示す処理を一旦終了し、新たにメインマイコン２０からエッジ情報が入力された時点で、図４（ｂ）に示す処理を実行する。
【００７２】
このようにして、サブマイコン３０は、エッジ情報を受信する度、図４（ｂ）及び図５に示すように、宿題演算処理及び白線認識処理を実行し、白線認識処理が終わるタイミングで、道路パラメータ及び宿題演算結果Ｙ及び変数値Ｃを、メインマイコン２０に送信する。
【００７３】
続いて、メインマイコン２０がＳ１２０で実行する異常判定処理について、以下に説明する。図７は、メインマイコン２０が、サブマイコン３０から受信した宿題演算結果Ｙ及び変数値Ｃに基づき、実行する異常判定処理を表すフローチャートである。
【００７４】
図７に示す異常判定処理を開始すると、メインマイコン２０は、まず、サブマイコン３０から新しい宿題演算結果Ｙ及び変数値Ｃを受信できたか否かを判断する。例えば、前回の異常判定処理で用いた宿題演算結果Ｙ及び変数値Ｃと、今回、判定対象データとして設定されている宿題演算結果Ｙ及び変数値Ｃと、が同一であるか否かを判断することにより、サブマイコン３０から、新しい宿題演算結果Ｙ及び変数値Ｃを受信できたか否かを判断する。
【００７５】
そして、サブマイコン３０から新しい宿題演算結果Ｙ及び変数値Ｃを受信できたと判断すると（Ｓ３１０でＹｅｓ）、Ｓ３４０に移行し、サブマイコン３０から新しい宿題演算結果Ｙ及び変数値Ｃを受信できていないと判断すると（Ｓ３１０でＮｏ）、Ｓ３２０に移行する。
【００７６】
また、Ｓ３２０に移行すると、メインマイコン２０は、受信エラーカウンタＥｒを１加算した値に更新し（Ｅｒ←Ｅｒ＋１）、更新後の値Ｅｒが、予め設定された閾値Ｅｒ０を超えているか否かを判断する（Ｓ３２５）。そして、更新後の値Ｅｒが閾値Ｅｒ０を超えていると判断すると（Ｓ３２５でＹｅｓ）、サブマイコン３０に異常有りと判定する（Ｓ３３０）。また、Ｓ３３０での処理を終えると、当該異常判定処理を終了する。
【００７７】
一方、更新値の値Ｅｒが、閾値Ｅｒ０以下であると判断すると（Ｓ３２５でＮｏ）、メインマイコン２０は、Ｓ３６０に移行する。
これに対し、Ｓ３４０に移行すると、メインマイコン２０は、受信エラーカウンタＥｒを値０にリセットし、その後、前サイクルで受信バッファ領域から取り込んだ最新の宿題演算結果Ｙ及び変数値Ｃに基づき、減算値Ｚを算出する。即ち、宿題演算結果（加算値）Ｙを、同時に送信されてきた変数値Ｃで減算して、減算値Ｚ＝Ｙ−Ｃを算出する（Ｓ３４５）。
【００７８】
また、減算値Ｚを算出し終えると、メインマイコン２０は、減算値Ｚが正常値Ｚ０（＝Ｘ０）であるか否かを判断する（Ｓ３５０）。尚、正常値Ｚ０は、Ｓ２３１〜Ｓ２３５の設計内容によって一意に定まる固定値であり、汎用レジスタ３１ａ及びアキュムレータ３１ｂのいずれもが０又は１に固着していない場合に得られる値である。
【００７９】
Ｓ３５０で、減算値Ｚが正常値Ｚ０ではないと判断すると（Ｓ３５０でＮｏ）、メインマイコン２０は、Ｓ３６０に移行して、宿題演算エラーカウンタＥｈを１加算する（Ｅｈ←Ｅｈ＋１）。その後、更新後の値Ｅｈが、予め設定された閾値Ｅｈ０を越えているか否かを判断する（Ｓ３７０）。そして、更新後の値Ｅｈが閾値Ｅｈ０を越えていると判断すると（Ｓ３７０でＹｅｓ）、Ｓ３８０に移行し、Ｓ３３０での処理と同様に、サブマイコン３０に異常有りと判定する。その後、当該異常判定処理を終了する。
【００８０】
一方、更新後の値Ｅｈが閾値Ｅｈ０未満である場合（Ｓ３７０でＮｏ）、メインマイコン２０は、サブマイコン３０に異常無しと判定し（Ｓ３９５）、当該異常判定処理を終了する。
【００８１】
この他、減算値Ｚが正常値Ｚ０であると判断すると（Ｓ３５０でＹｅｓ）、メインマイコン２０は、Ｓ３９０にて、宿題演算エラーカウンタＥｈを値０にリセットした後、サブマイコン３０に異常無しと判定し（Ｓ３９５）、その後、当該異常判定処理を終了する。尚、異常判定処理における判定結果（サブマイコン３０の異常有り／無しの情報）は、上述したように、対ＥＣＵ通信処理タスクにより、ダイアグ情報として、道路パラメータと共に、車間ＥＣＵ５０に送信される。
【００８２】
以上、ＬＫＡシステム１の構成について説明したが、本実施例では、画像処理装置１０にて、サブマイコン３０が、遅延なく図４（ｂ）に示す処理を実行している場合、毎サイクル、道路パラメータ及び宿題演算結果Ｙ及び変数値Ｃの情報が、メインマイコン２０の受信データ取込タイミングより前に、サブマイコン３０から、メインマイコン２０に送信される。従って、メインマイコン２０では、異常判定処理の実行の度、新しい宿題演算結果Ｙ及び変数値Ｃの情報を用いて、サブマイコン３０についての異常有無を判定することができる（図３参照）。
【００８３】
一方、白線認識処理に時間を要し、サブマイコン３０が、道路パラメータ及び宿題演算結果Ｙ及び変数値Ｃの情報を、メインマイコン２０の受信データ取込タイミングより前に送信することができなかった場合、メインマイコン２０では、異常判定処理の前に新しい宿題演算結果Ｙ及び変数値Ｃを取り込むことができないないため、受信データ取込タイミングの直後に実行する異常判定処理では、受信エラー及び宿題演算エラーが検出され、受信エラーカウンタＥｒ及び宿題演算エラーカウンタＥｈが、１加算された値に更新されることになる（図７，図８参照）。
【００８４】
尚、図８は、サブマイコン３０に送信遅延が生じている場合のマイコン間通信及び異常判定の態様を表すタイムチャートである。図８において、「受信ＯＫ」と示された異常判定処理では、その時点で、受信エラーカウンタＥｒが値０にリセットされる。また、「受信ＮＧ」と示された異常判定処理では、その時点で、受信エラーカウンタＥｒが１加算される。同様に、「宿題ＯＫ」と示された異常判定処理では、その時点で、宿題演算エラーカウンタＥｈが値０にリセットされ、「宿題ＮＧ」と示された異常判定処理では、その時点で、宿題演算エラーカウンタＥｈが１加算される。
【００８５】
従来技術では、サブマイコン３０に送信遅延が生じると、送信遅延が生じている期間、継続して、「宿題ＮＧ」の状態が続くため、サブマイコン３０に送信遅延以外のハードウェア的な異常（レジスタの異常）がないのにも関わらず、宿題演算エラーカウンタＥｈが閾値Ｅｈ０を超えてしまい、サブマイコン３０に異常があると誤判定する結果となっていた。
【００８６】
一方、本実施例では、サブマイコン３０で変数値Ｃを設定して、加算値Ｙを求め、メインマイコン２０においては、宿題演算結果Ｙを、同時に受信した変数値Ｃで減算して減算値Ｚを求め、この減算値Ｚに基づいて、サブマイコン３０の異常有無を判定するので、送信遅延が生じても、宿題演算結果Ｙを、従来技術のように、誤った変数値Ｃで減算しなくて済む。
【００８７】
即ち、サブマイコン３０の送信遅延が続いても、メインマイコン２０では、サブマイコン３０から遅れて受信し、取り込んだ最新の宿題演算結果Ｙ及び変数値Ｃの情報に基づき、正しい変数値Ｃを用いて、正しい減算値Ｚを求めることができる。
【００８８】
従って、本実施例によれば、サブマイコン３０の送信遅延が続いても、最新の宿題演算結果Ｙ及び変数値Ｃを受信した後の異常判定処理にて、受信エラーカウンタＥｒ及び宿題演算エラーカウンタＥｈを値０にリセットすることができ、サブマイコン３０に送信遅延以外のハードウェア的な異常がない場合には、基本的に、受信エラーカウンタＥｒ及び宿題演算エラーカウンタＥｈを、値１を超えないようにすることができる。
【００８９】
従って、閾値Ｅｒ０，Ｅｈ０を、サブマイコン３０の送信遅延を見込んで、ある程度の大きな値（例えば、値５〜１０など）に設定しておけば、サブマイコン３０の送信遅延程度では、サブマイコン３０に異常が有ると誤判定しなくて済む。よって、本実施例によれば、サブマイコン３０での処理が遅れることで、メインマイコン２０での異常判定が正常に行えなくなるのを抑えて、サブマイコン３０の異常を、メインマイコン２０にて正確に検知することができる。
【００９０】
以上、本発明の実施例について説明したが、本発明の電子機器は、本実施例の画像処理装置１０に相当し、第一のマイクロコンピュータは、サブマイコン３０に相当し、第二のマイクロコンピュータは、メインマイコン２０に相当する。また、第一宿題演算手順は、宿題演算処理におけるＳ２３１〜Ｓ２３５の処理により実現され、第二宿題演算手順は、宿題演算処理におけるＳ２３７〜Ｓ２３９の処理により実現されている。
【００９１】
この他、送信手順は、Ｓ２５０の処理により実現されている。また、減算手順は、異常判定処理におけるＳ３４５の処理により実現され、判定手順は、Ｓ３５０の処理により実現されている。また、第二のマイクロコンピュータが、第一のマイクロコンピュータの異常を報知する動作は、メインマイコン２０が、ダイアグ情報を送信する動作にて実現されている。
【００９２】
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、画像処理装置１０に本発明を適用した例を示したが、本発明は、その他の種々の電子機器に適用することが可能である。
【図面の簡単な説明】
【００９３】
【図１】レーンキープアシストシステム１の構成を表すブロック図である。
【図２】マイコン間で送受信されるデータの種類を表す説明図である。
【図３】マイコン間通信及び宿題演算の態様を表すタイムチャートである。
【図４】メインマイコン２０が実行する処理（ａ）及びサブマイコン３０が実行する処理（ｂ）を表すフローチャートである。
【図５】メインマイコン２０及びサブマイコン３０の処理内容を表す説明図である。
【図６】サブマイコン３０が実行する宿題演算処理を表すフローチャートである。
【図７】メインマイコン２０が実行する異常判定処理を表すフローチャートである。
【図８】送信遅延が生じている場合のマイコン間通信及び異常判定の態様を表すタイムチャートである。
【図９】従来の画像処理装置１００の構成及び異常監視の態様を表す説明図である。
【図１０】従来の画像処理装置１００におけるマイコン間通信及び異常判定の態様を表すタイムチャートである。
【図１１】従来の画像処理装置１００において送信遅延が発生している場合のマイコン間通信及び異常判定の態様を表すタイムチャートである。
【符号の説明】
【００９４】
１…レーンキープアシストシステム、１０，１００…画像処理装置、１１，１０５…カメラ、２０，３０，１０１，１０３…マイクロコンピュータ、２１，３１…ＣＰＵコア、２２，３２…ＲＯＭ、２３，３３…ＲＡＭ、２５，２６，３５…シリアルインタフェース、２８…入出力部、３１ａ…汎用レジスタ、３１ｂ…アキュムレータ、５０…車間ＥＣＵ、６０…ステアリングＥＣＵ、７０…メータＥＣＵ
【図１】
0004408921.tif 000002
【図２】
0004408921.tif 000003
【図４】
0004408921.tif 000004
【図５】
0004408921.tif 000005
【図６】
0004408921.tif 000006
【図７】
0004408921.tif 000007
【図９】
0004408921.tif 000008
【図３】
0004408921.tif 000009
【図８】
0004408921.tif 000010
【図１０】
0004408921.tif 000011
【図１１】
0004408921.tif 000012