(57)【特許請求の範囲】
【請求項１】
磁気ディスク装置を構成する新マイクロ・コントローラ・ユニットのファームウェアを開発する開発装置において、
該開発装置は、既存の磁気ディスク装置のマイクロ・コントローラ・ユニットとの間でヘッド現在位置情報や電流値情報の授受を所定時間間隔で行なうプログラムを記憶したROMを備え、かつ、既存の磁気ディスク装置のマイクロ・コントローラ・ユニットから送られてくるヘッドの現在位置情報に基づいて、該磁気ディスク装置のヘッド移動用モータに流す電流値を算出するファームウェアを内蔵する新マイクロ・コントローラ・ユニットを実装し、
更に、既存の磁気ディスク装置のマイクロ・コントローラ・ユニットから送られるヘッド位置情報に基づいて前記ファームウェアが算出する電流値で制御される該既存の磁気ディスク装置におけるヘッド位置とヘッド速度を表示する表示手段が接続された、
ことを特徴とする磁気ディスク装置の開発装置。
【請求項２】
磁気ディスク装置を構成する新マイクロ・コントローラ・ユニットのファームウェアを開発する開発システムにおいて、
該開発システムは、磁気ディスク装置を構成する新マイクロ・コントローラ・ユニットのファームウェアを開発する開発装置と、該開発装置に接続された表示手段と、既存の磁気ディスク装置とを備え、
該開発装置は、
既存の磁気ディスク装置のマイクロ・コントローラ・ユニットとの間でヘッド現在位置情報や電流値情報の授受を所定時間間隔で行なうプログラムを記憶したROMを備え、かつ、既存の磁気ディスク装置のマイクロ・コントローラ・ユニットから送られてくるヘッドの現在位置情報に基づいて、該磁気ディスク装置のヘッド移動用モータに流す電流値を算出するファームウェアを内蔵する新マイクロ・コントローラ・ユニットを実装し、
既存の磁気ディスク装置は、前記開発装置より送られて来る電流値に基づいて前記モータを駆動すると共に、ヘッド現在位置情報を所定時間間隔で前記開発装置に送出するマイクロ・コントローラ・ユニットを備え、
前記表示手段は、既存の磁気ディスク装置のマイクロ・コントローラ・ユニットから送られるヘッド位置情報に基づいて前記ファームウェアが算出する電流値で制御される該既存の磁気ディスク装置におけるヘッド位置とヘッド速度を表示する、
ことを特徴とする磁気ディスク装置の開発システム。
【請求項３】
前記開発システムは、既存の磁気ディスク装置と開発装置とを接続する接続装置を備え、該接続装置は、
既存の磁気ディスク装置により情報が書き込まれると共に開発装置により該情報が読み出される記憶部と、
開発装置により情報が書き込まれると共に既存の磁気ディスク装置により該情報が読み出される記憶部とを備えたことを特徴とする請求項２記載の磁気ディスク装置の開発システム。
【請求項４】
前記接続装置は、
デジタルの位置情報をアナログに変換するＤＡコンバータを備え、ＤＡコンバータ出力に基づいてヘッド位置、ヘッド速度を表示することを特徴とする請求項３記載の磁気ディスク装置の開発システム。
【請求項５】
既存の磁気ディスク装置は、ヘッド現在位置情報の送出に先立って該磁気ディスク装置の種類を開発装置に送出する手段を備え、
開発装置の前記ROMは、磁気ディスク装置の種類と前記モータを制御するサーボ系の各種定数との対応を記憶し、
前記新マイクロ・コントローラ・ユニットのファームウェアは既存の磁気ディスク装置の種類に応じたサーボ制御系の定数を用いて電流値を算出することを特徴とする請求項２記載の磁気ディスク装置の開発システム。
【請求項６】
既存の磁気ディスク装置は、ヘッド現在位置情報の送出に先立って前記モータを制御するサーボ系の各種定数を開発装置に送出する手段を備え、
開発装置における新マイクロ・コントローラ・ユニットのファームウェアは該サーボ制御系の定数を用いて電流値を算出することを特徴とする請求項２記載の磁気ディスク装置の開発システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はファイル装置の開発装置及び開発システムに係わり、特にファイル装置を構成するマイクロ・コントローラ・ユニットのファームウェアを開発する開発装置及び開発システムに関する。
【０００２】
【従来の技術】
(a)ファイル装置の開発
近年、磁気ディスク装置・光ディスク装置に代表されるファイル装置は、容量の増大に従い、より高速かつ高精度にアクチュエータやモータを制御することが求められている。さらに、半導体技術の進歩により、より高速かつ低消費電力のマイクロ・コントローラ・ユニット（以降はＭＣＵと呼ぶ）が開発されてきている。かかる状況において、従来に比べてより高精度で低消費電力の装置を開発したい場合、従来利用していたＭＣＵとは異なる種類のＭＣＵを利用することが必要になる。また、ファイル装置のファームウエア開発は、処理速度が重要視されるために、ファームウエアのソースコードの記述言語として機械語を利用することが多い。しかし、制御系の研究開発や教育用の実験システムなどは、特定のＭＣＵに依存した機械語よりも、Ｃ言語に代表される、高級言語を利用して記述するほうが良い。
【０００３】
従来のファイル装置の制御系のファームウエア開発においては、新規のＭＣＵを利用する場合に、制御系の動作に必要な回路を全て作成していた。したがって、ＩＣ等の電子部品の手配、回路の作成、ファイル装置のＤＥ（ディスク・エンクロージャー）の作成、媒体面上への位置決め信号の書き込み等、全ての作業を行わなければ、ファームウエアの開発作業が開始できなかった。
このため、ファイル装置の開発に遅延が生じることが多く、製品開発の支障になっていた。また、研究・教育用途にファイル装置を利用する場合、回路構成、ＭＣＵの機械言語を修得しなければならず、研究開発の支障になっていた。
(b)ファイル装置の機械動作の測定
又、近年の磁気ファイル装置、光ファイル装置の小型化により、装置筐体に露出するプリント基板の面積は縮小化の傾向にある。さらにＩＣメモリカードとサイズが互換のファイル装置では、該ファイル装置のプリント基板はユーザが直接触れないように完全に覆われている。すなわち、プリント基板は外部に露出していない。また、ファイル装置はコンピュータの中に内蔵されて利用されることが多く、直接的にファイル装置に触れることは難しくなっている。
【０００４】
ところで、従来のファイル装置においては、装置の機械動作の測定、特にボイスコイルモータ（ＶＣＭ）やスピンドルモータ（ＳＰＭ）の動作測定においては、プリント基板に測定用の端子を設けて、測定器を接続して動作を計測していた。しかし、かかる方法では、プリント基板が外部に露出していなければならなず、プリント基板が外部に露出していない装置の動作を測定するには、プリント基板にケーブルをはんだ付けするなどの変更を加えたり、ファイル装置の筐体を加工してプリント基板を外部へ露出させたりしている。しかし、全ての装置に対してかかる変更を加えるわけにはいかず、工場で量産する場合の動作確認の障害になっていた。
【０００５】
また、もともとファイル装置はコンピュータに内蔵して使用されることが多いため、実際に使用されている状況での動作を測定しようとすると、ファイル装置を搭載したコンピュータの筐体に穴を開けたり、蓋を取り外したりする必要があり、測定作業が面倒になっている。しかも、穴を開けたり、蓋を取り外したりするため、動作測定時の環境が実際の環境とは異なり、正確な動作測定ができない問題があった。例えば、装置の動作を計測するために装置にケーブルを余分に取り付けると、特に筐体サイズが小さい場合にその影響が無視できず、実際の装置の動作を正確に測定できない問題点があった。
さらに装置の動作が不良になった場合に、現場で動作を確認するためには、カバーシートをはずしたり、はんだ付けを行ったりする必要があり、装置自身を傷つけることがあり、商品価値を落すことになっていた。
【０００６】
【発明が解決しようとする課題】
以上から、本発明の第１の目的は、既存のファイル装置を用いて、新規ファイル装置におけるＭＣＵのファームウエアの開発を遅延なく、迅速に行なえるファイル装置の開発システム及び開発装置を提供することである。
本発明の第２の目的は、既存ファイル装置と、開発装置と、これらを接続する接続装置の連携によりＤＥの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、製作されてなくても、新規ＭＣＵのファームウエアの開発ができるファイル装置の開発システムを提供することである。
本発明の第３の目的は、ファイル装置を対象にした制御系（ＭＣＵ）の研究・実験教育用のファームウエアの開発が可能な開発システムを提供することである。
本発明の第４の目的は、開発装置にコンピュータを接続することにより、コンピュータよりＭＣＵのファームウェアの開発を行なえる開発システムを提供することである。
【０００７】
【課題を解決するための手段】
上記課題は本発明によれば、既存のファイル装置との間でヘッド現在位置情報や電流値情報の授受を所定時間間隔で行なう手段と、既存のファイル装置から送られてくるヘッドの現在位置情報に基づいて、該ファイル装置のヘッド移動用モータに流す電流値を決定するファームウェアを内蔵するマイクロ・コントローラ・ユニットと、ファイル装置より所定時間間隔で送出されるヘッド位置情報やヘッド速度を表示する手段とを備え、ファームウェアにより決定した電流値に基づいて前記既存ファイル装置のヘッド移動用モータを駆動し、該ファイル装置より所定時間間隔で送出されるヘッド位置情報に基づいて次の電流値を決定すると共に、ファイル装置より所定時間間隔で送出されるヘッド位置情報やヘッド速度を表示手段に表示してファイル装置の動作を監視し、前記マイクロ・コントローラ・ユニットのファームウェアの良否や修正すべき点を把握できるようにしたファイル装置の開発装置、により達成される。
又、上記課題は本発明によれば、既存のファイル装置と、新規ファイル装置を構成するＭＣＵのファームウェアを開発する開発装置を備え、該開発装置は、▲１▼ファイル装置との間でヘッド現在位置情報や電流値情報の授受を所定時間間隔で行なう手段と、▲２▼ファイル装置から送られてくるヘッドの現在位置情報に基づいて、該ファイル装置のヘッド移動用モータに流す電流値を決定するためのファームウェアを内蔵するＭＣＵと、▲３▼ファイル装置より所定時間間隔で送出されるヘッド位置情報やヘッド速度を表示する手段とを備え、ファイル装置は、▲１▼開発装置より送られて来る電流値に基づいて前記モータを駆動する手段と、▲２▼ヘッド現在位置情報を所定時間間隔で開発装置に送出する手段を備え、開発装置は、ファームウェアによりファイル装置より送出されてくるヘッド位置情報に基づいて次の電流値を決定すると共に、該ヘッド位置情報やヘッド速度を前記表示手段に表示してファイル装置の動作を監視し、前記ファームウェアの良否や修正すべき点を把握できるようにしたファイル装置の開発システム、により達成される。
【作用】
既存ファイル装置は位置情報を開発装置に所定時間間隔で転送する。開発装置のファームウェアは該位置情報に基づいてヘッドを所望位置に移動させるためのボイスコイルモータＶＣＭ電流値を算出し、該電流値をファイル装置１に送る。ファイル装置のＶＣＭ駆動回路は、開発装置より送られて来た電流値に基づいてボイスコイルモータを駆動し、ＭＣＵはヘッド現在位置を検出し、該位置情報を開発装置に送出する。開発装置のファームウェアはファイル装置より送られてくるヘッド位置情報に基づいて次の電流値を決定する。開発装置は該ヘッド位置情報に基づいてファイル装置の動作を監視し、ファームウェアの作成、修正等を行なう。このようにすれば、開発装置には研究開発の対象となるＭＣＵの動作に必要な最低限の回路を搭載するだけでよく、既存のファイル装置を用いて該ＭＣＵのファームウエアの開発を遅延なく、迅速に行なうことができる。
また、既存のファイル装置と開発装置間を接続する接続装置を中間に設け、該接続装置にファイル装置により情報が書き込まれると共に開発装置により該情報が読み出される記憶部と、開発装置により情報が書き込まれると共にファイル装置１により該情報が読み出される記憶部を設け、該記憶部を介して情報の送受を行なうようにすれば、既存のファイル装置と、開発装置と、これらの接続装置との連携により、ＤＥの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、製作されてなくても、新規ＭＣＵのファームウェアの開発ができる。
また、開発装置とバス接続されたコンピュータを設け、該コンピュータからファームウェアを開発装置に転送し、開発装置において該ファームウェアに基づいて電流値を決定するようにすれば、コンピュータよりＭＣＵのファームウェアの開発を容易に行なうことができる。
【０００８】
【実施例】
・本発明の原理
図１は本発明の原理説明図である。
図１（Ａ）の開発システムにおいて、１は既存のファイル装置であり、例えば製品として既に出荷されているような装置を利用する。２は新規ファイル装置に採用するＭＣＵのファームウェアを開発する開発装置である。ファイル装置１において、１ａは開発装置より送られて来る電流値に基づいてボイスコイルモータを駆動するＶＣＭ駆動回路、１ｂは所定時間間隔でヘッド現在位置情報、電流値の授受を行なう手段（ＭＣＵ）である。開発装置２において、２ａはファイル装置から送られてくるヘッドの現在位置情報に基づいて、該ファイル装置のヘッド移動用モータに流す電流値を決定するファームウェア、２ｂはファームウェアを内蔵するＭＣＵである。
図１（Ｂ）の計測システムにおいて、６はファイル装置、７は外部装置である。ファイル装置６において、６ａはファイル装置の機械部分の動作を示す各種データを時系列に計測する手段、６ｂは計測結果を数値として保存する保存手段、６ｃは計測結果をインタフェースを介して外部装置に転送する手段である。外部装置７において、７ａは転送されてきた計測値を記憶する記憶部、７ｃは計測値を表示する表示部である。
【０００９】
（a) ファイル装置の開発システム
既存ファイル装置１は位置情報を開発装置２に所定時間間隔で転送する。開発装置２のファームウェア２ａは該位置情報に基づいてヘッドを所望位置に移動させるためのボイスコイルモータＶＣＭ電流値を算出し、該電流値をファイル装置１に送る。ファイル装置１のＶＣＭ駆動回路１ａは、開発装置より送られて来た電流値に基づいてボイスコイルモータＶＣＭを駆動し、ＭＣＵ１ｂはヘッド現在位置を検出し、該位置情報を開発装置２に送出する。開発装置２のファームウェア２ａはファイル装置１より送られてくるヘッド位置情報に基づいて次の電流値を決定する。開発装置２は該ヘッド位置情報に基づいてファイル装置の動作を監視し、ファームウェアの作成、修正等を行なう。
以上のようにすれば、開発装置２には研究開発の対象となるＭＣＵの動作に必要な最低限の回路を搭載するだけでよく、既存のファイル装置を用いて該ＭＣＵのファームウエアの開発を遅延なく、迅速に行なうことができる。この場合、ＭＣＵに研究・実験教育用のファームウェアを実装することにより、ファームウェアの開発だけでなく、ファイル装置を対象にした制御系（ＭＣＵ）の研究・実験教育のファームウエアの開発を行なうことができる。
【００１０】
既存のファイル装置１と開発装置２間を接続する接続装置（図示せず）を中間に設け、該接続装置に▲１▼ファイル装置１により情報が書き込まれると共に開発装置２により該情報が読み出される記憶部と、▲２▼開発装置２により情報が書き込まれると共にファイル装置１により該情報が読み出される記憶部を設け、該記憶部を介して情報の送受を行なう。このようにすれば、既存のファイル装置１と、開発装置２と、これらの接続装置との連携により、ＤＥの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、製作されてなくても、新規ＭＣＵのファームウェアの開発ができる。又、デジタルの位置情報をアナログに変換するＤＡコンバータを接続装置に設け、ＤＡコンバータ出力に基づいてヘッド位置、ヘッド速度を表示するようにする。このようにすれば、ファームウェアによるヘッド制御の様子が判り、ファームウェアの開発を容易に行なうことができる。
【００１１】
ファイル装置１より開発装置２に、▲１▼該ファイル装置の種類、あるいは▲２▼ファイル装置におけるサーボ系の各種定数を送出し、開発装置は該種類に応じたサーボ定数あるいは送られてきたサーボ定数を用いてモータの電流値を決定する。このようにすれば、各種ファイル装置に応じた新規ＭＣＵの開発ができ、しかもサーボ定数を変えて応答の違いを調べることができる。
開発装置２とバス接続されたコンピュータを設け、該コンピュータからファームウェアを開発装置に転送し、開発装置は該ファームウェアに基づいて電流値を決定するようにする。又、開発装置２は位置情報、電流値情報をコンピュータに送出し、コンピュータはこれら情報に基づいてヘッドの位置及び速度をディスプレイ画面に表示する。更に、サーボ制御系のブロック線図をコンピュータに入力し、コンピュータは該ブロック線図を用いてシミュレーションを行ない、シミュレーション結果と、実際の位置情報、該位置情報に基づいて得られる実速度及び電流値を比較してファームウェアの開発を行なう。以上のようにすれば、コンピュータよりＭＣＵのファームウェアの開発を容易に行なうことができる。又、サーボ制御系のブロック線図をコンピュータに入力し、コンピュータは該ブロック線図をファームウェアに変換して開発装置に入力するように構成すれば、ファームウェアの開発を益々簡単に行なうことができる。
【００１２】
(b) ファイル装置の計測システム
計測手段６ａはファイル装置の機械部分の動作を示す各種データを時系列に計測し、保存手段６ｂは計測結果を数値として保存し、転送手段６ｃは計測結果をインタフェースを介して外部装置７に転送する。この場合、保存手段６ｂは、最新の複数の時刻における各種データを保存する。又、計測手段６ａは、複数の計測開始要因のうち指定された所定の要因が発生したときに計測を行なって計測値を保存する。更に、計測手段６ａは、複数の計測対象のうち指定された所定の計測対象の計測を行なって保存する。
以上のようにすれば、ファイル装置、特に小型のファイル装置の機械動作の測定を容易に行なえる。又、ファイル装置のプリント基板が外部に露出していない場合であっても、ファイル装置における機械動作の測定ができる。
【００１３】
又、計測手段６ａは、計測開始要因が発生する以前も計測を行ない、保存手段６ｂは指定時間分の最新の計測値を保存し、これにより計測開始要因発生前の前記指定時間分の計測値を保存する。この場合、保存手段は、計測開始要因発生前の前記指定時間分の計測値を循環的に記憶する領域と、計測開始要因発生後の計測値を記憶する領域を備え、転送手段６ｃは外部装置よりの要求により、計測値を外部装置に転送する際、保存手段に記憶されている計測値を時系列順に並び変えて転送する。以上のようにすれば、計測値が変化している途中で計測開始要因が発生してもそれ迄の計測値に続けて計測値を保存し、外部装置に出力することができる。
【００１４】
外部装置７は、受信した計測値を記憶し、該計測値を表示する。このようにすれば、計測値を参照してファイル装置の良否や不具合箇所を把握できる。又、外部装置７は計測値を解析して、ファイル装置内蔵の機械動作制御手段の制御定数を決定し、該制御定数を該制御手段に設定する。このようにすることにより、計測値に基づいて機械動作を最適に調整することができる。更に、外部装置にシミュレーション機能を設け、アクチュエータやモータを動作させる制御手段のシミュレーション結果と計測結果を同時に表示する。このようにすれば、シミュレーション結果と計測結果を比較して、機械動作をシミュレーション結果と一致するように調整することができる。
又、複数台のファイル装置を外部装置７に接続し、外部装置はファイル装置に所定の動作を行なわせた時の計測値を各ファイル装置より読み取る。このようにすれば、外部装置は各ファイル装置の計測値と予め定めた標準値を比較し、計測値が標準値より許容範囲を越えているファイル装置を不良品と判定して報知することができる。
【００１５】
更に、ファイル装置６と外部装置７間をパソコンネットワーク等の通信手段で接続し、遠隔地においてファイル装置の動作を計測するようにもできる。この場合、外部装置７は通信手段を介して受信した計測値を解析して、ファイル装置内蔵の機械動作制御手段の制御パラメータを決定し、該制御パラメータを通信手段を介してファイル装置６の制御手段に設定する。このようにすれば、遠隔地にいても、計測値に基づいて機械動作を最適に調整することができる。
【００１６】
（Ａ）本発明のファイル装置の開発システム
（a) 磁気ディスク装置の説明
(a-1) 構成
図２は磁気ディスク装置の構成図であり、１１はカバー、１２はベースである。スピンドル機構１３には所定枚数の記録媒体である磁気ディスク１４が所定間隔で並設されて取り付けられ、磁気ディスク１４の近傍には、回転軸（シャフト）１５により回動自在に構成されたアクチュエータアッセンブリ１６が設けられている。アクチュエータアッセンブリ１６は、回転軸１５に関して一方が駆動部（アクチュエータ）１７、他方がキャリッジアーム１８となっており、駆動部１７にはボイスコイルモータを構成するボイスコイル１９が設けられている。キャリッジアーム１８は磁気ディスク１４の枚数に応じた数が設けられ、その先端取付け部２０の両面又は片面に磁気ヘッドアッセンブリ２１が装着され、磁気ヘッド２２を磁気ディスク１４の半径方向所定位置に位置決めするようになっている。
【００１７】
磁気ディスク１４のディスク面には多数のトラックが形成され、各トラックは複数のセクタに分割されている。それぞれのセクタは図３に示すようにサーボ領域ＳＶＡとデータ領域ＤＴＡを備え、サーボ領域ＳＶＡにはセクタマーク（サーボマーク）ＳＭ、トラック番号ＴＮＯ．、位置情報パターンＰＰＴが記録されている。ヘッドが半径方向に移動しながら読み取った位置情報パターン信号（ヘッド出力）を復調回路に通すことにことにより、図４の実線で示すようにトラックを横切る方向に交番するπ／２（トラック幅の１／２）位相のずれた２つの三角波状の位置信号PosNとPosQが得られる。媒体上には、位置信号PosN、PosQを発生するために、PosＡ，PosＢ，PosＣ，PosＤの４つの信号が記録されており、これらを使って次式
PosＮ＝PosＡ−PosＢ
PosＱ＝PosＣ−PosＤ
により、復調回路で位置信号PosN、PosQを生成することができる。又、PosN、PosQ及びこれらの反転信号＊PosN、＊PosQを順に選択することにより鋸波状の位置信号（トラック中心からの位置偏差信号）Ｐａを発生することができる。
【００１８】
(a-2) サーボ回路
図５はヘッドを目標位置に位置決めするためのサーボ回路の構成図である。１３はスピンドルモータ、１４はスピンドルモータにより回転される磁気ディスク、１９は磁気ヘッドを半径方向に移動させる回転型のボイスコイルモータ（ＶＣＭ）、２２は磁気ディスク１４のデータをリード／ライトする磁気ヘッドである。
２３は磁気ヘッド２２が読み取った信号を自動利得制御してレベルを一定にするＡＧＣアンプである。磁気ヘッド２２によりサーボ領域から読み取った位置情報パターン信号はディスク内周に向かってその振幅が下がる。このため、平均出力が常に一定になるようにＡＧＣアンプ２３により自動利得制御をかけて、位置−電圧変換ゲインが場所によらず一定になるようにしている。２４は位置信号復調部であり、磁気ヘッド２２が読み取った位置情報パターン信号より２つの互いにπ／２位相が異なる位置信号PosＮ，PosＱを復調して出力する。２５は復調部から出力される位置信号PosＮ，PosＱをデジタル値に変換するＡＤコンバータ、２６は後述するサーボ制御を行なって、ＶＣＭを駆動する電流指令値を出力するマイクロ・コントローラ・ユニット（ＭＣＵ）、２７はデジタルの電流指令値をアナログに変換するＤＡコンバータ、２８はＶＣＭ駆動回路である。
【００１９】
ＭＰＵ２６は内蔵のファームウェアによりサーボ制御を行なって、ＶＣＭを駆動する電流指令値を出力する。ファームウェアの処理を機能的に分割してブロック化した構成が図５には示されている。２６ａは位置信号PosＮ，PosＱを用いてヘッドの現トラック位置を検出する位置検出部、２６ｂは位置信号PosＮ，PosＱを微分して実速度Ｖaを検出する速度検出部、２６ｃはヘッドの現トラック位置と目標トラック位置までのトラック数に基づいて所定の指令速度Ｖcを出力する指令速度発生部、２６ｄは指令速度Ｖcと実速度Ｖaの差信号Ｖｄを出力する速度差演算部、２６ｅは位置信号PosN、PosQ及びこれらの反転信号＊PosN、＊PosQを順に選択して図４（Ｂ）に示す位置信号Ｐａを出力する位置信号選択部、２６ｆはヘッドが目標トラック上に到達するまで速度差演算部２６ｄから出力される速度偏差信号Ｖdに応じた電流指令値を出力し、ヘッドが目標トラック上にきたとき、位置信号（トラック中心からの位置偏差信号）Ｐａに応じた電流指令値を出力する切り替え部である。
【００２０】
目標トラックが入力されると、指令速度発生部２６ｃは現トラック位置から目標トラック位置までのトラック数に基づいて指令速度Ｖcを発生する。切り替え部２６ｆは速度偏差信号Ｖｄを選択し、ボイスコイルモータ１９の電流指令値として出力する。該電流指令値はＤＡ変換された後、ボイスコイルモータ１９に入力する。これにより、ボイスコイルモータ１９は回転を開始し、ヘッド２２を目標トラックに向けて指令速度で移動させる。ヘッド２２は移動しながらサーボ領域に記録されている位置情報パターン信号ＰＰＴを読み取って出力する。位置情報パターンＰＰＴの読み取り信号（ヘッド出力）は位置信号復調部２４に入力され、位置信号PosＮ，PosＱが復調されてＭＣＵ２６に入力する。この位置信号PosＮ，PosＱを用いて、位置検出部２６ａはヘッドの現トラック位置を更新し、速度検出部２６ｂはヘッドの実速度を検出し、又、位置信号選択部２６ｅは位置偏差信号Ｐａを出力する。
【００２１】
指令速度発生部２６ｃは再び現トラック位置から目標トラック位置までのトラック数に基づいて指令速度Ｖcを発生し、速度差演算部２６ｄは指令速度と実速度の差である速度偏差信号Ｖdを出力する。切り替え部２６ｆは速度偏差信号Ｖｄを選択して出力し、以後、前述と同様の動作が繰り返されてヘッドは目標トラックに接近する。
ヘッドが目標トラック上に到来すると、切り替え部２６ｆは速度制御から位置制御に切り替え、位置信号選択部２６ｅから出力される位置偏差信号Ｐａを選択し，電流指令値として出力する。該電流指令値はＤＡ変換された後、ボイスコイルモータ１９に入力する。これにより、ボイスコイルモータ１９はヘッドをトラック中心に位置させるように回転する。以後、位置偏差信号Ｐａによる位置決め制御が行なわれ、最終的にヘッドは目標トラックの中心に位置決めされる。そして、以後、トラック中心にヘッドが位置するようにトラッキングサーボ制御が行なわれる。
【００２２】
以上では、あたかも連続的にサーボ制御が行なわれるように説明したが、実際は、ＭＣＵ２６は所定のサンプリング時間毎に離散的に上記サーボ制御を行なう。すなわち、各セクタのサーボ領域ＳＶＡにサーボマークＳＭが記録されており、該サーボマークが読み取られる毎にＭＣＵ２６にサーボ割込みが発生する。これにより、ＭＣＵ２６は位置信号PosＮ，PosＱを取り込み、該位置信号に基づいて上記処理を行なう。すなわち、サーボ割込みの周期がサンプリング周期となり、該サンプリング毎に離散的なサーボ制御が行なわれる。
【００２３】
(a-3) サーボ回路のブロック線図
ボイスコイルモータＶＣＭは電流を与えられて磁気ヘッドを目標トラックへ移動させるものであり、磁気ヘッドの位置ｙは次式のように電流ｕの二重積分に比例した形で表現される。
ｙ＝（ＢＬ／ｍ）∬ｕｄｔ2
ただし、Ｂは磁束密度、Ｌはコイル長、ｍはコイルの重量である。
上式をラプラス変換して、初期値を０とおけば、
（ｙ／ｕ）＝（ＢＬ／ｍｓ2）
と表現される。このように、電流→位置の関係式はラプラス演算子ｓを利用して、上式のように表現される。制御対象であるＶＣＭの特性がラプラス演算子ｓで表現されるように、制御を行なう補償器の特性もラプラス演算子ｓで表現することができる。
【００２４】
図６は、図５の位置制御系に着目した場合のブロック線図であり、３１は目標位置と観測位置との差に応じた電流指令を出力する演算部、３２は補償器、３３はボイスコイルモータである。補償器３２の伝達関数はリードラグ・フィルタ形式の場合、
（ｓ＋ω1）／（ｓ＋ω2）
となり、ＰＩレギュレータとリードラグを合わせた形式では、
Ｋ｛（ｓ＋ω1）／ｓ｝・｛（ｓ＋ω2）／（ｓ＋ω3）｝
となり、ＰＩＤレギュレータ形式の場合には
Ｋ（ｓ2＋２ζωｓ＋ω2）／ｓ
となる。その他、オブザーバを利用した形式もある。上式中ω1〜ω3Ｋ等はサーボ定数である。
【００２５】
図７はシーク制御時において利用される速度制御系のブロック線図であり、３４は目標位置までの差に応じた目標速度（指令速度）を発生する目標速度生成器、３５は観測位置信号よりヘッドの実速度を演算する速度計算部、３６は目標速度と実速度の差に応じた電流指令を出力する演算部である。演算部３１は現在の位置と目標位置との差から現在の目標速度を生成する。又、速度計算部３５は、過去のサンプリングにおける位置と現サンプリング時の位置とから実速度を計算する。演算部３６は目標速度と実速度の差分をとり、速度誤差を生成して電流指令として補償器３２に入力し、補償器３２はボイスコイルモータへの指示電流値を計算し、該電流をボイスコイルモータに流す。
【００２６】
補償器３２の伝達関数は、ラプラス演算子ｓの多項式で表現され、例えば、
Ｋ（一定値）
や、ＰＩレギュレータ形式、すなわち、
Ｋ（ｓ＋ω）／ｓ
などがある。現サンプリング時刻ｋにおける実速度V(k)は、１つ前のサンプリング時刻(k-1)における位置をX(k-1)、現サンプリング時刻ｋにおける位置をX(k)とすれば、
V(k)＝X(k)−X(k-1)
により計算できる。
以上より、ボイスコイルモータを制御するためには、位置情報を受取、電流値をボイスコイルモータに供給すればよい。
【００２７】
(b) 本発明の開発システムの全体構成
図８は本発明のファイル装置の開発システムの構成図である。
１は製品として既に出荷されているような既存のファイル装置、２は新規ファイル装置に採用するＭＣＵのファームウェア、あるいは研究、教育用のファームウェアを開発する開発装置、３はファイル装置１と開発装置２間を接続する接続装置である。既存のファイル装置１はヘッドの位置情報を接続装置３を介して開発装置２に転送し、開発装置２から指令された電流値に基づいボイスコイルモータを駆動する。又、開発装置２はファイル装置から送られたヘッドの位置情報に基づいてボイスコイルモータを駆動する電流指令値を計算し、該電流指令値を接続装置３を介して既存のファイル装置１に転送する。
【００２８】
高速かつ低消費電力の新たなＭＣＵが提供されて利用できるようになると、既存のファイル装置に実装されている旧来のＭＣＵに変えて新しいＭＣＵを採用する必要が生じる。かかる場合、新たなＭＣＵ用のファームウェアを開発しなければならない。又、製品化されたファイル装置のＭＣＵはローコストに押えるために、機能は最小限に押えられている。しかし、ファイル装置の教育、研究用にはコスト的な制約がないため、複雑な制御ができるようになっている。かかる場合にも、高速かつ低消費電力の新たなＭＣＵが提供されると、新たなＭＰＵを用いて複雑な制御ができるようにフファームウェアを開発しなければならない。このため、本発明では既存のファイル装置を用いてファームウェアの開発を行なうようにしている。
【００２９】
一般に、ファイル装置のサーボ制御用ファームウェアは、位置情報に基づいてボイスコイルモータを駆動するための電流指令を計算して出力する。従って、ファイル装置よりヘッドの位置情報を外部へ出力し、外部で電流指令値を計算してファイル装置に指示できれば、外部でファームウェアの開発ができるようになる。そこで、図８において、▲１▼既存のファイル装置１はヘッドの位置情報を検出して開発装置２に転送する。▲２▼開発装置２はヘッドの位置情報より電流指令値を計算し、該電流指令を既存のファイル装置１に転送する。▲３▼ファイル装置１は開発装置から送られてきた電流指令値に基づいてボイスコイルモータを駆動する。▲４▼ファイル装置１、開発装置２は以上の動作をサーボ割込みが発生する毎に行なう。
【００３０】
以上のようにすれば、開発装置２の制御で既存ファイル装置１のサーボ制御を行なうことができる。換言すれば、開発装置２に新ＭＣＵを実装し、該ＭＣＵがファームウェアに従って動作するように構成すれば、ファームウェアにより既存ファイル装置１のサーボ制御を実行することができ、該ファームウェアの開発ができる。例えば、既存のファイル装置１における機械動作（ヘッド位置、ヘッド速度等）を監視する手段（表示装置など）を開発装置に接続することにより、開発装置２のファームウェアの良否、あるいは修正すべき点等を把握でき、新ＭＣＵ用のファームウェアの開発ができるようになる。
【００３１】
(c) 既存ファイル装置
図９は既存の磁気ファイル装置の構成図であり、５１はマイクロ・コントローラ・ユニット（ＭＣＵ）であり、図５のＭＣＵ２６と同様のサーボ制御、その他の制御を行なう。ＭＣＵ５１にはＲＯＭ、ＲＡＭが内蔵され、ＲＯＭにはサーボ制御用のファームウェアを始めとする各種プログラムが記憶されている。５２は外部ＲＡＭ、５３はホスト装置等とインタフェースを介して接続されたハードディスクコントローラＨＤＣ、５４はがＨＤＣ用のバッファＲＡＭ、５５はヘッドと接続され、データのリード／ライトを行なうリード・ライト回路、５６はボイスコイルモータＶＣＭを駆動するＶＣＭ駆動回路、５７はスピンドルモータＳＰＭを駆動するＳＰＭ駆動回路、５８は衝撃検出回路であり、ショックセンサを内蔵し、ファイル装置に加わる衝撃を検出する。衝撃発生時にはデータのリード／ライトの誤りが発生するから、誤動作を防止するためにショック検出時にＭＣＵはリード／ライトを停止するように制御する。５９は外部装置とのインタフェース部である。各部はそれぞれバス線６０を介してデータ授受可能になっており、又、図８の接続装置３とバス接続されている。
【００３２】
ＭＣＵ５１のプログラムは、▲１▼周辺ＩＣを操作してボイスコイルモータＶＣＭやスピンドルモータＳＰＭ等の機械部品を制御し、▲２▼リード・ライト回路５５の設定制御を行ない、▲３▼ハードディスクコントローラ５３を操作してインタフェースのやり取りを行ない、更には、▲４▼開発装置２との間で位置情報、電流値及びコマンドの授受制御を行なう。ボイスコイルモータＶＣＭ、スピンドルモータＳＰＭ等の機械部品の操作はＭＣＵ５１により行なわれるため、すべて数値情報として管理されている。機械動作の情報を格納する領域として、ＭＣＵ内蔵のＲＡＭ、外部ＲＡＭ５２、ＨＤＣのバッファ等５４が利用できる。
【００３３】
(d) 開発装置
図１０は開発装置２の構成図であり、６１はＭＣＵ、６２はＲＯＭ、６３はＲＡＭである。各部はバスで接続されてデータ授受可能になっており、必要最小限の構成になっている。又、開発装置は図８の接続装置３とバス接続されている。ＲＯＭ６２にはプログラムが記憶されており、ＭＣＵは該プログラムに従って既存ファイル装置１との間で情報やコマンドの授受制御を行うと共に、MCU内蔵のROMに記憶されているサーボ制御用のファームウェアに従って電流値の計算を行なうようになっている。
尚、電源投入後にファイル装置１より該ファイル装置の種類が送られて来る場合には、図１１に示すようにファイル装置の種類に対応させて、(1)各種サーボ定数、(2)サンプリング時間、(3)トラック幅、(4)加速度定数、(5)最大電流値等がＲＯＭ６２に記憶される。
【００３４】
(e) 接続装置の構成
図１２は接続装置３の構成図である。６５は第１のＲＡＭであり、ファイル装置１により情報（位置情報）が書き込まれると共に開発装置２により該情報が読み出されるもの、６６は第２のＲＡＭであり、開発装置２により情報（指令電流値）が書き込まれると共にファイル装置１により該情報が読み出されるものである。ファイル装置１側から見ると、第１ＲＡＭ６５はファイル装置側ライト用ＲＡＭであり、第２ＲＡＭ６６はファイル装置側リード用ＲＡＭである。又、開発装置２側から見ると、第１ＲＡＭ６５は開発装置側リード用ＲＡＭであり、第２ＲＡＭ６６は開発装置側ライト用ＲＡＭである。
尚、サーボ割込み信号ＳＩＮＴはメモリ介さずダイレクトに開発装置２に入力するようになっている。
【００３５】
図１３はファイル装置１と開発装置２間で送受される情報及びコマンドのメモリ配置説明図である。アドレス０〜５は第１のＲＡＭ６５のアドレス、アドレス６〜７は第２のＲＡＭ６６のアドレスである。
ファイル装置１から開発装置２へ送出する情報は、位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号であり、これらはアドレス０〜４に書き込まれる。又、開発装置２へ送出する各種コマンドＣＭＤ１はアドレス５に書き込まれる。
一方、開発装置２からファイル装置１へ送出する情報は、指令電流値でありアドレス６に書き込まれる。又、ファイル装置１へ送出する各種コマンドＣＭＤ２はアドレス７に書き込まれる。
【００３６】
ファイル装置から開発装置へのコマンドＣＭＤ１には、PosReqコマンド、CurAcKコマンド、DrvFailコマンドの３種類があり、以下の意味を有している。
0003829994.tif 000002
従って、開発装置２はアドレス５にコマンドＣＭＤ１が書き込まれたか常に監視し、書き込まれた場合には、該コマンドＣＭＤ１を読み取って識別することにより、▲１▼ファイル装置により位置情報がレジスタに書き込まれたか、▲２▼ファイル装置により電流値が読み取られたか、▲３▼エラーが発生したかを把握することができる。そして、位置情報がレジスタに書き込まれた場合には、直ちに該情報をレジスタから読み取ることができ、位置情報の送受が可能となる。
【００３７】
開発装置２からファイル装置１へのコマンドＣＭＤ２には、PosAckコマンド、CurReqコマンド、DrvGoコマンドの３種類があり、以下の意味を有している。
0003829994.tif 000003
従って、ファイル装置１はアドレス７にコマンドＣＭＤ２が書き込まれたか常に監視し、書き込まれた場合には、該コマンドＣＭＤ２を読み取って識別することにより、▲１▼開発装置２により位置情報がレジスタから読み取られたか、▲２▼開発装置２により電流値がレジスタに書き込まれたか、▲３▼起動／停止の別を把握することができる。そして、指令電流値がレジスタに書き込まれた場合には、直ちに該情報をレジスタから読み取ることができ、指令電流値の送受が可能となる。
【００３８】
(f) 動作タイミング
図１４はファイル装置１と開発装置２の動作タイミング説明図である。
ファイル装置１がサーボマークを検出するとサーボ割込み信号ＳＩＮＴが発生する。これにより、ファイル装置１のＭＣＵ５１は位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を検出し接続装置３の第１ＲＡＭ６５に書き込むと共に、コマンドPosReqを”１”にする。開発装置２のＭＣＵ６１はコマンドPosReqが”１”になると第１ＲＡＭ６５に書き込まれた位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を読み取ると共に、コマンドPosAckを”１”にする。ついで、ＭＣＵ６１はサーボ制御用のファームウェアに従ってサーボ制御計算を実行して指令電流値を求め、該電流値を接続装置３の第２ＲＡＭ６６に書き込むと共に、コマンドCurReqを”１”にする。ファイル装置１のＭＣＵ５１はコマンドCurReqが”１”になると、第２ＲＡＭ６６に書き込まれた電流値を読み取ると共に、ＶＣＭ駆動回路５６に該指令電流値を入力してボイスコイルモータＶＣＭを駆動する。
【００３９】
(g) ファイル装置と開発装置の処理
(g-1) 処理内容
図１５はファイル装置１と開発装置２の処理内容説明図表であり、縦方向に時系列的に示しいている。
サーボ割込みが発生すると(ステップ１０１ａ）、ファイル装置１は位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号（ＧＲＡＹコード）を読み込み、コマンドPosAckが”０”であることを確認して、これら位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を接続装置３のレジスタ（第１ＲＡＭ）６５に書き込み、コマンドPosReqを”１”にセットする（ステップ１０２ａ）。ついで、コマンドPosAckが”１”になるまで待つ（ステップ１０３ａ）。尚、スピンドルモータＳＰＭの回転制御はこの待ち時間において行なう。
【００４０】
一方、開発装置２は割込み信号が発生すると（ステップ１０１ｂ）、コマンドPosReqが”１”になるまで待ち（ステップ１０２ｂ）、コマンドPosReqが”１”になると、位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を第１ＲＡＭ６５から読み出し、コマンドPosAckを”１”にセットする（ステップ１０３ｂ）。以後、コマンドPosReqが”０”になるまで待つ（ステップ１０４ｂ）。
ファイル装置１はコマンドPosAckが”１”になると、コマンドPosReqを”０”にクリアし（ステップ１０４ａ）、コマンドCurReqが”１”になるまで待つ（ステップ１０５ａ）。開発装置２は、コマンドPosReqが”０”になると、コマンドPosAckをクリアし、ファームウェアによりサーボ系の計算処理を実行して、指令電流値を算出する。ついで、コマンドCurAck”０”であるか確認後、指令電流値を接続装置の第２ＲＡＭ６６に書き込み、コマンドCurReqを”１”にする（ステップ１０５ｂ）。以後、コマンドCurAckが”１”になるまで待つ（ステップ１０６ｂ）。
【００４１】
ファイル装置１はコマンドCurReqが”１”になると、指令電流値を接続装置３の第２ＲＡＭ６６から読み取り、ボイスコイルモータＶＣＭに指令電流を供給する。又、コマンドCurAckを”１”にセットする（ステップ１０６ａ）。しかる後、コマンドCuReqが”０”になるまで待つ（ステップ１０７ａ）。
コマンドCurAckが”１”になれば、開発装置２はコマンドCuReqを”０”にクリアする（ステップ１０７ｂ）。ファイル装置１はコマンドCuReqが”０”になれば、コマンドCurReqを”０”にクリアする（ステップ１０８ａ）。以後、次のサーボ割込みが発生するまで待つ。
尚、１回の割込みで、複数回ボイスコイルモータの電流値を指示するマルチレート制御がある。かかるマルチレート制御の場合には、１割込み周期の期間内において所定時間間隔で以下の処理を行なう。従って、上記処理後に更に以下の処理を行う。すなわち、開発装置２は所定時間後のヘッド位置を予測してサーボ系の計算処理を実行して、指令電流値を算出する。ついで、コマンドCurAck”０”であるか確認後、指令電流値を接続装置の第２ＲＡＭ６６に書き込み、コマンドCurReqを”１”にする（ステップ１１１ｂ）。以後、コマンドCurAckが”１”になるまで待つ（ステップ１１２ｂ）。
【００４２】
ファイル装置１はコマンドCurReqが”１”になるまで待ち（ステップ１１１ａ）、コマンドCurReqが”１”になると、指令電流値を接続装置３の第２ＲＡＭ６６から読み取り、ボイスコイルモータＶＣＭに指令電流を供給する。又、コマンドCurAckを”１”にセットする（ステップ１１２ａ）。しかる後、コマンドCuReqが”０”になるまで待つ（ステップ１１３ａ）。
コマンドCurAckが”１”になれば、開発装置２はコマンドCuReqを”０”にクリアする（ステップ１１３ｂ）。ファイル装置１はコマンドCuReqが”０”になれば、コマンドCurReqを”０”にクリアする（ステップ１１４ａ）。以後、同様にマルチレート制御を行ない、次のサーボ割込みが発生するまで待つ。
【００４３】
(g-2) ファイル装置の処理
図１６及び図１７はファイル装置１の処理フローであり、図１６はパワーオン時の処理及びインタフェース処理のフロー（バックグランド処理）、図１７は割込み発生時の処理（フォワグランド処理）である。
▲１▼ バックグランド処理
パワーオンすると（ステップ２０１）、コマンドDrvGoが”１”になっているか、換言すれば、ファームウェア開発制御の起動が開発装置２より指令されているかチェックする（ステップ２０１）。コマンドDrvGo＝”０”であり、起動が指令されていない場合には、コマンドDrvGoが”１”になるのを待つ。一方、コマンドDrvGoが”１”の場合には、エラーレジスタの内容をクリアすると共に、スピンドルモータＳＰＭを起動し、又、トランキングサーボ制御によりヘッドをトラック中心位置に位置決め（オントラック）する（ステップ２０３）。
【００４４】
ついで、再び、コマンドDrvGoが”１”になっているかチェックし（ステップ２０４）、DrvGo＝”０”の場合には、スピンドルモータＳＰＭの回転を停止し（ステップ２０５）、ステップ２０２に戻り以降の処理を実行する。
DrvGo＝”１”の場合には、エラーが発生しているかチェックし（ステップ２０６）、発生していれば、コマンドDrvFailを”１”にして接続装置３に書き込むと共に、ボイスコイルモータＶＣＭの電流を零にし（ステップ２０７）、ステップ２０４に戻り以降の処理を実行する。
エラーが発生してなければ、コマンドCurReqが”１”であるかチェックし（ステップ２０８）、CurReq＝”０”の場合にはステップ２０４に戻り以降の処理を実行する。一方、CurReq＝”１”の場合には、コマンドCurAckが”１”かチェックする（ステップ２０９）。コマンドCurAck＝”０”の場合には、接続装置３の第２ＲＡＭ６６より指令電流値を読み取り、コマンドCurAckを"１"にする（ステップ２１０）。しかる後、あるいは、ステップ２０９においてコマンドCurAck＝”１”の場合には、コマンドCurReqが”１”であるかチェックする（ステップ２１１）。CurReq＝”１”の場合にはステップ２０４に戻り、以降の処理を実行し、CurReq＝”０”の場合には、コマンドCurAckを”０”にしてステップ２０４に戻り、以降の処理を実行する。
【００４５】
▲２▼ フォアグランド処理
サーボ割込みが発生すると（ステップ２５１）、ファイル装置１は位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号（ＧＲＡＹコード）を検出する（ステップ２５２）。ついで、コマンドPosAckが”０”であるかチェックし（ステップ２５３）、PosAck＝”０”の場合には、これら位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を接続装置３のレジスタ（第１ＲＡＭ）６５に書き込むと共に、コマンドPosReqを”１”にセットする（ステップ２５４）。
しかる後、あるいはステップ２５３においてPosAck＝”１”の場合には、スピンドルモータＳＰＭの制御を行なう（ステップ２５５）。ついで、コマンドPosAckが”１”かチェックし（ステップ２５６）、PosAck＝”０”の場合には、次のサーボ割込みが発生するまで待つ。一方、PosAck＝”１”の場合には、コマンドPosReqを”０”にクリアし（ステップ２５７）、次のサーボ割込みを待つ。
【００４６】
(g-3) 開発装置の処理
図１８及び図１９は開発装置の処理フローであり、図１８はパワーオン時。あるいはＩＣＥ（In Circuit Emulator)起動時の処理フロー、図１９は割込み発生時の処理フローである。
▲１▼パワーオン時あるいはＩＣＥ起動時の処理
パワーがオンすると、あるいはＩＣＥが起動すると（ステップ３０１）、開発装置２は割込みを禁止すると共に各種コマンド（DrvGo, PosAck, CurReq)を”０”にクリアし、又、指令電流値を０にする（ステップ３０２ａ）。ついで、初期値を計算、設定し（ステップ３０２ｂ）、コマンドDrvGoを”１”にしてファイル装置１を起動し、割込みを許可する（ステップ３０２ｃ）、
しかる後、コマンドDrvFail="１"かチェックし（ステップ３０３）、DrvFail="１"であれば、換言すれば、ファイル装置１にエラーが発生していれば各種コマンド（DrvGo, PosAck, CurReq)を”０”にクリアし、一定時間経過後にコマンドDrvGoを”１”にしてファイル装置を再起動する（ステップ３０４）。以後、ステップ３０３に戻り以降の処理を実行する。
【００４７】
一方、ステップ３０３において、DrvFail="０"であれば、換言すればファイル装置１にエラーが発生していなければ、ファイル装置よりコマンドを受信したかチェックし（ステップ３０５）、受信してなければステップ３０３に戻る。しかし、コマンドを受信していれば、コマンド動作中であるかチェックする（ステップ３０６）。コマンド動作中でなければ該コマンドを実行し（ステップ３０７）、ステップ３０３に戻り、コマンド実行中の場合には、ファイル装置にエラー通知し（ステップ３０８）、ステップ３０３に戻る。
【００４８】
▲２▼サーボ割込み時の制御
割込み信号が発生すると（ステップ３５１）、コマンドを受信しているかチェックし（ステップ３５２）、受信していれば該コマンド処理実行する（ステップ３５３）。コマンドを受信していない場合、あるいはコマンド処理後、開発装置２はコマンドPosReqが”１”になるまで待ち（ステップ３５４）、コマンドPosReqが”１”になると、位置情報 PosＡ，PosＢ，PosＣ，PosＤ及びトラック番号を接続装置３の第１ＲＡＭ６５から読み出し、コマンドPosAckを”１”にセットする（ステップ３５５）。以後、コマンドPosReqが”０”になるまで待つ（ステップ３５６）。
開発装置２は、コマンドPosReqが”０”になると、コマンドPosAckをクリアし（ステップ３５７）、ファームウェアによりサーボ系の制御計算処理を実行して、指令電流値を算出する（ステップ３５８）。ついで、コマンドCurAck”０”であるか確認後（ステップ３５９）、指令電流値を接続装置の第２ＲＡＭ６６に書き込み、コマンドCurReqを”１”にする（ステップ３６０）。以後、コマンドCurAckが”１”になるまで待つ（ステップ３６１）。
【００４９】
コマンドCurAckが”１”になれば、開発装置２はコマンドCuReqを”０”にクリアする（ステップ３６２）。以後、次のサーボ割込みが発生するまで待つ。
マルチレート制御を実行するの場合には、開発装置２はファームウェアにより所定時間後のヘッド位置を予測してサーボ系の計算処理を実行して、指令電流値を算出する（ステップ３７１）。ついで、コマンドCurAck”０”であるか確認後（ステップ３７２）、指令電流値を接続装置の第２ＲＡＭ６６に書き込み、コマンドCurReqを”１”にする（ステップ３７３）。以後、コマンドCurAckが”１”になるまで待ち（ステップ３７４）、コマンドCurAckが”１”になれば、開発装置２はコマンドCuReqを”０”にクリアする（ステップ３７５）。以後、同様にマルチレート制御を行ない、次のサーボ割込みが発生するまで待つ。
【００５０】
尚、以上処理実行中にファイル装置１における機械動作（ヘッド位置、ヘッド速度等）を表示装置等により監視することにより、開発装置２のファームウェアの良否、あるいは修正すべき点等を把握でき、新ＭＣＵ用のファームウェアの開発ができるようになり、開発したファームウェアをRAM63に記憶する。最終的に開発されたファームウェアが正式に新MUCのファームウェアとしてそのROMに書き込まれる。
もちろん、新規のＭＣＵを利用してファームウェアを開発しても、装置を製品化する時点での対象となるファイル装置の仕様が異なる場合もある。特に、アクチュエータやモータの機械的な仕様が異なる可能性が大きい。しかし、一度、サーボ制御系のファームウェアの構造を定めておけば、アクチュエータやモータの仕様が若干異なる場合でも、ファームウェア内部の制御定数を一部変更するだけで対処できる。したがって、まだ実際の対象となるファイル装置が製作されていない時点で、先行して制御系のファームウェアの開発を行うことができる。さらに、最終的に製作する回路とは、当然のことながら駆動信号の与えかたや制御情報の読み取りかたが異なってくる。しかし、ファームウェアの構造を、制御系の計算、制御情報の取り込み、駆動信号の出力、とモジュール化して作成すれば、実際の回路が利用できる時点で、それらのモジュールを実際の回路に対応したモジュールに差し替えれば良い。
【００５１】
以上のようにすれば、開発装置２には研究開発の対象となるＭＣＵの動作に必要な最低限の回路を搭載するだけでよく、既存のファイル装置を用いて該ＭＣＵのファームウエアの開発を遅延なく、迅速に行なうことができる。又、既存のファイル装置と、開発装置と、これらの接続装置との連携により、ＤＥの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、製作されてなくても、新規ＭＣＵのファームウェアの開発ができる。
【００５２】
(h) ファイル装置開発システムの形態
開発システムの形態としては図２０（Ａ）〜（Ｄ）に示す４つの構成が考えられる。（Ａ）はファイル装置１、開発装置２、接続装置３の各々を独立した装置として相互にケーブルＣＢＬで接続する構成である。（Ｂ）は接続装置３と開発装置２とを同一筐体ＨＳに納め、ファイル装置１とケーブルＣＢＬで接続した構成である。（Ｃ）はファイル装置１と接続装置３とを筐体ＨＳに納めて一体化させ、開発装置２とケーブルＣＢＬで接続する構成である。（Ｄ）は各装置を筐体ＨＳに納めて一体化する構成である。
【００５３】
(i) 変形例
(i-1) 第１変形例
以上では、ファイル装置１より位置情報 PosＡ，PosＢ，PosＣ，PosＤを開発装置２に送出した場合であるが、ファイル装置において PosＡ，PosＢ，PosＣ，PosＤを用いて位置偏差信号Ｐａ（図４（Ｂ））を計算して開発装置に送るように構成することもできる。かかる場合には、４つのデータでなく、１つのデータを接続装置の第１ＲＡＭ６５にセットするだけでよい。
【００５４】
(i-2) 第２変形例
開発装置２のファームウェアがサーボ計算して電流値を決定するには、機械系のサーボ定数等が事前に判っていなければならない。そのため、ファイル装置の種類が代わるとサーボ定数を変更しなければならない。そこで、現在どのようなファイル装置が接続されているのかを判断する必要がある。
このため、ファイル装置１は位置情報を転送する前に、例えば、図１６のステップ２０３において、ファイル装置の種類を示すコードを送信する。例えば、
コード００１      ２．５インチ  タイプＡ
コード００２      ２．５インチ  タイプＢ
コード００３      ３．５インチ  タイプＡ
・・・
というようにコードによりファイル装置の種別が判るようにしておき、該コードを開発装置２に送る。開発装置２のＲＯＭ６２には図１１に示すデータが記憶されているから、ファイルコードに応じたサーボ定数、トラック幅、加速度定数、最大電流値・・・を読み出し、これら定数を用いてサーボ計算を実行する。このようにすれば、各種ファイル装置に応じた新規ＭＣＵの開発ができ、しかもサーボ定数を変えて応答の違いを調べることができる。
【００５５】
以上では、ファイルの種類を送出したが、サーボ定数、加速度定数・・・を直接開発装置に送出するように構成することもできる。又、さらに進んで、機械系の制御ブロックを転送する方法もある。例えば、次式
ＢＬ／ｍ（ｓ2＋２ζωｓ＋ω2）
のような伝達関数でボイスコイルモータＶＣＭが表現される時、ファイル装置１は分母、分子の各項の係数を開発装置に転送する。これらの定数を開発装置２のＭＣＵで受信したら、図１８のステップ３０２ｂにおいてそれらの定数を利用して制御定数を計算する。例えば、設計時にＢＬ／ｍの値を１．０として正規化して設計しておき、実際に動作させる時に、ＢＬ／ｍの値を受信して、その値を掛けて（もしくは割って）制御系の計算を行なう。
【００５６】
(i-3) 第３変形例
開発装置２にＭＣＵそのものを搭載する他に、インサーキット・エミュレータを利用する方法もある。かかるの場合には、デバック用にブレークポイントが掛けられる。
又、接続装置３の第１、第２ＲＡＭを介してファイル装置と開発装置間で情報の送受を行なったが、ＲＳＣ２３２Ｃに代表されるシリアルポートを利用することもできる。
【００５７】
(i-4) 第４変形例
以上では、既存のファイル装置１、開発装置２、接続装置３によりファイル装置開発システムを構成した場合であるが、開発装置２にパソコンやワークステーションに代表されるコンピュータシステムを接続してファームウェアの開発を行なうように構成することもできる。
図２１はかかるコンピュータを接続したファイル装置の開発システムの構成図である。４はファイル装置１、開発装置２、接続装置３を搭載した拡張ボードであり、５はコンピュータである。コンピュータ５には拡張バスのスロットＳＬが設けられ、該スロットＳＬに拡張ボード４を挿入することにより開発装置２とコンピュータ５間を拡張バスを介して接続できるようになっている。コンピュータ５において、５ａはＣＰＵ、５ａは各種プログラムが記憶されたＲＯＭ、５ｃはＲＡＭ、５ｄはキーボード、５ｅはディスプレイユニット、５ｆはハードディスク、ＳＬは拡張バスのスロットである。
【００５８】
かかる開発システムにおいては、コンピュータ上で制御系のファームウェアを開発する。そして、拡張バスを介して開発装置２のＭＣＵ６１のバスにファームウェアのコードを転送する。その後、開発装置２のＭＣＵ６１を動作させ、ＭＣＵ６１は図１８、図１９のフローに従って電流値の計算処理を実行する。
この場合、開発装置２はコンピュータ５に位置情報、電流値情報を送出し、コンピュータ５はこれら情報に基づいてヘッドの位置及び速度をディスプレイ画面に表示する。このようにすれば、開発したファームウェアの良否や不具合個所が判り、修正等を容易に行なうことができる。
又、拡張ボードを複数枚利用することで、少しづつサーボ定数を変化させて応答の違いを調べることもできる。
【００５９】
更に、シミュレーションソフトウェアＳＭを併用することもできる。すなわち、コンピュータ５に制御系の構成をブロック線図で入力する。コンピュータ５はシミュレーションソフトウェアＳＭに基づいてブロック線図を用いてシミュレーションを行なう。そして、コンピュータ５は開発装置２より送られて来る実際の位置情報、該位置情報に基づいて得られる実速度、及び電流値をディスプレイユニット５ｅに表示させて、シミュレーション結果と比較することができる。このようにすれば、コンピュータによりＭＣＵのファームウェアの開発を容易に行なうことができる。
【００６０】
又、ブロック線図をファームウェアに変換できる変換ソフトウェアＣＳＦＴを用意することにより、ブロック線図のうちＭＣＵの制御に関係する部分をプログラムに変換して、実際に動作させることができる。ブロック線図をプログラムに変換するツールとしては、米国のThe MathWorks Inc社が発売している商品名SIMULINKというソフトウェアが利用できる。このソフトウェアは制御系の構成をブロック線図で入力し、該ブロック線図をＣ言語に変換することができる。従って、コンピュータ５は得られたＣ言語のプログラムを開発装置２のＭＣＵが使用できるコードに変換することにより、該開発装置２のＭＣＵのプログラム（ファームウェア）を得ることができる。このようにすれば、ファームウェアの開発を益々簡単に行なうことができる。
【００６１】
(i-5) 第５変形例
接続装置３にサーボ制御系の動作を確認するためのＤＡコンバータを設けることもできる。すなわち、図２２に示すように、接続装置３にデジタルの位置情報をアナログに変換するＤＡコンバータ３ａを設け、ＤＡコンバータ出力に基づいてヘッド位置、ヘッド速度を表示するようにする。このようにすれば、ファームウェアによるヘッド制御の様子が判り、ファームウェアの開発を容易に行なうことができる。
【００６２】
（Ｂ）ファイル装置の計測システム
(a) 計測システムの構成
図２３は本発明の計測システムの構成図であり、６はファイル装置、７はパソコン等の外部装置である。
ファイル装置６は、図９の既存ファイル装置１と殆ど同様のハードウェア構成を備えており、異なる点は、接続装置３（図８）へのバス線がないだけである。５１はマイクロ・コントローラ・ユニット（ＭＣＵ）であり、ＲＯＭ５１ａ、ＲＡＭ５１ｂが内蔵されている。ＭＣＵの内部ＲＯＭ５１ａにはサーボ制御用のファームウェア、機械動作計測用のファームウェアを始めとする各種プログラムが記憶されている。５２は外部ＲＡＭ、５３はハードディスクコントローラＨＤＣ、５４はＨＤＣ用のバッファＲＡＭ、５５はリード・ライト回路、５６はＶＣＭ駆動回路、５７はＳＰＭ駆動回路、５８は衝撃検出回路、５９は外部装置であるパソコン６とデータ授受を行なうインタフェース部、６０はバス線である。
【００６３】
ボイスコイルモータＶＣＭ、スピンドルモータＳＰＭ等の機械部品の制御はＭＣＵ５１で行なわれるため、全て数値情報として管理され、制御に必要な数サンプリング分の情報が内部ＲＡＭ５１ｂの所定記憶領域（機械動作情報記憶領域）に格納されている。
ファイル装置６には、ＲＡＭ５１ｂ、外部ＲＡＭ５２、ＨＤＣのバッファＲＡＭ５４があり、これらは機械動作の履歴情報を計測データとしてＮサンプリング分格納するために利用できる。従って、ＭＣＵ５１はこれらの領域のうちで利用可能な領域を判断して、機械動作の情報を計測データとして時系列的に格納していく。そして、外部装置７よりインターフェイスを介して計測結果の送出要求があった場合には、ＭＣＵ５１は前記領域に保存してある計測値を外部装置７へと時系列順に送出する。尚、従来は、サーボ制御に必要な数サンプリング分を内部ＲＡＭに記憶するだけであり、保存されている時間が極端に短く、又、保存されている情報が偏っており、任意の希望する情報を取り出すことが不可能であった。
【００６４】
(b) 内部ＲＡＭの記憶情報
内部ＲＡＭ５１ｂは、図２４に示すように、▲１▼ＶＣＭ、ＳＰＭ等の機械動作を示す各種情報を記憶する機械動作情報記憶領域51b-1、▲２▼トリガ識別情報記憶領域51b-2、▲３▼計測データ識別情報記憶領域51b-3、▲４▼計測制御情報記憶領域51b-4、その他のデータを記憶する領域を有している。
機械動作情報とは、ボイスコイルモータＶＣＭやスピンドルモータＳＰＭ等の機械動作に関係する情報であり、図２５に示すように、▲１▼ＶＣＭの位置（ヘッド位置）、▲２▼ＶＣＭの実速度、▲３▼ＶＣＭの目標速度、▲４▼ＶＣＭの電流値、▲５▼ＶＣＭ処理の現在の動作を表示するＲＡＭアドレス、▲６▼ＳＰＭの回転数などがある。これら機械動作情報は、サーボ制御に必要なサンプリング数分が機械動作情報保存領域51b-1に格納される。
【００６５】
トリガ識別情報とは、計測待ちモードにおいて、機械動作の計測を開始させる要因（トリガ）とその識別番号との対応を示すものである。図２６はトリガ情報の説明図であり、識別番号00はフリーラン（常時計測を行なう）を示し、01は電源投入、02はＳＰＭ回転開始、03はオントラック、04はシーク開始、05はシーク終了、06は衝撃検出、07はキャリブレーション開始を意味する。計測待ちモードにおいては、複数のトリガを設定し、いずれかのトリガが発生した時に計測を開始するようにできる。
【００６６】
計測データ識別情報は、計測データ識別番号と、計測データ（機械動作情報）が記憶されている内蔵ＲＡＭ（機械動作情報格納領域51b-1）のアドレスと、計測データのサイズの対応関係を示すものである。計測データとしては、図２７に示すように、▲１▼ＶＣＭの位置（ヘッド位置）、▲２▼ＶＣＭの実速度、▲３▼ＶＣＭの目標速度、▲４▼ＶＣＭの電流値、▲５▼ＶＣＭ処理の現在の動作を表示するＲＡＭアドレス、▲６▼ＳＰＭの回転数、▲７▼任意のＲＡＭアドレスに記憶されているデータがある。  計測方法指定情報は、計測の方法を指定する情報であり図２８に示すように、▲１▼測定間隔、▲２▼測定時間、▲３▼トリガ検出前の測定時間、▲４▼測定モード、▲５▼測定開始のトリガ、▲６▼計測するデータの種類等であり、外部装置７よりインタフェースを介して指示され、内蔵ＲＡＭ５１ｂの計測方法指定情報記憶領域51b-4に記憶される。
【００６７】
(c) 外部ＲＡＭ
計測データは前述のように、内部ＲＡＭ５１ｂ、外部ＲＡＭ５２、バッファＲＡＭ５４のいずれにも格納できる。外部ＲＡＭ５２に計測データを格納するものとすると、図２９に示すように外部ＲＡＭ５２のアドレスａ〜アドレスｃを計測データ格納領域とする。
フリーランモードではアドレスａから順次、前述の計測方法指定情報により指定された計測データがサンプリング周期（サーボ割込み周期）毎に時系列的に格納されて行き、アドレスｃまで格納すると再びアドレスａより上書きされる。すなわち、最新のＮサンプリング分の計測データが常時格納される。外部ＲＡＭ５２より計測データを読み出して外部装置７に転送するには、最も古い計測データより時系列順に読み出して外部装置へ転送する。
【００６８】
又、計測待ちモードでは、アドレスａ〜アドレスｂまでがトリガ発生前の計測データ記憶領域Ａとなり、アドレス（ｂ＋１）〜アドレスｃまでがトリガ発生後の計測データ格納領域Ｂとなる。トリガ発生前の計測データ記憶領域Ａの大きさは、前述の計測方法指定情報により指定された計測データ数、トリガ検出前の測定時間（サンプリング数）により決まる。この計測待ちモードでは、トリガ発生前までは、計測方法指定情報により指定された計測データが指定された測定時間分、順次時系列的にアドレスａから記憶領域Ａに格納されてゆき、アドレスｂまで格納すると、再びアドレスａから上書きされる。従って、最新のｎサンプリング分の計測データが記憶領域Ａに格納される。トリガが検出されると、以後の指定されたサンプリング数分の計測データがアドレス（ｂ＋１）より記憶領域Ｂに格納される。外部ＲＡＭ５２より計測データを読み出して外部装置７に転送するには、領域Ａから最も古い計測データより時系列順に読み出し、ついで、領域Ｂのアドレス（ｂ＋１）より順に読み出して外部装置へ転送する。すなわち、時系列に並び変えて出力する。
【００６９】
(d) 動作タイミング及びサーボプログラムの構造
(d-1) 動作タイミング
ＭＣＵのプログラムとしては、ＶＣＭやＳＰＭを制御するためのサーボプログラムと、外部装置との間でリード／ライトデータの送受や計測データの送受等を制御するインタフェースプログラムがある。
図３０はサーボ割込みとサーボプログラム及びインタフェースプログラムの動作タイミングのタイムチャートである。
ディスク媒体面上に記録されているサーボマーク信号ＳＭがＭＣＵ５１に与えられ、ＭＣＵ６１に対して一定時間間隔で割り込みが発生する。ＭＣＵ５１は割り込みが発生した時点で動作しているインタフェースプログラムの処理を一時中断して、サーボプログラムの処理を実行する。一連のサーボプログラムの処理が終了した時点で、再び中断中のインタフェースプログラムによる処理を再開する。
【００７０】
(d-2) サーボプログラムの構造
▲１▼サーボプログラムの構造
図３１は、サーボプログラムの内部構造である。先頭から順にボイスコイルモータＶＣＭ駆動処理４０１、スピンドルモータＳＰＭ駆動処理４０２、エラー発生時の処理４０３、計測処理４０４と順に実行していく。
【００７１】
▲２▼ＶＣＭの駆動処理
ＶＣＭの駆動処理４０１は内部でさらに分かれており、ある場合は、トラック・フォロー（トラッキング）制御、ある場合はシーク制御というように切り換えられている。図３２はＶＣＭ駆動処理フローである。
通常、ヘッドをトラック中心位置に位置させるオントラック処理（トラッキング）処理を行なう（ステップ４０１ａ）。かかるトラッキング処理中に、シークコマンドが指令されたかチェックし（ステップ４０１ｂ）、指令されていなければトラッキング処理を継続する。しかし、シークコマンドが指令されると、目標位置を取得し（ステップ４０１ｃ）、シーク処理を開始する（ステップ４０１ｄ）。シーク処理は指令位置までのトラック数に応じた指令速度を発生し、該指令速度と実速度の差に応じた指令電流値を計算してＶＣＭ駆動回路５６に入力する処理である。
【００７２】
ボイスコイルモータＶＣＭの回転によりヘッドが目標トラックの近傍に到達したかチェックし（４０１ｅ）、到達してなければシーク処理を継続する。ヘッドが目標位置近傍、例えば目標トラック上に到達すれば、トラック中心からの位置偏差が零となるように位置制御処理（整定待ち処理）を行なう（ステップ４０１ｆ）。ヘッドがトラック中心位置に近づいて、データライト又はデータリード可能な位置偏差範囲になったかチェックし（ステップ４０１ｇ）、該位置偏差範囲内に到達していない場合には位置制御を継続する。ヘッドがデータライト又はデータリード可能な位置偏差範囲に入れば、データライト又はデータリードを許可し（ステップ４０１ｈ）、始めに戻り、トラッキング処理を行なう。
【００７３】
▲３▼ＳＰＭ駆動処理
図３３はＳＰＭ駆動処理のフロー図である。
前回のサーボマーク検出時刻から今回のサーボマーク検出時刻までの時間を計測し（ステップ４０２ａ）、該計測時間と設定時間の差を演算する（ステップ４０２ｂ）。設定時間は、ディスクを周速一定で制御する場合において、セクタから隣接セクタまでの移動時間である。ついで、該差が零となるようにスピンドルモータの駆動電流値を計算してＳＰＭ駆動回路に供給する（ステップ４０２ｃ）。以後、始めに戻って同様の処理を繰り返す。
【００７４】
▲４▼計測処理
計測処理において、計測が不要な時は何もしないが、計測が必要なときには、ＶＣＭやＳＰＭの制御の処理と並行して計測処理を行なう。すなわち、他の機械制御処理と並行して計測処理を行ない、計測結果を予め確保しておいた外部ＲＡＭ５２の格納領域に格納する。そして、必要に応じて格納領域から計測値を読み出し、インタフェースを介して外部装置に転送することで外部装置は機械動作の状況を把握する。
【００７５】
(d-3) 計測処理
▲１▼計測処理の内部構造
図３４は計測処理の内部構造である。計測処理においては、外部装置7より指令されている計測モードを調べ(ステップ５０１）、該モードに応じてＮＯＰ(No Operation)処理（ステップ５０２）、フリーラン(FREE-RUN)処理（ステップ５０３）、計測待ち(TRG-WAIT)処理（ステップ５０４）、計測(MEASURE)処理（ステップ５０５）を行なう。
ＮＯＰモードは実際に計測はなにもせずに終了するモードである。又、フリーランモードは常にデータを計測するモードである。フリーランモードでは、計測データを予め定めた外部ＲＡＭ５２の格納領域（図２の参照）に格納して行き、該格納領域を越えたら、格納先のアドレスを開始位置へ戻して上書きを行ない、常に最新の計測データを保持する。計測待ちモードは、指定されたトリガが発行されるまでの待ちモードである。この計測待ちモードにおいては、トリガ発生前の計測時間を指定し、該計測時間分の機械動作情報を計測して格納領域に格納することもできる。計測モードは、トリガ検出後の処理であり指定数に達するまでの機械動作情報を計測し、計測データとして格納領域に格納する。
【００７６】
▲２▼フリーランモードの処理
図３５はフリーランモード時の処理フローである。
フリーランモードでは、トリガに関係なくサンプリング周期（サーボ割込み周期）毎に、常に外部より指定された機械動作情報を計測データとして外部ＲＡＭ５２の格納領域（図２９参照）に格納する（ステップ５０３ａ）。
データを格納した後で、次の測定時に格納すべき計測データが、格納領域の範囲を越えるか否かを確認する。すなわち、格納領域の最大アドレスMAX-ADDから１サンプリング分の計測データのサイズDATA-SIZEを引いた値と、次の計測データの書き込みアドレスADDRの大小を比較する（ステップ５０３ｂ）。
【００７７】
ADDR≦MAX-ADDR−DATA-SIZEの場合には、すなわち、残り領域の方がデータサイズより大きければ処理を終了する。しかし、ADDR＞MAX-ADD−DATA-SIZEの場合には、すなわち、データサイズの方が大きく格納領域の範囲を越えることが判明したら、再び計測データの格納を領域の頭から行うように書き込みアドレスADDRを格納領域の先頭アドレスADD-STARTとし(ステップ５０３ｃ）、処理を終了する。したがって、以前のデータがこの操作によって上書きされて消去されることになるが、格納領域の容量分の最新の計測値が常に保存される。
このフリーランモードの終了は、外部装置７よりインターフェイスを介して計測終了コマンドを受信した時、あるいは、インターフェイスを介して外部へ計測値を送出開始する時点とする。フリーランモードが終了すれば、以後、ＮＯＰ処理へ移行する。
【００７８】
▲３▼計測モードの処理
図３６は計測処理のフロー図である。
計測開始のトリガが発生すると、サンプリング周期（サーボ割込み周期）毎に外部より指定された機械動作情報を計測データとして外部ＲＡＭ５２の格納領域に格納する（ステップ５０５ａ）。計測データを格納すれば、格納数Countをカウントアップし(Count＋１→Count、ステップ５０５ｂ）、ついで、格納数Countが指令された測定時間に応じた数であるMAX-Countになったかチェックし（ステップ５０５ｃ）、Count≧MAX-Countの場合には、モードをＮＯＰモードにし（ステップ５０５ｄ）、以後、ＮＯＰ処理を行なう。しかし、Count＜MAX-Countの場合には、割込み毎に上記処理を繰り返す。
すなわち、計測処理を通過する毎に指定された計測値を保存領域へと複写する。そして、測定数が事前に指定された値に達したら測定を終了して、処理をＮＯＰ処理へと移行させる
【００７９】
▲４▼計測待ちモードの処理
図３７は計測待ちモードの処理フロー図である。
計測待ちモードでは、外部より指定された計測開始のトリガを検出したかチェックし（ステップ５０４ａ）、検出したなら、モードを計測モードにし（ステップ５０４ｂ）、格納数Countを０にし（ステップ５０４ｃ）、以後、計測処理へ移行する（ステップ５０４ｄ）。
一方、計測開始のトリガを検出しない場合には、外部より指令された「トリガ発生前の測定時間Ｔ」が０かチェックする（ステップ５０４ｅ）。Ｔ＝０であれば、ステップ５０４ａに戻りトリガの検出を待つ。しかし、「トリガ発生前の測定時間Ｔ」が０でなければ、サンプリング周期（サーボ割込み周期）毎に外部より指定された機械動作情報を計測データとして外部ＲＡＭ５２の格納領域Ａ（図２９参照）に格納する（ステップ５０４ｆ）。尚、格納領域Ａの大きさは測定時間、測定すべき機械動作情報数（データサイズ）により決まる。
【００８０】
データ格納後、次の測定時に格納すべき計測データが、格納領域Ａの範囲を越えるか否かを確認する。すなわち、格納領域Ａの最大アドレスMAX-ADD2から１サンプリング分の計測データのサイズDATA-SIZEを引いた値と、次の計測データの書き込みアドレスADDRの大小を比較する（ステップ５０４ｇ）。
ADDR≦MAX-ADD2−DATA-SIZEの場合には、すなわち、残り領域の方がデータサイズより大きければ処理を終了し、次の割込みにおいて上記処理を繰り返す。しかし、ADDR＞MAX-ADD2−DATA-SIZEの場合には、すなわち、データサイズの方が大きく格納領域Ａの範囲を越えることが判明したら、再び計測データの格納を領域Ａの頭から行うように書き込みアドレスADDRを格納領域Ａの先頭アドレスADD-STARTとし(ステップ５０４ｈ）、処理を終了する。したがって、以前のデータがこの操作によって上書きされて消去されることになるが、格納領域Ａの容量分の最新の計測値が、すなわち、指定された測定時間分の最新の計測値が常に格納領域Ａに保存される。
【００８１】
(e) 計測における共通処理
(e-1) 計測方法指定情報の設定
計測開始に先立って外部装置７は図２８に示す計測方法指定情報、すなわち、
・測定間隔（サンプリング）
・測定時間
・トリガ検出前の測定時間
・測定モード
・利用するトリガ
・計測データの種類
をインタフェースを介してファイル装置６に指示し、ＭＣＵ５１はこれら計測方法指定情報を内部ＲＡＭ５１ｂの記憶領域51b-4に格納する。
【００８２】
「測定間隔」とは、何サンプリング毎に機械動作情報を計測データとして取り込むかを指示するものである。又、「利用するトリガ」とは、計測待ちモードにおいて計測を開始させるトリガである。トリガには以下のように予め番号が割り振られており、計測に際して複数のトリガを指定することができる。
番号    ソース名称
００    フリーラン
０１    電源投入
０２    ＳＰＭ回転開始
０３    オントラック
０４    シーク開始
０５    シーク終了
０６    衝撃検出
０７    キャブレーション開始
計測方法指定情報により指定されたトリガが発生すると、ＭＣＵ５１が計測処理を開始できるようにしておく。すなわち、各トリガが発生したことを示す情報を計測処理のプログラムへ通知できるようにしておく。ＭＣＵ５１は計測処理プログラムに従って、計測方法指定情報により指定されたトリガが発生しているか判断し、発生した時のみ計測を開始する。
【００８３】
この時のトリガ発生情報の通知方法としては、例えば特定のメモリの、特定ビットをフラグとして使い、電源投入ならば第０ビット目、シークならば第４ビット目というようにビットを割り当てておく。そして、１ならば動作発生、０ならば発生していないと定義すればよい。計測処理のプログラム側では、対象とするトリガに応じたビットのみを監視しておけば、計測開始タイミングが判断できる。  ビットを利用する方法以外にも、数値で指定する方法が考えられる。例えば、電源投入ならば１、シークならば７、・・・というように規定して、トリガ発生時に情報伝達用メモリにセットする。計測プログラムは常に情報伝達用のメモリの値が特定の値（計測方法指定情報により指定されたトリガに応じた値）になっているか否かを監視するようにして、トリガ発生を検知する。又、計測開始のトリガが発生した時に、計測処理を開始するようにＭＯＤＥを書き換えてしまう方法もある。
【００８４】
更に、「計測データの種類」とは、計測データとして格納する機械動作情報を指定するものである。機械動作に関係する情報はすべて内部ＲＡＭ５１ｂの記憶領域51b-1に格納されている。したがって、以下のようなテーブルを事前に用意して、内部ＲＡＭ５１ｂの記憶領域51b-3に格納しておく。そして、識別番号が００のデータはＶＣＭの位置を表し、そのデータが格納されている内部ＲＡＭアドレスはＸＸＸＸＨで、データサイズが２バイト分のデータである、というように利用する。
0003829994.tif 000004
かかるテーブルを内部ＲＡＭ５１ｂに記憶しておけば、「計測データの種類」により、どの番号のデータを計測するのかを指示すれば、ＭＣＵ５１は正しく指定された機械動作情報を計測して保存することができる。
【００８５】
例えば、計測すべきデータの指示方法としは、先のテーブルの識別番号を用いて
０，１，３
というように指定する。ＭＣＵは「計測データの種類」として「０，１，３」を保持し、計測に際して、ＶＣＭの位置・速度・電流値を計測して外部ＲＡＭ５２の格納領域に保存する。尚、テーブルの最後番号０６のように、アドレスとサイズを任意に指示できるようにしておけば、測定者が自由にデータの種類を選ぶことができる。ただし、この場合には、あらかじめ必要なデータがどのメモリアドレスに存在するのかを把握しておかなければならない。
【００８６】
(e-2) 計測値を取り込むための共通処理
図３８は計測値を取り込むための共通処理のフロー図であり、フリーランモード、計測待ちモード、計測モードにおいて共通に利用される処理である。
まず、ｉを０にし（ステップ６０１）、ついで、指示されている「計測データの種類」を読み出し、格納すべき機械情報数Ｎを取得すると共に、最初の計測すべき識別番号を取得する（ステップ６０２）。しかる後、該識別番号の計測データが格納されている内部ＲＡＭ５１ｂのデータアドレスａ、データサイズｓをテーブル（図２７）を参照して取得する（ステップ６０３，６０４）。
データアドレスａ，データサイズｓが求まれば、次に、計測データを格納すべき外部ＲＡＭ５２のアドレスADDRを求める(ステップ６０５、図３５のステップ５０３ｃ、図３７のステップ５０４ｇ参照）。
【００８７】
格納アドレスADDRが求まれば、ステップ６０３において求まっている内部ＲＡＭ５１ｂのアドレスから機械動作情報を読み出し、計測データとして外部ＲＡＭ５２のアドレスADDRに格納する(ステップ６０６）。
データの格納が終了すれば、ｉを歩進し（ステップ６０７）、ｉ≧Ｎかチェックする（ステップ６０８）。ｉ＜Ｎであれば、ステップ６０２に戻り、次の識別番号について同様の処理を繰り返す。そして、ｉ≧Ｎになれば、１サンプリングにおける計測データの格納処理が終了する。
【００８８】
尚、計測データ格納領域としては、前述のようにＭＣＵ５１の内蔵ＲＡＭ５１ｂ、外部ＲＡＭ５２、ＨＤＣに接続しているバッファＲＡＭ５４が利用できるが、これらが全てが常に組み込まれているわけではなく、場合によっていは、外部ＲＡＭがないものもある。このため、特定のＲＡＭ領域を計測値の格納領域として指示するのではなく、ＭＣＵが利用可能な領域を自動的に探して、該領域に計測データを保存するようにすれば便利である。回路設計上、これらのＲＡＭ領域は特定のアドレスに配置されているので、それらのアドレスに実際に何種類かの数値を書き込み再び同じアドレスを読み出して、正常に数値が読み書きできるか否かでＲＡＭが実際に存在するか否かが判断できる。そして、計測データ格納領域として使用する優先順位を、例えば、▲１▼外部ＲＡＭ、▲２▼バッファＲＡＭ、▲３▼内蔵ＲＡＭの順にしておき、外部ＲＡＭ５２が存在すれば、外部ＲＡＭ５２を計測データ格納領域として用いる。しかし、外部ＲＡＭが存在しない場合には、バッファＲＡＭ５４を計測データ格納領域として用いる。外部ＲＡＭもバッファＲＡＭも存在しない場合には内部ＲＡＭ５２ｂを計測データ格納領域として用いる。
【００８９】
(f) 計測データの出力処理
以上のようにして、計測値を格納領域に保存したら、外部装置７からの要求により適宜計測データを格納領域から読み出してインターフェイスを通じて外部装置へ転送する。この場合、格納領域に記憶されている計測値を時系列順に並び変えて転送する。
【００９０】
(g) 外部装置の計測値の利用法
(g-1) 第１の適用法
外部装置７は転送されてきた計測データを内蔵のメモリに記憶し、ディスプレイユニットに数値を時系列的に表示し、あるいは、加工してグラフで表示する。グラフィックで表示すると、機械動作を容易に把握することができる。
【００９１】
(g-2) 第２の適用法
さらに発展させて、外部装置７が計測データを利用してファイル装置６の動作を評価して、動作が最適になるようにサーボ等の制御定数等を調整するようにすることもできる。制御定数については、図６、図７で説明済みである。
図６、図７における補償器の式中の変数は全て設計しなければならない。これ以外にも、目標速度はどのように発生させるのかとか、最大速度は幾らにするのかとか、様々な値を定めなければならない。これらの値は、機械を設計する時の設計値および実際に製品を作成した時の値がある程度ばらつくのを考慮にいれて設計を行う。ただし、中には値が標準的は範囲からはずれるものもでてくる。したがって、それらを救うために、制御系の定数を変更することが必要になる。
【００９２】
制御定数の変更のために、まず現状の動作の解析が必要になる。それには、例えば次のようにすればよい。
▲１▼位置制御時の位置信号をＦＦＴで解析
位置信号の周波数成分を調べて、機械共振や偏心の大きさを推定する。偏心成分が大きければ、偏心成分の周波数（ディスク回転周波数の整数倍）のゲインが高くなるようにサーボの定数を調整する。
▲２▼ステップ応答のオーバーシュートの低減
隣のトラックへのシーク命令を出して、ステップ応答を行わせる。そして、そのときの位置情報を計測して位置の揺れを調べる。サーボ定数が最適でなければ、オーバーシュートが大きくなり、あるいは、目標位置に落ち着くまでの整定時間が長くなる。そこで、オーバシュートが大きい場合には、ゲインを小さくしてオーバーシュートが小さくなるように修正する。又、整定時間が長い場合には、ゲインを大きくして整定時間を短縮する。
▲３▼速度追従誤差の修正
シーク命令を出して、速度制御を行なわせる。そして、その時の目標速度と実際の速度を計測して、その誤差を調べる。誤差が大きければゲインを高くして追従誤差を小さくするように修正する。
【００９３】
(g-3) 第３の適用法
ところで、以上の動作は、シュミレーションにより予測することが可能である。したがって、外部装置７にシミュレーション機能を持たせ、同一画面上にシュミレーション結果を表示するのと同時に、計測した機械動作を表示する。又、サーボ定数を調整しながら画面表示して両者の比較を行うと、相違点が明確にわかり、定数調整の作業が容易になる。このようにして調整された定数は、再びファイル装置側で利用できるように保存されなければならない。そのためには、ＭＣＵ５１のＲＯＭを書き換えたり、ディスク媒体面上に定数記録しておき、パワーＯＮ後に媒体に記録しておいたサーボ定数を読み出し、ＲＯＭ上の定数の代わりに利用するなどの方法ある。
【００９４】
(g-4) 第４の適用法
動作状況の測定および定数調整は、特に工場での生産時に利用できる。図３９にその例を示す。工場で試験を行う時に、測定用のコンピュータ（外部装置）７に複数台のファイル装置６1〜６4を接続してＲ／Ｗの試験やシーク動作の測定を行う。そのような場合、同時に装置の機械動作の標準的なデータを測定しておく。そして、通常の試験で不具合が生じた場合には、詳細に原因を解析するために、データを読み出して格納する。また、位置決め精度やアクセス時間の値を出荷前に測定しておき、個体毎にセーブしておく。障害が起こった時の原因究明に利用する。
図４０は携帯用コンピュータ７′にファイル装置６′を搭載した例を示す。このような小型のコンピュータの場合であっても、ファイル装置６′の筐体もしくはコンピュータの筐体を変形させることなく、ファイル装置から機械動作を測定するために必要なデータを取り出すことができる。さらに、実際にキーボードを叩いている時の衝撃に起因する振動は、プリント基板よりケーブルを引きだしている場合と、引き出していない場合とで異なり、測定値に誤差が生じる。本発明によれば、ケーブルを引き出す必要がないため、正確な計測データが得られる。
【００９５】
(g-5) 第５の適用法
物理的な距離の近い場所に設置されているファイル装置は、取り外して直接動作測定することができる。しかし、東京と大阪など、測定しなければならないファイル装置が遠くにある場合には、時間もコストも必要である。このような場合、測定したいファイル装置に計測用のプログラムを予め搭載しておく。各ユーザーはこのプログラムを用いて機械動作を測定し、必要なデータをファイルに落とす。そして、このデータをパソコン通信、電話回線等のネットワークを利用して、送付してもらい、ディスクの動作が正常か否かを判別する。図４１はかかる遠隔計測システムの構成図である。６はファイル装置、７は外部装置としてのパソコン、８は遠隔地の計測用パソコン、９はコンピュータネットワークである。
【００９６】
また、遠隔地のファイル装置を直接操作してもよい。その場合には、同様にユーザーに送付している計測プログラムを起動してもらい、ネットワークでコンピュータを接続する。サポート側から、遠隔地のコンピュータに対して各種のコマンドを発行すると同時に、動作計測を行わせ、動作の正常・異常を判別する。
経時変化により、機械の共振周波数や、ＶＣＭの磁束密度などの変化はさけられないことである。もちろん、設計はそれらの変化を見込ながら、ある範囲内で変化しても安定して動作するように設計している。しかし、個体差があるため、中には前もって見込んだ範囲を越えた変化をするものもある。このような物に対処するためには、サーボ系の定数を最適に調整しなければならない。
さらに、その計測結果から、最適なサーボ定数を計測することも可能になる。その場合には、サーボ定数を修正する操作が必要となる。ＭＣＵ側のＲＯＭが書換え可能であるならば該ＲＯＭに修正したサーボ定数を書き込み、該サーボ定数に基づいてサーボ制御の計算を行なうようにする。もしくは、サーボ定数がディスク媒体上に記憶されており、パワーＯＮ時に媒体からＲＡＭに読みだされて実行されるような形式の場合、ディスク媒体上のデータを書き換えることで対応することができる。
【００９７】
尚、以上では磁気ディスクに本発明を適用した場合について説明したが、光ディスク等その他の同様の装置に適用できるものである。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【００９８】
【発明の効果】
以上本発明によれば、開発装置に研究開発の対象となるＭＣＵの動作に必要な最低限の回路を搭載するだけでよく、しかも、既存のファイル装置を用いて該ＭＣＵのファームウエアの開発を遅延なく、迅速に行なうことができる。
本発明によれば、既存のファイル装置と開発装置間を接続する接続装置を中間に設け、該接続装置に▲１▼ファイル装置により情報が書き込まれると共に開発装置により該情報が読み出される第１の記憶部と、▲２▼開発装置により情報が書き込まれると共にファイル装置により該情報が読み出される第２の記憶部を設け、各記憶部を介して情報の送受を行なう。このようにすれば、既存のファイル装置と、開発装置と、接続装置との連携により、ＤＥの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、製作されてなくても、新規ＭＣＵのファームウェアの開発ができる。
【００９９】
本発明によれば、デジタルの位置情報をアナログに変換するＤＡコンバータを接続装置に設け、ＤＡコンバータ出力に基づいてヘッド位置、ヘッド速度を表示するようにしたから、ファームウェアによるＶＣＭ制御の様子が判り、ファームウェアの開発を容易に行なうことができる。
本発明によれば、ファイル装置より開発装置に、▲１▼該ファイル装置の種類、あるいは▲２▼ファイル装置におけるサーボ系の各種定数を送出し、開発装置は該種類に応じたサーボ定数あるいは送られてきたサーボ定数を用いてモータの電流値を決定するようにしたから、各種ファイル装置に応じた新規ＭＣＵの開発ができ、しかもサーボ定数を変えて応答の違いを調べることができる。
【０１００】
本発明によれば、開発装置とバス接続されたコンピュータを設け、該コンピュータからファームウェアを開発装置に転送し、開発装置は該ファームウェアに基づいて電流値を決定するようにする。又、開発装置は位置情報、電流値情報をコンピュータに送出し、コンピュータはこれら情報に基づいてヘッドの位置及び速度をディスプレイ画面に表示する。更に、サーボ制御系のブロック線図をコンピュータに入力し、コンピュータは該ブロック線図を用いてシミュレーションを行ない、シミュレーション結果と、実際の位置情報、該位置情報に基づいて得られる実速度及び電流値を比較してファームウェアの開発を行なう。以上のようにしたから、本発明によれば、コンピュータによりＭＣＵのファームウェアの開発を容易に行なうことができる。
本発明によれば、サーボ制御系のブロック線図をコンピュータに入力し、コンピュータは該ブロック線図をファームウェアに変換して開発装置に入力するように構成したから、ファームウェアの開発を益々簡単に行なうことができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】磁気ディスクの構成図である。
【図３】セクタの構成図である。
【図４】位置信号ＰｏｓＮ，ＰｏｓＱ及び位置偏差信号の説明図である。
【図５】サーボ回路の構成図である。
【図６】位置制御系のブロック構成図である。
【図７】速度制御系のブロック構成図である。
【図８】ファイル装置の開発システムの構成図である。
【図９】磁気ファイル装置の回路構成図である。
【図１０】開発装置の構成図である。
【図１１】記憶データの説明図である。
【図１２】接続装置の回路構成図である。
【図１３】メモリ配置説明図である。
【図１４】動作タイミング説明図である。
【図１５】処理内容説明図である。
【図１６】ファイル装置のバックグランド処理のフロー図である。
【図１７】ファイル装置のフォアグランド処理のフロー図である。
【図１８】  パワーオン時、あるいはＩＣＥ起動時の処理フロー図である。
【図１９】  サーボ割込み時の処理フロー図である。
【図２０】  ファイル装置開発システムの形態説明図である。
【図２１】  コンピュータを接続したファイル装置開発システムの構成図である。
【図２２】  ＤＡコンバータを備えた接続装置の説明図である。
【図２３】  本発明の計測システムの構成図である。
【図２４】  内部ＲＡＭの記憶情報説明図である。
【図２５】  機械動作情報説明図表である。
【図２６】  トリガ識別情報説明図表である。
【図２７】  計測データ識別情報説明図表である。
【図２８】  計測方法指定情報説明図表である。
【図２９】  計測データ格納領域の説明図である。
【図３０】  動作タイミングのタイムチャートである。
【図３１】  サーボ割込み処理の内部構造説明図である。
【図３２】  ＶＣＭ駆動処理のフロー図である。
【図３３】  ＳＰＭ駆動処理のフロー図である。
【図３４】  計測処理の内部構造説明図である。
【図３５】  フリーランモードの処理のフロー図である。
【図３６】  計測モードの処理フロー図である。
【図３７】  計測待ち処理のフロー図である。
【図３８】  共通処理のフロー図である。
【図３９】  複数台のファイル装置を接続して動作確認する構成図である。
【図４０】  携帯型コンピュータでの利用例説明図である。
【図４１】  遠隔計測システムの構成図である。
【符号の説明】
１・・既存ファイル装置
２・・開発装置
２ａ・・ファームウェア
２ｂ・・ＭＣＵ
６・・ファイル装置
６ａ・・計測手段
６ｂ・・保存手段
６ｃ・・計測値転送手段
７・・外部装置
【図１】
0003829994.tif 000005
【図２】
0003829994.tif 000006
【図３】
0003829994.tif 000007
【図４】
0003829994.tif 000008
【図５】
0003829994.tif 000009
【図６】
0003829994.tif 000010
【図７】
0003829994.tif 000011
【図８】
0003829994.tif 000012
【図９】
0003829994.tif 000013
【図１０】
0003829994.tif 000014
【図１１】
0003829994.tif 000015
【図１２】
0003829994.tif 000016
【図１３】
0003829994.tif 000017
【図１４】
0003829994.tif 000018
【図１５】
0003829994.tif 000019
【図１６】
0003829994.tif 000020
【図１７】
0003829994.tif 000021
【図１８】
0003829994.tif 000022
【図１９】
0003829994.tif 000023
【図２０】
0003829994.tif 000024
【図２１】
0003829994.tif 000025
【図２２】
0003829994.tif 000026
【図２３】
0003829994.tif 000027
【図２４】
0003829994.tif 000028
【図２５】
0003829994.tif 000029
【図２６】
0003829994.tif 000030
【図２７】
0003829994.tif 000031
【図２８】
0003829994.tif 000032
【図２９】
0003829994.tif 000033
【図３０】
0003829994.tif 000034
【図３１】
0003829994.tif 000035
【図３２】
0003829994.tif 000036
【図３３】
0003829994.tif 000037
【図３４】
0003829994.tif 000038
【図３５】
0003829994.tif 000039
【図３６】
0003829994.tif 000040
【図３７】
0003829994.tif 000041
【図３８】
0003829994.tif 000042
【図３９】
0003829994.tif 000043
【図４０】
0003829994.tif 000044
【図４１】
0003829994.tif 000045