(57)【要約】【課題】所定の処理を行うＣＰＵとそのプログラムを格納した書き換え可能な不揮発性メモリとを有するシステムを構成するシステムモジュールにおいて、ＣＰＵがブートプログラムを書き換えるリカバリー処理を、基板の占有面積の増大を抑えつつ実現でき、しかも、システムにおけるブートプログラムの更新作業を簡単なものとして、このシステムが搭載される電気機器の保守を容易なものとする。【解決手段】ブートプログラムと、該ブートプログラムを書き換えるためのリカバリープログラムとを同一のフラッシュメモリ２０２内の異なるメモリ領域に格納し、電気機器に搭載されたシステムモジュール１１０を、電源投入直後にＣＰＵ２０１がブートプログラムを実行する通常モードと、電源投入直後にＣＰＵがブートプログラムを書き換えるリカバリーモードのいずれの動作モードで動作させるかを、電気機器の姿勢により設定するようにした。【選択図】図２
2012043309.tif 000002
【特許請求の範囲】
【請求項１】
中央演算処理装置を有し、種々の情報処理を行うシステムを構成するシステムモジュールであって、
オペレーションシステムを起動するためのブートブログラムと、該ブートプログラムを書き換える処理を該中央演算処理装置に行わせるリカバリープログラムとをそれぞれ異なるメモリ領域に格納した、データの書き換え可能な不揮発性メモリと、
該システムを搭載した電気機器の筐体の外部からの操作により該筐体内の該システムへ伝達された操作情報により、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを検出するモード検出器と、
該モード検出器の検出出力が該リカバリーモードを示すとき、該中央演算処理装置が該リカバリープログラムを読み込むよう、該中央演算処理装置が生成したアドレス信号を切り替えるアドレス信号切替部と
を備えたシステムモジュール。
【請求項２】
請求項１に記載のシステムモジュールにおいて、
前記ブートプログラムは、前記不揮発性メモリの最下位アドレスからその上位アドレスである第１のアドレスまでの下位メモリ領域に格納され、
前記リカバリープログラムは、前記不揮発性メモリの第１のアドレスより上位の第２のアドレスから最上位アドレスまでの最上位メモリ領域に格納されているシステムモジュール。
【請求項３】
請求項２に記載のシステムモジュールにおいて、
前記アドレス信号切替部は、
前記中央演算処理装置と前記不揮発性メモリとの間のアドレスバスに設けられ、前記モード検出器の検出出力であるアドレス制御信号が前記リカバリーモードを示すとき、該中央演算処理装置が生成したアドレス信号が前記最上位メモリ領域を示すよう、該アドレス信号における複数のビットからなる上位ビットの値を所定値に固定するものであるシステムモジュール。
【請求項４】
請求項２に記載のシステムモジュールにおいて、
前記モード検出器の検出出力であるアドレス制御信号が前記通常モードを示す場合、
前記システムの電源投入後に前記中央演算処理装置のリセットが解除されたとき、該中央演算処理装置は、前記不揮発性メモリ内の最下位メモリ領域に記憶されたブートプログラムを実行し、
前記モード検出器の検出出力であるアドレス制御信号が前記リカバリーモードを示す場合、
前記システムの電源投入後に前記中央演算処理装置のリセットが解除されたとき、該中央演算処理装置は、該不揮発性メモリ内の最上位メモリ領域に記憶されたリカバリープログラムを実行する、システムモジュール。
【請求項５】
請求項３に記載のシステムモジュールにおいて、
前記アドレス信号切替部は、
入力信号に応じた出力信号を出力する状態と、入力信号に関わらず一定の出力信号を出力する状態とを制御信号により切り替えるトライステート素子と、該トライステート素子の出力端子と電源との間に接続されたプルアップ抵抗とを有し、
該制御信号として前記アドレス制御信号を用い、前記アドレス制御信号がリカバリー状態を示す場合には、該トライステート素子の出力ノードを、該トライステート素子の出力信号の論理値が該プルアップ抵抗により強制的に論理値『１』に固定されるようハイインピーダンス状態にするものであるシステムモジュール。
【請求項６】
請求項１に記載のシステムモジュールにおいて、
前記システムを搭載した電気機器の筐体の外部からの操作は、該電気機器の筐体の姿勢を変える操作であり、
前記モード検出器は、
該システムの電源投入後に前記中央演算処理装置のリセット期間中に該システムの基準面が水平及び垂直のいずれに平行になるように置かれているかを検出して、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを判定するものである、システムモジュール。
【請求項７】
請求項６に記載のシステムモジュールにおいて、
前記モード検出器には、傾きセンサーモジュールが用いられているシステムモジュール。
【請求項８】
請求項６に記載のシステムモジュールにおいて、
前記モード検出器には、Ｇセンサーモジュールが用いられているシステムモジュール。
【請求項９】
請求項１に記載のシステムモジュールにおいて、
前記システムを搭載した電気機器の筐体の外部からの操作は、前記電気機器の筐体の外部から該筐体内の該システムへ向けて光信号を照射する操作であり、
前記モード検出器は、
該システムの電源投入後に前記中央演算処理装置のリセット期間中に、該光信号を検出して、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを判定するものである、システムモジュール。
【請求項１０】
請求項９に記載のシステムモジュールにおいて、
前記モード検出器には、前記光信号を検出する光検出センサーモジュールが用いられているシステムモジュール。
【請求項１１】
請求項９に記載のシステムモジュールにおいて、
前記モード検出器は、前記光信号を検出する光検出センサーを有し、該光検出センサーの検出出力に基づいて、該光信号に含まれるコード情報を解析し、該コード情報に基づいて、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを検出するシステムモジュール。
【請求項１２】
システムモジュールを搭載した電気機器であって、
該システムモジュールは、請求項１ないし請求項１１のいずれかに記載のシステムモジュールである電気機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムモジュール及び電気機器に関し、特に、プログラムを実行する中央演算処理装置（ＣＰＵ）と、そのプログラムを格納した書き換え可能な不揮発性メモリとを含む大規模集積回路（ＬＳＩ）などのシステムを構成するシステムモジュールにおいて、システムをリカバリーするためのブートロード処理を行うシステムモジュール、及びこのようなシステムモジュールを搭載した電気機器に関するものである。
【背景技術】
【０００２】
一般的に液晶表示用モジュールは、液晶パネルを制御するマイクロプロセッサ（液晶モジュール用コントロール（ＬＳＩ）ＣＰＵ）、および、該マイクロプロセッサで実行されるプログラムを格納する、ブートプログラム用とアプリケーション用の書き換え可能な不揮発性メモリを有している。
【０００３】
このようなＣＰＵとそのプログラムを格納したメモリとを有する電子システムは、モジュール化あるいは、製品化した後でもメモリ内のブートプログラム、あるいはアプリケーションプログラムの書き換えを行って、機能の追加や性能の向上を図ることが容易なものとなっている。
【０００４】
ところで、アプリケーションプログラム書き換えのための技術としてよく知られている方式は、書き換えのためのリカバリー用プログラムをアプリケーションプログラムと同じ電気的に書き換え可能な不揮発性メモリに置く方法である。この方法では、リカバリープログラムの実行中にアプリケーションプログラムの書き換えが行われる。
【０００５】
この方式によると、システムＲＯＭ（フラッシュＲＯＭ）が１つで済むため、システムが簡単になるという利点がある。
【０００６】
しかし、フラッシュＲＯＭに格納されているブートプログラムの書き換えの最中に停電やエラーが発生して、ブートプログラム（起動用プログラム部分）が破壊された場合には、システムの再起動が不可能になる。
【０００７】
システムがこのような再起動不可能な状態にならないようにする方法としては、ブートプログラムを格納するフラッシュＲＯＭを２つ設ける方法が考えられるが、この方法では、システムモジュールの基板上での占有面積が大きくなり、回路が複雑になるといった問題がある。
【０００８】
そこで、システムを、ＣＰＵから不揮発性メモリに送信されるアドレス信号の所定ビットを外部の手動スイッチにより反転させて、ＣＰＵからのアドレス信号によりアクセスされるメモリ領域を、強制的に最下位アドレス領域と中央アドレス領域との間で入れ替える構成とする方法が考えられる。このような構成のシステムでは、不揮発メモリの中央アドレス領域にリカバリープログラムを格納しておけば、仮に最下位アドレス領域に格納されているブートプログラムが破壊された時でも、システムが再起動不可能になることはない。
【０００９】
なお、このようにＣＰＵとそのプログラムを格納したメモリとを有する電子システムにおいて、外部の手動スイッチにより、ＣＰＵからのアドレス信号によりアクセスされるメモリ領域を切り替えるようにしたものは、例えば、特許文献１に開示されており、このような従来のシステムについて以下図面を用いて説明する。
【００１０】
図７は、このような従来の電子システムを概略的に示している。
【００１１】
この電子システム２００は、例えば、電子情報機器や家電製品などの電気機器の構成部品である、例えば表示モジュール、印刷モジュール、音声処理モジュール、通信モジュール、制御モジュールなどの各種モジュールとして用いられるものである。なお、図７では、上記のようなプログラム書き換え機能を有する電子システムを示している。
【００１２】
詳述すると、この電子システム２００は、プログラムを実行して各種モジュールとしての種々の処理を行うＣＰＵ２０１と、オペレーションシステムを起動するためのブートプログラム、上記ＣＰＵが種々の処理をＣＰＵに行わせるためのアプリケーションプログラム、及び、ブートプログラムを書き換える処理をＣＰＵに行わせるためのリカバリー用プログラムを格納したメモリ２０２とを有している。ここで、ＣＰＵ２０１とフラッシュメモリ２０２とは、アドレスバス２２２及びデータバス２２１によりアドレス信号及びデータ信号の授受が可能となっている。
【００１３】
また、この電子システム２００は、ＣＰＵ２０１からフラッシュメモリ２０２へのアドレスバス２２２における論理アドレス信号の上位数ビットを反転させる手動反転スイッチ２０３と、この電子システム２００と外部の通信端末との間でデータ通信を行う通信デバイス２０４とを有している。ここで、リカバリー用プログラムは、ＣＰＵ２０１に、通信デバイス２０４を介して、更新されたブートプログラムをダウンロードし、これをフラッシュメモリ２０２のブートプログラムに上書きするプログラム書き換え処理を行わせるものである。
【００１４】
また、フラッシュメモリ２０２の格納領域の先頭アドレスから第１の中間アドレスまでの最下位アドレス領域に、ブートプログラムが格納されており、第１の中間アドレスの次のアドレスから第２の中間アドレスまでの第１の中間アドレス領域にアプリケーションプログラムが格納されており、さらに、第２の中間アドレスの次のアドレスから第３の中間アドレスまでの第２の中間アドレス領域（中央アドレス領域）にリカバリー用プログラムが格納されている。なお、ここでアドレスは論理アドレスを意図しており、またアドレス領域は、論理アドレス領域を意図している。
【００１５】
次に動作について説明する。
【００１６】
このような電子システム２００では、通常動作時には、手動反転スイッチ２０３を、ＣＰＵ２０１からフラッシュメモリ２０２へのアドレス信号をそのまま通過させるよう設定しておく。この場合、この電子システム２００の電源を入れたときには、ＣＰＵ２０１は、最下位アドレス領域の先頭アドレスからブートすることとなり、ブートプログラムがＣＰＵ２０１に読み込まれて、オペレーティングシステムを起動するまでの処理が行われることとなる。
【００１７】
一方、ブートプログラムを書き換える時には、手動反転スイッチ２０３を、ＣＰＵ２０１からフラッシュメモリ２０２へのアドレス信号の上位数ビットを反転させるよう設定しておく。
【００１８】
この場合、この電子システム２００の電源を入れたときには、ＣＰＵ２０１は、通常動作時のように最下位アドレス領域の先頭アドレスからブートするのではなく、メモリ２０２の中央アドレス領域の先頭アドレスからブートするようになる。これにより、ＣＰＵ２０１はリカバリー用プログラムを読み込み、このプログラムに従って、通信デバイス２０４により、更新されたブートプログラムをダウンロードし、これをフラッシュメモリ２０２のブートプログラムに上書きする。
【００１９】
このように、メモリの最下位アドレス領域にブートプログラムを格納し、該ブートプログラムを書き換えるリカバリー用プログラムをメモリの中央アドレス領域に格納しておき、通常動作時には、最下位アドレス領域に格納されているブートプログラムからＣＰＵがブートし、ブートプログラムの書換時には、中央アドレス領域に格納されているリカバリー用プログラムからＣＰＵがブートするようにすることで、誤ってブートプログラムを破壊してしまった場合には、手動反転スイッチの設定により、決して書き換えを行わないリカバリー用プログラムからのブートが可能となり、ＣＰＵは正常にブートプログラムの書き換えルーチンに入ることができる。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００１−１９５２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
ところが、特許文献１で開示されているブートプログラムの書き換え機能を有するシステムでは、ＣＰＵからフラッシュメモリへのアドレス信号の反転を手動スイッチで行うため、ブートプログラムのアップデートの際にこのスイッチを操作しなければならない。
【００２２】
通常、手動スイッチは、電子システムとしてのモジュールに組み込まれて、製品の筐体内に実装されるので、操作の際には他のスイッチと区別することが必要になり、これが製品化で必要となる保守の容易化を図る上で問題となる。
【００２３】
つまり、電気機器などを正常な状態に保持する上で必要となるアップデート作業を行う際、電気機器の筐体を開けて筐体内部のモジュール基板に取り付けられているスイッチを操作するのは簡単な作業ではない。
【００２４】
また、ユーザが電気機器の筐体を開けて簡単な清掃作業などを行う場合には、筐体内部のモジュール基板に取り付けられている、通常動作とリカバリー動作（ブートプログラムの書換動作）とを切り替える手動スイッチを誤って操作して、ブートプログラムを不用意に切り替えてしまうという虞もあり、手動スイッチによる通常動作とリカバリー動作との切り替えは、誤操作に対する安全性を確保する上で問題がある。
【００２５】
本発明は、上記のような問題点を解決するためになされたものであり、ブートプログラムを書き換えるリカバリー処理を、基板の占有面積の増大を抑えつつ実現でき、しかも、システムにおけるブートプログラムの更新作業を簡単なものとして、このシステムが搭載される電気機器の保守を容易なものとできるシステムモジュール、及びこのようなシステムモジュールを搭載した電気機器を得ることを目的とする。
【課題を解決するための手段】
【００２６】
本発明に係るシステムモジュールは、中央演算処理装置を有し、種々の情報処理を行うシステムを構成するシステムモジュールであって、オペレーションシステムを起動するためのブートブログラムと、該ブートプログラムを書き換える処理を該中央演算処理装置に行わせるリカバリープログラムとをそれぞれ異なるメモリ領域に格納した、データの書き換え可能な不揮発性メモリと、該システムを搭載した電気機器の筐体の外部からの操作により該筐体内の該システムへ伝達された操作情報により、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを検出するモード検出器と、該モード検出器の検出出力が該リカバリーモードを示すとき、該中央演算処理装置が該リカバリープログラムを読み込むよう、該中央演算処理装置が生成したアドレス信号を切り替えるアドレス信号切替部とを備えたものであり、そのことにより上記目的が達成される。
【００２７】
本発明は、上記システムモジュールにおいて、前記ブートプログラムは、前記不揮発性メモリの最下位アドレスからその上位アドレスである第１のアドレスまでの下位メモリ領域に格納され、前記リカバリープログラムは、前記不揮発性メモリの第１のアドレスより上位の第２のアドレスから最上位アドレスまでの最上位メモリ領域に格納されていることが好ましい。
【００２８】
本発明は、上記システムモジュールにおいて、前記アドレス信号切替部は、前記中央演算処理装置と前記不揮発性メモリとの間のアドレスバスに設けられ、前記モード検出器の検出出力であるアドレス制御信号が前記リカバリーモードを示すとき、該中央演算処理装置が生成したアドレス信号が前記最上位メモリ領域を示すよう、該アドレス信号における複数のビットからなる上位ビットの値を所定値に固定するものであることが好ましい。
【００２９】
本発明は、上記システムモジュールにおいて、前記モード検出器の検出出力であるアドレス制御信号が前記通常モードを示す場合、前記システムの電源投入後に前記中央演算処理装置のリセットが解除されたとき、該中央演算処理装置は、前記不揮発性メモリ内の最下位メモリ領域に記憶されたブートプログラムを実行し、前記モード検出器の検出出力であるアドレス制御信号が前記リカバリーモードを示す場合、前記システムの電源投入後に前記中央演算処理装置のリセットが解除されたとき、該中央演算処理装置は、該不揮発性メモリ内の最上位メモリ領域に記憶されたリカバリープログラムを実行することが好ましい。
【００３０】
本発明は、上記システムモジュールにおいて、前記アドレス信号切替部は、入力信号に応じた出力信号を出力する状態と、入力信号に関わらず一定の出力信号を出力する状態とを制御信号により切り替えるトライステート素子と、該トライステート素子の出力端子と電源との間に接続されたプルアップ抵抗とを有し、該制御信号として前記アドレス制御信号を用い、前記アドレス制御信号がリカバリー状態を示す場合には、該トライステート素子の出力ノードを、該トライステート素子の出力信号の論理値が該プルアップ抵抗により強制的に論理値『１』に固定されるようハイインピーダンス状態にするものであることが好ましい。
【００３１】
本発明は、上記システムモジュールにおいて、前記システムを搭載した電気機器の筐体の外部からの操作は、該電気機器の筐体の姿勢を変える操作であり、前記モード検出器は、該システムの電源投入後に前記中央演算処理装置のリセット期間中に該システムがその基準面が水平及び垂直のいずれに平行になるように置かれているかを検出して、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを判定するものであることが好ましい。
【００３２】
本発明は、上記システムモジュールにおいて、前記モード検出器には、傾きセンサーモジュールが用いられていることが好ましい。
【００３３】
本発明は、上記システムモジュールにおいて、前記モード検出器には、Ｇセンサーモジュールが用いられていることが好ましい。
【００３４】
本発明は、上記システムモジュールにおいて、前記システムを搭載した電気機器の筐体の外部からの操作は、前記電気機器の筐体の外部から該筐体内の該システムへ向けて光信号を照射する操作であり、前記モード検出器は、該システムの電源投入後に前記中央演算処理装置のリセット期間中に、該光信号を検出して、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを判定するものであることが好ましい。
【００３５】
本発明は、上記システムモジュールにおいて、前記モード検出器には、前記光信号を検出する光検出センサーモジュールが用いられていることが好ましい。
【００３６】
本発明は、上記システムモジュールにおいて、前記モード検出器は、前記光信号を検出する光検出センサーを有し、該光検出センサーの検出出力に基づいて、該光信号に含まれるコード情報を解析し、該コード情報に基づいて、システム起動時の動作モードを通常モードに代えてリカバリーモードとすべきか否かを検出することが好ましい。
【００３７】
本発明に係る電気機器は、システムモジュールを搭載した電気機器であって、該システムモジュールは、上述した本発明に係るシステムモジュールであり、そのことにより上記目的が達成される。
【００３８】
次に、本発明の作用について説明する。
【００３９】
本発明においては、オペレーションシステムを起動するためのブートブログラムと、該ブートプログラムを書き換える処理を中央演算処理装置（ＣＰＵ）に行わせるリカバリープログラムとをそれぞれ異なるメモリ領域に格納した、データの書き換え可能な不揮発性メモリを備え、電気機器に搭載されたシステムモジュールを、電源投入直後にＣＰＵがブートプログラムを実行する通常モードと、電源投入直後にＣＰＵがブートプログラムを書き換えるリカバリーモードのいずれの動作モードで動作させるかを、電気機器の姿勢により設定するので、通常モードとリカバリーモードとの切り替えにスイッチ操作が不要となり、より簡単にリカバリー状態に移行することができる。
【００４０】
さらに、本発明では、フラシュメモリへのアドレス信号の切替を、ＸＯＲなどの論理素子による信号レベルの反転ではなく、トライステート素子とプルアップ抵抗によりアドレス信号の値を固定することにより行うので、アドレス信号の切り替えるビット数をより自由に選ぶことができる。このため、リカバリー用プログラムの格納場所を自由に選択でき、これによりメモリ領域でのプログラムの効率的な配置が可能になる。
【発明の効果】
【００４１】
以上のように、本発明によれば、所定の処理を行うＣＰＵとそのプログラムを格納した書き換え可能な不揮発性メモリとを有するシステムを構成するシステムモジュールにおいて、ＣＰＵがブートプログラムを書き換えるリカバリー処理を、基板の占有面積の増大を抑えつつ実現でき、しかも、システムにおけるブートプログラムの更新作業を簡単なものとして、このシステムが搭載される電気機器の保守を容易なものとできる効果がある。
【図面の簡単な説明】
【００４２】
【図１】図１は、本発明の実施の形態１による電気機器を説明する図であり、電子機器の一例として、ラップトップ型のパーソナルコンピュータ（図１（ａ））及びオーディオ機器（図１（ｂ））を示している。
【図２】図２は、本発明の実施の形態１による電気機器を説明する図であり、実施の形態１で示したパーソナルコンピュータやオーディオ機器などの電気機器に搭載されているシステムモジュールを説明する図である。
【図３】図３は、この実施の形態１のシステムモジュールを構成するフラッシュＲＯＭのメモリ領域を説明する図であり、フラッシュメモリの論理アドレス構成を示しており、図３（ａ）は、通常動作を説明する図であり、図３（ｂ）はリカバリー動作を説明する図である。
【図４】図４は、本発明の実施の形態１によるシステムモジュールを構成する固定スイッチを説明する図であり、上記固定スイッチ１１１を構成する、１ビットに対応するアドレスを固定するアドレス固定回路を示している。
【図５】図５は、本発明の実施の形態１によるシステムモジュールの動作をフローチャートで説明する図であり、電源投入後にブートプログラムを実行して通常処理を行う動作、及び電源投入後にリカバリープログラムを実行してブートプログラムを書き換える動作を示している。
【図６】図６は、本発明の実施の形態２によるシステムモジュールを説明する図である。
【図７】図７は、特許文献１に開示の、ブートプログラムの書換機能を搭載した電子システムを説明する図である。
【発明を実施するための形態】
【００４３】
以下、本発明の実施形態について図面を参照しながら説明する。
【００４４】
（実施形態１）
図１は本発明の実施の形態１による電気機器を説明する図であり、電子機器の一例として、ラップトップ型のパーソナルコンピュータ（図１（ａ））及びオーディオ機器（図１（ｂ））を示している。
【００４５】
図１（ａ）に示すパーソナルコンピュータ１００や図１（ｂ）に示すオーディオ機器１０１には、これらの電気機器を構成する種々のシステムモジュールが搭載されている。
【００４６】
例えば、パーソナルコンピュータ１００には、種々のシステムモジュールが搭載されており、例えば、パーソナルコンピュータ１００の本体１００ａに収容されているマザーボード１００ｂは１つのシステムモジュールである。このマザーボード１００ｂには、オペレーションシステムに従って種々の処理を行うＣＰＵ、該ＣＰＵが実行するプログラムを格納したフラッシュＲＯＭ（不揮発性書き換え可能なメモリ）などが搭載されている。例えば、マザーボード１００ｂのフラッシュＲＯＭには、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）及びオペレーションシステムを起動するためのブートブログラムなどが格納されている。
【００４７】
また、パーソナルコンピュータ１００は、システムモジュールとして、液晶パネル１００ｃを制御する液晶表示用モジュール１００ｃ１が搭載されている。このモジュール１００ｃ１は、液晶パネルを制御する液晶制御用ＣＰＵと、該液晶制御用ＣＰＵが実行するプログラムである、ブートプログラムやアプリケーションプログラム（オペレーションシステムを含む）を格納したフラッシュＲＯＭとを有している。
【００４８】
また、図１（ｂ）に示すオーディオ機器１０１は、機器本体１０１ａと、該機器本体に接続された一対のスピーカ１０１ｂ及び１０１ｃとを有している。
【００４９】
このようなオーディオ機器１０１においても、システムモジュールが搭載されており、このシステムモジュールは、オペレーションシステムに従ってオーディオ機器における種々の機能を実現するオーディオ用ＣＰＵと、該オーディオ用ＣＰＵが実行するプログラムである、ブートプログラム及びアプリケーションプログラム（オペレーションシステムを含む）を格納したフラッシュＲＯＭとを有している。
【００５０】
図２は、実施の形態１で示したパーソナルコンピュータやオーディオ機器などの電気機器に搭載されているシステムモジュールを説明する図である。
【００５１】
図２に示すシステムモジュール１１０は、従来の電子システムを構成するシステムモジュールと同様、プログラムを実行して各種モジュールとしての種々の処理を行うＣＰＵ２０１と、該オペレーションシステムを起動するためのブートプログラム、種々の処理をＣＰＵに行わせるためのアプリケーションプログラム、及び、ブートプログラムを書き換える処理をＣＰＵに行わせるためのリカバリー用プログラムを格納したフラッシュメモリ２０２とを有している。ここで、ＣＰＵ２０１とフラッシュメモリ（フラッシュＲＯＭ）２０２とは、アドレスバス２２２及びデータバス２２１によりアドレス信号及びデータ信号（制御信号を含む）の授受が可能となっている。
【００５２】
また、このシステムモジュール１１０は、ＣＰＵ２０１からフラッシュメモリ２０２へのアドレスバス２２２における論理アドレス信号の上位数ビットを固定する固定スイッチ１１１と、この固定スイッチ１１１の出力ノードに接続されたプルアップ抵抗１１２と、このシステムモジュール１１０と外部の通信端末との間でデータ通信を行う通信デバイス２０４とを有している。
【００５３】
ここで、ＣＰＵ２０１からフラッシュメモリ２０２への、論理アドレスを示すアドレスバス２２２は２４ビット構成としているが、これはシステムによって異なるため必ずしも２４ビットである必要はない。また、アドレスバス２２２の下位１６ビットはフラッシュメモリ２０２に直接接続され、上位８ビットは固定スイッチ１１１に接続されている。アドレスバス２２２以外の、データ信号および制御信号のためのデータバス２２１はフラッシュメモリ２０２に直接接続されている。
【００５４】
また、リカバリー用プログラムは、ＣＰＵ２０１に、通信デバイス２０４を介して、更新されたブートプログラムをダウンロードし、これをフラッシュメモリ２０２のブートプログラムに上書きするプログラム書き換え処理を行わせるものである。
【００５５】
また、このシステムモジュール１１０は、このシステムモジュール１１０を搭載した電気機器の姿勢、例えば縦向きに置かれているか、横向きに置かれているかを検出する加速度センサモジュール１１３と、該加速度センサモジュール１１３からのリセット信号を受け、リセット解除信号２２４をＣＰＵ２０１に送信するリセットＩＣ１１４とを有している。
【００５６】
ここで、加速度センサーモジュール１１３は重量加速度の方向を検出して電気機器の姿勢を判定するものであり、システムモジュールの基準面、例えば、システムモジュール基板であるマザーボードの表面が水平になっているかあるいは垂直になっているかによってアドレス制御信号を出力するものである。また、上記固定スイッチ１１１は加速度センサモジュール２０６からのＳＷ制御信号２２０の値が１のときにはアドレス上位８ビットを遮断し、０の時はそのまま通過させるよう構成されている。なお、重量加速度の方向を検出する加速度センサーモジュール１１３に代えて、Ｘ、Ｙ、Ｚ軸の３方向の加速度を検出可能なＧセンサモジュールを用いることもできる。
【００５７】
図３は、この実施の形態１のシステムモジュールを構成するフラッシュＲＯＭのメモリ領域を示す図であり、図３（ａ）は、通常動作を説明する図であり、図３（ｂ）はリカバリー動作を説明する図である。
【００５８】
フラッシュメモリ２０２のデータ格納領域Ｍｒの先頭アドレス（００００００Ｈ）Ｐｓからアドレス（００ＦＦＦＦＨ）までの最下位アドレス領域２３２に、ブートプログラムが格納されており、続くアドレス（０１００００Ｈ）から中間アドレス（ＦＥＦＦＦＦＨ）までの中間アドレス領域２３１にアプリケーションプログラムが格納されており、さらに、第２の中間アドレス（ＦＦ０００００Ｈ）Ｐｒから最終アドレス（ＦＦＦＦＦＦＨ）までの最上位アドレス領域２３０にリカバリー用プログラムが格納されている。なお、ここでアドレスはＣＰＵで発生する論理アドレスであり、また各アドレス領域は、フラッシュＲＯＭの物理アドレス領域に対する論理アドレス領域である。
【００５９】
図４は、上記固定スイッチ１１５を構成する、１ビットに対応するアドレスを固定するアドレス固定回路を示している。
【００６０】
このアドレス固定回路１１５ａは、フラッシュメモリ２０２のアドレスバス２２２における１ビットに対応するアドレス信号線２２２ａに入力ノードが接続されたトライステートバッファ（トライステート素子）２１１と、トライステートバッファ２１１の出力ノードと電源との間に接続されたプルアップ抵抗１１２ａとを有し、トライステートバッファ２１１の出力ノードはフラッシュメモリ２０２に接続されている。ここで、トライステートバッファ２１１は、ＳＷ制御信号２２０の値が１のとき、アドレス信号線２２２の信号レベルをそのまま出力し、ＳＷ制御信号２２０の値が０の時は、出力ノードをハイインピーダンス状態にするものであり、トライステートバッファ２１１の出力ノードがハイインピーダンス状態の時には、トライステートバッファ２１１の出力ノードに現れるアドレス信号は、プルアップ抵抗１１２によって自動的にすべて１に固定される。
【００６１】
次に動作について説明する。
【００６２】
このような構成のシステムモジュールを搭載した電気機器、例えば図１（ａ）に示すパーソナルコンピュータ１００では、図１（ａ）に示すように通常の使用状態である横置き状態であるときは、加速度センサモジュール１１３はその姿勢が横置き状態であることを検出して、その検出出力として、値「０」を示すＳＷ制御信号２２０を出力する。
【００６３】
一方、ブートプログラムの書き換え状態である縦置き状態であるときは、加速度センサモジュール１１３はその姿勢が縦置き状態であることを検出して、その検出出力として、値「１」を示すＳＷ制御信号２２０を出力する。
【００６４】
固定スイッチ１１１では、加速度センサモジュール１１３からのＳＷ制御信号２２０の値が「１」であるときには、アドレス信号の上位８ビットを遮断してそれぞれのビットの値を１に固定し、ＳＷ制御信号２２０の値が「０」である時は、該アドレス信号をそのまま通過させる。
【００６５】
また、加速度センサモジュール１１３からは、ＣＰＵ２０１をリセットさせるためのリセットＩＣ１１４に、初期動作完了信号２２３を出力する。リセットＩＣ１１４は、初期動作完了信号２２３を受けてＣＰＵ２０１のリセットを解除する信号（リセット解除信号）２２４を出力する。
【００６６】
ＣＰＵ２０１はリセット解除信号２２４によりリセット状態が解除されると起動を開始し、ブートプログラム書き換え時には、リカバリー用プログラム２３０よりプログラムの実行を開始し、リカバリー用プログラム２３０に従って、通信デバイス２０４からプログラムを取得し、フラッシュメモリ２０２内のブートプログラムを書き換える。
【００６７】
一方、ブートプログラム書き換えを行わない通常起動時には、ＣＰＵ２０１は起動すると、ブートプログラム２３２を読み込んでプログラムの実行を開始する。
【００６８】
以下、ブートプログラムの書き換え時の動作について詳しく説明する。
【００６９】
図５は、本発明の実施の形態１によるシステムモジュールの動作をフローチャートで説明する図であり、電源投入後にブートプログラムを実行して通常処理を行う動作、及び電源投入後にリカバリープログラムを実行してブートプログラムを書き換える動作を示している。
【００７０】
まず、この実施形態１では、システムモジュールを搭載した電気機器を、電源投入直後にＣＰＵがブートプログラムを実行する通常モードと、電源投入直後にＣＰＵがブートプログラムを書き換えるリカバリーモードのいずれの動作モードで動作させるかを、電気機器の姿勢により設定しておく。
【００７１】
例えば、電気機器であれば、電気機器を通常の使用するときの置き方にすることで、電気機器の動作モードを通常モードに設定でき、電気機器を通常の使用するときの置き方とは異なる置き方にする、つまり通常横向きに置いて使用する電気機器であれば、縦向きに置くことで、電気機器の動作モードをリカバリーモードに設定することができる。
【００７２】
そこで、上記のように電気機器を通常の置き方あるいは通常とは異なる置き方にして電源を投入する（ステップＳＴ１）。
【００７３】
電源投入後、システムのパワーオンリセットが解除された直後のＣＰＵ２０１はリセット状態であるが、その状態のまま加速度センサーモジュール１１３がＣＰＵ２０１よりも先にリセット解除され（ステップＳＴ２）、加速度センサーモジュール１１３が、電気機器の筐体の置き方に応じたシステムモジュールの配置された状態を判定する（ステップＳＴ３）。
【００７４】
もし、システムモジュールの動作モードがリカバリーモードでなければ、加速度センサーモジュール１１３は、固定スイッチ１１１が、ＣＰＵ２０１からのアドレス信号を固定しないアドレス非固定状態となるよう、ＳＷ制御信号２２０として、値「０」の信号を出力する（ステップＳＴ４）。
【００７５】
次に加速度センサモジュール１１３はリセットＩＣ１１４へ初期動作完了信号を出力し（ステップＳＴ４ａ）、リセットＩＣ１１４がこれを受けてリセット解除信号２２４を出力してＣＰＵ２０１のリセットが解除される（ステップＳＴ５）。
【００７６】
ＣＰＵ２０１は、フラッシュメモリ２０２のアドレス空間の先頭番地００００００Ｈからブートプログラム２３２を読み込んでこのブートプログラム２３２の実行を開始する（ステップＳＴ６）。
【００７７】
そして、このようなブートプログラムの実行により、システムモジュールは通常の処理を行う（ステップＳＴ７）。
【００７８】
加速度センサーモジュール１１３でのシステムモジュールの配置された状態の判定結果、システムモジュールの動作モードがリカバリーモードに設定されていれば、加速度センサーモジュール１１３は、固定スイッチ１１１が、ＣＰＵ２０１からのアドレス信号を固定するアドレス固定状態となるよう、ＳＷ制御信号２２０として、値「１」の信号を出力する（ステップＳＴ８）。
【００７９】
これにより、ＣＰＵ２０１からフラッシュメモリ２０２へのアドレス信号の上位８ビットは、トライステートバッファ２１１によって切り離され、プルアップ抵抗１１２によって１に固定される（ステップＳＴ８）。
【００８０】
その後通常状態と同様の手順で、つまり、加速度センサモジュール１１３がリセットＩＣ１１４へ初期動作完了信号を出力し（ステップＳＴ８ａ）、リセットＩＣ１１４がこれを受けてリセット解除信号２２４を出力してＣＰＵ２０１のリセットが解除される（ステップＳＴ９）。
【００８１】
ＣＰＵ２０１は、フラッシュメモリ２０２のアドレス空間の先頭番地００００００Ｈからブートしようとするが、アドレス信号の上位８ビットが１に固定されているため、ＣＰＵ２０１は、フラッシュメモリ２０２のアドレス空間のＦＦ００００Ｈ番地からブートし、リカバリー用プログラム２３０の実行を開始する（ステップＳＴ１０）。
【００８２】
リカバリー用プログラム２３０にはブートプログラム２３２を書き換えるプログラムが含まれているので、ＣＰＵ２０１は、このリカバリー用プログラムの実行により、通信デバイス２０４を通じて、更新されたブートプログラムをダウンロードし、ダウンロードしたブートプログラムを、フラッシュメモリ２０２に格納されているブートプログラム２３２に上書きする（ステップＳＴ１１）。
【００８３】
上書きが正常に終了すれば、ＣＰＵ２０１は、正常終了表示（ランプの点）を行う（ステップＳＴ１３）。これにより使用者はブートプログラムの書き換えが完了したことを知ることができる。使用者はこの正常終了表示を確認して、システムモジュールを搭載した電気機器の筐体をリカバリー状態ではない置き方にして（ステップＳＴ１４）、電源を切る（ステップＳＴ１５）。
【００８４】
なお、その後は、電源を投入することで（ステップＳＴ１）、リカバリー状態ではないときと同様の処理が行われる。
【００８５】
ところが、停電など何らかの要因によりブートプログラム２３２の上書きの途中で電源が切れてしまうなどして正常終了しなかった場合、正常終了表示まで到達していない。このとき、ＣＰＵ２０１は正常終了表示を行わないため、使用者は一旦電源を切り（ステップＳＴ１５）、電気機器の筐体をリカバリーモードを設定する置き方にしたままで再度電源を投入する（ステップＳＴ１）。
【００８６】
これにより、再びリカバリープログラム２３０を使ってブートプログラム２３２の書き換えが実行される。このときブートプログラム２３２は前回の書き換え異常終了のために破壊されてしまっていても、破壊されたブートプログラム２３３は立ち上げに使わないので影響は無い。使用者は、ブートプログラム書き換え作業を正常終了するまで、リカバリープログラムの実行を繰り返すことができる。
【００８７】
このように本実施形態１では、アドレス固定・非固定の切り替えを加速度センサーモジュールを使って行うことにより、リカバリー時と通常時の切り替えにスイッチ操作を必要としなくなったため、より簡単にリカバリー状態に移行することができる。
【００８８】
また、フラッシュメモリ内のプログラム書き換え時、ブートプログラム（ブートローダー）が破壊された場合、リカバリー処理としてＣＰＵからの起動アドレスを電源投入後の起動時に、メモリ領域のアドレスの切替により、リカバリー用ブートプログラムをブートプログラムとして起動させることができ、破壊されたブートローダを修復することができる。
【００８９】
また、ブートプログラムの書き換え時にはシステムモジュール全体を電気機器の筐体から取り外し、置き方を変えて行う場合も多いため、そのような場合、本発明の実施形態１では何ら特別な操作を必要とせずに、リカバリー状態の設定や通常状態への復帰を行うことができる。
【００９０】
さらに、本実施形態では、フラシュメモリへのアドレス信号の切替手段を、ＸＯＲなどの論理素子による信号反転回路ではなく、トライステート素子とプルアップ抵抗による信号固定回路という簡略にした構成を用いているので、切り替えるアドレスビット数をより自由に選ぶことができる。このため、リカバリー用プログラムの格納場所を自由に選択でき、これによりプログラムの効率的な配置が可能になる。
【００９１】
さらに、本実施形態では、オペレーションシステムを起動するためのブートブログラムと、該ブートプログラムを書き換える処理を該中央演算処理装置に行わせるリカバリープログラムとをそれぞれ異なるメモリ領域に格納しているので、フラッシュメモリとしてブートプログラムを格納したものと、リカバリープログラムを格納したものとを別に持つことが不要となり、リカバリー処理がひとつのフラッシュメモリ内で行うことができ、よってモジュール内のＩＣ削減によるコンパクト化が可能である。
【００９２】
なお、上記実施形態１において、電気機器の筐体をリカバリー状態ではない置き方にするのは、電源を切る前ではなく、電源を切った後に行ってもよい。
【００９３】
また、上記実施形態１では、電気機器を通常の使用するときの置き方にすることで、電気機器の動作モードを通常モードに設定し、電気機器を通常の使用するときの置き方（横向きの置き方）とは異なる置き方（縦向きの置き方）で置くことで、電気機器の動作モードをリカバリーモードに設定する場合を示したが、電気機器の動作モードを通常モードとリカバリーモードのいずれの動作モードにするかを電気機器の姿勢により設定する方法は、実施形態１の単に電気機器を横置きにするか縦置きにするかではなく、電気機器の向きを縦向き、横向き、縦向き、横向きというように、向きを変化させた回数に応じて行うようにしてもよい。
（実施形態２）
図６は、本発明の実施の形態２によるシステムモジュールを説明する図であり、この実施形態２によるシステムモジュールも、実施形態１で示したパーソナルコンピュータやオーディオ機器などの電気機器に搭載されるものである。
【００９４】
図６に示すシステムモジュール１１０ａは、実施形態１のシステムモジュール１１０における加速度センサモジュール１１３に代えて光センサモジュー１１３ａを備えたものであり、その他の構成は実施形態１のシステムモジュールと同一である。
【００９５】
つまり、上述した実施形態１では、システムモジュール１１０を搭載した電気機器を、電源投入直後にＣＰＵがブートプログラムを実行する通常モードと、電源投入直後にＣＰＵがブートプログラムを書き換えるリカバリーモードのいずれの動作モードで動作させるかを、電気機器の姿勢により設定するようにしている。これに対し、この実施形態２では、システムモジュール１１０ａを搭載した電気機器を、電源投入直後にＣＰＵがブートプログラムを実行する通常モードと、電源投入直後にＣＰＵがブートプログラムを書き換えるリカバリーモードのいずれの動作モードで動作させるかを、予め光センサモジュール１１３ａで受信した光信号に基づいて設定するようにしている。
【００９６】
このような構成の実施形態２のシステムモジュール１１０ａでは、懐中電灯などにより、電気機器の筐体内に収容されている光センサモジュール１１３ａに対して一定時間（例えば１０秒間）光を照射することで、電気機器をリカバリーモードとし、光センサモジュール１１３ａに対して一定時間（例えば５秒間）光を照射することで、電源投入直後にＣＰＵがブートプログラムを実行する通常モードに戻すようにすることができる。
【００９７】
また、光センサモジュール１１３ａに照射する光信号にコード情報を持たせることにより、決められたコード情報を含む光信号が光センサーモジュール１１３ａに照射された場合のみ、リカバリーモードに設定したり、リカバリーモードを通常モードに復帰させたりすることが可能となる。
【００９８】
なお、上記実施形態１および２では、トライステート素子とプルアップ抵抗による固定手段としているが、これに限定されるものではなく、フラシュメモリへのアドレス信号の切替は、ＸＯＲなどの論理素子により行ってもよい。
【００９９】
また、上記正常終了表示は、リカバリープログラムの読込みからブートプログラムの書き換え完了までの時間を計測し、予めタイマーに設定されている所要時間より短い時間でブートプログラムの書き換えが完了したときには、正常終了表示を行うようにしてもよい。
【０１００】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１０１】
本発明は、プログラムを実行する中央演算処理装置（ＣＰＵ）と、そのプログラムを格納した書き換え可能な不揮発性メモリとを含む、大規模集積回路（ＬＳＩ）などのシステムを構成するシステムモジュールにおいて、システムをリカバリーするためのブートロード処理を行うシステムモジュール、及びこのようなシステムモジュールを搭載した電気機器の分野において、ブートプログラムを書き換えるリカバリー処理を、基板の占有面積の増大を抑えつつ実現でき、しかも、システムモジュールにおけるブートプログラムの更新作業を簡単なものとして、このシステムモジュールが搭載される電気機器の保守を容易なものとできるものである。
【符号の説明】
【０１０２】
１００  パーソナルコンピュータ（電気機器）
１００ａ  コンピュータ本体
１００ｂ  マザーボード
１００ｃ  液晶パネル
１００ｃ１  液晶表示用モジュール
１０１  オーディオ機器（電気機器）
１０１ａ  オーディオ機器本体
１０１ｂ、１０１ｃ  スピーカ
１１１  固定スイッチ（トライステートバッファ）
１１２  プルアップ抵抗
１１３  加速度センサモジュール
１１４  リセットＩＣ
２０１  ＣＰＵ
２０２  フラッシュメモリ
２０４  通信デバイス
２２０  スイッチ制御信号
２２１  データバス
２２２  アドレスバス
２２３  初期動作完了信号
２２４  リセット解除信号
２３０  リカバリー用プログラム
２３１  アプリケーションプログラム
２３２  ブートプログラム
２３３  破壊されたブートプログラム
【図１】
2012043309.tif 000003
【図２】
2012043309.tif 000004
【図３】
2012043309.tif 000005
【図４】
2012043309.tif 000006
【図５】
2012043309.tif 000007
【図６】
2012043309.tif 000008
【図７】
2012043309.tif 000009