説明

放送受信装置及びソフトウェア更新方法

【課題】機器組み込みソフトウェアにおいては,2バンク方式のファームウェア更新方法は一般的によく用いられているが,2バンク方式は動作中のファームウェアと更新ファームウェアの両方を保存するため,ファームウェアの2倍以上のサイズの不揮発性メモリを必要とし,近年の大型化するファームウェアの更新においては課題があった。
【解決手段】本発明の放送受信装置は、1バンク方式の不揮発性メモリ構成であって,ファームウェア更新時には,回復用のファームウェアと更新ファームウェアの2種類のデータを受信し、回復用ファームウェアを不揮発性メモリの先頭に書込んだ後で、回復用ファームウェア書込み領域を除いた領域に更新ファームウェアを書込み、更新ファームウェア書込み領域でのベリファイが完了した後に,回復用ファームウェア書込み領域に書き込み未完了の更新ファームウェアを書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は組み込み制御装置内部に格納され動作するソフトウェア(以下,装置内に組み込まれるプログラムを総称してファームウェアとし,ファームウェアの一部の構成要素としてプログラムと呼ぶ)の更新方法に関する技術であり,特に放送電波や有線無線のネットワークを利用して,アップデートされたプログラムを受信して,放送受信装置自身が持つファームウェアの一部のプログラムもしくはファームウェア全てをアップデートすることが可能な放送受信装置及びソフトウェア更新方法に関係する。
【背景技術】
【0002】
近年のデジタル放送の普及に伴い,デジタル放送が受信可能なテレビやSTB(セットトップボックス)などの放送受信装置においては,従来と比べて規模の大きいプログラムがファームウェアとして内蔵されるようになった。
【0003】
上記のファームウェアは多くの機能を有し,また複数のプログラムから構成される。これによりプログラム単位もしくはファームウェア全体の機能追加や性能向上,バグ修正に伴うソフトウェア更新,または放送信号送出側の仕様変更に伴った更新など,ユーザ家庭で利用されている間にもファームウェアの更新が必要となる場合が以前よりも多くなっている。
【0004】
これらの放送受信装置のファームウェア更新においては,更新のためのファームウェア情報やファームウェアデータは,放送電波やネットワーク回線を通じて各放送受信装置に通知・送信される場合が多い。
【0005】
このファームウェア情報やファームウェアデータを放送受信装置が受信すると,放送受信装置は自身の装置内部にある不揮発性メモリやハードディスクなどに保管されたファームウェアの一部もしくは全部を更新する。
【0006】
上記更新作業の実施は,画面表示などによりユーザに対してファームウェアの更新開始を通知した上で更新を開始する場合や,深夜などに放送受信装置が待機状態になっている時間に自動的に更新を行う場合がある。
【0007】
これらのファームウェア更新は,更新に失敗すると放送受信装置が起動できなくなる可能性があるので,更新は極力安全な方法で実施することが望まれる。このような要望に対して,安全な方法でファームウェアを更新するひとつの方法として,例えば特許文献1に記載の装置制御方法がある。特許文献1では、制御装置内の不揮発性メモリに余裕領域を設け,EEPROMに新しいバージョンのファームウェアを書き込むと同時に,余裕領域に古いバージョンのファームウェアを保持させる制御手段を備え,RAMに新バージョンのファームウェアをダウンロードするときに,旧バージョンのファームウェアを残しておくバックアップ領域を設け,新バージョンのファームウェアに問題が発生した場合には復旧リセット信号を発生させることにより,旧バージョンのファームウェアで起動する装置制御方法を提案している。
【0008】
また,安全な方法でファームウェアを更新する別の一例として,例えば特許文献2に記載の更新方法がある。特許文献2では,受信した新しいファームウェアによって装置を完全に運用する前に,新ファームウェアでの試運転を行い,問題があった場合には旧ファームウェアでの運用に復帰する更新方法を提案している。
【特許文献1】特開2002−044693号公報
【特許文献2】特開2003−122674号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
ファームウェアの一部もしくは全てを構成するプログラムの更新を行う際に,不揮発メモリ内にプログラムを格納可能な2つ以上の領域を設け,旧いバージョンのプログラムと新しいプログラムという2つのプログラムを一時的に保持し,新しいバージョンのプログラムに問題があった場合には旧いバージョンのプログラムを再度利用して装置を動作させるという上記の特許文献1記載の装置制御方法及び特許文献2記載の更新手法では,装置が有する不揮発性メモリを、更新したいプログラムのサイズの少なくとも2倍のサイズ用意する必要があるという問題があった。
【0010】
そして、これは,近年の放送受信装置において,機能の増加やGUIの高精細化に伴ってプログラムのサイズが増大していることを考えると,ハードウェアのコストという観点からは必ずしも有利とはならない。
【0011】
本発明は上記事情に鑑みてなされるものであり、プログラムを格納するための不揮発性メモリのサイズを抑えつつ,より安全にプログラムの更新を実施することが可能な放送受信装置及びソフトウェア更新方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の放送受信装置は、回復用プログラム及び更新用プログラムを受信してソフトウェア更新を行なう放送受信装置であって、回復用プログラム及び更新用プログラムを受信する受信手段と、プログラムを記憶する記憶手段と、更新用プログラムによってソフトウェア更新を実行する制御手段と、を備え、制御手段は、受信手段が回復用プログラム及び更新用プログラムを受信した場合に、回復用プログラムを記憶手段の所定領域に書き込むと共に所定領域以外の領域に更新用プログラムを書き込み、更新用プログラムの書込みが成功した場合は所定領域に更新用プログラムを上書きし、更新用プログラムの書込みが失敗した場合は所定領域に書き込んだ回復用プログラムを実行することを特徴とする。
【0013】
また、本発明のソフトウェア更新方法は、回復用プログラム及び更新用プログラムを受信する受信ステップと、受信した回復用プログラム及び更新用プログラムを記憶する記憶ステップと、記憶した更新用プログラムによってソフトウェア更新を実行する実行ステップと、を備え、実行ステップは、受信ステップが回復用プログラム及び更新用プログラムを受信した場合に、回復用プログラムを記憶ステップの所定領域に書き込むと共に所定領域以外の領域に更新用プログラムを書込み、更新用プログラムの書込みが成功した場合は所定領域に更新用プログラムを上書きし、更新用プログラムの書込みが失敗した場合は所定領域に書き込んだ回復用プログラムを実行する、ことを特徴とする
【発明の効果】
【0014】
プログラムの更新失敗への対策を目的として不揮発性メモリを複数個,あるいはプログラムサイズの複数倍のサイズを持つ必要がなく,基板サイズや部品コストを削減することが可能となる。
【発明を実施するための最良の形態】
【0015】
(第1の実施の形態)
本発明で提案する放送受信装置のソフトウェア更新方法の第1の実施形態を以下に説明する。
【0016】
図1は本発明の第1の実施形態である放送受信装置100のブロック図である。アンテナによって受信された放送電波は,受信手段101において指定された周波数の信号が抽出され,復調手段102においてデジタル映像・音声信号や,放送に付帯するデータ信号に復調される。復調された信号のうち,デジタル映像・音声に関わる信号は,映像音声デコーダ手段103によって映像や音声信号にデコード処理され,映像音声出力として映像表示装置120や音声再生装置121に出力されユーザに視聴される。
【0017】
一方,復調された信号に含まれる情報のうち,放送に付帯するデータや放送受信装置100で利用可能なデータは,CPU105で処理されることを目的として後述のRAM107やフラッシュメモリ108に記憶されるものがある。これは例えば放送に付帯するデータとしては電子番組表で表示されるような番組名や番組詳細を記述したSI(サービス情報)データがあり,放送受信装置100で利用可能なデータは放送受信装置のアップデートを目的としたプログラムデータ(ファームウェアの全て,もしくは一部のデータ)が考えられる。
【0018】
CPU105は放送受信装置100全体のシステムを管理するマイクロコンピュータであり、各手段およびメッセージの制御を行う。
【0019】
バスコントローラ106はCPU105と他のデバイスとの通信をおこなうためのコントローラである。このバスコントローラ106を経由してCPU105と通信を行うデバイスには例えばRAM107やフラッシュメモリ108がある。
【0020】
RAM107はCPU105がデータ処理や演算を行う際のワークメモリとして利用される揮発性のメモリである。
【0021】
フラッシュメモリ108は書換え可能な不揮発性メモリであり,放送受信装置100が動作するためのファームウェアを格納する。
【0022】
図2はフラッシュメモリ108に格納されたファームウェアをイメージで表現した図である。フラッシュメモリ108の内部は,大きくは2つのブロックに分かれている。
【0023】
BootCode領域201は,放送受信装置100が起動するために必要なBootCode(BootCodeプログラム)を格納するための領域である。BootCodeとは放送受信装置100の起動に必要な最低限のプログラムのことであり,放送受信装置100の起動においてはまずBootCodeが実行され,BootCodeはCPU105の初期設定を行い,放送受信装置100全体の起動のためにRAM107やフラッシュメモリ108を動作可能にする。
【0024】
ProgramCode領域202は,BootCodeによって呼び出されるProgramCode(アプリケーションプログラム、ProgramCodeプログラム)を格納する領域である。ProgramCodeとは,オペレーションシステム(OS)の機能や,放送受信に必要なデバイスの制御機能や,ユーザに映像音声やGUIを表示するための機能を持ったプログラムである。
【0025】
なお,本実施の形態1の説明においては,ファームウェアはフラッシュメモリ108に格納された装置組み込みプログラムの全体を示すものとし,BootCodeは放送受信装置100が起動された時にまず起動されるプログラムとし,ProgramCodeはBootCodeにより起動されユーザにサービスや機能を提供するプログラムと位置づける。
【0026】
また,本実施の形態1においては,BootCodeおよびProgramCodeなどのプログラムを総称してファームウェアと呼ぶこととする。本実施の形態1におけるファームウェア更新方法としてはBootCodeおよびProgramCodeのいずれの更新も当てはまるが以下の説明においてはProgramCodeのプログラム更新における手順・動作を説明することとする。
【0027】
図3は放送受信装置100の起動時の動作の様子を示すフローチャートである。放送受信装置100に電源が入れられると,CPU105はまずBootCode領域201に格納されているBootCodeを実行する(S301)。このBootCodeには,主としてProgramCodeをRAM107上にロードするための機能とProgramCodeの正当性を確認するためのプログラムが含まれている。これは一般的には放送受信装置100のような装置は,ProgramCodeはフラッシュメモリ108からRAM107に複製・展開された上でCPU105によりプログラムの命令が処理されるためである。このBootCodeは通常は放送受信装置100の生産時に書き込まれ,以降は上書きされることがないため,プログラム動作に問題が出ることは通常発生しえない。
【0028】
次に,CPU105はBootCodeに記述されたプログラムに従い,ProgramCode領域202の正当性の確認を行う(S302)。この処理はProgramCode領域202に格納されたプログラムのデータの正当性を確認するものであり,CPU105がProgramCodeを実行できる状態になることを確認するための処理である。この処理は通常はProgramCodeのCRCチェックによるデータの完全性の確認などがある。
【0029】
次に,ProgramCodeの正当性が確認されると,CPU105はProgramCodeをRAM107にロードする(S303)。
【0030】
次に,CPU105はRAM107上にロードされたProgramCodeを実行する(S304)。
【0031】
その後,CPU105はProgramCodeに記述された処理手順に従って演算やデバイス制御の動作を行い,映像音声の受信処理・再生処理・出力処理を行う(S305)。
【0032】
図4は放送受信装置100におけるフラッシュメモリ108の内部の様子をより詳しく示した図である。
【0033】
フラッシュメモリ108にBootCode領域201とProgramCode領域202が存在することは先に述べたが,本実施の形態1における放送受信装置100においては,フラッシュメモリ108内部は幾つかのブロックにより構成されており,図4におけるフラッシュメモリ108においては,7ブロックに分割されている様子を示している。この実施の形態1では7ブロックのうち1ブロックはBootCode領域201に割り当てられており,残り6ブロックがProgramCode領域202に割り当てられている。
【0034】
またここではProgramCode領域202に割り当てられている6ブロックのうちの先頭部分のブロックをBLK−S00と表示している。BLK−S00はProgramCode領域202における共通領域と呼ぶ。BLK−S00以外の5ブロック部分は,BLK−P00からBLK−P04とし,ProgramCode専用領域と呼ぶ。なお,共通領域およびProgram専用領域の役割については後述する。
【0035】
次に,本実施の形態1における放送受信装置100でのProgramCode領域202に格納されたProgramCodeの更新手順について説明する。
【0036】
図5には一般例の説明を目的として,本実施の形態1で提案するファームウェア更新方法を利用しない場合の一般的な放送受信装置100のファームウェア更新手順の一例を示す。
【0037】
放送受信装置100が動作中であり,放送信号が受信できる環境において,放送受信装置100のファームウェアを更新する必要が発生した場合には,更新され放送受信装置で動作させるための更新プログラムを格納したデータ(DLDATA1)を送信局から放送信号を経由して放送受信装置100へ送出する(S501)。
【0038】
なお,DLDATA1は通常は放送受信装置100のメーカや型番,更新するファームウェアバージョンなどを識別するための識別符号を含み,この識別符号によりファームウェア更新対象とする放送受信装置100を特定するが,この識別方法については一般的であるため説明を省略する。
【0039】
また,放送受信装置100がどの周波数を選局していてもDLDATA1の存在を容易に検知させることを目的として、DLDATA1とは別のデータによって識別信号を送出する場合もあるが,これも一般的な方式であるため本実施の形態1においては説明を省略する。
【0040】
DLDATA1の中には放送受信装置100上で動作可能な更新プログラムを含んでいる。DLDATA1の送出目的としては,放送受信装置100がDLDATA1を受信し,DLDATA1に含まれる更新プログラムを取り出し,フラッシュメモリ108に書き込みを行うことで,プログラムを更新し放送受信装置100の動作を変更させることを目的としている。
【0041】
次に,放送受信装置100では,放送受信装置100が利用可能な更新プログラムを含むデータ(DLDATA1)が送信局より送出されたことを動作中のプログラムによって検知する(S502)。
【0042】
通常の場合,DLDATA1は放送信号内において小さいパケットに分割されて送信されるため,放送受信装置100でパケットの収集と結合が必要である。よって放送受信装置100ではDLDATA1の存在を検知した後,受信手段101や復調手段102を制御して放送信号に含まれるDLDATA1のデータの収集および再結合というDLDATA1受信処理を行う(S503)。
【0043】
次に放送受信装置100は,結合が行われたDLDATA1からProgramCode領域に相当するデータを抽出し,内部のフラッシュメモリ108のProgramCode領域202への書き込みを行い,書き込みが正しく行われたことを確認する(S504)。フラッシュメモリ108のプログラムが,正しく更新プログラムに書き換えられたことを確認すると,放送受信装置100を再起動し(S505),更新されたファームウェアによる動作を開始する(S506)。なお,S502からS506の一連の処理はCPU105によって制御される。
【0044】
次に図6には,本実施の形態1で提案するファームウェア更新方法を用いて,放送受信装置100のプログラムを更新した場合の処理手順を示す。
【0045】
図6では,図5における説明と同様に,放送受信装置100が動作中であり,放送信号が受信できる環境において,放送受信装置100のファームウェアを更新する必要が発生した場合のファームウェア更新方法を示している。
【0046】
まず,放送受信装置100で動作させるための更新プログラムを格納したデータ(DLDATA1)を送信局から放送信号を経由して送出する(S601)。
【0047】
次にS601の同時期あるいは少ない時間差のタイミングにおいて,送信局からはプログラム更新処理の途中で異常が発生した場合に,放送受信装置100を臨時的に動作させ,放送受信装置100を回復させることを目的としたプログラム(回復用プログラム)を含むデータ(DLDATA2と呼ぶ)を送出する(S602)。
【0048】
このDLDATA2もDLDATA1と同様に,放送受信装置100のメーカや型番,更新するファームウェアバージョンなどを識別するための識別符号を含み,対象とする放送受信装置100を特定するがこの説明は省略する。
【0049】
次にS601のDLDATA1の送出開始の結果として,放送受信装置100では放送受信装置100が利用可能な新しいファームウェア(DLDATA1)が送信局より送出されたことを動作中のプログラムによって検知する(S603)。
【0050】
前述の図5における説明と同様に,DLDATA1は放送信号内において小さいパケットに分割されて送信されるため,放送受信装置100ではDLDATA1を検知するとCPU105は受信手段101や復調手段102を制御し,放送信号に含まれるDLDATA1のデータを収集し結合を行う(S604)。
【0051】
また,DLDATA2の送出処理(S602)を開始した結果として,放送受信装置100はDLDATA1とは別にDLDATA2が送信局より送出されたことを検知する(S605)。
【0052】
放送受信装置100ではDLDATA2を検知すると,DLDATA1の受信処理の場合と同様に,CPU105は受信手段101や復調手段102を制御し,放送信号に含まれるDLDATA2のデータを収集し結合する(S606)。
【0053】
上記のDLDATA1の受信処理(S604)およびDLDATA2の受信処理の処理(S606)が完了すると,CPU105はフラッシュメモリ内のProgramCode領域202の書換え処理(S607)を行う。この時に書き込まれるDLDATA1,およびDLDATA2のプログラム内容は,図7に示すようなブロック構成のプログラムである。ProgramCode領域202の書き換え処理(S607)に関しては、後ほど図8を用いて詳述する。
【0054】
このDLDATA1の受信処理(S603)(S604)と,DLDATA2の受信処理(S605)(S606)とは,非同期で別個に行われる処理であるが,これは順序を定めて行う同期処理であってもよい。またDLDATA1,DLDATA2の2つの異なるDLDATAが存在することを,別途識別信号の中に記述子等を設けて送信局から放送受信装置100に通知する仕組みがあっても良い。
【0055】
ここで,本実施の形態1におけるDLDATA1,DLDATA2を説明するために図7を説明する。図7は本実施例におけるDLDATA1,DLDATA2の内部の構成を示す図である。DLDATA1は本実施の形態1における放送受信装置100で動作可能である更新プログラムを有するデータであり,この更新プログラムはユーザが利用することを目的とした更新されたプログラムである。更新プログラムには例えば現在のユーザプログラムに問題が発生したなどの理由により,問題を修正したプログラムを放送受信装置100に適用し問題を解決するためのプログラムなどが当てはまる。
【0056】
図7における更新プログラムは,一例としてプログラムデータが6個のブロックから構成されるプログラムである場合を記述している。ここでのプログラムのブロックとは図4におけるフラッシュメモリのProgramCode領域202内に存在するブロックと基本的に同じサイズのブロックである。これは論理的な意味でのブロックであり,フラッシュメモリ108のProgramCode領域202に書き込む処理においては,このブロック単位で書き込みを行うことを想定して設けられている単位である。
【0057】
また一方では,DLDATA2には本実施の形態1における放送受信装置100で動作可能な回復用プログラムを含むデータである。このDLDATA2に含まれる回復用プログラムは1ブロックもしくは2ブロック程度の少数のブロックから構成されるプログラムである。
【0058】
図10及び図11に,DLDATA2に含まれる回復用プログラムの一例を示す。図10では本実施の形態1における回復用プログラムの内部構成を一例として説明する。図10に示すように回復用プログラム702は、自身で回復用のダウンロード処理を行うことが可能となるように,受信手段101や復調手段102など,信号を受信するために必要な各手段を制御するためのドライバ(受信手段ドライバ、復調手段ドライバ)と,各手段を制御してダウンロード動作を実現するためのダウンロード動作用プログラム,および受信したデータを処理するためのデータ処理用プログラム,回復用ダウンロードを行うための放送信号や,データ受信のためデータを有する回復ダウンロード用パラメータ1001を有する。回復用プログラム702とは,このように放送受信装置100に問題が発生した場合に定められたパラメータを用いて回復用のダウンロード処理を行うことを目的として作成されたプログラムである。
【0059】
この図10に示すプログラムがProgramCode領域202の先頭に存在することで放送受信装置100はより大きなユーザ用のプログラムの更新が不完全な状態にあった場合は,回復ダウンロードを行うことが可能である。
【0060】
なお,回復ダウンロードを行う際には,回復用プログラム702は回復用プログラム702自身の内部に保持する回復ダウンロード用パラメータ1001を利用して回復ダウンロードを実行することが可能である。この回復ダウンロード用パラメータ1001は,例えば図11に示すように放送方式、Frequency等のパラメータから構成され、DLDATA2送信時に設定が可能であるため,送信局におけるDLDATA2の送出時の送出DLDATAを変更することにより回復ダウンロードの受信信号や,受信データを変更することが可能である。
【0061】
このように図7、図10及び図11に示すように,DLDATA1は複数のブロックから構成される更新用プログラム701を有し,DLDATA2は1つもしくは少数のブロックから構成される比較的サイズの小さい回復用プログラム702を有している。このような2種類のDLDATAを利用することが本発明の特徴の1つである。
【0062】
次に,図6におけるProgramCode書換え処理(S607)における処理の詳しい説明を図8に示す。図8は本実施の形態1においてのProgramCode領域202の書換え処理の詳細を示すフローチャートである。
【0063】
本実施の形態1における放送受信装置100のProgramCode領域202を更新プログラム(図7におけるPRG−P00からPRG−P05)に書き換える処理では,CPU105により,まず前述の(S604)および(S606)において受信したDLDATA1,DLDATA2が正確なデータであるかどうかが確認される(S801)。これは通常はCRCによる確認や暗号鍵などを用いた復号による確認を用いて行われる。
【0064】
次に,ProgramCode領域202の更新の処理として,まずはフラッシュメモリ108内のProgramCode領域202の先頭部分,つまり共通領域(BLK−S00)部分に回復用プログラム702(PRG−R00)を書き込む(S802)。
【0065】
フラッシュメモリ108の書換えはブロック単位で行われるため,この書き込み処理が完了した時点では,BLK−S00には回復用プログラム702(PRG−R00)が書き込まれた状態となる。よって,もしこれ以降の処理で何らかの問題が発生した場合でも,放送受信装置100はこの回復用プログラム702により回復処理が実施可能となる。
【0066】
次にCPU105は,更新用プログラム701の2番目の領域(PRG−P01)をフラッシュメモリ108のProgramCode専用領域の先頭部分(BLK−P00)に書き込む(S803)。
【0067】
次にCPU105は,更新用プログラム701の3番目のブロック(PRG−P02)をフラッシュメモリのBLK−P02に書き込む(S804)。
【0068】
更に,以降の4番目・5番目のブロック(PRG−P03およびPRG−P04)をフラッシュメモリ108に書き込む処理を継続して実施し(S805)、更新用プログラム701の最後のブロック(PRG−P05)をBLK−P04に書き込む(S806)。
【0069】
この(S802)〜(S806)の一連の処理により,フラッシュメモリ108内のProgramCode領域202の状態は図9に示すような状態となり,ProgramCode領域202の先頭(BLK−S00)に回復用プログラム702(PRG−R00)があり,それ以外の領域である(BLK−P00)〜(BLK−P04)には,更新用プログラム701(PRG−P01からPRG−P05)がブロック単位で書き込まれた状態となる。
【0070】
つまり図9に示すProgramCode領域202の状態は,放送受信装置100はBLK−S00に書き込まれた回復用プログラム702(PRG−R00)による回復ダウンロードが可能で,かつ目的としている更新用プログラム701のブロックの大部分がProgramCode領域202に書き込まれた状態である。
【0071】
このような図9のようなProgramCode領域202の更新完了の直前の状態において,CPU105はProgramCode領域202全体の書き込み状態をブロックごとに確認する処理(ベリファイ)を行う(S807)。
【0072】
このベリファイ処理(S807)により,もしProgramCode領域202のBLK−P00からBLK−P04に保存されたデータに異常が発生した場合は,CPU105はシステムを再起動し,BLK−S00に書き込まれた回復用プログラム702により回復用のダウンロード処理に入ることが可能である。
【0073】
次に,図8におけるS807でのベリファイ処理の結果として,ProgaramCode領域202のうちBLK−P00からBLK−P04部分の書込みが問題なく完了したと判断されると,CPU105はProgramCode領域202の先頭ブロック(BLK−S00)を更新用プログラム701の先頭ブロック(PRG−P00)に書き換える(S808)。
【0074】
この書込み処理(S808)によりBLK−S00およびBLK−P00〜BLK−P04の全ての領域は更新用プログラム701の状態となり,ProgramCode領域202のプログラム更新処理は完了する。
【0075】
図12には,ProgramCode領域202の更新失敗時に回復用プログラム702が動作する手順の一例を図で示す。
【0076】
今例えば,前述の図8におけるS807でのベリファイ処理の結果として,ProgaramCode領域202のうちBLK−P00からBLK−P04部分で何らかの問題が発生しProgramCode領域202に異常があると判断した場合は,CPU105は回復用ダウンロードを行うために放送受信装置100を再起動する(S1201)。再起動時のフラッシュメモリ108の状態は,前述のようにProgramCode領域202のBLK−S00に回復用プログラム702(PRG−R00)が書かれており,回復ダウンロードが可能である。
【0077】
回復ダウンロードでは,回復用プログラム702が保持する回復ダウンロード用パラメータ1001を用いて,更新用のプログラムデータ受信処理を開始する(S1202,S1203)。
【0078】
この時に受信するデータおよび周波数などは回復ダウンロード用パラメータ1001に定義して変更することが可能であるが,ここでは回復ダウンロード用パラメータ1001として,DLDATA1を受信する設定がされた場合を仮定する。この場合、回復ダウンロードを開始した結果としてDLDATA1が取得される(S1204)。
【0079】
この回復ダウンロード用パラメータ1001の設定は、例えば以前のバージョンのDLDATA1を異常回避用のDLDATAとして別途放送しておき,この以前のバージョンのプログラムを取得してProgramCode領域202を以前のプログラムに戻すという利用方法も考えられる。また回復ダウンロード用パラメータ1001は,例えば放送受信装置100がイーサネット(登録商標)などの放送受信以外の通信手段(図示せず)を所有していた場合には,イーサネット(登録商標)経由でサーバにアクセスを行い,異常回避用のDLDATAを入手するなどの方法も考えられるが,これは回復用プログラム702内を変更することで設定が可能であると考えてよい。また回復用プログラム702では,DLDATA1・DLDATA2の両方を再度取得するようなプログラムであっても良い。
【0080】
このように回復用プログラム702が動作中の放送受信装置100は,回復ダウンロード用パラメータ1001手順を用いて更新プログラムを取得すると,更新プログラムをProgramCode領域202に書き込む(S1205)。この書き込み処理は基本的には図8に示すようなProgramCode領域202書き込み処理と同等であるが,回復ダウンロードにおいては既にBLK−S00にはPRG−R00が書かれている状態のため,このブロックに対する書き込み処理は行わなくてもよい。以降,S1205における処理はS803以降の処理と同等と考えてよい。
【0081】
S1205における,回復用プログラム702による更新プログラムの書き込み処理が完了すると,放送受信装置100は再起動され(S1206),更新用プログラム701で起動される(S1207)。
【0082】
上記のように,書き込みをブロック単位で実施し,また回復用プログラム702を最小限のブロックに書き込むことでファームウェア更新中の異常発生時のリカバリー率を高め,なおかつフラッシュメモリ108の全領域の有効利用を実現することが可能となる。
【0083】
なお,本実施の形態1においては,図7に示すDLDATA1の更新用プログラム701は図4におけるProgramCode領域202のブロック数と一致した6ブロックから構成されることを例として示したが,必ずしもProgramCode領域202と更新用プログラム701の内部ブロック数が一致する必要があるものではなく,より多いブロック数や少ないブロック数であっても良い。
【産業上の利用可能性】
【0084】
本発明は、放送または通信を介して放送信号を受信可能な放送受信装置でのソフトウェア更新方法として有用である。
【図面の簡単な説明】
【0085】
【図1】本発明の第1の実施形態である放送受信装置100のブロック図
【図2】フラッシュメモリ108に格納されたファームウェアをイメージで表現した図
【図3】放送受信装置100の起動時の動作の様子を示すフローチャート
【図4】フラッシュメモリ108の内部の様子をより詳しく示した図
【図5】一般的な放送受信装置のファームウェア更新手順を示す図
【図6】本実施の形態1で提案するファームウェア更新方法の処理手順を示す図
【図7】DLDATA1,DLDATA2の構成を示す図
【図8】ProgramCode領域202の書換え処理の詳細を示すフローチャート
【図9】ProgramCode領域202の更新終了直前状態を示す図
【図10】回復用プログラムの一例を示す図
【図11】回復ダウンロード用パラメータの一例を示す図
【図12】回復用プログラム702が動作する手順を示すフローチャート
【符号の説明】
【0086】
100 放送受信装置
101 受信手段
102 復調手段
103 映像音声デコード手段
105 CPU
106 バスコントローラ
107 RAM
108 フラッシュメモリ
120 映像表示装置
121 音声再生装置
201 BootCOde領域
202 ProgramCode領域
701 更新用プログラム
702 回復用プログラム
1001 回復ダウンロード用パラメータ

