(57)【特許請求の範囲】
【請求項１】
プログラムを記録する記録部と、
前記記録部にプログラムを書き込み、前記記録部に記録されているプログラムを実行する制御部とを備え、
前記記録部は、前記制御部が実行するプログラムを記録する第１の領域と、圧縮されたプログラムを記録する第２の領域とを有し、
前記制御部は、外部から受信した圧縮されたプログラムを解凍して前記第１の領域に書き込み、前記第１の領域に書き込まれたプログラムが動作することを検知した後に、前記第１の領域に書き込まれたプログラムを圧縮して前記第２の領域に書き込む電子内視鏡。
【請求項２】
前記プログラムは、電子内視鏡に固有の識別符号を有し、
前記制御部は、電子内視鏡と識別符号とが対応するときに、圧縮されたプログラムを解凍して前記第１の領域に書き込む請求項１に記載の電子内視鏡。
【請求項３】
請求項１に記載の電子内視鏡と、
前記電子内視鏡に接続されるビデオプロセッサとを備え、
前記ビデオプロセッサは、前記プロセッサの動作を制御するプロセッサ制御部を有し、
前記電子内視鏡は、前記プロセッサ制御部に情報を送信し、
前記プロセッサ制御部は、前記電子内視鏡から受信した情報に誤りがあったとき誤りに関する誤り情報を蓄積し、誤り情報が所定の条件に合致したとき前記制御部に復帰命令を送信し、
前記制御部は、前記復帰命令を受信したとき、前記第２の領域に書き込まれたプログラムを解凍して前記第１の領域に書き込む電子内視鏡システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新可能なファームウェアを有する電子内視鏡及びシステムに関する。
【背景技術】
【０００２】
電子内視鏡システムは、被験者の体内に挿入される電子内視鏡と被験者の体外に設けられて画像処理を行うビデオプロセッサとを備える。電子内視鏡の動作を制御するＭＰＵと、ＭＰＵのファームウェアを記録するメモリとが電子内視鏡の内部に設けられる。
【０００３】
ユーザは、外部とのインターフェースを介して、メモリに記憶されたファームウェアを書き換え可能である（特許文献１及び２）。ファームウェアは、画像やプログラムなど様々な情報を含み、電子内視鏡の性能を向上し、かつ機能を追加するために書き換えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５１５９２２号公報
【特許文献２】特開２００５−１８５６９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電子内視鏡の性能を向上し、かつ機能を追加するたびに、ファームウェアの大きさが大きくなる傾向がある。ファームウェアが大きくなるとファームウェアをメモリに送信する時間が長くなる。また、ファームウェアに様々な情報を含ませると、ファームウェア内部において各情報の境界を見つけることが困難になり、ファームウェアに含まれる例えば画像の一部のみが破損した場合であってもプログラムを読み込むことができなくなる。プログラムを読み込むことができなくなったＭＰＵは動作を停止するため、電子内視鏡自体もまた機能を停止する。
【０００６】
本発明はこれらの問題に鑑みてなされたものであり、ファームウェアを迅速にメモリに書き込み、かつ書き込みが失敗しても電子内視鏡の動作が機能する電子内視鏡及びシステムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本願第１の発明による電子内視鏡は、プログラムを記録する記録部と、記録部にプログラムを書き込み、記録部に記録されているプログラムを実行する制御部とを備え、記録部は、制御部が実行するプログラムを記録する第１の領域と、圧縮されたプログラムを記録する第２の領域とを有し、制御部は、外部から受信した圧縮されたプログラムを解凍して第１の領域に書き込み、第１の領域に書き込まれたプログラムが動作することを検知した後に、第１の領域に書き込まれたプログラムを圧縮して第２の領域に書き込むことを特徴とする。
【０００８】
プログラムは、電子内視鏡に固有の識別符号を有し、制御部は、電子内視鏡と識別符号とが対応するときに、圧縮されたプログラムを解凍して第１の領域に書き込むことが好ましい。
【０００９】
本願第２の発明による電子内視鏡システムは、前記電子内視鏡と、電子内視鏡に接続されるビデオプロセッサとを備え、ビデオプロセッサは、プロセッサの動作を制御するプロセッサ制御部を有し、電子内視鏡は、プロセッサ制御部に情報を送信し、プロセッサ制御部は、電子内視鏡から受信した情報に誤りがあったとき誤りに関する誤り情報を蓄積し、誤り情報が所定の条件に合致したとき制御部に復帰命令を送信し、制御部は、復帰命令を受信したとき、第２の領域に書き込まれたプログラムを解凍して第１の領域に書き込むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ファームウェアを迅速にメモリに書き込み、かつ書き込みが失敗しても電子内視鏡の動作が機能する電子内視鏡及びシステムを得る。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態による電子内視鏡システムを示した概略図である。
【図２】ファームウェア及び圧縮ファイルの構造を模式的に示した図である。
【図３】メモリの各領域に記憶されるプログラムを示した図である。
【図４】第１のアップデート処理を示すフローチャートである。
【図５】復帰指示処理を示すフローチャートである。
【図６】復帰処理を示すフローチャートである。
【図７】第２の実施形態によるファームウェア及び圧縮ファイルの構造を模式的に示した図である。
【図８】第２のアップデート処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明による電子内視鏡システム１００について添付図面を参照して説明する。
【００１３】
図１を用いて電子内視鏡システム１００の構成について説明する。電子内視鏡システム１００は、被験者の体内に挿入される電子内視鏡２００と、被験者の体外に設けられて画像処理を行うビデオプロセッサ３００とを主に備える。
【００１４】
電子内視鏡２００は、被験者の体内に挿入される挿入部２１０と、術者が保持する操作部２２０とを主に備える。図示しないコネクタにより操作部２２０が電子内視鏡２００と接続される。
【００１５】
挿入部２１０は、可撓性の管状体であって、被写体に接近する遠位端部２１１と操作部２２０に接続される近位端部２１２とを有する。遠位端部２１１には、撮像レンズ２１３、照明レンズ２１４、及び撮像素子であるＣＣＤ２１５が設けられる。
【００１６】
撮像レンズ２１３はＣＣＤ２１５に被写体像を結像させる。ＣＣＤ２１５は結像した被写体像を撮像し、アナログ信号出力線２１６を介してアナログ画像信号を出力する。
【００１７】
操作部２２０から挿入部２１０に渡ってライトガイドファイバ２１８が設けられる。ライトガイドファイバ２１８は、ビデオプロセッサ３００が生成した照明光を照明レンズ２１４まで運び、照明レンズ２１４は、照明光を被写体に向けて照射する。
【００１８】
操作部２２０は、アナログ信号処理部２２３、制御部を成す内視鏡ＭＰＵ２２１、及び記録部を成すメモリ２２２を有する。
【００１９】
アナログ信号処理部２２３は、アナログ信号出力線２１６を介してＣＣＤ２１５からアナログ画像信号を受信する。そして、アナログ画像信号を画像処理して画像信号を生成した後、画像信号線２１９を介して画像信号をビデオプロセッサ３００に送信する。
【００２０】
内視鏡ＭＰＵ２２１は、ＣＣＤ制御信号線２１７を介してＣＣＤ制御信号をＣＣＤ２１５に送信し、ＣＣＤ２１５の動作を制御する。内視鏡ＭＰＵ２２１が実行するファームウェアは、メモリ２２２に記憶される。電子内視鏡２００の電源が入れられると、内視鏡ＭＰＵ２２１はメモリ２２２からファームウェアを読み出して実行する。
【００２１】
操作部２２０は、図示しない複数のスイッチ等を有する。ユーザは、これらのスイッチを操作して電子内視鏡及びビデオプロセッサ３００の動作を制御する。これらのスイッチをユーザが操作すると、スイッチが操作された旨を示す操作信号が内視鏡ＭＰＵ２２１に送信される。内視鏡ＭＰＵ２２１は、操作信号に応じて電子内視鏡２００の動作を制御する。また、ビデオプロセッサ３００が行う動作に対応するスイッチが操作されると、内視鏡ＭＰＵ２２１は、操作信号をビデオプロセッサＭＰＵ３０１に送信する。ビデオプロセッサＭＰＵ３０１は、操作信号に応じて電子内視鏡２００の動作を制御する。
【００２２】
ビデオプロセッサ３００は、プロセッサ制御部を成すビデオプロセッサＭＰＵ３０１、外部インターフェース３０２、フロントパネル３０３、画像信号処理部３０４、及び光源３０５を主に有する。
【００２３】
ビデオプロセッサＭＰＵ３０１は、ビデオプロセッサ３００の動作を制御する。内視鏡ＭＰＵ２２１とビデオプロセッサ３００は、ＵＡＲＴを各々有し、制御信号線３１２を介して互いに接続される。外部インターフェース３０２は、例えばＲＳ−２３２Ｃ、あるいはＵＳＢであって、電子内視鏡システム１００の外部に設けられるコンピュータとビデオプロセッサ３００とを接続する。
【００２４】
フロントパネル３０３は、ビデオプロセッサ３００の外面に露出し、内視鏡システムの動作状況を表示する。画像信号処理部３０４は、電子内視鏡２００から受信した画像信号を画像処理して、モニタ４００に出力する。光源３０５はビデオプロセッサ３００に制御され、ライトガイドファイバ２１８に照明光を供給する。
【００２５】
外部に設けられたコンピュータは、外部インターフェース３０２を介して電子内視鏡２００のファームウェアを備えるデータファイルをビデオプロセッサＭＰＵ３０１に送信する。ビデオプロセッサＭＰＵ３０１は、制御信号線３１２を介してデータファイルを内視鏡ＭＰＵ２２１に送信する。
【００２６】
内視鏡ＭＰＵ２２１は、電子内視鏡２００の電源が投入されたときに後述する第１のアップデート処理を実行し、メモリ２２２に記録されているファームウェアを書き換える。また、メモリ２２２に記録されているファームウェアが破損したときに、正常なファームウェアをメモリ２２２に書き込む復帰処理を実行する。
【００２７】
次に図２を用いてメモリ２２２の構造、第１のアップデート処理、及び復帰処理の概略について説明する。
【００２８】
メモリ２２２は、第１の領域２２４及び第２の領域２２５を有する。第１の領域２２４は、内視鏡ＭＰＵ２２１が実行するファームウェアを記憶する。第２の領域２２５は、圧縮されたファームウェアを記憶する。
【００２９】
ステップＳ２１からステップＳ２３は、第１のアップデート処理の概略を表す。ステップＳ２１では、現在実行中のファームウェアＡが第１の領域２２４に記憶されており、ファームウェアＡを圧縮して得られる圧縮データＡｃが第２の領域２２５に記憶されている。
【００３０】
ステップＳ２２は、第２の領域２２５に記憶されている圧縮データが書き換えられた状態を表す。新たなファームウェアＢを有するデータファイルが外部から読み込まれ、データファイルからヘッダ領域５１０を取り除くことにより、新たな圧縮データＢｃが作成される。そして、第２の領域に記憶されている圧縮データＡｃが新たな圧縮データＢｃに書き換えられる。
【００３１】
ステップＳ２３では、圧縮データＢｃを解凍してファームウェアＢを作成し、このファームウェアＢを第１の領域２２４に記憶する。
【００３２】
以上により、第１のアップデート処理が完了する。
【００３３】
ステップＳ２４は復帰処理の概略を表す。復帰処理は、ビデオプロセッサＭＰＵ３０１から復帰命令を内視鏡ＭＰＵ２２１が受信したときに、内視鏡ＭＰＵ２２１によって実行される。
【００３４】
第１の領域２２４に記憶されているファームウェアＢが何らかの原因により破損したとき、電子内視鏡２００からビデオプロセッサ３００に送信される様々な信号にエラーが生じる。ビデオプロセッサＭＰＵ３０１は、これらのエラーを検出し、エラーの数が所定数に達したときに、内視鏡ＭＰＵ２２１に復帰命令を発信する。エラーを検出して復帰命令を発信する処理を復帰指示処理と呼ぶ。
【００３５】
復帰命令を受信した内視鏡ＭＰＵ２２１は、第２の領域２２５に記憶されている圧縮データＢｃを解凍して新たなファームウェアＢｄを作成する。そして、このファームウェアＢｄを第１の領域２２４に記憶する。そして、新たに第１の領域２２４に記憶されたファームウェアＢｄを実行する。以上により、復帰処理が完了する。
【００３６】
次に、図３を用いて本実施形態におけるデータファイルについて説明する。
【００３７】
データファイルは、電子内視鏡システム１００の外部に設けられたコンピュータにより予め作成されている。電子内視鏡２００のファームウェア５４０を備えるデータファイルは、ヘッダ領域５１０と圧縮データ領域５２０とから成る。ヘッダ領域５１０は、データファイルの先頭部分に設けられ、対象装置識別子を記録する装置識別領域５１１と、ファームウェアのバージョン情報を記録するバージョン記録領域５１２とを有する。対象装置識別子は、ファームウェアが対応する電子内視鏡２００の識別子を示す。電子内視鏡２００の識別子は、１種類の電子内視鏡２００に固有の値である。対象装置識別子及びバージョン情報は英数字で構成される。図示した例では、対象装置識別子は「１」であり、バーション情報は「４」である。対象装置識別子及びバージョン情報が識別情報を構成する。
【００３８】
圧縮データ領域５２０は、データファイルにおいてヘッダ領域５１０に次いで設けられ、ファームウェア５４０を圧縮して得られた圧縮データ５３０を記録する。圧縮は、例えばランレングス符号化方式による。
【００３９】
次に、図４を用いて第１のアップデート処理について説明する。第１のアップデート処理は、電子内視鏡２００の電源が投入されたときに実行される。電子内視鏡２００の電源が前回切断される前に、ファームウェアを含むデータファイルがメモリ２２２に記憶される。
【００４０】
まず、ステップＳ４１では、ファームウェアを書き換えるために用いるアップデートプログラムを内視鏡ＭＰＵ２２１が起動する。アップデートプログラムは、ファームウェア内に記録されている。
【００４１】
次にステップＳ４２では、内視鏡ＭＰＵ２２１がメモリ２２２からデータファイルを読み込む。そして、ステップＳ４３において、ヘッダ領域５１０から識別情報を読み取る。
【００４２】
ステップＳ４４では、電子内視鏡２００の識別子が対象装置識別子と一致するか、及びバージョン情報が現在第１の領域に記憶されているファームウェアよりも新しいかを判断する。対象装置識別子と一致し、かつバージョン情報が新しい場合、処理はステップＳ４６に進む。そうでない場合、処理はステップＳ４５に進む。
【００４３】
ステップＳ４５では、アップデートプログラムを終了して、処理がステップＳ４８に進む。
【００４４】
ステップＳ４６では、データファイルからヘッダ領域５１０を取り除くことにより、新たな圧縮データＢｃが作成される。そして、第２の領域２２５に記憶されている圧縮データＡｃが新たな圧縮データＢｃに書き換えられる（図２のステップＳ２２参照）。
【００４５】
ステップＳ４７では、圧縮データＢｃを解凍してファームウェアＢを作成し、このファームウェアＢを第１の領域２２４に記憶する（図２のステップＳ２３参照）。
【００４６】
次のステップＳ４８では、電子内視鏡２００をリセット、すなわち再起動する。そして電子内視鏡２００の一般処理、つまり通常の観察動作を行う。
【００４７】
以上により、第１のアップデート処理が完了する。
【００４８】
次に、図５を用いて復帰指示処理について説明する。復帰指示処理は、ビデオプロセッサ３００に電子内視鏡２００が接続されたときに開始される。
【００４９】
スイッチが操作された旨を示す操作信号をビデオプロセッサＭＰＵ３０１が受信すると、ステップＳ５１において、受信した操作信号にエラーが含まれているかを検出する。操作信号は、ユーザがスイッチを操作してホワイトバランスを変更したり、画像を拡大縮小したりするときに送信される。
【００５０】
また、アナログ信号処理部２２３から送られた画像信号をビデオプロセッサＭＰＵ３０１が受信すると、ステップＳ５２において、画像信号が有する色情報にエラーが含まれているかを検出する。色情報は、電子内視鏡各々が有する色の特性、例えばゲイン値であって、電子内視鏡固有の値である。
【００５１】
そして、ステップＳ５３では、ステップＳ５１及びＳ５２において検出したエラーの数を積算する。
【００５２】
次のステップＳ５４では、ステップＳ５３において積算したエラーの数が所定数を超えたか否かを判断する。所定数を超えた場合、電子内視鏡２００のファームウェアが破損していると判断し、処理がステップＳ５５に進む。所定数を超えない場合、電子内視鏡２００のファームウェアは正常であると判断し、処理がステップＳ５６に進む。
【００５３】
ステップＳ５５では、ビデオプロセッサＭＰＵ３０１が、復帰命令を内視鏡ＭＰＵ２２１に送信する。そして、ステップＳ５６に進む。
【００５４】
ステップＳ５６では、ビデオプロセッサ３００の一般的な処理を行い、処理が終了する。
【００５５】
次に、図２及び６を用いて復帰処理について説明する。復帰処理は、内視鏡ＭＰＵ２２１が復帰命令を受信したときに実行される。
【００５６】
内視鏡ＭＰＵ２２１が復帰命令を受信すると、ステップＳ６１において、第２の領域２２５に記憶されている圧縮データＢｃを読み出す（図２のステップＳ２４参照）。
【００５７】
次のステップＳ６２では、圧縮データＢｃを解凍してファームウェアＢｄを作成し、ファームウェアＢｄを第１の領域２２４に書き込む。
【００５８】
ステップＳ６３では、ファームウェアＢｄが正常に動作するかを確認する。正常に動作しない場合、ファームウェアＢｄが破損していると判断し、ステップＳ６１に戻る。そして、圧縮データＢｃを再度解凍してファームウェアＢｄを第１の領域２２４に再度書き込む。正常に動作する場合、ファームウェアＢｄは破損していないと判断し、ステップＳ６４に進む。
【００５９】
ステップＳ６４では、電子内視鏡２００の一般的な処理を行い、処理が終了する。
【００６０】
本実施形態によれば、圧縮したファームウェアを内視鏡システムに送信することにより、送信時間を短縮できる。また、第２の領域２２５に圧縮したファームウェアを記憶しておくことにより、第１の領域２２４に記憶したファームウェアが破損しても、第２の領域２２５に記憶している圧縮データを解凍して新たなファームウェアとして使用することにより、電子内視鏡２００が使用不可能となることがない。さらに、データファイルのヘッダ領域５１０に識別情報を付加することにより、対応するファームウェアのみを第１の領域２２４に書き込むことができる。そして、圧縮したファームウェアと識別情報とを１つのデータファイルにすることにより、第三者がファームウェアを解析することが困難となる。
【００６１】
次に、図７及び８を用いて第２の実施形態について説明する。第１の実施形態と同様の構成については同じ符号を付して説明を省略する。第２の実施形態による内視鏡システムは、第１のアップデート処理の代わりに、その一部が異なる第２のアップデート処理を実行する。
【００６２】
ステップＳ７１からステップＳ７３は、第２のアップデート処理の概略を表す。ステップＳ７１では、現在実行中のファームウェアＡが第１の領域２２４に記憶されており、第１の領域２２４に記憶されているファームウェアを圧縮して得られる圧縮データＡｃが第２の領域２２５に記憶されている。
【００６３】
ステップＳ７２は、第１の領域２２４に記憶されているファームウェアが書き換えられた状態を表す。まず、第１の領域２２４に記憶されているファームウェアＡを圧縮して圧縮データＡｃｃを作成し、この圧縮データＡｃｃを第２の領域２２５に記憶する。そして、第１の領域２２４に記憶されているファームウェアＡが新たなファームウェアＢに書き換えられ、新たなファームウェアＢが第１の領域２２４に記憶される。
【００６４】
ステップＳ７３では、ファームウェアＢが正常に動作するかを確認した後、ファームウェアＢを圧縮して圧縮データＢｃを作成し、この圧縮データＢｃを第２の領域２２５に記憶する。
【００６５】
以上により、第２のアップデート処理が完了する。
【００６６】
次に、図７及び８を用いて第２のアップデート処理について説明する。ステップＳ４１からＳ４５、ステップＳ４８、及びステップＳ４９は第１のアップデート処理と同様であるため、説明を省略する。
【００６７】
ステップＳ４４において、電子内視鏡２００の識別子が対象装置識別子と一致し、かつバージョン情報が現在第１の領域２２４に記憶されているファームウェアよりも新しい場合、ステップＳ８６を実行する。ステップＳ８６では、第１の領域２２４に記憶されているファームウェアＡを圧縮して圧縮データＡｃｃを作成し、この圧縮データＡｃｃを第２の領域２２５に記憶する（図７のステップＳ７２参照）。
【００６８】
次のステップＳ８７では、第１の領域２２４に記憶されているファームウェアＡを新たなファームウェアＢで書き換える。これにより、新たなファームウェアＢが第１の領域２２４に記憶される。そして、ファームウェアＢが正常に動作するかを確認した後、ファームウェアＢを圧縮して圧縮データＢｃを作成し、この圧縮データＢｃを第２の領域２２５に記憶する（図７のステップＳ７３参照）。その後、処理がステップＳ４８に進む。
【００６９】
本実施形態によれば、新たに書き込んだファームウェアが正常に動作することを確認した上で第２の領域２２５に圧縮データを記憶するため、ファームウェアの書き換えにより電子内視鏡２００が動作しなくなる可能性を第１の実施形態よりも低減できる。
【００７０】
いずれの実施形態においても、対象装置識別子及びバージョン情報は英数字で構成されなくても良い。対象装置識別子は数字でなく、ファームウェアが対応する電子内視鏡２００の名前であってもよい。
【００７１】
さらに、外部に設けられたコンピュータに制御信号線３１２を直接接続することによって、電子内視鏡２００とコンピュータとを接続し、コンピュータから電子内視鏡２００にデータファイルを直接送信しても良い。
【００７２】
なお、撮像素子はＣＣＤ２１５に限定されない。
【符号の説明】
【００７３】
１００  電子内視鏡システム
２００  電子内視鏡
２１０  挿入部
２１１  遠位端部
２１２  近位端部
２１３  撮像レンズ
２１４  照明レンズ
２１５  ＣＣＤ
２１６  アナログ信号出力線
２１７  ＣＣＤ制御信号線
２１８  ライトガイドファイバ
２１９  画像信号線
２２０  操作部
２２１  内視鏡ＭＰＵ
２２２  メモリ
２２３  アナログ信号処理部
２２４  第１の領域
２２５  第２の領域
３００  ビデオプロセッサ
３０１  ビデオプロセッサＭＰＵ
３０２  外部インターフェース
３０３  フロントパネル
３０４  画像信号処理部
３０５  光源
３１２  制御信号線
４００  モニタ
５１０  ヘッダ領域
５１１  装置識別領域
５１２  バージョン記録領域
５２０  圧縮データ領域
【図１】
0005439263.tif 000002
【図２】
0005439263.tif 000003
【図３】
0005439263.tif 000004
【図４】
0005439263.tif 000005
【図５】
0005439263.tif 000006
【図６】
0005439263.tif 000007
【図７】
0005439263.tif 000008
【図８】
0005439263.tif 000009