(57)【特許請求の範囲】
【請求項１】
システム制御を行うためのファームウエアであって、ローダ部と、プログラム部と、当該プログラム部をこれを構成する機能ブロック単位で管理する管理情報である管理テーブルとからなるファームウエアを更新するファームウエア更新装置であって、
前記ローダ部を記憶するローダ部領域と、前記プログラム部を記憶するプログラム部領域と、正規登録された前記機能ブロックの管理情報を記憶する正規登録部ならびに仮登録の前記機能ブロックの管理情報を記憶する仮登録部とを有するデータ管理テーブル領域とを備えるファームウエア記憶手段と、
前記ファームウエアに基づいたシステム制御を行うシステム制御手段とを具備し、
前記システム制御手段は、前記プログラム部に対して新たな機能ブロックを追加する場合に、追加する機能ブロックを前記ファームウエア記憶手段の前記プログラム部領域に書き込むとともに、前記データ管理テーブル領域の前記仮登録部に前記追加機能ブロックの管理情報を書き込み、当該追加機能ブロックによる処理を実行し、正常に動作したとき当該機能ブロックについての管理情報を前記仮登録部から前記正規登録部に移動させることを特徴とするファームウエア更新装置。
【請求項２】
システム制御を行うためのファームウエアであって、ローダ部と、プログラム部と、当該プログラム部をこれを構成する機能ブロック単位で管理する管理情報である管理テーブルとからなるファームウエアを更新するファームウエア更新方法であって、
前記ローダ部を記憶するローダ部領域と、前記プログラム部を記憶するプログラム部領域と、正規登録された前記機能ブロックの管理情報を記憶する正規登録部ならびに仮登録の前記機能ブロックの管理情報を記憶する仮登録部とを有するデータ管理テーブル領域とを備えるファームウエア記憶手段を設けておき、
システム制御手段により、前記プログラム部に対して新たな機能ブロックを追加する場合に、追加する機能ブロックを前記ファームウエア記憶手段の前記プログラム部領域に書き込むとともに、前記データ管理テーブル領域の前記仮登録部に前記追加機能ブロックの管理情報を書き込み、当該追加機能ブロックによる処理を実行し、正常に動作したとき当該機能ブロックについての管理情報を前記仮登録部から前記正規登録部に移動させることを特徴とするファームウエア更新方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＣＰＵの制御用プログラム（ファームウエア）を更新するファームウエア更新装置およびファームウエア更新方法に関する。
【０００２】
【従来の技術】
ＣＤ−ＲＯＭ読み取り装置に組み込まれたマイクロコンピュータ（ＣＰＵ）の制御用プログラム（ファームウエア）を、処理の高速化・機能追加等の理由により変更する必要が生じる場合がある。
【０００３】
このような場合、従来はファームウエアを記憶したＲＯＭを交換する方法で対処されてきた。ところが近年、電気的に書き換え可能なＥＥＰＲＯＭ等を使用して、簡単にファームウエアの更新が可能なシステムを導入する製品が増えてきている。一例としては、パ−ソナルコンピュ−タのＢＩＯＳ（basic input/output system ）をＥＥＰＲＯＭに登録して、ユーザがパ−ソナルコンピュ−タ上で更新用プログラムを起動させることでＢＩＯＳを更新するシステムがよく知られている。
【０００４】
一方、ＣＤ−ＲＯＭ読み取り装置でも、ファームウエアを記憶するＲＯＭとしてＥＥＰＲＯＭ等の書き換え可能なＲＯＭを使用し、ファームウエアの更新を可能とした製品が実用化されつつある。
【０００５】
ＣＤ−ＲＯＭ読み取り装置におけるファームウエアの更新は、新しいファームウエアの書き込み後に、これが正確に書き込めたかどうかを確認（ベリファイ）し、正しく書き込めたことが確認できた場合は正常終了し、起動時にチェックサムによる確認を実行し、ファームウエアの正常な動作を確認することによって行っている。
【０００６】
しかしながら、このＣＤ−ＲＯＭ読み取り装置において、ファームウエア更新後、新しいファームウエアが何らかの理由（例えば、更新したファームウエアに不具合があり正常な動作が行えなかったり、異なるファームウエアのデータをロードしてしまったり等）により動作不能になった場合に、これまでの方法では、ＣＤ−ＲＯＭ読み取り装置は動作不能となり、ファームウエアの再更新が行えなかった。
【０００７】
【発明が解決しようとする課題】
本発明はこのような課題を解決するためのもので、ファームウエアに異常が発生したことによって装置が正常に動作しなくなった場合においても、ファームウエアの更新処理を行って装置の状態を正常復帰させることのできるファームウエア更新装置およびファームウエア更新方法の提供を目的としている。
【０００８】
【課題を解決するための手段】
本発明のファームウエア更新装置は上記した目的を達成するため、システム制御を行うためのファームウエアであって、ローダ部と、プログラム部と、当該プログラム部をこれを構成する機能ブロック単位で管理する管理情報である管理テーブルとからなるファームウエアを更新するファームウエア更新装置であって、前記ローダ部を記憶するローダ部領域と、前記プログラム部を記憶するプログラム部領域と、正規登録された前記機能ブロックの管理情報を記憶する正規登録部ならびに仮登録の前記機能ブロックの管理情報を記憶する仮登録部とを有するデータ管理テーブル領域とを備えるファームウエア記憶手段と、前記ファームウエアに基づいたシステム制御を行うシステム制御手段とを具備し、前記システム制御手段は、前記プログラム部に対して新たな機能ブロックを追加する場合に、追加する機能ブロックを前記ファームウエア記憶手段の前記プログラム部領域に書き込むとともに、前記データ管理テーブル領域の前記仮登録部に前記追加機能ブロックの管理情報を書き込み、当該追加機能ブロックによる処理を実行し、正常に動作したとき当該機能ブロックについての管理情報を前記仮登録部から前記正規登録部に移動させることを特徴とする。
【０００９】
また第２の発明のファームウエア更新装置は、上記した目的を達成するために、システム制御を行うためのファームウエアであって、ローダ部と、プログラム部と、当該プログラム部を構成する機能ブロック単位で管理する管理情報である管理テーブルとからなるファームウエアを、当該ローダ部と、プログラム部と、管理テーブルとをそれぞれ異なる領域に記憶するファームウエア記憶手段と、前記ファームウエアに基づいたシステム制御を行うシステム制御手段とを具備する装置であって、前記システム制御手段は、前記プログラム部に対して新たな機能ブロックを追加する場合において、当該機能ブロックについての管理情報を前記管理テーブルに追加する前に、当該機能ブロックによる処理を実行し、正常に動作したとき当該機能ブロックについての管理情報を前記ファームウエア記憶手段に記憶された前記管理テーブルに登録して、且つ前記機能ブロックを前記プログラム部に追加することを特徴とする。
【００１０】
【作用】
本発明は以上のように構成されているから、新たな機能ブロックをプログラム部に追加するにあたって、正常に動作することが確認できた機能ブロックの管理情報のみを管理テーブルに登録して正式に該機能ブロックをプログラム部に追加できる。
【００１２】
【実施例】
以下、本発明の実施例について図面を参照しながら説明する。
【００１３】
図１は本発明に係る参考例のＣＤ−ＲＯＭ読み取り装置の構成を示すブロック図である。
【００１４】
同図において、１はＣＤ−ＲＯＭディスク（以下、単にディスクと呼ぶ。）、２はディスク１を駆動するディスク駆動部、３はディスク１に記録された信号を読み取るための光ピックアップ、４はディスク１から読み取った信号を復調するための信号処理部、５はディスク駆動部２及びピックアップ３を制御するディスク制御部、６はホストコンピュータ１００とのデータの入出力を制御するインタフェース（Ｉ／Ｆ）部、７はファームウエアの機能を制限するための指示入力を受け付ける機能制限用スイッチ、８はＣＤ−ＲＯＭ読み取り装置全体の制御を行うシステム制御部、９はＲＡＭ部、１０はファームウエアを記憶するＥＥＰＲＯＭ等の書き換え可能なＲＯＭ部である。
【００１５】
図２はこのＣＤ−ＲＯＭ読み取り装置におけるメモリ部の構成を示す図である。  同図において、１１はＲＡＭ領域、１２はＩ／Ｏ領域、１３はローダ部領域、１４はプログラム部領域である。ここで、ＲＡＭ領域１１とＩ／Ｏ領域１２はＲＡＭ部９に設けられ、ローダ部領域１３とプログラム部領域１４は書き換え可能なＲＯＭ部１０に設けられている。ローダ部領域１３及びプログラム部領域１４には、それぞれシステム制御部８の制御用プログラム（ファームウエア）であるローダ部及びプログラム部が記憶される。ローダ部は装置起動時の処理を行うと共にファームウエアの更新に必要最低限の機能を含むファームウエアである。これに対し、プログラム部はローダ部以外の通常処理を実現するためのファームウエアである。上述したファームウエアの更新の対象はこのプログラム部である。そしてこれらローダ部及びプログラム部はそれぞれ独立した処理モジュールとして単独で起動し得るものとなっている。
【００１６】
機能制限用スイッチＳＷ７は、ファームウエア（プログラム部）に異常が発生して装置が動作不能に陥った場合に機能するファームウエアをローダ部のみに制限することを指示するためのスイッチである。この機能制限用スイッチ７の状態は、装置起動時の処理の際、ローダ部の制御のもとでシステム制御部８によって読み込まれる。機能制限用スイッチ７がＯＮの場合、システム制御部８は機能するファームウエアをローダ部のみに制限し、このローブ部によるファームウエア更新処理を行う。またＯＦＦの場合は、ローダ部とプログラム部を共に機能させて通常処理を行う。
【００１７】
次に、ファームウエア（プログラム部）の更新処理の動作について説明する。ホストコンピュータ１００よりファームウエアデータが転送されると、システム制御部８はローダ部の制御のもとで該ファームウエアデータのチェックを行い、正常の場合、書き換え可能なＲＯＭ部１０に該データを書き込んでプログラム部の更新を行う。書き込み後、システム制御部８はＲＯＭ部１０上に正しくデータを書き込めたかどうかを確認（ベリファイ）する。正しく書き込めたことを確認したならば、図４に示すように、書き込んだプログラム部の末尾エリアに先頭エリアと同じコード（バージョン番号）を書き込む。以上の処理を行った後、システム制御部８は装置のリセット処理を行う。
【００１８】
次に、図３を参照しながらファームウエア更新後の動作について説明する。
【００１９】
まず、ローダ部の制御のもとシステム制御部８は各処理部の初期化処理を実行し（ステップ３０１）、続いてプログラム部のデータチェック処理を行う（ステップ３０２）。このデータチェックは、プログラム部の先頭エリアと末尾エリアに記録されたファームウエアのバージョン番号を比較し、同一の場合にデータが正常と判定する。ここでもしデータに異常がある場合は、ローダ部によるファームウエア更新（再更新）処理を行う（ステップ３０３）。データに異常がなければ、システム制御部８は機能制限スイッチ７の状態を読み込み（ステップ３０４）、機能制限スイッチ７がＯＮの場合は、機能するファームウエアをローダ部のみに制限してローダ部によるファームウエア更新（再更新）処理を行い（ステップ３０３）、ＯＦＦの場合は通常処理、即ちプログラム部による処理に移行する（ステップ３０５）。
【００２０】
ローダ部によるファームウエア更新（再更新）処理は、ホストコンピュータ１００にファームウエア更新要求を出すことによってホストコンピュータ１００からファームウエアデータが再転送され、これをデータチェックした後、プログラム部領域１４に上書きし、ベリファイを行って正常であれば該データをＲＯＭ部１０に書き込むことによって行われる。
【００２１】
このように本参考例のＣＤ−ＲＯＭ読み取り装置は、システム制御部８の制御用プログラムであるファームウエアを、ファームウエア更新処理を含む装置起動時の処理を行うローダ部とこのローダ部以外の通常処理を行うためのプログラム部とに別けておき、ファームウエア（プログラム部）の異常により装置が動作不能に陥った場合に機能制限用スイッチ７をＯＮにすることで、機能するファームウエアがローダ部のみに制限され、このローダ部単独の機能で装置を再起動せしめてファームウエアの更新処理を行うように構成されている。従って、ファームウエア（プログラム部）の異常により装置が動作不能な状態になっても、機能制限用スイッチ７をＯＮにするだけの簡単な操作でファームウエアの更新処理を改めて行うことが可能になる。
【００２２】
次に本発明の実施例について説明する。
【００２３】
図５は本実施例のＣＤ−ＲＯＭ読み取り装置の構成を示すブロック図である。同図において、２１はＣＤ−ＲＯＭディスク（以下、単にディスクと呼ぶ。）、２２はディスク２１を駆動するディスク駆動部、２３はディスク２１に記録された信号を読み取るための光ピックアップ、２４はディスク２１から読み取った信号を復調するための信号処理部、２５はディスク駆動部２２及びピックアップ２３を制御するディスク制御部、２６はホストコンピュータ１００とのデータの入出力を制御するインタフェース（Ｉ／Ｆ）部、２８はＣＤ−ＲＯＭ読み取り装置全体の制御を行うシステム制御部、２９はＲＡＭ部、３０はファームウエアを記憶するＥＥＰＲＯＭ等の書き換え可能なＲＯＭ部である。
【００２４】
図６はこのＣＤ−ＲＯＭ読み取り装置におけるメモリ部の構成を示す図である。  同図において、３１はＲＡＭ領域、３２はＩ／Ｏ領域、３３はローダ部領域、３４はデータ管理テーブル領域、３５はプログラム部領域である。ここで、ローダ部領域３３、データ管理テーブル領域３４及びプログラム部領域３５は書き換え可能なＲＯＭ部３０に設けられている。ローダ部領域３３及びプログラム部領域３５には、それぞれシステム制御部２８の制御用プログラム（ファームウエア）であるローダ部及びプログラム部が記憶される。ローダ部は装置起動時の処理を行うと共にファームウエアの更新に必要最低限の機能を含むファームウエアである。これに対し、プログラム部はローダ部以外の通常処理を実現するためのファームウエアである。そしてローダ部及びプログラム部はそれぞれ独立した処理モジュールとして単独で起動し得るものとなっている。
【００２５】
データ管理テーブル領域３４には、プログラム部領域３５に記憶されたプログラム部を構成する各機能ブロックの管理情報であるアドレス等が登録される。プログラム部領域３５はオリジナルの機能ブロックを記憶するオリジナル機能ブロックエリアと、後から追加される機能ブロックを記憶する追加機能ブロックエリアとに区分されている。一方、データ管理テーブル領域３４は正規登録部と仮登録部からなり、仮登録部には追加機能ブロックエリアに記憶された動作チェック前の追加機能ブロックの管理情報が一時登録される。
【００２６】
次に、ファームウエアに新たな機能を追加する場合の動作を説明する。
【００２７】
ホストコンピュータ１００より追加機能ブロックのファームウエアデータが転送されると、システム制御部２８は、まずローダ部の制御のもとで該ファームウエアデータのチェックを行い、正常の場合、書き換え可能なＲＯＭ部３０の追加機能ブロックエリアに該データを書き込むと同時に、データ管理テーブル領域３４の仮登録部にその管理情報を登録する。この後、システム制御部２８はＲＯＭ部３０上に正しくデータを書き込めたかどうかを確認（ベリファイ）する。正しく書き込めたことを確認したならば、図７に示すように、書き込んだ追加機能ブロックの先頭エリアと末尾エリアに同じコード（バージョン番号）を書き込む。以上の処理を行った後、システム制御部２８は装置のリセット処理を行う。なお、機能追加処理の途中で電源が切れたりして正しくデータが書き込められていないことが判明した場合、上記バージョン番号の書き込みは行わない。
【００２８】
次に図８を参照しながら追加機能ブロック書き込み後の動作について説明する。  まず、ローダ部の制御のもとシステム制御部２８は各処理部の初期化処理を実行し（ステップ８０１）、続いてデータ管理テーブル領域３４の仮登録部を調べ、追加機能ブロックの登録の有無を確認する（ステップ８０２）。追加機能ブロックの登録がある場合、システム制御部２８は、まず追加機能ブロックの先頭エリアと末尾エリアに記録されたファームウエアのバージョン番号を比較し、同一の場合にデータが正常と判定し、続いて実際に追加機能ブロックによる処理を実行してみて正常に動作するかどうかを確認する（ステップ８０３）。ここで、追加機能ブロックの動作に異常が発生した場合（例えばＲＯＭ不良やファームウエアのバグにより追加機能ブロックが正しく動作しなかった場合）、システム制御部２８はデータ管理テーブル領域３４の仮登録部から当該追加機能ブロックの管理情報を削除し（ステップ８０４）、ホストコンピュータ１００にファームウエア更新要求を出して追加機能ブロックの更新処理を行う（ステップ８０５）。また加機能ブロックが正常に動作すれば、データ管理テーブル領域３４に該追加機能ブロックを正式に登録する。即ち、仮登録部に登録された追加機能ブロックの管理情報を正規登録部に移す（ステップ８０６）。
【００２９】
その後、システム制御部２８はプログラム部のデータチェックを行う（ステップ８０７）。このチェックは、プログラム部を構成している機能ブロック毎に、先頭エリアと末尾エリアに記録されたファームウエアのバージョン番号を比較し、同一の場合にデータが正常であると判定して行われる。このデータチェックである機能ブロックについて異常が検出された場合、システム制御部２８はデータ管理テーブル領域３４の正規登録部から当該機能ブロックの管理情報を削除し（ステップ８０８）、ホストコンピュータ１００にファームウエア更新要求を出してファームウエア（異常検出された機能ブロック）の更新処理を行う（ステップ８０９）。また、正常ならば、プログラム部による通常処理に移行する（ステップ８１０）。
【００３０】
このように、本実施例のＣＤ−ＲＯＭ読み取り装置は、ファームウエアの機能を追加する場合、書き換え可能なＲＯＭ部３０に追加機能ブロックのファームウエアデータを書き込んだ後、この追加機能ブロックによる処理を実際に実行してみて正常に動作するかどうかを確認し、正常に動作した場合のみ、データ管理テーブル領域３４に該追加機能ブロックを正規登録してプログラム部に正式に組み込むことができる。また、本実施例においては、異常のある追加機能ブロックについては仮登録の段階でプログラム部への組み込みを拒否するように構成されているので、追加機能ブロックの異常が判明して改めてファームウエアへの機能追加を試みる場合に、速やかに（データ管理テーブル領域３４の正規登録内容を書き替えることなく）次の機能追加処理に入ることができる。
【００３１】
なお、この実施例では、追加機能ブロックの転送データをＲＯＭ部３０に書き込み、データ管理テーブル領域３４に仮登録した状態でその追加機能ブロックによる処理を実行させて動作確認を行うように構成したが、追加機能ブロックデータをＲＯＭ部３０に書き込む前に、ホストコンピュータから追加機能ブロックデータを入力しながらＣＤ−ＲＯＭ読み取り装置でその処理を実行させて動作確認を行い、正常に動作することが判明した場合に、ＲＯＭ部３０にその追加機能ブロックを書き込み、同時にデータ管理テーブル領域３４に該追加機能ブロックを正規登録するように構成してもよい。
【００３２】
また、この実施例の構成に機能制限用スイッチを付加し、ファームウエア（プログラム部）の異常により装置が動作不能に陥った場合にこの機能制限用スイッチをＯＮ設定することで、機能するファームウエアをローダ部のみに制限し、このローダ部単独の処理で装置を再起動せしめてファームウエアの更新処理を行うように構成してもよい。
【００３４】
【発明の効果】
以上説明したように本発明によれば、新たな機能ブロックをプログラム部に追加するにあたって、正常に動作することが確認できた機能ブロックの管理情報のみを管理テーブルに登録して正式に該機能ブロックをプログラム部に追加できる。
【図面の簡単な説明】
【図１】本発明に係る参考例のＣＤ−ＲＯＭ読み取り装置の構成を示すブロック図
【図２】図１のＣＤ−ＲＯＭ読み取り装置におけるメモリ部の構成を示す図
【図３】図１のＣＤ−ＲＯＭ読み取り装置におけるファームウエア更新後の動作について説明するためのフローチャート
【図４】ファームウエアにおけるプログラム部のデータ構成を示す図
【図５】本発明の実施例のＣＤ−ＲＯＭ読み取り装置の構成を示すブロック図
【図６】図５のＣＤ−ＲＯＭ読み取り装置におけるメモリ部の構成を示す図
【図７】プログラム部の機能ブロックのデータ構成を示す図
【図８】図５のＣＤ−ＲＯＭ読み取り装置における追加機能ブロック書き込み後の動作について説明するためのフローチャート
【符号の説明】
１…ＣＤ−ＲＯＭディスク、２…ディスク駆動部、３…光ピックアップ、４…信号処理部、５…ディスク制御部、６…インタフェース（Ｉ／Ｆ）部、７…機能制限用スイッチ、８…システム制御部、９…ＲＡＭ部、１０…書き替え可能ＲＯＭ部、１３…ローダ部領域、１４…プログラム部領域。
【図１】
0003734285.tif 000002
【図２】
0003734285.tif 000003
【図３】
0003734285.tif 000004
【図４】
0003734285.tif 000005
【図５】
0003734285.tif 000006
【図６】
0003734285.tif 000007
【図７】
0003734285.tif 000008
【図８】
0003734285.tif 000009