JP2016218864A - プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 - Google Patents
プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 Download PDFInfo
- Publication number
- JP2016218864A JP2016218864A JP2015104859A JP2015104859A JP2016218864A JP 2016218864 A JP2016218864 A JP 2016218864A JP 2015104859 A JP2015104859 A JP 2015104859A JP 2015104859 A JP2015104859 A JP 2015104859A JP 2016218864 A JP2016218864 A JP 2016218864A
- Authority
- JP
- Japan
- Prior art keywords
- watchdog
- reset
- processor
- key
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
【課題】ウォッチドッグ・リセットを利用した簡易な方法で、プロセッサを意図的なタイミングでリセットすることが可能なプロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイコンを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械を提供する。
【解決手段】DSP21bのROM102に格納された第1ユーザプログラム1020は、CPU101によって実行され、切替コマンドの入力に応じて、WDR通知値を、RAM103のWDR通知値書き込み領域103aに書き込み、その後、WDキー書き込み領域105aに異常値を示すウォッチドッグキーKY1及びKY2を書き込むことで、ウォッチドッグモジュール105のリセット動作を発動し、CPU101を意図的にリセットする。
【選択図】 図2
【解決手段】DSP21bのROM102に格納された第1ユーザプログラム1020は、CPU101によって実行され、切替コマンドの入力に応じて、WDR通知値を、RAM103のWDR通知値書き込み領域103aに書き込み、その後、WDキー書き込み領域105aに異常値を示すウォッチドッグキーKY1及びKY2を書き込むことで、ウォッチドッグモジュール105のリセット動作を発動し、CPU101を意図的にリセットする。
【選択図】 図2
Description
本発明は、プロセッサで実行される複数の割り込み処理を停止する技術に関する。
従来、ウォッチドッグタイマを利用して、マイクロコントローラ(以下、「マイコン」と称す)の異常を監視する技術として、例えば、特許文献1及び2に開示された技術がある。
特許文献1の技術では、マイコンの備えるプロセッサからの定期的なリセット信号に応じてウォッチドッグタイマをリセットしている。そして、リセット信号が受信されずにタイムアウトになった場合にプロセッサを停止したり、故障警報を出力したりしている。
特許文献1の技術では、マイコンの備えるプロセッサからの定期的なリセット信号に応じてウォッチドッグタイマをリセットしている。そして、リセット信号が受信されずにタイムアウトになった場合にプロセッサを停止したり、故障警報を出力したりしている。
また、特許文献2の技術では、プロセッサが定期的にレジスタにウォッチドッグキーを書き込み、ウォッチドッグモジュールは、書き込まれたウォッチドッグキーが正常値である場合にウォッチドッグタイマをリセットする。一方、異常値である場合や、書き込まれずにタイムアウトした場合にプロセッサをリセット(以下、「ウォッチドッグ・リセット」と記載する場合がある)している。ウォッチドッグ・リセットが行われると、割り込み処理を含めて全ての処理が停止させられプロセッサが初期化される。
ところで、一般にマイコンには製品固有のプログラムが実装され、マイコンの有するプロセッサにおいて、複雑に優先順位付けされた割り込み処理が実行されることで、その製品としての機能を果たしている。このような状況下において、一時的ないし長期的にプロセッサの演算処理能力を最大限に活用したい(即ち、割り込み処理を全て停止させたい)場合や、かかるマイコンによって構成されるシステムの初期化を行いたい場合が少なからず存在する。
本発明者らは、特に上記特許文献2の機能を有するマイコンに着目し、プログラムの実行中において、異常値を示すウォッチドッグキーを意図的にメモリ(レジスタ)に書き込むことで、プロセッサのリセットを意図的に発生させるというウォッチドッグ・リセットの新たな活用方法を見出した。
以上のことから、本発明は、ウォッチドッグ・リセットを利用した簡易な方法で、プロセッサを意図的に(例えば、プログラマ又はユーザの意図したタイミングで)リセットすることが可能なプロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイコンを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械を提供することを目的としている。
以上のことから、本発明は、ウォッチドッグ・リセットを利用した簡易な方法で、プロセッサを意図的に(例えば、プログラマ又はユーザの意図したタイミングで)リセットすることが可能なプロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイコンを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械を提供することを目的としている。
上記課題を解決するために、本発明の一態様に係るプロセッサのリセット方法は、ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールであって、該ウォッチドッグモジュールを備えた前記マイクロコントローラの前記プロセッサが、予め設定したリセットタイミングで、ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで前記ウォッチドッグモジュールに前記第2リセット動作を強制的に行わせることを要旨とする。
また、本発明の一態様に係るプロセッサのリセットプログラムは、ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールに、予め設定したリセットタイミングで、ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで、前記第2リセット動作を強制的に行わせる処理を前記プロセッサに実行させるためのプログラムを含むことを要旨とする。
また、本発明の一態様に係る電子制御装置は、上記プロセッサのリセットプログラムを備えたマイクロコントローラを備える。
また、本発明の一態様に係るモータ駆動システムは、上記電子制御装置を備える。
また、本発明の一態様に係る工作機械は、上記モータ駆動システムを備える。
また、本発明の一態様に係るモータ駆動システムは、上記電子制御装置を備える。
また、本発明の一態様に係る工作機械は、上記モータ駆動システムを備える。
本発明によれば、予め設定したリセットタイミング(例えば、予め設定したコマンドの入力タイミング)で、ウォッチドッグキーを間違った内容でウォッチドッグキー書き込み用メモリに書き込むことで、プロセッサを強制的にリセットすることが可能となる。これによって、例えば、マイコンの組み込まれたシステム等を、ソフトウェア上で簡易に初期化することが可能となる。
また、例えば、プログラムの実行中に、割り込み処理を一括で停止したい場合も、割り込み処理の停止ロジックを検討することなく、極めて少ないプログラム容量で、割り込み処理を確実に一括して停止することが可能となる。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
(第1実施形態)
(構成)
本発明の第1実施形態に係るモータ駆動システム10は、図1に示すように、モータ1と、ドライブユニット2と、端末3と、上位装置4とを含んで構成される。
モータ1は、一例として、モータコアにレゾルバの組み込まれたモータから構成されている。モータ1は、内部のレゾルバがレゾルバケーブル5及び第3コネクタCN3を介してドライブユニット2に接続され、モータ本体がモータケーブル6及び第4コネクタCN4を介してドライブユニット2に接続されている。
(構成)
本発明の第1実施形態に係るモータ駆動システム10は、図1に示すように、モータ1と、ドライブユニット2と、端末3と、上位装置4とを含んで構成される。
モータ1は、一例として、モータコアにレゾルバの組み込まれたモータから構成されている。モータ1は、内部のレゾルバがレゾルバケーブル5及び第3コネクタCN3を介してドライブユニット2に接続され、モータ本体がモータケーブル6及び第4コネクタCN4を介してドライブユニット2に接続されている。
ここで、モータ1は、例えば、高分解能の検出器を内蔵し高速高精度の位置決めが可能なダイレクトドライブモータ等を適用することができる。
ドライブユニット2は、図1に示すように、制御回路21と、パワーアンプ22と、第1〜第5コネクタCN1〜CN5とを含んで構成されている。ドライブユニット2は、上位装置4からの指令信号に基づきモータ1を駆動制御する。
ドライブユニット2は、図1に示すように、制御回路21と、パワーアンプ22と、第1〜第5コネクタCN1〜CN5とを含んで構成されている。ドライブユニット2は、上位装置4からの指令信号に基づきモータ1を駆動制御する。
端末3は、ハンディターミナルやパーソナルコンピュータ等の情報処理端末から構成され、一例として、RS232C規格に準拠したシリアルケーブル7及び第1コネクタCN1を介してドライブユニット2に接続されている。端末3は、制御回路21で実行されているユーザプログラムに対してコマンドの入力やユーザプログラムの転送等を行うものである。
上位装置4は、プログラマブルコントローラやモータコントローラ等の装置から構成されており、制御信号ケーブル8、パルス列入力ケーブル9及び第2コネクタCN2を介してドライブユニット2に接続されている。上位装置4は、制御信号ケーブル8を介してドライブユニット2へモータ回転指令などの制御信号を出力し、パルス列入力ケーブル9を介してドライブユニット2へパルス列を出力する。
また、制御回路21は、図1に示すように、制御基板21aと、制御基板21a上に実装された、デジタル信号処理に特化したマイコンであるDSP21bとを含んで構成されている。
DSP21bは、第2コネクタCN2及び制御信号ケーブル8を介して上位装置4との間で信号の入出力を行う。また、第3コネクタCN3及びレゾルバケーブル5を介して、モータ1のレゾルバとの間で信号の入出力を行い、第4コネクタCN4及びモータケーブル6を介してモータ1との間で信号の入出力を行う。
DSP21bは、第2コネクタCN2及び制御信号ケーブル8を介して上位装置4との間で信号の入出力を行う。また、第3コネクタCN3及びレゾルバケーブル5を介して、モータ1のレゾルバとの間で信号の入出力を行い、第4コネクタCN4及びモータケーブル6を介してモータ1との間で信号の入出力を行う。
DSP21bは、上位装置4からモータ回転指令が入力されると、レゾルバからの例えば3相のレゾルバ位置検出信号φABCを入力してこれに基づきモータ1の回転角度位置の検出を行う。加えて、この位置検出結果と上位装置4からのモータ回転指令とに応じて、モータ1を回転駆動させるためのモータ電流指令値を生成する。
パワーアンプ22は、第5コネクタCN5を介して制御回路21に接続され、第5コネクタCN5を介して制御回路21からのモータ電流指令値を受信し、受信したモータ電流指令値に応じたモータ駆動電流を生成する。そして、生成したモータ駆動電流を、第4コネクタCN4及びモータケーブル6を介してモータ1に供給する。
パワーアンプ22は、第5コネクタCN5を介して制御回路21に接続され、第5コネクタCN5を介して制御回路21からのモータ電流指令値を受信し、受信したモータ電流指令値に応じたモータ駆動電流を生成する。そして、生成したモータ駆動電流を、第4コネクタCN4及びモータケーブル6を介してモータ1に供給する。
次に、図2に基づき、DSP21bの詳細な構成を説明する。
DSP21bは、図2に示すように、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、I/Oモジュール104と、ウォッチドッグモジュール105と、メモリバス106と、ペリフェラルバス107とを含んで構成されている。
DSP21bは、図2に示すように、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、I/Oモジュール104と、ウォッチドッグモジュール105と、メモリバス106と、ペリフェラルバス107とを含んで構成されている。
ここで、DSP21bとして、例えば、Texas Instruments社のDSP(Digital Signal Processors)であるTMS320F2812を適用することができる。
CPU101は、電源が投入されるとROM102に格納されたブートプログラムを実行する。このブートプログラムは、DSP21bの複数の特定ピン(例えば4つのピン)の電圧状態に基づき、複数種類の動作モードのうちから起動する動作モードを決定する。CPU101は、動作モードを決定すると、ROM102から決定した動作モードに応じたプログラムをワークメモリであるRAM103に読み込む。そして、RAM103に読み込んだプログラムに記述された命令に従って所定の制御および演算処理を行うことで各動作モードに応じた各種機能をソフトウェア上で実現する。
CPU101は、電源が投入されるとROM102に格納されたブートプログラムを実行する。このブートプログラムは、DSP21bの複数の特定ピン(例えば4つのピン)の電圧状態に基づき、複数種類の動作モードのうちから起動する動作モードを決定する。CPU101は、動作モードを決定すると、ROM102から決定した動作モードに応じたプログラムをワークメモリであるRAM103に読み込む。そして、RAM103に読み込んだプログラムに記述された命令に従って所定の制御および演算処理を行うことで各動作モードに応じた各種機能をソフトウェア上で実現する。
ROM102は、一部のメモリ領域にプロテクトが施されており、このメモリ領域(以下、「プロテクト領域」と称す)に対して随時書き込みが出来ないようになっている一方、プロテクト領域以外の領域についてはデータの書き込み及び読み出しが随時可能となっている。また、ROM102は、マイコンメーカー専用のマスクROMエリアを有しており、このマスクROMエリアに対しては、ユーザ側が後から内容を書き込んだり書き換えたりすることができないようになっている。
なお、プロテクト領域は、起動する動作モードに応じて、ユーザ側がプログラム等のデータの書き込み及びデータの読み出しを行うことが可能な領域である。但し、第1実施形態では、プロテクト領域に格納されたデータの書き換えを行う際に、予め設定したパスワードの入力が必要となっている。
また、第1実施形態において、ROM102には、図3に示すように、通常動作モードに対応する第1ユーザプログラム1020が格納されている。他にも、ROM102には、第1ブートプログラム1021、動作モードの1つであるシリアル通信ポートを用いたプログラム書込モード(以下、「SCIブートモード」と称す)に対応する第1SCIブートプログラム1022、その他の動作モードに対応するプログラム1023等が格納されている。なお、第1ブートプログラム1021、第1SCIブートプログラム1022及びその他の動作モードに対応するプログラム1023(以下、「その他のプログラム1023」と称す)は、ROM102のマスクROMエリアに格納されている。
また、第1実施形態において、ROM102には、図3に示すように、通常動作モードに対応する第1ユーザプログラム1020が格納されている。他にも、ROM102には、第1ブートプログラム1021、動作モードの1つであるシリアル通信ポートを用いたプログラム書込モード(以下、「SCIブートモード」と称す)に対応する第1SCIブートプログラム1022、その他の動作モードに対応するプログラム1023等が格納されている。なお、第1ブートプログラム1021、第1SCIブートプログラム1022及びその他の動作モードに対応するプログラム1023(以下、「その他のプログラム1023」と称す)は、ROM102のマスクROMエリアに格納されている。
ここで、SCIブートモードは、シリアル通信ポートを介して端末3から、ROM102のプロテクト領域に格納されたプログラムを書き換えることができる動作モードである。
特に、第1実施形態の第1ユーザプログラム1020は、ROM102のプロテクト領域に格納されており、SCIブートモード以外のその他の動作モードのときに、シリアル通信ポートを介したプログラムの書き換えが出来ないようになっている。
特に、第1実施形態の第1ユーザプログラム1020は、ROM102のプロテクト領域に格納されており、SCIブートモード以外のその他の動作モードのときに、シリアル通信ポートを介したプログラムの書き換えが出来ないようになっている。
なお、通常動作モードは、電源投入時の複数の特定ピンの電圧状態がデフォルト状態のときに起動される動作モードである。通常動作モード以外の動作モードで起動する場合は、電源投入時の複数の特定ピンの電圧状態を各動作モードに対応した状態に変更する必要がある。
RAM103は、実行するプログラムやプログラムの実行に必要なデータを一時記憶するワークメモリである。
RAM103は、実行するプログラムやプログラムの実行に必要なデータを一時記憶するワークメモリである。
I/Oモジュール104は、モータ1、端末3及び上位装置4との間でデータの入出力を行うための各種入出力インターフェースモジュールを含んで構成されている。第1実施形態では、シリアル通信を行うためのインターフェースモジュールであるシリアル通信モジュール等を含んで構成される。即ち、このシリアル通信モジュール及び第1コネクタCN1によってシリアル通信ポートが構成される。
ここで、I/Oモジュール104に対応するDSP21bの各種入出力ピンのうち、端末3との間のデータ通信に用いる入出力ピンが第1コネクタCN1に接続されている。
また、DSP21bの各種入出力ピンのうち、上位装置4との間のデータ通信に用いる入出力ピンが第2コネクタCN2に接続され、モータ1のレゾルバとの通信に用いる入出力ピンが第3コネクタCN3と接続され、モータ本体との通信に用いる入出力ピンが第4コネクタCN4に接続されている。
また、DSP21bの各種入出力ピンのうち、上位装置4との間のデータ通信に用いる入出力ピンが第2コネクタCN2に接続され、モータ1のレゾルバとの通信に用いる入出力ピンが第3コネクタCN3と接続され、モータ本体との通信に用いる入出力ピンが第4コネクタCN4に接続されている。
ウォッチドッグモジュール105(以下、「WDM105」と称す)は、図示しないウォッチドッグカウンタ(ウォッチドッグタイマともいう)を有している。WDM105は、CPU101による第1リセット操作が行われたときにはウォッチドッグカウンタをリセットする。また、ウォッチドッグカウンタがその最大値を超えてタイムアウトしたときには、CPU101をリセットするためのリセット信号をCPU101に出力する。
ここで、CPU101による第1リセット操作は、予め設定されたキーコードからなる第1のウォッチドッグキー(ウォッチドッグタイマキー)KY1をレジスタなどで構成される所定のウォッチドッグキー書き込み領域105aに書き込む。その後、予め設定されたキーコードからなる第2のウォッチドッグキー(ウォッチドッグタイマキー)KY2をウォッチドッグキー書き込み領域105a(以下、「WDキー書き込み領域105a」と記載する場合がある)に書き込む操作である。
即ち、WDM105は、WDキー書き込み領域105aに、正常値である予め設定されたキーコードからなる第1のウォッチドッグキーKY1、正常値である予め設定されたキーコードからなる第2のウォッチドッグキーKY2がこの順に書き込まれたときに、第1リセット操作が行われたと判断し、ウォッチドッグカウンタをリセットする。以下、この正常値を示すWDキーの書き込みに応じたウォッチドッグカウンタのリセット動作を、「第1リセット動作」と記載する場合がある。
また、WDM105は、WDキー書き込み領域105aに第1のウォッチドッグキーKY1または第2のウォッチドッグキーKY2とは異なる、誤ったキーコード(異常値)が書き込まれたときには、即時に、CPU101をリセットするためのリセット信号をCPU101に出力する。
また、WDM105は、第1のウォッチドッグキーKY1、或いは、第2のウォッチドッグキーKY2が書き込まれたとしても、これらが、第1のウォッチドッグキーKY1および第2のウォッチドッグキーKY2の順に書き込まれない場合には、即時に、CPU101をリセットするためのリセット信号をCPU101に出力する。
また、WDM105は、第1のウォッチドッグキーKY1、或いは、第2のウォッチドッグキーKY2が書き込まれたとしても、これらが、第1のウォッチドッグキーKY1および第2のウォッチドッグキーKY2の順に書き込まれない場合には、即時に、CPU101をリセットするためのリセット信号をCPU101に出力する。
以下、WDキー書き込み領域105aへの異常値の書き込みや、書き込み順番の誤り等の間違った内容の書き込み動作に応じて行われる、WDM105のCPU101へのリセット信号の送信動作を、「第2リセット動作」と記載する場合がある。
メモリバス106は、CPU101と、ROM102及びRAM103との間のデータ転送を行うためのバスである。
ペリフェラルバス107は、CPU101と、I/Oモジュール104及びウォッチドッグモジュール105との間のデータ転送を行うためのバスである。
メモリバス106は、CPU101と、ROM102及びRAM103との間のデータ転送を行うためのバスである。
ペリフェラルバス107は、CPU101と、I/Oモジュール104及びウォッチドッグモジュール105との間のデータ転送を行うためのバスである。
(第1ユーザプログラム1020について)
第1実施形態の第1ユーザプログラム1020には、図3に示すように、第1ブートプログラム1021と同等の機能を有する第2ブートプログラム1020aと、第1SCIブートプログラム1022と同等の機能を有する第2SCIブートプログラム1020bとが組み込まれている。更に、第1実施形態の第1ユーザプログラム1020には、その他のプログラム1023に含まれる各動作モードに対応する他のブートプログラムのうち切替コマンドでサポートしているブートプログラム1020cが組み込まれている。ここで、第1実施形態では、サポート対象の各種動作モードに対応する切換コマンドが予め設定されている。サポートしているその他のブートプログラム1020cは、その他のプログラム1023に含まれる各対応するサポート対象のブートプログラムと同等の機能を有している。
第1実施形態の第1ユーザプログラム1020には、図3に示すように、第1ブートプログラム1021と同等の機能を有する第2ブートプログラム1020aと、第1SCIブートプログラム1022と同等の機能を有する第2SCIブートプログラム1020bとが組み込まれている。更に、第1実施形態の第1ユーザプログラム1020には、その他のプログラム1023に含まれる各動作モードに対応する他のブートプログラムのうち切替コマンドでサポートしているブートプログラム1020cが組み込まれている。ここで、第1実施形態では、サポート対象の各種動作モードに対応する切換コマンドが予め設定されている。サポートしているその他のブートプログラム1020cは、その他のプログラム1023に含まれる各対応するサポート対象のブートプログラムと同等の機能を有している。
そして、CPU101は、第1ユーザプログラム1020の実行中において、端末3を介した各種切替リセットタイミングで、組み込まれた第2ブートプログラム1020aを起動して、現在の動作モードを入力された切替コマンドの種類に対応する動作モードへと切り替える。即ち、第1ユーザプログラム1020に組み込まれたサポートしている各種ブートプログラムのうち、入力された切替コマンドの種類に対応するブートプログラムを起動する。このように、第1実施形態の第1ユーザプログラム1020は、マイコンの動作モードを切り替えるプログラムとしての機能を有している。
また、第1実施形態では、モータ1が停止状態(サーボオフ状態)でかつ他の処理が実行されていない状態のときに、端末3を介してコマンドの入力が可能となっている。特に、第1実施形態では、動作モードを切り替えるための各種切替コマンドの入力が可能となっており、DSP21bは、第1ユーザプログラム1020に記述された命令に従って、入力された切替コマンドの種類に応じたモード切替処理を実行するようになっている。
ここで、第1ユーザプログラム1020の適用対象のマイコン(例えば、上記TMS320F2812など)は、一般に、通常動作モードで起動した場合(ユーザプログラムが実行された場合)に他の動作モードに切り替えるためには、物理手段による電源の再投入及び特定ピンの電圧状態の変更が必要となる。
これに対して、第1実施形態の第1ユーザプログラム1020は、通常動作モードで起動した場合でも、物理手段による電源の再投入及び特定ピンの電圧状態の変更をすることなく、切替コマンドの入力によって、通常動作モードから任意の動作モードへとソフトウェアによって切り替える機能を有している。
これに対して、第1実施形態の第1ユーザプログラム1020は、通常動作モードで起動した場合でも、物理手段による電源の再投入及び特定ピンの電圧状態の変更をすることなく、切替コマンドの入力によって、通常動作モードから任意の動作モードへとソフトウェアによって切り替える機能を有している。
ここで、第1ユーザプログラム1020の適用対象のマイコンの中には、ユーザプログラム上から単にブートプログラムを起動しただけでは、ユーザプログラム実行時の割り込み処理等の影響で、動作モードの切り替えができないものがある(例えば、上記TMS320F2812など)。このようなマイコンで動作モードを切り替えるためには、電源投入時と同じ状態(全ての割り込み処理が停止した状態)を作り出した上でブートプログラムを起動する必要がある。そこで、第1実施形態の第1ユーザプログラム1020では、WDM105のウォッチドッグ・リセットを利用して、電源投入時と同じ状態を作り出している。具体的に、WDキー書き込み領域105aに、意図的に誤ったキー(異常値)を書き込むことで強制的にウォッチドッグ・リセットを発動させている。
ウォッチドッグ・リセットは、DSP21bへの電源供給を維持したまま行われるリセットであるため、RAM103に読み込まれた第1ユーザプログラム1020や、第1ユーザプログラム1020によってRAM103に書き込まれたメモリ情報はそのまま残る。従って、ウォッチドッグ・リセット後に、第1ユーザプログラム1020上から次の命令の実行が可能である。
また、電源投入時と同じ状態を作り出しても特定ピンの電圧状態が所望の動作モードに対応する状態となっていないと、第2ブートプログラム1020aによって再び通常動作モードが起動してしまう。そこで、第1実施形態の第1ユーザプログラム1020では、ウォッチドッグ・リセット後でかつ起動する動作モードの確定前に、第2ブートプログラム1020aが、起動する動作モードを決定する際に参照する特定ピンのステータス情報(特定ピンのhigh、Lowを示す値)を、入力された切替コマンドの種類に対応する情報へと書き換えるようにしている。そのため、第1実施形態では、ウォッチドッグ・リセット後に、入力された切替コマンドの種類を参照するために、入力された切替コマンドの種類を示す情報を予めRAM103等のメモリに記憶しておく。
第2ブートプログラム1020aは、第1ブートプログラム1021と同等の機能を有しているため、ステータス情報の書き換え後は、書き換えられたステータス情報で特定される動作モードを起動する。但し、第1実施形態の第2ブートプログラム1020aは、第1ユーザプログラム1020に組み込まれた、第2SCIブートプログラム1020b及びサポートしているその他のブートプログラム1020cのうちから書き換えられたステータス情報で特定される動作モードを起動するように構成されている。
このように各種ブートプログラムを第1ユーザプログラム1020に組み込むのは、第1ブートプログラム1021、第1SCIブートプログラム1022及びその他のプログラム1023が、マイコンメーカーが主導権を握るマスクROMエリアに書き込まれているためである。マスクROMエリアに書き込まれたプログラムは、メーカー側が予告無く変更する恐れがあり、マスクROMエリアから直接ブートプログラムを呼び出す構成とした場合に、変更が行われる度に第1ユーザプログラム1020を修正する必要がある。そこで、第1実施形態では、メーカー側の内容変更の影響を最小限に抑えるために、必要なブートプログラムを第1ユーザプログラム1020に組み込むようにしている。
(モード切替処理について)
次に、図4に基づき、CPU101の第1ユーザプログラム1020に基づく切替コマンドの入力に応じた動作処理の流れを説明する。
CPU101において、通常動作モードが起動して第1ユーザプログラム1020が実行されると、図4に示すように、まず、ステップS100に移行する。
ステップS100では、CPU101において、切替コマンドが入力されたか否かを判定する。そして、入力されたと判定した場合(Yes)は、切替コマンドの種類を示す情報をRAM103の所定領域に書き込んでからステップS102に移行し、そうでないと判定した場合(No)は、切替コマンドが入力されるまで判定処理を繰り返す。
次に、図4に基づき、CPU101の第1ユーザプログラム1020に基づく切替コマンドの入力に応じた動作処理の流れを説明する。
CPU101において、通常動作モードが起動して第1ユーザプログラム1020が実行されると、図4に示すように、まず、ステップS100に移行する。
ステップS100では、CPU101において、切替コマンドが入力されたか否かを判定する。そして、入力されたと判定した場合(Yes)は、切替コマンドの種類を示す情報をRAM103の所定領域に書き込んでからステップS102に移行し、そうでないと判定した場合(No)は、切替コマンドが入力されるまで判定処理を繰り返す。
ステップS102に移行した場合は、CPU101において、ウォッチドッグ・リセットであることを通知する値(以下、「WDR通知値」と称す)をRAM103のWDR通知値書き込み領域103aに書き込んで、ステップS104に移行する。
ステップS104では、CPU101において、ROM102への書き込み等、周辺素子の機能を停止して、ステップS106に移行する。
ステップS104では、CPU101において、ROM102への書き込み等、周辺素子の機能を停止して、ステップS106に移行する。
ステップS106では、CPU101において、WDキー書き込み領域105aに、第1のウォッチドッグキーKY1及び第2のウォッチドッグキーKY2として、異常値(誤った値のキー)を書き込む。これによって、WDM105に、ウォッチドッグ・リセットを実行させて、一連の処理を終了する。
次に、図5に基づき、CPU101の第1ユーザプログラム1020に基づくウォッチドッグ・リセットを実行後の動作処理の流れを説明する。
次に、図5に基づき、CPU101の第1ユーザプログラム1020に基づくウォッチドッグ・リセットを実行後の動作処理の流れを説明する。
WDM105においてウォッチドッグ・リセットが実行されて、CPU101がリセットされると、引き続きRAM103に読み込まれた状態の第1ユーザプログラム1020が実行され、図5に示すように、まず、ステップS200に移行する。
ステップS200では、CPU101において、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、実行されたウォッチドッグ・リセットが、切替コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、切替コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS202に移行し、そうでないと判定した場合(No)は、処理を終了する。
ステップS200では、CPU101において、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、実行されたウォッチドッグ・リセットが、切替コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、切替コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS202に移行し、そうでないと判定した場合(No)は、処理を終了する。
ステップS202に移行した場合は、CPU101において、ウォッチドッグ機能の設定プロテクトを解除すると共に、ウォッチドッグ・リセットの発動を禁止する設定を行う。その後、ウォッチドッグ機能の設定プロテクトを設定して、ステップS204に移行する。
即ち、ウォッチドッグ機能の設定変更ができるようにプロテクトを解除してから、ウォッチドッグ・リセットの発動を禁止する設定を行い、再びウォッチドッグ機能の設定変更ができないようにプロテクトを設定する。
即ち、ウォッチドッグ機能の設定変更ができるようにプロテクトを解除してから、ウォッチドッグ・リセットの発動を禁止する設定を行い、再びウォッチドッグ機能の設定変更ができないようにプロテクトを設定する。
ステップS204では、CPU101において、第1ユーザプログラム1020に組み込まれた第2ブートプログラム1020aを起動して、一連の処理を終了する。
次に、図6に基づき、CPU101の第2ブートプログラム1020aに基づく動作処理の流れを説明する。
CPU101において、第2ブートプログラム1020aが起動されると、図6に示すように、まず、ステップS300に移行する。
次に、図6に基づき、CPU101の第2ブートプログラム1020aに基づく動作処理の流れを説明する。
CPU101において、第2ブートプログラム1020aが起動されると、図6に示すように、まず、ステップS300に移行する。
ステップS300では、CPU101において、特定ピンのステータス情報を読み込んで、ステップS302に移行する。
ステップS302では、CPU101において、RAM103に記憶した入力された切替コマンドの種類を示す情報に基づき、特定ピンのステータス情報を、入力された切替コマンドの種類に対応する情報に書き換えて、ステップS304に移行する。
ステップS302では、CPU101において、RAM103に記憶した入力された切替コマンドの種類を示す情報に基づき、特定ピンのステータス情報を、入力された切替コマンドの種類に対応する情報に書き換えて、ステップS304に移行する。
ステップS304では、CPU101において、ステップS302で書き換えた特定ピンのステータス情報に応じた動作モードを起動して、一連の処理を終了する。
具体的に、CPU101は、第1ユーザプログラム1020に組み込まれた第2SCIブートプログラム1020b及びサポートしている他のブートプログラム1020cのうちから、書き換えたステータス情報で特定されるブートプログラムを起動する。
具体的に、CPU101は、第1ユーザプログラム1020に組み込まれた第2SCIブートプログラム1020b及びサポートしている他のブートプログラム1020cのうちから、書き換えたステータス情報で特定されるブートプログラムを起動する。
(動作)
次に、第1実施形態に係るモータ駆動システム10の具体的な動作例を説明する。
ドライブユニット2の電源が投入されると、DSP21bにおいて、ROM102に格納された第1ブートプログラム1021が実行される。このとき、外部回路(治具)等によって、特定ピンの電圧状態が変更されていなければ、デフォルトの通常動作モードが起動して、ROM102に格納された第1ユーザプログラム1020が実行される。
第1ユーザプログラム1020が実行されると、DSP21bにおいて、モータ1、端末3及び上位装置4からの信号の入力が受け付けられ、入力された信号に応じた処理が実行される。例えば、上位装置4からのモータ回転指令が入力されると、入力されたモータ回転指令に応じてモータ1を駆動制御する処理が実行される。
次に、第1実施形態に係るモータ駆動システム10の具体的な動作例を説明する。
ドライブユニット2の電源が投入されると、DSP21bにおいて、ROM102に格納された第1ブートプログラム1021が実行される。このとき、外部回路(治具)等によって、特定ピンの電圧状態が変更されていなければ、デフォルトの通常動作モードが起動して、ROM102に格納された第1ユーザプログラム1020が実行される。
第1ユーザプログラム1020が実行されると、DSP21bにおいて、モータ1、端末3及び上位装置4からの信号の入力が受け付けられ、入力された信号に応じた処理が実行される。例えば、上位装置4からのモータ回転指令が入力されると、入力されたモータ回転指令に応じてモータ1を駆動制御する処理が実行される。
一方、モータ1が停止した状態でかつ他の処理が実行されていない状態において、ユーザにより、端末3を介して、例えば、動作モードをSCIブートモードに切り替える切替コマンド(以下、「SCIブートコマンド」と称す)が入力されたとする(ステップS100のYes)。
SCIブートコマンドが入力されると、DSP21bのCPU101は、第1ユーザプログラム1020に従って、まず、SCIブートコマンドを示す情報をRAM103の所定領域に書き込み、続いて、WDR通知値をRAM103のWDR通知値書き込み領域103aに書き込む(ステップS102)。引き続き、CPU101は、周辺素子の機能を停止してから(ステップS104)、WDキー書き込み領域105aに、異常値を書き込み、ウォッチドッグ・リセットを強制的に発動する(ステップS106)。
SCIブートコマンドが入力されると、DSP21bのCPU101は、第1ユーザプログラム1020に従って、まず、SCIブートコマンドを示す情報をRAM103の所定領域に書き込み、続いて、WDR通知値をRAM103のWDR通知値書き込み領域103aに書き込む(ステップS102)。引き続き、CPU101は、周辺素子の機能を停止してから(ステップS104)、WDキー書き込み領域105aに、異常値を書き込み、ウォッチドッグ・リセットを強制的に発動する(ステップS106)。
即ち、WDM105は、WDキー書き込み領域105aに異常値が書き込まれたことに応じて、CPU101に対してリセット信号を出力する動作(第2リセット動作)を行う。これによって、CPU101がリセットされる。
ウォッチドッグ・リセット後に、CPU101は、RAM103に読み込まれている第1ユーザプログラム1020に従って、まず、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、ウォッチドッグ・リセットが、切替コマンドによるリセットか否かを判定する(ステップS200)。
ウォッチドッグ・リセット後に、CPU101は、RAM103に読み込まれている第1ユーザプログラム1020に従って、まず、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、ウォッチドッグ・リセットが、切替コマンドによるリセットか否かを判定する(ステップS200)。
ここでは、SCIブートコマンドの入力に応じたウォッチドッグ・リセットであるため(ステップS200のYes)、CPU101は、引き続きWDM105の動作を停止してから(ステップS202)、第2ブートプログラム1020aを起動する(ステップS204)。
CPU101は、第2ブートプログラム1020aを起動すると、起動した第2ブートプログラム1020aに従って、まず、特定ピンのステータス情報をRAM103の所定領域に読み込む。次に、RAM103の所定領域に書き込まれたSCIブートコマンドを示す情報に基づき、読み込んだ特定ピンのステータス情報を、第2SCIブートプログラム1020bを起動するステータス情報に強制的に書き換える(ステップS302)。
CPU101は、第2ブートプログラム1020aを起動すると、起動した第2ブートプログラム1020aに従って、まず、特定ピンのステータス情報をRAM103の所定領域に読み込む。次に、RAM103の所定領域に書き込まれたSCIブートコマンドを示す情報に基づき、読み込んだ特定ピンのステータス情報を、第2SCIブートプログラム1020bを起動するステータス情報に強制的に書き換える(ステップS302)。
これにより、CPU101は、第2ブートプログラム1020aに従って、起動する動作モードが、第2SCIブートプログラム1020bを起動するモード(即ち、SCIブートモード)であると認識して、第1ユーザプログラム1020に組み込まれた第2SCIブートプログラム1020bを起動する(ステップS304)。
以降は、起動した第2SCIブートプログラム1020bに従って、端末3を介して入力したユーザのパスワードが正しい場合に、ROM102のプロテクト領域のプロテクトが解除され、シリアル通信ポートを介した第1ユーザプログラム1020の書き換えが実行可能となる。この際、ウォッチドッグ・リセットによって、不要な割り込み処理が全て停止された状態で書き換えを行うことが可能となり、CPU101の演算処理能力を最大限に活用することが可能である。
以降は、起動した第2SCIブートプログラム1020bに従って、端末3を介して入力したユーザのパスワードが正しい場合に、ROM102のプロテクト領域のプロテクトが解除され、シリアル通信ポートを介した第1ユーザプログラム1020の書き換えが実行可能となる。この際、ウォッチドッグ・リセットによって、不要な割り込み処理が全て停止された状態で書き換えを行うことが可能となり、CPU101の演算処理能力を最大限に活用することが可能である。
ここで、第1実施形態において、DSP21bがマイクロコントローラに対応し、CPU101がプロセッサに対応し、第1ユーザプログラム1020がプロセッサのリセットプログラムに対応し、ドライブユニット2が電子制御装置に対応する。
また、第1実施形態において、WDキー書き込み領域105aがウォッチドッグキー書き込み用メモリに対応し、WDR通知値書き込み領域103aが識別情報書き込み用メモリに対応する。
また、第1実施形態において、WDキー書き込み領域105aがウォッチドッグキー書き込み用メモリに対応し、WDR通知値書き込み領域103aが識別情報書き込み用メモリに対応する。
(第1実施形態の作用及び効果)
(1)ウォッチドッグキーKY1及びKY2が正しい内容でWDキー書き込み領域105aに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーKY1及びKY2が間違った内容でWDキー書き込み領域105aに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で該マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュール105であって、該ウォッチドッグモジュール105を備えたDSP21bのCPU101が、予め設定したリセットタイミング(例えば、切替コマンドの入力タイミング)で、ウォッチドッグキーKY1及びKY2を間違った内容でWDキー書き込み領域105aに書き込むことでウォッチドッグモジュール105に第2リセット動作を強制的に行わせる。
(1)ウォッチドッグキーKY1及びKY2が正しい内容でWDキー書き込み領域105aに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーKY1及びKY2が間違った内容でWDキー書き込み領域105aに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で該マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュール105であって、該ウォッチドッグモジュール105を備えたDSP21bのCPU101が、予め設定したリセットタイミング(例えば、切替コマンドの入力タイミング)で、ウォッチドッグキーKY1及びKY2を間違った内容でWDキー書き込み領域105aに書き込むことでウォッチドッグモジュール105に第2リセット動作を強制的に行わせる。
この構成によって、予め設定したリセットタイミングで、マイコンのプロセッサを意図的にリセットすることが可能となる。
これにより、マイコンの組み込まれたシステム等を、例えば、切替コマンドの入力によるユーザの意図したタイミングで、ソフトウェア上で簡易に初期化することが可能となる。ここで、ウォッチドッグモジュールによるリセットは、マイコンを搭載する制御基板の電源を再投入したことと同じ働き(効果)を有する。
これにより、マイコンの組み込まれたシステム等を、例えば、切替コマンドの入力によるユーザの意図したタイミングで、ソフトウェア上で簡易に初期化することが可能となる。ここで、ウォッチドッグモジュールによるリセットは、マイコンを搭載する制御基板の電源を再投入したことと同じ働き(効果)を有する。
また、例えば、マイコンのメモリに記憶されたユーザプログラムやファームウェアの書き換え、メモリ等のマイコンの構成素子の異常診断等を行うために、割り込み処理を一括で停止したいという要望があるとする。この場合に、上記構成であれば、複雑な割り込み処理の停止ロジックを検討することなく、極めて少ないプログラム容量で、割り込み処理を確実に一括して停止することが可能となる。
ここで、割り込み処理は、状態監視として使用されることが多く、割り込み処理同士が相互に監視していたり、条件により新たに割り込み処理が発生したりする場合があるため、割り込み処理の停止ロジックの検討は難解となる場合が多い。
また、マイコンは、価格面で競争力を付けるために、プログラム容量を小さくすることが求められる。このため、複雑な割り込み処理の停止ロジックを検討したとしても、ロジック実装によるプログラム領域の消費を回避することは難しい。
また、マイコンは、価格面で競争力を付けるために、プログラム容量を小さくすることが求められる。このため、複雑な割り込み処理の停止ロジックを検討したとしても、ロジック実装によるプログラム領域の消費を回避することは難しい。
また、マイコンは、ウォッチドッグモジュールによるリセットが行われると、全ての処理が停止させられるため、結果的に割込み処理を全て確実に停止できる。これはどのような複雑な割込み処理に対しても有効であり、また、仕様変更により割込み処理が拡張されたとしても確実に停止できる。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
(2)ウォッチドッグキーKY1及びKY2が正しい内容でWDキー書き込み領域105aに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーKY1及びKY2が間違った内容でWDキー書き込み領域105aに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で該マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュール105であって、該ウォッチドッグモジュール105を備えたDSP21bのCPU101が、予め設定したリセットタイミング(切替コマンドの入力タイミング)で、ウォッチドッグモジュール105によるCPU101のリセットを意図的に行うことを示すWD通知値をRAM103のWD通知値書き込み領域103aに書き込む。更に、CPU101が、ウォッチドッグキーKY1及びKY2を間違った内容でWDキー書き込み領域105aに書き込むことでウォッチドッグモジュール105に第2リセット動作を強制的に行わせる。なお更に、CPU101が、第2リセット動作によるリセットが行われた後にWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づきCPU101のリセットが意図的に行われたことを識別する。
この構成によって、予め設定したリセットタイミングで、WDR通知値をWDR通知値書き込み領域103aに書き込んでから、DSP21bのCPU101を強制的にリセットすることが可能となる。加えて、リセット後に、WDR通知値を参照することで、CPU101のリセットが、意図的なものであることを識別することが可能となる。
即ち、ウォッチドッグモジュールによる意図的なリセットを行う前に、RAM103にフラグ(WDR通知値)を立てておくことで、リセット後に、このフラグを回収して、CPU101に対して、意図的なリセットであることを認識させることが可能となる。
即ち、ウォッチドッグモジュールによる意図的なリセットを行う前に、RAM103にフラグ(WDR通知値)を立てておくことで、リセット後に、このフラグを回収して、CPU101に対して、意図的なリセットであることを認識させることが可能となる。
これにより、マイコンの組み込まれたシステム等を、例えば、切替コマンドの入力によるユーザの意図したタイミングで、ソフトウェア上で簡易に初期化することが可能となると共に、初期化後に、マイコンに初期化前の動作処理を継続して実行させること等が可能となる。
また、複雑な割り込み処理の停止ロジックを検討することなく、極めて少ないプログラム容量で、割り込み処理を確実に一括して停止することが可能となる。そして、リセット後において、意図的なリセットであることを認識することができるので、CPU101の演算処理能力を最大限に活用した処理を実行することが可能となる。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
また、複雑な割り込み処理の停止ロジックを検討することなく、極めて少ないプログラム容量で、割り込み処理を確実に一括して停止することが可能となる。そして、リセット後において、意図的なリセットであることを認識することができるので、CPU101の演算処理能力を最大限に活用した処理を実行することが可能となる。
また、ウォッチドッグモジュールによるリセットを活用するため、マイコンへの電源供給を維持した状態でリセットを行うことができ、マイコンのメモリに記憶された情報を失うことが無いため、リセット後においてメモリに残された情報を活用することが可能である。
(3)ウォッチドッグモジュール105は、正常値を示すウォッチドッグキーKY1及びKY2がWDキー書き込み領域105aに書き込まれた場合に第1リセット動作を行い、異常値を示すウォッチドッグキーKY1及びKY2がWDキー書き込み領域105aに書き込まれた場合に第2リセット動作を行う。
この構成であれば、WDキー書き込み領域105aに、異常値を示すウォッチドッグキーKY1及びKY2を書き込むといった簡易な処理で、CPU101を意図的にリセットすることが可能である。
この構成であれば、WDキー書き込み領域105aに、異常値を示すウォッチドッグキーKY1及びKY2を書き込むといった簡易な処理で、CPU101を意図的にリセットすることが可能である。
(4)第1ユーザプログラム1020は、ウォッチドッグキーKY1及びKY2が正しい内容でWDキー書き込み領域105aに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーKY1及びKY2が間違った内容でWDキー書き込み領域105aに書き込まれた場合に、DSP21bへの電源供給を維持した状態で該DSP21bの有するCPU101をリセットする第2リセット動作を行うウォッチドッグモジュール105に、予め設定したリセットタイミング(切替コマンドの入力タイミング)で、ウォッチドッグキーKY1及びKY2を間違った内容でWDキー書き込み領域105aに書き込むことで、第2リセット動作を強制的に行わせる処理をCPU101に実行させるためのプログラムを含む。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(1)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(1)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
(5)第1ユーザプログラム1020は、ウォッチドッグキーKY1及びKY2が正しい内容でWDキー書き込み領域105aに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーKY1及びKY2が間違った内容でWDキー書き込み領域105aに書き込まれた場合に、DSP21bへの電源供給を維持した状態で該DSP21bの有するCPU101をリセットする第2リセット動作を行うウォッチドッグモジュール105であって、該ウォッチドッグモジュール105によるCPU101のリセットを意図的に行うことを示すWDR通知値を、予め設定したリセットタイミング(切替コマンドの入力タイミング)で、WDR通知値書き込み領域103aに書き込む第1ステップと、ウォッチドッグキーKY1及びKY2を間違った内容でWDキー書き込み領域105aに書き込むことでウォッチドッグモジュール105に第2リセット動作を強制的に行わせる第2ステップと、第2リセット動作によるリセットが行われた後にWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づきCPU101のリセットが意図的に行われたことを識別する第3ステップと、を有する処理をCPU101に実行させるためのプログラムを含む。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(2)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(2)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
(6)ウォッチドッグモジュール105は、正常値を示すウォッチドッグキーKY1及びKY2がWDキー書き込み領域105aに書き込まれた場合に第1リセット動作を行い、異常値を示すウォッチドッグキーKY1及びKY2がWDキー書き込み領域105aに書き込まれた場合に第2リセット動作を行う。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(3)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
この構成であれば、CPU101で第1ユーザプログラム1020が実行されることで、上記(3)に記載したCPU101のリセット方法と同等の作用及び効果が得られる。
(7)電子制御装置の1種であるドライブユニット2は、第1ユーザプログラム1020を搭載したDSP21bを備えている。
この構成によって、上記(4)〜(6)に記載した第1ユーザプログラム1020による作用及び効果と同等の作用及び効果を得ることが可能である。
(8)モータ駆動システム10は、第1ユーザプログラム1020を搭載したDSP21bを備えたドライブユニット2を備えている。
この構成によって、上記(4)〜(6)に記載した第1ユーザプログラム1020による作用及び効果と同等の作用及び効果を得ることが可能である。
この構成によって、上記(4)〜(6)に記載した第1ユーザプログラム1020による作用及び効果と同等の作用及び効果を得ることが可能である。
(8)モータ駆動システム10は、第1ユーザプログラム1020を搭載したDSP21bを備えたドライブユニット2を備えている。
この構成によって、上記(4)〜(6)に記載した第1ユーザプログラム1020による作用及び効果と同等の作用及び効果を得ることが可能である。
(第2実施形態)
次に、図7に基づき、本発明の第2実施形態に係る溝研削装置300について説明する。
第2実施形態に係る溝研削装置300は、上記第1実施形態のモータ駆動システム10を、工作機械の1種である溝研削装置に適用したものである。
また、第2実施形態では、切換コマンドの1つとして、更に、診断コマンドを備えると共に、診断コマンドに対応する診断ブートプログラムを備える点が上記第1実施形態と異なる。加えて、第2実施形態では、第1ユーザプログラム1020の機能に加えて、システムを初期化するための初期化コマンドの入力に応じて、ウォッチドッグ・リセットを強制的に発動させる機能を備えた第2ユーザプログラム1024を備える点が上記第1実施形態と異なる。この初期化コマンドによるリセット機能は、動作モードの切り替えは行わずに、システムの初期化のみを行うことを目的とした機能である。
次に、図7に基づき、本発明の第2実施形態に係る溝研削装置300について説明する。
第2実施形態に係る溝研削装置300は、上記第1実施形態のモータ駆動システム10を、工作機械の1種である溝研削装置に適用したものである。
また、第2実施形態では、切換コマンドの1つとして、更に、診断コマンドを備えると共に、診断コマンドに対応する診断ブートプログラムを備える点が上記第1実施形態と異なる。加えて、第2実施形態では、第1ユーザプログラム1020の機能に加えて、システムを初期化するための初期化コマンドの入力に応じて、ウォッチドッグ・リセットを強制的に発動させる機能を備えた第2ユーザプログラム1024を備える点が上記第1実施形態と異なる。この初期化コマンドによるリセット機能は、動作モードの切り替えは行わずに、システムの初期化のみを行うことを目的とした機能である。
以下、上記第1実施形態と同様の構成部については、同じ符号を付して適宜説明を省略し、異なる部分を詳細に説明する。
溝研削装置300は、例えば、転がり軸受の軌道輪(外輪及び内輪)等のワークの周面に転動体の転動路となる溝を、砥石による研削加工によって形成する工作機械である。
この溝研削装置300は、図7に示すように、溝研削部200と、ワーク支持部250と、モータ駆動システム10とを含んで構成される。
溝研削装置300は、例えば、転がり軸受の軌道輪(外輪及び内輪)等のワークの周面に転動体の転動路となる溝を、砥石による研削加工によって形成する工作機械である。
この溝研削装置300は、図7に示すように、溝研削部200と、ワーク支持部250と、モータ駆動システム10とを含んで構成される。
溝研削部200は、砥石ヘッド201と、回転軸としての砥石スピンドル202と、該砥石スピンドル202を内部に収容する砥石スピンドルハウジング203と、砥石スピンドル202の回転駆動源である砥石スピンドル用モータ205と、を含んで構成される。
砥石ヘッド201は、円盤状の溝研削用砥石201aと、この溝研削用砥石201aを砥石スピンドル202に取り付けるための砥石取付軸201bとから構成されている。
砥石ヘッド201は、円盤状の溝研削用砥石201aと、この溝研削用砥石201aを砥石スピンドル202に取り付けるための砥石取付軸201bとから構成されている。
かかる構成によって、溝研削部200は、砥石スピンドル用モータ205によって砥石スピンドル202を回転駆動することで、砥石取付軸201bを介して砥石スピンドル202の先端に取り付けられた溝研削用砥石201aを回転する。すなわち、この回転する溝研削用砥石201aをワーク400の周面に接触させることで、接触面を研削加工して溝を形成する。
ワーク支持部250は、支持台251と、支持台251上に設けられたテーブル252と、テーブル252上に設けられたワーク支持用部材253と、テーブル252を回転自在に支持するワーク回転用スピンドル254とを含んで構成される。更に、ワーク支持部250は、ワーク回転用スピンドル254を内部に収容するワーク回転用スピンドルハウジング255と、ワーク回転用スピンドル254を回転駆動するモータ1とを含んで構成される。
第2実施形態のモータ1は、上記第1実施形態と同様に、ドライブユニット2によって駆動制御される。即ち、上位装置4からモータ回転指令が入力されると、レゾルバからの例えば3相のレゾルバ位置検出信号φABCを入力してこれに基づきモータ1の回転角度位置の検出を行う。加えて、この位置検出結果と上位装置4からのモータ回転指令とに応じて、モータ1を回転駆動させるためのモータ電流指令値を生成する。そして、パワーアンプ22で、モータ電流指令値に応じたモータ駆動電流を生成し、生成したモータ駆動電流を、モータケーブル6を介してモータ1に供給する。これによって、モータ1が回転駆動し、ワーク回転用スピンドル254を回転駆動する。
また、第2実施形態の上位装置4は、溝研削部200の砥石スピンドル用モータ205のモータ駆動回路(不図示)に対してもモータ回転指令を出力するようになっている。
一方、第2実施形態において、DSP21bのROM102には、図8に示すように、上記第1実施形態の第1ユーザプログラム1020に代えて、通常動作モードに対応する第2ユーザプログラム1024が格納されている。他にも、ROM102には、第1ブートプログラム1021、第1SCIブートプログラム1022、第1診断ブートプログラム1025、その他の動作モードに対応するプログラム1026等が格納されている。なお、第1ブートプログラム1021、第1SCIブートプログラム1022、第1診断ブートプログラム1025及びその他の動作モードに対応するプログラム1026(以下、「その他のプログラム1026」と称す)は、ROM102のマスクROMエリアに格納されている。
一方、第2実施形態において、DSP21bのROM102には、図8に示すように、上記第1実施形態の第1ユーザプログラム1020に代えて、通常動作モードに対応する第2ユーザプログラム1024が格納されている。他にも、ROM102には、第1ブートプログラム1021、第1SCIブートプログラム1022、第1診断ブートプログラム1025、その他の動作モードに対応するプログラム1026等が格納されている。なお、第1ブートプログラム1021、第1SCIブートプログラム1022、第1診断ブートプログラム1025及びその他の動作モードに対応するプログラム1026(以下、「その他のプログラム1026」と称す)は、ROM102のマスクROMエリアに格納されている。
ここで、第1診断ブートプログラム1025は、動作モードの1つである、ROM102、RAM103等のDSP21bを構成する各素子が正常に動作しているか否かを診断する診断モードを起動するためのブートプログラムである。
また、第2実施形態の第2ユーザプログラム1024には、図8に示すように、第2ブートプログラム1020aと、第2SCIブートプログラム1020bと、第1診断ブートプログラムと同等の機能を有する第2診断ブートプログラム1020dとが組み込まれている。更に、第2ユーザプログラム1024には、その他のプログラム1026に含まれる各動作モードに対応する他のブートプログラムのうち切替コマンドでサポートしているブートプログラム1020eが組み込まれている。
また、第2実施形態の第2ユーザプログラム1024には、図8に示すように、第2ブートプログラム1020aと、第2SCIブートプログラム1020bと、第1診断ブートプログラムと同等の機能を有する第2診断ブートプログラム1020dとが組み込まれている。更に、第2ユーザプログラム1024には、その他のプログラム1026に含まれる各動作モードに対応する他のブートプログラムのうち切替コマンドでサポートしているブートプログラム1020eが組み込まれている。
また、第2実施形態では、診断モードへと切り替えるための切替コマンドとして、診断ブートコマンドが予め設定されている。
そして、第2実施形態のCPU101は、第2ユーザプログラム1024の実行中において、端末3を介した診断ブートコマンドの入力に応じて、第2ブートプログラム1020aを起動する。これにより、上記第1実施形態と同様に、ステータス情報が診断モード用の情報に書き換えられ、第2診断ブートプログラムが起動する。その結果、現在の動作モードが診断モードへと切り替わる。
そして、第2実施形態のCPU101は、第2ユーザプログラム1024の実行中において、端末3を介した診断ブートコマンドの入力に応じて、第2ブートプログラム1020aを起動する。これにより、上記第1実施形態と同様に、ステータス情報が診断モード用の情報に書き換えられ、第2診断ブートプログラムが起動する。その結果、現在の動作モードが診断モードへと切り替わる。
即ち、CPU101が初期化された状態で診断モードが起動するため、割り込み処理等の不要な処理が開始していない環境(CPU101の演算処理能力を最大限に活用できる環境)で診断処理を実施することが可能となる。
更に、第2ユーザプログラム1024は、予め設定した初期化コマンドの入力に応じて、CPU101を初期化(リセット)する機能を備えている。
更に、第2ユーザプログラム1024は、予め設定した初期化コマンドの入力に応じて、CPU101を初期化(リセット)する機能を備えている。
具体的に、CPU101は、第2ユーザプログラム1024の実行中において、端末3を介した初期化コマンドの入力に応じて、上記第1実施形態と同様の手順でウォッチドッグ・リセットを強制的に発動させてCPU101を初期化(リセット)する。
また、初期化コマンドによるCPU101のリセット後は、動作モードの切替を行わない。そのため、第2ユーザプログラム1024は、初期化コマンドに対応するウォッチドッグ・リセットの実行後において、モータ1、端末3及び上位装置4からの入力信号に応じた動作処理を再開するように構成されている。
また、初期化コマンドによるCPU101のリセット後は、動作モードの切替を行わない。そのため、第2ユーザプログラム1024は、初期化コマンドに対応するウォッチドッグ・リセットの実行後において、モータ1、端末3及び上位装置4からの入力信号に応じた動作処理を再開するように構成されている。
具体的に、第2ユーザプログラム1024は、初期化コマンドによるリセットの実行後において、RAM103に保持されたWDR通知値及びコマンド情報から、初期化コマンドによる意図的なリセットが実行されたか否かを判定する。そして、意図的なリセットが実行されたと判定すると、RAM103に保持されたリセット前の位置情報等に基づき、入力信号に応じた動作処理を再開するように構成されている。
(初期化処理及びモード切替処理について)
次に、図9に基づき、CPU101における、第2実施形態の第2ユーザプログラム1024に基づく初期化コマンド又は切替コマンドの入力に応じた動作処理の流れを説明する。
(初期化処理及びモード切替処理について)
次に、図9に基づき、CPU101における、第2実施形態の第2ユーザプログラム1024に基づく初期化コマンド又は切替コマンドの入力に応じた動作処理の流れを説明する。
CPU101において、通常動作モードが起動して、第2実施形態の第2ユーザプログラム1024が実行されると、図9に示すように、まず、ステップS400に移行する。
ステップS400では、CPU101において、初期化コマンド又は切替コマンドが入力されたか否かを判定する。そして、入力されたと判定した場合(Yes)は、初期化コマンドを示す情報又は切替コマンドの種類を示す情報をRAM103の所定領域に書き込んでからステップS402に移行する。一方、入力されていないと判定した場合(No)は、初期化コマンド又は切替コマンドが入力されるまで判定処理を繰り返す。以下、初期化コマンドを示す情報又は切替コマンドの種類を示す情報を、「コマンド情報」と記載する場合がある。
ステップS400では、CPU101において、初期化コマンド又は切替コマンドが入力されたか否かを判定する。そして、入力されたと判定した場合(Yes)は、初期化コマンドを示す情報又は切替コマンドの種類を示す情報をRAM103の所定領域に書き込んでからステップS402に移行する。一方、入力されていないと判定した場合(No)は、初期化コマンド又は切替コマンドが入力されるまで判定処理を繰り返す。以下、初期化コマンドを示す情報又は切替コマンドの種類を示す情報を、「コマンド情報」と記載する場合がある。
ステップS402に移行した場合は、CPU101において、WDR通知値をRAM103のWDR通知値書き込み領域103aに書き込んで、ステップS404に移行する。ここで、コマンド情報及びWDR通知値を別々の情報とせずに、初期化コマンド及び各種切替コマンドにそれぞれ対応するユニークなWDR通知値を設定して、このWDR通知値を、RAM103のWDR通知値書き込み領域103aに記憶する構成としてもよい。
ステップS404では、CPU101において、ROM102への書き込み等、周辺素子の機能を停止して、ステップS406に移行する。
ステップS406では、CPU101において、WDキー書き込み領域105aに、第1のウォッチドッグキーKY1及び第2のウォッチドッグキーKY2として、異常値(誤った値のキー)を書き込む。これによって、WDM105に、ウォッチドッグ・リセットを実行させて、一連の処理を終了する。
ステップS406では、CPU101において、WDキー書き込み領域105aに、第1のウォッチドッグキーKY1及び第2のウォッチドッグキーKY2として、異常値(誤った値のキー)を書き込む。これによって、WDM105に、ウォッチドッグ・リセットを実行させて、一連の処理を終了する。
次に、図10に基づき、CPU101の第2ブートプログラム1020aに基づく動作処理の流れを説明する。
CPU101において、第2実施形態の第2ブートプログラム1020aが起動されると、図10に示すように、まず、ステップS500に移行する。
ステップS500では、CPU101において、RAM103に書き込まれたWDR通知値及びコマンド情報に基づき、実行されたウォッチドッグ・リセットが、初期化コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、初期化コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS502に移行し、そうでないと判定した場合(No)は、ステップS504に移行する。
CPU101において、第2実施形態の第2ブートプログラム1020aが起動されると、図10に示すように、まず、ステップS500に移行する。
ステップS500では、CPU101において、RAM103に書き込まれたWDR通知値及びコマンド情報に基づき、実行されたウォッチドッグ・リセットが、初期化コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、初期化コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS502に移行し、そうでないと判定した場合(No)は、ステップS504に移行する。
ステップS502に移行した場合は、第2ユーザプログラム1024による動作処理を再開して、一連の処理を終了する。
一方、ステップS504に移行した場合は、CPU101において、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、実行されたウォッチドッグ・リセットが、切替コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、切替コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS506に移行し、そうでないと判定した場合(No)は、処理を終了する。
一方、ステップS504に移行した場合は、CPU101において、RAM103のWDR通知値書き込み領域103aに書き込まれたWDR通知値に基づき、実行されたウォッチドッグ・リセットが、切替コマンドの入力に応じたウォッチドッグ・リセットか否かを判定する。そして、切替コマンドの入力に応じたウォッチドッグ・リセットであると判定した場合(Yes)は、ステップS506に移行し、そうでないと判定した場合(No)は、処理を終了する。
ステップS506に移行した場合は、CPU101において、ウォッチドッグ機能の設定プロテクトを解除すると共に、ウォッチドッグ・リセットの発動を禁止する設定を行う。その後、ウォッチドッグ機能の設定プロテクトを設定して、ステップS508に移行する。
ステップS508では、CPU101において、第1ユーザプログラム1020に組み込まれた第2ブートプログラム1020aを起動して、一連の処理を終了する。
ステップS508では、CPU101において、第1ユーザプログラム1020に組み込まれた第2ブートプログラム1020aを起動して、一連の処理を終了する。
(動作)
次に、第2実施形態に係るモータ駆動システム10の具体的な動作例を説明する。
ドライブユニット2に電源が供給され、第2ユーザプログラム1024が実行されると、DSP21bにおいて、モータ1、端末3及び上位装置4からの入力信号に応じた処理が実行される。
そして、モータ1が停止した状態でかつ他の処理が実行されていない状態において、ユーザにより、端末3を介して、例えば、動作モードを診断モードに切り替える診断ブートコマンドが入力されたとする(ステップS400のYes)。
次に、第2実施形態に係るモータ駆動システム10の具体的な動作例を説明する。
ドライブユニット2に電源が供給され、第2ユーザプログラム1024が実行されると、DSP21bにおいて、モータ1、端末3及び上位装置4からの入力信号に応じた処理が実行される。
そして、モータ1が停止した状態でかつ他の処理が実行されていない状態において、ユーザにより、端末3を介して、例えば、動作モードを診断モードに切り替える診断ブートコマンドが入力されたとする(ステップS400のYes)。
診断ブートコマンドが入力されると、DSP21bのCPU101は、第2ユーザプログラム1024に従って、まず、診断ブートコマンドを示す情報をRAM103の所定領域に書き込み、続いて、WDR通知値をRAM103のWDR通知値書き込み領域103aに書き込む(ステップS402)。引き続き、CPU101は、周辺素子の機能を停止してから(ステップS404)、WDキー書き込み領域105aに、異常値を書き込み、ウォッチドッグ・リセットを強制的に発動する(ステップS406)。
即ち、WDM105は、WDキー書き込み領域105aに異常値が書き込まれたことに応じて、CPU101に対してリセット信号を出力する第2リセット動作を行う。これによって、CPU101がリセットされる。
ウォッチドッグ・リセット後に、CPU101は、RAM103の情報に基づき、診断ブートコマンドの入力に応じたウォッチドッグ・リセットであるため(ステップS504のYes)、引き続きWDM105の動作を停止してから(ステップS506)、第2ブートプログラム1020aを起動する(ステップS508)。
ウォッチドッグ・リセット後に、CPU101は、RAM103の情報に基づき、診断ブートコマンドの入力に応じたウォッチドッグ・リセットであるため(ステップS504のYes)、引き続きWDM105の動作を停止してから(ステップS506)、第2ブートプログラム1020aを起動する(ステップS508)。
CPU101は、第2ブートプログラム1020aを起動すると、起動した第2ブートプログラム1020aに従って、まず、特定ピンのステータス情報をRAM103の所定領域に読み込む。次に、RAM103の所定領域に書き込まれた診断ブートコマンドを示す情報に基づき、読み込んだ特定ピンのステータス情報を、第2診断ブートプログラムを起動するステータス情報に強制的に書き換える。
これにより、CPU101は、第2ブートプログラム1020aに従って、起動する動作モードが、第2診断ブートプログラムを起動するモードであると認識して、第2ユーザプログラム1024に組み込まれた第2診断ブートプログラム1020dを起動する。その結果、現在の動作モードが診断モードへと切り替わる。
即ち、CPU101が初期化された状態で診断モードが起動するため、割り込み処理等の不要な処理が動作していない環境(CPU101の演算処理能力をフル活用できる環境)で診断処理を開始することが可能となる。
即ち、CPU101が初期化された状態で診断モードが起動するため、割り込み処理等の不要な処理が動作していない環境(CPU101の演算処理能力をフル活用できる環境)で診断処理を開始することが可能となる。
引き続き、診断処理の終了後に通常動作モードが起動して、第2ユーザプログラム1024が実行されたとする。
そして、モータ1が停止した状態でかつ他の処理が実行されていない状態において、ユーザにより、端末3を介して、初期化コマンドが入力されたとする(ステップS400のYes)。
そして、モータ1が停止した状態でかつ他の処理が実行されていない状態において、ユーザにより、端末3を介して、初期化コマンドが入力されたとする(ステップS400のYes)。
この場合も、上記診断ブートコマンドのときと同様に、ウォッチドッグ・リセットを強制的に発動して、CPU101をリセットする(ステップS402〜S406)。
CPU101のリセット後は、RAM103の初期化コマンドを示す情報から、初期化コマンドの入力に応じたウォッチドッグ・リセットであることが識別できるので(ステップS500のYes)、CPU101は、第2ブートプログラム1020aを起動せずに、第2ユーザプログラム1024による動作処理を再開する(ステップS502)。
CPU101のリセット後は、RAM103の初期化コマンドを示す情報から、初期化コマンドの入力に応じたウォッチドッグ・リセットであることが識別できるので(ステップS500のYes)、CPU101は、第2ブートプログラム1020aを起動せずに、第2ユーザプログラム1024による動作処理を再開する(ステップS502)。
ここで、ウォッチドッグ・リセットは、DSP21bの電源を落とさずに行われるリセットである。そのため、第2ユーザプログラム1024による動作処理の再開後は、ウォッチドッグ・リセット前(初期化前)にRAM103に記憶された位置情報が残っている状態となる。従って、CPU101は、RAM103に残された位置情報に基づき、入力信号に応じた各種動作処理を実行することが可能となる。即ち、ウォッチドッグ・リセットによって、センサ出力(3相のレゾルバ位置検出信号φABC)に基づく位置情報を維持した状態で、CPU101を、割り込み処理の開始前に戻すことが可能である。
ここで、第2実施形態において、DSP21bがマイクロコントローラに対応し、CPU101がプロセッサに対応し、第2ユーザプログラム1024がプロセッサのリセットプログラムに対応する。
また、第2実施形態において、ドライブユニット2が電子制御装置に対応し、溝研削装置300が工作機械に対応する。
また、第2実施形態において、ドライブユニット2が電子制御装置に対応し、溝研削装置300が工作機械に対応する。
(第2実施形態の効果)
(1)工作機械の1種である溝研削装置300は、第2ユーザプログラム1024を搭載したDSP21bを備えたドライブユニット2を含むモータ駆動システム10を備えている。第2ユーザプログラム1024は、上記第1実施形態の第1ユーザプログラム1020に、診断モードに対応した第2診断ブートプログラムと初期化コマンドによる初期化機能とを加えたプログラムとした。
(1)工作機械の1種である溝研削装置300は、第2ユーザプログラム1024を搭載したDSP21bを備えたドライブユニット2を含むモータ駆動システム10を備えている。第2ユーザプログラム1024は、上記第1実施形態の第1ユーザプログラム1020に、診断モードに対応した第2診断ブートプログラムと初期化コマンドによる初期化機能とを加えたプログラムとした。
この構成によって、上記第1実施形態のモータ駆動システム10と同等の作用及び効果を得ることが可能である。
加えて、初期化コマンドによるリセット機能によって、例えば、ドライブユニット2が製造装置に組み込まれ、ドライブユニット2の物理的な電源のON/OFFが困難な場合に、ソフトウェア上から簡易にDSP21bのCPU101のリセットを行ってドライブユニット2を、電源を再投入した時と同等の状態にする(初期化する)ことが可能となる。
加えて、初期化コマンドによるリセット機能によって、例えば、ドライブユニット2が製造装置に組み込まれ、ドライブユニット2の物理的な電源のON/OFFが困難な場合に、ソフトウェア上から簡易にDSP21bのCPU101のリセットを行ってドライブユニット2を、電源を再投入した時と同等の状態にする(初期化する)ことが可能となる。
(変形例)
(1)上記各実施形態では、第1ユーザプログラム1020又は第2ユーザプログラム1024を、モータ駆動システム10を構成するドライブユニット2のDSP21bに適用する構成としたが、この構成に限らない。他のシステムを構成する電子制御装置のマイコンに適用する構成としてもよい。
(1)上記各実施形態では、第1ユーザプログラム1020又は第2ユーザプログラム1024を、モータ駆動システム10を構成するドライブユニット2のDSP21bに適用する構成としたが、この構成に限らない。他のシステムを構成する電子制御装置のマイコンに適用する構成としてもよい。
(2)上記第2実施形態では、モータ駆動システム10を工作機械の1種である溝研削装置に適用する構成としたが、この構成に限らない。例えば、金属、木材、石材、樹脂等に対して、モータを駆動源として、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の加工を施す他の工作機械に適用してもよい。
(3)上記各実施形態では、ウォッチドッグ・リセットを利用して、現在の動作モードをSCIブートモードに切り替えて、第1ユーザプログラム1020又は第2ユーザプログラム1024を、シリアル通信ポートを介して書き換える例を説明した。この構成に限らず、例えば、DSP21bのファームウェアの書き換え等の他の書き換え処理に適用してもよい。
(3)上記各実施形態では、ウォッチドッグ・リセットを利用して、現在の動作モードをSCIブートモードに切り替えて、第1ユーザプログラム1020又は第2ユーザプログラム1024を、シリアル通信ポートを介して書き換える例を説明した。この構成に限らず、例えば、DSP21bのファームウェアの書き換え等の他の書き換え処理に適用してもよい。
(4)上記各実施形態では、ウォッチドッグモジュール105が、ウォッチドッグキーKY1及びKY2の2つのキーの書き込み内容に基づき、ウォッチドッグカウンタのリセット動作や、CPU101のリセット動作を行う構成とした。この構成に限らず、1つ又は3つ以上のウォッチドッグキーの書き込み内容に基づき、ウォッチドッグカウンタのリセット動作や、CPU101のリセット動作を行う構成としてもよい。
また、上記各実施形態は、本発明の好適な具体例であり、技術的に好ましい種々の限定が付されているが、本発明の範囲は、上記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。また、上記の説明で用いる図面は、図示の便宜上、部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
また、本発明は上記各実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
また、本発明は上記各実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
1 モータ、2 ドライブユニット、3 端末、4 上位装置、10 モータ駆動システム、21 制御回路、21b DSP、CN1〜CN5 第1〜第5コネクタ、7 シリアルケーブル、101 CPU、102 ROM、104 I/Oモジュール、105 ウォッチドッグモジュール、300 溝研削装置、1020 第1ユーザプログラム、1020a 第2ブートプログラム、1020b 第2SCIブートプログラム、1020c,1020e サポートしているその他のブートプログラム、1020d 第2診断ブートプログラム、1021 第1ブートプログラム、1022 第1SCIブートプログラム、1023,1026 その他のプログラム、1024 第2ユーザプログラム、1025 第1診断ブートプログラム
Claims (9)
- ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールであって、該ウォッチドッグモジュールを備えた前記マイクロコントローラの前記プロセッサが、予め設定したリセットタイミングで、ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで前記ウォッチドッグモジュールに前記第2リセット動作を強制的に行わせるステップを含む、プロセッサのリセット方法。
- ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールであって、該ウォッチドッグモジュールを備えた前記マイクロコントローラの前記プロセッサが、予め設定したリセットタイミングで、前記ウォッチドッグモジュールによる前記プロセッサのリセットを意図的に行うことを示す識別情報を識別情報書き込み用メモリに書き込む第1ステップと、
前記プロセッサが、ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで前記ウォッチドッグモジュールに前記第2リセット動作を強制的に行わせる第2ステップと、
前記プロセッサが、前記第2リセット動作によるリセットが行われた後に前記識別情報書き込み用メモリに書き込まれた前記識別情報に基づき前記プロセッサのリセットが意図的に行われたことを識別する第3ステップと、を含むプロセッサのリセット方法。 - 前記ウォッチドッグモジュールは、正常値を示すウォッチドッグキーが前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に前記第1リセット動作を行い、異常値を示すウォッチドッグキーが前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に前記第2リセット動作を行う請求項1又は2に記載のプロセッサのリセット方法。
- ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールに、
予め設定したリセットタイミングで、ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで、前記第2リセット動作を強制的に行わせる処理を前記プロセッサに実行させるためのプログラムを含む、プロセッサのリセットプログラム。 - ウォッチドッグキーが正しい内容でウォッチドッグキー書き込み用メモリに書き込まれた場合にウォッチドッグタイマをリセットする第1リセット動作を行い、ウォッチドッグキーが間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に、マイクロコントローラへの電源供給を維持した状態で前記マイクロコントローラの有するプロセッサをリセットする第2リセット動作を行うウォッチドッグモジュールであって、該ウォッチドッグモジュールによる前記プロセッサのリセットを意図的に行うことを示す識別情報を、予め設定したリセットタイミングで、識別情報書き込み用メモリに書き込む第1ステップと、
ウォッチドッグキーを間違った内容で前記ウォッチドッグキー書き込み用メモリに書き込むことで前記ウォッチドッグモジュールに前記第2リセット動作を強制的に行わせる第2ステップと、
前記第2リセット動作によるリセットが行われた後に前記識別情報書き込み用メモリに書き込まれた前記識別情報に基づき前記プロセッサのリセットが意図的に行われたことを識別する第3ステップと、を有する処理を前記プロセッサに実行させるためのプログラムを含む、プロセッサのリセットプログラム。 - 前記ウォッチドッグモジュールは、正常値を示すウォッチドッグキーが前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に前記第1リセット動作を行い、異常値を示すウォッチドッグキーが前記ウォッチドッグキー書き込み用メモリに書き込まれた場合に前記第2リセット動作を行う請求項4又は5に記載のプロセッサのリセットプログラム。
- 請求項4から6のいずれか1項に記載のプロセッサのリセットプログラムを備えた電子制御装置。
- 請求項7に記載の電子制御装置を備えたモータ駆動システム。
- 請求項8に記載のモータ駆動システムを備えた工作機械。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104859A JP2016218864A (ja) | 2015-05-22 | 2015-05-22 | プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104859A JP2016218864A (ja) | 2015-05-22 | 2015-05-22 | プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016218864A true JP2016218864A (ja) | 2016-12-22 |
Family
ID=57578514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015104859A Pending JP2016218864A (ja) | 2015-05-22 | 2015-05-22 | プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016218864A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778724A (zh) * | 2021-05-17 | 2021-12-10 | 北京科益虹源光电技术有限公司 | 一种看门狗的屏蔽方法及装置 |
CN114578721A (zh) * | 2020-12-02 | 2022-06-03 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
WO2024038747A1 (ja) * | 2022-08-19 | 2024-02-22 | パナソニックIpマネジメント株式会社 | 処理装置 |
-
2015
- 2015-05-22 JP JP2015104859A patent/JP2016218864A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114578721A (zh) * | 2020-12-02 | 2022-06-03 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
CN114578721B (zh) * | 2020-12-02 | 2024-03-08 | 北汽福田汽车股份有限公司 | 一种看门狗模块管理方法、装置和车辆 |
CN113778724A (zh) * | 2021-05-17 | 2021-12-10 | 北京科益虹源光电技术有限公司 | 一种看门狗的屏蔽方法及装置 |
CN113778724B (zh) * | 2021-05-17 | 2024-03-22 | 北京科益虹源光电技术有限公司 | 一种看门狗的屏蔽方法及装置 |
WO2024038747A1 (ja) * | 2022-08-19 | 2024-02-22 | パナソニックIpマネジメント株式会社 | 処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2773073B2 (ja) | 電子制御装置の自己診断システム及びその診断方法 | |
US7689751B2 (en) | PCI-express system | |
JP2016218864A (ja) | プロセッサのリセット方法、プロセッサのリセットプログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 | |
JP6139386B2 (ja) | プログラマブルコントローラ | |
CN112643657A (zh) | 机器人急停制动安全防控方法、装置、机器人和存储介质 | |
JP6531661B2 (ja) | 異常監視装置、および、これを用いた電動パワーステアリング装置 | |
JP2016110433A (ja) | モード切替方法、モード切替プログラム、このプログラムを搭載したマイクロコントローラを備えた電子制御装置、この電子制御装置を備えたモータ駆動システム及びこのモータ駆動システムを備えた工作機械 | |
JP2009205277A (ja) | 工作機械の制御装置 | |
JP2007011646A (ja) | サーボモータ制御システムにおけるドライバ動作確認装置 | |
JP5148662B2 (ja) | 電子機器およびその制御プログラム | |
JP6823027B2 (ja) | 数値制御装置 | |
KR102267485B1 (ko) | 로봇 제어장치, 로봇시스템 및 로봇 제어방법 | |
JP2007164577A (ja) | ロボット制御装置の制御方法及びロボット制御装置 | |
JP2006510966A (ja) | カプセル化ハードウェアの構成/制御 | |
JP4821747B2 (ja) | 数値制御装置および数値制御プログラム | |
WO2018173105A1 (ja) | プログラマブルロジックコントローラ、メモリモジュールおよびプログラム | |
WO2024004340A1 (ja) | ロボットシステム | |
TWI496085B (zh) | 更新電腦系統之識別資料之方法及其相關電腦系統 | |
JP2009063371A (ja) | エンコーダ装置およびその起動方法 | |
JP7394276B2 (ja) | ピーエルシーシステムのエラー状態制御方法 | |
EP3730249B1 (en) | Tool, and control circuit and control method for tool | |
JP2023102591A (ja) | 制御装置及び電子制御装置 | |
EP0531635B1 (en) | Computer system having resume function and permitting pointing device to be connected thereto | |
JP2008071084A (ja) | マイクロプロセッサ及び画像形成装置 | |
JP2010204737A (ja) | プログラマブルコントローラの制御システムおよびプログラマブルコントローラの制御プログラム実行方法 |