(57)【要約】【課題】早急なパルス出力の要求があった場合でも、パルス出力を精度よく行う。【解決手段】マイクロコンピュータ（１）は、タイマ（２）と、タイマを制御するＣＰＵ（３）とを備える。タイマは、カウンタ（１０）、コンペアレジスタ（１１）、強制コンペアマッチ制御回路（１２）、比較回路（１３）及び出力制御回路（１４）を有する。カウンタは、クロック信号をカウントする。コンペアレジスタは、ＣＰＵがアクセス可能であって、所定の設定値を保持する。比較回路は、カウンタのカウンタ値とレジスタの設定値とを比較する。強制コンペアマッチ制御回路は、ＣＰＵにより、強制コンペアマッチ要求フラグＦＧがセットされると、カウンタのカウンタ値をコンペアレジスタにロードすると共に、比較回路からタイマ出力信号をエッジ変化させるための一致信号（１７）を出力させる。出力制御回路は、一致信号に応じてタイマ出力信号（２０）をエッジ変化させる。【選択図】図１
2007193416.tif 000002
【特許請求の範囲】
【請求項１】
タイマと、前記タイマを制御する中央処理装置とを備えた半導体集積回路であって、
前記タイマは、クロック信号をカウントするカウンタと、
前記中央処理装置がアクセス可能なレジスタと、
前記カウンタのカウンタ値と前記レジスタの設定値とを比較する比較回路と、
前記比較回路の一致結果に応じて、出力信号をエッジ変化させる出力制御回路と、
前記出力信号の状態を変更させるための指示に応答して、前記カウンタのカウンタ値を前記レジスタにロードすると共に、前記比較回路から前記出力信号をエッジ変化させるための一致信号を出力させるコンペアマッチ制御回路と、を有し、
前記中央処理装置は、前記カウンタからロードされた値を読出し、前記値に所要の値を加算した加算結果を前記レジスタに書込むための制御を行う半導体集積回路。
【請求項２】
タイマと、前記タイマを制御する中央処理装置とを備えた半導体集積回路であって、
前記タイマは、クロック信号をカウントするカウンタと、
前記中央処理装置がアクセス可能な第１レジスタ及び第２レジスタと、
前記カウンタのカウンタ値と前記第１レジスタの設定値とを比較する比較回路と、
前記比較回路の一致結果に応じて、出力信号をエッジ変化させる出力制御回路と、
前記出力信号の状態を変更させるための指示に応答して、前記カウンタのカウンタ値を前記第１レジスタにロードすると共に、前記比較回路から前記出力信号をエッジ変化させるための一致信号を出力させるコンペアマッチ制御回路と、
前記出力信号の状態を変更させるための指示に応答して、前記カウンタから前記第１レジスタにロードされた値と、前記第２レジスタの所要の値とを入力して加算し、加算結果を前記第１レジスタに出力する加算回路と、を備えた半導体集積回路。
【請求項３】
前記変更させるための指示は、前記中央処理装置と前記タイマが共通接続された内部バスとは異なる専用線によって、前記コンペアマッチ制御回路に入力される請求項１又は請求項２記載の半導体集積回路。
【請求項４】
前記加算回路は、前記第１レジスタに専用バスを介して接続される請求項２記載の半導体集積回路。
【請求項５】
中央処理装置と、前記中央処理装置によって制御されるタイマとを有し、
前記タイマは、カウンタと、
前記中央処理装置によってアクセス可能なレジスタと、
前記カウンタの計数値が前記レジスタの設定値に一致するかを判定し、一致判定に基づいて出力をエッジ変化させる出力回路と、
外部からの指示に応答して、前記出力回路の出力をエッジ変化させ、且つ、そのときの前記カウンタの計数値を前記レジスタにロードする制御回路と、を備えた半導体集積回路。
【請求項６】
前記中央処理装置は、前記カウンタから前記レジスタにロードされた計数値を読込み、前記読込んだ計数値に所定の値を加算して、前記レジスタに書き戻す請求項５記載の半導体集積回路。
【請求項７】
前記中央処理装置によってアクセスされる別のレジスタと、
前記外部からの指示に応答して、前記カウンタから前記レジスタにロードされた計数値と前記別のレジスタの所要の値とを入力して加算し、加算結果を前記レジスタに出力する演算回路と、を更に備えた請求項５記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマを備えた半導体集積回路に関し、例えば自動車等のエンジン制御用のマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
例えばエンジン制御用のマイクロコンピュータは、タイマで生成されるパルス信号を、エンジンの吸気管または燃焼室に燃料を噴射するインジェクタに出力して、エンジン制御を行う。従来のタイマは、カウンタ、コンペアレジスタ、比較回路及び出力制御回路を備えている。比較回路は、カウンタのカウンタ値とコンペアレジスタの設定値を比較して、これらの値が一致すると（以下、コンペアマッチと記す）、一致信号を生成して、出力制御回路に出力する。出力制御回路は、マイクロコンピュータの中央処理装置（ＣＰＵ）によって設定可能であり、例えば最初のコンペアマッチで出力信号をローレベルからハイレベルに変化させ、次のコンペアマッチでハイレベルからローレベルに変化させるように設定することで、一致信号に応じたエッジ変化を可能とする。
【０００３】
コンペアレジスタは、ＣＰＵによって設定可能であり、最初のコンペアマッチが発生するまでの時間に相当する値が設定され、最初のコンペアマッチが発生した後に、次のコンペアマッチが発生するまでの時間、即ち、パルス幅に相当する値が加算された値が設定される。このようにして、従来のタイマを備えたマイクロコンピュータは、所定のパルス幅を有するパルス信号を所定のタイミングで出力可能である。特許文献１には、カウンタとタイミングレジスタの内容を比較し、一致した場合に信号を出力するコンペアマッチレジスタを備えたＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）パルス発生装置の記載がある。このＰＷＭパルス発生装置では、コンペアマッチレジスタの出力信号に応じた所定のパルスパターンを発生する。
【０００４】
【特許文献１】特開平８−１９２６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明者は、コンペアマッチが発生するまでの時間が設定された後に、例えば運転者がアクセルを踏み込み、インジェクタに対する早急なパルス出力が要求された場合に、パルス出力を効率的に行う手段について検討した。従来のタイマを備えたマイクロコンピュータでは、ＣＰＵが、早急なパルス出力が要求された時のカウンタ値をタイマから読出し、読出したカウンタ値に「２」を加算し、加算結果をコンペアレジスタに書込む処理を行う。読出したカウンタ値に「２」を加算する理由は、例えば、仮に「１」だけ加算すると、ＣＰＵの上記処理が終了する前に、カウンタがカウントアップされ、カウンタ値がコンペアレジスタの設定値を上回ってしまう可能性があるからである。これでは、カウンタがオーバーフローして、再び０からカウントアップされるまで、コンペアマッチを発生させることができない。
【０００６】
このように、上記マイクロコンピュータでは、ＣＰＵは、いつ発生するか予測できない早急なパルス出力の要求に対応して、上記処理を行う必要があるから、コンペアマッチが発生するまでの時間は待機しなければならず、効率が低下してしまう。
【０００７】
このような従来のタイマに対して、早急なパルス出力の要求があった場合に、強制的にコンペアマッチを発生させて、比較回路から一致信号を出力させる強制コンペアマッチ制御回路を備えたタイマが知られている。このタイマを備えたマイクロコンピュータでは、早急なパルス出力の要求に対応して、出力信号をローレベルからハイレベルにエッジ変化させる場合に、ＣＰＵが上記処理を行う必要がないから、ＣＰＵの効率が低下することがない。
【０００８】
そして、ＣＰＵは、強制コンペアマッチ制御回路によるコンペアマッチが発生し、比較回路から一致信号が出力された後に、カウンタからカウンタ値を読出し、読出したカウンタ値にパルス幅に相当する値を加算し、加算結果をコンペアレジスタに書込む処理を行う。しかしながら、ＣＰＵとカウンタは、並行して動作しているから、ＣＰＵが読出したカウンタ値と、強制コンペアマッチ制御回路によるコンペアマッチ時のカウンタ値とが一致しない可能性が高い。つまり、カウンタでは、コンペアマッチ時から、実際にＣＰＵからアクセスされるまでの間に、既に数カウント経過しているから、その分、カウンタ値が変動している。その結果、上記マイクロコンピュータでは、パルス信号をハイレベルからローレベルにエッジ変化させる場合に、カウンタ値の変動を考慮した上で、パルス幅に相当する値を加算することは困難となってしまう。言い換えると、上記マイクロコンピュータでは、早急なパルス出力の要求に対応して、出力信号をハイレベルからローレベルにエッジ変化させる場合に、ローレベルにすべきタイミングの精度が低下してしまう。
【０００９】
本発明の目的は、早急なパルス出力の要求があった場合でも、パルス出力を精度よく行うことができる半導体装置を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
〔１〕本発明に係る半導体集積回路は、タイマ（２）と、前記タイマを制御する中央処理装置（３）とを備える。前記タイマは、カウンタ（１０）、レジスタ（１１）、比較回路（１３）、出力制御回路（１４）及びコンペアマッチ制御回路（１２）を有する。カウンタは、クロック信号をカウントする。レジスタは、前記中央処理装置がアクセス可能である。比較回路は、前記カウンタのカウンタ値と前記レジスタの設定値とを比較する。出力制御回路は、前記比較回路の一致結果に応じて、出力信号（２０）をエッジ変化させる。コンペアマッチ制御回路は、前記出力信号の状態を変更させるための指示に応答して、前記カウンタのカウンタ値を前記レジスタにロードすると共に、前記比較回路から前記出力信号をエッジ変化させるための一致信号（１７）を出力させる。前記中央処理装置は、前記カウンタからロードされた値を読出し、前記値に所要の値を加算した加算結果を前記レジスタに書込むための制御を行う。
【００１３】
上記より、例えば出力信号の状態をローレベルからハイレベルに変更させるための指示があれば、コンペアマッチ制御回路が強制的にコンペアマッチを発生させて、比較回路から一致信号を出力させるから、中央処理装置に負担をかけずに、エッジ変化を行うことができる。また、コンペアマッチ時のカウンタ値は、コンペアマッチ制御回路によりレジスタにロードされている。そこで、中央処理装置は、カウンタではなく、レジスタにアクセスして、ロードされたカウンタ値を読出すことにより、正確なカウンタ値を基準にして、例えばパルス幅に相当する値である所要の値を加算して、加算結果をレジスタに書込むことができる。これにより、出力信号の状態をハイレベルからローレベルにすべきタイミングを精度よく設定することができる。従って、出力信号の状態を変更させるための指示があった場合でも、パルス出力を精度よく行うことができる。
【００１４】
〔２〕本発明に係る半導体集積回路は、タイマ（２Ａ）と、前記タイマを制御する中央処理装置とを備える。前記タイマは、カウンタと、第１レジスタ（１１）及び第２レジスタ（２６）と、比較回路と、出力制御回路と、コンペアマッチ制御回路（１２Ａ）と、加算回路（２７）と、を備える。カウンタは、クロック信号をカウントする。第１レジスタ及び第２レジスタは、前記中央処理装置がアクセス可能である。比較回路は、前記カウンタのカウンタ値と前記第１レジスタの設定値とを比較する。出力制御回路は、前記比較回路の一致結果に応じて、出力信号をエッジ変化させる。コンペアマッチ制御回路は、前記出力信号の状態を変更させるための指示に応答して、前記カウンタのカウンタ値を前記第１レジスタにロードすると共に、前記比較回路から前記出力信号をエッジ変化させるための一致信号を出力させる。加算回路は、前記出力信号の状態を変更させるための指示に応答して、前記カウンタから前記第１レジスタにロードされた値と、前記第２レジスタの所要の値とを入力して加算し、加算結果を前記第１レジスタに出力する。
【００１５】
上記より、例えば出力信号の状態をローレベルからハイレベルに変更させるための指示があれば、上記同様に、中央処理装置に負担をかけることなく、出力信号をエッジ変化させることができる。さらに、第２レジスタに所要の値として例えばパルス幅に相当する値を予め格納させておけば、加算回路が第１レジスタ及び第２レジスタの値を入力して、加算結果を第１レジスタに出力するので、出力信号のハイレベルからローレベルのエッジ変化において、中央処理装置の処理が不要となる。このように、出力信号のエッジ変化に伴う中央処理装置の負担を軽減できる上に、パルス出力を精度よく行うことができる。
【００１６】
本発明の具体的な一つの形態として、前記変更させるための指示は、前記中央処理装置と前記タイマが共通接続された内部バス（６）とは異なる専用線（２１）によって、前記コンペアマッチ制御回路に入力される。上記より、出力信号の状態を変更させるための指示は、内部バスの使用状況にかかわらず、確実に入力されるから、例えば中央処理装置がコンペアマッチ制御回路に指示を出力する場合に待機することがない。
【００１７】
本発明の具体的な一つの形態として、前記加算回路は、前記第１レジスタに専用バス（２８）を介して接続される。上記より、加算回路は、第１レジスタに対する値の入出力を、中央処理装置を介さずに行うことができる。
【００１８】
〔３〕本発明に係る半導体集積回路は、中央処理装置と、前記中央処理装置によって制御されるタイマとを有する。前記タイマは、カウンタ、レジスタ、出力回路及び制御回路を備える。レジスタは、前記中央処理装置によってアクセス可能である。出力回路は、前記カウンタの計数値が前記レジスタの設定値に一致するかを判定し、一致判定に基づいて出力をエッジ変化させる。制御回路は、外部からの指示に応答して、前記出力回路の出力をエッジ変化させ、且つ、そのときの前記カウンタの計数値を前記レジスタにロードする。
【００１９】
上記より、外部からの指示に応答して、コンペアマッチ発生時のカウンタの計数値を取得できる。そして、この取得した計数値を用いると、次回のコンペアマッチまでの時間、即ち、パルス幅に相当する値を正確に設定できる。これにより、外部からの指示として、例えば出力を早急にエッジ変化させる指示がある場合でも、パルス出力を精度よく行うことができる。
【００２０】
本発明の具体的な一つの形態として、前記中央処理装置は、前記カウンタから前記レジスタにロードされた計数値を読込み、前記読込んだ計数値に所定の値を加算して、前記レジスタに書き戻す。上記より、中央処理装置は、コンペアマッチ時のカウンタ値を基準にして、次のコンペアマッチまでの時間、例えばパルス幅に相当する値を所定の値として処理を行うことにより、出力信号のハイレベルからローレベルへのエッジ変化におけるタイミングを精度よく設定することができる。
【００２１】
本発明の具体的な一つの形態として、前記中央処理装置によってアクセスされる別のレジスタと、前記外部からの指示に応答して、前記カウンタから前記レジスタにロードされた計数値と前記別のレジスタの所要の値とを入力して加算し、加算結果を前記レジスタに出力する演算回路と、を更に備える。上記より、出力信号のハイレベルからローレベルのエッジ変化において、別のレジスタと演算回路を用いることにより、中央処理装置への負担を軽減した上で、出力信号のハイレベルからローレベルへのエッジ変化におけるタイミングを精度よく設定することができる
【発明の効果】
【００２２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２３】
即ち、早急なパルス出力の要求があった場合でも、パルス出力を精度よく行うことができる。
【発明を実施するための最良の形態】
【００２４】
図１には、本発明の実施形態１に係る半導体集積回路の一例であるマイクロコンピュータの概略構成が例示される。マイクロコンピュータ１は、例えば自動車等のエンジン制御システムに用いられ、エンジンの吸気管または燃焼室に燃料を噴射するインジェクタにパルス信号を出力して、エンジン制御を行う。マイクロコンピュータ１は、タイマ２と中央処理装置（ＣＰＵ）３等とを備えている。ＣＰＵ３は、リードオンリーメモリ（ＲＯＭ）４に格納されたプログラム等に基づいてマイクロコンピュータ１の全ての制御を行う。ＲＯＭ４は、ＣＰＵ３が実行すべきプログラムや固定データを記憶する。ランダムアクセスメモリ（ＲＡＭ）５は、ＣＰＵ３による演算結果を記憶し、また、ＣＰＵ３の作業領域ともなる。タイマ２、ＣＰＵ３、ＲＯＭ４及びＲＡＭ５は、内部バス６を介してそれぞれ接続されている。
【００２５】
タイマ２は、インジェクタによる燃料の噴射を制御するためのパルス信号等を生成するモジュールであって、カウンタ１０と、コンペアレジスタ１１と、強制コンペアマッチ制御回路１２と、比較回路１３と、出力制御回路１４等を備えている。カウンタ１０は、クロック信号をカウントし、その計数値（以下、カウンタ値と記す）を記憶する機能を有する。カウンタ１０は、クロック信号に同期して、カウンタ値を例えばカウントアップする。コンペアレジスタ１１は、ＣＰＵ３がアクセス可能であって、所定の設定値が設定される。比較回路１３は、信号線１５を介して入力されたカウンタ１０のカウンタ値と、信号線１６を介して入力されたコンペアレジスタ１１の設定値とを比較する。比較回路１３は、これらの値が一致すれば、一致信号１７，１８を生成する。つまり、一致信号１７，１８は、コンペアマッチ発生時に生成されることになる。一致信号１７は、比較回路１３により出力制御回路１４に出力される。また、一致信号１８は、比較回路１３により出力制御回路１４ではなく、マイクロコンピュータ１内の図示を省略する周辺回路等に出力され、各種制御に用いられる。
【００２６】
出力制御回路１４は、内部バス６と信号線１９を介してＣＰＵ３より設定可能とされる。出力制御回路１４は、ＣＰＵ３によって、例えば最初に一致信号１７が入力されると、出力信号（以下、タイマ出力信号と記す）２０の状態をローレベルからハイレベルにエッジ変化させ、次に一致信号１７が入力されると、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させるように、予め設定される。これにより、出力制御回路１４は、一致信号１７が入力される毎にタイマ出力信号２０のエッジ変化を行い、パルス信号を生成可能とする。
【００２７】
強制コンペアマッチ制御回路１２に、ＣＰＵ３から専用線２１を介して、早急にパルス出力を行うための指示が与えられると、強制コンペアマッチ要求フラグＦＧがセットされる。これによって、強制コンペアマッチ制御回路１２は、コンペアマッチを強制的に発生させるための制御を行う。ここで、早急にパルス出力を行うとは、タイマ出力信号２０の状態を早急にローレベルからハイレベルにエッジ変化させるだけでなく、所定のパルス幅を有するように、適切なタイミングでハイレベルからローレベルにエッジ変化させることも意味する。
【００２８】
まず、タイマ出力信号２０の状態をローレベルからハイレベルにエッジ変化させる場合について説明する。強制コンペアマッチ制御回路１２は、強制コンペアマッチ要求フラグＦＧがセットされると、制御線２２，２３を介してカウンタ１０及びコンペアレジスタ１１にそれぞれ制御信号Ｓ１，Ｓ２を出力して、そのときのカウンタ１０のカウンタ値を、図中矢印２４で示されるように、コンペアレジスタ１１にロードさせる。さらにこのとき、強制コンペアマッチ制御回路１２は、制御線２５を介して比較回路１３に制御信号Ｓ３を出力して、比較回路１３から強制的に一致信号１７を出力させる。これにより、マイクロコンピュータ１は、ＣＰＵ３に負担をかけることなく、強制コンペアマッチ要求フラグＦＧがセットされると、直ちにコンペアマッチを発生させ、タイマ出力信号２０の状態をローレベルからハイレベルにエッジ変化させることができる。以下、この強制コンペアマッチ制御回路１２によるコンペアマッチを、強制コンペアマッチと称する。また、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させる動作については、図２と共に詳細を後述する。
【００２９】
ここで、説明の便宜上、エンジン制御について概略的に説明する。例えば単気筒エンジンでは、内部にピストンを収容する１つのシリンダを有する。上記した燃焼室は、このピストンの上面とシリンダの内壁とで囲まれた空間であり、シリンダの内壁には、吸気口と排気口が形成されている。単気筒エンジンの吸気工程、圧縮工程、燃焼・膨張工程、排気工程からなる一連のサイクルにおいて、ピストンは、その上面で燃焼室のガス圧を受けることになる。また、ピストンは、連接棒を介してクランク軸に連動している。これにより、ピストンの往復運動がクランク軸の回転運動に変換される。吸気工程では、排気口が排気弁により閉じられると共に、吸気口が吸気弁により開かれ、さらに、吸気口に接続された吸気管を介して、空気やインジェクタから噴射された燃料からなる混合気が燃焼室に導入される。このとき、ピストンは、燃焼室の容積を大きくして圧力を下げる方向、即ち、下方向に移動する。ピストンが最も下方向に移動した位置を下死点とする。そして、圧縮工程では、吸気口及び排気口が、それぞれ吸気弁及び排気弁によって閉じられ、燃焼室の内部が気密状態になり、さらに、ピストンが上方向に移動することで、燃焼室の容積が小さくなり、ガス圧が高くなる。ピストンが最も上方向に移動した位置を上死点とする。次に、燃焼・膨張工程では、ピストンの位置が上死点付近になると、点火プラグによって燃焼室内の混合気が燃焼され、混合気が膨張する。排気工程では、この混合気の膨張により、ピストンの位置が下死点に近づくと、排気弁により排気口が開かれる。そして、再び、ピストンの位置が上死点に近づくにつれて、燃焼室の容積が小さくなるから、燃焼後の混合気が排気口に接続された排気管を介して排気される。そして、再びピストンの位置が上死点になると、上記した吸気工程が再び開始される。
【００３０】
要するに、インジェクタからの燃料の噴射は、上記した各工程からなる１サイクルのうち吸気工程で１回必要とされる。このため、パルス出力を行うタイミングを設定するためには、例えば吸気工程におけるピストンの上死点又は下死点を基準とすればよい。また、ピストンが上死点又は下死点に位置するタイミングは、例えばクランク軸の回転角を検出する適宜のセンサにより演算可能である。
【００３１】
次に、エンジン制御システムおいて、上記強制コンペアマッチ要求フラグＦＧがセットされる状況について説明する。エンジン制御システムでは、例えば吸気管に導入される空気の流量を調整するためのスロットルが設けられている。スロットルは、運転者等によるアクセルの踏み込み具合に応じて、吸気管の開度を変化させる。つまり、空気の流量は、スロットルの開度で検出可能とされる。エンジン回転数は、例えばクランク軸の回転数により検出可能とされる。エンジン制御システムでは、流量に対する最適なエンジン回転数が予めテーブル等に記憶されており、例えば、スロットルの開度が大きくなり流量が増えたにもかかわらず、エンジン回転数が最適な状態よりも低いのであれば、インジェクタから噴射される燃料が不足していると判定される。言換えると、エンジン制御システムは、運転者がアクセルを踏み込んで加速要求をしたことにより、現時点でのエンジン回転数ではこの加速要求に対応できないから、インジェクタから燃料を噴射させる時間を、予め設定されていたコンペアマッチが発生するまでの時間よりも早める必要があると判定する。このような状況において、エンジン制御システムでは、ＣＰＵ３が上記判定を行い、早急にパルス出力を行うための指示を出力して、強制コンペアマッチ制御回路１２の強制コンペアマッチ要求フラグＦＧをセットする。また、インジェクタが燃料を噴射することができる期間は、タイマ出力信号２０の状態がハイレベルである期間である。このため、エンジン制御システムにおいて、ＣＰＵ３は、適宜のテーブルを参照してタイマ出力信号２０のパルス幅に相当する値を演算することもできる。
【００３２】
図２には、マイクロコンピュータ１の動作タイミングの一例が示される。このタイミングチャートでは、横軸が時間を示し、縦軸には、コンペアレジスタ１１の設定値、カウンタ１０のカウンタ値、一致信号１７の状態、強制コンペアマッチによるタイマ出力信号２０の状態が示され、さらに、通常のコンペアマッチによるタイマ出力信号２０の状態が図中、二点鎖線で示されている。通常のコンペアマッチとは、強制コンペアマッチ制御回路１２を用いることなく、コンペアレジスタ１１に予め設定された設定値と、カウンタ１０のカウンタ値とが一致することをいう。
【００３３】
時刻ｔ０は、例えば吸気工程においてピストンが上死点に位置するタイミングとされる。時刻ｔ０において、コンペアレジスタ１１の設定値はＹＲ、カウンタ１０のカウンタ値はＹＣとされ、それぞれ基準値として設定される。時刻ｔ０において、一致信号１７及びタイマ出力信号２０の状態は、共にローレベルとされる。カウンタ値は、ＹＣを基準値として、クロック信号の１周期毎にカウントアップされる。カウンタ１０は、例えば吸気工程においてピストンが下死点に位置するタイミングでリセットされる。この基準値ＹＣは、例えばゼロである。
【００３４】
まず、通常のコンペアマッチにおいて、コンペアレジスタ１１の設定値は、強制的に変更されることがないから、図中、時刻ｔ２以降のコンペアレジスタ１１の設定値を、ＹＲと同じ値として点線で示している。カウンタ値は、点Ｄで示すように、時刻ｔ４でＹＲと同じ値となる。このとき、タイマ出力信号２０の状態は、二点鎖線で示すようにローレベルからハイレベルとなる。このため、通常のコンペアマッチが発生するまでの時間は、時刻ｔ４とされる。
【００３５】
次に、強制コンペアマッチについて説明する。時刻ｔ１において、ＣＰＵ３は、インジェクタから噴射される燃料が不足していると判定し、内部バス６とは異なる専用線２１を介して、強制コンペアマッチ制御回路１２の上記強制コンペアマッチ要求フラグＦＧをセットする。このため、強制コンペアマッチ要求フラグＦＧは、内部バス６の使用状況にかかわらず、確実にセットされる。つまり、ＣＰＵ３は、強制コンペアマッチ制御回路１２の強制コンペアマッチ要求フラグＦＧをセットするときに待機することがない。時刻ｔ２において、強制コンペアマッチ制御回路１２は、コンペアレジスタ１１にカウンタ１０のカウンタ値をロードすることにより、コンペアレジスタ１１の設定値をＹＲから、ロードされたカウンタ値に変更する。即ち、強制コンペアマッチは、点Ａにおいて発生することになる。このとき、強制コンペアマッチ要求フラグＦＧはクリアされる。時刻ｔ２において、強制コンペアマッチ制御回路１２は、比較回路１３から一致信号１７を出力制御回路１４に出力させるから、一致信号１７の状態がハイレベルとされる。これにより、時刻ｔ２において、タイマ出力信号２０の状態は、ローレベルからハイレベルにエッジ変化する。
【００３６】
次に、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させる動作について説明する。時刻ｔ２の後、ＣＰＵ３は、カウンタ１０ではなく、内部バス６を介してコンペアレジスタ１１にアクセスして、強制コンペアマッチが発生したときにカウンタ１０からロードされたカウンタ値を読出す。例えばＣＰＵ３は、インジェクタから噴射される燃料が不足していると判定した場合には、インジェクタが燃料を噴射できる期間、即ちパルス幅に相当する値を演算して、このパルス幅に相当する値と、カウンタ１０からロードされたカウンタ値とを加算して、加算結果をコンペアレジスタ１１に書込む。このＣＰＵ３のデータ処理は、点Ｂで実行されており、時刻ｔ２から既に幾分かの時間が経過している。しかし、ＣＰＵ３のデータ処理は、強制コンペアマッチが発生したときの正確なカウンタ値を基準として用いているから、次のコンペアマッチとされる時刻ｔ３までにデータ処理を終了させれば、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させることができる。
【００３７】
ここで、パルス幅に相当する値について一例を示す。パルス幅に相当する値とは、時刻ｔ２以降、クロック信号の１周期毎にカウントアップされるカウンタ１０のカウンタ値と、コンペアレジスタ１１の設定値とが再び一致して、次のコンペアマッチを発生させるまでの時間に相当する。例えばカウンタ１０のクロック信号の１周期が１００ｎｓであり、タイマ出力信号２０のパルス幅を１μｓにしたい場合には、パルス幅に相当する値は、「１０」となる。これは、１μｓがクロック信号の１０周期分の時間に相当するためである。つまり、カウンタ１０のカウンタ値は、１μｓで「１０」だけカウントアップされるから、１μｓ経過後にコンペアレジスタ１１の設定値と一致する。
【００３８】
時刻ｔ３において、カウンタ１０のカウンタ値は、点Ｃで示すように、コンペアレジスタ１１の設定値と一致する。この時刻ｔ３でのカウンタ１０のカウンタ値及びコンペアレジスタ１１の設定値は、信号線１５，１６を介してそれぞれ比較回路１３に入力される。時刻ｔ３において、比較回路１３は、一致信号１７を出力制御回路１４に出力するから、一致信号１７の状態がハイレベルとされる。これにより、出力制御回路１４は、ＣＰＵ３から予め設定されていたように、次のコンペアレジスタの発生時である時刻ｔ３で、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させる。つまり、マイクロコンピュータ１によれば、タイマ出力信号２０の状態をハイレベルからローレベルにすべきタイミングを精度よく設定することができる。従って、マイクロコンピュータ１によれば、早急なパルス出力の要求があった場合でも、パルス出力を精度よく行うことができる。
【００３９】
これに対して、比較例として、例えばタイマにパルス幅設定用のカウンタを設けて、コンペアマッチの発生時に、このパルス幅設定用カウンタを起動して、パルス出力を行うマイクロコンピュータも考えられる。しかしながら、このマイクロコンピュータでは、複雑且つ大規模な回路構成を有することになってしまう。
【００４０】
図３には、本発明の実施形態２に係る半導体集積回路の一例であるマイクロコンピュータの概略構成が例示される。実施形態２では、上記した実施形態１のマイクロコンピュータ１と同一機能等を有する部分には同一符号を付し、説明が重複する部分については適宜省略する。マイクロコンピュータ１Ａは、タイマ２Ａを備えている。タイマ２Ａは、カウンタ１０と、コンペアレジスタ１１及びデューティレジスタ２６と、比較回路１３と、出力制御回路１４と、強制コンペアマッチ制御回路１２Ａと、加算回路２７とを備えている。通常のコンペアマッチにおいて、タイマ２Ａは、タイマ２と同様な動作を行う。
【００４１】
強制コンペアマッチにおいて、タイマ２Ａは、タイマ出力信号２０をローレベルからハイレベルにエッジ変化させる動作についてはタイマ２と同様な動作を行うが、ハイレベルからローレベルにエッジ変化させる動作が異なる。例えばタイマ２では、ＣＰＵ３がデータ処理を行うことにより、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させていた。これに対して、タイマ２Ａでは、デューティレジスタ２６、加算回路２７及び強制コンペアマッチ制御回路１２Ａ等によって、タイマ出力信号２０をハイレベルからローレベルにエッジ変化させることができる。
【００４２】
具体的には、強制コンペアマッチ制御回路１２Ａは、強制コンペアマッチ要求フラグＦＧがセットされると、制御線２３，２９，３０を介してコンペアレジスタ１１、加算回路２７及びデューティレジスタ２６にそれぞれ制御信号Ｓ４，Ｓ５，Ｓ６を出力する。デューティレジスタ２６には、ＣＰＵ３等により演算されたパルス幅に相当する値が予め格納されており、制御信号Ｓ６により、このパルス幅に相当する値を加算回路２７に出力可能とされる。コンペアレジスタ１１は、制御信号Ｓ４により、強制コンペアマッチが発生したときにコンペアレジスタ１１にロードされたカウンタ値を加算回路２７に出力可能とされる。加算回路２７は、制御信号Ｓ５により、コンペアレジスタ１１から出力されるカウンタ値と、デューティレジスタ２６から出力されるパルス幅に相当する値と、を入力可能とされる。
【００４３】
加算回路２７は、専用バス２８，３１を介してコンペアレジスタ１１とデューティレジスタ２６にそれぞれ接続されているから、ＣＰＵ３を介在させることなく、コンペアレジスタ１１及びデューティレジスタ２６から、上記カウンタ値及びパルス幅に相当する値が入力される。加算回路２７は、入力されたこれらの値を加算して加算結果を保持する。強制コンペアマッチ制御回路１２Ａは、制御線２３，２９を介して再び制御信号Ｓ７，Ｓ８を出力し、加算回路２７からコンペアレジスタ１１に加算結果を出力可能とする。そして、加算回路２７は、加算結果をコンペアレジスタ１１に出力する。従って、タイマ２Ａによれば、タイマ出力信号２０の状態をハイレベルからローレベルにエッジ変化させるときに、ＣＰＵ３の処理が不要となるから、タイマ出力信号２０のエッジ変化に伴うＣＰＵ３の負担を軽減できる。
【００４４】
さらに、加算回路２７がコンペアレジスタ１１及びデューティレジスタ２６からそれぞれの値を入力して加算し、その加算結果をコンペアレジスタ１１に出力するのに要する時間は、タイマ２におけるＣＰＵ３のデータ処理時間よりも短くて済む。これにより、タイマ２Ａでは、例えばパルス幅に相当する値がＣＰＵ３のデータ処理時間よりも小さい場合であっても、対応可能であり、パルス出力の精度をより高めることができる。
【００４５】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４６】
例えば、上記強制コンペアマッチ制御回路１２，１２Ａの強制コンペアマッチ要求フラグＦＧは、ＣＰＵ３が専用線２１を介してセットするようにしたが、これに限られず、図示を省略する割込み制御回路によってセットするようにしてもよい。このようにすれば、強制コンペアマッチ制御回路１２，１２Ａの強制コンペアマッチ要求フラグＦＧをセットするときに、例えばＣＰＵ３の分岐処理ではなく、割込み制御回路による割込み制御で行うことになり、ＣＰＵ３に対する負担をより軽減できる。また、上記したマイクロコンピュータ１，１Ａは、所望のパルス幅を有するパルス信号を所定のタイミングで出力できる機能を有しているので、エンジン制御システムに限らず、モニタ機能制御システム等、適宜の制御システムに適用することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態１に係る半導体集積回路の一例であるマイクロコンピュータの概略構成を例示する説明図である。
【図２】マイクロコンピュータの動作タイミングを示すタイミングチャートである。
【図３】本発明の実施形態２に係る半導体集積回路の一例であるマイクロコンピュータの概略構成を例示する説明図である。
【符号の説明】
【００４８】
１，１Ａ  マイクロコンピュータ
２，２Ａ  タイマ
３  中央処理装置（ＣＰＵ）
４  リードオンリーメモリ（ＲＯＭ）
５  ランダムアクセスメモリ（ＲＡＭ）
６  内部バス
１０  カウンタ
１１  コンペアレジスタ
１２  強制コンペアマッチ制御回路
１３  比較回路
１７  一致信号
２０  タイマ出力信号
２１  専用線
２６  デューティレジスタ
２７  加算回路
２８  専用バス
ＦＧ  強制コンペアマッチ要求フラグ
Ｓ１〜Ｓ８  制御信号
【図１】
2007193416.tif 000003
【図２】
2007193416.tif 000004
【図３】
2007193416.tif 000005