IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電産株式会社の特許一覧

<>
  • 特開-通信方法および通信システム 図1
  • 特開-通信方法および通信システム 図2
  • 特開-通信方法および通信システム 図3
  • 特開-通信方法および通信システム 図4
  • 特開-通信方法および通信システム 図5
  • 特開-通信方法および通信システム 図6
  • 特開-通信方法および通信システム 図7
  • 特開-通信方法および通信システム 図8
  • 特開-通信方法および通信システム 図9
  • 特開-通信方法および通信システム 図10
  • 特開-通信方法および通信システム 図11
  • 特開-通信方法および通信システム 図12
  • 特開-通信方法および通信システム 図13
  • 特開-通信方法および通信システム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024006075
(43)【公開日】2024-01-17
(54)【発明の名称】通信方法および通信システム
(51)【国際特許分類】
   G06F 13/38 20060101AFI20240110BHJP
【FI】
G06F13/38 320Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022106629
(22)【出願日】2022-06-30
(71)【出願人】
【識別番号】000232302
【氏名又は名称】ニデック株式会社
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100188673
【弁理士】
【氏名又は名称】成田 友紀
(74)【代理人】
【識別番号】100179833
【弁理士】
【氏名又は名称】松本 将尚
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(72)【発明者】
【氏名】村瀬 周平
(57)【要約】      (修正有)
【課題】16ビット制限のデータ転送で32ビットデータを送信する。
【解決手段】第1通信装置と第2通信装置との間で、1通信サイクル当たりNビットのデータを通信する通信方法であって、第1通信装置が、Mビットの第1データから上位Kビットの第2データを抽出するステップと、第1通信装置が、第2データを、上位Xビットの上位データと、中間Yビットの中間データと、下位Zビットの下位データとに分割するステップと、第1通信装置が、一方の通信サイクルにおいて、少なくとも上位データ及び下位データを含むNビットの第1送信データを、第2通信装置に送信するステップと、第1通信装置が、他方の通信サイクルにおいて、少なくとも中間データ及び下位データを含むNビットの第2送信データを、第2通信装置に送信するステップと、第2通信装置が、第1送信データと、第2送信データとに基づいて、第2データを再生成するステップと、を含む。
【選択図】なし
【特許請求の範囲】
【請求項1】
第1通信装置と第2通信装置との間で、1通信サイクル当たりNビットのデータを通信する通信方法であって、
前記第1通信装置が、Mビットの第1データから上位Kビットの第2データを抽出し、M>K>Nである、ステップと、
前記第1通信装置が、前記第2データを、上位Xビットの上位データと、中間Yビットの中間データと、下位Zビットの下位データとに分割し、X+Y+Z=K、且つ、X=Yである、ステップと、
前記第1通信装置が、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、少なくとも前記上位データ及び前記下位データを含むNビットの第1送信データを、前記第2通信装置に送信するステップと、
前記第1通信装置が、前記隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、少なくとも前記中間データ及び前記下位データを含むNビットの第2送信データを、前記第2通信装置に送信するステップと、
前記第2通信装置が、前記第1送信データと、前記第2送信データとに基づいて、前記第2データを再生成するステップと、
を含む、通信方法。
【請求項2】
前記第2データを再生成するステップは、
前記第2通信装置が、前記第1送信データを受信した場合には、前記第1送信データに基づいて前記中間データの推定値を算出するステップと、
前記第2通信装置が、前記第1送信データに含まれる前記上位データ及び前記下位データと、前記中間データの前記推定値とを組み合わせることにより、前記第2データを再生成するステップと、
を含む、請求項1に記載の通信方法。
【請求項3】
前記中間データの前記推定値を算出するステップは、
前記第2通信装置が、前記第1送信データに含まれる前記下位データに繰り上がりと繰り下がりとの一方が発生したか否かを判定するステップと、
前記第2通信装置が、前記下位データに前記繰り上がりが発生したと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値に1を加算することにより、前記中間データの前記推定値を算出するステップと、
前記第2通信装置が、前記下位データに前記繰り下がりが発生したと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値から1を減算することにより、前記中間データの前記推定値を算出するステップと、
前記第2通信装置が、前記下位データに前記繰り上がり及び前記繰り下がりの両方が発生しなかったと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値を、前記中間データの前記推定値として取得するステップと、
を含む、請求項2に記載の通信方法。
【請求項4】
前記第2データを再生成するステップは、
前記第2通信装置が、前記第2送信データを受信した場合には、前記第2送信データに基づいて前記上位データの推定値を算出するステップと、
前記第2通信装置が、前記第2送信データに含まれる前記中間データ及び前記下位データと、前記上位データの前記推定値とを組み合わせることにより、前記第2データを再生成するステップと、
を含む、請求項1から3のいずれか一項に記載の通信方法。
【請求項5】
前記上位データの前記推定値を算出するステップは、
前記第2通信装置が、前記第2送信データに含まれる前記中間データに繰り上がりと繰り下がりとの一方が発生したか否かを判定するステップと、
前記第2通信装置が、前記中間データに前記繰り上がりが発生したと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値に1を加算することにより、前記上位データの前記推定値を算出するステップと、
前記第2通信装置が、前記中間データに前記繰り下がりが発生したと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値から1を減算することにより、前記上位データの前記推定値を算出するステップと、
前記第2通信装置が、前記中間データに前記繰り上がり及び前記繰り下がりの両方が発生しなかったと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値を、前記上位データの前記推定値として取得するステップと、
を含む、請求項4に記載の通信方法。
【請求項6】
第1通信装置と第2通信装置との間で、1通信サイクル当たりNビットのデータを通信する通信システムであって、
前記第1通信装置が、
Mビットの第1データから上位Kビットの第2データを抽出し、M>K>Nである、処理と、
前記第2データを、上位Xビットの上位データと、中間Yビットの中間データと、下位Zビットの下位データとに分割し、X+Y+Z=K、且つ、X=Yである、処理と、
隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、少なくとも前記上位データ及び前記下位データを含むNビットの第1送信データを、前記第2通信装置に送信する処理と、
前記隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、少なくとも前記中間データ及び前記下位データを含むNビットの第2送信データを、前記第2通信装置に送信する処理と、
を実行し、
前記第2通信装置が、
前記第1送信データと、前記第2送信データとに基づいて、前記第2データを再生成する処理、
を実行する、
通信システム。
【請求項7】
前記第2通信装置は、前記第2データを再生成する処理として、
前記第1送信データを受信した場合には、前記第1送信データに基づいて前記中間データの推定値を算出する処理と、
前記第1送信データに含まれる前記上位データ及び前記下位データと、前記中間データの前記推定値とを組み合わせることにより、前記第2データを再生成する処理と、
を実行する、請求項6に記載の通信システム。
【請求項8】
前記第2通信装置は、前記中間データの前記推定値を算出する処理として、
前記第1送信データに含まれる前記下位データに繰り上がりと繰り下がりとの一方が発生したか否かを判定する処理と、
前記下位データに前記繰り上がりが発生したと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値に1を加算することにより、前記中間データの前記推定値を算出する処理と、
前記下位データに前記繰り下がりが発生したと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値から1を減算することにより、前記中間データの前記推定値を算出する処理と、
前記下位データに前記繰り上がり及び前記繰り下がりの両方が発生しなかったと判定した場合には、前記他方の通信サイクルで受信した前記第2送信データに含まれる前記中間データの値を、前記中間データの前記推定値として取得する処理と、
を実行する、請求項7に記載の通信システム。
【請求項9】
前記第2通信装置は、前記第2データを再生成する処理として、
前記第2送信データを受信した場合には、前記第2送信データに基づいて前記上位データの推定値を算出する処理と、
前記第2送信データに含まれる前記中間データ及び前記下位データと、前記上位データの前記推定値とを組み合わせることにより、前記第2データを再生成する処理と、
を実行する、請求項6から8のいずれか一項に記載の通信システム。
【請求項10】
前記第2通信装置は、前記上位データの前記推定値を算出する処理として、
前記第2送信データに含まれる前記中間データに繰り上がりと繰り下がりとの一方が発生したか否かを判定する処理と、
前記中間データに前記繰り上がりが発生したと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値に1を加算することにより、前記上位データの前記推定値を算出する処理と、
前記中間データに前記繰り下がりが発生したと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値から1を減算することにより、前記上位データの前記推定値を算出する処理と、
前記中間データに前記繰り上がり及び前記繰り下がりの両方が発生しなかったと判定した場合には、前記一方の通信サイクルで受信した前記第1送信データに含まれる前記上位データの値を、前記上位データの前記推定値として取得する処理と、
を実行する、請求項9に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信方法および通信システムに関する。
【背景技術】
【0002】
従来、回転位置を正確に制御可能なモータとして、光学エンコーダ、レゾルバ等の絶対角位置センサを備える構成が知られる。しかし、絶対角位置センサは、大型、高コストである。そこで、特許文献1には、絶対角位置センサを用いることなく、安価且つ小型の3つの磁気センサを用いてモータの回転位置を推定する位置推定方法が開示される。
【0003】
本出願人は、特許文献1の位置推定方法によって得られる角度情報に基づいて、エレベータ用モータの制御に必要なA相、B相、C相、D相、及びR相の各信号を出力するエンコーダを開発した。このエンコーダは、32ビットMPUであるメインMPU(Micro Processing Unit)と、32ビットMPUであるサブMPUとを備える。メインMPUは、角度情報を演算する機能と、角度情報に基づいてA相及びB相の各信号を出力する機能とを有する。サブMPUは、メインMPUから送信される角度情報に基づいて、C相、D相及びR相の各信号を出力する機能を有する。
【0004】
各MPUの仕様によって、メインMPUとサブMPUとの間で通信可能なデータ長(ビット数)は、16ビットに制限される。一方、メインMPUによって演算される角度情報は、32ビットのデータ長を有するデータである。そのため、メインMPUは、角度情報を示すデータのうち、上位16ビットのデータのみをサブMPUに送信する。この場合、サブMPUが受信する16ビットのデータでは角度分解能が不足しているため、サブMPUから滑らかなR相信号を出力することが困難であった。
【0005】
この問題を解決するには、サブMPUを32ビット通信が可能なMPUに変更する案が考えられるが、サブMPUに要求される仕様を満たす32ビット通信が可能なMPUは価格が高いなどの理由から、この案を採用することは困難である。そこで、ハードウェアの構成を変更することなく、上記問題を解決できる通信技術の開発が要求されている。
【0006】
特許文献2には、連続性を有するフローティングデータの伝送効率を向上させるデータ転送方法が開示されている。このデータ転送方法では、前回の送信対象のフローティングデータと、今回の送信対象となるフローティングデータとの差が所定値以上の場合に、今回の送信対象となるフローティングデータの固定小数点部分を一部省略することにより、実際に送信する今回送信データの送信桁数を少なくする。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第6233532号公報
【特許文献2】特開平9-307512号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2のデータ転送方法では、フローティングデータの初期値を送信する場合と、前回フローティングデータと今回フローティングデータとの差分値を送信する場合とで、ソフトウェア処理を分離する必要があるため、ソフトウェア処理の複雑化を招く。
【0009】
そのため、第1通信装置と第2通信装置との間で通信可能なデータ長が制限されていたとしても、比較的シンプルなソフトウェア処理によって、第1通信装置から第2通信装置に送信されるデータの有効データ長を向上させる技術の開発が要求されていた。
【課題を解決するための手段】
【0010】
本発明の通信方法における一つの態様は、第1通信装置と第2通信装置との間で、1通信サイクル当たりNビットのデータを通信する通信方法であって、前記第1通信装置が、Mビットの第1データから上位Kビットの第2データを抽出し、M>K>Nである、ステップと、前記第1通信装置が、前記第2データを、上位Xビットの上位データと、中間Yビットの中間データと、下位Zビットの下位データとに分割し、X+Y+Z=K、且つ、X=Yである、ステップと、前記第1通信装置が、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、少なくとも前記上位データ及び前記下位データを含むNビットの第1送信データを、前記第2通信装置に送信するステップと、前記第1通信装置が、前記隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、少なくとも前記中間データ及び前記下位データを含むNビットの第2送信データを、前記第2通信装置に送信するステップと、前記第2通信装置が、前記第1送信データと、前記第2送信データとに基づいて、前記第2データを再生成するステップと、を含む。
【0011】
本発明の通信システムにおける一つの態様は、第1通信装置と第2通信装置との間で、1通信サイクル当たりNビットのデータを通信する通信システムであって、前記第1通信装置が、Mビットの第1データから上位Kビットの第2データを抽出し、M>K>Nである、処理と、前記第2データを、上位Xビットの上位データと、中間Yビットの中間データと、下位Zビットの下位データとに分割し、X+Y+Z=K、且つ、X=Yである、処理と、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、少なくとも前記上位データ及び前記下位データを含むNビットの第1送信データを、前記第2通信装置に送信する処理と、前記隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、少なくとも前記中間データ及び前記下位データを含むNビットの第2送信データを、前記第2通信装置に送信する処理と、を実行し、前記第2通信装置が、前記第1送信データと、前記第2送信データとに基づいて、前記第2データを再生成する処理、を実行する。
【発明の効果】
【0012】
本発明の上記態様によれば、第1通信装置と第2通信装置との間で通信可能なデータ長が制限されていたとしても、比較的シンプルなソフトウェア処理によって、第1通信装置から第2通信装置に送信されるデータの有効データ長を向上させることが可能な通信方法及び通信システムが提供される。
【図面の簡単な説明】
【0013】
図1図1は、本実施形態における通信システムが組み込まれた信号生成装置の構成を模式的に示すブロック図である。
図2図2は、割込み信号の発生タイミングと、割込み回数の変化タイミングと、割込み処理の実行タイミングと、A/Dコンバータの動作タイミングと、角度演算処理の実行タイミングと、データ送信処理の実行タイミングとの時間的な対応関係を示すタイミングチャートである。
図3図3は、第1の処理装置の第1の演算部が実行する割込み処理を示すフローチャートである。
図4図4は、絶対角度の遅延補償に関する説明図である。
図5図5は、絶対角度関数の一例を示す図である。
図6図6は、第1の演算部が実行するデータ送信処理に関する説明図である。
図7図7は、第2の処理装置の第2の演算部が実行する信号生成処理を示すフローチャートである。
図8図8は、第2の演算部が実行するデータ再生成処理を示すフローチャートである。
図9図9は、R相信号の波形の一例を示す図である。
図10図10は、信号生成装置の出力回路から出力される各差動信号の一例を示す図である。
図11図11は、従来のように、メインMPUが、角度情報を示す32ビットの第1データのうち、上位16ビットのデータのみをサブMPUに送信した場合に、サブMPUから出力されるR相信号の一例を示す図である。
図12図12は、本実施形態において、メインMPUが図6のデータ送信処理を実行し、サブMPUが図7の信号生成処理及び図8のデータ再生成処理を実行した場合に、サブMPUから出力されるR相信号VRの一例を示す図である。
図13図13は、第1の演算部が実行するデータ送信処理の第1変形例に関する説明図である。
図14図14は、第1の演算部が実行するデータ送信処理の第2変形例に関する説明図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態について図面を参照しながら詳細に説明する。
以下では、本発明の通信システムとして、回転軸の回転角度(機械角)を示す各種の信号を生成する信号生成装置に組み込まれた通信システムを例示する。図1は、本実施形態における通信システムが組み込まれた信号生成装置1の構成を模式的に示すブロック図である。図1に示すように、信号生成装置1は、センサ部10と、処理装置20と、フィルタ回路50と、出力回路60と、を備える。
【0015】
センサ部10は、例えば3つの磁気センサ11、12及び13を有する。磁気センサ11、12及び13のそれぞれは、回転軸の回転角度に応じて変化する磁束強度を検出し、磁束強度の検出結果を示すアナログ信号を磁束検出信号として出力するホールセンサである。本実施形態において回転軸は、例えば3相ブラシレスDCモータのロータシャフトである。
【0016】
3相ブラシレスDCモータには、3相コイルに駆動電流を供給する制御基板が装着される。磁気センサ11、12及び13は、ロータシャフトの軸方向においてロータマグネットと対向する状態で制御基板に配置される。また、ロータシャフトの軸方向からみて、磁気センサ11、12及び13は、ロータシャフトの回転方向に沿って一定間隔で配置される。一定間隔は、例えば120度間隔である。
【0017】
磁気センサ11は、U相における磁束強度の検出結果を示す磁束検出信号Huを処理装置20に出力する。磁気センサ12は、V相における磁束強度の検出結果を示す磁束検出信号Hvを処理装置20に出力する。磁気センサ13は、W相における磁束強度の検出結果を示す磁束検出信号Hwを処理装置20に出力する。3つの磁束検出信号Hu、Hv及びHwは、互いに電気角で120度の位相差を有する。
【0018】
処理装置20は、センサ部10から出力される磁束検出信号Hu、Hv及びHwに基づいて、回転軸の機械角を示す角度情報を演算する。また、処理装置20は、角度情報に基づいて、機械角1周期において電気角1周期の波形がN1回(N1は1以上の整数)現れる第1の信号VAと、第1の信号VAに対して電気角で90度の位相差を有する第2の信号VBとを生成する。以下の説明では、第1の信号VAを「A相信号」と呼称し、第2の信号VBを「B相信号」と呼称する場合がある。本実施形態において、A相信号VAはサイン波信号であり、B相信号VBはコサイン波信号である。
【0019】
また、処理装置20は、角度情報に基づいて、機械角1周期において電気角1周期の波形が1回現れる第3の信号VCと、第3の信号VCに対して電気角で90度の位相差を有する第4の信号VDとをさらに生成する。以下の説明では、第3の信号VCを「C相信号」と呼称し、第4の信号VDを「D相信号」と呼称する場合がある。本実施形態において、C相信号VCはサイン波信号であり、D相信号VDはコサイン波信号である。
【0020】
さらに、処理装置20は、角度情報に基づいて、機械角1周期の基準位置を示す第5の信号VRをさらに生成する。以下の説明では、第5の信号VRを「R相信号」と呼称する場合がある。R相信号VRは、機械角0度を中心として±α度の範囲内で左右線対称となり、且つ機械角0度で頂点が現れる波形である。このようなR相信号VRの波形として、シグモイド関数で表される波形、矩形波、三角波、或いはサイン波などを使用できる。
処理装置20は、A相信号VA、B相信号VB、C相信号VC、D相信号VD、およびR相信号VRをフィルタ回路50に出力する。
【0021】
処理装置20は、Mビット通信が可能なメインMPU30と、Nビット通信が可能なサブMPU40と、を備える。メインMPU30は、角度情報を演算する機能と、角度情報に基づいてA相信号VA及びB相信号VBを生成する機能とを有する。サブMPU40は、メインMPU30から送信される角度情報に基づいて、C相信号VC、D相信号VD、およびR相信号VRを生成する機能を有する。
【0022】
M及びNは、それぞれ1以上の整数である。Mの値は、Nの値よりも大きい。一例として、本実施形態では、Mは32であり、Nは16である。すなわち、本実施形態において、メインMPU30は、32ビット通信が可能なMPUであり、サブMPU40は、16ビット通信が可能なMPUである。
【0023】
上記のようなメインMPU30及びサブMPU40の仕様によって、メインMPU30とサブMPU40との間で通信可能なデータ長(ビット数)は、16ビットに制限される。すなわち、信号生成装置1に組み込まれた通信システムは、メインMPU30とメインMPU40との間で、1通信サイクル当たり16ビット(Nビット)のデータを通信する通信システムである。メインMPU30は、第1通信装置に対応する。サブMPU40は、第2通信装置に対応する。
【0024】
メインMPU30は、センサ部10から出力される磁束検出信号Hu、Hv及びHwに基づいて、回転軸の機械角を示す角度情報を演算する。また、メインMPU30は、角度情報に基づいてA相信号VA及びB相信号VBを生成する。さらに、メインMPU30は、角度情報を含む16ビットのデータを、所定の通信サイクルでサブMPU40に送信する。メインMPU30は、A/Dコンバータ31と、タイマ32と、第1の演算部33と、第1の記憶部34と、第1のD/Aコンバータ35と、第1の通信I/F36と、を備える。
【0025】
センサ部10から出力される磁束検出信号Hu、Hv及びHwは、メインMPU30のA/Dコンバータ31に入力される。A/Dコンバータ31は、磁束検出信号Hu、Hv及びHwのそれぞれを所定のサンプリング周波数でサンプリングすることによりデジタルデータに変換し、磁束検出信号Hu、Hv及びHwのデジタルデータを第1の演算部33に出力する。
【0026】
タイマ32は、所定の周期で割込み信号INTを第1の演算部33に出力する。具体的には、タイマ32は、不図示のクロック信号に同期してタイマカウント値をインクリメントし、タイマカウント値がタイマリセット値TRESに到達すると、割込み信号INTを出力すると共にタイマカウント値をリセットする。このように、タイマ32から割込み信号INTが出力される周期は、タイマリセット値TRESによって決定される。タイマリセット値TRESは、第1の演算部33によってタイマ32にセットされる。
【0027】
第1の演算部33は、第1の記憶部34に予め記憶されたプログラムに従って各種処理を実行するプロセッサコアである。詳細は後述するが、第1の演算部33は、タイマ32から割込み信号INTが入力されると、A/Dコンバータ31から入力される磁束検出信号Hu、Hv及びHwのデジタルデータに基づいて、角度推定値θestを角度情報として演算する割込み処理を実行する。第1の演算部33は、割込み処理の実行時において、角度情報に基づいてA相デジタル信号DVA及びB相デジタル信号DVBを生成して第1のD/Aコンバータ35に出力する。また、第1の演算部33は、角度情報を含む16ビットのデータを、第1の通信I/F36を介してサブMPU40に送信するデータ送信処理を実行する。
【0028】
第1の記憶部34は、第1の演算部33に各種処理を実行させるのに必要なプログラム及び設定データなどを予め記憶する不揮発性メモリと、第1の演算部33が各種処理を実行する際にデータの一時保存先として使用される揮発性メモリとを含む。不揮発性メモリは、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)及びフラッシュメモリなどである。揮発性メモリは、例えばRAM(Random Access Memory)などである。
【0029】
第1のD/Aコンバータ35は、例えば2チャンネルD/Aコンバータである。第1のD/Aコンバータ35は、第1の演算部33から出力されるA相デジタル信号DVAをアナログ信号に変換することにより、A相信号VAを生成する。第1のD/Aコンバータ35は、第1の演算部33から出力されるB相デジタル信号DVBをアナログ信号に変換することにより、B相信号VBを生成する。第1のD/Aコンバータ35は、A相信号VA及びB相信号VBをフィルタ回路50に出力する。
【0030】
第1の通信I/F36は、例えばSPI(Serial Peripheral Interface)通信規格に従って、サブMPU40の第2の通信I/F41と通信を行うシリアル通信インターフェースである。第1の通信I/F36は、第1の演算部33から出力される16ビットのデータをサブMPU40の第2の通信I/F41に送信する。第1の通信I/F36は、サブMPU40の第2の通信I/F41から送信される16ビットのデータを受信し、受信データを第1の演算部33に出力する。
【0031】
サブMPU40は、メインMPU30から送信される16ビットのデータに基づいて、C相信号VC、D相信号VD、およびR相信号VRを生成する。サブMPU40は、第2の通信I/F41と、第2の演算部42と、第2の記憶部43と、第2のD/Aコンバータ44と、を備える。
【0032】
第2の通信I/F41は、例えばSPI通信規格に従って、メインMPU30の第1の通信I/F36と通信を行うシリアル通信インターフェースである。第2の通信I/F41は、第2の演算部42から出力される16ビットのデータをメインMPU30の第1の通信I/F36に送信する。第2の通信I/F41は、メインMPU30の第1の通信I/F36から送信される16ビットのデータを受信し、受信データを第2の演算部42に出力する。
【0033】
第2の演算部42は、第2の記憶部43に予め記憶されたプログラムに従って各種処理を実行するプロセッサコアである。第2の演算部42は、第2の通信I/F41を介してメインMPU30から16ビットのデータを受信すると、受信データに含まれる角度情報に基づいて、C相デジタル信号DVC、D相デジタル信号DVD、およびR相デジタル信号DVRを生成して第2のD/Aコンバータ44に出力する。
【0034】
第2の記憶部43は、第2の演算部42に各種処理を実行させるのに必要なプログラム及び設定データなどを予め記憶する不揮発性メモリと、第2の演算部42が各種処理を実行する際にデータの一時保存先として使用される揮発性メモリとを含む。不揮発性メモリは、例えばEEPROM及びフラッシュメモリなどである。揮発性メモリは、例えばRAMなどである。
【0035】
第2のD/Aコンバータ44は、例えば3チャンネルD/Aコンバータである。第2のD/Aコンバータ44は、第2の演算部42から出力されるC相デジタル信号DVCをアナログ信号に変換することにより、C相信号VCを生成する。第2のD/Aコンバータ44は、第2の演算部42から出力されるD相デジタル信号DVDをアナログ信号に変換することにより、D相信号VDを生成する。第2のD/Aコンバータ44は、第2の演算部42から出力されるR相デジタル信号DVRをアナログ信号に変換することにより、R相信号VRを生成する。第2のD/Aコンバータ44は、C相信号VC、D相信号VD及びR相信号VRをフィルタ回路50に出力する。
【0036】
フィルタ回路50は、第1のローパスフィルタ51と、第2のローパスフィルタ52と、第3のローパスフィルタ53と、第4のローパスフィルタ54と、第5のローパスフィルタ55と、を備える。第1のローパスフィルタ51、第2のローパスフィルタ52、第3のローパスフィルタ53、第4のローパスフィルタ54、および第5のローパスフィルタ55は、例えば2次RCローパスフィルタである。
【0037】
第1のローパスフィルタ51は、処理装置20のメインMPU30から出力されるA相信号VAの伝送経路に設けられる。第1のローパスフィルタ51は、メインMPU30から出力されるA相信号VAに含まれる周波数成分のうち、所定のカットオフ周波数以下の周波数成分を出力回路60へ通過させる。第1のローパスフィルタ51から出力される信号は、第1のローパスフィルタ51に入力されるA相信号VAよりも滑らかなサイン波形となる。このように、第1のローパスフィルタ51から出力される信号は、第1のローパスフィルタ51に入力されるA相信号VAと異なるが、本実施形態では説明の便宜上、第1のローパスフィルタ51から出力される信号も「A相信号VA」と呼称する。
【0038】
第2のローパスフィルタ52は、処理装置20のメインMPU30から出力されるB相信号VBの伝送経路に設けられる。第2のローパスフィルタ52は、メインMPU30から出力されるB相信号VBに含まれる周波数成分のうち、所定のカットオフ周波数以下の周波数成分を出力回路60へ通過させる。第2のローパスフィルタ52から出力される信号は、第2のローパスフィルタ52に入力されるB相信号VBよりも滑らかなコサイン波形となる。このように、第2のローパスフィルタ52から出力される信号は、第2のローパスフィルタ52に入力されるB相信号VBと異なるが、本実施形態では説明の便宜上、第2のローパスフィルタ52から出力される信号も「B相信号VB」と呼称する。
【0039】
第3のローパスフィルタ53は、処理装置20のサブMPU40から出力されるC相信号VCの伝送経路に設けられる。第3のローパスフィルタ53は、サブMPU40から出力されるC相信号VCに含まれる周波数成分のうち、所定のカットオフ周波数以下の周波数成分を出力回路60へ通過させる。第3のローパスフィルタ53から出力される信号は、第3のローパスフィルタ53に入力されるC相信号VCよりも滑らかなサイン波形となる。このように、第3のローパスフィルタ53から出力される信号は、第3のローパスフィルタ53に入力されるC相信号VCと異なるが、本実施形態では説明の便宜上、第3のローパスフィルタ53から出力される信号も「C相信号VC」と呼称する。
【0040】
第4のローパスフィルタ54は、処理装置20のサブMPU40から出力されるD相信号VDの伝送経路に設けられる。第4のローパスフィルタ54は、サブMPU40から出力されるD相信号VDに含まれる周波数成分のうち、所定のカットオフ周波数以下の周波数成分を出力回路60へ通過させる。第4のローパスフィルタ54から出力される信号は、第4のローパスフィルタ54に入力されるD相信号VDよりも滑らかなコサイン波形となる。このように、第4のローパスフィルタ54から出力される信号は、第4のローパスフィルタ54に入力されるD相信号VDと異なるが、本実施形態では説明の便宜上、第4のローパスフィルタ54から出力される信号も「D相信号VD」と呼称する。
【0041】
第5のローパスフィルタ55は、処理装置20のサブMPU40から出力されるR相信号VRの伝送経路に設けられる。第5のローパスフィルタ55は、サブMPU40から出力されるR相信号VRに含まれる周波数成分のうち、所定のカットオフ周波数以下の周波数成分を出力回路60へ通過させる。第5のローパスフィルタ55から出力される信号は、第5のローパスフィルタ55に入力されるR相信号VRよりも滑らかな波形となる。このように、第5のローパスフィルタ55から出力される信号は、第5のローパスフィルタ55に入力されるR相信号VRと異なるが、本実施形態では説明の便宜上、第5のローパスフィルタ55から出力される信号も「R相信号VR」と呼称する。
【0042】
出力回路60は、フィルタ回路50から出力されるA相信号VA、B相信号VB、C相信号VC、D相信号VD、及びR相信号VRのそれぞれの差動信号を生成して出力する回路である。出力回路60は、第1の差動出力回路61と、第2の差動出力回路62と、第3の差動出力回路63と、第4の差動出力回路64と、第5の差動出力回路65と、を備える。
【0043】
第1の差動出力回路61は、第1のローパスフィルタ51から出力されるA相信号VAの差動信号を生成する。第1の差動出力回路61から出力される差動信号は、第1のローパスフィルタ51から第1の差動出力回路61に入力されるA相信号VAと同じ位相の信号である正側A相信号A+と、正側A相信号A+に対して逆位相の信号である負側A相信号A-とを含む。
【0044】
第2の差動出力回路62は、第2のローパスフィルタ52から出力されるB相信号VBの差動信号を生成する。第2の差動出力回路62から出力される差動信号は、第2のローパスフィルタ52から第2の差動出力回路62に入力されるB相信号VBと同じ位相の信号である正側B相信号B+と、正側B相信号B+に対して逆位相の信号である負側B相信号B-とを含む。
【0045】
第3の差動出力回路63は、第3のローパスフィルタ53から出力されるC相信号VCの差動信号を生成する。第3の差動出力回路63から出力される差動信号は、第3のローパスフィルタ53から第3の差動出力回路63に入力されるC相信号VCと同じ位相の信号である正側C相信号C+と、正側C相信号C+に対して逆位相の信号である負側C相信号C-とを含む。
【0046】
第4の差動出力回路64は、第4のローパスフィルタ54から出力されるD相信号VDの差動信号を生成する。第4の差動出力回路64から出力される差動信号は、第4のローパスフィルタ54から第4の差動出力回路64に入力されるD相信号VDと同じ位相の信号である正側D相信号D+と、正側D相信号D+に対して逆位相の信号である負側D相信号D-とを含む。
【0047】
第5の差動出力回路65は、第5のローパスフィルタ55から出力されるR相信号VRの差動信号を生成する。第5の差動出力回路65から出力される差動信号は、第5のローパスフィルタ55から第5の差動出力回路65に入力されるR相信号VRと同じ位相の信号である正側R相信号R+と、正側R相信号R+に対して逆位相の信号である負側R相信号R-とを含む。
【0048】
以下では、図2から図10を参照しながら、上記のように構成される信号生成装置1の動作について詳細に説明する。
【0049】
信号生成装置1が電源オフ状態から電源オン状態に切り替わると、メインMPU30の第1の演算部33と、サブMPU40の第2の演算部42とは、それぞれ所定の初期化処理を実行する。例えば、第1の演算部33は、初期化処理の一つとして、第1の記憶部34からタイマ32のタイマリセット値TRESを読み出し、読み出したタイマリセット値TRESをタイマ32にセットする。また、第1の演算部33は、初期化処理の一つとして、後述の割込み回数countの値を「0」にリセットする。
【0050】
図2は、割込み信号INTの発生タイミングと、割込み回数countの変化タイミングと、割込み処理の実行タイミングと、A/Dコンバータ31の動作タイミングと、角度演算処理の実行タイミングと、データ送信処理の実行タイミングとの時間的な対応関係を示すタイミングチャートである。
【0051】
タイマ32にタイマリセット値TRESがセットされると、タイマ32は、不図示のクロック信号に同期してタイマカウント値をインクリメントし、タイマカウント値がタイマリセット値TRESに到達すると、割込み信号INTを出力すると共にタイマカウント値をリセットする。これにより、図2に示すように、タイマ32から所定の周期TINTで割込み信号INTが出力される。
【0052】
図2に示すように、第1の演算部33は、割込み信号INTが発生するごとに割込み処理を行うが、割込み処理の開始時に割込み信号INTの発生回数である割込み回数countが初期値「0」と等しい場合、所定の長周期処理を行った後に所定の短周期処理を行う一方、割込み回数countが初期値「0」と等しくない場合、長周期処理を行うことなく短周期処理を行う。
【0053】
図2に示すように、割込み回数countは最大値「Cm」を超えると初期値「0」にリセットされる。このように、割込み回数countがリセットされる周期Tperiodを「制御周期」と呼称する。制御周期Tperiodは、下記(1)式で表される。割込み処理に含まれる長周期処理は、制御周期Tperiodと等しい周期で繰り返し実行される処理である。割込み処理に含まれる短周期処理は、割込み信号INTの発生周期TINTと等しい周期で繰り返し実行される処理である。
Tperiod = (Cm+1) × TINT …(1)
【0054】
回転軸が回転すると、センサ部10から互いに電気角で120度の位相差を有する磁束検出信号Hu、Hv及びHwが出力される。図2に示すように、割込み回数countが初期値「0」のときに、A/Dコンバータ31によって磁束検出信号Hu、Hv及びHwのデジタル変換が開始され、割込み回数countが例えば「2」のときに、デジタル変換が終了する。つまり、割込み回数countが初期値「0」から「2」に変化する期間に、1制御周期における磁束検出信号Hu、Hv及びHwのデジタルデータが得られる。図2に示すように、第1の演算部33は、磁束検出信号Hu、Hv及びHwのデジタルデータを取得すると、割込み処理を実行しない期間に角度演算処理を実行する。
【0055】
第1の演算部33は、角度演算処理において、磁束検出信号Hu、Hv及びHwのデジタルデータに基づいて回転軸の絶対角度θ(機械角)を算出する。絶対角度θの演算アルゴリズムとして、例えば特許第6233532号公報に記載のアルゴリズムを用いることができる。そのため、本明細書では絶対角度θの演算アルゴリズムについての説明を省略する。ただし、絶対角度θの演算アルゴリズムは、特許第6233532号公報に記載のアルゴリズムに限定されない。回転軸の絶対角度を算出可能なアルゴリズムであれば、他の演算アルゴリズムを用いてもよい。
【0056】
図2に示すように、割込み回数countが最大値「Cm」のときに、1制御周期内で実行される角度演算処理が終了する。第1の演算部33は、角度演算処理が終了すると、絶対角度θの算出結果をグローバル変数gwThetaに代入する。絶対角度θを示すグローバル変数gwThetaの値が新しい値に書き換えられる周期は、制御周期Tperiodと等しい。言い換えれば、制御周期Tperiodは、回転軸の絶対角度θが更新される周期である。
【0057】
図3は、第1の演算部33が実行する割込み処理を示すフローチャートである。上記のように、第1の演算部33は、タイマ32から割込み信号INTが入力されると、図3に示す割込み処理を実行する。図3に示すように、第1の演算部33は、割込み処理を開始すると、まず、割込み回数countが初期値「0」と等しいか否かを判定する(ステップS1)。第1の演算部33は、ステップS1において「Yes」の場合、すなわち割込み回数countが初期値「0」と等しい場合、ステップS2の処理に移行する。一方、第1の演算部33は、ステップS1において「No」の場合、すなわち割込み回数countが初期値「0」と等しくない場合、ステップS5の処理に移行する。
【0058】
図3に示す割込み処理において、ステップS2からステップS4までの処理が長周期処理である。また、図3に示す割込み処理において、ステップS5からステップS10までの処理が短周期処理である。すなわち、割込み回数countが初期値「0」と等しい場合に、第1の演算部33は、ステップS2からステップS4までの処理を含む長周期処理を実行した後に、ステップS5からステップS10までの処理を含む短周期処理を実行する。一方、割込み回数countが初期値「0」と等しくない場合、第1の演算部33は、長周期処理を行うことなく短周期処理を実行する。
【0059】
第1の演算部33は、長周期処理の一つの処理として、回転軸の絶対角度θの今回値を取得する角度取得処理を実行する(ステップS2)。具体的には、ステップS2において、第1の演算部33は、グローバル変数gwThetaの値を絶対角度θの今回値Thetaとして取得する。図2に示すように、絶対角度θの今回値Thetaは、現在の制御周期より1つ前の制御周期で算出された絶対角度θの値である。
【0060】
次に、第1の演算部33は、長周期処理の一つの処理として、絶対角度θの今回値Theta及び絶対角度θの前回値Theta_prevに基づいて、絶対角度θを時間の一次関数として表す絶対角度関数を算出する関数算出処理を実行する(ステップS3及びS4)。なお、絶対角度θの前回値Theta_prevは、現在の制御周期より2つ前の制御周期で算出された絶対角度θの値である。
【0061】
具体的には、第1の演算部33は、関数算出処理の一つとして、絶対角度θの今回値Thetaに遅延補償を施すことにより、絶対角度関数の切片を算出する切片算出処理を実行する(ステップS3)。絶対角度θの今回値Thetaには、以下のような時間遅れ成分が含まれる。上記のように、絶対角度θの今回値Thetaは、現在の制御周期より1つ前の制御周期で算出された絶対角度θの値である。そのため、絶対角度θの今回値Thetaは、1制御周期に相当する時間遅れを有する。また、絶対角度θの今回値Thetaは、磁気センサ11、12及び13の応答遅れに起因する時間遅れを有する。さらに、磁束検出信号Hu、Hv及びHwに対してローパスフィルタが設けられる場合、絶対角度θの今回値Thetaは、ローパスフィルタの周波数特性に起因する時間遅れを有する。
【0062】
ステップS3において、第1の演算部33は、上記のような時間遅れ成分を有する絶対角度θの今回値Thetaに遅延補償を施す。図4において、θは角度演算処理によって算出される絶対角度θであり、θtrueは絶対角度θの真値であり、θnewは遅延補償された絶対角度θである。図4に示すように、絶対角度θに時間遅れTdelayが存在すると、真値θnewに対して角度誤差θdelayが絶対角度θに発生する。この場合、遅延補償された絶対角度θnewは、下記(2)式で表される。下記(2)式において、θ(k)は絶対角度θの今回値Thetaと等しく、θ(k-1)は絶対角度θの前回値Theta_prevと等しい。下記(2)式において、右辺第2項は角度誤差θdelayと等しい。
【0063】
【数1】
【0064】
ステップS3において、第1の演算部33は、上記(2)式に基づいて遅延補償された絶対角度θnewを絶対角度関数の切片として算出する。第1の演算部33は、遅延補償された絶対角度θnewの算出結果を切片Theta_new_lowとして取得する。なお、上記(2)式に含まれる時間遅れTdelayとして、上述した時間遅れの要因を考慮したシミュレーションを行うことで得られた計算値を用いてもよいし、或いは実験を行うことで得られた実測値を用いてもよい。
【0065】
次に、第1の演算部33は、関数算出処理の一つとして、絶対角度θの今回値Thetaから前回値Theta_prevを減算することにより、絶対角度関数の傾きを算出する傾き算出処理を実行する(ステップS4)。具体的には、ステップS4において、第1の演算部33は、下記(3)式に基づいて絶対角度関数の傾きTheta_extrを算出する。
Theta_extr = Theta - Theta_prev …(3)
【0066】
第1の演算部33が上記のステップS3及びS4を含む関数算出処理を実行することにより、最終的に下記(4)式で表される絶対角度関数θ(count)が得られる。
θ(count) = Theta_new_low + Theta_extr/(Cm+1) × count …(4)
【0067】
以上のステップS2からステップS4までの処理が、制御周期Tperiodと等しい周期で繰り返し実行される長周期処理である。続いて、短周期処理について説明する。
【0068】
第1の演算部33は、短周期処理の一つとして、関数算出処理によって算出された絶対角度関数に基づいて絶対角度θの推定値を角度推定値θestとして算出する角度推定値算出処理を実行する(ステップS5)。具体的には、ステップS5において、第1の演算部33は、上記(4)式に現在の割込み回数countの値を代入することにより算出したθ(count)の値を、角度推定値θestとして取得する。
【0069】
図5において、直線Lは、任意の1制御周期において割込み回数countが「0」の時に算出された絶対角度関数θ(count)の一例を示す。直線Lの傾きが、絶対角度関数θ(count)の傾きTheta_extr である。直線L上の点P0の値は、割込み回数countが「0」の時に算出された角度推定値θestである。点P0の値は、絶対角度関数θ(count)の切片Theta_new_lowと等しい。直線L上の点P2の値は、割込み回数countが「2」の時に算出された角度推定値θestである。直線L上の点P3の値は、割込み回数countが「3」の時に算出された角度推定値θestである。直線L上の点P5の値は、割込み回数countが「5」の時に算出された角度推定値θestである。直線L上の点P7の値は、割込み回数countが「7」の時に算出された角度推定値θestである。
【0070】
第1の演算部33は、上記のように長周期処理で得られた絶対角度関数θ(count)に基づいて、現在の割込み回数countの値に対応する角度推定値θestを算出すると、下記(5)式に基づいてA相信号VAの瞬時値Vaを算出し(ステップS6)、下記(6)式に基づいてB相信号VBの瞬時値Vbを算出する(ステップS7)。下記(5)式及び(6)式において、K1及びN1は定数である。N1は、機械角1周期においてA相信号VA及びB相信号VBに電気角1周期の波形が現れる回数(周期数)である。A相信号VA及びB相信号VBの周期数N1によって分解能が決定される。一例として、N1は2048である。
Va=K1・sin(N1×θest) …(5)
Vb=K1・cos(N1×θest) …(6)
【0071】
第1の演算部33は、A相信号VAの瞬時値Vaを示すデジタルデータをA相デジタル信号DVAとして第1のD/Aコンバータ35に出力するとともに、B相信号VBの瞬時値Vbを示すデジタルデータをB相デジタル信号DVBとして第1のD/Aコンバータ35に出力する。なお、第1の演算部33は、第1の記憶部34に予め記憶されたテーブルデータを参照することにより、角度推定値θestに対応するA相信号VAの瞬時値VaとB相信号VBの瞬時値Vbとを取得してもよい。
【0072】
第1の演算部33は、上記ステップS6及びS7の処理を行った後、割込み回数countを更新する割込み回数更新処理を実行する(ステップS8)。具体的には、ステップS8において、第1の演算部33は、割込み回数countの値をインクリメントする。
【0073】
次に、第1の演算部33は、割込み回数countが所定の閾値Cthと等しいか否かを判定する(ステップS9)。閾値Cthは、割込み回数countの最大値「Cm」に「1」を加算した値である。第1の演算部33は、ステップS9において「Yes」の場合、すなわち割込み回数countが閾値Cth(=Cm+1)と等しい場合に、割込み回数countを初期値「0」にリセットして割込み処理を終了する(ステップS10)。一方、第1の演算部33は、ステップS9において「No」の場合、すなわち割込み回数countが閾値Cthと等しくない場合、ステップS10の処理を行わずに割込み処理を終了する。
【0074】
第1の演算部33が、上記のような割込み処理を割込み信号INTの発生周期TINTで繰り返し実行することにより、サイン波のアナログ信号であるA相信号VAと、コサイン波のアナログ信号であるB相信号VB(すなわちA相信号VAに対して電気角で90度の位相差を有するB相信号VB)とが、第1のD/Aコンバータ35からフィルタ回路50に出力される。例えば、A相信号VA及びB相信号VBの周期数N1が2048である場合、機械角1周期、すなわち角度推定値θestが0度から360度まで変化する期間に出力されるA相信号VA及びB相信号VBには、それぞれ、電気角1周期の波形が2048回現れる。
【0075】
第1の演算部33は、割込み処理で得られた角度情報(角度推定値θest)を、所定の通信サイクルでサブMPU40に送信するデータ送信処理を実行する。図2に示すように、例えば、第1の演算部33は、割込み回数countの値が「1」、「3」などの奇数のときに、データ送信処理を実行する。つまり、データ送信処理は、割込み信号INTの発生周期TINTの2倍の周期で繰り返し実行される処理である。言い換えれば、メインMPU30とサブMPU40との間の通信サイクルは、割込み信号INTの発生周期TINTの2倍の周期と等しい。
【0076】
図6は、第1の演算部33が実行するデータ送信処理に関する説明図である。以下では、図6を参照しながら、第1の演算部33が実行するデータ送信処理について説明する。図6に示される第1データD1は、角度情報を示すMビットのデジタルデータである。上記のように、本実施形態において、Mは32であるため、第1データD1は、角度情報を示す32ビットのデジタルデータである。また、一例として、第1データD1は、固定小数点データである。
【0077】
図6に示すように、第1の演算部33は、データ送信処理を開始すると、まず、32ビットの第1データD1から上位Kビットの第2データD2を抽出する処理を実行する。ここで、Kは、M>K>Nという関係式を満たす値である。一例として、Kは20である。すなわち、第1の演算部33は、32ビットの第1データD1から上位20ビットの第2データD2を抽出する。
【0078】
続いて、第1の演算部33は、第2データD2を、上位Xビットの上位データD2_upperと、中間Yビットの中間データD2_middleと、下位Zビットの下位データD2_lowerとに分割する処理を実行する。ここで、X、Y、及びZは、X+Y+Z=K、且つ、X=Yという関係式を満たす値である。一例として、X及びYは5であり、Zは10である。すなわち、第1の演算部33は、20ビットの第2データD2を、上位5ビットの上位データD2_upperと、中間5ビットの中間データD2_middleと、下位10ビットの下位データD2_lowerとに分割する。
【0079】
そして、第1の演算部33は、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、少なくとも上位データD2_upper及び下位データD2_lowerを含むNビットの第1送信データTD1を、サブMPU40に送信する処理を実行する。一例として、第1送信データTD1は、上位データD2_upper及び下位データD2_lowerに加えて、1ビットのフラグビットFbを最上位ビットとして含む。すなわち、第1送信データTD1は、1ビットのフラグビットFbと、5ビットの上位データD2_upperと、10ビットの下位データD2_lowerとを含む16ビットのデータである。一例として、第1送信データTD1のフラグビットFbは、「1」にセットされる。
【0080】
また、第1の演算部33は、隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、少なくとも中間データD2_middle及び下位データD2_lowerを含むNビットの第2送信データTD2を、サブMPU40に送信する処理を実行する。一例として、第2送信データTD2は、中間データD2_middle及び下位データD2_lowerに加えて、1ビットのフラグビットFbを最上位ビットとして含む。すなわち、第2送信データTD2は、1ビットのフラグビットFbと、5ビットの中間データD2_middleと、10ビットの下位データD2_lowerとを含む16ビットのデータである。一例として、第2送信データTD2のフラグビットFbは、「0」にセットされる。
【0081】
図2を参照すると、例えば、第1の演算部33は、割込み回数countの値が「1」のときの通信サイクルにおいて、16ビットの第1送信データTD1を、第1の通信I/F36を介してサブMPU40に送信する。一方、第1の演算部33は、割込み回数countの値が「3」のときの通信サイクルにおいて、16ビットの第2送信データTD2を、第1の通信I/F36を介してサブMPU40に送信する。
【0082】
第1の演算部33が上記のデータ送信処理を所定の通信サイクルで繰り返し実行することにより、メインMPU30からサブMPU40へ、第1送信データTD1と第2送信データTD2とが、所定の通信サイクルで交互に送信される。
【0083】
図7は、サブMPU40の第2の演算部42が実行する信号生成処理を示すフローチャートである。第2の演算部42は、第2の通信I/F41を介して、メインMPU30からデータを受信するたびに信号生成処理を実行する。すなわち、第2の演算部42は、所定の通信サイクルで信号生成処理を繰り返し実行する。
【0084】
図7に示すように、第2の演算部42は、信号生成処理を開始すると、まず、データ再生成処理を実行する(ステップS21)。データ再生成処理とは、16ビットの第1送信データTD1と、16ビットの第2送信データTD2とに基づいて、20ビットの第2データD2を再生成する処理である。以下では、図8を参照しながら、第2の演算部42が実行するデータ再生成処理について詳細に説明する。
【0085】
図8は、第2の演算部42が実行するデータ再生成処理を示すフローチャートである。図8に示すように、第2の演算部42は、データ再生成処理を開始すると、まず、初期処理を実行する(ステップS31)。
【0086】
具体的には、ステップS31において、第2の演算部42は、下記(7)式に基づいて、受信データに含まれるフラグビットFbの値を、変数Flagに代入する。例えば、受信データが第1送信データTD1である場合には、変数Flagに「1」が代入される。また、受信データが第2送信データTD2である場合には、変数Flagに「0」が代入される。なお、下記(7)式から(10)式において、「1」及び「0」を含む数値は2進数表記の数値であり、「&」は論理積を示す記号であり、「>>」は右ビットシフトを示す記号であり、「<<」は左ビットシフトを示す記号である。例えば、下記(7)式の右辺は、16ビットの受信データ(data)と「1000 0000 0000 0000」との論理積を演算し、その演算結果を15ビットだけ右にシフトする、という意味である。
Flag = (data & (1000 0000 0000 0000))>>15 …(7)
【0087】
また、ステップS31において、第2の演算部42は、下記(8)式に基づいて、受信データに含まれるデータのうち、上位第2ビットから上位第6ビットまで5ビットのデータを、変数5bit_dataに代入する。例えば、受信データが第1送信データTD1である場合には、変数5bit_dataに上位データD2_upperが代入される。また、受信データが第2送信データTD2である場合には、変数5bit_dataに中間データD2_middleが代入される。
5bit_data = (data & (0111 1100 0000 0000))>>10 …(8)
【0088】
また、ステップS31において、第2の演算部42は、下記(9)式に基づいて、受信データに含まれるデータのうち、下位10ビットのデータを、変数Low10に代入する。受信データが第1送信データTD1である場合と、受信データが第2送信データTD2である場合との両方において、変数Low10には下位データD2_lowerが代入される。
Low10 = data & (0000 0011 1111 1111) …(9)
【0089】
第2の演算部42は、上記の初期処理を実行した後、変数Flagの値が「0」と等しいか否かを判定する(ステップS32)。言い換えれば、第2の演算部42は、受信データが第1送信データTD1と第2送信データTD2とのどちらなのかを判定する。
【0090】
第2の演算部42は、変数Flagの値が「0」と等しくない場合(ステップS32:No)、すなわち受信データが第1送信データTD1である場合、ステップS33に移行する。一方、第2の演算部42は、変数Flagの値が「0」と等しい場合(ステップS32:Yes)、すなわち受信データが第2送信データTD2である場合、ステップS39に移行する。以下では、まず、第2の演算部42が、第1送信データTD1を受信した場合に実行する処理について説明する。
【0091】
第2の演算部42は、ステップS32からステップS33に移行すると、変数5bit_dataの値を、変数Up5に代入する(ステップS33)。これにより、受信データ(第1送信データTD1)に含まれる上位データD2_upperが、変数Up5に代入される。
【0092】
続いて、第2の演算部42は、変数Low10の値から変数Low10_prevの値を減算することで得られた値を、変数Xに代入する(ステップS34)。なお、後述のステップS46の説明から明らかになるように、変数Low10_prevには、1つ前の通信サイクルで実行されたデータ再生成処理によって得られた変数Low10の値(すなわち下位データD2_lower)が代入されている。
【0093】
続いて、第2の演算部42は、変数Xの値が、210/2よりも大きいか否かを判定する(ステップS35)。第2の演算部42は、変数Xの値が、210/2よりも大きい場合(ステップS35:Yes)、変数Mid5の値をインクリメントする(ステップS36)。第2の演算部42は、ステップS36の処理を実行した後、ステップS45に移行する。
【0094】
一方、第2の演算部42は、変数Xの値が、210/2以下である場合(ステップS35:No)、変数Xの値が、-210/2よりも小さいか否かを判定する(ステップS37)。第2の演算部42は、変数Xの値が、-210/2よりも小さい場合(ステップS37:Yes)、変数Mid5の値をデクリメントする(ステップS38)。第2の演算部42は、ステップS38の処理を実行した後、ステップS45に移行する。一方、第2の演算部42は、変数Xの値が、-210/2以上である場合(ステップS37:No)、ステップS45に移行する。
【0095】
次に、第2の演算部42が、第2送信データTD2を受信した場合に実行する処理について説明する。第2の演算部42は、ステップS32からステップS39に移行すると、変数5bit_dataの値を、変数Mid5に代入する(ステップS39)。これにより、受信データ(第2送信データTD2)に含まれる中間データD2_middleが、変数Mid5に代入される。
【0096】
続いて、第2の演算部42は、変数Mid5の値から変数Mid5_prevの値を減算することで得られた値を、変数Xに代入する(ステップS40)。なお、後述のステップS46の説明から明らかになるように、変数Mid5_prevには、1つ前の通信サイクルで実行されたデータ再生成処理によって得られた変数Mid5の値(すなわち中間データD2_middle)が代入されている。
【0097】
続いて、第2の演算部42は、変数Xの値が、2/2よりも大きいか否かを判定する(ステップS41)。第2の演算部42は、変数Xの値が、2/2よりも大きい場合(ステップS41:Yes)、変数Up5の値をインクリメントする(ステップS42)。第2の演算部42は、ステップS42の処理を実行した後、ステップS45に移行する。
【0098】
一方、第2の演算部42は、変数Xの値が、2/2以下である場合(ステップS41:No)、変数Xの値が、-2/2よりも小さいか否かを判定する(ステップS43)。第2の演算部42は、変数Xの値が、-2/2よりも小さい場合(ステップS43:Yes)、変数Up5の値をデクリメントする(ステップS44)。第2の演算部42は、ステップS44の処理を実行した後、ステップS45に移行する。一方、第2の演算部42は、変数Xの値が、-2/2以上である場合(ステップS43:No)、ステップS45に移行する。
【0099】
上記のように、第2の演算部42は、第1送信データTD1を受信した場合には、ステップS33からステップS38までの処理を実行した後に、ステップS45に移行する。また、第2の演算部42は、第2送信データTD2を受信した場合には、ステップS39からステップS44までの処理を実行した後に、ステップS45に移行する。
【0100】
第2の演算部42は、ステップS45に移行すると、下記(10)式に基づいて、20ビットの第2データD2を再生成する(ステップS45)。下記(10)式における変数20bit_dataの値が、第2データD2の値である。なお、下記(10)式の右辺は、変数Up5の値を左に10ビットだけシフトさせた値と、変数Mid5の値を左に5ビットだけシフトさせた値と、変数Low10の値との和を演算するという意味である。
20bit_data = (Up5<<10) + (Mid5<<5) + Low10 …(10)
【0101】
第2の演算部42は、上記のように第2データD2を再生成した後、変数Low10_prevに変数Low10の値を代入するとともに、変数Mid5_prevに変数Mid5の値を代入する(ステップS46)。第2の演算部42は、ステップS46を実行した後、データ再生成処理を終了する。
【0102】
上記のデータ再生成処理の説明から理解されるように、第2の演算部42は、第2データD2を再生成する処理の一つとして、第1送信データTD1を受信した場合には、第1送信データTD1に基づいて中間データD2_middleの推定値(変数Mid5の値)を算出する処理(ステップS33からステップS38の処理)を実行する。また、第2の演算部42は、第2データD2を再生成する処理の一つとして、第1送信データTD1に含まれる上位データD2_upper(変数Up5の値)及び下位データD2_lower(変数Low10の値)と、中間データD2_middleの推定値とを組み合わせることにより、第2データD2を再生成する処理(ステップS45の処理)を実行する。
【0103】
第2の演算部42は、中間データD2_middleの推定値を算出する処理として、以下の4つの処理を実行する。
第2の演算部42は、第1送信データTD1に含まれる下位データD2_lowerに繰り上がりと繰り下がりとの一方が発生したか否かを判定する処理(ステップS34、S35及びS37の処理)を実行する。
第2の演算部42は、下位データD2_lowerに繰り上がりが発生したと判定した場合には、隣り合う2つの通信サイクルのうち他方の通信サイクルで受信した第2送信データTD2に含まれる中間データD2_middleの値に1を加算することにより、中間データD2_middleの推定値を算出する処理(ステップS36の処理)を実行する。
第2の演算部42は、下位データD2_lowerに繰り下がりが発生したと判定した場合には、他方の通信サイクルで受信した第2送信データTD2に含まれる中間データD2_middleの値から1を減算することにより、中間データD2_middleの推定値を算出する処理(ステップS38の処理)を実行する。
第2の演算部42は、下位データD2_lowerに繰り上がり及び繰り下がりの両方が発生しなかったと判定した場合には、他方の通信サイクルで受信した第2送信データTD2に含まれる中間データD2_middleの値を、中間データD2_middleの推定値として取得する処理(ステップS37で「No」の場合にステップS45に移行する処理)を実行する。
【0104】
また、上記のデータ再生成処理の説明から理解されるように、第2の演算部42は、第2データD2を再生成する処理の一つとして、第2送信データTD2を受信した場合には、第2送信データTD2に基づいて上位データD2_upperの推定値(変数Up5の値)を算出する処理(ステップS39からステップS44までの処理)を実行する。また、第2の演算部42は、第2データD2を再生成する処理の一つとして、第2送信データTD2に含まれる中間データD2_middle及び下位データD2_lowerと、上位データD2_upperの推定値とを組み合わせることにより、第2データD2を再生成する処理(ステップS45の処理)を実行する。
【0105】
第2の演算部42は、上位データD2_upperの推定値を算出する処理として、以下の4つの処理を実行する。
第2の演算部42は、第2送信データTD2に含まれる中間データD2_middleに繰り上がりと繰り下がりとの一方が発生したか否かを判定する処理(ステップS40、S41及びS43の処理)を実行する。
第2の演算部42は、中間データD2_middleに繰り上がりが発生したと判定した場合には、隣り合う2つの通信サイクルのうち一方の通信サイクルで受信した第1送信データTD1に含まれる上位データD2_upperの値に1を加算することにより、上位データD2_upperの推定値を算出する処理(ステップS42の処理)を実行する。
第2の演算部42は、中間データD2_middleに繰り下がりが発生したと判定した場合には、一方の通信サイクルで受信した第1送信データTD1に含まれる上位データD2_upperの値から1を減算することにより、上位データD2_upperの推定値を算出する処理(ステップS44の処理)を実行する。
第2の演算部42は、中間データD2_middleに繰り上がり及び繰り下がりの両方が発生しなかったと判定した場合には、一方の通信サイクルで受信した第1送信データTD1に含まれる上位データD2_upperの値を、上位データD2_upperの推定値として取得する処理(ステップS43で「No」の場合にステップS45に移行する処理)を実行する。
【0106】
以上が、データ再生成処理に関する説明である。第2の演算部42は、上記のデータ再生成処理によって20ビットの第2データD2を再生成した後、図7に示される信号生成処理のステップS22に移行する。
【0107】
図7に示すように、第2の演算部42は、ステップS22に移行すると、下記(11)式に基づいて、C相信号VCの瞬時値Vcを算出する(ステップS22)。なお、下記(11)式において、θD2は、データ再生成処理によって得られた第2データD2の値(変数20bit_dataの値)であり、K2は定数である。
Vc=K2・sin(θD2) …(11)
【0108】
続いて、第2の演算部42は、下記(12)式に基づいて、D相信号VDの瞬時値Vdを算出する(ステップS23)。なお、下記(12)式において、θD2は、データ再生成処理によって得られた第2データD2の値(変数20bit_dataの値)であり、K2は定数である。
Vd=K2・cos(θD2) …(12)
【0109】
第2の演算部42は、C相信号VCの瞬時値Vcを示すデジタルデータをC相デジタル信号DVCとして第2のD/Aコンバータ44に出力するとともに、D相信号VDの瞬時値Vdを示すデジタルデータをD相デジタル信号DVDとして第2のD/Aコンバータ44に出力する。なお、第2の演算部42は、第2の記憶部43に予め記憶されたテーブルデータを参照することにより、第2データD2の値(θD2)に対応するC相信号VCの瞬時値VdとD相信号VDの瞬時値Vdとを取得してもよい。
【0110】
さらに、第2の演算部42は、第2データD2の値を所定の関数に代入することにより、R相信号VRの瞬時値Vrを算出する(ステップS24)。図9に示すように、R相信号VRは、機械角0度(この場合、角度推定値θestの0度)を中心として±α度の範囲内で左右線対称となり、且つ機械角0度で頂点が現れる波形である。図9では、一例としてシグモイド関数に基づいてR相信号VRの瞬時値Vrを算出した場合に得られる波形を示している。一例として、周期数N1が2048である場合、αを下記(13)式に基づいて決定してもよい。
α=360/2048=0.17578(deg) …(13)
【0111】
第2の演算部42は、R相信号VRの瞬時値Vrを示すデジタルデータをR相デジタル信号DVRとして第2のD/Aコンバータ44に出力する。なお、第2の演算部42は、第2の記憶部43に予め記憶されたテーブルデータを参照することにより、第2データD2の値に対応するR相信号VRの瞬時値Vrを取得してもよい。第2の演算部24は、ステップS24の処理を実行した後、信号生成処理を終了する。
【0112】
第2の演算部42が、上記のような信号生成処理をメインMPU30からデータを受信するたびに実行することにより、サイン波のアナログ信号であるC相信号VCと、コサイン波のアナログ信号であるD相信号VD(すなわちC相信号VCに対して電気角で90度の位相差を有するD相信号VD)とが、第2のD/Aコンバータ44からフィルタ回路50に出力される。機械角1周期、すなわち角度推定値θestが0度から360度まで変化する期間に出力されるC相信号VC及びD相信号VDには、それぞれ、電気角1周期の波形が1回現れる。
【0113】
また、第2の演算部42が、上記のような信号生成処理をメインMPU30からデータを受信するたびに実行することにより、機械角1周期の基準位置、すなわち角度推定値θestが0度となる位置を示すアナログ信号であるR相信号VRが、第2のD/Aコンバータ44からフィルタ回路50に出力される。
【0114】
上記のように、メインMPU30から出力されたA相信号VAは、フィルタ回路50の第1のローパスフィルタ51によって滑らかなサイン波形を有する信号に整形された後、出力回路60の第1の差動出力回路61に入力される。メインMPU30から出力されたB相信号VBは、フィルタ回路50の第2のローパスフィルタ52によって滑らかなコサイン波形を有する信号に整形された後、出力回路60の第2の差動出力回路62に入力される。
【0115】
サブMPU40から出力されたC相信号VCは、フィルタ回路50の第3のローパスフィルタ53によって滑らかなサイン波形を有する信号に整形された後、出力回路60の第3の差動出力回路63に入力される。サブMPU40から出力されたD相信号VDは、フィルタ回路50の第4のローパスフィルタ54によって滑らかなコサイン波形を有する信号に整形された後、出力回路60の第4の差動出力回路64に入力される。サブMPU40から出力されたR相信号VRは、フィルタ回路50の第5のローパスフィルタ55によって滑らかな波形を有する信号に整形された後、出力回路60の第5の差動出力回路65に入力される。
【0116】
そして、図10に示すように、第1のローパスフィルタ51から第1の差動出力回路61に入力されるA相信号VAと同じ位相の信号である正側A相信号A+と、正側A相信号A+に対して逆位相の信号である負側A相信号A-とが、第1の差動出力回路61から出力される。同様に、第2のローパスフィルタ52から第2の差動出力回路62に入力されるB相信号VBと同じ位相の信号である正側B相信号B+と、正側B相信号B+に対して逆位相の信号である負側B相信号B-とが、第2の差動出力回路62から出力される。例えば、A相信号VA及びB相信号VBの周期数N1が2048である場合、角度推定値θestが0度から360度まで変化する期間に出力される正側A相信号A+、負側A相信号A-、正側B相信号B+、および負側B相信号B-には、それぞれ、電気角1周期の波形が2048回現れる。
【0117】
また、図10に示すように、第3のローパスフィルタ53から第3の差動出力回路63に入力されるC相信号VCと同じ位相の信号である正側C相信号C+と、正側C相信号C+に対して逆位相の信号である負側C相信号C-とが、第3の差動出力回路63から出力される。同様に、第4のローパスフィルタ54から第4の差動出力回路64に入力されるD相信号VDと同じ位相の信号である正側D相信号D+と、正側D相信号D+に対して逆位相の信号である負側D相信号D-とが、第4の差動出力回路64から出力される。角度推定値θestが0度から360度まで変化する期間に出力される正側C相信号C+、負側C相信号C-、正側D相信号D+、および負側D相信号D-には、それぞれ、電気角1周期の波形が1回現れる。
【0118】
さらに、図10に示すように、第5のローパスフィルタ55から第5の差動出力回路65に入力されるR相信号VRと同じ位相の信号である正側R相信号R+と、正側R相信号R+に対して逆位相の信号である負側R相信号R-とが、第5の差動出力回路65から出力される。角度推定値θestが0度から360度まで変化する期間に出力される正側R相信号R+及び負側R相信号R-には、角度推定値θestの0度を中心として±α度の範囲内で左右線対称となる波形が1回現れる。
【0119】
図11は、従来のように、メインMPU30が、角度情報を示す32ビットの第1データD1のうち、上位16ビットのデータのみをサブMPU40に送信した場合に、サブMPU40から出力されるR相信号VRの一例を示す図である。図11では、メインMPU30から出力されるA相信号VA及びB相信号VBも示している。図11において、範囲W1は、図9に示される、角度推定値θestの0度を中心とする±α度の範囲に相当する。
【0120】
図11に示される例において、範囲W1における角度分解能は、下記(14)式で表されるように、64である。なお、(14)式に代入されるNの値は、16である。図11に示すように、この場合、サブMPU40が受信する16ビットのデータでは角度分解能が不足しているため、サブMPU40から滑らかなR相信号VRを出力することは困難である。
角度分解能=(2/N1)×2=(65536/2048)×2=64 …(14)
【0121】
一方、図12は、本実施形態において、メインMPU30が図6のデータ送信処理を実行し、サブMPU40が図7の信号生成処理及び図8のデータ再生成処理を実行した場合に、サブMPU40から出力されるR相信号VRの一例を示す図である。図12では、メインMPU30から出力されるA相信号VA及びB相信号VBも示している。図12において、範囲W2は、図9に示される、角度推定値θestの0度を中心とする±α度の範囲に相当する。
【0122】
図12に示される例において、範囲W2における角度分解能は、下記(15)式で表されるように、1024である。なお、(15)式に代入されるNの値は、20である。このように、本実施形態では、図11に示される従来例と比較して、角度分解能が大幅に向上するため、サブMPU40から滑らかなR相信号VRを出力することができる。
角度分解能=(2/N1)×2
=(1048576/2048)×2=1024 …(15)
【0123】
以上説明したように、本実施形態によれば、メインMPU30とサブMPU40との間で通信可能なデータ長が16ビットに制限されていたとしても、特許文献2の技術と比較してシンプルなソフトウェア処理によって、メインMPU30からサブMPU40に送信されるデータの有効データ長を20ビットに向上させることができる。その結果、信号生成装置1のハードウェアの構成を変更することなく、サブMPU40から滑らかなR相信号VRを出力することができる。
【0124】
〔変形例〕
本発明は上記実施形態に限定されず、本明細書において説明した各構成は、相互に矛盾しない範囲内において、適宜組み合わせることができる。
【0125】
例えば、上記実施形態では、32ビットの第1データD1から上位20ビットのデータを第2データD2として抽出する形態を例示したが、本発明はこれに限定されず、第2データD2のデータ長(ビット数)は、要求されるモータの最高回転数に応じて適切に決定すればよい。
【0126】
上記実施形態のように、第2データD2のデータ長が20ビットである場合、繰り上がり及び繰り下がりが検出できる1通信サイクル当たりに変化する角度の最大値は、下記(16)式で表されるように、0.175781(deg)である。そして、例えば通信サイクルが4(μs)である場合、20ビットの第2データD2の使用が許容されるモータの最高回転数は、下記(17)式で表されるように、7324(rpm)である。従って、要求されるモータの最高回転数が約7300(rpm)以下である場合には、32ビットの第1データD1から上位20ビットのデータを第2データD2として抽出することが好ましい。
360×(2/220)=0.175781(deg) …(16)
0.175781/360/(4×10-6)×60=7324(rpm) …(17)
【0127】
例えば、図13に示すように、第1の演算部33は、32ビットの第1データD1から上位21ビットのデータを第2データD2として抽出してもよい。この場合、第1の演算部33は、21ビットの第2データD2を、上位6ビットの上位データD2_upperと、中間6ビットの中間データD2_middleと、下位9ビットの下位データD2_lowerとに分割する。
【0128】
そして、第1の演算部33は、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、「1」にセットされた1ビットのフラグビットFbと、6ビットの上位データD2_upperと、9ビットの下位データD2_lowerとを含む16ビットの第1送信データTD1を、サブMPU40に送信する。
【0129】
また、第1の演算部33は、隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、「0」にセットされた1ビットのフラグビットFbと、6ビットの中間データD2_middleと、9ビットの下位データD2_lowerとを含む16ビットの第2送信データTD2を、サブMPU40に送信する。
【0130】
図13に示される変形例のように、第2データD2のデータ長が21ビットである場合、繰り上がり及び繰り下がりが検出できる1通信サイクル当たりに変化する角度の最大値は、下記(18)式で表されるように、0.0439453(deg)である。そして、例えば通信サイクルが4(μs)である場合、21ビットの第2データD2の使用が許容されるモータの最高回転数は、下記(19)式で表されるように、1831(rpm)である。従って、要求されるモータの最高回転数が約1800(rpm)以下である場合には、32ビットの第1データD1から上位21ビットのデータを第2データD2として抽出することが好ましい。
360×(2/221)=0.0439453(deg) …(18)
0.0439453/360/(4×10-6)×60=1831(rpm) …(19)
【0131】
また、例えば、図14に示すように、第1の演算部33は、32ビットの第1データD1から上位22ビットの第2データD2を抽出してもよい。この場合、第1の演算部33は、22ビットの第2データD2を、上位7ビットの上位データD2_upperと、中間7ビットの中間データD2_middleと、下位8ビットの下位データD2_lowerとに分割する。
【0132】
そして、第1の演算部33は、隣り合う2つの通信サイクルのうち一方の通信サイクルにおいて、「1」にセットされた1ビットのフラグビットFbと、7ビットの上位データD2_upperと、8ビットの下位データD2_lowerとを含む16ビットの第1送信データTD1を、サブMPU40に送信する。
【0133】
また、第1の演算部33は、隣り合う2つの通信サイクルのうち他方の通信サイクルにおいて、「0」にセットされた1ビットのフラグビットFbと、7ビットの中間データD2_middleと、8ビットの下位データD2_lowerとを含む16ビットの第2送信データTD2を、サブMPU40に送信する。
【0134】
図14に示される変形例のように、第2データD2のデータ長が22ビットである場合、繰り上がり及び繰り下がりが検出できる1通信サイクル当たりに変化する角度の最大値は、下記(20)式で表されるように、0.0109863(deg)である。そして、例えば通信サイクルが4(μs)である場合、22ビットの第2データD2の使用が許容されるモータの最高回転数は、下記(21)式で表されるように、458(rpm)である。従って、要求されるモータの最高回転数が約450(rpm)以下である場合には、32ビットの第1データD1から上位22ビットのデータを第2データD2として抽出することが好ましい。
360×(2/222)=0.0109863(deg) …(20)
0.0109863/360/(4×10-6)×60=458(rpm) …(21)
【0135】
本発明におけるM、N、K、X、Y、及びZの値は、上記実施形態及び変形例の値に限定されない。M、N、K、X、Y、及びZの値は、M>K>N、X+Y+Z=K、及びX=Yという各関係式を満たす値であればよい。
【0136】
上記実施形態では、本発明の通信システムが組み込まれたアプリケーションとして信号生成装置1を例示したが、本発明の通信システムは、他のアプリケーションにも広く適用することができる。
【符号の説明】
【0137】
1…信号生成装置、10…センサ部、11、12、13…磁気センサ、20…処理装置、30…第1の処理装置(第1の通信装置)、31…A/Dコンバータ、32…タイマ、33…第1の演算部、34…第1の記憶部、35…第1のD/Aコンバータ、36…第1の通信I/F、40…第2の処理装置(第2の通信装置)、41…第2の通信I/F、42…第2の演算部、43…第2の記憶部、44…第2のD/Aコンバータ、50…フィルタ回路、51…第1のローパスフィルタ、52…第2のローパスフィルタ、53…第3のローパスフィルタ、54…第4のローパスフィルタ、55…第5のローパスフィルタ、60…出力回路、61…第1の差動出力回路、62…第2の差動出力回路、63…第3の差動出力回路、64…第4の差動出力回路、65…第5の差動出力回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14