(57)【要約】【課題】電源系の異なるＥＣＵを統合した際、統合された機能に統合前と同様に電源オンを反映させ正常動作を保証することができる電子制御装置を提供すること。【解決手段】  プログラムを記憶したプログラム記憶手段２３と、プログラムを実行するプログラム実行手段２１と、第１の電源で動作する複数の機能ブロック１４と、前記第１の電源のオンを検出してリセット信号を生成するリセット信号生成手段１３と、第２の電源のオンを検出して電源オン信号を生成する電源オン信号生成手段１２と、前記第１又は第２の電源の電源オン時にリセットするか否かを機能ブロック毎に指定するリセット指定情報が記憶された記憶手段１６と、前記リセット信号又は前記電源オン信号の生成時、前記リセット指定情報に応じて機能ブロック毎にリセットするか否かを制御するリセット制御手段と１５と、を有する電子制御装置１００を提供する。【選択図】図７
2012116237.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶したプログラム記憶手段と、
プログラムを実行するプログラム実行手段と、
第１の電源で動作する複数の機能ブロックと、
前記第１の電源のオンを検出してリセット信号を生成するリセット信号生成手段と、
第２の電源のオンを検出して電源オン信号を生成する電源オン信号生成手段と、
前記第１又は第２の電源の電源オン時にリセットするか否かを機能ブロック毎に指定するリセット指定情報が記憶された記憶手段と、
前記リセット信号又は前記電源オン信号の生成時、前記リセット指定情報に応じて機能ブロック毎にリセットするか否かを制御するリセット制御手段と、
を有する電子制御装置。
【請求項２】
前記リセット制御手段は、前記電源オン信号の生成時、前記リセット指定情報が前記第２の電源の電源オンに応じてリセットを指定する機能ブロックを、前記リセット信号の有無に関係なくリセットする、
請求項１記載の電子制御装置。
【請求項３】
前記リセット制御手段は、前記リセット指定情報が前記第２の電源の電源オンに応じてリセットを指定するか否かに加え、前記リセット指定情報が前記第１の電源の電源オンに応じてリセットを指定するか否かに基づき、機能ブロック毎にリセットするか否かを制御する、請求項１又は２記載の電子制御装置。
【請求項４】
前記リセット制御手段は、前記リセット信号の生成時、第１の機能ブロックをリセットし、
前記電源オン信号の生成時、前記リセット指定情報が前記第１の電源の電源オンに応じてリセットを指定するか否かに応じて、前記第１の機能ブロックをリセットするか否かを制御する、
請求項１記載の電子制御装置。
【請求項５】
前記リセット制御手段は、前記電源オン信号の生成時、前記リセット指定情報が前記第２の電源の電源オンに応じてリセットを指定するか否かに応じて、第２の機能ブロックをリセットするか否かを制御する、
請求項１又は４記載の電子制御装置。
【請求項６】
前記リセット信号生成手段は、前記リセット信号を１つ以上の機能ブロックに供給する、請求項１記載の電子制御装置。
【請求項７】
前記第１の電源はイグニッションスイッチのアクセサリー位置でオンする＋Ｂ電源又はアクセサリー位置でなくてもバッテリから供給される＋Ｂ電源であり、前記第２の電源はイグニッションスイッチがオンの位置でオンするＩＧ電源である、
請求項１〜６いずれか１項記載の電子制御装置。
【請求項８】
複数の機能ブロックは、それぞれＡ／Ｄ変換器及びタイマーである、請求項１〜７いずれか１項記載の電子制御装置。
【請求項９】
前記リセット制御手段はソフト的又はハード的に実装される、請求項１〜８いずれか１項記載の電子制御装置。
【請求項１０】
プログラムを記憶したプログラム記憶手段と、
プログラムを実行するプログラム実行手段と、
第１の電源で動作する複数の機能ブロックと、を有する電子制御装置の初期化方法であって、
リセット信号生成手段が、前記第１の電源のオンを検出してリセット信号を生成するステップと、
電源オン信号生成手段が、第２の電源のオンを検出して電源オン信号を生成するステップと、
前記リセット信号又は前記電源オン信号の生成時に、リセット制御手段、前記第１又は第２の電源の電源オン時にリセットするか否かを機能ブロック毎に指定するリセット指定情報にしたがって、リセットが指示されている機能ブロックをリセットするステップと、
を有する電子制御装置の初期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源のオンを契機にリセットされるＥＣＵに関し、特に、複数の異なる電源系統のＥＣＵが統合された電子制御装置に関する。
【背景技術】
【０００２】
多くの車載装置が電子制御ユニット（ＥＣＵ）により制御されるようになり、これらＥＣＵが車載ＬＡＮを介して相互にデータ通信することで、より高度な制御が可能となっている。しかし、多くのＥＣＵを開発することが多大なコスト増となってきた。このため、複数のＥＣＵが提供していた機能を１つのＥＣＵに機能統合する試みが行われるようになった（例えば、特許文献１参照。）。特許文献１には、複数の車載ＬＡＮを相互に接続するゲートウェイ機能と、特定処理を実現するアプリケーション機能とが１つに統合されたＥＣＵが開示されている。
【０００３】
ところで、ＥＣＵには＋Ｂ系とＩＧ系の大きく２つの電源系がある（アクセサリー系は＋Ｂ系に含める）。このため統合対象の複数のＥＣＵの電源系が異なる場合も生じ、統合前のＥＣＵのソフトウェアをそのまま移植すると不都合が生じることがある（例えば、特許文献２参照。）。特許文献２には、統合後の電源系を２つのどちらか（例えば、＋Ｂ系）に統一すると、タスクが実行されるべきではない電源状態で実行されることを防止するため、車両内の電源状態に対応させて起動するタスクを定めておき、条件を満たす場合には該当タスクを起動させ、条件を満たしていなければ該当タスクを終了させる統合ＥＣＵが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１６５８８４号公報
【特許文献２】特開２００９−２９２３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に記載された統合ＥＣＵでは、電源状態が条件を満たさない場合にすでに起動しているタスクがあれば終了させるだけなので、統合前のタスクの状態を統合後にも再現することが困難であるという問題がある。
【０００６】
このことを＋Ｂ系とＩＧ系のＥＣＵを統合した場合を想定して説明する。ＥＣＵでは電源オン時にＣＰＵやその周辺の機能ブロックを初期化する。例えばＩＧ系の単体ＥＣＵは動作状態からＩＧオフで電源が切れ、その後、ＩＧオンの際にハードリセットが発生する。しかし、統合ＥＣＵでは電源をどちらかに統一する必要があるので、例えば、電源オンの状態が長い（最後にオフになる電源に合わせて）＋Ｂ系に電源が統一された場合、統合前はＩＧ系の単体ＥＣＵに搭載されていた機能に不都合が生じる。
【０００７】
すなわち、＋Ｂ系に電源が統一されると、ＩＧオフでも統合ＥＣＵには＋Ｂ系から電源が供給されるので、電源が遮断されることがなく、再度、ＩＧオンされた場合にハードリセットが発生せず、単体時にはＩＧオンと共に毎回行われていた初期化が行われない。このため、ＩＧ系のソフトが不具合を起こすおそれがある。
【０００８】
この不都合を避けるため、機能の統合時に開発者がＩＧ系のソフトを修正して電源系の変更に対応させることもできるが、統合ＥＣＵのコスト増となってしまい、機能統合によるコスト低減効果が低下してしまう。また、ソフトの修正により生じる検証、管理のためのコスト増も懸念される。
【０００９】
本発明は、上記課題に鑑み、電源系の異なるＥＣＵを統合した際、統合された機能に統合前と同様に電源オンを反映させ正常動作を保証することができる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題に鑑み、本発明は、プログラムを記憶したプログラム記憶手段と、プログラムを実行するプログラム実行手段と、第１の電源で動作する複数の機能ブロックと、前記第１の電源のオンを検出してリセット信号を生成するリセット信号生成手段と、第２の電源のオンを検出して電源オン信号を生成する電源オン信号生成手段と、前記第１又は第２の電源の電源オン時にリセットするか否かを機能ブロック毎に指定するリセット指定情報が記憶された記憶手段と、前記リセット信号又は前記電源オン信号の生成時、前記リセット指定情報に応じて機能ブロック毎にリセットするか否かを制御するリセット制御手段と、を有する電子制御装置を提供する。
【発明の効果】
【００１１】
電源系の異なるＥＣＵを統合した際、統合された機能に統合前と同様に電源オンを反映させ正常動作を保証することができる電子制御装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】＋Ｂ系のＥＣＵのハードリセットについて説明する図の一例である。
【図２】ハードリセットのシーケンス図の一例である。
【図３】ＩＧ系のＥＣＵのハードリセットについて説明する図の一例である。
【図４】ハードリセットのシーケンス図の一例である。
【図５】統合ＥＣＵを模式的に示す図の一例である。
【図６】統合マイコンＡＢのハードリセットのシーケンス図の一例である。
【図７】統合ＥＣＵの機能ブロック図の一例である（実施例１）。
【図８】電源毎リセット発生回路の構成図の一例である（実施例２）。
【図９】統合マイコンのハードリセットを説明する図の一例である。
【図１０】統合ＥＣＵの機能ブロック図の一例である（実施例２）。
【図１１】コンフィギュレーション・リセット・ディストリビュータの構成図の一例である。
【図１２】統合マイコンのハードリセットを説明する図の一例である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【００１４】
〔単体のＥＣＵ〕
本実施形態の統合ＥＣＵ（electronic  control  unit）と対比して説明するため、まず単体のＥＣＵの電源オン時のハードリセットについて説明する。
【００１５】
図１は、＋Ｂ系のＥＣＵのハードリセットについて説明する図の一例を、図２はハードリセットのシーケンス図の一例をそれぞれ示す。＋Ｂ系の単体ＥＣＵ２００には例えばボディＥＣＵがある。
【００１６】
単体ＥＣＵ２００は電源回路１１、入力回路１２、及び、＋B系マイコンA２０１を有し、バッテリ５０と電源回路１１及び入力回路１２が接続されている。電源回路１１は、バッテリ（例えば１２Ｖ）５０から供給される電流・電圧を昇降圧するなどして安定化して＋B系マイコンA２０１に供給する（以下、電源回路１１が供給する電源をバッテリ電源＋Bという）。バッテリ５０から電力が供給されるのは、例えば、イグニッションスイッチがアクセサリー位置の場合であるが、防犯機能など駐車中であれば常に（バッテリが搭載されている限り）バッテリ５０から電力が供給されるＥＣＵもある。
【００１７】
入力回路１２は、バッテリ５０から電流・電圧が供給される状態（以下、この状態になることをバッテリ・オンという）の場合にバッテリイネーブル信号を生成し＋B系マイコンA２０１に供給する。バッテリイネーブル信号はバッテリ・オンで動作する機器にバッテリ・オンを通知する信号である。
【００１８】
＋B系マイコンA２０１はバッテリ電源＋Bが供給されコア等が作動するが、まず、起動リセット発生回路１３はバッテリ・オンを検出すると、リセット信号（RESET_PON）を生成し、機能ブロック（以下、区別する場合、機能ブロックＡ、機能ブロックＢという）１４に供給する。なお、リセット信号（RESET_PON）はコアやＲＡＭ等にも供給される。これにより、機能ブロックＡと機能ブロックＢが初期化されるので、機能ブロックＡが有するレジスタ１７（以下、レジスタＲＡという）と機能ブロックＢが有するレジスタ１７（以下、レジスタＲＢという）が初期化される。以下では、
レジスタＲＡの初期値＝０ｘ００００
レジスタＲＢの初期値＝０ｘ００Ａ０
とする。レジスタＲＢのように初期値に“１”になるビットには、Ｌｏｗレベルの信号を反転させる反転回路がレジスタの前に配置されている。また、本実施形態では、論理回路のデータ表現が、リセット信号がＨｉｇｈレベルの状態で初期化して、Ｌｏｗレベルに変化したら通常の動作状態に復帰するハイアクティブであるとして説明するが、ローアクティブであってもよい。
【００１９】
図２に示すように、バッテリ・オンによりバッテリ電源＋Bが立ち上がり、リセット信号（RESET_PON）が生成されている。リセット信号（RESET_PON）がレジスタＲＡとレジスタＲＢに供給されることで、それぞれに所望の初期値に設定されている。＋Ｂ系の単体ＥＣＵ２００のソフトウェアはレジスタＲＡ，ＲＢに初期値が設定されることを前提にして動作する。
【００２０】
例えば、機能ブロックＡがＡ／Ｄコンバータであればリセット信号によりレジスタＲＡを「０ｘ００００」ゼロに初期化でき、機能ブロックＢがタイマーであればリセット信号によりレジスタＲＢを「０ｘ００Ａ０（=１０ｄ）」に初期化できる。
【００２１】
同様に、図３は、ＩＧ系の単体ＥＣＵ２００のハードリセットについて説明する図の一例を、図４はハードリセットのシーケンス図の一例をそれぞれ示す。図３，４において図１，２と同一部の説明は省略する。ＩＧ系の単体ＥＣＵ２００には例えばエンジンＥＣＵがある。図３の電源回路１１は、ＩＧオンで始動するオルタネータ（正確にはレギュレータ）などのＩＧ電源６０から供給される電流・電圧を昇降圧するなどして安定化してＩＧ系マイコンＢ２０２に供給する。入力回路１２は、ＩＧオンの場合にＩＧイネーブル信号（EN_IG）を生成しＩＧ系マイコンＢ２０２に供給する。ＩＧイネーブル信号（EN_IG）はＩＧオンで動作する機器にＩＧオンを通知する信号である。
【００２２】
ＩＧ系マイコンＢ２０２はＩＧ電源６０が供給されるとコア等が作動するが、まず、起動リセット発生回路１３はＩＧオンを検出すると、リセット信号（RESET_PON）を生成し、機能ブロックＡ及び機能ブロックＢに供給する。これにより、＋B系の場合と同様、レジスタＲＡとレジスタＲＢが初期化される。
【００２３】
図４に示すように、ＩＧオンによりＩＧイネーブル信号（EN_IG）が立ち上がり、ＩＧオンの度にリセット信号（RESET_PON）が生成されている。リセット信号（RESET_PON）がレジスタＲＡとレジスタＲＢに供給されることで、それぞれに所望の初期値に設定される。このため、ＩＧ系の単体ＥＣＵ２００のアプリケーションは、ＩＧオンによりレジスタＲＡ、ＲＢに初期値が設定されることを前提にして動作する。
【００２４】
続いて、＋B系とＩＧ系の単体ＥＣＵ２００を統合した場合について説明する。
図５は統合ＥＣＵ１０１を模式的に示す図の一例である。なお、統合前の＋Ｂ系マイコンＡ２０１とＩＧ系マイコンＢ２０２は説明を容易にするために簡略化している。＋Ｂ系マイコンＡ２０１はバッテリ・オンで起動する機能ブロックＡを有し、ＩＧ系マイコンＢ２０２はＩＧオンで起動する機能ブロックＢを有する。
【００２５】
統合マイコンＡＢ２０３は＋Ｂ系とＩＧ系いずれか一方の電源から電力供給を受ければ動作するので、電源をいずれかに統一する必要がある。ＩＧ系マイコンＢ２０２は、ユーザがキーやスタートボタンを操作することで、オルタネータなどの発電系を含めるＩＧ電源６０がＩＧオン状態になると動作を開始する。これに対し、＋Ｂ系マイコンＡ２０１はバッテリ５０が充電状態なら電源が供給される可能性があるので、通電状態がＩＧ系マイコンＢ２０２より長い。このため、統合ＥＣＵ１０１では電源を＋Ｂ系に統一した方が統合マイコンＡＢ２０３に電力を供給する時間を確保しやすいと言える。このため、図５でも電源を＋Ｂ系に統一している。
【００２６】
図６は、統合マイコンＡＢ２０３のハードリセットのシーケンス図の一例である。電源を＋Ｂ系に統一したので、起動リセット発生回路１３はバッテリ・オンによりリセット信号（RESET_PON_AB）を生成し、機能ブロックＡ及び機能ブロックＢに供給する。したがって、レジスタＲＡは「０ｘ００００」に、レジスタＲＢは「０ｘ００Ａ０」にそれぞれ初期化される。
【００２７】
しかしながら、起動リセット発生回路１３はバッテリ・オンを検出してリセット信号（RESET_PON_AB）するため、ユーザがＩＧオフに操作した後、再度、ＩＧオンしても、リセット信号（RESET_PON_AB）を生成しない。このため、ユーザがＩＧオンに操作しても、統合マイコンＡＢ内のＩＧ系の機能ブロックＢはリセットされない。換言すると、統合マイコンＡＢ内のＩＧ系の機能ブロックＢには、バッテリ・オフの状態でユーザがＩＧオンした場合（以下、初回のＩＧオンという）にだけ、リセット信号（RESET_PON_AB）が供給されることになる。なお、バッテリ・オフとなるのは、ＩＧオフ後に十分に時間が経過したような場合である。
【００２８】
具体的には、ユーザがいったんＩＧオンに操作した後、統合マイコンＡＢ２０３が機能ブロックＢを使用する可能性があるが、機能ブロックＢを使用すればレジスタＲＢの値が初期値から変更される。図６では、「０ｘ００Ａ０」から「０ｘ００ＣＤ」に変更されている（どのような値に変更されるかは不明である（「０ｘ？？？？」）。）。
【００２９】
次に、ユーザがＩＧオフ→ＩＧオンに操作しても、起動リセット発生回路１３はリセット信号（RESET_PON_AB）を生成しないので、レジスタＲＢは不明の値を保持したままになる。しかし、上記のように、ＩＧオンの直後、機能ブロックＢを使用するＩＧ系のアプリケーションは、リセットされた直後の初期値「０ｘ００Ａ０」を期待して作られているので、レジスタＲＢの値が不明だと正常な動作が困難になる場合がある。
【００３０】
したがって、初回のＩＧオン状態が継続すれば不都合は生じないが、バッテリ・オンの状態で、ユーザがＩＧオフ→ＩＧオンと操作すると機能ブロックＢを用いたアプリケーションが正常に動作しないおそれがある。
【００３１】
以下で説明する本実施形態の統合ＥＣＵ１００は、電源系統の異なる単体ＥＣＵ２００を統合した際に生じる不都合を、バッテリ５０又はＩＧ電源６０の電源オンをトリガーにして、機能ブロックを選択的にハードリセットすることで解消する。
【００３２】
なお、ＩＧオンに対しても起動リセット発生回路１３がリセット信号（RESET_PON_AB）を生成することで、機能ブロックＢはＩＧオンに応じてリセットされる。しかし、この場合は＋B系の機能ブロックＡに対し想定外のタイミングでリセット信号が供給されてしまうため別の不都合が生じてしまう。
【実施例１】
【００３３】
図７は、本実施例の統合ＥＣＵ１００の機能ブロック図の一例を示す。図７の構成は、図５の機能ブロック図に、コンフィギュレーションレジスタ１６及び電源毎リセット発生回路１５を追加した構成になっている。起動リセット発生回路１３は電源毎リセット発生回路１５と接続され、電源毎リセット発生回路１５は機能ブロックＢと接続されている。それ以外の機能ブロックの動作は図５と同様である。機能ブロックＡは＋Ｂ系マイコンＡ２０１に搭載されていた機能で、機能ブロックＢはＩＧ系マイコンＢ２０２に搭載されていた機能である。
【００３４】
電源回路１１は、バッテリ５０から供給される電流・電圧を安定化して統合マイコンＡＢ３００に供給する。入力回路１２は、ＩＧオンの場合にＩＧイネーブル信号（EN_IG）を生成し統合マイコンＡＢ３００（電源毎リセット発生回路１５）に供給する。本実施例の入力回路１２は、起動リセット発生回路１３が電源オンを検出する対象の電源以外の電源のイネーブル信号を生成する。したがって、起動リセット発生回路１３がＩＧオンを検出してリセット信号を生成するのであれば、入力回路１２はバッテリ・オンの場合にバッテリイネーブル信号を生成し統合マイコンＡＢ３００に供給する。
【００３５】
統合マイコンＡＢ３００は、起動リセット発生回路１３、機能ブロックＡ、機能ブロックＢ、コア２１、ＲＡＭ２２、及び、ＲＯＭ２３を有する。この他、ＤＭＡＣ（Direct  Memory  Access  Controller）、ＩＮＴＣ（割り込みコントローラ）、車載ＬＡＮ通信部、等は省略している。なお、ＲＯＭ２３には＋Ｂ系マイコンＡ２０１に搭載されていたアプリケーション、ＩＧ系マイコンＢ２０２に搭載されていたアプリケーション、初期設定プログラム、及び、設定ファイル等が記憶されている。
【００３６】
起動リセット発生回路１３はバッテリ・オンを検出すると、リセット信号（RESET_PON_AB）を生成し、機能ブロックＡ及び電源毎リセット発生回路１５に供給する。したがって、本実施例では、機能ブロックＢに直接にはリセット信号（RESET_PON_AB）が供給されない。なお、機能ブロックＡ以外にもリセット信号（RESET_PON_AB）が供給される機能ブロックがあってもよい。
【００３７】
電源毎リセット発生回路１５は、コンフィギュレーションレジスタ１６の設定とＩＧイネーブル信号（EN_IG）の論理演算を行いリセット信号（RESET_P_B）を生成し、機能ブロックＢに供給する。機能ブロックＢ以外にもリセット信号（RESET_P_B）が供給される機能ブロックがあってもよい。
【００３８】
統合ＥＣＵ１００の開発者は、ＩＧオンにて機能ブロックＢをリセットしたいと考えた場合、コンフィギュレーションレジスタの値を調整することで、ＩＧイネーブル信号（EN_IG）を利用して電源毎リセット発生回路１５にリセット信号（RESET_P_B）を生成させることができる。
【００３９】
また、電源毎リセット発生回路１５にはリセット信号（RESET_PON_AB）も供給されるので、リセット信号（RESET_PON_AB）を利用して電源毎リセット発生回路１５にリセット信号（RESET_P_B）を生成させることもできる。すなわち、電源毎リセット発生回路１５は、複数の電源の電源オンの検出信号を組み合わせて、機能ブロックＢのリセットの有無を制御できる。
【００４０】
コンフィギュレーションレジスタ１６は、電源毎（＋B、ＩＧ）にリセット信号（RESET_P_B）を生成するか否かを制御する。コンフィギュレーションレジスタ１６には、例えば電源を指定する２ビットの電源毎リセット有無指定情報CON_BIT(1:0)が記憶されている。
【００４１】
例えば、コンフィギュレーションレジスタ１６の下位１ビット（０）がバッテリ・オンによりリセット信号（RESET_P_B）を生成するか否かを制御し、コンフィギュレーションレジスタ１６の上位１ビット（１）がＩＧオンによりリセット信号（RESET_P_B）を生成するか否かを制御する。したがって、コンフィギュレーションレジスタ１６の下位１ビット（０）とリセット信号（RESET_PON_AB）の論理演算及び（又は）コンフィギュレーションレジスタ１６の上位１ビット（１）とリセット信号（RESET_P_B）の論理演算により、機能ブロックＢをリセットするか否かを制御できるようになる。
【００４２】
図８（ａ）は、電源毎リセット発生回路１５の構成図の一例を示す。また、図８（ｂ）は、電源毎リセット発生回路１５による機能ブロックＢのリセット条件をテーブル形式にて表した図である。なお、図８（ｂ）ではどちらかがオンならある機能ブロックをリセットするというＯＲ回路しか表現できていないので、図８（ａ）と８（ｂ）の表現方法は等価ではない（制御内容は同じ）。
【００４３】
図８（ｂ）では、機能ブロックＢは、バッテリ・オンが検出されてもリセットされず、ＩＧオンが検出された場合にリセットされることが登録されている。この電源毎の電源オン時に機能ブロックＢをリセットするか否かをハード的に実現するのがコンフィギュレーションレジスタ１６である。
【００４４】
ＡＮＤ回路１の入力側には、リセット信号（RESET_PON_AB）とコンフィギュレーションレジスタ１６の下位１ビット（０）が接続されている。したがって、ＡＮＤ回路１は、コンフィギュレーションレジスタ１６
の下位１ビット（０）の値に応じて、バッテリ・オンが検出された際にオンとなるか否かが制御される。
・コンフィギュレーションレジスタ１６の下位１ビット（０）が“１”であれば、ＡＮＤ回路１はリセット信号（RESET_PON_AB）が供給されることでオンになる。
・コンフィギュレーションレジスタ１６の下位１ビット（０）が“０”であれば、ＡＮＤ回路１はリセット信号（RESET_PON_AB）が供給されてもオンにならない。
【００４５】
ＡＮＤ回路１の出力はＯＲ回路に接続されているので、電源毎リセット発生回路１５は、ＡＮＤ回路１がオンになればＩＧイネーブル信号（EG_IG）に関係なく、リセット信号（RESET_P_B）を生成することができる。
【００４６】
また、図８（ａ）では、CLK信号とＩＧイネーブル信号（EG_IG）が１ショットパルス発生回路２４に供給される。１ショットパルス発生回路２４は、ＩＧイネーブル信号（EG_IG）が入力された際にCLK信号の数クロック分のHighのパルス（以下、単にオンという）を1度だけ生成する回路である。１度だけとしたのは、ＩＧイネーブル信号（EG_IG）の出力中に何度もリセット信号が生成されないようにするためである。よって、１ショットパルス発生回路２４の代わりに、立ち上がりエッジを検出するエッジトリガを配置してもよい。
【００４７】
１ショットパルス発生回路２４の出力はＡＮＤ回路２に接続されている。このＡＮＤ回路２の他方の入力は、コンフィギュレーションレジスタ１６の上位１ビット（１）である。したがって、ＡＮＤ回路２は、コンフィギュレーションレジスタ１６
の上位１ビット（１）の値に応じて、ＩＧオンが検出された際にオンとなるか否かが制御される。
・コンフィギュレーションレジスタ１６の上位１ビット（１）が“１”であれば、ＡＮＤ回路２はＩＧイネーブル信号（EN_IG）が供給されることでオンになる。
・コンフィギュレーションレジスタ１６の上位１ビット（１）が“０”であれば、ＡＮＤ回路２はＩＧイネーブル信号（EN_IG）が供給されてもオンにならない。
【００４８】
ＡＮＤ回路２の出力はＯＲ回路に接続されているので、電源毎リセット発生回路１５は、ＡＮＤ回路２がオンになればリセット信号（RESET_PON_AB）に関係なく、リセット信号（RESET_P_B）を生成することができる。
【００４９】
図８（ａ）のＯＲ回路を３つめのＡＮＤ回路とすることもできる。このＡＮＤ回路は、リセット信号（RESET_PON_AB）とＩＧイネーブル信号（EN_IG）の両方が同時に出力された場合に、リセット信号（RESET_P_B）を生成する。どのような電源状態が成立した場合にリセットするかは、開発者が機能ブロックに応じて適宜調整することができる。したがって、電源毎リセット発生回路１５は、バッテリ５０のオン／オフ及びＩＧ電源６０のオン／オフの状態を組み合わせて機能ブロックＢをリセットするか否かを制御することができる。
【００５０】
なお、図７、図８（ａ）ではハード的に実装された電源毎リセット発生回路１５を図示したが、電源毎リセット発生回路１５はソフト的にも実装できる。例えば、統合ＥＣＵ３００はＩＧイネーブル信号（EG_IG）により割込みを検出し、電源毎リセット発生プログラムを実行すればよい。電源毎リセット発生プログラムは、図８（ｂ）のようなテーブルを読み出すことで、ＩＧ電源６０のオン時に機能ブロックBをリセットするか否かを判定できる。
【００５１】
図９は、図８の統合マイコンＡＢ３００のハードリセットを説明する図の一例である。図９では、コンフィギュレーションレジスタ１６には「０ｘ０２（＝１０ｂ）」が設定されているとして説明する。
【００５２】
コンフィギュレーションレジスタ１６の下位１ビット（０）が“０”なので、電源毎リセット発生回路１５はバッテリ・オンではリセット回路（RESET_P_B）を生成しない（図８（ｂ）のテーブルと同様の設定）。コンフィギュレーションレジスタ１６の下位１ビット（０）を“１”に設定しておけば、電源毎リセット発生回路１５はバッテリ・オンでもリセット回路（RESET_P_B）を生成することができる。
（１）統合マイコンＡＢ３００にバッテリ電源＋Bが供給され始める。
（２）起動リセット発生回路１３は、バッテリ・オンを検出してリセット信号（RESET_PON_AB）を生成する。
（３）リセット信号（RESET_PON_AB）により、機能ブロックＡがリセットされ、レジスタＲＡに「０ｘ００００」が設定される。
（４）リセット信号（RESET_PON_AB）は電源毎リセット発生回路１５に供給されるが、コンフィギュレーションレジスタ１６の下位１ビット（０）が“０”なので、電源毎リセット発生回路１５はリセット信号（RESET_P_B）を生成しない。
（５）ユーザがキー等を操作してＩＧオンにすると、入力回路１２がＩＧイネーブル信号（EG_IG）を生成する。
（６）ＩＧイネーブル信号（EG_IG）は、電源毎リセット発生回路１５に供給され、コンフィギュレーションレジスタ１６の上位１ビット（１）と比較される。コンフィギュレーションレジスタ１６の上位１ビット（１）は“１”なので、電源毎リセット発生回路１５はリセット信号（RESET_P_B）を生成する。
（７）リセット信号（RESET_P_B）により、機能ブロックＢがリセットされ、レジスタＲＢに「０ｘ００A０」が設定される。
２回目のＩＧオンにおいても同様の手順でレジスタＲＢは正常に初期化される。
【００５３】
〔コンフィギュレーションレジスタへの電源毎リセット有無指定情報の設定〕
コンフィギュレーションレジスタ１６への電源毎リセット有無指定情報の設定は、例えば、コア２１が初期設定プログラムを実行することで行う。起動リセット発生回路１３はバッテリ・オンを検出した際、ハードリセットによりコア２１とＲＡＭ２２も初期化するが、リセット後、コア２１は初期設定プログラムをＲＯＭ２３から読み出して各種の初期設定を行う。この初期設定の１つがコンフィギュレーションレジスタ１６への電源毎リセット有無指定情報の設定である。
【００５４】
コア２１は、初期設定プログラム内又は設定ファイルに記述された電源毎リセット有無指定情報を、コンフィギュレーションレジスタ１６に設定する。
【００５５】
なお、電源毎リセット有無指定情報は、バッテリ・オンの直後に必要とされるのではなく、次のＩＧオン時に必要になる。このため、電源毎リセット有無指定情報は、バッテリ・オンの後、次のＩＧオンまでにコンフィギュレーションレジスタ１６に設定されればよい。したがって、初期設定プログラムを用いない方法として、例えば、コア２１が実行するアプリケーションがＩＧイネーブル信号（EG_IG）のオフを検出した際に、電源毎リセット有無指定情報をコンフィギュレーションレジスタ１６へ設定する方法がある。
【００５６】
ＩＧオフの間も、統合ＥＣＵ１００には継続してバッテリ電源＋Bが供給されているので、コンフィギュレーションレジスタ１６の電源毎リセット有無指定情報が消失することはない。
【００５７】
また、コンフィギュレーションレジスタ１６へ電源毎リセット有無指定情報を設定するためにソフトウェアを使用するのでなく、ハードリセットを利用することもできる。バッテリ・オン時にローアクティブに統合ＥＣＵ１００がハードリセットされると、コンフィギュレーションレジスタ１６にもＬｏｗが供給されるので、“０”を設定すべきビットには“０”が設定される。“１”を設定したいビットには反転回路を配置しておけば、ソフトウェアを使用することなくコンフィギュレーションレジスタ１６にビット単位で“１”“０”を設定できる。
【００５８】
以上説明したように、本実施例の統合ＥＣＵ１００は、電源系の異なる単体ＥＣＵ２００を統合した際、統合前と同じ電源オンのタイミングで機能ブロック毎にハードリセットすることができる。統合の前後でアプリケーションへの変更も必要最小限（コンフィギュレーションレジスタ１６への電源毎リセット有無指定情報の設定）に抑制することができる。
【実施例２】
【００５９】
実施例１では電源毎リセット発生回路１５が、コンフィギュレーションレジスタ１６の電源毎リセット有無指定情報に応じて、オンにされた電源毎に機能ブロックBをリセットするか否かを制御した。本実施例では、これをさらに一般化して、電源と機能ブロックの組み合わせに対し、機能ブロック毎にリセットするか否かを制御できる統合ＥＣＵ１００について説明する。
【００６０】
図１０は、本実施例の統合ＥＣＵ１００の機能ブロック図の一例を示す。図１０において図７と同一部の説明は省略する。図１０の統合マイコンＡＢ３００はコンフィギュレーション・リセット・ディストリビュータ（以下、ＣＲＤという）２５を有する点が特徴の１つとなる。なお、特徴を説明するため、新たにレジスタＲＣを有する機能ブロックＣを図示した。図示するように、ＣＲＤ２５は機能ブロックＡ〜Ｃと接続されている。また、図１０では、起動リセット発生回路１３と機能ブロックＡが接続されていない。
【００６１】
機能ブロックＣは、＋B系の単体ＥＣＵ２００に搭載されていた機能でも、ＩＧ系の単体ＥＣＵ２００に搭載されていた機能でもよい。また、統合前に存在しない機能だったが、統合ＥＣＵ１００に新たに搭載された機能としてもよい。これは、本実施例では、電源と機能ブロックの組み合わせに応じて、機能ブロックＡ〜Ｃをリセットするか否かを制御できるためである。
【００６２】
図１１（ａ）はＣＲＤ２５の構成図の一例を、図１１（ｂ）は本実施例のコンフィギュレーションレジスタ１６が定めるリセット条件をテーブル形式にて表した図である。なお、本実施例ではＣＲＤ２５にコンフィギュレーションレジスタ１６が含まれている。図１１（ｂ）では、機能ブロックＡはバッテリ・オンが検出された場合だけ、機能ブロックＢはＩＧオンが検出された場合だけ、機能ブロックＣはバッテリ・オン又はＩＧオンのいずれかが検出された場合、にそれぞれリセットされる。
【００６３】
ＣＲＤ２５では、各電源が電源オンの際に各機能ブロックをリセットするか否かが、コンフィギュレーションレジスタ１６と論理回路によりハード的に実現されている。
【００６４】
本実施例では機能ブロックＡ〜Ｃの数が３つなので、コンフィギュレーションレジスタ１６のビット数も３桁になる。当然ながら、機能ブロックＡ〜Ｃの数が増えれば、その数に応じてコンフィギュレーションレジスタ１６のビット数を大きくすれば、機能ブロックの数が４以上でも機能ブロック毎にリセットするか否かを制御できる。以下で説明するように、本実施例のコンフィギュレーションレジスタ１６は、機能ブロック毎に、バッテリ・オンに対しリセットするかどうか、ＩＧオンに対しリセットするかどうかを個別に制御する。
【００６５】
図１１（ｂ）に示したように図１１（ａ）を簡単に説明すると次のように説明できる。
ａ）機能ブロックＡはバッテリ・オンによりリセットされる。
ｂ）機能ブロックＢはＩＧオン時にコンフィギュレーションレジスタ１６の設定によりリセットするか否かが制御される。
ｃ）機能ブロックＣはバッテリ・オンによりリセットされ、かつ、ＩＧオン時にコンフィギュレーションレジスタ１６の設定によりリセットするか否かが制御される。
【００６６】
ＡＮＤ回路１の入力側には、リセット信号（RESET_PON_AB）とコンフィギュレーションレジスタ１６の下位１ビット（０）が接続されている。したがって、ＡＮＤ回路１は、コンフィギュレーションレジスタ１６
の下位１ビット（０）の値に応じて、バッテリ・オンが検出された際にオンとなるか否かが制御される。
・コンフィギュレーションレジスタ１６の下位１ビット（０）が“１”であれば、ＡＮＤ回路１はリセット信号（RESET_PON_AB）が供給されることでオンになる。
・コンフィギュレーションレジスタ１６の下位１ビット（０）が“０”であれば、ＡＮＤ回路１はリセット信号（RESET_PON_AB）が供給されてもオンにならない。
【００６７】
ＡＮＤ回路１の出力はＯＲ回路１に接続されているが、ＯＲ回路１の他方の入力にはリセット信号（RESET_PON_AB）が供給されるので、ＣＲＤ２５は、ＡＮＤ回路１がオンかオフかに関係なく、バッテリ・オンによりリセット信号（RESET_P_A）を生成することができる。したがって、ＣＲＤ２５は、バッテリ・オンにより必ず機能ブロックＡをリセットすることができる。
【００６８】
また、１ショットパルス発生回路２４の出力はＡＮＤ回路２に接続されている。このＡＮＤ回路２の他方の入力は、コンフィギュレーションレジスタ１６の第２ビット（１）である。したがって、ＡＮＤ回路２は、コンフィギュレーションレジスタ１６
の第２ビット（１）の値に応じて、ＩＧオンが検出された際にオンとなるか否かが制御される。
・コンフィギュレーションレジスタ１６の第２ビット（１）が“１”であれば、ＡＮＤ回路２はＩＧイネーブル信号（EN_IG）が供給されることでオンになる。
・コンフィギュレーションレジスタ１６の第２ビット（１）が“０”であれば、ＡＮＤ回路２はＩＧイネーブル信号（EN_IG）が供給されてもオンにならない。
【００６９】
したがって、ＣＲＤ２５は、ＡＮＤ回路２がオンになればリセット信号（RESET_PON_AB）に関係なく、リセット信号（RESET_P_B）を生成することができる。
【００７０】
また、ＡＮＤ回路３の入力には１ショットパルス発生回路２４が接続されている。ＡＮＤ回路３の他方の入力は、コンフィギュレーションレジスタ１６の第３ビット（２）である。したがって、ＡＮＤ回路３は、コンフィギュレーションレジスタ１６
の第３ビット（１）の値に応じて、ＩＧオンが検出された際にオンとなるか否かが制御される。
・コンフィギュレーションレジスタ１６の第３ビット（２）が“１”であれば、ＡＮＤ回路３はＩＧイネーブル信号（EN_IG）が供給されることでオンになる。
・コンフィギュレーションレジスタ１６の第３ビット（２）が“０”であれば、ＡＮＤ回路３はＩＧイネーブル信号（EN_IG）が供給されてもオンにならない。
【００７１】
ＡＮＤ回路３の出力はＯＲ回路２に接続されているので、ＣＲＤ２５はＡＮＤ回路３がオンになればリセット信号（RESET_PON_AB）に関係なく、リセット信号（RESET_P_C）を生成することができる。またＯＲ回路２の他方の入力にはリセット信号（RESET_PON_AB）が供給される。このため、ＣＲＤ２５は、ＡＮＤ回路３がオンかオフかに関係なく、バッテリ・オンによりリセット信号（RESET_P_C）を生成することができる。したがって、ＣＲＤ２５は、バッテリ・オンにより必ず機能ブロックＣをリセットすることができる。
【００７２】
このようにＣＲＤ２５は予め設定されたコンフィギュレーションレジスタ１６を使用して、機能ブロック毎に、バッテリ・オンとＩＧオンの組み合わせに応じてリセットするタイミングか否かを判定し、機能ブロック毎にリセットするか否かを制御することができる。
【００７３】
図１２は、図１０の統合マイコンＡＢ３００のハードリセットを説明する図の一例である。図１１では、コンフィギュレーションレジスタ１６に「０ｘ０６（＝１１０ｂ）」が設定されているとして説明する。
（１）統合マイコンＡＢ３００にバッテリ電源＋Bが供給され始める。
（２）起動リセット発生回路１３は、バッテリ・オンを検出してリセット信号（RESET_PON_AB）を生成する。
（３）リセット信号（RESET_PON_AB）により、機能ブロックＡがリセットされ、レジスタＲＡに「０ｘ００００」が設定される。
（４）リセット信号（RESET_PON_AB）はＯＲ回路２にも供給されるので、ＣＲＤ２５はリセット信号（RESET_P_C）を生成する。
（５）リセット信号（RESET_P_C）により、機能ブロックＣがリセットされ、レジスタRCに「０ｘ００００」が設定される。
（６）ユーザがキー等を操作してＩＧオンにすると、入力回路１２がＩＧイネーブル信号（EG_IG）を生成する。
（７）ＩＧイネーブル信号（EG_IG）は、ＡＮＤ回路２で、コンフィギュレーションレジスタ１６の第２ビット（１）と比較される。コンフィギュレーションレジスタ１６の第２ビット（１）は“１”なので、ＣＲＤ２５はリセット信号（RESET_P_B）を生成する。
（８）リセット信号（RESET_P_B ）により、機能ブロックＢがリセットされ、レジスタＲＢに「０ｘ００A０」が設定される。
（９）また、ＩＧイネーブル信号（EG_IG）は、ＡＮＤ回路３でコンフィギュレーションレジスタ１６の第３ビット（２）と比較される。コンフィギュレーションレジスタ１６の第３ビット（２）は“１”なので、ＣＲＤ２５はリセット信号（RESET_P_C）を生成する。
（１０）リセット信号（RESET_P_C）により、機能ブロックＣがリセットされ、レジスタRCに「０ｘ００００」が設定される。２回目のＩＧオンにおいても同様の手順でレジスタＲＢ、レジスタRCは正常に初期化される。
【００７４】
したがって、本実施例の統合ＥＣＵ１００は、統合前の電源系が異なる機能ブロックが混在していても、機能ブロック毎に、＋Ｂ系の電源とＩＧ系の電源の電源オンに応じて、統合前と同様のタイミングで、機能ブロック毎にリセット信号を出力するか否かを制御することができる。
【符号の説明】
【００７５】
１１        電源回路
１２        入力回路
１３        起動リセット発生回路
１４        機能ブロック
１５        電源毎リセット発生回路
１６        コンフィギュレーションレジスタ
１７        レジスタ
２１        コア
２２        ＲＡＭ
２３        ＲＯＭ
２４        １ショットパルス発生回路
２５        コンフィギュレーション・リセット・ディストリビュータ
１００      統合ＥＣＵ
３００      統合マイコンＡＢ
【図１】
2012116237.tif 000003
【図２】
2012116237.tif 000004
【図３】
2012116237.tif 000005
【図４】
2012116237.tif 000006
【図５】
2012116237.tif 000007
【図６】
2012116237.tif 000008
【図７】
2012116237.tif 000009
【図８】
2012116237.tif 000010
【図９】
2012116237.tif 000011
【図１０】
2012116237.tif 000012
【図１１】
2012116237.tif 000013
【図１２】
2012116237.tif 000014