(57)【特許請求の範囲】
【請求項１】
電子制御ユニットに組み込まれて使用される組込み用マイコンのロジックを開発する装置であって、
前記ロジック処理を行う第１の中央処理装置、前記ロジックのプログラムを含むデータを記憶する第１のメモリ、外部との通信を行う第１のインタフェース、及びこれらを接続する第１の内部バスとを少なくとも備えた第１のブロックと、
マイコンの周辺装置を疑似的にソフトウエアで実現する疑似マイコン周辺装置、外部との通信を行う第２のインタフェース、及びこれらを接続する第２の内部バスとを少なくとも備えた第２のブロックと、
前記第１と第２のブロックを接続するインタフェースバスとを備え、
前記第２のブロックに、前記第２のインタフェースに接続され、前記インタフェースバスによる通信を行うための第２の中央処理装置と、少なくとも前記通信に用いるデータを記憶する第２のメモリとが設けられ、
前記第１のメモリには、所定時間毎に実行される時間系処理アプリケーションと、所定の事象の発生毎に時間に関係なく実行される非時間系処理アプリケーションからなる制御用アプリケーションが備えられており、
前記第１の中央処理装置には、少なくとも時間系割り込み処理と非時間系割り込み処理とを行う仮想割り込みコントローラ機能が備えられており、
前記第１のインタフェースには、少なくともデータ及び割り込み事象の情報を前記インタフェースバスを通じて送受信する通信ソフトが備えられており、
前記第２の中央処理装置は、前記第２のメモリと前記第２のインタフェースを使用して前記第１のインタフェースと、前記インタフェースバスを通じて割り込み事象とデータの授受に関する通信を行い、
前記疑似マイコン周辺装置には、入力機能と出力機能が備えられ、
これら第１と第２のブロック及びインタフェースバスによって、前記組込み用マイコンに置き換えて前記ロジックを動作させるようにしたことを特徴とするマイコンのロジック開発装置。
【請求項２】
前記被制御対象の制御情況を実現するために、前記擬似マイコン周辺装置の動作タイミングを制御し補正する補正手段を、前記第２ブロックが備えることを特徴とする請求項１に記載のマイコンのロジック開発装置。
【請求項３】
前記被制御対象の制御情況を実現するために、前記擬似マイコン周辺装置から取得した割り込み処理を前記第１のブロックに要求し、前期割り込み処理を前記第１の中央処理装置で行わせる割込み制御手段を前記第１又は第２のブロックの少なくとも一方が備え、
前記組込み用マイコンに置き換えて前記ロジックを動作させるようにしたことを特徴とする請求項１に記載のマイコンのロジック開発装置。
【請求項４】
更に、入出力回路が実装された第３のブロックを備え、この第３のブロックが前記第２のブロックに接続された状態で、前記電子制御ユニットに置き換えて使用できるようにしたことを特徴とする請求項１から３の何れか１項に記載のマイコンのロジック開発装置。
【請求項５】
前記第１のブロックに、第１のタイマが設けられていることを特徴とする請求項１から４の何れか１項に記載のマイコンのロジック開発装置。
【請求項６】
前記第２のメモリが、前記インタフェースバスに接続する共有メモリと、前記第２の内部バスに接続する内部メモリから構成されることを特徴とする請求項４から５の何れか１項に記載のマイコンのロジック開発装置。
【請求項７】
前記第２のブロックにおいて、前記疑似マイコン周辺装置が追加可能に構成されていることを特徴とする請求項１から６の何れか１項に記載のマイコンのロジック開発装置。
【請求項８】
前記第２のブロックに、時間管理を行う第２のタイマが更に設けられていることを特徴とする請求項１から７の何れか１項に記載のマイコンのロジック開発装置。
【請求項９】
前記入力機能が、入力ポート、ラッチポート、Ａ／Ｄ変換、及びキャプチャであり、前記出力機能が、出力ポート、パルス出力、コンペア、シリアルであることを特徴とする、請求項８に記載のマイコンのロジック開発装置。
【請求項１０】
前記第２のメモリに、前記インタフェースバスに接続する共有メモリが設けられており、
前記疑似マイコン周辺装置は、この共有メモリと前記インタフェースバスとを通じて、前記第１のメモリの時間系処理アプリケーションと非時間系処理アプリケーションとの間でデータの遣り取りを行うことを特徴とする請求項９に記載のマイコンのロジック開発装置。
【請求項１１】
前記共有メモリに通信同期カウンタが設けられており、この通信同期カウンタにより、前記疑似マイコン周辺装置と前記非時間系処理アプリケーションとの間のデータの遣り取りの同期をとることを特徴とする請求項１０に記載のマイコンのロジック開発装置。
【請求項１２】
前記疑似マイコン周辺装置の処理起動タイミングを、所定のサンプリング周期で固定することなく任意とし、前記第１のブロックにおける前記非時間系処理アプリケーションの処理の終了をもって前記疑似マイコン周辺装置の次の処理起動タイミングとしたことを特徴とする請求項１０又は１１に記載のマイコンのロジック開発装置。
【請求項１３】
前記疑似マイコン周辺装置の処理起動タイミングから、前記第１のブロックにおける前記非時間系処理アプリケーションの処理の終了までの時間が、予め定められた判定時間を越えた場合は、強制的に前記疑似マイコン周辺装置の処理の起動を行うことを特徴とする請求項１２に記載のマイコンのロジック開発装置。
【請求項１４】
前記疑似マイコン周辺装置で発生した割り込み事象を前記インタフェースバスを通じて前記第１のブロックに伝達して、前記非時間系処理アプリケーションの処理を行わせ、前記非時間系処理アプリケーションの処理の終了をもって前記疑似マイコン周辺装置の次の処理起動タイミングとしたことを特徴とする請求項１２又は１３に記載のマイコンのロジック開発装置。
【請求項１５】
前記非時間系処理アプリケーション側で、前記疑似マイコン周辺装置で発生する割り込み事象に優先順位を設定しておき、前記インタフェースバスを通じて前記第１のブロックに伝達された前記割り込み事象を、前記優先順位に従って前記非時間系処理アプリケーションが処理することを特徴とする請求項１２から１４の何れか１項に記載のマイコンのロジック開発装置。
【請求項１６】
前記疑似マイコン周辺装置で発生する割り込み事象が何もない場合、前記インタフェースバスを通じた前記第１のブロックへの情報の伝達を省略するようにしたことを特徴とする請求項１２から１５の何れか１項に記載のマイコンのロジック開発装置。
【請求項１７】
前記非時間系処理において、タイマ値取得要求時には、前記インタフェースバスにて取得した前記第２のタイマで生成されたタイマ値を、前記第１のブロック内にある第１のタイマからのタイマ値で補正することを特徴とする請求項１２から１６の何れか１項に記載のマイコンのロジック開発装置。
【請求項１８】
前記第２のブロックからの割り込み要求により、前記制御用アプリケーションにおいて前記出力機能におけるコンペア機能を使用したパルス出力要求を前記第２のブロックに出力する場合に、前記制御用アプリケーションからは、前記コンペア機能の出力端子に設けられた一般出力ポート機能を選択して即時出力を行うイミディエート出力と、前記コンペア機能の出力端子に設けられたコンペア出力機能を選択し、出力時刻、出力レベルを設定して出力予約を行うタイムド出力の、少なくとも一方を出力することを特徴とする請求項９に記載のマイコンのロジック開発装置。
【請求項１９】
前記制御用アプリケーションからの、前記イミディエート出力、或いは、タイムド出力に対して、これらの出力に何れの組み合わせに対しても、前記第２のブロックにおける前記疑似マイコン周辺装置が対応できるようにしたことを特徴とする請求項１８に記載のマイコンのロジック開発装置。
【請求項２０】
前記制御用アプリケーションからの、前記イミディエート出力、或いは、タイムド出力が、前記インタフェースバスを通じて前記第２のブロックに伝達される際の、前記インタフェースバスを経由することによる、前記出力要求から実際の出力までの遅れ時間を補正するようにしたことを特徴とする請求項１９に記載のマイコンのロジック開発装置。
【請求項２１】
前記出力要求から実際の出力までの遅れ時間の補正が必要であるか、必要でないかを信号の種類に応じて判定し、補正が必要な種類の信号の場合のみ、前記補正を実行することを特徴とする請求項２０に記載のマイコンのロジック開発装置。
【請求項２２】
前記第１から第３のブロックがそれぞれ汎用のボードから構成されていることを特徴とする請求項４から２１の何れか１項に記載のマイコンのロジック開発装置。
【請求項２３】
前記マイコンが、内燃機関制御用のものであることを特徴とする請求項１から２２の何れか１項に記載のマイコンのロジック開発装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイコンのロジック開発装置に関し、特に、電子制御機器に組み込まれて使用されている組込み用マイコンにおけるロジックを開発するための装置に関する。
【０００２】
【従来の技術】
従来、電子制御機器の制御、例えば、ＥＣＵ（電子制御ユニット）によって制御されるエンジンの制御は、排気ガス規制等の法規要求、及びマイクロコンピュータ（以後マイコンと記す）の性能向上に応じた性能向上を図るため、年々改良を加える必要があり、現状のＥＣＵの性能に先行して新しいロジックが開発されているのが現状である。このため、先行ロジックは、性能向上が見込まれる次期マイコンがターゲットとなることが多い。また、先行ロジックに必要とされる性能から性能の向上した次期マイコンの選定が行われる。
【０００３】
【発明が解決しようとする課題】
しかしながら、性能の向上した次期マイコンを組み込んだＥＣＵは実在しないため、前述の先行ロジックは、多くの場合は現状のマイコンをベースにして開発が行われる。
【０００４】
ところが、現状のマイコンを組み込んだＥＣＵを用いて先行ロジックの開発を行う場合には、以下のような問題点があった。
（１）マイコンのＣＰＵの処理能力が不足している。
（２）マイコンのメモリの容量が足りない。
（３）周辺リソースが足りない。
（４）次期ＥＣＵを開発して製作する迄に時間がかかる。
【０００５】
そして、このような問題点の存在により、次期マイコンの開発が遅れ、この次期マイコンを組み込んだＥＣＵに制御される電子制御機器の新製品の開発に支障をきたしていた。
【０００６】
なお、現状の電子制御機器に組み込まれる組込み用マイコンは、電子制御機器のコストを低く抑えるために、現状のシステムに最適な仕様でＣＰＵ性能、及び周辺機能が選択されており、また、ＣＰＵやマイコン周辺リソースが１つのパッケージの中に組み込まれているため、それぞれの機能変更はマイコンを変更しない限り、不可能である。また、組込み用マイコンのロジックの開発を行うためには、ＣＰＵ機能に対しては先行ロジックを処理するのに必要な処理性能が必要であり、マイコン周辺リソースには先行システムに合わせたリソースを確保する必要があった。更に、新たなマイコンの開発を行う度に、マイコンに合わせてＥＣＵを製作する必要があった。
【０００７】
そこで、本発明は、このような先行ロジックの開発に伴う課題を解消し、ＣＰＵ機能に対しては先行ロジックを処理するために必要な処理性能を確保することができ、マイコン周辺リソースに対しては、先行システムに合わせたリソースを確保することができて、先行ロジックを実現することができる組込み用マイコンを短時間で開発することが可能であると共に、繰り返し利用することが可能なマイコンのロジック開発装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
前記目的を達成する本発明のマイコンのロジック開発装置は、電子制御ユニットに組み込まれて使用される組込み用マイコンのロジックを開発する装置であって、ロジック処理を行う第１の中央処理装置、ロジックのプログラムを含むデータを記憶する第１のメモリ、外部との通信を行う第１のインタフェース、及びこれらを接続する第１の内部バスとを少なくとも備えた第１のブロックと、
マイコンの周辺装置を疑似的にソフトウエアで実現する疑似マイコン周辺装置、外部との通信を行う第２のインタフェース、及びこれらを接続する第２の内部バスとを少なくとも備えた第２のブロックと、
第１と第２のブロックを接続するインタフェースバスとを備え、
第２のブロックに、第２のインタフェースに接続され、インタフェースバスによる通信を行うための第２の中央処理装置と、少なくとも通信に用いるデータを記憶する第２のメモリとが設けられ、
第１のメモリには、所定時間毎に実行される時間系処理アプリケーションと、所定の事象の発生毎に時間に関係なく実行される非時間系処理アプリケーションからなる制御用アプリケーションが備えられており、
第１の中央処理装置には、少なくとも時間系割り込み処理と非時間系割り込み処理とを行う仮想割り込みコントローラ機能が備えられており、
第１のインタフェースには、少なくともデータ及び割り込み事象の情報をインタフェースバスを通じて送受信する通信ソフトが備えられており、
第２の中央処理装置は、第２のメモリと第２のインタフェースを使用して第１のインタフェースと、インタフェースバスを通じて割り込み事象とデータの授受に関する通信を行い、
疑似マイコン周辺装置には、入力機能と出力機能が備えられ、
これら第１と第２のブロック及びインタフェースバスによって、組込み用マイコンに置き換えてロジックを動作させるようにしたことを特徴としている。
【００２７】
以上のように構成された本発明のマイコンのロジック開発装置によれば、マイコンのロジックの開発に伴う課題が解消され、ＣＰＵ機能に対しては新規なロジックや次期ロジックを処理するために必要な処理性能を確保することができ、マイコン周辺リソースに対しては、新規システムや次期システムに合わせたリソースを確保することができて、新規ロジックや次期ロジックを実現することが可能な組込み用マイコンを短時間で開発することが可能となる。また、本発明のマイコンのロジック開発装置は、ロジックの開発に際して繰り返し利用することが可能であるので、開発コストを低減することができる。
【００２８】
【発明の実施の形態】
以下添付図面を用いて本発明の実施形態を具体的な実施例に基づいて詳細に説明するが、以下の実施例では、本発明を適用する電子制御機器として、電子制御式内燃機関（内燃機関は以下エンジンと記す）を説明する。
【００２９】
図１は従来の電子制御式エンジンの制御システムにおけるＥＣＵ（電子制御ユニット）１の構成を示すシステム構成図である。電子制御式エンジンでは、エンジン回転数信号や車速信号等のパルス入力、水温センサや吸気温センサ等からのアナログ入力、及びスタータスイッチ、電気負荷スイッチ、シフト位置スイッチやエアコン信号等のデジタル入力がＥＣＵ１に入力される。ＥＣＵ１は、これらの入力信号を処理する組込み用マイコン２と、組込み用マイコン２で処理された信号を増幅して出力するＥＣＵ入出力回路であるドライバ１６とを備えて構成される。このＥＣＵ１から出力されるのは、シフト制御ソレノイドやＶＶＴ（可変バルブタイミング）ソレノイドへのアナログ出力、点火信号や燃料の噴射信号等のパルス出力、ＩＳＣ（アイドル速度制御）用のパルス出力、及び、チェックエンジンランプ、メインリレーやエヤコンカット信号等のデジタル信号等である。
【００３０】
組込み用マイコン２は、演算処理を行うメモリ９とＣＰＵ１０、及び入出力（Ｉ／Ｏ）制御を行う周辺リソースが、１つのパッケージに収納されたものである。周辺リソースには、入力系のリソースと出力系のリソースとがある。図１には、入力系のリソースとして、デジタル信号を扱う入力ポート３とラッチポート４、アナログ入力を扱うＡ／Ｄコンバータ５、及びパルス入力を扱うキャプチャ６が示してあり、出力系のリソースとしては、デジタル出力を出力する出力ポート１２、パルス出力を出力するＰＷＭ（パルス幅変調器）１３とコンペア１４、及びアナログ出力を入出力するシリアル１５が示してある。これらの周辺リソースは内部バス１１によってメモリ９及びＣＰＵ１０に相互に接続されている。また、組込み用マイコン２の内部には、これらの周辺リソースに加えて、内部タイマ７や割り込みコントローラ８が設けられている。
【００３１】
電子制御式エンジンの制御システムでは、車両の運転状態を表す各センサやスイッチ類からの信号がＥＣＵ１に取り込まれる。ＥＣＵ１の入力回路では入力信号が信号処理され、組込み用マイコン２に入力される。入力された信号は前述の入力系の周辺リソースでＣＰＵ値に変換され、演算部であるメモリ９とＣＰＵ１０では入力信号から車両状態が検出され、車両状態に応じた出力要求信号が作られる。この出力要求信号は前述の出力系の周辺リソースで出力信号に変換され、組込み用マイコン２から出力される。ＥＣＵ１の入出力回路であるドライバ１６はこの出力信号に従って車両に装備された各アクチュエータを駆動し、この出力制御の結果が破線で示すように、車両からの入力信号に反映される。
【００３２】
図２は、図１で説明したＥＣＵ１の自動車（車両）１８への搭載位置を示すものである。ＥＣＵ１は車両１８のエンジン１９がマウントされるエンジンルームに搭載される。また、図２には、本発明のマイコンのロジック開発装置２０が示してある。本発明のマイコンのロジック開発装置２０は、この図に示すように、車両１８に搭載されたＥＣＵ１に接続するコネクタを外し、このコネクタに接続コード２０Ａによって直接接続して使用することができる。２１はマイコンのロジック開発装置２０の状態をモニタするための表示器、２２はマイコンのロジック開発装置２０の設定を変更するための入力装置であるキーボードである。
【００３３】
なお、本発明のマイコンのロジック開発装置２０は、このように車両１８に直接接続して使用することができる他に、パーソナルコンピュータ２４の制御によって動作して、車両の色々な運転状況を疑似的に発生することができる車両の運転状況発生装置２３に接続すれば、車両が無い状態でも、電子制御式エンジン用の組み込みマイコンのロジックを開発することができる。
【００３４】
図３は、図２のように接続して使用することができる、本発明のマイコンのロジック開発装置２０のシステム構成を、従来の電子制御式エンジン（電子制御機器）用のＥＣＵ１の構成と比較して示すものである。前述のように、ＥＣＵ１には、組込み用マイコン２と、ドライバ１６から構成されるＥＣＵ入出力回路２８があり、ＥＣＵコネクタ２９で車両側の電子機器と接続されている。また、組込み用マイコン２の中には、メモリ９に格納されていてＣＰＵ１０によって読み出されて使用されるソフトウエア（エンジン制御アプリケーション：図にはＥＮＧ制御アプリと記載）２５と、マイコン周辺リソース２６とがあり、内部バス１１で相互にデータの遣り取りができるようになっている。
【００３５】
一方、図２で説明したように、このＥＣＵ１に置き換えて使用する本発明のマイコンのロジック開発装置２０は、この実施例では、マザーボード３０、コアボード４０、及びＩＦボード５０の３つのボードから構成されている。マザーボード３０とコアボード４０がＥＣＵ１の組込み用マイコン２に対応するものであり、ＩＦボード５０がＥＣＵ１のＥＣＵ入出力回路２８に対応するものである。そして、マザーボード３０とコアボード４０とは、高速のバスインタフェースであるＰＣＩバス３９で接続されている。
【００３６】
マザーボード３０には、後述するメモリに格納されていてＣＰＵによって読み出されて使用されるソフトウエア（ＥＮＧ制御アプリ）３１と、ＰＣＩバス３９を通じて通信を行うためのＰＣＩ通信ソフトウエア（以後ソフトウエアはソフトと略記）３２が設けられている。ＰＣＩバス３９を用いたＰＣＩ通信処理は、疑似マイコン周辺リソース（以後周辺リソースは単に周辺と略記）４２と遣り取りするデータを、ＰＣＩバス３９に載せる通信処理である。このマザーボード３０には、次期のＥＣＵを開発するに当たっては、次期ＥＣＵの先行ロジックの開発に耐え得る演算性能、メモリ容量を備えさせることが重要である。
【００３７】
なお、現状のエンジン制御用のマイコンの性能は、ＣＰＵが６４ＭＨｚ、メモリが１Ｍバイト程度であるので、パソコン等に用いられている汎用のものを用いれば、十分すぎる性能であるといえ、長期間にわたって何度でも使用することが可能となる。
【００３８】
また、コアボード４０は、ＣＰＵとメモリを含み、前述のＰＣＩバス３９と通信を行うためのＰＣＩ通信ソフト４１と、組込み用マイコン２のマイコン周辺リソース２６に対応する疑似マイコン周辺（ＦＰＧＡ：Field Programmable Gate Array)４２とがあり、内部バス４３で相互にデータの遣り取りができるようになっている。ＩＦボード５０には、ＥＣＵ１のＥＣＵ入出力回路２８に対応するＥＣＵ入出力回路５１と、ＥＣＵコネクタ２９とが設けられている。ＥＣＵ入出力回路５１は、標準回路ブロック単位で独立させ、その組み合わせで構成し、入出力回路の変更に対して柔軟に対応できるようにする。
【００３９】
図４は、図３のマザーボード３０とコアボード４０の、ハードウエアの構成の一実施例を示すものである。マザーボード３０には、図３で説明したソフトウエア（ＥＮＧ制御アプリ）を記憶するための記憶容量が大きいメモリ３１、汎用の高性能のＣＰＵ（例えば、動作周波数が８５０ＭＨｚ）３３、内部タイマ３５、ＰＣＩバス３９に接続するＰＣＩバスインタフェース３６、及びこれらを相互に接続する内部バス３７がある。
【００４０】
コアボード４０には、ＰＣＩバス３９に接続するＰＣＩバスインタフェース４４、マザーボード３０に搭載されたＣＰＵ３３よりも低グレードのＣＰＵ４５、マイコン周辺の機能と同等の機能を実現する疑似マイコン周辺（ＦＰＧＡ）４２、内部バス４３、ＰＣＩバスに接続する共有メモリ４６、及び内部バス４３に接続する内部メモリ４７がある。また、コアボード４０に搭載するＣＰＵ４５は、ＰＣＩ通信処理を行うことができる程度の処理能力（例えば、汎用３２ビットＣＰＵで動作周波数が１６ＭＨｚ程度）であれば良い。コアボード４０の機能は、従来のＥＣＵ１におけるＥＮＧ制御アプリ（ソフト）２５とマイコン周辺２６とが遣り取りするデータをＰＣＩバス３９を経由して受け、疑似マイコン周辺（ＦＰＧＡ）４２へ受け渡すことである。
【００４１】
ＩＦボード５０に接続される各ＦＰＧＡ４２はソフトで組むことができ、マイコン周辺の変更に柔軟に対応させることができる。即ち、チャネル数を増やしたい場合や、新しい機能のリソースを追加したい等の場合に対応させることができる。
【００４２】
従来は、組込み用マイコン２のリソースが不足する場合は、図５（ａ）に示すように、組込み用マイコン２の前段部に外付けＡＤＣ（Ａ／Ｄコンバータ）１７を追加していたが、本発明のマイコンのロジック開発装置２０では、マザーボードのメモリ９の容量が大きく、また、ＣＰＵ１０の処理速度が速いので、図５（ａ）のＡＤコンバータ５と外付けＡＤコンバータ１７を合わせた、図５（ｂ）に示すような、マイコンのリソースに必要な入力数を備えたＡＤコンバータ５Ａを容易に実現することができる。このため、本発明のマイコンのロジック開発装置２０には、マイコンのリソースの不足を補うための拡張Ｉ／Ｏ（入出力装置）機能は不要となる。
【００４３】
図６は、本発明のマイコンのロジック開発装置２０における、マザーボード３０とコアボードのソフト構成を示す構成図である。電子制御機器が電子制御式エンジンの場合は、マザーボード３０におけるＥＮＧ制御アプリ３１は、時間系割り込み処理と非時間系割り込み処理の２つの処理に分けられる。時間系割り込み処理は、外部状態に依存せず、一定の時間間隔で定期的に行う処理である。一方、非時間系割り込み処理は外部状態、即ち、エンジンの運転状態に依存して発生する処理である。この非時間系割り込み処理には、例えば、エンジンの回転信号、車速信号、燃料の噴射タイミング信号、点火タイミング信号等による割り込み処理がある。
【００４４】
ここで、このような外部状態により変化する事象をイベントと呼ぶこととすると、非時間系割り込み処理は、外部状態によりイベント情報を検出して、そのイベントに同期して行う処理ということができる。図６には、このイベントの流れが破線で示され、データの流れが実線で示されている。
【００４５】
マザーボード３０のＥＮＧ制御アプリ３１において、前述のような時間系割り込み処理と非時間系割り込み処理とを行うために、ＣＰＵ３３は仮想マイコン周辺として機能する。この仮想マイコン周辺には、時間系割り込みと非時間系割り込みを発生させる仮想割り込みコントローラ３４と、仮想Ｉ／Ｏレジスタ３８が設けられている。また、ＰＣＩ通信ソフト３２は、データとして、割り込みイベント情報と、Ｉ／Ｏレジスタデータとを扱う。３５は時間系割り込み処理に使用される内部タイマである。仮想Ｉ／Ｏレジスタ３８とＰＣＩバス３９におけるタイマ値については後述される。
【００４６】
一方、コアボード４０側の疑似マイコン周辺４２には、従来のマイコン周辺２６と同様に、ポート、ラッチ、ＰＷＭ、シリアル、コンペア、及びキャプチャの各機能が設けられている。また、ＰＣＩ通信ソフト４１は、データとして、割り込みイベント情報と、Ｉ／Ｏレジスタデータとを扱う。更に、コアボード４０には、イベントの流れを発生させるタイマ４８が内蔵されている。また、ＰＣＩバス３９には、割り込み指示用の１系統のバスが含まれる。
【００４７】
次に、図６に示すようにイベント情報とデータとが流れる本発明のマイコンのロジック開発装置２０におけるＰＣＩ通信方法、通信同期方法、フェールセーフ方法、割り込み制御方法（割り込みイベントのセットとクリア方法、割り込み優先度管理方法）、ＰＣＩ通信の処理負荷の軽減方法、タイマ処理方法、コンペア機能を使用したパルス出力処理方法、パルス出力要求方法、及びパルス出力補正方法について、具体的な実施例に基づいて詳細に説明する。
（１）ＰＣＩ通信方法（共有メモリの使用）
図７は、本発明のマイコンのロジック開発装置２０における、図４で説明した共有メモリ４６を用いたコアボード４０とマザーボード３０との通信方法の一実施例を示すものである。また、図８は、図７の通信方法を実現するためにコアボード４０に設置される共有メモリ４６の構成及び機能を示すものである。
【００４８】
図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ７０１において出力情報のＰＣＩ通信ソフト４１へのセットが行われ、共有メモリ４６から出力情報が取得され、疑似マイコン周辺（ＦＰＧＡ）４２に渡される。次のステップ７０２では、入力情報のセットが行われ、疑似マイコン周辺（ＦＰＧＡ）４２から入力情報が取得され、共有メモリ４６に格納される。そして、ステップ７０３ではコアボード４０からマザーボード３０への割り込み要求が行われてこのルーチンが終了する。
【００４９】
マザーボード３０側では、このコアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ７１１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われ、ＰＣＩバス３９経由で共有メモリ４６から入力された情報が読み出され、ＥＮＧ制御アプリ３１に公開される。ステップ７１２では、ＥＮＧ制御アプリ３１において非時間系処理が行われる。そして、ステップ７１３においてはＰＣＩ送信処理が行われ、ＰＣＩ通信ソフト３２により、ＥＮＧ制御アプリ３１における非時間系処理の算出結果の出力情報が、ＰＣＩバス３９経由で共有メモリ４６に書き込まれてこのルーチンが終了する。
【００５０】
一方、マザーボード３０側では、コアボード４０からの割り込み要求とは関係なしに、ＥＮＧ制御アプリ３１において時間系処理が実行される。この時間系処理は、マザーボード３０内のタイマ３５により、例えば、１ｍｓの周期で実行される。この時間系処理では、ステップ７２１においてＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われ、ＰＣＩバス３９経由で共有メモリ４６から入力された情報が読み出され、ＥＮＧ制御アプリ３１に公開される。ステップ７２２では、ＥＮＧ制御アプリ３１において時間系処理が行われる。そして、ステップ７２３においてはＰＣＩ送信処理が行われ、ＰＣＩ通信ソフト３２により、ＥＮＧ制御アプリ３１における時間系処理の算出結果の出力情報が、ＰＣＩバス３９経由で共有メモリ４６に書き込まれてこのルーチンが終了する。
（２）ＰＣＩ通信方法（通信同期方法１）
ＰＣＩバス３９を経由してマザーボード３０とコアボード４０の間でデータの遣り取りを行う場合は、共有メモリ４６に対してマザーボード３０から書き込みを行った値をコアボード４０で読み出しを行う。また、その逆も行われる。この場合、書き込みタイミングと読み出しタイミングが重なった時、データの値の保証ができなくなる。そこで、本発明では、それぞれのタイミングが重ならないように、通信に同期をとってＰＣＩバス３９のアクセスを実行する。この通信同期の方法を図９を用いて説明する。
【００５１】
ＰＣＩバス３９の通信に同期をとる場合は、共有メモリ４６に通信同期カウンタを設け、マザーボード３０の非時間系処理とコアボード４０との間で処理の同期をとるようにする。通信同期カウンタは、マザーボード３０側での処理が完了すると更新されるようにする。また、コアボード４０側の処理では、通信同期カウンタが更新されていることを確認して処理を行う。この処理を図９を用いて説明する。
【００５２】
図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ９０１において通信同期カウンタの値（syncnt)が通信同期カウンタモニタの値（syncnt_m)に等しいか否かが判定される。等しくない場合はこのままこのルーチンを終了するが、等しい時はステップ９０２に進み、出力情報のセットが行われる。次のステップ９０３では入力情報のセットが行われ、続くステップ９０４においてマザーボード３０への割り込み要求が行われる。そして、次のステップ９０５で通信同期カウンタモニタの値（syncnt_m)が１だけ更新されてこのルーチンが終了する。
【００５３】
マザーボード３０側では、このコアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ９１１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われ、ＰＣＩバス３９経由で共有メモリ４６から入力された通信同期カウンタの値（syncnt)が、ステップ９１２でＥＮＧ制御アプリ３１に値(t_syn)として記憶される。ステップ９１３では、ＥＮＧ制御アプリ３１において非時間系処理が行われる。そして、ステップ９１４においてはＰＣＩ送信処理が行われ、ステップ９１５でステップ９１２で記憶された値(t_syn)が１だけ更新されて通信同期カウンタの値（syncnt)として記憶される。ＥＮＧ制御アプリ３１における非時間系処理の結果と通信同期カウンタの値（syncnt)は、ＰＣＩ通信ソフト３２により、ＰＣＩバス３９経由で共有メモリ４６に書き込まれてこのルーチンが終了する。
【００５４】
一方、マザーボード３０側では、コアボード４０からの割り込み要求とは関係なしに、ＥＮＧ制御アプリ３１において時間系処理が実行される。この時間系処理は、マザーボード３０内のタイマ３５により、例えば、１ｍｓの周期で実行される。この時間系処理では、ステップ９２１においてＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。このとき、非時間系処理で取得された最新の値が使用される。ステップ９２２では、ＥＮＧ制御アプリ３１において時間系処理が行われる。そして、ステップ９２３においてはＰＣＩ送信処理が行われ、データの更新のみ次の非時間系送信処理で送信されてこのルーチンが終了する。
【００５５】
図１０は、図９で説明した通信同期方法の処理の進行状況を時間と共に示したタイミングチャートである。図１０には、通信処理がコアボード４０のＩ／Ｏサンプリング周期（１００μｓ）で終了した場合の、通常時のタイミングチャートと、通信処理がコアボード４０のＩ／Ｏサンプリング周期（１００μｓ）後の、次回の処理開始までに完了しなかった場合の非通常時のタイミングチャートとが示してある。
（３）ＰＣＩ通信方法（通信同期方法２）
この実施例も、ＰＣＩバス３９を経由したマザーボード３０とコアボード４０の間のデータの遣り取りにおける書き込みタイミングと読み出しタイミングの同期をとるものである。（２）の方法との違いは、コアボード４０の処理起動タイミングを、Ｉ／Ｏサンプリング周期で固定するのではなく、マザーボード３０側の処理状況を確認して、処理が完了していれば、次の処理に移行するようにした点である。このため、コアボード４０側のＩ／Ｏ処理タイミングは任意となる。この通信同期の方法を図１１を用いて説明する。
【００５６】
コアボード４０の電源がオンになると、ステップ１１０１において通信同期カウンタの値（syncnt)が通信同期カウンタモニタの値（syncnt_m)に等しいか否かが判定される。等しくない場合はこの値が等しくなるまで、ステップ１１０１の判定が繰り返される。ステップ１１０１の判定が等しい時はステップ１１０２に進み、出力情報のセットが行われる。次のステップ１１０３では入力情報のセットが行われ、続くステップ１１０４においてマザーボード３０への割り込み要求が行われる。そして、次のステップ１１０５で通信同期カウンタモニタの値（syncnt_m)が１だけ更新されてこのルーチンが終了する。
【００５７】
マザーボード３０側では、このコアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ１１１１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われ、ＰＣＩバス３９経由で共有メモリ４６から入力された通信同期カウンタの値（syncnt)が、ステップ１１１２でＥＮＧ制御アプリ３１に値(t_syn)として記憶される。ステップ１１１３では、ＥＮＧ制御アプリ３１において非時間系処理が行われる。そして、ステップ１１１４においてはＰＣＩ送信処理が行われ、ステップ１１１５でステップ１１１２で記憶された値(t_syn)が１だけ更新されて通信同期カウンタの値（syncnt)として記憶される。ＥＮＧ制御アプリ３１における非時間系処理の結果と通信同期カウンタの値（syncnt)は、ＰＣＩ通信ソフト３２により、ＰＣＩバス３９経由で共有メモリ４６に書き込まれてこのルーチンが終了する。
【００５８】
一方、マザーボード３０側では、コアボード４０からの割り込み要求とは関係なしに、ＥＮＧ制御アプリ３１において時間系処理が実行される。この時間系処理は、マザーボード３０内のタイマ３５により、例えば、１ｍｓの周期で実行される。この時間系処理では、ステップ１１２１においてＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。このとき、非時間系処理で取得された最新の値が使用される。ステップ１１２２では、ＥＮＧ制御アプリ３１において時間系処理が行われる。そして、ステップ１１２３においてはＰＣＩ送信処理が行われ、データの更新のみが次の非時間系送信処理で送信されてこのルーチンが終了する。
【００５９】
図１２は、図１１で説明した通信同期方法の処理の進行状況を時間と共に示したタイミングチャートを示すものである。図１１から分かるように、コアボード４０のＩ／Ｏサンプリング周期は、マザーボード３０側の処理時間の長さに応じたコアボード４０側の待ち時間の長さに応じて任意の長さとなる。
（４）ＰＣＩ通信方法（フェールセーフ）
ＰＣＩバス３９を経由したマザーボード３０の処理とコアボード４０側の処理では、前述のように同期カウンタにより処理の重複を防止するようにハンドリングが実施されるが、同期カウンタが何らかの障害によって故障、或いは破損した場合は、コアボード４０側の処理がマザーボード３０側の処理の完了待ち状態、或いは、マザーボード３０側の処理がコアボード４０側の処理からの割り込み待ち状態となり、デッドロックループとなることがある。
【００６０】
そこで、本発明では、このようなデッドロックループ状態を回避するフェールセーフロジックをもうけたので、これについて説明する。この実施例のフェールセーフロジックでは、デッドロック判定時間を設ける、及びマザーボード３０の処理完了の待ち時間が所定の判定時間を越えていることを検出した場合に、デッドロック状態として検出するようにしている。そして、デッドロック状態を検出した場合には、強制的に通信を再開するようにした。この処理を図１３を用いて説明する。
【００６１】
図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ１３０１において待ちカウンタの値(waitcnt)が判定時間を越えているか否かが判定される。待ちカウンタの値(waitcnt)が、判定時間未満の場合はステップ１３０３に進み、判定時間を越えている場合はステップ１３０２において通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)とをクリアしてステップ１３０３に進む。
【００６２】
ステップ１３０３では、通信同期カウンタの値（syncnt)が通信同期カウンタモニタの値（syncnt_m)に等しいか否かが判定される。ステップ１３０１における待ちカウンタの値(waitcnt)の判定で、待ちカウンタの値(waitcnt)が判定時間未満の場合は、通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)は等しくないので、ステップ１３０９で待ちカウンタの値(waitcnt)を１だけ更新してこのルーチンを終了する。一方、ステップ１３０２において通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)とがクリアされた場合は、両者の値は等しいのでステップ１３０３からステップ１３０４に進む。
【００６３】
ステップ１３０４では、出力情報のセットが行われ、次のステップ１３０５では入力情報のセットが行われる。続くステップ１３０６では、待ちカウンタの値(waitcnt)がクリアされ、続くステップ１３０７においてマザーボード３０への割り込み要求が行われる。そして、次のステップ１３０８で通信同期カウンタモニタの値（syncnt_m)が１だけ更新されてこのルーチンが終了する。マザーボード３０側の処理は、図９又は図１１で説明した処理と同じであるので、ここではその説明を省略する。
（５）割り込み制御方法（割り込みイベントのセットとクリア方法）
ＰＣＩバス３９を経由したマザーボード３０とコアボード４０の間のデータの遣り取りでは、コアボード４０で検出した割り込みイベントをＰＣＩバス３９を経由してマザーボード３０に伝達し、マザーボード３０上のＥＮＧ制御アプリ３１の割り込み制御を実現するようにしている。割り込みイベントは、コアボード４０からセット、マザーボード３０からクリアと、双方向から操作が必要であるが、データの衝突を避けるため、この実施例では、以下のようなＰＣＩ通信データを用意し、片方向からの操作で、マザーボード３０とコアボード４０の間のデータの遣り取りを実現するようにしている。
【００６４】
図１４（ａ）はコアボード４０からマザーボード３０に送られる各割り込みイベント情報（Ｄイベント〜Ａイベント）と、マザーボード３０からコアボード４０に送られる各割り込みイベントクリア要求（Ｄクリア要求〜Ａクリア要求）を示すものである。このような、各割り込みイベント情報と各割り込みイベントクリア要求により、図１４（ｂ）に示すような処理が行われる。
【００６５】
図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ１４０１において出力情報のセット処理が行われる。この処理は、割り込みクリア情報を読み込み、セットされているイベント情報をクリアする処理である。出力情報のセット処理が終了すると、ステップ１４０２において入力情報のセット処理が行われる。この処理は、割り込みイベント情報を疑似マイコン周辺（ＦＰＧＡ）４２から取得し、イベント情報をセットする処理である。続くステップ１４０３においては、マザーボード３０への割り込み要求が行われてこのルーチンが終了する。
【００６６】
マザーボード３０側では、このコアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ１４１１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。このＰＣＩ受信処理では、割り込みイベントクリア情報［Ｉ］をクリアする処理、割り込みイベント情報をＰＣＩバス３９経由で読み込む処理、及び、セットされている割り込みイベントに対する割り込みルーチンを起動する処理が行われる。ここで、［Ｉ］は内部メモリ３１を示し、内部メモリ３１にデータを準備しておいて、ＰＣＩ通信処理部でＰＣＩバス３９を経由して共有メモリ４６を更新するのである。
【００６７】
ステップ１４１１が終了するとステップ１４１２が実行される。ステップ１４１２では、非時間系処理（ＥＮＧ制御アプリ）が実行される。この処理では、各割り込みルーチン（割り込みＡルーチン〜割り込みＤルーチン）が選択されて起動され、起動済みのイベントのクリア情報［Ｉ］がセットされる。次のステップ１４１３ではＰＣＩ送信処理が行われる。このＰＣＩ送信処理は、割り込みクリア情報をＰＣＩバス３９経由で書き込む処理が行われてこのルーチンを終了する。
（６）割り込み制御方法（割り込み優先度管理方法）
これまでのＥＣＵ１では、割り込みイベントそれぞれに優先度を設定し、各イベントに対する処理の処理優先度を管理していた。そこで、本発明のマイコンのロジック開発装置２０では、設定されている割り込み優先度が高い順番で起動処理を行うことにより、実際のＥＣＵ１に近い割り込み処理を実現するようにしている。例えば、イベント情報の割り込み優先度がＢイベント＞Ａイベント＞Ｄイベント＞Ｃイベント（以後Ｂ＞Ａ＞Ｄ＞Ｃのようにイベントは省略）のように設定されている場合には、図１５に示すような処理を行う。
【００６８】
図１５のマザーボード３０における割り込み要求処理ルーチンにおけるステップ１５０１は、図１４で説明したステップ１４１１と同じであり、ステップ１５０３はステップ１４１３と同じであるので、ここでは、このルーチンのステップ１５０２における割り込み優先度の順番で割り込みイベント情報をサーチして、各割り込みルーチンを起動する方法のみについて説明する。
【００６９】
イベントの割り込み優先度がＢ＞Ａ＞Ｄ＞Ｃのように設定されている場合、ステップ１５０２の非時間系処理では、まず、割り込み優先度の高い割り込みＢがあるか否かをステップ１５１１においてサーチして判定する。サーチの結果、割り込みＢがない場合はステップ１５１４に進むが、割り込みＢが存在する場合はステップ１５１２に進み、割り込みＢクリア要求をセットする。そして、ステップ１５１３において割り込みＢのルーチンを実行し、このルーチンが終了した後にステップ１５１４に進む。
【００７０】
ステップ１５１４では、次に割り込み優先度の高い割り込みＡがあるか否かをサーチして判定する。サーチの結果、割り込みＡがない場合はステップ１５１７に進むが、割り込みＡが存在する場合はステップ１５１５に進み、割り込みＡクリア要求をセットする。そして、ステップ１５１６において割り込みＡのルーチンを実行し、このルーチンが終了した後にステップ１５１７に進む。
【００７１】
ステップ１５１７では、３番目に割り込み優先度の高い割り込みＤがあるか否かをサーチして判定する。サーチの結果、割り込みＤがない場合はステップ１５２０に進むが、割り込みＤが存在する場合はステップ１５１８に進み、割り込みＤクリア要求をセットする。そして、ステップ１５１９において割り込みＤのルーチンを実行し、このルーチンが終了した後にステップ１５２０に進む。
【００７２】
ステップ１５２０では、割り込み優先度が最も低い割り込みＣがあるか否かをサーチして判定する。サーチの結果、割り込みＣがない場合は割り込みルーチンを終了するが、割り込みＣが存在する場合はステップ１５２１に進み、割り込みＣクリア要求をセットする。そして、ステップ１５２２において割り込みＣのルーチンを実行し、このルーチンが終了した後に割り込みルーチンを終了する。
（７）ＰＣＩ通信処理負荷軽減方法
ＥＮＧ制御アプリ３１の処理は、マザーボード３０に採用されるＣＰＵボードの性能向上によって対処することができるが、ＰＣＩ通信に係る処理は、ＰＣＩプロトコルにより制限を受けるため、ＰＣＩ通信処理負荷は、できるだけ抑えておく必要がある。ここで、割り込みイベント情報が何もない場合、付随する割り込み処理は発生しないため、入力情報をマザーボード３０に伝達する必要がなく、また、新たな出力要求も発生しないため、出力要求をコアボード４０に伝達する必要がない。即ち、ＰＣＩ通信処理は必要がない。
【００７３】
そこで、本発明では、割り込みイベント情報が何もない場合、ＰＣＩ通信処理を省略し、ＰＣＩ通信処理負荷の軽減を図るようにしている。なお、割り込みイベント情報に依存しない時間系処理のために、割り込みイベント情報が何も発生しない状態が継続しても、待ちカウンタの処理により、一定時間毎にはＰＣＩ通信が発生することになる。これを図１６を用いて説明する。
【００７４】
図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ１６０１において待ちカウンタの値(waitcnt)が判定時間を越えているか否かが判定される。待ちカウンタの値(waitcnt)が、判定時間未満の場合はステップ１６０３に進み、判定時間を越えている場合はステップ１６０２において通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)とをクリアしてステップ１６０３に進む。
【００７５】
ステップ１６０３では、通信同期カウンタの値（syncnt)が通信同期カウンタモニタの値（syncnt_m)に等しいか否かが判定される。ステップ１６０１における待ちカウンタの値(waitcnt)の判定で、待ちカウンタの値(waitcnt)が判定時間未満の場合は、通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)は等しくないので、ステップ１６１０で待ちカウンタの値(waitcnt)を１だけ更新してこのルーチンを終了する。一方、ステップ１６０２において通信同期カウンタの値（syncnt)と通信同期カウンタモニタの値（syncnt_m)とがクリアされた場合は、両者の値は等しいのでステップ１６０３からステップ１６０４に進む。
【００７６】
ステップ１６０４では、出力情報のセットが行われ、次のステップ１６０５では入力情報のセットが行われる。次のステップ１６０６では、割り込みイベントが何かあるか否かが判定される。割り込みイベントが何もない場合は、ステップ１６１０で待ちカウンタの値(waitcnt)を１だけ更新してこのルーチンを終了する。一方、何かしらの割り込みイベントがある場合はステップ１６０７に進み、このステップ１６０７では、待ちカウンタの値(waitcnt)がクリアされ、続くステップ１６０８においてマザーボード３０への割り込み要求が行われる。そして、次のステップ１６０９で通信同期カウンタモニタの値（syncnt_m)が１だけ更新されてこのルーチンが終了する。マザーボード３０側の処理は、図９又は図１１で説明した処理と同じであるので、ここではその説明を省略する。
（８）タイマ処理方法
ＥＮＧ制御アプリ３１では、コンペア機能を利用したパルス出力要求を算出するため、演算処理内でタイマ値を取得し、パルス出力要求を算出している。従って、タイマ値取得要求時には、正確なタイマ値を参照できなければならない。一方、本発明では、タイマ値情報はコアボード４０内にあり、マザーボード３０側ではＰＣＩバス３９を通じて取得する必要がある。ところが、ＰＣＩ通信間隔は、前述の実施例で説明したように、１００μｓであり、タイマの計数間隔である１μｓに比べて長いため、正確なタイマ値をマザーボード３０側で取得するための方策が必要である。
【００７７】
そこで、本発明では、マザーボード３０内の内部タイマ３５を使用し、ＰＣＩ通信で取得したコアボード４０からのタイマ値の取得タイミングから、タイマ値取得要求が発生するまでの遅れ時間を補正することによって、マザーボード３０側で、正確なタイマ値を取得できるようにしている。この方法について図１７を用いて説明する。
【００７８】
マザーボード３０側では、コアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ１７０１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。このＰＣＩ受信処理では、タイマ値（Ｔ）をコアボード４０から取得する処理、及び、内部タイマ値（ＴＯ）をラッチする処理が行われる。ステップ１７０１が終了するとステップ１７０２が実行される。ステップ１７０２では、非時間系処理（ＥＮＧ制御アプリ）が実行される。この処理では、タイマ値取得要求ルーチンが起動される。
【００７９】
タイマ値取得要求ルーチンでは、まず、ステップ１７１１において、内部タイマ値（Ｔ１）が取得される。次のステップ１７１２では、タイマ値をコアボード４０から取得したタイミング（Ｔ）から、現在までの遅れ時間（Ｔｄ１）を算出する。この算出式は、タイマ値をコアボード４０より取得したタイミング（Ｔ）を、この時の内部タイマ値（ＴＯ）に等しいとして、以下のようになる。
【００８０】
Ｔｄ１  ＝  Ｔ１  −  ＴＯ
このようにして現在までの遅れ時間（Ｔｄ１）が算出された後は、コアボード４０から取得したタイマ値（Ｔ）に補正を、以下の式により加えることにより、補正後のタイマ値（Ｔ′）を算出する。
【００８１】
Ｔ′  ＝  Ｔ  ＋  Ｔｄ１
そして、次のステップ１７１４において、補正後のタイマ値（Ｔ′）を返してこのルーチンを終了する。
【００８２】
このようにしてステップ１７０２が終了した後は、ステップ１７０３においてＰＣＩの送信処理を行う。
（９）コンペア機能を使用したパルス出力処理方法
ＥＮＧ制御アプリ３１では、例えば、点火出力や燃料噴射出力等のように、コンペア機能を使用してパルス出力要求を行うケースがある。実際のＥＣＵ１では、コンペア出力端子に一般出力ポート機能とコンペア出力機能の２つの機能があり、これら２つの機能を切り換えてパルス出力が行われている。一般出力ポート機能が選択され、即時出力が行われる場合は、この出力はイミディエート出力と呼ばれる。また、コンペア出力機能が選択され、出力時刻、出力レベルが設定されて出力予約が行われる場合は、この出力はタイムド出力と呼ばれる。
【００８３】
図１８（ａ）はコンペア機能を使用したパルス出力におけるタイムド出力（パターン１）と、イミディエート出力（パターン２）を説明するものである。
【００８４】
パターン１では、パルス出力開始の所定時間前の時点において、ソフト処理によってタイムド出力を使用してパルス開始出力の予約が行われる。そして、パルス出力開始のコンペア出力開始のコンペア一致割り込みの中で、タイムド出力を使用したパルス出力終了の予約が行われる。一方、パターン２では、パルス出力開始時点において、イミディエート出力でパルス開始出力が行われると共に、パルス開始出力直後にタイムド出力を使用したパルス終了出力の予約が行われる。
【００８５】
図１８（ｂ）は、マザーボード３０における非時間系処理（ステップ１８０１〜ステップ１８０３）と時間系処理（ステップ１８１１〜ステップ１８１３）を示すものである。ここで、本構成の処理単位の間（ステップ１８０１とステップ１０８０３の間と、ステップ１８１１とステップ１８１３の間）には、コアボード４０に対しては連続した要求を出すことはできない。パターン２のケースでは、イミディエート出力（パルス出力開始）から、タイムド出力（パルス出力終了予約）と連続して処理要求が発生するため、このケースを想定したパルス出力処理が必要となる。
（１０）パルス出力要求方法
コンペア機能を使用したあらゆるパルス出力要求パターンに対して、本発明では対応できるようにする。
【００８６】
図１９（ａ）は、単一処理単位の中でのパルス要求パターンを示すものである。パターン１はタイムド出力であり、コンペア割り込みイベントが必要である。パターン２はイミディエート出力からタイムド出力に移行するものであり、これもコンペア割り込みイベントが必要である。パターン３はイミディエート出力のみである。
【００８７】
図１９（ｂ）はパルス出力要求のデータフィーマットをコンペアの各チャネル毎に示すものである。データフォーマットには、出力予約時刻（タイムド出力用）Ｔｏｕｔ、タイムド出力要求ＴＭＲＥＱ、タイムド出力レベルＴＭＬＶＬ、イミディエート出力要求ＩＭＭＲＥＱ、イミディエート出力レベルＩＭＭＬＶＬ、及び、補正の要否ＡＤＪがある。
【００８８】
本発明では、コンペアの各チャネル毎に図２０に示すような処理が行われる。図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期（例えば、１００μｓ）になると、ステップ２０１において、出力情報のセットの内、パルス出力処理が行われる。このパルス出力処理では、ステップ２００１において、イミディエート出力要求ＩＭＭＲＥＱがオン状態であるか否かが判定され、オンの場合はステップ２００２においてポート出力処理（ＩＭＭＬＶＬ）が行われてからステップ２００３に進む。一方、ステップ２００１でイミディエート出力要求ＩＭＭＲＥＱがオン状態でない場合はステップ２００２を行わずにステップ２００３に進む。
【００８９】
ステップ２００３では、タイムド要求出力ＴＭＲＥＱがオン状態であるか否かが判定され、オン状態の場合はステップ２００４においてコンペア出力予約処理（Ｔｏｕｔ／ＴＭＬＶＬ）が行われる。一方、ステップ２００３でタイムド要求出力ＴＭＲＥＱがオン状態でない場合はステップ２００４が省略される。次のステップ２０２では、入力情報のセットが行われ、その次のステップ２０３ではマザーボード３０への割り込み要求が行われて、このルーチンが終了する。
【００９０】
マザーボード３０側では、コアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ２１１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。次のステップ２１２ではＥＮＧ制御アプリ３１内で、パルス出力要求が作成される。パルス出力要求では、ステップ２０１１においてイミディエート出力要求ＩＭＭＲＥＱがオールクリアされると共に、タイムド出力要求ＴＭＲＥＱもオールクリアされる。次のステップ２０１２では、イミディエート出力があるか否かが判定され、イミディエート出力がある場合はステップ２０１３においてイミディエート出力要求ＩＭＭＲＥＱのセット、イミディエート出力レベルＩＭＭＬＶＬのセットが行われた後にステップ２０１４に進む。ステップ２０１２においてイミディエート出力がないと判定された場合は、ステップ２０１３に進まずにステップ２０１４に進む。ステップ２０１４では、タイムド出力があるか否かが判定され、タイムド出力がある場合はステップ２０１５においてタイムド出力要求ＴＭＲＥＱのセット、タイムド出力レベルＴＭＬＶＬＬのセット、及び出力予約時刻Ｔｏｕｔが設定されてステップ２１２からステップ２１３に進む。ステップ２０１４でタイムド出力がないと判定された場合は、ステップ２０１５を実行せずにステップ２０１６に進む。ステップ２０１６においては、ＰＣＩ送信処理が行われ、ステップ２０１６においてパルス出力要求をＰＣＩバス３９経由で書き込む処理が行われる。
（１１）パルス出力補正方法
コンペア機能を使用したパルス出力要求のうち、イミディエート出力でパルス開始、タイムド出力でパルス終了のパルス出力（図１８（ａ）のパターン２）において、実際のＥＣＵでの出力パルスと、本発明における出力パルスでは、図２１に示すような差Ｔｄ２が生じる。この差Ｔｄ２が生じる理由は、実際のＥＣＵでは、イミディエート出力要求を行うと即時出力されるのに対して、本発明ではイミディエート出力要求によって即時に出力されないからである。即ち、本発明では、図２２（ａ）に示すように、マザーボード３０でのイミディエート出力要求がＰＣＩバス３９経由でコアボード４０に伝達され、その後のコアボード４０のサンプリング処理タイミングで出力されるため、出力要求から実際の出力までに遅れ時間Ｔｄ２が発生するのである。
【００９１】
この結果、実際のＥＣＵの出力パルスと、本発明の出力パルス共に、タイムド出力要求により、予約時刻で出力されるため、出力タイミングが同一になる。出力パルスの幅にこのような差が生じると、エンジン制御の点火時期は出力パルスのタイミングであるので問題はないが、燃料の噴射料は出力パルスの幅で決まるので、燃料噴射量に差が生じて大きな問題となる。
【００９２】
この差Ｔｄ２を補正するために、イミディエート出力でパルス開始、タイムド出力でパルス終了の要求が出た場合（図２０のステップ２０１２でｙｅｓ、ステップ２０１４でもｙｅｓとなり、イミディエート出力要求ＩＭＭＲＥＱとタイムド出力要求ＴＭＲＥＱの両方がセットされている場合）は、次のような処理を行う。
（イ）イミディエート出力要求時、即ち、図２２（ａ）のイミディエート出力要求発生時（Ａ）、の現在時刻をラッチする（Ｔｒｅｑ）。
（ロ）出力実行時、即ち図２２（ａ）のイミディエート出力要求に対する出力を実行時（Ｂ）、において、現在時刻（Ｔｎｏｗ）とイミディエート出力要求時の時刻（Ｔｒｅｑ）の差（Ｔｄ２）を、タイムド出力用の予約時刻に加算する。この時の遅れ時間Ｔｄ２は以下の式で表される。
【００９３】
遅れ時間Ｔｄ２  ＝  Ｔｎｏｗ  −  Ｔｒｅｑ
このような処理により、図２１に示される実際のＥＣＵでの出力パルスと、本発明における出力パルスにおける差Ｔｄ２は、図２２（ｂ）に示すように補正され、パルス幅が同一になる。よって、このパルスはエンジンの燃料噴射に使用することが可能となる。
【００９４】
ただし、出力信号の種類により、このような補正が必要な場合と、必要でない場合とがある。例えば、エンジンの制御でいえば、点火信号は、パルス出力の終了タイミング（点火時期）が重要であるので、補正は不要である。これに対して、燃料の噴射信号は、パルス出力のパルス幅で噴射量が決まるので、パルス幅が重要であり、前述のような補正が必ず必要である。
【００９５】
図２３は、信号の種類に応じてパルスの終了時点における補正の要、不要を判定した上で補正処理を行うようにした手順を示すものである。
【００９６】
コアボード４０側では、図６で説明したコアボード４０のタイマ４８によって、Ｉ／Ｏサンプリング周期になると、ステップ２３１において、出力情報のセットの内、パルス出力処理が行われる。このパルス出力処理では、ステップ２３０１において、補正が必要か否か、かつ、イミディエート出力要求ＩＭＭＲＥＱがオン状態であるか否か、かつ、タイムド要求出力ＴＭＲＥＱがオン状態であるか否かが判定され、全てｙｅｓの場合にはステップ２３０２に進んで前述の補正処理が行われる。一方、ステップ２３０１の判定が全てｙｅｓでない場合は補正処理を行わずにステップ２３０３に進む。
【００９７】
ステップ２３０３においては、イミディエート出力要求ＩＭＭＲＥＱがオン状態であるか否かが判定され、オンの場合はステップ２３０４においてイミディエート出力処理が行われてからステップ２３０５に進む。一方、ステップ２３０３でイミディエート出力要求ＩＭＭＲＥＱがオン状態でない場合はステップ２３０４を行わずにステップ２３０５に進む。
【００９８】
ステップ２３０５では、タイムド要求出力ＴＭＲＥＱがオン状態であるか否かが判定され、オン状態の場合はステップ２３０６においてコンペア出力予約処理が行われる。一方、ステップ２３０５でタイムド要求出力ＴＭＲＥＱがオン状態でない場合はステップ２３０６が省略される。次のステップ２３２では、入力情報のセットが行われ、その次のステップ２３３ではマザーボード３０への割り込み要求が行われて、このルーチンが終了する。
【００９９】
マザーボード３０側では、コアボード４０からの割り込み要求により、非時間系処理が開始される。ステップ２４１では、ＰＣＩ通信ソフト３２によってＰＣＩ受信処理が行われる。次のステップ２４２ではＥＮＧ制御アプリ３１内で、パルス出力要求が作成される。パルス出力要求では、ステップ２４０１においてイミディエート出力要求ＩＭＭＲＥＱがオールクリアされると共に、タイムド出力要求ＴＭＲＥＱもオールクリアされる。次のステップ２４０２では、イミディエート出力があるか否かが判定され、イミディエート出力がある場合はステップ２４０３においてイミディエート出力要求ＩＭＭＲＥＱのセット、イミディエート出力レベルＩＭＭＬＶＬのセット、及び現在時刻（Ｔｒｅｑ）のラッチが行われた後にステップ２４０４に進む。ステップ２４０２においてイミディエート出力がないと判定された場合は、ステップ２４０３に進まずにステップ２４０４に進む。ステップ２４０４では、タイムド出力があるか否かが判定され、タイムド出力がある場合はステップ２４０５においてタイムド出力要求ＴＭＲＥＱのセット、タイムド出力レベルＴＭＬＶＬＬのセット、及び出力予約時刻Ｔｏｕｔが設定されてステップ２４２からステップ２４３に進む。ステップ２４０４でタイムド出力がないと判定された場合は、ステップ２４０５を実行せずにステップ２４３に進む。ステップ２１３においては、ＰＣＩ送信処理が行われ、ステップ２４０６においてパルス出力要求をＰＣＩバス３９経由でコアボード４０に書き込む処理が行われる。
【０１００】
なお、以上説明した実施例では、本発明のマイコンのロジック開発装置を用いて開発する電子制御機器として、電子制御式エンジンを説明したが、本発明は、その他の電子制御機器用の組込み用マイコンの開発にも有効に適用できる。更に、本発明のマイコンのロジック開発装置は、次期マイコンの開発に加えて、新規なマイコンの開発にも有効に適用することができる。更に、本発明のマイコンのロジック開発装置は、マザーボードのメモリに記憶するプログラムの変更、コアボードに実装する疑似マイコン周辺を用途に応じて増減することにより、異なるマイコンの開発に対して、繰り返し使用することができる。
【０１０１】
【発明の効果】
以上説明したように、本発明のマイコンのロジック開発装置によれば、ロジックの開発に伴う課題が解消され、ＣＰＵ機能に対しては新規なロジックや次期ロジックを処理するために必要な処理性能を確保することができ、マイコン周辺リソースに対しては、次期システムに合わせたリソースを確保することができて、新規なロジックや次期ロジックを実現することが可能な組込み用マイコンを短時間で開発することが可能となるという効果がある。また、本発明のマイコンのロジック開発装置は、マイコンの開発に当たって繰り返し利用することが可能であるので、開発コストを低減することができるという効果もある。
【図面の簡単な説明】
【図１】本発明の背景となる電子制御式エンジンの制御システムにおけるＥＣＵの構成を示すシステム構成図である。
【図２】図１のＥＣＵのロジックを開発する場合における本発明のマイコンのロジック開発装置の全体構成を示す説明図である。
【図３】本発明のマイコンのロジック開発装置のシステム構成を従来の電子機器制御用のＥＣＵの構成と比較して示すブロック構成図である。
【図４】図３のマザーボードとコアボードの内部構成の一実施例を示すブロック構成図である。
【図５】（ａ）は従来のＥＣＵにおいて入力数が増えた場合の対応を示すブロック構成図、（ｂ）は（ａ）に対応する本発明のＥＣＵのブロック構成図である。
【図６】本発明のマイコンのロジック開発装置のマザーボードとコアボードのソフト構成を示す構成図である。
【図７】本発明のマイコンのロジック開発装置における共有メモリを用いたコアボードとマザーボードとの通信方法の一実施例を示すフローチャートである。
【図８】図７の通信方法を実現するためにコアボードに設置される共有メモリの構成及び機能を示す説明図である。
【図９】本発明のマイコンのロジック開発装置におけるマザーボードとコアボードの間のデータ通信の同期方法の一実施例を説明するフローチャートである。
【図１０】図９で説明した通信同期方法のタイミングチャートである。
【図１１】本発明のマイコンのロジック開発装置におけるマザーボードとコアボードの間のデータ通信の同期方法の別の実施例を説明するフローチャートである。
【図１２】図１１で説明した通信同期方法のタイミングチャートである。
【図１３】本発明のマイコンのロジック開発装置で用いる通信同期方法におけるフェールセーフを説明するフローチャートである。
【図１４】（ａ）は本発明のマイコンのロジック開発装置におけるコアボードで検出した割り込みイベントのセットとクリア方法を説明する図、（ｂ）は本発明のマイコンのロジック開発装置における割り込みイベントの制御方法を示すフローチャートである。
【図１５】図１４で説明した割り込みイベントの制御方法において割り込みイベントに優先度を設定した場合の割り込み手順を示すフローチャートである。
【図１６】本発明のマイコンのロジック開発装置におけるＰＣＩバスを用いた通信処理における負荷軽減方法を示すフローチャートである。
【図１７】本発明のマイコンのロジック開発装置のマザーボードにおけるタイマを用いた処理方法を説明するフローチャートである。
【図１８】本発明のマイコンのロジック開発装置におけるコンペア機能を使用したパルス出力処理方法を示すものであり、（ａ）は２つのパターンの波形図、（ｂ）はマザーボード内の処理手順を示すフローチャートである。
【図１９】（ａ）は本発明のマイコンのロジック開発装置におけるコンペア機能を使用したパルス出力要求パターンの種類を示す組み合わせ図、（ｂ）はパルス出力要求におけるデータフォーマットを示す図である。
【図２０】図１９のパルス出力要求方法の詳細を示すフローチャートである。
【図２１】本発明のマイコンのロジック開発装置におけるコンペア機能を使用したパルス出力要求におけるバルス出力の補正方法を説明する図である。
【図２２】（ａ）は本発明のマイコンのロジック開発装置におけるコンペア機能を使用したパルス出力要求におけるバルス出力の補正方法を説明するタイムチャート、（ｂ）は補正された波形を示す波形図である。
【図２３】本発明のマイコンのロジック開発装置におけるコンペア機能を使用したパルス出力要求におけるバルス出力の補正方法の変形例を説明するタイムチャートである。
【符号の説明】
１…ＥＣＵ
２…組込み用マイコン
７…内部タイマ
８…割り込みコントローラ
９…メモリ
１０…ＣＰＵ
１１…内部バス
２０…本発明のロジック開発装置
２８…ＥＣＵ入力回路
２９…ＥＣＵコネクタ
３０…マザーボード
３１…ソフトウエア
３２…ＰＣＩ通信ソフト
３３…ＣＰＵ
３４…仮想割り込みコントローラ
３５…内部タイマ
３６…ＰＣＩバスインタフェース
３７…内部バス
３８…仮想Ｉ／Ｏレジスタ
３９…ＰＣＵバス
４０…コアボード
４１…ＰＣＩ通信ソフト
４２…疑似マイコン装置（ＦＰＧＡ）
４３…内部バス
３３…ＣＰＵ
４４…ＰＣＩバスインタフェース
４５…ＣＰＵ
４６…共有メモリ
４７…内部メモリ
４８…タイマ
５０…ＩＦボード
【図１】
0003827565.tif 000002
【図２】
0003827565.tif 000003
【図３】
0003827565.tif 000004
【図４】
0003827565.tif 000005
【図５】
0003827565.tif 000006
【図６】
0003827565.tif 000007
【図７】
0003827565.tif 000008
【図８】
0003827565.tif 000009
【図９】
0003827565.tif 000010
【図１０】
0003827565.tif 000011
【図１１】
0003827565.tif 000012
【図１２】
0003827565.tif 000013
【図１３】
0003827565.tif 000014
【図１４】
0003827565.tif 000015
【図１５】
0003827565.tif 000016
【図１６】
0003827565.tif 000017
【図１７】
0003827565.tif 000018
【図１８】
0003827565.tif 000019
【図１９】
0003827565.tif 000020
【図２０】
0003827565.tif 000021
【図２１】
0003827565.tif 000022
【図２２】
0003827565.tif 000023
【図２３】
0003827565.tif 000024