JP2010117868A - 制御装置及び制御方法 - Google Patents

制御装置及び制御方法 Download PDF

Info

Publication number
JP2010117868A
JP2010117868A JP2008290331A JP2008290331A JP2010117868A JP 2010117868 A JP2010117868 A JP 2010117868A JP 2008290331 A JP2008290331 A JP 2008290331A JP 2008290331 A JP2008290331 A JP 2008290331A JP 2010117868 A JP2010117868 A JP 2010117868A
Authority
JP
Japan
Prior art keywords
time
timer
signal
output
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008290331A
Other languages
English (en)
Inventor
Yutaka Yabuuchi
豊 薮内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2008290331A priority Critical patent/JP2010117868A/ja
Publication of JP2010117868A publication Critical patent/JP2010117868A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 出力ポートへの通電開始タイミングのばらつきを低減させた制御装置を提供する。
【解決手段】 セットされた時間を計時し、セットされた時間を計時すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するリロードタイマ228と、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてリロードタイマ228の計時時間をセットする処理と、リロードタイマ228に、セットした時間の計時を開始させる処理とを実行するソフトウェア制御部50とを有する構成としている。ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてリロードタイマ228の計時時間を設定するので、ソフトウェア制御部50がリロードタイマ228の計時時間を設定する時間と割り込み信号の入力時刻とにずれが生じても、リロードタイマ228所望の時間を計時させることができる。
【選択図】 図3

Description

