(57)【要約】【課題】  車輪速度検出用の回転パルス列信号の異常を的確に検出する。【解決手段】  センサユニット２０ａ〜２０ｄは、各車輪とそれぞれ一体回転するロータ１０ａ〜１０ｄの回転を表す回転検出信号Ｖsj(ｊ＝１〜４)を出力する。回転検出信号Ｖsjは、ロータ１０ａ〜１０ｄの回転速度及び回転方向を表すパルス列信号である。マイクロコンピュータ４０及び回転方向検出部５０は、回転検出信号Ｖsjに基づいて、車輪の回転方向及び速度を検出する。また、マイクロコンピュータ４０は、一つの車輪の回転方向が他の残りの車輪の回転方向と異なることを条件に、回転検出信号Ｖsjの異常を判定する。【選択図】  図１
2005114738.tif 000002
【特許請求の範囲】
【請求項１】
複数の車輪とそれぞれ一体回転する複数のロータに対応してそれぞれ設けられ、各ロータの回転速度が速くなるに従って周期の短くなるパルス列からなるとともに、同ロータの正転及び逆転を表す方向信号を含ませてなる回転パルス列信号を同ロータの回転に応じて発生する複数の回転パルス信号発生手段と、
前記各回転パルス列信号に含まれる方向信号により複数の車輪の各回転方向をそれぞれ検出するとともに、前記各回転パルス列信号の周期に応じて複数の車輪の各速度をそれぞれ計算する車輪速度計算手段とを備えた車輪速度検出装置において、
前記検出された複数の車輪の回転方向のうちで、一つの車輪の回転方向が他の残りの車輪の回転方向と異なるとき、前記回転パルス信号発生手段から発生された前記一つの車輪に関する回転パルス列信号の異常を判定する異常判定手段を設けたことを特徴とする車輪速度検出装置。
【請求項２】
前記異常判定手段は、さらに、前記回転方向に関する判定条件が所定時間以上成立し続けたことを条件に加えて、前記回転パルス列信号の異常を判定する請求項１に記載した車輪速度検出装置。
【請求項３】
前記異常判定手段は、さらに、前記複数の車輪速度のうちの最小車輪速度が所定車輪速度よりも大きいことを条件に加えて、前記回転パルス列信号の異常を判定する請求項１または２に記載した車輪速度検出装置。
【請求項４】
前記異常判定手段は、さらに、前記複数の車輪速度のうちの最大車輪速度と最小車輪速度との差が所定車輪速度未満であることを条件に加えて、前記回転パルス列信号の異常を判定する請求項１ないし３のうちのいずれか一つに記載した車輪速度検出装置。
【請求項５】
前記異常判定手段は、さらに、アンチロックブレーキ制御装置、ビークルスタビリティコントロール装置及びトラクションコントロール装置により、各車輪に対する制動力又は駆動力の付与及び解除を制御中でないことを条件に加えて、前記回転パルス列信号の異常を判定する請求項１ないし４のうちのいずれか一つに記載した車輪速度検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車輪と一体回転するロータの回転速度が速くなるに従って周期の短くなるパルス列からなるとともに、同ロータの正転及び逆転を表す方向信号を前記パルス列の各パルスにそれぞれ含ませてなる回転パルス列信号に基づいて、車輪の回転方向及び速度を検出する車輪速度検出装置に関する。
【背景技術】
【０００２】
従来、この種の装置は、例えば下記非特許文献１に記載されているように、車輪と一体回転するロータの回転速度が速くなるに従ってパルス幅及び周期の短くなるパルス列からなるとともに、ロータが逆転している場合にはパルス列のパルスの立上がり及び立下がりタイミング時に幅狭の方向パルスを同パルス列に重畳させた回転パルス列信号を同ロータの回転に応じて発生する回転パルス信号発生装置を備え、この回転パルス信号発生装置からの回転パルス列信号における方向パルスの有無により車輪の回転方向を検出するとともに、同回転パルス列信号の周期に応じて車輪速度を計算するようにしている。また、この車輪速度検出装置は、回転パルス列信号の各パルスの立上がり及び立下がりタイミングのうちの一方にのみ方向パルスが存在するときには、同回転パルス列信号の異常を判定するようにもなっている。
【非特許文献１】１９９８年６月３０日発行のトヨタ技術公開集第１９３頁〜第１９９頁
【０００３】
このような従来の装置においては、車輪の前進及び後退の別も検出できるので、車輪速度を検出する装置としては極めて有効である。しかし、前記文献は、回転パルス列信号の各パルスの立上がり及び立下がりタイミングのうちの一方にのみ方向パルスが存在するという極めて稀な異常ケースに対してのみ対処することしか開示していない。これに対して、回転パルス列信号の異常は種々な態様で現れるものであり、これらの異常には対処することができない。
【発明の開示】
【０００４】
本発明は、上記した問題に対処するためにされたものであり、その目的は、前記とは異なる態様の異常回転パルス列信号に対処できる車輪速度検出装置を提供するものである。
【０００５】
本発明の特徴は、複数の車輪とそれぞれ一体回転する複数のロータに対応してそれぞれ設けられ、各ロータの回転速度が速くなるに従って周期の短くなるパルス列からなるとともに、同ロータの正転及び逆転を表す方向信号を含ませてなる回転パルス列信号を同ロータの回転に応じて発生する複数の回転パルス信号発生手段と、前記各回転パルス列信号に含まれる方向信号により複数の車輪の各回転方向をそれぞれ検出するとともに、前記各回転パルス列信号の周期に応じて複数の車輪の各速度をそれぞれ計算する車輪速度計算手段とを備えた車輪速度検出装置において、前記検出された複数の車輪の回転方向のうちで、一つの車輪の回転方向が他の全ての車輪の回転方向と異なるとき、前記回転パルス信号発生手段から発生された前記一つの車輪に関する回転パルス列信号の異常を判定する異常判定手段を設けたことにある。
【０００６】
前記構成においては、回転パルス信号発生手段から正常な回転パルス列信号が出力されている場合には、車輪速度計算手段は、各回転パルス列信号に含まれる方向信号により複数の車輪の各回転方向をそれぞれ良好に検出できるとともに、前記各回転パルス列信号の周期に応じて複数の車輪の各速度をそれぞれ良好に計算できる。一方、回転パルス信号発生手段の故障などにより、一つの車輪に関する回転パルス列信号によって表された回転方向だけが、他の全ての車輪に関する回転パルス列信号によって表された回転方向と異なる場合には、異常判定手段により同一つの車輪に関する回転パルス列信号の異常が判定される。これは、一つの車輪の回転方向のみが異なることは、通常の車両走行ではあり得ないからである。これにより、本発明の特徴によれば、回転パルス列信号の異常を簡単に検出できる。
【０００７】
また、前記本発明の特徴においては、回転パルス列信号の異常判定の条件として、前記回転方向に関する第１条件に、さらに、次の第２〜第５の条件のうちのいずれか一つの条件を加えたり、複数の条件を加えたり、全ての条件を加えたりするようにしてもよい。
【０００８】
第２の条件としては、前記回転方向に関する判定条件が所定時間以上成立し続けたときに、回転パルス列信号の異常を判定することである。これによれば、前記回転方向に関する条件が瞬間的に成立したことに起因した回転パルス列信号の異常の誤判定を回避できる。
【０００９】
第３の条件としては、複数の車輪速度のうちの最小車輪速度が所定車輪速度よりも大きいときに、回転パルス列信号の異常を判定することである。これによれば、車両のほぼ停止時に車体が前後に揺れて、一つの車輪の回転方向が他の全て車輪の回転方向と異なってしまったことによる異常の誤判定を回避できる。
【００１０】
第４の条件としては、複数の車輪速度のうちの最大車輪速度と最小車輪速度との差が所定車輪速度未満であるときに、回転パルス列信号の異常を判定することである。これによれば、車両が旋回状態にあって（直進状態になくて）、一つの車輪の回転方向が他の全ての車輪の回転方向と異なってしまったことによる異常の誤判定を回避できる。
【００１１】
第５の条件としては、アンチロックブレーキ制御装置、ビークルスタビリティコントロール装置及びトラクションコントロール装置により、各車輪に対する制動力又は駆動力の付与及び解除を制御中でないときにのみ、回転パルス列信号の異常の判定を許容することである。これによれば、車輪のスリップ状態などに応じて各車輪ごとに制動力又は駆動力を付与及び解除した結果、一つの車輪の回転方向が他の全ての車輪の回転方向と異なってしまったことによる異常の誤判定を回避できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態に係る車輪速度検出装置を図面を用いて説明すると、図1は同車輪速度検出装置の全体を概略的に示している。
【００１３】
この車輪速度検出装置は、左右前後輪とそれぞれ一体的に回転する４つのロータ１０ａ〜１０ｄを備えており、各輪の回転はセンサユニット２０ａ〜２０ｄによって検出されるようになっている。ロータ１０ａ〜１０ｄは、磁性材料で円盤状に構成され、外周面上に等間隔の複数の歯をそれぞれ有する。センサユニット２０ａは、磁気抵抗素子によって構成されて、ロータ１０ａの各歯に対向して配置された回転センサ２１ａ，２２ａを有する。回転センサ２１ａと回転センサ２２ａは、ロータ１０ａの歯の山部と谷部とで２πとするとπ／２だけずれてそれぞれ配置され、同ロータ１０ａの回転に伴って、図２に示すようにπ／２だけ位相のずれた正弦波状信号Ａ，Ｂを出力する。なお、これらの回転センサ２１ａ，２２ａとしては、磁気抵抗素子を用いなくて、電磁ピックアップ、ホール素子などを利用することもできる。センサユニット２０ｂ〜２０ｄも、センサユニット２０ａと同様に構成されているので、センサユニット２０ａのみの説明に留めてそれらの説明を省略する。
【００１４】
回転センサ２１ａ，２２ａには波形整形回路２３ａ，２４ａがそれぞれ接続されており、同波形整形回路２３ａ，２４ａは、図２及び図３(Ａ)(Ｂ)に示すように、正弦波状信号Ａ，Ｂをデューティ比をほぼ１／２とする矩形波信号Ｃ，Ｄにそれぞれ変換する。これらの矩形波信号Ｃ，Ｄは、遅延回路２５ａ，２６ａを介して論理合成回路２７ａに供給されるとともに、同論理合成回路２７ａに直接供給される。遅延回路２５ａ，２６ａは、前記入力した矩形波信号Ｃ，Ｄを所定の微小時間（例えば、１５０μｓ）だけ遅延して、図３(Ａ)(Ｂ)に示すような遅延信号dC，dDを論理合成回路２７ａに出力する。
【００１５】
論理合成回路２７ａは、アンド回路、インバータ回路、オア回路、イクスクルーシブオア回路などにより構成され、矩形波信号Ｃ，Ｄ及び遅延信号dC，dDを論理合成して、図３(Ａ)(Ｂ)に示す論理合成信号Ｅ，Ｆを出力する。この場合、論理合成信号Ｅは、両矩形波信号Ｃ，Ｄの排他的論理和（イクスクルーシブオア）によって合成されたものである。また、論理合成信号Ｆは、矩形波信号Ｃ，Ｄ及び遅延信号dC，dDを用いた論理式Ｃvar・Ｄ・dDvar＋Ｃ・Ｄvar・dD＋Ｃ・Ｄ・dCvar＋Ｃvar・Ｄvar・dCによって合成されたものである。ただし、Ｃvar，dCvar，Ｄvar，dDvarは、Ｃ，dC，Ｄ，dDを論理反転した信号である。
【００１６】
これらの論理合成信号Ｅ，Ｆは波形合成回路２８ａに出力される。波形合成回路２８ａは、基準電圧源回路、スイッチング回路などからなり、論理合成信号Ｅ，Ｆに基づいて、図３(Ａ)(Ｂ)に示すような回転検出信号Ｖs1を合成出力する。この回転検出信号Ｖs1は、論理合成信号Ｆがハイレベルであるとき最優先で電圧値Ｖ2となり、論理合成信号Ｆがハイレベルでなくかつ論理合成信号Ｅがハイレベルあるとき電圧値Ｖ1となり、論理合成信号Ｅ，Ｆが共にローレベルであるとき電圧値Ｖ0となるものである。ただし、電圧値Ｖ0，Ｖ1，Ｖ2の関係は、０＝Ｖ0＜Ｖ1＜Ｖ2である。
【００１７】
その結果、ロータ１０ａの正転時（車両を前進させるための車輪の正転に対応）には、回転検出信号Ｖs1は、図３(Ａ)に示すように、電圧値Ｖ0，Ｖ1を交互に繰り返す矩形波信号からなるパルス列信号となる。一方、ロータ１０ａの逆転時（車両を後退させるための車輪の逆転に対応）には、回転検出信号Ｖs1は、図３(Ｂ)に示すように、前記矩形波信号の立上がり時及び立下り時に電圧値Ｖ2を有する幅狭のパルスをそれぞれ有するパルス列信号となる。なお、これらのパルス列信号のパルス幅及び周期は、ロータ１０ａの回転速度（車輪速度）に反比例する。センサユニット２０ｂ〜２０ｄも、回転検出信号Ｖs1と同様であってロータ１０ｂ〜１０ｄの回転を表す回転検出信号Ｖs2〜Ｖs4を出力する。
【００１８】
センサユニット２０ａからの回転検出信号Ｖs1は、比較器３１ａ，３２ａの各正側入力(＋)にそれぞれ供給される。比較器３１ａ，３２ａの各負側入力(−)には、基準電圧源３３ａ，３４ａからの各基準電圧Ｖref1，Ｖref2がそれぞれ供給されている。基準電圧Ｖref1，Ｖref2及び電圧値Ｖ0，Ｖ1，Ｖ2の関係は、Ｖ0＜Ｖref1＜Ｖ1＜Ｖref2＜Ｖ2である。したがって、ロータ１０ａが正転状態にあれば、図４(Ａ)に示すように、比較器３１ａは回転検出信号Ｖs1と同じパルス列からなる第１回転検出信号Ｖs11を出力し、比較器３２ａはローレベルに保たれた第２回転検出信号Ｖs12を出力する。一方、ロータ１０ａが逆転状態にあれば、図４(Ｂ)に示すように、比較器３１ａは前記回転検出信号Ｖs1の立上がり時及び立下り時の幅狭のパルスを除くパルス列からなる第１回転検出信号Ｖs11を出力し、比較器３２ａは前記幅狭のパルス列のみからなる第２回転検出信号Ｖs12を出力する。これらの第１及び第２回転検出信号Ｖs11，Ｖs12は、マイクロコンピュータ４０に供給される。
【００１９】
センサユニット２０ｂ、センサユニット２０ｂ及びセンサユニット２０ｃには、比較器３１ｂ，３２ｂ、比較器３１ｃ，３２ｃ及び比較器３１ｄ，３２ｄがそれぞれ接続されている。これらの比較器３１ｂ，３２ｂ、比較器３１ｃ，３２ｃ及び比較器３１ｄ，３２ｄは、図４(Ａ)(Ｂ)に示すとともに前記第１及び第２回転検出信号Ｖs11，Ｖs12と同様に、センサユニット２０ｂ，２０ｃ，２０ｄからの各回転検出信号Ｖs2，Ｖs3，Ｖs4に基づいて、第１及び第２回転検出信号Ｖs21，Ｖs22、第１及び第２回転検出信号Ｖs31，Ｖs32、並びに第１及び第２回転検出信号Ｖs41，Ｖs42をそれぞれマイクロコンピュータ４０に出力する。
【００２０】
また、これらの各第１及び第２回転検出信号Ｖs11，Ｖs12，Ｖs21，Ｖs22，Ｖs31，Ｖs32，Ｖs41，Ｖs42は、回転方向検出部５０にも供給される。回転方向検出部５０は、センサユニット２０ａ〜２０ｄにそれぞれ対応する４個の回転方向検出回路を備えている。各回転方向検出回路は、図５に示すように、Ｒ−Ｓ型フリップフロップ回路５１〜５４、ノア回路５５〜５９及びインバータ回路６１，６２からそれぞれなり、第１及び第２回転検出信号Ｖs11，Ｖs12（又は第１及び第２回転検出信号Ｖs21，Ｖs22、第１及び第２回転検出信号Ｖs31，Ｖs32、第１及び第２回転検出信号Ｖs41，Ｖs42）を入力して、ロータ１０ａ〜１０ｄの各回転方向を表す回転方向検出信号Ｄr1（又はＤr2〜Ｄr4）をマイクロコンピュータ４０に出力する。ただし、Ｒ−Ｓ型フリップフロップ回路５１〜５４のQN出力はＱ出力の反転出力を示す。
【００２１】
そして、各回転方向検出回路においては、ロータ１０ａ〜１０ｄが正転状態にあって、図６(Ａ)に示すような各第１及び第２回転検出信号Ｖs11，Ｖs12，Ｖs21，Ｖs22，Ｖs31，Ｖs32，Ｖs41，Ｖs42が入力された場合には、Ｒ−Ｓ型フリップフロップ回路５１〜５３の各出力Ｉ，Ｊ，Ｋは図６(Ａ)に示すようにローレベルに保たれ、Ｒ−Ｓ型フリップフロップ回路５４から出力される回転方向検出信号Ｄr1〜Ｄr4もそれぞれローレベルに保たれる。一方、ロータ１０ａ〜１０ｄが逆転状態にあって、図６(Ｂ)に示すような第１及び第２回転検出信号Ｖs11，Ｖs12，Ｖs21，Ｖs22，Ｖs31，Ｖs32，Ｖs41，Ｖs42が入力された場合には、Ｒ−Ｓ型フリップフロップ回路５１〜５３の各出力Ｉ，Ｊ，Ｋは図６(Ｂ)に示すようにパルス列信号となり、Ｒ−Ｓ型フリップフロップ回路５４から出力される回転方向検出信号Ｄr1〜Ｄr4はそれぞれハイレベルに保たれる。ただし、図６(Ａ)(Ｂ)中、点模様を付した部分は、回転方向検出信号Ｄr1〜Ｄr4の不定部分を示す。
【００２２】
マイクロコンピュータ４０は、ＣＰＵ，ＲＯＭ，ＲＡＭ、タイマなどにより構成され、図７〜図１４のプログラムを実行して、各車輪速度を検出するとともに同車輪速度の異常を検出する。なお、図７のパルス検出プログラムは、タイマとの協働によって比較的短い周期（例えば、数１０μｓ）で繰り返し実行される。また、図９〜図１４のプログラムをサブルーチンとして含む図８の車輪速度計算プログラムは、タイマとの協働によって比較的長い周期（例えば、約６ｍｓ）で繰り返し実行される。
【００２３】
このマイクロコンピュータ４０には、前述の第１及び第２回転検出信号Ｖs11，Ｖs12，Ｖs21，Ｖs22，Ｖs31，Ｖs32，Ｖs41，Ｖs42及び回転方向検出信号Ｄr1〜Ｄr4の他に、ＡＢＳ信号、ＶＳＣ信号、ＴＲＣ信号及びＢＡＴ信号も供給されている。ＡＢＳ信号は、図示しないアンチロックブレーキ制御装置から供給されるもので、車両がアンチロックブレーキ制御中であることを表す信号である。ＶＳＣ信号は、図示しないビークルスタビリティコントロール装置から供給されるもので、車両がスタビリティ制御中であることを表す信号である。ＴＲＣ信号は、図示しないトラクションコントロール装置から供給されるもので、車両がトラクション制御中であることを表す信号である。これらのＡＢＳ信号、ＶＳＣ信号及びＴＲＣ信号は、ハイレベルにより、車両の挙動、車輪のスリップ状態などに応じて各車輪ごとに制動力又は駆動力の付与及び解除を制御中であることを表し、ローレベルにより前記制御中でないことを表すものである。ＢＡＴ信号は、バッテリ電圧の異常（すなわち低下）を表すものである。
【００２４】
次に、上記のように構成した実施形態の動作を図７〜図１４のフローチャートに沿って説明する。図示しないイグニッションスイッチの投入により、マイクロコンピュータ４０は、図７のパルス検出プログラムを比較的短い周期で繰り返し実行し始めるとともに、このプログラムの実行に並行して、図８の車輪速度計算プログラムを比較的長い周期で実行し始める。なお、これらのプログラムにおいては、各ロータ１０ａ〜１０ｄ（左右前後輪）ごとに種々の処理が実行されるが、各ロータ１０ａ〜１０ｄの処理は共通であるので、以下の説明では、各ロータ１０ａ〜１０ｄに対応した各種変数にサフィックスｊ（ｊ＝１〜４）を付して、各ロータ１０ａ〜１０ｄに対して各種処理を共通に説明する。
【００２５】
まず、パルス検出プログラムについて説明すると、同プログラムは図７に詳細に示されているようにステップＳ１０にてその実行が開始される。このパルス検出プログラムの開始後、後述する車輪速度Ｖxj（ｊ＝１〜４）の計算のために、ステップＳ１２〜ステップＳ１６の処理を実行する。ステップＳ１２においては、前回計算された車輪速度Ｖxj（ｊ＝１〜４）が所定車輪速度Ｖr1（例えば、６５km/h）未満であるか否かを判定する。前回計算された車輪速度Ｖxj（ｊ＝１〜４）が所定車輪速度Ｖr1未満であれば、ステップＳ１２にて「ＹＥＳ」と判定し、ステップＳ１４の処理を実行する。一方、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1以上であれば、ステップＳ１２にて「ＮＯ」と判定して，ステップＳ１６の処理を実行する。
【００２６】
ステップＳ１４においては、各比較器３１ａ〜３１ｄから第１回転検出信号Ｖsj1（ｊ＝１〜４）を入力して、同入力した第１回転検出信号Ｖsj1の立上がり（ローレベルからハイレベルへの変化）及び立下がり（ハイレベルからローレベルへの変化）を検出する。そして、立下がり検出時にはタイマとの協働によってその時刻を一時的に記憶し、立上がり検出時には、前記と同様にタイマとの協働によってその時刻を一時的に記憶するとともに、直前の立下がり検出時の記憶時刻と今回の立上がり検出時の記憶時刻との中央値（第１回転検出信号Ｖsj1のローレベルの中央時刻）を計算して、同計算した中央値を今回中央時刻値Ｔj(ｎ)として更新記憶していく。これにより、今回中央時刻値Ｔj(ｎ)は、第１回転検出信号Ｖsj1の立上がりタイミングごとに、図１５(Ａ)にて一点鎖線で示す時刻に更新され、次の立上がりタイミングまで維持される。
【００２７】
また、第１回転検出信号Ｖsj1の立上がり検出時には、車輪速度計算プログラムの実行時（図１５(Ａ)(Ｂ)にて演算タイミングとして示すタイミング）に、後述する処理によって「０」にクリアされるパルス数ＰＮjを「１」だけカウントアップする。したがって、このパルス数ＰＮjは、前回の演算タイミングからの第１回転検出信号Ｖsj1のパルス数を示すことになる。
【００２８】
ステップＳ１６においては、各比較器３１ａ〜３１ｄから第１回転検出信号Ｖsj1（ｊ＝１〜４）を入力して、同入力した第１回転検出信号Ｖsj1の立下がり（ハイレベルからローレベルへの変化）のみを検出する。そして、この立下がり検出時には、タイマとの協働によってその時刻を今回時刻値Ｔj(ｎ)として更新記憶していく。これにより、今回時刻値Ｔj(ｎ)は、第１回転検出信号Ｖsj1の立下がりタイミングごとに、同タイミング時刻（図１５(Ｂ)にて一点鎖線で示す時刻）に更新され、次の立下がりタイミングまで維持される。また、この場合も、第１回転検出信号Ｖsj1の立下がり検出時には、車輪速度計算プログラムの実行時に、前記パルス数ＰＮjを「１」だけカウントアップする。このようにステップＳ１６の処理では、第１回転検出信号Ｖsj1の立下がりのみを検出するようにした理由は、車輪速度Ｖxjが高くなった場合に前記ステップＳ１６の処理の頻度が高くなり過ぎないようにするためであり、また車輪速度Ｖxjが高くなった場合に前記ステップＳ１４のような処理をしなくても同車輪速度Ｖxjの演算誤差がそれほど大きくならないためである。
【００２９】
前記ステップＳ１４，Ｓ１６の処理後、後述する第１異常検出ルーチンにて利用するための変数を設定するステップＳ２０〜Ｓ２６の処理、及び後述する第４異常検出ルーチンにて利用するための変数を設定するステップＳ２８〜Ｓ４４の処理後、ステップＳ４６にてこのパルス検出プログラムを一旦終了する。これらのステップＳ２０〜Ｓ４４の処理に関しては後述するものとして、このパルス検出プログラムと並行して実行される車輪速度計算プログラムについて説明する。
【００３０】
この車輪速度計算プログラムは、前述のように、パルス検出プログラムに比べて長い周期（例えば、６ｍｓ）すなわち図１５(Ａ)(Ｂ)の演算タイミングに対応したタイミングごとに実行されるもので、その実行が図８のステップＳ５０にて開始される。この車輪速度計算プログラムの実行開始後、ステップＳ５２〜Ｓ５６の処理により車輪速度Ｖxj（ｊ＝１〜４）が計算される。ステップＳ５２においては、下記数１の演算の実行により、車輪速度Ｖxjの計算に利用される時間ΔＴjを計算する。
ΔＴj＝Ｔj(ｎ)−Ｔj(ｎ−１)      （ただし、ｊ＝１〜４）      …  数１
【００３１】
前記数１において、Ｔj(ｎ)は、この車輪速度計算プログラムの実行の直前に前記図７のパルス検出プログラムにて更新されたもので、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1未満であれば、ステップＳ１４の処理によって設定された今回中央時刻である。また、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1以上であれば、ステップＳ１６の処理により設定された立下がりタイミング時刻である。また、Ｔj(ｎ−１)は、ステップＳ５６の処理によって車輪速度Ｖxjの計算終了時にＴj(ｎ)に更新されるものであり、前回の演算タイミング直前の中央時刻又は立下がりタイミング時刻を表す。したがって、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1未満であれば、前記数１で計算された時間ΔＴjは、図１５(Ａ)に示すように、前回の演算タイミング直前の中央時刻（Ｔj(ｎ−１)＝(ｔ1＋ｔ2)／２）から今回の演算タイミング直前の中央時刻（Ｔj(ｎ)＝(ｔ3＋ｔ4)／２）までの経過時間を表す。また、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1以上であれば、時間ΔＴjは、図１５(Ｂ)に示すように、前回の演算タイミング直前の立下がりタイミング（Ｔj(ｎ−１)）から今回の演算タイミング直前の立下がりタイミング（Ｔj(ｎ)）までの経過時間を表す。
【００３２】
前記ステップＳ５２の処理後、ステップＳ５４にて、前記計算した時間ΔＴjを用いて下記数２の演算の実行により、車輪速度Ｖxjを計算する。
Ｖxj＝Ｋ・ＰＮj／ΔＴj      （ただし、ｊ＝１〜４）      …  数２
【００３３】
この数２において、ＰＮjは、前述のように、車輪速度Ｖxjの計算終了時にステップＳ５６の処理によって「０」にクリアされるとともに、ステップＳ１４，１６の処理によってカウントアップされたものである。したがって、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1未満であれば、このパルス数ＰＮjは、図１５(Ａ)に示すように、前回の演算タイミング直前の中央時刻Ｔj(ｎ−１)から今回の演算タイミング直前の中央時刻Ｔj(ｎ)までの第１回転検出信号Ｖsj1のパルス数を表す。また、前回計算された車輪速度Ｖxjが所定車輪速度Ｖr1以上であれば、このパルス数ＰＮjは、図１５(Ｂ)に示すように、前回の演算タイミング直前の立下がりタイミングＴj(ｎ−１)から今回の演算タイミング直前の立下がりタイミングＴj(ｎ)までの第１回転検出信号Ｖsj1のパルス数を表す。さらに、Ｋは、ロータ１０ａ〜１０ｄの歯数、車輪（タイヤ）の直径などによって決まる定数である。その結果、前記数２により、車輪速度Ｖxjが演算タイミング（車輪速度計算プログラムの実行）ごとに計算されて順次更新されていく。
【００３４】
前記ステップＳ５２〜５６の処理後、ステップＳ５８にて、左右前後の４輪の各車輪速度Ｖx1，Ｖx2，Ｖx3，Ｖx4のうちの最大車輪速度Ｖmax＝ＭＡＸ(Ｖx1，Ｖx2，Ｖx3，Ｖx4)及び最小車輪速度Ｖmin＝ＭＩＮ(Ｖx1，Ｖx2，Ｖx3，Ｖx4)を計算する。次に、ステップＳ６０にて、回転方向検出部５０から回転方向検出信号Ｄr1〜Ｄr4を入力する。このステップＳ６０の処理後、ステップＳ６２〜Ｓ６８にて、センサユニット２０ａ〜２０ｄ、比較器３１ａ〜３１ｄ，３２ａ〜３２ｄ及び回転方向検出部５０の異常をそれぞれ検出する第１〜第４異常検出ルーチンを実行する。
【００３５】
この第１異常検出ルーチンは、図１６(Ｃ)に示すように、ロータ１０ａ〜１０ｄの逆転を表す幅狭のパルス信号のみが回転検出信号Ｖsjとしてセンサユニット２０ａ〜２０ｄから出力されているという異常を検出するものである。また、この第１異常検出ルーチンは、図１６(Ａ)(Ｂ)に示すように、回転検出信号Ｖsjが正常に戻れば第１異常状態からの復帰を検出するようにしている。このような第１異常検出ルーチンについて詳細に説明する前に、図７のパルス検出プログラムの実行により設定されて第１異常検出ルーチンにて利用される変数について説明しておく。
【００３６】
図７のパルス検出プログラムのステップＳ１８においては、第１回転検出信号Ｖsj1（ｊ＝１〜４）をそれぞれ入力して、内蔵のタイマとの協働により、第１回転検出信号Ｖsj1のハイレベル時間ＨＴjを各パルスごとに順次計測する。すなわち、第１回転検出信号Ｖsj1の立上がり及び立下がりを検出して、立上がりタイミングから立下がりタイミングまでの時間を順次計測する。
【００３７】
そして、ステップＳ２０にて、前記計測した第１回転検出信号Ｖsj1のハイレベル時間ＨＴjが所定時間値ＴＭ00以下であるかを判定する。この所定時間値ＴＭ00は、少なくともロータ１０ａ〜１０ｄの逆転を表すパルス信号の幅（例えば、１５０μｓ）よりも大きくて、車輪速度に換算して２９０km/h以上に相当する２００μｓ程度に設定されており、第１回転検出信号Ｖsj1のハイレベル時間ＨＴjとして通常の車両走行ではあり得ない値である。すなわち、図１６(Ａ)(Ｂ)に示すように回転検出信号Ｖsjが正常であれば発生され得ないはずのものである。したがって、ハイレベル時間ＨＴjが所定時間値ＴＭ00以下であることは、図１６(Ｃ)に示すように、ロータ１０ａ〜１０ｄの逆転を表す幅狭のパルス信号のみが回転検出信号Ｖsjとしてセンサユニット２０ａ〜２０ｄから出力されていることを意味する。以下、この幅狭のパルス信号からなる第１回転検出信号Ｖsj1をデューティ無効パルスという。
【００３８】
ハイレベル時間ＨＴjが所定時間値ＴＭ00よりも大きければ、ステップＳ２０にて「ＮＯ」と判定してステップＳ２２に進む。ハイレベル時間ＨＴjが所定時間値ＴＭ00以下であれば、ステップＳ２０にて「ＹＥＳ」と判定して、ステップＳ２４にて異常パルスフラグＥＲＰjを“１”に設定してステップＳ２８に進む。なお、この異常パルスフラグＥＲＰjは、後述する第1異常検出ルーチンの実行終了時に“０”にクリアされる。したがって、この異常パルスフラグＥＲＰjは、前回の第1異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までに、デューティ無効パルスが一つでも存在するとき“１”に設定されていて、デューティ無効パルスが全く存在しないとき“０”に設定されているものである。
【００３９】
ステップＳ２２においては、ハイレベル時間ＨＴjが所定時間値ＴＭ01以上であるかを判定する。この所定時間値ＴＭ01は、前記所定時間値ＴＭ00よりも十分に大きく、例えば５００μｓに設定されている。したがって、ハイレベル時間ＨＴjが所定時間値ＴＭ01以上であることは、図１６(Ａ)(Ｂ)に示すように、正常な回転検出信号Ｖsjがセンサユニット２０ａ〜２０ｄから出力されていることを意味する。以下、この５００μｓ以上のハイレベル時間ＨＴjを有するパルス幅の第１回転検出信号Ｖsj1をデューティ有効パルスという。
【００４０】
ハイレベル時間ＨＴjが所定時間値ＴＭ01未満であれば、ステップＳ２２にて「ＮＯ」と判定してステップＳ２８に進む。ハイレベル時間ＨＴjが所定時間値ＴＭ01以上であれば、ステップＳ２２にて「ＹＥＳ」と判定して、ステップＳ２６にて正常パルスフラグＣＲＰjを“１”に設定し、ステップＳ２８に進む。なお、この正常パルスフラグＣＲＰjも、後述する第1異常検出ルーチンの実行終了時に“０”にクリアされる。したがって、この正常パルスフラグＣＲＰjは、前回の第1異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までに、デューティ有効パルスが一つでも存在するとき“１”に設定されていて、デューティ有効パルスが全く存在しないとき“０”に設定されているものである。
【００４１】
次に、図８のステップＳ６２の第1異常検出ルーチンについて説明する。この第１異常検出ルーチンは図９に詳細に示されており、その実行は図９のステップＳ１００にて開始され、ステップＳ１０２にて、前記計算した車輪速度Ｖxjが所定車輪速度Ｖr1（例えば、６５km/h）未満であるか否かを判定する。車輪速度Ｖxjが所定車輪速度Ｖr1（例えば、６５km/h）未満であれば、ステップＳ１０２にて「ＹＥＳ」と判定し、ステップＳ１０４にて異常パルスフラグＥＲＰjが“１”であるか否かを判定する。異常パルスフラグＥＲＰjが“１”であれば、ステップＳ１０４にて「ＹＥＳ」と判定して、ステップＳ１０６にて第１エラーフラグＥＲ１jを“１”に設定する。この第１エラーフラグＥＲ１jは、“１”によりセンサユニット２０ａ〜２０ｄなどのうちで変数ｊに対応したセンサユニットなどの第１異常の検出状態を表すものである。したがって、車輪速度Ｖxjが所定車輪速度Ｖr1未満であり、かつ前回の第１異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までにデューティ無効パルスが存在すれば、センサユニット２０ａ〜２０ｄなどの第１異常が検出されることになる。
【００４２】
一方、前回の第１異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までにデューティ無効パルスが存在しなくて、異常パルスフラグＥＲＰjが“０”であれば、ステップＳ１０４にて「ＮＯ」と判定して、ステップＳ１０８に進む。これにより、この場合には、センサユニット２０ａ〜２０ｄなどの第１異常が検出されることはない。
【００４３】
さらに、車輪速度Ｖxjが所定車輪速度Ｖr1以上であれば、ステップＳ１０２にて「ＮＯ」と判定して、ステップＳ１０８に進む。したがって、この場合には、ステップＳ１０４の判定処理が行われず、第１異常の検出が行われない。これは、車輪速度Ｖxjが大きくなった場合に、デューティ無効パルスの誤検出による第１異常の誤検出を回避するためである。したがって、前記ステップＳ１０４の判定処理が第１異常の基本的な検出条件であり、前記ステップＳ１０２の判定処理は同第１異常の誤検出を回避するための補足的検出条件である。
【００４４】
前記ステップＳ１０２〜Ｓ１０６からなる第１異常の検出処理後、ステップＳ１０８にて第１エラーフラグＥＲ１jが“１”であるか否かを判定する。第１エラーフラグＥＲ１jが“０”であれば、ステップＳ１０８にて「ＮＯ」と判定し、ステップＳ１２４にて異常パルスフラグＥＲＰj及び正常パルスフラグＣＲＰjを共に“０”にクリアして、ステップＳ１２６にてこの第１異常検出ルーチンの実行を終了する。また、第１エラーフラグＥＲ１jが“１”に設定されている場合には、ステップＳ１０８にて「ＹＥＳ」と判定し、ステップＳ１１０〜Ｓ１２２からなる異常復帰の検出処理を実行する。
【００４５】
この異常復帰の検出処理においては、第１異常復帰検出仮フラグＥＲ１Ｙjが“０”であることを条件に、ステップＳ１１０にて「ＹＥＳ」と判定し、ステップＳ１１２にて異常パルスフラグＥＲＰjが“１”であるかを判定するとともに、ステップＳ１１４にて正常パルスフラグＣＲＰjが“１”であるかを判定する。前回の第１異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までの間にデューティ無効パルスが存在して異常パルスフラグＥＲＰjが“１”であり、又は同間にデューティ有効パルスが存在しなくて正常パルスフラグＣＲＰjが“０”であれば、ステップＳ１１２，Ｓ１１４のいずれかにて「ＮＯ」と判定して、前述したステップＳ１２４のクリア処理を実行して、ステップＳ１２６にてこの第１異常検出ルーチンの実行を終了する。
【００４６】
一方、前回の第１異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までの間にデューティ無効パルスが存在しなくて異常パルスフラグＥＲＰjが“０”であり、かつ同間にデューティ有効パルスが存在して正常パルスフラグＣＲＰjが“１”であれば、ステップＳ１１２，Ｓ１１４にて共に「ＹＥＳ」と判定して、ステップＳ１１６にて第１異常復帰検出仮フラグＥＲ１Ｙjを“１”に設定する。そして、前述したステップＳ１２４のクリア処理を実行して、ステップＳ１２６にてこの第１異常検出ルーチンの実行を終了する。
【００４７】
このようにして、第１異常復帰検出仮フラグＥＲ１Ｙjが“１”に設定されると、次のステップＳ１１０においては「ＮＯ」と判定され、ステップＳ１１８〜１２２の処理が実行される。この場合、前回の第１異常検出ルーチンの実行から今回の第１異常検出ルーチンの実行までの間、すなわち前記第１異常復帰検出仮フラグＥＲ１Ｙjを“１”に設定した次の判定区間にデューティ無効パルスが存在しなくて異常パルスフラグＥＲＰjが“０”であれば、ステップＳ１１８にて「ＹＥＳ」と判定して、ステップＳ１２０にて第１エラーフラグＥＲ１jを“０”に戻す。そして、ステップＳ１２２にて第１異常復帰検出仮フラグＥＲ１Ｙｊを“０”に戻し、前述したステップＳ１２４のクリア処理を実行して、ステップＳ１２６にてこの第１異常検出ルーチンの実行を終了する。
【００４８】
これらのステップＳ１１０〜１２２に処理により、所定の判定周期（例えば、６ｍｓ）の間にデューティ無効パルスが存在せずかつデューティ有効パルスが存在し、その後の判定周期の間にデューティ無効パルスが存在しないことを条件に、センサユニット２０ａ〜２０ｄなどのうちで変数ｊに対応したセンサユニットなどの第１異常からの復帰が検出される。なお、前記ステップＳ１１２，１１４の判定処理が第１異常状態から正常状態への復帰の基本的な条件であり、ステップＳ１１８の判定処理が正常状態への復帰の誤検出を回避するための補足的条件である。
【００４９】
また、第１異常復帰検出仮フラグＥＲ１Ｙjが“１”に設定された次の判定周期（例えば、６ｍｓ）の間にデューティ無効パルスが存在した場合には、ステップＳ１１８にて「ＮＯ」すなわち異常パルスフラグＥＲＰjが“０”でないと判定し、ステップＳ１２２にて第１異常復帰検出仮フラグＥＲ１Ｙjを“０”に戻した後、ステップＳ１２４以降に進む。したがって、この場合には、第１異常状態から正常状態への復帰の検出がステップＳ１１２，Ｓ１１４の判定処理からあらためて行われる。
【００５０】
なお、この第１異常検出処理において、デューティ無効パルスが所定の判定周期の間に存在する条件のみで前記異常を判定するようにしてもよい。この場合、図９のステップＳ１０２の判定処理を省略して、ステップＳ１０４にて「ＹＥＳ」と判定されたとき、ステップＳ１０６にて第１エラーフラグＥＲ１jを“１”に設定するようにすればよい。
【００５１】
また、第１異常復帰検出処理において、所定の判定周期の間にデューティ無効パルスが存在せずかつデューティ有効パルスが存在したという条件のみ、又は所定の判定周期の間にデューティ無効パルスが存在しないという条件のみで、異常検出の復帰が判定されるようにしてもよい。この場合、ステップＳ１１０〜Ｓ１２２の処理に代え、ステップＳ１１２，Ｓ１１４の判定処理によって共に「ＹＥＳ」と判定されたとき第１エラーフラグＥＲ１jを“０”に戻すようにし、又はステップＳ１１８の判定処理によって「ＹＥＳ」と判定されたとき第１エラーフラグＥＲ１jを“０”に戻すようにすればよい。
【００５２】
次に、図８のステップＳ６４の第２異常検出ルーチンについて説明する。この第２異常検出ルーチンは、各車輪の回転方向が他の３車輪の回転方向と異なるという異常（以下、第２異常という）を検出するとともに、同第２異常の回復を検出するものである。
【００５３】
この第２異常検出ルーチンは、図１０，１１に詳細に示されており、マイクロコンピュータ４０は、ステップＳ２００にて第２異常検出ルーチンの実行を開始し、ステップＳ２０２にて、第２エラーフラグＥＲ２jが“０”であるか否かを判定する。第２エラーフラグＥＲ２jが“０”であれば、ステップＳ２０２にて「ＹＥＳ」と判定して、ステップＳ２０４〜Ｓ２２８からなる第２異常の検出処理を実行して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。一方、第２エラーフラグＥＲ２jが“１”であれば、ステップＳ２０２にて「ＮＯ」と判定して、ステップＳ２３０〜Ｓ２５２からなる第２異常状態から正常状態への復帰の検出処理を実行して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。
【００５４】
ステップＳ２０４〜Ｓ２２８からなる異常検出処理においては、ステップＳ２０４にて、前記図８のステップＳ６０の処理によって入力した回転方向検出信号Ｄr1〜Ｄr4を用いて、ロータ１０ａ〜１０ｄのうちの一つのロータに関する回転方向検出信号Ｄrj（ｊは１〜４のいずれか）のみが他の３つの回転方向検出信号と異なるかにより、一つの車輪の回転方向のみが他の３車輪の回転方向と異なるかを判定する。なお、このステップＳ２０４の判定処理が、第２異常の検出の基本的条件である。
【００５５】
ステップＳ２０６においては、前記図８のステップＳ５８の処理によって計算した最小車輪速度Ｖminが所定車輪速度Ｖr2（例えば、３０km/h）よりも大きいかを判定する。この判定条件は、車両のほぼ停止時に車体が前後に揺れて、一つの車輪の回転方向のみが他の３車輪の回転方向と異なってしまうことによる第２異常の誤判定を回避するための補足的条件である。ステップＳ２０８においては、前記図８のステップＳ５８の処理によって計算した最大車輪速度Ｖmaxと最小車輪速度Ｖminとの差Ｖmax−Ｖminが所定車輪速度Ｖr3（例えば、２km/h）未満であるかを判定する。この判定条件は、車両が旋回状態にあって（直進状態になくて）、一つの車輪の回転方向のみが他の３車輪の回転方向と異なってしまうことによる第２異常の誤判定を回避するための補足的条件である。
【００５６】
ステップＳ２１０においては、ＡＢＳ信号、ＶＳＣ信号及びＴＲＣ信号を入力して、これらの全ての信号がローレベルであるかを判定、すなわち各車輪に対する制動力又は駆動力の付与及び解除の制御中でないかを判定する。この判定条件も、車輪のスリップ状態などに応じて各車輪ごとに制動力又は駆動力を付与及び解除した結果、一つの車輪の回転方向のみが他の３車輪の回転方向と異なってしまうことによる第２異常の誤判定を回避するための補足的条件である。
【００５７】
これらのステップＳ２０４〜Ｓ２１０の全ての判定条件が成立しない限り、ステップＳ２０４〜Ｓ２１０のいずれかにて「ＮＯ」と判定して、ステップＳ２２６にてカウント値ＣＴ１を「０」に設定し、ステップＳ２２８にて第２異常検出仮フラグＥＲ２Ｘjを“０”に設定し、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。このカウントＣＴ１は、初期には「０」に設定され、この第２異常検出ルーチンの実行回数を計測することにより、前記ステップＳ２０４〜Ｓ２１０の異常検出条件の成立継続時間を計測するものである。第２異常検出仮フラグＥＲ２Ｘjは、“１”によって第２異常の検出動作中であることを表す。
【００５８】
一方、ステップＳ２０４〜Ｓ２１０の全ての判定条件が成立すると、ステップＳ２０４〜Ｓ２１０にてそれぞれ「ＹＥＳ」と判定し、ステップＳ２１２にて第２異常検出仮フラグＥＲ２Ｘjが“０”であるかを判定する。第２異常検出仮フラグＥＲ２Ｘjが“０”であれば、ステップＳ２１２にて「ＹＥＳ」と判定し、ステップＳ２１４にてカウント値ＣＴ１を「０」に設定し、ステップＳ２１６にて第２異常検出仮フラグＥＲ２Ｘjを“１”に設定して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。
【００５９】
そして、ステップＳ２０４〜Ｓ２１０の全ての判定条件が成立し続ければ、第２異常検出仮フラグＥＲ２Ｘjは“１”に保たれているので、ステップＳ２１２においては「ＮＯ」と判定され続けて、ステップＳ２１８，Ｓ２２０に進む。ステップＳ２１８においては、カウント値ＣＴ１に「１」を加算する。ステップＳ２２０においては、カウント値ＣＴ１が所定値ＣＴ10（例えば、「１７」）以上になったかを判定する。前記ステップＳ２１４の処理によってカウント値ＣＴ１を「０」に設定してから間もなければ、ステップＳ２２０にて「ＮＯ」と判定し続けて、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。この状態では、カウント値ＣＴ１は、ステップＳ２１８の処理により、この第２異常検出ルーチンの実行ごとに「１」ずつカウントアップされる。
【００６０】
さらに、ステップＳ２０４〜Ｓ２１０の全ての判定条件が成立し続ければ、カウントＣＴ１は所定値ＣＴ10以上になるので、ステップＳ２２０にて「ＹＥＳ」と判定し、ステップＳ２２２にて第２エラーフラグＥＲ２jを“１”に設定する。この第２エラーフラグＥＲ２jは、“１”によりセンサユニット２０ａ〜２０ｄなどのうちで変数ｊに対応したセンサユニットなどの第２異常の検出状態を表すもので、前記ステップＳ２０４〜Ｓ２２８の処理により、センサユニット２０ａ〜２０ｄなどの第２異常が検出される。また、前記ステップＳ２２２の処理後、ステップＳ２２４にて第２異常検出仮フラグＥＲ２Ｘjを“０”に戻して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。
【００６１】
このようにして、第２エラーフラグＥＲ２jが“１”に設定された後には、ステップＳ２０２にて「ＮＯ」と判定されて、ステップＳ２３０〜Ｓ２５２からなる第２異常の復帰検出処理が実行されるようになる。
【００６２】
ステップＳ２３０〜Ｓ２５２からなる異常復帰検出処理においては、ステップＳ２３０にて、前記図８のステップＳ６０の処理によって入力した回転方向検出信号Ｄr1〜Ｄr4を用いて、ロータ１０ａ〜１０ｄのうちの一つのロータに関する回転方向検出信号Ｄrj（ｊは１〜４のいずれか）が他の回転方向検出信号と同一であるかにより、一つの車輪の回転方向が他の３車輪の回転方向と同一であるかを判定する。なお、このステップＳ２３０の判定処理が、異常復帰の検出の基本的条件である。
【００６３】
ステップＳ２３２，Ｓ２３４においては、前記ステップＳ２０６，Ｓ２０８の補足的条件と同様に、最小車輪速度Ｖminが所定車輪速度Ｖr2（例えば、３０km/h）よりも大きいか、最大車輪速度Ｖmaxと最小車輪速度Ｖminとの差Ｖmax−Ｖminが所定車輪速度Ｖr3（例えば、２km/h）未満であるかをそれぞれ判定する。
【００６４】
そして、これらのステップＳ２３０〜Ｓ２３４の全ての判定条件が成立しない限り、ステップＳ２３０〜Ｓ２３４のいずれかにて「ＮＯ」と判定して、ステップＳ２５０にてカウント値ＣＴ２を「０」に設定し、ステップＳ２５２にて第２異常復帰検出仮フラグＥＲ２Ｙjを“０”に設定し、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。このカウント値ＣＴ２も、初期には「０」に設定され、この第２異常検出ルーチンの実行回数を計測することにより、前記ステップＳ２３０〜Ｓ２３４の異常復帰検出条件の成立継続時間を計測するものである。第２異常復帰検出仮フラグＥＲ２Ｙjは、“１”によって第２異常の復帰の検出動作中であることを表す。
【００６５】
一方、ステップＳ２３０〜Ｓ２３４の全ての判定条件が成立すると、ステップＳ２３０〜Ｓ２３４にてそれぞれ「ＹＥＳ」と判定し、ステップＳ２３６にて第２異常復帰検出仮フラグＥＲ２Ｙjが“０”であるかを判定する。第２異常復帰検出仮フラグＥＲ２Ｙjが“０”であれば、ステップＳ２３６にて「ＹＥＳ」と判定し、ステップＳ２３８にてカウント値ＣＴ２を「０」に設定し、ステップＳ２４０にて第２異常復帰検出仮フラグＥＲ２Ｙjを“１”に設定して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。
【００６６】
そして、ステップＳ２３０〜Ｓ２５４の全ての判定条件が成立し続ければ、第２異常復帰検出仮フラグＥＲ２Ｙjは“１”に保たれているので、ステップＳ２３６においては「ＮＯ」と判定され続けて、ステップＳ２４２，Ｓ２４４に進む。ステップＳ２４２においては、カウント値ＣＴ２に「１」を加算する。ステップＳ２４４においては、カウント値ＣＴ１が所定値ＣＴ20（例えば、「８３」）以上になったかを判定する。前記ステップＳ２４０の処理によってカウント値ＣＴ２を「０」に設定してから間もなければ、ステップＳ２４４にて「ＮＯ」と判定し続けて、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。この状態では、カウント値ＣＴ２は、ステップＳ２４２の処理により、この第２異常検出ルーチンの実行ごとに「１」ずつカウントアップされる。
【００６７】
さらに、ステップＳ２３０〜Ｓ２３４の全ての判定条件が成立し続ければ、カウント値ＣＴ２は所定値ＣＴ20以上になるので、ステップＳ２４４にて「ＹＥＳ」と判定し、ステップＳ２４６にて第２エラーフラグＥＲ２jを“０”に戻す。これにより、センサユニット２０ａ〜２０ｄなどの第２異常状態から正常状態への復帰が検出されることになる。また、前記ステップＳ２４６の処理後、ステップＳ２４８にて第２異常復帰検出仮フラグＥＲ２Ｙjを“０”に戻して、ステップＳ２５４にてこの第２異常検出ルーチンの実行を終了する。
【００６８】
なお、この第２異常検出処理において、ステップＳ２０４〜Ｓ２１０，Ｓ２２０の判定処理によって前記異常を判定するようにしたが、ステップＳ２０６〜Ｓ２１０，Ｓ２２２０の判定処理に関しては、適宜一つ又は複数のステップの判定処理を省略してもよい。また、ステップＳ２３０〜Ｓ２３４，Ｓ２４４の判定処理によって前記異常の復帰を判定するようにしたが、ステップＳ２３２，Ｓ２３４，Ｓ２４４の判定処理に関しては、適宜一つ又は複数のステップの判定処理を省略してもよい。
【００６９】
次に、図８のステップＳ６６の第３異常検出ルーチンについて説明する。この第３異常検出ルーチンは、車輪速度が車両の後退時にあり得ないほど大きいという異常（以下、第３異常という）を検出するとともに、同第３異常の回復を検出するものである。
【００７０】
この第３異常検出ルーチンは、図１２，１３に詳細に示されており、マイクロコンピュータ４０は、ステップＳ３００にて第３異常検出ルーチンの実行を開始し、ステップＳ３０２にて、第３エラーフラグＥＲ３jが“０”であるか否かを判定する。第３エラーフラグＥＲ３jが“０”であれば、ステップＳ３０２にて「ＹＥＳ」と判定して、ステップＳ３０４〜Ｓ３２６からなる第３異常の検出処理を実行して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。一方、第３エラーフラグＥＲ３jが“１”であれば、ステップＳ３０２にて「ＮＯ」と判定して、ステップＳ３２８〜Ｓ３５０からなる第３異常状態から正常状態への復帰の検出処理を実行して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。
【００７１】
ステップＳ３０４〜Ｓ３２６からなる異常検出処理においては、ステップＳ３０４にて、前記図８のステップＳ６０の処理によって入力した回転方向検出信号Ｄrjを用いて、同回転方向検出信号Ｄrjがロータ１０ａ〜１０ｄのうちの対応するロータ（車輪）の逆転方向を表すかを判定する。ステップＳ３０６においては、前記図８のステップＳ５４の処理によって計算した車輪速度Ｖxjが所定車輪速度Ｖr4（例えば、１００km/h）よりも大きいかを判定する。なお、これらのステップＳ３０４，Ｓ３０６の判定処理が、第３異常状態の検出の基本的条件である。
【００７２】
ステップＳ３０８においては、前記図８のステップＳ５８の処理によって計算した最小車輪速度Ｖminが所定車輪速度Ｖr5（例えば、３０km/h）よりも大きいかを判定する。この判定条件は、他の車輪の回転が停止していて該当する車輪を含む一部の車輪だけが空転していることによる第３異常の誤判定を回避するための補足的条件である。
【００７３】
これらのステップＳ３０４〜Ｓ３０８の全ての判定条件が成立しない限り、ステップＳ３０４〜Ｓ３０８のいずれかにて「ＮＯ」と判定して、ステップＳ３２４にてカウント値ＣＴ３を「０」に設定し、ステップＳ３２６にて第３異常検出仮フラグＥＲ３Ｘjを“０”に設定し、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。このカウントＣＴ３も、初期には「０」に設定され、この第３異常検出ルーチンの実行回数を計測することにより、前記ステップＳ３０４〜Ｓ３０８の異常検出条件の成立継続時間を計測するものである。第３異常検出仮フラグＥＲ３Ｘjは、“１”によって第３異常の検出動作中であることを表す。
【００７４】
一方、ステップＳ３０４〜Ｓ３０８の全ての判定条件が成立すると、ステップＳ３０４〜Ｓ３０８にてそれぞれ「ＹＥＳ」と判定し、ステップＳ３１０にて第３異常検出仮フラグＥＲ３Ｘjが“０”であるかを判定する。第３異常検出仮フラグＥＲ３Ｘjが“０”であれば、ステップＳ３１０にて「ＹＥＳ」と判定し、ステップＳ３１２にてカウント値ＣＴ３を「０」に設定し、ステップＳ３１４にて第３異常検出仮フラグＥＲ３Ｘjを“１”に設定して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。
【００７５】
そして、ステップＳ３０４〜Ｓ３０８の全ての判定条件が成立し続ければ、第３異常検出仮フラグＥＲ３Ｘjは“１”に保たれているので、ステップＳ３１０においては「ＮＯ」と判定され続けて、ステップＳ３１６，３１８に進む。ステップＳ３１６においては、カウント値ＣＴ３に「１」を加算する。ステップＳ３１８においては、カウント値ＣＴ３が所定値ＣＴ30（例えば、「１７」）以上になったかを判定する。前記ステップＳ３１２の処理によってカウント値ＣＴ３を「０」に設定してから間もなければ、ステップＳ３１８にて「ＮＯ」と判定し続けて、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。この状態では、カウント値ＣＴ３は、ステップＳ３１６の処理により、この第３異常検出ルーチンの実行ごとに「１」ずつカウントアップされる。
【００７６】
さらに、ステップＳ３０４〜Ｓ３０８の全ての判定条件が成立し続ければ、カウント値ＣＴ３は所定値ＣＴ30以上になるので、ステップＳ３１８にて「ＹＥＳ」と判定し、ステップＳ３２０にて第３エラーフラグＥＲ３jを“１”に設定する。この第３エラーフラグＥＲ３jは、“１”によりセンサユニット２０ａ〜２０ｄなどのうちで変数ｊに対応したセンサユニットなどの第３異常の検出状態を表すもので、前記ステップＳ３０４〜Ｓ３１８の処理により、センサユニット２０ａ〜２０ｄなどの第３異常が検出される。また、前記ステップＳ３２０の処理後、ステップＳ３２２にて第３異常検出仮フラグＥＲ３Ｘjを“０”に戻して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。
【００７７】
このようにして、第３エラーフラグＥＲ３jが“１”に設定された後には、ステップＳ３０２にて「ＮＯ」と判定されて、ステップＳ３２８〜Ｓ３５０からなる第３異常の復帰検出処理が実行されるようになる。
【００７８】
ステップＳ３２８〜Ｓ３５０からなる異常復帰検出処理においては、ステップＳ３２８にて、前記ステップＳ６０の処理によって入力した回転方向検出信号Ｄr1〜Ｄr4を用いて、全てのロータ１０ａ〜１０ｄ（車輪）の回転方向検出信号Ｄr1〜Ｄr4が同一であるかにより、４輪の回転方向が同一であるかを判定する。なお、このステップＳ３２８の判定処理が、異常復帰の検出の基本的条件である。
【００７９】
ステップＳ３３０においては、前記図８のステップＳ５８の処理によって計算した最小車輪速度Ｖminが所定車輪速度Ｖr6（例えば、１０km/h）よりも大きいかを判定する。また、ステップＳ３３２においては、前記図８のステップＳ５８の処理によって計算した最大車輪速度Ｖmaxと最小車輪速度Ｖminとの差Ｖmax−Ｖminが所定車輪速度Ｖr7（例えば、２km/h）未満であるかを判定する。これらのステップＳ３３０，Ｓ３３２の判定条件は、車両が直進走行状態にあることを判定するための補足的条件で、これにより、車両が直進走行してない状態で前記ステップＳ３２８による第３異常の復帰検出の誤判定が回避される。
【００８０】
そして、これらのステップＳ３２８〜Ｓ３３２の全ての判定条件が成立しない限り、ステップＳ３２８〜Ｓ３３２のいずれかにて「ＮＯ」と判定して、ステップＳ３４８にてカウント値ＣＴ４を「０」に設定し、ステップＳ３５０にて第３異常復帰検出仮フラグＥＲ３Ｙjを“０”に設定し、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。このカウント値ＣＴ４も、初期には「０」に設定され、この第３異常検出ルーチンの実行回数を計測することにより、前記ステップＳ３２８〜Ｓ３３２の異常復帰検出条件の成立継続時間を計測するものである。第３異常復帰検出仮フラグＥＲ３Ｙjは、“１”によって第３異常からの復帰の検出動作中であることを表す。
【００８１】
一方、ステップＳ３２８〜Ｓ３３２の全ての判定条件が成立すると、ステップＳ３２８〜Ｓ３３２にてそれぞれ「ＹＥＳ」と判定し、ステップＳ３３４にて第３異常復帰検出仮フラグＥＲ３Ｙjが“０”であるかを判定する。第３異常復帰検出仮フラグＥＲ３Ｙjが“０”であれば、ステップＳ３３４にて「ＹＥＳ」と判定し、ステップＳ３３６にてカウントＣＴ４を「０」に設定し、ステップＳ３３８にて第３異常復帰検出仮フラグＥＲ３Ｙjを“１”に設定して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。
【００８２】
そして、ステップＳ３２８〜Ｓ３３２の全ての判定条件が成立し続ければ、第３異常復帰検出仮フラグＥＲ３Ｙjは“１”に保たれているので、ステップＳ３３４においては「ＮＯ」と判定され続けて、ステップＳ３４０，３４２に進む。ステップＳ３４０においては、カウント値ＣＴ４に「１」を加算する。ステップＳ３４２においては、カウント値ＣＴ４が所定値ＣＴ40（例えば、「８３」）以上になったかを判定する。前記ステップＳ３３６の処理によってカウント値ＣＴ４を「０」に設定してから間もなければ、ステップＳ３４２にて「ＮＯ」と判定し続けて、ステップＳ３５２にてこの第２異常検出ルーチンの実行を終了する。この状態では、カウント値ＣＴ４は、ステップＳ３４０の処理により、この第３異常検出ルーチンの実行ごとに「１」ずつカウントアップされる。
【００８３】
さらに、ステップＳ３２８〜Ｓ３３２の全ての判定条件が成立し続ければ、カウント値ＣＴ４は所定値ＣＴ40以上になるので、ステップＳ３４２にて「ＹＥＳ」と判定し、ステップＳ３４４にて第３エラーフラグＥＲ３jを“０”に戻す。これにより、センサユニット２０ａ〜２０ｄなどの第３異常状態から正常状態への復帰が検出されることになる。また、前記ステップＳ３４４の処理後、ステップＳ３４６にて第３異常復帰検出仮フラグＥＲ３Ｙjを“０”に戻して、ステップＳ３５２にてこの第３異常検出ルーチンの実行を終了する。
【００８４】
なお、この第３異常検出処理において、ステップＳ３０４〜Ｓ３０８，Ｓ３１８の判定処理によって前記異常を判定するようにしたが、ステップＳ３０８，Ｓ３１８のいずれか一方の判定処理に関しては省略してもよい。また、ステップＳ３２８〜Ｓ３３２，Ｓ３４２の判定処理によって前記異常の復帰を判定するようにしたが、ステップＳ３３０，Ｓ３３２，Ｓ３４２の判定処理に関しては、いずれか一つ又は複数の判定処理を省略してもよい。
【００８５】
次に、図８のステップＳ６８の第４異常検出ルーチンについて説明する。この第４異常検出ルーチンは、センサユニット２０ａ〜２０ｄからの回転検出信号Ｖsj(ｊ＝１〜４)が図１６(Ｄ)に示すようにロータ１０ａ〜１０ｄの正転及び逆転の頻繁な繰り返しを表すパルス列信号からなる異常（以下、第４異常という）を検出するものである。このような第４異常検出ルーチンについて詳細に説明する前に、図７のパルス検出プログラムの実行により設定されて第４異常検出ルーチンにて利用される変数について説明しておく。
【００８６】
図７のパルス検出プログラムのステップＳ２８において、第１回転検出信号Ｖsj1を入力して、同回転検出信号Ｖsj1が前回ローレベルにあって今回ハイレベルに変化したかを判定することにより、回転検出信号Ｖsjの立上がりタイミングであるかを判定する。この場合、回転検出信号Ｖsjが立上がりタイミングでなければ、ステップＳ２８にて「ＮＯ」と判定して、ステップＳ４６にてこのパルス検出プログラムの実行を終了する。
【００８７】
一方、回転検出信号Ｖsjが立上がりタイミングであれば、ステップＳ２８にて「ＹＥＳ」と判定し、ステップＳ３０にてパルスカウント値ＰＵＣＴjに「１」を加算する。このパルスカウント値ＰＵＣＴjは、回転検出信号Ｖsjがローレベルからハイレベル（Ｖ0レベルからＶ1又はＶ2レベル）に変化した回数、すなわち回転検出信号Ｖsjの幅広のパルス数を表すもので、初期には「０」に設定されている。
【００８８】
前記ステップＳ３０の処理後、ステップＳ３２にて、第２回転検出信号Ｖsj2を入力して、同回転検出信号Ｖsj2がハイレベルであるか（言い換えれば、逆転パルス信号が存在するか）を判定することにより、回転検出信号Ｖsjが該当するロータの正転（車両の前進に対応）又は逆転（車両の後退に対応）を表しているかを判定する。
【００８９】
そして、第２回転検出信号Ｖsj2がローレベルであって回転検出信号Ｖsjが車輪の前進状態を表していれば、ステップＳ３２にて「ＹＥＳ」と判定し、ステップＳ３４以降に進む。ステップＳ３４においては、逆転フラグＲＥＶＦjが“１”であるかを判定する。逆転フラグＲＥＶＦjは、“１”により該当するロータ（車輪）の逆転を表すものである。前回の回転検出信号Ｖsjが車輪の後退状態を表していて、逆転フラグＲＥＶＦjが“１”であれば、ステップＳ３４にて「ＹＥＳ」と判定して、ステップＳ３６にて変化カウント値ＣＧＣＴjに「１」を加算し、ステップＳ３８にて逆転フラグＲＥＶＦjを“０”に変更して、ステップＳ４６にてこのパルス検出プログラムの実行を終了する。この変化カウント値ＣＧＣＴjは、回転検出信号Ｖsjにおける前進状態から後退状態への変化及び後退状態から前進状態への変化の回数を表すもので、初期には「０」に設定されている。また、前回の回転検出信号Ｖsjが車輪の前進状態を表していて、逆転フラグＲＥＶＦjが“０”であれば、ステップＳ３４にて「ＮＯ」と判定して、ステップＳ４６にてこのパルス検出プログラムの実行を終了する。
【００９０】
一方、前記ステップＳ３２の判定時に、第２回転検出信号Ｖsj2がハイレベルであって回転検出信号Ｖsjが車輪の後退状態を表していれば、同ステップＳ３２にて「ＮＯ」と判定し、ステップＳ４０以降に進む。ステップＳ４０においては、逆転フラグＲＥＶＦjが“０”であるかを判定する。そして、前回の回転検出信号Ｖsjが車輪の前進状態を表していて、逆転フラグＲＥＶＦjが“０”であれば、ステップＳ４０にて「ＹＥＳ」と判定して、ステップＳ４２にて変化カウント値ＣＧＣＴjに「１」を加算し、ステップＳ４４にて逆転フラグＲＥＶＦjを“１”に変更して、ステップＳ４６にてこのパルス検出プログラムの実行を終了する。また、前回の回転検出信号Ｖsjが車輪の後退状態を表していて、逆転フラグＲＥＶＦjが“１”であれば、ステップＳ４０にて「ＮＯ」と判定して、ステップＳ４６にてこのパルス検出プログラムの実行を終了する。
【００９１】
次に、図８のステップＳ６８の第４異常検出ルーチンについて具体的に説明する。この第４異常検出ルーチンは図１４に詳細に示されており、その実行はステップＳ４００にて開始される。この第４異常検出ルーチンの実行開始後、ステップＳ４０２にて、カウント中フラグＣＮＴＦjが“０”であるかを判定する。このカウント中フラグＣＮＴＦjは、後述するステップＳ４０６にて“１”に設定されるもので、初期には“０”に設定されている。したがって、ステップＳ４０２においては、最初「ＹＥＳ」と判定され、ステップＳ４０４に進められる。
【００９２】
ステップＳ４０４においては、前進・後退の変化回数を表す変化カウント値ＣＧＣＴjが「１」以上であるか否かを判定する。すなわち、前回の第４異常検出ルーチンの実行から今回の第４異常検出ルーチンの実行までの間に、車両の前進・後退の変化を表す回転検出信号Ｖsjが出力されたかを判定する。前回の第４異常検出ルーチンの実行から今回の第４異常検出ルーチンの実行までの間に前進・後退の変化が無ければ、ステップＳ４０４にて「ＮＯ」すなわち変化カウント値ＣＧＣＴjが「１」以上でないと判定して、ステップＳ４０８にてパルスカウント値ＰＵＣＴjを「０」にクリアするとともに、ステップＳ４１０にて変化カウント値ＣＧＣＴjも「０」にクリアして、ステップＳ４２８にてこの第４異常検出ルーチンの実行を終了する。
【００９３】
したがって、車両の前進・後退の変化を表す回転検出信号Ｖsjが検出されるまでは、前記図７のパルス検出プログラムのステップＳ２８〜Ｓ４４の処理により、第４異常検出ルーチンの実行される間における回転検出信号Ｖsjの幅広のパルス数（パルスカウント値ＰＵＣＴj）及び前進・後退の変化回数（変化カウント値ＣＧＣＴj）が計測され続ける。そして、前回の第４異常検出ルーチンの実行から今回の第４異常検出ルーチンの実行までの間に、車両の前進・後退の変化を表す回転検出信号Ｖsjが検出されると、ステップＳ４０４にて「ＹＥＳ」すなわち変化カウント値ＣＧＣＴjが「１」以上であると判定して、ステップＳ４０６にてカウント中フラグＣＮＴＦjを“１”に設定する。
【００９４】
このようにしてカウント中フラグＣＮＴＦjが“１”に設定されると、次回以降の第４異常検出ルーチンのステップＳ４０２にて「ＮＯ」と判定されて、ステップＳ４１２〜４２６の処理が実行されるようになる。ステップＳ４１２においては、パルスカウント値ＰＵＣＴjが所定値ＰＵＣＴ0（例えば、「５０」）以上であるかを判定する。パルスカウント値ＰＵＣＴjが所定値ＣＴ0未満であれば、ステップＳ４１２にて「ＮＯ」と判定して、ステップＳ４２８にてこの第４異常検出ルーチンの実行を終了する。
【００９５】
一方、この状態では、ステップＳ４０８，Ｓ４１０の処理によってパルスカウント値ＰＵＣＴj及び変化カウント値ＣＧＣＴjが「０」にクリアされることがない。したがって、前記図７のパルス検出プログラムのステップＳ２８〜Ｓ４４の処理により、前回の第４異常検出ルーチンの実行からの回転検出信号Ｖsjの幅広のパルス数（パルスカウント値ＰＵＣＴj）及び前進・後退の変化回数（変化カウント値ＣＧＣＴj）が引き続きカウントアップされることになる。
【００９６】
パルスカウント値ＰＵＣＴjが所定値ＰＵＣＴ0未満であれば、ステップＳ４１２にて「ＮＯ」と判定し続けるので、パルスカウント値ＰＵＣＴj及び変化カウント値ＣＧＣＴjの前記パルス検出プログラムによるカウントアップは継続する。その結果、パルスカウント値ＰＵＣＴjが増加して所定値ＰＵＣＴ0以上になると、ステップＳ４１２にて「ＹＥＳ」と判定し、ステップＳ４１４〜Ｓ４１８の判定処理を実行する。
【００９７】
ステップＳ４１４においては、パルスカウント値ＰＵＣＴjに対する変化カウント値ＣＧＣＴjの割合ＣＧＣＴj／ＰＵＣＴjが「０．７」以上であるか否かを判定する。この割合ＣＧＣＴj／ＰＵＣＴjは、回転検出信号Ｖsj(ｊ＝１〜４)に基づくロータ１０ａ〜１０ｄの正転及び逆転の繰り返し頻度を表すもので、最大を「１．０」として、大きくなるに従って前記繰り返し頻度が高くなることを示している。なお、このステップＳ４１４の判定処理が、第４異常検出の基本的条件である。
【００９８】
ステップＳ４１６においては、前記図８のステップＳ５４にて計算した車輪速度Ｖxjが所定車輪速度Ｖr8（例えば、１０km/h）よりも大きいかを判定する。なお、このステップＳ４１６の処理は、ロータ１０ａ〜１０ｄがほとんど回転しないことに基づく第４異常の誤検出を回避するための補足的検出条件である。ステップＳ４１８においては、バッテリ信号ＢＴを入力して、バッテリ異常（バッテリ電圧が低いこと）の有無を判定する。このステップＳ４１８の判定処理は、バッテリ異常（バッテリ電圧が低いこと）に起因した第４異常の誤検出を回避するための補足的検出条件である。
【００９９】
これらの全ての条件が成立しなければ、前記ステップＳ４１４〜４１８のうちのいずれか一つにて「ＮＯ」と判定して、ステップＳ４２２〜Ｓ４２６にて、パルスカウント値ＰＵＣＴj、変化カウント値ＣＧＣＴj及びカウント中フラグＣＮＴＦjをそれぞれ「０」にクリアし、ステップＳ４２８にてこの第４異常検出ルーチンの実行を終了する。この場合、前述した図７のパルス検出プログラムのステップＳ２８〜Ｓ４４及びステップＳ４０２〜Ｓ４１２の処理による前記割合ＣＧＣＴj／ＰＵＣＴjの計算のための事前処理があらためて行われるようになる。
【０１００】
一方、前記全ての判定条件が成立すると、ステップＳ４１２〜Ｓ４１８にてそれぞれ「ＹＥＳ」と判定し、ステップＳ４２０にて第４エラーフラグＥＲ４jを“１”に設定し、ステップＳ４２８にてこの第４異常検出ルーチンの実行を終了する。この第４エラーフラグＥＲ４jは、“１”によりセンサユニット２０ａ〜２０ｄなどのうちで変数ｊに対応したセンサユニットなどの第４異常の検出状態を表すもので、前述の処理により、センサユニット２０ａ〜２０ｄなどの第４異常が検出される。そして、この第４異常が検出された場合には、同異常の復帰が検出されることはなく、以降、第４エラーフラグＥＲ４jは“１”に維持される。
【０１０１】
なお、この第４異常検出において、前記ステップＳ４１４〜Ｓ４１８のうちの補足的な条件であるステップＳ４１６，Ｓ４１８の判定処理を省略してもよい。また、前記ステップＳ３２による回転検出信号Ｖsjに基づくロータの回転方向の判定処理は単に一例を示すもので、これに代え又は加えて、回転検出信号Ｖsjの立下がり時における第２回転検出信号Ｖsj2のハイレベル又はローレベルにより、回転検出信号Ｖsjに基づくロータの回転方向の判定処理を行うようにしてもよい。
【０１０２】
また、この第４異常検出においては、パルスカウント値ＰＵＣＴjが所定値ＰＵＣＴ0以上になったとき、このパルスカウント値ＰＵＣＴjに対する変化カウント値ＣＧＣＴjの割合ＣＧＣＴj／ＰＵＣＴjが「０．７」以上であることを条件に、第４異常を検出するようにした。しかし、これに代えて、予め決めた所定時間における前記割合ＣＧＣＴj／ＰＵＣＴj、車輪（車両）が予め決めた所定距離を走行した間における前記割合ＣＧＣＴj／ＰＵＣＴjなど、所定区間における前記割合ＣＧＣＴj／ＰＵＣＴjが「０．７」以上であることを条件に、第４異常を検出するようにしてもよい。また、前記割合ＣＧＣＴj／ＰＵＣＴjと比較される値「０．７」に関しても、ある程度大きな値であって「１．０」以下の値であれば、他の所定値を採用してもよい。
【０１０３】
このような第１〜第４異常検出ルーチンの実行後、図８のステップＳ７０にて、前記ステップＳ５４の処理によって検出された車輪速度Ｖx1〜Ｖx4、前記ステップＳ６０の処理によって入力された回転方向検出信号Ｄr1〜Ｄr4、及びステップＳ６２〜Ｓ６８の処理による第１〜第４エラーフラグＥＲ１j〜ＥＲ４j（ｊ＝１〜４）を各種制御装置へ適宜出力する。具体的には、第１〜第４エラーフラグＥＲ１j〜ＥＲ４j（ｊ＝１〜４）が第１〜第４異常をそれぞれ表す“１”に設定されていなければ、車輪速度Ｖx1〜Ｖx4及び回転方向検出信号Ｄr1〜Ｄr4が各種制御装置に出力されて、同制御装置による各種制御に利用される。一方、第１〜第４エラーフラグＥＲ１j〜ＥＲ４j（ｊ＝１〜４）のうちで第１〜第４異常を表す“１”に設定されているものがあれば、同“１”に設定された第１〜第４エラーフラグＥＲ１j〜ＥＲ４j（ｊ＝１〜４）が出力されて、同フラグに対応した車輪速度Ｖx1〜Ｖx4及び回転方向検出信号Ｄr1〜Ｄr4は出力されない。この場合、“１”に設定されるとともに出力された第１〜第４エラーフラグＥＲ１j〜ＥＲ４j（ｊ＝１〜４）に基づいて運転者に対する警告がなされたり、前記各種制御装置における制御態様が変更される。
【０１０４】
なお、上記実施形態では、ロータ１０ａ〜１０ｄが逆転する場合にのみ回転検出信号Ｖsj（ｊ＝１〜４）に幅狭のパルスを付加するようにして、ロータ１０ａ〜１０ｄの正転及び逆転を判別できるようにした。しかし、これに代えて、ロータ１０ａ〜１０ｄが正転する場合にのみ回転検出信号Ｖsj（ｊ＝１〜４）に幅狭のパルスを付加するようにして、ロータ１０ａ〜１０ｄの正転及び逆転を判別できるようにしてもよい。この場合も、上記同様な第1異常検出ルーチンの処理にて幅狭のパルスの検出により、回転検出信号Ｖsj（ｊ＝１〜４）の第1異常を検出することができる。
【０１０５】
また、上記実施形態においては、パルス検出処理及び異常検出を含む車輪速度検出処理を図７〜図１４に示すフローチャートに対応したプログラム処理によって実行するようにした。しかし、本発明の実施にあたっては、前記プログラムの一部をハード回路による処理で実現するようにしてもよい。
【０１０６】
さらに、上記実施形態は本発明の一例であって、本発明の目的及び趣旨を逸脱しない範囲内で種々の変形がなされ得るものである。
【図面の簡単な説明】
【０１０７】
【図１】本発明の一実施形態に係る車輪速度検出装置の全体概略図である。
【図２】ロータの回転時における回転センサ及び波形整形回路の出力波形図である。
【図３】(Ａ)はロータの正転時における図１のセンサユニット内の各部の信号波形図であり、(Ｂ)はロータの逆転時における図１のセンサユニット内の各部の信号波形図である。
【図４】(Ａ)はロータの正転時におけるセンサユニット及び各比較器の出力波形図であり、(Ｂ)はロータの逆転時におけるセンサユニット及び各比較器の出力波形図である。
【図５】図１の回転方向検出回路部内の各回転方向検出回路の詳細回路である。
【図６】(Ａ)はロータの正転時における図５の回転方向検出回路の各部の信号波形図であり、(Ｂ)はロータの逆転時における図５の回転方向検出回路の各部の信号波形図である。
【図７】図１のマイクロコンピュータにて実行されるパルス検出プログラムのフローチャートである。
【図８】図１のマイクロコンピュータにて実行される車輪速度計算プログラムのフローチャートである。
【図９】図８の第１異常検出ルーチンの詳細フローチャートである。
【図１０】図８の第２異常検出ルーチンの前半部分を示す詳細フローチャートである。
【図１１】図８の第２異常検出ルーチンの後半部分を示す詳細フローチャートである。
【図１２】図８の第３異常検出ルーチンの前半部分を示す詳細フローチャートである。
【図１３】図８の第３異常検出ルーチンの後半部分を示す詳細フローチャートである。
【図１４】図８の第４異常検出ルーチンの詳細フローチャートである。
【図１５】(Ａ)(Ｂ)は、第１回転検出信号Ｖsjに基づく車輪速度Ｖxjの検出動作を説明するためのタイムチャートである。
【図１６】(Ａ)(Ｂ)はロータの正転時及び逆転時にマイクロコンピュータに入力されるそれぞれ正常な第１回転検出信号Ｖsjの波形図であり、(Ｃ)は同第１回転検出信号Ｖsjの異常な一例を示す波形図であり、(Ｄ)は同第１回転検出信号Ｖsjの異常な他の例を示す波形図である。
【符号の説明】
【０１０８】
１０ａ〜１０ｄ…ロータ、２０ａ〜２０ｄ…センサユニット、２１ａ、２２ａ…回転センサ、３１ａ〜３１ｄ，３２ａ〜３２ｄ…比較器、４０…マイクロコンピュータ、５０…回転方向検出部。
【図１】
2005114738.tif 000003
【図２】
2005114738.tif 000004
【図３】
2005114738.tif 000005
【図４】
2005114738.tif 000006
【図５】
2005114738.tif 000007
【図６】
2005114738.tif 000008
【図７】
2005114738.tif 000009
【図８】
2005114738.tif 000010
【図９】
2005114738.tif 000011
【図１０】
2005114738.tif 000012
【図１１】
2005114738.tif 000013
【図１２】
2005114738.tif 000014
【図１３】
2005114738.tif 000015
【図１４】
2005114738.tif 000016
【図１５】
2005114738.tif 000017
【図１６】
2005114738.tif 000018