(57)【要約】【課題】先行ロジックに必要なＣＰＵ機能を確保でき、Ｉ／Ｏ情報の確実な通信とＣＰＵの演算処理能力の向上を図るロジック開発装置を提供する。【解決手段】ＥＣＵ１で使用される組込み用マイクロコンピュータ２のロジック開発装置２０を、アプリケーション処理機能３１と通信機能３０Ｄを備えたマザーボード３０と、疑似マイクロコンピュータ周辺装置４２、演算機能４０Ｍ、及び通信機能４０Ｄを備え、マザーボード３０とＰＣＩバス３９で接続されるコアボード４０と、ＥＣＵ１のハードウエア相当回路５３，５５を有し、コアボード４０に接続するＩＦボード５０とから構成し、マザーボード３０の通信機能３０Ｄと、コアボード４０の疑似マイクロコンピュータ周辺装置４２との間に設けたＰＣＩバス３９により、両者間で直接データの送受信を行うようにしたものである。【選択図】      図５
2004234530.tif 000002
【特許請求の範囲】
【請求項１】
電子制御ユニットに組み込まれて使用される組込み用マイクロコンピュータのロジック開発装置であって、
アプリケーション処理機能と通信機能を備えた中央ブロックと、
マイクロコンピュータの周辺装置を擬似的にソフトウエアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、前記中央ブロックとＰＣＩバスで接続される周辺ブロックと、
電子制御ユニットのハードウエアに相当する回路を有し、前記周辺ブロックに接続するインタフェース回路ブロックとを備え、
前記中央ブロックの通信機能と、前記周辺ブロックの前記疑似マイクロコンピュータ周辺装置とが前記ＰＣＩバスで接続され、このＰＣＩバスを介して前記通信機能と前記疑似マイクロコンピュータ周辺装置との間で、直接データの送受信が行えるように構成されていることを特徴とするマイクロコンピュータのロジック開発装置。
【請求項２】
電子制御ユニットに組み込まれて使用される組込み用マイクロコンピュータのロジック開発装置であって、
アプリケーション処理機能と通信機能を備えた中央ブロックと、
マイクロコンピュータの周辺装置を擬似的にソフトウエアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、前記中央ブロックとＰＣＩバスで接続される周辺ブロックと、
電子制御ユニットのハードウエアに相当する回路を有し、前記周辺ブロックに接続するインタフェース回路ブロックとを備え、
前記中央ブロックの通信機能と、前記疑似マイクロコンピュータ周辺装置との間にある前記演算機能に、バスコントローラが設けられ、前記ＰＣＩバスで前記中央ブロックの通信機能とこのバスコントローラとの間が接続され、前記バスコントローラと前記疑似マイクロコンピュータ周辺装置との間は内部バスで接続され、前記ＰＣＩバス、前記バスコントローラ、及び前記内部バスを介して、前記通信機能と前記疑似マイクロコンピュータ周辺装置との間で、直接データの送受信が行われるように構成したことを特徴とするマイクロコンピュータのロジック開発装置。
【請求項３】
前記中央ブロックの通信機能と前記ＰＣＩバスとの間に仮想入出力レジスタが設けられており、
データの入出力操作のタイミングにおいて、この仮想入出力レジスタに送受信データが一旦蓄積されることにより、この仮想入出力レジスタが実際のマイクロコンピュータの入出力レジスタと同様の振る舞いをするように構成されていることを特徴とする請求項１又は２に記載のマイクロコンピュータのロジック開発装置。
【請求項４】
前記アプリケーション処理機能の処理対象が車両であり、前記ロジック開発装置にイグニッションスイッチが設けられており、前記ロジック開発装置がこのイグニッションスイッチのオン／オフに連動して、実際の電子制御ユニット同様に前記車両の制御ソフトウエア処理の開始／停止が実行されることを特徴とする請求項１から３の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項５】
前記インタフェース回路ブロックに備えられた前記電子制御ユニットのハードウエアに相当する回路に、マイクロコンピュータを内蔵した機能回路が少なくとも１つ存在し、この機能回路は、前記イグニッションスイッチのオンでは動作せず、前記中央ブロックの処理開始タイミングに同期してオンするように構成されていることを特徴とする請求項４に記載のマイクロコンピュータのロジック開発装置。
【請求項６】
前記機能回路には、前記イグニッションスイッチのオンで動作する電源回路と、この電源回路からの信号と、前記中央ブロックからの信号が共にアクティブになった時に前記マイクロコンピュータを動作させる論理回路が設けられていることを特徴とする請求項５に記載のマイクロコンピュータのロジック開発装置。
【請求項７】
前記イグニッションスイッチのオフ時に、保持すべきデータの値が、前記ロジック開発装置に接続されている外部記憶装置内のメモリと前記ロジック開発装置内のメモリの何れかに保存され、前記イグニッションスイッチのオン時に、前記メモリから前記保持すべきデータの値が読み出されて復元され、前記ロジック開発装置にバックアップメモリが備えられているのと同等の機能が実現されることを特徴とする請求項４から６の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項８】
前記ロジック開発装置の電源がオンされた後に、前記イグニッションスイッチがオンされるまでの間に、前記中央ブロックの初期化ルーチンにより、ポートの初期値が設定されることを特徴とする請求項４から７の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項９】
前記ＰＣＩバスに、前記周辺ブロックから前記中央ブロックへの割込み要求を発行することができる１系統の割込み信号ラインが設けられており、前記中央ブロックの前記アプリケーション処理機能は、前記周辺ブロックによって前記割込み信号ラインがアクティブになった時に割込み処理を受け付けるようになっていると共に、割込み処理の受け付け終了後に、前記割込み信号ラインがノンアクティブになるように動作することを特徴とする請求項１から８の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項１０】
前記中央ブロックの前記アプリケーション処理機能は、前記割込み処理の終了時に、前記割込み信号ラインがノンアクティブであることを確認するように動作することを特徴とする請求項９に記載のマイクロコンピュータのロジック開発装置。
【請求項１１】
前記中央ブロックの前記アプリケーション処理機能は、前記割込み処理の終了時に前記割込み信号ラインがアクティブとなっている時は、前記割込み信号ラインをノンアクティブに戻すように動作することを特徴とする請求項１０に記載のマイクロコンピュータのロジック開発装置。
【請求項１２】
前記周辺ブロックの演算機能にデータの一時取り込み機能が設けられており、前記中央ブロックと、前記周辺ブロックの前記疑似マイクロコンピュータ周辺装置との間で大量のデータが送受信される場合に、この大量のデータは前記中央ブロックとこの演算機能との間でバースト転送により送受信され、前記演算機能と前記疑似マイクロコンピュータ周辺装置との間は非バースト転送により少量ずつデータの送受信が行われることを特徴とする請求項１から１１の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項１３】
前記中央ブロックの前記アプリケーション処理機能により、前記割込み処理の受け付け終了後に前記ＰＣＩバスを通じて前記疑似マイクロコンピュータ周辺装置から割込みフラグが取得され、前記アプリケーション処理機能によって割込みフラグが取得されると、前記疑似マイクロコンピュータ周辺装置にある当該割込みフラグは、前記アプリケーション処理機能によりクリアされることを特徴とする請求項９に記載のマイクロコンピュータのロジック開発装置。
【請求項１４】
前記中央ブロックの前記アプリケーション処理機能により割込みフラグが取得されると、前記アプリケーション処理機能により、取得した割込みフラグに付随する処理が実行されることを特徴とする請求項１３に記載のマイクロコンピュータのロジック開発装置。
【請求項１５】
前記中央ブロックの前記アプリケーション処理機能により、前記割込み処理の受け付け終了後に前記ＰＣＩバスを通じて前記疑似マイクロコンピュータ周辺装置から複数の割込みフラグが前記アプリケーション処理機能に取得された場合に、
前記アプリケーション処理機能によって優先度の高い割込みフラグが１つ選択されてそのフラグに対する処理が実行され、処理終了後に、前記疑似マイクロコンピュータ周辺装置にある当該処理完了割込みフラグは、前記アプリケーション処理機能によりクリアされることを特徴とする請求項９に記載のマイクロコンピュータのロジック開発装置。
【請求項１６】
前記アプリケーション処理機能によって優先度の高い割込みフラグが１つ選択されてそのフラグに対する処理が実行された後は、前記アプリケーション処理機能により、再度前記ＰＣＩバスを通じて前記疑似マイクロコンピュータ周辺装置から複数の割込みフラグが前記アプリケーション処理機能に取得されることを特徴とする請求項１５に記載のマイクロコンピュータのロジック開発装置。
【請求項１７】
前記割込みフラグは、前記疑似マイクロコンピュータ周辺装置の１つのレジスタの連続するアドレスに、まとめて記憶されていることを特徴とする請求項１３から１６の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項１８】
前記周辺ブロックが複数個設けられており、
各周辺ブロックに設けられた各レジスタには、各周辺ブロックにおいて割込み処理を発生させる各リソースの割込みフラグがそれぞれ格納されており、
第１番目の周辺ブロックに設けられた前記レジスタには、第１番目の周辺ブロックにおける各リソースの割込みフラグがそれぞれ格納されていると共に、残りの周辺ブロックにおける各リソースの割込みフラグの有無を示す拡張割込みフラグが、各周辺ブロック毎に格納されていることを特徴とする請求項１７に記載のマイクロコンピュータのロジック開発装置。
【請求項１９】
前記拡張割込みフラグにより、残りの何れかの周辺ブロックの前記レジスタに割込みフラグが格納されていることが判明した場合には、前記アプリケーション処理機能により、前記残りの周辺ブロックの当該レジスタから前記割込みフラグが取得されることを特徴とする請求項１８に記載のマイクロコンピュータのロジック開発装置。
【請求項２０】
前記周辺ブロックが複数個設けられており、
第１番目の周辺ブロックのみにフリーランタイマが存在し、
前記第１番目の周辺ブロックには、少なくとも前記フリーランタイマのタイマ値に同期して動作するリソースが配置され、
残りの周辺ブロックには、前記フリーランタイマに依存しないリソースのみが配置されていることを特徴とする請求項１から１９の何れか１項に記載のマイクロコンピュータのロジック開発装置。
【請求項２１】
前記フリーランタイマのタイマ値に同期して動作するリソースがコンペア、キャプチャであり、
前記フリーランタイマに依存しないリソースがＰＷＭ、通信、ＡＤ、及びポートであることを特徴とする請求項２０に記載のマイクロコンピュータのロジック開発装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロコンピュータのロジック開発装置に関し、特に、電子制御機器に組み込まれて使用されている組込み用マイクロコンピュータにおけるロジックを開発するための装置に関する。
【０００２】
【従来の技術】
従来、電子制御機器の制御、例えば、ＥＣＵ（電子制御ユニット）によって制御されるエンジンの制御は、排気ガス規制等の法規要求、及びマイクロコンピュータの性能向上に応じた性能向上を図るため、年々改良を加える必要があり、現状のＥＣＵの性能に先行して新しいロジックが開発されているのが現状である。このため、先行ロジックは、性能向上が見込まれる次期マイクロコンピュータがターゲットとなることが多い。また、先行ロジックに必要とされる性能から性能の向上した次期マイクロコンピュータの選定が行われる。
【０００３】
しかしながら、性能の向上した次期マイクロコンピュータを組み込んだＥＣＵは実在しないため、前述の先行ロジックは、多くの場合は現状のマイクロコンピュータをベースにして開発が行われる。
【０００４】
ところが、現状のマイクロコンピュータを組み込んだＥＣＵを用いて先行ロジックの開発を行う場合には、以下のような問題点があった。
（１）マイクロコンピュータのＣＰＵの処理能力が不足している。
（２）マイクロコンピュータのメモリの容量が足りない。
（３）周辺リソースが足りない。
（４）次期ＥＣＵを開発して製作する迄に時間がかかる。
【０００５】
そして、このような問題点の存在により、次期マイクロコンピュータの開発が遅れ、この次期マイクロコンピュータを組み込んだＥＣＵに制御される電子制御機器の新製品の開発に支障をきたしていた。
【０００６】
なお、現状の電子制御機器に組み込まれる組込み用マイクロコンピュータは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様でＣＰＵ性能、及び周辺機能が選択されており、また、ＣＰＵやマイクロコンピュータ周辺リソースが１つのパッケージの中に組み込まれているため、それぞれの機能変更はマイクロコンピュータを変更しない限り不可能である。また、組込み用マイクロコンピュータのロジックの開発を行うためには、ＣＰＵ機能に対しては先行ロジックを処理するのに必要な処理性能が必要であり、更に、マイクロコンピュータ周辺リソースには先行システムに合わせたリソースを確保する必要があった。その上、新たなマイクロコンピュータの開発を行う度に、マイクロコンピュータに合わせてＥＣＵを製作する必要があった。
【０００７】
この課題に対して、汎用的なＣＰＵ、メモリ（ＲＡＭ，ＲＯＭ）、プログラマブル論理回路（ＦＰＧＡ）、及びこれらを接続するプログラマブル配線素子（ＦＰＩＣ）をプリント基板上に交換可能に設けて１チップマイコン用検証ボードを作成し、組込み用マイクロコンピュータの機能をこの１チップマイコン用検証ボードによって実現しているものがある。（例えば、特許文献１参照）。
【０００８】
【特許文献１】
特開平８−１６４２５号公報（図１，図２）
この１チップマイコン用検証ボードでは、１チップマイクロコンピュータを適用するシステムに対応するユーザ回路、Ｉ／Ｏ部及びレジスタ部に対応する論理機能をＦＰＧＡに書き込んでおき、ＦＰＩＣを用いてＣＰＵ、メモリ、及びＦＰＧＡ間の入出力端子の接続状態を設定している。また、異なる１チップマイコン用検証ボードを開発する場合には、適用するシステムに対応したＲＯＭ、ＦＰＧＡ、及びＦＰＩＣを新たに作り、対応するソケットのデバイスと交換することによってこれを行っていた。
【０００９】
これに対して、本発明者らは、このような先行ロジックの開発に際して汎用性を向上させるために、現状の電子制御機器に組み込まれる組込み用マイクロコンピュータを、外部に設けた高性能のマイクロコンピュータに置き換えることにより、先行ロジックを開発することができるマイクロコンピュータのロジック開発装置を既に提案した（特願２００１−３６７４９６号）。
【００１０】
このマイクロコンピュータのロジック開発装置では、ＥＣＵは一般に、マイクロコンピュータのＣＰＵ機能を備えたマザーボード、マイクロコンピュータの入出力（Ｉ／Ｏ）のリソース機能を備えたコアボード、及び、ハードウエア機能を備えたＩＦボードから構成されている。マザーボードとコアボード間はＰＣＩバスで接続され、Ｉ／Ｏ情報の通信が行われる。各ボード自体の性能は、各ボードに搭載される部品の性能によって決定される。
【００１１】
【発明が解決しようとする課題】
しかしながら、各ボードの性能をマイクロコンピュータのロジック開発装置自体の性能として有効に引き出せるかどうかは、マザーボードとコアボードの間におけるＩ／Ｏ情報の通信速度、マザーボードとコアボードにおける演算処理能力が大きく影響することが知られている。例えば、電子制御機器が高性能のエンジンの制御システムである場合には、以下のような課題が発生する。
（１）Ｉ／Ｏデータの異常によるエンジン制御システムへの影響が大である。
（２）厳しいタイミングでのＩ／Ｏ操作を行う際の処理が増加し、処理時間が増大する。
（３）データ処理量の多い演算処理が増加する。
【００１２】
そこで、本発明の目的は、マザーボードとコアボード間におけるＩ／Ｏ情報の確実な通信を実現できると共に、Ｉ／Ｏ情報通信のスピードを向上させること、及び、マザーボードとコアボードの演算処理能力の向上を図ることができて、より高性能のエンジン制御システムに対応することが可能なマイクロコンピュータのロジック開発装置を提供することである。
【００１３】
【課題を解決するための手段】
前記目的を達成する本発明のマイクロコンピュータのロジック開発装置は以下の第１から第２１の形態を取り得ることを特徴としている。
【００１４】
第１の形態は、制御ユニットに組み込まれて使用される組込み用マイクロコンピュータのロジック開発装置であって、アプリケーション処理機能と通信機能を備えた中央ブロックと、マイクロコンピュータの周辺装置を擬似的にソフトウエアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、中央ブロックとＰＣＩバスで接続される周辺ブロックと、電子制御ユニットのハードウエアに相当する回路を備え、周辺ブロックに接続するインタフェース回路ブロックとを備え、中央ブロックの通信機能と、周辺ブロックの疑似マイクロコンピュータ周辺装置とがＰＣＩバスで接続され、このＰＣＩバスを介して通信機能と疑似マイクロコンピュータ周辺装置との間で、直接データの送受信を行うものである。
【００１５】
第２の形態は、制御ユニットに組み込まれて使用される組込み用マイクロコンピュータのロジック開発装置であって、アプリケーション処理機能と通信機能を備えた中央ブロックと、マイクロコンピュータの周辺装置を擬似的にソフトウエアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、中央ブロックとＰＣＩバスで接続される周辺ブロックと、電子制御ユニットのハードウエアに相当する回路を備え、周辺ブロックに接続するインタフェース回路ブロックとを備え、中央ブロックの通信機能と、疑似マイクロコンピュータ周辺装置との間にある演算機能に、バスコントローラが設けられ、ＰＣＩバスで中央ブロックの通信機能とこのバスコントローラとの間が接続され、バスコントローラと疑似マイクロコンピュータ周辺装置との間は内部バスで接続され、ＰＣＩバス、バスコントローラ、及び内部バスを介して、通信機能と疑似マイクロコンピュータ周辺装置との間で、直接データの送受信を行うものである。
【００１６】
第３の形態は、第１又は第２の形態において、中央ブロックの通信機能とＰＣＩバスとの間に仮想入出力レジスタが設けられており、データの入出力操作のタイミングにおいて、この仮想入出力レジスタに送受信データが一旦蓄積されることにより、この仮想入出力レジスタが実際のマイクロコンピュータの入出力レジスタと同様の振る舞いをするように構成されているものである。
【００１７】
第４の形態では、第１から第３の形態の何れかのアプリケーション処理機能の処理対象が車両であり、ロジック開発装置にイグニッションスイッチが設けられており、ロジック開発装置がこのイグニッションスイッチのオン／オフに連動して、実際のＥＣＵ１同様に車両の制御ソフトウエア処理の開始／停止が実行されるものである。
【００１８】
第５の形態は、第４の形態のインタフェース回路ブロックに備えられた電子制御ユニットのハードウエアに相当する回路に、マイクロコンピュータを内蔵した機能回路が少なくとも１つ存在し、この機能回路は、イグニッションスイッチのオンでは動作せず、中央ブロックの処理開始タイミングに同期してオンするように構成されているものである。
【００１９】
第６の形態は、第５の形態の機能回路に、イグニッションスイッチのオンで動作する電源回路と、この電源回路からの信号と、中央ブロックからの信号が共にアクティブになった時にマイクロコンピュータを動作させる論理回路が設けられているものである。
【００２０】
第７の形態では、第４から第６の形態のイグニッションスイッチのオフ時に、保持すべきデータの値が、ロジック開発装置に接続されている外部記憶装置内のメモリとロジック開発装置内のメモリの何れかに保存され、イグニッションスイッチのオン時に、外部記憶装置から保持すべきデータの値が読み出されて復元され、ロジック開発装置にバックアップメモリが備えられているのと同等の機能が実現されるものである。
【００２１】
第８の形態は、第４から７の形態のロジック開発装置の電源がオンされた後に、イグニッションスイッチがオンされるまでの間に、中央ブロックの初期化ルーチンにより、ポートの初期値が設定されるものである。
【００２２】
第９の形態は、第１から８の何れかの形態のＰＣＩバスに、周辺ブロックから中央ブロックへの割込み要求を発行することができる１系統の割込み信号ラインが設けられており、中央ブロックのアプリケーション処理機能は、周辺ブロックによって割込み信号ラインがアクティブになった時に割込み処理を受け付けるようになっていると共に、割込み処理の受け付け終了後に、前記割込み信号ラインがノンアクティブになるように動作することを特徴とするものである。
【００２３】
第１０の形態では、第９の形態の中央ブロックのアプリケーション処理機能が、割込み処理の終了時に、割込み信号ラインがノンアクティブであることを確認するように動作する。
【００２４】
第１１の形態では、第１０の形態の中央ブロックのアプリケーション処理機能が、割込み処理の終了時に、割込み信号ラインがアクティブとなっている時は、割込み信号ラインをノンアクティブに戻すように動作する。
【００２５】
第１２の形態は、第１から第１１の形態のブロックの演算機能にデータの一時取り込み機能が設けられており、中央ブロックと、周辺ブロックの疑似マイクロコンピュータ周辺装置との間で大量のデータが送受信される場合に、この大量のデータは中央ブロックとこの演算機能との間でバースト転送により送受信され、演算機能と疑似マイクロコンピュータ周辺装置との間は非バースト転送により少量ずつデータの送受信が行われることを特徴とするものである。
【００２６】
第１３の形態は、第９の形態の中央ブロックのアプリケーション処理機能により、割込み処理の受け付け終了後にＰＣＩバスを通じて疑似マイクロコンピュータ周辺装置から割込みフラグが取得され、アプリケーション処理機能によって割込みフラグが取得されると、疑似マイクロコンピュータ周辺装置にある当該割込みフラグは、アプリケーション処理機能によりクリアされるものである。
【００２７】
第１４の形態は、第１３の形態の中央ブロックのアプリケーション処理機能により割込みフラグが取得されると、アプリケーション処理機能により、取得した割込みフラグに付随する処理が実行されることを特徴とするものである。
【００２８】
第１５の形態は、第１４の形態の中央ブロックのアプリケーション処理機能により、割込み処理の受け付け終了後にＰＣＩバスを通じて疑似マイクロコンピュータ周辺装置から複数の割込みフラグがアプリケーション処理機能に取得された場合に、アプリケーション処理機能によって優先度の高い割込みフラグが１つ選択されてそのフラグに対する処理が実行され、処理終了後に、疑似マイクロコンピュータ周辺装置にある当該処理完了割込みフラグは、アプリケーション処理機能によりクリアされることを特徴としている。
【００２９】
第１６の形態は、第１５の形態のアプリケーション処理機能によって優先度の高い割込みフラグが１つ選択されてそのフラグに対する処理が実行された後は、アプリケーション処理機能により、再度ＰＣＩバスを通じて疑似マイクロコンピュータ周辺装置から複数の割込みフラグがアプリケーション処理機能に取得されることを特徴とするのである。
【００３０】
第１７の形態は、第１３から第１６の形態の割込みフラグが、疑似マイクロコンピュータ周辺装置の１つのレジスタの連続するアドレスに、まとめて記憶されていることを特徴とするものである。
【００３１】
第１８の形態は、第１７の形態の周辺ブロックが複数個設けられており、各周辺ブロックに設けられた各レジスタには、各周辺ブロックにおいて割込み処理を発生させる各リソースの割込みフラグがそれぞれ格納されており、第１番目の周辺ブロックに設けられたレジスタには、第１番目の周辺ブロックにおける各リソースの割込みフラグがそれぞれ格納されていると共に、残りの周辺ブロックにおける各リソースの割込みフラグの有無を示す拡張割込みフラグが、各周辺ブロック毎に格納されていることを特徴とするものである。
【００３２】
第１９の形態は、第１８の形態の拡張割込みフラグにより、残りの何れかの周辺ブロックのレジスタに割込みフラグが格納されていることが判明した場合には、アプリケーション処理機能により、残りの周辺ブロックの当該レジスタから割込みフラグが取得されることを特徴としている。
【００３３】
第２０の形態は、第１から第１９の形態の周辺ブロックが複数個設けられており、第１番目の周辺ブロックのみにフリーランタイマが存在し、第１番目の周辺ブロックには、少なくともフリーランタイマのタイマ値に同期して動作するリソースが配置され、残りの周辺ブロックには、フリーランタイマに依存しないリソースのみが配置されていることを特徴としている。
【００３４】
第２１の形態は、第２０の形態のフリーランタイマのタイマ値に同期して動作するリソースがコンペア、キャプチャであり、フリーランタイマに依存しないリソースがＰＷＭ、通信、ＡＤ、及びポートであることを特徴としている。
【００３５】
なお、以上の全ての形態において、中央ブロック、周辺ブロック、インタフェース回路ブロックをそれぞれ汎用のボードから構成することができる。また、本発明のマイクロコンピュータのロジック開発装置は、内燃機関の制御用のマイクロコンピュータに有効に適用できる。
【００３６】
以上のように構成された本発明のマイクロコンピュータのロジック開発装置によれば、マイクロコンピュータのロジックの開発に伴う課題が解消され、ＣＰＵ機能に対しては新規なロジックや次期ロジックを処理するために必要な処理性能を確保することができ、マイクロコンピュータ周辺リソースに対しては、新規システムや次期システムに合わせたリソースを確保することができて、新規ロジックや次期ロジックを実現することが可能な組込み用マイクロコンピュータを短時間で開発することが可能となる。また、本発明のマイクロコンピュータのロジック開発装置は、ロジックの開発に際して繰り返し利用することが可能であるので、開発コストを低減することができる。
【００３７】
【発明の実施の形態】
以下添付図面を用いて本発明の実施形態を具体的な実施例に基づいて詳細に説明するが、以下の実施例では、本発明を適用する電子制御機器として、電子制御式内燃機関（内燃機関は以下エンジンと記す）を説明する。
【００３８】
図１は従来の電子制御式エンジンの制御システムにおけるＥＣＵ（電子制御ユニット）１の構成を示すシステム構成図である。電子制御式エンジンでは、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力がＥＣＵ１に入力される。ＥＣＵ１は、これらの入力信号を処理する組込み用マイクロコンピュータ２と、組込み用マイクロコンピュータ２で処理された信号を増幅して出力するＥＣＵ入出力回路であるドライバ１６とを備えて構成される。このＥＣＵ１から出力されるのは、シフト制御ソレノイドやＶＶＴ（可変バルブタイミング）ソレノイドへのアナログ出力、点火信号や燃料の噴射信号等のパルス出力、ＩＳＣ（アイドル速度制御）用のパルス出力、及び、チェックエンジンランプ、メインリレーやエヤコンカット信号等のデジタル信号等である。
【００３９】
組込み用マイクロコンピュータ２は、演算処理を行うメモリ９とＣＰＵ１０、及び入出力（Ｉ／Ｏ）制御を行う周辺リソースが、１つのパッケージに収納されたものである。周辺リソースには、入力系のリソースと出力系のリソースとがある。図１には、入力系のリソースとして、デジタル信号を扱う入力ポート３とラッチポート４、アナログ入力を扱うＡ／Ｄコンバータ５、及びパルス入力を扱うキャプチャ６が示してあり、出力系のリソースとしては、デジタル出力を出力する出力ポート１２、パルス出力を出力するＰＷＭ（パルス幅変調器）１３とコンペア１４、及びアナログ出力を入出力するシリアル１５が示してある。これらの周辺リソースは内部バス１１によってメモリ９及びＣＰＵ１０に相互に接続されている。また、組込み用マイクロコンピュータ２の内部には、これらの周辺リソースに加えて、内部タイマ７や割り込みコントローラ８が設けられている。組込み用マイクロコンピュータ２の全ての端子はポートと呼ばれる。
【００４０】
電子制御式エンジンの制御システムでは、車両の運転状態を表す各センサやスイッチ類からの信号がＥＣＵ１に取り込まれる。ＥＣＵ１の入力回路では入力信号が信号処理され、組込み用マイクロコンピュータ２に入力される。入力された信号は前述の入力系の周辺リソースでＣＰＵ値に変換され、演算部であるメモリ９とＣＰＵ１０では入力信号から車両状態が検出され、車両状態に応じた出力要求信号が作られる。この出力要求信号は前述の出力系の周辺リソースで出力信号に変換され、組込み用マイクロコンピュータ２から出力される。ＥＣＵ１の入出力回路であるドライバ１６はこの出力信号に従って車両に装備された各アクチュエータを駆動し、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。
【００４１】
図２は、図１で説明したＥＣＵ１の自動車（車両）１８への搭載位置を示すものである。ＥＣＵ１は車両１８のエンジン１９がマウントされるエンジンルームに搭載される。また、図２には、本発明のマイクロコンピュータのロジック開発装置２０が示してある。本発明のマイクロコンピュータのロジック開発装置２０は、この図に示すように、車両１８に搭載されたＥＣＵ１に接続するコネクタを外し、このコネクタに接続コード２０Ａによって直接接続して使用することができる。
【００４２】
本発明のマイクロコンピュータのロジック開発装置２０は、上位コンピュータ（ホストコンピュータ）２７に接続されている。ホストコンピュータ２０には表示器２１と、データを入力するためのキーボード２２が備えられている。Ｓ１，Ｓ２はそれぞれロジック装置２０とホストコンピュータ２７を動作させるための電源スイッチである。表示器２１は、マイクロコンピュータのロジック開発装置２０の状態をモニタすることができ、キーボード２２からは、マイクロコンピュータのロジック開発装置２０の設定を変更するための入力を行うことができる。
【００４３】
なお、本発明のマイクロコンピュータのロジック開発装置２０は、このように車両１８に直接接続して使用することができる他に、パーソナルコンピュータ２４の制御によって動作して、車両の色々な運転状況を擬似的に発生することができる車両の運転状況発生装置２３に接続すれば、車両１８が無い状態でも、電子制御式エンジン用の組み込みマイクロコンピュータのロジックを開発することができる。
【００４４】
図３は、図２のように接続して使用することが可能な本発明のマイクロコンピュータのロジック開発装置２０のシステム構成を、従来の電子制御機器（ここでは電子制御式エンジン）用のＥＣＵ１の構成と比較して示すものである。前述のように、ＥＣＵ１には、組込み用マイクロコンピュータ（図には組込み用マイコンと略記）２と、ドライバ１６から構成されるＥＣＵ入出力回路２８があり、ＥＣＵコネクタ２９で車両側の電子機器と接続されている。また、組込み用マイクロコンピュータ２の中には、メモリ９に格納されていてＣＰＵ１０によって読み出されて使用されるソフトウエア（エンジン制御アプリケーション：図にはＥＮＧ制御アプリと略記）２５と、マイクロコンピュータ周辺リソース（図にはマイコン周辺と記載）２６とがあり、内部バス１１で相互にデータの送受信ができるようになっている。
【００４５】
一方、図２で説明したように、このＥＣＵ１に置き換えて使用する本発明のマイクロコンピュータのロジック開発装置２０は、この実施例では、中央ブロックであるマザーボード３０、周辺ブロックであるコアボード４０、及びインタフェース回路ブロックであるＩＦボード５０の３つのボードから構成されている。マザーボード３０とコアボード４０がＥＣＵ１の組込み用マイクロコンピュータ２に対応するものであり、ＩＦボード５０がＥＣＵ１のＥＣＵ入出力回路２８に対応するものである。そして、マザーボード３０とコアボード４０とは、高速のバスインタフェースであるＰＣＩバス３９で接続されている。
【００４６】
マザーボード３０には、後述するメモリに格納されていてＣＰＵによって読み出されて使用されるソフトウエア（ＥＮＧ制御アプリケーション）３１と、ＰＣＩバス３９を通じて通信を行うためのＰＣＩ通信ソフトウエア（図には通信ソフトと略記）３２が設けられている。ＰＣＩバス３９を用いたＰＣＩ通信処理は、疑似マイクロコンピュータ周辺リソース（図には疑似マイコン周辺と略記）４２と送受信するデータを、ＰＣＩバス３９に載せる通信処理である。このマザーボード３０には、次期のＥＣＵを開発するに当たっては、次期ＥＣＵの先行ロジックの開発に耐え得る演算性能、メモリ容量を備えさせることが重要である。
【００４７】
なお、現状のエンジン制御用のマイクロコンピュータの性能は、ＣＰＵが６４ＭＨｚ、メモリが１Ｍバイト程度であるので、パソコン等に用いられている汎用のものを用いれば、十分すぎる性能であるといえ、長期間にわたって何度でも使用することが可能となる。
【００４８】
また、コアボード４０はＣＰＵとメモリを含み、前述のＰＣＩバス３９と通信を行うためのＰＣＩ通信ソフトウエア４１と、組込み用マイクロコンピュータ２のマイクロコンピュータ周辺リソース２６に対応する疑似マイクロコンピュータ周辺（ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）４２とがあり、内部バス４３で相互にデータの送受信ができるようになっている。ここではポートはＦＰＧＡ４２の全ての端子である。
【００４９】
ＩＦボード５０には、ＥＣＵ１のＥＣＵ入出力回路２８に対応するＥＣＵ入出力回路５１と、ＥＣＵコネクタ２９とが設けられている。ＥＣＵ入出力回路５１は、標準回路ブロック単位で独立させ、その組み合わせで構成し、入出力回路の変更に対して柔軟に対応できるようにする。
【００５０】
図４は、図３のマザーボード３０とコアボード４０の、ハードウエアの構成の一実施例を示すものである。マザーボード３０には、図３で説明したソフトウエア（ＥＮＧ制御アプリケーション）を記憶するための記憶容量が大きいメモリ３１、汎用の高性能のＣＰＵ（例えば、動作周波数が８５０ＭＨｚ）３３、内部タイマ３５、ＰＣＩバス３９に接続するＰＣＩバスインタフェース３６、及びこれらを相互に接続する内部バス３７がある。
【００５１】
コアボード４０には、ＰＣＩバス３９に接続するＰＣＩバスインタフェース４４、マザーボード３０に搭載されたＣＰＵ３３よりも低グレードのＣＰＵ４５、マイクロコンピュータ周辺の機能と同等の機能を実現する疑似マイクロコンピュータ周辺（ＦＰＧＡ）４２、内部バス４３、ＰＣＩバスに接続する共有メモリ４６、及び内部バス４３に接続する内部メモリ４７がある。また、コアボード４０に搭載するＣＰＵ４５は、ＰＣＩ通信処理を行うことができる程度の処理能力（例えば、汎用３２ビットＣＰＵで動作周波数が１６ＭＨｚ程度）であれば良い。コアボード４０の機能は、従来のＥＣＵ１におけるエンジン制御アプリケーション（ソフトウエア）２５とマイクロコンピュータ周辺２６とが送受信するデータをＰＣＩバス３９を経由して受け、ＦＰＧＡ４２へ受け渡すことである。
【００５２】
ＩＦボード５０に接続される各ＦＰＧＡ４２はソフトウエアで組むことができ、マイクロコンピュータ周辺の変更に柔軟に対応させることができる。即ち、チャネル数を増やしたい場合や、新しい機能のリソースを追加したい等の場合に対応させることができる。
【００５３】
図５は、本発明のマイクロコンピュータのロジック開発装置２０における、ＥＣＵ１のソフトウエアの構成（一部ハードウエアも記載）を示すものである。ＥＣＵ１には、マイクロコンピュータコア相当の機能を実現するマザーボード３０、マイクロコンピュータリソース相当の機能を実現するコアボード４０、及びＥＣＵ１のハードウエア相当の機能を実現するＩＦボード５０がある。ＥＣＵ１のハードウエアとは、マイクロコンピュータ以外の電気回路のことである。
【００５４】
マザーボード３０及びコアボード４０には、マイクロコンピュータリソースに接続するバス相当の機能を実現するＩ／Ｏドライバ（マザーボード側Ｉ／Ｏドライバ３０Ｄとコアボード側Ｉ／Ｏドライバ４０Ｄ）が実装されており、その間はＰＣＩバス３９で接続されている。ＰＣＩバス３９には１系統の割込み信号ラインＡがあり、この信号ラインＡは、コアボード４０からマザーボード３０への割込み要求を発行することができる。
【００５５】
また、ＰＣＩバス３９は、マザーボード３０、コアボード４０に搭載されたマイクロコンピュータ４０Ｍにあるコア側Ｉ／Ｏドライバ４０Ｄ、及びＦＰＧＡ４２に相互に接続されている。そして、本発明におけるＰＣＩバス３９は、経路Ｂで示すマザーボード３０とＦＰＧＡ４２の間の直接アクセスと、経路Ｃで示すマザーボードとＦＰＧＡ４２の間のコアボード側Ｉ／Ｏドライバ４０Ｄを介したアクセスの、２通りの方法でマザーボード３０とコアボード４０の間のデータの送受信を行うことができる。
【００５６】
このように、本発明では、図５に示すように、ＰＣＩバス３９によって、あたかもマザー側Ｉ／Ｏドライバ３０ＤとＦＰＧＡ４２との直接アクセスが実現できるが、実際にはハードウエアとしてコアボード４０の中にバスコントローラがある。これを図６を用いて説明する。図６に示すように、コアボード４０にあるマイクロコンピュータ４０Ｍには、内部メモリ５８、プログラム５９、及びバスコントローラ６０がある。バスコントローラ６０はＰＣＩバス３９によってマザーボード３０に接続され、コアボード４０の内部バス５６によってＦＰＧＡ４２にあるレジスタ６１に接続されている。また、バスコントローラ６０は、マイクロコンピュータ４０Ｍの内部バス５９によって内部メモリ５８に接続されている。
【００５７】
ハードウエア的にはバスは一重構造である。よって、バスコントローラ６０によって、ＰＣＩバス３９と内部バス５６を経由してマザーボード３０からＦＰＧＡ４２のレジスタ６１にデータが直接送られると、マザーボード３０とレジスタ６１とはハードウエア的につながっているのと同じになる。即ち、内部的な操作としては、バスコントローラ６０を介してデータが送られるが、外部的な操作としては、ＦＰＧＡ４２にマザーボード３０から直接データが書き込まれたり、ＦＰＧＡ４２から直接データがマザーボード３０に読み出されたりするのと同じである。このため、あたかも図５に示される１つのＰＣＩバス３９でマザーボード３０とＦＰＧＡ４２の間にデータの送受信が行われているようになる。
【００５８】
バスコントローラ６０はデータの流れの切り換えを行うことができ、バスコントローラ６０に入力されたデータは、一旦内部バス５７を介して内部メモリ５８に書き込むことができる。よって、経路Ｂは、ＰＣＩバス３９、バスコントローラ６０、内部バス５６を介して、マザーボード３０とＦＰＧＡ４２との間でデータを送受信するものであり、経路Ｃは、ＰＣＩバス３９、バスコントローラ６０、内部バス５６の経路の途中でプログラム５９が働いて、一旦データが内部メモリ５８に書き込まれるものである。このプログラム５９の部分が図５のコア側Ｉ／Ｏドライバ４０Ｄに相当する。
【００５９】
図５に戻って、ＥＣＵ１のハードウエアに相当するＩＦボード５０には、ポート割付変換ボード５２と複数個の標準回路５３、及び機能ボード５５があり、これらの組み合わせにより任意の数の入出力回路を実現できる。また、５４は図３に示したＥＣＵコネクタ２９に相当するものである。ＩＦボード５０とコアボード４０とは、マイクロコンピュータポートに相当するハーネス４９で接続されている。
【００６０】
機能ボード５５は、エンジン制御アプリケーション３１から切り出された機能を実現するために設けられており、標準回路５３との相違は、マイクロコンピュータが内蔵されている点である。通常の標準回路５３はオンオフの機能だけであるが、機能ボード５５にはマイクロコンピュータがあるので通信機能がある。即ち、機能ボード５５は、ＦＰＧＡ４２との間でＤＭＡ通信によってデータを送受信することができ、エンジン制御アプリケーション３１から出力された機能を実現することができる。このような構成を利用したデータの送受信が本発明の特徴である。
【００６１】
なお、電子制御機器が電子制御式エンジンの場合は、マザーボード３０には、エンジン制御アプリケーション３１と、このアプリケーション３１とＦＰＧＡ４２の間のＩ／Ｏ情報の伝達を行うＩ／Ｏドライバ３０Ｄの２つの大きなソフトウエアブロックがある。エンジン制御アプリケーション３１には更に、図示はしないが、演算のみを行うブロックと、Ｉ／Ｏ操作と演算処理が混在するブロックとがある。Ｉ／Ｏ操作と演算処理が混在するブロックは、実ＥＣＵに実装されているソフトウエアが略これに相当する。演算のみを行うブロックは、追加検討ロジックであり、Ｉ／Ｏ操作と完全に切り分けられている。Ｉ／Ｏドライバは、前述のように、マザーボード側Ｉ／Ｏドライバ３０Ｄとコアボード側Ｉ／Ｏドライバ４０Ｄに分かれており、ＰＣＩバス３９経由でボード間の同期をとり、Ｉ／Ｏ情報の伝達を行う。
【００６２】
エンジン制御アプリケーション３１の演算のみを行うブロックは時間同期処理（時間系割り込み処理）のみを行うが、Ｉ／Ｏ操作と演算処理が混在するブロックは時間同期と非時間同期処理（時間系割り込み処理）の２つの処理を行う。時間同期処理は外部状態に依存せず、一定の時間間隔で定期的に行う処理である。一方、非時間同期処理は、外部状態、即ち、エンジンの運転状態に依存して発生する処理である。この非時間同期処理には、例えば、エンジンの回転信号、車速信号、燃料の噴射タイミング信号、点火タイミング信号等による割り込み処理がある。
【００６３】
ここで、このような外部状態によりランダムに変化する事象をイベントと呼ぶこととすると、非時間同期処理は、外部状態によりイベント情報を検出して、そのイベントに同期して行う処理ということができる。
【００６４】
マザーボード３０のエンジン制御アプリケーション３１において、前述のような時間同期処理と非時間同期処理とを行うために、図４で説明したマザーボード３０のＣＰＵ３３は仮想マイクロコンピュータ周辺として機能する。この仮想マイクロコンピュータ周辺には、時間系割り込みと非時間系割り込みを発生させる仮想割り込みコントローラと、仮想Ｉ／Ｏレジスタが設けられている。また、ＰＣＩ通信ソフトウエアとしてのマザーボード側のＩ／Ｏドライバ３０Ｄは、データとして、割り込みイベント情報と、Ｉ／Ｏレジスタデータとを扱う。
【００６５】
一方、コアボード４０側のＦＰＧＡ（疑似マイクロコンピュータ周辺）４２には、図３に示した従来のマイクロコンピュータ周辺２６と同様に、ポート、ラッチ、ＰＷＭ、シリアル、コンペア、及びキャプチャの各機能が設けられている。また、ＰＣＩ通信ソフトウエアとしてのコアボード側Ｉ／Ｏドライバ４０Ｄは、データとして、割り込みイベント情報と、Ｉ／Ｏレジスタデータとを扱う。更に、コアボード４０には、イベントの流れを発生させるタイマが内蔵されている。
【００６６】
ここで、制御対象が車両のエンジンである場合に、前述のイベント情報とデータとが流れる本発明のマイクロコンピュータのロジック開発装置２０が実施する、マザーボード３０とコアボード４０との間のデータの送受信について、図７に示すタイミングチャートと、図８に示すソフトウエアの構成図を用いて全体的な流れを説明し、その後に、図７に示すタイミングチャートにおける各処理の詳細について、具体的な実施例に基づいて個々に説明する。
【００６７】
なお、以下の実施例では、主として、イベントの流れが実線で示され、データの流れが点線で示されている。
（１）マザーボード３０とコアボード４０との間の通信方法
図７はマザーボード３０とコアボード４０との間の割込み要求の発生に伴うデータの流れを示すタイミングチャートである。図７には、マザーボード３０、ＰＣＩバス３９、及びコアボード４０における処理が、時間の経過と共に示してある。なお、コアボード４０は図示のように複数個使用することができるが、コアボード４０を複数個使用する場合の制御については後述し、この実施例では１つのコアボード４０を使用した場合について説明する。また、ここでは、コアボード４０における割込み発生待ちの開始Ｓから、アプリケーション処理完了通知の受信Ｅまでが１つの処理サイクルであり、以後はこの処理サイクルが繰り返されるので、１つの処理サイクルについてのみ説明を行う。
（１−１）割込みタイミング
マザーボード３０のエンジン制御ソフトウエア（アプリケーション処理）は、外部イベント（ＦＰＧＡ４２内のタイマ、エンジン回転信号、車速信号、通信信号等）が起点となって動作する。外部イベントの発生は、ロジック開発装置では、割込みフラグの発生に置き換えることができる。そこで、エンジン制御ソフトウエアの中に外部割込フラグによって起動する割込みルーチンを設けておき、外部割込フラグの入力があると、この割込みルーチンが起動するようになっている。この割込みルーチンは、信号に対して割り込まれてハードウエア的に起動されるので、割込みハンドラと呼ばれる。
【００６８】
マザーボード３０には割込み機構がなく、イベントの伝達方法としてはＰＣＩ割込み１系統（図注のＡで示す信号ライン）しかないため、割込みタイミングはコアボード４０側のマイクロコンピュータで各割込みフラグを監視し、何らかの割込みフラグがアクティブになった場合に、この１系統の割込み信号ラインＡを使用して信号を送り、マザーボード３０に割込みタイミングとして通知するのである。
【００６９】
割込み要因は多数あるが、割込み要因の有無を監視して取り込むのがＦＰＧＡ４２である。割込み要因が１つでも存在すれば、ＦＰＧＡ４２はその値を読み、コアボード４０側のＩ／Ｏドライバ４０Ｄが動作し、割込みタイミングが信号ラインＡを通じてマザーボード３０に通知される。すると、ＦＰＧＡの割込みフラグがＩ／Ｏドライバ３０Ｄに直接読み込まれ、マザーボード３０のアプリケーション処理が開始される。そして、どの割込みフラグが立っているかに応じて、そのフラグに対するアプリケーション処理が順次行われる。割込みタイミングが信号ラインＡを通じてマザーボード３０に通知された後は、コアボード４０側のＩ／Ｏドライバ４０ＤはＰＣＩ割込み禁止状態となる。
（１−２）Ｉ／Ｏデータ
Ｉ／Ｏデータは、基本的にマザーボード３０がＰＣＩバス３９を経由してＦＰＧＡ４２のレジスタを直接読むことによって取得され、逆に、マザーボード３０がＰＣＩバス３９を経由してＦＰＧＡ４２のレジスタに直接書き込むことによって設定される。大量のデータを送受信する場合は、バースト転送が行われ、通信効率が上げられる。ポート、ラッチの速度が要求されないビットデータは、Ｉ／Ｏドライバの前処理、後処理で一括して送受信される。
【００７０】
アプリケーション処理では、コアボード４０のＩ／Ｏドライバ４０Ｄにアクセスして或るポートの中を見る処理、出力をセットする処理等が、アプリケーション処理を実行しながら行われ、図７にいくつかの破線で示すように、直接ＦＰＧＡ４２からデータを読み込んだり、直接ＦＰＧＡ４２にデータを書き込んだりすることが行われる。
【００７１】
アプリケーション処理が終了すると、図５に破線の経路Ｂで示す最後の処理が行われ、割込み処理の終了がコアボード４０側のＦＰＧＡ４２のレジスタに書き込まれる。すると、コアボード４０内に割込み処理が発生し、アプリケーション処理完了通知の受信Ｅが太線で示すようにＩ／Ｏドライバ４０Ｄに伝えられる。この結果、コアボード４０側のＩ／Ｏドライバ４０ＤはＰＣＩ割込み発生許可状態に移行し、割込みの発生待ちの開始Ｓとなり、割込みフラグの常時監視状態となる。ここで、何らかの割込み要因が存在していたら、コアボード４０側のＩ／Ｏドライバ４０Ｄが動作し、割込みタイミングがラインＡを通じてマザーボード３０に通知され、次の割込み処理が行われる。以後はこの繰り返しである。
【００７２】
以上のような本発明におけるマザーボード３０側のアプリケーション処理では、マザーボード３０が直接ＦＰＧＡ４２に対してアクセスしてデータの送受信を行うので、コアボード４０において入力情報を集約して取得後に、出力要求を集約してまとめてマザーボード３０に送る方法に比べて、Ｉ／Ｏドライバに対する指示の遅れが小さく、応答性が良い。
【００７３】
図８は図７のマザーボード３０における入力情報の取得、アプリケーション処理、及び出力要求確定の処理の詳細を示すものである。図７に示したＰＣＩバス３９を通じてＰＣＩ割込みがマザーボード側のＩ／Ｏドライバ３０Ｄに入力されると、Ｉ／Ｏドライバ３０Ｄは先ずＦＰＧＡ４２から割込みフラグを取得してこれを割込みコントローラに入力する。割込みフラグを取得した後は、この割込みフラグのクリアを行ってから入力情報を一括取得する。これは、入力情報を取得してから割込みフラグを取得すると、割込みフラグの取得によって変化する入力情報があるかもしれないからである。よって、本発明では割込みが確定した後にその時の最新情報を読むことで、確実に必要なタイミングの値を読む。即ち、割込みコントローラで割込み要因の確定をしておいてから、割込みハンドラの処理に移る直前で入力情報をＩ／Ｏドライバ前処理として一括取得するのである。一括取得する入力情報は、ポートレベル、キャプチャ値、受信データ、ＡＤ変換値等の入力データを含む。
【００７４】
一括取得するデータは、取得スピードが不要で、１ビットずつに分かれているものであり、このようなデータは、効率良く取得するために一括して取得するのである。データを一括取得した後は、仮想Ｉ／Ｏレジスタ（ＲＡＭ）３８に入力情報を設定しておく。これは、仮想Ｉ／Ｏレジスタ３８を介してマザーボード３０が、あたかも本当のマイクロコンピュータの端子に接続されているような形でデータを送受信するためである。
【００７５】
このようにして、割込みフラグの取得と入力情報の一括取得が行われた後、割込みコントローラは割込みフラグを見てそれに付随するアプリケーション処理を起動する。アプリケーション処理は割込みハンドラから開始される。
【００７６】
アプリケーション処理にはアプリケーション層Ｌ１、２つのハードウエア依存層Ｌ２，Ｌ３、及びマイクロコンピュータ依存層Ｌ４があり、これらの層で必要な演算が実行される。この演算の中でＩ／Ｏ処理があり、入力情報を取るという命令がきた場合は、本発明では直接ＦＰＧＡ４２からデータをとる。マイクロコンピュータ依存層Ｌ４とＦＰＧＡ４２との間に描かれた破線、及びマイクロコンピュータ依存層Ｌ４と仮想レジスタ３８との間に描かれた破線が、図７で説明したアプリケーション処理から出たり入ったりする破線の処理に相当する。取得したデータは仮想Ｉ／Ｏレジスタ３８に一旦蓄積しておく。出力設定があった場合は出力設定を仮想Ｉ／Ｏレジスタ３８に書き込むと同時に、実際に命令を出すようにＦＰＧＡ４２に出力する。
【００７７】
この場合、仮想Ｉ／Ｏレジスタ３８に設定済（ポート入力情報は一括して先頭で取得済である）のものは、仮想Ｉ／Ｏレジスタ３８からデータを読み取るだけである。即ち、色々な場合があり、データをＦＰＧＡ４２から直接読み取る場合と、最初に一括して設定したデータを読み取るだけのものなどがある。また、図８に記載したマイクロコンピュータ依存層Ｌ４と仮想Ｉ／Ｏレジスタ３８あるいはＦＰＧＡ４２とのデータの送受信は一例であり、このようなデータの送受信は何回行っても良い。また、マイクロコンピュータ依存層Ｌ４とＦＰＧＡ４２とのデータの直接アクセスはできるが、あまり頻繁にアクセスを行うとＰＣＩバス３９の負荷が大きくなるので、一括してできる送受信は一括して行い、それ以外の送受信は、直接アクセスして応答性を向上させるという混在処理が行われる。一例として、入力ポート、出力ポート、ラッチポートは一括して処理を行い、それ以外は直接データをＦＰＧＡ４２と送受信している。
【００７８】
このようにして、アプリケーション処理が終了すると、Ｉ／Ｏドライバ３０Ｄの後処理として、出力要求の一括設定と、コアボードへのＰＣＩ割込み許可要求が実行される。出力要求の一括設定では、仮想Ｉ／Ｏレジスタ３８とＦＰＧＡ４２に出力設定が行われ、コアボード４０へのＰＣＩ割込み許可要求では、ＦＰＧＡ４２に対して割込み許可要求が行われる。Ｉ／Ｏドライバ３０Ｄの後処理では、得られたポートレベル、コンペア、ＰＷＭ、送信データ、通信起動データ、ＡＤ起動データ等の出力情報がＰＣＩバス３９を経由してコアボード４０に出力される。この後、Ｉ／Ｏドライバ３０Ｄは次回のＰＣＩ割込みの発生待ちとなる。
（２）マザーボード３０とコアボード４０との間の各処理の詳細
以上、マザーボード３０とコアボード４０との間の割込み要求の発生に伴うデータの流れを全体的に説明したが、ここで、図７に示したマザーボード３０、ＰＣＩバス３９、及びコアボード４０における処理の個々の処理について、更に詳しく説明する。ここで説明するのは、図７に丸付き数字１から５で示す以下の処理の詳細である。（２−１）丸付き数字１で示すパワーオンシーケンス、（２−２）丸付き数字２で示すＰＣＩ割込み信号の処理、（２−３）丸付き数字３で示すＰＣＩアクセス方法、（２−４）丸付き数字４で示す割込みコントローラの動作、及び（２−５）丸付き数字５で示す複数のコアボードの同期処理。
（２−１）パワーオンシーケンス
パワーオンシーケンスとは、図２に示した本発明のエンジン制御システムにおいて、ロジック開発装置２０の電源スイッチＳ１とホストコンピュータ２７の電源スイッチＳ２とがオンされた後に、イグニッションスイッチＩＧＳＷがオンされた場合のシステムへの電源の供給シーケンスである。パワーオンシーケンスを説明するために、図９には、ホストコンピュータ２７、オペレーティングシステムと初期化ルーチンとメインルーチン及びＰＣＩ割込みルーチンを備えたマザーボード３０、ＰＣＩ割込み発行機能を備えたコアボード４０、電源ＩＣ６５とＡＮＤ回路６６及びマイクロコンピュータ６７を備えた機能ボード５５、バッテリ６２、イグニッションスイッチＩＧＳＷ、及び比較器６３，６４が図示されている。
【００７９】
初期化ルーチンは、ホストコンピュータ２７からデータが転送される（ダウンロードされる）毎に１回起動される。また、メインルーチンは、システムの起動中に１ｍｓ毎に定期的に起動される。ＰＣＩ割込みルーチンは、システムの起動中の割込み要求発生毎に起動される。この割込み要求は、ＥＣＵ１のソフトウエアのパワーオン以外の全てのソフトウエアの起動要求である。このルーチンによって、ＥＣＵ１の全てのメイン処理が動作する。
【００８０】
パワーオンシーケンスにおける電源は、実際のエンジン制御システムと同様にバッテリ６２である。このバッテリ６２の出力電圧＋Ｂ（＝１２Ｖ）は２つに分岐され、一方はイグニッションスイッチＩＧＳＷを介して比較器６３の第１の入力端子に接続され、他方はそのままもう１つの比較器６４の第１の入力端子に接続されている。比較器６３の第１の入力端子への電圧は、機能ボード５５の電源ＩＣ６５へも供給される。これら２つの比較器６３，６４の第２の入力端子には、バッテリ６２の出力電圧＋Ｂよりも低い＋５Ｖの固定電圧が入力されている。比較器６３，６４の出力端子は、マザーボード３０の直接入力信号を受けることができるプリンタポート６８に接続されている。
【００８１】
比較器６３は、イグニッションスイッチＩＧＳＷのオンにより出力端子がハイレベルになり、比較器６４の出力端子はバッテリ６２が外されない限り常にハイレベルとなっている。よって、比較器６３，６４の出力が入力されるメインルーチンでは、比較器６３の出力がハイレベルになったことによりイグニッションスイッチＩＧＳＷのオンを検出することができると共に、比較器６４の出力がローレベルになったことによりバッテリ６２の取り外しを検出することができる。
【００８２】
マザーボード３０上のオペレーティングシステムは、エンジン制御において、イグニッションスイッチＩＧＳＷのオンにより動作し、イグニッションスイッチＩＧＳＷのオフによって動作を停止する。実際のマイクロコンピュータでは、信号を受けてマイクロコンピュータのリセットが解除されて動き出すというシーケンスをとるが、ここではイグニッションスイッチＩＧＳＷのオンオフに連動させている。
【００８３】
機能ボード５５にはマイクロコンピュータ６７が搭載されており、イグニッションスイッチＩＧＳＷがオンされても、マイクロコンピュータ６７はこれに同期してオンしないようになっている。機能ボード５５のＡＮＤ回路６６の第１の入力端子には、マザーボード３０からの第１のイニシャル信号ＩＮＴ１が入力され、第２の入力端子には電源ＩＣ６５からの第２のイニシャル信号ＩＮＴ２が入力される。電源ＩＣ６５にはイグニッションスイッチＩＧＳＷがオンの状態で、バッテリ６２からの電圧＋Ｂが入力される。第１のイニシャル信号ＩＮＴ１は、マザーボード３０と処理開始タイミングの同期を取るためのものであり、第２のイニシャル信号はイグニッションスイッチＩＧＳＷのオンの後の、後述するパワーオンリセット時間を確保するためのものである。
【００８４】
なお、実際のマイクロコンピュータ６７にはバッテリ６２の電源が常に供給されているバックアップＲＡＭ（Ｂ−ＲＡＭ）７０があってイグニッションスイッチＩＧＳＷがオフされてもデータを記憶している。本発明の構成には実際にはバックアップＲＡＭ７０は設けられないこともあるが、その機能は実現している。また、バッテリが外されてもデータを覚えているＥＥＰＲＯＭと同等のことを実現する方法がパワーオンシーケンスには盛り込まれている。
【００８５】
ここで、このパワーオンシーケンスの動作を、図１０に示す処理手順を用いて説明する。図１０には、図９のように構成されたマザーボード３０、コアボード４０、及び機能ボード５５の各処理におけるステップが記載されている。
【００８６】
ステップ１は、図２のように構成されたシステムにおいて作業者がロジック開発装置２０とホストコンピュータ２７の電源をオンした状態である。この作業者のシステム電源のオンにより、マザーボードとコアボードの電源がオンするが、機能ボードの電源はオフのままである。この状態は、ロジック開発装置２０とホストコンピュータ２７の本体の電源投入のことであり、イグニッションスイッチＩＧＳＷのオンではない。
【００８７】
ステップ２では、処理１の電源のオンにより、１ｍｓ毎に電源のオンを検出している図９のメインルーチンが起動し、ホストコンピュータ２７からアプリケーションのソフトウエアがマザーボード３０にダウンロードされ、ロジック開発装置２０のマザーボード３０が起動する。このとき、コアボード４０も起動するが、コアボード４０のＰＣＩ割込みはロック状態である。
【００８８】
ステップ３では、図９のマザーボード３０の初期化ルーチンにより、ポートの初期値が設定される。この処理設定は１回きりであり、その内容は、（１）コンペアをイミディエート出力によって設定する、（２）ＰＷＭを０％出力に設定する、（３）第１のイニシャル信号ＩＮＴ１をローレベルに設定する、（４）メインルーチンにステート１を設定する、である。
【００８９】
ステップ４ではステート１の最初の処理（１）が行われる。ステート１の処理（１）では、イグニッションスイッチＩＧＳＷがオンされるのを待つ。
【００９０】
そして、ステップ５において作業者が疑似車両のイグニッションスイッチＩＧＳＷをオンすると、ステート１の処理（２）でイグニッションスイッチＩＧＳＷのオンが検出され、機能ボード５５の電源がオンする。この状態は、図９におけるイグニッションスイッチＩＧＳＷがオンされた状態で、バッテリ６２から電圧＋Ｂが比較器６３に印加され、比較器６３からのハイレベルの出力で、イグニッションスイッチＩＧＳＷのオンがマザーボード３０によって検出された状態である。
【００９１】
イグニッションスイッチＩＧＳＷがオンされると、機能ボード５５の電源ＩＣ６５に＋Ｂが供給される。この後のステート１の処理（３）では、ステート２が設定される。なお、電源ＩＣ６５には、電源＋Ｂが供給されてもすぐには第２のイニシャル信号ＩＮＴ２をハイレベルにしない予め定められたパワーオンリセット時間が設定されている。従って、電源ＩＣ６５に電源＋Ｂが供給されても、第２のイニシャル信号ＩＮＴ２はローレベルのままである。
【００９２】
ステップ６のステート２の処理（１）では、メモリの復元、即ち、保存してあるファイル（ホストコンピュータ内のメモリ、あるいはマザーボード周辺メモリ）を復元すること（読み出し）が行われる。すなわち、前回のイグニッションスイッチＩＧＳＷがオフされた時に保存したファイルが読み出される。なお、この時、バッテリ外れがあった場合は、データは初期化される。続くステート２の処理（２）では、ＥＥＰＲＯＭのデータ（制御ソフトウエアで演算された学習値データで、車両の走行をくり返す度に最適値に補正されるデータ）が読み出されて復元される。そして、ステート２の処理（３）ではステート３が設定される。ステップ６では機能ボードの電源ＩＣはパワーオンリセット時間内であり、第２のイニシャル信号ＩＮＴ２はローレベルのままである。
【００９３】
ステップ７のステート３の処理では、処理（１）で機能ボードの電源ＩＣはパワーオンリセット時間の経過待ちを行い、ステップ８のステート３の処理（２）で機能ボードの電源ＩＣはパワーオンリセット時間の経過を検出する。パワーオンリセット時間が経過すると、機能ボード５５の電源ＩＣ６５から出力される第２のイニシャル信号ＩＮＴ２がハイレベルに変化する。
【００９４】
ステップ９のステート３の処理（３）では、マザーボード３０からコアボード４０を通じて機能ボード５５に出力される第１のイニシャル信号ＩＮＴ１がハイレベルに設定される。すると、機能ボード５５のＡＮＤ回路６６の２つの入力端子への入力が共にハイレベルになるので、ＡＮＤ回路６６の出力がハイレベルになり、機能ボード５５のマイクロコンピュータ６７のリセットが解除されてオンし、プログラムがスタートする。
【００９５】
このように、機能ボード５５はイグニッションスイッチＩＧＳＷのオンの後にすぐに立ち上げるのではなく、ある程度の時間を置いて立ち上げる。即ち、マザーボード３０は、イグニッションスイッチＩＧＳＷのオンからの経過時間がパワーオンリセット時間になった後に、第１のイニシャル信号ＩＮＴ１をハイレベルにして機能ボード５５を動作させるようにし、機能ボード５５とマザーボード３０との同期を取る。この後の処理（４）では通信以外の機能ボード５５の初期化処理が行われ、処理（５）でステート４が設定される。
【００９６】
ステップ１０のステート４の処理では、処理（１）で機能ボード５５の初期化処理が行われ、この機能ボード５５の初期化処理の間、マザーボード３０は待機している。ステート４では、機能ボード５５がマイクロコンピュータ６７の動作によって複雑な処理を行うので、機能ボード５５のマイクロコンピュータ６７のリセットを解除して動作し始めると、この中で色々な初期設定が必要となるので、この時間を考慮してマザーボード３０は待機している。
【００９７】
機能ボード５５の複雑な処理（インテリジェントな処理）とは、例えば、出力処理（フィードバック処理）、スロットル弁開度の制御（開度指令値に対して電流フィードバックを行って、指令値になるようにスロットル弁開度を調整する制御）等である。即ち、機能ボードはアプリケーションからの要求値に対してハード的に調整する機能を有している。このための機能ボード５５の初期化がステート４の処理（１）で行われる。ステップ１１の処理（２）では、機能ボード５５の内部の処理の完了を、機能ボード５５の初期化時間の経過を見ることによって行う。
【００９８】
機能ボード５５の初期化処理時間が経過すると、処理（３）で機能ボード５５とマザーボード３０との初期化通信が起動され、ＤＭＡ通信が開始される。即ち、機能ボード５５は、リセットを解除してプログラムをスタートして初期化処理を開始し、初期化処理が終了すると通常の処理モードに移るので、それを待ってＤＭＡ通信が開始される。機能ボード５５はメイン処理を受信する。ここではテスト用のＤＭＡ通信を行う。通常の処理モードのループに入るとデータの頻繁な送受信が行われるが、処理に入る前に正しく通信できるかどうかのチェック用の通信を行う。処理（５）ではステート５を設定する。
【００９９】
図１１に移って、ステップ１２のステート５の処理では、マザーボード３０と機能ボード５５との初期化通信処理完了待ちを行う。機能ボード５５側では受信処理を行い、受信が終了すると送信データを作成し、次のステップ１３でこれを送信する。この機能ボード５５からの送信データの受信により、マザーボード３０は機能ボード５５の初期化完了を検知し、これが終わるとステート６に移る。なお、機能ボード５５側の受信処理が完了しないうちにタイムアウトした場合は、ステート４に戻る。
【０１００】
ステップ１４ではステート６の処理を行う。ステート６では、まず、処理（１）で機能ボード５５の初期化完了を検知すると、ステップ１５の処理（２）でコアボード４０のロック解除の要求を行う。コアボード４０のロック解除の要求を行った後、コアボード４０において割込み要因が発生していたら受け取る。それまでは受け付けない。コアボード４０としては、最初の電源オンではＰＣＩ割込みはロック状態なので、ロックが解除されたら割込みフラグを一旦クリアして通信を発生させる。この後の処理（３）でステート７が設定される。
【０１０１】
以上のステップ１からステップ１５までが、パワーオンシーケンスの処理である。ステップ１６からステップ２０までの処理は、パワーオフシーケンスの処理を示すものである。パワーオフシーケンスにはステート７とステート８を行うステップ１６からステップ２０がある。ステップ１６からステップ１８においてはマザーボード３０とコアボード４０との間でＰＣＩ割込み処理が繰り返し行われる。そしてこの割込み処理平行して、ステート７では処理（１）でイグニッションスイッチＩＧＳＷのオフの待機状態となる。
【０１０２】
ステップ１７のステート７の処理（２）でイグニッションスイッチＩＧＳＷのオフが検出されると、機能ボード５５の電源がオフされ、処理（３）でステート８が設定される。
【０１０３】
ステップ１８のステート８の処理（１）ではコアボード４０のロックが要求され、コアボード４０のＰＣＩ割込みロックが行われる。続くステップ１９のステート８の処理（２）では、マザーボード３０のメモリ、ＥＥＰＲＯＭのデータを保存し、コアボード側でＰＣＩ割込みが禁止される。
【０１０４】
最後のステップ２０におけるステート８の処理（３）ではポートの初期値設定が行われる。この初期設定はステップ３の初期設定と同じであり、処理完了後、ステート１が設定されて前述のステップ３からステップ１９が繰り返される。
（２−２）ＰＣＩ割込み信号の処理
図１２はＰＣＩ割込み信号（図７の信号ラインＡの信号）の処理の詳細を示すものである。ＰＣＩ割込み信号はイベントが何もない時にはハイレベルの信号となっている。この時、コアボード４０のマイクロコンピュータは割込み発生待ち状態を継続している。そして、何かイベントが発生すると、コアボード４０のマイクロコンピュータがＰＣＩ割込みアクティブ出力を信号ラインＡに出力し、信号ラインＡのＰＣＩ割込み信号がローレベル（アクティブ）となる。この後、コアボード４０のマイクロコンピュータは、ＰＣＩ割込み禁止区間を設定する。また、前述のＰＣＩ割込みラインＡのローアクティブ信号は、ＦＰＧＡ４２のＰＣＩ割込み信号レジスタにオン出力として記録される。
【０１０５】
ローレベルのＰＣＩ割込み信号は信号ラインＡによってマザーボード３０に伝えられ、マザーボード３０ではこのローレベルのＰＣＩ割込み信号を受けて、ＰＣＩ割込みの受付が行われる。マザーボード３０では、ＰＣＩの割込みを受け付けたら、ＰＣＩ割込み処理が行われ、最初の処理でＰＣＩ割込みノンアクティブ出力がコアボード４０側にＰＣＩバス経由で返され、ＰＣＩ割込み信号がハイレベルに戻される、即ち、割込み信号がクリアされる。これは、ＰＣＩ割込み信号を長期間にわたってローレベルにしておくと、マザーボード３０側のＰＣＩ割込み処理が早く終わってしまった場合に、同じイベントによるＰＣＩ割込み信号が二重受け付けされる可能性があるからである。また逆に、ＰＣＩ割込み信号がローレベルである期間が余りにも短いと、割込みが受け付けられないことになるからである。
【０１０６】
この後のＰＣＩ割込み処理では、Ｉ／Ｏドライバ３０Ｄによるアプリケーション処理が行われ、マザーボード３０のＰＣＩ割込み処理が完了した時点で、マザーボード３０は、ＰＣＩ割込みラインＡの状態がハイレベル（ノンアクティブ）になっていることを確認するフェールセーフ処理を行う。これは、ＰＣＩ割込みラインＡがローレベル（アクティブ）のままＰＣＩ割込み処理を終了すると、再度割込みが発生してしまうからである。そして、マザーボード３０のＰＣＩ割込み処理が完了した時点で、ＰＣＩ割込みラインがノンアクティブの場合はＰＣＩ割込み処理を終了し、ＰＣＩ割込みラインがアクティブの場合はＰＣＩ割込み信号を再度クリアしてからＰＣＩ割込み処理を終了する。
（２−３）ＰＣＩアクセス方法
図１３はＰＣＩアクセス方法を説明するものである。ＰＣＩアクセスでは基本的にマザーボード３０からＰＣＩバス３９を経由してコアボード４０のＦＰＧＡ４２のレジスタに直接アクセスしてデータの読み出し又は書き込みを行い、データを取得したり設定したりする。一方、マザーボード３０とコアボード４０との間で大量のデータをＰＣＩバス３９を経由して送受信する場合は、バースト転送が使用され、パケットでデータ転送が行われて通信効率を上げることが行われる。ＤＭＡ通信、ＡＤ変換結果、等はこの方式で行う。
【０１０７】
この場合、図５で説明した経路Ｃのように、一旦コアボード４０側にデータが取り込まれ、コアボード４０側のＩ／Ｏドライバ４０Ｄを経由してデータの送受信が行われる。即ち、ＦＰＧＡ４２からはデータのまとまりをマイクロコンピュータ４０Ｍに送り、マイクロコンピュータ４０Ｍ側では取り込んだ大量のデータをバースト転送でマザーボード３０に送る。
【０１０８】
ところで、バースト転送を使用する場合、通信相手がバースト転送対応となっている必要がある。しかしながら、ＦＰＧＡ４２はバーストモードに対応が出来ていないため、バースト転送でＦＰＧＡ４２を直接アクセスすることはできない。そこで、図１３に示すように、バースト転送Ｃ１でマザーボード３０側からコアボード４０のマイクロコンピュータ４０Ｍに対して大量のデータが送られ、コアボード４０のマイクロコンピュータ４０ＭからＦＰＧＡ４２には非バースト転送Ｃ２で少量ずつデータの設定が行われるのである。また逆に、コアボード４０からデータがマザーボード３０に送られる場合は、ＦＰＧＡ４２からのデータを非バースト転送Ｃ２でコアボード４０のマイクロコンピュータ４０Ｍが少量ずつ取り込み、取り込みが完了すると受信割込みフラグがオンとなり、信号ラインＡを通じてマザーボード３０に割込みタイミングが通知される。この後、所定のタイミングでコアボード４０のマイクロコンピュータ４０Ｍからバースト転送Ｃ１で大量のデータがマザーボード３０に送られる。
（２−４）割込みコントローラの動作
図１４はＰＣＩ割込み処理を実行する割込みコントローラの動作を示すフローチャートである。ステップ１４０１ではマザーボード３０のＩ／Ｏドライバ３０ＤによるＰＣＩ割込み信号の処理が行われる。そして、続くステップ１４０２では割込みコントローラによって割込みフラグが取得される。この後、割込みコントローラによって取得された割込みフラグの値がステップ１４０３で内部ＲＡＭに記憶され、続くステップ１４０４では取得できた割込みフラグのみがクリアされる。
【０１０９】
なお、割込みフラグの操作中に発生した割込みフラグは、これが取得できた場合は割込み処理を行い、割込みフラグがクリアされる。また、取得出来なかった場合は割込み処理は行われず、割込みフラグはクリアされない。即ち、発生した割込みフラグに対しては、１回のみの付随する割込み処理が実行される。この処理により、割込みフラグの取りこぼしを防止することができる。
【０１１０】
ここで、割込みフラグの操作とは、マザーボード３０で割込みフラグをＦＰＧＡ４２より取得する、値が１の割込みフラグをマザーボード３０で受け付ける、割込みフラグを取得したデータをそのまま使用してクリア要求としてＦＰＧＡ４２に書き込む、及び、マザーボード３０で受け付けた割込みフラグ（値１の割込みフラグ）のみクリアする、の操作のことを言う。
【０１１１】
図１５にＦＧＰＡのレジスタ構成（キャプチャの場合）を示す。（ａ）はデータの読み書き用の割込みフラグレジスタの構成を示しており、読み出し（Ｒｅａｄ）の場合は、１が割込み要因が有る場合を示し、０が割込み要因が無い場合を示している。割込み要因があるレジスタの内容が読み込まれる。また、書き込み（Ｗｒｉｔｅ）の場合は、１の書き込みでデータがクリアされ、０の書き込みでデータが保存されるものとする。このように、この実施例では、割込みフラグが一括して取得され、１つのレジスタにまとめて記憶されるので、効率的にアクセスが行われる。
【０１１２】
また、（ｂ）はキャプチャ値のレジスタの構成を示すものである。キャプチャ値のレジスタには割込みの内容が記録される。この実施例では割込みフラグの取得単位は３２ビットであり、（ｂ）に示すキャプチャ値のレジスタには３２ビット幅のレジスタが使用されている。また、キャプチャの中にはフリーランタイマがあり、割込み（有効値）が入った時刻が記録され、時刻が記録されたと同時に１が入る。フリーランタイマは循環式である。このように、この実施例では、レジスタ構成が、フラグ（０，１）とその内容を表すものに分かれている。フラグは０，１のビット信号である。そして、値１のフラグが立っていたもののみをクリアすることにより、微妙なタイミングで入ってきたフラグの取りこぼしを無くす。
【０１１３】
次のステップ１４０５では割込みフラグが無くなったか否かが判定され、割込みフラグが全て無くなった場合はステップ１４１０に進んで出力要求がポートに一括設定され、ステップ１４１１においてＩ／ＯドライバによりＰＣＩ割込み信号の処理が行われてこのルーチンを終了する。
【０１１４】
一方、ステップ１４０５で割込みフラグが無くなっていないことが判定された場合はステップ１４０６に進み、入力情報の一括取得（ポート、ラッチ）が実行される。そして、ステップ１４０７で内部ＲＡＭに記憶された割込みフラグに従って、割込みハンドラが起動され、複数のフラグがあった場合は、ステップ１４０８において優先度の高い割込み処理が１つだけ実行される。例えば、図１５（ｂ）に示した割込みフラグレジスタでは、ＣＨ０とＣＨ３に割込み要因があるが、この場合は、どちらかの優先度の高い方の割込みが先に実行される。この後、ステップ１４０９では処理が完了した割込みフラグをクリアし、ステップ１４０２に戻る。
【０１１５】
ステップ１４０２では割込みコントローラにより割込みフラグが再度読み込まれる。この処理は、割込みフラグの処理中に、別の高い優先度の割込みフラグが発生したかどうかを見るものである。これは、最初に読み込んだ複数の割込みフラグの更新を行わずに、複数処理を全部実行し終わってから新たな割込みフラグを読み込むような処理を実行すれば、優先度の高い割込みフラグの反映が遅くなるからである。この結果、サンプリング期間が短くなり、割込みフラグのオンから処理開始までの時間が短縮される。
【０１１６】
この後は、割込みフラグが残っている限りステップ１４０２からステップ１４０９の処理が繰り返され、割込みフラグが全て無くなった時点でステップ１４０５からステップ１４１０に進み、ステップ１４１０とステップ１４１１の処理が済むとこのルーチンが終了する。
【０１１７】
図１６は、サンプリング周期中に何らかの割込みイベントが発生した場合の、本発明の処理を説明するものである。ここで、「割」は割込み信号、「待」は待機状態、「処」は処理を示している。この図に示すように、最初のアプリケーション処理実行中に割込みイベントａ，ｂが入った場合は、次のサンプリング周期の中でこの割込みイベントａ，ｂの実行が行われ、この割込みイベントａ，ｂの実行中に入った割込みイベントｃは、次のサンプリング周期で実行される。同様に、次のサンプリング周期の中でこの割込みイベントｃの実行が行われ、この割込みイベントｃの実行中に入った割込みイベントｄ，ｅ，ｆは、次の周期で実行される。
【０１１８】
なお、割込みフラグはあるタイミングでまとめて見ているので、１個の場合も見るが、複数の場合はまとめて取得した後に見る。
【０１１９】
図１７は、割込みイベントが途切れた場合の本発明の処理を説明するものである。図１６同様に、「割」は割込み信号、「待」は待機状態、「処」は処理を示している。この図に示すように、最初のアプリケーション処理実行中に割込みイベントａ，ｂが入った場合は、次のサンプリング周期の中でこの割込みイベントａ，ｂの実行が行われる。この後、割込みイベントの発生がしばらく無かった場合は、コアボードは割込みイベント発生待ちになり、割込みイベントｃの発生により、コアボードとマザーボードの通信が再開され、割込みイベントｃが入ったら、次のサンプリング周期の中でこの割込みイベントｃの実行が行われ、この割込みイベントｃが実行される。
（２−５）複数のコアボードの同期処理
コアボード４０は、ＦＰＧＡに容量の制限があるので、複数になるケースがあり、その時はマザーボード３０が複数のＦＰＧＡに対して同期処理を行う。ここでは、コアボード４０が２つある場合の同期処理について、図１８を用いて説明する。図１８では、１枚目のコアボード４０がマスタ・タイマ系のコアボードであり、２枚目のコアボード４０がスレーブである。
【０１２０】
マスタ・タイマ系のコアボード４０にはキャプチャ、コンペア、ＰＷＭ等のいろいろな割込み機能があり、スレーブのコアボード４０には、ＵＡＲＴ／ＤＭＡ、ＵＡＲＴ、ＰＷＭ、ＡＤ等の通信系の割込み機能がある。マスタ・タイマ系のコアボード４０には、フリーランタイマ６９があり、このタイマ６９の基準で動作するコンペア、キャプチャ機能は、フリーランタイマ６９と同期をとる必要がある。このタイマ同期を容易にするために、タイマ系リソース（フリーランタイマ６９、コンペア、キャプチャ）を１つのコアボード４０にまとめて配置し、フリーランタイマ６９に依存しないリソース（通信、ＰＷＭ、ＡＤ，ポート）はスレーブのコアボード４０に配置している。
【０１２１】
この実施例では、処理が実行される順番が括弧付き数字で示されている。
（１）では、割込みフラグの集約が行われる。ＯＲは割込みフラグのどれかが立っていた（オンになっていた）場合を示す。割込みフラグが立っていた場合は、ＰＣＩ割込みを発生させる。即ち、マスタ・タイマ系のコアボード４０のキャプチャ、コンペア、ＰＷＭ、或いはスレーブのコアボード４０の何れかに割込みフラグが立っていた場合に、ＰＣＩ割込みを発生させる。スレーブのコアボードには、ＵＡＲＴ／ＤＭＡ、ＵＡＲＴ、ＰＷＭ、又はＡＤがあり、スレーブの割込みフラグがどれか立っている場合は、それを集約してこれがマスタ・タイマ系のコアボードの拡張割込みフラグ内にセットされる。拡張割込みフラグ内には割込みフラグがスレーブ側にあるか否かを示す集約した結果フラグが１つだけ入る。
（２）ではＰＣＩ割込み信号が出てマザーボード３０に入力される。このＰＣＩ割込み信号により、同時にＰＣＩ割込み禁止状態となる。
（３）ではマザーボード３０においてＰＣＩの割込み処理が行われる。マザーボード３０はＰＣＩ割込みを２回重複してかけることはできないので、マザーボード３０の処理完了するまでは、コアボード４０はＰＣＩ割込み禁止状態になる。
（４）マザーボード３０におけるＰＣＩ割込み処理が完了すると、ＰＣＩ割込み完了信号がマザーボード３０からコアボード４０に出力され、ＰＣＩ割込み禁止状態が解除される。
（５）ＰＣＩ割込み禁止状態の解除により、（１）の処理が再開される。
【０１２２】
以上のような手順で複数のＦＰＧＡに対する同期処理が行われる。
【０１２３】
【発明の効果】
以上説明したように、本発明のマイクロコンピュータのロジック開発装置によれば、ロジックの開発に伴う課題が解消され、マザーボードとコアボード間におけるＩ／Ｏ情報の確実な通信を実現できると共に、Ｉ／Ｏ情報通信のスピードを向上させること、及び、マザーボードとコアボードの演算処理能力の向上を図ることができて、より高性能のエンジン制御システムに対応することが可能なマイクロコンピュータのロジック開発装置を提供することができるという効果がある。また、本発明のマイクロコンピュータのロジック開発装置は、マイクロコンピュータの開発に当たって繰り返し利用することが可能であるので、開発コストを低減することができるという効果もある。
【図面の簡単な説明】
【図１】本発明の背景となる電子制御式エンジンの制御システムにおけるＥＣＵの構成を示すシステム構成図である。
【図２】図１のＥＣＵのロジックを開発する場合における本発明のマイクロコンピュータのロジック開発装置の全体構成を示す説明図である。
【図３】本発明のマイクロコンピュータのロジック開発装置のシステム構成を従来の電子機器制御用のＥＣＵの構成と比較して示すブロック構成図である。
【図４】図３のマザーボードとコアボードの内部構成の一実施例を示すブロック構成図である。
【図５】本発明のマイクロコンピュータのロジック開発装置における、マザーボードとコアボードのソフトウエア構成、及びＩＦボードのハードウエア構成を示す構成図である。
【図６】図５のＰＣＩバスとコアボード内のマイクロコンピュータの実際の構成を説明するブロック構成図である。
【図７】マザーボードとコアボードとの間のＰＣＩバスを通じた割込み信号の通知とそれに伴うデータの送受信を、時間の経過と共に示すタイミングチャートである。
【図８】図７に示したマザーボードにおける入力情報の取得、アプリケーション処理、及び出力要求の確定の詳細を示すソフトウエア構成図である。
【図９】図７に丸付き数字１で示すパワーオンシーケンスを実行するための、マザーボード、コアボード、及び機能ボードの構成、及びその周辺回路の構成を示す説明図である。
【図１０】図９のように構成されたマザーボード、コアボード、及び機能ボードを含む回路の、パワーオンシーケンスにおける処理ステップを記載した図である。
【図１１】図１０の処理ステップの続きのステップ、及びパワーオフシーケンスの処理ステップを記載した図である。
【図１２】図７の割込み信号ラインＡによってもたらされるＰＣＩ割込み信号によって発生するＰＣＩ割込み処理の詳細を示すタイミングチャートである。
【図１３】マザーボードからＰＣＩバスを経由してコアボードのＦＰＧＡのレジスタに直接アクセスしてデータの読み出し又は書き込みを行う、本発明におけるＰＣＩアクセス方法の実施例を説明するタイミングチャートである。
【図１４】ＰＣＩ割込み処理を実行する割込みコントローラの動作を示すフローチャートである。
【図１５】キャプチャの場合のＦＰＧＡのレジスタ構成を示すものであり、（ａ）は割込みフラグレジスタの構成を示す図、（ｂ）はキャプチャ値のレジスタの構成を示す図である。
【図１６】サンプリング周期中に何らかの割込みイベントが発生した場合の、本発明の処理を説明するタイミングチャートである。
【図１７】割込みイベントが途切れた場合の、本発明の処理を説明するタイミングチャートである。
【図１８】コアボードが複数枚ある場合の、マザーボードの複数のコアボードに対して行う同期処理を説明する図である。
【符号の説明】
１…ＥＣＵ
２…組込み用マイクロコンピュータ
７…内部タイマ
８…割り込みコントローラ
９…メモリ
１０…ＣＰＵ
１１…内部バス
２０…本発明のロジック開発装置
２７…ホストコンピュータ
３０…マザーボード
３０Ｄ…Ｉ／Ｏドライバ
３１…ソフトウエアエア（エンジン制御アプリケーション）
３２…ＰＣＩ通信ソフトウエア
３３…ＣＰＵ
３４…仮想割り込みコントローラ
３５…内部タイマ
３６…ＰＣＩバスインタフェース
３７…内部バス
３８…仮想Ｉ／Ｏレジスタ
３９…ＰＣＵバス
４０…コアボード
４０Ｄ…Ｉ／Ｏドライバ
４１…ＰＣＩ通信ソフトウエア
４２…疑似マイクロコンピュータ装置（ＦＰＧＡ）
４３…内部バス
４４…ＰＣＩバスインタフェース
４５…ＣＰＵ
５０…ＩＦボード
５５…機能ボード
５６…内部バス
６３，６４…比較器
６５…電源ＩＣ
６７…マイクロコンピュータ
６９…フリーランタイマ
【図１】
2004234530.tif 000003
【図２】
2004234530.tif 000004
【図３】
2004234530.tif 000005
【図４】
2004234530.tif 000006
【図５】
2004234530.tif 000007
【図６】
2004234530.tif 000008
【図７】
2004234530.tif 000009
【図８】
2004234530.tif 000010
【図９】
2004234530.tif 000011
【図１０】
2004234530.tif 000012
【図１１】
2004234530.tif 000013
【図１２】
2004234530.tif 000014
【図１３】
2004234530.tif 000015
【図１４】
2004234530.tif 000016
【図１５】
2004234530.tif 000017
【図１６】
2004234530.tif 000018
【図１７】
2004234530.tif 000019
【図１８】
2004234530.tif 000020