(57)【要約】【課題】  ファームウェアの変更に伴う不具合をより少なくする。【解決手段】  コマンド判定プログラム２１１は、アクセスコマンドがユーザ設定値のメモリアドレスの範囲内をアクセスするものであるか否かを判定する。コマンド実行制御プログラム２１２は、アクセスコマンドがユーザ設定値のメモリアドレスの範囲内をアクセスするものである場合、コマンド実行プログラム２１３に、コマンドを実行させて、ユーザ設定値を書き換えさせ、ユーザ設定値のメモリアドレスの範囲内をアクセスするものでない場合、コマンド実行プログラム２１３における、コマンドの実行を抑制する。これにより、ファームウェアの変更に伴う不具合をより少なくすることができる。本発明は、設定装置に適用できる。【選択図】  図３
2005208783.tif 000002
【特許請求の範囲】
【請求項１】
電子機器の提供者によって直接または間接に設定される機器設定値であって、前記電子機器を制御するための機器設定値、または各ユーザにより任意に設定されるユーザ設定値を設定する設定装置において、
前記機器設定値または前記ユーザ設定値のアクセスを指令するアクセスコマンドを基に、前記ユーザ設定値へのアクセスであるか否かを判定する判定手段と、
前記ユーザ設定値へのアクセスでないと判定された場合、前記アクセスコマンドの実行を抑制し、前記ユーザ設定値へのアクセスであると判定された場合、前記アクセスコマンドを実行するように、前記アクセスコマンドの実行を制御するコマンド実行制御手段と
を含むことを特徴とする設定装置。
【請求項２】
前記判定手段は、アクセスの抑制の解除を指示する解除コマンドを受けたか否かをさらに判定し、
前記コマンド実行制御手段は、前記解除コマンドを受けたと判定された場合、前記機器設定値または前記ユーザ設定値のアクセスを指令する前記アクセスコマンドを実行するように、前記アクセスコマンドの実行を制御する
ことを特徴とする請求項１に記載の設定装置。
【請求項３】
前記機器設定値または前記ユーザ設定値を記憶する記憶手段をさらに含む
ことを特徴とする請求項１に記載の設定装置。
【請求項４】
電子機器の提供者によって直接または間接に設定される機器設定値であって、前記電子機器を制御するための機器設定値、または各ユーザにより任意に設定されるユーザ設定値を設定する設定装置の設定方法において、
前記機器設定値または前記ユーザ設定値のアクセスを指令するアクセスコマンドを基に、前記ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、
前記ユーザ設定値へのアクセスでないと判定された場合、前記アクセスコマンドの実行を抑制し、前記ユーザ設定値へのアクセスであると判定された場合、前記アクセスコマンドを実行するように、前記アクセスコマンドの実行を制御するコマンド実行制御ステップと
を含むことを特徴とする設定方法。
【請求項５】
電子機器の提供者によって直接または間接に設定される機器設定値であって、前記電子機器を制御するための機器設定値、または各ユーザにより任意に設定されるユーザ設定値を設定する設定処理用のプログラムであって、
前記機器設定値または前記ユーザ設定値のアクセスを指令するアクセスコマンドを基に、前記ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、
前記ユーザ設定値へのアクセスでないと判定された場合、前記アクセスコマンドの実行を抑制し、前記ユーザ設定値へのアクセスであると判定された場合、前記アクセスコマンドを実行するように、前記アクセスコマンドの実行を制御するコマンド実行制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記憶媒体。
【請求項６】
電子機器の提供者によって直接または間接に設定される機器設定値であって、前記電子機器を制御するための機器設定値、または各ユーザにより任意に設定されるユーザ設定値を設定する設定処理をコンピュータに実行させるプログラムにおいて、
前記機器設定値または前記ユーザ設定値のアクセスを指令するアクセスコマンドを基に、前記ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、
前記ユーザ設定値へのアクセスでないと判定された場合、前記アクセスコマンドの実行を抑制し、前記ユーザ設定値へのアクセスであると判定された場合、前記アクセスコマンドを実行するように、前記アクセスコマンドの実行を制御するコマンド実行制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は設定装置および方法、記録媒体、並びにプログラムに関し、特に、ファームウェアの変更に伴う不具合をより少なくすることができるようにした設定装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
近年、種々の装置に、CPU（Central Processing Unit）を内蔵して、装置全体の制御を行うことが一般的となっている。
【０００３】
使用されているCPUの数も１つとは限らず、目的に応じて複数使われていることが多い。例えば、装置が複数の電子機器（デバイス）からなる場合、装置に複数のCPUを設けて、CPUが相互に通信を行うことにより、機器全体を制御すると共に、装置を構成する電子機器のそれぞれを制御するようにしている装置も広く使用されている。この場合、ホストCPUが、機器全体を制御し、ホストCPUの指示の基に各種の制御を実行するサブCPUが、装置を構成する電子機器のそれぞれを制御する。
【０００４】
これらの内蔵されているCPUで実行されるプログラムは、予め、不揮発性メモリなどに格納されている。このような、ハードウェアに内蔵されているプログラムおよびそのプログラムの実行に必要なデータ（設定値）を、一般にファームウェアと称し、ファームウェアを書き換えることで、機器若しくは電子機器の不具合の修正または機能の追加がなされる。
【０００５】
テレビジョン受像機において、回路各部の平均的な初期設定データが書き込まれた不揮発性メモリ、セット毎の初期設定データが書き込まれる書換可能な不揮発性メモリ、および制御回路を備え、調整モードでの電源投入時には不揮発性メモリからの平均的な初期設定データで回路各部の初期設定がなされると共に、調整された回路各部の初期設定データが書換可能な不揮発性メモリに書き込まれ、ユーザモードでの電源投入時には、書換可能な不揮発性メモリからの初期設定データで回路各部の初期設定がなされることを特徴とするテレビジョン受像機がある（例えば、特許文献１参照）。
【０００６】
【特許文献１】特開昭６１−９５６２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、電子機器の制御に関係する重要な設定値を、サブCPUに管理されるメモリに記憶させるようにした場合、ホストCPUが実行するファームウェアにバグがあるとき、サブCPUに管理されるメモリに記憶されている、電子機器の制御に関係する重要な設定値が誤って書き換えられてしまうという不具合が少なからず発生していた。このような不具合が発生すると、機器が正常に動作しなくなり、機器は不良品として取り扱われることになる。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、ファームウェアまたはファームウェアを書き換えるプログラムにバグがあっても、機器における不具合の発生をより少なくすることができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の設定装置は、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定手段と、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御手段とを含むことを特徴とする。
【００１０】
判定手段は、アクセスの抑制の解除を指示する解除コマンドを受けたか否かをさらに判定し、コマンド実行制御手段は、解除コマンドを受けたと判定された場合、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを実行するように、アクセスコマンドの実行を制御することを特徴とする。
【００１１】
本発明の設定装置は、機器設定値またはユーザ設定値を記憶する記憶手段をさらに含むことを特徴とする。
【００１２】
設定方法は、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御ステップとを含むことを特徴とする。
【００１３】
本発明の記録媒体のプログラムは、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御ステップとを含むことを特徴とする。
【００１４】
本発明のプログラムは、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定ステップと、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、電子機器の制御に関わる設定値を書き換えることができる。また、本発明によれば、電子機器の制御に関わる設定値の誤った書き換えをより少なくすることができる。その結果、機器における不具合の発生をより少なくすることができるようになる。
【発明を実施するための最良の形態】
【００１６】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応していないものであることを意味するものではない。
【００１７】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００１８】
本発明によれば、設定装置（例えば、図１の設定装置１）が提供される。この設定装置は、機器設定値（例えば、図２の全体設定情報１１１またはディバイス設定値１１２）またはユーザ設定値（例えば、図２のユーザ設定値１１３）のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定手段（例えば、図３のコマンド判定プログラム２１１を実行する図１のホストCPU１１）とを含み、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御手段（例えば、図３のコマンド実行制御プログラム２１２を実行する図１のホストCPU１１）とを含む。
【００１９】
判定手段は、アクセスの抑制の解除を指示する解除コマンドを受けたか否かをさらに判定し（例えば、図４のステップＳ１１の処理）、コマンド実行制御手段は、解除コマンドを受けたと判定された場合、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを実行するように、アクセスコマンドの実行を制御する（例えば、図４のステップＳ１２の処理）ようにすることができる。
【００２０】
また、設定装置（例えば、図１の設定装置１）は、機器設定値またはユーザ設定値を記憶する記憶手段（例えば、図２の記憶部１７−１）をさらに含む。
【００２１】
また、本発明によれば、設定方法が提供される。この設定方法は、機器設定値（例えば、図２の全体設定情報１１１またはディバイス設定値１１２）またはユーザ設定値（例えば、図２のユーザ設定値１１３）のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定ステップ（例えば、図４のステップＳ１３の処理）と、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御ステップ（例えば、図４のステップＳ１４およびステップＳ１５の処理）とを含む。
【００２２】
また、本発明によれば、プログラムが提供される。このプログラムは、機器設定値（例えば、図２の全体設定情報１１１またはディバイス設定値１１２）またはユーザ設定値（例えば、図２のユーザ設定値１１３）のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定する判定ステップ（例えば、図４のステップＳ１３の処理）と、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するコマンド実行制御ステップ（例えば、図４のステップＳ１４およびステップＳ１５の処理）とをコンピュータに実行させる。
【００２３】
このプログラムは、記憶媒体（例えば、図１の磁気ディスク７１）に記録することができる。
【００２４】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００２５】
図１は、本発明の設定装置１の一実施の形態の構成を示すブロック図である。設定装置１は、例えば、パーソナルコンピュータなどの情報処理装置、据え置き型のＡＶ（Audio Visual）装置など、複数の電子機器から構成される装置である。また、例えば、設定装置１は、電子機器の設定を専用に行う専用装置とすることができる。
【００２６】
図１において、設定装置１は、全体の制御を行うホストCPU１１、および電子機器１８−１−１乃至電子機器１８−Ｎ−Ｋを制御するサブCPU１４−１乃至１４−Ｎを含む。
【００２７】
ホストCPU１１は、記憶部１３に記憶されているプログラムを実行することにより各種の処理を実行する。ホストCPU１１は、入力装置（図示せず）または記憶部１３などよりそれぞれ供給される入力信号またはデータなどを基に、各種の処理を実行して制御信号（以下、ホスト制御信号と称する）を生成し、バス１２を介して、生成したホスト制御信号をサブCPU１４−１乃至１４−Ｎに供給することにより、設定装置１全体を制御する。
【００２８】
バス１２は、所定のプロトコルに基づき、ホストCPU１１、記憶部１３、およびサブCPU１４−１乃至１４−Ｎを相互に接続する。
【００２９】
記憶部１３は、例えば、RAM（Random Access Memory）、ROM（Read Only Memory）、PROM（Programmable Read Only Memory）、EPROM（Erasable Programmable Read Only Memory）、EEPROM（Electronically Erasable and Programmable Read Only Memory）、またはフラッシュメモリなどから構成され、ホストCPU１１により実行されるプログラムおよびプログラムの実行に必要なデータを記憶する。
【００３０】
記憶部１３は、バス１２を介してホストCPU１１より供給されたる制御信号を基に、バス１２を介して、記憶しているプログラムまたはデータをホストCPU１１に供給する。また、記憶部１３は、バス１２を介して、ホストCPU１１から供給されたデータを記憶する。
【００３１】
記憶部１３は、例えば、サブCPU１４−１乃至サブCPU１４−Ｎのいずれかに後述する機器設定値またはユーザ設定値を書き換えさせるための設定値更新プログラムを記憶する。
【００３２】
また、記憶部１３は、例えば、解除コマンド生成プログラム（図示せず）を記憶する。ホストCPU１１は、機器設定値を変更する場合、解除コマンド生成プログラムを実行することで、サブCPU１４−１乃至１４−Ｎのいずれかにアクセス抑制の解除を指令するライトプロテクト（Write Protect）解除コマンドを送信する。ここで、機器設定値とは、電子機器を制御するために設定される値である。機器設定値の詳細については、後述する。
【００３３】
以下、ライトプロテクト解除コマンドを単に解除コマンドとも称する。
【００３４】
さらに、ホストCPU１１を、メモリなどを内蔵する、いわゆるエンベデットCPU（組込型CPU）とすることができ、この場合、記憶部１３をホストCPU１１の内部に設けるようにすることができる。
【００３５】
サブCPU１４−１は、記憶部１６−１に記憶されているプログラムを実行することにより各種の処理を実行する。サブCPU１４−１は、バス１２を介してホストCPU１１から供給されたホスト制御信号に対応して、各種の処理を実行し、バス１５−１を介して、生成した制御信号（以下、サブ制御信号と称する）を記憶部１６−１、記憶部１７−１、または電子機器１８−１−１乃至１８−１−Ｍのいずれかに供給することにより、記憶部１６−１、記憶部１７−１、および電子機器１８−１−１乃至１８−１−Ｍを制御する。
【００３６】
例えば、サブCPU１４−１は、記憶部１７−１に記憶されている機器設定値またはユーザ設定値を書き換える処理を実行する。
【００３７】
サブCPU１４−２は、記憶部１６−２に記憶されているプログラムを実行することにより各種の処理を実行する。サブCPU１４−２は、バス１２を介してホストCPU１１から供給されたホスト制御信号に対応して、各種の処理を実行し、バス１５−２を介して、生成したサブ制御信号を記憶部１６−２のそれぞれ、記憶部１７−２、または電子機器１８−２−１乃至１８−２−Ｊのいずれかに供給することにより、記憶部１６−１、記憶部１７−１、および電子機器１８−１−１乃至１８−１−Ｍを制御する。
【００３８】
例えば、サブCPU１４−２は、記憶部１７−２に記憶されている機器設定値またはユーザ設定値を書き換える処理を実行する。
【００３９】
サブCPU１４−３（図示せず）乃至サブCPU１４−Ｎのそれぞれは、記憶部１６−３（図示せず）乃至記憶部１６−Ｎのそれぞれに記憶されているプログラムを実行することにより各種の処理を実行する。サブCPU１４−３乃至サブCPU１４−Ｎのそれぞれは、バス１２を介してホストCPU１１から供給されたホスト制御信号に対応して、各種の処理を実行し、バス１５−３（図示せず）乃至バス１５−Ｎのそれぞれを介して、生成したサブ制御信号を記憶部１６−３（図示せず）乃至記憶部１６−Ｎのいずれか、記憶部１７−３（図示せず）乃至記憶部１７−Ｎのいずれか、または電子機器１８−３（図示せず）乃至１８−Ｎ−Ｋのいずれかに供給することにより、記憶部１６−３乃至記憶部１６−Ｎのそれぞれ、記憶部１７−３乃至記憶部１７−Ｎのそれぞれ、または電子機器１８−３乃至１８−Ｎ−Ｋのそれぞれを制御する。
【００４０】
例えば、サブCPU１４−３乃至サブCPU１４−Ｎのそれぞれは、記憶部１７−３乃至記憶部１７−Ｎのそれぞれに記憶されている機器設定値またはユーザ設定値を書き換える処理を実行する。
【００４１】
すなわち、サブCPU１４−１乃至１４−Ｎは、バス１５−１乃至１５−Ｎを介して、それぞれに従属する記憶装置、または任意の数の電子機器を制御する。
【００４２】
記憶部１６−１乃至１６−Ｎは、例えば、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリなどからなる。記憶部１６−１は、サブCPU１４−１により実行されるプログラムおよびプログラムの実行に必要なデータを記憶する。すなわち、記憶部１６−１は、バス１５−１を介して、記憶しているプログラムまたはデータをサブCPU１４−１に供給する。また、記憶部１６−１は、バス１５−１を介して、サブCPU１４−１から供給されたデータを記憶する。
【００４３】
記憶部１６−２乃至記憶部１６−Ｎのそれぞれは、サブCPU１４−２乃至サブCPU１４−Ｎのそれぞれにより実行されるプログラムおよびプログラムの実行に必要なデータを記憶する。すなわち、記憶部１６−２乃至記憶部１６−Ｎのそれぞれは、バス１５−２乃至バス１５−Ｎのそれぞれを介して、記憶しているプログラムまたはデータをサブCPU１４−２乃至サブCPU１４−Ｎのそれぞれに供給する。また、記憶部１６−２乃至記憶部１６−Ｎのそれぞれは、バス１５−２乃至バス１５−Ｎのそれぞれを介して、サブCPU１４−２乃至サブCPU１４−Ｎのそれぞれから供給されたデータを記憶する。
【００４４】
記憶部１６−１乃至記憶部１６−Ｎのそれぞれは、例えば、図３を参照して後述する設定値変更プログラム２０１を記憶する。
【００４５】
なお、サブCPU１４−１乃至１４−Ｎは、エンベデットCPU（組込型CPU）とすることができ、この場合、記憶部１６−１乃至１６−ＮのそれぞれをサブCPU１４−１乃至１４−Ｎのそれぞれの内部に設けるようにすることができる。
【００４６】
記憶部１７−１乃至記憶部１７−Ｎは、いわゆる不揮発性メモリからなり、例えば、PROM、EPROM、EEPROM、またはフラッシュメモリなどとすることができる。記憶部１７−１は、バス１５−１を介してサブCPU１４−１から供給される機器設定値またはユーザ設定値を記憶する。記憶部１７−１に記憶される機器設定値またはユーザ設定値は、例えば、電子機器１８−１−１乃至電子機器１８−１−Ｍのいずれかに関係するものである。
【００４７】
ここで、ユーザ設定値とは、電子機器を使用する環境などによってユーザが設定する値であり、各ユーザにより任意に設定される。
【００４８】
記憶部１７−２は、バス１５−２を介してサブCPU１４−２から供給される機器設定値またはユーザ設定値を記憶する。記憶部１７−２に記憶される機器設定値またはユーザ設定値は、例えば、電子機器１８−２−１乃至電子機器１８−２−Ｊのいずれかに関係するものである。
【００４９】
記憶部１７−３（図示せず）乃至記憶部１７−Ｎのそれぞれは、バス１５−３（図示せず）乃至バス１５−Ｎのそれぞれを介して、サブCPU１４−３（図示せず）乃至サブCPU１４−Ｎのそれぞれから供給される機器設定値またはユーザ設定値を記憶する。記憶部１７−３乃至記憶部１７−Ｎのそれぞれに記憶される機器設定値またはユーザ設定値は、例えば、電子機器１８−３乃至電子機器１８−Ｎ−Ｋのいずれかに関係するものである。
【００５０】
なお、機器設定値またはユーザ設定値は、電子機器１８−１−１乃至１８−Ｎ−Ｋの内部に備えるメモリ（図示せず）に記憶させるようにしてもよい。
【００５１】
電子機器１８−１−１乃至電子機器１８−１−Ｎは、ハードディスクドライブ、光ディスクドライブ、LCD（Liquid Crystal Display）などの表示装置、キーボードまたはマウスなどのポインティングデバイス、NIC（Network Interface Card）などの通信装置、またはグラフィックカードなどの画像処理装置などの、いわゆるデバイスである。すなわち、電子機器１８−１−１乃至電子機器１８−１−Ｎは、それぞれ１または複数の機能を有する装置であり、例えば、記録装置（記憶装置）、出力装置、入力装置、通信装置、または信号処理装置などである。例えば、電子機器１８−１−１乃至電子機器１８−１−Ｎは、個々に設定装置１に着脱可能に構成されている。
【００５２】
電子機器１８−１−１乃至電子機器１８−１−Ｍのそれぞれは、バス１５−１を介して、サブCPU１４−１からサブ制御信号が供給された場合、サブ制御信号により指示される動作を実行する。電子機器１８−２−１乃至電子機器１８−２−Ｊのそれぞれは、バス１５−２を介して、サブCPU１４−２からサブ制御信号が供給された場合、サブ制御信号により指示される動作を実行する。電子機器１８−３（図示せず）乃至電子機器１８−Ｎ−Ｋのそれぞれは、バス１５−３乃至バス１５−Ｎのそれぞれを介して、サブCPU１４−３乃至サブCPU１４−Ｎのそれぞれからサブ制御信号が供給された場合、サブ制御信号により指示される動作を実行する。
【００５３】
入出力インターフェース５０は、所定のインターフェース規格に準拠するインターフェースであり、バス１２を介して、ホストCPU１１に接続される。入出力インターフェース５０に接続されるドライブ６０は、必要に応じて設定装置１に接続される。ドライブ６０には、磁気ディスク７１、光ディスク７２、光磁気ディスク７３、または半導体メモリ７４が適時装着される。ドライブ６０は、装着された磁気ディスク７１、光ディスク７２、光磁気ディスク７３、または半導体メモリ７４から記録されているプログラムを読み出して、読み出したプログラムをバス１２を介して、ホストCPU１１またはサブCPU１４−１乃至１４−Ｎに供給する。
【００５４】
例えば、磁気ディスク７１、光ディスク７２、光磁気ディスク７３、または半導体メモリ７４から読み出されたプログラムは、記憶部１３、または記憶部１６−１乃至記憶部１６−Ｎのいずれかに記憶されて、ホストCPU１１またはサブCPU１４−１乃至サブCPU１４−Ｎのいずれかに実行される。
【００５５】
以下、サブCPU１４−１乃至サブCPU１４−Ｎを個々に区別する必要がないとき、単に、サブCPU１４と称する。以下、記憶部１６−１乃至記憶部１６−Ｎを個々に区別する必要がないとき、単に、記憶部１６と称する。
【００５６】
以下、記憶部１７−１乃至記憶部１７−Ｎを個々に区別する必要がないとき、単に、記憶部１７と称する。以下、電子機器１８−１−１乃至電子機器１８−Ｎ−Ｋを個々に区別する必要がないとき、単に、電子機器１８と称する。
【００５７】
図２は、記憶部１７に記憶される設定値を説明する図である。図２で示される例において、記憶部１７は、機器設定値１０１として、全体設定情報１１１およびディバイス設定値１１２を記憶する。
【００５８】
機器設定値１０１は、例えば、電子機器１８の提供者によって直接または間接に設定される設定値である。ここで、直接に設定されるとは、電子機器１８の提供者が、設定装置１を直接操作して、機器設定値１０１が設定されることをいう。また、間接に設定されるとは、電子機器１８の提供者から提供される、いわゆるファームウェアアップデートプログラムなどを設定装置１が実行することにより、機器設定値１０１が設定されることをいう。
【００５９】
全体設定情報１１１は、設定装置１全体の動作に関係する設定値である。例えば、記憶部１７−１に記憶されている全体設定情報１１１は、電子機器１８−１−１乃至１８−１−Ｍに関する設定値である。
【００６０】
ディバイス設定値１１２は、電子機器１８のそれぞれに関係する設定値である。ディバイス設定値１１２は、例えば、電子機器１８−１−１、電子機器１８−１−２、または電子機器１８−１−Ｍなどの、１つの電子機器１８に関する設定値である。
【００６１】
ディバイス設定値１１２は、例えば、電子機器１８が光ディスクドライブである場合、読み書き可能な光ディスクの種類若しくはバッファのサイズ、または“最大読み込み速度”若しくは“最大書き込み速度”などのドライブの制御に必要な設定値をいう。ディバイス設定値１１２は、例えば、電子機器１８がLCDなどの表示装置である場合、画素数や最大リフレッシュレートなどである。
【００６２】
図２で示されるように、記憶部１７は、さらに、ユーザ設定値１１３を記憶する。
【００６３】
ユーザ設定値１１３とは、上述したように、電子機器１８を使用する環境などによって設定する値であり、各ユーザにより任意に設定される。ちなみに、ユーザ設定値１１３の初期値は、電子機器１８のメーカが想定される最も一般的な環境に合わせて予め設定する、いわゆる工場出荷時設定値として設定されていることが多い。
【００６４】
ユーザ設定値１１３は、例えば、電子機器１８が表示装置の場合、”画面の色数”、“リフレッシュレート”、または“表示画素数（ピクセル数）”などの表示における各ユーザによって設定される任意の値をいう。
【００６５】
以下、機器設定値１０１およびユーザ設定値１１３を総称して設定データと称する。
【００６６】
設定データを変更する場合、ホストCPU１１は、バス１２を介して、サブCPU１４−１乃至サブCPU１４−Ｎのいずれかに、コマンドと共に設定データを供給して、サブCPU１４−１乃至サブCPU１４−Ｎのいずれかに、設定データを記憶部１７−１乃至１７−Ｎに記憶させる。
【００６７】
このように、サブCPU１４−１乃至１４−Ｎは、バス１２を介してメインCPU１１より供給される制御信号を基に、バス１５−１乃至１５−Ｎを介して記憶部１６−１乃至１６−Ｎ、記憶部１７−１乃至１７−Ｎ、および任意の数の電子機器をそれぞれ制御することができる。
【００６８】
図３は、サブCPU１４により実行されるプログラムの例を示す図である。
【００６９】
設定値変更プログラム２０１は、サブCPU１４に実行されるプログラム、いわゆる、サブCPU１４のファームウェアであり、記憶部１６またはサブCPU１４の内部に備える記憶装置（図示せず）などに記憶されて、サブCPU１４に実行され、ホストCPU１１から送信されてくるホスト制御信号である、コマンドおよびデータに応じて、記憶部１７に記憶されている設定データを変更する。
【００７０】
設定値変更プログラム２０１は、コマンド判定プログラム２１１、コマンド実行制御プログラム２１２、コマンド実行プログラム２１３、およびメッセージ生成プログラム２１４を含む。
【００７１】
コマンド判定プログラム２１１は、バス１２を介してホストCPU１１より供給されるアクセスコマンドを基に、ユーザ設定値１１３へのアクセスコマンドであるか否かを判定する。
【００７２】
ここで、アクセスとは、データを記憶部１７から“データの読み出し”またはデータを記憶部１７に“データの書き込み”をすることを言う。アクセスコマンドとは、アクセスを指令するコマンドである。例えば、アクセスコマンドは、コマンド部とデータ部とからなり、データ部は、上書きしようとするデータそのものでも、今記憶されている値に対する差分データであってもよく、また、記憶部１７のメモリ領域を指し示す変数、いわゆるポインタを含むようにしてもよい。また、コマンド部は、読み出しまたは書き込みの動作を指定するだけでなく、コマンド部にポインタが含まれるようにしてもよい。
【００７３】
また、コマンド判定プログラム２１１は、バス１２を介してホストCPU１１より供給される解除コマンドを基に、ホストCPU１１より解除コマンドが供給されたか否かを判定する。
【００７４】
解除コマンドとは、上述したように、機器設定値１０１を変更する場合、サブCPU１４に、バス１２を介してホストCPU１１より供給される、記憶部１７へのアクセスの抑制の解除を指示するためのコマンドである。
【００７５】
コマンド実行制御プログラム２１２は、コマンド判定プログラム２１１による判定の結果を基に、コマンド実行プログラム２１３におけるコマンドの実行を制御する。すなわち、コマンド実行制御プログラム２１２は、コマンド判定プログラム２１１による判定の結果を基に、コマンド実行プログラム２１３にコマンドを実行させるか、またはコマンド実行プログラム２１３にコマンドを実行させないように（コマンドの実行を抑制するように）、コマンド実行プログラム２１３におけるコマンドの実行を制御する。
【００７６】
コマンド実行プログラム２１３は、コマンド実行制御プログラム２１２の指示の基に、アクセスコマンドを実行し、バス１２を介してホストCPU１１より供給される設定データを、それぞれバス１５を介して記憶部１７に記憶させる。また、コマンド実行プログラム２１３は、コマンド実行制御プログラム２１２からコマンドの実行の抑制が指示された場合、アクセスコマンドを実行しない。
【００７７】
メッセージ生成プログラム２１４は、バス１２を介してホストCPU１１より供給されるアクセスコマンドが、ユーザ設定値１１３のアドレスの範囲外のアクセスを指示する場合、エラーメッセージを生成し、生成したエラーメッセージをホストCPU１１に供給する。
【００７８】
図４は、設定値変更プログラム２０１を実行するサブCPU１４による、設定データの変更の処理を説明するフローチャートである。
【００７９】
ステップＳ１１において、設定値変更プログラム２０１のコマンド判定プログラム２１１は、バス１２を介してホストCPU１１から供給されたコマンドを取得して、ホストCPU１１から解除コマンドが供給されたか否かを判定する。
【００８０】
ステップＳ１１において、解除コマンドが供給されたと判定された場合、ステップＳ１２に進み、コマンド実行制御プログラム２１２は、コマンド実行プログラム２１３に、解除コマンドと共に供給されてくる、または解除コマンドの次に供給されてくる、記憶部１７へのアクセスコマンドを実行させ、処理は終了する。
【００８１】
例えば、ステップＳ１２において、コマンド実行プログラム２１３は、バス１２を介しホストCPU１１から供給される機器設定値１０１をバス１５を介して記憶部１７に記憶させる。また、例えば、ステップＳ１２において、コマンド実行プログラム２１３は、バス１２を介しホストCPU１１から供給されるユーザ設定値１１３をバス１５を介して記憶部１７に記憶させる。
【００８２】
一方、ステップＳ１１において、解除コマンドが供給されていないと判定された場合、ステップＳ１３に進み、コマンド判定プログラム２１１は、バス１２を介してホストCPU１１から供給されるアクセスコマンドが、記憶部１７におけるユーザ設定値１１３のアドレスの範囲内であるか否かを判定する。すなわち、ステップＳ１３において、コマンド判定プログラム２１１は、バス１２を介してホストCPU１１から供給されるアクセスコマンドが、ユーザ設定値１１３へのアクセスコマンドであるか否かを判定する。
【００８３】
ステップＳ１３において、ホストCPU１１より供給されるアクセスコマンドが、記憶部１７におけるユーザ設定値１１３のアドレスの範囲外であると判定された場合、すなわち、ユーザ設定値１１３へのアクセスコマンドでないと判定された場合、ステップＳ１４に進み、コマンド実行制御プログラム２１２は、アクセスコマンドの実行を拒否して、処理は終了する。すなわち、ステップＳ１４において、コマンド実行制御プログラム２１２は、コマンド実行プログラム２１３に、アクセスコマンドを実行させない。また、ステップＳ１４において、メッセージ生成プログラム２１４は、エラーメッセージを生成し、生成したエラーメッセージをホストCPU１１に供給する。
【００８４】
ホストCPU１１は、メッセージ生成プログラム２１４からエラーメッセージが供給されると、記憶部１７にデータを記憶させる処理を中止する。
【００８５】
一方、ステップＳ１３において、ホストCPU１１から供給されたアクセスコマンドが、記憶部１７におけるユーザ設定値１１３のアドレスの範囲内であると判定された場合、ステップＳ１５に進み、コマンド実行制御プログラム２１２は、コマンド実行プログラム２１３を制御し、コマンド実行プログラム２１３にアクセスコマンドを実行させて、コマンド実行プログラム２１３に、ユーザ設定値１１３を記憶部１７に記憶させて、処理は終了する。
【００８６】
すなわち、ステップＳ１３において、記憶部１７におけるユーザ設定値１１３のアドレスにアクセスした場合のみ、設定値の書き換えを許可することで、誤ってユーザ設定値１１３以外の機器設定値１０１を変更することを防止する。
【００８７】
以上のように、ユーザ設定値１１３のアドレスの範囲内であるか否かを判定し、ユーザ設定値１１３以外へのアクセスを拒否することで、ホストCPU１１のファームウェアの不具合により、サブCPU１４が誤って、記憶部１７に記憶されている機器設定値１０１を書き換えてしまうことを防ぐことができる。
【００８８】
したがって、例えば、ホストCPU１１のファームウェアにバグが含まれていたとしても、不具合の発生が抑制され、バグを含むファームウェアを実行した場合であっても、ユーザは継続して電子機器１８を使用できる。
【００８９】
また、例えば、工場などにおいて、機器設定値１０１をメモリに書き込む必要がある場合、ホストCPU１１は、サブCPU１４に解除コマンドを供給し、対象のメモリ領域へのアクセスを可能にさせることにより、機器設定値１０１を迅速に変更できる。
【００９０】
以上のように、機器設定値に対するアクセスコマンドを実行するようにした場合、電子機器の制御に関わる設定値を書き換えることができる。また、機器設定値またはユーザ設定値のアクセスを指令するアクセスコマンドを基に、ユーザ設定値へのアクセスであるか否かを判定し、ユーザ設定値へのアクセスでないと判定された場合、アクセスコマンドの実行を抑制し、ユーザ設定値へのアクセスであると判定された場合、アクセスコマンドを実行するように、アクセスコマンドの実行を制御するようにした場合、電子機器の制御に関わる設定値の誤った書き換えをより少なくすることができる。
【００９１】
なお、サブCPU１４−１乃至１４−Ｎは、電子機器１８−１−１乃至１８−１−Ｍ、電子機器１８−１−２乃至１８−２−Ｊ、または電子機器１８−Ｎ−１乃至１８−Ｎ−Ｋをそれぞれ制御するCPUとして説明したが、サブCPU１４−１乃至１４−Ｎを、メインCPU１１と同様に、設定装置１全体を制御するCPUとして処理を実行させることもできる。
【００９２】
より具体的には、例えば、１台のコンピュータに複数のCPUを搭載する、いわゆるマルチプロセッサとすることもできる。マルチプロセッサとした場合、例えば、予め処理内容によって分担する処理装置を決める、ASMP（Asymmetric Multiple Processor）と称される手法で設定装置１が制御される。
【００９３】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００９４】
この記録媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク７１（フレキシブルディスクを含む）、光ディスク７２（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク７３（ＭＤ(Mini-Disc)（商標）を含む）、若しくは半導体メモリ７４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMや、記憶部１３に含まれるハードディスクなどで構成される。
【００９５】
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【００９６】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【００９７】
【図１】本発明の設定装置の一実施の形態の構成を示すブロック図である。
【図２】記憶部に記憶されるデータの例を示す図である。
【図３】サブCPUにより実行されるプログラムの例を示す図である。
【図４】サブCPUの処理を説明するフローチャートである。
【符号の説明】
【００９８】
１  設定装置，  １１  ホストCPU，  １２  バス，  １３  記憶部，  １４−１乃至１４−Ｎおよび１４  サブCPU，  １５−１乃至１５−Ｎおよび１５  バス，  １６−１乃至１６−Ｎおよび１６  記憶部，  １７−１乃至１７−Ｎおよび１７  記憶部，  １８−１−１乃至１８−Ｎ−Ｋおよび１８  電子機器，  ５０  入出力インターフェース，  ６０  ドライブ，  ７１  磁気ディスク，  ７２  光ディスク，  ７３  光磁気ディスク，  ７４  半導体メモリ，  １０１  機器設定値，  １１１  全体設定情報，  １１２  ディバイス設定値，  １１３  ユーザ設定値，  ２０１  設定値変更プログラム，  ２１１  コマンド判定プログラム，  ２１２  コマンド実行制御プログラム，  ２１３  コマンド実行プログラム，  ２１４  メッセージ生成プログラム
【図１】
2005208783.tif 000003
【図２】
2005208783.tif 000004
【図３】
2005208783.tif 000005
【図４】
2005208783.tif 000006