(57)【特許請求の範囲】
【請求項１】
ＣＰＵと当該ＣＰＵの周辺回路とが内部に組み込まれたマイクロコンピュータを模擬するマイクロコンピュータの模擬装置であって、
模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを実行する第一及び第二のマイクロコンピュータ模擬ブロックと、
第一のマイクロコンピュータ模擬ブロックと第二のマイクロコンピュータ模擬ブロックとの間で遣り取りするデータを中継する中継処理部とを備え、
第一のマイクロコンピュータ模擬ブロックが、模擬を行なう際の模擬周期内で処理すべきソフトウェアの一部の実行を、前記中継処理部を介して第二のマイクロコンピュータ模擬ブロックに要求し、当該要求を行なった模擬周期内で第二のマイクロコンピュータ模擬ブロックがソフトウェアを実行した結果を、前記中継処理部を介して取得するように構成され、
前記ソフトウェアが、予め設定された優先順位に従って処理される複数のタスクで構成され、第一のマイクロコンピュータ模擬ブロックからタスクの一部の実行を要求された第二のマイクロコンピュータ模擬ブロックは、当該タスクの優先順位に従って要求されたタスクの一部を実行することを特徴とするマイクロコンピュータの模擬装置。
【請求項２】
前記模擬周期は１回の周期内で、模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアの実行と、模擬対象であるマイクロコンピュータが制御を行なう被制御装置との入出力とを行なうことを特徴とする請求項１記載のマイクロコンピュータの模擬装置。
【請求項３】
第一のマイクロコンピュータ模擬ブロックから第二のマイクロコンピュータ模擬ブロックに要求したソフトウェアが、第二のマイクロコンピュータ模擬ブロックで設定時間内に実行されたか否かを監視する監視部を備えていることを特徴とする請求項１または２記載のマイクロコンピュータの模擬装置。
【請求項４】
第一のマイクロコンピュータ模擬ブロックは、各タスクの優先順位を設定したタスク優先順位テーブルに従って各タスクを実行し、第二のマイクロコンピュータ模擬ブロックは、タスクの一部として要求されたモデル演算を、各モデル演算の優先順位を設定したモデル演算優先順位テーブルに従って実行するように構成され、前記モデル演算優先順位テーブルは、前記タスク優先順位テーブルの優先順位を承継した優先順位と、独自に設定された優先順位の何れかの優先順位が設定されていることを特徴とする請求項１から３の何れかに記載のマイクロコンピュータの模擬装置。
【請求項５】
ＣＰＵと当該ＣＰＵの周辺回路とが内部に組み込まれたマイクロコンピュータを模擬するマイクロコンピュータの模擬装置であって、
模擬対象であるマイクロコンピュータのＣＰＵで実行される、複数のタスクでなるソフトウェアを実行する第一及び第二のマイクロコンピュータ模擬ブロックを備え、
第一のマイクロコンピュータ模擬ブロックが実行する第一のタスクに含まれる所定の演算を第二のタスクとして、第二のマイクロコンピュータ模擬ブロックで実行するように構成し、
第二のマイクロコンピュータ模擬ブロックが第二のタスクの演算を、第一のタスクに設定された優先順位に従って実行することを特徴とするマイクロコンピュータの模擬装置。
【請求項６】
ＣＰＵと当該ＣＰＵの周辺回路とが内部に組み込まれたマイクロコンピュータを模擬するマイクロコンピュータの模擬装置であって、
模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを実行するマイクロコンピュータ模擬ブロックと、
自装置の外部に設けられた模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを実行する外部マイクロコンピュータ模擬装置から、当該外部マイクロコンピュータ模擬装置が実行する第一のタスクに含まれる所定の演算を、第二のタスクとして実行するように要求を受ける処理要求受信部とを備え、
前記マイクロコンピュータ模擬ブロックは、前記処理要求受信部から第二のタスクの演算要求を受けると、第二のタスクを第一のタスクに設定された優先順位に従って実行することを特徴とするマイクロコンピュータの模擬装置。
【請求項７】
ＣＰＵと当該ＣＰＵの周辺回路とが内部に組み込まれたマイクロコンピュータを模擬するマイクロコンピュータの模擬システムであって、
模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを、模擬対象であるマイクロコンピュータとは異なるマイクロコンピュータを用いて実行する第一のマイクロコンピュータ模擬装置と、
模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを、マイクロコンピュータに組み込まれたものではないＣＰＵで実行する第二のマイクロコンピュータ模擬装置とを備え、
第一のマイクロコンピュータ模擬装置が実行する第一のタスクに含まれる所定の演算を第二のタスクとして、第二のマイクロコンピュータ模擬装置で実行するように構成し、
第二のマイクロコンピュータ模擬装置が第二のタスクの演算を、第一のタスクに設定された優先順位に従って実行することを特徴とするマイクロコンピュータの模擬システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を制御するマイクロコンピュータに組み込まれるソフトウェアの開発または評価を行なうソフトウェア開発装置等に好適に用いることができるマイクロコンピュータの模擬装置に関する。
【背景技術】
【０００２】
制御対象となる機器の高性能化、高機能化が急激に進む状況下で、機器を制御する電子制御装置に組み込まれるマイクロコンピュータの性能も年々進化している。
【０００３】
例えば車両のエンジンを制御する電子制御ユニット（Electronic Control Unit）のような電子制御装置では、エンジンの高性能化、高機能化の流れの中で、現状の電子制御装置の性能よりも優れた性能を発揮する次世代の電子制御装置を想定した新しいアプリケーションソフトウェア（制御用ロジック）が先行開発されている。
【０００４】
先行開発される制御用ロジックは、性能向上が見込まれる次世代のマイクロコンピュータがターゲットとなることが多いのであるが、そのような性能の向上したマイクロコンピュータが組み込まれた電子制御装置が開発時に実在しないばかりか、次世代のマイクロコンピュータそのものも実在しない場合もあるため、多くの場合は、現状のマイクロコンピュータをベースにして先行ロジックの開発を行なわざるを得なかった。
【０００５】
しかし、現状のマイクロコンピュータを組み込んだ電子制御装置を用いて先行ロジックの開発を行なう場合には、マイクロコンピュータのＣＰＵの処理能力の不足や、メモリ容量の不足や、更には周辺リソースの不足が生じる等の問題があるため、精度の高い先行ロジックの開発が困難となり、次期マイクロコンピュータに対応したアプリケーションソフトウェアの開発が遅れる等、新製品の開発に支障を来たしていた。
【０００６】
つまり、現状の電子制御機器に組み込まれるマイクロコンピュータは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様となるようにＣＰＵ性能及び周辺リソースが選択されて、それらが１つのパッケージの中に組み込まれているため、新製品に対応してそれぞれの性能や機能を変更する必要が生じても、マイクロコンピュータそのものを変更しない限り対応できないのである。
【０００７】
そこで、特許文献１には、マイクロコンピュータに内蔵されるＣＰＵを模擬するアプリケーション処理機能部と通信機能部を備えたマザーボードと、マイクロコンピュータに内蔵される周辺リソースを模擬するＩ／Ｏボードと、マイクロコンピュータの外部に設けられる入出力回路を備えたインタフェースボードの三つの機能ブロックを備えたソフトウェア開発装置が提案されている。
【０００８】
図１には、マイクロコンピュータが実装された既存の電子制御装置が左方に示され、上述のソフトウェア開発装置が右方に示されている。
【０００９】
当該マザーボードには、アプリケーションソフトウェアを実行する高性能ＣＰＵが実装されるとともに、マイクロコンピュータのＣＰＵと周辺リソース間を接続する内部バスに相当する機能を実現するソフトウェアであるＩ／Ｏドライバが実装されている。
【００１０】
当該Ｉ／Ｏボードには、マイクロコンピュータに内蔵される周辺リソースをＦＰＧＡとソフトウェアを用いて実現する模擬マイクロコンピュータ周辺装置と、演算機能部と、通信機能部を備え、当該インタフェースボードには、電子制御装置に組み込まれるマイクロコンピュータ以外のハードウェアに相当する入出力回路を備えている。
【００１１】
そして、Ｉ／Ｏボードの演算機能部にバスコントローラが設けられ、マザーボードの通信機能部と当該バスコントローラがＰＣＩバスで接続されるとともに、バスコントローラと模擬マイクロコンピュータ周辺装置とが内部バスで接続され、ＰＣＩバス、バスコントローラ、及び内部バスを介して、通信機能部と模擬マイクロコンピュータ周辺装置との間でデータの送受信が行われるように構成されている。
【００１２】
しかし、上述した従来のソフトウェア開発装置では、ターゲットとなるマイクロコンピュータが変更されると、それに対応してＩ／Ｏボードを変更するばかりでなく、マザーボード上のＩＯドライバ等を大きく変更する必要があり、非常に煩雑な改変処理が必要になるという問題があった。
【特許文献１】特開２００４−２３４５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、既存の電子制御ユニットを大きく変更することなく、一部機能を改良する必要がある場合、例えば、アプリケーションソフトウェアに新機能を追加するような場合等に、当該電子制御ユニットに新機能を追加したアプリケーションソフトウェアを移植して動作確認ができれば効率的であるが、既存の電子制御ユニットに組み込まれているメモリの容量制限や、既存の電子制御ユニットに組み込まれているマイクロコンピュータの処理能力の不足のために、そのような動作確認ができない場合がある。
【００１４】
特に、車両のパワートレーンを制御する電子制御ユニットのアプリケーションソフトウェアの先行開発で、大容量且つ高負荷な処理の一部を改変するような場合に、手軽に実機検証できるソフトウェア開発装置が望まれている。
【００１５】
このような場合に、既存の電子制御ユニットと追加ソフトウェアのみ実行する外部の演算処理装置を通信ラインで接続し、電子制御ユニットから外部の演算処理装置に追加ソフトウェアの実行を要求し、電子制御ユニットが外部の演算処理装置による処理結果に基づいて一連の処理を実行するような構成が提案されているが、電子制御ユニットの演算周期と外部の演算処理装置の演算周期が同期せず、適切な評価ができないという問題があった。
【００１６】
そこで、上述した従来のソフトウェア開発装置を用いてアプリケーションソフトウェアの評価を行なうことも考えられるが、予め当該電子制御ユニットで用いられているマイクロコンピュータに対応したソフトウェア開発装置が構築されていない場合等には、従来と同様、非常に煩雑な改変処理が必要になる。
【００１７】
本発明は、上述の問題点に鑑み、ターゲットとなるマイクロコンピュータに応じて迅速に対応でき、スピーディなソフトウェア開発が可能となるマイクロコンピュータの模擬装置を提供する点にある。
【課題を解決するための手段】
【００１８】
上述の目的を達成するため、本発明によるマイクロコンピュータの模擬装置の特徴構成は、ＣＰＵと当該ＣＰＵの周辺回路とが内部に組み込まれたマイクロコンピュータを模擬するマイクロコンピュータの模擬装置であって、模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを実行する第一及び第二のマイクロコンピュータ模擬ブロックと、第一のマイクロコンピュータ模擬ブロックと第二のマイクロコンピュータ模擬ブロックとの間で遣り取りするデータを中継する中継処理部とを備え、第一のマイクロコンピュータ模擬ブロックが、模擬を行なう際の模擬周期内で処理すべきソフトウェアの一部の実行を、前記中継処理部を介して第二のマイクロコンピュータ模擬ブロックに要求し、当該要求を行なった模擬周期内で第二のマイクロコンピュータ模擬ブロックがソフトウェアを実行した結果を、前記中継処理部を介して取得するように構成され、前記ソフトウェアが、予め設定された優先順位に従って処理される複数のタスクで構成され、第一のマイクロコンピュータ模擬ブロックからタスクの一部の実行を要求された第二のマイクロコンピュータ模擬ブロックは、当該タスクの優先順位に従って要求されたタスクの一部を実行する点にある。
【００１９】
上述の構成によれば、例えば、既存のアプリケーションソフトウェア実行する一方のマイクロコンピュータ模擬ブロックから、追加または修正したソフトウェアを他方のマイクロコンピュータ模擬ブロックで実行するように要求し、その結果に基づいて一方のマイクロコンピュータ模擬ブロックが処理を継続することができるようになる。このとき、一方のマイクロコンピュータ模擬ブロックが、模擬周期内で処理すべきアプリケーションソフトウェアの一部が、他方のマイクロコンピュータ模擬ブロックにより当該模擬周期内で処理されるため、一方のマイクロコンピュータ模擬ブロックは当該アプリケーションソフトウェアを当該所定周期内で完結させることができるようになる。
【発明の効果】
【００２０】
以上説明した通り、本発明によれば、ターゲットとなるマイクロコンピュータに応じて迅速に対応でき、スピーディなソフトウェア開発が可能となるマイクロコンピュータの模擬装置を提供することができるようになった。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明によるマイクロコンピュータの模擬装置を説明する。当該マイクロコンピュータの模擬装置は、例えば、車両のエンジンを制御する電子制御ユニット（以下、「ＥＣＵ」と記す。）に組み込まれるマイクロコンピュータのアプリケーションソフトウェアを開発するためのソフトウェア開発装置として実現されている。
【００２２】
尚、本発明によるマイクロコンピュータの模擬装置の用途は、ＥＣＵのアプリケーションソフトウェアの開発に限るものではなく、広く組み込みソフトウェアの開発に使用されるものである。
【００２３】
先ず、模擬対象であるマイクロコンピュータＭが実装された電子制御ユニット（Electronic Control Unit：以下、「ＥＣＵ」と記す。）の構成について説明する。
【００２４】
図２に示すように、ＥＣＵ１０１は、外部からの入力信号を処理する入力回路Ｂと、入力回路Ｂを介して入力された各信号を演算処理するマイクロコンピュータＭと、マイクロコンピュータＭで演算処理された信号を増幅して出力する出力回路Ｄを備えている。
【００２５】
入力回路Ｂには、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力が入力される。
【００２６】
ＥＣＵ１０１から出力される信号には、シフト制御ソレノイドやＶＶＴ（可変バルブタイミング）ソレノイドへのアナログ制御信号（アナログ出力）、点火信号や燃料の噴射信号等のパルス制御信号（パルス出力）、ＩＳＣ（アイドル速度制御）用のパルス制御信号（パルス出力）、及び、チェックエンジンランプ、メインリレー、エヤコンカット信号等のデジタル制御信号（デジタル出力）等が含まれる。
【００２７】
マイクロコンピュータＭは、アプリケーションソフトウェアが格納されるＲＯＭや演算処理に使用されるＲＡＭを備えたメモリ１０９と、アプリケーションソフトウェアを実行するＣＰＵ１０２と、入出力回路Ｂ，Ｄに対する入出力制御を行う周辺リソース（周辺回路）が１つのパッケージに収納されている。
【００２８】
周辺リソースには、入力系のリソースと出力系のリソースが含まれる。入力系のリソースとして、デジタル信号を扱う入力ポート１０３とラッチポート１０４、アナログ入力を扱うＡ／Ｄコンバータ１０５、及びパルス入力を扱うキャプチャ１０６等が設けられ、出力系のリソースとして、デジタル出力を出力する出力ポート１１２、パルス出力を出力するＰＷＭ（パルス幅変調器）１１３とコンペア１１４、及びアナログ信号を出力するシリアル１１５等が設けられている。
【００２９】
これらの周辺リソースは内部バス１１０によってメモリ１０９及びＣＰＵ１０２に相互に接続されている。また、マイクロコンピュータＭの内部には、これらの周辺リソースに加えて、内部タイマ１０７や割り込みコントローラ１０８等が設けられている。
【００３０】
車両の運転状態を表す各センサやスイッチ類からの信号がＥＣＵ１０１に入力されると、入力回路で信号処理されてマイクロコンピュータＭに入力される。入力された信号は入力系の周辺リソースでＣＰＵ値に変換され、演算部として機能するメモリ１０９とＣＰＵ１０２でＣＰＵ値に基づいて車両状態が検出され、車両状態に応じた出力要求信号が生成される。
【００３１】
出力要求信号は出力系の周辺リソースで出力信号に変換されてマイクロコンピュータＭから出力される。この出力信号に従って車両に装備された各アクチュエータがドライバＤにより駆動され、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。
【００３２】
図３及び図４に示すように、ソフトウェア開発装置は、上述のＥＣＵ１０１を模擬するエミュレータとして機能し、マザーボード１００と、ＩＯボード２００と、インタフェースボード３００とを備えて構成されている。
【００３３】
図３は、ソフトウェア開発装置のハードウェア構成を示し、図４は、ソフトウェア開発装置の機能ブロック構成を示す。
【００３４】
マザーボード１００には、模擬対象となるマイクロコンピュータのＣＰＵにより実行されるアプリケーションソフトウェアの一部を実行する第一のマイクロコンピュータ模擬ブロック１０が構築され、ＰＣＩバスインタフェース回路１３と、ＰＣＩバスを中継するブリッジであるスターファブリックのような高速ＬＡＮインタフェース回路１４を備えている。
【００３５】
ＩＯボード２００には、模擬対象となるマイクロコンピュータのＣＰＵにより実行されるアプリケーションソフトウェアの一部を実行する第二のマイクロコンピュータ模擬ブロック２０と、各マイクロコンピュータ模擬ブロック１０，２０間で遣り取りするデータを中継する中継処理部２４が構築され、ＰＣＩバスインタフェース回路２５と、ＰＣＩバスを中継するブリッジであるスターファブリックのような高速ＬＡＮインタフェース回路２６を備えている。
【００３６】
インタフェースボード３００には、模擬対象となるマイクロコンピュータの外部に設けられる入出力周辺回路の模擬回路３０が構築され、ＩＯボード２００に備えた第二のマイクロコンピュータ模擬ブロック２０と制御対象であるエンジンまたはエンジンを模擬するエンジンシミュレータの入出力信号線が模擬回路３０を介して接続される。
【００３７】
第一のマイクロコンピュータ模擬ブロック１０は、汎用のパーソナルコンピュータに用いられるような数ＧＨｚの高速且つ高機能な第一のＣＰＵ１１と、ＲＯＭ及びＲＡＭを備えたメモリ１２等を備え、メモリ１２には、エンジン制御用のアプリケーションソフトウェアの一部、ＰＣＩバスを介して中継処理部２４の共有メモリにアクセスするモデルインタフェース等のソフトウェアが格納されている。
【００３８】
第一のＣＰＵ１１と当該第一のＣＰＵ１１で実行されるアプリケーションソフトウェアの一部とでモデル演算部１５ａが構成され、第一のＣＰＵ１１と当該第一のＣＰＵ１１で実行されるモデルインタフェースとでマイクロコンピュータ模擬ブロック２０との間で遣り取りするデータを入出力する処理要求受信部としての第一の入出力制御部１５ｂが構成される。
【００３９】
第二のマイクロコンピュータ模擬ブロック２０は、模擬対象となるマイクロコンピュータと同程度のクロック周波数の百数十ＭＨｚで動作する第二のＣＰＵ２１と、ＲＯＭ及びＲＡＭを備えたメモリ２２と、模擬対象となるマイクロコンピュータのタイマ回路、割込み制御部、入力系リソース、出力系リソースを模擬する周辺回路２３を備えている。
【００４０】
メモリ２２には、エンジン制御用のアプリケーションソフトウェアの一部、中継処理部２４の共有メモリにアクセスするモデルインタフェース、周辺回路２３を制御するＩ／Ｏドライバ等のソフトウェアが格納されている。
【００４１】
第二のＣＰＵ１２１と当該第一のＣＰＵ２１で実行されるアプリケーションソフトウェアの一部とでタスク処理部２１ａが構成され、第二のＣＰＵ２１と当該第二のＣＰＵ２１で実行されるモデルインタフェースとでマイクロコンピュータ模擬ブロック１０との間で遣り取りするデータを入出力する第二の入出力制御部２１ｂが構成され、第二のＣＰＵ１２１と当該第一のＣＰＵ２１で実行されるＩ／Ｏドライバと周辺回路２３とで模擬周辺回路が構成される。
【００４２】
中継処理部２４は、第一及び第二の入出力制御部１１ｂ，２１ｂとの間で遣り取りするデータを記憶する共有メモリ２４ａと、共有メモリ２４ａに対するデータの入出力を管理し、第一及び第二の入出力制御部１１ｂ，２１ｂ間のデータの授受を制御するＦＰＧＡ等の半導体集積回路でなる共有メモリ管理部２４ｂを備えている。
【００４３】
中継処理部２４は、外部割込み信号ＥＸ−ＩＮＴ及び外部メモリバスＥＸ−ＭＢＵＳを介して第二の入出力制御部２１ｂと接続されるとともに、ＰＣＩバス２５等を介して第一の入出力制御部１１ｂと接続されている。
【００４４】
共有メモリ２４ａは、第二の入出力制御部２１ｂからの割込み要求及び出力データを記憶する領域と、第一の入出力制御部１１ｂからの割込み要求及び出力データを記憶する領域に区画され、割込み要求を格納する領域は共有メモリ管理部２４ｂによりＦＩＦＯ方式で処理される。
【００４５】
共有メモリ管理部２４ｂは、第二の入出力制御部２１ｂからの割込み要求及び出力データが共有メモリ２４ａに書き込まれると、ＰＣＩバス２５を介して第一の入出力制御部１１ｂに当該割込み要求を出力する。当該割込み信号を受信した第一の入出力制御部１１ｂはＰＣＩバス１４を介して当該データを読み出す。
【００４６】
同様に、共有メモリ管理部２４ｂは、ＰＣＩバス１３を介して第一の入出力制御部１１ｂからの割込み要求及び出力データが共有メモリ２４ａに書き込まれると、第二の入出力制御部２１ｂに割込み信号を出力する。当該割込み信号を受信した第二の入出力制御部２１ｂは外部メモリバスを介して当該データを読み出す。
【００４７】
このようにして、共有メモリ管理部２４ｂは、第一の入出力制御部１１ｂまたは第一の入出力制御部１１ｂからの割込み要求をその発生順に他方に伝達することにより、何れか一方の入出力制御部から共有メモリ２４ａに書き込まれたデータを他方の入出力制御部に出力するように管理する。
【００４８】
以下、既存のＥＣＵのアプリケーションソフトウェアの一部を改良し或は新機能を追加する場合を例に、このようなソフトウェア開発装置を用いたアプリケーションソフトウェアの動作確認手順、及び、当該ソフトウェア開発装置の更なる詳しい構成について説明する。
【００４９】
ＥＣＵのアプリケーションソフトウェアは、クランクパルス信号等の外部割込みや内部タイマの割込み等の様々なイベントの発生に応じて実行される複数のタスクで構成されている。このようなタスクでは、エンジンの状態に応じてエンジンに対する制御タイミングや制御量が演算され、適切な制御信号が出力される。
【００５０】
例えば、クランクパルス信号等からエンジンの回転数を算出するタスク、アクセルの操作量とエアフローメータで検出された吸入空気量等に基づいて燃料噴射量を演算するタスク、クランクパルス信号とバルブ駆動パルス信号から噴射タイミングを算出するタスク等である。
【００５１】
制御タイミングや制御量は、エンジンの燃焼状態、筒内圧力、温度等の様々な物理条件により異なる。そこで、通常のＥＵＣでは、入力変数に対して適切な出力値が規定されたマップデータと呼ばれるテーブルデータに基づいて制御タイミングや制御量が算出されている。
【００５２】
入力変数となる様々な物理条件を反映した詳細な物理モデル式に基づいて制御タイミングや制御量を算出する場合には、演算負荷が重くなり、必要な制御周期で演算するために高価な高速ＣＰＵを用いる必要があるが、マップデータを用いると安価な低速ＣＰＵでも十分に対応できるためである。
【００５３】
しかし、現状のＣＰＵでは不可能な物理モデル式に基づいた制御量の算出が、技術の進歩により次世代のＣＰＵでは十分に可能となるような場合には、このようなモデル式をタスクに組込み、先行開発する必要が生じる。
【００５４】
そのような場合に、上述したソフトウェア開発装置を好適に用いることができる。
【００５５】
図５には、このような場合の評価用のアプリケーションソフトウェアの開発手順が示されている。右側の破線で囲まれたブロックは第二のマイクロコンピュータ模擬ブロック２０で実行されるアプリケーションを示し、左側の破線で囲まれたブロックは第一のマイクロコンピュータ模擬ブロック１０で実行されるアプリケーションが示されている。
【００５６】
第一のマイクロコンピュータ模擬ブロック１０で実行されるアプリケーションは、新規に開発する物理モデルを定義したモデル関数である。入出力が定義されたモデルＡ，Ｂ，Ｃのソースファイルが生成され、実行プログラムにコンパイルされた後にマザーボード゛１００の第一のメモリ１２に格納される。
【００５７】
第二のマイクロコンピュータ模擬ブロック２０で実行されるアプリケーションは、既存のＥＣＵに対して構築されたアプリケーションのソースファイルに、新規に生成したモデル関数をコールするプログラムであるモデル呼出部２１ｃが組み込まれる。モデル呼出部２１ｃは、モデル演算が必要となるタスク内に組み込まれる。モデル呼出部２１ｃが組み込まれたソースファイルが生成され、実行プログラムにコンパイルされた後にＩ／Ｏボード２００の第二のメモリ２２に格納される。
【００５８】
ここでは、第二のマイクロコンピュータ模擬ブロック２０が、既存のＥＣＵに組み込まれたマイクロコンピュータを模擬し、既存のマイクロコンピュータの周辺リソースそのものを模擬する模擬周辺回路を備えるように構築されている。
【００５９】
第一のマイクロコンピュータ模擬ブロック１０で実行されるアプリケーションと第二のマイクロコンピュータ模擬ブロック２０で実行されるアプリケーションは、モデル／タスクリンク情報で関連付けられ、モデル／タスクリンク情報は、夫々のソースファイルに組み込まれる。
【００６０】
モデル／タスクリンク情報は、タスクから各モデルＡ，Ｂ，Ｃに入力される入力データと、各モデルＡ，Ｂ，Ｃからタスクに出力される出力データの定義情報と、タスクとタスクから呼び出されるモデルの優先順位を規定した優先順位テーブル情報と、タスクから呼び出されるモデルの実行許容時間情報を備えている。
【００６１】
入出力データの定義情報には、当該入出力データを授受する共有メモリ２４ａのアドレス情報が含まれる。
【００６２】
呼出元のタスクの優先順位を承継するように設定された優先順位承継モデルと、呼出元のタスクの優先順位とは関係なく設定された優先順位非承継モデルがあり、それぞれの優先順位が優先順位テーブル情報として規定されている。
【００６３】
夫々のアプリケーションソフトウェアがインストールされたソフトウェア開発装置が起動されると、第二のマイクロコンピュータ模擬ブロック２０のタスク処理部２１ａにより、優先順位に従って各タスクが実行される。
【００６４】
図６に示すように、タスク処理部２１ａで実行されるタスクの一つＡがモデルＡの演算を必要とする場合に、モデル呼出部２１ｃから第二の入出力制御部２１ｂに呼出要求が出力される（図６中、（１）で示すタイミング）。第二の入出力制御部２１ｂにより、共有メモリ２４ａに割込み要求データ、当該モデルの入力データ、及び実行許容時間が書き込まれる。
【００６５】
これに対応して、共有メモリ管理部２４ｂは、ＰＣＩバス２５を介して第一の入出力制御部１１ｂに割込み要求を送信する（図６中、（２）で示すタイミング）。当該割込み要求を受信した第一の入出力制御部１１ｂは、ＰＣＩバス１３を介して共有メモリ２４ａに書き込まれた入力データを読み取り（図６中、（３）で示すタイミング）、第一のメモリ１２に格納してモデル演算部１１ａを起動する（図６中、（４）で示すタイミング）。
【００６６】
モデル演算部１１ａは、対応するモデル演算を終了すると、出力データを第一のメモリ１２に格納して第一の入出力制御部１１ｂに出力要求する（図６中、（５）で示すタイミング）。第一の入出力制御部１１ｂは、ＰＣＩバス１３を介して割込み要求データ及び当該出力データを共有メモリ２４ａに書き込む。
【００６７】
共有メモリ管理部２４ｂは、第二の入出力制御部２１ｂに割込み信号を出力する（図６中、（６）で示すタイミング）。当該割込み信号を受信した第二の入出力制御部２１ｂは外部メモリバスを介して当該出力データを読み出し、モデル呼出部２１ｃに引き渡す（図６中、（７）で示すタイミング）。タスク処理部２１ａは、当該出力データに基づいてタスクを実行する。
【００６８】
上述の手順を繰り返すことにより、マイクロコンピュータの模擬装置は、一方のマイクロコンピュータ模擬ブロックが、所定周期内で処理すべきアプリケーションソフトウェアの一部の実行を、中継処理部を介して他方のマイクロコンピュータ模擬ブロックに要求し、所定周期内で他方のマイクロコンピュータ模擬ブロックが実行した結果を中継処理部を介して獲得して、当該所定周期内での処理を完結するように構成されている。
【００６９】
ここに、所定周期とは、模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアの実行と、模擬対象であるマイクロコンピュータが制御を行なう被制御装置との入出力とを行なう演算の実行周期、つまり、模擬周期をいう。
【００７０】
共有メモリ管理部２４ｂは、第二の入出力制御部２１ｂからの割込み要求を検出すると、共有メモリ２４ａに書き込まれた実行許容時間を計時し、実行許容時間の計時が終了するまでに、第一の入出力制御部１１ｂから共有メモリ２４ａに出力データが書き込まれると当該計時を中止し、実行許容時間の計時が終了すると、共有メモリ２４ａに実行不能を示す仮の出力データを書き込んで、第二の入出力制御部２１ｂに出力する。
【００７１】
当該仮のデータを獲得したタスク処理部２１ａは、モデル演算の結果に替えて、既存のマップデータから出力データを算出してタスクを実行する。このような仮のデータは予め定義されており、外部に要求したモデル演算が実行許容時間内に終了しない場合であっても、所定周期内でのタスクの処理が完結されるように構成されている。
【００７２】
つまり、共有メモリ管理部２４ｂは、第二の入出力制御部２１ｂから共有メモリ２４ａにアプリケーションソフトウェアの実行要求データが書き込まれた後に、第一の入出力制御部１１ｂから当該実行要求データに対する結果データが共有メモリ２４ａに書き込まれるか否かを監視し、設定時間内に当該結果データが共有メモリ２４ａに書き込まれなかった場合に、共有メモリ２４ａに実行不能を示す結果データを書き込み、第二の入出力制御部２１ｂに出力する監視部として機能する。
【００７３】
尚、当該監視部は必ずしも共有メモリ管理部２４ｂに設ける必要はなく、モデルの呼出元のマイクロコンピュータ模擬ブロックに設けるものであってもよい。つまり、一方のマイクロコンピュータ模擬ブロックから他方のマイクロコンピュータ模擬ブロックに要求したアプリケーションソフトウェアが、他方のマイクロコンピュータ模擬ブロックで設定時間内に実行されたか否かを監視する監視部を備えていればよい。
【００７４】
モデル演算が実行許容時間内で終了しなかった場合には、共有メモリ管理部２４ｂにより、その旨の情報が共有メモリ２４ａとは異なるメモリに記憶され、またはタスク処理部２１ａにより、第二のメモリ２２に記憶される。
【００７５】
タスク処理部２１ａで、予め設定された優先順位に従って各タスクが実行されるように、モデル演算部１１ａでも、予め設定された優先順位に従って各モデルが演算される。
【００７６】
図７はタスク及びモデルの実行手順を示している。タスク処理部２１ａで実行されるタスクは、タスクＡ，タスクＢ，タスクＣの順に優先順位が設定されている。各タスクは上述したようにイベントの発生に伴なって起動されるタスクであり、タスクＡは例えば１ｍｓｅｃ．のインタバルで発生するタイマ割込みに対応するタスクであり、タスクＢは例えばクランクパルスのエッジで発生する外部割込みに対応するタスクであり、タスクＣは例えば４ｍｓｅｃ．のインタバルで発生するタイマ割込みに対応するタスクである。タスクＢの実行中に１ｍｓｅｃ．のタイマ割込みが発生すると、タスクＢの実行が中断され、タスクＡが優先的に実行される。
【００７７】
モデル演算部１１ａで実行されるモデルは、モデルＡ，モデルＢ，モデルＣ，モデルＤの順に優先順位が設定されている。モデルＡ，モデルＢ，モデルＣは夫々タスクＡ，タスクＢ，タスクＣから呼び出されるモデルで、その優先順位はタスクＡ，タスクＢ，タスクＣの優先順位が承継されている。モデルＤは、任意のタスクから呼出可能なタスクで、タスクの優先順位は承継されず、モデル間で固有に設定されている。
【００７８】
タスク処理部２１ａでタスクＣが実行されているときに、クランクパルスのエッジ割込みが発生するとタスクＢが優先的に実行され、タスクＢからモデルＢが呼び出されると、モデル演算部１１ａでモデルＡが演算される。
【００７９】
このとき、１ｍｓｅｃ．のタイマ割込みが発生すると、タスク処理部２１ａでは、タスクＢの実行が中断され、タスクＡが優先的に実行される。さらに、タスクＡからモデルＡが呼び出されると、モデル演算部１１ａでは、モデルＢの演算が中断され、モデルＡが優先的に演算される。
【００８０】
モデルＡの演算が終了すると、中断されていたモデルＢの演算が再開される。タスク処理部２１ａでは、タスクＡの処理が終了した後にタスクＢの処理が再開され、モデルＢからの出力データに基づいてタスクが実行される。その後タスクＢが終了すると、中断されていたタスクＣの処理が再開される。
【００８１】
タスクＡから呼び出されるモデルＤは、優先順位が最下位であるため、他のモデル演算が実行中であれば、それらが終了した後に演算される。
【００８２】
つまり、マイクロコンピュータの模擬装置は、アプリケーションソフトウェアが、予め設定された優先順位に従って処理される複数のアプリケーションソフトウェアで構成され、一方のマイクロコンピュータ模擬ブロックからアプリケーションソフトウェアの一部の実行を要求された他方のマイクロコンピュータ模擬ブロックは、当該アプリケーションソフトウェアの優先順位に従って要求されたアプリケーションソフトウェアの一部を実行するように構成されている。
【００８３】
上述した実施形態では、第一のマイクロコンピュータの模擬ブロックでモデル演算を行ない、第二のマイクロコンピュータの模擬ブロックで既存のタスクを実行するものを説明したが、本発明による第一のマイクロコンピュータの模擬ブロックは、モデル演算の専用ブロックとして位置付けられるものではなく、新規な追加タスクを実行したり、第二のマイクロコンピュータの模擬ブロックで実行される既存のタスクの一部を実行するように構成することも可能である。
【００８４】
また、第一のマイクロコンピュータの模擬ブロックで既存のタスク処理を行ない、第二のマイクロコンピュータの模擬ブロックで新規なモデルまたはタスクを実行するように構成してもよい。
【００８５】
つまり、本発明によるマイクロコンピュータの模擬装置は、模擬対象であるマイクロコンピュータのＣＰＵで実行されるソフトウェアを実行する第一及び第二のマイクロコンピュータ模擬ブロックと、第一のマイクロコンピュータ模擬ブロックと第二のマイクロコンピュータ模擬ブロックとの間で遣り取りするデータを中継する中継処理部とを備え、第一のマイクロコンピュータ模擬ブロックが、模擬を行なう際の模擬周期内で処理すべきソフトウェアの一部の実行を、前記中継処理部を介して第二のマイクロコンピュータ模擬ブロックに要求し、当該要求を行なった模擬周期内で第二のマイクロコンピュータ模擬ブロックがソフトウェアを実行した結果を、前記中継処理部を介して取得するものであればよく、当該模擬周期内での処理を完結するように構成されていればよい。
【００８６】
図５に示したマザーボードが収容された筐体にＩ／Ｏボード及びＩ／Ｆボードを収容することにより、単一の筐体で独立してマイクロコンピュータの模擬装置を構成することができる。また、マザーボードが収容された筐体にＩ／Ｏボード及びＩ／Ｆボードを収容したマイクロコンピュータの模擬装置と、Ｉ／Ｏボード及びＩ／Ｆボードが収容された筐体とを、例えばスターファブリックで接続することにより、マイクロコンピュータの模擬装置として動作させることも可能である。
【００８７】
上述したマイクロコンピュータの模擬装置の具体構成は例示に過ぎず、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。
【図面の簡単な説明】
【００８８】
【図１】従来のマイクロコンピュータの模擬装置の構成図
【図２】本発明によるマイクロコンピュータの模擬装置の対象となるマイクロコンピュータのブロック構成図
【図３】本発明によるマイクロコンピュータの模擬装置のハードウェア構成図
【図４】本発明によるマイクロコンピュータの模擬装置の機能ブロック構成図
【図５】本発明によるマイクロコンピュータの模擬装置に移植されるアプリケーションソフトウェアの説明図
【図６】本発明によるマイクロコンピュータの模擬装置の動作説明図
【図７】本発明によるマイクロコンピュータの模擬装置により実行されるタスク及びモデルの処理手順説明図
【符号の説明】
【００８９】
１００：マザーボード
２００：ＩＯボード
３００：インタフェースボード
１０：第一のマイクロコンピュータ模擬ブロック
１１：第一のＣＰＵ
１２：第一のメモリ
１１ａ：モデル演算部
１１ｂ：第一の入出力制御部
２０：第二のマイクロコンピュータ模擬ブロック
２１：第二のＣＰＵ
２１ａ：タスク処理部
２１ｂ：第二の入出力制御部
２１ｃ：モデル呼出部
２２：第二のメモリ
２３：周辺回路
２４：中継処理部
２４ａ：共有メモリ
２４ｂ：共有メモリ管理部
【図１】
0005156440.tif 000002
【図２】
0005156440.tif 000003
【図３】
0005156440.tif 000004
【図４】
0005156440.tif 000005
【図５】
0005156440.tif 000006
【図６】
0005156440.tif 000007
【図７】
0005156440.tif 000008