(57)【特許請求の範囲】
【請求項１】
第１のマイコンと、前記第１のマイコンからの要求コマンドを受信すると共に、該要求コマンドに対応した処理結果を第１のマイコンに送信する第２のマイコンとを備え、
前記第２のマイコンは、前記要求コマンドに対応する処理の開始から完了までの期間で処理完了信号の論理レベルをパルス状に変化させると共に、該処理完了信号を信号線を介して前記第１のマイコンに送信し、前記第１のマイコンは、前記処理完了信号の変化の状態に応じて第２のマイコンによる処理完了を認識するシリアル通信装置において、
前記処理完了信号の最小パルス幅を、前記信号線における抵抗成分と容量成分とからなるフィルタの時定数よりも長く設定しておき、
前記第２のマイコンは、前記要求コマンドに対応する処理時間が予め設定した前記最小パルス幅より短い場合には、同最小パルス幅に相当する時間が経過するまで前記処理完了信号を送信しないことを特徴とするシリアル通信装置。
【請求項２】
請求項１に記載のシリアル通信装置において、
前記最小パルス幅は、前記信号線における抵抗成分と容量成分とからなるフィルタの時定数よりも長く、かつ、前記処理完了信号の変化時にその信号レベルが少なくとも前記第１のマイコンでの信号認識レベルを超えるパルス幅であることを特徴とするシリアル通信装置。
【請求項３】
請求項１又は２に記載のシリアル通信装置において、
前記第２のマイコンは、前記要求コマンドに対応する処理時間が前記最小パルス幅よりも短ければ、前記処理完了信号のパルス幅を最小パルス幅以上とし、処理時間が前記最小パルス幅よりも長ければ、前記処理完了信号のパルス幅を処理時間に応じたパルス幅とすることを特徴とするシリアル通信装置。
【請求項４】
請求項１〜３のいずれか一項に記載のシリアル通信装置において、
前記第２のマイコンは、
処理開始からの処理完了信号のパルス幅を計測する計測手段と、
前記計測したパルス幅が前記最小パルス幅よりも短ければ、最小パルス幅以上となるようにパルス幅を延長するパルス幅延長手段と
を備えたことを特徴とするシリアル通信装置。
【請求項５】
請求項４に記載のシリアル通信装置において、
前記要求コマンドを、そのコマンドに対応する処理時間に基づいて前記最小パルス幅よりも処理時間の短いコマンドと、最小パルス幅よりも処理時間の長いコマンドとに予め区分しておき、
前記第２のマイコンは、受信した要求コマンドが前記処理時間の短いコマンドである場合にのみ、前記計測手段及びパルス幅延長手段による処理を実施するようにしたことを特徴とするシリアル通信装置。
【請求項６】
請求項１に記載のシリアル通信装置において、
前記第２のマイコンは、前記第１のマイコンから受信した複数の要求コマンドに対応する処理の開始から完了までの期間、前記処理完了信号の論理レベルが変化された状態を保持するようにそれらのパルス幅を各別に設定するものであり、前記要求コマンドに対応する処理期間として設定したパルス幅が前記第１のマイコンにおいて前記処理完了信号を認識するための判定レベルに達するのに不十分となり得る短い幅となる場合において、同パルス幅が予め設定した前記最小パルス幅以上となるように、前記処理完了信号の論理レベルが変化された状態を延長して保持させるようにしたことを特徴とするシリアル通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つのマイコン間でシリアル通信を行うようにしたシリアル通信装置に関するものである。
【０００２】
【従来の技術】
この種の従来技術として、特開平９−２８２２６５号公報の装置が知られており、同公報の装置はマスタ／スレーブの関係を有する２つのマイコン間で双方向にデータ（メッセージ）をシリアル通信するものとして構成されている。例えば、マスタ側マイコンは点火時期制御や燃料噴射制御等、主要なエンジン制御を司り、スレーブ側マイコンはエンジン制御に必要な各種センサによるセンシングデータのＡ／Ｄ変換、負荷演算やその他補助的な制御を行う。ここで、同公報の装置にあってはシリアル通信クロックに同期してメッセージが送信され、マイコン間で授受されるメッセージには、例えばＡ／Ｄ変換やＲＡＭ読み出しのデータの他に、それら各処理の要求コマンドが含まれる。
【０００３】
実際のデータ通信に際しては、図１０に示すように、シフトクロックＳＣＬＫに基づいてメッセージが交換される。そして、１セット分のメッセージ交換が終了すると、クロックＳＣＬＫが一旦停止され、それに伴い処理完了信号ＥＯＣＴが論理ローレベルに立ち下げられる。その後、スレーブ側マイコンは、マスタ側マイコンから受信したメッセージ内の要求コマンドに従いＡ／Ｄ変換、ＲＡＭデータ読み出し等、所定の処理を実行し、その処理が終了した時点で処理完了信号ＥＯＣＴを再び論理ハイレベルに立ち上げる。マスタ側マイコンは、処理完了信号が論理ハイレベルに立ち上げられたことによりデータ送信の準備ができた旨を判断し、クロックＳＣＬＫを再起動させて次のメッセージをスレーブ側マイコンへ送信する。
【０００４】
【発明が解決しようとする課題】
ところが、上記公報の装置において、マイコンにおける処理の高速化が図られると、その処理時間が短くなる。この場合、ＲＡＭからのデータ読み出しやＲＡＭへのデータ書き込みといった処理は、即時に終了してしまう。そのため、図１１に示すように、処理完了信号ＥＯＣＴが論理ローレベルとなっているパルス幅が短くなる。また、装置における処理回路の複雑化によって、２つのマイコン間の配線は長くなり、それにより同配線における配線抵抗と浮遊容量が大きくなる。さらに、装置の小型化によって配線が細くなり配線抵抗が大きくなる。つまり、装置の高機能化に伴い２つのマイコン間のＣＲフィルタの時定数は大きくなる傾向にある。このように、装置の高機能化に伴い、処理完了信号ＥＯＣＴの幅が短くなり２つのマイコン間のＣＲフィルタの時定数が大きくなると、図１２に示すように、スレーブ側マイコンから出力される処理完了信号ＥＯＣＴがなまされ、その処理完了信号ＥＯＣＴをマスタ側マイコンが認識できなくなるといった現象が発生する。つまり、図１２の拡大図に示すように、処理完了信号ＥＯＣＴの電位レベルが、マスタ側マイコンのスレッショルドレベル以下にならないため、マスタ側マイコンは、スレーブ側マイコンから出力された処理完了信号ＥＯＣＴを認識することができない。
【０００５】
上記公報の装置では、既述したように、処理完了信号ＥＯＣＴの入力に伴いマスタ側マイコンにてシフトクロックＳＣＬＫを再起動させて、次のデータ通信を実施する構成である。そのため、処理完了信号ＥＯＣＴが認識できなくなると、マイコン間の通信が正常に実施できなくなる。
【０００６】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、シリアル通信を実施する２つのマイコンを備え、一方のマイコンから出力されるパルス状の処理完了信号を他方のマイコンにて確実に認識することができるシリアル通信装置を提供することである。
【０００７】
【課題を解決するための手段】
請求項１に記載の発明によれば、第２のマイコンにより、第１のマイコンからの要求コマンドが受信されるとともに、要求コマンドに対応した処理結果が第１のマイコンに送信される。また、第２のマイコンにより、要求コマンドに対応する処理の開始から完了までの期間で処理完了信号の論理レベルがパルス状に変化され、該処理完了信号が信号線を介して第１のマイコンに送信される。そして、第１のマイコンにより、処理完了信号の変化の状態に応じて第２のマイコンによる処理完了が認識される。本発明のシリアル通信装置では、処理完了信号のパルス幅について、信号線における抵抗成分と容量成分とからなるフィルタの時定数よりも長い最小パルス幅が設定されている。そして、要求コマンドに対応する処理時間が予め設定した上記最小パルス幅より短い場合には、同最小パルス幅に相当する時間が経過するまで第２のマイコンによる処理完了信号を送信しない。この場合、処理完了信号が最小パルス幅よりも短くなることが防止されるので、信号線においてパルス状の処理完了信号がなまされて該信号が認識できなくなるといった不都合を回避でき、ひいてはシリアル通信の異常を防止できる。
【０００８】
請求項２に記載の発明では、最小パルス幅は、信号線における抵抗成分と容量成分とからなるフィルタの時定数よりも長いことに加え、処理完了信号の変化時にその信号レベルが少なくとも第１のマイコンでの信号認識レベルを超えるパルス幅であるとしている。これにより、第１のマイコンは、処理完了信号を確実に認識することができる。
【０００９】
請求項３に記載の発明によれば、要求コマンドに対応する処理時間が、最小パルス幅よりも短いと判定されれば、処理完了信号のパルス幅が最小パルス幅以上とされ、一方、最小パルス幅よりも長いと判定されれば、同信号のパルス幅が処理時間に応じたパルス幅とされる。この場合、要求コマンドに対応する処理時間が短く必要がある時のみにパルス幅が延長されることとなり、実用上好ましいものとなる。
【００１０】
請求項４に記載の発明によれば、計測手段によって、処理開始からの処理完了信号のパルス幅が計測され、そのパルス幅が最小パルス幅よりも短ければ、パルス幅延長手段により最小パルス幅以上となるように延長される。このように、実際に出力している処理完了信号のパルス幅を計測してそのパルス幅を延長することにより、的確なパルス幅の処理完了信号を出力することができる。
【００１１】
請求項５に記載の発明によれば、要求コマンドに対応する処理時間に基づいて最小パルス幅よりも処理時間の短いコマンドと、最小パルス幅よりも処理時間の長いコマンドとが予め区分される。そして、受信した要求コマンドが処理時間の短いコマンドである場合にのみ、計測手段及びパルス幅延長手段による処理が実施される。つまり、処理時間が最小パルス幅よりも長いコマンドである場合、その処理時間に応じたパルス幅の処理完了信号を出力すればよいため、計測手段及びパルス幅延長手段の処理を省略することができる。これにより、計測手段及びパルス幅延長手段の処理を省略した分だけ処理負荷を低減でき、通信を遅れを抑えることができる。
請求項６に記載の発明では、第２のマイコンを、第１のマイコンから受信した複数の要求コマンドに対応する処理の開始から完了までの期間、処理完了信号の論理レベルが変化された状態を保持するようにそれらのパルス幅を各別に設定するものとして構成する。そして、要求コマンドに対応する処理期間として設定したパルス幅が第１のマイコンにおいて処理完了信号を認識するための判定レベルに達するのに不十分となり得る短い幅となる場合において、同パルス幅が予め設定した最小パルス幅以上となるように、処理完了信号の論理レベルが変化された状態を延長して保持させる。
【００１２】
【発明の実施の形態】
以下、この発明を具体化した実施の形態を図面に従って説明する。図１は、各種エンジン制御を司る電子制御装置の概略を示すブロック図である。本制御装置において、第１及び第２のマイコン１００，２００はマスタ／スレーブの関係にあり、第１のマイコン１００は、第２のマイコン２００との間でＤＭＡ方式によるデータ通信を行うことによりエンジン制御に必要なデータを取り込み、燃料噴射量制御や点火時期制御等、エンジンの運転状態を直接制御する。
【００１３】
詳述すると、図１において、高速ディジタル入力や各種アナログ入力、低速ディジタル入力等の各入力信号は全て第２のマイコン２００に取り込まれる。因みに、高速ディジタル入力としては「エンジン回転」等があり、アナログ入力としては「ノック信号」、「空気流量」、「冷却水温」等々がある。また、低速ディジタル入力としては、「Ａ／Ｃ（エアコンディショナ）スイッチ」の状態、「ニュートラルスイッチ」の状態等に関する情報がある。なおここでは、信号の処理速度について、ｍｓｅｃ（ミリ秒）オーダーを低速、μｓｅｃ（マイクロ秒）オーダーを高速として分類している。また、例えば「Ｏ2 センサヒータ」に対するオン／オフ指令や「ウォーニングランプ」に対するオン／オフ指令等の低速ディジタル出力も、第２のマイコン２００から出力されるようになっている。
【００１４】
つまり、第２のマイコン２００は、データの入出力にかかわる処理を主に司る。この第２のマイコン２００は、その中央演算処理装置であるＣＰＵ２０１、プログラムメモリとして用いられるＲＯＭ２０２、データメモリとして用いられるＲＡＭ２０３をはじめ、波形整形回路２０４、タイマＩ／Ｏ２０５、Ａ／Ｄ変換器２０６、入力バッファ２０７、出力バッファ２０８、通信調停回路２０９、及びシリアル通信回路２１０を備えている。
【００１５】
ここで、波形整形回路２０４は、上記「エンジン回転」等の高速ディジタル入力ＨＤＩを入力してこれを２値化整形する回路であり、タイマＩ／Ｏ２０５は、該２値化整形された信号の例えば立上りエッジ周期時間を計時する回路である。この計時される周期時間に基づいて、その都度のエンジン回転数が求まるようになる。
【００１６】
Ａ／Ｄ変換器２０６は、「ノック信号」、「空気流量」、「冷却水温」等のアナログ入力ＡＩを取り込んでこれをディジタル信号に変換する周知の回路である。なお、便宜上図示は割愛したが、これら各アナログ入力ＡＩはアナログマルチプレクサ等の選択回路に一旦取り込まれる。そして、上記ＣＰＵ２０１、或いは後述する通信調停回路２０９によってＡ／Ｄ変換チャネルとして指定されたチャネルに対応する信号だけが該選択回路により選択されて、Ａ／Ｄ変換器２０６によりアナログ／ディジタル変換される。
【００１７】
入力バッファ２０７は、上記「Ａ／Ｃスイッチ」の状態や「ニュートラルスイッチ」の状態等を示す低速ディジタル入力ＬＤＩを一時格納する緩衝回路（メモリ）である。出力バッファ２０８は、上記「Ｏ2 センサヒータ」に対するオン／オフ指令や「ウォーニングランプ」に対するオン／オフ指令等の低速ディジタル出力ＬＤＯを一時格納する緩衝回路（メモリ）である。
【００１８】
通信調停回路２０９及びシリアル通信回路２１０は、上記ＲＡＭ２０３、Ａ／Ｄ変換器２０６、入力バッファ２０７、及び出力バッファ２０８が、第１のマイコン１００からも直接アクセスすることができるように、それらアクセスに関してＣＰＵ２０１との調停を図りつつ、第１のマイコン１００からのアクセス要求やその要求データをシリアル通信する回路である。その具体的な構成、並びに処理態様については、後に図２〜図５を併せ参照して詳述する。
【００１９】
なお、第２のマイコン２００において、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、タイマＩ／Ｏ２０５、Ａ／Ｄ変換器２０６、入力バッファ２０７、出力バッファ２０８、及び通信調停回路２０９は、バスライン２１１に共通接続されている。そして、第２のマイコン２００では、該バスライン２１１を介して、それら各要素間でのデータ授受が行われるようになっている。
【００２０】
一方、エンジン制御を主に司る第１のマイコン１００は、その中央演算処理装置であるＣＰＵ１０１、プログラムメモリとして用いられるＲＯＭ１０２、データメモリとして用いられるＲＡＭ１０３をはじめ、タイマＩ／Ｏ１０５、ＤＭＡ（ダイナミックメモリアクセス）回路１０９、及びシリアル通信回路１１０を備えている。
【００２１】
ここで、タイマＩ／Ｏ１０５は、上述した第２のマイコン２００のタイマＩ／Ｏ２０５と同様、同マイコン２００の波形整形回路２０４によって２値化整形された信号の例えば立上りエッジ周期時間を計時する回路である。この第１のマイコン１００においても、この計時される周期時間に基づいて、その都度のエンジン回転数を求めるようになっている。
【００２２】
また、ＤＭＡ回路１０９及びシリアル通信回路１１０は、第１のマイコン１００が、上記第２のマイコン２００のＲＡＭ２０３、Ａ／Ｄ変換器２０６、入力バッファ２０７、及び出力バッファ２０８に直接アクセスすることができるように、該マイコン２００の上記通信調停回路２０９及びシリアル通信回路２１０と協動して、そのアクセス要求や要求結果データをシリアル通信する回路である。その具体的な構成、並びに処理態様についても、後に図２〜図５を参照して詳述する。
【００２３】
なお、第１のマイコン１００においても、上述した各要素のうち、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、及びタイマＩ／Ｏ１０５は、バスライン１１１に共通接続されており、該バスライン１１１を介して、それら各要素間でのデータ授受が行われる。
【００２４】
次に、図２〜図５を併せ参照して、本実施の形態の装置におけるデータ入出力処理のメカニズムを詳述する。
図２は、上記通信調停回路２０９、シリアル通信回路１１０及び２１０の具体構成を示すとともに、上記各種入出力装置をアクセスする上でのこれら通信調停回路２０９、シリアル通信回路１１０及び２１０を中心としたＣＰＵ１０１とＣＰＵ２０１とのかかわりについて示したものである。
【００２５】
まず、この図２を参照して、それら各回路の構成、並びに機能について説明する。図２に示すように、シリアル通信回路１１０及び２１０は、それぞれ１６ステージからなるシフトレジスタ１１０１及び２１０１を具えて構成されている。
【００２６】
これらシフトレジスタ１１０１及び２１０１は、同図に示される態様でループ状に接続されており、シリアル通信回路１１０側のシフトクロック発生回路１１０２から出力されるシフトクロックＳＣＬＫに基づいて互いのデータが交換されるようになっている。
【００２７】
すなわちこれらシフトレジスタ１１０１及び２１０１では、該シフトクロックＳＣＬＫの１クロック毎に、
・シフトレジスタ１１０１の先頭ビットがシフトレジスタ２１０１の最終ビットに転送される。
・シフトレジスタ２１０１の先頭ビットがシフトレジスタ１１０１の最終ビットに転送される。
といったシフト動作が同時に実行されるものであり、ここでの例の場合、シフトクロックＳＣＬＫが１６クロック出力されることで、それら各シフトレジスタ１１０１及び２１０１にセットされている１６ビット分のデータが全て交換されるようになっている。なお、本装置では、第２のマイコン２００からみて、以下、このシフトレジスタ１１０１にセットされてシフトレジスタ２１０１に転送される１６ビット長のデータ（アクセス要求）をシリアル受信メッセージＳＲＸＤという。一方、シフトレジスタ２１０１にセットされてシフトレジスタ１１０１に転送される１６ビット長のデータをシリアル送信データＳＴＸＤという。
【００２８】
図３には、シフトクロックＳＣＬＫに基づく、シリアル通信回路１１０及び２１０でのデータサンプリング態様を示す。図３に示すように、本実施の形態においては、シフトクロックＳＣＬＫの立下りに同期して上記ビットデータの送信が行われ、同シフトクロックＳＣＬＫの立上りに同期して当該ビットデータのサンプリングが行われる。そして、１６ビット分のデータサンプリングが行われた後、シフトクロックＳＣＬＫが一旦停止される（ｔ１のタイミング）。
【００２９】
なお、上記シフトレジスタ１１０１には、ＣＰＵ１０１から発せられてＲＡＭ１０３に一時格納される上記各種入出力装置（ＲＡＭ２０３、Ａ／Ｄ変換器２０６、入力バッファ２０７、出力バッファ２０８）へのアクセス要求がＤＭＡ回路１０９を通じて直接セットされる。
【００３０】
ここで、シフトレジスタ１１０１にセットされるシリアル受信メッセージＳＲＸＤのデータフォーマット例を図４に示す。
すなわちこのシリアル受信メッセージＳＲＸＤは、同図４に示されるように、その上位３ビット（ｂ１５、ｂ１４、ｂ１３）が要求コマンドを構成し、次の５ビット（ｂ１２、ｂ１１、ｂ１０、ｂ０９、ｂ０８）がアドレス若しくはＡ／Ｄ変換チャネル情報を構成する。残りの下位８ビット（ｂ０７〜ｂ００）は、上記ＲＡＭ２０３や出力バッファ２０８への書き込み要求時に、その書き込みデータがセットされる領域として用いられ、データの読み出し要求やＡ／Ｄ変換要求等にあって、該当するデータがない場合には、適宜のヌルデータやダミーデータがセットされる。
【００３１】
また、上記シフトレジスタ２１０１には、以下に説明する通信調停回路２０９を通じて、最初は適宜のダミーデータがセットされ、上記シリアル受信メッセージＳＲＸＤが受信されて以降は、そのメッセージにあるアクセス要求に応じて、各々該当するシリアル送信データＳＴＸＤがセットされる。このシリアル送信データＳＴＸＤのデータフォーマット例を図５に示す。
【００３２】
すなわちこのシリアル送信データＳＴＸＤは、同図５に示されるように、その上位８ビット（ｂ１５〜ｂ０８）若しくは１０ビット（ｂ１５〜ｂ０６）が上記アクセス要求に応じた返信データ（アクセス結果データ）を構成し、次の第１１ビット（ｂ０５）が、当該データが正常なデータであるか否かを示す判別ビットを構成する。本装置では、上記返信データとして、Ａ／Ｄ変換要求に応じたアクセス結果データ、すなわちＡ／Ｄ変換値のみに１０ビットのデータ長を割り当て、他のＲＡＭ２０３或いは入力バッファ２０７の読み出し要求に応じたアクセス結果データについては８ビットのデータ長を割り当てている。この８ビット長のデータを返信する場合には、残り２ビットに適宜のヌルデータやダミーデータがセットされる。また、下位５ビット（ｂ０４〜ｂ００）には、対応するシリアル受信メッセージＳＲＸＤにおいて指定されている上記アドレス若しくはＡ／Ｄ変換チャネル情報が確認のために添付される。これは、同シリアル受信メッセージＳＲＸＤの上記ビットｂ１２〜ｂ０８からなる５ビットのコピーが用いられる。
【００３３】
一方、通信調停回路２０９は、図２に示されるように、シリアルＩ／Ｏコントローラ２０９１とアドレスセレクタ２０９２とを具えて構成されている。
ここで、シリアルＩ／Ｏコントローラ２０９１は、上記シリアル通信回路１１０及び２１０とＣＰＵ２０１との間に介在して、
（イ）各種入出力装置に対するＣＰＵ２０１によるアクセスと上記シリアル通信回路１１０及び２１０を介してのＣＰＵ１０１によるアクセスとが重ならないようにこれを調停する。
（ロ）シフトレジスタ２１０１に受信されたシリアル受信メッセージＳＲＸＤを解読してその要求コマンドに応じた各種入出力装置（ＲＡＭ２０３、Ａ／Ｄ変換器２０６、入力バッファ２０７、出力バッファ２０８）に対するアクセスを代行し、その結果をシリアル送信データＳＴＸＤとして同シフトレジスタ２１０１にセットする。
といった処理を実行する回路である。このシリアルＩ／Ｏコントローラ２０９１により、ＣＰＵ１０１とＣＰＵ２０１とで、その一方のＣＰＵによるアクセス中は他方のＣＰＵによるアクセスが待たされるようになり、各種入出力装置は、それら２つのＣＰＵによって有効に共有されるようになる。すなわちこの共有に関して、上記低速処理信号であれ高速処理信号であれ、ＣＰＵ１０１は、ＣＰＵ２０１を介すことなく、各種入出力装置に直接アクセスすることができるようになる。
【００３４】
また、通信調停回路２０９を構成するアドレスセレクタ２０９２は、上記バスライン２１１のうち、特にアドレス及びコントロールバス２１１Ａに関してこれを、ＣＰＵ２０１から各種入出力装置（ＲＡＭ２０３、Ａ／Ｄ変換器２０６、入力バッファ２０７、出力バッファ２０８）に至るバスラインと、シリアルＩ／Ｏコントローラ２０９１から同各種入出力装置に至るバスラインとで切り換える回路である。アドレスセレクタ２０９２を通じてバスラインの切り換えが行われることにより、これらＣＰＵ２０１と通信調停回路２０９とでアドレス及びコントロールバス２１１Ａの共有が可能となり、その配設スペースを節約することができるようになる。なお、同バスライン２１１のうち、データバス２１１Ｄはそのまま共有される。
【００３５】
また、第２のマイコン２００のシリアルＩ／Ｏコントローラ２０９１には、第１のマイコン１００のＤＭＡ回路１０９からリセット信号Ｒが入力されている。この信号Ｒは、シリアル通信におけるスタート又はストップを判断するためのタイミング信号としての役割を果たし、例えば、所定時間（具体的には、４ｍｓ）毎に出力されるようになっている。
【００３６】
さらに、本実施形態の装置において、第１のマイコン１００と第２のマイコン２００は信号線３００にて接続されており、第２のマイコン２００から出力されるパルス状の信号（処理完了信号）ＥＯＣＴが第１のマイコン１００に伝達されるようになっている。
【００３７】
より詳しくは、処理完了信号ＥＯＣＴは、第２のマイコン２００のシリアルＩ／Ｏコントローラ２０９１から出力され、信号線３００を介して第１のマイコン１００のＤＭＡ回路１０９及びシリアル通信回路１１０に入力されるようになっている。また、ＤＭＡ回路１０９は、外部エッジ入力によって動作するＤＭＡ機能を有しており、この外部エッジ入力として処理完了信号ＥＯＣＴが割り付けられている。そして、第１のマイコン１００は、この信号ＥＯＣＴの立ち下がりエッジにより第２のマイコン２００側での処理開始を判定するとともに、信号ＥＯＣＴの立ち上がりエッジにより第２のマイコン２００側での処理終了を判定して、次のデータ通信を行うようになっている。
【００３８】
つまり、図３に示すように、ｔ１のタイミングで１６ビット分のデータが全て交換されると、第２のマイコン２００側にて、シフトレジスタ２１０１に受信されたシリアル受信メッセージが解読される。その後、シリアル受信メッセージの要求コマンドに応じた処理が開始されるとき（ｔ２のタイミング）、処理完了信号ＥＯＣＴが論理ローレベルに立ち下げられる。そして、ｔ３のタイミングにおいて、同信号ＥＯＣＴの電位レベルが、ＤＭＡ回路１０９における入力のスレッショルドレベル以下となると、第１のマイコン１００側にて、その信号ＥＯＣＴの立ち下がりエッジが検出される。そのエッジ検出に基づき、ｔ４のタイミングにて次のシリアル受信メッセージＳＲＸＤがＲＡＭ１０３及びＤＭＡ回路１０９を通じてシフトレジスタ１１０１にセットされる。また、第２のマイコン２００側にて、要求コマンドに対応する処理が終了した後、ｔ５のタイミングにて、信号ＥＯＣＴが論理ハイレベルに立ち上げられる。すると、第１のマイコン１００にて、同信号ＥＯＣＴの立ち上りエッジが検出され、そのエッジ検出に基づき、ｔ６のタイミングにてシフトクロックＳＣＬＫが再起動されて次のデータ通信が行われる。
【００３９】
このように、本実施形態の装置において、パルス状の処理完了信号ＥＯＣＴを通信のタイミング信号として利用している。また、処理完了信号ＥＯＣＴを伝達するための上記信号線３００には、配線抵抗や浮遊容量が存在しているため、それらのフィルタ成分によって、信号ＥＯＣＴは信号線３００を通じてなまされてしまう。つまり、図３のｔ２のタイミングで、第２のマイコン２００により、信号ＥＯＣＴが論理ローレベルに立ち下げられるが、信号線３００におけるフィルタ成分が存在することにより、第１のマイコン１００側での電位レベルが信号認識レベルとしてのスレッショルドレベル以下（ｔ３のタイミング）となるまでに時間がかかってしまう。それ故、このｔ２〜ｔ３の時間よりも処理完了信号ＥＯＣＴのパルス幅Ｔが短くなると、信号レベルがスレッショルドレベル以下に低下することなく、第１のマイコン１００にて信号ＥＯＣＴを認識することができなくなる。この場合、マイコン間での通信を正常に行うことができなくなる。
【００４０】
従って、本実施の形態では、信号線３００におけるＣＲフィルタ（配線抵抗及び浮遊容量）の時定数τに基づいて最小パルス幅Ｔｍｉｎを予め設定しておき、処理完了信号ＥＯＣＴのパルス幅Ｔが最小パルス幅Ｔｍｉｎ以上（Ｔ＞Ｔｍｉｎ）となるように構成している。
【００４１】
ここで、最小パルス幅Ｔｍｉｎの設定方法について説明する。
上記ＤＭＡ回路１０９におけるスレッショルドレベルとしては、図６（ａ）のように、立ち下がり側及び立ち上がり側のスレッショルドレベルが同一の場合や、図６（ｂ）のように、立ち下がり側と立ち上がり側とのスレッショルドレベルが相違する場合がある。そのため、これらの場合を考慮して、最低でも立ち下がり側スレッショルドレベルを横切るように、最小パルス幅Ｔｍｉｎを決定している。具体的には、前記信号線３００におけるＣＲフィルタの時定数τに対し、「Ｔｍｉｎ≧τ」の関係となるように設定している。なお、時定数τは、温度変化、耐久変化等を考慮した最大値を用いる。また、図７には、処理完了信号ＥＯＣＴの立ち下げ時における信号レベルの変化を示している。図７に示すように、信号ＥＯＣＴが、論理ハイレベル（５Ｖ）から論理ローレベル（０Ｖ）に変化する際に、時定数τの時間経過に従いその信号レベルは６３．２％低下する。よって、時定数τの経過後の信号レベルは、マイコン１００のスレッショルドレベル（例えば、２〜３Ｖ）以下に低下することとなる。つまり、処理完了信号ＥＯＣＴのパルス幅を時定数τ以上確保すれば、信号レベルはスレッショルドレベルを横切ることとなり、マイコン１００側にて処理完了信号ＥＯＣＴを確実に認識できる。
【００４２】
図８は、第２のマイコン２００のシリアルＩ／Ｏコントローラ２０９１を通じて実行されるＩ／Ｏ制御ルーチンを示したものであり、以下に、この図８を併せ参照して、本実施形態のデータ転送を詳述する。
【００４３】
同図８に示すように、シリアルＩ／Ｏコントローラ２０９１では、ステップＳ１００において、シフトクロックＳＣＬＫの状態に基づいてシリアル通信回路１１０からの受信メッセージＳＲＸＤの有無を常時監視している。そして、この受信メッセージＳＲＸＤの到来があると、ステップＳ１１０に移行し、信号ＥＯＣＴの論理レベルを「Ｌ」とした後、ステップＳ１２０にて、タイマＩ／Ｏ２０５により現在時刻を検出し開始時刻Ｔｓｔａｒｔとして取り込む。続くステップＳ１３０では、受信メッセージＳＲＸＤに含まれるコマンド（上位３ビット）を解読し、該解読したコマンドの内容に応じて、
（Ａ）ＲＡＭ２０３へのデータ書き込み要求
（Ｂ）ＲＡＭ２０３からのデータ読み出し要求
（Ｃ）Ａ／Ｄ変換要求
にそれぞれ対応したステップＳ１４０，Ｓ１５０の処理、ステップＳ１６０，Ｓ１７０の処理、及びステップＳ１８０，Ｓ１９０の処理を実行する。
【００４４】
すなわちいま、上記解読したコマンドが「ＲＡＭ２０３へのデータ書き込み要求（０１０）」であったとすると、シリアルＩ／Ｏコントローラ２０９１は、ステップＳ１４０にて、受信メッセージＳＲＸＤに含まれる書き込みデータをＲＡＭ２０３へ格納する。そして、続くステップＳ１５０にてシフトレジスタ２１０１にダミーデータをセットした後ステップＳ２００に移行する。
【００４５】
また、ステップＳ１３０にて読解したコマンドが「ＲＡＭ２０３からのデータ読み出し要求（００１）」であった場合、シリアルＩ／Ｏコントローラ２０９１は、ステップＳ１６０において、受信メッセージＳＲＸＤに含まれる読み出しアドレスに基づいてＲＡＭ２０３から要求データを読み出す。そして、続くステップＳ１７０にて、シフトレジスタ２１０１に読み出しデータをセットした後ステップＳ２００に移行する。
【００４６】
さらに、ステップＳ１３０にて読解したコマンドが「Ａ／Ｄ変換要求（０１１）」であった場合、シリアルＩ／Ｏコントローラ２０９１は、ステップＳ１８０にて、その指定されているＡ／Ｄ変換チャネル（ｃｈ）を選択し、前記Ａ／Ｄ変換器２０６を起動する。続くステップＳ１９０では、そのＡ／Ｄ変換結果をシフトレジスタ２１０１にセットした後、ステップＳ２００に移行する。
【００４７】
そして、ステップＳ２００にて、シリアルＩ／Ｏコントローラ２０９１は、タイマＩ／Ｏ２０５により現在時刻を検出し終了時刻Ｔｓｔｏｐとして取り込んだ後、ステップＳ２１０に移行する。ここで、ステップＳ２１０で取り込んだ終了時刻ＴｓｔｏｐからステップＳ１２０で取り込んだ開始時刻Ｔｓｔａｒｔを減算することにより、処理完了信号ＥＯＣＴを「Ｌ」としている時間（Ｔｓｔｏｐ−Ｔｓｔａｒｔ）を求め、その時間が前記最小パルス幅Ｔｍｉｎ以上か否かを判定する。なおここで、処理完了信号ＥＯＣＴを「Ｌ」としている時間（Ｔｓｔｏｐ−Ｔｓｔａｒｔ）は、処理完了信号ＥＯＣＴのパルス幅に相当する時間であり、ステップＳ２１０では、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎ以上となったか否かを判定することとなる。そして、ステップＳ２１０にて否定判別した場合、ステップＳ２００に戻り、再び現在時刻を検出して終了時刻Ｔｓｔｏｐとして取り込む。つまり、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎよりも短ければ、ステップＳ２１０にて否定判別され続け、その際の時間経過に応じて終了時刻Ｔｓｔｏｐが更新される。そして、処理完了信号ＥＯＣＴのパルス幅（Ｔｓｔｏｐ−Ｔｓｔａｒｔ）が最小パルス幅Ｔｍｉｎ以上となると、ステップＳ２１０にて肯定判別してステップＳ２２０に移行する。ステップＳ２２０にてシリアルＩ／Ｏコントローラ２０９１は、処理完了信号ＥＯＣＴの論理レベルを「Ｈ」とした後、ステップＳ１００に戻り、再びステップＳ１００以降の処理を実施する。
【００４８】
具体的に、１６ＭＨｚのクロック周波数で第２のマイコン２００が動作する場合、データ読み出しやデータ書き込みの処理時間は０．３μｓと短くなり、そのデータ読み出しやデータ書き込みの際には、ステップＳ２１０にて否定判別されることとなる。これにより、処理完了信号ＥＯＣＴを論理ハイレベルに立ち上げるタイミングが遅らされ、処理完了信号ＥＯＣＴのパルス幅が延長される。一方、Ａ／Ｄ変換の処理時間は、フラッシュ方式のＡ／Ｄ変換器を採用すると１μｓ程度と短いが、逐次比較方式のＡ／Ｄ変換器を採用すると２０μｓ程度と長くなる。そのため、逐次比較方式のＡ／Ｄ変換の際には、ステップＳ１８０〜Ｓ２００の処理に続くステップＳ２１０にて肯定判別され、ステップＳ２２０で処理完了信号ＥＯＣＴが論理ハイレベルに立ち上げられることとなる。この場合、処理完了信号ＥＯＣＴのパルス幅は、Ａ／Ｄ変換の処理時間に応じたパルス幅となる。
【００４９】
なお、本実施形態では、図８のステップＳ１２０及びステップＳ２００の処理が計測手段に相当し、ステップＳ２１０の処理がパルス幅延長手段に相当する。
次に、本実施形態における処理完了信号ＥＯＣＴの出力例を図９のタイムチャートを用いて説明する。
【００５０】
図９に示すように、（ａ）のシフトクロックＳＣＬＫに基づいてメッセージが交換され、その際、受信メッセージに含まれるコマンドが「Ａ／Ｄ変換要求」である場合、Ａ／Ｄ変換の処理時間は、最小パルス幅Ｔｍｉｎよりも長くなる。この場合、Ａ／Ｄ変換の処理時間に応じたパルス幅の処理完了信号ＥＯＣＴが出力される。一方、（ｂ）のシフトクロックＳＣＬＫに基づいてメッセージが交換され、その際、受信メッセージに含まれるコマンドが「データ読み出し要求」である場合、データ読み出しの処理時間は、最小パルス幅Ｔｍｉｎよりも短くなる。この場合、処理完了信号ＥＯＣＴを論理ハイレベルに立ち上げるタイミングが遅らされて、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎ以上となるように延長される。
【００５１】
また、図８のステップＳ１１０にてシリアルＩ／Ｏコントローラ２０９１により処理完了信号ＥＯＣＴが論理ローレベルに立ち下げられた後に、第２のマイコン２００内のＣＰＵ２０１がＲＡＭ２０３をアクセスすることが考えられる。そのＲＡＭアクセスに際して、優先順位が図８の処理よりも高く設定されている場合には、ステップＳ１３０以降の処理が待たされる可能性がある。また特に、ＣＰＵ２０１による処理がＲＡＭ２０３の所定領域のデータをバースト転送する等の処理であると、長い時間待たされることとなる。従って、図９に示すように、（ｂ）と同じく（ｃ）での受信メッセージのコマンドが「データ読み出し要求」であったとしても、データ読み出し処理が最小パルス幅Ｔｍｉｎよりも長くなる場合があり、その場合には、その処理時間に応じたパルス幅の処理完了信号ＥＯＣＴが出力されることとなる。
【００５２】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
（１）最小パルス幅Ｔｍｉｎを信号線３００におけるフィルタの時定数τよりも長く設定しておき、その都度の処理時間に基づいて、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎ以上となるように規制した。この場合、マイコン処理の高速化が図られることにより処理時間が短くなったとしても、処理完了信号ＥＯＣＴが最小パルス幅Ｔｍｉｎよりも短くなることがなく、信号線３００においてパルス状の処理完了信号ＥＯＣＴがなまされて認識できなくなるといった不都合を回避できる。その結果、シリアル通信の異常を防止できる。
【００５３】
（２）最小パルス幅Ｔｍｉｎを、信号線３００におけるフィルタの時定数τよりも長くした。この場合、処理回路の複雑化により信号線３００の配線抵抗や浮遊容量が大きくなり、それに伴いフィルタ時定数が大きくなったとしても、処理完了信号ＥＯＣＴの変化時には、その信号レベルが第１のマイコン１００でのスレッショルドレベルを超えるので、第１のマイコン１００は処理完了信号ＥＯＣＴを確実に認識することができる。
【００５４】
（３）要求コマンドに対応する処理時間が最小パルス幅Ｔｍｉｎよりも短ければ、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎ以上とされる。一方、要求コマンドに対応する処理時間が最小パルス幅Ｔｍｉｎよりも長ければ、処理完了信号ＥＯＣＴのパルス幅が処理時間に応じたパルス幅とされる。この場合、要求コマンドに対応する処理時間が短く、必要がある時のみに処理完了信号ＥＯＣＴのパルス幅が延長されるので、実用上好ましいものとなる。
【００５５】
（４）実際に出力している処理完了信号ＥＯＣＴのパルス幅が計測され、そのパルス幅が最小パルス幅よりも短ければ、最小パルス幅Ｔｍｉｎ以上となるようにパルス幅が延長されるので、的確なパルス幅の処理完了信号ＥＯＣＴを出力することができる。
【００５６】
なお本発明は、上記以外に次の形態にて具体化できる。
上記実施の形態では、図８に示すＩ／Ｏ制御ルーチンにおいて、ステップＳ１９０のＡ／Ｄ変換結果のセット処理を行った後ステップＳ２００に移行している。この場合、処理の共通化という点で好ましいが、例えば、ステップＳ１９０の処理後において、ステップＳ２００及びＳ２１０を迂回してステップＳ２２０に移行するようにしてもよい。つまり、Ａ／Ｄ変換時間は、書き込みや読み出し処理と比較して十分長く、最小パルス幅Ｔｍｉｎ以下となることはないので、ステップＳ２００，Ｓ２１０の処理を行うことなく、ステップＳ２２０に移行して信号ＥＯＣＴを「Ｈ」レベルとする。このように、処理時間が最小パルス幅Ｔｍｉｎよりも長くなるコマンド（Ａ／Ｄ変換要求）と短くなるコマンド（書き込み要求、読み出し要求）とを予め区分しておき、要求コマンドが処理時間の短いコマンドである場合にのみ、パルス幅を延長させるための処理（ステップＳ２００，Ｓ２１０）を実施するように構成する。このようにすると、要求コマンドが処理時間の長いコマンドである場合には、パルス幅を延長させるための処理が省略され、その処理を省略した分だけ処理負荷を低減できる。よって、処理完了信号ＥＯＣＴのパルス幅を短くすることができ、シフトクロックＳＣＬＫの再起動を迅速に行うことが可能となり、通信遅れを抑制できる。
【００５７】
上記実施の形態では、処理完了信号ＥＯＣＴのパルス幅を計測し、最小パルス幅Ｔｍｉｎ以上となるように信号ＥＯＣＴのパルス幅を変更するものであったが、これに限定するものではない。例えば、処理時間が最小パルス幅Ｔｍｉｎよりも短いコマンド（読み出し、書き込み要求等）である場合、処理完了信号ＥＯＣＴのパルス幅が最小パルス幅Ｔｍｉｎ以上となるように予め設定した所定時間（例えば、２μｓ）だけパルス幅を延長するように構成してもよい。具体的には、図８のステップＳ１５０又はステップＳ１７０の処理後において、所定時間（２μｓ）が経過するまで待機し、その経過後にステップＳ２２０に移行して処理完了信号ＥＯＣＴを論理ハイレベルに立ち上げるようにする。一方、処理時間が最小パルス幅Ｔｍｉｎよりも長いコマンド（Ａ／Ｄ変換要求）である場合、図８のステップＳ１９０の処理後、ステップＳ２２０に移行して処理完了信号ＥＯＣＴを論理ハイレベルに立ち上げるようにする。また例えば、処理時間に拘わらず全ての処理について、予め設定した所定時間（例えば、２μｓ）だけパルス幅を延長するように構成してもよい。要は、処理完了信号ＥＯＣＴのパルス幅を最小パルス幅Ｔｍｉｎ以上に規制するものであればよい。このように、パルス幅を最小パルス幅Ｔｍｉｎ以上とすることにより、第１のマイコン１００側にて処理完了信号ＥＯＣＴを確実に認識することができるので、通信異常を防止できる。
【００５８】
上記実施の形態において、信号線３００に直列に抵抗素子を追加して具体化してもよし、信号線３００にノイズ除去用のコンデンサを追加して具体化してもよい。この場合、追加した抵抗素子及びコンデンサを考慮して、信号線３００上の抵抗成分及び容量成分を求め、そのフィルタの時定数τよりも長い最小パルス幅Ｔｍｉｎを設定する。
【００５９】
上記実施の形態では、最小パルス幅Ｔｍｉｎ≧τ（τは、信号線３００におけるフィルタ時定数）としたが、これに限定するものではなく、最小パルス幅Ｔｍｉｎ≧τ×α（但し、α＞１）としてもよい。例えば、最小パルス幅Ｔｍｉｎ≧２．５τとする場合、処理完了信号ＥＯＣＴを論理ローレベルに立ち下げる際に２．５τの時間が経過すると、信号レベルは９０％以上低下することとなる。よって、最小パルス幅Ｔｍｉｎ≧２．５τとすることにより、処理完了信号ＥＯＣＴの認識をより確実に行うことができる。
【００６０】
また、上記実施の形態において、処理完了信号ＥＯＣＴは、低電位レベルがオン状態を表すアクティブローのパルス信号として具体化するものであったが、高電位レベルがオン状態を表すアクティブハイのパルス信号として具体化してもよい。
【図面の簡単な説明】
【図１】発明の実施の形態における電子制御装置の概要を示すブロック図。
【図２】通信調停回路及びその周辺回路を詳細に示すブロック図。
【図３】シリアル通信回路でのデータ取り込み態様を示すタイムチャート。
【図４】受信メッセージのフォーマットを説明するための図。
【図５】送信メッセージのフォーマットを説明するための図。
【図６】処理完了信号とスレッショルドレベルとの関係を示す図。
【図７】処理完了信号の電位レベルの変化を示すタイムチャート。
【図８】シリアルＩ／Ｏコントローラにて実行されるＩ／Ｏ制御ルーチンを示すフローチャート。
【図９】シフトクロック及び処理完了信号を表すタイムチャート。
【図１０】シフトクロック及び処理完了信号を表すタイムチャート。
【図１１】シフトクロック及び処理完了信号を表すタイムチャート。
【図１２】シフトクロック及び処理完了信号を表すタイムチャート。
【符号の説明】
１００…第１のマイコン、２００…第２のマイコン、３００…信号線、ＥＯＣＴ…処理完了信号、Ｔｍｉｎ…最小パルス幅、τ…時定数。
【図１】
0003666390.tif 000002
【図２】
0003666390.tif 000003
【図３】
0003666390.tif 000004
【図４】
0003666390.tif 000005
【図５】
0003666390.tif 000006
【図６】
0003666390.tif 000007
【図７】
0003666390.tif 000008
【図８】
0003666390.tif 000009
【図９】
0003666390.tif 000010
【図１０】
0003666390.tif 000011
【図１１】
0003666390.tif 000012
【図１２】
0003666390.tif 000013