本発明は、制御装置及び制御方法に関する。特に、本発明は、信号の出力ポートへの通電開始タイミングの計時にタイマ機能(以下、リロードタイマと呼ぶ)を使用する技術に関する。
マイコンの出力ポートの通電時間にマイクロ秒単位の高い精度が要求される場合、マイコンに設けられたリロードタイマを使用する。
リロードタイマは、クロック信号をカウントしてカウントダウンし、カウントダウンが終了すると割り込みを発生させる。ソフトウェアは、割り込み信号を入力すると、予め定義された関数を実行する。その後、カウント値がリセットされ、リロードタイマは再びカウントダウン動作を開始する。
特許文献1には、内蔵するタイマの本数以上のタイマ出力処理を可能とし、出力端子を自在に設定できるようにした制御用処理が開示されている。
特開平8−305420号公報
出力ポートへの通電時間の精度は、リロードタイマを用いて通電時間を計時することによって上げることができる。しかしながら、出力ポートへの通電の開始時には、出力ポートの通電状態を設定する情報をソフトウェアでレジスタに書き込み、レジスタに書き込まれた情報が出力ポートの通電状態に反映されることとなる。ソフトウェアは、例えば優先度の高い割り込み信号を受け付けた場合には、受け付けた割り込みを処理してから出力ポートの通電状態の設定を行わなければならず、通電開始タイミングにばらつきが生じてしまう。例えば、マイコンを車両のエンジン制御に使用する場合、通電開始タイミングのばらつきによって燃料噴射タイミングにばらつきが生じるなどの問題が生じる。特許文献1にもこのような技術課題に対する解決策は開示されていない。
本発明は上記事情に鑑みてなされたものであり、出力ポートへの通電開始タイミングのばらつきを低減させた制御装置及び制御方法を提供することを目的とする。
かかる目的を達成するために本発明の制御装置は、被制御部を制御する制御装置であって、セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部と、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間をセットする処理と、タイマ部に、セットした時間の計時を開始させる処理と、を実行する実行部とを有する構成としている。
本発明によれば、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間を設定するので、実行部がタイマ部の計時時間を設定する時間と割り込み信号の入力時刻とにずれが生じても、タイマ部に所望の時間を計時させることができる。従って、出力ポートへの通電開始タイミングのばらつきを低減させることができる。
本発明の制御装置は、被制御部を制御する制御装置であって、信号を出力する出力ポートの信号レベルを設定する情報を記憶する記憶部と、セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部と、出力ポートの出力する信号レベルを、記憶部に記憶した情報に基づいて設定するのか、前記タイマ部の出力に基づいて設定するのかを選択する選択部と、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいて、タイマ部の計時時間をセットする処理と、記憶部の情報に基づいて出力ポートの出力する信号レベルが設定されるように選択部を設定した後にタイマ部の計時を開始させる処理と、タイマ部に計時を開始させた後に、タイマ部の出力に基づいて出力ポートの信号レベルが設定されるように選択部を設定する処理と、を実行する実行部とを有する構成としている。
本発明によれば、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間を設定するので、実行部がタイマ部の計時時間を設定する時間と割り込み信号の入力時刻とにずれが生じても、タイマ部に所望の時間を計時させることができる。従って、出力ポートへの通電開始タイミングのばらつきを低減させることができる。
また、タイマ部が計時を開始するまでの間は、記憶部にに書き込まれた情報に従って出力ポートの出力レベルが設定される。このため、記憶部の設定を行ってからタイマ部の計時を開始させるまでの間に、出力ポートにタイマ部の不要な出力が反映されることがない。
上記制御装置において、前記実行部が前記タイマ部に計時させる計時時間は、割り込み信号を入力してからの所定時間であって、前記実行部の処理遅延により前記タイマ部への計時時間のセットが遅延した時間分を所定時間から減算した時間であるとよい。
従って、実行部がタイマ部の計時時間を設定するまでの時間に遅延が生じても、タイマ部に所望の時間を計時させることができる。従って、出力ポートへの通電開始タイミングのばらつきを低減させることができる。
上記構成の制御装置において、前記タイマ部は、セットされた時間の計時を終了すると、実行部に割り込み信号を出力し、前記実行部は、割り込み信号を入力した時刻と、現在時刻とに基づいて、タイマ部の計時時間をセットするとよい。
従って、タイマ部からの割り込み信号の入力により実行部はタイマ部に次の計時時間をセットすることができる。
本発明の制御方法は、被制御部を制御する制御方法であって、ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間をセットする処理と、セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部に、セットした時間の計時を開始させる処理とを有している。
本発明によれば、出力ポートへの通電開始タイミングのばらつきを低減させた制御装置及び制御方法を提供することができる。
添付図面を参照しながら本発明の好適な実施例を説明する。
まず、図1を参照しながら本実施例の構成を説明する。図1には、エンジン制御を行うECU(Electronic Control Unit)(本発明の制御装置に該当する)20の構成と、ECU20とその周辺装置との接続構成とを示す。
ECU20には、エンジンの運転状態や変速機の状態を示す各種センサが接続されている。図1には、各種センサとして、スロットル開度センサ11と、アクセル開度センサ12と、車速センサ13と、クランク角度センサ14と、ノックセンサ15とを示す。なお、図示のセンサ以外にも複数のセンサからのセンサ信号がECU20には入力される。
スロットル開度センサ11は、エンジンの吸気管に設けられた電子制御スロットル34の開度に応じたセンサ信号をECU20に出力する。
アクセル開度センサ12は、ドライバによるアクセルペダル(不図示)の操作量(以下、アクセル開度と呼ぶ)を検出する。アクセル開度センサ12は、検出したアクセル開度を表すセンサ信号をECU20に出力する。
車速センサ13は、例えば、ドライブシャフトの回転数に基づいて車両の走行速度である車速を検出する。車速センサ13は、検出した車速を表すセンサ信号をECU20に出力する。
クランク角度センサ14は、クランクシャフトの回転速度(エンジン回転数)およびクランクシャフトの回転角度を検出する。クランク角度センサ14は、検出したクランクシャフトの回転速度や回転角度を表すセンサ信号をECU20に出力する。
ノックセンサ15は、エンジンのシリンダブロックに設置され、シリンダブロック表面の振動のレベルを検出する。ノックセンサ15は、検出した振動レベルを表すセンサ信号をECU20に出力する。
また、ECU20の出力側に設けられたインジェクタ31は、ECU20の制御により開閉駆動されて燃料を噴射する電磁弁から構成される。
イグナイタ32は、ECU20の制御により不図示の点火コイルにバッテリ電圧を供給し、点火コイルに蓄えられた高電圧により点火プラグ33で火花を発生させて、燃焼室内の混合気を燃焼させる。
電子制御スロットル34は、エンジンの吸気管に設けられ、ECU20によって制御されてエンジンへの吸入空気量を調整する。
ECU20は、入力インターフェース21、マイコン22、出力インターフェース23、発振回路24等を備えている。入力インターフェース21は、図1に示す各種センサから出力されるセンサ信号を入力して、マイコン22に出力する。出力インターフェース23は、マイコン22によって生成される制御信号を制御対象となるインジェクタ31、点火プラグ33、電子制御スロットル34等に出力する。また、発振回路24は、マイコン22で使用するクロック信号を生成して、マイコン22に出力する。
図2に、マイコン22のハードウェア構成を示す。マイコン22内には、CPU(Central Processing Unit)221、ROM(Read Only Memory)222、RAM(Random Access Memory)223、入力ポート224、出力ポート225、割込制御回路226、フリーランタイマ227、リロードタイマ228等が設けられている。
CPU221は、ROM222に記録されたプログラムを読み込んで、このプログラムに従った演算を行う。CPU221の処理手順については、フローチャートを参照しながら後述する。RAM223には、演算結果のデータが書き込まれる。
CPU221は、入力ポート224から入力したセンサ信号に基づいてエンジン点火タイミングや、燃料噴射量等を制御する制御信号を生成する。生成した制御信号はインジェクタ31や点火プラグ33に出力される。また、CPU221は、アクセル開度センサ12によって測定されたアクセルペダルの操作量に応じて、電子制御スロットル34を制御する。
CPU221で生成された制御信号は、出力ポート225を介して出力インターフェース23からインジェクタ31、イグナイタ32、電子制御スロットル34等に出力される。
また、マイコン22内には、割込制御回路226、フリーランタイマ227、リロードタイマ228等が設けられている。
割込制御回路226は、CPU221が制御対象のハードウェアを制御するための演算等を割込んで実行することを要求する割込信号の入出力を制御する。
フリーランタイマ227、リロードタイマ228については、図3を参照しながら説明する。
図3には、CPU221などのハードウェアと、ROM222などに格納されたソフトウェアとの協働によって実現されるソフトウェア制御部50と、ソフトウェア制御部50が制御に必要なデータを書き込む各種レジスタと、前述した割込制御回路226、フリーランタイマ227、リロードタイマ228とを示す。
フリーランタイマ227は、図1に示す発振回路24で生成されるクロック信号を入力し、入力したクロック信号に基づいて時刻を計時するタイマである。フリーランタイマ227の計時する時刻は、現在時刻レジスタ52に書き込まれる。また、フリーランタイマ227は、割込制御回路226から割込信号の入力ありを示す信号を入力すると、割込信号の入力時刻を示す信号を入力時刻レジスタ51に書き込む。
リロードタイマ228は、ソフトウェア制御部50で設定された時間を計時(カウントダウン)し、計時が終了すると、出力ポート225の出力レベルを反転させる(リロードタイマの詳細については、後述する)。
ソフトウェア制御部50は、図3に示すレベル設定レジスタ53、カウントダウン時間設定レジスタ54、カウントダウン開始レジスタ55、データレジスタ56、機能選択レジスタ57に制御に必要なデータを書き込み、リロードタイマ228のカウントダウン開始タイミングや、リロードタイマ228のカウントダウン時間を設定する。
入力時刻レジスタ51は、割込制御回路226にハードウェア、特にクランク角度センサ14からの割込信号が入力された時刻がフリーランタイマ227によって書き込まれる。
現在時刻レジスタ52には、フリーランタイマ227から出力される現在時刻が書き込まれる。フリーランタイマ227がクロック信号を入力してカウント値を更新すると、このカウント値、すなわち現在時刻が現在時刻レジスタ52に書き込まれる。
レベル設定レジスタ53は、リロードタイマ228がカウントダウン中の、リロードタイマ228の出力レベルを設定する情報が記録される。リロードタイマ228は、設定されたカウントダウン時間をカウントすると、出力レベルを反転させる。従って、リロードタイマ228のカウントダウン終了タイミングに合わせて、出力ポート225の信号レベルをハイレベルに設定する場合には、カウントダウン中のリロードタイマ228の出力レベルをローレベルに設定する。
カウントダウン時間設定レジスタ54は、ソフトウェア制御部50で算出されたリロードタイマ228のカウントダウン時間がソフトウェア制御部50によって書き込まれる。
カウントダウン開始レジスタ55には、リロードタイマ228にカウントダウンを開始させる情報、例えば「1」がソフトウェア制御部50によって記録される。すなわち、リロードタイマ228は、カウントダウン開始レジスタ55に「1」が書き込まれたことをトリガとして、カウントダウン時間設定レジスタ54に設定されたカウントダウン時間をカウントする。
データレジスタ56には、ソフトウェア制御部50によって出力ポート225に出力する信号レベルが設定される。例えば、データレジスタ56に「1」が書き込まれると、出力ポート225の信号出力レベルがハイレベルになる。また、データレジスタ56に「0」が書き込まれると、出力ポート225の信号出力レベルがローレベルになる。
機能選択レジスタ57は、出力ポート225の出力信号を、データレジスタ56に書き込まれた設定に基づいて出力するのか、リロードタイマ228の出力レベルに基づいて出力するのかを設定するレジスタである。図4には、マイコン22の出力側の構成を示す。ソフトウェア制御部50によって機能選択レジスタ57に「1」が書き込まれると、図4に示す出力選択部60は、機能選択レジスタ57を参照してリロードタイマ228の出力を出力ポート225に出力する。また、ソフトウェア制御部50によって機能選択レジスタ57に「0」が書き込まれると、図4に示す出力選択部60は、機能選択レジスタ57を参照してデータレジスタ56の設定に従って、出力ポート225の信号出力レベルを設定する。
図5に示すタイムチャートを参照しながら、ソフトウェア制御部50の動作概要を説明する。
本実施例は、図1に示す各種センサ(例えば、クランク角度センサ14)等から割込信号が割込制御回路226に入力されると、割込信号の入力から所定時間を計時し、所定時間経過後に出力ポート225に所定レベルの信号を出力する。所定時間の計時には、リロードタイマ228が用いられる。リロードタイマ228は、クロック信号を入力して計時を行うため、設定された時間を正確に計時することができる。また、リロードタイマ228は、所定時間を計時(カウントダウン)すると、リロードタイマ228の出力レベルを計時中の出力レベルとは異なるレベルに自動的に変更する。出力ポート225の出力レベルに、リロードタイマ228の出力レベルが反映されるように設定しておくことで、リロードタイマ228の計時時間に合わせて出力ポート225の出力レベルを切り替えることができる。
しかしながら、割込信号を入力してからリロードタイマ228の計時時間の設定をソフトウェア制御部50で行わなければならない。ソフトウェアは、例えば優先度の高い割り込み信号を受け付けた場合には、受け付けた割り込みを処理してから出力ポートの通電状態の設定を行わなければならず、通電開始タイミングにばらつきが生じてしまう。
そこで、ソフトウェア制御部50は、割込制御回路226から割込処理の通知を受け付けると、入力時刻レジスタ51に書き込まれた割込信号の入力時刻と、現在時刻レジスタ52に書き込まれた現在時刻とを取得してRAM223に記録する。そして、ソフトウェア制御部50は、割込信号の入力から所定時間経過後に、出力ポート225に所定レベルの信号を出力させるために、リロードタイマ228に計時(カウントダウン)させる時間を算出する。なお、割込信号の入力時刻と、現在時刻とは、フリーランタイマ227によって自動的に入力時刻レジスタ51と、現在時刻レジスタ52とにそれぞれ書き込まれる。
図6(A)を参照しながらリロードタイマ228に計時(カウントダウン)させる時間を算出する手順を説明する。例えば、割込信号の入力時刻をT1、現在時刻をT2とする。また、割込信号を入力してから出力ポート225に所定レベルの信号を出力するまでの待機時間をT3とする。なお、ソフトウェア制御部50が、リロードタイマ228に計時(カウントダウン)させる時間を算出する処理を開始する時間は、処理の込み具合によって異なる。このため、割込信号の入力時刻T1と、現在時刻T2とが一致することは殆どない。
ソフトウェア制御部50は、まず、現在時刻T2から割込信号の入力時刻T1を減算する。この現在時刻T2から入力時刻T1を減算した時間(T2−T1)は、ソフトウェア制御部50が割込信号を入力してから処理を開始するまでにかかった遅延時間となる.ソフトウェア制御部50は、割込信号の入力時刻T1に待機時間T3を加算する。(T1+T3)は、出力ポート225に所定レベルの信号を出力する時刻となる。
ソフトウェア制御部50は、出力ポート225に所定レベルの信号を出力するまでの時間(T3+T1)からソフトウェア制御部50が処理を開始するまでにかかった時間(T2−T1)を減算する。ソフトウェア制御部50は、算出した時間T1+T3−(T2−T1)を、リロードタイマ228の計時(カウントダウン)時間としてカウントダウン時間設定レジスタ54に書き込む。
リロードタイマ228の計時時間を設定した後のソフトウェア制御部50の処理手順について引き続き図5を参照しながら説明する。
ソフトウェア制御部50は、割込信号を入力すると、リロードタイマ228の計時時間を算出して、カウントダウン時間設定レジスタ54に書き込む(図5(A)参照)。
次に、ソフトウェア制御部50は、リロードタイマ228のカウントダウン中に、出力ポート225に出力させる信号レベルを設定する。リロードタイマ228は、カウントダウンを終了すると、それまでの出力レベルを反転させる機能を有している。従って、例えば、カウントダウン終了後の出力ポート225の信号出力レベルをハイレベルにする場合、リロードタイマ228のカウントダウン中の出力レベルをローレベルに設定する。また、カウントダウン終了後の出力ポート225の信号出力レベルをローレベルにする場合、リロードタイマ228のカウントダウン中の出力レベルをハイレベルに設定する。ここでは、リロードタイマ228のカウントダウン終了後の出力ポート225の出力レベルをハイレベルに設定するとする。そこで、ソフトウェア制御部50は、図5(B)に示すレベル設定レジスタに「0」の情報を書き込む。
レベル設定レジスタの設定が終了すると、ソフトウェア制御部50は、カウントダウン開始レジスタ55にカウントダウン開始情報(本実施例では「1」)を書き込み(図5(C)参照)、リロードタイマ228にカウントダウンを開始させる(図5(D)参照)。リロードタイマ228は、カウントダウン時間設定レジスタ54に設定された時間を計時(カウントダウン)し、計時が終了すると出力レベルをハイレベルとする。これによって出力ポート225の信号出力レベルがハイレベルとなる(図5(E)参照)。又、リロードタイマ228は、計時(カウントダウン)を終了すると、割込信号を割込制御回路226に出力する(図5(F)参照)。
ソフトウェア制御部50は、リロードタイマ228からの割込信号をトリガとしてリロードタイマ228の次の計時時間を算出する。この処理について図6(B)を参照しながら説明する。
なお、現在時刻をT4とする。また、リロードタイマ228が割込信号を出力した時刻は、T1+T3となる。
ソフトウェア制御部50は、まず、現在時刻T4から割込信号の出力時刻T1+T3を減算する。このT4−(T1+T3)がソフトウェア制御部50が割込信号を入力してから処理を開始するまでにかかった遅延時間となる。また、出力ポート225に所定レベルの信号を出力する時刻は、割込信号の出力時刻T1+T3に待機時間T3を加算したT1+2T3となる。ソフトウェア制御部50は、出力ポート225に所定レベルの信号を出力するまでの時間T1+2T3からソフトウェア制御部50が処理を開始するまでにかかった時間(T4−(T1+T3))を減算する。ソフトウェア制御部50は、算出した時間T1+2T3−(T4−(T1+T3)を、リロードタイマ228に計時(カウントダウン)させる時間としてカウントダウン時間設定レジスタ54に書き込む(図5(A)参照)。
しかしながら、レベル設定レジスタ53にカウントダウン中のリロードタイマ228の信号出力レベルを設定してから、カウントダウン開始レジスタ55にカウントダウン開始情報を書き込むまでの間に、出力ポート225に不要な出力が表れてしまうという問題が生じる。図7及び図8を参照しながらこの問題点について説明する。図7及び図8は、図5に示すレベル設定レジスタ53の設定と、カウントダウン開始レジスタ55の設定と、リロードタイマ228のカウントダウンと、出力ポート225の出力レベルとを拡大表示したものである。また、図7及び図8には、問題点を分かりやすくするために、レベル設定レジスタ53の設定をソフトウェア制御部50で行ってから、リロードタイマ228のカウントダウンを開始させるまでの時間を誇張して表示している。
レベル設定レジスタ53に記録される情報は、リロードタイマ228がカウントダウン中のリロードタイマ228の出力レベルである。このため、ソフトウェア制御部50がレベル設定レジスタ53にリロードタイマ228の出力レベルを設定してから、リロードタイマ228がカウントダウンを開始するまでの間に、レベル設定レジスタ53に設定した出力レベルとは異なる出力レベルをリロードタイマ228は出力してしまう。このリロードタイマ228の出力レベルが出力ポート225にも反映され、不要な出力信号が出力ポート225から出力される。
例えば、図7の(B)に示すように、レベル設定レジスタ53にローレベルの情報を書き込むと、リロードタイマ228がカウントダウンするまでの間は、リロードタイマ228の出力レベルがハイレベルになる(図7の(E)参照)。
逆に、図8の(B)に示すように、レベル設定レジスタ53にローレベルの情報を書き込むと、リロードタイマ228がカウントダウンするまでの間は、リロードタイマ228の出力レベルがハイレベルになる(図8の(E)参照)。
そこで、本実施例は、レベル設定レジスタ53に情報を書き込む前に、出力ポート225の出力レベルにデータレジスタ56の設定が反映されるように機能選択レジスタ57に設定情報を書き込む。
すなわち、図7に示すようにリロードタイマ228のカウントダウン中の出力レベルをローレベルに設定する場合には、出力選択部60にデータレジスタ56を選択させ、さらにデータレジスタ56の設定を、リロードタイマ228のカウントダウン中の出力レベルであるローレベルに設定する。
また、図8に示すようにリロードタイマ228のカウントダウン中の出力レベルをハイレベルに設定する場合には、出力選択部60にデータレジスタ56を選択させ、さらにデータレジスタ56の設定を、リロードタイマ228のカウントダウン中の出力レベルであるハイレベルに設定する。
そして、ソフトウェア制御部50は、リロードタイマ228に計時(カウントダウン)を開始させた後に、出力ポート225の信号出力レベルにリロードタイマ228の出力が反映されるように機能選択レジスタ57に設定情報を書き込む。
このようにして本実施例は、ソフトウェア制御部50がレベル設定レジスタ53を設定してから、リロードタイマがカウントダウンを開始するまでの間の出力ポート225の不要な出力を防止することができる。
図9に示すフローチャートを参照しながらソフトウェア制御部50の処理手順を説明する。
まず、ソフトウェア制御部50は、入力時刻レジスタ51に書き込まれた割込信号の入力時刻と、現在時刻レジスタ52に書き込まれた現在時刻とを取得して、RAM223に記録する(ステップS1)。
次に、ソフトウェア制御部50は、リロードタイマ228に計時(カウントダウン)させる時間を算出する(ステップS2)。
割込信号の入力時刻をT1、現在時刻をT2、割込信号を入力してから出力ポート225に所定レベルの信号を出力までの待機時間をT3とすると、リロードタイマ228の計時時間は(T3+T1)−(T2−T1)となる。なお、(T3+T1)は、ハードウェアからの割込信号を入力してから、出力ポート225から所定レベルの信号を出力する時間である。また、(T2−T1)は、ハードウェアからの割込信号を入力してからソフトウェア制御部50が処理を開始するまでにかかった時間である(図6(A)参照)。
ソフトウェア制御部50は、算出した計時時間(T3+T1)−(T2−T1)をカウントダウン時間設定レジスタ54に書き込む(ステップS2)。
次に、ソフトウェア制御部50は、データレジスタ56に「0」を書き込み、機能選択レジスタ57に「0」を書き込む(ステップS3)。機能選択レジスタ57に「0」を書き込むことで、出力ポート225の信号出力レベルにデータレジスタ56の設定が反映される。すなわち、データレジスタ56に書き込まれた「0」に従って、出力ポート225の信号出力レベルがローレベルとなる。
次にソフトウェア制御部50は、レベル設定レジスタ53に「0」を書き込み、カウントダウン中のリロードタイマ228の出力レベルをローレベルに設定する(ステップS4)。そして、ソフトウェア制御部50は、リロードタイマ228にカウントダウンを開始させるため、カウントダウン開始レジスタ55にカウントダウンの開始を示す情報「1」を書き込む(ステップS5)。カウントダウン開始レジスタ55にカウントダウンの開始を示す情報「1」が書き込まれたことをトリガとして、リロードタイマ228はカウントダウンを開始する。リロードタイマ228がカウントダウンを開始すると、ソフトウェア制御部50は、機能選択レジスタ57に「1」を書き込む(ステップS6)。機能選択レジスタ57に「1」が書き込まれることで、出力ポート225の信号出力レベルにリロードタイマ228の出力レベルが反映される。
ソフトウェア制御部50は、上述した待機時間T3と割込信号の入力時刻T1とを加算した時刻(T1+T3)をRAM223に記録し、他の処理に処理を移行させる(ステップS7)。なお、時刻(T1+T3)は、リロードタイマ228がカウントダウンを終了し、出力ポート225の信号出力レベルをハイレベルとする時刻である。
リロードタイマ228は、カウントダウンを終了すると、リロードタイマ228の出力レベルを反転させると共に、割込信号を割込制御回路226に出力する。
リロードタイマ228からの割込信号を受け付けたソフトウェア制御部50は、処理を開始し(ステップS8/YES)、まず、現在時刻レジスタ52に書き込まれた現在時刻を取得してRAM223に記録する(ステップS9)。
次に、ソフトウェア制御部50は、リロードタイマ228に計時させる計時時間を算出する(ステップS10)。
リロードタイマ228がカウントダウンを終了し、割込信号を出力した時刻はT1+T3である。ソフトウェア制御部50は、この割込信号を出力した時刻(T1+T3)を現在時刻から減算する。現在時刻をT4とすると、T4−(T1+T3)が算出される。また、リロードタイマ228が出力ポート225の出力レベルをハイレベルとしてから、次にリロードタイマ228が出力ポート225の出力レベルをローレベルにする時刻は、(T1+2T3)となる。従って、リロードタイマ228の計時時間は、(T1+2T3)−(T4−(T1+T3))となる(図6(B)参照)。ソフトウェア制御部50は、算出した計時時間(T1+2T3)−(T4−(T1+T3))をカウントダウン時間設定レジスタ54に書き込む(ステップS10)。
次に、ソフトウェア制御部50は、データレジスタ56に「1」を書込み、機能選択レジスタ57に「0」を書き込む(ステップS11)。機能選択レジスタ57に「0」を書き込むことで、出力ポート225の出力レベルにデータレジスタ56の設定が反映される。すなわち、データレジスタ56に書き込まれた「1」に従って、出力ポート225の出力レベルがハイレベルとなる。
次にソフトウェア制御部50は、レベル設定レジスタ53に「1」を書き込み、カウントダウン中のリロードタイマ228の信号出力レベルをハイレベルに設定する(ステップS12)。そして、ソフトウェア制御部50は、リロードタイマ228にカウントダウンを開始させるため、カウントダウン開始レジスタ55にカウントダウンの開始を示す情報「1」を書き込む(ステップS13)。カウントダウン開始レジスタ55にカウントダウンの開始を示す情報「1」が書き込まれたことをトリガとして、リロードタイマ228はカウントダウンを開始する。リロードタイマ228がカウントダウンを開始すると、ソフトウェア制御部50は、機能選択レジスタ57に「1」を書き込む(ステップS14)。機能選択レジスタ57に「1」が書き込まれることで、出力ポート225の信号出力レベルにリロードタイマ228の出力レベルが反映される。
このように本実施例は、ソフトウェア制御部50の処理の遅れを考慮に入れて、ソフトウェア制御部50がリロードタイマ228の計時時間を設定するので、割込信号の入力から設定された待機時間で出力ポート225の出力レベルを所定レベルとすることができる。
また、リロードタイマ228は、クロック信号に基づいて設定された計時時間をカウントするので、正確に計時時間を計時することができる。このため、割込信号の入力から設定された待機時間で正確に出力ポート225の信号出力レベルを所定レベルとすることができる。
また、リロードタイマ228がカウントダウンを開始するまでの間は、データレジスタ56に書き込まれた情報に従って出力ポート225の信号出力レベルが設定される。このため、レベル設定レジスタ53の設定を行ってからカウントダウン開始レジスタ55にカウントダウン開始情報を書き込むまでの間に、出力ポート225にリロードタイマ228の不要な出力が反映されることがない。
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。
ECUの構成を示すブロック図である。 マイコンのハードウェア構成を示す図である。 ソフトウェアの制御で動作するソフトウェア制御部と、ハードウェアの接続構成を示す図である。 出力ポートの出力レベルを設定する構成を示す図である。 マイコンの動作タイミングを示すタイムチャートである。 リロードタイマの計時時間の算出方法を示す図である。 カウントダウン中のリロードタイマの出力レベルがローレベルの場合に、出力ポートから出力される不要な出力を示す図である。 カウントダウン中のリロードタイマの出力レベルがハイレベルの場合に、出力ポートから出力される不要な出力を示す図である。 ソフトウェア制御部の処理手順を示すフローチャートである。
符号の説明
11 スロットル開度センサ 12 アクセル開度センサ
13 車速センサ 14 クランク角センサ
15 ノックセンサ 20 ECU
21 入力インターフェース 22 マイコン
23 出力インターフェース 24 発振回路
31 インジェクタ 32 イグナイタ
33 点火プラグ 34 電子制御スロットル
50 ソフトウェア制御部 51 入力時刻レジスタ
52 現在時刻レジスタ 53 レベル設定レジスタ
54 カウントダウン時間設定レジスタ
55 カウントダウン開始レジスタ 56 データレジスタ(記憶部)
57 機能選択レジスタ 226 割込制御回路
227 フリーランタイマ 228 リロードタイマ(タイマ部)

Claims (5)

  1. 被制御部を制御する制御装置であって、
    セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部と、
    ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間をセットする処理と、
    タイマ部に、セットした時間の計時を開始させる処理と、を実行する実行部と、
    を備える制御装置。
  2. 被制御部を制御する制御装置であって、
    信号を出力する出力ポートの信号レベルを設定する情報を記憶する記憶部と、
    セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部と、
    出力ポートの出力する信号レベルを、記憶部に記憶した情報に基づいて設定するのか、前記タイマ部の出力に基づいて設定するのかを選択する選択部と、
    ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいて、タイマ部の計時時間をセットする処理と、
    記憶部の情報に基づいて出力ポートの出力する信号レベルが設定されるように選択部を設定した後にタイマ部の計時を開始させる処理と、
    タイマ部に計時を開始させた後に、タイマ部の出力に基づいて出力ポートの信号レベルが設定されるように選択部を設定する処理と、を実行する実行部と、
    を備える制御装置。
  3. 前記実行部が前記タイマ部に計時させる計時時間は、割り込み信号を入力してからの所定時間であって、前記実行部の処理遅延により前記タイマ部への計時時間のセットが遅延した時間分を所定時間から減算した時間である請求項1又は2記載の制御装置。
  4. 前記タイマ部は、セットされた時間の計時を終了すると、実行部に割り込み信号を出力し、
    前記実行部は、割り込み信号を入力した時刻と、現在時刻とに基づいて、タイマ部の計時時間をセットする請求項1から3のいずれか一項記載の制御装置。
  5. 被制御部を制御する制御方法であって、
    ハードウェアからの割り込み信号の入力時刻と、現在時刻とに基づいてタイマ部の計時時間をセットする処理と、
    セットされた時間を計時し、計時を終了すると信号を出力する出力ポートの信号レベルを計時中の信号レベルとは異なる信号レベルに変更するタイマ部に、セットした時間の計時を開始させる処理と、を有する制御方法。
JP2008290331A 2008-11-12 2008-11-12 制御装置及び制御方法 Withdrawn JP2010117868A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008290331A JP2010117868A (ja) 2008-11-12 2008-11-12 制御装置及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008290331A JP2010117868A (ja) 2008-11-12 2008-11-12 制御装置及び制御方法

Publications (1)

Publication Number Publication Date
JP2010117868A true JP2010117868A (ja) 2010-05-27

Family

ID=42305512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008290331A Withdrawn JP2010117868A (ja) 2008-11-12 2008-11-12 制御装置及び制御方法

Country Status (1)

Country Link
JP (1) JP2010117868A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989523A (zh) * 2019-12-06 2020-04-10 宁波吉利汽车研究开发有限公司 整车尺寸管理方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989523A (zh) * 2019-12-06 2020-04-10 宁波吉利汽车研究开发有限公司 整车尺寸管理方法及系统

Similar Documents

Publication Publication Date Title
JP2005307916A (ja) 内燃機関の燃料噴射制御装置
JP4466745B2 (ja) 内燃機関の制御装置および制御方法
JP4462147B2 (ja) 信号出力装置及び電子制御装置
JP5246154B2 (ja) 内燃機関の制御装置
JP2010117868A (ja) 制御装置及び制御方法
JPH0723582Y2 (ja) 内燃機関の点火時期制御装置
JP5550770B1 (ja) 車両用電子制御装置および車両用電子制御方法
JP3331880B2 (ja) マイクロコンピュータを用いた制御装置
JP2022108110A (ja) エンジン制御装置
JP6579852B2 (ja) 内燃機関の始動制御装置及び始動制御方法
JP5794012B2 (ja) 電子制御装置
JP2004257395A (ja) 内燃機関の点火制御方法及びそれを実行可能なコンピューター・プログラム
JP5086922B2 (ja) 内燃機関の点火時期制御装置
JP2681771B2 (ja) 内燃エンジンの電子点火時期制御方法
JP4752807B2 (ja) マイクロコンピュータ
JP3384498B2 (ja) エンジンの点火制御における処理遅れ解消方法
JPH01358A (ja) 内燃機関の点火時期制御装置
JPS6217369A (ja) 内燃エンジンのアイドル時の点火時期制御方法
JP2001248493A (ja) パルス出力制御装置
JP2015094272A (ja) 内燃機関の行程判別装置および行程判別方法
JPH11210548A (ja) エンジンの制御装置
JPS582467A (ja) 車両用内燃機関のための点火時期調整方法
JP2001342874A (ja) 内燃機関の燃料噴射制御装置
JP2005016480A (ja) 内燃機関用制御装置
JP2753251B2 (ja) エンジン制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111020

A072 Dismissal of procedure

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20130312

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130402