【特許請求の範囲】
【請求項1】
回復用プログラム及び更新用プログラムを受信してソフトウェア更新を行なう放送受信装置であって、
前記回復用プログラム及び前記更新用プログラムを受信する受信手段と、
プログラムを記憶する記憶手段と、
前記更新用プログラムによって前記ソフトウェア更新を実行する制御手段と、を備え、
前記制御手段は、前記受信手段が前記回復用プログラム及び前記更新用プログラムを受信した場合に、前記回復用プログラムを前記記憶手段の所定領域に書き込むと共に前記所定領域以外の領域に前記更新用プログラムを書き込み、前記更新用プログラムの書込みが成功した場合は前記所定領域に前記更新用プログラムを上書きし、前記更新用プログラムの書込みが失敗した場合は前記所定領域に書き込んだ前記回復用プログラムを実行することを特徴とする放送受信装置。
【請求項2】
前記回復用プログラムは、ソフトウェアダウンロード処理を実行するためのパラメータを有し、前記パラメータによって前記更新用プログラムを再受信し、再受信した前記更新用プログラムを前記所定領域以外の領域に再書き込みさせる、
ことを特徴とする請求項1に記載の放送受信装置。
【請求項3】
回復用プログラム及び更新用プログラムを受信する受信ステップと、
受信した前記回復用プログラム及び前記更新用プログラムを記憶する記憶ステップと、
記憶した前記更新用プログラムによってソフトウェア更新を実行する実行ステップと、を備え、
前記実行ステップは、前記受信ステップが前記回復用プログラム及び前記更新用プログラムを受信した場合に、前記回復用プログラムを前記記憶ステップの所定領域に書き込むと共に前記所定領域以外の領域に前記更新用プログラムを書込み、前記更新用プログラムの書込みが成功した場合は前記所定領域に前記更新用プログラムを上書きし、前記更新用プログラムの書込みが失敗した場合は前記所定領域に書き込んだ前記回復用プログラムを実行する、ことを特徴とするソフトウェア更新方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−92324(P2010−92324A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−262523(P2008−262523)
【出願日】平成20年10月9日(2008.10.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.EEPROM
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】