【実施例1】
【0013】
図1は、電子制御装置1とエンジン2の概略図である。電子制御装置1は、エンジン2を制御する。電子制御装置1は、エンジン2と電気的に接続される。エンジン2は、例えば、吸気フィルタ21と、主通路22と、流量センサ23と、スロットルバルブ24と、吸気マニホールド25と、インジェクタ26と、吸気バルブ27と、点火プラグ28と、ピストン30と、気筒31と、排気バルブ32と、空燃比センサ33とを備える。
【0014】
なお、流量センサ23および空燃比センサ33を特に区別しない場合には、「センサ」と示す場合がある。センサは、流量センサ23および空燃比センサ33に限らず、クランクセンサまたはカムセンサ等の他のセンサでもよい。
【0015】
エンジン2内に吸入された気体34は、吸気フィルタ21によってゴミを取り除かれる。気体34は、主通路22を通過し、流量センサ23にて流量が計測される。流量センサ23は、気体34の情報を電子制御装置1に送信する。電子制御装置1は、スロットルバルブ24を制御し、気体34の流量を調節する。気体34は、吸気マニホールド25を通過し、インジェクタ26によって燃料が噴射される。吸気バルブ27が開くと、燃料が混ざった気体34は、燃焼室29に流入する。気体34は、ピストン30が上昇することによって圧縮される。気体34は、点火プラグ28によって点火される。気体34は、燃焼し膨張することによって、ピストン30を下降させる。排気バルブ32が開くことによって、燃焼後の気体35は排気される。空燃比センサ33は、気体35の酸素濃度を測定する。空燃比センサ33は、測定データを電子制御装置1に送信する。電子制御装置1は、空燃比センサ33からの測定データに基づいて、インジェクタ26の燃料噴射量を制御する。
【0016】
電子制御装置1は、車両に搭載されるセンサを制御する複数の制御回路11(1)〜11(n)(nは任意の定数を示す)と、車両の制御処理を実行するマイクロコンピュータ(図中ではマイコンと略記する場合がある)12とを備える。なお、制御回路11(1)〜11(n)は、特に区別しない場合には、制御回路11と示す場合がある。制御回路11(1)は、例えば、流量センサ23を制御する(図2参照)。制御回路11(2)は、例えば、空燃比センサ33を制御する。
【0017】
制御回路11は、マイコン12から独立してセンサの制御をする。制御回路11は、マイコン12と通信可能な集積回路である。制御回路11は、例えば、パケット生成部111と送信部112とを備える。なお、図中において、「部」は省略して示す場合がある。例えば、パケット生成部111は、図中では、「パケット生成」と示す場合がある。
【0018】
パケット生成部111は、センサから取得した測定データを分割し、「複数のパケット」の一例としての複数の分割データa1〜a3,b1〜b3,c1〜c3(図4参照)を生成する。なお、各分割データa1〜a3,b1〜b3,c1〜c3は、特に区別しない場合には、「分割データa」と示す場合がある。分割データaには、ヘッダまたはパリティ等が含まれてもよい。すなわち、例えば、分割データa1〜a3がヘッダを示し、分割データb1〜b3,c1〜c3が測定データを示してもよい。
【0019】
パケット生成部111は、生成した分割データaを送信部112に送信する。送信部112は、分割データaを通信周期k(図4参照)でマイコン12へ送信する。
【0020】
マイコン12は、例えば、通信機能121と、演算処理装置122と、DMAC(Direct Memory Access Controller)123と、メモリ124とを備える。通信機能121は、制御回路11と通信可能に接続される。
【0021】
演算処理装置122は、マイコン12の中枢となる構成要素の一つであり、制御、演算または情報転送等の様々な処理を行う。演算処理装置122は、例えば、CPUである。DMAC123は、マイコン12を介さずに、通信機能121とメモリ124とのデータ転送を行う。DMAC123は、演算処理装置122から入出力情報を取得する。メモリ124は、演算処理装置122の作業領域として用いられるもので、各種データを記憶する。
【0022】
マイコン12は、分割データaを受信する受信割り込み処理41(m)(図4参照,mは任意の定数を示す)と、受信割り込み処理41(m)よりも高優先に設定され、エンジン2を制御するエンジン制御割り込み処理40とを実行する。なお、受信割り込み処理41(m)は、特に区別しない場合には、受信割り込み処理41と示す場合がある。
【0023】
マイコン12は、受信割り込み処理41によって、分割データaを通信機能121から取得する。マイコン12は、測定データを算出し、メモリ124に保存する。すなわち、マイコン12は、受信割り込み処理41によって、センサから測定データを取得する。
【0024】
マイコン12は、エンジン制御割り込み処理40を実行することによって、メモリ124に保存される測定データに基づいて、エンジンを制御する。エンジン制御割り込み処理40は、例えば、インジェクタ26の噴射量制御、インジェクタ26の噴射タイミング制御、気体34の吸気タイミングまたは気体35の排気タイミング等である。
【0025】
図2は、電子制御装置1の通信の説明図である。流量センサ23は、例えば、制御回路11(1)に測定データを送信する。制御回路11(1)は、マイコン12に分割データと同期信号とを送信する。空燃比センサ33は、制御回路11(2)に測定データを送信する。制御回路11(2)は、マイコン12に分割データaと同期信号r(図4参照)とを送信する。なお、一つの制御回路11に複数のセンサが通信可能に接続されてもよい。
【0026】
図3は、マイコン12のハードウェア構成図である。マイコン12は、例えば、通信機能121と、演算処理装置122と、DMAC123と、メモリ124と、タイマ機能125と、割り込みコントローラ126とを備える。各機能121〜126は、バス127を介して互いに通信可能に接続される。
【0027】
タイマ機能125は、通信周期kの開始タイミングおよび受信割り込み処理41の発生タイミングを検出する。割り込みコントローラ126は、周辺機器からの割り込み指令によって、受信割り込み処理41またはエンジン制御割り込み処理40等を演算処理装置122に実行させる。
【0028】
以下の電子制御装置1における受信割り込み処理41の説明において、空燃比センサ33を一例にあげて説明する。図4は、受信割り込み処理41の説明図である。図4(1)には、同期信号rを示す。同期信号rは、例えば、時刻ts1にて制御回路11(2)から送信される。タイマ機能125は、時刻ts1を通信周期kの開始タイミングとして検出する。すなわち、マイコン12は、通信周期の開始タイミングを制御回路11からの同期信号rに基づいて設定する。
【0029】
図4(2)には、分割データaを示す。第1の周期(時刻ts1〜時刻ts2)において、制御回路11(2)は、分割データa1、分割データb1、分割データc1の順番でマイコン12に送信する。第2の周期(時刻ts2〜時刻ts3)において、制御回路11は、分割データa2、分割データb2、分割データc2の順番でマイコン12に送信する。第3の周期(時刻ts3〜)において、制御回路11は、分割データa3、分割データb3、分割データc3の順番でマイコン12に送信する。
【0030】
分割データa1と、分割データb1と、分割データc1とは、第1の周期における空燃比センサ33の測定データを分割したデータである。分割データa2と、分割データb2と、分割データc2とは、第2の周期における空燃比センサ33の測定データを分割したデータである。分割データa3と、分割データb3と、分割データc3とは、第3の周期における空燃比センサ33の測定データを分割したデータである。なお、分割データaは、測定データが三つに分割されたデータに限らず、二つまたは四つ以上に分割されたデータでもよい。
【0031】
図4(3)には、エンジン制御割り込み処理40を示す。エンジン制御割り込み処理40は、例えば、分割データa1の受信完了時刻t11より前に実行開始し、分割データb1の受信完了時刻t12よりも後に終了する(終了時刻te)。なお、「受信完了時刻」とは、通信機能121が制御回路11から分割データaの受信を完了した時刻である。
【0032】
図4(4)には、受信割り込み処理41を示す。受信割り込み処理41は、各分割データaが通信機能121に受信完了したタイミングで実行される。しかしながら、エンジン制御割り込み処理40が受信割り込み処理41よりも高優先なので、受信割り込み処理41は、エンジン制御割り込み処理40の終了後に実行される。受信割り込み処理41(1)は、終了時刻te後に実行され、分割データb1を受信する。受信割り込み処理41(2)は、分割データc1の受信完了時刻t13の後に実行され、分割データc1を受信する。
【0033】
受信割り込み処理41(3)は、分割データa2の受信完了時刻t21の後に実行され、分割データa2を受信する。受信割り込み処理41(4)は、分割データb1の受信完了時刻t22の後に実行され、分割データb2を受信する。受信割り込み処理41(5)は、分割データc2の受信完了時刻t23の後に実行され、分割データc2を受信する。第3通信周期における受信割り込み処理41(6),41(7),41(8)の説明は、受信割り込み処理41(3),41(4),41(5)と同様の説明になるため、詳細を省略する。
【0034】
図4(6)〜図4(8)には、分割データ保存部を示す。分割データ保存部は、例えば、メモリ124に備えられる分割データaの記憶領域である。分割データ保存部は、第1〜第3分割データ保存部を備えるが、三つの保存領域に限らず、二つまたは四つ以上の保存領域を備えてもよい。
【0035】
第1分割データ保存部には、例えば、受信割り込み処理41(1)にて分割データb1が保存され、受信割り込み処理41(3)にて分割データa2が保存され、受信割り込み処理41(6)にて分割データa3が保存される。第2分割データ保存部には、例えば、受信割り込み処理41(2)にて分割データc1が保存され、受信割り込み処理41(4)にて分割データb2が保存され、受信割り込み処理41(7)にて分割データb3が保存される。第3分割データ保存部には、例えば、受信割り込み処理41(5)にて分割データc2が保存され、受信割り込み処理41(8)にて分割データc3が保存される。
【0036】
図4(9)は、測定データ保存部を示す。測定データ保存部には、分割データaを結合することによって生成した測定データが保存される。測定データ保存部には、例えば、受信割り込み処理41(5)によって分割データc2が第3分割データ保存部に保存された後に、分割データa2,b2,c2に基づいて生成された測定データが保存される。
【0037】
図4(10)は、受信カウンタを示す。受信カウンタは、新たに分割データ保存部に保存された分割データaの数をカウントする。受信カウンタは、通信周期の開始タイミングts1において「0」を示し、受信割り込み処理41(1)によって「1」に変更される。受信カウンタは、受信割り込み処理41(2)によって「2」に変更される。受信カウンタは、受信割り込み処理41(3)によって「1」に変更される。受信カウンタは、受信割り込み処理41(4)によって「2」に変更される。受信カウンタは、受信割り込み処理41(5)によって「3」に変更される。その後受信カウンタは、「0」に変更される。受信カウンタは、受信割り込み処理41(6)によって「1」に変更される。受信カウンタは、受信割り込み処理41(7)によって「2」に変更される。
【0038】
以下、図4に記載の内容を参照しながら電子制御装置1の受信割り込み処理41を説明する。図5は、受信割り込み処理41の流れ図である。受信割り込み処理41は、エンジン制御処理40の終了時刻te後または、分割データaを通信機能121が受信完了した後に実行される。例えば、受信割り込み処理41(1)は、終了時刻te後に実行される。なお、演算処理装置122は、通信機能121の受信が完了したかを通信機能121が備える受信完了フラグで判定してもよい。
【0039】
演算処理装置122は、例えば、受信割り込み処理41(1)を実行し、通信機能121から分割データb1を取得する(S11)。演算処理装置122は、通信機能121の受信完了フラグを初期化し、分割データb1を第1分割データ保存部へ保存する。
【0040】
演算処理装置122は、受信完了割込み処理41(1)が発生した時刻teをタイマ機能125より取得する(S12)。演算処理装置122は、同期信号rの入力タイミングの時刻ts1をタイマ機能125より取得する。演算処理装置122は、カウントを開始する基準タイミングの時刻として、時刻ts1をメモリ124へ格納する。演算処理装置122は、基準タイミングから受信割り込み処理41(1)の発生タイミングまでの時間tt1を算出する。
【0041】
演算処理装置122は、時間tt1と通信周期kとを比較する(S13)。時間tt1が第1通信周期kよりも短いため(S13:Yes)、演算処理装置122は、受信カウンタを「0」から「1」にカウントアップする(S14)。
【0042】
演算処理装置122は、パケット数判定処理(S15)を実行する。なお、受信完了割込みが発生した時間が通信周期k以上の場合(S13:No)の処理(S16〜S18)については後述する。
【0043】
図6は、パケット数判定処理(S15)の流れ図である。演算処理装置122は、受信カウンタとデータの分割数とを比較する(S151)。受信カウンタは、例えば、「1」である。データの分割数は、例えば、分割データa1,b1,c1の「3」である。受信カウンタがデータの分割数に到達していないため(S151:No)、演算処理装置122は、パケット数判定処理(S15)を終了する。
【0044】
なお、受信カウンタがデータの分割数に到達する場合(S151:Yes)の処理(S152〜S154)については後述する。図5に戻り、演算処理装置122は、受信完了割込み処理41(1)を終了する。
【0045】
演算処理装置122は、受信割り込み処理41(2)を実行した後に受信割り込み処理41(3)を実行する。演算処理装置122は、通信機能121から分割データa2を取得する(S11)。演算処理装置122は、通信機能121の受信完了フラグを初期化する。演算処理装置122は、第1分割データ保存部には分割データb1が保存され、第2分割データ保存部には分割データc1が保存されるため、分割データa2を第3分割データ保存部へ保存する。
【0046】
演算処理装置122は、受信完了割込み処理41(3)が発生した時刻t21をタイマ機能125から取得する(S12)。演算処理装置122は、基準タイミング(時刻ts1)から受信割り込み処理41(3)の発生タイミングまでの時間tt2を算出する。
【0047】
演算処理装置122は、受信完了割込み処理41(3)が発生した時間tt2と通信周期kとを比較する(S13)。時間tt2が第1通信周期kよりも長いため(S13:No)、演算処理装置122は、受信カウンタを「2」から「0」に初期化する(S16)。
【0048】
演算処理装置122は、第3分割データ保存部に保存される分割データa2を第1分割データ保存部に保存する(S17)。この際に、演算処理装置122は、受信カウンタを「0」から「1」にカウントアップする。
【0049】
演算処理装置122は、基準タイミングを第1周期の開始タイミングts1から第2周期の開始タイミングts2に更新する(S18)。演算処理装置122は、受信完了割込み処理41(3)を終了する。
【0050】
演算処理装置122は、受信割り込み処理41(4)の後に受信割り込み処理41(5)を実行する。演算処理装置122は、処理(S11,S12)を実行し、受信割り込み処理41(5)の実行時間が通信周期kよりも短いと判定する(S13:Yes)。演算処理装置122は、カウントを「2」から「3」にカウントアップする。演算処理装置122は、パケット数判定部(S15)を実行する。
【0051】
受信カウンタがデータの分割数の「3」に到達しているため(S151:Yes)、演算処理装置122は、分割データa2,b2,c2を結合して測定データを生成する(S152)。演算処理装置122は、測定データを測定データ保存部に保存する。演算処理装置122は、受信カウントと分割データaの保存先を初期化する(S153)。演算処理装置122は、第3周期の開始タイミングts3を基準タイミングに設定する(S154)。
【0052】
以上に示す自動車量電子制御装置1は、分割データaを受信完了する前にエンジン制御割り込み処理が実行される場合には、受信した分割データaを削除する。これにより、電子制御装置1は、分割データaを受信できない場合に生じる不完全な測定データの生成を抑制することができる。その結果、電子制御装置1は、正常な測定データを用いて、車両を制御することができる。
【0053】
演算処理装置122は、通信周期kの開始タイミングから一周期内に受信した受信パケットの数と、制御回路11が送信した送信パケットの数とが異なる場合には、受信したパケットを削除する。これにより、演算処理装置122は、制御回路11が送信した分割データを全て受信したかを判定することができる。これにより、不完全な測定データの生成を抑制することができる。
【実施例2】
【0054】
本実施例は、第1実施例の変形例に相当するため、第1実施例との相違を中心に説明する。図7は、受信割り込み処理41a(m)の説明図である。電子制御装置1は、受信割り込み処理41(m)の実行予定時間に基づいて、受信した分割データaの削除を判定する。実行予定時間とは、受信割り込み処理41a(m)が実行される予定の時間を示し、分割データaの受信完了時刻に関連する。
【0055】
図7(1)には、同期信号rを示す。図7(2)には、分割データaを示す。図7(3)には、エンジン制御割り込み処理40を示す。図7(4)には、受信割り込み処理41a(m)を示す。なお、受信割り込み処理41a(m)は、特に区別しない場合には、受信割り込み処理41aと示す場合がある。
【0056】
受信割り込み処理41a(1)は、分割データa1の受信完了時刻t11の後に実行され、分割データa1を受信する。受信割り込み処理41a(2)は、分割データa2の受信完了時刻t21の後に実行され、分割データa2を受信する。受信割り込み処理41a(3)は、分割データb2の受信完了時刻t22の後に実行され、分割データb2を受信する。受信割り込み処理41a(4)は、分割データc2の受信完了時刻t23の後に実行され、分割データc2を受信する。なお、受信割り込み処理41a(5)〜41a(7)の説明は、受信割り込み処理41a(2)〜41a(4)の説明と同様であるため省略する。
【0057】
受信完了時刻t11〜t13,t21〜t23は、受信割り込み処理41の実行予定時間である。受信割り込み処理41a(1)の実行予定時間は、例えば、受信完了時刻t11である。受信割り込み処理41a(2)の実行予定時間は、例えば、受信完了時刻t21である。受信割り込み処理41a(3)の実行予定時間は、例えば、受信完了時刻t22である。受信割り込み処理41a(4)の実行予定時間は、例えば、受信完了時刻t23である。
【0058】
図4(6)〜図4(8)には、分割データ保存部を示す。第1分割データ保存部には、例えば、受信割り込み処理41a(1)にて分割データa1が保存され、後述する処理(S26)によって分割データa1が削除され、受信割り込み処理41a(2)にて分割データa2が保存され、受信割り込み処理41(5)にて分割データa3が保存される。第2分割データ保存部には、例えば、受信割り込み処理41a(3)にて分割データb2が保存され、受信割り込み処理41(6)にて分割データb3が保存される。第3分割データ保存部には、例えば、受信割り込み処理41a(4)にて分割データc2が保存され、受信割り込み処理41(7)にて分割データc3が保存される。
【0059】
以下、図7に記載の内容を参照しながら電子制御装置1の受信データ割り込み処理41aを説明する。図8は、受信データ割り込み処理41aの流れ図である。演算処理装置122は、受信割り込み制御が許可されているかを判定する(S19)。受信割り込み制御が許可されている場合(S19:Yes)には、演算処理装置122は、実行開始予定時間を取得する(S23)。演算処理装置122は、例えば、受信完了時刻t11を実行開始予定時間としてタイマ機能125から取得する。
【0060】
なお、受信割り込み制御が許可されていない状態とは、後述する処理(S27)にて受信割り込み制御が停止される場合を示す。受信割り込み処理41a(m)が許可されていない場合(S19:No)における処理(S20〜S22)は、後述する。
【0061】
演算処理装置122は、受信割り込み処理41a(1)の実行予定時間を検出する。演算処理装置122は、受信完了時間t11から所定時間tr内に受信割り込み処理41a(1)が実行されるかを判定する(S24)。すなわち、演算処理装置122は、分割データaを取りこぼししない時間で受信割り込み処理41aが実行されるかを判定する。なお、所定時間trは、任意の時間を設定してもよい。
【0062】
演算処理装置122は、受信割り込み処理41a(1)が所定時間tr内で実行される為(S24:Yes)、分割データa2を第1分割データ保存部に保存する(S11)。演算処理装置122は、次に実行される受信割り込み処理41aの実行予定時間を、次の受信完了時刻t12に設定する(S25)。演算処理装置122は、受信割り込み処理41a(1)を終了する。
【0063】
次に演算処理装置122は、エンジン制御割り込み処理40が終了(時刻te)した後に、受信割り込み処理41を実行するか判定する。演算処理装置122は、受信割り込み処理41aが許可されているため(S19:Yes)、受信完了時刻t12から所定時間tr内に受信割り込み処理41が実行されたかを判定する(S24)。
【0064】
受信完了時刻t12から所定時間tr内に受信割り込み処理41が実行されないため(S24:No)、演算処理装置122は、分割データa1を第1分割データ保存部から削除する(S26)。すなわち、演算処理装置122は、実行予定時間から所定時間tr内に受信割り込み処理41aが実行されない場合には、受信した分割データaを削除する。
【0065】
演算処理装置122は、受信割り込み処理41aを停止させる(S27)。すなわち、演算処理装置122は、受信割り込み処理41aが実行予定時間から所定時間tr内に実行されない場合には、次の周期まで受信割り込み処理を停止させる。
【0066】
演算処理装置122は、次の周期の内の最初の受信完了時刻に実行予定時間を設定する(S28)。演算処理装置122は、例えば、第2周期の受信完了時刻t21に実行予定時刻を設定する。
【0067】
次に演算処理装置122は、受信完了時刻t21において、受信割り込み処理41a(2)を実行するかを判定する(S19)。受信割り込み処理41aが許可されないため(S19:No)、演算処理装置122は、受信割り込み処理41aが停止された終了時刻teと、受信割り込み処理41(2)との周期が異なるかを判定する(S20)。
【0068】
終了時刻teが第1周期であり、受信割り込み処理41a(2)が第2周期で実行されるため(S20:Yes)、演算処理装置122は、受信割り込み処理41aの停止を解除する(S21)。演算処理装置122は、受信割り込み処理41a(2)が受信完了時刻t21から所定時間tr内で実行される為(S24:Yes)、分割データa2を第1分割データ保存部に保存する(S11)。
【0069】
演算処理装置122は、次の受信完了予定時刻t22に実行予定時刻を設定する(S25)。演算処理装置122は、受信割り込み処理41a(2)を終了する。
【0070】
以上に示す電子制御装置1は、受信割り込み処理41aを次の周期まで停止させることによって、不要な受信割り込み処理41aの実行を抑制することができる。すなわち、電子制御装置1は、測定データの生成が完了しないと判定する場合には、受信割り込み処理41aを停止することによって、演算処理装置122の使用率を抑制することができる。これにより、演算処理装置122は、他の処理に対する効率性を向上させることができる。
【0071】
以上、本発明の実施形態について詳述したが、本発明は、前記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。例えば、前記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。