(57)【要約】【課題】ファームウェアが記憶されるフラッシュメモリの記憶容量を削減して、コストダウンを図る。【解決手段】リセットスタート時において、ファームウェアのデータの有効性／無効性を示す有効／無効フラグｆｌｇを参照する。有効／無効フラグｆｌｇがファームウェアデータの無効を示しているときは、フロントエンドブロック２側にて保存されているファームウェアのデータを転送させ、フラッシュメモリ上で更新を行うようにされる。また、更新のエラーが発生したときには、リセットスタートから処理を再開するようにされる。【選択図】図６
2005050097.tif 000002
【特許請求の範囲】
【請求項１】
１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子と、
所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別手段と、
上記判別手段により上記識別情報について無効が設定されていると判別されるのに応じて、上記実行プログラム記憶領域に記憶される上記実行プログラム単位の更新を行う更新手段と、
上記更新手段による上記実行プログラム単位の更新が正常に終了したとされるときには、上記識別情報について有効を示すように設定する情報設定手段と、
を備えていることを特徴とする情報処理装置。
【請求項２】
上記識別情報が記憶される上記書き換え可能な記憶領域は、
上記実行プログラム単位が記憶される上記書き換え可能な記憶素子とは物理的に異なる記憶手段に記憶される、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子についての読み出し／書き込み処理を実行する読み出し／書き込み実行処理と、
所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別処理と、
上記判別処理により上記識別情報について無効が設定されていると判別されるのに応じて、読み出し／書き込み実行処理を利用して、上記実行プログラム記憶領域に記憶される上記実行プログラム単位の更新を行う更新処理と、
上記更新処理による上記実行プログラム単位の更新が正常に終了したとされるときには、上記識別情報について有効を示すように設定する情報設定処理と、
を実行することを特徴とする情報処理方法。
【請求項４】
１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子についての読み出し／書き込み処理を実行する読み出し／書き込み実行処理と、
所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別処理と、
上記判別処理により上記識別情報について無効が設定されていると判別されるのに応じて、読み出し／書き込み実行処理を利用して、上記実行プログラム記憶領域に記憶される上記実行プログラム単位の更新を行う更新処理と、
上記更新処理による上記実行プログラム単位の更新が正常に終了したとされるときには、上記識別情報について有効を示すように設定する情報設定処理と、
を情報処理装置に実行させるプログラム。
【請求項５】
１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子についての読み出し／書き込み処理を実行する読み出し／書き込み実行処理と、
所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別処理と、
上記判別処理により上記識別情報について無効が設定されていると判別されるのに応じて、読み出し／書き込み実行処理を利用して、上記実行プログラム記憶領域に記憶される上記実行プログラム単位の更新を行う更新処理と、
上記更新処理による上記実行プログラム単位の更新が正常に終了したとされるときには、上記識別情報について有効を示すように設定する情報設定処理と、
を情報処理装置に実行させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新される必要性のある実行プログラムが記憶される記憶素子を備える情報処理装置、情報処理方法に関する。また、情報処理装置に処理を実行させるためのプログラム、及びこのようなプログラムが記録された記録媒体に関する。
【背景技術】
【０００２】
例えば、マイクロコンピュータの制御により動作する各種の電子機器においては、マイクロコンピュータが実行すべきプログラム（実行プログラム）を、このマイクロコンピュータが備える書き換え可能なメモリ素子に記憶させることが行われる。このようにして、電子機器が備えるメモリ素子に対して記憶される、いわゆる組み込みのプログラムは、一般にファームウェア(Firm Ware)といわれる。
このようなファームウェアを記憶するメモリ素子として、近年においては、しばしばフラッシュメモリが採用される。
【０００３】
また、近年においては、特許文献１として示すように、電子機器がファームウェアのデータを、ネットワーク経由若しくは放送波の受信などによりダウンロードして取得し、この取得したファームウェアのデータにより、内部のメモリ素子に記憶されるファームウェアを更新（バージョンアップ）する技術も知られるようになってきている。
【０００４】
【特許文献１】特開２００３−７０５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようにして、ファームウェアのデータをダウンロードして更新を行う場合の実際において、例えばメモリ素子へのファームウェアのデータの書き換え中に、電子機器に供給される商用交流電源が瞬断されるなどしてデータの転送も中断してしまい、ファームウェアの更新が正常に終了しない場合のあることは、可能性として避けることはできない。このようにしてファームウェアの更新が正常終了しなかった場合、メモリ素子に記憶されたファームウェアのデータは不完全なものであることから、電子機器が正常に動作しなくなってしまう。
【０００６】
そこで、上記のようなファームウェア更新の異常終了の対策として、ファームウェアを記憶するメモリ素子について、１つのファームウェアとしてのプログラム単位を記憶する領域（ファームウェア領域）を、例えば複数設定するということが行われる。
そして、ファームウェアを更新するときには、複数のファームウェア領域のうちの１つのファームウェア領域を上書き消去するようにして、ダウンロードしたファームウェアのデータを書き込むようにされる。
このファームウェアの更新が正常終了すれば、以降においては、この最後に更新された最新のファームウェアによりマイクロコンピュータが動作するようにされる。これに対して、ファームウェアの更新が異常終了した場合には、今回の更新に利用しなかった、他のファームウェア領域に記憶されているファームウェアによりマイクロコンピュータが起動して動作するようにされる。この場合、更新（バージョンアップ）後の最新のファームウェアを使用することはできないが、これより以前のバージョンのファームウェアを使用することになるので、電子機器は問題なく動作できる。そして、以降における所定の機会、タイミングにより、ファームウェアの更新が異常終了していたファームウェア領域に対して、ファームウェアの更新を再試行するようにされる。
【０００７】
しかしながら、上記した対策のしかたでは、同じファームウェアのデータを記憶するファームウェア領域を、少なくとも２つ備えなければならない。
ここで、メモリ素子の記憶容量の増加は、例えばそのままコストアップにつながるので、電子機器としてコスト削減を考えた場合においては、メモリ素子の記憶容量は必要最小限とされることが好ましい。この観点からすれば、メモリ素子については、ファームウェアのデータを記憶するファームウェア領域を１つとした条件の下でも、データ更新の異常終了に対応した対策が採られるようにすることが求められることになる。
【課題を解決するための手段】
【０００８】
そこで本発明は上記した課題を考慮して、情報処理装置として次のようにして構成する。
つまり、特定機能の実行プログラム単位を１つずつ記憶する実行プログラム記憶領域については１つとして設定された、書き換え可能な記憶素子と、所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別手段と、この判別手段により識別情報について無効が設定されていると判別されるのに応じて、実行プログラム記憶領域に記憶される実行プログラム単位の更新を行う更新手段と、この更新手段による上記実行プログラム単位の更新が適正に終了したとされるときには、識別情報について有効を示すように設定する情報設定手段とを備えて構成することとした。
【０００９】
また、情報処理方法としては、１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子についての読み出し／書き込み処理を実行する読み出し／書き込み実行処理と、所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別処理と、この判別処理により識別情報について無効が設定されていると判別されるのに応じて、読み出し／書き込み実行処理を利用して、実行プログラム記憶領域に記憶される実行プログラム単位の更新を行う更新処理と、この更新処理による実行プログラム単位の更新が正常に終了したとされるときには、識別情報について有効を示すように設定する情報設定処理とを実行するように構成することとした。
【００１０】
また、プログラムとしては、１つの特定機能の実行プログラム単位を記憶する実行プログラム記憶領域については１つのみを割り当てることとして設定された、書き換え可能な記憶素子についての読み出し／書き込み処理を実行する読み出し／書き込み実行処理と、所定の書き換え可能な記憶領域に記憶されるものであり、上記書き換え可能な記憶素子に記憶される上記実行プログラム単位についての有効／無効を区別するための識別情報について、有効／無効のいずれを示しているのかについて判別する判別処理と、この判別処理により識別情報について無効が設定されていると判別されるのに応じて、読み出し／書き込み実行処理を利用して、実行プログラム記憶領域に記憶される実行プログラム単位の更新を行う更新処理と、この更新処理による実行プログラム単位の更新が正常に終了したとされるときには、識別情報について有効を示すように設定する情報設定処理とを、情報処理装置に実行させるものとして構成することとした。
【００１１】
また、上記プログラムを記録して記録媒体を構成することとした。
【００１２】
上記各構成によれば、本発明としては、特定機能の実行プログラム単位を記憶する記憶素子において実行プログラム記憶領域が１つのみであるとされている。これは、上記特定機能の実行プログラム単位については１つのみを記憶可能であることを意味する。
そのうえで、この実行プログラム記憶領域に記憶される実行プログラム単位についての有効／無効を示す識別情報を規定して保持させておくようにしている。この識別情報を認識すれば、現在において、実行プログラム記憶領域に記憶される実行プログラム単位が有効なものであるか否かについて判別することができることになる。そして、識別情報により、実行プログラム単位が無効であると判別した場合には、その実行プログラム記憶領域に記憶される実行プログラム単位を実行することはせずに、実行プログラム単位の更新を行うように動作する。そして、更新が適正終了したら、識別情報について、無効から有効を示すように設定を行う。このことから、本発明の構成によっては、識別情報が無効を示している限りは、特定機能の実行プログラム単位についての更新が必ず実行されることになる。
【発明の効果】
【００１３】
以上のことから、本発明によっては、記憶素子において、特定機能の実行プログラム単位を記憶する実行プログラム記憶領域が１つのみに制限されている場合においても、最終的に、この実行プログラム記憶領域に記憶される特定機能の実行プログラム単位の更新を行うことができることになる。このことは、換言すれば、記憶素子において、特定機能の実行プログラム単位を記憶する実行プログラム記憶領域を１つのみ設ければよいということであり、複数の実行プログラム記憶領域を設ける場合と比較して、記憶素子に必要な記憶容量を少ないものとすることができる。記憶素子の記憶容量は価格に影響するので、記憶素子の記憶容量が少なくされたのに応じて、コストダウンが図られることになる。
また、記憶素子によっては、必要とされる記憶容量が少なくなるのに応じて、必要とされる物理的な記憶素子数も削減される場合もあるが、この場合には、その分、基板実装に必要なスペースも節約できることになって、例えば、電子機器の小型化、及び電子機器のデザインの自由度の拡大などの効果も得ることが可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明を実施するための最良の形態（以下、単に実施の形態という）としての情報処理装置の構成を備えているとされる、テレビジョン受像機の構成を示している。この図に示すテレビジョン受像機はデジタル放送に対応しており、デジタル放送の放送波を受信して画像／音声として出力可能とされている。
また、本実施の形態のテレビジョン受像機は、後述するようにして、フラッシュメモリに記憶されるファームウェアとしての実行プログラム単位によりＣＰＵが制御動作を実行するようにされている。そして、例えばバージョンアップなどを目的として、このファームウェアのデータを更新する場合には、放送として提供される更新用のファームウェアのデータをダウンロードして取得することができるようにされている。あるいは、外部データインターフェイスを備え、この外部データインターフェイスを経由して、外部記憶媒体などから転送されるファームウェアのデータをダウンロードして取得することができるようになっている。
図１においては、主として、上記のようにしてファームウェアのデータをダウンロードして更新する動作の実現に必要な構成を示しており、例えば、受信取得した映像／音声データを対象とする信号処理などのための構成の図示は省略している。
【００１５】
図１に示す実施の形態としてのテレビジョン受像機１は、図示するようにして、大きくは、フロントエンドブロック２とＴＶシステムマイクロコンピュータ３（以下、マイクロコンピュータについては、マイコンと略す）とから成るものとされる。
フロントエンドブロック２は、デジタル放送を受信して必要なチャンネルのデータを抽出取得するための機能回路部位から成るブロックである。ＴＶシステムマイコンは、テレビジョン受像機１についての全体的な制御を司るためのマイコンである。なお、ここでは、本実施の形態のテレビジョン受像機１が対応するデジタル放送は、地上波、衛星、ＣＡＴＶなど、いずれとされてもよいものであり、特に限定されるべきものではない。
【００１６】
フロントエンドブロック２においては、先ず、チューナ部１１が備えられている。チューナ部１１では、アンテナ５にて受信された放送波を入力して、選局、キャリア復調、チャンネルデータ抽出（デマルチプレクス処理）、抽出データのデコード処理などを実行して、必要なデータを得るようにされる。ここで、例えば、放送としての送信によりファームウェアのデータがアップロードされている場合には、チューナ部１１で、このファームウェアのデータを送信しているチャンネルのキャリアを受信し、上記のようにして各種所要の処理を実行することでファームウェアのデータを出力することができる。また、確認のために述べておくと、チューナ部１１からは、同様の処理によって、番組としてのビデオ／オーディオデータを出力させることが可能とされているが、ここでは、説明の便宜上、ファームウェアのデータに関して言及していくこととする。
【００１７】
ＦＥ(Front End)−ＣＰＵ１２は、フロントエンドブロック２の動作制御を実行するための各種処理動作を実行するものであり、例えば、このＦＥ−ＣＰＵ１２と接続されるＦＥ−ＲＡＭ１３及びＦＥ−フラッシュメモリ１４等と、フロントエンドブロック２側のマイクロコンピュータを形成する。
ＦＥ−フラッシュメモリ１４には、上記ＦＥ−ＣＰＵ１２がフロントエンドブロック２の動作制御のために実行すべきプログラム（フロントエンド用のファームウェアデータ）がインストールされるようにして記憶されている。
また、本実施の形態では、ファームウェアのデータのダウンロードとして、上記したように、チューナ部１１では、放送として送信されたファームウェアのデータを受信取得可能とされ、また、後述する外部インターフェイス１５と接続されたメディアドライブ、情報端末装置などから、メディアに記録されたファームウェアのデータを転送させて取得することが可能とされている。ＦＥ−フラッシュメモリ１４は、このようにして取得したファームウェアのデータであり、後述するＴＶシステムマイコン３のＴＶ−ＣＰＵ２２が実行すべきもので、ＴＶ−フラッシュメモリ２４にインストールされるべきファームウェアのデータ（以降ＴＶ−ファームウェアデータともいう）の保存先ともされている。
ＦＥ−ＲＡＭ１３は、ＦＥ−ＣＰＵ１２のための作業領域であり、例えばＦＥ−ＣＰＵ１２が実行すべきプログラムが展開され、また、ＦＥ−ＣＰＵ１２の演算処理結果などに応じたデータが一時的に保持される。
【００１８】
マイコン間インターフェイス１６は、ＴＶシステムマイコン３側のマイコン間インターフェイス２１と、所定の通信プロトコルに従った通信バスを介して接続されることで、フロントエンドブロック２側のマイコンと、ＴＶシステムマイコン３側との間でのデータ通信を行う。つまり、フロントエンドブロック２側のＦＥ−ＣＰＵ１２と、ＴＶシステムマイコン３側のＴＶ−ＣＰＵ２２との間での通信を可能とする。
【００１９】
外部インターフェイス１５は、例えばＵＳＢ(Universal Serial Bus)、IEEE1394などのデータインターフェイス、もしくは、ＬＡＮ(Local Area Network)、インターネットなどのネットワークとのインターフェイスとされる。つまり、データーインターフェイスもしくはネットワーク経由で、外部とデータ通信を実行するためのインターフェイスとして設けられる。
【００２０】
ＴＶシステムマイコン３において、マイコン間インターフェイス２１は、上記しているように、ＴＶ−ＣＰＵ２２と、フロントエンドブロック２側のＦＥ−ＣＰＵ１２との所定の通信プロトコルに従った通信を可能とするために、フロントエンドブロック２のマイコン間インターフェイス１６と接続される。
【００２１】
また、ＴＶ−ＣＰＵ２２は、テレビジョン受像機１を総括的に制御を実行するものとされ、フロントエンドブロック２側のマイコンに対しては、マスター的な役割となる。
【００２２】
ＴＶ−フラッシュメモリ２４は、所定の記憶容量サイズを有するフラッシュメモリとしてのメモリ素子（記憶素子）で構成され、後述するようにして、ＴＶ−ＣＰＵ２４が実行すべきプログラムがインストールされるようにして記憶されている。
ＴＶ−ＲＡＭ２３は、ＴＶ−ＣＰＵ２２のための作業領域であり、ＴＶ−ＣＰＵ２２が実行すべきプログラムが展開され、また、ＴＶ−ＣＰＵ２２の演算処理結果などに応じたデータが一時的に保持される。
【００２３】
また、ＴＶシステムマイコン３には、外付けの不揮発性メモリ４が接続されている。このために、ＴＶシステムマイコン３においては、ＴＶ−ＣＰＵ２２が不揮発性メモリ４に対してアクセスしてデータの読み書きができるように、メモリインターフェイス２５が備えられている。
そして、本実施の形態では、不揮発性メモリ４に対して少なくとも、有効／無効フラグｆｌｇを保持させることとしている。有効／無効フラグｆｌｇは、所定のビット数（或いはバイト数）により形成される情報であって、後述するようにして、ＴＶ−フラッシュメモリ２４に記憶されているプログラムデータのうち、ブート後の処理を実行するためのＴＶ−ファームウェアデータについての有効／無効を識別するための識別情報として機能する。なお、有効／無効フラグｆｌｇを格納していさえすれば、ＴＶシステムマイコン３による不揮発性メモリ４の他の使用用途としては特に限定されものではない。
【００２４】
図２に、上記図１に示すテレビジョン受像機１におけるＴＶシステムマイコン３内の、ＴＶ−フラッシュメモリ２４における記憶内容設定例を概念的に示す。
周知のようにして、フラッシュメモリの書き換えデータ単位は、セクタ単位となる。そこで、図２では、概念的に、ＴＶ−フラッシュメモリ２４がセクタ＃０〜セクタ＃１９の２０セクタから成るものであることとしている。そしてここでは、セクタ＃０〜＃７から成る連続するセクタ領域を、ブートプログラムが記憶（インストール）されるブートプログラム領域Ａｒ１として設定している。これに続く、セクタ＃８〜＃１９から成る連続するセクタ領域を、ＴＶ−ファームウェアデータが記憶（インストール）されるファームウェア領域Ａｒ２としている。先にも述べたように、このＴＶ−フラッシュメモリ２４に記憶されるプログラムデータであるブートプログラム及びＴＶ−ファームウェアデータは、テレビジョン受像機１におけるメインマイコンであるＴＶ−ＣＰＵ２２が実行すべきものである。
【００２５】
ブートプログラムは、起動時に必要な処理を実行するためのプログラムである。ここでいう、ブートプログラムが実行される「起動時」とは、先ず、ＴＶシステムマイコン３に電源を供給するスタンバイ電源から電源供給がされていない状態から、例えば商用交流電源がテレビジョン受像機１に投入されることなどに応じて、スタンバイ電源から電源が供給されて、マイコンとして起動を開始する場合となる。また、スタンバイ電源からＴＶシステムマイコン３に対して電源が供給されている状態であっても、必要に応じて、自己をリセットして起動させる動作（以降、リセットスタートともいう）を実行する場合があるが、このリセットスタート時も、先ず、ブートプログラムによる起動処理を実行する「起動時」であるということになる。
【００２６】
ＴＶ−ファームウェアデータは、ＴＶ−ＣＰＵ２２が上記ブートプログラムを実行することにより起動が完了したとされる後、ＴＶ−ＣＰＵ２２が各種の動作制御のために実行すべきメインのプログラムとなる。
【００２７】
ここで、ファームウェア領域Ａｒ２は、ＴＶ−ファームウェアの全体的なデータ（実行プログラム単位）として、１単位のみが記憶される領域とされる。そして、図２に示されるように、このファームウェア領域Ａｒ２は、ＴＶ−フラッシュメモリ２４において、１つのみが設けられている。つまり、ＴＶ−フラッシュメモリ２４においては、ファームウェアとしてのプログラムデータ単位を１つのみしか記憶しないようにされている。
【００２８】
例えばファームウェアデータの更新を行うことを前提とした場合、従来においては、ファームウェアとしてのプログラムデータ単位を記憶するためのファームウェア領域を、例えば同じフラッシュメモリ上に、２つ（つまり複数）設けるようにすることが行われていた。
これにより、例えば前述もしたように、ファームウェア更新のためにフラッシュメモリ上でのデータ書き換えを行っている途中で、電源供給の遮断などによりフラッシュメモリへのデータ転送も遮断されてしまい、そのファームウェア領域のファームウェアデータが不完全になってしまったとしても、他のファームウェア領域のファームウェアデータが以前の完全な記憶状態で残っていることになる。そこで、この他方のファームウェアデータを使用することで、以降における正常な動作が維持されるものである。
【００２９】
しかしながら、上記のような構成では、複数分のファームウェアデータを記憶素子に記憶させることになるから、それだけ多くの記憶容量を確保しなければならない。記憶容量の増加は、直接的にメモリ素子のコストアップにつながるので、機器のコストダウンに重点がおかれるような場合には、メモリ素子としての記憶容量はできるだけ削減されることが好ましいということになる。つまり、ファームウェアデータに関しては、１つのみを記憶させることとして、記憶容量を節約すべきであるということになる。しかし、単純に、メモリ素子に１つのファームウェアデータを記憶させることとすれば、データの更新がエラーとなったときに不完全となったファームウェアデータしか残らないことになるから、正常に機器が動作しなくなってしまう。
【００３０】
そこで、本実施の形態としては、以降説明するようにして、ＴＶ−フラッシュメモリ２４に記憶されるＴＶ−ファームウェアのデータの更新を行うようにされる。これにより、図２によっても説明したようにして、ＴＶ−フラッシュメモリ２４に記憶可能なＴＶ−ファームウェアを１つのみに設定した場合の下で、例えば、データ転送の中断などのエラーが発生したとしても、このＴＶ−フラッシュメモリ２４上でのＴＶ−ファームウェアの更新を正常に完了させることが可能となる。換言すれば、本実施の形態では、ＴＶ−フラッシュメモリ２４に対して、ＴＶ−ファームウェアについては１つ分を記憶する領域を設定すればよいので、ＴＶ−フラッシュメモリ２４の記憶容量を従来よりも大幅に削減することが可能となっており、それだけ、低コスト化が図られることになる。
【００３１】
本実施の形態において、ＴＶ−フラッシュメモリ２４上でのＴＶ−ファームウェアのデータの更新は、ＴＶ−ＣＰＵ２２に、同じＴＶ−フラッシュメモリ２４におけるブートプログラム領域Ａｒ1に記憶されるブートプログラムを実行させることで行われる。
【００３２】
そこで、ブートプログラムのプログラム構造例を、図３に模式的に示す。
この図３に示すようにして、ブートプログラムは、初期化モジュール５１、更新情報処理モジュール、マイコン間通信制御モジュール６２、ファームウェアデータ抽出モジュール６３、ＴＶ−フラッシュメモリ書き込みモジュール６４、ＴＶ−フラッシュメモリ読み出しモジュール６５、データ照合モジュール６６、不揮発性メモリドライバ７１、マイコン間通信ドライバ７２、ＴＶ−フラッシュメモリドライバ７３の各プログラムモジュールからなる。
【００３３】
初期化モジュール５１は、起動時の最初の処理である初期化処理のためのプログラムモジュールである。
フラグ情報処理モジュール６１は、先に図１により説明したようにして、不揮発性メモリ４に記憶される有効／無効フラグｆｌｇに関する処理を実行する。つまり、有効／無効フラグｆｌｇについての内容認識、及び内容の設定変更などの処理を実行する。
また、このフラグ情報処理モジュール６１が処理を実行するときには、不揮発性メモリ４にアクセスするために、不揮発性メモリドライバ７１を利用することになる。不揮発性メモリドライバ７１は、不揮発性メモリ４に対してアクセスして、データの書き込み、読み出しを実行するためのドライバソフトウェアである。
【００３４】
また、マイコン間通信制御モジュール６２は、フロントエンドブロック２側のマイコン（ＦＥ−ＣＰＵ１２、ＦＥ−ＲＡＭ１３、ＦＥ−フラッシュメモリ１４）と、所定の通信フォーマットによってデータ通信を行うための通信制御を実行するモジュールである。マイコン間通信制御モジュール６２に従って通信を行うときには、マイコン間インターフェイス２１を経由して所定の通信プロトコルによって通信を行うことになるが、このマイコン間インターフェイス２１と、フロントエンドブロック２側のマイコン間通信インターフェイス１６との間のレベルでの通信動作は、マイコン間通信ドライバ７２によって制御することになる。
【００３５】
ファームウェアデータ抽出モジュール６３は、後述するようにして、フロントエンドブロック２側とのマイコン間通信により伝送されてきた通信データに、ＴＶ−ファームウェアのデータが格納されている場合において、この通信データからＴＶ−ファームウェアのデータを抽出する。
【００３６】
ＴＶ−フラッシュメモリ書き込みモジュール６４、ＴＶ−フラッシュメモリ読み出しモジュール６５は、それぞれ、ＴＶ−フラッシュメモリ２４に対するデータの書き込み、読み出しを実行するためのモジュールである。また、これらＴＶ−フラッシュメモリ書き込みモジュール６４、及びＴＶ−フラッシュメモリ読み出しモジュール６５は、それぞれ、ＴＶ−フラッシュメモリ２４に対するアクセス制御のために、ＴＶ−フラッシュメモリドライバ７３を使用する。
【００３７】
ＴＶ−フラッシュメモリ２４に対してデータの書き込みを行うときには、先ず、ＴＶ−ＲＡＭ２３に、書き込みデータを保持させておいたうえで、このＴＶ−ＲＡＭ２３からデータを転送してＴＶ−フラッシュメモリ２４に対して書き込みを行うようにされる。そして、上記のようにしてＴＶ−フラッシュメモリ２４に対するデータの書き込みが終了すると、このデータ書き込み結果が適正であったか否かを確認するために、ＴＶ−フラッシュメモリ２４に書き込んだデータと、この書き込みデータの元であるＴＶ−ＲＡＭ２３に保持されているデータとについて照合する処理が実行される。この照合の結果として、両者のデータが一致していれば、適正にデータが書き込まれたものとして処理され、一致していなければ、エラーであるとして処理される。
データ照合モジュール６６は、起動時において、ＴＶ−フラッシュメモリ２４にデータを書き込む場合において、上記したデータ照合処理を実行するためのものとされる。
【００３８】
これまでの説明をふまえて、テレビジョン受像機１において、外部から取得したＴＶ−ファームウェアのデータにより、ＴＶ−フラッシュメモリ２４のファームウェア領域Ａｒ２に記憶されているＴＶ−ファームウェアを更新するための処理手順を、図４〜図７のフローチャートを参照して説明する。
【００３９】
先ず、図４には、外部からＴＶ−ファームウェアのデータが送出され、これに応じてテレビジョン受像機１により、この送出されたＴＶ−ファームウェアのデータを取得したときの対応処理が示されている。なお、この図においては、フロントエンドブロック２とＴＶシステムマイコン３との処理が示されているが、フロントエンドブロック２の処理は、ＦＥ−ＣＰＵ１２が例えばＦＥ−フラッシュメモリ１４に記憶されるプログラム（フロントエンド用のファームウェア）を実行することで実現される。また、ＴＶシステムマイコン３の処理は、ＴＶ−ＣＰＵ２２が、現在、ＴＶ−フラッシュメモリ２４に記憶されているＴＶ−ファームウェアとしてのプログラムを実行することで実現される。
【００４０】
例えば、ＴＶ−ファームウェアをバージョンアップすることなどを目的として、テレビジョン受像機１のＴＶ−フラッシュメモリ２４上でＴＶ−ファームウェアの更新（書き換え）を行うのにあたっては、更新用のＴＶ−ファームウェアのデータを、テレビジョン受像機１のベンダー側で配布するようにされる。
ここでの配布の形態として、１つには、更新用のＴＶ−ファームウェアのデータを、放送により送出するようにされる。あるいは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどのディスクメディアなどに代表されるパッケージメディアに、更新用のＴＶ−ファームウェアのデータをＲＯＭ形式で記憶して配布するようにされる。さらには、ネットワーク経由でサーバ、若しくは、情報端末装置などからアップロードさせるようにする。
【００４１】
更新用のＴＶ−ファームウェアのデータを放送により送出する場合に対応しては、テレビジョン受像機１のフロントエンドブロック２において、チューナ部１１により所要のキャリアを受信することで、ＴＶ−ファームウェアのデータを取得するようにされる。また、ＴＶ−ファームウェアのデータをパッケージメディアに記憶させて配布している場合に対応しては、テレビジョン受像機１のフロントエンドブロック２における外部インターフェイス１５に対して、パッケージメディアのドライブ装置を接続する。そして、ドライブ装置によりパッケージメディアから読み出したＴＶ−ファームウェアのデータを、外部データバス６を経由して転送するようにされる。そして、この転送されてきたデータを外部インターフェイス１５にて受信取得するようにされる。あるいは、外部インターフェイス１５がLAN、インターネットなどのネットワークに対応するネットワークインターフェイスであれば、ネットワーク経由で、サーバ、端末装置などからＴＶ−ファームウェアのデータをダウンロードして、外部インターフェイス１５にて受信取得するようにされる。
このようにして、テレビジョン受像機１では、放送、パッケージメディア、またはネットワーク経由などの形態により配布されるＴＶ−ファームウェアのデータを、外部から取得することが可能とされている。
【００４２】
そこで、図４においては先ず、フロントエンドブロック２側の処理として、ステップＳ１０１として示すようにして、更新用のＴＶ−ファームウェアのデータを受信取得したか否かについて判別している。ここでのＴＶ−ファームウェアのデータの受信取得とは、ＴＶ−ファームウェアのデータを送出している放送キャリアをチューナ部１１にて受信復調してＦＥ−ＣＰＵ１２に渡すこと、もしくは、外部インターフェイス１５を経由して転送されてきた更新用のＴＶ−ファームウェアのデータをＦＥ−ＣＰＵ１２に渡すことを指す。そして、このようにしてＦＥ−ＣＰＵ１２に対してＴＶ−ファームウェアのデータが渡されると、ステップＳ１０１において、ＴＶ−ファームウェアのデータを受信取得したことが判別される。
【００４３】
上記のようにして受信取得したデータが渡されると、ＦＥ−ＣＰＵ１２は、このデータを一旦ＦＥ−ＲＡＭ１３に書き込んで蓄積させる。このＦＥ−ＲＡＭ１３に保持されている段階の受信取得データは、例えば、放送フォーマットもしくは外部インターフェイス１５のインターフェイスフォーマットに従ってパケット化されたままの形式となっている。そこで、ＦＥ−ＣＰＵ１２は、ステップＳ１０２の処理により、ＦＥ−ＲＡＭ１３に保持させている受信取得データから、ＴＶ−ファームウェアのデータそのものを抽出する。そして、抽出したＴＶ−ファームウェアのデータをＦＥ−フラッシュメモリ１４に転送して書き込みを行って記憶させる。
ここで、ＴＶ−ファームウェアのデータが、ＦＥ−フラッシュメモリ１４に記憶されたということは、テレビジョン受像機１において、ＴＶ−ファームウェアのデータが保存されたということを意味する。つまり、以降において、意図的に消去などの処理が行われない限りは、テレビジョン受像機１への電源供給が停止されたとしても、ＴＶ−ファームウェアのデータは、消去されることなく記憶され続ける。ただし、ここで留意すべきことは、ＴＶ−ファームウェアは、ＴＶシステムマイコン３側のＴＶ−フラッシュメモリ２４に記憶されて初めて、ＴＶ−ＣＰＵ２２が実行することができるということである。つまり、ＦＥ−フラッシュメモリ１４に保存されるＴＶ−ファームウェアのデータは、インストール前のデータとなる。
【００４４】
そして、上記ステップＳ１０２の処理によって、ＴＶ−ファームウェアのデータをＦＥ−フラッシュメモリ１４に記憶して保存させると、次のステップＳ１０３の処理により、マイコン間インターフェイス１６を経由して、ＴＶシステムマイコン３側に対して、ＴＶ−ファームウェアのデータを保存していることを通知するコマンドを送信する。
【００４５】
ＴＶシステムマイコン３側では、先ず、ステップＳ１１０の処理として、上記ステップＳ１０３の処理により送信されてくる、通知コマンドの受信を待機している。そして、マイコン間インターフェイス２１を介して、上記通知コマンドがＴＶ−ＣＰＵ２２に受け渡されると、ステップＳ１１０において肯定結果が得られることとなって、ステップＳ１１１の処理に進む。
【００４６】
ＴＶ−ファームウェアのデータを保存していることが通知されれば、この後においては、ＴＶシステムマイコン３側では、この保存されているデータを取り込んで、ＴＶ−フラッシュメモリ２４のＴＶ−ファームウェアを更新すべきこととなる。ステップＳ１１１と、これに続くステップＳ１１２は、ＴＶ−ファームウェア更新準備のための処理となる。
ステップＳ１１１では、不揮発性メモリ４に記憶される有効／無効フラグｆｌｇについて、「無効」であることを示すように、その内容（値）を変更設定する。前述したように、有効／無効フラグｆｌｇは、ＴＶ−フラッシュメモリ２４に記憶されているＴＶ−ファームウェアデータについての有効／無効を識別する情報である。
フロントエンドブロック２側から、ＴＶ−ファームウェアのデータを保存していることの通知を受けたということは、現在においてＴＶ−フラッシュメモリ２４に記憶されているＴＶ−ファームウェアのデータは、テレビジョン受像機１を障害無く制御することができるとしても、更新（バージョンアップ）の必要があるものとされ、その意味で、無効であると扱うことができる。そこで、ステップＳ１１１では、有効／無効フラグｆｌｇについて、「無効」を設定するものである。
【００４７】
また、次のステップＳ１１２では、上記ステップＳ１１１において、有効／無効フラグｆｌｇについて無効を設定したことを示すフラグである、無効設定フラグをＴＶ−ＲＡＭ２３にセットしておくようにされる。以降においては、例えばメインのルーチンに戻るようにされる。
【００４８】
上記図４のステップＳ１１１，Ｓ１１２の処理を実行したことによって、ＴＶシステムマイコン３は、この後において最初にメイン電源がオフとなって、テレビジョン受像機１がユーザによっては未使用の状態となったときに、直ちにＴＶ−ファームウェアを更新するための処理を実行することができるようになる。確認のために述べておくと、メイン電源がオフであっても、ＴＶシステムマイコン３、及びフロントエンドブロック２側のマイコンは、スタンバイ電源が供給されることによって動作が可能な状態となっている。
【００４９】
図５に、メイン電源オフ時のＴＶシステムマイコン３の処理を示す。
図５において、先ずステップＳ２０１では、メイン電源がオフになるのを待機している。そして、メイン電源がオフとされたことを判別すると、ステップＳ２０２に進み、ＴＶ−ＲＡＭ２３にアクセスして、無効設定フラグがセットされているか否かについて判別する。
【００５０】
ステップＳ２０２において、無効設定フラグがセットされていないとして否定の判別結果が得られた場合とは、現在、フロントエンドブロック２側で新規にＴＶ−ファームウェアのデータを取得、保存している状態ではなく、従って、現在、ＴＶ−フラッシュメモリ２４のＴＶ−ファームウェアを更新する必要はないということになる。
そこでこの場合には、特に処理を実行することなく、メイン電源オフ後の通常の動作を継続させることになる。
【００５１】
これに対して、ステップＳ２０２において無効設定フラグがセットされているとして肯定の判別結果が得られた場合には、これまでのメイン電源がオンであった期間内において、フロントエンドブロック２側で新規にＴＶ−ファームウェアのデータを取得、保存したということになる。つまり、ＴＶ−ファームウェアの更新を行うべき状態にあるということになる。そこでこの場合には、図５に示すようにして、リセットスタートを強制的に開始させる。ここでのリセットスタートとは、ＴＶ−フラッシュメモリ２４において、ブートプログラム領域Ａｒ１に記憶されているブートプログラムを実行することで得られる起動動作のことをいう。
本実施の形態のＴＶシステムマイコン３は、スタンバイ電源の投入が開始されたときには、当然のこととして、ブートプログラムによりリセットスタート（起動処理）を実行することになるのであるが、このようにして、ＴＶ−ファームウェアの更新を行うべきときにも、メイン電源のオフのタイミングで、リセットスタートを実行するようにされる。
前述もしたように、本実施の形態では、ＴＶ−ファームウェアは、ＴＶ−フラッシュメモリ２４上において、１つしか記憶されないから、ＴＶ−ファームウェア自身の処理として、ＴＶ−ファームウェアの更新を行うことはできない。そこで、本実施の形態では、ＴＶ−フラッシュメモリ２４のＴＶ−ファームウェアの更新を、ブートプログラムに従ったリセットスタートの処理過程において実行するようにしているものである。
【００５２】
図６は、リセットスタートを実行するためのブートプログラムに従ったＴＶシステムマイコン３（ＴＶ−ＣＰＵ２２）の処理動作を示している。この図に示す処理は、図３に示したモジュール構造を有するとされるブートプログラムに従って実行される。
なお、確認のための述べておくと、この図６に示されるリセットスタートとしての動作は、図５に示したように、ステップＳ２０２により肯定結果が得られて、ＴＶ−フラッシュメモリ２４のＴＶ−ファームウェアの更新を実行開始する場合のみではなく、通常に、ＴＶシステムマイコン３にスタンバイ電源が投入されて起動する場合にも実行されるものである。
【００５３】
図６に示すリセットスタートの処理としては、先ず、ステップＳ３０１により初期化処理を実行する。この初期化処理は、図３に示した初期化モジュール５１としてのプログラムに従った処理であり、ＲＯＭ内の割り込み処理時のプログラムのアドレスなどのベクタの初期化、ＲＡＭ（ＴＶ−ＲＡＭ２３）の初期化、スタックの初期化などを実行する。このようにして初期化が実行されても、不揮発性メモリ４には、有効／無効フラグｆｌｇがリセットスタート前の内容を維持して保持されている。そこで、次のステップＳ３０２においては、図３のフラグ情報処理モジュール６１及び不揮発性ドライバ７１などにより、この不揮発性メモリ４にアクセスして有効／無効フラグｆｌｇの読み込みを行う。
【００５４】
次のステップＳ３０３においては、フラグ情報処理モジュール６１により、上記ステップＳ３０２により読み込んだ有効／無効フラグｆｌｇの内容が「無効」を示しているか否かについて判別する。
ここで、有効／無効フラグｆｌｇの内容が「有効」を示している場合にはステップＳ３０３にて否定結果がえられることになるが、この場合には、現在においてＴＶ−フラッシュメモリ２４に記憶されるＴＶ−ファームウェアのデータは有効であり、更新されるべき必要はないということになる。そこで、この場合には、ステップＳ３０４→Ｓ３０５の処理をスキップして、そのままステップＳ３０６の処理に移行する。
ステップＳ３０６は、ＴＶ−フラッシュメモリ２４に記憶されるＴＶ−ファームウェアのプログラムに従って、起動後の処理を実行するものである。
【００５５】
これに対して、ステップＳ３０３において、有効／無効フラグｆｌｇが「無効」を示しているとして肯定結果が得られた場合には、先に、図４により説明したようにしてフロントエンドブロック側で更新すべきＴＶ−ファームウェアのデータを保存しており、かつ、ＴＶシステムマイコン３側では、このための更新を完了させていないという状態にあることとなる。
そこでこの場合には、ステップＳ３０４→Ｓ３０５によるＴＶ−ファームウェア更新に関連する処理を実行する。
【００５６】
ステップＳ３０４では、ＴＶ−ファームウェアを更新するための一連の制御処理シーケンスを実行する。このステップＳ３０４としての処理シーケンスを図７に示す。
この図７に示す処理シーケンスにおいては、先ず、ステップＳ４０１の処理として、ＴＶ−フラッシュメモリ書き込みモジュール６４、ＴＶ−フラッシュメモリ読み出しモジュール６５、及びＴＶ−フラッシュメモリドライバ７３を呼び出しての処理により、ＴＶ−フラッシュメモリ２４のファームウェア領域Ａｒ２を消去する。つまり、これまでＴＶ−フラッシュメモリ２４に記憶されていたＴＶ−ファームウェアを消去する。
【００５７】
次のステップＳ４０２においては、フロントエンドブロック２側のマイコン（ＦＥ−ＣＰＵ１２）に対して、ＴＶ−ファームウェアのデータ転送を要求するコマンドを送信する。このときには、ＴＶシステムマイコン３としては、マイコン間通信制御モジュール６２とマイコン間通信ドライバ７２により、マイコン間インターフェイス２１を経由してのフロントエンドブロック２側マイコンとのコマンド通信を実行することになる。
【００５８】
このＴＶ−ファームウェアのデータ転送要求コマンドを受信したフロントエンドブロック２側のマイコン（ＦＥ−ＣＰＵ１２）では、ＦＥ−フラッシュメモリ１４に保存されるようにして記憶されているＴＶ−ファームウェアのデータを順次読み出して、マイコン間インターフェイス１６に転送し、このマイコン間インターフェイス１６によりＴＶシステムマイコン３側にＴＶ−ファームウェアのデータが送信されるように制御を実行する。これにより、ＴＶシステムマイコン３側では、送信されてきたＴＶ−ファームウェアのデータをマイコン間インターフェイス２１にて受信することになる。
ここで、マイコン間インターフェイス１６、２１間でのデータ通信は、所定の通信プロトコルに従ったものであり、例えば、この通信プロトコルにより規定されるパケットヘッダなどが付加されたパケット単位によるデータ転送を行うようにされている。従って、マイコン間インターフェイス１６、２１を経由して送受信されるＴＶ−ファームウェアのデータも、上記のようにして、所定の通信プロトコルに従ってパケット化などにより転送されるデータ形式となる。
以降においては、説明の便宜上、このようにして、マイコン間インターフェイス１６、２１の間でのマイコン間通信の通信プロトコルに従った形式に変換されて転送されるＴＶ−ファームウェアのデータについては、「ファームウェア転送データ」ともいう場合がある。
【００５９】
また、ＴＶ−ファームウェアのデータ転送を要求するコマンド送信と、これに応答したフロントエンドブロック２側のＴＶ−ファームウェアのデータの送信は、一定の送受信データ量ごとに繰り返し実行されるものである。このために、ＴＶ−ファームウェアとしてのプログラム単位の全データを送信し終わった後となるタイミングで、ＴＶシステムマイコン３からフロントエンドブロック２側に対して、ＴＶ−ファームウェアのデータ転送を要求するコマンドが送信される場合がある。このような場合には、ＦＥ−ＣＰＵ１２は、既にＴＶ−ファームウェアのデータ転送は終了していることを、ＴＶシステムマイコン３に対してレスポンスとして送信するようにしている。
【００６０】
先のステップＳ４０２によりＴＶ−ファームウェアのデータ転送要求を行ったＴＶ−ＣＰＵ２２では、レスポンスの受信を待機することになるが、ここで、フロントエンドブロック２側において、ＴＶ−ファームウェアのデータ転送が終了していなければ、データ転送終了の通知は送信されず、かわりに、ＦＥ−フラッシュメモリ１４から読み出したＴＶ−ファームウェアのデータが送信されてくることになる。この場合には、ステップＳ４０３における判別結果として、否定結果が得られることとなって、ステップＳ４０４の処理に進むことになる。
【００６１】
ステップＳ４０４においては、上記のようにしてレスポンスとして送信されてくるＴＶ−ファームウェアのデータ（ファームウェア転送データ）をマイコン間インターフェイス２１を経由して受信取得するための処理を実行する。そして、次の処理として示すステップＳ４０５により、上記のようにして受信取得したファームウェア転送データを、この場合には、その形式のまま、ＴＶ−ＲＡＭ２４に一旦書き込んで保持させるようにしている。
そして、ステップＳ４０６では、最後のファームウェアのデータ転送要求コマンドに応答して送信されてきたファームウェア転送データを受信してＴＶ−ＲＡＭ２３に書き込んだとされるデータ量が、一定以上になったか否かについて判別する。ここで、まだ一定量に満たないということが判別されれば、ステップＳ４０４の処理に戻るようにされることで、ＴＶ−ファームウェアのデータの受信及びＴＶ−ＲＡＭ２３への書き込みのための制御処理を継続するようにされる。
これに対して、ステップＳ４０６により、一定量以上のＴＶ−ファームウェアのデータの受信及びＴＶ−ＲＡＭ２３への書き込み保持が完了したことが判別されて肯定結果が得られたのであれば、ステップＳ４０７の処理に進むようにされる。
【００６２】
ステップＳ４０７においては、ＴＶ−ファームウェアのデータの転送についての一時停止を要求するためのコマンドをフロントエンドブロック２側のマイコン（ＦＥ−ＣＰＵ１２）に対して送信する。このコマンド送信に応じて、フロントエンドブロック２側では、ＦＥ−ＣＰＵ１２の制御によって、ＴＶ−ファームウェアのデータをＴＶシステムマイコン３に対して送信する動作が停止される。
そして、このようにしてフロントエンドブロック２側からのデータ転送を停止させている期間において、続くステップＳ４０８〜Ｓ４１２の処理によって、ＴＶ−ＲＡＭ２３に保持されているフロントエンドブロック２側からの今回の転送分のＴＶ−ファームウェアのデータについての、ＦＥ−フラッシュメモリ１４への書き込みを行うようにされる。
【００６３】
先ず、ステップＳ４０８においては、例えばＴＶ−ＲＡＭ２３に保持されている上記ファームウェア転送データについてのチェックサムなどの処理を実行することで、必要なだけのファームウェア転送データが適正に転送されてきており、ＴＶ−ＲＡＭ２３に保持されているか否かについてのチェックを実行し、ステップＳ４０９に進む。なお、ここでは図示していないが、ステップＳ４０８としてのチェック結果がＮＧであった場合には、例えば、フロントエンドブロック２側からのＴＶ−ファームウェアのデータ転送を再要求するようにされる。
【００６４】
ここで、先にも述べたように、ＴＶ−ＲＡＭ２３に保持されているＴＶ−ファームウェアのデータは、ファームウェア転送データである。つまり、ＴＶ−ファームウェアの実データについて、マイコン間通信の通信プロトコルに従って例えばパケット分割などを施した形式となっている。
そこでステップＳ４０９においては、図３に示したファームウェアデータ抽出モジュール６３を呼び出して、ＴＶ−ＲＡＭ２３に保持されているファームウェア転送データについてパケット化を解くなどの処理を実行することで、ＴＶ−ファームウェアのデータそのものを抽出する。そして、この抽出したＴＶ−ファームウェアのデータをステップＳ４１０の処理によって、ＴＶ−フラッシュメモリ２４のファームウェア領域Ａｒ２に書き込みを行っていくようにされる。このステップＳ４１０の処理は、図３のＴＶ−フラッシュメモリドライバ７３を利用して、ＴＶ−フラッシュメモリ２４にアクセスし、ＴＶ−フラッシュメモリ書き込みモジュール６４により、ファームウェア領域Ａｒ２における所要のアドレスを指定しながらのデータ書き込みを実行するようにされる。なお、このときのデータ書き込みは、セクタ単位によるものとなる。
【００６５】
次のステップＳ４１１→Ｓ４１２は、上記ステップＳ４１０によりＴＶ−フラッシュメモリ２４に書き込まれたＴＶ−ファームウェアが正常なものであるか否かの検証のための処理となる。
先ずステップＳ４１１においては、図３のＴＶ−フラッシュメモリ読み出しモジュール６５を呼び出して、上記ステップＳ４１０の処理によりＴＶ−フラッシュメモリ２４に書き込まれたＴＶ−ファームウェアのデータを読み出して、例えばＴＶ−ＲＡＭ２３に転送して書き込みを行い、ここに保持させる。
そして、次のステップＳ４１２においては、このＴＶ−フラッシュメモリ２４から読み出しを行ったＴＶ−ファームウェアのデータと、このＴＶ−ファームウェアのデータの転送元であり、先のステップＳ４０５によって同じＴＶ−ＲＡＭ２３に書き込まれたものであるファームウェア転送データとについて照合するための処理を実行する。この処理は、図３のデータ照合モジュール６６を呼び出して実行するものとなる。
【００６６】
次のステップＳ４１３では、上記ステップＳ４１２による照合処理結果としてＯＫの判定結果が得られたか否かについて判別する。
ステップＳ４１２による照合処理により、両者のデータに齟齬が生じていることが認識された場合、これはＴＶ−フラッシュメモリ２４に対するデータ書き込みに何らかの障害が発生して、正常に終了しなかったということを意味する。従って、このようなときにはＮＧの照合結果が得られることになって、ステップＳ４１３では否定結果が得られることになる。この場合には、エラー対応処理として、再度、リセットスタートを開始するようにされる。つまり、図６のステップＳ３０１から、再度処理を開始するものである。
【００６７】
ここで、例えばステップＳ４１３にて否定結果（照合結果ＮＧ）が得られたことで、リセットスタートを再開してステップＳ３０１に戻った場合、ステップＳ３０２→Ｓ３０３の処理によっては、有効／無効フラグｆｌｇは、依然として「無効」を示していることが判別され、再度、ステップＳ３０４に進んでファームウェア更新処理を実行することになる。つまり、本実施の形態では、有効／無効フラグｆｌｇが無効を示している限りは、ステップＳ３０４のファームウェア更新処理を必ず実行するようにされている。
こで、ステップＳ４１３からステップＳ３０１の処理に戻った場合に対応しては、ＴＶ−フラッシュメモリ２４に記憶されているＴＶ−ファームウェアのデータは、途中で記憶のための転送が中断されているために、一部のみしか記憶されていない不完全な状態となっている。この場合の有効／無効フラグｆｌｇは、このような不完全な状態に対応して、「無効」であることを示しているということがいえる。このような状態になっているとしても、上記したステップＳ４１３→Ｓ３０１の処理の流れにより、ＴＶ−ファームウェアの更新が再度実行されることになっている。
【００６８】
また、ステップＳ４１２の照合処理結果として、両者のデータ内容が一致しているとの結果が得られた場合には、ＴＶ−フラッシュメモリ２４に対するデータ書き込みが正常に実行されたということになる。従ってこの場合には、ＯＫであるとの判定結果が得られることとなって、ステップＳ４１３において肯定結果が得られる。
このようにして、ステップＳ４１３においてＯＫの判定結果が得られた場合には、ステップＳ４０２の処理に戻るようにされる。これにより、続けて、残りのＴＶ−ファームウェアのデータを、一定量ずつフロントエンドブロック２側から転送させて、ＴＶ−フラッシュメモリ２４に書き込んで記憶させるための処理が繰り返し実行されることになる。そして、フロントエンドブロック２側において、全てのＴＶ−ファームウェアのデータの転送が終了したとされると、ステップＳ４０３にて肯定結果が得られることとなる。ステップＳ４０３にて肯定結果が得られた段階では、全てのＴＶ−ファームウェアのデータが正常にＴＶ−フラッシュメモリ２４に記憶されている状態となっている。
ステップＳ４０３にて肯定結果が得られたということは、図６のステップＳ３０４としてのＴＶ−ファームウェアの更新が正常に終了したということであり、この場合には、図６のステップＳ３０５の処理に進むことになる。
【００６９】
図６のステップＳ３０５においては、図３の不揮発性メモリドライバ７１により、不揮発性メモリ４にアクセスする。そして、フラグ情報処理モジュール６１を呼び出した処理として、これまで「無効」を示していた有効／無効フラグｆｌｇについて、「有効」を示すように書き換えて設定を行う。そして、ステップＳ３０６の処理に進むことで、ＴＶ−フラッシュメモリ２４に新たに記憶された、ＴＶ−ファームウェアのプログラムを実行するようにされる。つまり、起動処理を終了して、定常動作に対応する制御処理を実行するようにされる。
なお、上記のようにして、ＴＶ−フラッシュメモリ２４上でのＴＶ−ファームウェアのデータの更新が正常終了した場合において、ＦＥ−フラッシュメモリ１４に保存されていたＴＶ−ファームウェアのデータは、例えば消去してしまってもよいし、あるいは、次のバージョンのＴＶ−ファームウェアのデータを取得するまでは保存させておくようにしてもよい。
【００７０】
以上説明した処理が実行されることで、本実施の形態では、ファームウェアの更新エラーに対応したリトライ動作が適正に実行されることが分かる。また、例えばＴＶ−ファームウェアのデータの更新中において電源供給が停止されてマイコンの動作も停止し、更新が正常に終了しなかったような場合にも、次の電源供給の開始時においてブートプログラムを実行することで、再度、フロントエンドブロック２側からＴＶ−ファームウェアのデータを転送させて、ＴＶ−フラッシュメモリ２４のＴＶ−ファームウェアを更新するための動作が必ず再開されることになる。
【００７１】
このことから、本実施の形態としては、メモリ素子について記憶容量の削減のために、ファームウェアについては１つのみを記憶する領域だけを設定した構成であっても、最終的には適正にファームウェアを更新することが可能とされるものである。換言すれば、前述もしたように、例えばフラッシュメモリとされるメモリ素子について、ファームウェアに関しては、１つのみが記憶可能な容量を設定すればよいので、結果的に、メモリ素子全体としての記憶容量を削減することができ、例えばコストダウンが図られる、ということになる。
【００７２】
ところで、上記図４〜図７に示したＴＶ−ファームウェア更新に関連する処理動作は、これまでの説明から理解されるようにして、ＴＶ−フラッシュメモリ２４に記憶されるＴＶ−ファームウェア、及びブートプログラム等のプログラムを、ＣＰＵが実行することで実現されるものである。
そして、このようなプログラムは、例えば、上記もしているように、放送やネットワークにより取得することができるようにもされるが、各種のメディアに記憶させた上で、このメディアから読み出して取得することも可能とされるものである。
【００７３】
また、上記実施の形態においては、ＴＶ−ファームウェアのデータの更新実行の必要性を判断する情報であり、直接的には、ＴＶ−ファームウェアの有効性／無効性を示す情報である有効／無効フラグｆｌｇを、不揮発性メモリ４に記憶させることとしている。
有効／無効フラグｆｌｇは、例えば電源供給が停止されてもその情報が保持されていることが必要であるが、この条件さえ満たせば、ＴＶシステムマイコン３がアクセス可能である限り、どこに記憶されても構わないということになる。従って、例えば、不揮発性であるＴＶ−フラッシュメモリ２４に対して、ブートプログラム、及びＴＶ−ファームウェアと同様に、領域を割り当てて、有効／無効フラグｆｌｇを記憶させることも考えられる。
【００７４】
しかしながら、実際にＴＶ−フラッシュメモリ２４に有効／無効フラグｆｌｇを記憶させることとした場合には次のような不都合が生じる。
周知のようにして、フラッシュメモリは例えば数十Ｋバイト〜百数十Ｋバイトのセクタ単位での書き込み、消去が行われる。また、有効／無効フラグｆｌｇは、ＴＶ−ファームウェアの有効性／無効性が示されればよいことから、非常に少ないビット数で形成することができる。しかしながら、その用途上、有効／無効フラグｆｌｇは、ＴＶ−フラッシュメモリ２４上において、例えばＴＶ−ファームウェアとは独立して書き換えがされる必要がある。従って、更新のために、ＴＶ−ファームウェアのデータが消去されたとしても、有効／無効フラグｆｌｇは消去されずに以前の正常な内容を維持して残っている必要がある。
このために、ＴＶ−フラッシュメモリ２４に有効／無効フラグｆｌｇを記憶させる場合には、ＴＶ−ファームウェアのためのファームウェア領域Ａｒ２（及びブートプログラムのためのブートプログラム領域Ａｒ１）とは個別に、有効／無効フラグｆｌｇのための領域を割り当てる必要がある。
【００７５】
ただし、上記のような記憶領域の割り当ては、フラッシュメモリがセクタ単位での書き換えを行う構造上、同様にしてセクタ単位となる。この場合、有効／無効フラグｆｌｇが、例えば数ビット程度の情報で済むのに対して、セクタは上記もしているように数十Ｋバイト〜百数十Ｋバイトのサイズであるから、データ記憶に関しての効率がよくないということになる。本実施の形態では、ファームウェアのデータが記憶されるＴＶ−フラッシュメモリ２４の記憶容量の節約を目的としているので、有効／無効フラグｆｌｇをＴＶ−フラッシュメモリ２４に記憶させるということは、セクタを有効に利用できないという点で好ましくないことになる。
そこで、本実施の形態としては、ＴＶシステムマイコン３がアクセス可能な不揮発性のメモリ素子として、ＴＶ−フラッシュメモリ２４とは物理的に異なるものである不揮発性メモリ４に対して有効／無効フラグｆｌｇを記憶させることとしているものである。
【００７６】
また、上記実施の形態においては、テレビジョン受像機内部におけるマイコン間でのデータ転送により、ファームウェアのデータの更新を行う場合を例に挙げているが、有効／無効フラグｆｌｇが無効を示していることに基づいて、更新のためのデータ転送が再試行されるように構成されていれば、例えば、機器の外部に対してデータ転送の要求を行うように構成されていても構わない。
また、上記実施の形態では、本発明によるデータ更新のための構成をテレビジョン受像機に適用しているが、例えば、メモリ素子に何らかのプログラムデータを記憶させて、その記憶されたプログラムデータに基づいて処理を実行するように構成された電子機器であれば、特に、機器の種別は問わない。
また、実施の形態では、定常動作のための処理を実行させるファームウェアのプログラムを更新するものとされているが、本発明としては、更新対象となるプログラムのデータの種別は特に限定しない。また、これに応じて、プログラムの更新を主として実行させるプログラムとしても、本実施の形態のように、ブートプログラムに限定される必要はない。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態としての情報処理装置が適用される、テレビジョン受像機の構成例を示すブロック図である。
【図２】実施の形態のテレビジョン受像機のＴＶ−フラッシュメモリの領域設定例を模式的に示す図である。
【図３】ＴＶ−フラッシュメモリに記憶されるブートプログラムの構造例を模式的に示す図である。
【図４】実施の形態のテレビジョン受像機において、ファームウェアのデータを受信したときの対応処理を示すフローチャートである。
【図５】メイン電源オフ時に対応したＴＶ−システムマイコンの処理動作を示すフローチャートである。
【図６】ブートプログラムによるリセットスタートとしての処理を示すフローチャートである。
【図７】ＴＶ−ファームウェアのデータの更新のための処理動作を示すフローチャートである。
【符号の説明】
【００７８】
１  テレビジョン受像機、２  フロントエンドブロック、３  ＴＶシステムマイコン、４  不揮発性メモリ、５  アンテナ、６  外部データバス、１１  チューナ部、１２  ＦＥ−ＣＰＵ、１３  ＦＥ−ＲＡＭ、１４  ＦＥ−フラッシュメモリ、１５  外部インターフェイス、１６，２１  マイコン間インターフェイス、２２  ＴＶ−ＣＰＵ、２３  ＴＶ−ＲＡＭ、２４  ＴＶ−フラッシュメモリ、２５  メモリインターフェイス、ｆｌｇ  有効／無効フラグ、Ａｒ１  ブートプログラム領域、Ａｒ２  ファームウェア領域、５１  初期化モジュール、６１  フラグ情報処理モジュール、６２  マイコン間通信制御モジュール、６３  ファームウェアデータ抽出モジュール、６４  ＴＶ−フラッシュメモリ書き込みモジュール、６５  ＴＶ−フラッシュメモリ読み出しモジュール、６６  データ照合モジュール、７１  不揮発性メモリドライバ、７２  マイコン間通信ドライバ、７３  ＴＶ−フラッシュメモリドライバ
【図１】
2005050097.tif 000003
【図２】
2005050097.tif 000004
【図３】
2005050097.tif 000005
【図４】
2005050097.tif 000006
【図５】
2005050097.tif 000007
【図６】
2005050097.tif 000008
【図７】
2005050097.tif 000009