(57)【特許請求の範囲】
【請求項１】
バスに接続されるコントローラと、当該コントローラに接続される複数の機能とを有するデータ転送システムであって、
前記コントローラは、立ち上がり時に予め定義された優先順位に基づいて当該コントローラに接続される前記複数の機能の中から所定の複数の機能を選択して前記バスに対応する複数のエンドポイントに割り当てると共に、その後、当該エンドポイントとして割り当てられた複数の機能と異なる組み合わせとなる複数の機能を当該優先順位と当該コントローラに接続される当該複数の機能における使用状況とに基づいて前記コントローラに接続された当該複数の機能の中から選択して当該バス対応のエンドポイントを再構成することを特徴とするデータ転送システム。
【請求項２】
前記バスは、プラグ・アンド・プレイに対応すると共に、多数の機能を当該バス対応のエンドポイントとして接続できることを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記バスは、ＵＳＢ規格に適合または準拠するバスであることを特徴とする請求項１記載のデータ転送システム。
【請求項４】
前記再構成は、既にエンドポイントを構成している機能とは異なる機能の要求があった場合に前記バス対応のエンドポイントを再構成することを特徴とする請求項１記載のデータ転送システム。
【請求項５】
ホスト装置と、プラグ・アンド・プレイに対応するバスを介して当該ホスト装置と接続されるコントローラと、当該コントローラに接続され当該コントローラがサポートできる最大エンドポイント数よりも数の多い複数の機能とを備えたデータ転送システムであって、
前記コントローラは、立ち上がり時に予め定義された優先順位に基づいて前記複数の機能の中から所定の機能を選択して前記最大エンドポイント数と一致する数の機能をエンドポイントとして構成すると共に、その後、当該優先順位と当該複数の機能における使用状況とに基づいて当該エンドポイントを構成する機能の一部を外して異なる機能を選択することでエンドポイントを再構成することを特徴とするデータ転送システム。
【請求項６】
前記コントローラは、立ち上がり時に前記複数の機能の中から所定の機能を選択して前記エンドポイントに割り当てると共に、前記ホスト装置からの要求に基づく機能またはオペレータによって操作がなされた機能を選択してエンドポイントを再構成することを特徴とする請求項５記載のデータ転送システム。
【請求項７】
ＵＳＢインターフェイスを介してホスト装置に接続可能であると共に、複数の機能が接続されたデータ転送端末であって、
前記複数の機能をＵＳＢ対応の機能として構成するコントローラと、
前記複数の機能に対して前記ＵＳＢ対応の機能として構成すべき予め定義された優先順位を格納するメモリとを備え、
前記コントローラは、
立ち上がり時に前記メモリに格納された前記優先順位に基づいて前記複数の機能の中から所定数の機能を選択して前記ＵＳＢ対応の機能としてサポート可能な数以内の当該機能を当該ＵＳＢ対応の機能として構成し、既に当該ＵＳＢ対応の機能を構成している機能とは異なる他の機能に対して、必要に応じ、当該優先順位と当該複数の機能における使用状況とに基づいて当該他の機能を当該ＵＳＢ対応の機能として再構成し、前記ホスト装置に当該ＵＳＢ対応の機能からなる構成を報告可能であることを特徴とするデータ転送端末。
【請求項８】
プラグ・アンド・プレイに対応するバスを介してホスト装置に接続可能であると共に、複数の機能を接続することができるコントローラであって、
立ち上がり時に予め定義された優先順位に基づいて前記複数の機能の中から所定の機能を選択して前記バス対応のエンドポイントに割り当てる割当手段と、
前記エンドポイントとして選択された所定の機能以外の機能に対する要求を受け付ける要求受付手段と、
要求を受け付けた前記機能に対して前記優先順位と前記複数の機能における使用状況とに基づいて前記バス対応のエンドポイントとして再度、割り当てを行う再割当手段とを備えたことを特徴とするコントローラ。
【請求項９】
前記割当手段は、当該コントローラがサポート可能なエンドポイント数よりも多い数の機能から、当該エンドポイント数に一致する数の機能を選択してエンドポイントを設定することを特徴とする請求項８記載のコントローラ。
【請求項１０】
前記要求受付手段は、前記ホスト装置からのコマンドによる要求または前記所定の機能以外の機能に対するオペレータの操作を認識することによって要求を受け付けることを特徴とする請求項８記載のコントローラ。
【請求項１１】
コントローラに接続される複数の機能をバスのエンドポイントとしてホスト側に認識させるインターフェイス方法であって、
前記コントローラには、当該コントローラがサポートできるエンドポイント数より多い数の機能が接続され、
立ち上がり時に予め定義された優先順位に基づいて接続された前記複数の機能の中から前記コントローラがサポートできるエンドポイントの数の機能を選択し、
選択された前記機能以外である他の機能に対しては、接続されていないかのように前記ホスト側に報告し、
前記他の機能に対する前記ホスト側からの要求または前記他の機能に対するオペレータの操作があった場合には、前記優先順位と前記複数の機能における使用状況とに基づいて選択された前記機能から特定の機能を外し、当該要求または当該操作のあった他の機能を含む構成をエンドポイントとすることを特徴とするインターフェイス方法。
【請求項１２】
ＵＳＢコントローラに接続される複数の機能に対してＵＳＢに対応する機能を定義するインターフェイス方法であって、
立ち上がり時に、予め定義された優先順位に基づいて前記複数の機能の中から前記ＵＳＢコントローラが前記ＵＳＢに対応する機能としてサポートできる数の機能を選択して当該ＵＳＢに対応する機能を構成し、
選択された前記機能以外の機能に対する要求を受け付け、
前記要求の受け付けがあった機能に対して前記優先順位と前記複数の機能における使用状況とに基づいて前記ＵＳＢに対応する機能として再構成することを特徴とするインターフェイス方法。
【請求項１３】
ＵＳＢインターフェイスを介してホスト装置に接続可能であると共に、複数の機能を接続することができるインターフェイス方法であって、
電源投入時には、前記複数の機能の中から予め定義された優先順位に基づいて所定の機能を有するＵＳＢ対応端末として立ち上がり、
前記電源投入時以降、必要に応じて前記優先順位と前記複数の機能における使用状況とに基づいて前記機能の構成を変更し、
構成の変更に基づいて前記ＵＳＢ対応端末としての再構成を行い、ソフトウェアにてプラグ・アンド・プレイを実現するインターフェイス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ(ＰＣ)の周辺インターフェースに関し、より詳しくは、ＵＳＢ(Universal Serial Bus)の特長であるプラグ・アンド・プレイ機能をオペレータの介在なしに実現する方法等に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ(ＰＣ)の周辺インターフェースとしては、長い間、ＲＳ−２３２Ｃに代表されるシリアルポートや、セントロニクス規格に代表されるパラレルポートが主に使用されてきた。しかしながら、いずれも転送速度の限界が低いことや、１ポートに１デバイスしか接続できないため、複数のデバイスを接続するにはポート数が増えてしまう難点を備えていた。更に、ディスプレイやキーボード、マウスもそれぞれ独自のインターフェースによる個別のポートを備えており、ＰＣの背面は多種多様なコネクタで埋まってしまうのが現状である。
また、機器によってインターフェースの種類が異なることから、それぞれに適したケーブルを用意し、正しく接続することが要求され、オペレータ(ユーザ)にとっても作業が煩雑化していた。
【０００３】
かかる問題点を解決するものとして、近年、特に注目されているものがＵＳＢ(Universal Serial Bus)である。このＵＳＢは、前述のインターフェースを統合し、１つのポートに複数の周辺機器を接続することが可能である。従来のシリアル・インターフェースやパラレル・インターフェースは、基本的に１対１の接続であり、例えばモデムとターミナル・アダプタ(ＴＡ)を使うといった複数の機器を接続する場合には、ケーブルをその都度接続し直すか、切り換え器が必要となる。しかしながら、ＵＳＢでは、１台の周辺機器の中に最大１６個の独立した機能を定義でき、ハブの仲介によって、ツリー状に最大１２７台までの周辺機器を接続することが可能である。また、ＵＳＢの伝送速度は最高１２Ｍｂｐｓで、現在主流のシリアル・インターフェースであるＲＳ−２３２Ｃの約１００倍に相当する。更に、周辺機器の電源を入れたままケーブルを抜き差しできるホット・プラグ機能や、周辺機器を接続するとＰＣが自動的に認識するプラグ・アンド・プレイ(Plug & Play)機能を備えており、操作性が非常に高い。その結果、もっとも有力な次世代の標準周辺インターフェースとして急速に注目を集めている。
【０００４】
このＵＳＢは、多数の周辺端末機器を接続するシステムに対して有用である。
例えば、ＰＯＳ(Point Of Sales)システム(販売時点情報管理システム)のように、商品の値札に付けられたバーコードを読み込むためのスキャナやハンディ・ターミナル、電子式キャッシュレジスタ、タッチパネルなどの多数の周辺機器を、ストア・コントローラと呼ばれるコンピュータに接続して情報を転送する場合等には、ＵＳＢインターフェースは特に適している。従来のＰＯＳシステムでは、ＰＯＳ専用の独自インターフェースによって動かされていたが、例えばウィンドウズ等、既存のものを用いてＰＯＳシステムを動作させたいといった要望が強くなっている。また、ＰＯＳシステムが主に用いられる小売店などでは、周辺機器の接続や切り離しが頻繁に行われる可能性が高く、だれでも簡単にシステムの拡張ができるようにするためには、ＵＳＢの有するプラグ・アンド・プレイ機能やホット・プラグ機能は特に有用である。
【０００５】
【発明が解決しようとする課題】
このように、ＵＳＢインターフェースでは、１つのデバイスでイン/アウト各々１６個までの機能(エンドポイント:End Point)を持つことができる仕様になっている。しかしながら、現実には、各社から発売されているＵＳＢコントローラチップは、３個〜５個程度までのエンドポイントしかサポートしていないものが主流であり、それ以上をサポートするものよりも低価格で流通している。このＵＳＢコントローラチップは、ＵＳＢ非対応の周辺機器側におけるコントローラＬＳＩと組み合わせるためのＵＳＢインターフェースをサポートしているが、ＰＯＳ端末のように多くの機能を有する場合には、１つのＵＳＢコントローラチップではエンドポイントの数が足りない。そのために、複数のコントローラが必要となり、更にはハブ等の周辺回路も追加する必要が出てくることから、大きなコストアップに繋がってしまう。
【０００６】
また更に、通常、各機能はオプションとして用いられており、全ての機能が同時に使用されている訳ではない。特にＰＯＳ端末が多く用いられる小売店等では、オプションとしての予備的な機能に対してサポートするためのコストアップは、非常に大きな問題となる。その一方で、たとえオプションであっても、接続されている機能に対してＵＳＢの特長であるプラグ・アンド・プレイ機能等をサポートすることは強く望まれている。
【０００７】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、ＵＳＢコントローラチップを用いたＵＳＢをサポートするシステムにおいて、ハードウェアにかかるコストを大幅に削減することにある。
また他の目的は、ＵＳＢコントローラチップでサポートしているエンドポイントの数が足りない場合であっても、同時には使用しないエンドポイントを動的に再構成することで、多数の機能を有効に活用することにある。
【０００８】
【課題を解決するための手段】
かかる目的のもと、本発明は、バスに接続されるコントローラと、このコントローラに接続される複数の機能とを有するデータ転送システムであって、このコントローラは、複数の機能の中から所定の複数の機能を選択してバスに対応する複数のエンドポイントに割り当てると共に、その後、エンドポイントとして割り当てられた複数の機能と異なる組み合わせとなる複数の機能をコントローラに接続された複数の機能の中から選択してバス対応のエンドポイントを再構成することを特徴としている。
【０００９】
ここで、このバスは、プラグ・アンド・プレイに対応すると共に、多数の機能をこのバス対応のエンドポイントとして接続できることを特徴とすれば、このバスの特長であるプラグ・アンド・プレイをオペレータの介在なしにソフトウェアで実現することが可能となる点で好ましく、また、このバスは、ＵＳＢ(Universal Serial Bus)規格に適合または準拠するバスであることを特徴とすることができる。
更に、この再構成は、既にエンドポイントを構成している機能とは異なる機能の要求があった場合にバス対応のエンドポイントを再構成することを特徴とすれば、コントローラの数を増やさずに必要な機能をこのバス対応のエンドポイントとして構成できる点で優れている。
ここで、「エンドポイント」とは、複数の機能の中から、例えばＵＳＢインターフェイスの端末としてホスト側から認識されている機能を示している。また、「その後」とは、例えば電源投入時の後に、ホスト側から他の機能の接続要求があった場合や他の機能に対するオペレータの操作があった場合等が該当する。
【００１０】
また、本発明は、ホスト装置と、プラグ・アンド・プレイに対応するバスを介してこのホスト装置と接続されるコントローラと、このコントローラに接続されコントローラがサポートできる最大エンドポイント数よりも数の多い複数の機能とを備えたデータ転送システムであって、このコントローラは、複数の機能の中から所定の機能を選択して最大エンドポイント数と一致する数の機能をエンドポイントとして構成すると共に、その後、このエンドポイントを構成する機能の一部を外して異なる機能を選択することでエンドポイントを再構成することを特徴としている。
【００１１】
ここで、このコントローラは、立ち上がり時に複数の機能の中から所定の機能を選択してエンドポイントに割り当てると共に、ホスト装置からの要求に基づく機能またはオペレータによって操作がなされた機能を選択してエンドポイントを再構成することを特徴としている。更に、このコントローラは、サポートできる最大エンドポイント数までの機能を優先順位に基づいて選択することを特徴とすることができる。このように構成すれば、１つのコントローラでエンドポイント数が足りない場合であっても、複数のコントローラやハブ等の周辺回路を追加する必要がなくなり、コストを大きく下げることができる点で好ましい。
【００１２】
他の観点から把らえると、本発明は、ＵＳＢインターフェイスを介してホスト装置に接続可能であると共に、複数の機能が接続されたデータ転送端末であって、複数の機能をＵＳＢ対応の機能として構成するコントローラと、複数の機能に対してＵＳＢ対応の機能として構成すべき順序情報を格納するメモリとを備え、このコントローラは、メモリに格納された順序情報に基づいて複数の機能の中から所定数の機能を選択してＵＳＢ対応の機能としてサポート可能な数以内の機能をＵＳＢ対応の機能として構成し、ホスト装置にＵＳＢ対応の機能からなる構成を報告可能であることを特徴としている。ここで、データ転送端末とは、例えば、ＰＯＳ端末等が該当する。
【００１３】
そして、このコントローラは、既にＵＳＢ対応の機能を構成している機能とは異なる他の機能に対して、必要に応じ、この他の機能をＵＳＢ対応の機能として再構成することを特徴とすることができる。これにより、例えば接続していないかのようにホスト側に報告されているプライオリティの低い機能であっても、要求や操作によって、必要なときにエンドポイントに加えられて再構成(Enumeration)されるので、コントローラのエンドポイント数が不足していてもプライオリティの低い機能をサポートすることが可能となる。
【００１４】
一方、本発明は、プラグ・アンド・プレイに対応するバスを介してホスト装置に接続可能であると共に、複数の機能を接続することができるコントローラであって、この複数の機能の中から所定の機能を選択してバス対応のエンドポイントに割り当てる割当手段と、このエンドポイントとして選択された所定の機能以外の機能に対する要求を受け付ける要求受付手段と、要求を受け付けた機能に対してバス対応のエンドポイントとして再度、割り当てを行う再割当手段とを備えたことを特徴とすることができる。
【００１５】
ここで、この設定手段は、コントローラがサポート可能なエンドポイント数よりも多い数の機能から、このエンドポイント数に一致する数の機能を選択してエンドポイントを設定することを特徴とすることができる。また、この要求受付手段は、ホスト装置からのコマンドによる要求または所定の機能以外の機能に対するオペレータの操作を認識することによって要求を受け付けることを特徴とすることができる。例えば、ＰＯＳシステムにおいて、キーパッドが選択されていない場合に、オペレータによるキーパッドの操作によって要求を受け付けることが挙げられる。
【００１６】
また、カテゴリを変えて本発明を把握すると、本発明は、コントローラに接続される複数の機能をバスのエンドポイントとしてホスト側に認識させるインターフェース方法であって、コントローラには、このコントローラがサポートできるエンドポイント数より多い数の機能が接続され、接続された複数の機能の中からコントローラがサポートできるエンドポイントの数の機能を選択し、選択された機能以外である他の機能に対しては、接続されていないかのようにホスト側に報告し、他の機能に対するホスト側からの要求または他の機能に対するオペレータの操作があった場合には、選択された機能から特定の機能を外し、要求または操作のあった他の機能を含む構成をエンドポイントとすることを特徴とすることができる。
【００１７】
この機能の選択は、予め定義された優先順位の上位からコントローラでサポートされているエンドポイント数までの機能を選択し、優先順位に基づいて特定の機能をエンドポイントから外すことを特徴とすることができる。更に、複数の機能における使用状況を認識し、認識された使用状況に基づいて特定の機能をエンドポイントから外すことを特徴とすることもできる。これらの構成によれば、操作性をある程度高く維持した状態にてコントローラの数を減らし、コストの低減を図ることができる点で好ましい。
【００１８】
他の観点から把らえると、本発明は、ＵＳＢコントローラに接続される複数の機能に対してＵＳＢに対応する機能を定義するインターフェース方法であって、立ち上がり時に、複数の機能の中からこのＵＳＢコントローラがＵＳＢに対応する機能としてサポートできる数の機能を選択してＵＳＢに対応する機能を構成し、選択された機能以外の機能に対する要求を受け付け、要求の受け付けがあった機能に対してＵＳＢに対応する機能として再構成することを特徴としている。
また、立ち上がり時には、立ち上がり時に必要な機能および頻繁に使用する機能を選択してＵＳＢに対応する機能として構成することを特徴とすれば、コントローラがサポートできるエンドポイント数が少ない場合であっても、必要な機能を動的に再構成し、ＵＳＢ機能として利用することが可能となる。
【００１９】
一方、本発明は、ＵＳＢインターフェイスを介してホスト装置に接続可能であると共に、複数の機能を接続することができるインターフェイス方法であって、電源投入時には、複数の機能の中から頻繁に使用する所定の機能を有するＵＳＢ対応端末として立ち上がり、電源投入時以降、必要に応じて機能の構成を変更し、この構成の変更に基づいてＵＳＢ対応端末としての再構成を行い、ソフトウェアにてプラグ・アンド・プレイを実現する。このように構成すれば、ＵＳＢ対応端末としてサポートできる能力が低い場合であっても、再構成によってＵＳＢ対応端末としてサポートすることが可能となり、ハードウェアのコストを下げる一方で、高いパフォーマンスを得ることができる点で好ましい。
【００２０】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて本発明を詳細に説明する。
図１は、本実施の形態が適用されたＰＯＳシステムを説明するためのブロックダイアグラムである。符号１１はＵＳＢコントローラチップとしてのＵＳＢデバイスコントローラであり、ホスト(ＨＯＳＴ)側としてのパーソナルコンピュータ(ＰＣ)１０にＵＳＢインターフェース１２を介して接続されると共に、複数の機能からなる機能群２０をＵＳＢ端末としてサポートしている。また、ＵＳＢデバイスコントローラ１１は、監視タイマ(Watch Dog Timer)１３と、機能群２０の構成情報等を格納するためのＲＡＭ１４に接続されている。
【００２１】
この機能群２０としては、データ転送端末としてのＰＯＳ端末の機能として、例えば、プログラムアップデート時に用いられるマイクロコード(ファームウェア)を格納して立ち上がり時に用いられるフラッシュメモリ２１、コマンドを受け付けて切り換え等の設定を受ける等、デバイス管理を行うためのインターフェースであるアドミン(Ａｄｍｉｎ)２２、個々のデバイス毎に固有の調整値を持ちたい等、設定値を書き込みたいときに用いられるＮＶＲＡＭ２３、ディスプレイ画面上の位置指定等を行うポインティングデバイス２４、オペレータが交代するとき等に用いられるキーロック２５、キー入力を受け付けるためのキーパッド２６、クレジットカードを使用したい場合やオペレータのＩＤを読むとき等に使用されるマグストライプリーダ(ＭＳＲ)２７、ディスプレイの前面に取り付けられ、オペレータが指で押すことにより入力を可能とするタッチパネル２８、アラームやキーパッド２６のクリック等で鳴るビープ(Beep)２９、お金を入れるためのキャッシュドロワ３０等が備えられている。
【００２２】
監視タイマ１３は、ファームウェア操作が完結しなかった場合に自動的にＵＳＢデバイスコントローラ１１をリセットするために用いられる。即ち、監視タイマ１３は、プログラムが暴走しておらず動いているときはＵＳＢデバイスコントローラ１１に対して定期的に書き込みに行き、フラッシュメモリ２１に格納されているマイクロコードからの制御信号が来なくなると、マイクロコードの暴走等を判断して書き込みを禁止するように機能している。本実施の形態では、この監視タイマ１３の機能を逆に利用して、機能群２０の機能を変更したいときには、わざと書き込みを禁止するように構成し、監視タイマ１３がＵＳＢデバイスコントローラ１１をリセットして、機能群２０における機能の再構成が可能となるように構成されている。
【００２３】
図２は、ＲＡＭ１４の論理コンポーネントを説明するための図である。本実施の形態におけるＲＡＭ１４中の論理コンポーネントとしては、後述する所定のプライオリティによって現実のＵＳＢにおけるエンドポイントの構成情報が格納された現構成情報４１と、所定の機能に対するオペレータの操作やホストであるＰＣ１０からの操作によって再構築される新構成情報４２が存在する。また、過去の使用頻度情報等が格納されている使用機能履歴ログ(Log)４３、例えばどこが最新な履歴ログであるかを指し示す使用機能履歴ログポインタ(Log pointer)４４、ホスト側であるＰＣ１０に対して新構成情報４２に関する送信データを保管する送信バッファ４５が存在している。
【００２４】
図３は、本実施の形態におけるＵＳＢデバイスコントローラ１１が実行する、立ち上がり時におけるデバイス構成の流れを示す図である。立ち上がり時におけるデバイス構成の確認として、まず、接続されている機能群２０の数とＵＳＢデバイスコントローラ１１がサポートしているエンドポイントの数とを比較して、エンドポイント数が足りているか否かを判断する(ステップ１０１)。エンドポイント数が足りている場合には、存在する全ての機能群２０をＵＳＢのエンドポイントとして、ＰＣ１０とのＵＳＢインターフェースを構築する(ステップ１０２)。エンドポイント数が足りていない場合には、プライオリティの高いほうから最大エンドポイント数の構成でＰＣ１０とのＵＳＢインターフェースを構築する(ステップ１０３)。次に、構成できなかった機能に対するオペレータの操作、又はホスト(ＰＣ１０)からのコマンド要求を確認する(ステップ１０４)。これらのオペレータ操作/ＰＣ１０からの要求があった場合には、その操作および要求のあった機能を選択し、エンドポイントとしてＰＣ１０とのＵＳＢインターフェースを再構築(再構成)する(ステップ１０５)。これによって、製品が有する全ての機能を同時に使用可能にするのではなく、当初は同時に頻繁に使用する機能のみを持つ端末として立ち上がり、必要に応じて構成を変更することが可能である。
【００２５】
図４は、本実施の形態におけるＵＳＢの再構成の例を示す図である。今、ＵＳＢデバイスコントローラ１１がサポートしているエンドポイントの数は最大５つであるとする。後述するようなプライオリティの決定方法によって、当初、構成１に示すようなフラッシュメモリ２１、ＭＳＲ２７、タッチパネル２８、ポインティングデバイス２４、Ａｄｍｉｎ２２の５つがＵＳＢの機能として構成されているとする。ここで、例えば、キーパッド２６がオペレータによって操作されたとする。このオペレータによる操作があったということは、オペレータによる使用要求があるものと判断できる。しかしながら、構成１では、キーパッド２６がＵＳＢの機能として構成されていないことから、再構成をする必要がある。本実施の形態では、例えば、後述するプライオリティ判断に基づいて、プライオリティの低い機能から取り除き、置き換えるように構成している。例えばフラッシュメモリ２１は立ち上がり時に用いられる機能であることから、図４に示す例では、このフラッシュメモリ２１を構成から外し、キーパッド２６を構成に組み込んで構成２を作成している。そして、図２で説明したＲＡＭ１４中に新構成情報４２として格納した後、ＰＣ１０に対して送信データを送信するように構成されている。
【００２６】
次に、各機能におけるプライオリティの決め方について説明する。このプライオリティの決め方としては、大きく３つの場合(以下のａ〜ｃ)がある。
ａ.  必ず必要なもの(例えば、Ａｄｍｉｎ２２)
ｂ.  ホスト(ＰＣ１０)のイニシャライズやメンテナンスモード等、特定の場合にのみ使用する機能(例えば、フラッシュメモリ２１、ＮＶＲＡＭ２３)
ｃ.  通常のオペレーションで仕様する機能
このｃの場合には、予めプライオリティを、例えばフラッシュメモリ２１のマイクロコード(ファームウェア)中で定義しておく。例えば、プライオリティの大きいものから、タッチパネル２８＞ポインティングデバイス２４＞キャッシュドロワ３０＞キーロック２５＞ＭＳＲ２７＞キーパッド２６、等である。
【００２７】
まず、電源投入時(図２に示す現構成情報４１および新構成情報４２が有効でないとき)は、上記ａ、ｂ、ｃのうち、実際に接続されていてプライオリティの高いものから構成し、ＲＡＭ１４中の現構成情報４１に書き込む。
また、ホスト(ＰＣ１０)とのＵＳＢ構成(Enumeration)が一度、完了した後(図２に示す現構成情報４１は有効であり、新構成情報４２が有効でないとき)、上記ｃのうち構成されなかった機能が操作された場合には、上記ｂを新構成から外し、操作された機能を構成に組み込んで新構成情報４２に書き込む。
その後(現構成情報４１および新構成情報４２が有効であるとき)、更に構成されていない機能が操作された場合には、現構成情報４１に含まれている上記ｃの中で、直近に使用されておらず使用頻度の最も低いものを、後述する手順で新構成情報４２から外し、操作された機能を新構成情報４２に組み込んで新構成情報４２を更新する。
【００２８】
図５は、エンドポイントの構成変更の際に、構成から特定の機能を外すための処理を説明するためのフローチャートである。オペレータの操作やホスト(ＰＣ１０)からのコマンド要求があった場合に(ステップ１１１)、まず、最小プライオリティの機能がＲＡＭ１４中の使用機能履歴ログ４３の中に存在するか否かが判定される(ステップ１１２)。存在しない場合には、最小プライオリティの機能を構成から外し(ステップ１１３)、特定の機能を外すための処理は終了する。最小プライオリティの機能が使用機能履歴ログ４３の中に存在する場合には、次にプライオリティの低い機能が使用機能履歴ログ４３の中に存在するか否かが判定される(ステップ１１４)。存在しない場合には、その機能を構成から外す(ステップ１１５)。以下順にプライオリティの低いものから履歴状態をチェックし、最後に最大プライオリティの機能が使用機能履歴ログ４３の中に存在するか否かが判定される(ステップ１１６)。存在しない場合には、最大プライオリティの機能を構成から外す(ステップ１１７)。使用機能履歴ログ４３の中に存在する場合には、他の条件、すなわち、最小プライオリティの機能が最後に使用されたか否かが判断される(ステップ１１８)。使用されていない場合には、最小プライオリティの機能を構成から外す(ステップ１１９)。最後に使用されていた場合には、外すことは妥当ではないと判断し、次にプライオリティの低い機能を構成から外す(ステップ１２０)。このようにして、プライオリティに基づいて、特定の機能を外すことができる。
【００２９】
図６は、機能の再構成の手順を示すフローチャートである。まず、構成できなかった機能に対するオペレータの操作が発生すると(ステップ１３１)、ＵＳＢデバイスコントローラ１１は、構成していなかった機能からＰＣ１０への送信データをＲＡＭ１４中の送信バッファ４５に保管する(ステップ１３２)。例えば、キースキャンコード(Key Scan code)やＭＳＲデータ等である。その後、ＵＳＢデバイスコントローラ１１がＲＡＭ１４中の現構成情報４１と各機能毎の使用機能履歴ログ４３をもとに、前述したプライオリティ判定ロジックで新構成を決定し、ＲＡＭ１４中の新構成情報４２を保管する(ステップ１３３)。ＵＳＢデバイスコントローラ１１は、監視タイマ１３への信号の送信を停止し(ステップ１３４)、ＵＳＢデバイスコントローラ１１をリセットする(ステップ１３５)。即ち、前述したように、監視タイマ１３の本来の機能を逆に利用して、わざと書き込みを禁止し、監視タイマ１３によってＵＳＢデバイスコントローラ１１をリセットして、機能群２０における機能のプラグ＆プレイを可能としている。
【００３０】
その後、ＵＳＢデバイスコントローラ１１はＲＡＭ１４中の新構成情報４２を読み出す(ステップ１３６)。そして、ＵＳＢデバイスコントローラ１１はＰＣ１０からのＵＳＢ構成情報リクエストに対して新構成情報４２を返す(ステップ１３７)。また、ＵＳＢデバイスコントローラ１１がＲＡＭ１４中の現構成情報４１を新構成情報４２の内容に更新する(ステップ１３８)。更に、ＵＳＢデバイスコントローラ１１は送信バッファ４５に保管してあった送信データをＰＣ１０へ送信する(ステップ１３９)。以上の手順によって、機能の再構成が終了する。
【００３１】
このように、通常、各機能はオプションであり、全ての機能が同時に使用されるわけではないので、本実施の形態では、電源投入時に各機能の有無を検査し、接続されている機能のみをホスト側(ＰＣ１０)に報告している。接続されている機能数がＵＳＢデバイスコントローラ１１でサポートしているエンドポイントの数以下であれば問題はない。しかしながら、それ以上の機能が接続されている場合には、予め定義しておいたプライオリティの上位からＵＳＢデバイスコントローラ１１でサポートされているエンドポイント数のみの機能を選択してエンドポイントとして割り当て、プライオリティの低い機能は接続していないかのようにホスト側に報告する。プライオリティの低い機能がホスト側から要求されたり、オペレータによって操作された場合には、プライオリティを変更して新たに要求された機能を含む構成にてＵＳＢの再構成(Enumeration)を行う。
【００３２】
以上説明したように、本実施の形態によれば、製品が有する全ての機能を同時に使用可能にするのではなく、同時に頻繁に使用する機能のみを持つ端末として立ち上がり、必要に応じて構成を変更するように構成した。そのために、例えば３〜５個程度の少ないエンドポイントしかサポートしていないＵＳＢコントローラチップを使用した場合であっても、プラグ＆プレイをオペレータの介在なしにソフトウェアで実現することで、ＵＳＢコントローラチップに接続されている全ての機能をＵＳＢ端末としてサポートすることが可能となる。
【００３３】
尚、同時に使用するエンドポイント数が明らかに不足している場合には、再構成のために要する処理時間と操作性との関係を比較衡量して前述した方式の採用の有無を決定することが好ましい。しかしながら、通常のオペレーションでは使用しない、例えばメンテナンス用機能等のためにエンドポイント数が不足する場合等には、本実施の形態におけるソフトウェアでプラグ＆プレイを実現する方式は、コストを大幅に削減できる点から特に有用である。
【００３４】
また、本実施の形態では、ＵＳＢインターフェイスに基づいて説明してきたが、必ずしもＵＳＢインターフェイスに限定されるものではない。例えば、プラグ・アンド・プレイへの対応が可能であり、更に複数の機能を接続することが可能であるインターフェイスであれば、同様に適用することができる。
更に、本実施の形態では、端末としてＰＯＳ端末に適用される場合について説明したが、オーディオシステム等、他の端末に対しても適用することが可能である。
【００３５】
【発明の効果】
このように、本発明によれば、ＵＳＢコントローラチップでサポートしているエンドポイント(機能)の数が足りない場合であっても、同時には使用しないエンドポイントを動的に再構成することで、ハードウェアにかかるコストを大幅に削減することができる。
【図面の簡単な説明】
【図１】  本実施の形態が適用されたＰＯＳシステムを説明するためのブロックダイアグラムである。
【図２】  ＲＡＭ１４の論理コンポーネントを説明するための図である。
【図３】  本実施の形態におけるＵＳＢデバイスコントローラ１１が実行するデバイス構成の流れを示す図である。
【図４】  本実施の形態におけるＵＳＢの再構成の例を示す図である。
【図５】  エンドポイントの構成変更の際に、構成から特定の機能を外すための処理を説明するためのフローチャートである。
【図６】  機能の再構成の手順を示すフローチャートである。
【符号の説明】
１０…パーソナルコンピュータ(ＰＣ)、１１…ＵＳＢデバイスコントローラ、１２…ＵＳＢインターフェース、１３…監視タイマ(Watch Dog Timer)、１４…ＲＡＭ、２０…機能群、２１…フラッシュメモリ、２２…アドミン(Ａｄｍｉｎ)、２３…ＮＶＲＡＭ、２４…ポインティングデバイス、２５…キーロック、２６…キーパッド、２７…マグストライプリーダ(ＭＳＲ)、２８…タッチパネル、２９…ビープ(Beep)、３０…キャッシュドロワ、４１…現構成情報、４２…新構成情報、４３…使用機能履歴ログ(Log)、４４…使用機能履歴ログポインタ(Log pointer)、４５…送信バッファ(buffer)
【図１】
0004553279.tif 000002
【図２】
0004553279.tif 000003
【図３】
0004553279.tif 000004
【図４】
0004553279.tif 000005
【図５】
0004553279.tif 000006
【図６】
0004553279.tif 000007