(57)【要約】【課題】操舵軸駆動用のアクチュエータを２つのＣＰＵにより制御するとともに、それら２つのＣＰＵ間のデータ通信精度を簡便な方式により向上させた車両用操舵制御システムを提供する。【解決手段】データ転送に際して、先行するデータＩＤから次のデータＩＤに切り替える際に、レベルが互いに逆方向に切り替わるビット対が必ず混在するように、個々のブロックを特定するためのデータＩＤの内容及び切り替えシーケンスを定めてある。このようなビット対が存在すれば、レベル傾向の同じノイズが重畳したとき、その一方のビットには、必ず正規のビットレベル変化を打ち消すようにノイズが作用し、ビット対の逆方向のレベル変化は失われる。そこで、逆方向レベル変化を示すビット対が生じないＩＤ切り替えが存在しないように、データＩＤの内容と切り替えシーケンスを定めておくことにより、ノイズ重畳後のＩＤビットの内容が偶然別のデータＩＤに一致する不具合が極めて生じにくくなり、ノイズの影響を効果的に排除することができる。【選択図】　図１６
2004058771.tif 000002
【特許請求の範囲】
【請求項１】
操舵用のハンドル軸の操作角と車両の運転状態とに応じて前記車輪操舵軸に与えるべき操舵角を決定し、当該操舵角が得られるように前記車輪操舵軸をアクチュエータにより回転駆動するようにした車両用操舵制御システムにおいて、
前記ハンドル軸の角度位置（以下、ハンドル軸角度位置という）を検出するハンドル軸角度検出部と、
前記車輪操舵軸の角度位置（以下、操舵軸角度位置という）を検出する操舵軸角度検出部と、
前記車両の運転状態を検出する運転状態検出部と、
検出されたハンドル軸角度位置と車両の運転状態とに基づいて前記車輪操舵軸の目標角度位置を決定し、該操舵軸角度位置が前記目標角度位置に近づくように、前記アクチュエータの動作を制御する操舵制御部とを備え、
前記操舵制御部は、前記アクチュエータの動作制御主体をなす主ＣＰＵと、前記アクチュエータへの動作指令内容を決定するために前記主ＣＰＵが行なうデータ処理の少なくとも一部を、該主ＣＰＵと並行して行なう監視用の副ＣＰＵとを有し、前記主ＣＰＵと前記副ＣＰＵとの一方を送信側ＣＰＵ、他方を受信側ＣＰＵとして、前記送信側ＣＰＵのデータ処理結果を示すデータを該送信側ＣＰＵから前記受信側ＣＰＵへ通信により転送し、前記受信側ＣＰＵが、自身のデータ処理結果と前記送信側ＣＰＵから受信したデータ処理結果とに基づいて、前記主ＣＰＵが最終的に行なうべきデータ処理内容の確定を行なうものであり、
前記送信側ＣＰＵから前記受信側ＣＰＵへ転送すべきデータの全体が、データＩＤにて個々に特定される複数のブロックに分割され、前記データＩＤを切り替えながらブロック単位にてデータ転送が順次行なわれるとともに、前記データＩＤは、第一ビットレベルと第二ビットレベルとのいずれかに設定されるＩＤビットを複数含むパラレルビット列からなり、さらに、前記データ転送において、先行するデータＩＤから次のデータＩＤに切り替える際に、前記第一ビットレベルから前記第二ビットレベルに変化する第一種ビットと、前記第二ビットレベルから前記第一ビットレベルに変化する第二種ビットとの双方が前記パラレルビット列内に必ず生ずるように、個々のブロックを特定するためのデータＩＤの内容及び切り替えシーケンスが定められてなることを特徴とする車両用操舵制御システム。
【請求項２】
前記転送すべきデータが、データ種別の互いに異なる複数のブロックを含み、前記データＩＤは、前記データ種別に応じて互いに異なる内容に設定される請求項１記載の車両用操舵制御システム。
【請求項３】
前記転送すべきデータは、含まれるブロックのデータ種別が全て異なるものであり、前記データＩＤは、それらブロックに一対一に対応するものが、全て異なる内容に設定されてなる請求項２記載の車両用操舵制御システム。
【請求項４】
前記データＩＤは、前記送信側ＣＰＵから前記受信側ＣＰＵに向けて一方向的に送信されるものであり、前記受信側ＣＰＵは、各データＩＤにて特定される個々のブロックの受信に対しては、個別の受信完了信号を前記送信側ＣＰＵに返さない請求項２又は３に記載の車両用操舵制御システム。
【請求項５】
前記受信側ＣＰＵは、前記データＩＤの内容により最後のブロックの受信を確認した後、前記送信側ＣＰＵに受信完了信号を返すものである請求項４記載の車両用操舵制御システム。
【請求項６】
前記送信側ＣＰＵと前記受信側ＣＰＵとはパラレルデータポートを介してデータ通信を行なうものであり、前記パラレルデータポートの予め定められた第一ビット列が前記データＩＤに割り当てられ、残余のビット列の少なくとも一部をなす第二ビット列が前記転送されるべきデータに割り当てられている請求項１ないし５のいずれか１項に記載の車両用操舵制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、自動車等の車両の操舵制御システムに関する。
【０００２】
【従来の技術】
車両の操舵装置、特に自動車用の操舵装置において、近年、その更なる高機能化の一端として、操舵ハンドルの操作角（ハンドル操作角）と車輪操舵角とを１：１比率に固定せず、ハンドル操作角の車輪操舵角への変換比（舵角変換比）を車両の運転状態に応じて可変とした、いわゆる可変舵角変換比機構を搭載したものが開発されている。車両の運転状態としては、例えば、車両速度（車速）を例示でき、高速運転時においては舵角変換比を小さくすることにより、ハンドル操作角の増加に対して操舵角が急激に大きくならないようにすれば、高速走行の安定化を図ることができる。他方、低速走行時には、逆に舵角変換比を大きくすることで、一杯まで切るのに必要なハンドルの回転数を減少させることができ、車庫入れや縦列駐車あるいは幅寄せなど、操舵角の大きい運転操作を非常に簡便に行なうことができる。
【０００３】
舵角変換比を可変化する機構としては、例えば特開平１１−３３４６０４号公報に開示されているように、ハンドル軸と車輪操舵軸とを、ギア比が可変な歯車式伝達部にて直結したタイプのものがあるが、この構成は、歯車式伝達部のギア比変更機構が複雑になる欠点がある。そこで、ハンドル軸と車輪操舵軸とを分離し、モータ等のアクチュエータにより車輪操舵軸を回転駆動するタイプのものが、例えば特開平１１−３３４６２８号公報等に提案されている。具体的には、角度検出部が検出するハンドル操作角と車両運転状態とに応じて定まる舵角変換比とに基づいて、コンピュータ処理により最終的に必要な車輪操舵角を演算し、その演算された車輪操舵角が得られるように、ハンドル軸から機械的に切り離された車輪操舵軸をアクチュエータ（モータ）により回転駆動する。
【０００４】
上記の操舵制御方式では、車輪操舵軸の角度位置がアクチュエータの動作によって決定されるので、車輪操舵軸の舵角制御の精度や円滑性を確保するために、ハンドル軸の角度位置、車輪操舵軸の角度位置あるいは車速などを正確にモニタする必要がある。また、モータの電流や、モータの電源電圧なども、アクチュエータの動作制御を司る上で重要なパラメータとなりうる。そこで、制御の精度を向上するために、モータ制御を直接司る主ＣＰＵに加え、該主ＣＰＵの動作が正常であるかどうかを監視する副ＣＰＵを設けることが有効である。副ＣＰＵは、制御に必要なパラメータ演算等、モータの動作制御に必要なデータ処理を主ＣＰＵと並行して行なうとともに、そのデータ処理結果を主ＣＰＵとの間で通信することにより上記の監視を行なう。
【０００５】
【発明が解決しようとする課題】
上記の構成において、副ＣＰＵの監視機能は、主ＣＰＵと副ＣＰＵとの間のデータ通信の精度が確保されていることが前提となる。しかし、通信によるデータ転送にはノイズなどの影響による、エラー発生が問題となる。特に、パラレル通信によりデータのやり取りを行なう場合は、信号線の数が多くなるのでノイズの影響を特に受けやすい。特に、送信すべきデータが複数組あり、各データの組をデータＩＤにより特定しながら送受信する場合、そのデータＩＤがノイズの影響で誤認識されてしまうと、受信したデータ内容に混同が生じたり、データが誤ったメモリエリアに書き込まれたりするなどのトラブルを生じやすくなる。
【０００６】
本発明は、操舵軸駆動用のアクチュエータを２つのＣＰＵにより制御するとともに、それら２つのＣＰＵ間のデータ通信精度を簡便な方式により向上させた車両用操舵制御システムを提供することにある。
【０００７】
【課題を解決するための手段及び作用・効果】
本発明は、操舵用のハンドル軸の操作角と車両の運転状態とに応じて車輪操舵軸に与えるべき操舵角を決定し、当該操舵角が得られるように車輪操舵軸をアクチュエータにより回転駆動するようにした車両用操舵制御システムにおいて、上記の課題を解決するために、
ハンドル軸の角度位置（ハンドル軸角度位置）を検出するハンドル軸角度検出部と、
車輪操舵軸の角度位置（操舵軸角度位置）を検出する操舵軸角度検出部と、
車両の運転状態を検出する運転状態検出部と、
検出されたハンドル軸の角度位置（ハンドル軸角度位置）と車両の運転状態とに基づいて車輪操舵軸の目標角度位置を決定し、該操舵軸角度位置が目標角度位置に近づくように、アクチュエータの動作を制御する操舵制御部とを備え、
操舵制御部は、アクチュエータの動作制御主体をなす主ＣＰＵと、アクチュエータへの動作指令内容を決定するために主ＣＰＵが行なうデータ処理の少なくとも一部を、該主ＣＰＵと並行して行なう監視用の副ＣＰＵとを有し、主ＣＰＵと副ＣＰＵとの一方を送信側ＣＰＵ、他方を受信側ＣＰＵとして、送信側ＣＰＵのデータ処理結果を示すデータを該送信側ＣＰＵから受信側ＣＰＵへ通信により転送し、受信側ＣＰＵが、自身のデータ処理結果と送信側ＣＰＵから受信したデータ処理結果とに基づいて、主ＣＰＵが最終的に行なうべきデータ処理内容の確定を行なうものであり、
送信側ＣＰＵから受信側ＣＰＵへ転送すべきデータの全体が、データＩＤにて個々に特定される複数のブロックに分割され、データＩＤを切り替えながらブロック単位にてデータ転送が順次行なわれるとともに、データＩＤは、第一ビットレベルと第二ビットレベルとのいずれかに設定されるＩＤビットを複数含むパラレルビット列からなり、さらに、データ転送において、先行するデータＩＤから次のデータＩＤに切り替える際に、第一ビットレベルから第二ビットレベルに変化する第一種ビットと、第二ビットレベルから第一ビットレベルに変化する第二種ビットとの双方がパラレルビット列内に必ず生ずるように、個々のブロックを特定するためのデータＩＤの内容及び切り替えシーケンスが定められてなることを特徴とする。
【０００８】
上記本発明においては、アクチュエータ制御を司る主ＣＰＵと監視用の副ＣＰＵとの間のデータ通信を、データＩＤを切り替えながらブロック単位にてデータ転送することにより行なう。データＩＤは、第一ビットレベルと第二ビットレベルとのいずれかに設定されるＩＤビットを複数含むパラレルビット列により特定される。
【０００９】
複数ビットからなるデータＩＤをパラレル通信によりやり取りする場合、ノイズが発生すると、通信経路をなす複数の信号線にその影響が及ぶ。そして、ノイズ源が同じであれば、どの信号線にも、デジタル的には同じレベルのノイズ信号が重畳されることになる（例えば、サージノイズの場合はＨレベル）。従来、データＩＤにより一連のデータを転送する場合、データＩＤに連番を付与し、その番号順にデータＩＤ及びデータの送信を行なっていた。具体的には、連番のデータＩＤを直接的に２進法のビット情報に翻訳し、番号順のシーケンスにてデータ転送を行なうことになる。しかし、ノイズの影響を受けると、次のような問題が生じやすくなる。すなわち、２進法の番号順にデータＩＤが切り替わる際に、図１７に示すように、「０１１０Ｂ（６Ｄ）」から「０１１１Ｂ（７Ｄ）」（本明細書では、２進法の「１」をＨレベルに、「０」をＬレベルに対応させるが、逆の論理を用いてもよいことはもちろんである）への切り替えなど、データＩＤによっては、３つまでのビットレベルが同一に保持され、１つのビットレベルのみ変化することがある。この変化するビットの変化後のレベルが、重畳するノイズのレベルと一致していると、ノイズ重畳によりデータＩＤがあたかも次のデータＩＤへ切り替わったように識別され、前のデータＩＤのデータが出力されているにもかかわらず、ノイズ重畳後は、それが次のデータＩＤが示すデータとして取り込まれてしまうトラブルにつながる。
【００１０】
本発明においては、データ転送に際して先行するデータＩＤから次のデータＩＤに切り替える際に、第一ビットレベル（例えば「Ｈ」）から第二ビットレベル（例えば「Ｌ」）に変化する第一種ビットと、第二ビットレベルから第一ビットレベルに変化する第二種ビットとの双方がパラレルビット列内に必ず生ずるように、個々のブロックを特定するためのデータＩＤの内容及び切り替えシーケンスを定めてある（つまり、データＩＤを切り替える際に、レベルが互いに逆方向に切り替わるビット対が必ず混在するようになっている）。このようなビット対が存在すれば、レベル傾向の同じノイズが重畳したとき、その一方のビットには、必ず正規のビットレベル変化を打ち消すようにノイズが作用し、ビット対の逆方向のレベル変化は失われる。そこで、逆方向レベル変化を示すビット対が生じないＩＤ切り替えが存在しないように、データＩＤの内容と切り替えシーケンスを定めておけば、ノイズ重畳後のＩＤビットの内容が偶然別のデータＩＤに一致する不具合が極めて生じにくくなり、ノイズの影響を効果的に排除することができる。
【００１１】
本発明においてデータＩＤは、同一種別のデータを複数組転送したい場合に、その転送順位のみを特定するものとして使用することももちろん可能である。しかし、本発明の効果は、データＩＤにより異種のデータを特定する目的において、最も顕著に発揮される。具体的には、転送すべきデータが、データ種別の互いに異なる複数のブロックを含む場合であり、データＩＤは、データ種別に応じて互いに異なる内容に設定される。これにより、データＩＤ誤認識によるデータ種別の混同、ひいては、混同されたデータが本来とは異なるメモリエリアに書き込まれたりする、といった不具合を効果的に回避できる。
【００１２】
車両用の操舵制御システムにおいては、近年コスト削減のため、操舵制御部に使用できるＣＰＵの性能にも制限が加えられることが多く、ＣＰＵの内部処理ビット数やクロック周波数も低く抑えられる傾向にある。しかし、これと相反する要請として、操舵制御システムにおいては、ハンドル操作に操舵軸の回転をリアルタイムに追従させるため、操舵軸の駆動制御は可及的に迅速かつ円滑に行なうことが求められる。リアルタイム操舵制御を考慮した場合、操舵制御処理の一周期は長くとも数百μｓに留めざるを得ず、この周期内にエコノミカルなＣＰＵを用いて、種々のセンサからの出力取込や制御パラメータ決定演算をできるだけ多く行なわなければならない。従って、送信側ＣＰＵから受信側ＣＰＵへのデータ転送シーケンスも、限られた処理周期内にてできるだけ多くのデータ種別が網羅できるよう、転送すべきデータは、含まれるブロックのデータ種別を全て異なるものとし、データＩＤを、それらブロックに一対一に対応するものを、全て異なる内容に設定することが望ましいといえる。従来の方法では、こうした状況ではノイズによるデータＩＤ誤認の影響が特に生じやすかったが、本発明の採用により、このような場合においても、データＩＤ誤認の問題は発生せず、しかも、データＩＤの設定だけで対応できるので、ハードウェア的なコストアップ要因は皆無である。
【００１３】
次に、データＩＤは、送信側ＣＰＵと受信側ＣＰＵとの間でどちらの方向に送信しても、データ転送処理は成立しうる。例えば、受信側ＣＰＵから必要なデータのデータＩＤをデータ送信元である送信側ＣＰＵに送信し、これを受けた送信側ＣＰＵがデータＩＤに対応したブロックを受信側ＣＰＵに転送するような方式も可能である。しかし、この方式は、送信側ＣＰＵ側で、受けたデータＩＤに基づいて、送信すべきデータのブロックを検索する処理が必要となるため、無駄なステップが多くなる。また、受信側ＣＰＵは、データのブロックを受信するたびに、データの受信完了信号（いわゆるアクノリッジ信号）を返すようにすれば、データ送受信の精度が高められるが、余分な処理ステップ数がさらに必要となることはいうまでもない。そして、特に前述のような制限されたＣＰＵ環境下では、データ転送処理においてもなるべく余分なジョブを排除し、限られた周期内で必要なデータを高精度に転送することを考慮しなければならない。
【００１４】
そこで、本発明においては、データＩＤは、送信側ＣＰＵから受信側ＣＰＵに向けて一方向的に送信されるものとし、受信側ＣＰＵは、各データＩＤにて特定される個々のブロックの受信に対しては、個別の受信完了信号を送信側ＣＰＵに返さないように構成することが有効であるといえる。この構成によると、送信側ＣＰＵは、データのブロックをデータＩＤとともに受信側ＣＰＵへ一方的に送信するだけで事足り、他方、受信側ＣＰＵは、データＩＤを参照して、受けたブロックに含まれるデータを予め定められたメモリエリアに格納するだけでよい。また、ブロックごとにいちいちアクノリッジ信号を返さないので、結果的に余分なステップはほとんど生じない。このような処理は、本発明の採用により、データＩＤ誤認のトラブルが本質的に生じにくいことが前提となって、初めて利用可能となるのである。なお、受信側ＣＰＵは、データＩＤの内容により最後のブロックの受信を確認した後、送信側ＣＰＵに受信完了信号を返すようにしておけば、すべてのデータ送信が完了したこと自体は送信側ＣＰＵにおいて問題なく確認でき、データ送受信の精度が損なわれることがない。
【００１５】
送信側ＣＰＵと受信側ＣＰＵとは、パラレルデータポートを介してデータ通信を行なうものとすることができる。パラレル通信の採用により、ＣＰＵ間のデータ転送レートを高めることができる。こうしたパラレルデータポートの採用は、採用可能なＣＰＵの前記した低廉化の背景とも関係している。つまり、ＣＰＵの内部処理ビット数やクロック周波数を低く留めざるを得ない場合は、データ転送レート確保のため、パラレル通信の採用が不可欠ともなりうる。この場合、パラレルデータポートの予め定められた第一ビット列をデータＩＤに割り当て、残余のビット列の少なくとも一部をなす第二ビット列を転送されるべきデータに割り当てておけば、データＩＤの送信とブロックの送信とを、共通の周期により同時に制御できるので、ＣＰＵの処理負担をより軽減できる利点がある。
【００１６】
主ＣＰＵのデータ処理内容を副ＣＰＵが監視する場合、例えば主ＣＰＵのデータ処理結果を副ＣＰＵに送信し、副ＣＰＵ側にて、該副ＣＰＵ側のデータ処理結果との照合を行ない、問題が発生した場合にのみ副ＣＰＵ側から主ＣＰＵ側に通知を行なうようにしてもよい。また、送信側ＣＰＵを副ＣＰＵとし、受信側ＣＰＵを主ＣＰＵとして、主ＣＰＵが副ＣＰＵからのデータ処理結果を受信し、主ＣＰＵ側のデータ処理結果と照合して、その照合結果に基づき最終的に行なうべきデータ処理内容の確定を行なうこともできる。もちろん、主ＣＰＵと副ＣＰＵとの間で双方向のデータ通信を行なってもよい。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を用いて説明する。
図１は、本発明が適用される車両用操舵制御システムの、全体構成の一例を模式的に示したものである（なお、本実施形態において「車両」は自動車とするが、本発明の適用対象はこれに限定されるものではない）。該車両用操舵制御システム１は、操舵用ハンドル２に直結されたハンドル軸３と、車輪操舵軸８とが機械的に分離された構成を有する。車輪操舵軸８はアクチュエータとしてのモータ６により回転駆動される。車輪操舵軸８の先端はステアリングギアボックス９内に延び、該車輪操舵軸８とともに回転するピニオン１０がラックバー１１を軸線方向に往復動させることにより、車輪１３，１３の転舵角が変化する。なお、本実施形態の車両用操舵制御システム１においては、ラックバー１１の往復動が、周知の油圧式、電動式あるいは電動油圧式のパワーアシスト機構１２により駆動補助されるパワーステアリングが採用されている。
【００１８】
ハンドル軸３の角度位置φは、ロータリエンコーダ等の周知の角度検出部からなるハンドル軸角度検出部１０１により検出される。他方、車輪操舵軸８の角度位置θは、同じくロータリエンコーダ等の角度検出部からなる操舵軸角度検出部１０３により検出される。また、本実施形態においては、自動車の運転状態を検出する運転状態検出部として、車速Ｖを検出する車速検出部（車速センサ）１０２が設けられている。車速検出部１０２は、例えば車輪１３の回転を検出する回転検出部（例えばロータリエンコーダやタコジェネレータ）で構成される。そして、操舵制御部１００が、検出されたハンドル軸３の角度位置φと車速Ｖとに基づいて、車輪操舵軸８の目標角度位置θ’を決定し、該車輪操舵軸８の角度位置θが目標角度位置θ’に近づくように、モータドライバ１８を介してモータ６の動作を制御する。
【００１９】
なお、ハンドル軸３と車輪操舵軸８との間には、両者を一体回転可能にロック結合したロック状態と、該ロック結合を解除したアンロック状態との間で切り替え可能なロック機構１９が設けられている。ロック状態では、ハンドル軸３の回転角が変換されることなく（つまり、舵角変換比が１：１）車輪操舵軸８に伝達され、マニュアルステアリングが可能となる。該ロック機構１９のロック状態への切り替えは、異常発生時などにおいて操舵制御部１００からの指令によりなされる。
【００２０】
図２は、モータ６による車輪操舵軸８の駆動部ユニットの構成例を、自動車への取付状態にて示すものである。該駆動部ユニット１４において、ハンドル２（図１）の操作によりハンドル軸３を回転させると、モータケース３３がその内側に組み付けられたモータ６とともに一体的に回転するようになっている。本実施形態においては、ハンドル軸３は、ユニバーサルジョイント３１９を介して入力軸２０に連結され、該入力軸２０がボルト２１，２１を介して第一カップリング部材２２に結合されている。この第一カップリング部材２２にはピン３１が一体化されている。他方、ピン３１は、第二カップリング部材３２の一方の板面中央から後方に延びるスリーブ３２ａ内に係合してはめ込まれている。他方、筒状のモータケース３３は、第二カップリング部材３２の他方の板面側に一体化されている。なお、符号４４はゴムあるいは樹脂にて構成されたカバーであり、ハンドル軸３と一体的に回転する。また、符号４６は、コックピットパネル４８に一体化された駆動部ユニット１４を収容するためのケースであり、符号４５は、カバー４４とケース４６との間をシールするシールリングである。
【００２１】
モータケース３３の内側には、コイル３５，３５を含むモータ６のステータ部分２３が一体的に組み付けられている。該ステータ部分２３の内側には、モータ出力軸３６がベアリング４１を介して回転可能に組み付けられている。また、モータ出力軸３６の外周面には永久磁石からなる電機子３４が一体化されており、この電機子３４を挟む形でコイル３５，３５が配置されている。なお、コイル３５，３５からは、モータケース３３の後端面に連なるように給電端子５０が取り出され、該給電端子５０において給電ケーブル４２によりコイル３５，３５に給電がなされる。
【００２２】
後述の通り、本実施形態においてモータ６はブラシレスモータであり、給電ケーブル４２は、該ブラシレスモータの各相のコイル３５，３５に個別に給電する素線を集合させた帯状の集合ケーブルとして構成されている。そして、モータケース３３の後端側に隣接する形でハブ４３ａを有するケーブルケース４３が設けられ、その中に給電ケーブル４２が、ハブ４３ａに対してゼンマイ状に巻かれた形で収容されている。給電ケーブル４２の、給電端子５０に接続されているのと反対の端部は、ケーブルケース４３のハブ４３ａに固定されている。そして、ハンドル軸３がモータケース３３ひいては給電端子５０とともに正方向又は逆方向に回転すると、ケーブルケース４３内の給電ケーブル４２は、ハブ４３ａへの巻き付き又は繰り出しを生じさせることにより、上記モータケース３３の回転を吸収する役割を果たす。
【００２３】
モータ出力軸３６の回転は、減速機構７を介して所定比率（例えば１／５０）に減速された上で車輪操舵軸８に伝達される。本実施形態において減速機構７は、ハーモニックドライブ減速機にて構成してある。すなわち、モータ出力軸３６には、楕円型のインナーレース付ベアリング３７が一体化され、その外側に変形可能な薄肉の外歯車３８がはめ込まれている。そして、この外歯車３８の外側に、カップリング４０を介して車輪操舵軸８が一体化された内歯車３９，１３９が噛み合っている。内歯車３９，１３９は、同軸的に配置された内歯車（以下、第一内歯車ともいう）３９と内歯車（以下、第二内歯車ともいう）１３９とからなり、第一内歯車３９がモータケース３３に固定されて該モータケース３３と一体回転する一方、第二内歯車１３９はモータケース３３に非固定とされ、該モータケース３３に対して相対回転可能とされている。第一内歯車３９はこれと噛み合う外歯車３８との歯数差がゼロであり、外歯車３８との間での相対回転を生じない（つまり、回転するモータ出力軸３６に対して、第一内歯車３９ひいてはモータケース３３及びハンドル軸３が、遊転可能に結合されているともいえる）。他方、第二内歯車１３９は外歯車３８よりも歯数が大きく（例えば２）、内歯車１３９の歯数をＮ、外歯車３８と内歯車１３９との歯数差をｎとすると、モータ出力軸３６の回転をｎ／Ｎに減速した形で車輪操舵軸８に伝達する。また、内歯車３９，１３９は、本実施形態においては、コンパクト化を図るために、ハンドル軸３の入力軸２０、モータ出力軸３６及び車輪操舵軸８が同軸的に配置されている。
【００２４】
次に、ロック機構１９は、ハンドル軸３に対して相対回転不能なロックベース部（本実施形態においてはモータケース３３）側に固定されたロック部材５１と、ロック受けベース部（本実施形態においては、モータ出力軸３６側）に設けられたロック受け部材５２とを有する。図３に示すように、ロック部材５１は、ロック受け部材５２に形成されたロック受け部５３に係合するロック位置と、該ロック受け部５３から退避したアンロック位置との間で進退可能に設けられている。本実施形態においては、車輪操舵軸８と一体的に回転するロック受け部材５２の周方向にロック受け部５３が所定の間隔で複数形成され、ロック部材５１の先端に設けられたロック部５１ａが、車輪操舵軸８の回転角位相に応じて、それら複数のロック受け部５３の任意の１つのものに選択的に係合するようになっている。ハンドル軸３はモータケース３３に対し（本実施形態では、カップリング２２及びピンにより）相対回転不能に結合されている。ロック部材５１とロック受け部材５２とが非係合（非ロック状態）の場合は、モータ出力軸３６はモータケース３３に対して回転し、その回転が外歯車３８を経て第一内歯車３９及び第二内歯車１３９にそれぞれ伝達される。モータケース３３に固定された第一内歯車３９は、前述の通り外歯車３８に対して相対回転しないので、結果的にハンドル軸３と同速で回転する（つまり、ハンドル操作に追従して回転する）。また、第二内歯車１３９は、モータ出力軸３６の回転を車輪操舵軸８に減速して伝達し、車輪操舵軸８の回転駆動を担う。他方、ロック部材５１とロック受け部材５２とが係合してロック状態になると、モータ出力軸３６はモータケース３３に対して相対回転不能となる。そして、減速機構７の内歯車３９，１３９のうち、第一内歯車３９がモータケース３３に固定されているから、第一内歯車３９、外歯車３８及び第二内歯車１３９の順でハンドル軸３の回転が車輪操舵軸８に直接伝達されることとなる。
【００２５】
なお、本実施形態においては、ロック受け部材５２は、モータ出力軸３６の一端の外周面に取り付けられ、各ロック受け部５３は、該ロック受け部材５２の外周面から半径方向に切れ込む凹状に形成されている。また、図２に示すように、ロック部材５１は、モータケース３３に設けられた回転ベース３００に対し、車輪操舵軸８とほぼ平行な軸線周りに回転可能に取り付けられ、その後端部５５ａが結合されている。また、ソレノイド５５の付勢が解除されたときに、ロック部材５１を元の位置に弾性復帰させる弾性部材５４が設けられている。ソレノイド５５の付勢及び付勢解除の動作により、ソレノイド５５ａの先端に設けられた凸部５５ａとロック部材５１の一端部５１ｂに形成された溝部を介してロック部材５１の先端に形成されたロック部５１ａが、前記したロック／アンロックのためにロック受け部材５２に対し接近／離間する。なお、ソレノイド５５の付勢時がロック状態となるアンロック状態となるかは選択可能であるが、本実施形態では、ソレノイド５５の付勢時にアンロックとなるように定めてある。これによると、電源遮断時等においてソレノイド５５が付勢解除されたとき、弾性部材５４の作用によりロック状態となり、マニュアル操舵が可能となる。
【００２６】
図４は、操舵制御部１００の電気的構成の一例を示すブロック図である。操舵制御部１００の要部をなすのは２つのマイコン１１０及び１２０である。主マイコン１１０は、主ＣＰＵ１１１、制御プログラムを格納したＲＯＭ１１２、ＣＰＵ１１１のワークエリアとなる主ＣＰＵ側ＲＡＭ１１３及び入出力インターフェース１１４を有する。また、副マイコン１２０は、副ＣＰＵ１２１、制御プログラムを格納したＲＯＭ１２２、副ＣＰＵ１２１のワークエリアとなる副ＣＰＵ側ＲＡＭ１２３及び入出力インターフェース１２４を有する。車輪操舵軸８を駆動するモータ６（アクチュエータ）の動作制御を直接行なうのは主マイコン１１０であり、副マイコン１２０は、必要なパラメータ演算等、モータ６の動作制御に必要なデータ処理を主マイコン１１０と並行して行なうとともに、そのデータ処理結果を主マイコン１１０との間で通信することにより、主マイコン１１０の動作が正常であるかどうかを監視・確認し、必要に応じて情報の補完を行なう補助制御部としての機能を果たす。本実施形態において主マイコン１１０と副マイコン１２０とのデータ通信は、入出力インターフェース１１４，１２４間のパラレル通信によりなされる。なお、両マイコン１１０及び１２０は、自動車の運転終了後（すなわち、イグニッションＯＦＦ後）においても、図示しない安定化電源からの電源電圧Ｖｃｃ（例えば＋５Ｖ）の供給を受け、ＲＡＭ１１３，１２３あるいはＥＥＰＲＯＭ（後述）１１５の記憶内容が保持されるようになっている。
【００２７】
ハンドル軸角度検出部１０１、車速検出部１０２及び操舵軸角度検出部１０３の各出力は、主マイコン１１０及び副マイコン１２０の入出力インターフェース１１４，１２４にそれぞれ分配入力される。本実施形態では、いずれの検出部もロータリエンコーダで構成され、そのエンコーダからの計数信号が図示しないシュミットトリガ部を経て入出力インターフェース１１４，１２４のデジタルデータポートに直接入力されている。また、主マイコン１１０の入出力インターフェース１１４には、前述のロック機構１９の駆動部をなすソレノイド５５が、ソレノイドドライバ５６を介して接続されている。
【００２８】
モータ６はブラシレスモータ、本実施形態では３相ブラシレスモータにて構成されている。図２に示すコイル３５，３５は、図５に示すように、１２０゜間隔で配置された３相のコイルＵ，Ｖ，Ｗからなり、これらのコイルＵ，Ｖ，Ｗと、電機子３４との相対的な角度関係が、モータ内に設けられた角度センサをなすホールＩＣにより検出される。そして、これらホールＩＣの出力を受けて、図１のモータドライバ１８は、図５に示すように、コイルＵ，Ｖ，Ｗの通電を、Ｗ→Ｕ（１）、Ｕ→Ｖ（３）、Ｖ→Ｗ（５）のごとく循環的に順次切り替える（正方向回転の場合：逆方向回転の場合は、上記の逆順のスイッチングとなる）。図８（ｂ）に、正方向回転の場合の、各相のコイルの通電シーケンスを示している（「Ｈ」が通電、「Ｌ」が非通電を表す：逆方向回転の場合は、図の左右を反転したシーケンスとなる）。図中の括弧書きの数字は、図５の対応する番号における電機子３４の角度位置を表している。
【００２９】
図４に戻り、モータ６の回転制御は、上記コイルＵ，Ｖ，Ｗの各相の通電切り替えシーケンスに、駆動制御部１００（本実施形態では、主マイコン１１０）からのＰＷＭ信号によるデューティ比制御シーケンスが重畳された形で行なわれる。図７は、モータドライバ１８の回路例を示すもので、コイルＵ，Ｖ，Ｗの各端子ｕ，ｕ’，ｖ，ｖ’，ｗ、ｗ’に対応したＦＥＴ（半導体スイッチング素子）７５〜８０が、周知のＨ型ブリッジ回路を構成するように配線されている（符号８７〜９２は、コイルＵ，Ｖ，Ｗのスイッチングに伴なう誘導電流のバイパス経路を形成するフライホイールダイオードである）。ＡＮＤゲート８１〜８６によりモータ側のホールＩＣ（角度センサ）からのスイッチング信号と駆動制御部１００からのＰＷＭ信号との論理積信号を作り、これを用いてＦＥＴ７５〜８０をスイッチング駆動すれば、通電に関与する相のコイルを選択的にＰＷＭ通電することができる。なお、ＰＷＭ通電の方式によっては、Ｈ型ブリッジ回路の上段（７５，７７，７９）あるいは下段（７６，７８，８０）のＦＥＴにのみＰＷＭ信号を入力すればよく、この場合は、ＡＮＤゲート８１〜８６のうち対応するものを省略して、ホールＩＣからのスイッチング信号を直接入力するように構成することができる。
【００３０】
なお、駆動制御部１００側においてＦＥＴ７５〜８０にＰＷＭ信号を順次与えるためのタイミングは、ホールＩＣ（角度センサ）からの信号を駆動制御部１００に分配することにより認識させてもよいが、本実施形態では、別途、角度センサとしてのロータリエンコーダを用いてこれを検出している。このロータリエンコーダはモータ出力軸３６の回転角度を検出するものであり、その角度検出値は減速後の車輪操舵軸８の角度位置と一義的な対応関係を有する。そこで、本実施形態では、このロータリエンコーダを操舵軸角度検出部１０３として利用する。
【００３１】
図８（ａ）は、上記のロータリエンコーダを模式的に示すもので、ブラシレスモータの通電シーケンスを制御するために、時系列的な出現順序が定められたコイル通電パターンを各々特定するためのビットパターン（角度識別パターン）が、円板の周方向に一定の角度間隔で形成されたものである。本実施形態においてビットパターンは、図面中ハッチング領域で示すスリットであり、回転体をなす円板の周方向に区間を定めて形成されたスリット群が、円板の半径方向に複数組（本実施形態では３組）形成されている。検出部としては、各スリット群に対応した図示しない透過型光センサ（例えばフォトカプラなど）が用いられ、半径方向の各スリット郡の形成位置において、スリットが検出されるか否かの組合せにより、円板の回転角度位相を示すビットパターンを出力する。
【００３２】
本実施形態においては、３相ブラシレスモータを使用しているので、図８（ｂ）に示すコイルＵ，Ｖ，Ｗの通電シーケンスが得られるように、その（１）〜（６）（図５参照）の通電パターンに対応した６種類のビットパターンが、円板の周方向に３０゜間隔で形成されている。従って、モータ６の電機子３４が回転すると、これと同期回転する上記ロータリエンコーダからは、現在通電されるべきコイルを特定するビットパターンが刻々出力される。そこで、駆動制御部１００は、このエンコーダのビットパターンを読み取ることにより、ＰＷＭ信号を送るべきコイルの端子（すなわち、図７のＦＥＴ７５〜８０）を自発的に決定することができる。
【００３３】
モータ出力軸３６の回転は減速されて車輪操舵軸８に伝達されるから、車輪操舵軸８が１回転する間に、ロータリエンコーダが設けられるモータ出力軸３６は複数回回転する。従って、モータ出力軸３６の絶対角度位置のみを示すエンコーダのビットパターンからは、車輪操舵軸８の絶対角度位置を知ることはできない。従って、図４に示すように、ＲＡＭ１１３（１２３）内に、ビットパターン変化の検出回数を計数するカウンタ（操舵軸角度位置カウンタ）を形成し、操舵軸角度位置（θ）をそのカウント数から求めるようにしてある。従って、機能的にはインクリメント型ロータリエンコーダに相当するものとみなすことができる。なお、モータ出力軸３６（モータ６の電機子）の絶対角度位置についてはビットパターンの種別により読み取ることができるから、そのビットパターンの変化順序をモニタすれば、モータ出力軸３６ひいては車輪操舵軸８の回転方向（すなわち、ハンドルを切る向きである）を知ることができる。従って、車輪操舵軸８の回転方向が正であれば上記のカウンタをインクリメントし、逆であればカウンタをデクリメントする。
【００３４】
モータドライバ１８には、モータ６の電源となる車載バッテリー５７が接続されている。モータドライバ１８が受電するバッテリー５７の電圧（電源電圧）Ｖｓは、自動車の各所に分散した負荷の状態や、オルターネータの発電状態により随時変化する（例えば９〜１４Ｖ）。本実施形態においては、このような変動するバッテリー電圧Ｖｓを、安定化電源回路を介さず、モータ電源電圧として直接使用する。操舵制御部１００は、このように相当幅にて変動する電源電圧Ｖｓの使用を前提として、モータ６の制御を行なうので、電源電圧Ｖｓの測定部が設けられている。本実施形態では、モータ６への通電経路（ドライバ１８の直前）から電圧測定用の分岐経路が引き出され、そこに設けられた分圧抵抗６０，６０を経て電圧測定信号を取り出している。該電圧測定信号はコンデンサ６１により平滑化された後、電圧フォロワ６２を経て入出力インターフェース１１４，１２４のＡ／Ｄ変換機能付入力ポート（以下、Ａ／Ｄポートという）に入力される。
【００３５】
また、過電流発生の有無など、モータ６の通電状態を監視するために、モータ６への通電経路上に電流検出部が設けられている。具体的には、経路上に設けられたシャント抵抗（電流検出抵抗）５８の両端電圧差を電流センサ７０により測定し、入出力インターフェース１１４，１２４のＡ／Ｄポートに入力するようにしている。電流センサ７０は、例えば図６に示すように、シャント抵抗５８の両端電圧を、電圧フォロワ７１，７２を介して取り出し、オペアンプ７３と周辺の抵抗器７４とからなる差動増幅器７５により増幅して出力するものである。差動増幅器７５の出力は、シャント抵抗５８を流れる電流値に比例したものとなるので、これを電流測定値Ｉｓとして用いることができる。なお、シャント抵抗以外にも、ホール素子や電流検出コイルなど、電磁的な原理に基づいて電流検出するプローブを用いてもよい。
【００３６】
図４に戻り、両マイコン１１０，１２０のＲＡＭ１１３，１２３には、それぞれ以下のようなメモリエリアが形成されている。
▲１▼車速測定値メモリ：車速センサ１０２からの現在の車速の測定値を記憶する。
▲２▼ハンドル軸角度位置（φ）カウンタメモリ：ハンドル軸角度位置検出部１０１をなすロータリエンコーダからの計数信号をカウントし、ハンドル軸角度位置φを示すそのカウント値を記憶する。なお、ロータリエンコーダは回転方向の識別が可能なものを使用し、正方向回転の場合はカウンタをインクリメントし、逆方向回転の場合はデクリメントする。
▲３▼舵角変換比（α）算出値メモリ：車速測定値に基づいて算出された舵角変換比αを記憶する。
▲４▼目標操舵軸角度位置（θ’）算出値メモリ：現在のハンドル軸角度位置φと舵角変換比αとの値から、例えばφ×αにより算出された操舵軸角度位置の目標値、すなわち目標操舵軸角度位置θ’の値を記憶する。
▲５▼操舵軸角度位置（θ）カウンタメモリ：操舵軸角度検出部１０３をなすロータリエンコーダからの計数信号をカウントし、操舵軸角度位置θを示すそのカウント値を記憶する。
▲６▼Δθ算出値メモリ：目標操舵軸角度位置θ’と現在の操舵軸角度位置θとの隔たりΔθ（＝θ’−θ）の算出値を記憶する。
▲７▼電源電圧（Ｖｓ）測定値メモリ：モータ６の電源電圧Ｖｓの測定値を記憶する。
▲８▼デューティ比（η）決定値メモリ：モータ６をＰＷＭ通電するための、Δθと電源電圧Ｖｓとに基づいて決定されたデューティ比ηを記憶する。
▲９▼電流（Ｉｓ）測定値メモリ：電流センサ７０による電流Ｉｓの測定値を記憶する。
【００３７】
また、主マイコン１１０の入出力インターフェース１１４には、運転終了時（つまり、イグニッションＯＦＦ時）における車輪操舵軸８の角度位置、すなわち終了角度位置を記憶するためのＥＥＰＲＯＭ１１５が第二の記憶部として設けられている。該ＥＥＰＲＯＭ１１５（ＰＲＯＭ）は、主ＣＰＵ１１１が主ＣＰＵ側ＲＡＭ１１２に対するデータ読出し／書込みを行なう第一の動作電圧（＋５Ｖ）においては、主ＣＰＵ１１１によるデータの読出しのみが可能であり、他方、第一の動作電圧（＋５Ｖ）とは異なる第二の動作電圧（本実施形態では、第一の動作電圧より高い電圧が採用される：例えば＋７Ｖ）を設定することにより主ＣＰＵ１１１によるデータの書込みが可能となるものであり、主ＣＰＵ１１１が暴走しても内容が誤って書き換えられることがない。第二の動作電圧は、ＥＥＰＲＯＭ１１５と入出力インターフェース１１４との間に介在する図示しない昇圧回路によって生成される。
【００３８】
以下、車両用操舵制御システム１の動作について説明する。
図１２には、主マイコン１１０による制御プログラムの主ルーチンの処理の流れを示すものである。Ｓ１は初期化処理であり、前回イグニッションスイッチをＯＦＦにしたときの終了処理にてＥＥＰＲＯＭ１１５に書き込まれている車輪操舵軸８の終了角度位置（後述）を読み出し、該終了角度位置を、処理開始に際しての車輪操舵軸８の初期角度位置として設定することを要旨とする。具体的には、終了角度位置を示すカウンタ値を、前述の操舵軸角度位置カウンタメモリにセットする。なお、後述するＥＥＰＲＯＭ１１５へのデータ書込み完了フラグは、この時点でクリアしておく。
【００３９】
初期化処理が終了すれば、Ｓ２に進んで操舵制御処理となる。該操舵制御処理は、パラメータサンプリングの間隔を均一化するために、一定の周期（例えば数百μｓ）にて繰り返し実行される。その詳細を、図１３により説明する。Ｓ２０１においては、現在の車速Ｖの測定値をリードし、次いでＳ２０２ではハンドル軸角度位置φをリードする。そして、Ｓ２０３においては、車速Ｖの算出値から、ハンドル軸角度位置φを目標操舵軸角度位置θ’に変換するための舵角変換比αを決定する。舵角変換比αは、車速Ｖに応じて異なる値が設定される。具体的には、図１０に示すように、車速Ｖが一定以上に大きい状態では、舵角変換比αは小さく設定され、車速Ｖが一定以下に小さい低速走行時には舵角変換比αは大きく設定される。本実施形態では、図９に示すような、種々の車速Ｖに対応した舵角変換比αの設定値を与えるテーブル１３０をＲＯＭ１１２（１２２）に格納しておき、このテーブル１３０を参照して現在の車速Ｖに対応する舵角変換比αを補間法により算出する。なお、本実施形態においては、車両の運転状態を示す情報として車速Ｖを用いているが、これ以外にも、車両が受ける横圧や路面の傾斜角等を車両の運転状態を示す情報としてセンサにより検出し、その検出値に応じて舵角変換比αを特有の値に設定することが可能である。また、車速Ｖに応じて舵角変換比αの基本値を決定し、上記のような車速以外の情報に基づいて、その基本値を随時補正して使用することも可能である。
【００４０】
Ｓ２０４では、検出されたハンドル軸角度位置φに、決定された舵角変換比αを乗じて目標操舵軸角度位置θ’を算出する。そして、Ｓ２０５において、現在の操舵軸角度位置θを読み取る。この操舵軸角度位置θの読み取りは、具体的には以下のようにして行っている。図８のロータリエンコーダからのビットパターンの変化を計数信号として、操舵軸角度位置カウンタにより計数し、その計数値によって与えられる。ビットパターンが変化したかどうかは、前回周期にて検出したビットパターンをメモリ記憶ないしハードウェア的にラッチしておき、次に入るビットパターンと照合したとき、両者が一致したかどうかにより検出できる。前述の通り、各ビットパターンはエンコーダの円板の回転位相を個別に表すものであるから、円板の回転方向によりビットパターンの変化シーケンスも変わる。従って、あるビットパターンがその前後のビットパターンのいずれに変化したかを見て回転方向を識別し、カウンタの計数値をインクリメントするかデクリメントするかを決める。
【００４１】
図１３に戻り、Ｓ２０６では、上記のようにして更新確定された現在の操舵軸角度位置θ（操舵軸角度位置カウンタから求められたもの）と目標操舵軸角度位置θ’との隔たりΔθ（＝θ’−θ）を算出する。さらにＳ２０７においては、現在の電源電圧Ｖｓの測定値を読み取る。モータ６は、目標操舵軸角度位置θ’と現在の操舵軸角度位置θとの差Δθが縮小するように車輪操舵軸８を回転駆動する。そして、操舵軸角度位置θが目標操舵軸角度位置θ’に迅速かつスムーズに近づくことができるように、Δθが大きいときはモータ６の回転速度を大きくし、逆にΔθが小さいときはモータ６の回転速度を小さくする。基本的にはΔθをパラメータとした比例制御であるが、オーバーシュートやハンチング等を抑制し、制御の安定化を図るために、Δθの微分あるいは積分を考慮した周知のＰＩＤ制御を行なうことが望ましい。
【００４２】
モータ６は前述の通りＰＷＭ制御されており、回転速度は、そのデューティ比ηを変更することにより調整される。電源電圧Ｖｓが一定であれば、デューティ比により回転速度をほぼ一義的に調整できるが、本実施形態では前述の通り電源電圧Ｖｓは一定でない。従って、電源電圧Ｖｓも考慮してデューティ比ηを定めるようにする（Ｓ２０８）。例えば、図１１に示すように、種々の電源電圧ＶｓとΔθとの各組合せに対応したデューティ比ηを与える二次元のデューティ比変換テーブル１３１をＲＯＭ１１２（１２２）に格納しておき、電源電圧Ｖｓの測定値とΔθの算出値に対応するデューティ比ηの値を読み取って用いることができる。なお、モータ６の回転速度は負荷によっても変動する。この場合、電流センサ７０によるモータ電流Ｉｓの測定値を元に、モータ負荷の状態を推定し、デューティ比ηを補正して用いることも可能である。
【００４３】
上記のデータ処理は、図４の主マイコン１１０（主ＣＰＵ１１１）と副マイコン１２０（副ＣＰＵ１２１）との双方にて並列的に実行される。本実施形態では、主マイコン１１０の動作が正常であるかどうかが、以下のような通信処理によって副マイコン１２０により監視されている。すなわち、主マイコン１１０のＲＡＭ１１３に記憶された各パラメータの演算結果、つまり主ＣＰＵ１１１側のデータ処理結果が、副マイコン１２０に前記したパラレル通信により随時転送され、副マイコン１２０側にて、ＲＡＭ１２３に記憶された副ＣＰＵ１２１側のデータ処理結果と内容照合され、例えば照合の一致・不一致に基づいて異常発生の判定がなされる。副マイコン１２０側において異常判定があれば、結果が主マイコン１１０に通知される。主マイコン１１０側では、これを受けて制御の修正や、場合により、前記したロック機構１９によるマニュアルステアリング処理に切り替える処理などを行なう。主マイコン１１０と副マイコン１２０との間でパラレル通信によりやり取りされる主なデータは、以下のようなものである：車速測定値、ハンドル軸角度位置（あるいは、ロータリエンコーダからの計数信号を表すビットパターンなど）、舵角変換比、目標操舵軸角度位置、操舵軸角度位置（カウンタ値）、電源電圧測定値、電流測定値。ただし、これ以外にも、判定結果や処理の許可・不許可などを表すフラグ値など、種々のデータが含まれる。
【００４４】
図４に示すように、主マイコン１１０から副マイコン１２０へのデータ転送は、パラレルデータポートを有する入出力インターフェース１１４，１２４間にて行なわれる。パラレルデータポートのうち、予め定められた第一ビット列（本実施形態では４ビット）をデータＩＤに割り当て、残余のビット列をなす第二ビット列をデータ転送に割り当てる。データ転送のための通信処理は、主ＣＰＵ１１１側はＲＯＭ１１２に、副ＣＰＵ１２１側はＲＯＭ１２２にそれぞれ格納された通信プログラムによって行なわれる。図１４は送信側ＣＰＵをなす主ＣＰＵ１２１側の、また、図１５は受信側ＣＰＵをなす副ＣＰＵ１２１側の、各通信処理の流れを示すフローチャートである。処理に必要なパラメータ（例えば現在及び前回のデータＩＤ）のメモリは、ＲＡＭ１１３，１２３に形成されている。
【００４５】
まず、主ＣＰＵ１２１によるデータ送信処理の流れを図１４により説明する。Ｓ４０１において、最初のデータＩＤをセットし、Ｓ４０２ではそのデータＩＤに対応するデータのブロックをＲＡＭ１１３から読み出す。そして、Ｓ４０３において、セットされたデータＩＤと読み出されたブロックを、入出力インターフェース１１４のパラレルデータポートから出力する。データＩＤとデータの出力は一定期間継続し、データＩＤのブロック送信が最後のものでなければ、Ｓ４０５に進んで次のデータＩＤをセットする。その後、Ｓ４０２に戻って、上記の処理を繰り返す。後述の通り副ＣＰＵ１２１からは、個々のブロック受信に対する受信完了信号（アクノリッジ信号）が返されないので、一定の出力継続時間が満了すればデータＩＤと送信ブロック内容を切り替えて、一方的に副ＣＰＵ１２１側へ送信する処理である。
【００４６】
データＩＤは、図１６に示すように、Ｈレベル（「１」：第一ビットレベル）とＬレベル（「０」：第二ビットレベル）とのいずれかに設定されるＩＤビットを複数（本実施形態では４ビット）含むパラレルビット列からなる。このＩＤビットの列は、二進法による番号としてみたとき、データＩＤのＩＤ番号を意味しているともいえるが、データＩＤの転送順序は、そのＩＤ番号の順序とは全く無関係に、以下の規則を優先して設定されている。すなわち、データ転送に際して先行するデータＩＤから次のデータＩＤに切り替える際に、「１」から「０」に変化する第一種ビットと、「０」から「１」に変化する第二種ビットとの双方がパラレルビット列内に必ず生ずるように、データＩＤの内容及び切り替えシーケンスが定められている。
【００４７】
図１６では、合計１２のデータＩＤが定められ、図に示す順序で、順次切り替えてブロックの転送がなされる。各データＩＤが示すブロックは、データ種別の互いに異なるものとされている。また、データＩＤは、それらブロックに一対一に対応するものが、全て異なる内容に設定されている。図では便宜的に切り替えシーケンス上のデータＩＤの順位を１〜１２の連番にて示しているが、個々のデータＩＤのビットが示す番号は、例えば１番では１１１０Ｂ（＝１４Ｄ）、２番では０１０１Ｂ（＝５Ｄ）、というようにビットが示す番号とデータＩＤ切り替えの順序とは全く無関係である。他方、第一ビット及び第三ビットに着目すれば、１番では「１」、２番では「０」であるから、「１」から「０」に変化する第一種ビットであり、第四ビットに着目すれば、１番では「０」、２番では「１」であるから、「０」から「１」に変化する第二種ビットである。つまり、ビットレベルの変化方向が互いに逆となる、第一種ビットと第二種ビットとの双方がパラレルビット列内に生じている。他の隣接するデータＩＤについても確認してみればわかる通り、このような第一種ビットと第二種ビットとの混在は、すべてのデータＩＤの切り替え時に生じている。このように第一種ビットと第二種ビットとが常に混在するようにデータＩＤの切り替えシーケンスを定めることで、ノイズによるデータＩＤ誤認等の不具合が効果的に防止されることは、既に「課題を解決するための手段及び作用・効果」の欄にて詳しく説明したので、ここでは繰り返さない。
【００４８】
ＲＡＭ１１３から読み出されるブロックのビット数は、最大で前記した第二ビット列のビット数までである。この最大ビット数の範囲内であれば、これよりもビット数の小さい制御パラメータ（例えば、精度があまり要求されない桁数の小さいデータやフラグ値など）を複数割り当てて同時に送信することができる。逆に最大ビット数を超える大きなビット数の制御パラメータ（例えば、車速測定値、ハンドル軸角度位置、操舵軸角度位置、電源電圧測定値、電流測定値など、精度の要求される桁数の大きいデータ）は、分割して複数のブロックに割り振り（例えば上位ビットと下位ビット）、順次転送することもできる。
【００４９】
図１４に戻り、副ＣＰＵ１２１からは、最後のブロック受信に対する受信完了信号（アクノリッジ信号）は返されるようになっているので、Ｓ４０４にて最後のデータＩＤのブロック送信が完了すればＳ４０６に進み、送信先である副ＣＰＵ１２１から、データの受信完了信号を受けているかどうかを確認する。受信完了信号を受けていれば、データ送信処理は終了する。なお、Ｓ４０７において、一定時間待って受信完了信号が来なかった場合は、副ＣＰＵ１２１側で何らかのトラブルが発生したと判断し、Ｓ４０８に進んで異常対応処理とする。操舵制御処理の１周期の残り時間に余裕があれば、上記のデータ転送のシーケンスをもう一度繰り返してもよいし、余裕のない場合は、この１周期のデータは不採用とする処理を行なってもよい。なお、予め定められた複数周期にわたって、データ送信処理における副ＣＰＵ１２１からの受信完了信号がない場合は、副ＣＰＵ１２１の故障と判定し、前記したロック機構１９を作動させてマニュアル操舵とすることも可能である。
【００５０】
図１５は、副ＣＰＵ１２１側のデータの受信処理の流れを示すものである。Ｓ３０１でデータＩＤ値を初期化し、これを前回データＩＤとしてセットする。Ｓ３０２では、データＩＤの受信ポートをリードし、Ｓ３０３で、そのデータＩＤが前回データＩＤから変化したかどうかを確認する。Ｙｅｓの場合はＳ３０４に進み、そのデータＩＤが正しいデータＩＤであるかどうかを判定する。この判定は、ＲＡＭ１２３などに正しいデータＩＤの内容とシーケンスとを示す参照データを記憶しておき、その参照データとの照合により行なうことができる。既に説明した通り、本発明のようにデータＩＤの内容と転送シーケンスとを定めることにより、ノイズが重畳すれば、他のいずれのデータＩＤとも異なる内容に変化する結果、Ｓ３０４での判定にて異常データＩＤとして容易に除外できる。
【００５１】
そして、Ｓ３０４でデータＩＤが正しいと判定されれば、Ｓ３０５にて該データＩＤとともに送られてきているデータのブロックを取り込む（なお、Ｓ３０３及びＳ３０４においてＮｏの場合は、Ｓ３０２に戻ってデータＩＤの受信ポートを再度リードし、以下、同様の処理となる）。例えばＲＯＭ１２２内には、転送されるブロック内の各ビットの、ＲＡＭ１２３における格納アドレスがデータＩＤ毎に記憶されており、これを参照してブロックを構成するデータのＲＡＭ１２３への書込みが行なわれる。もし、ノイズ等によりデータＩＤに誤認が生ずると、違うデータＩＤが示す格納アドレスにデータの書込みが行なわれることにつながるが、本実施形態では、本発明の採用によりデータＩＤの誤認が生じにくくなっているので、こうした不具合が極めて生じにくい。
【００５２】
Ｓ３０７では、ブロックの取込が完了後、現在のデータＩＤを前回データＩＤとしてセットしなおし、Ｓ３０２に戻って次のブロック取込のため、以下の処理を繰り返す。この処理の流れからも明らかな通り、個々のブロック取込に対応した受信完了信号の送信は行なわない。しかし、Ｓ３０６において最後のデータＩＤに対応するブロックの受信を確認したら、Ｓ３０８に進んで、全データの受信完了を通知するために、主ＣＰＵ１１１（受信側ＣＰＵ）に対し受信完了信号を返す。
【００５３】
図１３に戻り、主マイコン１１０側では、上記のようなデータ通信により、副マイコン１２０（副ＣＰＵ１２１）による監視を受けつつ、Ｓ２０８にて最終的なデューティ比ηを決定する。そして、その決定されたデューティ比ηを元にＰＷＭ信号を生成する。さらに、操舵軸角度検出部１０３をなすロータリエンコーダからの信号を参照してモータドライバ１８に対し、通電に関与する相のコイルをスイッチングするＦＥＴ（図７）へ該ＰＷＭ信号を出力することにより、モータ６をＰＷＭ制御する。
【００５４】
図１２に戻り、自動車の運転終了時には以下のような処理を行なう。すなわち、Ｓ３において、イグニッションスイッチがＯＦＦされているかどうかを確認し、もしＯＦＦされている場合はＳ４の終了処理となる。すなわち、イグニッションスイッチがＯＦＦになっている場合は、自動車の運転が終了したことを意味するから、主マイコン１１０において操舵軸角度位置カウンタに記憶されている、車輪操舵軸８の終了角度位置を読み出し、これをＥＥＰＲＯＭ１１５に格納し、さらに、ＲＡＭ１１３に設けられたデータ書込み完了フラグをセットして処理を終了する。
【図面の簡単な説明】
【図１】本発明の車両用操舵制御システムの全体構成を模式的に示す図。
【図２】駆動部ユニットの一実施例を示す縦断面図。
【図３】図２のＡ−Ａ断面図。
【図４】本発明の車両用操舵制御システムの電気的構成の一例を示すブロック図。
【図５】本発明の実施形態に使用する３相ブラシレスモータの動作説明図。
【図６】電流センサの回路例を示す図。
【図７】３相ブラシレスモータのドライバ部分の一例を示す回路図。
【図８】図５の３相ブラシレスモータに使用するロータリエンコーダの説明図。
【図９】舵角変換比と車速との関係を与えるテーブルの模式図。
【図１０】車速に応じて舵角変換比を変化させるパターンの一例を示す模式図。
【図１１】モータ電源電圧と角度偏差Δθとによりデューティ比を決定するための二次元テーブルの模式図。
【図１２】本発明の車両用操舵制御システムにおけるコンピュータ処理の主ルーチンの一例を示すフローチャート。
【図１３】図１２の操舵制御処理の詳細の一例を示すフローチャート。
【図１４】主ＣＰＵ側におけるデータ送信処理の流れを示すフローチャート。
【図１５】副ＣＰＵ側におけるデータ受信処理の流れを示すフローチャート。
【図１６】データＩＤの内容と転送シーケンスとの設定例を示すタイミングチャート。
【図１７】データＩＤに及ぼすノイズの影響を説明する図。
【符号の説明】
３　ハンドル軸
６　モータ（アクチュエータ）
８　車輪操舵軸
１００　操舵制御部
１０１　ハンドル軸角度検出部
１０３　操舵軸角度検出部
１１１　主ＣＰＵ
１２１　副ＣＰＵ
【図１】
2004058771.tif 000003
【図２】
2004058771.tif 000004
【図３】
2004058771.tif 000005
【図４】
2004058771.tif 000006
【図５】
2004058771.tif 000007
【図６】
2004058771.tif 000008
【図７】
2004058771.tif 000009
【図８】
2004058771.tif 000010
【図９】
2004058771.tif 000011
【図１０】
2004058771.tif 000012
【図１１】
2004058771.tif 000013
【図１２】
2004058771.tif 000014
【図１３】
2004058771.tif 000015
【図１４】
2004058771.tif 000016
【図１５】
2004058771.tif 000017
【図１６】
2004058771.tif 000018
【図１７】
2004058771.tif 000019