トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 エミュレーション装置
【発明者】 【氏名】川瀬 義博

【氏名】山口 惇

【要約】 【課題】ユーザプログラムの適合を的確に実施することができるエミュレーション装置を提供する。

【解決手段】エミュレーション装置2は、ユーザプログラムを記憶するフラッシュメモリ12と、ユーザプログラムのエミュレーションを行うためのE_RAM13とを備える。E_RAM13には、バックアップ電圧VSが供給されており、システム起動時に、バックアップ電圧VSの電圧低下の履歴有りと判定された場合、フラッシュメモリ12のユーザプログラムがE_RAM13へ転送されて制御システムが評価される。システム起動時に、バックアップ電圧VSの電圧低下の履歴無しと判定された場合、複数のモードの中から一つが選択され、その転送モードに従いユーザプログラムの転送が行われる。
【特許請求の範囲】
【請求項1】 ユーザプログラムのエミュレーションを行うためのエミュレーションRAMを備え、記憶手段に予め記憶されているユーザプログラムをエミュレーションRAMへ転送して制御システムを評価するエミュレーション装置において、システム起動時に、予め用意された複数のモードの中から一つを選択し、該選択した転送モードに従いエミュレーションRAMへのユーザプログラムの転送を行うようにしたことを特徴とするエミュレーション装置。
【請求項2】 請求項1に記載のエミュレーション装置において、前記転送モードは、作業者により指定されるものであることを特徴とするエミュレーション装置。
【請求項3】 請求項1又は2に記載のエミュレーション装置において、前記転送モードは、通信ラインを介して接続される外部ツールを用いて指定されるものであることを特徴とするエミュレーション装置。
【請求項4】 前記エミュレーションRAMにはデータ保持用のバックアップ電圧が供給されており、該バックアップ電圧の電圧低下の履歴をシステム起動時に判定し、履歴有りと判定したとき前記ユーザプログラムをエミュレーションRAMへ転送するようにした請求項1〜3のいずれか一項に記載のエミュレーション装置において、システム起動時にて前記電圧低下の履歴無しと判定したとき、前記選択した転送モードに従いエミュレーションRAMへのユーザプログラムの転送を行うようにしたことを特徴とするエミュレーション装置。
【請求項5】 エンジン制御システムの開発段階で用いられる請求項1〜4のいずれか一項に記載のエミュレーション装置において、前記転送モードには、転送を禁止する転送禁止モードと、転送を実行する転送実行モードとがあり、エンジン始動性の評価を行う際には、転送禁止モードが選択されることを特徴とするエミュレーション装置。
【請求項6】 請求項1〜5のいずれか一項に記載のエミュレーション装置において、前記転送モードには、データチェックモードがあり、データチェックモードが選択される場合、エミュレーションRAMに既に格納されているユーザプログラムのデータチェックを行い、その結果に応じて、ユーザプログラムの転送の要否を判定することを特徴とするエミュレーション装置。
【請求項7】 請求項6に記載のエミュレーション装置において、前記データチェックモードでは、適合データ以外のプログラム領域のデータチェックを実施することを特徴とするエミュレーション装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、ユーザプログラムをエミュレーションRAMへ転送し、そのユーザプログラムのエミュレーションを行うエミュレーション装置に関するものである。
【0002】
【従来の技術】エミュレーション装置は、例えば、エンジン制御システムの開発段階において、マイコンに組み込まれるユーザプログラムの制御データ等を適切な値に適合するために使用されている。具体的には、エミュレーション装置は、フラッシュメモリ、エミュレーションRAM、マイコン等を備え、システム起動時にフラッシュメモリに格納されているユーザプログラムをエミュレーションRAM(E_RAM)へ転送するように構成されている。そして、E_RAM上でユーザプログラムのエミュレーションを行うことにより、該ユーザプログラムが評価されてエンジン制御システムにおけるユーザプログラムの最適化が図られる。
【0003】
【発明が解決しようとする課題】こうしたエミュレーション装置においては、システム起動時にてフラッシュメモリのユーザプログラムをE_RAMへ転送するように構成しているため、量産時のマイコンに対して、ユーザプログラムの転送時間だけ同プログラムの起動時間が遅くなってしまう。つまり、評価時と量産時とでは、初期化処理の時間(イニシャル時間)が異なり、ユーザプログラムの実行タイミングがずれて、エンジンの始動性が異なってしまう。このため、エンジン始動性に関するユーザプログラムの適合を的確に実施できない。この対策として、E_RAMに対してバックアップ電圧を常に供給するようにしている。そして、バックアップ電圧が初めて供給されたときに、E_RAMへのユーザプログラムの転送を実施し、その後、バックアップ電圧が保持されている間は、ユーザプログラムの転送をキャンセルする。つまり、バックアップ電圧が低下した場合にのみ、E_RAMに格納したユーザプログラムが壊れていると判定して、フラッシュメモリからユーザプログラムの再転送を実施する。これにより、バックアップ電圧が保持されている場合は、システム起動時におけるプログラム転送は行われず、その転送時間が無くなる。よって、評価時と量産時とでユーザプログラムの実行タイミングが同じとなり、エンジン始動性の適合を的確に実施できる。
【0004】ところで、バックアップ電圧をE_RAMに供給する構成において、バックアップ電圧が低下していない場合は、前回転送したユーザプログラムがE_RAM上に存在しているはずである。しかしながら、ノイズ等の影響によって、E_RAMのプログラムデータが化けてしまい、ユーザプログラムが異常となる場合が考えられる。この場合、異常となったユーザプログラムは、正しく実行できずマイコンが暴走し、ひいてはエンジンが正常に運転できなくなる可能性もある。
【0005】本発明は、上記問題に着目してなされたものであって、その目的とするところは、ユーザプログラムの適合を的確に実施することができるエミュレーション装置を提供することである。
【0006】
【課題を解決するための手段】請求項1に記載の発明によれば、システム起動時に、予め用意された複数のモードの中から一つが選択され、該選択された転送モードに従いエミュレーションRAMへのユーザプログラムの転送が行われる。この場合、必要に応じてその都度、転送モードを可変に設定できるので、転送に関する処理時間の変更によりイニシャル時間を短縮したり、エミュレーションRAM上のユーザプログラムの信頼性を確保することができる。これにより、制御システムの評価状況に応じて、ユーザプログラムの適合をきめ細かく実施することができる。
【0007】請求項2に記載の発明によれば、転送モードが作業者により指定されるので、ユーザプログラムの転送を望み通りに実現できる。一般に、エミュレーション装置において、通信ラインを介して接続される外部ツールを用いてエミュレーションRAMの適合データを変更する構成が採用されている。よって、請求項3に記載の発明のように、外部ツールを用いて転送モードを指定すれば、転送モードの切替を容易に実施できる。
【0008】請求項4に記載の発明によれば、システム起動時にて、バックアップ電圧の電圧低下の履歴が判定され、履歴有りと判定されたときには、ユーザプログラムがエミュレーションRAMへ転送される。そして、バックアップ電圧の供給によりエミュレーションRAMのユーザプログラムが保持される。このエミュレーションRAMにバックアップ電圧を供給する構成においても、エミュレーションRAM上のユーザプログラムは、ノイズ等の影響によりデータ化けして誤動作する場合がある。この場合、電圧低下の履歴が無くても、択一的に選ばれた転送モードに従いユーザプログラムの転送が行われるので、エミュレーションRAM上のユーザプログラムの信頼性を確保することができる。
【0009】請求項5に記載の発明によれば、エンジン始動性の評価を行う際には、転送禁止モードが選択される。この場合、エミュレーションRAMへのプログラム転送が禁止されその転送時間がなくなるので、エンジン始動性を的確に評価できる。
【0010】請求項6に記載の発明によれば、転送モードとしてデータチェックモードが選択されると、エミュレーションRAMに既に格納されているユーザプログラムのデータチェックが行われ、その結果に応じて、ユーザプログラムの転送の要否が判定される。つまり、データチェックが異常の場合、ノイズ等によるエミュレーションRAMのデータ化けが有ると判定してプログラム転送を実施し、データチェックが正常の場合、エミュレーションRAMのデータ化けが無いと判定してプログラム転送を実施しない。このようにすると、必要時にのみにプログラム転送を実施できる。また、起動時にデータチェックを行うための時間が必要となるが、毎回プログラム転送を行う場合と比較してイニシャル時間を短縮できる。
【0011】適合データは頻繁に書き替えられるので、請求項7に記載の発明のように、適合データ以外のプログラム領域のデータチェックを実施すると、実用上好ましいものとなる。
【0012】
【発明の実施の形態】以下、この発明を具体化した実施の形態を図面に従って説明する。本実施の形態では、エンジン制御システムの開発に際して適用されるエミュレーション装置に具体化している。
【0013】エンジン制御システムは、電子制御装置(ECU)を備えて構成され、この電子制御装置(ECU)に搭載されるマイコンによって点火・噴射等の周知のエンジン制御が実施されるようになっている。それ故、エンジン制御システムの開発段階では、マイコンに組み込まれるユーザプログラムの制御データ等を最適な値に適合するために、システムに使用されるマイコンと同等の機能を有しかつエミュレート機能を有するエミュレーション装置が使用される。なお、本実施の形態におけるエミュレーション装置は、機能ブロックを構成する複数の半導体チップを1枚の基板上に高密度に実装したマルチチップモジュール(MCM)として実現され、そのエミュレーション装置が電子制御装置(ECU)に搭載されるようになっている。
【0014】図1には、本実施の形態におけるECU1の概略構成を示す。図1に示すように、ECU1は、エミュレーション装置2、電源回路3、バッファ4等を備えている。また、エミュレーション装置2は、エバリュエーションチップ(以下、エバチップという)11、フラッシュメモリ12、エミュレーションRAM(以下、E_RAMという)13等を備えている。
【0015】エバチップ11は、量産時のECUに搭載されるマイコンと同等の機能に加えてエミュレート機能を有している。つまり、エバチップ11は、量産用マイコンの代替として動作すべく、量産用マイコンと同様にCPU11a、RAM11b、スタンバイRAM11c、及び図示しないタイマ、A/Dコンバータ、SCI等を備えている。フラッシュメモリ12には、ハードウエアに固定され起動時に実行されるファームウエアと、エンジン制御を実施するためのユーザプログラムが格納されている。なお、本実施の形態では、フラッシュメモリ12が記憶手段に相当する。また、E_RAM13は、フラッシュメモリ12に格納されるユーザプログラムのエミュレーションを行うために配設されている。
【0016】これらエバチップ11、フラッシュメモリ12、E_RAM13はバス14により接続されている。そして、エバチップ11からフラッシュメモリ12及びE_RAM13に対するアドレス指定や、エバチップ11、フラッシュメモリ12、E_RAM13間でのデータの授受がバス14を介して行われる。
【0017】電源回路3は、イグニッションスイッチ(IGSW)15を介してバッテリBに接続され、イグニッションスイッチ15のオン時にイグニッション電圧VIGが供給される。これにより、電源回路3は、エバチップ11、フラッシュメモリ12等へ動作電圧VDを出力する。また、電源回路3は、イグニッションスイッチ15を介する接続とは別に、バッテリBに直接接続されており、バッテリ電圧VBBが常に供給されている。これにより、電源回路3は、エバチップ11のスタンバイRAM11c及びE_RAM13へデータ保持用のバックアップ電圧VSを出力する。
【0018】外部ツールとしての適合ツール16は、通信ライン17を介してECU1に接続される。適合ツール16は、例えば汎用パソコンにて構成されており、同適合ツール16から出力されるデータが通信ライン17及びバッファ4を介してエミュレーション装置2に入力される。また、本実施の形態のエミュレーション装置2は、NBD(Non Break Debugger)モジュール(例えば、日立社製SH7055のAUDモジュール)を備えており、このNBDモジュールを用いることにより、適合ツール16からの要求に応じてエバチップ11内のCPU11aを介さずに直接E_RAM13のデータ書き込み/読み出しができるようになっている。
【0019】このECU1では、フラッシュメモリ12のユーザプログラムがE_RAM13に転送され、該E_RAM13上のユーザプログラムが実行される。そして、適合ツール16を用いてE_RAM13上の適合データを変更することにより、エンジン制御システムにおけるユーザプログラムの最適化が図られる。
【0020】E_RAM13へのユーザプログラムの転送は、バックアップ電圧VSの低下履歴の有無、及び作業者により指定された転送モードに従い実施される。即ち、システム起動時にて、バックアップ電圧VSの電圧低下の履歴が有る場合には、直ちにユーザプログラムの転送が実施される。詳しくは、図2に示すように、t1のタイミングでバッテリBにECU1が接続されると、電源回路3からバックアップ電圧VSが出力される。そして、t2のタイミングにてイグニッションスイッチ(IGSW)15がオンされたとき、電源回路3から動作電圧VDが出力されて、エバチップ11を含む制御システムが起動される。このt2のタイミングでは、エバチップ11にてバックアップ電圧VSの電圧低下の履歴が有りと判定されて、フラッシュメモリ12のユーザプログラムがE_RAM13に転送される。なお、本実施の形態では、エバチップ11のスタンバイRAM11cに、所定のキーワードを記憶するようになっており、同キーワードが破壊されて別の値となった場合に、バックアップ電圧VSの電圧低下の履歴有りと判定している。
【0021】一方、バックアップ電圧VSの電圧低下の履歴が無い場合には、複数の転送モードの中から一つが選択され、その転送モードに基づいてE_RAM13へのユーザプログラムの転送が実施される。具体的には、図3におけるt3のタイミングで転送モードが設定されると、イグニッションスイッチ(IGSW)15がオフ(t4のタイミング)→オン(t5のタイミング)されてシステムが再起動される際に、設定された転送モードに基づいてE_RAM13へのユーザプログラムの転送が行われる。なお、転送モードの設定は、ECU1の動作時に適合ツール16を用いて行われる。つまり、作業者による入力操作に応じて適合ツール16からデータが出力され、そのデータがエバチップ11のスタンバイRAM11cに書き込まれることで転送モードが設定される。
【0022】ここで、本実施の形態における転送モードとしては、(a)転送実行モード、(b)転送禁止モード、(c)チェックサムモード等が用意されている。作業者の入力操作により(a)の転送実行モードが選択されると、システムの起動時にユーザプログラムの転送が毎回実施される。これに対して、(b)の転送禁止モードが選択されると、システム起動時におけるユーザプログラムの転送が禁止される。また、(c)のチェックサムモードが選択されると、E_RAM13において、所定のプログラム領域を対象としてチェックサム(プログラムデータの合計チェック)が実施され、その結果に応じてユーザプログラムの転送の要否が判定される。そして、チェックサムの結果が正常であればプログラム転送が禁止され、チェックサムの結果が異常であればプログラム転送が実施される。具体的に本実施の形態では、図3に示すように、E_RAM13の記憶領域X1,X2,X3において、領域X1及びX2にプログラムが、領域X2に適合データが格納されており、適合データの領域X2を除くプログラム領域X1,X3のチェックサムが行われる。なお、本実施の形態では、適合ツール16によりチェックサムの対象領域を任意に設定できるようになっている。また、(c)のチェックサムモードがデータチェックモードに相当する。
【0023】既述したように、E_RAM13には、バックアップ電圧VSが供給されているためイグニッションスイッチ15のオフ時にも、E_RAM13上のユーザプログラムは保持されるが、ノイズ等の影響によってデータ化けして誤動作する場合がある。この場合、上記(a)の転送実行モード又は(c)のチェックサムモードによれば、データ化けが発生しても、正常なユーザプログラムがE_RAM13に転送されて、E_RAM13上のユーザプログラムの信頼性が確保される。但し、(c)のチェックサムモードでは、毎回プログラム転送が行われるのではなく、ノイズ等によりユーザプログラムが破壊された場合等、必要となる時のみにプログラム転送が実施される。なお、起動時にチェックサムを行うための時間が必要となるが、プログラム転送を行う場合と比較してイニシャル時間が短縮される。
【0024】また、(b)の転送禁止モードによれば、システム起動時に、ユーザプログラムの転送時間が無くなり、初期化処理のためのイニシャル時間が短縮される。従って、システム起動後におけるユーザプログラムの実行タイミングが量産時のタイミングと同じになり、エンジン始動性に関するユーザプログラムの適合が正確に実施される。
【0025】また、図2に示すように、t5〜t6の期間で転送モードの設定が行われない場合、次回のシステム起動時(t7のタイミング)におけるユーザプログラムの転送は、t3のタイミングで設定された転送モードに基づいて実施される。なお、初期状態では、デフォルト値として上記(a)の転送実行モードが設定されている。そのため、図2において、t3における転送モードの設定を実施しない場合、次回のシステム起動時(t5のタイミング)に、転送実行モードが判定されフラッシュメモリ12からE_RAM13にユーザプログラムが転送されることとなる。
【0026】次に、エバチップ11により実行される処理のうち、起動時に実行されるファームウエアの処理を図4のフローチャートを用いて説明する。先ず、エバチップ11は、ステップ100において、バックアップ電圧VSの電圧低下の履歴を判定する。ここで、スタンバイRAM11cに記憶しているキーワードが破壊されており、電圧低下の履歴有りと判定すると、エバチップ11はステップ110に移行して、フラッシュメモリ12のユーザプログラムをE_RAM13へ転送する。そして、そのユーザプログラムの転送が完了した後、エバチップ11は、E_RAM13のユーザプログラムへジャンプする。つまり、プログラムカウンタをE_RAM13上へ遷移させることで、エバチップ11によりそのE_RAM13上のユーザープログラムが実行され、ユーザープログラムのエミュレーションが開始される。
【0027】一方、ステップ100において、履歴無しと判定した場合、エバチップ11はステップ120に移行して、転送モードを判定する。同ステップ120にて、転送実行モードと判定した場合、ステップ110に移行し、フラッシュメモリ12のユーザプログラムをE_RAM13へ転送した後、E_RAM13のユーザプログラムへジャンプする。また、ステップ120にて転送禁止モードと判定した場合、ユーザプログラムの転送を行うことなく、E_RAM13のユーザプログラムへジャンプする。さらに、ステップ120にてチェックサムモードと判定した場合、ステップ130に移行してチェックサム処理を実施する。そして、チェックサムの結果が異常と判定したときには、ステップ110に移行し、フラッシュメモリ12のユーザプログラムをE_RAM13へ転送した後、E_RAM13のユーザプログラムへジャンプする。また、チェックサムの結果が正常と判定したときには、ユーザプログラムの転送を行うことなく、E_RAM13のユーザプログラムへジャンプする。
【0028】このように、本実施の形態では、適合ツール16を用いて選択された転送モードに基づいてE_RAM13へのユーザプログラムの転送が行われる。つまり、転送実行モードが選択されると、システム起動時にてユーザプログラムの転送が常に実施され、転送禁止モードが選択されると、ユーザプログラムの転送が禁止される。また、チェックサムモードが選択されると、システム起動時にてプログラム領域X1,X3のチェックサムが実施されて、チェックサムの結果が、異常のときにユーザプログラムの転送が実施され、正常のときにユーザプログラムの転送が禁止される。
【0029】以上詳述した本実施の形態によれば、以下に示す効果が得られる。
(1)システム起動時に、予め用意された複数の転送モードの中から一つが選択され、その転送モードに従いE_RAM13へのユーザプログラムの転送が行われる。この場合、必要に応じてその都度、転送モードを可変に設定できるので、イニシャル時間を短縮したり、E_RAM13上のユーザプログラムの信頼性を確保することができる。これにより、制御システムの評価状況に応じて、ユーザプログラムの適合をきめ細かく実施することができる。
【0030】(2)転送モードが作業者により指定されるので、ユーザプログラムの転送を望み通りに実現できる。
(3)E_RAM13のデータ書き込み/読み出しを行うための適合ツール16を用いて転送モードが指定される。この場合、転送モードを指定するために別の装置を用いる必要がなく、転送モードの切替を容易に実施できる。また、新規な構成が不要であるため、コスト的にも有利となる。
【0031】(4)システム起動時にて、バックアップ電圧VSの電圧低下の履歴が判定され、履歴有りと判定されたときには、ユーザプログラムがE_RAM13へ転送される。E_RAM13上のユーザプログラムは、ノイズ等の影響によりデータ化けして誤動作する場合があるため、電圧低下の履歴が無くても、択一的に選ばれた転送モードに従いユーザプログラムの転送が行われる。これにより、E_RAM13上のユーザプログラムの信頼性を確保することができる。
【0032】(5)エンジン始動性の評価を行う際に、転送禁止モードが設定されると、E_RAM13へのプログラム転送が禁止されその転送時間がなくなるので、エンジン始動性を的確に評価できる。
【0033】(6)チェックサムモードが選択されると、E_RAM13に既に格納されているユーザプログラムのチェックサムが行われ、その結果に応じて、ユーザプログラムの転送の要否が判定される。このようにすれば、必要時にのみにプログラム転送を実施できる。また、起動時にチェックサムを行うための時間が必要となるが、毎回プログラム転送を行う場合と比較してイニシャル時間を短縮できる。
【0034】(7)適合データは頻繁に書き替えられるため、本実施の形態のように、適合データの領域X2以外のプログラム領域X1,X3を対象としてチェックサム処理を実施すると、実用上好ましいものとなる。
【0035】なお本発明は、上記以外に次の形態にて具体化できる。上記実施の形態における転送モードは、転送実行モード、転送禁止モード、チェックサムモードであったが、これに限定するものではない。例えば、バックアップ電圧VSの電圧低下の履歴に基づきプログラム転送の要否を判断する電圧低下チェックモードを追加してもよい。具体的には、図4のステップ100を実施する前に、電圧低下チェックモードか否かを判定し、電圧低下チェックモードである場合にのみ、ステップ100に移行して電圧低下の履歴を判定するように構成する。
【0036】また、全てのユーザプログラムを転送するものに限るものではなく、ユーザプログラムの一部のみを転送するモードを追加してもよい。具体的には、プログラム領域X1,X3のみのユーザプログラムを転送する転送モード等を追加してもよい。
【0037】上記実施の形態において、チェックサムモードでは、E_RAM13において、適合データを除くプログラム領域X1,X3のチェックサムを実施するものであったが、適合データの領域X2を含む全ての領域X1〜X3のチェックサムを実施するようにしてもよい。なおこの場合、適合データはエミュレーション時にて頻繁に書き替えられるため、チェックサムの結果も異なる。そのため、チェックサム処理においてその結果と比較するデータ(チェックサム値)も、適合データと同時に書き替えるように構成する。また、E_RAM13上の各記憶領域X1,X2,X3毎にチェックサムを行い、チェックサムの結果が異常と判定された領域のみプログラム転送を行うように構成してもよい。さらに、データチェックモードとして、チェックサムモードに具体化したが、このチェックサムモードをミラーチェック等に代えて具体化してもよい。
【0038】上記エミュレーション装置2では、記憶手段としてのフラッシュメモリ12に格納したユーザプログラムをE_RAM13に転送してエミュレーションを行うものであったが、これに限定するものではない。例えば、フラッシュメモリ12に代えてEPROM等を用い、そのEPROMに格納したユーザプログラムをE_RAM13に転送してエミュレーションを行うように構成してもよい。また、適合ツール16にユーザプログラムを記憶しておき、そのユーザプログラムをE_RAM13に転送してエミュレーションを実施するようにしてもよい。なおこの場合、適合ツール16が記憶手段に相当する。
【0039】上記実施の形態では、適合ツール16により転送モードを設定するものであったが、ECU1に切替スイッチを設け、同スイッチ状態により転送モードを設定する構成としてもよい。
【0040】上記実施の形態では、エバチップ11のスタンバイRAM11cに記憶したキーワードに基づき、バックアップ電圧VSの電圧低下を判定したが、E_RAM13にキーワードを記憶して、それに基づきバックアップ電圧VSの電圧低下を判定してもよい。さらには、電源回路3等においてバックアップ電圧VSの電圧低下を検出する機能を追加し、同回路3等により電圧低下を検出してもよい。
【0041】上記実施の形態では、エンジン制御システムに適用されるエミュレーション装置2に具体化したが、これに限ることなく、例えば、トランスミッション等の制御システムに適用されるエミュレーション装置に具体化してもよい。
【出願人】 【識別番号】000004260
【氏名又は名称】株式会社デンソー
【出願日】 平成12年10月3日(2000.10.3)
【代理人】 【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣 (外1名)
【公開番号】 特開2002−108624(P2002−108624A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−303560(P2000−303560)