(57)【要約】【課題】不揮発性メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新を容易にすることが可能な技術を提供する。【解決手段】デバイスを接続するための接続部、及び、前記デバイスを制御するためのソフトウェアを記憶する所定サイズの記憶領域を有する不揮発性メモリーを備える電子装置であって、前記接続部に接続された対象デバイスから該対象デバイスの種類を識別する識別情報を得るデバイス識別部と、前記識別情報に対応付けられた新しい対象ソフトウェアを前記記憶領域において格納することが可能な格納場所を前記記憶領域のソフトウェアの格納状態に基づいて決定する格納場所決定部と、サーバーから前記対象ソフトウェアをダウンロードして前記格納場所に格納する格納処理部と、を備える、電子装置。【選択図】図４
2017078940.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを接続するための接続部、及び、前記デバイスを制御するためのソフトウェアを記憶する所定サイズの記憶領域を有する不揮発性メモリーを備える電子装置であって、
前記接続部に接続された対象デバイスから該対象デバイスの種類を識別する識別情報を得るデバイス識別部と、
前記識別情報に対応付けられた新しい対象ソフトウェアを前記記憶領域において格納することが可能な格納場所を前記記憶領域のソフトウェアの格納状態に基づいて決定する格納場所決定部と、
サーバーから前記対象ソフトウェアをダウンロードして前記格納場所に格納する格納処理部と、を備える、電子装置。
【請求項２】
前記記憶領域は、複数の分割領域を含み、
前記格納場所決定部は、前記分割領域の単位で前記格納場所を決定する、請求項１に記載の電子装置。
【請求項３】
前記格納場所決定部は、前記複数の分割領域のうち実行可能なソフトウェアが格納されていない分割領域から前記格納場所を決定する、請求項２に記載の電子装置。
【請求項４】
前記記憶領域に記憶されているソフトウェアの格納場所を、前記複数の分割領域のうち実行可能なソフトウェアが格納されていない分割領域が連続するように変更する格納場所調整部をさらに備える、請求項２又は請求項３に記載の電子装置。
【請求項５】
前記格納場所決定部は、前記記憶領域に前記対象ソフトウェアを格納することができなくなっている場合、前記対象ソフトウェアを格納することができるように前記記憶領域に記憶されているソフトウェアを削除する、請求項１〜請求項４のいずれか一項に記載の電子装置。
【請求項６】
前記新しい対象ソフトウェアが前記記憶領域に記憶されているか否かを前記識別情報に基づいて判断する判断部をさらに備え、
前記格納場所決定部は、前記対象ソフトウェアが記憶されていないと判断されると前記対象ソフトウェアの格納場所を前記記憶領域のソフトウェアの格納状態に基づいて決定する、請求項１〜請求項５のいずれか一項に記載の電子装置。
【請求項７】
前記判断部は、前記対象デバイスを制御するためのソフトウェアが前記記憶領域に記憶されている場合、前記サーバーに前記対象デバイスを制御するためのソフトウェアのバージョンを問い合わせ、得られるバージョンが前記記憶領域に記憶されているソフトウェアのバージョンよりも新しいときに前記新しい対象ソフトウェアが前記記憶領域に記憶されていないと判断し、
前記格納場所決定部は、前記対象デバイスを制御するための古いバージョンのソフトウェアが格納されている場所の少なくとも一部を含むように前記対象ソフトウェアの格納場所を決定する、請求項６に記載の電子装置。
【請求項８】
前記記憶領域に記憶されているソフトウェアの格納場所と、該ソフトウェアを識別するソフトウェア識別情報と、を対応付けて管理テーブルを記憶する管理テーブル記憶部をさらに備え、
前記判断部は、前記管理テーブルに含まれるソフトウェア識別情報と、前記デバイス識別部で得られた識別情報と、に基づいて前記新しい対象ソフトウェアが前記記憶領域に記憶されているか否かを判断する、請求項６又は請求項７に記載の電子装置。
【請求項９】
前記識別情報は、前記対象デバイスの種類が識別される場合と識別されない場合とがある第一情報を含み、該第一情報で前記対象デバイスの種類が識別されない場合に該第一情報と合わせて前記対象デバイスの種類が識別される第二情報を含み、
前記デバイス識別部は、前記第一情報で前記対象デバイスの種類が識別される場合に該第一情報を前記識別情報として特定し、前記第一情報で前記対象デバイスの種類が識別されない場合に該第一情報と前記第二情報とを合わせて前記識別情報として特定する、請求項１〜請求項８のいずれか一項に記載の電子装置。
【請求項１０】
前記複数の分割領域に実行可能なソフトウェアが格納されていない分割領域が無くなると前記複数の分割領域のうち一部の分割領域に格納されているソフトウェアを削除する格納場所確保部をさらに備える、請求項２〜請求項４のいずれか一項に記載の電子装置。
【請求項１１】
デバイスを接続するための接続部、及び、前記デバイスを制御するためのソフトウェアを記憶する所定サイズの記憶領域を有する不揮発性メモリーを備える電子装置の制御方法であって、
前記接続部に接続された対象デバイスから該対象デバイスの種類を識別する識別情報を得る工程と、
前記識別情報に対応付けられた新しい対象ソフトウェアを前記記憶領域において格納することが可能な格納場所を前記記憶領域のソフトウェアの格納状態に基づいて決定する工程と、
サーバーから前記対象ソフトウェアをダウンロードして前記格納場所に格納する工程と、を含む、電子装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスを接続可能な電子装置、及び、その制御方法に関する。
【背景技術】
【０００２】
プリンター、スキャナー、コピー機、ファクシミリ、これらを組み合わせた複合機、といった画像処理装置等の電子装置には、種々の周辺デバイスを接続可能である。このような周辺デバイスには、いわゆるＩＤカードを含むＩＣ（Integrated Circuit）カードのリーダー、ＨＩＤ（Human Interface Device）、といったＵＳＢ（Universal Serial Bus）デバイス等がある。周辺デバイスを制御するためのファームウェア（ソフトウェア）は、例えば、電子装置のフラッシュメモリー（不揮発性半導体メモリー）に記憶される。フラッシュメモリーは、コストの点でデータ容量が限られる。
【０００３】
尚、特許文献１には、パーソナルコンピューターが周辺装置からデバイスドライバーをダウンロードし単純に磁気媒体の空き領域にインストールすることが示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３５３０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、プリンターの発売後、このプリンターに接続可能なＵＳＢデバイスが新たに製品化された場合、プリンターのフラッシュメモリーに記憶されているファームウェアではＵＳＢデバイスを制御することができない。上述した技術では、プリンターの発売後に製品化されたＵＳＢデバイスに対応させるため、メーカーがプリンター全体に関わるファームウェアを提供し、このようなファームウェアにユーザーがアップデートする必要がある。未対応であったＵＳＢデバイスの制御ソフトウェアのみを更新する場合でも、ファームウェア全体を更新する必要がある。このため、ファームウェア全体を更新するメーカーの作業コストがかかり、また、各種ＵＳＢデバイスが正常に動作することを担保するために十分な日程が必要となりファームウェアの提供に時間がかかってしまう。ファームウェアの内、あるＵＳＢデバイスのための制御ソフトウェアだけをバージョンアップする場合も、同様である。特許文献１には、デバイスドライバーをダウンロードするパーソナルコンピューターが示されているだけであり、前述の課題を解決するための示唆が無い。
尚、上記のような課題は、スキャナー等、種々の電子装置について同様に存在する。
【０００６】
以上を鑑み、本発明の目的の一つは、不揮発性メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新を容易にすることが可能な技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的の一つを達成するため、本発明は、デバイスを接続するための接続部、及び、前記デバイスを制御するためのソフトウェアを記憶する所定サイズの記憶領域を有する不揮発性メモリーを備える電子装置であって、
前記接続部に接続された対象デバイスから該対象デバイスの種類を識別する識別情報を得るデバイス識別部と、
前記識別情報に対応付けられた新しい対象ソフトウェアを前記記憶領域において格納することが可能な格納場所を前記記憶領域のソフトウェアの格納状態に基づいて決定する格納場所決定部と、
サーバーから前記対象ソフトウェアをダウンロードして前記格納場所に格納する格納処理部と、を備える、態様を有する。
【０００８】
また、本発明は、電子装置の制御方法の態様を有する。
【０００９】
上述した態様では、対象デバイスを制御するための新しい対象ソフトウェアを所定サイズの記憶領域において格納することが可能な格納場所が記憶領域のソフトウェアの格納状態に基づいて決定され、サーバーから対象ソフトウェアがダウンロードされて前記格納場所に格納される。このことから、記憶領域のデバイス制御ソフトウェアのうち更新が必要な一部だけが更新され、記憶領域のデバイス制御ソフトウェア全体を更新する必要は無い。従って、上述した態様は、不揮発性メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新を容易にすることが可能な技術を提供することができる。
【００１０】
さらに、本発明は、上記電子装置を含む電子システム、電子システムの制御方法、上記電子装置の制御プログラム、電子システムの制御プログラム、これらのプログラムを記録したコンピューター読み取り可能な媒体、等に適用可能である。上記電子装置は、分散した複数の部分で構成されてもよい。
【図面の簡単な説明】
【００１１】
【図１】電子システムの例を模式的に示すブロック図。
【図２】電子装置の不揮発性メモリーに設けられた管理テーブル記憶部、及び、記憶領域の例を模式的に示す図。
【図３】サーバーに記憶される制御ソフトウェアの例を模式的に示す図。
【図４】デバイスが接続された時の接続処理の例を示すフローチャート。
【図５】制御ソフトウェア検索処理の例を示すフローチャート。
【図６】対象ソフトウェア格納処理の例を示すフローチャート。
【図７】ソフトウェア削除処理の例を示すフローチャート。
【図８】管理テーブルのソフトウェア識別情報の具体例を模式的に示す図。
【図９】ソフトウェアを削除して対象ソフトウェアを格納する例を模式的に示す図。
【図１０】ソフトウェアの格納場所を変更して対象ソフトウェアを格納する例を模式的に示す図。
【図１１】対象ソフトウェアの格納により空き領域が無くなると一部のソフトウェアを削除する処理の例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を説明する。むろん、以下の実施形態は本発明を例示するものに過ぎず、実施形態に示す特徴の全てが発明の解決手段に必須になるとは限らない。
【００１３】
（１）本技術の概要：
まず、図１〜１１を参照して本技術の概要を説明する。尚、図１〜１１は模式的に示す図であり、各図は整合していないことがある。
【００１４】
［態様１］
図１等に例示される電子装置（例えば複合機１００）は、デバイス（例えばＵＳＢデバイス３００）を接続するための接続部Ｕ１、不揮発性メモリー（例えば不揮発性半導体メモリー１１３）、デバイス識別部Ｕ２、格納場所決定部Ｕ３、及び、格納処理部Ｕ４を備える。図２に例示するように、前記不揮発性メモリー（１１３）は、前記デバイス（３００）を制御するためのソフトウェアＳを記憶する所定サイズの記憶領域２００を有する。前記デバイス識別部Ｕ２は、前記接続部Ｕ１に接続された対象デバイス３０１から該対象デバイス３０１の種類を識別する識別情報８００を得る。図４，６に例示するように、前記格納場所決定部Ｕ３は、前記識別情報８００に対応付けられた新しい対象ソフトウェアＳｔを前記記憶領域２００において格納することが可能な格納場所Ａ２を前記記憶領域２００のソフトウェアＳの格納状態に基づいて決定する。前記格納処理部Ｕ４は、サーバー４００から前記対象ソフトウェアＳｔをダウンロードして前記格納場所Ａ２に格納する。
【００１５】
上記態様１では、対象デバイス３０１を制御するための新しい対象ソフトウェアＳｔを所定サイズの記憶領域２００において格納することが可能な格納場所Ａ２が記憶領域２００のソフトウェアＳの格納状態に基づいて決定され、サーバー４００から対象ソフトウェアＳｔがダウンロードされて前記格納場所Ａ２に格納される。このことから、記憶領域２００のデバイス制御ソフトウェアのうち更新が必要な一部だけが更新され、記憶領域２００のデバイス制御ソフトウェア全体を更新する必要は無い。従って、上記態様は、不揮発性メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新を容易にすることが可能な技術を提供することができる。
【００１６】
ここで、電子装置は、プリンター、スキャナー、コピー機、ファクシミリ、これらの中から２以上を組み合わせた複合機、等を含む。
デバイスを制御するためのソフトウェアの概念には、デバイスドライバーとライブラリーが少なくとも含まれる。
【００１７】
［態様２］
ところで、図２等に例示するように、前記記憶領域２００は、複数の分割領域２１０を含んでもよい。前記格納場所決定部Ｕ３は、前記分割領域２１０の単位で前記格納場所Ａ２を決定してもよい。本態様は、デバイス制御ソフトウェアが分割領域２１０の単位で記憶領域２００に記憶されるので、デバイス制御ソフトウェアの管理を容易にすることが可能となる。
ここで、複数の分割領域は、同じデータ容量の分割領域に分割されてもよいし、異なるデータ容量の分割領域に分割されてもよい。
【００１８】
［態様３］
図６のステップＳ３１４に例示するように、前記格納場所決定部Ｕ３は、前記複数の分割領域２１０のうち実行可能なソフトウェアＳが格納されていない分割領域２１２から前記格納場所Ａ２を決定してもよい。この態様は、使用中の分割領域２１１に格納されているソフトウェアを削除しなくてもよいので、新たなデバイス制御ソフトウェアを記憶領域に効率よく格納可能な技術を提供することができる。
ここで、実行可能なソフトウェアが格納されていない分割領域は、実行可能なソフトウェアが削除されることにより該ソフトウェアの大部分のデータが実行不能に残っている分割領域を含む。
【００１９】
［態様４］
図１，７，１０に例示するように、前記記憶領域２００に記憶されているソフトウェアＳの格納場所Ａ１を、前記複数の分割領域２１０のうち実行可能なソフトウェアＳが格納されていない分割領域２１２が連続するように変更する格納場所調整部Ｕ５をさらに備えてもよい。この態様は、複数の分割領域２１０のうち実行可能なソフトウェアＳが格納されていない分割領域２１２が連続し、この連続した部分に対象ソフトウェアＳｔを格納することができるので、新たなデバイス制御ソフトウェアを記憶領域に格納し易くすることができる。
【００２０】
［態様５］
図６のステップＳ３１０〜Ｓ３１２に例示するように、前記格納場所決定部Ｕ３は、前記記憶領域２００に前記対象ソフトウェアＳｔを格納することができなくなっている場合、前記対象ソフトウェアＳｔを格納することができるように前記記憶領域２００に記憶されているソフトウェアを削除してもよい。この態様は、記憶領域２００に記憶されているソフトウェアが削除されて対象ソフトウェアＳｔが記憶領域２００における格納場所Ａ２に格納されるので、接続部に接続された対象デバイスの制御ソフトウェアを優先して使用可能な技術を提供することができる。
【００２１】
［態様６］
図１，４，５に例示するように、本電子装置（１００）は、前記新しい対象ソフトウェアＳｔが前記記憶領域２００に記憶されているか否かを前記識別情報８００に基づいて判断する判断部Ｕ６をさらに備えてもよい。前記格納場所決定部Ｕ３は、前記対象ソフトウェアＳｔが記憶されていないと判断されると前記対象ソフトウェアＳｔの格納場所Ａ２を前記記憶領域２００のソフトウェアＳの格納状態に基づいて決定してもよい。本態様は、新しいデバイス制御ソフトウェアが記憶領域２００に記憶されていない場合に該新しいデバイス制御ソフトウェアが記憶領域２００における格納場所Ａ２に格納されるので、デバイス制御ソフトウェアの更新を容易にする好適な技術を提供することができる。
【００２２】
［態様７］
図４に例示するように、前記判断部Ｕ６は、前記対象デバイス３０１を制御するためのソフトウェアが前記記憶領域２００に記憶されている場合、前記サーバー４００に前記対象デバイス３０１を制御するためのソフトウェアのバージョン（例えば図３に示すバージョン情報Ｖnew）を問い合わせ、得られるバージョン（Ｖnew）が前記記憶領域２００に記憶されているソフトウェアのバージョン（例えば図２に示すバージョン情報Ｖ）よりも新しいときに前記新しい対象ソフトウェアＳｔが前記記憶領域２００に記憶されていないと判断してもよい。図６のステップＳ３０６に例示するように、前記格納場所決定部Ｕ３は、前記対象デバイス３０１を制御するための古いバージョンのソフトウェアが格納されている場所の少なくとも一部を含むように前記対象ソフトウェアＳｔの格納場所Ａ２を決定してもよい。本態様は、古いバージョンのデバイス制御ソフトウェアの格納場所Ａ１の少なくとも一部が新しいバージョンのデバイス制御ソフトウェアの格納に使用されるので、デバイス制御ソフトウェアの記憶領域を効率よく使用可能な技術を提供することができる。
【００２３】
［態様８］
図２等に例示するように、本電子装置（１００）は、前記記憶領域２００に記憶されているソフトウェアＳの格納場所Ａ１と、該ソフトウェアを識別するソフトウェア識別情報ＩＤｓと、を対応付けて管理テーブルＴ１を記憶する管理テーブル記憶部Ｕ７をさらに備えてもよい。前記判断部Ｕ６は、前記管理テーブルＴ１に含まれるソフトウェア識別情報ＩＤｓと、前記デバイス識別部Ｕ２で得られた識別情報８００と、に基づいて前記新しい対象ソフトウェアＳｔが前記記憶領域２００に記憶されているか否かを判断してもよい。本態様は、管理テーブルを用いるという簡易な構成で新しいデバイス制御ソフトウェアが記憶領域に記憶されているか否かを判断することが可能となる。
【００２４】
［態様９］
図５等に例示するように、前記識別情報８００は、前記対象デバイス３０１の種類が識別される場合と識別されない場合とがある第一情報８１０を含み、該第一情報８１０で前記対象デバイス３０１の種類が識別されない場合に該第一情報８１０と合わせて前記対象デバイス３０１の種類が識別される第二情報８２０を含んでもよい。前記デバイス識別部Ｕ２は、前記第一情報８１０で前記対象デバイス３０１の種類が識別される場合に該第一情報８１０を前記識別情報８００として特定し、前記第一情報８１０で前記対象デバイス３０１の種類が識別されない場合に該第一情報８１０と前記第二情報８２０とを合わせて前記識別情報８００として特定してもよい。本態様は、対象デバイスの種類を識別する処理が効率よく行われる電子装置を提供することができる。
尚、対象デバイスの種類が常に識別される識別情報を使用する場合も、本技術に含まれる。
【００２５】
［態様１０］
図１，１１に例示するように、本電子装置（１００）は、前記複数の分割領域２１０に実行可能なソフトウェアＳが格納されていない分割領域２１２が無くなると前記複数の分割領域２１０のうち一部の分割領域に格納されているソフトウェアを削除する格納場所確保部Ｕ８をさらに備えてもよい。この態様は、一部の分割領域にデバイス制御ソフトウェアが格納されていない状態が維持されるので、新たなデバイス制御ソフトウェアを記憶領域に格納し易くすることができる。
【００２６】
［態様１１］
図１等に例示される電子装置（１００）の制御方法は、デバイス識別部Ｕ２に対応するデバイス識別工程、格納場所決定部Ｕ３に対応する格納場所決定工程、及び、格納処理部Ｕ４に対応する格納処理工程を含む。本制御方法は、格納場所調整部Ｕ５に対応する格納場所調整工程を含んでもよいし、判断部Ｕ６に対応する判断工程を含んでもよいし、格納場所確保部Ｕ８に対応する格納場所確保工程を含んでもよい。
【００２７】
［態様１２］
図１等に例示される電子装置（１００）の制御プログラムは、デバイス識別部Ｕ２に対応するデバイス識別機能、格納場所決定部Ｕ３に対応する格納場所決定機能、及び、格納処理部Ｕ４に対応する格納処理機能をコンピューターに実現させる。本制御プログラムは、格納場所調整部Ｕ５に対応する格納場所調整機能をコンピューターに実現させてもよいし、判断部Ｕ６に対応する判断機能をコンピューターに実現させてもよいし、格納場所確保部Ｕ８に対応する格納場所確保機能をコンピューターに実現させてもよい。
【００２８】
（２）電子装置を含む電子システムの構成の具体例：
図１は、電子装置を含む電子システムの構成例を模式的に示している。図１に示す電子システムＳＹ１は、電子装置の例である複合機１００、デバイスの例である外付けＵＳＢデバイス３００、及び、サーバー４００を含んでいる。複合機１００は、電子システムＳＹ１に複数設けられてもよい。事業所内でＬＡＮ（Local Area Network）を構築する場合、複合機１００とサーバー４００が同じＬＡＮに接続されて互いに該ＬＡＮを介してデータを送受信してもよい。むろん、ＬＡＮ同士を繋ぐＷＡＮ（Wide Area Network）を利用してデータの送受信を行ってもよいし、複合機とサーバーを直接インターネット等に接続してデータの送受信を行ってもよい。
【００２９】
図１に示す複合機１００では、制御部１１０に、スキャン部１２０、プリント部１３０、操作部１５０、等が接続されている。この複合機１００は、印刷機能、画像読取機能、コピー機能、ファクシミリ機能、等を実現させる処理を実行可能である。すなわち、複合機１００は、印刷機能を有する印刷装置であり、画像読取機能を有する画像読取装置であり、コピー機能を有するコピー装置であり、ファクシミリ機能を有するファクシミリ装置である。
【００３０】
制御部１１０では、時計回路１１１、ＣＰＵ（Central Processing Unit）１１２、不揮発性半導体メモリー１１３（不揮発性メモリーの例）、ＲＡＭ（Random Access Memory）１１４、ＵＳＢインターフェイス（Ｉ／Ｆ）１１５、ＬＡＮインターフェイス（Ｉ／Ｆ）１１６、ＦＡＸ制御部１１７、等が互いに接続されている。不揮発性半導体メモリー１１３は、所定サイズの記憶領域２００、及び、管理テーブル記憶部Ｕ７を有し、ＲＡＭ１１４に展開される制御プログラム等を記憶している。不揮発性半導体メモリー１１３には、書き換え可能なフラッシュメモリー等を用いることができ、書き換え不能なＲＯＭ（Read Only Memory）が含まれてもよい。書き換え可能な不揮発性メモリーは、不揮発性半導体メモリーが好ましいものの、ハードディスクといった書き換え可能な磁気記録媒体等も使用可能である。ＵＳＢ Ｉ／Ｆ １１５は、ＵＳＢデバイス３００のＵＳＢポート（接続部Ｕ１の例）に接続され、ＵＳＢデバイス３００に対してデータを送受信する処理を行う。ＵＳＢポートは、ＵＳＢケーブルを着脱可能に差し込むための接続口であり、接続されるＵＳＢデバイスを交換することが可能である。ＵＳＢポートは、複合機１００に複数設けられてもよい。ＬＡＮ Ｉ／Ｆ １１６は、ＬＡＮに接続され、このＬＡＮに接続された外部装置（例えばサーバー４００や図示しないクライアントコンピューター）との間でデータを送受信する処理を行う。例えば、ＬＡＮを介してクライアントコンピューターから印刷データを受信すると、複合機１００は前記印刷データに基づいて印刷を実行可能である。ＦＡＸ制御部１１７は、電話回線１４０に接続され、この電話回線１４０に接続されたファクシミリ装置との間でファクシミリ通信を行う。図１に示す制御部１１０は、デバイス識別部Ｕ２、格納場所決定部Ｕ３、格納処理部Ｕ４、格納場所調整部Ｕ５、判断部Ｕ６、及び、格納場所確保部Ｕ８の例である。
【００３１】
スキャン部１２０は、原稿画像を読み取る画像読取装置である。スキャン部１２０は、例えば、光源からの光を原稿に当てて原稿画像を読み取り、対応する画像データを形成する。スキャン部１２０には、原稿台ガラスと原稿カバーとの間に原稿を配置するフラットベット式のスキャナー、原稿送り装置付きのスキャナー、等を用いることができる。
【００３２】
プリント部１３０は、コピー用紙等といった被印刷物に印刷を行う印刷装置である。プリント部１３０は、例えば、画像データに対応する画像を色材（例えばトナーやインク）で被印刷物に形成する。プリント部１３０には、レーザープリンターといった電子写真方式のプリンター、インクジェットプリンター、等を用いることができる。
【００３３】
操作部１５０は、ハードキー１６０、及び、表示部である表示パネル１７０を備えている。ハードキー１６０は、押されているか否かを検知して対応する検知信号を出力する。表示パネル１７０は、液晶表示パネル等を用いることができ、各種画面を表示する。表示パネル１７０の表面にタッチパネルが貼り付けられている場合、表示パネル１７０は、指（タッチペン等も可）で触れる操作を受け付ける。
【００３４】
図１に示すＵＳＢデバイス３００は、複合機１００の接続部Ｕ１に対して着脱可能に取り付けられている。このＵＳＢデバイス３００では、制御部３１１、処理部３１２、ＵＳＢ Ｉ／Ｆ ３１３、及び、不揮発性メモリー３２０が互いに接続されている。制御部３１１は、ＵＳＢデバイス３００の全体の動作を制御する。処理部３１２は、制御部３１１の制御に従って、ＵＳＢデバイスの主機能を実現させる処理を行う。ＵＳＢ Ｉ／Ｆ ３１３は、ＵＳＢケーブルを介して接続部Ｕ１に接続され、複合機１００のＵＳＢ Ｉ／Ｆ １１５との間で所定の通信プロトコルに従ってデータを送受信する。
【００３５】
ＵＳＢデバイス３００には、いわゆるＩＤカードを含むＩＣカードのリーダー、ＨＩＤ、記憶装置、等を用いることができる。例えば、ＵＳＢデバイス３００がＩＣカードリーダーである場合、処理部３１２はＩＣカードの情報を読み取る処理を行う。ＵＳＢデバイス３００がＨＩＤである場合、処理部３１２はユーザーの操作を受け付ける処理を行う。
【００３６】
不揮発性メモリー３２０には、ＵＳＢデバイス３００の種類を識別するために使用される情報等、例えば、ＵＳＢ規格書に規定されるClass（８ビット）、SubClass（８ビット）、Protocol（８ビット）、VID（１６ビット）、PID（１６ビット）、等が格納されている。これらの情報は、複合機１００からのリクエストに応じて複合機１００に送信される。
【００３７】
Classの情報は、Device Descriptor の bDeviceClassフィールド、又は、Interface Descriptor の bInterfaceClassフィールドで通知される。Classが１６進数でＦＦの場合、デバイスクラスはベンダー独自（vendor-specific）であり、ＵＳＢデバイスの種類が特定されない。
SubClassの情報は、Device Descriptor の bDeviceSubClassフィールド、又は、Interface Descriptor の bInterfaceSubClassフィールドで通知される。SubClassが１６進数でＦＦの場合、ＵＳＢデバイスの種類は特定されない。
Protocolの情報は、Device Descriptor の bDeviceProtocolフィールド、又は、Interface Descriptor の bInterfaceProtocolフィールドで通知される。Protocolが１６進数でＦＦの場合、ＵＳＢデバイスはベンダー独自（vendor-specific）のプロトコルを使用し、ＵＳＢデバイスの種類が特定されない。
尚、Class、SubClass、及び、Protocolの情報は、図５に示すように、接続部Ｕ１に接続された対象デバイスの種類が識別される場合と識別されない場合とがある第一情報８１０の例である。
【００３８】
VIDの情報は、Device Descriptor の idVendorフィールドで通知される。VIDは、ベンダーに割り当てられた識別情報であり、ベンダーを識別することが可能である。
PIDの情報は、Device Descriptor の idProductフィールドで通知される。PIDは、ベンダーが製品に割り当てた識別情報であり、VIDで表されるベンダーによる製品を識別することが可能である。
尚、VID、及び、PIDの情報は、第一情報８１０で対象デバイスの種類が識別されない場合に第一情報８１０と合わせて対象デバイスの種類が識別される第二情報８２０の例である。
【００３９】
図１に示すサーバー４００は、ＣＰＵ４１２、不揮発性メモリー４１３、ＲＡＭ４１４、ＬＡＮ Ｉ／Ｆ ４１６、等が互いに接続されたコンピューターである。不揮発性メモリー４１３は、ＵＳＢデバイス３００の制御ソフトウェアＳnew等を記憶している。不揮発性メモリー４１３には、書き換え可能な磁気記録媒体、書き換え可能な不揮発性半導体メモリー、等を用いることができ、書き換え不能なＲＯＭが含まれてもよい。ＬＡＮ Ｉ／Ｆ ４１６は、ＬＡＮに接続され、このＬＡＮに接続された複合機１００との間でデータを送受信する処理を行う。
【００４０】
図２は、不揮発性半導体メモリー１１３の書き換え可能な領域に設けられた管理テーブル記憶部Ｕ７、及び、所定サイズの記憶領域２００の例を模式的に示している。
図２に示す管理テーブル記憶部Ｕ７に記憶される管理テーブルＴ１は、記憶領域２００に記憶されている制御ソフトウェアＳの開始アドレス（格納場所Ａ１）、制御ソフトウェアＳを識別するソフトウェア識別情報ＩＤｓ、このソフトウェア識別情報ＩＤｓで表される種類のＵＳＢデバイスが接続された回数（例えば図４に示す接続処理が開始された回数）、及び、当該ＵＳＢデバイスに対する最終アクセス日が対応付けられて格納されている。尚、開始アドレスは、１６進数で示されている。開始アドレスに対応する格納場所Ａ１に制御ソフトウェアＳが格納されていない場合、対応するソフトウェア識別情報ＩＤｓには制御ソフトウェアＳが無いことを表す情報が格納される。ＵＳＢデバイスが複数の機能を有するいわゆるマルチデバイスである場合、ＵＳＢデバイスから得られる複数のPIDをソフトウェア識別情報ＩＤｓに格納してもよい。
【００４１】
図２に示す記憶領域２００は、複数の分割領域２１０を含み、不揮発性半導体メモリー１１３の中で固定された領域とされている。各分割領域２１０は、同じデータ容量とされ、固定された領域とされている。尚、各分割領域２１０の開始アドレス及び終了アドレス（格納場所Ａ１）は、１６進数で示されている。分割領域２１０は、一つの制御ソフトウェアＳが収まる可能性がある程度のデータ容量（例えば４Ｋバイト）とされている。図２には、記憶領域２００のデータ容量が６４Ｋバイト（所定サイズの例）であり、記憶領域２００が４Ｋバイトの分割領域２１０に１６分割されていることが示されている。むろん、分割領域の数は、１５個以下でもよいし、１７個以上でもよい。また、記憶領域は、第一データ容量（例えば４Ｋバイト）の分割領域と、第二データ容量（例えば２Ｋバイト）の分割領域と、必要に応じてさらに異なるデータ容量の分割領域と、を含む複数の分割領域に分割されてもよい。制御ソフトウェアＳは、分割領域２１０の単位（ブロック単位）で分割領域２１０に格納される。ここで、複数の分割領域２１０の内、実行可能な制御ソフトウェアＳが格納されている分割領域を使用中の分割領域２１１とも呼び、実行可能な制御ソフトウェアＳが格納されていない分割領域を不使用の分割領域２１２とも呼ぶ。各制御ソフトウェアＳは、自らの制御ソフトウェアのバージョンを表すバージョン情報Ｖを有している。尚、複数の分割領域に制御ソフトウェアを格納する際にはアドレス順に連続する分割領域に格納する仕様であるものとする。
【００４２】
図２に示す例では、アドレス0000〜1FFFの２個の分割領域に制御ソフトウェアＳ１（バージョン情報Ｖ１を有する。）が格納され、アドレス2000〜2FFFの１個の分割領域に制御ソフトウェアＳ２（バージョン情報Ｖ２を有する。）が格納され、アドレス3000〜3FFFの１個の分割領域に制御ソフトウェアＳ３（バージョン情報Ｖ３を有する。）が格納され、アドレス4000〜4FFFの１個の分割領域に制御ソフトウェアＳ４（バージョン情報Ｖ４を有する。）が格納され、アドレス5000〜FFFFの分割領域に制御ソフトウェアが格納されていない。管理テーブル記憶部Ｕ７は、記憶領域２００の制御ソフトウェアＳの格納状態に合わせて管理テーブルＴ１を生成して不揮発性半導体メモリー１１３に記憶している。
【００４３】
図３は、サーバー４００の不揮発性半導体メモリー１１３に記憶される制御ソフトウェアの例を模式的に示している。サーバー４００は、最新のバージョン（バージョン情報Ｖnew）の制御ソフトウェアＳnewと、この制御ソフトウェアＳnewを識別するソフトウェア識別情報ＩＤnewと、を対応付けて不揮発性メモリー４１３に記憶している。サーバー４００は、ＵＳＢデバイスの種類を識別する識別情報とともに制御ソフトウェアＳnewのバージョンのリクエスト（要求）を複合機１００から受信すると、前記識別情報とソフトウェア識別情報ＩＤnewとに基づいて、前記識別情報に対応付けられた制御ソフトウェアＳnewのバージョン情報Ｖnewを複合機１００に返信する。また、サーバー４００は、識別情報とともに制御ソフトウェアＳnewのダウンロードのリクエストを複合機１００から受信すると、前記識別情報とソフトウェア識別情報ＩＤnewとに基づいて、前記識別情報に対応付けられた制御ソフトウェアＳnewを複合機１００に送信する。
【００４４】
（３）電子装置の処理、及び、制御方法の具体例：
次に、図４〜８を参照して、電子装置で行われる処理の例を説明する。図４は、ＵＳＢデバイス３００が接続された時の接続処理の例を示している。図５は、図４のステップＳ１０６で行われる制御ソフトウェア検索処理の例を示している。図６は、図４のステップＳ１１８で行われる対象ソフトウェア格納処理の例を示している。図７は、図６のステップＳ３１２で行われるソフトウェア削除処理の例を示している。以下、「ステップ」の記載を省略する。図８は、管理テーブルＴ１のソフトウェア識別情報ＩＤｓの具体例を模式的に示している。まず、図７のＳ４１０〜Ｓ４１２の処理を行わない例を説明する。
【００４５】
図４〜７に示す処理は、複合機１００の制御部１１０が中心となって行う。ここで、Ｓ１０２〜Ｓ１０６，Ｓ２０２〜Ｓ２０６の処理を行う制御部１１０はデバイス識別部Ｕ２の例であり、Ｓ１０６〜Ｓ１０８，Ｓ１１２〜Ｓ１１４，Ｓ２０８，Ｓ２１０の処理を行う制御部１１０は判断部Ｕ６の例であり、Ｓ１１８，Ｓ３０２〜Ｓ３１４の処理を行う制御部１１０は格納場所決定部Ｕ３の例であり、Ｓ１１０，Ｓ１１６〜Ｓ１１８，Ｓ３１６〜Ｓ３１８の処理を行う制御部１１０は格納処理部Ｕ４の例である。尚、複合機１００は、マルチタスクにより複数の処理を並列して実行している。
【００４６】
ＵＳＢポート（接続部Ｕ１）にＵＳＢデバイス３００が接続されると、複合機１００の制御部１１０は、ＵＳＢデバイス３００の接続を検知し、図４に示す接続処理を開始させる。この処理を開始する原因となったＵＳＢデバイス３００が対象デバイス３０１である。
【００４７】
接続処理が開始されると、制御部１１０は、対象デバイス３０１に該対象デバイス３０１の種類を識別する識別情報８００を含む情報をリクエストする（Ｓ１０２）。このリクエストを受信した対象デバイス３０１は、不揮発性メモリー３２０からClass、SubClass、Protocol、VID、PID、等の情報を読み出して複合機１００に返信する。そこで、複合機１００の制御部１１０は、これらの情報をＵＳＢデバイス３００から受信し（Ｓ１０４）、図５に示す制御ソフトウェア検索処理を行う（Ｓ１０６）。
【００４８】
図５に示す制御ソフトウェア検索処理が開始されると、制御部１１０は、ＵＳＢデバイス３００からの受信情報からClass、SubClass、及び、Protocolの情報（第一情報８１０）を読み出し（Ｓ２０２）、この第一情報８１０だけで対象デバイス３０１の種類を識別可能であるか否かを判断する（Ｓ２０４）。
【００４９】
例えば、Class、SubClass、及び、Protocolの情報がいずれもＦＦ（vendor-specific）である場合、対象デバイス３０１の種類を識別することができない。このような場合、制御部１１０は、処理をＳ２０６に進め、ＵＳＢデバイス３００からの受信情報からVID、及び、PIDの情報（第二情報８２０）を読み出す。この第二情報８２０と第一情報８１０とで対象デバイス３０１の種類が識別されるので、Class、SubClass、Protocol、VID、及び、PIDの情報（第一情報８１０と第二情報８２０とを合わせた情報）が識別情報８００として特定される。すなわち、この時点で対象デバイス３０１の種類を識別する識別情報８００が得られたことになるので、制御部１１０は、Class、SubClass、Protocol、VID、及び、PIDの情報に基づいて管理テーブルＴ１から同じ種類のＵＳＢデバイスの制御ソフトウェアを検索して検索結果を生成し（Ｓ２０８）、制御ソフトウェア検索処理を終了させる。
【００５０】
また、Class、SubClass、及び、Protocolの情報がＦＦ（vendor-specific）でない場合、対象デバイス３０１の種類を識別可能である。このような場合、Class、SubClass、及び、Protocolの情報（第一情報８１０）が識別情報８００として特定される。すなわち、この時点で対象デバイス３０１の種類を識別する識別情報８００が得られたことになるので、制御部１１０は、Class、SubClass、及び、Protocolの情報に基づいて管理テーブルＴ１から同じ種類のＵＳＢデバイスの制御ソフトウェアを検索して検索結果を生成し（Ｓ２１０）、制御ソフトウェア検索処理を終了させる。
【００５１】
検索結果を生成する例として、図８に示すように、ＵＳＢデバイス３００から得られたClass、SubClass、Protocol、VID、及び、PIDの情報（１６進数）、並びに、対応する分割領域に格納された制御ソフトウェアＳのバージョン情報Ｖをソフトウェア識別情報ＩＤｓにする場合について、説明する。むろん、ＵＳＢデバイス３００から得られた情報や制御ソフトウェアＳのバージョン情報Ｖは、そのままソフトウェア識別情報ＩＤｓに組み込まれてもよいし、変換されてソフトウェア識別情報ＩＤｓに組み込まれてもよい。図８において、開始アドレス0000，1000に対応するソフトウェア識別情報ＩＤ１は、ClassがＸ１、SubClassがＸ２、ProtocolがＸ３、バージョンが１．０である。ただし、Ｘは１６進数で０〜Ｆを示す。開始アドレス3000に対応するソフトウェア識別情報ＩＤ３は、ClassがＸ３、SubClassがＸ４、ProtocolがＸ５、バージョンが３．０である。開始アドレス2000，4000に対応するソフトウェア識別情報ＩＤ２，ＩＤ４は、Class、SubClass、及び、ProtocolがいずれもＦＦである。開始アドレス2000の場合、VIDがＹ２、PIDの情報がＹ３、バージョンが２．０である。ただし、Ｙは１６進数で０〜Ｆを示す。開始アドレス4000の場合、VIDがＹ４、PIDの情報がＹ５、バージョンが４．０である。開始アドレス5000に対応するソフトウェア識別情報ＩＤｓは、Class、SubClass、及び、Protocolがいずれも００であり、対応する分割領域に制御ソフトウェアＳが格納されていないことを示している。
【００５２】
対象デバイス３０１からClass＝ＦＦ、SubClass＝ＦＦ、Protocol＝ＦＦ、VID＝Ｙ２、及び、PID＝Ｙ３が得られた場合、これらの情報に一致するのは開始アドレス2000のソフトウェア識別情報ＩＤ２である。この場合、例えば、開始アドレス2000とソフトウェア識別情報ＩＤ２を含む検索結果が生成される。ソフトウェア識別情報ＩＤ２は、識別情報８００とバージョン情報Ｖを含む。
対象デバイス３０１からClass＝Ｘ３、SubClass＝Ｘ４、及び、Protocol＝Ｘ５が得られた場合、これらの情報に一致するのは開始アドレス3000のソフトウェア識別情報ＩＤ３である。この場合、対象デバイス３０１からのVID及びPIDが参照されずに、例えば、開始アドレス3000とソフトウェア識別情報ＩＤ３を含む検索結果が生成される。
識別情報８００と一致する情報がソフトウェア識別情報ＩＤｓに無い場合、制御ソフトウェアＳが無いことを表す検索結果が生成される。
【００５３】
図４のＳ１０６の制御ソフトウェア検索処理が終了すると、制御部１１０は、対象デバイス３０１を制御するための制御ソフトウェアが記憶領域２００に有るか無いかに応じて処理を分岐させる（Ｓ１０８）。すなわち、Ｓ１０８の判断処理は、管理テーブルＴ１に含まれるソフトウェア識別情報ＩＤｓと、対象デバイス３０１から得られた識別情報８００と、に基づいている。
【００５４】
制御ソフトウェア検索処理により制御ソフトウェアＳが無いことを表す検索結果が生成されると、制御部１１０は、対応する制御ソフトウェア、すなわち、識別情報８００に対応付けられた新しい対象ソフトウェアＳｔが記憶領域２００に記憶されていないと判断する。この場合、制御部１１０は、識別情報８００とともに対応する制御ソフトウェアＳnew（図３参照。）のダウンロードをサーバー４００にリクエストし、対応する制御ソフトウェアＳnewをサーバー４００からＲＡＭ１１４にダウンロードして（Ｓ１１０）、処理をＳ１１８に進める。Ｓ１１０の処理時、前記リクエストを受信したサーバー４００は、識別情報８００に対応するソフトウェア識別情報ＩＤnewを検索し、検索されたソフトウェア識別情報ＩＤnewに対応付けられた制御ソフトウェアＳnewを複合機１００に送信している。例えば、得られた識別情報８００がソフトウェア識別情報ＩＤ５newに対応している場合、ソフトウェア識別情報ＩＤ５newに対応付けられた制御ソフトウェアＳ５newがダウンロードされる。
【００５５】
制御ソフトウェア検索処理により制御ソフトウェアＳが有ることを表す検索結果が生成されると、制御部１１０は、対象デバイス３０１を制御するための制御ソフトウェアが記憶領域２００に記憶されていると判断する。この制御ソフトウェアは、最新のバージョンである可能性もあれば、古いバージョンである可能性もある。そこで、制御部１１０は、識別情報８００とともに対応する制御ソフトウェアＳnewのバージョンをサーバー４００に問い合わせ、対応する制御ソフトウェアＳnewのバージョン情報Ｖnewを受信する（Ｓ１１２）。Ｓ１１２の処理時、制御ソフトウェアＳnewのバージョンのリクエストを受信したサーバー４００は、識別情報８００に対応するソフトウェア識別情報ＩＤnewを検索し、検索されたソフトウェア識別情報ＩＤnewに対応付けられた制御ソフトウェアＳnewのバージョン情報Ｖnewを複合機１００に送信している。次に、制御部１１０は、得られたバージョン情報Ｖnewと、検索結果に含まれるバージョン情報Ｖと、を比較し、比較結果に応じて処理を分岐させる（Ｓ１１４）。バージョン情報Ｖnewがバージョン情報Ｖよりも新しいことを表す場合、制御部１１０は、新しい対象ソフトウェアＳｔが記憶領域２００に記憶されていないと判断する。この場合、制御部１１０は、識別情報８００とともに対応する新しい制御ソフトウェアＳnewのダウンロードをサーバー４００にリクエストし、対応する新しい制御ソフトウェアＳnewをサーバー４００からＲＡＭ１１４にダウンロードする（Ｓ１１６）。Ｓ１１６の処理時、前記リクエストを受信したサーバー４００は、識別情報８００に対応するソフトウェア識別情報ＩＤnewを検索し、検索されたソフトウェア識別情報ＩＤnewに対応付けられた制御ソフトウェアＳnewを複合機１００に送信している。例えば、ソフトウェア識別情報ＩＤ２を含む検索結果が生成された場合、識別情報８００に対応するソフトウェア識別情報ＩＤ２newに対応付けられた制御ソフトウェアＳ２newがダウンロードされる。
【００５６】
新しい対象ソフトウェアＳｔのダウンロード後、制御部１１０は、図６に示す対象ソフトウェア格納処理を行う（Ｓ１１８）。図６に示す対象ソフトウェア格納処理が開始されると、制御部１１０は、対象デバイス３０１の制御ソフトウェアを追加するのか更新するのかに応じて処理を分岐させる（Ｓ３０２）。この判断処理は、図４で示したＳ１０８の処理と同様にすることができ、対象デバイス３０１を制御するための制御ソフトウェア（古いバージョン）が記憶領域２００に有るか無いかに応じて分岐させる処理でよい。対象デバイス３０１の制御ソフトウェアを追加する場合、制御部１１０は、処理をＳ１１０に進める。
【００５７】
対象デバイス３０１の制御ソフトウェアを更新する場合、制御部１１０は、対象デバイス３０１を制御するための古いバージョンの制御ソフトウェアが格納されている場所に新しい対象ソフトウェアＳｔを格納可能であるか否かを判断する（Ｓ３０４）。元の格納場所に格納可能と判断した場合、制御部１１０は、古いバージョンの制御ソフトウェアが格納されている場所を含めて新しい対象ソフトウェアＳｔの格納場所Ａ２を決定し（Ｓ３０６）、処理をＳ３１６に進める。
【００５８】
例えば、図２に示すアドレス2000〜2FFFの制御ソフトウェアＳ２を更新する場合であって、新しい対象ソフトウェアＳｔが同じアドレス2000〜2FFFに収まる４Ｋバイトのデータ容量である場合、元のアドレス2000〜2FFFが格納場所Ａ２として決定される。新しい対象ソフトウェアＳｔが同じアドレス2000〜2FFFに収まらない８Ｋバイトのデータ容量である場合でも、直後のアドレス3000〜3FFF（直前のアドレス1000〜1FFFでも可。）が不使用の分割領域２１２であれば、元の格納場所を含むアドレス2000〜3FFFが格納場所Ａ２として決定される。
【００５９】
一方、新しい対象ソフトウェアＳｔが同じアドレス2000〜2FFFに収まらない８Ｋバイトのデータ容量である場合に直前のアドレス1000〜1FFFと直後のアドレス3000〜3FFFの両方が使用中の分割領域２１１である場合、元のアドレス2000〜2FFFに対象ソフトウェアＳｔを格納することができない。このような場合、制御部１１０は、元の格納場所に格納可能でないと判断し、まず、元の格納場所から古いバージョンの制御ソフトウェアを削除し（Ｓ３０８）、処理をＳ３１０に進める。
【００６０】
対象デバイス３０１の制御ソフトウェアが追加される場合、又は、新しいバージョンの対象ソフトウェアＳｔが元の格納場所に格納されない場合、制御部１１０は、複数の分割領域２１０のうち不使用の分割領域２１２に対象ソフトウェアＳｔを格納可能であるか否かを判断する（Ｓ３１０）。対象ソフトウェアＳｔを格納可能である場合、制御部１１０は、Ｓ３１２のソフトウェア削除処理を行わずに処理をＳ３１４に進める。一方、対象ソフトウェアＳｔを格納不可である場合、制御部１１０は、図７に示すソフトウェア削除処理を行う（Ｓ３１２）。
【００６１】
図７に示すソフトウェア削除処理が開始されると、制御部１１０は、管理テーブルＴ１（図２参照。）から最古の最終アクセス日を検索し（Ｓ４０２）、この最古の最終アクセス日が時計回路１１１の日付から所定期間以上前であるか否かを判断する（Ｓ４０４）。最古の最終アクセス日が所定期間以上前である場合、制御部１１０は、検索された最古の最終アクセス日に対応する開始アドレスを管理テーブルＴ１から読み出し、この開始アドレスの分割領域２１１から制御ソフトウェアＳを削除する（Ｓ４０６）。併せて、制御部１１０は、管理テーブルＴ１を更新し（Ｓ４０８）、改めて不使用の分割領域２１２に対象ソフトウェアＳｔを格納可能であるか否かを判断する（Ｓ４１４）。まだ対象ソフトウェアＳｔを格納することができない場合、制御部１１０は、処理をＳ４０２に戻す。対象ソフトウェアＳｔを格納することが可能になった場合、制御部１１０は、ソフトウェア削除処理を終了させる。
【００６２】
例えば、この所定期間が２か月であり、時計回路１１１の日付が１０／１５であるとする。この場合、図２に示す管理テーブルＴ１から最古の最終アクセス日８／２（２か月以上前）が検索されると、最古の最終アクセス日８／２に対応する開始アドレス2000の分割領域２１１から制御ソフトウェアＳ２が削除される。図９には、８Ｋバイトの新しい制御ソフトウェアＳ５を格納する例として、開始アドレス2000の分割領域２１１に制御ソフトウェアＳ２が格納されている状態ＳＴ１から当該制御ソフトウェアＳ２が削除された状態ＳＴ２を示している。制御ソフトウェアＳ２が削除されると、管理テーブルＴ１の中で開始アドレス2000に対応するソフトウェア識別情報ＩＤｓに制御ソフトウェア無しを表す情報が格納される。
【００６３】
また、制御ソフトウェアＳ２が削除された状態で管理テーブルＴ１から最古の最終アクセス日９／４が検索されると、Ｓ４０４において最古の最終アクセス日が所定期間以上前でないと判断される。このような場合、制御部１１０は、管理テーブルＴ１から最少の接続回数を検索し（Ｓ４１６）、検索された最少の接続回数に対応する開始アドレスを管理テーブルＴ１から読み出し、この開始アドレスの分割領域２１１から制御ソフトウェアＳを削除する（Ｓ４１８）。併せて、制御部１１０は、管理テーブルＴ１を更新し（Ｓ４２０）、改めて不使用の分割領域２１２に対象ソフトウェアＳｔを格納可能であるか否かを判断する（Ｓ４１４）。前述の例では、最少の接続回数５４に対応する開始アドレス3000の分割領域２１１から制御ソフトウェアＳ３が削除される。図９には、開始アドレス3000の分割領域２１１に制御ソフトウェアＳ３が格納されている状態ＳＴ２から当該制御ソフトウェアＳ３が削除された状態ＳＴ３を示している。この状態ＳＴ３で８Ｋバイトの新しい制御ソフトウェアＳ５がアドレス2000〜3FFFに格納することが可能となる（状態ＳＴ４）。制御ソフトウェアＳ３が削除されると、管理テーブルＴ１の中で開始アドレス3000に対応するソフトウェア識別情報ＩＤｓに制御ソフトウェア無しを表す情報が格納される。
【００６４】
以上説明したようにして、記憶領域２００に対象ソフトウェアＳｔを格納することができなくなっている場合、対象ソフトウェアＳｔを格納することができるように記憶領域２００に記憶されている制御ソフトウェアが削除される。
【００６５】
図６のＳ３１２のソフトウェア削除処理が終了すると、制御部１１０は、分割領域２１０の単位で不使用の分割領域２１２から格納場所Ａ２を決定し（Ｓ３１４）、処理をＳ３１６に進める。図９に示す例では、不使用のアドレス2000〜3FFFの分割領域２１２が格納場所Ａ２に決定されることになる。
上述したＳ３０２〜Ｓ３１４の処理により、識別情報８００に対応付けられた新しい対象ソフトウェアＳｔの格納場所Ａ２が記憶領域２００の制御ソフトウェアＳの格納状態に基づいて決定される。
【００６６】
格納場所Ａ２の決定後、制御部１１０は、ＲＡＭ１１４にダウンロードされた対象ソフトウェアＳｔを格納場所Ａ２に保存し（Ｓ３１６）、管理テーブルＴ１を更新し（Ｓ３１８）、対象ソフトウェア格納処理を終了させる。格納場所Ａ２に古いバージョンの制御ソフトウェアがある場合、対象ソフトウェアＳｔが格納場所Ａ２に上書きされる。図９に示す例では、アドレス2000〜3FFFの分割領域に新しい制御ソフトウェアＳ５が格納されることになる（状態ＳＴ４）。制御ソフトウェアＳ５が格納されると、管理テーブルＴ１の中で開始アドレス2000，3000に対応するソフトウェア識別情報ＩＤｓに制御ソフトウェアＳ５のソフトウェア識別情報が格納される。
【００６７】
図４の対象ソフトウェア格納処理が終了すると、制御部１１０は、管理テーブルＴ１（図２参照。）の接続回数と最終アクセス日について対象デバイス３０１の識別情報８００に対応する情報を更新し（Ｓ１２０）、接続処理を終了させる。接続回数については、上限に達していなければ元の接続回数に１を加え、上限に達していれば１を加えず上限値のままにする。最終アクセス日については、時計回路１１１の日付に更新する。これにより、ＵＳＢデバイス３００が接続されたときに更新後の管理テーブルＴ１に基づいて管理される。
【００６８】
以上説明したように、所定サイズの記憶領域２００において新しい対象ソフトウェアＳｔの格納場所Ａ２が記憶領域２００の制御ソフトウェアＳの格納状態に基づいて決定され、サーバー４００から対象ソフトウェアＳｔがダウンロードされて前記格納場所Ａ２に格納される。すなわち、記憶領域２００のデバイス制御ソフトウェア全体が更新される訳ではなく、更新に必要な一部だけ更新される。従って、記憶領域２００のデバイス制御ソフトウェア全体を更新する必要が無く、不揮発性半導体メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新が容易となる。また、新たなデバイスに対応するためにユーザーの操作が必要でないため、利便性が向上する。さらに、制御ソフトウェアに不具合が生じた場合、迅速な改修が可能であり、速やかなユーザー環境への展開が可能である。
【００６９】
（４）不使用の分割領域を連続させる具体例：
図７のソフトウェア削除処理において、分割領域から制御ソフトウェアを削除すると、記憶領域２００の存在する複数の不使用の分割領域２１２が離散してしまうことがある。制御ソフトウェアを連続する複数の分割領域に格納する場合、不使用の分割領域２１２が連続していると好適である。そこで、図７の二点鎖線で示すように、不使用の分割領域を連続させるＳ４１０〜Ｓ４１２の処理を行ってもよい。この場合、Ｓ４１０〜Ｓ４１２の処理を行う制御部１１０は格納場所調整部Ｕ５の例であり、Ｓ４０２〜Ｓ４０８，Ｓ４１４，Ｓ４１６〜Ｓ４２０の処理を行う制御部１１０は格納場所決定部Ｕ３の例である。
【００７０】
図１０は、記憶領域２００に記憶されている制御ソフトウェアＳの格納場所Ａ１を変更して対象ソフトウェアＳｔを格納する例を模式的に示している。図１０には、８Ｋバイトの新しい制御ソフトウェアＳ５を格納する例として、開始アドレス2000の分割領域２１１に制御ソフトウェアＳ２が格納されている状態ＳＴ５から当該制御ソフトウェアＳ２が削除された状態ＳＴ６を示している。この状態ＳＴ６になったときに、制御部１１０は、複数の分割領域２１０のうち不使用の分割領域２１２が連続するように制御ソフトウェアＳの格納場所Ａ１を変更する（Ｓ４１０）。併せて、制御部１１０は、管理テーブルＴ１を更新し（Ｓ４１２）、不使用の分割領域２１２に対象ソフトウェアＳｔを格納可能であるか否かを判断する（Ｓ４１４）。
【００７１】
図１０の状態ＳＴ６では、制御ソフトウェアＳ５に連続する２つの分割領域が必要であるのに対し、不使用の分割領域２１２がアドレス2000〜2FFFとアドレス5000〜5FFFに分かれている。そこで、例えば、アドレス値の小さい分割領域をアドレス値の大きい分割領域と連続する位置に移動させるように制御ソフトウェアＳの格納場所Ａ１を変更することにする。例えば、制御ソフトウェアＳ３をアドレス3000〜3FFFからアドレス2000〜2FFFに移動させ、制御ソフトウェアＳ４をアドレス4000〜4FFFからアドレス3000〜3FFFに移動させると、状態ＳＴ７に示すように、アドレス4000〜5FFFにおいて２つの不使用の分割領域が連続した状態となる。制御ソフトウェアＳ３，Ｓ４が移動すると、管理テーブルＴ１の中で、開始アドレス2000に対応するソフトウェア識別情報ＩＤｓにソフトウェア識別情報Ｓ３が格納され、開始アドレス3000に対応するソフトウェア識別情報ＩＤｓにソフトウェア識別情報Ｓ４が格納され、開始アドレス4000に対応するソフトウェア識別情報ＩＤｓに制御ソフトウェア無しを表す情報が格納される。
【００７２】
上述した状態ＳＴ７で図６のＳ３１４〜Ｓ３１８の処理が行われると、８Ｋバイトの新しい制御ソフトウェアＳ５がアドレス4000〜5FFFに格納される（状態ＳＴ８）。
以上説明したように、複数の分割領域２１０のうち不使用の分割領域２１２が連続し、この連続した部分に対象ソフトウェアＳｔが格納されるので、新たなデバイス制御ソフトウェアが記憶領域に格納され易い。
【００７３】
（５）変形例：
本発明は、種々の変形例が考えられる。
例えば、電子装置は、複合機以外にも、プリンター専用機、スキャナー専用機、コピー専用機、ファクシミリ専用機、等でもよい。
上述した処理は、順番を入れ替える等、適宜、変更可能である。例えば、図６の対象ソフトウェア格納処理において、Ｓ３１８の管理テーブルＴ１の更新処理をＳ３１６の対象ソフトウェアＳｔの格納処理前に行うことが可能である。
図６のＳ３１２のソフトウェア削除処理は、単純に接続回数の少ない制御ソフトウェアから削除する処理でもよいし、単純に最終アクセス日の古い制御ソフトウェアから削除する処理でもよい。
図６の対象ソフトウェア格納処理において、制御ソフトウェアを更新する場合、古いバージョンの制御ソフトウェアの格納場所に含まれる一部の領域のみを新しいバージョンの制御ソフトウェアの格納場所に決定してもよい。例えば、古いバージョンの制御ソフトウェアの格納場所が２つの分割領域であって新しいバージョンの制御ソフトウェアの格納場所が１つの分割領域で済む場合、元の格納場所よりも少ない１つの分割領域を格納場所に決定すれば足りる。むろん、元の２つの分割領域からいずれか一方の分割領域と、元の格納場所でない分割領域と、を合わせて新しいバージョンの制御ソフトウェアの格納場所に決定してもよい。
【００７４】
図１１に示す接続処理のように、接続処理において対象ソフトウェアＳｔの格納により空き領域が無くなると一部の制御ソフトウェアを削除しておいてもよい。図１１に示す接続処理は、図４で示したＳ１１８とＳ１２０との間にＳ５０２〜Ｓ５１６の処理が追加されている。ここで、Ｓ５０２〜Ｓ５１６の処理を行う制御部１１０は、格納場所確保部Ｕ８の例である。
【００７５】
図１１のＳ１１８の対象ソフトウェア格納処理（図６参照。）が行われると、制御部１１０は、複数の分割領域２１０に空き領域、すなわち、実行可能な制御ソフトウェアＳが格納されていない分割領域２１２が無くなったか否かを判断する（Ｓ５０２）。空き領域が有る場合、制御部１１０は、管理テーブルＴ１（図２参照。）の接続回数及び最終アクセス日を更新し（Ｓ１２０）、接続処理を終了させる。
【００７６】
空き領域が無い場合、図７のＳ４０２〜Ｓ４０８，Ｓ４１６〜Ｓ４２０と同様の処理が行われる。まず、制御部１１０は、管理テーブルＴ１から最古の最終アクセス日を検索し（Ｓ５０４）、この最古の最終アクセス日が時計回路１１１の日付から所定期間以上前であるか否かを判断する（Ｓ５０６）。最古の最終アクセス日が所定期間以上前である場合、制御部１１０は、検索された最古の最終アクセス日に対応する開始アドレスを管理テーブルＴ１から読み出し、この開始アドレスの分割領域２１１から制御ソフトウェアＳを削除する（Ｓ５０８）。併せて、制御部１１０は、管理テーブルＴ１を更新し（Ｓ５１０）、管理テーブルＴ１の接続回数及び最終アクセス日を更新して（Ｓ１２０）、接続処理を終了させる。
【００７７】
一方、最古の最終アクセス日が所定期間以上前でない場合、制御部１１０は、管理テーブルＴ１から最少の接続回数を検索し（Ｓ５１２）、検索された最少の接続回数に対応する開始アドレスを管理テーブルＴ１から読み出し、この開始アドレスの分割領域２１１から制御ソフトウェアＳを削除する（Ｓ５１４）。併せて、制御部１１０は、管理テーブルＴ１を更新し（Ｓ５１６）、管理テーブルＴ１の接続回数及び最終アクセス日を更新して（Ｓ１２０）、接続処理を終了させる。
【００７８】
上述した接続処理によると、一部の分割領域にデバイス制御ソフトウェアが格納されていない状態が維持されるので、新たなデバイス制御ソフトウェアが記憶領域に格納され易くなる。
【００７９】
尚、電子装置の接続部に接続されるデバイスがＵＳＢデバイス以外のデバイスである場合も、本技術に含まれる。むろん、第一情報がClass、SubClass、及び、Protocolの組合せ情報以外の情報であったり、第二情報がVID、及び、PIDの組合せ情報以外の情報であったりする場合も、本技術に含まれる。
図６の対象ソフトウェア格納処理において、Ｓ３０２〜Ｓ３０８の処理を行わず、Ｓ３１０の処理から行い、常にＳ３１４における不使用の分割領域２１２から格納領域Ａ２を決定する場合も、本技術に含まれる。
【００８０】
（６）結び：
以上説明したように、本発明によると、種々の態様により、不揮発性メモリーの所定サイズの記憶領域に記憶されるデバイス制御ソフトウェアの更新を容易にすることが可能な技術等を提供することができる。むろん、従属請求項に係る構成要件を有しておらず独立請求項に係る構成要件のみからなる技術等でも、上述した基本的な作用、効果が得られる。
また、上述した例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術及び上述した例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も実施可能である。本発明は、これらの構成等も含まれる。
【符号の説明】
【００８１】
１００…複合機（電子装置の例）、１１０…制御部、１１３…不揮発性半導体メモリー（不揮発性メモリーの例）、２００…記憶領域、２１０，２１１，２１２…分割領域、３００…ＵＳＢデバイス（デバイスの例）、３０１…対象デバイス、４００…サーバー、４１３…不揮発性メモリー、８００…識別情報、８１０…第一情報、８２０…第二情報、Ａ１，Ａ２…格納場所、ＩＤｓ…ソフトウェア識別情報、Ｓ…ソフトウェア、Ｓｔ…対象ソフトウェア、ＳＹ１…電子システム、Ｔ１…管理テーブル、Ｖ，Ｖnew…バージョン情報、Ｕ１…接続部、Ｕ２…デバイス識別部、Ｕ３…格納場所決定部、Ｕ４…格納処理部、Ｕ５…格納場所調整部、Ｕ６…判断部、Ｕ７…管理テーブル記憶部、Ｕ８…格納場所確保部。
【図１】
2017078940.tif 000003
【図２】
2017078940.tif 000004
【図３】
2017078940.tif 000005
【図４】
2017078940.tif 000006
【図５】
2017078940.tif 000007
【図６】
2017078940.tif 000008
【図７】
2017078940.tif 000009
【図８】
2017078940.tif 000010
【図９】
2017078940.tif 000011
【図１０】
2017078940.tif 000012
【図１１】
2017078940.tif 000013