(57)【要約】【課題】ポートへのエッジの入力に起因する割り込み処理の実行が遅れても、回転体の回転方向の判定及び回転体の回転速度の算出を行うことができるようにすること。【解決手段】算出装置２０の電子回路３０は、パルス信号が入力される第１のポート４１及び第２のポート４２と、エッジ時刻情報が保管されるポートレジスタ４３と、オン時間を計測するタイマ４４と、ＣＰＵ３６とを有する。電子回路３０では、第１のポート４１に立ち上がりエッジが入力されると、第１の割り込み処理の実行がＣＰＵ３６に要求され、第２のポート４２に立ち下がりエッジが入力されると、第２の割り込み処理の実行がＣＰＵ３６に要求される。ＣＰＵ３６は、第２の割り込み処理の実行によってＲＡＭ３８に記憶したオン時間を基に車輪１１〜１４の回転方向を判定し、第１の割り込み処理の実行によってＲＡＭ３８に記憶したエッジ時刻情報を基に車輪１１〜１４の回転速度を算出する。【選択図】図１
2019168346.tif 000002
【特許請求の範囲】
【請求項１】
回転体と一体回転するロータと、前記ロータの回転方向及び同ロータの回転速度に応じたパルス信号を出力するパルス信号出力部と、前記パルス信号出力部から出力されたパルス信号が入力される電子回路と、を備え、
パルス信号のレベルが「Ｈｉｇｈ」レベルで保持される期間の長さをパルス幅とした場合、前記パルス信号出力部は、前記ロータの回転速度が大きいほどパルスの発生間隔の短いパルス信号を出力し、前記ロータの回転方向に応じた前記パルス幅のパルスを含むパルス信号を出力するようになっており、
前記電子回路は、
パルス信号が入力される第１のポート及び第２のポートと、
立ち上がりエッジ及び立ち下がりエッジの何れか一方のエッジが前記第１のポートに入力されたときの時刻に関する情報であるエッジ時刻情報が保管されるポートレジスタと、
前記第２のポートに入力されるパルス信号のレベルが「Ｈｉｇｈ」レベルである期間の長さであるオン時間を計測するタイマと、
前記回転体の回転方向の判定、及び、前記回転体の回転速度の算出を行う処理実行部と、を有しており、
前記電子回路では、前記第１のポートに前記一方のエッジが入力されると、前記ポートレジスタに保管されている前記エッジ時刻情報をメモリに記憶させる第１の割り込み処理の実行が前記処理実行部に要求され、前記第２のポートに立ち下がりエッジが入力されると、前記タイマによって計測された前記オン時間を前記メモリに記憶させる第２の割り込み処理の実行が前記処理実行部に要求されるようになっており、
前記処理実行部は、前記第２の割り込み処理の実行によって前記メモリに記憶した前記オン時間を基に前記回転体の回転方向を判定し、前記第１の割り込み処理の実行によって前記メモリに記憶した前記エッジ時刻情報を基に前記回転体の回転速度を算出する
車両の算出装置。
【請求項２】
前記処理実行部は、前記回転体の回転方向を判定する判定処理を規定の算出サイクル毎に実行する
請求項１に記載の車両の算出装置。
【請求項３】
前記処理実行部は、前記回転体の回転速度を算出する速度算出処理を規定の算出サイクル毎に実行する
請求項１又は請求項２に記載の車両の算出装置。
【請求項４】
前記回転体は車両の車輪であり、前記ロータは前記車輪と一体回転する
請求項１〜請求項３のうち何れか一項に記載の車両の算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転体の回転速度の算出及び回転体の回転方向の判定を行う車両の算出装置に関する。
【背景技術】
【０００２】
特許文献１には、クランク軸などの回転体の回転角を算出する算出装置の一例が記載されている。この算出装置が備えるセンサは、回転体の回転方向及び回転体の回転速度に応じたパルス信号を出力する。すなわち、回転体が第１の方向に回転している場合、パルス信号のレベルが「Ｈｉｇｈ」レベルで保持される期間の長さであるパルス幅が第１の幅となる。一方、第１の方向の逆方向である第２の方向に回転体が回転している場合、パルス幅が、第１の幅とは異なる第２の幅となる。そのため、パルス信号のパルス幅を検出することにより、回転体の回転方向を判定することができる。
【０００３】
ここで、図８を参照し、このようなセンサからのパルス信号を電子回路に入力させ、回転体の回転方向を判定させる処理を同電子回路のＣＰＵに実行させる場合の一例について説明する。図８に示すように、電子回路７０は、センサ１００からパルス信号が入力されるポート７１を有している。電子回路７０では、ポート７１に立ち上がりエッジが入力されると、このときの時刻に関する情報がポートレジスタ７２に保管され、且つ、第１の割り込み処理の実行がＣＰＵ７３に要求される。そして、ＣＰＵ７３は、第１の割り込み処理では、ポートレジスタ７２に保管されている情報をポート７１に立ち上がりエッジが入力された時刻に関する情報としてＲＡＭ７４に記憶させる。また、ポート７１に立ち下がりエッジが入力されると、このときの時刻に関する情報がポートレジスタ７２に保管され、且つ、第２の割り込み処理の実行がＣＰＵ７３に要求される。そして、ＣＰＵ７３は、第２の割り込み処理では、ポートレジスタ７２に保管されている情報をポート７１に立ち下がりエッジが入力された時刻に関する情報としてＲＡＭ７４に記憶させる。そして、ＣＰＵ７３は、ＲＡＭ７４に記憶された、ポート７１に立ち上がりエッジが入力された時刻に関する情報と、ポート７１に立ち下がりエッジが入力された時刻に関する情報とを基にパルス幅を算出し、このパルス幅を基に回転体の回転方向を判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３８７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ポート７１に立ち上がりエッジが入力されたために第１の割り込み処理がＣＰＵ７３に要求されても、第１の割り込み処理よりも先に実行が要求されていた割り込み処理があったり、割り込み処理の禁止期間中に第１の割り込み処理が要求されたりした場合、ポート７１に立ち下がりエッジが入力された後で第１の割り込み処理が実行されることがある。この場合、第１の割り込み処理の開始前に、ポートレジスタ７２に保管される情報が、ポート７１に立ち上がりエッジが入力された時刻に関する情報からポート７１に立ち下がりエッジが入力された時刻に関する情報に書き換えられてしまう。このような状態で第１の割り込み処理が実行された場合、第１の割り込み処理によってＲＡＭ７４に記憶される情報は、ポート７１に立ち上がりエッジが入力された時刻に関する情報ではない。その結果、誤った情報に基づいてパルス幅の算出が行われることとなるため、回転体の回転方向を正しく判定できないおそれがある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための車両の算出装置は、回転体と一体回転するロータと、ロータの回転方向及び同ロータの回転速度に応じたパルス信号を出力するパルス信号出力部と、パルス信号出力部から出力されたパルス信号が入力される電子回路と、を備えている。パルス信号のレベルが「Ｈｉｇｈ」レベルで保持される期間の長さをパルス幅とした場合、パルス信号出力部は、ロータの回転速度が大きいほどパルスの発生間隔の短いパルス信号を出力し、ロータの回転方向に応じたパルス幅のパルスを含むパルス信号を出力するようになっている。電子回路は、パルス信号が入力される第１のポート及び第２のポートと、立ち上がりエッジ及び立ち下がりエッジの何れか一方のエッジが第１のポートに入力されたときの時刻に関する情報であるエッジ時刻情報が保管されるポートレジスタと、第２のポートに入力されるパルス信号のレベルが「Ｈｉｇｈ」レベルである期間の長さであるオン時間を計測するタイマと、回転体の回転方向の判定、及び、回転体の回転速度の算出を行う処理実行部と、を有している。また、電子回路では、第１のポートに上記一方のエッジが入力されると、ポートレジスタに保管されているエッジ時刻情報をメモリに記憶させる第１の割り込み処理の実行が処理実行部に要求され、第２のポートに立ち下がりエッジが入力されると、タイマによって計測されたオン時間をメモリに記憶させる第２の割り込み処理の実行が処理実行部に要求されるようになっている。そして、処理実行部は、第２の割り込み処理の実行によってメモリに記憶したオン時間を基に回転体の回転方向を判定し、第１の割り込み処理の実行によってメモリに記憶したエッジ時刻情報を基に回転体の回転速度を算出する。
【０００７】
上記構成によれば、ロータが回転体と一体回転すると、パルス信号出力部からパルス信号が電子回路に入力される。そして、立ち上がりエッジ及び立ち下がりエッジのうちの一方のエッジが第１のポートに入力されると、エッジ時刻情報がポートレジスタに保管され、且つ、第１の割り込み処理の実行が処理実行部に要求される。また、第２のポートに立ち上がりエッジが入力されると、タイマによるオン時間の計測が開始される。そして、第２のポートに立ち下がりエッジが入力されると、タイマによるオン時間の計測が停止され、且つ、第２の割り込み処理の実行が処理実行部に要求される。
【０００８】
第１の割り込み処理の実行タイミングになると、処理実行部によって第１の割り込み処理が実行される。第１の割り込み処理では、ポートレジスタに保管されているエッジ時刻情報がメモリに記憶される。上記構成では、立ち下がりエッジ及び立ち下がりエッジのうちの他方のエッジが入力されても、ポートレジスタに保管されている情報が別の情報に書き換えられない。そのため、第１の割り込み処理の実行によって、上記一方のエッジが第１のポートに入力されたときの時刻に関する情報を、エッジ時刻情報としてメモリに記憶させることができる。その結果、第１の割り込み処理の実行によってメモリに記憶された情報を基に、回転体の回転速度を算出することができる。
【０００９】
また、タイマによって計測されるオン時間は、パルス幅に対応する値であり、且つ、第２の割り込み処理の実行によってメモリに記憶される。そのため、メモリに記憶されたオン時間を基に、回転体の回転方向を判定することができる。
【００１０】
したがって、上記構成によれば、ポートへのエッジの入力に起因する割り込み処理の実行が遅れても、回転体の回転方向の判定及び回転体の回転速度の算出を行うことが可能となる。
【００１１】
なお、回転体の回転方向の判定を第２の割り込み処理で行うようにしてもよいが、この場合には第２の割り込み処理の実行時間が長くなる。このように割り込み処理の実行時間が長くなると、次に実行すべき他の割り込み処理の開始が遅れやすくなる。
【００１２】
そこで、処理実行部は、回転体の回転方向を判定する判定処理を規定の算出サイクル毎に実行することが好ましい。この構成によれば、第２の割り込み処理が回転体の回転方向の判定を含まない分、第２の割り込み処理の実行時間が長くなることを抑制できる。その結果、各割り込み処理の実行タイミングが遅くなることを抑制できる。
【００１３】
また、回転体の回転速度の算出を第１の割り込み処理で行うようにしてもよいが、この場合には第１の割り込み処理の実行時間が長くなる。このように割り込み処理の実行時間が長くなると、次に実行すべき他の割り込み処理の開始が遅れてしまう。
【００１４】
そこで、処理実行部は、回転体の回転速度を算出する速度算出処理を規定の算出サイクル毎に実行することが好ましい。この構成によれば、第１の割り込み処理が回転体の回転速度の算出を含まない分、第１の割り込み処理の実行時間が長くなることを抑制できる。その結果、各割り込み処理の実行タイミングが遅くなることを抑制できる。
【００１５】
近年、各種の車両の走行支援、及び、車両の自動走行を実現するために、車両の移動方向、すなわち車輪の回転方向を精度良く判定できるようにすることが望まれている。そこで、回転体を車両の車輪とし、ロータを車輪と一体回転させるようにしてもよい。この場合、車両の算出装置によって、車輪の回転方向を判定することができるとともに、車輪の回転速度を算出することができる。
【図面の簡単な説明】
【００１６】
【図１】車両の算出装置の一実施形態の概略を示す構成図。
【図２】同算出装置の回転角センサの概略を示す構成図。
【図３】（ａ）〜（ｃ）は、同回転角センサのパルス信号出力部から出力されるパルス信号を示すグラフ。
【図４】ＣＰＵによってＲＡＭの記憶内容が更新される様子を示す模式図。
【図５】ＣＰＵによって実行される速度算出処理を説明するフローチャート。
【図６】ＣＰＵによって実行される判定処理を説明するフローチャート。
【図７】（ａ）〜（ｅ）は、各回転角センサからパルス信号が電子回路に入力される際におけるタイミングチャート。
【図８】従来において、センサと、同センサから入力されたパルス信号を処理する電子回路とを示す模式図。
【発明を実施するための形態】
【００１７】
以下、車両の算出装置の一実施形態を図１〜図７に従って説明する。
図１に示すように、本実施形態の算出装置２０は、複数（本実施形態では４つ）の車輪１１，１２，１３，１４を備える車両に適用される。この算出装置２０は、車輪１１〜１４と同数の回転角センサ２１，２２，２３，２４と、車輪１１〜１４の回転方向の判定及び車輪１１〜１４の回転速度ＶＷの算出を行う電子回路３０とを備えている。本実施形態では、車輪１１〜１４が、「回転体」の一例である。そして、各回転角センサ２１〜２４は、対応する車輪１１〜１４の回転に応じたパルス信号を電子回路３０に出力する。
【００１８】
電子回路３０は、処理実行部の一例であるＣＰＵ３６と、ＣＰＵ３６によって実行される各種のプログラムが記憶されているＲＯＭ３７と、ＣＰＵ３６による処理の結果が一時的に記憶されるＲＡＭ３８とを有している。また、電子回路３０には、回転角センサ２１〜２４と同数の入力系３１，３２，３３，３４が設けられている。すなわち、第１の入力系３１には第１の車輪１１用の回転角センサ２１からパルス信号が入力され、第２の入力系３２には第２の車輪１２用の回転角センサ２２からパルス信号が入力される。また、第３の入力系３３には第３の車輪１３用の回転角センサ２３からパルス信号が入力され、第４の入力系３４には第４の車輪１４用の回転角センサ２４からパルス信号が入力される。
【００１９】
各入力系３１〜３４は、対応する回転角センサ２１〜２４からのパルス信号が入力される第１のポート４１及び第２のポート４２を有している。また、各入力系３１〜３４は、第１のポート４１に立ち上がりエッジが入力されたときの時刻に関する情報であるエッジ時刻情報Ｔｅが保管されるポートレジスタ４３と、第２のポート４２に入力されるパルス信号のレベルが「Ｈｉｇｈ」レベルである期間の長さであるオン時間Ｔｏｎを計測するタイマ４４を有している。
【００２０】
次に、図２及び図３を参照し、回転角センサ２１〜２４について説明する。
図２に示すように、回転角センサ２１〜２４は、対応する車輪１１〜１４と一体回転するロータ２６と、車両の車体に取り付けられている検出系２７とを有している。ロータ２６は、車輪１１〜１４及びロータ２６の回転軸線Ｚを中心とする周方向に沿ってＮ極とＳ極とが交互に着磁されたものである。検出系２７には、ロータ２６の回転に伴う磁界の変化を検出する２つの回転検出子２８１，２８２が設けられている。各回転検出子２８１，２８２は、検出した磁界の変化に応じた信号を出力する。また、検出系２７には、各回転検出子２８１，２８２からの信号が入力されるパルス信号出力部２９が設けられている。パルス信号出力部２９は、両回転検出子２８１，２８２からの信号を基にロータ２６の回転速度及び回転方向に応じたパルス信号を生成し、このパルス信号を出力する。
【００２１】
車両を前進させるための車輪１１〜１４の回転方向である第１の回転方向を前進方向Ａ１といい、車両を後退させるための車輪１１〜１４の回転方向である第２の回転方向を後退方向Ａ２というものとする。後退方向Ａ２は、前進方向Ａ１の反対方向である。車輪１１〜１４及びロータ２６が前進方向Ａ１に回転している場合におけるパルス信号の例が図３（ａ），（ｂ）に図示されている。図３（ｂ）には、図３（ａ）に示すパルス信号がパルス信号出力部２９から出力される際の車輪１１〜１４及びロータ２６の回転速度よりも車輪１１〜１４及びロータ２６の回転速度が大きい場合にパルス信号出力部２９から出力されるパルス信号が図示されている。
【００２２】
図３（ａ），（ｂ）に示すように、パルス信号出力部２９は、車輪１１〜１４及びロータ２６の回転速度が大きいほど、パルスの発生間隔ＩＮＴの短いパルス信号を電子回路３０に出力する。ただし、パルス信号のレベルが「Ｈｉｇｈ」レベルで保持される期間の長さをパルス幅ＰＷとした場合、図３（ａ）に示すパルス信号におけるパルス幅ＰＷ、及び、図３（ｂ）に示すパルス信号におけるパルス幅ＰＷは、第１のパルス幅ＰＷ１と等しい。すなわち、車輪１１〜１４及びロータ２６が前進方向Ａ１に回転している場合、パルス信号出力部２９は、パルス幅ＰＷが第１のパルス幅ＰＷ１となるパルスを含むパルス信号を出力する。
【００２３】
一方、図３（ｃ）には、車輪１１〜１４及びロータ２６が後退方向Ａ２に回転している場合におけるパルス信号の例が図示されている。車輪１１〜１４及びロータ２６が後退方向Ａ２に回転する場合であっても、パルス信号出力部２９は、車輪１１〜１４及びロータ２６の回転速度が大きいほど、パルスの発生間隔ＩＮＴの短いパルス信号を電子回路３０に出力するようになっている。ただし、図３（ｃ）に示すパルス信号に含まれるパルスのパルス幅ＰＷは、第１のパルス幅ＰＷ１よりも短い第２のパルス幅ＰＷ２と等しい。すなわち、本実施形態では、パルス信号出力部２９は、車輪１１〜１４及びロータ２６の回転方向が後退方向Ａ２である場合には、同回転方向が前進方向Ａ１である場合とはパルス幅ＰＷの異なるパルスを含むパルス信号を出力する。
【００２４】
次に、図１、及び４〜図６を参照し、電子回路３０で実行される各種の処理について説明する。
図１に示すように、対をなす第１のポート４１及び第２のポート４２には、同一のパルス信号が入力される。例えば、第１の入力系３１の第１のポート４１及び第２のポート４２には、第１の車輪１１用の回転角センサ２１からのパルス信号が入力される。そして、第１のポート４１に立ち上がりエッジが入力されると、ポートレジスタ４３には、第１のポート４１に立ち上がりエッジが入力されたときの時刻に関する情報であるエッジ時刻情報Ｔｅが保管される。すなわち、ポートレジスタ４３に保管される情報は、第１のポート４１に立ち上がりエッジが入力される毎に書き換えられる。また、第１のポート４１に立ち上がりエッジが入力されると、第１の割り込み処理の実行がＣＰＵ３６に要求される。
【００２５】
第２のポート４２に立ち上がりエッジが入力されると、タイマ４４によってオン時間Ｔｏｎの計測が開始される。そして、第２のポート４２に立ち下がりエッジが入力されると、タイマ４４によるオン時間Ｔｏｎの計測が停止される。また、第２のポート４２に立ち下がりエッジが入力されると、第２の割り込み処理の実行がＣＰＵ３６に要求される。
【００２６】
図４に示すように、ＣＰＵ３６は、第１の割り込み処理では、ポートレジスタ４３に保管されているエッジ時刻情報Ｔｅをメモリの一例であるＲＡＭ３８の所定領域に記憶させ、且つ、ＲＡＭ３８に記憶されている更新カウンタＣｕを「１」だけインクリメントさせる。具体的には、ＲＡＭ３８には、第１の車輪１１用の記憶領域３８１、第２の車輪１２用の記憶領域３８２、第３の車輪１３用の記憶領域３８３及び第４の車輪１４用の記憶領域３８４が予め用意されている。そして、例えば第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたために実行が要求された第１の割り込み処理では、ＣＰＵ３６は、第１の入力系３１のポートレジスタ４３に保管されているエッジ時刻情報Ｔｅを第１の車輪１１用の記憶領域３８１に上書き記憶させ、且つ、記憶領域３８１の更新カウンタＣｕを更新する。なお、第１の入力系３１以外の他の入力系３２〜３４の第１のポート４１に立ち上がりエッジが入力されたために実行が要求される第１の割り込み処理の内容は、第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたために実行が要求される第１の割り込み処理の内容と同等であるため、その説明を割愛する。
【００２７】
図４に示すように、ＣＰＵ３６は、第２の割り込み処理では、タイマ４４で計測されたオン時間ＴｏｎをＲＡＭ３８の所定領域に記憶させる。例えば第１の入力系３１の第２のポート４２に立ち下がりエッジが入力されたために実行が要求された第２の割り込み処理では、ＣＰＵ３６は、第１の入力系３１のタイマ４４で計測されたオン時間Ｔｏｎを第１の車輪１１用の記憶領域３８１に上書き記憶させる。なお、第１の入力系３１以外の他の入力系３２〜３４の第２のポート４２に立ち下がりエッジが入力されたために実行が要求される第２の割り込み処理の内容は、第１の入力系３１の第２のポート４２に立ち下がりエッジが入力されたために実行が要求された第２の割り込み処理の内容と同等であるため、その説明を割愛する。
【００２８】
ＣＰＵ３６は、第１の割り込み処理及び第２の割り込み処理の他、車輪１１〜１４の回転方向を判定する判定処理、及び、車輪１１〜１４の回転速度ＶＷを算出する速度算出処理を実行する。本実施形態では、ＣＰＵ３６は、判定処理及び速度算出処理を規定の算出サイクル毎に実行する。すなわち、車輪１１〜１４の回転方向の判定及び車輪１１〜１４の回転速度ＶＷの算出は、第１の割り込み処理及び第２の割り込み処理とは別に行われる。なお、算出サイクルの時間的な長さは、第１のパルス幅ＰＷ１及び第２のパルス幅ＰＷ２のうちの大きい方のパルス幅よりも十分に長い。
【００２９】
図５には、速度算出処理を説明するフローチャートが図示されている。速度算出処理において、ＣＰＵ３６は、第Ｎの車輪用の更新カウンタＣｕをＲＡＭ３８から読み出す（Ｓ１１）。第Ｎの車輪用の更新カウンタＣｕとは、ＲＡＭ３８における第Ｎの車輪用の記憶領域に記憶されている更新カウンタＣｕのことである。例えば係数Ｎが「１」である場合、ＣＰＵ３６は、第１の車輪１１用の記憶領域３８１から更新カウンタＣｕを読み出す。
【００３０】
続いて、ＣＰＵ３６は、読み出した第Ｎの車輪用の更新カウンタＣｕを基に、第Ｎの車輪の回転速度ＶＷを算出する（Ｓ１２）。更新カウンタＣｕは、速度算出処理が前回に実行された時点から速度算出処理が今回実行されるまでの間で第１のポート４１に立ち上がりエッジが入力された回数である。パルス信号出力部２９から出力されるパルス信号では、車輪１１〜１４の回転速度が大きいほどパルスの発生間隔ＩＮＴが短い。そのため、更新カウンタＣｕが大きいほど、車輪１１〜１４の回転速度が大きいということができる。したがって、ステップＳ１２では、ＣＰＵ３６は、読み出した更新カウンタＣｕが大きいほど回転速度ＶＷが大きくなるように第Ｎの車輪の回転速度ＶＷを算出する。
【００３１】
そして、ＣＰＵ３６は、第Ｎの車輪用の更新カウンタＣｕを「０」にリセットする（Ｓ１３）。すなわち、ＣＰＵ３６は、ＲＡＭ３８における第Ｎの車輪用の記憶領域に記憶されている更新カウンタＣｕを「０」にリセットする。例えば係数Ｎが「１」である場合、ＣＰＵ３６は、第１の車輪１１用の記憶領域３８１の更新カウンタＣｕを「０」にリセットする。続いて、ＣＰＵ３６は、係数Ｎを「１」だけインクリメントし（Ｓ１４）、係数Ｎが「４」よりも大きいか否かを判定する（Ｓ１５）。本実施形態では、回転角センサ２１〜２４の数が「４つ」であるため、ステップＳ１５では、係数Ｎと「４」とを用いた判定が行われる。係数Ｎが「４」以下である場合、今回の速度算出処理での全ての車輪１１〜１４の回転速度ＶＷの算出が完了したとの判定がなされない。一方、係数Ｎが「４」よりも大きい場合は、今回の速度算出処理での全ての車輪１１〜１４の回転速度ＶＷの算出が完了したと判定する。
【００３２】
そのため、係数Ｎが「４」以下である場合（Ｓ１５：ＮＯ）、ＣＰＵ３６は、前述したステップＳ１１の処理を実行する。一方、係数Ｎが「４」よりも大きい場合（Ｓ１５：ＹＥＳ）、ＣＰＵ３６は、係数Ｎを「１」と等しくする（Ｓ１６）。その後、ＣＰＵ３６は、速度算出処理を終了する。
【００３３】
図６には、判定処理を説明するフローチャートが図示されている。判定処理において、ＣＰＵ３６は、第Ｍの車輪用のオン時間ＴｏｎをＲＡＭ３８から読み出す（Ｓ２１）。第Ｍの車輪用のオン時間Ｔｏｎとは、ＲＡＭ３８における第Ｍの車輪用の記憶領域に記憶されているオン時間Ｔｏｎのことである。例えば係数Ｍが「１」である場合、ＣＰＵ３６は、第１の車輪１１用の記憶領域３８１からオン時間Ｔｏｎを読み出す。続いて、ＣＰＵ３６は、読み出した第Ｍの車輪用のオン時間Ｔｏｎが方向判定時間ＴｏｎＴｈ以上であるか否かを判定する（Ｓ２２）。方向判定時間ＴｏｎＴｈは、第１のパルス幅ＰＷ１よりも短く、且つ、第２のパルス幅ＰＷ２よりも長い時間に設定されている。そのため、第Ｍの車輪用のオン時間Ｔｏｎが方向判定時間ＴｏｎＴｈ以上である場合（Ｓ２２：ＹＥＳ）、ＣＰＵ３６は、第Ｍの車輪の回転方向が前進方向Ａ１であると判定する（Ｓ２３）。そして、ＣＰＵ３６は、その処理を後述するステップＳ２５に移行する。一方、第Ｍの車輪用のオン時間Ｔｏｎが方向判定時間ＴｏｎＴｈ未満である場合（Ｓ２２：ＮＯ）、ＣＰＵ３６は、第Ｍの車輪の回転方向が後退方向Ａ２であると判定する（Ｓ２４）。そして、ＣＰＵ３６は、その処理を次のステップＳ２５に移行する。
【００３４】
ステップＳ２５において、ＣＰＵ３６は、係数Ｍを「１」だけインクリメントする。続いて、ＣＰＵ３６は、係数Ｍが「４」よりも大きいか否かを判定する（Ｓ２６）。本実施形態では、回転角センサ２１〜２４の数が「４つ」であるため、ステップＳ２６では、係数Ｍと「４」とを用いた判定が行われる。そのため、係数Ｍが「４」以下である場合、今回の判定処理での全ての車輪１１〜１４の回転方向の判定が完了したとの判定がなされない。一方、係数Ｍが「４」よりも大きい場合は、今回の判定処理での全ての車輪１１〜１４の回転方向の判定が完了したと判定する。そして、係数Ｍが「４」以下である場合（Ｓ２６：ＮＯ）、ＣＰＵ３６は、前述したステップＳ２１の処理を実行する。一方、係数Ｍが「４」よりも大きい場合（Ｓ２６：ＹＥＳ）、ＣＰＵ３６は、係数Ｍを「１」と等しくする（Ｓ２７）。その後、ＣＰＵ３６は、判定処理を終了する。
【００３５】
次に、図７を参照し、本実施形態の作用及び効果について説明する。なお、図７（ｅ）において、「ＰＩＰ１」は規定の算出サイクル毎に実行される判定処理のことを表し、「ＰＩＰ２」は規定の算出サイクル毎に実行される速度算出処理のことを表している。また、「ＩＰ１」は第１の割り込み処理のことを表し、「ＩＰ２」は第２の割り込み処理のことを表している。判定処理（ＰＩＰ１）及び速度算出処理（ＰＩＰ２）の実行途中に当該処理で使用されるデータ（エッジ時刻情報Ｔｅ、更新カウンタＣｕ及びオン時間Ｔｏｎなど）が更新されると、当該処理での演算結果を誤る可能性がある。そのため、判定処理（ＰＩＰ１）及び速度算出処理（ＰＩＰ２）の実行途中では、第１の割り込み処理（ＩＰ１）及び第２の割り込み処理（ＩＰ２）の実行が禁止される。具体的には、例えば判定処理（ＰＩＰ１）の最初で割り込みが禁止された後に判定処理（ＰＩＰ１）の実行中に立ち上がりエッジが入力された場合、立ち上がりエッジが入力された時刻に関する情報がポートレジスタ４３に保管され、第１の割り込み処理（ＩＰ１）の実行が要求される。しかし、ＣＰＵ３６では、割り込み禁止が解除されるまで第１の割り込み処理（ＩＰ１）の実行要求を受け付けない。なお、図７に示す例では、判定処理（ＰＩＰ１）と速度算出処理（ＰＩＰ２）とを連続した処理として扱い、判定処理（ＰＩＰ１）の実行開始時に割り込みが禁止され、速度算出処理（ＰＩＰ２）の実行終了時に割り込み禁止が解除される。
【００３６】
図７（ａ），（ｂ），（ｃ），（ｄ），（ｅ）に示す例では、判定処理が実行されている時刻ｔ１１で、第１の入力系３１の第１及び第２の各ポート４１，４２に立ち上がりエッジが入力される。すると、第１の入力系３１のポートレジスタ４３には時刻ｔ１１に関する情報が第１のポート４１に立ち上がりエッジが入力された時刻に関する情報として保管され、第１の入力系３１のタイマ４４によるオン時間Ｔｏｎの計測が開始される。また、この際には第１の割り込み処理の実行がＣＰＵ３６に要求される。しかし、時刻ｔ１１では、判定処理が実行中であり、且つ速度算出処理が未だ実行されていないため、第１の割り込み処理は未だ実行されない。
【００３７】
また、その後の時刻ｔ１２で、第２の入力系３２の第１及び第２の各ポート４１，４２に立ち上がりエッジが入力される。すると、第２の入力系３２のポートレジスタ４３には、時刻ｔ１２に関する情報が第１のポート４１に立ち上がりエッジが入力された時刻に関する情報として保管され、第２の入力系３２のタイマ４４によるオン時間Ｔｏｎの計測が開始される。また、この際には第１の割り込み処理の実行がＣＰＵ３６に要求される。しかし、時刻ｔ１２では、判定処理が未だ実行中であり、さらには速度算出処理、及び、第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理が未だ実行されていない。そのため、第２の入力系３２の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理は未だ実行されない。
【００３８】
そして、判定処理の実行が完了すると、速度算出処理の実行が開始される。速度算出処理が実行中である時刻ｔ１３で、第３の入力系３３の第１及び第２の各ポート４１，４２に立ち上がりエッジが入力される。すると、第３の入力系３３のポートレジスタ４３には時刻ｔ１３に関する情報が第１のポート４１に立ち上がりエッジが入力された時刻に関する情報として保管され、第３の入力系３３のタイマ４４によるオン時間Ｔｏｎの計測が開始される。また、この際には第１の割り込み処理の実行がＣＰＵ３６に要求される。
【００３９】
さらに、その後の時刻ｔ１４で、第４の入力系３４の第１及び第２の各ポート４１，４２に立ち上がりエッジが入力される。すると、第４の入力系３４のポートレジスタ４３には時刻ｔ１４に関する情報が第１のポート４１に立ち上がりエッジが入力された時刻に関する情報として保管され、第４の入力系３４のタイマ４４によるオン時間Ｔｏｎの計測が開始される。また、この際には第１の割り込み処理の実行がＣＰＵ３６に要求される。
【００４０】
図７に示す例では、時刻ｔ１４で、第１の入力系３１の第１及び第２の各ポート４１，４２に立ち下がりエッジが入力される。すると、第１の入力系３１のタイマ４４によるオン時間Ｔｏｎの計測が停止され、且つ、第２の割り込み処理の実行が要求される。しかし、この時点では、速度算出処理が未だ実行中であり、且つ、各第１の割り込み処理が未だ実行されていない。そのため、第２の割り込み処理は未だ実行されない。
【００４１】
その後の時刻ｔ１５で速度算出処理の実行が完了すると、第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理の実行が開始される。時刻ｔ１５では、第１の入力系３１の第１及び第２の各ポート４１，４２には立ち下がりエッジが既に入力されている。しかし、本実施形態では、第１のポート４１に立ち下がりエッジが入力されても、ポートレジスタ４３に保管されている情報は書き換えられない。そのため、第１の入力系３１の第１のポート４１に立ち下がりエッジが入力された後で第１の割り込み処理が実行されても、時刻ｔ１１に関する情報をＲＡＭ３８における第１の車輪１１用の記憶領域３８１に記憶させることができる。
【００４２】
時刻ｔ１６で第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理の実行が完了すると、第２の入力系３２の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理が実行される。この第１の割り込み処理では、時刻ｔ１２に関する情報がＲＡＭ３８における第２の車輪１２用の記憶領域３８２に記憶される。
【００４３】
本実施形態では、複数の回転角センサ２１〜２４からパルス信号が電子回路３０にそれぞれ入力されるようになっている。そして、各第１のポート４１に立ち上がりエッジが入力される毎に、第１の割り込み処理の実行がＣＰＵ３６に要求される。そのため、第１の割り込み処理の実行がＣＰＵ３６に要求された時点と、第１の割り込み処理がＣＰＵ３６で実際に実行される時点とのタイムラグが大きくなりやすい。この点、本実施形態では、一つの回転角センサに対して２つのポート４１，４２が設けられており、各ポート４１，４２のうちの第１のポート４１に立ち下がりエッジが入力されても、ポートレジスタ４３に保管される情報が書き換えられないようになっている。そのため、第１のポート４１に立ち下がりエッジが入力された後で第１の割り込み処理が実行されたとしても、第１のポート４１に立ち上がりエッジが入力されたときの時刻に関する情報をＲＡＭ３８に記憶させることができる。そのため、速度算出処理によって、車輪１１〜１４の回転速度ＶＷを算出することができる。
【００４４】
時刻ｔ１７で第４の入力系３４の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理の実行が完了すると、第１の入力系３１の第２のポート４２に立ち下がりエッジが入力されたことに起因する第２の割り込み処理が実行される。この第２の割り込み処理では、第１の入力系３１のタイマ４４によって計測されたオン時間Ｔｏｎが、ＲＡＭ３８における第１の車輪１１用の記憶領域３８１に記憶される。そして、時刻ｔ１８で第１の入力系３１の第２のポート４２に立ち下がりエッジが入力されたことに起因する第２の割り込み処理の実行が完了すると、第２の入力系３２の第２のポート４２に立ち下がりエッジが入力されたことに起因する第２の割り込み処理が実行される。この第２の割り込み処理では、第２の入力系３２のタイマ４４によって計測されたオン時間Ｔｏｎが、ＲＡＭ３８における第２の車輪１２用の記憶領域３８２に記憶される。
【００４５】
本実施形態では、第２の割り込み処理の実行によって、第２のポート４２に入力されるパルス信号に含まれるパルス幅ＰＷに対応するオン時間ＴｏｎがＲＡＭ３８に記憶される。そのため、第１のポート４１に立ち下がりエッジが入力された時刻に関する情報をポートレジスタ４３に保管させなくても、判定処理の実行によって車輪１１〜１４の回転方向を判定することができる。
【００４６】
なお、本実施形態では、上記の効果に加え、以下に示す効果をさらに得ることができる。
（１）車輪１１の回転方向の判定を第２の割り込み処理で行うようにした場合、第２の割り込み処理の実行時間が長くなる。このように第２の割り込み処理の実行時間が長くなると、次に実行すべき他の割り込み処理の開始が遅れやすくなる。この点、本実施形態では、第２の割り込み処理ではなく、規定の算出サイクル毎に実行される処理で、車輪１１の回転方向の判定が行われるようになっている。これにより、第２の割り込み処理が車輪１１〜１４の回転方向の判定を含まない分、第２の割り込み処理の実行時間が長くなることを抑制できる。その結果、各割り込み処理の実行タイミングが遅くなることを抑制できる。
【００４７】
（２）車輪１１〜１４の回転速度ＶＷの算出を第１の割り込み処理で行うようにした場合、第１の割り込み処理の実行時間が長くなる。このように第１の割り込み処理の実行時間が長くなると、次に実行すべき他の割り込み処理の開始が遅れてしまう。この点、本実施形態では、第１の割り込み処理ではなく、規定の算出サイクル毎に実行される処理で、車輪１１〜１４の回転速度ＶＷの算出が行われるようになっている。これにより、第１の割り込み処理が車輪１１〜１４の回転速度ＶＷの算出を含まない分、第１の割り込み処理の実行時間が長くなることを抑制できる。その結果、各割り込み処理の実行タイミングが遅くなることを抑制できる。
【００４８】
上記実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、判定処理の実行サイクルが速度算出処理の実行サイクルと同じであった。しかし、判定処理の実行サイクルと速度算出処理の実行サイクルとが互いに相違していてもよい。この場合、判定処理と速度算出処理とが続けて実行されなくなる。そのため、判定処理の実行開始時に割り込み処理の実行が禁止され、同判定処理の実行終了時に割り込み処理の実行禁止が解除されることとなる。同様に、速度算出処理の実行開始時に割り込み処理の実行が禁止され、同速度算出処理の実行終了時に割り込み処理の実行禁止が解除されることとなる。
【００４９】
・車輪１１〜１４の回転方向の判定を第２の割り込み処理の中で行うようにしてもよい。この場合、例えば第１の入力系３１の第２のポート４２に立ち下がりエッジが入力されたことに起因する第２の割り込み処理では、タイマ４４によって計測されたオン時間ＴｏｎをＲＡＭ３８の第１の車輪１１用の記憶領域３８１に記憶させ、同記憶領域３８１に記憶されたオン時間Ｔｏｎを基に第１の車輪１１の回転方向を判定するようにしてもよい。同様に、例えば第２の入力系３２の第２のポート４２に立ち下がりエッジが入力されたことに起因する第２の割り込み処理では、タイマ４４によって計測されたオン時間ＴｏｎをＲＡＭ３８の第２の車輪１２用の記憶領域３８２に記憶させ、同記憶領域３８２に記憶されたオン時間Ｔｏｎを基に第２の車輪１２の回転方向を判定するようにしてもよい。
【００５０】
・車輪１１〜１４の回転速度ＶＷの算出を第１の割り込み処理の中で行うようにしてもよい。この場合、第１の入力系３１の第１のポート４１に立ち上がりエッジが入力されたことに起因する第１の割り込み処理では、ポートレジスタ４３に保管されているエッジ時刻情報ＴｅをＲＡＭ３８の第１の車輪１１用の記憶領域３８１に記憶させ、同記憶領域３８１に記憶されているエッジ時刻情報Ｔｅを基に第１の車輪１１の回転速度ＶＷを算出するようにしてもよい。
【００５１】
・車輪１１〜１４の回転速度ＶＷを、上記実施形態で説明した方法とは異なる方法で算出するようにしてもよい。例えば、エッジ時刻情報Ｔｅの最新値とエッジ時刻情報Ｔｅの前回値とをＲＡＭ３８に記憶させるようにし、ＲＡＭ３８に記憶されているエッジ時刻情報Ｔｅの最新値とエッジ時刻情報Ｔｅの前回値とを基に、第１のポート４１に立ち上がりエッジが入力される間隔を算出する。そして、当該間隔が短いほど車輪の回転速度ＶＷが大きくなるように、回転速度ＶＷを算出するようにしてもよい。
【００５２】
・第１のポート４１に立ち下がりエッジが入力されたときに、そのときの時刻に関する情報をエッジ時刻情報Ｔｅとしてポートレジスタ４３に保管し、第１の割り込み処理の実行をＣＰＵ３６に要求するようにしてもよい。この場合、第１のポート４１に立ち上がりエッジが入力されても、ポートレジスタ４３に保管されている情報が書き換えられない。そして、速度算出処理では、ＲＡＭ３８に記憶されている、第１のポート４１に立ち下がりエッジが入力されたときの時刻に関する情報を基に、車輪の回転速度ＶＷが算出されることとなる。
【００５３】
・回転角センサ２１〜２４は、ロータ２６の回転速度及び回転方向に応じたパルス信号を出力できる構成であれば、上記実施形態で説明した構成とは別の構成であってもよい。
・上記実施形態では、全ての車輪１１〜１４に対して、ロータ２６の回転速度及び回転方向に応じたパルス信号を出力できる回転角センサが設けられている。しかし、各車輪１１〜１４のうちの一部の車輪に対してはロータの回転速度及び回転方向に応じたパルス信号を出力できる回転角センサを設け、残りの車輪に対してはロータの回転速度に応じてパルスの発生間隔が変わるものの、回転方向によってパルス幅が変化しないタイプの回転角センサを設けるようにしてもよい。この場合であっても、一部の車輪に対して設けられている回転角センサから出力されるパルス信号を基に、車両の移動方向を判定することができる。
【００５４】
・上記実施形態では、車両の算出装置を、車輪１１〜１４用の回転角センサ２１〜２４を備える算出装置２０に具体化したが、車輪以外の他の回転体用の回転角センサを備える装置に具体化してもよい。例えば、車両の算出装置を、車載エンジンのクランク軸用の回転角センサを備える装置に具体化してもよい。この場合、算出装置は、回転体の一例であるクランク軸の回転速度の算出、及び、クランク軸の回転方向の判定を行うことができる。また、車両の算出装置を、車載の電動モータの回転軸用の回転角センサを備える装置に具体化してもよい。この場合、算出装置は、回転体の一例である電動モータの回転軸の回転速度の算出、及び、回転軸の回転方向の判定を行うことができる。
【符号の説明】
【００５５】
１１〜１４…回転体の一例である車輪、２０…算出装置、２６…ロータ、２９…パルス信号出力部、３０…電子回路、３６…処理実行部の一例であるＣＰＵ、３８…メモリの一例であるＲＡＭ、４１…第１のポート、４２…第２のポート、４３…ポートレジスタ、４４…タイマ。
【図１】
2019168346.tif 000003
【図２】
2019168346.tif 000004
【図３】
2019168346.tif 000005
【図４】
2019168346.tif 000006
【図５】
2019168346.tif 000007
【図６】
2019168346.tif 000008
【図７】
2019168346.tif 000009
【図８】
2019168346.tif 000010