(57)【要約】【課題】  ドライブ装置単体で自己ファームウェア更新と自己診断を連続して行えるドライブ装置のファームウェア更新方法を提供するものである。【解決手段】  ドライブ装置内部のメモリに記録媒体２から読み取った自己ファームウェア更新手順及び自己診断手順を記録し、さらに記録媒体２の交換前またはリセット直前に行っていた処理情報または次に実行する処理情報を記録し、再起動時に再度同じファームウェア更新処理を繰り返すことなく前記記録媒体２の自己診断を実行する。【選択図】  図２
2005165885.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体にアクセスしてデータの少なくとも読み出しを実施するドライブ装置に内蔵されているファームウェアを更新するに際し、
ファームウェアの更新内容と更新後の自己診断内容が記録されたファームウェア更新用記録媒体を用意し、
記録媒体をセットして運転を開始した場合に前記ドライブ装置のファームウェアに付加されている簡易言語の解釈して実行する機能によって前記セットされた記録媒体が前記ファームウェア更新用記録媒体か判定し、
前記ファームウェア更新用記録媒体である場合には診断プログラムの実行がセットされる特定インデックスが自己診断でない状態にセットされているか判定し、
特定インデックスが自己診断でない状態にセットされている場合には前記ドライブ装置に内蔵されてファームウェアを記憶しているメモリの内容を、前記ファームウェア更新用記録媒体から読み出したファームウェアの更新内容に更新し、前記特定インデックスを自己診断の実施状態にセットするとともに前記ドライブ装置を再起動し、
再起動後に前記特定インデックスが自己診断の実施状態にセットされていることを検出して前記ファームウェア更新用記録媒体から読み出した自己診断を実行し、自己診断の結果を出力する
ドライブ装置のファームウェア更新方法。
【請求項２】
媒体交換前またはリセット直前の再生装置の状態を加えて保存するようにした請求項１記載のドライブ装置のファームウェア更新方法。
【請求項３】
自己ファームウェア更新及び自己診断ファームウェアから本体ファームウェアの関数を呼び出す場合に、本体ファームウェアの固定アドレスに自己ファームウェア更新及び自己診断ファームウェアで使用する関数テーブルを参照して実行する請求項１記載のドライブ装置のファームウェア更新方法。
【請求項４】
内蔵したファームウェアに従って制御部によって運転され、セットされた記録媒体にアクセスしてデータの少なくとも読み出しを実施するドライブ装置であって、
前記制御部を、簡易言語を解釈して実行するとともに、ファームウェアの更新内容と更新後の自己診断内容が記録されたファームウェア更新用記録媒体がセットされたことを検出して、特定インデックスの内容を参照して、前記特定インデックスが自己診断でない状態にセットされている場合には前記ドライブ装置に内蔵されてファームウェアを記憶しているメモリの内容を、前記ファームウェア更新用記録媒体から読み出したファームウェアの更新内容に更新し、前記特定インデックスを自己診断の実施状態にセットするとともに前記ドライブ装置を再起動し、
起動後に前記特定インデックスが自己診断の実施状態にセットされていることを検出して前記ファームウェア更新用記録媒体から読み出した自己診断を実行し、自己診断の結果を出力するように構成した
ドライブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光ディスク再生装置などのドライブ装置の自己ファームウェアの更新に関する。
【背景技術】
【０００２】
パーソナルコンピュータの外部装置として使用されている光ディスク再生装置は、光ディスクを回転させるドライブモータと、光ピックアップなどのメカニズムと、このメカニズムを運転する電子回路とで構成されている。
【０００３】
前記電子回路はマイクロコンピュータを要部とした制御部によって構築されており、このマイクロコンピュータの動作内容が記録されたファームウェアをホストコンピュータなしに更新する方法として、更新内容が記録された更新用記録媒体を、更新を受ける光ディスク再生装置にかけてファームウェア更新を行い、ファームウェア更新後に前記更新用記録媒体を排出することにより、リセット後再度ファームウェア更新を行なわないようにして更新処理を完了している。
【０００４】
なお、上記のようにファームウェアをホストコンピュータなしに更新した場合には、ファームウェア更新後に、（特許文献１）に開示されているように光ディスク再生装置の動作機能をホストコンピュータなしで自己診断して正しく更新が実施されたことを確認することが必要である。
【特許文献１】特開２００２−１１６７３２公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、このようなファームウェア更新方法では、ファームウェア更新後に更新用記録媒体を排出することにより、リセット後再度ファームウェア更新を行なわないようにしているが、この方法では自己ファームウェア更新用の更新用記録媒体と自己診断用の診断用記録媒体との２枚の記録媒体が必要である。
【０００６】
また従来の自己診断方法では、診断用記録媒体に記録されている自己診断ファームウェアを前記光ディスク再生装置の更新済みと思われる本体ファームウェアに付加するようになっているが、自己診断ファームウェアが本体ファームウェアの関数を呼び出す場合、本体ファームウェアが変更され関数エントリアドレスが変わった場合に自己診断ファームウェアが呼び出す関数エントリアドレスもまた変更する必要がある。
【０００７】
また、自己ファームウェア更新及び自己診断ファームウェアは実行形式のロードモジュールになっているため、記録媒体を読み出すだけではこの媒体がどのような診断を行うのか判断できないため間違った自己ファームウェア更新及び自己診断ファームウェアを記録媒体に記録しても実際に実行するまで気がつかないという問題がある。
【０００８】
本発明は、自己ファームウェアの更新を受けるドライブ装置に、１枚の記録媒体をセットするだけで、自己ファームウェア更新および自己診断を連続して行うことができる自己ファームウェア更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の請求項１記載のドライブ装置のファームウェア更新方法は、記録媒体にアクセスしてデータの少なくとも読み出しを実施するドライブ装置に内蔵されているファームウェアを更新するに際し、ファームウェアの更新内容と更新後の自己診断内容が記録されたファームウェア更新用記録媒体を用意し、記録媒体をセットして運転を開始した場合に前記ドライブ装置のファームウェアに付加されている簡易言語の解釈して実行する機能によって前記セットされた記録媒体が前記ファームウェア更新用記録媒体か判定し、前記ファームウェア更新用記録媒体である場合には診断プログラムの実行がセットされる特定インデックスが自己診断でない状態にセットされているか判定し、特定インデックスが自己診断でない状態にセットされている場合には前記ドライブ装置に内蔵されてファームウェアを記憶しているメモリの内容を、前記ファームウェア更新用記録媒体から読み出したファームウェアの更新内容に更新し、前記特定インデックスを自己診断の実施状態にセットするとともに前記ドライブ装置を再起動し、再起動後に前記特定インデックスが自己診断の実施状態にセットされていることを検出して前記ファームウェア更新用記録媒体から読み出した自己診断を実行し、自己診断の結果を出力することを特徴とする。
【００１０】
本発明の請求項２記載のドライブ装置のファームウェア更新方法は、請求項１において、媒体交換前またはリセット直前の再生装置の状態を加えて保存するようにしたことを特徴とする。
【００１１】
本発明の請求項３記載のドライブ装置のファームウェア更新方法は、請求項１において、自己ファームウェア更新及び自己診断ファームウェアから本体ファームウェアの関数を呼び出す場合に、本体ファームウェアの固定アドレスに自己ファームウェア更新及び自己診断ファームウェアで使用する関数テーブルを参照して実行することを特徴とする。
【００１２】
本発明の請求項４記載のドライブ装置は、内蔵したファームウェアに従って制御部によって運転され、セットされた記録媒体にアクセスしてデータの少なくとも読み出しを実施するドライブ装置であって、前記制御部を、簡易言語を解釈して実行するとともに、ファームウェアの更新内容と更新後の自己診断内容が記録されたファームウェア更新用記録媒体がセットされたことを検出して、特定インデックスの内容を参照して、前記特定インデックスが自己診断でない状態にセットされている場合には前記ドライブ装置に内蔵されてファームウェアを記憶しているメモリの内容を、前記ファームウェア更新用記録媒体から読み出したファームウェアの更新内容に更新し、前記特定インデックスを自己診断の実施状態にセットするとともに前記ドライブ装置を再起動し、起動後に前記特定インデックスが自己診断の実施状態にセットされていることを検出して前記ファームウェア更新用記録媒体から読み出した自己診断を実行し、自己診断の結果を出力するように構成したことを特徴とする。
【発明の効果】
【００１３】
本発明のドライブ装置のファームウェア更新方法によれば、ホストコンピュータとドライブ装置とを接続することなく、自己ファームウェア更新及び自己診断用の１枚の記録媒体を用いて、ドライブ装置のみで自己ファームウェア更新及び自己診断を続けて実施することができ、自己診断中でもリセットをかけることが可能となる。また、自己ファームウェア更新及び自己診断手順から本体ファームウェアを呼び出す際、本体ファームウェアの固定アドレスにある関数テーブルを参照することで、本体ファームウェアの変更に関係なく自己ファームウェア更新及び自己診断手順を作成可能である。また自己ファームウェア更新及び自己診断手順を擬似言語で作成し記録媒体に保存することにより、記録媒体を読み出すことで自己ファームウェア更新及び自己診断手順が容易に判断できるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の自己ファームウェア更新方法を具体的な実施の形態に基づいて説明する。
図１と図２は本発明が対象とするドライブ装置の外観斜視図とその構成を示している。
【００１５】
１はファームウェアの更新を受けるドライブ装置としての光ディスク再生装置、２は更新するファームウェア及び自己診断用プログラムが記録された記録媒体、３は光ディスク再生装置１を単独運転するために必要な電源である。
【００１６】
光ディスク再生装置１は、図２に示すように構成されている。
モータＭによって記録媒体２を駆動し、この記録媒体２に記録されているディジタル情報を光ピックアップ５が読み取り、ＥＦＭ復調部６で復調して信号処理部７に送る。
【００１７】
信号処理部７においてＣＩＲＣに基づいた第１のエラー訂正を行いデコーダ８に送る。デコーダ８においてＥＣＣに基づいた第２のエラー訂正が行われる。通常動作時、エラー訂正後のデータはインターフェースコントローラ９を通じて外部に接続されたホストコンピュータに転送される。
【００１８】
これらの制御は、ＲＯＭ（リードオンリーメモリ）１０に記憶された制御プログラムに基づいて、ＲＡＭ（ランダムアクセスメモリ）１１を使用して、ＣＰＵ（中央演算処理装置）１２が、ＥＦＭ復調部６，信号処理部７，デコーダ８，インターフェースコントローラ９に対して命令することにより実行される。
【００１９】
ここで、ＲＯＭ１０の中には、ファームウェアをダウンロードするためのローダプログラム１０ａと、光ディスク再生装置１が通常動作を行うためのファームウェア１０ｂと、自己ファームウェア更新及び自己診断手順を読み込み解釈し処理するファームウェア更新診断プログラム１０ｃと、関数エントリーテーブル１０ｄとが収納されている。
【００２０】
光ディスク再生装置１のファームウェア１０ｂをホストコンピュータに接続することなく前記記録媒体２を使用して更新する手順をフローチャートに基づいて説明する。
図３はこのフローチャートの前半部を示し、図４は後半部を示す。
【００２１】
まず、自己ファームウェア更新及び自己診断モードに移行する条件について説明する。
光ディスク再生装置１の電源を投入し、光ディスク再生装置１に前記記録媒体２を装着すると、記録媒体２が装着されていることをステップＳ１で検出し、ステップＳ２のスピンアップ動作に移行する。
【００２２】
ステップＳ３では、ステップＳ１で検出した記録媒体が更新するファームウェア及び自己診断用プログラムが記録された記録媒体２であるのか、それ以外の光ディスクであるのかを判定する。具体的には、自己ファームウェア更新及び自己診断用プログラムが記録されたＣＤ媒体の場合にはＬＥＡＤ−ＩＮ領域のサブコードＲ〜Ｗに特定のデータを記録してあり、自己ファームウェア更新及び自己診断用プログラムが記録されたＤＶＤ媒体の場合にはＡＴＡＰＩコマンドのＳｅｎｄＤＶＤＳｔｒｕｃｔｕｒｅコマンド等により特定のデータを記録してある。
【００２３】
自己ファームウェア更新及び自己診断用ＣＤ媒体またはＤＶＤ媒体を装着した場合には、スピンアップ動作を行うときに光ディスク再生装置はユーザデータを読み取り、自己ファームウェア更新及び自己診断用ディスクであることを識別する。
【００２４】
このようにしてステップＳ３で、セットされたものが自己ファームウェア更新及び自己診断用の前記記録媒体２であると認識した場合には、ステップＳ４の自己診断インデックスの読み取りを実行し、ステップＳ３で、自己ファームウェア更新及び自己診断用の前記記録媒体２でないと認識した場合は、分岐Ａを経て図４の終了（ステップＳ００）に流れてそのまま終了し、通常の光ディスクドライブとしての動作を行う。
【００２５】
自己診断インデックスは電源を切っても消えない領域のどこかにあればよく、ローダプログラム１０ａ，ファームウェア１０ｂ，ファームウェア更新診断プログラム１０ｃ，関数エントリーテーブル１０ｄ などの未使用領域にあれば良い。
【００２６】
ステップＳ４では、読み書き可能な不揮発性記録メモリに記録されたどの自己診断を実施するか表す自己診断インデックスを参照し、０ならばステップＳ５で記録媒体２からファームウェア及び自己診断手順を読み出す。自己診断インデックスが１以上であれば分岐Ｂを経て図４のステップＳ１２に進む。
【００２７】
ステップＳ５に次いでステップＳ６では、読み出しが正常に終了したか確認し、読み出しが正常終了したならばステップＳ７，Ｓ８を実行して自己診断手順を読み書き可能な不揮発性記録メモリに保存し、ファームウェアを書き込む。次いで、ステップＳ９で書き込みが正常終了したかを判定して正常終了の場合には、ステップＳ１０で“自己診断インデックス＝１”を不揮発性記録メモリに保存し、ステップＳ１１でリセットを行う。
【００２８】
ステップＳ８でのファームウェアの更新が正常に完了してステップＳ１１でリセットされた後の再起動時には、ステップＳ１１でのリセット前にステップＳ１０において“自己診断インデックス＝１”にセットされているため、ステップＳ４を経てステップＳ１２を実行してステップＳ５〜Ｓ１１のファームウェア更新のルーチンを実行しない。
【００２９】
ステップＳ１２で“自己診断インデックス＝１”を検出すると、ステップＳ１３で第１の自己診断を実行し、ステップＳ１４でステップＳ１３の結果を判定し、第１の自己診断の正常終了の場合には、ステップＳ１５で自己診断インデックスをインクリメントしてステップＳ１３〜Ｓ１５と同様にして第２の自己診断とその正常終了の判定を実行して、以下同様に各段の診断が正常終了するたびに自己診断インデックスをインクリメントしてステップＳ１８まで自己診断を繰り返す。
【００３０】
ステップＳ１３〜Ｓ１８を経て全部の診断が正常であったと判定された場合には、ステップＳ１９で“自己診断インデックス＝０”に設定して、ステップＳ２０で記録媒体２を排出し、ステップＳ２１で全部の診断が正常であったかを判定してステップＳ２２で正常終了を表明してステップＳ００の終了を実行する。
【００３１】
ステップＳ２１で診断が異常であったと判定した場合には、ステップＳ２３で異常終了を表明してステップＳ００の終了を実行する。
ステップＳ６，Ｓ９，Ｓ１４，・・・において異常であると判定された場合には、ステップＳ１９，Ｓ２０，Ｓ２１を経てステップＳ２３で異常終了を表明してステップＳ００の終了を実行する。
【００３２】
なお、この実施の形態では、ＣＰＵ１２とＲＯＭ１０およびＲＡＭ１１とで、内蔵したファームウェアに従って前記ＥＦＭ復調制御部６，信号処理制御部７，デコーダ制御部８，ホストインターフェース制御部９を運転して、セットされた記録媒体２にアクセスしてデータの少なくとも読み出しを実施する制御部が構成されている。
【００３３】
なお、上記の実施の形態では、ステップＳ４に移行する条件として、前記自己ファームウェア更新及び自己診断ＣＤ媒体のＬＥＡＤ−ＩＮ領域のサブコードＲ〜Ｗに識別情報を記録、またはＤＶＤ媒体であればＡＴＡＰＩコマンドのＳｅｎｄＤＶＤＳｔｒｕｃｔｕｒｅコマンドにより特定のデータを記録するというのは一例であり、その他の方法により自己ファームウェア更新および自己診断用ディスクと識別するようにしてもかまわない。
【００３４】
なお、上記の実施の形態において、媒体交換前またはリセット直前の光ディスク再生装置１の状態を加えて保存するように構成することが好ましい。具体的には、自己診断インデックスを更新するタイミングの必要な時(Reset前 or DISC交換前)、つまりステップＳ４，Ｓ１０，Ｓ１５，Ｓ１８のいづれかで保存する。
【００３５】
上記に記載した「正常表明」「異常表明」とは具体的には、例えば、正常終了時は記録媒体２を載せているトレイをイジェクトして利用者に報知する。異常終了時は前記トレイをイジェクトせずにトレイをロードしたままの状態で停止して利用者に報知する。別の例としては、通常の使用時において、トレイにセットされた光ディスクにアクセスする際に点灯するように一般的に設けられているアクセスランプを、正常終了時は点灯、異常終了時は高速点滅させるなどで状態を表明できる。さらに、トレイの上記動作とアクセスランプの上記表示状態との組み合わせで、より明確に報知することも出来る。
【００３６】
また本発明の実施時に、本体ファームウェアと自己ファームウェア更新及び自己診断手順の異なるオブジェクトモジュール間で同じ処理を別々に持たせることは無駄であるため、自己ファームウェア更新及び自己診断手順から本体ファームウェアの処理を直接使用したい場合がある。この場合、自己ファームウェア更新及び自己診断手順と本体ファームウェアは別のオブジェクトモジュールであるため、通常は自己ファームウェア更新及び自己診断手順から本体ファームウェアの使用したい処理の関数エントリアドレスを指定して呼び出すことになる。
【００３７】
しかし、本体ファームウェアを変更した場合に、使用したい処理の関数エントリアドレスが移動すると自己ファームウェア更新及び自己診断手順も本体ファームウェアにあわせて関数エントリアドレスを変更する必要がある。これを避けるために、関数エントリ名と関数エントリアドレスを関係づけした関数エントリーテーブル１０ｄを本体ファームウェア側に用意し、自己ファームウェア更新及び自己診断手順からは関数エントリアドレスでなく関数エントリ名を指定することで、本体ファームウェアの変更により関数エントリアドレスが変更になったとしても関数エントリ自己ファームウェア更新及び自己診断手順を変更する必要がなくなる。
【００３８】
さらに本発明の別の形態として自己ファームウェア更新及び自己診断手順を擬似言語で記録媒体に記録しておくことで、どのような自己診断を行っているか即座に理解することができるようになる。
【００３９】
上記の各実施の形態では、ドライブ装置として光ディスク再生装置について説明したが、光ディスク記録再生装置、磁気ディスク装置、磁気テープ装置など、各種の記録媒体を用いて情報の再生を行う記録再生装置の全てに適用可能である。
【産業上の利用可能性】
【００４０】
本発明は、光ディスク再生装置、光ディスク記録再生装置、磁気ディスク装置、磁気テープ装置など、各種の記録媒体を用いて情報の再生を行う記録再生装置に搭載されているファームウェアを単独で更新する作業を改善できる。
【図面の簡単な説明】
【００４１】
【図１】本発明のドライブ装置の外観斜視図
【図２】同装置の構成図
【図３】同装置のファームウェア更新に関する処理の前半部のフローチャート
【図４】同装置のファームウェア更新に関する処理の後半部のフローチャート
【符号の説明】
【００４２】
１    光ディスク再生装置（ドライブ装置）
２    記録媒体
３    電源
５    光ピックアップ
６    ＥＦＭ復調制御部
７    信号処理制御部
８    デコーダ制御部
９    ホストインターフェース制御部
１０    ＲＯＭ（リードオンリーメモリ）
１０ａ  ローダプログラム
１０ｂ  ファームウェア
１０ｃ  ファームウェア更新診断プログラム
１０ｄ  関数エントリーテーブル
１１    ＲＡＭ（ランダムアクセスメモリ）
１２    ＣＰＵ（中央演算処理装置）
【図１】
2005165885.tif 000003
【図２】
2005165885.tif 000004
【図３】
2005165885.tif 000005
【図４】
2005165885.tif 000006