(57)【特許請求の範囲】
【請求項１】
第１および第２のデータ・セットをそれぞれ生成する少なくとも第１および第２の動作モードのうち選択可能な１つの動作モードで動作するように構成可能な入力装置とデータを交換する手段と、
少なくとも第１のアプリケーションと第２のアプリケーションとを実行する手段と、
接続された装置の有無を判断し、前記装置が有ると判断された場合、さらに接続された前記装置の装置記述子についての検査の結果に応答して発行される前記第１および第２のデータ・セットのうち少なくとも１つのデータ・セットを指令するデータを前記入力装置から受け取る手段と、
前記第１および第２のアプリケーションに関するデータ構造を記憶するメモリと、
受け取った前記データを検査して次の動作モードを識別させるビット・パターンを前記メモリに設定し、タイマーのオーバーフローに応答してリセット動作を実行し、前記入力装置から受け取ったデータを前記入力装置の現行動作モードに従って前記第１および第２のアプリケーションのうち少なくとも１つのアプリケーションまで経路指定する手段とを含む、データ処理装置。
【請求項２】
前記入力装置から受け取った前記データが前記入力装置の現行動作モードを識別するデータを含む、請求項１に記載のデータ処理システム。
【請求項３】
前記入力装置から受け取った前記データが前記第１のデータ・セットと前記第２のデータ・セットのうち少なくとも１つのデータ・セットを選択させるデータを含む、請求項１または２に記載のデータ処理システム。
【請求項４】
データを交換する前記手段が所定のタイプのバスを介してデータの出力と受領を行う手段を含む、請求項３に記載のデータ処理装置。
【請求項５】
所定のタイプの前記バスがＵＳＢバス・インタフェースである、請求項４に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般には入力装置に関し、詳細には、複数のモードで動作可能なユニバーサル・シリアル・バス（ＵＳＢ）装置として動作するキーボードおよびその他の装置に関する。
【０００２】
【従来の技術】
ＰＯＳ（Point-of-Sale）端末などの多くの用途では、スキャナ、キャッシュ・ドロワ（cash drawer）、ビデオ・モニタ、プリンタ、キーボードなど、多様な装置をサポートするベースとしてパーソナル・コンピュータが使用されている。ＰＯＳ端末では、キーボードは、パーソナル・コンピュータで一般に使用されている１１２キー・キーボード（すなわち、「従来型キーストローク・データ」を入力するために使用される「標準キーボード」）よりも多くのキーを備えていることが多い。ＰＯＳ端末の追加のキーは、キャッシュ・レジスタ・コマンドや、ＰＯＳ端末に特に関係するその他のコマンドなどの「非従来型キーストローク・データ」の入力を可能にする。この種の端末の多くは、DOS、Windows (R) 3.11、Windows (R) 9x、またはWindows (R) NTなどの標準オペレーティング・システムを使用する。また、この種の端末は、オペレーティング・システムとＰＯＳアプリケーション・プログラムとの間に階層化されたソフトウェア・ドライバやプログラムの特殊ソフトウェア・システムまたは「中間層」システムも使用する。このドライバとプログラムのシステムは、当業者にはＰＯＳＳ（Point-of-Sale Subsystem）と呼ばれている。これらは、オペレーティング・システムがロードされた後、アプリケーション・プログラムがロードされる前に、コンピュータ・メモリにロードされるため「中間層」とみなされる。ＰＯＳＳは、チェック・スキャナやキャッシュ・レジスタ・ドロワなど、ＰＯＳ端末環境固有のハードウェアと装置の制御と動作に必要な追加のドライバと機能を備える。
【０００３】
アプリケーション・プログラムは、一般にオペレーティング・システムとＰＯＳＳがロードされた後でロードされる（すなわち、オペレーティング・システムの上にある）ため、「上位層」プログラムとみなされる。アプリケーション・プログラムは、２種類のタスクを行う。すなわち、販売取引に関する入力テキストや数字の受入れなど、実行中の作業に関するタスクと、ファイルの管理や画面上での情報の表示など保守作業に関するタスクである。保守作業は、実際には、アプリケーション・プログラムの要求に応じてＰＯＳＳまたはオペレーティング・システムによって行われる。保守作業は、当業者には下位層機能とみなされている。標準アプリケーション・プログラムとは、一般にパーソナル・コンピュータ上で稼働するプログラムであり、例として、Microsoftの WORDやEXCELなどがある。すなわち、特にＰＯＳ環境で動作するように設計されたもの以外のアプリケーションである。それに対して、特殊アプリケーション・プログラムとは、特にＰＯＳ環境で動作するように設計されたアプリケーションである。
【０００４】
【発明が解決しようとする課題】
新たに導入されたＵＳＢにより、多くの周辺装置をＰＣに組み込むことができるが、非標準装置にはいくつか問題がある。既存のＵＳＢアーキテクチャは、ＰＯＳキーボードの追加キーをサポートしておらず、通常のキーストローク・データ以外のキーボード・データもサポートしていない。したがって、ＵＳＢキーボードは、ＰＯＳアプリケーション・プログラムが特定のキーボードと共に動作するように設計されていない限り、ＰＯＳ端末で使用することはできない。換言すれば、各アプリケーションを様々なＰＯＳキーボードとインタフェースするように特別に作成しなければならず、その結果、ソフトウェアの開発やメンテナンス、サポートのコストが高くなる。さらに、特定のキーボードと共に動作するようにアプリケーション・プログラムを作成する場合、新しいＰＯＳキーボードまたは異なるＰＯＳキーボードをサポートする必要が生じるたびに、アプリケーション・プログラムを改訂しなければならないため、柔軟性が著しく失われる。
【０００５】
本発明の目的は、従来技術の上記の問題を少なくとも軽減することである。
【０００６】
【課題を解決するための手段】
したがって、本発明の第１の態様は、コンピュータ用の装置であって、該装置は少なくとも２つの動作モードのうち選択可能な１つのモードで動作し、該装置を少なくとも２つの上記動作モードのうち１つの動作モードである指定動作モードで動作するように構成するモード・コントローラと、コンピュータによる処理のための上記指定動作モードに関するデータを出力する出力手段とを含む装置を提供する。
【０００７】
第１の動作モードは、ＰＯＳ端末およびそれに付随する入力装置に関係するかまたはそれらから導き出されるデータである第３のデータ・セット以外のデータ、すなわち第１のデータ・セットを生成するコンピュータ・キーボードの動作に対応するかまたは少なくともエミュレートすることが好ましい。
【０００８】
この装置は、ＰＯＳ装置として使用するように構成可能なことがわかるであろう。好適には、一実施形態は、第２の動作モードを備え、キーボード・データと、ＰＯＳ端末およびそれに付随する入力装置に関係するかまたはそれらから導き出されるデータの両方に関係するデータの生成をサポートする。
【０００９】
さらに他の動作モードが企図される状況もあり得る。したがって、本発明の他の態様は、少なくとも第３の動作モードで動作可能な装置を提供し、モード・コントローラは、この装置を第３の動作モードで動作するように構成する手段を含む。
【００１０】
コンピュータは、第１ないし第３の動作モードのうち少なくとも１つの動作モードで動作するように装置に指示することができることが好ましい。したがって、一実施形態では、コンピュータから所定のタイプのバスを介して、装置によって採用されるべき動作モードを指定するデータを受け取る受信器を含む装置を提供する。
【００１１】
装置とコンピュータとの接続を容易にするために、一実施形態では所定のタイプのバスがユニバーサル・シリアル・バスである装置を提供することが好ましい。
【００１２】
第１ないし第３の動作モードのうち１つの動作モードで動作するように構成されているため、装置はコンピュータに記憶されている現行動作モードに関する情報を更新することが好ましい。したがって、一実施形態では、指定動作モードに関するデータが、装置の現行動作モードをコンピュータに識別させるモード識別データを少なくとも含む装置を提供する。
【００１３】
選択された動作モードのうち１つの動作モードで動作するように構成された後は、装置によって生成されるデータはキーボード・データ、またはキーボード・データに加えてＰＯＳ端末から導き出されるかまたはそれに関するデータに対応することになる。したがって、他の実施形態では、指定動作モードに関するデータが、第１のデータセットと第２のデータ・セットとのうち少なくとも１つのデータ・セットを含み、第１および第２のデータ・セットが指定動作モードによって決定する装置を提供する。
【００１４】
この装置は、装置から出力されるデータを処理することを意図したアプリケーションに応じた動作モードのうち１つの動作モードで動作するように構成される。場合によっては、このアプリケーションは、従来型キーボード・データと、ＰＯＳ端末またはそれに付随する入力装置に関するかまたはそれから導き出されたデータの両方を処理することができることもある。一実施形態では、第２のデータ・セットが第１のデータ・セットと第３のデータ・セットとを含み、第３のデータ・セットが、所定のアプリケーション固有の入力または所定のアプリケーション固有の他の入力装置から導き出される装置を提供することが好ましい。
【００１５】
本発明のこれらの実施形態は、特にＰＯＳアプリケーションに関連して適用される。
【００１６】
互換データ処理システムまたはコンピュータが、この装置によって生成されるデータを処理する必要がある。したがって、本発明の一実施形態は、第１および第２のデータ・セットをそれぞれ生成することができる少なくとも第１および第２の動作モードのうち選択可能な１つの動作モードで動作するように構成可能な入力装置とデータを交換する手段と、少なくとも第１のアプリケーションと第２のアプリケーションとを実行する手段と、第１および第２のデータ・セットのうち少なくとも１つのデータ・セットからのデータを含むデータを入力装置から受け取る手段と、第１および第２のアプリケーションに関するデータ構造を記憶するメモリと、入力装置から受け取ったデータを入力装置の現行動作モードに従って第１および第２のアプリケーションのうち少なくとも１つのアプリケーションまで経路指定する手段とを含む、データ処理装置を提供する。
【００１７】
本発明の他の実施形態は、データ通信バスに結合されたＣＰＵ（すなわちコンピュータ・ユニット）と、オペレーティング・システムと、アプリケーション・プログラムと、第１のモードと少なくとも第２のモードとで動作することによってデータ通信バスを介してコンピュータ・ユニットと通信する入力装置とを含むコンピュータ・システム（すなわちホスト・コンピュータ）を提供する。
【００１８】
本発明の他の実施形態は、ユニバーサル・シリアル・バス（ＵＳＢ）装置と、ホスト・コンピュータ上で実行されているソフトウェア・アプリケーション・プログラムとの間の通信のための方法であって、この通信がＵＳＢモードと少なくとも１つの非標準ＵＳＢモードで行われる方法を提供する。この方法は、ホスト・コンピュータ上で稼働しているオペレーティング・システム内の標準データ・スタックの一部を迂回する独立したデータ・スタックから成る非標準データ構造を作成するステップを含む。
【００１９】
本発明の実施形態により、ＰＯＳキーボードは、複数のモード、言い換えると、第１のモード、すなわち標準キーボードとしてのモードと、ＰＯＳキーボード・モードのような１つまたは複数の他のモード、すなわち第２または第３の動作モードで動作することが可能になる。第１のモードは、基本入出力システム（ＢＩＯＳ）、オペレーティング・システム、診断プログラムなどの「下位層」ソフトウェアの更新とロードに好適である。キーボードが標準キーボードとして機能することができない場合、本発明の実施形態がなければ、下位層ソフトウェアを更新する際に別のキーボードを使用しなければならないことになる。さらに、このようなキーボードは、動作モードを容易に切り換えることができなければならない。
【００２０】
標準キーボードまたはキーボード・データあるいはその両方は、ＩＳＯ規格ＩＥＣ９４８：１９８８、ＩＳＯ３７９１：１９７６、ＩＳＯ３７９２：１９７６、ＩＳＯ／ＩＥＣ９９９５−１：１９９４からＩＳＯ／ＩＥＣ９９９５−８：１９９４まで、ＩＳＯ／ＩＥＣ１４７５５：１９９７、ＩＳＯ／ＩＥＣ１６５４１１：１９９９、ＩＳＯ／ＩＥＣ１５４１２：１９９９、またはＡＮＳＩの同等の規格のいずれかで定義されているキーボードまたはキーボード・データに対応していることが好ましい。
【００２１】
さらに、本発明の実施形態は、キーボードが標準ＵＳＢキーボードをエミュレートするように標準ＵＳＢポートを介してＰＯＳ端末に接続する第２または非標準タイプのＵＳＢキーボードを提供する。他の態様では、このキーボードは、追加のＰＯＳキーの認識（ＰＳモード）を可能にする。他の態様では、このキーボードにより、ＵＳＢを介して通信する代替プロトコルを使用することができる。
【００２２】
一実施形態は、好ましくはＵＳＢモードである３つの機能モードで動作するキーボードを使用するコンピュータ・システムを提供することが好ましい。第１の動作モードすなわち標準動作モードは、標準コンピュータ・キーボードのキーと発光ダイオード（ＬＥＤ）のみをサポートする標準ＵＳＢキーボード・モードである。このモードでは、ＰＯＳ機能キーは、ＵＳＢ標準（ユニバーサル・シリアル・バス仕様第１．１版、１９９８年９月２３日）に記載されている特殊キーに割り当てられるが、これらのキーはＦ１３、Ｆ１４、ミュートなど、標準ＰＣキーボードにはないキーである。このモードでのキーボードにあるこのような標準キーは、ＰＯＳ機能キーに依存しないソフトウェア・アプリケーションによって使用可能である。したがって、ユーザは、キーボードを使用する前に相対的に上位の層のドライバのロードに頼らずにＢＩＯＳの更新、ＤＯＳの使用、またはその他の機能の実行を行うことができる。
【００２３】
第２のモードは、標準コンピュータ・キーボードに加えてＰＯＳ機能キーをサポートする。このモードは、ユーザによって現行アクティブ・ウィンドウとして選択される任意のアプリケーションでも使用可能である。操作者から見て現行アクティブ・ウィンドウであるとは、ウィンドウが他のウィンドウの「上」にあることを意味する。したがって操作者は、現行アクティブ・ウィンドウと直接インタフェースすることができる。キーボードからのキーストロークは、標準オペレーティング・システムＵＳＢソフトウェア・スタックの一部をいったん迂回してから標準オペレーティング・システムＵＳＢスタックに戻って接続する新しいソフトウェア・ドライバを介して、アプリケーション・プログラムに伝達される。ＵＳＢスタックは、その後、オペレーティング・システム・メッセージ待ち行列に接続する。メッセージ待ち行列は、送信を待つメッセージの順序づけられたＦＩＦＯ列である。
【００２４】
第３のモードは、ＵＳＢを介して通信する代替プロトコルを使用して、標準コンピュータ・キーボード・キーに加えてＰＯＳ機能キーとＬＥＤをサポートする。このモードは、ＰＯＳ販売アプリケーションによってのみ使用可能である。すべてのキーボード・データは、ＰＯＳＳドライバと直接通信するソフトウェア・ドライバを介して伝達される。したがって、この通信は標準オペレーティング・システムＵＳＢソフトウェア・スタックと標準オペレーティング・システム・メッセージ待ち行列をすべて迂回する。このモードでは、操作者は端末の非ＰＯＳアプリケーションにアクセスすることができない。
【００２５】
このキーボードがこれらのモードで動作可能なのは、（１）それ自体を異なるＵＳＢ装置として識別させることができるキーボードのファームウェア内の追加のソフトウェア・ルーチンと、（２）標準ＵＳＢドライバ（すなわちオペレーティング・システムに付随しているドライバ）と共存するホスト内の追加のソフトウェア・ドライバとによる。これらの追加のドライバは、標準ＵＳＢデータ・スタックから独立して動作するように、ホストのメモリ内に追加のデータ・スタックを作成する。さらに、ＵＳＢホストにキーボードを新しい装置としてリストまたは識別させてモードの切換えを行うことができるようにするハードウェア手段も備える。
【００２６】
【発明の実施の形態】
以下に、本発明の実施形態について、添付図面を参照しながら説明するが、これは例示的なものに過ぎない。
【００２７】
図１を参照すると、ホスト・コンピュータ・ユニットまたはホスト中央処理装置（ＣＰＵ１０１）を含むコンピュータが図示されている。ＣＰＵ１０１は、ランダム・アクセス・メモリ（ＲＡＭ）１０６にプログラム、命令、およびデータを読み込む。また、ＣＰＵ１０１は、データ・バスを介してＵＳＢホスト・コントローラ１０２とデータを交換する。ＵＳＢホスト・コントローラ１０２は、対応するＵＳＢネットワークまたはバス、すなわちデータ通信手段に接続されたＵＳＢ装置とインタフェースし、それを制御する。本実施形態では、ＵＳＢホスト・コントローラ１０２は、ＵＳＢ対応キーボード１０５を制御する。モニタ１０４、ハード・ドライブ、パラレル・プリンタ、シリアル・モデムなど、その他の非ＵＳＢ装置は、入出力サブシステム１０３を介してＣＰＵ１０１と通信する。入出力サブシステム１０３は、複数のコンピュータ周辺装置と通信するための複数の異なるポートを備える。
【００２８】
ＵＳＢホスト・コントローラ１０２によって、ＣＰＵ１０１は、適切なドライバおよびデータ構造がＲＡＭ１０６にロードされている場合、ＵＳＢ装置に対してＵＳＢ装置自体をＵＳＢホスト・コントローラ１０２から論理的に切断してまったく異なる装置として再接続するように指示することができる。ハードウェア・インタフェースは同じままであるが、ホスト・コンピュータには元の装置が切断され、その代わりに別のＵＳＢ装置が接続されたかのように見える。この「新しい」装置は、異なるＵＳＢソフトウェア・インタフェースを介してＲＡＭ１０６内のＵＳＢデータ・スタックのうち異なる部分と通信する。
【００２９】
ＵＳＢプロトコルは、装置の始動時、または稼働中に装置がプラグインされたときに、装置を構成することができる。これらの装置は、様々な装置クラスに分かれる。各装置クラスは、類似した機能を果たす装置について共通の動作とプロトコルを定義する。ヒューマン・インタフェース・デバイス（Human Interface Device:ＨＩＤ）クラスは、主として、人間がコンピュータ・システムの動作を制御するために使用する装置から成る。典型例は、キーボードやポインティング・デバイスである。
【００３０】
図２は、ホスト・コンピュータのＲＡＭ１０６内に作成されるデータ・スタックを示す機能概略図である。アプリケーション・プログラム、ＰＯＳＳ、オペレーティング・システム、マイクロプロセッサ間の通信は、データ・スタックまたは通信コンジットを介して行われる。データ構造は、データに適用されて、様々なルーチンおよびプログラムによってデータに対して特定の操作を行うことができるようにする組織構造である。
【００３１】
ＵＳＢ／ＨＩＤクラス装置は、対応するＨＩＤクラス・ドライバ２０２を使用してすべてのデータの取出しと経路指定を行う。ＵＳＢ装置からのＵＳＢデータは、図１に示すＵＳＢホスト・コントローラ１０２などの、ＵＳＢハブまたはＵＳＢホスト・コントローラまたはサブシステムに送られてから、ＨＩＤクラス・ドライバ２０２などの下位層プログラムまたはドライバを介してホスト・コンピュータ・メモリであるＲＡＭ１０６に送られる。Windows (R) NTなどの典型的なオペレーティング・システムでは、従来のＰＣキーボードは「ブート」モードで操作される。「ブート」モード・キーボード・データは、データ経路２０３を通ってＵＳＢキーボード・ドライバ２０４に送られる。ＵＳＢキーボード・ドライバ２０４は、キーボードと対話するように設計された標準ドライバである。ＵＳＢキーボード・ドライバ２０４は、キーボードからのキーボード・データをデータ経路２０５を通してＵＳＢキーボード・クラス・ドライバ２０６に渡す。ＵＳＢキーボード・ドライバ２０４は、通常はオペレーティング・システムの一部である「ブート・モード」キーボード・ドライバである。ＵＳＢキーボード・ドライバ２０４は、ＰＯＳ固有のキーストロークを認識しない。キーボード・クラス・ドライバ２０６は、キーボード・クラスのためのドライバであり、すべてのキーボード関連機能を扱うように設計されている。キーボード・クラス・ドライバ２０６は、オペレーティング・システム固有であるが、通常はキーボード・バス（たとえばＰＳ／２やＵＳＢ）とは独立している。したがって、ＵＳＢキーボード・クラス・ドライバ２０６は、ＵＳＢキーボードとシステム接続キーボードの両方をサポートする汎用キーボード・クラス・ドライバである。それに対してＵＳＢキーボード・ドライバ２０４は、ブート・モードＵＳＢキーボードとのみ使用される。ＵＳＢキーボード・クラス・ドライバ２０６は、特別なソフトウェア・ドライバがなくでもキーボードが動作することができるようにする。
【００３２】
データはＵＳＢキーボード・クラス・ドライバ２０６からデータ経路２０７を介してオペレーティング・システム・メッセージ待ち行列２０８に送られる。オペレーティング・システムは、メッセージ待ち行列に入れられたメッセージを介してアプリケーション・プログラム２１０または２１２と通信する。メッセージ待ち行列２０８は、オペレーティング・システムのための主入力待ち行列である。この待ち行列は、キーストローク・データと、マウスの移動、ウィンドウのサイズ変更または移動イベントなどのその他の入力イベント用に設計されている。データはオペレーティング・システム・メッセージ待ち行列２０８から、データ経路２０９を介してＰＯＳアプリケーション２１０に送られるか、またはオペレーティング・システム環境で実行可能な通常の（非ＰＯＳ）アプリケーション２１２に送られる。オペレーティング・システムメッセージ待ち行列２０８と通常の（非ＰＯＳ）アプリケーション２１２との間のデータ経路は、データ経路２１３である。ＨＩＤクラス・ドライバ２０２からデータ経路２０３、２０５、２０７、および２１３を通って非ＰＯＳアプリケーション２１２までのデータ・フローを、データ・スタックと呼ぶ。
【００３３】
データ経路２０３、２０５、２０７、および２１３によって規定されるこのようなデータ・スタックを、標準「ブート・モード」オペレーティング・システムＵＳＢスタックと呼ぶ。標準コンピュータ・キーストロークのみが、このデータ・スタックを通ってアプリケーション・プログラム２１２まで伝達される。このデータスタックは、標準のオペレーティング・システム・ドライバを使用する。したがって、本発明の実施形態は、このスタックを使用した場合、従来のコンピュータ・キーボードとして動作する。したがって、標準オペレーティング・システム・ドライバは追加のＰＯＳ機能キーを認識しないため、コンピュータは追加のＰＯＳ機能キーを認識しない。
【００３４】
磁気ストライプ・リーダー（ＭＳＲ）データやＰＯＳ機能データ（ＬＥＤ、キー・ロック、表示など）などのＰＯＳデータが新しいデータ・スタックを通して経路指定されている間に、標準キーストローク・データが標準ＵＳＢスタックの一部まで経路指定される場合、第２の「非ブート・モード」が規定される。このモードでは、すべてのデータがＨＩＤクラス・ドライバ２０２から経路２１５を通してＵＳＢ  ＰＯＳキーボード・ドライバ２１４に送られる。ＵＳＢ  ＰＯＳキーボード・ドライバ２１４が好ましいのは、標準キーストローク・データとＰＯＳキーストローク・データを同期させる必要があるためである。言い換えると、ＵＳＢ  ＰＯＳキーボード・ドライバ２１４は、ＵＳＢキーボード・ドライバ２０４の代替ドライバである。ＵＳＢ  ＰＯＳキーボード・ドライバ２１４は、データをタイプによって３つのルートに分割する。第１のルートでは、キーストローク・データはＵＳＢキーボード・ドライバ２０４を迂回し、キーボード・クラス・ドライバ２０６の最下部にあるＭｉｃｒｏｓｏｆｔ  ＵＳＢスタックに入る。したがって、「非ブート」モード・キーストローク・データ用のデータ・スタックは、経路２１５、２１７、２０７、および２０９によって規定することができる。第２のデータ・タイプであるＭＳＲデータは、経路２１９を通ってＰＯＳサブシステム（ＰＯＳＳ）２１６内のＭＳＲルーチンに送られる。第３のデータ・タイプであるＰＯＳ機能データは、経路２２１を通ってＰＯＳＳ２１６のキーボード・ルーチンに送られる。ＰＯＳＳ２１６は、必要なときにデータ経路２２５を通してＭＳＲおよびＰＯＳ機能データをアプリケーション・プログラムに送る。したがって、ＵＳＢ  ＰＯＳキーボード・ドライバ２１４は「非ブート」モード（標準ＰＣキーにＰＯＳキーを加えたキー）でキーボードを機能させる。「非ブート」モードによって、キーボードのＰＯＳ機能に加えて、標準コンピュータ・キーとＰＯＳキーのサポートが可能になる。したがって、操作者は、ＰＯＳアプリケーション・プログラムに加えて通常のアプリケーション・プログラムを実行することができる。
【００３５】
すべてのキーボード・データが標準ドライバと標準ＵＳＢスタックを迂回する場合、第３のモード（「レガシー・モード」）が規定される。このモードでは、ＨＩＤクラス・ドライバ２０２はデータ経路２１８を通してＵＳＢ  ＰＯＳキーボード・ドライバ２１４にデータを送る。ＵＳＢ  ＰＯＳキーボード・ドライバ２１４は、すべてのキーボードのデータ・トラフィックをオペレーティング・システムＵＳＢスタック（すなわちＵＳＢキーボード・ドライバ２１４とキーボード・クラス・ドライバ２０６とオペレーティング・システム・メッセージ待ち行列２０８）を通って経路指定する。ＵＳＢ  ＰＯＳキーボード・ドライバ２１４は、データ経路２１９を通してＭＳＲデータをＰＯＳＳ２１６内のＭＳＲルーチンまで経路指定する。キー・ロック・データとＰＯＳ  ＬＥＤデータは、データ経路２２１を通してＰＯＳＳ２１６内のキーボード・ルーチンまで経路指定される。レガシー・モードでのキーボード・データは、経路２２３通してＰＯＳＳ２１６内のキーボード・ルーチンまで経路指定される。このモードによって、ＰＯＳキーおよびキーボードのその他のＰＯＳ機能に加えて標準コンピュータ・キーのサポートが可能になる。このモードでは、キーボードは、非ＰＯＳのWindows (R)プログラムとは直接対話しない。ＰＯＳＳ２１６は、ＰＯＳＳ２１６に登録されているＰＯＳアプリケーション・プログラムとのみ対話する。この動作モードは、操作者がホスト・コンピュータの非ＰＯＳアプリケーション・プログラムにアクセスするのを防止するので有利である。
【００３６】
図３を参照すると、キーボード制御システムおよびハードウェアの様々な内部機構のブロック図が示されている。キーボード１０５は、ＵＳＢケーブル（図示せず）を介してホストＣＰＵ１０１と対話する。キーボード１０５は、マイクロコントローラ／ＵＳＢインタフェース３０４、キーボード・スイッチ・マトリックスおよびキーボード・インタフェース回路３１０、デジタル・メモリ３０６または３０８あるいはその両方、電圧調整器３０２などの複数の従来型キーボード構成要素を含む。デジタル・メモリは、フラッシュ・メモリ、読取り専用メモリ（ＲＯＭ）３０６、またはランダム・アクセス・メモリ（ＲＡＭ）３０８とすることができる。キーボードの動作と制御は、ＲＯＭ３０６から読み取られた命令または動作論理に応答して主としてマイクロコントローラ／ＵＳＢインタフェース３０４によって行われる。このような記憶論理は、「ファームウェア」とも呼ばれる。ＲＡＭ３０８には、コンピュータ操作者によって入力された情報と、動作中にマイクロコントローラ／ＵＳＢインタフェース３０４によって使用されるプログラム変数が記憶される。
【００３７】
マイクロコントローラ／ＵＳＢインタフェース３０４は、ＵＳＢアプリケーション用の周辺装置マイクロコントローラである。このようなマイクロコントローラは、オンチップＵＳＢモジュールを有する。ＵＳＢモジュールは、マイクロコントローラと共に、周知の方式でＵＳＢ装置の機能を定義し、実現する。マイクロコントローラ／ＵＳＢインタフェース３０４は、ウォッチドッグ・タイマー３０７も備える。ウォッチドッグ・タイマー３０７は、動作の完了に失敗した場合に、マイクロコントローラ／ＵＳＢインタフェース３０４を自動的にリセットする回路である。ウォッチドッグ・タイマー３０７は、ＲＯＭ３０６に記憶されているファームウェアによってイネーブルされると稼働を開始し、ファームウェアが介入しなければオーバーフローし、マイクロコントローラ／ＵＳＢインタフェース３０４のチップ・リセットを開始する。したがって、マイクロコントローラ／ＵＳＢインタフェース３０４がリセットされる。通常動作中、ファーウェアはウォッチドッグ・タイマー３０７を定期的にクリアしてリセットを防ぐ。
【００３８】
キーボード・インタフェース回路３１０は、ＰＣタイプのコンピュータ・システムまたはＰＯＳコンピュータ・システムのキーボード用の従来のプロトコルにしたがって動作する。キーボード・インタフェース回路３１０は、キーボード・スイッチ・マトリックスを監視し、マイクロコントローラ／ＵＳＢインタフェース３０４によって走査されると、キーボードで押下されたキーに対応するキーストローク信号を生成する。
【００３９】
図４に、本発明の装置の一実施形態の動作の流れ図を示す。図４に示す処理ステップは、一実施形態では、ＵＳＢ  ＰＯＳキーボード・ドライバ２１４によって行われるステップである。ＵＳＢ  ＰＯＳキーボード・ドライバ２１４がこの特定のルーチンを呼び出すと、ステップ４０２で実行が開始される。ステップ４０４で、予備探索によって、ＵＳＢに接続された標準（ブート）キーボードがあるか否かが判断される。ステップ４０４で、ＵＳＢに接続された標準（ブート）キーボードがあると判断された場合、ステップ４０６で、ＵＳＢインタフェースを介してキーボードによって送られた装置記述子を調べて、それらのキーボードのいずれかがマルチモード・キーボードであるか否かが判断される。ステップ４０４またはステップ４０６での判断が否定の場合、マルチモード・キーボードは存在せず、このルーチンの残りの部分はスキップされる。ホスト・コンピュータは、第１のモード、すなわちブート・モードで動作することができ、標準のドライバとデータ・スタックとデータ構造とを使用する。あるいは、ステップ４０６の判断でマルチモード・キーボードが存在することが判明した場合、ステップ４０８でＣＰＵ１０１がマルチモード・キーボードにモード変更コマンドを送る。マルチモード・キーボードは、モード変更コマンドに応答して、図５に示すルーチンを実行する。図５のルーチンでは、キーボードはＵＳＢ網からいったん論理的に切断され、その後ＵＳＢ網に論理的に再接続される。このような再接続の後、キーボードはそれ自体を別のＵＳＢ装置、すなわちＰＯＳキーボードとして識別させる。ステップ４１０で、ＰＯＳキーボードはオペレーティング・システムの基礎プラグ・アンド・プレイ構造によって検出される。ステップ４１２で、ＨＩＤクラス・ドライバ２０２が、キーボードが使用可能になっている（すなわち装置がオンラインである）ことをアプリケーションに通知する。ステップ４１４で、キーボード・モード切換えプロシージャは完了し、通常のプロシージャとアプリケーション・プログラムの実行が継続される。
【００４０】
ホスト・コンピュータのモード変更コマンドに対するキーボードの応答を、図５の流れ図に示す。ステップ５０２でこのプロシージャの実行が開始される。ステップ４０８でＣＰＵ１０１によって送られたモード変更コマンドを、ステップ５０４でマイクロコントローラ／ＵＳＢインタフェース３０４が受け取る。ステップ５０６で、マイクロコントローラ／ＵＳＢインタフェース３０４は、次の動作モードを識別する（ＣＰＵ１０１内に設定されているモードとデータ構造とを整合する）ためにビット・パターンをＲＡＭ３０８に設定する。ステップ５０８で、マイクロコントローラ／ＵＳＢインタフェース３０４は、ウォッチドッグ・タイマー３０７への介入保守信号の送信を停止する。その結果、ウォッチドッグ・タイマー３０７はステップ５１０でオーバーフローし、チップ・リセットを開始する。リセット後、マイクロコントローラ／ＵＳＢインタフェース３０４は、ステップ５１２でＲＡＭ３０８から前に記憶したビット・パターンを読み取り、意図された動作モードを判断する。マイクロコントローラ／ＵＳＢインタフェース３０４は、ステップ５１２での判断に基づいて、ステップ５１３で新しいモードに切り換え、ステップ５１４でホスト・コンピュータに新しい装置記述子または識別コードを送る。各動作モードが異なる装置記述子を持っているため、ＣＰＵ１０１はキーボードを異なる装置として扱う。したがって、図４のステップ４１０に示すように新しい装置としてホスト・コンピュータとの通信が再確立され、ステップ５１６でキーボード・モード変更ルーチンは終了する。
【００４１】
マルチモードＵＳＢ装置には、従来の技術に優るいくつかの重要な利点がある。この装置は、複数のモードで機能することができ、それによって、ハードウェア・ドライバ・レベルであってアプリケーション・レベルでない場合、あるいはその両方の場合で認識された非標準キーの認識が可能になる。従来、ＵＳＢ  ＰＯＳキーボードは対応するアプリケーション・プログラムの修正を必要としていた。各アプリケーション・プログラムを特定のキーボードと共に機能するように作成すると、ソフトウェア開発、メンテナンス、およびサポートのコストが高くなる。さらに、アプリケーション・プログラムを特定のキーボードと共に動作するように作成すると、新しいＰＯＳキーボードのサポートが必要になるたびに対応するアプリケーション・プログラムを改訂しなければならないため、柔軟性が著しく失われる。
【００４２】
また、マルチモード動作によって、ＰＯＳキーボードを標準キーボードとして認識させることができる。ＢＩＯＳやオペレーティング・システムなどの「下位層」ソフトウェアの更新とロードには、標準キーボード・モードが好ましい。ＰＯＳキーボードが標準キーボードとして機能することができない場合、下位層ソフトウェアを更新する際に別の（標準）キーボードを使用しなければならない。
【００４３】
上述の実施形態では、コンピュータが入力装置にモード変更コマンドを送る処理を参照して説明したが、本発明はそれのみには限定されない。たとえば、入力装置に付随するハードウェア・スイッチまたはソフトウェア・スイッチなど他の何らかの手段を使用して、モード選択を行う実施形態も実現可能である。スイッチの起動に応答して、入力装置はそれ自体を使用可能な動作モードのうち１つにしたがって動作するように構成し、それに応じてコンピュータ・システムに通知する。
【図面の簡単な説明】
【図１】  一実施形態による、ＵＳＢインタフェースおよびＵＳＢ対応キーボードを備えたホスト・データ処理システムを示す機能ブロック図である。
【図２】  一実施形態による、ホスト・コンピュータのメモリに常駐するデータ構造およびデータ・スタックを示す機能概略図である。
【図３】  一実施形態によるＵＳＢ対応キーボードを示す機能ブロック図である。
【図４】  一実施形態によるＵＳＢ対応キーボードのモード切換えプロシージャを示すフローチャートである。
【図５】  一実施形態による、キーボードのメモリにロードされたファームウェアのモード切換えプロシージャを示すフローチャートである。
【図１】
0003814535.tif 000002
【図２】
0003814535.tif 000003
【図３】
0003814535.tif 000004
【図４】
0003814535.tif 000005
【図５】
0003814535.tif 000006