(57)【特許請求の範囲】
【請求項１】
ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置であって、
前記所定のメモリは、格納しているファームウェアの書き換えが可能であることを特徴とするインタフェース装置。
【請求項２】
請求項１記載の前記インタフェース装置において、
前記所定のメモリは、前記外部インタフェースを介する前記ファームウェアの書き換えが可能であることを特徴とするインタフェース装置。
【請求項３】
請求項１又は２に記載の前記インタフェース装置において、
前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、
前記メモリコントローラは、前記第２ＭＣＵに接続され、
前記所定のメモリは、前記インタフェース装置の内部に設けられ、前記メモリコントローラに接続されることを特徴とするインタフェース装置。
【請求項４】
請求項１又は２に記載の前記インタフェース装置において、
前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、
前記メモリコントローラは、前記第２ＭＣＵに接続され、
前記所定のメモリは、前記インタフェース装置の外部に設けられ、前記メモリコントローラに接続されることを特徴とするインタフェース装置。
【請求項５】
請求項１又は２に記載の前記インタフェース装置において、
前記第２ＭＣＵは、前記所定のメモリの書き込み／読み出しを制御し、
前記所定のメモリは、前記インタフェース装置の内部に設けられ、前記第２ＭＣＵに接続されることを特徴とするインタフェース装置。
【請求項６】
請求項１又は２に記載の前記インタフェース装置において、
前記第２ＭＣＵは、前記所定のメモリの書き込み／読み出しを制御し、
前記所定のメモリは、前記インタフェース装置の外部に設けられ、前記第２ＭＣＵに接続されることを特徴とするインタフェース装置。
【請求項７】
請求項１又は２に記載の前記インタフェース装置において、
前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、
前記第２ＭＣＵは、前記所定のメモリへのアクセスを前記第１ＭＣＵに許可し、
前記メモリコントローラは、前記第１ＭＣＵが共有するバスに接続され、
前記所定のメモリは、前記インタフェース装置の内部に設けられ、前記メモリコントロ
ーラに接続されることを特徴とするインタフェース装置。
【請求項８】
請求項１又は２に記載の前記インタフェース装置において、
前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、
前記第２ＭＣＵは、前記所定のメモリへのアクセスを前記第１ＭＣＵに許可し、
前記メモリコントローラは、前記第１ＭＣＵが共有するバスに接続され、
前記所定のメモリは、前記インタフェース装置の外部に設けられ、前記メモリコントローラに接続されることを特徴とするインタフェース装置。
【請求項９】
請求項１又は２に記載の前記インタフェース装置において、
前記第２ＭＣＵは、前記所定のメモリへのアクセスを前記第１ＭＣＵに許可し、
前記所定のメモリは、前記インタフェース装置の内部に設けられ、バスインタフェースを含み、１つ以上のＭＣＵが共有するバスに接続されることを特徴とするインタフェース装置。
【請求項１０】
請求項１又は２に記載の前記インタフェース装置において、
前記第２ＭＣＵは、前記所定のメモリへのアクセスを前記第１ＭＣＵに許可し、
前記所定のメモリは、前記インタフェース装置の外部に設けられ、バスインタフェースを含み、前記第１ＭＣＵが共有するバスに接続されることを特徴とするインタフェース装置。
【請求項１１】
請求項１乃至１０の何れか１項に記載の前記インタフェース装置において、
前記所定のメモリは、不揮発性メモリで構成されることを特徴とするインタフェース装置。
【請求項１２】
請求項１１記載の前記インタフェース装置において、
前記不揮発性メモリは、電気的にプログラム可能であることを特徴とするインタフェース装置。
【請求項１３】
請求項４、６、８、１０の何れか１項に記載の前記インタフェース装置において、
前記所定のメモリは、着脱可能な携帯型メモリであることを特徴とするインタフェース装置。
【請求項１４】
請求項１乃至１３の何れか１項に記載の前記インタフェース装置において、
前記外部インタフェースに接続されたＫＶＭ装置に適切なファームウェアの選択を実行するか否かを指示させるための設定キーを有し、
前記第２ＭＣＵは、前記設定キーにより前記選択の実行が指示された場合、前記所定のメモリから適切なファームウェアを選択することを特徴とするインタフェース装置。
【請求項１５】
ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置におけるファームウェアの更新方法であって、
前記外部インタフェースに接続されたＫＶＭ装置を認識する認識ステップと、
認識したＫＶＭ装置に関して、前記所定のメモリに格納されているファームウェアのバージョン情報と前記第１ＭＣＵに実装されているファームウェアのバージョン情報とを比較する比較ステップと、
該比較ステップの結果、前記第１ＭＣＵに実装されているファームウェアのバージョンが前記所定のメモリに格納されているファームウェアのバージョンよりも古い場合、前記第１ＭＣＵに実装されているファームウェアを前記所定のメモリに格納されているファームウェアで更新する更新ステップと、
を有することを特徴とするインタフェース装置におけるファームウェアの更新方法。
【請求項１６】
ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置におけるファームウェアの更新方法であって、
前記所定のメモリに格納されたファームウェアが更新されたことを検知する更新検知ステップと、
更新されたファームウェアに関して、前記所定のメモリに格納されているファームウェアのバージョン情報と前記第１ＭＣＵに実装されているファームウェアのバージョン情報とを比較する比較ステップと、
該比較ステップの結果、前記第１ＭＣＵに実装されているファームウェアのバージョンが前記所定のメモリに格納されているファームウェアのバージョンよりも古い場合、前記第１ＭＣＵに実装されているファームウェアを前記所定のメモリに格納されているファームウェアで更新する更新ステップと、
を有することを特徴とするインタフェース装置におけるファームウェアの更新方法。
【請求項１７】
請求項１５又は１６に記載の前記インタフェース装置におけるファームウェアの更新方法において、
前記更新ステップは、前記第２ＭＣＵが前記所定のメモリから前記ファームウェアを読み出して更新対象の前記第１ＭＣＵへ送信し、前記更新対象の第１ＭＣＵが受信したファームウェアを自己に実装することを特徴とするインタフェース装置におけるファームウェアの更新方法。
【請求項１８】
請求項１５又は１６に記載の前記インタフェース装置におけるファームウェアの更新方法において、
前記更新ステップは、前記第２ＭＣＵが更新対象の前記第１ＭＣＵに対して前記所定のメモリへのアクセスを許可し、前記更新対象の第１ＭＣＵが前記所定のメモリから前記ファームウェアを読み出して自己に実装することを特徴とするインタフェース装置におけるファームウェアの更新方法。
【請求項１９】
請求項１５乃至１８の何れか１項に記載の前記インタフェース装置におけるファームウェアの更新方法において、
前記ファームウェアのバージョンアップを実行する指示を入力させる実行指示入力ステップを有し、
前記比較ステップは、前記実行指示入力ステップにおいて前記ファームウェアのバージョンアップを実行する指示が入力された場合、前記比較を行うことを特徴とするインタフェース装置におけるファームウェアの更新方法。
【請求項２０】
ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置が有するコンピュータを機能させるためのプログラムであって、
請求項１５乃至１９の何れか１項に記載された各ステップを前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラムに関し、特に１つのデバイスを複数のコンピュータで共有するためのインタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラムに関する。
【０００２】
【従来の技術】
この種のインタフェース装置として、ＫＶＭ（Ｋｅｙｂｏａｒｄ  ＶｉｄｅｏＭｏｕｓｅ）装置が知られている。従来技術におけるＫＶＭ装置１００を用いたシステム構成を図１に示す。
図１に示すように、ＫＶＭ装置１００とは、キーボード２１やマウス２２やディスプレイ２３等の周辺機器（以下、これらをＫＶＭとする）をパーソナルコンピュータ（以下、ＰＣと略す）１〜４等の複数の情報処理装置で共有するためのものである。
【０００３】
即ち、ＫＶＭ装置１００は接続されたＰＣ１〜４に対してＫＶＭをエミュレーションする。これに対して、ＰＣ１〜４はＫＶＭ装置１００によってエミュレーションされたＫＶＭに基づいて動作を行う。これにより、本来、ＰＣ１〜４に対して個別に必要とされたＫＶＭを１つで代用することが可能となる。
【０００４】
また、図２に図１によるＫＶＭ装置１００の内部構成を示す。
図２を参照すると明らかなように、ＫＶＭ装置１００内部には複数のマイクロコントローラ回路（以下、ＭＣＵという）１１〜１５が設けられており、これらが内部バス１９を介して相互接続されている。なお、図１及び図２に示す例では、ＰＣ１〜４が接続インタフェース（以下、インタフェースをＩ／Ｆという）である外部Ｉ／Ｆ１ａ〜４ａを介してＫＶＭ装置１００におけるＭＣＵ１１〜１４と各々接続され、また、ＫＶＭであるキーボード２１及びマウス２２及びディスプレイ２３が接続Ｉ／Ｆである外部Ｉ／Ｆ５ａを介してＭＣＵ１５と接続される。
【０００５】
図２に示す外部Ｉ／Ｆ１ａ〜５ａには、図３に示すようなＫＶＭの機種毎のＩ／Ｆが含まれている。例えばキーボード用Ｉ／Ｆ群２１ａであればＰＳ／２キーボード用Ｉ／ＦやＳＵＮキーボード用Ｉ／ＦやＵＳＢキーボード用Ｉ／Ｆ等があげられ、マウス用Ｉ／Ｆ群２２ａであればＰＳ／２マウス用Ｉ／ＦやＳＵＮマウス用Ｉ／ＦやＵＳＢマウス用Ｉ／Ｆ等があげられ、ディスプレイ用Ｉ／Ｆ群２３ａであればアナログ・ディスプレイ用Ｉ／Ｆやデジタル・ディスプレイ用Ｉ／Ｆ群等があげられる。
【０００６】
また、ＫＶＭが接続される外部Ｉ／Ｆ５ａ側のＭＣＵ１５には、操作者によるＫＶＭ装置１００のオペレーションを可能とするためのスイッチ類１６が設けられる。これは外部Ｉ／Ｆ５ａ側に接続されたデバイス（この場合はキーボード２１及びマウス２２及びディスプレイ２３）を、ＰＣ１〜４のいずれに対してアクティブにするかを選択させるためのスイッチ等である。したがって、操作者は、アクティブにするＰＣを切り換える際にスイッチ群１６を操作する。
【０００７】
例えば、図４に示すような、外部Ｉ／Ｆ５ａ側に接続されたＫＶＭがＰＣ１に対して有効（アクティブ）に動作していて他のＰＣ２〜４へ接続されるＭＣＵ１２〜１４上ではデータのトランザクションが発生していない場合、操作者はスイッチ類１６を操作することで、図５に示すように、ＫＶＭが有効に動作する対象をＰＣ１からＰＣ５へ随時切り換えることができる。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記で説明した従来のＫＶＭ装置１００では、各ＰＣに対してＫＶＭが実際に接続されている状態をエミュレートできなければならないため、実際に使用できるＫＶＭに事実上制限が存在するという問題があった。
【０００９】
即ち、アクティブなＰＣを実際にＫＶＭと接続しているとして動作させるためには、ＫＶＭ装置１００のＭＣＵ１１が、図６に示すように、ＰＣ（例えばＰＣ１とする）側に組み込まれたオペレーション・システム（以下、ＯＳという）１ｂのデバイス・ドライバ・スタック１ｂ２へ正しくエミュレートしたＫＶＭを提供しなければならない。より詳細には、ＫＶＭ装置１００のＭＣＵ１１は、外部Ｉ／Ｆ５ａに接続されたＫＶＭの動作を想定して、アクティブである外部Ｉ／Ｆ１ａに接続されたＰＣ１に対する自己の動作を決定づけなければならない。これは、他のＭＣＵ２〜４においても同様である。
【００１０】
このため接続できるＫＶＭは、ＫＶＭ装置１００において対応が図られた、ＫＶＭ装置１００にとって既知であるものでなければならない。
【００１１】
しかしながら、ＫＶＭ装置１００上のＭＣＵにとって未知のＫＶＭを接続した場合、ＫＶＭとＰＣとの間で制御方法の不一致という問題が発生したり、接続されたＫＶＭの機能の如何に関わらずＰＣに対して実現されるＫＶＭの機能がＭＣＵにおいて限定されてしまうという問題等が発生する。
【００１２】
このため未知のＫＶＭを接続した場合、認識されない、動作しない、機能が使えない等の不具合があった。
【００１３】
これを図７に示す具体例を用いて以下に説明する。
例えばキーボード用Ｉ／Ｆとして一般的に知られているものとしては、ＰＳ／２キーボード用Ｉ／ＦやＳＵＮキーボード用Ｉ／ＦやＵＳＢキーボード用Ｉ／Ｆ等が存在する。
【００１４】
しかしながら、例に挙げたキーボードに関しては、Ｉ／Ｆに関して標準的な仕様が定められており、殆どのキーボードがこの仕様に準拠して動作する。従って、これらは外部Ｉ／Ｆが違うだけで、キーボードとして構成されるキーマトリクスやＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）等に構成上の違いはほとんどないものである。
【００１５】
しかしながら、非標準の機能が実装されているキーボードも多々存在する。
このように非標準の機能が外部Ｉ／Ｆに提供されている場合に対処するためには、その機能をエミュレートする機能をＫＶＭ装置１００側において実装していなければならないが、非標準であるがゆえに準備するには限界がある。
従って、未知の非標準の機能を持ったキーボードが接続された場合、最悪の場合には動作させることができない。
【００１６】
本発明は上記に示したような問題を鑑みてなされたものであり、対応デバイスの制限なくエミュレートが可能なインタフェース装置を提供することを目的とする。
また、本発明の他の目的は、上記のインタフェース装置を実現するためのインタフェース装置におけるファームウェアの更新方法及びそのプログラムを提供することを目的とする。
【００１７】
【課題を解決するための手段】
係る目的を達成するために、本発明は、ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置であって、前記第２ＭＣＵは、前記周辺装置は前記複数の情報処理装置のいずれに対しアクティブにするかを選択し前記所定のメモリは、格納しているファームウェアの書き換えが可能であることを特徴としている。
これにより、本発明では、対応ＫＶＭ装置の制限なくエミュレートが可能なインタフェース装置が提供される。即ち、本発明によるインタフェース装置は、自己にとって未知のＫＶＭ装置であっても、ファームウェアを更新することでこれを既知とすることができるため、如何なるＫＶＭ装置でも対応することが可能となる。
【００１８】
また、一例として、上記のインタフェース装置において、前記所定のメモリが、前記外部インタフェースを介する前記ファームウェアの書き換えが可能である。これにより、本発明では、ファームウェアの更新をインタフェース装置自体が備える外部インタフェースを介して行うことが可能となる。
【００１９】
また、別の例として、上記のインタフェース装置において、前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、前記メモリコントローラが、前記外部インタフェースに接続された第２ＭＣＵに接続され、前記所定のメモリが、前記インタフェース装置の内部に設けられ、前記メモリコントローラに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置内部に設けられ、このメモリに対する読み出し／書き込みがメモリコントローラにより制御されるインタフェース装置が提供される。
【００２０】
更に、別の例として、上記のインタフェース装置において、前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、前記メモリコントローラが、前記外部インタフェースに接続された第２ＭＣＵに接続され、前記所定のメモリが、前記インタフェース装置の外部に設けられ、前記メモリコントローラに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置外部に設けられ、このメモリに対する読み出し／書き込みがメモリコントローラにより制御されるインタフェース装置が提供される。
【００２１】
更に、別の例として、上記のインタフェース装置において、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリの書き込み／読み出しを制御し、前記所定のメモリが、前記インタフェース装置の内部に設けられ、前記第２ＭＣＵに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置内部に設けられ、このメモリに対する読み出し／書き込みが第２ＭＣＵにより制御されるインタフェース装置が提供される。また、メモリコントローラの構成を削除でき、装置を縮小化することができる。
【００２２】
更に、別の例として、上記のインタフェース装置において、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリの書き込み／読み出しを制御し、前記所定のメモリが、前記インタフェース装置の外部に設けられ、前記第２ＭＣＵに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置外部に設けられ、このメモリに対する読み出し／書き込みが第２ＭＣＵにより制御されるインタフェース装置が提供される。また、メモリコントローラの構成を削除でき、装置を縮小化することができる。
【００２３】
更に、別の例として、上記のインタフェース装置において、前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリへのアクセスを第１ＭＣＵに許可し、前記メモリコントローラが、第１ＭＣＵが共有するバスに接続され、前記所定のメモリが、前記インタース装置の内部に設けられ、前記メモリコントローラに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置内部に設けられ、このメモリに対する読み出し／書き込みがメモリコントローラにより制御され、また、メモリへのアクセスがバスのアービトレーションにより調停されるインタフェース装置が提供される。
【００２４】
更に、別の例として、上記のインタフェース装置において、前記所定のメモリの書き込み／読み出しを制御するメモリコントローラを有し、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリへのアクセスを第１ＭＣＵに許可し、前記メモリコントローラが、第１ＭＣＵが共有するバスに接続され、前記所定のメモリが、前記インタフェース装置の外部に設けられ、前記メモリコントローラに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置外部に設けられ、このメモリに対する読み出し／書き込みがメモリコントローラにより制御され、また、メモリへのアクセスがバスのアービトレーションにより調停されるインタフェース装置が提供される。
【００２５】
更に、別の例として、上記のインタフェース装置において、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリへのアクセスを第１ＭＣＵに許可し、前記所定のメモリが、前記インタフェース装置の内部に設けられ、バスインタフェースを含み、第１ＭＣＵが共有するバスに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置内部に設けられ、このメモリに対する読み出し／書き込みがＭＣＵにより制御され、また、メモリへのアクセスがバスのアービトレーションにより調停されるインタフェース装置が提供される。また、メモリコントローラの構成を削除でき、装置を縮小化することができる。
【００２６】
更に、別の例として、上記のインタフェース装置において、前記外部インタフェースに接続された第２ＭＣＵが、前記所定のメモリへのアクセスを第１ＭＣＵに許可し、前記所定のメモリが、前記インタフェース装置の外部に設けられ、バスインタフェースを含み、第１ＭＣＵが共有するバスに接続される。これにより、本発明では、ファームウェアを格納するメモリが装置外部に設けられ、このメモリに対する読み出し／書き込みが第２ＭＣＵにより制御され、また、メモリへのアクセスがバスのアービトレーションにより調停されるインタフェース装置が提供される。また、メモリコントローラの構成を削除でき、装置を縮小化することができる。
【００２７】
更に、別の例として、上記のインタフェース装置において、前記所定のメモリが、不揮発性メモリで構成される。これにより、本発明では、ファームウェアを格納するメモリが不揮発性の記憶装置で構成されたインタフェース装置が提供される。
【００２８】
更に、別の例として、上記のインタフェース装置において、前記不揮発性メモリが、ＥＰＲＯＭ又はＥＥＰＲＯＭである。これにより、本発明では、不揮発性メモリとしてＥＰＲＯＭ又はＥＥＰＲＯＭが使用されたインタフェース装置が提供される。
【００２９】
更に、別の例として、上記のインタフェース装置において、前記所定のメモリが、着脱可能な携帯型メモリである。これにより、本発明では、任意の情報処理装置等でメモリ内容を編集することが可能となるため、ファームウェアの管理や更新を利便良く行うことが可能となる。
【００３０】
更に、別の例として、上記のインタフェース装置において、前記外部インタフェースに接続されたデバイスに適切なファームウェアの選択を実行するか否かを指示させるための設定キーを有し、前記第２ＭＣＵが、前記設定キーにより前記選択の実行が指示された場合、前記所定のメモリから適切なファームウェアを選択する。これにより、操作者が所望する場合のみ、ファームウェアを更新できるインタフェース装置が提供される。
【００３１】
また、一例として、ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置におけるファームウェアの更新方法であって、前記外部インタフェースに接続されたＫＶＭ装置を認識する認識ステップと、認識したＫＶＭ装置に関して、前記所定のメモリに格納されているファームウェアのバージョン情報と前記第１ＭＣＵに実装されているファームウェアのバージョン情報とを比較する比較ステップと、該比較ステップの結果、前記第１ＭＣＵに実装されているファームウェアのバージョンが前記所定のメモリに格納されているファームウェアのバージョンよりも古い場合、前記第１ＭＣＵに実装されているファームウェアを前記所定のメモリに格納されているファームウェアで更新する更新ステップと、を有することを特徴としている。これにより、対応ＫＶＭ装置の制限なくエミュレートが可能であり、しかもＫＶＭ装置を接続した際に必要に応じて自動的にファームウェアを更新することができる。
【００３２】
また、一例として、ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置におけるファームウェアの更新方法であって、前記所定のメモリに格納されたファームウェアが更新されたことを検知する更新検知ステップと、更新されたファームウェアに関して、前記所定のメモリに格納されているファームウェアのバージョン情報と前記第１ＭＣＵに実装されているファームウェアのバージョン情報とを比較する比較ステップと、該比較ステップの結果、前記第１ＭＣＵに実装されているファームウェアのバージョンが前記所定のメモリに格納されているファームウェアのバージョンよりも古い場合、前記第１ＭＣＵに実装されているファームウェアを前記所定のメモリに格納されているファームウェアで更新する更新ステップと、を有することを特徴としている。
これにより、対応ＫＶＭ装置の制限なくエミュレートが可能となり、メモリに格納されているファームウェアが更新されたことを検知して必要に応じて自動的にファームウェアを更新することができる。
【００３３】
更に、別の例として、上記のインタフェース装置におけるファームウェアの更新方法において、前記更新ステップが、前記外部インタフェースに接続された第２ＭＣＵが前記所定のメモリから前記ファームウェアを読み出して更新対象の前記第１ＭＣＵへ送信し、前記更新対象の第１ＭＣＵが受信したファームウェアを自己に実装する。これにより、対応デバイスの制限なくエミュレートが可能となり、デバイスが接続される外部インタフェースに接続されたＭＣＵを介してファームウェアを更新することができる。
【００３４】
更に、別の例として、上記のインタフェース装置におけるファームウェアの更新方法において、前記更新ステップが、前記外部インタフェースに接続された第２ＭＣＵが更新対象の前記第１ＭＣＵに対して前記所定のメモリへのアクセスを許可し、前記更新対象の第１ＭＣＵが前記所定のメモリから前記ファームウェアを読み出して自己に実装する。これにより、対応デバイスの制限なくエミュレートが可能となり、デバイスが接続される外部インタフェースに接続された第２ＭＣＵにより管理されつつ、直接対象のＭＣＵがメモリよりファームウェアを読み出して更新することができる。
【００３５】
更に、別の例として、上記のインタフェース装置におけるファームウェアの更新方法において、前記ファームウェアの更新を実行する指示を入力させる実行指示入力ステップを有し、前記比較ステップが、前記実行指示入力ステップにおいて前記ファームウェアの更新を実行する指示が入力された場合、前記比較を行う。これにより、対応デバイスの制限なくエミュレートが可能となり、操作者が所望する場合のみ、ファームウェアを更新できるインタフェース装置を実現できる。
【００３６】
また、一例として、ＫＶＭ装置を共有する複数の情報処理装置がそれぞれ接続される複数の第１ＭＣＵと、外部インタフェースを介し前記ＫＶＭ装置が接続され、前記ＫＶＭ装置を第２ＭＣＵと前記複数の第１ＭＣＵのいずれかとを介し前記複数の情報処理装置のうち対応する情報処理装置に接続し、前記ＫＶＭ装置に応じ所定のメモリから選択した前記情報処理装置に前記ＫＶＭ装置の機能をエミュレートするためのファームウェアを前記第１ＭＣＵに実装させる前記第２ＭＣＵと、を有するインタフェース装置が有するコンピュータを機能させるためのプログラムであって、上記した各ステップを前記コンピュータに実行させるためのプログラムである。これにより、本発明では、上記のインタフェース装置のファームウェアの更新方法をプログラムで提供することができる。
【００３７】
【発明の実施の形態】
〔発明の原理〕
本発明は、対応デバイスの制限なくエミュレートが可能なインタフェース装置を提供するためのものである。即ち、本発明によるインタフェース装置は、自己にとって未知のデバイスであっても、ファームウェアを更新することでこれを既知とすることができる。このため、本発明によるインタフェース装置は、如何なるデバイスにも対応できる。
【００３８】
これを実現するために、本発明は、外部インタフェースに接続されたデバイスに応じて所定のメモリから選択したファームウェアをマイクロコントローラ（ＭＣＵ）に実装させるインタフェース装置であって、前記所定のメモリが、格納しているファームウェアの書き換えが可能であるという特徴を有する。
以下、上記特徴を有する本発明を好適に実施した形態について図面を用いて詳細に説明する。
【００３９】
〔第１の実施形態〕
まず、本発明の第１の実施形態について図面を用いて詳細に説明する。
（構成）
図８は、本実施形態によるＫＶＭ装置１０の構成を示すブロックである。
図８を参照すると、ＫＶＭ装置１０は、図示しないＰＣ１〜４と外部Ｉ／Ｆ１ａ〜４ａを介して接続されるＭＣＵ１１〜１４と、外部Ｉ／Ｆ５ａを介してＫＶＭと接続されるＭＣＵ１５と、が内部バス１９を介して相互に接続される。また、ＭＣＵ１５には、ＫＶＭとＰＣとのアクティブな接続を切り換えるためのスイッチ類１６ａが直接接続される。尚、このスイッチ類１６ａは、ＫＶＭ装置１０の筐体外部から操作できるように設けられる。更に、ＭＣＵ１５には、メモリコントローラ１７を介してメモリ１８が接続される。
【００４０】
メモリ１８は、例えばＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）やＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥｒａｓａｂｌｅＰｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等の不揮発性メモリで構成されるものである。但し、常時電源供給することを前提とすればＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリを用いてもよい。尚、以下の説明では、メモリコントローラ１７とメモリ１８とを含めてメモリ部という。
【００４１】
メモリ部には、ＫＶＭ装置１０上に実装された全ての又は一部のＭＣＵに必要なファームウェアが格納される。このファームウェアは、ＰＣ１〜４に対してＫＶＭの機能をエミュレートするためのものである。
【００４２】
本実施形態では、メモリコントローラ１７とＭＣＵ（図８ではＭＣＵ１５）と外部Ｉ／Ｆ（図８では外部Ｉ／Ｆ５ａ）とを経由して、メモリ１８に格納されたファームウェアを任意に書き換えることができる。即ち、例えば外部インタフェース５ａに接続した情報処理装置を用いてメモリ１８内に格納されたファームウェアを更新する。以下、この際の手順を図９のシーケンスを用いて詳細に説明する。
【００４３】
図９を参照すると、外部インタフェース５ａに接続された情報処理装置は、ＭＣＵ１５に対してアクセスを要求する（Ａ１→Ｂ１）。ＭＣＵ１５はこの要求に対して応答する（Ｂ２→Ａ２）。このように情報処理装置からＭＣＵ１５へのアクセスが完了すると、次に、情報処理装置は、ＭＣＵ１５へメモリ１８内へのファームウェアの格納又は更新を要求する（Ａ３→Ｂ３）。この際、ＭＣＵ１５へは実際に格納されるファームウェアもＭＣＵ１５へ入力される。ＭＣＵ１５は、入力された格納／更新要求に応じて、メモリ１８へのファームウェアの格納／更新の命令を発行し、これとファームウェアとをメモリコントローラ１７へ入力する（Ｂ４→Ｃ１）。メモリコントローラ１７は入力された命令に従って、ファームウェアをメモリ１８に記憶させ（Ｃ２→Ｄ１）、その後、完了したことをＭＣＵ１５へ通知する（Ｃ３→Ｂ５）。このように完了通知を受け取ると、ＭＣＵ１５は、上記での要求に対する応答を情報処理端末へ入力する（Ｂ６→Ａ４）。このように動作することで、外部インタフェース５ａ，ＭＣＵ１５，メモリコントローラ１７を介して、メモリ１８内へファームウェアを格納する、又はメモリ１８内のファームウェアを更新することができる。
【００４４】
また、ＭＣＵ１１〜１４には上記で例示したような不揮発性メモリが含まれており、例えばＭＣＵ１５から入力されたファームウェアが実装される。更に、ＭＣＵ１５にも上記で例示したような不揮発性メモリが含まれており、例えばメモリ１８から読み出したファームウェアが実装される。尚、ＭＣＵ１１〜１５の不揮発性メモリに格納されたファームウェアは、書き換えが可能である。この書き換えの構成及び動作については以下の動作の説明で詳細に触れる。
【００４５】
以上のように、外部インタフェースに接続されたデバイスに応じて所定のメモリから選択したファームウェアをマイクロコントローラ（ＭＣＵ）に実装させるインタフェース装置内のメモリを書き換え可能に構成することで、対応デバイスの制限なくこれをエミュレートすることが可能となる。
【００４６】
（動作）
次に、ＭＣＵ１１〜１５に実装されたファームウェアを更新する際の処理手順について、図１０及び図１１を用いて詳細に説明する。
図１０は、ＫＶＭ装置１０の構成を示すブロック図である。但し、図１０では、説明の都合上、メモリコントローラ１７を省略し、簡略化して説明するとともに、ＭＣＵ１５をコントロールＭＣＵ１５ａとして、また、ＭＣＵ１１〜１４をエミュレートＭＣＵ１１ａ〜１４ａとして呼び変える。
図１１は、ＫＶＭ装置１０のＭＣＵ１１〜１４のファームウェアを更新する際の動作を示すフローチャートである。
【００４７】
図１０を参照すると、本実施形態によるＫＶＭ装置１０は、図８の外部Ｉ／Ｆ５ａに接続されるコントロールＭＣＵ１５ａと、外部Ｉ／Ｆ１ａ〜４ａに接続されるエミュレートＭＣＵ１１ａ〜１４ａと、が内部バス１９を介して相互にコミュニケーション可能である。コントロールＭＣＵ１５ａには設定キー１６１が接続される。この設定キー１６１は、スイッチ類１６ａに含まれるキーである。従って、操作者は筐体外部からこれを必要に応じて操作できる。
【００４８】
また、メモリ１８はコントロールＭＣＵ１５ａからの要求に応じて、ファームウェアの読み出し／書き込みを行う。尚、上述の通り図１０では省略するが、本実施形態ではコントロールＭＣＵ１５ａとメモリ１８との間にメモリコントローラ１７が設けられており、これによりメモリ１８への読み出し／書き込みが制御される。
【００４９】
上記の構成において、起動時に設定キー１６１が押下された又は押下状態にあることがコントロールＭＣＵ１５ａにより検知される。押下された又は押下状態にあることが検知された場合、コントロールＭＣＵ１５ａ及びエミュレートＭＣＵ１１ａ〜１４ａはファームウェアをアップデート可能な動作モードに移行する。また、押下された又は押下状態にあることが検知されなかった場合、コントロールＭＣＵ１５ａ及びエミュレートＭＣＵ１１ａ〜１４ａは通常の動作モードに移行してＫＶＭをエミュレートする機能を実現する。以下、図１１を用いてこれらの動作を詳細に説明する。但し、図１１では、エミュレートＭＣＵ１１ａに着目して説明するが、これは他のエミュレートＭＣＵ１２ａ〜１４ａに対しても同様に行われるものである。
【００５０】
図１１を参照すると、コントロールＭＣＵ１５ａ及びエミュレートＭＣＵ１１ａは、起動後、初期化処理を実行して動作準備を開始する（ステップＳ１１，ステップＳ２１）。尚、この初期化処理には、コントロールＭＣＵ１５ａが自己に接続されたＫＶＭの機種や型式等を認識し、これをエミュレートＭＣＵ１１ａへ通知する動作も含まれる。
【００５１】
次に、コントロールＭＣＵ１５ａは、組み込まれたファームウェアのバージョン情報をエミュレートＭＣＵ１１ａから受信する（ステップＳ２２）。尚、このバージョン情報は、コントロールＭＣＵ１５ａが認識したＫＶＭに該当する又は関連するファームウェアが特定されて、コントロールＭＣＵ１５ａへ送信される。また、説明は前後するが、エミュレートＭＣＵ１１ａは、初期化処理後、自己に組み込まれているファームウェアのバージョン情報の通知をコントロールＭＣＵ１５ａへ送信する（ステップＳ１２）。
【００５２】
このようにしてエミュレートＭＣＵ１１ａに組み込まれたファームウェアのバージョン情報を受信すると、コントロールＭＣＵ１５ａは、メモリ１８に格納されている該当／関連するファームウェアのバージョン情報を特定し、これと受信したバージョン情報とを比較する（ステップＳ２３）。この比較の結果、エミュレートＭＣＵ１１ａ側のバージョンの方が古い場合（ステップＳ２４のＹｅｓ）、コントロールＭＣＵ１５ａは、設定キー１６１がＯＮ（押下された又は押下状態にある）か否かを判定する（ステップＳ２５）。この結果、ＯＮでないと判定された場合（Ｓ２５のＮｏ）、コントロールＭＣＵ１５ａは、通常の動作モードへ移行するために、エミュレートＭＣＵ１１ａへそのまま処理を続行すること（続行通知）を送信し（ステップＳ２７）、その後、通常の動作モードへ移行する。この際、エミュレートＭＣＵ１１ａは、以下で説明する流れに沿って動作するが、結果として初期化処理後、そのまま通常の動作モードへ移行するものと同等の動作を行う。
【００５３】
また、ステップＳ２５の結果、ＯＮであると判定された場合（Ｓ２５のＹｅｓ）、コントロールＭＣＵ１５ａは、エミュレートＭＣＵ１１ａに対して新しいバージョンのファームウェア、即ちメモリ１８に格納されているファームウェアを送信すること（転送開始通知）を送信した後（ステップＳ２６）、該当するファームウェアをメモリ１８から読み出してこれをエミュレートＭＣＵ１１ａへ転送する（ステップＳ２８）。
【００５４】
また、ステップＳ２３の比較の結果、エミュレートＭＣＵ１１ａ側のバージョンの方が新しい、又は双方のバージョンが等しい場合（ステップＳ２４のＮｏ）、コントロールＭＣＵ１５ａは、通常の動作モードへ移行するために、エミュレートＭＣＵ１１ａへそのまま処理を続行すること（続行通知）を送信し（ステップＳ２７）、その後、通常の動作モードへ移行する。
【００５５】
このように、送信された転送開始通知又は続行通知はエミュレートＭＣＵ１１ａに受信される（ステップＳ１３）。その後、エミュレートＭＣＵ１１ａは、受信した通知が転送開始通知であるか続行通知であるかを判定する（ステップＳ１４）。この結果、続行通知であると判定された場合（Ｓ１４のＮｏ）、エミュレートＭＣＵ１１ａは、そのまま通常の動作モードへ移行して既存のファームウェアが示す動作を実行する。
【００５６】
また、ステップＳ１４の結果、転送開始通知であると判定された場合（Ｓ１４のＹｅｓ）、エミュレートＭＣＵ１１ａは、コントロールＭＣＵ１５ａから送信されたファームウェアを受信し（ステップＳ１５）、これで自己の不揮発性メモリに格納されているファームウェアにおける該当するものを更新し（ステップＳ１６）、その後、再度初期化処理を行った後（ステップＳ１７）、通常の動作モードへ移行して新たに実装されたファームウェアが示す動作を実行する。
【００５７】
このように動作することで、エミュレートＭＣＵ１１ａに実装されているファームウェアを随時更新することができる。尚、コントロールＭＣＵ１５ａとエミュレートＭＣＵ１１ａとの間で各種通知を送受信する構成としては、いかなるものも適用することが可能であるが、例えばシリアル入出力バスであるＩ２Ｃバス等を適用して、コントロールＭＣＵ１５ａがエミュレートＭＣＵ１１ａのレジスタを読み込むように構成してもよい。
【００５８】
また、コントロールＭＣＵ１５ａは、以上の動作を全てのエミュレートＭＣＵ（図８では１１ａ〜１４ａ）に対して実行した後、図１１における通常の動作モードへ移行する。
【００５９】
また、コントロールＭＣＵ１５ａのファームウェアの更新は、コントロールＭＣＵ１５ａが初期化処理において認識したＫＶＭに関して、自己に実装されているファームウェアのバージョン情報とメモリ１８に格納されているファームウェアのバージョン情報とを比較し、メモリ１８側のバージョンの方が新しい場合にこれを読み出して更新することで解決される。
【００６０】
またこの他、コントロールＭＣＵ１５ａが、例えばメモリ１８に格納されているファームウェアが更新されたことを自動的に検知し、検知された場合にこれを読み出して、自己又はエミュレートＭＣＵ１１ａ〜１４ａに実装されたファームウェアの更新処理を実行するようにも構成することができる。
【００６１】
以上のように構成及び動作することで、本実施形態によれば、特に１つのデバイスを複数のホストコンピュータで共有するためのインタフェース装置であるＫＶＭ装置において、メモリに格納されたファームウェアを任意に書き換えることが可能になる。即ち、メモリコントローラが接続されているＭＣＵから、ＫＶＭ装置の内部バスを介して接続された他のＭＣＵのファームウェアを必要に応じて書き換えることが可能となる。この結果、ＫＶＭ装置におけるＭＣＵの機能が変更されるため、本実施形態では、メモリコントローラが接続されるＭＣＵに接続されるデバイスに対応する適切なファームウェアを任意に選択することが可能となる。即ち、本実施形態によるＫＶＭ装置は、接続されたデバイスを調査し、そのデバイス毎に適切なファームウェアを選択し、これによりメモリに格納してあるファームウェアを書き換えるため、如何なるデバイスにも対応することができる。従って、本発明の主たる目的である、接続されたデバイスに適宜に対応して動作するＫＶＭ装置が提供される。
【００６２】
〔第２の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第２の実施形態として図面を用いて詳細に説明する。
図１２は、本実施形態によるＫＶＭ装置１０ａの構成を示すブロック図である。
図１２を参照すると明らかなように、ＫＶＭ装置１０ａは、第１の実施形態によるＫＶＭ装置１０と比較して、メモリ１８ａが装置外部に設置される点で異なる。即ち、本実施形態によるメモリ１８ａは、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード等の携帯型メモリで構成される。また、ＫＶＭ装置１０ａ本体には、このようなメモリ１８ａを取り付けるためのスロットが設けられる。
【００６３】
このようにメモリ１８ａに携帯型のものを適用することで、本実施形態では、任意の電子機器を用いてファームウェアを格納することが可能となる。即ち、操作者の都合に応じて任意の場所や任意の情報処理装置を用いてファームウェアを更新することができるため、より利便良くファームウェアの更新や格納を行うことが可能となる。更に、情報処理装置にメモリ１８ａ内に登録されたファームウェアの管理機能を組み込むことで、勝手良く格納されたファームウェアの管理が行える。
尚、その他の構成及び動作は、第１の実施形態と同様であるため、ここでは説明を省略する。
【００６４】
〔第３の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第３の実施形態として図面を用いて詳細に説明する。
図１３は、本実施形態によるＫＶＭ装置１０ｂの構成を示すブロック図である。
図１３を参照すると明らかなように、ＫＶＭ装置１０ｂは、第１の実施形態によるＫＶＭ装置１０と比較して、メモリコントローラ１７が削除された点で異なる。即ち、本実施形態によるＭＣＵ１５ｂは、メモリ１８への読み出し／書き込みを制御する。
【００６５】
このようにモリコントローラ１７のチップ構成を削除することで、ＫＶＭ装置１０ｂを小型化することが可能となる。
尚、その他の構成及び動作は、第１の実施形態と同様であるため、ここでは説明を省略する。
【００６６】
〔第４の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第４の実施形態として図面を用いて詳細に説明する。
図１４は、本実施形態によるＫＶＭ装置１０ｃの構成を示すブロック図である。
図１４を参照すると明らかなように、ＫＶＭ装置１０ｃは、第１の実施形態によるＫＶＭ装置１０と比較して、メモリコントローラ１７が削除され、また、メモリ１８ａが装置外部に設置される点で異なる。
【００６７】
即ち、本実施形態によるＭＣＵ１５ｂは、メモリ１８ａへの読み出し／書き込みを制御し、また、メモリ１８ａは、第２の実施形態と同様に携帯型メモリで構成される。更に、ＫＶＭ装置１０ｃ本体には、第２の実施形態と同様に、メモリ１８ａを取り付けるためのスロットが設けられる。
【００６８】
このようにメモリ１８ａに携帯型のものを適用することで、本実施形態では、第２の実施形態と同様に、任意の電子機器を用いてファームウェアを格納することが可能となる。即ち、操作者の都合に応じて任意の場所や任意の情報処理装置を用いてファームウェアを更新することができるため、より利便良くファームウェアの更新や格納を行うことが可能となる。更に、情報処理装置にメモリ１８ａ内に登録されたファームウェアの管理機能を組み込むことで、勝手良く格納されたファームウェアの管理が行える。更にまた、モリコントローラ１７のチップ構成を削除することで、ＫＶＭ装置１０ｂを縮小することが可能となる。
尚、その他の構成及び動作は、第１の実施形態と同様であるため、ここでは説明を省略する。
【００６９】
〔第５の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第５の実施形態として図面を用いて詳細に説明する。
図１５は、本実施形態によるＫＶＭ装置１０ｄの構成を示すブロック図である。
図１５を参照すると明らかなように、ＫＶＭ装置１０ｄは、第１の実施形態によるＫＶＭ装置１０と比較して、メモリコントローラ１７ａが内部バス１９に接続される点で異なる。
【００７０】
このようにメモリコントローラ１７ａを内部バス１９に接続させることで、本実施形態では、ＫＶＭ装置１０ｄに搭載された全てのＭＣＵ１１ｂ〜１４ｂ及び１５ｃが、メモリコントローラ１７ａを介してメモリ１８にアクセスできるように構成される。これにより、個々のＭＣＵ１１ｂ〜１４ｂ及び１５ｃが独自にファームウェアをメモリ部（本実施形態ではメモリコントローラ１７ａとメモリ１８とから構成される）から直接読み込むことが可能となる。尚、メモリ１８へのアクセス権は、ＭＣＵ１５ｃが管理するとよい。また、複数のＭＣＵから同時にメモリ１８へのアクセスが要求された場合、これら要求の調停を内部バス１９のアービトレーションに任せるように構成するとよい。
【００７１】
次に、本実施形態のように、ＭＣＵ１１ｂ〜１４ｂ及び１５ｃのすべてが内部バス１９を介して直接メモリ１８にアクセス可能に構成した場合での、ＭＣＵ１１ｂ〜１４ｂ及び１５ｃに実装されたファームウェアを更新する際の処理手順について、図１６及び図１７を用いて詳細に説明する。
図１６は、ＫＶＭ装置１０ｄの構成を示すブロック図である。但し、図１６では、説明の都合上、メモリコントローラ１７ａを省略し、簡略化して説明するとともに、ＭＣＵ１５ｃをコントロールＭＣＵ１５ｄとして、また、ＭＣＵ１１ｂ〜１１ｂをエミュレートＭＣＵ１１ｃ〜１４ｃとして呼び変える。
図１７は、ＫＶＭ装置１０ｄのＭＣＵ１１ｂ〜１４ｂのファームウェアを更新する際の動作を示すフローチャートである。
【００７２】
図１６を参照すると、本実施形態によるＫＶＭ装置１０ｄは、外部Ｉ／Ｆ５ａに接続されるコントロールＭＣＵ１５ｄと、外部Ｉ／Ｆ１ａ〜４ａに接続されるエミュレートＭＣＵ１１ｃ〜１４ｃと、がコントロールバス１９ａを介して相互にコミュニケーション可能である。コントロールＭＣＵ１５ｄには設定キー１６１が接続される。この設定キー１６１は、第１の実施形態と同様なものであり、スイッチ類１６ａに含まれるキーである。従って、操作者は筐体外部からこれを必要に応じて操作できる。
【００７３】
また、メモリ１８ｂは、メモリバス１９ｂを介してコントロールＭＣＵ１５ｄ及びエミュレートＭＣＵ１１ｂ〜１４ｂと接続されている。従って、メモリ１８における特定範囲のメモリ空間は、メモリバス１９ｂによってエミュレートＭＣＵ１１ｃ〜１４ｃとコントロールＭＣＵ１５ｄとの両方に共有される。また、このメモリ空間へは、コントロールＭＣＵ１５ｄの調停処理によってコントロールＭＣＵ１５ｄ及びエミュレートＭＣＵ１１ｃ〜１４ｃから個別にアクセスされる。従って、コントロールＭＣＵ１５ｄ又はエミュレートＭＣＵ１１ｃ〜１４ｃは、メモリ１８に対して直接ファームウェアの読み出し／書き込みを行う。尚、上述の通り図１６では省略するが、本実施形態ではメモリバス１９ｂとメモリ１８との間にメモリコントローラ１７ａが設けられており、これによりメモリ１８への読み出し／書き込みが制御される。
【００７４】
上記構成において、第１の実施形態と同様に、起動時に設定キー１６１が押下された又は押下状態にあることがコントロールＭＣＵ１５ｄにより検知される。押下された又は押下状態にあることが検知された場合、コントロールＭＣＵ１５ｄ及びエミュレート１１ｃ〜１４ｃはファームウェアをアップデート可能な動作モードに移行する。また、押下された又は押下状態にあることが検知されなかった場合、コントロールＭＣＵ１５ｄ及びエミュレートＭＣＵ１１ｃ〜１４ｃは通常の動作モードに移行してＫＶＭをエミュレートする機能を実現する。以下、図１７を用いてこれらの動作を詳細に説明する。但し、図１７では、エミュレートＭＣＵ１１ｃに着目して説明するが、これは他のエミュレートＭＣＵ１２ｃ〜１４ｃに対しても同様に行われるものである。
【００７５】
図１７を参照すると、コントロールＭＣＵ１５ｄ及びエミュレートＭＣＵ１１ｃは、起動後、初期化処理を実行して動作準備を開始する（ステップＳ１１，ステップＳ２１）。尚、この初期化処理には、第１の実施形態において説明したように、コントロールＭＣＵ１５ｄが自己に接続されたＫＶＭの機種や型式等を認識し、これをエミュレートＭＣＵ１１ｃへ通知する動作も含まれる。
【００７６】
次に、コントロールＭＣＵ１５ｄは、組み込まれたファームウェアのバージョン情報をエミュレートＭＣＵ１１ｃから受信する（ステップＳ２２）。尚、このバージョン情報は、第１の実施形態と同様に、コントロールＭＣＵ１５ｄが認識したＫＶＭに該当する又は関連するファームウェアが特定されて、コントロールＭＣＵ１５ｄへ送信される。また、説明は前後するが、エミュレートＭＣＵ１１ｃは、初期化処理後、自己に組み込まれているファームウェアのバージョン情報の通知をコントロールＭＣＵ１５ｄへ送信する（ステップＳ１２ａ）。
【００７７】
このようにしてエミュレートＭＣＵ１１ｃに組み込まれたファームウェアのバージョン情報を受信すると、コントロールＭＣＵ１５ｄは、メモリ１８に格納されている該当／関連するファームウェアのバージョン情報を特定し、これと受信したバージョン情報とを比較する（ステップＳ２３）。この比較の結果、エミュレートＭＣＵ１１ｃ側のバージョンの方が古い場合（ステップＳ２４のＹｅｓ）、コントロールＭＣＵ１５ｄは、設定キー１６１がＯＮ（押下された又は押下状態にある）か否かを判定する（ステップＳ２５）。この結果、ＯＮでないと判定された場合（Ｓ２５のＮｏ）、コントロールＭＣＵ１５ｄは、通常の動作モードへ移行するために、エミュレートＭＣＵ１１ｃへそのまま処理を続行すること（続行通知）を送信し（ステップＳ２７）、その後、通常の動作モードへ移行する。この際、エミュレートＭＣＵ１１ｃは、以下で説明する流れに沿って動作するが、結果として初期化処理後、そのまま通常の動作モードへ移行するものと同等の動作を行う。
【００７８】
また、ステップＳ２２の結果、ＯＮであると判定された場合（Ｓ２５のＹｅｓ）、コントロールＭＣＵ１５ｄは、エミュレートＭＣＵ１１ｃに対して新しいバージョンのファームウェア、即ちメモリ１８に格納されているファームウェアを送信すること（転送開始通知）を送信した後（ステップＳ２６）、該当するエミュレートＭＣＵ（この場合は１１ｃ）にのみメモリ１８へのアクセスを許可する（ステップＳ２８ａ）。
【００７９】
また、ステップＳ２３の比較の結果、エミュレートＭＣＵ１１ｃ側のバージョンの方が新しい、又は双方のバージョンが等しい場合（ステップＳ２４のＮｏ）、コントロールＭＣＵ１５ｄは、通常の動作モードへ移行するために、エミュレートＭＣＵ１１ｃへそのままの処理を実行すること（続行通知）を送信し（ステップＳ２７）、その後、通常の動作モードへ移行する。
【００８０】
このように、送信された転送開始通知又は続行通知はエミュレートＭＣＵ１１ｃに受信される（ステップＳ１３）。その後、エミュレートＭＣＵ１１ｃは、受信した通知が転送開始通知であるか続行通知であるかを判定する（ステップＳ１４）。この結果、続行通知であると判定された場合（Ｓ１４のＮｏ）、エミュレートＭＣＵ１１ｃは、そのまま通常の動作モードへ移行して既存のファームウェアが示す動作を実行する。
【００８１】
また、ステップＳ１４の結果、転送開始通知であると判定された場合（Ｓ１４のＹｅｓ）、エミュレートＭＣＵ１１ｃは、メモリ１８へのアクセスが許可されているため、直接メモリ１８から該当するファームウェアを読み出し（ステップＳ１５ａ）、これで自己の不揮発性メモリに格納されているファームウェアにおける該当するものを更新する（ステップＳ１６）。更新が終了するとこのこと（終了通知）をコントロールＭＣＵ１５ｄへ送信し（ステップＳ１６ａ）、その後、再度初期化処理を行った後（ステップＳ１７）、通常の動作モードへ移行して新たに実装されたファームウェアが示す動作を実行する。これに対してコントロールＭＣＵ１５ｄは、終了通知を受信した後（ステップＳ２８ｂ）、通常の動作モードへ移行する。
【００８２】
このように動作することで、エミュレートＭＣＵ１１ｃに実装されているファームウェアを随時更新することができる。尚、コントロールＭＣＵ１５ｄとエミュレートＭＣＵ１１ｃとの間で各種通知を送受信する構成は、如何様にも変形することが可能である。例えばシリアル入出力バスであるＩ２Ｃバス等を適用して、コントロールＭＣＵ１５ｄがエミュレートＭＣＵ１１ｃのレジスタを読み込むように構成してもよい。
【００８３】
また、コントロールＭＣＵ１５ｄは、以上の動作を全てのエミュレートＭＣＵ（図１６では１１ｃ〜１４ｃ）に対して実行した後、図１７における通常の動作モードへ移行する。
尚、その他の構成及び動作は、第１の実施形態と同様であるため、ここでは説明を省略する。
【００８４】
〔第６の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第６の実施形態として図面を用いて詳細に説明する。
図１８は、本実施形態によるＫＶＭ装置１０ｅの構成を示すブロック図である。
図１８を参照すると明らかなように、ＫＶＭ装置１０ｅは、第５の実施形態によるＫＶＭ装置１０ｄと比較して、メモリ１８ａが装置外部に設置される点で異なる。即ち、本実施形態によるメモリ１８ａは、第２の実施形態と同様な携帯型メモリで構成される。また、ＫＶＭ装置１０ｅ本体には、このようなメモリ１８ａを取り付けるためのスロットが設けられる。
【００８５】
このようにメモリ１８ａに携帯型のものを適用することで、本実施形態では、第２の実施形態と同様な効果を得られるだけでなく、第５の実施形態と同様な効果も得ることが可能となる。
尚、その他の構成及び動作は、第１の実施形態又は第５の実施形態と同様であるため、ここでは説明を省略する。
【００８６】
〔第７の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第７の実施形態として図面を用いて詳細に説明する。
図１９は、本実施形態によるＫＶＭ装置１０ｆの構成を示すブロック図である。
図１９を参照すると明らかなように、ＫＶＭ装置１０ｆは、第５の実施形態によるＫＶＭ装置１０ｄと比較して、メモリコントローラ１７ａが削除され、メモリ１８ｄが直接内部バス１９に接続される点で異なる。これは、内部バス１９が例えばＩ２Ｃバスである場合、メモリ１８ｄにＩ２Ｃバスインタフェースを設けることで実現される。
【００８７】
このようにメモリ１８ｄにＩ２Ｃバスインタフェースを持たせ、直接内部バス１９に接続することで、第５の実施形態と同様の効果を得られる他に、モリコントローラ１７ａの構成を削除することで、第３の実施形態と同様な効果を得ることができる。
尚、その他の構成及び動作は、第１の実施形態又は第５の実施形態と同様であるため、ここでは説明を省略する。
【００８８】
〔第８の実施形態〕
また、本発明によるＫＶＭ装置の他の例について、以下に第８の実施形態として図面を用いて詳細に説明する。
図２０は、本実施形態によるＫＶＭ装置１０ｇの構成を示すブロック図である。
図２０を参照すると明らかなように、ＫＶＭ装置１０ｇは、第５の実施形態によるＫＶＭ装置１０ｄと比較して、メモリコントローラ１７ａが削除され、装置外部に設けられたメモリ１８ｅが直接内部バス１９に接続される点で異なる。これは、メモリ１８ｅを第２の実施形態と同様な携帯型メモリで構成し、更にこのメモリ１８ｅにＩ２Ｃバスインタフェースを設けることで実現される。
【００８９】
このようにメモリ１８ｅを携帯型メモリで構成することで、第２の実施形態と同様の効果を得られる他に、メモリ１８ｅにＩ２Ｃバスインタフェースを持たせ、直接内部バス１９に接続することで、第５の実施形態と同様の効果を得られ、更に、モリコントローラ１７ａの構成を削除することで、第３の実施形態と同様の効果を得ることができる。
尚、その他の構成及び動作は、第１の実施形態又は第５の実施形態と同様であるため、ここでは説明を省略する。
【００９０】
〔他の実施形態〕
また、上記した各実施形態は本発明を好適に実施した形態の一例にすぎず、本発明はその趣旨を逸脱しない限り種々変形して実施可能である。
【００９１】
【発明の効果】
以上説明したように、本発明によれば、外部インタフェースに接続されたデバイスに応じて所定のメモリから選択したファームウェアをマイクロコントローラ（ＭＣＵ）に実装させるインタフェース装置であって、前記所定のメモリが、格納しているファームウェアの書き換えが可能であることを特徴とすることによって、対応デバイスの制限なくエミュレートが可能なインタフェース装置を提供することが可能となる。即ち、本発明によるインタフェース装置は、自己にとって未知のデバイスであっても、ファームウェアを更新することでこれを既知とすることができるため、如何なるデバイスでも対応することが可能となる。また、このような構成を有することで、本発明によるＫＶＭ装置は、常に最新のデバイスに対応することも可能となる。
更に、ファームウェアを格納するメモリに携帯型の不揮発性メモリを適用することにより、より利便にファームウェアの管理・更新をすることが可能となる。
【図面の簡単な説明】
【図１】従来技術によるＫＶＭ装置１００を適用したシステム構成を示すブロック図である。
【図２】ＫＶＭ装置１００の内部構成を示すブロック図である。
【図３】外部Ｉ／Ｆ１ａ〜５ａに含まれるＩ／Ｆ群を説明するための図である。
【図４】図２に示すＫＶＭ装置１００においてＰＣ１がアクティブな状態を説明するための図である。
【図５】図４に示すＫＶＭ装置１００の状態からＰＣ４をアクティブな状態に変化させた際の状態を説明するための図である。
【図６】ＰＣ１に組み込まれたＯＳ１ｂの構成とＭＣＵ１１との接続を示す図である。
【図７】キーボード２１の一般的構成とキーボード用Ｉ／Ｆ群２１ａとの接続を示す図である。
【図８】本発明の第１の実施形態によるＫＶＭ装置１０の構成を示すブロック図である。
【図９】メモリ１８に格納されたファームウェアを任意に書き換える際の手順を示すシーケンスである。
【図１０】本発明の第１の実施形態においてエミュレートＭＣＵ１１ａ〜１４ａのファームウェアを更新する際の動作を説明するために用いるＫＶＭ装置１０の構成を示すブロック図である。
【図１１】本発明の第１の実施形態においてエミュレートＭＣＵ１１ａ〜１４ａのファームウェアを更新する際の動作を示すフローチャートである。
【図１２】本発明の第２の実施形態によるＫＶＭ装置１０ａの構成を示すブロック図である。
【図１３】本発明の第３の実施形態によるＫＶＭ装置１０ｂの構成を示すブロック図である。
【図１４】本発明の第４の実施形態によるＫＶＭ装置１０ｃの構成を示すブロック図である。
【図１５】本発明の第５の実施形態によるＫＶＭ装置１０ｄの構成を示すブロック図である。
【図１６】本発明の第５の実施形態においてエミュレートＭＣＵ１１ｃ〜１４ｃのファームウェアを更新する際の動作を説明するために用いるＫＶＭ装置１０ｄの構成を示すブロック図である。
【図１７】本発明の第５の実施形態においてエミュレートＭＣＵ１１ｃ〜１４ｃのファームウェアを更新する際の動作を示すフローチャートである。
【図１８】本発明の第６の実施形態によるＫＶＭ装置１０ｅの構成を示すブロック図である。
【図１９】本発明の第７の実施形態によるＫＶＭ装置１０ｆの構成を示すブロック図である。
【図２０】本発明の第８の実施形態によるＫＶＭ装置１０ｇの構成を示すブロック図である。
【符号の説明】
１〜４  ＰＣ
１ａ〜５ａ  外部Ｉ／Ｆ
１ｂ  ＯＳ
１ｂ１  コントローラ
１ｂ２  デバイス・ドライバ・スタック
１ｂ３  アプリケーション・ソフトウェア
１０、１０ａ〜１０ｇ  ＫＶＭ装置
１６、１６ａ  スイッチ類
１１〜１５、１１ｂ〜１５ｂ、１５ｃ  ＭＣＵ
１１ａ〜１４ａ、１１ｃ〜１４ｃ  エミュレートＭＣＵ
１５ａ、１５ｄ  コントロールＭＣＵ
１６ａ  スイッチ類
１６１  設定キー
１７、１７ａ  メモリコントローラ
１８、１８ａ、１８ｄ、１８ｅ  メモリ
１９  内部バス
１９ａ  コントロールバス
１９ｂ  メモリバス
２１  キーボード
２１ａ  キーボード用Ｉ／Ｆ群
２１ｂ  ＭＣＵ
２１ｃ  キーボードマトリクス
２１ｄ  ＬＥＤ
２２  マウス
２２ａ  マウス用Ｉ／Ｆ群
２３  ディスプレイ
２３ａ  ディスプレイ用Ｉ／Ｆ群
１００  ＫＶＭ装置
【図１】
0004527348.tif 000002
【図２】
0004527348.tif 000003
【図３】
0004527348.tif 000004
【図４】
0004527348.tif 000005
【図５】
0004527348.tif 000006
【図６】
0004527348.tif 000007
【図７】
0004527348.tif 000008
【図８】
0004527348.tif 000009
【図９】
0004527348.tif 000010
【図１０】
0004527348.tif 000011
【図１１】
0004527348.tif 000012
【図１２】
0004527348.tif 000013
【図１３】
0004527348.tif 000014
【図１４】
0004527348.tif 000015
【図１５】
0004527348.tif 000016
【図１６】
0004527348.tif 000017
【図１７】
0004527348.tif 000018
【図１８】
0004527348.tif 000019
【図１９】
0004527348.tif 000020
【図２０】
0004527348.tif 000021