(57)【要約】      （修正有）【課題】第１のＭＣＵにエラーが生じた場合でもモータについての演算及び制御を継続することができるモータ制御システムを提供する。【解決手段】モータ制御システムは、第１のＭＣＵ１００と、第２のＭＣＵと、を備える。第１のＭＣＵ１００は、エラー検知部１６０と、レゾルバデジタルコンバータ１３０と、第１のＰＷＭ生成部１２０と、を備える。レゾルバデジタルコンバータ１３０は、角度情報に基づいてエンコーダパルスを生成し、エンコーダパルスを第２のＭＣＵへ出力するエンコーダ部１３２を備える。エラー検知部１６０は、第１のＭＣＵ１００におけるエラーを検知した場合にはエラー信号を第２のＭＣＵへ出力する。第１のＭＣＵ１００は、第２のＭＣＵから供給されるバックアップクロックによりレゾルバデジタルコンバータ１３０を動作させる。【選択図】図２
2018201260.tif 000002
【特許請求の範囲】
【請求項１】
第１のＭＣＵ（Micro Controller Unit）と、
第２のＭＣＵと、を備え、
前記第１のＭＣＵは、
エラー検知部と、
レゾルバから出力される正弦波信号及び余弦波信号に基づいて角度情報を生成するレゾルバデジタルコンバータと、
前記角度情報に基づいて第１のＰＷＭ（Pulse Width Modulation）信号を生成する第１のＰＷＭ生成部と、を備え、
前記レゾルバデジタルコンバータは、
前記角度情報に基づいてエンコーダパルスを生成し、前記エンコーダパルスを前記第２のＭＣＵへ出力するエンコーダ部を備え、
前記第２のＭＣＵは、
バックアップクロック供給部と、
前記エンコーダパルスから前記角度情報を復元するエンコードカウンタ部と、
前記角度情報に基づいて第２のＰＷＭ信号を生成する第２のＰＷＭ生成部と、を備え、
前記エラー検知部は、前記第１のＭＣＵにおけるエラーを検知した場合にはエラー信号を前記第２のＭＣＵへ出力し、
前記バックアップクロック供給部は、前記エラー信号を受け取った場合には、バックアップクロックを前記第１のＭＣＵへ供給し、
前記第１のＭＣＵは、前記バックアップクロックにより前記レゾルバデジタルコンバータを動作させる、
モータ制御システム。
【請求項２】
前記バックアップクロック供給部は、予めバックアップクロック情報を保持しており、前記エラー信号を受け取ると、前記バックアップクロック情報に基づいて所定の周期のバックアップクロックを前記第１のＭＣＵに供給する、請求項１に記載のモータ制御システム。
【請求項３】
前記第１のＭＣＵはバックアップ制御部をさらに備え、
前記バックアップ制御部は、
前記レゾルバデジタルコンバータの設定情報を保持するレジスタと、
前記レジスタへの書き込みを禁止する書き込み禁止回路と、を備える、
請求項２に記載のモータ制御システム。
【請求項４】
前記第２のＭＣＵは、前記エラー信号を受け取ると、分離通知信号を前記第１のＭＣＵへ出力する分離通知部をさらに備え、
前記バックアップ制御部は、前記第２のＭＣＵから前記分離通知信号を受け取り、且つ前記バックアップクロックの供給を受けると、前記設定情報及び前記バックアップクロックを前記レゾルバデジタルコンバータへ供給する、
請求項３に記載のモータ制御システム。
【請求項５】
第１の電源部と、第２の電源部と、第３の電源部と、をさらに備え、
前記レゾルバデジタルコンバータ、前記エラー検知部、及び前記バックアップ制御部には、前記第１の電源部及び前記第２の電源部からの電源電圧が供給され、
前記第１のＰＷＭ生成部には、前記第１の電源部からの電源電圧が供給され、
前記第２のＭＣＵには、前記第３の電源部からの電源電圧が供給される、
請求項３に記載のモータ制御システム。
【請求項６】
前記第１のＭＣＵは、前記第１の電源部による電源電圧の供給を停止する電源停止部をさらに備える、請求項５に記載のモータ制御システム。
【請求項７】
前記第２のＭＣＵは、前記第２のＭＣＵにおけるエラーを検知し、当該エラーを検知した場合にエラー信号を前記第１のＭＣＵへ出力するエラー検知部をさらに有し、
前記第１のＰＷＭ生成部は、前記第２のＭＣＵからエラー信号を受け取る前には、（Ｎ−Ｍ）相の第１のＰＷＭ信号（ＮとＭはＮ＞Ｍである自然数）を生成し、前記第２のＭＣＵからエラー信号を受け取った場合には、Ｎ相の第１のＰＷＭ信号を生成し、
前記第２のＰＷＭ生成部は、前記第１のＭＣＵからエラー信号を受け取る前には、Ｍ相の第２のＰＷＭ信号を生成し、前記第１のＭＣＵからエラー信号を受け取った場合には、Ｎ相の第２のＰＷＭ信号を生成する、
請求項２に記載のモータ制御システム。
【請求項８】
前記第１のＰＷＭ生成部は、前記第１のＰＷＭ信号の周期を設定する第１のタイマーを備え、
前記第２のＭＣＵからエラー信号を受け取った場合に、前記第１のＰＷＭ信号の周期を減じ、
前記第２のＰＷＭ生成部は、前記第２のＰＷＭ信号の周期を設定する第２のタイマーを備え、
前記第１のＭＣＵからエラー信号を受け取った場合に、前記第２のＰＷＭ信号の周期を減ずる、
請求項７に記載のモータ制御システム。
【請求項９】
半導体装置であって、
エラー検知部と、
レゾルバから出力される正弦波信号及び余弦波信号に基づいて角度情報を生成するレゾルバデジタルコンバータと、
前記角度情報に基づいてＰＷＭ（Pulse Width Modulation）信号を生成するＰＷＭ生成部と、を備え、
前記レゾルバデジタルコンバータは、
前記角度情報に基づいてエンコーダパルスを生成し、前記エンコーダパルスを他の半導体装置へ出力するエンコーダ部を備え、
前記エラー検知部は、前記半導体装置におけるエラーを検知した場合にはエラー信号を前記他の半導体装置へ出力し、
前記他の半導体装置からバックアップクロックの供給を受け、当該バックアップクロックにより前記レゾルバデジタルコンバータを動作させる、
半導体装置。
【請求項１０】
バックアップ制御部をさらに備え、
前記バックアップ制御部は、前記他の半導体装置からバックアップクロックの供給を受け、前記バックアップクロックを前記レゾルバデジタルコンバータへ供給する、
請求項９に記載の半導体装置。
【請求項１１】
前記バックアップ制御部は、
前記レゾルバデジタルコンバータの設定情報を保持するレジスタと、
前記レジスタへの書き込みを禁止する書き込み禁止回路と、を備える、
請求項１０に記載の半導体装置。
【請求項１２】
前記バックアップ制御部は、前記他の半導体装置から分離通知信号を受け取り、且つ前記バックアップクロックの供給を受けると、前記設定情報及び前記バックアップクロックを前記レゾルバデジタルコンバータへ供給する、
請求項１１に記載の半導体装置。
【請求項１３】
前記レゾルバデジタルコンバータ、前記エラー検知部、及び前記バックアップ制御部には、第１の電源部及び第２の電源部からの電源電圧が供給される、
請求項１０に記載の半導体装置。
【請求項１４】
前記ＰＷＭ生成部には、前記第１の電源部からの電源電圧は供給されるが、前記第２の電源部からの電源電圧は供給されない、
請求項１３に記載の半導体装置。
【請求項１５】
前記第１の電源部による電源電圧の供給を停止する電源停止部をさらに備える、請求項１３に記載の半導体装置。
【請求項１６】
前記ＰＷＭ生成部は、前記他の半導体装置からエラー信号を受け取る前には、（Ｎ−Ｍ）相のＰＷＭ信号（ＮとＭはＮ＞Ｍである自然数）を生成し、前記他の半導体装置からエラー信号を受け取った場合には、Ｎ相のＰＷＭ信号を生成する、
請求項１０に記載の半導体装置。
【請求項１７】
前記ＰＷＭ生成部は、前記ＰＷＭ信号の周期を設定するタイマーを備え、
前記他の半導体装置からエラー信号を受け取った場合に、前記ＰＷＭ信号の周期を減ずる、
請求項１６に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御システム及び半導体装置に関し、例えばＥＶ（Electric Vehicle）、ハイブリッド車、ＰＨＶ（Plug-in Hybrid Vehicle）等に用いられるモータ制御システム及び半導体装置に関する。
【背景技術】
【０００２】
ＥＶ、ハイブリッド車、ＰＨＶ等には、駆動用のモータが設けられている。この駆動用のモータは、温度、振動、衝撃等の厳しい環境下で使用されることが想定される。このため、駆動用のモータの回転角センサとして、耐環境性に優れるレゾルバを用いることが知られている。レゾルバは、正弦波の励磁信号が入力されると、モータの回転子の回転角度に応じて、励磁信号を振幅変調したアナログ正弦波信号及びアナログ余弦波信号を出力する。
【０００３】
特許文献１には、レゾルバが、モータの回転角に応じたモータ回転角度信号を出力し、主演算手段が、回転角度信号からモータの回転角度を演算し、演算した回転角度に基づいてモータを制御する技術が開示されている。
【０００４】
特許文献１では、ＩＧスイッチがオンし、主演算手段によるモータ制御が行われる第１の動作状態と、ＩＧスイッチがオフし、主演算手段によるモータ制御が停止している第２の動作状態とが設定されている。また、特許文献１では、第２の動作状態において、副演算手段は、レゾルバからレゾルバＩ／Ｆ第２回路を介して受信した回転角度信号を用いてモータの回転角度を演算する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２３１５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方、レゾルバから出力される信号から角度情報を検出するために、レゾルバデジタルコンバータを用いることが知られている。本件発明者は、メインのＭＣＵ（Micro Controller Unit）とサブのＭＣＵを備えたモータ制御システムにおいて、メインのＭＣＵにレゾルバデジタルコンバータを内蔵し、サブのＭＣＵにはレゾルバデジタルコンバータを内蔵せずに、メインのＭＣＵ及びサブのＭＣＵの双方によりモータの制御を行うことに想到した。
【０００７】
しかし、特許文献１では、副演算手段は、ＩＧスイッチがオフしている状態のときにモータ回転角度の演算を行うものであり、副演算手段によってモータの制御を行うことは想定されていない。このため、特許文献１に開示の技術では、メインのＭＣＵにエラーが生じた場合に、モータの制御を継続することが困難になるという問題があった。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、モータ制御システムは、第１のＭＣＵと、第２のＭＣＵと、を備え、前記第１のＭＣＵは、エラー検知部と、レゾルバデジタルコンバータと、第１のＰＷＭ生成部と、を備え、前記レゾルバデジタルコンバータは、角度情報に基づいてエンコーダパルスを生成し、前記エンコーダパルスを前記第２のＭＣＵへ出力するエンコーダ部を備え、前記第２のＭＣＵは、バックアップクロック供給部と、前記エンコーダパルスから前記角度情報を復元するエンコードカウンタ部と、第２のＰＷＭ生成部と、を備え、前記エラー検知部は、前記第１のＭＣＵにおけるエラーを検知した場合にはエラー信号を前記第２のＭＣＵへ出力し、前記バックアップクロック供給部は、前記エラー信号を受け取った場合には、バックアップクロックを前記第１のＭＣＵへ供給し、前記第１のＭＣＵは、前記バックアップクロックにより前記レゾルバデジタルコンバータを動作させるものである。
【発明の効果】
【００１０】
前記一実施の形態によれば、第１のＭＣＵにエラーが生じた場合でもモータについての演算及び制御を継続することができるモータ制御システムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるモータ制御システムの構成例を示すブロック図である。
【図２】実施の形態１にかかる第１のＭＣＵの構成の一例を示すブロック図である。
【図３】実施の形態１にかかる角度情報生成部の構成の具体例を示すブロック図である。
【図４】実施の形態１にかかるエンコーダ部により生成されるエンコーダパルスの例を示す図である。
【図５】実施の形態１にかかる第２のＭＣＵの構成例を示すブロック図である。
【図６】実施の形態２にかかるモータ制御システムの構成例を示すブロック図である。
【図７】実施の形態２にかかる第１のＭＣＵの構成例を示すブロック図である。
【図８】実施の形態２にかかるバックアップ制御部のプロテクト構造について説明するための図である。
【図９】実施の形態２にかかる第２のＭＣＵの構成例を示すブロック図である。
【図１０】実施の形態２にかかる第１のＭＣＵにエラーが発生した場合のモータ制御システムの処理の流れの例を示すシーケンス図である。
【図１１】実施の形態２にかかる第１のＭＣＵの構成の他の例を示すブロック図である。
【図１２】実施の形態３にかかるモータ制御システムの構成例を示すブロック図である。
【図１３】実施の形態３にかかる第１のＭＣＵの構成例を示すブロック図である。
【図１４】実施の形態３にかかる第２のＭＣＵの構成例を示すブロック図である。
【図１５】実施の形態３にかかる第１のＭＣＵにエラーが発生した場合のモータ制御システムの処理の流れの例を示すシーケンス図である。
【図１６】実施の形態３にかかる第２のＭＣＵにエラーが発生した場合のモータ制御システムの処理の流れの例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１３】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。
【００１４】
以下、図面を参照して実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１５】
実施の形態１
図１は、実施の形態１にかかるモータ制御システム１の構成例を示すブロック図である。モータ制御システム１は、ＥＶ、ハイブリッド車、ＰＨＶ等に用いられるシステムである。モータ制御システム１は、モータ２と、レゾルバ３と、プリドライバ４と、インバータ５と、第１のＭＣＵ１００と、第２のＭＣＵ２００と、を備えている。なお、インバータ５を構成するスイッチング素子は、例えば、ＩＧＢＴ（Insulated Gate Bipolar  Transistor）である。
【００１６】
モータ２は、例えば三相モータであるが、これに限らない。本実施の形態１では、モータ２が三相モータである場合について説明する。なお、モータ２は、モータジェネレータ（Motor Generator）であってもよい。モータ２には、レゾルバ３が取り付けられている。
【００１７】
レゾルバ３は、第１のＭＣＵ１００から正弦波の励磁信号が入力されると、モータ２の回転子の回転角度に応じて、正弦波信号及び余弦波信号を出力する。そして、レゾルバ３からの正弦波出力信号及び余弦波出力信号は、第１のＭＣＵ１００へ入力される。
【００１８】
プリドライバ４は、モータ２のＵ／Ｖ／Ｗ相を制御するためのＰＷＭ（Pulse Width Modulation）信号を、第１のＭＣＵ１００及び第２のＭＣＵ２００から受け取る。なお、第１のＭＣＵ１００から受け取るＰＷＭ信号を第１のＰＷＭ信号とも呼ぶ。また、第２のＭＣＵ２００から受け取るＰＷＭ信号を第２のＰＷＭ信号とも呼ぶ。
【００１９】
プリドライバ４は、受け取ったＰＷＭ信号に基づいて、インバータ５を構成するスイッチング素子の開閉を制御するゲート制御信号を生成する。すなわち、プリドライバ４は、第１のＰＷＭ信号を受け取った場合には、第１のＰＷＭ信号に基づいてゲート制御信号を生成し、第２のＰＷＭ信号を受け取った場合には、第２のＰＷＭ信号に基づいてゲート制御信号を生成する。そして、プリドライバ４は、生成されたゲート制御信号をインバータ５へ出力する。
【００２０】
インバータ５は、プリドライバ４から入力されたゲート制御信号に基づいて、図示しない直流電源からの直流電圧を三相交流電圧に変換する。そして、インバータ５は、各相の交流電圧を各相巻線にそれぞれ供給することによってモータ２を駆動する。
【００２１】
続いて、図２のブロック図を用いて、実施の形態１にかかる第１のＭＣＵ１００の構成例について説明する。第１のＭＣＵ１００は、ＣＰＵ（Central Processing Unit）１１０と、ＰＷＭ生成部１２０と、レゾルバデジタルコンバータ（ＲＤＣ）１３０と、エラー検知部１６０と、バックアップ制御部１７０と、を備えている。また、レゾルバデジタルコンバータ１３０は、角度情報生成部１３１と、エンコーダ部１３２と、を備えている。なお、ＣＰＵ１１０を第１のＣＰＵとも呼ぶ。また、ＰＷＭ生成部１２０を第１のＰＷＭ生成部とも呼ぶ。
【００２２】
角度情報生成部１３１は、励磁信号を生成してレゾルバ３へ出力する。また、角度情報生成部１３１は、レゾルバ３から正弦波出力信号及び余弦波出力信号を受け取る。なお、レゾルバ３から受け取る正弦波出力信号及び余弦波出力信号は、アナログ信号である。また、角度情報生成部１３１は、受け取った正弦波出力信号及び余弦波出力信号に基づいて、デジタル値である角度情報を生成する。そして、角度情報生成部１３１は、生成された角度情報を、ＣＰＵ１１０及びエンコーダ部１３２へ出力する。
【００２３】
ＣＰＵ１１０は、角度情報生成部１３１から角度情報を受け取る。また、ＣＰＵ１１０は、受け取った角度情報に基づいて、ＰＷＭ制御信号を生成する。なお、ＣＰＵ１１０は、図示しないメモリに格納されたプログラムを実行することによりＰＷＭ制御信号の生成を行う。
【００２４】
なお、ＣＰＵ１１０が生成するＰＷＭ制御信号は、ＰＷＭ信号を制御することにより、モータ２のフィードバック制御を行うための制御信号である。また、ＣＰＵ１１０が生成するＰＷＭ制御信号を第１のＰＷＭ制御信号とも呼ぶ。そして、ＣＰＵ１１０は、生成されたＰＷＭ制御信号をＰＷＭ生成部１２０へ出力する。
【００２５】
ＰＷＭ生成部１２０は、ＣＰＵ１１０からＰＷＭ制御信号を受け取る。また、ＰＷＭ生成部１２０は、受け取ったＰＷＭ制御信号に基づいて、ＰＷＭ信号（第１のＰＷＭ信号）を生成する。具体的には、第１のＰＷＭ制御信号によって、ＰＷＭ生成部１２０が生成する第１のＰＷＭ信号の周期及びデューティ比の少なくとも一方が変更される。そして、ＰＷＭ生成部１２０は、ＰＷＭ信号をプリドライバ４へ供給する。
【００２６】
エンコーダ部１３２は、角度情報生成部１３１から角度情報を受け取る。また、エンコーダ部１３２は、受け取った角度情報に基づいて、Ａ相、Ｂ相、Ｚ相からなるエンコーダパルスを生成する。なお、エンコーダパルスについては、後に図４を用いて詳述する。そして、エンコーダ部１３２は、生成されたエンコーダパルスを第２のＭＣＵ２００へ出力する。
【００２７】
エラー検知部１６０は、第１のＭＣＵ１００におけるエラーを検知する。具体的には、エラー検知部１６０は、第１のＭＣＵ１００におけるクロック系異常、ＥＣＣ（Error Check and Correct）エラー、パリティエラー等を検知する。以下、第１のＭＣＵ１００におけるエラーが検知される前の状態を通常時とも呼ぶ。また、第１のＭＣＵ１００におけるエラーが検知された後の状態を異常時とも呼ぶ。エラー検知部１６０は、第１のＭＣＵ１００におけるエラーを検知した場合に、エラー信号を第２のＭＣＵ２００へ出力する。
【００２８】
バックアップ制御部１７０は、第２のＭＣＵ２００からバックアップクロックの供給を受ける。バックアップクロックとは、第１のＭＣＵ１００内のクロックがレゾルバデジタルコンバータ１３０に供給されない場合であっても、レゾルバデジタルコンバータ１３０の動作を継続するためのクロックである。なお、バックアップクロックのクロック周期等のバックアップクロック情報は、予め第２のＭＣＵ２００により保持されている。
【００２９】
バックアップ制御部１７０は、第２のＭＣＵ２００から供給されるバックアップクロックを、レゾルバデジタルコンバータ１３０へ供給する。これにより、第１のＭＣＵ１００のクロックに異常が生じた場合であっても、レゾルバデジタルコンバータ１３０に、回転角情報を生成させることができる。
【００３０】
続いて、図３のブロック図を用いて、角度情報生成部１３１の構成例について説明する。図３の例では、角度情報生成部１３１は、励磁生成部１３３と、増幅器１３４と、同期信号生成部１３５と、差動増幅器１３６と、差動増幅器１３７と、Ａ／Ｄ変換器１３８と、乗算器１３９と、乗算器１４０と、減算器１４１と、同期検波部１４２と、ＰＩ（Proportional Integral）制御器１４３と、ｃｏｓテーブル１４４と、ｓｉｎテーブル１４５と、を備えている。なお、図３の例では、励磁生成部１３３、同期信号生成部１３５、乗算器１３９、乗算器１４０、減算器１４１、同期検波部１４２、ＰＩ制御器１４３、ｃｏｓテーブル１４４、及びｓｉｎテーブル１４５は、１．２Ｖ系で動作する。また、増幅器１３４、差動増幅器１３６、差動増幅器１３７、及びＡ／Ｄ変換器１３８は、５Ｖ系で動作する。
【００３１】
励磁生成部１３３は、励磁信号として、角周波数ωと時間ｔで表されるｓｉｎωｔを生成する。また、励磁生成部１３３は、生成された励磁信号ｓｉｎωｔを、増幅器１３４を介してレゾルバ３に供給する。また、励磁生成部１３３は、生成された励磁信号ｓｉｎωｔを同期信号生成部１３５へ出力する。
【００３２】
レゾルバ３は、励磁信号ｓｉｎωｔが供給されることにより、モータ２の回転子の回転角θに応じて、励磁信号ｓｉｎωｔを振幅変調した２つの信号ｓｉｎθ・ｓｉｎωｔとｃｏｓθ・ｓｉｎωｔを出力する。ｓｉｎθ・ｓｉｎωｔは、差動増幅器１３６を介してＡ／Ｄ変換器１３８へ入力される。また、ｃｏｓθ・ｓｉｎωｔは、差動増幅器１３７を介してＡ／Ｄ変換器１３８へ入力される。
【００３３】
Ａ／Ｄ変換器１３８は、アナログ信号であるｓｉｎθ・ｓｉｎωｔ及びｃｏｓθ・ｓｉｎωｔをそれぞれデジタル値に変換する。また、Ａ／Ｄ変換器１３８は、デジタル値に変換されたｓｉｎθ・ｓｉｎωｔを乗算器１３９へ出力する。また、Ａ／Ｄ変換器１３８は、デジタル値に変換されたｃｏｓθ・ｓｉｎωｔを乗算器１４０へ出力する。
【００３４】
乗算器１３９は、ｃｏｓテーブル１４４により帰還入力された前回の演算結果の回転角度φに対する余弦関数値ｃｏｓφをｓｉｎθ・ｓｉｎωｔに乗じて、（ｓｉｎθ・ｓｉｎωｔ）・ｃｏｓφを減算器１４１へ出力する。また、乗算器１４０は、ｓｉｎテーブル１４５により帰還入力された前回の演算結果の回転角度φに対する正弦関数値ｓｉｎφをｃｏｓθ・ｓｉｎωｔに乗じて、（ｃｏｓθ・ｓｉｎωｔ）・ｓｉｎφを減算器１４１へ出力する。
【００３５】
減算器１４１は、乗算器１３９から受け取った値から乗算器１４０から受け取った値を減算する。すなわち、減算器１４１は、（ｓｉｎθ・ｓｉｎωｔ）・ｃｏｓφ−（ｃｏｓθ・ｓｉｎωｔ）・ｓｉｎφを行うことにより、ｓｉｎ（θ−φ）・ｓｉｎωｔを同期検波部１４２へ出力する。
【００３６】
同期信号生成部１３５は、励磁生成部１３３から受け取った励磁信号ｓｉｎωｔから同期信号を生成する。ここで、同期信号とは、励磁信号ｓｉｎωｔの１周期ごとに出力されるタイミングパルスである。そして、同期信号生成部１３５は、生成された同期信号を同期検波部１４２へ出力する。
【００３７】
同期検波部１４２は、同期信号生成部１３５から受け取った同期信号により減算器１４１から受け取った信号を同期検波する。これにより、同期検波部１４２は、ｓｉｎ（θ−φ）・ｓｉｎωｔからｓｉｎωｔの成分を除去する。そして、同期検波部１４２は、ｓｉｎ（θ−φ）をＰＩ制御器１４３へ出力する。
【００３８】
ＰＩ制御器１４３は、ｓｉｎ（θ−φ）に比例積分演算を施すことにより、角度情報として回転角度φを算出する。また、ＰＩ制御器１４３は、算出された回転角度φをｃｏｓテーブル１４４及びｓｉｎテーブル１４５へ出力する。具体的には、ＰＩ制御器１４３は、回転角度φに対する余弦関数値ｃｏｓφをｃｏｓテーブル１４４へ出力し、回転角度φに対する正弦関数値ｓｉｎφをｓｉｎテーブル１４５へ出力する。さらに、ＰＩ制御器１４３は、回転角度φを、ＣＰＵ１１０及びエンコーダ部１３２へ出力する。
【００３９】
このようにして、角度情報生成部１３１は、モータ２の回転子の回転角θに応じた回転角度φを、ＣＰＵ１１０及びエンコーダ部１３２へ出力する。
【００４０】
続いて、図４を用いて、エンコーダ部１３２により生成されるエンコーダパルスについて説明する。エンコーダ部１３２は、角度情報生成部１３１から受け取った回転角度φを、いわゆるインクリメンタルエンコーダが出力する信号と同等の形式のパルス信号に変換する。すなわち、エンコーダ部１３２は、回転角度φに基づいて、図４の例に示すＡ相、Ｂ相、Ｚ相信号からなるエンコーダパルスを生成する。
【００４１】
Ｚ相信号は、原点（すなわち０°）を指定するパルスを出力する信号である。Ｚ相信号は、回転角度φが０°になると１パルス出力する。すなわち、Ｚ相信号は、モータ２の回転子が１回転するごとに１パルス出力する。
【００４２】
Ａ相信号及びＢ相信号は、回転角度φが所定角度変化する毎に１つのパルスを出力する信号である。すなわち、Ａ相信号及びＢ相信号は、モータ２の回転子が所定角度回転する毎に１つのパルスを出力する信号である。例えば、回転角度φが１°変化するごとに１パルス出力するという設定の場合には、モータ２の回転子が１回転するとＡ相信号及びＢ相信号はそれぞれ３６０個のパルスを出力する。
【００４３】
また、Ａ相とＢ相とは、互いに位相が９０°ずれた波形である。モータ２が正回転の場合には、Ａ相が９０°進んだ波形となり、モータ２が逆回転の場合には、Ｂ相が９０°進んだ波形となる。
【００４４】
続いて、図５のブロック図を用いて、実施の形態１にかかる第２のＭＣＵ２００の構成例について説明する。第２のＭＣＵ２００は、エンコードカウンタ部２１０と、ＣＰＵ２２０と、ＰＷＭ生成部２３０と、バックアップクロック供給部２５０と、を備えている。なお、ＣＰＵ２２０を第２のＣＰＵとも呼ぶ。また、ＰＷＭ生成部２３０を第２のＰＷＭ生成部とも呼ぶ。
【００４５】
エンコードカウンタ部２１０は、第１のＭＣＵ１００のエンコーダ部１３２からエンコーダパルスを受け取る。すなわち、エンコードカウンタ部２１０は、エンコーダ部１３２からＡ相、Ｂ相、及びＺ相信号を受け取る。また、エンコードカウンタ部２１０は、受け取ったエンコーダパルスから角度情報を復元する。具体的には、エンコードカウンタ部２１０は、Ｚ相を基準にして、Ａ相又はＢ相のパルスをカウントすることにより、回転角度φを復元する。そして、エンコードカウンタ部２１０は、復元された角度情報（回転角度φ）をＣＰＵ２２０へ出力する。
【００４６】
ＣＰＵ２２０は、エンコードカウンタ部２１０から角度情報を受け取る。また、ＣＰＵ２２０は、受け取った角度情報に基づいて、ＰＷＭ制御信号を生成する。なお、ＣＰＵ２２０は、図示しないメモリに格納されたプログラムを実行することによりＰＷＭ制御信号の生成を行う。
【００４７】
なお、ＣＰＵ２２０が生成するＰＷＭ制御信号は、ＰＷＭ信号を制御することにより、モータ２のフィードバック制御を行うための制御信号である。また、ＣＰＵ２２０が生成するＰＷＭ制御信号を第２のＰＷＭ制御信号とも呼ぶ。そして、ＣＰＵ２２０は、生成されたＰＷＭ制御信号をＰＷＭ生成部２３０へ出力する。
【００４８】
ＣＰＵ２２０は、第１のＭＣＵ１００のエラー検知部１６０からエラー信号を受け取る。また、ＣＰＵ２２０は、エラー信号を受け取ると、バックアップクロック供給部２５０へエラー信号を出力する。
【００４９】
ＰＷＭ生成部２３０は、ＣＰＵ２２０からＰＷＭ制御信号を受け取る。また、ＰＷＭ生成部２３０は、受け取ったＰＷＭ制御信号に基づいて、ＰＷＭ信号（第２のＰＷＭ信号）を生成する。具体的には、第２のＰＷＭ制御信号によって、ＰＷＭ生成部２３０が生成する第２のＰＷＭ信号の周期及びデューティ比の少なくとも一方が変更される。そして、ＰＷＭ生成部２３０は、ＰＷＭ信号をプリドライバ４へ供給する。
【００５０】
バックアップクロック供給部２５０は、バックアップクロック情報を予め保持している。なお、バックアップクロック情報は、第２のＭＣＵ２００におけるバックアップクロック供給部２５０以外の構成が保持するようにしてもよい。バックアップクロック供給部２５０は、エラー信号を受け取ると、予め保持しているバックアップクロック情報に基づいて所定の周期のバックアップクロックを第１のＭＣＵ１００のバックアップ制御部１７０へ供給する。
【００５１】
なお、上述の説明では、角度情報に基づいてＰＷＭ制御信号を生成することについて説明したが、これに限らない。ＣＰＵ１１０及びＣＰＵ２２０によるＰＷＭ制御信号の生成について、角度情報に加えて、モータ２の電流情報を用いるようにしてもよい。この場合、第１のＭＣＵ１００及び第２のＭＣＵ２００には、モータ２からのモータ電流が入力される。また、第１のＭＣＵ１００及び第２のＭＣＵ２００では、図示しないＡ／Ｄ変換器が、アナログ値のモータ電流をデジタル値である電流情報に変換してＣＰＵ１１０及びＣＰＵ２２０へ出力する。そして、ＣＰＵ１１０及びＣＰＵ２２０は、角度情報及び電流情報に基づいて、ＰＷＭ制御信号の生成を行う。なお、以下に説明する実施の形態２及び３についても第１のＭＣＵ及び第２のＭＣＵのＣＰＵによるＰＷＭ制御信号の生成について、角度情報に加えて、モータの電流情報を用いるようにしてもよい。
【００５２】
なお、上述の説明では、ＰＷＭ生成部が、ＣＰＵから受け取ったＰＷＭ制御信号に基づいて、ＰＷＭ信号を生成することについて説明したが、これに限らない。ＰＷＭ生成部は、ＣＰＵ相当の機能を有していてもよい。すなわち、ＰＷＭ生成部１２０が角度情報に基づいて第１のＰＷＭ信号を生成する構成としてもよい。また、ＰＷＭ生成部２３０が角度情報に基づいて第２のＰＷＭ信号を生成する構成としてもよい。なお、以下に説明する実施の形態２及び３についてもＰＷＭ生成部がＣＰＵ相当の機能を有していてもよい。
【００５３】
以上、説明したように、実施の形態１にかかる第１のＭＣＵ１００は、エラー検知部１６０と、レゾルバ３から出力される正弦波信号及び余弦波信号に基づいて角度情報を生成するレゾルバデジタルコンバータ１３０と、ＰＷＭ生成部１２０と、を備える構成としている。また、レゾルバデジタルコンバータ１３０は、角度情報に基づいてエンコーダパルスを生成し、当該エンコーダパルスを第２のＭＣＵ２００へ出力するエンコーダ部１３２を備える構成としている。また、エラー検知部１６０は、第１のＭＣＵ１００におけるエラーを検知した場合にはエラー信号を第２のＭＣＵ２００へ出力する構成としている。さらに、第１のＭＣＵ１００は、第２のＭＣＵ２００からバックアップクロックの供給を受け、当該バックアップクロックによりレゾルバデジタルコンバータ１３０を動作させる構成としている。これにより、実施の形態１にかかる第１のＭＣＵ１００（半導体装置）では、第１のＭＣＵ１００にエラーが生じた場合でもレゾルバデジタルコンバータ１３０を動作させ、且つ角度情報に基づくエンコーダパルスを第２のＭＣＵ２００（他の半導体装置）へ出力することができる。
【００５４】
また、実施の形態１にかかるモータ制御システム１は、第１のＭＣＵ１００と、第２のＭＣＵ２００と、を備える構成としている。また、第１のＭＣＵ１００は、エラー検知部１６０と、レゾルバ３から出力される正弦波信号及び余弦波信号に基づいて角度情報を生成するレゾルバデジタルコンバータ１３０と、第１のＰＷＭ生成部１２０と、を備える構成としている。また、第２のＭＣＵ２００は、バックアップクロック供給部２５０と、エンコーダパルスから角度情報を復元するエンコードカウンタ部２１０と、第２のＰＷＭ生成部２３０と、を備える構成としている。また、エラー検知部１６０は、第１のＭＣＵ１００におけるエラーを検知した場合にはエラー信号を第２のＭＣＵ２００へ出力する構成としている。また、バックアップクロック供給部２５０は、エラー信号を受けとった場合に、バックアップクロックを第１のＭＣＵへ供給する構成としている。さらに、第１のＭＣＵ１００は、第２のＭＣＵ２００からバックアップクロックの供給を受け、当該バックアップクロックによりレゾルバデジタルコンバータ１３０を動作させる構成としている。これにより、実施の形態１にかかるモータ制御システム１では、第１のＭＣＵ１００にエラーが生じた場合でもモータ２についての演算及び制御を継続することができる。
【００５５】
さらに、モータ制御システム１では、バックアップクロック供給部２５０が、予めバックアップクロック情報を保持しており、エラー信号を受け取ると、バックアップクロック情報に基づいて所定の周期のバックアップクロックを第１のＭＣＵ１００に供給する構成としている。これにより、モータ制御システム１では、第１のＭＣＵ１００にエラーが生じた場合でも所定の周期のバックアップクロックをレゾルバデジタルコンバータ１３０へ供給することができる。
【００５６】
実施の形態２
続いて、実施の形態２について説明する。図６は、実施の形態２にかかるモータ制御システム１Ａの構成例を示すブロック図である。モータ制御システム１Ａは、モータ２と、レゾルバ３と、プリドライバ４と、インバータ５と、第１の電源部６と、第２の電源部７と、第３の電源部８と、第１のＭＣＵ１００Ａと、第２のＭＣＵ２００Ａと、を備えている。なお、第１の電源部６、第２の電源部７、及び第３の電源部８は、５Ｖ系電源であるものとして説明する。
【００５７】
第１の電源部６は、第１のＭＣＵ１００Ａ内のすべての構成に電源電圧を供給するものである。また、第３の電源部８は、第２のＭＣＵ２００Ａ内のすべての構成に電源電圧を供給するものである。
【００５８】
第２の電源部７は、第１のＭＣＵ１００Ａ内の一部の構成のみに電源電圧を供給するものである。このため、第１のＭＣＵ１００Ａ内の一部の構成には、第１の電源部６及び第２の電源部７の両方から電源電圧が供給される。すなわち、第１のＭＣＵ１００Ａ内の一部の構成の電源系は、冗長構成である。第１のＭＣＵ１００Ａ内のどの構成の電源系を冗長構成とするかについては、図７の例を用いて説明する。
【００５９】
続いて、図７のブロック図を用いて、実施の形態２にかかる第１のＭＣＵ１００Ａの構成例について説明する。第１のＭＣＵ１００Ａは、ＣＰＵ１１０と、ＰＷＭ生成部１２０と、レゾルバデジタルコンバータ１３０と、レギュレータ１５０と、エラー検知部１６０Ａと、バックアップ制御部１７０Ａと、を備えている。なお、レギュレータ１５０は、５Ｖ系電源から１．２Ｖ系電源を生成するものとして説明する。
【００６０】
第１のＭＣＵ１００Ａにおける電源電圧の供給について説明する。ＣＰＵ１１０及びＰＷＭ生成部１２０には、第１の電源部６からの電源電圧が直接供給される。なお、ＣＰＵ１１０及びＰＷＭ生成部１２０には、第２の電源部７からの電源電圧は供給されない。
【００６１】
第１の電源部６からの電源電圧は、ダイオード９を介して、レギュレータ１５０及びレゾルバデジタルコンバータ１３０へ供給される。また、第２の電源部７からの電源電圧は、ダイオード１０を介して、レギュレータ１５０及びレゾルバデジタルコンバータ１３０へ供給される。
【００６２】
また、レギュレータ１５０を介した電源電圧は、レゾルバデジタルコンバータ１３０、エラー検知部１６０Ａ、及びバックアップ制御部１７０Ａへ供給される。
【００６３】
第１のＭＣＵ１００Ａにおいて、レゾルバデジタルコンバータ１３０、エラー検知部１６０Ａ、及びバックアップ制御部１７０Ａには、第１の電源部６及び第２の電源部７の両方から電源電圧が供給される。すなわち、第１のＭＣＵ１００Ａにおいて、レゾルバデジタルコンバータ１３０、エラー検知部１６０Ａ、及びバックアップ制御部１７０Ａの電源系は、冗長構成である。
【００６４】
なお、レゾルバデジタルコンバータ１３０において、レギュレータ１５０を介さない冗長構成の電源電圧は、図３に示す５Ｖ系で動作する回路部に供給される。すなわち、レゾルバデジタルコンバータ１３０において、レギュレータ１５０を介さない冗長構成の電源電圧は、増幅器１３４、差動増幅器１３６、差動増幅器１３７、及びＡ／Ｄ変換器１３８に供給される。
【００６５】
また、レゾルバデジタルコンバータ１３０において、レギュレータ１５０を介した冗長構成の電源電圧は、図３に示す１．２Ｖ系で動作する回路部と、エンコーダ部１３２と、に供給される。すなわち、レゾルバデジタルコンバータ１３０において、レギュレータ１５０を介した冗長構成の電源電圧は、励磁生成部１３３、同期信号生成部１３５、乗算器１３９、乗算器１４０、減算器１４１、同期検波部１４２、ＰＩ制御器１４３、ｃｏｓテーブル１４４、ｓｉｎテーブル１４５、及びエンコーダ部１３２に供給される。
【００６６】
次に、エラー検知部１６０Ａ及びバックアップ制御部１７０Ａについて説明する。エラー検知部１６０Ａは、第１のＭＣＵ１００Ａにおけるエラーを検知する。具体的には、エラー検知部１６０Ａは、第１のＭＣＵ１００Ａにおける電源系異常、クロック系異常、ＥＣＣ（Error Check and Correct）エラー、パリティエラー等を検知する。エラー検知部１６０Ａは、第１のＭＣＵ１００Ａにおけるエラーを検知した場合に、エラー信号を第２のＭＣＵ２００Ａへ出力する。
【００６７】
バックアップ制御部１７０Ａは、異常時に用いる設定情報を保持している。なお、バックアップ制御部１７０Ａは、突然の電源停止や誤書き込みによって設定情報を失うことを防止するようにプロテクト構造により構成されている。
【００６８】
ここで、図８を用いて、バックアップ制御部１７０Ａのプロテクト構造について説明する。バックアップ制御部１７０Ａは、レジスタ１７１と、書き込み禁止回路１７２と、を備えている。レジスタ１７１は、レゾルバデジタルコンバータ１３０の設定情報を保持するレジスタである。また、書き込み禁止回路１７２は、レジスタ１７１への書き込みを禁止する回路である。書き込み禁止回路１７２は、フリップフロップ１７３と、ゲート回路１７４と、ゲート回路１７５と、を備えている。
【００６９】
書き込み禁止回路１７２について説明する。初期状態では、フリップフロップ１７３にはＬｏｗが設定されている。フリップフロップ１７３からのＬｏｗ出力は、ゲート回路１７４の一方の入力端子に付加されているＮｏｔ回路によってＨｉｇｈになる。これにより、ゲート回路１７４の他方の入力端子に設定情報が入力されると、入力された設定情報はレジスタ１７１に書き込まれる。
【００７０】
フリップフロップ１７３からのＬｏｗ出力は、ゲート回路１７５の一方の入力端子に付加されているＮｏｔ回路によってＨｉｇｈになる。この状態で、書き込み禁止パルスがゲート回路１７５の他方の入力端子に入力されると、ゲート回路１７５からフリップフロップ１７３へＨｉｇｈが出力される。これにより、フリップフロップ１７３はＬｏｗからＨｉｇｈへと切り替わる。フリップフロップ１７３からのＨｉｇｈ出力は、ゲート回路１７４の一方の入力端子に付加されているＮｏｔ回路によってＬｏｗになる。これにより、フリップフロップ１７３がＨｉｇｈへと切り替わった後は、ゲート回路１７４の他方の入力端子に入力された情報は、レジスタ１７１に書き込まれない。すなわち、バックアップ制御部１７０Ａでは、誤書き込みによってレジスタ１７１に保持された設定情報を失うことを防止することができる。
【００７１】
また、図８に示すように、レジスタ１７１は、電源冗長領域に含まれている。これにより、バックアップ制御部１７０Ａでは、第１の電源部６が突然電源停止した場合であってもレジスタ１７１に保持された設定情報を失うことを防止することができる。
【００７２】
図７に戻り説明を続ける。バックアップ制御部１７０Ａは、第２のＭＣＵ２００Ａからバックアップクロックの供給を受ける。バックアップ制御部１７０Ａは、第２のＭＣＵ２００Ａから供給されるバックアップクロックを、レゾルバデジタルコンバータ１３０へ供給する。これにより、第１のＭＣＵ１００Ａのクロックに異常が生じた場合であっても、レゾルバデジタルコンバータ１３０に、回転角情報を生成させることができる。
【００７３】
また、バックアップ制御部１７０Ａは、第２のＭＣＵ２００Ａから分離通知信号を受け取り、且つバックアップクロックが供給される場合に、レゾルバデジタルコンバータ１３０の動作を継続させる制御に切り替えるようにしてもよい。ここで、分離通知信号とは、第１のＭＣＵ１００Ａからレゾルバデジタルコンバータ１３０を分離・独立させて動作させるトリガとなる信号である。この場合、バックアップ制御部１７０Ａは、分離通知信号を受け取り、且つバックアップクロックが供給されると、レゾルバデジタルコンバータ１３０へ異常時に用いる設定情報を出力し、且つバックアップクロックを供給する。
【００７４】
続いて、図９のブロック図を用いて、実施の形態２にかかる第２のＭＣＵ２００Ａの構成例について説明する。第２のＭＣＵ２００Ａは、エンコードカウンタ部２１０と、ＣＰＵ２２０と、ＰＷＭ生成部２３０と、分離通知部２４０と、バックアップクロック供給部２５０と、を備えている。
【００７５】
ＣＰＵ２２０は、第１のＭＣＵ１００Ａのエラー検知部１６０Ａからエラー信号を受け取る。また、ＣＰＵ２２０は、エラー信号を受け取ると、異常時の制御への切り替えを行う。具体的には、ＣＰＵ２２０は、分離通知部２４０及びバックアップクロック供給部２５０へエラー信号を出力する。また、ＣＰＵ２２０は、異常時にエンコードカウンタ部２１０から角度情報を受け取った場合に、受け取った角度情報に基づいて、ＰＷＭ制御信号（第２のＰＷＭ制御信号）を生成する。そして、ＣＰＵ２２０は、生成されたＰＷＭ制御信号をＰＷＭ生成部２３０へ出力する。
【００７６】
分離通知部２４０は、エラー信号を受け取ると、分離通知信号を第１のＭＣＵ１００Ａのバックアップ制御部１７０Ａへ出力する。
【００７７】
バックアップクロック供給部２５０は、バックアップクロック情報を予め保持している。なお、バックアップクロック情報は、第２のＭＣＵ２００Ａにおけるバックアップクロック供給部２５０以外の構成が保持するようにしてもよい。バックアップクロック供給部２５０は、エラー信号を受け取ると、予め保持しているバックアップクロック情報に基づいて所定の周期のバックアップクロックを第１のＭＣＵ１００Ａのバックアップ制御部１７０Ａへ供給する。
【００７８】
続いて、図１０のシーケンス図を用いて、第１のＭＣＵ１００Ａにエラーが発生した場合のモータ制御システム１Ａの処理の流れの例について説明する。
【００７９】
第１のＭＣＵ１００Ａにエラーが発生していない通常時には、第１のＭＣＵ１００Ａは、ＰＷＭ生成部１２０により生成されたＰＷＭ信号（第１のＰＷＭ信号）をプリドライバ４へ供給する（ステップＳ１０１）。
【００８０】
次に、第１のＭＣＵ１００Ａは、エラー検知部１６０Ａによりエラーを検知する（ステップＳ１０２）。ステップＳ１０２にてエラーが検知された場合に、第１のＭＣＵ１００Ａは、エラー検知部１６０Ａによりエラー信号を第２のＭＣＵ２００Ａに出力する（ステップＳ１０３）。
【００８１】
エラー信号を受け取ると、第２のＭＣＵ２００Ａは、分離通知部２４０により、分離通知信号を第１のＭＣＵ１００Ａへ出力し（ステップＳ１０４）、且つバックアップクロック供給部２５０により、バックアップクロックを第１のＭＣＵ１００Ａへ供給する（ステップＳ１０５）。
【００８２】
次に、第１のＭＣＵ１００Ａのバックアップ制御部１７０Ａは、異常時に用いる設定情報及びバックアップクロックをレゾルバデジタルコンバータ１３０へ供給する（ステップＳ１０６）。
【００８３】
レゾルバデジタルコンバータ１３０は、角度情報生成部１３１により、回転角φを取得する（ステップＳ１０７）。次に、レゾルバデジタルコンバータ１３０は、エンコーダ部１３２により、取得された回転角φに基づいてエンコーダパルスを生成する（ステップＳ１０８）。そして、レゾルバデジタルコンバータ１３０は、生成されたエンコーダパルスを第２のＭＣＵ２００Ａへ出力する（ステップＳ１０９）。
【００８４】
第２のＭＣＵ２００Ａは、エンコードカウンタ部２１０により、回転角φを復元する（ステップＳ１１０）。次に、第２のＭＣＵ２００Ａは、ＣＰＵ２２０により、回転角φに基づいてＰＷＭ制御信号（第２のＰＷＭ制御信号）を生成し、ＰＷＭ生成部２３０により、ＰＷＭ制御信号に基づいてＰＷＭ信号（第２のＰＷＭ信号）を生成する（ステップＳ１１１）。そして、第２のＭＣＵ２００Ａは、生成されたＰＷＭ信号をプリドライバ４へ供給する（ステップＳ１１２）。
【００８５】
以上、説明したように、実施の形態２にかかる第１のＭＣＵ１００Ａでは、バックアップ制御部１７０Ａは、設定情報を保持するレジスタ１７１と、レジスタ１７１への書き込みを禁止する書き込み禁止回路１７２と、を備える構成としている。これにより、第１のＭＣＵ１００Ａでは、誤書き込みによってレジスタ１７１に保持された設定情報を失うことを防止することができる。
【００８６】
また、バックアップ制御部１７０Ａは、第２のＭＣＵ２００Ａから分離通知信号を受け取り、且つバックアップクロックの供給を受けると、設定情報及びバックアップクロックをレゾルバデジタルコンバータ１３０へ供給する構成としている。これにより、第１のＭＣＵ１００Ａでは、第２のＭＣＵ２００Ａからの分離通知信号をトリガとして、第１のＭＣＵ１００Ａからレゾルバデジタルコンバータ１３０を分離・独立させて動作させることができる。
【００８７】
また、第１のＭＣＵ１００Ａでは、レゾルバデジタルコンバータ１３０、エラー検知部１６０Ａ、及びバックアップ制御部１７０Ａには、第１の電源部６及び第２の電源部７からの電源電圧が供給される構成としている。これにより、第１のＭＣＵ１００Ａでは、第１のＭＣＵ１００Ａに電源系異常が発生した場合であっても、第１のＭＣＵ１００Ａにおけるエラーの検知を行うことができ、且つ、レゾルバデジタルコンバータ１３０への電源及びクロックの供給を維持することができる。このため、第１のＭＣＵ１００Ａでは、第１のＭＣＵ１００Ａに電源系異常が発生した場合であっても、レゾルバデジタルコンバータ１３０に回転角情報を生成させることができる。
【００８８】
さらに、第１のＭＣＵ１００Ａでは、ＰＷＭ生成部１２０には、第１の電源部６からの電源電圧は供給されるが、第２の電源部７からの電源電圧は供給されない構成としている。これにより、第１のＭＣＵ１００Ａでは、レゾルバデジタルコンバータ１３０に回転角情報を生成させるために必要な領域のみ、電源を冗長構成とすることができる。このため、第１のＭＣＵ１００Ａでは、第１のＭＣＵ１００Ａ内のすべての構成の電源を冗長構成とする場合に比べて、安価に冗長性を確保することができる。
【００８９】
また、実施の形態２にかかるモータ制御システム１Ａでは、第２のＭＣＵ２００Ａが、第１のＭＣＵ１００Ａからエラー信号を受け取ると、分離通知信号を第１のＭＣＵ１００Ａへ出力する分離通知部２４０をさらに備える構成としている。また、第１のＭＣＵ１００Ａのバックアップ制御部１７０Ａは、第２のＭＣＵ２００Ａから分離通知信号を受け取り、且つバックアップクロックの供給を受けると、設定情報及びバックアップクロックをレゾルバデジタルコンバータ１３０へ供給する構成としている。これにより、実施の形態２にかかるモータ制御システム１Ａでは、第２のＭＣＵ２００Ａからの分離通知信号をトリガとして、第１のＭＣＵ１００Ａからレゾルバデジタルコンバータ１３０を分離・独立させて動作させることができる。
【００９０】
なお、上述した説明では、実施の形態２にかかる第１のＭＣＵ１００Ａにおいて、第２のＭＣＵ２００Ａから供給されるバックアップクロックをレゾルバデジタルコンバータ１３０に供給することは、第１のＭＣＵ１００Ａの異常時に行うものとして説明したが、これに限らない。図１１の例に示すように、第１のＭＣＵ１００Ａは、電源停止部１８０を備える構成としてもよい。ここで、電源停止部１８０は、第１の電源部６による電源電圧の供給を停止するものである。電源停止部１８０は、例えば、通常モードに比べて低い精度でレゾルバデジタルコンバータ１３０を動作させるスタンバイモードに切り替えられた場合に、第１の電源部６による電源電圧の供給を停止する。なお、スタンバイモードは、例えば、停車時でも角度情報を監視し続けるアプリケーションにおいて用いられる。
【００９１】
エラー検知部１６０Ａは、第１の電源部６による電源電圧の供給停止を検知し、エラー信号を第２のＭＣＵ２００Ａへ出力する。これにより、第１のＭＣＵ１００Ａでは、異常時でなくとも、第２のＭＣＵ２００Ａからバックアップクロックの供給を受けることができる。すなわち、第１のＭＣＵ１００Ａでは、異常時でなくとも、第２のＭＣＵ２００Ａから供給されるバックアップクロックを用いてレゾルバデジタルコンバータ１３０に回転角情報を生成させることができる。また、この場合には、第１の電源部６による電源電圧の供給を停止する分、低消費電力での動作を可能とすることができる。
【００９２】
実施の形態３
続いて、実施の形態３について説明する。図１２は、実施の形態３にかかるモータ制御システム１Ｂの構成例を示すブロック図である。モータ制御システム１Ｂは、モータ２Ｂと、レゾルバ３と、プリドライバ４と、インバータ５と、第１の電源部６と、第２の電源部７と、第３の電源部８と、プリドライバ１１と、インバータ１２と、第１のＭＣＵ１００Ｂと、第２のＭＣＵ２００Ｂと、を備えている。なお、図１２の例では、モータ２Ｂは、六相モータである。なお、モータ制御システム１Ｂは、例えば、電動パワーステアリングのモータを制御するシステムである。
【００９３】
プリドライバ４は、モータ２Ｂを制御するためのＰＷＭ信号（第１のＰＷＭ信号）を第１のＭＣＵ１００Ｂから受け取り、ゲート制御信号を生成する。そして、プリドライバ４は、生成されたゲート制御信号をインバータ５へ出力する。
【００９４】
インバータ５は、プリドライバ４から入力されたゲート制御信号に基づいて、モータ２Ｂを駆動する。
【００９５】
プリドライバ１１は、モータ２Ｂを制御するためのＰＷＭ信号（第２のＰＷＭ信号）を第２のＭＣＵ２００Ｂから受け取り、ゲート制御信号を生成する。そして、プリドライバ１１は、生成されたゲート制御信号をインバータ１２へ出力する。
【００９６】
インバータ１２は、プリドライバ１１から入力されたゲート制御信号に基づいて、モータ２Ｂを駆動する。
【００９７】
続いて、図１３のブロック図を用いて、実施の形態３にかかる第１のＭＣＵ１００Ｂの構成例について説明する。第１のＭＣＵ１００Ｂは、ＣＰＵ１１０Ｂと、ＰＷＭ生成部１２０Ｂと、レゾルバデジタルコンバータ１３０と、レギュレータ１５０と、エラー検知部１６０Ａと、バックアップ制御部１７０Ａと、を備えている。また、レゾルバデジタルコンバータ１３０は、角度情報生成部１３１と、エンコーダ部１３２と、を備えている。また、ＰＷＭ生成部１２０Ｂは、タイマー１２１を備えている。タイマー１２１は、ＰＷＭ信号（第１のＰＷＭ信号）の周期を設定するものである。なお、タイマー１２１を第１のタイマーとも呼ぶ。
【００９８】
ＣＰＵ１１０Ｂは、第２のＭＣＵ２００Ｂからエラー信号を受け取る前には、モータ２Ｂの（Ｎ−Ｍ）相に対するＰＷＭ制御信号（第１のＰＷＭ制御信号）を生成する。なお、ＮとＭは、Ｎ＞Ｍである自然数である。また、ＣＰＵ１１０Ｂは、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合には、モータ２ＢのＮ相に対するＰＷＭ制御信号を生成する。具体的には、ＣＰＵ１１０Ｂは、第２のＭＣＵ２００Ｂからエラー信号を受け取る前には、モータ２Ｂの六相のうちの三相に対するＰＷＭ制御信号を生成し、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合には、モータ２Ｂの六相すべてに対するＰＷＭ制御信号を生成する。
【００９９】
ＣＰＵ１１０Ｂは、生成されたＰＷＭ制御信号をＰＷＭ生成部１２０Ｂへ出力する。なお、ＣＰＵ１１０Ｂは、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合に、タイマー１２１におけるＰＷＭ信号の周期を減ずるようにしてもよい。
【０１００】
ＰＷＭ生成部１２０Ｂは、受け取ったＰＷＭ制御信号に基づいて、ＰＷＭ信号を生成する。すなわち、ＰＷＭ生成部１２０Ｂは、（Ｎ−Ｍ）相に対する第１のＰＷＭ制御信号を受け取った場合には、（Ｎ−Ｍ）相に対する第１のＰＷＭ信号を生成する。また、ＰＷＭ生成部１２０Ｂは、Ｎ相に対する第１のＰＷＭ制御信号を受け取った場合には、Ｎ相に対する第１のＰＷＭ信号を生成する。具体的には、ＰＷＭ生成部１２０Ｂは、三相に対する第１のＰＷＭ制御信号を受け取った場合には、三相に対する第１のＰＷＭ信号を生成する。また、ＰＷＭ生成部１２０Ｂは、六相に対する第１のＰＷＭ制御信号を受け取った場合には、六相に対する第１のＰＷＭ信号を生成する。そして、ＰＷＭ生成部１２０Ｂは、生成されたＰＷＭ信号をプリドライバ４へ供給する。
【０１０１】
続いて、図１４のブロック図を用いて、実施の形態３にかかる第２のＭＣＵ２００Ｂの構成例について説明する。第２のＭＣＵ２００Ｂは、エンコードカウンタ部２１０と、ＣＰＵ２２０Ｂと、ＰＷＭ生成部２３０Ｂと、分離通知部２４０と、バックアップクロック供給部２５０と、エラー検知部２６０と、を備えている。また、ＰＷＭ生成部２３０Ｂは、タイマー２３１を備えている。タイマー２３１は、ＰＷＭ信号（第２のＰＷＭ信号）の周期を設定するものである。なお、タイマー２３１を第２のタイマーとも呼ぶ。
【０１０２】
エラー検知部２６０は、第２のＭＣＵ２００Ｂにおけるエラーを検知する。具体的には、エラー検知部２６０は、第２のＭＣＵ２００Ｂにおける電源系異常、クロック系異常、ＥＣＣエラー、パリティエラー等を検知する。エラー検知部２６０は、第２のＭＣＵ２００Ｂにおけるエラーを検知した場合に、エラー信号を第１のＭＣＵ１００Ｂへ出力する。
【０１０３】
ＣＰＵ２２０Ｂは、第１のＭＣＵ１００Ｂからエラー信号を受け取る前には、モータ２ＢにおけるＭ相に対するＰＷＭ制御信号（第２のＰＷＭ制御信号）を生成する。また、ＣＰＵ２２０Ｂは、第１のＭＣＵ１００Ｂからエラー信号を受け取った場合には、モータ２ＢのＮ相に対するＰＷＭ制御信号を生成する。具体的には、ＣＰＵ２２０Ｂは、第１のＭＣＵ１００Ｂからエラー信号を受け取る前には、モータ２Ｂの六相のうち、ＣＰＵ１１０ＢがＰＷＭ制御信号を生成する三相以外の残りの三相に対するＰＷＭ制御信号を生成する。また、第１のＭＣＵ１００Ｂからエラー信号を受け取った場合には、モータ２Ｂの六相すべてに対するＰＷＭ制御信号を生成する。
【０１０４】
ＣＰＵ２２０Ｂは、生成されたＰＷＭ制御信号をＰＷＭ生成部２３０Ｂへ出力する。なお、ＣＰＵ２２０Ｂは、第１のＭＣＵ１００Ｂからエラー信号を受け取った場合に、タイマー２３１におけるＰＷＭ信号の周期を減ずるようにしてもよい。
【０１０５】
ＰＷＭ生成部２３０Ｂは、受け取ったＰＷＭ制御信号に基づいて、ＰＷＭ信号を生成する。すなわち、ＰＷＭ生成部２３０Ｂは、Ｍ相に対する第２のＰＷＭ制御信号を受け取った場合には、Ｍ相に対する第２のＰＷＭ信号を生成する。また、ＰＷＭ生成部２３０Ｂは、Ｎ相に対する第２のＰＷＭ制御信号を受け取った場合には、Ｎ相に対する第２のＰＷＭ信号を生成する。具体的には、ＰＷＭ生成部２３０Ｂは、三相に対する第２のＰＷＭ制御信号を受け取った場合には、三相に対する第２のＰＷＭ信号を生成する。また、ＰＷＭ生成部２３０Ｂは、六相に対する第２のＰＷＭ制御信号を受け取った場合には、六相に対する第２のＰＷＭ信号を生成する。そして、ＰＷＭ生成部２３０Ｂは、生成されたＰＷＭ信号をプリドライバ１１へ供給する。
【０１０６】
続いて、図１５のシーケンス図を用いて、第１のＭＣＵ１００Ｂにエラーが発生した場合のモータ制御システム１Ｂの処理の流れの例について説明する。
【０１０７】
第１のＭＣＵ１００Ｂにエラーが発生していない通常時には、第１のＭＣＵ１００Ｂは、六相モータのうちの三相のＰＷＭ信号をプリドライバ４へ供給し、第２のＭＣＵ２００Ｂは、六相モータのうちの残りの三相のＰＷＭ信号をプリドライバ１１へ供給する（ステップＳ２０１）。
【０１０８】
次に、第１のＭＣＵ１００Ｂは、エラー検知部１６０Ａによりエラーを検知する（ステップＳ２０２）。ステップＳ２０２にてエラーが検知された場合に、第１のＭＣＵ１００Ｂは、エラー検知部１６０Ａにより、エラー信号を第２のＭＣＵ２００Ｂに出力する（ステップＳ２０３）。
【０１０９】
エラー信号を受け取ると、第２のＭＣＵ２００Ｂは、分離通知部２４０により、分離通知信号を第１のＭＣＵ１００Ｂへ出力し（ステップＳ２０４）、且つバックアップクロック供給部２５０により、バックアップクロックを第１のＭＣＵ１００Ｂへ供給する（ステップＳ２０５）。
【０１１０】
次に、第１のＭＣＵ１００Ｂのバックアップ制御部１７０Ａは、異常時に用いる設定情報及びバックアップクロックをレゾルバデジタルコンバータ１３０へ供給する（ステップＳ２０６）。
【０１１１】
レゾルバデジタルコンバータ１３０は、角度情報生成部１３１により、回転角φを取得する（ステップＳ２０７）。次に、レゾルバデジタルコンバータ１３０は、エンコーダ部１３２により、取得された回転角φに基づいてエンコーダパルスを生成する（ステップＳ２０８）。そして、レゾルバデジタルコンバータ１３０は、生成されたエンコーダパルスを第２のＭＣＵ２００Ｂへ出力する（ステップＳ２０９）。
【０１１２】
第２のＭＣＵ２００Ｂは、エンコードカウンタ部２１０により、回転角φを復元する（ステップＳ２１０）。次に、第２のＭＣＵ２００Ｂは、ＣＰＵ２２０Ｂにより、回転角φに基づいて六相すべてのＰＷＭ制御信号を生成し、ＰＷＭ生成部２３０Ｂにより、ＰＷＭ制御信号に基づいて六相すべてのＰＷＭ信号を生成する（ステップＳ２１１）。そして、第２のＭＣＵ２００Ｂは、生成された六相すべてのＰＷＭ信号をプリドライバ１１へ供給する（ステップＳ２１２）。
【０１１３】
続いて、図１６のシーケンス図を用いて、第２のＭＣＵ２００Ｂにエラーが発生した場合のモータ制御システム１Ｂの処理の流れの例について説明する。
【０１１４】
第２のＭＣＵ２００Ｂにエラーが発生していない通常時には、第１のＭＣＵ１００Ｂは、六相モータのうちの三相のＰＷＭ信号をプリドライバ４へ供給し、第２のＭＣＵ２００Ｂは、六相モータのうちの残りの三相のＰＷＭ信号をプリドライバ１１へ供給する（ステップＳ３０１）。
【０１１５】
次に、第２のＭＣＵ２００Ｂは、エラー検知部２６０によりエラーを検知する（ステップＳ３０２）。ステップＳ３０２にてエラーが検知された場合に、第２のＭＣＵ２００Ｂは、エラー検知部２６０によりエラー信号を第１のＭＣＵ１００Ｂに出力する（ステップＳ３０３）。
【０１１６】
第１のＭＣＵ１００Ｂは、レゾルバデジタルコンバータ１３０の角度情報生成部１３１により、回転角φを取得する（ステップＳ３０４）。
【０１１７】
次に、第１のＭＣＵ１００Ｂは、ＣＰＵ１１０Ｂにより、回転角φに基づいて六相すべてのＰＷＭ制御信号を生成し、ＰＷＭ生成部１２０Ｂにより、ＰＷＭ制御信号に基づいて六相すべてのＰＷＭ信号を生成する（ステップＳ３０５）。そして、第１のＭＣＵ１００Ｂは、生成された六相すべてのＰＷＭ信号をプリドライバ４へ供給する（ステップＳ３０６）。
【０１１８】
以上、説明したように、実施の形態３にかかる第１のＭＣＵ１００Ｂでは、ＰＷＭ生成部１２０Ｂが、第２のＭＣＵ２００Ｂからエラー信号を受け取る前には、モータ２Ｂの（Ｎ−Ｍ）相に対するＰＷＭ信号を生成する構成としている。また、第１のＭＣＵ１００Ｂでは、ＰＷＭ生成部１２０Ｂが、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合には、モータ２ＢのＮ相に対するＰＷＭ信号を生成する構成としている。これにより、実施の形態３にかかる第１のＭＣＵ１００Ｂでは、通常時には、モータ２Ｂの（Ｎ−Ｍ）相のＰＷＭ信号を生成し、第２のＭＣＵ２００Ｂの異常時には、モータ２ＢのＮ相のＰＷＭ信号を生成することができる。
【０１１９】
また、第１のＭＣＵ１００Ｂでは、ＰＷＭ生成部１２０Ｂが、ＰＷＭ信号の周期を設定するタイマー１２１を備えた構成としている。また、第１のＭＣＵ１００Ｂでは、ＰＷＭ生成部１２０Ｂが、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合に、ＰＷＭ信号の周期を減ずる構成としている。これにより、第１のＭＣＵ１００Ｂでは、モータ２ＢのＮ相について演算するための演算リソースが不足する場合であっても、ＰＷＭ信号の周期を減ずることによって、モータ２ＢのＮ相についての演算及び制御を行うことができる。
【０１２０】
また、実施の形態３にかかるモータ制御システム１Ｂでは、第２のＭＣＵ２００Ｂが、エラー検知部２６０をさらに有する構成としている。また、モータ制御システム１Ｂでは、ＰＷＭ生成部１２０Ｂが、第２のＭＣＵ２００Ｂからエラー信号を受け取る前には、モータ２Ｂの（Ｎ−Ｍ）相に対する第１のＰＷＭ信号を生成し、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合には、モータ２ＢのＮ相に対する第１のＰＷＭ信号を生成する構成としている。また、モータ制御システム１Ｂでは、ＰＷＭ生成部２３０Ｂが、第１のＭＣＵ１００Ｂからエラー信号を受け取る前には、モータ２ＢのＭ相に対する第２のＰＷＭ信号を生成し、第１のＭＣＵ１００Ｂからエラー信号を受け取った場合には、モータ２ＢのＮ相に対する第２のＰＷＭ信号を生成する構成としている。これにより、実施の形態３にかかるモータ制御システム１Ｂでは、第２のＭＣＵ２００Ｂの異常時には、第１のＭＣＵ１００Ｂによりモータ２ＢのＮ相のＰＷＭ信号を生成し、第１のＭＣＵ１００Ｂの異常時には、第２のＭＣＵ２００Ｂによりモータ２ＢのＮ相のＰＷＭ信号を生成することができる。このため、モータ制御システム１Ｂでは、第１のＭＣＵ１００Ｂ及び第２のＭＣＵ２００Ｂのいずれかに異常が生じた場合であってもモータ２ＢのＮ相についての演算及び制御を継続することができる。
【０１２１】
また、モータ制御システム１Ｂでは、ＰＷＭ生成部１２０Ｂが、プリドライバ４へ出力する第１のＰＷＭ信号の周期を設定するタイマー１２１を備え、ＰＷＭ生成部２３０Ｂが、プリドライバ１１へ出力する第２のＰＷＭ信号の周期を設定するタイマー２３１を備えた構成としている。また、モータ制御システム１Ｂでは、ＰＷＭ生成部１２０Ｂが、第２のＭＣＵ２００Ｂからエラー信号を受け取った場合に、第１のＰＷＭ信号の周期を減じ、ＰＷＭ生成部２３０Ｂが、第１のＭＣＵ１００Ｂからエラー信号を受け取った場合に、第２のＰＷＭ信号の周期を減ずる構成としている。これにより、モータ制御システム１Ｂでは、モータ２ＢのＮ相について演算するための演算リソースが不足する場合であっても、ＰＷＭ信号の周期を減ずることによって、モータ２ＢのＮ相についての演算及び制御を行うことができる。
【０１２２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１２３】
１、１Ａ、１Ｂ    モータ制御システム
２、２Ｂ    モータ
３    レゾルバ
６    第１の電源部
７    第２の電源部
８    第３の電源部
１００、１００Ａ、１００Ｂ    第１のＭＣＵ（半導体装置）
１２０、１２０Ｂ    ＰＷＭ生成部（第１のＰＷＭ生成部）
１２１    タイマー（第１のタイマー）
１３０    レゾルバデジタルコンバータ
１３１    角度情報生成部
１３２    エンコーダ部
１６０、１６０Ａ    エラー検知部
１７０、１７０Ａ    バックアップ制御部
１７１    レジスタ
１７２    書き込み禁止回路
１８０    電源停止部
２００、２００Ａ、２００Ｂ    第２のＭＣＵ（他の半導体装置）
２１０    エンコードカウンタ部
２３０、２３０Ｂ    ＰＷＭ生成部（第２のＰＷＭ生成部）
２３１    タイマー（第２のタイマー）
２４０    分離通知部
２５０    バックアップクロック供給部
２６０    エラー検知部
【図１】
2018201260.tif 000003
【図２】
2018201260.tif 000004
【図３】
2018201260.tif 000005
【図４】
2018201260.tif 000006
【図５】
2018201260.tif 000007
【図６】
2018201260.tif 000008
【図７】
2018201260.tif 000009
【図８】
2018201260.tif 000010
【図９】
2018201260.tif 000011
【図１０】
2018201260.tif 000012
【図１１】
2018201260.tif 000013
【図１２】
2018201260.tif 000014
【図１３】
2018201260.tif 000015
【図１４】
2018201260.tif 000016
【図１５】
2018201260.tif 000017
【図１６】
2018201260.tif 000018