(57)【要約】      （修正有）【課題】本発明では、ホスト・ユーザー単位の情報を使用し、ホスト・ユーザーごとにそのデバイスの有する機能の限定／制限／指定について設定が可能で、かつその設定内容にしたがって動作するＵＳＢ機器を提供することにある。【解決手段】デバイスＵ１００（例えばＣＤ−Ｒドライブのようなメディアへの読み書きデバイス）は接続ホストＨ１００の要求により、ＦＵＮＣＴＢＬを送り、ホストＨ１００はそれを参照・利用してデバイスＵ１００の機能を把握し、希望の機能（ＦＵＮＣＩＤ）指定を行う。ホストＵ１００の指定に対し、デバイスＵ１００は当該ＦＵＮＣＩＤを登録する領域を有し、それを行うＨＯＳＵＴＩＤＦＵＮＣ設定手段を有する。【選択図】図１
2006058949.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器（以降ホスト）で操作するときに使用するホスト・ユーザーの情報（以降ＨＯＳＴＵＩＤ）を使用し、デバイス機器（以降デバイス）側は、接続ホストのＨＯＳＴＵＩＤ毎に機能を変更して動作することを特徴とするＵＳＢデバイス機器。
【請求項２】
請求項１において、そのデバイスが有する機能・機能名・該当手続きアドレスなどの一覧（以降ＦＵＮＣＴＢＬ）を有することを特徴とするＵＳＢデバイス機器。
【請求項３】
請求項２において、デバイスは、接続ホストの要求において、ＦＵＮＣＴＢＬを送り、ホスト側はそれを参照・利用してデバイス側の機能の把握し、希望の機能（以降ＦＵＮＣＩＤ）指定を行う。ホストのその指定に対し、該当ＨＯＳＴＵＩＤに関連したＦＵＮＣＩＤを登録する領域（以降ＨＯＳＴＵＩＤＦＵＮＣＴＢＬ）を有し、それを行うＨＯＳＵＴＵＩＤＦＵＮＣ設定手段を有することを特徴とするＵＳＢデバイス機器。
【請求項４】
請求項３において、デバイス実行時に、接続ホストのＨＯＳＴＵＩＤにしたがって、ＨＯＳＴＵＩＤＦＵＮＣＴＢＬおよびＦＵＮＣＴＢＬを検索して、機能処理を制御するＨＯＳＴＵＩＤＦＵＮＣ選択実行手段を有することを特徴とするＵＳＢデバイス機器。
【請求項５】
請求項４において、接続ホストがＨＯＳＴＵＩＤを送ってこない場合は、デバイスデフォルトの処理を自動的に行うことを特徴とするＵＳＢデバイス機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＵＳＢデバイス機器に関するものである。
【背景技術】
【０００２】
従来、ＵＳＢデバイス機器はホスト機器と接続した場合、同一の機能で動作するのが基本であり、ホスト・ユーザーの情報でデバイスの機能の切り替えを行っているものは存在しなかった（特許文献１）。
【特許文献１】特開２００２−３４２２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明では、ホスト・ユーザー単位の情報を使用し、ホスト・ユーザーごとにそのデバイスの有する機能の限定／制限／指定について設定が可能で、かつその設定内容にしたがって動作するＵＳＢデバイス機器を提供することにある。
【課題を解決するための手段】
【０００４】
この発明は下記（１）の構成を備えることにより上記課題を解決できるものである。
【０００５】
（１）ホスト機器（以降ホスト）で操作するときに使用するホスト・ユーザーの情報（以降ＨＯＳＴＵＩＤ）を使用し、デバイス機器（以降デバイス）側は、接続ホストのＨＯＳＴＵＩＤ毎に機能を変更して動作することを特徴とするＵＳＢデバイス機器。
【発明の効果】
【０００６】
本発明によりホスト・ユーザーの情報を使用してデバイスの機能を、ホスト・ユーザー毎に限定・制限・指定し、かつ動作させる機器を提供することが可能になった。
【発明を実施するための最良の形態】
【０００７】
［基本的な動作］
図１は、本発明のＵＳＢ機器にホストを接続した時の、動作イメージをあらわしている。
【０００８】
まず、同じホストＨ１００を使用して、複数のユーザーがデバイスＵ１００（例えばＣＤ−Ｒドライブのようなメディアへの読み書きデバイス）と接続した状態である。
【０００９】
Ｆ１００はＨＯＳＴＵＩＤ：ｈｏｓｔｕｉｄ００として既にＵ１００に機能の設定を登録済みの状態で、Ｈ１００とＵ１００双方向のやり取り（例えばデータ書き込み／読み込み可能）が可能な状態を示している。
【００１０】
Ｆ１１０は同様にＨＯＳＵＴＵＩＤ：ｈｏｓｕｔｕｉｄ０３として既に機能の設定が登録済みの状態で、Ｈ１００とＵ１００は接続されているもののデバイスの機能が使えない状態を示している。
【００１１】
次に、Ｆ１２０は他のホストＨ１１０で同じデバイスＵ１００と接続した場合を示す。
【００１２】
前述と同様にＵ１００にＨＯＳＴＵＩＤ：ｈｏｓｔｕｉｄ１０を使用して機能の設定が登録済みの状態で、Ｕ１００からデータ読み込みのみ可能な状態を示している。
【００１３】
［ブロック図の説明］
図２は本発明の全体構成図である。
【００１４】
該当デバイスが有する機能・機能名・該当手続きアドレスなどの一覧＝ＦＵＮＣＴＢＬ：２０３。
【００１５】
ホストからの要求によりＦＵＮＣＴＢＬの内容を送る／希望機能＝ＦＵＮＣＩＤの設定を行うためのＨＯＳＵＴＵＩＤＦＵＮＣ設定手段：２０２。
ＨＯＳＵＴＵＩＤごとにＦＵＮＣＩＤを登録したＨＯＳＴＵＩＤＦＵＮＣＴＢＬ：２０４。
【００１６】
実際にホストと接続した場合に希望動作を実現するＨＯＳＴＵＩＤＦＵＮＣ選択実行手段：２０５からなる。
【００１７】
図３はＨＯＳＴＵＩＤＦＵＮＣ設定手段の制御・データの流れを示す。
【００１８】
ここでは、ＣＸＸＸは制御のながれ、ＤＸＸＸはデータの流れをあらわす。
【００１９】
Ｄ３０１：ホストからのＦＵＮＣＴＢＬ一覧の要求でデータ読み出しを示す。
【００２０】
Ｄ３０２：ホストがＦＵＮＣＩＤを設定した場合を示す。
【００２１】
図４はＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の制御・データの流れを示す。
【００２２】
ここでは、ＣＸＸＸは制御のながれ、ＤＸＸＸはデータの流れをあらわす。
【００２３】
Ｄ４０１：ＨＯＳＴＵＩＤからＨＯＳＵＴＵＩＤＦＵＮＴＢＬを参照し、該当ＦＵＮＣＩＤの読み出しを示す。
【００２４】
Ｄ４０２：ＦＵＮＵＩＤからＦＵＮＣＴＢＬを参照し実際の処理アドレスの読み出しを示す。
【００２５】
Ｐ４０１：その処理アドレスへ制御をうつしていることを示す。
【００２６】
［システム構成図の説明］
本発明のシステム構成図を図５で示す。ＢＬ：７は、ホストとの通信をつかさどるＵＳＢＣＴＬ：２・ＵＳＢデバイスとしての全般の制御および本発明のプログラムおよび本発明で使用されるＦＵＮＣＴＢＬ：４０およびＨＯＳＴＵＩＤＦＵＮＣＴＢＬ：４１を含むフラッシュＥＥＰＲＯＭのＦＬＲＯＭ：４・それらを実行するＣＰＵ：１・ＨＯＳＴＵＩＤ：５０を含むワークエリアとして利用されるＲＡＭ：５・実際のＵＳＢデバイスとしてのＩ／Ｏ：６・たとえばエラー状態などを表示するためのＤＩＳＰ：８・ＵＳＢＣＴＬ：２／ＲＡＭ：５／Ｉ／Ｏ：６間のＨＷデータ転送を行うＤＭＡＣ：３と接続されている。ＨＯＳＴＵＩＤＦＵＮＣ設定手段は、２／３／５で得たホストデータを解析し、ＦＵＮＣＴＢＬ一覧要求の場合４０の内容を、同じく５／３／２経由でホストに送信する。ＦＵＮＣＩＤ設定要求の場合、４０とホストから得られたデータを使用して４１を更新する。
【００２７】
ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段は、実行時に、ホストから得たＨＯＳＴＵＩＤと、それをキーに４１を参照して４０の該当手続きを呼び出す。
【実施例】
【００２８】
［データ構成図］
図６は、本発明ＦＵＮＣＴＢＬのデータ構造の例である。
【００２９】
ＦＵＮＣＴＢＬは３つのデータ領域からなる。この３つのデータ領域は連続して格納されている必要はなく、ＦＵＮＣＩＤをキーにした時、それぞれが関連付けされていればよく、実際のＦＵＮＣＩＤのエリアはあってもなくてもよい。
【００３０】
ＨＯＳＴＵＩＤＦＵＮＣ設定手段、ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の両方で使用される。
【００３１】
以下、それぞれのデータ領域について説明する。
【００３２】
ＦＵＮＣＩＤ：６１０
デバイスが実行する機能名、手続きアドレス領域を示すタグとして利用する。例では終端を０とする。
【００３３】
ＤＥＳＣＲＩＰＯＴＯＲ：６２０
ＨＯＳＴＵＩＤＦＵＮＣ設定手段がホストへ送信するデータとして使用する。
【００３４】
それぞれのＦＵＮＣＩＤに対応する機能名を意味する文字列、またはその文字列をしめすインデックスとして利用する。終端はＮＵＬＬ。
【００３５】
たとえば、ＦＵＮＣＩＤ：２であれば、対応する機能は“読み出しのみ”をあらわす。
【００３６】
ホストは設定メニューなどを表示させる時の文字列として利用する。
【００３７】
ＰＲＯＣ：６３０
ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段が、実行時にＨＯＳＴＵＩＤＦＵＮＣＴＢＬから得たＦＵＮＣＩＤを利用してこの領域を検索する。
【００３８】
それぞれのＦＵＮＣＩＤに対応する関数／処理アドレスとして利用する。例では終端をＮＵＬＬとする。
【００３９】
図７は、本発明ＨＯＳＴＵＩＤＦＵＮＣＴＢＬのデータ構造の例である。
【００４０】
ＨＯＳＴＵＩＤＦＵＮＣＴＢＬは２つのデータ領域からなる。この２つのデータ領域は連続して格納されている必要はなく、それぞれが関連付けされていればよい。
【００４１】
ＨＯＳＴＵＩＤＦＵＮＣ設定手段、ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の両方で使用される。
【００４２】
以下、それぞれのデータ領域について説明する。
【００４３】
ＨＯＳＴＵＩＤ：７１０
ＨＯＳＴＵＩＤＦＵＮＣ設定手段で、ホストからのＨＯＳＴＵＩＤを設定する。
【００４４】
ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段で、実行時にホストがあらかじめ送信したＨＯＳＴＵＩＤから前述手続きＴＢＬを検索するキーとして使用するＦＵＮＣＩＤを得ることに使用する。例では終端を０とするが使用されない。
【００４５】
この領域のサイズは、ｎバイトの固定領域として使用するが、ホストが送るＨＯＳＴＵＩＤの長さで既定される。ここでは詳細については触れない。
【００４６】
内容について、たとえば公知の暗号化したデータを使用してもよい。
【００４７】
ＦＵＮＣＩＤ：７２０
ＨＯＳＴＵＵＩＤＦＵＮＣ設定手段で、ホストからのＦＵＮＣＩＤを設定する。
【００４８】
該当ＨＯＳＴＵＩＤに対するＦＵＮＣＩＤを格納する。
【００４９】
ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段で、ＨＯＳＴＵＩＤから該当ＦＵＮＣＩＤを得る。
【００５０】
該当ＰＲＯＣから関数／処理処理アドレスを検索するためのキーとして使用する。
【００５１】
［ＨＯＳＴＵＩＤＦＵＮＣ設定手段の実施例］
図８のフローにて、本発明ＨＯＳＴＵＩＤＦＵＮＣ設定手段の実施例を説明する。
【００５２】
このフローで記述していないが、初期処理にてＲＡＭ上のＨＯＳＴＵＩＤは０クリアされている。
【００５３】
また、ここで使用するコマンドはＵＳＢのデバイスリクエスト・標準デバイスリクエストを拡張したものを使うがデータ構造・プロトコル、状態遷移などの詳細についてここでは触れない。
【００５４】
メインのＵＳＢ標準デバイスリクエストのコマンド得て解析処理する前に、図８に制御がうつるものとする。
【００５５】
まず、Ｓ８００にてホストからのＨＯＳＴＵＩＤ送信か確認する。ＹｅｓならＳ８１０にてその内容をＲＡＭ上のＨＯＳＴＵＩＤへセットし、Ｓ８９９のメインのコマンド解析処理へ戻る。
【００５６】
ＮｏならＳ８２０でＦＵＮＣＴＢＬ一覧要求コマンドか確認する。ＹｅｓならＳ８３０にてＦＵＮＣＴＢＬの内容を全てＨＯＳＴへ送信しＳ８８９へ進む。
【００５７】
ＮｏならＳ８４０ＦＵＮＣＩＤ設定コマンドか確認する。ＮｏならＳ８９９へ進む。
【００５８】
ＹｅｓならＳ８５０のＨＯＳＴＵＩＤＦＵＮＣＴＢＬ作成処理を行い、Ｓ８８９へ進む。
【００５９】
つづいてＳ８５０のＨＯＳＴＵＩＤＦＵＮＣＴＢＬ作成処理について図９にて説明する。
【００６０】
まずＳ９１０にてＨＯＳＴから送られてきたＨＯＳＴＵＩＤ、ＦＵＮＣＩＤをえる。
【００６１】
Ｓ９１５にて得られたＦＵＮＣＩＤが有効な値か確認する。Ｎｏならこの機器では対応できない機能の指定ということを意味するのでＳ９４０のエラーステータスセットへ制御をうつす。
【００６２】
Ｙｅｓなら対応可能なＦＵＮＣＩＤ指定なので、Ｓ９２０へ進む。
【００６３】
Ｓ９２０では、ＨＯＳＴＵＩＤＦＵＮＣＴＢＬ内に既に該当ＨＯＳＴＵＩＤが登録されているか調べ、ＹｅｓならＳ９５０で同じＨＯＳＴＵＩＤに関連するＦＵＮＣＩＤ部を更新し、Ｓ９７０へ制御をうつす。
【００６４】
ＮｏならＳ９３０でＨＯＳＴＵＩＤＦＵＮＣＴＢＬに新たに追加できるか（登録数を制限する場合）調べる。ＹｅｓならＳ９４０に制御をうつしエラーステータスをセットする。
【００６５】
ＮｏならＳ９６０でＨＯＳＴＵＩＤＦＵＮＣＴＢＬ内に新たにＨＯＳＵＴＩＤ，ＦＵＮＣＩＤをセットし、Ｓ９７０の正常ステータスセットへ進む。そのあとＳ９９９でホストに対しステータスの送信を行い終了する。
【００６６】
［ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の実施例］
図１０のフローにて、本発明ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の実施例を説明する。
【００６７】
ここで使用するコマンドはＵＳＢのデバイスリクエスト・標準デバイスリクエストを拡張したものを使うがデータ構造・プロトコルなどについて、また状態遷移などの詳細についてここでは触れない。
【００６８】
メインのＵＳＢデバイス実行処理の解析処理する前に、図１０に制御がうつるものとする。
【００６９】
Ｓ１０００でＨＯＳＴＵＩＤが０かテストされる。０であれば、ＨＯＳＴＵＩＤＦＵＮＣ設定が行われていないことを示し通常動作を行えばよいので、Ｓ１０１０で他の実行処理解析へ制御をうつす。
【００７０】
ＨＯＳＴＵＩＤが０でなければホストからの拡張要求なので、Ｓ１００５でＨＯＳＴＵＩＤＦＵＮＣＴＢＬに該当ＨＯＳＴＵＩＤが登録されているか調べる。Ｎｏなら未登録なので、通常動作を行うためＳ１０１０へ制御をうつす。ＹｅｓならＳ１０２０でＨＯＳＴＵＩＤからＨＯＳＴＵＩＤＦＵＮＣＴＢＬのＦＵＮＣＩＤを得る。
【００７１】
ひきつづきＳ１０３０にて該当ＦＵＮＣＩＤからＨＯＳＴＦＵＮＣＴＢＬのＰＲＯＣを得て、その手続きを呼び出す。これで拡張処理が実行されたので、ひきつづきＳ１０１０の他のコマンド解析処理へ制御をうつす。
【００７２】
［その他の実施例］
接続したマシンのＨＯＳＴＵＩＤ毎に機能制限を行って動作することを特徴とするＵＳＢデバイス機器。
【００７３】
複数Ｉ／Ｏを有する場合、接続したマシンのＨＯＳＴＵＩＤ毎に異なるＩ／Ｏデバイスとして動作することを特徴とするＵＳＢデバイス機器。
【図面の簡単な説明】
【００７４】
【図１】本発明の接続・動作イメージ例を示す図
【図２】本発明全体構成図
【図３】本発明ＨＯＳＴＵＩＤＦＵＮＣ設定手段の制御・データの流れを示す図
【図４】本発明ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段の制御・データの流れを示す図
【図５】本発明システム構成図
【図６】本発明ＦＵＮＣＴＢＬのデータ構造例を示す図
【図７】本発明ＨＯＳＴＵＩＤＦＵＮＣＴＢＬのデータ構造例を示す図
【図８】本発明ＨＯＳＴＵＩＤＦＵＮＣ設定手段のフロー
【図９】本発明ＨＯＳＴＵＩＤＦＵＮＣ設定手段のＴＢＬ作成部のフロー
【図１０】本発明ＨＯＳＴＵＩＤＦＵＮＣ選択実行手段のフロー
【符号の説明】
【００７５】
１  ＣＰＵ
２  ＵＳＢＣＴＬ
３  ＤＭＡＣ
４  ＦＬＲＯＭ
５  ＲＡＭ
６  Ｉ／Ｏ
７  ＢＬ
８  ＤＩＳＰ
４０  ＦＵＮＣＴＢＬ
４１  ＨＯＳＴＵＩＤＦＵＮＣＴＢＬ
５０  ＨＯＳＴＵＩＤ
【図１】
2006058949.tif 000003
【図２】
2006058949.tif 000004
【図３】
2006058949.tif 000005
【図４】
2006058949.tif 000006
【図５】
2006058949.tif 000007
【図６】
2006058949.tif 000008
【図７】
2006058949.tif 000009
【図８】
2006058949.tif 000010
【図９】
2006058949.tif 000011
【図１０】
2006058949.tif 000012