JP2010049355A - 模擬マイクロコンピュータ装置 - Google Patents
模擬マイクロコンピュータ装置 Download PDFInfo
- Publication number
- JP2010049355A JP2010049355A JP2008211061A JP2008211061A JP2010049355A JP 2010049355 A JP2010049355 A JP 2010049355A JP 2008211061 A JP2008211061 A JP 2008211061A JP 2008211061 A JP2008211061 A JP 2008211061A JP 2010049355 A JP2010049355 A JP 2010049355A
- Authority
- JP
- Japan
- Prior art keywords
- microcomputer
- data
- control unit
- function
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】実際のマイクロコンピュータに近い構成を採りながら、モデル演算のような高速処理が必要とされる演算が適切に実行可能であるとともに自由度が高い模擬マイクロコンピュータ装置を提供する。
【解決手段】機器を制御するメインマイクロコンピュータ31と、そこで実行すべきプログラムの一部を代替実行するサブマイクロコンピュータ32を含む拡張周辺リソース34とを備えた第一の制御部30と、メインマイクロコンピュータで実行すべきモデル演算の一部を代替実行する汎用のCPUボードでなる第二の制御部10と、汎用制御部とMEMCバスで接続されるとともに、CPUボードとPCIバスブリッジで接続され、メインマイクロコンピュータと拡張周辺リソース間の通信処理及び汎用制御部とCPUボード間の通信処理を各別に実行する複数系統の通信処理部を備えた通信インタフェース20とを備える。
【選択図】図4
【解決手段】機器を制御するメインマイクロコンピュータ31と、そこで実行すべきプログラムの一部を代替実行するサブマイクロコンピュータ32を含む拡張周辺リソース34とを備えた第一の制御部30と、メインマイクロコンピュータで実行すべきモデル演算の一部を代替実行する汎用のCPUボードでなる第二の制御部10と、汎用制御部とMEMCバスで接続されるとともに、CPUボードとPCIバスブリッジで接続され、メインマイクロコンピュータと拡張周辺リソース間の通信処理及び汎用制御部とCPUボード間の通信処理を各別に実行する複数系統の通信処理部を備えた通信インタフェース20とを備える。
【選択図】図4
Description
本発明は、機器を制御するマイクロコンピュータへの組込みソフトウェアを開発評価するためのソフトウェア開発装置等に用いられる模擬マイクロコンピュータ装置に関する。
制御対象となる機器の高性能化、高機能化が急激に進む状況下で、機器を制御する電子制御装置に組み込まれるマイクロコンピュータの性能も年々進化している。
例えば車両のエンジンを制御する電子制御ユニット(Electronic Control Unit)のような電子制御装置では、エンジンの高性能化、高機能化の流れの中で、現状の電子制御装置の性能よりも優れた性能を発揮する次世代の電子制御装置を想定した新しいアプリケーションプログラム(制御用ロジック)が先行開発されている。
先行開発される制御用ロジックは、性能向上が見込まれる次世代のマイクロコンピュータがターゲットとなることが多いのであるが、そのような性能の向上したマイクロコンピュータが組み込まれた電子制御装置が開発時に実在しないばかりか、次世代のマイクロコンピュータそのものも実在しない場合もあるため、多くの場合は、現状のマイクロコンピュータをベースにして先行ロジックの開発を行なわざるを得なかった。
しかし、現状のマイクロコンピュータを組み込んだ電子制御装置を用いて先行ロジックの開発を行なう場合には、マイクロコンピュータのCPUの処理能力の不足や、メモリ容量の不足や、更には周辺リソースの不足が生じる等の問題があるため、精度の高い先行ロジックの開発が困難となり、次期マイクロコンピュータに対応したアプリケーションプログラムの開発が遅れる等、新製品の開発に支障を来たしていた。
つまり、現状の電子制御機器に組み込まれるマイクロコンピュータは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様となるようにCPU性能及び周辺リソースが選択されて、それらが1つのパッケージの中に組み込まれているため、新製品に対応してそれぞれの性能や機能を変更する必要が生じても、マイクロコンピュータそのものを変更しない限り対応できないのである。
そこで、特許文献1には、マイクロコンピュータに内蔵されるCPUを模擬するアプリケーション処理機能部と通信機能部を備えたCPUボードで構成される中央ブロックと、中央ブロックとPCIバスで接続される周辺ブロックと、周辺ブロックに接続するインタフェース回路ブロックの三つの機能ブロックを備えたソフトウェア開発装置が提案されている。
当該周辺ブロックには、マイクロコンピュータに内蔵される周辺リソースをソフトウェアで実現して入出力処理を行なう模擬マイクロコンピュータ周辺装置と、演算機能部と、通信機能部を備え、当該インタフェース回路ブロックには、電子制御ユニットに組み込まれるマイクロコンピュータ以外のハードウェアに相当する回路を備えている。
そして、周辺ブロックの演算機能部にバスコントローラが設けられ、中央ブロックの通信機能部と当該バスコントローラがPCIバスで接続されるとともに、バスコントローラと模擬マイクロコンピュータ周辺装置とが内部バスで接続され、PCIバス、バスコントローラ、及び内部バスを介して、通信機能部と模擬マイクロコンピュータ周辺装置との間でデータの送受信が行われるように構成されている。
上述した従来のソフトウェア開発装置は、CPUと、割り込みコントローラやキャプチャ等のCPUの周辺リソースで構成されるマイクロコンピュータの機能を分解して、アプリケーションプログラムを実行するCPUの処理が中央ブロックであるCPUボードに割り付けられ、マイクロコンピュータの周辺リソースによる処理が周辺ブロックであるIOボードに割り付けられていた。
しかし、実際に使用されるマイクロコンピュータよりも際立って高速で処理可能なCPUボードで開発され、評価されたアプリケーションプログラムを、実際のマイクロコンピュータに移植する場合には、アプリケーションプログラムを構成する各タスクの実行時間等が適切に評価できない場合もあり、最終的なソースプログラムを再構築する必要に迫られるという問題があった。
そこで、現状のマイクロコンピュータと、FPGA等を用いた周辺リソースの拡張部を組み合わせ、現状のマイクロコンピュータに性能・仕様が近い模擬マイクロコンピュータ装置により、制御ロジックの評価を行なうことも考えられる。
しかしながら、そのような構成にした場合には、例えばエンジンの燃焼制御等について、モデル演算形式で構成されたアプリケーションプログラムを動作させたりすると、マイクロコンピュータの処理負荷が大きくなり、適切な検証ができないという問題が生じる。
また実際のマイクロコンピュータに近い攻勢にすると、評価対象のマイクロコンピュータやアプリケーションプログラムに少しの変更が生じただけでも、模擬マイクロコンピュータ装置に多くの変更を加えなければならないケースが生じ易くなる。
本発明の目的は、上述の問題点に鑑み、実際のマイクロコンピュータに近い構成を採りながら、モデル演算のような高速処理が必要とされる演算が適切に実行可能であるとともに自由度が高い模擬マイクロコンピュータ装置を提供する点にある。
上述の目的を達成するため、本発明による模擬マイクロコンピュータ装置の特徴構成は、CPUと当該CPUの周辺回路が内部に組み込まれた機器制御用のマイクロコンピュータを模擬する模擬マイクロコンピュータ装置であって、アプリケーションプログラムに基づいて前記機器を制御するメインマイクロコンピュータと、前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能なサブマイクロコンピュータを含む拡張リソースとを備えた第一の制御部と、前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能で、モデル演算を含むアプリケーションプログラムの実行が可能な第二の制御部と、前記第一の制御部と前記第二の制御部とがそれぞれ接続され、前記メインマイクロコンピュータと前記拡張リソース間の通信処理及び前記第一の制御部と前記第二の制御部間の通信処理を個別に実行する複数系統の通信処理部を備えた通信インタフェースと、を備えている点にある。
つまり、アプリケーションプログラムが第一の制御部のメインマイクロコンピュータで実行され、第二の制御部でモデル演算が実行される必要がある場合には、メインマイクロコンピュータから通信インタフェースに処理が要求され、専用の通信系統を介して処理されるデータが第二の制御部に送信される。第二の制御部で実行されたモデル演算の結果は、遅延を招くことなく、逆のルートを辿って速やかにメインマイクロコンピュータに入力される。
そして、拡張リソースを介して入出力等の制御が実行される場合には、メインマイクロコンピュータから通信インタフェースに処理が要求され、専用の通信系統を介して処理されるデータが当該拡張リソースに送信される。
メインマイクロコンピュータと第二の制御部及び拡張リソース間の通信処理が、複数系統の通信処理部を備えた共通の通信インタフェースを介して実行されるため、必要なデータの送受信が速やかに行えるようになる。
しかも、第二の制御部で実行されるモデルの構築や変更が、汎用のモデル生成プログラムを用いて容易に行なうことができ、メインマイクロコンピュータで実行されるアプリケーションプログラムを構成する各タスクの実行時間等適切な評価ができるようになる。
この場合、各通信処理部に、一方から他方へ要求する処理の発生を通知するFIFOと、要求した処理に必要なデータを他方へ引き渡す共有メモリと、他方の処理の終了を一方に通知するレジスタを備えていることが好ましい。
以上説明した通り、本発明によれば、実際のマイクロコンピュータに近い構成を採りながら、モデル演算のような高速処理が必要とされる演算が適切に実行可能であるとともに自由度が高い模擬マイクロコンピュータ装置を提供することができるようになった。
以下に、本発明による模擬マイクロコンピュータ装置を説明する。当該模擬マイクロコンピュータ装置は、例えば、車両のエンジンを制御する電子制御ユニット(以下、「ECU」と記す。)に組み込まれるマイクロコンピュータのアプリケーションプログラムを開発するためのソフトウェア開発装置として実現されている。
尚、本発明による模擬マイクロコンピュータ装置の用途は、車載ECUのアプリケーションプログラムの開発に限るものではなく、広く組み込みソフトウェアの開発に使用されるものである。
図1に示すように、模擬マイクロコンピュータ装置(以下、「ソフトウェア開発装置」と記す。)100は、車両CのエンジンENGがマウントされるエンジンルームに搭載されるECU101の接続コネクタを外し、ECU101に替えてこのコネクタにハーネスHを介して直接接続して使用することができる。
ソフトウェア開発装置100は、上位コンピュータ(ホストコンピュータ)200に接続されている。ホストコンピュータ200には表示器210と、データを入力するためのキーボード220が備えられている。SW1,SW2はそれぞれロジック装置200とホストコンピュータ200を動作させるための電源スイッチである。表示器210は、ソフトウェア開発装置100の状態をモニタ表示することができ、キーボード220からは、ソフトウェア開発装置100の設定を変更するための入力を行なうことができる。
当該ソフトウェア開発装置100は、このように車両Cに直接接続して使用することができる他に、当該ソフトウェア開発装置100を、パーソナルコンピュータ240の管理下でエンジンの様々な動作状況を模擬するエンジンシミュレータ230に接続することにより、車両Cが存在しない状態でもECUに組み込まれるマイクロコンピュータのアプリケーションプログラムを開発することができるように構成されている。
図2に示すように、車両に搭載されるECU101は、制御プログラムであるアプリケーションプログラムを実行するマイクロコンピュータMと、外部からの入力信号を増幅等してマイクロコンピュータMに入力するバッファBと、入力信号に基づいてマイクロコンピュータMで処理された出力信号を増幅して外部に出力するドライバD等の入出力回路を備えている。
バッファBを介してエンジン回転数信号や車速信号等のパルス信号、水温センサや吸気温センサ等からのアナログ信号、及び、スタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル信号が入力される。
ドライバDを介してシフト制御ソレノイドやVVT(可変バルブタイミング)ソレノイドへのアナログ信号、点火信号や燃料の噴射信号等のパルス信号、ISC(アイドル速度制御)用のパルス信号、及び、チェックエンジンランプ、メインリレーやエヤコンカット信号等のデジタル信号等が出力される。
マイクロコンピュータMは、アプリケーションプログラムが格納されたROMや演算処理に使用されるRAM等のメモリ109、アプリケーションプログラムを実行するCPU102、及び入出力制御を行う周辺リソースが、1つのパッケージに収納されている。
周辺リソースとして入力系のリソースと出力系のリソースを備えている。入力系のリソースには、デジタル信号を扱う入力ポート103とラッチポート104、アナログ入力を扱うA/Dコンバータ105、及びパルス入力を扱うキャプチャ106等が含まれ、出力系のリソースには、デジタル出力を出力する出力ポート112、パルス出力を出力するPWM(パルス幅変調器)113とコンペア114、及びアナログ信号を出力するシリアル115等が含まれる。
これらの周辺リソース及びメモリ109は内部バス110を介してCPU102と接続されている。また、マイクロコンピュータMは、これらの周辺リソースに加えて、内部タイマ107や割り込みコントローラ108を備えている。
車両の運転状態を表す各センサやスイッチ類からの信号がバッファBを介してマイクロコンピュータMに入力されると、それらの入力信号に基づいてCPU102で所定の演算処理が実行されて、車両状態に応じた出力信号が生成され、ドライバDを介して車両に装備された各アクチュエータが駆動される。
図2の破線で示すように、マイクロコンピュータMは、出力信号に応じて変化する入力信号を監視しながら車両を所定の状態に制御する。
本発明によるソフトウェア開発装置100は、上述のECU101を模擬するエミュレータとして機能し、図3に示すように、第一の制御部である汎用制御部30と、第二の制御部である汎用のCPUボード10と、通信インタフェース20を備えている。汎用制御部30と通信インタフェース20が汎用ECUとして一枚のボード上に構築されている。
汎用制御部30は、モデル演算を含むアプリケーションプログラムに基づいて機器を制御するメインマイクロコンピュータ31と、メインマイクロコンピュータ31で実行すべきアプリケーションプログラムの一部を代替実行するサブマイクロコンピュータ32及びメインマイクロコンピュータ31の入出力リソースを拡張するFPGA33でなる拡張リソース34を備えている。
FPGA33は、コンペアCM、キャプチャCAP、シリアル、PWM、入出力等の拡張用の入出力ポートIOが予めプログラムされている。
メインマイクロコンピュータ31のメモリ31bに、先行開発されるアプリケーションプログラムが移植され、当該アプリケーションプログラムがCPU31aで実行され、標準の入出力ポートIOを介して外部との間でデータの入出力が行なわれる。
サブマイクロコンピュータ32のメモリ32bに、先行開発されるアプリケーションプログラムの一部が移植され、当該アプリケーションプログラムの一部がCPU32aで実行され、或は、拡張された入出力ポートIOを介して外部との間でデータの入出力が行なわれる。
標準の入出力ポートIO及び拡張された入出力ポートIOは、ハーネスを介して車両を模擬する車両シミュレータあるいは実車両と接続されている。
CPUボード10は、メインマイクロコンピュータ31で実行すべきアプリケーションプログラムに組み込まれたモデル演算の一部を代替実行する高速のCPU11(例えば、インテル社製のペンティアム(登録商標)等)を備えた汎用のCPUボードであり、CPU11がチップセット12を介してメモリ13及びPCIバス14と接続されている。PCIバス14には、さらにPCIバスブリッジ15であるスターファブリックが接続されている。尚、PCIバスブリッジ15はスターファブリックに限定されるものではなく、他のバスブリッジを用いてもよい。
CPU11で実行されるモデルは、LANを介して接続されたモデル生成コンピュータ50により生成され、メモリ13に移植されている。モデル生成コンピュータ50では、MATLAB(MathWorks社の登録商標)環境で実行可能なSimulink(MathWorks社の登録商標)がインストールされ、予め準備されたライブラリ上の汎用モデルを組み合わせることによりCPUボード10で実行されるモデルが構築される。
メモリ13には、PCIバス及びPCIバスブリッジのドライバ(図4中、「PCIバスインタフェース」と表記)、モデルに対するドライバであるモデルインタフェースプログラム(図4中、「モデルインタフェース」と表記)、LANを介して接続されるホストコンピュータ60に対するインタフェースプログラム(図4中、「LANインタフェース」と表記)等が格納されている。尚、詳述しないが、これらのソフトウェアは、チップセット12を介して接続されるハードディスク等のストレージデバイスに格納され、CPUボード10に移植されているOSプログラムの管理下で必要に応じてメモリ13にロードされるように構成されている。
図3及び図4に示すように、通信インタフェース20は、FPGAで構築され、汎用制御部30と接続される外部パラレルバスの一例であるMEMCバスインタフェースと、CPUボード10と接続される高速シリアルバスの一例としてのPCIバスブリッジ21であるスターファブリックと、メインマイクロコンピュータ31と拡張リソース34間の通信処理、及び、汎用制御部30とCPUボード10間の通信処理を個別に実行する複数系統の通信処理部25を備えている。
各通信処理部25は、一方から他方へ要求する処理の発生を通知するFIFO22(22a,22b,22c)と、要求した処理に必要なデータを他方へ引き渡す共有メモリ23(23a,23b,23c)と、他方の処理の終了を一方に通知するレジスタ24(24a,24b,24c)を備えている。
FIFO22aは、メインマイクロコンピュータ31からCPUボード10でモデル演算を起動するために使用される32ビットのFIFOレジスタとレジスタ制御部を備えている。MEMCバスを介してメインマイクロコンピュータ31からモデル演算を実行するための関数呼出コマンド及び引数がFIFOレジスタに書き込まれると、レジスタ制御部によりPCIバスブリッジ21を介してCPUボード10上のPCIバスブリッジ15に当該関数呼出コマンド及び引数が送信される。
FIFO22bは、サブマイクロコンピュータ32またはFPGA33の拡張された入出力ポートIOで発生した外部入力イベントをメインマイクロコンピュータ31に伝える32ビットのFIFOレジスタとレジスタ制御部を備えている。MEMCバスを介してサブマイクロコンピュータ32またはFPGA33から外部入力イベントの発生を示すイベント発生コマンドがFIFOレジスタに書き込まれると、レジスタ制御部によりMEMCバスを介してイベント発生コマンドが送信される。
FIFO22cは、サブマイクロコンピュータ32からCPUボード10でモデル演算を起動するために使用される32ビットのFIFOレジスタとレジスタ制御部を備えている。MEMCバスを介してサブマイクロコンピュータ32からモデル演算を実行するための関数呼出コマンド及び引数がFIFOレジスタに書き込まれると、レジスタ制御部によりPCIバスブリッジ21を介してCPUボード10上のPCIバスブリッジ15に当該関数呼出コマンド及び引数が送信される。
共有メモリ23は、デュアルポートRAMで構成され、メインマイクロコンピュータ31とCPUボード10間のデータの遣り取りを行なう領域23aと、メインマイクロコンピュータ31とサブマイクロコンピュータ32またはFPGA33間のデータの遣り取りを行なう領域23bと、サブマイクロコンピュータ32とCPUボード10間のデータの遣り取りを行なう領域23cの三領域に区画されている。
共有メモリ23の領域23aは、メインマイクロコンピュータ31からCPUボード10への送信データの書込み領域と、CPUボード10からメインマイクロコンピュータ31への送信データの書込み領域に区画され、一方の送信データの書込み領域に書き込まれたデータが他方から読み出されるように構成されている。共有メモリ23の領域23b,23cも同様である。
共有メモリ23の領域23bは、サブマイクロコンピュータ32でアプリケーションプログラムの一部が実行される場合に、メインマイクロコンピュータ31とサブマイクロコンピュータ32間の制御データの遣り取りに使用される。
レジスタ24は、データが書き込まれる複数のレジスタと、一つのコマンドレジスタを備え、各レジスタ及び書き込まれたデータに対応したコマンドを生成して、コマンドレジスタに当該コマンドを書き込む周辺回路を備えている。
CPUボード10で実行されたモデル演算、つまり関数処理が終了したときに、CPUボード10から対応するレジスタ24aに終了データが書き込まれると、レジスタ24aの周辺回路により当該関数処理の終了をメインマイクロコンピュータ31に伝達するコマンドが生成されて、コマンドレジスタに当該コマンドが書き込まれる。コマンドレジスタは、コマンドが書き込まれると、MEMCバスを介してメインマイクロコンピュータ31にノンマスカブル割込み(MNINT)をかける。
メインマイクロコンピュータ31からサブマイクロコンピュータ32またはFPGA33の拡張された入出力ポートIOにデータを出力する場合に、メインマイクロコンピュータ31により対応するレジスタ24bに出力データが書き込まれると、レジスタ24bの周辺回路により当該出力データをサブマイクロコンピュータ32またはFPGA33に伝達するコマンドが生成されて、コマンドレジスタに当該コマンドが書き込まれる。コマンドレジスタは、書き込まれたコマンドをMEMCバスを介してサブマイクロコンピュータ32またはFPGA33に伝達する。
CPUボード10で実行されたモデル演算、つまり関数処理が終了したときに、CPUボード10から対応するレジスタ24cに終了データが書き込まれると、レジスタ24cの周辺回路により当該関数処理の終了をサブマイクロコンピュータ32に伝達するコマンドが生成されて、コマンドレジスタに当該コマンドが書き込まれる。コマンドレジスタは、コマンドが書き込まれると、MEMCバスを介してメインマイクロコンピュータ31にノンマスカブル割込み(MNINT)をかける。
メインマイクロコンピュータ31及びサブマイクロコンピュータ32のメモリ31b、32bには、アプリケーションプログラムに加えて、アプリケーションプログラムの実行により発生するMEMCバスを介した通信インタフェース20とデータの遣り取りを実行するファームウェアが移植されている。
以下、ソフトウェア開発装置100の動作を、図5に基づいて説明する。
電源が投入されると、メインマイクロコンピュータ31でアプリケーションプログラムが実行され、標準IOから入力される各種の信号に基づいて所定の演算処理が実行され、必要な信号が標準IOを介して出力される。
メインマイクロコンピュータ31のファームウェアは、アプリケーションプログラムからCPUボード10で実行すべきモデルに対応する関数がコールされると、当該関数の実行に必要となるデータをローカルメモリ31b,32bから読み出して共有メモリ23に書き込むとともに、当該関数の処理要求をFIFO22に書き込む。
以下、詳述する。アプリケーションプログラムから関数(func A)がコールされると、先ず、ファームウェアに準備されているAPI(Application Program Interface)が起動され、APIの関数呼出インタフェースを介して関数が特定され、当該関数を実行するために必要なデータがローカルメモリ31bから読み出されて、その値が通信インタフェース20の共有メモリ23aに書き込まれる(S1)。
次に、ファームウェアにより当該関数の処理要求である関数実行コマンドと引数がFIFO22に書き込まれる(S2)。
FIFO22に関数実行コマンドと引数が書き込まれると、FIFO22の入出力制御回路によりPCIバスブリッジを介してCPUボード10に関数実行コマンドと引数が送信される。CPUボード10のPCIバスインタフェースは、PCIバスブリッジ15を介してFIFO22に書き込まれた当該関数の処理要求を受信すると、CPU11にPCI割込みを発生させる(S3)。
CPU11は、モデルインタフェースの一部である関数呼出インタフェースを介して、当該関数の実行に必要となるデータ(引数で定義されるデータ)を共有メモリ23aから読み出して、自身のメモリ13に書き込む(S4)。
その後、CPU11で当該関数が実行され(S5)、当該関数の実行が終了すると、モデルインタフェース及びPCIバスインタフェースを介して、通信インタフェース20の共有メモリ23aの所定領域に関数の出力データが書き込まれ(S6)、続いてレジスタ24aの所定領域に終了データが書き込まれる(S7)。
終了データが書き込まれたレジスタ24aでは、周辺回路により終了をメインマイクロコンピュータ31に伝達するコマンドが生成されて、コマンドレジスタに当該コマンドが書き込まれる。コマンドレジスタは、コマンドが書き込まれると、MEMCバスを介してメインマイクロコンピュータ31にノンマスカブル割込み(MNINT)をかける(S8)。
メインマイクロコンピュータ31のファームウェアは、当該割込み要求に対応してコマンドレジスタに書き込まれたコマンドを読み出すと、関数の終了を認識して、共有メモリ23aに書き込まれている関数の出力データをローカルメモリ31bにコピーし(S9)、関数(func A)の処理を終了し、次のアプリケーションプログラムの実行を起動する(S10)。
上述したPCIバス及びPCIバスブリッジを介したデータの平均送信時間は数μ秒、MEMCバスを介したデータの平均送信時間は数n秒である。例えば、上述した関数の呼出処理(S1からS5の処理)で十数μ秒、関数の終了通知(S6からS10の処理)で十数μ秒となる。従って、一般のLANを用いたリモートプロシージャコールが数m秒必要となるのに対して、極めて高速に処理が行なえるようになる。
サブマイクロコンピュータ32に移植されたアプリケーションプログラムの一部によりCPUボード10で実行すべき関数がコールされた場合も、上述と同様にして処理が実行される。
アプリケーションプログラムの実行に伴なって、メインマイクロコンピュータ31から、例えば拡張リソース34としてのサブマイクロコンピュータ32にデータを出力する必要がある場合について説明する。尚、拡張リソース34としてのFPGA33からデータを出力する場合も以下と同様のシーケンスが実行される。
図4に示すように、メインマイクロコンピュータ31でデータ出力命令が実行されるとファームウェアが起動される。ファームウェアは、ローカルメモリ31bにマップされている出力データを参照して、MEMCバスを介して通信インタフェース20のレジスタ24aの所定領域に制御データを書き込む。
制御データが書き込まれたレジスタ24aでは、周辺回路により出力をサブマイクロコンピュータ32に伝達するコマンドが生成されて、コマンドレジスタに当該コマンドが書き込まれる。コマンドレジスタは、コマンドが書き込まれると、MEMCバスを介してサブマイクロコンピュータ32にノンマスカブル割込み(MNINT)をかける。
サブマイクロコンピュータ32のファームウェアは、当該割込み要求に対応してコマンドレジスタに書き込まれたコマンドを読み出すと、対応するIOポートからコマンドに従ってデータを出力する。
つまり、通信インタフェース20に構築されているレジスタ24には、区分された各領域毎に、モデル演算の終了やデータの出力等の書き込まれたデータに対応するコマンドを生成して、コマンドレジスタに当該コマンドを書き込む周辺回路が構築されている。
そして、データを出力するためのレジスタ24は、拡張リソース34の出力レジスタと対応付けるように構成され、レジスタ24にデータを書き込むと、あたかも拡張リソース34の出力レジスタに直接データを書き込むのと同様に動作するように構成されている。
次に、拡張リソース34としてのFPGA33に外部から入力されたデータをメインマイクロコンピュータ31に伝送する場合を説明する。尚、拡張リソース34としてのサブマイクロコンピュータ32からデータを入力する場合も以下と同様のシーケンスが実行される。
FPGA33の入出力リソースの一つである入力ポートに外部から信号が入力されると、入力ポートの周辺回路(サブマイクロコンピュータ32のファームウェアに相当する)によって、MEMCバスを介して通信インタフェース20の共有メモリ24bに当該入力信号が書き込まれるとともに、FIFO22bに入力発生データ及びポート識別データが書き込まれる。
次に、FIFO22bの入出力制御回路により、メインマイクロコンピュータ31にノンマスカブル割込み信号が出力される。当該割込み信号に対応してメインマイクロコンピュータ31によりFIFO22bに格納された入力発生データ及びポート識別データが読み出され、対応する入力データが共有メモリ24bから読み出され、ローカルメモリ31bに格納される。
尚、FPGA33によって、FIFO22bにポート識別データ及び入力データを書き込み、FIFO22bの入出力制御回路により、メインマイクロコンピュータ31にノンマスカブル割込み信号を出力し、当該割込み信号に対応してメインマイクロコンピュータ31がFIFO22bに格納されたポート識別データ及び入力データを読み出すように構成することも可能であり、この場合には共有メモリ24bを介在させることが不要になり、データの伝送に要する時間を更に短縮できる。
例えば、メインマイクロコンピュータ31として、現在使用されているエンジン制御用のマイクロコンピュータを採用することにより、現在のアプリケーションプログラムをベースに次世代のアプリケーションを効率的に開発でき、負荷が大きなモデル演算を高速処理可能なCPUボード10で実行することで、処理速度の低下を来たすことなく、アプリケーションの開発及び評価が効率的に行なえるようになる。
車両のエンジン制御等の組み込みコンピュータでは、処理速度の遅いCPUでも遅れ無く演算可能なように、演算を行なうアプリケーションプログラムをC言語等の高速での処理が可能な言語で作成している。しかしながら、C言語等の比較的高速で処理が可能な言語は、プログラミングに時間がかかってしまうので、開発の上流段階において、人が処理内容を理解しやすく、作成や修正が容易なモデル演算形式でアプリケーションプログラムを作成し、アプリケーションプログラムの基本的な動作確認を行ないたいという要望がある。
そのような場合でも、Simulink(MathWorks社の登録商標)等がインストールされたモデル生成コンピュータ50によって、目的とするモデルの構築或は変更がきわめて容易に行なえるようになるので、評価結果に基づいてブラッシュアップされた最適モデルに基づいて、最終的にCソースのモデルを効率的に生成することができる。
尚、開発の下流段階において、アプリケーションプログラムをモデル演算形式で作成していたものを、C言語等の処理が速い形式への変換を行なっているが、精度が求められる制御である場合等は、変換を行なわず、製品にそのままモデル演算形式で作成したアプリケーションプログラムを移植するケースも考えられる。
CPUボードでモデル演算を実行させる場合、汎用制御部からリモートプロシージャコール(Remote Procedure Call)と呼ばれるプロトコルが採用されるのであるが、汎用制御部と汎用のCPUボードをTCP/IPのようなプロトコルを採用するネットワークを介して接続すると、ネットワークによる信号伝達の遅延に起因して、適切なタイミングでモデル演算を実行させ、その結果を得ることが困難である。つまり制御のリアルタイム性を確保することが困難となるという問題がある。
しかし、本発明による通信インタフェースを用いることにより、通信の遅延による制御のリアルタイム性が損なわれることはない。
また、入出力リソースが不足する場合には、FPGA33やサブマイクロコンピュータ32等の拡張リソース34により、入出力リソースを補充することができる。FPGA33に構築されるIOリソースの種類や数、サブマイクロコンピュータ32の種類や数は、特に制限されるものではなく、ターゲットとなるECUに応じて適宜設定すればよい。
特に、エンジンから入力されるクランクパルスに基づいてエンジンの回転数を検知するクランク割込み処理等、処理時間に厳しい制限が課されるプログラムの一部をサブマイクロコンピュータ32で代替実行させることも可能となり、アプリケーションプログラムに様々な機能を組み込むことによりメインマイクロコンピュータ31での処理負荷が増大する場合であっても、処理速度の低下を来たすことなく、アプリケーションの開発及び評価が効率的に行なえるようになる。
具体的には、サブマイクロコンピュータ32のローカルメモリ32bに、アプリケーションプログラムの一部を予め移植しておき、通信インタフェース20の共有メモリ23bを介して、メインマイクロコンピュータ31とサブマイクロコンピュータ32間でデータの引渡しを行なうことにより、双方が並行して処理を実行することができる。例えば、双方がクランクパルスの最小周期よりも長い所定周期で共有メモリ23bにデータを書き込み、或は読み出すように構成すればよい。
上述したソフトウェア開発装置100によるアプリケーションプログラムの総合的な評価は、CPUボード10のLANに接続されたホストコンピュータ60を介して行なうことができる。
例えば、汎用制御部30のファームウェアに、各マイクロコンピュータ31,32のRAM等のメモリ内容を読み出すモニタ機能、各マイクロコンピュータ31,32によるアプリケーションプログラムの実行過程を監視するモニタ機能を備え、当該モニタ機能によりモニタされたデータをPCIバス等を介してCPUボード10に送信する機能ブロックを組み込むことにより実現できる。
上述した模擬マイクロコンピュータ装置は本発明の例示に過ぎず、各部の具体的な構成は、本発明の作用効果を奏する範囲で適宜変更設計することが可能である。
10:第二の制御部(CPUボード)
11:CPU
12:チップセット
13:メモリ(RAM,ROM)
14:PCIバス
15:PCIバスブリッジ(Star Fabric)
20:通信インタフェース
21:PCIバスブリッジ(Star Fabric)
22:FIFO
23:共有メモリ(DPRAM)
24:レジスタ
30:第一の制御部(汎用制御部)
31:メインマイクロコンピュータ
32:サブマイクロコンピュータ
33:FPGA
11:CPU
12:チップセット
13:メモリ(RAM,ROM)
14:PCIバス
15:PCIバスブリッジ(Star Fabric)
20:通信インタフェース
21:PCIバスブリッジ(Star Fabric)
22:FIFO
23:共有メモリ(DPRAM)
24:レジスタ
30:第一の制御部(汎用制御部)
31:メインマイクロコンピュータ
32:サブマイクロコンピュータ
33:FPGA
Claims (8)
- CPUと当該CPUの周辺回路が内部に組み込まれた機器制御用のマイクロコンピュータを模擬する模擬マイクロコンピュータ装置であって、
アプリケーションプログラムに基づいて前記機器を制御するメインマイクロコンピュータと、前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能なサブマイクロコンピュータを含む拡張リソースとを備えた第一の制御部と、
前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能で、モデル演算を含むアプリケーションプログラムの実行が可能な第二の制御部と、
前記第一の制御部と前記第二の制御部とがそれぞれ接続され、前記メインマイクロコンピュータと前記拡張リソース間の通信処理及び前記第一の制御部と前記第二の制御部間の通信処理を個別に実行する複数系統の通信処理部を備えた通信インタフェースと、
を備えていることを特徴とする模擬マイクロコンピュータ装置。 - 各通信処理部は、一方から他方へ要求する処理の発生を通知するFIFOと、要求した処理に必要なデータを他方へ引き渡す共有メモリと、他方の処理の終了を一方に通知するレジスタを備えていることを特徴とする請求項1記載の模擬マイクロコンピュータ装置。
- 前記第一の制御部は、アプリケーションプログラムから所定のモデルに対応する関数がコールされると、当該関数の実行に必要となるデータをローカルメモリから読み出して前記共有メモリに書き込むとともに、当該関数の処理要求を前記FIFOに書き込むファームウェアを備え、
前記第二の制御部は、前記FIFOを介して当該関数の処理要求を受信すると、当該関数の実行に必要となるデータを前記共有メモリから読み出して、当該関数を実行させ、当該関数の実行が終了すると前記レジスタの所定領域に終了データを書き込むファームウェアを備えていることを特徴とする請求項2記載の模擬マイクロコンピュータ装置。 - 前記メインマイクロコンピュータは、アプリケーションプログラムから所定のモデルに対応する関数がコールされると、当該関数の実行に必要となるデータをローカルメモリから読み出して前記共有メモリに書き込むとともに、当該関数の処理要求を前記FIFOに書き込むファームウェアを備え、
前記サブマイクロコンピュータは、前記FIFOを介して当該関数の処理要求を受信すると、当該関数の実行に必要となるデータを前記共有メモリから読み出して、当該関数を実行させ、当該関数の実行が終了すると前記レジスタの所定領域に終了データを書き込むファームウェアを備えていることを特徴とする請求項2記載の模擬マイクロコンピュータ装置。 - 前記メインマイクロコンピュータは、前記拡張リソースを介してデータを出力する場合に、前記レジスタの所定領域に対応するデータを書き込むファームウェアを備え、
前記拡張リソースは、前記レジスタに書き込まれたデータに基づいて外部にデータを出力するファームウェアを備えていることを特徴とする請求項2記載の模擬マイクロコンピュータ装置。 - 前記拡張リソースは、外部からデータが入力されると、前記FIFOに入力データの発生を書き込むとともに、その値を前記共有メモリに書き込むファームウェアを備え、
前記メインマイクロコンピュータは、前記FIFOを介して入力データの発生を認識すると、前記共有メモリからその値を読み出してローカルメモリに格納するファームウェアを備えていることを特徴とする請求項2または5記載の模擬マイクロコンピュータ装置。 - 前記拡張リソースには、サブマイクロコンピュータに加えてプログラマブルな入出力リソースを備えていることを特徴とする請求項1から6の何れかに記載の模擬マイクロコンピュータ装置。
- CPUと当該CPUの周辺回路が内部に組み込まれた機器制御用のマイクロコンピュータを模擬する模擬マイクロコンピュータ装置であって、
アプリケーションプログラムに基づいて前記機器を制御するメインマイクロコンピュータと、前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能なサブマイクロコンピュータを含む拡張リソースとを備えた第一の制御部と、
前記メインマイクロコンピュータで実行すべきアプリケーションプログラムの一部を代替実行することが可能で、モデル演算を含むアプリケーションプログラムの実行が可能な第二の制御部と、
前記第一の制御部と前記第二の制御部とをそれぞれ接続する通信処理部を備えた通信インタフェースと、
を備えていることを特徴とする模擬マイクロコンピュータ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008211061A JP2010049355A (ja) | 2008-08-19 | 2008-08-19 | 模擬マイクロコンピュータ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008211061A JP2010049355A (ja) | 2008-08-19 | 2008-08-19 | 模擬マイクロコンピュータ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010049355A true JP2010049355A (ja) | 2010-03-04 |
Family
ID=42066405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008211061A Withdrawn JP2010049355A (ja) | 2008-08-19 | 2008-08-19 | 模擬マイクロコンピュータ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010049355A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014097587A1 (ja) * | 2012-12-19 | 2014-06-26 | 株式会社デンソー | 車両用表示制御装置 |
CN109342067A (zh) * | 2018-08-31 | 2019-02-15 | 西安航天动力技术研究所 | 一种固体火箭冲压发动机测试系统 |
-
2008
- 2008-08-19 JP JP2008211061A patent/JP2010049355A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014097587A1 (ja) * | 2012-12-19 | 2014-06-26 | 株式会社デンソー | 車両用表示制御装置 |
JP2014139772A (ja) * | 2012-12-19 | 2014-07-31 | Denso Corp | 車両用表示制御装置 |
CN104884309B (zh) * | 2012-12-19 | 2017-03-08 | 株式会社电装 | 车辆用显示控制装置 |
US9779685B2 (en) | 2012-12-19 | 2017-10-03 | Denso Corporation | Display control device for vehicle to generate native display images and versatile display images |
CN109342067A (zh) * | 2018-08-31 | 2019-02-15 | 西安航天动力技术研究所 | 一种固体火箭冲压发动机测试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4728020B2 (ja) | 車両制御用ソフトウェア及び車両制御装置 | |
US9836384B2 (en) | Testing device for real-time testing of a virtual control unit | |
JP6692278B2 (ja) | 演算装置及び仮想開発環境装置 | |
JP5295355B2 (ja) | シミュレーション方法、システム及びプログラム | |
JP2011022702A (ja) | シミュレーション方法、システム及びプログラム | |
JPWO2008099931A1 (ja) | マイクロコンピュータの模擬装置 | |
JP4906286B2 (ja) | ソフトウェア開発環境システム | |
JP2010049355A (ja) | 模擬マイクロコンピュータ装置 | |
JP4877424B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
JP2004234530A (ja) | マイクロコンピュータのロジック開発装置 | |
JP4676900B2 (ja) | 分散制御システム用シミュレータ | |
JP2008282314A (ja) | シミュレータ、シミュレーション方法 | |
JP2009054041A (ja) | 模擬マイクロコンピュータ装置 | |
JP2007233675A (ja) | シミュレーション装置 | |
JP3827615B2 (ja) | マイコンのロジック開発装置及び開発方法 | |
JP2007233930A (ja) | 分散制御システム用シミュレータ | |
JP5772716B2 (ja) | 電子制御装置 | |
JP2010244376A (ja) | ソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法 | |
JP2019179284A (ja) | シミュレーションシステム、及びシミュレーションプログラム | |
JP5156440B2 (ja) | マイクロコンピュータの模擬装置 | |
JP3827565B2 (ja) | マイコンのロジック開発装置 | |
JP2007196859A (ja) | 車両制御装置 | |
EP3637262B1 (en) | Verification device for vehicle control device and vehicle control device | |
JP5085719B2 (ja) | 車両制御用ソフトウェア及び車両制御装置 | |
JP2009166779A (ja) | 車両制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110801 |
|
A072 | Dismissal of procedure |
Free format text: JAPANESE INTERMEDIATE CODE: A073 Effective date: 20121204 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130108 |