(57)【要約】  ターゲットとするマイクロコンピュータが変更される場合であっても迅速に対応でき、スピーディなソフトウェア開発が可能となるマイクロコンピュータの模擬装置を提供する。  ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアを実行するＣＰＵを備えたマザーボード１０と、マイクロコンピュータに設けられる周辺回路の処理と、マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理とをＦＰＧＡで実行するＩＯボード２０とを備え、ＦＰＧＡに共有メモリ部２２が設けられ、マザーボード１０とＩＯボード２０との間に設けられた通信バスを介して共有メモリ部２２に記憶したデータの更新を行い、マザーボード１０に設けられたＣＰＵとＦＰＧＡとの間でのデータの遣り取りを行う。
2008099931.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、
前記マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアを実行するマザーボードと、
前記マイクロコンピュータに設けられる周辺回路の処理と、前記マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理とを実行するＩＯボードと、
前記マザーボードとＩＯボードとの間に設けられ、前記マザーボードで実行するアプリケーションソフトウェアと前記ＩＯボードで実行するＩＯ処理との間で行う必要がある、前記マイクロコンピュータ固有のデータの遣り取りを、前記マイクロコンピュータに依存しない通信処理に変換した上で行うブリッジ部と、を備えているマイクロコンピュータの模擬装置。
【請求項２】
前記ブリッジ部は、前記ＩＯボードに設けられた共有メモリ部と、前記マザーボードと前記ＩＯボードとの間に設けられた通信バスを備えて構成され、
通信バスを介して前記共有メモリ部に記憶したデータの更新を行うことによって、前記マザーボードと前記ＩＯボードとの間でのデータの遣り取りを行うように構成されている請求項１記載のマイクロコンピュータの模擬装置。
【請求項３】
前記ＩＯボードに、前記周辺回路の処理を模擬する模擬周辺回路が設けられ、
前記ブリッジ部は、前記模擬周辺回路で発生したイベントを前記共有メモリ部を介してＦＩＦＯ方式で前記マザーボードに送信し、当該入力イベントに対応したデータを前記共有メモリ部を介して前記マザーボードから読み出すように構成されている請求項２記載のマイクロコンピュータの模擬装置。
【請求項４】
ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、
前記マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアを実行するＣＰＵを備えたマザーボードと、
前記マイクロコンピュータに設けられる周辺回路の処理を模擬する模擬周辺回路と、前記マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理を実行するハードウェア処理部を備えたＩＯボードと、を有し、
前記ＩＯボードのハードウェア処理部に共有メモリ部が設けられ、
前記マザーボードと前記ＩＯボードとの間に設けられた通信バスを介して前記共有メモリ部に記憶したデータの更新を行うことによって、前記マザーボードに設けられたＣＰＵと前記ＩＯボードのハードウェア処理部との間でのデータの遣り取りを行うマイクロコンピュータの模擬装置。
【請求項５】
前記模擬周辺回路がマイクロコンピュータにより構成されている請求項４記載のマイクロコンピュータの模擬装置。
【請求項６】
前記マザーボードと前記ＩＯボードが別体で構成され、前記通信バスを中継するブリッジを介して夫々が接続されている請求項４または５記載のマイクロコンピュータの模擬装置。
【請求項７】
前記ＩＯボードが、前記マイクロコンピュータの入出力周辺回路を模擬するインタフェースボードに接続され、前記インタフェースボードが制御対象と接続可能に構成されている請求項４から６の何れかに記載のマイクロコンピュータの模擬装置。
【請求項８】
前記模擬周辺回路で発生し、前記アプリケーションソフトウェアにより実行される各演算を起動する制御データが、前記共有メモリ部に記憶され、前記共有メモリ部に記憶された制御データが前記データ通信バスを介して前記マザーボードに読み取られる請求項４から７の何れかに記載のマイクロコンピュータの模擬装置。
【請求項９】
前記マザーボードに前記データ通信バスを介して前記共有メモリ部に格納されるデータをアクセスして前記アプリケーションソフトウェアと接続するメモリドライバを備えている請求項４から８の何れかに記載のマイクロコンピュータの模擬装置。
【請求項１０】
ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、
前記マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアをＣＰＵで実行するマザーボードと、
前記マイクロコンピュータに設けられる周辺回路の処理と、前記マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理とを実行するＩＯボードと、
を備えるマイクロコンピュータの模擬装置。
【請求項１１】
ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、
前記マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアをＣＰＵで実行するマザーボードと、
前記マイクロコンピュータに設けられる周辺回路の処理と、前記マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理とを、書き換え可能なハードウェアで実行するＩＯボードと、
を備えるマイクロコンピュータの模擬装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を制御するマイクロコンピュータに組み込まれるソフトウェアの開発または評価を行なうためのソフトウェア開発装置等に、好適に用いることができるマイクロコンピュータの模擬装置に関する。
【背景技術】
【０００２】
制御対象となる機器の高性能化、高機能化が急激に進む状況下で、機器を制御する電子制御装置に組み込まれるマイクロコンピュータの性能も年々進化している。【０００３】
例えば車両のエンジンを制御する電子制御ユニット（Electronic Control Unit）のような電子制御装置では、エンジンの高性能化、高機能化の流れの中で、現状の電子制御装置の性能よりも優れた性能を発揮する次世代の電子制御装置を想定した新しいアプリケーションソフトウェア（制御用ロジック）が先行開発されている。【０００４】
先行開発される制御用ロジックは、性能向上が見込まれる次世代のマイクロコンピュータがターゲットとなることが多いのであるが、そのような性能の向上したマイクロコンピュータが組み込まれた電子制御装置が開発時に実在しないばかりか、次世代のマイクロコンピュータそのものも実在しない場合もあるため、多くの場合は、現状のマイクロコンピュータをベースにして先行ロジックの開発を行なわざるを得なかった。【０００５】
しかし、現状のマイクロコンピュータを組み込んだ電子制御装置を用いて先行ロジックの開発を行なう場合には、マイクロコンピュータのＣＰＵの処理能力の不足や、メモリ容量の不足や、更には周辺リソースの不足が生じる等の問題があるため、精度の高い先行ロジックの開発が困難となり、次期マイクロコンピュータに対応したアプリケーションソフトウェアの開発が遅れる等、新製品の開発に支障を来たしていた。【０００６】
つまり、現状の電子制御機器に組み込まれるマイクロコンピュータは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様となるようにＣＰＵ性能及び周辺リソースが選択されて、それらが１つのパッケージの中に組み込まれているため、新製品に対応してそれぞれの性能や機能を変更する必要が生じても、マイクロコンピュータそのものを変更しない限り対応できないのである。【０００７】
そこで、特許文献１には、マイクロコンピュータに内蔵されるＣＰＵを模擬するアプリケーション処理機能部と通信機能部を備えた中央ブロックと、中央ブロックとＰＣＩバスで接続される周辺ブロックと、周辺ブロックに接続するインタフェース回路ブロックの三つの機能ブロックを備えたソフトウェア開発装置が提案されている。【０００８】
当該周辺ブロックには、マイクロコンピュータに内蔵される周辺リソースをソフトウェアで実現して入出力処理を行なう模擬マイクロコンピュータ周辺装置と、演算機能部と、通信機能部を備え、当該インタフェース回路ブロックには、電子制御ユニットに組み込まれるマイクロコンピュータ以外のハードウェアに相当する回路を備えている。【０００９】
そして、周辺ブロックの演算機能部にバスコントローラが設けられ、中央ブロックの通信機能部と当該バスコントローラがＰＣＩバスで接続されるとともに、バスコントローラと模擬マイクロコンピュータ周辺装置とが内部バスで接続され、ＰＣＩバス、バスコントローラ、及び内部バスを介して、通信機能部と模擬マイクロコンピュータ周辺装置との間でデータの送受信が行われるように構成されている。【００１０】
図２（ｂ）及び図７に示すように、当該ソフトウェア開発装置では、中央ブロックに、マイクロコンピュータの内部リソースに接続するバスに相当する機能を実現するソフトウェアであるＩＯドライバが実装され、中央ブロックと周辺ブロックがＰＣＩバスで接続されるとともに、中央ブロックにはＩＯドライバとアプリケーションソフトウェアを接続するソフトウェアであるプラットフォームが実装され、周辺ブロックにはＦＰＧＡでなる疑似マイクロコンピュータ周辺装置がファームウェアとして実装されている。
【特許文献１】特開２００４−２３４５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した従来のソフトウェア開発装置は、ＣＰＵと、割り込みコントローラやキャプチャ等の周辺リソースで構成されるマイクロコンピュータの機能が分離されて、アプリケーションプログラムを実行するＣＰＵの処理内容が中央ブロックであるマザーボードに割り付けられ、マイクロコンピュータの周辺リソースによる処理内容が周辺ブロックであるＩＯボードに割り付けられていた。【００１２】
つまり、本来、マイクロコンピュータのＣＰＵにより処理される周辺リソースに対するＩ／Ｏ処理（入出力処理）（図中、「マイクロコンピュータＩ／Ｏ」と記す。）が中央ブロック（マザーボード）のＩＯドライバ及びプラットフォームで処理されるように構成されていた。【００１３】
このような周辺リソースに対するＩ／Ｏ処理は、ターゲットとなるマイクロコンピュータに組み込まれる周辺リソース等のハードウェア構成に依存して変動する処理となり、ターゲットとなるマイクロコンピュータが変更される度に、ＣＰＵボードをそれに合わせるべく、Ｉ／Ｏ処理を実行するＩＯドライバを交換したり、中央ブロック（マザーボード）自体を交換しなければならないという問題があった。【００１４】
さらに、上述した従来のソフトウェア開発装置では、中央ブロック（マザーボード）に実装されるプラットフォームやＩＯドライバがアプリケーションソフトウェアと完全に分離することができず、一部がアプリケーションソフトウェアに組み込まれていた。【００１５】
従って、ターゲットとするマイクロコンピュータを変更する場合には、それに対応して周辺ブロックのファームウェアやＩＯドライバを変更するばかりでなく、中央ブロックに実装されるプラットフォームやＩＯドライバ、さらにはアプリケーションソフトウェアを変更して交換するという煩雑な作業が要求されるものであったため、少なくともアプリケーションソフトウェアの変更を伴なうことが無いように汎用化する必要があるという観点で更なる改良の余地があった。【００１６】
本発明は、上述の問題点に鑑み、ターゲットとなるマイクロコンピュータが変更される場合であっても、迅速に対応でき、スピーディなソフトウェア開発が可能となるマイクロコンピュータの模擬装置を提供する点にある。
【課題を解決するための手段】
【００１７】
上述の目的を達成するため、本発明によるマイクロコンピュータの模擬装置の特徴構成は、ＣＰＵと当該ＣＰＵの周辺回路とを内部に備えるマイクロコンピュータの模擬を行うマイクロコンピュータの模擬装置であって、前記マイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアを実行するマザーボードと、前記マイクロコンピュータに設けられる周辺回路の処理と、前記マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理とを実行するＩＯボードと、前記マザーボードとＩＯボードとの間に設けられ、前記マザーボードで実行するアプリケーションソフトウェアと前記ＩＯボードで実行するＩＯ処理との間で行う必要がある、前記マイクロコンピュータ固有のデータの遣り取りを、前記マイクロコンピュータに依存しない通信処理に変換した上で行うブリッジ部と、を備えている点にある。【００１８】
上述の構成によれば、模擬対象となるマイクロコンピュータのＣＰＵを模擬するマザーボードと、模擬対象となるマイクロコンピュータの周辺回路を模擬するＩＯボードとの間で遣り取りされる入出力データが、ブリッジ部により、模擬対象となるマイクロコンピュータに依存しない通信処理に変換された上で行われるため、ターゲットとなるマイクロコンピュータが変更される場合であっても、遣り取りされる入出力データを変更するだけで対応するマイクロコンピュータを模擬することが可能となる。【００１９】
従って、従来のようにアプリケーションソフトウェアを変更する必要が無く、また、ＩＯボードの模擬周辺機能ブロックに対するマザーボード上のＩＯドライバを変更する等の煩雑な処理が大きく軽減される。
【発明の効果】
【００２０】
以上説明した通り、本発明によれば、ターゲットとするマイクロコンピュータが変更される場合であっても迅速に対応でき、スピーディなソフトウェア開発が可能となるマイクロコンピュータの模擬装置を提供することができるようになった。
【図面の簡単な説明】
【００２１】
【図１】図１は本発明によるマイクロコンピュータの模擬装置の全体構成を示す機能ブロック構成図である。
【図２】図２（ａ）は本発明によるマイクロコンピュータの模擬装置のＩＯ処理を説明するための機能ブロック構成図である。図２（ｂ）は従来のマイクロコンピュータの模擬装置のＩＯ処理を説明するための要部のブロック構成図である。
【図３】図３は仮想レジスタと共有メモリ部のデータの遣り取りを示す説明図である。
【図４】図４はマイクロコンピュータの入出力リソースの構成図である。
【図５】図５は本発明によるマイクロコンピュータの模擬装置の使用状況を示す説明図である。
【図６】図６は本発明によるマイクロコンピュータの模擬装置の要部のブロック構成図である。
【図７】図７は従来のマイクロコンピュータの模擬装置の要部のブロック構成図である。
【符号の説明】
【００２２】
１０：マザーボード
２０：ＩＯボード
２２：共有メモリ部
【発明を実施するための最良の形態】
【００２３】
以下に、本発明によるマイクロコンピュータの模擬装置を説明する。当該マイクロコンピュータの模擬装置は、例えば、車両のエンジンを制御する電子制御ユニット（以下、「ＥＣＵ」と記す。）に組み込まれるマイクロコンピュータのアプリケーションソフトウェアを開発するためのソフトウェア開発装置として実現されている。【００２４】
尚、本発明によるマイクロコンピュータの模擬装置の用途は、ＥＣＵのアプリケーションソフトウェアの開発に限るものではなく、広く組み込みソフトウェアの開発に使用されるものである。【００２５】
図５に示すように、車両ＣのエンジンルームにマウントされたエンジンＥＮＧの近傍にエンジン制御用のＥＣＵ１０１が配置されている。【００２６】
マイクロコンピュータの模擬装置（以下、「ソフトウェア開発装置」と記す。）１００は、ＥＣＵ１０１に接続される信号線のコネクタを外して、当該信号線を中継用のハーネスＨを介して接続することにより、実際のＥＣＵ１０１に替えて使用され、当該ソフトウェア開発装置１００で実行されるアプリケーションソフトウェアに基づいてエンジンＥＮＧが制御される。【００２７】
ソフトウェア開発装置１００は、表示器２１０やデータを入力するためのキーボード２２０を備えた上位コンピュータ（ホストコンピュータ）２００に接続される。図中、Ｓ１，Ｓ２はそれぞれソフトウェア開発装置１００とホストコンピュータ２００を動作させるための電源スイッチである。表示器２１０によりソフトウェア開発装置１００の動作状態がモニタされ、キーボード２２０を介してソフトウェア開発装置１００の設定や設定の変更入力が行なわれる。【００２８】
ソフトウェア開発装置１００は、上述したように車両Ｃに直接接続して使用する以外に、車両の様々な運転状況を模擬する車両の運転状況発生装置２３０に接続することにより、車両Ｃが存在しない状態であっても、ＥＣＵに組み込まれるマイクロコンピュータのアプリケーションソフトウェアを開発することができる。【００２９】
尚、当該運転状況発生装置２３０では、パーソナルコンピュータ２４０の管理下で、エンジンを模擬するアプリケーションソフトウェアが実行され、ソフトウェア開発装置１００に運転状況に応じた信号が出力される。【００３０】
ＥＣＵ１０１の構成について説明する。
図４に示すように、ＥＣＵ１０１には、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力が入力される。【００３１】
ＥＣＵ１０１は、これらの入力信号を処理する入力回路と、入力回路を介して入力された各信号を処理するマイクロコンピュータＭと、マイクロコンピュータＭで処理された信号を増幅して出力するドライバＤ等を備えている。【００３２】
ＥＣＵ１０１から出力される信号には、シフト制御ソレノイドやＶＶＴ（可変バルブタイミング）ソレノイドへのアナログ制御信号（アナログ出力）、点火信号や燃料の噴射信号等のパルス制御信号（パルス出力）、ＩＳＣ（アイドル速度制御）用のパルス制御信号（パルス出力）、及び、チェックエンジンランプ、メインリレー、エヤコンカット信号等のデジタル制御信号（デジタル出力）等が含まれる。【００３３】
マイクロコンピュータＭは、アプリケーションソフトウェアが格納されるＲＯＭや演算処理に使用されるＲＡＭを備えたメモリ１０９と、アプリケーションソフトウェアを実行するＣＰＵ１０２と、入出力制御を行う周辺リソースが１つのパッケージに収納されている。【００３４】
周辺リソースには、入力系のリソースと出力系のリソースが含まれる。入力系のリソースとして、デジタル信号を扱う入力ポート１０３とラッチポート１０４、アナログ入力を扱うＡ／Ｄコンバータ１０５、及びパルス入力を扱うキャプチャ１０６等が設けられ、出力系のリソースとして、デジタル出力を出力する出力ポート１１２、パルス出力を出力するＰＷＭ（パルス幅変調器）１１３とコンペア１１４、及びアナログ信号を出力するシリアル１１５等が設けられている。【００３５】
これらの周辺リソースは内部バス１１０によってメモリ１０９及びＣＰＵ１０２に相互に接続されている。また、マイクロコンピュータＭの内部には、これらの周辺リソースに加えて、内部タイマ１０７や割り込みコントローラ１０８等が設けられている。【００３６】
車両の運転状態を表す各センサやスイッチ類からの信号がＥＣＵ１０１に入力されると、入力回路で信号処理されてマイクロコンピュータＭに入力される。入力された信号は入力系の周辺リソースでＣＰＵ値に変換され、演算部として機能するメモリ１０９とＣＰＵ１０２でＣＰＵ値に基づいて車両状態が検出され、車両状態に応じた出力要求信号が生成される。【００３７】
出力要求信号は出力系の周辺リソースで出力信号に変換されてマイクロコンピュータＭから出力される。この出力信号に従って車両に装備された各アクチュエータがドライバＤにより駆動され、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。【００３８】
本発明によるソフトウェア開発装置１００は、上述のＥＣＵ１０１を模擬するエミュレータとして機能する。【００３９】
図１及び図２（ａ）に示すように、ソフトウェア開発装置１００は、マザーボード１０と、ＩＯボード２０と、インタフェースボード３０とを備えて構成されている。【００４０】
マザーボード１０は、アプリケーションソフトウェアを実行する高機能ＣＰＵを備えている。ＩＯボード２０は、ターゲットとするマイクロコンピュータを構成する複数のＣＰＵ周辺リソースを模擬した模擬周辺機能ブロックを備えている。インタフェースボード３０は、ターゲットとするマイクロコンピュータの外部に設けられる入出力周辺回路の模擬回路を備えている。【００４１】
マザーボード１０とＩＯボード２０とがデータ通信バスとしてのＰＣＩバスで接続され、ＩＯボード２０とインタフェースボード３０とが複数の入出力信号ラインで接続されている。【００４２】
マザーボード１０は、模擬対象となるマイクロコンピュータに設けられるＣＰＵが処理するアプリケーションソフトウェアを実行する。【００４３】
マザーボード１０には、汎用のパーソナルコンピュータに用いられるような数ＧＨｚの高速且つ高機能なＣＰＵと、メモリと、ＰＣＩバスインタフェース回路と、ＰＣＩバスを中継するブリッジであるスターファブリックのような高速ＬＡＮインタフェース回路が搭載されている。【００４４】
尚、ＰＣＩバスを中継するブリッジとしては、スターファブリック以外に、ＰＣＩバスブリッジ等を適宜用いることができる。【００４５】
マザーボード１０上のメモリには、エンジン制御用のアプリケーションソフトウェア１５、ＰＣＩ通信ドライバ１６、ＰＣＩを介して後述の共有メモリ部にアクセスするメモリドライバ１７、ＬＡＮ通信ドライバ１８等が格納されている。【００４６】
ＩＯボード２０は、模擬対象となるマイクロコンピュータに設けられる周辺回路（周辺リソース）としての処理と、当該マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理、つまり、周辺リソースに対する入出力処理とを実行する。【００４７】
ＩＯボード２０には、百数十ＭＨｚで動作するＣＰＵと、メモリと、ターゲットとするマイクロコンピュータのタイマ回路、割込み制御部、入力系リソース、出力系リソースを模擬する模擬周辺回路としての複数のファームウェア２１と、マイクロコンピュータのＣＰＵと入力系及び出力系のリソースを接続する内部バスとして機能する共有メモリ部２２と、ＰＣＩバスインタフェース回路と、ＰＣＩバスを中継するブリッジであるスターファブリックのような高速ＬＡＮインタフェース回路が搭載されている。【００４８】
ＩＯボード２０上のメモリには、ＰＣＩ通信ドライバ２６、ＬＡＮ通信ドライバ２８等が格納されている。【００４９】
共有メモリ部２２は、ファームウェア２１との間で遣り取りされる制御データやインタフェースボード３０との間で遣り取りされる入出力データを格納する複数のレジスタを備えたＦＰＧＡ（Field Programmable Gate Alley）で構成されている。【００５０】
尚、ＦＰＧＡは、マイクロコンピュータに設けられるＣＰＵが処理するＩＯ処理を実行するハードウェア処理部の一例であり、必ずしもＦＰＧＡで構成されるものに限るものではなく、ＡＳＩＣなどの他の公知のハードウェア回路で構成するものであってもよい。【００５１】
ファームウェア２１で発生し、且つ、アプリケーションソフトウェアにより実行される各演算を起動する割込み等の制御データが、割込み信号線及び外部メモリバス（メモリコントロールバス）を介して共有メモリ部２２に記憶され、共有メモリ部２２に記憶された制御データがＰＣＩバスを介してマザーボードに読み取られるように構成されている。【００５２】
マザーボードに読み取られた制御データに基づいて実行されるアプリケーションソフトウェアの演算結果である出力データが、ＰＣＩバスを介して共有メモリ部２２に記憶され、当該出力データに対応する出力信号が各ファームウェア２１を介してインタフェースボード３０に出力される。【００５３】
ファームウェア２１は、既存のマイクロコンピュータがコアとして用いられ、当該マイクロコンピュータの制御プログラムに基づいて、上述した入力ポート１０３やラッチポート１０４、Ａ／Ｄコンバータ１０５、キャプチャ１０６、出力ポート１１２、ＰＷＭ（パルス幅変調器）１１３やコンペア１１４、シリアル１１５、内部タイマ１０７等の周辺リソースとして機能するように構成されている。【００５４】
尚、個々の周辺リソースをＦＰＧＡやハードウェア回路で構成することも可能であるが、既存のマイクロコンピュータを用いて構成することにより、異なる周辺リソースを容易に構築でき、ターゲットとなるマイクロコンピュータに応じてフレキシブル且つ迅速に機能を変更することができる。【００５５】
マザーボード１０上のメモリには、仮想レジスタとして機能するデータ記憶領域が設けられている。仮想レジスタとは、模擬対象となるマイクロコンピュータのＣＰＵが周辺リソースを制御するために使用する内部レジスタを模擬するものである。【００５６】
周辺リソースとして実現されるファームウェア２１には、上述したようなタイマ回路、割込み制御部、入力系リソース、出力系リソース等が含まれる。従って、タイマ回路に対するタイマ値の設定レジスタや制御レジスタ、割込み制御部に対する割込み制御レジスタ、入出力系リソースに対する制御レジスタや入出力用のデータレジスタ等、周辺リソースに対するＩＯ処理を実行する制御用のレジスタが仮想レジスタとして設定されている。【００５７】
アプリケーションソフトウェア１５とメモリドライバ１７は相互に独立して構築されている。【００５８】
つまり、図３に示すように、メモリドライバ１７によって共有メモリ部２２から読み出された制御信号が仮想レジスタに書き込まれた後に、仮想レジスタを介してアプリケーションソフトウェア１５に引き渡される。その結果、アプリケーションソフトウェア１５で演算された出力データが仮想レジスタに書き込まれた後に、仮想レジスタに書き込まれた出力データがメモリドライバ１７によって共有メモリ部２２に格納される。【００５９】
各ファームウェア２１は、タイマのカウントアップや入力信号に対する入力処理等のイベントが発生すると、割込み信号線を介してＦＰＧＡにイベントの発生を通知する。【００６０】
ＦＰＧＡはイベントの種類に応じたコードデータを共有メモリ部２２の割込みデータ領域に格納するとともに、外部メモリバスを介してファームウェア２１から得られた入力データを共有メモリ部２２の入出力データ領域に格納する。【００６１】
ＦＰＧＡは割込みデータ領域に格納したコードデータをＦＩＦＯ方式でマザーボード１０に送信すべく、ＰＣＩ通信ドライバ２６を起動し、ＬＡＮ通信ドライバ２８を介してマザーボード１０側のメモリドライバ１７に送信する。【００６２】
メモリドライバ１７から仮想レジスタに当該コードデータが書き込まれると、マザーボード１０のアプリケーションソフトウェア１５のうち、当該コードデータに対応する割込み処理プログラクが起動される。【００６３】
当該割込み処理プログラクは、ＰＣＩ通信ドライバ１６を起動し、ＬＡＮ通信ドライバ１８を介して、共有メモリ部２２の入出力データ領域に格納された入力データを読出して、仮想レジスタに書き込み、当該入力データに基づいてアプリケーションソフトウェアによる所定の演算処理が起動される。【００６４】
つまり、各ファームウェア２１で発生したイベントがＦＩＦＯ方式で順次マザーボード１０の仮想レジスタに書き込まれることにより、対応するアプリケーションソフトウェアが起動され、必要なデータが共有メモリ部２２から読み出される。【００６５】
アプリケーションソフトウェアは、演算処理により出力すべきデータを生成すると、当該出力データを仮想レジスタに書き込み、ＰＣＩ通信ドライバ１６を起動し、ＬＡＮ通信ドライバ１８を介して、共有メモリ部２２の入出力データ領域に当該出力データを書き込む。【００６６】
ＩＯボード２０のＦＰＧＡは、共有メモリ部２２に出力データが書き込まれると、外部メモリバスを介して対応するファームウェア２１に当該データを出力する。【００６７】
つまり、ＩＯボード２０に設けられた共有メモリ部２２と、マザーボード１０とＩＯボード２０との間に設けられた通信バス１６，１８，２８，２６により、ブリッジ部が構成され、ブリッジ部は、通信バスを介して共有メモリ部２２に記憶したデータの更新を行うことによって、マザーボード１０とＩＯボード２０との間でのデータの遣り取りを行う。【００６８】
ブリッジ部は、マザーボード１０とＩＯボード２０との間に設けられ、マザーボード１０で実行するアプリケーションソフトウェアとＩＯボード２０で実行するＩＯ処理との間で行われる模擬対象となるマイクロコンピュータ固有のデータの遣り取りを、当該マイクロコンピュータに依存しない通信処理に変換した上で行うものである。【００６９】
インタフェースボード３０は、ポート割付変換ボードと、ポート割付変換ボードのコネクタに挿入される複数の標準回路ボード及び機能ボードでなるＥＣＵ入出力回路３１を備え、ポート割付変換ボードに挿入される標準回路ボード及び機能ボードの組み合わせにより、任意の数の入出力回路を実現できるように構成されている。【００７０】
標準回路ボードはウォーニングランプの点灯信号やＣＡＮバス等のシリアル信号を入出力するドライバ回路やバッファ回路を備えたデジタル信号回路で構成され、機能ボードはパワートレーン出力回路、アナログ信号入出力回路、エンジンに対する噴射信号、点火信号、電子スロットル制御信号等を入出力する信号処理用の低機能マイクロコンピュータを備えた入出力処理回路で構成されている。【００７１】
つまり、図６に示すように、マザーボード１０とＩＯボード２０によりターゲットとなるマイクロコンピュータが模擬され、インタフェースボード３０によりマイクロコンピュータの入出力回路が模擬され、インタフェースボード３０を介して制御対象であるエンジンと接続可能に構成されることにより、アプリケーションソフトウェアが実行されるＥＣＵとしての実環境が模擬される。【００７２】
上述のソフトウェア開発装置１００の基本動作について説明する。
アプリケーションソフトウェアは、時間同期処理（時間系割り込み処理）と非時間同期処理の２つの処理を行なう。【００７３】
時間同期処理は外部状態に依存せず、一定の時間間隔で定期的に行う処理であり、非時間同期処理は外部状態、即ち、エンジンの運転状態に依存して発生する処理である。【００７４】
この非時間同期処理には、例えば、エンジンの回転信号、車速信号、燃料の噴射タイミング信号、点火タイミング信号等による割り込み処理がある。このような外部状態によりランダムに変化する事象をイベントと呼ぶと、非時間同期処理は、外部状態により発生するイベント情報を検出して、そのイベントに同期して行なう処理でもある。【００７５】
マザーボード１０上のＣＰＵが、上述の時間同期処理と非時間同期処理を実行する仮想マイクロコンピュータのＣＰＵとして機能するように、マザーボード１０上のメモリには、時間系割り込みと非時間系割り込みを発生させるとともに、入出力データ等を格納する仮想レジスタ領域が設けられており、メモリドライバ１７を介して共有メモリ部２２上のデータが当該仮想レジスタに書き込まれ、マザーボード１０上のＣＰＵにより当該仮想レジスタに書き込まれたデータがメモリドライバ１７を介して共有メモリ部２２に書き込まれるように構成されている。【００７６】
アプリケーションソフトウェアは、共有メモリ部２２に書き込まれた外部イベント、つまり、ファームウェアで発生するタイマ、エンジン回転信号、車速信号、通信信号等により共有メモリ部２２にセットされる割込みフラグが起点となって動作する複数の割込みルーチンが設けられ、割込みフラグに従って上述の時間同期処理と非時間同期処理が実行される。【００７７】
つまり、共有メモリ部２２にセットされ、メモリドライバ１７を介して仮想レジスタに書き込まれた割込みフラグが１つでも存在すれば、メモリドライバ１７を介してその時のＩＯデータが仮想レジスタから読み出され、対応するアプリケーションソフトウェアの一部が起動され、当該割込みフラグがリセットされるとともに所定の演算処理が実行され、その結果である出力データが仮想レジスタに書き込まれる。【００７８】
仮想レジスタに書き込まれた出力データは、メモリドライバ１７によりＩＯボード２０の共有メモリ部２２の所定領域に書き込まれ、その値が模擬周辺機能ブロックであるファームウェア２１に出力される。【００７９】
尚、大量のデータを送受信する場合は、バースト転送が行われ、通信効率が上げられる。ポート、ラッチの速度が要求されないビットデータは、メモリドライバの前処理、後処理で一括して送受信される。【００８０】
このようにしてファームウェア２１で検出された外部イベントやタイマ割込みがＦＰＧＡで構成される共有メモリ部２２に割込みフラグとして格納されると、メモリドライバにより当該割込みフラグが読み出されることにより、順次対応するアプリケーションソフトウェアが実行される。【００８１】
ここで、各ファームウェア２１から共有メモリ部２２に書き込まれる割込みフラグ（コードデータ）は互いに独立して設定され、メモリドライバ１７によってＦＩＦＯ方式で仮想レジスタに書き込まれ、アプリケーションソフトウェアにより対応する割込み処理が順次実行されるものであるが、割込みに優先順位が設けられ、先に発生した割り込みに対するアプリケーションが終了するまで他のファームウェア２１は割込みフラグをセットできないように、各ファームウェア２１からの割込みを制御する制御部をＦＰＧＡに設けてもよい。【００８２】
上述のソフトウェア開発装置において、少なくともマザーボード１０とＩＯボード２０が別体、例えば異なるラックに組み込まれるように構成し、ＰＣＩバスを中継するスターファブリック等のブリッジを介して接続するように構成すれば、マザーボード１０に新たなアプリケーションソフトウェアを搭載して、ＩＯボード２０及びインタフェースボード３０に替えて既存のＥＣＵを用いてソフトウェア開発装置が実現できるようになり、既存のハードウェアリソースを有効活用できるようになる。【００８３】
また、マザーボード１０とＩＯボード２０を同一のラックに組み込む場合には、ブリッジを介さずに直接にＰＣＩバスで両者間を接続することも可能となる。【００８４】
上述したマイクロコンピュータの模擬装置の具体構成は例示に過ぎず、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、構築するシステムに応じて適宜変更設計することが可能である。【００８５】
例えば、図２（ａ）を例に説明すると、バスブリッジ１８，２８として、スターファブリックやＰＣＩバスブリッジ等を用いることができる。また、共有メモリ部２２を構成するＦＰＧＡに替えて、ＡＳＩＣ、ＣＰＵ及び周辺回路、さらにはマイクロコンピュータ等を用いて構成することができる。さらに、周辺リソースを実現するファームウェア２１としてのマイクロコンピュータを、ＦＰＧＡやＡＳＩＣ等で代替することも可能である。【００８６】
図２（ｂ）に示すような従来の構成によれば、ターゲットとなるマイクロコンピュータが変更された場合に、ＩＯボードの変更に加えて、マザーボード上のＩＯドライバにより設定されている周辺リソース（周辺回路）に対するＩ／Ｏ処理の大幅な変更と、それに伴なうアプリケーションソフトウェアの変更が不可欠であった。【００８７】
しかし、本発明によれば、図２（ａ）に示すように、ＩＯボード２０に設けた周辺リソースであるファームウェア２１の変更等に対応して、共有メモリ部２２に定義される周辺リソースに対するデータ割付の変更や追加を行なえば、それに対応して共有メモリに対するインタフェースドライバであるメモリドライバ及び仮想レジスタをマッチングさせるだけで対応できるようになり、マザーボード上のアプリケーション等を変更する必要が無くなる。【００８８】
以上説明したように、本発明によれば、ターゲットとなるマイクロコンピュータが変更された場合に、従来問題となっていたマザーボード上のアプリケーションソフトウェアの変更をもたらすような、ＩＯドライバやプラットフォームの大幅な変更を行なう必要が無くなり、主にＩＯボード２０の変更により容易に対応可能となる。
【図１】
2008099931.tif 000003
【図２】
2008099931.tif 000004
【図３】
2008099931.tif 000005
【図４】
2008099931.tif 000006
【図５】
2008099931.tif 000007
【図６】
2008099931.tif 000008
【図７】
2008099931.tif 000009
【国際調査報告】
2008099931.tif 000010
2008099931.tif 000011