制御装置、制御方法及びコンピュータプログラム
【課題】組み込み系のコンピュータプログラムにオブジェクト指向型の概念を適用し、メモリを節約して装置の簡素化を実現させ、開発効率を向上させることができる制御装置、制御方法及びコンピュータプログラムを提供する。
【解決手段】マイコンはアプリケーション層101における1つの入力信号判定モジュール107の機能により、複数のアプリ(103,104)夫々にて制御対象に対し動作を要求する状況にあるか否か、制御対象の状態情報、又はセンサからの情報などを示す入力信号に対する判定処理が共通化される。
【解決手段】マイコンはアプリケーション層101における1つの入力信号判定モジュール107の機能により、複数のアプリ(103,104)夫々にて制御対象に対し動作を要求する状況にあるか否か、制御対象の状態情報、又はセンサからの情報などを示す入力信号に対する判定処理が共通化される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムに基づき各種負荷の動作制御を行なう制御装置に関する。特に、コンピュータプログラムの構成を、メモリを節約させることを可能とする構成として装置の簡素化を実現させ、且つ各負荷用の多様な機能の増減に柔軟に対応させることができ、開発効率を向上させることができる制御装置、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
マイクロコンピュータ(以下、マイコンという)を利用し、マイコン内蔵ROMに書き込まれたコンピュータプログラムに基づいて制御を行なう制御装置の場合、コンピュータプログラムは所謂組み込み系の言語で記述される。組み込み系の言語で記述するコンピュータプログラムは、装置の簡素化のためにメモリなどリソースを節約し、必要最低限の処理を制御対象毎に、且つ機能毎に実装する構成が基本的である。
【0003】
図12は、従来のマイコンにおけるコンピュータプログラムの構成の概略を示す概略図である。図12に示すコンピュータプログラムの構成は特に、制御対象(負荷X)の動作を制御する制御装置にてマイコンにより実行されるコンピュータプログラムの例を示している。図12は、コンピュータプログラムにより実現される機能をブロックにて示している。図12の例のコンピュータプログラムによって負荷Xを制御対象とする機能が実現される場合、図12に示すように、当該コンピュータプログラムは例えば、機能毎に、センサ又は負荷から入力される信号A,B,C夫々に対する判定処理、入力信号の判定結果に基づき機能を実現するため負荷Xに要求する動作を判定する判定処理、負荷への動作要求の信号出力の調停、動作毎の負荷への信号出力などの機能が、アプリケーションプログラムにより実現したい機能(ア)及び機能(イ)夫々に対応して実現される。
【0004】
コンピュータプログラムの実装上も、夫々の機能に応じたプログラムコード(実行ファイル)が作成され、いずれのプログラムコードもメモリ上に予め記憶されており、CPUにより読み出される。したがって、図12に示したブロック夫々に応じてメモリが占有される。したがって、例えば入力信号に対する判定処理は、機能(ア)及び(イ)毎に、更に信号A,B,C毎にプログラムコードが夫々存在する。
【0005】
図12に示した例では、機能が(ア)と(イ)とで異なるのみで同一の入力信号Aに対しても夫々、入力信号判定部に対応するプログラムコードが存在する構成である。機能(ア)と(イ)とが同時並行的に実行される可能性がない場合、夫々存在する構成ではメモリの使用が非効率的である。
【0006】
また、入力信号に対する判定処理は、概ね信号レベルがHiかLowかに基づき、スイッチがONかOFFか、ロックかアンロックかなどを判定するものである。即ち、入力信号の内容が異なるのみで、判定処理の具体的な処理内容はいずれも信号レベルがHiかLowかであって共通している。この判定処理のためのプログラムコードが種々の入力信号夫々に存在する構成では、メモリの使用が非効率的である。
【0007】
しかもこの場合、各入力信号A,B,Cに対する判定は同時的に行なわれるのではなしに、シーケンシャルに各入力信号A,B,Cに対する判定がされ、判定結果に応じた動作もシーケンシャルに行なわれて、入力信号の判定処理のためのプログラムコードに占有されるメモリが同時的にアクセスされることもないにも拘わらず、マイコンに実行させるための各動作に対応するプログラムコードがいずれも、メモリを予め占有するので、メモリ
の使用効率が非効率的である。
【0008】
これに対し、制御装置に求められる機能の多様化、複雑化が進むにつれ、オブジェクト指向型の言語によって記述されるプログラムをマイコンが読み出して実行する制御装置も提案されている(特許文献1など参照)。このように、処理が実行される都度にメモリが確保され、処理が終了した場合にはメモリが開放されて他に使用できるなど、メモリを効率的に利用することができる。しかしながらこの場合、プログラム実行中にメモリを動的に確保するなどの処理をマイコンに実現させる基本機能(ライブラリ)などが必要である。このようにオブジェクト指向に基づく設計では、基本機能を実現するためのライブラリプログラムコードがメモリを使用する上、動的なメモリ確保、動的なライブラリのリンクなどの処理が想定され、オブジェクト指向型のコンピュータプログラムの構成により各種機能が実現できるのはメモリの記憶容量に余裕があるからである。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−77220号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、負荷制御を行なうマイコンを用いた制御装置では、メモリの容量に制限があるからこそ組み込み系の言語で記述されるコンピュータプログラムを利用するのであって、メモリの記憶容量に余裕を持たせてもよい特定の制御装置以外では、オブジェクト指向型のソフトウェア構成は適していない。一方で、従来のコンピュータプログラムの構成のように、共有できる処理であっても種々の入力信号毎、制御対象である負荷毎、及び機能毎にプログラムコードがメモリを占有する構成では上述のようにメモリの使用が非効率的である。共通する同様な処理は共有化して再利用が可能な構成とし、共有化された処理はそれに対応するプログラムコードのみでメモリを占有することが望ましい。
【0011】
本発明は斯かる事情に鑑みてなされたものであり、組み込み系のコンピュータプログラムにオブジェクト指向型の概念を適用し、メモリを節約して装置の簡素化を実現させ、開発効率を向上させることができる制御装置、制御方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
第1発明に係る制御装置は、複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを備え、該マイクロコンピュータが複数のアプリケーションプログラムに基づく処理を行ない、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力して前記制御対象の動作を制御するようにしてある制御装置において、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段と、複数の入力信号から、アプリケーションプログラムの機能毎に1又は複数の入力信号を抽出する抽出手段と、機能毎に抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を、前記判定手段に与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断する判断手段とを備えることを特徴とする。
【0013】
第2発明に係る制御装置は、機能毎に、前記判定手段へ与える入力信号及び判定条件、並びに、前記判定手段へ入力信号及び判定条件を与えた場合の判定結果に応じて次に与えるべき入力信号及び判定条件を示す分岐条件情報を記憶する手段を備え、前記判断手段は、前記分岐条件情報に基づき、各判定結果に応じて次の入力信号及び判定条件を選択して与えるようにしてあることを特徴とする。
【0014】
第3発明に係る制御装置は、入力信号毎に判定条件を示すテーブルを備え、前記分岐条件情報は、次に与えるべき入力信号の判定条件の参照箇所を示すアドレスを含むことを特徴とする。
【0015】
第4発明に係る制御装置は、前記判断手段は、前記分岐条件情報に基づいて入力信号及び判定条件を前記判定手段へ順次与えた場合の最後の判定結果が成立である場合、動作要求を出力する状況であると判断するようにしてあることを特徴とする。
【0016】
第5発明に係る制御装置は、各機能に対応する入力信号、及び該入力信号への判定条件を示すテーブルを機能毎に備え、前記抽出手段は、前記テーブルに基づいて入力信号を抽出するようにしてあることを特徴とする。
【0017】
第6発明に係る制御方法は、複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを用い、該マイクロコンピュータに複数のアプリケーションプログラムに基づく処理を行なわせると共に、前記マイクロコンピュータは、前記複数のアプリケーションプログラムと異なるコンピュータプログラムに基づき、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段として機能し、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象の動作を制御する方法であって、前記マイクロコンピュータは、前記アプリケーションプログラムに基づく処理により、機能毎に、該機能に関する入力信号を1又は複数抽出し、抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を前記判定手段へ順次与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断し、出力する状況であると判断した場合に動作要求を出力させることを特徴とする。
【0018】
第7発明に係るコンピュータプログラムは、複数の制御対象又は複数のセンサが接続され、前記制御対象の状態情報又は前記センサからの検知情報を示す信号の入力を受け付けるコンピュータに、複数のアプリケーションプログラムに基づき、入力信号から判断される状況に応じて複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象を動作させる処理を実行させる際に、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定させる判定手段として機能させるコンピュータプログラムであって、コンピュータを、アプリケーションプログラムの機能毎に抽出された1又は複数の入力情報、及び該入力情報に対応する判定条件、前記判定手段へ与える手段、及び、1又は複数の入力情報を与えて前記判定手段により得られた各判定結果により、動作要求を出力する状況であるか否かを判断する手段として機能させることを特徴とする。
【0019】
第1発明、第6発明及び第7発明では、マイクロコンピュータが、制御対象の制御状態の情報又は各センサが検知した情報を示す入力信号から、複数の機能を夫々実現するアプリケーションプログラムの処理において当該機能に対応する動作要求を出力する状況にあるか否かを判断するに際し、入力信号に対する判定処理が判定手段によって実行される。複数の機能夫々に応じて制御対象を動作させるか否かを判断させるための信号が夫々が抽出され、判定手段で抽出された各入力信号に対して判定条件が成立するか否かが判定される。判定手段による各判定結果に基づいて、動作要求を出力する状況にあるか否かが判断される。
【0020】
このとき、複数のアプリケーションプログラムに基づく処理が実行されるのに対し、入力信号に対する判定条件の成否を判定する判定手段は、複数のアプリケーションプログラムに共有される構成である。これにより、従来では処理の内容が重複するにも拘わらず、各アプリケーションプログラムに対応する入力信号に対して別個に実行されていた判定処
理が共有化される。
【0021】
第2発明では、機能毎に、該機能に対応する制御を実行する状況にあるかを判断するための判定対象の入力信号及び各入力信号に対する判定条件と、判定条件の判定結果に応じて次に与えるべき入力信号を示す情報とからなる分岐条件情報が記憶され、当該分岐条件情報に基づき判定がなされる。判定対象が分岐条件に基づいて切り替わることで1つの判定手段が同一の判定処理を実行する構成でも、各々固有の信号に対する判定処理を実行する構成と同じ結果が得られる。
【0022】
第3発明では、入力信号毎の判定条件はテーブル化されており、分岐条件情報は、各判定条件の結果に応じた次の入力信号に対する判定条件の参照箇所を示している。判定手段は、示される参照箇所の判定条件を参照して入力信号が一致するか否かの判定処理を、判定対象の信号が変わったとしても変わらずに行なう構成で、異なる入力信号に対する判定が、判定結果に応じた分岐に従って行なわれる。これにより、共通の1つの判定手段により、種々の入力信号に対する判定を実行できる。
【0023】
第4発明では、分岐条件情報に基づく判定手段の処理により最終的に得られた判定結果が示す成否が、動作要求を出力する状況か否かである。判定手段が、複数の入力信号に対して判定結果を返す処理を変わらず実行することにより、最終的な判断結果が得られる。
【0024】
第5発明では、判定対象となるべき入力信号と、各入力信号に対する判定条件とが機能毎にテーブルにて記憶されてもよい。機能が指定された場合に判定すべき入力信号を抽出され、判定対象の入力信号の判定の順序に関わらず、抽出された入力信号の内のいずれかについて判定条件が不成立の場合に判定結果は不成立となる。
【発明の効果】
【0025】
本発明による場合、組み込み系のコンピュータプログラムに基づき制御を行なう制御装置でも、各機能を実現させる動作について、動作を行なう状況であるか否かを判断するための入力信号に対する判定処理を各機能に共有化し、1つの判定手段の機能を種々の入力信号に対する判定処理に利用する。
【0026】
これにより、種々の入力信号夫々に対して入力信号の判定処理を行なわせるプログラムコードが種々の入力信号毎に、且つ機能毎に記憶されて実行される構成よりも、共通して利用できるプログラムコードを1つメモリに記憶して実行可能に構成しておくことにより各機能を実現可能であるからメモリの占有量は少なくて済む。メモリを節約できるので装置を簡素化させることができる。更に、入力信号自体と、判定結果の関係を変えて共有化された判定手段の機能を再利用すればよいので、新たな入力信号に対する判定処理が加わったとしても、これに対するプログラムは実装せずとも、入力信号と該入力信号に対応する判定条件とを与える構成を守ればアプリケーションプログラムの開発のみで済み、開発効率を向上させることができる点、優れた効果を奏する。
【図面の簡単な説明】
【0027】
【図1】実施の形態1における車載制御システムの構成を示す構成図である。
【図2】実施の形態1における車載制御システムに含まれるボディECUの内部構成を示すブロック図である。
【図3】実施の形態1におけるボディECUのマイコンのCPUにて実現される機能を概念的に示す機能ブロック図である。
【図4】実施の形態1におけるボディECUのROMに記憶されている判定テーブルの内容例を示す説明図である。
【図5】実施の形態1におけるリンク情報の内容例を模式的に示す説明図である。
【図6】実施の形態1における入力信号判定モジュールにより実行される処理手順の一例を示すフローチャートである。
【図7】実施の形態1における入力信号判定モジュールによる判定処理の過程を概念的に示す説明図である。
【図8】CPUが入力信号判定モジュールとして機能する際の処理の具体例を概念的に示す説明図である。
【図9】実施の形態2におけるROMに記憶されている判定テーブルの基本構成を示す説明図である。
【図10】実施の形態2における判定テーブルの内容例を示す説明図である。
【図11】実施の形態2における入力信号判定モジュールにより実行される処理手順の一例を示すフローチャートである。
【図12】従来のマイコンにおけるコンピュータプログラムの構成の概略を示す概略図である。
【発明を実施するための形態】
【0028】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。なお、以下に示す実施の形態では、車両の室内に搭載されているランプ、ライト、ドア、ワイパーなどのボディ系の各種制御対象を制御する車載ボディECUに本発明の制御装置を適用した車載制御システムを例に挙げて説明する。
【0029】
(実施の形態1)
図1は、実施の形態1における車載制御システムの構成を示す構成図である。車載制御システムは、車室内の前部天井に取り付けられるルームランプ1と、車両のドア部に設置され、ドアの開閉を検知するカーテシセンサ2,2及びドアロックを検知するドアロックセンサ3,3と、イグニッション(Ignition)キー(以下、IGキーという)の挿抜を検知するIGキーセンサ4と、夫々を制御するボディECU5とを含む。
【0030】
ルームランプ1はボディECU5に接続されており、ボディECU5により点灯、消灯が制御される。なお、点灯、消灯のいずれにおいてもPWM制御により減光、増光が可能である。
【0031】
カーテシセンサ2,2及びドアロックセンサ3,3はボディECU5に接続されており、夫々ドア開閉状態を知らしめる信号又はドアロックの開閉状態を知らしめる信号をボディECU5へ出力する。
【0032】
IGキーセンサ4はボディECU5に接続されており、IGキーセンサ4にて検知したIGキーの挿抜、及びキー位置を示す信号をボディECU5へ出力する。
【0033】
ボディECU5は、カーテシセンサ2,2、ドアロックセンサ3,3又はIGキーセンサ4から出力される各信号を入力して、それらの信号レベルに基づき、例えば、ドアが閉状態で、IGキーは挿入されていない状態で、ドアロックがロックからアンロックへ変化した場合には、乗車しようとするユーザによりドアが開錠された状況にあるから、ルームランプ1を点灯させるべく制御信号を出力するエントリー制御を実現する。また、同様にドアが閉状態で、IGキーは挿入されていない状態で、ドアロックがアンロックからロックへ変化した場合には、降車したユーザがドアが施錠された状況にあるから、点灯していたルームランプ1を少しずつ減光させて消灯させるべく制御信号を出力するドアロック減光制御を実現する。
【0034】
なお、実施の形態1では、ボディECU5について、ルームランプ1の点灯に関する機能各構成部の処理のみ記載するが、ボディECU5が他の機能を実現するために他の制御
対象となる負荷(アクチュエータ)、例えばヘッドライト、スモールランプ、フロントワイパー、リアワイパーなどを制御することが可能な構成でもよいことは勿論である。
【0035】
このような各種機能をボディECU5にて実現するためのボディECU5内部の構成及び処理について説明する。ボディECU5は後述するように、マイコン50を備えて、マイコン50内臓のROM(Read Only Memory)52に記憶されているコンピュータプログラムに基づく処理を実行することにより各種機能を実現する。
【0036】
図2は、実施の形態1における車載制御システムに含まれるボディECU5の内部構成を示すブロック図である。ボディECU5は、CPU51、ROM52、RAM(Random
Access Memory)53及びI/O54を含むマイコン50を備えて構成される。他に、カーテシセンサ2,2、ドアロックセンサ3,3、キーセンサ4などのセンサと車載ネットワークを介して接続される場合は通信手段としてネットワークコントローラ、トランシーバをマイコン50内又は外に備える構成としてもよい。
【0037】
CPU51は、ROM52に記憶されているコンピュータプログラムをRAM53に読み出して実行することにより、上述のようなルームランプ1の点灯、消灯、減光機能を実現する。
【0038】
ROM52には、フラッシュメモリを利用する。ROM52には、CPU51が読み出して実行するコンピュータプログラムとして、ボディ系に関する各機能を実現するためのアプリケーションプログラム55,55,…、アプリケーションドライバプログラム56、入力信号判定モジュールプログラム57が記憶されている。他に接続されるルームランプ1などの各種負荷との信号の物理層における入出力を実現するためのドライバプログラム(図示せず)が記憶されている。またROM52には、CPU51が各センサからの入力信号が示す状態を判定するために参照する判定テーブル58,58,…が負荷毎に記憶されている。そして、機能毎に、判定テーブル58,58,…間のリンク関係を示すリンク情報59が記憶されている。
【0039】
なお、ROM52は基本的に、ボディECU5の稼働中は読み出し専用(ROM)ではあるが、CPU51に実行させたいコンピュータプログラムの更新、又は判定テーブル58,58,…の更新が必要な場合に書換が可能である。
【0040】
RAM53には、DRAM(Dynamic RAM)、SRAM(Static RAM)等を利用する。RAM53にはCPU51が読み出すコンピュータプログラムがロードされる他、処理によって発生する各種情報が一時的に記憶される。
【0041】
I/O54は、マイコン50と外部とのインタフェースである。マイコン51はI/O54により、ルームランプ1へ制御信号を出力する。
【0042】
次に、マイコン50のCPU51がROM52に記憶されているコンピュータプログラムを読み出して実現するマイコン50内の詳細な機能について説明する。図3は、実施の形態1におけるボディECU5のマイコン50のCPU51にて実現される機能を概念的に示す機能ブロック図である。
【0043】
CPU51は、ROM52に記憶されているアプリケーションプログラム55,55,…、アプリケーションドライバプログラム56、入力信号判定モジュールプログラム57、及びその他ドライバプログラムなどを読み出して実行することにより、アプリケーション層101、プラットフォーム層102の階層に分けられたソフトウェア構造にて動作する。
【0044】
CPU51がアプリケーションプログラム55,55,…の内、エントリー制御用のアプリケーションプログラム55に基づき、エントリー制御アプリ103として機能する。同様にCPU51は、ドアロック減光制御用のアプリケーションプログラム55に基づき、ドアロック減光制御アプリ104として機能する。エントリー制御アプリ103及びドアロック減光制御アプリ104としての機能は構造的に、アプリケーション層101に位置する。
【0045】
CPU51はアプリケーションドライバプログラム56に基づき、選択部105及び出力ドライバ部106としての機能を実現する。選択部105及び出力ドライバ部106としての機能は、ハードウェア群(制御対象群、即ちルームランプ1、ヘッドライト、スモールランプ等)を直接的に制御すべく物理層の信号を扱う所謂ドライバの機能ではなく、エントリー制御アプリ103又はドアロック減光制御アプリ104などの各種アプリケーションの処理の内の信号生成処理などの共通部分を1つにしたモジュールであり、アプリケーション層101に位置する。
【0046】
CPU51は、入力信号判定モジュールプログラム57に基づき、入力信号判定モジュール107としての機能を実現する。入力信号判定モジュール107としての機能は、アプリからの入力信号判定の指示があった場合に、機能に関係する入力信号の信号レベルを判定する処理を共通化した1つのモジュールである。各アプリは、入力信号判定モジュール107の機能を再利用して、動作を行なう状況にあるか否かを判定する。即ち、エントリー制御アプリ103及びドアロック減光制御アプリ104はいずれも、ルームランプ1を点灯する状況にあるか、減光消灯させる状況にあるか否かを入力信号判定モジュール107を利用して判定する。入力信号判定モジュール107は、アプリケーション層101に位置する。
【0047】
そしてCPU51はドライバプログラムに基づき、入出力ドライバ108として機能する。入出力ドライバ108としての機能は所謂ドライバの機能を実現し、ハードウェア群を直接的に制御すべくI/O54へ実際に物理層の制御信号の入出力を行なう。入出力ドライバ108としての機能は構造的に、プラットフォーム層102に位置する。
【0048】
CPU51の選択部105としての機能は以下である。選択部105は、CPU51がエントリー制御アプリ103又はドアロック減光制御アプリ104としての機能により制御対象となるハードウェア、例えばルームランプ1へ点灯要求などの動作要求を発した場合に、動作要求を受け付け、制御対象と、制御対象に行なわせる具体的な動作とを特定し、特定した制御対象及び動作の内容を示す情報を出力ドライバ部108へ与える。
【0049】
CPU51の出力ドライバ部106としての機能は以下である。出力ドライバ部106は、選択部105から与えられる制御対象、及び制御対象に行なわせる具体的な動作の情報に基づき、動作を実現させるための制御信号を生成して、制御対象のハードウェアへ制御信号を出力させるべくプラットフォーム層102の入出力ドライバ108へ指示する。
【0050】
CPU51の入力信号判定モジュール107としての機能は以下である。入力信号判定モジュール107は、各アプリから夫々の機能に応じて抽出された入力信号について夫々、前記機能を発揮させる状況にあるか否かを判定するための判定条件の成立/不成立を判定し、判定結果を各アプリに戻すことである。実施の形態1における入力信号判定モジュール107は、入力信号毎に利用されるリエントランス構造となっている。
【0051】
このようにまず、本実施の形態1のボディECU5では、各アプリケーションからの動作要求を選択部105にて一括して受け付け、制御信号の生成を行なう出力ドライバ部1
06の機能を共有化する構成とする。エントリー制御アプリ103及びドアロック減光制御アプリ104など各アプリケーション毎、制御対象の負荷毎に、制御信号を生成して入出力ドライバ108へ夫々出力する構成(図12参照)ではない。エントリー制御アプリ103及びドアロック減光制御アプリ104などのいずれのアプリケーションでも、制御がオン、オフのスイッチングにて実現する場合、動作要求に応じて制御信号を生成する処理は、動作の具体的内容が異なるのみで共通した処理であるから共有化が可能である。また、ボディECU5では、各制御対象のハードウェアの制御を同時に行なうことはなく、各アプリケーションの機能も順に実現されるから制御信号の生成処理が同時に行なえる構成とする必要はないので共有化が可能である。当該処理を1つにして各機能から再利用可能に共有化した構成とすることにより、ROM52及びRAM53におけるメモリ占有量を削減できる。
【0052】
また、本実施の形態1のボディECU5では、入力信号に対する判定も入力信号判定モジュール107に共有化される構成とする。エントリー制御アプリ103及びドアロック減光制御アプリ104など各アプリケーションに夫々、入力信号毎に入力信号判定処理を行なうモジュールが含まれる構成ではない。エントリー制御アプリ103及びドアロック減光制御アプリ104などのいずれのアプリケーションでも、更に、いずれの入力信号についても、信号レベルがHiであるかLowであるかの判定が行なわれる。判定の対象である入力信号がいずれであるかが異なるのみで、判定処理自体は共通するから共有化が可能である。また、ボディECU5では、各制御対象のハードウェアの制御を同時に行なうことはなく、各アプリケーションの機能も順に実現されるから各アプリケーションの機能で入力信号に対する判定処理が同時に行なえる必要もない。入力信号判定処理を1つにして各機能から再利用可能に共有化した構成とすることにより、ROM52及びRAM53におけるメモリ占有量を更に削減できる。
【0053】
具体的には、CPU51にて各機能が実現される場合、図3の各ブロックにて示す各機能に対応する実行プログラムファイル(プログラムコード)が必要となる。まず、制御対象の決定及び制御信号の生成処理の機能を1つの選択部105及び出力ドライバ部106に共有化して、各種機能から利用される構成とすることにより、複数のアプリケーションプログラム55,55,…夫々に対応させたアプリケーションドライバプログラムを複数実行する構成よりもROM52及びRAM53における記憶容量が少なくて済む。各アプリケーションプログラム55,55,…で、出力ドライバ部106に対応するプログラムコードを用意する必要がないからである。同様に、入力信号判定処理を入力信号判定モジュール107に共有化して各アプリケーションの機能から利用される構成とすることにより、各アプリケーションにおける入力信号判定処理のプログラムコードを省略することができるから、更にROM52及びRAM53における記憶容量が少なくて済む。また、実現したい各機能について実際に、入力信号を判定する処理、及び制御信号を生成する処理を実装せずとも、入力信号判定モジュール107、選択部105及び出力ドライバ部106の機能を再利用すればよいので、機能の開発は動作要求を発するアプリケーションプログラム55,55,…の開発のみで済み、開発効率を向上させることができる。
【0054】
次に、エントリー制御アプリ103及びドアロック減光制御アプリ104が入力信号判定モジュール107を利用して判定結果を得る処理について詳細を説明する。
【0055】
ROM52には、負荷毎に信号レベルに応じた判定テーブル58,58,…が記憶されている。判定テーブル58,58,…は、センサなどの信号の出力元毎の判定条件及び判定方法を含む。図4は、実施の形態1におけるボディECU5のROM52に記憶されている判定テーブル58,58,…の内容例を示す説明図である。判定テーブル58,58,…では、入力信号の種類毎に、判定の方法及び判定条件が記憶されている。
【0056】
図4には、IGキーセンサ4、カーテシセンサ2,2、及びドアロックセンサ3,3からの入力信号の判定テーブル58,58,58の例が示されている。IGキーセンサ4からの入力信号はIGキーの挿抜、及びキー位置を検知したセンサ情報を示す。入力信号判定モジュール107では、与えられた入力信号のレベル判定か又はエッジ判定かを行なうようにしてある。入力信号に対し、エッジ判定によりOFFからONとなったか、レベル判定によりONであるか、エッジ判定によりONからOFFとなったか、又はレベル判定によりOFFであるかのいずれであるかが判定される。このとき、ONはキー位置がIG1の位置にあることに対応する。
【0057】
カーテシセンサ2,2からの入力信号はドアの開閉を検知したセンサ情報を示す。カーテシセンサ2,2からの入力信号についても、与えられた入力信号のレベル判定か又はエッジ判定かのいずれかの方法でONであるかOFFであるかが判定される。ONは開に対応し、OFFは閉に対応する。
【0058】
ドアロックセンサ3,3からの入力信号は、ドアロックのロック/アンロックを検知したセンサ情報を示す。ドアロックセンサ3,3からの入力信号についても、与えられた入力信号のレベル判定か又はエッジ判定かのいずれかの方法でLOCK(ON)であるかUNLOCK(OFF)であるかが判定される。
【0059】
入力信号判定モジュール107は、図4に示したような判定テーブル58,58,…を参照して、各アプリから入力信号が与えられた場合にその信号レベルから、判定条件のうちのいずれが成立するか否かを判定する。例えば入力判定モジュール107は、ドアロックセンサ3,3からの入力信号に対し、エッジ判定を行なった結果UNLOCKからLOCKとなったという判定条件、レベル判定を行なった結果LOCKであるという判定条件、エッジ判定を行なった結果LOCKからUNLOCKとなったという判定条件、又はレベル判定を行なった結果UNLOCKであるという判定条件のいずれが成立するかを判定する。
【0060】
入力信号判定モジュール107は更に、判定結果に応じて、次の入力信号に対する判定を行なう。このとき入力信号判定モジュール107は、判定結果に応じた次の入力信号がいずれなのかを各アプリから与えられるリンク情報59を参照して判断する。リンク情報59は、機能毎及び負荷毎に、各判定テーブル58,58,…に基づく判定結果の分岐に応じて、次にいずれの入力信号、及び入力信号の判定テーブル58,58,…にて判定がされるべきかを示す情報である。
【0061】
図5は、実施の形態1におけるリンク情報59の内容例を模式的に示す説明図である。図5に示すリンク情報59は、ユーザが乗車しようとして車外からドアロックを開錠した場合にルームランプ1を点灯させるエントリー制御アプリ103に対応している。
【0062】
リンク情報59は、アプリケーションプログラム55、又はその機能毎に抽出されるべき入力信号を含む。図5の例に示すリンク情報59は、エントリー制御アプリ103に対応する入力信号がIGキーセンサ4からの入力信号、カーテシセンサ2,2からの入力信号、及びドアロックセンサ3,3からの入力信号であることを示している。
【0063】
そしてリンク情報59は、判定結果に応じた次の判定対象の入力信号の情報を含む。図5の例では、各入力信号に対する判定テーブル58と、判定結果に応じた次の判定テーブル58のROM52内におけるアドレスとのリンク関係が示されている。つまり、入力信号についての判定テーブル58に基づく判定結果に応じて、次に判定対象とすべき入力信号の判定テーブル58のアドレスが記述されている。図5の「NULL」は、次に判定対象とすべき入力信号の判定テーブル58が「無い」ことを示している。次の判定テーブル
58が「無い」場合は、入力信号判定モジュール107は入力信号の判定処理を終了する。
【0064】
図5の例では、具体的には、エントリー制御アプリ103に関し、入力信号判定モジュール107で最初に判定されるべき入力信号はIGキーセンサ4からの入力信号であることが示されている。そして、IGキーセンサ4からの入力信号に対する判定テーブル58に基づき、入力信号がONであると判定された場合には、OFFからONに変化した場合もONのままである場合も、判定結果は「不成立」であることが示されている。この場合、これ以上判定する必要はないので、次に判定対象とすべき入力信号の判定テーブル58のアドレスは「NULL」を示している。
【0065】
このように、機能毎に判定対象の入力信号と、判定結果に応じて次に判定対象とすべき入力信号の順序とを示すリンク情報59をROM52に記憶しておく構成により、1つの入力信号判定モジュール107が処理を行なうとしてもリンク情報59の内容に応じて、種々の入力信号に対する判定処理を行なうことができる。
【0066】
図5に示したように、実施の形態1におけるリンク情報59は、各入力信号に対する判定テーブル58,58,…のアドレス同士のリンク関係にて示した。しかしながら、リンク情報59の内容はこれに限らず、判定結果に応じて、次にいずれの入力信号についての判定をするべきかを示す情報であればよい。
【0067】
なお、リンク情報59には、上述のようなエントリー制御アプリ103のルームランプ1についての情報のみならず、他のアプリケーションプログラム55,55,…、負荷に対応する情報が含まれることは勿論である。
【0068】
このような判定テーブル58,58,…及びリンク情報59を参照して、入力信号判定モジュール107が各入力信号に対する判定結果に基づいて、機能を実現すべき状況に有るか、即ち動作すべき条件が成立するか否かを判断する処理についてフローチャートを参照して説明する。
【0069】
図6は、実施の形態1における入力信号判定モジュール107により実行される処理手順の一例を示すフローチャートである。以下の処理は、エントリー制御アプリ103が、自身のエントリー制御の動作を行なう状況にあるか否かを判断するために行なわれる。エントリー制御アプリ103は、入力信号判定モジュール107に、自身の動作状況判定に関するリンク情報59を指示する情報を与える。
【0070】
入力信号判定モジュール107は、与えられた情報からリンク情報59を特定してROM52から読み出し(ステップS1)、リンク情報59に基づき、判定に必要な入力信号を抽出して読み込む(ステップS2)。
【0071】
次に入力信号判定モジュール107は、抽出した入力信号に対する判定テーブル58,58,…を読み出す(ステップS3)。入力信号判定モジュール107は、リンク情報59に基づき、抽出した入力信号の内、最初に判定対象とすべき入力信号について、入力信号の信号レベルの状態が判定テーブル58のいずれの判定条件に一致するかを判断する(ステップS4)。
【0072】
入力信号判定モジュール107は、ステップS4にて、入力信号が「OFF」から「ON」へ変化したという判定条件に一致すると判断した場合(S4:OFF→ON)、リンク情報59から当該条件に一致する場合の次の判定テーブル58のアドレスを取得する(ステップS5)。そして入力信号判定モジュール107は、取得したアドレスは「NUL
L」か否かを判断する(ステップS6)。
【0073】
入力信号判定モジュール107は、ステップS6にて取得したアドレスが「NULL」でないと判断した場合(S6:NO)、次の入力信号及びその判定テーブル57に基づく判定を行なうべく、処理をステップS2へ戻す。
【0074】
入力信号判定モジュール107は、ステップS6にて取得したアドレスが「NULL」であると判断した場合(S6:YES)、次に判定すべき入力信号はないので、ステップS4における判断結果に対応する条件成立/不成立の判定結果を、リンク情報59から読み出して戻り値として、入力信号判定モジュール107の呼び出し元のアプリへ返し(ステップS7)、処理を終了する。
【0075】
入力信号判定モジュール107は、ステップS4における他の判定条件、即ち入力信号が「ON」から「ON」のままという判定条件に一致すると判断した場合(S4:ON→ON)、「ON」から「OFF」へ変化したという判定条件に一致すると判断した場合(S4:ON→OFF)、又は、「OFF」から「OFF」のままという判定条件に一致すると判断した場合(S4:OFF→OFF)、いずれの場合も次の判定テーブル58のアドレスを取得し(S8、S11、S14)、アドレスが「NULL」か否かを判断し(S9、S12、S15)、アドレスが「NULL」でない場合は(S9、S12、S15:NO)、処理をステップS2へ戻し、アドレスが「NULL」である場合は(S9、S12、S15:YES)、ステップS4における判断結果に対応する判定結果をアプリへ戻り値として返し(S10、S13、S16)、処理を終了する。
【0076】
図6のフローチャートに示したように、入力信号判定モジュール107では、各入力信号の状態に対する判定を、与えられる入力信号と当該入力信号に対す判定テーブル58とを用いて、同じプログラムコード内で繰り返し処理できる構成により(S4〜S15)、各入力信号に対する処理を夫々プログラムコードとして実装せずともよい点で効果的である。
【0077】
図7は、実施の形態1における入力信号判定モジュール107による判定処理の過程を概念的に示す説明図である。図7には、エントリー制御アプリ103から、判定処理を要求された場合に図6に示したように入力信号判定モジュール107が処理を行なったときに、図5に示したリンク情報59に基づいて読み出される判定テーブル58が示されている。
【0078】
図7に示すように、入力信号判定モジュール107は、エントリー制御アプリ103から、判定処理を要求された場合に、まずエントリー制御に関するリンク情報59を読み出す(S1)。入力信号判定モジュール107は最初に、IGキーセンサ4からの入力信号を読み込んで(S2)、当該入力信号に対する判定を行なう。入力信号判定モジュール107は、IGキーセンサ4からの入力信号に対応する判定テーブル58を読み出し(S3)、判定テーブル58に含まれているいずれの条件に一致するかを判断する(S4)。
【0079】
入力信号判定モジュール107は、IGキーセンサ4からの入力信号が「ON」状態である場合、「ON」から「ON」のままでも、「OFF」から変化したときでも、次の判定テーブル58のアドレスは「NULL」であるから、判定結果としてIGキーセンサ4からの入力信号の「ON」状態であることに対する判定結果の「条件不成立」を戻り値として返す(S10)。
【0080】
エントリー制御のルームランプ1の点灯制御では、車外からユーザが車両に乗ろうとしてドアロックを開錠した場合に行なう。キー位置がIG1の位置にある場合では、既にユ
ーザがドアロックを開錠してドアを開けて、エンジンをかけた状況であるから、当該エントリー制御を行なうべきでないからである。
【0081】
エントリー制御アプリ103は、入力信号判定モジュール107から「条件不成立」の判定結果を返された場合、自身の処理により制御対象に動作を要求する状況を示す条件が「条件不成立」であると認識し、動作要求は行なわない。
【0082】
入力信号判定モジュール107は、IGキーセンサ4からの入力信号が「OFF」状態である場合、「ON」から「OFF」変化したときでも、「OFF」から「OFF」のままでも、次のテーブル58のアドレスは、カーテシセンサ2,2からの入力信号に対する判定テーブル58のアドレスである。したがって入力信号判定モジュール107は、カーテシセンサ2,2からの入力信号を読み込み(S2)、判定テーブル58におけるいずれの条件に一致するかを判断する(S3、S4)。この場合も、カーテシセンサ2,2からの入力信号がいずれか一方のみでも「ON」状態である場合は、次の判定テーブル58のアドレスは「NULL」であるから判定処理は終了され、「条件不成立」の判定結果が返される(S10)。
【0083】
カーテシセンサ2,2からの入力信号が「OFF」状態である場合には、次の判定テーブル58としてドアロックセンサ3,3からの入力信号に対する判定テーブル58のアドレスがリンク情報59から読み出せる。したがって入力信号判定モジュール107は次に、ドアロックセンサ3,3からの入力信号を読み込み(S2)、判定処理を行なう。
【0084】
入力信号判定モジュール107は、ドアロックセンサ3,3からの入力信号がいずれの判定条件に一致したとしても、次の判定テーブル58のアドレスとして「NULL」を取得する(S5,S8,S11,S14)。したがって、アドレスは「NULL」であるから(S6,9,12,15:YES)、入力信号判定モジュール107は、ドアロック3,3からの入力信号が一致する判定条件に対応する判定結果を戻り値として返し(S7,S10,S13,S16)、処理終了する。このとき、図5のリンク情報59の内容例では、ドアロックセンサ3,3からの入力信号の状態が「LOCK」から「UNLOCK」へ変化したという条件に一致する場合のみ、判定結果として「条件成立」が返される。
【0085】
つまり、入力信号モジュール107は、図5に示すようなリンク情報59に基づき、エントリー制御に対する判定処理を行なう場合、IGキーセンサ4からの入力信号が「OFF」であって、カーテシセンサ2,2からの入力信号も「OFF」であって、更にドアロックセンサ3,3からの入力信号が「LOCK」から「UNLOCK」へ変化したときのみ「条件成立」となり、エントリー制御アプリ103によりエントリー制御が実行される。
【0086】
このように、リンク情報59に入力信号を読み込む順序、及び当該入力信号に対する判定結果に応じた次の入力信号の関係がリンク形式で示されていることにより、入力信号判定モジュール107は、エントリー制御アプリ103から、ルームランプ1のエントリー制御に対する入力信号判定の要求がされるのみで、判定処理を行なうことができる。
【0087】
なお、リンク情報59を用いて、最初に1つでも条件不成立となるような判定条件に入力信号の状態が一致した場合に処理が終了できる構成としたことにより、他の入力信号に対する判定処理をその後行なわずともよく、処理が迅速化される点で効果的である。
【0088】
図8は、CPU51が入力信号判定モジュール107として機能する際の処理の具体例を概念的に示す説明図である。図8には、CPU51が入力信号判定モジュール107として機能している際にRAM53を占有する各種情報をブロックにて示している。
【0089】
図8中の上段に示すように、RAM53にはボディECU5の制御対象である負荷、例えばヘッドライト、ルームランプ1についての動作状態と、各負荷に関して起動中の機能と、当該機能に対応する入力信号に対する判定結果とが記憶されている。同一の制御対象であっても対応する機能に応じて夫々動作状態、判定結果が記憶されている。例えば、エントリー制御の機能に対しては、当該機能を発揮するため動作要求を出力する条件が成立しているが、ドアロック減光制御の機能に対しては条件が成立していないなどの状態は勿論ありえるからである。動作状態の内容は、停止中、オン(点灯)、オフ(消灯)などのいずれかである。なお、斜線にて示す動作状態及び判定結果は、選択部105、出力ドライバ部106及び入力信号判定モジュール107などの処理により随時書き換えられる。
【0090】
図8中の下段には、判定テーブル及びリンク情報の内容が示されている。図8に示すRAM53に記憶されている判定テーブル及びリンク情報は、CPU51によってROM52から一時的に読み出された判定テーブル58,58,…及びリンク情報59の一部である。
【0091】
図8中の中段には、入力信号判定モジュール107のプログラムコードがロードされていることが示されている。このとき、1つのプログラムコードとしてロードされる入力信号判定モジュール107により、種々の機能にて複数の負荷夫々に対する動作を要求する状況にあるか否かの判定結果が行なわれることに注目すべきである。入力信号判定モジュール107は、エントリー制御アプリ103から、入力信号に対する判定処理を行なうべく呼び出された場合、エントリー制御に係るリンク情報59をRAM53に読み出し、各入力信号に対する判定テーブルを読み出し、判定処理を行って判定結果をエントリー制御に対応する記憶領域に書き込む。他の各アプリに呼び出された場合であっても、1つの入力信号判定モジュール107にて各アプリに対応する記憶領域にて記憶されている固有の情報を書き換えるなどして、共通のコードで固有の動作を行なう。
【0092】
このように、エントリー制御アプリ103に対応する入力信号判定処理も、ドアロック減光制御アプリ104に対応する入力信号判定処理も、共通して入力信号判定モジュール107が処理を行なう。これにより、各アプリで夫々入力信号判定のプログラムコードを実装する必要が無く、実行中に重複する内容が多いプログラムコードが多数RAM52にロードされてメモリを占有することが無い。
【0093】
1つのプログラムコードで、各アプリからの動作要求毎に順に実行することにより、オブジェクト指向型の概念において1つの共通する入力信号判定処理を持つクラスを各機能毎、入力信号毎に夫々実体化するようにクラスが持つ共通処理を固有パラメータに対して実行する構成を、メモリ容量に制限がある組み込み系のコンピュータプログラムでも実現することができる。
【0094】
処理の実行中にRAM53にてプログラムコードが占有する容量が少なくて済み、また、動的に容量が確保されることもなく煩雑なメモリ管理も要しないので、簡易な構成のマイコンに基づくECUにおける処理に適している。
【0095】
RAM53の記憶容量を節約できるのでボディECU5の内部構成を簡素化させることができる。更に、ボディECU5にて実現したい機能毎に、入力信号に対する判定処理を実行させるプログラムを実装せずとも、共有化された入力信号判定モジュール107の機能を共有化する。したがって、入力信号判定モジュール107とのインタフェースを考慮すれば、アプリケーションプログラム55,55,…では、入力信号判定処理以外の開発のみで済み、開発効率を向上させることができる。
【0096】
実施の形態1では、判定テーブル58,58,…は入力信号毎に別個のテーブルとして構成した。しかしながら、入力信号毎に判定条件を示す1個のテーブルとして構成されてもよい。この場合、リンク情報59に示されている次の判定テーブル58のアドレスは、次の入力信号の判定条件の項目の箇所を示すアドレスとなる。当該構成でも、リンク情報59の利用方法は同じであり、各機能の固有の情報を1つの入力信号判定モジュール107で用いて個々の入力信号に対する判定処理を実行することができる。
【0097】
(実施の形態2)
実施の形態1では、入力信号判定モジュール107は、図5に示したリンク情報59に基づいて、判定対象の入力信号を順に読み出し、夫々に対する判定テーブル58,58,…における判定条件により判定を行なって最終的な判定結果を得る構成とした。これに対し、実施の形態2では、判定テーブル58,58,…は機能毎に、判定対象となる入力信号と、各機能のために動作を要求する条件となる該入力信号に対するマスク情報及び信号状態との対応を記憶したものである。判定対象の入力信号を読み込む順序をも参照できるリンク情報59を用いない。
【0098】
以下に示す実施の形態2の車載制御システムは、リンク情報59がROM52に記憶されていないこと、判定テーブル58,58,…の内容、及び入力信号判定モジュール107の判定処理の詳細が異なる。リンク情報59が記憶されていない以外は、ハードウェア的な構成は実施の形態1における車載制御システムと同様であるので、図示及び詳細な説明を省略する。共通する構成部については同一の符号を用いて説明する。
【0099】
図9は、実施の形態2におけるROM52に記憶されている判定テーブル58,58,…の基本構成を示す説明図である。判定テーブル58,58,…では、機能毎に、当該機能に対応する負荷に、前記機能に対応する動作を要求する状況であるか否かを判断するための入力信号と、夫々の入力信号の状態を判断するためのマスク情報及び入力信号が充たすべき信号状態が判定条件として記憶されている。図9に示す例では、入力信号判定モジュール107は、ある機能に対応するアプリから呼び出された場合、入力信号A、入力信号B及び入力信号C夫々について、各々マスク情報に基づき信号をマスクして信号を読み取ったときに信号状態という判定条件が成立しているか否かを判定し、判定結果を返す。
【0100】
なお判定テーブル58,58,…は、機能毎のみならず、制御対象の負荷毎に、当該負荷に関する機能毎の判定テーブルを含む構成としてもよい。図10は、実施の形態2における判定テーブル58,58,…の内容例を示す説明図である。図10に示す例では、ルームランプ1を制御対象とする各機能について、マスク情報と信号状態の判定条件が含まれている。
【0101】
ドアが開いている間はルームランプ1を点灯させる機能にて、ルームランプ1へ点灯を要求するのは、カーテシセンサ2,2からの入力信号をレベル判定するようにマスクして読み取ったときに信号状態が「ON」であるという条件が成立したときであることが示されている。マスク情報が「レベル」であるから、信号状態が「OFF」から「ON」へ変化した場合であっても「ON」から「ON」のままであってもよい。当該判定テーブル58に基づき、入力信号判定モジュール107は、ドアが開いている間はルームランプ1を点灯させる機能のアプリから呼び出された場合、カーテシセンサ2,2からの入力信号に対する判定処理のみ行なえばよい。なお当該判定処理に、IGキー4からの入力信号及びドアロックセンサ3,3からの入力信号は無効であることが「−」で示されている。
【0102】
図10に示す他の例は、ドアが閉じた場合にルームランプ1を消灯させる機能にて、ルームランプ1への点灯要求を停止するのは、カーテシセンサ2,2からの入力信号をエッジ判定するようにマスクして読み取ったときに信号状態が「ON」から「OFF」へ変化
したという条件が成立したときであることが示されている。マスク情報が「エッジ」であるから、信号状態が変化した場合のみ条件が成立する。この場合も、カーテシセンサ2,2からの入力信号のみ判定処理を行なえばよい。
【0103】
また他の例は、エントリー制御アプリ103の機能、即ち、車外からユーザが車両に乗るためにドアロックが開錠されたときにルームランプ1を点灯させる機能にて、ルームランプ1へ点灯を要求するのは、以下の入力信号及び各入力信号に対する判定条件がいずれも成立したときである。つまり、IGキーセンサ4からの入力信号をレベル判定するようにマスクして読み取ったときに信号状態が「OFF」状態であるという条件が成立し、カーテシセンサ2,2からの入力信号をレベル判定するようにマスクして読み取ったときに「OFF」状態であるという条件が成立し、且つ、ドアロックセンサ3,3からの入力信号をエッジ判定するようにマスクして読み取ったときに信号状態が「LOCK」から「UNLOCK」へ変化したという条件が成立したときのみである。
【0104】
このような判定テーブル58を用いた入力信号判定モジュール107による判定処理について説明する。図11は、実施の形態2における入力信号判定モジュール107により実行される処理手順の一例を示すフローチャートである。以下の処理は、エントリー制御アプリ103が、自身のエントリー制御の動作を行なう状況にあるか否かを判断するために行なわれる。エントリー制御アプリ103は、入力信号判定モジュール107に、制御対象に対応する判定テーブル58を指示する情報を与える。
【0105】
入力信号判定モジュール107は、与えられた判定テーブル58を読み出し(ステップS21)、自身の呼び出し元の機能を特定して機能に対応する判定テーブル58からマスク情報及び判定条件を読み出し(ステップS22)、読み出したマスク情報に基づき各入力信号にマスク処理を行なう(ステップS23)。具体的には、複数の入力信号に対し判定対象以外の信号をマスクし、レベル判定対象の入力信号にはレベルのみとなるようにマスクする。
【0106】
詳細には、入力信号判定モジュール107は、エントリー制御についての判定対象であるIGキーセンサ4からの入力信号、カーテシセンサ2,2からの入力信号、及びドアロックセンサ3,3からの入力信号を含む複数の入力信号の情報を取得する。各入力信号はエッジ型で各々1バイトで表わされ、最下位2ビットで変化が表わされる。例えば入力信号がONからOFFとなった場合には入力信号は0x02で、OFFからONとなった場合には0x01で表わされる。ONのままの場合は0x03で表わされる。マスク情報も夫々1バイトで表わされ、レベル判定のみの場合は0x01、エッジ判定の場合は0x03である。条件が成立するための信号状態も1バイトで表わされ、ONからOFFは0x02、ONであることは0x01で表わされる。入力信号判定モジュール107は、これらの各入力信号に対してマスク情報とのANDを取ることでマスク処理を行なう。例えば、入力信号が0x02である場合にレベル判定のマスク情報に基づいてマスクした結果は0x00となるし、エッジ判定のマスク情報に基づいてマスクした結果は0x02である。なお、入力信号判定モジュール107は、これらの1バイトずつの入力信号の情報、マスク情報及び信号状態を夫々、例えば4バイトの情報としてまとめ、一括した演算を可能とする。例えば入力信号の情報は0x03000200、マスク情報は0x01010300である場合、マスク処理により0x01000200が得られ、まとめられた判定対象の信号状態0x00000200と一致するかが後述のステップS24のように判定される。
【0107】
次に入力信号判定モジュール107は、マスク処理を行なって得られた信号がステップS22にて読み出した判定条件の信号状態に一致するか否かにより複数の入力信号に対する判定条件の成否を一括して判定する(ステップS24)。入力信号判定モジュール10
7は、ステップS24にて条件が成立すると判定した場合(S24:YES)、条件成立という判定結果を戻り値として返し(ステップS25)、処理を終了する。
【0108】
入力信号判定モジュール107は、ステップS24にて条件が不成立であると判定した場合(S24:NO)、全入力信号について条件の成否を判定したかを判断する(ステップS26)。一括して判定される入力信号は上述の例では4つであるから、他にある場合には再度判定が必要である。入力信号判定モジュール107は、全入力信号について条件の成否を判定したと判断した場合(S26:YES)、条件不成立という判定結果を戻り値として返し(ステップS27)、処理を終了する。
【0109】
入力信号判定モジュール107は、全入力信号について条件の成否を判定していないと判断した場合(S26:NO)、処理をステップS22へ戻し、次の判定対象のマスク情報及び判定条件の信号状態を読み出して処理を継続する。
【0110】
図11に示した処理手順を実行する入力信号判定モジュール107の処理によっても、エントリー制御アプリ103から呼び出された場合、図7に示したような過程を経て、ルームランプ1へ点灯を要求する状況であるか否かを判断できる。実施の形態2における構成では、入力信号判定モジュール107が判定対象の入力信号に対して順に判定がされることなしに、一括して信号状態に対する判定が行なわれる点が、実施の形態1と異なる。
【0111】
実施の形態2では、複数の入力信号が判定対象として抽出された場合に一括して判定されるので処理が迅速化される。
【0112】
実施の形態2でも、入力信号判定モジュール107が、複数の各アプリに対して共有化されることは実施の形態1と同様である。つまり、エントリー制御アプリ103に対応する入力信号判定処理も、ドアロック減光制御アプリ104に対応する入力信号判定処理も、共通して入力信号判定モジュール107が処理を行なう。判定処理の詳細が異なるのみである。これにより、各アプリで夫々入力信号判定のプログラムコードを実装する必要が無く、実行中に重複する内容が多いプログラムコードが多数RAM52にロードされてメモリを占有することが無い。開発効率を向上させることができる点も、実施の形態1と同様である。
【0113】
なお、開示された実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0114】
1 ルームランプ(制御対象)
2 カーテシセンサ
3 ドアロックセンサ
4 IGキーセンサ
5 ボディECU(制御装置)
50 マイコン(マイクロコンピュータ)
72 ROM(記憶手段)
55 アプリケーションプログラム
56 アプリケーションドライバプログラム
57 入力信号判定モジュールプログラム(コンピュータプログラム)
58 動作パターンテーブル
59 リンク情報(分岐条件情報)
103 エントリー制御アプリ(アプリケーション)
104 ドアロック減光制御アプリ(アプリケーション)
107 入力信号判定モジュール(判定手段)
【技術分野】
【0001】
本発明は、コンピュータプログラムに基づき各種負荷の動作制御を行なう制御装置に関する。特に、コンピュータプログラムの構成を、メモリを節約させることを可能とする構成として装置の簡素化を実現させ、且つ各負荷用の多様な機能の増減に柔軟に対応させることができ、開発効率を向上させることができる制御装置、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
マイクロコンピュータ(以下、マイコンという)を利用し、マイコン内蔵ROMに書き込まれたコンピュータプログラムに基づいて制御を行なう制御装置の場合、コンピュータプログラムは所謂組み込み系の言語で記述される。組み込み系の言語で記述するコンピュータプログラムは、装置の簡素化のためにメモリなどリソースを節約し、必要最低限の処理を制御対象毎に、且つ機能毎に実装する構成が基本的である。
【0003】
図12は、従来のマイコンにおけるコンピュータプログラムの構成の概略を示す概略図である。図12に示すコンピュータプログラムの構成は特に、制御対象(負荷X)の動作を制御する制御装置にてマイコンにより実行されるコンピュータプログラムの例を示している。図12は、コンピュータプログラムにより実現される機能をブロックにて示している。図12の例のコンピュータプログラムによって負荷Xを制御対象とする機能が実現される場合、図12に示すように、当該コンピュータプログラムは例えば、機能毎に、センサ又は負荷から入力される信号A,B,C夫々に対する判定処理、入力信号の判定結果に基づき機能を実現するため負荷Xに要求する動作を判定する判定処理、負荷への動作要求の信号出力の調停、動作毎の負荷への信号出力などの機能が、アプリケーションプログラムにより実現したい機能(ア)及び機能(イ)夫々に対応して実現される。
【0004】
コンピュータプログラムの実装上も、夫々の機能に応じたプログラムコード(実行ファイル)が作成され、いずれのプログラムコードもメモリ上に予め記憶されており、CPUにより読み出される。したがって、図12に示したブロック夫々に応じてメモリが占有される。したがって、例えば入力信号に対する判定処理は、機能(ア)及び(イ)毎に、更に信号A,B,C毎にプログラムコードが夫々存在する。
【0005】
図12に示した例では、機能が(ア)と(イ)とで異なるのみで同一の入力信号Aに対しても夫々、入力信号判定部に対応するプログラムコードが存在する構成である。機能(ア)と(イ)とが同時並行的に実行される可能性がない場合、夫々存在する構成ではメモリの使用が非効率的である。
【0006】
また、入力信号に対する判定処理は、概ね信号レベルがHiかLowかに基づき、スイッチがONかOFFか、ロックかアンロックかなどを判定するものである。即ち、入力信号の内容が異なるのみで、判定処理の具体的な処理内容はいずれも信号レベルがHiかLowかであって共通している。この判定処理のためのプログラムコードが種々の入力信号夫々に存在する構成では、メモリの使用が非効率的である。
【0007】
しかもこの場合、各入力信号A,B,Cに対する判定は同時的に行なわれるのではなしに、シーケンシャルに各入力信号A,B,Cに対する判定がされ、判定結果に応じた動作もシーケンシャルに行なわれて、入力信号の判定処理のためのプログラムコードに占有されるメモリが同時的にアクセスされることもないにも拘わらず、マイコンに実行させるための各動作に対応するプログラムコードがいずれも、メモリを予め占有するので、メモリ
の使用効率が非効率的である。
【0008】
これに対し、制御装置に求められる機能の多様化、複雑化が進むにつれ、オブジェクト指向型の言語によって記述されるプログラムをマイコンが読み出して実行する制御装置も提案されている(特許文献1など参照)。このように、処理が実行される都度にメモリが確保され、処理が終了した場合にはメモリが開放されて他に使用できるなど、メモリを効率的に利用することができる。しかしながらこの場合、プログラム実行中にメモリを動的に確保するなどの処理をマイコンに実現させる基本機能(ライブラリ)などが必要である。このようにオブジェクト指向に基づく設計では、基本機能を実現するためのライブラリプログラムコードがメモリを使用する上、動的なメモリ確保、動的なライブラリのリンクなどの処理が想定され、オブジェクト指向型のコンピュータプログラムの構成により各種機能が実現できるのはメモリの記憶容量に余裕があるからである。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−77220号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、負荷制御を行なうマイコンを用いた制御装置では、メモリの容量に制限があるからこそ組み込み系の言語で記述されるコンピュータプログラムを利用するのであって、メモリの記憶容量に余裕を持たせてもよい特定の制御装置以外では、オブジェクト指向型のソフトウェア構成は適していない。一方で、従来のコンピュータプログラムの構成のように、共有できる処理であっても種々の入力信号毎、制御対象である負荷毎、及び機能毎にプログラムコードがメモリを占有する構成では上述のようにメモリの使用が非効率的である。共通する同様な処理は共有化して再利用が可能な構成とし、共有化された処理はそれに対応するプログラムコードのみでメモリを占有することが望ましい。
【0011】
本発明は斯かる事情に鑑みてなされたものであり、組み込み系のコンピュータプログラムにオブジェクト指向型の概念を適用し、メモリを節約して装置の簡素化を実現させ、開発効率を向上させることができる制御装置、制御方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
第1発明に係る制御装置は、複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを備え、該マイクロコンピュータが複数のアプリケーションプログラムに基づく処理を行ない、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力して前記制御対象の動作を制御するようにしてある制御装置において、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段と、複数の入力信号から、アプリケーションプログラムの機能毎に1又は複数の入力信号を抽出する抽出手段と、機能毎に抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を、前記判定手段に与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断する判断手段とを備えることを特徴とする。
【0013】
第2発明に係る制御装置は、機能毎に、前記判定手段へ与える入力信号及び判定条件、並びに、前記判定手段へ入力信号及び判定条件を与えた場合の判定結果に応じて次に与えるべき入力信号及び判定条件を示す分岐条件情報を記憶する手段を備え、前記判断手段は、前記分岐条件情報に基づき、各判定結果に応じて次の入力信号及び判定条件を選択して与えるようにしてあることを特徴とする。
【0014】
第3発明に係る制御装置は、入力信号毎に判定条件を示すテーブルを備え、前記分岐条件情報は、次に与えるべき入力信号の判定条件の参照箇所を示すアドレスを含むことを特徴とする。
【0015】
第4発明に係る制御装置は、前記判断手段は、前記分岐条件情報に基づいて入力信号及び判定条件を前記判定手段へ順次与えた場合の最後の判定結果が成立である場合、動作要求を出力する状況であると判断するようにしてあることを特徴とする。
【0016】
第5発明に係る制御装置は、各機能に対応する入力信号、及び該入力信号への判定条件を示すテーブルを機能毎に備え、前記抽出手段は、前記テーブルに基づいて入力信号を抽出するようにしてあることを特徴とする。
【0017】
第6発明に係る制御方法は、複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを用い、該マイクロコンピュータに複数のアプリケーションプログラムに基づく処理を行なわせると共に、前記マイクロコンピュータは、前記複数のアプリケーションプログラムと異なるコンピュータプログラムに基づき、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段として機能し、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象の動作を制御する方法であって、前記マイクロコンピュータは、前記アプリケーションプログラムに基づく処理により、機能毎に、該機能に関する入力信号を1又は複数抽出し、抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を前記判定手段へ順次与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断し、出力する状況であると判断した場合に動作要求を出力させることを特徴とする。
【0018】
第7発明に係るコンピュータプログラムは、複数の制御対象又は複数のセンサが接続され、前記制御対象の状態情報又は前記センサからの検知情報を示す信号の入力を受け付けるコンピュータに、複数のアプリケーションプログラムに基づき、入力信号から判断される状況に応じて複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象を動作させる処理を実行させる際に、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定させる判定手段として機能させるコンピュータプログラムであって、コンピュータを、アプリケーションプログラムの機能毎に抽出された1又は複数の入力情報、及び該入力情報に対応する判定条件、前記判定手段へ与える手段、及び、1又は複数の入力情報を与えて前記判定手段により得られた各判定結果により、動作要求を出力する状況であるか否かを判断する手段として機能させることを特徴とする。
【0019】
第1発明、第6発明及び第7発明では、マイクロコンピュータが、制御対象の制御状態の情報又は各センサが検知した情報を示す入力信号から、複数の機能を夫々実現するアプリケーションプログラムの処理において当該機能に対応する動作要求を出力する状況にあるか否かを判断するに際し、入力信号に対する判定処理が判定手段によって実行される。複数の機能夫々に応じて制御対象を動作させるか否かを判断させるための信号が夫々が抽出され、判定手段で抽出された各入力信号に対して判定条件が成立するか否かが判定される。判定手段による各判定結果に基づいて、動作要求を出力する状況にあるか否かが判断される。
【0020】
このとき、複数のアプリケーションプログラムに基づく処理が実行されるのに対し、入力信号に対する判定条件の成否を判定する判定手段は、複数のアプリケーションプログラムに共有される構成である。これにより、従来では処理の内容が重複するにも拘わらず、各アプリケーションプログラムに対応する入力信号に対して別個に実行されていた判定処
理が共有化される。
【0021】
第2発明では、機能毎に、該機能に対応する制御を実行する状況にあるかを判断するための判定対象の入力信号及び各入力信号に対する判定条件と、判定条件の判定結果に応じて次に与えるべき入力信号を示す情報とからなる分岐条件情報が記憶され、当該分岐条件情報に基づき判定がなされる。判定対象が分岐条件に基づいて切り替わることで1つの判定手段が同一の判定処理を実行する構成でも、各々固有の信号に対する判定処理を実行する構成と同じ結果が得られる。
【0022】
第3発明では、入力信号毎の判定条件はテーブル化されており、分岐条件情報は、各判定条件の結果に応じた次の入力信号に対する判定条件の参照箇所を示している。判定手段は、示される参照箇所の判定条件を参照して入力信号が一致するか否かの判定処理を、判定対象の信号が変わったとしても変わらずに行なう構成で、異なる入力信号に対する判定が、判定結果に応じた分岐に従って行なわれる。これにより、共通の1つの判定手段により、種々の入力信号に対する判定を実行できる。
【0023】
第4発明では、分岐条件情報に基づく判定手段の処理により最終的に得られた判定結果が示す成否が、動作要求を出力する状況か否かである。判定手段が、複数の入力信号に対して判定結果を返す処理を変わらず実行することにより、最終的な判断結果が得られる。
【0024】
第5発明では、判定対象となるべき入力信号と、各入力信号に対する判定条件とが機能毎にテーブルにて記憶されてもよい。機能が指定された場合に判定すべき入力信号を抽出され、判定対象の入力信号の判定の順序に関わらず、抽出された入力信号の内のいずれかについて判定条件が不成立の場合に判定結果は不成立となる。
【発明の効果】
【0025】
本発明による場合、組み込み系のコンピュータプログラムに基づき制御を行なう制御装置でも、各機能を実現させる動作について、動作を行なう状況であるか否かを判断するための入力信号に対する判定処理を各機能に共有化し、1つの判定手段の機能を種々の入力信号に対する判定処理に利用する。
【0026】
これにより、種々の入力信号夫々に対して入力信号の判定処理を行なわせるプログラムコードが種々の入力信号毎に、且つ機能毎に記憶されて実行される構成よりも、共通して利用できるプログラムコードを1つメモリに記憶して実行可能に構成しておくことにより各機能を実現可能であるからメモリの占有量は少なくて済む。メモリを節約できるので装置を簡素化させることができる。更に、入力信号自体と、判定結果の関係を変えて共有化された判定手段の機能を再利用すればよいので、新たな入力信号に対する判定処理が加わったとしても、これに対するプログラムは実装せずとも、入力信号と該入力信号に対応する判定条件とを与える構成を守ればアプリケーションプログラムの開発のみで済み、開発効率を向上させることができる点、優れた効果を奏する。
【図面の簡単な説明】
【0027】
【図1】実施の形態1における車載制御システムの構成を示す構成図である。
【図2】実施の形態1における車載制御システムに含まれるボディECUの内部構成を示すブロック図である。
【図3】実施の形態1におけるボディECUのマイコンのCPUにて実現される機能を概念的に示す機能ブロック図である。
【図4】実施の形態1におけるボディECUのROMに記憶されている判定テーブルの内容例を示す説明図である。
【図5】実施の形態1におけるリンク情報の内容例を模式的に示す説明図である。
【図6】実施の形態1における入力信号判定モジュールにより実行される処理手順の一例を示すフローチャートである。
【図7】実施の形態1における入力信号判定モジュールによる判定処理の過程を概念的に示す説明図である。
【図8】CPUが入力信号判定モジュールとして機能する際の処理の具体例を概念的に示す説明図である。
【図9】実施の形態2におけるROMに記憶されている判定テーブルの基本構成を示す説明図である。
【図10】実施の形態2における判定テーブルの内容例を示す説明図である。
【図11】実施の形態2における入力信号判定モジュールにより実行される処理手順の一例を示すフローチャートである。
【図12】従来のマイコンにおけるコンピュータプログラムの構成の概略を示す概略図である。
【発明を実施するための形態】
【0028】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。なお、以下に示す実施の形態では、車両の室内に搭載されているランプ、ライト、ドア、ワイパーなどのボディ系の各種制御対象を制御する車載ボディECUに本発明の制御装置を適用した車載制御システムを例に挙げて説明する。
【0029】
(実施の形態1)
図1は、実施の形態1における車載制御システムの構成を示す構成図である。車載制御システムは、車室内の前部天井に取り付けられるルームランプ1と、車両のドア部に設置され、ドアの開閉を検知するカーテシセンサ2,2及びドアロックを検知するドアロックセンサ3,3と、イグニッション(Ignition)キー(以下、IGキーという)の挿抜を検知するIGキーセンサ4と、夫々を制御するボディECU5とを含む。
【0030】
ルームランプ1はボディECU5に接続されており、ボディECU5により点灯、消灯が制御される。なお、点灯、消灯のいずれにおいてもPWM制御により減光、増光が可能である。
【0031】
カーテシセンサ2,2及びドアロックセンサ3,3はボディECU5に接続されており、夫々ドア開閉状態を知らしめる信号又はドアロックの開閉状態を知らしめる信号をボディECU5へ出力する。
【0032】
IGキーセンサ4はボディECU5に接続されており、IGキーセンサ4にて検知したIGキーの挿抜、及びキー位置を示す信号をボディECU5へ出力する。
【0033】
ボディECU5は、カーテシセンサ2,2、ドアロックセンサ3,3又はIGキーセンサ4から出力される各信号を入力して、それらの信号レベルに基づき、例えば、ドアが閉状態で、IGキーは挿入されていない状態で、ドアロックがロックからアンロックへ変化した場合には、乗車しようとするユーザによりドアが開錠された状況にあるから、ルームランプ1を点灯させるべく制御信号を出力するエントリー制御を実現する。また、同様にドアが閉状態で、IGキーは挿入されていない状態で、ドアロックがアンロックからロックへ変化した場合には、降車したユーザがドアが施錠された状況にあるから、点灯していたルームランプ1を少しずつ減光させて消灯させるべく制御信号を出力するドアロック減光制御を実現する。
【0034】
なお、実施の形態1では、ボディECU5について、ルームランプ1の点灯に関する機能各構成部の処理のみ記載するが、ボディECU5が他の機能を実現するために他の制御
対象となる負荷(アクチュエータ)、例えばヘッドライト、スモールランプ、フロントワイパー、リアワイパーなどを制御することが可能な構成でもよいことは勿論である。
【0035】
このような各種機能をボディECU5にて実現するためのボディECU5内部の構成及び処理について説明する。ボディECU5は後述するように、マイコン50を備えて、マイコン50内臓のROM(Read Only Memory)52に記憶されているコンピュータプログラムに基づく処理を実行することにより各種機能を実現する。
【0036】
図2は、実施の形態1における車載制御システムに含まれるボディECU5の内部構成を示すブロック図である。ボディECU5は、CPU51、ROM52、RAM(Random
Access Memory)53及びI/O54を含むマイコン50を備えて構成される。他に、カーテシセンサ2,2、ドアロックセンサ3,3、キーセンサ4などのセンサと車載ネットワークを介して接続される場合は通信手段としてネットワークコントローラ、トランシーバをマイコン50内又は外に備える構成としてもよい。
【0037】
CPU51は、ROM52に記憶されているコンピュータプログラムをRAM53に読み出して実行することにより、上述のようなルームランプ1の点灯、消灯、減光機能を実現する。
【0038】
ROM52には、フラッシュメモリを利用する。ROM52には、CPU51が読み出して実行するコンピュータプログラムとして、ボディ系に関する各機能を実現するためのアプリケーションプログラム55,55,…、アプリケーションドライバプログラム56、入力信号判定モジュールプログラム57が記憶されている。他に接続されるルームランプ1などの各種負荷との信号の物理層における入出力を実現するためのドライバプログラム(図示せず)が記憶されている。またROM52には、CPU51が各センサからの入力信号が示す状態を判定するために参照する判定テーブル58,58,…が負荷毎に記憶されている。そして、機能毎に、判定テーブル58,58,…間のリンク関係を示すリンク情報59が記憶されている。
【0039】
なお、ROM52は基本的に、ボディECU5の稼働中は読み出し専用(ROM)ではあるが、CPU51に実行させたいコンピュータプログラムの更新、又は判定テーブル58,58,…の更新が必要な場合に書換が可能である。
【0040】
RAM53には、DRAM(Dynamic RAM)、SRAM(Static RAM)等を利用する。RAM53にはCPU51が読み出すコンピュータプログラムがロードされる他、処理によって発生する各種情報が一時的に記憶される。
【0041】
I/O54は、マイコン50と外部とのインタフェースである。マイコン51はI/O54により、ルームランプ1へ制御信号を出力する。
【0042】
次に、マイコン50のCPU51がROM52に記憶されているコンピュータプログラムを読み出して実現するマイコン50内の詳細な機能について説明する。図3は、実施の形態1におけるボディECU5のマイコン50のCPU51にて実現される機能を概念的に示す機能ブロック図である。
【0043】
CPU51は、ROM52に記憶されているアプリケーションプログラム55,55,…、アプリケーションドライバプログラム56、入力信号判定モジュールプログラム57、及びその他ドライバプログラムなどを読み出して実行することにより、アプリケーション層101、プラットフォーム層102の階層に分けられたソフトウェア構造にて動作する。
【0044】
CPU51がアプリケーションプログラム55,55,…の内、エントリー制御用のアプリケーションプログラム55に基づき、エントリー制御アプリ103として機能する。同様にCPU51は、ドアロック減光制御用のアプリケーションプログラム55に基づき、ドアロック減光制御アプリ104として機能する。エントリー制御アプリ103及びドアロック減光制御アプリ104としての機能は構造的に、アプリケーション層101に位置する。
【0045】
CPU51はアプリケーションドライバプログラム56に基づき、選択部105及び出力ドライバ部106としての機能を実現する。選択部105及び出力ドライバ部106としての機能は、ハードウェア群(制御対象群、即ちルームランプ1、ヘッドライト、スモールランプ等)を直接的に制御すべく物理層の信号を扱う所謂ドライバの機能ではなく、エントリー制御アプリ103又はドアロック減光制御アプリ104などの各種アプリケーションの処理の内の信号生成処理などの共通部分を1つにしたモジュールであり、アプリケーション層101に位置する。
【0046】
CPU51は、入力信号判定モジュールプログラム57に基づき、入力信号判定モジュール107としての機能を実現する。入力信号判定モジュール107としての機能は、アプリからの入力信号判定の指示があった場合に、機能に関係する入力信号の信号レベルを判定する処理を共通化した1つのモジュールである。各アプリは、入力信号判定モジュール107の機能を再利用して、動作を行なう状況にあるか否かを判定する。即ち、エントリー制御アプリ103及びドアロック減光制御アプリ104はいずれも、ルームランプ1を点灯する状況にあるか、減光消灯させる状況にあるか否かを入力信号判定モジュール107を利用して判定する。入力信号判定モジュール107は、アプリケーション層101に位置する。
【0047】
そしてCPU51はドライバプログラムに基づき、入出力ドライバ108として機能する。入出力ドライバ108としての機能は所謂ドライバの機能を実現し、ハードウェア群を直接的に制御すべくI/O54へ実際に物理層の制御信号の入出力を行なう。入出力ドライバ108としての機能は構造的に、プラットフォーム層102に位置する。
【0048】
CPU51の選択部105としての機能は以下である。選択部105は、CPU51がエントリー制御アプリ103又はドアロック減光制御アプリ104としての機能により制御対象となるハードウェア、例えばルームランプ1へ点灯要求などの動作要求を発した場合に、動作要求を受け付け、制御対象と、制御対象に行なわせる具体的な動作とを特定し、特定した制御対象及び動作の内容を示す情報を出力ドライバ部108へ与える。
【0049】
CPU51の出力ドライバ部106としての機能は以下である。出力ドライバ部106は、選択部105から与えられる制御対象、及び制御対象に行なわせる具体的な動作の情報に基づき、動作を実現させるための制御信号を生成して、制御対象のハードウェアへ制御信号を出力させるべくプラットフォーム層102の入出力ドライバ108へ指示する。
【0050】
CPU51の入力信号判定モジュール107としての機能は以下である。入力信号判定モジュール107は、各アプリから夫々の機能に応じて抽出された入力信号について夫々、前記機能を発揮させる状況にあるか否かを判定するための判定条件の成立/不成立を判定し、判定結果を各アプリに戻すことである。実施の形態1における入力信号判定モジュール107は、入力信号毎に利用されるリエントランス構造となっている。
【0051】
このようにまず、本実施の形態1のボディECU5では、各アプリケーションからの動作要求を選択部105にて一括して受け付け、制御信号の生成を行なう出力ドライバ部1
06の機能を共有化する構成とする。エントリー制御アプリ103及びドアロック減光制御アプリ104など各アプリケーション毎、制御対象の負荷毎に、制御信号を生成して入出力ドライバ108へ夫々出力する構成(図12参照)ではない。エントリー制御アプリ103及びドアロック減光制御アプリ104などのいずれのアプリケーションでも、制御がオン、オフのスイッチングにて実現する場合、動作要求に応じて制御信号を生成する処理は、動作の具体的内容が異なるのみで共通した処理であるから共有化が可能である。また、ボディECU5では、各制御対象のハードウェアの制御を同時に行なうことはなく、各アプリケーションの機能も順に実現されるから制御信号の生成処理が同時に行なえる構成とする必要はないので共有化が可能である。当該処理を1つにして各機能から再利用可能に共有化した構成とすることにより、ROM52及びRAM53におけるメモリ占有量を削減できる。
【0052】
また、本実施の形態1のボディECU5では、入力信号に対する判定も入力信号判定モジュール107に共有化される構成とする。エントリー制御アプリ103及びドアロック減光制御アプリ104など各アプリケーションに夫々、入力信号毎に入力信号判定処理を行なうモジュールが含まれる構成ではない。エントリー制御アプリ103及びドアロック減光制御アプリ104などのいずれのアプリケーションでも、更に、いずれの入力信号についても、信号レベルがHiであるかLowであるかの判定が行なわれる。判定の対象である入力信号がいずれであるかが異なるのみで、判定処理自体は共通するから共有化が可能である。また、ボディECU5では、各制御対象のハードウェアの制御を同時に行なうことはなく、各アプリケーションの機能も順に実現されるから各アプリケーションの機能で入力信号に対する判定処理が同時に行なえる必要もない。入力信号判定処理を1つにして各機能から再利用可能に共有化した構成とすることにより、ROM52及びRAM53におけるメモリ占有量を更に削減できる。
【0053】
具体的には、CPU51にて各機能が実現される場合、図3の各ブロックにて示す各機能に対応する実行プログラムファイル(プログラムコード)が必要となる。まず、制御対象の決定及び制御信号の生成処理の機能を1つの選択部105及び出力ドライバ部106に共有化して、各種機能から利用される構成とすることにより、複数のアプリケーションプログラム55,55,…夫々に対応させたアプリケーションドライバプログラムを複数実行する構成よりもROM52及びRAM53における記憶容量が少なくて済む。各アプリケーションプログラム55,55,…で、出力ドライバ部106に対応するプログラムコードを用意する必要がないからである。同様に、入力信号判定処理を入力信号判定モジュール107に共有化して各アプリケーションの機能から利用される構成とすることにより、各アプリケーションにおける入力信号判定処理のプログラムコードを省略することができるから、更にROM52及びRAM53における記憶容量が少なくて済む。また、実現したい各機能について実際に、入力信号を判定する処理、及び制御信号を生成する処理を実装せずとも、入力信号判定モジュール107、選択部105及び出力ドライバ部106の機能を再利用すればよいので、機能の開発は動作要求を発するアプリケーションプログラム55,55,…の開発のみで済み、開発効率を向上させることができる。
【0054】
次に、エントリー制御アプリ103及びドアロック減光制御アプリ104が入力信号判定モジュール107を利用して判定結果を得る処理について詳細を説明する。
【0055】
ROM52には、負荷毎に信号レベルに応じた判定テーブル58,58,…が記憶されている。判定テーブル58,58,…は、センサなどの信号の出力元毎の判定条件及び判定方法を含む。図4は、実施の形態1におけるボディECU5のROM52に記憶されている判定テーブル58,58,…の内容例を示す説明図である。判定テーブル58,58,…では、入力信号の種類毎に、判定の方法及び判定条件が記憶されている。
【0056】
図4には、IGキーセンサ4、カーテシセンサ2,2、及びドアロックセンサ3,3からの入力信号の判定テーブル58,58,58の例が示されている。IGキーセンサ4からの入力信号はIGキーの挿抜、及びキー位置を検知したセンサ情報を示す。入力信号判定モジュール107では、与えられた入力信号のレベル判定か又はエッジ判定かを行なうようにしてある。入力信号に対し、エッジ判定によりOFFからONとなったか、レベル判定によりONであるか、エッジ判定によりONからOFFとなったか、又はレベル判定によりOFFであるかのいずれであるかが判定される。このとき、ONはキー位置がIG1の位置にあることに対応する。
【0057】
カーテシセンサ2,2からの入力信号はドアの開閉を検知したセンサ情報を示す。カーテシセンサ2,2からの入力信号についても、与えられた入力信号のレベル判定か又はエッジ判定かのいずれかの方法でONであるかOFFであるかが判定される。ONは開に対応し、OFFは閉に対応する。
【0058】
ドアロックセンサ3,3からの入力信号は、ドアロックのロック/アンロックを検知したセンサ情報を示す。ドアロックセンサ3,3からの入力信号についても、与えられた入力信号のレベル判定か又はエッジ判定かのいずれかの方法でLOCK(ON)であるかUNLOCK(OFF)であるかが判定される。
【0059】
入力信号判定モジュール107は、図4に示したような判定テーブル58,58,…を参照して、各アプリから入力信号が与えられた場合にその信号レベルから、判定条件のうちのいずれが成立するか否かを判定する。例えば入力判定モジュール107は、ドアロックセンサ3,3からの入力信号に対し、エッジ判定を行なった結果UNLOCKからLOCKとなったという判定条件、レベル判定を行なった結果LOCKであるという判定条件、エッジ判定を行なった結果LOCKからUNLOCKとなったという判定条件、又はレベル判定を行なった結果UNLOCKであるという判定条件のいずれが成立するかを判定する。
【0060】
入力信号判定モジュール107は更に、判定結果に応じて、次の入力信号に対する判定を行なう。このとき入力信号判定モジュール107は、判定結果に応じた次の入力信号がいずれなのかを各アプリから与えられるリンク情報59を参照して判断する。リンク情報59は、機能毎及び負荷毎に、各判定テーブル58,58,…に基づく判定結果の分岐に応じて、次にいずれの入力信号、及び入力信号の判定テーブル58,58,…にて判定がされるべきかを示す情報である。
【0061】
図5は、実施の形態1におけるリンク情報59の内容例を模式的に示す説明図である。図5に示すリンク情報59は、ユーザが乗車しようとして車外からドアロックを開錠した場合にルームランプ1を点灯させるエントリー制御アプリ103に対応している。
【0062】
リンク情報59は、アプリケーションプログラム55、又はその機能毎に抽出されるべき入力信号を含む。図5の例に示すリンク情報59は、エントリー制御アプリ103に対応する入力信号がIGキーセンサ4からの入力信号、カーテシセンサ2,2からの入力信号、及びドアロックセンサ3,3からの入力信号であることを示している。
【0063】
そしてリンク情報59は、判定結果に応じた次の判定対象の入力信号の情報を含む。図5の例では、各入力信号に対する判定テーブル58と、判定結果に応じた次の判定テーブル58のROM52内におけるアドレスとのリンク関係が示されている。つまり、入力信号についての判定テーブル58に基づく判定結果に応じて、次に判定対象とすべき入力信号の判定テーブル58のアドレスが記述されている。図5の「NULL」は、次に判定対象とすべき入力信号の判定テーブル58が「無い」ことを示している。次の判定テーブル
58が「無い」場合は、入力信号判定モジュール107は入力信号の判定処理を終了する。
【0064】
図5の例では、具体的には、エントリー制御アプリ103に関し、入力信号判定モジュール107で最初に判定されるべき入力信号はIGキーセンサ4からの入力信号であることが示されている。そして、IGキーセンサ4からの入力信号に対する判定テーブル58に基づき、入力信号がONであると判定された場合には、OFFからONに変化した場合もONのままである場合も、判定結果は「不成立」であることが示されている。この場合、これ以上判定する必要はないので、次に判定対象とすべき入力信号の判定テーブル58のアドレスは「NULL」を示している。
【0065】
このように、機能毎に判定対象の入力信号と、判定結果に応じて次に判定対象とすべき入力信号の順序とを示すリンク情報59をROM52に記憶しておく構成により、1つの入力信号判定モジュール107が処理を行なうとしてもリンク情報59の内容に応じて、種々の入力信号に対する判定処理を行なうことができる。
【0066】
図5に示したように、実施の形態1におけるリンク情報59は、各入力信号に対する判定テーブル58,58,…のアドレス同士のリンク関係にて示した。しかしながら、リンク情報59の内容はこれに限らず、判定結果に応じて、次にいずれの入力信号についての判定をするべきかを示す情報であればよい。
【0067】
なお、リンク情報59には、上述のようなエントリー制御アプリ103のルームランプ1についての情報のみならず、他のアプリケーションプログラム55,55,…、負荷に対応する情報が含まれることは勿論である。
【0068】
このような判定テーブル58,58,…及びリンク情報59を参照して、入力信号判定モジュール107が各入力信号に対する判定結果に基づいて、機能を実現すべき状況に有るか、即ち動作すべき条件が成立するか否かを判断する処理についてフローチャートを参照して説明する。
【0069】
図6は、実施の形態1における入力信号判定モジュール107により実行される処理手順の一例を示すフローチャートである。以下の処理は、エントリー制御アプリ103が、自身のエントリー制御の動作を行なう状況にあるか否かを判断するために行なわれる。エントリー制御アプリ103は、入力信号判定モジュール107に、自身の動作状況判定に関するリンク情報59を指示する情報を与える。
【0070】
入力信号判定モジュール107は、与えられた情報からリンク情報59を特定してROM52から読み出し(ステップS1)、リンク情報59に基づき、判定に必要な入力信号を抽出して読み込む(ステップS2)。
【0071】
次に入力信号判定モジュール107は、抽出した入力信号に対する判定テーブル58,58,…を読み出す(ステップS3)。入力信号判定モジュール107は、リンク情報59に基づき、抽出した入力信号の内、最初に判定対象とすべき入力信号について、入力信号の信号レベルの状態が判定テーブル58のいずれの判定条件に一致するかを判断する(ステップS4)。
【0072】
入力信号判定モジュール107は、ステップS4にて、入力信号が「OFF」から「ON」へ変化したという判定条件に一致すると判断した場合(S4:OFF→ON)、リンク情報59から当該条件に一致する場合の次の判定テーブル58のアドレスを取得する(ステップS5)。そして入力信号判定モジュール107は、取得したアドレスは「NUL
L」か否かを判断する(ステップS6)。
【0073】
入力信号判定モジュール107は、ステップS6にて取得したアドレスが「NULL」でないと判断した場合(S6:NO)、次の入力信号及びその判定テーブル57に基づく判定を行なうべく、処理をステップS2へ戻す。
【0074】
入力信号判定モジュール107は、ステップS6にて取得したアドレスが「NULL」であると判断した場合(S6:YES)、次に判定すべき入力信号はないので、ステップS4における判断結果に対応する条件成立/不成立の判定結果を、リンク情報59から読み出して戻り値として、入力信号判定モジュール107の呼び出し元のアプリへ返し(ステップS7)、処理を終了する。
【0075】
入力信号判定モジュール107は、ステップS4における他の判定条件、即ち入力信号が「ON」から「ON」のままという判定条件に一致すると判断した場合(S4:ON→ON)、「ON」から「OFF」へ変化したという判定条件に一致すると判断した場合(S4:ON→OFF)、又は、「OFF」から「OFF」のままという判定条件に一致すると判断した場合(S4:OFF→OFF)、いずれの場合も次の判定テーブル58のアドレスを取得し(S8、S11、S14)、アドレスが「NULL」か否かを判断し(S9、S12、S15)、アドレスが「NULL」でない場合は(S9、S12、S15:NO)、処理をステップS2へ戻し、アドレスが「NULL」である場合は(S9、S12、S15:YES)、ステップS4における判断結果に対応する判定結果をアプリへ戻り値として返し(S10、S13、S16)、処理を終了する。
【0076】
図6のフローチャートに示したように、入力信号判定モジュール107では、各入力信号の状態に対する判定を、与えられる入力信号と当該入力信号に対す判定テーブル58とを用いて、同じプログラムコード内で繰り返し処理できる構成により(S4〜S15)、各入力信号に対する処理を夫々プログラムコードとして実装せずともよい点で効果的である。
【0077】
図7は、実施の形態1における入力信号判定モジュール107による判定処理の過程を概念的に示す説明図である。図7には、エントリー制御アプリ103から、判定処理を要求された場合に図6に示したように入力信号判定モジュール107が処理を行なったときに、図5に示したリンク情報59に基づいて読み出される判定テーブル58が示されている。
【0078】
図7に示すように、入力信号判定モジュール107は、エントリー制御アプリ103から、判定処理を要求された場合に、まずエントリー制御に関するリンク情報59を読み出す(S1)。入力信号判定モジュール107は最初に、IGキーセンサ4からの入力信号を読み込んで(S2)、当該入力信号に対する判定を行なう。入力信号判定モジュール107は、IGキーセンサ4からの入力信号に対応する判定テーブル58を読み出し(S3)、判定テーブル58に含まれているいずれの条件に一致するかを判断する(S4)。
【0079】
入力信号判定モジュール107は、IGキーセンサ4からの入力信号が「ON」状態である場合、「ON」から「ON」のままでも、「OFF」から変化したときでも、次の判定テーブル58のアドレスは「NULL」であるから、判定結果としてIGキーセンサ4からの入力信号の「ON」状態であることに対する判定結果の「条件不成立」を戻り値として返す(S10)。
【0080】
エントリー制御のルームランプ1の点灯制御では、車外からユーザが車両に乗ろうとしてドアロックを開錠した場合に行なう。キー位置がIG1の位置にある場合では、既にユ
ーザがドアロックを開錠してドアを開けて、エンジンをかけた状況であるから、当該エントリー制御を行なうべきでないからである。
【0081】
エントリー制御アプリ103は、入力信号判定モジュール107から「条件不成立」の判定結果を返された場合、自身の処理により制御対象に動作を要求する状況を示す条件が「条件不成立」であると認識し、動作要求は行なわない。
【0082】
入力信号判定モジュール107は、IGキーセンサ4からの入力信号が「OFF」状態である場合、「ON」から「OFF」変化したときでも、「OFF」から「OFF」のままでも、次のテーブル58のアドレスは、カーテシセンサ2,2からの入力信号に対する判定テーブル58のアドレスである。したがって入力信号判定モジュール107は、カーテシセンサ2,2からの入力信号を読み込み(S2)、判定テーブル58におけるいずれの条件に一致するかを判断する(S3、S4)。この場合も、カーテシセンサ2,2からの入力信号がいずれか一方のみでも「ON」状態である場合は、次の判定テーブル58のアドレスは「NULL」であるから判定処理は終了され、「条件不成立」の判定結果が返される(S10)。
【0083】
カーテシセンサ2,2からの入力信号が「OFF」状態である場合には、次の判定テーブル58としてドアロックセンサ3,3からの入力信号に対する判定テーブル58のアドレスがリンク情報59から読み出せる。したがって入力信号判定モジュール107は次に、ドアロックセンサ3,3からの入力信号を読み込み(S2)、判定処理を行なう。
【0084】
入力信号判定モジュール107は、ドアロックセンサ3,3からの入力信号がいずれの判定条件に一致したとしても、次の判定テーブル58のアドレスとして「NULL」を取得する(S5,S8,S11,S14)。したがって、アドレスは「NULL」であるから(S6,9,12,15:YES)、入力信号判定モジュール107は、ドアロック3,3からの入力信号が一致する判定条件に対応する判定結果を戻り値として返し(S7,S10,S13,S16)、処理終了する。このとき、図5のリンク情報59の内容例では、ドアロックセンサ3,3からの入力信号の状態が「LOCK」から「UNLOCK」へ変化したという条件に一致する場合のみ、判定結果として「条件成立」が返される。
【0085】
つまり、入力信号モジュール107は、図5に示すようなリンク情報59に基づき、エントリー制御に対する判定処理を行なう場合、IGキーセンサ4からの入力信号が「OFF」であって、カーテシセンサ2,2からの入力信号も「OFF」であって、更にドアロックセンサ3,3からの入力信号が「LOCK」から「UNLOCK」へ変化したときのみ「条件成立」となり、エントリー制御アプリ103によりエントリー制御が実行される。
【0086】
このように、リンク情報59に入力信号を読み込む順序、及び当該入力信号に対する判定結果に応じた次の入力信号の関係がリンク形式で示されていることにより、入力信号判定モジュール107は、エントリー制御アプリ103から、ルームランプ1のエントリー制御に対する入力信号判定の要求がされるのみで、判定処理を行なうことができる。
【0087】
なお、リンク情報59を用いて、最初に1つでも条件不成立となるような判定条件に入力信号の状態が一致した場合に処理が終了できる構成としたことにより、他の入力信号に対する判定処理をその後行なわずともよく、処理が迅速化される点で効果的である。
【0088】
図8は、CPU51が入力信号判定モジュール107として機能する際の処理の具体例を概念的に示す説明図である。図8には、CPU51が入力信号判定モジュール107として機能している際にRAM53を占有する各種情報をブロックにて示している。
【0089】
図8中の上段に示すように、RAM53にはボディECU5の制御対象である負荷、例えばヘッドライト、ルームランプ1についての動作状態と、各負荷に関して起動中の機能と、当該機能に対応する入力信号に対する判定結果とが記憶されている。同一の制御対象であっても対応する機能に応じて夫々動作状態、判定結果が記憶されている。例えば、エントリー制御の機能に対しては、当該機能を発揮するため動作要求を出力する条件が成立しているが、ドアロック減光制御の機能に対しては条件が成立していないなどの状態は勿論ありえるからである。動作状態の内容は、停止中、オン(点灯)、オフ(消灯)などのいずれかである。なお、斜線にて示す動作状態及び判定結果は、選択部105、出力ドライバ部106及び入力信号判定モジュール107などの処理により随時書き換えられる。
【0090】
図8中の下段には、判定テーブル及びリンク情報の内容が示されている。図8に示すRAM53に記憶されている判定テーブル及びリンク情報は、CPU51によってROM52から一時的に読み出された判定テーブル58,58,…及びリンク情報59の一部である。
【0091】
図8中の中段には、入力信号判定モジュール107のプログラムコードがロードされていることが示されている。このとき、1つのプログラムコードとしてロードされる入力信号判定モジュール107により、種々の機能にて複数の負荷夫々に対する動作を要求する状況にあるか否かの判定結果が行なわれることに注目すべきである。入力信号判定モジュール107は、エントリー制御アプリ103から、入力信号に対する判定処理を行なうべく呼び出された場合、エントリー制御に係るリンク情報59をRAM53に読み出し、各入力信号に対する判定テーブルを読み出し、判定処理を行って判定結果をエントリー制御に対応する記憶領域に書き込む。他の各アプリに呼び出された場合であっても、1つの入力信号判定モジュール107にて各アプリに対応する記憶領域にて記憶されている固有の情報を書き換えるなどして、共通のコードで固有の動作を行なう。
【0092】
このように、エントリー制御アプリ103に対応する入力信号判定処理も、ドアロック減光制御アプリ104に対応する入力信号判定処理も、共通して入力信号判定モジュール107が処理を行なう。これにより、各アプリで夫々入力信号判定のプログラムコードを実装する必要が無く、実行中に重複する内容が多いプログラムコードが多数RAM52にロードされてメモリを占有することが無い。
【0093】
1つのプログラムコードで、各アプリからの動作要求毎に順に実行することにより、オブジェクト指向型の概念において1つの共通する入力信号判定処理を持つクラスを各機能毎、入力信号毎に夫々実体化するようにクラスが持つ共通処理を固有パラメータに対して実行する構成を、メモリ容量に制限がある組み込み系のコンピュータプログラムでも実現することができる。
【0094】
処理の実行中にRAM53にてプログラムコードが占有する容量が少なくて済み、また、動的に容量が確保されることもなく煩雑なメモリ管理も要しないので、簡易な構成のマイコンに基づくECUにおける処理に適している。
【0095】
RAM53の記憶容量を節約できるのでボディECU5の内部構成を簡素化させることができる。更に、ボディECU5にて実現したい機能毎に、入力信号に対する判定処理を実行させるプログラムを実装せずとも、共有化された入力信号判定モジュール107の機能を共有化する。したがって、入力信号判定モジュール107とのインタフェースを考慮すれば、アプリケーションプログラム55,55,…では、入力信号判定処理以外の開発のみで済み、開発効率を向上させることができる。
【0096】
実施の形態1では、判定テーブル58,58,…は入力信号毎に別個のテーブルとして構成した。しかしながら、入力信号毎に判定条件を示す1個のテーブルとして構成されてもよい。この場合、リンク情報59に示されている次の判定テーブル58のアドレスは、次の入力信号の判定条件の項目の箇所を示すアドレスとなる。当該構成でも、リンク情報59の利用方法は同じであり、各機能の固有の情報を1つの入力信号判定モジュール107で用いて個々の入力信号に対する判定処理を実行することができる。
【0097】
(実施の形態2)
実施の形態1では、入力信号判定モジュール107は、図5に示したリンク情報59に基づいて、判定対象の入力信号を順に読み出し、夫々に対する判定テーブル58,58,…における判定条件により判定を行なって最終的な判定結果を得る構成とした。これに対し、実施の形態2では、判定テーブル58,58,…は機能毎に、判定対象となる入力信号と、各機能のために動作を要求する条件となる該入力信号に対するマスク情報及び信号状態との対応を記憶したものである。判定対象の入力信号を読み込む順序をも参照できるリンク情報59を用いない。
【0098】
以下に示す実施の形態2の車載制御システムは、リンク情報59がROM52に記憶されていないこと、判定テーブル58,58,…の内容、及び入力信号判定モジュール107の判定処理の詳細が異なる。リンク情報59が記憶されていない以外は、ハードウェア的な構成は実施の形態1における車載制御システムと同様であるので、図示及び詳細な説明を省略する。共通する構成部については同一の符号を用いて説明する。
【0099】
図9は、実施の形態2におけるROM52に記憶されている判定テーブル58,58,…の基本構成を示す説明図である。判定テーブル58,58,…では、機能毎に、当該機能に対応する負荷に、前記機能に対応する動作を要求する状況であるか否かを判断するための入力信号と、夫々の入力信号の状態を判断するためのマスク情報及び入力信号が充たすべき信号状態が判定条件として記憶されている。図9に示す例では、入力信号判定モジュール107は、ある機能に対応するアプリから呼び出された場合、入力信号A、入力信号B及び入力信号C夫々について、各々マスク情報に基づき信号をマスクして信号を読み取ったときに信号状態という判定条件が成立しているか否かを判定し、判定結果を返す。
【0100】
なお判定テーブル58,58,…は、機能毎のみならず、制御対象の負荷毎に、当該負荷に関する機能毎の判定テーブルを含む構成としてもよい。図10は、実施の形態2における判定テーブル58,58,…の内容例を示す説明図である。図10に示す例では、ルームランプ1を制御対象とする各機能について、マスク情報と信号状態の判定条件が含まれている。
【0101】
ドアが開いている間はルームランプ1を点灯させる機能にて、ルームランプ1へ点灯を要求するのは、カーテシセンサ2,2からの入力信号をレベル判定するようにマスクして読み取ったときに信号状態が「ON」であるという条件が成立したときであることが示されている。マスク情報が「レベル」であるから、信号状態が「OFF」から「ON」へ変化した場合であっても「ON」から「ON」のままであってもよい。当該判定テーブル58に基づき、入力信号判定モジュール107は、ドアが開いている間はルームランプ1を点灯させる機能のアプリから呼び出された場合、カーテシセンサ2,2からの入力信号に対する判定処理のみ行なえばよい。なお当該判定処理に、IGキー4からの入力信号及びドアロックセンサ3,3からの入力信号は無効であることが「−」で示されている。
【0102】
図10に示す他の例は、ドアが閉じた場合にルームランプ1を消灯させる機能にて、ルームランプ1への点灯要求を停止するのは、カーテシセンサ2,2からの入力信号をエッジ判定するようにマスクして読み取ったときに信号状態が「ON」から「OFF」へ変化
したという条件が成立したときであることが示されている。マスク情報が「エッジ」であるから、信号状態が変化した場合のみ条件が成立する。この場合も、カーテシセンサ2,2からの入力信号のみ判定処理を行なえばよい。
【0103】
また他の例は、エントリー制御アプリ103の機能、即ち、車外からユーザが車両に乗るためにドアロックが開錠されたときにルームランプ1を点灯させる機能にて、ルームランプ1へ点灯を要求するのは、以下の入力信号及び各入力信号に対する判定条件がいずれも成立したときである。つまり、IGキーセンサ4からの入力信号をレベル判定するようにマスクして読み取ったときに信号状態が「OFF」状態であるという条件が成立し、カーテシセンサ2,2からの入力信号をレベル判定するようにマスクして読み取ったときに「OFF」状態であるという条件が成立し、且つ、ドアロックセンサ3,3からの入力信号をエッジ判定するようにマスクして読み取ったときに信号状態が「LOCK」から「UNLOCK」へ変化したという条件が成立したときのみである。
【0104】
このような判定テーブル58を用いた入力信号判定モジュール107による判定処理について説明する。図11は、実施の形態2における入力信号判定モジュール107により実行される処理手順の一例を示すフローチャートである。以下の処理は、エントリー制御アプリ103が、自身のエントリー制御の動作を行なう状況にあるか否かを判断するために行なわれる。エントリー制御アプリ103は、入力信号判定モジュール107に、制御対象に対応する判定テーブル58を指示する情報を与える。
【0105】
入力信号判定モジュール107は、与えられた判定テーブル58を読み出し(ステップS21)、自身の呼び出し元の機能を特定して機能に対応する判定テーブル58からマスク情報及び判定条件を読み出し(ステップS22)、読み出したマスク情報に基づき各入力信号にマスク処理を行なう(ステップS23)。具体的には、複数の入力信号に対し判定対象以外の信号をマスクし、レベル判定対象の入力信号にはレベルのみとなるようにマスクする。
【0106】
詳細には、入力信号判定モジュール107は、エントリー制御についての判定対象であるIGキーセンサ4からの入力信号、カーテシセンサ2,2からの入力信号、及びドアロックセンサ3,3からの入力信号を含む複数の入力信号の情報を取得する。各入力信号はエッジ型で各々1バイトで表わされ、最下位2ビットで変化が表わされる。例えば入力信号がONからOFFとなった場合には入力信号は0x02で、OFFからONとなった場合には0x01で表わされる。ONのままの場合は0x03で表わされる。マスク情報も夫々1バイトで表わされ、レベル判定のみの場合は0x01、エッジ判定の場合は0x03である。条件が成立するための信号状態も1バイトで表わされ、ONからOFFは0x02、ONであることは0x01で表わされる。入力信号判定モジュール107は、これらの各入力信号に対してマスク情報とのANDを取ることでマスク処理を行なう。例えば、入力信号が0x02である場合にレベル判定のマスク情報に基づいてマスクした結果は0x00となるし、エッジ判定のマスク情報に基づいてマスクした結果は0x02である。なお、入力信号判定モジュール107は、これらの1バイトずつの入力信号の情報、マスク情報及び信号状態を夫々、例えば4バイトの情報としてまとめ、一括した演算を可能とする。例えば入力信号の情報は0x03000200、マスク情報は0x01010300である場合、マスク処理により0x01000200が得られ、まとめられた判定対象の信号状態0x00000200と一致するかが後述のステップS24のように判定される。
【0107】
次に入力信号判定モジュール107は、マスク処理を行なって得られた信号がステップS22にて読み出した判定条件の信号状態に一致するか否かにより複数の入力信号に対する判定条件の成否を一括して判定する(ステップS24)。入力信号判定モジュール10
7は、ステップS24にて条件が成立すると判定した場合(S24:YES)、条件成立という判定結果を戻り値として返し(ステップS25)、処理を終了する。
【0108】
入力信号判定モジュール107は、ステップS24にて条件が不成立であると判定した場合(S24:NO)、全入力信号について条件の成否を判定したかを判断する(ステップS26)。一括して判定される入力信号は上述の例では4つであるから、他にある場合には再度判定が必要である。入力信号判定モジュール107は、全入力信号について条件の成否を判定したと判断した場合(S26:YES)、条件不成立という判定結果を戻り値として返し(ステップS27)、処理を終了する。
【0109】
入力信号判定モジュール107は、全入力信号について条件の成否を判定していないと判断した場合(S26:NO)、処理をステップS22へ戻し、次の判定対象のマスク情報及び判定条件の信号状態を読み出して処理を継続する。
【0110】
図11に示した処理手順を実行する入力信号判定モジュール107の処理によっても、エントリー制御アプリ103から呼び出された場合、図7に示したような過程を経て、ルームランプ1へ点灯を要求する状況であるか否かを判断できる。実施の形態2における構成では、入力信号判定モジュール107が判定対象の入力信号に対して順に判定がされることなしに、一括して信号状態に対する判定が行なわれる点が、実施の形態1と異なる。
【0111】
実施の形態2では、複数の入力信号が判定対象として抽出された場合に一括して判定されるので処理が迅速化される。
【0112】
実施の形態2でも、入力信号判定モジュール107が、複数の各アプリに対して共有化されることは実施の形態1と同様である。つまり、エントリー制御アプリ103に対応する入力信号判定処理も、ドアロック減光制御アプリ104に対応する入力信号判定処理も、共通して入力信号判定モジュール107が処理を行なう。判定処理の詳細が異なるのみである。これにより、各アプリで夫々入力信号判定のプログラムコードを実装する必要が無く、実行中に重複する内容が多いプログラムコードが多数RAM52にロードされてメモリを占有することが無い。開発効率を向上させることができる点も、実施の形態1と同様である。
【0113】
なお、開示された実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0114】
1 ルームランプ(制御対象)
2 カーテシセンサ
3 ドアロックセンサ
4 IGキーセンサ
5 ボディECU(制御装置)
50 マイコン(マイクロコンピュータ)
72 ROM(記憶手段)
55 アプリケーションプログラム
56 アプリケーションドライバプログラム
57 入力信号判定モジュールプログラム(コンピュータプログラム)
58 動作パターンテーブル
59 リンク情報(分岐条件情報)
103 エントリー制御アプリ(アプリケーション)
104 ドアロック減光制御アプリ(アプリケーション)
107 入力信号判定モジュール(判定手段)
【特許請求の範囲】
【請求項1】
複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを備え、該マイクロコンピュータが複数のアプリケーションプログラムに基づく処理を行ない、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力して前記制御対象の動作を制御するようにしてある制御装置において、
入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段と、
複数の入力信号から、アプリケーションプログラムの機能毎に1又は複数の入力信号を抽出する抽出手段と、
機能毎に抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を、前記判定手段に与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断する判断手段と
を備えることを特徴とする制御装置。
【請求項2】
機能毎に、前記判定手段へ与える入力信号及び判定条件、並びに、前記判定手段へ入力信号及び判定条件を与えた場合の判定結果に応じて次に与えるべき入力信号及び判定条件を示す分岐条件情報を記憶する手段を備え、
前記判断手段は、前記分岐条件情報に基づき、各判定結果に応じて次の入力信号及び判定条件を選択して与えるようにしてあること
を特徴とする請求項1に記載の制御装置。
【請求項3】
入力信号毎に判定条件を示すテーブルを備え、
前記分岐条件情報は、次に与えるべき入力信号の判定条件の参照箇所を示すアドレスを含むこと
を特徴とする請求項2に記載の制御装置。
【請求項4】
前記判断手段は、前記分岐条件情報に基づいて入力信号及び判定条件を前記判定手段へ順次与えた場合の最後の判定結果が成立である場合、動作要求を出力する状況であると判断するようにしてあること
を特徴とする請求項2又は3に記載の制御装置。
【請求項5】
各機能に対応する入力信号、及び該入力信号への判定条件を示すテーブルを機能毎に備え、
前記抽出手段は、前記テーブルに基づいて入力信号を抽出するようにしてあること
を特徴とする請求項1に記載の制御装置。
【請求項6】
複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを用い、該マイクロコンピュータに複数のアプリケーションプログラムに基づく処理を行なわせると共に、前記マイクロコンピュータは、前記複数のアプリケーションプログラムと異なるコンピュータプログラムに基づき、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段として機能し、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象の動作を制御する方法であって、
前記マイクロコンピュータは、
前記アプリケーションプログラムに基づく処理により、
機能毎に、該機能に関する入力信号を1又は複数抽出し、
抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を前記判定手段へ順次与え、
前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断し、
出力する状況であると判断した場合に動作要求を出力させる
ことを特徴とする制御方法。
【請求項7】
複数の制御対象又は複数のセンサが接続され、前記制御対象の状態情報又は前記センサからの検知情報を示す信号の入力を受け付けるコンピュータに、複数のアプリケーションプログラムに基づき、入力信号から判断される状況に応じて複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象を動作させる処理を実行させる際に、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定させる判定手段として機能させるコンピュータプログラムであって、
コンピュータを、
アプリケーションプログラムの機能毎に抽出された1又は複数の入力情報、及び該入力情報に対応する判定条件、前記判定手段へ与える手段、及び、
1又は複数の入力情報を与えて前記判定手段により得られた各判定結果により、動作要求を出力する状況であるか否かを判断する手段
として機能させることを特徴とするコンピュータプログラム。
【請求項1】
複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを備え、該マイクロコンピュータが複数のアプリケーションプログラムに基づく処理を行ない、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力して前記制御対象の動作を制御するようにしてある制御装置において、
入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段と、
複数の入力信号から、アプリケーションプログラムの機能毎に1又は複数の入力信号を抽出する抽出手段と、
機能毎に抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を、前記判定手段に与え、前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断する判断手段と
を備えることを特徴とする制御装置。
【請求項2】
機能毎に、前記判定手段へ与える入力信号及び判定条件、並びに、前記判定手段へ入力信号及び判定条件を与えた場合の判定結果に応じて次に与えるべき入力信号及び判定条件を示す分岐条件情報を記憶する手段を備え、
前記判断手段は、前記分岐条件情報に基づき、各判定結果に応じて次の入力信号及び判定条件を選択して与えるようにしてあること
を特徴とする請求項1に記載の制御装置。
【請求項3】
入力信号毎に判定条件を示すテーブルを備え、
前記分岐条件情報は、次に与えるべき入力信号の判定条件の参照箇所を示すアドレスを含むこと
を特徴とする請求項2に記載の制御装置。
【請求項4】
前記判断手段は、前記分岐条件情報に基づいて入力信号及び判定条件を前記判定手段へ順次与えた場合の最後の判定結果が成立である場合、動作要求を出力する状況であると判断するようにしてあること
を特徴とする請求項2又は3に記載の制御装置。
【請求項5】
各機能に対応する入力信号、及び該入力信号への判定条件を示すテーブルを機能毎に備え、
前記抽出手段は、前記テーブルに基づいて入力信号を抽出するようにしてあること
を特徴とする請求項1に記載の制御装置。
【請求項6】
複数の制御対象の状態情報又は複数のセンサからの検知情報を示す信号の入力を受け付けるマイクロコンピュータを用い、該マイクロコンピュータに複数のアプリケーションプログラムに基づく処理を行なわせると共に、前記マイクロコンピュータは、前記複数のアプリケーションプログラムと異なるコンピュータプログラムに基づき、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定する判定手段として機能し、入力信号から判断される状況に応じて、前記複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象の動作を制御する方法であって、
前記マイクロコンピュータは、
前記アプリケーションプログラムに基づく処理により、
機能毎に、該機能に関する入力信号を1又は複数抽出し、
抽出した1又は複数の入力信号、及び該入力信号に対応する判定条件を前記判定手段へ順次与え、
前記判定手段からの各判定結果に応じて、動作要求を出力する状況であるか否かを判断し、
出力する状況であると判断した場合に動作要求を出力させる
ことを特徴とする制御方法。
【請求項7】
複数の制御対象又は複数のセンサが接続され、前記制御対象の状態情報又は前記センサからの検知情報を示す信号の入力を受け付けるコンピュータに、複数のアプリケーションプログラムに基づき、入力信号から判断される状況に応じて複数の制御対象の内のいずれかへ動作要求を出力させて前記制御対象を動作させる処理を実行させる際に、入力信号及び該入力信号に対する判定条件が与えられた場合に、条件の成否を判定させる判定手段として機能させるコンピュータプログラムであって、
コンピュータを、
アプリケーションプログラムの機能毎に抽出された1又は複数の入力情報、及び該入力情報に対応する判定条件、前記判定手段へ与える手段、及び、
1又は複数の入力情報を与えて前記判定手段により得られた各判定結果により、動作要求を出力する状況であるか否かを判断する手段
として機能させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−224961(P2010−224961A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−72623(P2009−72623)
【出願日】平成21年3月24日(2009.3.24)
【出願人】(395011665)株式会社オートネットワーク技術研究所 (2,668)
【出願人】(000183406)住友電装株式会社 (6,135)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願日】平成21年3月24日(2009.3.24)
【出願人】(395011665)株式会社オートネットワーク技術研究所 (2,668)
【出願人】(000183406)住友電装株式会社 (6,135)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【Fターム(参考)】
[ Back to top ]