(57)【要約】【課題】秘匿プログラムを有する者が、その内容を確実に秘匿化することができる一方、制御装置の製造および動作確認を行う者が、秘匿プログラムが組み込まれる制御装置の動作確認を行うことができる制御装置およびそのプログラムをを提供する。【解決手段】ＥＣＵ１は、秘匿化すべき内容を有しかつエンジン２を制御するための秘匿プログラム２３を記憶可能な秘匿プログラム記憶手段１２と、秘匿プログラム２３が実行されるときの実行結果の適否の検査を行うための検査プログラム２４を記憶した検査プログラム記憶手段１２と、検査プログラム２４を実行することにより検査を行うプログラム実行手段１１とを備えている。また、エンジン制御プログラム２１は、内容が秘匿した状態で提供され、かつエンジン２を制御するための秘匿プログラム２３と、秘匿プログラム２３が実行されるときの実行結果の適否の検査を行うための検査プログラム２４とを備えている。【選択図】図２
2007239673.tif 000002
【特許請求の範囲】
【請求項１】
秘匿化すべき内容を有しかつ制御対象を制御するための秘匿プログラムを記憶可能な秘匿プログラム記憶手段と、
前記秘匿プログラムが実行されるときの実行結果の適否の検査を行うための検査プログラムを記憶した検査プログラム記憶手段と、
前記検査プログラムを実行することにより前記検査を行うプログラム実行手段と、
を備えていることを特徴とする制御装置。
【請求項２】
前記秘匿プログラムおよび前記検査プログラムは、ソースコードが互いに同一のプログラミング言語で記述されており、当該秘匿プログラムのソースコードがコンパイルされていることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記秘匿プログラム記憶手段には、前記秘匿プログラムが記憶され、
前記プログラム実行手段は、前記秘匿プログラムを実行可能に構成されており、
前記プログラム実行手段で実行されるプログラムを前記秘匿プログラムと前記検査プログラムの間で切り替える実行プログラム切替え手段を、さらに備えていることを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記検査プログラムは、前記検査を行うための検査データ、および当該検査データを用いて前記検査を行う検査プログラム本体を有し、
前記実行プログラム切替え手段は、前記検査プログラム本体で構成され、
当該検査プログラム本体は、前記プログラム実行手段で実行されるプログラムを前記秘匿プログラム側に切り替え可能に構成されていることを特徴とする請求項３に記載の制御装置。
【請求項５】
請求項１ないし４のいずれかに記載の制御装置は、前記制御対象を制御するＥＣＵであることを特徴とする制御装置。
【請求項６】
制御対象を制御するコンピュータを備えた制御装置に組み込まれ、当該コンピュータで実行される制御装置のプログラムであって、
内容を秘匿化した状態で提供され、かつ前記制御対象を制御するための秘匿プログラムと、
この秘匿プログラムが実行されるときの実行結果の適否の検査を行うための検査プログラムと、
を備えていることを特徴とする制御装置のプログラム。
【請求項７】
前記秘匿プログラムおよび前記検査プログラムは、ソースコードが互いに同一のプログラミング言語で記述されており、前記秘匿プログラムの提供前に、当該秘匿プログラムのソースコードがコンパイルされていることを特徴とする請求項６に記載の制御装置のプログラム。
【請求項８】
前記検査プログラムは、前記検査を行うための検査データ、および当該検査データを用いて前記検査を行う検査プログラム本体を有し、
当該検査プログラム本体は、前記コンピュータで実行されるプログラムを前記秘匿プログラム側に切り替え可能に構成されていることを特徴とする請求項６または７に記載の制御装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両に搭載されるエンジンやトランスミッションなどを制御する制御装置およびそのプログラムに関する。
【背景技術】
【０００２】
近年、自動車の製造技術分野では、開発コストや製造コストの削減の観点から、完成車メーカーと部品メーカーの分業化が進んでいる。完成車メーカーは、各種の部品の仕様を公開し、部品メーカーは、その仕様に基づき開発・製造した部品を完成車メーカーに納入する。そのような部品として、例えば、エンジンやトランスミッションなどを制御するＥＣＵがある。特許文献１に開示されているように、自動車制御用のＥＣＵには、制御対象であるエンジンやトランスミッションを制御するための各種のプログラム（制御を行う際に用いられるデータを含む）が組み込まれている。ＥＣＵを製造する部品メーカーは、製造したＥＣＵを、その動作確認を行った上で完成車メーカーに納品する。
【０００３】
また、部品メーカーが完成車メーカーの系列会社でない場合などには、部品メーカーが製造したＥＣＵを他の完成車メーカーに販売することがある。この場合、完成車メーカーが、独自に開発したプログラムを含むＥＣＵの仕様を部品メーカーに公開すると、その完成車メーカーにとって機密事項であるプログラムの内容が、競業する他の完成車メーカーに知られるおそれがある。そのため、仕様を公開する完成車メーカー側には、プログラムを秘匿化したいという要請がある。一方、部品メーカー側には、製造したＥＣＵが仕様に適合しかつ適正に動作することを保証する責務があり、そのため、完成車メーカーへの納品前に、ＥＣＵの動作確認を行う必要がある。しかし、完成車メーカー側がプログラムを秘匿化し、部品メーカー側にまったく公開しない場合には、その秘匿化されたプログラム（以下「秘匿プログラム」という）が実行されたときに、他のプログラムや制御対象にどのような影響を及ぼすかが不明である。例えば、秘匿プログラムが実行されたときに、どのようなデータを他のプログラムに受け渡したり、どのような値を制御対象側に出力したりするのかなどが不明である。そのため、部品メーカーは、秘匿プログラムに関するＥＣＵの動作確認を行えず、その結果、完成車メーカーに対してＥＣＵの動作保証ができないという問題がある。
【０００４】
本発明は、以上のような課題を解決するためになされたものであり、秘匿プログラムを有する者が、その内容を確実に秘匿化することができる一方、制御装置の製造および動作確認を行う者が、秘匿プログラムが組み込まれる制御装置の動作確認を行うことができる制御装置およびそのプログラムを提供することを目的とする。
【０００５】
【特許文献１】特開２００１−１９９２５８号公報
【発明の開示】
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、請求項１に係る発明は、秘匿化すべき内容を有しかつ制御対象（実施形態における（以下、本項において同じ）エンジン２）を制御するための秘匿プログラム２３を記憶可能な秘匿プログラム記憶手段（ＲＯＭ１２）と、秘匿プログラムが実行されるときの実行結果の適否の検査を行うための検査プログラム２４を記憶した検査プログラム記憶手段（ＲＯＭ１２）と、検査プログラムを実行することにより検査を行うプログラム実行手段（ＣＰＵ１１）と、を備えていることを特徴とする。
【０００７】
この構成によれば、秘匿プログラムが秘匿プログラム記憶手段に記憶可能であるとともに、検査プログラムは検査プログラム記憶手段に記憶されている。プログラム実行手段によって、検査プログラムを実行することにより、秘匿プログラムが実行されるときの実行結果の適否の検査を行う。つまり、秘匿プログラムを実行させなくても、あるいは秘匿プログラムが秘匿プログラム記憶手段に記憶されていなくても、すなわち秘匿プログラムが存在しなくても、検査プログラムを実行させることによって、秘匿プログラムの実行結果の適否を検査することができる。例えば、秘匿プログラムを提供する者（以下、本項において「プログラム提供者」という）が、その秘匿プログラムが組み込まれる制御装置を製造および動作確認する者（以下、本欄において「動作確認者」という）に検査プログラムを提供し、あるいはその内容を公開する一方、動作確認者は、検査プログラムを組み込んだ制御装置を製造し、その検査プログラムを実行する。これにより、動作確認者は、検査プログラムにより、秘匿プログラムが実行されるときの実行結果の適否について検査でき、それにより、制御装置の動作確認を行うことができる。また、上述したように、秘匿プログラムが存在しなくても、制御装置の動作確認が行えるので、プログラム提供者は、秘匿プログラムの内容を動作確認者に知られることなく、確実に秘匿化することができる。
【０００８】
請求項２に係る発明は、請求項１に記載の制御装置において、秘匿プログラムおよび検査プログラムは、ソースコードが互いに同一のプログラミング言語で記述されており、秘匿プログラムのソースコードがコンパイルされていることを特徴とする。
【０００９】
この構成によれば、秘匿プログラムおよび検査プログラムのソースコードが、互いに同一のプログラミング言語で記述されるので、互いに異なるプログラミング言語で両プログラムを記述する場合に比べて、両プログラムの作成を容易に行うことができる。また、秘匿プログラムのソースコードは、コンパイルされることによって、機械語に変換される。通常、機械語に変換されたプログラムは、人間が理解できないものであるので、秘匿プログラムが動作確認者に提供される場合でも、秘匿プログラムの内容が動作確認者に知られることはなく、その秘匿状態を保つことができる。
【００１０】
請求項３に係る発明は、請求項１または２に記載の制御装置において、秘匿プログラム記憶手段には、秘匿プログラムが記憶され、プログラム実行手段は、秘匿プログラムを実行可能に構成されており、プログラム実行手段で実行されるプログラムを秘匿プログラムと検査プログラムの間で切り替える実行プログラム切替え手段を、さらに備えていることを特徴とする。
【００１１】
この構成によれば、秘匿プログラムが秘匿プログラム記憶手段に記憶されており、プログラム実行手段で実行されるプログラムが、実行プログラム切替え手段によって、秘匿プログラムと検査プログラムの間で切り替えられる。したがって、検査プログラムを実行することにより、制御装置の動作確認を行える一方、その動作確認の終了後、実行されるプログラムを秘匿プログラム側に切り替えることによりそのまま、秘匿プログラムが実行可能な状態で組み込まれた制御装置を構成することができる。
【００１２】
請求項４に係る発明は、請求項３に記載の制御装置において、検査プログラムは、検査を行うための検査データα、β、γ、および検査データを用いて検査を行う検査プログラム本体２５を有し、実行プログラム切替え手段は、検査プログラム本体で構成され、検査プログラム本体は、プログラム実行手段で実行されるプログラムを秘匿プログラム側に切り替え可能に構成されていることを特徴とする。
【００１３】
この構成によれば、検査プログラムが、上記検査データおよび検査プログラム本体を有しており、検査プログラム本体の実行により、検査データを用いて、制御装置の動作確認を行うことができる。また、制御装置の動作確認の終了後、検査プログラムを書き換えることなどによって、実行されるプログラムを秘匿プログラム側に切り替えることにより、秘匿プログラムが実行可能な状態となる。すなわち、検査プログラム本体を、前記実行プログラム切替え手段として機能させることができる。
【００１４】
請求項５に係る発明は、請求項１ないし４のいずれかに記載の制御装置は、制御対象を制御するＥＣＵ１であることを特徴とする。
【００１５】
この構成によれば、秘匿プログラムの内容の秘匿化、秘匿プログラムが組み込まれる制御装置の動作確認、および実行されるプログラムの秘匿プログラムへの切替えを行えるなど、これまで述べた作用効果を、ＥＣＵについて得ることができる。
【００１６】
請求項６に係る発明は、制御対象（エンジン２）を制御するコンピュータ（マイクロコンピュータ３）を備えた制御装置（ＥＣＵ１）に組み込まれ、コンピュータで実行される制御装置のプログラム（エンジン制御プログラム２１）であって、内容を秘匿化した状態で提供され、かつ制御対象を制御するための秘匿プログラム２３と、この秘匿プログラムが実行されるときの実行結果の適否の検査を行うための検査プログラム２４と、を備えていることを特徴とする。
【００１７】
この構成によれば、前述した動作確認者が、検査プログラムを制御装置に組み込んだ状態で、その制御装置のコンピュータによって検査プログラムを実行することにより、秘匿プログラムを実行させたり、制御装置に組み込んだりしなくても、秘匿プログラムが実行されるときの実行結果の適否を検査することができる。また、前述したプログラム提供者が、検査プログラムに加えて、秘匿プログラムを動作確認者に提供する場合でも、その秘匿プログラムが内容を秘匿化した状態で提供されるので、その内容が動作確認者に知られることはない。したがって、上記構成によれば、前述した請求項１と同様の作用効果を実現する制御装置のプログラムを得ることができる。
【００１８】
請求項７に係る発明は、請求項６に記載の制御装置のプログラムにおいて、秘匿プログラムおよび検査プログラムは、ソースコードが互いに同一のプログラミング言語で記述されており、秘匿プログラムの提供前に、秘匿プログラムのソースコードがコンパイルされていることを特徴とする。
【００１９】
この構成によれば、前述した請求項２の作用効果と同様に、プログラム提供者は、秘匿プログラムおよび検査プログラムの作成を容易に行うことができ、また、秘匿プログラムの提供前に、秘匿プログラムのソースコードがコンパイルされているので、秘匿プログラムを動作確認者に提供しても、秘匿プログラムの内容を秘匿した状態に保つことができる。
【００２０】
請求項８に係る発明は、請求項６または７に記載の制御装置のプログラムにおいて、検査プログラムは、検査を行うための検査データα、β、γ、および検査データを用いて検査を行う検査プログラム本体２５を有し、検査プログラム本体は、コンピュータで実行されるプログラムを秘匿プログラム側に切り替え可能に構成されていることを特徴とする。
【００２１】
この構成によれば、前述した請求項４と同様の作用効果を実現する制御装置のプログラムを得ることができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図１は、本発明の一実施形態によるＥＣＵ（制御装置）を示すブロック図である。このＥＣＵ１は、車両に搭載されるエンジン２（制御対象）を、ＥＣＵ１に組み込まれた各種のプログラム（制御を行う際に用いられるデータを含む）に従って制御する。同図に示すように、ＥＣＵ１は、マイクロコンピュータ３と、入力および出力インターフェース４、５とを備えている。入力インターフェース４は、センサ６からの検出信号をＡ／Ｄ変換や整形することによって、マイクロコンピュータ３に入力する。また、出力インターフェース５は、マイクロコンピュータ３からの出力信号を増幅し、エンジン２の各種のアクチュエータ（図示せず）に供給することによって、それらを駆動する。
【００２３】
マイクロコンピュータ３は、ＣＰＵ１１（プログラム実行手段）、ＲＯＭ１２（秘匿プログラム記憶手段および検査プログラム記憶手段）、ＲＡＭ１３、ならびに入力および出力ポート１４、１５を備えており、これらが互いにバス１６を介して接続されている。ＣＰＵ１１は、ＲＯＭ１２に記憶されている各種のプログラムを実行する。具体的には、ＣＰＵ１１は、プログラムに従い、ＲＯＭ１２やＲＡＭ１３に記憶されているデータや、入力インターフェース４を介して入力されたデータを読み出して演算処理を行い、その結果をＲＡＭ１３に格納したり、出力ポート１５に出力したりする。そして、出力ポート１５から前記出力インターフェース５に出力された出力信号に基づいて、エンジン２が制御される。また、ＲＯＭ１２は、これに記憶されたプログラムやデータが書き換え可能なＥＰＲＯＭなどで構成されている。
【００２４】
上記ＥＣＵ１は、例えば完成車メーカーから公開された仕様に基づき、ＥＣＵを製造する部品メーカーによって製造および動作確認されるものである。また、このＥＣＵ１には、エンジン２の定常運転時における通常の制御モード（以下「通常制御」という）を行うためのプログラムや、完成車メーカー側が部品メーカー側に対して秘匿化すべき内容を有するプログラム（以下「秘匿プログラム」という）、例えば、運転中のエンジン２の負荷が変化する際の過渡制御やその制御マップ、吸気・排気の制御データなど、通常制御と異なる特殊な制御モード（以下「特殊制御」という）を行うためのプログラムなどが組み込まれる。
【００２５】
図２は、ＥＣＵ１のＲＯＭ１２に組み込まれ、エンジン２を制御するためのエンジン制御プログラムを、ブロック図で示している。同図に示すように、このエンジン制御プログラム２１は、エンジン２を通常制御するための通常制御プログラム２２と、エンジン２を特殊制御するための秘匿プログラム２３と、この秘匿プログラム２３についての後述する検査を行うための検査プログラム２４などを備えている。このエンジン制御プログラム２１を作成する際の完成車メーカーと部品メーカーの役割分担、および具体的な作成は以下のように行われる。
【００２６】
すなわち、完成車メーカーがＥＣＵ１の基本的な仕様を公開し、その仕様に基づき、部品メーカーは、ＥＣＵ１の基本的な制御を行うためのプログラム、具体的には、前記通常制御プログラム２２の他、エンジン回転数の計算、燃料噴射タイミングの計算、燃料噴射量の計算、噴射圧力の計算、および各種センサの検出値の制御値への変換などを行うためのプログラムを作成する。一方、完成車メーカーは、前記秘匿プログラム２３および検査プログラム２４を作成し、両プログラム２３、２４を部品メーカーに提供する。この場合、秘匿プログラム２３および検査プログラム２４は、それらのソースコードが互いに同一の所定のプログラム言語（例えばＣ言語）で記述される。両プログラム２３、２４のうち、少なくとも秘匿プログラム２３は、ソースコードがコンパイルされ、機械語であるオブジェクトコードに変換した状態で、部品メーカーに提供される。そして、部品メーカーは、自社で作成した前記プログラムのオブジェクトコードと、完成車メーカーから提供された秘匿プログラム２３および検査プログラム２４のオブジェクトコードとを、リンカーによって結合し、実行用プログラムとしてのエンジン制御プログラム２１を作成する。その後、部品メーカーは、このエンジン制御プログラム２１をＲＯＭ１２に組み込み、後述する検査を行うことによって、秘匿プログラム２３に関するＥＣＵ１の動作確認を行う。
【００２７】
図２に示すように、エンジン制御プログラム２１には、エンジン２の運転状態などに応じて実行されるプログラムを、通常制御プログラム２２と秘匿プログラム２３の間で切り替えるためのロジック（以下「スイッチＳＷ＿Ａ」という）が設けられている。このスイッチＳＷ＿ＡがＯＦＦ状態（図２に示す状態）のときには、通常制御プログラム２２の実行結果としての制御値が、スイッチＳＷ＿Ａを介して出力される。一方、スイッチＳＷ＿ＡがＯＮ状態（図４（ａ）および図５（ｂ）に示す状態）のときには、秘匿プログラム２３または検査プログラム２４の実行結果としての制御値が、スイッチＳＷ＿Ａを介して出力される。なお、このスイッチＳＷ＿Ａは、プログラムのソースコード上、ＩＦ文などで記述されている。そのＩＦ文の条件が真（後述するＯＮ（１））であるときには、実行されるプログラムが秘匿プログラム２３および検査プログラム２４側に切り替えられ、逆に、上記条件が偽（後述するＯＦＦ（０））であるときには、実行されるプログラムが通常制御プログラム２２側に切り替えられる。
【００２８】
秘匿プログラム２３は、その実行時に、スイッチＳＷ＿Ａに対し、その切り替えを行うための制御値（以下「切替え制御値」という）、および特殊制御を行うための制御値（以下「特殊制御値」という）を、検査プログラム２４を介して供給するように構成されている。
【００２９】
検査プログラム２４は、秘匿プログラム２３が実行されるときの実行結果の適否の検査、具体的には、秘匿プログラム２３の実行時に、上記切替え制御値および特殊制御値が、スイッチＳＷ＿Ａに適切に供給されるか否かを検査するものである。つまり、この検査プログラム２４は、秘匿プログラム２３がエンジン制御プログラム２１内のロジックや他のプログラムへのデータの受け渡しを適切に行えるか否かのインターフェースを検査することによって、秘匿プログラム２３がエンジン制御プログラム２１に適切に組み込まれているか否かを検査する。
【００３０】
図２に示すように、検査プログラム２４は、検査プログラム本体２５と、複数の検査データα、βおよびγなどで構成されている。検査プログラム本体２５には、秘匿プログラム２３からの切替え制御値と検査データβを切替え可能なロジック（以下「スイッチＳＷ＿Ｂ」という。実行プログラム切替え手段）、および秘匿プログラム２３からの特殊制御値と検査データαを切替え可能なロジック（以下「スイッチＳＷ＿Ｃ」という。実行プログラム切替え手段）が設けられている。なお、上記スイッチＳＷ＿ＢおよびＳＷ＿Ｃも、前記スイッチＳＷ＿Ａと同様に、プログラムのソースコード上、ＩＦ文などで記述されている。それらの両ＩＦ文の条件が真（後述するＯＮ（１））であるときには、実行されるプログラムが、検査データを用いて検査を行う検査プログラム本体２５側に切り替えられ、逆に、上記条件が偽（後述するＯＦＦ（０））であるときには、実行されるプログラムが、秘匿プログラム２３側に切り替えられる。
【００３１】
上記検査データαは、秘匿プログラム２３からの特殊制御値に対応していて、スイッチＳＷ＿Ｃに供給されるものであり、具体的には、特殊制御値の最大値（以下「ＭＡＸ値」という）や最小値（以下「ＭＩＮ値」という）などである。また、検査データβは、秘匿プログラム２３からの切替え制御値に対応していて、スイッチＳＷ＿Ｂに供給されるものであり、具体的には、前記スイッチＳＷ＿Ａを、秘匿プログラム２３側に切替えすべきことを表す値（例えば値１）、または通常制御プログラム２２側に切替えすべきことを表す値（例えば値０）である。さらに、検査データγは、スイッチＳＷ＿ＢおよびＳＷ＿Ｃを切り替えるために、これらに供給されるものであり、具体的には、両スイッチＳＷ＿ＢおよびＳＷ＿Ｃを、検査データ側に切替えすべきことを表す値（例えば値１）、または秘匿プログラム２３側に切替えすべきことを表す値（例えば値０）である。
【００３２】
また、検査データα、βおよびγは、検査プログラム本体２５から読み出し可能なデータ定義ファイル内に所定の値に設定される。このデータ定義ファイルは、コンパイルされずに、部品メーカー側に提供される。したがって、部品メーカー側では、検査データα、βおよびγを書き換え可能であり、それらを適宜、書き換えることによって、秘匿プログラム２３についての検査を行う。また、検査プログラム本体２５は、秘匿プログラム２３と同様、ソースコードがコンパイルされ、オブジェクトコードに変換した状態で、部品メーカー側に提供される。なお、この検査プログラム本体２５については、秘匿プログラム２３と共通の単一のファイル内にソースコードを記述してもよく、その場合には、そのファイルをコンパイルして得られたオブジェクトコードのファイルが、部品メーカー側に提供される。
【００３３】
次に、図３の一覧表および図４、５のブロック図を参照しながら、検査プログラム２４による秘匿プログラム２３の検査方法について説明する。図３（ａ）に示すように、まず、検査Ｎｏ１〜３では、検査データγを、値１に定義したＯＮ（図３および以下の説明では、適宜「ＯＮ（１）」と表示する）に設定することによって、検査プログラム本体２５のスイッチＳＷ＿ＢおよびＳＷ＿ＣがいずれもＯＮ状態となり、また、検査データβもＯＮ（１）に設定することによって、スイッチＳＷ＿ＡがＯＮ状態となる（図４（ａ）参照）。この状態において、検査Ｎｏ１〜３に順に示すように、検査データαをＭＡＸ値、ＭＩＮ値および値０に順に設定し、スイッチＳＷ＿Ａを介して出力される出力値をそれぞれ検査する。そして、それらの出力値が、検査データαの値と同じであれば、すなわち、検査データαがＭＡＸ値、ＭＩＮ値および値０にそれぞれ設定された場合に、出力値がそれぞれＭＡＸ値、ＭＩＮ値および値０であれば、秘匿プログラム２３の実行時において、秘匿プログラム２３からＯＮ（１）の切替え制御値がスイッチＳＷ＿Ａに供給されたときに、秘匿プログラム２３からの特殊制御値がスイッチＳＷ＿Ａに適切に供給されることが確認される。
【００３４】
また、検査Ｎｏ４では、上記検査Ｎｏ１〜３と同様に、検査データγをＯＮ（１）に設定することによって、スイッチＳＷ＿ＢおよびＳＷ＿ＣがいずれもＯＮ状態となる。一方、検査データβを、値０に定義したＯＦＦ（図３および以下の説明では、適宜「ＯＦＦ（０）」と表示する）に設定することにより、スイッチＳＷ＿ＡがＯＦＦ状態となる（図４（ｂ）参照）。この状態において、スイッチＳＷ＿Ａを介して出力される出力値が、通常制御プログラム２２からの通常制御値と同じであれば、秘匿プログラム２３の実行時において、秘匿プログラム２３からＯＦＦ（０）の切替え制御値がスイッチＳＷ＿Ａに供給されたときに、そのスイッチＳＷ＿ＡをＯＦＦ状態に適切に切り替えることが確認される。
【００３５】
以上の検査を行い、上述した検査結果が得られたときには、秘匿プログラム２３がエンジン制御プログラム２１に適切に組み込まれていることが確認される。なお、上記検査結果が得られない場合には、秘匿プログラム２３が適切に組み込まれていない可能性が高く、したがって、完成車メーカー側において、秘匿プログラム２３および検査プログラム２４のソースコードを修正することなどが必要となる。
【００３６】
また、図３（ｂ）および図５は、上記検査の終了後に、検査データγをＯＦＦ（０）に設定することで、スイッチＳＷ＿ＢおよびＳＷ＿ＣをいずれもＯＦＦ状態とすることにより、検査データ側から秘匿プログラム２３側に切り替えた状態を示している。図３（ｂ）のＮｏ５および図５（ａ）に示すように、秘匿プログラム２３からＯＦＦ（０）の切替え制御値が、スイッチＳＷ＿Ｂを介してスイッチＳＷ＿Ａに供給されたときには、スイッチＳＷ＿ＡがＯＦＦ状態となり、したがって、通常制御プログラム２２からの通常制御値がスイッチＳＷ＿Ａを介して出力される。一方、図３（ｂ）のＮｏ６および図５（ｂ）に示すように、秘匿プログラム２３からＯＮ（１）の切替え制御値が、スイッチＳＷ＿Ｂを介してスイッチＳＷ＿Ａに供給されたときには、スイッチＳＷ＿ＡがＯＮ状態となり、したがって、秘匿プログラム２３からの特殊制御値がスイッチＳＷ＿Ａを介して出力される。
【００３７】
以上説明したように、本実施形態によれば、完成車メーカーが作成した秘匿プログラム２３は、そのソースコードがコンパイルされ、オブジェクトコードに変換した状態で、部品メーカーに提供される。前述したように、オブジェクトコードは、人間が理解できないものであるので、部品メーカー側に提供された秘匿プログラム２３の内容を、部品メーカー側に知られることはなく、その秘匿状態を保つことができる。その一方で、部品メーカーは、検査プログラム２４を実行し、前述した検査を行うことにより、秘匿プログラム２３が適切に組み込まれているか否かについて、ＥＣＵ１の動作確認を行うことができる。また、検査の終了後、検査データγをＯＦＦ（０）に設定するだけで、検査データ側から秘匿プログラム２３側に切り替えることができ、それによりそのまま、秘匿プログラム２３が実行可能な状態で組み込まれたＥＣＵ１を構成することができる。
【００３８】
なお、本発明は、説明した上記実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、完成車メーカーが、オブジェクトコードに変換した秘匿プログラム２３を部品メーカーに提供したが、検査プログラム２４がＥＣＵ１に組み込まれていれば、部品メーカー側において秘匿プログラム２３についての前記検査を行うことは可能である。したがって、完成車メーカーは、秘匿プログラム２３を部品メーカーに提供せずに、部品メーカーからＥＣＵが納品された後で、秘匿プログラム２３をＥＣＵ１に組み込むようにしてもよい。この場合には、秘匿プログラム２３が部品メーカー側にまったく提供されないので、秘匿プログラム２３の内容を確実に秘匿化することができる。
【００３９】
また、実施形態では、本発明の実行プログラム切替え手段として、検査プログラム２４にスイッチＳＷ＿ＢおよびＳＷ＿Ｃを設けたが、検査プログラム２４と異なる他のプログラムなどによって、実行されるプログラムを、秘匿プログラム２３と検査プログラムの間で切り替えるようにすることも可能である。
【００４０】
さらに、実施形態は、本発明の制御装置を、車両に搭載されるエンジン制御用のＥＣＵに適用した例であるが、車両に搭載される他の機器（例えばトランスミッションなど）や、各種の産業機器などを制御する制御装置にも適用することが可能である。また、実施形態で示したＥＣＵ１およびエンジン制御プログラム２１の細部の構成などは、あくまで例示であり、本発明の趣旨の範囲内で適宜、変更することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態によるＥＣＵを示すブロック図である。
【図２】エンジン制御プログラムの構成を示すブロック図である。
【図３】（ａ）検査プログラムによる秘匿プログラムの検査を行う際の検査データおよび検査結果などを示す一覧表であり、（ｂ）検査終了後のスイッチおよび制御モードの状態などを示す一覧表である。
【図４】図２のエンジン制御プログラムにおいて、スイッチＳＷ＿Ａ、ＳＷ＿ＢおよびＳＷ＿Ｃの状態を説明するための図であり、（ａ）は上記スイッチがすべてＯＮ状態に切り替えられた状態、（ｂ）はスイッチＳＷ＿ＡのみがＯＦＦ状態に切り替えられた状態を示す。
【図５】図４と同様の図であり、（ａ）はスイッチがすべてＯＦＦ状態に切り替えられた状態、（ｂ）はスイッチＳＷ＿ＡのみがＯＮ状態に切り替えられた状態を示す。
【符号の説明】
【００４２】
１  ＥＣＵ（制御装置）
２  エンジン
３  マイクロコンピュータ（コンピュータ）
１１  ＣＰＵ（プログラム実行手段）
１２  ＲＯＭ（秘匿プログラム記憶手段および検査プログラム記憶手段）
２１  エンジン制御プログラム
２３  秘匿プログラム
２４  検査プログラム
２５  検査プログラム本体
ＳＷ＿Ｂ  スイッチ（実行プログラム切替え手段）
ＳＷ＿Ｃ  スイッチ（実行プログラム切替え手段）
【図１】
2007239673.tif 000003
【図２】
2007239673.tif 000004
【図３】
2007239673.tif 000005
【図４】
2007239673.tif 000006
【図５】
2007239673.tif 000007