(57)【特許請求の範囲】
【請求項１】
それぞれ対応するプログラムモジュールによって制御される複数の電子デバイスを備え、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器であって、
前記電子機器に設定された仕向先の情報を記憶する仕向先情報記憶手段と、
外部より入力され前記複数の電子デバイスのプログラムモジュールを更新するための複数の更新モジュールを含む更新用プログラムを記憶する更新情報記憶手段と、
前記複数の電子デバイスそれぞれについて、前記プログラムモジュールの現在のバージョン情報と、前記更新情報記憶手段に記憶された前記更新用プログラムの更新モジュールのバージョン情報とを比較して、更新対象となる電子デバイスを特定する更新対象特定手段と、
前記更新対象特定手段により特定された電子デバイスをグループ分けすると共にグループ間の更新順序を設定し、次いで各グループに含まれる電子デバイスのグループ内更新順序を設定し、これにより更新対象となる全ての電子デバイスについて更新順序を設定した更新順序テーブルを生成する更新順序設定手段と、
更新対象となる前記電子デバイスのプログラムモジュールを、前記設定された更新順序テーブルの更新順序に従って、前記更新情報記憶手段に記憶されている更新用プログラムの更新モジュールによりそれぞれ更新する更新実行手段と、
を備え、
前記複数の電子デバイスは、プログラムモジュールを読み込むことにより論理回路の書き換えが可能なプログラマブル集積回路と、論理回路の書き換えが不可能な非プログラマブル集積回路とをそれぞれ少なくとも１つ含み、
前記更新順序設定手段は、前記プログラマブル集積回路を同一のグループとし、且つ当該グループの更新順序を他のグループより先の更新順序にし、
前記更新用プログラムの前記複数の更新モジュールは、複数の仕向先にそれぞれ個別に対応する複数の更新モジュールであり、
前記更新実行手段は、前記仕向先情報記憶手段に記憶された仕向先の情報に対応する前記更新モジュールを前記複数の更新モジュールから選定し、該選定された更新モジュールを用いて前記プログラムモジュールを更新する電子機器。
【請求項２】
請求項１記載の電子機器であって、
前記更新用プログラムが、前記複数の更新モジュールを含む一つのファイルから構成される電子機器。
【請求項３】
請求項１又は請求項２記載の電子機器であって、
各種の設定言語と、該設定言語に対応する国コードとの対応関係を表した言語対応テーブルが記憶された言語対応情報記憶手段と、
前記電子機器に設定された設定言語を検出し、該検出された設定言語に対する国コードを前記言語対応テーブルを参照して求め、前記求めた国コードに応じて前記仕向先を設定する仕向先設定手段と、
を備え、
前記更新実行手段は、前記仕向先情報記憶手段に仕向先の情報が記憶されていない場合、前記仕向先設定手段によって設定された仕向先に対応する前記更新モジュールを前記複数の更新モジュールから選定し、該選定された更新モジュールを用いて前記プログラムモジュールを更新する電子機器。
【請求項４】
請求項１〜請求項３のいずれか一項記載の電子機器であって、
前記更新用プログラムが更新する前記プログラムモジュールの数が、前記仕向先毎に異なっている電子機器。
【請求項５】
請求項１〜請求項４のいずれか一項記載の電子機器であって、
該電子機器は、内視鏡挿入部先端から照明光を出射する照明光学系と、撮像素子により撮像画像を生成する撮像光学系とを有する内視鏡装置を構成し、
前記仕向先に応じたプログラムモジュールによって前記内視鏡装置の仕様を変更する電子機器。
【請求項６】
それぞれ対応するプログラムモジュールによって制御される複数の電子デバイスを備え、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器のプログラムモジュール更新方法であって、
複数の仕向先にそれぞれ個別に対応する複数の更新モジュールを含み、外部より入力される前記複数の電子デバイスのプログラムモジュールを更新する更新用プログラムを、更新情報記憶手段に記憶させるステップと、
前記複数の電子デバイスそれぞれについて、前記プログラムモジュールの現在のバージョン情報と、前記更新情報記憶手段に記憶された前記更新用プログラムの更新モジュールのバージョン情報とを比較して、更新対象となる電子デバイスを特定する更新対象特定ステップと、
前記更新対象特定ステップにより特定された電子デバイスをグループ分けすると共にグループ間の更新順序を設定し、次いで各グループに含まれる電子デバイスのグループ内更新順序を設定し、これにより更新対象となる全ての電子デバイスについて更新順序を設定した更新順序テーブルを生成する更新順序設定ステップと、
前記電子機器に設定された仕向先に対応する更新モジュールを、前記複数の更新モジュールから選定するステップと、
更新対象となる前記電子デバイスのプログラムモジュールを、前記設定された更新順序テーブルの更新順序に従って、前記選定された更新モジュールにより更新するステップと、
を備え、
前記複数の電子デバイスは、プログラムモジュールを読み込むことにより論理回路の書き換えが可能なプログラマブル集積回路と、論理回路の書き換えが不可能な非プログラマブル集積回路とをそれぞれ少なくとも１つ含み、
前記更新順序設定ステップは、前記プログラマブル集積回路を同一のグループとし、且つ当該グループの更新順序を他のグループより先の更新順序にする電子機器のプログラムモジュール更新方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、及び電子機器のプログラムモジュール更新方法に関する。
【背景技術】
【０００２】
電子機器には、ハードウェアの基本的な制御を行うファームウェアが組み込まれており、新たな機能の追加や、不具合の修正は、ファームウェアのバージョンアップで実現されている。一般にファームウェアは、複数のモジュールで構成されており、これら各モジュールは、それぞれ個別に改変されてバージョン情報で管理されている。
また、電子機器には、工場出荷時において複数の仕向先にそれぞれ個別に対応する複数の更新用プログラムが記憶されたものがある（例えば、特許文献１参照）。この種の電子機器においては、電子機器の初回設定時に、これら記憶された複数の更新用プログラムのうちいずれかを使用対象のプログラムとして設定する。そのため、プログラムモジュールのバージョンアップ時には、各仕向先用の更新用プログラムを全て更新することになり、電子機器は相応の記憶容量が必要になる。そこで、特許文献１の構成においては、設定された仕向先とは関係のないプログラムデータを削除して、プログラムが格納されるメモリエリアを有効に使用できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３７３３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、仕向先毎の更新用プログラムをそれぞれ用意して、バージョンアップの際にこれら仕向先毎の更新用プログラムを全て入れ替えることは、プログラムの提供側にとって負担が大きい。また、プログラムモジュールの更新作業を行う操作者側にとっても、更新時に特定の仕向先を入力する等、更新作業が煩雑となるばかりか、誤入力等により不具合が生じる虞もある。
本発明は、電子機器のプログラムモジュールを更新する際に、仕向先に対応する更新用プログラムの更新モジュールを電子機器が選択し、自動的に適正な更新処理が行える電子機器、及び電子機器のプログラムモジュール更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は下記構成からなる。
（１）  それぞれ対応するプログラムモジュールによって制御される複数の電子デバイスを備え、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器であって、
前記電子機器に設定された仕向先の情報を記憶する仕向先情報記憶手段と、
外部より入力され前記複数の電子デバイスのプログラムモジュールを更新するための複数の更新モジュールを含む更新用プログラムを記憶する更新情報記憶手段と、
前記複数の電子デバイスそれぞれについて、前記プログラムモジュールの現在のバージョン情報と、前記更新情報記憶手段に記憶された前記更新用プログラムの更新モジュールのバージョン情報とを比較して、更新対象となる電子デバイスを特定する更新対象特定手段と、
前記更新対象特定手段により特定された電子デバイスをグループ分けすると共にグループ間の更新順序を設定し、次いで各グループに含まれる電子デバイスのグループ内更新順序を設定し、これにより更新対象となる全ての電子デバイスについて更新順序を設定した更新順序テーブルを生成する更新順序設定手段と、
更新対象となる前記電子デバイスのプログラムモジュールを、前記設定された更新順序テーブルの更新順序に従って、前記更新情報記憶手段に記憶されている更新用プログラムの更新モジュールによりそれぞれ更新する更新実行手段と、
を備え、
前記複数の電子デバイスは、プログラムモジュールを読み込むことにより論理回路の書き換えが可能なプログラマブル集積回路と、論理回路の書き換えが不可能な非プログラマブル集積回路とをそれぞれ少なくとも１つ含み、
前記更新順序設定手段は、前記プログラマブル集積回路を同一のグループとし、且つ当該グループの更新順序を他のグループより先の更新順序にし、
前記更新用プログラムの前記複数の更新モジュールは、複数の仕向先にそれぞれ個別に対応する複数の更新モジュールであり、
前記更新実行手段は、前記仕向先情報記憶手段に記憶された仕向先の情報に対応する前記更新モジュールを前記複数の更新モジュールから選定し、該選定された更新モジュールを用いて前記プログラムモジュールを更新する電子機器。
（２）  それぞれ対応するプログラムモジュールによって制御される複数の電子デバイスを備え、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器のプログラムモジュール更新方法であって、
複数の仕向先にそれぞれ個別に対応する複数の更新モジュールを含み、外部より入力される前記複数の電子デバイスのプログラムモジュールを更新する更新用プログラムを、更新情報記憶手段に記憶させるステップと、
前記複数の電子デバイスそれぞれについて、前記プログラムモジュールの現在のバージョン情報と、前記更新情報記憶手段に記憶された前記更新用プログラムの更新モジュールのバージョン情報とを比較して、更新対象となる電子デバイスを特定する更新対象特定ステップと、
前記更新対象特定ステップにより特定された電子デバイスをグループ分けすると共にグループ間の更新順序を設定し、次いで各グループに含まれる電子デバイスのグループ内更新順序を設定し、これにより更新対象となる全ての電子デバイスについて更新順序を設定した更新順序テーブルを生成する更新順序設定ステップと、
前記電子機器に設定された仕向先に対応する更新モジュールを、前記複数の更新モジュールから選定するステップと、
更新対象となる前記電子デバイスのプログラムモジュールを、前記設定された更新順序テーブルの更新順序に従って、前記選定された更新モジュールにより更新するステップと、
を備え、
前記複数の電子デバイスは、プログラムモジュールを読み込むことにより論理回路の書き換えが可能なプログラマブル集積回路と、論理回路の書き換えが不可能な非プログラマブル集積回路とをそれぞれ少なくとも１つ含み、
前記更新順序設定ステップは、前記プログラマブル集積回路を同一のグループとし、且つ当該グループの更新順序を他のグループより先の更新順序にする電子機器のプログラムモジュール更新方法。
【発明の効果】
【０００６】
本発明によれば、電子機器のプログラムモジュールを更新する際に、電子機器が仕向先に対応する更新モジュールを選択し、操作者に手間を掛けることなく自動的に適正な更新処理を行うことができる。これにより、煩わしい作業を伴うことなく電子機器のプログラムモジュールを円滑に更新することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態を説明するための図で、内視鏡及び内視鏡が接続される各装置を表す内視鏡装置の構成図である。
【図２】内視鏡装置の具体的な構成例を示す外観図である。
【図３】バージョン情報の一例を示す説明図である。
【図４】更新情報の一例を示す説明図である。
【図５】バージョンアップの様子を示す説明図である。
【図６】バージョンアップを行う手順を示すフローチャートである。
【図７】仕向先の設定手順を示すフローチャートである。
【図８】各種の設定言語と、設定言語に対応する国コード及び仕向先との対応関係を表した言語対応テーブルを示す説明図である。
【図９】内視鏡装置の仕向先毎の仕様を示す説明図である。
【図１０】仕向先に応じて更新の有無を異ならせたプログラムモジュールの構成を示す説明図である。
【図１１】グループ分けされた電子デバイスの更新順序を示す説明図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図１は本発明の実施形態を説明するための図で、内視鏡装置の構成を概略的に示すブロック図であり、図２は内視鏡装置の具体的な構成例を示す外観図である。
内視鏡装置１００は、図１に示すように、プロセッサ１１と、プロセッサ１１に接続された内視鏡スコープ１３と、観察画像等の情報を表示するモニタ１５と、プロセッサ１１に接続されたキーボード等の入力部１７とを有する。
【０００９】
図２に示すように、内視鏡スコープ１３は、本体操作部１９と、この本体操作部１９に連設され被検体（体腔）内に挿入される挿入部２１と、本体操作部１９から延設され先端にコネクタ２３が設けられたユニバーサルコード２５とを備える。ユニバーサルコード先端のコネクタ２３は、プロセッサ１１に着脱自在に接続されて、各種信号が入出力される。
【００１０】
本体操作部１９には、挿入部２１の先端側で吸引、送気、送水を実施するための送気送水ボタン、撮像時のシャッターボタン等の各種操作ボタン２７や、アングルノブ３５等が設けられている。
【００１１】
挿入部２１は、本体操作部１９側から順に軟性部２９、湾曲部３１、内視鏡先端部３３で構成される。湾曲部３１は、本体操作部１９のアングルノブ３５を回転することによって遠隔的に湾曲操作され、これにより内視鏡先端部３３を所望の方向に向けることができる。
【００１２】
内視鏡先端部３３には、撮像光学系の観察窓が配置される。観察窓の内部には、ＣＣＤ(Charge Coupled Device）型イメージセンサや、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）型イメージセンサ等の撮像素子３７と、観察画を撮像素子３７に結像させるレンズ３９とが配置される。
【００１３】
上記構成の内視鏡装置１００は、複数の電子デバイスのプログラムモジュールを、仕向先に応じた新バージョンのプログラムモジュールへ自動的に書き換える機能を有する。
【００１４】
図１に示すように、内視鏡スコープ１３には、所望の観察画像を得るための撮像素子３７、操作ボタン２７等が設けられ、操作ボタン２７からの入力信号を受け付けるＣＰＵ３等の電子デバイスを有する。ＣＰＵ３はＲＯＭ４１を備え、このＲＯＭ４１には、ＣＰＵ３を動作させるファームウェアとしてのプログラムモジュールが格納される。
【００１５】
プロセッサ１１における撮像光学系と関係する回路は、回路基板Ｓ１、回路基板Ｓ２、及び回路基板Ｓ２に接続される更新情報入力部４３とを有して構成される。
【００１６】
回路基板Ｓ１は、駆動信号を撮像素子３７に出力するセンサ駆動ＦＰＧＡ（Field-Programmable Gate Array）４５と、センサ駆動ＦＰＧＡ４５を制御するＣＰＵ１が実装されている。センサ駆動ＦＰＧＡ４５はプログラムモジュールを格納するＲＯＭ４７を備え、ＣＰＵ１もプログラムモジュールを格納するＲＯＭ４９を備える。ＦＰＧＡは、プログラムモジュールを読み込むことにより論理回路の書き換えが可能なプログラマブル集積回路であり、ＣＰＵは、論理回路の書き換えが不可能な非プログラマブル集積回路である。
【００１７】
ＣＰＵ１は、内視鏡スコープ１３側のＣＰＵ３にユニバーサルコード２５（図２参照）を通じてシリアル接続されており、センサ駆動ＦＰＧＡ４５とは同一の回路基板内でパラレル接続されている。また、ＣＰＵ１は回路基板Ｓ２に実装されたＣＰＵ２とパラレル接続されている。ＣＰＵ１は、センサ駆動ＦＰＧＡ４５に撮像素子３７への制御信号を出力すると共に、操作ボタン２７からの入力による制御信号が入力される。
【００１８】
回路基板Ｓ２は、内視鏡を統括制御するプロセッサ１１のメインＣＰＵであるＣＰＵ２と、映像入力ＦＰＧＡ５１と、画像処理ＦＰＧＡ５３と、メモリ５５が実装されている。ＣＰＵ２はＲＯＭ５７、映像入力ＦＰＧＡ５１はＲＯＭ５９、画像処理ＦＰＧＡ５３はＲＯＭ６１、をそれぞれ備え、それぞれのＲＯＭにそれぞれのプログラムモジュールが格納される。メモリ５５は、詳細は後述するが、外部より入力され複数の電子デバイスそれぞれに対する更新用プログラムが記憶される更新情報記憶手段、及び内視鏡装置１００の仕向先情報が記憶される仕向先情報記憶手段、設定言語の情報が記憶される言語対応情報記憶手段として機能する。
【００１９】
ＣＰＵ２は、上記プロセッサ１１、内視鏡スコープ１３に搭載される複数のＣＰＵ、ＦＰＧＡを制御する。このＣＰＵ２は、内視鏡装置１００の操作者による操作に応じて、所望の内視鏡観察画像をモニタ１５に出力させる。各ＣＰＵ，ＦＰＧＡが備えるＲＯＭには、それぞれデバイスに対応するプログラムモジュールが格納されており、入力された命令信号に応じて所望の機能を実現するようになっている。また、ＣＰＵ２は、更新情報入力部４３を通じて後述する記憶媒体６３等から更新情報を読み出して、各電子デバイスのプログラムモジュールを更新する。
【００２０】
次に、各電子デバイスのプログラムモジュールを、新たに供給される新バージョンのプログラムモジュールに更新する手順について簡単に説明する。
各電子デバイスのプログラムモジュールは、バージョン名で表されるバージョン情報に基づいて管理されている。これら各電子デバイスのプログラムモジュールに対する現在のバージョンは、バージョン情報としてメモリ５５に記憶されている。図３はバージョン情報の一例を示す。ＣＰＵ２は、メモリ５５からバージョン情報を参照することで、各電子デバイスに格納されたプログラムモジュールのバージョン、即ち、モジュールの機能や仕様を常に正確に把握できるようになっている。
【００２１】
内視鏡装置１００における各電子デバイスのプログラムモジュールを新バージョンのプログラムモジュールに更新する場合、操作者は、プロセッサ１１の更新情報入力部４３に、コンパクトフラッシュ（登録商標）、ＳＤカード等の各種メモリカードや、ハードディスク、光ディスク、磁気テープ等の各種ストレージ装置等の記憶媒体６３を挿入する。そして、ＣＰＵ２が記憶媒体６３に記憶された更新情報を読み出し、この読み出された更新情報をメモリ５５に一旦記憶させる。その後、ＣＰＵ２は各電子デバイスのＲＯＭを必要に応じて書き替える。これにより、内視鏡装置１００への新規機能の搭載や、不具合の解消が行える。なお、更新情報は、記憶媒体６３に限らず、ネットワーク６５を通じて配信する構成であってもよい。
【００２２】
図４に更新情報の一例を示す。ＣＰＵ２は、図３に示す現在のバージョン情報と、更新情報のバージョン情報とを比較して、バージョンナンバーが下位となる旧バージョンのプログラムモジュールを、上位となる新バージョンのプログラムモジュールへ選択的に更新する。つまり、図５にバージョンアップの様子を示すように、ＣＰＵ２は、更新情報であるバージョンアップキットに記憶された各プログラムモジュールのバージョンナンバーと、現在のバージョンナンバーとを比較して、現在のバージョンナンバーが低い場合に新バージョンのプログラムモジュールが提供されたと判定し、そのプログラムモジュールを新バージョンのプログラムモジュールに更新する。また、比較の結果、現在のバージョンナンバーと同じであった場合は、そのプログラムモジュール（図示例では存在せず）を更新せずに、そのままとする。
【００２３】
旧バージョンのプログラムモジュールを新バージョンのプログラムモジュールに更新する場合、内視鏡装置１００に搭載されたＣＰＵ、ＦＰＧＡのそれぞれに対して、個別にプログラムモジュールを更新する必要がある。しかし、実際に使用されている内視鏡装置の機器構成は、内視鏡スコープやプロセッサの種類が多種多様であり、組み合わせによって回路構成が異なれば、更新するプログラムモジュールの格納箇所も異なる。そのため、機器のメーカ側から更新情報が提供されても、各内視鏡装置に対して一律に更新順序を設定することはできない。つまり、内視鏡装置毎に異なる更新順序を設定する必要がある。
【００２４】
具体的には、追加機能に関しては、プログラムモジュールを呼び出す側と、呼び出される側とでは更新順序の制約がある。例えば、基板上にＣＰＵとＦＰＧＡが実装され、ＣＰＵがＦＰＧＡを制御する構成において、新規機能としてＩ／Ｆが増加する場合、ＦＰＧＡのプログラムモジュールを先に更新してからＣＰＵのプログラムモジュールを更新する必要がある。逆の手順で更新した場合には、ＣＰＵは、搭載していないＩ／ＦでＦＰＧＡを制御する動作となり、予期しない不具合が起きる可能性がある。
【００２５】
さらに、ＦＰＧＡはコンフィグレーション後に動作するものであるため、バージョンアップを行う際は、プログラムモジュールの書き換え後にコンフィグレーションを実施する必要がある。ＣＰＵの場合は、書き換え対象ＣＰＵのプログラムモジュールが更新後に参照できなくなるため、プログラムモジュールを他のＲＡＭ上に一旦退避させてから書き換え等の動作を行う必要があり、リセットやリブート処理を要する。
【００２６】
そのため、プログラムモジュールのバージョンアップを行う際は、変更が必要となるプログラムモジュールを特定し、この特定された各プログラムモジュールの主従関係や、リブートの有無等を加味して更新順序を決定することが必要となる。
【００２７】
本内視鏡装置１００においては、更新対象となる電子デバイスのプログラムモジュールに対して、新バージョンのプログラムモジュールを適切な更新順序で自動更新する。その際、新バージョンのプログラムモジュールを、自動的に仕向先に対応させたものにする。図６にバージョンアップを行う手順のフローチャートを示した。以下、図６を用いてプログラムモジュールの更新処理を詳細に説明する。
【００２８】
まず、内視鏡装置１００の操作者は、記憶媒体６３やネットワーク６５を介して更新情報を更新情報入力部４３に入力する（Ｓｔ．１１）。ＣＰＵ２は、更新情報入力部４３に更新情報が入力されると、この更新情報をメモリ５５に取り込む。
【００２９】
そして、ＣＰＵ２は、更新用プログラムにおける内視鏡装置１００の仕向先を設定する（Ｓｔ．１２）。仕向先の情報は、プロセッサ１１が有するメモリ５５に記憶されるが、内視鏡装置１００の工場出荷時に仕向先データが既に登録済みである場合、内視鏡装置１００出荷後の機器設置後にユーザにより登録された場合、未設定のままである場合等、種々の設定状態が考えられる。
【００３０】
そこで、内視鏡装置１００は、更新用プログラムにおける仕向先の設定を図７にフローチャートを示すように行う。即ち、ＣＰＵ２は、内視鏡装置１００のメモリ５５に仕向先データが存在するかを確認して（Ｓｔ．２１）、仕向先データが存在する場合には、この登録された仕向先データに基づいて仕向先を設定する。
【００３１】
仕向先データが存在しない場合には、ＣＰＵ２は、内視鏡装置１００に設定される設定言語が登録済みであるか確認する（Ｓｔ．２２）。
【００３２】
図８に各種の設定言語と、設定言語に対応する国コード及び仕向先との対応関係を表した言語対応テーブルを示す。この言語対応テーブルは、メモリ（言語対応情報記憶手段）５５に予め記憶されているものである。ＣＰＵ２は、設定言語が登録済みである場合に、内視鏡装置１００に設定された設定言語に応じて、言語対応テーブルを参照して仕向先を設定する。即ち、メモリ５５に仕向先データが存在していなくても、設定言語により機器が使用される国が特定できるので、設定言語に基づいて仕向先を設定する（Ｓ２３）。
【００３３】
設定言語が登録されていない場合は、ＣＰＵ２は入力部１７（図１参照）からの仕向先の入力を操作者に促して、操作者からの仕向先入力情報に基づいて設定する（Ｓｔ．２４）。
【００３４】
次に、ＣＰＵ２は、メモリ５５に予め記憶された現在の各プログラムモジュールのバージョン情報（図３参照）と、更新情報のバージョン情報（図４参照）とを比較して、前述したように更新対象となる電子デバイスのプログラムモジュールを特定する（Ｓｔ．１３）。図３，図４に示す情報内容の場合、更新対象となるプログラムモジュールは、モジュール１〜６であるが、仮に更新しないプログラムモジュールが混在する場合には、更新しないプログラムモジュールを更新対象から外せばよい。
【００３５】
ここで、更新対象となる電子デバイスのプログラムモジュールを更新する更新用プログラムは、複数の仕向先にそれぞれ個別に対応する複数の更新モジュールからなる。そして、更新用プログラムは一つのファイルから構成される。ＣＰＵ２は、設定された仕向先に対応する更新モジュールを複数の更新モジュールから選定し、この選定された更新モジュールを用いて、更新対象となるプログラムモジュールを、設定された仕向先に応じた仕様で更新する。
【００３６】
次に、各仕向先に対応する更新モジュールの具体的構成について説明する。
複数の仕向先にそれぞれ個別に対応する複数の更新モジュールは、図９に仕向先毎の仕様を示すように、それぞれ内視鏡装置が異なる仕様となるように作成されている。例えば、仕向先であるＡ国、Ｂ国、Ｃ国、・・・においては、各国の法規制等の事情により、内視鏡挿入部の先端温度や、送気・送水する際の吸引圧力の許容条件がそれぞれ異なる。そこで、仕向先毎に更新モジュールを作成し、この更新モジュールで更新処理を行う。これにより、内視鏡装置の光源に対する最大照明光強度や最大連続点灯時間、吸引ポンプの最大吸引圧力等の各種パラメータに対する許容条件を、仕向先に応じた所定範囲内で動作する仕様に更新できる。
【００３７】
また、図１０に示すように、各電子デバイス対するプログラムモジュール１，２，３，４，・・・を、仕向先に応じて更新の有無を異ならせてもよい。例えば、仕向先がＡ国であればモジュール１，２，３，４を更新するが、仕向先がＢ国であればモジュール３を除いたモジュール１，２，４を更新する。このように、仕向先に応じて各電子デバイスのプログラムモジュールを選択的に更新させることで、仕向先によらず一律に更新する場合よりも更新時間を短縮することができる。
【００３８】
次に、ＣＰＵ２は、仕向先に応じた更新モジュールをそれぞれ特定した後、これら特定された更新モジュールによる更新順序を設定する（Ｓｔ．１４）。このときの各プログラムモジュールの更新順序は、以下の手順で設定する。
【００３９】
まず、特定された更新対象となる電子デバイスを、内視鏡装置１００の機器構成に応じてグループ分けする。グループ分けは、次のルールに従って行う。
【００４０】
（Ａ１）更新の際にコンフィグレーションを実施するＦＰＧＡ等のプログラマブル集積回路を同一グループとする。
このルールによれば、センサ駆動ＦＰＧＡ４５、映像入力ＦＰＧＡ５１、画像処理ＦＰＧＡ５３が同一グループとなる。このグループをグループＡとする。
【００４１】
（Ａ２）システム全体を統括制御する非プログラマブル集積回路（ここではＣＰＵ２）と、このＣＰＵ２とパラレル接続されるプログラマブル集積回路以外の電子デバイスを同一グループとする。
このルールによれば、ＣＰＵ２とパラレル接続される電子デバイスとして、センサ駆動ＦＰＧＡ４５，映像入力ＦＰＧＡ５１，画像処理ＦＰＧＡ５３，ＣＰＵ１が同一のグループ候補として挙げられるが、センサ駆動ＦＰＧＡ４５，映像入力ＦＰＧＡ５１，画像処理ＦＰＧＡ５３は除外する。その結果、ＣＰＵ１とＣＰＵ２が同一グループとなる。このグループをグループＢとする。
【００４２】
そして、ＣＰＵ３はＣＰＵ１とシリアル接続されており、ＣＰＵ２に対してはパラレル接続されていない。よって、残りの電子デバイスであるＣＰＵ３をグループＣとする。
【００４３】
上記のグループ分け処理により、図１１に示すように更新対象となる電子デバイスは下記の３つのグループに分類される。
・グループＡ：センサ駆動ＦＰＧＡ４５，映像入力ＦＰＧＡ５１，画像処理ＦＰＧＡ５３
・グループＢ：ＣＰＵ１，ＣＰＵ２
・グループＣ：ＣＰＵ３
【００４４】
次に、グループ分けされた各電子デバイスに対して、プログラムモジュールの更新順序を設定する（Ｓｔ．２）。
ＣＰＵ２は、各グループ内に複数の電子デバイスが存在する場合に、各電子デバイスのグループ内更新順序を設定する。
グループ内の更新順序は、次のルールに従って設定する。
（Ｂ１）単独で内部リセット可能なＣＰＵを、リブートが必要なＣＰＵより先の更新順序に設定する。
つまり、グループＢにおいては、ＣＰＵ２とは異なる基板に実装されて、単独で内部リセット可能なＣＰＵ１を、回路全体のリブートが必要なＣＰＵ２より先の更新順序に設定する。これにより、リブートの回数を最小化でき、更新時間を短縮化できる。
【００４５】
グループＡにおいては、特に更新順序を規定されることはない。ここでは映像信号の伝送下流側から、画像処理ＦＰＧＡ５３，映像入力ＦＰＧＡ５１，センサ駆動ＦＰＧＡ４５の順番に設定しているが、それぞれの更新は同時であってもよい。
【００４６】
次に、ＣＰＵ２は、各グループ間でグループ単位の更新順序を設定する。
グループ単位の更新順序は、次のルールに従って設定する。
（Ｃ１）プログラマブル集積回路（ＦＰＧＡ）に対しては、ＦＰＧＡに命令信号を入力する非プログラマブル集積回路（ＣＰＵ）より先の更新順序に設定する。
つまり、グループＡを、グループＢ，Ｃより先の更新順序に設定する。
【００４７】
（Ｃ２）システム全体を統括制御する非プログラマブル集積回路（ここではＣＰＵ２）とは異なるグループの非プログラマブル集積回路（ＣＰＵ）は、更新にリブートを要するので、統括制御する非プログラマブル集積回路（ここではＣＰＵ２）のグループを、異なるグループの非プログラマブル集積回路（ＣＰＵ）より先の更新順序に設定する。
つまり、ＣＰＵ２を含むグループＢは、グループＢとは異なりＣＰＵ３を含むグループＣより先の更新順序に設定する。
【００４８】
（Ｃ３）次の更新対象となる電子デバイスのグループが、当該グループの前の更新対象である電子デバイスのグループと異なる場合に、グループ同士の間にリブートを設定する。
【００４９】
以上より、各電子デバイスのプログラムモジュールの更新順序は次の通りになる。なお、リブート処理は、グループ内全ての書き込みの必要がない場合には省略する。
【００５０】
（１）グループＡ：画像処理ＦＰＧＡ５３
（２）グループＡ：映像入力ＦＰＧＡ５１
（３）グループＡ：センサ駆動ＦＰＧＡ４５
−リブート−
（４）グループＢ：ＣＰＵ１
（５）グループＢ：ＣＰＵ２
−リブート−
（６）グループＣ：ＣＰＵ３
【００５１】
内視鏡装置１００は、図１１に示すグループ内更新順序、グループ単位更新順序の登録された更新順序テーブルであるルックアップテーブルＬＵＴをメモリ５５に保存し、このＬＵＴの順序に従ってプログラムモジュールを更新する。
【００５２】
そして、ＣＰＵ２は、設定した更新順序をモニタ１５に出力して、内視鏡装置１００の操作者に通知する。これにより、操作者へのガイダンスが行われる（Ｓｔ．１５）。操作者はモニタ１５に表示されたガイダンスに従って、バージョンアップ処理を開始する（Ｓｔ．１６）。このバージョンアップ処理は、自動で実施することが望ましいが、ステップ毎に手動で実施して、逐次確認しながら実施することであってもよい。
【００５３】
例えば、ＣＰＵ２は、更新するプログラムモジュールをモニタ１５にリスト表示させ、操作者に書き換え開始の指示を入力させる。開始指示が入力されると、ＣＰＵ２はプログラムモジュールの書き換えを開始する。また、これと共に、現在どのプログラムモジュールの書き換えを実施しているのかをモニタ表示色を変化させる等、視覚的に判別できるようにする。そして、一つのプログラムモジュールの書き換えが完了すると一時停止し、操作者からの開始指示待ちにして、開始指示の入力があったときに、次のプログラムモジュールの書き換えを開始する。
【００５４】
以上説明した内視鏡装置１００によれば、電子機器のプログラムモジュールを更新する際に、仕向先に対応する更新モジュールを電子機器が選択することで、操作者に手間を掛けることなく自動的に適正な更新処理を行うことができる。これにより、煩わしい作業を伴うことなく電子デバイスのプログラムモジュールを円滑に更新できる。また、複数の更新モジュールが一つのファイルに収容されて内視鏡装置に供給されるため、プログラムの提供者側にとって更新情報の作成や管理、及び提供が容易となり、低コスト化が図れる。また、更新用プログラムが複数のファイルから構成される場合と比較して、更新用プログラムの読み出しが早くなり、更新時間の短縮化が図れる。
【００５５】
また、内視鏡装置に仕向先が設定されていない場合でも、設定言語が設定されている場合には、設定言語に対応する国が仕向先に設定される。そのため、操作者に仕向先の入力を要請することなく、簡単かつ正確に仕向先を設定することができる。
【００５６】
また、内視鏡装置１００は、プログラムモジュールを更新する際、更新が必要となる電子デバイスを、内視鏡装置１００の機器構成に応じてグループ分けし、予め定めたルールに従って、グループ単位の更新順序と、同一グループ内における更新順序とを設定し、各プログラムモジュールの最適な更新順序を決定する。このため、他の異なる種類の内視鏡スコープ１３に付け替えたり、プロセッサ１１を入れ替えたりする等、内視鏡装置１００の電子デバイス構成に変更が生じても、変更後の機器構成に対する最適な更新順序に設定することができる。
【００５７】
そのため、内視鏡装置１００の操作者は、プログラムモジュールの更新の際、装置構成に応じた更新手順の検討を要することなく、内視鏡装置１００が自動的に決定した最適な更新順序でバージョンアップが行える。また、更新処理の所要時間を短縮でき、誤った操作手順で更新されることも未然に防止できる。
【００５８】
本発明は上記の実施形態に限定されるものではなく、実施形態の各構成を相互に組み合わせることや、明細書の記載、並びに周知の技術に基づいて、当業者が変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。例えば、更新情報入力部４３に供給される更新情報は、メモリ５５に転送してから更新処理を行う以外にも、記憶媒体６３やネットワーク６５に接続されるサーバ等からＣＰＵ２が直接に更新プログラムを起動する構成としてもよい。また、内視鏡装置外部からのトリガ信号を受けて、更新プログラムをステップ実行する等、更新プログラムの実行形態は適宜な変更が可能である。
【００５９】
以上の通り、本明細書には次の事項が開示されている。
（１）  プログラムモジュールによって制御される電子デバイスを複数含み、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器であって、
前記電子機器に設定された仕向先の情報を記憶する仕向先情報記憶手段と、
外部より入力され前記複数の電子デバイスに対する更新用プログラムを記憶する更新情報記憶手段と、
更新対象となる前記電子デバイスのプログラムモジュールを、前記更新情報記憶手段に記憶されている更新用プログラムによりそれぞれ更新する更新実行手段と、
を備え、
前記更新用プログラムが、複数の仕向先にそれぞれ個別に対応する複数の更新モジュールから構成され、
前記更新実行手段が、前記仕向先情報記憶手段に記憶された仕向先の情報に対応する前記更新モジュールを前記複数の更新モジュールから選定し、該選定された更新モジュールを用いて前記プログラムモジュールを更新する電子機器。
この電子機器によれば、仕向先情報記憶手段に記憶された仕向先の情報に応じて、外部から入力された更新用プログラムから仕向先に対応する更新モジュールを選定することで、仕向先に応じたプログラムモジュールへの適正な更新を、自動で行うことができる。
【００６０】
（２）  （１）の電子機器であって、
前記更新用プログラムが、前記複数の更新モジュールを含む一つのファイルから構成される電子機器。
この電子機器によれば、複数の更新モジュールが一つのファイルに収容されることで、複数ファイルから構成される場合と比較して、複数の内視鏡装置への更新用プログラムの供給や、内視鏡装置に更新用プログラムを取り込む作業が容易となる。
【００６１】
（３）  （１）又は（２）の電子機器であって、
前記複数の電子デバイスそれぞれについて、前記プログラムモジュールの現在のバージョン情報を、前記更新用プログラムにより更新されるプログラムモジュールのバージョン情報と比較し、前記更新の対象となる電子デバイスを自動的に特定する更新対象特定手段を備えた電子機器。
この電子機器によれば、更新対象となる電子デバイスを自動的に特定でき、操作者の操作ミス等の影響を受けることがなく、正確かつ円滑に更新処理を実施できる。
【００６２】
（４）  （１）〜（３）のいずれか一つの電子機器であって、
各種の設定言語と、該設定言語に対応する国コードとの対応関係を表した言語対応テーブルが記憶された言語対応情報記憶手段と、
前記電子機器に設定された設定言語を検出し、該検出された設定言語に対する国コードを前記言語対応テーブルを参照して求め、前記求めた国コードに応じて前記仕向先を設定する仕向先設定手段と、
を備えた電子機器。
この電子機器によれば、仕向先が設定されていない場合であっても、設定言語に対応する仕向先が設定されるため、操作者に仕向先の入力を要請することなく、簡単に仕向先を設定できる。
【００６３】
（５）  （１）〜（４）のいずれか一つの電子機器であって、
前記更新用プログラムが更新する前記プログラムモジュールの数が、前記仕向先毎に異なっている電子機器。
この電子機器によれば、更新用プログラムが仕向先毎にそれぞれ異なる更新処理を行うことで、仕向先によらず一律に更新する場合より、更新に要する時間を短縮できる。
【００６４】
（６）  （１）〜（５）のいずれか一つの電子機器であって、
該電子機器は、内視鏡挿入部先端から照明光を出射する照明光学系と、撮像素子により撮像画像を生成する撮像光学系とを有する内視鏡装置を構成し、
前記仕向先に応じて前記内視鏡装置の仕様を変更する電子機器。
この電子機器によれば、仕向先に応じて各電子デバイスのプログラムモジュールを更新することで、仕向先に応じた異なる仕様にすることができる。
【００６５】
（７）  プログラムモジュールによって制御される電子デバイスを複数含み、当該複数の電子デバイスのプログラムモジュールを更新する機能を有する電子機器のプログラムモジュール更新方法であって、
複数の仕向先にそれぞれ個別に対応する複数の更新モジュールから構成され、外部より入力される前記複数の電子デバイスに対する更新用プログラムを、更新情報記憶手段に記憶させるステップと、
前記電子機器に設定された仕向先に対応する更新モジュールを、前記複数の更新モジュールから選定するステップと、
更新対象となる前記電子デバイスに対して、該電子デバイスのプログラムモジュールを、前記選定された更新モジュールにより更新するステップと、
を含む電子機器のプログラムモジュール更新方法。
このプログラムモジュール更新方法によれば、設定された仕向先に応じて、外部から入力された更新用プログラムから、この仕向先に対応する更新モジュールを選定することで、仕向先に応じたプログラムモジュールへの適正な更新を、自動で行うことができる。
【符号の説明】
【００６６】
１１  プロセッサ
１３  内視鏡スコープ
１５  モニタ
１７  入力部
３７  撮像素子
４１  ＲＯＭ
４３  更新情報入力部
４５  センサ駆動ＦＰＧＡ
４７  ＲＯＭ
４９  ＲＯＭ
５１  映像入力ＦＰＧＡ
５３  画像処理ＦＰＧＡ
５５  メモリ
５７  ＲＯＭ
５９  ＲＯＭ
６１  ＲＯＭ
６３  記憶媒体
１００  内視鏡装置
【図１】
0005690656.tif 000002
【図２】
0005690656.tif 000003
【図３】
0005690656.tif 000004
【図４】
0005690656.tif 000005
【図５】
0005690656.tif 000006
【図６】
0005690656.tif 000007
【図７】
0005690656.tif 000008
【図８】
0005690656.tif 000009
【図９】
0005690656.tif 000010
【図１０】
0005690656.tif 000011
【図１１】
0005690656.tif 000012