(57)【要約】【課題】複数のモータドライバを内蔵するＩＣは、外部端子が数多く必要になると同時、複数個の固有のアドレスが必要となり、固有のアドレスを複数個、準備するのは手間がかかる。更にドライバの数が増えると、アドレスが不足しドライバが制御できない問題が発生する。【解決手段】本発明は、複数のモータドライバを内蔵しても、１つシリアルポートを共有して使用することで、外部端子数を削減すると共に、１つの固有のアドレスを用いて、複数個のモータを制御することが出来るモータ制御回路に関する。【選択図】    図８
2010088188.tif 000002
【特許請求の範囲】
【請求項１】
複数のモータの駆動を制御するモータ制御回路において、
外部とシリアル通信を行うシリアル通信回路と、
前記複数のモータを示す共通のアドレスを予め設定しておき、外部からの設定されたアドレスが前記共通のアドレスと一致しているか否かを検出するアドレス一致検出回路と、
前記複数のモータを制御する複数のドライバ回路と、
前記複数のドライバ回路を制御するのに必要な容量を有する記憶装置と、を備え、
前記シリアル通信回路は、前記アドレス一致検出回路からの一致を受け、前記シリアル通信を通じて、前記記憶装置に前記複数のドライバ回路のデータを記憶させることを特徴とするモータ制御回路。
【請求項２】
バッファ回路と、を備え、
前記バッファ回路は、前記シリアル通信回路と前記記憶装置の間に配置され、前記シリアル通信からデータを、一端、保持し、保持されたデータを前記記憶装置に対し、前記バッファ回路のデータサイズで出力して行くことを特徴とする請求項１記載のモータ制御回路。
【請求項３】
前記バッファ回路は８ビットのレジスタとし、前記記憶装置は前記バッファ回路の整数倍の容量を持つレジスタとすることを特徴とする請求項２記載のモータ制御回路。
【請求項４】
前記記憶装置のレジスタは、フリップフロップで構成され、前記フリップフロップのクロック端子には、８ビット毎に異なるタイミングで立ち上がるクロックを印加することを特徴とする請求項３記載のモータ制御回路。
【請求項５】
請求項４記載のモータ制御回路において、
複数のドライバ回路のうち、１つでも変更がある場合には、前記記憶装置に記憶されたデータをすべて更新することを特徴とするモータ制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの駆動制御に関し、特にシリアル通信を用いて、外部から制御を行うモータ制御回路に関する。
【背景技術】
【０００２】
従来のモータ制御において、ドライバはモータの数に応じて必要であり、複数個のモータを制御する為には、同じだけ複数個ドライバが必要である。近年、複数個のドライバの機能を内蔵するＩＣが販売されている。
【０００３】
また、複数個のドライバを内蔵する構成では、例えば、特許文献１には、複数のモータを駆動する多チャンネル負荷駆動装置が提案されている。
【特許文献１】特開２００７−３０６６３７
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した複数個のドライバを内蔵するＩＣでは、単体のドライバＩＣを単純に、詰め込んだに過ぎず、例えば、単体のドライバＩＣで、電源及びグランドを除き、仮に外部からの制御端子が１０本、必要であったとすると、３個のドライバを内蔵するＩＣでは、３倍の３０端子が必要となり、外部端子の数は、全く合理化されていなかった。モータの制御は、リアルタイムでの制御が必要であり、外部からの制御端子の兼用が難しく、外部端子の合理化が困難であった。この為、複数個のドライバを１つのＩＣに内蔵しても、合理化による利益を十分に享受すること出来ないという問題があった。
【０００５】
また、寄せ集めた場合、複数個のドライバ、１つ１つに、固有のアドレスを割り振る必要があり、仮に４個のドライバを内蔵した場合には、４個のアドレスをそれぞれ、割り振る必要があり、１つのＩＣに４個のアドレスを持つのは、効率も悪く、アドレスを多数、用意するので、手間がかかると言った問題があった。更にドライバの数が増えると、アドレスが不足しドライバが制御できない問題が発生する。
【課題を解決するための手段】
【０００６】
本発明は、  複数のモータの駆動を制御するモータ制御回路において、外部とシリアル通信を行うシリアル通信回路と、前記複数のモータを示す共通のアドレスを予め設定しておき、外部からの設定されたアドレスが前記共通のアドレスと一致しているか否かを検出するアドレス一致検出回路と、前記複数のモータを制御する複数のドライバ回路と、前記複数のドライバ回路を制御するのに必要な容量を有する記憶装置と、を備え、前記シリアル通信回路は、前記アドレス一致検出回路からの一致を受け、前記シリアル通信を通じて、前記記憶装置に前記複数のドライバ回路のデータを記憶させることを特徴とするモータ制御回路を提供する。
【０００７】
或いは、バッファ回路と、を備え、前記バッファ回路は、前記シリアル通信回路と前記記憶装置の間に配置され、前記シリアル通信からデータを、一端、保持し、保持されたデータを前記記憶装置に対し、前記バッファ回路のデータサイズで出力して行くことを特徴とする請求項１記載のモータ制御回路を提供する。
【発明の効果】
【０００８】
本発明は、少ない端子を用いて、複数個のモータの制御することが出来る。特に、アドレスが１つで済むので、アドレスの有効利用が図れる。
【０００９】
余ったアドレスを用いて、更に複数個のモータの制御が可能となる。今まで、１つのＩＣで４個のアドレスを使っていたものが、４個を１つのアドレスで制御することが出来るので、残りの３個も使えば、全部で１６個のモータを制御できる様になり、飛躍的に、制御できるモータの数を多くすることが出来る。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明に係るモータ制御回路のモータ制御回路１を示すブロック図である。モータ制御回路１はマイコン２と接続されており、マイコン２によって制御される。マイコン２は、シリアルポートを持ち、このシリアルポートを使って、他のＩＣを制御することが出来る。パラレルポートでも良いが、パラレルポートは通信に多数の外部端子が必要になり、現実的は不向きである。
【００１１】
シリアルポートはクロック端子と当該クロック端子に同期するデータ端子との２端子で構成されるものが一般的であり、その中でも、Ｉ２Ｃバスは、特に一般的で、数多くのＩＣで用いられており、汎用性が高い。今回は一例として、Ｉ２Ｃバスを用いたケースで紹介する。Ｉ２Ｃバスでは、複数のスレーブＩＣを接続する事が出来、マスタＩＣは個別に決められたスレーブＩＣのアドレスを指定し、スレーブＩＣと通信することで、そのスレーブＩＣを自由自在に制御することが出来る。
【００１２】
Ｉ２Ｃバスの詳細仕様に関しては、一般的な事項であり、詳細はフィリプス社のホームページ等に開示されており、ここでは省略する。Ｉ２Ｃバスで用いられる２本の信号線は、シリアルクロック（ＳＣＫ）とシリアルデータ（ＳＤＡ）であり、ＳＣＫは端子１０４、ＳＤＡは端子１０５から、それぞれ印加される。通信を始めるには、マスタＩＣが通信により選択されるスレーブＩＣのアドレスを指定する必要がある。マスタＩＣはマイコン２に相当し、スレーブＩＣはモータ制御回路１に相当する。
【００１３】
モータ制御回路１の内部には、第１モータ３と第２モータ４をドライブする第１ドライバ回路７と第２ドライバ回路８の２つのドライバ回路が内蔵されている。但し、１つのＩ２Ｃバスで、２つのドライバ回路を個別に制御するために、それぞれのモータドライバ回路に固有のアドレスを２つ用意する必要は無く、１つの固有のアドレスを用意すれば良い。
【００１４】
ここで、固有のアドレスを設定するために、本実施例ではアドレス端子を設けている。端子１０６、端子１０７、端子１０８の３端子がそれに相当し、一般的なＩ２Ｃバスで設定されるスレーブＩＣに割り振られた固有のアドレス値７ビットのうち、下位３ビットを端子の状態により、外部から設定できる様にしている。これは、下位の３ビットを変えることで、最大で８個のＩＣを同一のＩ２Ｃバスに接続できる構成としている。また、１個しか接続しない場合や、外部端子を設けられない場合には、内部のＲＯＭを用いて、ＲＯＭのデータと照合しても良い。
【００１５】
図２に示す様に、マイコン２から、Ｉ２Ｃバスで通信するためのスタートコンディションが送られた後に、クロックに同期して、スレーブＩＣに割り振られた固有のアドレス値（７ビット）が出力される。インターフェイス回路１１の内にあるＩ２Ｃバスコントローラ回路１２は、スタートコンディション後に送られたデータ（アドレス）を、受信データバッファ回路１３に送る。受信データバッファ回路１３は、保持したデータ（アドレス）を、アドレス一致検出回路１４に送る。
【００１６】
アドレス一致検出回路１４では、予め、内部にアドレス値を保持している。もし、送られて来たデータ（アドレス値）が、第１モータ３、第２モータ４を示すアドレス値であることを確認出来ると、マイコン２からのデータが順次、送信が許可され、当モータ制御回路と通信可能状態となる。
【００１７】
アドレス一致検出回路１４は、第１モータ３のアドレス値と、第２モータ４のアドレス値、それぞれ、２つのアドレス値を持って、第１モータ３と第２モータ４、それぞれに個別に設定しても良いが、アドレスが１つでも、その１つのアドレスが示すメモリのうち、最初の半分の２４ビットが第１モータ３の設定で、後の半分の２４ビットが第２モータ４の設定と分けておけば、敢えて、２つのアドレスを必要としない。
【００１８】
これにより、それぞれのモータドライバ回路に固有のアドレスを設定する必要は無く、ＩＣとしての単一アドレスを設定することが出来る。これにより複数のドライバ回路を有する場合でも、Ｉ２Ｃバスのアドレスを１つ用意すれば良く、ＩＣ識別としてアドレス数に制限を受けても有効に使うことが出来る。
【００１９】
従来は、モータドライバを２個搭載する場合には、ＩＣは別々となるので、当然、個別に設定する必要があり、２つのアドレスを必要としたが、内蔵するモータドライバの個数が増えても、レジスタの容量を増やすだけで対応することが出来、１つのＩ２Ｃバスのアドレス端子のみを用いて、複数のモータとの通信が可能となる。例えば、モータドドライバ４個入りＩＣが８個あっても、３２個分のアドレスは必要なく、ＩＣの個数と同じ、８個あれば良い。
【００２０】
本実施例では、モータドライバの２個分の設定値の通信が終了すると、マイコン２はモータ制御回路１にデータ転送終了のストップコンディションを送信し、第１モータ３と第２モータ４への設定が終了する。データ転送の間、受信バッファ回路１３では、受け取ったデータを８ビット単位で、受信データ格納レジスタ１５に書き込んで行く。
【００２１】
受信データバッファ回路１３と受信データ格納レジスタ１５は、フリップフロップで構成されたレジスタ（記憶装置）が利用される。ＳＲＡＭやＤＲＡＭの様なメモリで構成しても良いが、アドレス管理が必要になり、返って、ＩＣのチップ面積が拡大し、システム設計も複雑になってしまう。レジスタだと  決まった順序で記憶するだけで、アドレス管理は必要なく、必要な情報を効率よく記憶出来る。
【００２２】
一般的に、モータは動作中にモータの動作環境が大きく変更されると、モータ自体の故障の原因になることがあるので、受信データ格納レジスタ１５に書き込まれた最新の設定値は、直ぐに第１モータ３の動作環境には反映されない。
【００２３】
モータの最新の設定値の反映は、Ｉ２Ｃバスを通じて、ストップコンディションによりデータ転送が終了した後、Ｉ２Ｃバスのクロック端子（ＳＣＫ）とは、別途、設けられたモータの駆動用パルス（ＣＬＫ１）端子１００を用いて、その駆動パルスの変化を検出し、その変化のタイミングによって、最新の設定がモータ動作環境に反映される。端子１００から印加されたモータの駆動パルス（ＣＬＫ１）は、第１整形ノイズ除去回路２０によって、ヒゲの様なノイズを除去し、第１立上り検出回路２４と第１遅延回路２８の双方に印加される。
【００２４】
第１立上り検出回路２４では、停止状態から、駆動パルス（ＣＬＫ１）の変化を検知する。第１立上り検出回路２４の構成は、内部にコンパレータとカウンタを持ち、一定の期間、変化が無いと停止状態と判断し、その後、入力信号である駆動パルスの状態の変化を検知すると、その変化を第１モータモード設定保持回路１６に知らせる。第１モータモード設定保持回路１６は、第１立上り検出回路２４からの信号に応じて、受信データ格納レジスタ回路１５に保持されているデータがそのまま転送されてくる。
【００２５】
第１遅延回路２８は、駆動パルス（ＣＬＫ１）を遅延させる。第１遅延回路２８は、１サイクル程の大きな遅れは必要ないので、バッファを数段組み合わせた基本的な遅延回路で構成する。十分に時間を取りたい場合には、シフトレジスタを用いて、遅延させても良い。この第１遅延回路２８で遅延されている間に、第１モータモード設定保持回路１６の設定値は、実際にモータを制御する第１ドライバ回路７内に設けられたモータ動作環境に反映されることになる。
【００２６】
図３は、上記のＩ２Ｃバスを通じたストップコンディションの後のモータ駆動パルス（ＣＬＫ１）の立上り変化によって、最新の設定値が反映される詳細タイミング図を示す。先ず、受信データ格納レジスタ回路１５に最新のモータ設定値が保持される。次に、モータ駆動パルス（ＣＬＫ１）及びモータ駆動パルス（ＣＬＫ２）の立上り変化を検知し、そのタイミングで受信データ格納レジスタ回路１５に保持されている最新の設定値を、第１モータモード設定保持回路１６及び第２モータモード設定保持回路１７に書き込む。
【００２７】
この時、ストップコンディションの後、受信データ格納レジスタ回路１５に、最新のデータが格納されても、直ちに、最新の設定値を反映した動作を行わない。シリアルポートを使った通信では、シリアルでデータを送信して行くため、短い時間で、最新の設定値が完成する分けでは無い。時間がかかるので、いつも決まったタイミングで更新できないという問題がある。
【００２８】
そこで、最新の設定値を反映するタイミングを確定するため、駆動パルス（ＣＬＫ１）を利用する。駆動パルス（ＣＬＫ１）を一定の期間、Ｌレベル（停止状態）とし、次に、動作を開始するタイミング（再始動タイミング）で、最新のモータ設定値を反映する。
【００２９】
この処理により、第１モータ３に最新の設定値を反映させるタイミングを明確にすることが出来る。しかし、駆動パルス（ＣＬＫ１）は、モータの回転に直接、関係しているので、第１モータモード設定保持回路１６の内容が切り換わり、直ちに、回転を制御することは難しい。そこで、若干の時間差が必要になる。この若干の時間差を作成するために、第１遅延回路２８が必要になる。
【００３０】
この動作のポイントは、比較的に時間の掛かるシリアルポートを用いて、最新の設定値を受信データレジスタ回路１５に格納させておき、一定期間の駆動パルスの停止期間を利用し、最新の設定値に更新するタイミングを確定するために構成とする。
【００３１】
上記の手順により、マイコン２から、第１モータ３の最新の設定値に更新するタイミングを自由自在に操作することが可能となる。モータは必ずしも、停止状態からの回転状態になるとは限らない。モータの回転中に、設定値を変更することはよくあることで、動作中に、カウンタの設定値を変更すると、誤動作を引き越す可能性があり、連続したモータ動作が出来ない不都合が生じる。そこで、駆動パルスを一定期間、停止状態とし、次の動作開始のタイミングで設定値を更新することは、モータに取っては、最も安全なタイミングでもある。
【００３２】
受信データ格納レジスタ回路１５の容量は、モータを制御するのに必要なビット数分だけ、記憶容量が必要であり、４８ビット程度あると、第１モータ３、第２モータ４を制御するのに、必要なビット数となる。受信データバッファ回路１３は、８ビットとすると、６回、受信データ格納レジスタ回路１５に送信すると、データは一杯になる。つまり、Ｉ２Ｃバスを通じて、６回分、データを送信した後に、ストップコンディションを送り、データを完成させる必要がある。
【００３３】
更に、受信データ格納レジスタ回路１５は、第１モータモード設定保持回路１６と第２モータモード設定保持回路１７を合わせたビット数と同じであると、都合が良い。同じビット数であると、アドレスデコーダなどの介在は必要とせず、そのまま、同じビットの位置に、転送するだけ済み、シンプルな構成が可能となる。
【００３４】
図４は、第１ドライバ回路７の内部のブロック図を示す。第１ドライバ回路７の内部には、モータを制御するクロックの立上り／立下り検出回路７１、モータの各励磁モードを設定する励磁モード設定回路７２、基準電圧を生成しモータの電流を決定する基準電圧生成回路７３、立上り／立下り検出回路７１からの検出結果と励磁モード設定回路７２からの設定信号に応じて、動作する進相カウンタ７４と、実際に第１モータ３を制御するトランジスタ５０、５１、５２、５３のスイッチング制御を行う相励磁信号生成回路７５、基準電圧生成回路７３と進相カウンタ７４からの信号を受け、擬似的な正弦波を生成する擬似正弦波生成回路７６、擬似正弦波生成回路７６からの正弦波を受け、その正弦波に応じたＰＷＭ波形を生成するＰＷＭ制御回路７７を備えている。
【００３５】
第１モータモード設定保持回路１６では、順番に、最初の４ビット（１ビット目〜４ビット目まで）が立上り／立下り検出回路７１の設定に利用され、次の４ビット（５ビット目〜８ビット目まで）が励磁モード設定回路７２の設定に利用され、次の４ビット（９ビット目〜１２ビット目まで）が進相カウンタ７４の設定に利用され、次の４ビット（１３ビット目〜１６ビット目まで）が相励磁信号生成回路７５の設定に利用され、次の４ビット（１７ビット目〜２０ビット目まで）が基準電圧生成回路７３の設定に利用される。各ビットの順序は、第１ドライバ回路の動作環境に合わせれば良い。  
相励磁信号生成回路７５では、進相カウンタ７４からカウント値を用いて、その励磁モードに必要な信号を作成する。これら一連の設定により、モータ制御回路１は、第１モータ３に対し、２相の駆動端子φ１（Ａ）、φ２（ＡＢ）、φ３（Ｂ）、φ４（ＢＢ）を出力する。
【００３６】
具体的な出力例として、図５に２相励磁モードのタイミングチャートを示し、図６に１−２相励磁モードのタイミングチャートを示す。相励磁信号生成回路７５からの進相カウンタ値によって、多岐に渡るモータ励磁モードを自在に設定することが出来る。
【００３７】
また、上記の実施例では、２相のステッピングモータを用いた場合を説明したが、３相モータ、５相モータでも、制御トランジスタが増加するだけ、基本的な回路構成には大きな変更は無い。
＜＜詳細の説明＞＞
Ｉ２Ｃバスの通信フォーマットは８ビット単位でデータ通信しているので、Ｉ２Ｃバスコントローラ回路１２からの出力データは、８ビット単位が一般的である。受信データバッファ回路１３は、Ｉ２Ｃバスコントローラ回路１２からの出力を受けるのに、８ビットのバッファメモリがあると都合が良いので、８ビットのレジスタとする。その受信データバッファ回路１３からの出力は、受信データ格納レジスタ回路１５に転送される。
【００３８】
受信データ格納レジスタ回路１５は、全部で４８ビットの容量を持つレジスタで構成され、その入力には、Ｉ２Ｃバスコントローラ回路１２からの出力であるＩＮＰＵＴ１〜８の８入力がある。
【００３９】
受信データ格納レジスタ回路１５は、上位の半分の２４ビットが第１モータ３を制御する第１ドライバ回路７の状態を設定する第１モータモード設定保持回路１６のデータを扱い、下位の半分の２４ビットが第２モータ４を制御する第２ドライバ回路８の状態を設定する第２モータモード設定保持回路１７のデータを取り扱う。
【００４０】
受信データ格納レジスタ回路１５は、２つのモータを設定するのに、必要な容量を持っているが、１つのレジスタ群であるので、マイコン２から書き込む際、必要なアドレスは１つあれば良いことになる。但し、上位、下位のビットで使用される設定は、決められているので、例え、第２モータ４の設定のみが、変更になっても、第１モータ３の設定も再度、行う必要がある。複数のドライバ回路のうち、１つでも変更がある場合には、受信データ格納レジスタ回路１５に記憶されたデータをすべて更新する
図８に、受信データ格納レジスタ回路１５の構成を示す。内部には、８ビットのレジスタ群１５０〜１５５の６個を備えている。また、８ビットのレジスタ群１５０〜１５５に印加されるクロックは、ＣＬ１〜ＣＬ６と変えている。クロックを変えることで、取り込むレジスタ群を制御している。図９に示す様に、ＣＬ１〜ＣＬ６は、順番に立ち上がると、上位ビットから順番に、データを記憶する。
【００４１】
更に、レジスタ群１５０の一例を示す。レジスタ群１５０は、データ端子とクロック端子を持つ、Ｄフリップフロップとし、８ビット単位で、クロックを変えている。図示はしていないが、レジスタ群１５１はレジスタの構成は同じでクロックをＣＬ２とし、レジスタ群１５２はレジスタの構成は同じでクロックをＣＬ３としており、順次、クロックのみを変えている。レジスタ群の数と同じ、クロックＣＬ１〜ＣＬ６を用意すると、順次、８ビット毎、データを記憶してことが出来る。
【００４２】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００４３】
例えば、図１に示したモータドライバ回路は、２個を内蔵したケースとしたが、モータドライバを３個、４個を内蔵した場合でも、同様に利用することが出来る。図７に、モータドライバ回路を４個、内蔵した場合を示す。モータドライバ回路を４個、内蔵した場合でも、アドレス一致検出回路内には、固有のアドレス値を１つ、予め用意しておけば良い。
以上の様に、モータドライバ回路が増えてもレジスタの容量を増やせばよく、新たに外部端子を設ける必要がなく、効率的にモータの制御を実現できる。
【図面の簡単な説明】
【００４４】
【図１】本実施形態に係るモータ制御回路の構成を示すブロック図である。
【図２】本実施形態に係るシリアル通信処理の概要を示すタイミング図である。
【図３】本実施形態に係るモータの設定値更新におけるタイミング図である。
【図４】本実施形態に係る第１ドライバ回路７の構成を示すブロック図である。
【図５】本実施形態に係る２相励磁モードの場合を示すタイミング図である。
【図６】本実施形態に係る１−２相励磁モードの場合を示すタイミング図である。
【図７】本実施形態に係るモータ制御回路の構成を示すブロック図である。
【図８】本実施形態に係る受信データ格納レジスタ回路１５の構成を示すブロック図である。
【図９】本実施形態に係る受信データ格納レジスタ回路１５の内部で用いられるクロックのタイミングを示す図である。
【符号の説明】
【００４５】
１  モータ制御回路
２  マイコン
３  第１モータ
４  第２モータ
５  第３モータ
６  第４モータ
７  第１ドライバ回路
８  第２ドライバ回路
１１  インターフェイス回路
１２  Ｉ２Ｃバスコントローラ回路
１３  受信バッファ回路
１４  アドレス一致検出回路
１５  受信データ格納レジスタ回路
１６  第１モータモード設定保持回路
１７  第２モータモード設定保持回路
２０  第１整形ノイズ除去回路
２１  第２整形ノイズ除去回路
２４  第１立上り検出回路
２５  第２立上り検出回路
２８  第１遅延回路
２９  第２遅延回路
【図１】
2010088188.tif 000003
【図２】
2010088188.tif 000004
【図３】
2010088188.tif 000005
【図４】
2010088188.tif 000006
【図５】
2010088188.tif 000007
【図６】
2010088188.tif 000008
【図７】
2010088188.tif 000009
【図８】
2010088188.tif 000010
【図９】
2010088188.tif 000011