(57)【特許請求の範囲】
【請求項１】
車両の動作を制御する車両制御装置であって、
前記車両の運転者の要求により前記車両制御装置が起動したときに前記車両制御装置が実行すべき動作を記述した第１制御プログラムと、
前記車両の運転者の要求によらず前記車両制御装置が起動したときに前記車両制御装置が実行すべき動作を記述した第２制御プログラムと、
前記第１制御プログラムおよび前記第２制御プログラムを実行するプロセッサと、
前記第１制御プログラムおよび前記第２制御プログラムを格納する記憶装置と、
を備え、
前記第１制御プログラムと前記第２制御プログラムは、互いに別個のプログラムとして構成されており、
前記プロセッサは、
並列動作することができるプロセッサコアを３つ以上備え、
前記第１制御プログラムを実行する前記プロセッサコアと、前記第２制御プログラムを実行する前記プロセッサコアとが互いに異なるように動作し、
前記プロセッサコアのうちいずれか１以上は、
前記車両の運転者の要求により前記車両制御装置が起動したか、それとも前記車両の運転者の要求によらず前記車両制御装置が起動したかを判断し、
その判断結果に応じて、前記第１制御プログラムを実行する前記プロセッサコアまたは前記第２制御プログラムを実行する前記プロセッサコアのいずれかを起動する
ことを特徴とする車両制御装置。
【請求項２】
前記第１制御プログラムおよび前記第２制御プログラムは、前記記憶装置上のそれぞれ異なる記憶領域に格納されている
ことを特徴とする請求項１記載の車両制御装置。
【請求項３】
前記第１制御プログラムは、前記複数のプロセッサコアのうち前記第１制御プログラムを実行する前記プロセッサコアからのみアクセスすることができる前記記憶装置上の記憶領域に格納されており、
前記第２制御プログラムは、前記複数のプロセッサコアのうち前記第２制御プログラムを実行する前記プロセッサコアからのみアクセスすることができる前記記憶装置上の記憶領域に格納されている
ことを特徴とする請求項１記載の車両制御装置。
【請求項４】
前記プロセッサは、前記第２制御プログラムを実行する前記プロセッサコアを、前記複数のプロセッサコアのなかから固定的に割り当てる
ことを特徴とする請求項１から３のいずれか１項記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御装置に関するものである。
【背景技術】
【０００２】
自動車などの車両を電子的に制御する車両制御装置は、例えば運転者が自動車のイグニッションスイッチをＯＮするなどの操作要求にしたがって起動し、所定の制御動作を実行する。また、このような操作要求によって起動するほかに、例えばイグニッションスイッチがＯＦＦされてから所定時間経過後に、自己診断などの自動処理を実施するため、運転者の操作要求によらず車両制御装置が起動する場合もある。例えばタイマなどのイベント割込によって車両制御装置を起動する場合がこれに相当する。
【０００３】
車両制御装置が実行する走行制御プログラムは、上記のような起動条件に応じて、実行すべき処理を内部的に分岐させるように記述されている。
【０００４】
運転者の操作要求にしたがって車両制御装置が起動した場合は、一般に車両が何らかの動作開始することが多いと思われる。この場合、車両制御装置は、例えばエンジンやモータの駆動制御処理など、車両を走行させるために必要となる制御処理を実行するように、処理を分岐させる。
【０００５】
一方、運転者の操作要求によらず車両制御装置が起動した場合は、一般に車両は走行しておらず、車両制御装置は上述の自己診断などの処理を実行する。このとき車両走行のための処理が誤って実行されないようにする必要がある。そこで、運転者の操作要求によらず車両制御装置が起動した場合には、車両制御装置の制御プログラムのうち、走行制御処理を記述している部分、その処理結果を出力する部分などにプログラム上のマスクなどが施され、当該部分に処理が進まないように構成されている。同様に、誤診断を行わないようにするため、実施すべき診断対象に条件マスクを付与することもある。
【０００６】
下記特許文献１には、起床タイマ３３によってホストマイコン３１が起動されたときに異常診断を実施する車両制御装置の例が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−９８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の車両制御装置では、運転者の操作要求によらず車両制御装置が起動したときに走行制御プログラムを実行しないようにするため、上述のような条件マスクを制御プログラムの複数個所に漏れなく記述する必要がある。
【０００９】
例えば、走行制御処理が３段階のステップで実行されると仮定する。各ステップでは、運転者の操作要求にしたがって車両制御装置が起動した場合に実行すべき処理と、運転者の操作要求によらず車両制御装置が起動した場合に実行すべき処理が、条件分岐によって切り分けられている。この場合、上述のような条件マスクを３つの分岐判断部分全てに漏れなく記載する必要がある。
【００１０】
実際の走行制御プログラムは多数のステップを有するため、条件マスクを記述すべき箇所は膨大な数となる。そのため記載漏れが生じ易く、車両動作の安全の観点からは必ずしも望ましくない。
【００１１】
本発明は、上記のような課題を解決するためになされたものであり、運転者の操作要求によらず起動する場合がある車両制御装置の安全性・信頼性を向上させることを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る車両制御装置は、運転者の要求により起動したときに実行すべき動作を記述した第１制御プログラムと、運転者の要求によらず起動したときに実行すべき動作を記述した第２制御プログラムとを備え、第１制御プログラムと第２制御プログラムは、互いに別個のプログラムとして構成されている。
【発明の効果】
【００１３】
本発明に係る車両制御装置は、第１制御プログラムと第２制御プログラムを別個のプログラムとして構成しているので、ステップ毎に分岐判断を記述する必要がなくなり、条件マスクの記述漏れが生じる可能性を抑えることができる。これにより、車両制御装置の安全性・信頼性を向上させる効果が期待できる。
【図面の簡単な説明】
【００１４】
【図１】実施形態１に係る車両制御装置１００の機能ブロック図である。
【図２】ＲＯＭ１５０が格納するデータ等の配置を示す図である。
【図３】車両制御装置１００が起動したときの動作フローを示す図である。
【図４】実施形態２に係る車両制御装置１００の機能ブロック図である。
【図５】ＲＯＭ１５１およびＲＯＭ１５２が格納するデータ等の配置を示す図である。
【図６】実施形態２に係る車両制御装置１００が起動したときの動作フローを示す図である。
【発明を実施するための形態】
【００１５】
＜実施の形態１＞
図１は、本発明の実施形態１に係る車両制御装置１００の機能ブロック図である。車両制御装置１００は、車両の動作を電子的に制御する装置であり、タイマＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１１０、入力回路１２０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５０、出力回路１６０を備える。
【００１６】
タイマＩＣ１１０は、車両制御装置１００に電源が投入されているか否かによらず動作し、入力回路１２０を介してＣＰＵ１３０にクロック信号を供給する。入力回路１２０は、タイマＩＣ１１０および外部信号（例えば車両のイグニッションスイッチ２００からの操作信号）を受け取り、ＣＰＵ１３０に出力する。
【００１７】
ＣＰＵ１３０は、ＲＯＭ１５０が格納している制御プログラムをＲＡＭ１４０上に読み出して実行する。また、制御プログラムを実行する際に必要となるデータなどをＲＡＭ１４０上に展開する。
【００１８】
ＲＡＭ１４０は、ＣＰＵ１３０が制御プログラムを実行する際に必要となるデータなどを一時的に格納するメモリ装置である。ＲＯＭ１５０は、後述の図２で説明するような制御プログラムを格納する不揮発性の記憶装置である。ＲＯＭ１５０に代えてハードディスク装置やフラッシュＲＯＭなどの記憶装置を用いることもできる。
【００１９】
出力回路１６０は、ＣＰＵ１３０が制御プログラムを実行した結果に基づき、制御対象に制御信号を出力する。ここではアクチュエータ３００を例示したが、これに限られるものではない。
【００２０】
図２は、ＲＯＭ１５０が格納するデータ等の配置を示す図である。ＲＯＭ１５０は、第１制御プログラム２０１、第２制御プログラム２０２、制御データ２０３を格納する。これらプログラムおよびデータは、ＲＯＭ１５０上の異なる記憶領域上に格納されている。
【００２１】
第１制御プログラム２０１は、車両の運転者からの操作要求にしたがって車両制御装置１００が起動したときにＣＰＵ１３０が実行すべき制御動作を記述したプログラムである。車両の走行制御を実施するためのエンジン制御処理、モータ制御処理、これらの駆動力を演算する処理、などの処理が第１制御プログラム２０１に記述されている。
【００２２】
運転者からの操作要求の例として、イグニッションスイッチ２００のＯＮ／ＯＦＦの他に、例えばドア開け、パワーウインドウ操作、ハンドル操作、シフトレバー操作、アクセル／ブレーキ操作、などが考えられる。
【００２３】
第２制御プログラム２０２は、車両の運転者からの操作要求によらず車両制御装置１００が起動したときにＣＰＵ１３０が実行すべき制御動作を記述したプログラムである。例えば、上述の自己診断処理、所定時刻に実施する充電制御処理、などの処理が第２制御プログラム２０２に記述されている。
【００２４】
車両の運転者からの操作要求によらず車両制御装置１００が起動する例として、運転者がイグニッションスイッチ２００をＯＦＦした後、所定時間が経過したときに、タイマＩＣ１１０からのクロック信号にしたがって自己診断を実施する場合が挙げられる。また、第２制御プログラム２０２を所定の時刻に実行するようにあらかじめ設定しておき、内部クロックがその時刻になった時点で第２制御プログラム２０２を実行する、という場合も考えられる。その他、通信ネットワーク経由で起動指示信号を受信したときのような割込起動も考えられる。
【００２５】
制御データ２０３は、ＣＰＵ１３０が第１制御プログラム２０１と第２制御プログラム２０２を実行する上で用いるデータである。例えば、制御動作に必要な各種パラメータなどのデータを記述している。
【００２６】
図３は、車両制御装置１００が起動したときの動作フローを示す図である。以下、図３の各ステップについて説明する。
【００２７】
（図３：ステップＳ３００）
車両制御装置１００が起動すると、本動作フローが開始される。車両制御装置１００はＣＰＵ１３０を起動する。
【００２８】
（図３：ステップＳ３０１）
ＣＰＵ１３０は、車両制御装置１００が車両運転者の操作要求にしたがって起動されたのか、それ以外の要因（例えばタイマＩＣ１１０によるタイマイベント起動）によって起動されたのかを判断する。運転者の操作要求にしたがって起動された場合はステップＳ３０２へ進み、それ以外の要因で起動した場合はステップＳ３０３へ進む。
【００２９】
（図３：ステップＳ３０１：補足その１）
車両制御装置１００がいずれの要因で起動されたかは、入力回路１２０のいずれの端子に起動指示信号が入力されたかなどに基づき判断すればよい。例えば、イグニッションスイッチ２００に接続している端子から起動指示信号が入力された場合は運転者の操作要求にしたがって起動されたと判断し、タイマＩＣ１１０に接続している端子から起動指示信号が入力された場合はタイマイベント割込によって起動されたと判断することができる。
【００３０】
（図３：ステップＳ３０１：補足その２）
本ステップ自体の処理内容は、第１制御プログラム２０１に記述しておいてもよいし、第２制御プログラム２０２に記述しておいてもよい。図示しないその他のプログラムに記述することもできる。ＣＰＵ１３０は、本ステップの処理を記述したプログラムを初めに実行する。
【００３１】
（図３：ステップＳ３０２）
ＣＰＵ１３０は、第１制御プログラム２０１をＲＯＭ１５０から読み出して実行する。
【００３２】
（図３：ステップＳ３０３）
ＣＰＵ１３０は、第２制御プログラム２０２をＲＯＭ１５０から読み出して実行する。
【００３３】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る車両制御装置１００は、運転者の要求により起動したときに実行すべき動作を記述した第１制御プログラム２０１と、運転者の要求によらず起動したときに実行すべき動作を記述した第２制御プログラム２０２とを備える。第１制御プログラム２０１と第２制御プログラム２０２は、互いに別個のプログラムとして構成されており、ＣＰＵ１３０は、車両制御装置１００が起動するときにいずれのプログラムを実行すべきかを判断する。これにより、運転者の要求により起動したときに実行すべき動作とそれ以外の動作を切り分ける分岐判断を記述する部分が１箇所のみで済むので、記述漏れなどにより不意の動作を実施する可能性を低減し、車両制御装置１００の安全性・信頼性を向上させることができる。
【００３４】
＜実施の形態２＞
本発明の実施形態２では、プロセッサ１３０が２つのプロセッサコアを備えるデュアルコアプロセッサとして構成されている例を説明する。デュアルコアに係る構成および動作以外については実施形態１と概ね同様であるため、以下では差異点を中心に説明する。
【００３５】
図４は、本実施形態２に係る車両制御装置１００の機能ブロック図である。本実施形態２において、ＣＰＵ１３０は、並列動作することができる２つのプロセッサコアとして、第１ＣＰＵコア１３１と第２ＣＰＵコア１３２を備える。ここでは説明の簡易のため２つのプロセッサコアを搭載する例を示したが、３つ以上のプロセッサコアを備えるＣＰＵを用いることもできる。
【００３６】
第１ＣＰＵコア１３１は、ＲＡＭ１４１とＲＯＭ１５１に接続されている。第２ＣＰＵコア１３２は、ＲＡＭ１４２とＲＯＭ１５２に接続されている。第１ＣＰＵコア１３１はＲＡＭ１４２およびＲＯＭ１５２にアクセスすることができないようになっている。また第２ＣＰＵコア１３２はＲＡＭ１４１およびＲＯＭ１５１にアクセスすることができないようになっている。
【００３７】
なお、ここでは２つのＲＯＭ１５１および１５２を設けてそれぞれいずれかのプロセッサコアのみからアクセスできることとしたが、単一のＲＯＭの記憶領域を複数に分割し、それぞれいずれかのプロセッサコアのみからアクセスできるように構成してもよい。いずれの場合でも、ＲＯＭが提供する記憶領域は、それぞれいずれかのプロセッサコアのみからアクセスできるように分割されている。
【００３８】
共通ＲＡＭ１４３および共通ＲＯＭ１５３は、第１ＣＰＵコア１３１と第２ＣＰＵコア１３２いずれからもアクセスすることができる。共通ＲＡＭ１４３および共通ＲＯＭ１５３は、各ＣＰＵコアから共通して用いられるデータ、プログラムなどを格納する。
【００３９】
図５は、ＲＯＭ１５１およびＲＯＭ１５２が格納するデータ等の配置を示す図である。ＲＯＭ１５１は、第１制御プログラム２０１、制御データ２０３を格納する。ＲＯＭ１５２は、第２制御プログラム２０２、制御データ２０３を格納する。
【００４０】
第１ＣＰＵコア１３１はＲＯＭ１５２にアクセスすることができないため、第１ＣＰＵコア１３１が実行できる制御プログラムは第１制御プログラム２０１のみである。また第２ＣＰＵコア１３２はＲＯＭ１５１にアクセスすることができないため、第２ＣＰＵコア１３２が実行できる制御プログラムは第２制御プログラム２０２のみである。
【００４１】
図６は、本実施形態２に係る車両制御装置１００が起動したときの動作フローを示す図である。以下、図６の各ステップについて説明する。
【００４２】
（図６：ステップＳ６００）
車両制御装置１００が起動すると、本動作フローが開始される。車両制御装置１００はステップＳ６０１を実行するため第１ＣＰＵコア１３１を起動する。
【００４３】
（図６：ステップＳ６００：補足）
ここでは説明の簡易のため、ステップＳ６０１を実行するＣＰＵコアとして第１ＣＰＵコア１３１を固定的に割り当てているが、本ステップにおいて第２ＣＰＵコア１３２を起動してステップＳ６０１を実行させてもよい。
【００４４】
（図６：ステップＳ６０１）
第１ＣＰＵコア１３１は、図３のステップＳ３０１と同様の判定を実行する。車両制御装置１００が運転者の操作要求にしたがって起動された場合はステップＳ６０２へ進み、それ以外の要因で起動した場合はステップＳ６０３へ進む。
【００４５】
（図６：ステップＳ６０１：補足）
本ステップの処理内容は、第１制御プログラム２０１に記述しておいてもよいし、図示しないその他のプログラムに記述することもできる。ただし、ステップＳ６００で第２ＣＰＵコア１３２を起動する場合は、第２ＣＰＵコア１３２がアクセスすることができるＲＯＭ１５２上のプログラムに、本ステップの処理内容を記述しておく必要がある。
【００４６】
（図６：ステップＳ６０２）
車両制御装置１００は、第２制御プログラム２０２を実行するため、第２ＣＰＵコア１３２を起動する。
【００４７】
（図６：ステップＳ６０２：補足）
ステップＳ６０１を実行するため第２ＣＰＵコア１３２を起動した場合は、本ステップをステップＳ６０４の前に代えてステップＳ６０３の前に実行する。また、その場合は第１ＣＰＵコア１３１を起動することになる。
【００４８】
（図６：ステップＳ６０３）
第１ＣＰＵコア１３１は、第１制御プログラム２０１をＲＯＭ１５１から読み出して実行する。
【００４９】
（図６：ステップＳ６０４）
第２ＣＰＵコア１３２は、第２制御プログラム２０２をＲＯＭ１５２から読み出して実行する。
【００５０】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る車両制御装置１００は、複数のプロセッサコアを備え、第１制御プログラム２０１を実行するプロセッサコアと第２制御プログラム２０２を実行するプロセッサコアがそれぞれ異なるように構成されている。これにより、各制御プログラムの処理内容をプロセッサコアレベルで切り分けることができるので、走行制御処理とその他の処理を確実に分離することができる。
【００５１】
また、本実施形態２に係る車両制御装置１００において、第１制御プログラム２０１と第２制御プログラム２０２は、それぞれを実行するプロセッサコアからしかアクセスすることのできないＲＯＭ上に格納されている。これにより、ステップＳ６０１で起動するプロセッサコアを分岐させるのみで、各制御プログラムの処理内容を確実に分離することができる。
【００５２】
＜実施の形態３＞
実施形態２において、ステップＳ６００で第１ＣＰＵコア１３１を起動し、ステップＳ６０１〜Ｓ６０２で第２ＣＰＵコア１３２を起動する場合、図６の動作フローが、第１制御プログラム２０１を実行するプロセッサコアと第２制御プログラム２０２を実行するプロセッサコアにまたがることになる。すなわち、その限りにおいて、走行制御処理とその他の処理が完全には分離できていないといえる。
【００５３】
そこで実施形態２において、３つ以上のプロセッサコアを設け、ステップＳ６００でいずれか１以上のプロセッサコアを起動してステップＳ６０１を実行させ、その他のプロセッサに各制御プログラムを実行させるようにしてもよい。これにより、各プロセッサコアは自己が担当する制御処理に専念することができるので、より確実に走行制御処理とその他の処理を分離することができる。
【００５４】
＜実施の形態４＞
車両制御装置１００が多数のプロセッサコアを搭載する場合には、処理負荷を分散して処理性能を向上させることができる。ただし、運転者の要求によらず車両制御装置１００が起動した場合に実行するプログラムは、一般に処理負荷の高くないもの、または高い処理性能や応答性能を要求しないものが多い。
【００５５】
そこで、運転者の要求によらず車両制御装置１００を起動した場合のプログラムを実行するプロセッサコアを固定的に割り当て、その他のプロセッサコアは運転者の要求により車両制御装置１００を起動した場合の処理に割り当てるようにしてもよい。これにより、運転者の要求によらず車両制御装置１００を起動した場合にはプロセッサコア間で処理を分散させずにリソース消費を抑え、運転者の要求により車両制御装置１００を起動した場合にはプロセッサコア間で処理を分散させて高い処理性能や応答性能を実現することができる。
【００５６】
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【００５７】
１００：車両制御装置、１１０：タイマＩＣ、１２０：入力回路、１３０：ＣＰＵ、１３１：第１ＣＰＵコア、１３２：第２ＣＰＵコア、１４０〜１４２：ＲＡＭ、１４３：共通ＲＡＭ、１５０〜１５２：ＲＯＭ、１５３：共通ＲＯＭ、１６０：出力回路、２００：イグニッションスイッチ、３００：アクチュエータ。
【図１】
0005548601.tif 000002
【図２】
0005548601.tif 000003
【図３】
0005548601.tif 000004
【図４】
0005548601.tif 000005
【図５】
0005548601.tif 000006
【図６】
0005548601.tif 000007