(57)【特許請求の範囲】
【請求項１】
車両に搭載された装置（１６）の駆動源となるモータ（２７）と、前記モータ（２７）の通電相を順次切り換えることで該モータ（２７）を回転駆動するバイワイヤ制御回路（３４）とを備えたモータ制御装置において、
前記モータ（２７）の駆動を許可する場合に駆動許可コードを前記バイワイヤ制御回路（３４）へ送信する他の制御回路（１８）を備え、
前記バイワイヤ制御回路（３４）は、各アドレスに対応する通電相アドレスを規定するテーブルＸと、各通電相アドレスに対応する通電相を規定すると共に前記モータ（２７）を正回転方向又は逆回転方向に回転駆動する順序（以下「正しい順序」という）とは異なる順序（以下「フェールセーフ用の順序」という）で並ぶように前記通電相が配列されているテーブルＹとを予め記憶しておき、前記駆動許可コードを受信している場合に、前記駆動許可コードに基づいて前記テーブルＸにアクセスするためのアドレスを演算し、前記テーブルＸを参照して前記アドレスに対応する通電相アドレスを演算することで前記テーブルＹに前記正しい順序でアクセスするための通電相アドレスを演算し、前記テーブルＹを参照して前記通電相アドレスに対応する通電相を決定することで前記正しい順序で前記通電相を切り換えることを特徴とするモータ制御装置。
【請求項２】
前記テーブルＹは、前記フェールセーフ用の順序として、該フェールセーフ用の順序で前記通電相が切り換えられた場合に切換前後で各相の通電ＯＮと通電ＯＦＦが逆になる切換パターンが複数回連続するように前記通電相が切り換わる順序で並ぶように前記通電相が配列されていることを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記テーブルＹは、前記フェールセーフ用の順序として、該フェールセーフ用の順序で前記通電相が切り換えられた場合に前記モータ（２７）が正逆方向に振動するように前記通電相が切り換わる順序で並ぶように前記通電相が配列されていることを特徴とする請求項１に記載のモータ制御装置。
【請求項４】
前記テーブルＹは、前記フェールセーフ用の順序として、該フェールセーフ用の順序で前記通電相が切り換えられた場合に前記モータ（２７）が安全側の一方向に微小に回転するように前記通電相が切り換わる順序で並ぶように前記通電相が配列されていることを特徴とする請求項１に記載のモータ制御装置。
【請求項５】
前記テーブルＹは、前記フェールセーフ用の順序として、該フェールセーフ用の順序で前記通電相が切り換えられた場合に前記正しい順序の各通電相パターンの間に全相が通電ＯＮとなる通電相パターンを挟んだ切換パターンで前記通電相が切り換わる順序で並ぶように前記通電相が配列されていることを特徴とする請求項１に記載のモータ制御装置。
【請求項６】
前記通電相アドレスは、英数字で構成され、
前記テーブルＹは、前記通電相アドレスが不連続な順序で並ぶように配列されていることを特徴とする請求項１乃至５のいずれかに記載のモータ制御装置。
【請求項７】
前記バイワイヤ制御回路（３４）は、前記駆動許可コードと通電相パターン番号とに基づいて四則演算と論理演算のうちの少なくとも一方によって前記アドレスを演算することを特徴とする請求項１乃至６のいずれかに記載のモータ制御装置。
【請求項８】
前記バイワイヤ制御回路（３４）は、前記モータ（２７）の駆動条件に応じて前記テーブルＸと前記テーブルＹのうちの少なくとも一方を切り換えることを特徴とする請求項１乃至７のいずれかに記載のモータ制御装置。
【請求項９】
前記他の制御回路（１８）は、前記モータ（２７）の駆動条件に応じて前記駆動許可コードを切り換え、
前記バイワイヤ制御回路（３４）は、前記駆動許可コードに応じて前記テーブルＸと前記テーブルＹのうちの少なくとも一方を切り換えることを特徴とする請求項１乃至８のいずれかに記載のモータ制御装置。
【請求項１０】
前記他の制御回路（１８）は、前記モータ（２７）の駆動を禁止する場合に駆動禁止コードを前記バイワイヤ制御回路（３４）へ送信し、
前記駆動禁止コードに基づいて演算されるアドレスに対しては全相無通電又は全相通電となるように前記駆動禁止コードと前記テーブルＸと前記テーブルＹが設定されていることを特徴とする請求項１乃至９のいずれかに記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された装置の駆動源となるモータの通電相を順次切り換えることでモータを回転駆動するモータ制御装置に関する発明である。
【背景技術】
【０００２】
近年、自動車においても、省スペース化、組立性向上、制御性向上等の要求を満たすために、機械的な駆動システムを、モータによって電気的に駆動するバイワイヤシステムに変更する事例が増加する傾向にある。
【０００３】
このようなバイワイヤシステムにおいては、例えば、特許文献１（特開２００６−３３６６９１号公報）に記載されたものがある。このものは、駆動源となるモータを制御するバイワイヤ制御回路とは別に設けた監視制御回路（例えばエンジン制御回路）によって、所定の監視情報に基づいてバイワイヤシステムを監視する。そして、監視制御回路がバイワイヤシステムの異常を確認した場合に、バイワイヤ制御回路によるモータの制御を禁止する（例えばスイッチ装置をオフしてモータへの通電を禁止する）ようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３６６９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１の技術では、監視制御回路が所定の監視情報に基づいて異常を確認した場合にモータの制御を禁止するだけであり、システム異常時（例えばノイズや電源電圧低下等による異常信号の発生時等）の安全性を十分に高めることができない可能性がある。
【０００６】
モータの通電相を順次切り換えることでモータを回転駆動するバイワイヤ制御回路を備えたシステムにおいては、次のようにしてモータの通電相を正しい順序で切り換えるようにしたものがある。各通電相パターン番号に対応する通電相を正しい順序で並べて配列したテーブルを予めバイワイヤ制御回路に記憶しておく。バイワイヤ制御回路は、モータを回転駆動する際に、このテーブルを参照して通電相パターン番号に対応する通電相を決定することで、モータを回転駆動する正しい順序で通電相を切り換える。
【０００７】
このようなシステムでは、万一、ＲＡＭ化け（ＲＡＭの異常によるデータ化け）等により通電相パターン番号が１ずつインクリメントされる異常が発生すると、モータを回転駆動する正しい順序で通電相が切り換えられて、モータが回転駆動されてしまう可能性がある。
【０００８】
そこで、本発明が解決しようとする課題は、モータの通電相を順次切り換えることでモータを回転駆動するシステムにおいて、システム異常時の安全性を向上させることができるモータ制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に係る発明は、車両に搭載された装置（１６）の駆動源となるモータ（２７）と、このモータ（２７）の通電相を順次切り換えることで該モータ（２７）を回転駆動するバイワイヤ制御回路（３４）とを備えたモータ制御装置において、モータ（２７）の駆動を許可する場合に駆動許可コードをバイワイヤ制御回路（３４）へ送信する他の制御回路（１８）を備え、バイワイヤ制御回路（３４）は、各アドレスに対応する通電相アドレスを規定するテーブルＸと、各通電相アドレスに対応する通電相を規定すると共にモータ（２７）を正回転方向又は逆回転方向に回転駆動する順序（以下「正しい順序」という）とは異なる順序（以下「フェールセーフ用の順序」という）で並ぶように通電相が配列されているテーブルＹとを予め記憶しておき、駆動許可コードを受信している場合に、駆動許可コードに基づいてテーブルＸにアクセスするためのアドレスを演算し、テーブルＸを参照してアドレスに対応する通電相アドレスを演算することでテーブルＹに正しい順序でアクセスするための通電相アドレスを演算し、テーブルＹを参照して通電相アドレスに対応する通電相を決定することで正しい順序で通電相を切り換えるようにしたものである。
【００１０】
この構成では、他の制御回路がモータの駆動を許可していない場合、つまり、他の制御回路が駆動許可コードをバイワイヤ制御回路へ送信していない場合には、バイワイヤ制御回路は、テーブルＸにアクセスするためのアドレスを算出することができない。これにより、バイワイヤ制御回路は、テーブルＹにアクセスするための通電相アドレスも算出することができないため、通電相を決定することができず、モータを回転駆動することができない。従って、他の制御回路がモータの駆動を許可していない場合（駆動許可コードを送信していない場合）に、モータが回転駆動される可能性を極めて低くすることができる。
【００１１】
しかも、テーブルＹは、通電相が正しい順序とは異なるフェールセーフ用の順序で並ぶように配列され、テーブルＸを参照して通電相アドレスを演算することで、テーブルＹに正しい順序でアクセスするための通電相アドレスを演算するようになっているため、万一、ＲＡＭ化け（ＲＡＭの異常によるデータ化け）等により通電相アドレスが１ずつインクリメントされる異常が発生しても、テーブルＹに正しい順序でアクセスすることを防止できる。これにより、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータを回転駆動する正しい順序で通電相が切り換えられることがなく、モータが通常通りに回転駆動されてしまうことを防止でき、システム異常時の安全性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は本発明の一実施例における自動変速制御システムの概略構成を示す図である。
【図２】図２はレンジ切換装置の斜視図である。
【図３】図３は通電相設定機能を概略的に示すブロック図である。
【図４】図４はテーブルＸの一例を示す図である。
【図５】図５はテーブルＹの一例（その１）を示す図である。
【図６】図６はテーブルＹの一例（その２）を示す図である。
【図７】図７はテーブルＹの一例（その３）を示す図である。
【図８】図８はテーブルＹの一例（その４）を示す図である。
【図９】図９はテーブルＹの一例（その５）を示す図である。
【図１０】図１０は駆動禁止用のテーブルＸの一例を示す図である。
【図１１】図１１は駆動禁止用のテーブルＹの一例（その１）を示す図である。
【図１２】図１２は駆動禁止用のテーブルＹの一例（その２）を示す図である。
【図１３】図１３は通電相設定ルーチンの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態を具体化した一実施例を説明する。
まず、図１に基づいて車両の自動変速制御システムの概略構成を説明する。
エンジン１１の出力軸（クランク軸）に、自動変速機１２の入力軸が連結されている。この自動変速機１２には、変速歯車機構（図示せず）と油圧制御回路１３等が設けられている。変速歯車機構には、変速段（変速比）を切り換えるための複数のクラッチやブレーキ等の摩擦係合要素（図示せず）が設けられている。また、油圧制御回路１３には、摩擦係合要素に作用させる油圧を制御する油圧制御弁１４や、摩擦係合要素の作動油の油圧回路を切り換えるマニュアル弁１７が設けられている。このマニュアル弁１７は、レンジセレクタ１５の操作に連動してレンジ切換装置１６によって駆動される。
【００１４】
エンジン１１を制御するエンジンＥＣＵ１８は、アクセル開度（アクセルペダルの操作量）を検出するアクセルセンサ１９の出力信号等に基づいて、スロットル装置２０のスロットル開度（スロットルバルブの開度）や燃料噴射弁２１の燃料噴射量等を制御する。ここで、「ＥＣＵ」は「電子制御ユニット」を意味する（以下、同様）。
【００１５】
自動変速機１２の変速動作を制御するＡＴ−ＥＣＵ２２は、油圧制御回路１３の各油圧制御弁１４の開閉動作を制御して各摩擦係合要素に供給する油圧を制御することで自動変速機１２の変速段を目標変速段に切り換える。
【００１６】
自動変速機１２のレンジ切換動作を制御するＳＢＷ−ＥＣＵ２３は、レンジセレクタ１５で選択されたレンジを検出するセレクタセンサ２４の出力信号に基づいてレンジ切換装置１６のモータ２７を制御することで、運転者のレンジ切換操作に応じてマニュアル弁１７の切換動作を制御して自動変速機１２のシフトレンジを切り換える。レンジ切換装置１６とＳＢＷ−ＥＣＵ２３等からシフトバイワイヤシステムが構成されている。
【００１７】
エンジンＥＣＵ１８とＡＴ−ＥＣＵ２２とＳＢＷ−ＥＣＵ２３と通知装置２５等は、通信ライン２６（例えば車内ＬＡＮ回線等）を介して接続され、ＣＡＮ通信等により必要な情報を相互に送受信する。
【００１８】
図２に示すように、レンジ切換装置１６は、自動変速機１２のシフトレンジを、例えば、Ｐレンジ（パーキングレンジ）とＲレンジ（リバースレンジ）とＮレンジ（ニュートラルレンジ）とＤレンジ（ドライブレンジ）との間で切り換える４ポジション式のレンジ切換装置である。このレンジ切換装置１６の駆動源となるモータ２７は、例えばスイッチトリラクタンスモータにより構成されている。このモータ２７の回転軸が減速機構２８（図１参照）を介してマニュアルシャフト２９に連結され、このマニュアルシャフト２９にディテントレバー３０が固定されている。このディテントレバー３０には、ディテントレバー３０の回転に応じて直線運動するマニュアル弁１７（図１参照）が接続され、このマニュアル弁１７によって自動変速機１２の油圧回路を切り換えることで、シフトレンジを切り換えるようになっている。以上により、自動変速機１２のシフトレンジをモータ２７の回転角度に応じて制御することができるようになっている。
【００１９】
また、ディテントレバー３０にはＬ字形のパーキングロッド３８が固定され、このパーキングロッド３８の先端部に設けられた円錐体３９がロックレバー４１に当接している。このロックレバー４１は、円錐体３９の位置に応じて軸４２を中心にして上下動してパーキングギヤ４０をロック／ロック解除するようになっている。パーキングギヤ４０は、自動変速機１２の出力軸に設けられ、このパーキングギヤ４０がロックレバー４１によってロックされると、車両の駆動輪が回り止めされた状態（パーキング状態）に保持される。
【００２０】
一方、ディテントレバー３０をＰ、Ｒ、Ｎ、Ｄの各レンジに保持するためのディテントバネ４３が支持ベース３７に固定され、ディテントレバー３０には、Ｐ、Ｒ、Ｎ、Ｄの各レンジ保持凹部４４が形成されている。ディテントバネ４３の先端に設けられた係合部４３ａがディテントレバー３０の各レンジ保持凹部４４に嵌まり込んだときに、ディテントレバー３０が各レンジの位置に保持されるようになっている。これらディテントレバー３０とディテントバネ４３とからディテントレバー３０の回転位置を各レンジの位置に係合保持する（つまりレンジ切換装置１６を各レンジの位置に保持する）ためのディテント機構４５（節度機構）が構成されている。
【００２１】
Ｐレンジでは、パーキングロッド３８がロックレバー４１に接近する方向に移動して、円錐体３９の太い部分がロックレバー４１を押し上げてロックレバー４１の凸部４１ａがパーキングギヤ４０に嵌まり込んでパーキングギヤ４０をロックした状態となり、それによって、自動変速機１２の出力軸（駆動輪）がロックされた状態（パーキング状態）に保持される。
【００２２】
一方、Ｐレンジ以外のレンジでは、パーキングロッド３８がロックレバー４１から離れる方向に移動して、円錐体３９の太い部分がロックレバー４１から抜け出てロックレバー４１が下降し、それによって、ロックレバー４１の凸部４１ａがパーキングギヤ４０から外れてパーキングギヤ４０のロックが解除され、自動変速機１２の出力軸が回転可能な状態（走行可能な状態）に保持される。
【００２３】
図１に示すように、モータ２７には、ロータの回転角（回転位置）を検出するための回転角センサとしてエンコーダ３１が設けられている。このエンコーダ３１は、例えば磁気式のロータリエンコーダにより構成されており、モータ２７のロータの回転に同期して所定角度毎にパルス信号をＳＢＷ−ＥＣＵ２３に出力するように構成されている。ＳＢＷ−ＥＣＵ２３は、エンコーダ３１のパルス信号をカウントして、そのカウント値（以下「エンコーダカウント値」という）に応じてモータ２７の通電相を所定の順序で切り換えることでモータ２７を回転駆動する。上述したように自動変速機１２のシフトレンジはモータ２７の回転角度に応じて変化するため、エンコーダカウント値は、実際のシフトレンジを間接的に表している。
【００２４】
また、マニュアルシャフト２９又はディテントレバー３０の回転角（回転位置）を検出する回転角センサ３３が設けられている。この回転センサ３３は、マニュアルシャフト２９又はディテントレバー３０の回転角度に応じた電圧を出力するセンサ（例えばポテンショメータ）によって構成され、その出力電圧によって実際のシフトレンジが、Ｐレンジ、Ｒレンジ、Ｎレンジ、Ｄレンジのいずれであるかを確認できるようになっている。セレクタセンサ２４は、運転者がレバー式又はボタン式等のレンジセレクタ１５を操作することによって選択したレンジの指令値を検出し、その検出信号（指令レンジ信号）をＳＢＷ−ＥＣＵ２３へ出力する。
【００２５】
ＳＢＷ−ＥＣＵ２３には、レンジ切換装置１６の駆動源であるモータ２７を電気的に制御するバイワイヤ制御回路３４が設けられていると共に、このバイワイヤ制御回路３４が正常に動作しているか否かを監視する監視回路３５がバイワイヤ制御回路３４とは別の回路で設けられている。バイワイヤ制御回路３４は、マイクロコンピュータ等で構成され、監視回路３５は、ＩＣ（例えばＡＳＩＣ）等で構成されている。また、ＳＢＷ−ＥＣＵ２３とレンジ切換装置１６のモータ２７との間には、モータ２７の駆動を禁止するための駆動禁止装置３６が設けられている。
【００２６】
ＳＢＷ−ＥＣＵ２３は、バイワイヤ制御回路３４でモータ２７の駆動許可／駆動禁止の判定を行い、モータ２７の駆動許可と判定していない場合には、駆動禁止装置３６でモータ２７の駆動を禁止する。更に、ＳＢＷ−ＥＣＵ２３は、監視回路３５でバイワイヤ制御回路３４が正常に動作しているか否かを監視し、バイワイヤ制御回路３４が正常に動作していないと判定した場合には、駆動禁止装置３６でモータ２７の駆動を禁止する。
【００２７】
また、エンジンＥＣＵ１８（他の制御回路）は、モータ２７の駆動を許可する場合に駆動許可コードをＳＢＷ−ＥＣＵ２３のバイワイヤ制御回路３４へ送信し、モータ２７の駆動を禁止する場合に駆動禁止コードをＳＢＷ−ＥＣＵ２３のバイワイヤ制御回路３４へ送信する。駆動許可コードと駆動禁止コードは、冗長化されたコード（例えば「０ｘ５ＡＡ５」や「０ｘＦ００Ｆ」）が用いられ、チェックサム、メッセージカウンタ等で信頼性を保証するようにしている。
【００２８】
一方、ＳＢＷ−ＥＣＵ２３のバイワイヤ制御回路３４は、後述する図１３の通電相設定ルーチンを実行することで、駆動許可コードを受信している場合に、モータ２７の通電相を順次切り換えてモータ２７を回転駆動する。
【００２９】
以下、バイワイヤ制御回路３４による通電相の設定方法について説明する。
バイワイヤ制御回路３４のＲＯＭ（図示せず）には、各アドレスに対応する通電相アドレスを規定するテーブルＸ（図４参照）と、各通電相アドレスに対応する通電相を規定すると共にモータ２７を正回転方向又は逆回転方向に回転駆動する順序（以下「正しい順序」という）とは異なる順序（以下「フェールセーフ用の順序」という）で並ぶように通電相が配列されているテーブルＹ（図５参照）とが予め記憶されている。
【００３０】
図３に示すように、バイワイヤ制御回路３４は、駆動許可コード（例えば「０ｘ５ＡＡ５」）を受信している場合には、まず、通電相演算部４６で、通電相パターンＮo.（通電相パターン番号）を演算する。具体的には、モータ２７を正回転させる場合には、通電相パターンＮo.を１ずつ増加させる（例えば１１に到達したら０に戻る）。一方、モータ２７を逆回転させる場合には、通電相パターンＮo.を１ずつ減少させる（例えば０に到達したら１１に戻る）。
【００３１】
この後、アドレス演算部４７で、駆動許可コードと通電相パターンＮo.とに基づいて四則演算と論理演算の一方又は両方を用いて、テーブルＸにアクセスするためのアドレスを演算する。本実施例では、通電相パターンＮo.に駆動許可コードと定数とを加算してアドレスを求める。尚、アドレスの演算方法は適宜変更しても良い。
アドレス＝通電相パターンＮo.＋駆動許可コード＋定数
【００３２】
この後、通電相アドレス演算部４８で、テーブルＸを参照して、今回のアドレスに対応する通電相アドレスを演算する。ここで、テーブルＸ（図４参照）は、通電相アドレスが連続する順序で並ぶようには配列されておらず、通電相アドレスがテーブルＹに正しい順序でアクセスできるような順序で並ぶように配列されている。これにより、テーブルＸを用いて通電相アドレスを演算することで、テーブルＹに正しい順序でアクセスするための通電相アドレスを演算することができる。
【００３３】
この後、通電相決定部４９で、テーブルＹを参照して、今回の通電相アドレスに対応する通電相を決定する。ここで、テーブルＹ（図５参照）は、通電相がモータ２７を回転駆動する正しい順序で並ぶようには配列されておらず、テーブルＸを用いて演算した通電相アドレスの順にアクセスすることで、通電相がモータ２７を回転駆動する正しい順序になるように配列されている。
【００３４】
このようにして通電相を決定した後、駆動回路５０で、モータ２７の通電相を今回の通電相に切り換える。これにより、モータ２７を回転駆動する正しい順序で通電相を切り換える。
【００３５】
また、本実施例では、テーブルＹは、通電相がモータ２７を回転駆動する正しい順序とは異なるフェールセーフ用の順序で並ぶように配列されている。これにより、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、フェールセーフ用の順序で通電相が切り換えられるため、モータ２７の動作がフェールセーフ用の動作となる。
【００３６】
具体的には、図５に示すように、テーブルＹは、フェールセーフ用の順序として、該フェールセーフ用の順序で通電相が切り換えられた場合に切換前後で各相の通電ＯＮと通電ＯＦＦが逆になる切換パターンが複数回連続するように通電相が切り換わる順序で並ぶように通電相が配列されている。このようにすれば、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータ２７にトルクが発生し難くすることができるため、モータ２７の動作がフェイタルなモード（例えばシフトレンジを切り換えてしまうモード）に陥るような動作になることを防止できる。
【００３７】
尚、フェールセーフ用の順序は、これに限定されず、適宜変更しても良く、例えば、図６に示すように、テーブルＹは、フェールセーフ用の順序として、該フェールセーフ用の順序で通電相が切り換えられた場合にモータ２７が正逆方向に振動するように通電相が切り換わる順序で並ぶように通電相が配列されているようにしても良い。このようにすれば、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータ２７が正逆方向に振動して一定角度以上回らないようにできるため、モータ２７の動作がフェイタルなモードに陥るような動作になることを防止できる。
【００３８】
或は、図７に示すように、テーブルＹは、フェールセーフ用の順序として、該フェールセーフ用の順序で通電相が切り換えられた場合にモータ２７が安全側の一方向（例えばＰレンジ方向）に微小に回転するように通電相が切り換わる順序で並ぶように通電相が配列されているようにしても良い。このようにすれば、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータ２７が安全側の一方向に微小に回転するようにできるため、モータ２７の動作がフェイタルなモードに陥るような動作になることを防止できる。
【００３９】
また、図８に示すように、テーブルＹは、フェールセーフ用の順序として、該フェールセーフ用の順序で通電相が切り換えられた場合に正しい順序の各通電相パターンの間に全相が通電ＯＮとなる通電相パターンを挟んだ切換パターンで通電相が切り換わる順序で並ぶように通電相が配列されているようにしても良い。このようにすれば、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータ２７にブレーキが掛かって回り難くすることができるため、モータ２７の動作がフェイタルなモードに陥るような動作になることを防止できる。
【００４０】
更に、図９に示すように、テーブルＹは、英数字で構成された通電相アドレスが不連続な順序で並ぶように配列されているようにしても良い。図９では、１ビット化けに対して全て排他的な通電相アドレスになっている（つまり１ビットが変化しても他の通電相アドレスと同じにはならないような通電相アドレスになっている）。このようにしても、万一、通電相アドレスが１ずつインクリメントされる異常が発生した場合に、モータ２７を回転駆動する正しい順序で通電相が切り換えられることがなく、モータ２７の動作がフェイタルなモードに陥るような動作になることを防止できる。
【００４１】
尚、図５乃至図９のテーブルＹの通電相の配列を適宜組み合わせても良い。例えば、図９のテーブルＹでは、通電相がモータ２７を回転駆動する正しい順序で並ぶように配列されているが、通電相が図５乃至図８のいずれかのフェールセーフ用の順序で並ぶように配列されているようにしても良い。
【００４２】
また、本実施例では、バイワイヤ制御回路３４のＲＯＭに、複数種類のテーブルＸ及びテーブルＹが記憶されている。例えば、１相通電方式で通電相を切り換えるための１相通電方式用のテーブルＸ及びテーブルＹと、２相通電方式で通電相を切り換えるための２相通電方式用のテーブルＸ及びテーブルＹと、１−２相通電方式で通電相を切り換えるための１−２相通電方式用のテーブルＸ及びテーブルＹが記憶されている。
【００４３】
そして、バイワイヤ制御回路３４がモータ２７の駆動条件（例えばバッテリ電圧等）に応じてテーブルＸ及びテーブルＹを切り換えるようにしている。或は、エンジンＥＣＵ１８がモータ２７の駆動条件に応じて駆動許可コードを切り換え、バイワイヤ制御回路３４が駆動許可コードに応じてテーブルＸ及びテーブルＹを切り換えるようにしても良い。
【００４４】
更に、本実施例では、駆動禁止コードに基づいて演算されるアドレスに対しては全相無通電又は全相通電となるように駆動禁止コードと駆動禁止用のテーブルＸ及びテーブルＹが設定されている。具体的には、図１０に示すように、駆動禁止用のテーブルＸは、駆動禁止コード（例えば「０ｘＦ００Ｆ」）に基づいて演算されるアドレスに対しては、全て駆動禁止用の通電相アドレスとなるように設定されている。更に、図１１に示すように、駆動禁止用のテーブルＹは、駆動禁止用の通電相アドレスに対しては、全て全相無通電（全相が通電ＯＦＦとなる通電相パターン）となるように設定されている。或は、図１２に示すように、駆動禁止用のテーブルＹは、駆動禁止用の通電相アドレスに対しては、全て全相通電（全相が通電ＯＮとなる通電相パターン）となるように設定されている。
【００４５】
以下、ＳＢＷ−ＥＣＵ２３のバイワイヤ制御回路３４が実行する図１３の通電相設定ルーチンの処理内容を説明する。
図１３に示す通電相設定ルーチンは、ＳＢＷ−ＥＣＵ２３の電源オン期間中にバイワイヤ制御回路３４により所定周期で繰り返し実行される。本ルーチンが起動されると、まず、ステップ１０１で、駆動許可コードを受信しているか否かを判定する。
【００４６】
このステップ１０１で、駆動許可コードを受信していない（駆動禁止コードを受信している）と判定された場合には、モータ２７の駆動禁止と判断して、ステップ１０２以降の処理を実行することなく、本ルーチンを終了する。
【００４７】
一方、上記ステップ１０１で、駆動許可コードを受信している（駆動禁止コードを受信していない）と判定された場合には、モータ２７の駆動許可と判断して、ステップ１０２以降の処理を次のようにして実行する。
【００４８】
まず、ステップ１０２で、モータ２７の駆動条件（例えばバッテリ電圧等）に応じたテーブルＸ及びテーブルＹを、１相通電方式用のテーブルＸ及びテーブルＹと、２相通電方式用のテーブルＸ及びテーブルＹと、１−２相通電方式用のテーブルＸ及びテーブルＹの中から選択する。これにより、モータ２７の駆動条件に応じてテーブルＸ及びテーブルＹを切り換える。或は、エンジンＥＣＵ１８がモータ２７の駆動条件に応じて駆動許可コードを切り換える場合には、駆動許可コードに応じてテーブルＸ及びテーブルＹを切り換えるようにしても良い。
【００４９】
この後、ステップ１０３に進み、通電相パターンＮo.を演算する。具体的には、モータ２７を正回転させる場合には、通電相パターンＮo.を１ずつ増加させる。一方、モータ２７を逆回転させる場合には、通電相パターンＮo.を１ずつ減少させる。
【００５０】
この後、ステップ１０４に進み、駆動許可コードと通電相パターンＮo.と定数とを用いて、テーブルＸにアクセスするためのアドレスを次式により演算する。
アドレス＝通電相パターンＮo.＋駆動許可コード＋定数
【００５１】
尚、アドレスの演算方法は適宜変更しても良く、駆動許可コードと通電相パターンＮo.とに基づいて四則演算と論理演算の一方又は両方を用いてアドレスを演算するようにすれば良い。
【００５２】
この後、ステップ１０５に進み、テーブルＸを参照して、今回のアドレスに対応する通電相アドレスを演算する。これにより、テーブルＹに正しい順序でアクセスするための通電相アドレスを演算する。
【００５３】
この後、ステップ１０６に進み、テーブルＹを参照して、今回の通電相アドレスに対応する通電相を決定する。この後、ステップ１０７に進み、モータ２７の通電相を今回の通電相に切り換える。これにより、モータ２７を回転駆動する正しい順序で通電相を切り換える。
【００５４】
以上説明した本実施例では、バイワイヤ制御回路３４のＲＯＭに、各アドレスに対応する通電相アドレスを規定するテーブルＸと、各通電相アドレスに対応する通電相を規定すると共に正しい順序とは異なるフェールセーフ用の順序で並ぶように通電相が配列されているテーブルＹとを予め記憶しておく。そして、バイワイヤ制御回路３４は、駆動許可コードを受信している場合に、駆動許可コードと通電相パターンＮo.とに基づいてテーブルＸにアクセスするためのアドレスを演算する。この後、テーブルＸを参照して、今回のアドレスに対応する通電相アドレスを演算することで、テーブルＹに正しい順序でアクセスするための通電相アドレスを演算する。この後、テーブルＹを参照して、今回の通電相アドレスに対応する通電相を決定することで、モータ２７を回転駆動する正しい順序で通電相を切り換えるようにしている。
【００５５】
このようにすれば、エンジンＥＣＵ１８がモータ２７の駆動を許可していない場合、つまり、エンジンＥＣＵ１８が駆動許可コードをバイワイヤ制御回路３４へ送信していない場合には、バイワイヤ制御回路３４は、テーブルＸにアクセスするためのアドレスを算出することができない。これにより、バイワイヤ制御回路３４は、テーブルＹにアクセスするための通電相アドレスも算出することができないため、通電相を決定することができず、モータ２７を回転駆動することができない。従って、エンジンＥＣＵ１８がモータ２７の駆動を許可していない場合（駆動許可コードを送信していない場合）に、モータ２７が回転駆動される可能性を極めて低くすることができる。
【００５６】
しかも、テーブルＸを参照して通電相アドレスを演算することで、テーブルＹに正しい順序でアクセスするための通電相アドレスを演算するようになっているため、万一、ＲＡＭ化け（ＲＡＭの異常によるデータ化け）等により通電相アドレスが１ずつインクリメントされる異常が発生しても、テーブルＹに正しい順序でアクセスすることを防止できる。これにより、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、モータ２７を回転駆動する正しい順序で通電相が切り換えられることがなく、モータ２７が通常通りに回転駆動されてしまうことを防止でき、システム異常時の安全性を向上させることができる。
【００５７】
また、本実施例では、テーブルＹは、通電相がモータ２７を回転駆動する正しい順序とは異なるフェールセーフ用の順序で並ぶように配列されているようにしている。このようにすれば、万一、通電相アドレスが１ずつインクリメントされる異常が発生しても、フェールセーフ用の順序で通電相が切り換えられるため、モータ２７の動作がフェールセーフ用の動作となる。これにより、モータ２７の動作がフェイタルなモード（例えばシフトレンジを切り換えてしまうモード）に陥るような動作になることを防止できる。
【００５８】
更に、本実施例では、バイワイヤ制御回路３４が駆動許可コードと通電相パターンＮo.とに基づいて四則演算や論理演算によってアドレスを演算するようにしている。このようにすれば、システム異常時に偶然に正しいアドレスが演算されてしまう確率を低くすることができ、フラグのように「０」か「１」かをロジック判定する場合と比較して、信頼性を向上させることができる。
【００５９】
また、本実施例では、バイワイヤ制御回路３４のＲＯＭに、複数種類のテーブルＸ及びテーブルＹを記憶しておき、バイワイヤ制御回路３４がモータ２７の駆動条件（例えばバッテリ電圧等）に応じてテーブルＸ及びテーブルＹを切り換えるようにしている。或は、エンジンＥＣＵ１８がモータ２７の駆動条件に応じて駆動許可コードを切り換え、バイワイヤ制御回路３４が駆動許可コードに応じてテーブルＸ及びテーブルＹを切り換えるようにしている。このようにすれば、モータの駆動条件（例えばバッテリ電圧等）に応じてテーブルＸやテーブルＹを切り換えて、モータの通電方式（例えば、１相通電方式、２相通電方式、１−２相通電方式等）を切り換えることが可能となる。
【００６０】
更に、本実施例では、駆動禁止コードに基づいて演算されるアドレスに対しては全相無通電又は全相通電となるように駆動禁止コードとテーブルＸ及びテーブルＹが設定されている。このようにすれば、エンジンＥＣＵ１８がモータ２７の駆動を禁止している場合（駆動禁止コードを送信している場合）に、万一、バイワイヤ制御回路３４が駆動禁止コードに基づいてアドレスを演算する異常が発生して、そのアドレスに基づいて通電相アドレスを演算して通電相を決定したとしても、モータ２７が全相無通電又は全相通電に維持されるため、モータ２７が回転駆動されてしまうことを防止できる。
【００６１】
尚、上記実施例では、テーブルＹは、通電相がモータ２７を回転駆動する正しい順序とは異なるフェールセーフ用の順序で並ぶように配列されているようにしたが、これに限定されず、通電相がランダムに配列されているようにしても良い。
【００６２】
また、上記実施例では、モータ２７の駆動条件又は駆動許可コードに応じてテーブルＸとテーブルＹを両方とも切り換えるようにしたが、これに限定されず、モータ２７の駆動条件又は駆動許可コードに応じてテーブルＸとテーブルＹのうちの一方のみを切り換えて、モータ２７の通電方式を切り換えるようにしても良い。
【００６３】
また、上記実施例では、エンジンＥＣＵ１８が駆動許可コードや駆動禁止コードをバイワイヤ制御回路３４へ送信するようにしたが、これに限定されず、バイワイヤ制御回路３４以外の他の制御回路（例えばＡＴ−ＥＣＵ２２等）が駆動許可コードや駆動禁止コードをバイワイヤ制御回路３４へ送信するようにしても良い。
【００６４】
また、上記実施例では、レンジ切換装置を電気的に制御するシフトバイワイヤシステムに本発明を適用したが、これに限定されず、駆動源となるモータの通電相を順次切り換えることでモータを回転駆動するシステムであれば、本発明を適用しても良い。例えば、スロットルバイワイヤシステム、ステアバイワイヤシステム、ブレーキバイワイヤシステム（メインブレーキバイワイヤシステムやパーキングブレーキバイワイヤシステム）等に本発明を適用しても良い。
【符号の説明】
【００６５】
１６…レンジ切換装置、１８…エンジンＥＣＵ（他の制御回路）、２３…ＳＢＷ−ＥＣＵ、２７…モータ、３４…バイワイヤ制御回路
【図１】
0005939236.tif 000002
【図２】
0005939236.tif 000003
【図３】
0005939236.tif 000004
【図４】
0005939236.tif 000005
【図５】
0005939236.tif 000006
【図６】
0005939236.tif 000007
【図７】
0005939236.tif 000008
【図８】
0005939236.tif 000009
【図９】
0005939236.tif 000010
【図１０】
0005939236.tif 000011
【図１１】
0005939236.tif 000012
【図１２】
0005939236.tif 000013
【図１３】
0005939236.tif 000014