(58)【調査した分野】(Int.Cl.,DB名)
請求項1において、前記周辺モジュールは、外部に接続される装置を駆動するためのパルス幅変調された制御信号を生成可能に構成され、前記パラメータは前記パルス幅変調のデューティを規定するための値であり、
前記通信インターフェースは、前記ネットワークを経由して前記通信インターフェースに入力される、前記パラメータを前記現状値から前記更新値に更新すべき補正時刻を、前記第2レジスタに書き込み可能に構成され、
前記パラメータ更新プログラムは、前記補正時刻において前記パラメータが採るべき値を、前記更新値として算出するためのプログラムである、マイコン。
請求項2において、前記通信インターフェースは、1個以上のデータを保持可能で、保持されるデータを入力された順序と同じ順序で出力する第1バッファを備え、前記補正時刻を前記第1バッファに書き込み、前記第1レジスタに保持される値と前記第2レジスタに保持される値を比較して一致したときに、前記第1バッファの出力を前記第2レジスタに書き込み可能に構成される、マイコン。
請求項5において、前記PWM生成回路は、3相の前記制御信号を生成可能に構成され、前記周辺モジュールは、前記3相の前記制御信号毎に挿入される可変遅延回路と、前記可変遅延回路に遅延量を供給する位相調整回路と、前記位相調整回路に位相調整用パラメータを供給する位相レジスタをさらに備える、マイコン。
請求項7において、前記周辺モジュールは、外部に接続される複数の装置を制御するため、それぞれパルス幅変調された複数組の制御信号を生成可能に構成され、前記パラメータは前記複数組の制御信号のそれぞれに対応する前記パルス幅変調のデューティを表す複数組の値であり、
前記通信インターフェースは、前記複数組の制御信号のそれぞれに対応する複数の前記第2レジスタを備え、前記ネットワークを経由して前記通信インターフェースに入力される、前記複数組の制御信号のそれぞれに対応する前記起動時刻を、前記複数の第2レジスタのそれぞれに書き込み可能に構成され、
前記比較回路は、前記第1レジスタに保持される値と前記複数の第2レジスタに保持される値を比較して一致したときに、前記周辺モジュールに対して前記複数組の制御信号のそれぞれに対応する複数の周辺モジュール割り込みを発行可能に構成され、
前記周辺モジュールは、前記複数組の制御信号のそれぞれに対応する複数の前記第3レジスタと前記第4レジスタとを備え、前記複数組の制御信号のそれぞれに対応する前記現状値に基づいて前記複数組の制御信号を生成可能に構成され、
前記周辺モジュールは、前記複数の周辺モジュール割り込みにより、対応する前記第4レジスタに格納される値を対応する前記第3レジスタに転送可能に構成される、マイコン。
【背景技術】
【0002】
AC (Alternative Current)サーボ、汎用インバータ、PLC (Programmable Logic Controller)等の同期制御を必要とする産業機器では、産業用モータに特定の時間に特定の指令を出し、制御することが必要である。産業機器に搭載されているマイコンがインバータにより産業用モータを制御する指令はパルス幅変調(PWM: Pulse Width Modulation)された制御信号である。パルス幅は、High期間とLow期間の割合を%単位で表したデューティで表される。複数の産業機器を同時に稼働させて一連の工程を実施する場合には、それぞれの産業機器に搭載されているマイコンが、それぞれの産業用モータなどを制御する。特定の時系列で一連の指令を整合性良く出すためには、その複数の産業機器が時刻を合わせること(以下、時刻同期)が必要である。
【0003】
産業機器間の時刻同期に要求される同期精度は、急速に厳しくなる傾向にあり、1μs以下の高い精度が要求される場合もある。産業機器間の時刻同期には、シリアル通信を応用した通信や独自の通信を使用していたが、近年、Ethernet(登録商標)に同期機能を付加した同期Ethernet通信(以下、同期Ether)の使用が増加している。特に、同期EtherにはIEEE1588規格を応用したEthernet/IPやProfinet、リングまたはデイジーチェーン(数珠つなぎ)型のネットワークを基本とするEtherCATがある。時刻の同期精度は、厳しくなる傾向にあり、IEEE1588規格に準拠した同期Etherでは、1μs以下の高い精度を持つものもある。
【0004】
特許文献1には、それぞれにnsオーダーの計時機能を持つ時計を備えた複数のユニットを連結して構成される産業用コントローラにおいて、複数のユニットのうち1つをマスタ、他をスレーブとして、スレーブ側の時間軸を徐々にマスタ側の時間軸に近づけるように、調整する調整手段を備えた産業用コントローラが開示されている。
【0005】
特許文献2には、互いにネットワーク接続された複数のコントローラの間で、タイミング調整をせずに連携動作のためにコントローラ間で処理プログラムの実行を同期させることができる技術が開示されている。コントローラ毎に予めプログラムしているタイムテーブルによって、連携動作を行わせる。各コントローラは、絶対時刻を計時している時計モジュールと、それらの同期を取るための時計同期手段を備えている。プログラムの実行開始のきっかけとなるイベントが発生すると、コントローラはそのイベントの発生時刻からなるトリガを他のコントローラに同報発信(一斉送信)する。トリガを受信したコントローラは、所定の遅延時間を加えた遅延トリガを発生させ、遅延トリガを起点として一連の処理プログラムを開始する。
【0006】
特許文献3には、ネットワークに接続されたコントローラと複数のデバイスとの間で、時刻同期の精度を保つ技術が開示されている。マスタはマスタグローバルタイマを備え、各デバイスはスレーブグローバルタイマと動作周期タイマを備える。マスタはマスタグローバルタイマの示すグローバル時刻をタイムスタンプに付加したパケットを送出し、これを受信した各スレーブは、タイムスタンプが示す周期制御の同期タイミングとスレーブグローバルタイマが示す時間差を用いて、動作周期タイマを周期制御に同期させる補正を行う。
【0007】
特許文献4には、刻々と変化するネットワーク負荷状況に合わせた同期動作を可能とし、同期ずれを起こさないモーションコントロールシステムが開示されている。マスタは通信遅れを監視し、同期動作時に現在の時刻に遅延時間を加算した時刻でスレーブに動作開始を指令する。
【0008】
特許文献5には、通信制御装置とアクチュエータを有して制御対象を操作する複数の制御装置が、ネットワークを介して接続され、各制御装置が同期して動作することのできる通信制御システムが開示されている。実施例2には、IEEE1588の時刻同期プロトコルによって、時刻同期を行う通信制御システムが示されている。通信制御装置は、通信制御システム全体が時刻を同期させた後、各制御装置から通信遅延を取得し、各制御装置への制御指令送信の際に、通信遅延を調整する。
【0009】
特許文献6には、受信中の画像データを他の画像情報機器からのものに切り替える、データ伝送装置が開示されている。画像情報機器は、ネットワークから受信した時刻情報と同期した現在時刻を生成するクロック処理部を備え、システムコントローラからネットワークを介して受信した指定時刻と一致したときに、受信データを切り替える。これにより、切り替え要求が切り替えを許す画像フレーム(Iフレーム)と次のIフレームの中間で入力された場合であっても、Iフレームと同期して切り替えを実行させることができる。
【発明を実施するための形態】
【0021】
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0022】
〔1〕<イベントレジスタと時刻レジスタの比較>
図1-3
マイコン(1)は、CPU(2)と、所定のパラメータに基づいて外部機器を制御する周辺モジュール(4)と、ネットワーク(92)を介して他の装置(91)と通信可能な通信インターフェース(3、7)とを備える。
【0023】
前記通信インターフェースは、第1レジスタ(11)と、第2レジスタ(12)と、比較回路(14)を備える。前記第1レジスタは、前記ネットワークを介する通信に基づいて前記他の装置と同期を保たれる時刻を保持する。前記比較回路は、前記第1レジスタに保持される値と前記第2レジスタに保持される値を比較して一致したときに、前記CPUに対してCPU割り込み(INT_C)を発行し、前記周辺モジュールに対して周辺モジュール割り込み(INT_T)を発行する。
【0024】
前記周辺モジュールは、前記パラメータの現状値を保持する第3レジスタ(21)と、前記パラメータの更新値を保持する第4レジスタ(22)とを備え、前記現状値に基づいて前記外部機器を制御する制御信号(32)を生成可能に構成される。
【0025】
前記CPUは、前記CPU割り込みにより、前記パラメータの前記更新値の算出を開始し、前記更新値を前記第4レジスタに書き込むための、パラメータ更新プログラムを実行可能である。
【0026】
前記周辺モジュールは、前記周辺モジュール割り込みにより、前記第4レジスタに格納される値を前記第3レジスタに転送可能に構成される。
【0027】
これにより、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されることなく、パラメータの補正時刻について、高精度の同期性と遅延時間を保証することができる。
【0028】
〔2〕<PWM制御>
項1において、前記周辺モジュールは、外部に接続される装置(93)を駆動するためのパルス幅変調された制御信号を生成可能に構成される。前記パラメータは前記パルス幅変調のデューティを指定するための値である。前記通信インターフェースは、前記ネットワークを経由して前記通信インターフェースに入力される、前記パラメータを前記現状値から前記更新値に更新すべき補正時刻(tevent)を、前記第2レジスタに書き込み可能に構成される。前記パラメータ更新プログラムは、前記補正時刻において前記パラメータが採るべき値を、前記更新値として算出するためのプログラムである。
【0029】
これにより、外部に接続される装置(93)を、高精度な時刻同期で動作させることができる。
【0030】
〔3〕<イベントバッファ>(実施例1)
図4-10
項2において、前記通信インターフェースは、1個以上のデータを保持可能で、保持されるデータを入力された順序と同じ順序で出力する第1バッファ(13)を備える。前記補正時刻を前記第1バッファに書き込み、前記第1レジスタに保持される値と前記第2レジスタに保持される値を比較して一致したときに、前記第1バッファの出力を前記第2レジスタに書き込み可能に構成される。
【0031】
これにより、CPU(2)から通信インターフェース(3)に補正時刻を書き込むタイミングの制限を緩和することができる。
【0032】
〔4〕<割り込み選択回路>
項2において、前記周辺モジュール割り込みは、割り込み選択回路(9)を介して、前記周辺モジュールに接続される。
【0033】
これにより、周辺モジュール割り込みの対象となる、周辺モジュールを切り替えることができ、マイコンの汎用性を高めることができる。
【0034】
〔5〕<PWM生成回路>
項2において、前記周辺モジュール割り込みは、前記周辺モジュールに直接接続される。
【0035】
前記周辺モジュールは、PWM生成回路(20_3)と、前記第4レジスタ(22_3)を含み、1個以上のデータを保持可能で、保持されるデータを入力された順序と同じ順序で出力する第2バッファ(17)を備える。前記PWM生成回路は、前記第3レジスタ(21_3)に保持される前記現状値に基づいてパルス幅変調された前記制御信号を生成可能に構成され、前記周辺モジュール割り込みが入力されたときに、前記第2バッファから出力される値を前記第3レジスタに転送可能に構成される。
【0036】
これにより、CPU(2)から周辺モジュール(4_3)にパラメータを書き込むタイミングの制限を緩和することができる。
【0037】
〔6〕<位相調整回路>
項5において、前記PWM生成回路は、3相の前記制御信号を生成可能に構成され、前記周辺モジュールは、前記3相の前記制御信号毎に挿入される可変遅延回路(30_U,30_V,30_W)と、前記可変遅延回路に遅延量を供給する位相調整回路(29)と、前記位相調整回路に位相調整用パラメータを供給する位相レジスタ(18)をさらに備える。
【0038】
これにより、位相調整が必要な、モータ等の外部機器の同期制御を行うことができる。
【0039】
〔7〕<起動時における同期>
項1において、前記周辺モジュールは、外部に接続される装置(93)を制御するためのパルス幅変調された制御信号を生成可能に構成される。前記パラメータは前記パルス幅変調のデューティを表す値である。
【0040】
前記通信インターフェースは、前記ネットワークを経由して前記通信インターフェースに入力される、起動時刻(tstart)と、前記パラメータを前記現状値から前記更新値に更新すべき補正時刻(tevent)を、前記第2レジスタに書き込み可能に構成される。
【0041】
前記パラメータ更新プログラムは、前記起動時刻において前記パラメータの初期値を前記第3レジスタに書き込み、前記起動時刻における前記CPU割り込みに対応して、前記周辺モジュール割り込みを許可し、以降の前記CPU割り込みを禁止するステップを含む。
【0042】
これにより、起動時刻においても、高精度の同期性と遅延時間を保証することができる。
【0043】
〔8〕<複数の装置の制御>
項7において、前記周辺モジュールは、外部に接続される複数の装置(93_1、93_2)を制御するため、それぞれパルス幅変調された複数組の制御信号を生成可能に構成される。前記パラメータは前記複数組の制御信号のそれぞれに対応する前記パルス幅変調のデューティを表す複数組の値である。
【0044】
前記通信インターフェースは、前記複数組の制御信号のそれぞれに対応する複数の前記第2レジスタを備え、前記ネットワークを経由して前記通信インターフェースに入力される、前記複数組の制御信号のそれぞれに対応する、前記起動時刻と前記補正時刻を、前記複数の第2レジスタのそれぞれに書き込み可能に構成される。
【0045】
前記比較回路は、前記第1レジスタに保持される値と前記複数の第2レジスタ(12_1、12_2)に保持される値を比較して一致したときに、前記周辺モジュールに対して前記複数組の制御信号のそれぞれに対応する複数の周辺モジュール割り込み(INT_T1,INT_T2)を発行可能に構成される。
【0046】
前記周辺モジュールは、前記複数組の制御信号のそれぞれに対応する複数の前記第3レジスタと前記第4レジスタとを備え、前記複数組の制御信号のそれぞれに対応する前記現状値に基づいて前記複数組の制御信号を生成可能に構成される。
【0047】
前記周辺モジュールは、前記複数の周辺モジュール割り込みにより、対応する前記第4レジスタに格納される値を対応する前記第3レジスタに転送可能に構成される。
【0048】
これにより、複数の外部機器の制御パラメータの補正時刻を、独立に供給することができ、より高精度且つ汎用性の高い同期制御を行うことができる。
【0049】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0050】
〔実施形態1〕
図1は、実施形態1に係るマイコンの構成を表すブロック図である。マイコン1は、CPU2と、所定のパラメータに基づいて外部機器を制御する周辺モジュール4と、ネットワーク92を介して他の装置91と通信可能な通信インターフェース3と、メモリ5を備え、互いがバス6を介して接続されている。マイコン1は、例えば公知の設計技術、製造技術により、単一基板上に形成される集積回路(LSI: Large Scale Integrated circuit)として構成することができる。
【0051】
通信インターフェース3は、同期通信部10と、時刻レジスタ11と、イベントレジスタ12と、比較回路14を備える。ネットワーク92に接続される端子31には、同期通信部10との間に接続される物理インターフェース7を備える。ネットワーク92の物理層の仕様を満たす回路であり、ネットワーク92がEthernetであれば、Ether回路7を備える。時刻レジスタ11は、ネットワーク92を介する通信に基づいて他の装置と同期を保たれるローカル時刻を計時する。所定の精度を持つクロック信号で駆動されるカウンタで構成され、ネットワーク92を介して同期通信部10が受信する、マスタの時刻を基準に較正される。
図2は、時刻同期を行う複数の装置のネットワーク構成例である。マスタ90とスレーブ91_1、スレーブ91_2からスレーブ91_Nが、ネットワーク92を介して互いに接続されている。ネットワーク92は、
図2では一例としてデイジーチェーンとしたが、ハブを経由するスター型の構成を採っても良く、さらに有線か無線かを問わず、どのような形態であっても良い。マスタ90とスレーブ91_1〜91_Nは、それぞれ時刻を保持する計時手段を持ち、スレーブ91_1〜91_Nは、マスタ90の時刻Aに対して、それぞれの計時手段に保持する時刻を同期させる。必ずしも等しい値である必要はなく、所定のオフセットを持たせても良い。各機器間での時刻の差異には各機器が固有に持っていたオフセット時刻とネットワークの伝播遅延があるが、例えば、IEEE1588規格ではマスタ90の時刻AにN台のスレーブ機器(91_1〜91_N)の時刻(時刻B1、時刻B2、…時刻BN)をEthernetのフレーム通信により合わせることができる。
【0052】
イベントレジスタは、外部機器を制御するパラメータを更新すべき時刻(補正時刻)を保持する。補正時刻は、ネットワーク92を介してマイコン1に順次入力され、CPU2は補正時刻を通信インターフェース3の同期通信部10を介して受信し、順次、イベントレジスタ12に書き込む。書き込んだ補正時刻が未だ経過していないときに、さらに新たな補正時刻を受信したときは、例えば、メモリ5に格納するなどにより保持する。
【0053】
比較回路14は、時刻レジスタ11に保持される値(ローカル時刻)とイベントレジスタ12に保持される値(補正時刻)を比較して一致したときに、CPU2に対してCPU割り込みINT_Cを発行し、周辺モジュール4に対して周辺モジュール割り込みINT_Tを発行する。CPU割り込みINT_Cと周辺モジュール割り込みINT_Tとは同時でも良いし、時間差があってもよい。
【0054】
周辺モジュール4は、外部機器制御信号生成部20と、外部機器を制御するパラメータの現状値を保持するコンペアレジスタ21と、パラメータの更新値を保持するバッファレジスタ22とを備える。外部機器制御信号生成部20は、コンペアレジスタ21に保持される現状値に基づいて外部機器を制御する制御信号32を生成する。制御信号32は、ポート8を介して出力される。例えば、外部機器がACモータのとき、制御信号32はPWM信号であり、パラメータはそのデューティを決める値とすることができる。ポート8は、LSIの端子を駆動または端子から入力される信号を内部に取り込むための回路であり、周知の回路・デバイス技術を用いて構成される。駆動回路、入力回路、レベル変換回路、プルアップ回路、静電破壊からの保護回路または保護素子、その他、入出力切替回路、端子機能切替回路などを含んで構成されうる。
【0055】
CPU2は、例えばメモリ5に格納されるプログラムを実行することができるプロセッサで、パラメータ更新プログラムを実行することができる。パラメータ更新プログラムは、CPU割り込みINT_Cが入力されると、パラメータの更新値の算出を開始し、算出された更新値をバッファレジスタ22に書き込む。一方、周辺モジュール4は、前記周辺モジュール割り込みINT_Tが入力されると、バッファレジスタ22に格納される値をコンペアレジスタ21に転送する転送回路23を備える。
【0056】
メモリ5は、RAM(Random Access Memory)、ROM(Read Only Memory)、またはその組み合わせであり、CPU2で実行されるプログラムやデータを記憶することができる。バス6はCPU2とメモリ5と他の構成要素を接続する手段の一例として例示したもので、他の構成を採っても良い。例えば、外部バスインターフェースを追加して他のメモリを外付けしても良いし、キャッシュメモリやメモリ管理ユニットを内蔵しても良い。
【0057】
図3は、実施形態1に係るマイコンの動作を表すタイミングチャートである。時刻レジスタ11の値は、ハッチングで図示されるが刻々と計時されるローカル時刻tclockである。さらに、マスタと同期制御されることにより、ネットワーク92に接続される複数の機器はそれぞれローカル時刻を保持しており、例えばIEEE1588規格に準拠すれば、このローカル時刻はnsオーダーの高精度でマスタの管理する時刻に同期されている。外部機器を制御するパラメータを更新すべき補正時刻tevent(0), tevent(1), tevent(2), …が、ネットワーク92を介してマイコン1に順次入力される。CPU2は、最初の補正時刻tevent(0)をイベントレジスタ12に書き込み、合せてその補正時刻に更新すべきパラメータの更新値p(0)を、バッファレジスタ22に書き込んでおく。時刻t1において、時刻レジスタ11に保持されるローカル時刻tclockが、イベントレジスタ12に保持される補正時刻tevent(0)と一致すると、CPU2に対してCPU割り込みINT_Cが発行され、周辺モジュール4に対して周辺モジュール割り込みINT_Tが発行される。周辺モジュール4では、周辺モジュール割り込みINT_Tが入力されると、バッファレジスタ22に格納されている最初の更新値p(0)が、転送回路23によってコンペアレジスタ21に転送される。外部機器制御信号生成部20は、更新値p(0)で規定されるデューティduty(p(0))の制御信号32を生成する。周辺モジュール割り込みINT_Tが発行されてから、上記一連の動作によって更新値p(0)で規定されるデューティduty(p(0))の制御信号32が生成されるまでの遅延は、数サイクルに抑えることができ、且つ遅延のサイクル数は一定にすることができる。ソフトウェアが介在する必要がなく、全てハードウェアで設計することができるからである。外部機器制御信号生成部20が生成、出力する信号は、デューティ可変の信号を例に採って説明したが、これに制限されない。コンペアレジスタ21から与えられるパラメータによって制御される如何なる制御信号でもよい。例えば、パラメータによって振幅が変動する高周波信号や、周波数が変動する交流信号でもよい。パラメータが1個の場合を例に採ったが、これに限られず、複数個であってもよい。
【0058】
CPU2は、時刻t1にCPU割り込みINT_Cが入力されると、時刻t2に次の更新値p(1)の計算を開始する。このとき、CPU割り込みINT_Cが入力されてから、割り込み処理であるパラメータの更新値の計算が開始されるまでには、ある程度の遅延(オーバーヘッド)が生じる。CPU割り込みINT_Cが入力されると、CPU2は割り込み要因を判定し、ベクタテーブルを参照して判定された割り込み要因に対応する割り込み処理の分岐先アドレスを得る。合わせて、実行中の処理を中断するため、汎用レジスタなどの退避処理を行った後に、ベクタテーブルによって指定される分岐先アドレスに分岐することによって、割り込み処理を開始する。このように、割り込み信号の入力から割り込み処理の開始までは、ある程度の遅延が生じる。また、このCPU割り込みに伴うオーバーヘッドは、退避すべきデータの量や、バストラフィックによっても変動する。
【0059】
割り込み処理において、CPU2はパラメータ更新プログラムを実行し、パラメータの次の更新値p(1)を算出する。合わせて、CPU2は、例えば時刻t3において、イベントレジスタ12に次の補正時刻tevent(1)を書き込む。最初のCPU割り込みにより、CPU2は最初の補正時刻tevent(0)を既に経過したことを検知することができるので、その割り込みによって起動される割り込み処理ルーチンの中で、次の補正時刻tevent(1)のイベントレジスタ12への書き込みを行えば良い。これにより、既に書き込んだ補正時刻に至る以前に、次の補正時刻を上書きしてしまうおそれを解消することができる。次の更新値p(1)の算出が時刻t4で完了すると、その値をバッファレジスタ22に書き込む。これも、割り込み処理ルーチンの中で行われるので、その前の更新値p(0)がコンペアレジスタ21に転送される前で、バッファレジスタ22の保持されているときに、その値を上書きしてしまうおそれは解消されている。
【0060】
その後、時刻t5においてローカル時刻tclockが補正時刻tevent(1)と一致すると、周辺モジュール割り込みINT_Tが発行されることにより、更新値p(1)がバッファレジスタ22からコンペアレジスタ21に転送され、時刻t5から制御信号32のデューティが更新値p(1)で規定される値duty(p(1))に変更される。同じく時刻t5においてCPU割り込みINT_Cも発生し、これによって割り込み処理が開始され、時刻t6から次の更新値p(2)の計算が開始され、計算が完了する時刻t8にバッファレジスタ22に書き込まれる。また、同じ割り込み処理ルーチンの中で、時刻t7において次の補正時刻tevent(2)がイベントレジスタ12に書き込まれる。
【0061】
以上のように、更新値p(1)の計算が開始される時刻t2は、CPU割り込みに伴うオーバーヘッドによって変動し、さらにまた更新値p(1)の計算が完了する時刻t4も変動する可能性があるが、更新値p(1)が出力である制御信号32のデューティに反映される時刻は、ローカル時刻tclockが指定された補正時刻tevent(1)と一致した時刻t5である。複数のスレーブ装置91_1〜91_Nに同じ補正時刻tevent(1)が設定されたとき、時刻t2とt4は、スレーブ装置91_1〜91_N毎のCPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されて変動する。一方、パラメータが更新値p(1)に更新される時刻t5は、ローカル時刻tclockの同期精度と同程度の高精度で同期する。ローカル時刻tclockは複数の装置間で高精度に同期されており、時刻t5はローカル時刻tclockが指定された補正時刻tevent(1)と一致した時刻であるから、同じ補正時刻tevent(1)が設定された装置間では、ローカル時刻tclockの同期精度と同程度の高精度で同期するからである。
【0062】
これにより、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されることなく、パラメータの補正時刻について、高精度の同期性と遅延時間を保証することができる。
【0063】
なお、本実施形態およびこれ以降にいうところの同じ時刻、或いは時刻の一致などの表現は、厳密な一致を意味するものではなく、パイプラインなどハードウェア構成上の数サイクルの誤差を含む。
【0064】
〔実施形態2〕
図4は、実施形態2に係るマイコンの構成を表すブロック図である。マイコン1に含まれる通信インターフェース3は、実施形態1に示した通信インターフェース3に対してさらに、イベントバッファ13を備える。イベントバッファ13は、複数のレジスタ15_1、15_2を含んで構成され、バス6から書き込まれた補正時刻を、書き込まれた順序で、イベントレジスタ12に転送する。イベントバッファ13は例えばFIFO(First In First Out)として動作するシフトレジスタで構成することができる。時刻レジスタ11の値とイベントレジスタ12の値が一致したときに、イベントバッファ13に格納される最も古い値を、イベントレジスタ12に転送し、FIFOで構成したときは、以後の値を順次シフトする。イベントバッファ13を設けることにより、CPU2は、受信した補正時刻tevent(0), tevent(1), tevent(2), …を順次、イベントバッファ13に書き込むことができる。イベントバッファ13を設けない場合には、ローカル時刻tclcokが補正時刻tevent(0)に至る以前に、次の補正時刻tevent(1)をイベントレジスタ12に書き込むと、補正時刻tevent(0)におけるパラメータの更新が、欠落することとなる。また、次の補正時刻tevent(1)をイベントレジスタ12に書き込む時刻がtevent(1)以降になると、補正時刻tevent(1)におけるパラメータの更新が、欠落することとなる。そこで、補正時刻tevent(1)をイベントレジスタ12に書き込むタイミングは、制限される。例えば、ローカル時刻tclcokが補正時刻tevent(0)に一致したときに発生するCPU割り込みINT_Cの割り込み処理ルーチンにおいて、次の補正時刻tevent(1)をイベントレジスタ12に設定すればよい。この場合には、受信した補正時刻tevent(0), tevent(1), tevent(2), …は、メモリ5に格納しておく。本実施形態に示したように、イベントバッファ13を設けることにより、CPU2から通信インターフェース3に補正時刻を書き込むタイミングの制限を緩和することができ、また、CPU割り込みINT_Cの割り込み処理ルーチンの負荷を軽減することができる。
【0065】
マイコン1は、外部機器制御信号生成部20としてPWM制御された制御信号を生成するタイマをそれぞれ含む、2個の周辺モジュール4_1と4_2を備える。2個の周辺モジュール4_1と4_2のそれぞれは、ポート8_1とポート8_2を介して、PWM制御信号を端子32_1と32_2に出力する。タイマの構成及びPWM制御信号の生成動作については、後述する。マイコン1は、割り込み選択回路9をさらに備える。割り込み選択回路9は、入力される周辺モジュール割り込みINT_Tを、周辺モジュール4_1と4_2、または図示されない種々の周辺モジュールに選択的に接続可能な選択回路を備えて構成される。本実施形態では、周辺モジュール4_1と4_2への接続が選択されている。割り込み選択回路9を設けることにより、周辺モジュール割り込みの対象となる、周辺モジュールを切り替えることができ、マイコンの汎用性を高めることができる。
【0066】
マイコン1は、さらにエンコーダ信号入力部19を備える。エンコーダ信号入力部19は、図示を省略したポート8_3を介して、外部機器の動作を監視するエンコーダ信号が入力され、バス6を介してCPU2からアクセスされる。
【0067】
図5は、マイコンと外部機器との接続例を表すブロック図である。マイコン1には、インバータ94_1と94_2をそれぞれ介して、2個のACモータ93_1と93_2が接続されている。ACモータ93_1を駆動する3相の信号Iu_1,Iv_1,Iw_1は、インバータ94_1によって、3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNから生成される。他方ACモータ93_2を駆動する3相の信号Iu_2,Iv_2,Iw_2も同様に、インバータ94_2によって3相相補PWM制御信号TU2_UP,TU2_UN,TU2_VP,TU2_VN,TU2_WP,TU2_WNから生成される。2個のACモータ93_1と93_2にはそれぞれ、位置検出器として機能するエンコーダ95_1と95_2が備えられており、ACモータ93_1と93_2の位置を検出したエンコーダ信号は、マイコン1のエンコーダ信号入力部19に、ポート8_3を経由して入力される。
【0068】
図6は、実施形態2に係るタイマの構成例を表すブロック図である。コンペアレジスタ21、バッファレジスタ22と転送回路23も合わせて示す。3相相補のPWM制御信号のそれぞれに対応するため、コンペアレジスタ21は、レジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)を含み、バッファレジスタ22は、レジスタTBRA(22_A)、TBRB(22_B),TBRC(22_C)を含む。転送回路23は、周辺モジュール割り込みの一例であるタイマ割り込みINT_Tが入力されると、バッファレジスタTBRA(22_A)の値を、コンペアレジスタTCRA(21_A)に、TBRB(22_B)の値をTCRB(21_B)に、TBRC(22_C)の値をTCRC(21_C)に、それぞれ転送する。
【0069】
周辺モジュール4の一例であるタイマモジュール4_1と4_2のそれぞれは、カウンタ24_1と24_2、デッドタイムレジスタTDDR25、比較器27_1と27_2、及び出力制御部28を含んで構成される。タイマモジュール4_1と4_2は同一の構成であっても、異なる構成であっても良い。マイコンの周辺モジュールとしてのタイマは、一般に汎用性を備えているので、ここに示す構成例は、汎用タイマの設定例としても位置付けられる。カウンタ24_1と24_2は、レジスタTCNT1とTCNT2を備え、インクリメント/デクリメント可変のカウンタであり、さらに詳細な回路構成の図示を省略しているが、バス6を経由してCPU2によってリードライトすることができ、周辺モジュール割り込みであるタイマ割り込みにより、インクリメントとデクリメントを反転されることができるように構成される。
【0070】
比較回路27_1は、カウンタ24_1、24_2のレジスタTCNT1、TCNT2の値と、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値とを比較し、6通りの組合せのそれぞれの一致信号を、出力制御部28に出力する。比較回路27_2は、カウンタ24_1、24_2のレジスタTCNT1、TCNT2の値と、デッドタイムレジスタTDDR(25)の値とを比較し、2通りの組合せの一致信号を、出力制御部28に出力する。
【0071】
出力制御部28は、入力された一致信号に基づいて、3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNを生成して出力する。
【0072】
図7は、実施形態2に係るタイマの動作例を表すタイミングチャートである。横軸に時間をとり、縦軸には、上から、タイマ割り込みINT_T、カウンタ24_1、24_2のレジスタTCNT1、TCNT2の値をアナログ的に表したTCNT、及び、3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNの波形を示す。比較回路27_1は、タイマカウンタTCNT1、TCNT2とコンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)のコンペアマッチでデューティを生成する。
【0073】
時刻t0の最初のタイマ割り込みから時刻t7の次のタイマ割り込みまでの期間、カウンタ24_1、24_2は、デッドタイムレジスタTDDR(25)に設定される値のオフセットをもって、アップカウンタとして動作する。時刻t7のタイマ割り込みにより、インクリメントからデクリメントに変更され、ダウンカウンタとして動作する。以降、タイマ割り込みの度にインクリメントとデクリメントの加算方向を逆転させる。
【0074】
時刻t0における最初のタイマ割り込みで、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)にそれぞれ、初期値TthA1,TthB1,TthC1が設定される。
図7には設定される値の例を、TCNT軸上にアナログ的に示す。時刻t1でTCNT1がコンペアレジスタTCRC(21_C)と一致すると、その結果を比較回路27_1が出力制御部28に出力し、出力制御部28は3相相補PWM制御信号のうち、TU1_WNをロウレベルからハイレベルに反転させる。以後、時刻t2でTCNT1=TthB1の一致によりTU1_VNを反転させ、時刻t3でTCNT2=TthC1の一致によりTU1_WPを反転させ、時刻t4でTCNT1=TthA1の一致によりTU1_UNを反転させ、時刻t5でTCNT2=TthB1の一致によりTU1_VPを反転させ、時刻t6でTCNT2=TthA1の一致によりTU1_UPを反転させる。時刻t7での次のタイマ割り込みでは、上述のように、インクリメントとデクリメントの加算方向を逆転させる。その後、時刻t8でTCNT2=TthA1の一致によりTU1_UPを再び反転させ、時刻t9でTCNT2=TthB1の一致によりTU1_VPを再び反転させる。また、時刻t10でTCNT1=TthA1の一致によりTU1_UNを再び反転させ、時刻t11でTCNT2=TthC1の一致によりTU1_WPを再び反転させ、時刻t12でTCNT1=TthB1の一致によりTU1_VNを再び反転させる。
【0075】
時刻t13での次のタイマ割り込みでは、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値を、それぞれ更新値TthA2,TthB2,TthC2に更新される。これは、タイマ割り込みINT_Tにより転送回路23が、バッファレジスタTBRA(22_A)の値を、コンペアレジスタTCRA(21_A)に、TBRB(22_B)の値をTCRB(21_B)に、TBRC(22_C)の値をTCRC(21_C)に、それぞれ転送することによって行う。バッファレジスタTBRA(22_A)、TBRB(22_B)、TBRC(22_C)には、予めCPU2から更新値TthA2,TthB2,TthC2が書き込まれている。その後、時刻t14から時刻t26までの期間において、時刻t1〜時刻t13までの期間と同様の動作を繰り返す。コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値が更新された結果、出力される3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNのデューティが変更される。
【0076】
CPU2が、更新値TthA2,TthB2,TthC2を算出する時刻、及びそれらを書き込む時刻は、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間に影響されて変動する。しかし、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値がそれぞれ更新値TthA2,TthB2,TthC2に更新される時刻は、時刻t13でのタイマ割り込みに同期している。時刻t13でのタイマ割り込みは、複数のスレーブ装置間で同期されたローカル時刻tclockによって発生するので、タイマ割り込みの発生時刻も、複数のスレーブ装置間で高精度に同期している。よって、複数のスレーブ装置間でコンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値が更新される時刻も、高精度に同期させることができる。
【0077】
以上、タイマモジュール4_1を使って一方のACモータ93_1を制御する方法について説明したが、タイマモジュール4_2を使って他方のACモータ93_2を制御する方法も同様であるので、説明を省略する。2個のACモータ93_1と93_2は、ともに他のスレーブ装置によって制御されるACモータその他の外部機器と高精度に同期して制御される。
【0078】
これにより、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されることなく、パラメータの補正時刻について、高精度の同期性と遅延時間を保証することができる。また、これにより、外部に接続される装置(モータ)を、高精度な時刻同期で動作させることができる。
【0079】
次に、マイコンで3相相補PWM出力によりモータを制御する場合の初期設定動作について説明する。
図8は、実施形態2に係るマイコンのリセットルーチンの一例を示すフローチャートである。
【0080】
マイコン起動後即ちリセットが入力された後、まず、タイマモジュール4_1と4_2と通信インターフェース3をモジュールスタンバイ状態から解除する(S1)。
【0081】
次に、タイマモジュール4_1の初期設定をする(S2)。タイマカウンタTCNT1にデッドタイム、タイマカウンタTCNT2に0を設定する。バッファレジスタTBRA(22_A)、TBRB(22_B),TBRC(22_C)に、それぞれU相、V相、W相のデューティを規定するためのパラメータTthA,TthB,TthCを設定する。コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)にも同じパラメータTthA,TthB,TthCを設定し、デッドタイムレジスタTDDRにはデッドタイム設定する。リセットルーチンでは初期値としてCPU2が直接コンペアレジスタ21とデッドタイムレジスタ25の値を設定するが、以降はCPU2による更新の必要はない。タイマモジュール4_1が汎用タイマモジュールである場合には、バッファレジスタTBRA(22_A)、TBRB(22_B),TBRC(22_C)に、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)をそれぞれ対応付ける設定を行う。また、TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNの出力をイネーブルにする設定を行う。
【0082】
以上のタイマモジュール4_1の初期設定を終えると、通信インターフェース3からのタイマ割り込みによるタイマモジュール4_1のパラメータ転送を許可する(S3)。通信インターフェース3からのCPU割り込みの優先度を有効なレベルに設定する(S4)。3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNが接続されるポート8_1を出力に設定する(S5)。タイマカウンタTCNT1,TCNT2のカウント動作を開始する(S6)。通信インターフェース3からのCPU割り込みINT_Cを待つ(S7)。
【0083】
次に、マイコンのCPU割り込みルーチンとタイマ割り込みに対する処理について説明する。上記の初期設定動作後、CPU割り込みINT_Cとタイマ割り込みINT_Tを待つ。CPU割り込みINT_Cが発生するとCPU2がCPU割り込みルーチンを実行し、タイマモジュール4_1が所定の処理を実行する。
【0084】
図9は、実施形態2に係るマイコンのCPU割り込みルーチンの一例を示すフローチャートである。通信インターフェース3からのCPU割り込みINT_Cが発生すると、CPU2は通信インターフェース3からの割り込みフラグをクリアする(S11)。CPU2はACモータ93_1からエンコーダ信号の入力があるか判定する(S12)。エンコーダ信号の入力がある場合、CPU2はエンコーダ信号入力部19からエンコーダ信号を取り込む(S13)。CPU2は、パラメータ更新プログラムにおいて、U相、V相、W相の更新すべきデューティの計算を行い、対応するパラメータTthA,TthB,TthCを算出する。(S14)。S13でエンコーダ信号を取り込んだ場合は、その値もデューティ計算時のパラメータに加える。S14で計算したパラメータTthA,TthB,TthCをタイマモジュール4_1のバッファレジスタTBRA(22_A)、TBRB(22_B),TBRC(22_C)に設定することで、次に更新されるべきデューティの値が設定される(S15)。
【0085】
図10は、実施形態2に係るマイコンのタイマ割り込みに対する処理の一例を示すフローチャートである。通信インターフェース3からのタイマ割り込みINT_Tが発生すると、タイマモジュール4_1のバッファレジスタTBRA(22_A)、TBRB(22_B),TBRC(22_C)に設定されているパラメータTthA,TthB,TthCが、コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)にそれぞれ転送される(S16)。コンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値が更新された結果、出力される3相相補PWM制御信号TU1_UP,TU1_UN,TU1_VP,TU1_VN,TU1_WP,TU1_WNのデューティが変更される。
【0086】
CPU割り込みINT_Cが発生した後、CPU2が
図9を参照して説明したCPU割り込みルーチンによって更新値TthA2,TthB2,TthC2を算出する時刻、及びそれらを書き込む時刻は、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間に影響されて変動する。一方、タイマ割り込みINT_Tが発生した後、タイマモジュール4_1がコンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値をそれぞれ更新する時刻は、タイマ割り込みINT_Tから数クロックサイクル以内の一定の遅延を経た時刻であり、タイマ割り込みINT_Tに高精度に同期している。タイマ割り込みINT_Tの発生時刻は、複数のスレーブ装置間で高精度に同期している。よって、複数のスレーブ装置間でコンペアレジスタTCRA(21_A)、TCRB(21_B),TCRC(21_C)の値が更新される時刻も、高精度に同期させることができる。
【0087】
以上、タイマモジュール4_1を使って一方のACモータ93_1を制御する方法について説明したが、タイマモジュール4_2を使って他方のACモータ93_2を制御する方法も同様であるので、説明を省略する。2個のACモータ93_1と93_2は、ともに他のスレーブ装置によって制御されるACモータその他の外部機器と高精度に同期して制御される。
【0088】
これにより、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されることなく、パラメータの補正時刻について、高精度の同期性と遅延時間を保証することができる。また、これにより、外部に接続される装置(モータ)を、高精度な時刻同期で動作させることができる。
【0089】
〔実施形態3〕
図11は、実施形態3に係るマイコンの構成を表すブロック図である。実施形態3に係るマイコンは、実施形態2に係るマイコンが、2個の周辺モジュール4としてタイマモジュール4_1と4_2を備えるのに対し、1個のACモータを駆動する制御信号を生成するために、PWM信号生成部20_3を含む1個の周辺モジュール4_3を備える。PWM信号生成部20_3は、タイマ20_1、20_2とは異なり、直接デューティ値を与えることにより、PWM制御された制御信号を生成し、ポート8を介してマイコン1の端子32から出力する。CPU2,通信インターフェース3、メモリ5及びエンコーダ19の構成は、実施形態2に係るマイコンと同様であるが、通信インターフェース3から出力される周辺モジュール割り込みINT_Tは、割り込み選択回路9を介すことなく、直接、周辺モジュール4_3に入力される。
【0090】
周辺モジュール4_3は、PWM生成回路20_3とデューティバッファ17とデューティレジスタ21_3と転送回路23_3を備える。デューティバッファ17は、複数のレジスタ22_3、15_3、…を含み、例えばFIFOとして動作するシフトレジスタで構成され、CPU2によりバス6から書き込まれたデューティ値を、書き込まれた順序で転送し出力する。周辺モジュール割り込みINT_Tにより、転送回路23_3は、デューティバッファ17の最終段のレジスタ22_3から、デューティ値をデューティレジスタ21_3に転送し、デューティバッファ17は、保持するデューティ値を順次シフトする。デューティバッファ17の最終段のレジスタ22_3は、実施形態1及び2におけるバッファレジスタ22に対応する。PWM信号生成部20_3は、デューティレジスタ21_3に保持されているデューティ値に応じたデューティの制御信号を生成する。
【0091】
デューティバッファ17を設けたことにより、CPU2から周辺モジュール4_3にデューティ値を書き込むタイミングの制限を緩和することができる。
【0092】
次に、マイコンの初期設定動作について説明する。
図12は、実施形態3に係るマイコンのリセットルーチンの一例を示すフローチャートである。
【0093】
マイコン起動後即ちリセットが入力された後、まず、周辺モジュール4_3と通信インターフェース3をモジュールスタンバイ状態から解除する(S21)。次に、デューティレジスタ21_3の初期設定をする(S22)。
図11には1系統のみのデューティレジスタ21_3を図示したが、U相、V相、W相の3系統、3個のデューティレジスタ21_3を備える。S22では、それぞれに適切な初期値を与える。さらにデューティバッファ17に、U相、V相、W相のデューティ更新値を設定する(S23)。PWM生成回路20_3に3相相補PWM生成に必要なデッドタイム等のパラメータを設定する(S24)。次に、タイマ割り込み毎にPWMのデューティを更新するように、タイマ割り込みの初期設定を行い(S25)、ポート8をU相、V相、W相の出力に設定して(S26)、タイマ割り込みを待つ(S27)。
【0094】
図13は、実施形態3に係るマイコンのCPU割り込みルーチンの一例を示すフローチャートである。通信インターフェース3からのCPU割り込みINT_Cが発生すると、CPU2は通信インターフェース3からの割り込みフラグをクリアする(S31)。CPU2はエンコーダ入力部19からエンコーダ信号の入力があるか判定する(S32)。エンコーダ信号の入力がある場合、エンコーダ入力部19からエンコーダ信号を取り込む(S33)。次に、デューティの計算をする(S34)。S33でエンコーダ信号を取り込んだ場合は、その値もデューティ計算時のパラメータに加える。S34で計算したデューティをデューティバッファ17に設定することでデューティを更新する(S35)。
【0095】
図14は、実施形態3に係るマイコンのタイマ割り込みに対する処理の一例を示すフローチャートである。通信インターフェース3のタイマ割り込みINT_Tが発生すると、転送回路23_3によってデューティバッファ17に設定済みのデューティがデューティレジスタ20_3に転送される。
【0096】
これにより、CPU割り込みに伴うオーバーヘッドとパラメータ更新プログラムの実行時間の変動に影響されることなく、パラメータの補正時刻について、高精度の同期性と遅延時間を保証することができる。また、これにより、外部に接続される装置(モータ)を、高精度な時刻同期で動作させることができる。さらに、CPU2から周辺モジュール4_3にデューティ値を書き込むタイミングの制限を緩和することができる。
【0097】
〔実施形態4〕
図15は、実施形態4に係るマイコンの構成を表すブロック図である。実施形態4に係るマイコンは、
図11に示した実施形態3に係るマイコンに対して、さらに、PWM信号生成部20_3の後段に、U相、V相、W相の出力にそれぞれ可変遅延回路30_U,30_V,30_Wと、それを制御する位相調整回路29と、位相調整回路29にU相、V相、W相の位相を供給する位相レジスタ18を備える。
【0098】
図16は、実施形態4に係るマイコンのリセットルーチンの一例を示すフローチャートである。S41〜S46は、
図12に示したS21〜S26と同じであるので、説明を省略する。S46の次に、位相レジスタの設定を行う(S47)。可変遅延回路30_U,30_V,30_Wにそれぞれ遅延量、δ(0)、δ(1)、δ(2)を設定する。全ての初期設定が終わったら、タイマ割り込みINT_Tを待つ(S48)。なお、初期設定動作後、通信インターフェース3からのCPU割り込み、及びタイマ割り込み発生後の対応動作は、
図13と
図14に示した実施例3とそれぞれ同様なので説明を省略する。
【0099】
PWM信号生成部20_3から出力されたU相、V相、W相の制御信号に、それぞれ独立に遅延を与えることによって、U相、V相、W相の相互の位相関係を設定することができる。これにより、位相調整が必要な、モータ等の外部機器の同期制御を行うことができる。
【0100】
一方、PWM信号生成部20_3が、1系統のみのPWM制御信号を生成するように構成し、可変遅延回路30_U,30_V,30_Wによって、互いに基本的に120°ずつの位相差を持つように設定することにより、デューティバッファ17と転送回路23_3とデューティレジスタ21_3を1系統のみに抑えることができる。
【0101】
〔実施形態5〕
図17は、実施形態5に係るマイコンの構成を表すブロック図である。
図4に示した実施形態2に係るマイコンを簡略化し、産業用モータの制御補正でなく、産業用モータの起動のみに応用した例を示す。また、複数モータを同時に起動するとし、1台目のモータはタイマモジュール4_1、2台目のモータはタイマモジュール4_2で制御する。通信インターフェース3は、同期通信部10、時刻レジスタ11、比較回路14の他に、2個のイベントレジスタ12_1と12_2を備え、例えばIEEE1588規格に準拠する同期Etherのプロトコル処理を実行する。比較回路14は、時刻レジスタ11に格納されるローカル時刻と、イベントレジスタ12_1と12_2に格納される時刻とを比較して、いずれかと一致するとCPU割り込みINT_Cを発行し、イベントレジスタ12_1と12_2と一致するとそれぞれタイマ割り込みINT_T1とINT_T2を発行する。タイマ割り込みINT_T1とINT_T2は、割り込み選択回路9により、それぞれタイマモジュール4_1と4_2に供給されるように選択されている。CPU2、メモリ5、バス6、Ether回路7、タイマモジュール4_1と4_2の構成、ポート8_1と8_2、及び、エンコーダ信号入力部19は、
図4に示した実施形態2に係るマイコンと同様である。
【0102】
複数の産業機器間で同期Etherにより時刻同期したシステムで、特定の決められた起動時刻(tstart(0), tstart(1))で産業用モータを起動する実施形態について説明する。起動時刻(tstart(0), tstart(1))は同期通信部10経由で外部からEther通信により取得してメモリ5に格納するか、または、あらかじめメモリ5に書き込んでおく。CPU2は、モータ制御に適した演算性能を重視したCPUコアで、角速度、トルク、位相等の制御パラメータをエンコーダ経由で取り込みデューティの補正計算を行い、タイマモジュール4_1と4_2に所定のデューティを出力するためのパラメータを設定する。CPU2は、また、取得した起動時刻tstart(0), tstart(1)を、起動すべきモータに対応付けて、イベントレジスタ12_1と12_2に格納する。例えば、起動時刻tstart(0)に1台目のモータを起動し、起動時刻tstart(1)に2台目のモータを起動させる場合には、1台目のモータに対応するイベントレジスタ12_1に起動時刻tstart(0)を、2台目のモータに対応するイベントレジスタ12_2に起動時刻tstart(1)をそれぞれ書き込む。比較回路14はイベントレジスタ12_1と12_2の起動時刻と時刻レジスタ11のローカル時刻を比較し、互いに一致した場合、CPU割り込みINT_Cとタイマ割り込みINT_T1とINT_T2を発生する。タイマ割り込みINT_T1とINT_T2のそれぞれは、割り込み選択回路9によってタイマモジュール4_1と4_2に接続されている。タイマモジュール4_1と4_2入力されたパラメータで規定されるデューティの制御信号を生成するタイマモジュールである。生成された制御信号は、ポート8_1と8_2を経て、外部機器のインバータへ入力され、インバータによってモータが駆動される。モータを駆動する信号は、例えば、一般に産業用モータで使用される、3相の正相と逆相からなる3相相補PWM信号である。それぞれのモータの角速度や位置情報は、エンコーダ信号として、エンコーダ信号入力部19から取り込まれる。
【0103】
マイコンで3相相補PWM出力によりモータを制御する場合の初期設定動作について説明する。
図18は、実施形態5に係るマイコンのリセットルーチンの一例を示すフローチャートである。
【0104】
マイコン起動後即ちリセットが入力された後、まず、タイマモジュール4_1と4_2と通信インターフェース3をモジュールスタンバイ状態から解除する(S41)。タイマモジュール4_1の初期設定として、デューティを規定するパラメータの初期設定、デッドタイム設定、波形出力設定等を行い(S42)、タイマモジュール4_2に対しても同様に初期設定として、デューティを規定するパラメータの初期設定、デッドタイム設定、波形出力設定等を行う(S43)。イベントレジスタ12_1にタイマモジュール4_1の起動時刻tstart(0)を設定し、イベントレジスタ12_2にタイマモジュール4_2の起動時刻tstart(1)を設定する(S44)。割り込み選択回路9によって、通信インターフェース3からのタイマ割り込みINT_T1とINT_T2を、タイマモジュール4_1と4_2にそれぞれ接続し許可する(S45)。通信インターフェース3からのCPU割り込みの優先度を有効なレベルに設定する(S46)。タイマモジュール4_1と4_2から出力される3相相補PWM制御信号が接続される、ポート8_1と8_2を出力に設定する(S47)。通信インターフェース3からのCPU割り込みINT_Cを待つ(S48)。
【0105】
次に、マイコンのCPU割り込みルーチンとタイマ割り込みに対する処理について説明する。上記の初期設定動作後、CPU割り込みINT_Cとタイマ割り込みINT_T1とINT_T2を待つ。CPU割り込みINT_Cが発生するとCPU2がCPU割り込みルーチンを実行し、タイマ割り込みINT_T1とINT_T2が発生すると、タイマモジュール4_1と4_2がそれぞれ所定の処理を実行する。
図19は、実施形態5に係るマイコンのCPU割り込みルーチン及びタイマ割り込みに対する処理の一例を示すフローチャートである。通信インターフェース3からのCPU割り込みINT_Cが発生すると、CPU2は割り込み要因を判定する(S51)。S51で割り込み要因がイベントレジスタ12_2に対応する割り込みであれば、イベントレジスタ12_2に対応する割り込みを禁止し(S52)、イベントレジスタ12_2に対応する割り込みフラグをクリアする(S53)。さらに、タイマモジュール4_2のコンペアマッチ割り込みを許可し、デューティの補正を可能にする(S54)。S51で割り込み要因がイベントレジスタ12_1に対応する割り込みであれば、イベントレジスタ12_1に対応する割り込みを禁止し(S55)、イベントレジスタ12_1に対応する割り込みフラグをクリアする(S56)。さらに、タイマモジュール4_1のコンペアマッチ割り込みを許可し、デューティの補正を可能にする(S57)。
【0106】
通信インターフェース3からのイベントレジスタ12_1に対応するタイマ割り込みINT_T1が発生すると、タイマモジュール4_1のタイマが起動され、(S58)、通信インターフェース3からのイベントレジスタ12_2に対応するタイマ割り込みINT_T2が発生すると、タイマモジュール4_2のタイマが起動される(S59)。
【0107】
図20は、実施形態5に係るマイコンのコンペアマッチ割り込みルーチン及びカウンタのカウント方向切り替えに対する処理の一例を示すフローチャートである。タイマモジュール4_1からのコンペアマッチ割り込みが発生すると、CPU2はタイマモジュール4_1のコンペアマッチ割り込みフラグをクリアする(S61)。CPU2はエンコーダ信号の入力があるか判定し(S62)、エンコーダ信号の入力がある場合、エンコーダ信号入力部19からエンコーダ信号を取り込む(S63)。次にCPU2は、デューティの計算をする(S64)。S63でエンコーダ信号を取り込んだ場合は、その値もデューティ計算時のパラメータに加える。計算したデューティを出力するためのパラメータを、タイマモジュール4_1のバッファレジスタ22_1に設定することでデューティを更新する(S65)。タイマモジュール4_1のカウンタ(タイマ)20_1のカウント方向が(アップカウントからダウンカウント、または、ダウンカウントからアップカウント)切り替わると、タイマモジュール4_1のバッファレジスタに設定済みのデューティを規定するパラメータが、転送制御部23_1によってタイマモジュール4_1のコンペアレジスタ21_1に転送される。タイマモジュール4_2からのコンペアマッチ割り込みが発生すると、CPU2はタイマモジュール4_2のコンペアマッチ割り込みフラグをクリアする(S67)。CPU2はエンコーダ信号の入力があるか判定し(S68)、エンコーダ信号の入力がある場合、エンコーダ信号入力部19からエンコーダ信号を取り込む(S69)。次にCPU2は、デューティの計算をする(S70)。S63でエンコーダ信号を取り込んだ場合は、その値もデューティ計算時のパラメータに加える。計算したデューティを出力するためのパラメータを、タイマモジュール4_2のバッファレジスタ22_2に設定することでデューティを更新する(S71)。タイマモジュール4_2のカウンタ(タイマ)20_2のカウント方向が(アップカウントからダウンカウント、または、ダウンカウントからアップカウント)切り替わると、タイマモジュール4_2のバッファレジスタに設定済みのデューティを規定するパラメータが、転送制御部23_2によってタイマモジュール4_2のコンペアレジスタ21_2に転送される(S72)。
【0108】
これにより、複数の外部機器の起動と制御パラメータの補正時刻を、独立に供給することができ、より高精度且つ汎用性の高い同期制御を行うことができる。
【0109】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0110】
例えば、CPU2とメモリ5及びバス6からなるマイコンの基本部分は、如何なるアーキテクチャのプロセッサであってもよい。CPU2はマルチプロセッサを含むいかなるプロセッサでも良く、バス6を階層化して、キャッシュメモリやメモリ管理ユニットを備えても良く、メモリ5はオンチップまたは外付けのROM、RAMまたはその組み合わせであっても良い。