以下、本発明の実施形態について、図面を用いて、詳細に説明する。なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<第1の実施形態>
以下、図1から図6を用いて、本発明の実施形態について説明する。
<シフトポジション制御装置構成>
図1は、本実施形態に係るシフトポジション制御装置1の概略構成図である。シフトポジション制御装置1は、車両の駆動力源である駆動部50の回転を変速して駆動輪(図示せず)に伝達する自動変速機40を制御する装置である。図1に示すように、シフトポジション制御装置1は、シフトレバー機構10、シフトポジション判定部20、ギアポジション切換部30、自動変速機40、駆動部50、駆動始動部60、および駆動ECU(Electronic control unit)70とを備える。
シフトレバー機構10は、シフトレバー11、シフトゲート12、およびシフトセンサA13およびシフトセンサB14とから構成される。なお、シフトセンサA13およびシフトセンサB14を区別しない場合には、単に、シフトセンサ13,14とする。
シフトゲート12には、自動変速機40の変速段に対応するシフトポジションとして、縦一列の上端にリバース(R、後進)位置、縦一列の中央にニュートラル(N、中立)位置、縦一列の下端にドライブ(D、前進)位置、が設けられ、ニュートラル(N)位置の横には、リバース(R)位置、ニュートラル(N)位置、およびドライブ(D)位置から解放されたときにシフトレバー11が戻るホーム(H)位置が設けられている。リバース(R)位置およびドライブ(D)位置は車両を駆動する駆動位置であって、ニュートラル(N)位置は車両を駆動させない非駆動位置である。
シフトレバー11は、点線矢印の方向にシフトゲート12を移動できる。シフトレバー11は、運転者が操作してシフトポジションを選択した後に解放されると、シフトレバー機構10によりホーム(H)位置に自動的に戻される、モーメンタリタイプのシフトレバーである。
シフトセンサ13,14は、運転者の操作するシフトレバー11の位置を検出して、これを電気信号に変換し、変換した電気信号をシフトポジション判定部20へ出力する。なお、本実施形態においては、シフトセンサA13とシフトセンサB14との、2系統で検出するように設けられているが、3系統以上であってもよい。
シフトポジション判定部20は、シフトセンサA13、シフトセンサB14のそれぞれから入力を受信した2つの電気信号に基づいて各シフトセンサの異常発生の有無を判断しつつ、少なくとも1つのシフトセンサからの電気信号に基づいてシフトポジションを判定する。シフトポジション判定部20における具体的なシフトポジションの判定処理について、シフトポジションをドライブ(D)と判定する場合を例に、図2〜図6を用いて説明する。なお、他の駆動ポジションおよび非駆動ポジションについても同様の処理によって判定することができる。
図1に戻って、ギアポジション切換部30は、シフトポジション判定部20からの判定結果に応じたギアポジションに自動変速機40を切り換える。例えば、シフトポジション判定部20の判定結果が「シフトポジションがドライブ(D)」である場合に、ギアポジション切換部30は、ドライブ(D)に対応するギアポジション、いわゆる、ドライブ(D)レンジに自動変速機40を切り換える。
自動変速機40は、ギアポジション切換部30と電気的に連結され、ギアポジション切換部30からの指示に応じてギアポジションが変更されるものであって、いわゆるシフトバイワイヤ方式が採用されている。自動変速機40は、駆動部50の動力を変速し、変速した動力を駆動輪(図示せず)に出力する。
駆動部50は、エンジンやモーター等であって、エンジンおよびモーターの両方であってもよい。
駆動始動部60は、駆動部50を始動する始動信号を出力する。例えば、車両内の運転席近傍に備えられたエンジンスタートスイッチが押下されたことに応じて、駆動始動部60は、駆動部50を始動する始動信号を出力する。
駆動ECU70は、駆動部50を制御するのに必要な各種センサからの信号を受信し、受信した信号に基づいて駆動部50を制御する。例えば、アクセルペダルポジションセンサによって検出されたアクセルペダルの操作量信号を受信し、受信した信号に基づいた出力が出るように駆動部50を制御する。本実施形態において、シフトポジション判定部20は駆動ECU70から独立しているが、駆動ECU70に組み込まれてもよい。
<シフトポジション判定処理>
図2〜図6は、本実施形態に係るシフトポジション判定部20におけるシフトポジション判定処理フローである。本処理は、シフトポジション判定部20が、シフトセンサA13またはシフトセンサB14のどちらか一方からドライブ(D)位置を示す電気信号(以下、ドライブ(D)を示す電気信号をD信号という)の入力を受信すると開始する。電気信号からシフトレバー位置を判定する方法については、周知技術(例えば、特許文献1)を用いる。シフトポジション判定部20は、シフトセンサA13またはシフトセンサB14からの入力を受信した電気信号に応じて、ホーム(H)位置から直接、ドライブ(D)位置、リバース(R)位置、ニュートラル(N)位置にシフトレバー11が移動した場合のみに、それぞれの位置を示す電気信号を検出したと判定してもよい。
ステップS1において、シフトポジション判定部20は、シフトセンサA13およびシフトセンサB14のそれぞれに対応する操作判定カウンタが初期値であるか否かを判定する。
なお、操作判定カウンタは、シフトポジション判定部20が保持している。操作判定カウンタは、シフトセンサA13およびシフトセンサB14のそれぞれについて設定されており、その値は、各シフトセンサの異常、または、シフトポジション判定部20がシフトポジションをドライブ(D)と判定する条件となる、各シフトセンサからのD信号の入力を受信する回数を示している。
具体的には、操作判定カウンタは、シフトセンサA13に対応する操作判定カウンタOCAと、シフトセンサB14に対応する操作判定カウンタOCBと、を含み、これらにはそれぞれ0または1以上の整数の値が設定される。
操作判定カウンタOCAおよび操作判定カウンタOCBの初期値には「1」が設定される。初期値は、シフトポジション判定部20がシフトポジションをドライブ(D)と判定する条件が、シフトセンサA13およびシフトセンサB14それぞれからD信号を「1」回受信することであること、すなわち、運転者がシフトレバー11を操作してドライブ(D)位置を1回選択することを示している。
ステップS1に戻って、操作判定カウンタが初期値である場合(YES)には、ステップS2に処理を進む。一方、操作判定カウンタが初期値でない場合(NO)には、ステップS5に処理を進む。
ステップS2において、シフトポジション判定部20は、受信したD信号の入力がシフトセンサA13からの信号であるか否かを判定する。受信したD信号の入力がシフトセンサA13からの信号である場合には、ステップS3の処理に進み、一方、受信したD信号の入力がシフトセンサA13でなくシフトセンサB14からの信号である場合には、ステップS4の処理に進む。
ステップS3において、シフトポジション判定部20は、シフトセンサA13からのD信号を先に受信した場合におけるシフトポジション判定処理(シフトセンサA先導シフトポジション判定処理)を行う。本処理については、図3を用いて後述する。
ステップS4において、シフトポジション判定部20は、シフトセンサB14からのD信号の入力を先に受信しているため、シフトセンサB14からのD信号の入力を先に受信した場合におけるシフトポジション判定処理(シフトセンサB先導シフトポジション判定処理)を行う。本処理についても、図4を用いて後述する。
ステップS5において、シフトポジション判定部20は、操作判定カウンタOCAに「0」が設定されているか否かを判定する。前回のシフトポジション判定処理において、シフトセンサA13の異常発生を検出した場合に、シフトポジション判定部20は操作判定カウンタOCAに「0」を設定し、シフトセンサA13に異常が発生したことを示す。操作判定カウンタOCAに「0」が設定されている場合には、ステップS6の処理に進み、一方、シフトセンサA13の操作判定カウンタOCAに「0」が設定されていない場合には、ステップS7の処理に進む。
ステップS6において、シフトポジション判定部20は、シフトセンサA13に異常が発生している場合のシフトポジション判定処理(シフトセンサA異常時シフトポジション判定処理)を行う。本処理についても、図5を用いて後述する。
ステップS7において、シフトポジション判定部20は、シフトセンサB14の操作判定カウンタOCBに「0」が設定されているか否かを判定する。前回のシフトポジション判定処理において、シフトセンサB14の異常発生を検出した場合に、シフトポジション判定部20は操作判定カウンタOCBに「0」を設定し、シフトセンサB14に異常が発生していることを示す。操作判定カウンタOCBに「0」が設定されている場合には、ステップS8の処理に進み、一方で、シフトセンサB14の操作判定カウンタOCBに「0」が設定されていない場合には、処理を終了する。なお、シフトセンサB14の操作判定カウンタOCBに「0」が設定されていない場合とは、操作判定カウンタOCAおよび操作判定カウンタOCBの両方にn(n>1)が設定されている状態を指すが、このような状態は本シフトポジション判定処理では発生しないため、システムエラーであると判断できるので、そのまま、処理を終了してもよい。
ステップS8において、シフトポジション判定部20は、シフトセンサB14に異常が発生している場合のシフトポジション判定処理(シフトセンサB異常時シフトポジション判定処理)を行う。本処理については、図6を用いて後述する。
次に、図3を用いて、図2のステップS3のシフトセンサA先導シフトポジション判定処理について説明する。
ステップS30において、シフトポジション判定部20は、シフトセンサA13からD信号の入力を受信した回数を示す検出数カウンタDCAを、ステップS2でシフトセンサA13からD信号の入力を受信したことに応じて「+1」とする。なお、DCAの初期値は、「0」である。
ステップS31において、シフトポジション判定部20は、シフトセンサB14からD信号の入力を受信したか否かを判定する。シフトセンサB14からD信号の入力を受信した場合(YES)には、ステップS32の処理に進み、一方で、シフトセンサB14からD信号の入力を受信しない場合(NO)には、ステップS36の処理に進む。なお、シフトセンサA13のD信号の入力を受信してから所定時間以内に、シフトセンサB14からD信号の入力を受信できない場合に、シフトポジション判定部20は、シフトセンサB14からD信号の入力を受信していないと判断する。
ステップS32において、シフトポジション判定部20は、シフトセンサB14からD信号の入力を受信した回数を示す検出数カウンタDCBを、ステップS31でシフトセンサB14からD信号の入力を受信したことに応じて「+1」とする。なお、DCBの初期値も、DCAの初期値と同様「0」である。
ステップS33において、シフトポジション判定部20は、シフトセンサA13について、操作判定カウンタOCAと検出数カウンタDCAとが一致し、かつ、シフトセンサB14について、操作判定カウンタOCBと検出数カウンタDCBとが一致するか否かを判定する。すなわち、シフトポジションをドライブ(D)と判断する条件を満たしているか否かを判断する。OCA=DCA、かつ、OCB=DCBである場合(YES)には、ステップS34の処理に進み、一方で、いずれか一方の等式でも成立しない場合(NO)には、処理を終了する。この場合、運転者に警告等をおこなってもよい。
ステップS34において、シフトポジション判定部20は、シフトポジションがドライブ(D)と判断し、ギアポジション切換部30に判定結果を出力する。
ステップS35において、シフトポジション判定部20は、シフトセンサA13またはシフトセンサB14のどちらか一方からホーム(H)位置を示す電気信号(以下、ホーム(H)を示す電気信号をH信号という)の入力を受信すると、検出数カウンタDCAおよび検出数カウンタDCBを、初期値「0」に戻し、処理を終了する。このように、シフトポジションの判定結果が出ると、次のシフトポジション判定処理のために検出数カウンタDCAおよび検出数カウンタDCBを初期値に戻す。
ステップS36において、シフトポジション判定部20は、シフトセンサA13からH信号の入力を受信すると、シフトセンサB14からD信号の入力を受信できなかった回数、すなわち、シフトセンサB14に異常が発生した回数を示すエラーカウンタECBを、ステップS32でシフトセンサB14からD信号の入力を受信できなかったことに応じて「+1」とする。なお、エラーカウンタECBの初期値は、「0」である。なお、エラーカウンタECBが予め設定した閾値を超えた場合には、処理を終了してもよい。これは、運転者のシフトポジションを選択する操作が煩雑になりすぎることを防ぐためである。
ステップS37において、シフトポジション判定部20は、操作判定カウンタOCBの値をシフトセンサB14に異常が発生していることを示す「0」に設定する。また、シフトポジション判定部20は、操作判定カウンタOCAにエラーカウンタECBの値を設定し、正常に起動しているシフトセンサA13から入力されるD信号の入力受信回数を2以上に設定する。それにより、運転者にシフトレバー11を操作してドライブ(D)位置を選択させる回数を増やし、シフトセンサB14に異常が発生していることを通知する。
次に、図4を用いて、シフトセンサB先導シフトポジション判定処理について説明する。なお、図3のステップと同一処理については同一ステップ番号を付し、説明を省略する。
ステップS40において、シフトポジション判定部20は、シフトセンサA13からD信号の入力を受信したか否かを判定する。シフトセンサA13からD信号の入力を受信した場合(YES)には、ステップS30の処理に進む。一方で、シフトセンサA13からD信号の入力を受信しない場合(NO)には、ステップS41の処理に進む。なお、シフトセンサB14のD信号受信から所定時間以内に、シフトセンサA13からD信号の入力を受信できない場合に、シフトポジション判定部20は、シフトセンサA13からD信号の入力を受信していないと判断する。
ステップS41において、シフトポジション判定部20は、シフトセンサB14からH信号の入力を受信すると、シフトセンサA13からD信号の入力を受信できなかった回数、すなわち、シフトセンサA13に異常が発生した回数を示すエラーカウンタECAを、ステップS40でシフトセンサA13からD信号の入力を受信できなかったことに応じて「+1」とする。なお、エラーカウンタECAの初期値は、「0」である。なお、エラーカウンタECAが予め設定した閾値を超えた場合には、処理を終了してもよい。これは、運転者のシフトポジションを選択する操作が煩雑になりすぎることを防ぐためである。
ステップS42において、シフトポジション判定部20は、操作判定カウンタOCAに、シフトセンサA13に異常が発生していることを示す「0」を設定する。また、シフトポジション判定部20は、操作判定カウンタOCBにエラーカウンタECAの値を設定し、正常に起動しているシフトセンサB14から入力される信号の入力受信回数を2以上に設定する。これにより、運転者にシフトレバー11を操作してドライブ(D)位置を選択させる回数を増やし、シフトセンサA13に異常が生じていることを通知する。
次に、図5を用いて、図2のステップS6のシフトセンサA異常時シフトポジション判定処理について説明する。なお、図3または図4のステップと同一処理については同一ステップ番号を付し、説明を省略する。
ステップS60において、シフトポジション判定部20は、シフトセンサB14からD信号の入力を受信したか否かを判定する。シフトセンサB14からD信号の入力を受信した場合(YES)には、ステップS32の処理に進み、一方で、シフトセンサB14からD信号の入力を受信しない場合(NO)には、処理を終了する。なお、シフトセンサB14からD信号の入力を受信したか否かの処理は、ステップS31で説明したとおりである。
ステップS61において、シフトポジション判定部20は、操作判定カウンタOCBと検出数カウンタDCBとが一致するか否かを判定する。すなわち、正常であるシフトセンサB14のみについて、シフトポジションをドライブ(D)と判断する条件を満たしているか否かを判断する。DCB=OCBである場合(YES)には、ステップS34の処理に進み、一方で、等式が成立しない場合(NO)には、処理を終了する。これにより、操作判定カウンタOCBと検出数カウンタDCBとが一致するまで、運転者にシフトレバー11を操作してドライブ(D)位置を選択させることで、運転者にシフトセンサに異常が発生していることを認識させることができる。この場合に、運転者に再操作を促す警告等をおこなってもよい。
ステップS62において、シフトポジション判定部20は、正常であるシフトセンサB14からH信号の入力を受信すると、検出数カウンタDCBを、次のシフトポジション判定処理のために、初期値「0」に戻す。
ステップS63において、シフトポジション判定部20は、操作判定カウンタOCAおよび操作判定カウンタOCBを、初期値「1」に戻す。これは、次回のシフトポジション判定処理において、シフトセンサ13,14に引き続き異常が発生しているか否かを判断するためである。但し、エラーカウンタECAおよびエラーカウンタECBの値は初期値に戻さないため、シフトセンサ13,14に異常が発生したことを検出した回数はエラーカウンタECA,ECBに積算されたままとなる。
次に、図6を用いて、図2のステップS7のシフトセンサB異常時シフトポジション判定処理について説明する。なお、図3〜図5のステップと同一処理については同一ステップ番号を付し、説明を省略する。
ステップS70において、シフトポジション判定部20は、シフトセンサA13からD信号の入力を受信したか否かを判定する。シフトセンサA13からD信号の入力を受信した場合(YES)には、ステップS30の処理に進み、一方で、シフトセンサA13からD信号の入力を受信しない場合(NO)には、処理を終了する。なお、シフトセンサA13からD信号の入力を受信したか否かの処理はステップS40で説明したとおりである。
ステップS71において、シフトポジション判定部20は、操作判定カウンタOCAと検出数カウンタDCAとが一致するか否かを判断する。すなわち、正常であるシフトセンサA13のみについて、シフトポジションをドライブ(D)と判定する条件を満たしているか否かを判断する。OCA=DCAである場合(YES)には、ステップS34の処理に進み、一方、等式が成立しない場合(NO)には、処理を終了する。これにより、操作判定カウンタOCAと検出数カウンタDCAとが一致するまで、運転者にシフトレバー11を操作してドライブ(D)位置を選択させることで、運転者にシフトセンサに異常が発生していることを認識させることができる。この場合に、運転者に再操作を促す警告等をおこなってもよい。
ステップS72において、シフトポジション判定部20は、正常であるシフトセンサA13からH信号の入力を受信すると、検出数カウンタDCAを、次のシフトポジション判定処理のために、初期値「0」に戻す。
以上、説明したように、本実施形態によれば、シフトセンサA13またはシフトセンサB14に異常が生じた場合には、シフトポジションの判定条件を厳しくして運転者のシフトレバー操作回数を増やして煩雑にすることで車両の走行を確保しつつ、運転者にシフトセンサの異常を認識させることができ、その結果、重複事故を防ぐことができるという効果がある。また、シフトセンサA13またはシフトセンサB14に異常が発生している間、シフトポジションの判定条件を段階的に厳しくして運転者のシフトレバー操作回数を段階的に増やして煩雑にすることで、運転者に継続的にシフトセンサの異常を認識させつつ、かつ、危機感を増大させることができ、その結果、重複事故を防ぐことができる。
<第2の実施形態>
本発明の第2の実施形態について説明する。本実施形態においては、シフトセンサに異常が発生した際に、シフトレバーで選択するシフトポジションでの保持期間を正常時よりも長くすることによって、車両の走行を確保しつつ、運転者にシフトセンサの異常を認識させることができる。なお、第1の実施形態と同一の符号を付す構成要素については、同一の機能を有することから、その詳細な説明は省略する。
<シフトポジション制御装置>
第2の実施形態におけるシフトポジション制御装置100は、図1に示すシフトポジション制御装置1とほぼ同一機能構成であるが、シフトセンサ113,114、およびシフトポジション判定部120が異なる。
シフトセンサ113,114は、運転者の操作するシフトレバー11の位置を検出して電気信号に変換し、シフトレバー11の位置を検出している期間は変換した電気信号をシフトポジション判定部120へ出力し続ける。本実施形態においては、シフトセンサA113とシフトセンサB114との、2系統で検出するように設けられているが、3系統以上であってもよい。
シフトポジション判定部120は、シフトセンサA113、シフトセンサB114のそれぞれから入力を受信した2つの電気信号に基づいて各シフトセンサの異常発生の有無を判断しつつ、少なくとも1つのシフトセンサからの電気信号に基づいてシフトポジションを判定する。シフトポジション判定部120における具体的なシフトポジションの判定処理について、第1の実施形態と同様に、シフトポジションをドライブ(D)と判定する場合を例に、図8〜図12を用いて説明する。なお、図2〜図6と同一処理については同一ステップ番号を付し、説明を省略する。また、第1の実施形態と同様に、他の駆動ポジションおよび非駆動ポジションについても同様の処理によって判定することができる。
<シフトポジション判定処理>
第1の実施形態においてシフトポジション判定処理は、シフトセンサA13およびシフトセンサB14から電気信号を受信する回数を判定条件として、シフトポジションを決定したが、本実施形態におけるシフトポジション判定処理は、シフトセンサA113およびシフトセンサB114から電気信号を受信している期間、すなわち、運転者が、シフトレバー11を駆動位置または非駆動位置に保持している期間に基づいて、シフトポジションを決定する。
ステップS101において、シフトポジション判定部120は、シフトセンサA113およびシフトセンサB114のそれぞれに対応する操作期間カウンタ(OTA,OTB)が初期値であるか否かを判定する。
操作期間カウンタ(OTA,OTB)は、シフトポジション判定部120が保持している。操作期間カウンタ(OTA,OTB)は、シフトセンサA113およびシフトセンサB114のそれぞれについて設定されており、各シフトセンサの異常、または、シフトポジション判定部120がシフトポジションをドライブ(D)と判定する条件となる、各シフトセンサからのD信号の入力受信期間を示している。
具体的には、操作期間カウンタ(OTA,OTB)は、シフトセンサA113に対応する操作期間カウンタOTAと、シフトセンサB114に対応する操作期間カウンタOTBと、を含み、これらにはそれぞれ0以上の値が設定される。
操作期間カウンタOTAおよび操作期間カウンタOTBの初期値は任意に設定することができ、ここでは「t」とする。初期値は、シフトポジション判定部120がシフトポジションをドライブ(D)と判定する条件が、シフトセンサA113およびシフトセンサB114のそれぞれからD信号を「t」期間、入力を受信することであること、すなわち、運転者がシフトレバー11を操作してドライブ(D)位置に「t」期間、保持することを示している。この「t」期間は上限値をもたせて設定されている。なお、このときの「t」期間の単位は任意であるが、本実施形態では「秒」とする。
ステップS101に戻って、操作期間カウンタ(OTA,OTB)が初期値である場合(YES)には、ステップS2の処理に進む。一方で、操作期間カウンタ(OTA,OTB)が初期値でない場合(NO)には、ステップS105の処理に進む。
ステップS105において、シフトポジション判定部120は、操作期間カウンタOTAに「0」が設定されているか否かを判定する。これは、前回のシフトポジション判定処理において、シフトセンサA113の異常発生を検出した場合に操作期間カウンタOTAには「0」が設定され、シフトセンサA113に異常が発生したことを示している。操作期間カウンタOTAに「0」が設定されている場合には、ステップS106の処理に進み、一方で、操作期間カウンタOTAに「0」が設定されていない場合には、ステップS107の処理に進む。
ステップS107において、シフトポジション判定部120は、シフトセンサB114の操作期間カウンタOTBに「0」が設定されているか否かを判定する。これは、前回のシフトポジション判定処理において、シフトセンサB114の異常発生を検出した場合に操作期間カウンタOTBには「0」が設定され、シフトセンサB114に異常が発生したことを示している。操作期間カウンタOTBに「0」が設定されている場合には、ステップS108の処理に進み、一方で、シフトセンサB114の操作期間カウンタOTBに「0」が設定されていない場合には、処理を終了する。なお、シフトセンサB114の操作期間カウンタOTBに「0」が設定されていない場合とは、操作期間カウンタOTAおよびOTBが初期値でなく、かつ、一方に0が設定されていないことを示すが、このような場合はシフトポジション判定処理では発生しないため、システムエラーであると判断でき、処理を終了してもよい。
ステップS103、ステップS104、ステップS106およびステップS108は、それぞれ図2のステップS3、ステップS4、ステップS6およびステップS8に対応し、シフトポジションの判定条件を、シフトセンサ13,14からD信号の入力を受信している回数からシフトセンサ113,114からD信号の入力を受信している期間(時間)に変更したシフトポジション判定処理である。詳細については後述する。
次に、図9を用いて、図8のステップS103のシフトセンサA先導シフトポジション判定処理について説明する。なお、図2〜6と同一処理については同一ステップ番号を付し、説明を省略する。
ステップS130において、シフトポジション判定部120は、シフトセンサA113からD信号の入力を受信した期間を示す検出期間カウンタDTAに、シフトセンサA113からの入力を受信した受信期間SAを加算する。なお、検出期間カウンタDTAの初期値は、「0」である。
ステップS131において、シフトポジション判定部120は、シフトセンサB114からD信号の入力を受信したか否かを判定する。シフトセンサB114からD信号の入力を受信した場合(YES)には、ステップS132の処理に進み、一方で、シフトセンサB114からD信号の入力を受信しない場合(NO)には、ステップS36の処理に進む。なお、シフトセンサB114からD信号の入力を受信したか否かの処理は、ステップS31で説明したとおりである。
ステップS132において、シフトポジション判定部120は、シフトセンサB114からD信号の入力を受信した期間を示す検出期間カウンタDTBに、シフトセンサB114から入力を受信した受信期間SBを加算する。なお、検出期間カウンタDTBの初期値は、「0」である。
ステップS133において、シフトポジション判定部120は、シフトセンサA113について、検出期間カウンタDTAが操作期間カウンタOTA以上、かつ、シフトセンサB114について、検出期間カウンタDTBが操作期間カウンタOTB以上であるか否かを判定する。すなわち、シフトポジションをドライブ(D)と判断する条件を満たしているか否かを判断する。DTA≧OTA、かつ、DTB≧OTBである場合(YES)には、ステップS34の処理に進み、一方で、いずれか一方の等符号でも満たさない場合(NO)には、処理を終了する。この場合、運転者に警告等をおこなってもよい。
ステップS135において、シフトポジション判定部120は、シフトセンサA113またはシフトセンサB114のどちらか一方からH信号の入力を受信すると、検出期間カウンタDTAおよび検出期間カウンタDTBを、次のシフトポジション判定処理のために、初期値「0」に戻し、処理を終了する。
ステップS137において、シフトポジション判定部120は、操作期間カウンタOTBをシフトセンサB114に異常が発生していることを示す「0」に設定する。また、シフトポジション判定部120は、操作期間カウンタOTAに所定期間「r」とエラーカウンタECBの値を掛けた値とを加算し、正常に起動しているシフトセンサA113からのD信号の入力受信期間を延長する。それにより、運転者にシフトレバー11を操作してドライブ(D)位置を選択させる期間を長くし、シフトセンサに異常が発生していることを通知する。なお、操作期間カウンタOTAには、エラーカウンタECBの値に応じた数値が設定されていればよい。なお、本実施形態においては、所定期間「r」の単位の値は「秒」とする。
次に、図10を用いて、図8のステップS104のシフトセンサB先導シフトポジション判定処理について説明する。なお、図2〜6、および図9と同一処理については同一ステップ番号を付し、説明を省略する。
ステップS140において、シフトポジション判定部120は、シフトセンサA113からD信号の入力を受信したか否かを判定する。シフトセンサA113からD信号の入力を受信した場合(YES)には、ステップS130の処理に進み、一方で、シフトセンサA113からD信号の入力を受信しない場合(NO)には、ステップS41の処理に進む。なお、シフトセンサA113からD信号の入力を受信したか否かの処理は、ステップS40で説明したとおりである。
ステップS142において、シフトポジション判定部120は、操作期間カウンタOTAをシフトセンサA113に異常が発生していることを示す「0」に設定する。また、シフトポジション判定部120は、操作期間カウンタOTBに所定期間「r」とエラーカウンタECAの値を掛けた値を設定し、正常に起動しているシフトセンサB114から入力されるD信号の受信期間を延長する。それにより、運転者にシフトレバー11を操作してドライブ(D)位置を選択させる期間を長くし、シフトセンサに異常が発生していることを通知する。なお、検出期間カウンタDTBには、エラーカウンタECAの値に応じた数値が設定されていればよい。
次に、図11を用いて、図8のステップS106のシフトセンサA異常時のシフトポジション判定処理について説明する。なお、図2〜6、図8、および図9と同一処理については同一ステップ番号を付し、説明を省略する。
ステップS160において、シフトポジション判定部120は、シフトセンサB114からD信号を受信したか否かを判定する。シフトセンサB114からD信号の入力を受信した場合(YES)には、ステップS132の処理に進み、一方で、シフトセンサB114からD信号の入力を受信しない場合(NO)には、処理を終了する。なお、シフトセンサB114からD信号の入力を受信したか否かの処理は、ステップS31で説明したとおりである。
ステップS161において、シフトポジション判定部120は、検出期間カウンタDTBが操作期間カウンタOTB以上か否かを判定する。すなわち、正常であるシフトセンサB114のみについて、シフトポジションをドライブ(D)と判断する条件を満たしているか否かを判断する。DTB≧OTBである場合(YES)には、ステップS34の処理に進み、一方で、等式が成立しない場合(NO)には、処理を終了する。これにより、DTB≧OTBになるまで、運転者にシフトレバー11を操作してドライブ(D)位置を選択させることで、運転者にシフトセンサに異常が発生していることを認識させることができる。この場合に、運転者に再操作を促す警告等をおこなってもよい。
ステップS162において、シフトポジション判定部120は、正常であるシフトセンサB114からH信号の入力を受信すると、検出期間カウンタDTBを、次のシフトポジション判定処理のために、初期値「0」に戻す。
ステップS163において、シフトポジション判定部120は、操作期間カウンタOTAおよび操作期間カウンタOTBを、初期値「t」に戻す。これは、次回のシフトポジション判定処理において、シフトセンサ113,114に引き続き異常が発生しているか否かを判断するためである。但し、エラーカウンタECAおよびエラーカウンタECBは初期値に戻さないので、シフトセンサ113,114に異常が発生したことを検出した回数はエラーカウンタECA,ECBに積算されたままとなる。
次に、図12を用いて、図8のステップS108のシフトセンサB異常時シフトポジション判定処理について説明する。なお、図2〜6、図8〜10と同一処理については同一ステップ番号を付し、説明を省略する。
ステップS170において、シフトポジション判定部120は、シフトセンサA113からD信号の入力を受信したか否かを判定する。シフトセンサA113からD信号の入力を受信した場合(YES)には、ステップS130に処理を進め、一方、シフトセンサA113からD信号の入力を受信しない場合(NO)には、処理を終了する。なお、シフトセンサA113からD信号の入力を受信したか否かの処理は、ステップS40で説明したとおりである。
ステップS171において、シフトポジション判定部120は、検出期間カウンタDTAが操作期間カウンタOTA以上か否かを判定する。すなわち、正常であるシフトセンサA113のみについて、シフトポジションをドライブ(D)と判断する条件を満たしているか否かを判断する。DTA≧OTAである場合(YES)には、ステップS34に処理を進め、一方、等式が成立しない場合(NO)には、処理を終了する。これにより、DTA≧OTAになるまで、運転者にシフトレバー11を操作してドライブ(D)位置を選択させることで、運転者にシフトセンサに異常が発生していることを認識させることができる。この場合に、運転者に再操作を促す警告等をおこなってもよい。
ステップS172において、シフトポジション判定部120は、正常であるシフトセンサA113からH信号の入力を受信すると、検出期間カウンタDTAを、次のシフトポジション判定処理のために、初期値「0」に戻す。
以上、説明したように、本実施形態によれば、シフトセンサA113またはシフトセンサB114に異常が生じた場合には、シフトポジションの判定条件を厳しくして運転者のシフトレバー操作時間を長くして煩雑にすることで車両の走行を確保しつつ、運転者にシフトセンサの異常を認識させることができ、その結果、重複事故を防ぐことができるという効果がある。また、シフトセンサA13またはシフトセンサB14に異常が発生している間、シフトポジションの判定条件を段階的に厳しくして運転者のシフトレバー操作時間を段階的に長くして煩雑にすることで、運転者に継続的にシフトセンサの異常を認識させつつ、かつ、危機感を増大させることができ、その結果、重複事故を防ぐことができる。
なお、シフトポジション制御装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをシフトポジション制御装置に読み込ませ、実行することによって本発明のシフトポジション制御装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。また、第1の実施形態および第2の実施形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。