(57)【要約】【課題】少ないメモリ容量であっても、高機能な通信Ｉ／Ｆが利用できることで、高速にプログラムの更新を行うことが可能な通信機器およびプログラム更新方法を提供することを目的とする。【解決手段】システムプログラムが格納されたプログラム格納部１０６と、システムプログラムの更新用プログラムをダウンロードしてシステムプログラムを更新する第２ロードプログラムが格納された更新サーバにネットワークを介して通信し、第２次ロードプログラムをダウンロードする第１次ロードプログラムと、第１次ロードプログラムがダウンロードする第２次ロードプログラムが格納される第２次ロードプログラム格納部１１２と、第１次ロードプログラムを実行して、第２次ロードプログラムが指定する更新サーバに格納された更新用プログラムをダウンロードし、プログラム格納部１０６に格納されたプログラムを更新する制御部１０５とを備えた。【選択図】図１
2008027269.tif 000002
【特許請求の範囲】
【請求項１】
システムプログラムが格納されたプログラム格納部と、
前記システムプログラムの更新用プログラムをダウンロードして前記システムプログラムを更新するインストールプログラムが格納された更新サーバにネットワークを介して通信し、前記インストールプログラムをダウンロードするプリロードプログラムと、
前記プリロードプログラムがダウンロードする前記インストールプログラムが格納されるインストーラ格納部と、
前記インストールプログラムを実行して、前記インストールプログラムが指定する更新サーバに格納された更新用プログラムをダウンロードし、前記プログラム格納部に格納されたプログラムを更新する制御部とを備えたことを特徴とする通信機器。
【請求項２】
前記プリロードプログラムは、前記システムプログラムに含まれていることを特徴とする請求項１記載の通信機器。
【請求項３】
前記制御部は、前記プリロードプログラムを前記プログラム格納部から他のメモリに転送してからプリロードプログラムを実行する機能を備えたことを特徴とする請求項２記載の通信機器。
【請求項４】
前記プリロードプログラムは、前記インストールプログラムを、前記インストーラ格納部として、前記システムプログラムが使用しないメモリの空き領域にダウンロードする機能を備えたことを特徴とする請求項１から４のいずれかの項に記載の通信機器。
【請求項５】
前記メモリの空き領域を前記インストーラ格納部として前記インストールプログラムを格納できるか否かを判断する使用状態判断部を備え、
前記プリロードプログラムは、前記使用状態判断部が、格納できないと判断したときに、前記インストールプログラムを、プログラム格納部に格納されたアプリケーションプログラムが使用する領域に格納する機能を備えたことを特徴とする請求項４記載の通信機器。
【請求項６】
システムプログラムを更新する更新用プログラムをインストールするプログラムの更新方法において、
前記更新用プログラムをダウンロードして前記プログラムにインストールするインストールプログラムをダウンロードするプリロードプログラムを実行する第１ステップと、
前記プリロードプログラムが前記インストールプログラムをダウンロードする第２ステップと、
ダウンロードしたインストールプログラムを実行する第３ステップと、
前記インストールプログラムにより前記更新用プログラムをダウンロードする第４ステップと、
前記システムプログラムにダウンロードした更新用プログラムを適用する第５ステップとを含むことを特徴とするプログラム更新方法。
【請求項７】
前記第４ステップにて、前記更新用プログラムをダウンロードするときに、前記更新用プログラムのデータをダウンロードしつつ、前記第５ステップでのインストールを行うことを特徴とする請求項４記載のプログラム更新方法。
【請求項８】
前記第２ステップにて、前記プリロードプログラムが前記インストールプログラムをダウンロードするときに、システムプログラムを含むプログラムが使用しないメモリの空き領域にダウンロードすることを特徴とする請求項６または７記載のプログラム更新方法。
【請求項９】
前記第２ステップにて、前記メモリの空き領域に前記インストールプログラムを格納できないときに、前記インストールプログラムを、アプリケーションプログラムが使用する領域に格納する機能を備えたことを特徴とする請求項８記載のプログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの更新機能を有する通信機器およびプログラム更新方法に関する。
【背景技術】
【０００２】
近年、通信機器は様々な分野で活用されており、通信機器に求められる機能は年々増加し、高機能化が進んでいる。インターネットの普及と共に各分野においてネットワーク化が進み、通信機器においても、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の搭載やＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信などの高度な機能が搭載されるようになってきている。
【０００３】
これらの高機能化に伴い、ソフトウエアに求められる要望は非常に多岐にわたると共にソフトウエアの開発量は増加傾向にある。また、ソフトウエアによる新機能の追加、不具合の修正、アプリケーションの変更などを実現するためにプログラム更新処理は非常に重要な機能となっている。特に、ＯＳ、ドライバ、プロトコルスタック、ファイルシステムなどに代表されるシステムプログラムは通信機器の基本動作を統括制御するものであることから、品質や性能を大きく左右する。また、システムプログラムの更新において高機能な通信Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）を利用することは、大幅な工数削減や様々な使用環境に対応できるという利便性を得られることから、非常に重要である。
【０００４】
従来の通信機器のプログラムの更新方法としては、ＯＳなどを必要としない比較的容量の小さいシリアル通信のプログラムを、プログラム更新機能として用意し、専用ケーブルでパソコンと接続し、プログラム更新を行うという方法が一般的である（例えば、特許文献１参照。）。
【０００５】
この（特許文献１）に記載の従来の通信機器を図１６に示す。図１６は、上記従来のプログラム更新方法を備える従来の通信機器を示す図である。従来の通信機器は、外部からシステムプログラムを受け取るための通信部１と、機器全体を制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２と、システムプログラムの受け取り作業と書き換えを行うためのプログラムが格納されているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３と、システムプログラムが格納されているフラッシュメモリ４と、各構成要素を結ぶバス５とを備えている。
【０００６】
以上のように構成された従来の通信機器についてその動作を説明する。ＣＰＵ２は、通常、フラッシュメモリ（ＦＲＯＭ）４に格納されているシステムプログラムに基づいて動作している。システムプログラムを更新する場合、専用ケーブルを通信部１に接続する。これにより、ＣＰＵ２の動作が切り替わり、ＲＯＭ３に格納されている書き換え用プログラムに基づいて動作する。ＣＰＵ２は、通信部１を用いて外部からシステムプログラムを受け取り、受け取ったシステムプログラムをフラッシュメモリ４に書き込むことによりシステムプログラムの更新をする。
【０００７】
また、Ｅｔｈｅｒｎｅｔ（登録商標）や無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のような高機能な通信Ｉ／Ｆを介してシステムプログラムの更新を行う場合には、ＯＳや通信用プロトコルスタックが必要となる。そのため、通常動作用のシステムプログラムと、システムプログラム自体を入れ替えるためのプログラム更新用のシステムプログラムという具合にＯＳや通信用プロトコルスタックを２重に備える必要がある。しかし、通常動作用とプログラム更新用というように２重に備えることで、システムプログラム更新時に高機能な通信Ｉ／Ｆを利用している従来の他の通信機器も見られる。
【０００８】
また、システムプログラム自体を入れ替えるためには、システムプログラムと同じ容量の更新用プログラムを一度に格納可能なだけの充分な容量のメモリを用意しておき、そのメモリ領域に更新用プログラムを一旦ダウンロードしてから、本来のプログラム保存領域に書き込むことによって更新する方法も知られている。
【特許文献１】特開平９−３４５１５号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、図１６に示される従来の通信機器が行うプログラム更新方法では、専用ケーブルを必要とすることからケーブル調達の手間とコストが掛かる。また、従来の通信機器は、メモリ容量の制限からＯＳや通信用プロトコルスタックが実装されていないと想定されるために、１対多の通信を行うことができず、１対１の通信を余儀なくされるので、多数の通信機器のシステムプログラムの更新を行う場合には非常に手間がかかる。また、この専用ケーブルとしてはＲＳ−２３２Ｃなどのシリアル通信ケーブルが使用されることが多いが、通信速度の点からシステムプログラムの更新に時間がかかるという問題がある。
【００１０】
また、ＯＳや通信用プロトコルスタックを２重に備える従来の他の通信機器では、多くのメモリ容量を必要とするため、コストアップを招くことになることの他に通信機器が携帯型情報端末である場合には、小型化を妨げる要因にもなる。
【００１１】
本発明は、少ないメモリ容量であっても、高機能な通信Ｉ／Ｆが利用できることで、高速にプログラムの更新を行うことが可能な通信機器およびプログラム更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の通信機器は、システムプログラムが格納されたプログラム格納部と、前記システムプログラムの更新用プログラムをダウンロードして前記システムプログラムを更新するインストールプログラムが格納された更新サーバにネットワークを介して通信し、前記インストールプログラムをダウンロードするプリロードプログラムと、前記プリロードプログラムがダウンロードする前記インストールプログラムが格納されるインストーラ格納部と、前記インストールプログラムを実行して、前記インストールプログラムが指定する更新サーバに格納された更新用プログラムをダウンロードし、前記プログラム格納部に格納されたプログラムを更新する制御部とを備えたことを特徴とする。
【００１３】
また、本発明のプログラム更新方法は、システムプログラムを更新する更新用プログラムをインストールするプログラムの更新方法において、前記更新用プログラムをダウンロードして前記プログラムにインストールするインストールプログラムをダウンロードするプリロードプログラムを実行する第１ステップと、前記プリロードプログラムが前記インストールプログラムをダウンロードする第２ステップと、ダウンロードしたインストールプログラムを実行する第３ステップと、前記インストールプログラムにより前記更新用プログラムをダウンロードする第４ステップと、前記システムプログラムにダウンロードした更新用プログラムを適用する第５ステップとを含むことを特徴とする。
特徴とする。
【発明の効果】
【００１４】
本発明は、少ないメモリ容量である場合においても、コストアップを招くことなく、高機能なプログラムの更新を行う。
【発明を実施するための最良の形態】
【００１５】
第１の発明は、システムプログラムが格納されたプログラム格納部と、システムプログラムの更新用プログラムをダウンロードしてシステムプログラムを更新するインストールプログラムが格納された更新サーバにネットワークを介して通信し、インストールプログラムをダウンロードするプリロードプログラムと、プリロードプログラムがダウンロードするインストールプログラムが格納されるインストーラ格納部と、インストールプログラムを実行して、インストールプログラムが指定する更新サーバに格納された更新用プログラムをダウンロードし、プログラム格納部に格納されたプログラムを更新する制御部とを備えたことを特徴としたものである。
【００１６】
まず、プリロードプログラムが、システムプログラムを更新するインストールプログラムが格納された更新サーバにネットワークを介して接続する。そしてインストールプログラムをダウンロードしてインストーラ格納部に格納する。次に、インストーラ格納部に格納されたインストールプログラムを制御部が実行して、更新用プログラムをダウンロードし、プログラム格納部に格納されたプログラムを更新する。このようにプリロードプロラムとしてはインストールプログラムをダウンロードするだけなので、更新前のシステムプログラムのＯＳやプロトコルスタックなどを利用すればよく、インストールプログラムとしては、更新用プログラムをダウンロードして書き換える機能のみとした最小の構成のものをインストーラ格納部に格納すればよいので、予めシステムプログラムとして、通常動作用のシステムプログラムと、このシステムプログラムを更新するためにもう一つ余分な更新用のシステムプログラムとを用意しておく必要がない。従って、高機能な通信Ｉ／Ｆであるネットワークを介して更新用プログラムでシステムプログラムを更新するために、システムプログラムとプログラム更新用とを２重に備える必要がないので、メモリ容量が小さい通信機器であっても高機能な通信Ｉ／Ｆを介してプログラムの更新が高速に行うことができる。
【００１７】
第２の発明は、プリロードプログラムは、システムプログラムに含まれていることを特徴としたものである。
【００１８】
プリロードプログラムは、インストールプログラムをダウンロードすると、その役目を終えて動作しないので、プリロードプログラムがシステムプログラムに含まれていて、システムプログラム全体が更新用プログラムと入れ替わったとしても、動作に影響することはない。従って、プリロードプログラムをシステムプログラムに含むことで、プリロードプログラムも更新することができる。
【００１９】
第３の発明は、制御部は、プリロードプログラムをプログラム格納部から他のメモリに転送してからプリロードプログラムを実行する機能を備えたことを特徴としたものである。
【００２０】
他のメモリをプログラム格納部よりアクセス時間の短い高速動作可能なものとすれば、制御部がプリロードプログラムを他のメモリに転送して実行することで、制御部が他のメモリからプリロードプログラムを高速に読み取りながら処理することができるので、プログラム格納部に格納されているときより処理全体を高速に動作させることができる。
【００２１】
第４の発明は、プリロードプログラムは、インストールプログラムを、インストーラ格納部として、システムプログラムが使用しないメモリの空き領域にダウンロードする機能を備えたことを特徴としたものである。
【００２２】
プリロードプログラムがインストールプログラムをダウンロードして格納するときには、システムプログラムが使用しないメモリの空き領域に格納することで、システムプログラムの動作に影響を与えることなく、インストールプログラムのダウンロードを行うことができる。
【００２３】
第５の発明は、メモリの空き領域をインストーラ格納部としてインストールプログラムを格納できるか否かを判断する使用状態判断部を備え、プリロードプログラムは、使用状態判断部が、格納できないと判断したときに、インストールプログラムを、プログラム格納部に格納されたアプリケーションプログラムが使用する領域に格納する機能を備えたことを特徴としたものである。
【００２４】
メモリの空き容量が少ないと、インストールプログラムを格納することができないとう事態が想定される場合に、アプリケーションプログラムを使用する。プログラム更新処理ではアプリケーションプログラムは動作しないので、その領域を利用することで、インストールプログラムをダウンロードすることができる。
【００２５】
第６の発明は、システムプログラムを更新する更新用プログラムをインストールするプログラムの更新方法において、更新用プログラムをダウンロードしてプログラムにインストールするインストールプログラムをダウンロードするプリロードプログラムを実行する第１ステップと、プリロードプログラムがインストールプログラムをダウンロードする第２ステップと、ダウンロードしたインストールプログラムを実行する第３ステップと、インストールプログラムにより更新用プログラムをダウンロードする第４ステップと、システムプログラムにダウンロードした更新用プログラムを適用する第５ステップとを含むことを特徴としたものである。
【００２６】
プリロードプロラムとしてはインストールプログラムをダウンロードするだけなので、更新前のシステムプログラムのＯＳやプロトコルスタックなどを利用すればよく、インストールプログラムとしては、更新用プログラムをダウンロードして書き換える機能のみとした最小の構成のものとすればよいので、予めシステムプログラムとして、通常動作用のシステムプログラムと、このシステムプログラムを更新するためにもう一つ余分な更新用のシステムプログラムとを用意しておく必要がない。従って、高機能な通信Ｉ／Ｆであるネットワークを介して更新用プログラムでシステムプログラムを更新するために、システムプログラムとプログラム更新用とを２重に備える必要がないので、メモリ容量が小さい通信機器であっても高機能な通信Ｉ／Ｆを介してプログラムの更新が高速に行うことができる。
【００２７】
第７の発明は、第４ステップにて、更新用プログラムをダウンロードするときに、更新用プログラムのデータをダウンロードしつつ、第５ステップでのインストールを行うことを特徴としたものである。
【００２８】
更新用プログラムのデータをダウンロードしつつインストールを行うことで、更新用プログラムの全てを格納するメモリを準備する必要がないので、メモリ容量が小さい通信機器でもシステムプログラムの更新が可能となる。
【００２９】
第８の発明は、第２ステップにて、プリロードプログラムがインストールプログラムをダウンロードするときに、システムプログラムを含むプログラムが使用しないメモリの空き領域にダウンロードすることを特徴としたものである。
【００３０】
プリロードプログラムがインストールプログラムをダウンロードして格納するときには、システムプログラムが使用しないメモリの空き領域に格納することで、システムプログラムの動作に影響を与えることなく、インストールプログラムのダウンロードを行うことができる。
【００３１】
第９の発明は、第２ステップにて、メモリの空き領域にインストールプログラムを格納できないときに、インストールプログラムを、アプリケーションプログラムが使用する領域に格納する機能を備えたことを特徴としたものである。
【００３２】
メモリの空き容量が少ないと、インストールプログラムを格納することができないとう事態が想定される場合に、アプリケーションプログラムを使用する。プログラム更新処理ではアプリケーションプログラムは動作しないので、その領域を利用することで、インストールプログラムをダウンロードすることができる。
【００３３】
以下、本発明の実施の形態に係る通信機器およびプログラム更新方法を、図１から図１０に沿って詳細に説明する。
【００３４】
（実施の形態１）
まずは、本発明の実施の形態１に係る通信機器の構成を図１から図４に基づいて説明する。図１は、本発明の実施の形態１に係る通信機器の機能ブロック図である。図２は、図１に示す通信機器の回路図である。図３は、図１に示す通信機器のソフトウエアの構成図である。図４は、ＲＯＭとＲＡＭに割り当てられたメモリマップを示す図である。
【００３５】
図１に示すように本実施の形態１に係る通信機器１００は、表示部１０１と、入力部１０２と、電力供給部１０３と、記憶保持部１０４と、制御部１０５と、プログラム格納部１０６と、起動処理部１０７と、状態記憶部１０８と、高機能通信部１０９と、低機能通信部１１０とを備えている。
【００３６】
表示部１０１は、各種情報を表示するためのモニタである。入力部１０２は、使用者が操作するための入力手段である。電力供給部１０３は、各部に電力を供給する電源である。記憶保持用電力供給部１０４は、電力供給部１０３からの電力供給が停止した場合に情報を保持するために必要となる電力を供給する電源である。制御部１０５は通信機器１００全体を制御する機能を備えている。プログラム格納部１０６は、通信機器１００が所定の動作をするためのプログラムが格納されている。起動処理部１０７は、通信機器１００を動作状態にするための機能を備えている。状態記憶部１０８は、通信機器の様々な状態を記憶しておく読み書き可能なメモリである。高機能通信部１０９は、ネットワークに接続され、高速通信などの高機能な通信を実現するために設けられている。低機能通信部１１０は、通信相手装置と１対１の比較的簡単な通信を実現するために設けられている。第１次ロードプログラム処理部１１１は、プログラム格納部１０６に予め格納されている第１次ロードプログラム（プリロードプログラム）を実行するため処理部である。第２次ロードプログラム格納部１１２は、高機能通信部１０９を介して通信相手より得られる第２次ロードプログラム（インストールプログラム）を格納するためのインストーラ格納部である。低機能通信用プログラム更新部１１３は、低機能通信部１１０を介して通信機器１００のプログラムを更新するための処理部である。
【００３７】
次に、この通信機器の回路構成について図２に基づいて説明する。通信機器１００は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、副電源２０４と、主電源２０５と、キー部２０６と、ＬＣＤ２０７と、高機能通信Ｉ／Ｆ部２０８と、低機能通信Ｉ／Ｆ部２０９と、バス２１０とを備えている。
【００３８】
ＣＰＵ２０１は、制御部１０５に相当し、機器全体を制御する。ＲＯＭ２０２は、プログラム格納部１０６に相当し、通信機器１００が所定の動作をするためのプログラムを格納している書き換え可能な不揮発性メモリであり、フラッシュメモリなどが使用できる。ＲＡＭ２０３は、プログラム実行領域や一時的なデータを保存するための読み書き可能なメモリであり、状態記憶部１０８が含まれる。副電源２０４は、記憶保持用電力供給部１０４に相当するＲＡＭ２０３上のデータを保持するためのバッテリやスーパーキャパシタなどである。主電源２０５は、電力供給部１０３に相当し機器が動作するために必要となる電力を供給する電源である。キー部２０６は、入力部１０２に相当し使用者の入力Ｉ／Ｆである。ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）部２０７は、表示部１０１に相当し各種情報を表示する。ＬＡＮ通信部２０８は、高機能通信部１０９に相当し、ネットワーク対応や高速通信などの高機能な通信を提供するであり具体的には、有線ＬＡＮ、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などが使用できる。シリアル通信部２０９は、１対１の比較的簡単な通信を提供するためのであり、具体的にはＲＳ−２３２Ｃなどが使用できる。バス２１０は、各機能を結ぶである配線である。
【００３９】
次に、通信機器１００のＲＯＭ２０２に格納されるソフトウエアの構成について、図３に基づいて説明する。ＲＯＭ２０２に格納されるソフトウエアは、ＢＯＯＴ部３０１と、システムプログラム３０３と、アプリケーション３１１とを備えている。
【００４０】
ＢＯＯＴ部３０１は、起動のために必要となるハードウエアの初期化処理を行うもので、低機能通信Ｉ／Ｆ２０９を利用したプログラム更新のための書き換えプログラム３０２を含み、ＣＰＵ２０１で実行されることで起動処理部１０７として機能する。
【００４１】
システムプログラム３０３は、ＯＳ３０４と、ドライバ３０５と、プロトコルスタック３０６と、フォントシステム３０７と、ファイルシステム３０８と、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）３０９と、第１次ロードプログラム３１０とを備え、通信機器１００として動作するための基本機能を提供する。
【００４２】
ＯＳ３０４は、通信機器１００全体を管理する基本ソフトウエアである。ドライバ３０５は、ＯＳ３０４と、ＬＣＤ部２０７，高機能通信Ｉ／Ｆ部２０８および低機能通信Ｉ／Ｆ部２０９などの各種のハードウエアとの間に介在してハードウエアを制御するプログラムである。プロトコルスタック３０６は、ネットワーク上である機能を実現するために必要なプロトコルを選び、階層状に積み上げたプログラムである。フォントシステム３０７は、ＬＣＤ２０７に文字情報を表示するためのプログラムと書体情報である。ファイルシステム３０８は、データをファイルとして管理するプログラムである。ＡＰＩ３０９は、アプリケーション３１１が使用する各種関数のプログラムである。
【００４３】
第１次ロードプログラム３１０は、ＲＯＭ２０２内のプログラムの更新用プログラムと更新用プログラムをダウンロードしてＲＯＭ２０３内にインストールする第２次ロードプログラムプログラムとが格納された更新サーバにネットワークを介して通信し、第２次ロードプログラムプログラムをダウンロードする機能を備えているプログラムで、ＣＰＵ２０１で実行されることで第１ロードプログラム処理部１１１として機能する。
【００４４】
アプリケーション３１１は、通信機器１００として動作するために実行される応用ソフトである。
【００４５】
次に、ＲＯＭ２０２とＲＡＭ２０３に割り当てられたメモリマップを図４に基づいて説明する。図４に示すように、ＲＯＭ２０２では、ＢＯＯＴ部格納領域４０１と、システムプログラム格納領域４０２と、アプリケーション格納領域４０３とに区画されている。
【００４６】
ＢＯＯＴ部格納領域４０１は、ＢＯＯＴ部３０１が格納されている領域である。システムプログラム格納領域４０２は、システムプログラム３０３が格納されている領域である。アプリケーション格納領域４０３は、アプリケーション３１１が格納されている領域である。
【００４７】
また、ＲＡＭ２０３では、ＢＯＯＴ使用領域４０４と、書き換えプログラム使用領域４０５と、共有領域４０６と、空き領域４０７と、システムプログラム使用領域４０８と、アプリケーション使用領域４０９とに区画されている。
【００４８】
ＢＯＯＴ使用領域４０４は、ＢＯＯＴ部３０１が作業領域として使用する領域である。書き換えプログラム使用領域４０５は、低機能通信用プログラム更新部１１３に相当するものでありＢＯＯＴ部３０１に格納されている。共有領域４０６は、状態記憶部１０８として割り当てられた領域であり、各プログラムが共通して使用する領域である。空き領域４０７は、いずれかのプログラムも読み書きを行わない未使用領域である。
【００４９】
以上のように構成される本発明の実施の形態１に係る通信機器１００のプログラム更新方法を、図１から図４に、更に図５から図１０を参照しながら説明する。図５は、通信機器１００の動作を示すフローチャートである。図６は、第１次ロードプログラムの動作を示す図である。図７は、第２次ロードプログラムのソフトウエアの構成を示す図である。図８は、第２次ロードプログラムの動作を示す図である。図９（Ａ）は第１次ロードプログラムの動作を示すフローチャートであり、同図（Ｂ）は、第２次ロードプログラムの動作を示すフローチャートである。図１０は、ＢＯＯＴ部の動作を示すフローチャートである。
【００５０】
まず、電力供給部１０３により供給される電力を元に、まず起動処理部１０７として機能するＢＯＯＴ部３０１が実行され、次に制御部１０５がプログラム格納部１０６に格納されたシステムプログラム３０３を実行することで、通信装置１００全体の動作を開始する。制御部１０５は、このＲＯＭ２０２であるプログラム格納部１０６に格納されているアプリケーション３１１を実行することで通信機器１００としての所定の処理や動作を行う。
【００５１】
この通信機器１００は、プログラム格納部１０６に格納されたプログラムを更新する方法として、次の２つの方法を備えている。第１の方法は、低機能通信用プログラム更新部１１３により低機能通信部１１０を介してプログラム格納部１０６のプログラムを更新する方法であり、一般的なプログラム更新方法である。第２の方法は、第１次ロードプログラム処理部１１１により高機能通信部１０９を介してプログラム格納部１０６のプログラムを更新する方法である。
【００５２】
この第２の方法について、図５および図６に基づいて詳細に説明する。図５に示すように、Ｓ５００において使用者よりプログラム更新が指示されると、制御部１０５はプログラム格納部１０６であるＲＯＭ２０２に格納されている第１次ロードプログラム３１０を起動する。
【００５３】
Ｓ５０１において、第１次ロードプログラム３１０は格納されているＲＯＭ２０２から他のメモリとなるＲＡＭ２０３上のシステムプログラム使用領域４０８に制御部１０５によって展開され実行されることで、第１次ロードプログラム処理部１１１として機能する。これは、ＲＯＭ２０２よりはＲＡＭ２０３の方がアクセス時間が短いことによるもので、第１次ロードプログラム３１０をＲＯＭ２０２からＲＡＭ２０３へ展開して実行することで、制御部１０５がＲＡＭ２０３に展開された第１次ロードプログラム３１０を高速に読み取りながら処理することができるので、処理全体を高速に動作させることができる。
【００５４】
図６に示すように、第１次ロードプログラム３１０は、高機能通信部１０９に相当する高機能通信Ｉ／Ｆ２０８を介してＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバといった通信相手となる更新用プログラムが格納された更新サーバから第２次ロードプログラム５００を受信する。受信した第２次ロードプログラム５００は、第２次ロードプログラム格納部１１２となるＲＡＭ２０３上の空き領域４０７に格納される。
【００５５】
第２次ロードプログラムを空き領域４０７に格納することで、システムプログラム３０３の動作に影響することなく、第２次ロードプログラムを格納することができる。
【００５６】
Ｓ５０２において、制御部１０５は、第２次ロードプログラム５００が保存されているアドレスへジャンプすることで、第２次ロードプログラム５００を実行する。
【００５７】
Ｓ５０３において、第２次ロードプログラム５００では、更新用プログラムが格納されている所定の更新サーバから更新用プログラムをダウンロードする。更新用プログラムが格納されている所定の更新サーバは、第２次ロードプログラムが格納されている更新サーバと同一でもよいし、異なる更新サーバとしてもよい。例えば、異なる更新サーバとするときには、更新用プログラムが格納された更新サーバを複数備え、第２次ロードプログラムを格納した更新サーバが、更新用プログラムが格納された更新サーバを指定するアドレスが異なる第２次ロードプログラムを配布することで実現することができる。更新用プログラムが格納された更新サーバを複数備えることで、更新用プログラムの転送に多大な負荷が更新サーバにかかり、複数の通信機器１００から一斉に要求されるプログラム更新に耐えられないときでも、それぞれの通信機器１００に高速な転送を提供することができる。
【００５８】
第２次ロードプログラム５００は、図７で示されるようなソフトウエア構成となっている。図３で示されているソフトウエア構成と比較してわかるように、アプリケーション３１１、ＡＰＩ３０９、ファイルシステム３０８、ＢＯＯＴ部３０１が第２次ロードプログラム５００には存在しない。第２次ロードプログラム５００の主な役割は、高機能通信Ｉ／Ｆ２０８を利用した更新用プログラムのダウンロードと更新用プログラムの書き換えである。従って、プログラム更新処理に不必要なものは第２次ロードプログラム５００には含んでいない。
【００５９】
つまり、第２次ロードプログラム５００は、通信機器１００に搭載されている各種ハードウエアを制御するために必要となるドライバ３０５や、更新用プログラムが格納された更新サーバと通信するに必要となるプロトコルスタック３０６や、全体を制御するためのＯＳ３０４や、文字や数字を表示するためのフォント３０７や、ＲＯＭ２０２の書き換えを行う書き換えプログラムなどの必要最低限となるソフトウエアから構成されている。また、フォント３０７などは漢字などの２バイト文字を削除して、半角英数字のみとすることもサイズ削減には有効である。
【００６０】
図８に示すように、第２次ロードプログラム５００は、そのサイズを小さくすることによって、少ないメモリの空き領域４０７に格納することができる上に、高機能通信Ｉ／Ｆ２０８を利用して更新用プログラム７００を受信することで、第２次ロードプログラム５００の書き換えプログラム６００でＲＯＭ２０２内のプログラムを書き換えて更新することができる。
【００６１】
Ｓ５０３が終了すると、Ｓ５０４において通信機器１００を再起動し、Ｓ５０５でプログラム更新処理が終了となる。
【００６２】
次に、図５に示される通信機器１００の動作を、図９に基づいてより詳細に説明する。図９（Ａ）は、第１次ロードプログラムの動作を説明するフローチャートであり、同図（Ｂ）は第２次ロードプログラムの動作を説明するフローチャートである。
【００６３】
図９（Ａ）に示すように、Ｓ９００において制御部１０５により第１次ロードプログラム３１０が実行され、Ｓ９０１で実行に必要となる各種ハードウエアやソフトウエアの初期化を行う。Ｓ９０２で通信相手である更新サーバと接続し、Ｓ９０３で第２次ロードプログラム５００を通信相手に要求する。通信相手から第２次ロードプログラム５００が送信されると、Ｓ９０４にて第２次ロードプログラム５００としてのデータを受信する。Ｓ９０５にて全てのデータを受信できたか否かを判断する。受信する際にエラー等が発生しなければ、データを全て受信するまでＳ９０４とＳ９０５が繰り返される。Ｓ９０６にて正常終了か否かが判断され、正常終了と判断された場合にはＳ９０７にてこの段階での各種情報を更新情報として状態記憶部１０８であるＲＡＭ２０３上の共有領域４０６に保存する。Ｓ９０６で異常終了と判断された場合には、Ｓ９０９にてエラー情報をＬＣＤ２０７に出力して使用者に通知し、Ｓ９１０において更新処理を再開するか否かを選択させる。再開する場合はＳ９０１からの再開となる。再開しない場合はＳ９１１にてプログラムの更新は行われず、通常動作となり処理は終了となる。第２次ロードプログラム５００の受信が正常に終了した場合は、Ｓ９０８にて第２次ロードプログラム５００が格納されているＲＡＭ２０３上のアドレスにジャンプして、第２次ロードプログラム５００に制御が渡される。ここまでが第１次ロードプログラム３１０の処理となる。
【００６４】
図９（Ｂ）に示すように、Ｓ９１２にて第２次ロードプログラム５００が実行されると第２次ロードプログラム５００に含まれているＯＳが起動し通信機器１００を制御する。そしてＳ９１３で各種初期化が行われ、Ｓ９１４でＲＯＭ２０２上の該当するプログラム格納領域にある現状のプログラムを消去する。そして、Ｓ９１５にて通信相手に対して更新用プログラム７００の要求を行う。通信相手から更新用プログラム７００のデータが送信されてきたら、Ｓ９１６にてデータを受信する。そしてＳ９１７にて受信したデータをＲＯＭ２０２上の該当する領域に逐次格納する。Ｓ９１８において全てのデータを受信したか否かを判断し、完了していない場合にはＳ９１６とＳ９１７とＳ９１８とを繰り返す。Ｓ９１６で受け取ったデータをＳ９１７にてＲＯＭ２０２に格納することで、全てのデータ量の領域を確保する必要がないため、ＲＡＭ２０３の使用量を減らすことができ、る。Ｓ９１９において正常終了か否かを判断し、正常終了と判断された場合には、Ｓ９２０にて各種情報を更新情報として状態記憶部１０８であるＲＡＭ２０３上に保存する。Ｓ９１９において異常終了と判断された場合にはＳ９２２にてエラー情報を使用者に通知し、Ｓ９２３において更新処理を再開するか否かを選択させる。再開する場合はＳ９１３から第２次ロードプログラム５００を再度実行する。ここで更新処理を再開しない場合であるが、Ｓ９１４において既にＲＯＭ２０２上のシステムプログラム３０３が消去されているため、第１次ロードプログラム３１０は実行できないし、通常動作をすることもできない。従って、Ｓ９２４にてＲＯＭ２０２上に格納されているＢＯＯＴ部３０１にある低機能通信Ｉ／Ｆ２０９を利用して書き換えプログラムを実行することとなる。Ｓ９１９で正常終了し、ＲＡＭ２０３上にある共有領域４０６の各種情報を更新すると、Ｓ９２１において、再起動処理を行い、プログラム更新処理は終了（Ｓ４０５）となる。
【００６５】
次に、再起動したときの通信機器１００の動作を図１０に基づいて説明する。図１０に示すように、Ｓ１０００において、通信機器１００の電源がオンされるとＳ１００１においてＲＯＭ２０２が正常であるか否かを確認する。ここでの確認はハード的な異常があるか否かである。ＲＯＭ２０２に対してアクセスできないなどのエラーがあれば、Ｓ１００２において電源をオフする。正常であれば、Ｓ１００３においてＲＡＭ２０３上にある共有領域４０６より各種情報を読み込み、Ｓ１００４において起動方法を判断する。読み込まれた情報より通常起動と判断された場合にはＳ１００５において通常動作で起動が行われる。また、Ｓ１００４において、読み込まれた情報が第１次ロードプログラム３１０の実行中に主電源２０５からの電源供給が何らかの理由により停止した旨の内容であった場合には、Ｓ１００６へ移行して第１次ロードプログラム３１０が実行される。また、Ｓ１００４において、読み込まれた情報が第２次ロードプログラム５００の途中で主電源２０５からの電源供給が何らかの理由により停止した旨の内容であった場合には、Ｓ１００７へ移行して第２次ロードプログラム５００を実行する。図９（Ｂ）に示す第２次ロードプログラム５００のＳ９２３で再開処理を選択しなかった場合や、使用者の意図により低機能通信Ｉ／Ｆ２０９を利用する書き換えプログラムが選択された場合は、図１０に示すＳ１００８において低機能通信Ｉ／Ｆ２０９を利用する書き換えプログラムを起動する。
【００６６】
このように本実施の形態１に係る通信機器１００は、図２に示した副電源２０４を備えていることにより、プログラム更新処理途中に、電源断などのエラーが発生した場合においても、少なくともＲＡＭ２０３の情報は保持されるので、ＲＡＭ２０３上の共有領域４０６に各種情報を保持しておくことができるため、プログラム更新処理の再開が可能となる。
【００６７】
以上のように、本実施の形態１によれば、メモリ容量が少なくＯＳ３０４やプロトコルスタック３０６などを通常動作用とプログラム更新用に備えることができない通信機器や、更新用プログラム８００を一度に格納するだけの容量を持たないような通信機器であっても、小さなメモリ容量でＯＳ３０４やプロトコルスタック３０６を必要とする高機能通信Ｉ／Ｆ２０８を利用してシステムプログラム３０３を更新することができる。
【００６８】
また、プログラム更新途中に電源断などのエラーが発生した場合であっても、次回の電源オンでプログラム更新処理を再開することができる。
【００６９】
また、制御部１０５がＲＯＭ２０２に予め格納されている第１次ロードプログラムを実行し、更新処理に必要最低限のプログラムで構成されたプログラムサイズの小さいコンパクトなシステムプログラムを第２次ロードプログラムとしてロードして、本来の目的であるシステムプログラム３０３を含めたプログラムの更新処理を２段階に分けて行うことにより、少ないメモリ容量を活用して、高機能Ｉ／Ｆを利用した利便性の高いプログラムの更新を行うことができる。
【００７０】
（実施の形態２）
本発明の実施の形態２に係る通信機器を図１１から図１５に基づいて説明する。図１１は、本発明の実施の形態２に係る通信機器の通信機器の機能ブロック図である。図１２は、第１次ロードプログラムの動作を示す図である。図１３は、第２次ロードプログラムの動作を示す図である。図１４は、通信機器と更新サーバとの通信を示す図である。図１５は、通信機器の動作を示すフローチャートである。なお、図１１においては図１と、図１２においては図４と同じ構成のものは同符号を付して説明は省略する。
【００７１】
本実施の形態２に係る通信機器は、ＲＡＭ２０３の空き領域の使用状態を把握するための使用状態判断部を設けたことを特徴としている。
【００７２】
図１１および図１２に示すように使用状態判断部１１０１は、第２次ロードプログラムがダウンロードされる空き領域４０７に確保できるか否かを判断するために、第２ロードプログラムを格納している更新サーバと通信してデータサイズを受信して、空き領域４０７と比較する機能を備えている。
【００７３】
このように構成された本実施の形態２に係る通信機器におけるプログラム更新方法について説明する。
【００７４】
図１２に示すように、プログラム更新処理を繰り返していくと、ＲＯＭ２０２に格納されるプログラムサイズが大きくなっていくことが予想される。またＲＡＭ２０３上の空き容量が少なく、第２次ロードプログラム５００を格納することができないとう事態も想定される。この場合においてはアプリケーション使用領域４０９などのプログラム更新処理では必要としない領域を利用することができる。
【００７５】
例えば、図９のＳ９０２で制御部１０５が通信相手との接続が確立した後、図１４に示すように第２次ロードプログラム５００のサイズを確認するシーケンスを行う。
【００７６】
この第２次ロードプログラム５００のサイズを確認する処理を図１５に基づいて説明する。図１５に示すように、Ｓ１５００において通信相手から第２次ロードプログラム５００のデータサイズを受信し、Ｓ１５０１において使用状態判断部１１０１は、ＲＡＭ２０３の使用状況を確認する。そしてＳ１５０２において使用状態判断部１１０１は、空き領域４０７が使用可能か否かを判断する。つまり第２次ロードプログラム５００のデータサイズと、空き領域４０７のサイズを比較してダウンロード可能か否かを判断する。使用可能であれば、Ｓ１５０３にて第１次ロードプログラム３１０は、空き領域４０７に第２次ロードプログラム５００をダウンロードする。この後の処理は本実施の形態１と同様である。Ｓ１５０２で空き領域４０７が使用不可であると判断された場合は、Ｓ１５０４においてアプリケーション使用領域４０９が使用可能か否かを判断する。
【００７７】
この判断は、アプリケーション使用領域４０９のサイズと第２次ロードプログラム５００とのサイズとを比較して、第２次ロードプログラム５００がアプリケーションプ使用領域４０９に格納可能か否かで判断される。第２次ロードプログラム５００がアプリケーション使用領域４０９より大きいサイズであるときには、本実施の形態２に係る通信機器用ではない第２次ロードプログラムである可能性が高い。つまり誤って異なる第２次ロードプログラムをダウンロードして実行してしまうと、異なるシステムプログラムをダウンロードして更新してしまうことになり、動作不能状態に陥るおそれがある。従って、所望とする第２次ロードプログラム５００であるか否かを判断する条件の一つとして、アプリケーション使用領域４０９のサイズと第２次ロードプログラム５００とのサイズとを比較を行うことで、誤って異なるシステムプログラムを更新してしまうことを防止することができる。
【００７８】
アプリケーション使用領域４０９が使用可能であると判断された場合にはアプリケーション使用領域４０９に第２次ロードプログラム５００をダウンロードして、プログラム更新処理を行う。Ｓ１５０４でアプリケーション使用領域４０９が使用不可能と判断された場合には高機能通信Ｉ／Ｆ２０８を利用したプログラム更新は不可能となるため、Ｓ１５０６において通信相手との接続を切断し、Ｓ１５０７において使用者にエラーを通知しプログラム更新処理を中止する。
【００７９】
このように本実施の形態２によれば、ＲＡＭ２０３の使用状況を判断する使用状態判断部１１０１が第２次ロードプログラム５００のデータサイズを確認する処理を行うことにより、空き容量４０７に第２次ロードプログラム５００を格納できない場合においても、その他の領域を、第２次ロードプログラム５００を実行させる領域として使用することができる。またＲＯＭ上のプログラム全体のサイズが更新処理の繰り返しにより大きくなった場合にも柔軟な対応が可能となる。
【００８０】
なお、本実施の形態２では、空き領域４０７が使用不可であった場合、第２次ロードプログラムをロード（Ｓ１５０５）する領域としてアプリケーション使用領域４０９を使用しているが、メモリマップ構成により任意の使用可能領域がある場合にはその領域を割り当てることができる。
【産業上の利用可能性】
【００８１】
本発明のプログラム更新方法は、通信機器において少ないメモリ容量でも、利便性の高いプログラム更新を行うことができるため、通信機器のコストを抑える事が可能となり、通信機能を備える電子機器の分野に有用である。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態１に係る通信機器の機能ブロック図
【図２】図１に示す通信機器の回路図
【図３】図１に示す通信機器のソフトウエアの構成図
【図４】ＲＯＭとＲＡＭに割り当てられたメモリマップを示す図
【図５】通信機器の動作を示すフローチャート
【図６】第１次ロードプログラムの動作を示す図
【図７】第２次ロードプログラムのソフトウエアの構成を示す図
【図８】第２次ロードプログラムの動作を示す図
【図９】（Ａ）第１次ロードプログラムの動作を示すフローチャート、（Ｂ）第２次ロードプログラムの動作を示すフローチャート
【図１０】ＢＯＯＴ部の動作を示すフローチャート
【図１１】本発明の実施の形態２に係る通信機器の通信機器の機能ブロック図
【図１２】第１次ロードプログラムの動作を示す図
【図１３】第２次ロードプログラムの動作を示す図
【図１４】通信機器と更新サーバとの通信を示す図
【図１５】通信機器の動作を示すフローチャート
【図１６】従来のプログラム更新機能を有する装置の機能ブロック構成図
【符号の説明】
【００８３】
１０１    表示部
１０２    入力部
１０３    電力供給部
１０４    記憶保持用電力供給部
１０５    制御部
１０６    プログラム格納領域
１０７    起動処理部
１０８    状態記憶部
１０９    高機能通信部
１１０    低機能通信部
１１１    第１次ロードプログラム処理部
１１２    第２次ロードプログラム格納部
１１３    低機能通信用プログラム講師部
２０８    高機能通信Ｉ／Ｆ
２０９    低機能通信Ｉ／Ｆ
３０１    ＢＯＯＴ部
３０２    低機能通信Ｉ／Ｆを利用する書き換えプログラム
３０３    システムプログラム
３１０    第１次ロードプログラム
３１１    アプリケーション
４０１    ＢＯＯＴ部格納領域
４０２    システムプログラム格納領域
４０３    アプリケーション格納領域
４０４    ＢＯＯＴ使用領域
４０５    低機能通信Ｉ／Ｆを利用する書き換えプログラム使用領域
４０６    共有領域
４０７    空き領域
４０８    システムプログラム使用領域
４０９    アプリケーション使用領域
５００    第２次ロードプログラム
７００    高機能通信Ｉ／Ｆを利用する書き換えプログラム
８００    更新用プログラム
１１０１    使用状態判断部
【図１】
2008027269.tif 000003
【図２】
2008027269.tif 000004
【図３】
2008027269.tif 000005
【図４】
2008027269.tif 000006
【図５】
2008027269.tif 000007
【図６】
2008027269.tif 000008
【図７】
2008027269.tif 000009
【図８】
2008027269.tif 000010
【図９】
2008027269.tif 000011
【図１０】
2008027269.tif 000012
【図１１】
2008027269.tif 000013
【図１２】
2008027269.tif 000014
【図１３】
2008027269.tif 000015
【図１４】
2008027269.tif 000016
【図１５】
2008027269.tif 000017
【図１６】
2008027269.tif 000018