以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
すなわち、本発明の一側面のステッピングモータ駆動装置は、制御装置からの指令信号に基づいて、ステッピングモータの駆動信号を出力するステッピングモータ駆動装置(例えば、図1のモータ駆動装置12、または図9のモータ駆動制御装置201)であって、可聴帯域よりも高速で値を上昇、または下降させることにより第1の制御値を生成する第1の制御値生成手段(例えば、図1の高周波発振部24、または図10の高周波アップダウンカウンタ213)と、前記制御装置からの前記指令信号に基づいて、前記第1の制御値よりも低速で値を上昇、または下降させることにより第2の制御値を生成する第2の制御値生成手段(例えば、図1の低周波発振部51、または図10の低周波アップダウンカウンタ243)と、前記第1の制御値と、前記第2の制御値とを比較する比較手段(例えば、図1の比較部52、または図10の比較部244)と、前記比較手段の処理結果に基づいて、前記ステッピングモータを駆動する駆動信号を出力する出力手段(例えば、図1の出力部53、または図10の出力部245)とを含む。
前記第1の制御値生成手段、および前記第2の制御値生成手段のいずれか、または、両方に、前記第1の制御値、および前記第2の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を設定する曲率設定手段(例えば、図1の曲率設定部71,72、または図10の曲率設定部405)をさらに含ませるようにすることができる。
前記曲率設定手段(例えば、図10の曲率設定部405)には、前記第1の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を略逆正弦波状に変化するように設定させるようにするか、または、前記第2の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を略正弦波状に変化するように設定させるようにすることができる。
前記曲率設定手段(例えば、図1の曲率設定部71,72)には、抵抗器、及びコンデンサより成る積分回路を含ませるようにすることができ、前記積分回路の時定数設定により、前記第1の制御値、および前記第2の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を設定させるようにすることができる。
前記曲率設定手段には、前記第1のカウンタ、または前記第2のカウンタの作動中、前記分周回路(例えば、図10の分周部214)より入力される、周波数の異なる複数の前記クロック信号を切り替えることにより、カウント値の上昇、もしくは下降する度合が、複数の1次関数の連結による擬似曲線を描くように曲率を変化させることにより、前記第1の制御値、および前記第2の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を設定させるようにすることができる。
前記出力手段(例えば、図10の出力部245)には、前記比較手段(例えば、図10の比較部244)による、前記第1の制御値と、前記第2の制御値とを比較して、両者が一致するタイミング、および前記タイミングの間隔に基づいて、前記ステッピングモータを駆動する駆動信号を出力させるようにすることができる。
前記第1の制御値生成手段は、可聴帯域よりも高速の周波数の三角形状の連続波を成形する鋸波発振回路(例えば、図1の高周波発振部24)とすることができ、前記第2の制御値生成手段は、前記制御装置からの前記指令信号を作動契機とする、ステッピングモータ駆動周波数で変位する、制御電圧を出力する電圧発生回路(例えば、図1の低周波発振部51)とすることができ、前記比較手段(例えば、図1の比較部52)は、前記鋸波発振回路の出力電圧と、前記制御電圧とを電位弁別するコンパレータとすることができ、前記出力手段(例えば、図1の出力部53)には、前記コンパレータによる前記鋸波発振回路の出力電圧と、前記制御電圧との電位弁別結果に基づいて、前記ステッピングモータを駆動する駆動信号を出力させるようにすることができる。
前記第1の制御値生成手段は、可聴帯域よりも高速の周波数のクロック信号にてカウントアップ、またはカウントダウンする第1のカウンタ(例えば、図10の高周波アップダウンカウンタ213)とすることができ、前記第2の制御値生成手段は、前記制御装置からの前記指令信号を作動契機として、値をカウントアップ、またはカウントダウンする第2のカウンタ(例えば、図10の低周波アップダウンカウンタ243)とすることができ、前記比較手段(例えば、図10の比較部244)には、前記第1のカウンタのカウント数と、前記第2のカウンタのカウント数とを比較させるようにすることができ、前記出力手段(例えば、図10の出力部245)には、前記比較手段の処理結果に基づいて、前記ステッピングモータを駆動する駆動信号を出力させるようにすることができる。
複数の、予め設定された周波数のクロック信号を出力する分周回路(例えば、図10の分周部214)をさらに含ませるようにすることができ、前記曲率設定手段(例えば、図10の曲率設定部405)には、前記第1のカウンタ、または前記第2のカウンタの作動中、前記分周回路より入力される、周波数の異なる複数の前記クロック信号を切り替えることにより、カウント値の上昇、もしくは下降する度合が、複数の1次関数の連結による擬似曲線を描くように曲率を変化させることにより、前記第1の制御値、および前記第2の制御値の上昇、または下降する速度の変化量、または、加速度の曲率を設定させるようにすることができる。
前記制御装置からの前記指令信号に基づき、前記ステッピングモータの回転速度を設定する回転速度設定信号を生成する、可変速カウンタ(例えば、図10の回転速度設定カウンタ242)をさらに含ませるようにすることができる。
本発明の一側面のステッピングモータ駆動方法およびプログラムは、制御装置からの指令信号に基づいて、ステッピングモータの駆動信号を出力するステッピングモータ駆動装置のステッピングモータ駆動方法であって、可聴帯域よりも高速で値を上昇、または下降させることにより第1の制御値を生成する第1の制御値生成ステップ(例えば、図4のステップS41、または図13のステップS135)と、前記制御装置からの前記指令信号に基づいて、前記第1の制御値よりも低速で値を上昇、または下降させることにより第2の制御値を生成する第2の制御値生成ステップ(例えば、図4のステップS42、または図13のステップS134)と、前記第1の制御値と、前記第2の制御値とを比較する比較ステップ(例えば、図4のステップS43、または図13のステップS136)と、前記比較手段の処理結果に基づいて、前記ステッピングモータを駆動する駆動信号を出力する出力ステップ(例えば、図4のステップS47,S48、または図13のステップS137,S138)とを含む。
[モータ駆動システムの第1の実施の形態]
図1は、本発明に係る遊技機のモータ駆動システムの一実施の形態の構成例を示す図である。
このモータ駆動システムは、パチンコ遊技機や回胴式遊技機などに代表される遊技機の、可動体からなる可動役物を駆動させるためのシステムである。モータ駆動システムは、CPU(Central Processing Unit)11、およびモータ駆動装置12から構成されている。モータ駆動装置12は、CPU11からの指令データに基づいて、コイルL1,L2を、それぞれ所定のタイミングで励磁、または非励磁に駆動させることで、コイルL1,L2の駆動に連動してステッピングモータM(以降、単にモータMとも称する)を回転させることにより、可動体からなる可動役物を動作させる。
尚、図1においては、CPU11とモータ駆動装置12とが、それぞれ1対の構成となっているが、実際には、1個のCPU11が複数のモータ駆動装置12を制御している。しかしながら、ここでは、説明の便宜上、1個のCPU11が、1個のモータ駆動装置12を制御する例について説明するものとするが、それ以上の数のモータ駆動装置12を制御するようにしても良い。
CPU11は、モータ駆動システムの動作の全体を制御しており、クロック端子CKより出力するクロック信号に同期して、データ端子DATAよりシリアルデータとして指令データを出力し、モータ駆動装置12に対して、モータMの駆動を制御しているコイルL1,L2の駆動の指令データを供給する。この際、CPU11は、複数のモータ駆動装置12のいずれに対しての指示であるかを区別するアドレスの情報を付して指令データを供給する。また、CPU11は、モータMが複数に存在する場合、そのいずれへの指示であるかを区別する出力系統を識別する情報も付した指令データを供給する。
また、CPU11は、モータ駆動装置12のコイルL1,L2の駆動内容により、必要に応じて、駆動内容を示す動作データを生成し、指令データに含めてモータ駆動装置12に供給する。
CPU11は、判定部111、動作データ生成部112、および指令データ送信部113より構成されている。
判定部111は、モータ駆動装置12が組み込まれている遊技機の遊技状態、すなわち、通常状態、リーチ状態、および大当り状態に対応して、各モータMをどのように駆動させるかを判定し、判定結果である駆動内容を動作データ生成部112に供給する。
動作データ生成部112は、判定部111からの判定結果に基づいて、動作データを生成し、指令データ送信部113に供給する。
指令データ送信部113は、動作データ生成部112より供給されてくる動作データを含めて、指令データを生成し、モータ駆動装置12を特定するアドレスデータを付して、データ出力端子DATAおよびクロック信号出力端子CKより、クロック信号に同期してシリアルデータとして指令データを全てのモータ駆動装置12に送信する。
モータ駆動装置12は、受信部21、動作制御部22、出力制御部23、および高周波発振部24から構成されている。
受信部21は、受信制御部31、およびシリアルパラレル変換部32より構成されており、受信制御部31は、クロック信号に同期して受信されるシリアルデータとして指令データを受信し、シリアルパラレル変換部32に供給する。シリアルパラレル変換部32は、シリアルデータをパラレルデータに変換し、パラレルデータに変換された指令データを動作制御部22に供給する。
動作制御部22は、デバイス認識部41、アドレス認識部42、および動作状況指定部43を備えており、受信部21より供給されてくる指令データを取得すると、デバイス認識部41を制御して、自らのデバイスへの指令データであるか否かを認識させ、自らのデバイスへの指令であると認識された場合にのみ、アドレス認識部42を制御して、自らのアドレスへの指令データであるか否かを認識させる。
デバイス認識部41は、CPU11より供給されてくる指令データに含まれるデバイスデータを読み出し、自らを識別するデバイスであるか否かを判定し、自らを識別するデバイスである場合にのみ、指令データを後段のアドレス認識部42に供給する。
アドレス認識部42は、デバイス認識部41より供給されてくる指令データに含まれるアドレスデータを読み出し、自らを識別するアドレスであるか否かを判定し、自らを識別するアドレスである場合にのみ、指令データを後段の動作状況指定部43に供給する。
動作状況指定部43は、CPU11から供給された指令データに含まれる動作データに基づいて、コイルL1,L2の動作状況を指定する。
高周波発振部24は、可聴帯域よりも高周波の信号を発生し、出力制御部23の比較部52に供給する。高周波発振部24は、抵抗R1乃至R4、コンデンサC1、ダイオードD1、および比較器COM1より構成されている。
抵抗R1の一方の端部は、電源、抵抗R3の一方の端部、およびコンデンサC1の一方の端部に接続され、他方の端部は抵抗R2の一方の端部、抵抗R4の一方の端部、および比較器COM1の正入力端子に接続されている。抵抗R2の一方の端部は、抵抗R1の他方の端部、抵抗R4の一方の端部、および比較器COM1の正入力端子に接続されており、他方の端部は接地されている。抵抗R3の一方の端部は、電源、抵抗R1の一方の端部、およびコンデンサC1の一方の端部に接続され、他方の端部は、比較器COM1の負入力端子、コンデンサC1の他方の端部、出力制御部23の比較部52の比較器COM11,COM12の負入力端子、およびダイオードD1のアノードに接続されている。
コンデンサC1の一方の端部は、電源、および抵抗R1,R3の一方の端部に接続され、他方の端部は、抵抗R3の他方の端部、比較器COM1の負入力端子、出力制御部23の比較部52の比較器COM11,COM12の負入力端子、およびダイオードD1のアノードに接続されている。抵抗R4の一方の端部は、抵抗R1の他方の端部、抵抗R2の一方の端部、および比較器COM1の正入力端子に接続され、他方の端部は、比較器COM1の出力端子、およびダイオードD1のカソードに接続されている。比較器COM1の正入力端子は、抵抗R4の一方の端部、抵抗R1の他方の端部、および抵抗R2の一方の端部に接続され(図示せず)、負入力端子は、抵抗R3の他方の端部、コンデンサC1の他方の端部、比較器COM11,COM12の負入力端子、およびダイオードD1のアノードに接続され、出力端子は、抵抗R4の他方の端部、およびダイオードD1のカソードに接続されている。ダイオードD1のアノードは、抵抗R3の他方の端部、コンデンサC1の他方の端部、および比較器COM1,COM11,COM12の負入力端子に接続され、カソードは、抵抗R4の他方の端部、および比較器COM1の出力端子に接続されている。
すなわち、高周波発振部24は、指数的に上昇し、直線降下する鋸状の波形を、可聴帯域より高周波の、例えば、15kHz乃至100kHzの帯域で発生し、出力制御部23の比較部52の比較器COM11,COM12のそれぞれの負入力端子に対して出力電圧V3として供給する。
出力制御部23は、低周波発振部51、比較部52、出力部53、動作状況保持部54、および方形波発振部55より構成されている。出力制御部23は、コイルL1,L2に対応した出力部53を備えており、動作状況指定部43により指定された動作状況に応じて、駆動波形を発生し、発生した駆動波形により、コイルL1,L2を所定のタイミングで励磁、または非励磁の状態とさせることにより、モータMを駆動させる。
低周波発振部51は、フリップフロップ回路FF1、ダイオードD11乃至D14、定電流源I1,I2、抵抗R11,R12、コンデンサC11,C12より構成されている。
フリップフロップ回路FF1の入力端子D1は、負出力端子Q1’、ダイオードD13のカソード、およびダイオードD14のアノードに接続されており、クロック入力端子CK1には、方形波発振部55が接続されており、正出力端子Q1には、ダイオードD11のカソード、およびダイオードD12のアノードに接続されており、負出力端子Q1’は、データ入力端子D1、ダイオードD13のアノード、およびダイオードD14のカソードに接続されている。尚、図中において、負出力端子は、Q1の上部にバーが付されたものとして表示されているが、明細書においては「Q1’」として表記するものとし、その他のフリップフロップ回路についても同様に表記するものとする。また、クロック信号は、例えば、周期3ms程度、すなわち、333.33Hzなどである。この場合、例えば、200パルスで1回転するステッピングモータの場合、毎分100回転となる。
ダイオードD11のカソードは、ダイオードD12のアノード、およびフリップフロップ回路FF1の正出力端子Q1に接続されており、アノードは、定電流源I1の出力端子に接続されている。定電流源I1の入力端子は、比較部52の比較器COM11の正入力端子、コンデンサC11の一方の端部、および抵抗R11の他方の端部に接続されており、出力端子は、ダイオードD11のアノードに接続されている。ダイオードD12のカソードは、抵抗R11の一方の端部に接続されており、アノードは、ダイオードD11のカソード、およびフリップフロップ回路FF1の正出力端子Q1に接続されている。抵抗R11の一方の端部は、ダイオードD12のカソードに接続されており、他方の端部は、定電流源I1の入力端子、比較部52の比較器COM11の正入力端子、およびコンデンサC11の一方の端部に接続されている。コンデンサC11の一方の端部は、定電流源I1の入力端子、比較部52の比較器COM11の正入力端子、抵抗R11の他方の端部に接続されており、他方の端部は接地されている。
ダイオードD13のカソードは、ダイオードD14のアノード、並びにフリップフロップ回路FF1の負出力端子Q1’およびデータ入力端子D1に接続されており、アノードは、定電流源I2の出力端子に接続されている。定電流源I2の入力端子は、比較部52の比較器COM12の正入力端子、コンデンサC12の一方の端部、および抵抗R12の他方の端部に接続されており、出力端子は、ダイオードD13のアノードに接続されている。ダイオードD14のカソードは、抵抗R12の一方の端部に接続されており、アノードは、ダイオードD13のカソード、並びにフリップフロップ回路FF1の負出力端子Q1およびデータ入力端子D1に接続されている。抵抗R12の一方の端部は、ダイオードD14のカソードに接続されており、他方の端部は、定電流源I2の入力端子、比較部52の比較器COM12の正入力端子、およびコンデンサC12の一方の端部に接続されている。コンデンサC12の一方の端部は、定電流源I2の入力端子、比較部52の比較器COM12の正入力端子、抵抗R12の他方の端部に接続されており、他方の端部は接地されている。
すなわち、抵抗R11、コンデンサC11、および定電流源I1は、積分回路として駆動することになるため、フリップフロップ回路FF1の正出力端子Q1がHiで出力される場合、ダイオードD12がオンの状態となり、抵抗R11およびコンデンサC11が充電動作を開始する。このとき、コンデンサC11の充電電圧である電圧V1は、指数関数的に上昇する。正出力端子Q1がHiである間、ダイオードD11がオフのままであるため、この間、定電流源I1は、電圧V1に影響を与えない。
一方、正出力端子Q1がLowとなった場合、ダイオードD11がオンとなり、ダイオードD12がオフの状態となるため、コンデンサC1および定電流源I1により、コンデンサC1が放電されるため、電圧V1が直線的に下降する。
結果として、クロック信号CK0がHi、またはLowに変化する度に、電圧V1は指数関数的に上昇する処理と、直線状の下降する波形となり、この電圧V1で表現される波形出力が比較部52の比較器COM11の正入力端子に入力される。尚、この電圧V1の充電における指数関数的な上昇の曲線は、抵抗R11およびコンデンサC11により曲率を変化させることが可能となるため、この抵抗R11およびコンデンサC11は、電圧V1の充電電圧の加速度の曲率、または速度の変化量を設定する曲率設定部71として機能する。
一方、抵抗R12、コンデンサC12、および定電流源I2についても、上述した抵抗R11、コンデンサC11、および定電流源I1と同様に積分回路を構成することにより、フリップフロップ回路FF1の負出力端子Q1’がHi、またはLowを繰り返すことにより、コンデンサC12の充電電圧V2の出力は波形が電圧V1の出力波形と同様の波形を発生し、比較部52の比較器COM12の正入力端子に供給される。ただし、フリップフロップ回路FF1の正出力端子Q1と負出力端子Q1’とは、常に逆位相の出力がなされることになるため、電圧V1とV2とは180度位相が異なる波形が出力されることになる。また、抵抗R12およびコンデンサC12についても、抵抗R11およびコンデンサC11と同様に、電圧V2の充電電圧の加速度の曲率、または速度の変化量を設定する曲率設定部72として機能する。さらに、以降においては、抵抗R11,R12の抵抗値、およびコンデンサC11,C12の静電容量は、いずれも同様であるものとする。したがって、電圧V1,V2は完全に180度位相が異なる同一の波形となる。
比較部52は、比較器COM11,COM12を備えており、それぞれの正入力端子に低周波発振部51より供給されてくる電圧V1,V2と、高周波発振部24より負入力端子に供給されてくる電圧V3とを比較し、電圧V1,V2が電圧V3よりも高いタイミングにおいて、それぞれの出力端子より出力電圧V4,V5をHiの信号として出力部53に出力し、それ以外のときLowの信号を出力する。尚、上述したように、低周波発振部51より比較器COM11,COM12のそれぞれの正入力端子に供給されてくる信号(電圧V1,V2)は、相互に180度位相が異なるため、それぞれの出力端子より出力される信号(電圧V4,V5)についても、180度位相が異なる。
出力部53は、フリップフロップ回路FF31,FF32、アンド回路AND1乃至AND4、抵抗R31乃至R34、およびトランジスタTr1乃至Tr4より構成されている。
フリップフロップ回路FF31のデータ入力端子D31は、フリップフロップ回路FF32の負出力端子Q32’、およびアンド回路AND4の他方の入力端子に接続されており、クロック端子CK31が方形波発振部55に接続されており、正出力端子Q31が、アンド回路AND1の他方の入力端子、およびフリップフロップ回路FF32のデータ入力端子D32に接続されており、負出力端子Q31’が、アンド回路AND3の他方の入力端子に接続されている。
フリップフロップ回路FF32のデータ入力端子D32は、フリップフロップ回路FF31の正出力端子Q31、およびアンド回路AND1の他方の入力端子に接続されており、クロック端子CK32が方形波発振部55に接続されており、正出力端子Q32が、アンド回路AND2の他方の入力端子に接続されており、負出力端子Q32’が、アンド回路AND4の他方の入力端子、およびフリップフロップ回路FF31のデータ入力端子D31に接続されている。
アンド回路AND1の一方の入力端子は、比較部52の比較器COM11の出力端子、およびアンド回路AND3の一方の入力端子に接続されており、他方の入力端子は、フリップフロップ回路FF31の正出力端子Q31、およびフリップフロップ回路FF32のデータ入力端子D32に接続されており、出力端子は抵抗R31の一方の端部に接続されている。
アンド回路AND2の一方の入力端子は、比較部52の比較器COM12の出力端子、およびアンド回路AND4の一方の入力端子に接続されており、他方の入力端子は、フリップフロップ回路FF32の正出力端子Q32に接続されており、出力端子は抵抗R32の一方の端部に接続されている。
アンド回路AND3の一方の入力端子は、比較部52の比較器COM11の出力端子、およびアンド回路AND1の一方の入力端子に接続されており、他方の入力端子は、フリップフロップ回路FF31の負出力端子Q31’に接続されており、出力端子は抵抗R33の一方の端部に接続されている。
アンド回路AND4の一方の入力端子は、比較部52の比較器COM12の出力端子、およびアンド回路AND2の一方の入力端子に接続されており、他方の入力端子は、フリップフロップ回路FF31のデータ入力端子D31、およびフリップフロップ回路FF32の負出力端子Q32’に接続されており、出力端子は抵抗R34の一方の端部に接続されている。
抵抗R31乃至R34の一方の端部は、それぞれアンド回路AND1乃至AND4の出力端子に接続されており、他方の端部は、それぞれトランジスタTr1乃至Tr4のベースに接続されている。
トランジスタTr1のベースは、抵抗R31の他方の端部に接続され、コレクタがコイルL1の他方の端部に接続され、エミッタが接地されている。トランジスタTr2のベースは、抵抗R32の他方の端部に接続され、コレクタがコイルL2の一方の端部に接続され、エミッタが接地されている。トランジスタTr3のベースは、抵抗R33の他方の端部に接続され、コレクタがコイルL1の一方の端部に接続され、エミッタが接地されている。トランジスタTr4のベースは、抵抗R34の他方の端部に接続され、コレクタがコイルL2の他方の端部に接続され、エミッタが接地されている。
以上のような構成により、トランジスタTr1乃至Tr4のコレクタ電圧を駆動信号Vout1乃至Vout4として変化させることにより、コイルL1,L2の励磁、または非励磁に駆動させることによりステッピングモータMを回転させる。
動作状況保持部54は、動作制御部22より供給されてくる動作状況を保持し、動作状況に含まれているスタート信号を、方形波発振部55に供給する。
方形波発振部55は、方形波を発振し、クロック信号CK0として、低周波発振部51、およびフリップフロップ回路FF31,FF32に供給する。
[図1のモータ駆動システムによるモータ駆動処理]
次に、図2のフローチャートを参照して、図1のモータ駆動システムによるモータ駆動処理について説明する。
ステップS1において、判定部111は、全てのデバイスのうち、未処理のデバイスを処理対象デバイスに設定する。ここでは、未処理のデバイスがモータ駆動装置12であるものとするが、それ以外のデバイスであってもよく、例えば、LED(Light Emmision Diode)駆動装置などがあれば、それらも未処理であれば処理対象のデバイスに設定される。
ステップS2において、判定部111は、モータ駆動装置12を識別する全てのアドレスのうち、未処理のアドレスを処理対象アドレスに指定する。
ステップS3において、判定部111は、処理対象となるアドレスにおける出力制御部23によりステッピングモータMの駆動が必要であるか否かを判定する。
ステップS3において、例えば、駆動が必要であると判定された場合、ステップS4において、動作データ生成部112は、処理対象アドレスのモータ駆動装置12に対して、駆動させるべきステッピングモータMの動作内容を指示する動作データを生成し、指令データ送信部113に供給する。ここでいう動作データは、ステッピングモータMを駆動させるか否かを示すデータである。
ステップS5において、指令データ送信部113は、処理対象デバイスのうち、処理対象アドレスのモータ駆動装置12に対して、供給されてきた動作データを含めて、動作を指示する、例えば、図3で示されるような指令データを生成し、クロック端子CKより出力するクロック信号に同期して、データ端子DATAよりシリアルデータとして出力する。
指令データは、図3で示されるように、デバイスデータ、アドレスデータ、および動作データから構成される。例えば、モータ駆動装置12宛の指令データを生成する場合、デバイスデータには、デバイスとしてモータ駆動装置12を識別できるデバイスデータが記録される。また、アドレスデータには、モータ駆動装置12を識別するアドレスのデータが記録される。また、動作データは、上述したように、ステッピングモータMを駆動させるか否かを示すデータが記録される。
ステップS21において、受信部21の受信制御部31は、CPU11より指令データが送信されてきたか否かを判定し、指令データが送信されてくるまで、同様の処理を繰り返す。ステップS21において、例えば、ステップS5の処理により、CPU11より指令データが送信されてきた場合、ステップS22において、受信制御部31は、順次クロック信号に同期して、シリアルデータとして送信されてくる指令データを受信し、シリアルパラレル変換部32に供給する。シリアルパラレル変換部32は、供給されてきたシリアルデータからなる指令データをパラレルデータに変換し、動作制御部22のデバイス認識部41に供給する。デバイス認識部41は、パラレルデータに変換されて供給されてきた指令データより、デバイスデータを読み出す。
ステップS23において、デバイス認識部41は、読み出したデバイスデータが自らを識別するデバイスを示すものであるか否かを判定する。ステップS23において、例えば、読み出したデバイスデータが自らを識別するデバイスを示すものではないと判定された場合、デバイス認識部41は、供給されてきた指令データを破棄し、処理は、ステップS21に戻る。すなわち、この場合、供給されてきた指令データが、自らへのものではないとみなされ、処理が打ち切られる。結果として、指令データの宛先として指定されたデバイスに対応するデバイス以外においては、処理が打ち切られ、指令データの宛先として指定されたデバイスに対応する駆動装置のみが、以降の処理を実行することになる。
一方、ステップS23において、例えば、読み出したデバイスデータが自らを識別するデバイスを示すものであると判定された場合、ステップS24において、デバイス認識部41は、供給された指令データをアドレス認識部42に供給する。この処理に応じて、アドレス認識部42は、供給されてきた指令データより、アドレスデータを読み出す。
ステップS25において、アドレス認識部42は、読み出したアドレスデータが自らを識別するアドレスを示すものであるか否かを判定する。ステップS25において、例えば、読み出したアドレスデータが自らを識別するアドレスを示すものではないと判定された場合、アドレス認識部42は、供給されてきた指令データを破棄し、処理は、ステップS21に戻る。すなわち、この場合、供給されてきた指令データが、自らへのものではないとみなされ、処理が打ち切られる。結果として、指令データの宛先として指定されたアドレスに対応するモータ駆動装置12以外においては、処理が打ち切られ、指令データの宛先として指定されたアドレスに対応するモータ駆動装置12のみが、以降の処理を実行することになる。
一方、ステップS25において、例えば、読み出したアドレスデータが自らを識別するアドレスを示すものであると判定された場合、ステップS26において、アドレス認識部42は、供給された指令データを全て読み出し、動作状況指定部43に供給する。
ステップS27において、動作状況指定部43は、指令データのうちの動作データを読み出し、ステップS28において、動作として指示する動作内容を認識する。
ステップS29において、動作状況指定部43は、動作データより動作状況を指定し、出力制御部23の動作状況保持部54に動作状況を指示する。そして、処理は、ステップS21に戻る。この指示により、モータ駆動装置12は、後述する出力制御処理を実行し、ステッピングモータMを駆動させる。
一方、ステップS3において、駆動が必要ではないと判定された場合、ステップS4,S5の処理は、スキップされる。
そして、ステップS6において、判定部111は、モータ駆動装置12を識別する全てのアドレスのうち、未処理のアドレスが存在するか否かを判定する。すなわち、CPU11で動作を管理すべきモータ駆動装置12の全てについて処理が終了したか否かが判定される。ステップS6において、未処理のアドレスが存在する場合、処理は、ステップS2に戻る。すなわち、CPU11で動作を管理すべきモータ駆動装置12の全てについて処理が終了するまで、ステップS2乃至S6の処理が繰り返される。そして、ステップS6において、全てのアドレスについて処理が終了し、CPU11で動作を管理すべきモータ駆動装置12の全てについて処理が終了したと判定された場合、処理は、ステップS7に進む。
ステップS7において、判定部111は、モータ駆動装置12を含む、その他のデバイスとして識別する全てのデバイスのうち、未処理のデバイスが存在するか否かを判定する。すなわち、CPU11で動作を管理すべきデバイスの全てについて処理が終了したか否かが判定される。ステップS7において、未処理のデバイスが存在する場合、処理は、ステップS1に戻る。すなわち、CPU11で動作を管理すべき駆動装置の全てについて処理が終了するまで、ステップS1乃至S7の処理が繰り返される。そして、ステップS7において、全てのアドレスについて処理が終了し、CPU11で動作を管理すべき駆動装置の全てについて処理が終了したと判定された場合、処理は、ステップS8に進む。
ステップS8において、判定部111は、全てのデバイスについて、全てのアドレスを未処理であるものとみなし、処理は、ステップS1に戻る。
すなわち、CPU11は、モータ駆動装置12を含む全てのデバイス、すなわち全ての駆動装置について、動作状況を巡回的に監視し、必要に応じて駆動を指示する。この際、駆動装置を駆動するにあたり、動作を一回指示すればよいのでCPU11による処理負荷が低減される。
[図1のモータ駆動システムのモータ駆動装置による出力制御処理]
次に、図4のフローチャートを参照して、モータ駆動装置12による出力制御処理について説明する。
ステップS41において、高周波発振部24は、例えば、図5の上段における実線で示されるような鋸波状の電圧V3の信号を可聴帯域よりも高周波の信号として発生し、比較部52に供給する。
ステップS42において、低周波発振部51は、180度位相の異なる2種類の低周波信号を発生し、それぞれ比較部52の比較器COM11,COM12の正入力端子に供給する。
ここで、低周波発振部51による低周波発振動作について説明する。
方形波発振部55が、動作状況保持部54からのスタート信号に基づいて、クロック信号CK0を発生し、低周波発振部51のフリップフロップ回路FF1、および出力部53のフリップフロップ回路FF31,FF32に供給する。このとき、方形波発生部55により発振されるクロック信号CK0が、例えば、図6の最上段で示されるように、時刻t31乃至t32,t33乃至t34,t35乃至t36,t37乃至t38,t39乃至t40,t41乃至t42,t43乃至t44,t45乃至t46・・・のタイミングにおいて、Hiとなり、それ以外のタイミングにおいてLowとなっている場合、時刻t31乃至t33で示されるように、データ入力端子D1に、Hiの信号が供給されると、図6の2段目で示されるように、正出力端子Q1からHiの信号が出力される。このため、ダイオードD11がオフとなって、かつ、ダイオードD12がオンとなり、抵抗R11を介してコンデンサC11が充電される。このため、コンデンサC11の充電電圧となる電圧V1は、図6の6段目で示されるように、指数関数的に上昇する。
このとき、逆位相となる負出力端子Q1’は、図6の3段目で示されるように、Lowとなるため、ダイオードD13がオンとなって、かつ、ダイオードD14がオフとなるため、定電流源I2を介してコンデンサC12が放電されるため、図6の7段目で示されるように、コンデンサC12の電圧V2が直線的に降下し、時刻t33において電圧0Vとなる。
このため、時刻t33において、図6の2段目で示されるように、データ入力端子D1への入力がLowに切り替わることになるので、ダイオードD11がオンとなって、かつ、ダイオードD12がオフとなり、定電流源I1を介してコンデンサC11が放電される。このため、コンデンサC11の電圧V1は、図6の6段目で示されるように、直線的に下降し、時刻t35において電圧0Vとなる。
また、時刻t33において、図6の3段目で示されるように、負出力端子Q1’からHiの信号が出力され、ダイオードD13がオフとなって、かつ、ダイオードD14がオンとなり、抵抗R12を介してコンデンサC12が充電される。このため、コンデンサC12の電圧V2は、図6の7段目で示されるように、指数関数的に上昇する。
以降において、コンデンサC11,C12の電圧V1,V2は、図6の6段目および7段目で示されるように、図6の2段目および3段目で示される正出力端子Q1および負出力端子Q1’で示されるように180度位相の異なる波形と同期して、Hiのタイミングにおいて、指数関数的に上昇し、Lowのタイミングにおいて直線的に下降する挙動を繰り返す。
結果として、低周波発振部51は、このように相互に90度ずつ位相が異なる挙動を示す電圧V1,V2の波形を低周波信号として、それぞれ比較部52比較器COM11,COM12の正入力端子に出力する。
ここで、図4のフローチャートの説明に戻る。
ステップS43において、比較部52の比較器COM11,COM12は、それぞれ低周波信号である電圧V1,V2が、高周波信号である電圧V3よりも高いか否かを判定する。尚、図4においては、ステップS43乃至S45の処理については、1系統の処理として記載されているが、比較器COM11,COM12におけるそれぞれ個別の系統における処理である。
ステップS43において、比較部52の比較器COM11,COM12は、それぞれ低周波信号である電圧V1,V2が、高周波信号である電圧V3よりも高い場合、ステップS44において、Hiの信号を出力する。すなわち、この場合、比較器COM11は、出力端子より、電圧V4としてステッピングモータMの第1相波および第3相波に対応するアンド回路AND1,AND3にHiの信号を出力し、比較器COM12は、出力端子より、電圧V5としてステッピングモータMの第2相波および第4相波に対応するアンド回路AND2,AND4にHiの信号を出力する。
一方、ステップS43において、比較部52の比較器COM11,COM12は、それぞれ低周波信号である電圧V1,V2が、高周波信号である電圧V3よりも高くない場合、ステップS45において、Lowの信号を出力する。すなわち、この場合、比較器COM11は、出力端子より電圧V4としてステッピングモータMの第1相波および第3相波に対応するアンド回路AND1,AND3にLowの信号を出力し、比較器COM12は、出力端子より電圧V5の信号としてステッピングモータMの第2相波および第4相波に対応するアンド回路AND2,AND4にLowの信号を出力する。
すなわち、例えば、比較器COM11による電圧V1と電圧V3との比較について考える場合、図5の上段で示されるように、鋸波状の高周波信号で示される電圧V3の挙動に対して、低周波信号である電圧V1は、例えば、時刻t1乃至t3において、徐々に上昇するような挙動となる。このため、図5の下段で示されるように、比較器COM11は、時刻t1乃至t2,時刻t3乃至t4,時刻t5乃至t6,時刻t7乃至t8,時刻t9乃至t10,時刻t11乃至t12,時刻t13乃至t14,時刻t15乃至t16・・・で示されるタイミングにおいて、電圧V4の信号をHiの信号として出力する。
結果として、Hiのパルス信号のパルス幅の割合であるデューティを徐々に、電圧V1の上昇と共に上昇させることが可能となり、PWM制御信号としてアンド回路AND1,AND3に供給することが可能となる。
ステップS46において、アンド回路AND1乃至AND4は、電圧V4またはV5の信号がHiであって、かつ、フリップフロップ回路FF31,FF32からのパルス信号がいずれもHiであるか否かを判定する。尚、図4においては、ステップS46乃至S48の処理については、1系統の処理として記載されているが、アンド回路AND1乃至AND4におけるそれぞれ個別の系統における処理である。
例えば、ステップS46において、いずれもHiである場合(アンド回路AND1乃至AND4のそれぞれについて2個の入力端子に入力される信号がいずれもHiである場合)、アンド回路AND1乃至AND4は、それぞれ抵抗R31乃至R34を介してトランジスタTr1乃至Tr4のベースに電流を供給することにより、駆動信号をコイルL1,L2の一方または他方の端部に供給する。
ステップS46において、いずれかがHiではない場合、アンド回路AND1乃至AND4は、それぞれ抵抗R31乃至R34を介してトランジスタTr1乃至Tr4のベースへの電流の供給を停止することにより、駆動信号の供給を停止する。
フリップフロップ回路FF31,FF32の正出力端子Q31,Q32より出力される信号は、図6の3段目および4段目で示されるように、時刻t31乃至t35,t39乃至t43、および時刻t33乃至t37,t41乃至t45で示されるようなタイミングとなる。図示しないが、負出力端子Q31’,Q32’は、それぞれ図6の3段目および4段目における波形の180度位相が異なる波形となる。
このため、比較器COM11の出力信号である電圧V4は、電圧V1の挙動に対応して、図7の2段目で示されるように、PWM波からなる信号として時刻t71乃至t72,t72乃至t73,t73乃至t74,t74乃至t75・・・の各区間において、デューティが低い状態から徐々に高い状態に遷移した後、徐々に低い状態に遷移するように変化する。尚、図4においては、デューティが低いとき、パルス幅が細いため「淡」と表示されており、高いときパルス幅が太くなるため「濃」と表示されている。
また、図7の3段目で示されるように、フリップフロップ回路FF31の正出力端子Q31がHiとなるのは、同様にして時刻t71乃至t72,t73乃至t74・・・となるため、アンド回路AND1の出力信号である電圧V6は、図7の最上段で示されるように、電圧V4のPWM波に対応した挙動となる。すなわち、コイルL1の他方の端部に供給される駆動信号として出力される駆動信号Vout1に流れる電流の平均値は、図7の最下段で示されるように、電圧V1に対応して挙動が変化する。
さらに、図8で示されるように、第1相波および第4相波のそれぞれが90度ずつ位相がずれた状態で、各ステップにおいて、徐々に駆動信号である電流値を徐々に上昇させた後、徐々に下降させていることが示されている。
尚、図8は、最上段が第1相波のアンド回路AND1の出力電圧V6の挙動を示しており、2段目が第1相波の駆動信号Vout1に流れる電流の平均値を示している。また、図8の3段目が第2相波のアンド回路AND2の出力電圧V7の挙動を示しており、4段目が第2相波の駆動信号Vout2に流れる電流の平均値を示している。さらに、図8の5段目が第3相波のアンド回路AND3の出力電圧V8の挙動を示しており、6段目が第3相波の駆動信号Vout3に流れる電流の平均値を示している。また、図8の7段目が第4相波のアンド回路AND4の出力電圧V8の挙動を示しており、8段目が第4相波の駆動信号Vout4に流れる電流の平均値を示している。
このように、ステッピングモータMは、駆動に際して流れる電流が、駆動信号を供給するタイミング、すなわち、ステッピングモータMを駆動させる各ステップにおいて、前半においては徐々に上昇し、後半から終了のタイミングに向けて徐々に下降することが可能になる。
結果として、ステッピングモータMに駆動信号を供給する各ステップにおいて、開始タイミングでは急激なトルクが発生するようなことが回避され、徐々にトルクが掛かることで回転を開始させ、かつ、後半から終了タイミングでは、徐々にトルクが抜けることになり、モータMの各ステップにおける回転がスムーズなものとなる。また、高周波信号は、可聴帯域よりも高周波の信号であるため、その制御タイミングが可聴帯域を超えていることにより、その制御により発生する回転音に起因するノイズは人間の耳では感知し難いものとすることができるので、回転音を抑制することが可能となる。
[モータ駆動システムの第2の実施の形態]
以上においては、アナログ回路により構成される、モータ駆動装置12の例について説明してきたが、低周波発振部51、および高周波発振部24により発生される低周波信号および高周波信号をデジタルカウンタにより構成し、カウント数の比較によりモータを駆動させるようにしても良い。
図9は、高周波信号および低周波信号をデジタルカウンタにより実現するようにした遊技機のモータ駆動システムの実施の形態の構成例を示す図である。
図9のモータ駆動システムは、CPU11およびモータ駆動制御装置201から構成される。モータ駆動制御装置201は、CPU11からの指令データに基づいて、コイルL1−1,L2−1、およびL1−2,L2−2を励磁、または非励磁の状態とすることにより、ステッピングモータM1,M2の駆動を制御する。
図9のCPU11は、判定部301、動作データ生成部302、および指令データ生成部303より構成されている。
判定部301は、基本的には、上述した判定部111と同様の機能を備えており、モータ駆動制御装置201が組み込まれている遊技機の遊技状態、すなわち、通常状態、リーチ状態、および大当り状態に対応して、ステッピングモータM1,M2をどのように駆動させるかを判定し、判定結果である駆動内容を動作データ生成部302に供給する。
動作データ生成部302は、基本的に動作データ生成部112と同様の機能を備えており、判定部301からの判定結果に基づいて、具体的な動作内容を示す動作データを生成し、指令データ送信部303に供給する。
指令データ送信部303は、基本的に指令データ送信部113と同様の機能を備えており、動作データ生成部302より供給されてくる動作データを含めて、指令データを生成し、宛先となるデバイス(デバイスの種類としては、例えば、モータ駆動装置の他、LED(Light Emission Diode)駆動装置などを含む)を特定するデバイス認識データ、および、例えば、モータ駆動制御装置201をデバイスとして特定した場合、モータ駆動装置12を特定するアドレスデータを付して、データ出力端子DATAおよびクロック信号出力端子CKより、クロック信号に同期してシリアルデータとして指令データを全てのモータ駆動制御装置201に送信する。
受信部211は、受信部21と同様のものであり、受信制御部221、およびシリアルパラレル変換部222より構成されており、CPU11よりクロック信号に同期して送信されてくるシリアルデータからなる指令データを受信し、パラレルデータに変換して動作制御部212に供給する。受信制御部221およびシリアルパラレル変換部222は、それぞれ受信制御部31およびシリアルパラレル変換部32と同様であるので、その説明は省略する。
動作制御部212は、基本的に動作制御部22と同様の機能を備えており、デバイス認識部231、アドレス認識部232、動作状況指定部233、および選定部234を備えている。デバイス認識部231、アドレス認識部232、および動作状況指定部233は、デバイス認識部41、アドレス認識部42、および動作状況指定部43と同様である。
アドレス認識部232は、CPU11より供給されてくる指令データに含まれるアドレスデータを読み出し、自らを識別するアドレスであるか否かを判定し、自らを識別するアドレスである場合にのみ、指令データを後段の動作状況指定部233に供給する。より具体的には、識別すべきモータ駆動制御装置201がモータ駆動制御装置201−1または201−2の2台である場合、1ビット分のアドレスデータが構成されればよいが、それ以上であった場合、その数に対応したビット数のアドレスデータとなる。
動作状況指定部233は、CPU11から供給された指令データに含まれる出力系統データおよび動作データに基づいて、動作状況を指定し、選定部234に指示し、出力制御部215−1または215−2によりそれぞれステッピングモータM1,M2を駆動させる。
選定部234は、動作状況指定部233より供給されてくる指示に含まれる、指令データの出力系統データに基づいて、出力制御部215−1または215−2の何れかを選定し、動作データに対応する動作を指示する。
分周部214は、いわゆる分周回路から構成されており、原発振として周波数f0,f1,・・・fnのn種類のクロック信号を発生しており、高周波アップダウンカウンタ213に供給すると共に、最も周波数の高い周波数f0のクロック信号を出力制御部215−1,215−2に供給する。
高周波アップダウンカウンタ213は、高周波発振部24に対応するものであり、分周部214より供給されてくるn種類の周波数のクロック信号のいずれかを選択的に利用しながらカウンタのカウント値をアップ、または、ダウンさせて、出力制御部215−1,215−2に供給する。
出力制御部215−1,215−2は、動作制御部212からの指示のうち、自らの出力系統に対応する指示の場合、その指示に基づいて、分周部214より供給されてくる予め設定されている周波数f0のクロック信号に基づいて、順次、低周波アップダウンカウンタ243−1,243−2のカウント値をカウントアップ、または、カウントダウンすると共に、高周波アップダウンカウンタ213のカウント値とを比較し、比較結果に応じて、所定の波形の出力信号を発生させ、モータM1またはM2を駆動させる。
出力制御部215−1,215−2は、それぞれ動作状況保持部241−1,241−2、回転速度設定カウンタ242−1,242−2、および低周波アップダウンカウンタ243−1,243−2から構成されている。
動作状況保持部241−1,241−2は、動作制御部212より供給されてくる動作状況を保持し、動作状況に含まれているスタート信号、リミット信号、およびクロック信号を、それぞれ回転速度設定カウンタ242−1,242−2および低周波アップダウンカウンタ243−1,243−2に供給する。尚、動作状況保持部241−1,241−2は、例えば、出力制御部215−1,215−2に対して共用できるものを1個だけ設けるようにしても良い。
回転速度設定カウンタ242−1,242−2は、分周部214より供給されてくるクロック信号、リミット信号、およびスタート信号に基づいて、ステッピングモータM1,M2の回転速度を設定するカウンタ値を、設定すべき回転速度に対応した速度でカウントし、低周波アップダウンカウンタ243−1,243−2のそれぞれにクロック信号として供給する。
低周波アップダウンカウンタ243−1,243−2は、低周波発振部51に対応するものであり、回転速度設定カウンタ242−1,242−2より供給されてくる回転速度設定カウント値、およびスタート信号に基づいて低周波のカウント値をアップまたはダウンさせ、さらに、第1相波乃至第4相波まで90度ずつ位相がずれるように分配して比較部244−1,244−2に供給する。
比較部244−1,244−2は、高周波アップダウンカウンタ213より供給されてくるカウント値と、低周波アップダウンカウンタ243−1,243−2より供給されてくる第1相波乃至第4相波のそれぞれのカウント値とを比較し、低周波アップダウンカウンタ243−1,243−2のカウント値の方が高周波アップダウンカウンタ213のカウント値よりも大きな値をとる場合、出力部245−1,245−2にHiの信号を供給し、それ以外の場合Lowの信号を供給する。
出力部245−1,245−2は、比較部244−1,244−2より各位相波に対応する信号がHiである場合、各位相波の駆動信号を出力する。
[モータ駆動制御装置の詳細な構成例]
次に、図10を参照して、図9のモータ駆動制御装置201の詳細な構成例について説明する。尚、以降において、出力制御部215−1,251−2については、それぞれを特に区別する必要がない場合、単に出力制御部215と称するものとし、その他の構成についても同様に称するものとする。
高周波アップダウンカウンタ213は、分周部214より供給されてくる、n種類の周波数f0,f1,・・・fnのクロック信号のいずれかを、動作状況保持部241より供給される選択信号に基づいて選択し、選択したクロック信号によりカウント値をカウントアップ、または、カウントダウンするカウンタであり、カウント値KHを比較部244に供給する。
高周波アップダウンカウンタ213は、高周波カウント部401、切替カウンタ制御部402、分周切替部403、レートカウンタ制御部404、および曲率設定部405を備えている。
分周切替部403は、動作状況保持部241からの選択信号に基づいて、所定のタイミングで、レートカウンタ制御部404により制御されるレートカウンタMにより予め設定されているカウントレート(変化率:単位時間当たりのカウント数)により、周波数f0,f1,・・・fnのいずれかのクロック信号を選択することにより切り替えて、切り替えたクロック信号を高周波カウント部401に供給する。
高周波カウント部401は、分周切替部403により切り替えられたクロック信号に同期してカウント値KHをカウントし、比較部244に出力する。切替カウンタ制御部402は、カウントレートを切り替えるタイミングを示す切替カウンタCを、分周切替部403により切り替えられたクロック信号に同期してカウントし、レートカウンタMに対応する切替カウント値となったとき、そのタイミングとなったことをレートカウンタ制御部404および分周切替部403に通知する。
レートカウンタ制御部404は、切替カウンタ制御部402より切替カウンタCが切替カウント値となったことが通知されると、そのタイミングでレートカウンタMを1インクリメントする。
分周切替部403は、切替カウンタ制御部402より切替カウンタCが切替カウント値となったことが通知されると、そのタイミングでレートカウンタMに対応するカウントレートに対応する周波数fnのクロック信号に切り替える。
曲率設定部405は、予めレートカウンタMごとに、設定された切替カウント値を記憶し、カウントレートを識別するレートカウンタMに対応する切替カウント値を切替カウンタ制御部402に供給する。このレートカウンタM毎に設定されるカウントレートと、対応する切替カウント値に基づいて、分周部214により分周される異なる周波数のクロック信号に切り替えられる期間が設定され、高周波アップダウンカウンタ213のカウント値のカウント速度が、時間に対して、擬似曲線的に変化されると共に、擬似曲線の曲率が設定される。
尚、ここでは、レートカウンタMが大きくなるにつれて、カウントレートが大きくなるものとする。すなわち、高周波カウント部401は、レートカウンタMが小さいほど、周波数の低いクロック信号によりカウントアップ、または、カウントダウンされるので、低速でカウントアップ、または、カウントダウンされ、レートカウンタMが大きいほど、周波数の高いクロック信号によりカウントアップ、または、カウントダウンされるので、高速でカウントアップ、または、カウントダウンされる。
回転速度設定カウンタ242は、清算部411、アップダウンカウンタ412、リミットカウント生成部413、および比較器414より構成されており、低周波アップダウンカウンタ243に対してスッテピングモータM1,M2を駆動させる際の回転速度を設定するクロック信号K0を出力する。
アップダウンカウンタ412は、分周部214よりされる最も高速の周波数f0のクロック信号に基づいて、カウント値K11をカウントアップ、または、カウントダウンするカウンタであり、カウント値を示すカウント信号を比較器414に供給する。また、アップダウンカウンタ412は、清算部411より供給されるクリア信号によりカウンタのカウント値の値を0にクリアする。
リミットカウント生成部413は、動作状況保持部241より供給されてくるリミット信号に基づいて、アップダウンカウンタのカウント値における上限値(または、下限値)を示すリミットカウント値K12を比較部414に供給する。
比較器414は、リミットカウント生成部413より供給されてくるリミットカウント値K12と、アップダウンカウンタ412より供給されてくるカウント値K11に基づいたカウント値とを比較し、カウント値がカウントアップされる場合、カウント値が、リミットカウント値よりも大きいとき、パルス状のクロック信号K0を発生し、低周波アップダウンカウンタ243に供給する。
清算部411は、Hiのクロック信号K0を受けると、クリア信号をアップダウンカウンタ412に供給し、アップダウンカウンタのカウント値をリセットさせる。
動作状況保持部241は、動作制御部212より供給されてくる動作状況を保持し、動作状況に含まれているスタート信号、リミット信号、および選択信号を、それぞれ回転速度設定カウンタ242に供給する。
低周波アップダウンカウンタ243は、低周波アップダウンカウント部431,432および分配部433より構成される。
低周波アップダウンカウント部431,432は、回転速度設定カウンタ242より供給されてくる、ステッピングモータM1,M2の回転速度を設定するクロック信号K0に基づいて、低周波アップダウンカウンタのカウント値をカウントアップ、またはカウントダウンしてカウント値K01,K02として分配部433に供給する。この際、低周波アップダウンカウント部431,432より相互に出力されるカウント値K01,K02は、相互の波形が90度異なるものであるので、低周波アップダウンカウント部432は、低周波アップダウンカウント部431より出力されるカウント値に基づいて、低周波アップダウンカウント部431より出力されるカウント値K01と90度位相が異なるカウント値K02を発生し、分配部433に供給する。
分配部433は、低周波アップダウンカウント部431,432より供給されてくる相互に90度位相が異なるカウント値K01,K02に基づいて、それぞれに対して90度位相の異なるカウント値を発生し、第1相波乃至第4相波までの低周波アップダウンカウント値K1乃至K4として比較部244の比較器451−1乃至451−4に供給する。
比較部244は、比較器451−1乃至451−4を備えており、比較器451−1乃至451−4は、それぞれ高周波アップダウンカウンタ213からのカウント値KHと、低周波アップダウンカウント値K1乃至K4とを比較し、低周波アップダウンカウント値の方が大きい場合、Hiの信号を出力部245のそれぞれに対応する駆動信号発生部471−1乃至471−4に供給し、それ以外の場合、Lowの信号を供給する。
出力部245は、駆動信号発生部471−1乃至471−4を備えており、比較部244の比較器451−1乃至451−4のそれぞれよりHiの信号が供給されてくるとき、それぞれに対応する第1相波乃至第4相波の出力Vou1乃至Vout4よりコイルL1−1,L2−1またはL1−2,L2−2を励磁、Lowの信号が供給されてくるとき、非励磁とすることにより、ステッピングモータM1,M2を駆動させる。
[図9のモータ駆動システムによるモータ駆動処理]
次に、図11のフローチャートを参照して、図9のモータ駆動システムによるモータ駆動処理について説明する。尚、図11のフローチャートにおけるステップS101乃至S104,S106乃至S108、およびステップS111乃至S118の処理については、図2のフローチャートを参照して説明したステップS1乃至S4,S6乃至S8、およびステップS21乃至S28の処理と同様であるので、その説明は省略する。
すなわち、ステップS105において、指令データ送信部303は、処理対象デバイスのうち、処理対象アドレスのモータ駆動制御装置201に対して、供給されてきた動作データを含めて、動作を指示する、例えば、図12で示されるような指令データを生成し、クロック端子CKより出力するクロック信号に同期して、データ端子DATAよりシリアルデータとして出力する。
指令データは、図12で示されるように、デバイスデータ、アドレスデータ、出力系統データ、および動作データから構成される。例えば、モータ駆動制御装置201宛の指令データを生成する場合、デバイスデータには、デバイスとしてモータ駆動制御装置を識別できるデバイスデータが記録される。また、アドレスデータには、モータ駆動制御装置201を識別するアドレスのデータが記録される。また、出力系統データは、駆動させる出力系統である出力制御部215−1,215−2のいずれかを識別するデータが記録される。動作データは、上述したように、出力部245によりステッピングモータM1,M2を駆動させるための、駆動信号Vout11−1乃至Vout14−1,Vout11−2乃至Vout14−2の発生を制御するデータとして、回転速度設定カウンタ242および低周波アップダウンカウンタ243へのスタート信号、リミット信号、および高周波アップダウンカウンタ213への選択信号が記録される。
また、ステップS119において、動作状況指定部233は、指令データのうちの出力系統データを読み出し、動作データの供給先となる出力系統を認識する。
ステップS120において、動作状況指定部233は、動作データより動作状況を指定し、認識した出力系統に対応する出力制御部215を指定して、選定部234に対して出力系統データと共に動作データを供給すると共に、選択信号を高周波アップダウンカウンタ213に供給する。これに応じて、選定部234は、出力系統データに基づいて、選択すべき出力制御部215に動作状況を指示し、動作状況に対応した出力制御処理を実行させる。このとき、図13を参照して後述するステップS132の処理により動作状況保持部241は、供給されてきた動作状況を保持する。そして、処理は、ステップS111に戻る。
すなわち、CPU11は、全てのデバイス、すなわちモータ駆動制御装置を含む全てのデバイスの駆動制御装置について、動作状況を巡回的に監視し、必要に応じて駆動を指示して、出力制御処理を実行させる。この際、モータ駆動制御装置を駆動するにあたり、動作を一回指示すればよいのでCPU11による処理負荷が低減される。
[図9のモータ駆動システムのモータ駆動制御装置による出力制御処理]
次に、図13のフローチャートを参照して、図9のモータ駆動システムのモータ駆動制御装置201による出力制御処理について説明する。
ステップS131において、動作状況保持部241は、自らの出力系統に出力制御処理が指示されたか否かを判定し、指示されるまで、同様の処理を繰り返す。そして、ステップS131において、例えば、図11のフローチャートにおけるステップS120の処理により、自らの出力系統に出力制御処理が指示された場合、処理は、ステップS132に進む。
ステップS132において、動作状況保持部241は、供給されてきた動作データを保持する。
ステップS133において、動作状況保持部241は、動作データに含まれるスタート信号とリミット信号を回転速度設定カウンタ242に供給し、回転速度設定処理を実行させて、回転速度を設定するクロック信号K0を生成させて、低周波アップダウンカウンタ243に対して供給する処理を開始させる。
[回転速度設定処理]
ここで、図14のフローチャートを参照して、回転速度設定カウンタ242による回転速度設定処理について説明する。
ステップS161において、動作状況保持部241は、回転速度設定処理を指示するべきタイミングであるか否かを判定し、指示すべきタイミングであると判定されるまで、その処理を繰り返す。ステップS161において、例えば、ステップS133の処理により、回転速度設定処理を指示するべきタイミングであると判定される場合、処理は、ステップS162に進む。
ステップS162において、リミットカウント生成部413は、動作状況保持部241より供給されてきたリミット信号に基づいて、リミットカウント信号を比較部414に供給する。
ステップS163において、動作状況保持部241は、動作データに基づいて、処理を開始するスタートのタイミングであるか否かを判定し、スタートのタイミングであると判定されるまで、同様の処理を繰り返す。ステップS163において、スタートのタイミングであると判定された場合、ステップS164において、動作状況保持部241は、スタート信号をアップダウンカウンタ412に供給し、カウント処理を開始させる。この処理によりアップダウンカウンタ412は、カウント処理を開始し、カウント値のカウントアップ、または、カウントダウンを開始する。
[カウント処理]
ここで、図15のフローチャートを参照して、カウント処理について説明する。
ステップS191において、アップダウンカウンタ412は、カウント処理が指示されたか否かを判定し、指示されるまで同様の処理を繰り返す。ステップS191において、例えば、ステップS164の処理によりスタート信号が供給されてカウント処理が指示された場合、処理は、ステップS192に進む。
ステップS192において、アップダウンカウンタ412は、アップダウンカウンタを0にリセットする。
ステップS193において、アップダウンカウンタ412は、分周部214により分周されて発生される周波数f0のクロック信号に同期してカウント値をカウントし(1インクリメント、またはデクリメントし)、カウント値に対応するカウント信号を比較部414に供給する。
ステップS194において、アップダウンカウンタ412は、清算部411よりクリア信号が供給されてくるか否かを判定する。ステップS194において、例えば、清算部411よりクリア信号が供給されてこなかった場合、処理は、ステップS193に戻る。すなわち、清算部411よりクリア信号が供給されてくるまで、アップダウンカウンタ412は、分周部214からのクロック信号に同期してカウント値を累積的に加算、または減算し続ける。
一方、ステップS194において、清算部411よりクリア信号が供給されてくると、ステップS195において、カウントアップダウンカウンタ412は、停止が指示されたか否かを判定し、停止が指示されない場合、処理は、ステップS192に戻り、カウント処理が繰り返される。すなわち、カウント値がリセットされてから、再びカウント値のカウントアップ、またはカウントダウンが累積的に繰り返される。
また、ステップS195において、停止が指示された場合、処理は、ステップS191に戻る。
以上の処理により、アップダウンカウンタ412は、清算部411によりクリア信号が供給されるまで、カウント値をカウントアップ、または、カウントダウンし続け、そのカウント値を順次比較部414に供給すると共に、クリア信号が供給されるとカウント値をリセットし、再びカウント値をカウントアップ、または、カウントダウンし続け、そのカウント値を順次比較部414に供給し続ける。
ここで、図14のフローチャートの説明に戻る。
ステップS165において、比較部414は、順次アップダウンカウンタ412より供給されてくるカウント値と、リミットカウント生成部413より供給されてくるリミット信号に基づいたリミットカウント値とを比較し、カウント信号に基づくカウント値が、リミット信号に基づくリミットカウント値よりも大きいか否かを判定する。ステップS165において、例えば、カウント値が、リミットカウント値よりも大きいと判定された場合、ステップS166において、比較部414は、低周波アップダウンカウンタ243に対して回転速度を設定するためのHiのクロック信号K0を供給する。このクロック信号により、低周波アップダウンカウンタ243は、ステッピングモータM1(またはM2)を駆動するための回転速度の律則となる、低周波アップダウンカウンタ信号K1,K2,K3,K4を発生する。
ステップS167において、清算部411は、Hiのクロック信号K0を受けると、クリア信号をアップダウンカウンタ412に供給し、アップダウンカウンタのカウント値をリセットさせ、処理は、ステップS169に進む。尚、ステップS166において、クロック信号が発生されるのは、カウント値が、リミット値よりも大きいと判定された後であって、クリア信号によりプリセットされるまでの間となるが、事実上、アップダウンカウンタが1カウントされるまでの1周期についてのみとなるため、クロック信号は、アップダウンカウンタの1カウント分のパルス信号となる。
一方、ステップS165において、例えば、アップダウンカウンタ412のカウント値が、リミットカウント値よりも高くないと判定された場合、ステップS168において、比較部414は、低周波アップダウンカウンタ243に対してLowのクロック信号を発生する。
ステップS169において、動作状況保持部241は、停止すべきタイミングであるか否かを判定し、停止すべきタイミングではないと判定された場合、処理は、ステップS165に戻る。
一方、ステップS169において、停止すべきタイミングであると判定された場合、処理は、ステップS161に戻り、それ以降の処理が繰り返される。
以上の動作を纏めると以下のようになる。
すなわち、アップダウンカウンタ412の上限値が、例えば、256であり、カウントアップするものとした場合、リミットカウント値が設定されていないとき、アップダウンカウンタ412のカウント信号を示すカウント値K11は、図16の実線で示されるように、256×1/f0(f0は分周部214より供給されてくるクロック信号の周波数)の間隔で繰り返しカウント値が0乃至256での上昇を繰り返す。尚、図16においては、カウント値K11が直線状に推移するように表記されているが、厳密には、1/f0の間隔で階段状に変化するものである。
ここで、図17で示されるように、時刻t101において、カウントリミット値K12=64が設定され、時刻t102において、カウントリミット値K12=192が設定されるものとする。
この場合、時刻t101乃至t102においては、図18の上部で示されるように、アップダウンカウンタ412のカウント値K11が64に達する時刻C1,C2,・・・と、その周期においてカウント値がリミットカウント値K12を1周期分(1/f0)だけ超えた状態となるため、その間、比較部414は、図18の下部で示されるようにパルス状のクロック信号K0を発生して、低周波アップダウンカウンタ243に供給する。したがって、このパルス状のクロック信号からなるパルス信号は、64×1/f0の周期で繰り返し発生される幅1/f0のパルス信号になる。
また、同様に、時刻t102以降においては、図19の上部で示されるように、アップダウンカウンタ412のカウント値K11が192に達する時刻C11,C12,C13・・・・と、その周期においてカウント値がリミットカウント値を示すリミットカウント値K12を1周期分(1/f0)だけ超えた状態となるため、その間、比較部414は、図19の下部で示されるようにパルス状のクロック信号K0を発生して、低周波アップダウンカウンタ243に供給する。したがって、このパルス信号は、192×1/f0の周期で繰り返し発生される幅1/f0のパルス信号になる。
このように、時刻t101乃至t102においては、時刻t102以降よりもステッピングモータM1,M2の回転速度の律則となる低周波アップダウンカウンタ243におけるカウントアップ、またはカウントダウンの速さが約3倍の速くなるように制御される。この際、開始タイミングと、そのリミットカウント値のみが制御されるのみで、回転開始タイミングと、その回転速度が制御され、これ以外の情報が特に必要とされないので、最初にその情報を供給したのみで、回転速度設定カウンタ242が、自らで自走することとなるので、CPU11の制御負荷を極めて小さくすることが可能となる。
また、分周部214より発生するクロック信号は、周波数f0乃至fnのn種類であり、分周切替部403により切り替えて利用するようにすることで、ステッピングモータM1(または、M2)の駆動パタンを様々に変化させるようにしてもよい。
ここで、図13のフローチャートの説明に戻る。
ステップS134において、動作状況保持部241は、低周波アップダウンカウンタ243に対して、スタート信号を供給し、低周波信号発生処理を実行させて、低周波アップダウンカウント値をカウントさせて、比較部244に第1相波乃至第4相波に対応する低周波アップダウンカウント値K1,K2,K3,K4を出力させる。
[低周波信号発生処理]
ここで、図20のフローチャートを参照して、低周波アップダウンカウンタ243による低周波信号発生処理について説明する。
ステップS211において、動作状況保持部241は、低周波信号発生処理の開始が指示されたか否かを判定し、指示されるまで、同様の処理を繰り返す。ステップS211において、例えば、ステップS134の処理により、低周波信号発生処理が指示される場合、処理は、ステップS212に進む。
ステップS212において、動作状況保持部241は、低周波アップダウンカウンタ243に対して低周波信号の発生を指示する。この指示により、低周波アップダウンカウント部431は、回転速度設定カウンタ242より供給されてくるクロック信号K0に同期して、カウントアップ、または、カウントダウンを開始し、カウント値であるクロック信号K01を分配部433に供給すると共に、カウントを開始したことを示す信号を低周波アップダウンカウント部432に供給する。
より詳細には、低周波アップダウンカウント部431は、図21の上段で示されるように、時刻t201乃至t202,t203乃至t204,t205乃至t206,t207乃至t208,t209乃至t210,t211乃至t212,t213乃至t214,t215乃至t216・・・のタイミングで順次パルス波形として供給されてくるクロック信号K0に同期して、図21の下段で示されるように、パルス波形が立ち上がるタイミングである時刻t201,t203,t205,t207,t209,t211,t213,t215・・・においてカウント値をカウントアップ(またはカウントダウン)し、その値であるクロック信号K01を分配部433に供給する。さらに、図22の最上段で示されるように、低周波アップダウンカウント部431は、所定の値までカウントアップした後、カウントダウンし、カウント値が0になったところで、再びカウントアップすることで、カウントアップとカウントダウンを繰り返す。例えば、回転角度90度を32分割して制御する場合、低周波アップダウンカウント部431は、32カウント毎にカウントアップとカウントダウンとを切り替える。尚、図22の最上段の丸く示された拡大表示部で示されるように、カウント値は、離散変量であるので、値は直線状ではなく、厳密には階段状に変化する。
ステップS213において、低周波アップダウンカウント部432は、低周波アップダウンカウント部431によりカウントアップ、または、カウントダウンを開始したタイミングから、低周波信号が90度位相が異なるカウント値からカウントを開始し、順次カウント値であるクロック信号K02を分配部433に供給する。
すなわち、図22の2段目で示されるように、低周波アップダウンカウント部432は、クロック信号K01に対して90度位相が異なるクロック信号K02を発生して、分配部433に供給する。
ステップS214において、分配部433は、低周波アップダウンカウント部431より供給されてくるクロック信号K01のうち、図22の3段目で示されるように、180度の位相毎に読み出して、第1相波であるカウント値K1として比較部244の比較器451−1に分配して供給する。
ステップS215において、分配部433は、低周波アップダウンカウント部432より供給されてくるクロック信号K02のうち、図22の4段目で示されるように、180度の位相毎に読み出して、第2相波であるクロック信号K2として比較部244の比較器451−2に分配して供給する。
ステップS216において、分配部433は、図22の5段目で示されるように、低周波アップダウンカウント部431より供給されてくるクロック信号K01の位相に対して180度分だけ遅れた位相のクロック信号を生成し、180度の位相毎に読み出して、第3相波であるクロック信号K3として比較部244の比較器451−3に分配して供給する。
ステップS217において、分配部433は、図22の6段目で示されるように、低周波アップダウンカウント部432より供給されてくるクロック信号K2の位相に対して180度分だけ遅れた位相のクロック信号を生成し、180度の位相毎に読み出して、第4相波であるクロック信号K4として比較部244の比較器451−4に分配して供給する。
ステップS218において、動作状況保持部241は、停止が指示されたか否かを判定し、停止が指示されていない場合、処理は、ステップS212に戻る。すなわち、停止が指示されるまで、低周波信号として第1相波乃至第4相波であるカウント値K1乃至K4が比較部244の比較器451−1乃至451−4にそれぞれ分配されて供給され続ける。
そして、ステップS218において、停止が指示されたと判定された場合、処理は、ステップS211に戻り、それ以降の処理が繰り返される。
以上の処理により、低周波アップダウンカウンタ243より順次回転速度設定カウンタ242により生成されるクロック信号K0のパルスが発生される低周波のタイミングで、カウントアップ、またはカウントダウンされるカウント値からなる第1相波乃至第4相波のカウント値K1乃至K4がそれぞれ比較部244の比較器451−1乃至451−4に供給される。
ここで、図13のフローチャートの説明に戻る。
ステップS135において、動作状況保持部241は、高周波アップダウンカウンタ213に対して、高周波信号発生処理を実行させて、高周波アップダウンカウント値KHを、比較部244に供給する。
ここで、高周波アップダウンカウンタ213より発生されるカウント値KHは、出力制御部215−1,215−2により共用されるものであるので、出力制御部215−1,215−2のいずれかの動作状況保持部241からの指示により動作が開始されるものではなく、動作制御部212から曲率を選択するための選択信号の供給を受けて、独立したタイミングで開始が指示されるべきものである。しかしながら、出力制御処理の一連の動作に組み入れて説明するため、動作状況保持部241からの指示により動作が開始されるものとする。したがって、厳密には、高周波信号発生処理は、出力制御処理とは独立して実行されているものである。
[高周波信号発生処理]
ここで、図23のフローチャートを参照して、高周波アップダウンカウンタ213による高周波信号発生処理について説明する。
ステップS231において、高周波アップダウンカウンタ132は、高周波アップダウンカウンタのカウントが指示されたか否かを判定し、指示されるまで同様の処理を繰り返す。ステップS231において、例えば、図13におけるステップS135の処理により、高周波アップダウンカウンタのカウントが指示された場合、ステップS232において、高周波アップダウンカウンタ213は、高周波アップダウンカウンタを0にリセットする。
ステップS233において、レートカウンタ制御部404は、レートカウンタMを1に初期化する。
ステップS234において、切替カウンタ制御部402は、カウントレートを切り替える切替カウンタCを0にリセットする。
ステップS235において、分周切替部403は、選択信号に基づいて、曲率設定部405に予めレートカウンタMに対応して設定されているカウントレートのクロック信号を、分周部214から供給されてくるクロック信号f0乃至fnから選択する。すなわち、最初の処理の場合、最もレートカウンタMが小さいので、最も低速のクロック信号が選択される。
ステップS236において、高周波カウント部401は、分周部214により分周されて発生されるクロック信号に同期して高周波アップダウンカウンタをカウントし(1インクリメントし)、比較部244に供給する。
ステップS237において、切替カウンタ制御部402は、分周部214により分周されて発生されるクロック信号のうち、分周切替部403により選択されたクロック信号に同期して、切替カウンタCをカウントする(1インクリメントする)。
ステップS238において、切替カウンタ制御部402は、切替カウンタCが、曲率設定部405に予め設定されているレートカウンタM毎に設定されている所定値である切替カウント値となったか否かを判定する。例えば、切替カウンタCが、曲率設定部405に予め設定されているレートカウンタM毎に設定されている切替カウント値となっていない場合、処理は、ステップS235に戻る。すなわち、ステップS238において、切替カウンタCが、曲率設定部405に予め設定されているレートカウンタM毎に設定されているの切替カウント値となるまで、ステップS235乃至S238の処理が繰り返されて、レートカウンタMに対応するカウントレートで高周波アップダウンカウンタ、および切替カウンタCが順次、1インクリメントされていく。
そして、ステップS238において、切替カウンタCが、曲率設定部405にレートカウンタM毎に予め設定されている切替カウント値であると判定された場合、ステップS239において、高周波アップダウンカウンタ213は、高周波カウント部401によりカウントされた値が最大値であるか否かを判定し、最大値ではない場合、処理は、ステップS240に進む。
ステップS240において、レートカウンタ制御部404は、レートカウンタMを1インクリメントし、処理は、ステップS234に戻る。
すなわち、レートカウンタMが1インクリメントされると、再び、処理は、ステップS234に戻り、切替カウンタ制御部402が切替カウンタCを0にリセットし、分周切替部403が、新たに設定されたレートカウンタMに対応するカウントレートで分周部214より供給されてくるクロック信号を選択し、選択されたクロック信号に基づいて、高周波アップダウンカウンタ213が高周波カウント部401によりカウントされると共に、切替カウンタCがカウントされる。
例えば、図24の時刻taのタイミングで、高周波アップダウンカウンタ213のカウントが開始され、レートカウンタM=1に対応するカウントレートでカウントするように分周切替部403がクロック信号を選択すると、曲率設定部405にレートカウンタM=1に対応して設定されている、所定の切替カウント値である切替カウンタC1までステップS235乃至S238が繰り返されて、レートカウンタM=1に対応するカウントレートでカウントされる。このとき、図中の時刻ta乃至tbにおける一点鎖線で示されるように、直線状に高周波アップダウンカウンタ213の値が変化する(図中では直線であるが、図22で示される場合と同様にその値は階段状に変化している)。そして、図24の時刻tbのタイミングで示されるように、ステップS238において、切替カウンタCが切替カウンタC1となり、切替カウント値となったものとみなされると、ステップS239において最大値ではないとみなされて、ステップS240において、レートカウンタMが1インクリメントされて、レートカウンタM=2とされる。
そして、レートカウンタM=2に対応して設定されている、所定の切替カウント値である切替カウンタC2までステップS235乃至S238が繰り返されて、レートカウンタM=2に対応するカウントレートで高周波アップダウンカウンタがカウントされる。このとき、図24の時刻tb乃至tcにおける一点鎖線で示されるように、時刻ta乃至tbにおけるときよりも急峻な直線状に高周波アップダウンカウンタの値が変化する。ここで、図24の時刻tcのタイミングで示されるように、ステップS238において、切替カウンタCが切替カウンタC2となり切替カウント値となったものとみなされると、ステップS239において最大値ではないとみなされて、ステップS240において、レートカウンタMが1インクリメントされて、レートカウンタM=3とされる。
さらに、レートカウンタM=3に対応して設定されている、所定の切替カウント値である切替カウンタC3までステップS235乃至S238が繰り返されて、レートカウンタM=3に対応するカウントレートでカウントされる。このとき、図24の時刻tc乃至tdにおける一点鎖線で示されるように、時刻tb乃至tcにおけるときよりもさらに急峻な直線状に高周波アップダウンカウンタ213の値が変化する。ここで、図24の時刻tdのタイミングで示されるように、ステップS238において、切替カウンタCが切替カウンタC3となり、切替カウント値となったものとみなされると、ステップS239において最大値ではないとみなされ、ステップS240において、レートカウンタMが1インクリメントされて、レートカウンタM=4とされる。
また、再び、レートカウンタM=4に対応して設定されている、所定の切替カウント値である切替カウンタC4までステップS235乃至S238が繰り返されて、レートカウンタM=4に対応するカウントレートでカウントされる。このとき、図24の時刻td乃至teにおける一点鎖線で示されるように、時刻tc乃至tdにおけるときよりもさらに急峻な直線状に高周波アップダウンカウンタの値が変化する。ここで、図24の時刻teタイミングで示されるように、ステップS238において、切替カウンタCが切替カウンタC4となり、切替カウント値となったものとみなされると、さらに、ステップS239において最大値であるとみなされて(図24においては、最大値は1024カウント)、処理がステップS232に戻り、同様の処理が繰り返される。
この処理により、例えば、時刻ta乃至teまでの時間が1msであるものとすれば、図24で示される擬似曲線(複数の区間ごとに異なるカウントレートとして設定された一次関数からなる傾きの異なる直線が連続して接続されることにより形成される擬似的な曲線)が連続して配置されることにより、図24の実線で示されるような曲線に類似した波形を生成することが可能となる。そして、この図24で示されるような波形が、連続して生成されることにより、図25の略鋸波状の曲線で示されるように高周波アップダウンカウンタ213のカウント値KHの値が変化する。
このように、予め曲率設定部405にレートカウンタMに対応付けて記憶されている、分周されるカウントレートと、そのカウントレートでカウントされるべき期間を示す切替カウント値とにより、高周波アップダウンカウンタの変化を示す擬似曲線の曲率が設定される。
また、ここでは、図25でも示されるように、曲率設定部405に記憶されているレートカウンタMに対応付けて記憶されている、分周されるカウントレートと、そのカウントレートでカウントされるべき期間を示す切替カウント値とにより、高周波アップダウンカウンタ213のカウント値KHの値が、擬似的にarcsin関数を取るように設定されている。すなわち、カウント値KH=0から最大値まで(図25においては1024)を1区間とするとき、区間内では、前半においてカウント値KHの変化を緩やかにして、区間後半に進むにつれて、急峻に変化するように制御されている。
ここで、図13のフローチャートの説明に戻る。
ステップS136において、比較部244の比較器451−1乃至451−4は、それぞれ低周波信号であるカウント値K1乃至K4と、高周波信号であるカウント値KHとを比較し、低周波信号が高周波信号よりも高いか否かを判定する。尚、ステップS136乃至S139の処理については、1系統の処理として記載されているが、実際には、比較器451−1乃至451−4、および駆動信号発生部471−1乃至471−4がそれぞれの系統において実行する処理である。
ステップS136において、例えば、カウント値K1乃至K4が、カウント値KHよりも高い場合、ステップS137において、比較器451−1乃至451−4は、信号V16乃至V19を発生し出力部245の駆動信号発生部471−1乃至471−4に供給する。駆動信号発生部471−1乃至471−4は、信号V16乃至V19に基づいて、駆動信号Vout11乃至Vout14をコイルL1,L2に供給する。駆動信号Vout11乃至Vout14は、モータM1,M2をステップ状に回転させるために、コイルL1,L2を励磁、または非励磁とする。
一方、ステップS136において、例えば、カウント値K1乃至K4のカウント値が、カウント値KHよりも高くない場合、ステップS138において、比較器451−1乃至451−4は、信号V16乃至V19の発生を停止し、出力部245の駆動信号発生部471−1乃至471−4に供給を停止する。このため、駆動信号発生部471−1乃至471−4は、信号V16乃至V19に基づいた、駆動信号Vout11乃至Vout14のコイルL1,L2への供給を停止する。
ステップS139において、動作状況保持部241は、停止が指示されたか否かを判定し、停止が指示されていない場合、処理は、ステップS136に戻る。すなわち、停止が指示されるまで、比較部244は、高周波信号と低周波信号との比較を繰り返し、低周波信号の方が高いタイミングにおいて、信号V16乃至V19を発生して、駆動信号を供給し、それ以外のタイミングにおいて駆動信号の供給を停止する。
ステップS139において、停止が指示された場合、ステップS140において、動作状況保持部241は、回転速度設定処理、高周波信号発生処理、および低周波信号発生処理の処理を停止させ、処理は、ステップS131に戻る。
すなわち、例えば、比較器451−1は、図26の最上段の実線で示されるように、高周波信号からなるカウント値KHが供給され、図26の最上段の点線で示されるように、低周波信号からなるカウント値K1が供給される場合、図26の2段目で示されるように、信号V16を出力する。
すなわち、カウント値KHは、図26の最上段で示されるように、時刻t271乃至t273,t273乃至t275,t275乃至t277,t277乃至t279,t279乃至t281,t281乃至t283・・・の各区間において、擬似的にarcsin関数で示される波形として出力されている。このとき、カウント値K1は、図26の最上段で示されるように、上述した各区間において同期してカウント値が上昇(または下降)する。このため、比較器451−1は、図26の2段目で示されるように、時刻t271乃至t272,t273乃至t274,t275乃至t276,t277乃至t278,t279乃至t280,t281乃至t282・・・で示されるタイミングにおいてパルス波を発生する。このパルス幅は、カウント値K1が上昇しているタイミングにおいては、徐々に広くなり、下降しているタイミングにおいては徐々に狭くなる。
このようにパルス幅を変化させることにより駆動信号のデューティが変化することになるので、駆動信号をPWM(Pulse Width Modulation)制御することが可能となる。
また、カウント値KHは、擬似的にarcsin関数により規定される値として変化するように構成されているため、このパルス幅で出力される駆動信号Vout11の平均電流値は、図27の最上段で示されるように、sin関数における上に凸の波形として出力される。尚、図27においては、最上段が第1相波の駆動信号Vout11による駆動電流の平均値であり、2段目が第2相波の駆動信号Vout12による駆動電流の平均値であり、3段目が第3相波の駆動信号Vout13による駆動電流の平均値であり、4段目が第4相波の駆動信号Vout14による駆動電流の平均値である。また、図27の最上段で示されるように、駆動信号Vout11は、時刻t301乃至t303、および時刻t305乃至t307において、sin関数における上に凸の波形が構成されており、駆動信号Vout12は、図27の2段目で示されるように、駆動信号Vout11に対して90度位相がずれた時刻t302乃至t304、および時刻t306乃至t308において、sin関数における上に凸の波形が構成されている。また、駆動信号Vout13は、図27の3段目で示されるように、駆動信号Vout11に対して180度位相がずれた時刻t303乃至t305において、sin関数における上に凸の波形が構成されている。また、駆動信号Vout14は、図27の4段目で示されるように、駆動信号Vout11に対して270度位相がずれた時刻t304乃至t306において、sin関数における上に凸の波形が構成されている。
より詳細には、例えば、図28で示されるように、高周波信号であるカウント値KHの上限値を32カウントとし、128カウント目で上限値に達するように設定した場合、カウント値K1が0乃至48付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の6分周として選択し、カウント値K1が48乃至88付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の5分周として選択し、カウント値K1が88乃至104付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の4分周として選択し、カウント値K1が104乃至115付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の3分周として選択し、カウント値K1が115乃至124付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の2分周として選択し、カウント値K1が124乃至128付近までの範囲において、分周部214より供給されるクロック信号のうち最高速のクロック信号f0の1分周として選択することにより、カウント値KHの波形をarcsin関数の擬似曲線にすることができる。また、この擬似曲線により構成される高周波信号であるカウント値KHにより、駆動信号Vout11の平均電流値は、図29で示されるように、理想的なsin関数として変化させることが可能となる。
尚、図28においては、点線がarcsin関数による理論値であり、実線が上述した条件により求められる擬似曲線である。また、図29においては、点線が擬似曲線により求められるデューティの変化を示す波形であり、実線が理論的なsin関数で表現した場合の波形を示している。
また、ステッピングモータM1,M2の回転速度の設定は、上述した回転速度設定カウンタ242のリミット値を制御することにより、駆動信号Vout1乃至Vout4の擬似的なsin波形の幅を調整することにより実現することができる。
すなわち、リミット値が小さいと回転速度設定カウンタ242により発生されるクロック信号K0の間隔が短くなり、リミット値が大きくなると間隔が広くなる。例えば、リミット値をAとするクロック信号K0が、図30の上段で示されるような場合、リミット値を2Aとするクロック信号K0’は、図30の下段で示されるように、パルス幅が略2倍の波形となる。
図30で示されるようにリミット値を変化させると、図31の2段目と5段目とで示されるように、駆動信号Vout11とVout11’についても同様の関係となる。さらに、位相のずれについては、同様であるので、例えば、第1相波と第2相波とのずれは、図31の2段目、および3段目で示されるように、90度遅れとなり、図31の5段目、6段目も同様に90度遅れで、位相差は等しく、同期のみ倍となる。
結果として、リミット値に比例して回転速度を自由に設定しつつも、ステッピングモータM1,M2の回転の各ステップにおける駆動波形をsin関数の上に凸となる波形を維持することが可能となる。
尚、以上においては、高周波信号のカウント値KHを擬似的にarcsin関数状に変化させることにより、駆動信号の平均電流値をsin関数状に変化させる例について説明してきたが、高周波信号のカウント値KHを直線状に変化させ、低周波信号のカウント値K1乃至K4を擬似的にsin関数状に変化させることで、駆動信号の平均電流値をsin関数状に変化させるようにしてもよい。
また、以上においては、高周波信号のカウント値KHを発生させる高周波アップダウンカウンタ213を出力制御部215−1,215−2において共用して使用する例について説明してきたが、出力制御部215−1,215−2においてそれぞれ設けるようにしても良い。ただし、共用化する事により、同一の高周波カウント値KHを使用することができるので、出力制御部215−1,215−2における動作を高い精度で同期させることが可能となる。
以上の処理により、ステッピングモータの回転におけるコイルへの駆動電流を各ステップ単位で開始タイミングからsin関数状に滑らかに上昇させ、終了タイミングに向けてsin関数状に滑らかに下降するように制御することが可能となるため、ステッピングモータの回転をステップ単位で滑らかなものとすることが可能となり、さらに、ステッピングモータの回転を安定化させ、回転音として発生するノイズを低減させることが可能となる。
ところで、上述した一連の監視処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図32は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。