(57)【要約】【課題】先行ロジックに必要なＣＰＵ機能を確保でき、ＩＯ情報の確実な通信とＣＰＵの演算処理能力の向上を図るロジック開発装置を提供する。【解決手段】高速演算機能、メモリ、及び通信機能を備えたマザーボード３０と、マイコンの周辺装置を擬似的にソフトウエアで実現する疑似マイコン周辺装置、演算機能、及び通信機能を備え、マザーボード３０とＰＣＩバス３９で接続されるコアボード４０と、コアボード４０に接続するＩＦボードから構成され、電子制御ユニットの組込み用マイコンのロジックを開発する装置であって、マザーボード３０で実施される演算処理とメモリとの入出力操作とが混在するアプリケーション処理において、処理単位の区切りの前後で入出力操作における入出力情報のみを集約し、一括してＰＣＩバス３９によってコアボード４０との通信処理を行うようにしたものである。【選択図】　　　図６
2004013626.tif 000002
【特許請求の範囲】
【請求項１】
高速演算機能、メモリ、及び通信機能を備えた中央ブロックと、マイコンの周辺装置を擬似的にソフトウエアで実現する疑似マイコン周辺装置、演算機能、及び通信機能を備え、前記中央ブロックとＰＣＩバスで接続される周辺ブロックと、電子制御ユニットのハードウエアに相当する回路を備え、前記周辺ブロックに接続するインタフェース回路ブロックとから構成され、電子制御ユニットに組み込まれて使用される組込み用マイコンのロジックを開発する装置であって、
前記中央ブロックで実施される、演算処理と前記メモリとの入出力操作とが混在するアプリケーション処理において、処理単位の区切りの前後で前記入出力操作における入出力情報のみを集約し、一括して前記ＰＣＩバスによって前記周辺ブロックとの通信処理を行うようにしたことを特徴とするマイコンのロジック開発装置。
【請求項２】
前記中央ブロックに、演算処理と前記メモリとの入出力操作とが混在するアプリケーション処理を行う第１のブロックと、演算処理のみのアプリケーション処理を行う第２のブロックとを設けたことを特徴とする請求項１に記載のマイコン用ロジック開発装置。
【請求項３】
前記中央ブロックは、前記第１のブロックの前記アプリケーション処理を、前記第２のブロックのアプリケーション処理よりも先に、優先的に行うようにしたことを特徴とする請求項２に記載のマイコンのロジック開発装置。
【請求項４】
前記中央ブロックは、前記第１のブロックのアプリケーション処理における前記入出力操作の情報を、前記周辺ブロックと同期をとりながら遣り取りするようにしたことを特徴とする請求項２または３に記載のマイコンのロジック開発装置。
【請求項５】
前記第１のブロックにおける処理を、外部状態に依存せず且つ処理中に前記入出力操作が含まれる時間同期処理と、外部状態によりイベント情報を検出してそのイベントに同期した処理を行う非時間系同期処理の２つに分けたことを特徴とする請求項２から４の何れか１項に記載のマイコンのロジック開発装置。
【請求項６】
前記イベント情報を、前記周辺ブロックから前記中央ブロックに入力される割込み信号の中の割込みフラグ情報に含ませ、前記第１のブロックは、この割込み信号をトリガとして前記入出力操作と演算処理を起動する際に、前記割込みフラグ情報に従って各割込み処理を行うようにしたことを特徴とする請求項５に記載のマイコンのロジック開発装置。
【請求項７】
前記第２のブロックは、前記周辺ブロックの動作とは無関係に定期時間間隔で演算処理を行うようにしたことを特徴とする請求項２から６の何れか１項に記載のマイコンのロジック開発装置。
【請求項８】
前記中央ブロックは、前記周辺ブロックにおける入出力操作処理の実行中の、入出力処理完了待ち状態の間に、前記第２のブロックのアプリケーション処理を実行するようにしたことを特徴とする請求項３に記載のマイコンのロジック開発装置。
【請求項９】
前記第１のブロックは、前記周辺ブロックからの割込み信号によって起動され、前記第２のブロックは前記中央ブロックの内部システムによって起動されるようにしたことを特徴とする請求項２に記載のマイコンのロジック開発装置。
【請求項１０】
前記中央ブロックは、前記第２のブロックのアプリケーション処理における或る処理の完了時に、前回の前記第１のブロックの前記アプリケーション処理の終了からの処理時間を計数し、この処理時間が所定時間を越えていた場合には、前記或る処理の結果のデータの受け渡し処理を禁止するようにしたことを特徴とする請求項２に記載のマイコンのロジック開発装置。
【請求項１１】
前記周辺ブロックに、前記中央ブロックへの入力情報を格納すると共に、前記中央ブロックからの出力情報を格納するＰＣＩメモリを設け、このＰＣＩメモリの前記入力情報の格納領域と前記出力情報の格納領域を分けたことを特徴とする請求項１から１０の何れか１項に記載のマイコンのロジック開発装置。
【請求項１２】
前記周辺ブロックは、前記ＰＣＩメモリに前記中央ブロックからの出力情報が完全に書き込まれた後に、前記ＰＣＩメモリから情報の読み出しを行うようにしたことを特徴とする請求項１１に記載のマイコンのロジック開発装置。
【請求項１３】
前記中央ブロック及び前記周辺ブロックは、前記ＰＣＩバスを用いた通信の際に、データの値の変化したもののみを抽出して送信を行うようにしたことを特徴とする請求項１から１３の何れか１項に記載のマイコンのロジック開発装置。
【請求項１４】
前記中央ブロックと前記周辺ブロックとの間に、前記ＰＣＩバスに加えて、前記周辺ブロックから前記中央ブロックに割込み信号を送出する割込み信号ラインと、前記中央ブロックから前記周辺ブロックに同期信号を送出する同期信号ラインとを設けたことを特徴とする請求項５又は６に記載のマイコンのロジック開発装置。
【請求項１５】
前記周辺ブロックは、前記割込み信号ラインを通じて前記割込みフラグ情報を送信し、この割込みフラグ情報には前記周辺ブロックで生成した時間同期タイミング信号を加え、同一サンプリングタイミングで複数の前記フラグが検出された場合には、各フラグの優先度に応じて、前記中央ブロックが割込み処理の調停を行うようにしたことを特徴とする請求項１４に記載のマイコンのロジック開発装置。
【請求項１６】
前記周辺ブロックは、前記割込みフラグ情報を前記中央ブロックに送信した後は、前記割込みフラグ情報を無条件にクリアするようにしたことを特徴とする請求項１５に記載のマイコンのロジック開発装置。
【請求項１７】
前記周辺ブロックは、前記割込みフラグ情報がない場合に、前記中央ブロックへの送信処理を停止するようにしたことを特徴とする請求項１６に記載のマイコンのロジック開発装置。
【請求項１８】
前記周辺ブロックを複数個設けたことを特徴とする請求項１から１７の何れか１項に記載のマイコンのロジック開発装置。
【請求項１９】
前記複数個の周辺ブロックは、前記中央ブロックから入力された入出力処理を分散して並列処理するようにしたことを特徴とする請求項１８に記載のマイコンのロジック開発装置。
【請求項２０】
前記複数個の周辺ブロックによる並列処理を、各周辺ブロックとの同期信号の遣り取りによって行わせるようにしたことを特徴とする請求項１９に記載のマイコンのロジック開発装置。
【請求項２１】
前記第１のブロックにおけるアプリケーション処理の処理単位が大きい場合に、前記第１のブロックは、この処理単位を分割して処理するようにしたことを特徴とする請求項２に記載のマイコンのロジック開発装置。
【請求項２２】
前記アプリケーション処理の処理単位を、高優先度の処理単位と低優先度の処理単位に分割したことを特徴とする請求項２１に記載のマイコンのロジック開発装置。
【請求項２３】
前記アプリケーション処理の処理単位を、外部状態に依存せず且つ処理中に前記入出力操作が含まれる時間同期処理と、外部状態によりイベント情報を検出してそのイベントに同期した処理を行う非時間系同期処理の２つの処理単位に分割したことを特徴とする請求項２１に記載のマイコンのロジック開発装置。
【請求項２４】
前記時間同期処理と非時間系同期処理を、それぞれ更に高優先度の処理単位と低優先度の処理単位に分割したことを特徴とする請求項２３に記載のマイコンのロジック開発装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイコンのロジック開発装置に関し、特に、電子制御機器に組み込まれて使用されている組込み用マイコンにおけるロジックを開発するための装置に関する。
【０００２】
【従来の技術】
従来、電子制御機器の制御、例えば、ＥＣＵ（電子制御ユニット）によって制御されるエンジンの制御は、排気ガス規制等の法規要求、及びマイクロコンピュータ（以後マイコンと記す）の性能向上に応じた性能向上を図るため、年々改良を加える必要があり、現状のＥＣＵの性能に先行して新しいロジックが開発されているのが現状である。このため、先行ロジックは、性能向上が見込まれる次期マイコンがターゲットとなることが多い。また、先行ロジックに必要とされる性能から性能の向上した次期マイコンの選定が行われる。
【０００３】
しかしながら、性能の向上した次期マイコンを組み込んだＥＣＵは実在しないため、前述の先行ロジックは、多くの場合は現状のマイコンをベースにして開発が行われる。
【０００４】
ところが、現状のマイコンを組み込んだＥＣＵを用いて先行ロジックの開発を行う場合には、以下のような問題点があった。
（１）マイコンのＣＰＵの処理能力が不足している。
（２）マイコンのメモリの容量が足りない。
（３）周辺リソースが足りない。
（４）次期ＥＣＵを開発して製作する迄に時間がかかる。
【０００５】
そして、このような問題点の存在により、次期マイコンの開発が遅れ、この次期マイコンを組み込んだＥＣＵに制御される電子制御機器の新製品の開発に支障をきたしていた。
【０００６】
なお、現状の電子制御機器に組み込まれる組込み用マイコンは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様でＣＰＵ性能、及び周辺機能が選択されており、また、ＣＰＵやマイコン周辺リソースが１つのパッケージの中に組み込まれているため、それぞれの機能変更はマイコンを変更しない限り、不可能である。また、組込み用マイコンのロジックの開発を行うためには、ＣＰＵ機能に対しては先行ロジックを処理するのに必要な処理性能が必要であり、マイコン周辺リソースには先行システムに合わせたリソースを確保する必要があった。更に、新たなマイコンの開発を行う度に、マイコンに合わせてＥＣＵを製作する必要があった。
【０００７】
そこで、このような先行ロジックの開発に際して、本発明者らは、現状の電子制御機器に組み込まれる組込み用マイコンを、外部に設けた高性能のマイコンに置き換えることにより、先行ロジックを開発することができるマイコンのロジック開発装置を既に提案している（特願２００１−３６７４９６号）。
【０００８】
このようなマイコンのロジック開発装置のＥＣＵは一般に、マイコンのＣＰＵ機能を備えたマザーボード、マイコンの入出力（ＩＯ）のリソース機能を備えたコアボード、及び、ハード機能を備えたＩＦボードから構成されている。マザーボードとコアボード間はＰＣＩバスで接続され、ＩＯ情報の通信が行われる。各ボード自体の性能は、各ボードに搭載される部品の性能によって決定されるが、各ボードの性能をマイコンのロジック開発装置自体の性能として有効に引き出せるかどうかは、マザーボードとコアボードの間におけるＩＯ情報の通信速度、マザーボードとコアボードにおける演算処理能力が大きく影響することが知られている。
【０００９】
【発明が解決しようとする課題】
しかしながら、例えば、電子制御機器が高性能のエンジンの制御システムである場合には、以下のような課題が発生する。
（１）ＩＯデータの異常によるエンジン制御システムへの影響が大である。
（２）厳しいタイミングでのＩＯ操作を行う際の処理が増加し、処理時間が増大する。
（３）データ処理量の多い演算処理が増加する。
【００１０】
そこで、本発明の目的は、マザーボードとコアボード間におけるＩＯ情報の確実な通信を実現できると共に、ＩＯ情報通信のスピードを向上させること、及び、マザーボードとコアボードの演算処理能力の向上を図ることができて、より高性能のエンジン制御システムに対応することが可能なマイコンのロジック開発装置を提供することである。
【００１１】
【課題を解決するための手段】
前記目的を達成する本発明のマイコンのロジック開発装置は以下の第１から第２４の形態を取り得ることを特徴としている。
【００１２】
第１の形態は、高速演算機能、メモリ、及び通信機能を備えた中央ブロックと、マイコンの周辺装置を擬似的にソフトウエアで実現する疑似マイコン周辺装置、演算機能、及び通信機能を備え、中央ブロックとＰＣＩバスで接続される周辺ブロックと、電子制御ユニットのハードウエアに相当する回路を備え、周辺ブロックに接続するインタフェース回路ブロックとから構成され、電子制御ユニットに組み込まれて使用される組込み用マイコンのロジックを開発する装置であって、中央ブロックで実施される、演算処理とメモリとの入出力操作とが混在するアプリケーション処理において、処理単位の区切りの前後で入出力操作における入出力情報のみを集約し、一括してＰＣＩバスによって周辺ブロックとの通信処理を行うものである。
【００１３】
第２の形態は、第１の形態の中央ブロックが、演算処理とメモリとの入出力操作とが混在するアプリケーション処理を行う第１のブロックと、演算処理のみのアプリケーション処理を行う第２のブロックとを備えている。
【００１４】
第３の形態は、第２の形態の中央ブロックが、第１のブロックのアプリケーション処理を、第２のブロックのアプリケーション処理よりも先に優先的に行うものである。
【００１５】
第４の形態では、第２又は第３の形態の中央ブロックが、第１のブロックのアプリケーション処理における入出力操作の情報を、周辺ブロックと同期をとりながら遣り取りする。
【００１６】
第５の形態では、第２から第４の形態の第１のブロックにおける処理が、外部状態に依存せず且つ処理中に前記入出力操作が含まれる時間同期処理と、外部状態によりイベント情報を検出してそのイベントに同期した処理を行う非時間系同期処理の２つに分けられている。
【００１７】
第６の形態では、第５の形態のイベント情報が、周辺ブロックから中央ブロックに入力される割込み信号の中の割込みフラグ情報に含まれており、第１のブロックは、この割込み信号をトリガとして入出力操作と演算処理を起動する際に、割込みフラグ情報に従って各割込み処理を行う。
【００１８】
第７の形態では、第２から第６の形態の第２のブロックが、周辺ブロックの動作とは無関係に定期時間間隔で演算処理を行う。
【００１９】
第８の形態では、第３の形態の中央ブロックが、周辺ブロックにおける入出力操作処理の実行中の入出力処理完了待ち状態の間に、第２のブロックのアプリケーション処理を実行する。
【００２０】
第９の形態では、第２の形態の第１のブロックが、周辺ブロックからの割込み信号によって起動され、第２のブロックが中央ブロックの内部システムによって起動される。
【００２１】
第１０の形態では、第２の形態の中央ブロックが、第２のブロックのアプリケーション処理における或る処理の完了時に、前回の第１のブロックのアプリケーション処理の終了からの処理時間を計数し、この処理時間が所定時間を越えていた場合には、或る処理の結果のデータの受け渡し処理を禁止する。
【００２２】
第１１の形態では、第１から第１０の形態の周辺ブロックに、中央ブロックへの入力情報を格納すると共に、中央ブロックからの出力情報を格納するＰＣＩメモリを設け、このＰＣＩメモリの入力情報の格納領域と出力情報の格納領域が分けられている。
【００２３】
第１２の形態では、第１１の形態の周辺ブロックが、ＰＣＩメモリに中央ブロックからの出力情報が完全に書き込まれた後に、ＰＣＩメモリから情報の読み出しを行う。
【００２４】
第１３の形態では、第１から第１２の形態の中央ブロック及び周辺ブロックが、ＰＣＩバスを用いた通信の際に、データの値の変化したもののみを抽出して送信を行う。
【００２５】
第１４の形態では、第５又は６の形態の中央ブロックと周辺ブロックとの間に、ＰＣＩバスに加えて、周辺ブロックから中央ブロックに割込み信号を送出する割込み信号ラインと、中央ブロックから周辺ブロックに同期信号を送出する同期信号ラインとが設けられている。
【００２６】
第１５の形態では、第１４の形態の周辺ブロックが、割込み信号ラインを通じて割込みフラグ情報を送信し、この割込みフラグ情報には周辺ブロックで生成した時間同期タイミング信号を加え、同一サンプリングタイミングで複数のフラグが検出された場合には、各フラグの優先度に応じて、中央ブロックが割込み処理の調停を行う。
【００２７】
第１６の形態では、第１５の形態の周辺ブロックが、割込みフラグ情報を中央ブロックに送信した後は、割込みフラグ情報を無条件にクリアする。
【００２８】
第１７の形態では、第１６の形態の周辺ブロックが、割込みフラグ情報がない場合に、中央ブロックへの送信処理を停止する。
【００２９】
第１８の形態では、第１から１７の形態の周辺ブロックが複数個設けられている。
【００３０】
第１９の形態では、第１８の形態の複数個の周辺ブロックが、中央ブロックから入力された入出力処理を分散して並列処理する。
【００３１】
第２０の形態では、第１９の形態の複数個の周辺ブロックによる並列処理を、各周辺ブロックとの同期信号の遣り取りによって行う。
【００３２】
第２１の形態では、第２の形態の第１のブロックにおけるアプリケーション処理の処理単位が大きい場合に、第１のブロックが、この処理単位を分割して処理する。
【００３３】
第２２の形態では、第２１の形態のアプリケーション処理の処理単位が、高優先度の処理単位と低優先度の処理単位に分割されている。
【００３４】
第２３の形態では、第２１の形態のアプリケーション処理の処理単位が、外部状態に依存せず且つ処理中に前記入出力操作が含まれる時間同期処理と、外部状態によりイベント情報を検出してそのイベントに同期した処理を行う非時間系同期処理の２つの処理単位に分割されている。
【００３５】
第２４の形態では、第２３の形態の時間同期処理と非時間系同期処理が、それぞれ更に高優先度の処理単位と低優先度の処理単位に分割されている。
【００３６】
なお、以上の全ての形態において、中央ブロック、周辺ブロック、インタフェース回路ブロックをそれぞれ汎用のボードから構成することができる。また、本発明のマイコンのロジック開発装置は、内燃機関の制御用のマイコンに有効に適用できる。
【００３７】
以上のように構成された本発明のマイコンのロジック開発装置によれば、マイコンのロジックの開発に伴う課題が解消され、ＣＰＵ機能に対しては新規なロジックや次期ロジックを処理するために必要な処理性能を確保することができ、マイコン周辺リソースに対しては、新規システムや次期システムに合わせたリソースを確保することができて、新規ロジックや次期ロジックを実現することが可能な組込み用マイコンを短時間で開発することが可能となる。また、本発明のマイコンのロジック開発装置は、ロジックの開発に際して繰り返し利用することが可能であるので、開発コストを低減することができる。
【００３８】
【発明の実施の形態】
以下添付図面を用いて本発明の実施形態を具体的な実施例に基づいて詳細に説明するが、以下の実施例では、本発明を適用する電子制御機器として、電子制御式内燃機関（内燃機関は以下エンジンと記す）を説明する。
【００３９】
図１は従来の電子制御式エンジンの制御システムにおけるＥＣＵ（電子制御ユニット）１の構成を示すシステム構成図である。電子制御式エンジンでは、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力がＥＣＵ１に入力される。ＥＣＵ１は、これらの入力信号を処理する組込み用マイコン２と、組込み用マイコン２で処理された信号を増幅して出力するＥＣＵ入出力回路であるドライバ１６とを備えて構成される。このＥＣＵ１から出力されるのは、シフト制御ソレノイドやＶＶＴ（可変バルブタイミング）ソレノイドへのアナログ出力、点火信号や燃料の噴射信号等のパルス出力、ＩＳＣ（アイドル速度制御）用のパルス出力、及び、チェックエンジンランプ、メインリレーやエヤコンカット信号等のデジタル信号等である。
【００４０】
組込み用マイコン２は、演算処理を行うメモリ９とＣＰＵ１０、及び入出力（ＩＯ）制御を行う周辺リソースが、１つのパッケージに収納されたものである。周辺リソースには、入力系のリソースと出力系のリソースとがある。図１には、入力系のリソースとして、デジタル信号を扱う入力ポート３とラッチポート４、アナログ入力を扱うＡ／Ｄコンバータ５、及びパルス入力を扱うキャプチャ６が示してあり、出力系のリソースとしては、デジタル出力を出力する出力ポート１２、パルス出力を出力するＰＷＭ（パルス幅変調器）１３とコンペア１４、及びアナログ出力を入出力するシリアル１５が示してある。これらの周辺リソースは内部バス１１によってメモリ９及びＣＰＵ１０に相互に接続されている。また、組込み用マイコン２の内部には、これらの周辺リソースに加えて、内部タイマ７や割り込みコントローラ８が設けられている。
【００４１】
電子制御式エンジンの制御システムでは、車両の運転状態を表す各センサやスイッチ類からの信号がＥＣＵ１に取り込まれる。ＥＣＵ１の入力回路では入力信号が信号処理され、組込み用マイコン２に入力される。入力された信号は前述の入力系の周辺リソースでＣＰＵ値に変換され、演算部であるメモリ９とＣＰＵ１０では入力信号から車両状態が検出され、車両状態に応じた出力要求信号が作られる。この出力要求信号は前述の出力系の周辺リソースで出力信号に変換され、組込み用マイコン２から出力される。ＥＣＵ１の入出力回路であるドライバ１６はこの出力信号に従って車両に装備された各アクチュエータを駆動し、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。
【００４２】
図２は、図１で説明したＥＣＵ１の自動車（車両）１８への搭載位置を示すものである。ＥＣＵ１は車両１８のエンジン１９がマウントされるエンジンルームに搭載される。また、図２には、本発明のマイコンのロジック開発装置２０が示してある。本発明のマイコンのロジック開発装置２０は、この図に示すように、車両１８に搭載されたＥＣＵ１に接続するコネクタを外し、このコネクタに接続コード２０Ａによって直接接続して使用することができる。２１はマイコンのロジック開発装置２０の状態をモニタするための表示器、２２はマイコンのロジック開発装置２０の設定を変更するための入力装置であるキーボードである。
【００４３】
なお、本発明のマイコンのロジック開発装置２０は、このように車両１８に直接接続して使用することができる他に、パーソナルコンピュータ２４の制御によって動作して、車両の色々な運転状況を擬似的に発生することができる車両の運転状況発生装置２３に接続すれば、車両が無い状態でも、電子制御式エンジン用の組み込みマイコンのロジックを開発することができる。
【００４４】
図３は、図２のように接続して使用することができる、本発明のマイコンのロジック開発装置２０のシステム構成を、従来の電子制御式エンジン（電子制御機器）用のＥＣＵ１の構成と比較して示すものである。前述のように、ＥＣＵ１には、組込み用マイコン２と、ドライバ１６から構成されるＥＣＵ入出力回路２８があり、ＥＣＵコネクタ２９で車両側の電子機器と接続されている。また、組込み用マイコン２の中には、メモリ９に格納されていてＣＰＵ１０によって読み出されて使用されるソフトウエア（エンジン制御アプリケーション：図にはＥＮＧ制御アプリと記載）２５と、マイコン周辺リソース２６とがあり、内部バス１１で相互にデータの遣り取りができるようになっている。
【００４５】
一方、図２で説明したように、このＥＣＵ１に置き換えて使用する本発明のマイコンのロジック開発装置２０は、この実施例では、中央ブロックであるマザーボード３０、周辺ブロックであるコアボード４０、及びインタフェース回路ブロックであるＩＦボード５０の３つのボードから構成されている。マザーボード３０とコアボード４０がＥＣＵ１の組込み用マイコン２に対応するものであり、ＩＦボード５０がＥＣＵ１のＥＣＵ入出力回路２８に対応するものである。そして、マザーボード３０とコアボード４０とは、高速のバスインタフェースであるＰＣＩバス３９で接続されている。
【００４６】
マザーボード３０には、後述するメモリに格納されていてＣＰＵによって読み出されて使用されるソフトウエア（ＥＮＧ制御アプリ）３１と、ＰＣＩバス３９を通じて通信を行うためのＰＣＩ通信ソフトウエア（以後ソフトウエアはソフトと略記）３２が設けられている。ＰＣＩバス３９を用いたＰＣＩ通信処理は、疑似マイコン周辺リソース（以後周辺リソースは単に周辺と略記）４２と遣り取りするデータを、ＰＣＩバス３９に載せる通信処理である。このマザーボード３０には、次期のＥＣＵを開発するに当たっては、次期ＥＣＵの先行ロジックの開発に耐え得る演算性能、メモリ容量を備えさせることが重要である。
【００４７】
なお、現状のエンジン制御用のマイコンの性能は、ＣＰＵが６６ＭＨｚ、メモリが８００Ｍバイト程度であるので、パソコン等に用いられている汎用のものを用いれば、十分すぎる性能であるといえ、長期間にわたって何度でも使用することが可能となる。
【００４８】
また、コアボード４０はＣＰＵとメモリを含み、前述のＰＣＩバス３９と通信を行うためのＰＣＩ通信ソフト４１と、組込み用マイコン２のマイコン周辺リソース２６に対応する疑似マイコン周辺（ＦＰＧＡ：Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）４２とがあり、内部バス４３で相互にデータの遣り取りができるようになっている。ＩＦボード５０には、ＥＣＵ１のＥＣＵ入出力回路２８に対応するＥＣＵ入出力回路５１と、ＥＣＵコネクタ２９とが設けられている。ＥＣＵ入出力回路５１は、標準回路ブロック単位で独立させ、その組み合わせで構成し、入出力回路の変更に対して柔軟に対応できるようにする。
【００４９】
図４は、図３のマザーボード３０とコアボード４０の、ハードウエアの構成の一実施例を示すものである。マザーボード３０には、図３で説明したソフト（ＥＮＧ制御アプリ）を記憶するための記憶容量が大きいメモリ３１、汎用の高性能のＣＰＵ（例えば、動作周波数が８５０ＭＨｚ）３３、内部タイマ３５、ＰＣＩバス３９に接続するＰＣＩバスインタフェース３６、及びこれらを相互に接続する内部バス３７がある。
【００５０】
コアボード４０には、ＰＣＩバス３９に接続するＰＣＩバスインタフェース４４、マザーボード３０に搭載されたＣＰＵ３３よりも低グレードのＣＰＵ４５、マイコン周辺の機能と同等の機能を実現する疑似マイコン周辺（ＦＰＧＡ）４２、内部バス４３、ＰＣＩバスに接続する共有メモリ４６、及び内部バス４３に接続する内部メモリ４７がある。また、コアボード４０に搭載するＣＰＵ４５は、ＰＣＩ通信処理を行うことができる程度の処理能力（例えば、汎用３２ビットＣＰＵで動作周波数が１６ＭＨｚ程度）であれば良い。コアボード４０の機能は、従来のＥＣＵ１におけるＥＮＧ制御アプリ（ソフト）２５とマイコン周辺２６とが遣り取りするデータをＰＣＩバス３９を経由して受け、疑似マイコン周辺（ＦＰＧＡ）４２へ受け渡すことである。
【００５１】
ＩＦボード５０に接続される各ＦＰＧＡ４２はソフトで組むことができ、マイコン周辺の変更に柔軟に対応させることができる。即ち、チャネル数を増やしたい場合や、新しい機能のリソースを追加したい等の場合に対応させることができる。
【００５２】
図５は、本発明のマイコンのロジック開発装置２０における、ＥＣＵ１のソフトの構成（一部ハードも記載）を示すものである。ＥＣＵ１には、マイコンコア相当の機能を実現するマザーボード３０、マイコンリソース相当の機能を実現するコアボード４０、及びＥＣＵ１のハード相当の機能を実現するＩＦボード５０がある。ＥＣＵ１のハードとは、マイクロコンピュータ以外の電気回路のことである。
【００５３】
マザーボード３０及びコアボード４０には、マイコンリソースに接続するバス相当の機能を実現するＩＯドライバ（マザーボード側ＩＯドライバ３０Ｄとコアボード側ＩＯドライバ４０Ｄ）が実装されており、その間はＰＣＩバス３９と複数の信号ラインＡ，Ｂで接続される。信号ラインＡはＰＣＩバス３９に設けられた１系統の割込み信号ラインであり、コアボード４０からマザーボード３０への割込み要求が発行できる。また、信号ラインＢにより、マザーボード３０からコアボード４０に同期信号が発行できる。
【００５４】
ＥＣＵ１のハードに相当するＩＦボード５０には、ポート割付変換ボード５２と第１から第３の標準回路５３がある。また、５４はＥＣＵ１のコネクタに相当するものである。ＩＦボード５０とコアボード４０とは、マイコンポートに相当するハーネス４９で接続されている。
【００５５】
電子制御機器が電子制御式エンジンの場合は、マザーボード３０には、エンジン制御アプリ３１と、このアプリ３１とＦＰＧＡ４２の間のＩＯ情報の伝達を行うＩＯドライバ３０Ｄの２つの大きなソフトブロックがある。エンジン制御アプリ３１は、更に、演算のみを行うブロックと、ＩＯ操作と演算処理が混在するブロックに分かれる。ＩＯ操作と演算処理が混在するブロックは、実ＥＣＵに実装されているソフトがほぼこれに相当する。演算のみを行うブロックは、追加検討ロジックであり、ＩＯ操作と完全に切り分けられている。ＩＯドライバは、マザーボード側ＩＯドライバ３０Ｄとコアボード側ＩＯドライバ４０Ｄに分かれており、マザーボード３０とコアボード４０間の信号ラインＡを利用して、ボード間の同期をとり、ＰＣＩバス３９経由でＩＯ情報の伝達を行う。
【００５６】
エンジン制御アプリ３１の演算のみを行うブロックには時間同期処理（時間系割り込み処理）のみであるが、ＩＯ操作と演算処理が混在するブロックは時間同期と非時間同期処理（時間系割り込み処理）の２つの処理に分けられる。時間同期処理は、外部状態に依存せず、一定の時間間隔で定期的に行う処理である。一方、非時間同期処理は、外部状態、即ち、エンジンの運転状態に依存して発生する処理である。この非時間同期処理には、例えば、エンジンの回転信号、車速信号、燃料の噴射タイミング信号、点火タイミング信号等による割り込み処理がある。
【００５７】
ここで、このような外部状態により変化する事象をイベントと呼ぶこととすると、非時間同期処理は、外部状態によりイベント情報を検出して、そのイベントに同期して行う処理ということができる。
【００５８】
マザーボード３０のエンジン制御アプリ３１において、前述のような時間同期処理と非時間同期処理とを行うために、図４で説明したＣＰＵ３３は仮想マイコン周辺として機能する。この仮想マイコン周辺には、時間系割り込みと非時間系割り込みを発生させる仮想割り込みコントローラと、仮想ＩＯレジスタが設けられている。また、ＰＣＩ通信ソフトとしてのマザーボード側のＩＯドライバは、データとして、割り込みイベント情報と、ＩＯレジスタデータとを扱う。
【００５９】
一方、コアボード４０側の疑似マイコン周辺４２には、図３に示した従来のマイコン周辺２６と同様に、ポート、ラッチ、ＰＷＭ、シリアル、コンペア、及びキャプチャの各機能が設けられている。また、ＰＣＩ通信ソフトとしてのコアボード側ＩＯドライバは、データとして、割り込みイベント情報と、ＩＯレジスタデータとを扱う。更に、コアボード４０には、イベントの流れを発生させるタイマが内蔵されている。
【００６０】
次に、前述のイベント情報とデータとが流れる本発明のマイコンのロジック開発装置２０が実施する、（１）アプリソフトへのＩＯ情報の反映処理方法、（２）ＰＣＩ通信方法、（３）ボード間通信同期方法、及び（４）アプリ処理単位の分割によるＩＯ処理サイクルの短縮方法について、以下に具体的な実施例に基づいて詳細に説明する。
【００６１】
なお、以下の実施例では、主として、イベントの流れが実線で示され、データの流れが白抜き線で示されている。
（１）アプリソフトへのＩＯ情報の反映処理方法
（１−１）ＩＯ操作／演算混在ソフトの処理方法
図６はＩＯ操作と演算の混在ソフトの処理方法を示すタイミングチャートである。ＩＯ操作と演算の混在ソフトでは、マイコンにポートからデータを出力したり、ポートを読んだりすることがソフトの中に混在している。図６には、マザーボード３０、ＰＣＩバス３９、及びコアボード４０における処理が時間の経過と共に示してある。なお、コアボード４０は図示のように複数個使用することができるが、複数個使用する場合については後述し、この実施例では１つのコアボード４０を使用した場合について説明する。また、ここでは、コアボード４０における入力情報確定処理から、出力セット処理までが１つの処理サイクルであり、以後はこの処理サイクルが繰り返されるので、１つの処理サイクルについてのみ説明を行う。
【００６２】
１つの処理サイクルでは、まず、コアボード４０においてマザーボード３０への入力情報が確定し、この入力情報がＰＣＩバス３９に出力される。入力情報がＰＣＩバス３９に出力されると、図５で説明した信号ラインＡを通じて割込み要求信号がマザーボード３０に出力される。マザーボード３０はこの信号ラインＡから入力された割込み要求信号により、ＰＣＩバス３９から入力情報を取得する。この処理がアプリ前処理であり、ＰＣＩバス３９経由でコアボード４０から入力情報を取得し、次のアプリ処理に反映する。
【００６３】
マザーボード３０におけるアプリ処理（エンジン制御ソフト）は、ＩＯ操作と演算処理が混在するため、処理単位の区切りの前後でＩＯ情報を集約し、一括してＰＣＩバス３９を通じて通信処理を行い、データ通信効率を上げる。ここで、アプリ処理の処理単位とは、割込みイベントに対して、起動される一連の処理全てのことである。
【００６４】
アプリ処理が終了すると、アプリ後処理が行われる。アプリ後処理は、アプリ処理の結果、発生した出力要求を集約し、コアボード４０へＰＣＩバス３９経由で伝達する処理である。マザーボード３０においてコアボード４０への出力情報が確定すると、この出力情報がＰＣＩバス３９に出力される。出力情報がＰＣＩバス３９に出力されると、図５で説明した信号ラインＢを通じて同期信号がコアボード４０に出力され、出力情報がＰＣＩバス３９に送られたことが通知される。コアボード４０はこの信号ラインＢから入力された同期信号により、ＰＣＩバス３９から出力情報を取得する。ＰＣＩバス３９経由でコアボード４０が出力情報を取得した後は、コアボード４０はその取得した出力情報に基づいて出力をセットする。
【００６５】
即ち、この実施例では、コアボード４０がアプリ処理単位の前処理で入力確定し、後処理で出力確定することにより、ＩＯ情報がアプリ処理ソフトに反映される。なお、この実施例では、１つの処理サイクルにおいて出力要求が確定し、マザーボード３０から信号ラインＢを通じて同期信号がコアボード４０に出力された後は、マザーボード３０はコアボード４０側のＩＯ処理が完了するまで、ＩＯ処理完了待ち状態となり、処理は行われない。マザーボード３０の処理再開は、次の処理サイクルにおいてコアボード４０から、信号ラインＡを通じて割込み要求信号がマザーボード３０に出力された時点である。
【００６６】
図７は図６のマザーボード３０における入力情報の取得、アプリ処理、及び出力要求確定の処理の詳細を示すものである。入力情報の取得（ＩＯドライバ前処理）でＰＣＩバスを通じて取得される入力情報は、割込みフラグと、ポートレベル、キャプチャ値、受信データ、ＡＤ変換値等の入力データを含む。割込みフラグは割込みコントローラに出力され、この割込みコントローラが割込みフラグを見てそれに付随するアプリ処理を起動する。一方、入力データは仮想レジスタ（ＲＡＭ）３８に格納される。
【００６７】
アプリ処理にはアプリ層、ＡＰＦ層、ＥＣＵ層、及びＣＰＵ層があり、これらの層で必要な演算が実行され、出力を仮想レジスタ３８に格納する必要がある場合は演算されたデータが仮想レジスタ３８に格納されて出力設定される。また、演算に入力情報が必要な場合は仮想レジスタ３８から入力情報が読み込まれる。
【００６８】
このようにして、アプリ処理が終了すると、出力要求の確定（ＩＯドライバ後処理）が実行される。ＩＯドライバ後処理では、割込みコントローラに戻された割込みフラグが示す割込みをクリアし、出力要求を仮想レジスタから取得する。ＩＯドライバの後処理では、得られたポートレベル、コンペア、ＰＷＭ、送信データ、通信起動データ、ＡＤ起動データ等の出力情報をＰＣＩバス経由でコアボードに出力する。
（１−２）演算のみソフトの処理方法
前述のように、マザーボード３０におけるアプリ処理には、ＩＯ操作と演算処理が混在する処理と、演算のみの処理がある。図８はこれらの処理の詳細を示すものである。ＩＯ操作と演算処理が混在する処理には、時間同期処理１と非時間系処理（非時間同期処理）があり、演算のみの処理は時間同期処理２のみである。ＩＯ操作と演算処理が混在する処理における時間同期処理１は、定期時間間隔で行う処理であり、外部状態に依存しないものである。また、処理中にＩＯ操作がある。ＩＯ操作と演算処理が混在する処理における非時間系処理は、エンジン（Ｅ／Ｇ）回転信号、車速信号、噴射タイミング、点火タイミング等の外部状態によりイベント情報を検出して、そのイベントに同期して行う処理であり、処理中にＩＯ操作がある。一方、演算のみの処理における時間同期処理２は定期時間間隔で行う処理であり、外部状態に依存しないものである。また、演算処理中にＩＯ操作はない。
【００６９】
図９はＩＯ操作と演算処理が混在する処理と、演算のみの処理の両方があるソフトの処理方法を示すタイミングチャートであり、図６で説明したタイミングチャートに演算のみの処理が加わったものである。ＩＯ操作と演算の混在処理については、図６で説明したので、ここでは説明を省略する。演算のみの処理は、コアボードの４０動作とは無関係に、一定周期で起動を行う。
【００７０】
また、前述のように、ＩＯと演算処理が混在する処理では、コアボード４０側でＩＯ操作処理を行っている間は、ＩＯ処理完了待ち状態となる。そこで、この実施例では、マザーボード３０におけるこのＩＯ処理完了待ち区間を利用して、演算のみの処理を実施する。この処理により、マザーボード３０のＣＰＵの有効活用を図ることができる。
【００７１】
図１０は、ＩＯ操作と演算の混在処理と、演算のみの処理の両方がある場合のソフトの全体構成を示すものである。エンジン（ＥＮＧ）制御アプリ３１は、ＩＯ操作と演算処理が混在する処理部と演算のみの処理部の２つのブロックに分割されている。ＩＯ操作と演算処理が混在するブロックは、ＩＯ情報をコアボード４０と遣り取りするため、コアボード４０と同期をとりながら起動を行う。このブロックは、さらに時間同期処理１と非時間系処理の２つに分けられるが、各割込みイベントは、コアボード４０からの割込みフラグ情報の中に含まれ、コアボード４０からの割込み信号に集約する。ＩＯ操作と演算処理が混在する処理ブロックは、コアボード４０からの割込み信号を元に起動され、演算のみの処理ブロックは、マザーボード内部システムより起動される。
【００７２】
マザーボード３０のＥＮＧ制御アプリ３１において、前述のような時間同期処理１，２と非時間系処理とを行うために、ＣＰＵ３３は仮想マイコン周辺として機能する。この仮想マイコン周辺３３には、時間系割り込みと非時間系割り込みを発生させる仮想割り込みコントローラ３４と、仮想ＩＯレジスタ３８が設けられている。また、ＰＣＩ通信ソフトとしてのマザーボード側ＩＯドライバ３２は、データとして、割り込みイベント情報と、タイマ値を含むＩＯレジスタデータとを扱う。３５は時間同期処理２に使用される内部タイマである。仮想ＩＯレジスタ３８とＰＣＩバス３９におけるタイマ値については後述する。
【００７３】
一方、コアボード４０側の疑似マイコン周辺４２には、従来のマイコン周辺２６と同様に、ポート、ラッチ、ＰＷＭ、シリアル、コンペア、及びキャプチャの各機能が設けられている。また、ＰＣＩ通信ソフトとしてのコアボード側ＩＯドライバ４１は、データとして、割り込みイベント情報と、タイマ値を含むＩＯレジスタデータとを扱う。更に、疑似マイコン周辺４２には、イベントの流れを発生させるタイマが内蔵されている。また、ＰＣＩバス３９には、割り込み指示用の１系統のバス（図５の信号ラインＡ）が含まれる。
【００７４】
ここで、ＥＮＧ制御アプリ３１に、ＩＯ操作と演算処理が混在する処理と、演算のみの処理の両方がある場合に、コアボード４０におけるＩＯ操作の遅れを極力抑えるため、ＩＯ操作と演算処理が混在するブロックの処理を優先して行う実施例について説明する。
図１１は、ＩＯ操作と演算処理が混在するブロックと、演算処理のみのブロックがある場合のソフト構成を示すものであり、ＩＯ操作と演算処理が混在するブロックのソフト構成は図７で説明したものと同じである。ＩＯ操作と演算処理が混在する処理は、ＲＡＭ（図４で説明したメモリ）３１を用いて行う。ＩＯ操作と演算処理が混在する処理は、コアボード４０とデータを遣り取りするので、優先度を高くし、コアボード４０との遣り取りのない演算のみの処理は、優先度を低くする。演算のみの処理にはアプリ層（検討ロジック）のみがあり、本発明のシステムでは一定時間間隔で起動され、演算結果をＲＡＭ３１と遣り取りする。この一定時間間隔は、前述の処理サイクルに比べて十分に長い時間間隔であり、例えば、４ｍｓである。なお、図１１には、優先度の高いＩＯ操作と演算処理が混在する処理と、優先度の低い演算のみの処理とが並列に記載してあるが、両者は同時に行われる訳ではない。これを次に説明する。
（１−３）ＩＯと演算の混在ソフト−演算のみソフト間のデータ伝達方法
図１２は、コアボード４０、ＰＣＩバス３９、及びマザーボード３０の、ＩＯ操作と演算処理が混在する処理部と演算のみの処理部の、各処理におけるデータの受渡しの進行状況を時間と共に示したタイミングチャートであり、複数のデータの同時性を確保することを示すものである。受渡しするデータは、演算のみの処理部の入出力データとなるため、演算のみの処理部の前後に実施する。なお、図１２における「入」は図６における入力情報、「受」は入力情報取得、「処」はＩＯ操作と演算処理が混在するアプリ処理、「処１」，「処２」は演算のみのアプリ処理、「送」は出力要求確定、「出」は出力要求取得を示している。なお、演算のみのアプリ処理「処１」，「処２」は、一定周期の演算のみの起動タイミングで処理が開始される。
【００７５】
ここで、ＩＯ操作と演算処理が混在する処理部を高優先度、演算のみの処理部を低優先度として割込み処理を行うため、演算のみの処理部のデータの受渡し処理（データのコピー処理）中に、ＩＯ操作と演算処理が混在する処理部を起動する割込みが発生する可能性がある。そして、この割込みが発生した場合は、演算のみの処理部のデータ受渡し途中でデータが更新され、データの同時性が確保できないため、割込みの排他を行う必要がある。但し、割込み禁止機能を使用して割込みの排他を行おうとした場合、割込み禁止中に発生したコアボード４０からの割込み要求（ＩＯ操作と演算処理が混在する処理部の起動要求）が無効になる可能性があるため、割込み禁止機能は使用できない。
【００７６】
そこで、この実施例では、ＩＯ操作と演算処理が混在する処理部の「送」の終了時毎に、マザーボードの内部タイマの値（ｔｉｍｃｈｋ）をラッチして更新する。そして、演算のみの処理部の「処１」で示す演算処理の終了時にデータ受け渡し処理を要求する。これにより、データ受渡し処理判定ルーチンが実行され、ステップ１２１でマザーボード３０の内部タイマの値がｔｉｍｎｏｗとしてセットされ、現在時刻を取得する。次のステップ１２２では、現在時刻ｔｉｍｎｏｗからＩＯ操作と演算処理が混在する処理部の「送」の終了時にラッチした内部タイマ値ｔｉｍｃｈｋの値を引いた差の値が２０μｍ未満であるか否かを判定する。差の値が２０μｍ以上の場合は、データ受渡処理を実施せずにこのルーチンを終了し、差の値が２０μｍ未満の場合は、データ受渡処理を実施してこのルーチンを終了する。
【００７７】
図１２には差の値が２０μｍ以上の場合が示してある。この場合は、次のＩＯ操作と演算処理が混在する処理部の「送」の終了時後に、再度データ受け渡し処理を要求する。この場合は、ステップ１２２における、現在時刻ｔｉｍｎｏｗからＩＯ操作と演算処理が混在する処理部の「送」の終了時にラッチした内部タイマ値ｔｉｍｃｈｋの値を引いた差の値が２０μｍ未満となるので、ステップ１２３のデータ受渡し処理を実施する。このデータ受渡し処理は、ハッチングを付して示すように、次の処理サイクルのマザーボードのＩＯ処理完了待ちの期間に実行される。演算のみの処理部の「処２」で示すアプリ処理は、このデータ受渡し処理の終了後の、演算のみの起動タイミングで開始される。
【００７８】
このように、ＩＯ操作と演算処理が混在する処理部の「送」の終了時から、その直後の演算のみの処理部の演算処理の完了時までの時間が２０μｍを越えた場合にデータ受渡し処理を行わない理由は、データ受渡し処理の途中で次の「ＩＯ操作と演算処理が混在する処理部」の「受」処理が開始されてしまうからである。
【００７９】
次に、イベント情報とデータとが流れる本発明のマイコンのロジック開発装置２０におけるＰＣＩ通信方法について詳細に説明する。
（２）ＰＣＩ通信方法
（２−１）ＰＣＩデータの破壊防止方法
この実施例では、ＰＣＩデータの破壊を防止する為に、図１３（ａ）に示すように、コアボード４０のＩＯドライバ４０ＤにＰＣＩメモリ３９Ｍを置き、ＰＣＩバス３９を経由して、マザーボード３０から読出し／書込みを行うように構成した。そして、データの衝突を防止するため、ＰＣＩメモリ３９Ｍでは、マザーボード３０からコアボード４０に入力されるデータ（出力要求）を記憶するメモリ領域と、コアボード４０からマザーボード３０に出力されるデータ（入力情報）を記憶するメモリ領域を分けた。
【００８０】
図１３（ｂ）はマザーボード３０側のＥＮＧ制御アプリ３１の処理、及びコアボード４０側のＩＯサンプリング周期（コアボードタイマ基準）毎に行われる処理を示すものである。なお、図１３（ｂ）における※１から※６は図１３（ａ）に※１から※６で示した部分の処理に対応している。
【００８１】
コアボード４０側では、ＩＯサンプリング周期毎にステップ１３１で入力情報のセットが行われ、ＦＧＰＡ４２より入力情報を取得し、ＰＣＩメモリ３９Ｍに格納する。そして、ステップ１３２ではマザーボード３０へ割込み要求を出力する。次のステップ１３３ではマザーボード３０からの出力要求を待ち、出力要求が入力されると、ステップ１３４で出力情報のセットを行い、ＰＣＩメモリ３９Ｍから出力情報を取得してＦＧＰＡ４２に渡してこのルーチンを終了する。
【００８２】
コアボード側の処理のステップ１３２においてマザーボード３０へ割込み要求が出力されると、マザーボード側のＩＯ操作と演算処理が混在する処理部の処理が開始され、ステップ１３５ではＰＣＩ受信処理を行う。ＰＣＩ受信処理では、ＰＣＩバス３９経由でＰＣＩメモリ３９Ｍから入力情報を読み出し、この情報をＥＮＧ制御アプリ３１に公開する。次のステップ１３６では、時間同期処理１又は非時間系処理を、実ＥＣＵ実装ソフトにより実行する。そして、ステップ１３７でＰＣＩ送信処理を行う。ＰＣＩ送信処理は、ＥＮＧ制御アプリ３１の算出した結果の出力情報を、ＰＣＩバス３９を経由させてＰＣＩメモリ３９Ｍに書き込む処理である。ステップ１３７の出力情報をＰＣＩメモリ３９に書き込む処理が終了すると、ステップ１３８においてコアボード４０に対して出力要求を行い、このルーチンを終了する。
【００８３】
なお、マザーボード側では、コアボード側の状態に係わらず、所定時間毎、例えば、マザーボードタイマの計数による４ｍｓ周期で演算のみの処理部が動作し、時間同期処理２（検討ロジック）を実行する。
【００８４】
ここで、ＰＣＩデータの破壊を防止する方法について図１４と図１５を用いて説明する。ＰＣＩデータの破壊を防止するために、この実施例では図１４に示すように、出力要求１〜ｎを備えた出力要求データの末尾に、チェック用データを付加している。そして、マザーボード３０の仮想レジスタ３８からＰＣＩバス３９を経由して、（１）で示すように、コアボード４０のＰＣＩメモリ３９ＭのＰＣＩ領域１に出力要求データが書き込まれた場合は、このチェック用データの有無を検出することによって、ＰＣＩメモリ３９Ｍのデータが完全に確定したかどうかを判定する。
【００８５】
この実施例では、このようにＰＣＩメモリ３９Ｍ上のデータが完全に確定してから、（２）で示すように、ＰＣＩ領域からの出力要求の読み出しを行い、この出力要求をマイコン（ＩＯドライバ）４０Ｄに取得して図示しないＦＧＰＡにセットする。この結果、出力要求をデータ確定前に読み出すことがなくなり、出力要求が不定値となる可能性がなくなった。
【００８６】
図１５はＰＣＩメモリ３９Ｍにおけるデータ確定の確認方法の一実施例を示すものである。マザーボード側の処理では、ステップ１５５において、アプリ処理で出力要求を作成する。そして、ステップ１５６でマザーボード３０からＰＣＩバス３９経由で出力要求をＰＣＩメモリ３９Ｍに書き込む。出力要求を全てＰＣＩメモリ３９Ｍに書き込んだ後に、ステップ１５７でチェック用データの値を反転させ、これをマザーボード３０からＰＣＩバス３９Ｍ経由でコアボード４０のＰＣＩメモリ３９Ｍに書き込む。
【００８７】
一方、コアボード４０側では、ステップ１５１において、ＰＣＩメモリ３９Ｍ内のチェック用データを確認し、反転があったか否かを判断する。チェック用データに反転がない場合は、反転があるまでステップ１５１を繰り返す。ステップ１５１でチェック用データの反転を確認すると、次のステップ１５２でＰＣＩバス３９経由でＰＣＩメモリ３９Ｍに書き込まれた出力要求データは確定したと判定してステップ１５３に進む。ステップ１５３ではＰＣＩメモリ３９Ｍから出力要求を読み出し、次のステップ１５４でこの出力要求をＦＧＰＡにセットしてこのルーチンを終了する。以上の処理により、ＰＣＩデータの破壊を防止することができる。
（２−２）ＰＣＩ通信負荷の低減方法
図６に示した実施例において、コアボード４０からマザーボード３０に送られる入力情報のデータ量が多いと、ＰＣＩバス３９を流れるデータ量が多くなり、ＰＣＩ通信の負荷が大きくなり、通信時間も長くなる。そこで、この実施例では図１６に示すように、コアボード４０からマザーボード３０に送る入力情報をそのまま送信せずに、値が変化した入力情報のみ抽出してＰＣＩバス３９にＰＣＩデータとしてセットするようにし、ＰＣＩバス３９の通信データ量を低減してＰＣＩ通信負荷を低減する。また、逆に、マザーボード３０からコアボード４０に送る出力要求においても、入力情報に対する出力要求をそのまま送信せずに、値が変化した出力要求のみ抽出してＰＣＩバス３９にＰＣＩデータとしてセットするようにすれば、更にＰＣＩバス３９の通信データ量を低減してＰＣＩ通信負荷を低減することができる。
【００８８】
なお、この場合、マザーボード３０とコアボード４０には、入力情報又は出力要求として送信されるＩＯ情報のフルスペックのＩＯ情報テーブルを持たせておき、抽出されて送信されてきたＩＯ情報を、マザーボード３０とコアボード４０側でフルスペックのＩＯ情報の戻すようにし、ＰＣＩバス３９の通信データ量のみを低減するようにする。これを図１７を用いて説明する。
【００８９】
図１７はマザーボード３０からコアボード４０側へのＰＣＩ通信処理を示すものである。マザーボード３０側とコアボード４０側には、フルスペックのＩＯ情報のテーブル（ＩＯ操作の全ての情報を記載したもの）が備えられている。そして、ＩＯ情報のテーブルに格納されたデータには、ＩＤ番号がデータ毎に付されている。ここでは、説明を簡単にするために、ＩＯ情報に付されたＩＤ番号がＩＤ＝１〜８である場合について説明する。
【００９０】
例えば、マザーボード側のＩＯ情報のうち、ＩＤ＝３とＩＤ＝６のデータのみに変化があり、他のデータには変化がなかった場合を考える。この場合は、ＩＯ情報の中からＩＤ＝３とＩＤ＝６のデータのみが抽出（圧縮処理）され、これらがＰＣＩデータとしてＰＣＩバス３９に出力される。このとき、ヘッダとして、データ個数が２個で、データＩＤ番号が３，６であるという情報もＰＣＩバス３９経由でコアボード４０に送られる。
【００９１】
コアボード４０側では、ＰＣＩバス３９を通じてマザーボード３０から送られてきたデータを、ヘッダを解読することにより、フルスペックのＩＯ情報のテーブルの所定の位置に格納する処理（解凍処理）が行われる。このような処理により、最小限のデータ個数の送信で、ＰＣＩバス３９の通信負荷を軽減することができる。
（３）ボード間通信同期方法
次に、コアボード４０からマザーボード３０への割込み信号、及びマザーボード３０からコアボード４０への同期信号ラインを利用することにより、タイムロスを極力抑えることができるボード間の通信同期方法について説明する。
（３−１）マザーボード−コアボード間の同期処理方法
図１８は、コアボード４０側の処理のメインルーチン、及び、マザーボード３０側のコアボード４０からの割込み要求による処理（ＩＯ操作と演算の混在処理）のルーチンを示すものである。
【００９２】
コアボード４０のメインルーチンでは、まず、ステップ１８０１においてエンジン制御アプリの基準時間をタイマ値ｔｉｍｅとして取得する。次のステップ１８０２では、前回の時刻ｔｉｍｅｏと今回の時刻ｔｉｍｅとの時間間隔を求め、この時間間隔が１ｍｓより大きいか否かを判定する。時間間隔が１ｍｓ以下の場合はステップ１８０５に進むが、時間間隔が１ｍｓを越えた場合はステップ１８０３において時間同期割込みフラグをセットし、前回時刻ｔｉｍｅｏに１ｍｓを加えた時刻を新たな前回時刻ｔｉｍｅｏとしてステップ１８０５に進む。この処理は、前回時刻ｔｉｍｅｏに累積誤差が発生しないようにするためのものである。
【００９３】
ステップ１８０５では、前回の時刻ｔｉｍｅｏと今回の時刻ｔｉｍｅとの時間間隔が０．９ｍｓ未満か否かを判定し、時間間隔が０．９ｍｓ以上の場合はステップ１８０１に戻り、時間間隔が０．９ｍｓ未満の場合はステップ１８０６に進む。この処理は、時間同期タイミングを確保するためのものであり、時間同期タイミング発生前の０．１ｍｓはマザーボード３０とコアボード４０との間の通信を禁止するものである。この禁止区間に発生した他の割込み要因は、その後に発生する時間同期タイミングで合わせてマザーボード側に送信される。
【００９４】
ステップ１８０６では入力情報をＰＣＩバス３９にセットし、セット後に割込みフラグ情報とラッチデータを無条件にクリアする。この処理は、ハンドシェークの通信を実現する際に、データの取りこぼしがないようにするためである。次のステップ１８０７では割込みフラグの値が全て０（割込みフラグがある時はフラグ値が１）であるか否かを判定する。そして、割込みフラグの値が全て０の場合（割込みフラグが存在しない場合）は、マザーボード３０側の処理も発生しないため、マザーボード３０とコアボード４０間の通信の必要がなく、ステップ１８０１に戻る。一方、ステップ１８０７で割込みフラグが１つでもあると判定した場合はステップ１８０８に進む。ステップ１８０８ではマザーボード３０への割込み要求を行う。
【００９５】
ステップ１８０８でマザーボード３０への割込み要求を行った後は、ステップ１８０９においてマザーボード３０からの出力要求があるか否かを判定する。出力要求がない場合は、マザーボード３０からの出力要求があるまで待ち、出力要求がえられた時にステップ１８１０に進む。ステップ１８１０ではＰＣＩバス３９を経由してＰＣＩメモリ３９Ｍに入力されたデータの確定をチェックする。この確定処理は、マザーボード３０側でＰＣＩデータを設定後、データ確定までには遅延時間があるために必要となるものである。次のステップ１８１１で出力情報をＦＰＧＡにセットしてステップ１８０１に戻り、このルーチンを繰り返す。
【００９６】
一方、マザーボード３０側では、コアボード４０側からの割込み要求があるとＩＯ操作と演算処理の混在処理が開始され、ステップ１８１２でＰＣＩバス３９から入力される入力情報の受信処理を行う。そして、次のステップ１８１３では入力情報を仮想レジスタ３８にセットし、ステップ１８１４では割込みフラグ情報に従ってアプリを起動する。ステップ１８１５ではＥＮＧ制御アプリ３１の処理を行い、処理が終わるとステップ１８１６で割込みフラグをクリアし、次のステップ１８１７では出力要求を仮想レジスタ３８より抽出し、ステップ１８１８でＰＣＩ送信処理を行う。そして、ステップ１８１９でコアボード４０側へ出力要求を発行してこのルーチンを終了する。
【００９７】
以上の処理において、時間同期タイミングは、コアボード３０で生成し、割込みフラグ情報に加えられる。また、同一サンプリングタイミングで複数のフラグが立った場合は、各優先度に応じて、マザーボード３０で調停する。なお、図１８には、マザーボード３０におけるの演算のみの処理ルーチンの記述は、コアボード４０側の状態に関係がないので省略した。
【００９８】
図１９は、サンプリング区間に何らかの割込みイベントが発生した場合の、図１８に示した処理のタイムチャートである。サンプリング区間に発生した割込みイベント（キャプチャ割込み、コンペア一致割込み、受信割込み等）は、次のサンプリング区間の処理に反映される。また、割込みイベント情報は、割込みフラグに反映され、入力情報としてコアボード４０からマザーボード３０に送信される。マザーボード３０では、割込みフラグ情報を元に各イベントに付随する処理が起動される。なお、サンプリング周期は、その区間でのＩＯ情報量、マザーボード３０の処理量により変動する。
【００９９】
図２０は、割込みイベントが途切れた場合の、図１８に示した処理のタイムチャートである。割込みイベントは、サンプリング区間に必ず発生するわけではなく、発生間隔が開くケースがある。割込みイベントがなければ、マザーボード３０のアプリ処理は行われないため、ＩＯ情報の通信をする必要もない。また、通信負荷を軽減するために割込みイベントが発生していない場合は、処理を行わない。
【０１００】
図２１は、時間同期イベントが発生した場合の図１８に示した処理のタイムチャートである。一旦、通信を開始すると約１００μｓは、次の処理を行えないため、その間に時間同期イベントが発生した場合、時間同期のタイミングがずれてしまう可能性がある。そこで、時間同期イベントのタイミングを遵守するため、時間同期の割込みイベントが発生する１００μｓ前の区間を、通信開始禁止区間としている。その間に発生した割込みイベントは、直後の時間同期イベント情報送信時に反映される。
（３−２）複数コアボードによる処理分散方法
図２２は本発明のマイコンのロジック開発装置２０におけるマザーボード３０とコアボード４０間の同期処理において、複数のコアボード４０を用いて同期処理を行う場合のデータの流れを示すものである。複数コアボード４０を使用することにより、ＩＯデータの拡張性を向上させることができると共に、処理時間の短縮を図ることができる。また、複数コアボード４０のそれぞれで、ＩＯ操作を並列処理することにより、処理負荷の分散を行うことができる。この実施例ではＮ枚のコアボード４０−１〜４０−Ｎが並列に、ＰＣＩバス３９を介してマザーボード３０に接続されている。また、この実施例では、Ｎ枚目のコアボード４０−Ｎに入力されるＰＣＩデータ中に、マザーボード３０の処理完了を確認するためのデータが含まれている。
（３−３）複数コアボードによるＰＣＩ通信方法
図２３は、本発明のマイコンのロジック開発装置２０におけるマザーボード３０とコアボード４０間の同期処理において、複数のコアボード４０を用いた場合のＰＣＩ通信方法を説明するものである。
【０１０１】
図６で説明した１枚のコアボード４０を用いたＰＣＩ通信方法では、マザーボード３０におけるアプリ処理が終了した後に出力要求を確定させ、これをＰＣＩバス３９経由で１枚のコアボード４０に書き込んでＩＯ操作を行っていた。これに対して、図２３のＮ枚のコアボード４０−１〜４０−Ｎを用いたＰＣＩ通信方法では、マザーボード３０におけるアプリ処理が終了した後に、出力要求を第１から第Ｎのコアボード４０−１〜４０−Ｎに分けて確定させ、これをＰＣＩバス３９経由でＮ枚のコアボード４０に書き込んでＩＯ操作を行う。マザーボード３０側の処理完了は、第Ｎ枚目のコアボード４０−Ｎへの出力要求の確定によって全コアボードへの出力要求が確定したと判定する。
【０１０２】
第Ｎ枚目のコアボード４０−Ｎへの出力要求の確定によってマザーボード３０側の処理完了を確認後、コアボードにおける処理開始信号が発行され、複数のコアボード４０−１〜４０−Ｎにより、ＩＯ操作の並行処理を行う。各コアボードからはＩＯ操作終了時点で処理完了信号が発行される。そして、第１枚目のコアボード４０−１の処理完了信号から第Ｎ枚目のコアボード４０−Ｎまでの処理完了信号の論理積（ＡＮＤ）をハード的に取り、全コアボードの処理が完了したことが確認されると、マザーボード３０への割込み信号が発行される。
（３−４）複数コアボードの同期方法
図２４は、本発明のマイコンのロジック開発装置２０におけるマザーボード３０とコアボード４０間の同期処理における、同期信号制御を示すタイミングチャートである。この実施例では、第１から第３の、３枚のコアボードが使用されている。
【０１０３】
第１から第３のコアボードの出力処理が終了すると、それぞれの処理終了時点で各ボードの処理完了信号がアクティブ（ハイレベル）になる。そして、全てのコアボードの処理完了信号がアクティブになると、全処理完了信号がアクティブになる。全処理完了信号がアクティブになった時点で、各コアボードは次の処理（入力処理）に移行する。各コアボードの入力処理が開始されると、第１から第３のコアボードの処理完了信号、及び全処理完了信号がリセットされてローレベルになる。
【０１０４】
一方、第１から第３のコアボードの入力処理が終了すると、同様にそれぞれの処理終了時点で各ボードの処理完了信号がアクティブ（ハイレベル）になる。そして、全てのコアボードの処理完了信号がアクティブになると、全処理完了信号がアクティブになる。全処理完了信号がアクティブになった時点で、各コアボードは割込みイベント集約信号があるか否かを確認する。そして、割込みイベントなしの場合は、再度入力処理を開始し、この動作を繰り返す。各コアボードの入力処理が開始されると、同様に第１から第３のコアボードの処理完了信号、及び全処理完了信号がリセットされてローレベルになる。
【０１０５】
また、第１から第３のコアボードの何れかに割込みイベントがあった場合は、その時点で割込みイベント集約信号（各ボード信号の論理和（ＯＲ））がアクティブになる。そして、全てのコアボードの処理完了信号がアクティブになった時点で、各コアボードは割込みイベント集約信号がアクティブであるか否かを確認する。割込みイベント集約信号がアクティブの時は割込みイベントがあった場合であり、マザーボード３０への割込み要求を発行する。
（４）アプリ処理単位の分割によるＩＯ処理サイクルの短縮方法
（４−１）アプリ処理分割による処理サイクルの短縮方法
アプリ処理単位が大きい場合、図２５に示すように、アプリ処理単位を分割することで処理サイクルを短くすることができる。この時、単にアプリ処理単位を分割したのでは、ＩＯ操作における処理時間は短縮されないが、図２５のようにアプリ処理を高優先度のアプリ処理と低優先度のアプリ処理とに分けると、優先度の高いＩＯ操作を早い時点でコアボード４０において実行することができるので、実際の処理に関係する重要なＩＯ操作を早い時点で実行することができる。この結果、処理サイクルを短く抑えることができ、ＩＯ情報が反映されるまでの時間が短くなり、応答性が向上する。
（４−２）アプリ処理分割の割込みコントロール方法
エンジン制御ＥＣＵ１では、ＩＯ操作と演算処理が混在するブロックは前述のように時間同期処理と非時間系処理の２つに分けられる。更に、非時間系処理の中で規模が大きい処理は、エンジン回転信号によるクランク同期処理である。そこで、処理の規模が大きい時間同期処理とクランク同期処理は、複数の優先度に分割して処理を行うようにする。
【０１０６】
この場合の処理分割対象の割込みイベントの割込みフラグ構成は、処理分割を行う時間同期処理とクランク同期処理については、１つの割込みイベントに対して、複数の割込みフラグを用意する。例えば、時間同期割込みフラグを２ビット構成とし、高優先度用フラグと低優先度用フラグの２つのフラグから構成すると共に、クランク同期割込みフラグについても２ビット構成で、高優先度用フラグと低優先度用フラグの２つのフラグから構成する。
【０１０７】
この例を、図２５の下側に記載したアプリ処理単位を分割することで処理サイクルと同様の処理サイクルを記載した図２６を用いて説明する。
【０１０８】
図２６において、コアボード４０の入力情報確定時に、時間同期イベントが発生したとすると、コアボード４０の内部にはフラグ“１”，“１”が立つ。このフラグは時間同期割込みフラグ“１”，“１”としてＰＣＩバス３９経由でマザーボード３０に入力情報として送られる。マザーボード３０に送信後、コアボード４０の内部データは、高優先度側より１つクリアされ、ＰＣＩデータが“１”，“１”、コアボードの内部フラグが“１”，“１”から“０”，“１”に変化する。
【０１０９】
マザーボード３０側では、ＰＣＩバス３０経由で取得した入力情報に基づき、高優先度側より割込み処理を起動し、起動したフラグをクリアする。マザーボード３０の内部データは、高優先度側より１つクリアされ、ＰＣＩデータが“１”，“１”、マザーボードの内部フラグが“１”，“１”から“０”，“１”に変化する。この後の処理サイクルの動作は図２５における処理サイクルの動作と全く同じである。
【０１１０】
次のコアボード４０の入力情報確定時には、入力情報をマザーボード３０に送信後、コアボード４０の内部データは、高優先度側より１つクリアされ、ＰＣＩデータが“０”，“１”、コアボードの内部フラグが“０”，“１”から“０”，“０”に変化する。このようにして時間同期割込み要求が完了すると、次回のイベント発生まで、時間同期割込み要求は発生しない。
【０１１１】
マザーボード３０側では、ＰＣＩバス３０経由で取得した入力情報に基づき、高優先度側より割込み処理を起動し、起動したフラグをクリアする。マザーボード３０の内部データは、高優先度側より１つクリアされ、ＰＣＩデータが“０”，“１”、マザーボードの内部フラグが“０”，“１”から“０”，“０”に変化する。
【０１１２】
このように、高優先度割込みフラグが１ビット分クリアされても、低優先度フラグは立った状態のため、次回処理タイミングでコアボード４０からマザーボード３０への割込み要求は発生する。この後、時間同期の低優先度処理が実施されると、低優先度フラグがクリアされる。この結果、時間同期割込みフラグは全てクリアされ、次回処理タイミングで時間同期の割込み要求は発生しない。
【０１１３】
次に、時間同期割込みを高優先度処理（高）と低優先度処理（低）に分割し、クランク同期割込みを高優先度処理（高）と低優先度処理（低）に分割し、更に、或る割込み処理Ａに対しては処理分割を行わない処理分割対象外とし、これらの処理の優先度を、「時間同期割込み（高）」＞「クランク同期割込み（高）」＞「クランク同期割込み（低）」＞「時間同期割込み（低）」とした時の、マザーボード３０内のＩＯドライバ３０Ｄの割込みコントロール処理の手順の一例を図２７のフローチャートに示す。
【０１１４】
ステップ２７０１では、処理分割対象処理実施済フラグＸＩＮＨを、処理分割対象処理が実施されていないことを示すＯＦＦにする。次のステップ２７０２では、時間同期割込み（高）フラグが有るか否かを判定し、このフラグが有る場合にはステップ２７０３から２７０５の処理を行う。ステップ２７０３では時間同期割込み（高）フラグをクリアし、ステップ２７０４では処理分割対象処理実施済フラグＸＩＮＨを、処理分割対象処理が実施されたことを示すＯＮにする。そして、ステップ２７０５において時間同期割込み（高）ルーチンを起動してステップ２７０６に進む。一方、ステップ２７０２で時間同期割込み（高）フラグがないと判定された場合は、ステップ２７０３〜２７０５の処理を行わずにステップ２７０６に進む。
【０１１５】
ステップ２７０６ではクランク同期割込み（高）フラグが有るか否かを判定し、このフラグが有る場合にはステップ２７０８に進んで処理分割対象処理実施済フラグＸＩＮＨがＯＦＦか否かを判定する。処理分割対象処理実施済フラグＸＩＮＨは、時間同期割込み（高）ルーチンが起動されている時は、ステップ２７０４でＯＮにされているので、ステップ２７０９〜２７１１の処理は行わずにステップ２７１２に進む。また、ステップ２７０６でクランク同期割込み（高）フラグがないと判定された場合もステップ２７１２に進む。
【０１１６】
ステップ２７１２では、割込み処理Ａのフラグがあるか否かを判定し、フラグがない場合にはステップ２７１５に進むが、フラグが有る場合にはステップ２７１３に進む。ステップ２７１３では割込み処理Ａのフラグをクリアし、ステップ２７１４で割込み処理Ａのルーチンを起動してステップ２７１５に進む。前述のように、割込み処理Ａは処理分割対象外であるので、時間同期割込み（高）ルーチンが起動されていても起動される。
【０１１７】
ステップ２７１５ではクランク同期割込み（低）フラグが有るか否かを判定するが、このフラグが有る場合でもステップ２７１６の判定で処理分割対象処理実施済フラグＸＩＮＨがＯＮと判定されるのでステップ２７２０に進み、ステップ２７１７〜２７１９の処理は行われない。また、ステップ２７１５でクランク同期割込み（低）フラグがないと判定された場合もステップ２７２０に進む。
【０１１８】
ステップ２７２０では時間同期割込み（低）フラグが有るか否かを判定するが、このフラグが有る場合でもステップ２７２１の判定で処理分割対象処理実施済フラグＸＩＮＨがＯＮと判定されるので、ステップ２７２２とステップ２７２３の処理は行われずにこのルーチンを終了する。また、ステップ２７２０で時間同期割込み（低）フラグがないと判定された場合もこのルーチンを終了する。
【０１１９】
このように、クランク同期割込み（高）処理、クランク同期割込み（低）処理、及び時間同期割込み（低）処理は、これより優先度の高い処理が起動されている時には実行されない。
【０１２０】
クランク同期割込み（高）処理が起動されるのは、ステップ２７０１で処理分割対象処理実施済フラグＸＩＮＨがＯＦＦにされた後にステップ２７０２で時間同期割込み（高）フラグがなかった場合（元々ない場合か、或いはステップ２７０４でフラグがクリアされた場合）である。この時はステップ２７０６からステップ２７０８に進み、ステップ２７０８の判定がイエスになるのでステップ２７０９〜ステップ２７１１の処理を行う。ステップ２７０９ではクランク同期割込み（高）フラグをクリアし、ステップ２７１０では処理分割対象処理実施済フラグＸＩＮＨをＯＮにし、そして、ステップ２７１１においてクランク同期割込み（高）ルーチンを起動してステップ２７１２に進む。このように、クランク同期割込み（高）ルーチンを起動した後は、再びステップ２７０１が行われるまでは、クランク同期割込み（低）処理と時間同期割込み（低）処理は行わない。
【０１２１】
クランク同期割込み（低）処理が起動されるのは、ステップ２７０１で処理分割対象処理実施済フラグＸＩＮＨがＯＦＦにされた後にステップ２７０２で時間同期割込み（高）フラグがなく、ステップ２７０６でクランク同期割込み（高）フラグがなかった場合である。この時はステップ２７１５からステップ２７１６に進み、ステップ２７１６の判定がイエスになるのでステップ２７１７〜ステップ２７１９の処理を行う。ステップ２７１７ではクランク同期割込み（低）フラグをクリアし、ステップ２７１８では処理分割対象処理実施済フラグＸＩＮＨをＯＮにし、そして、ステップ２７１９においてクランク同期割込み（低）ルーチンを起動してステップ２７２０に進む。このように、クランク同期割込み（低）ルーチンを起動した後は、再びステップ２７０１が行われるまでは、時間同期割込み（低）処理は行わない。
【０１２２】
時間同期割込み（低）処理が起動されるのは、ステップ２７０１で処理分割対象処理実施済フラグＸＩＮＨがＯＦＦにされた後にステップ２７０２で時間同期割込み（高）フラグがなく、ステップ２７０６でクランク同期割込み（高）フラグがなく、ステップ２７１５でクランク同期割込み（低）フラグがなかった場合である。この時はステップ２７２０からステップ２７２１に進み、ステップ２７２１の判定がイエスになるのでステップ２７２２とステップ２７２３の処理を行う。ステップ２７２２では時間同期割込み（低）フラグをクリアし、ステップ２７２３において時間同期割込み（低）ルーチンを起動してこのルーチンを終了する。
【０１２３】
なお、以上説明した実施例では、本発明のマイコンのロジック開発装置を用いて開発する電子制御機器として、電子制御式エンジンを説明したが、本発明は、その他の電子制御機器用の組込み用マイコンの開発にも有効に適用できる。更に、本発明のマイコンのロジック開発装置は、次期マイコンの開発に加えて、新規なマイコンの開発にも有効に適用することができる。更に、本発明のマイコンのロジック開発装置は、マザーボードのメモリに記憶するプログラムの変更、コアボードに実装する疑似マイコン周辺を用途に応じて増減することにより、異なるマイコンの開発に対して、繰り返し使用することができる。
【０１２４】
【発明の効果】
以上説明したように、本発明のマイコンのロジック開発装置によれば、ロジックの開発に伴う課題が解消され、マザーボードとコアボード間におけるＩＯ情報の確実な通信を実現できると共に、ＩＯ情報通信のスピードを向上させること、及び、マザーボードとコアボードの演算処理能力の向上を図ることができて、より高性能のエンジン制御システムに対応することが可能なマイコンのロジック開発装置を提供することができるという効果がある。また、本発明のマイコンのロジック開発装置は、マイコンの開発に当たって繰り返し利用することが可能であるので、開発コストを低減することができるという効果もある。
【図面の簡単な説明】
【図１】本発明の背景となる電子制御式エンジンの制御システムにおけるＥＣＵの構成を示すシステム構成図である。
【図２】図１のＥＣＵのロジックを開発する場合における本発明のマイコンのロジック開発装置の全体構成を示す説明図である。
【図３】本発明のマイコンのロジック開発装置のシステム構成を従来の電子機器制御用のＥＣＵの構成と比較して示すブロック構成図である。
【図４】図３のマザーボードとコアボードの内部構成の一実施例を示すブロック構成図である。
【図５】本発明のマイコンのロジック開発装置のマザーボードとコアボードのソフト構成、及びＩＦボードのハード構成を示す構成図である。
【図６】ＩＯ操作と演算の混在ソフトの処理方法を示すタイミングチャートである。
【図７】図６のマザーボードにおける入力情報の取得、アプリ処理、及び出力要求の確定の詳細を示すソフト構成図である。
【図８】ＩＯ処理と演算処理が混在する処理と演算処理のみの内容を比較して示す比較図である。
【図９】本発明のマイコンのロジック開発装置におけるマザーボードとコアボードの間のＩＯ操作と演算の混在ソフトの処理方法の、ＩＯ処理完了待ち時間を利用して演算のみの処理を実施する方法を示すタイミングチャートである。
【図１０】本発明のマイコンのロジック開発装置におけるマザーボードとコアボードのソフトの全体構成を示す説明図である。
【図１１】本発明のマイコンのロジック開発装置におけるマザーボードの、ＩＯ操作と演算処理が混在するブロックと演算処理のみのブロックの、優先度を説明する図である。
【図１２】図１１で説明した優先度に基づいた、マザーボードとコアボードの間の通信方法のタイミングチャートである。
【図１３】（ａ）はＰＣＩデータの破壊防止を実施するための構成を示すず、（ｂ）は本発明のマイコンのロジック開発装置におけるＰＣＩバスの通信内容を説明するフローチャートである。
【図１４】ＰＣＩ通信方法における、ＰＣＩデータの破壊防止方法を説明する説明図である。
【図１５】図１４で説明したＰＣＩ通信方法における、ＰＣＩメモリ上のデータ確定の確認方法の手順を示すフローチャートである。
【図１６】ＰＣＩ通信方法における、ＰＣＩ通信負荷の低減方法を説明する説明図である。
【図１７】ＰＣＩデータの圧縮・解凍方法を説明する説明図である。
【図１８】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理を説明するフローチャートである。
【図１９】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理において、サンプリング期間に何らかの割り込みイベントが発生した場合のタイミングチャートである。
【図２０】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理において、割り込みイベントが途切れた場合のタイミングチャートである。
【図２１】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理において、時間同期イベントが発生した場合のタイミングチャートである。
【図２２】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理において、複数のコアボードを用いて同期処理を行う場合のデータの流れを示す説明図である。
【図２３】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理において、複数のコアボードを用いた場合のＰＣＩ通信方法を説明する説明図である。
【図２４】本発明のマイコンのロジック開発装置におけるマザーボードとコアボード間の同期処理における、同期信号制御を示すタイミングチャートである。
【図２５】本発明のマイコンのロジック開発装置において、アプリ処理単位が大きい場合に、アプリ処理を分割する際の分割処理の方法を説明する図である。
【図２６】図２５の分割処理方法における、割込みコントロール方法を説明する説明図である。
【図２７】本発明のマイコンのロジック開発装置における割込みコントローラの処理を説明するフローチャートである。
【符号の説明】
１…ＥＣＵ
２…組込み用マイコン
７…内部タイマ
８…割り込みコントローラ
９…メモリ
１０…ＣＰＵ
１１…内部バス
２０…本発明のロジック開発装置
２８…ＥＣＵ入力回路
２９…ＥＣＵコネクタ
３０…マザーボード
３０Ｄ…ＩＯドライバ
３１…ソフトウエア（エンジン制御アプリ）
３２…ＰＣＩ通信ソフトウエア
３３…ＣＰＵ
３４…仮想割り込みコントローラ
３５…内部タイマ
３６…ＰＣＩバスインタフェース
３７…内部バス
３８…仮想Ｉ／Ｏレジスタ
３９…ＰＣＵバス
３９Ｍ…ＰＣＩメモリ
４０…コアボード
４０Ｄ…ＩＯドライバ
４１…ＰＣＩ通信ソフト
４２…疑似マイコン装置（ＦＰＧＡ）
４３…内部バス
４４…ＰＣＩバスインタフェース
４５…ＣＰＵ
４６…共有メモリ
４７…内部メモリ
５０…ＩＦボード
【図１】
2004013626.tif 000003
【図２】
2004013626.tif 000004
【図３】
2004013626.tif 000005
【図４】
2004013626.tif 000006
【図５】
2004013626.tif 000007
【図６】
2004013626.tif 000008
【図７】
2004013626.tif 000009
【図８】
2004013626.tif 000010
【図９】
2004013626.tif 000011
【図１０】
2004013626.tif 000012
【図１１】
2004013626.tif 000013
【図１２】
2004013626.tif 000014
【図１３】
2004013626.tif 000015
【図１４】
2004013626.tif 000016
【図１５】
2004013626.tif 000017
【図１６】
2004013626.tif 000018
【図１７】
2004013626.tif 000019
【図１８】
2004013626.tif 000020
【図１９】
2004013626.tif 000021
【図２０】
2004013626.tif 000022
【図２１】
2004013626.tif 000023
【図２２】
2004013626.tif 000024
【図２３】
2004013626.tif 000025
【図２４】
2004013626.tif 000026
【図２５】
2004013626.tif 000027
【図２６】
2004013626.tif 000028
【図２７】
2004013626.tif 000029